"groupTitle": "Chat_Interactions"
},
{
- "type": "put",
- "url": "/api/chat/interactions/{id}/close",
- "title": "Close Interaction",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "addMessage",
- "group": "Chat_Interactions",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/chatInteraction/index.js",
- "groupTitle": "Chat_Interactions"
- },
- {
"type": "post",
"url": "/api/chat/interactions/{id}/messages",
"title": "Creates new messages",
"groupTitle": "Chat_Interactions"
},
{
+ "type": "put",
+ "url": "/api/chat/interactions/{id}/close",
+ "title": "Close Interaction",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "addMessage",
+ "group": "Chat_Interactions",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/chatInteraction/index.js",
+ "groupTitle": "Chat_Interactions"
+ },
+ {
"type": "post",
"url": "/api/chat/interactions/{id}/attachment_upload",
"title": "Add attachment",
"groupTitle": "Fax_Messages"
},
{
- "type": "put",
- "url": "/api/fax/messages/{id}/reject",
- "title": "Rejects message",
+ "type": "post",
+ "url": "/api/fax/messages",
+ "title": "Create message and send Fax",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
- "type": "post",
- "url": "/api/fax/messages",
- "title": "Create message and send Fax",
+ "type": "put",
+ "url": "/api/fax/messages/{id}/reject",
+ "title": "Rejects message",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
"type": "get",
- "url": "/api/rpc/outbound",
- "title": "Gets a list of RTOutbound",
+ "url": "/api/rpc/voice/queues",
+ "title": "Gets a list of RTVoiceQueues",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "get",
- "url": "/api/rpc/voice/queues",
- "title": "Gets a list of RTVoiceQueues",
+ "url": "/api/rpc/outbound",
+ "title": "Gets a list of RTOutbound",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "post",
- "url": "/api/sms/messages/{id}/status",
+ "url": "/api/sms/accounts/{id}/status",
"title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"group": "Sms_Accounts",
"description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsMessage/index.js",
+ "filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "get",
- "url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status as get request",
+ "type": "post",
+ "url": "/api/sms/messages/{id}/status",
+ "title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
+ "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsAccount/index.js",
+ "filename": "server/api/smsMessage/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status",
+ "title": "Receive message status as get request",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
"type": "delete",
- "url": "/api/fax/queues/{id}/teams",
+ "url": "/api/whatsapp/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/faxQueue/index.js",
+ "filename": "server/api/whatsappQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/mail/queues/{id}/teams",
+ "url": "/api/openchannel/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/mailQueue/index.js",
+ "filename": "server/api/openchannelQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/openchannel/queues/{id}/teams",
+ "url": "/api/voice/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/openchannelQueue/index.js",
+ "filename": "server/api/voiceQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "delete",
- "url": "/api/whatsapp/queues/{id}/teams",
+ "url": "/api/voice/Prefixes/{id}/teams",
+ "title": "Remove teams from a voice prefix",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X DELETE",
+ "type": "json"
+ }
+ ],
+ "name": "RemoveTeams",
+ "group": "Teams",
+ "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/voicePrefix/index.js",
+ "groupTitle": "Teams"
+ },
+ {
+ "type": "delete",
+ "url": "/api/chat/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/whatsappQueue/index.js",
+ "filename": "server/api/chatQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/voice/queues/{id}/teams",
+ "url": "/api/fax/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/voiceQueue/index.js",
+ "filename": "server/api/faxQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/chat/queues/{id}/teams",
+ "url": "/api/mail/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/chatQueue/index.js",
+ "filename": "server/api/mailQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "post",
+ "url": "/api/voice/prefixes/{id}/teams",
+ "title": "Add teams to voice prefix",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "AddTeams",
+ "group": "Voice_Prefix",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/voicePrefix/index.js",
+ "groupTitle": "Voice_Prefix"
+ },
+ {
+ "type": "get",
+ "url": "/api/voice/prefixes/{id}/teams",
+ "title": "Gets voice prefix team",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X GET",
+ "type": "json"
+ }
+ ],
+ "name": "GetTeams",
+ "group": "Voice_Prefix",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/voicePrefix/index.js",
+ "groupTitle": "Voice_Prefix"
+ },
+ {
+ "type": "post",
"url": "/api/voice/prefixes/{id}/users",
"title": "Add agents to a prefix",
"examples": [
"groupTitle": "Voice_Recordings"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
"groupTitle": "Chat_Interactions"
},
{
- "type": "put",
- "url": "/api/chat/interactions/{id}/close",
- "title": "Close Interaction",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "addMessage",
- "group": "Chat_Interactions",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/chatInteraction/index.js",
- "groupTitle": "Chat_Interactions"
- },
- {
"type": "post",
"url": "/api/chat/interactions/{id}/messages",
"title": "Creates new messages",
"groupTitle": "Chat_Interactions"
},
{
+ "type": "put",
+ "url": "/api/chat/interactions/{id}/close",
+ "title": "Close Interaction",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "addMessage",
+ "group": "Chat_Interactions",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/chatInteraction/index.js",
+ "groupTitle": "Chat_Interactions"
+ },
+ {
"type": "post",
"url": "/api/chat/interactions/{id}/attachment_upload",
"title": "Add attachment",
"groupTitle": "Fax_Messages"
},
{
- "type": "put",
- "url": "/api/fax/messages/{id}/reject",
- "title": "Rejects message",
+ "type": "post",
+ "url": "/api/fax/messages",
+ "title": "Create message and send Fax",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
- "type": "post",
- "url": "/api/fax/messages",
- "title": "Create message and send Fax",
+ "type": "put",
+ "url": "/api/fax/messages/{id}/reject",
+ "title": "Rejects message",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
"type": "get",
- "url": "/api/rpc/outbound",
- "title": "Gets a list of RTOutbound",
+ "url": "/api/rpc/voice/queues",
+ "title": "Gets a list of RTVoiceQueues",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "get",
- "url": "/api/rpc/voice/queues",
- "title": "Gets a list of RTVoiceQueues",
+ "url": "/api/rpc/outbound",
+ "title": "Gets a list of RTOutbound",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "post",
- "url": "/api/sms/messages/{id}/status",
+ "url": "/api/sms/accounts/{id}/status",
"title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"group": "Sms_Accounts",
"description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsMessage/index.js",
+ "filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "get",
- "url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status as get request",
+ "type": "post",
+ "url": "/api/sms/messages/{id}/status",
+ "title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
+ "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsAccount/index.js",
+ "filename": "server/api/smsMessage/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status",
+ "title": "Receive message status as get request",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
"type": "delete",
- "url": "/api/fax/queues/{id}/teams",
+ "url": "/api/whatsapp/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/faxQueue/index.js",
+ "filename": "server/api/whatsappQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/mail/queues/{id}/teams",
+ "url": "/api/openchannel/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/mailQueue/index.js",
+ "filename": "server/api/openchannelQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/openchannel/queues/{id}/teams",
+ "url": "/api/voice/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/openchannelQueue/index.js",
+ "filename": "server/api/voiceQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "delete",
- "url": "/api/whatsapp/queues/{id}/teams",
+ "url": "/api/voice/Prefixes/{id}/teams",
+ "title": "Remove teams from a voice prefix",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X DELETE",
+ "type": "json"
+ }
+ ],
+ "name": "RemoveTeams",
+ "group": "Teams",
+ "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/voicePrefix/index.js",
+ "groupTitle": "Teams"
+ },
+ {
+ "type": "delete",
+ "url": "/api/chat/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/whatsappQueue/index.js",
+ "filename": "server/api/chatQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/voice/queues/{id}/teams",
+ "url": "/api/fax/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/voiceQueue/index.js",
+ "filename": "server/api/faxQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/chat/queues/{id}/teams",
+ "url": "/api/mail/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/chatQueue/index.js",
+ "filename": "server/api/mailQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "post",
+ "url": "/api/voice/prefixes/{id}/teams",
+ "title": "Add teams to voice prefix",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "AddTeams",
+ "group": "Voice_Prefix",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/voicePrefix/index.js",
+ "groupTitle": "Voice_Prefix"
+ },
+ {
+ "type": "get",
+ "url": "/api/voice/prefixes/{id}/teams",
+ "title": "Gets voice prefix team",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X GET",
+ "type": "json"
+ }
+ ],
+ "name": "GetTeams",
+ "group": "Voice_Prefix",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/voicePrefix/index.js",
+ "groupTitle": "Voice_Prefix"
+ },
+ {
+ "type": "post",
"url": "/api/voice/prefixes/{id}/users",
"title": "Add agents to a prefix",
"examples": [
"groupTitle": "Voice_Recordings"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
define({
"name": "xCALLY Motion API",
- "version": "2.5.34",
+ "version": "2.5.36",
"description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",
"title": "xCALLY MOTION API",
"header": {
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-10-06T09:56:01.011Z",
+ "time": "2021-10-06T13:09:28.781Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "xCALLY Motion API",
- "version": "2.5.34",
+ "version": "2.5.36",
"description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",
"title": "xCALLY MOTION API",
"header": {
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-10-06T09:56:01.011Z",
+ "time": "2021-10-06T13:09:28.781Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "motion",
- "version": "2.5.34",
+ "version": "2.5.36",
"description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",
"main": "server/app.js",
"engines": {
"aws-sdk": "2.610.0",
"bimedia-machine-uuid": "1.0.1",
"bluebird": "3.7.2",
+ "html-entities": "2.3.2",
"body-parser": "1.19.0",
"compare-versions": "3.6.0",
"composable-middleware": "0.3.0",
{
"FORGOTPASSWORD": {
- "TITLE": "Ihr Passwort wiederherstellen",
- "EMAIL_ADRESS": "E-mail Adresse",
+ "TITLE": "Passwort wiederherstellen",
+ "EMAIL_ADRESS": "E-Mail Adresse",
"SEND_RESET_LINK": "LINK ZUM ZURÜCKSETZEN SENDEN",
"GO_BACK": "Zurück zum Login",
"LINK_SENT": "Link gesendet",
- "LINNK_SENT_MESSAGE": "Eine e-Mail mit einem Link zum Zurücksetzen des Kennworts wurde an Ihre Adresse gesendet!",
- "PASSWORD_RESET_ERROR": "Passwort Fehler zurücksetzen",
+ "LINNK_SENT_MESSAGE": "Eine E-Mail mit einem Link zum Zurücksetzen des Passwortes wurde an Ihre Adresse gesendet.",
+ "PASSWORD_RESET_ERROR": "Fehler beim Zurücksetzen des Passwortes",
"ERRORS": {
- "EMAIL_REQUIRED": "Im Feld E-Mail ist erforderlich",
- "EMAIL_MUST_VALID": "E-Mail muss eine gültige e-mail Adresse"
+ "EMAIL_REQUIRED": "Eingabe E-Mail Adresse erforderlich",
+ "EMAIL_MUST_VALID": "Es muss eine gültige E-Mail Adresse eingegeben werden"
}
}
}
{
"LOGIN": {
- "TITLE": "Melden Sie sich bei Ihrem Konto an",
+ "TITLE": "Bitte mit Ihrem Konto anmelden",
"EMAIL": "E-Mail",
"PASSWORD": "Passwort",
- "REMEMBER_ME": "Erinnere Dich an Mich",
+ "REMEMBER_ME": "Anmeldedaten merken",
"FORGOT_PASSWORD": "Passwort vergessen?",
- "LOG_IN": "LOG IN",
+ "LOG_IN": "ANMELDEN",
"OR": "Oder",
- "WITH_GOOGLE": "Melden Sie sich mit Google",
- "WITH_FACEBOOK": "Mit Facebook anmelden",
+ "WITH_GOOGLE": "Anmeldung mit Google",
+ "WITH_FACEBOOK": "Anmeldung mit Facebook",
"DONT_HAVE_ACCOUNT": "Sie haben noch kein Konto?",
- "CREATE_ACCOUNT": "Erstellen Sie ein Konto",
+ "CREATE_ACCOUNT": "Konto erstellen",
"ERRORS": {
"EMAIL_REQUIRED": "Pflichtfeld",
"EMAIL_MUST_VALID": "Falsches Format",
"USERNAME_REQUIRED": "Pflichtfeld"
},
"USERNAME": "Benutzername",
- "CANCEL": "Stornieren",
- "SELECT": "Wählen",
+ "CANCEL": "Abbrechen",
+ "SELECT": "Auswählen",
"TELEPHONES": "Telefone"
}
}
"METRIC_REQUIRED": "Pflichtfeld",
"COLUMN_REQUIRED": "Pflichtfeld",
"VALUE_REQUIRED": "Pflichtfeld",
- "CUSTOM_METRIC_REQUIRED": "benutzerdefinierte Metrik (erforderlich)",
+ "CUSTOM_METRIC_REQUIRED": "Pflichtfeld",
"ALIAS_REQUIRED": "Pflichtfeld"
},
"NEW_METRIC": "Neue Metrik",
"SAVE": "Speichern",
"BACK": "Zurück",
"SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Keine auswählen",
+ "SELECT_ALL": "Alles auswählen",
+ "SELECT_NONE": "Nichts auswählen",
"TYPE": "Typ",
"EXTRACTEDREPORTS": "Extrahierte Berichte",
"DATE_RANGE_FROM": "Datum von",
"GENERAL": "Allgemein",
"FIELDS": "Felder",
"CONDITION": "Bedingung",
- "OPERATOR": "Betreiber",
+ "OPERATOR": "Operator",
"GROUP": "Gruppe",
"COLUMN": "Spalte",
"VALUE": "Wert",
"PREVIEW": "Vorschau",
- "LIMITED_RESULT": "BEGRENZTES ERGEBNIS",
+ "LIMITED_RESULT": "Ergebins begrenzt",
"NO_DATA": "Keine Daten",
"CONDITIONS": "Bedingungen",
"ALIAS": "Alias",
"FUNCTION": "Funktion",
"GROUP_BY": "Gruppieren nach",
- "ORDER_BY": "Bestellung von",
+ "ORDER_BY": "Sortieren nach",
"ADD_REPORTFIELD": "Feld hinzufügen",
"EDIT_REPORTFIELD": "Feld bearbeiten",
"DELETE_REPORTFIELD": "Feld löschen",
"NO_METRIC_FOUND": "Keine Metrik gefunden",
"NO_AVAILABLE_INFO": "keine Informationen verfügbar",
"CUSTOM_METRIC": "Benutzerdefinierte Metrik",
- "DELETE_EXTRACTEDREPORT": "Löschen extrahierte Berichte",
+ "DELETE_EXTRACTEDREPORT": "Extrahierte Berichte löschen",
"EDIT_EXTRACTEDREPORT": "Extrahierte Berichte bearbeiten",
- "DOWNLOAD_EXTRACTEDREPORT": "Herunterladen extrahierte Berichte",
+ "DOWNLOAD_EXTRACTEDREPORT": "Extrahierte Berichte herunterladen",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
+ "OF": "von",
"DELETE": "Löschen",
"REPORTNAME": "Berichtsname",
"SEND_IF_EMPTY": "Senden, wenn leer",
"CHAT": {
"AMAZONLEX": "Amazon Lex",
"TEXT": "Text",
- "TIMES": "Anzahl von Malen pro Interaktion",
+ "TIMES": "Anzahl der Zeiten pro Interaktion",
"EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
"AUTOREPLY": "Automatische Antwort",
- "NEW_CHATDISPOSITION": "Neue Chat-Disposition",
+ "NEW_CHATDISPOSITION": "Neue Chat-Qualifizierung",
"ENABLECUSTOMERATTACHMENT": "Kundenanhänge aktivieren",
- "OFFLINE_CHAT_BUTTON": "Offline-Chat-Taste",
+ "OFFLINE_CHAT_BUTTON": "Button Chat offline",
"OFFLINESTATUS": "Offline Status",
"NAME": "Name",
"CHATQUEUES": "Chat-Warteschlangen",
"STRATEGY": "Strategie",
"AGENT_TIMEOUT": "Agent Timeout",
"DESCRIPTION": "Beschreibung",
- "KEY": "Key",
+ "KEY": "Schlüssel",
"ALIAS": "Alias-Name",
"VARIABLE": "Variable",
"INTERVAL": "Intervall",
- "EDIT_CLOSE": "Bearbeiten Schließen",
+ "EDIT_CLOSE": "Bearbeitung abschließen",
"TIMEZONE": "Zeitzone",
"MESSAGE": "Nachricht",
"ADVANCED": "Erweitert",
"FORWARDTRANSCRIPT": "Transkript weiterleiten",
"FORWARDTRANSCRIPTMESSAGE": "Transkript-Nachricht weiterleiten",
- "SKIPMESSAGEBUTTON": "Nachrichtentaste überspringen",
+ "SKIPMESSAGEBUTTON": "Nachrichtenbutton überspringen",
"EDIT_MESSAGE": "Nachricht bearbeiten",
- "CONDITION_AGREEMENT": "Bedingungsvereinbarung",
- "NONE": "Keine",
+ "CONDITION_AGREEMENT": "Konditionelle Vereinbarung",
+ "NONE": "Nichts",
"PRIORITY": "Priorität",
"ONLINESTATUS": "Online Status",
- "UNMANAGEDSTATUS": "Nicht verwalteter Status",
+ "UNMANAGEDSTATUS": "Status nicht bearbeitet",
"AUTOCLOSE": "Automatisches Schließen aktivieren",
- "ENABLEUNMANAGEDNOTE": "Nicht verwaltete Nachricht aktivieren",
- "UNMANAGEDMESSAGE": "Nachricht",
+ "ENABLEUNMANAGEDNOTE": "Unbearbeitete Nachricht aktivieren",
+ "UNMANAGEDMESSAGE": "Unbearbeitete Nachricht",
"SKIPUNMANAGED": "Nachricht überspringen",
"SENDUNMANAGED": "Nachricht senden",
- "WEBSITESCRIPT": "Website-Script",
+ "WEBSITESCRIPT": "Webseiten-Skript",
"DELETE_OFFLINEMESSAGE": "Löschen",
"OFFLINEMESSAGES": "Offline Nachrichten",
"FORWARD_OFFLINE": "Offline weiterleiten",
"FORWARD_OFFLINE_ADDRESS": "Offline-Adresse weiterleiten",
"CLOSINGFORM": "Formular schließen",
"ENABLERATING": "Bewertung aktivieren",
- "ENABLECUSTOMERWRITING": "Dem Kunden \"schreiben\" erlauben, bevor der Agent akzeptiert",
+ "ENABLECUSTOMERWRITING": "Kunde kann schreiben, bevor Chat akzeptiert wird",
"ENABLEFEEDBACK": "Feedback aktivieren",
"RATINGTYPE": "Bewertungstyp",
- "CLOSINGMESSAGE": "Nachricht schließen",
- "CLOSINGMESSAGEBUTTON": "Nachrichtentaste schließen",
+ "CLOSINGMESSAGE": "Abschluss Nachricht",
+ "CLOSINGMESSAGEBUTTON": "Button für Abschluss Nachricht",
"RATINGSTARSNUMBER": "Anzahl der Bewertungssterne",
"EDIT_GOTOIF": "GotoIf bearbeiten",
"CONDITION": "Bedingung",
- "TRUEPRIORITY": "Echte Priorität",
+ "TRUEPRIORITY": "Wahre Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"VALUE": "Wert",
"WEBSITEALIAS": "Website-Alias",
"ERRORS": {
"TEXT_REQUIRED": "Pflichtfeld",
"SENDUNMANAGED_REQUIRED": "Pflichtfeld",
- "SENDUNMANAGED_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "SKIPUNMANAGED_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
- "UNMANAGEDMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
- "WEBSITEALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
+ "SENDUNMANAGED_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "SKIPUNMANAGED_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "UNMANAGEDMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "WEBSITEALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
"AGENT_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
"CONDITION_REQUIRED": "Pflichtfeld",
"TIMEOUT_REQUIRED": "Pflichtfeld",
"REJECTURL_MUST_VALID_URL": "Falsches Format",
"CLOSEURL_MUST_VALID_URL": "Falsches Format",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "POLLING_INTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "POLLING_INTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"WAITINGMESSAGE_REQUIRED": "Pflichtfeld",
"WAITINGTITLE_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "KEY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
"KEY_REQUIRED": "Pflichtfeld",
- "WAITINGMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "WAITINGTITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "HEADER_OFFLINE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "OFFLINE_CHAT_BUTTON_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "CLOSINGQUESTION_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "WAITINGMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "WAITINGTITLE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "HEADER_OFFLINE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "OFFLINE_CHAT_BUTTON_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "CLOSINGQUESTION_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
"VALUE_REQUIRED": "Pflichtfeld",
- "OFFLINEMESSAGESUBJECT_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "OFFLINEMESSAGEBODY_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "PLACEHOLDERMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "NOTETITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "FORMSUBMITFAILUREMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
- "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "OFFLINEMESSAGESUBJECT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "OFFLINEMESSAGEBODY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "PLACEHOLDERMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "NOTETITLE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "FORMSUBMITFAILUREMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"FONTSIZE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"NAME_MUST_VALID_PATTERN": "Falsches Format",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
- "VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"VERTICALPOSITION_REQUIRED": "Pflichtfeld",
- "CUSTOMERALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "CUSTOMERALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
"TAG_REQUIRED": "Pflichtfeld",
- "MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"MESSAGEFONTSIZE_REQUIRED": "Pflichtfeld",
"AGENTALIAS_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"CUSTOMERALIAS_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "SYSTEMALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "SYSTEMALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
"SYSTEMALIAS_REQUIRED": "Pflichtfeld",
"ACCESSKEYID_REQUIRED": "Pflichtfeld",
"BOTNAME_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld",
"VIDAOOTOPIC_REQUIRED": "Pflichtfeld"
},
- "CM_FIELD": "Kontakt Manager Feld",
- "CHATPROACTIVEACTIONS": "Proaktive Aktionen",
- "NEW_CHATPROACTIVEACTION": "Neue proaktive Aktion",
- "EDIT_CHATPROACTIVEACTION": "Proaktive Aktion bearbeiten",
- "DELETE_CHATPROACTIVEACTION": "Proaktive Aktion löschen",
- "ADD_CHATPROACTIVEACTION": "Proaktive Aktion hinzufügen",
- "NO_CHATPROACTIVEACTION_AVAILABLE": "Keine proaktiven Aktionen verfügbar",
+ "CM_FIELD": "Kontaktmanager-Feld",
+ "CHATPROACTIVEACTIONS": "Proaktive Anfragen",
+ "NEW_CHATPROACTIVEACTION": "Neue proaktive Anfrage",
+ "EDIT_CHATPROACTIVEACTION": "Proaktive Anfrage bearbeiten",
+ "DELETE_CHATPROACTIVEACTION": "Proaktive Anfrage löschen",
+ "ADD_CHATPROACTIVEACTION": "Proaktive Anfrage hinzufügen",
+ "NO_CHATPROACTIVEACTION_AVAILABLE": "Keine proaktiven Anfragen verfügbar",
"NO_OFFLINEMESSAGE_AVAILABLE": "Keine Offline-Nachrichten verfügbar",
- "MOUSEOVER": "Maus über",
+ "MOUSEOVER": "Mouse-Over",
"TIMEOUT": "Timeout",
"TYPE": "Typ",
- "SELECTOR": "Wählschalter",
+ "SELECTOR": "Selektion",
"AGENT": "Agent",
"GOTO": "Goto",
"GOTOIF": "GotoIf",
"QUEUE": "Warteschlange",
"BUILDER": "Builder",
"PREVIEW": "Vorschau",
- "EDIT_AGENT": "Agent bearbeiten",
+ "EDIT_AGENT": "Agenten bearbeiten",
"EDIT_QUEUE": "Warteschlange bearbeiten",
"EDIT_GOTO": "Goto bearbeiten",
"EDIT_GOTOIf": "GotoIf bearbeiten",
"LIST": "Liste",
"SNIPPET": "Snippet",
"FORMS": "Formulare",
- "UP": "Bis",
- "DOWN": "Unten",
- "COLLAPSE": "Zusammenklappen",
- "PROACTIVEACTIONS": "Proaktive Aktionen",
- "DISPOSITIONS": "Dispositionen",
+ "UP": "Nach Oben",
+ "DOWN": "Nach Unten",
+ "COLLAPSE": "Einklappen",
+ "PROACTIVEACTIONS": "Proaktive Anfragen",
+ "DISPOSITIONS": "Qualifizierungen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"FIDELITY": "Treue",
- "APPEARANCE": "Aussehen",
+ "APPEARANCE": "Darstellung",
"MAINCOLOR": "Hauptfarbe",
"FOCUSCOLOR": "Fokusfarbe",
- "BUTTONCOLOR": "Tastenfarbe",
+ "BUTTONCOLOR": "Buttonfarbe",
"HEADERSHAPE": "Kopfzeilenform",
"ANIMATION": "Animation",
"DEFAULT": "Standard",
"LABELS": "Labels",
"HEADER_ONLINE": "Online-Kopfzeile",
"ONLINE_MESSAGE": "Online Nachricht",
- "NAME_TITLE": "Name Eingabebezeichnung",
- "USERNAME_PLACEHOLDER": "Benutzername Eingabe Platzhalter",
- "EMAIL_TITLE": "E-Mail-Eingabe Label",
- "EMAIL_PLACEHOLDER": "Platzhalter für E-Mail-Eingabe",
- "START_CHAT_BUTTON": "'Chat starten' Taste",
- "AGENTS_BUSY": "Meldung für besetzte Agenten",
+ "NAME_TITLE": "Name Titel",
+ "USERNAME_PLACEHOLDER": "Platzhalter für Nutzernamen",
+ "EMAIL_TITLE": "E-Mail Titel",
+ "EMAIL_PLACEHOLDER": "Platzhalter für E-Mail Adresse",
+ "START_CHAT_BUTTON": "'Chat starten' Button",
+ "AGENTS_BUSY": "Agenten besetzt",
"HEADER_OFFLINE": "Offline-Kopfzeile",
"OFFLINE_MESSAGE": "Offline Nachricht",
- "MESSAGE_TITLE": "Nachrichtenbezeichnung",
- "ENQUIRY_MESSAGE_PLACEHOLDER": "Platzhalter für die Eingabe von Anfragenachrichten",
- "ENQUIRY_BUTTON": "Anfrage-Taste Text",
+ "MESSAGE_TITLE": "Nachricht Titel",
+ "ENQUIRY_MESSAGE_PLACEHOLDER": "Platzhalter für Nachrichteneingabe",
+ "ENQUIRY_BUTTON": "Anfrage-Button",
"RATING_MESSAGE": "Bewertungsnachricht",
- "RATING_SEND": "Bewertung Senden Tasten-Text",
- "RATING_SKIP": "Bewertung Überspringen Tasten-Text",
+ "RATING_SEND": "Button Bewertung senden",
+ "RATING_SKIP": "Button Bewertung überspringen",
"ONLINE": "Online",
"OFFLINE": "Offline",
- "PROACTIVE": "Proaktive",
+ "PROACTIVE": "Proaktiv",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Methode",
+ "ACCEPTMETHOD": "Methode akzeptieren",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "Schliessen",
+ "CLOSE": "Schließen",
"CLOSEMETHOD": "Methode schließen",
"CLOSEURL": "URL schließen",
- "EMBEDDING": "Einbettung",
+ "EMBEDDING": "Einbetten",
"GENERAL": "Allgemein",
"SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "SELECT_ALL": "Alles auswählen",
+ "SELECT_NONE": "Nichts auswählen",
"BACK": "Zurück",
"HELP": {
- "MAPKEY": "Das folgende Motion Contact Manager-Feld:",
- "FROMKEY": "Wird in Ihrem Motion Chat-Snippet wie folgt zugeordnet:",
- "TOKEN": "Automatisch generiertes Token, das im Skript verwendet wird",
+ "MAPKEY": "Das folgende Feld aus dem Kontaktmanager:",
+ "FROMKEY": "wird in dem Chat-Snippet wie folgt zugeordnet:",
+ "TOKEN": "Automatisch generierter Token zur Verwendung im Skript",
"COPYSCRIPTTOCLIPBOARD": "Kopieren Sie den Skripttext und fügen Sie ihn in Ihre Website ein",
"FORWARD_OFFLINE": "Sie können mehrere durch Kommas getrennte Adressen hinzufügen (z. B. john.doe@xcally.com, jane.miller@xcally.com)",
"MOTIONADDRESS": "Das Feld muss das folgende Format haben: ≪protocol>://<IP-Adresse>[:<port>]. Beispiel: https://X.Y.Z.W",
"MOTIONPROXY": "Das Feld muss das folgende Format haben: ≪Protocol>:// ≪IP-Adresse>: ≪port>]. Beispiel: https://X.Y.Z.W",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "LIST": "Contact Manager-Liste, die zum Zuordnen von Kontakten verwendet wird",
+ "LIST": "Liste für die Zuordnung aus dem Kontaktmanager",
"KEY": "Website-Kurzname (5 Zeichen), der auf der Registerkarte \"Agent\" angezeigt wird",
- "INTEVAL": "Wird aus der Liste der verfügbaren Intervalle ausgewählt",
- "TIMEZONE": "Wählen Sie eine aus der Liste aus (Standard = lokale Zeitzone)",
- "ENABLERATING": "Aktivieren Sie es, wenn Sie möchten, dass der Webbesucher die Interaktion am Ende bewerten kann",
- "ENABLEFEEDBACK": "Aktivieren Sie es, wenn Sie möchten, dass der Webbesucher am Ende ein Feedback (bis zu 150 Zeichen) senden kann",
- "FORWARDTRANSCRIPT": "Aktivieren Sie diese Option, wenn der Webbesucher aufgefordert wird, ein Chat-Protokoll per E-Mail zu erhalten",
- "AUTOCLOSE": "Aktivieren Sie diese Option, wenn Chat-Sitzungen als nicht verwaltet geschlossen werden sollen, wenn kein Agent verfügbar ist. Weitere Informationen finden Sie unter: https://wiki.xcallymotion.com/display/XMV/Chat+Websites#ChatWebsites-Snippet",
- "ENABLEUNMANAGEDNOTE": "Aktivieren Sie diese Option, wenn dem Besucher eine Nachricht angezeigt werden soll, wenn alle Agenten besetzt sind und der Chat nicht mehr verwaltet wird",
- "ENABLECUSTOMERWRITING": "Aktivieren Sie es, wenn der Chat gestartet werden soll, ohne auf einen verfügbaren Agenten zu warten (Achtung: Wenn Sie ihn aktivieren, werden Ihre Chats niemals nicht verwaltet). Weitere Informationen finden Sie unter: https://wiki.xcallymotion.com/display/XMV/ Chat + Websites # ChatWebsites-Snippet ",
- "INTERVAL": "Wählen Sie eins aus der Liste aus",
+ "INTEVAL": "Wählen aus der Liste der verfügbaren Intervalle",
+ "TIMEZONE": "Zeitzone auswählen (Standard = lokale Zeitzone)",
+ "ENABLERATING": "Bewertung nach Chat durch Kunden aktivieren",
+ "ENABLEFEEDBACK": "Feedback nach Chat durch Kunden aktivieren (Max. 150 Zeichen)",
+ "FORWARDTRANSCRIPT": "Chatprotokoll nach Abschluss per E-Mail senden",
+ "AUTOCLOSE": "Aktivieren Sie diese Option, wenn Chat-Sitzungen als nicht bearbeitet geschlossen werden sollen, sofern kein Agent verfügbar ist.",
+ "ENABLEUNMANAGEDNOTE": "Automatische Nachricht an den Kunden, wenn alle Agenten besetzt sind und somit der Chat nicht verfügbar ist",
+ "ENABLECUSTOMERWRITING": "Legt fest, ob der Kunde bereits im Chat schreiben kann, bevor ein Agent den Chat entgegen nimmmt. Hinweis: Dadurch kein Status \"unbearbeitet\"",
+ "INTERVAL": "Bitte aus der Liste wählen",
"HIDEWHENOFFLINE": "Snippet ausblenden, wenn offline",
- "AGENTIDENTIFIER": "Repräsentiert die Agentenkennung innerhalb der Chat-Sitzung im Snippet",
+ "AGENTIDENTIFIER": "Agentenkennung innerhalb der Chat-Sitzung im Snippet",
"WEBSITEALIAS": "Ein Präfix, mit dem der Agentenname (Präfix + Agenten-ID) erstellt wird, der dem Webbesucher während der Chat-Sitzung angezeigt wird",
- "VERTICALPOSITION": "Stellt den Abstand in Prozent von oben dar",
- "WELCOMEMESSAGE": "Lassen Sie das Feld leer, wenn Sie keine Willkommensnachricht senden möchten",
- "MANDATORYDISPOSITION": "Obligatorische Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Pausieren Sie die Verwendung, wenn die obligatorische Disposition aktiviert ist"
+ "VERTICALPOSITION": "Prozentualer Abstand in Prozent vom oberen Bildschirmrand",
+ "WELCOMEMESSAGE": "Leer lassen, um keine Nachricht zu senden",
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung"
},
"ADDRESS": "Adresse",
"ONLINESTATE": "Online Status",
"RATINGSTATE": "Bewertungsstatus",
"ENQUIRY": "Anfrage",
"OFFLINETEMPLATE": "Offline Vorlage",
- "CHATDISPOSITIONS": "Chat-Dispositionen",
- "NO_CHATDISPOSITION_AVAILABLE": "Keine Chat-Dispositionen verfügbar",
- "ADD_CHATDISPOSITION": "Chat Disposition hinzufügen",
+ "CHATDISPOSITIONS": "Chat-Qualifizierungen",
+ "NO_CHATDISPOSITION_AVAILABLE": "Keine Qualifizierung verfügbar",
+ "ADD_CHATDISPOSITION": "Qualifizierung hinzufügen",
"DELETE": "Löschen",
- "EDIT_CHATDISPOSITION": "Chat-Disposition bearbeiten",
- "DELETE_CHATDISPOSITION": "Chat-Disposition löschen",
+ "EDIT_CHATDISPOSITION": "Qualifizierung bearbeiten",
+ "DELETE_CHATDISPOSITION": "Qualifizierung löschen",
"CHAT": "Chat",
"ID": "ID",
"NEW_CHATQUEUE": "Neue Chat-Warteschlange",
"NEW_CHATWEBSITE": "Neue Chat-Website",
- "ROUNDED": "Abgerundet",
- "SQUARED": "Quadratisch",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ROUNDED": "Rundes Design",
+ "SQUARED": "Eckiges Design",
+ "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
"ALL_TEAMS": "Alle Teams",
"SELECTED_TEAMS": "Ausgewählte Teams",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
+ "OF": "von",
"CONTACT": "Kontakt",
"STARTEDAT": "Gestartet am",
"STATUS": "Status",
"CLOSED": "Geschlossen",
- "OPENED": "Öffnen",
- "OPEN": "Öffnen",
+ "OPENED": "Geöffnet",
+ "OPEN": "Offen",
"ACCOUNT": "Konto",
"INTERACTION": "Interaktion",
"INTERACTIONS": "Interaktionen",
"WEBSITE": "Website",
- "ALL": "Alle",
- "SELECT_STATUS": "Wählen Sie einen Status",
+ "ALL": "Alles",
+ "SELECT_STATUS": "Status auswählen",
"FILTER": "Filter",
"FILTERS": "Filter",
"TEAMADD_CHATQUEUE": "Team zur Chat-Warteschlange hinzufügen",
- "AGENTADD_CHATQUEUE": "Agent zur Chat-Warteschlange hinzufügen",
+ "AGENTADD_CHATQUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CLOSEDAT": "Geschlossen am",
- "DISPOSITION": "Disposition",
+ "DISPOSITION": "Qualifizierung",
"CREATEDAT": "Erstellt am",
"NOTES": "Notizen",
"NO_INTERACTION_AVAILABLE": "Keine Interaktionen verfügbar",
- "SELECTED_WEBSITE": "Wählen Sie eine Website",
+ "SELECTED_WEBSITE": "Ausgewählte Webseite",
"GOTOP": "Gotop",
"EDIT_GOTOP": "Gotop bearbeiten",
- "SELECT_WEBSITE": "Wählen Sie eine Website",
+ "SELECT_WEBSITE": "Webseite auswählen",
"INFO": "Info",
"OFFLINEMESSAGES_CHATWEBSITE": "Zu Offline-Nachrichten gehen",
- "WAITINGTITLE": "Wartetitel",
- "WAITINGMESSAGE": "Wartende Nachricht",
+ "WAITINGTITLE": "Titel während Warten",
+ "WAITINGMESSAGE": "Wartenachricht",
"RATING": "Bewertung",
"NO_RATINGVALUE": "Keine Bewertung",
- "AGENTSADD_QUEUE": "Agent zur Chat-Warteschlange hinzufügen",
+ "AGENTSADD_QUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
"QUEUES": "Warteschlangen",
"LOGGED_IN": "Angemeldet",
- "PAUSED": "Pausiert",
+ "PAUSED": "in Pause",
"READY": "Bereit",
- "WAITING": "Warten",
- "WRITING": "Schreiben",
+ "WAITING": "Wartezustand",
+ "WRITING": "am Schreiben",
"MAIL": "E-Mail",
"SMS": "SMS",
- "OPENCHANNEL": "Openchannel",
+ "OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
"PAUSE": "Pause",
"REALTIME": "Echtzeit",
"AGENTS": "Agenten",
"FULLNAME": "Vollständiger Name",
- "INTERNAL": "Interne",
+ "INTERNAL": "Intern",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"LOGOUT": "Abmelden",
"UNPAUSE": "Pause beenden",
- "AGENTADD_QUEUE": "Agent zur Chat-Warteschlange hinzufügen",
+ "AGENTADD_QUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
"DEFAULT_PAUSE": "Standard Pause",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Unregistrierte",
+ "UNREGISTERED": "Nicht registriert",
"UNAVAILABLE": "Nicht verfügbar",
"NOT_INUSE": "Nicht in Verwendung",
"REACHABLE": "Erreichbar",
- "IN_USE": "Im Einsatz",
- "VOICE": "Sprache",
+ "IN_USE": "In Verwendung",
+ "VOICE": "Anrufe",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_CHATQUEUE": "Go to Echtzeit-Chat-Warteschlange",
+ "GOTOREALTIME_CHATQUEUE": "Zur Echtzeit-Warteschlange für Chat gehen",
"PARTIALPAUSE": "Teilpause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"CAPACITY": "Kapazität",
"TAGS": "Tags",
"SHOWAGENTAVATAR": "Persönlichen Agenten-Avatar anzeigen",
- "AGENTAVATAR": "Agent Avatar",
- "SPYINTERACTION": "Spion",
+ "AGENTAVATAR": "Agenten-Avatar",
+ "SPYINTERACTION": "Mitlesen",
"INTERACTIONS_CHATWEBSITE": "Zu den Interaktionen gehen",
"REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "CLOSINGQUESTION": "Frage schließen",
+ "CLOSINGQUESTION": "Abschlussfrage",
"WEBSCRIPT": "Webskript",
- "NO_CHATCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
- "NEW_CHATCANNEDANSWER": "Neue vordefinierte Antwort",
- "ADD_CHATCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
- "EDIT_CHATCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
- "DELETE_CHATCANNEDANSWER": "Vordefinierte Antwort löschen",
- "OFFLINEMESSAGESUBJECT": "Betreff der Nachricht",
- "OFFLINEMESSAGEBODY": "Nachrichtentext",
- "FORMSUBMITSUCCESSMESSAGE": "Erfolgsmeldung beim Absenden des Formulars",
- "FORMSUBMITFAILUREMESSAGE": "Fehlermeldung beim Absenden des Formulars",
- "PLACEHOLDERMESSAGE": "Platzhalter für Nachrichten",
+ "NO_CHATCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
+ "NEW_CHATCANNEDANSWER": "Neue Textvorlage",
+ "ADD_CHATCANNEDANSWER": "Textvorlage hinzufügen",
+ "EDIT_CHATCANNEDANSWER": "Textvorlage bearbeiten",
+ "DELETE_CHATCANNEDANSWER": "Textvorlage löschen",
+ "OFFLINEMESSAGESUBJECT": "Betreff der Nachricht bei Offline",
+ "OFFLINEMESSAGEBODY": "Test der Nachricht bei Offline",
+ "FORMSUBMITSUCCESSMESSAGE": "Meldung Formular erfolgreich gesendet",
+ "FORMSUBMITFAILUREMESSAGE": "Meldung Fehler beim Senden des Formulars",
+ "PLACEHOLDERMESSAGE": "Nachricht für Platzhalter",
"NOTETITLE": "Titel der Notiz",
"DELETE_INTERACTION": "Interaktion löschen",
"FONTSIZE": "Schriftgröße",
"TEXTCOLOR": "Textfarbe",
- "COMMAND": "Befehl",
+ "COMMAND": "Eingabe",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"NOTIFICATION": "Benachrichtigung",
"NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Ton",
+ "NOTIFICATIONSOUND": "Klingeln",
"NOTIFICATIONTEMPLATE": "Vorlage",
- "HIDEWHENOFFLINE": "Ausblenden",
- "INSERT_MESSAGE_HERE": "Fügen Sie hier Ihre Textnachricht ein",
+ "HIDEWHENOFFLINE": "Ausblenden, wenn offline",
+ "INSERT_MESSAGE_HERE": "Nachricht hier eingeben",
"AGENTALIAS": "Agent Alias",
"AGENTFULLNAME": "Vollständiger Name des Agenten",
"AGENTIDENTIFIER": "Identifikator",
- "WAITFORTHEASSIGNEDAGENT": "Warten auf den zugewiesenen Agenten",
+ "WAITFORTHEASSIGNEDAGENT": "Warten auf den zugewiesenen Mitarbeiter",
"ALIGNMENT": "Ausrichtung",
"BOTTOM_RIGHT": "Unten rechts",
"LEFT": "Links",
"CUSTOMERALIAS": "Kunden-Alias",
"EDIT_TAG": "Tag bearbeiten",
"TAG": "Tag",
- "AGENTADD_CHATWEBSITE": "Agent zur Chat-Website hinzufügen",
+ "AGENTADD_CHATWEBSITE": "Agenten zur Chat-Website hinzufügen",
"BACKGROUNDCOLOR": "Hintergrundfarbe",
"MESSAGEFONTSIZE": "Schriftgröße der Nachricht",
"AGENTTRANSFER": "Agententransfer",
"DIALOGFLOW": "Dialogflow",
"EDIT_DIALOGFLOW": "Dialogflow bearbeiten",
"LANGUAGE": "Sprache",
- "QUEUETRANSFER": "Warteschlangenübertragung",
+ "QUEUETRANSFER": "Transfer in Warteschlange",
"QUEUETRANSFERTIMEOUT": "Timeout bei der Warteschlangenübertragung",
"SYSTEMALIAS": "Systemalias",
"SYSTEMAVATAR": "System-Avatar",
"TRANSFER": "Transfer",
"WELCOMEMESSAGE": "Willkommensnachricht",
- "ENABLECUSTOMERCHECKMARKS": "Aktivieren vom Kunden gelieferten / gelesenen Benachrichtigungen",
- "CANNEDANSWERS": "Vordefinierte Antworten",
- "CHATCANNEDANSWERS": "Vordefinierte Antworten",
+ "ENABLECUSTOMERCHECKMARKS": "Bestätigung Nachricht erhalten/gelesen",
+ "CANNEDANSWERS": "Textvorlagen",
+ "CHATCANNEDANSWERS": "Textvorlagen",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "LOGIN_TIME": "Login-Zeit",
- "PAUSE_TIME": "Pausenzeit",
+ "LOGIN_TIME": "Zeit angemeldet",
+ "PAUSE_TIME": "Zeit in Pause",
"ACCESSKEYID": "Zugangsschlüssel-ID",
- "BOTNAME": "Bot-Name",
+ "BOTNAME": "Botname",
"EDIT_AMAZONLEX": "Amazon Lex bearbeiten",
"LEXREGION": "Region",
"SECRETACCESSKEY": "Geheimer Zugangsschlüssel",
- "TEAMS_ASSOCIATION": "Teams Verband",
- "MANDATORYDISPOSITION": "Obligatorische Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Pausieren Sie die Verwendung, wenn die obligatorische Disposition aktiviert ist",
- "ENABLESENDBUTTON": "Sendetaste aktivieren",
+ "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "PausenID, wenn Qualifizierung erforderlich",
+ "ENABLESENDBUTTON": "Senden-Button aktivieren",
"FEEDBACKTITLE": "Feedback-Titel",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Herunterladen inkl. Anhänge",
"LASTMESSAGE": "Letzte Nachricht",
"VIDAOO": "Vidaoo",
"VIDAOOAPIKEY": "Vidaoo Api Key",
"CLIENTEMAIL": "Kunden-E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privat Key",
+ "PRIVATEKEY": "Privater Schlüssel",
"PROJECTID": "Projekt-ID",
"EMAIL_ACCOUNT": "Email-Konto",
"OPEN_NEW_INTERACTION": "Neue Interaktion öffnen",
- "SUBJECT": "Gegenstand",
+ "SUBJECT": "Betreff",
"ADD_NOTE": "Notiz hinzufügen",
- "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
- "NOTE": "Hinweis",
+ "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
+ "NOTE": "Notiz",
"VIDAOOMETADATA": "Vidaoo-Metadaten",
"VIDAOONOTE": "Vidaoo-Hinweis",
"VIDAOOTOPIC": "Vidaoo-Thema"
{
"CONTACTMANAGER": {
- "VOICEQUEUEID": "Sprachwarteschlange ID",
- "CAMPAIGNID": "Kampagne ID",
- "STATE": "Zustand",
+ "VOICEQUEUEID": "ID Warteschlange für Sprachanrufe",
+ "CAMPAIGNID": "Kampagnen-ID",
+ "STATE": "Status",
"NAME": "Name",
"LISTS": "Listen",
"UNIQUEID": "Eindeutige ID",
"ENDTIME": "Endzeit",
"MOTION_BULL": "Motion Bull",
"HOPPER": "Hopper",
- "FINAL": "Hopper Final",
- "HISTORY": "Hopper Geschichte",
+ "FINAL": "Hopper final",
+ "HISTORY": "Hopper historisch",
"SCHEDULEDAT": "Geplant am",
"SEARCH_FOR_ANYONE": "Suche",
"EDIT_LIST": "Liste bearbeiten",
"DELETE_HOPPER": "Hopper löschen",
"RELOAD": "Neu laden",
"NO_COMPANIES": "Kein Unternehmen",
- "NO_AVAILABLE_ITEMS": "Keine verfügbaren Artikel",
+ "NO_AVAILABLE_ITEMS": "Keine Einträge verfügbar",
"ADD": "Hinzufügen",
"ERRORS": {
- "NAME_REQUIRED": "Der Name ist erforderlich",
- "FIRSTNAME_REQUIRED": "Der Vorname ist erforderlich",
- "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
+ "NAME_REQUIRED": "Name ist erforderlich",
+ "FIRSTNAME_REQUIRED": "Vorname ist erforderlich",
+ "PHONE_REQUIRED": "Telefonnummer ist erforderlich",
"ALIAS_REQUIRED": "Alias ist erforderlich",
- "VALUE_REQUIRED": "Der Wert ist erforderlich",
+ "VALUE_REQUIRED": "Wert ist erforderlich",
"EMAIL_MUST_VALID": "Falsches Format",
- "PHONEBAR_API": "Prüfen, ob die MotionBar ausgeführt wird und der Fernbedienungsschalter für den Agenten eingeschaltet ist",
+ "PHONEBAR_API": "Statusprüfung für die MotionBar und des Remote-Switches für den Agenten",
"ACTIONTYPE_REQUIRED": "Pflichtfeld",
"CLICKTOACTION_REQUIRED": "Pflichtfeld"
},
"DESCRIPTION": "Beschreibung",
- "DISPOSITION": "Disposition",
- "DISPOSITIONS": "Dispositionen",
- "VOICEDISPOSITIONS": "Sprachdispositionen",
- "NEW_VOICEDISPOSITION": "Neue Sprachdisposition",
+ "DISPOSITION": "Qualifizierung",
+ "DISPOSITIONS": "Qualifizierungen",
+ "VOICEDISPOSITIONS": "Anrufqualifizierungen",
+ "NEW_VOICEDISPOSITION": "Neue Anrufqualifizierung",
"CUSTOM_FIELDS": "Benutzerdefinierte Felder",
"ADD_LIST": "Liste hinzufügen",
"BACK": "Zurück",
"SELECTED": "Ausgewählt",
- "SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Keine auswählen",
+ "SELECT_ALL": "Alles auswählen",
+ "SELECT_NONE": "Nichts auswählen",
"COMPANIES": "Unternehmen",
"EDIT_COMPANY": "Unternehmen bearbeiten",
"DELETE_COMPANY": "Unternehmen löschen",
"STREET": "Straße",
"POSTALCODE": "Postleitzahl",
"DELETE": "Löschen",
- "DELETE_ALL": "Alle Löschen",
+ "DELETE_ALL": "Alles Löschen",
"CONTACTMANAGER": "Kontaktmanager",
"ID": "ID",
"SETTINGS": "Einstellungen",
"NEW_CONTACT": "Neuer Kontakt",
"NEW_TAG": "Neuer Tag",
"UPLOAD_CONTACTS": "Kontakte hochladen",
- "FINISH": "Fertig",
- "SUCCESS": "Erfolgreich",
+ "FINISH": "Beenden",
+ "SUCCESS": "Erfolg",
"FAILURE": "Fehler",
"ALL_CONTACTS": "Alle Kontakte",
"NEW_CUSTOMFIELD": "Neues benutzerdefiniertes Feld",
- "NO_VOICEDISPOSITION_AVAILABLE": "Keine Sprachdispositionen verfügbar",
- "ADD_VOICEDISPOSITION": "Sprachdisposition hinzufügen",
- "EDIT_VOICEDISPOSITION": "Sprachdisposition bearbeiten",
- "DELETE_VOICEDISPOSITION": "Sprachdisposition löschen",
- "VAT": "Mwst.",
- "COMPANYID": "Ihre Unternehmens-ID",
+ "NO_VOICEDISPOSITION_AVAILABLE": "Keine Anrufqualifizierung verfügbar",
+ "ADD_VOICEDISPOSITION": "Anrufqualifizierung hinzufügen",
+ "EDIT_VOICEDISPOSITION": "Anrufqualifizierung bearbeiten",
+ "DELETE_VOICEDISPOSITION": "Anrufqualifizierung löschen",
+ "VAT": "Ust-ID.",
+ "COMPANYID": "Unternehmens-ID",
"WEBSITE": "Website",
"EMAIL_DOMAIN": "E-Mail Domain",
"ADDRESS": "Adresse",
"GOTOCONTACTS_COMPANY": "Kontakte anzeigen",
"ADD_AGENT_TO_LIST": "Agenten zur Liste hinzufügen",
"AGENTADD_LIST": "Agenten zur Liste hinzufügen",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
- "NONE": "Keine",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
+ "NONE": "Nichts",
"FULLNAME": "Vollständiger Name",
- "CHECK_DUPLICATES": "Duplikate prüfen",
+ "CHECK_DUPLICATES": "auf Duplikate prüfen",
"DUPLICATES": "Duplikate",
- "UPLOAD_CSV": "Hochladen von CSV",
+ "UPLOAD_CSV": "Hochladen von CSV-Datei",
"TAG": "Tag",
"UPLOAD": "Hochladen",
"ALL_AGENTS": "Alle Agenten",
"DATE_OF_BIRTH": "Geburtsdatum",
"DATEOFBIRTH": "Geburtsdatum",
"NOTES": "Notizen",
- "EXPORTCSVCONTACTS_LIST": "In CSV exportieren",
+ "EXPORTCSVCONTACTS_LIST": "In CSV-Datei exportieren",
"GOTO_LIST": "Kontakte anzeigen",
"GOTO_COMPANY": "Kontakte anzeigen",
"REQUIRED": "Erforderlich",
"SESSIONS": "Sitzungen",
"AGENT": "Agent",
"PROJECT": "Projekt",
- "SELECT_LIST": "Wählen Sie eine Liste aus",
- "SELECT_COMPANY": "Wählen Sie ein Unternehmen aus",
- "SELECT_TAGS": "Wählen Sie ein oder mehrere Tags aus",
+ "SELECT_LIST": "Liste auswählen",
+ "SELECT_COMPANY": "Unternehmen auswählen",
+ "SELECT_TAGS": "Tags auswählen",
"HELP": {
- "PHONEBAR_API": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Fernbedienungsschalter für den Agenten eingeschaltet ist",
- "PHONEBAR_API_MESSAGE": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Fernbedienungsschalter für den Agenten eingeschaltet ist"
+ "PHONEBAR_API": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Remote-Switch für den Agenten eingeschaltet ist",
+ "PHONEBAR_API_MESSAGE": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Remote-Switch für den Agenten eingeschaltet ist"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
+ "OF": "von",
"SOCIAL": "Social",
"ROW": "Reihe",
- "EXPORT_ERRORS": "Fehler exportieren",
+ "EXPORT_ERRORS": "Fehler-Log exportieren",
"UPLOAD_COMPLETED": "Hochladen abgeschlossen",
"STOP": "Stopp",
- "SELECT_FILE": "Datei aussuchen",
+ "SELECT_FILE": "Datei auswählen",
"IMPORT_CONTACTS": "Kontakte importieren",
"MOTIONDIALER": "Motion Bull",
"PREFIX": "Vorwahl wählen",
"PRIORITY": "Priorität",
"USERID": "Agent-ID abrufen",
- "CUSTOMER_JOURNEY": "Kundenreise",
- "SELECT_TAG": "Wählen Sie Tags aus",
+ "CUSTOMER_JOURNEY": "Kundenhistorie",
+ "SELECT_TAG": "Tag auswählen",
"ALL": "Alle",
"BILLINGINFORMATION": "Abrechnungsdaten",
"COMPANY_FISCAL_TYPE": "Unternehmenssteuerart",
"CREATE": "Erstellen",
"EUROPE": "Europa",
- "EXPIREDAY": "Ablauftage",
+ "EXPIREDAY": "Ablauftag",
"FLATDISCOUNT": "Firmenrabatt",
"INVOICEARTICLE": "Gesetzliche Artikel",
"ISOCODE": "Nationaler ISO-Code",
"RELATIONSHIPCOMPANY": " ... mit",
"SDICODE": "SDI-Code",
"SOCIAL_CAPITAL": "Aktienkapital",
- "VATNUMBER_CF": "Codice Fiscale / VAT",
- "RECALLME": "Ruf mich zurück",
+ "VATNUMBER_CF": "Umsatzsteuer Identnummer / VAT",
+ "RECALLME": "Rückruf anfordern",
"ACTIONTYPE": "Aktionstyp",
- "CLICKTOACTION": "Zur Aktion klicken"
+ "CLICKTOACTION": "Klicken für Aktion"
}
}
{
"DASHBOARDS": {
- "HOME": "Home",
+ "HOME": "Startseite",
"CHAT": "Chat",
- "MAIL": "Email",
- "SMS": "Sms",
- "OPENCHANNEL": "Open Channel",
+ "MAIL": "E-Mail",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
"RATING": "Bewertung",
"FEEDBACK": "Feedback",
"AGENT": "Agent",
"CREATED_AT": "Erstellt am",
"CLOSED_AT": "Geschlossen am",
- "DISPOSITION": "Disposition",
+ "DISPOSITION": "Qualifizierung",
"CONTACT": "Kontakt",
"INTERACTION": "Interaktion",
"BROWSER_NAME": "Browser Name",
"BROWSER_VERSION": "Browser Version",
- "OS_NAME": "Name des Betriebssystems",
- "OS_VERSION": "Version des Betriebssystems",
+ "OS_NAME": "Betriebssystem Name",
+ "OS_VERSION": "Betriebssystem Version",
"DEVICE_MODEL": "Gerätemodell",
"DEVICE_VENDOR": "Gerätehersteller",
"DEVICE_TYPE": "Gerätetyp",
- "RECALLME": "Ruf mich zurück",
- "DROP_RATE": "Abgebrochene Anrufrate",
+ "RECALLME": "Rückruf anfordern",
+ "DROP_RATE": "Abbruchrate Anrufe",
"DROPPED": "Abgebrochen",
- "DROPPED_TEXT": "Abgebrochene Anrufe aus der Warteschlange",
+ "DROPPED_TEXT": "Abgebrochene Anrufe innerhalb der Warteschlange",
"DETAIL": "Detail",
"MOTION_BULL": "Motion Bull",
"LIMITED": "Limitiert",
"LIMITED_TEXT": "IVR-Kampagnen Anrufe getätigt/limitiert",
"DASHBOARDS": "Dashboards",
- "RECORDINGS": "Aufnahmen",
- "TODAY_MOTION_BULL_STATS": "Warteschlangen-Kampagnen Tagesstatistiken",
+ "RECORDINGS": "Aufzeichnungen",
+ "TODAY_MOTION_BULL_STATS": "Tagesstatistiken Warteschlangen",
"ORIGINATED": "Gewählt",
"ORIGINATED_TEXT": "Anrufe aus der Warteschlange gewählt",
"UPDATE": "Aktualisieren",
"MORE": "Mehr",
"MOTIONDIALER": "Motion Dialer",
- "DISPOSE": "Entsorgen",
+ "DISPOSE": "Qualifizieren",
"QUEUES": "Warteschlangen",
- "DIALER_CALL": "Dialer Anruf",
+ "DIALER_CALL": "Dialer-Anruf",
"ELAPSED_TIME": "Abgelaufene Zeit",
"EDIT": "Bearbeiten",
"MERGE": "Zusammenführen",
"DUPLICATE": "Duplizieren",
"UNIQUEID": "Eindeutige ID",
"CAMPAIGN": "Kampagne",
- "NONE": "Keine",
+ "NONE": "Nichts",
"NAME": "Name",
"ANSWER_MACHINE": "Anrufbeantworter",
"INTERESTED": "Interessiert",
"NOT_INTERESTED": "Kein Interesse",
"PERSONAL_INFO": "Persönliche Infos",
"SOLD": "Verkauft",
- "SPECIAL": "Spezielle",
+ "SPECIAL": "Speziell",
"BLACKLIST": "Blacklist",
- "RESCHEDULE": "Verschieben",
+ "RESCHEDULE": "erneut Planen",
"FIRSTNAME": "Vorname",
"LASTNAME": "Nachname",
- "MOBILE": "Mobile",
+ "MOBILE": "Mobilnummer",
"DATE_OF_BIRTH": "Geburtsdatum",
"COMPANY": "Unternehmen",
"TAG": "Tag",
"POSTALCODE": "Postleitzahl",
"CUSTOM_FIELDS": "Benutzerdefinierte Felder",
"GENERAL": "Allgemein",
- "VOICE": "Sprache",
+ "VOICE": "Sprachanrufe",
"TODAY_IVR_CAMPAIGNS_STATS": "IVR-Tagesstatistiken",
- "TODAY_INBOUND_STATS": "Inbound Warteschlangen Tagesstatistiken",
- "TODAY_OUTBOUND_STATS": "Outbound Warteschlangen Tagesstatistiken",
- "WAITING": "Anrufe in der Warteschlange",
+ "TODAY_INBOUND_STATS": "Tagesstatistiken - eingehende Warteschlangen",
+ "TODAY_OUTBOUND_STATS": "Tagesstatistiken - ausgehende Warteschlangen",
+ "WAITING": "Anrufe in Warteschlange",
"TALKING": "Im Gespräch",
- "INBOUND_ANSWERED": "Angenommen",
- "OUTBOUND_ANSWERED": "Angenommen",
- "ABANDONED": "Verlassen",
- "TOTAL_OFFERED": "Insgesamt",
+ "INBOUND_ANSWERED": "Angenommen eingehend",
+ "OUTBOUND_ANSWERED": "Angenommen ausgehend",
+ "ABANDONED": "Abgebrochen",
+ "TOTAL_OFFERED": "Gesamt angeboten",
"AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "INBOUND_ANSWER_RATE": "Angenommene Anrufrate",
- "OUTBOUND_ANSWER_RATE": "Angenommene Anrufrate",
- "ABANDON_RATE": "Verlassene Anrufrate",
- "UNMANAGED": "Nicht verwaltete",
- "TOTAL": "Insgesamt",
+ "INBOUND_ANSWER_RATE": "Antwortrate eingehend",
+ "OUTBOUND_ANSWER_RATE": "Antwortrate ausgehend",
+ "ABANDON_RATE": "Abbruchrate",
+ "UNMANAGED": "Nicht bearbeitet",
+ "TOTAL": "Gesamt",
"TOT_DURATION": "Gesamtdauer",
"AVG_DURATION": "Durchschnittliche Dauer",
"HELP": {
- "ORIGINATEDLIMITED": "IVR Kampagnen gewählt/Limitiert",
- "DROPPED": "Die Gesamtzahl abgebrochener Anrufe aus der Warteschlange",
- "DROP_RATE": "Die Rate aller abgebrochener Anrufe aus der Warteschlange",
- "WAITING": "Die Gesamtzahl der wartenden Anrufe aus der Warteschlange",
- "OUTBOUND_ANSWERED": "Die Gesamtzahl der angenommenen ausgehenden Anrufe",
- "ABANDONED": "Die Gesamtzahl der abgebrochenen Anrufe aus der Warteschlange",
- "TOTAL_OFFERED": "Die Gesamtzahl der Warteschlangenanrufe (angenommen + verlassen + nicht verwaltet in der letzten Warteschlange des Datenflusses). Beachten Sie, dass Anrufe, die in ein IVR und nicht in eine Warteschlange eingehen, nicht berücksichtigt werden.",
- "AVG_HOLD_TIME": "Die durchschnittliche Interaktionswartezeit, d.h. die durchschnittliche Wartezeit auf die Antwort eines Agenten für alle vorhandenen Interaktionen.",
- "OUTBOUND_ANSWER_RATE": "Die Rate aller angenommenen ausgehenden Anrufe",
- "ABANDON_RATE": "Die Rate aller verlassenen Anrufe aus der Warteschlange",
- "UNMANAGED": "Die Gesamtzahl der nicht verwalteten Warteschlangenanfrufe für alle vorhandenen Warteschlangen. Es enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen werden (siehe Asterisk-Dokumentation für weitere Informationen).",
- "TOTAL": "Die Gesamtzahl der ausgehenden Anrufe",
- "TOT_DURATION": "Die Gesamtdauer aller ausgehenden Anrufe",
- "AVG_DURATION": "Die durchschnittliche Dauer aller angenommenen ausgehenden Anrufe",
- "ORIGINATED": "Die Gesamtzahl der in den Warteschlangenkampagnen gewählten Anrufe",
- "ABANDONED_RATE": "Die Rate aller abgebrochenen Interaktionen",
- "AVG_MANAGED_TIME": "Die durchschnittliche verwaltete Interaktionszeit, nämlich die durchschnittliche Zeit, die während des Gesprächs verbracht wird",
- "MANAGED": "Die Gesamtzahl der abgeschlossenen Interaktionen",
- "MANAGED_RATE": "Die verwaltete Rate aller Interaktionen",
- "OPENED": "Die Gesamtzahl der aktiven Interaktionen",
- "UNMANAGED_RATE": "Die nicht verwaltete Rate aller Interaktionen",
- "VOICE_ABANDONED": "Die Gesamtzahl der aufgegebenen Warteschlangenanrufe unter Berücksichtigung aller vorhandenen Warteschlangen. Beachten Sie, dass Anrufe, die wegen Timeout und joinempty abgebrochen werden, nicht berücksichtigt werden",
- "VOICE_ANSWERED": "Die Gesamtzahl der abgeschlossenen Warteschlangenanrufe für alle vorhandenen Warteschlangen",
- "VOICE_ANSWER_RATE": "Die Antwortrate aller Warteschlangenanrufe",
- "VOICE_AVG_HOLD_TIME": "Die durchschnittliche Wartezeit für Warteschlangen, nämlich die durchschnittliche Wartezeit auf die Antwort eines Agenten für alle vorhandenen Warteschlangen",
- "VOICE_AVG_TALK_TIME": "Die durchschnittliche Gesprächszeit in der Warteschlange, nämlich die durchschnittliche Gesprächszeit für alle vorhandenen Warteschlangen",
- "VOICE_TALKING": "Die Gesamtzahl der aktiven Warteschlangenanrufe für alle vorhandenen Warteschlangen",
- "VOICE_TOTAL_OFFERED": "Die Gesamtzahl der Warteschlangenanrufe (angenommen + verlassen + nicht verwaltet in der letzten Warteschlange des Datenflusses). Beachten Sie, dass Anrufe, die in ein IVR und nicht in eine Warteschlange eingehen, nicht berücksichtigt werden.",
- "VOICE_UNMANAGED": "Die Gesamtzahl der nicht verwalteten Warteschlangenanfrufe für alle vorhandenen Warteschlangen. Es enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen werden (siehe Asterisk-Dokumentation für weitere Informationen).",
- "VOICE_WAITING": "Die Gesamtanzahl der wartenden Warteschlangenanrufe für alle vorhandenen Warteschlangen",
- "MANDATORY_DISPOSITION_ENABLED": "Obligatorische Disposition für dieses Konto aktiviert",
- "EXACT_MATCH_FILTER": "Suche nach einer genauen Übereinstimmung",
- "LIKE_FILTER": "Suchen Sie nach dem angegebenen Muster"
+ "ORIGINATEDLIMITED": "IVR Kampagnen gewählt/limitiert",
+ "DROPPED": "Gesamtzahl abgebrochener Anrufe innerhalb der Warteschlange",
+ "DROP_RATE": "Abbruchrate aller Anrufe in der Warteschlange",
+ "WAITING": "Gesamtzahl der wartenden Anrufe aus der Warteschlange",
+ "OUTBOUND_ANSWERED": "Gesamtzahl der angenommenen ausgehenden Anrufe",
+ "ABANDONED": "Gesamtzahl der abgebrochenen Anrufe innerhalb der Warteschlange",
+ "TOTAL_OFFERED": "Gesamtzahl der angebotenen Anrufe in der Warteschlange (angenommen + abgebrochen + nicht bearbeitet in der letzten Warteschlange des Callflows). Hinweis: Anrufe innerhalb der IVR werden nicht berücksichtigt.",
+ "AVG_HOLD_TIME": "Durchschnittliche Wartezeit einer Interaktion bis zur Beantwortung durch einen Agenten.",
+ "OUTBOUND_ANSWER_RATE": "Rate aller angenommenen ausgehenden Anrufe",
+ "ABANDON_RATE": "Rate aller abgebrochener Anrufe innerhalb der Warteschlange",
+ "UNMANAGED": "Gesamtzahl der nicht bearbeiteten Anrufe für alle Warteschlangen. Enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen wurden (siehe Asterisk-Dokumentation für weitere Informationen).",
+ "TOTAL": "Gesamtzahl der ausgehenden Anrufe",
+ "TOT_DURATION": "Gesamtdauer aller ausgehenden Anrufe",
+ "AVG_DURATION": "Durchschnittliche Dauer aller angenommenen ausgehenden Anrufe",
+ "ORIGINATED": "Gesamtzahl der in den Warteschlangen-Kampagnen gewählten Anrufe",
+ "ABANDONED_RATE": "Rate aller abgebrochenen Interaktionen",
+ "AVG_MANAGED_TIME": "Durchschnittliche Bearbeitungszeit einer Interaktion",
+ "MANAGED": "Gesamtzahl der abgeschlossenen Interaktionen",
+ "MANAGED_RATE": "Rate aller bearbeiteten Anrufe",
+ "OPENED": "Gesamtzahl der aktiven Interaktionen",
+ "UNMANAGED_RATE": "Rate aller unbearbeiteten Interaktionen",
+ "VOICE_ABANDONED": "Gesamtzahl der abgebrochenen Anrufe in der Warteschlange unter Berücksichtigung aller vorhandenen Warteschlangen. Hinweis: Anrufe, die wegen Timeout und joinempty abgebrochen wurden, werden nicht berücksichtigt.",
+ "VOICE_ANSWERED": "Gesamtzahl der abgeschlossenen Anrufe für alle vorhandenen Warteschlangen",
+ "VOICE_ANSWER_RATE": "Antwortrate aller Anrufe in der Warteschlange",
+ "VOICE_AVG_HOLD_TIME": "Durchschnittliche Wartezeit bis zur Beantwortung durch einen Agenten für alle vorhandenen Warteschlangen",
+ "VOICE_AVG_TALK_TIME": "Durchschnittliche Gesprächszeit für alle Anrufe aus der Warteschlange ",
+ "VOICE_TALKING": "Gesamtzahl der aktiven Anrufe für alle vorhandenen Warteschlangen",
+ "VOICE_TOTAL_OFFERED": "Gesamtzahl der Anrufe der Warteschlangen (angenommen + abgebrochen + nicht bearbeitet in der letzten Warteschlange des Callflows). Hinweis: Anrufe innerhalb der IVR werden nicht berücksichtigt.",
+ "VOICE_UNMANAGED": "Gesamtzahl der nicht bearbeiteten Anrufe für alle vorhandenen Warteschlangen. Enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen wurden (siehe Asterisk-Dokumentation für weitere Informationen).",
+ "VOICE_WAITING": "Gesamtanzahl der aktuell wartenden Anrufe für alle vorhandenen Warteschlangen",
+ "MANDATORY_DISPOSITION_ENABLED": "Kontaktqualifizierung erforderlich",
+ "EXACT_MATCH_FILTER": "Suche nach einer genauen Übereinstimmung der Suchbegriffe",
+ "LIKE_FILTER": "Suche nach variablen Übereinstimmungen der Suchbegriffe"
},
"ERRORS": {
"FIRSTNAME_REQUIRED": "Der erste Name ist erforderlich",
"CAMPAIGN_REQUIRED": "Pflichtfeld",
"FAILED_INITIALIZATION": "Fehler während der Initialisierung"
},
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
- "WELCOME_TO_MOTION": "Willkommen bei Motion",
+ "NO_AVAILABLE_INFO": "Keine Information vorhanden",
+ "WELCOME_TO_MOTION": "Willkommen zu Motion",
"WELCOME_MESSAGE": "Verwenden Sie die linke Seitenleiste, um durch die verfügbaren Abschnitte zu navigieren",
"ADD": "Hinzufügen",
- "CONTACTMANAGER": "Contact Manager",
+ "CONTACTMANAGER": "Kontaktmanager",
"DASHBOARD": "Dashboard",
"EDIT_CONTACT": "Kontakt bearbeiten",
"EMAIL": "E-Mail",
"NEW_CONTACT": "Neuer Kontakt",
"PHONE": "Telefon",
"SAVE": "Speichern",
- "INBOUND_WAITING_CALLS": "Eingehende Anrufe in der Warteschlange",
+ "INBOUND_WAITING_CALLS": "Wartende Anrufe (Eingehend)",
"CONTACTS": "Kontakte",
"MYCONTACTS": "Meine Kontakte",
"ADD_CONTACT": "Kontakt hinzufügen",
- "RELOAD": "Neu laden",
+ "RELOAD": "Neu Laden",
"WAITING_TEXT": "Wartende Interaktionen",
- "TALKING_TEXT": "Aktive Anrufe in der Warteschlange",
- "INBOUND_ANSWERED_TEXT": "Angenommene Anrufe in der Warteschlange",
- "ABANDONED_TEXT": "Verlassene Anrufe in der Warteschlange",
- "DROP_RATE_TEXT": "Rate abgebrochener Anrufe in der Warteschlange",
- "TOTAL_OFFERED_TEXT": "Gesamtzahl der Interaktionen",
- "AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit der Interaktionen",
- "AVG_TALK_TIME_TEXT": "Gesprächszeit der Warteschlangenanrufe",
- "INBOUND_ANSWER_RATE_TEXT": "Rate angenommener Anrufe in der Warteschlange ",
- "UNMANAGED_TEXT": "Nicht verwaltete Interaktionen",
- "TOTAL_TEXT": "Gesamtzahl ausgehender Anrufe",
- "OUTBOUND_ANSWERED_TEXT": "Ausgehende angenommene Anrufe ",
+ "TALKING_TEXT": "Aktive Anrufe",
+ "INBOUND_ANSWERED_TEXT": "Angenommene Anrufe",
+ "ABANDONED_TEXT": "Abgebrochene Anrufe",
+ "DROP_RATE_TEXT": "Abbruchrate",
+ "TOTAL_OFFERED_TEXT": "Gesamt angebotene Interaktionen",
+ "AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit",
+ "AVG_TALK_TIME_TEXT": "Durchschnittliche Gesprächszeit",
+ "INBOUND_ANSWER_RATE_TEXT": "Antwortrate ",
+ "UNMANAGED_TEXT": "Nicht bearbeitete Interaktionen",
+ "TOTAL_TEXT": "Gesamt ausgehende Anrufe",
+ "OUTBOUND_ANSWERED_TEXT": "Beantwortete Anrufe (Ausgehend) ",
"TOT_DURATION_TEXT": "Gesamtdauer ausgehender Anrufe ",
"AVG_DURATION_TEXT": "Durchschnittliche Dauer ausgehender Anrufe",
"OUTBOUND_ANSWER_RATE_TEXT": "Rate angenommener ausgehender Anrufe",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
- "REPLY_PLACEHOLDER": "Geben Sie ein und drücken Sie die Eingabetaste, um eine Nachricht zu senden",
+ "OF": "von",
+ "REPLY_PLACEHOLDER": "Text eingeben und ENTER drücken zum Senden",
"CONTACT_INFO": "Kontaktinformationen",
- "CLOSE_AND_DISPOSE": "Schließen und Entsorgen",
- "DISPOSITIONS": "Dispositionen",
- "CLOSE_WITHOUT_DISPOSE": "Schließen ohne Entsorgen",
- "ACCEPT": "Akzeptieren",
+ "CLOSE_AND_DISPOSE": "Schließen und Qualifizieren",
+ "DISPOSITIONS": "Qualifizierungen",
+ "CLOSE_WITHOUT_DISPOSE": "Schließen ohne Qualifizierung",
+ "ACCEPT": "Annehmen",
"REJECT": "Ablehnen",
"CLOSED": "Geschlossen",
- "INFO": "Info",
+ "INFO": "Information",
"NOTE": "Hinweis",
- "ACCEPT_ELSEWHERE": "Anderswo akzeptiert",
+ "ACCEPT_ELSEWHERE": "Von anderem Teilnehmer angenommen",
"ATTENTION": "Achtung",
"SOCIAL": "Sozial",
"NO_JSCRIPTY_PROJECTS_AVAILABLE": "Keine Jscripty-Projekte verfügbar",
"FILTER": "Filter",
"SELECT_STATUS": "Status auswählen",
"SELECT_ACCOUNT": "Konto auswählen",
- "SELECT_WEBSITE": "Wählen Sie die Webseite",
- "ALL": "Alle",
+ "SELECT_WEBSITE": "Webseite auswählen",
+ "ALL": "Alles",
"INTERACTIONS": "Interaktionen",
- "STARTEDAT": "Gestartet am",
+ "STARTEDAT": "Begonnen am",
"STATUS": "Status",
"OPEN": "Öffnen",
- "SHOW": "Zeigen",
+ "SHOW": "Anzeigen",
"ME": "ICH",
"NOT_ASSIGNED": "Nicht zugewiesen",
"UNKNOWN": "Unbekannt",
- "SELECT_USER": "Wählen Sie einen Benutzer",
+ "SELECT_USER": "Benutzer auswählen",
"LAST_MESSAGE": "Letzte Nachricht",
"USER": "Benutzer",
"TAGS": "Tags",
"SOURCE": "Quelle",
"DESTINATION": "Ziel",
"CALLERID": "Anrufer-ID",
- "END_AT": "Ende am",
+ "END_AT": "Beendet am",
"DURATION": "Dauer",
"SHOW_DETAILS": "Details anzeigen",
"HIDE_DETAILS": "Details ausblenden",
"EXTERNAL_URL": "Externer Link",
"SET_AS": "Festlegen als",
"PENDING": "Ausstehend",
- "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
- "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
+ "CANNED_ANSWER_NOT_FOUND": "Keine Textbausteine gefunden",
+ "CANNED_ANSWER_SEARCH": "Hier nach einem Textbaustein suchen",
"NO_MAIL_ACCOUNTS_AVAILABLE": "Keine E-Mail-Konten verfügbar",
"NO_FAX_ACCOUNTS_AVAILABLE": "Keine Fax-Konten verfügbar",
"NO_SMS_ACCOUNTS_AVAILABLE": "Keine SMS-Konten verfügbar",
- "FILTER_VOICE_QUEUES": "Sprachwarteschlangen filtern",
- "LOADING_INTERACTION": "Wir laden die Interaktion ...",
+ "FILTER_VOICE_QUEUES": "Anrufwarteschlangen filtern",
+ "LOADING_INTERACTION": "Interaktion wird geladen",
"JANUARY": "Januar",
"FEBRUARY": "Februar",
"MARCH": "März",
"SELECT_DATE": "Datum auswählen",
"SELECT_DATE_RANGE": "Wählen Sie einen Datumsbereich",
"CLEAR": "Löschen",
- "CALL_NUMBER": "Anruf",
+ "CALL_NUMBER": "Anrufen",
"TRANSFER_NUMBER": "Transfer",
- "CALL_SAVED": "Anruf richtig gespeichert",
- "CALL_DISPOSED": "Anruf richtig entsorgt",
- "CHANNEL_WAITING_TEXT": "Wartende Warteschlangen-Interaktionen",
+ "CALL_SAVED": "Anruf erfolgreich gespeichert",
+ "CALL_DISPOSED": "Anruf erfolgreich qualifiziert",
+ "CHANNEL_WAITING_TEXT": "Wartende Interaktionen",
"CHANNEL_QUEUE": "Warteschlange",
- "CHANNEL_FROM": "Von",
+ "CHANNEL_FROM": "von",
"MARK_AS_UNREAD": "Als ungelesen markieren",
- "SELECT_AGENT": "Wählen Sie den Agenten aus",
+ "SELECT_AGENT": "Agenten auswählen",
"READ": "Gelesen",
- "SELECT_READ_UNREAD": "Wählen Sie Lesen/Ungelesen",
- "SELECT_SUBSTATUS": "Wählen Sie Substatus",
+ "SELECT_READ_UNREAD": "Wählen ob Lesen/Ungelesen",
+ "SELECT_SUBSTATUS": "Zwischenstatus auswählen",
"UNREAD": "Ungelesen",
- "ABANDONAT": "Verlassen",
- "ABANDONEDQUEUECALLS": "Verlassene Warteschlangenanrufe",
+ "ABANDONAT": "Abgebrochen",
+ "ABANDONEDQUEUECALLS": "Abgebrochene Anrufe",
"FREE": "Frei",
"LASTASSIGNEDTO": "Zuletzt zugewiesen an",
"QUEUE": "Warteschlange",
"QUEUECALLEREXITAT": "Abgebrochen",
"QUEUECALLEREXITREASON": "Grund",
"RESERVED": "Reserviert",
- "SELECT_CAMPAIGN": "Wählen Sie eine Warteschlange",
+ "SELECT_CAMPAIGN": "Warteschlange auswählen",
"ASSIGNTO": "Zuweisen",
- "CLICKRELOAD": "Neue verlassene Anrufe! Bitte neu laden",
+ "CLICKRELOAD": "Verpasste Anrufe! Bitte Seite erneut laden",
"NOTAVAILABLE": "Nicht verfügbar",
- "CURRENTLY_IN_USE_BY": "Derzeit im Einsatz von",
- "CUSTOMER_JOURNEY": "Kundenreise",
+ "CURRENTLY_IN_USE_BY": "Derzeit verwendet von",
+ "CUSTOMER_JOURNEY": "Kundenhistorie",
"NO_DATA_AVAILABLE": "Keine Daten verfügbar",
"AGENTS": "Agenten",
"TRANSFER": "Transfer",
- "NO_DISPOSITION_SET": "Keine Disposition festgelegt",
- "ABANDONED_RATE": "Verlassene Rate",
- "ABANDONED_RATE_TEXT": "Rate verlassener Interaktionen",
- "AVG_MANAGED_TIME": " Durchschnittliche Verwaltungszeit",
- "AVG_MANAGED_TIME_TEXT": "Durchschnittliche Verwaltungszeit der Interkationen",
- "MANAGED": "Verwaltet",
- "MANAGED_RATE": "Verwaltete Rate",
- "MANAGED_RATE_TEXT": "Verwaltete Interaktionsrate",
- "MANAGED_TEXT": "Verwaltete Interaktionen",
- "OPENED_TEXT": "Geöffnete Interaktionen",
+ "NO_DISPOSITION_SET": "Keine Qualifizierungen definiert",
+ "ABANDONED_RATE": "Abbruchrate",
+ "ABANDONED_RATE_TEXT": "Rate der abgebrochenen Anrufe innerhalb der Warteschlange",
+ "AVG_MANAGED_TIME": "Durchschnittliche Bearbeitungszeit",
+ "AVG_MANAGED_TIME_TEXT": "Durchschnittliche Bearbeitungszeit aller Interkationen",
+ "MANAGED": "Bearbeitet",
+ "MANAGED_RATE": "Bearbeitungsrate",
+ "MANAGED_RATE_TEXT": "Rate der bearbeiteten Interaktionen",
+ "MANAGED_TEXT": "Interaktionen bearbeitet",
+ "OPENED_TEXT": "Interaktionen geöffnet",
"TODAY_INTERACTIONS_STATS": "Interaktionen Tagesstatistiken",
- "UNMANAGED_RATE": "Nicht verwaltete Rate",
- "UNMANAGED_RATE_TEXT": "Nicht verwaltete Interaktionsate",
- "VOICE_ABANDONED": "Verlassen",
- "VOICE_ABANDONED_TEXT": "Verlassene Warteschlangenanrufe",
- "VOICE_ABANDON_RATE": "Verlassene Rate",
- "VOICE_ABANDON_RATE_TEXT": "Rate verlassener Warteschlangenanrufe",
+ "UNMANAGED_RATE": "Rate nicht Bearbeitet",
+ "UNMANAGED_RATE_TEXT": "Rate der nicht bearbeiteten Interaktionen in der Warteschlange",
+ "VOICE_ABANDONED": "Abgebrochen",
+ "VOICE_ABANDONED_TEXT": "Abgebrochene Anrufe innerhalb der Warteschlange",
+ "VOICE_ABANDON_RATE": "Abbruchrate",
+ "VOICE_ABANDON_RATE_TEXT": "Rate der abgebrochenen Anrufe innerhalb der Warteschlange",
"VOICE_ANSWERED": "Angenommen",
"VOICE_ANSWERED_TEXT": "Angenommene Anrufe in der Warteschlange",
- "VOICE_ANSWER_RATE": "Angenommene Rate",
+ "VOICE_ANSWER_RATE": "Antwortrate",
"VOICE_ANSWER_RATE_TEXT": "Rate angenommener Anrufe in der Warteschlange",
"VOICE_AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "VOICE_AVG_HOLD_TIME_TEXT": "Queue ruft AVG HOLD TIME an",
+ "VOICE_AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit aller Sprachanrufe",
"VOICE_AVG_TALK_TIME": "Durchschnittliche Gesprächszeit",
- "VOICE_AVG_TALK_TIME_TEXT": "Gesprächszeit der Anrufe in der Warteschlage",
+ "VOICE_AVG_TALK_TIME_TEXT": "Durchschnittliche Gesprächszeit aller Anrufe nach der Warteschleife",
"VOICE_TALKING": "IM GESPRÄCH",
"VOICE_TALKING_TEXT": "Aktive Anrufe in der Warteschlange",
- "VOICE_TOTAL_OFFERED": "Insgesamt",
- "VOICE_TOTAL_OFFERED_TEXT": "Gesamtzahl der Anrufe in der Warteschlange",
- "VOICE_UNMANAGED": "Nicht verwaltet",
- "VOICE_UNMANAGED_TEXT": "Nicht verwaltete Anrufe in der Warteschlange",
+ "VOICE_TOTAL_OFFERED": "Gesamt angeboten",
+ "VOICE_TOTAL_OFFERED_TEXT": "Gesamtzahl der angebotenen Anrufe in der Warteschlange",
+ "VOICE_UNMANAGED": "Nicht bearbeitet",
+ "VOICE_UNMANAGED_TEXT": "Nicht bearbeitete Anrufe in der Warteschlange",
"VOICE_WAITING": "Wartende Anrufe",
"VOICE_WAITING_TEXT": "Wartende Anrufe in der Warteschlange",
"DOWNLOAD": "Herunterladen",
"SCHEDULED_CALLS": "Geplante Anrufe",
- "PRIVATE": "Privat",
+ "PRIVATE": "Persönlich",
"PUBLIC": "Öffentlich",
- "PUBLIC_INTERACTION": "Die Interaktion ist öffentlich",
+ "PUBLIC_INTERACTION": "Öffentliche Interaktion",
"VISIBILITY": "Sichtbarkeit",
- "INTERACTION_CLOSED": "Interaktion korrekt geschlossen",
- "INTERACTION_CLOSED_DISPOSED": "Interaktion korrekt geschlossen und entsorgt",
- "INTERACTION_DISPOSED": "Interaktion korrekt entsorgt",
- "ASSIGNED_TO_OTHERS": "An andere zugewiesen",
- "SELECT_ALL": "Alle auswählen",
+ "INTERACTION_CLOSED": "Interaktion erfolgreich geschlossen",
+ "INTERACTION_CLOSED_DISPOSED": "Interaktion erfolgreich geschlossen und qualifiziert",
+ "INTERACTION_DISPOSED": "Interaktion erfolgreich qualifiziert",
+ "ASSIGNED_TO_OTHERS": "An Andere zugewiesen",
+ "SELECT_ALL": "Alles auswählen",
"CHAT_INTERACTIONS": "Chat-Interaktionen",
"FAX_INTERACTIONS": "Fax-Interaktionen",
- "ID": "Id",
+ "ID": "ID",
"MAIL_INTERACTIONS": "E-Mail-Interaktionen",
- "OPENCHANNEL_INTERACTIONS": "Open Channel-Interaktionen",
+ "OPENCHANNEL_INTERACTIONS": "Offener-Kanal-Interaktionen",
"SMS_INTERACTIONS": "SMS-Interaktionen",
- "CANCEL": "Stornieren",
- "DRAFT": "Entwurf",
- "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Sind Sie sicher, dass Sie ihn überschreiben möchten?",
+ "CANCEL": "Abbrechen",
+ "DRAFT": "Entwurf speichern",
+ "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Möchten Sie diesen überschreiben?",
"DRAFT_SAVE_WARNING_TITLE": "Vorhandenen Entwurf überschreiben?",
"OVERWRITE": "Überschreiben",
"SAVE_AS_DRAFT": "Als Entwurf speichern",
"UNTITLED": "Ohne Titel",
"UPDATE_DRAFT": "Entwurf aktualisieren",
"NO_AVAILABLE_INTERACTION": "Keine Interaktionen verfügbar",
- "ACCOUNTINGDOC": "Buchhaltung",
+ "ACCOUNTINGDOC": "Abrechnungsdokumente",
"ADD_PRODUCTPRICELIST": "PRODUKT HINZUFÜGEN",
"AGENTFULLNAME": "Agent",
"ALL_COMPANIES": "Alle Unternehmen",
- "ALL_PRODUCTS": "Alle",
- "ALL_STATUS": "Alle",
- "ALL_STEP": "Alle",
+ "ALL_PRODUCTS": "Alles",
+ "ALL_STATUS": "Alles",
+ "ALL_STEP": "Alles",
"ALL_WORKFLOW": "Alle Arbeitsabläufe",
"ATTENDACELASTINVOICE": "Letzte Rechnung",
"ATTENDACENEXTINVOICE": "Nächste Rechnung",
"AUTHORIZED": "AUTORISIERT",
"AUTOINVOICE": "SELBSTABRECHNUNG",
"AUTOPROFORMA": "SELBST-PROFORMA",
- "BALANCE": "BALANCE",
+ "BALANCE": "SALDO",
"BY": "Durch",
"CLONEPROFORMA": "Klon",
"COMPANIES": "Unternehmen",
"DOSSIERS": "Dossiers",
"DOSSIER_INFO": "Information",
"ENDDATE": "Ablaufdatum",
- "FROM": "Von",
+ "FROM": "von",
"GRAPHINVOICES": "Diagramm der Rechnungsemission",
"INASSET": "Kapital",
"INVOICE": "RECHNUNG",
"INVOICEPAYED": "Bezahlt",
"INVOICES": "RECHNUNGEN",
"INVOICESTATUS": "Status",
- "INVOICETOTAL": "Insgesamt",
+ "INVOICETOTAL": "Gesamt",
"INVOICE_INFO": "Rechnung",
"MANAGESALES": "Abonnements",
"MOVEASSET": "Kapital",
"QUOTATIONSTATUS": "Status",
"QUOTATIONSUBSCRIPTION": "Dauer",
"QUOTATIONTAX": "MwSt",
- "QUOTATIONTOTAL": "Insgesamt",
+ "QUOTATIONTOTAL": "Gesamt",
"QUOTATIONTOTALPRICE": "Gesamt netto",
- "QUOTATIONTOTALS": "Insgesamt",
+ "QUOTATIONTOTALS": "Gesamt",
"QUOTATIONTOTALTAX": "Gesamtsteuer",
"QUOTATIONUNIT": "Einheit",
"QUOTATIONVAT": "VAT",
"TOTALPAYMENTS": "Gesamtzahlungen",
"UPDATED_AT": "Geändert am",
"UPDATE_PRODUCT": "Produkt aktualisieren",
- "WORKFLOW": "Wählen Sie einen Arbeitsablauf",
+ "WORKFLOW": "Arbeitsablauf wählen",
"YEARS": "Jahre",
"CUSTOMER_IP": "Ursprüngliche IP-Adresse",
"CUSTOMER_PORT": "Ursprünglicher TCP-Port",
"ADVANCED_SEARCH": "Erweiterte Suche",
- "AND": "Und",
+ "AND": "und",
"APPLY": "Anwenden",
- "CONTAINS": "Enthält",
+ "CONTAINS": "enthält",
"DISABLED": "Deaktiviert",
"ENABLED": "Aktiviert",
"ENDING_DATE": "Enddatum",
"ENDING_VALUE": "Endwert",
- "ENDS_WITH": "Endet mit",
- "EQUALS": "Gleich",
- "IS_AMONG": "Ist unter",
- "IS_BETWEEN": "Ist zwischen",
- "IS_GREATER_THAN": "Ist größer als",
- "IS_GREATER_THAN_OR_EQUAL_TO": "Ist größer oder gleich",
- "IS_LESS_THAN": "Ist kleiner als",
- "IS_LESS_THAN_OR_EQUAL_TO": "Ist kleiner oder gleich",
- "IS_NOT_AMONG": "Ist nicht unter",
- "IS_NOT_EQUAL": "Ist nicht gleich",
+ "ENDS_WITH": "endet mit",
+ "EQUALS": "gleich",
+ "IS_AMONG": "ist unter",
+ "IS_BETWEEN": "ist zwischen",
+ "IS_GREATER_THAN": "ist größer als",
+ "IS_GREATER_THAN_OR_EQUAL_TO": "ist größer oder gleich",
+ "IS_LESS_THAN": "ist kleiner als",
+ "IS_LESS_THAN_OR_EQUAL_TO": "ist kleiner oder gleich",
+ "IS_NOT_AMONG": "ist nicht innerhalb",
+ "IS_NOT_EQUAL": "ist nicht gleich",
"MEET_ALL_CONDITIONS": "Alle Bedingungen erfüllen",
"MEET_ANY_CONDITIONS": "Mindestens eine Bedingung erfüllen",
"NEW_CONDITION": "Neue Bedingung",
"SELECT_OPERATOR": "Operator auswählen",
"STARTING_DATE": "Startdatum",
"STARTING_VALUE": "Startwert",
- "STARTS_WITH": "Beginnt mit",
+ "STARTS_WITH": "beginnt mit",
"VALUE": "Wert",
"VALUES": "Werte",
"VALUE_RANGE_CHECK": "Wert muss größer sein als",
- "CHOOSE": "Wählen",
+ "CHOOSE": "Auswählen",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
"DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
- "SELECT_QUEUE": "Wählen Sie eine Warteschlange aus",
+ "SELECT_QUEUE": "Warteschlange auswählen",
"VIDAOOSESSION": "Videoanruf starten",
"WHATSAPP": "WhatsApp Connector",
- "WHATSAPP_INTERACTIONS": "WhatsApp Connector-Interaktionen",
+ "WHATSAPP_INTERACTIONS": "WhatsApp-Interaktionen",
"LAST_UPDATED": "Zuletzt aktualisiert",
"MATCHING_FIELD": "Übereinstimmendes Feld",
"MULTIPLE_CONTACTS_FOUND": "Mehrere Kontakte für Nummer gefunden",
- "SELECT": "Wählen",
+ "SELECT": "Auswählen",
"SELECT_CONTACT": "Kontakt auswählen",
- "WHICH_ONE_TO_USE": "Welches möchten Sie verwenden?",
+ "WHICH_ONE_TO_USE": "Welcher Eintrag soll verwendet werden?",
"NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Kein WhatsApp-Konto verfügbar",
- "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
- "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene",
+ "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
+ "THIRD_LEVEL_DISPOSITION": "Qualifizierung der dritten Ebene",
"LICENSE_EXPIRE_REMAINING_DAYS": "Ihre Lizenz läuft bald ab! Bitte wenden Sie sich an Ihren Administrator",
"CREATEDAT": "Hergestellt in",
"ELAPSED_ANSWERED": "Verstrichene Zeit seit dem Start des Anrufs",
"ELAPSED_DISPOSED": "Verstrichene Zeit seit Beendigung des Anrufs",
- "LOST_CONNECTION": "Probleme mit der Netzwerkkonnektivität. Bitte überprüfe deine Internetverbindung.",
+ "LOST_CONNECTION": "Probleme mit der Netzwerkkonnektivität. Bitte Internetverbindung prüfen.",
"NO_RESULTS_AVAILABLE": "Keine Ergebnisse verfügbar",
- "AUTOCLOSE": "Schließen Sie die Kontaktlasche nach der Entsorgung automatisch",
- "AGENT_PRESENCE": "Agentenpräsenz",
- "SELECT_TEAM": "Team auswählen",
- "AVAILABLE": "Erhältlich"
+ "AUTOCLOSE": "Tab nach Qualifizierung automatisch schließen",
+ "AGENT_PRESENCE": "Bereitschaftsstatus",
+ "SELECT_TEAM": "Team auswählen"
}
}
{
"MAIL": {
"TEXT": "Text",
- "TIMES": "Die Anzahl der Zeiten pro Interaktion",
- "EDIT_AUTOREPLY": "Bearbeiten Sie automatische Antwort",
+ "TIMES": "Zeitstempel",
+ "EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
"AUTOREPLY": "Automatische Antwort",
- "SHOW_AUTOREPLY": "Die automatische Antwort anzeigen",
+ "SHOW_AUTOREPLY": "Automatische Antwort anzeigen",
"SHOW_DETAILS": "Details anzeigen",
"HIDE_DETAILS": "Details ausblenden",
- "TO": "Zu",
+ "TO": "An",
"FROM": "Von",
"DATE": "Datum",
- "CC": "Cc",
- "REPLY": "Antwort",
+ "CC": "CC",
+ "REPLY": "Antworten",
"REPLY_ALL": "Allen antworten",
- "FORWARD": "Vorwärts",
+ "FORWARD": "Weiterleiten",
"SUBJECT": "Betreff",
- "BCC": "Bcc",
+ "BCC": "BCC",
"SEND": "Senden",
"ATTACHMENT": "Anhang",
"ATTACHMENTS": "Anhänge",
"NAME": "Name",
"MAILQUEUES": "E-Mail Warteschlangen",
- "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+ "SEARCH_FOR_ANYONE": "Suche",
"STRATEGY": "Strategie",
"ERRORS": {
- "TEXT_REQUIRED": "Das Feld \"Text\" ist erforderlich",
- "NAME_REQUIRED": "Der Name ist erforderlich",
- "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
- "EMAIL_ADDRESS_REQUIRED": "Die E-Mail-Adresse ist erforderlich",
- "EMAIL_ADDRESS_MUST_VALID": "Die E-Mail Adresse muss in einem gültigen Format",
- "HOST_REQUIRED": "Der Host wird benötigt",
- "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
- "PORT_REQUIRED": "Der Port ist erforderlich",
+ "TEXT_REQUIRED": "Feld \"Text\" ist erforderlich",
+ "NAME_REQUIRED": "Name ist erforderlich",
+ "AGENT_TIMEOUT_REQUIRED": "Agent Timeout ist erforderlich",
+ "EMAIL_ADDRESS_REQUIRED": "E-Mail-Adresse ist erforderlich",
+ "EMAIL_ADDRESS_MUST_VALID": "E-Mail ungültiges Format",
+ "HOST_REQUIRED": "Host wird benötigt",
+ "USERNAME_REQUIRED": "Benutzername ist erforderlich",
+ "PORT_REQUIRED": "Port ist erforderlich",
"CONNTIMEOUT_REQUIRED": "Timeout der Verbindung ist erforderlich",
- "AUTHTIMEOUT_REQUIRED": "Das Zeitlimit für die Authentifizierung erforderlich ist",
- "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
- "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
- "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
- "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
- "AGENT_REQUIRED": "Der Agent ist erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Timeout muss größer als oder gleich",
- "DISPOSITION_REQUIRED": "Die Disposition ist erforderlich",
- "CONDITION_REQUIRED": "Der Zustand ist erforderlich",
- "TRUEPRIORITY_REQUIRED": "Die wahre Priorität ist erforderlich",
- "FALSEPRIORITY_REQUIRED": "Die falsche Priorität ist erforderlich",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die wahre Priorität muss größer als oder gleich",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die falsche Priorität muss größer als oder gleich",
- "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Priorität muss größer als oder gleich",
- "QUEUE_REQUIRED": "Die Warteschlange ist erforderlich",
- "LIST_REQUIRED": "Die Liste ist erforderlich",
- "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
- "SERVICE_REQUIRED": "Der Dienst ist erforderlich,",
- "IMAP_HOST_REQUIRED": "Der IMAP-Host wird benötigt",
- "IMAP_PORT_REQUIRED": "Der IMAP-Anschluss erforderlich",
- "SMTP_HOST_REQUIRED": "Der SMTP-Host ist erforderlich",
- "SMTP_PORT_REQUIRED": "Der SMTP-Port ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter nicht übereinstimmen",
- "KEY_MAX_LENGTH": "Schlüssel muss eine maximale Länge von {{max}}",
- "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
- "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "AUTHTIMEOUT_REQUIRED": "Zeitlimit für die Authentifizierung ist erforderlich",
+ "ACCEPTURL_MUST_VALID_URL": "URL ungültiges Format",
+ "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
+ "REJECTURL_MUST_VALID_URL": "URL ungültiges Format",
+ "CLOSEURL_MUST_VALID_URL": "URL ungültiges Format",
+ "AGENT_REQUIRED": "Agent ist erforderlich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Timeout muss größer oder gleich sein als",
+ "DISPOSITION_REQUIRED": "Qualifizierung ist erforderlich",
+ "CONDITION_REQUIRED": "Bedingung ist erforderlich",
+ "TRUEPRIORITY_REQUIRED": "Wahre Priorität ist erforderlich",
+ "FALSEPRIORITY_REQUIRED": "Falsche Priorität ist erforderlich",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wahre Priorität muss größer oder gleich sein als",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Falsche Priorität muss größer oder gleich sein als",
+ "PRIORITY_REQUIRED": "Priorität ist erforderlich",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Priorität muss größer oder gleich sein als",
+ "QUEUE_REQUIRED": "Warteschlange ist erforderlich",
+ "LIST_REQUIRED": "Liste ist erforderlich",
+ "PASSWORD_REQUIRED": "Passwort ist erforderlich",
+ "SERVICE_REQUIRED": "Dienst ist erforderlich,",
+ "IMAP_HOST_REQUIRED": "IMAP-Host ist erforderlich",
+ "IMAP_PORT_REQUIRED": "IMAP-Port erforderlich",
+ "SMTP_HOST_REQUIRED": "SMTP-Host ist erforderlich",
+ "SMTP_PORT_REQUIRED": "SMTP-Port ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
+ "KEY_MAX_LENGTH": "Schlüssel darf eine maximale Länge haben von {{max}}",
+ "KEY_REQUIRED": "Schlüssel ist erforderlich",
+ "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}}",
"VALUE_REQUIRED": "Pflichtfeld",
- "FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"FONT_SIZE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"NAME_MUST_VALID_PATTERN": "Falsches Format",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"REPLY_TYPE_REQUIRED": "Pflichtfeld"
"MAILACCOUNTS": "E-Mail Konten",
"EMAIL_ADDRESS": "E-Mail Adresse",
"ADD_MAILACCOUNT": "E-Mail Konto hinzufügen",
- "EDIT_MAILACCOUNT": "E-Mail-Konto bearbeiten",
- "DELETE_MAILACCOUNT": "E-Mail-Konten löschen",
- "DISPOSITIONS": "Bestimmungen",
+ "EDIT_MAILACCOUNT": "E-Mail Konto bearbeiten",
+ "DELETE_MAILACCOUNT": "E-Mail Konto löschen",
+ "DISPOSITIONS": "Qualifizierungen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"OTHERS": "Andere",
"SERVICE": "Service",
"CREATED_AT": "Erstellt am",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Die Methode",
+ "ACCEPTMETHOD": "Methode akzeptieren",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "In der Nähe",
- "CLOSEMETHOD": "In der Nähe Methode",
- "CLOSEURL": "Der URL",
+ "CLOSE": "Schließen",
+ "CLOSEMETHOD": "Methode schließen",
+ "CLOSEURL": "URL schließen",
"WHITELABEL": "White Label",
- "SIGNATURE": "Unterschrift",
+ "SIGNATURE": "Signatur",
"IMAP": "IMAP",
"HOST": "Host",
"USERNAME": "Benutzername",
- "PORT": "Hafen",
+ "PORT": "Port",
"MAILBOX": "Mailbox",
"FILTER": "Filter",
"CONNTIMEOUT": "Connection Timeout [sek]",
"SMTP": "SMTP",
"SELECTED": "Ausgewählte",
"SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "SELECT_NONE": "Nichts auswählen",
"BACK": "Zurück",
"MAIL": "E-Mail",
- "ID": "Id",
+ "ID": "ID",
"TIMEOUT": "Timeout",
"PASSWORD": "Passwort",
- "NO_MAILDISPOSITION_AVAILABLE": "Keine E-Mail zur Verfügung Verfügungen",
- "ADD_MAILDISPOSITION": "E-Mail hinzufügen Disposition",
- "NEW_MAILDISPOSITION": "Neue E-Mail zur Verfügung",
- "EDIT_MAILDISPOSITION": "Bearbeiten von E-Mail zur Verfügung",
- "DELETE_MAILDISPOSITION": "Löschen von E-Mail zur Verfügung",
- "MAILDISPOSITIONS": "E-Mail Verfügungen",
+ "NO_MAILDISPOSITION_AVAILABLE": "Keine E-Mail Qualifizierung verfügbar",
+ "ADD_MAILDISPOSITION": "Qualifizierung hinzufügen",
+ "NEW_MAILDISPOSITION": "Neue E-Mail Qualifizierung",
+ "EDIT_MAILDISPOSITION": "Qualifizierung bearbeiten",
+ "DELETE_MAILDISPOSITION": "Qualifizierung löschen",
+ "MAILDISPOSITIONS": "E-Mail Qualifizierungen",
"NEW_MAILQUEUE": "Neue E-Mail Warteschlange",
- "NEW_MAILACCOUNT": "Neue E-Mail Konto",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
- "ALL_TEAMS": "Alle Mannschaften",
+ "NEW_MAILACCOUNT": "Neues E-Mail Konto",
+ "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "ALL_TEAMS": "Alle Teams",
"SELECTED_TEAMS": "Ausgewählte Teams",
"HELP": {
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "USERNAME": "Benutzername für die Authentifizierung verwendet werden",
- "PASSWORD": "Kennwort für die Authentifizierung verwendet werden",
- "SECURE": "Bei true wird die Verbindung TLS verwenden, wenn eine Verbindung zu Server",
- "FONT_FAMILY": "Standardschriftfamilie",
+ "USERNAME": "Benutzername für die Authentifizierung",
+ "PASSWORD": "Passwort für die Authentifizierung",
+ "SECURE": "Bei true wird die Verbindung TLS verwenden, wenn eine Verbindung zum Server aufgebaut wird",
+ "FONT_FAMILY": "Standard-Schriften",
"FONT_SIZE": "Standard Schriftgröße",
- "MARK_AS_UNREAD": "Agent aktivieren / deaktivieren, um die letzte Nachricht einer Interaktion als ungelesen zu markieren",
- "MANDATORYDISPOSITION": "Zwingende Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Anhalten, um zu verwenden, wenn die obligatorische Disposition aktiviert ist"
+ "MARK_AS_UNREAD": "Aktivieren / deaktivieren, um die letzte Nachricht einer Interaktion als ungelesen zu markieren",
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
- "TEAMADD_MAILQUEUE": "Team Chat Warteschlange hinzufügen",
- "AGENTADD_MAILQUEUE": "Agent zu Chatten Warteschlange hinzufügen",
+ "OF": "von",
+ "TEAMADD_MAILQUEUE": "Team zur Warteschlange hinzufügen",
+ "AGENTADD_MAILQUEUE": "Agenten zur Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"AGENT": "Agent",
"EDIT_AGENT": "Agent bearbeiten",
- "EDIT_CLOSE": "Bearbeiten Schließen",
- "DISPOSITION": "Disposition",
- "GOTOIF": "GotoIf",
+ "EDIT_CLOSE": "Bearbeitung abschließen",
+ "DISPOSITION": "Qualifizierung",
+ "GOTOIF": "GoToIf",
"EDIT_GOTOIF": "Bearbeiten GotoIf",
- "CONDITION": "Zustand",
+ "CONDITION": "Bedingung",
"TRUEPRIORITY": "Wahre Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"GOTOP": "GotoP",
"VALUE": "Wert",
"QUEUE": "Warteschlange",
"EDIT_QUEUE": "Warteschlange bearbeiten",
- "INTERACTIONS": "Wechselwirkungen",
- "STARTEDAT": "Gestartet am",
+ "INTERACTIONS": "Interaktionen",
+ "STARTEDAT": "Startdatum",
"CONTACT": "Kontakt",
"CLOSEDAT": "Geschlossen",
- "NOTES": "Hinweise",
- "NO_INTERACTION_AVAILABLE": "Es sind keine Wechselwirkungen zur Verfügung",
+ "NOTES": "Anmerkungen",
+ "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
"ACTIVE": "Aktiv",
- "SECURE": "Sichere",
+ "SECURE": "Sicher",
"AUTHENTICATION": "Authentifizierung",
"SMTP_HOST": "SMTP-Host",
"SMTP_PORT": "SMTP-Port",
"IMAP_PORT": "IMAP-Port",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"SELECT_STATUS": "Status auswählen",
- "OPENED": "Öffnen",
+ "OPENED": "Geöffnet",
"CLOSED": "Geschlossen",
"ALL": "Alle",
"SELECT_ACCOUNT": "Konto auswählen",
"UNPAUSE": "Pause beenden",
"DEFAULT_PAUSE": "Standard Pause",
"LOGOUT": "An-/Abmelden",
- "AGENTADD_QUEUE": "Agent E-Mail Warteschlange hinzufügen",
- "VOICE": "Voice",
+ "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "VOICE": "Anrufe",
"CHAT": "Chat",
- "SMS": "Sms",
- "OPENCHANNEL": "Channel öffnen",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
"REALTIME": "Echtzeit",
"AGENTS": "Agenten",
"QUEUES": "Warteschlangen",
"ACCOUNTS": "Konten",
- "FULLNAME": "Voller Name",
- "INTERNAL": "Interne",
+ "FULLNAME": "Vollständiger Name",
+ "INTERNAL": "Intern",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"PAUSE": "Pause",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
"READY": "Bereit",
- "WAITING": "Warten",
- "TOTAL": "Insgesamt",
- "IN": "In",
- "OUT": "Aus",
+ "WAITING": "Wartezustand",
+ "TOTAL": "Gesamt",
+ "IN": "Eingehend",
+ "OUT": "Ausgehend",
"IMAP_STATUS": "IMAP-Status",
"SMTP_STATUS": "SMTP-Status",
"DISABLED": "Deaktiviert",
"CONNECTED": "Verbunden",
- "NEVER_VERIFIED": "Nie verifiziert",
+ "NEVER_VERIFIED": "Noch nicht verifiziert",
"ERROR": "Fehler",
"EDIT_ACCOUNT": "Konto bearbeiten",
- "VERIFY_SMTP": "Überprüfen Sie die SMTP-",
+ "VERIFY_SMTP": "Bitte SMTP-Einstellungen prüfen",
"VERIFIED": "Überprüft",
- "VERIFYSMTP_MAILACCOUNT": "Überprüfen Sie die SMTP-",
- "GOTOREALTIME_MAILACCOUNT": "In Echtzeit, E-Mail Konto",
- "GOTO_MAILACCOUNT": "In Echtzeit, E-Mail Konto",
+ "VERIFYSMTP_MAILACCOUNT": "Bitte SMTP-Einstellungen prüfen",
+ "GOTOREALTIME_MAILACCOUNT": "Zum E-Mail-Konto Echtzeitmonitoring",
+ "GOTO_MAILACCOUNT": "Zum E-Mail Konto gehen",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Unregistrierte",
+ "UNREGISTERED": "Nicht registriert",
"UNAVAILABLE": "Nicht verfügbar",
- "NOT_INUSE": "Nicht in Gebrauch",
+ "NOT_INUSE": "Nicht in Verwendung",
"REACHABLE": "Erreichbar",
- "IN_USE": "Im Einsatz",
- "AGENTSADD_QUEUE": "Agenten zu Warteschlange hinzufügen",
- "INFO": "Info",
+ "IN_USE": "In Verwendung",
+ "AGENTSADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "INFO": "Information",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_MAILQUEUE": "In Echtzeit, E-Mail Warteschlange",
- "PARTIALPAUSE": "Lastschriftzahlung teilweise Pause",
+ "GOTOREALTIME_MAILQUEUE": "Echtzeitmonitoring E-Mail Warteschlangen",
+ "PARTIALPAUSE": "Teilpause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"IDLE": "Leerlauf",
"CAPACITY": "Kapazität",
- "SPYINTERACTION": "Spy",
+ "SPYINTERACTION": "Mithören",
"ADD_NOTE": "Notiz hinzufügen",
- "NOTE": "Hinweis",
+ "NOTE": "Notiz",
"TAGS": "Tags",
- "INTERACTIONS_MAILACCOUNT": "Zu Wechselwirkungen gehen",
- "REFRESH_INTERACTIONS": "Aktualisieren Interaktionen",
- "PENDING": "Ausstehend",
- "SEND_AS_PENDING": "Senden als Ausstehend",
- "SEND_AND_CLOSE": "Senden und Schließen",
- "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
- "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
- "NO_MAILCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
- "NEW_MAILCANNEDANSWER": "Neue vordefinierte Antowrt",
- "ADD_MAILCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
- "EDIT_MAILCANNEDANSWER": "Vordefiierte Antwort bearbeiten",
- "DELETE_MAILCANNEDANSWER": "Vordefinierte Antwort löschen",
+ "INTERACTIONS_MAILACCOUNT": "Zu den Interaktionen gehen",
+ "REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
+ "PENDING": "Warten auf Rückmeldung",
+ "SEND_AS_PENDING": "Senden und auf Rückmeldung warten",
+ "SEND_AND_CLOSE": "Senden und schließen",
+ "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
+ "CANNED_ANSWER_SEARCH": "Nach Textvorlagen suchen",
+ "NO_MAILCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
+ "NEW_MAILCANNEDANSWER": "Neue Textvorlage",
+ "ADD_MAILCANNEDANSWER": "Textvorlage hinzufügen",
+ "EDIT_MAILCANNEDANSWER": "Textvorlage bearbeiten",
+ "DELETE_MAILCANNEDANSWER": "Textvorlage löschen",
"SHOW_ORIGINAL_MESSAGE": "Ursprüngliche Nachricht anzeigen",
"DELETE_INTERACTION": "Interaktion löschen",
"ACCEPTED": "Akzeptiert",
"FONT_FAMILY": "Schriftfamilie",
"FONT_SIZE": "Schriftgröße",
- "MARK_AS_UNREAD": "als ungelesen markieren",
- "ADD_MAILSUBSTATUS": "Unterstatus hinzufügen",
- "DELETE_MAILSUBSTATUS": "Löschen",
- "EDIT_MAILSUBSTATUS": "Bearbeiten",
- "MAILSUBSTATUSES": "E-Mail-Unterstatus",
- "NEW_MAILSUBSTATUS": "Neuer Unterstatus",
- "SEND_AS": "Senden Als",
- "COMMAND": "Befehl",
+ "MARK_AS_UNREAD": "Als ungelesen markieren",
+ "ADD_MAILSUBSTATUS": "SubStatus hinzufügen",
+ "DELETE_MAILSUBSTATUS": "SubStatus löschen",
+ "EDIT_MAILSUBSTATUS": "SubStatus bearbeiten",
+ "MAILSUBSTATUSES": "E-Mail SubStatus",
+ "NEW_MAILSUBSTATUS": "Neuer SubStatus",
+ "SEND_AS": "Senden als",
+ "COMMAND": "Eingabe",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"VARIABLE": "Variable",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Shake",
- "NOTIFICATIONSOUND": "Klingen",
+ "NOTIFICATIONSHAKE": "Schütteln",
+ "NOTIFICATIONSOUND": "Klingeln",
"NOTIFICATIONTEMPLATE": "Vorlage",
"WAITFORTHEASSIGNEDAGENT": "Warte auf den zugewiesenen Agenten",
"EDIT_TAG": "Tag bearbeiten",
- "TAG": "Etikett",
- "AGENTTRANSFER": "Agentenübertragung",
- "AGENTTRANSFERTIMEOUT": "Zeitlimit für Agentenübertragungen",
- "QUEUETRANSFER": "Warteschlangenübertragung",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangenübertragung",
- "TRANSFER": "Transfer",
- "AGENTADD_MAILACCOUNT": "Fügen Sie dem E-Mail-Konto Agent hinzu",
+ "TAG": "Tag",
+ "AGENTTRANSFER": "Weiterleitung Agent",
+ "AGENTTRANSFERTIMEOUT": "Zeitlimit für Agententransfer",
+ "QUEUETRANSFER": "Weiterleitung Warteschlange",
+ "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung für Warteschlangentransfer",
+ "TRANSFER": "Weiterleitung",
+ "AGENTADD_MAILACCOUNT": "Agenten zum E-Mail Konto hinzufügen",
"YOU_ARE_REGISTERED_AS_A": "Sie sind registriert als",
- "CANNEDANSWERS": "Vordefinierte Antworten",
+ "CANNEDANSWERS": "Textvorlagen",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "MAILCANNEDANSWERS": "Vordefinierte Antworten",
- "LOGIN_TIME": "Login-Zeit",
- "PAUSE_TIME": "Pausenzeit",
+ "MAILCANNEDANSWERS": "E-Mail Textvorlagen",
+ "LOGIN_TIME": "Zeit angemeldet",
+ "PAUSE_TIME": "Zeit in Pause",
"DOWNLOAD": "Herunterladen",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
- "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
- "MANDATORYDISPOSITION": "Zwingende Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
- "ADVANCED": "Fortgeschritten",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
- "DOWNLOAD_WITHOUT_ATTACHMENT": "Ohne Anhang herunterladen",
- "DOWNLOAD_WITH_ATTACHMENT": "Download mit Anhang",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Herunterlagen inkl. Anhänge",
+ "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern sonst erforderlich",
+ "ADVANCED": "Erweitert",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung angehalten",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
+ "DOWNLOAD_WITHOUT_ATTACHMENT": "Herunterladen ohne Anhang",
+ "DOWNLOAD_WITH_ATTACHMENT": "Herunterladen inkl. Anhang",
"LASTMESSAGE": "Letzte Nachricht",
"REPLY_TYPE": "Antworttyp"
}
"DESCRIPTION": "وصف",
"DOWNLOAD_PLUGIN": "تنزيل المكون الإضافي",
"DROP_TO_UPLOAD": "إسقاط للتحميل",
- "DROP_TO_UPLOAD_MESSAGE": "أسقط ملفك هنا للتحميل. فقط الرمز البريدي - ماكس. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "أسقط ملفك هنا للتحميل. فقط الرمز البريدي - ماكس. 4MB",
"EDITOR": "محرر",
"EDIT_PLUGIN": "تحرير المكوّن الإضافي",
"FINISH": "إنهاء",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Beskrivelse",
"DOWNLOAD_PLUGIN": "Download plugin",
"DROP_TO_UPLOAD": "Drop til upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop din fil her for at uploade. Kun ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop din fil her for at uploade. Kun ZIP - Max. 4MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Rediger plugin",
"FINISH": "Afslut",
"DESCRIPTION": "Beschreibung",
"DOWNLOAD_PLUGIN": "Plugin herunterladen",
"DROP_TO_UPLOAD": "Hochladen",
- "DROP_TO_UPLOAD_MESSAGE": "Legen Sie Ihre Datei zum Hochladen hier ab. Nur PLZ - Max. 2 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Legen Sie Ihre Datei zum Hochladen hier ab. Nur PLZ - Max. 4 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Plugin bearbeiten",
"FINISH": "Fertig",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Descripción",
"DOWNLOAD_PLUGIN": "Descargar plugin",
"DROP_TO_UPLOAD": "Suelta para subir",
- "DROP_TO_UPLOAD_MESSAGE": "Suelta tu archivo aquí para subirlo. Solo ZIP - Max. 2 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Suelta tu archivo aquí para subirlo. Solo ZIP - Max. 4 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Editar plugin",
"FINISH": "Terminar",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "شرح",
"DOWNLOAD_PLUGIN": "دانلود پلاگین",
"DROP_TO_UPLOAD": "قطره برای آپلود",
- "DROP_TO_UPLOAD_MESSAGE": "فایل خود را اینجا بگذارید تا آپلود شود فقط ZIP - حداکثر. 2 مگابایت",
+ "DROP_TO_UPLOAD_MESSAGE": "فایل خود را اینجا بگذارید تا آپلود شود فقط ZIP - حداکثر. 4 مگابایت",
"EDITOR": "ویرایشگر",
"EDIT_PLUGIN": "ویرایش پلاگین",
"FINISH": "پایان دادن",
"DESCRIPTION": "Kuvaus",
"DOWNLOAD_PLUGIN": "Lataa laajennus",
"DROP_TO_UPLOAD": "Pudota lähetettäväksi",
- "DROP_TO_UPLOAD_MESSAGE": "Pudota tiedosto täällä lähetettäväksi. Vain ZIP - Max. 2 Mt",
+ "DROP_TO_UPLOAD_MESSAGE": "Pudota tiedosto täällä lähetettäväksi. Vain ZIP - Max. 4 Mt",
"EDITOR": "toimittaja",
"EDIT_PLUGIN": "Muokkaa lisäosaa",
"FINISH": "Suorittaa loppuun",
"DESCRIPTION": "La description",
"DOWNLOAD_PLUGIN": "Télécharger le plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Déposez votre fichier ici pour le télécharger. Seulement ZIP - Max. 2 Mo",
+ "DROP_TO_UPLOAD_MESSAGE": "Déposez votre fichier ici pour le télécharger. Seulement ZIP - Max. 4 Mo",
"EDITOR": "Éditeur",
"EDIT_PLUGIN": "Modifier le plugin",
"FINISH": "terminer",
"SAVE": "שמור",
"INSTALLING": "התקנה",
"DROP_TO_UPLOAD": "שחרר כדי להעלות",
- "DROP_TO_UPLOAD_MESSAGE": "כדי להעלות את הקובץ, שחרר אותו כאן. ZIP בלבד – מקס' 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "כדי להעלות את הקובץ, שחרר אותו כאן. ZIP בלבד – מקס' 4MB",
"UPLOAD_PLUGIN": "יישום Plug-in להעלאות",
"UPLOADING": "העלאה",
"CREATED_AT": "נוצר ב-",
"DESCRIPTION": "विवरण",
"DOWNLOAD_PLUGIN": "प्लगइन डाउनलोड करें",
"DROP_TO_UPLOAD": "अपलोड करने के लिए ड्रॉप",
- "DROP_TO_UPLOAD_MESSAGE": "अपलोड करने के लिए अपनी फाइल यहां ड्रॉप करें। केवल ज़िप - अधिकतम। 2 एमबी",
+ "DROP_TO_UPLOAD_MESSAGE": "अपलोड करने के लिए अपनी फाइल यहां ड्रॉप करें। केवल ज़िप - अधिकतम। 4 एमबी",
"EDITOR": "संपादक",
"EDIT_PLUGIN": "प्लगइन संपादित करें",
"FINISH": "समाप्त",
"DESCRIPTION": "Deskripsi",
"DOWNLOAD_PLUGIN": "Unduh plugin",
"DROP_TO_UPLOAD": "Jatuhkan Untuk Mengunggah",
- "DROP_TO_UPLOAD_MESSAGE": "Jatuhkan file Anda di sini untuk mengunggah. Hanya ZIP - Max. 2 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Jatuhkan file Anda di sini untuk mengunggah. Hanya ZIP - Max. 4 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Edit plugin",
"FINISH": "Selesai",
"SAVE": "Salva",
"INSTALLING": "Installazione in corso",
"DROP_TO_UPLOAD": "Trascina il file da caricare",
- "DROP_TO_UPLOAD_MESSAGE": "Trascina qui il tuo plugin da caricare. Solo ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Trascina qui il tuo plugin da caricare. Solo ZIP - Max. 4MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Upload in corso",
"CREATED_AT": "Creato il",
"DESCRIPTION": "説明",
"DOWNLOAD_PLUGIN": "プラグインをダウンロード",
"DROP_TO_UPLOAD": "アップロードするドロップ",
- "DROP_TO_UPLOAD_MESSAGE": "アップロードするファイルをここにドロップします。 ZIP - Max。 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "アップロードするファイルをここにドロップします。 ZIP - Max。 4MB",
"EDITOR": "編集者",
"EDIT_PLUGIN": "プラグインを編集",
"FINISH": "フィニッシュ",
"DESCRIPTION": "기술",
"DOWNLOAD_PLUGIN": "플러그인 다운로드",
"DROP_TO_UPLOAD": "올리기",
- "DROP_TO_UPLOAD_MESSAGE": "여기에 파일을 올려 업로드하십시오. ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "여기에 파일을 올려 업로드하십시오. ZIP - Max. 4MB",
"EDITOR": "편집자",
"EDIT_PLUGIN": "플러그인 편집",
"FINISH": "끝",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Apraksts",
"DOWNLOAD_PLUGIN": "Lejupielādēt spraudni",
"DROP_TO_UPLOAD": "Pārvelciet šeit, lai augšupielādētu",
- "DROP_TO_UPLOAD_MESSAGE": "Pārvelciet datni šeit, lai augšupielādētu Tikai<i> ZIP</i> – maks. 2 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Pārvelciet datni šeit, lai augšupielādētu Tikai<i> ZIP</i> – maks. 4 MB",
"EDITOR": "Redaktors",
"EDIT_PLUGIN": "Rediģēt spraudni",
"FINISH": "Pabeigt",
"DESCRIPTION": "Beschrijving",
"DOWNLOAD_PLUGIN": "Download plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Zet je bestand hier neer om te uploaden. Alleen ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Zet je bestand hier neer om te uploaden. Alleen ZIP - Max. 4MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Bewerk plugin",
"FINISH": "Af hebben",
"DESCRIPTION": "Beskrivelse",
"DOWNLOAD_PLUGIN": "Last ned plugin",
"DROP_TO_UPLOAD": "Drop til opplasting",
- "DROP_TO_UPLOAD_MESSAGE": "Slett filen din her for å laste opp. Kun ZIP - Maks. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Slett filen din her for å laste opp. Kun ZIP - Maks. 4MB",
"EDITOR": "Redaktør",
"EDIT_PLUGIN": "Rediger plugin",
"FINISH": "Bli ferdig",
"DESCRIPTION": "Opis",
"DOWNLOAD_PLUGIN": "Pobierz wtyczkę",
"DROP_TO_UPLOAD": "Upuść, aby przesłać",
- "DROP_TO_UPLOAD_MESSAGE": "Upuść swój plik tutaj, aby przesłać. Tylko ZIP - Max. 2 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Upuść swój plik tutaj, aby przesłać. Tylko ZIP - Max. 4 MB",
"EDITOR": "Redaktor",
"EDIT_PLUGIN": "Edytuj wtyczkę",
"FINISH": "koniec",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Descrição",
"DOWNLOAD_PLUGIN": "Download do plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Solte seu arquivo aqui para fazer o upload. Apenas ZIP - Máx. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Solte seu arquivo aqui para fazer o upload. Apenas ZIP - Máx. 4MB",
"EDITOR": "editor",
"EDIT_PLUGIN": "Editar plugin",
"FINISH": "Terminar",
"DESCRIPTION": "Описание",
"DOWNLOAD_PLUGIN": "Скачать плагин",
"DROP_TO_UPLOAD": "Загрузить",
- "DROP_TO_UPLOAD_MESSAGE": "Отбросьте свой файл здесь, чтобы загрузить его. Только ZIP - Макс. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Отбросьте свой файл здесь, чтобы загрузить его. Только ZIP - Макс. 4MB",
"EDITOR": "редактор",
"EDIT_PLUGIN": "Изменить плагин",
"FINISH": "Конец",
"DESCRIPTION": "Beskrivning",
"DOWNLOAD_PLUGIN": "Hämta plugin",
"DROP_TO_UPLOAD": "Släpp för att ladda upp",
- "DROP_TO_UPLOAD_MESSAGE": "Släpp din fil här för att ladda upp. Endast ZIP - Max. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Släpp din fil här för att ladda upp. Endast ZIP - Max. 4MB",
"EDITOR": "Redaktör",
"EDIT_PLUGIN": "Redigera plugin",
"FINISH": "Avsluta",
"DESCRIPTION": "Açıklama",
"DOWNLOAD_PLUGIN": "Eklentiyi indir",
"DROP_TO_UPLOAD": "Yüklenmeye Bırak",
- "DROP_TO_UPLOAD_MESSAGE": "Yüklemek için dosyanızı buraya bırakın. Sadece ZIP - Maks. 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Yüklemek için dosyanızı buraya bırakın. Sadece ZIP - Maks. 4MB",
"EDITOR": "Editör",
"EDIT_PLUGIN": "Eklentiyi düzenle",
"FINISH": "Bitiş",
"DESCRIPTION": "描述",
"DOWNLOAD_PLUGIN": "下载插件",
"DROP_TO_UPLOAD": "删除上传",
- "DROP_TO_UPLOAD_MESSAGE": "将您的文件放在此处上传。只有ZIP - Max。 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "将您的文件放在此处上传。只有ZIP - Max。 4MB",
"EDITOR": "编辑",
"EDIT_PLUGIN": "编辑插件",
"FINISH": "完",
"DESCRIPTION": "描述",
"DOWNLOAD_PLUGIN": "下載插件",
"DROP_TO_UPLOAD": "刪除上傳",
- "DROP_TO_UPLOAD_MESSAGE": "將您的文件放在此處上傳。只有ZIP - Max。 2MB",
+ "DROP_TO_UPLOAD_MESSAGE": "將您的文件放在此處上傳。只有ZIP - Max。 4MB",
"EDITOR": "編輯",
"EDIT_PLUGIN": "編輯插件",
"FINISH": "完",
{
"OPENCHANNEL": {
"TEXT": "Text",
- "TIMES": "Die Anzahl der Zeiten pro Interaktion",
- "EDIT_AUTOREPLY": "Bearbeiten Sie automatische Antwort",
+ "TIMES": "Zeitstempel",
+ "EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
"AUTOREPLY": "Automatische Antwort",
"NAME": "Name",
- "OPENCHANNELQUEUES": "Offener Kanal Warteschlangen",
- "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+ "OPENCHANNELQUEUES": "Warteschlangen offener Kanal",
+ "SEARCH_FOR_ANYONE": "Suche",
"ERRORS": {
- "TEXT_REQUIRED": "Das Feld \"Text\" ist erforderlich",
- "NAME_REQUIRED": "Der Name ist erforderlich",
- "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
- "MOTIONADDRESS_REQUIRED": "Die Adresse ist erforderlich",
- "MOTIONADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
- "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
- "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
- "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
- "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
- "REPLYURI_REQUIRED": "Die Antwort URL ist erforderlich",
- "REPLYURI_MUST_VALID_URL": "Die Antwort URL muss im gültigen Format geschrieben werden",
- "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
- "CONDITION_REQUIRED": "Der Zustand ist erforderlich",
- "TRUEPRIORITY_REQUIRED": "Die wahre Priorität ist erforderlich",
- "FALSEPRIORITY_REQUIRED": "Die falsche Priorität ist erforderlich",
+ "TEXT_REQUIRED": "Feld \"Text\" ist erforderlich",
+ "NAME_REQUIRED": "Name ist erforderlich",
+ "AGENT_TIMEOUT_REQUIRED": "Agent Timeout ist erforderlich",
+ "MOTIONADDRESS_REQUIRED": "Adresse ist erforderlich",
+ "MOTIONADDRESS_MUST_VALID_URL": "Adresse ungültiges Format",
+ "ACCEPTURL_MUST_VALID_URL": "URL ungültiges Format",
+ "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
+ "REJECTURL_MUST_VALID_URL": "URL ungültiges Format",
+ "CLOSEURL_MUST_VALID_URL": "URL ungültiges Format",
+ "REPLYURI_REQUIRED": "Antwort-URL ungültiges Format",
+ "REPLYURI_MUST_VALID_URL": "Antwort-URL ungültiges Format",
+ "PRIORITY_REQUIRED": "Priorität ist erforderlich",
+ "CONDITION_REQUIRED": "Bedingung ist erforderlich",
+ "TRUEPRIORITY_REQUIRED": "Wahre Priorität ist erforderlich",
+ "FALSEPRIORITY_REQUIRED": "Falsche Priorität ist erforderlich",
"AGENT_REQUIRED": "Pflichtfeld",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
"DISPOSITION_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Schlüssel muss eine maximale Länge von {{max}}",
- "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "KEY_MAX_LENGTH": "Schlüssel darf eine maximale Länge haben von {{max}}",
+ "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}}",
"VALUE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
"LIST_REQUIRED": "Pflichtfeld",
"KEY_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "NAME_MUST_VALID_PATTERN": "Falsches Format",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "NAME_MUST_VALID_PATTERN": "Format ungültig",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"ACCESSKEYID_REQUIRED": "Zugangsschlüssel-ID ist erforderlich",
- "BOTNAME_REQUIRED": "Der Bot-Name ist erforderlich",
- "SECRETACCESSKEY_REQUIRED": "Zugangsschlüssel geheim ist erforderlich",
+ "BOTNAME_REQUIRED": "Bot-Name ist erforderlich",
+ "SECRETACCESSKEY_REQUIRED": "Geheimer Schlüssel ist erforderlich",
"CLIENTEMAIL_REQUIRED": "Pflichtfeld",
"PRIVATEKEY_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld"
"GOTOIF": "Gotoif",
"NOOP": "Noop",
"QUEUE": "Warteschlange",
- "EDIT_AGENT": "Agent bearbeiten",
- "EDIT_GOTO": "Bearbeiten Gehe zu",
- "EDIT_NOOP": "Bearbeiten Noop",
- "EDIT_GOTOIF": "Bearbeiten Gotoif",
+ "EDIT_AGENT": "Agenteb bearbeiten",
+ "EDIT_GOTO": "Gehe zu bearbeiten",
+ "EDIT_NOOP": "Noop bearbeiten",
+ "EDIT_GOTOIF": "GoToIf bearbeiten",
"EDIT_QUEUE": "Warteschlange bearbeiten",
- "CONDITION": "Zustand",
+ "CONDITION": "Bedingung",
"TRUEPRIORITY": "Wahre Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"VALUE": "Wert",
"PRIORITY": "Priorität",
"AGENT_TIMEOUT": "Agent Timeout",
"DESCRIPTION": "Beschreibung",
- "ADD_OPENCHANNELQUEUE": "Fügen Sie im Offenen Kanal Warteschlange",
- "EDIT_OPENCHANNELQUEUE": "Offener Kanal Warteschlange bearbeiten",
- "DELETE_OPENCHANNELQUEUE": "Löschen der Warteschlange im Offenen Kanal",
- "PENALTY": "Strafe",
+ "ADD_OPENCHANNELQUEUE": "Warteschlange offener Kanal hinzufügen",
+ "EDIT_OPENCHANNELQUEUE": "Warteschlange offener Kanal bearbeiten",
+ "DELETE_OPENCHANNELQUEUE": "Warteschlange offener Kanal löschen",
+ "PENALTY": "Verzögerung",
"TEAMADD_OPENCHANNELQUEUE": "Team zur Warteschlange hinzufügen",
- "AGENTADD_OPENCHANNELQUEUE": "Agent zur Warteschlange hinzufügen",
+ "AGENTADD_OPENCHANNELQUEUE": "Agenten zur Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CREATED_AT": "Erstellt am",
"SAVE": "Speichern",
"SETTINGS": "Einstellungen",
"GENERAL": "Allgemein",
- "OPENCHANNELACCOUNTS": "Offener Kanal Konten",
+ "OPENCHANNELACCOUNTS": "Konten offener Kanal",
"MOTIONADDRESS": "Motion Adresse",
- "ADD_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account hinzufügen",
- "EDIT_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account bearbeiten",
- "DELETE_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account löschen.",
+ "ADD_OPENCHANNELACCOUNT": "Konto offener Kanal hinzufügen",
+ "EDIT_OPENCHANNELACCOUNT": "Konto offener Kanal bearbeiten",
+ "DELETE_OPENCHANNELACCOUNT": "Konto offener Kanal löschen",
"API": "API",
- "DISPOSITIONS": "Bestimmungen",
+ "DISPOSITIONS": "Qualifizierungen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"LIST": "Liste",
"FIDELITY": "Treue",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Die Methode",
+ "ACCEPTMETHOD": "Methode akzeptieren",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "In der Nähe",
- "CLOSEMETHOD": "In der Nähe Methode",
- "CLOSEURL": "Der URL",
- "SELECTED": "Ausgewählte",
+ "CLOSE": "Schließen",
+ "CLOSEMETHOD": "Methode schließen",
+ "CLOSEURL": "URL schließen",
+ "SELECTED": "Ausgewählt",
"SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "SELECT_NONE": "Nichts auswählen",
"BACK": "Zurück",
"OPENCHANNEL": "Offener Kanal",
- "ID": "Id",
+ "ID": "ID",
"TIMEOUT": "Timeout",
- "OPENCHANNELDISPOSITIONS": "Offener Kanal Verfügungen",
- "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Keine offenen Kanal Dispositionen verfügbar",
- "NEW_OPENCHANNELDISPOSITION": "Neue Offene Kanal inspektion",
- "ADD_OPENCHANNELDISPOSITION": "Fügen Sie im Offenen Kanal inspektion",
- "EDIT_OPENCHANNELDISPOSITION": "Bearbeiten Sie im Offenen Kanal inspektion",
- "DELETE_OPENCHANNELDISPOSITION": "Löschen Sie im Offenen Kanal inspektion",
- "NEW_OPENCHANNELQUEUE": "Neue Offene Kanal Warteschlange",
- "NEW_OPENCHANNELACCOUNT": "Neue Open Channel Account",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
- "ALL_TEAMS": "Alle Mannschaften",
+ "OPENCHANNELDISPOSITIONS": "Qualifizierungen offener Kanal",
+ "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Keine Qualifizierungen verfügbar",
+ "NEW_OPENCHANNELDISPOSITION": "Neue Qualifizierung",
+ "ADD_OPENCHANNELDISPOSITION": "Qualifizierung offener Kanal hinzufügen",
+ "EDIT_OPENCHANNELDISPOSITION": "Qualifizierung bearbeiten",
+ "DELETE_OPENCHANNELDISPOSITION": "Qualifizierung löschen",
+ "NEW_OPENCHANNELQUEUE": "Neue Warteschlange offener Kanal",
+ "NEW_OPENCHANNELACCOUNT": "Neues Konto offener Kanal",
+ "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "ALL_TEAMS": "Alle Teams",
"SELECTED_TEAMS": "Ausgewählte Teams",
"REPLYURI": "Antwort URL",
"RECEIVEURI": "Erhalten URL",
"HELP": {
- "RECEIVEURI": "Dies ist die automatisch generierte API-String müssen Sie die Nachrichten in Ihrem offenen Kanal zu erhalten von der externen Anwendung (POST-Methode verwendet werden muss). Drücken Sie die Zwischenablage, um Sie in die Zwischenablage zu kopieren.",
- "REPLYURI": "Dies ist die URL der Offene Kanal wird beim Senden oder Beantworten von Nachrichten",
+ "RECEIVEURI": "Automatisch generierter API-String, um die Nachrichten über den offenen Kanal zu erhalten (POST-Methode). Zum Kopieren in die Zwischenablage klicken",
+ "REPLYURI": "URL des offenen Kanals zum Senden und Empfangen von Nachrichten",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"LIST": "Contact Manager Liste zu verknüpfen von Kontakten",
"TOKEN": "Fügen Sie diese Eigenschaft als Abfragezeichenfolge in Ihrer Web-Service-URL hinzu. Weitere Informationen finden Sie im Dokument doc <a target = \"_ blank\" href = \"https://wiki.xcallymotion.com/display/XMV/New Channels Configuration Steps",
- "MANDATORYDISPOSITION": "Zwingende Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
- "WELCOMEMESSAGE": "Dies ist die erste Nachricht, die an das Schütz gesendet wird"
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
+ "WELCOMEMESSAGE": "Willkommensnachricht beim Eintreffen der ersten Anfrage"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
+ "OF": "von",
"CONTACT": "Kontakt",
- "STARTEDAT": "Gestartet am",
+ "STARTEDAT": "Startdatum",
"STATUS": "Status",
"CLOSED": "Geschlossen",
- "OPENED": "Öffnen",
+ "OPENED": "Geöffnet",
"OPEN": "Öffnen",
"ACCOUNT": "Konto",
"INTERACTION": "Interaktion",
- "INTERACTIONS": "Wechselwirkungen",
+ "INTERACTIONS": "Interaktionen",
"ALL": "Alle",
- "SELECT_STATUS": "Wählen Sie einen Status",
+ "SELECT_STATUS": "Status auswählen",
"FILTER": "Filter",
"FILTERS": "Filter",
"CLOSEDAT": "Geschlossen",
- "DISPOSITION": "Disposition",
- "NOTES": "Hinweise",
- "NO_INTERACTION_AVAILABLE": "Es sind keine Wechselwirkungen zur Verfügung",
- "SELECT_ACCOUNT": "Wählen Sie ein Konto",
+ "DISPOSITION": "Qualifizierung",
+ "NOTES": "Anmerkungen",
+ "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
+ "SELECT_ACCOUNT": "Konto auswählen",
"GOTOP": "Gotop",
"EDIT_GOTOP": "Gotop bearbeiten",
- "EDIT_CLOSE": "Bearbeiten Schließen",
- "INFO": "Info",
+ "EDIT_CLOSE": "Bearbeitung abschließen",
+ "INFO": "Information",
"KEY": "Schlüssel",
"REALTIME": "Echtzeit",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Unregistrierte",
+ "UNREGISTERED": "Nicht registriert",
"UNAVAILABLE": "Nicht verfügbar",
- "NOT_INUSE": "Nicht in Gebrauch",
+ "NOT_INUSE": "Nicht in Verwendung",
"REACHABLE": "Erreichbar",
- "IN_USE": "Im Einsatz",
+ "IN_USE": "In Verwendung",
"AGENTS": "Agenten",
"QUEUES": "Warteschlangen",
- "FULLNAME": "Fullname",
- "INTERNAL": "Interne",
+ "FULLNAME": "Vollständiger Name",
+ "INTERNAL": "Intern",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"PAUSE": "Pause",
"LOGOUT": "An-/Abmelden",
- "AGENTADD_QUEUE": "Agent zu Offenen Kanal Warteschlange hinzufügen",
+ "AGENTADD_QUEUE": "Agenten zur Warteschlange offener Kanal hinzufügen",
"UNPAUSE": "Pause beenden",
"DEFAULT_PAUSE": "Standard Pause",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
"READY": "Bereit",
- "WAITING": "Warten",
- "VOICE": "Voice",
+ "WAITING": "Wartezustand",
+ "VOICE": "Anrufe",
"CHAT": "Chat",
"MAIL": "E-Mail",
"SMS": "SMS",
"FAX": "Fax",
- "AGENTSADD_QUEUE": "Agenten, die Offenen Kanal Warteschlange hinzufügen",
+ "AGENTSADD_QUEUE": "Agenten zur Warteschlange offener Kanal hinzufügen",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_OPENCHANNELQUEUE": "In Echtzeit, offenen Kanal Warteschlange",
- "PARTIALPAUSE": "Lastschriftzahlung teilweise Pause",
+ "GOTOREALTIME_OPENCHANNELQUEUE": "Zum offener Kanal Echtzeitmonitoring",
+ "PARTIALPAUSE": "Teilpause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"IDLE": "Leerlauf",
"CAPACITY": "Kapazität",
"TAGS": "Tags",
- "SPYINTERACTION": "Spy",
- "INTERACTIONS_OPENCHANNELACCOUNT": "Zu Wechselwirkungen gehen",
- "REFRESH_INTERACTIONS": "Aktualisieren Interaktionen",
+ "SPYINTERACTION": "Mithören",
+ "INTERACTIONS_OPENCHANNELACCOUNT": "Zu Interaktionen gehen",
+ "REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
"DELETE": "Löschen",
- "NO_OPENCHANNELCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
- "NEW_OPENCHANNELCANNEDANSWER": "Neue vordefinierte Antwort",
- "ADD_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
- "EDIT_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
- "DELETE_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort löschen",
- "DELIVERYREPORTURL": "Zustellungsbericht-URL",
+ "NO_OPENCHANNELCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
+ "NEW_OPENCHANNELCANNEDANSWER": "Neue Textvorlage",
+ "ADD_OPENCHANNELCANNEDANSWER": "Textvorlage hinzufügen",
+ "EDIT_OPENCHANNELCANNEDANSWER": "Textvorlage bearbeiten",
+ "DELETE_OPENCHANNELCANNEDANSWER": "Textvorlage löschen",
+ "DELIVERYREPORTURL": "URL für Zustellungsbericht",
"DELETE_INTERACTION": "Interaktion löschen",
- "COMMAND": "Befehl",
+ "COMMAND": "Eingabe",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"VARIABLE": "Variable",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Shake",
- "NOTIFICATIONSOUND": "Klingen",
+ "NOTIFICATIONSHAKE": "Schütteln",
+ "NOTIFICATIONSOUND": "Klingeln",
"NOTIFICATIONTEMPLATE": "Vorlage",
- "INSERT_MESSAGE_HERE": "Fügen Sie hier Ihre Textnachricht ein",
+ "INSERT_MESSAGE_HERE": "Textnachricht hier eingeben",
"WAITFORTHEASSIGNEDAGENT": "Warte auf den zugewiesenen Agenten",
- "ADVANCED": "Fortgeschritten",
+ "ADVANCED": "Erweitert",
"PROXY": "Proxy",
- "TOKEN": "Zeichen",
+ "TOKEN": "Token",
"EDIT_TAG": "Tag bearbeiten",
- "TAG": "Etikett",
- "AGENTADD_OPENCHANNELACCOUNT": "Fügen Sie Agent zu Openchannel Account hinzu",
- "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
- "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
- "MAPKEY": "Karten Schlüssel",
+ "TAG": "Tag",
+ "AGENTADD_OPENCHANNELACCOUNT": "Konto offener Kanal hinzufügen",
+ "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
+ "CANNED_ANSWER_SEARCH": "Nach Textvorlagen suchen",
+ "MAPKEY": "MAP-KEY",
"SEND": "Senden",
- "TO": "Zu",
- "AGENTTRANSFER": "Agent Transfer",
+ "TO": "An",
+ "AGENTTRANSFER": "Weiterleitung Agent",
"AGENTTRANSFERTIMEOUT": "Zeitüberschreitung für Agententransfer",
- "QUEUETRANSFER": "Warteschlangenübertragung",
- "QUEUETRANSFERTIMEOUT": "Warteschlangenübertragungs-Timeout",
- "TRANSFER": "Transfer",
- "CANNEDANSWERS": "Vordefinierte Antworten",
+ "QUEUETRANSFER": "Weiterleitung Warteschlange",
+ "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung für Warteschlangentransfer",
+ "TRANSFER": "Weiterleitung",
+ "CANNEDANSWERS": "Textvorlagen",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "OPENCHANNELCANNEDANSWERS": "Vordefinierte Antworten",
- "LOGIN_TIME": "Login-Zeit",
- "PAUSE_TIME": "Pausenzeit",
- "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
- "MANDATORYDISPOSITION": "Zwingende Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
- "DIALOGFLOW": "Dialogablauf",
- "EDIT_DIALOGFLOW": "Bearbeiten Sie die Dialogflow-Konfiguration",
+ "OPENCHANNELCANNEDANSWERS": "Textvorlagen offener Kanal",
+ "LOGIN_TIME": "Zeit angemeldet",
+ "PAUSE_TIME": "Zeit in Pause",
+ "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern sonst erforderlich",
+ "DIALOGFLOW": "DialogFlow",
+ "EDIT_DIALOGFLOW": "DialogFlow bearbeiten",
"LANGUAGE": "Sprache",
- "WELCOMEMESSAGE": "Willkommen Messsage",
+ "WELCOMEMESSAGE": "Willkommensnachricht",
"ACCESSKEYID": "Zugangsschlüssel-ID",
"AMAZONLEX": "AmazonLex",
- "BOTNAME": "Bot-Name",
- "EDIT_AMAZONLEX": "Bearbeiten Sie die Lex-Konfiguration",
- "LEXREGION": "Region",
- "SECRETACCESSKEY": "Zugangsschlüssel geheim",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "BOTNAME": "Botname",
+ "EDIT_AMAZONLEX": "Lex-Konfiguration bearbeiten",
+ "LEXREGION": "Lex Region",
+ "SECRETACCESSKEY": "Geheimer Schlüssel",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme angehalten",
"TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterlagen ohne Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Herunterlagen inkl. Anhänge",
"LASTMESSAGE": "Letzte Nachricht",
- "CLIENTEMAIL": "Kunden-E-Mail",
+ "CLIENTEMAIL": "Kunden E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privat Schlüssel",
+ "PRIVATEKEY": "Privater Schlüssel",
"PROJECTID": "Projekt-ID",
"ADD_NOTE": "Notiz hinzufügen",
- "NOTE": "Hinweis"
+ "NOTE": "Notiz"
}
}
{
"STAFF": {
"CONTEXT": "Kontext",
- "RINGINUSE": "Ring im Einsatz",
+ "RINGINUSE": "Innerhalb Verteilungsgrupppe",
"USERS": "Benutzer",
"AGENTS": "Agenten",
- "TOGGLE_SIDENAV": "Um sidenav",
- "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+ "TOGGLE_SIDENAV": "Navigationsleiste umschalten",
+ "SEARCH_FOR_ANYONE": "Suche",
"BACK": "Zurück",
- "MULTI_SELECT_TOGGLE": "Wählen Sie toggle multi",
- "SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Wählen Sie \"Keine\"",
- "SELECTED": "Ausgewählte",
+ "MULTI_SELECT_TOGGLE": "Mehrfachauswahl ja/nein",
+ "SELECT_ALL": "Alles auswählen",
+ "SELECT_NONE": "Nichts auswählen",
+ "SELECTED": "Ausgewählt",
"DELETE_SELECTED": "Auswahl löschen",
"EXPORT_SELECTED": "Auswahl exportieren",
"ALL_USERS": "Alle Benutzer",
"ALL_AGENTS": "Alle Agenten",
"SORT": "Sortieren",
"NAME": "Name",
- "FULLNAME": "Voller Name",
+ "FULLNAME": "Vollständiger Name",
"A_TO_Z": "(A bis Z)",
"Z_TO_A": "(Z bis A)",
"MORE": "Mehr",
"DELETE_USER": "Benutzer löschen",
"EDIT_USER": "Benutzer bearbeiten",
- "DELETE_AGENT": "Bedienplatz löschen",
- "EDIT_AGENT": "Agent bearbeiten",
+ "DELETE_AGENT": "Agenten löschen",
+ "EDIT_AGENT": "Agenten bearbeiten",
"DELETE": "Löschen",
"SAVE": "Speichern",
"ADD_USER": "Benutzer hinzufügen",
"ADD_AGENT": "AGENT HINZUFÜGEN",
- "NO_RESULTS": "Keine Ergebnisse.",
+ "NO_RESULTS": "Keine Ergebnisse",
"CLOSE_DIALOG": "Dialog schließen",
- "NAME_REQUIRED": "Name (erforderlich).",
+ "NAME_REQUIRED": "Name (erforderlich)",
"USERNAME": "Benutzername",
"SHOW_ALL_FIELDS": "Alle Felder anzeigen",
"PHONE_NUMBER": "Telefonnummer",
"EMAIL": "E-Mail",
"PASSWORD": "Passwort",
"ERRORS": {
- "FULLNAME_REQUIRED": "Der Fullname ist erforderlich",
- "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
- "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
- "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
- "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
- "ACCOUNTNAME_REQUIRED": "Der Account ist erforderlich.",
- "NAME_REQUIRED": "Der Name ist erforderlich",
- "HOST_REQUIRED": "Der Host wird benötigt",
- "CHATCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
- "MAILCAPACITY_REQUIRED": "Die E-Mail Kapazität erforderlich ist",
- "FAXCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
- "SMSCAPACITY_REQUIRED": "Die SMS-Kapazität erforderlich ist",
- "OPENCHANNELCAPACITY_REQUIRED": "Der Offene Kanal Kapazität erforderlich ist",
- "SIPEXPIRES_REQUIRED": "Der SIP-Ablauf ist erforderlich",
- "SIPPORT_REQUIRED": "Die SIP-Port erforderlich.",
- "UNCONDITIONALNUMBER_REQUIRED": "Die Zielrufnummer ist erforderlich",
- "NOREPLYNUMBER_REQUIRED": "Die Nummer ist keine Antwort erforderlich",
- "BUSYNUMBER_REQUIRED": "Die besetzt ist erforderlich",
- "USERNAME_MUST_VALID_PATTERN": "Der Benutzername muss gültige {{regex}}.",
- "REMOTECONTROLPORT_REQUIRED": "Die Fernbedienung Anschluss erforderlich",
- "CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Chat Kapazität muss größer als oder gleich",
- "MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die E-Mail Kapazität muss größer als oder gleich",
- "FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Das Fax Kapazität muss größer als oder gleich",
- "OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der offene Kanal Kapazität muss größer als oder gleich",
- "AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "FULLNAME_REQUIRED": "Vollständiger Name ist erforderlich",
+ "USERNAME_REQUIRED": "Benutzername ist erforderlich",
+ "EMAIL_REQUIRED": "E-Mail ist erforderlich",
+ "PASSWORD_REQUIRED": "Passwort ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
+ "EMAIL_MUST_VALID": "E-Mail Format ungültig",
+ "ACCOUNTNAME_REQUIRED": "Konto ist erforderlich",
+ "NAME_REQUIRED": "Name ist erforderlich",
+ "HOST_REQUIRED": "Host ist erforderlich",
+ "CHATCAPACITY_REQUIRED": "Kapazität Chat ist erforderlich",
+ "MAILCAPACITY_REQUIRED": "Kapazität E-Msil ist erforderlich",
+ "FAXCAPACITY_REQUIRED": "Kapazität Fax ist erforderlich",
+ "SMSCAPACITY_REQUIRED": "Kapazität SMS ist erforderlich",
+ "OPENCHANNELCAPACITY_REQUIRED": "Kapazität offener Kanal ist erforderlich",
+ "SIPEXPIRES_REQUIRED": "SIP-Ablaufdatum ist erforderlich",
+ "SIPPORT_REQUIRED": "SIP-Port ist erforderlich",
+ "UNCONDITIONALNUMBER_REQUIRED": "Zielrufnummer ist erforderlich",
+ "NOREPLYNUMBER_REQUIRED": "Nummer bei keiner Antwort ist erforderlich",
+ "BUSYNUMBER_REQUIRED": "Nummer bei Besetzt ist erforderlich",
+ "USERNAME_MUST_VALID_PATTERN": "Benutzername ungültig {{regex}}.",
+ "REMOTECONTROLPORT_REQUIRED": "Port für Remote ist erforderlich",
+ "CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität Chat muss größer oder gleich sein als",
+ "MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität E-Mail muss größer oder gleich sein als",
+ "FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität Fax muss größer oder gleich sein als",
+ "OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität offener Kanal muss größer oder gleich sein als",
+ "AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"AUTOANSWERDELAY_REQUIRED": "Pflichtfeld",
"MONITOREXTENSION_REQUIRED": "Pflichtfeld",
"ENCRYPTION": "SRTP (Secure Realtime Protocol) Verschlüsselung",
"DTLSCERTFILE_REQUIRED": "Pflichtfeld",
"DTLSPRIVATEKEY_REQUIRED": "Pflichtfeld",
- "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen haben ~! @",
+ "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstaben, 1 Großbuchstaben, 1 Zahl und 1 Sonderzeichen enthalten",
"ALLOWCODECS_REQUIRED": "Pflichtfeld",
"CRUDPERMISSIONS_REQUIRED": "Pflichtfeld",
"USERPROFILE_REQUIRED": "Pflichtfeld",
- "PASSWORD_OLDPASSWORD_MATCH": "Das neue Passwort muss sich vom vorherigen Passwort unterscheiden",
+ "PASSWORD_OLDPASSWORD_MATCH": "Neues und altes Passwort dürfen nicht gleich sein",
"CONFIRM_REQUIRED": "Pflichtfeld",
"WHATSAPPCAPACITY_REQUIRED": "Pflichtfeld"
},
"ACCOUNT": "Konto",
- "VOICE": "Voice",
+ "VOICE": "Anrufe",
"CREATED_AT": "Erstellt am",
"ROLE": "Rolle",
- "PERSONAL_INFO": "Persönliche Infos",
+ "PERSONAL_INFO": "Persönliche Informationen",
"DESCRIPTION": "Beschreibung",
- "CHANGE_AVATAR": "Avatar ändern.",
+ "CHANGE_AVATAR": "Avatar ändern",
"GENERAL": "Allgemein",
- "INTERNAL": "Interne",
- "TRANSPORT": "Verkehr",
+ "INTERNAL": "Intern",
+ "TRANSPORT": "Transport",
"ALLOWCODECS": "Codecs erlaubt",
"HELP": {
"ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz",
"TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
- "HOST": "Wie finden Sie die Client-IP oder den Host-Namen. Wenn Sie möchten, dass das Telefon zu registrieren, verwenden Sie das Schlüsselwort Dynamic anstelle von Host-IP.",
- "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
- "SIPEXPIRES": "Standardeinstellung: 120",
+ "HOST": "Wie finden Sie die Client-IP oder den Host-Namen um das Telefon zu registrieren, verwenden Sie das Schlüsselwort Dynamic anstelle von Host-IP.",
+ "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall. Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
+ "SIPEXPIRES": "Standardeinstellung: 160",
"SIPPORT": "Standardeinstellung: 5160",
- "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
- "CHATCAPACITY": "Null bedeutet unbegrenzt.",
- "MAILCAPACITY": "Null bedeutet unbegrenzt.",
- "FAXCAPACITY": "Null bedeutet unbegrenzt.",
- "SMSCAPACITY": "Null bedeutet unbegrenzt.",
- "OPENCHANNELCAPACITY": "Null bedeutet unbegrenzt.",
- "CALLGROUP": "Legt der Agent callgroup",
- "PICKUPGROUP": "Definiert die Gruppen in denen der Agent Anrufe annehmen können",
+ "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: eingehende Authentifizierung - Peer: für ausgehende Anrufe - Freund: Deckt beide Eigenschaften",
+ "CHATCAPACITY": "0 für unbegrenzt",
+ "MAILCAPACITY": "0 für unbegrenzt",
+ "FAXCAPACITY": "0 für unbegrenzt",
+ "SMSCAPACITY": "0 für unbegrenzt",
+ "OPENCHANNELCAPACITY": "0 für unbegrenzt",
+ "CALLGROUP": "Anrufgruppe",
+ "PICKUPGROUP": "Übernahmegruppe",
"USERNAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"ENCRYPTION": "SRTP (Secure Realtime Protocol) Verschlüsselung",
"LAST_PASSWORD_RESET_AT": "Letztes Datum und Uhrzeit, zu der das Passwort geändert wurde. Wenn die Allgemeinen Einstellungen für Secure Suite aktiviert sind, läuft das Passwort nach 90 Tagen ab.",
"DTLSCERTFILE": "Verknüpfen Sie mit dem gültigen TLS-Zertifikat (.crt-Datei). Standardwert: '/etc/pki/tls/certs/motion.crt'.",
"DTLSPRIVATEKEY": "Verknüpfen Sie mit dem privaten Schlüssel des Zertifikats (.key-Datei). Standardwert: '/etc/pki/tls/private/motion.key'.",
"SAVE_PERMISSIONS": "Jeder Abschnitt, der ausstehende Änderungen enthält, wird gespeichert",
- "CUSTOM_DASHBOARDS_PERMISSIONS": "Berechtigungen für benutzerdefinierte Dashboards werden im Modul Tools verwaltet",
+ "CUSTOM_DASHBOARDS_PERMISSIONS": "Berechtigungen für benutzerdefinierte Dashboards werden im Werkzeuge-Modul verwaltet",
"APIKEY": "Verwenden Sie die Schaltfläche \"API-Schlüsselmanager\" in der Symbolleiste, um diesen Schlüssel zu verwalten",
- "ENABLEAUTOMATICSCREENRECORDING": "Die Funktionalität ist nur für Sprachkanäle verfügbar",
- "BLOCKED": "Zugriff sperren / entsperren",
- "DISABLED": "Zum Deaktivieren auswählen / Zum Reaktivieren deaktivieren",
- "WHATSAPPCAPACITY": "Maximale Anzahl gleichzeitiger Kanalinteraktionen pro Agent (0 = unbegrenzt)",
+ "ENABLEAUTOMATICSCREENRECORDING": "Funktionalität ist nur für Sprachkanäle verfügbar",
+ "BLOCKED": "Zugriff sperren/entsperren",
+ "DISABLED": "Auswählen zum Aktivieren",
+ "WHATSAPPCAPACITY": "Maximale Anzahl gleichzeitiger Whatsapp-Interaktionen pro Agent (0 = unbegrenzt)",
"MASK_SENSITIVE_DATA": "Maskieren Sie vertrauliche Daten in der gesamten Anwendung (z. B. Telefonnummern und E-Mail-Adressen).",
"WSS_PORT": "Standard: 8089"
},
- "NEW_PASSWORD": "Neues Kennwort",
+ "NEW_PASSWORD": "Neues Passwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"CHANGE_PASSWORD": "Passwort ändern",
- "CHANGEPASSWORD_AGENT": "Passwort ändern",
- "CHANGEPASSWORD_USER": "Passwort ändern",
- "CHANGEPASSWORD_TELEPHONE": "Passwort ändern",
- "LOGININPAUSE": "Geben Sie Ihren Benutzernamen und Ihr Passwort In der Pause",
+ "CHANGEPASSWORD_AGENT": "Agent",
+ "CHANGEPASSWORD_USER": "Nutzer",
+ "CHANGEPASSWORD_TELEPHONE": "Telefon",
+ "LOGININPAUSE": "Pause nach Anmelden",
"HOST": "Host",
"NAT": "NAT",
- "CHANSPY": "ChanSpy",
+ "CHANSPY": "Listen-In",
"OTHER_CHANNELS": "Andere Kanäle",
- "CHATCAPACITY": "Chat Kapazität",
- "MAILCAPACITY": "E-Kapazität",
- "FAXCAPACITY": "Fax Kapazität",
- "SMSCAPACITY": "Sms-Kapazität",
- "OPENCHANNELCAPACITY": "Offener Kanal Kapazität",
+ "CHATCAPACITY": "Kapazität Chats",
+ "MAILCAPACITY": "Kapazität E-Mail",
+ "FAXCAPACITY": "Kapazität Fax",
+ "SMSCAPACITY": "Kapazität SMSW",
+ "OPENCHANNELCAPACITY": "Kapazität offener Kanal",
"MOTIONBAR": "Motion Bar",
"SETTINGS": "Einstellungen",
- "AUTOANSWER": "\"Autom. Antwort\"",
+ "AUTOANSWER": "Auto-Antwort",
"ENABLESETTINGS": "Einstellungen aktivieren",
"CALL_FORWARDING": "Anrufweiterleitung",
- "UNCONDITIONAL": "Unbedingte",
- "UNCONDITIONALNUMBER": "Uneingeschränkte Anzahl",
- "NOREPLY": "Keine Antwort",
- "NOREPLYNUMBER": "\"Keine Antwort\"-Nummer",
- "BUSY": "Besetzt",
- "BUSYNUMBER": "Nummer besetzt",
- "REMOTE_CONTROL": "Fernbedienung",
- "REMOTECONTROL": "Fernbedienung",
- "REMOTECONTROLPORT": "Fernbedienung",
+ "UNCONDITIONAL": "Generell",
+ "UNCONDITIONALNUMBER": "Nummer Weiterleitung generell",
+ "NOREPLY": "Bei keiner Antwort",
+ "NOREPLYNUMBER": "Nummer Weiterleitung keine Antwort",
+ "BUSY": "Bei Besetzt",
+ "BUSYNUMBER": "Nummer Weiterleitung Besetzt",
+ "REMOTE_CONTROL": "Remote-Nebenstelle",
+ "REMOTECONTROL": "Remote-Nebenstelle",
+ "REMOTECONTROLPORT": "Port Remote-Nebenstelle",
"SIP": "SIP",
- "SIPEXPIRES": "SIP läuft [sec]",
+ "SIPEXPIRES": "SIP-Ablaufdatum",
"SIPPORT": "SIP-Port",
- "PENALTY": "Strafe",
+ "PENALTY": "Verzögerung",
"ACCOUNTNAME": "Account Name",
"ADD_TELEPHONE": "Telefon hinzufügen",
"EDIT_TELEPHONE": "Telefon bearbeiten",
"DELETE_TELEPHONE": "Telefon löschen",
"TEAMS": "Teams",
"DELETE_TEAM": "Team löschen",
- "AGENTADD_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
- "EDIT_TEAM": "Team bearbeiten.",
+ "AGENTADD_TEAM": "Agenten zu einem Team hinzufügen",
+ "EDIT_TEAM": "Team bearbeiten",
"TYPE": "Typ",
- "TELEPHONES": "Telefone",
- "CALLERID": "Die Anrufer-ID",
- "ENABLERECORDING": "Aktivieren der Aufzeichnung",
+ "TELEPHONES": "Telefonnummern",
+ "CALLERID": "Anrufer-ID",
+ "ENABLERECORDING": "Aufzeichnung aktiv",
"STAFF": "Personal",
- "ID": "Id",
+ "ID": "ID",
"NEW_USER": "Neuer Benutzer",
"NEW_AGENT": "Neuer Agent",
"NEW_TELEPHONE": "Neues Telefon",
"NEW_TEAM": "Neues Team",
"ADD_TEAM": "Team hinzufügen",
- "JOIN_QUEUE": "Melden Sie Warteschlange",
+ "JOIN_QUEUE": "In Warteschlange beitreten",
"CAPACITY": "Kapazität",
"AUTOINTERNAL": "Interne Nummer automatisch generieren",
- "ADD_AGENT_TO_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
- "TEAMADD_AGENT": "Agent zu Gruppe hinzufügen",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ADD_AGENT_TO_TEAM": "Agenten zum Team hinzufügen",
+ "TEAMADD_AGENT": "Zum Team hinzufügen",
+ "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
"PERMISSIONS": "Berechtigungen",
- "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
+ "ADD_AGENT_TO_QUEUE": "Agenten zur Warteschlange hinzufügen",
"ALL_MODULES_AVAILABLE": "Alle Module verfügbar",
- "CALLGROUP": "Gruppenruf",
+ "CALLGROUP": "Gruppenanruf",
"PICKUPGROUP": "Übernahmegruppe",
- "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agent in der Warteschlange Kampagnen hinzufügen",
- "QUEUEADD_AGENT_VOICE_INBOUND": "Agent Voice Warteschlangen hinzufügen",
- "QUEUEADD_AGENT_CHAT_INBOUND": "Agent zu chatten Warteschlangen hinzufügen",
- "QUEUEADD_AGENT_MAIL_INBOUND": "Agent Mail Warteschlangen hinzufügen",
- "QUEUEADD_AGENT_SMS_INBOUND": "Agent sms-Warteschlangen hinzufügen",
- "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agent zu offenen Kanal Warteschlangen hinzufügen",
- "QUEUEADD_AGENT_FAX_INBOUND": "Agent fax Warteschlangen hinzufügen",
- "QUEUEADD_USER_VOICE_INBOUND": "Benutzer stimme Warteschlangen hinzufügen",
- "QUEUEADD_USER_CHAT_INBOUND": "Benutzer zu chatten Warteschlangen hinzufügen",
- "QUEUEADD_USER_MAIL_INBOUND": "Benutzer Mail Warteschlangen hinzufügen",
- "QUEUEADD_USER_SMS_INBOUND": "Benutzer von SMS-Warteschlangen hinzufügen",
- "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Benutzer zum offenen Kanal Warteschlangen hinzufügen",
- "QUEUEADD_USER_FAX_INBOUND": "Benutzer fax Warteschlangen hinzufügen",
- "ALL_TEAMS": "Alle Mannschaften",
+ "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agenten hinzufügen - ausgehende Anrufe",
+ "QUEUEADD_AGENT_VOICE_INBOUND": "Agenten hinzufügen - eingehende Anrufe",
+ "QUEUEADD_AGENT_CHAT_INBOUND": "Agenten hinzufügen - Chat-Warteschlangen",
+ "QUEUEADD_AGENT_MAIL_INBOUND": "Agenten hinzufügen - E-Mail-Warteschlangen",
+ "QUEUEADD_AGENT_SMS_INBOUND": "Agenten hinzufügen - SMS-Warteschlangen",
+ "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agenten hinzufügen - offener Kanal-Warteschlangen",
+ "QUEUEADD_AGENT_FAX_INBOUND": "Agenten hinzufügen - Fax-Warteschlangen",
+ "QUEUEADD_USER_VOICE_INBOUND": "Nutzer hinzufügen - eingehende Anrufe",
+ "QUEUEADD_USER_CHAT_INBOUND": "Nutzer hinzufügen - eingehende Chats",
+ "QUEUEADD_USER_MAIL_INBOUND": "Nutzer hinzufügen - eingehende E-Mails",
+ "QUEUEADD_USER_SMS_INBOUND": "Nutzer hinzufügen - eingehende SMS",
+ "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Nutzer hinzufügen - eingehender offener Kanal",
+ "QUEUEADD_USER_FAX_INBOUND": "Nutzer hinzufügen - eingehende Faxe",
+ "ALL_TEAMS": "Alle Teams",
"SELECTED_TEAMS": "Ausgewählte Teams",
"SELECTED_AGENTS": "Ausgewählte Agenten",
- "ALL_QUEUES_VOICE_OUTBOUND": "Alle Queue Kampagnen",
- "SELECTED_QUEUES_VOICE_OUTBOUND": "Ausgewählte Warteschlange Kampagnen",
- "ALL_QUEUES_VOICE_INBOUND": "Alle Warteschlangen",
- "SELECTED_QUEUES_VOICE_INBOUND": "Ausgewählte Voice Warteschlangen",
- "ALL_QUEUES_CHAT_INBOUND": "Alle Chat Warteschlangen",
- "SELECTED_QUEUES_CHAT_INBOUND": "Ausgewählte Chat-warteschlangen",
- "ALL_QUEUES_MAIL_INBOUND": "Alle E-Mail-Warteschlangen",
- "SELECTED_QUEUES_MAIL_INBOUND": "Ausgewählte Mail Warteschlangen",
- "ALL_QUEUES_SMS_INBOUND": "Alle SMS-Warteschlangen",
- "SELECTED_QUEUES_SMS_INBOUND": "Ausgewählte SMS-Warteschlangen",
- "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle offenen Kanal Warteschlangen",
- "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Ausgewählten Offenen Kanal Warteschlangen",
- "ALL_QUEUES_FAX_INBOUND": "Alle Fax Warteschlangen",
- "SELECTED_QUEUES_FAX_INBOUND": "Ausgewählte Fax Warteschlangen",
+ "ALL_QUEUES_VOICE_OUTBOUND": "Alle Warteschlangen - ausgehende Anrufe",
+ "SELECTED_QUEUES_VOICE_OUTBOUND": "Gewählte Warteschlangen - ausgehende Anrufe",
+ "ALL_QUEUES_VOICE_INBOUND": "Alle Warteschlangen - eingehende Anrufe",
+ "SELECTED_QUEUES_VOICE_INBOUND": "Ausgewählte Warteschlangen - eingehende Anrufe",
+ "ALL_QUEUES_CHAT_INBOUND": "Alle Warteschlangen - Chat",
+ "SELECTED_QUEUES_CHAT_INBOUND": "Ausgewählte Warteschlangen - Chat",
+ "ALL_QUEUES_MAIL_INBOUND": "Alle Warteschlangen - E-Mail",
+ "SELECTED_QUEUES_MAIL_INBOUND": "Ausgewählte Warteschlangen - E-Mail",
+ "ALL_QUEUES_SMS_INBOUND": "Alle Warteschlangen - SMS",
+ "SELECTED_QUEUES_SMS_INBOUND": "Ausgewählte Warteschlangen - SMS",
+ "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle Warteschlangen - offener Kanal",
+ "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Ausgewählte Warteschlangen - offener Kanal",
+ "ALL_QUEUES_FAX_INBOUND": "Alle Warteschlangen - Fax",
+ "SELECTED_QUEUES_FAX_INBOUND": "Ausgewählte Warteschlangen - Fax",
"VOICEMAIL": "Voicemail",
- "SHOWWEBCONTROL": "Anzeigen Web Control",
+ "SHOWWEBCONTROL": "WebControl anzeigen",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
+ "OF": "von",
"CALLFORWARDING": "Anrufweiterleitung",
- "DND": "Während der Pause nicht stören",
- "UNANSWEREDCALLBADGE": "Zeige unbeantwortete Anruf Abzeichen",
- "ENABLEDTMFTONE": "Dtmf-Töne aktivieren",
- "AUTOANSWERDELAY": "Auto Antwortverzögerung",
+ "DND": "Nicht stören",
+ "UNANSWEREDCALLBADGE": "Badge unbeantwortete Anrufe",
+ "ENABLEDTMFTONE": "DMFT-Töne aktivieren",
+ "AUTOANSWERDELAY": "Automatische Antwort nach",
"ENCRYPTION": "Verschlüsselung",
"CHANNELS": "Kanäle",
"CHAT": "Chat",
- "SMS": "Sms",
+ "SMS": "SMS",
"OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
- "QUEUEADD_USER_VOICE_OUTBOUND": "Benutzer in Warteschlange Kampagnen hinzufügen",
- "MONITOREXTENSION": "Anrufe an die Nebenstelle des Benutzers aufzeichnen",
+ "QUEUEADD_USER_VOICE_OUTBOUND": "Nutzer zu Warteschlange für eingehende Anrufe hinzufügen",
+ "MONITOREXTENSION": "Nebenstelle des Nutzers aufzeichnen",
"NO_PASSWORD_CHANGE": "Keine Passwortänderung",
"SECURITY_SUITE": "Sicherheitssuite",
- "LAST_PASSWORD_RESET_AT": "Letzte Passwort zurücksetzen um",
- "SIP_WEBRTC": "Schluck",
- "SETTINGS_WEBRTC": "die Einstellungen",
+ "LAST_PASSWORD_RESET_AT": "Passwort zuletzt zurückgesetzt am:",
+ "SIP_WEBRTC": "SIP/WebRTC",
+ "SETTINGS_WEBRTC": "Einstellungen",
"WEBRTC": "WebRTC",
"DTLSCERTFILE": "TLS-Zertifikat",
- "DTLSPRIVATEKEY": "Der private Schlüssel des TLS-Zertifikats",
- "EDITPERMISSIONS": "Bearbeiten von Berechtigungen",
- "READANDEDIT": "Lesen, Bearbeiten",
- "READANDEDITANDDELETE": "Lesen, Bearbeiten, Löschen",
- "GENERAL_PERMISSIONS": "Allgemeines",
- "ENABLEMESSENGER": "Aktivieren Sie den internen Messenger",
- "OUTBOUNDPROXY": "Oubound-Proxy",
+ "DTLSPRIVATEKEY": "Privater Schlüssel des TLS-Zertifikats",
+ "EDITPERMISSIONS": "Berechtigungen verwalten",
+ "READANDEDIT": "Lesen und Bearbeiten",
+ "READANDEDITANDDELETE": "Lesen, Bearbeiten und Löschen",
+ "GENERAL_PERMISSIONS": "Allgemein",
+ "ENABLEMESSENGER": "Internen Messenger aktivieren",
+ "OUTBOUNDPROXY": "Outbound-Proxy",
"PHONE": "Telefon",
"MOBILE": "Handy, Mobiltelefon",
"ALIAS": "Alias",
"ENABLEJAWSINTEGRATION": "Jaws-Integration aktivieren",
"PREFIXREQUIRED": "Präfix erforderlich",
- "ENABLEVIDEORECORDING": "Aktiviere Videoaufnahme",
+ "ENABLEVIDEORECORDING": "Videoaufzeichnung aktivieren",
"OLD_PASSWORD": "Altes Passwort",
"ALL_CHATQUEUES": "Alle Chat-Warteschlangen",
"ALL_CHATWEBSITES": "Alle Chat-Websites",
"ALL_FAXACCOUNTS": "Alle Faxkonten",
- "ALL_FAXQUEUES": "Alle Faxwarteschlangen",
+ "ALL_FAXQUEUES": "Alle Fax-Warteschlangen",
"ALL_MAILACCOUNTS": "Alle E-Mail-Konten",
"ALL_MAILQUEUES": "Alle E-Mail-Warteschlangen",
- "ALL_OPENCHANNELACCOUNTS": "Alle offenen Channel-Konten",
- "ALL_OPENCHANNELQUEUES": "Alle offenen Kanalwarteschlangen",
+ "ALL_OPENCHANNELACCOUNTS": "Alle offener Kanal-Konten",
+ "ALL_OPENCHANNELQUEUES": "Alle offener Kanal-Warteschlangen",
"ALL_PROJECTS": "Alle Cally Square-Projekte",
"ALL_QUEUECAMPAIGNS": "Alle Queue-Kampagnen",
"ALL_SMSACCOUNTS": "Alle SMS-Konten",
"SELECTED_CHATQUEUES": "Ausgewählte E-Mail-Warteschlangen",
"SELECTED_CHATWEBSITES": "Ausgewählte Chat-Websites",
"SELECTED_FAXACCOUNTS": "Ausgewählte Faxkonten",
- "SELECTED_FAXQUEUES": "Ausgewählte Faxwarteschlangen",
+ "SELECTED_FAXQUEUES": "Ausgewählte Fax-Warteschlangen",
"SELECTED_MAILACCOUNTS": "Ausgewählte E-Mail-Konten",
"SELECTED_MAILQUEUES": "Ausgewählte Chat-Warteschlangen",
- "SELECTED_OPENCHANNELACCOUNTS": "Ausgewählte offene Channel-Konten",
- "SELECTED_OPENCHANNELQUEUES": "Ausgewählte offene Kanalwarteschlangen",
+ "SELECTED_OPENCHANNELACCOUNTS": "Ausgewählte offener Kanal-Konten",
+ "SELECTED_OPENCHANNELQUEUES": "Ausgewählte offene Kanal-Warteschlangen",
"SELECTED_PROJECTS": "Ausgewählte Projekte von Cally Square",
"SELECTED_QUEUECAMPAIGNS": "Ausgewählte Queue-Kampagnen",
"SELECTED_SMSACCOUNTS": "Ausgewählte SMS-Konten",
"SELECTED_SMSQUEUES": "Ausgewählte SMS-Warteschlangen",
- "SELECTED_VOICEQUEUES": "Ausgewählte Sprachwarteschlangen",
+ "SELECTED_VOICEQUEUES": "Ausgewählte Anruf-Warteschlangen",
"USERADD_CHATQUEUES": "Chat-Warteschlange zum Benutzer hinzufügen",
"USERADD_CHATWEBSITES": "Chat-Website zum Benutzer hinzufügen",
"USERADD_FAXACCOUNTS": "Faxkonto zum Benutzer hinzufügen",
- "USERADD_FAXQUEUES": "Faxwarteschlange zum Benutzer hinzufügen",
+ "USERADD_FAXQUEUES": "Fax-Warteschlange zum Benutzer hinzufügen",
"USERADD_MAILACCOUNTS": "E-Mail-Konto zum Benutzer hinzufügen",
"USERADD_MAILQUEUES": "E-Mail-Warteschlange zum Benutzer hinzufügen",
- "USERADD_OPENCHANNELACCOUNTS": "Open Channel-Konto zum Benutzer hinzufügen",
- "USERADD_OPENCHANNELQUEUES": "Open Channel-Warteschlange zum Benutzer hinzufügen",
+ "USERADD_OPENCHANNELACCOUNTS": "Offener Kanal-Konto zum Benutzer hinzufügen",
+ "USERADD_OPENCHANNELQUEUES": "Offener Kanal-Warteschlange zum Benutzer hinzufügen",
"USERADD_PROJECTS": "Cally Square-Projekt zum Benutzer hinzufügen",
"USERADD_QUEUECAMPAIGNS": "Queue-Kampagne zum Benutzer hinzufügen",
"USERADD_SMSACCOUNTS": "SMS-Konto zum Benutzer hinzufügen",
"USERADD_SMSQUEUES": "SMS-Warteschlange zum Benutzer hinzufügen",
- "USERADD_VOICEQUEUES": "Sprachwarteschlange zum Benutzer hinzufügen",
- "HOTDESK": "Heißer Schreibtisch",
+ "USERADD_VOICEQUEUES": "Anruf-Warteschlange zum Benutzer hinzufügen",
+ "HOTDESK": "Wechselnder Arbeitsplatz",
"ADD_USERPROFILE": "Benutzerprofil hinzufügen",
- "CANCEL": "Stornieren",
+ "CANCEL": "Abbrechen",
"CLONE_USERPROFILE": "Benutzerprofil klonen",
"CLOSE": "Schließen",
"CONFIRM": "Bestätigen",
"PERMISSIONS_SELECTED_RESOURCES": "Ausgewählte Ressourcen",
"PERMISSIONS_SELECT_REPORT_TYPE": "Wählen Sie den Berichtstyp",
"PERMISSIONS_SELECT_SECTION": "Wählen Sie einen Abschnitt aus",
- "PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE": "Sie dürfen nicht auf den ausgewählten Bereich zugreifen",
+ "PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE": "Kein Zugriff auf den ausgewählten Bereich",
"PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE": "Unbefugte Handlung",
- "PERMISSIONS_WARNING_CLOSE": "Du hast nicht gespeicherte Änderungen. Möchten Sie den Vorgang wirklich ohne Speichern beenden?",
+ "PERMISSIONS_WARNING_CLOSE": "Es wurden Änderungen nicht gespeichert. Fortfahren?",
"PERMISSIONS_WARNING_ENABLE_ALL": "Alle {{sectionName}} Unterabschnitte und ihre Ressourcen werden aktiviert. Sind Sie sicher, dass Sie fortfahren möchten?",
- "QUEUES_ASSOCIATION": "{{channel}} Queues Association",
+ "QUEUES_ASSOCIATION": "{{channel}} Warteschlangen-Zuweisung",
"READ_PERMISSION": "Lesen",
"REPORT_TYPE": "Berichtstyp",
"SECTIONS": "Abschnitte",
"SUMMARY": "Zusammenfassung",
- "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
+ "TEAMS_ASSOCIATION": "Teamzuweisung",
"USERPROFILE": "Benutzerprofil",
"USERPROFILES": "Benutzerprofil",
- "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "Sie dürfen die Ressource nicht erstellen",
- "VIDEOSUPPORT": "Video-Unterstützung",
+ "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "Keine Berechtigung zum Erstellen der Ressource",
+ "VIDEOSUPPORT": "Unterstützt Video",
"APIKEY": "API-Schlüssel",
"APIKEYMANAGER_USER": "API Key Manager",
- "GENERATE": "(Regenerieren",
+ "GENERATE": "Erneut generieren",
"MANAGE_API_KEY": "API-Schlüsselmanager",
- "REMOVE": "Löschen",
- "ENABLEAUTOMATICSCREENRECORDING": "Aktivieren Sie die automatische Bildschirmaufnahme",
- "ENABLESCREENRECORDINGBYAGENT": "Aktivieren Sie die Bildschirmaufzeichnung nach Agent",
- "ENABLEVIDEOECORDING": "Videoaufnahme aktivieren",
+ "REMOVE": "Entfernen",
+ "ENABLEAUTOMATICSCREENRECORDING": "Automatische Bildschirmaufzeichnung aktivieren",
+ "ENABLESCREENRECORDINGBYAGENT": "Bildschirmaufzeichnung durch Agenten aktivieren",
+ "ENABLEVIDEOECORDING": "Videoaufzeichnung aktivieren",
"BLOCKED": "Gesperrt",
"DISABLED": "Deaktiviert",
- "REGENERATE": "Regenerieren",
+ "REGENERATE": "Erneut generieren",
"ALL_QUEUES_WHATSAPP_INBOUND": "Alle WhatsApp-Warteschlangen",
"ALL_WHATSAPPACCOUNTS": "Alle WhatsApp-Konten",
"ALL_WHATSAPPQUEUES": "Alle Whataspp-Warteschlangen",
- "QUEUEADD_AGENT_WHATSAPP_INBOUND": "Agent zu WhatsApp-Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_WHATSAPP_INBOUND": "Agenten zu WhatsApp-Warteschlangen hinzufügen",
"QUEUEADD_USER_WHATSAPP_INBOUND": "Benutzer zu WhatsApp-Warteschlangen hinzufügen",
"SELECTED_QUEUES_WHATSAPP_INBOUND": "Ausgewählte WhatsApp-Warteschlangen",
"SELECTED_WHATSAPPACCOUNTS": "Ausgewählte WhatsApp-Konten",
"SELECTED_WHATSAPPQUEUES": "Ausgewählte WhatsApp-Warteschlangen",
"USERADD_WHATSAPPACCOUNTS": "WhatsApp-Konto zum Benutzer hinzufügen",
- "USERADD_WHATSAPPQUEUES": "Fügen Sie dem Benutzer die Whataspp-Warteschlange hinzu",
+ "USERADD_WHATSAPPQUEUES": "Whataspp-Warteschlange dem Benutzer hinzufügen",
"WHATSAPP": "WhatsApp Connector",
- "WHATSAPPCAPACITY": "WhatsApp Connector-Kapazität",
+ "WHATSAPPCAPACITY": "Kapazität Whatsapp",
"MASK_SENSITIVE_DATA": "Sensitive Daten maskieren",
"WSS_PORT": "WSS-Port",
"ATTACHMENTS": "Anhänge",
"CALLYSQUARE_RECORDINGS": "Cally Square-Aufnahmen",
- "CONTACT_MANAGER_LISTS": "Kontaktmanagerlisten",
+ "CONTACT_MANAGER_LISTS": "Kontaktmanager Listen",
"DOWNLOADS": "Downloads",
"DOWNLOAD_PERMISSIONS": "Download-Berechtigungen",
"JSCRIPTY_SESSIONS": "Jscripty-Sitzungen",
"OMNICHANNEL_INTERACTIONS": "Omnichannel-Interaktionen",
- "SCREEN_RECORDINGS": "Bildschirmaufnahmen",
- "VOICE_RECORDINGS": "Sprachaufnahmen"
+ "SCREEN_RECORDINGS": "Bildschirmaufzeichnungen",
+ "VOICE_RECORDINGS": "Sprachaufzeichnungen"
}
}
"BOT": "Voicebot",
"CALL": "Anruf",
"NAME": "Name",
- "TRUNKS": "Amtsleitungen",
- "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+ "TRUNKS": "Trunks",
+ "SEARCH_FOR_ANYONE": "Suche",
"ERRORS": {
- "NAME_REQUIRED": "Der Name ist erforderlich",
- "HOST_REQUIRED": "Der Host wird benötigt",
- "DEFAULTUSER_REQUIRED": "Der Standardbenutzer ist erforderlich",
- "CALLERID_REQUIRED": "Die Anrufer-ID ist erforderlich",
- "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Kennwörter nicht übereinstimmen",
- "VALIDITYSTART_REQUIRED": "Die Startzeit ist erforderlich",
- "VALIDITYEND_REQUIRED": "Das Ende der Zeit ist erforderlich",
+ "NAME_REQUIRED": "Name ist erforderlich",
+ "HOST_REQUIRED": "Host wird benötigt",
+ "DEFAULTUSER_REQUIRED": "Standardbenutzer ist erforderlich",
+ "CALLERID_REQUIRED": "Anrufer-ID ist erforderlich",
+ "KEY_REQUIRED": "Schlüssel ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
+ "VALIDITYSTART_REQUIRED": "Startzeit ist erforderlich",
+ "VALIDITYEND_REQUIRED": "Endzeit ist erforderlich",
"MONTHDAY_REQUIRED": "Tag des Monats ist erforderlich",
- "HOUR_REQUIRED": "Die Stunde ist erforderlich",
- "CONTENT_REQUIRED": "Der Inhalt ist erforderlich",
- "URL_REQUIRED": "Die URL ist erforderlich",
- "URL_MUST_VALID_URL": "Die URL muss gültig sein",
- "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
- "ARGUMENTS_REQUIRED": "Die Argumente sind erforderlich",
- "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
- "POLLING_INTERVAL_REQUIRED": "Das Abfrageintervall ist erforderlich",
- "TITLE_REQUIRED": "Der Titel ist erforderlich",
- "EMAILADDRESS_REQUIRED": "Die E-Mail Adresse ist erforderlich",
- "EVENTVARIABLES_REQUIRED": "Pflichtfeld",
- "TYPE_REQUIRED": "Pflichtfeld",
- "VALUE_REQUIRED": "Pflichtfeld",
- "ACCOUNT_REQUIRED": "Pflichtfeld",
- "FIELD_REQUIRED": "Pflichtfeld",
- "INTEGRATION_REQUIRED": "Pflichtfeld",
- "LIST_REQUIRED": "Pflichtfeld",
- "TEMPLATE_REQUIRED": "Pflichtfeld",
- "AUTOCREATECONTACT_REQUIRED": "Pflichtfeld",
- "OUTBOUNDROUTE_REQUIRED": "Pflichtfeld",
- "QUEUE_REQUIRED": "Pflichtfeld",
- "TIME_RANGE_TO_REQUIRED": "Pflichtfeld",
- "WEEK_DAYS_TO_REQUIRED": "Pflichtfeld",
- "MONTH_DAYS_TO_REQUIRED": "Pflichtfeld",
- "MONTH_TO_REQUIRED": "Pflichtfeld",
+ "HOUR_REQUIRED": "Stunde ist erforderlich",
+ "CONTENT_REQUIRED": "Inhalt ist erforderlich",
+ "URL_REQUIRED": "URL ist erforderlich",
+ "URL_MUST_VALID_URL": "URL ungültiges Format",
+ "APPLICATION_REQUIRED": "Anwendung ist erforderlich",
+ "ARGUMENTS_REQUIRED": "Bedingungen sind erforderlich",
+ "NAME_MUST_VALID_PATTERN": "Name ungültiges Format",
+ "POLLING_INTERVAL_REQUIRED": "Abfrageintervall ist erforderlich",
+ "TITLE_REQUIRED": "Titel ist erforderlich",
+ "EMAILADDRESS_REQUIRED": "E-Mail Adresse ist erforderlich",
+ "EVENTVARIABLES_REQUIRED": "Variablen sind erforderlich",
+ "TYPE_REQUIRED": "Typ ist erforderlich",
+ "VALUE_REQUIRED": "Wert ist erforderlich",
+ "ACCOUNT_REQUIRED": "Konto ist erforderlich",
+ "FIELD_REQUIRED": "Feld ist erforderlich",
+ "INTEGRATION_REQUIRED": "Integration ist erforderlich",
+ "LIST_REQUIRED": "Liste ist erforderlich",
+ "TEMPLATE_REQUIRED": "Vorlage ist erforderlich",
+ "AUTOCREATECONTACT_REQUIRED": "Kontakterstellung erforderlich",
+ "OUTBOUNDROUTE_REQUIRED": "Ausgehende Route erforderlich",
+ "QUEUE_REQUIRED": "Warteschlange erforderlich",
+ "TIME_RANGE_TO_REQUIRED": "Zeitintervall erforderlich",
+ "WEEK_DAYS_TO_REQUIRED": "Wochentage erforderlich",
+ "MONTH_DAYS_TO_REQUIRED": "Tage des Monats erforderlich",
+ "MONTH_TO_REQUIRED": "Monat erforderlich",
"TIME_RANGE_FROM_INVALID": "Falsches Format",
"TIME_RANGE_TO_INVALID": "Falsches Format",
- "ACTION_REQUIRED": "Pflichtfeld",
- "CONFIGURATION_REQUIRED": "Pflichtfeld",
- "PROJECT_REQUIRED": "Pflichtfeld",
- "LOCATION_REQUIRED": "Pflichtfeld",
- "FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "FONTSIZE_REQUIRED": "Pflichtfeld",
- "PATH_REQUIRED": "Pflichtfeld",
- "FORMAT_REQUIRED": "Pflichtfeld",
- "REPORT_REQUIRED": "Pflichtfeld",
- "REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "REFRESH_REQUIRED": "Pflichtfeld",
- "TITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
- "NAME_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
- "OUTPUT_REQUIRED": "Pflichtfeld",
- "REPORTFOLDER_REQUIRED": "Pflichtfeld",
- "REPORTSUBFOLDER_REQUIRED": "Pflichtfeld",
- "REPORTTYPE_REQUIRED": "Pflichtfeld",
- "AGENT_REQUIRED": "Pflichtfeld",
- "INFO_REQUIRED": "Pflichtfeld",
- "SCRIPT_REQUIRED": "Pflichtfeld",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
- "TIMEOUT_REQUIRED": "Pflichtfeld",
- "AUTOCREATE_FIELD_REQUIRED": "Pflichtfeld"
+ "ACTION_REQUIRED": "Aktion erforderlich",
+ "CONFIGURATION_REQUIRED": "Konfiguration erforderlich",
+ "PROJECT_REQUIRED": "Projekt erforderlich",
+ "LOCATION_REQUIRED": "Standort erforderlich",
+ "FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "FONTSIZE_REQUIRED": "Schriftgröße erforderlich",
+ "PATH_REQUIRED": "Pfad erforderlich",
+ "FORMAT_REQUIRED": "Format erforderlich",
+ "REPORT_REQUIRED": "Report erforderlich",
+ "REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "REFRESH_REQUIRED": "Aktualisieren erforderlich",
+ "TITLE_MAX_LENGTH": "Titel darf eine maximale Länge haben von {{max}} ",
+ "NAME_MAX_LENGTH": "Name darf eine maximale Länge haben von {{max}} ",
+ "OUTPUT_REQUIRED": "Ausgabe erforderlich",
+ "REPORTFOLDER_REQUIRED": "Ordner erforderlich",
+ "REPORTSUBFOLDER_REQUIRED": "Unterordner erforderlich",
+ "REPORTTYPE_REQUIRED": "Reporttyp erforderlich",
+ "AGENT_REQUIRED": "Agent erforderlich",
+ "INFO_REQUIRED": "Information erforderlich",
+ "SCRIPT_REQUIRED": "Skript erforderlich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "TIMEOUT_REQUIRED": "Timeout erforderlich",
+ "AUTOCREATE_FIELD_REQUIRED": "Automatisches Erstellen erforderlich"
},
"HOST": "Host",
- "SECRET": "Geheimnis",
- "DEFAULTUSER": "Default User",
+ "SECRET": "Secret",
+ "DEFAULTUSER": "Standardnutzer",
"DESCRIPTION": "Beschreibung",
- "ADD_TRUNK": "Amtsleitung hinzufügen",
+ "ADD_TRUNK": "Trunk hinzufügen",
"HELP": {
- "SECRET": "Kennwort für die Authentifizierung, wenden Sie sich an den Anbieter.",
+ "SECRET": "Kennwort für die Authentifizierung, wenden Sie sich an den Systemadministrator.",
"HOST": "Die Domäne oder den Hostnamen für den Anbieter.",
"DEFAULTUSER": "Authentifizierung Benutzernamen, wenden Sie sich an den Anbieter.",
"CALLERID": "Die Anrufer-ID im Format \"name\" <Nummer>.",
- "REGISTRY": "Die amtsleitung Registry, die von einigen Anbietern, die in der Regel defaultuser:Secret@host.",
- "FROMDOMAIN": "Legt Standardeinstellungen von:domain in SIP-Nachrichten als SIP-ua (Client). Einige Ziele können die obligatorische Identität Name anstatt nur die IP-Adresse.",
- "FROMUSER": "Rovider wie ihr sie kennt. Dies ist der Benutzer, um anstelle der Anrufer-ID beim Tätigen von Anrufen zu anderen Peer (SIP-Proxy). Nur gültig für den Typ=peer.",
+ "REGISTRY": "Die SIP-Registry, die von einigen Anbietern, die in der Regel defaultuser:Secret@host.",
+ "FROMDOMAIN": "Legt Standardeinstellungen von:domain in SIP-Nachrichten als SIP-ua (Client).",
+ "FROMUSER": "SIP-Nutzereinstellungen. Nur gültig für den Typ=peer.",
"OUTBOUNDPROXY": "IP-Adresse oder DNS-SRV-Ressourceneintrag name (ausgenommen die _sip._udp-Präfix): SRV Name, den Hostnamen oder die IP-Adresse des ausgehenden SIP-Proxy. Senden Sie ausgehende Signale zu diesem Proxy und nicht direkt an die Geräte. Nur gültig für den Typ=peer.",
- "PORT": "Die Nummer des Ports, zu dem Sie eine Verbindung herstellen möchten wir auf der anderen Seite.",
- "CONTEXT": "Die nutzbaren Rahmen für den Trunk.",
- "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
- "DTMFMODE": "Wie DTMF (Dual-Tone Multi-Frequency): RFC2833: Die Standardeinstellung, die DTMF gesendet mit RTP, aber außerhalb der Audio Stream. INBAND DTMF gesendet wird: Die in der Audio Stream des aktuellen Gesprächs, wird über die Lautsprecher hörbar. Erfordert eine hohe CPU-Last. INFO: Diese Methode ist zwar sehr zuverlässig, es ist nicht für alle TK-Anlagen und viele SIP-Trunk.",
- "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
+ "PORT": "Die Nummer des Ports, zu dem Sie eine Verbindung herstellen möchten.",
+ "CONTEXT": "Die nutzbaren Kontext für den Trunk.",
+ "TYPE": "Definiert die SIP-Rolle innerhalb der Anwendung. User: Authentifizierung für eingehende Verbindungen; Peer: für ausgehende Verbindungen - Freund: Beide Eigenschaften werden erfüllt",
+ "DTMFMODE": "Sendeart von DTMF-Tönen (Dual-Tone Multi-Frequency): RFC2833: Standardeinstellung, DMTF wird über RTP gesendet (außerhalb des Audiostreams) - INBAND DTMF wird innerhalb des Audiostreams gesendet, über die Lautsprecher hörbar. Erfordert eine höhere CPU-Last.",
+ "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall. Wenn \"Nein\", ignoriert der Asterisk alle anderen Einstellungen und die nat=No.",
"QUALIFY": "Legt fest, wann die SIP erreichbar ist.",
"ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz.",
- "INSECURE": "Legt fest, wie Verbindungen mit Peer, dass unsichere Einstellungen.",
- "CALL_LIMIT": "Die Anzahl der eingehenden und abgehenden Anrufe, die zu einer Zeit.",
- "DIRECTMEDIA": "Sternchen standardmäßig versucht, die RTP-Stream direkt aus den Anrufer an den Angerufenen. Einige Geräte werden nicht unterstützt wird (vor allem, wenn einer von Ihnen hinter einem NAT-Gerät befindet). Die Standardeinstellung ist Ja. Wenn Sie alle Clients hinter einem NAT-Gerät befindet, oder aus einem anderen Grund nicht möchten, dass Sternchen in der Audiospur, können Sie diese ausschalten.",
- "CALLCOUNTER": "Aktivieren Sie die Zähler auf Geräte.",
- "ADD_PHONE_TO_URI": "Legen Sie fest, ob die Provider ';user=Telefon\" an den URL.",
- "TRUST_REMOTE_PARTY_ID": "Wenn Remote-Party-ID definieren sollte.",
- "SEND_REMOTE_PARTY_ID_HEADER": "Status",
- "ENCRYPTION": "Festlegen, ob die Remote-Party-ID gesendet werden soll (standardmäßig auf Nein).",
+ "INSECURE": "Erlaubt unsichere Einstellungen für peer",
+ "CALL_LIMIT": "Maximale Anzahl aller gleichzeitigen ein- und ausgehenden Anrufe",
+ "DIRECTMEDIA": "Der Asterisk versucht, den RTP-Stream im Standard direkt zwischen dem Anrufer und dem Angerufenen aufzubauen. Manche Geräte (z.B. Firewalls) unterstützen diese Funktion nicht. Daher kann hier eine Umstellung erfolgen.",
+ "CALLCOUNTER": "Aktivieren der Anrufzähler für die Geräte",
+ "ADD_PHONE_TO_URI": "Fügt im SIP den user=phone zur URL hinzu",
+ "TRUST_REMOTE_PARTY_ID": "Soll der URL der anderen Partei vertraut werden?",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Soll die ID der anderen Partei gesendet werden?",
+ "ENCRYPTION": "Legt fest, ob die Verbindung über SRTP verschlüsselt vorliegt. Sollte das peer kein SRTP unterstützen, werden Anrufe mit dem HANGUPCAUSE=58 beendet.",
"TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
- "OTHERFIELDS": "Weitere Felder hinzufügen, in der Amtsleitungen conf-Dateien. In Sternchen format (key=value), jedes Feld auf einer Zeile.",
- "EMAILADDRESS": "Sie können mehrere Adressen mit Kommata (z. b. John.doe@xcally.com, jane.miller@xcally.com)",
+ "OTHERFIELDS": "Weitere Felder hinzufügen, in der Trunks conf-Dateien. In Sternchen format (key=value), jedes Feld auf einer Zeile.",
+ "EMAILADDRESS": "Mehrere Adressen mit Komma getrennt eingeben: (z. b. John.doe@xcally.com, jane.miller@xcally.com)",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "EVENTVARIABLES": "Wenn aktiviert, Es fügt alle Event Variablen an die Url",
+ "EVENTVARIABLES": "Fügt die Event-Variablen der URL hinzu",
"T38PT_UDPTL": "Es: Ja, Redundanz, maxdatagram = 400",
"EMAILBCCADDRESS": "Fügen Sie eine oder mehrere durch Kommas getrennte Adressen hinzu (z. B. john.doe@xcally.com, jane.miller@xcally.com).",
"EMAILCCADDRESS": "Fügen Sie eine oder mehrere durch Kommas getrennte Adressen hinzu (z. B. john.doe@xcally.com, jane.miller@xcally.com).",
- "BODY": "Wenn nicht ausgefüllt, wird der Standardwert gesendet",
+ "BODY": "(RAW-JSON-Format) Wenn nicht ausgefüllt, wird der Standardwert verwendet",
"INFO": "Titel einfügen",
"SCRIPT": "Skript einfügen",
"SCRIPT_INFO": "Fügen Sie eine Beschreibung für das Skript ein",
"SCRIPT_TYPE": "Geben Sie eine Typologie für das Skript ein (zB curl, bash ...)",
- "HEADERS": "Hinweis: Der Header-Abschnitt muss im RAW-JSON-Format {\"key\": \"value\"} vorliegen.\nHinweis: Wenn nicht ausgefüllt, wird der Standardwert gesendet",
- "TIMEOUT": "Zeitüberschreitung in Sekunden anfordern. Der Wert muss zwischen 1 und 10 liegen und der Standardwert ist 5."
+ "HEADERS": "Hinweis: Der Header-Abschnitt muss im RAW-JSON-Format {\"key\": \"value\"} vorliegen.\nHinweis: Wenn nicht ausgefüllt, wird der Standardwert verwendet",
+ "TIMEOUT": "Zeitüberschreitung in Sekunden anfordern. Der Wert muss zwischen 1 und 10 liegen - Standardwert ist 5."
},
"EDIT_TRUNK": "Trunk bearbeiten",
- "DELETE_TRUNK": "Löschen Sie Trunk",
+ "DELETE_TRUNK": "Trunk löschen",
"CREATED_AT": "Erstellt am",
"SETTINGS": "Einstellungen",
- "ADVANCED": "Erweiterte",
+ "ADVANCED": "Erweitert",
"OTHER": "Andere",
"ACTIVE": "Aktiv",
"CONTEXT": "Kontext",
- "CALLERID": "Die Anrufer-ID",
+ "CALLERID": "Anrufer-ID",
"TYPE": "Typ",
- "DTMFMODE": "Mfv-Modus",
+ "DTMFMODE": "DTMF-Modus",
"NAT": "NAT",
"QUALIFY": "Qualifizieren",
"ALLOWCODECS": "Codecs erlaubt",
"INSECURE": "Unsicher",
"REGISTRY": "Registrierung",
- "DIRECTMEDIA": "Direkte Medien",
+ "DIRECTMEDIA": "Direct Media",
"CALLCOUNTER": "Anrufzähler",
- "FROMDOMAIN": "Aus der Domäne",
- "FROMUSER": "Vom Benutzer",
- "OUTBOUNDPROXY": "Ausgehender Proxy",
- "ADD_PHONE_TO_URI": "Telefon hinzufügen, URL",
- "TRUST_REMOTE_PARTY_ID": "Vertrauen Gegenstelle ID",
- "SEND_REMOTE_PARTY_ID_HEADER": "Senden einer Partner-ID Header",
+ "FROMDOMAIN": "From Domain",
+ "FROMUSER": "From Nutzer",
+ "OUTBOUNDPROXY": "Outbound Proxy",
+ "ADD_PHONE_TO_URI": "Telefon zur URL hinzufügen",
+ "TRUST_REMOTE_PARTY_ID": "Trust Remote Party ID",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Remote Party im Header senden",
"ENCRYPTION": "Verschlüsselung",
- "PORT": "Hafen",
- "TRANSPORT": "Verkehr",
+ "PORT": "Port",
+ "TRANSPORT": "Transport",
"SAVE": "Speichern",
"VARIABLES": "Variablen",
"ADD_VARIABLE": "Variable hinzufügen",
"EDIT_VARIABLE": "Variable bearbeiten",
"DELETE_VARIABLE": "Variable löschen",
- "SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "SELECTED": "Ausgewählt",
+ "SELECT_ALL": "Alles auswählen",
+ "SELECT_NONE": "Nichts auswählen",
"TAGS": "Tags",
- "ADD_TAG": "Variable hinzufügen",
- "EDIT_TAG": "Variable bearbeiten",
- "DELETE_TAG": "Variable löschen",
+ "ADD_TAG": "Tag hinzufügen",
+ "EDIT_TAG": "Tag bearbeiten",
+ "DELETE_TAG": "Tag löschen",
"PAUSES": "Pausen",
"ADD_PAUSE": "Pause hinzufügen",
"EDIT_PAUSE": "Pause bearbeiten",
"DELETE_PAUSE": "Pause löschen",
- "ADD_CANNEDANSWER": "Vordefinierte Antwort hinzufügen",
- "EDIT_CANNEDANSWER": "Vordefinierte Antwort bearbeiten",
- "DELETE_CANNEDANSWER": "Vordefinierte Antwort löschen",
+ "ADD_CANNEDANSWER": "Textvorlage hinzufügen",
+ "EDIT_CANNEDANSWER": "Textvorlage bearbeiten",
+ "DELETE_CANNEDANSWER": "Testvorlage löschen",
"KEY": "Schlüssel",
"VALUE": "Wert",
- "SOUNDS": "Sounds",
- "EDIT_SOUND": "Ton bearbeiten",
- "DELETE_SOUND": "Sound löschen",
- "FINISH": "Fertig stellen",
+ "SOUNDS": "Audiodateien",
+ "EDIT_SOUND": "Audiodatei bearbeiten",
+ "DELETE_SOUND": "Audiodatei löschen",
+ "FINISH": "Abschließen",
"DROP_TO_UPLOAD": "Drop hochladen",
"TRIGGERS": "Trigger",
- "EDIT_TRIGGER": "Auslöser bearbeiten",
- "DELETE_TRIGGER": "Auslöser löschen",
+ "EDIT_TRIGGER": "Trigger bearbeiten",
+ "DELETE_TRIGGER": "Trigger löschen",
"ADD_TRIGGER": "Trigger hinzufügen",
"DELETE": "Löschen",
- "AUTOMATIONS": "Automatisierungen",
- "EDIT_AUTOMATION": "Bearbeiten einer Automation",
+ "AUTOMATIONS": "Automation",
+ "EDIT_AUTOMATION": "Automation bearbeiten",
"DELETE_AUTOMATION": "Automation löschen",
"ADD_AUTOMATION": "Automation hinzufügen",
"INTERVALS": "Intervalle",
"EDIT_INTERVAL": "Intervall bearbeiten",
- "DELETE_INTERVAL": "Intervall für Löschen.",
+ "DELETE_INTERVAL": "Intervall löschen",
"ADD_INTERVAL": "Intervall hinzufügen",
"TOOLS": "Werkzeuge",
- "ID": "Id",
+ "ID": "ID",
"AUDIO": "Audio",
- "DOWNLOAD_SOUND": "Download Sound",
- "UPLOAD_SOUND": "Werkzeuge",
+ "DOWNLOAD_SOUND": "Audiodatei herunterladen",
+ "UPLOAD_SOUND": "Audiodatei hochladen",
"CHANNEL": "Kanal",
"NEW_TRIGGER": "Neue Trigger",
"GENERAL": "Allgemein",
"STATUS": "Status",
"CONDITIONS&ACTIONS": "Bedingungen und Aktionen",
- "ALLCONDITIONS": "Alle diese Bedingungen erfüllen:",
- "ANYCONDITIONS": "Treffen diese Voraussetzungen:",
- "ACTIONS": "Aktionen:",
+ "ALLCONDITIONS": "Alle Bedingungen werden erfüllt",
+ "ANYCONDITIONS": "Einige Bedingungen werden erfüllt",
+ "ACTIONS": "Aktionen",
"NEW_AUTOMATION": "Neue Automation",
"TIMEOUT": "Timeout",
"PEERSTATUS": "Peer Status",
- "CALL_LIMIT": "Anrufe beschränken",
- "OTHERFIELDS": "Andere Felder",
+ "CALL_LIMIT": "Anrufe limitieren",
+ "OTHERFIELDS": "Weitere Felder",
"NEW_VARIABLE": "Neue Variable",
"NEW_TAG": "Neuer Tag",
"NEW_PAUSE": "Neue Pause",
- "NEW_CANNEDANSWER": "Neue vordefinierte Antwort",
+ "NEW_CANNEDANSWER": "Neue Textvorlage",
"CONFIRM_PASSWORD": "Passwort bestätigen",
- "NEW_TRUNK": "Neue Leitung",
- "FROM": "Von",
- "TO": "Zu",
- "WEEKDAY": "Woche Tag",
- "MONTHDAY": "Monat Tag",
+ "NEW_TRUNK": "Neuer Trunk",
+ "FROM": "von",
+ "TO": "an",
+ "WEEKDAY": "Wochentag",
+ "MONTHDAY": "Monatstag",
"MONTH": "Monat",
"ALWAYS": "Immer",
"MON": "Montag",
"PASSWORD": "Passwort",
"CUSTOMDASHBOARDS": "Benutzerdefinierte Dashboards",
"NEW_CUSTOMDASHBOARD": "Neues benutzerdefiniertes Dashboard",
- "ADD_CUSTOMDASHBOARD": "Hinzufügen von benutzerdefinierten Dashboard",
- "EDIT_CUSTOMDASHBOARD": "Benutzerdefinierte Dashboards bearbeiten",
- "DELETE_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard löschen.",
- "SCHEDULER": "Scheduler",
- "NEW_SCHEDULE": "Neuer Zeitplan",
- "ADD_SCHEDULE": "Zeitplan hinzufügen",
- "EDIT_SCHEDULE": "Zeitplan bearbeiten",
- "DELETE_SCHEDULE": "Zeitplan löschen",
+ "ADD_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard hinzufügen",
+ "EDIT_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard bearbeiten",
+ "DELETE_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard löschen",
+ "SCHEDULER": "Berichtsplanung",
+ "NEW_SCHEDULE": "Neue Planung",
+ "ADD_SCHEDULE": "Planung hinzufügen",
+ "EDIT_SCHEDULE": "Planung bearbeiten",
+ "DELETE_SCHEDULE": "Planung löschen",
"SENDMAIL": "E-Mail senden",
"CONFIGURATION": "Konfiguration",
"MAIL": "E-Mail",
"REPORTTYPE": "Berichtstyp",
"REPORT": "Bericht",
- "OUTPUT": "Ausgang",
+ "OUTPUT": "Ausgabe",
"EXECUTEON": "Ausführung",
- "REPORTRANGE": "Berichtsbereich",
+ "REPORTRANGE": "Bereich",
"VALIDITYSTART": "Startzeit",
"VALIDITYEND": "Endzeit",
"EXECUTEEVERY": "Alle ausführen",
"MONTHLY": "Monatlich",
"PREVIOUS_DAY": "Vorheriger Tag",
"LAST_SEVEN_DAYS": "Letzte sieben Tage",
- "LAST_THIRTY_DAYS": "33 verbotenen letzte Tage",
+ "LAST_THIRTY_DAYS": "Letzte 30 Tage",
"LAST_MONTH": "Letzter Monat",
- "WEEKDAYS": "Woche Tage",
+ "WEEKDAYS": "Wochentage",
"HOUR": "Stunde",
"DEFAULT": "Standard",
"CSV": "CSV",
"15MIN": "15 Minuten",
"30MIN": "30 Minuten",
"1H": "1 Stunde",
- "VOICE": "Voice",
+ "VOICE": "Sprachanrufe",
"CHAT": "Chat",
"SMS": "SMS",
"OPENCHANNEL": "Offener Kanal",
"ADD_ALLCONDITION": "Bedingung hinzufügen",
"EDIT_ACTION": "Aktion bearbeiten",
"DELETE_ACTION": "Aktion löschen",
- "NEW_ACTION": "Neue Maßnahme",
+ "NEW_ACTION": "Neue Aktion",
"ADD_ACTION": "Aktion hinzufügen",
"QUEUE": "Warteschlange",
"CALL_STATUS": "Anrufstatus",
- "OUTBOUNDROUTE": "Abgehende Routen",
- "EQUALS": "Ist gleich",
- "NOT_EQUALS": "Nicht gleich",
- "CONTACT_MANAGER": "Contacts Manager",
+ "OUTBOUNDROUTE": "Ausgehende Routen",
+ "EQUALS": "ist gleich",
+ "NOT_EQUALS": "ist nicht gleich",
+ "CONTACT_MANAGER": "Kontaktmanager",
"INTEGRATIONS": "Integrationen",
"MOTIONBAR": "Motion Bar",
"JSCRIPTY": "Jscripty",
- "URL_FORWARD": "URL Weiterleitung",
- "WEB_POPUP": "Web Popup",
+ "URL_FORWARD": "URL-Weiterleitung",
+ "WEB_POPUP": "Web-Popup",
"LIST": "Liste",
"INTEGRATION": "Integration",
"TEMPLATE": "Vorlage",
"OPERATOR": "Betreiber",
"NO_INTERVALS_AVAILABLE": "Keine Intervalle zur Verfügung",
"YES": "Ja",
- "NO": "Keine",
+ "NO": "Nein",
"SUBJECT": "Betreff",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
"BROWSER": "Browser",
"INTERVAL": "Intervall",
- "INFO": "Info",
+ "INFO": "Information",
"TIME_RANGE": "Zeitbereich",
- "WEEK_DAYS": "Woche Tage",
- "MONTH_DAYS": "Monat Tage",
+ "WEEK_DAYS": "Wochentage",
+ "MONTH_DAYS": "Monatstage",
"MONTHS": "Monate",
- "DROP_TO_UPLOAD_MESSAGE": "Sie können auch Audiodateien hier ablegen\" hochzuladen. Nur MP3-, WAV-, GSM-Max. 15 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Dateien hier hinein ziehen zum Hochladen. Unterstütze Formate: .mp3, .wav, .gsm; Max. Dateigröße: 15 MB",
"POLLING_INTERVAL": "Abfrageintervall (Sekunden)",
- "DASHBOARD": "Armaturenbrett",
- "NEW_DASHBOARDITEM": "Neue Dashboard Widget",
+ "DASHBOARD": "Dashboard",
+ "NEW_DASHBOARDITEM": "Neues Dashboard-Widget",
"COUNTER": "Zähler",
"IFRAME": "IFrame",
"CLOCK": "Uhr",
- "ADD_DASHBOARDITEM": "Dashboard Widget hinzufügen",
- "EDIT_WIDGET": "Bearbeiten Widget",
- "DELETE_WIDGET": "Löschen Widget",
- "FLIP_WIDGET": "Flip Widget",
+ "ADD_DASHBOARDITEM": "Dashboard-Widget hinzufügen",
+ "EDIT_WIDGET": "Widget bearbeiten",
+ "DELETE_WIDGET": "Widget löschen",
+ "FLIP_WIDGET": "Widget drehen",
"TITLE": "Titel",
"UPDATE": "Aktualisieren",
"LAYOUT": "Layout",
"FOREGROUND_COLOR": "Vordergrundfarbe",
"FOREGROUND_TITLE_COLOR": "Vordergrund Titel Farbe",
"THEME": "Thema",
- "LIGHT": "Licht",
+ "LIGHT": "Hell",
"DARK": "Dunkel",
"TIMEZONE": "Zeitzone",
- "DIGITAL_FORMAT": "Digitale Datum Format",
+ "DIGITAL_FORMAT": "Digitales Datumsformat",
"TOOLS_QUERY": "Abfrage",
- "SELECT": "Wählen Sie",
+ "SELECT": "Auswählen",
"WHERE": "Wo",
"BACK": "Zurück",
"PROJECT": "Projekt",
- "GOTOREALTIME_TRUNK": "In Echtzeit, Trunk gehen",
- "GOTO_TRUNK": "Um die Leitungsbündel gehen",
- "CRON": "Cron",
+ "GOTOREALTIME_TRUNK": "Zum Echtzeitmonitoring SIP-Trunks gehen",
+ "GOTO_TRUNK": "Zum SIP-Trunk gehen",
+ "CRON": "CrOn",
"MINUTES": "Minuten",
"HOURLY": "Stündlich",
"YEARLY": "Jährlich",
"EVERY": "Jede",
"MINUTE": "Minute",
- "ON_SECOND": "Im 2.",
- "HOUR_ON_MINUTE": "Stunde Minute",
- "AND_SECOND": "Und 2.",
- "DAY_AT": "Tag an",
+ "ON_SECOND": "Zur Sekunde",
+ "HOUR_ON_MINUTE": "Stunde zur Minute",
+ "AND_SECOND": "und Sekunde",
+ "DAY_AT": "Am Tag",
"START_TIME": "Startzeit",
- "ON_THE": "Auf der",
- "OF_EVERY": "Jedes",
+ "ON_THE": "Am",
+ "OF_EVERY": "An jedem",
"MONTH_AT": "Monat",
- "AT": "An",
+ "AT": "Um",
"LAST": "Letzte",
"LASTUNIT": "Einheit",
"MAILACCOUNT": "E-Mail Konto",
- "OF": "Von",
+ "OF": "von",
"PAST_THE_HOUR": "Nach der vollen Stunde",
"DAY": "Tag",
"WEEK": "Woche",
"YEAR": "Jahr",
- "ON": "Auf",
+ "ON": "Am",
"PAI": "P-Asserted-Identity",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OUTBOUND_ROUTE": "Abgehende Routen",
- "EVENTVARIABLES": "Bei Variablen",
+ "OUTBOUND_ROUTE": "Ausgehende Routen",
+ "EVENTVARIABLES": "Event-Variablen",
"FAX": "Fax",
"INTERACTION": "Interaktion",
"MESSAGE": "Nachricht",
"T38PT_UDPTL": "T38 pt Udptl",
- "AUTOCREATECONTACT": "Erstellen Sie automatisch",
+ "AUTOCREATECONTACT": "Automatische Kontakterstellung",
"COLOR": "Farbe",
- "LOCATION": "Lage",
- "NEW_TAB": "Neue Registerkarte",
+ "LOCATION": "Standort",
+ "NEW_TAB": "Neuer Tab",
"NEW_WINDOW": "Neues Fenster",
- "WINDOWWIDTH": "Fenster Breite (px)",
+ "WINDOWWIDTH": "Fensterbreite (px)",
"WINDOWHEIGHT": "Fensterhöhe (px)",
"EDIT_DASHBOARDITEM": "Dashboard-Widget bearbeiten",
"FONTSIZE": "Schriftgröße",
"FOREGROUND": "Vordergrund",
"NONE": "Keiner",
"TOTAL": "Gesamt",
- "ABANDONED": "Verlassen",
+ "ABANDONED": "Abgebrochen",
"WAITING": "Warten",
- "TALKING": "Reden",
- "ANSWERED": "Antwortete",
- "UNMANAGED": "Nicht verwaltet",
+ "TALKING": "im Gespräch",
+ "ANSWERED": "Beantwortet",
+ "UNMANAGED": "Nicht bearbeitet",
"CUSTOMTYPE": "Benutzerdefiniert [Pfad]",
"WEBREPORT": "Webbericht",
"PIECHART": "Kuchendiagramm",
"MULTIBARCHART": "Multibar-Diagramm",
"MOVE_WIDGET": "Widget verschieben",
- "USERADD_CUSTOMDASHBOARD": "Hinzufügen von Benutzerberechtigungen",
- "GOTODASHBOARD_CUSTOMDASHBOARD": "Gehe zum Vorschau-Dashboard",
- "GOTO_CUSTOMDASHBOARD": "Gehe zum Vorschau-Dashboard",
+ "USERADD_CUSTOMDASHBOARD": "Berechtigungen hinzufügen",
+ "GOTODASHBOARD_CUSTOMDASHBOARD": "Vorschau Dashboard",
+ "GOTO_CUSTOMDASHBOARD": "Vorschau Dashboard",
"METRIC": "Metrisch",
- "FILTERVOICEQUEUES": "Voice-Warteschlangen filtern",
+ "FILTERVOICEQUEUES": "Anruf-Warteschlangen filtern",
"SERIE1": "Serie 1",
"SERIE2": "Serie 2",
"SERIE3": "Serie 3",
"ALL_USERS": "Alle Nutzer",
"SELECTED_USERS": "Ausgewählte Benutzer",
"ADD_WIDGET": "Widget hinzufügen",
- "NEXTCONTACT": "Nächster",
+ "NEXTCONTACT": "Nächster Kontakt",
"SENDIFEMPTY": "Senden, wenn leer",
- "CANCEL": "Stornieren",
+ "CANCEL": "Abbrechen",
"UPLOADING": "Hochladen",
- "EMAILBCCADDRESS": "Bcc",
- "EMAILCCADDRESS": "Cc",
- "RUN_SCHEDULE": "Zeitplan ausführen",
- "ADD_DISPOSITION": "Disposition hinzufügen",
- "DELETE_DISPOSITION": "Disposition löschen",
- "DISPOSITIONS": "Dispositionen",
- "EDIT_DISPOSITION": "Disposition bearbeiten",
- "NEW_DISPOSITION": "Neue Disposition",
- "CLONE_TRUNK": "Klon-Trunk",
- "BODY": "Karosserie",
- "CANNEDANSWERS": "Vordefinierte Antworten",
+ "EMAILBCCADDRESS": "BCC",
+ "EMAILCCADDRESS": "CC",
+ "RUN_SCHEDULE": "Zeitplanung ausführen",
+ "ADD_DISPOSITION": "Qualifizierung hinzufügen",
+ "DELETE_DISPOSITION": "Qualifizierung löschen",
+ "DISPOSITIONS": "Qualifizierungen",
+ "EDIT_DISPOSITION": "Qualifizierung bearbeiten",
+ "NEW_DISPOSITION": "Neue Qualifizierung",
+ "CLONE_TRUNK": "Trunk klonen",
+ "BODY": "Textinhalt",
+ "CANNEDANSWERS": "Textvorlagen",
"REPORTFOLDER": "Berichtsordner",
- "REPORTSUBFOLDER": "Unterordner melden",
- "PREVIOUSCONTACT": "Bisherige",
+ "REPORTSUBFOLDER": "Unterordner",
+ "PREVIOUSCONTACT": "Vorherigen Kontakt",
"VIDEOSUPPORT": "Video-Unterstützung",
"AGENT": "Agent",
"HEADERS": "Überschriften",
"SCRIPT": "Skript",
- "SCRIPT_INFO": "Info",
+ "SCRIPT_INFO": "Information",
"SCRIPT_TYPE": "Art",
"MOTION_TAB": "Neue Registerkarte \"Agent Dashboard\"",
"WHATSAPP": "WhatsApp Connector",
"AUTOCREATE_FIELD": "Feld automatisch erstellen",
- "GLOBALS": "Globals",
+ "GLOBALS": "Globale Werte",
"SEARCH_FIELDS": "Suchfelder",
"STANDARD": "Standard",
"MOTION_BAR": "Motion Bar",
"ALL": "Alle",
- "ALL_DISPOSITIONS": "Alle Dispositionen",
- "FIRST_LEVEL_DISPOSITION": "First Level Disposition",
- "LEVEL": "Niveau",
- "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
- "SELECT_LEVEL": "Wählen Sie eine Ebene",
- "TITLEFONTSIZE": "Schrifttitelgröße"
+ "ALL_DISPOSITIONS": "Alle Qualifizierungen",
+ "FIRST_LEVEL_DISPOSITION": "Qualifizierung der ersten Ebene",
+ "LEVEL": "Ebene",
+ "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
+ "SELECT_LEVEL": "Ebene auswählen",
+ "TITLEFONTSIZE": "Schriftgröße Titel"
}
}
"LINK": "Link [https://]",
"BACKGROUND": "Background",
"FOREGROUND": "Foreground",
+ "IGNOREDIALERCONTACTID": "Ignore dialer contact Id",
"NONE": "None",
"TOTAL": "Total",
"ABANDONED": "Abandoned",
"TYPE_REQUIRED": "Mandatory field",
"VALUE_REQUIRED": "Mandatory field",
"ACCOUNT_REQUIRED": "Mandatory field",
+ "IGNOREDIALERCONTACTID_REQUIRED": "Ignore dialer contact Id field is required",
"FIELD_REQUIRED": "Mandatory field",
"NAME_REQUIRED": "Mandatory field",
"HOST_REQUIRED": "Mandatory field",
"LINK": "Link [https://]",
"BACKGROUND": "Background",
"FOREGROUND": "Foreground",
+ "IGNOREDIALERCONTACTID": "Ignora il contact Id del dialer",
"NONE": "Nessuno",
"TOTAL": "Totale",
"ABANDONED": "Abbandonate",
"TYPE_REQUIRED": "Campo obbligatorio",
"VALUE_REQUIRED": "Campo obbligatorio",
"ACCOUNT_REQUIRED": "Campo obbligatorio",
+ "IGNOREDIALERCONTACTID_REQUIRED": "Campo obbligatorio",
"FIELD_REQUIRED": "Campo obbligatorio",
"TIME_RANGE_TO_REQUIRED": "Campo obbligatorio",
"WEEK_DAYS_TO_REQUIRED": "Campo obbligatorio",
"SERVICELEVEL": "مستوى الخدمة",
"SECOND_LEVEL_DISPOSITION": "ترتيب المستوى الثاني",
"THIRD_LEVEL_DISPOSITION": "الترتيب الثالث",
+ "TEAMADD_VOICEPREFIX": "أضف الفريق إلى البادئة",
"ALIAS": "الاسم المستعار"
}
}
"SERVICELEVEL": "Úroveň služby",
"SECOND_LEVEL_DISPOSITION": "Dispozice druhé úrovně",
"THIRD_LEVEL_DISPOSITION": "Dispozice třetí úrovně",
+ "TEAMADD_VOICEPREFIX": "Přidat tým k předponě",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Serviceniveau",
"SECOND_LEVEL_DISPOSITION": "Andet niveau disposition",
"THIRD_LEVEL_DISPOSITION": "Tredje niveau disposition",
+ "TEAMADD_VOICEPREFIX": "Føj team til præfiks",
"ALIAS": "Alias"
}
}
{
"VOICE": {
- "GOTO_VOICEQUEUE": "Zu Realtime Voice Warteschlangen gehen",
- "GOTOREALTIME_VOICEQUEUE": "Zu Realtime Voice Warteschlangen gehen",
+ "GOTO_VOICEQUEUE": "Zur Anruf-Warteschlange gehen",
+ "GOTOREALTIME_VOICEQUEUE": "Zur Echtzeitansicht Anruf-Warteschlange gehen",
"NAME": "Name",
"LOGOUT": "An-/Abmelden",
- "VOICEQUEUES": "Voice Warteschlangen",
- "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+ "VOICEQUEUES": "Anruf-Warteschlangen",
+ "SEARCH_FOR_ANYONE": "Suche",
"BACK": "Zurück",
- "SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Wählen Sie \"Keine\"",
- "DELETE_VOICEDISPOSITION": "Disposition löschen",
- "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
- "EDIT_VOICEQUEUE": "Edit Voice Warteschlange",
- "DELETE_VOICEQUEUE": "Warteschlange löschen",
- "MOHSOUNDS": "Die MOH-Sounds",
+ "SELECTED": "Ausgewählt",
+ "SELECT_ALL": "Alles auswählen",
+ "SELECT_NONE": "Nichts auswählen",
+ "DELETE_VOICEDISPOSITION": "Qualifizierung löschen",
+ "EDIT_VOICEDISPOSITION": "Qualifizierung bearbeiten",
+ "EDIT_VOICEQUEUE": "Anruf-Warteschlange bearbeiten",
+ "DELETE_VOICEQUEUE": "Anruf-Warteschlange löschen",
+ "MOHSOUNDS": "MOH-Töne",
"STRATEGY": "Strategie",
"DESCRIPTION": "Beschreibung",
- "ADD_VOICEQUEUE": "Hinzufügen von Warteschlangen",
+ "ADD_VOICEQUEUE": "Warteschlangen hinzufügen",
"CREATED_AT": "Erstellt am",
- "CANT_PLAY_GSM_AUDIO_FILES": "Nicht gsm-Audiodateien",
+ "CANT_PLAY_GSM_AUDIO_FILES": "Nicht GSM-Audiodateien",
"APPLICATIONS_LIST": "Liste der Anwendungen",
"LEGEND": {
"CUSTOM_APPLICATION": "(*) - Benutzerdefinierte Anwendung."
},
"ERRORS": {
- "NAME_REQUIRED": "Der Name ist erforderlich",
- "APPLICATION_NAME_REQUIRED": "Der Name der Anwendung ist erforderlich",
- "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
- "PHONENUMBER_REQUIRED": "Die Telefonnummer ist erforderlich",
- "CONTEXT_REQUIRED": "Der Rahmen ist erforderlich",
- "DESTINATIONPATTERN_REQUIRED": "Das Ziel-pattern ist erforderlich",
- "FULLNAME_REQUIRED": "Der vollständige Name ist erforderlich",
- "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
- "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
- "MAILBOX_REQUIRED": "Die Mailbox ist erforderlich",
- "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
- "TIMEZONE_REQUIRED": "Die Zeitzone ist erforderlich",
- "PREFIX_REQUIRED": "Das Präfix ist erforderlich",
- "OPTIONS_REQUIRED": "Die Optionen sind Erforderlich",
- "AFTERCALLWORKDURATION_REQUIRED": "Die Arbeit nach Anruf Dauer ist erforderlich",
- "TECHNOLOGY/RESOURCE_REQUIRED": "Die Technologie/Ressource erforderlich ist",
- "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
- "VALUE_REQUIRED": "Der Wert ist erforderlich",
- "EXTENSION_REQUIRED": "Die Verlängerung ist erforderlich",
- "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
- "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
- "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Timeout muss größer als oder gleich",
- "MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die max. Länge muss größer als oder gleich",
- "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Wiederholung muss größer als oder gleich",
- "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Nachlese Zeit muss größer als oder gleich",
- "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Das Gewicht muss größer als oder gleich",
- "ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Häufigkeit verkünden muss größer als oder gleich",
- "MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Min Frequenz ankündigen muss größer als oder gleich",
- "PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die periodische Frequenz ankündigen muss größer als oder gleich",
- "AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Arbeit nach Anruf Dauer muss größer als oder gleich",
- "MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Verzögerung muss größer als oder gleich",
- "POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Position muss größer als oder gleich",
- "CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Den Schnitt stellen muss größer als oder gleich",
- "MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Muss die Max Sekunden größer als oder gleich",
- "MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Max Meldungen muss größer als oder gleich",
- "MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Die Max Meldungen muss kleiner als oder gleich",
+ "NAME_REQUIRED": "Name ist erforderlich",
+ "APPLICATION_NAME_REQUIRED": "Name der Anwendung ist erforderlich",
+ "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
+ "PHONENUMBER_REQUIRED": "Telefonnummer ist erforderlich",
+ "CONTEXT_REQUIRED": "Kontext ist erforderlich",
+ "DESTINATIONPATTERN_REQUIRED": "Ziel-Pattern ist erforderlich",
+ "FULLNAME_REQUIRED": "Vollständiger Name ist erforderlich",
+ "EMAIL_REQUIRED": "E-Mail ist erforderlich",
+ "EMAIL_MUST_VALID": "E-Mail Format ungültig",
+ "MAILBOX_REQUIRED": "Mailbox ist erforderlich",
+ "PASSWORD_REQUIRED": "Passwort ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
+ "TIMEZONE_REQUIRED": "Zeitzone ist erforderlich",
+ "PREFIX_REQUIRED": "Präfix ist erforderlich",
+ "OPTIONS_REQUIRED": "Bedingungen sind Erforderlich",
+ "AFTERCALLWORKDURATION_REQUIRED": "Dauer Nacharbeit ist erforderlich",
+ "TECHNOLOGY/RESOURCE_REQUIRED": "Ressource ist erforderlich",
+ "PHONE_REQUIRED": "Telefonnummer ist erforderlich",
+ "VALUE_REQUIRED": "Wert ist erforderlich",
+ "EXTENSION_REQUIRED": "Nebenstelle ist erforderlich",
+ "PRIORITY_REQUIRED": "Priorität ist erforderlich",
+ "NAME_MUST_VALID_PATTERN": "Format Name ungültig",
+ "APPLICATION_REQUIRED": "Anwendung ist erforderlich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Timeout muss größer oder gleich sein als",
+ "MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die max. Länge muss größer oder gleich sein als",
+ "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wiederversuche muss größer oder gleich sein als",
+ "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Nacharbeit Zeit muss größer oder gleich sein als",
+ "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Gewichtung muss größer oder gleich sein als",
+ "ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Frequenz der Ansagen muss größer oder gleich sein als",
+ "MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Min. Frequenz der Ansagen muss größer oder gleich sein als",
+ "PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wiederholende Frequenz der Ansagen muss größer oder gleich sein als",
+ "AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Nacharbeit Zeit muss größer oder gleich sein als",
+ "MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Verzögerung muss größer oder gleich sein als",
+ "POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Position muss größer oder gleich sein als",
+ "CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Schnitt muss größer oder gleich sein als",
+ "MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Max. Sekundenmuss größer oder gleich sein als",
+ "MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Max. Nachrichten muss größer oder gleich sein als",
+ "MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Max. Nachrichten muss kleiner oder gleich sein als",
"CALLERIDALL_MUST_VALID_PATTERN": "Falsches Format",
"OUTBOUNDROUTE_REQUIRED": "Pflichtfeld",
"VARIABLE_REQUIRED": "Pflichtfeld",
"TRUNK_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"PROJECT_REQUIRED": "Pflichtfeld",
- "PENALTY_REQUIRED": "Sie müssen einen Wert für die Strafe angeben"
+ "PENALTY_REQUIRED": "Wert für Verzögerung erforderlich"
},
"GENERAL": "Allgemein",
"TIMEOUT": "Timeout",
"MAXLENGTH": "Maximale Länge",
- "RETRY": "Versuchen Sie es erneut",
- "WRAPUPTIME": "-Zeit",
- "WEIGHT": "Gewicht",
- "JOINWHENEMPTY": "Melden Sie wenn sie leer sind",
- "LEAVEWHENEMPTY": "Wenn sie leer lassen",
+ "RETRY": "Bitte erneut versuchen",
+ "WRAPUPTIME": "Nacharbeit",
+ "WEIGHT": "Gewichtung",
+ "JOINWHENEMPTY": "Beitreten, wenn leer",
+ "LEAVEWHENEMPTY": "Verlassen, wenn leer",
"HELP": {
- "TIMEOUT": "Gibt die Anzahl von Sekunden an, die das Gerät.",
- "MAXLENGTH": "Gibt die maximale Anzahl der Anrufer, die in der Warteschlange. Ein Wert von Null bedeutet, dass eine unbegrenzte Anzahl von Anrufern in der Warteschlange sind erlaubt.",
- "RETRY": "Gibt die Anzahl der Sekunden, die gewartet wird, bevor das nächste Mitglied in die Warteschlange, wenn der Wert für die Zeitüberschreitung erschöpft ist, während versucht wird, den ein Mitglied der Warteschlange.",
- "WRAPUPTIME": "Die Anzahl der Sekunden, die ein Mitglied in einer Warteschlange verfügbar, nachdem Sie einen Anruf.",
- "WEIGHT": "Legt das Gewicht einer Warteschlange. Eine Warteschlange mit einem höheren Gewicht definiert werden erste Priorität, wenn Mitglieder, die mit mehreren Warteschlangen.",
- "JOINWHENEMPTY": "Steuert, ob ein Anrufer wird zur Warteschlange hinzugefügt werden, wenn keine Mitglieder verfügbar sind.",
- "LEAVEWHENEMPTY": "Zur Kontrolle, ob die Anrufer aus der Warteschlange, wenn die Mitglieder nicht mehr bereit sind, Anrufe zu beantworten.",
- "ANNOUNCEFREQUENCY": "Legt fest, wie oft sollten wir den Anrufer ankündigen und/oder geschätzte Wartezeit in der Warteschlange. Setzen Sie diesen Wert auf Null, um die Funktion zu deaktivieren.",
- "MINANNOUNCEFREQUENCY": "Gibt die minimale Zeit, die verstreichen müssen, bevor wir Ihnen die Anrufer in der Warteschlange wieder. Dieser wird verwendet, wenn der Anrufer die Position kann sich häufig ändern, um zu verhindern, dass der Anrufer hören mehrere Updates in einem kurzen Zeitraum.",
- "PERIODICANNOUNCEFREQUENCY": "Gibt an, wie oft wir sollten regelmäßige Ansagen, die dem Anrufer vorgespielt werden.",
- "ANNOUNCEPOSITIONLIMIT": "Sie kann verwendet werden, wenn Sie definiert haben, verkünden-Position entweder als Begrenzung oder mehr.",
- "AFTERCALLWORKDURATION": "Die Dauer der Pause durch die Option \"Arbeit nach Anruf",
- "MEMBERDELAY": "Sie kann verwendet werden, wenn Sie wollen, dass es eine Verzögerung, bevor der Anrufer und Mitglied der Warteschlange, die miteinander verbunden sind.",
- "MUSICONHOLD": "Setzt die Musik klasse verwendet werden, die von einer bestimmten Warteschlange an.",
- "ANNOUNCETOAGENT": "Für die Wiedergabe einer Ansage auf den Agenten, der den Anruf entgegengenommen hat, ihn wissen zu lassen, was der Anrufer die Warteschlange aus.",
- "RANDOMPERIODICANNOUNCE": "Falls auf Ja eingestellt, wird die festgelegte regelmäßige Mitteilungen in einer zufälligen Reihenfolge.",
- "ANNOUNCEHOLDTIME": "Legt fest, ob die geschätzte Wartezeit gespielt werden sollte zusammen mit den regelmäßigen Ankündigungen.",
- "ANNOUNCECALLERPOSITION": "Legt fest, ob es sich bei dem Anrufer seine Position in der Warteschlange mitgeteilt werden sollten. Wenn die Einstellung Nein lautet, die Position wird nicht bekannt gegeben. Falls auf Ja eingestellt, wird die Position des Anrufers wird immer bekannt gegeben. Wenn der Wert überschritten wird, wird der Anrufer hört ihre Position in der Warteschlange nur, wenn er sich innerhalb der Grenze von AK-Position. Wenn der Wert auf Mehr, hört der Anrufer ihre Position, wenn es über die Zahl von AK-Position.",
- "REPORTHOLDTIMEAGENT": "Die Berichterstattung über die CLI des Anrufers mit der Zeit in der Warteschleife in der Warteschlange vor.",
- "PERIODICANNOUNCE": "Eine Reihe von regelmäßigen Mitteilungen gespielt zu werden, in der Reihenfolge wiedergegeben, in der sie definiert sind.",
- "HOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Hold\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "YOUARENEXTANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sie sind jetzt in erster Linie\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "THEREAREANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Es gibt\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "WAITINGCALLSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Wartende Anrufe\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "ESTIMATEDHOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Die voraussichtliche Wartezeit ist\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "MINUTESANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "MINUTEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "SECONDSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sekunden\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "THANKYOUANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Vielen Dank für Ihre Geduld.\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
- "AFTERCALLWORK": "Wenn der Agent aktiv ist, wird auf eine Pause nach einer abgeschlossenen Anruf in der Warteschlange",
- "AUTOPAUSE": "Aktiviert/Deaktiviert die automatische Unterbrechung der Mitglieder, die es versäumen, um einen Anruf zu beantworten. Wenn aktiv, wird diese Mitgliedstaaten angehalten zu werden in allen Warteschlangen er Mitglied ist.",
- "RINGINUSE": "Verwendet werden, um zu vermeiden, Senden von Anrufen an Mitglieder, deren Status im Einsatz ist.",
- "TIMEOUTRESTART": "Falls auf Ja eingestellt, wird das Timeout für einen Agenten zu beantworten, wenn entweder ein Besetztzeichen oder wird mit dem Status \"Überlastung des Kanals.",
- "CONTEXT": "Ermöglicht einem Anrufer zu beenden, die die Warteschlange durch Drücken einer einzigen Taste MFV-Ziffer. Wenn Sie einen Kontext angegeben ist und der Anrufer gibt eine Zahl, Ziffer wird versuchen, die angepasst werden können, im Rahmen festgelegt, und es wird auch weiterhin die Ausführung Nummernplan.",
- "SETINTERFACEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
- "SETQUEUEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange und kurz vor dem Anrufer die Warteschlange verlassen einige Variablen werden(siehe wiki)",
- "SETQUEUEENTRYVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
+ "TIMEOUT": "Zeitüberschreitung in Sekunden",
+ "MAXLENGTH": "Maximaler Anrufer in der Warteschlange. Wenn Wert 0, dann keine Begrenzung.",
+ "RETRY": "Klingelzeit in Sekunden pro Mitglied. Danach erfolgt ein weiterer Versuch bei der nächsten freien Nebenstelle.",
+ "WRAPUPTIME": "Nacharbeitszeit in Sekunden, bis ein Nutzer nach einem Anruf wieder verfügbar ist.",
+ "WEIGHT": "Gewichtung der Warteschlange. Ein höherer Wert bedeutet eine Priorisierung gegenüber anderen Warteschlangen.",
+ "JOINWHENEMPTY": "Legt fest, ob ein Anruf in die Warteschlange eintreten kann, wenn dort keine Nutzer angemeldet sind.",
+ "LEAVEWHENEMPTY": "Wirft den Anruf aus der Warteschlange, wenn dort kein Nutzer angemeldet ist.",
+ "ANNOUNCEFREQUENCY": "Intervall für automatische Ansagen der Wartezeit, Position, etc. Der Wert 0 deaktiviert diese Option.",
+ "MINANNOUNCEFREQUENCY": "Minimales Intervall für die Ansagen der Wartezeit. Verhindert, dass ein Nutzer bei häufigen Wechsel der Warteposition zu viele Ansagen erhält.",
+ "PERIODICANNOUNCEFREQUENCY": "Legt fest, wie oft die sich wiederholenden Ansagen gespielt werden sollen",
+ "ANNOUNCEPOSITIONLIMIT": "Wird verwendet, wenn der Wert für die Warteposition auf \"Limitierung\" oder \"Mehr\" gestellt wird.",
+ "AFTERCALLWORKDURATION": "Die Dauer der Nacharbeit nach einem Anruf",
+ "MEMBERDELAY": "Erstellt eine Verzögerung des Anrufes für bestimmte Agenten. Kann zum Skillbasierten Routing verwendet werden.",
+ "MUSICONHOLD": "Legt die Haltemusik auf Basis der Warteschlange fest",
+ "ANNOUNCETOAGENT": "Legt fest, ob der Agent vor Annahme des Anrufes einen Hinweis auf die eingehende Warteschlange hört",
+ "RANDOMPERIODICANNOUNCE": "Bei ja, werden die zugewiesenen Ansagen zufällig abgespielt",
+ "ANNOUNCEHOLDTIME": "Spielt die geschätzte Wartezeit zusammen oder ohne die sich wiederholenden Ansagen ab.",
+ "ANNOUNCECALLERPOSITION": "Definiert die Ansage der Warteposition für den Anrufer. Nein = Niemals; Ja = Immer; Limitierung = nur, wenn die Zeit innerhalb dem eingetragenen Wert liegt; Mehr = nur, wenn die Zeit oberhalb dem eingetragenen Wert liegt ",
+ "REPORTHOLDTIMEAGENT": "Haltezeiten der Agenten in den Berichten verwenden",
+ "PERIODICANNOUNCE": "Sich wiederholende Ansagen; können je nach Konfiguration in definierter Reihenfolge oder zufällig abgespielt werden.",
+ "HOLDTIMEANNOUNCE": "Ansage der Wartezeit. Leer lassen zum Überspringen",
+ "YOUARENEXTANNOUNCE": "Ansage \"Sie sind an erster Position der Warteschlange\", Leer lassen zum Überspringen",
+ "THEREAREANNOUNCE": "Ansage \"Es befinden sich..\" Leer lassen zum Überspringen",
+ "WAITINGCALLSANNOUNCE": "Ansage \"...Anrufe in der Warteschlange\" Leer lassen zum Überspringen",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Ansage: \"Die geschätzte Wartezeit beträgt derzeit...\" Leer lassen zum Überspringen",
+ "MINUTESANNOUNCE": "Ansage \"Minuten\"",
+ "MINUTEANNOUNCE": "Ansage \"Minute\"",
+ "SECONDSANNOUNCE": "Ansage \"Sekunden\" Leer lassen zum Überspringen",
+ "THANKYOUANNOUNCE": "Ansage \"Vielen Dank für Ihre Geduld\" Leer lassen zum Überspringen",
+ "AFTERCALLWORK": "Wenn aktiviert, erhalten die Agenten eine kurze Pause nach jedem Anruf",
+ "AUTOPAUSE": "Aktiviert/Deaktiviert die automatische Pause der Agenten, bei einem verpassten Anruf. Hinweis: bezieht sich dann auf alle Anruf-Warteschlangen des Agenten.",
+ "RINGINUSE": "Verhindert das Klingeln bei Agenten, deren Nebenstelle in Verwendung ist",
+ "TIMEOUTRESTART": "Wenn ja, wird die Zeitüberschreitung bei Agenten mit \"Besetzt\" oder \"Verbindungsfehler\"-Status übersprungen",
+ "CONTEXT": "Ermöglicht einem Anrufer, durch Drücken einer einzelnen Taste, die Warteschlange zu verlassen.",
+ "SETINTERFACEVARIABLES": "Definiert die Variablen im Interface, welche bei einem Anruf übergeben werden können. ",
+ "SETQUEUEVARIABLES": "Definiert die Variablen in der Warteschlange, welche bei einem Anruf übergeben werden können. ",
+ "SETQUEUEENTRYVARIABLES": "Definiert die Variablen beim Eintritt in die Warteschlange, welche bei einem Anruf übergeben werden können. ",
"RECORDING": "Aktivieren der Aufzeichnung",
- "VOICEMAIL_CONTEXT": "Im Rahmen der relativen Erweiterung.",
+ "VOICEMAIL_CONTEXT": "Kontext der verwendeten Nebenstellen",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"CALLERIDALL": "Unterstützte Formate: \"CallerId\" & lt; number & gt;",
"CALLER_ID": "Unterstützte Formate: \"CallerId\" & lt; number & gt;",
- "MANDATORYDISPOSITIONPAUSEID": "Pausenstatus, der während der Zwangsdisposition festgelegt werden soll",
- "SERVICELEVEL": "Zweite Einstellungen für Service Level (Standard = 0, kein SL). Wird für Service Level-Statistiken verwendet (Anrufe werden innerhalb des Service Level-Zeitrahmens beantwortet)",
- "MONITORFORMAT": "Gibt das Format der Aufnahmedatei an. Wenn es auf 'inaktiv' gesetzt ist, werden Anrufe nicht aufgezeichnet",
- "SAVE_ROUTES": "Die Streckenführung wurde geändert. Denken Sie daran, zu speichern, wenn Sie Ihre Änderungen nicht verlieren möchten."
+ "MANDATORYDISPOSITIONPAUSEID": "Pausenstatus, welcher während einer erforderlichen Qualifizierung verwendet wird",
+ "SERVICELEVEL": "Zweite Einstellungen für Service-Level (Standard = 0, kein SL). Wird für Service Level-Statistiken verwendet (Anrufe werden innerhalb des Service Level-Zeitrahmens beantwortet)",
+ "MONITORFORMAT": "Gibt das Format der Aufzeichnungsdatei an. Bei 'inaktiv', werden Anrufe nicht aufgezeichnet"
},
- "MUSICONHOLD": "Musik auf Halten",
- "ANNOUNCETOAGENT": "Geben Sie Agent",
- "ANNOUNCEMENTS": "Ankündigungen",
- "ADVANCED": "Erweiterte",
- "ANNOUNCEFREQUENCY": "Frequenz ankündigen",
- "MINANNOUNCEFREQUENCY": "Minimale Frequenz ankündigen",
- "PERIODICANNOUNCEFREQUENCY": "Periodische Frequenz ankündigen",
- "RANDOMPERIODICANNOUNCE": "Random Periodische verkünden",
- "ANNOUNCEHOLDTIME": "Geben Sie Zeit",
- "ANNOUNCECALLERPOSITION": "Position des Anrufers bekannt",
- "ANNOUNCEPOSITIONLIMIT": "Geben Position Limit",
- "REPORTHOLDTIMEAGENT": "Bericht Agenten",
- "PERIODICANNOUNCE": "Periodische verkünden",
- "HOLDTIMEANNOUNCE": "Zeit in der Warteschleife verkünden",
- "YOUARENEXTANNOUNCE": "\"Sie sind weiter' verkünden",
- "THEREAREANNOUNCE": "'Es gibt' verkünden",
- "WAITINGCALLSANNOUNCE": "Wartende Anrufe,",
- "ESTIMATEDHOLDTIMEANNOUNCE": "Geschätzte Zeit halten,",
- "MINUTESANNOUNCE": "Minuten ankündigen",
- "MINUTEANNOUNCE": "Minute verkünden",
- "SECONDSANNOUNCE": "Sekunden,",
+ "MUSICONHOLD": "Wartemusik",
+ "ANNOUNCETOAGENT": "Ansage an Agenten",
+ "ANNOUNCEMENTS": "Ansagen",
+ "ADVANCED": "Erweitert",
+ "ANNOUNCEFREQUENCY": "Ansagefrequenz",
+ "MINANNOUNCEFREQUENCY": "Min. Ansagefrequenz",
+ "PERIODICANNOUNCEFREQUENCY": "Frequenz wiederholende Ansagen",
+ "RANDOMPERIODICANNOUNCE": "Zufällige Ansagen",
+ "ANNOUNCEHOLDTIME": "Wartezeit ansagen",
+ "ANNOUNCECALLERPOSITION": "Warteposition ansagen",
+ "ANNOUNCEPOSITIONLIMIT": "Limitierung Warteposition ansagen",
+ "REPORTHOLDTIMEAGENT": "Haltezeit in Agentenbericht",
+ "PERIODICANNOUNCE": "Wiederholende Ansagen",
+ "HOLDTIMEANNOUNCE": "Wartezeit ansagen",
+ "YOUARENEXTANNOUNCE": "Erste Position",
+ "THEREAREANNOUNCE": "Es befinden sich",
+ "WAITINGCALLSANNOUNCE": "Wartende Anrufe",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Geschätzte Wartezeit ansagen",
+ "MINUTESANNOUNCE": "Minuten",
+ "MINUTEANNOUNCE": "Minute",
+ "SECONDSANNOUNCE": "Sekunden",
"THANKYOUANNOUNCE": "'Vielen Dank' verkünden",
"AUTOPAUSE": "Auto Pause",
- "AFTERCALLWORK": "Arbeit nach Anruf",
- "AFTERCALLWORKDURATION": "Arbeit nach Anruf Dauer",
- "RINGINUSE": "Ring in Verwendung",
- "MEMBERDELAY": "Die Verzögerung",
- "TIMEOUTRESTART": "Timeout starten",
+ "AFTERCALLWORK": "Nacharbeit",
+ "AFTERCALLWORKDURATION": "Dauer Nacharbeit",
+ "RINGINUSE": "Klingeln bei Besetzt",
+ "MEMBERDELAY": "Verzögerung",
+ "TIMEOUTRESTART": "Zeitüberschreitung",
"MONITORFORMAT": "Aufzeichnungsformat",
- "SETINTERFACEVARIABLES": "Die Interface- Variablen",
- "SETQUEUEVARIABLES": "Die Warteschlange Variablen",
- "SETQUEUEENTRYVARIABLES": "Die Warteschlange ENTRY-Variablen",
+ "SETINTERFACEVARIABLES": "Interface-Variablen",
+ "SETQUEUEVARIABLES": "Warteschlangen-Variablen",
+ "SETQUEUEENTRYVARIABLES": "Warteschlangen-Eintritts-Variablen",
"VARIABLE": "Variable",
- "CONTEXT": "Kontext",
+ "CONTEXT": "Kontext Austritt aus Warteschlange",
"SAVE": "Speichern",
"SETTINGS": "Einstellungen",
- "INBOUNDROUTES": "Ankommende Routen",
+ "INBOUNDROUTES": "Eingehende Routen",
"PHONENUMBER": "Telefonnummer",
"ADD_INBOUNDROUTE": "Eingehende Route hinzufügen",
- "EDIT_INBOUNDROUTE": "Route für eingehende Anrufe bearbeiten.",
- "DELETE_INBOUNDROUTE": "Löschen der Route für eingehende Anrufe",
+ "EDIT_INBOUNDROUTE": "Eingehende Route bearbeiten",
+ "DELETE_INBOUNDROUTE": "Eingehende Route löschen",
"ACTIONS": "Aktionen",
- "OUTBOUNDROUTES": "Abgehende Routen",
- "DESTINATIONPATTERN": "Ziel Muster",
+ "OUTBOUNDROUTES": "Ausgehende Routen",
+ "DESTINATIONPATTERN": "Ziel-Pattern",
"ADD_OUTBOUNDROUTE": "Ausgehende Route hinzufügen",
- "EDIT_OUTBOUNDROUTE": "Abgehende Route bearbeiten",
- "DELETE_OUTBOUNDROUTE": "Abgehende Route löschen",
- "CUTDIGITS": "Die Ziffern",
- "RECORDING": "Aufnahme",
+ "EDIT_OUTBOUNDROUTE": "Ausgehende Route bearbeiten",
+ "DELETE_OUTBOUNDROUTE": "Ausgehende Route löschen",
+ "CUTDIGITS": "Ziffern",
+ "RECORDING": "Aufzeichnung",
"RECORDINGFORMAT": "Aufzeichnungsformat",
"INTERNALROUTES": "Interne Routen",
- "ADD_INTERNALROUTE": "Fügen Sie interne Routen",
+ "ADD_INTERNALROUTE": "Interne Route hinzufügen",
"EDIT_INTERNALROUTE": "Interne Route bearbeiten",
- "DELETE_INTERNALROUTE": "Interne Routen löschen",
+ "DELETE_INTERNALROUTE": "Interne Route löschen",
"CONTEXTS": "Kontexte",
- "ADD_CONTEXT": "Rahmen hinzufügen",
+ "ADD_CONTEXT": "Kontext hinzufügen",
"EDIT_CONTEXT": "Kontext bearbeiten",
- "DELETE_CONTEXT": "Löschen von Rahmen",
- "VOICEMAILS": "Von Voicemails",
- "ADD_VOICEMAIL": "Fügen Sie Voicemail",
- "EDIT_VOICEMAIL": "Bearbeiten von Voicemail",
+ "DELETE_CONTEXT": "Kontext löschen",
+ "VOICEMAILS": "Voicemails",
+ "ADD_VOICEMAIL": "Voicemail hinzufügen",
+ "EDIT_VOICEMAIL": "Voicemail bearbeiten",
"DELETE_VOICEMAIL": "Voicemail löschen",
- "FULLNAME": "Voller Name",
+ "FULLNAME": "Vollständiger Name",
"EMAIL": "E-Mail",
"MAILBOX": "Mailbox",
"PASSWORD": "Passwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"TIMEZONE": "Zeitzone",
- "ATTACH": "Befestigen Sie",
+ "ATTACH": "Anhängen",
"ENVELOPE": "Umschlag",
"DELETE": "Löschen",
"EMAILBODY": "E-Mail-Text",
"EMAILSUBJECT": "Betreff der E-Mail",
- "MAXSECONDS": "In Sekunden",
+ "MAXSECONDS": "Max. Sekunden",
"MAXMESSAGES": "Max. Nachrichten",
"MESSAGES": "Nachrichten",
"SORT": "Sortieren",
- "ADD_MUSICONHOLD": "Hinzufügen von Musik auf Halten",
- "MUSICONHOLDS": "Musik auf Halten",
- "EDIT_MUSICONHOLD": "Bearbeiten Musik auf Halten",
- "DELETE_MUSICONHOLD": "Löschen Sie Musik auf Halten",
+ "ADD_MUSICONHOLD": "Wartemusik hinzufügen",
+ "MUSICONHOLDS": "Wartemusik",
+ "EDIT_MUSICONHOLD": "Wartemusik bearbeiten",
+ "DELETE_MUSICONHOLD": "Wartemusik löschen",
"DIRECTORY": "Verzeichnis",
"AUDIOFILES": "Audiodateien",
- "RECORDINGS": "Aufnahmen",
- "CHANSPY": "ChanSpy",
+ "RECORDINGS": "Aufzeichnungen",
+ "CHANSPY": "Listen-In",
"PREFIX": "Präfix",
"OPTIONS": "Optionen",
- "AUTH": "Auth",
- "ADD_CHANSPY": "Fügen Sie ChanSpy",
- "EDIT_CHANSPY": "Bearbeiten Sie ChanSpy",
- "DELETE_CHANSPY": "Löschen Sie ChanSpy",
+ "AUTH": "Authentifizierung",
+ "ADD_CHANSPY": "Listen-In hinzufügen",
+ "EDIT_CHANSPY": "Listen-In bearbeiten",
+ "DELETE_CHANSPY": "Listen-In löschen",
"AGENTS": "Agenten",
"TELEPHONES": "Telefone",
"QUEUES": "Warteschlangen",
- "QUEUE_CALLS": "Anrufe aus einer Warteschlange",
- "QUEUE_PARAMETERS": "Queue Parameter",
+ "QUEUE_CALLS": "Anrufe in Warteschlange",
+ "QUEUE_PARAMETERS": "Warteschlangen Parameter",
"ABANDONED_CALLS": "Abgebrochene Anrufe",
"OUTBOUND_CALLS": "Ausgehende Anrufe",
"AGI": "AGI",
- "DIAL": "Kurzwahl",
+ "DIAL": "Wählen",
"CALLYSQUARE": "CallySquare",
- "INTERNALDIAL": "Interne Wahl",
- "EXTERNALDIAL": "Externes Wählen",
- "RINGGROUP": "Ring-Gruppe",
+ "INTERNALDIAL": "Interner Anruf",
+ "EXTERNALDIAL": "Externer Anruf",
+ "RINGGROUP": "Rufgruppe",
"PLAYBACK": "Wiedergabe",
"QUEUE": "Warteschlange",
- "SET": "Set",
+ "SET": "Einstellen",
"VOICEMAIL": "Voicemail",
"GOTO": "Gehe zu",
"HANGUP": "Auflegen",
- "CUSTOM": "Benutzerdefinierte",
+ "CUSTOM": "Benutzerdefiniert",
"PROJECT": "Cally-Square Projekt",
"TECHNOLOGY/RESOURCE": "Technologie-/Ressourcen",
"URL": "URL",
- "EDIT_APP": "Anwendung bearbeiten.",
+ "EDIT_APP": "App bearbeiten.",
"EDIT_INTERVAL": "Intervall bearbeiten",
- "DELETE_APP": "Anwendung löschen",
+ "DELETE_APP": "App löschen",
"INTERVALS": "Intervalle",
"USER": "Benutzer",
- "TRUNK": "Amtsleitung",
+ "TRUNK": "Trunk",
"PHONE": "Telefon",
"AUDIO_FILES": "Audiodateien",
- "ANNOUNCE_OVERRIDES": "Überschreibt ankündigen",
+ "ANNOUNCE_OVERRIDES": "Überschreibungen ankündigen",
"MACRO": "Makro",
"GOSUB": "GoSub",
"RULE": "Regel",
"ANSWER": "Antwort",
"VALUE": "Wert",
"MAILBOX@CONTEXT": "Mailbox@Kontext",
- "EXTENSION": "Erweiterung",
+ "EXTENSION": "Nebenstelle",
"PRIORITY": "Priorität",
- "HANGUP_CAUSE": "Ursache auflegen",
- "OUTBOUNDDIAL": "Wählen Sie für abgehende Anrufe",
- "CALLER_ID": "Die Anrufer-ID",
+ "HANGUP_CAUSE": "Ablehnungsgrund",
+ "OUTBOUNDDIAL": "Extern wählen",
+ "CALLER_ID": "Anrufer-ID",
"NO_MESSAGE_AVAILABLE": "Keine Meldungen vorhanden",
"NO_SOUND_AVAILABLE": "Kein Ton verfügbar",
- "VOICERECORDINGS": "Sprachaufnahmen",
- "CHANSPIES": "Chan Spies",
- "VOICE": "Voice",
+ "VOICERECORDINGS": "Sprachaufzeichnungen",
+ "CHANSPIES": "Listen-Ins",
+ "VOICE": "Anrufe",
"REALTIME": "Echtzeit",
- "ID": "Id",
+ "ID": "ID",
"VOICEMAIL_CONTEXT": "Kontext",
"NO_MOHSOUND_AVAILABLE": "Keine Wartemusik verfügbar",
"FILE": "Datei",
- "ADD_MOHSOUND": "Hinzufügen von Musik auf Halten sound",
- "DOWNLOAD_MOHSOUND": "Download Music-on-Hold sound",
- "DELETE_MOHSOUND": "Löschen Sie Music On Hold sound",
+ "ADD_MOHSOUND": "Musik bei Halten hinzufügen",
+ "DOWNLOAD_MOHSOUND": "Musik bei Halten herunterladen",
+ "DELETE_MOHSOUND": "Musik bei Halten löschen",
"UNIQUEID": "Eindeutige ID",
"AGENT": "Agent",
"TYPE": "Typ",
"RATING": "Bewertung",
"AUDIO": "Audio",
"DATE": "Datum",
- "NEW_VOICEQUEUE": "Neue Stimme der Warteschlange",
- "NEW_INBOUNDROUTE": "Neue Route für eingehende Anrufe",
- "NEW_OUTBOUNDROUTE": "Neue abgehende Route",
- "NEW_INTERNALROUTE": "Neue interne Routen",
- "NEW_CONTEXT": "Neue Kontext",
+ "NEW_VOICEQUEUE": "Neue Anruf-Warteschlange",
+ "NEW_INBOUNDROUTE": "Neue eingehende Route",
+ "NEW_OUTBOUNDROUTE": "Neue ausgehende Route",
+ "NEW_INTERNALROUTE": "Neue interne Route",
+ "NEW_CONTEXT": "Neuer Kontext",
"NEW_VOICEMAIL": "Neue Voicemail",
- "NEW_MUSICONHOLD": "Neue Musik auf Halten",
- "NEW_CHANSPY": "Neue ChanSpy",
- "PENALTY": "Strafe",
- "ADD_TEAM_TO_VOICEQUEUE": "Team hinzufügen, Warteschlange",
- "ADD_AGENT_TO_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
- "EDIT_DIAL": "Wählen Sie Bearbeiten.",
+ "NEW_MUSICONHOLD": "Neue Haltemusik",
+ "NEW_CHANSPY": "Neuer Listen-In",
+ "PENALTY": "Verzögerung",
+ "ADD_TEAM_TO_VOICEQUEUE": "Team zur Warteschlange hinzufügen",
+ "ADD_AGENT_TO_VOICEQUEUE": "Agenten zur Warteschlange hinzufügen",
+ "EDIT_DIAL": "Wählen anpassen",
"EDIT_AGI": "AGI bearbeiten",
- "EDIT_INTERNALDIAL": "Interne Wahl bearbeiten.",
- "EDIT_EXTERNALDIAL": "Wählen Sie Externen bearbeiten",
- "EDIT_RINGGROUP": "Gruppe bearbeiten",
- "EDIT_PLAYBACK": "Bearbeiten Sie die Wiedergabe",
- "EDIT_QUEUE": "Bearbeiten von Warteschlangen",
- "EDIT_SET": "Bearbeiten",
- "EDIT_GOTO": "Gehe zu bearbeiten.",
- "EDIT_HANGUP": "Bearbeiten Sie Auflegen",
- "EDIT_CUSTOM": "Bearbeiten von benutzerdefinierten",
+ "EDIT_INTERNALDIAL": "Internes Wählen bearbeiten",
+ "EDIT_EXTERNALDIAL": "Externes Wählen bearbeiten",
+ "EDIT_RINGGROUP": "Rufgruppe bearbeiten",
+ "EDIT_PLAYBACK": "Wiedergabe bearbeiten",
+ "EDIT_QUEUE": "Warteschlange bearbeiten",
+ "EDIT_SET": "Set bearbeiten",
+ "EDIT_GOTO": "Gehe zu bearbeiten",
+ "EDIT_HANGUP": "Auflegen bearbeiten",
+ "EDIT_CUSTOM": "Benutzerdef. Einstellungen bearbeiten",
"DURATION": "Dauer",
- "RECEIVED_AT": "Empfangen am",
+ "RECEIVED_AT": "Eingegangen am",
"YES": "Ja",
- "NO": "Keine",
- "HANGUPCAUSE_1": "1 = Nicht zugewiesene Nummer",
- "HANGUPCAUSE_16": "16 = Normail Anruf löschen",
- "HANGUPCAUSE_17": "17 = Benutzer besetzt",
- "HANGUPCAUSE_18": "18 = Keine Reaktion (Telefon Gerät nicht verbunden)",
+ "NO": "Nein",
+ "HANGUPCAUSE_1": "1 = Nummer nicht zugewiesen",
+ "HANGUPCAUSE_16": "16 = Beenden durch Nutzer",
+ "HANGUPCAUSE_17": "17 = Besetzt",
+ "HANGUPCAUSE_18": "18 = Keine Antwort (Nebenstelle nicht verbunden)",
"HANGUPCAUSE_21": "21 = Anruf abgelehnt",
- "HANGUPCAUSE_22": "22 = Anzahl geändert",
- "HANGUPCAUSE_27": "27 = Ziel nicht in Ordnung",
- "HANGUPCAUSE_38": "38 = Netzwerk aus, um",
+ "HANGUPCAUSE_22": "22 = Nummer geändert",
+ "HANGUPCAUSE_27": "27 = Ziel nicht verfügbar",
+ "HANGUPCAUSE_38": "38 = Netzwerk nicht verfügbar",
"HANGUPCAUSE_41": "41 = vorübergehende Störung",
- "RANDOM": "Random",
+ "RANDOM": "Zufall",
"ALPHABETICAL": "Alphabetisch",
"NO_APPS_AVAILABLE": "Keine Anwendungen verfügbar",
- "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
- "DELETE_VOICERECORDING": "Löschen von Voice Recording",
- "INTERNAL": "Interne",
+ "DOWNLOAD_VOICERECORDING": "Sprachaufzeichnung herunterladen",
+ "DELETE_VOICERECORDING": "Sprachaufzeichnung löschen",
+ "INTERNAL": "Intern",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"TRUNK_STATUS": "Trunk Status",
"REGISTERED": "Registriert",
- "UNREGISTERED": "Unregistrierte",
+ "UNREGISTERED": "Nicht registriert",
"LAGGED": "Zurück",
"REACHABLE": "Erreichbar",
"UNREACHABLE": "Nicht erreichbar",
"UNKNOWN": "Unbekannt",
- "NOT_INUSE": "Nicht in Gebrauch",
- "INUSE": "Im Einsatz",
+ "NOT_INUSE": "Nicht in Verwendung",
+ "INUSE": "In Verwendung",
"BUSY": "Besetzt",
"INVALID": "Ungültig",
"UNAVAILABLE": "Nicht verfügbar",
"RINGING": "Klingeln",
- "ONHOLD": "Auf Halten",
- "RING": "Ring",
- "UP": "Bis",
- "INFO": "Info",
- "TRUNKS": "Amtsleitungen",
+ "ONHOLD": "Halten",
+ "RING": "Klingeln",
+ "UP": "Nach Oben",
+ "INFO": "Information",
+ "TRUNKS": "Trunks",
"REGISTRY": "Registrierung",
- "NO_REGISTRY": "Keine registry",
+ "NO_REGISTRY": "Keine Registrierung",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
- "WAITING": "Warten",
- "TALKING": "Sprechen",
- "DID": "Haben",
+ "WAITING": "Wartezustand",
+ "TALKING": "Im Gespräch",
+ "DID": "DID",
"CALLER": "Anrufer",
- "TOTAL": "Insgesamt",
+ "TOTAL": "Gesamt",
"ANSWERED": "Beantwortet",
"ABANDONED": "Abgebrochen",
- "UNMANAGED": "Nicht verwaltete",
- "AVG_HOLD_TIME": "Durchschnittl. Warteschleifenzeit",
- "AVG_DURATION": "Av-Dauer",
- "AVG_BILLABLE": "Avg Fakturierbaren",
- "SOURCE": "Quelle",
+ "UNMANAGED": "Nicht bearbeitet",
+ "AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
+ "AVG_DURATION": "Durchschnittliche Dauer",
+ "AVG_BILLABLE": "Durchschnittliche abrechenbare Zeit",
+ "SOURCE": "Ursprung",
"DESTINATION": "Ziel",
"REJECTED": "Abgelehnt",
"FAILED": "Fehlgeschlagen",
- "CALLED": "Aufgerufen",
+ "CALLED": "Angerufen",
"CONNECTED": "Verbunden",
"NO_RATING": "Keine Bewertung",
- "EDIT_VOICERECORDING": "Edit Voice Recording",
+ "EDIT_VOICERECORDING": "Sprachaufzeichnungen verwalten",
"APPLICATION_NAME": "Name der Anwendung",
"ARGUMENTS": "Argumente",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
- "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
- "DEFAULT_PAUSE": "Standard PAUSE",
+ "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "ADD_AGENT_TO_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "DEFAULT_PAUSE": "Standard Pause",
"PAUSE": "Pause",
- "UNPAUSE": "Pause",
- "REDIRECT_TO_NUMBER": "Umleiten zu: Anzahl",
- "REDIRECT_TO_AGENT": "Umleiten zu: Agent",
- "AGENTADD_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+ "UNPAUSE": "Fortsetzen",
+ "REDIRECT_TO_NUMBER": "Weiterleiten an Nummer",
+ "REDIRECT_TO_AGENT": "Weiterleiten an Agenten",
+ "AGENTADD_VOICEQUEUE": "Agenten zu Anruf-Warteschlange hinzufügen",
"APPLICATION": "Anwendung",
"FILES": "Dateien",
"FORMAT": "Format",
"MODE": "Modus",
"RECORD": "Datensatz",
- "TEAMADD_VOICEQUEUE": "Hinzufügen Team voicequeue",
- "NEW_MOHSOUND": "Neue Musik auf Halten",
- "DOWNLOAD_MESSAGE": "Download",
+ "TEAMADD_VOICEQUEUE": "Team zur Anruf-Warteschlange hinzufügen",
+ "NEW_MOHSOUND": "Neue Wartemusik",
+ "DOWNLOAD_MESSAGE": "Herunterladen",
"DELETE_MESSAGE": "Löschen",
"QUEUE_PARAMS": "Queue Parameter",
- "TOTAL_OFFERED": "Insgesamt",
+ "TOTAL_OFFERED": "Gesamt",
"READY": "Bereit",
- "AGENTADD_QUEUE": "Agent hinzufügen Warteschlangen zu Voice",
- "AGENTSADD_QUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
- "ALL_TEAMS": "Alle Mannschaften",
+ "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "AGENTSADD_QUEUE": "Agenten zur Warteschlangen hinzufügen",
+ "ALL_TEAMS": "Alle Teams",
"SELECTED_TEAMS": "Ausgewählte Teams",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CLOSING": "Schließen",
"TAGS": "Tags",
"WAITING_FOR_AGENT": "Warten auf Agenten",
- "EDIT_OUTBOUNDDIAL": "Bearbeiten ausgehenden DFÜ",
- "ACCOUNTNAME": "Konto Name",
+ "EDIT_OUTBOUNDDIAL": "Wählverhalten ausgehend bearbeiten",
+ "ACCOUNTNAME": "Kontoname",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "Von",
- "DISPOSITION": "Disposition",
+ "OF": "von",
+ "DISPOSITION": "Qualifizierung",
"WAITING_FOR_AGENTS": "Warten auf Agenten",
"CHAT": "Chat",
"MAIL": "E-Mail",
"OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "PARTIALPAUSE": "Teilweise Pause",
+ "PARTIALPAUSE": "Teilpause",
"STATUS": "Status",
"TIMER": "Timer",
"ALL": "Alle",
"IDLE": "Leerlauf",
- "EDIT_TRUNK": "Bearbeiten Trunk",
+ "EDIT_TRUNK": "Trunk bearbeiten",
"ACTIVE": "Aktiv",
- "CLEAR": "klar",
+ "CLEAR": "Leeren",
"CALLS": "Anrufe",
- "STARTEDAT": "Fing an bei",
- "ENDEDAT": "Beendet bei",
- "TAG": "Etikett",
- "DETAILS": "Einzelheiten",
+ "STARTEDAT": "Startdatum",
+ "ENDEDAT": "Enddatum",
+ "TAG": "Tag",
+ "DETAILS": "Details",
"BILLABLESECONDS": "Abrechenbare Sekunden",
- "ANSWEREDAT": "Beantwortet bei",
- "NOTE": "Hinweis",
+ "ANSWEREDAT": "Beantwortet am",
+ "NOTE": "Notiz",
"CLOSE": "Schließen",
- "SELECT_DATE": "Wählen Sie Startdatum",
- "SELECT_TYPE": "Art auswählen",
- "ABANDONEDCALLS": "Verlassene Warteschlangenanrufe",
+ "SELECT_DATE": "Startdatum auswählen",
+ "SELECT_TYPE": "Typ auswählen",
+ "ABANDONEDCALLS": "Abgebrochene Anrufe",
"ADD_VOICEPREFIX": "Präfix hinzufügen",
- "AGENTADD_VOICEPREFIX": "Fügen Sie Agent zu Präfix hinzu",
+ "AGENTADD_VOICEPREFIX": "Agentenpräfix hinzufügen",
"DELETE_VOICEPREFIX": "Präfix löschen",
"EDIT_VOICEPREFIX": "Präfix bearbeiten",
"NEW_VOICEPREFIX": "Neues Präfix",
- "VOICEPREFIXES": "Vorgegebene Präfixe",
+ "VOICEPREFIXES": "Präfixe für Sprachanrufe",
"CALLERIDALL": "Anruferidentifikation",
"OUTBOUNDROUTE": "Ausgehende Route",
- "LOGIN_TIME": "Login-Zeit",
- "PAUSE_TIME": "Pausenzeit",
+ "LOGIN_TIME": "Zeit angemeldet",
+ "PAUSE_TIME": "Zeit in Pause",
"DIALER": "Dialer",
- "INBOUND": "Eingehende",
+ "INBOUND": "Eingehend",
"OUTBOUND": "Ausgehend",
- "MANDATORYDISPOSITION": "Zwingende Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Status der obligatorischen Dispositionspause",
- "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
+ "MANDATORYDISPOSITION": "Qualifikation erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
+ "TEAMS_ASSOCIATION": "Teamzuweisung",
"CANT_DOWNLOAD_THIS_FILE": "Diese Datei kann nicht heruntergeladen werden",
"FILE_NOT_FOUND": "Datei nicht gefunden",
"SCREENRECORDING": "Bildschirmaufzeichnung verwalten",
- "START_SCREENRECORDING": "Starten Sie die Bildschirmaufnahme",
- "STOP_SCREENRECORDING": "Beenden Sie die Bildschirmaufnahme",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
- "WRONG_EXTENSION": "Die Datei weist die falsche Erweiterung auf",
+ "START_SCREENRECORDING": "Bildschirmaufzeichnung starten",
+ "STOP_SCREENRECORDING": "Bildschirmaufzeichnung beenden",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
+ "WRONG_EXTENSION": "Ungültige Dateiendung",
"DOWNLOADTRANSCRIBE_VOICERECORDING": "Transkript herunterladen",
"FAILUREREASON": "Fehlergrund",
- "RUNSENTIMENT_VOICERECORDING": "Führen Sie Sentiment",
- "RUNTRANSCRIBESENTIMENT_VOICERECORDING": "Führen Sie Transcribe & Sentiment aus",
- "RUNTRANSCRIBE_VOICERECORDING": "Führen Sie Transcribe aus",
- "SENTIMENT": "Gefühl",
- "SENTIMENTANALYSIS": "Stimmungsanalyse",
+ "RUNSENTIMENT_VOICERECORDING": "Starten Sprachaufzeichnung inkl. Sentiment",
+ "RUNTRANSCRIBESENTIMENT_VOICERECORDING": "Transkription und Sentinemtaufzeichnung starten",
+ "RUNTRANSCRIBE_VOICERECORDING": "Transkription starten",
+ "SENTIMENT": "Sentiment",
+ "SENTIMENTANALYSIS": "Sentiment-Analyse",
"SENTIMENT_MIXED": "Gemischt",
"SENTIMENT_NEGATIVE": "Negativ",
"SENTIMENT_NEUTRAL": "Neutral",
"SENTIMENT_POSITIVE": "Positiv",
"TEXT": "Text",
"TRANSCRIBE": "Transkribieren",
- "TRANSCRIBESTATUS_COMPLETED": "Abgeschlossen",
- "TRANSCRIBESTATUS_FAILED": "Gescheitert",
+ "TRANSCRIBESTATUS_COMPLETED": "Transkription abgeschlossen",
+ "TRANSCRIBESTATUS_FAILED": "Transkription fehlgeschlagen",
"TRANSCRIBESTATUS_IN_PROGRESS": "In Bearbeitung",
"TRANSCRIBESTATUS_NEW": "Neu",
"TRANSCRIPT": "Transkript",
"TRANSCRIPTANALYSIS": "Transkript & Analyse",
"SERVICELEVEL": "Service Level",
- "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
- "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene",
+ "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
+ "THIRD_LEVEL_DISPOSITION": "Qualifizierung der dritten Ebene",
+ "TEAMADD_VOICEPREFIX": "Team zum Präfix hinzufügen",
"ALIAS": "Alias"
}
}
"ADD_VOICEPREFIX": "Add Prefix",
"EDIT_VOICEPREFIX": "Edit Prefix",
"AGENTADD_VOICEPREFIX": "Add Agent to Prefix",
+ "TEAMADD_VOICEPREFIX": "Add Team to Prefix",
"DELETE_VOICEPREFIX": "Delete Prefix",
"OUTBOUNDROUTE": "Outbound Route",
"CALLERIDALL": "Caller Id",
"SERVICELEVEL": "Nivel de servicio",
"SECOND_LEVEL_DISPOSITION": "Tipificación de segundo nivel",
"THIRD_LEVEL_DISPOSITION": "Tipificación de tercer nivel",
+ "TEAMADD_VOICEPREFIX": "Agregar equipo al prefijo",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Teenuse tase",
"SECOND_LEVEL_DISPOSITION": "Teise taseme korraldus",
"THIRD_LEVEL_DISPOSITION": "Kolmanda taseme korraldus",
+ "TEAMADD_VOICEPREFIX": "Lisa meeskond eesliidesse",
"ALIAS": "Teise nimega"
}
}
"SERVICELEVEL": "سطح سرویس",
"SECOND_LEVEL_DISPOSITION": "دفع سطح دوم",
"THIRD_LEVEL_DISPOSITION": "دفع سطح سوم",
+ "TEAMADD_VOICEPREFIX": "اضافه کردن تیم به پیشوند",
"ALIAS": "نام مستعار"
}
}
"SERVICELEVEL": "Palvelutaso",
"SECOND_LEVEL_DISPOSITION": "Toisen tason sijoitus",
"THIRD_LEVEL_DISPOSITION": "Kolmannen tason sijoitus",
+ "TEAMADD_VOICEPREFIX": "Lisää joukkue etuliitteeseen",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Niveau de service",
"SECOND_LEVEL_DISPOSITION": "Disposition de deuxième niveau",
"THIRD_LEVEL_DISPOSITION": "Disposition de troisième niveau",
+ "TEAMADD_VOICEPREFIX": "Ajouter une équipe au préfixe",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "רמת שירות",
"SECOND_LEVEL_DISPOSITION": "נטייה בדרגה שנייה",
"THIRD_LEVEL_DISPOSITION": "נטייה ברמה השלישית",
+ "TEAMADD_VOICEPREFIX": "הוסף צוות לקידומת",
"ALIAS": "כינוי"
}
}
"SERVICELEVEL": "सेवा का स्तर",
"SECOND_LEVEL_DISPOSITION": "दूसरा स्तर विवाद",
"THIRD_LEVEL_DISPOSITION": "तीसरे स्तर का विवाद",
+ "TEAMADD_VOICEPREFIX": "उपसर्ग में टीम जोड़ें",
"ALIAS": "उपनाम"
}
}
"SERVICELEVEL": "Tingkat layanan",
"SECOND_LEVEL_DISPOSITION": "Disposisi Tingkat Kedua",
"THIRD_LEVEL_DISPOSITION": "Disposisi Tingkat Ketiga",
+ "TEAMADD_VOICEPREFIX": "Tambahkan Tim ke Awalan",
"ALIAS": "Alias"
}
}
"ADD_VOICEPREFIX": "Aggiungi Prefisso",
"EDIT_VOICEPREFIX": "Modifica Prefisso",
"AGENTADD_VOICEPREFIX": "Aggiungi Agente al Prefisso",
+ "TEAMADD_VOICEPREFIX": "Aggiungi Team al Prefisso",
"DELETE_VOICEPREFIX": "Elimina Prefisso",
"OUTBOUNDROUTE": "Rotta Outbound",
"CALLERIDALL": "Numero Chiamante",
"SERVICELEVEL": "サービスレベル",
"SECOND_LEVEL_DISPOSITION": "第2レベルの気質",
"THIRD_LEVEL_DISPOSITION": "第3レベルの気質",
+ "TEAMADD_VOICEPREFIX": "プレフィックスにチームを追加",
"ALIAS": "エイリアス"
}
}
"SERVICELEVEL": "서비스 수준",
"SECOND_LEVEL_DISPOSITION": "두 번째 수준 처리",
"THIRD_LEVEL_DISPOSITION": "3 단계 처리",
+ "TEAMADD_VOICEPREFIX": "접두사에 팀 추가",
"ALIAS": "별명"
}
}
"SERVICELEVEL": "Aptarnavimo lygis",
"SECOND_LEVEL_DISPOSITION": "Antro lygio disponavimas",
"THIRD_LEVEL_DISPOSITION": "Trečiojo lygio disponavimas",
+ "TEAMADD_VOICEPREFIX": "Pridėti komandą prie priešdėlio",
"ALIAS": "Pseudonimas"
}
}
"SERVICELEVEL": "Pakalpojuma līmenis",
"SECOND_LEVEL_DISPOSITION": "Otrā līmeņa izvietojums",
"THIRD_LEVEL_DISPOSITION": "Trešā līmeņa izvietojums",
+ "TEAMADD_VOICEPREFIX": "Pievienot komandu prefiksam",
"ALIAS": "Pseidonīms"
}
}
"SERVICELEVEL": "Service Level",
"SECOND_LEVEL_DISPOSITION": "Tweede niveau dispositie",
"THIRD_LEVEL_DISPOSITION": "Dispositie op het derde niveau",
+ "TEAMADD_VOICEPREFIX": "Team toevoegen aan voorvoegsel",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Service nivå",
"SECOND_LEVEL_DISPOSITION": "Andre nivå disposisjon",
"THIRD_LEVEL_DISPOSITION": "Tredje nivå disposisjon",
+ "TEAMADD_VOICEPREFIX": "Legg Team til prefiks",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Poziom usług",
"SECOND_LEVEL_DISPOSITION": "Dyspozycja drugiego poziomu",
"THIRD_LEVEL_DISPOSITION": "Dyspozycja trzeciego poziomu",
+ "TEAMADD_VOICEPREFIX": "Dodaj drużynę do prefiksu",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Nível de serviço",
"SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível",
"THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível",
+ "TEAMADD_VOICEPREFIX": "Adicionar equipe ao prefixo",
"ALIAS": "Pseudônimo"
}
}
"SERVICELEVEL": "Nível de serviço",
"SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível",
"THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível",
+ "TEAMADD_VOICEPREFIX": "Adicionar equipe ao prefixo",
"ALIAS": "Pseudônimo"
}
}
"SERVICELEVEL": "Уровень обслуживания",
"SECOND_LEVEL_DISPOSITION": "Расположение второго уровня",
"THIRD_LEVEL_DISPOSITION": "Расположение третьего уровня",
+ "TEAMADD_VOICEPREFIX": "Добавить команду к префиксу",
"ALIAS": "Псевдоним"
}
}
"SERVICELEVEL": "Servicenivå",
"SECOND_LEVEL_DISPOSITION": "Andra nivån disposition",
"THIRD_LEVEL_DISPOSITION": "Tredje nivåens disposition",
+ "TEAMADD_VOICEPREFIX": "Lägg till Team i prefixet",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Servis seviyesi",
"SECOND_LEVEL_DISPOSITION": "İkinci Düzey Tasarruf",
"THIRD_LEVEL_DISPOSITION": "Üçüncü Düzey Tasarruf",
+ "TEAMADD_VOICEPREFIX": "Önek'e Takım Ekle",
"ALIAS": "takma ad"
}
}
"SERVICELEVEL": "服务等级",
"SECOND_LEVEL_DISPOSITION": "二级处置",
"THIRD_LEVEL_DISPOSITION": "第三级处置",
+ "TEAMADD_VOICEPREFIX": "将团队添加到前缀",
"ALIAS": "别名"
}
}
"SERVICELEVEL": "服務等級",
"SECOND_LEVEL_DISPOSITION": "二級處置",
"THIRD_LEVEL_DISPOSITION": "第三級處置",
+ "TEAMADD_VOICEPREFIX": "將團隊添加到前綴",
"ALIAS": "別名"
}
}
"LASTMESSAGE": "اخر رسالة",
"LEXREGION": "منطقة",
"LIST": "قائمة",
- "LOGGED_IN": "تم تسجيل الدخول (SIP متصل)",
+ "LOGGED_IN": "تم تسجيل الدخول",
"LOGIN_TIME": "وقت تسجيل الدخول",
"LOGOUT": "تسجيل خروج",
"MANDATORYDISPOSITION": "الترتيب الإلزامي",
"LASTMESSAGE": "Poslední zpráva",
"LEXREGION": "Kraj",
"LIST": "Seznam",
- "LOGGED_IN": "Přihlášen (připojeno SIP)",
+ "LOGGED_IN": "Přihlášen",
"LOGIN_TIME": "Čas přihlášení",
"LOGOUT": "Odhlásit se",
"MANDATORYDISPOSITION": "Povinná dispozice",
"LASTMESSAGE": "Sidste meddelelse",
"LEXREGION": "Område",
"LIST": "Liste",
- "LOGGED_IN": "Logget ind (SIP tilsluttet)",
+ "LOGGED_IN": "Logget ind",
"LOGIN_TIME": "Login tid",
"LOGOUT": "Log ud",
"MANDATORYDISPOSITION": "Obligatorisk disposition",
"ERRORS": {
"ACCESSKEYID_REQUIRED": "Pflichtfeld",
"ACCOUNTSID_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"AGENT_REQUIRED": "Pflichtfeld",
"AGENT_TIMEOUT_REQUIRED": "Pflichtfeld",
"CONDITION_REQUIRED": "Pflichtfeld",
"DESCRIPTION_REQUIRED": "Pflichtfeld",
"DISPOSITION_REQUIRED": "Pflichtfeld",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"FALSEPRIORITY_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "KEY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
"KEY_REQUIRED": "Pflichtfeld",
"LANGUAGE_REQUIRED": "Pflichtfeld",
"LEXREGION_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"NAME_REQUIRED": "Pflichtfeld",
"PHONE_REQUIRED": "Pflichtfeld",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"PRIORITY_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
"SECRETACCESSKEY_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
"TEXT_REQUIRED": "Pflichtfeld",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"TIMEOUT_REQUIRED": "Pflichtfeld",
"TIMES_REQUIRED": "Pflichtfeld",
"TOKEN_REQUIRED": "Pflichtfeld",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
"TRUEPRIORITY_REQUIRED": "Pflichtfeld",
"TYPE_REQUIRED": "Pflichtfeld",
"VALUE_REQUIRED": "Pflichtfeld",
"VARIABLE_REQUIRED": "Pflichtfeld",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
- "WELCOMEMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "WELCOMEMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
"WELCOMEMESSAGE_REQUIRED": "Pflichtfeld",
"CLIENTEMAIL_REQUIRED": "Pflichtfeld",
"PRIVATEKEY_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld"
},
"HELP": {
- "LIST": "Kontaktmanagerliste zum Zuordnen von Kontakten",
- "MANDATORYDISPOSITION": "Obligatorische Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Pause, um zu verwenden, wenn die obligatorische Disposition aktiviert ist",
+ "LIST": "Liste für die Zuordnung von Kontakten",
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
"MOTIONPROXY": "Das Feld muss das folgende Format haben: <Protokoll>: // <IP-Adresse> [: <Port>]. Beispiel: https: //X.Y.Z.W",
"NAME": "Es werden nur Zahlen, Buchstaben und bestimmte Zeichen (._) unterstützt",
"RECEIVEURL": "Dies ist die automatisch generierte API-Zeichenfolge, die Sie zum Empfangen der Nachrichten in Ihrem Konto von Ihrem WhatsApp Connector-Anbieter verwenden müssen (POST-Methode muss verwendet werden): Klicken Sie auf die Schaltfläche in der Zwischenablage, um sie zu kopieren",
- "WELCOMEMESSAGE": "Dies ist die erste Antwortnachricht, die an neue Interaktionen gesendet wird"
+ "WELCOMEMESSAGE": "Dies ist die erste Antwortnachricht, welche bei einer neuen Interaktion gesendet wird"
},
"ACCESSKEYID": "Zugriffsschlüssel-ID",
- "ACCOUNTSID": "Konto-SID",
+ "ACCOUNTSID": "Konto-ID",
"ACTIONS": "Aktionen",
"ADD_NOTE": "Notiz hinzufügen",
- "ADD_WHATSAPPACCOUNT": "Hinzufügen",
- "ADD_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
- "ADD_WHATSAPPDISPOSITION": "WhatsApp Disposition hinzufügen",
+ "ADD_WHATSAPPACCOUNT": "Whatsapp Konto konzufügen",
+ "ADD_WHATSAPPCANNEDANSWER": "Textvorlage hinzufügen",
+ "ADD_WHATSAPPDISPOSITION": "Whatsapp-Qualifizierung hinzufügen",
"ADD_WHATSAPPQUEUE": "WhatsApp-Warteschlange hinzufügen",
- "ADVANCED": "Fortgeschrittene",
+ "ADVANCED": "Erweitert",
"AGENT": "Agent",
- "AGENTADD_QUEUE": "Agent zur WhatsApp-Warteschlange hinzufügen",
- "AGENTADD_WHATSAPPACCOUNT": "Agent zum WhatsApp-Konto hinzufügen",
- "AGENTADD_WHATSAPPQUEUE": "Agent zur WhatsApp-Warteschlange hinzufügen",
+ "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "AGENTADD_WHATSAPPACCOUNT": "Agenten zum WhatsApp-Konto hinzufügen",
+ "AGENTADD_WHATSAPPQUEUE": "Agenten zur WhatsApp-Warteschlange hinzufügen",
"AGENTS": "Agenten",
- "AGENTSADD_QUEUE": "Hinzufügen von Agenten zur WhatsApp-Warteschlange",
- "AGENTTRANSFER": "Agententransfer",
- "AGENTTRANSFERTIMEOUT": "Zeitüberschreitung bei der Agentenübertragung",
- "AGENT_TIMEOUT": "Agent Timeout",
+ "AGENTSADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "AGENTTRANSFER": "Transfer Agent",
+ "AGENTTRANSFERTIMEOUT": "Timeout Agententransfer",
+ "AGENT_TIMEOUT": "Timeout Agent",
"ALL": "Alles",
"ALL_AGENTS": "Alle Agenten",
"ALL_TEAMS": "Alle Teams",
"AUTHTOKEN": "Auth Token",
"AUTOREPLY": "Automatische Antwort",
"BACK": "Zurück",
- "BOTNAME": "Bot Name",
+ "BOTNAME": "Botname",
"BUSY": "Beschäftigt",
- "CANNEDANSWERS": "Vordefinierte Antworten",
- "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
- "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
+ "CANNEDANSWERS": "Textvorlagen",
+ "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
+ "CANNED_ANSWER_SEARCH": "Suchen nach Textvorlagen",
"CAPACITY": "Kapazität",
"CLOSE": "Schließen",
"CLOSED": "Geschlossen",
"CLOSEMETHOD": "Methode schließen",
"CLOSEURL": "URL schließen",
- "COMMAND": "Befehl",
+ "COMMAND": "Eingabe",
"CONDITION": "Bedingung",
"CONTACT": "Kontakt",
- "CREATED_AT": "Hergestellt in",
- "DEFAULT_PAUSE": "STANDARD PAUSE",
+ "CREATED_AT": "Erstellt am",
+ "DEFAULT_PAUSE": "Standard Pause",
"DELETE": "Löschen",
"DELETE_INTERACTION": "Interaktion löschen",
"DELETE_SELECTED": "Ausgewählte löschen",
"DELETE_WHATSAPPACCOUNT": "WhatsApp-Konto löschen",
- "DELETE_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort löschen",
- "DELETE_WHATSAPPDISPOSITION": "WhatsApp-Disposition löschen",
+ "DELETE_WHATSAPPCANNEDANSWER": "Textvorlage löschen",
+ "DELETE_WHATSAPPDISPOSITION": "Qualifizierung löschen",
"DELETE_WHATSAPPQUEUE": "WhatsApp-Warteschlange löschen",
"DESCRIPTION": "Beschreibung",
"DIALOGFLOW": "DialogFlow",
- "DISPOSITION": "Anordnung",
- "DISPOSITIONS": "Dispositionen",
- "DOWNLOAD_INTERACTION": "Herunterladen",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Ohne Anhänge herunterladen",
- "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
- "EDIT_AGENT": "Agent bearbeiten",
- "EDIT_AMAZONLEX": "Bearbeiten Sie die Lex-Konfiguration",
+ "DISPOSITION": "Qualifizierung",
+ "DISPOSITIONS": "Qualifizierungen",
+ "DOWNLOAD_INTERACTION": "Interaktion herunterladen",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Herunterladen inkl. Anhänge",
+ "EDIT_AGENT": "Agenten bearbeiten",
+ "EDIT_AMAZONLEX": "Lex-Konfiguration bearbeiten",
"EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
- "EDIT_CLOSE": "Bearbeiten Schließen",
- "EDIT_DIALOGFLOW": "Bearbeiten Sie die DialogFlow-Konfiguration",
- "EDIT_GOTOIF": "Bearbeiten Sie Gotoif",
- "EDIT_GOTOP": "Gotop bearbeiten",
+ "EDIT_CLOSE": "Bearbeitung abschließen",
+ "EDIT_DIALOGFLOW": "DialogFlow-Konfiguration bearbeiten",
+ "EDIT_GOTOIF": "GoToIf bearbeiten",
+ "EDIT_GOTOP": "GoTop bearbeiten",
"EDIT_NOOP": "Noop bearbeiten",
"EDIT_QUEUE": "Warteschlange bearbeiten",
"EDIT_SYSTEM": "System bearbeiten",
"EDIT_TAG": "Tag bearbeiten",
"EDIT_WHATSAPPACCOUNT": "WhatsApp-Konto bearbeiten",
- "EDIT_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
- "EDIT_WHATSAPPDISPOSITION": "WhatsApp-Disposition bearbeiten",
- "EDIT_WHATSAPPQUEUE": "Bearbeiten Sie die WhatsApp-Warteschlange",
- "FALSEPRIORITY": "Falsche Priorität",
- "GENERAL": "Allgemeines",
+ "EDIT_WHATSAPPCANNEDANSWER": "Textvorlage bearbeiten",
+ "EDIT_WHATSAPPDISPOSITION": "Whatsapp-Qualifizierung bearbeiten",
+ "EDIT_WHATSAPPQUEUE": "Whatsapp-Warteschlange bearbeiten",
+ "FALSEPRIORITY": "Priorität falsch",
+ "GENERAL": "Allgemein",
"GOTOIF": "Gotoif",
"GOTOP": "Zum Seitenanfang",
- "GOTOREALTIME_WHATSAPPQUEUE": "Wechseln Sie zur WhatsApp-Warteschlange in Echtzeit",
- "GO_TO_WHATSAPPACCOUNTS": "Gehe zu Konto",
- "ID": "Ich würde",
+ "GOTOREALTIME_WHATSAPPQUEUE": "Zur Echtzeitansicht gehen",
+ "GO_TO_WHATSAPPACCOUNTS": "Zum Whatsapp-Konto gehen",
+ "ID": "ID",
"IDLE": "Leerlauf",
"INSERT_MESSAGE_HERE": "Nachricht hier einfügen",
"INTERACTIONS": "Interaktionen",
- "INTERACTIONS_WHATSAPPACCOUNT": "Gehen Sie zu Interaktionen",
+ "INTERACTIONS_WHATSAPPACCOUNT": "Zu Interaktionen gehen",
"KEY": "Schlüssel",
"LANGUAGE": "Sprache",
"LASTMESSAGE": "Letzte Nachricht",
- "LEXREGION": "Region",
- "LIST": "Aufführen",
- "LOGGED_IN": "Eingeloggt (SIP verbunden)",
+ "LEXREGION": "LexRegion",
+ "LIST": "Liste",
+ "LOGGED_IN": "Eingeloggt",
"LOGIN_TIME": "Anmeldezeit",
"LOGOUT": "Ausloggen",
- "MANDATORYDISPOSITION": "Obligatorische Disposition",
- "MANDATORYDISPOSITIONPAUSEID": "Pause, um zu verwenden, wenn die obligatorische Disposition aktiviert ist",
+ "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
+ "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern erforderlich",
"MORE": "Mehr",
- "MOTIONPROXY": "Proxy- oder Bewegungsdomäne",
+ "MOTIONPROXY": "Proxy",
"MULTI_SELECT_TOGGLE": "Mehrfachauswahl umschalten",
"NAME": "Name",
"NEW_WHATSAPPACCOUNT": "Neues WhatsApp-Konto",
- "NEW_WHATSAPPCANNEDANSWER": "Neue vordefinierte WhatsApp-Antwort",
- "NEW_WHATSAPPDISPOSITION": "Neue WhatsApp-Disposition",
+ "NEW_WHATSAPPCANNEDANSWER": "Neue WhatsApp-Textvorlage",
+ "NEW_WHATSAPPDISPOSITION": "Neue WhatsApp-Quailifizierung",
"NEW_WHATSAPPQUEUE": "Neue WhatsApp-Warteschlange",
"NOOP": "Noop",
- "NOTE": "Hinweis",
+ "NOTE": "Anmerkung",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Shake",
- "NOTIFICATIONSOUND": "Klang",
+ "NOTIFICATIONSHAKE": "Schütteln",
+ "NOTIFICATIONSOUND": "Klingeln",
"NOTIFICATIONTEMPLATE": "Vorlage",
"NO_AGENT_ONLINE": "Kein Agent online",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
- "NO_INTERACTION_AVAILABLE": "Keine Interaktionen verfügbar",
- "NO_WHATSAPPCANNEDANSWER_AVAILABLE": "Keine vordefinierten WhatsApp-Antworten verfügbar",
- "NO_WHATSAPPDISPOSITION_AVAILABLE": "Keine WhatsApp-Dispositionen verfügbar",
+ "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
+ "NO_WHATSAPPCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
+ "NO_WHATSAPPDISPOSITION_AVAILABLE": "Keine Qualifizierungen verfügbar",
"NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Keine WhatsApp-Konten verfügbar",
"OF": "von",
"OPENED": "Geöffnet",
"PROXY": "Proxy",
"QUEUE": "Warteschlange",
"QUEUES": "Warteschlangen",
- "QUEUETRANSFER": "Warteschlangenübertragung",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangenübertragung",
+ "QUEUETRANSFER": "Transfer an Warteschlange",
+ "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangentransfer",
"READY": "Bereit",
"REALTIME": "Echtzeit",
- "RECEIVEURL": "URL erhalten",
+ "RECEIVEURL": "URL für Erhalt",
"REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "REMOTE": "Fernbedienung",
+ "REMOTE": "Remote",
"ROWSPERPAGE": "Zeilen pro Seite",
- "SAVE": "sparen",
+ "SAVE": "Speichern",
"SCREENRECORDING": "Bildschirmaufzeichnung verwalten",
"SEARCH_FOR_ANYONE": "Suche",
- "SECRETACCESSKEY": "Zugriffsschlüsselgeheimnis",
+ "SECRETACCESSKEY": "Geheimer Schlüssel",
"SELECTED": "Ausgewählt",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"SELECTED_TEAMS": "Ausgewählte Teams",
- "SELECT_ALL": "Wählen Sie Alle",
- "SELECT_NONE": "Nichts ausgewählt",
+ "SELECT_ALL": "Alles auswählen",
+ "SELECT_NONE": "Nichts auswählen",
"SEND": "Senden",
- "SETTINGS": "die Einstellungen",
- "SPYINTERACTION": "Spionage-Interaktion",
- "STARTEDAT": "Fing an bei",
- "START_SCREENRECORDING": "Bildschirmaufnahme starten",
+ "SETTINGS": "Einstellungen",
+ "SPYINTERACTION": "Mitlesen",
+ "STARTEDAT": "Startdatum",
+ "START_SCREENRECORDING": "Bildschirmaufzeichnung starten",
"STATUS": "Status",
"STOP_SCREENRECORDING": "Bildschirmaufzeichnung stoppen",
"STRATEGY": "Strategie",
"SYSTEM": "System",
- "TAG": "Etikett",
- "TAGS": "Stichworte",
+ "TAG": "Tag",
+ "TAGS": "Tags",
"TEAMADD_WHATSAPPQUEUE": "Team zur WhatsApp-Warteschlange hinzufügen",
- "TEAMS_ASSOCIATION": "Mannschaftsverband",
+ "TEAMS_ASSOCIATION": "Teamzuweisung",
"TEXT": "Text",
- "TIMEOUT": "Auszeit",
+ "TIMEOUT": "Zeitüberschreitung",
"TIMER": "Timer",
- "TIMES": "Mal",
- "TO": "Zu",
- "TOKEN": "Zeichen",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
- "TRANSFER": "Transfer",
+ "TIMES": "Zeiten",
+ "TO": "an",
+ "TOKEN": "Token",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
+ "TRANSFER": "Weiterleiten",
"TRUEPRIORITY": "Wahre Priorität",
- "TYPE": "Art",
+ "TYPE": "Typ",
"UNPAUSE": "Pause beenden",
"VALUE": "Wert",
"VARIABLE": "Variable",
- "WAITFORTHEASSIGNEDAGENT": "Warten Sie auf den zugewiesenen Agenten",
+ "WAITFORTHEASSIGNEDAGENT": "Auf den zugewiesenen Mitarbeiter warten",
"WAITING": "Warten",
"WELCOMEMESSAGE": "Willkommensnachricht",
"WHATSAPP": "WhatsApp Connector",
"WHATSAPPACCOUNTS": "WhatsApp-Konten",
- "WHATSAPPCANNEDANSWERS": "WhatsApp vordefinierte Antworten",
- "WHATSAPPDISPOSITIONS": "WhatsApp Dispositionen",
+ "WHATSAPPCANNEDANSWERS": "WhatsApp-Textvorlagen",
+ "WHATSAPPDISPOSITIONS": "WhatsApp-Qualifizierungen",
"WHATSAPPQUEUES": "WhatsApp-Warteschlangen",
- "CLIENTEMAIL": "Kunden-E-Mail",
+ "CLIENTEMAIL": "Kunden E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privat Schlüssel",
+ "PRIVATEKEY": "Privater Schlüssel",
"PROJECTID": "Projekt-ID"
}
}
"AUTHTOKEN": "Auth Token",
"AUTOREPLY": "Auto Reply",
"BACK": "Back",
+ "BASEURL": "Base URL",
"BOTNAME": "Bot Name",
"BUSY": "Busy",
"CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found",
"AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less or equal than",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
"AUTHTOKEN_REQUIRED": "Mandatory Field",
+ "BASEURL_REQUIRED": "Mandatory Field",
"BOTNAME_REQUIRED": "Mandatory Field",
"COMMAND_REQUIRED": "Mandatory Field",
"CONDITION_REQUIRED": "Mandatory Field",
"LASTMESSAGE": "Last Message",
"LEXREGION": "Region",
"LIST": "List",
- "LOGGED_IN": "Logged In (SIP Connected)",
+ "LOGGED_IN": "Logged In",
"LOGIN_TIME": "Login Time",
"LOGOUT": "Logout",
"MANDATORYDISPOSITION": "Mandatory Disposition",
"READY": "Ready",
"REALTIME": "Realtime",
"RECEIVEURL": "Receive URL",
+ "DELIVERYREPORTURL": "Delivery report URL",
"REFRESH_INTERACTIONS": "Refresh Interactions",
"REMOTE": "Remote",
"ROWSPERPAGE": "Rows per page",
"LASTMESSAGE": "Ultimo mensaje",
"LEXREGION": "Región",
"LIST": "Lista",
- "LOGGED_IN": "Conectado (SIP conectado)",
+ "LOGGED_IN": "Conectado",
"LOGIN_TIME": "Hora de inicio de sesión",
"LOGOUT": "Cerrar sesión",
"MANDATORYDISPOSITION": "Tipificación obligatoria",
"LASTMESSAGE": "Viimane sõnum",
"LEXREGION": "Piirkond",
"LIST": "Loend",
- "LOGGED_IN": "Sisse logitud (SIP ühendatud)",
+ "LOGGED_IN": "Sisse logitud",
"LOGIN_TIME": "Sisselogimise aeg",
"LOGOUT": "Logi välja",
"MANDATORYDISPOSITION": "Kohustuslik käsutamine",
"LASTMESSAGE": "آخرین پیام",
"LEXREGION": "منطقه",
"LIST": "لیست",
- "LOGGED_IN": "ورود به سیستم (SIP متصل)",
+ "LOGGED_IN": "ورود به سیستم",
"LOGIN_TIME": "زمان ورود",
"LOGOUT": "خروج",
"MANDATORYDISPOSITION": "اختیار اجباری",
"LASTMESSAGE": "Viimeinen viesti",
"LEXREGION": "alue",
"LIST": "Lista",
- "LOGGED_IN": "Sisäänkirjautunut (SIP kytketty)",
+ "LOGGED_IN": "Sisäänkirjautunut",
"LOGIN_TIME": "Sisäänkirjautumisaika",
"LOGOUT": "Kirjautua ulos",
"MANDATORYDISPOSITION": "Pakollinen sijoittaminen",
"LASTMESSAGE": "Dernier message",
"LEXREGION": "Région",
"LIST": "liste",
- "LOGGED_IN": "Connecté (SIP connecté)",
+ "LOGGED_IN": "Connecté",
"LOGIN_TIME": "Heure de connexion",
"LOGOUT": "Se déconnecter",
"MANDATORYDISPOSITION": "Disposition obligatoire",
"LASTMESSAGE": "הודעה אחרונה",
"LEXREGION": "אזור",
"LIST": "רשימה",
- "LOGGED_IN": "מחובר (SIP מחובר)",
+ "LOGGED_IN": "מחובר",
"LOGIN_TIME": "זמן כניסה",
"LOGOUT": "להתנתק",
"MANDATORYDISPOSITION": "התנהגות חובה",
"LASTMESSAGE": "आखिरी सन्देश",
"LEXREGION": "क्षेत्र",
"LIST": "सूची",
- "LOGGED_IN": "लॉग इन (SIP कनेक्टेड)",
+ "LOGGED_IN": "लॉग इन",
"LOGIN_TIME": "लॉग इन टाइम",
"LOGOUT": "लॉग आउट",
"MANDATORYDISPOSITION": "अनिवार्य विवाद",
"LASTMESSAGE": "Pesan Terakhir",
"LEXREGION": "Wilayah",
"LIST": "Daftar",
- "LOGGED_IN": "Masuk (SIP Terhubung)",
+ "LOGGED_IN": "Masuk",
"LOGIN_TIME": "Waktu Login",
"LOGOUT": "Keluar",
"MANDATORYDISPOSITION": "Disposisi Wajib",
"DELETE_WHATSAPPDISPOSITION": "Elimina la disposizione di WhatsApp",
"DIALOGFLOW": "DialogFlow",
"DISPOSITION": "Disposizione",
- "DISPOSITIONS": "disposizioni",
+ "DISPOSITIONS": "Disposizioni",
"DOWNLOAD_INTERACTION": "Scarica",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Scarica senza allegati",
"DOWNLOAD_WITH_ATTACHMENTS": "Scarica con allegati",
"FALSEPRIORITY": "Priorità falsa",
"GOTOP": "Andare in cima",
"GO_TO_WHATSAPPACCOUNTS": "Vai all'account",
- "INTERACTIONS": "interazioni",
+ "INTERACTIONS": "Interazioni",
"INTERACTIONS_WHATSAPPACCOUNT": "Vai a Interazioni",
"KEY": "Chiave",
"LEXREGION": "Regione",
"QUEUETRANSFER": "Trasferimento in coda",
"QUEUETRANSFERTIMEOUT": "Timeout trasferimento coda",
"RECEIVEURL": "Ricevi URL",
+ "DELIVERYREPORTURL": "Consegna URL",
"REFRESH_INTERACTIONS": "Aggiorna interazioni",
"REMOTE": "A distanza",
"SECRETACCESSKEY": "Chiave di accesso segreta",
"TOKEN": "Gettone",
"TRANSFER": "Trasferimento",
"TRUEPRIORITY": "Vera priorità",
- "TYPE": "genere",
+ "TYPE": "Genere",
"VALUE": "Valore",
"VARIABLE": "Variabile",
"WAITFORTHEASSIGNEDAGENT": "Attendi l'agente assegnato",
"LASTMESSAGE": "最後のメッセージ",
"LEXREGION": "領域",
"LIST": "リスト",
- "LOGGED_IN": "ログイン済み(SIP接続済み)",
+ "LOGGED_IN": "ログイン済み",
"LOGIN_TIME": "ログイン時間",
"LOGOUT": "ログアウト",
"MANDATORYDISPOSITION": "強制処分",
"LASTMESSAGE": "마지막 메시지",
"LEXREGION": "부위",
"LIST": "명부",
- "LOGGED_IN": "로그인 됨 (SIP 연결됨)",
+ "LOGGED_IN": "로그인 됨",
"LOGIN_TIME": "로그인 시간",
"LOGOUT": "로그 아웃",
"MANDATORYDISPOSITION": "필수 처분",
"LASTMESSAGE": "Paskutinė žinutė",
"LEXREGION": "Regionas",
"LIST": "Sąrašas",
- "LOGGED_IN": "Prisijungęs (prijungtas prie SIP)",
+ "LOGGED_IN": "Prisijungęs",
"LOGIN_TIME": "Prisijungimo laikas",
"LOGOUT": "Atsijungti",
"MANDATORYDISPOSITION": "Privalomas nusistatymas",
"LASTMESSAGE": "Pēdējā ziņa",
"LEXREGION": "Novads",
"LIST": "Saraksts",
- "LOGGED_IN": "Pieteicies (savienots ar SIP)",
+ "LOGGED_IN": "Pieteicies",
"LOGIN_TIME": "Pieteikšanās laiks",
"LOGOUT": "Izlogoties",
"MANDATORYDISPOSITION": "Obligāta rīcība",
"LASTMESSAGE": "Laatste bericht",
"LEXREGION": "Regio",
"LIST": "Lijst",
- "LOGGED_IN": "Ingelogd (SIP verbonden)",
+ "LOGGED_IN": "Ingelogd",
"LOGIN_TIME": "Login Tijd",
"LOGOUT": "Uitloggen",
"MANDATORYDISPOSITION": "Verplichte dispositie",
"LASTMESSAGE": "Siste melding",
"LEXREGION": "Region",
"LIST": "Liste",
- "LOGGED_IN": "Logget inn (SIP-tilkoblet)",
+ "LOGGED_IN": "Logget inn",
"LOGIN_TIME": "Innloggingstid",
"LOGOUT": "Logg ut",
"MANDATORYDISPOSITION": "Obligatorisk disposisjon",
"LASTMESSAGE": "Ostatnia wiadomość",
"LEXREGION": "Region",
"LIST": "Lista",
- "LOGGED_IN": "Zalogowano (połączenie SIP)",
+ "LOGGED_IN": "Zalogowano",
"LOGIN_TIME": "Czas logowania",
"LOGOUT": "Wyloguj",
"MANDATORYDISPOSITION": "Obowiązkowa dyspozycja",
"LASTMESSAGE": "Última mensagem",
"LEXREGION": "Região",
"LIST": "Lista",
- "LOGGED_IN": "Conectado (SIP conectado)",
+ "LOGGED_IN": "Conectado",
"LOGIN_TIME": "Hora de Login",
"LOGOUT": "Sair",
"MANDATORYDISPOSITION": "Disposição Obrigatória",
"LASTMESSAGE": "Última mensagem",
"LEXREGION": "Região",
"LIST": "Lista",
- "LOGGED_IN": "Conectado (SIP conectado)",
+ "LOGGED_IN": "Conectado",
"LOGIN_TIME": "Hora de Login",
"LOGOUT": "Sair",
"MANDATORYDISPOSITION": "Disposição Obrigatória",
"LASTMESSAGE": "Последнее сообщение",
"LEXREGION": "Область",
"LIST": "Список",
- "LOGGED_IN": "Авторизован (SIP подключен)",
+ "LOGGED_IN": "Авторизован",
"LOGIN_TIME": "Время входа",
"LOGOUT": "Выйти",
"MANDATORYDISPOSITION": "Обязательное распоряжение",
"LASTMESSAGE": "Senaste meddelandet",
"LEXREGION": "Område",
"LIST": "Lista",
- "LOGGED_IN": "Inloggad (SIP ansluten)",
+ "LOGGED_IN": "Inloggad",
"LOGIN_TIME": "Inloggningstid",
"LOGOUT": "Logga ut",
"MANDATORYDISPOSITION": "Obligatorisk disposition",
"LASTMESSAGE": "Son Mesaj",
"LEXREGION": "bölge",
"LIST": "Liste",
- "LOGGED_IN": "Oturum Açıldı (SIP Bağlı)",
+ "LOGGED_IN": "Oturum Açıldı",
"LOGIN_TIME": "Giriş Zamanı",
"LOGOUT": "Çıkış Yap",
"MANDATORYDISPOSITION": "Zorunlu Elden Çıkarma",
"LASTMESSAGE": "最后留言",
"LEXREGION": "地区",
"LIST": "清单",
- "LOGGED_IN": "已登录(已连接SIP)",
+ "LOGGED_IN": "已登录",
"LOGIN_TIME": "登录时间",
"LOGOUT": "登出",
"MANDATORYDISPOSITION": "强制性",
"LASTMESSAGE": "最後留言",
"LEXREGION": "地區",
"LIST": "清單",
- "LOGGED_IN": "已登錄(已連接SIP)",
+ "LOGGED_IN": "已登錄",
"LOGIN_TIME": "登錄時間",
"LOGOUT": "登出",
"MANDATORYDISPOSITION": "強制性",
"CHAT": "CHAT",
"ACTIVITY": "Aktivität",
"FRIENDS": "Freunde",
- "APP_SERVERS": "Anwendungsserver",
- "USER_STATS": "Benutzer Stats",
- "EVENTS": "Veranstaltungen",
- "NOTES": "Hinweise",
- "QUICK_SETTINGS": "Schnelle Einstellungen",
+ "APP_SERVERS": "Server Anwendung",
+ "USER_STATS": "Benutzer Statistiken",
+ "EVENTS": "Ereignisse",
+ "NOTES": "Notizen",
+ "QUICK_SETTINGS": "Schnelleinstellungen",
"NOTIFICATIONS": "Benachrichtigungen",
"CLOUD_SYNC": "Cloud Synchronisieren",
- "RETRO_THRUSTERS": "Retro Triebwerke",
- "RECENT": "Die jüngsten",
+ "RETRO_THRUSTERS": "Retro Thrusters",
+ "RECENT": "Neuste",
"START_NEW_CHAT": "Neuen Chat starten",
"BACK": "Zurück",
- "CALL": "Anruf",
+ "CALL": "Anrufen",
"MORE": "Mehr",
"SEND_MESSAGE": "Nachricht senden",
- "REPLY_PLACEHOLDER": "Geben Sie ein, und drücken Sie die Eingabetaste, um Nachricht senden",
- "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakt xCALLY Motion Support",
+ "REPLY_PLACEHOLDER": "Nachricht eingeben und Enter drücken zum Senden",
+ "CONTACT_XCALLY_MOTION_SUPPORT": "Support kontaktieren",
"EXPIRATION_DATE": "Ablaufdatum",
"EXPIRATION_REASON": "Ablauf Grund",
"LICENSE": "Lizenz",
- "NEW_TOKEN": "Neue Token",
- "OLD_TOKEN": "Alte Token",
+ "NEW_TOKEN": "Neuer Token",
+ "OLD_TOKEN": "Alter Token",
"SEND_EMAIL_TO": "E-Mail senden an",
"TOKEN": "Token",
- "EXPIRATION_REASON_MESSAGE": "Ihre Lizenz ist abgelaufen oder Ihre Maschine eindeutige Id wurde aufgrund einer Änderung an Ihrem System aktualisiert. Die xCALLY Motion Support Team Ihre alte und Ihre neue uuid senden Kontakt.",
- "GRAY_PERIOD_EXPIRATION": "Grau Zeitraum Ablauf",
+ "EXPIRATION_REASON_MESSAGE": "Ihre Lizenz ist abgelaufen oder Ihre eindeutige ID wurde aufgrund einer Änderung an Ihrem System aktualisiert. Bitte den Support kontaktieren",
+ "GRAY_PERIOD_EXPIRATION": "Ablauf Testphase",
"ERRORS": {
"NAME_REQUIRED": "Pflichtfeld"
},
- "EXPIRATION_GRAY_PERIOD": "Ablauf Grauzeit",
- "NO_AVAILABLE_GROUPS": "Keine verfügbaren Gruppen",
- "SAVE": "sparen",
- "INFO": "Info",
+ "EXPIRATION_GRAY_PERIOD": "Ablauf Testphase",
+ "NO_AVAILABLE_GROUPS": "Keine Gruppen verfügbar",
+ "SAVE": "Speichern",
+ "INFO": "Information",
"NEW_CHATGROUP": "Neue Gruppe",
"NAME": "Name",
"MEMBERS": "Mitglieder",
"DELETE": "Löschen",
"SEARCH": "Suche",
"USERS": "Benutzer",
- "EXPIRATION_REASON_MESSAGE_GRAY": "Ihre Lizenz ist abgelaufen oder wurde deaktiviert. Kontaktieren Sie xCALLY Motion Support Team.",
- "EXPIRATION_REASON_MESSAGE_CHANGED": "Die eindeutige ID Ihres Rechners wurde aufgrund einer Änderung Ihres Systems aktualisiert. Kontaktieren Sie xCALLY Motion Support Team, das sowohl Ihren alten als auch Ihren neuen UUID sendet.",
- "MESSENGER_DISABLED": "Das interne Messaging ist für diesen Agenten deaktiviert!",
+ "EXPIRATION_REASON_MESSAGE_GRAY": "Ihre Lizenz ist abgelaufen oder wurde deaktiviert. Bitte den Support kontaktieren.",
+ "EXPIRATION_REASON_MESSAGE_CHANGED": "Ihre Lizenz ist abgelaufen oder Ihre eindeutige ID wurde aufgrund einer Änderung an Ihrem System aktualisiert. Bitte den Support kontaktieren",
+ "MESSENGER_DISABLED": "Internes Messaging für diesen Benutzer nicht aktiviert",
"WARNING": "Warnung"
}
}
{
"RESETPASSWORD": {
- "TITLE": "Ihr Kennwort zurücksetzen",
- "EMAIL_ADRESS": "E-mail Adresse",
- "PASSWORD": "Kennwort",
- "PASSWORD_CONFIRM": "Kennwort (bestätigen)",
- "UPDATE_PASSWORD": "Kennwort zurücksetzen",
+ "TITLE": "Passwort zurücksetzen",
+ "EMAIL_ADRESS": "E-Mail Adresse",
+ "PASSWORD": "Passwort",
+ "PASSWORD_CONFIRM": "Passwort bestätigen",
+ "UPDATE_PASSWORD": "Passwort zurücksetzen",
"GO_BACK": "Zurück zum Login",
- "PASSWORD_RESET": "Kennwort zurücksetzen",
- "PASSWORD_RESET_MESSAGE": "Ihr Passwort wurde korrekt zurückgesetzt wurde, können Sie sich jetzt!",
- "PASSWORD_RESET_ERROR": "Passwort Fehler zurücksetzen",
+ "PASSWORD_RESET": "Passwort zurücksetzen",
+ "PASSWORD_RESET_MESSAGE": "Das Passwort wurde erfolgreich zurückgesetzt. Sie können sich nun erneut anmelden",
+ "PASSWORD_RESET_ERROR": "Fehler beim Zurücksetzen des Passwortes",
"ERRORS": {
- "EMAIL_REQUIRED": "Im Feld \"E-Mail ist erforderlich",
- "EMAIL_MUST_VALID": "E-Mail muss eine gültige e-mail Adresse",
- "PASSWORD_REQUIRED": "Kennwort Feld ist erforderlich.",
+ "EMAIL_REQUIRED": "E-Mail Adresse erfoderlich",
+ "EMAIL_MUST_VALID": "E-Mail Adresse ungültig",
+ "PASSWORD_REQUIRED": "Passwort erforderlich",
"CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein.",
- "SECURE_PASSWORD_PATTERN": "Muss mindestens 8 Zeichen enthalten, mit einem Minimum von 1 Kleinbuchstaben, Großbuchstaben, 1 numerisches und 1 Sonderzeichen ~!?*@#$%^&-_=+[{]}."
+ "SECURE_PASSWORD_PATTERN": "Muss mindestens 8 Zeichen enthalten, Minimum von 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen ~!?*@#$%^&-_=+[{]}."
}
}
}
{
"TOOLBAR": {
- "TOGGLE_NAVIGATION": "Navigation wechseln",
- "TOGGLE_NAVIGATION_FOLD": "Navigation wechseln Fach",
- "TOGGLE_NAVIGATION_MODE": "Navigation Modus umschalten",
+ "TOGGLE_NAVIGATION": "Navigation umschalten",
+ "TOGGLE_NAVIGATION_FOLD": "Navigation einklappen",
+ "TOGGLE_NAVIGATION_MODE": "Navigation Moduswechsel",
"SEARCH": "Suche",
- "USER_SETTINGS": "Benutzereinstellungen",
- "TOGGLE_QUICK_PANEL": "Um schnelle Panel",
+ "USER_SETTINGS": "Nutzereinstellungen",
+ "TOGGLE_QUICK_PANEL": "Schnelles Panel umschalten",
"ENGLISH": "Englisch",
"ITALIAN": "Italienisch",
"FRENCH": "Französisch",
"CHINESESIMPLIFIED": "Vereinfachtes Chinesisch",
"CHINESETRADITIONAL": "Traditionelles Chinesisch",
"DUTCH": "Niederländisch",
- "FINNISH": "Finnische",
+ "FINNISH": "Finnisch",
"DANISH": "Dänisch",
"PORTUGUESE": "Portugiesisch",
"NORWEGIAN": "Norwegisch",
"HINDI": "Hindi",
"TURKISH": "Türkisch",
"PERSIAN": "Persisch",
- "LOGIN_TIME": "Login Zeit",
- "PAUSE_TIME": "Pausenzeit",
+ "LOGIN_TIME": "Zeit angemeldet",
+ "PAUSE_TIME": "Zeit in Pause",
"PREVIEW": "Vorschau",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"NEW_PASSWORD": "Neues Passwort",
"OLD_PASSWORD": "Altes Passwort",
"SAVE": "Speichern",
"TRIAL_VERSION": "Testversion",
- "SOMEONE_LOGGED_YOU_OUT": "Jemand eingeloggt haben, möchten Sie angemeldet bleiben?",
+ "SOMEONE_LOGGED_YOU_OUT": "Sie wurden von einem anderen Benutzer abgemeldet. Erneut anmelden?",
"STAY_LOGGED": "Angemeldet bleiben",
"WARNING": "Warnung",
"PAUSE": "Pause",
- "RESUME": "Lebenslauf",
- "NO_PAUSES_AVAILABLE": "Keine Pausen zur Verfügung",
- "LATVIAN": "Lettische",
+ "RESUME": "Fortsetzen",
+ "NO_PAUSES_AVAILABLE": "Keine Pausen verfügbar",
+ "LATVIAN": "Lettisch",
"POLISH": "Polnisch",
"ERRORS": {
"FIELD_REQUIRED": "Pflichtfeld",
"PASSWORD_REQUIRED": "Pflichtfeld",
"CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen haben ~! @",
- "PASSWORD_OLDPASSWORD_MATCH": "Das neue Passwort muss sich vom vorherigen Passwort unterscheiden"
+ "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstaben, 1 Großbuchstaben, 1 Zahl und 1 Sonderzeichen enthalten.",
+ "PASSWORD_OLDPASSWORD_MATCH": "Die Passwörter stimmen nicht überein"
},
"RESETPASSWORD": "Passwort zurücksetzen",
- "PASSWORD_EXPIRE_REMAINING_DAYS": "Verbleibende Tage, bevor Ihr Passwort abläuft",
+ "PASSWORD_EXPIRE_REMAINING_DAYS": "Verbleibende Tage, bis zum Ablauf des Passwortes",
"BROWSER_COMPATIBILITY": "Browserkompatibilität [Chrome, Opera, Safari]",
"RECORDING": "Aufzeichnung",
- "INVALID_LICENSE": "Ungültige Lizenz",
+ "INVALID_LICENSE": "Lizenz ungültig",
"BROWSER": "Browser",
"OS": "Betriebssystem",
- "REQUIREMENTS": "Bedarf",
+ "REQUIREMENTS": "Anforderungen",
"LICENSE": "Lizenz",
"HTTPS": "HTTPS",
"WEBRTCSUPPORT": "WebRTC-Unterstützung",
- "REGISTERED": "Eingetragen",
+ "REGISTERED": "Registriert",
"NOT_REGISTERED": "Nicht registriert",
- "WEBRTC_LICENSE_NOT_ENABELD": "Die WebRTC-Lizenz ist nicht aktiviert",
- "ATTENDED_TRANSFER": "Begleiteter Tranfer",
+ "WEBRTC_LICENSE_NOT_ENABELD": "WebRTC-Lizenz ist nicht aktiviert",
+ "ATTENDED_TRANSFER": "Warmer Transfer",
"TRANSFER": "Transfer",
"TARGET": "Ziel",
- "CANCEL": "Stornieren",
+ "CANCEL": "Abbrechen",
"FILENAME": "Dateiname",
"STATUS": "Status",
"ACTIONS": "Aktionen",
- "SPEAKER": "Redner",
- "RINGING": "Klingelton",
+ "SPEAKER": "Lautsprecher",
+ "RINGING": "Klingeln",
"MICROPHONE": "Mikrofon",
"PROFILE": "Profil",
- "SERVICES": "Dienstleistungen",
+ "SERVICES": "Dienste",
"AUDIO": "Audio",
"FULLNAME": "Vollständiger Name",
"NAME": "Name",
"INTERNAL": "Intern",
- "RINGINGDEVICE": "Klingelgerät",
- "SPEAKERDEVICE": "Lautsprechergerät",
- "MICROPHONEDEVICE": "Mikrofon Gerät",
+ "RINGINGDEVICE": "Klingeln auf Gerät",
+ "SPEAKERDEVICE": "Verwendeter Lautsprecher",
+ "MICROPHONEDEVICE": "Verwendetes Mikrofon",
"CHANGEPASSWORD": "Passwort ändern",
- "SETTINGS": "die Einstellungen",
+ "SETTINGS": "Einstellungen",
"AUTOANSWER": "Automatische Antwort",
"INDONESIAN": "Indonesisch",
"ARABIC": "Arabisch",
- "CALL": "Anruf",
+ "CALL": "Anrufen",
"PREFIXES": "Präfixe",
"HEBREW": "Hebräisch",
- "ESTONIAN": "estnisch",
+ "ESTONIAN": "Estnisch",
"CZECH": "Tschechisch",
- "BRAZILIAN": "Brasilianer",
- "CONFERENCE": "Konferenz mit 2 aktiven Sessions",
- "CHANGE_LANGUAGE_MESSAGE": "Denken Sie daran, die Seite zu aktualisieren, um die RTL-Unterstützung anzuwenden (falls aktiviert).",
+ "BRAZILIAN": "Brasilianisch",
+ "CONFERENCE": "Konferenz mit 2 aktiven Sitzungen",
+ "CHANGE_LANGUAGE_MESSAGE": "Bitte Seite aktualisieren, um Änderungen zu übernehmen",
"CHANGE_LANGUAGE_TITLE": "Sprache ändern",
"WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE": "Keine Audiogeräte verfügbar",
"WEBRTC_MICROPHONE_NOT_AVAILABLE": "Kein Mikrofon vorhanden",
"WEBRTC_SPEAKER_NOT_AVAILABLE": "Kein Lautsprecher verfügbar",
"NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
- "LITHUANIAN": "litauisch",
+ "LITHUANIAN": "Litauisch",
"NOTIFICATION_TITLE": "Neue Benachrichtigung von {{Absender}}",
"NOTIFICATION_TITLE_RECIPIENT": "an {{Empfänger}}",
"USER_FORCE_LOGOUT": "{{ip}} hat sich mit Ihren Anmeldeinformationen angemeldet.\nMehrfachanmeldungen sind nicht zulässig",
<link rel="stylesheet" href="styles/vendor.def00a0c.css">
- <link rel="stylesheet" href="styles/app.0b303223.css">
+ <link rel="stylesheet" href="styles/app.d488371f.css">
<!-- <link href='//fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700italic,700,900,900italic'
rel='stylesheet' type='text/css'> -->
<script src="assets/plugins/angular-material-form-builder/dist/angular-material-form-builder.min.js"></script>
<!-- ANGULAR-MATERIAL-FORM-BUILDER -->
- <script src="scripts/app.b6932ccd.js"></script>
+ <script src="scripts/app.402e83f6.js"></script>
<!-- CKEDITOR -->
<script src="assets/plugins/ckeditor/ckeditor.js"></script>
-!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","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){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"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){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"}),n.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";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","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.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",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"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},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","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions: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,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions: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,n){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",controller:"AgentsChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions: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,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},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","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){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",["ngMaterialDateRangePicker","app.dashboards.general.user"]).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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",nolimit:!0})}],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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions: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,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions: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,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",controller:"AgentsFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions: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,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions: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,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions: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,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions: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,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.jscripty",{abstract:!0,url:"/jscripty"}).state("app.jscripty.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/projects.html",controller:"JscriptyProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/edit/view.html",controller:"JscriptyProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.addPart("app/main/apps/jscripty")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.jscripty",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions: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,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions: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,n){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",controller:"AgentsMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions: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,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions: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,n){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},authenticate:!0,permissionId:1510}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:1510}).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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:1510}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions: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,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions: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,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",controller:"AgentsOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).config(e)}(),function(){"use strict";function e(e,n,t,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,securePassword,callRecordingEncryption,chatTimeout,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:1400,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?tab",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:1400,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",{latest:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions: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,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions: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,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",controller:"AgentsSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions: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,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions: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,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},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","Auth",function(e,n){return n.hasRole("admin")?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,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",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,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions: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,n){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,t38pt_udptl,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions: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,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},authenticate:!0,permissionId:411}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:411}).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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:411}).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:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){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","Auth",function(e,n){return n.hasRole("admin")?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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions: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,n){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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions: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,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},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","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",controller:"AgentsWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),n.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).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){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,i,o,n,s,r,l){var d;return{getToken:e,getCurrentUser:function(){return d},getPermissions:h,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return t(e)})},hasModulePermissions:function(i){return o(function(a,n){g()?a(!0):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};g()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!d&&d.role===e},hasPermission:t,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:d.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return f().then(function(){_.includes(d.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!g())return f().then(function(){a.forEach(function(e){_.includes(d.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:p,isAdmin:g,isLoggedIn:function(){return!!e()},isTelephone:function(){return"telephone"===d.role},isUser:v,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return i.put("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(d=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),b("LOCAL_LOGIN")}).then(function(){if(p()&&1===d.showWebBar&&d.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return p()&&0!==d.showWebBar?c(e):g()||v()?m(!0):void 0}).then(function(e){d=_.assign(d,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(u(),e()):o.resolve().then(function(){return p()&&0!==d.showWebBar?o(function(e,n){r.user.logout({id:d.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):g()||v()?m(!1):void 0}).then(function(){u(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return g()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:c,reloadPermissions:f,removeCookies:u,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?h(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(d=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){d=_.merge(d,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return b("SSO_LOGIN"),"/api/auth/"+e}};function e(){return i.get("motion.token")}function c(e){return o(function(n,t){r.user.login({id:d.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function m(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:d.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(){i.remove("motion.token"),d&&(n.localStorage.removeItem("motion.user:"+d.id),n.localStorage.removeItem("motion.authenticationtype"),d=null)}function p(){return"agent"===d.role}function g(){return"admin"===d.role}function v(){return"user"===d.role}function t(e){return!!d&&_.includes(d.permissions,e)}function h(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function f(){return o(function(n,t){h(d.userProfileId).then(function(e){d.permissions=e,n()}).catch(function(e){t(e)})})}function b(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.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(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){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,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,n,t,a){var i=a[0],s=a[1];s.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("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}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){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,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,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;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$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,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.off("click")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(u,t,p,e,a,i,n,g,s,v,h,f,b,o,A){var E=this,r=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],l=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function d(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){new Promise(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){l.webrtc=_.pick(E.conf,r),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(l))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function c(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",u.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function m(n){return h.user.getVoicePrefixes({id:E.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function x(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function N(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function D(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function P(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(l.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){E.showDialpad=!1})}}),E.$onInit=function(){d(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||E.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},m)}}r?(o.call_id=e.request.call_id,n&&P(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&P(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),o.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),o.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),o.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?D(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),o.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),o.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=D(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),o.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=D(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),o.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return m(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){c()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return m(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):c():c()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),c())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=x,u.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!1)))})}),u.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),u.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return m(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:N(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:N(E.sessions[t],"requestFailed","top right",3e3)}})})}),u.$on("$destroy",function(){console.debug("$destroy event fired"),o.removeAllListeners("webbar:originate"),o.removeAllListeners("webbar:hangup"),o.removeAllListeners("webbar:answer"),o.removeAllListeners("webbar:hold"),o.removeAllListeners("webbar:unhold"),o.removeAllListeners("webbar:transfer"),o.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={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=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));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)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){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,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){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(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){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,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.setupSteps()}}}}).directive("msHorizontalStepperStep",function(){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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).directive("msVerticalStepperStep",function(){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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.find(".ms-stepper-step-content").hide()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(n()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{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"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var n=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}}).directive("msWidgetBack",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return Promise.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n)return n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)});c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,n){return-1<n.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],n=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.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"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).join("|"),"gi"),i='/* 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(a,function(e){return t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={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"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{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"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{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"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){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"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{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 n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.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:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.progresslogin=!1,r.googleSsoEnabled=!1,r.login=function(){return r.progresslogin=!0,r.message="",s.login(r.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){r.message=e.data?e.data.message:e.message}).finally(function(){r.progresslogin=!1})},r.loginOauth=function(e){r.message="",t.location.href=s.loginSSO(e)},r.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),r.progresslogin=!0,e.put("motion.token",n.params.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){r.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}r.googleSsoEnabled=o.googleSsoEnabled},r.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,r.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"]},r.treeCustomEvents={select_node:function(e,n){r.currentNode=n.node}},r.copyReport=function(){var t;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.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.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.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.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(n){var a={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(a,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){return n[a[e]].describe().$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.getReportFields()},c.deleteConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){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:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){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"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.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(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){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),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.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),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:t}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=t),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(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(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={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:["sms_account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],sestektts:["text"],lumenvoxasr:["grammar"],sestekasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],sesteknda:["text","ndauth_url","username","password","ndassistant_url"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingFormat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){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"}]}).factory("ispeechAsrLanguage",function(){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)"}]}).factory("ispeechTtsLanguage",function(){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"}]}).factory("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).factory("googleTtsLanguage",function(){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"}]}).factory("googleAsrLanguage",function(){return[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.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:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.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:v.rows||[]}})},I.saveProjectAs=function(e){a.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:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.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:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.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:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.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&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.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","$q","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"},{type:"upload",name:"Upload",icon:"icon-upload"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})},i.card_type="online",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",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||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"chat",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("chat_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userChatQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userChatQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.chatPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.chatPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("chat_queue:save"),o.removeAllListeners("userChatQueue:remove"),o.removeAllListeners("userChatQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.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},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.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(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,c.ListId=c.contact.ListId||void 0):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=m,c.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}},c.getDateFromString=function(e){return null===e?void 0:new Date(e)}}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.duplicateContact=function(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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});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:[],license:null,setting:null,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.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(){console.log("CANCEL")})},S.editHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},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.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.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"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.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"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,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.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/"+o.toLowerCase()+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,i,s,o,e,t,a,r,l,d,c,m){var u=this;function p(){var e=u.selectedDisposition?u.selectedDisposition.name.toLowerCase():void 0;return{id:u.call.uniqueid,disposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,secondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,thirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?l.getCurrentUser().id:null,OwnerId:l.getCurrentUser().id}}function g(e){n.hide([e,u.autoClose])}u.isReschedule=!1,u.recallme=!1,u.queueCampaign=void 0,u.queueCampaigns={count:0,rows:[]},u.dispositions=_.orderBy(_.concat([],e.rows,t.rows),["name"],["asc"]),u.contact=r,u.call=a,u.note=u.call.note||void 0,u.dialerCall=!1,u.hasBlackLists=!1,u.availableCalls=c,u.autoClose=m,u.hopper={minDate:new Date,dateTime:new Date},u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]?(u.dialerCall=!0,o.voiceQueue.getBlackLists({id:u.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(u.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):o.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.onDispositionChange=function(e){switch(e){case"first":u.selectedDisposition=u.firstLevelDisposition,u.anySecondLevelDisposition=_.some(u.dispositions,["ParentId",u.firstLevelDisposition.id]),u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.anyThirdLevelDisposition=!1;break;case"second":u.selectedDisposition=u.secondLevelDisposition,u.anyThirdLevelDisposition=_.some(u.dispositions,["ParentId",u.secondLevelDisposition.id]);break;case"third":u.selectedDisposition=u.thirdLevelDisposition}},u.clearDispositionSelection=function(e){"second"===e?(u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.selectedDisposition=u.firstLevelDisposition):"third"===e&&(u.thirdLevelDisposition=void 0,u.selectedDisposition=u.secondLevelDisposition)},u.saveDisposition=function(e){u.selectedDisposition=_.isNil(e)?u.selectedDisposition:{name:e},e&&(u.firstLevelDisposition=u.selectedDisposition);u.call.note=u.note,o.voiceCallReport.update({id:u.call.uniqueid,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,note:u.note,UserId:l.getCurrentUser().id,ContactId:u.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:u.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.dialerCall&&(o.cmHopperFinal.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(u.selectedDisposition))g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"");else switch(u.selectedDisposition.name.toLowerCase()){case"blacklist":u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(u.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+u.selectedDisposition}),u.selectedDisposition=void 0}).then(function(e){e&&g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}(u.call.variables["xmd-voicequeueid"]);break;case"reschedule":u.isReschedule=!0,u.recallme=!1;break;case"recallme":u.isReschedule=!0,u.recallme=!0;break;default:g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}},u.closeDialog=function(){n.cancel()},u.saveReschedule=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:u.recallme?l.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:u.dialerCall?Number(u.call["xmd-voicequeueid"]):u.queueCampaign?u.queueCampaign.id:null,scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:u.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){u.dialerCall&&o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:u.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(u.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).finally(function(){u.disable=!1,g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,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"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){s.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),o.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get().$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),s.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get().$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":h.draft.content.originalMessage=e?_.find(h.interaction.Messages,["id",e]):h.interaction.Messages[h.interaction.Messages.length-1],E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(s.draft=void 0,t.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking: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,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=i[0],a={waiting:0,talking:0,pTalking: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,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0};_.forIn(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$state","Auth","license"],angular.module("app.dashboards").filter("secToTime",function(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.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},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"fax",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("fax_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userFaxQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userFaxQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.faxPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.faxPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("fax_queue:save"),o.removeAllListeners("userFaxQueue:remove"),o.removeAllListeners("userFaxQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intDeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intVtigerAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intZohoAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),t.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"mail",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("mail_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userMailQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userMailQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.mailPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.mailPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("mail_queue:save"),o.removeAllListeners("userMailQueue:remove"),o.removeAllListeners("userMailQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.restartplugin=function(e,n){var t=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=2,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.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","$q","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber: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,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.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","$q","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"outbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},m.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(_.merge(n,_.pick(e,u)),_.isNil(e.startPredictive)&&(n.startPredictive=void 0))}),o.on("userVoiceQueueRt:save",function(e){var n=_.find(m.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueueRt:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.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.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5: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,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]},{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"openchannel",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("openchannel_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userOpenchannelQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userOpenchannelQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.openchannelPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.openchannelPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("openchannel_queue:save"),o.removeAllListeners("userOpenchannelQueue:remove"),o.removeAllListeners("userOpenchannelQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["customizations","api","toasty","license","Auth"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.channels=[{name:"voice",icon:"icon-phone"},{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"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){n.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),g(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 n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),g(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 n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),m.success({title:_.startCase("Network")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}}e.$inject=["smtps","api","toasty","license","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.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(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");t.show(n).then(function(){t.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"sms",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("sms_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userSmsQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userSmsQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.smsPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.smsPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("sms_queue:save"),o.removeAllListeners("userSmsQueue:remove"),o.removeAllListeners("userSmsQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.agents=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="agents",f.listOrder="",f.listOrderAsc=null,f.selectedAgents=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,page:1},f.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'",ngIf:"vm.agent.showWebBar == 1"},{option:"wss",value:"'wss'",ngIf:"vm.agent.showWebBar == 1"},{option:"tls",value:"'tls'",ngIf:"vm.agent.showWebBar == 1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayextensionMonitor=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:f.agents?f.agents.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getAgents=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Agents",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditAgent=function(e,n){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:f.agents.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteAgent=y,f.exportSelectedAgents=function(){var e=angular.copy(f.selectedAgents);return f.selectedAgents=[],e},f.deleteSelectedAgents=function(e){var n=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+f.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedAgents.forEach(function(e){y(e)}),f.selectedAgents=[]})},f.deselectAgents=function(){f.selectedAgents=[]},f.selectAllAgents=function(){f.selectedAgents=f.agents.rows};var b=!0,A=1;function E(e){f.agents=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.agents.rows,{id:e.id}),f.agents.count-=1,f.agents.rows.length||f.getAgents(),p.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","agents","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:"bull"===c.channel?"voice":c.channel,type:c.direction,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:c.direction,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.QUEUEADD_AGENT_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),labelSelected:s.instant("STAFF.SELECTED_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.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"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),t.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.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:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.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:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.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:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.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:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),t.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.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,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function m(e){switch(e){case"sound":if(!d.application.appdata)return;return[{key:"save_name",value:d.application.appdata.split("/").pop()}];case"squareProject":if(!d.application.project)return;return[{key:"name",value:d.application.project.split(",")[1]}];case"tag":if(!d.application.tag)return;return[{key:"name",value:d.application.tag}];case"trunk":if(!d.application.trunk)return;return[{key:"name",value:d.application.trunk}];case"user":if(!d.application.user&&!d.application.users)return;return d.application.user?[{key:"name",value:d.application.user.split("/")[1]}]:_.map(d.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!d.application.name)return;return[{key:"name",value:d.application.name}];case"voiceContext":if(!d.application.context)return;return[{key:"name",value:d.application.context}];case"voiceMail":if(!d.application.voiceMail)return;return[{key:"mailbox",value:d.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!d.application.queue)return;return[{key:"name",value:d.application.queue}]}}function u(){o.getResourcesByRole(d.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},m("trunk")).then(function(e){d.trunks=e}).catch(function(){s.error({title:i.instant("TOOLS.TRUNKS"),msg:i.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function p(){o.getResourcesByRole(d.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},m("sound")).then(function(e){d.sounds=e}).catch(function(){s.error({title:i.instant("TOOLS.SOUNDS"),msg:i.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function g(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=m("user"),t=[o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();d.users={rows:n,count:n.length}}).catch(function(){s.error({title:i.instant("STAFF.USERS"),msg:i.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function v(){(d.application.appdata||"custom"===d.application.appType)&&e.hide(d.application),e.hide()}d.currentUser=r.getCurrentUser(),d.application=angular.copy(n),d.crudPermissions=l,d.errors=[],d.init=function(){d.application.appdata&&function(){var e=[];switch(d.application.appType){case"agi":d.application.project=d.application.appdata;break;case"dial":e=d.application.appdata.split(","),d.application.tech=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"externalDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"goTo":e=d.application.appdata.split(","),d.application.context=c(e[0]),d.application.extension=c(e[1]),d.application.priority=c(e[2]);break;case"internalDial":e=d.application.appdata.split(","),d.application.user=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"outboundDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]),d.application.prefix=d.application.phone?d.application.phone.split("$")[0]:void 0,d.application.callerId=d.application.callerID?"CALLERID(all)="+d.application.callerID:void 0;break;case"playback":e=d.application.appdata.split(","),d.application.appdata=c(e[0]),d.application.options=c(e[1]);break;case"queue":e=d.application.appdata.split(","),d.application.queue=c(e[0]),d.application.options=c(e[1]),d.application.URL=c(e[2]),d.application.sound=c(e[3]),d.application.timeout=c(e[4]),d.application.agi=c(e[5]),d.application.macro=c(e[6]),d.application.gosub=c(e[7]),d.application.rule=c(e[8]),d.application.position=c(e[9]);break;case"ringGroup":e=d.application.appdata.split(","),d.application.users=e[0].split("&"),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"set":e=d.application.appdata.split("="),d.application.name=e[0],d.application.value=e[1];break;case"voicemail":e=d.application.appdata.split(","),d.application.voiceMail=c(e[0]),d.application.options=c(e[1])}}();switch(d.application.appType){case"agi":o.getResourcesByRole(d.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},m("squareProject")).then(function(e){d.projects=e}).catch(function(){s.error({title:i.instant("CALLYSQUARE.CALLYSQUARE")+" "+i.instant("CALLYSQUARE.PROJECTS"),msg:i.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":u();break;case"goTo":o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},m("voiceContext")).then(function(e){d.contexts=e}).catch(function(){s.error({title:i.instant("VOICE.CONTEXTS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":g();break;case"outboundDial":o.getResourcesByRole(d.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},m("tag")).then(function(e){d.tags=e}).catch(function(){s.error({title:i.instant("TOOLS.TAGS"),msg:i.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),u();break;case"playback":p();break;case"queue":p(),o.getResourcesByRole(d.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},m("voiceQueue")).then(function(e){d.queues=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEQUEUES"),msg:i.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":g();break;case"set":o.getResourcesByRole(d.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},m("variable")).then(function(e){d.variables=e}).catch(function(){s.error({title:i.instant("TOOLS.VARIABLES"),msg:i.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":o.getResourcesByRole(d.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},m("voiceMail")).then(function(e){d.voiceMails=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEMAILS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},d.saveRoutingApp=function(){d.errors=[],function(){var e=[];switch(d.application.appType){case"agi":d.application.appdata=d.application.project;break;case"dial":e[0]=d.application.tech,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"goTo":e[0]=d.application.context,e[1]=d.application.extension,e[2]=d.application.priority,d.application.appdata=e.join(",");break;case"internalDial":e[0]=d.application.user,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"outboundDial":d.application.phone=t.cutdigits?(d.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(d.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?d.application.options=d.application.options.replace("U(xcally-mixmonitor-context)",""):d.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(d.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"playback":e[0]=d.application.appdata,e[1]=d.application.options,d.application.appdata=e.join(",");break;case"queue":e[0]=d.application.queue,e[1]=d.application.options,e[2]=d.application.URL,e[3]=d.application.sound,e[4]=d.application.timeout,e[5]=d.application.agi,e[6]=d.application.macro,e[7]=d.application.gosub,e[8]=d.application.rule,e[9]=d.application.position,d.application.appdata=e.join(",");break;case"ringGroup":e[0]=d.application.users.join("&"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"set":e[0]=d.application.name,e[1]=d.application.value,d.application.appdata=e.join("=");break;case"voicemail":e[0]=d.application.voiceMail,e[1]=d.application.options,d.application.appdata=e.join(",")}}(),v()},d.closeDialog=v}e.$inject=["$mdDialog","$q","$translate","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r,l){var d=this;function c(){var e=[{key:"name",value:d.interval.IntervalId}];s.getResourcesByRole(d.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){d.intervals=e}).catch(function(){i.error({title:t.instant("TOOLS.INTERVALS"),msg:t.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function m(e){n.hide(e)}d.currentUser=o.getCurrentUser(),d.interval=angular.copy(e),d.intervals=a||{rows:[],count:0},d.types=["always","custom","list"],d.crudPermissions=r,d.errors=[],d.daysOfWeek=l.getDaysOfWeek(),d.monthNumber=l.getMonthNumber(),d.monthName=l.getMonthName(),d.daysOfMonth=l.getDaysOfMonth(),d.initialize=function(){if("*,*,*,*"===d.interval.interval)return d.type=d.interval.IntervalId&&d.interval.application?"list":"always",void("list"===d.type&&c());d.type="custom";var e=d.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),d.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),d.timeRangeTo=s}"*"!==t&&(d.dayOfWeekFrom=t.split("-")[0],d.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(d.monthDayFrom=a.split("-")[0],d.monthDayTo=a.split("-")[1]);"*"!==i&&(d.monthFrom=i.split("-")[0],d.monthTo=i.split("-")[1])},d.onTypeChange=function(){"list"===d.type&&0===d.intervals.count&&c()},d.saveInterval=function(){d.errors=[],d.interval.interval=function(){if(["always","list"].includes(d.type))return"*,*,*,*";var e=[];if("*"!==d.timeRangeFrom&&d.timeRangeFrom&&d.timeRangeTo){var n=(d.timeRangeFrom.getHours()<10?"0":"")+d.timeRangeFrom.getHours()+":"+(d.timeRangeFrom.getMinutes()<10?"0":"")+d.timeRangeFrom.getMinutes(),t=(d.timeRangeTo.getHours()<10?"0":"")+d.timeRangeTo.getHours()+":"+(d.timeRangeTo.getMinutes()<10?"0":"")+d.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return d.dayOfWeekFrom?d.dayOfWeekTo?e.push(d.dayOfWeekFrom+"-"+d.dayOfWeekTo):e.push(d.dayOfWeekFrom):e.push("*"),d.monthDayFrom?d.monthDayTo?e.push(d.monthDayFrom+"-"+d.monthDayTo):e.push(d.monthDayFrom):e.push("*"),d.monthFrom?d.monthTo?e.push(d.monthFrom+"-"+d.monthTo):e.push(d.monthFrom):e.push("*"),e.join()}(),"list"!==d.type&&(d.interval.IntervalId=null);m(d.interval)},d.closeDialog=m}e.$inject=["$mdDialog","$translate","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).catch(function(e){o.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","$q","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording","routealias"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.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,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting),_.merge(n,_.pick(e,u)))}),o.on("userVoiceQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userVoiceQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueue:remove"),o.removeAllListeners("userVoiceQueue:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),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.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;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.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7: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,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.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},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).catch(function(e){o.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","$q","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.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"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.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"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voiceRecording=c||e.params.voiceRecording||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},u.saveVoiceRecording=function(){r.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h){var f=this;function b(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceRecordings=r||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceRecordings=[],f.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:f.crudPermissions})},f.runtranscriberuntranscribesentiment=b,f.runtranscribesentimentruntranscribesentiment=A,f.runsentimentruntranscribesentiment=E,f.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){I(e)},function(){console.log("CANCEL")})},f.success=T,f.getVoiceRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceRecording.get(f.query,T).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceRecordings",f.promise=m.userProfile.getResources(f.query,T).$promise)},f.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:f.voiceRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceRecording=I,f.exportSelectedVoiceRecordings=function(){var e=angular.copy(f.selectedVoiceRecordings);return f.selectedVoiceRecordings=[],e},f.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+f.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceRecordings.forEach(function(e){I(e)}),f.selectedVoiceRecordings=[]})},f.deselectVoiceRecordings=function(){f.selectedVoiceRecordings=[]},f.selectAllVoiceRecordings=function(){f.selectedVoiceRecordings=f.voiceRecordings.rows},f.runtranscribeSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){b(e,n)}),f.selectedVoiceRecordings=[]},f.runtranscribesentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){A(e,n)}),f.selectedVoiceRecordings=[]},f.runsentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){E(e,n)}),f.selectedVoiceRecordings=[]};var y=!0,S=1;function T(e){f.voiceRecordings=e||{count:0,rows:[]}}function I(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceRecordings.rows,{id:e.id}),f.voiceRecordings.count-=1,f.voiceRecordings.rows.length||f.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){y?o(function(){y=!1}):(n||(S=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=S),f.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"whatsapp",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsWhatsappRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("whatsapp_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userWhatsappQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userWhatsappQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.whatsappPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.whatsappPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("whatsapp_queue:save"),o.removeAllListeners("userWhatsappQueue:remove"),o.removeAllListeners("userWhatsappQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),v(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{field:"name",route:{model:"disposition",action:"get",params:{fields:"name,level",nolimit:!0,level:"first"}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{field:"name",route:{model:"disposition",action:"get",params:{fields:"name,level",nolimit:!0,level:"second"}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{field:"name",route:{model:"disposition",action:"get",params:{fields:"name,level",nolimit:!0,level:"third"}}}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:4,hidden:function(){return!r.cm||!o.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:5,hidden:function(){return!r.dialer||!o.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:6,hidden:function(){return!r.voice||!o.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:7,hidden:function(){return!r.voice||!o.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:8,hidden:function(){return!r.voice||!o.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:9,hidden:function(){return!r.chat||!o.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:10,hidden:function(){return!r.mail||!o.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=n.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",t.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),n("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){_.isNil(e)&&s.cmHopper.update({id:d.preview.id,UserId:null}),a.hide()}d.customFieldsMap=l&&l.rows?_.mapValues(_.keyBy(l.rows,function(e){return"cf_"+e.id}),"name"):{},d.errors=[],d.hopperIds=[],d.preview=o,d.currentUser=r,d.originated=!1,d.disable=!1,d.disableGetContact=!1,d.hopperIds.push(d.preview.id),d.originatePreview=function(){d.originated=!0,d.disable=!0,_.isEmpty(d.preview)?(i.error({title:"Message",msg:"Contact not available"}),d.disable=!1,d.hopperIds=[],c(!0)):s.rpc.getVoiceQueuesPreview({id:d.preview.id}).$promise.then(function(e){c(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),c(!0)}).finally(function(){d.disable=!1,d.hopperIds=[]})},d.closeDialog=c,d.nextContact=function(){return d.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:d.hopperIds,direction:"next"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(d.disableGetContact=!1,d.hopperIds=[],404===e.status)d.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.previousContact=function(){if(d.disableGetContact=!0,1<d.hopperIds.length){var e=_.without(d.hopperIds,d.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(d.hopperIds,function(e){return e==d.preview.id}),d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e)}).catch(function(e){if(404===e.status)d.hopperIds=[d.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){d.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},d.getFirstAvailableContact=function(){return d.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[d.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){d.disableGetContact=!1})},d.isCustomField=function(e){return _.startsWith(e,"cf_")},d.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},d.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){d.originated||s.cmHopper.update({id:d.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","currentUser","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.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"}],T.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"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"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.languages.hasOwnProperty(e.code)){return void l.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"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role&&T.currentUser.name===e.membername){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.unpause=function(){return f.user.unpause({id:T.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.preview=function(n){return T.disable=!0,f.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(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",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","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/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT: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.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,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:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.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,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=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),t.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),t.appendChild(a),n.appendChild(t),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=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-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 s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.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,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},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,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<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="",n=0;n<arguments.length;n++)e+=arguments[n],n<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 n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}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,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};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,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t:0,this.height=null!=a?a:0}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,n,t,a){this.x=e,this.y=n,this.width=t,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 n=Math.min(this.x,e.x),t=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=n,this.y=t,this.width=a-n,this.height=e-t}},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(l,d,c){var m=0,u=function(){for(var e=!1,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&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 n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},getCurrentStyle: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,n){return function(){return n.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,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var 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,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},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:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection:document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0,getPrettyXml:function(e,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";if(null!=e.outerHTML)return e.outerHTML;var n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,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",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"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 n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,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){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=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):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!isNaN(e)},mod:function(e,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*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,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),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 o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),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"};function mxEventObject(e){this.name=e,this.properties=[];for(var n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}function mxEventSource(e){this.setEventSource(e)}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 n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.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)&&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,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,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,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){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!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(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 n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?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||document.documentMode<9)?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,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(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"};function mxXmlRequest(e,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}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=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,n){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,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),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,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}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,n,t,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=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=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),n.appendChild(this.td),e.appendChild(n),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 n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){navigator.userAgent.indexOf("Presto/2.5")<0&&(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 n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},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 a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),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,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"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 t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{t=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},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 t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),s=this.table.style.height,o=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 n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"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,n){var t=document.createElement("tr"),a=document.createElement("td");t.appendChild(a);a=document.createElement("td");var 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(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},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(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"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,n,t){return e.getCellAt(n,t)},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,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,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 n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"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 n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.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,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),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");a=this.isGridEnabled()&&e.isGridEnabledEvent(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,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,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"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=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},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="
",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,n,t){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,n,t){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,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},mxSession.prototype.encodeChanges=function(e,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.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 n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;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 n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}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,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}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 n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));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),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=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==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){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,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.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=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t:0)-i.scrollLeft-i.clientWidth,this.dx<0&&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=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=n+a-i.scrollTop-i.clientHeight,this.dy<0&&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=n-i.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=o())):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)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t: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,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}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,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},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 n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.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),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,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 n=0;n<this.cells.length;n++)this.animateCell(cells[n],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,n,t){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 s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.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,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],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,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),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,n){this.state.dx+=e,this.state.dy+=n},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,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},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,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){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 n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},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 n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),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 n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},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 n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},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 n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},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 n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"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,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,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(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),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,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;e.alpha<1&&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()),e.alpha<1&&this.node.setAttribute("stroke-opacity",e.alpha);var n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},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 n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=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",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*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),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+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(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+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,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=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<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),u.alpha<1&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,s,o,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),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);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,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(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*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,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==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),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+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,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?1:0))):((c=document.createElement("div")).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"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,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};function mxGuide(e,n){this.graph=e,this.setStates(n)}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}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,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},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,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"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))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?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,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(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,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"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"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=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(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):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")).stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-t/2)*u.scale)+"px",g.style.top=this.format(n+(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-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&a<p&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+t*g*this.state.scale)+"px",l.style.top=this.format(n+a*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}else this.plainText(e,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.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),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"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=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},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)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-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 t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),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 t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.call(this,A.y+A.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=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}return e},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 n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&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 n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].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,n=null;if(null!=this.node.ownerSVGElement)(e=new mxSvgCanvas2D(this.node,!1)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}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)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),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 n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),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 n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}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 n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/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,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),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 n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},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,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o: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=v,this.wrap=null!=h&&h,this.clipped=null!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){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,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=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-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,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,n,t,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,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,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 n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,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!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,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 n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="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 t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.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=n[o+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(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+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 n=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 t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=this.wrap?this.bounds.width:this.offsetWidth*this.scale,this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.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,n,t,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 n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=this.opacity<1?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(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=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{var o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"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);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),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 n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"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,n,t,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,n,t,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,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),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,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,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 n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"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,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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 new mxRectangle(e=i==mxConstants.ALIGN_CENTER?e+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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 new mxRectangle(e=i==mxConstants.ALIGN_RIGHT?e+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,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 n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.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,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},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,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=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(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,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 n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=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!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.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,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=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);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.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,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.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=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.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,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=this.graph.getView(),r=0;r<e.length;r++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!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 n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,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?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.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 n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),this.radiusSquared[a]=this.radius[a]*this.radius[a]}n.beginUpdate();try{for(a=0;a<s;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var p=this.graph.getConnections(this.vertexArray[a],e);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[d]);var g=this.indices[r];this.neighbours[a][d]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.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),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},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 n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),(e=mxCellPath.create(e))<a?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.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,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},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,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},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,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},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 n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},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 n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])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 n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].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,n){this.temp[e-this.minRank-1]=n},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,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){l=new mxGraphHierarchyEdge(r);for(var 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=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).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 s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,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(var n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[r]=[];for(r=0;r<a.length;r++)for(var l=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,a)}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 n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");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 n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[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,s=Math.max(s,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]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)m==(u=i.getX(l-1))?(c[l-i.minRank-2]=m,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)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,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+2*r+1]=m;u=Math.max(u,m)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[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!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?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,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[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=null!=(g=r.view.getState(p))?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,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=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(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.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,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[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&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}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,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.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,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},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,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==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,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=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 n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=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 n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):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,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==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,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},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,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},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(this.updateLevel--,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,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[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(n,i),t)},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),n=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=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},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 n=this.getValue();return this.setValue(e),n},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,n){return n?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,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},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,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},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,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.y-d,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}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 n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.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 s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.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 n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*c/this.scale-this.y0/this.scale+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){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!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"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=n-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),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=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,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,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,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},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,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(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 null!=(e=this.getVisibleTerminalState(e))?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,n){n?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 n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].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 n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),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 n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,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),n=this.graph.isLabelClipped(e.cell),t=this.graph.isWrapping(e.cell);if(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;else if(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+=" "),a=mxUtils.htmlEntities(a,!1),t?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),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);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(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,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.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=o,this.textarea.style.color=s,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(t),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==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,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"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.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,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(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+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(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)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==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,n){mxCellRenderer.prototype.defaultShapes[e]=n},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,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.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,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).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 t,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,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),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 n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),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 n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},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,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.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 n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,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 n=e.view.graph,t=e.view.scale,a=n.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*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(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),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,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),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&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==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(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,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=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=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,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,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;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),d<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(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*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],l=[],(r=[])[0]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*s<m&&2*s<c&&(0<(r[0]&v[0])&&0<(l[1]&v[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]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*s<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*s<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[d],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=o)<1&&(d+=4),(v-=o)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-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]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-1][1]);var h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<o)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n: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,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,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,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}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,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t: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,n){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,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,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,n){null!=e&&(this.graph=e,this.target=n||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,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t: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(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&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()})))}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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,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 n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=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!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},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 n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){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*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=this.currentRoot&&null!=e)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.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*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(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(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==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==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}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),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},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 n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),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){var n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},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 a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),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,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},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 n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"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 n=[],t=0;t<e.length;t++){var a=e[t];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&&mxUtils.indexOf(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},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 n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!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 n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&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 n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),this.isEnabled()&&!mxEvent.isConsumed(e)&&!t.isConsumed()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,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,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);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),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,this.scale)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,a)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.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 n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}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(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,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,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,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 s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[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(t[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/s-o.x,l[0].y/s-o.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/s-o.x,l[m].y/s-o.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 t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=c){var m=this.view.getState(c),u=null!=m?m.origin:l;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!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)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&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",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[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/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[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,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,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],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!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){var n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);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 s=i.offset;null!=s&&(s.x+=a.x-i.x,s.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[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),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",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!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(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){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!=n.point){var l=t=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"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=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])){if(null!=(r=this.model.getGeometry(e[i]))){var s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.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/n-t.x+l,c[0].y/n-t.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 v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/n-t.x+l,c[v].y/n-t.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,n){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(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},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,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},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,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.removeAttribute("transform"),null!=this.shiftPreview1){for(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(t.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(t.setAttribute("transform","translate("+e+","+n+")"),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";var s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,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,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=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=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(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 n=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 t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},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 n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(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 n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==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,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(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,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=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 s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){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 n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?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 n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},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 n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.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 n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},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){var n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[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 n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.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 n=this.view.getState(e);return e=null!=n?n.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 n=this.view.getState(e);return e=null!=n?n.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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){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,n){return this.isValidSource(e)&&this.isValidTarget(n)},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)return!1;var n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.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,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){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(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t: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,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>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,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],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)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+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>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,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,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},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,n,t){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(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),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(n,t,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},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 n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),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-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.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||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}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 n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2)):((a=new mxPoint).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)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},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 n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.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,n){!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 n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.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,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.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),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.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,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,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 n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=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 n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,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 n=this.graph.view.getState(e);return e=null!=n?n.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 n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e))if(null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}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,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},mxGraphHandler.prototype.createPreviewShape=function(e){return(e=new mxRectangleShape(e,null,this.previewColor)).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,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),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 n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.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,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.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,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},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)!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,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,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.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,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);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(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},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 n=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,n)}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 a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,n){return n=mxCellMarker.prototype.getCell.apply(a,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}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),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,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},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)return null;this.iconState=e;var n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.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=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).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 n=0;n<e.length;n++)e[n].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,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){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(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,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 n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.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(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),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)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),(this.icons=null)!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=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(t,a,n.getEvent(),n.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),n.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,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,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==n&&((u=this.graph.getPointForEvent(t,!1)).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",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),(e=new mxGeometry).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,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),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(),n):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 s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).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(t)}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],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.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,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.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,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-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),mxGraphHandler.prototype.maxCells<=0||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 n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),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)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||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())).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,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,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(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==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,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),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()),m=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.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 a=this.graph.isGridEnabledEvent(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},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,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,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 n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,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&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,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){var 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||mxGraphHandler.prototype.maxCells<=0)&&(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())).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),a=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=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,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;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,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){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()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.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&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(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 n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,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,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.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)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);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(t));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(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.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,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=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-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.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 t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){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,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[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=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=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,n),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 n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.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 s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,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 n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.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,n){if(this.graph.isCellBendable(this.state.cell)){var t=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],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}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,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},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 n=this.getFunction(e);null!=n&&(n(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,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),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,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+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,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?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,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},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,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.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,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},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="
",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 n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),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,n){e.showProperties(n)}),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,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),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 n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),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 n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),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,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},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,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return(e=new mxSwimlaneManager(e,!1)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},e},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(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});s.getModel().addListener(mxEvent.CHANGE,e)},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,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},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(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);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 n=mxUtils.load(e).getXml();this.readGraphModel(n.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,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.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,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),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 n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.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 n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}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 n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-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){n.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 n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}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,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},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 n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!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(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},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 n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},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),c.removeAttribute("as"))}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},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 n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+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,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},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,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},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(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,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.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",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[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<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=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&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.toolbar.selectMode(v,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}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,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});this.container.style.overflow="hidden",(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(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.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,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[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","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[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"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax","googleasr","lumenvoxasr","tildeasr","dialogflow","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[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"],[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=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&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)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.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.isEditingEnabled()?this.createKeyHandler(n):null;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(),this.refresh()},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=190,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.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=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":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+=1<=e.value.getAttribute("priority")?"":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+=-1<=e.value.getAttribute("timeout")?"":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+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":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")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":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=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":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"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":case"sestektts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":case"sestekasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUrlInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n";break;case"sesteknda":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("ndauth_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("ndassistant_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("username")?"":mxResources.get("noUsernameSelected")+"\n",i+=""!==e.value.getAttribute("password")?"":mxResources.get("noPasswordSelected")+"\n";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{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"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\n"}return t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||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),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-this.menubarHeight-this.toolbarHeight-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 s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",this.diagramContainer.style.top=this.sidebarContainer.style.top,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=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"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.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",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.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),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 n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},EditorUi.prototype.executeLayout=function(e,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[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){}function Sidebar(e,n){this.editorUi=e,this.container=n,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 n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.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(n,"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,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.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(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);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[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.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[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],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(0<i.status){var s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/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(n),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=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.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 n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}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(e){var n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.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=t.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 n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.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",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.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(e){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==s.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(n),e.appendChild(t),e.appendChild(a),this.container=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 n=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=Number(e.getAttribute("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 t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t: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 s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.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)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),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,n=this.outline;if(null!=e.container&&null!=n.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="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.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 t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,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(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+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 a=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();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+a.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;if(null==this.horizontalPageBreaks&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,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,n){this.data=e,this.filename=n,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("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),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","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),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=5<=document.documentMode?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{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=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),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"px",this.tooltipTitles&&null!=g&&0<g.length){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.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+t/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},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,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[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==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);var r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(t?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;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((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-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=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){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(n,t,a,e,i,s,o){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(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,a){var i=this.editorUi.editor.graph,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","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"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];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"lumenvoxtts":case"sestektts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"sestekasr":l=["grammar","options"],d=["/usr/local/unimrcp/data/grammar.xml",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];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","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_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;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];break;case"sesteknda":l=["ndauth_url","username","password","ndassistant_url","text","project","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!1,l)},"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,n,t,a){mxGraph.call(this,e,n,t,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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,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 n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[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 n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},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,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},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,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),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(e,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&1<this.graph.getSelectionCount()&&(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,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var n=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(n),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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.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+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=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("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.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+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,n=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},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 i=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){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()),0<a.getSelectionCount()){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(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){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},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,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,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 n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),mxEvent.consume(e)}))}},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/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),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-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>'),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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </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>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" 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="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </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 ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.length}})</span>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value"><span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),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 s20"></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"\n 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"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n 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"\n ng-class="{\'has-children\': vm.hasChildren}"\n 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 id="{{ node.id }}" 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 margin-right-20" 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 margin-right-20" 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"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input&Media Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered"></timer>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" disable-autocomplete="vm_pb.currentUser.privacyEnabled" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div id="{{\'div_session_\'+session.id.substr(0,32)}}" ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Anser" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1 && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length>1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title" privacy ng-cloak></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="local-audio" autoplay hidden=true></audio>\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak ng-keypress="vm.keyPress($event)">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" md-autofocus ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" class="md-inline-form" novalidate>\n <md-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="TOOLBAR.SETTINGS">Settings</span>\n <md-button class="md-icon-button" ng-click="vm.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 class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\n </md-dialog-content>\n\n <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.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$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/core/directives/ms-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.selectedResultIndex}" 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 \x3c!-- <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"\n 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"\n 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"\n 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\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n 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"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n 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"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\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)}" 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)}" 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-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground, \'font-size\': (widget.titleFontSize || 12) }" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),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="header" ui-view="header"></div>\n\n<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>\n\n<div id="footer" ui-view="footer"></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}" 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/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),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" class="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 ng-if="!vm.progressLogin">\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 <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <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> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\n\n <div ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" 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="fab fa-google" 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.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" autofocus>\n\n <div ng-messages="extractedReportForm[\'name\'].$error" ng-show="extractedReportForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($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 class="main scrollable" ms-scroll>\n\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.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'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="10">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="basename ">{{extractedReport.basename}}</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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus>\n\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 name="table" 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="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer 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="\'report_dial\'">Dial Report</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-option ng-value="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</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="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</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" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($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 class="main scrollable" ms-scroll>\n\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</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\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-if="vm_rc.crudPermissions.canEdit">\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}}\n </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}}\n </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}}\n </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" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-if="vm_rc.crudPermissions.canEdit" 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 <pre></pre>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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">{{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">{{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">{{gb.value ? \'Yes\' : \'No\'}}</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">{{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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-stretch-tabs="always" flex layout-fill 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-disabled="!vm.crudPermissions.canEdit" 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-disabled="!vm.crudPermissions.canEdit" 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 </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, vm.crudPermissions)">\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 class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</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-if="vm_rf.crudPermissions.canEdit" 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="vm_rf.crudPermissions.canDelete" 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" ng-if="vm_rf.crudPermissions.canEdit">\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" ng-if="vm_rf.crudPermissions.canEdit"></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" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\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)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></td>\n <td md-cell class="actions" ng-if="vm_rf.crudPermissions.canEdit">\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 Field\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 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 </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, vm.crudPermissions)">\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">{{ vm.valueReplacer(key, 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 md-progress="vm.promise">\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">{{ vm.valueReplacer(key, 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" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete && 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" ng-model-options="{ debounce: 1000 }" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n <div flex></div>\n <ms-search-bar on-search="vm.getReports()" query="vm.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.crudPermissions.canEdit && 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.crudPermissions.canEdit && 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 translate="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.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && 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 ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && 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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</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($event)" 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/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show 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.WEB_REPORT">Web 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>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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>\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 md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\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/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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($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\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 translate="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.png" /></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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|google_tts_language|ispeech_tts_language|ispeech_asr_language|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_language" 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]" ng-disabled="v.canSelect === false">{{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-disabled="!vm.crudPermissions.canEdit" 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\'" ng-disabled="v.canSelect === false">{{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\'" ng-disabled="v.canSelect === false">{{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" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr|googleasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" 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|text|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n \x3c!-- END TEXTAREA INPUT --\x3e\n\n \x3c!-- START URL INPUT --\x3e\n <input ng-switch-when-separator="|" ng-switch-when="ndauth_url|ndassistant_url|url" type="url" name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n \x3c!-- END URL 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" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\n \x3c!-- END TEXT INPUT--\x3e\n\n <div class="hint" ng-if="attribute.help">\n <span 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" ng-if="vm.crudPermissions.canEdit">\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 <md-button class="md-icon-button" ng-click="vm.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 <md-button class="md-icon-button" ng-click="vm.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 <md-button class="md-icon-button" ng-click="vm.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 <md-button class="md-icon-button" ng-click="vm.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/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</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/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 <md-button class="md-icon-button" ng-click="vm.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" ng-init="vm.onInit()">\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/cprojects.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-if="vm.crudPermissions.canEdit" 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" ng-model-options="{ debounce: 1000 }" 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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" 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 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 translate="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 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canDelete">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-if="vm.crudPermissions.canEdit" 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 <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($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\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="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</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>{{ \'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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</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 " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="CHAT.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" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.chatQueue.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="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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></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.saveChatQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.chatQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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="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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="CHAT.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" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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\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="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></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.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</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 name="ListId" ng-model="vm.chatWebsite.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'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 <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite" ng-init="vm.onInit()">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.chatCannedAnswer.description">\n\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$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.crudPermissions.canEdit && vm.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($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/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\n <md-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-content flex layout-padding>\n <pre ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" class="md-inline-form" novalidate>\n <md-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.chatProactiveAction.name" ng-required="true" autofocus>\n\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$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.crudPermissions.canEdit && vm.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($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}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></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.saveChatWebsite()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (vidaooForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</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 name="ListId" ng-model="vm.chatWebsite.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\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 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="chatWebsite-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n <form name="scriptForm" flex="100" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n </form>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container interval 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.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.SNIPPET">SNIPPET</span>\n </md-tab-label>\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" 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" ng-disabled="!vm.crudPermissions.canEdit">\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.showAgentAvatar" aria-label="ShowAgentAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus 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.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" 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" md-maxlength="255" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</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" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus 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.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\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" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform 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.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus 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.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction 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.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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" ng-disabled="!vm.crudPermissions.canEdit"><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 name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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 <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-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="chatWebsite-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 <div class="chatWebsite-detail-form-container agentavatar 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.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-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="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar 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.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-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="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar 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.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-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="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.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="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block" ng-if="item.type != \'upload\'">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\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.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\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.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\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.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\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.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" 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.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo 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.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\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 <md-tab-body>\n <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="CHAT.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedChatWebsiteApps.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.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.chatWebsiteApps.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.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($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.editChatWebsiteApp($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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editChatWebsiteApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\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.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" 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.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\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="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.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\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.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" 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/chat/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="CHAT.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'CHAT.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'CHAT.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'CHAT.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'CHAT.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'CHAT.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'CHAT.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'CHAT.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"CHAT.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"CHAT.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"CHAT.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"CHAT.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"CHAT.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"CHAT.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-label=\"{page: '{{'CHAT.PAGE' | translate}}:', rowsPerPage: '{{'CHAT.ROWSPERPAGE' | translate}}:', of: '{{'CHAT.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/chat/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="CHAT.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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/chat/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($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 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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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\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\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\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\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" md-maxlength="255">\n\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 ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</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\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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\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 <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()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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="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 <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="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: 1000 }" 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.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="CONTACTS.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" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.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 \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" ng-model="vm.selectedList" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\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 </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container ng-init="vm.getAssignedCompanies()">\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="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-fab-speed-dial id="add-contact-button" ng-if="vm.crudPermissions.canEdit" 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 class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | 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 \x3c!-- / ADD USER BUTTON --\x3e\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 privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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 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]">\n </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">{{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-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\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\n Fields</md-button>\n </div>\n\n <md-input-container class="md-block" ng-if="vm.allFields" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth">\n </mdp-date-picker>\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\n 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\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" ng-if="vm.crudPermissions.canEdit">\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" ng-init="vm.onInit()">\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 ng-if="vm.crudPermissions.canEdit">\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 && socialForm.$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-stretch-tabs="always" flex layout-fill 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 layout="column" flex="70">\n <md-card class="contact-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 text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO\n </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 ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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\n 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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" mdp-disabled="!vm.crudPermissions.canEdit"></mdp-date-picker>\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{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 </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.Tags" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{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_TAG">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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit"></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 </md-card>\n <md-card class="contact-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 text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\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\n </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}}\n </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" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click 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]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </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-block" 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 class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.dialer">\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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'CONTACTMANAGER.RECALLME\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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 privacy ng-cloak>{{hopper.phone}}</td>\n <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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-if="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($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.crudPermissions.canDelete && 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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 translate="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 privacy ng-cloak>{{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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 translate="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 privacy ng-cloak>{{history.calleridnum}}</td>\n <td md-cell>{{history.statedesc}}</td>\n <td md-cell>{{history.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{history.starttime | date:\'medium\'}}</td>\n <td md-cell>{{history.endtime | date:\'medium\'}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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\n <md-tab ng-if="vm.license.jscripty">\n <md-tab-label>\n <span translate="CONTACTMANAGER.JSCRIPTY">JSCRIPTY</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.SESSIONS">Sessions</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryJscriptySession.filter = query;" on-collapse="vm.queryJscriptySession.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n\n \x3c!-- SESSION TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryJscriptySession.sort" md-on-reorder="vm.getJscriptySessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | 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 <th md-column md-order-by="agent">{{ \'CONTACTMANAGER.AGENT\' | translate }}</th>\n <th md-column md-order-by="project">{{ \'CONTACTMANAGER.PROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.jscriptySessions.count">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, session) in vm.jscriptySessions.rows">\n <td md-cell>{{session.id}}</td>\n <td md-cell>{{session.starttime | date:\'medium\'}}</td>\n <td md-cell>{{session.endtime | date:\'medium\'}}</td>\n <td md-cell>{{session.membername}}</td>\n <td md-cell>{{session.projectname}}</td>\n <td md-cell class="actions"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / SESSION TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\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/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\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" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" class="md-icon-button" ng-click="vm.closeDialog()">\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.processing || vm.result.finish" 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\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </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\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <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" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.affectedRows"></span>\n </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 ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.failedRows"></span>\n </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 ng-if="vm.result.duplicatedRows && vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </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\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 ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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.png" 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/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" ng-required="true" autofocus>\n\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 name="type" ng-model="vm.globalCustomField.type" required ng-disabled="!vm.newGlobalCustomField">\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 <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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 <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($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 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\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 translate="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.png" /></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-required="true" autofocus>\n\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 name="type" ng-model="vm.customField.type" required ng-disabled="!vm.newCustomField">\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 <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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 <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\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 <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()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($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 </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </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>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.required? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($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 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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab); $event.stopPropagation()">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.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 <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg mr-0">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="row" layout-align="end center" class="reload-container">\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </div>\n <div layout="column" layout-align="space-between start" class="mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="mr-8">\n </md-icon>\n <span class="h1" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\n <md-icon md-font-icon="icon-account"></md-icon>\n Name: <span privacy ng-cloak>{{ call.calleridname }}</span>\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="vm.disposeCall($event, call)" class="send-button md-accent md-raised">\n {{ \'DASHBOARDS.DISPOSE\' | translate}}\n </md-button>\n </div>\n </md-card-content>\n </md-card>\n <div flex layout="row" layout-align="end center">\n <md-button type="submit" ng-click="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.firstName" class="text-truncate" required privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name\n field is required</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\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="vm.contact.lastName" class="text-truncate" privacy ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.phone" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.mobile" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.email" class="text-truncate" privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a\n valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.fax" privacy ng-cloak>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\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 <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.companies.rows">{{company.name}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </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="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tab.tags.rows">\n {{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="vm.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="vm.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="vm.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="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="DASHBOARDS.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 </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" ng-model="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.id}} - {{list.name}}\n </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 vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]">\n </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]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\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">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" 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}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.call.mandatoryDisposition">\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 ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\n <div ng-if="vm.isReschedule">\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="disposition.date.$error" ng-show="disposition.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="disposition.time.$error" ng-show="disposition.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-input-container ng-if="!vm.dialerCall" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n {{ queueCampaign.name }} ({{ queueCampaign.dialActive ? \'Active\' : \'Not Active\' }})</md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" 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/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-background-bg">\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-disabled="vm.disable" 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/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-if="vm.selectedTab === 0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-if="vm.selectedTab === 1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\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-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.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>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>"),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\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-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children | orderBy:\'weight\'" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span>\n </md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" 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 </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.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | 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 translate="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(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}}\n {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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(contact.id)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, 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($event, 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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.getSize(vm_bull.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.voiceQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.getSize(vm_voice.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">\n {{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">\n {{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n <md-card class="tooltip-preview-text" ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" 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 </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.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | 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 translate="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($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="firstName" privacy ng-cloak>\n {{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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($event, 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($event, 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($event, 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 <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)" ng-disabled="!openchannelAccount.replyUri">\n {{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\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.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\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.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\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>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column width="10px" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\n <div layout="row" layout-align="center center">\n <span translate="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">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </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>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\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" ng-if="vm.currentUser.downloadVoiceRecordings">\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 ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\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.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell privacy ng-cloak>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}">\n </md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\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.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">\n {{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\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.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'VOICE.ID\' | translate}}</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{ voiceCall.userDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></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="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.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\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-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }}\n </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'">\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="CHAT.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="CHAT.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="CHAT.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="CHAT.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'CHAT.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="CHAT.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-class="{\'mail-no-secret\': !vm.secret}" ng-cloak>\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </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.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="!vm.secret" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text" ng-keypress="vm.keyPress($event)">\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button ng-click="vm.removeAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} -\n {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="WHATSAPP.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="WHATSAPP.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="WHATSAPP.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="WHATSAPP.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'WHATSAPP.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="WHATSAPP.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition" ng-init="vm.onInit()">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.mandatoryDisposition">\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="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></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 <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.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\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.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" 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/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\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">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows">{{\n agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent 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 <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.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align="center center" flex>\n <div layout="row" layout-align="center center" style="flex-grow: 1; align-self: stretch" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{ item.browserName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{ item.osName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{ item.deviceModel }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{ item.referer }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.ratingMessage }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled privacy ng-cloak>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} -\n <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html\'">\n </div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{ vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{ item.externalUrl }}" target="_blank">\n <h4>{{ item.externalUrl }}</h4>\n </a>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{ item.createdAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{ item.closedAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{ tag.name }}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{ item.type ? item.type : \'no type\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{ item.uniqueid ? item.uniqueid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{ item.starttime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{ item.endtime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{ item.duration ? item.duration : \'--\' }}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{ item.note ? item.note : \'--\' }}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{ item.subject }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.VISIBILITY">Visibility</p>\n <h4 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.PRIVATE\'}}"></h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button ng-if="vm.downloadPermissions.attachments" class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <div ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.interactionTimelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach && vm.downloadPermissions.attachments">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">\n [{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname ||\n vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach && vm.downloadPermissions.attachments">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n <div ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center" class="p-8">\n <md-icon ng-if="vm.tab.channel === \'openchannel\' && vm.interaction.threadId" md-font-icon="fas fa-users" class="s16">\n <md-tooltip><span translate="DASHBOARDS.PUBLIC_INTERACTION">The interaction is public</span></md-tooltip>\n </md-icon>\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> -\n {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt"></timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\n <md-menu-item>\n <md-button ng-click="vm.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n</div>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime"></timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.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-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | 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 </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\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 </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 \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 </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 </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_MANAGED_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_MANAGED_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_MANAGED_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 </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.MANAGED_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.MANAGED_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.MANAGED_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 \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 </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.ABANDONED_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.ABANDONED_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.ABANDONED_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 </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'),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.VOICE_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.VOICE_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.VOICE_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) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.outboundDropCallsDayCallersExit || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.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-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.outboundDropCallsDayTimeout || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROPPED\' | 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.DROPPED_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.DROPPED\' | 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 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 \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.VOICE_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.VOICE_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.VOICE_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.outboundanswerRate || 0 |number : 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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.outboundAbandonRate || 0}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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-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.outboundDropRate }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROP_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.DROP_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.DROP_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\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/fax/user.general.fax.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-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.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-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.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-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.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-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" ng-init="vm.onInit()" 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 ng-if="vm.hasDashboardPermissions" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n <md-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to\n navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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/dashboards/views/general/user/whatsapp/user.general.whatsapp.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-whatsapp" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\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" ng-required="true" autofocus>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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 name="TrunkId" ng-model="vm.faxAccount.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-required="true">\n\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.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'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 <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount" ng-init="vm.onInit()">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.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="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\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}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></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.saveFaxAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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 <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="faxAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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 <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 <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="maxrate" ng-model="vm.faxAccount.maxrate" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="tech" ng-model="vm.faxAccount.tech" required ng-disabled="!vm.crudPermissions.canEdit">\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 <div class="faxAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAX.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <md-tab-body>\n <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="FAX.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedFaxAccountApps.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.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.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.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.faxAccountApps.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.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($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.editFaxAccountApp($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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editFaxAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="FAX.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\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.faxAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="FAX.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" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAX.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\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="key">{{ \'FAX.KEY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></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.saveFaxQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.faxQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="FAX.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" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAX.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/fax/views/realtime/accounts/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="FAX.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getFaxAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate}}</th>\n <th md-column>{{\'FAX.KEY\' | translate}}</th>\n <th md-column>{{\'FAX.TOTAL\' | translate}}</th>\n <th md-column>{{\'FAX.IN\' | translate}}</th>\n <th md-column>{{\'FAX.OUT\' | 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">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/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="FAX.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'FAX.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'FAX.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'FAX.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'FAX.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'FAX.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'FAX.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'FAX.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'FAX.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"FAX.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"FAX.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"FAX.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"FAX.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"FAX.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"FAX.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-label=\"{page: '{{'FAX.PAGE' | translate}}:', rowsPerPage: '{{'FAX.ROWSPERPAGE' | translate}}:', of: '{{'FAX.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/fax/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="FAX.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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/fax/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</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/fax/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="FAX.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | 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">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="FAX.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>{{\'FAX.\' + 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>{{\'FAX.\' + 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="FAX.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),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="/api/settings/1/logo_login" alt="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" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" 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/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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="https://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" 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 ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\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" ng-if="!vm.license.custom">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 ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><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/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" class="md-inline-form" novalidate>\n <md-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.deskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'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">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'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 name="authType" ng-model="vm.deskAccount.authType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'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" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'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.deskAccount.description">\n\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$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.crudPermissions.canEdit && vm.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskAccount" ng-click="vm.deleteDeskAccount($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/deskAccounts/deskAccounts.html",'<div id="deskAccounts" 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.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.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.selectedDeskAccounts =[]">\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-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.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="INTEGRATIONS.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.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" 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.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($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 </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\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\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="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT 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 DESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" class="md-inline-form" novalidate>\n <md-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.deskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'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 name="channel" ng-model="vm.deskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'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 name="type" ng-model="vm.deskConfiguration.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="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$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.crudPermissions.canEdit && vm.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($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/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" class="md-inline-form" novalidate>\n <md-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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.content.$error"\n ng-show="deskAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" 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-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\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="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-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.deskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'basic\'">Basic</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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="deskAccount-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="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\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="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\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 && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($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/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-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.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'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.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'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.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</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.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'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.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'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.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$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.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($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/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" 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.DYNAMICS365ACCOUNTS">Dynamics365Accounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDynamics365Accounts.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.selectedDynamics365Accounts =[]">\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-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.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="INTEGRATIONS.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.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" 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.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($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 </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\n \x3c!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\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.dynamics365Accounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT 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 DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-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.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'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 name="channel" ng-model="vm.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'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 name="type" ng-model="vm.dynamics365Configuration.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="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'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">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$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.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($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/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" 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-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\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="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-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.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</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.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="dynamics365Account-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="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\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="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($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/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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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" ng-required="true">\n\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" ng-required="true">\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$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.crudPermissions.canEdit && vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION" 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\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 && vm_cc.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-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.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$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.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($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/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-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.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'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 name="channel" ng-model="vm.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'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 name="type" ng-model="vm.freshsalesConfiguration.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="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$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.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($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/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" 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-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\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="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-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.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="freshsalesAccount-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="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\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="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($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/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" 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.FRESHSALESACCOUNTS">FreshsalesAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshsalesAccounts.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.selectedFreshsalesAccounts =[]">\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-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.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="INTEGRATIONS.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.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" 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.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($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 </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\n \x3c!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\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.freshsalesAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT 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 FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT 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" ng-required="true" autofocus>\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\n\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" ng-required="true">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\n\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" ng-required="true">\n\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" ng-required="true">\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$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.crudPermissions.canEdit && vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION" 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveSalesforceAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-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.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'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.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'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.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$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.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($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/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-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.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'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 name="channel" ng-model="vm.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'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 name="type" ng-model="vm.servicenowConfiguration.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="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$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.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($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/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" 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-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\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="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-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.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="servicenowAccount-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="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\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="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($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/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" 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.SERVICENOWACCOUNTS">ServicenowAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedServicenowAccounts.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.selectedServicenowAccounts =[]">\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-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.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="INTEGRATIONS.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.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" 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.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($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 </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\n \x3c!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\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="email">{{ \'INTEGRATIONS.EMAIL\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT 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 SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT 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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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" ng-required="true">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION" 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" class="md-inline-form" novalidate>\n <md-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.vtigerAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description">\n\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$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.crudPermissions.canEdit && vm.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($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/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" class="md-inline-form" novalidate>\n <md-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.vtigerConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'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 name="channel" ng-model="vm.vtigerConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'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 name="type" ng-model="vm.vtigerConfiguration.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="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$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.crudPermissions.canEdit && vm.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($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/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" class="md-inline-form" novalidate>\n <md-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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.content.$error"\n ng-show="vtigerAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" 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-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\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="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-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.vtigerAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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\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 <md-tab-body>\n <div class="vtigerAccount-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="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\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="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($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/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" 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.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.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.selectedVtigerAccounts =[]">\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-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.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="INTEGRATIONS.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.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" 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.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($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 </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\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\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.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT 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 VTIGERACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT 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" ng-required="true" autofocus>\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\n\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" ng-required="true">\n\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 name="authType" 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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveZendeskAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\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 && vm_cc.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION" 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" class="md-inline-form" novalidate>\n <md-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.zohoAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'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.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</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.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'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.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'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.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code 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.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'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.zohoAccount.description">\n\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$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.crudPermissions.canEdit && vm.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoAccount" ng-click="vm.deleteZohoAccount($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/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" class="md-inline-form" novalidate>\n <md-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.zohoConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'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 name="channel" ng-model="vm.zohoConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'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 name="type" ng-model="vm.zohoConfiguration.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="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$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.crudPermissions.canEdit && vm.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($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/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" class="md-inline-form" novalidate>\n <md-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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.content.$error"\n ng-show="zohoAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" 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-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\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="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-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.zohoAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</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.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\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.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\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.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken 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.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="zohoAccount-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="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\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="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($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/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" 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.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.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.selectedZohoAccounts =[]">\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-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.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="INTEGRATIONS.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.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" 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.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($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 </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\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\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="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT 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 ZOHOACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/jscripty/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="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.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="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description">\n\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="ADD" translate="JSCRIPTY.ADD_PROJECT" translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="JSCRIPTY.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="JSCRIPTY.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone 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="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" class="md-inline-form" novalidate>\n <md-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 <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-light" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/view.html",'<div id="jscripty-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="JSCRIPTY.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}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveProject()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (builderForm.$invalid) || (previewForm.$invalid) || (sessionsForm.$invalid) || (answersForm.$invalid)" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-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="JSCRIPTY.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.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.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.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="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container builder md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectBuilderController as vm_bc" ng-init="vm_bc.init(vm.project)">\n <mw-form-builder ng-if="vm_bc.project.formData" form-data="vm_bc.project.formData" options="vm_bc.optionsBuilder" read-only="false"></mw-form-builder>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.PREVIEW">PREVIEW</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container preview md-background-bg md-whiteframe-1dp">\n <div layout="column" layout-align="center" ng-controller="ProjectViewerController as vm_vc" ng-init="vm_vc.init(vm.project)">\n <div layout="row" layout-align="center">\n <md-button class="md-raised md-accent" aria-label="Reset" ng-click="vm_vc.resetViewer()">\n Reset\n </md-button>\n </div>\n <mw-form-viewer ng-if="vm_vc.project.formData" form-data="vm_vc.project.formData" response-data="vm_vc.responseData" on-submit="vm_vc.onSubmit($event)" api="vm_vc.formViewer"></mw-form-viewer>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</span>\n <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.rows">\n <td md-cell>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'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="JSCRIPTY.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.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\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.projectSessions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" 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="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-light" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\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/jscripty/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-script" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="JSCRIPTY.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="JSCRIPTY.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="JSCRIPTY.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="JSCRIPTY.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="JSCRIPTY.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="JSCRIPTY.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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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\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">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'JSCRIPTY.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'JSCRIPTY.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'JSCRIPTY.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.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="JSCRIPTY.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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT 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" ng-required="true" autofocus>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="email" ng-model="vm.mailAccount.email" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$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" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount" ng-init="vm.onInit()">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$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.crudPermissions.canEdit && vm.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($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}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></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.saveMailAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="email" ng-model="vm.mailAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="mailAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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 <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.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.IMAP_PORT_REQUIRED">IMAP_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.Imap.tls" aria-label="ssl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$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" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\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 class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.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 ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</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" min="1" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</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.SMTP">SMTP</span>\n </md-tab-label>\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.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$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" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\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.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\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.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" 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.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="MAIL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedMailAccountApps.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.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.mailAccountApps.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.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($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.editMailAccountApp($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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editMailAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\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.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MAIL.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" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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\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="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></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.saveMailQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.mailQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MAIL.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" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" class="md-inline-form" novalidate>\n <md-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.mailSubstatus.name" ng-required="true" autofocus>\n\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailSubstatus.description">\n\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$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.crudPermissions.canEdit && vm.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($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/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" 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.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.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.selectedMailSubstatuses =[]">\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-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.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="MAIL.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.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" 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.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\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="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.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS 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 MAILSUBSTATUS BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/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="MAIL.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getMailAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate}}</th>\n <th md-column>{{\'MAIL.KEY\' | translate}}</th>\n <th md-column>{{\'MAIL.TOTAL\' | translate}}</th>\n <th md-column>{{\'MAIL.IN\' | translate}}</th>\n <th md-column>{{\'MAIL.OUT\' | translate}}</th>\n <th md-column>{{\'MAIL.IMAP_STATUS\' | translate}}</th>\n <th md-column>{{\'MAIL.SMTP_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.mailAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active && (vm.mailAccounts[value].Imap.lastSync && vm.mailAccounts[value].Imap.lastSync != \'\')">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</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 ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/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="MAIL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MAIL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MAIL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MAIL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MAIL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MAIL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MAIL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MAIL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MAIL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MAIL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MAIL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MAIL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MAIL.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"MAIL.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-label=\"{page: '{{'MAIL.PAGE' | translate}}:', rowsPerPage: '{{'MAIL.ROWSPERPAGE' | translate}}:', of: '{{'MAIL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/mail/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MAIL.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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/mail/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</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/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" class="md-inline-form" novalidate>\n <md-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="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.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="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type 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.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" 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-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\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="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="plugin-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="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.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="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" disabled>\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type 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.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" disabled>\n\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" disabled>\n\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version 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/marketplace/views/plugins/plugins.html",'<div id="plugins" 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-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.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.selectedPlugins =[]">\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="MARKETPLACE.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-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.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="MARKETPLACE.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.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.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.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.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 <div ng-if="vm.installing">\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="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\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="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MARKETPLACE.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN 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!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="MARKETPLACE.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="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\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 <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveIvrCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</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 <md-tab-body>\n <div class="ivrCampaign-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 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\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 <div class="ivrCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move 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="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MOTIONDIALER.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" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="dialMethod" 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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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"></md-slider>\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 name="dialPredictiveOptimization" 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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</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" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority 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.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\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 <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveQueueCampaign()" ng-if="vm.crudPermissions.canEdit" 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) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 name="dialMethod" ng-model="vm.queueCampaign.dialMethod" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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"></md-slider>\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 name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" ng-disabled="!vm.crudPermissions.canEdit">\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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</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" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\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 <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</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 <md-tab-body>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.queueCampaign.autopause" ng-disabled="!vm.crudPermissions.canEdit">\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 name="ringinuse" ng-model="vm.queueCampaign.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt 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.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview 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.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\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="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'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.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt 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.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds 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.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme 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.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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 ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\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 <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move 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="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MOTIONDIALER.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" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.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.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),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.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MOTIONDIALER.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MOTIONDIALER.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MOTIONDIALER.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MOTIONDIALER.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MOTIONDIALER.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MOTIONDIALER.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MOTIONDIALER.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MOTIONDIALER.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MOTIONDIALER.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MOTIONDIALER.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MOTIONDIALER.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" 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-label=\"{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" 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.getCampaigns()" query="vm.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 translate="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" ng-if="vm.crudPermissions.canEdit">\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 <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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 </div>\n</md-toolbar>\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="7">\n <div layout="row" layout-align="center center">\n <span translate="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 privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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 </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.getQueues()" query="vm.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>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 translate="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 + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 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.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (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.outboundDropCallsDayTimeout) ? (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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-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.queueCampaign.name }} Info</span>\n <md-button class="md-icon-button" ng-click="vm.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 class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | 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 md-order-by="dialActive">{{ \'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.count > 0">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</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-18 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" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri 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.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'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 <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount" ng-init="vm.onInit()">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.openchannelCannedAnswer.description">\n\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($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}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></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.saveOpenchannelAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri 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.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\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 <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey 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.openchannelAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\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.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\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.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" 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.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="OPENCHANNEL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOpenchannelAccountApps.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.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.openchannelAccountApps.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.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($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.editOpenchannelAccountApp($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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editOpenchannelAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\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.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="OPENCHANNEL.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" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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\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="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></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.saveOpenchannelQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.openchannelQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="OPENCHANNEL.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" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/openchannel/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="OPENCHANNEL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'OPENCHANNEL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'OPENCHANNEL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'OPENCHANNEL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'OPENCHANNEL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'OPENCHANNEL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'OPENCHANNEL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"OPENCHANNEL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"OPENCHANNEL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"OPENCHANNEL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"OPENCHANNEL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"OPENCHANNEL.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"OPENCHANNEL.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-label=\"{page: '{{'OPENCHANNEL.PAGE' | translate}}:', rowsPerPage: '{{'OPENCHANNEL.ROWSPERPAGE' | translate}}:', of: '{{'OPENCHANNEL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/openchannel/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="OPENCHANNEL.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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/openchannel/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</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/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/cloudProviders.html",'<div id="cloudProviders" 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.AITOOLS">AiTools</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAiTools.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.selectedAiTools =[]">\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-cloudProviders-count">\n <span>{{vm.selectedAiTools.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="SETTINGS.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.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" 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.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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\n \x3c!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\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="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER 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 CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-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.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'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.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey 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.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$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.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($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/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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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" ng-required="true">\n\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$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="customizationsForm" 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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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" ng-required="true">\n\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'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 <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\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()" 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()" 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 ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred 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.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.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="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.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="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.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="{{preferredimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon 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.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.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, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.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="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.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="{{faviconimage.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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$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="globalForm" 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" value="1000" ng-required="true" autofocus>\n\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'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 ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar 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.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl 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 <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report 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.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf" value="1000">\n\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface 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.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording 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.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container security 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.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.securePassword" aria-label="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration 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.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container imapgeneralsettings 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.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso 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.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools 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.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LANGUAGE_REQUIRED">Language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket 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.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount 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 \x3c!-- <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> --\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 \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 ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" 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 ng-if="!vm.license.demo && !vm.license.gray && vm.license.months != 36" 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"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></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 ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.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>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\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.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></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" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></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 flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</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" flex="33">\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\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\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 | limitTo:3" flex="33">\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\'">{{ \'SETTINGS.\' + (vm.license[other.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" flex="33">\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'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</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-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</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" layout-align="space-between center">\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" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><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" layout-align="space-between center">\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.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\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/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\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" translate="SETTINGS.UPDATE_LICENSE">Update 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\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key 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.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\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 name="type" ng-model="vm.network.type" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</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])$/" ng-required="true">\n\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])$/" ng-required="true">\n\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 <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\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>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" 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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <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-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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="SETTINGS.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" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="smtpForm[\'name\'].$error" ng-show="smtpForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.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="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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" ng-required="true">\n\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 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" value="465" ng-required="true">\n\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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\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" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="(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="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="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.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="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'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" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'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 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" value="465" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'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" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'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-stretch-tabs="always" md-border-bottom flex layout-fill 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 class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</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.total / 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 == \'agi\' ? \'agi (Cally Square IVR)\' : 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 <id | name></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 <id | name | all></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 <id | name></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/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="SMS.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'SMS.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'SMS.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'SMS.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'SMS.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'SMS.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'SMS.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'SMS.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'SMS.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"SMS.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"SMS.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"SMS.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"SMS.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"SMS.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"SMS.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-label=\"{page: '{{'SMS.PAGE' | translate}}:', rowsPerPage: '{{'SMS.ROWSPERPAGE' | translate}}:', of: '{{'SMS.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/sms/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="SMS.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="SMS.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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/sms/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</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/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" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</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 name="ListId" ng-model="vm.smsAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" 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-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\n\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.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken 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.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\n\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\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID 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.smsAccount.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount" ng-init="vm.onInit()">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.smsCannedAnswer.description">\n\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$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.crudPermissions.canEdit && vm.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($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}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></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.saveSmsAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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 name="ListId" ng-model="vm.smsAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken 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.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( ((vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport) || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'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 class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMS.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\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.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="SMS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\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.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" 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.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="SMS.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedSmsAccountApps.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.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.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.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.smsAccountApps.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.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($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.editSmsAccountApp($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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editSmsAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="SMS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\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.smsAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="SMS.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" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMS.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\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="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></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.saveSmsQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.smsQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="SMS.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" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMS.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\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="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="10">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone ">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true">\n\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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" ng-required="true" ng-disabled="!vm.newAgent">\n\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 class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\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.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" 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 && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true">\n\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'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 <md-input-container ng-if="vm.newUser" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="agentForm.oldPassword.$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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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" ng-init="vm.onInit()">\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\' && vm.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\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 <div ng-cloak>\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"><span translate="STAFF.CHANNELS">Channels</span></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, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" 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"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" 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"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" 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"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" 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"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" 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"><span translate="FAX.FAX">Fax</span></md-tooltip>\n <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></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.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$invalid) || (download_permissionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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="agent-detail-form-container security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change 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.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\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, vm.crudPermissions)" 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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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" ng-required="true" autofocus disabled>\n\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 ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="type" ng-model="vm.agent.type" ng-disabled="!vm.crudPermissions.canEdit">\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 name="allow" ng-model="vm.agent.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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="STAFF.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="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.agent.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension 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.OTHER_CHANNELS">OTHER_CHANNELS</span>\n </md-tab-label>\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 ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\n <md-tab-label>\n <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n </md-tab-label>\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\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 ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="agent-detail-form-container callforwarding 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.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber 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 ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc 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_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc 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_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'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\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 <md-tab-body>\n <div class="agent-detail-form-container general_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.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-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="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></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.agent.permissions.includes(father.id)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></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" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.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/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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\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 translate="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.png" /></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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true">\n\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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\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" ng-required="true" ng-disabled="!vm.newTelephone">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="telephoneForm.oldPassword.$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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\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 <div ng-cloak ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile 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 <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" ng-required="true" autofocus disabled>\n\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 name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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="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 name="nat" ng-model="vm.telephone.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="allow" ng-model="vm.telephone.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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="STAFF.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="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.telephone.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'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.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'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 <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$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.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($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/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'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.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'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 <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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 <md-button type="submit" ng-click="vm.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" 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($event)">\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 <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" 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-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\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="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-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 class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'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.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'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 <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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 <md-tab-body>\n <div class="userProfile-detail-form-container modules 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.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\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/userProfiles/userProfiles.html",'<div id="userProfiles" 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.USERPROFILES">UserProfiles</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUserProfiles.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.selectedUserProfiles =[]">\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-userProfiles-count">\n <span>{{vm.selectedUserProfiles.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="STAFF.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.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" 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.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\n \x3c!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\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 md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE 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 USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE 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 name="role" ng-model="vm.user.role" autofocus required 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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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" ng-required="true">\n\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" ng-required="true" ng-disabled="!vm.newUser">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true">\n\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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\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" ng-required="true" ng-disabled="!vm.newUser">\n\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/apikeymanager/apikeymanager.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">{{ \'\n STAFF.MANAGE_API_KEY\' | 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-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <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.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="userForm.oldPassword.$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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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/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}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\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.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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 name="role" ng-model="vm.user.role" autofocus required disabled>\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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile 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.user.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></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, vm.crudPermissions)" 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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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" ng-required="true" autofocus disabled>\n\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 name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 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 name="nat" ng-model="vm.user.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="allow" ng-model="vm.user.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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="STAFF.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="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.user.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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\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="userProfileId">{{ \'STAFF.USERPROFILE\' | 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="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="11">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" md-maxlength="255" ng-required="true" autofocus>\n\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 ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</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 name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.cannedAnswer.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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="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="4">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone 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" ng-required="true" autofocus>\n\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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 name="type" ng-model="vm.dashboarditem.type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | 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\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | 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 <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\n\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 ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" value="https://" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$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.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" value="HH:mm:ss" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$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.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" value="10" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" value="20" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\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 ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></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.saveCustomDashboard()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n <div ng-controller="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard, vm.crudPermissions)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" ng-if="vm_cd.crudPermissions.canEdit" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\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/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-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.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'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="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</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.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDisposition" ng-click="vm.deleteDisposition($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/dispositions/dispositions.html",'<div id="dispositions" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.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.selectedDispositions = []">\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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\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="TOOLS.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.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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\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}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveInterval()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\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">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$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 name="output" ng-model="vm.schedule.output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$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 <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" value="1" ng-required="true">\n\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit 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.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount 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="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\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>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress 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.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress 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 <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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 ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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!-- UPLOAD SOUND BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="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 your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" 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" ng-required="true" autofocus>\n\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\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 <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.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" open-on-input="true"></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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 md-order-by="color">{{ \'TOOLS.COLOR\' | 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="5">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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 ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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 <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | 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 <md-dialog-content ms-scroll>\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 md-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 name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | 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 <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span>\n </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 </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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.triggerActions.count }}" md-on-paginate="vm_dc.getTriggerActions" md-page-select>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/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.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | 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 == \'jscripty\'" class="md-block">\n <label translate="TOOLS.PROJECT">Project</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ 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.PROJECT_REQUIRED">Project 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 name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" 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 name="data1" ng-model="vm.action.data1" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ 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 == \'contactManager\'" class="md-block">\n <label translate="TOOLS.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\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.SEARCH_FIELDS_REQUIRED">Search fields 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.AUTOCREATECONTACT">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </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.AUTOCREATECONTACT_REQUIRED">AutoCreateContact field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATE_FIELD_REQUIRED">Autocreate 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 name="data1" 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-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</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" ng-required="true">\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 == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</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.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_REQUIRED">Script field is required</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 name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</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" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ 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 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n 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 name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" 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" ng-required="true">\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" ng-required="true">\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 name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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 name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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" ng-required="true">\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.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables 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.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight 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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($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.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/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.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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 name="operator" ng-model="vm.allCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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 == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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 name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</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 <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($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.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/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.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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 name="operator" ng-model="vm.anyCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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 == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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 name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</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 <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 \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 <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveTrigger()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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 ng-disabled="!vm.crudPermissions.canEdit">\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 name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </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" ng-disabled="!vm.crudPermissions.canEdit">\n <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" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\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 <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\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="TOOLS.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 <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\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 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 translate="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 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 ">\n {{ \'TOOLS.\' + trigger.channel | uppercase | translate }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n <md-icon md-colors="{color: {{ trigger.status ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" 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 ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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" ng-required="true">\n\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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">\n\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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\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}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.trunk, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrunk()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="dtmfmode" ng-model="vm.trunk.dtmfmode" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="nat" ng-model="vm.trunk.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="qualify" ng-model="vm.trunk.qualify" required ng-disabled="!vm.crudPermissions.canEdit">\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.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 name="allow" ng-model="vm.trunk.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</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-option ng-value="\'h264\'">h264</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 name="insecure" ng-model="vm.trunk.insecure" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="callcounter" ng-model="vm.trunk.callcounter" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="trustrpid" ng-model="vm.trunk.trustrpid" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="sendrpid" ng-model="vm.trunk.sendrpid" required ng-disabled="!vm.crudPermissions.canEdit">\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\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | 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 name="encryption" ng-model="vm.trunk.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="transport" ng-model="vm.trunk.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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 <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 name="otherFields" ng-model="vm.trunk.otherFields" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-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="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.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="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.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 ng-hide="vm.loading">\n <div layout="row" layout-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" 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-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.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.selectedScreenRecordings =[]">\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="VIDEO.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-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.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="VIDEO.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.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.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.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.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\n \x3c!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\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">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING 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/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | 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 <md-dialog-content ng-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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 ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$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/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit 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">{{ \'TOOLS.EDIT_INTERVAL\' | 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 <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\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" mdp-disabled="!vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" 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 </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'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.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'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.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'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.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['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>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'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.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'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.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'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 name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'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.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'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.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'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.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'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.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$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.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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>'),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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($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 </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\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="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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 name="options" ng-model="vm.chanSpy.options" multiple required>\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 <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="chanSpyForm[\'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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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 name="recordingFormat" 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-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($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 </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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 ng-init="vm.initialize()" class="inbound-route-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.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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" ng-required="true" 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 name="context" ng-model="vm.inboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\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-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" 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 <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\n <span ng-if="vm.inboundRoute.exten">{{vm.inboundRoute.exten}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveInboundRoute()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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 name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\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 </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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 translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.inboundRoutes.count }}" md-on-paginate="vm.getInboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-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.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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" ng-required="true" 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 name="context" ng-model="vm.internalRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\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-internal-routes-button md-icon-button" aria-label="Go to internal routes" 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 <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\n <span ng-if="vm.internalRoute.exten">{{vm.internalRoute.exten}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveInternalRoute()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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 name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\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 </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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 translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.internalRoutes.count }}" md-on-paginate="vm.getInternalRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\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" ng-required="true" autofocus ng-disabled="!vm.newMusicOnHold">\n\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 name="mode" 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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true">\n\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 name="sort" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 name="id" ng-model="vm.mohSound.id" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveMusicOnHold()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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 name="mode" ng-model="vm.musiconhold.mode" required disabled>\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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </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>\n {{mohSound.id}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ mohSound.createdAt | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 ng-init="vm.initialize()" class="outbound-route-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.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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" ng-required="true" 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 name="context" ng-model="vm.outboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.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="\'WAV\'">wav49</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="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater\n or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\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-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" 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 <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\n <span ng-if="vm.outboundRoute.exten">{{vm.outboundRoute.exten}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveOutboundRoute()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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 name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</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="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid\n greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\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 </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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 translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.outboundRoutes.count }}" md-on-paginate="vm.getOutboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.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.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),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.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"VOICE.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"VOICE.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"VOICE.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"VOICE.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"VOICE.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" 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-label=\"{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" 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>\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.ALIAS\' | 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.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="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 privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</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"></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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 </div>\n</md-toolbar>\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.ALIAS\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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 </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.getQueues()" query="vm.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>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 translate="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 \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 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.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 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 || 0) / 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 || 0) / 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($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.addAgent($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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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.getTelephones()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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 translate="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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | 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">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="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 <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" 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" ng-required="true" autofocus>\n\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" ng-required="vm.voicemail.attach === \'yes\'">\n\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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" ng-required="true" ng-disabled="!vm.newVoicemail">\n\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 <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" 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="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveVoicemail()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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" ng-required="true" disabled>\n\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 name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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 <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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\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 name="envelope" ng-model="vm.voicemail.envelope" ng-disabled="!vm.crudPermissions.canEdit">\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 name="delete" ng-model="vm.voicemail.delete" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </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>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ message.stamp | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" class="md-inline-form" novalidate>\n <md-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.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'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.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </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.voicePrefix.description">\n\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$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.crudPermissions.canEdit && vm.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($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/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" 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.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.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.selectedVoicePrefixes =[]">\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-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.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="VOICE.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.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" 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.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($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 </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\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\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="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | 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.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX 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 VOICEPREFIX BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX 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" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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 name="strategy" 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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\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.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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 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 name="strategy" ng-model="vm.voiceQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</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" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</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 name="joinempty" ng-model="vm.voiceQueue.joinempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'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 name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'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 name="musiconhold" ng-model="vm.voiceQueue.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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 name="announce" ng-model="vm.voiceQueue.announce" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'FALSE\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds" ng-disabled="announce.canSelect === false">{{ announce.name }}</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</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 name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" ng-disabled="!vm.crudPermissions.canEdit">\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 name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\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 name="announce_position" ng-model="vm.voiceQueue.announce_position" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" ng-disabled="!vm.crudPermissions.canEdit">\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 name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Default</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds" ng-disabled="periodic_announce.canSelect === false">{{ periodic_announce.name }}</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 name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds" ng-disabled="queue_reporthold.canSelect === false">{{ queue_reporthold.name }}</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 name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds" ng-disabled="queue_youarenext.canSelect === false">{{ queue_youarenext.name }}</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 name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds" ng-disabled="queue_thereare.canSelect === false">{{ queue_thereare.name }}</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 name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds" ng-disabled="queue_callswaiting.canSelect === false">{{ queue_callswaiting.name }}</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 name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds" ng-disabled="queue_holdtime.canSelect === false">{{ queue_holdtime.name }}</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 name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds" ng-disabled="queue_minutes.canSelect === false">{{ queue_minutes.name }}</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 name="queue_minute" ng-model="vm.voiceQueue.queue_minute" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds" ng-disabled="queue_minute.canSelect === false">{{ queue_minute.name }}</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 name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds" ng-disabled="queue_seconds.canSelect === false">{{ queue_seconds.name }}</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 name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds" ng-disabled="queue_thankyou.canSelect === false">{{ queue_thankyou.name }}</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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.voiceQueue.autopause" ng-disabled="!vm.crudPermissions.canEdit">\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 name="ringinuse" ng-model="vm.voiceQueue.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\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 name="monitor_format" ng-model="vm.voiceQueue.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 name="rating" ng-model="vm.voiceRecording.rating" autofocus ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/edit/view.html",'<div id="voice-voiceRecording" 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-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\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="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings 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.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'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.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\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="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[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 <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition 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 ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript 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.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\n </div>\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="VOICE.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" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($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 </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\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="membername">{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | 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="16">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : 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>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id" model="\'voiceRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/main/apps/whatsapp/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="WHATSAPP.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'WHATSAPP.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'WHATSAPP.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'WHATSAPP.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'WHATSAPP.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'WHATSAPP.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'WHATSAPP.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'WHATSAPP.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'WHATSAPP.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'WHATSAPP.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'WHATSAPP.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"WHATSAPP.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"WHATSAPP.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"WHATSAPP.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"WHATSAPP.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"WHATSAPP.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"WHATSAPP.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-label=\"{page: '{{'WHATSAPP.PAGE' | translate}}:', rowsPerPage: '{{'WHATSAPP.ROWSPERPAGE' | translate}}:', of: '{{'WHATSAPP.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.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-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.QUEUES">Queues</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/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" 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-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\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="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></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.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twillo\'" class="md-block">\n <label translate="WHATSAPP.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/status?token=\' + vm.whatsappAccount.token + (vm.whatsappAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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 \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\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.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\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.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" 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="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.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.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedWhatsappAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.whatsappAccountApps.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.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($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.editWhatsappAccountApp($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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="WHATSAPP.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.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.DELETE_INTERACTION">\n Delete Interaction\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.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" 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/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappAccounts.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.selectedWhatsappAccounts =[]">\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="WHATSAPP.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-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.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.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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\n \x3c!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.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.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT 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 WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.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="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" 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-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\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="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></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.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></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.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappQueues.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.selectedWhatsappQueues =[]">\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="WHATSAPP.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-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.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.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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\n \x3c!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.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.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE 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 WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE 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"></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>\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\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\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_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin" aria-label="Chat Tab Search">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">\n {{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">\n {{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" 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_ct.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_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" 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/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-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(null)">\n <md-icon md-font-icon="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!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.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 \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\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.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></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/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-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(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),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/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</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="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\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\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),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 class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" class="md-icon-button" ng-click="vm.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="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.oldPassword.$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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</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/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\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() |\n uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" sessions="vm.webRTCSessions" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\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-diameter="32">\n </md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt"></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 layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt"></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 || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></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.png" 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"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\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 ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\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)"><span translate="TOOLBAR.CHANGEPASSWORD">Change\n Password</span></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\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></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 <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" 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 </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 flag-24" 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 ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" 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 <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">\n {{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\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/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">Preview</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div layout="row" ng-if="vm.preview">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true" privacy=\'vm.currentUser.privacyEnabled && (key === "firstName" || key === "lastName" || key === "phone" || key === "mobile" || key === "email" || key === "fax") \' ng-cloak>\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
+!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","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){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"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){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"}),n.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";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","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.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",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"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},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","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions: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,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions: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,n){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",controller:"AgentsChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions: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,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},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","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{sort:"name"}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){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",["ngMaterialDateRangePicker","app.dashboards.general.user"]).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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",nolimit:!0})}],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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions: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,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions: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,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",controller:"AgentsFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions: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,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions: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,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions: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,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions: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,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.jscripty",{abstract:!0,url:"/jscripty"}).state("app.jscripty.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/projects.html",controller:"JscriptyProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/edit/view.html",controller:"JscriptyProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.addPart("app/main/apps/jscripty")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.jscripty",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions: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,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions: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,n){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",controller:"AgentsMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions: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,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions: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,n){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},authenticate:!0,permissionId:1510}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:1510}).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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:1510}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions: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,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions: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,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",controller:"AgentsOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).config(e)}(),function(){"use strict";function e(e,n,t,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,securePassword,callRecordingEncryption,chatTimeout,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:1400,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?tab",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:1400,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",{latest:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions: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,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions: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,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",controller:"AgentsSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions: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,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions: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,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},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","Auth",function(e,n){return n.hasRole("admin")?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,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",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,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions: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,n){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,t38pt_udptl,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions: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,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},authenticate:!0,permissionId:411}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:411}).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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:411}).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:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){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","Auth",function(e,n){return n.hasRole("admin")?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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions: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,n){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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions: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,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},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","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",controller:"AgentsWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),n.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).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){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,i,o,n,s,r,l){var d;return{getToken:e,getCurrentUser:function(){return d},getPermissions:h,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return t(e)})},hasModulePermissions:function(i){return o(function(a,n){g()?a(!0):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};g()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!d&&d.role===e},hasPermission:t,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:d.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return f().then(function(){_.includes(d.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!g())return f().then(function(){a.forEach(function(e){_.includes(d.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:p,isAdmin:g,isLoggedIn:function(){return!!e()},isTelephone:function(){return"telephone"===d.role},isUser:v,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return i.put("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(d=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),b("LOCAL_LOGIN")}).then(function(){if(p()&&1===d.showWebBar&&d.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return p()&&0!==d.showWebBar?c(e):g()||v()?m(!0):void 0}).then(function(e){d=_.assign(d,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(u(),e()):o.resolve().then(function(){return p()&&0!==d.showWebBar?o(function(e,n){r.user.logout({id:d.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):g()||v()?m(!1):void 0}).then(function(){u(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return g()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:c,reloadPermissions:f,removeCookies:u,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?h(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(d=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){d=_.merge(d,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return b("SSO_LOGIN"),"/api/auth/"+e}};function e(){return i.get("motion.token")}function c(e){return o(function(n,t){r.user.login({id:d.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function m(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:d.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(){i.remove("motion.token"),d&&(n.localStorage.removeItem("motion.user:"+d.id),n.localStorage.removeItem("motion.authenticationtype"),d=null)}function p(){return"agent"===d.role}function g(){return"admin"===d.role}function v(){return"user"===d.role}function t(e){return!!d&&_.includes(d.permissions,e)}function h(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function f(){return o(function(n,t){h(d.userProfileId).then(function(e){d.permissions=e,n()}).catch(function(e){t(e)})})}function b(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.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(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){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,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,n,t,a){var i=a[0],s=a[1];s.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("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}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){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,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,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;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$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,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.off("click")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(u,t,p,e,a,i,n,g,s,v,h,f,b,o,A){var E=this,r=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],l=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function d(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){new Promise(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){l.webrtc=_.pick(E.conf,r),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(l))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function c(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",u.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function m(n){return h.user.getVoicePrefixes({id:E.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function x(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function N(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function D(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function P(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(l.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){E.showDialpad=!1})}}),E.$onInit=function(){d(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||E.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},m)}}r?(o.call_id=e.request.call_id,n&&P(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&P(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),o.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),o.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),o.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?D(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),o.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),o.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=D(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),o.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=D(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),o.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return m(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){c()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return m(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):c():c()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),c())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=x,u.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!1)))})}),u.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),u.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return m(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:N(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:N(E.sessions[t],"requestFailed","top right",3e3)}})})}),u.$on("$destroy",function(){console.debug("$destroy event fired"),o.removeAllListeners("webbar:originate"),o.removeAllListeners("webbar:hangup"),o.removeAllListeners("webbar:answer"),o.removeAllListeners("webbar:hold"),o.removeAllListeners("webbar:unhold"),o.removeAllListeners("webbar:transfer"),o.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={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=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));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)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){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,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){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(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){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,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.setupSteps()}}}}).directive("msHorizontalStepperStep",function(){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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).directive("msVerticalStepperStep",function(){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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.find(".ms-stepper-step-content").hide()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(n()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{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"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var n=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}}).directive("msWidgetBack",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return o.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";angular.module("app.core").factory("realtimeManager",function(){var a=["loggedIn","available","waiting","talking","paused"],i=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"];function s(e){var n=_.filter(e.agents,["busy",!0]).length,t=e.loggedInDb-e.available-e.paused-e.talking-e.waiting;t<0&&(t=0),e.busy=t<n?n:t}function o(e){return!_.every([e.chatPause,e.faxPause,e.mailPause,e.openchannelPause,e.smsPause,e.voicePause,e.whatsappPause],function(e){return e})}return{updateBusyCounter:s,isPartialPause:o,updateQueue:function(e,n,t,a){var i=t.paused;!1===e.online?(t.online=!1,n.loggedInDb-=1,t.paused?(t.paused=!1,n.paused-=1):n.available-=1):t.online?o(e)||!e[a+"Pause"]||t.paused?!e[a+"Pause"]&&t.paused?(t.paused=!1,t.talking||t.busy||(n.paused-=1,n.available+=1)):e[a+"Pause"]&&t.paused&&(t.talking||t.busy||(n.busy-=1,i||(n.paused+=1))):(t.paused=!0,t.talking||t.busy||(i||(n.paused+=1),0<n.available&&(n.available-=1))):(t.online=!0,n.loggedInDb+=1,n.available+=1);s(n)},updateVoiceQueue:function(e,n){e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting);var t=e.loggedIn-e.available-e.talking-e.waiting-n.paused;t<0?(n.paused-=Math.abs(t),n.waitingOrTalking=!0):0<t&&n.waitingOrTalking&&(n.paused+=1,delete n.waitingOrTalking);_.merge(n,_.pick(e,"inbound"===n.type?a:i)),"outbound"===n.type&&_.isNil(e.startPredictive)&&(n.startPredictive=void 0);s(n)}}})}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)}):c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("secToTime",function(){return function(e){e&&(e=e.toString().replace(",",""));var n=Math.floor(e/86400),t=e%86400,a=new Date(1e3*t).toISOString().substring(11,19);return a.replace(/^(\d+)/,function(e){return(""+(Number(e)+24*n)).padStart(2,"0")})}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,n){return-1<n.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],n=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.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"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).join("|"),"gi"),i='/* 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(a,function(e){return t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={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"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{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"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{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"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/teams"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){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"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{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 n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.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:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.progresslogin=!1,r.googleSsoEnabled=!1,r.login=function(){return r.progresslogin=!0,r.message="",s.login(r.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){r.message=e.data?e.data.message:e.message}).finally(function(){r.progresslogin=!1})},r.loginOauth=function(e){r.message="",t.location.href=s.loginSSO(e)},r.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),r.progresslogin=!0,e.put("motion.token",n.params.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){r.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}r.googleSsoEnabled=o.googleSsoEnabled},r.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,r.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"]},r.treeCustomEvents={select_node:function(e,n){r.currentNode=n.node}},r.copyReport=function(){var t;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.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.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.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.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(a){var i={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(i,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){var n=i[e],t={};return"cm_contacts"===e&&(t.analytics=!0),a[n].describe(t).$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.getReportFields()},c.deleteConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){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:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){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"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.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(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){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),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.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),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:t}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=t),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(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(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={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:["sms_account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],sestektts:["text"],lumenvoxasr:["grammar"],sestekasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],sesteknda:["text","ndauth_url","username","password","ndassistant_url"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingFormat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){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"}]}).factory("ispeechAsrLanguage",function(){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)"}]}).factory("ispeechTtsLanguage",function(){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"}]}).factory("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).factory("googleTtsLanguage",function(){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"}]}).factory("googleAsrLanguage",function(){return[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.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:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.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:v.rows||[]}})},I.saveProjectAs=function(e){a.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:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.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:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.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:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.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&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.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","$q","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"},{type:"upload",name:"Upload",icon:"icon-upload"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})},i.card_type="online",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",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||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"chat",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("CHAT.CHATQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("chat_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userChatQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userChatQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"chat")})}),e.$on("$destroy",function(){r.removeAllListeners("chat_queue:save"),r.removeAllListeners("userChatQueue:remove"),r.removeAllListeners("userChatQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.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},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.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(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,c.ListId=c.contact.ListId||void 0):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=m,c.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}},c.getDateFromString=function(e){return null===e?void 0:new Date(e)}}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.duplicateContact=function(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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});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:[],license:null,setting:null,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.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(){console.log("CANCEL")})},S.editHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},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.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.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"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.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"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,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.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/"+o.toLowerCase()+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,i,s,o,e,t,a,r,l,d,c,m){var u=this;function p(){var e=u.selectedDisposition?u.selectedDisposition.name.toLowerCase():void 0;return{id:u.call.uniqueid,disposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,secondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,thirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?l.getCurrentUser().id:null,OwnerId:l.getCurrentUser().id}}function g(e){n.hide([e,u.autoClose])}u.isReschedule=!1,u.recallme=!1,u.queueCampaign=void 0,u.queueCampaigns={count:0,rows:[]},u.dispositions=_.orderBy(_.concat([],e.rows,t.rows),["name"],["asc"]),u.contact=r,u.call=a,u.note=u.call.note||void 0,u.dialerCall=!1,u.hasBlackLists=!1,u.availableCalls=c,u.autoClose=m,u.hopper={minDate:new Date,dateTime:new Date},u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]?(u.dialerCall=!0,o.voiceQueue.getBlackLists({id:u.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(u.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):o.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.onDispositionChange=function(e){switch(e){case"first":u.selectedDisposition=u.firstLevelDisposition,u.anySecondLevelDisposition=_.some(u.dispositions,["ParentId",u.firstLevelDisposition.id]),u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.anyThirdLevelDisposition=!1;break;case"second":u.selectedDisposition=u.secondLevelDisposition,u.anyThirdLevelDisposition=_.some(u.dispositions,["ParentId",u.secondLevelDisposition.id]);break;case"third":u.selectedDisposition=u.thirdLevelDisposition}},u.clearDispositionSelection=function(e){"second"===e?(u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.selectedDisposition=u.firstLevelDisposition):"third"===e&&(u.thirdLevelDisposition=void 0,u.selectedDisposition=u.secondLevelDisposition)},u.saveDisposition=function(e){u.selectedDisposition=_.isNil(e)?u.selectedDisposition:{name:e},e&&(u.firstLevelDisposition=u.selectedDisposition);u.call.note=u.note,o.voiceCallReport.update({id:u.call.uniqueid,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,note:u.note,UserId:l.getCurrentUser().id,ContactId:u.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:u.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.dialerCall&&(o.cmHopperFinal.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(u.selectedDisposition))g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"");else switch(u.selectedDisposition.name.toLowerCase()){case"blacklist":u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(u.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+u.selectedDisposition}),u.selectedDisposition=void 0}).then(function(e){e&&g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}(u.call.variables["xmd-voicequeueid"]);break;case"reschedule":u.isReschedule=!0,u.recallme=!1;break;case"recallme":u.isReschedule=!0,u.recallme=!0;break;default:g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}},u.closeDialog=function(){n.cancel()},u.saveReschedule=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:u.recallme?l.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:u.dialerCall?Number(u.call["xmd-voicequeueid"]):u.queueCampaign?u.queueCampaign.id:null,scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:u.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){u.dialerCall&&o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:u.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(u.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).finally(function(){u.disable=!1,g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,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"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){s.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),o.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get({sort:"name"}).$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(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("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),s.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get({sort:"name"}).$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":h.draft.content.originalMessage=e?_.find(h.interaction.Messages,["id",e]):h.interaction.Messages[h.interaction.Messages.length-1],E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(s.draft=void 0,t.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking: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,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=i[0],a={waiting:0,talking:0,pTalking: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,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0};_.forIn(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$state","Auth","license"],angular.module("app.dashboards").factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.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},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"fax",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("FAX.FAXQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("fax_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userFaxQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userFaxQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"fax")})}),e.$on("$destroy",function(){r.removeAllListeners("fax_queue:save"),r.removeAllListeners("userFaxQueue:remove"),r.removeAllListeners("userFaxQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intDeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intVtigerAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intZohoAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),t.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"mail",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("MAIL.MAILQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("mail_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userMailQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userMailQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"mail")})}),e.$on("$destroy",function(){r.removeAllListeners("mail_queue:save"),r.removeAllListeners("userMailQueue:remove"),r.removeAllListeners("userMailQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.restartplugin=function(e,n){var t=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=4,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.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","$q","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber: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,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.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","$q","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"outbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},u.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueueRt:save",function(e){var n=_.find(u.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueueRt:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.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.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5: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,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]},{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"openchannel",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("OPENCHANNEL.OPENCHANNELQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("openchannel_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userOpenchannelQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userOpenchannelQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"openchannel")})}),e.$on("$destroy",function(){r.removeAllListeners("openchannel_queue:save"),r.removeAllListeners("userOpenchannelQueue:remove"),r.removeAllListeners("userOpenchannelQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["customizations","api","toasty","license","Auth"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.channels=[{name:"voice",icon:"icon-phone"},{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"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){n.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),g(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 n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),g(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 n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),m.success({title:_.startCase("Network")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}}e.$inject=["smtps","api","toasty","license","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.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(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");t.show(n).then(function(){t.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"sms",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("SMS.SMSQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("sms_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userSmsQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userSmsQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"sms")})}),e.$on("$destroy",function(){r.removeAllListeners("sms_queue:save"),r.removeAllListeners("userSmsQueue:remove"),r.removeAllListeners("userSmsQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.agents=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="agents",f.listOrder="",f.listOrderAsc=null,f.selectedAgents=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,page:1},f.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'",ngIf:"vm.agent.showWebBar == 1"},{option:"wss",value:"'wss'",ngIf:"vm.agent.showWebBar == 1"},{option:"tls",value:"'tls'",ngIf:"vm.agent.showWebBar == 1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayextensionMonitor=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:f.agents?f.agents.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getAgents=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Agents",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditAgent=function(e,n){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:f.agents.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteAgent=y,f.exportSelectedAgents=function(){var e=angular.copy(f.selectedAgents);return f.selectedAgents=[],e},f.deleteSelectedAgents=function(e){var n=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+f.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedAgents.forEach(function(e){y(e)}),f.selectedAgents=[]})},f.deselectAgents=function(){f.selectedAgents=[]},f.selectAllAgents=function(){f.selectedAgents=f.agents.rows};var b=!0,A=1;function E(e){f.agents=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.agents.rows,{id:e.id}),f.agents.count-=1,f.agents.rows.length||f.getAgents(),p.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","agents","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:"bull"===c.channel?"voice":c.channel,type:c.direction,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:c.direction,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.QUEUEADD_AGENT_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),labelSelected:s.instant("STAFF.SELECTED_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.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"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),t.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,e.toJSON()),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"name,-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.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:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.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:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.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:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.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:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),t.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.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,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function m(e){switch(e){case"sound":if(!d.application.appdata)return;return[{key:"save_name",value:d.application.appdata.split("/").pop()}];case"squareProject":if(!d.application.project)return;return[{key:"name",value:d.application.project.split(",")[1]}];case"tag":if(!d.application.tag)return;return[{key:"name",value:d.application.tag}];case"trunk":if(!d.application.trunk)return;return[{key:"name",value:d.application.trunk}];case"user":if(!d.application.user&&!d.application.users)return;return d.application.user?[{key:"name",value:d.application.user.split("/")[1]}]:_.map(d.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!d.application.name)return;return[{key:"name",value:d.application.name}];case"voiceContext":if(!d.application.context)return;return[{key:"name",value:d.application.context}];case"voiceMail":if(!d.application.voiceMail)return;return[{key:"mailbox",value:d.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!d.application.queue)return;return[{key:"name",value:d.application.queue}]}}function u(){o.getResourcesByRole(d.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},m("trunk")).then(function(e){d.trunks=e}).catch(function(){s.error({title:i.instant("TOOLS.TRUNKS"),msg:i.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function p(){o.getResourcesByRole(d.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},m("sound")).then(function(e){d.sounds=e}).catch(function(){s.error({title:i.instant("TOOLS.SOUNDS"),msg:i.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function g(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=m("user"),t=[o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();d.users={rows:n,count:n.length}}).catch(function(){s.error({title:i.instant("STAFF.USERS"),msg:i.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function v(){(d.application.appdata||"custom"===d.application.appType)&&e.hide(d.application),e.hide()}d.currentUser=r.getCurrentUser(),d.application=angular.copy(n),d.crudPermissions=l,d.errors=[],d.init=function(){d.application.appdata&&function(){var e=[];switch(d.application.appType){case"agi":d.application.project=d.application.appdata;break;case"dial":e=d.application.appdata.split(","),d.application.tech=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"externalDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"goTo":e=d.application.appdata.split(","),d.application.context=c(e[0]),d.application.extension=c(e[1]),d.application.priority=c(e[2]);break;case"internalDial":e=d.application.appdata.split(","),d.application.user=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"outboundDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]),d.application.prefix=d.application.phone?d.application.phone.split("$")[0]:void 0,d.application.callerId=d.application.callerID?"CALLERID(all)="+d.application.callerID:void 0;break;case"playback":e=d.application.appdata.split(","),d.application.appdata=c(e[0]),d.application.options=c(e[1]);break;case"queue":e=d.application.appdata.split(","),d.application.queue=c(e[0]),d.application.options=c(e[1]),d.application.URL=c(e[2]),d.application.sound=c(e[3]),d.application.timeout=c(e[4]),d.application.agi=c(e[5]),d.application.macro=c(e[6]),d.application.gosub=c(e[7]),d.application.rule=c(e[8]),d.application.position=c(e[9]);break;case"ringGroup":e=d.application.appdata.split(","),d.application.users=e[0].split("&"),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"set":e=d.application.appdata.split("="),d.application.name=e[0],d.application.value=e[1];break;case"voicemail":e=d.application.appdata.split(","),d.application.voiceMail=c(e[0]),d.application.options=c(e[1])}}();switch(d.application.appType){case"agi":o.getResourcesByRole(d.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},m("squareProject")).then(function(e){d.projects=e}).catch(function(){s.error({title:i.instant("CALLYSQUARE.CALLYSQUARE")+" "+i.instant("CALLYSQUARE.PROJECTS"),msg:i.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":u();break;case"goTo":o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},m("voiceContext")).then(function(e){d.contexts=e}).catch(function(){s.error({title:i.instant("VOICE.CONTEXTS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":g();break;case"outboundDial":o.getResourcesByRole(d.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},m("tag")).then(function(e){d.tags=e}).catch(function(){s.error({title:i.instant("TOOLS.TAGS"),msg:i.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),u();break;case"playback":p();break;case"queue":p(),o.getResourcesByRole(d.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},m("voiceQueue")).then(function(e){d.queues=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEQUEUES"),msg:i.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":g();break;case"set":o.getResourcesByRole(d.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},m("variable")).then(function(e){d.variables=e}).catch(function(){s.error({title:i.instant("TOOLS.VARIABLES"),msg:i.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":o.getResourcesByRole(d.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},m("voiceMail")).then(function(e){d.voiceMails=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEMAILS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},d.saveRoutingApp=function(){d.errors=[],function(){var e=[];switch(d.application.appType){case"agi":d.application.appdata=d.application.project;break;case"dial":e[0]=d.application.tech,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"goTo":e[0]=d.application.context,e[1]=d.application.extension,e[2]=d.application.priority,d.application.appdata=e.join(",");break;case"internalDial":e[0]=d.application.user,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"outboundDial":d.application.phone=t.cutdigits?(d.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(d.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?d.application.options=d.application.options.replace("U(xcally-mixmonitor-context)",""):d.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(d.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"playback":e[0]=d.application.appdata,e[1]=d.application.options,d.application.appdata=e.join(",");break;case"queue":e[0]=d.application.queue,e[1]=d.application.options,e[2]=d.application.URL,e[3]=d.application.sound,e[4]=d.application.timeout,e[5]=d.application.agi,e[6]=d.application.macro,e[7]=d.application.gosub,e[8]=d.application.rule,e[9]=d.application.position,d.application.appdata=e.join(",");break;case"ringGroup":e[0]=d.application.users.join("&"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"set":e[0]=d.application.name,e[1]=d.application.value,d.application.appdata=e.join("=");break;case"voicemail":e[0]=d.application.voiceMail,e[1]=d.application.options,d.application.appdata=e.join(",")}}(),v()},d.closeDialog=v}e.$inject=["$mdDialog","$q","$translate","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r,l){var d=this;function c(){var e=[{key:"name",value:d.interval.IntervalId}];s.getResourcesByRole(d.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){d.intervals=e}).catch(function(){i.error({title:t.instant("TOOLS.INTERVALS"),msg:t.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function m(e){n.hide(e)}d.currentUser=o.getCurrentUser(),d.interval=angular.copy(e),d.intervals=a||{rows:[],count:0},d.types=["always","custom","list"],d.crudPermissions=r,d.errors=[],d.daysOfWeek=l.getDaysOfWeek(),d.monthNumber=l.getMonthNumber(),d.monthName=l.getMonthName(),d.daysOfMonth=l.getDaysOfMonth(),d.initialize=function(){if("*,*,*,*"===d.interval.interval)return d.type=d.interval.IntervalId&&d.interval.application?"list":"always",void("list"===d.type&&c());d.type="custom";var e=d.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),d.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),d.timeRangeTo=s}"*"!==t&&(d.dayOfWeekFrom=t.split("-")[0],d.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(d.monthDayFrom=a.split("-")[0],d.monthDayTo=a.split("-")[1]);"*"!==i&&(d.monthFrom=i.split("-")[0],d.monthTo=i.split("-")[1])},d.onTypeChange=function(){"list"===d.type&&0===d.intervals.count&&c()},d.saveInterval=function(){d.errors=[],d.interval.interval=function(){if(["always","list"].includes(d.type))return"*,*,*,*";var e=[];if("*"!==d.timeRangeFrom&&d.timeRangeFrom&&d.timeRangeTo){var n=(d.timeRangeFrom.getHours()<10?"0":"")+d.timeRangeFrom.getHours()+":"+(d.timeRangeFrom.getMinutes()<10?"0":"")+d.timeRangeFrom.getMinutes(),t=(d.timeRangeTo.getHours()<10?"0":"")+d.timeRangeTo.getHours()+":"+(d.timeRangeTo.getMinutes()<10?"0":"")+d.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return d.dayOfWeekFrom?d.dayOfWeekTo?e.push(d.dayOfWeekFrom+"-"+d.dayOfWeekTo):e.push(d.dayOfWeekFrom):e.push("*"),d.monthDayFrom?d.monthDayTo?e.push(d.monthDayFrom+"-"+d.monthDayTo):e.push(d.monthDayFrom):e.push("*"),d.monthFrom?d.monthTo?e.push(d.monthFrom+"-"+d.monthTo):e.push(d.monthFrom):e.push("*"),e.join()}(),"list"!==d.type&&(d.interval.IntervalId=null);m(d.interval)},d.closeDialog=m}e.$inject=["$mdDialog","$translate","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).catch(function(e){o.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","$q","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording","routealias"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.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,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userVoiceQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueue:remove"),r.removeAllListeners("userVoiceQueue:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){var a=this;switch(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.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;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.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7: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,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.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},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).catch(function(e){o.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","$q","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getTeams({id:l.voicePrefix.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voicePrefix=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.teamadddialog=function(e,n){i.show({controller:"voicePrefixteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.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"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.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"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voiceRecording=c||e.params.voiceRecording||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},u.saveVoiceRecording=function(){r.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h){var f=this;function b(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceRecordings=r||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceRecordings=[],f.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:f.crudPermissions})},f.runtranscriberuntranscribesentiment=b,f.runtranscribesentimentruntranscribesentiment=A,f.runsentimentruntranscribesentiment=E,f.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){I(e)},function(){console.log("CANCEL")})},f.success=T,f.getVoiceRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceRecording.get(f.query,T).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceRecordings",f.promise=m.userProfile.getResources(f.query,T).$promise)},f.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:f.voiceRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceRecording=I,f.exportSelectedVoiceRecordings=function(){var e=angular.copy(f.selectedVoiceRecordings);return f.selectedVoiceRecordings=[],e},f.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+f.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceRecordings.forEach(function(e){I(e)}),f.selectedVoiceRecordings=[]})},f.deselectVoiceRecordings=function(){f.selectedVoiceRecordings=[]},f.selectAllVoiceRecordings=function(){f.selectedVoiceRecordings=f.voiceRecordings.rows},f.runtranscribeSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){b(e,n)}),f.selectedVoiceRecordings=[]},f.runtranscribesentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){A(e,n)}),f.selectedVoiceRecordings=[]},f.runsentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){E(e,n)}),f.selectedVoiceRecordings=[]};var y=!0,S=1;function T(e){f.voiceRecordings=e||{count:0,rows:[]}}function I(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceRecordings.rows,{id:e.id}),f.voiceRecordings.count-=1,f.voiceRecordings.rows.length||f.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){y?o(function(){y=!1}):(n||(S=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=S),f.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"whatsapp",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsWhatsappRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("WHATSAPP.WHATSAPPQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("whatsapp_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userWhatsappQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userWhatsappQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"whatsapp")})}),e.$on("$destroy",function(){r.removeAllListeners("whatsapp_queue:save"),r.removeAllListeners("userWhatsappQueue:remove"),r.removeAllListeners("userWhatsappQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){"twilio"===g.whatsappAccount.type&&(g.whatsappAccount.baseUrl=null)}function h(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],v(),d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],v(),d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),h(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=h,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).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","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).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","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.baseUrl=[{name:"US Production",url:"https://us1.whatsapp.api.sinch.com"},{name:"EU Production",url:"https://eu1.whatsapp.api.sinch.com"}],p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){"twilio"===p.whatsappAccount.type&&(p.whatsappAccount.baseUrl=null);r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Sinch",value:"'sinch'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:4,hidden:function(){return!r.cm||!o.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:5,hidden:function(){return!r.dialer||!o.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:6,hidden:function(){return!r.voice||!o.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:7,hidden:function(){return!r.voice||!o.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:8,hidden:function(){return!r.voice||!o.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:9,hidden:function(){return!r.chat||!o.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:10,hidden:function(){return!r.mail||!o.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=n.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",t.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),n("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){_.isNil(e)&&s.cmHopper.update({id:d.preview.id,UserId:null}),a.hide()}d.customFieldsMap=l&&l.rows?_.mapValues(_.keyBy(l.rows,function(e){return"cf_"+e.id}),"name"):{},d.errors=[],d.hopperIds=[],d.preview=o,d.currentUser=r,d.originated=!1,d.disable=!1,d.disableGetContact=!1,d.hopperIds.push(d.preview.id),d.originatePreview=function(){d.originated=!0,d.disable=!0,_.isEmpty(d.preview)?(i.error({title:"Message",msg:"Contact not available"}),d.disable=!1,d.hopperIds=[],c(!0)):s.rpc.getVoiceQueuesPreview({id:d.preview.id}).$promise.then(function(e){c(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),c(!0)}).finally(function(){d.disable=!1,d.hopperIds=[]})},d.closeDialog=c,d.nextContact=function(){return d.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:d.hopperIds,direction:"next"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(d.disableGetContact=!1,d.hopperIds=[],404===e.status)d.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.previousContact=function(){if(d.disableGetContact=!0,1<d.hopperIds.length){var e=_.without(d.hopperIds,d.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(d.hopperIds,function(e){return e==d.preview.id}),d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e)}).catch(function(e){if(404===e.status)d.hopperIds=[d.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){d.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},d.getFirstAvailableContact=function(){return d.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[d.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){d.disableGetContact=!1})},d.isCustomField=function(e){return _.startsWith(e,"cf_")},d.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},d.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){d.originated||s.cmHopper.update({id:d.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","currentUser","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.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"}],T.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"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"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.languages.hasOwnProperty(e.code)){return void l.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"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.unpause=function(){return f.user.unpause({id:T.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.preview=function(n){return T.disable=!0,f.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(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",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","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/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT: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.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,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:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.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,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=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),t.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),t.appendChild(a),n.appendChild(t),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=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-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 s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.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,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},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,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<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="",n=0;n<arguments.length;n++)e+=arguments[n],n<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 n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}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,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};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,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t:0,this.height=null!=a?a:0}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,n,t,a){this.x=e,this.y=n,this.width=t,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 n=Math.min(this.x,e.x),t=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=n,this.y=t,this.width=a-n,this.height=e-t}},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(l,d,c){var m=0,u=function(){for(var e=!1,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&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 n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},getCurrentStyle: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,n){return function(){return n.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,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var 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,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},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:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection:document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0,getPrettyXml:function(e,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";if(null!=e.outerHTML)return e.outerHTML;var n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,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",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"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 n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,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){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=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):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!isNaN(e)},mod:function(e,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*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,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),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 o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),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"};function mxEventObject(e){this.name=e,this.properties=[];for(var n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}function mxEventSource(e){this.setEventSource(e)}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 n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.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)&&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,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,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,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){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!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(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 n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?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||document.documentMode<9)?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,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(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"};function mxXmlRequest(e,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}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=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,n){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,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),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,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}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,n,t,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=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=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),n.appendChild(this.td),e.appendChild(n),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 n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){navigator.userAgent.indexOf("Presto/2.5")<0&&(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 n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},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 a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),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,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"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 t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{t=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},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 t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),s=this.table.style.height,o=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 n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"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,n){var t=document.createElement("tr"),a=document.createElement("td");t.appendChild(a);a=document.createElement("td");var 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(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},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(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"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,n,t){return e.getCellAt(n,t)},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,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,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 n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"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 n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.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,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),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");a=this.isGridEnabled()&&e.isGridEnabledEvent(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,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,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"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=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},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="
",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,n,t){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,n,t){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,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},mxSession.prototype.encodeChanges=function(e,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.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 n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;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 n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}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,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}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 n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));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),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=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==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){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,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.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=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t:0)-i.scrollLeft-i.clientWidth,this.dx<0&&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=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=n+a-i.scrollTop-i.clientHeight,this.dy<0&&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=n-i.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=o())):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)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t: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,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}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,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},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 n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.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),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,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 n=0;n<this.cells.length;n++)this.animateCell(cells[n],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,n,t){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 s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.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,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],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,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),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,n){this.state.dx+=e,this.state.dy+=n},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,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},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,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){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 n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},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 n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),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 n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},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 n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},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 n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},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 n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"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,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,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(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),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,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;e.alpha<1&&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()),e.alpha<1&&this.node.setAttribute("stroke-opacity",e.alpha);var n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},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 n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=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",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*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),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+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(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+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,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=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<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),u.alpha<1&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,s,o,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),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);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,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(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*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,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==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),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+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,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?1:0))):((c=document.createElement("div")).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"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,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};function mxGuide(e,n){this.graph=e,this.setStates(n)}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}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,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},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,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"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))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?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,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(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,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"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"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=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(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):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")).stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-t/2)*u.scale)+"px",g.style.top=this.format(n+(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-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&a<p&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+t*g*this.state.scale)+"px",l.style.top=this.format(n+a*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}else this.plainText(e,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.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),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"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=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},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)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-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 t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),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 t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.call(this,A.y+A.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=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}return e},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 n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&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 n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].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,n=null;if(null!=this.node.ownerSVGElement)(e=new mxSvgCanvas2D(this.node,!1)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}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)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),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 n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),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 n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}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 n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/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,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),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 n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},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,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o: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=v,this.wrap=null!=h&&h,this.clipped=null!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){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,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=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-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,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,n,t,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,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,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 n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,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!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,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 n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="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 t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.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=n[o+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(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+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 n=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 t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=this.wrap?this.bounds.width:this.offsetWidth*this.scale,this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.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,n,t,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 n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=this.opacity<1?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(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=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{var o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"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);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),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 n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"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,n,t,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,n,t,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,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),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,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,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 n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"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,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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 new mxRectangle(e=i==mxConstants.ALIGN_CENTER?e+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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 new mxRectangle(e=i==mxConstants.ALIGN_RIGHT?e+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,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 n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.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,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},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,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=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(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,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 n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=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!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.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,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=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);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.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,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.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=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.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,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=this.graph.getView(),r=0;r<e.length;r++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!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 n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,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?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.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 n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),this.radiusSquared[a]=this.radius[a]*this.radius[a]}n.beginUpdate();try{for(a=0;a<s;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var p=this.graph.getConnections(this.vertexArray[a],e);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[d]);var g=this.indices[r];this.neighbours[a][d]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.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),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},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 n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),(e=mxCellPath.create(e))<a?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.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,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},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,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},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,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},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 n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},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 n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])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 n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].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,n){this.temp[e-this.minRank-1]=n},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,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){l=new mxGraphHierarchyEdge(r);for(var 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=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).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 s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,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(var n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[r]=[];for(r=0;r<a.length;r++)for(var l=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,a)}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 n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");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 n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[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,s=Math.max(s,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]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)m==(u=i.getX(l-1))?(c[l-i.minRank-2]=m,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)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,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+2*r+1]=m;u=Math.max(u,m)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[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!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?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,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[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=null!=(g=r.view.getState(p))?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,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=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(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.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,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[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&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}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,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.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,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},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,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==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,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=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 n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=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 n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):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,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==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,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},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,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},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(this.updateLevel--,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,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[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(n,i),t)},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),n=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=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},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 n=this.getValue();return this.setValue(e),n},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,n){return n?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,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},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,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},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,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.y-d,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}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 n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.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 s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.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 n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*c/this.scale-this.y0/this.scale+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){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!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"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=n-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),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=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,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,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,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},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,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(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 null!=(e=this.getVisibleTerminalState(e))?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,n){n?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 n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].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 n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),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 n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,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),n=this.graph.isLabelClipped(e.cell),t=this.graph.isWrapping(e.cell);if(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;else if(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+=" "),a=mxUtils.htmlEntities(a,!1),t?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),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);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(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,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.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=o,this.textarea.style.color=s,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(t),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==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,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"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.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,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(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+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(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)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==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,n){mxCellRenderer.prototype.defaultShapes[e]=n},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,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.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,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).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 t,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,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),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 n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),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 n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},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,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.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 n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,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 n=e.view.graph,t=e.view.scale,a=n.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*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(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),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,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),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&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==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(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,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=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=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,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,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;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),d<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(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*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],l=[],(r=[])[0]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*s<m&&2*s<c&&(0<(r[0]&v[0])&&0<(l[1]&v[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]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*s<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*s<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[d],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=o)<1&&(d+=4),(v-=o)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-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]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-1][1]);var h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<o)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n: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,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,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,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}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,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t: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,n){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,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,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,n){null!=e&&(this.graph=e,this.target=n||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,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t: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(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&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()})))}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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,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 n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=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!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},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 n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){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*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=this.currentRoot&&null!=e)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.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*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(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(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==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==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}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),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},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 n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),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){var n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},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 a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),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,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},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 n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"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 n=[],t=0;t<e.length;t++){var a=e[t];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&&mxUtils.indexOf(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},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 n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!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 n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&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 n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),this.isEnabled()&&!mxEvent.isConsumed(e)&&!t.isConsumed()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,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,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);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),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,this.scale)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,a)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.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 n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}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(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,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,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,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 s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[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(t[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/s-o.x,l[0].y/s-o.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/s-o.x,l[m].y/s-o.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 t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=c){var m=this.view.getState(c),u=null!=m?m.origin:l;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!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)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&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",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[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/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[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,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,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],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!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){var n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);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 s=i.offset;null!=s&&(s.x+=a.x-i.x,s.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[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),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",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!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(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){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!=n.point){var l=t=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"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=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])){if(null!=(r=this.model.getGeometry(e[i]))){var s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.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/n-t.x+l,c[0].y/n-t.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 v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/n-t.x+l,c[v].y/n-t.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,n){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(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},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,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},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,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.removeAttribute("transform"),null!=this.shiftPreview1){for(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(t.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(t.setAttribute("transform","translate("+e+","+n+")"),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";var s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,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,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=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=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(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 n=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 t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},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 n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(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 n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==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,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(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,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=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 s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){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 n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?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 n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},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 n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.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 n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},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){var n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[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 n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.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 n=this.view.getState(e);return e=null!=n?n.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 n=this.view.getState(e);return e=null!=n?n.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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){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,n){return this.isValidSource(e)&&this.isValidTarget(n)},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)return!1;var n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.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,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){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(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t: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,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>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,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],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)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+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>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,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,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},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,n,t){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(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),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(n,t,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},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 n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),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-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.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||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}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 n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2)):((a=new mxPoint).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)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},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 n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.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,n){!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 n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.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,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.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),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.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,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,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 n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=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 n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,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 n=this.graph.view.getState(e);return e=null!=n?n.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 n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e))if(null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}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,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},mxGraphHandler.prototype.createPreviewShape=function(e){return(e=new mxRectangleShape(e,null,this.previewColor)).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,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),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 n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.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,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.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,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},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)!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,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,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.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,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);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(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},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 n=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,n)}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 a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,n){return n=mxCellMarker.prototype.getCell.apply(a,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}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),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,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},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)return null;this.iconState=e;var n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.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=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).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 n=0;n<e.length;n++)e[n].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,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){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(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,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 n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.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(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),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)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),(this.icons=null)!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=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(t,a,n.getEvent(),n.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),n.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,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,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==n&&((u=this.graph.getPointForEvent(t,!1)).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",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),(e=new mxGeometry).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,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),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(),n):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 s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).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(t)}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],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.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,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.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,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-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),mxGraphHandler.prototype.maxCells<=0||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 n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),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)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||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())).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,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,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(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==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,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),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()),m=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.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 a=this.graph.isGridEnabledEvent(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},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,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,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 n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,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&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,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){var 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||mxGraphHandler.prototype.maxCells<=0)&&(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())).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),a=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=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,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;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,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){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()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.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&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(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 n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,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,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.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)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);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(t));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(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.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,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=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-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.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 t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){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,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[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=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=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,n),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 n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.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 s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,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 n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.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,n){if(this.graph.isCellBendable(this.state.cell)){var t=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],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}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,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},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 n=this.getFunction(e);null!=n&&(n(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,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),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,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+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,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?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,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},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,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.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,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},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="
",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 n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),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,n){e.showProperties(n)}),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,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),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 n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),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 n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),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,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},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,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return(e=new mxSwimlaneManager(e,!1)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},e},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(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});s.getModel().addListener(mxEvent.CHANGE,e)},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,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},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(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);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 n=mxUtils.load(e).getXml();this.readGraphModel(n.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,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.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,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),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 n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.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 n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}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 n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-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){n.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 n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}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,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},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 n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!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(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},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 n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},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),c.removeAttribute("as"))}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},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 n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+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,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},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,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},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(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,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.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",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[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<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=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&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.toolbar.selectMode(v,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}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,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});this.container.style.overflow="hidden",(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(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.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,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[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","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[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"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax","googleasr","lumenvoxasr","tildeasr","dialogflow","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[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"],[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=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&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)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.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.isEditingEnabled()?this.createKeyHandler(n):null;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(),this.refresh()},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=190,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.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=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":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+=1<=e.value.getAttribute("priority")?"":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+=-1<=e.value.getAttribute("timeout")?"":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+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":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")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":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=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":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"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":case"sestektts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":case"sestekasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUrlInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n";break;case"sesteknda":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("ndauth_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("ndassistant_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("username")?"":mxResources.get("noUsernameSelected")+"\n",i+=""!==e.value.getAttribute("password")?"":mxResources.get("noPasswordSelected")+"\n";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{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"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\n"}return t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||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),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-this.menubarHeight-this.toolbarHeight-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 s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",this.diagramContainer.style.top=this.sidebarContainer.style.top,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=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"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.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",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.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),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 n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},EditorUi.prototype.executeLayout=function(e,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[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){}function Sidebar(e,n){this.editorUi=e,this.container=n,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 n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.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(n,"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,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.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(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);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[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.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[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],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(0<i.status){var s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/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(n),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=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.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 n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}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(e){var n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.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=t.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 n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.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",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.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(e){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==s.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(n),e.appendChild(t),e.appendChild(a),this.container=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 n=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=Number(e.getAttribute("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 t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t: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 s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.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)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),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,n=this.outline;if(null!=e.container&&null!=n.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="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.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 t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,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(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+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 a=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();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+a.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;if(null==this.horizontalPageBreaks&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,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,n){this.data=e,this.filename=n,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("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),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","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),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=5<=document.documentMode?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{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=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),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"px",this.tooltipTitles&&null!=g&&0<g.length){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.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+t/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},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,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[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==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);var r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(t?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;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((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-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=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){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(n,t,a,e,i,s,o){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(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,a){var i=this.editorUi.editor.graph,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","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"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];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"lumenvoxtts":case"sestektts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"sestekasr":l=["grammar","options"],d=["/usr/local/unimrcp/data/grammar.xml",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];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","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_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;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];break;case"sesteknda":l=["ndauth_url","username","password","ndassistant_url","text","project","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!1,l)},"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,n,t,a){mxGraph.call(this,e,n,t,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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,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 n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[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 n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},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,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},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,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),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(e,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&1<this.graph.getSelectionCount()&&(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,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var n=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(n),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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.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+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=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("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.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+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,n=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},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 i=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){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()),0<a.getSelectionCount()){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(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){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},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,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,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 n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),mxEvent.consume(e)}))}},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/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),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-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>'),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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </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>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" 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="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </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 ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.length}})</span>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value"><span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),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 s20"></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"\n 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"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n 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"\n ng-class="{\'has-children\': vm.hasChildren}"\n 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 id="{{ node.id }}" 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 margin-right-20" 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 margin-right-20" 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"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input&Media Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered"></timer>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" disable-autocomplete="vm_pb.currentUser.privacyEnabled" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div id="{{\'div_session_\'+session.id.substr(0,32)}}" ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Anser" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1 && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length>1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title" privacy ng-cloak></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="local-audio" autoplay hidden=true></audio>\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak ng-keypress="vm.keyPress($event)">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" md-autofocus ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" class="md-inline-form" novalidate>\n <md-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="TOOLBAR.SETTINGS">Settings</span>\n <md-button class="md-icon-button" ng-click="vm.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 class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\n </md-dialog-content>\n\n <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.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$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/core/directives/ms-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.selectedResultIndex}" 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 \x3c!-- <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"\n 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"\n 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"\n 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\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n 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"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n 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"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\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)}" 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)}" 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-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground, \'font-size\': (widget.titleFontSize || 12) }" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),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="header" ui-view="header"></div>\n\n<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>\n\n<div id="footer" ui-view="footer"></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}" 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/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),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" class="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 ng-if="!vm.progressLogin">\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 <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <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> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\n\n <div ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" 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="fab fa-google" 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.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" autofocus>\n\n <div ng-messages="extractedReportForm[\'name\'].$error" ng-show="extractedReportForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($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 class="main scrollable" ms-scroll>\n\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.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'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="10">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="basename ">{{extractedReport.basename}}</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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus>\n\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 name="table" 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="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer 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="\'report_dial\'">Dial Report</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-option ng-value="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</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="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</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" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($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 class="main scrollable" ms-scroll>\n\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</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\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-if="vm_rc.crudPermissions.canEdit">\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}}\n </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}}\n </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}}\n </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" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-if="vm_rc.crudPermissions.canEdit" 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 <pre></pre>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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">{{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">{{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">{{gb.value ? \'Yes\' : \'No\'}}</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">{{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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-stretch-tabs="always" flex layout-fill 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-disabled="!vm.crudPermissions.canEdit" 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-disabled="!vm.crudPermissions.canEdit" 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 </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, vm.crudPermissions)">\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 class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</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-if="vm_rf.crudPermissions.canEdit" 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="vm_rf.crudPermissions.canDelete" 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" ng-if="vm_rf.crudPermissions.canEdit">\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" ng-if="vm_rf.crudPermissions.canEdit"></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" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\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)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></td>\n <td md-cell class="actions" ng-if="vm_rf.crudPermissions.canEdit">\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 Field\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 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 </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, vm.crudPermissions)">\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">{{ vm.valueReplacer(key, 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 md-progress="vm.promise">\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">{{ vm.valueReplacer(key, 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" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete && 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" ng-model-options="{ debounce: 1000 }" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n <div flex></div>\n <ms-search-bar on-search="vm.getReports()" query="vm.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.crudPermissions.canEdit && 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.crudPermissions.canEdit && 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 translate="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.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && 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 ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && 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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</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($event)" 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/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show 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.WEB_REPORT">Web 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>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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>\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 md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\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/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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($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\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 translate="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.png" /></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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|google_tts_language|ispeech_tts_language|ispeech_asr_language|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_language" 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]" ng-disabled="v.canSelect === false">{{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-disabled="!vm.crudPermissions.canEdit" 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\'" ng-disabled="v.canSelect === false">{{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\'" ng-disabled="v.canSelect === false">{{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" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr|googleasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" 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|text|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n \x3c!-- END TEXTAREA INPUT --\x3e\n\n \x3c!-- START URL INPUT --\x3e\n <input ng-switch-when-separator="|" ng-switch-when="ndauth_url|ndassistant_url|url" type="url" name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n \x3c!-- END URL 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" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\n \x3c!-- END TEXT INPUT--\x3e\n\n <div class="hint" ng-if="attribute.help">\n <span 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" ng-if="vm.crudPermissions.canEdit">\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 <md-button class="md-icon-button" ng-click="vm.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 <md-button class="md-icon-button" ng-click="vm.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 <md-button class="md-icon-button" ng-click="vm.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 <md-button class="md-icon-button" ng-click="vm.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/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</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/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 <md-button class="md-icon-button" ng-click="vm.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" ng-init="vm.onInit()">\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/cprojects.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-if="vm.crudPermissions.canEdit" 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" ng-model-options="{ debounce: 1000 }" 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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" 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 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 translate="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 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canDelete">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-if="vm.crudPermissions.canEdit" 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 <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($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\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="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</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>{{ \'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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</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 " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="CHAT.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" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.chatQueue.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="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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></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.saveChatQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.chatQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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="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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="CHAT.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" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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\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="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></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.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</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 name="ListId" ng-model="vm.chatWebsite.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'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 <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite" ng-init="vm.onInit()">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.chatCannedAnswer.description">\n\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$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.crudPermissions.canEdit && vm.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($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/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\n <md-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-content flex layout-padding>\n <pre ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" class="md-inline-form" novalidate>\n <md-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.chatProactiveAction.name" ng-required="true" autofocus>\n\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$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.crudPermissions.canEdit && vm.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($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}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></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.saveChatWebsite()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (vidaooForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</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 name="ListId" ng-model="vm.chatWebsite.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\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 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="chatWebsite-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n <form name="scriptForm" flex="100" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n </form>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container interval 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.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.SNIPPET">SNIPPET</span>\n </md-tab-label>\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" 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" ng-disabled="!vm.crudPermissions.canEdit">\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.showAgentAvatar" aria-label="ShowAgentAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus 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.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" 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" md-maxlength="255" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</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" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus 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.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\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" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'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 ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform 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.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus 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.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction 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.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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" ng-disabled="!vm.crudPermissions.canEdit"><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 name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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 <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-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="chatWebsite-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 <div class="chatWebsite-detail-form-container agentavatar 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.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-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="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar 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.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-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="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar 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.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-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="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.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="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block" ng-if="item.type != \'upload\'">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\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.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\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.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\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.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\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.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" 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.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo 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.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\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 <md-tab-body>\n <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="CHAT.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedChatWebsiteApps.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.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.chatWebsiteApps.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.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($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.editChatWebsiteApp($event, $index)"><span class="text-truncate actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editChatWebsiteApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\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.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" 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.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\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="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.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\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.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" 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/chat/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="CHAT.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'CHAT.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'CHAT.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'CHAT.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'CHAT.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'CHAT.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'CHAT.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'CHAT.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"CHAT.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"CHAT.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"CHAT.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"CHAT.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"CHAT.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"CHAT.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-label=\"{page: '{{'CHAT.PAGE' | translate}}:', rowsPerPage: '{{'CHAT.ROWSPERPAGE' | translate}}:', of: '{{'CHAT.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/chat/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="CHAT.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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/chat/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($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 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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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\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\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\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\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" md-maxlength="255">\n\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 ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</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\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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\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 <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()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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="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 <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="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: 1000 }" 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.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="CONTACTS.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" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.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 \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" ng-model="vm.selectedList" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\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 </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container ng-init="vm.getAssignedCompanies()">\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="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-fab-speed-dial id="add-contact-button" ng-if="vm.crudPermissions.canEdit" 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 class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | 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 \x3c!-- / ADD USER BUTTON --\x3e\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 privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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 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]">\n </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">{{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-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\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\n Fields</md-button>\n </div>\n\n <md-input-container class="md-block" ng-if="vm.allFields" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth">\n </mdp-date-picker>\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\n 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\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" ng-if="vm.crudPermissions.canEdit">\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" ng-init="vm.onInit()">\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 ng-if="vm.crudPermissions.canEdit">\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 && socialForm.$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-stretch-tabs="always" flex layout-fill 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 layout="column" flex="70">\n <md-card class="contact-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 text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO\n </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 ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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\n 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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" mdp-disabled="!vm.crudPermissions.canEdit"></mdp-date-picker>\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{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 </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.Tags" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{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_TAG">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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit"></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 </md-card>\n <md-card class="contact-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 text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\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\n </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}}\n </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" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click 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]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </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-block" 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 class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.dialer">\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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'CONTACTMANAGER.RECALLME\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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 privacy ng-cloak>{{hopper.phone}}</td>\n <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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-if="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($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.crudPermissions.canDelete && 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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 translate="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 privacy ng-cloak>{{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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 translate="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 privacy ng-cloak>{{history.calleridnum}}</td>\n <td md-cell>{{history.statedesc}}</td>\n <td md-cell>{{history.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{history.starttime | date:\'medium\'}}</td>\n <td md-cell>{{history.endtime | date:\'medium\'}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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\n <md-tab ng-if="vm.license.jscripty">\n <md-tab-label>\n <span translate="CONTACTMANAGER.JSCRIPTY">JSCRIPTY</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.SESSIONS">Sessions</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryJscriptySession.filter = query;" on-collapse="vm.queryJscriptySession.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n\n \x3c!-- SESSION TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryJscriptySession.sort" md-on-reorder="vm.getJscriptySessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | 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 <th md-column md-order-by="agent">{{ \'CONTACTMANAGER.AGENT\' | translate }}</th>\n <th md-column md-order-by="project">{{ \'CONTACTMANAGER.PROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.jscriptySessions.count">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, session) in vm.jscriptySessions.rows">\n <td md-cell>{{session.id}}</td>\n <td md-cell>{{session.starttime | date:\'medium\'}}</td>\n <td md-cell>{{session.endtime | date:\'medium\'}}</td>\n <td md-cell>{{session.membername}}</td>\n <td md-cell>{{session.projectname}}</td>\n <td md-cell class="actions"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / SESSION TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\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/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\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" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" class="md-icon-button" ng-click="vm.closeDialog()">\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.processing || vm.result.finish" 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\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </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\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <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" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.affectedRows"></span>\n </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 ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.failedRows"></span>\n </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 ng-if="vm.result.duplicatedRows && vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </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\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 ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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.png" 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/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" ng-required="true" autofocus>\n\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 name="type" ng-model="vm.globalCustomField.type" required ng-disabled="!vm.newGlobalCustomField">\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 <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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 <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($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 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\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 translate="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.png" /></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-required="true" autofocus>\n\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 name="type" ng-model="vm.customField.type" required ng-disabled="!vm.newCustomField">\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 <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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 <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\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 <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()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($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 </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </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>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.required? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="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.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" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($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 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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab); $event.stopPropagation()">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.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" class="pr-10">\n <div layout="row" flex="75" class="flex-scrollable only-x">\n <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload" class="s22"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="column" layout-align="space-between start" class="word-break-all mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="s20 mr-5">\n </md-icon>\n <span class="h2" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\n <md-icon md-font-icon="icon-account" class="s20"></md-icon>\n Name: <span privacy ng-cloak>{{ call.calleridname }}</span>\n </div>\n\n <div class="text h4 pt-8" ng-if="call.queue">\n <md-icon md-font-icon="icon-stackoverflow" class="s20"></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" class="s20"></md-icon>\n Extra: {{call.variables.extravar}}\n </div>\n </div>\n <div layout="row" layout-align="center end" class="mt-8">\n <md-button ng-if="call.disposedAt" type="submit" ng-click="vm.disposeCall($event, call)" class="send-button md-accent md-raised mr-0 mv-0">\n {{ \'DASHBOARDS.DISPOSE\' | translate}}\n </md-button>\n </div>\n </md-card-content>\n </md-card>\n </div>\n <div flex="25" layout="row" layout-md="column" layout-sm="column" layout-align="end center" layout-align-md="center center">\n <md-button type="submit" ng-click="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.firstName" class="text-truncate" required privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name\n field is required</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\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="vm.contact.lastName" class="text-truncate" privacy ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.phone" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.mobile" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.email" class="text-truncate" privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a\n valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.fax" privacy ng-cloak>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\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 <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.companies.rows">{{company.name}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </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="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tab.tags.rows">\n {{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="vm.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="vm.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="vm.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="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="DASHBOARDS.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 </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" ng-model="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.id}} - {{list.name}}\n </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 vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]">\n </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]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\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">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" 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}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.call.mandatoryDisposition">\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 ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\n <div ng-if="vm.isReschedule">\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="disposition.date.$error" ng-show="disposition.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="disposition.time.$error" ng-show="disposition.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-input-container ng-if="!vm.dialerCall" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n {{ queueCampaign.name }} ({{ queueCampaign.dialActive ? \'Active\' : \'Not Active\' }})</md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" 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/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-background-bg">\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-disabled="vm.disable" 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/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-if="vm.selectedTab === 0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-if="vm.selectedTab === 1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\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-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.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>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>"),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\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-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children | orderBy:\'weight\'" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span>\n </md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" 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 </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.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | 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 translate="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(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}}\n {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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(contact.id)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, 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($event, 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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.getSize(vm_bull.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.voiceQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.getSize(vm_voice.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">\n {{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">\n {{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n \x3c!-- ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}" --\x3e\n <md-card class="tooltip-preview-text">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" 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 </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.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | 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 translate="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($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="firstName" privacy ng-cloak>\n {{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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($event, 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($event, 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($event, 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 <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)" ng-disabled="!openchannelAccount.replyUri">\n {{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\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.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\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.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\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>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column width="10px" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\n <div layout="row" layout-align="center center">\n <span translate="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">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </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>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\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" ng-if="vm.currentUser.downloadVoiceRecordings">\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 ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\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.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell privacy ng-cloak>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}">\n </md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\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.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">\n {{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\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.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'VOICE.ID\' | translate}}</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{ voiceCall.userDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></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="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.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\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-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\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-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }}\n </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'">\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="CHAT.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="CHAT.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="CHAT.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="CHAT.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'CHAT.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="CHAT.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-class="{\'mail-no-secret\': !vm.secret}" ng-cloak>\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </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.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="!vm.secret" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text" ng-keypress="vm.keyPress($event)">\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button ng-click="vm.removeAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} -\n {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="WHATSAPP.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="WHATSAPP.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="WHATSAPP.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="WHATSAPP.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'WHATSAPP.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="WHATSAPP.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition" ng-init="vm.onInit()">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.mandatoryDisposition">\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="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></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 <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.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\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.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" 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/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\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">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows">{{\n agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent 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 <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.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align="center center" flex>\n <div layout="row" layout-align="center center" style="flex-grow: 1; align-self: stretch" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{ item.browserName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{ item.osName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{ item.deviceModel }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{ item.referer }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.ratingMessage }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled privacy ng-cloak>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} -\n <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html\'">\n </div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{ vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{ item.externalUrl }}" target="_blank">\n <h4>{{ item.externalUrl }}</h4>\n </a>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{ item.createdAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{ item.closedAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{ tag.name }}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{ item.type ? item.type : \'no type\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{ item.uniqueid ? item.uniqueid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{ item.starttime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{ item.endtime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{ item.duration ? item.duration : \'--\' }}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{ item.note ? item.note : \'--\' }}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{ item.subject }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.VISIBILITY">Visibility</p>\n <h4 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.PRIVATE\'}}"></h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button ng-if="vm.downloadPermissions.attachments" class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <div ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.interactionTimelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach && vm.downloadPermissions.attachments">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">\n [{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname ||\n vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach && vm.downloadPermissions.attachments">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n <div ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center" class="p-8">\n <md-icon ng-if="vm.tab.channel === \'openchannel\' && vm.interaction.threadId" md-font-icon="fas fa-users" class="s16">\n <md-tooltip><span translate="DASHBOARDS.PUBLIC_INTERACTION">The interaction is public</span></md-tooltip>\n </md-icon>\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> -\n {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt"></timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\n <md-menu-item>\n <md-button ng-click="vm.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n</div>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime"></timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.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-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | 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 </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\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 </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 \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 </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 </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_MANAGED_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_MANAGED_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_MANAGED_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 </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.MANAGED_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.MANAGED_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.MANAGED_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 \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 </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.ABANDONED_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.ABANDONED_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.ABANDONED_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 </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'),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.VOICE_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.VOICE_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.VOICE_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) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.outboundDropCallsDayCallersExit || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.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-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.outboundDropCallsDayTimeout || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROPPED\' | 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.DROPPED_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.DROPPED\' | 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 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 \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.VOICE_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.VOICE_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.VOICE_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.outboundanswerRate || 0 |number : 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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.outboundAbandonRate || 0}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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-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.outboundDropRate }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROP_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.DROP_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.DROP_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\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/fax/user.general.fax.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-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.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-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.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-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.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-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" ng-init="vm.onInit()" 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 ng-if="vm.hasDashboardPermissions" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n <md-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to\n navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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/dashboards/views/general/user/whatsapp/user.general.whatsapp.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-whatsapp" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\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" ng-required="true" autofocus>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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 name="TrunkId" ng-model="vm.faxAccount.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-required="true">\n\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.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'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 <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount" ng-init="vm.onInit()">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.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="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\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}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></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.saveFaxAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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 <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="faxAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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 <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 <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="maxrate" ng-model="vm.faxAccount.maxrate" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="tech" ng-model="vm.faxAccount.tech" required ng-disabled="!vm.crudPermissions.canEdit">\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 <div class="faxAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAX.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <md-tab-body>\n <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="FAX.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedFaxAccountApps.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.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.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.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.faxAccountApps.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.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($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.editFaxAccountApp($event, $index)"><span class="text-truncate actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editFaxAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="FAX.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\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.faxAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="FAX.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" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAX.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\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="key">{{ \'FAX.KEY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></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.saveFaxQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.faxQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="FAX.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" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAX.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/fax/views/realtime/accounts/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="FAX.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getFaxAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate}}</th>\n <th md-column>{{\'FAX.KEY\' | translate}}</th>\n <th md-column>{{\'FAX.TOTAL\' | translate}}</th>\n <th md-column>{{\'FAX.IN\' | translate}}</th>\n <th md-column>{{\'FAX.OUT\' | 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">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/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="FAX.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'FAX.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'FAX.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'FAX.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'FAX.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'FAX.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'FAX.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'FAX.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'FAX.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"FAX.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"FAX.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"FAX.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"FAX.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"FAX.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"FAX.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-label=\"{page: '{{'FAX.PAGE' | translate}}:', rowsPerPage: '{{'FAX.ROWSPERPAGE' | translate}}:', of: '{{'FAX.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/fax/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="FAX.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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/fax/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</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/fax/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="FAX.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | 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">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="FAX.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>{{\'FAX.\' + 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>{{\'FAX.\' + 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="FAX.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),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="/api/settings/1/logo_login" alt="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" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" 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/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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="https://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" 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 ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\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" ng-if="!vm.license.custom">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 ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><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/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" class="md-inline-form" novalidate>\n <md-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.deskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'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">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'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 name="authType" ng-model="vm.deskAccount.authType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'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" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'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.deskAccount.description">\n\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$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.crudPermissions.canEdit && vm.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskAccount" ng-click="vm.deleteDeskAccount($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/deskAccounts/deskAccounts.html",'<div id="deskAccounts" 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.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.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.selectedDeskAccounts =[]">\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-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.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="INTEGRATIONS.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.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" 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.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($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 </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\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\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="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT 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 DESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" class="md-inline-form" novalidate>\n <md-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.deskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'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 name="channel" ng-model="vm.deskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'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 name="type" ng-model="vm.deskConfiguration.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="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$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.crudPermissions.canEdit && vm.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($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/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" class="md-inline-form" novalidate>\n <md-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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.content.$error"\n ng-show="deskAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" 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-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\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="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-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.deskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'basic\'">Basic</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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="deskAccount-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="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\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="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\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 && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($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/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-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.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'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.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'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.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</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.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'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.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'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.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$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.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($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/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" 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.DYNAMICS365ACCOUNTS">Dynamics365Accounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDynamics365Accounts.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.selectedDynamics365Accounts =[]">\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-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.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="INTEGRATIONS.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.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" 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.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($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 </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\n \x3c!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\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.dynamics365Accounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT 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 DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-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.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'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 name="channel" ng-model="vm.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'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 name="type" ng-model="vm.dynamics365Configuration.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="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'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">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$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.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($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/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" 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-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\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="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-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.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</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.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="dynamics365Account-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="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\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="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($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/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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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" ng-required="true">\n\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" ng-required="true">\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$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.crudPermissions.canEdit && vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION" 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\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 && vm_cc.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-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.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'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.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$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.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($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/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-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.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'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 name="channel" ng-model="vm.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'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 name="type" ng-model="vm.freshsalesConfiguration.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="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$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.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($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/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" 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-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\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="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-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.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="freshsalesAccount-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="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\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="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($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/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" 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.FRESHSALESACCOUNTS">FreshsalesAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshsalesAccounts.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.selectedFreshsalesAccounts =[]">\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-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.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="INTEGRATIONS.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.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" 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.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($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 </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\n \x3c!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\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.freshsalesAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT 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 FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT 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" ng-required="true" autofocus>\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\n\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" ng-required="true">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\n\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" ng-required="true">\n\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" ng-required="true">\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$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.crudPermissions.canEdit && vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION" 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveSalesforceAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-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.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'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.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'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.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$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.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($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/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-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.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'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 name="channel" ng-model="vm.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'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 name="type" ng-model="vm.servicenowConfiguration.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="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$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.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($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/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" 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-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\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="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-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.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="servicenowAccount-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="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\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="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($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/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" 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.SERVICENOWACCOUNTS">ServicenowAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedServicenowAccounts.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.selectedServicenowAccounts =[]">\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-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.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="INTEGRATIONS.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.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" 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.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($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 </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\n \x3c!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\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="email">{{ \'INTEGRATIONS.EMAIL\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT 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 SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT 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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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" ng-required="true">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION" 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" class="md-inline-form" novalidate>\n <md-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.vtigerAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description">\n\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$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.crudPermissions.canEdit && vm.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($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/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" class="md-inline-form" novalidate>\n <md-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.vtigerConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'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 name="channel" ng-model="vm.vtigerConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'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 name="type" ng-model="vm.vtigerConfiguration.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="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$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.crudPermissions.canEdit && vm.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($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/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" class="md-inline-form" novalidate>\n <md-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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.content.$error"\n ng-show="vtigerAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" 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-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\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="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-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.vtigerAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host 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.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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\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 <md-tab-body>\n <div class="vtigerAccount-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="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\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="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($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/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" 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.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.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.selectedVtigerAccounts =[]">\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-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.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="INTEGRATIONS.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.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" 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.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($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 </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\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\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.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT 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 VTIGERACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT 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" ng-required="true" autofocus>\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\n\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" ng-required="true">\n\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 name="authType" 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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\n\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" value="LOCALIP" ng-required="true">\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveZendeskAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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\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 && vm_cc.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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 name="channel" 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 name="type" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION" 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="INTEGRATIONS.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" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" class="md-inline-form" novalidate>\n <md-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.zohoAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'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.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</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.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'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.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'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.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code 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.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'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.zohoAccount.description">\n\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$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.crudPermissions.canEdit && vm.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoAccount" ng-click="vm.deleteZohoAccount($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/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" class="md-inline-form" novalidate>\n <md-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.zohoConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'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 name="channel" ng-model="vm.zohoConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'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 name="type" ng-model="vm.zohoConfiguration.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="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$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.crudPermissions.canEdit && vm.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($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/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" class="md-inline-form" novalidate>\n <md-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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.content.$error"\n ng-show="zohoAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" 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-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\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="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-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.zohoAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</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.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\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.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\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.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken 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.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="zohoAccount-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="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\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="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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 ng-if="vm_cc.crudPermissions.canDelete" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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 ng-if="vm_cc.crudPermissions.canDelete">\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.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($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/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" 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.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.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.selectedZohoAccounts =[]">\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-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.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="INTEGRATIONS.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.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" 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.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($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 </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\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\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="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT 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 ZOHOACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/jscripty/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="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.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="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description">\n\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="ADD" translate="JSCRIPTY.ADD_PROJECT" translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="JSCRIPTY.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="JSCRIPTY.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone 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="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" class="md-inline-form" novalidate>\n <md-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 <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-light" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/view.html",'<div id="jscripty-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="JSCRIPTY.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}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveProject()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (builderForm.$invalid) || (previewForm.$invalid) || (sessionsForm.$invalid) || (answersForm.$invalid)" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-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="JSCRIPTY.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.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.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.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="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container builder md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectBuilderController as vm_bc" ng-init="vm_bc.init(vm.project)">\n <mw-form-builder ng-if="vm_bc.project.formData" form-data="vm_bc.project.formData" options="vm_bc.optionsBuilder" read-only="false"></mw-form-builder>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.PREVIEW">PREVIEW</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container preview md-background-bg md-whiteframe-1dp">\n <div layout="column" layout-align="center" ng-controller="ProjectViewerController as vm_vc" ng-init="vm_vc.init(vm.project)">\n <div layout="row" layout-align="center">\n <md-button class="md-raised md-accent" aria-label="Reset" ng-click="vm_vc.resetViewer()">\n Reset\n </md-button>\n </div>\n <mw-form-viewer ng-if="vm_vc.project.formData" form-data="vm_vc.project.formData" response-data="vm_vc.responseData" on-submit="vm_vc.onSubmit($event)" api="vm_vc.formViewer"></mw-form-viewer>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</span>\n <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.rows">\n <td md-cell>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'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="JSCRIPTY.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.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\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.projectSessions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" 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="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-light" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\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/jscripty/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-script" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="JSCRIPTY.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="JSCRIPTY.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="JSCRIPTY.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="JSCRIPTY.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="JSCRIPTY.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="JSCRIPTY.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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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\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">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'JSCRIPTY.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'JSCRIPTY.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'JSCRIPTY.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.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="JSCRIPTY.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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT 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" ng-required="true" autofocus>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="email" ng-model="vm.mailAccount.email" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$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" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount" ng-init="vm.onInit()">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$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.crudPermissions.canEdit && vm.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($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}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></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.saveMailAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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="email" ng-model="vm.mailAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="mailAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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 <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.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.IMAP_PORT_REQUIRED">IMAP_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.Imap.tls" aria-label="ssl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$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" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\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 class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.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 ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</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" min="1" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</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.SMTP">SMTP</span>\n </md-tab-label>\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.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$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" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\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.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\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.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" 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.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="MAIL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedMailAccountApps.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.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.mailAccountApps.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.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($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.editMailAccountApp($event, $index)"><span class="text-truncate actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editMailAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\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.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MAIL.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" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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\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="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></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.saveMailQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.mailQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MAIL.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" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" class="md-inline-form" novalidate>\n <md-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.mailSubstatus.name" ng-required="true" autofocus>\n\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailSubstatus.description">\n\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$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.crudPermissions.canEdit && vm.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($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/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" 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.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.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.selectedMailSubstatuses =[]">\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-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.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="MAIL.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.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" 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.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\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="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.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS 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 MAILSUBSTATUS BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/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="MAIL.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getMailAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate}}</th>\n <th md-column>{{\'MAIL.KEY\' | translate}}</th>\n <th md-column>{{\'MAIL.TOTAL\' | translate}}</th>\n <th md-column>{{\'MAIL.IN\' | translate}}</th>\n <th md-column>{{\'MAIL.OUT\' | translate}}</th>\n <th md-column>{{\'MAIL.IMAP_STATUS\' | translate}}</th>\n <th md-column>{{\'MAIL.SMTP_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.mailAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active && (vm.mailAccounts[value].Imap.lastSync && vm.mailAccounts[value].Imap.lastSync != \'\')">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</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 ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/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="MAIL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MAIL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MAIL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MAIL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MAIL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MAIL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MAIL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MAIL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MAIL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MAIL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MAIL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MAIL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MAIL.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"MAIL.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-label=\"{page: '{{'MAIL.PAGE' | translate}}:', rowsPerPage: '{{'MAIL.ROWSPERPAGE' | translate}}:', of: '{{'MAIL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/mail/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MAIL.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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/mail/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</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/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" class="md-inline-form" novalidate>\n <md-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="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.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="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type 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.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" 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-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\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="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="plugin-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="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.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="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" disabled>\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type 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.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" disabled>\n\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" disabled>\n\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version 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/marketplace/views/plugins/plugins.html",'<div id="plugins" 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-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.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.selectedPlugins =[]">\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="MARKETPLACE.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-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.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="MARKETPLACE.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.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.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.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.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 <div ng-if="vm.installing">\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="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\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="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MARKETPLACE.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN 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!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="MARKETPLACE.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="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\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 <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveIvrCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</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 <md-tab-body>\n <div class="ivrCampaign-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 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\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 <div class="ivrCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move 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="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MOTIONDIALER.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" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="dialMethod" 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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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"></md-slider>\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 name="dialPredictiveOptimization" 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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</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" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority 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.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\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 <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveQueueCampaign()" ng-if="vm.crudPermissions.canEdit" 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) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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 name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 name="dialMethod" ng-model="vm.queueCampaign.dialMethod" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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"></md-slider>\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 name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" ng-disabled="!vm.crudPermissions.canEdit">\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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</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" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\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 <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</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 <md-tab-body>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.queueCampaign.autopause" ng-disabled="!vm.crudPermissions.canEdit">\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 name="ringinuse" ng-model="vm.queueCampaign.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt 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.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview 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.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\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="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'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.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt 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.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds 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.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme 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.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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 ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\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 <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move 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="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="MOTIONDIALER.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" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.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.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),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.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MOTIONDIALER.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MOTIONDIALER.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MOTIONDIALER.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MOTIONDIALER.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MOTIONDIALER.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MOTIONDIALER.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MOTIONDIALER.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MOTIONDIALER.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MOTIONDIALER.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MOTIONDIALER.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MOTIONDIALER.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" 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-label=\"{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" 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.getCampaigns()" query="vm.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 translate="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" ng-if="vm.crudPermissions.canEdit">\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 <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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 </div>\n</md-toolbar>\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="7">\n <div layout="row" layout-align="center center">\n <span translate="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 privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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 </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.getQueues()" query="vm.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>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 translate="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 + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 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.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (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.outboundDropCallsDayTimeout) ? (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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-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.queueCampaign.name }} Info</span>\n <md-button class="md-icon-button" ng-click="vm.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 class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | 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 md-order-by="dialActive">{{ \'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.count > 0">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</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-18 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" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri 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.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'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 <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount" ng-init="vm.onInit()">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.openchannelCannedAnswer.description">\n\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($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}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></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.saveOpenchannelAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri 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.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\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 <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey 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.openchannelAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\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.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\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.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" 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.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="OPENCHANNEL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOpenchannelAccountApps.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.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.openchannelAccountApps.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.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($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.editOpenchannelAccountApp($event, $index)"><span class="text-truncate actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editOpenchannelAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\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.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="OPENCHANNEL.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" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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\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="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></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.saveOpenchannelQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.openchannelQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="OPENCHANNEL.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" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/openchannel/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="OPENCHANNEL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'OPENCHANNEL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'OPENCHANNEL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'OPENCHANNEL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'OPENCHANNEL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'OPENCHANNEL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'OPENCHANNEL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"OPENCHANNEL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"OPENCHANNEL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"OPENCHANNEL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"OPENCHANNEL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"OPENCHANNEL.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"OPENCHANNEL.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-label=\"{page: '{{'OPENCHANNEL.PAGE' | translate}}:', rowsPerPage: '{{'OPENCHANNEL.ROWSPERPAGE' | translate}}:', of: '{{'OPENCHANNEL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/openchannel/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="OPENCHANNEL.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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/openchannel/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</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/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/cloudProviders.html",'<div id="cloudProviders" 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.AITOOLS">AiTools</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAiTools.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.selectedAiTools =[]">\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-cloudProviders-count">\n <span>{{vm.selectedAiTools.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="SETTINGS.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.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" 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.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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\n \x3c!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\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="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER 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 CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-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.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'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.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey 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.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$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.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($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/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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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" ng-required="true">\n\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$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="customizationsForm" 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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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" ng-required="true">\n\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'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 <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\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()" 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()" 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 ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred 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.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.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="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.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="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.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="{{preferredimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon 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.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.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, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.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="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.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="{{faviconimage.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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$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="globalForm" 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" value="1000" ng-required="true" autofocus>\n\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'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 ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar 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.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl 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 <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report 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.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf" value="1000">\n\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface 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.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording 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.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container security 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.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.securePassword" aria-label="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration 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.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container imapgeneralsettings 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.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso 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.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools 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.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LANGUAGE_REQUIRED">Language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket 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.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount 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 \x3c!-- <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> --\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 \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 ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" 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 ng-if="!vm.license.demo && !vm.license.gray && vm.license.months != 36" 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"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></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 ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.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>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\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.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></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" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></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 flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</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" flex="33">\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\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\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 | limitTo:3" flex="33">\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\'">{{ \'SETTINGS.\' + (vm.license[other.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" flex="33">\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'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</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-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</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" layout-align="space-between center">\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" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><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" layout-align="space-between center">\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.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\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/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\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" translate="SETTINGS.UPDATE_LICENSE">Update 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\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key 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.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\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 name="type" ng-model="vm.network.type" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</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])$/" ng-required="true">\n\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])$/" ng-required="true">\n\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 <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\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>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" 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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <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-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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="SETTINGS.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" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="smtpForm[\'name\'].$error" ng-show="smtpForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.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="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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" ng-required="true">\n\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 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" value="465" ng-required="true">\n\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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\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" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="(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="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="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.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="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'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" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'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 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" value="465" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'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" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'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-stretch-tabs="always" md-border-bottom flex layout-fill 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 class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</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.total / 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 == \'agi\' ? \'agi (Cally Square IVR)\' : 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 <id | name></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 <id | name | all></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 <id | name></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/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="SMS.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'SMS.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'SMS.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'SMS.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'SMS.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'SMS.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'SMS.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'SMS.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'SMS.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"SMS.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"SMS.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"SMS.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"SMS.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"SMS.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"SMS.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-label=\"{page: '{{'SMS.PAGE' | translate}}:', rowsPerPage: '{{'SMS.ROWSPERPAGE' | translate}}:', of: '{{'SMS.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/sms/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="SMS.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="SMS.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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/sms/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</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/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" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</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 name="ListId" ng-model="vm.smsAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" 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-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\n\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.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken 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.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\n\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\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID 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.smsAccount.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount" ng-init="vm.onInit()">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.smsCannedAnswer.description">\n\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$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.crudPermissions.canEdit && vm.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($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}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></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.saveSmsAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</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 name="ListId" ng-model="vm.smsAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken 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.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( ((vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport) || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'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 class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMS.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\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.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="SMS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\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.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" 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.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="SMS.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedSmsAccountApps.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.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.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.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.smsAccountApps.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.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($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.editSmsAccountApp($event, $index)"><span class="text-truncate actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editSmsAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="SMS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="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.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\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.smsAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="SMS.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" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMS.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\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="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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 name="strategy" 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" min="1" max="2147483" value="10" ng-required="true">\n\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/agentadd/agentadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSQUEUE">Add Agent to 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 <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\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" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></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.saveSmsQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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 name="strategy" ng-model="vm.smsQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="SMS.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" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMS.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\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="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="10">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone ">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true">\n\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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" ng-required="true" ng-disabled="!vm.newAgent">\n\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 class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\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.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" 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 && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true">\n\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'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 <md-input-container ng-if="vm.newUser" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="agentForm.oldPassword.$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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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" ng-init="vm.onInit()">\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\' && vm.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\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 <div ng-cloak>\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"><span translate="STAFF.CHANNELS">Channels</span></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, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" 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"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" 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"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" 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"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" 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"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" 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"><span translate="FAX.FAX">Fax</span></md-tooltip>\n <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></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.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$invalid) || (download_permissionsForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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="agent-detail-form-container security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change 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.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\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, vm.crudPermissions)" 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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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" ng-required="true" autofocus disabled>\n\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 ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="type" ng-model="vm.agent.type" ng-disabled="!vm.crudPermissions.canEdit">\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 name="allow" ng-model="vm.agent.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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="STAFF.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="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.agent.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension 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.OTHER_CHANNELS">OTHER_CHANNELS</span>\n </md-tab-label>\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 ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\n <md-tab-label>\n <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n </md-tab-label>\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\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 ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="agent-detail-form-container callforwarding 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.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber 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 ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc 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_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc 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_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'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\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 <md-tab-body>\n <div class="agent-detail-form-container general_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.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-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="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></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.agent.permissions.includes(father.id)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></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" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.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/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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\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 translate="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.png" /></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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true">\n\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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\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" ng-required="true" ng-disabled="!vm.newTelephone">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="telephoneForm.oldPassword.$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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\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 <div ng-cloak ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile 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 <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" ng-required="true" autofocus disabled>\n\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 name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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="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 name="nat" ng-model="vm.telephone.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="allow" ng-model="vm.telephone.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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="STAFF.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="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.telephone.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'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.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'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 <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$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.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($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/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'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.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'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 <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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 <md-button type="submit" ng-click="vm.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" 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($event)">\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 <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" 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-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\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="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-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 class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'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.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'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 <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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 <md-tab-body>\n <div class="userProfile-detail-form-container modules 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.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\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/userProfiles/userProfiles.html",'<div id="userProfiles" 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.USERPROFILES">UserProfiles</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUserProfiles.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.selectedUserProfiles =[]">\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-userProfiles-count">\n <span>{{vm.selectedUserProfiles.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="STAFF.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.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" 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.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\n \x3c!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\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 md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE 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 USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE 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 name="role" ng-model="vm.user.role" autofocus required 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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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" ng-required="true">\n\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" ng-required="true" ng-disabled="!vm.newUser">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true">\n\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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\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" ng-required="true" ng-disabled="!vm.newUser">\n\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/apikeymanager/apikeymanager.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">{{ \'\n STAFF.MANAGE_API_KEY\' | 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-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <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.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="userForm.oldPassword.$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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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/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}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\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.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\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 name="role" ng-model="vm.user.role" autofocus required disabled>\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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.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="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile 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.user.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></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, vm.crudPermissions)" 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()" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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" ng-required="true" autofocus disabled>\n\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 name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 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 name="nat" ng-model="vm.user.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="allow" ng-model="vm.user.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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="STAFF.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="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.user.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="STAFF.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" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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\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="userProfileId">{{ \'STAFF.USERPROFILE\' | 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="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="11">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" md-maxlength="255" ng-required="true" autofocus>\n\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 ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</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 name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.cannedAnswer.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-required="true" autofocus>\n\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.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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="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="4">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone 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" ng-required="true" autofocus>\n\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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 name="type" ng-model="vm.dashboarditem.type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | 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\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | 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 <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\n\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 ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" value="https://" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$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.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" value="HH:mm:ss" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$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.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" value="10" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" value="20" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\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 ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></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.saveCustomDashboard()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-tab-body>\n <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n <div ng-controller="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard, vm.crudPermissions)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" ng-if="vm_cd.crudPermissions.canEdit" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\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/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-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.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'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="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</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.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDisposition" ng-click="vm.deleteDisposition($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/dispositions/dispositions.html",'<div id="dispositions" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.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.selectedDispositions = []">\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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\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="TOOLS.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.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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\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}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveInterval()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\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">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$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 name="output" ng-model="vm.schedule.output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$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 <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" value="1" ng-required="true">\n\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit 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.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount 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="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\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>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress 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.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress 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 <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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 ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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!-- UPLOAD SOUND BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="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 your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" 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" ng-required="true" autofocus>\n\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\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 <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.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" open-on-input="true"></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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 md-order-by="color">{{ \'TOOLS.COLOR\' | 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="5">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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 ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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 <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | 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 <md-dialog-content ms-scroll>\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 md-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 name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | 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 <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span>\n </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 </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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.triggerActions.count }}" md-on-paginate="vm_dc.getTriggerActions" md-page-select>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/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.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | 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 == \'jscripty\'" class="md-block">\n <label translate="TOOLS.PROJECT">Project</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ 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.PROJECT_REQUIRED">Project 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 name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" 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 name="data1" ng-model="vm.action.data1" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ 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 == \'contactManager\'" class="md-block">\n <label translate="TOOLS.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\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.SEARCH_FIELDS_REQUIRED">Search fields 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.AUTOCREATECONTACT">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </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.AUTOCREATECONTACT_REQUIRED">AutoCreateContact field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATE_FIELD_REQUIRED">Autocreate 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.IGNOREDIALERCONTACTID">Ignore dialer contact Id</label>\n <md-select name="data5" ng-model="vm.action.data5" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.IGNOREDIALERCONTACTID_REQUIRED">Ignore dialer contact Id 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 name="data1" 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-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</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" ng-required="true">\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 == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</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.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_REQUIRED">Script field is required</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 name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</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" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ 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 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n 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 name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" 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" ng-required="true">\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" ng-required="true">\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 name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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 name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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" ng-required="true">\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.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables 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.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight 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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($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.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/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.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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 name="operator" ng-model="vm.allCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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 == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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 name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</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 <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($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.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/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.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | 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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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 name="operator" ng-model="vm.anyCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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 == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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 name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</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 <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 \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 <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveTrigger()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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 ng-disabled="!vm.crudPermissions.canEdit">\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 name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </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" ng-disabled="!vm.crudPermissions.canEdit">\n <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" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\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 <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\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="TOOLS.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 <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\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 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 translate="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 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 ">\n {{ \'TOOLS.\' + trigger.channel | uppercase | translate }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n <md-icon md-colors="{color: {{ trigger.status ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" 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 ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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" ng-required="true">\n\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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">\n\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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\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}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.trunk, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrunk()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="dtmfmode" ng-model="vm.trunk.dtmfmode" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="nat" ng-model="vm.trunk.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 name="qualify" ng-model="vm.trunk.qualify" required ng-disabled="!vm.crudPermissions.canEdit">\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.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 name="allow" ng-model="vm.trunk.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</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-option ng-value="\'h264\'">h264</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 name="insecure" ng-model="vm.trunk.insecure" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="callcounter" ng-model="vm.trunk.callcounter" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="trustrpid" ng-model="vm.trunk.trustrpid" required ng-disabled="!vm.crudPermissions.canEdit">\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 name="sendrpid" ng-model="vm.trunk.sendrpid" required ng-disabled="!vm.crudPermissions.canEdit">\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\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | 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 name="encryption" ng-model="vm.trunk.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="transport" ng-model="vm.trunk.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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 <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 name="otherFields" ng-model="vm.trunk.otherFields" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="TOOLS.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" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-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="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.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="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.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 ng-hide="vm.loading">\n <div layout="row" layout-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" 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-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.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.selectedScreenRecordings =[]">\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="VIDEO.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-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.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="VIDEO.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.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.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.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.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\n \x3c!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\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">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING 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/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | 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 <md-dialog-content ng-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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 ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$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/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit 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">{{ \'TOOLS.EDIT_INTERVAL\' | 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 <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\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" mdp-disabled="!vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" 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 </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'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.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'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.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'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.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['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>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'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.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'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.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'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 name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'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.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'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.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'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.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'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.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$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.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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>'),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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($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 </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\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="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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" ng-required="true">\n\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 name="options" ng-model="vm.chanSpy.options" multiple required>\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 <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="chanSpyForm[\'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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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 name="recordingFormat" 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-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($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 </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\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 translate="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.png" /></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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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" ng-required="true" autofocus>\n\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 ng-init="vm.initialize()" class="inbound-route-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.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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" ng-required="true" 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 name="context" ng-model="vm.inboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\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-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" 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 <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\n <span ng-if="vm.inboundRoute.exten">{{vm.inboundRoute.exten}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveInboundRoute()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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 name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\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 </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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 translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.inboundRoutes.count }}" md-on-paginate="vm.getInboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-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.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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" ng-required="true" 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 name="context" ng-model="vm.internalRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\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-internal-routes-button md-icon-button" aria-label="Go to internal routes" 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 <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\n <span ng-if="vm.internalRoute.exten">{{vm.internalRoute.exten}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveInternalRoute()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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 name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\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 </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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 translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.internalRoutes.count }}" md-on-paginate="vm.getInternalRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\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" ng-required="true" autofocus ng-disabled="!vm.newMusicOnHold">\n\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 name="mode" 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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true">\n\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 name="sort" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 name="id" ng-model="vm.mohSound.id" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveMusicOnHold()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus disabled>\n\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 name="mode" ng-model="vm.musiconhold.mode" required disabled>\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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </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>\n {{mohSound.id}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ mohSound.createdAt | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 ng-init="vm.initialize()" class="outbound-route-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.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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" ng-required="true" 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 name="context" ng-model="vm.outboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.getRouting()" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</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="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater\n or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\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-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" 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 <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\n <span ng-if="vm.outboundRoute.exten">{{vm.outboundRoute.exten}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveOutboundRoute()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container 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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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 name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.onActionsTabSelection()" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</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="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid\n greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\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 </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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 translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.outboundRoutes.count }}" md-on-paginate="vm.getOutboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.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.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),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.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"VOICE.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"VOICE.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"VOICE.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"VOICE.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"VOICE.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" 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-label=\"{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" 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>\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.ALIAS\' | 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.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="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 privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</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"></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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 </div>\n</md-toolbar>\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.ALIAS\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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 </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.getQueues()" query="vm.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>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 translate="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 \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 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.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 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 || 0) / 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 || 0) / 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.busy }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($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.addAgent($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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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.getTelephones()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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 translate="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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | 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">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="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 <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" 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" ng-required="true" autofocus>\n\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" ng-required="vm.voicemail.attach === \'yes\'">\n\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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" ng-required="true" ng-disabled="!vm.newVoicemail">\n\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 <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" 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="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\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 <div>\n <md-button type="submit" ng-click="vm.saveVoicemail()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\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\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" ng-required="true" disabled>\n\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 name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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 <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" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\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 name="envelope" ng-model="vm.voicemail.envelope" ng-disabled="!vm.crudPermissions.canEdit">\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 name="delete" ng-model="vm.voicemail.delete" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </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>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ message.stamp | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" class="md-inline-form" novalidate>\n <md-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.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'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.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </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.voicePrefix.description">\n\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$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.crudPermissions.canEdit && vm.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($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/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" 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.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.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.selectedVoicePrefixes =[]">\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-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.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="VOICE.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.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" 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.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($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 </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\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\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="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | 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.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voicePrefix, $event )" translate="VOICE.TEAMADD_VOICEPREFIX">\n teamadd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX 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 VOICEPREFIX BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX 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" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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 name="strategy" 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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceQueue()" ng-if="vm.crudPermissions.canEdit" 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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\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.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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 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 name="strategy" ng-model="vm.voiceQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</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" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</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 name="joinempty" ng-model="vm.voiceQueue.joinempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'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 name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'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 name="musiconhold" ng-model="vm.voiceQueue.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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 name="announce" ng-model="vm.voiceQueue.announce" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'FALSE\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds" ng-disabled="announce.canSelect === false">{{ announce.name }}</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</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 name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" ng-disabled="!vm.crudPermissions.canEdit">\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 name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\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 name="announce_position" ng-model="vm.voiceQueue.announce_position" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" ng-disabled="!vm.crudPermissions.canEdit">\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 name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Default</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds" ng-disabled="periodic_announce.canSelect === false">{{ periodic_announce.name }}</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 name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds" ng-disabled="queue_reporthold.canSelect === false">{{ queue_reporthold.name }}</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 name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds" ng-disabled="queue_youarenext.canSelect === false">{{ queue_youarenext.name }}</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 name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds" ng-disabled="queue_thereare.canSelect === false">{{ queue_thereare.name }}</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 name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds" ng-disabled="queue_callswaiting.canSelect === false">{{ queue_callswaiting.name }}</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 name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds" ng-disabled="queue_holdtime.canSelect === false">{{ queue_holdtime.name }}</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 name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds" ng-disabled="queue_minutes.canSelect === false">{{ queue_minutes.name }}</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 name="queue_minute" ng-model="vm.voiceQueue.queue_minute" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds" ng-disabled="queue_minute.canSelect === false">{{ queue_minute.name }}</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 name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds" ng-disabled="queue_seconds.canSelect === false">{{ queue_seconds.name }}</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 name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds" ng-disabled="queue_thankyou.canSelect === false">{{ queue_thankyou.name }}</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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.voiceQueue.autopause" ng-disabled="!vm.crudPermissions.canEdit">\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 name="ringinuse" ng-model="vm.voiceQueue.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\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 name="monitor_format" ng-model="vm.voiceQueue.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\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 name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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="VOICE.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" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($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 </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\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 translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.crudPermissions.canEdit" 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 name="rating" ng-model="vm.voiceRecording.rating" autofocus ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/edit/view.html",'<div id="voice-voiceRecording" 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-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\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="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings 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.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'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.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\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="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[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 <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition 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 ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript 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.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\n </div>\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="VOICE.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" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($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 </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\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="membername">{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | 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="16">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : 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>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id" model="\'voiceRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/main/apps/whatsapp/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="WHATSAPP.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'WHATSAPP.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'WHATSAPP.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'WHATSAPP.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'WHATSAPP.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'WHATSAPP.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'WHATSAPP.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'WHATSAPP.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'WHATSAPP.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'WHATSAPP.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'WHATSAPP.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"WHATSAPP.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"WHATSAPP.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"WHATSAPP.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"WHATSAPP.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"WHATSAPP.DEFAULT_PAUSE\">Default\n 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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"WHATSAPP.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-label=\"{page: '{{'WHATSAPP.PAGE' | translate}}:', rowsPerPage: '{{'WHATSAPP.ROWSPERPAGE' | translate}}:', of: '{{'WHATSAPP.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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 md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.WAITING\' | 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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.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="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.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-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.QUEUES">Queues</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/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'sinch\'">Sinch</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">Base URL</label>\n\n \x3c!-- <input type="text" name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" ng-required="true"> --\x3e\n\n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required>\n <md-option ng-value="\'https://us1.whatsapp.api.sinch.com\'">US Production</md-option>\n <md-option ng-value="\'https://eu1.whatsapp.api.sinch.com\'">EU Production</md-option>\n </md-select>\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VARIABLE_REQUIRED">Variable 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TAG_REQUIRED">Tag 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" 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-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\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="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></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.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n<label>{{vm.whatsappAccount.baseUrl}}</label>\n\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">BaseURL</label>\n \n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryBaseUrl.url" ng-repeat="mandatoryBaseUrl in vm.baseUrl" ng-disabled="mandatoryBaseUrl.canSelect === false">{{ mandatoryBaseUrl.name }}</md-option>\n </md-select>\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BASEURL_REQUIRED">Base URL field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.RECEIVEURL">receiveUrl</label>\n\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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 \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\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.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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 ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\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.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" 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="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\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="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.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.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedWhatsappAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.whatsappAccountApps.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.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($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.editWhatsappAccountApp($event, $index)"><span class="text-truncate actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canDelete">\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.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\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="WHATSAPP.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.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.DELETE_INTERACTION">\n Delete Interaction\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.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" 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/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappAccounts.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.selectedWhatsappAccounts =[]">\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="WHATSAPP.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-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.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.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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\n \x3c!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.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.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT 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 WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-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="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.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="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" 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-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\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="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></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.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></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.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappQueues.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.selectedWhatsappQueues =[]">\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="WHATSAPP.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-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.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.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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\n \x3c!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.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.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE 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 WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE 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"></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>\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\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\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_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin" aria-label="Chat Tab Search">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">\n {{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">\n {{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" 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_ct.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_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" 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/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-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(null)">\n <md-icon md-font-icon="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!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.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 \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\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.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></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/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-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(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),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/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</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="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\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\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),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 class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" class="md-icon-button" ng-click="vm.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="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.oldPassword.$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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</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/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\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() |\n uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" sessions="vm.webRTCSessions" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\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-diameter="32">\n </md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt"></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 layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt"></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 || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></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.png" 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"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\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 ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\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)"><span translate="TOOLBAR.CHANGEPASSWORD">Change\n Password</span></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\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></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 <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" 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 </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 flag-24" 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 ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" 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 <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">\n {{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\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/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">Preview</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div layout="row" ng-if="vm.preview">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true" privacy=\'vm.currentUser.privacyEnabled && (key === "firstName" || key === "lastName" || key === "phone" || key === "mobile" || key === "email" || key === "fax") \' ng-cloak>\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
+++ /dev/null
-[data-ng-click],[ng-click],[x-ng-click]{cursor:pointer}.ms-container{width:100%!important}.ms-container .ms-list{height:380px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:6px 12px!important;height:34px!important}md-input-container:not(.md-input-has-value) input:not(:focus){color:inherit!important}.ms-container .ms-search{height:34px;margin-bottom:5px;border:solid 1px #e5e5e5;background-color:#fff;box-shadow:none;width:100%;padding-left:6px}.ms-container .ms-footer{text-align:center}.no-border{border:none!important}.left .motion-spinner{border-top-color:#00d7cc!important;border-left-color:#00d7cc!important}.right .motion-spinner{border-top-color:#00d7cc!important;border-right-color:#00d7cc!important}.md-option-info-text{font-size:10px}md-pagination-wrapper{width:auto!important}md-autocomplete.no-container-margin md-autocomplete-wrap md-input-container{margin:0!important}md-dialog.report-selection-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.advanced-search-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}.md-dialog-action-center{justify-content:center!important}.flag-24{height:24px}button.auto-width{min-width:auto!important}button.size-8{transform:scale(.8)}md-icon.auto-size{height:auto!important;width:auto!important}md-switch.auto-height{height:auto!important}.hidden{visibility:hidden}.user-profile-section-help{background:#fcf20f0f;border:1px solid rgba(0,0,0,.12);padding:5px}.email-preview-message{display:-webkit-box;margin:0 auto;display:block;height:200px;line-height:1.4;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all}button.advanced-search.md-accent-bg.md-button.md-default-theme:not([disabled]).md-icon-button:hover{background-color:#0091ea}.blink{animation:blink 2s ease-in infinite}.no-click{pointer-events:none}.spinner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:rgba(43,43,43,.5)}ms-quick-filter[disabled]{pointer-events:none;opacity:.7}ms-search-bar[disabled]{pointer-events:none;opacity:.7}@keyframes blink{from,to{opacity:1}50%{opacity:0}}textarea.api-key-area{background:0 0;resize:none}.badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}md-tooltip.multiline div.md-content{height:auto!important}.auto-margin{margin:auto}md-menu-item md-menu.no-margin button{display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-date-range md-menu span.md-select-value{border-bottom-color:rgba(0,0,0,.12)}.keep-on-top{z-index:9999!important}.margin-auto{margin:auto}.xenialab-violet-light-bg{background-color:#9c4fd3!important}.xenialab-violet-light-fg{color:#9c4fd3!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.disabled-button{display:inline-block;position:relative;cursor:default;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:rgba(0,0,0,.12);color:rgba(0,0,0,.38);white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden}@supports (-ms-ime-align:auto){md-tabs{display:inline!important}}@supports (-ms-accelerator:true){md-tabs{display:inline!important}}@supports (-moz-transform:translate(0,0)){md-tabs{display:inline!important}}body[dir=rtl] table.md-table td.md-cell,body[dir=rtl] table.md-table th.md-column{text-align:right!important}body[dir=rtl] table.md-table td.md-cell md-checkbox,body[dir=rtl] table.md-table th.md-column md-checkbox{margin-right:12px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{margin:0 0 0 16px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>a.ms-navigation-button{padding-right:45px}body[dir=rtl] .md-table-pagination>.buttons{direction:ltr}body[dir=rtl] .md-table-pagination>.buttons>.label{direction:rtl}body[dir=rtl] .header .logo .logo-icon{margin:5px 0 0 15px!important}body[dir=rtl] md-switch .md-container{margin-right:inherit!important}body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;transform:translate(-50%,-50%) scale(0);transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1{font-size:14px;font-weight:400;letter-spacing:.010em;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}.md-button{letter-spacing:.010em}button,html,input,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}button,input,select,textarea{font-size:100%}@keyframes md-autocomplete-list-out{0%{animation-timing-function:linear}50%{opacity:0;height:40px;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:flex;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{content:'';position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;transform:scale(0);opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{transform:scale(0);transition:transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{transform:scale(1)}md-autocomplete button.ng-leave{transition:transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{transition:opacity 450ms;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px 16px;z-index:70;border-top-width:1px;border-top-style:solid;transform:translate3d(0,80px,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{transform:translate3d(0,100%,0)!important;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:flex;outline:0}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:flex;flex-direction:row;flex-wrap:wrap;transition:all .5s;align-items:center}md-bottom-sheet.md-grid md-list-item{flex-direction:column;align-items:center;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{flex:1 1 33.3333333333%;max-width:33.3333333333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{flex:1 1 16.6666666667%;max-width:16.6666666667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{flex:1 1 14.2857142857%;max-width:14.2857142857%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:flex;flex-direction:column;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:flex;flex-direction:column;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-property:background-color,box-shadow,transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{transform:translate3d(0,-43px,0)}.md-button-group{display:flex;flex:1;width:100%}.md-button-group>.md-button{flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card md-card-header{padding:16px;display:flex;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:flex;flex:1;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:flex;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:flex;flex:1 1 auto;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{flex:1;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{flex:1;justify-content:flex-start;display:flex;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{flex:1;justify-content:flex-end;display:flex;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px 0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px}[dir=rtl] .md-chips md-chip{float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px}[dir=rtl] .md-chips .md-chip-input-container{float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:0 0;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px}[dir=rtl] md-checkbox{margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto}[dir=rtl] md-checkbox .md-container{right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0}[dir=rtl] md-checkbox .md-label{margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-month-label md-icon{transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px;vertical-align:middle}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px}[dir=rtl] md-datepicker{margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;transform:scale(0);transform-origin:0 0;transition:transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0}[dir=rtl] .md-datepicker-triangle-button{transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label{display:none}.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{transform:translateY(-85px);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,100%) scale(.2)}md-dialog>form{display:flex;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{order:1;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:flex;order:2;box-sizing:border-box;align-items:center;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin-bottom:8px;margin-left:8px;margin-right:0;margin-top:8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:flex;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{align-items:center}md-fab-speed-dial md-fab-actions{display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;order:2}md-fab-speed-dial.md-up{flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{order:2}md-fab-speed-dial.md-up md-fab-actions{flex-direction:column-reverse;order:1}md-fab-speed-dial.md-left{flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{order:2}md-fab-speed-dial.md-left md-fab-actions{flex-direction:row-reverse;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{order:1}md-fab-speed-dial.md-right md-fab-actions{flex-direction:row;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.1428571429s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:flex;flex-direction:row;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto}[dir=rtl] md-input-container>md-icon{right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;transform:translate3d(0,28px,0) scale(1);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-right:3px}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;transition-property:opacity,transform;transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{order:2;display:block;margin-top:0;background:0 0;padding-top:2px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-width:0 0 1px 0;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left}[dir=rtl] md-input-container .md-char-counter{padding-right:0}[dir=rtl] md-input-container .md-char-counter{padding-left:2px}md-input-container .md-input-messages-animation{position:relative;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-left:5px}md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-input-message-animation:not(.ng-animate){opacity:0;margin-top:-100px}md-input-container .md-input-message-animation.ng-enter{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){transform:translate3d(0,6px,0) scale(.75);transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px 0}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0}[dir=rtl] md-input-container.md-icon-left{padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto}[dir=rtl] md-input-container.md-icon-left>label{right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px}[dir=rtl] md-input-container.md-icon-right{padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0 8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;flex-direction:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:flex;justify-content:flex-start;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:flex;align-items:center;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{align-items:flex-start;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px 0;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.2s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-menu-content{display:flex;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;flex-direction:row;min-height:48px;height:48px;align-content:center;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{flex-grow:0;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{transform:rotate(90deg) scaleY(.45) scaleX(.9)}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;transition:none}.md-panel._md-panel-animate-enter{opacity:1;transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{transition:opacity .3s cubic-bezier(.4,0,1,1)}@keyframes indeterminate-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{transition:transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{transition:all .2s linear;animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1{animation-name:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;animation:buffer 3s infinite linear}@keyframes query{0%{opacity:1;transform:translateX(35%) scale(.3,1)}100%{opacity:0;transform:translateX(-50%) scale(0,1)}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes md-progress-linear-indeterminate-scale-1{0%{transform:scaleX(.1);animation-timing-function:linear}36.6%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.334731432,.124819821,.785843996,1)}69.15%{transform:scaleX(.83);animation-timing-function:cubic-bezier(.225732004,0,.233648906,1.3709798)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.166666667%;animation-timing-function:linear}20%{left:-105.166666667%;animation-timing-function:cubic-bezier(.5,0,.701732,.495818703)}69.15%{left:21.5%;animation-timing-function:cubic-bezier(.302435,.38135197,.55,.956352125)}100%{left:95.4444444444%}}@keyframes md-progress-linear-indeterminate-scale-2{0%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.205028172,.057050836,.57660995,.453970841)}19.15%{transform:scaleX(.57);animation-timing-function:cubic-bezier(.152312994,.196431957,.648373778,1.00431535)}44.15%{transform:scaleX(.91);animation-timing-function:cubic-bezier(.25775882,-.003163357,.211761916,1.38178961)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.8888888889%;animation-timing-function:cubic-bezier(.15,0,.5150584,.409684966)}25%{left:-17.25%;animation-timing-function:cubic-bezier(.3103299,.284057684,.8,.733718979)}48.35%{left:29.5%;animation-timing-function:cubic-bezier(.4,.627034903,.6,.902025796)}100%{left:117.388888889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled]{cursor:default}md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto}[dir=rtl] md-radio-button .md-container{right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-style:solid;border-width:2px;border-radius:50%;transition:border-color ease .28s}md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;transition:transform ease .28s;transform:scale(0)}md-radio-button.md-checked .md-on{transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0}[dir=rtl] md-radio-button .md-label{margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin-top:0;margin-bottom:0;margin-left:0;margin-right:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button{cursor:default}md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:150ms;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-input-container>md-select{margin:0;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:flex;margin:20px 0 26px 0}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){transform:translate3d(0,1px,0)}.md-select-value{display:flex;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;align-items:flex-end;text-align:end;width:24px;margin:0 4px;transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:flex;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:flex;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;transform-origin:left top;transform:scale(1)}md-select-menu.md-reverse{flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:flex;align-items:center;width:auto;transition:background .15s linear;padding:0 16px 0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.6666666667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-right:10.6666666667px}md-sidenav{box-sizing:border-box;position:absolute;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:flex;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open-remove-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;transform:translate(-100%,0)}.md-sidenav-right.md-closed{transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@keyframes sliderFocusThumb{0%{transform:scale(.7)}30%{transform:scale(1)}100%{transform:scale(.7)}}@keyframes sliderDiscreteFocusThumb{0%{transform:scale(.7)}50%{transform:scale(.8)}100%{transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{transform:scale(.7);opacity:0}50%{transform:scale(1);opacity:1}100%{transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;transform:translate3d(-50%,-50%,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;transform:scale(.7);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;transition:inherit}md-slider .md-sign{display:flex;align-items:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;transform:scale(.4) translate3d(0,67.5px,0);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;transform:scale(.7);opacity:0;transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(0);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks{opacity:0}md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{flex:1;padding-top:12px;padding-bottom:12px;width:48px;align-self:center;display:flex;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:flex;align-items:center;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{animation:subheaderStickyHoverIn .3s ease-out both}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:0;user-select:none;height:30px;line-height:28px;align-items:center;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px}[dir=rtl] md-switch{margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0}[dir=rtl] md-switch:last-of-type{margin-right:inherit}md-switch[disabled]{cursor:default}md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:grab;width:36px;height:24px;position:relative;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{transform:translate3d(100%,0,0)}md-switch .md-thumb{position:absolute;margin:0;left:0;top:0;outline:0;height:20px;width:20px;border-radius:50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{transition:all 80ms linear;transition-property:transform,background-color}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat center center;transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:flex;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:flex;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;transition:transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;position:absolute;top:0;left:0;right:0;bottom:0;transition:transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{transition:none}md-tab-content.md-left:not(.md-active){transform:translateX(-100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){transform:translateX(100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;overflow:hidden;padding:8px;opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:flex;direction:row;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;transform:translate3d(0,0,0) rotateZ(0);transition:all .4s cubic-bezier(.25,.8,.25,1);justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{justify-content:flex-end}md-toast .md-toast-content span{flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule{border-radius:24px}md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px}[dir=rtl] md-toast .md-button{margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:flex;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:flex;align-items:center;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:flex;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:center top;transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s;transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{transform:scale(1);opacity:.9;transform-origin:center top}md-tooltip .md-content.md-show-remove{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{transform:scale(0);opacity:0}md-tooltip.md-hide{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{order:0}.flex-order--20{order:-20}.flex-order--19{order:-19}.flex-order--18{order:-18}.flex-order--17{order:-17}.flex-order--16{order:-16}.flex-order--15{order:-15}.flex-order--14{order:-14}.flex-order--13{order:-13}.flex-order--12{order:-12}.flex-order--11{order:-11}.flex-order--10{order:-10}.flex-order--9{order:-9}.flex-order--8{order:-8}.flex-order--7{order:-7}.flex-order--6{order:-6}.flex-order--5{order:-5}.flex-order--4{order:-4}.flex-order--3{order:-3}.flex-order--2{order:-2}.flex-order--1{order:-1}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-order-7{order:7}.flex-order-8{order:8}.flex-order-9{order:9}.flex-order-10{order:10}.flex-order-11{order:11}.flex-order-12{order:12}.flex-order-13{order:13}.flex-order-14{order:14}.flex-order-15{order:15}.flex-order-16{order:16}.flex-order-17{order:17}.flex-order-18{order:18}.flex-order-19{order:19}.flex-order-20{order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{align-items:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{align-items:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{align-items:stretch;align-content:stretch}.flex{flex:1;box-sizing:border-box}.flex-grow{flex:1 1 100%;box-sizing:border-box}.flex-initial{flex:0 1 auto;box-sizing:border-box}.flex-auto{flex:1 1 auto;box-sizing:border-box}.flex-none{flex:0 0 auto;box-sizing:border-box}.flex-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-row>.flex{min-width:0}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-column{flex-direction:column}.layout-row{flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{flex-wrap:wrap}.layout-nowrap{flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{order:-20}.flex-order-xs--19{order:-19}.flex-order-xs--18{order:-18}.flex-order-xs--17{order:-17}.flex-order-xs--16{order:-16}.flex-order-xs--15{order:-15}.flex-order-xs--14{order:-14}.flex-order-xs--13{order:-13}.flex-order-xs--12{order:-12}.flex-order-xs--11{order:-11}.flex-order-xs--10{order:-10}.flex-order-xs--9{order:-9}.flex-order-xs--8{order:-8}.flex-order-xs--7{order:-7}.flex-order-xs--6{order:-6}.flex-order-xs--5{order:-5}.flex-order-xs--4{order:-4}.flex-order-xs--3{order:-3}.flex-order-xs--2{order:-2}.flex-order-xs--1{order:-1}.flex-order-xs-0{order:0}.flex-order-xs-1{order:1}.flex-order-xs-2{order:2}.flex-order-xs-3{order:3}.flex-order-xs-4{order:4}.flex-order-xs-5{order:5}.flex-order-xs-6{order:6}.flex-order-xs-7{order:7}.flex-order-xs-8{order:8}.flex-order-xs-9{order:9}.flex-order-xs-10{order:10}.flex-order-xs-11{order:11}.flex-order-xs-12{order:12}.flex-order-xs-13{order:13}.flex-order-xs-14{order:14}.flex-order-xs-15{order:15}.flex-order-xs-16{order:16}.flex-order-xs-17{order:17}.flex-order-xs-18{order:18}.flex-order-xs-19{order:19}.flex-order-xs-20{order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-xs{flex:1;box-sizing:border-box}.flex-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xs-column{flex-direction:column}.layout-xs-row{flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{order:-20}.flex-order-gt-xs--19{order:-19}.flex-order-gt-xs--18{order:-18}.flex-order-gt-xs--17{order:-17}.flex-order-gt-xs--16{order:-16}.flex-order-gt-xs--15{order:-15}.flex-order-gt-xs--14{order:-14}.flex-order-gt-xs--13{order:-13}.flex-order-gt-xs--12{order:-12}.flex-order-gt-xs--11{order:-11}.flex-order-gt-xs--10{order:-10}.flex-order-gt-xs--9{order:-9}.flex-order-gt-xs--8{order:-8}.flex-order-gt-xs--7{order:-7}.flex-order-gt-xs--6{order:-6}.flex-order-gt-xs--5{order:-5}.flex-order-gt-xs--4{order:-4}.flex-order-gt-xs--3{order:-3}.flex-order-gt-xs--2{order:-2}.flex-order-gt-xs--1{order:-1}.flex-order-gt-xs-0{order:0}.flex-order-gt-xs-1{order:1}.flex-order-gt-xs-2{order:2}.flex-order-gt-xs-3{order:3}.flex-order-gt-xs-4{order:4}.flex-order-gt-xs-5{order:5}.flex-order-gt-xs-6{order:6}.flex-order-gt-xs-7{order:7}.flex-order-gt-xs-8{order:8}.flex-order-gt-xs-9{order:9}.flex-order-gt-xs-10{order:10}.flex-order-gt-xs-11{order:11}.flex-order-gt-xs-12{order:12}.flex-order-gt-xs-13{order:13}.flex-order-gt-xs-14{order:14}.flex-order-gt-xs-15{order:15}.flex-order-gt-xs-16{order:16}.flex-order-gt-xs-17{order:17}.flex-order-gt-xs-18{order:18}.flex-order-gt-xs-19{order:19}.flex-order-gt-xs-20{order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-xs{flex:1;box-sizing:border-box}.flex-gt-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-xs-column{flex-direction:column}.layout-gt-xs-row{flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{order:-20}.flex-order-sm--19{order:-19}.flex-order-sm--18{order:-18}.flex-order-sm--17{order:-17}.flex-order-sm--16{order:-16}.flex-order-sm--15{order:-15}.flex-order-sm--14{order:-14}.flex-order-sm--13{order:-13}.flex-order-sm--12{order:-12}.flex-order-sm--11{order:-11}.flex-order-sm--10{order:-10}.flex-order-sm--9{order:-9}.flex-order-sm--8{order:-8}.flex-order-sm--7{order:-7}.flex-order-sm--6{order:-6}.flex-order-sm--5{order:-5}.flex-order-sm--4{order:-4}.flex-order-sm--3{order:-3}.flex-order-sm--2{order:-2}.flex-order-sm--1{order:-1}.flex-order-sm-0{order:0}.flex-order-sm-1{order:1}.flex-order-sm-2{order:2}.flex-order-sm-3{order:3}.flex-order-sm-4{order:4}.flex-order-sm-5{order:5}.flex-order-sm-6{order:6}.flex-order-sm-7{order:7}.flex-order-sm-8{order:8}.flex-order-sm-9{order:9}.flex-order-sm-10{order:10}.flex-order-sm-11{order:11}.flex-order-sm-12{order:12}.flex-order-sm-13{order:13}.flex-order-sm-14{order:14}.flex-order-sm-15{order:15}.flex-order-sm-16{order:16}.flex-order-sm-17{order:17}.flex-order-sm-18{order:18}.flex-order-sm-19{order:19}.flex-order-sm-20{order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-sm{flex:1;box-sizing:border-box}.flex-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-sm-column{flex-direction:column}.layout-sm-row{flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{order:-20}.flex-order-gt-sm--19{order:-19}.flex-order-gt-sm--18{order:-18}.flex-order-gt-sm--17{order:-17}.flex-order-gt-sm--16{order:-16}.flex-order-gt-sm--15{order:-15}.flex-order-gt-sm--14{order:-14}.flex-order-gt-sm--13{order:-13}.flex-order-gt-sm--12{order:-12}.flex-order-gt-sm--11{order:-11}.flex-order-gt-sm--10{order:-10}.flex-order-gt-sm--9{order:-9}.flex-order-gt-sm--8{order:-8}.flex-order-gt-sm--7{order:-7}.flex-order-gt-sm--6{order:-6}.flex-order-gt-sm--5{order:-5}.flex-order-gt-sm--4{order:-4}.flex-order-gt-sm--3{order:-3}.flex-order-gt-sm--2{order:-2}.flex-order-gt-sm--1{order:-1}.flex-order-gt-sm-0{order:0}.flex-order-gt-sm-1{order:1}.flex-order-gt-sm-2{order:2}.flex-order-gt-sm-3{order:3}.flex-order-gt-sm-4{order:4}.flex-order-gt-sm-5{order:5}.flex-order-gt-sm-6{order:6}.flex-order-gt-sm-7{order:7}.flex-order-gt-sm-8{order:8}.flex-order-gt-sm-9{order:9}.flex-order-gt-sm-10{order:10}.flex-order-gt-sm-11{order:11}.flex-order-gt-sm-12{order:12}.flex-order-gt-sm-13{order:13}.flex-order-gt-sm-14{order:14}.flex-order-gt-sm-15{order:15}.flex-order-gt-sm-16{order:16}.flex-order-gt-sm-17{order:17}.flex-order-gt-sm-18{order:18}.flex-order-gt-sm-19{order:19}.flex-order-gt-sm-20{order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-sm{flex:1;box-sizing:border-box}.flex-gt-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-sm-column{flex-direction:column}.layout-gt-sm-row{flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-md--20{order:-20}.flex-order-md--19{order:-19}.flex-order-md--18{order:-18}.flex-order-md--17{order:-17}.flex-order-md--16{order:-16}.flex-order-md--15{order:-15}.flex-order-md--14{order:-14}.flex-order-md--13{order:-13}.flex-order-md--12{order:-12}.flex-order-md--11{order:-11}.flex-order-md--10{order:-10}.flex-order-md--9{order:-9}.flex-order-md--8{order:-8}.flex-order-md--7{order:-7}.flex-order-md--6{order:-6}.flex-order-md--5{order:-5}.flex-order-md--4{order:-4}.flex-order-md--3{order:-3}.flex-order-md--2{order:-2}.flex-order-md--1{order:-1}.flex-order-md-0{order:0}.flex-order-md-1{order:1}.flex-order-md-2{order:2}.flex-order-md-3{order:3}.flex-order-md-4{order:4}.flex-order-md-5{order:5}.flex-order-md-6{order:6}.flex-order-md-7{order:7}.flex-order-md-8{order:8}.flex-order-md-9{order:9}.flex-order-md-10{order:10}.flex-order-md-11{order:11}.flex-order-md-12{order:12}.flex-order-md-13{order:13}.flex-order-md-14{order:14}.flex-order-md-15{order:15}.flex-order-md-16{order:16}.flex-order-md-17{order:17}.flex-order-md-18{order:18}.flex-order-md-19{order:19}.flex-order-md-20{order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{align-items:stretch;align-content:stretch}.flex-md{flex:1;box-sizing:border-box}.flex-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-md-none{flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-md-column{flex-direction:column}.layout-md-row{flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{order:-20}.flex-order-gt-md--19{order:-19}.flex-order-gt-md--18{order:-18}.flex-order-gt-md--17{order:-17}.flex-order-gt-md--16{order:-16}.flex-order-gt-md--15{order:-15}.flex-order-gt-md--14{order:-14}.flex-order-gt-md--13{order:-13}.flex-order-gt-md--12{order:-12}.flex-order-gt-md--11{order:-11}.flex-order-gt-md--10{order:-10}.flex-order-gt-md--9{order:-9}.flex-order-gt-md--8{order:-8}.flex-order-gt-md--7{order:-7}.flex-order-gt-md--6{order:-6}.flex-order-gt-md--5{order:-5}.flex-order-gt-md--4{order:-4}.flex-order-gt-md--3{order:-3}.flex-order-gt-md--2{order:-2}.flex-order-gt-md--1{order:-1}.flex-order-gt-md-0{order:0}.flex-order-gt-md-1{order:1}.flex-order-gt-md-2{order:2}.flex-order-gt-md-3{order:3}.flex-order-gt-md-4{order:4}.flex-order-gt-md-5{order:5}.flex-order-gt-md-6{order:6}.flex-order-gt-md-7{order:7}.flex-order-gt-md-8{order:8}.flex-order-gt-md-9{order:9}.flex-order-gt-md-10{order:10}.flex-order-gt-md-11{order:11}.flex-order-gt-md-12{order:12}.flex-order-gt-md-13{order:13}.flex-order-gt-md-14{order:14}.flex-order-gt-md-15{order:15}.flex-order-gt-md-16{order:16}.flex-order-gt-md-17{order:17}.flex-order-gt-md-18{order:18}.flex-order-gt-md-19{order:19}.flex-order-gt-md-20{order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-md{flex:1;box-sizing:border-box}.flex-gt-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-md-column{flex-direction:column}.layout-gt-md-row{flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-lg--20{order:-20}.flex-order-lg--19{order:-19}.flex-order-lg--18{order:-18}.flex-order-lg--17{order:-17}.flex-order-lg--16{order:-16}.flex-order-lg--15{order:-15}.flex-order-lg--14{order:-14}.flex-order-lg--13{order:-13}.flex-order-lg--12{order:-12}.flex-order-lg--11{order:-11}.flex-order-lg--10{order:-10}.flex-order-lg--9{order:-9}.flex-order-lg--8{order:-8}.flex-order-lg--7{order:-7}.flex-order-lg--6{order:-6}.flex-order-lg--5{order:-5}.flex-order-lg--4{order:-4}.flex-order-lg--3{order:-3}.flex-order-lg--2{order:-2}.flex-order-lg--1{order:-1}.flex-order-lg-0{order:0}.flex-order-lg-1{order:1}.flex-order-lg-2{order:2}.flex-order-lg-3{order:3}.flex-order-lg-4{order:4}.flex-order-lg-5{order:5}.flex-order-lg-6{order:6}.flex-order-lg-7{order:7}.flex-order-lg-8{order:8}.flex-order-lg-9{order:9}.flex-order-lg-10{order:10}.flex-order-lg-11{order:11}.flex-order-lg-12{order:12}.flex-order-lg-13{order:13}.flex-order-lg-14{order:14}.flex-order-lg-15{order:15}.flex-order-lg-16{order:16}.flex-order-lg-17{order:17}.flex-order-lg-18{order:18}.flex-order-lg-19{order:19}.flex-order-lg-20{order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-lg{flex:1;box-sizing:border-box}.flex-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-lg-column{flex-direction:column}.layout-lg-row{flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{order:-20}.flex-order-gt-lg--19{order:-19}.flex-order-gt-lg--18{order:-18}.flex-order-gt-lg--17{order:-17}.flex-order-gt-lg--16{order:-16}.flex-order-gt-lg--15{order:-15}.flex-order-gt-lg--14{order:-14}.flex-order-gt-lg--13{order:-13}.flex-order-gt-lg--12{order:-12}.flex-order-gt-lg--11{order:-11}.flex-order-gt-lg--10{order:-10}.flex-order-gt-lg--9{order:-9}.flex-order-gt-lg--8{order:-8}.flex-order-gt-lg--7{order:-7}.flex-order-gt-lg--6{order:-6}.flex-order-gt-lg--5{order:-5}.flex-order-gt-lg--4{order:-4}.flex-order-gt-lg--3{order:-3}.flex-order-gt-lg--2{order:-2}.flex-order-gt-lg--1{order:-1}.flex-order-gt-lg-0{order:0}.flex-order-gt-lg-1{order:1}.flex-order-gt-lg-2{order:2}.flex-order-gt-lg-3{order:3}.flex-order-gt-lg-4{order:4}.flex-order-gt-lg-5{order:5}.flex-order-gt-lg-6{order:6}.flex-order-gt-lg-7{order:7}.flex-order-gt-lg-8{order:8}.flex-order-gt-lg-9{order:9}.flex-order-gt-lg-10{order:10}.flex-order-gt-lg-11{order:11}.flex-order-gt-lg-12{order:12}.flex-order-gt-lg-13{order:13}.flex-order-gt-lg-14{order:14}.flex-order-gt-lg-15{order:15}.flex-order-gt-lg-16{order:16}.flex-order-gt-lg-17{order:17}.flex-order-gt-lg-18{order:18}.flex-order-gt-lg-19{order:19}.flex-order-gt-lg-20{order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-lg{flex:1;box-sizing:border-box}.flex-gt-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-lg-column{flex-direction:column}.layout-gt-lg-row{flex-direction:row}.flex-order-xl--20{order:-20}.flex-order-xl--19{order:-19}.flex-order-xl--18{order:-18}.flex-order-xl--17{order:-17}.flex-order-xl--16{order:-16}.flex-order-xl--15{order:-15}.flex-order-xl--14{order:-14}.flex-order-xl--13{order:-13}.flex-order-xl--12{order:-12}.flex-order-xl--11{order:-11}.flex-order-xl--10{order:-10}.flex-order-xl--9{order:-9}.flex-order-xl--8{order:-8}.flex-order-xl--7{order:-7}.flex-order-xl--6{order:-6}.flex-order-xl--5{order:-5}.flex-order-xl--4{order:-4}.flex-order-xl--3{order:-3}.flex-order-xl--2{order:-2}.flex-order-xl--1{order:-1}.flex-order-xl-0{order:0}.flex-order-xl-1{order:1}.flex-order-xl-2{order:2}.flex-order-xl-3{order:3}.flex-order-xl-4{order:4}.flex-order-xl-5{order:5}.flex-order-xl-6{order:6}.flex-order-xl-7{order:7}.flex-order-xl-8{order:8}.flex-order-xl-9{order:9}.flex-order-xl-10{order:10}.flex-order-xl-11{order:11}.flex-order-xl-12{order:12}.flex-order-xl-13{order:13}.flex-order-xl-14{order:14}.flex-order-xl-15{order:15}.flex-order-xl-16{order:16}.flex-order-xl-17{order:17}.flex-order-xl-18{order:18}.flex-order-xl-19{order:19}.flex-order-xl-20{order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{align-items:stretch;align-content:stretch}.flex-xl{flex:1;box-sizing:border-box}.flex-xl-grow{flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{flex:1 1 auto;box-sizing:border-box}.flex-xl-none{flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xl-column{flex-direction:column}.layout-xl-row{flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;box-sizing:border-box}:after,:before{box-sizing:border-box}:focus{outline:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=email],:not(md-input-container)>input[type=image],:not(md-input-container)>input[type=password],:not(md-input-container)>input[type=search],:not(md-input-container)>input[type=submit],:not(md-input-container)>input[type=tel],:not(md-input-container)>input[type=text],:not(md-input-container)>textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;padding:0;margin:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=submit]{background:0 0}button{border-radius:0;font-family:inherit;font-size:inherit;padding:0;margin:0;appearance:none;-moz-appearance:none;-webkit-appearance:none}[layout]>*{min-height:auto;min-height:initial}md-card>:not(md-card-content) img,md-card>img{height:inherit;height:initial}.md-datepicker-calendar-pane *{box-sizing:initial}md-autocomplete-wrap>input[type=search]{background:#fff;padding:0 15px!important}md-backdrop.md-opaque{background-color:rgba(33,33,33,.48)!important}md-card md-card-header md-card-avatar md-icon{width:40px;height:40px}md-checkbox.no-label{margin:0}md-chip .md-chip-remove md-icon{margin-left:2px}md-chip .md-chip-remove md-icon svg{width:18px;height:18px;max-width:18px;max-height:18px;margin:4px}md-datepicker .md-datepicker-button{padding:0!important;margin:0!important;vertical-align:middle}md-datepicker .md-datepicker-input-container{margin-left:0}.md-inline-form md-datepicker{margin-top:14px}md-dialog md-dialog-content{padding:32px 24px 24px 24px}md-dialog md-dialog-actions{min-height:64px;padding-top:8px;padding-bottom:8px}md-dialog md-dialog-actions .md-button{margin:0 8px}md-input-container.no-errors-spacer .md-errors-spacer{display:none}md-input-container .input-hint{position:absolute;right:auto;bottom:7px;left:2px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-input-container.md-icon-left .input-hint{left:38px}md-list-item .md-list-item-text p{font-size:13px!important}.md-menu,md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense{padding:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item{height:40px;line-height:40px}md-menu-content.md-menu-bar-menu.md-dense .md-button.md-indent>md-icon,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{top:8px}.md-open-menu-container md-menu-content md-menu-item.selected{opacity:.4}md-menu-content md-menu-item .md-button{text-align:left}md-select.simplified{margin:0 8px}md-select.simplified .md-select-value{border:none!important;box-sizing:border-box;padding:0}md-select.simplified .md-select-value :first-child{transform:none;height:auto}md-select.simplified .md-select-value .md-select-icon{transform:none;font-size:16px}md-select.simplified .md-select-value .md-select-icon:after{top:1px}md-select[multiple] md-select-value>:first-child{display:flex}md-select[multiple] md-select-value>:first-child>:first-child{flex:0}md-select[multiple] md-select-value>:first-child .md-container{padding-right:6px}md-select[multiple] md-select-value>:first-child .md-container:first-of-type{padding-right:0}md-select-menu md-select-header{position:relative;display:flex;align-items:center;width:auto;height:48px;padding-left:10.667px;box-shadow:0 1px 0 0 rgba(0,0,0,.1),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);cursor:pointer}md-select-menu md-select-header input[type=search]{border:none;outline:0;height:100%;width:100%;padding:0}md-sidenav{-webkit-overflow-scrolling:touch}md-toolbar.colored-toolbar{color:rgba(255,255,255,.87)}md-toolbar.colored-toolbar md-menu-bar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar input{color:rgba(255,255,255,.87)!important}md-progress-circular[disabled]{visibility:hidden}body,html{overflow:hidden!important}#main{position:absolute;top:0;right:0;bottom:0;left:0}body.boxed{background:#3f4450}body.boxed #main{overflow:hidden!important;width:100%;max-width:1280px;margin:0 auto;box-shadow:0 0 12px rgba(0,0,0,.45)}#layout-content-only{position:relative;height:100%;max-height:100%}#layout-content-only #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-content-with-toolbar{position:relative;height:100%;max-height:100%}#layout-content-with-toolbar #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation{height:100%;max-height:100%}#layout-vertical-navigation #content-container{position:relative;overflow:hidden}#layout-vertical-navigation #content-container #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar-2{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-horizontal-navigation{height:100%;max-height:100%}#layout-horizontal-navigation #content-container{position:relative;overflow:hidden}#layout-horizontal-navigation #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}.page-layout{position:relative;overflow:hidden}.page-layout .top-bg{position:absolute;z-index:1;top:0;right:0;left:0;height:200px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout md-backdrop{z-index:50}.page-layout>.header .breadcrumb{margin-bottom:16px;font-weight:500;color:rgba(0,0,0,.54)}.page-layout>.header .breadcrumb md-icon{margin:0}.page-layout>.header .breadcrumb .separator{margin:0 8px}.page-layout>.header .title{font-size:34px}.page-layout.carded{min-height:100%;height:100%}.page-layout.carded.fullwidth.single-scroll{height:auto}.page-layout.carded.fullwidth.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.fullwidth>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.fullwidth>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.fullwidth>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.fullwidth>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.fullwidth>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.left-sidenav.single-scroll{height:auto}.page-layout.carded.left-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.left-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px}.page-layout.carded.left-sidenav>.sidenav .content{background:0 0;padding:24px}.page-layout.carded.left-sidenav>.sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.left-sidenav>.sidenav.md-locked-open+.center{margin-left:0}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .header{border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden}.page-layout.carded.left-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.left-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.left-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.left-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 8px 0 0!important;padding:0!important;border-radius:0}.page-layout.carded.left-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.right-sidenav.single-scroll{height:auto}.page-layout.carded.right-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.right-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.right-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav .content{background:0 0;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav.md-locked-open{width:196px;min-width:196px;max-width:196px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .header{padding:24px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden;padding:24px}.page-layout.carded.right-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.right-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.right-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.right-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 0 0 8px!important;padding:0!important;border-radius:0}.page-layout.carded.right-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.simple.fullwidth,.page-layout.simple.inner-sidenav{min-height:100%}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.fullwidth>.content,.page-layout.simple.inner-sidenav>.content{padding:24px}.page-layout.simple.left-sidenav{min-height:100%;height:100%}.page-layout.simple.left-sidenav.single-scroll{height:auto}.page-layout.simple.left-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.left-sidenav.inner-sidenav>.content>md-sidenav{margin-right:24px}.page-layout.simple.left-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.left-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.left-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.right-sidenav{min-height:100%;height:100%}.page-layout.simple.right-sidenav.single-scroll{height:auto}.page-layout.simple.right-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.right-sidenav.inner-sidenav>.content>md-sidenav{margin-left:24px}.page-layout.simple.right-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.right-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.right-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.inner-sidenav{height:auto}.page-layout.simple.inner-sidenav>.content>md-sidenav.md-locked-open{padding:0}.page-layout.simple.tabbed{min-height:100%}.page-layout.simple.tabbed>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}.page-layout.simple.tabbed>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-content-wrapper>md-tab-content{padding:24px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);border:none;height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav{margin:0 12px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item{height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button{height:56px;line-height:32px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button-text{text-transform:none}.page-layout.blank{min-height:100%;padding:24px}.single-scroll .carded.fullwidth{height:auto}.single-scroll .carded.fullwidth>.center .content-card .content{overflow:hidden}.single-scroll .carded.left-sidenav{height:auto}.single-scroll .carded.left-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .carded.right-sidenav{height:auto}.single-scroll .carded.right-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .simple.left-sidenav{height:auto}.single-scroll .simple.left-sidenav>.center{overflow:hidden}.single-scroll .simple.right-sidenav{height:auto}.single-scroll .simple.right-sidenav>.center{overflow:hidden}@media screen and (max-width:1280px){.page-layout.simple.inner-sidenav.left-sidenav>.content,.page-layout.simple.inner-sidenav.right-sidenav>.content{height:auto!important}.page-layout.simple.inner-sidenav.left-sidenav>.content>md-sidenav,.page-layout.simple.inner-sidenav.right-sidenav>.content>md-sidenav{margin-left:0;margin-right:0}.sidenav-open .page-layout.simple.inner-sidenav{height:100%}}@media screen and (max-width:600px){.page-layout .top-bg{height:160px}.page-layout.carded.fullwidth>.center,.page-layout.carded.left-sidenav>.center,.page-layout.carded.right-sidenav>.center{margin-left:16px;margin-right:16px}.page-layout.carded.fullwidth>.center .header,.page-layout.carded.left-sidenav>.center .header,.page-layout.carded.right-sidenav>.center .header{height:96px;min-height:96px;max-height:96px;padding:16px}.page-layout.carded.fullwidth{height:auto}.page-layout.carded.fullwidth>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav,.page-layout.carded.right-sidenav{height:auto}.page-layout.carded.left-sidenav>.center .content-card .content,.page-layout.carded.right-sidenav>.center .content-card .content{overflow:hidden}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav>.center .header,.page-layout.simple.right-sidenav>.center .header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav,.page-layout.simple.right-sidenav{height:auto}.page-layout.simple.left-sidenav>.center,.page-layout.simple.right-sidenav>.center{overflow:hidden}}.animate-slide-up{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-up.ng-enter{transform:translateY(100%);opacity:0}.animate-slide-up.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-up.ng-leave{transform:translateY(0);opacity:1}.animate-slide-up.ng-leave.ng-leave-active{transition-property:all;transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide-add-active,.animate-slide-up.ng-hide-remove-active{transition-property:all}.animate-slide-down{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-down.ng-enter{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-down.ng-leave{transform:translateY(0);opacity:1}.animate-slide-down.ng-leave.ng-leave-active{transition-property:all;transform:translateY(100%);opacity:0}.animate-slide-down.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-hide-add-active,.animate-slide-down.ng-hide-remove-active{transition-property:all}.animate-slide-left{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-left.ng-enter{transform:translateX(100%);opacity:0}.animate-slide-left.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-left.ng-leave{transform:translateX(0);opacity:1}.animate-slide-left.ng-leave.ng-leave-active{transition-property:all;transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide{transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide-add-active,.animate-slide-left.ng-hide-remove-active{transition-property:all}.animate-slide-right{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-right.ng-enter{transform:translateX(-100%);opacity:0}.animate-slide-right.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-right.ng-leave{transform:translateX(0);opacity:1}.animate-slide-right.ng-leave.ng-leave-active{transition-property:all;transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide{transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide-add-active,.animate-slide-right.ng-hide-remove-active{transition-property:all}.animate-fade-in-out{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-fade-in-out.ng-enter{opacity:0}.animate-fade-in-out.ng-enter.ng-enter-active{transition-property:all;opacity:1}.animate-fade-in-out.ng-leave{opacity:1}.animate-fade-in-out.ng-leave.ng-leave-active{transition-property:all;opacity:0}.animate-fade-in-out.ng-hide{opacity:0}.animate-fade-in-out.ng-hide-add-active,.animate-fade-in-out.ng-hide-remove-active{transition-property:all}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(200px)}65%{opacity:1;transform:translateY(0)}100%{transform:translateY(0)}}.animate-rotate{animation:rotate 1.75s linear infinite}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.black-fg,.black-text{color:rgba(0,0,0,.87)!important}.black-fg .icon,.black-fg .secondary-text,.black-fg.icon,.black-fg.secondary-text,.black-text .icon,.black-text .secondary-text,.black-text.icon,.black-text.secondary-text{color:rgba(0,0,0,.54)!important}.black-fg .disabled-text,.black-fg .hint-text,.black-fg.disabled-text,.black-fg.hint-text,.black-text .disabled-text,.black-text .hint-text,.black-text.disabled-text,.black-text.hint-text{color:rgba(0,0,0,.26)!important}.black-fg .divider,.black-fg .faint-text,.black-fg.divider,.black-fg.faint-text,.black-text .divider,.black-text .faint-text,.black-text.divider,.black-text.faint-text{color:rgba(0,0,0,.12)!important}.white-fg,.white-text{color:#fff!important}.white-fg .icon,.white-fg .secondary-text,.white-fg.icon,.white-fg.secondary-text,.white-text .icon,.white-text .secondary-text,.white-text.icon,.white-text.secondary-text{color:rgba(255,255,255,.7)!important}.white-fg .disabled-text,.white-fg .hint-text,.white-fg.disabled-text,.white-fg.hint-text,.white-text .disabled-text,.white-text .hint-text,.white-text.disabled-text,.white-text.hint-text{color:rgba(255,255,255,.3)!important}.white-fg .divider,.white-fg .faint-text,.white-fg.divider,.white-fg.faint-text,.white-text .divider,.white-text .faint-text,.white-text.divider,.white-text.faint-text{color:rgba(255,255,255,.12)!important}.white-fg md-icon,.white-text md-icon{color:#fff}.white-fg md-progress-linear .md-container,.white-text md-progress-linear .md-container{background:rgba(255,255,255,.3)}.white-fg md-progress-linear .md-bar,.white-text md-progress-linear .md-bar{background:rgba(255,255,255,.7)}.red-50-bg{background-color:#ffebee!important}.md-red-50-bg{background-color:#ffebee!important;color:rgba(0,0,0,.87)}.red-50-fg{color:#ffebee!important}.red-50-border{border-color:#ffebee!important}.red-50-border-top{border-top-color:#ffebee!important}.red-50-border-right{border-right-color:#ffebee!important}.red-50-border-bottom{border-bottom-color:#ffebee!important}.red-50-border-left{border-left-color:#ffebee!important}.red-100-bg{background-color:#ffcdd2!important}.md-red-100-bg{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)}.red-100-fg{color:#ffcdd2!important}.red-100-border{border-color:#ffcdd2!important}.red-100-border-top{border-top-color:#ffcdd2!important}.red-100-border-right{border-right-color:#ffcdd2!important}.red-100-border-bottom{border-bottom-color:#ffcdd2!important}.red-100-border-left{border-left-color:#ffcdd2!important}.red-200-bg{background-color:#ef9a9a!important}.md-red-200-bg{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)}.red-200-fg{color:#ef9a9a!important}.red-200-border{border-color:#ef9a9a!important}.red-200-border-top{border-top-color:#ef9a9a!important}.red-200-border-right{border-right-color:#ef9a9a!important}.red-200-border-bottom{border-bottom-color:#ef9a9a!important}.red-200-border-left{border-left-color:#ef9a9a!important}.red-300-bg{background-color:#e57373!important}.md-red-300-bg{background-color:#e57373!important;color:rgba(0,0,0,.87)}.red-300-fg{color:#e57373!important}.red-300-border{border-color:#e57373!important}.red-300-border-top{border-top-color:#e57373!important}.red-300-border-right{border-right-color:#e57373!important}.red-300-border-bottom{border-bottom-color:#e57373!important}.red-300-border-left{border-left-color:#e57373!important}.red-400-bg{background-color:#ef5350!important}.md-red-400-bg{background-color:#ef5350!important;color:#fff}.red-400-fg{color:#ef5350!important}.red-400-border{border-color:#ef5350!important}.red-400-border-top{border-top-color:#ef5350!important}.red-400-border-right{border-right-color:#ef5350!important}.red-400-border-bottom{border-bottom-color:#ef5350!important}.red-400-border-left{border-left-color:#ef5350!important}.red-500-bg{background-color:#f44336!important}.md-red-500-bg{background-color:#f44336!important;color:#fff}.red-500-fg{color:#f44336!important}.red-500-border{border-color:#f44336!important}.red-500-border-top{border-top-color:#f44336!important}.red-500-border-right{border-right-color:#f44336!important}.red-500-border-bottom{border-bottom-color:#f44336!important}.red-500-border-left{border-left-color:#f44336!important}.md-red-bg{background-color:#f44336!important;color:#fff}.red-bg{background-color:#f44336!important}.red-fg{color:#f44336!important}.red-border{border-color:#f44336!important}.red-border-top{border-top-color:#f44336!important}.red-border-right{border-right-color:#f44336!important}.red-border-bottom{border-bottom-color:#f44336!important}.red-border-left{border-left-color:#f44336!important}.red-600-bg{background-color:#e53935!important}.md-red-600-bg{background-color:#e53935!important;color:#fff}.red-600-fg{color:#e53935!important}.red-600-border{border-color:#e53935!important}.red-600-border-top{border-top-color:#e53935!important}.red-600-border-right{border-right-color:#e53935!important}.red-600-border-bottom{border-bottom-color:#e53935!important}.red-600-border-left{border-left-color:#e53935!important}.red-700-bg{background-color:#d32f2f!important}.md-red-700-bg{background-color:#d32f2f!important;color:#fff}.red-700-fg{color:#d32f2f!important}.red-700-border{border-color:#d32f2f!important}.red-700-border-top{border-top-color:#d32f2f!important}.red-700-border-right{border-right-color:#d32f2f!important}.red-700-border-bottom{border-bottom-color:#d32f2f!important}.red-700-border-left{border-left-color:#d32f2f!important}.red-800-bg{background-color:#c62828!important}.md-red-800-bg{background-color:#c62828!important;color:rgba(255,255,255,.87)}.red-800-fg{color:#c62828!important}.red-800-border{border-color:#c62828!important}.red-800-border-top{border-top-color:#c62828!important}.red-800-border-right{border-right-color:#c62828!important}.red-800-border-bottom{border-bottom-color:#c62828!important}.red-800-border-left{border-left-color:#c62828!important}.red-900-bg{background-color:#b71c1c!important}.md-red-900-bg{background-color:#b71c1c!important;color:rgba(255,255,255,.87)}.red-900-fg{color:#b71c1c!important}.red-900-border{border-color:#b71c1c!important}.red-900-border-top{border-top-color:#b71c1c!important}.red-900-border-right{border-right-color:#b71c1c!important}.red-900-border-bottom{border-bottom-color:#b71c1c!important}.red-900-border-left{border-left-color:#b71c1c!important}.red-A100-bg{background-color:#ff8a80!important}.md-red-A100-bg{background-color:#ff8a80!important;color:rgba(0,0,0,.87)}.red-A100-fg{color:#ff8a80!important}.red-A100-border{border-color:#ff8a80!important}.red-A100-border-top{border-top-color:#ff8a80!important}.red-A100-border-right{border-right-color:#ff8a80!important}.red-A100-border-bottom{border-bottom-color:#ff8a80!important}.red-A100-border-left{border-left-color:#ff8a80!important}.red-A200-bg{background-color:#ff5252!important}.md-red-A200-bg{background-color:#ff5252!important;color:#fff}.red-A200-fg{color:#ff5252!important}.red-A200-border{border-color:#ff5252!important}.red-A200-border-top{border-top-color:#ff5252!important}.red-A200-border-right{border-right-color:#ff5252!important}.red-A200-border-bottom{border-bottom-color:#ff5252!important}.red-A200-border-left{border-left-color:#ff5252!important}.red-A400-bg{background-color:#ff1744!important}.md-red-A400-bg{background-color:#ff1744!important;color:#fff}.red-A400-fg{color:#ff1744!important}.red-A400-border{border-color:#ff1744!important}.red-A400-border-top{border-top-color:#ff1744!important}.red-A400-border-right{border-right-color:#ff1744!important}.red-A400-border-bottom{border-bottom-color:#ff1744!important}.red-A400-border-left{border-left-color:#ff1744!important}.red-A700-bg{background-color:#d50000!important}.md-red-A700-bg{background-color:#d50000!important;color:#fff}.red-A700-fg{color:#d50000!important}.red-A700-border{border-color:#d50000!important}.red-A700-border-top{border-top-color:#d50000!important}.red-A700-border-right{border-right-color:#d50000!important}.red-A700-border-bottom{border-bottom-color:#d50000!important}.red-A700-border-left{border-left-color:#d50000!important}.pink-50-bg{background-color:#fce4ec!important}.md-pink-50-bg{background-color:#fce4ec!important;color:rgba(0,0,0,.87)}.pink-50-fg{color:#fce4ec!important}.pink-50-border{border-color:#fce4ec!important}.pink-50-border-top{border-top-color:#fce4ec!important}.pink-50-border-right{border-right-color:#fce4ec!important}.pink-50-border-bottom{border-bottom-color:#fce4ec!important}.pink-50-border-left{border-left-color:#fce4ec!important}.pink-100-bg{background-color:#f8bbd0!important}.md-pink-100-bg{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)}.pink-100-fg{color:#f8bbd0!important}.pink-100-border{border-color:#f8bbd0!important}.pink-100-border-top{border-top-color:#f8bbd0!important}.pink-100-border-right{border-right-color:#f8bbd0!important}.pink-100-border-bottom{border-bottom-color:#f8bbd0!important}.pink-100-border-left{border-left-color:#f8bbd0!important}.pink-200-bg{background-color:#f48fb1!important}.md-pink-200-bg{background-color:#f48fb1!important;color:rgba(0,0,0,.87)}.pink-200-fg{color:#f48fb1!important}.pink-200-border{border-color:#f48fb1!important}.pink-200-border-top{border-top-color:#f48fb1!important}.pink-200-border-right{border-right-color:#f48fb1!important}.pink-200-border-bottom{border-bottom-color:#f48fb1!important}.pink-200-border-left{border-left-color:#f48fb1!important}.pink-300-bg{background-color:#f06292!important}.md-pink-300-bg{background-color:#f06292!important;color:rgba(255,255,255,.87)}.pink-300-fg{color:#f06292!important}.pink-300-border{border-color:#f06292!important}.pink-300-border-top{border-top-color:#f06292!important}.pink-300-border-right{border-right-color:#f06292!important}.pink-300-border-bottom{border-bottom-color:#f06292!important}.pink-300-border-left{border-left-color:#f06292!important}.pink-400-bg{background-color:#ec407a!important}.md-pink-400-bg{background-color:#ec407a!important;color:rgba(255,255,255,.87)}.pink-400-fg{color:#ec407a!important}.pink-400-border{border-color:#ec407a!important}.pink-400-border-top{border-top-color:#ec407a!important}.pink-400-border-right{border-right-color:#ec407a!important}.pink-400-border-bottom{border-bottom-color:#ec407a!important}.pink-400-border-left{border-left-color:#ec407a!important}.pink-500-bg{background-color:#e91e63!important}.md-pink-500-bg{background-color:#e91e63!important;color:#fff}.pink-500-fg{color:#e91e63!important}.pink-500-border{border-color:#e91e63!important}.pink-500-border-top{border-top-color:#e91e63!important}.pink-500-border-right{border-right-color:#e91e63!important}.pink-500-border-bottom{border-bottom-color:#e91e63!important}.pink-500-border-left{border-left-color:#e91e63!important}.md-pink-bg{background-color:#e91e63!important;color:#fff}.pink-bg{background-color:#e91e63!important}.pink-fg{color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-border-top{border-top-color:#e91e63!important}.pink-border-right{border-right-color:#e91e63!important}.pink-border-bottom{border-bottom-color:#e91e63!important}.pink-border-left{border-left-color:#e91e63!important}.pink-600-bg{background-color:#d81b60!important}.md-pink-600-bg{background-color:#d81b60!important;color:#fff}.pink-600-fg{color:#d81b60!important}.pink-600-border{border-color:#d81b60!important}.pink-600-border-top{border-top-color:#d81b60!important}.pink-600-border-right{border-right-color:#d81b60!important}.pink-600-border-bottom{border-bottom-color:#d81b60!important}.pink-600-border-left{border-left-color:#d81b60!important}.pink-700-bg{background-color:#c2185b!important}.md-pink-700-bg{background-color:#c2185b!important;color:rgba(255,255,255,.87)}.pink-700-fg{color:#c2185b!important}.pink-700-border{border-color:#c2185b!important}.pink-700-border-top{border-top-color:#c2185b!important}.pink-700-border-right{border-right-color:#c2185b!important}.pink-700-border-bottom{border-bottom-color:#c2185b!important}.pink-700-border-left{border-left-color:#c2185b!important}.pink-800-bg{background-color:#ad1457!important}.md-pink-800-bg{background-color:#ad1457!important;color:rgba(255,255,255,.87)}.pink-800-fg{color:#ad1457!important}.pink-800-border{border-color:#ad1457!important}.pink-800-border-top{border-top-color:#ad1457!important}.pink-800-border-right{border-right-color:#ad1457!important}.pink-800-border-bottom{border-bottom-color:#ad1457!important}.pink-800-border-left{border-left-color:#ad1457!important}.pink-900-bg{background-color:#880e4f!important}.md-pink-900-bg{background-color:#880e4f!important;color:rgba(255,255,255,.87)}.pink-900-fg{color:#880e4f!important}.pink-900-border{border-color:#880e4f!important}.pink-900-border-top{border-top-color:#880e4f!important}.pink-900-border-right{border-right-color:#880e4f!important}.pink-900-border-bottom{border-bottom-color:#880e4f!important}.pink-900-border-left{border-left-color:#880e4f!important}.pink-A100-bg{background-color:#ff80ab!important}.md-pink-A100-bg{background-color:#ff80ab!important;color:rgba(0,0,0,.87)}.pink-A100-fg{color:#ff80ab!important}.pink-A100-border{border-color:#ff80ab!important}.pink-A100-border-top{border-top-color:#ff80ab!important}.pink-A100-border-right{border-right-color:#ff80ab!important}.pink-A100-border-bottom{border-bottom-color:#ff80ab!important}.pink-A100-border-left{border-left-color:#ff80ab!important}.pink-A200-bg{background-color:#ff4081!important}.md-pink-A200-bg{background-color:#ff4081!important;color:#fff}.pink-A200-fg{color:#ff4081!important}.pink-A200-border{border-color:#ff4081!important}.pink-A200-border-top{border-top-color:#ff4081!important}.pink-A200-border-right{border-right-color:#ff4081!important}.pink-A200-border-bottom{border-bottom-color:#ff4081!important}.pink-A200-border-left{border-left-color:#ff4081!important}.pink-A400-bg{background-color:#f50057!important}.md-pink-A400-bg{background-color:#f50057!important;color:#fff}.pink-A400-fg{color:#f50057!important}.pink-A400-border{border-color:#f50057!important}.pink-A400-border-top{border-top-color:#f50057!important}.pink-A400-border-right{border-right-color:#f50057!important}.pink-A400-border-bottom{border-bottom-color:#f50057!important}.pink-A400-border-left{border-left-color:#f50057!important}.pink-A700-bg{background-color:#c51162!important}.md-pink-A700-bg{background-color:#c51162!important;color:#fff}.pink-A700-fg{color:#c51162!important}.pink-A700-border{border-color:#c51162!important}.pink-A700-border-top{border-top-color:#c51162!important}.pink-A700-border-right{border-right-color:#c51162!important}.pink-A700-border-bottom{border-bottom-color:#c51162!important}.pink-A700-border-left{border-left-color:#c51162!important}.purple-50-bg{background-color:#f3e5f5!important}.md-purple-50-bg{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)}.purple-50-fg{color:#f3e5f5!important}.purple-50-border{border-color:#f3e5f5!important}.purple-50-border-top{border-top-color:#f3e5f5!important}.purple-50-border-right{border-right-color:#f3e5f5!important}.purple-50-border-bottom{border-bottom-color:#f3e5f5!important}.purple-50-border-left{border-left-color:#f3e5f5!important}.purple-100-bg{background-color:#e1bee7!important}.md-purple-100-bg{background-color:#e1bee7!important;color:rgba(0,0,0,.87)}.purple-100-fg{color:#e1bee7!important}.purple-100-border{border-color:#e1bee7!important}.purple-100-border-top{border-top-color:#e1bee7!important}.purple-100-border-right{border-right-color:#e1bee7!important}.purple-100-border-bottom{border-bottom-color:#e1bee7!important}.purple-100-border-left{border-left-color:#e1bee7!important}.purple-200-bg{background-color:#ce93d8!important}.md-purple-200-bg{background-color:#ce93d8!important;color:rgba(0,0,0,.87)}.purple-200-fg{color:#ce93d8!important}.purple-200-border{border-color:#ce93d8!important}.purple-200-border-top{border-top-color:#ce93d8!important}.purple-200-border-right{border-right-color:#ce93d8!important}.purple-200-border-bottom{border-bottom-color:#ce93d8!important}.purple-200-border-left{border-left-color:#ce93d8!important}.purple-300-bg{background-color:#ba68c8!important}.md-purple-300-bg{background-color:#ba68c8!important;color:#fff}.purple-300-fg{color:#ba68c8!important}.purple-300-border{border-color:#ba68c8!important}.purple-300-border-top{border-top-color:#ba68c8!important}.purple-300-border-right{border-right-color:#ba68c8!important}.purple-300-border-bottom{border-bottom-color:#ba68c8!important}.purple-300-border-left{border-left-color:#ba68c8!important}.purple-400-bg{background-color:#ab47bc!important}.md-purple-400-bg{background-color:#ab47bc!important;color:#fff}.purple-400-fg{color:#ab47bc!important}.purple-400-border{border-color:#ab47bc!important}.purple-400-border-top{border-top-color:#ab47bc!important}.purple-400-border-right{border-right-color:#ab47bc!important}.purple-400-border-bottom{border-bottom-color:#ab47bc!important}.purple-400-border-left{border-left-color:#ab47bc!important}.purple-500-bg{background-color:#9c27b0!important}.md-purple-500-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-500-fg{color:#9c27b0!important}.purple-500-border{border-color:#9c27b0!important}.purple-500-border-top{border-top-color:#9c27b0!important}.purple-500-border-right{border-right-color:#9c27b0!important}.purple-500-border-bottom{border-bottom-color:#9c27b0!important}.purple-500-border-left{border-left-color:#9c27b0!important}.md-purple-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-bg{background-color:#9c27b0!important}.purple-fg{color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-border-top{border-top-color:#9c27b0!important}.purple-border-right{border-right-color:#9c27b0!important}.purple-border-bottom{border-bottom-color:#9c27b0!important}.purple-border-left{border-left-color:#9c27b0!important}.purple-600-bg{background-color:#8e24aa!important}.md-purple-600-bg{background-color:#8e24aa!important;color:rgba(255,255,255,.87)}.purple-600-fg{color:#8e24aa!important}.purple-600-border{border-color:#8e24aa!important}.purple-600-border-top{border-top-color:#8e24aa!important}.purple-600-border-right{border-right-color:#8e24aa!important}.purple-600-border-bottom{border-bottom-color:#8e24aa!important}.purple-600-border-left{border-left-color:#8e24aa!important}.purple-700-bg{background-color:#7b1fa2!important}.md-purple-700-bg{background-color:#7b1fa2!important;color:rgba(255,255,255,.87)}.purple-700-fg{color:#7b1fa2!important}.purple-700-border{border-color:#7b1fa2!important}.purple-700-border-top{border-top-color:#7b1fa2!important}.purple-700-border-right{border-right-color:#7b1fa2!important}.purple-700-border-bottom{border-bottom-color:#7b1fa2!important}.purple-700-border-left{border-left-color:#7b1fa2!important}.purple-800-bg{background-color:#6a1b9a!important}.md-purple-800-bg{background-color:#6a1b9a!important;color:rgba(255,255,255,.87)}.purple-800-fg{color:#6a1b9a!important}.purple-800-border{border-color:#6a1b9a!important}.purple-800-border-top{border-top-color:#6a1b9a!important}.purple-800-border-right{border-right-color:#6a1b9a!important}.purple-800-border-bottom{border-bottom-color:#6a1b9a!important}.purple-800-border-left{border-left-color:#6a1b9a!important}.purple-900-bg{background-color:#4a148c!important}.md-purple-900-bg{background-color:#4a148c!important;color:rgba(255,255,255,.87)}.purple-900-fg{color:#4a148c!important}.purple-900-border{border-color:#4a148c!important}.purple-900-border-top{border-top-color:#4a148c!important}.purple-900-border-right{border-right-color:#4a148c!important}.purple-900-border-bottom{border-bottom-color:#4a148c!important}.purple-900-border-left{border-left-color:#4a148c!important}.purple-A100-bg{background-color:#ea80fc!important}.md-purple-A100-bg{background-color:#ea80fc!important;color:rgba(0,0,0,.87)}.purple-A100-fg{color:#ea80fc!important}.purple-A100-border{border-color:#ea80fc!important}.purple-A100-border-top{border-top-color:#ea80fc!important}.purple-A100-border-right{border-right-color:#ea80fc!important}.purple-A100-border-bottom{border-bottom-color:#ea80fc!important}.purple-A100-border-left{border-left-color:#ea80fc!important}.purple-A200-bg{background-color:#e040fb!important}.md-purple-A200-bg{background-color:#e040fb!important;color:#fff}.purple-A200-fg{color:#e040fb!important}.purple-A200-border{border-color:#e040fb!important}.purple-A200-border-top{border-top-color:#e040fb!important}.purple-A200-border-right{border-right-color:#e040fb!important}.purple-A200-border-bottom{border-bottom-color:#e040fb!important}.purple-A200-border-left{border-left-color:#e040fb!important}.purple-A400-bg{background-color:#d500f9!important}.md-purple-A400-bg{background-color:#d500f9!important;color:#fff}.purple-A400-fg{color:#d500f9!important}.purple-A400-border{border-color:#d500f9!important}.purple-A400-border-top{border-top-color:#d500f9!important}.purple-A400-border-right{border-right-color:#d500f9!important}.purple-A400-border-bottom{border-bottom-color:#d500f9!important}.purple-A400-border-left{border-left-color:#d500f9!important}.purple-A700-bg{background-color:#a0f!important}.md-purple-A700-bg{background-color:#a0f!important;color:#fff}.purple-A700-fg{color:#a0f!important}.purple-A700-border{border-color:#a0f!important}.purple-A700-border-top{border-top-color:#a0f!important}.purple-A700-border-right{border-right-color:#a0f!important}.purple-A700-border-bottom{border-bottom-color:#a0f!important}.purple-A700-border-left{border-left-color:#a0f!important}.deep-purple-50-bg{background-color:#ede7f6!important}.md-deep-purple-50-bg{background-color:#ede7f6!important;color:rgba(0,0,0,.87)}.deep-purple-50-fg{color:#ede7f6!important}.deep-purple-50-border{border-color:#ede7f6!important}.deep-purple-50-border-top{border-top-color:#ede7f6!important}.deep-purple-50-border-right{border-right-color:#ede7f6!important}.deep-purple-50-border-bottom{border-bottom-color:#ede7f6!important}.deep-purple-50-border-left{border-left-color:#ede7f6!important}.deep-purple-100-bg{background-color:#d1c4e9!important}.md-deep-purple-100-bg{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)}.deep-purple-100-fg{color:#d1c4e9!important}.deep-purple-100-border{border-color:#d1c4e9!important}.deep-purple-100-border-top{border-top-color:#d1c4e9!important}.deep-purple-100-border-right{border-right-color:#d1c4e9!important}.deep-purple-100-border-bottom{border-bottom-color:#d1c4e9!important}.deep-purple-100-border-left{border-left-color:#d1c4e9!important}.deep-purple-200-bg{background-color:#b39ddb!important}.md-deep-purple-200-bg{background-color:#b39ddb!important;color:rgba(0,0,0,.87)}.deep-purple-200-fg{color:#b39ddb!important}.deep-purple-200-border{border-color:#b39ddb!important}.deep-purple-200-border-top{border-top-color:#b39ddb!important}.deep-purple-200-border-right{border-right-color:#b39ddb!important}.deep-purple-200-border-bottom{border-bottom-color:#b39ddb!important}.deep-purple-200-border-left{border-left-color:#b39ddb!important}.deep-purple-300-bg{background-color:#9575cd!important}.md-deep-purple-300-bg{background-color:#9575cd!important;color:#fff}.deep-purple-300-fg{color:#9575cd!important}.deep-purple-300-border{border-color:#9575cd!important}.deep-purple-300-border-top{border-top-color:#9575cd!important}.deep-purple-300-border-right{border-right-color:#9575cd!important}.deep-purple-300-border-bottom{border-bottom-color:#9575cd!important}.deep-purple-300-border-left{border-left-color:#9575cd!important}.deep-purple-400-bg{background-color:#7e57c2!important}.md-deep-purple-400-bg{background-color:#7e57c2!important;color:#fff}.deep-purple-400-fg{color:#7e57c2!important}.deep-purple-400-border{border-color:#7e57c2!important}.deep-purple-400-border-top{border-top-color:#7e57c2!important}.deep-purple-400-border-right{border-right-color:#7e57c2!important}.deep-purple-400-border-bottom{border-bottom-color:#7e57c2!important}.deep-purple-400-border-left{border-left-color:#7e57c2!important}.deep-purple-500-bg{background-color:#673ab7!important}.md-deep-purple-500-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-500-fg{color:#673ab7!important}.deep-purple-500-border{border-color:#673ab7!important}.deep-purple-500-border-top{border-top-color:#673ab7!important}.deep-purple-500-border-right{border-right-color:#673ab7!important}.deep-purple-500-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-500-border-left{border-left-color:#673ab7!important}.md-deep-purple-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-bg{background-color:#673ab7!important}.deep-purple-fg{color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-border-top{border-top-color:#673ab7!important}.deep-purple-border-right{border-right-color:#673ab7!important}.deep-purple-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-border-left{border-left-color:#673ab7!important}.deep-purple-600-bg{background-color:#5e35b1!important}.md-deep-purple-600-bg{background-color:#5e35b1!important;color:rgba(255,255,255,.87)}.deep-purple-600-fg{color:#5e35b1!important}.deep-purple-600-border{border-color:#5e35b1!important}.deep-purple-600-border-top{border-top-color:#5e35b1!important}.deep-purple-600-border-right{border-right-color:#5e35b1!important}.deep-purple-600-border-bottom{border-bottom-color:#5e35b1!important}.deep-purple-600-border-left{border-left-color:#5e35b1!important}.deep-purple-700-bg{background-color:#512da8!important}.md-deep-purple-700-bg{background-color:#512da8!important;color:rgba(255,255,255,.87)}.deep-purple-700-fg{color:#512da8!important}.deep-purple-700-border{border-color:#512da8!important}.deep-purple-700-border-top{border-top-color:#512da8!important}.deep-purple-700-border-right{border-right-color:#512da8!important}.deep-purple-700-border-bottom{border-bottom-color:#512da8!important}.deep-purple-700-border-left{border-left-color:#512da8!important}.deep-purple-800-bg{background-color:#4527a0!important}.md-deep-purple-800-bg{background-color:#4527a0!important;color:rgba(255,255,255,.87)}.deep-purple-800-fg{color:#4527a0!important}.deep-purple-800-border{border-color:#4527a0!important}.deep-purple-800-border-top{border-top-color:#4527a0!important}.deep-purple-800-border-right{border-right-color:#4527a0!important}.deep-purple-800-border-bottom{border-bottom-color:#4527a0!important}.deep-purple-800-border-left{border-left-color:#4527a0!important}.deep-purple-900-bg{background-color:#311b92!important}.md-deep-purple-900-bg{background-color:#311b92!important;color:rgba(255,255,255,.87)}.deep-purple-900-fg{color:#311b92!important}.deep-purple-900-border{border-color:#311b92!important}.deep-purple-900-border-top{border-top-color:#311b92!important}.deep-purple-900-border-right{border-right-color:#311b92!important}.deep-purple-900-border-bottom{border-bottom-color:#311b92!important}.deep-purple-900-border-left{border-left-color:#311b92!important}.deep-purple-A100-bg{background-color:#b388ff!important}.md-deep-purple-A100-bg{background-color:#b388ff!important;color:rgba(0,0,0,.87)}.deep-purple-A100-fg{color:#b388ff!important}.deep-purple-A100-border{border-color:#b388ff!important}.deep-purple-A100-border-top{border-top-color:#b388ff!important}.deep-purple-A100-border-right{border-right-color:#b388ff!important}.deep-purple-A100-border-bottom{border-bottom-color:#b388ff!important}.deep-purple-A100-border-left{border-left-color:#b388ff!important}.deep-purple-A200-bg{background-color:#7c4dff!important}.md-deep-purple-A200-bg{background-color:#7c4dff!important;color:#fff}.deep-purple-A200-fg{color:#7c4dff!important}.deep-purple-A200-border{border-color:#7c4dff!important}.deep-purple-A200-border-top{border-top-color:#7c4dff!important}.deep-purple-A200-border-right{border-right-color:#7c4dff!important}.deep-purple-A200-border-bottom{border-bottom-color:#7c4dff!important}.deep-purple-A200-border-left{border-left-color:#7c4dff!important}.deep-purple-A400-bg{background-color:#651fff!important}.md-deep-purple-A400-bg{background-color:#651fff!important;color:rgba(255,255,255,.87)}.deep-purple-A400-fg{color:#651fff!important}.deep-purple-A400-border{border-color:#651fff!important}.deep-purple-A400-border-top{border-top-color:#651fff!important}.deep-purple-A400-border-right{border-right-color:#651fff!important}.deep-purple-A400-border-bottom{border-bottom-color:#651fff!important}.deep-purple-A400-border-left{border-left-color:#651fff!important}.deep-purple-A700-bg{background-color:#6200ea!important}.md-deep-purple-A700-bg{background-color:#6200ea!important;color:rgba(255,255,255,.87)}.deep-purple-A700-fg{color:#6200ea!important}.deep-purple-A700-border{border-color:#6200ea!important}.deep-purple-A700-border-top{border-top-color:#6200ea!important}.deep-purple-A700-border-right{border-right-color:#6200ea!important}.deep-purple-A700-border-bottom{border-bottom-color:#6200ea!important}.deep-purple-A700-border-left{border-left-color:#6200ea!important}.indigo-50-bg{background-color:#e8eaf6!important}.md-indigo-50-bg{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)}.indigo-50-fg{color:#e8eaf6!important}.indigo-50-border{border-color:#e8eaf6!important}.indigo-50-border-top{border-top-color:#e8eaf6!important}.indigo-50-border-right{border-right-color:#e8eaf6!important}.indigo-50-border-bottom{border-bottom-color:#e8eaf6!important}.indigo-50-border-left{border-left-color:#e8eaf6!important}.indigo-100-bg{background-color:#c5cae9!important}.md-indigo-100-bg{background-color:#c5cae9!important;color:rgba(0,0,0,.87)}.indigo-100-fg{color:#c5cae9!important}.indigo-100-border{border-color:#c5cae9!important}.indigo-100-border-top{border-top-color:#c5cae9!important}.indigo-100-border-right{border-right-color:#c5cae9!important}.indigo-100-border-bottom{border-bottom-color:#c5cae9!important}.indigo-100-border-left{border-left-color:#c5cae9!important}.indigo-200-bg{background-color:#9fa8da!important}.md-indigo-200-bg{background-color:#9fa8da!important;color:rgba(0,0,0,.87)}.indigo-200-fg{color:#9fa8da!important}.indigo-200-border{border-color:#9fa8da!important}.indigo-200-border-top{border-top-color:#9fa8da!important}.indigo-200-border-right{border-right-color:#9fa8da!important}.indigo-200-border-bottom{border-bottom-color:#9fa8da!important}.indigo-200-border-left{border-left-color:#9fa8da!important}.indigo-300-bg{background-color:#7986cb!important}.md-indigo-300-bg{background-color:#7986cb!important;color:#fff}.indigo-300-fg{color:#7986cb!important}.indigo-300-border{border-color:#7986cb!important}.indigo-300-border-top{border-top-color:#7986cb!important}.indigo-300-border-right{border-right-color:#7986cb!important}.indigo-300-border-bottom{border-bottom-color:#7986cb!important}.indigo-300-border-left{border-left-color:#7986cb!important}.indigo-400-bg{background-color:#5c6bc0!important}.md-indigo-400-bg{background-color:#5c6bc0!important;color:#fff}.indigo-400-fg{color:#5c6bc0!important}.indigo-400-border{border-color:#5c6bc0!important}.indigo-400-border-top{border-top-color:#5c6bc0!important}.indigo-400-border-right{border-right-color:#5c6bc0!important}.indigo-400-border-bottom{border-bottom-color:#5c6bc0!important}.indigo-400-border-left{border-left-color:#5c6bc0!important}.indigo-500-bg{background-color:#3f51b5!important}.md-indigo-500-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-500-fg{color:#3f51b5!important}.indigo-500-border{border-color:#3f51b5!important}.indigo-500-border-top{border-top-color:#3f51b5!important}.indigo-500-border-right{border-right-color:#3f51b5!important}.indigo-500-border-bottom{border-bottom-color:#3f51b5!important}.indigo-500-border-left{border-left-color:#3f51b5!important}.md-indigo-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-bg{background-color:#3f51b5!important}.indigo-fg{color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-border-top{border-top-color:#3f51b5!important}.indigo-border-right{border-right-color:#3f51b5!important}.indigo-border-bottom{border-bottom-color:#3f51b5!important}.indigo-border-left{border-left-color:#3f51b5!important}.indigo-600-bg{background-color:#3949ab!important}.md-indigo-600-bg{background-color:#3949ab!important;color:rgba(255,255,255,.87)}.indigo-600-fg{color:#3949ab!important}.indigo-600-border{border-color:#3949ab!important}.indigo-600-border-top{border-top-color:#3949ab!important}.indigo-600-border-right{border-right-color:#3949ab!important}.indigo-600-border-bottom{border-bottom-color:#3949ab!important}.indigo-600-border-left{border-left-color:#3949ab!important}.indigo-700-bg{background-color:#303f9f!important}.md-indigo-700-bg{background-color:#303f9f!important;color:rgba(255,255,255,.87)}.indigo-700-fg{color:#303f9f!important}.indigo-700-border{border-color:#303f9f!important}.indigo-700-border-top{border-top-color:#303f9f!important}.indigo-700-border-right{border-right-color:#303f9f!important}.indigo-700-border-bottom{border-bottom-color:#303f9f!important}.indigo-700-border-left{border-left-color:#303f9f!important}.indigo-800-bg{background-color:#283593!important}.md-indigo-800-bg{background-color:#283593!important;color:rgba(255,255,255,.87)}.indigo-800-fg{color:#283593!important}.indigo-800-border{border-color:#283593!important}.indigo-800-border-top{border-top-color:#283593!important}.indigo-800-border-right{border-right-color:#283593!important}.indigo-800-border-bottom{border-bottom-color:#283593!important}.indigo-800-border-left{border-left-color:#283593!important}.indigo-900-bg{background-color:#1a237e!important}.md-indigo-900-bg{background-color:#1a237e!important;color:rgba(255,255,255,.87)}.indigo-900-fg{color:#1a237e!important}.indigo-900-border{border-color:#1a237e!important}.indigo-900-border-top{border-top-color:#1a237e!important}.indigo-900-border-right{border-right-color:#1a237e!important}.indigo-900-border-bottom{border-bottom-color:#1a237e!important}.indigo-900-border-left{border-left-color:#1a237e!important}.indigo-A100-bg{background-color:#8c9eff!important}.md-indigo-A100-bg{background-color:#8c9eff!important;color:rgba(0,0,0,.87)}.indigo-A100-fg{color:#8c9eff!important}.indigo-A100-border{border-color:#8c9eff!important}.indigo-A100-border-top{border-top-color:#8c9eff!important}.indigo-A100-border-right{border-right-color:#8c9eff!important}.indigo-A100-border-bottom{border-bottom-color:#8c9eff!important}.indigo-A100-border-left{border-left-color:#8c9eff!important}.indigo-A200-bg{background-color:#536dfe!important}.md-indigo-A200-bg{background-color:#536dfe!important;color:#fff}.indigo-A200-fg{color:#536dfe!important}.indigo-A200-border{border-color:#536dfe!important}.indigo-A200-border-top{border-top-color:#536dfe!important}.indigo-A200-border-right{border-right-color:#536dfe!important}.indigo-A200-border-bottom{border-bottom-color:#536dfe!important}.indigo-A200-border-left{border-left-color:#536dfe!important}.indigo-A400-bg{background-color:#3d5afe!important}.md-indigo-A400-bg{background-color:#3d5afe!important;color:#fff}.indigo-A400-fg{color:#3d5afe!important}.indigo-A400-border{border-color:#3d5afe!important}.indigo-A400-border-top{border-top-color:#3d5afe!important}.indigo-A400-border-right{border-right-color:#3d5afe!important}.indigo-A400-border-bottom{border-bottom-color:#3d5afe!important}.indigo-A400-border-left{border-left-color:#3d5afe!important}.indigo-A700-bg{background-color:#304ffe!important}.md-indigo-A700-bg{background-color:#304ffe!important;color:rgba(255,255,255,.87)}.indigo-A700-fg{color:#304ffe!important}.indigo-A700-border{border-color:#304ffe!important}.indigo-A700-border-top{border-top-color:#304ffe!important}.indigo-A700-border-right{border-right-color:#304ffe!important}.indigo-A700-border-bottom{border-bottom-color:#304ffe!important}.indigo-A700-border-left{border-left-color:#304ffe!important}.blue-50-bg{background-color:#e3f2fd!important}.md-blue-50-bg{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)}.blue-50-fg{color:#e3f2fd!important}.blue-50-border{border-color:#e3f2fd!important}.blue-50-border-top{border-top-color:#e3f2fd!important}.blue-50-border-right{border-right-color:#e3f2fd!important}.blue-50-border-bottom{border-bottom-color:#e3f2fd!important}.blue-50-border-left{border-left-color:#e3f2fd!important}.blue-100-bg{background-color:#bbdefb!important}.md-blue-100-bg{background-color:#bbdefb!important;color:rgba(0,0,0,.87)}.blue-100-fg{color:#bbdefb!important}.blue-100-border{border-color:#bbdefb!important}.blue-100-border-top{border-top-color:#bbdefb!important}.blue-100-border-right{border-right-color:#bbdefb!important}.blue-100-border-bottom{border-bottom-color:#bbdefb!important}.blue-100-border-left{border-left-color:#bbdefb!important}.blue-200-bg{background-color:#90caf9!important}.md-blue-200-bg{background-color:#90caf9!important;color:rgba(0,0,0,.87)}.blue-200-fg{color:#90caf9!important}.blue-200-border{border-color:#90caf9!important}.blue-200-border-top{border-top-color:#90caf9!important}.blue-200-border-right{border-right-color:#90caf9!important}.blue-200-border-bottom{border-bottom-color:#90caf9!important}.blue-200-border-left{border-left-color:#90caf9!important}.blue-300-bg{background-color:#64b5f6!important}.md-blue-300-bg{background-color:#64b5f6!important;color:rgba(0,0,0,.87)}.blue-300-fg{color:#64b5f6!important}.blue-300-border{border-color:#64b5f6!important}.blue-300-border-top{border-top-color:#64b5f6!important}.blue-300-border-right{border-right-color:#64b5f6!important}.blue-300-border-bottom{border-bottom-color:#64b5f6!important}.blue-300-border-left{border-left-color:#64b5f6!important}.blue-400-bg{background-color:#42a5f5!important}.md-blue-400-bg{background-color:#42a5f5!important;color:rgba(0,0,0,.87)}.blue-400-fg{color:#42a5f5!important}.blue-400-border{border-color:#42a5f5!important}.blue-400-border-top{border-top-color:#42a5f5!important}.blue-400-border-right{border-right-color:#42a5f5!important}.blue-400-border-bottom{border-bottom-color:#42a5f5!important}.blue-400-border-left{border-left-color:#42a5f5!important}.blue-500-bg{background-color:#2196f3!important}.md-blue-500-bg{background-color:#2196f3!important;color:#fff}.blue-500-fg{color:#2196f3!important}.blue-500-border{border-color:#2196f3!important}.blue-500-border-top{border-top-color:#2196f3!important}.blue-500-border-right{border-right-color:#2196f3!important}.blue-500-border-bottom{border-bottom-color:#2196f3!important}.blue-500-border-left{border-left-color:#2196f3!important}.md-blue-bg{background-color:#2196f3!important;color:#fff}.blue-bg{background-color:#2196f3!important}.blue-fg{color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-border-top{border-top-color:#2196f3!important}.blue-border-right{border-right-color:#2196f3!important}.blue-border-bottom{border-bottom-color:#2196f3!important}.blue-border-left{border-left-color:#2196f3!important}.blue-600-bg{background-color:#1e88e5!important}.md-blue-600-bg{background-color:#1e88e5!important;color:#fff}.blue-600-fg{color:#1e88e5!important}.blue-600-border{border-color:#1e88e5!important}.blue-600-border-top{border-top-color:#1e88e5!important}.blue-600-border-right{border-right-color:#1e88e5!important}.blue-600-border-bottom{border-bottom-color:#1e88e5!important}.blue-600-border-left{border-left-color:#1e88e5!important}.blue-700-bg{background-color:#1976d2!important}.md-blue-700-bg{background-color:#1976d2!important;color:#fff}.blue-700-fg{color:#1976d2!important}.blue-700-border{border-color:#1976d2!important}.blue-700-border-top{border-top-color:#1976d2!important}.blue-700-border-right{border-right-color:#1976d2!important}.blue-700-border-bottom{border-bottom-color:#1976d2!important}.blue-700-border-left{border-left-color:#1976d2!important}.blue-800-bg{background-color:#1565c0!important}.md-blue-800-bg{background-color:#1565c0!important;color:rgba(255,255,255,.87)}.blue-800-fg{color:#1565c0!important}.blue-800-border{border-color:#1565c0!important}.blue-800-border-top{border-top-color:#1565c0!important}.blue-800-border-right{border-right-color:#1565c0!important}.blue-800-border-bottom{border-bottom-color:#1565c0!important}.blue-800-border-left{border-left-color:#1565c0!important}.blue-900-bg{background-color:#0d47a1!important}.md-blue-900-bg{background-color:#0d47a1!important;color:rgba(255,255,255,.87)}.blue-900-fg{color:#0d47a1!important}.blue-900-border{border-color:#0d47a1!important}.blue-900-border-top{border-top-color:#0d47a1!important}.blue-900-border-right{border-right-color:#0d47a1!important}.blue-900-border-bottom{border-bottom-color:#0d47a1!important}.blue-900-border-left{border-left-color:#0d47a1!important}.blue-A100-bg{background-color:#82b1ff!important}.md-blue-A100-bg{background-color:#82b1ff!important;color:rgba(0,0,0,.87)}.blue-A100-fg{color:#82b1ff!important}.blue-A100-border{border-color:#82b1ff!important}.blue-A100-border-top{border-top-color:#82b1ff!important}.blue-A100-border-right{border-right-color:#82b1ff!important}.blue-A100-border-bottom{border-bottom-color:#82b1ff!important}.blue-A100-border-left{border-left-color:#82b1ff!important}.blue-A200-bg{background-color:#448aff!important}.md-blue-A200-bg{background-color:#448aff!important;color:#fff}.blue-A200-fg{color:#448aff!important}.blue-A200-border{border-color:#448aff!important}.blue-A200-border-top{border-top-color:#448aff!important}.blue-A200-border-right{border-right-color:#448aff!important}.blue-A200-border-bottom{border-bottom-color:#448aff!important}.blue-A200-border-left{border-left-color:#448aff!important}.blue-A400-bg{background-color:#2979ff!important}.md-blue-A400-bg{background-color:#2979ff!important;color:#fff}.blue-A400-fg{color:#2979ff!important}.blue-A400-border{border-color:#2979ff!important}.blue-A400-border-top{border-top-color:#2979ff!important}.blue-A400-border-right{border-right-color:#2979ff!important}.blue-A400-border-bottom{border-bottom-color:#2979ff!important}.blue-A400-border-left{border-left-color:#2979ff!important}.blue-A700-bg{background-color:#2962ff!important}.md-blue-A700-bg{background-color:#2962ff!important;color:#fff}.blue-A700-fg{color:#2962ff!important}.blue-A700-border{border-color:#2962ff!important}.blue-A700-border-top{border-top-color:#2962ff!important}.blue-A700-border-right{border-right-color:#2962ff!important}.blue-A700-border-bottom{border-bottom-color:#2962ff!important}.blue-A700-border-left{border-left-color:#2962ff!important}.light-blue-50-bg{background-color:#e1f5fe!important}.md-light-blue-50-bg{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)}.light-blue-50-fg{color:#e1f5fe!important}.light-blue-50-border{border-color:#e1f5fe!important}.light-blue-50-border-top{border-top-color:#e1f5fe!important}.light-blue-50-border-right{border-right-color:#e1f5fe!important}.light-blue-50-border-bottom{border-bottom-color:#e1f5fe!important}.light-blue-50-border-left{border-left-color:#e1f5fe!important}.light-blue-100-bg{background-color:#b3e5fc!important}.md-light-blue-100-bg{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)}.light-blue-100-fg{color:#b3e5fc!important}.light-blue-100-border{border-color:#b3e5fc!important}.light-blue-100-border-top{border-top-color:#b3e5fc!important}.light-blue-100-border-right{border-right-color:#b3e5fc!important}.light-blue-100-border-bottom{border-bottom-color:#b3e5fc!important}.light-blue-100-border-left{border-left-color:#b3e5fc!important}.light-blue-200-bg{background-color:#81d4fa!important}.md-light-blue-200-bg{background-color:#81d4fa!important;color:rgba(0,0,0,.87)}.light-blue-200-fg{color:#81d4fa!important}.light-blue-200-border{border-color:#81d4fa!important}.light-blue-200-border-top{border-top-color:#81d4fa!important}.light-blue-200-border-right{border-right-color:#81d4fa!important}.light-blue-200-border-bottom{border-bottom-color:#81d4fa!important}.light-blue-200-border-left{border-left-color:#81d4fa!important}.light-blue-300-bg{background-color:#4fc3f7!important}.md-light-blue-300-bg{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)}.light-blue-300-fg{color:#4fc3f7!important}.light-blue-300-border{border-color:#4fc3f7!important}.light-blue-300-border-top{border-top-color:#4fc3f7!important}.light-blue-300-border-right{border-right-color:#4fc3f7!important}.light-blue-300-border-bottom{border-bottom-color:#4fc3f7!important}.light-blue-300-border-left{border-left-color:#4fc3f7!important}.light-blue-400-bg{background-color:#29b6f6!important}.md-light-blue-400-bg{background-color:#29b6f6!important;color:rgba(0,0,0,.87)}.light-blue-400-fg{color:#29b6f6!important}.light-blue-400-border{border-color:#29b6f6!important}.light-blue-400-border-top{border-top-color:#29b6f6!important}.light-blue-400-border-right{border-right-color:#29b6f6!important}.light-blue-400-border-bottom{border-bottom-color:#29b6f6!important}.light-blue-400-border-left{border-left-color:#29b6f6!important}.light-blue-500-bg{background-color:#03a9f4!important}.md-light-blue-500-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-500-fg{color:#03a9f4!important}.light-blue-500-border{border-color:#03a9f4!important}.light-blue-500-border-top{border-top-color:#03a9f4!important}.light-blue-500-border-right{border-right-color:#03a9f4!important}.light-blue-500-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-500-border-left{border-left-color:#03a9f4!important}.md-light-blue-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-bg{background-color:#03a9f4!important}.light-blue-fg{color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-border-top{border-top-color:#03a9f4!important}.light-blue-border-right{border-right-color:#03a9f4!important}.light-blue-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-border-left{border-left-color:#03a9f4!important}.light-blue-600-bg{background-color:#039be5!important}.md-light-blue-600-bg{background-color:#039be5!important;color:#fff}.light-blue-600-fg{color:#039be5!important}.light-blue-600-border{border-color:#039be5!important}.light-blue-600-border-top{border-top-color:#039be5!important}.light-blue-600-border-right{border-right-color:#039be5!important}.light-blue-600-border-bottom{border-bottom-color:#039be5!important}.light-blue-600-border-left{border-left-color:#039be5!important}.light-blue-700-bg{background-color:#0288d1!important}.md-light-blue-700-bg{background-color:#0288d1!important;color:#fff}.light-blue-700-fg{color:#0288d1!important}.light-blue-700-border{border-color:#0288d1!important}.light-blue-700-border-top{border-top-color:#0288d1!important}.light-blue-700-border-right{border-right-color:#0288d1!important}.light-blue-700-border-bottom{border-bottom-color:#0288d1!important}.light-blue-700-border-left{border-left-color:#0288d1!important}.light-blue-800-bg{background-color:#0277bd!important}.md-light-blue-800-bg{background-color:#0277bd!important;color:#fff}.light-blue-800-fg{color:#0277bd!important}.light-blue-800-border{border-color:#0277bd!important}.light-blue-800-border-top{border-top-color:#0277bd!important}.light-blue-800-border-right{border-right-color:#0277bd!important}.light-blue-800-border-bottom{border-bottom-color:#0277bd!important}.light-blue-800-border-left{border-left-color:#0277bd!important}.light-blue-900-bg{background-color:#01579b!important}.md-light-blue-900-bg{background-color:#01579b!important;color:#fff}.light-blue-900-fg{color:#01579b!important}.light-blue-900-border{border-color:#01579b!important}.light-blue-900-border-top{border-top-color:#01579b!important}.light-blue-900-border-right{border-right-color:#01579b!important}.light-blue-900-border-bottom{border-bottom-color:#01579b!important}.light-blue-900-border-left{border-left-color:#01579b!important}.light-blue-A100-bg{background-color:#80d8ff!important}.md-light-blue-A100-bg{background-color:#80d8ff!important;color:rgba(0,0,0,.87)}.light-blue-A100-fg{color:#80d8ff!important}.light-blue-A100-border{border-color:#80d8ff!important}.light-blue-A100-border-top{border-top-color:#80d8ff!important}.light-blue-A100-border-right{border-right-color:#80d8ff!important}.light-blue-A100-border-bottom{border-bottom-color:#80d8ff!important}.light-blue-A100-border-left{border-left-color:#80d8ff!important}.light-blue-A200-bg{background-color:#40c4ff!important}.md-light-blue-A200-bg{background-color:#40c4ff!important;color:rgba(0,0,0,.87)}.light-blue-A200-fg{color:#40c4ff!important}.light-blue-A200-border{border-color:#40c4ff!important}.light-blue-A200-border-top{border-top-color:#40c4ff!important}.light-blue-A200-border-right{border-right-color:#40c4ff!important}.light-blue-A200-border-bottom{border-bottom-color:#40c4ff!important}.light-blue-A200-border-left{border-left-color:#40c4ff!important}.light-blue-A400-bg{background-color:#00b0ff!important}.md-light-blue-A400-bg{background-color:#00b0ff!important;color:rgba(0,0,0,.87)}.light-blue-A400-fg{color:#00b0ff!important}.light-blue-A400-border{border-color:#00b0ff!important}.light-blue-A400-border-top{border-top-color:#00b0ff!important}.light-blue-A400-border-right{border-right-color:#00b0ff!important}.light-blue-A400-border-bottom{border-bottom-color:#00b0ff!important}.light-blue-A400-border-left{border-left-color:#00b0ff!important}.light-blue-A700-bg{background-color:#0091ea!important}.md-light-blue-A700-bg{background-color:#0091ea!important;color:#fff}.light-blue-A700-fg{color:#0091ea!important}.light-blue-A700-border{border-color:#0091ea!important}.light-blue-A700-border-top{border-top-color:#0091ea!important}.light-blue-A700-border-right{border-right-color:#0091ea!important}.light-blue-A700-border-bottom{border-bottom-color:#0091ea!important}.light-blue-A700-border-left{border-left-color:#0091ea!important}.cyan-50-bg{background-color:#e0f7fa!important}.md-cyan-50-bg{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)}.cyan-50-fg{color:#e0f7fa!important}.cyan-50-border{border-color:#e0f7fa!important}.cyan-50-border-top{border-top-color:#e0f7fa!important}.cyan-50-border-right{border-right-color:#e0f7fa!important}.cyan-50-border-bottom{border-bottom-color:#e0f7fa!important}.cyan-50-border-left{border-left-color:#e0f7fa!important}.cyan-100-bg{background-color:#b2ebf2!important}.md-cyan-100-bg{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)}.cyan-100-fg{color:#b2ebf2!important}.cyan-100-border{border-color:#b2ebf2!important}.cyan-100-border-top{border-top-color:#b2ebf2!important}.cyan-100-border-right{border-right-color:#b2ebf2!important}.cyan-100-border-bottom{border-bottom-color:#b2ebf2!important}.cyan-100-border-left{border-left-color:#b2ebf2!important}.cyan-200-bg{background-color:#80deea!important}.md-cyan-200-bg{background-color:#80deea!important;color:rgba(0,0,0,.87)}.cyan-200-fg{color:#80deea!important}.cyan-200-border{border-color:#80deea!important}.cyan-200-border-top{border-top-color:#80deea!important}.cyan-200-border-right{border-right-color:#80deea!important}.cyan-200-border-bottom{border-bottom-color:#80deea!important}.cyan-200-border-left{border-left-color:#80deea!important}.cyan-300-bg{background-color:#4dd0e1!important}.md-cyan-300-bg{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)}.cyan-300-fg{color:#4dd0e1!important}.cyan-300-border{border-color:#4dd0e1!important}.cyan-300-border-top{border-top-color:#4dd0e1!important}.cyan-300-border-right{border-right-color:#4dd0e1!important}.cyan-300-border-bottom{border-bottom-color:#4dd0e1!important}.cyan-300-border-left{border-left-color:#4dd0e1!important}.cyan-400-bg{background-color:#26c6da!important}.md-cyan-400-bg{background-color:#26c6da!important;color:rgba(0,0,0,.87)}.cyan-400-fg{color:#26c6da!important}.cyan-400-border{border-color:#26c6da!important}.cyan-400-border-top{border-top-color:#26c6da!important}.cyan-400-border-right{border-right-color:#26c6da!important}.cyan-400-border-bottom{border-bottom-color:#26c6da!important}.cyan-400-border-left{border-left-color:#26c6da!important}.cyan-500-bg{background-color:#00bcd4!important}.md-cyan-500-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-500-fg{color:#00bcd4!important}.cyan-500-border{border-color:#00bcd4!important}.cyan-500-border-top{border-top-color:#00bcd4!important}.cyan-500-border-right{border-right-color:#00bcd4!important}.cyan-500-border-bottom{border-bottom-color:#00bcd4!important}.cyan-500-border-left{border-left-color:#00bcd4!important}.md-cyan-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-bg{background-color:#00bcd4!important}.cyan-fg{color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-border-top{border-top-color:#00bcd4!important}.cyan-border-right{border-right-color:#00bcd4!important}.cyan-border-bottom{border-bottom-color:#00bcd4!important}.cyan-border-left{border-left-color:#00bcd4!important}.cyan-600-bg{background-color:#00acc1!important}.md-cyan-600-bg{background-color:#00acc1!important;color:rgba(0,0,0,.87)}.cyan-600-fg{color:#00acc1!important}.cyan-600-border{border-color:#00acc1!important}.cyan-600-border-top{border-top-color:#00acc1!important}.cyan-600-border-right{border-right-color:#00acc1!important}.cyan-600-border-bottom{border-bottom-color:#00acc1!important}.cyan-600-border-left{border-left-color:#00acc1!important}.cyan-700-bg{background-color:#0097a7!important}.md-cyan-700-bg{background-color:#0097a7!important;color:#fff}.cyan-700-fg{color:#0097a7!important}.cyan-700-border{border-color:#0097a7!important}.cyan-700-border-top{border-top-color:#0097a7!important}.cyan-700-border-right{border-right-color:#0097a7!important}.cyan-700-border-bottom{border-bottom-color:#0097a7!important}.cyan-700-border-left{border-left-color:#0097a7!important}.cyan-800-bg{background-color:#00838f!important}.md-cyan-800-bg{background-color:#00838f!important;color:#fff}.cyan-800-fg{color:#00838f!important}.cyan-800-border{border-color:#00838f!important}.cyan-800-border-top{border-top-color:#00838f!important}.cyan-800-border-right{border-right-color:#00838f!important}.cyan-800-border-bottom{border-bottom-color:#00838f!important}.cyan-800-border-left{border-left-color:#00838f!important}.cyan-900-bg{background-color:#006064!important}.md-cyan-900-bg{background-color:#006064!important;color:#fff}.cyan-900-fg{color:#006064!important}.cyan-900-border{border-color:#006064!important}.cyan-900-border-top{border-top-color:#006064!important}.cyan-900-border-right{border-right-color:#006064!important}.cyan-900-border-bottom{border-bottom-color:#006064!important}.cyan-900-border-left{border-left-color:#006064!important}.cyan-A100-bg{background-color:#84ffff!important}.md-cyan-A100-bg{background-color:#84ffff!important;color:rgba(0,0,0,.87)}.cyan-A100-fg{color:#84ffff!important}.cyan-A100-border{border-color:#84ffff!important}.cyan-A100-border-top{border-top-color:#84ffff!important}.cyan-A100-border-right{border-right-color:#84ffff!important}.cyan-A100-border-bottom{border-bottom-color:#84ffff!important}.cyan-A100-border-left{border-left-color:#84ffff!important}.cyan-A200-bg{background-color:#18ffff!important}.md-cyan-A200-bg{background-color:#18ffff!important;color:rgba(0,0,0,.87)}.cyan-A200-fg{color:#18ffff!important}.cyan-A200-border{border-color:#18ffff!important}.cyan-A200-border-top{border-top-color:#18ffff!important}.cyan-A200-border-right{border-right-color:#18ffff!important}.cyan-A200-border-bottom{border-bottom-color:#18ffff!important}.cyan-A200-border-left{border-left-color:#18ffff!important}.cyan-A400-bg{background-color:#00e5ff!important}.md-cyan-A400-bg{background-color:#00e5ff!important;color:rgba(0,0,0,.87)}.cyan-A400-fg{color:#00e5ff!important}.cyan-A400-border{border-color:#00e5ff!important}.cyan-A400-border-top{border-top-color:#00e5ff!important}.cyan-A400-border-right{border-right-color:#00e5ff!important}.cyan-A400-border-bottom{border-bottom-color:#00e5ff!important}.cyan-A400-border-left{border-left-color:#00e5ff!important}.cyan-A700-bg{background-color:#00b8d4!important}.md-cyan-A700-bg{background-color:#00b8d4!important;color:rgba(0,0,0,.87)}.cyan-A700-fg{color:#00b8d4!important}.cyan-A700-border{border-color:#00b8d4!important}.cyan-A700-border-top{border-top-color:#00b8d4!important}.cyan-A700-border-right{border-right-color:#00b8d4!important}.cyan-A700-border-bottom{border-bottom-color:#00b8d4!important}.cyan-A700-border-left{border-left-color:#00b8d4!important}.teal-50-bg{background-color:#e0f2f1!important}.md-teal-50-bg{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)}.teal-50-fg{color:#e0f2f1!important}.teal-50-border{border-color:#e0f2f1!important}.teal-50-border-top{border-top-color:#e0f2f1!important}.teal-50-border-right{border-right-color:#e0f2f1!important}.teal-50-border-bottom{border-bottom-color:#e0f2f1!important}.teal-50-border-left{border-left-color:#e0f2f1!important}.teal-100-bg{background-color:#b2dfdb!important}.md-teal-100-bg{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)}.teal-100-fg{color:#b2dfdb!important}.teal-100-border{border-color:#b2dfdb!important}.teal-100-border-top{border-top-color:#b2dfdb!important}.teal-100-border-right{border-right-color:#b2dfdb!important}.teal-100-border-bottom{border-bottom-color:#b2dfdb!important}.teal-100-border-left{border-left-color:#b2dfdb!important}.teal-200-bg{background-color:#80cbc4!important}.md-teal-200-bg{background-color:#80cbc4!important;color:rgba(0,0,0,.87)}.teal-200-fg{color:#80cbc4!important}.teal-200-border{border-color:#80cbc4!important}.teal-200-border-top{border-top-color:#80cbc4!important}.teal-200-border-right{border-right-color:#80cbc4!important}.teal-200-border-bottom{border-bottom-color:#80cbc4!important}.teal-200-border-left{border-left-color:#80cbc4!important}.teal-300-bg{background-color:#4db6ac!important}.md-teal-300-bg{background-color:#4db6ac!important;color:rgba(0,0,0,.87)}.teal-300-fg{color:#4db6ac!important}.teal-300-border{border-color:#4db6ac!important}.teal-300-border-top{border-top-color:#4db6ac!important}.teal-300-border-right{border-right-color:#4db6ac!important}.teal-300-border-bottom{border-bottom-color:#4db6ac!important}.teal-300-border-left{border-left-color:#4db6ac!important}.teal-400-bg{background-color:#26a69a!important}.md-teal-400-bg{background-color:#26a69a!important;color:rgba(0,0,0,.87)}.teal-400-fg{color:#26a69a!important}.teal-400-border{border-color:#26a69a!important}.teal-400-border-top{border-top-color:#26a69a!important}.teal-400-border-right{border-right-color:#26a69a!important}.teal-400-border-bottom{border-bottom-color:#26a69a!important}.teal-400-border-left{border-left-color:#26a69a!important}.teal-500-bg{background-color:#009688!important}.md-teal-500-bg{background-color:#009688!important;color:#fff}.teal-500-fg{color:#009688!important}.teal-500-border{border-color:#009688!important}.teal-500-border-top{border-top-color:#009688!important}.teal-500-border-right{border-right-color:#009688!important}.teal-500-border-bottom{border-bottom-color:#009688!important}.teal-500-border-left{border-left-color:#009688!important}.md-teal-bg{background-color:#009688!important;color:#fff}.teal-bg{background-color:#009688!important}.teal-fg{color:#009688!important}.teal-border{border-color:#009688!important}.teal-border-top{border-top-color:#009688!important}.teal-border-right{border-right-color:#009688!important}.teal-border-bottom{border-bottom-color:#009688!important}.teal-border-left{border-left-color:#009688!important}.teal-600-bg{background-color:#00897b!important}.md-teal-600-bg{background-color:#00897b!important;color:#fff}.teal-600-fg{color:#00897b!important}.teal-600-border{border-color:#00897b!important}.teal-600-border-top{border-top-color:#00897b!important}.teal-600-border-right{border-right-color:#00897b!important}.teal-600-border-bottom{border-bottom-color:#00897b!important}.teal-600-border-left{border-left-color:#00897b!important}.teal-700-bg{background-color:#00796b!important}.md-teal-700-bg{background-color:#00796b!important;color:#fff}.teal-700-fg{color:#00796b!important}.teal-700-border{border-color:#00796b!important}.teal-700-border-top{border-top-color:#00796b!important}.teal-700-border-right{border-right-color:#00796b!important}.teal-700-border-bottom{border-bottom-color:#00796b!important}.teal-700-border-left{border-left-color:#00796b!important}.teal-800-bg{background-color:#00695c!important}.md-teal-800-bg{background-color:#00695c!important;color:rgba(255,255,255,.87)}.teal-800-fg{color:#00695c!important}.teal-800-border{border-color:#00695c!important}.teal-800-border-top{border-top-color:#00695c!important}.teal-800-border-right{border-right-color:#00695c!important}.teal-800-border-bottom{border-bottom-color:#00695c!important}.teal-800-border-left{border-left-color:#00695c!important}.teal-900-bg{background-color:#004d40!important}.md-teal-900-bg{background-color:#004d40!important;color:rgba(255,255,255,.87)}.teal-900-fg{color:#004d40!important}.teal-900-border{border-color:#004d40!important}.teal-900-border-top{border-top-color:#004d40!important}.teal-900-border-right{border-right-color:#004d40!important}.teal-900-border-bottom{border-bottom-color:#004d40!important}.teal-900-border-left{border-left-color:#004d40!important}.teal-A100-bg{background-color:#a7ffeb!important}.md-teal-A100-bg{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)}.teal-A100-fg{color:#a7ffeb!important}.teal-A100-border{border-color:#a7ffeb!important}.teal-A100-border-top{border-top-color:#a7ffeb!important}.teal-A100-border-right{border-right-color:#a7ffeb!important}.teal-A100-border-bottom{border-bottom-color:#a7ffeb!important}.teal-A100-border-left{border-left-color:#a7ffeb!important}.teal-A200-bg{background-color:#64ffda!important}.md-teal-A200-bg{background-color:#64ffda!important;color:rgba(0,0,0,.87)}.teal-A200-fg{color:#64ffda!important}.teal-A200-border{border-color:#64ffda!important}.teal-A200-border-top{border-top-color:#64ffda!important}.teal-A200-border-right{border-right-color:#64ffda!important}.teal-A200-border-bottom{border-bottom-color:#64ffda!important}.teal-A200-border-left{border-left-color:#64ffda!important}.teal-A400-bg{background-color:#1de9b6!important}.md-teal-A400-bg{background-color:#1de9b6!important;color:rgba(0,0,0,.87)}.teal-A400-fg{color:#1de9b6!important}.teal-A400-border{border-color:#1de9b6!important}.teal-A400-border-top{border-top-color:#1de9b6!important}.teal-A400-border-right{border-right-color:#1de9b6!important}.teal-A400-border-bottom{border-bottom-color:#1de9b6!important}.teal-A400-border-left{border-left-color:#1de9b6!important}.teal-A700-bg{background-color:#00bfa5!important}.md-teal-A700-bg{background-color:#00bfa5!important;color:rgba(0,0,0,.87)}.teal-A700-fg{color:#00bfa5!important}.teal-A700-border{border-color:#00bfa5!important}.teal-A700-border-top{border-top-color:#00bfa5!important}.teal-A700-border-right{border-right-color:#00bfa5!important}.teal-A700-border-bottom{border-bottom-color:#00bfa5!important}.teal-A700-border-left{border-left-color:#00bfa5!important}.green-50-bg{background-color:#e8f5e9!important}.md-green-50-bg{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)}.green-50-fg{color:#e8f5e9!important}.green-50-border{border-color:#e8f5e9!important}.green-50-border-top{border-top-color:#e8f5e9!important}.green-50-border-right{border-right-color:#e8f5e9!important}.green-50-border-bottom{border-bottom-color:#e8f5e9!important}.green-50-border-left{border-left-color:#e8f5e9!important}.green-100-bg{background-color:#c8e6c9!important}.md-green-100-bg{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)}.green-100-fg{color:#c8e6c9!important}.green-100-border{border-color:#c8e6c9!important}.green-100-border-top{border-top-color:#c8e6c9!important}.green-100-border-right{border-right-color:#c8e6c9!important}.green-100-border-bottom{border-bottom-color:#c8e6c9!important}.green-100-border-left{border-left-color:#c8e6c9!important}.green-200-bg{background-color:#a5d6a7!important}.md-green-200-bg{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)}.green-200-fg{color:#a5d6a7!important}.green-200-border{border-color:#a5d6a7!important}.green-200-border-top{border-top-color:#a5d6a7!important}.green-200-border-right{border-right-color:#a5d6a7!important}.green-200-border-bottom{border-bottom-color:#a5d6a7!important}.green-200-border-left{border-left-color:#a5d6a7!important}.green-300-bg{background-color:#81c784!important}.md-green-300-bg{background-color:#81c784!important;color:rgba(0,0,0,.87)}.green-300-fg{color:#81c784!important}.green-300-border{border-color:#81c784!important}.green-300-border-top{border-top-color:#81c784!important}.green-300-border-right{border-right-color:#81c784!important}.green-300-border-bottom{border-bottom-color:#81c784!important}.green-300-border-left{border-left-color:#81c784!important}.green-400-bg{background-color:#66bb6a!important}.md-green-400-bg{background-color:#66bb6a!important;color:rgba(0,0,0,.87)}.green-400-fg{color:#66bb6a!important}.green-400-border{border-color:#66bb6a!important}.green-400-border-top{border-top-color:#66bb6a!important}.green-400-border-right{border-right-color:#66bb6a!important}.green-400-border-bottom{border-bottom-color:#66bb6a!important}.green-400-border-left{border-left-color:#66bb6a!important}.green-500-bg{background-color:#4caf50!important}.md-green-500-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-500-fg{color:#4caf50!important}.green-500-border{border-color:#4caf50!important}.green-500-border-top{border-top-color:#4caf50!important}.green-500-border-right{border-right-color:#4caf50!important}.green-500-border-bottom{border-bottom-color:#4caf50!important}.green-500-border-left{border-left-color:#4caf50!important}.md-green-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-bg{background-color:#4caf50!important}.green-fg{color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-border-top{border-top-color:#4caf50!important}.green-border-right{border-right-color:#4caf50!important}.green-border-bottom{border-bottom-color:#4caf50!important}.green-border-left{border-left-color:#4caf50!important}.green-600-bg{background-color:#43a047!important}.md-green-600-bg{background-color:#43a047!important;color:#fff}.green-600-fg{color:#43a047!important}.green-600-border{border-color:#43a047!important}.green-600-border-top{border-top-color:#43a047!important}.green-600-border-right{border-right-color:#43a047!important}.green-600-border-bottom{border-bottom-color:#43a047!important}.green-600-border-left{border-left-color:#43a047!important}.green-700-bg{background-color:#388e3c!important}.md-green-700-bg{background-color:#388e3c!important;color:#fff}.green-700-fg{color:#388e3c!important}.green-700-border{border-color:#388e3c!important}.green-700-border-top{border-top-color:#388e3c!important}.green-700-border-right{border-right-color:#388e3c!important}.green-700-border-bottom{border-bottom-color:#388e3c!important}.green-700-border-left{border-left-color:#388e3c!important}.green-800-bg{background-color:#2e7d32!important}.md-green-800-bg{background-color:#2e7d32!important;color:rgba(255,255,255,.87)}.green-800-fg{color:#2e7d32!important}.green-800-border{border-color:#2e7d32!important}.green-800-border-top{border-top-color:#2e7d32!important}.green-800-border-right{border-right-color:#2e7d32!important}.green-800-border-bottom{border-bottom-color:#2e7d32!important}.green-800-border-left{border-left-color:#2e7d32!important}.green-900-bg{background-color:#1b5e20!important}.md-green-900-bg{background-color:#1b5e20!important;color:rgba(255,255,255,.87)}.green-900-fg{color:#1b5e20!important}.green-900-border{border-color:#1b5e20!important}.green-900-border-top{border-top-color:#1b5e20!important}.green-900-border-right{border-right-color:#1b5e20!important}.green-900-border-bottom{border-bottom-color:#1b5e20!important}.green-900-border-left{border-left-color:#1b5e20!important}.green-A100-bg{background-color:#b9f6ca!important}.md-green-A100-bg{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)}.green-A100-fg{color:#b9f6ca!important}.green-A100-border{border-color:#b9f6ca!important}.green-A100-border-top{border-top-color:#b9f6ca!important}.green-A100-border-right{border-right-color:#b9f6ca!important}.green-A100-border-bottom{border-bottom-color:#b9f6ca!important}.green-A100-border-left{border-left-color:#b9f6ca!important}.green-A200-bg{background-color:#69f0ae!important}.md-green-A200-bg{background-color:#69f0ae!important;color:rgba(0,0,0,.87)}.green-A200-fg{color:#69f0ae!important}.green-A200-border{border-color:#69f0ae!important}.green-A200-border-top{border-top-color:#69f0ae!important}.green-A200-border-right{border-right-color:#69f0ae!important}.green-A200-border-bottom{border-bottom-color:#69f0ae!important}.green-A200-border-left{border-left-color:#69f0ae!important}.green-A400-bg{background-color:#00e676!important}.md-green-A400-bg{background-color:#00e676!important;color:rgba(0,0,0,.87)}.green-A400-fg{color:#00e676!important}.green-A400-border{border-color:#00e676!important}.green-A400-border-top{border-top-color:#00e676!important}.green-A400-border-right{border-right-color:#00e676!important}.green-A400-border-bottom{border-bottom-color:#00e676!important}.green-A400-border-left{border-left-color:#00e676!important}.green-A700-bg{background-color:#00c853!important}.md-green-A700-bg{background-color:#00c853!important;color:rgba(0,0,0,.87)}.green-A700-fg{color:#00c853!important}.green-A700-border{border-color:#00c853!important}.green-A700-border-top{border-top-color:#00c853!important}.green-A700-border-right{border-right-color:#00c853!important}.green-A700-border-bottom{border-bottom-color:#00c853!important}.green-A700-border-left{border-left-color:#00c853!important}.light-green-50-bg{background-color:#f1f8e9!important}.md-light-green-50-bg{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)}.light-green-50-fg{color:#f1f8e9!important}.light-green-50-border{border-color:#f1f8e9!important}.light-green-50-border-top{border-top-color:#f1f8e9!important}.light-green-50-border-right{border-right-color:#f1f8e9!important}.light-green-50-border-bottom{border-bottom-color:#f1f8e9!important}.light-green-50-border-left{border-left-color:#f1f8e9!important}.light-green-100-bg{background-color:#dcedc8!important}.md-light-green-100-bg{background-color:#dcedc8!important;color:rgba(0,0,0,.87)}.light-green-100-fg{color:#dcedc8!important}.light-green-100-border{border-color:#dcedc8!important}.light-green-100-border-top{border-top-color:#dcedc8!important}.light-green-100-border-right{border-right-color:#dcedc8!important}.light-green-100-border-bottom{border-bottom-color:#dcedc8!important}.light-green-100-border-left{border-left-color:#dcedc8!important}.light-green-200-bg{background-color:#c5e1a5!important}.md-light-green-200-bg{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)}.light-green-200-fg{color:#c5e1a5!important}.light-green-200-border{border-color:#c5e1a5!important}.light-green-200-border-top{border-top-color:#c5e1a5!important}.light-green-200-border-right{border-right-color:#c5e1a5!important}.light-green-200-border-bottom{border-bottom-color:#c5e1a5!important}.light-green-200-border-left{border-left-color:#c5e1a5!important}.light-green-300-bg{background-color:#aed581!important}.md-light-green-300-bg{background-color:#aed581!important;color:rgba(0,0,0,.87)}.light-green-300-fg{color:#aed581!important}.light-green-300-border{border-color:#aed581!important}.light-green-300-border-top{border-top-color:#aed581!important}.light-green-300-border-right{border-right-color:#aed581!important}.light-green-300-border-bottom{border-bottom-color:#aed581!important}.light-green-300-border-left{border-left-color:#aed581!important}.light-green-400-bg{background-color:#9ccc65!important}.md-light-green-400-bg{background-color:#9ccc65!important;color:rgba(0,0,0,.87)}.light-green-400-fg{color:#9ccc65!important}.light-green-400-border{border-color:#9ccc65!important}.light-green-400-border-top{border-top-color:#9ccc65!important}.light-green-400-border-right{border-right-color:#9ccc65!important}.light-green-400-border-bottom{border-bottom-color:#9ccc65!important}.light-green-400-border-left{border-left-color:#9ccc65!important}.light-green-500-bg{background-color:#8bc34a!important}.md-light-green-500-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-500-fg{color:#8bc34a!important}.light-green-500-border{border-color:#8bc34a!important}.light-green-500-border-top{border-top-color:#8bc34a!important}.light-green-500-border-right{border-right-color:#8bc34a!important}.light-green-500-border-bottom{border-bottom-color:#8bc34a!important}.light-green-500-border-left{border-left-color:#8bc34a!important}.md-light-green-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-bg{background-color:#8bc34a!important}.light-green-fg{color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-border-top{border-top-color:#8bc34a!important}.light-green-border-right{border-right-color:#8bc34a!important}.light-green-border-bottom{border-bottom-color:#8bc34a!important}.light-green-border-left{border-left-color:#8bc34a!important}.light-green-600-bg{background-color:#7cb342!important}.md-light-green-600-bg{background-color:#7cb342!important;color:rgba(0,0,0,.87)}.light-green-600-fg{color:#7cb342!important}.light-green-600-border{border-color:#7cb342!important}.light-green-600-border-top{border-top-color:#7cb342!important}.light-green-600-border-right{border-right-color:#7cb342!important}.light-green-600-border-bottom{border-bottom-color:#7cb342!important}.light-green-600-border-left{border-left-color:#7cb342!important}.light-green-700-bg{background-color:#689f38!important}.md-light-green-700-bg{background-color:#689f38!important;color:#fff}.light-green-700-fg{color:#689f38!important}.light-green-700-border{border-color:#689f38!important}.light-green-700-border-top{border-top-color:#689f38!important}.light-green-700-border-right{border-right-color:#689f38!important}.light-green-700-border-bottom{border-bottom-color:#689f38!important}.light-green-700-border-left{border-left-color:#689f38!important}.light-green-800-bg{background-color:#558b2f!important}.md-light-green-800-bg{background-color:#558b2f!important;color:#fff}.light-green-800-fg{color:#558b2f!important}.light-green-800-border{border-color:#558b2f!important}.light-green-800-border-top{border-top-color:#558b2f!important}.light-green-800-border-right{border-right-color:#558b2f!important}.light-green-800-border-bottom{border-bottom-color:#558b2f!important}.light-green-800-border-left{border-left-color:#558b2f!important}.light-green-900-bg{background-color:#33691e!important}.md-light-green-900-bg{background-color:#33691e!important;color:#fff}.light-green-900-fg{color:#33691e!important}.light-green-900-border{border-color:#33691e!important}.light-green-900-border-top{border-top-color:#33691e!important}.light-green-900-border-right{border-right-color:#33691e!important}.light-green-900-border-bottom{border-bottom-color:#33691e!important}.light-green-900-border-left{border-left-color:#33691e!important}.light-green-A100-bg{background-color:#ccff90!important}.md-light-green-A100-bg{background-color:#ccff90!important;color:rgba(0,0,0,.87)}.light-green-A100-fg{color:#ccff90!important}.light-green-A100-border{border-color:#ccff90!important}.light-green-A100-border-top{border-top-color:#ccff90!important}.light-green-A100-border-right{border-right-color:#ccff90!important}.light-green-A100-border-bottom{border-bottom-color:#ccff90!important}.light-green-A100-border-left{border-left-color:#ccff90!important}.light-green-A200-bg{background-color:#b2ff59!important}.md-light-green-A200-bg{background-color:#b2ff59!important;color:rgba(0,0,0,.87)}.light-green-A200-fg{color:#b2ff59!important}.light-green-A200-border{border-color:#b2ff59!important}.light-green-A200-border-top{border-top-color:#b2ff59!important}.light-green-A200-border-right{border-right-color:#b2ff59!important}.light-green-A200-border-bottom{border-bottom-color:#b2ff59!important}.light-green-A200-border-left{border-left-color:#b2ff59!important}.light-green-A400-bg{background-color:#76ff03!important}.md-light-green-A400-bg{background-color:#76ff03!important;color:rgba(0,0,0,.87)}.light-green-A400-fg{color:#76ff03!important}.light-green-A400-border{border-color:#76ff03!important}.light-green-A400-border-top{border-top-color:#76ff03!important}.light-green-A400-border-right{border-right-color:#76ff03!important}.light-green-A400-border-bottom{border-bottom-color:#76ff03!important}.light-green-A400-border-left{border-left-color:#76ff03!important}.light-green-A700-bg{background-color:#64dd17!important}.md-light-green-A700-bg{background-color:#64dd17!important;color:rgba(0,0,0,.87)}.light-green-A700-fg{color:#64dd17!important}.light-green-A700-border{border-color:#64dd17!important}.light-green-A700-border-top{border-top-color:#64dd17!important}.light-green-A700-border-right{border-right-color:#64dd17!important}.light-green-A700-border-bottom{border-bottom-color:#64dd17!important}.light-green-A700-border-left{border-left-color:#64dd17!important}.lime-50-bg{background-color:#f9fbe7!important}.md-lime-50-bg{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)}.lime-50-fg{color:#f9fbe7!important}.lime-50-border{border-color:#f9fbe7!important}.lime-50-border-top{border-top-color:#f9fbe7!important}.lime-50-border-right{border-right-color:#f9fbe7!important}.lime-50-border-bottom{border-bottom-color:#f9fbe7!important}.lime-50-border-left{border-left-color:#f9fbe7!important}.lime-100-bg{background-color:#f0f4c3!important}.md-lime-100-bg{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)}.lime-100-fg{color:#f0f4c3!important}.lime-100-border{border-color:#f0f4c3!important}.lime-100-border-top{border-top-color:#f0f4c3!important}.lime-100-border-right{border-right-color:#f0f4c3!important}.lime-100-border-bottom{border-bottom-color:#f0f4c3!important}.lime-100-border-left{border-left-color:#f0f4c3!important}.lime-200-bg{background-color:#e6ee9c!important}.md-lime-200-bg{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)}.lime-200-fg{color:#e6ee9c!important}.lime-200-border{border-color:#e6ee9c!important}.lime-200-border-top{border-top-color:#e6ee9c!important}.lime-200-border-right{border-right-color:#e6ee9c!important}.lime-200-border-bottom{border-bottom-color:#e6ee9c!important}.lime-200-border-left{border-left-color:#e6ee9c!important}.lime-300-bg{background-color:#dce775!important}.md-lime-300-bg{background-color:#dce775!important;color:rgba(0,0,0,.87)}.lime-300-fg{color:#dce775!important}.lime-300-border{border-color:#dce775!important}.lime-300-border-top{border-top-color:#dce775!important}.lime-300-border-right{border-right-color:#dce775!important}.lime-300-border-bottom{border-bottom-color:#dce775!important}.lime-300-border-left{border-left-color:#dce775!important}.lime-400-bg{background-color:#d4e157!important}.md-lime-400-bg{background-color:#d4e157!important;color:rgba(0,0,0,.87)}.lime-400-fg{color:#d4e157!important}.lime-400-border{border-color:#d4e157!important}.lime-400-border-top{border-top-color:#d4e157!important}.lime-400-border-right{border-right-color:#d4e157!important}.lime-400-border-bottom{border-bottom-color:#d4e157!important}.lime-400-border-left{border-left-color:#d4e157!important}.lime-500-bg{background-color:#cddc39!important}.md-lime-500-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-500-fg{color:#cddc39!important}.lime-500-border{border-color:#cddc39!important}.lime-500-border-top{border-top-color:#cddc39!important}.lime-500-border-right{border-right-color:#cddc39!important}.lime-500-border-bottom{border-bottom-color:#cddc39!important}.lime-500-border-left{border-left-color:#cddc39!important}.md-lime-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-bg{background-color:#cddc39!important}.lime-fg{color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-border-top{border-top-color:#cddc39!important}.lime-border-right{border-right-color:#cddc39!important}.lime-border-bottom{border-bottom-color:#cddc39!important}.lime-border-left{border-left-color:#cddc39!important}.lime-600-bg{background-color:#c0ca33!important}.md-lime-600-bg{background-color:#c0ca33!important;color:rgba(0,0,0,.87)}.lime-600-fg{color:#c0ca33!important}.lime-600-border{border-color:#c0ca33!important}.lime-600-border-top{border-top-color:#c0ca33!important}.lime-600-border-right{border-right-color:#c0ca33!important}.lime-600-border-bottom{border-bottom-color:#c0ca33!important}.lime-600-border-left{border-left-color:#c0ca33!important}.lime-700-bg{background-color:#afb42b!important}.md-lime-700-bg{background-color:#afb42b!important;color:rgba(0,0,0,.87)}.lime-700-fg{color:#afb42b!important}.lime-700-border{border-color:#afb42b!important}.lime-700-border-top{border-top-color:#afb42b!important}.lime-700-border-right{border-right-color:#afb42b!important}.lime-700-border-bottom{border-bottom-color:#afb42b!important}.lime-700-border-left{border-left-color:#afb42b!important}.lime-800-bg{background-color:#9e9d24!important}.md-lime-800-bg{background-color:#9e9d24!important;color:rgba(0,0,0,.87)}.lime-800-fg{color:#9e9d24!important}.lime-800-border{border-color:#9e9d24!important}.lime-800-border-top{border-top-color:#9e9d24!important}.lime-800-border-right{border-right-color:#9e9d24!important}.lime-800-border-bottom{border-bottom-color:#9e9d24!important}.lime-800-border-left{border-left-color:#9e9d24!important}.lime-900-bg{background-color:#827717!important}.md-lime-900-bg{background-color:#827717!important;color:#fff}.lime-900-fg{color:#827717!important}.lime-900-border{border-color:#827717!important}.lime-900-border-top{border-top-color:#827717!important}.lime-900-border-right{border-right-color:#827717!important}.lime-900-border-bottom{border-bottom-color:#827717!important}.lime-900-border-left{border-left-color:#827717!important}.lime-A100-bg{background-color:#f4ff81!important}.md-lime-A100-bg{background-color:#f4ff81!important;color:rgba(0,0,0,.87)}.lime-A100-fg{color:#f4ff81!important}.lime-A100-border{border-color:#f4ff81!important}.lime-A100-border-top{border-top-color:#f4ff81!important}.lime-A100-border-right{border-right-color:#f4ff81!important}.lime-A100-border-bottom{border-bottom-color:#f4ff81!important}.lime-A100-border-left{border-left-color:#f4ff81!important}.lime-A200-bg{background-color:#eeff41!important}.md-lime-A200-bg{background-color:#eeff41!important;color:rgba(0,0,0,.87)}.lime-A200-fg{color:#eeff41!important}.lime-A200-border{border-color:#eeff41!important}.lime-A200-border-top{border-top-color:#eeff41!important}.lime-A200-border-right{border-right-color:#eeff41!important}.lime-A200-border-bottom{border-bottom-color:#eeff41!important}.lime-A200-border-left{border-left-color:#eeff41!important}.lime-A400-bg{background-color:#c6ff00!important}.md-lime-A400-bg{background-color:#c6ff00!important;color:rgba(0,0,0,.87)}.lime-A400-fg{color:#c6ff00!important}.lime-A400-border{border-color:#c6ff00!important}.lime-A400-border-top{border-top-color:#c6ff00!important}.lime-A400-border-right{border-right-color:#c6ff00!important}.lime-A400-border-bottom{border-bottom-color:#c6ff00!important}.lime-A400-border-left{border-left-color:#c6ff00!important}.lime-A700-bg{background-color:#aeea00!important}.md-lime-A700-bg{background-color:#aeea00!important;color:rgba(0,0,0,.87)}.lime-A700-fg{color:#aeea00!important}.lime-A700-border{border-color:#aeea00!important}.lime-A700-border-top{border-top-color:#aeea00!important}.lime-A700-border-right{border-right-color:#aeea00!important}.lime-A700-border-bottom{border-bottom-color:#aeea00!important}.lime-A700-border-left{border-left-color:#aeea00!important}.yellow-50-bg{background-color:#fffde7!important}.md-yellow-50-bg{background-color:#fffde7!important;color:rgba(0,0,0,.87)}.yellow-50-fg{color:#fffde7!important}.yellow-50-border{border-color:#fffde7!important}.yellow-50-border-top{border-top-color:#fffde7!important}.yellow-50-border-right{border-right-color:#fffde7!important}.yellow-50-border-bottom{border-bottom-color:#fffde7!important}.yellow-50-border-left{border-left-color:#fffde7!important}.yellow-100-bg{background-color:#fff9c4!important}.md-yellow-100-bg{background-color:#fff9c4!important;color:rgba(0,0,0,.87)}.yellow-100-fg{color:#fff9c4!important}.yellow-100-border{border-color:#fff9c4!important}.yellow-100-border-top{border-top-color:#fff9c4!important}.yellow-100-border-right{border-right-color:#fff9c4!important}.yellow-100-border-bottom{border-bottom-color:#fff9c4!important}.yellow-100-border-left{border-left-color:#fff9c4!important}.yellow-200-bg{background-color:#fff59d!important}.md-yellow-200-bg{background-color:#fff59d!important;color:rgba(0,0,0,.87)}.yellow-200-fg{color:#fff59d!important}.yellow-200-border{border-color:#fff59d!important}.yellow-200-border-top{border-top-color:#fff59d!important}.yellow-200-border-right{border-right-color:#fff59d!important}.yellow-200-border-bottom{border-bottom-color:#fff59d!important}.yellow-200-border-left{border-left-color:#fff59d!important}.yellow-300-bg{background-color:#fff176!important}.md-yellow-300-bg{background-color:#fff176!important;color:rgba(0,0,0,.87)}.yellow-300-fg{color:#fff176!important}.yellow-300-border{border-color:#fff176!important}.yellow-300-border-top{border-top-color:#fff176!important}.yellow-300-border-right{border-right-color:#fff176!important}.yellow-300-border-bottom{border-bottom-color:#fff176!important}.yellow-300-border-left{border-left-color:#fff176!important}.yellow-400-bg{background-color:#ffee58!important}.md-yellow-400-bg{background-color:#ffee58!important;color:rgba(0,0,0,.87)}.yellow-400-fg{color:#ffee58!important}.yellow-400-border{border-color:#ffee58!important}.yellow-400-border-top{border-top-color:#ffee58!important}.yellow-400-border-right{border-right-color:#ffee58!important}.yellow-400-border-bottom{border-bottom-color:#ffee58!important}.yellow-400-border-left{border-left-color:#ffee58!important}.yellow-500-bg{background-color:#ffeb3b!important}.md-yellow-500-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-500-fg{color:#ffeb3b!important}.yellow-500-border{border-color:#ffeb3b!important}.yellow-500-border-top{border-top-color:#ffeb3b!important}.yellow-500-border-right{border-right-color:#ffeb3b!important}.yellow-500-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-500-border-left{border-left-color:#ffeb3b!important}.md-yellow-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-bg{background-color:#ffeb3b!important}.yellow-fg{color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-border-top{border-top-color:#ffeb3b!important}.yellow-border-right{border-right-color:#ffeb3b!important}.yellow-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-border-left{border-left-color:#ffeb3b!important}.yellow-600-bg{background-color:#fdd835!important}.md-yellow-600-bg{background-color:#fdd835!important;color:rgba(0,0,0,.87)}.yellow-600-fg{color:#fdd835!important}.yellow-600-border{border-color:#fdd835!important}.yellow-600-border-top{border-top-color:#fdd835!important}.yellow-600-border-right{border-right-color:#fdd835!important}.yellow-600-border-bottom{border-bottom-color:#fdd835!important}.yellow-600-border-left{border-left-color:#fdd835!important}.yellow-700-bg{background-color:#fbc02d!important}.md-yellow-700-bg{background-color:#fbc02d!important;color:rgba(0,0,0,.87)}.yellow-700-fg{color:#fbc02d!important}.yellow-700-border{border-color:#fbc02d!important}.yellow-700-border-top{border-top-color:#fbc02d!important}.yellow-700-border-right{border-right-color:#fbc02d!important}.yellow-700-border-bottom{border-bottom-color:#fbc02d!important}.yellow-700-border-left{border-left-color:#fbc02d!important}.yellow-800-bg{background-color:#f9a825!important}.md-yellow-800-bg{background-color:#f9a825!important;color:rgba(0,0,0,.87)}.yellow-800-fg{color:#f9a825!important}.yellow-800-border{border-color:#f9a825!important}.yellow-800-border-top{border-top-color:#f9a825!important}.yellow-800-border-right{border-right-color:#f9a825!important}.yellow-800-border-bottom{border-bottom-color:#f9a825!important}.yellow-800-border-left{border-left-color:#f9a825!important}.yellow-900-bg{background-color:#f57f17!important}.md-yellow-900-bg{background-color:#f57f17!important;color:rgba(0,0,0,.87)}.yellow-900-fg{color:#f57f17!important}.yellow-900-border{border-color:#f57f17!important}.yellow-900-border-top{border-top-color:#f57f17!important}.yellow-900-border-right{border-right-color:#f57f17!important}.yellow-900-border-bottom{border-bottom-color:#f57f17!important}.yellow-900-border-left{border-left-color:#f57f17!important}.yellow-A100-bg{background-color:#ffff8d!important}.md-yellow-A100-bg{background-color:#ffff8d!important;color:rgba(0,0,0,.87)}.yellow-A100-fg{color:#ffff8d!important}.yellow-A100-border{border-color:#ffff8d!important}.yellow-A100-border-top{border-top-color:#ffff8d!important}.yellow-A100-border-right{border-right-color:#ffff8d!important}.yellow-A100-border-bottom{border-bottom-color:#ffff8d!important}.yellow-A100-border-left{border-left-color:#ffff8d!important}.yellow-A200-bg{background-color:#ff0!important}.md-yellow-A200-bg{background-color:#ff0!important;color:rgba(0,0,0,.87)}.yellow-A200-fg{color:#ff0!important}.yellow-A200-border{border-color:#ff0!important}.yellow-A200-border-top{border-top-color:#ff0!important}.yellow-A200-border-right{border-right-color:#ff0!important}.yellow-A200-border-bottom{border-bottom-color:#ff0!important}.yellow-A200-border-left{border-left-color:#ff0!important}.yellow-A400-bg{background-color:#ffea00!important}.md-yellow-A400-bg{background-color:#ffea00!important;color:rgba(0,0,0,.87)}.yellow-A400-fg{color:#ffea00!important}.yellow-A400-border{border-color:#ffea00!important}.yellow-A400-border-top{border-top-color:#ffea00!important}.yellow-A400-border-right{border-right-color:#ffea00!important}.yellow-A400-border-bottom{border-bottom-color:#ffea00!important}.yellow-A400-border-left{border-left-color:#ffea00!important}.yellow-A700-bg{background-color:#ffd600!important}.md-yellow-A700-bg{background-color:#ffd600!important;color:rgba(0,0,0,.87)}.yellow-A700-fg{color:#ffd600!important}.yellow-A700-border{border-color:#ffd600!important}.yellow-A700-border-top{border-top-color:#ffd600!important}.yellow-A700-border-right{border-right-color:#ffd600!important}.yellow-A700-border-bottom{border-bottom-color:#ffd600!important}.yellow-A700-border-left{border-left-color:#ffd600!important}.amber-50-bg{background-color:#fff8e1!important}.md-amber-50-bg{background-color:#fff8e1!important;color:rgba(0,0,0,.87)}.amber-50-fg{color:#fff8e1!important}.amber-50-border{border-color:#fff8e1!important}.amber-50-border-top{border-top-color:#fff8e1!important}.amber-50-border-right{border-right-color:#fff8e1!important}.amber-50-border-bottom{border-bottom-color:#fff8e1!important}.amber-50-border-left{border-left-color:#fff8e1!important}.amber-100-bg{background-color:#ffecb3!important}.md-amber-100-bg{background-color:#ffecb3!important;color:rgba(0,0,0,.87)}.amber-100-fg{color:#ffecb3!important}.amber-100-border{border-color:#ffecb3!important}.amber-100-border-top{border-top-color:#ffecb3!important}.amber-100-border-right{border-right-color:#ffecb3!important}.amber-100-border-bottom{border-bottom-color:#ffecb3!important}.amber-100-border-left{border-left-color:#ffecb3!important}.amber-200-bg{background-color:#ffe082!important}.md-amber-200-bg{background-color:#ffe082!important;color:rgba(0,0,0,.87)}.amber-200-fg{color:#ffe082!important}.amber-200-border{border-color:#ffe082!important}.amber-200-border-top{border-top-color:#ffe082!important}.amber-200-border-right{border-right-color:#ffe082!important}.amber-200-border-bottom{border-bottom-color:#ffe082!important}.amber-200-border-left{border-left-color:#ffe082!important}.amber-300-bg{background-color:#ffd54f!important}.md-amber-300-bg{background-color:#ffd54f!important;color:rgba(0,0,0,.87)}.amber-300-fg{color:#ffd54f!important}.amber-300-border{border-color:#ffd54f!important}.amber-300-border-top{border-top-color:#ffd54f!important}.amber-300-border-right{border-right-color:#ffd54f!important}.amber-300-border-bottom{border-bottom-color:#ffd54f!important}.amber-300-border-left{border-left-color:#ffd54f!important}.amber-400-bg{background-color:#ffca28!important}.md-amber-400-bg{background-color:#ffca28!important;color:rgba(0,0,0,.87)}.amber-400-fg{color:#ffca28!important}.amber-400-border{border-color:#ffca28!important}.amber-400-border-top{border-top-color:#ffca28!important}.amber-400-border-right{border-right-color:#ffca28!important}.amber-400-border-bottom{border-bottom-color:#ffca28!important}.amber-400-border-left{border-left-color:#ffca28!important}.amber-500-bg{background-color:#ffc107!important}.md-amber-500-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-500-fg{color:#ffc107!important}.amber-500-border{border-color:#ffc107!important}.amber-500-border-top{border-top-color:#ffc107!important}.amber-500-border-right{border-right-color:#ffc107!important}.amber-500-border-bottom{border-bottom-color:#ffc107!important}.amber-500-border-left{border-left-color:#ffc107!important}.md-amber-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-bg{background-color:#ffc107!important}.amber-fg{color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-border-top{border-top-color:#ffc107!important}.amber-border-right{border-right-color:#ffc107!important}.amber-border-bottom{border-bottom-color:#ffc107!important}.amber-border-left{border-left-color:#ffc107!important}.amber-600-bg{background-color:#ffb300!important}.md-amber-600-bg{background-color:#ffb300!important;color:rgba(0,0,0,.87)}.amber-600-fg{color:#ffb300!important}.amber-600-border{border-color:#ffb300!important}.amber-600-border-top{border-top-color:#ffb300!important}.amber-600-border-right{border-right-color:#ffb300!important}.amber-600-border-bottom{border-bottom-color:#ffb300!important}.amber-600-border-left{border-left-color:#ffb300!important}.amber-700-bg{background-color:#ffa000!important}.md-amber-700-bg{background-color:#ffa000!important;color:rgba(0,0,0,.87)}.amber-700-fg{color:#ffa000!important}.amber-700-border{border-color:#ffa000!important}.amber-700-border-top{border-top-color:#ffa000!important}.amber-700-border-right{border-right-color:#ffa000!important}.amber-700-border-bottom{border-bottom-color:#ffa000!important}.amber-700-border-left{border-left-color:#ffa000!important}.amber-800-bg{background-color:#ff8f00!important}.md-amber-800-bg{background-color:#ff8f00!important;color:rgba(0,0,0,.87)}.amber-800-fg{color:#ff8f00!important}.amber-800-border{border-color:#ff8f00!important}.amber-800-border-top{border-top-color:#ff8f00!important}.amber-800-border-right{border-right-color:#ff8f00!important}.amber-800-border-bottom{border-bottom-color:#ff8f00!important}.amber-800-border-left{border-left-color:#ff8f00!important}.amber-900-bg{background-color:#ff6f00!important}.md-amber-900-bg{background-color:#ff6f00!important;color:rgba(0,0,0,.87)}.amber-900-fg{color:#ff6f00!important}.amber-900-border{border-color:#ff6f00!important}.amber-900-border-top{border-top-color:#ff6f00!important}.amber-900-border-right{border-right-color:#ff6f00!important}.amber-900-border-bottom{border-bottom-color:#ff6f00!important}.amber-900-border-left{border-left-color:#ff6f00!important}.amber-A100-bg{background-color:#ffe57f!important}.md-amber-A100-bg{background-color:#ffe57f!important;color:rgba(0,0,0,.87)}.amber-A100-fg{color:#ffe57f!important}.amber-A100-border{border-color:#ffe57f!important}.amber-A100-border-top{border-top-color:#ffe57f!important}.amber-A100-border-right{border-right-color:#ffe57f!important}.amber-A100-border-bottom{border-bottom-color:#ffe57f!important}.amber-A100-border-left{border-left-color:#ffe57f!important}.amber-A200-bg{background-color:#ffd740!important}.md-amber-A200-bg{background-color:#ffd740!important;color:rgba(0,0,0,.87)}.amber-A200-fg{color:#ffd740!important}.amber-A200-border{border-color:#ffd740!important}.amber-A200-border-top{border-top-color:#ffd740!important}.amber-A200-border-right{border-right-color:#ffd740!important}.amber-A200-border-bottom{border-bottom-color:#ffd740!important}.amber-A200-border-left{border-left-color:#ffd740!important}.amber-A400-bg{background-color:#ffc400!important}.md-amber-A400-bg{background-color:#ffc400!important;color:rgba(0,0,0,.87)}.amber-A400-fg{color:#ffc400!important}.amber-A400-border{border-color:#ffc400!important}.amber-A400-border-top{border-top-color:#ffc400!important}.amber-A400-border-right{border-right-color:#ffc400!important}.amber-A400-border-bottom{border-bottom-color:#ffc400!important}.amber-A400-border-left{border-left-color:#ffc400!important}.amber-A700-bg{background-color:#ffab00!important}.md-amber-A700-bg{background-color:#ffab00!important;color:rgba(0,0,0,.87)}.amber-A700-fg{color:#ffab00!important}.amber-A700-border{border-color:#ffab00!important}.amber-A700-border-top{border-top-color:#ffab00!important}.amber-A700-border-right{border-right-color:#ffab00!important}.amber-A700-border-bottom{border-bottom-color:#ffab00!important}.amber-A700-border-left{border-left-color:#ffab00!important}.orange-50-bg{background-color:#fff3e0!important}.md-orange-50-bg{background-color:#fff3e0!important;color:rgba(0,0,0,.87)}.orange-50-fg{color:#fff3e0!important}.orange-50-border{border-color:#fff3e0!important}.orange-50-border-top{border-top-color:#fff3e0!important}.orange-50-border-right{border-right-color:#fff3e0!important}.orange-50-border-bottom{border-bottom-color:#fff3e0!important}.orange-50-border-left{border-left-color:#fff3e0!important}.orange-100-bg{background-color:#ffe0b2!important}.md-orange-100-bg{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)}.orange-100-fg{color:#ffe0b2!important}.orange-100-border{border-color:#ffe0b2!important}.orange-100-border-top{border-top-color:#ffe0b2!important}.orange-100-border-right{border-right-color:#ffe0b2!important}.orange-100-border-bottom{border-bottom-color:#ffe0b2!important}.orange-100-border-left{border-left-color:#ffe0b2!important}.orange-200-bg{background-color:#ffcc80!important}.md-orange-200-bg{background-color:#ffcc80!important;color:rgba(0,0,0,.87)}.orange-200-fg{color:#ffcc80!important}.orange-200-border{border-color:#ffcc80!important}.orange-200-border-top{border-top-color:#ffcc80!important}.orange-200-border-right{border-right-color:#ffcc80!important}.orange-200-border-bottom{border-bottom-color:#ffcc80!important}.orange-200-border-left{border-left-color:#ffcc80!important}.orange-300-bg{background-color:#ffb74d!important}.md-orange-300-bg{background-color:#ffb74d!important;color:rgba(0,0,0,.87)}.orange-300-fg{color:#ffb74d!important}.orange-300-border{border-color:#ffb74d!important}.orange-300-border-top{border-top-color:#ffb74d!important}.orange-300-border-right{border-right-color:#ffb74d!important}.orange-300-border-bottom{border-bottom-color:#ffb74d!important}.orange-300-border-left{border-left-color:#ffb74d!important}.orange-400-bg{background-color:#ffa726!important}.md-orange-400-bg{background-color:#ffa726!important;color:rgba(0,0,0,.87)}.orange-400-fg{color:#ffa726!important}.orange-400-border{border-color:#ffa726!important}.orange-400-border-top{border-top-color:#ffa726!important}.orange-400-border-right{border-right-color:#ffa726!important}.orange-400-border-bottom{border-bottom-color:#ffa726!important}.orange-400-border-left{border-left-color:#ffa726!important}.orange-500-bg{background-color:#ff9800!important}.md-orange-500-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-500-fg{color:#ff9800!important}.orange-500-border{border-color:#ff9800!important}.orange-500-border-top{border-top-color:#ff9800!important}.orange-500-border-right{border-right-color:#ff9800!important}.orange-500-border-bottom{border-bottom-color:#ff9800!important}.orange-500-border-left{border-left-color:#ff9800!important}.md-orange-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-bg{background-color:#ff9800!important}.orange-fg{color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-border-top{border-top-color:#ff9800!important}.orange-border-right{border-right-color:#ff9800!important}.orange-border-bottom{border-bottom-color:#ff9800!important}.orange-border-left{border-left-color:#ff9800!important}.orange-600-bg{background-color:#fb8c00!important}.md-orange-600-bg{background-color:#fb8c00!important;color:rgba(0,0,0,.87)}.orange-600-fg{color:#fb8c00!important}.orange-600-border{border-color:#fb8c00!important}.orange-600-border-top{border-top-color:#fb8c00!important}.orange-600-border-right{border-right-color:#fb8c00!important}.orange-600-border-bottom{border-bottom-color:#fb8c00!important}.orange-600-border-left{border-left-color:#fb8c00!important}.orange-700-bg{background-color:#f57c00!important}.md-orange-700-bg{background-color:#f57c00!important;color:rgba(0,0,0,.87)}.orange-700-fg{color:#f57c00!important}.orange-700-border{border-color:#f57c00!important}.orange-700-border-top{border-top-color:#f57c00!important}.orange-700-border-right{border-right-color:#f57c00!important}.orange-700-border-bottom{border-bottom-color:#f57c00!important}.orange-700-border-left{border-left-color:#f57c00!important}.orange-800-bg{background-color:#ef6c00!important}.md-orange-800-bg{background-color:#ef6c00!important;color:#fff}.orange-800-fg{color:#ef6c00!important}.orange-800-border{border-color:#ef6c00!important}.orange-800-border-top{border-top-color:#ef6c00!important}.orange-800-border-right{border-right-color:#ef6c00!important}.orange-800-border-bottom{border-bottom-color:#ef6c00!important}.orange-800-border-left{border-left-color:#ef6c00!important}.orange-900-bg{background-color:#e65100!important}.md-orange-900-bg{background-color:#e65100!important;color:#fff}.orange-900-fg{color:#e65100!important}.orange-900-border{border-color:#e65100!important}.orange-900-border-top{border-top-color:#e65100!important}.orange-900-border-right{border-right-color:#e65100!important}.orange-900-border-bottom{border-bottom-color:#e65100!important}.orange-900-border-left{border-left-color:#e65100!important}.orange-A100-bg{background-color:#ffd180!important}.md-orange-A100-bg{background-color:#ffd180!important;color:rgba(0,0,0,.87)}.orange-A100-fg{color:#ffd180!important}.orange-A100-border{border-color:#ffd180!important}.orange-A100-border-top{border-top-color:#ffd180!important}.orange-A100-border-right{border-right-color:#ffd180!important}.orange-A100-border-bottom{border-bottom-color:#ffd180!important}.orange-A100-border-left{border-left-color:#ffd180!important}.orange-A200-bg{background-color:#ffab40!important}.md-orange-A200-bg{background-color:#ffab40!important;color:rgba(0,0,0,.87)}.orange-A200-fg{color:#ffab40!important}.orange-A200-border{border-color:#ffab40!important}.orange-A200-border-top{border-top-color:#ffab40!important}.orange-A200-border-right{border-right-color:#ffab40!important}.orange-A200-border-bottom{border-bottom-color:#ffab40!important}.orange-A200-border-left{border-left-color:#ffab40!important}.orange-A400-bg{background-color:#ff9100!important}.md-orange-A400-bg{background-color:#ff9100!important;color:rgba(0,0,0,.87)}.orange-A400-fg{color:#ff9100!important}.orange-A400-border{border-color:#ff9100!important}.orange-A400-border-top{border-top-color:#ff9100!important}.orange-A400-border-right{border-right-color:#ff9100!important}.orange-A400-border-bottom{border-bottom-color:#ff9100!important}.orange-A400-border-left{border-left-color:#ff9100!important}.orange-A700-bg{background-color:#ff6d00!important}.md-orange-A700-bg{background-color:#ff6d00!important;color:rgba(0,0,0,.87)}.orange-A700-fg{color:#ff6d00!important}.orange-A700-border{border-color:#ff6d00!important}.orange-A700-border-top{border-top-color:#ff6d00!important}.orange-A700-border-right{border-right-color:#ff6d00!important}.orange-A700-border-bottom{border-bottom-color:#ff6d00!important}.orange-A700-border-left{border-left-color:#ff6d00!important}.deep-orange-50-bg{background-color:#fbe9e7!important}.md-deep-orange-50-bg{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)}.deep-orange-50-fg{color:#fbe9e7!important}.deep-orange-50-border{border-color:#fbe9e7!important}.deep-orange-50-border-top{border-top-color:#fbe9e7!important}.deep-orange-50-border-right{border-right-color:#fbe9e7!important}.deep-orange-50-border-bottom{border-bottom-color:#fbe9e7!important}.deep-orange-50-border-left{border-left-color:#fbe9e7!important}.deep-orange-100-bg{background-color:#ffccbc!important}.md-deep-orange-100-bg{background-color:#ffccbc!important;color:rgba(0,0,0,.87)}.deep-orange-100-fg{color:#ffccbc!important}.deep-orange-100-border{border-color:#ffccbc!important}.deep-orange-100-border-top{border-top-color:#ffccbc!important}.deep-orange-100-border-right{border-right-color:#ffccbc!important}.deep-orange-100-border-bottom{border-bottom-color:#ffccbc!important}.deep-orange-100-border-left{border-left-color:#ffccbc!important}.deep-orange-200-bg{background-color:#ffab91!important}.md-deep-orange-200-bg{background-color:#ffab91!important;color:rgba(0,0,0,.87)}.deep-orange-200-fg{color:#ffab91!important}.deep-orange-200-border{border-color:#ffab91!important}.deep-orange-200-border-top{border-top-color:#ffab91!important}.deep-orange-200-border-right{border-right-color:#ffab91!important}.deep-orange-200-border-bottom{border-bottom-color:#ffab91!important}.deep-orange-200-border-left{border-left-color:#ffab91!important}.deep-orange-300-bg{background-color:#ff8a65!important}.md-deep-orange-300-bg{background-color:#ff8a65!important;color:rgba(0,0,0,.87)}.deep-orange-300-fg{color:#ff8a65!important}.deep-orange-300-border{border-color:#ff8a65!important}.deep-orange-300-border-top{border-top-color:#ff8a65!important}.deep-orange-300-border-right{border-right-color:#ff8a65!important}.deep-orange-300-border-bottom{border-bottom-color:#ff8a65!important}.deep-orange-300-border-left{border-left-color:#ff8a65!important}.deep-orange-400-bg{background-color:#ff7043!important}.md-deep-orange-400-bg{background-color:#ff7043!important;color:rgba(0,0,0,.87)}.deep-orange-400-fg{color:#ff7043!important}.deep-orange-400-border{border-color:#ff7043!important}.deep-orange-400-border-top{border-top-color:#ff7043!important}.deep-orange-400-border-right{border-right-color:#ff7043!important}.deep-orange-400-border-bottom{border-bottom-color:#ff7043!important}.deep-orange-400-border-left{border-left-color:#ff7043!important}.deep-orange-500-bg{background-color:#ff5722!important}.md-deep-orange-500-bg{background-color:#ff5722!important;color:#fff}.deep-orange-500-fg{color:#ff5722!important}.deep-orange-500-border{border-color:#ff5722!important}.deep-orange-500-border-top{border-top-color:#ff5722!important}.deep-orange-500-border-right{border-right-color:#ff5722!important}.deep-orange-500-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-500-border-left{border-left-color:#ff5722!important}.md-deep-orange-bg{background-color:#ff5722!important;color:#fff}.deep-orange-bg{background-color:#ff5722!important}.deep-orange-fg{color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-border-top{border-top-color:#ff5722!important}.deep-orange-border-right{border-right-color:#ff5722!important}.deep-orange-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-border-left{border-left-color:#ff5722!important}.deep-orange-600-bg{background-color:#f4511e!important}.md-deep-orange-600-bg{background-color:#f4511e!important;color:#fff}.deep-orange-600-fg{color:#f4511e!important}.deep-orange-600-border{border-color:#f4511e!important}.deep-orange-600-border-top{border-top-color:#f4511e!important}.deep-orange-600-border-right{border-right-color:#f4511e!important}.deep-orange-600-border-bottom{border-bottom-color:#f4511e!important}.deep-orange-600-border-left{border-left-color:#f4511e!important}.deep-orange-700-bg{background-color:#e64a19!important}.md-deep-orange-700-bg{background-color:#e64a19!important;color:#fff}.deep-orange-700-fg{color:#e64a19!important}.deep-orange-700-border{border-color:#e64a19!important}.deep-orange-700-border-top{border-top-color:#e64a19!important}.deep-orange-700-border-right{border-right-color:#e64a19!important}.deep-orange-700-border-bottom{border-bottom-color:#e64a19!important}.deep-orange-700-border-left{border-left-color:#e64a19!important}.deep-orange-800-bg{background-color:#d84315!important}.md-deep-orange-800-bg{background-color:#d84315!important;color:#fff}.deep-orange-800-fg{color:#d84315!important}.deep-orange-800-border{border-color:#d84315!important}.deep-orange-800-border-top{border-top-color:#d84315!important}.deep-orange-800-border-right{border-right-color:#d84315!important}.deep-orange-800-border-bottom{border-bottom-color:#d84315!important}.deep-orange-800-border-left{border-left-color:#d84315!important}.deep-orange-900-bg{background-color:#bf360c!important}.md-deep-orange-900-bg{background-color:#bf360c!important;color:#fff}.deep-orange-900-fg{color:#bf360c!important}.deep-orange-900-border{border-color:#bf360c!important}.deep-orange-900-border-top{border-top-color:#bf360c!important}.deep-orange-900-border-right{border-right-color:#bf360c!important}.deep-orange-900-border-bottom{border-bottom-color:#bf360c!important}.deep-orange-900-border-left{border-left-color:#bf360c!important}.deep-orange-A100-bg{background-color:#ff9e80!important}.md-deep-orange-A100-bg{background-color:#ff9e80!important;color:rgba(0,0,0,.87)}.deep-orange-A100-fg{color:#ff9e80!important}.deep-orange-A100-border{border-color:#ff9e80!important}.deep-orange-A100-border-top{border-top-color:#ff9e80!important}.deep-orange-A100-border-right{border-right-color:#ff9e80!important}.deep-orange-A100-border-bottom{border-bottom-color:#ff9e80!important}.deep-orange-A100-border-left{border-left-color:#ff9e80!important}.deep-orange-A200-bg{background-color:#ff6e40!important}.md-deep-orange-A200-bg{background-color:#ff6e40!important;color:rgba(0,0,0,.87)}.deep-orange-A200-fg{color:#ff6e40!important}.deep-orange-A200-border{border-color:#ff6e40!important}.deep-orange-A200-border-top{border-top-color:#ff6e40!important}.deep-orange-A200-border-right{border-right-color:#ff6e40!important}.deep-orange-A200-border-bottom{border-bottom-color:#ff6e40!important}.deep-orange-A200-border-left{border-left-color:#ff6e40!important}.deep-orange-A400-bg{background-color:#ff3d00!important}.md-deep-orange-A400-bg{background-color:#ff3d00!important;color:#fff}.deep-orange-A400-fg{color:#ff3d00!important}.deep-orange-A400-border{border-color:#ff3d00!important}.deep-orange-A400-border-top{border-top-color:#ff3d00!important}.deep-orange-A400-border-right{border-right-color:#ff3d00!important}.deep-orange-A400-border-bottom{border-bottom-color:#ff3d00!important}.deep-orange-A400-border-left{border-left-color:#ff3d00!important}.deep-orange-A700-bg{background-color:#dd2c00!important}.md-deep-orange-A700-bg{background-color:#dd2c00!important;color:#fff}.deep-orange-A700-fg{color:#dd2c00!important}.deep-orange-A700-border{border-color:#dd2c00!important}.deep-orange-A700-border-top{border-top-color:#dd2c00!important}.deep-orange-A700-border-right{border-right-color:#dd2c00!important}.deep-orange-A700-border-bottom{border-bottom-color:#dd2c00!important}.deep-orange-A700-border-left{border-left-color:#dd2c00!important}.brown-50-bg{background-color:#efebe9!important}.md-brown-50-bg{background-color:#efebe9!important;color:rgba(0,0,0,.87)}.brown-50-fg{color:#efebe9!important}.brown-50-border{border-color:#efebe9!important}.brown-50-border-top{border-top-color:#efebe9!important}.brown-50-border-right{border-right-color:#efebe9!important}.brown-50-border-bottom{border-bottom-color:#efebe9!important}.brown-50-border-left{border-left-color:#efebe9!important}.brown-100-bg{background-color:#d7ccc8!important}.md-brown-100-bg{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)}.brown-100-fg{color:#d7ccc8!important}.brown-100-border{border-color:#d7ccc8!important}.brown-100-border-top{border-top-color:#d7ccc8!important}.brown-100-border-right{border-right-color:#d7ccc8!important}.brown-100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-100-border-left{border-left-color:#d7ccc8!important}.brown-200-bg{background-color:#bcaaa4!important}.md-brown-200-bg{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)}.brown-200-fg{color:#bcaaa4!important}.brown-200-border{border-color:#bcaaa4!important}.brown-200-border-top{border-top-color:#bcaaa4!important}.brown-200-border-right{border-right-color:#bcaaa4!important}.brown-200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-200-border-left{border-left-color:#bcaaa4!important}.brown-300-bg{background-color:#a1887f!important}.md-brown-300-bg{background-color:#a1887f!important;color:#fff}.brown-300-fg{color:#a1887f!important}.brown-300-border{border-color:#a1887f!important}.brown-300-border-top{border-top-color:#a1887f!important}.brown-300-border-right{border-right-color:#a1887f!important}.brown-300-border-bottom{border-bottom-color:#a1887f!important}.brown-300-border-left{border-left-color:#a1887f!important}.brown-400-bg{background-color:#8d6e63!important}.md-brown-400-bg{background-color:#8d6e63!important;color:#fff}.brown-400-fg{color:#8d6e63!important}.brown-400-border{border-color:#8d6e63!important}.brown-400-border-top{border-top-color:#8d6e63!important}.brown-400-border-right{border-right-color:#8d6e63!important}.brown-400-border-bottom{border-bottom-color:#8d6e63!important}.brown-400-border-left{border-left-color:#8d6e63!important}.brown-500-bg{background-color:#795548!important}.md-brown-500-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-500-fg{color:#795548!important}.brown-500-border{border-color:#795548!important}.brown-500-border-top{border-top-color:#795548!important}.brown-500-border-right{border-right-color:#795548!important}.brown-500-border-bottom{border-bottom-color:#795548!important}.brown-500-border-left{border-left-color:#795548!important}.md-brown-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-bg{background-color:#795548!important}.brown-fg{color:#795548!important}.brown-border{border-color:#795548!important}.brown-border-top{border-top-color:#795548!important}.brown-border-right{border-right-color:#795548!important}.brown-border-bottom{border-bottom-color:#795548!important}.brown-border-left{border-left-color:#795548!important}.brown-600-bg{background-color:#6d4c41!important}.md-brown-600-bg{background-color:#6d4c41!important;color:rgba(255,255,255,.87)}.brown-600-fg{color:#6d4c41!important}.brown-600-border{border-color:#6d4c41!important}.brown-600-border-top{border-top-color:#6d4c41!important}.brown-600-border-right{border-right-color:#6d4c41!important}.brown-600-border-bottom{border-bottom-color:#6d4c41!important}.brown-600-border-left{border-left-color:#6d4c41!important}.brown-700-bg{background-color:#5d4037!important}.md-brown-700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-700-fg{color:#5d4037!important}.brown-700-border{border-color:#5d4037!important}.brown-700-border-top{border-top-color:#5d4037!important}.brown-700-border-right{border-right-color:#5d4037!important}.brown-700-border-bottom{border-bottom-color:#5d4037!important}.brown-700-border-left{border-left-color:#5d4037!important}.brown-800-bg{background-color:#4e342e!important}.md-brown-800-bg{background-color:#4e342e!important;color:rgba(255,255,255,.87)}.brown-800-fg{color:#4e342e!important}.brown-800-border{border-color:#4e342e!important}.brown-800-border-top{border-top-color:#4e342e!important}.brown-800-border-right{border-right-color:#4e342e!important}.brown-800-border-bottom{border-bottom-color:#4e342e!important}.brown-800-border-left{border-left-color:#4e342e!important}.brown-900-bg{background-color:#3e2723!important}.md-brown-900-bg{background-color:#3e2723!important;color:rgba(255,255,255,.87)}.brown-900-fg{color:#3e2723!important}.brown-900-border{border-color:#3e2723!important}.brown-900-border-top{border-top-color:#3e2723!important}.brown-900-border-right{border-right-color:#3e2723!important}.brown-900-border-bottom{border-bottom-color:#3e2723!important}.brown-900-border-left{border-left-color:#3e2723!important}.brown-A100-bg{background-color:#d7ccc8!important}.md-brown-A100-bg{background-color:#d7ccc8!important;color:rgba(255,255,255,.87)}.brown-A100-fg{color:#d7ccc8!important}.brown-A100-border{border-color:#d7ccc8!important}.brown-A100-border-top{border-top-color:#d7ccc8!important}.brown-A100-border-right{border-right-color:#d7ccc8!important}.brown-A100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-A100-border-left{border-left-color:#d7ccc8!important}.brown-A200-bg{background-color:#bcaaa4!important}.md-brown-A200-bg{background-color:#bcaaa4!important;color:rgba(255,255,255,.87)}.brown-A200-fg{color:#bcaaa4!important}.brown-A200-border{border-color:#bcaaa4!important}.brown-A200-border-top{border-top-color:#bcaaa4!important}.brown-A200-border-right{border-right-color:#bcaaa4!important}.brown-A200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-A200-border-left{border-left-color:#bcaaa4!important}.brown-A400-bg{background-color:#8d6e63!important}.md-brown-A400-bg{background-color:#8d6e63!important;color:rgba(255,255,255,.87)}.brown-A400-fg{color:#8d6e63!important}.brown-A400-border{border-color:#8d6e63!important}.brown-A400-border-top{border-top-color:#8d6e63!important}.brown-A400-border-right{border-right-color:#8d6e63!important}.brown-A400-border-bottom{border-bottom-color:#8d6e63!important}.brown-A400-border-left{border-left-color:#8d6e63!important}.brown-A700-bg{background-color:#5d4037!important}.md-brown-A700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-A700-fg{color:#5d4037!important}.brown-A700-border{border-color:#5d4037!important}.brown-A700-border-top{border-top-color:#5d4037!important}.brown-A700-border-right{border-right-color:#5d4037!important}.brown-A700-border-bottom{border-bottom-color:#5d4037!important}.brown-A700-border-left{border-left-color:#5d4037!important}.grey-50-bg{background-color:#fafafa!important}.md-grey-50-bg{background-color:#fafafa!important;color:rgba(0,0,0,.87)}.grey-50-fg{color:#fafafa!important}.grey-50-border{border-color:#fafafa!important}.grey-50-border-top{border-top-color:#fafafa!important}.grey-50-border-right{border-right-color:#fafafa!important}.grey-50-border-bottom{border-bottom-color:#fafafa!important}.grey-50-border-left{border-left-color:#fafafa!important}.grey-100-bg{background-color:#f5f5f5!important}.md-grey-100-bg{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)}.grey-100-fg{color:#f5f5f5!important}.grey-100-border{border-color:#f5f5f5!important}.grey-100-border-top{border-top-color:#f5f5f5!important}.grey-100-border-right{border-right-color:#f5f5f5!important}.grey-100-border-bottom{border-bottom-color:#f5f5f5!important}.grey-100-border-left{border-left-color:#f5f5f5!important}.grey-200-bg{background-color:#eee!important}.md-grey-200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-200-fg{color:#eee!important}.grey-200-border{border-color:#eee!important}.grey-200-border-top{border-top-color:#eee!important}.grey-200-border-right{border-right-color:#eee!important}.grey-200-border-bottom{border-bottom-color:#eee!important}.grey-200-border-left{border-left-color:#eee!important}.grey-300-bg{background-color:#e0e0e0!important}.md-grey-300-bg{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)}.grey-300-fg{color:#e0e0e0!important}.grey-300-border{border-color:#e0e0e0!important}.grey-300-border-top{border-top-color:#e0e0e0!important}.grey-300-border-right{border-right-color:#e0e0e0!important}.grey-300-border-bottom{border-bottom-color:#e0e0e0!important}.grey-300-border-left{border-left-color:#e0e0e0!important}.grey-400-bg{background-color:#bdbdbd!important}.md-grey-400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-400-fg{color:#bdbdbd!important}.grey-400-border{border-color:#bdbdbd!important}.grey-400-border-top{border-top-color:#bdbdbd!important}.grey-400-border-right{border-right-color:#bdbdbd!important}.grey-400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-400-border-left{border-left-color:#bdbdbd!important}.grey-500-bg{background-color:#9e9e9e!important}.md-grey-500-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-500-fg{color:#9e9e9e!important}.grey-500-border{border-color:#9e9e9e!important}.grey-500-border-top{border-top-color:#9e9e9e!important}.grey-500-border-right{border-right-color:#9e9e9e!important}.grey-500-border-bottom{border-bottom-color:#9e9e9e!important}.grey-500-border-left{border-left-color:#9e9e9e!important}.md-grey-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-bg{background-color:#9e9e9e!important}.grey-fg{color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-border-top{border-top-color:#9e9e9e!important}.grey-border-right{border-right-color:#9e9e9e!important}.grey-border-bottom{border-bottom-color:#9e9e9e!important}.grey-border-left{border-left-color:#9e9e9e!important}.grey-600-bg{background-color:#757575!important}.md-grey-600-bg{background-color:#757575!important;color:rgba(255,255,255,.87)}.grey-600-fg{color:#757575!important}.grey-600-border{border-color:#757575!important}.grey-600-border-top{border-top-color:#757575!important}.grey-600-border-right{border-right-color:#757575!important}.grey-600-border-bottom{border-bottom-color:#757575!important}.grey-600-border-left{border-left-color:#757575!important}.grey-700-bg{background-color:#616161!important}.md-grey-700-bg{background-color:#616161!important;color:rgba(255,255,255,.87)}.grey-700-fg{color:#616161!important}.grey-700-border{border-color:#616161!important}.grey-700-border-top{border-top-color:#616161!important}.grey-700-border-right{border-right-color:#616161!important}.grey-700-border-bottom{border-bottom-color:#616161!important}.grey-700-border-left{border-left-color:#616161!important}.grey-800-bg{background-color:#424242!important}.md-grey-800-bg{background-color:#424242!important;color:rgba(255,255,255,.87)}.grey-800-fg{color:#424242!important}.grey-800-border{border-color:#424242!important}.grey-800-border-top{border-top-color:#424242!important}.grey-800-border-right{border-right-color:#424242!important}.grey-800-border-bottom{border-bottom-color:#424242!important}.grey-800-border-left{border-left-color:#424242!important}.grey-900-bg{background-color:#212121!important}.md-grey-900-bg{background-color:#212121!important;color:rgba(255,255,255,.87)}.grey-900-fg{color:#212121!important}.grey-900-border{border-color:#212121!important}.grey-900-border-top{border-top-color:#212121!important}.grey-900-border-right{border-right-color:#212121!important}.grey-900-border-bottom{border-bottom-color:#212121!important}.grey-900-border-left{border-left-color:#212121!important}.grey-1000-bg{background-color:#000!important}.md-grey-1000-bg{background-color:#000!important}.grey-1000-fg{color:#000!important}.grey-1000-border{border-color:#000!important}.grey-1000-border-top{border-top-color:#000!important}.grey-1000-border-right{border-right-color:#000!important}.grey-1000-border-bottom{border-bottom-color:#000!important}.grey-1000-border-left{border-left-color:#000!important}.grey-A100-bg{background-color:#fff!important}.md-grey-A100-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.grey-A100-fg{color:#fff!important}.grey-A100-border{border-color:#fff!important}.grey-A100-border-top{border-top-color:#fff!important}.grey-A100-border-right{border-right-color:#fff!important}.grey-A100-border-bottom{border-bottom-color:#fff!important}.grey-A100-border-left{border-left-color:#fff!important}.grey-A200-bg{background-color:#eee!important}.md-grey-A200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-A200-fg{color:#eee!important}.grey-A200-border{border-color:#eee!important}.grey-A200-border-top{border-top-color:#eee!important}.grey-A200-border-right{border-right-color:#eee!important}.grey-A200-border-bottom{border-bottom-color:#eee!important}.grey-A200-border-left{border-left-color:#eee!important}.grey-A400-bg{background-color:#bdbdbd!important}.md-grey-A400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-A400-fg{color:#bdbdbd!important}.grey-A400-border{border-color:#bdbdbd!important}.grey-A400-border-top{border-top-color:#bdbdbd!important}.grey-A400-border-right{border-right-color:#bdbdbd!important}.grey-A400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-A400-border-left{border-left-color:#bdbdbd!important}.grey-A700-bg{background-color:#616161!important}.md-grey-A700-bg{background-color:#616161!important;color:rgba(0,0,0,.87)}.grey-A700-fg{color:#616161!important}.grey-A700-border{border-color:#616161!important}.grey-A700-border-top{border-top-color:#616161!important}.grey-A700-border-right{border-right-color:#616161!important}.grey-A700-border-bottom{border-bottom-color:#616161!important}.grey-A700-border-left{border-left-color:#616161!important}.blue-grey-50-bg{background-color:#eceff1!important}.md-blue-grey-50-bg{background-color:#eceff1!important;color:rgba(0,0,0,.87)}.blue-grey-50-fg{color:#eceff1!important}.blue-grey-50-border{border-color:#eceff1!important}.blue-grey-50-border-top{border-top-color:#eceff1!important}.blue-grey-50-border-right{border-right-color:#eceff1!important}.blue-grey-50-border-bottom{border-bottom-color:#eceff1!important}.blue-grey-50-border-left{border-left-color:#eceff1!important}.blue-grey-100-bg{background-color:#cfd8dc!important}.md-blue-grey-100-bg{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)}.blue-grey-100-fg{color:#cfd8dc!important}.blue-grey-100-border{border-color:#cfd8dc!important}.blue-grey-100-border-top{border-top-color:#cfd8dc!important}.blue-grey-100-border-right{border-right-color:#cfd8dc!important}.blue-grey-100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-100-border-left{border-left-color:#cfd8dc!important}.blue-grey-200-bg{background-color:#b0bec5!important}.md-blue-grey-200-bg{background-color:#b0bec5!important;color:rgba(0,0,0,.87)}.blue-grey-200-fg{color:#b0bec5!important}.blue-grey-200-border{border-color:#b0bec5!important}.blue-grey-200-border-top{border-top-color:#b0bec5!important}.blue-grey-200-border-right{border-right-color:#b0bec5!important}.blue-grey-200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-200-border-left{border-left-color:#b0bec5!important}.blue-grey-300-bg{background-color:#90a4ae!important}.md-blue-grey-300-bg{background-color:#90a4ae!important;color:rgba(0,0,0,.87)}.blue-grey-300-fg{color:#90a4ae!important}.blue-grey-300-border{border-color:#90a4ae!important}.blue-grey-300-border-top{border-top-color:#90a4ae!important}.blue-grey-300-border-right{border-right-color:#90a4ae!important}.blue-grey-300-border-bottom{border-bottom-color:#90a4ae!important}.blue-grey-300-border-left{border-left-color:#90a4ae!important}.blue-grey-400-bg{background-color:#78909c!important}.md-blue-grey-400-bg{background-color:#78909c!important;color:#fff}.blue-grey-400-fg{color:#78909c!important}.blue-grey-400-border{border-color:#78909c!important}.blue-grey-400-border-top{border-top-color:#78909c!important}.blue-grey-400-border-right{border-right-color:#78909c!important}.blue-grey-400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-400-border-left{border-left-color:#78909c!important}.blue-grey-500-bg{background-color:#607d8b!important}.md-blue-grey-500-bg{background-color:#607d8b!important;color:#fff}.blue-grey-500-fg{color:#607d8b!important}.blue-grey-500-border{border-color:#607d8b!important}.blue-grey-500-border-top{border-top-color:#607d8b!important}.blue-grey-500-border-right{border-right-color:#607d8b!important}.blue-grey-500-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-500-border-left{border-left-color:#607d8b!important}.md-blue-grey-bg{background-color:#607d8b!important;color:#fff}.blue-grey-bg{background-color:#607d8b!important}.blue-grey-fg{color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-border-top{border-top-color:#607d8b!important}.blue-grey-border-right{border-right-color:#607d8b!important}.blue-grey-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-border-left{border-left-color:#607d8b!important}.blue-grey-600-bg{background-color:#546e7a!important}.md-blue-grey-600-bg{background-color:#546e7a!important;color:rgba(255,255,255,.87)}.blue-grey-600-fg{color:#546e7a!important}.blue-grey-600-border{border-color:#546e7a!important}.blue-grey-600-border-top{border-top-color:#546e7a!important}.blue-grey-600-border-right{border-right-color:#546e7a!important}.blue-grey-600-border-bottom{border-bottom-color:#546e7a!important}.blue-grey-600-border-left{border-left-color:#546e7a!important}.blue-grey-700-bg{background-color:#455a64!important}.md-blue-grey-700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-700-fg{color:#455a64!important}.blue-grey-700-border{border-color:#455a64!important}.blue-grey-700-border-top{border-top-color:#455a64!important}.blue-grey-700-border-right{border-right-color:#455a64!important}.blue-grey-700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-700-border-left{border-left-color:#455a64!important}.blue-grey-800-bg{background-color:#37474f!important}.md-blue-grey-800-bg{background-color:#37474f!important;color:rgba(255,255,255,.87)}.blue-grey-800-fg{color:#37474f!important}.blue-grey-800-border{border-color:#37474f!important}.blue-grey-800-border-top{border-top-color:#37474f!important}.blue-grey-800-border-right{border-right-color:#37474f!important}.blue-grey-800-border-bottom{border-bottom-color:#37474f!important}.blue-grey-800-border-left{border-left-color:#37474f!important}.blue-grey-900-bg{background-color:#263238!important}.md-blue-grey-900-bg{background-color:#263238!important;color:rgba(255,255,255,.87)}.blue-grey-900-fg{color:#263238!important}.blue-grey-900-border{border-color:#263238!important}.blue-grey-900-border-top{border-top-color:#263238!important}.blue-grey-900-border-right{border-right-color:#263238!important}.blue-grey-900-border-bottom{border-bottom-color:#263238!important}.blue-grey-900-border-left{border-left-color:#263238!important}.blue-grey-A100-bg{background-color:#cfd8dc!important}.md-blue-grey-A100-bg{background-color:#cfd8dc!important;color:rgba(255,255,255,.87)}.blue-grey-A100-fg{color:#cfd8dc!important}.blue-grey-A100-border{border-color:#cfd8dc!important}.blue-grey-A100-border-top{border-top-color:#cfd8dc!important}.blue-grey-A100-border-right{border-right-color:#cfd8dc!important}.blue-grey-A100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-A100-border-left{border-left-color:#cfd8dc!important}.blue-grey-A200-bg{background-color:#b0bec5!important}.md-blue-grey-A200-bg{background-color:#b0bec5!important;color:rgba(255,255,255,.87)}.blue-grey-A200-fg{color:#b0bec5!important}.blue-grey-A200-border{border-color:#b0bec5!important}.blue-grey-A200-border-top{border-top-color:#b0bec5!important}.blue-grey-A200-border-right{border-right-color:#b0bec5!important}.blue-grey-A200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-A200-border-left{border-left-color:#b0bec5!important}.blue-grey-A400-bg{background-color:#78909c!important}.md-blue-grey-A400-bg{background-color:#78909c!important;color:rgba(255,255,255,.87)}.blue-grey-A400-fg{color:#78909c!important}.blue-grey-A400-border{border-color:#78909c!important}.blue-grey-A400-border-top{border-top-color:#78909c!important}.blue-grey-A400-border-right{border-right-color:#78909c!important}.blue-grey-A400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-A400-border-left{border-left-color:#78909c!important}.blue-grey-A700-bg{background-color:#455a64!important}.md-blue-grey-A700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-A700-fg{color:#455a64!important}.blue-grey-A700-border{border-color:#455a64!important}.blue-grey-A700-border-top{border-top-color:#455a64!important}.blue-grey-A700-border-right{border-right-color:#455a64!important}.blue-grey-A700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-A700-border-left{border-left-color:#455a64!important}.white-500-bg{background-color:#fff!important}.md-white-500-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-500-fg{color:#fff!important}.white-500-border{border-color:#fff!important}.white-500-border-top{border-top-color:#fff!important}.white-500-border-right{border-right-color:#fff!important}.white-500-border-bottom{border-bottom-color:#fff!important}.white-500-border-left{border-left-color:#fff!important}.md-white-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-bg{background-color:#fff!important}.white-fg{color:#fff!important}.white-border{border-color:#fff!important}.white-border-top{border-top-color:#fff!important}.white-border-right{border-right-color:#fff!important}.white-border-bottom{border-bottom-color:#fff!important}.white-border-left{border-left-color:#fff!important}.black-500-bg{background-color:#000!important}.md-black-500-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-500-fg{color:#000!important}.black-500-border{border-color:#000!important}.black-500-border-top{border-top-color:#000!important}.black-500-border-right{border-right-color:#000!important}.black-500-border-bottom{border-bottom-color:#000!important}.black-500-border-left{border-left-color:#000!important}.md-black-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-bg{background-color:#000!important}.black-fg{color:#000!important}.black-border{border-color:#000!important}.black-border-top{border-top-color:#000!important}.black-border-right{border-right-color:#000!important}.black-border-bottom{border-bottom-color:#000!important}.black-border-left{border-left-color:#000!important}i,md-icon[md-font-icon]{font-size:24px;width:24px;height:24px;min-width:24px;min-height:24px;line-height:24px}i.s4,md-icon[md-font-icon].s4{font-size:4px!important;width:4px!important;height:4px!important;min-width:4px!important;min-height:4px!important;line-height:4px!important}i.s6,md-icon[md-font-icon].s6{font-size:6px!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;line-height:6px!important}i.s8,md-icon[md-font-icon].s8{font-size:8px!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;line-height:8px!important}i.s10,md-icon[md-font-icon].s10{font-size:10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;line-height:10px!important}i.s12,md-icon[md-font-icon].s12{font-size:12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;line-height:12px!important}i.s14,md-icon[md-font-icon].s14{font-size:14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;line-height:14px!important}i.s16,md-icon[md-font-icon].s16{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important}i.s18,md-icon[md-font-icon].s18{font-size:18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;line-height:18px!important}i.s20,md-icon[md-font-icon].s20{font-size:20px!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;line-height:20px!important}i.s22,md-icon[md-font-icon].s22{font-size:22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;line-height:22px!important}i.s24,md-icon[md-font-icon].s24{font-size:24px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;line-height:24px!important}i.s26,md-icon[md-font-icon].s26{font-size:26px!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;line-height:26px!important}i.s28,md-icon[md-font-icon].s28{font-size:28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important}i.s30,md-icon[md-font-icon].s30{font-size:30px!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;line-height:30px!important}i.s32,md-icon[md-font-icon].s32{font-size:32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;line-height:32px!important}i.s34,md-icon[md-font-icon].s34{font-size:34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;line-height:34px!important}i.s36,md-icon[md-font-icon].s36{font-size:36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;line-height:36px!important}i.s38,md-icon[md-font-icon].s38{font-size:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;line-height:38px!important}i.s40,md-icon[md-font-icon].s40{font-size:40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;line-height:40px!important}i.s42,md-icon[md-font-icon].s42{font-size:42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;line-height:42px!important}i.s44,md-icon[md-font-icon].s44{font-size:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;line-height:44px!important}i.s46,md-icon[md-font-icon].s46{font-size:46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;line-height:46px!important}i.s48,md-icon[md-font-icon].s48{font-size:48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;line-height:48px!important}i.s50,md-icon[md-font-icon].s50{font-size:50px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;line-height:50px!important}i.s52,md-icon[md-font-icon].s52{font-size:52px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;line-height:52px!important}i.s54,md-icon[md-font-icon].s54{font-size:54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;line-height:54px!important}i.s56,md-icon[md-font-icon].s56{font-size:56px!important;width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;line-height:56px!important}i.s58,md-icon[md-font-icon].s58{font-size:58px!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;line-height:58px!important}i.s60,md-icon[md-font-icon].s60{font-size:60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;line-height:60px!important}i.s62,md-icon[md-font-icon].s62{font-size:62px!important;width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;line-height:62px!important}i.s64,md-icon[md-font-icon].s64{font-size:64px!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;line-height:64px!important}i.s66,md-icon[md-font-icon].s66{font-size:66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;line-height:66px!important}i.s68,md-icon[md-font-icon].s68{font-size:68px!important;width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;line-height:68px!important}i.s70,md-icon[md-font-icon].s70{font-size:70px!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;line-height:70px!important}i.s72,md-icon[md-font-icon].s72{font-size:72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;line-height:72px!important}i.s74,md-icon[md-font-icon].s74{font-size:74px!important;width:74px!important;height:74px!important;min-width:74px!important;min-height:74px!important;line-height:74px!important}i.s76,md-icon[md-font-icon].s76{font-size:76px!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;line-height:76px!important}i.s78,md-icon[md-font-icon].s78{font-size:78px!important;width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important;line-height:78px!important}i.s80,md-icon[md-font-icon].s80{font-size:80px!important;width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;line-height:80px!important}i.s82,md-icon[md-font-icon].s82{font-size:82px!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;line-height:82px!important}i.s84,md-icon[md-font-icon].s84{font-size:84px!important;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;line-height:84px!important}i.s86,md-icon[md-font-icon].s86{font-size:86px!important;width:86px!important;height:86px!important;min-width:86px!important;min-height:86px!important;line-height:86px!important}i.s88,md-icon[md-font-icon].s88{font-size:88px!important;width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;line-height:88px!important}i.s90,md-icon[md-font-icon].s90{font-size:90px!important;width:90px!important;height:90px!important;min-width:90px!important;min-height:90px!important;line-height:90px!important}i.s92,md-icon[md-font-icon].s92{font-size:92px!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;line-height:92px!important}i.s94,md-icon[md-font-icon].s94{font-size:94px!important;width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important;line-height:94px!important}i.s96,md-icon[md-font-icon].s96{font-size:96px!important;width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;line-height:96px!important}i.s98,md-icon[md-font-icon].s98{font-size:98px!important;width:98px!important;height:98px!important;min-width:98px!important;min-height:98px!important;line-height:98px!important}i.s100,md-icon[md-font-icon].s100{font-size:100px!important;width:100px!important;height:100px!important;min-width:100px!important;min-height:100px!important;line-height:100px!important}i.s102,md-icon[md-font-icon].s102{font-size:102px!important;width:102px!important;height:102px!important;min-width:102px!important;min-height:102px!important;line-height:102px!important}i.s104,md-icon[md-font-icon].s104{font-size:104px!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;line-height:104px!important}i.s106,md-icon[md-font-icon].s106{font-size:106px!important;width:106px!important;height:106px!important;min-width:106px!important;min-height:106px!important;line-height:106px!important}i.s108,md-icon[md-font-icon].s108{font-size:108px!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;line-height:108px!important}i.s110,md-icon[md-font-icon].s110{font-size:110px!important;width:110px!important;height:110px!important;min-width:110px!important;min-height:110px!important;line-height:110px!important}i.s112,md-icon[md-font-icon].s112{font-size:112px!important;width:112px!important;height:112px!important;min-width:112px!important;min-height:112px!important;line-height:112px!important}i.s114,md-icon[md-font-icon].s114{font-size:114px!important;width:114px!important;height:114px!important;min-width:114px!important;min-height:114px!important;line-height:114px!important}i.s116,md-icon[md-font-icon].s116{font-size:116px!important;width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;line-height:116px!important}i.s118,md-icon[md-font-icon].s118{font-size:118px!important;width:118px!important;height:118px!important;min-width:118px!important;min-height:118px!important;line-height:118px!important}i.s120,md-icon[md-font-icon].s120{font-size:120px!important;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;line-height:120px!important}i.s122,md-icon[md-font-icon].s122{font-size:122px!important;width:122px!important;height:122px!important;min-width:122px!important;min-height:122px!important;line-height:122px!important}i.s124,md-icon[md-font-icon].s124{font-size:124px!important;width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important;line-height:124px!important}i.s126,md-icon[md-font-icon].s126{font-size:126px!important;width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;line-height:126px!important}i.s128,md-icon[md-font-icon].s128{font-size:128px!important;width:128px!important;height:128px!important;min-width:128px!important;min-height:128px!important;line-height:128px!important}i.s130,md-icon[md-font-icon].s130{font-size:130px!important;width:130px!important;height:130px!important;min-width:130px!important;min-height:130px!important;line-height:130px!important}i.s132,md-icon[md-font-icon].s132{font-size:132px!important;width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;line-height:132px!important}i.s134,md-icon[md-font-icon].s134{font-size:134px!important;width:134px!important;height:134px!important;min-width:134px!important;min-height:134px!important;line-height:134px!important}i.s136,md-icon[md-font-icon].s136{font-size:136px!important;width:136px!important;height:136px!important;min-width:136px!important;min-height:136px!important;line-height:136px!important}i.s138,md-icon[md-font-icon].s138{font-size:138px!important;width:138px!important;height:138px!important;min-width:138px!important;min-height:138px!important;line-height:138px!important}i.s140,md-icon[md-font-icon].s140{font-size:140px!important;width:140px!important;height:140px!important;min-width:140px!important;min-height:140px!important;line-height:140px!important}i.s142,md-icon[md-font-icon].s142{font-size:142px!important;width:142px!important;height:142px!important;min-width:142px!important;min-height:142px!important;line-height:142px!important}i.s144,md-icon[md-font-icon].s144{font-size:144px!important;width:144px!important;height:144px!important;min-width:144px!important;min-height:144px!important;line-height:144px!important}i.s146,md-icon[md-font-icon].s146{font-size:146px!important;width:146px!important;height:146px!important;min-width:146px!important;min-height:146px!important;line-height:146px!important}i.s148,md-icon[md-font-icon].s148{font-size:148px!important;width:148px!important;height:148px!important;min-width:148px!important;min-height:148px!important;line-height:148px!important}i.s150,md-icon[md-font-icon].s150{font-size:150px!important;width:150px!important;height:150px!important;min-width:150px!important;min-height:150px!important;line-height:150px!important}i.s152,md-icon[md-font-icon].s152{font-size:152px!important;width:152px!important;height:152px!important;min-width:152px!important;min-height:152px!important;line-height:152px!important}i.s154,md-icon[md-font-icon].s154{font-size:154px!important;width:154px!important;height:154px!important;min-width:154px!important;min-height:154px!important;line-height:154px!important}i.s156,md-icon[md-font-icon].s156{font-size:156px!important;width:156px!important;height:156px!important;min-width:156px!important;min-height:156px!important;line-height:156px!important}i.s158,md-icon[md-font-icon].s158{font-size:158px!important;width:158px!important;height:158px!important;min-width:158px!important;min-height:158px!important;line-height:158px!important}i.s160,md-icon[md-font-icon].s160{font-size:160px!important;width:160px!important;height:160px!important;min-width:160px!important;min-height:160px!important;line-height:160px!important}i.s162,md-icon[md-font-icon].s162{font-size:162px!important;width:162px!important;height:162px!important;min-width:162px!important;min-height:162px!important;line-height:162px!important}i.s164,md-icon[md-font-icon].s164{font-size:164px!important;width:164px!important;height:164px!important;min-width:164px!important;min-height:164px!important;line-height:164px!important}i.s166,md-icon[md-font-icon].s166{font-size:166px!important;width:166px!important;height:166px!important;min-width:166px!important;min-height:166px!important;line-height:166px!important}i.s168,md-icon[md-font-icon].s168{font-size:168px!important;width:168px!important;height:168px!important;min-width:168px!important;min-height:168px!important;line-height:168px!important}i.s170,md-icon[md-font-icon].s170{font-size:170px!important;width:170px!important;height:170px!important;min-width:170px!important;min-height:170px!important;line-height:170px!important}i.s172,md-icon[md-font-icon].s172{font-size:172px!important;width:172px!important;height:172px!important;min-width:172px!important;min-height:172px!important;line-height:172px!important}i.s174,md-icon[md-font-icon].s174{font-size:174px!important;width:174px!important;height:174px!important;min-width:174px!important;min-height:174px!important;line-height:174px!important}i.s176,md-icon[md-font-icon].s176{font-size:176px!important;width:176px!important;height:176px!important;min-width:176px!important;min-height:176px!important;line-height:176px!important}i.s178,md-icon[md-font-icon].s178{font-size:178px!important;width:178px!important;height:178px!important;min-width:178px!important;min-height:178px!important;line-height:178px!important}i.s180,md-icon[md-font-icon].s180{font-size:180px!important;width:180px!important;height:180px!important;min-width:180px!important;min-height:180px!important;line-height:180px!important}i.s182,md-icon[md-font-icon].s182{font-size:182px!important;width:182px!important;height:182px!important;min-width:182px!important;min-height:182px!important;line-height:182px!important}i.s184,md-icon[md-font-icon].s184{font-size:184px!important;width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;line-height:184px!important}i.s186,md-icon[md-font-icon].s186{font-size:186px!important;width:186px!important;height:186px!important;min-width:186px!important;min-height:186px!important;line-height:186px!important}i.s188,md-icon[md-font-icon].s188{font-size:188px!important;width:188px!important;height:188px!important;min-width:188px!important;min-height:188px!important;line-height:188px!important}i.s190,md-icon[md-font-icon].s190{font-size:190px!important;width:190px!important;height:190px!important;min-width:190px!important;min-height:190px!important;line-height:190px!important}i.s192,md-icon[md-font-icon].s192{font-size:192px!important;width:192px!important;height:192px!important;min-width:192px!important;min-height:192px!important;line-height:192px!important}i.s194,md-icon[md-font-icon].s194{font-size:194px!important;width:194px!important;height:194px!important;min-width:194px!important;min-height:194px!important;line-height:194px!important}i.s196,md-icon[md-font-icon].s196{font-size:196px!important;width:196px!important;height:196px!important;min-width:196px!important;min-height:196px!important;line-height:196px!important}i.s198,md-icon[md-font-icon].s198{font-size:198px!important;width:198px!important;height:198px!important;min-width:198px!important;min-height:198px!important;line-height:198px!important}i.s200,md-icon[md-font-icon].s200{font-size:200px!important;width:200px!important;height:200px!important;min-width:200px!important;min-height:200px!important;line-height:200px!important}i.s202,md-icon[md-font-icon].s202{font-size:202px!important;width:202px!important;height:202px!important;min-width:202px!important;min-height:202px!important;line-height:202px!important}i.s204,md-icon[md-font-icon].s204{font-size:204px!important;width:204px!important;height:204px!important;min-width:204px!important;min-height:204px!important;line-height:204px!important}i.s206,md-icon[md-font-icon].s206{font-size:206px!important;width:206px!important;height:206px!important;min-width:206px!important;min-height:206px!important;line-height:206px!important}i.s208,md-icon[md-font-icon].s208{font-size:208px!important;width:208px!important;height:208px!important;min-width:208px!important;min-height:208px!important;line-height:208px!important}i.s210,md-icon[md-font-icon].s210{font-size:210px!important;width:210px!important;height:210px!important;min-width:210px!important;min-height:210px!important;line-height:210px!important}i.s212,md-icon[md-font-icon].s212{font-size:212px!important;width:212px!important;height:212px!important;min-width:212px!important;min-height:212px!important;line-height:212px!important}i.s214,md-icon[md-font-icon].s214{font-size:214px!important;width:214px!important;height:214px!important;min-width:214px!important;min-height:214px!important;line-height:214px!important}i.s216,md-icon[md-font-icon].s216{font-size:216px!important;width:216px!important;height:216px!important;min-width:216px!important;min-height:216px!important;line-height:216px!important}i.s218,md-icon[md-font-icon].s218{font-size:218px!important;width:218px!important;height:218px!important;min-width:218px!important;min-height:218px!important;line-height:218px!important}i.s220,md-icon[md-font-icon].s220{font-size:220px!important;width:220px!important;height:220px!important;min-width:220px!important;min-height:220px!important;line-height:220px!important}i.s222,md-icon[md-font-icon].s222{font-size:222px!important;width:222px!important;height:222px!important;min-width:222px!important;min-height:222px!important;line-height:222px!important}i.s224,md-icon[md-font-icon].s224{font-size:224px!important;width:224px!important;height:224px!important;min-width:224px!important;min-height:224px!important;line-height:224px!important}i.s226,md-icon[md-font-icon].s226{font-size:226px!important;width:226px!important;height:226px!important;min-width:226px!important;min-height:226px!important;line-height:226px!important}i.s228,md-icon[md-font-icon].s228{font-size:228px!important;width:228px!important;height:228px!important;min-width:228px!important;min-height:228px!important;line-height:228px!important}i.s230,md-icon[md-font-icon].s230{font-size:230px!important;width:230px!important;height:230px!important;min-width:230px!important;min-height:230px!important;line-height:230px!important}i.s232,md-icon[md-font-icon].s232{font-size:232px!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;line-height:232px!important}i.s234,md-icon[md-font-icon].s234{font-size:234px!important;width:234px!important;height:234px!important;min-width:234px!important;min-height:234px!important;line-height:234px!important}i.s236,md-icon[md-font-icon].s236{font-size:236px!important;width:236px!important;height:236px!important;min-width:236px!important;min-height:236px!important;line-height:236px!important}i.s238,md-icon[md-font-icon].s238{font-size:238px!important;width:238px!important;height:238px!important;min-width:238px!important;min-height:238px!important;line-height:238px!important}i.s240,md-icon[md-font-icon].s240{font-size:240px!important;width:240px!important;height:240px!important;min-width:240px!important;min-height:240px!important;line-height:240px!important}i.s242,md-icon[md-font-icon].s242{font-size:242px!important;width:242px!important;height:242px!important;min-width:242px!important;min-height:242px!important;line-height:242px!important}i.s244,md-icon[md-font-icon].s244{font-size:244px!important;width:244px!important;height:244px!important;min-width:244px!important;min-height:244px!important;line-height:244px!important}i.s246,md-icon[md-font-icon].s246{font-size:246px!important;width:246px!important;height:246px!important;min-width:246px!important;min-height:246px!important;line-height:246px!important}i.s248,md-icon[md-font-icon].s248{font-size:248px!important;width:248px!important;height:248px!important;min-width:248px!important;min-height:248px!important;line-height:248px!important}i.s250,md-icon[md-font-icon].s250{font-size:250px!important;width:250px!important;height:250px!important;min-width:250px!important;min-height:250px!important;line-height:250px!important}i.s252,md-icon[md-font-icon].s252{font-size:252px!important;width:252px!important;height:252px!important;min-width:252px!important;min-height:252px!important;line-height:252px!important}i.s254,md-icon[md-font-icon].s254{font-size:254px!important;width:254px!important;height:254px!important;min-width:254px!important;min-height:254px!important;line-height:254px!important}i.s256,md-icon[md-font-icon].s256{font-size:256px!important;width:256px!important;height:256px!important;min-width:256px!important;min-height:256px!important;line-height:256px!important}@font-face{font-family:icomoon;src:url(../assets/icons/fonts/icomoon.eot?5km1tg);src:url(../assets/icons/fonts/icomoon.eot?#iefix5km1tg) format("embedded-opentype"),url(../assets/icons/fonts/icomoon.ttf?5km1tg) format("truetype"),url(../assets/icons/fonts/icomoon.woff?5km1tg) format("woff"),url(../assets/icons/fonts/icomoon.svg?5km1tg#icomoon) format("svg");font-weight:400;font-style:normal}[class*=' icon-'],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-account-alert:before{content:'\e600'}.icon-account-box-outline:before{content:'\e601'}.icon-account-box:before{content:'\e602'}.icon-account-check:before{content:'\e603'}.icon-account-circle:before{content:'\e604'}.icon-account-key:before{content:'\e605'}.icon-account-location:before{content:'\e606'}.icon-account-minus:before{content:'\e607'}.icon-account-multiple-outline:before{content:'\e608'}.icon-account-multiple-plus:before{content:'\e609'}.icon-account-multiple:before{content:'\e60a'}.icon-account-network:before{content:'\e60b'}.icon-account-outline:before{content:'\e60c'}.icon-account-plus:before{content:'\e60d'}.icon-account-remove:before{content:'\e60e'}.icon-account-search:before{content:'\e60f'}.icon-account-switch:before{content:'\e610'}.icon-account:before{content:'\e611'}.icon-airballoon:before{content:'\e612'}.icon-airplane-off:before{content:'\e613'}.icon-airplane:before{content:'\e614'}.icon-alarm-check:before{content:'\e615'}.icon-alarm-multiple:before{content:'\e616'}.icon-alarm-off:before{content:'\e617'}.icon-alarm-plus:before{content:'\e618'}.icon-alarm:before{content:'\e619'}.icon-album:before{content:'\e61a'}.icon-alert-box:before{content:'\e61b'}.icon-alert-circle:before{content:'\e61c'}.icon-alert-octagon:before{content:'\e61d'}.icon-alert:before{content:'\e61e'}.icon-alpha:before{content:'\e61f'}.icon-alphabetical:before{content:'\e620'}.icon-amazon-clouddrive:before{content:'\e621'}.icon-amazon:before{content:'\e622'}.icon-ambulance:before{content:'\e623'}.icon-android-debug-bridge:before{content:'\e624'}.icon-android-studio:before{content:'\e625'}.icon-android:before{content:'\e626'}.icon-apple-finder:before{content:'\e627'}.icon-apple-ios:before{content:'\e628'}.icon-apple-mobileme:before{content:'\e629'}.icon-apple-safari:before{content:'\e62a'}.icon-apple:before{content:'\e62b'}.icon-appnet:before{content:'\e62c'}.icon-apps:before{content:'\e62d'}.icon-archive:before{content:'\e62e'}.icon-arrange-bring-forward:before{content:'\e62f'}.icon-arrange-bring-to-front:before{content:'\e630'}.icon-arrange-send-backward:before{content:'\e631'}.icon-arrange-send-to-back:before{content:'\e632'}.icon-arrow-all:before{content:'\e633'}.icon-arrow-bottom-left:before{content:'\e634'}.icon-arrow-bottom-right:before{content:'\e635'}.icon-arrow-collapse:before{content:'\e636'}.icon-arrow-down-bold-circle-outline:before{content:'\e637'}.icon-arrow-down-bold-circle:before{content:'\e638'}.icon-arrow-down-bold-hexagon-outline:before{content:'\e639'}.icon-arrow-down-bold:before{content:'\e63a'}.icon-arrow-down:before{content:'\e63b'}.icon-arrow-expand:before{content:'\e63c'}.icon-arrow-left-bold-circle-outline:before{content:'\e63d'}.icon-arrow-left-bold-circle:before{content:'\e63e'}.icon-arrow-left-bold-hexagon-outline:before{content:'\e63f'}.icon-arrow-left-bold:before{content:'\e640'}.icon-arrow-left:before{content:'\e641'}.icon-arrow-right-bold-circle-outline:before{content:'\e642'}.icon-arrow-right-bold-circle:before{content:'\e643'}.icon-arrow-right-bold-hexagon-outline:before{content:'\e644'}.icon-arrow-right-bold:before{content:'\e645'}.icon-arrow-right:before{content:'\e646'}.icon-arrow-top-left:before{content:'\e647'}.icon-arrow-top-right:before{content:'\e648'}.icon-arrow-up-bold-circle-outline:before{content:'\e649'}.icon-arrow-up-bold-circle:before{content:'\e64a'}.icon-arrow-up-bold-hexagon-outline:before{content:'\e64b'}.icon-arrow-up-bold:before{content:'\e64c'}.icon-arrow-up:before{content:'\e64d'}.icon-at:before{content:'\e64e'}.icon-attachment:before{content:'\e64f'}.icon-audiobook:before{content:'\e650'}.icon-auto-fix:before{content:'\e651'}.icon-auto-upload:before{content:'\e652'}.icon-baby:before{content:'\e653'}.icon-backburger:before{content:'\e654'}.icon-backup-restore:before{content:'\e655'}.icon-bank:before{content:'\e656'}.icon-barcode:before{content:'\e657'}.icon-barley:before{content:'\e658'}.icon-barrel:before{content:'\e659'}.icon-basecamp:before{content:'\e65a'}.icon-basket-fill:before{content:'\e65b'}.icon-basket-unfill:before{content:'\e65c'}.icon-basket:before{content:'\e65d'}.icon-battery-10:before{content:'\e65e'}.icon-battery-20:before{content:'\e65f'}.icon-battery-30:before{content:'\e660'}.icon-battery-40:before{content:'\e661'}.icon-battery-50:before{content:'\e662'}.icon-battery-60:before{content:'\e663'}.icon-battery-70:before{content:'\e664'}.icon-battery-80:before{content:'\e665'}.icon-battery-90:before{content:'\e666'}.icon-battery-alert:before{content:'\e667'}.icon-battery-charging-20:before{content:'\e668'}.icon-battery-charging-30:before{content:'\e669'}.icon-battery-charging-40:before{content:'\e66a'}.icon-battery-charging-60:before{content:'\e66b'}.icon-battery-charging-80:before{content:'\e66c'}.icon-battery-charging-90:before{content:'\e66d'}.icon-battery-charging-100:before{content:'\e66e'}.icon-battery-minus:before{content:'\e66f'}.icon-battery-negative:before{content:'\e670'}.icon-battery-outline:before{content:'\e671'}.icon-battery-plus:before{content:'\e672'}.icon-battery-positive:before{content:'\e673'}.icon-battery-standard:before{content:'\e674'}.icon-battery-unknown:before{content:'\e675'}.icon-battery:before{content:'\e676'}.icon-beach:before{content:'\e677'}.icon-beaker-empty-outline:before{content:'\e678'}.icon-beaker-empty:before{content:'\e679'}.icon-beaker-outline:before{content:'\e67a'}.icon-beaker:before{content:'\e67b'}.icon-beats:before{content:'\e67c'}.icon-beer:before{content:'\e67d'}.icon-behance:before{content:'\e67e'}.icon-bell-off:before{content:'\e67f'}.icon-bell-outline:before{content:'\e680'}.icon-bell-ring-outline:before{content:'\e681'}.icon-bell-ring:before{content:'\e682'}.icon-bell-sleep:before{content:'\e683'}.icon-bell:before{content:'\e684'}.icon-beta:before{content:'\e685'}.icon-bike:before{content:'\e686'}.icon-bing:before{content:'\e687'}.icon-binoculars:before{content:'\e688'}.icon-bio:before{content:'\e689'}.icon-bitbucket:before{content:'\e68a'}.icon-black-mesa:before{content:'\e68b'}.icon-blackberry:before{content:'\e68c'}.icon-blinds:before{content:'\e68d'}.icon-block-helper:before{content:'\e68e'}.icon-blogger:before{content:'\e68f'}.icon-bluetooth-audio:before{content:'\e690'}.icon-bluetooth-connect:before{content:'\e691'}.icon-bluetooth-settings:before{content:'\e692'}.icon-bluetooth-transfer:before{content:'\e693'}.icon-bluetooth:before{content:'\e694'}.icon-blur-linear:before{content:'\e695'}.icon-blur-off:before{content:'\e696'}.icon-blur-radial:before{content:'\e697'}.icon-blur:before{content:'\e698'}.icon-bone:before{content:'\e699'}.icon-book-multiple-variant:before{content:'\e69a'}.icon-book-multiple:before{content:'\e69b'}.icon-book-open:before{content:'\e69c'}.icon-book-variant:before{content:'\e69d'}.icon-book:before{content:'\e69e'}.icon-bookmark-check:before{content:'\e69f'}.icon-bookmark-music:before{content:'\e6a0'}.icon-bookmark-outline-plus:before{content:'\e6a1'}.icon-bookmark-outline:before{content:'\e6a2'}.icon-bookmark-plus:before{content:'\e6a3'}.icon-bookmark-remove:before{content:'\e6a4'}.icon-bookmark:before{content:'\e6a5'}.icon-border-all:before{content:'\e6a6'}.icon-border-bottom:before{content:'\e6a7'}.icon-border-color:before{content:'\e6a8'}.icon-border-horizontal:before{content:'\e6a9'}.icon-border-inside:before{content:'\e6aa'}.icon-border-left:before{content:'\e6ab'}.icon-border-none:before{content:'\e6ac'}.icon-border-outside:before{content:'\e6ad'}.icon-border-right:before{content:'\e6ae'}.icon-border-top:before{content:'\e6af'}.icon-border-vertical:before{content:'\e6b0'}.icon-bowling:before{content:'\e6b1'}.icon-box-download:before{content:'\e6b2'}.icon-box-upload:before{content:'\e6b3'}.icon-box:before{content:'\e6b4'}.icon-briefcase-checked:before{content:'\e6b5'}.icon-briefcase-download:before{content:'\e6b6'}.icon-briefcase-upload:before{content:'\e6b7'}.icon-briefcase:before{content:'\e6b8'}.icon-brightness-1:before{content:'\e6b9'}.icon-brightness-2:before{content:'\e6ba'}.icon-brightness-3:before{content:'\e6bb'}.icon-brightness-4:before{content:'\e6bc'}.icon-brightness-5:before{content:'\e6bd'}.icon-brightness-6:before{content:'\e6be'}.icon-brightness-7:before{content:'\e6bf'}.icon-brightness-auto:before{content:'\e6c0'}.icon-brightness:before{content:'\e6c1'}.icon-broom:before{content:'\e6c2'}.icon-brush:before{content:'\e6c3'}.icon-bug:before{content:'\e6c4'}.icon-bulletin-board:before{content:'\e6c5'}.icon-bullhorn:before{content:'\e6c6'}.icon-bus:before{content:'\e6c7'}.icon-cake-variant:before{content:'\e6c8'}.icon-cake:before{content:'\e6c9'}.icon-calculator:before{content:'\e6ca'}.icon-calendar-blank:before{content:'\e6cb'}.icon-calendar-check-multiple:before{content:'\e6cc'}.icon-calendar-check:before{content:'\e6cd'}.icon-calendar-clock:before{content:'\e6ce'}.icon-calendar-multiple:before{content:'\e6cf'}.icon-calendar-plus:before{content:'\e6d0'}.icon-calendar-remove:before{content:'\e6d1'}.icon-calendar-select:before{content:'\e6d2'}.icon-calendar-text:before{content:'\e6d3'}.icon-calendar-today:before{content:'\e6d4'}.icon-calendar:before{content:'\e6d5'}.icon-camcorder-box-off:before{content:'\e6d6'}.icon-camcorder-box:before{content:'\e6d7'}.icon-camcorder-off:before{content:'\e6d8'}.icon-camcorder:before{content:'\e6d9'}.icon-camera-front-variant:before{content:'\e6da'}.icon-camera-front:before{content:'\e6db'}.icon-camera-iris:before{content:'\e6dc'}.icon-camera-party-mode:before{content:'\e6dd'}.icon-camera-rear-variant:before{content:'\e6de'}.icon-camera-rear:before{content:'\e6df'}.icon-camera-switch:before{content:'\e6e0'}.icon-camera-timer:before{content:'\e6e1'}.icon-camera:before{content:'\e6e2'}.icon-cancel:before{content:'\e6e3'}.icon-candycane:before{content:'\e6e4'}.icon-car-wash:before{content:'\e6e5'}.icon-car:before{content:'\e6e6'}.icon-carrot:before{content:'\e6e7'}.icon-cart-outline:before{content:'\e6e8'}.icon-cart:before{content:'\e6e9'}.icon-cash-100:before{content:'\e6ea'}.icon-cash-multiple:before{content:'\e6eb'}.icon-cash-usd:before{content:'\e6ec'}.icon-cash:before{content:'\e6ed'}.icon-cast-connected:before{content:'\e6ee'}.icon-cast:before{content:'\e6ef'}.icon-castle:before{content:'\e6f0'}.icon-cat:before{content:'\e6f1'}.icon-cellphone-android:before{content:'\e6f2'}.icon-cellphone-dock:before{content:'\e6f3'}.icon-cellphone-iphone:before{content:'\e6f4'}.icon-cellphone-link-off:before{content:'\e6f5'}.icon-cellphone-link:before{content:'\e6f6'}.icon-cellphone-settings:before{content:'\e6f7'}.icon-cellphone:before{content:'\e6f8'}.icon-chair-school:before{content:'\e6f9'}.icon-chart-arc:before{content:'\e6fa'}.icon-chart-areaspline:before{content:'\e6fb'}.icon-chart-bar:before{content:'\e6fc'}.icon-chart-histogram:before{content:'\e6fd'}.icon-chart-line:before{content:'\e6fe'}.icon-chart-pie:before{content:'\e6ff'}.icon-check-all:before{content:'\e700'}.icon-check-bookmark:before{content:'\e701'}.icon-check-circle:before{content:'\e702'}.icon-check:before{content:'\e703'}.icon-checkbox-blank-circle-outline:before{content:'\e704'}.icon-checkbox-blank-circle:before{content:'\e705'}.icon-checkbox-blank-outline:before{content:'\e706'}.icon-checkbox-blank:before{content:'\e707'}.icon-checkbox-marked-circle-outline:before{content:'\e708'}.icon-checkbox-marked-circle:before{content:'\e709'}.icon-checkbox-marked-outline:before{content:'\e70a'}.icon-checkbox-marked:before{content:'\e70b'}.icon-checkbox-multiple-blank-outline:before{content:'\e70c'}.icon-checkbox-multiple-blank:before{content:'\e70d'}.icon-checkbox-multiple-marked-outline:before{content:'\e70e'}.icon-checkbox-multiple-marked:before{content:'\e70f'}.icon-checkerboard:before{content:'\e710'}.icon-chevron-double-down:before{content:'\e711'}.icon-chevron-double-left:before{content:'\e712'}.icon-chevron-double-right:before{content:'\e713'}.icon-chevron-double-up:before{content:'\e714'}.icon-chevron-down:before{content:'\e715'}.icon-chevron-left:before{content:'\e716'}.icon-chevron-right:before{content:'\e717'}.icon-chevron-up:before{content:'\e718'}.icon-church:before{content:'\e719'}.icon-cisco-webex:before{content:'\e71a'}.icon-city:before{content:'\e71b'}.icon-clapperboard:before{content:'\e71c'}.icon-clipboard-account:before{content:'\e71d'}.icon-clipboard-alert:before{content:'\e71e'}.icon-clipboard-arrow-down:before{content:'\e71f'}.icon-clipboard-arrow-left:before{content:'\e720'}.icon-clipboard-check:before{content:'\e721'}.icon-clipboard-outline:before{content:'\e722'}.icon-clipboard-text:before{content:'\e723'}.icon-clipboard:before{content:'\e724'}.icon-clippy:before{content:'\e725'}.icon-clock-fast:before{content:'\e726'}.icon-clock:before{content:'\e727'}.icon-close-circle-outline:before{content:'\e728'}.icon-close-circle:before{content:'\e729'}.icon-close-network:before{content:'\e72a'}.icon-close:before{content:'\e72b'}.icon-closed-caption:before{content:'\e72c'}.icon-cloud-check:before{content:'\e72d'}.icon-cloud-circle:before{content:'\e72e'}.icon-cloud-download:before{content:'\e72f'}.icon-cloud-outline-off:before{content:'\e730'}.icon-cloud-outline:before{content:'\e731'}.icon-cloud-upload:before{content:'\e732'}.icon-cloud:before{content:'\e733'}.icon-code-array:before{content:'\e734'}.icon-code-braces:before{content:'\e735'}.icon-code-equal:before{content:'\e736'}.icon-code-greater-than-or-equal:before{content:'\e737'}.icon-code-greater-than:before{content:'\e738'}.icon-code-less-than-or-equal:before{content:'\e739'}.icon-code-less-than:before{content:'\e73a'}.icon-code-not-equal-variant:before{content:'\e73b'}.icon-code-not-equal:before{content:'\e73c'}.icon-code-string:before{content:'\e73d'}.icon-code-tags:before{content:'\e73e'}.icon-codepen:before{content:'\e73f'}.icon-coffee-to-go:before{content:'\e740'}.icon-coffee:before{content:'\e741'}.icon-cog-box:before{content:'\e742'}.icon-cog:before{content:'\e743'}.icon-coin:before{content:'\e744'}.icon-color-helper:before{content:'\e745'}.icon-comment-account-outline:before{content:'\e746'}.icon-comment-account:before{content:'\e747'}.icon-comment-alert-outline:before{content:'\e748'}.icon-comment-alert:before{content:'\e749'}.icon-comment-check-outline:before{content:'\e74a'}.icon-comment-check:before{content:'\e74b'}.icon-comment-multipe-outline:before{content:'\e74c'}.icon-comment-outline:before{content:'\e74d'}.icon-comment-plus-outline:before{content:'\e74e'}.icon-comment-processing-outline:before{content:'\e74f'}.icon-comment-processing:before{content:'\e750'}.icon-comment-remove-outline:before{content:'\e751'}.icon-comment-text-outline:before{content:'\e752'}.icon-comment-text:before{content:'\e753'}.icon-comment:before{content:'\e754'}.icon-compare:before{content:'\e755'}.icon-compass-outline:before{content:'\e756'}.icon-compass:before{content:'\e757'}.icon-console:before{content:'\e758'}.icon-content-copy:before{content:'\e759'}.icon-content-cut:before{content:'\e75a'}.icon-content-duplicate:before{content:'\e75b'}.icon-content-paste:before{content:'\e75c'}.icon-content-save-all:before{content:'\e75d'}.icon-content-save:before{content:'\e75e'}.icon-contrast-box:before{content:'\e75f'}.icon-contrast-circle:before{content:'\e760'}.icon-contrast:before{content:'\e761'}.icon-controller-xbox:before{content:'\e762'}.icon-cow:before{content:'\e763'}.icon-credit-card-multiple:before{content:'\e764'}.icon-credit-card:before{content:'\e765'}.icon-crop-free:before{content:'\e766'}.icon-crop-landscape:before{content:'\e767'}.icon-crop-portrait:before{content:'\e768'}.icon-crop-square:before{content:'\e769'}.icon-crop:before{content:'\e76a'}.icon-crosshairs-gps:before{content:'\e76b'}.icon-crosshairs:before{content:'\e76c'}.icon-crown:before{content:'\e76d'}.icon-cube-outline:before{content:'\e76e'}.icon-cube-unfolded:before{content:'\e76f'}.icon-cube:before{content:'\e770'}.icon-cup-water:before{content:'\e771'}.icon-cup:before{content:'\e772'}.icon-currency-btc:before{content:'\e773'}.icon-currency-eur:before{content:'\e774'}.icon-currency-gbp:before{content:'\e775'}.icon-currency-inr:before{content:'\e776'}.icon-currency-rub:before{content:'\e777'}.icon-currency-try:before{content:'\e778'}.icon-currency-usd:before{content:'\e779'}.icon-cursor-default-outline:before{content:'\e77a'}.icon-cursor-default:before{content:'\e77b'}.icon-cursor-move:before{content:'\e77c'}.icon-cursor-pointer:before{content:'\e77d'}.icon-data:before{content:'\e77e'}.icon-debug-step-into:before{content:'\e77f'}.icon-debug-step-out:before{content:'\e780'}.icon-debug-step-over:before{content:'\e781'}.icon-decimal-decrease:before{content:'\e782'}.icon-decimal-increase:before{content:'\e783'}.icon-delete-variant:before{content:'\e784'}.icon-delete:before{content:'\e785'}.icon-deskphone:before{content:'\e786'}.icon-desktop-mac:before{content:'\e787'}.icon-desktop-tower:before{content:'\e788'}.icon-details:before{content:'\e789'}.icon-deviantart:before{content:'\e78a'}.icon-diamond:before{content:'\e78b'}.icon-dice-1:before{content:'\e78c'}.icon-dice-2:before{content:'\e78d'}.icon-dice-3:before{content:'\e78e'}.icon-dice-4:before{content:'\e78f'}.icon-dice-5:before{content:'\e790'}.icon-dice-6:before{content:'\e791'}.icon-dice:before{content:'\e792'}.icon-directions:before{content:'\e793'}.icon-disk-alert:before{content:'\e794'}.icon-disqus-outline:before{content:'\e795'}.icon-disqus:before{content:'\e796'}.icon-division-box:before{content:'\e797'}.icon-division:before{content:'\e798'}.icon-dns:before{content:'\e799'}.icon-document:before{content:'\e79a'}.icon-domain:before{content:'\e79b'}.icon-dots-horizontal:before{content:'\e79c'}.icon-dots-vertical:before{content:'\e79d'}.icon-download:before{content:'\e79e'}.icon-drag-horizontal:before{content:'\e79f'}.icon-drag-vertical:before{content:'\e7a0'}.icon-drag:before{content:'\e7a1'}.icon-drawing-box:before{content:'\e7a2'}.icon-drawing:before{content:'\e7a3'}.icon-dribbble-box:before{content:'\e7a4'}.icon-dribbble:before{content:'\e7a5'}.icon-drone:before{content:'\e7a6'}.icon-dropbox:before{content:'\e7a7'}.icon-drupal:before{content:'\e7a8'}.icon-duck:before{content:'\e7a9'}.icon-dumbbell:before{content:'\e7aa'}.icon-earth-off:before{content:'\e7ab'}.icon-earth:before{content:'\e7ac'}.icon-ebay:before{content:'\e7ad'}.icon-edge:before{content:'\e7ae'}.icon-eject:before{content:'\e7af'}.icon-elevation-decline:before{content:'\e7b0'}.icon-elevation-rise:before{content:'\e7b1'}.icon-elevator:before{content:'\e7b2'}.icon-email-open:before{content:'\e7b3'}.icon-email-secure:before{content:'\e7b4'}.icon-email:before{content:'\e7b5'}.icon-emoticon-cool:before{content:'\e7b6'}.icon-emoticon-devil:before{content:'\e7b7'}.icon-emoticon-happy:before{content:'\e7b8'}.icon-emoticon-neutral:before{content:'\e7b9'}.icon-emoticon-poop:before{content:'\e7ba'}.icon-emoticon-sad:before{content:'\e7bb'}.icon-emoticon-tongue:before{content:'\e7bc'}.icon-emoticon:before{content:'\e7bd'}.icon-engine-outline:before{content:'\e7be'}.icon-engine:before{content:'\e7bf'}.icon-equal-box:before{content:'\e7c0'}.icon-equal:before{content:'\e7c1'}.icon-eraser:before{content:'\e7c2'}.icon-escalator:before{content:'\e7c3'}.icon-etsy:before{content:'\e7c4'}.icon-evernote:before{content:'\e7c5'}.icon-exclamation:before{content:'\e7c6'}.icon-exit-to-app:before{content:'\e7c7'}.icon-export:before{content:'\e7c8'}.icon-eye-off:before{content:'\e7c9'}.icon-eye:before{content:'\e7ca'}.icon-eyedropper-variant:before{content:'\e7cb'}.icon-eyedropper:before{content:'\e7cc'}.icon-facebook-box:before{content:'\e7cd'}.icon-facebook:before{content:'\e7ce'}.icon-factory:before{content:'\e7cf'}.icon-fan:before{content:'\e7d0'}.icon-fast-forward:before{content:'\e7d1'}.icon-ferry:before{content:'\e7d2'}.icon-file-cloud:before{content:'\e7d3'}.icon-file-delimited:before{content:'\e7d4'}.icon-file-document-box:before{content:'\e7d5'}.icon-file-document:before{content:'\e7d6'}.icon-file-excel-box:before{content:'\e7d7'}.icon-file-excel:before{content:'\e7d8'}.icon-file-find:before{content:'\e7d9'}.icon-file-hidden:before{content:'\e7da'}.icon-file-image-box:before{content:'\e7db'}.icon-file-image:before{content:'\e7dc'}.icon-file-multiple:before{content:'\e7dd'}.icon-file-music:before{content:'\e7de'}.icon-file-outline:before{content:'\e7df'}.icon-file-pdf-box:before{content:'\e7e0'}.icon-file-pdf:before{content:'\e7e1'}.icon-file-powerpoint-box:before{content:'\e7e2'}.icon-file-powerpoint:before{content:'\e7e3'}.icon-file-presentation-box:before{content:'\e7e4'}.icon-file-video:before{content:'\e7e5'}.icon-file-word-box:before{content:'\e7e6'}.icon-file-word:before{content:'\e7e7'}.icon-file-xml:before{content:'\e7e8'}.icon-file:before{content:'\e7e9'}.icon-fill:before{content:'\e7ea'}.icon-film:before{content:'\e7eb'}.icon-filmstrip-off:before{content:'\e7ec'}.icon-filmstrip:before{content:'\e7ed'}.icon-filter-outline:before{content:'\e7ee'}.icon-filter-remove-outline:before{content:'\e7ef'}.icon-filter-remove:before{content:'\e7f0'}.icon-filter-variant:before{content:'\e7f1'}.icon-filter:before{content:'\e7f2'}.icon-fire:before{content:'\e7f3'}.icon-fish:before{content:'\e7f4'}.icon-flag-checkered-variant:before{content:'\e7f5'}.icon-flag-checkered:before{content:'\e7f6'}.icon-flag-outline-variant:before{content:'\e7f7'}.icon-flag-outline:before{content:'\e7f8'}.icon-flag-triangle:before{content:'\e7f9'}.icon-flag-variant:before{content:'\e7fa'}.icon-flag:before{content:'\e7fb'}.icon-flash-auto:before{content:'\e7fc'}.icon-flash-off:before{content:'\e7fd'}.icon-flash:before{content:'\e7fe'}.icon-flashlight-off:before{content:'\e7ff'}.icon-flashlight:before{content:'\e800'}.icon-flattr:before{content:'\e801'}.icon-flickr-after:before{content:'\e802'}.icon-flickr-before:before{content:'\e803'}.icon-flip-to-back:before{content:'\e804'}.icon-flip-to-front:before{content:'\e805'}.icon-floppy:before{content:'\e806'}.icon-flower:before{content:'\e807'}.icon-folder-account:before{content:'\e808'}.icon-folder-download:before{content:'\e809'}.icon-folder-google-drive:before{content:'\e80a'}.icon-folder-image:before{content:'\e80b'}.icon-folder-lock-open:before{content:'\e80c'}.icon-folder-lock:before{content:'\e80d'}.icon-folder-move:before{content:'\e80e'}.icon-folder-multiple-image:before{content:'\e80f'}.icon-folder-multiple-outline:before{content:'\e810'}.icon-folder-multiple:before{content:'\e811'}.icon-folder-outline-lock:before{content:'\e812'}.icon-folder-outline:before{content:'\e813'}.icon-folder-plus:before{content:'\e814'}.icon-folder-remove:before{content:'\e815'}.icon-folder-upload:before{content:'\e816'}.icon-folder:before{content:'\e817'}.icon-food-apple:before{content:'\e818'}.icon-food-variant:before{content:'\e819'}.icon-food:before{content:'\e81a'}.icon-football-helmet:before{content:'\e81b'}.icon-football:before{content:'\e81c'}.icon-format-align-center:before{content:'\e81d'}.icon-format-align-justify:before{content:'\e81e'}.icon-format-align-left:before{content:'\e81f'}.icon-format-align-right:before{content:'\e820'}.icon-format-bold:before{content:'\e821'}.icon-format-clear:before{content:'\e822'}.icon-format-color-fill:before{content:'\e823'}.icon-format-color:before{content:'\e824'}.icon-format-float-center:before{content:'\e825'}.icon-format-float-left:before{content:'\e826'}.icon-format-float-none:before{content:'\e827'}.icon-format-float-right:before{content:'\e828'}.icon-format-header-1:before{content:'\e829'}.icon-format-header-2:before{content:'\e82a'}.icon-format-header-3:before{content:'\e82b'}.icon-format-header-4:before{content:'\e82c'}.icon-format-header-5:before{content:'\e82d'}.icon-format-header-6:before{content:'\e82e'}.icon-format-header-decrease:before{content:'\e82f'}.icon-format-header-down:before{content:'\e830'}.icon-format-header-equal:before{content:'\e831'}.icon-format-header-increase:before{content:'\e832'}.icon-format-header-pound:before{content:'\e833'}.icon-format-header-up:before{content:'\e834'}.icon-format-indent-decrease:before{content:'\e835'}.icon-format-indent-increase:before{content:'\e836'}.icon-format-italic:before{content:'\e837'}.icon-format-line-spacing:before{content:'\e838'}.icon-format-list-bulleted:before{content:'\e839'}.icon-format-list-numbers:before{content:'\e83a'}.icon-format-object-inline:before{content:'\e83b'}.icon-format-object-square:before{content:'\e83c'}.icon-format-object-tight:before{content:'\e83d'}.icon-format-object-top-bottom:before{content:'\e83e'}.icon-format-paint:before{content:'\e83f'}.icon-format-paragraph:before{content:'\e840'}.icon-format-quote:before{content:'\e841'}.icon-format-size:before{content:'\e842'}.icon-format-strikethrough:before{content:'\e843'}.icon-format-subscript:before{content:'\e844'}.icon-format-superscript:before{content:'\e845'}.icon-format-text:before{content:'\e846'}.icon-format-textdirection-l-to-r:before{content:'\e847'}.icon-format-textdirection-r-to-l:before{content:'\e848'}.icon-format-underline:before{content:'\e849'}.icon-forum:before{content:'\e84a'}.icon-forward:before{content:'\e84b'}.icon-foursquare:before{content:'\e84c'}.icon-fridge:before{content:'\e84d'}.icon-fullscreen-exit:before{content:'\e84e'}.icon-fullscreen:before{content:'\e84f'}.icon-function:before{content:'\e850'}.icon-gamepad-variant:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-gas-station:before{content:'\e853'}.icon-gavel:before{content:'\e854'}.icon-gender-female:before{content:'\e855'}.icon-gender-male-female:before{content:'\e856'}.icon-gender-male:before{content:'\e857'}.icon-gender-transgender:before{content:'\e858'}.icon-gift:before{content:'\e859'}.icon-git:before{content:'\e85a'}.icon-github-box:before{content:'\e85b'}.icon-github:before{content:'\e85c'}.icon-glass-flute:before{content:'\e85d'}.icon-glass-mug:before{content:'\e85e'}.icon-glass-stange:before{content:'\e85f'}.icon-glass-tulip:before{content:'\e860'}.icon-glasses:before{content:'\e861'}.icon-gmail:before{content:'\e862'}.icon-google-chrome:before{content:'\e863'}.icon-google-circles-communities:before{content:'\e864'}.icon-google-circles-extended:before{content:'\e865'}.icon-google-circles-invite:before{content:'\e866'}.icon-google-circles:before{content:'\e867'}.icon-google-controller-off:before{content:'\e868'}.icon-google-controller:before{content:'\e869'}.icon-google-drive:before{content:'\e86a'}.icon-google-earth:before{content:'\e86b'}.icon-google-glass:before{content:'\e86c'}.icon-google-maps:before{content:'\e86d'}.icon-google-pages:before{content:'\e86e'}.icon-google-play:before{content:'\e86f'}.icon-google-plus-box:before{content:'\e870'}.icon-google-plus:before{content:'\e871'}.icon-google:before{content:'\e872'}.icon-grid-off:before{content:'\e873'}.icon-grid:before{content:'\e874'}.icon-group:before{content:'\e875'}.icon-hand-pointing-right:before{content:'\e876'}.icon-hanger:before{content:'\e877'}.icon-hangouts:before{content:'\e878'}.icon-harddisk:before{content:'\e879'}.icon-headphones-box:before{content:'\e87a'}.icon-headphones-dots:before{content:'\e87b'}.icon-headphones:before{content:'\e87c'}.icon-headset-dock:before{content:'\e87d'}.icon-headset-off:before{content:'\e87e'}.icon-headset:before{content:'\e87f'}.icon-heart-box-outline:before{content:'\e880'}.icon-heart-box:before{content:'\e881'}.icon-heart-broken:before{content:'\e882'}.icon-heart-outline:before{content:'\e883'}.icon-heart:before{content:'\e884'}.icon-help-circle:before{content:'\e885'}.icon-help:before{content:'\e886'}.icon-hexagon-outline:before{content:'\e887'}.icon-hexagon:before{content:'\e888'}.icon-history:before{content:'\e889'}.icon-hololens:before{content:'\e88a'}.icon-home-modern:before{content:'\e88b'}.icon-home-variant:before{content:'\e88c'}.icon-home:before{content:'\e88d'}.icon-hops:before{content:'\e88e'}.icon-hospital-building:before{content:'\e88f'}.icon-hospital-marker:before{content:'\e890'}.icon-hospital:before{content:'\e891'}.icon-hotel:before{content:'\e892'}.icon-houzz-box:before{content:'\e893'}.icon-human-child:before{content:'\e894'}.icon-human-male-female:before{content:'\e895'}.icon-human:before{content:'\e896'}.icon-image-album:before{content:'\e897'}.icon-image-area-close:before{content:'\e898'}.icon-image-area:before{content:'\e899'}.icon-image-broken:before{content:'\e89a'}.icon-image-filter-black-white:before{content:'\e89b'}.icon-image-filter-center-focus:before{content:'\e89c'}.icon-image-filter-drama:before{content:'\e89d'}.icon-image-filter-frames:before{content:'\e89e'}.icon-image-filter-hdr:before{content:'\e89f'}.icon-image-filter-none:before{content:'\e8a0'}.icon-image-filter-tilt-shift:before{content:'\e8a1'}.icon-image-filter-vintage:before{content:'\e8a2'}.icon-image-filter:before{content:'\e8a3'}.icon-image:before{content:'\e8a4'}.icon-import:before{content:'\e8a5'}.icon-inbox:before{content:'\e8a6'}.icon-indent:before{content:'\e8a7'}.icon-information-outline:before{content:'\e8a8'}.icon-information:before{content:'\e8a9'}.icon-instagram:before{content:'\e8aa'}.icon-instapaper:before{content:'\e8ab'}.icon-internet-explorer:before{content:'\e8ac'}.icon-invert-colors:before{content:'\e8ad'}.icon-jira:before{content:'\e8ae'}.icon-jsfiddle:before{content:'\e8af'}.icon-keg:before{content:'\e8b0'}.icon-key-change:before{content:'\e8b1'}.icon-key-minus:before{content:'\e8b2'}.icon-key-plus:before{content:'\e8b3'}.icon-key-remove:before{content:'\e8b4'}.icon-key-variant:before{content:'\e8b5'}.icon-key:before{content:'\e8b6'}.icon-keyboard-backspace:before{content:'\e8b7'}.icon-keyboard-caps:before{content:'\e8b8'}.icon-keyboard-close:before{content:'\e8b9'}.icon-keyboard-off:before{content:'\e8ba'}.icon-keyboard-return:before{content:'\e8bb'}.icon-keyboard-tab:before{content:'\e8bc'}.icon-keyboard-variant:before{content:'\e8bd'}.icon-keyboard:before{content:'\e8be'}.icon-label-outline:before{content:'\e8bf'}.icon-label:before{content:'\e8c0'}.icon-language-csharp:before{content:'\e8c1'}.icon-language-css3:before{content:'\e8c2'}.icon-language-html5:before{content:'\e8c3'}.icon-language-javascript:before{content:'\e8c4'}.icon-language-python-text:before{content:'\e8c5'}.icon-language-python:before{content:'\e8c6'}.icon-laptop-chromebook:before{content:'\e8c7'}.icon-laptop-mac:before{content:'\e8c8'}.icon-laptop-windows:before{content:'\e8c9'}.icon-laptop:before{content:'\e8ca'}.icon-lastfm:before{content:'\e8cb'}.icon-launch:before{content:'\e8cc'}.icon-layers-off:before{content:'\e8cd'}.icon-layers:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-library-books:before{content:'\e8d0'}.icon-library-music:before{content:'\e8d1'}.icon-library-plus:before{content:'\e8d2'}.icon-library:before{content:'\e8d3'}.icon-lightbulb-outline:before{content:'\e8d4'}.icon-lightbulb:before{content:'\e8d5'}.icon-link-off:before{content:'\e8d6'}.icon-link-variant-off:before{content:'\e8d7'}.icon-link-variant:before{content:'\e8d8'}.icon-link:before{content:'\e8d9'}.icon-linkedin-box:before{content:'\e8da'}.icon-linkedin:before{content:'\e8db'}.icon-linode:before{content:'\e8dc'}.icon-linux:before{content:'\e8dd'}.icon-lock-outline:before{content:'\e8de'}.icon-lock-unlocked-outline:before{content:'\e8df'}.icon-lock-unlocked:before{content:'\e8e0'}.icon-lock:before{content:'\e8e1'}.icon-login:before{content:'\e8e2'}.icon-logout:before{content:'\e8e3'}.icon-looks:before{content:'\e8e4'}.icon-loupe:before{content:'\e8e5'}.icon-lumx:before{content:'\e8e6'}.icon-magnet-on:before{content:'\e8e7'}.icon-magnet:before{content:'\e8e8'}.icon-magnify-minus:before{content:'\e8e9'}.icon-magnify-plus:before{content:'\e8ea'}.icon-magnify:before{content:'\e8eb'}.icon-mail-ru:before{content:'\e8ec'}.icon-map-marker-circle:before{content:'\e8ed'}.icon-map-marker-multiple:before{content:'\e8ee'}.icon-map-marker-off:before{content:'\e8ef'}.icon-map-marker-radius:before{content:'\e8f0'}.icon-map-marker:before{content:'\e8f1'}.icon-map:before{content:'\e8f2'}.icon-margin:before{content:'\e8f3'}.icon-markdown:before{content:'\e8f4'}.icon-marker-check:before{content:'\e8f5'}.icon-martini:before{content:'\e8f6'}.icon-material-ui:before{content:'\e8f7'}.icon-maxcdn:before{content:'\e8f8'}.icon-medium:before{content:'\e8f9'}.icon-memory:before{content:'\e8fa'}.icon-menu-down:before{content:'\e8fb'}.icon-menu-left:before{content:'\e8fc'}.icon-menu-right:before{content:'\e8fd'}.icon-menu-up:before{content:'\e8fe'}.icon-menu:before{content:'\e8ff'}.icon-message-alert:before{content:'\e900'}.icon-message-draw:before{content:'\e901'}.icon-message-image:before{content:'\e902'}.icon-message-processing:before{content:'\e903'}.icon-message-reply:before{content:'\e904'}.icon-message-text-outline:before{content:'\e905'}.icon-message-text:before{content:'\e906'}.icon-message-video:before{content:'\e907'}.icon-message:before{content:'\e908'}.icon-microphone-dots:before{content:'\e909'}.icon-microphone-off:before{content:'\e90a'}.icon-microphone-outline:before{content:'\e90b'}.icon-microphone-settings:before{content:'\e90c'}.icon-microphone-variant-off:before{content:'\e90d'}.icon-microphone-variant:before{content:'\e90e'}.icon-microphone:before{content:'\e90f'}.icon-minus-box:before{content:'\e910'}.icon-minus-circle-outline:before{content:'\e911'}.icon-minus-circle:before{content:'\e912'}.icon-minus-network:before{content:'\e913'}.icon-minus:before{content:'\e914'}.icon-monitor-multiple:before{content:'\e915'}.icon-monitor:before{content:'\e916'}.icon-more:before{content:'\e917'}.icon-mouse-off:before{content:'\e918'}.icon-mouse-variant-off:before{content:'\e919'}.icon-mouse-variant:before{content:'\e91a'}.icon-mouse:before{content:'\e91b'}.icon-movie:before{content:'\e91c'}.icon-multiplication-box:before{content:'\e91d'}.icon-multiplication:before{content:'\e91e'}.icon-music-box-outline:before{content:'\e91f'}.icon-music-box:before{content:'\e920'}.icon-music-circle:before{content:'\e921'}.icon-music-note-eighth:before{content:'\e922'}.icon-music-note-half:before{content:'\e923'}.icon-music-note-off:before{content:'\e924'}.icon-music-note-quarter:before{content:'\e925'}.icon-music-note-sixteenth:before{content:'\e926'}.icon-music-note-whole:before{content:'\e927'}.icon-music-note:before{content:'\e928'}.icon-nature-people:before{content:'\e929'}.icon-nature:before{content:'\e92a'}.icon-navigation:before{content:'\e92b'}.icon-needle:before{content:'\e92c'}.icon-nest-protect:before{content:'\e92d'}.icon-nest-thermostat:before{content:'\e92e'}.icon-newspaper:before{content:'\e92f'}.icon-nfc-tap:before{content:'\e930'}.icon-nfc-variant:before{content:'\e931'}.icon-nfc:before{content:'\e932'}.icon-no:before{content:'\e933'}.icon-not-equal:before{content:'\e934'}.icon-note-outline:before{content:'\e935'}.icon-note-text:before{content:'\e936'}.icon-note:before{content:'\e937'}.icon-numeric-0-box-multiple-outline:before{content:'\e938'}.icon-numeric-0-box-outline:before{content:'\e939'}.icon-numeric-0-box:before{content:'\e93a'}.icon-numeric-1-box-multiple-outline:before{content:'\e93b'}.icon-numeric-1-box-outline:before{content:'\e93c'}.icon-numeric-1-box:before{content:'\e93d'}.icon-numeric-2-box-multiple-outline:before{content:'\e93e'}.icon-numeric-2-box-outline:before{content:'\e93f'}.icon-numeric-2-box:before{content:'\e940'}.icon-numeric-3-box-multiple-outline:before{content:'\e941'}.icon-numeric-3-box-outline:before{content:'\e942'}.icon-numeric-3-box:before{content:'\e943'}.icon-numeric-4-box-multiple-outline:before{content:'\e944'}.icon-numeric-4-box-outline:before{content:'\e945'}.icon-numeric-4-box:before{content:'\e946'}.icon-numeric-5-box-multiple-outline:before{content:'\e947'}.icon-numeric-5-box-outline:before{content:'\e948'}.icon-numeric-5-box:before{content:'\e949'}.icon-numeric-6-box-multiple-outline:before{content:'\e94a'}.icon-numeric-6-box-outline:before{content:'\e94b'}.icon-numeric-6-box:before{content:'\e94c'}.icon-numeric-7-box-multiple-outline:before{content:'\e94d'}.icon-numeric-7-box-outline:before{content:'\e94e'}.icon-numeric-7-box:before{content:'\e94f'}.icon-numeric-8-box-multiple-outline:before{content:'\e950'}.icon-numeric-8-box-outline:before{content:'\e951'}.icon-numeric-8-box:before{content:'\e952'}.icon-numeric-9-box-multiple-outline:before{content:'\e953'}.icon-numeric-9-box-outline:before{content:'\e954'}.icon-numeric-9-box:before{content:'\e955'}.icon-numeric-9-plus-box-multiple-outline:before{content:'\e956'}.icon-numeric-9-plus-box-outline:before{content:'\e957'}.icon-numeric-9-plus-box:before{content:'\e958'}.icon-numeric:before{content:'\e959'}.icon-nutriton:before{content:'\e95a'}.icon-odnoklassniki:before{content:'\e95b'}.icon-office:before{content:'\e95c'}.icon-oil:before{content:'\e95d'}.icon-omega:before{content:'\e95e'}.icon-onedrive:before{content:'\e95f'}.icon-open-in-app:before{content:'\e960'}.icon-open-in-new:before{content:'\e961'}.icon-ornament-variant:before{content:'\e962'}.icon-ornament:before{content:'\e963'}.icon-outbox:before{content:'\e964'}.icon-outdent:before{content:'\e965'}.icon-owl:before{content:'\e966'}.icon-package-down:before{content:'\e967'}.icon-package-up:before{content:'\e968'}.icon-package-variant-closed:before{content:'\e969'}.icon-package-variant:before{content:'\e96a'}.icon-package:before{content:'\e96b'}.icon-palette-advanced:before{content:'\e96c'}.icon-palette:before{content:'\e96d'}.icon-panda:before{content:'\e96e'}.icon-pandora:before{content:'\e96f'}.icon-panorama-fisheye:before{content:'\e970'}.icon-panorama-horizontal:before{content:'\e971'}.icon-panorama-vertical:before{content:'\e972'}.icon-panorama-wide-angle:before{content:'\e973'}.icon-panorama:before{content:'\e974'}.icon-paper-cut-vertical:before{content:'\e975'}.icon-paperclip:before{content:'\e976'}.icon-parking:before{content:'\e977'}.icon-pause-circle-outline:before{content:'\e978'}.icon-pause-circle:before{content:'\e979'}.icon-pause-octagon-outline:before{content:'\e97a'}.icon-pause-octagon:before{content:'\e97b'}.icon-pause:before{content:'\e97c'}.icon-paw:before{content:'\e97d'}.icon-pen:before{content:'\e97e'}.icon-pencil-box-outline:before{content:'\e97f'}.icon-pencil-box:before{content:'\e980'}.icon-pencil:before{content:'\e981'}.icon-people:before{content:'\e982'}.icon-percent:before{content:'\e983'}.icon-person-box:before{content:'\e984'}.icon-person-minus:before{content:'\e985'}.icon-person-plus:before{content:'\e986'}.icon-pharmacy:before{content:'\e987'}.icon-phone-bluetooth:before{content:'\e988'}.icon-phone-dots:before{content:'\e989'}.icon-phone-forward:before{content:'\e98a'}.icon-phone-hangup:before{content:'\e98b'}.icon-phone-in-talk:before{content:'\e98c'}.icon-phone-incoming:before{content:'\e98d'}.icon-phone-locked:before{content:'\e98e'}.icon-phone-log:before{content:'\e98f'}.icon-phone-missed:before{content:'\e990'}.icon-phone-outgoing:before{content:'\e991'}.icon-phone-paused:before{content:'\e992'}.icon-phone:before{content:'\e993'}.icon-picture:before{content:'\e994'}.icon-pig:before{content:'\e995'}.icon-pill:before{content:'\e996'}.icon-pin-off:before{content:'\e997'}.icon-pin:before{content:'\e998'}.icon-pine-tree-box:before{content:'\e999'}.icon-pine-tree:before{content:'\e99a'}.icon-pinterest-box:before{content:'\e99b'}.icon-pinterest:before{content:'\e99c'}.icon-pizza:before{content:'\e99d'}.icon-plane:before{content:'\e99e'}.icon-play-box-outline:before{content:'\e99f'}.icon-play-circle-outline:before{content:'\e9a0'}.icon-play-circle:before{content:'\e9a1'}.icon-play:before{content:'\e9a2'}.icon-playlist-minus:before{content:'\e9a3'}.icon-playlist-plus:before{content:'\e9a4'}.icon-playstation:before{content:'\e9a5'}.icon-plus-box:before{content:'\e9a6'}.icon-plus-circle-outline:before{content:'\e9a7'}.icon-plus-circle:before{content:'\e9a8'}.icon-plus-network:before{content:'\e9a9'}.icon-plus-one:before{content:'\e9aa'}.icon-plus:before{content:'\e9ab'}.icon-pocket:before{content:'\e9ac'}.icon-poll-box:before{content:'\e9ad'}.icon-poll:before{content:'\e9ae'}.icon-polymer:before{content:'\e9af'}.icon-popcorn:before{content:'\e9b0'}.icon-pound-box:before{content:'\e9b1'}.icon-pound:before{content:'\e9b2'}.icon-power-settings:before{content:'\e9b3'}.icon-power-socket:before{content:'\e9b4'}.icon-power:before{content:'\e9b5'}.icon-presentation-play:before{content:'\e9b6'}.icon-presentation:before{content:'\e9b7'}.icon-printer-3d:before{content:'\e9b8'}.icon-printer:before{content:'\e9b9'}.icon-pulse:before{content:'\e9ba'}.icon-puzzle:before{content:'\e9bb'}.icon-qrcode:before{content:'\e9bc'}.icon-quadcopter:before{content:'\e9bd'}.icon-quality-high:before{content:'\e9be'}.icon-question-mark-circle:before{content:'\e9bf'}.icon-quick-reply:before{content:'\e9c0'}.icon-quicktime:before{content:'\e9c1'}.icon-rabbit:before{content:'\e9c2'}.icon-radiator:before{content:'\e9c3'}.icon-radio-tower:before{content:'\e9c4'}.icon-radio:before{content:'\e9c5'}.icon-radioactive:before{content:'\e9c6'}.icon-radiobox-blank:before{content:'\e9c7'}.icon-radiobox-marked:before{content:'\e9c8'}.icon-raspberrypi:before{content:'\e9c9'}.icon-rdio:before{content:'\e9ca'}.icon-read:before{content:'\e9cb'}.icon-readability:before{content:'\e9cc'}.icon-receipt:before{content:'\e9cd'}.icon-recycle:before{content:'\e9ce'}.icon-reddit:before{content:'\e9cf'}.icon-redo-variant:before{content:'\e9d0'}.icon-redo:before{content:'\e9d1'}.icon-refresh:before{content:'\e9d2'}.icon-relative-scale:before{content:'\e9d3'}.icon-reload:before{content:'\e9d4'}.icon-remote:before{content:'\e9d5'}.icon-rename-box:before{content:'\e9d6'}.icon-repeat-off:before{content:'\e9d7'}.icon-repeat-once:before{content:'\e9d8'}.icon-repeat:before{content:'\e9d9'}.icon-replay:before{content:'\e9da'}.icon-reply-all:before{content:'\e9db'}.icon-reply:before{content:'\e9dc'}.icon-reproduction:before{content:'\e9dd'}.icon-resize-bottom-right:before{content:'\e9de'}.icon-responsive:before{content:'\e9df'}.icon-restore:before{content:'\e9e0'}.icon-rewind:before{content:'\e9e1'}.icon-ribbon:before{content:'\e9e2'}.icon-road:before{content:'\e9e3'}.icon-rocket:before{content:'\e9e4'}.icon-rotate-3d:before{content:'\e9e5'}.icon-rotate-left-variant:before{content:'\e9e6'}.icon-rotate-left:before{content:'\e9e7'}.icon-rotate-right-variant:before{content:'\e9e8'}.icon-rotate-right:before{content:'\e9e9'}.icon-routes:before{content:'\e9ea'}.icon-rss-box:before{content:'\e9eb'}.icon-ruler:before{content:'\e9ec'}.icon-run:before{content:'\e9ed'}.icon-sale:before{content:'\e9ee'}.icon-satellite-variant:before{content:'\e9ef'}.icon-satellite:before{content:'\e9f0'}.icon-scale-bathroom:before{content:'\e9f1'}.icon-scale:before{content:'\e9f2'}.icon-school:before{content:'\e9f3'}.icon-screen-rotation-lock:before{content:'\e9f4'}.icon-screen-rotation:before{content:'\e9f5'}.icon-script:before{content:'\e9f6'}.icon-security-network:before{content:'\e9f7'}.icon-security:before{content:'\e9f8'}.icon-select-all:before{content:'\e9f9'}.icon-select-inverse:before{content:'\e9fa'}.icon-select-off:before{content:'\e9fb'}.icon-select:before{content:'\e9fc'}.icon-send:before{content:'\e9fd'}.icon-server-minus:before{content:'\e9fe'}.icon-server-network-off:before{content:'\e9ff'}.icon-server-network:before{content:'\ea00'}.icon-server-off:before{content:'\ea01'}.icon-server-plus:before{content:'\ea02'}.icon-server-remove:before{content:'\ea03'}.icon-server-security:before{content:'\ea04'}.icon-server:before{content:'\ea05'}.icon-shape-plus:before{content:'\ea06'}.icon-share-variant:before{content:'\ea07'}.icon-share:before{content:'\ea08'}.icon-shield-outline:before{content:'\ea09'}.icon-shield:before{content:'\ea0a'}.icon-shopping-music:before{content:'\ea0b'}.icon-shopping:before{content:'\ea0c'}.icon-shuffle:before{content:'\ea0d'}.icon-sigma:before{content:'\ea0e'}.icon-sign-caution:before{content:'\ea0f'}.icon-signal:before{content:'\ea10'}.icon-silverware-fork:before{content:'\ea11'}.icon-silverware-spoon:before{content:'\ea12'}.icon-silverware-variant:before{content:'\ea13'}.icon-silverware:before{content:'\ea14'}.icon-sim-alert:before{content:'\ea15'}.icon-sim:before{content:'\ea16'}.icon-sitemap:before{content:'\ea17'}.icon-skip-next:before{content:'\ea18'}.icon-skip-previous:before{content:'\ea19'}.icon-skype-business:before{content:'\ea1a'}.icon-skype:before{content:'\ea1b'}.icon-sleep-off:before{content:'\ea1c'}.icon-sleep:before{content:'\ea1d'}.icon-smoking-off:before{content:'\ea1e'}.icon-smoking:before{content:'\ea1f'}.icon-snapchat:before{content:'\ea20'}.icon-snowman:before{content:'\ea21'}.icon-sofa:before{content:'\ea22'}.icon-sort-alphabetical:before{content:'\ea23'}.icon-sort-ascending:before{content:'\ea24'}.icon-sort-descending:before{content:'\ea25'}.icon-sort-numeric:before{content:'\ea26'}.icon-sort-variant:before{content:'\ea27'}.icon-sort:before{content:'\ea28'}.icon-soundcloud:before{content:'\ea29'}.icon-source-fork:before{content:'\ea2a'}.icon-source-pull:before{content:'\ea2b'}.icon-speaker-off:before{content:'\ea2c'}.icon-speaker:before{content:'\ea2d'}.icon-speedometer:before{content:'\ea2e'}.icon-spellcheck:before{content:'\ea2f'}.icon-spotify:before{content:'\ea30'}.icon-spotlight-beam:before{content:'\ea31'}.icon-spotlight:before{content:'\ea32'}.icon-spreadsheet:before{content:'\ea33'}.icon-square-inc-cash:before{content:'\ea34'}.icon-square-inc:before{content:'\ea35'}.icon-stackoverflow:before{content:'\ea36'}.icon-star-circle:before{content:'\ea37'}.icon-star-half:before{content:'\ea38'}.icon-star-of-david:before{content:'\ea39'}.icon-star-outline:before{content:'\ea3a'}.icon-star:before{content:'\ea3b'}.icon-steam:before{content:'\ea3c'}.icon-stethoscope:before{content:'\ea3d'}.icon-stocking:before{content:'\ea3e'}.icon-stop:before{content:'\ea3f'}.icon-store-24-hour:before{content:'\ea40'}.icon-store:before{content:'\ea41'}.icon-stove:before{content:'\ea42'}.icon-subway:before{content:'\ea43'}.icon-sunglasses:before{content:'\ea44'}.icon-swap-horizontal:before{content:'\ea45'}.icon-swap-vertical:before{content:'\ea46'}.icon-swim:before{content:'\ea47'}.icon-sword:before{content:'\ea48'}.icon-sync-alert:before{content:'\ea49'}.icon-sync-off:before{content:'\ea4a'}.icon-sync:before{content:'\ea4b'}.icon-tab-unselected:before{content:'\ea4c'}.icon-tab:before{content:'\ea4d'}.icon-table-column-plus-after:before{content:'\ea4e'}.icon-table-column-plus-before:before{content:'\ea4f'}.icon-table-column-remove:before{content:'\ea50'}.icon-table-column-width:before{content:'\ea51'}.icon-table-edit:before{content:'\ea52'}.icon-table-large:before{content:'\ea53'}.icon-table-row-height:before{content:'\ea54'}.icon-table-row-plus-after:before{content:'\ea55'}.icon-table-row-plus-before:before{content:'\ea56'}.icon-table-row-remove:before{content:'\ea57'}.icon-table:before{content:'\ea58'}.icon-tablet-android:before{content:'\ea59'}.icon-tablet-ipad:before{content:'\ea5a'}.icon-tablet:before{content:'\ea5b'}.icon-tag-faces:before{content:'\ea5c'}.icon-tag-multiple:before{content:'\ea5d'}.icon-tag-outline:before{content:'\ea5e'}.icon-tag-text-outline:before{content:'\ea5f'}.icon-tag:before{content:'\ea60'}.icon-taxi:before{content:'\ea61'}.icon-teamviewer:before{content:'\ea62'}.icon-telegram:before{content:'\ea63'}.icon-television-guide:before{content:'\ea64'}.icon-television:before{content:'\ea65'}.icon-temperature-celsius:before{content:'\ea66'}.icon-temperature-fahrenheit:before{content:'\ea67'}.icon-temperature-kelvin:before{content:'\ea68'}.icon-tennis:before{content:'\ea69'}.icon-tent:before{content:'\ea6a'}.icon-terrain:before{content:'\ea6b'}.icon-text-to-speech-off:before{content:'\ea6c'}.icon-text-to-speech:before{content:'\ea6d'}.icon-texture:before{content:'\ea6e'}.icon-theater:before{content:'\ea6f'}.icon-theme-light-dark:before{content:'\ea70'}.icon-thermometer-lines:before{content:'\ea71'}.icon-thermometer:before{content:'\ea72'}.icon-thumb-down-outline:before{content:'\ea73'}.icon-thumb-down:before{content:'\ea74'}.icon-thumb-up-outline:before{content:'\ea75'}.icon-thumb-up:before{content:'\ea76'}.icon-thumbs-up-down:before{content:'\ea77'}.icon-ticket-account:before{content:'\ea78'}.icon-ticket:before{content:'\ea79'}.icon-tie:before{content:'\ea7a'}.icon-tile-four:before{content:'\ea7b'}.icon-timelapse:before{content:'\ea7c'}.icon-timer-3:before{content:'\ea7d'}.icon-timer-10:before{content:'\ea7e'}.icon-timer-off:before{content:'\ea7f'}.icon-timer-sand:before{content:'\ea80'}.icon-timer:before{content:'\ea81'}.icon-timetable:before{content:'\ea82'}.icon-toggle-switch-off:before{content:'\ea83'}.icon-toggle-switch-on:before{content:'\ea84'}.icon-tooltip-edit:before{content:'\ea85'}.icon-tooltip-image:before{content:'\ea86'}.icon-tooltip-outline-plus:before{content:'\ea87'}.icon-tooltip-outline:before{content:'\ea88'}.icon-tooltip-text:before{content:'\ea89'}.icon-tooltip:before{content:'\ea8a'}.icon-tor:before{content:'\ea8b'}.icon-traffic-light:before{content:'\ea8c'}.icon-train:before{content:'\ea8d'}.icon-tram:before{content:'\ea8e'}.icon-transcribe-close:before{content:'\ea8f'}.icon-transcribe:before{content:'\ea90'}.icon-transfer:before{content:'\ea91'}.icon-trash:before{content:'\ea92'}.icon-tree:before{content:'\ea93'}.icon-trello:before{content:'\ea94'}.icon-trending-down:before{content:'\ea95'}.icon-trending-neutral:before{content:'\ea96'}.icon-trending-up:before{content:'\ea97'}.icon-truck:before{content:'\ea98'}.icon-tshirt-crew:before{content:'\ea99'}.icon-tshirt-v:before{content:'\ea9a'}.icon-tumblr-reblog:before{content:'\ea9b'}.icon-tumblr:before{content:'\ea9c'}.icon-twitch:before{content:'\ea9d'}.icon-twitter-box:before{content:'\ea9e'}.icon-twitter-circle:before{content:'\ea9f'}.icon-twitter-retweet:before{content:'\eaa0'}.icon-twitter:before{content:'\eaa1'}.icon-ubuntu:before{content:'\eaa2'}.icon-umbrella-outline:before{content:'\eaa3'}.icon-umbrella:before{content:'\eaa4'}.icon-undo-variant:before{content:'\eaa5'}.icon-undo:before{content:'\eaa6'}.icon-unfold-less:before{content:'\eaa7'}.icon-unfold-more:before{content:'\eaa8'}.icon-ungroup:before{content:'\eaa9'}.icon-untappd:before{content:'\eaaa'}.icon-upload:before{content:'\eaab'}.icon-usb:before{content:'\eaac'}.icon-vector-curve:before{content:'\eaad'}.icon-vector-point:before{content:'\eaae'}.icon-vector-square:before{content:'\eaaf'}.icon-verified:before{content:'\eab0'}.icon-vibration:before{content:'\eab1'}.icon-video-off:before{content:'\eab2'}.icon-video-switch:before{content:'\eab3'}.icon-video:before{content:'\eab4'}.icon-view-agenda:before{content:'\eab5'}.icon-view-array:before{content:'\eab6'}.icon-view-carousel:before{content:'\eab7'}.icon-view-column:before{content:'\eab8'}.icon-view-dashboard:before{content:'\eab9'}.icon-view-day:before{content:'\eaba'}.icon-view-headline:before{content:'\eabb'}.icon-view-list:before{content:'\eabc'}.icon-view-module:before{content:'\eabd'}.icon-view-quilt:before{content:'\eabe'}.icon-view-stream:before{content:'\eabf'}.icon-view-week:before{content:'\eac0'}.icon-vimeo:before{content:'\eac1'}.icon-vine:before{content:'\eac2'}.icon-vk-box:before{content:'\eac3'}.icon-vk-circle:before{content:'\eac4'}.icon-vk:before{content:'\eac5'}.icon-voicemail:before{content:'\eac6'}.icon-volume-high:before{content:'\eac7'}.icon-volume-low:before{content:'\eac8'}.icon-volume-medium:before{content:'\eac9'}.icon-volume-off:before{content:'\eaca'}.icon-volume:before{content:'\eacb'}.icon-vpn:before{content:'\eacc'}.icon-walk:before{content:'\eacd'}.icon-wallet-giftcard:before{content:'\eace'}.icon-wallet-membership:before{content:'\eacf'}.icon-wallet-travel:before{content:'\ead0'}.icon-wallet:before{content:'\ead1'}.icon-washing-machine:before{content:'\ead2'}.icon-watch-export:before{content:'\ead3'}.icon-watch-import:before{content:'\ead4'}.icon-watch:before{content:'\ead5'}.icon-water-off:before{content:'\ead6'}.icon-water-pump:before{content:'\ead7'}.icon-water:before{content:'\ead8'}.icon-weather-cloudy:before{content:'\ead9'}.icon-weather-fog:before{content:'\eada'}.icon-weather-hail:before{content:'\eadb'}.icon-weather-lightning:before{content:'\eadc'}.icon-weather-night:before{content:'\eadd'}.icon-weather-partlycloudy:before{content:'\eade'}.icon-weather-pouring:before{content:'\eadf'}.icon-weather-rainy:before{content:'\eae0'}.icon-weather-snowy:before{content:'\eae1'}.icon-weather-sunny:before{content:'\eae2'}.icon-weather-sunset-down:before{content:'\eae3'}.icon-weather-sunset-up:before{content:'\eae4'}.icon-weather-sunset:before{content:'\eae5'}.icon-weather-windy-variant:before{content:'\eae6'}.icon-weather-windy:before{content:'\eae7'}.icon-web:before{content:'\eae8'}.icon-webcam:before{content:'\eae9'}.icon-weight-kilogram:before{content:'\eaea'}.icon-weight:before{content:'\eaeb'}.icon-whatsapp:before{content:'\eaec'}.icon-wheelchair-accessibility:before{content:'\eaed'}.icon-white-balance-auto:before{content:'\eaee'}.icon-white-balance-incandescent:before{content:'\eaef'}.icon-white-balance-irradescent:before{content:'\eaf0'}.icon-white-balance-sunny:before{content:'\eaf1'}.icon-wifi:before{content:'\eaf2'}.icon-wii:before{content:'\eaf3'}.icon-wikipedia:before{content:'\eaf4'}.icon-window-close:before{content:'\eaf5'}.icon-window-closed:before{content:'\eaf6'}.icon-window-maximize:before{content:'\eaf7'}.icon-window-minimize:before{content:'\eaf8'}.icon-window-open:before{content:'\eaf9'}.icon-window-restore:before{content:'\eafa'}.icon-windows:before{content:'\eafb'}.icon-wordpress:before{content:'\eafc'}.icon-worker:before{content:'\eafd'}.icon-wunderlist:before{content:'\eafe'}.icon-xbox-controller-off:before{content:'\eaff'}.icon-xbox-controller:before{content:'\eb00'}.icon-xbox:before{content:'\eb01'}.icon-xda:before{content:'\eb02'}.icon-xml:before{content:'\eb03'}.icon-yeast:before{content:'\eb04'}.icon-yelp:before{content:'\eb05'}.icon-youtube-play:before{content:'\eb06'}.icon-youtube:before{content:'\eb07'}.icon-zip-box:before{content:'\eb08'}.avatar{width:40px;min-width:40px;height:40px;line-height:40px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}.avatar.square{border-radius:0}.avatar.small{width:20px;min-width:20px;height:20px;line-height:20px}.avatar.big{width:72px;min-width:72px;height:72px;line-height:72px}.avatar.huge{width:96px;min-width:96px;height:96px;line-height:96px}.form-wrapper{background:#fff;padding:16px}.form-wrapper .form-title{font-size:21px;padding:8px 0}.navigation-simple .item{position:relative;cursor:pointer;text-align:left;margin:0;padding:0 24px;text-transform:none;line-height:48px;max-height:48px;height:48px}.navigation-simple .item md-icon{margin:0 16px 0 0}.navigation-simple .item .title{font-size:13px;font-weight:500;line-height:1}.navigation-simple .item.selected{background-color:rgba(0,0,0,.06)}.navigation-simple .subheader{font-size:13px;border-top:1px solid rgba(0,0,0,.12);font-weight:500;margin-top:8px}.navigation-simple .subheader.light{border-top:1px solid rgba(255,255,255,.12)}.navigation-simple md-divider{margin:8px 0}.simple-pagination{position:relative;display:inline-flex;flex-direction:row;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background-color:#fff;padding:0 8px}.simple-pagination .pagination-item{min-width:48px;min-height:56px;line-height:56px;border-radius:0;margin:0;font-weight:400;color:rgba(0,0,0,.54)}.simple-pagination .pagination-item:hover{color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.active{cursor:default;color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.disabled{cursor:default;color:rgba(0,0,0,.26)}.price-tables .price-table{position:relative;background-color:#fff;width:280px;border-radius:2px;margin:24px 24px 0 0;overflow:hidden}.price-tables .price-table.style-1 .package-type{font-size:17px;padding:16px 24px}.price-tables .price-table.style-1 .package-type .sale{font-size:13px;font-weight:600}.price-tables .price-table.style-1 .price{padding:32px 32px 16px 32px}.price-tables .price-table.style-1 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 .price .value{font-size:72px;font-weight:300;line-height:1}.price-tables .price-table.style-1 .price .period{padding:0 0 5px 4px;font-size:17px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 md-divider{margin:16px 32px}.price-tables .price-table.style-1 .terms{padding:16px 32px;font-size:15px}.price-tables .price-table.style-1 .cta-button{margin:16px auto 32px auto;width:128px}.price-tables .price-table.style-2 .badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}.price-tables .price-table.style-2 .package-type{padding:48px 32px 24px 32px;font-size:20px;font-weight:500;text-align:center}.price-tables .price-table.style-2 .price{padding:0 32px 8px 32px}.price-tables .price-table.style-2 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-2 .price .value{font-size:56px;font-weight:300;line-height:1}.price-tables .price-table.style-2 .period{padding:0 32px;font-size:15px;font-weight:500;color:rgba(0,0,0,.54);text-align:center}.price-tables .price-table.style-2 .terms{padding:32px;font-size:15px}.price-tables .price-table.style-2 .terms .term{padding-bottom:8px}.price-tables .price-table.style-2 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-2 .cta-button{margin:8px auto 32px auto;width:128px}.price-tables .price-table.style-3 .package-type{padding:32px;text-align:center}.price-tables .price-table.style-3 .package-type .title{font-size:34px}.price-tables .price-table.style-3 .package-type .subtitle{font-size:17px;color:rgba(0,0,0,.54);font-weight:500}.price-tables .price-table.style-3 .price{padding:16px 32px}.price-tables .price-table.style-3 .price .currency{padding-right:4px;font-size:15px;font-weight:500}.price-tables .price-table.style-3 .price .value{font-size:34px;font-weight:300;line-height:1}.price-tables .price-table.style-3 .price .period{padding-left:4px;text-align:center}.price-tables .price-table.style-3 .terms{margin:32px;font-size:15px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-3 .terms .term{padding-bottom:16px}.price-tables .price-table.style-3 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-3 .cta-button{margin:8px 32px}.price-tables .price-table.style-3 .note{padding:8px 32px 16px 32px;text-align:center;color:rgba(0,0,0,.54)}.simple-table-container{background:#fff}.simple-table-container .table-title{font-size:20px;padding:24px}table.simple{width:100%;border:none;border-spacing:0;text-align:left}table.simple thead tr th{padding:16px 8px;font-weight:500;color:rgba(0,0,0,.54);border-bottom:1px solid rgba(0,0,0,.12);white-space:nowrap;min-width:120px}table.simple thead tr th:first-child{padding-left:24px}table.simple thead tr th:last-child{padding-right:24px}table.simple tbody tr td{padding:16px 8px;border-bottom:1px solid rgba(0,0,0,.12)}table.simple tbody tr td:first-child{padding-left:24px}table.simple tbody tr td:last-child{padding-right:24px}table.simple tbody tr:last-child td{border-bottom:none}table.simple.clickable tbody tr{cursor:pointer}table.simple.clickable tbody tr:hover{background:rgba(0,0,0,.03)}html{font-size:62.5%;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.4;letter-spacing:-.1px}body{font-size:1.3rem}body,html{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}form{font-size:1.6rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:400}.h1,h1{font-size:2.4rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.6rem}.h4,h4{font-size:1.4rem}.h5,h5{font-size:1.3rem}.h6,h6{font-size:1.2rem}a{text-decoration:none}a:active,a:hover{text-decoration:underline}abbr{cursor:help;border-bottom:1px dotted rgba(0,0,0,.54)}blockquote{border-left:3px solid rgba(0,0,0,.12);font-style:italic;margin:1em 0;padding-left:16px}blockquote footer{font-style:normal}blockquote footer:before{content:'\2014 \00A0'}blockquote.reverse{border-left:none;border-right:3px solid rgba(0,0,0,.12);text-align:right;padding-left:0;padding-right:16px}blockquote.reverse footer:before{content:''}blockquote.reverse footer:after{content:'\2014 \00A0'}code{font-family:Monaco,Menlo,Consolas,"Ubuntu Mono",monospace}code:not(.highlight){background:rgba(0,0,0,.065);color:#106cc8;margin:0 1px;padding:2px 3px;border-radius:2px}dl dt{font-weight:700}dl dd{margin:4px 0 16px 0}mark{background:#f7f49a}pre{line-height:1.6;margin:8px 16px;white-space:pre-wrap}small{font-size:80%}table thead tr th{text-align:left}.text-italic{font-style:italic}.text-semibold{font-weight:600}.text-bold,strong{font-weight:700}.text-strike{text-decoration:line-through}.text-super{vertical-align:super}.text-sub{vertical-align:sub}.text-capitalize{text-transform:capitalize}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-weight-100{font-weight:100}.font-weight-200{font-weight:200}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-weight-900{font-weight:900}.font-size-2{font-size:2px}.font-size-4{font-size:4px}.font-size-6{font-size:6px}.font-size-8{font-size:8px}.font-size-10{font-size:10px}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-18{font-size:18px}.font-size-20{font-size:20px}.font-size-22{font-size:22px}.font-size-24{font-size:24px}.font-size-26{font-size:26px}.font-size-28{font-size:28px}.font-size-30{font-size:30px}.font-size-32{font-size:32px}.font-size-34{font-size:34px}.font-size-36{font-size:36px}.font-size-38{font-size:38px}.font-size-40{font-size:40px}.font-size-42{font-size:42px}.font-size-44{font-size:44px}.font-size-46{font-size:46px}.font-size-48{font-size:48px}.font-size-50{font-size:50px}.font-size-52{font-size:52px}.font-size-54{font-size:54px}.font-size-56{font-size:56px}.font-size-58{font-size:58px}.font-size-60{font-size:60px}.font-size-62{font-size:62px}.font-size-64{font-size:64px}.font-size-66{font-size:66px}.font-size-68{font-size:68px}.font-size-70{font-size:70px}.font-size-72{font-size:72px}.font-size-74{font-size:74px}.font-size-76{font-size:76px}.font-size-78{font-size:78px}.font-size-80{font-size:80px}.font-size-82{font-size:82px}.font-size-84{font-size:84px}.font-size-86{font-size:86px}.font-size-88{font-size:88px}.font-size-90{font-size:90px}.font-size-92{font-size:92px}.font-size-94{font-size:94px}.font-size-96{font-size:96px}.font-size-98{font-size:98px}.font-size-100{font-size:100px}.font-size-102{font-size:102px}.font-size-104{font-size:104px}.font-size-106{font-size:106px}.font-size-108{font-size:108px}.font-size-110{font-size:110px}.font-size-112{font-size:112px}.font-size-114{font-size:114px}.font-size-116{font-size:116px}.font-size-118{font-size:118px}.font-size-120{font-size:120px}.line-height-2{line-height:2px}.line-height-4{line-height:4px}.line-height-6{line-height:6px}.line-height-8{line-height:8px}.line-height-10{line-height:10px}.line-height-12{line-height:12px}.line-height-14{line-height:14px}.line-height-16{line-height:16px}.line-height-18{line-height:18px}.line-height-20{line-height:20px}.line-height-22{line-height:22px}.line-height-24{line-height:24px}.line-height-26{line-height:26px}.line-height-28{line-height:28px}.line-height-30{line-height:30px}.line-height-32{line-height:32px}.line-height-34{line-height:34px}.line-height-36{line-height:36px}.line-height-38{line-height:38px}.line-height-40{line-height:40px}.line-height-42{line-height:42px}.line-height-44{line-height:44px}.line-height-46{line-height:46px}.line-height-48{line-height:48px}.line-height-50{line-height:50px}.line-height-52{line-height:52px}.line-height-54{line-height:54px}.line-height-56{line-height:56px}.line-height-58{line-height:58px}.line-height-60{line-height:60px}.line-height-62{line-height:62px}.line-height-64{line-height:64px}.line-height-66{line-height:66px}.line-height-68{line-height:68px}.line-height-70{line-height:70px}.line-height-72{line-height:72px}.line-height-74{line-height:74px}.line-height-76{line-height:76px}.line-height-78{line-height:78px}.line-height-80{line-height:80px}.line-height-82{line-height:82px}.line-height-84{line-height:84px}.line-height-86{line-height:86px}.line-height-88{line-height:88px}.line-height-90{line-height:90px}.line-height-92{line-height:92px}.line-height-94{line-height:94px}.line-height-96{line-height:96px}.line-height-98{line-height:98px}.line-height-100{line-height:100px}.line-height-102{line-height:102px}.line-height-104{line-height:104px}.line-height-106{line-height:106px}.line-height-108{line-height:108px}.line-height-110{line-height:110px}.line-height-112{line-height:112px}.line-height-114{line-height:114px}.line-height-116{line-height:116px}.line-height-118{line-height:118px}.line-height-120{line-height:120px}.text-boxed,.text-boxed-light{border-radius:2px;padding:4px 8px;margin:0 8px;font-size:11px;font-weight:500;color:rgba(0,0,0,.54);background-color:rgba(0,0,0,.12);white-space:nowrap}.text-boxed-light{background-color:rgba(255,255,255,.7)}.text-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.angular-google-map-container{height:400px}.moment-picker .moment-picker-container{width:296px;border:none;border-radius:2px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:0;padding:8px}.moment-picker .moment-picker-container td,.moment-picker .moment-picker-container th{min-width:0;width:40px;height:40px;padding:8px;text-shadow:none;border-radius:35px}.moment-picker .moment-picker-container td:hover,.moment-picker .moment-picker-container th:hover{background:#f5f5f5;background-image:none}.moment-picker .moment-picker-container td.selected{background:#03a9f4;background-image:none}.moment-picker .moment-picker-container .header-view th{border-radius:0;white-space:nowrap;width:auto}.moment-picker .moment-picker-container .header-view th:first-child,.moment-picker .moment-picker-container .header-view th:last-child{width:20%}.c3{transition:all .3s ease}.c3 svg{font:12px RobotoDraft,Roboto,'Helvetica Neue',sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;user-select:none}.c3 .c3-bars path,.c3 .c3-event-rect,.c3 .c3-legend-item-tile,.c3 .c3-xgrid-focus,.c3 .c3-ygrid{shape-rendering:crispEdges}.c3 .c3-chart-line{transition:all .3s ease}.c3 .c3-line{stroke-width:1px}.c3.stroke-3 .c3-line{stroke-width:3px}.c3.stroke-2 .c3-line{stroke-width:2px}.c3 .c3-circle{transition:all .3s ease;stroke:#fff;stroke-width:2}.c3 .c3-circle._expanded_{stroke-width:3;stroke:#fff}.c3 .c3-chart-arc path{stroke:#fff}.c3 .c3-chart-arc text{fill:#fff;font-size:13px}.c3 .c3-grid line{stroke:rgba(0,0,0,.04);stroke-width:1px;stroke-dasharray:0}.c3 .c3-grid text{fill:#aaa}.c3 .c3-axis .tick{stroke-width:0}.c3 .c3-axis text{fill:rgba(0,0,0,.33)}.c3 .c3-axis line,.c3 .c3-axis path{stroke:rgba(0,0,0,.04)}.c3 .c3-xgrid,.c3 .c3-ygrid{stroke-dasharray:0 0}.c3 .c3-text.c3-empty{fill:grey;font-size:2em}.c3 .c3-bar{stroke-width:0}.c3 .c3-bar._expanded_{fill-opacity:.75}.c3 .c3-target.c3-focused{opacity:1}.c3 .c3-target.c3-focused .c3-target.c3-focused path.c3-step,.c3 .c3-target.c3-focused path.c3-line{stroke-width:3px;transition:all .3s ease}.c3 .c3-target.c3-defocused{opacity:.3!important}.c3 .c3-region{fill:#4682b4;fill-opacity:.1}.c3 .c3-brush .extent{fill-opacity:.1}.c3 .c3-legend-item{font-size:12px}.c3 .c3-legend-item-hidden{opacity:.15}.c3 .c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3 .c3-tooltip-container{z-index:10}.c3 .c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);opacity:1;border-radius:2px;overflow:hidden;padding:4px 0}.c3 .c3-tooltip tr{border:none}.c3 .c3-tooltip th{background-color:transparent;font-size:14px;font-weight:400;padding:8px 12px;text-align:left;color:rgba(0,0,0,.54)}.c3 .c3-tooltip td{font-size:13px;padding:4px 12px!important;background-color:#fff;border-left:none;color:rgba(0,0,0,.84)}.c3 .c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3 .c3-tooltip td.value{font-size:14px!important;text-align:right;color:rgba(0,0,0,.84)}.c3 .c3-area{stroke-width:0;opacity:.2}.c3 .c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3 .c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3 .c3-chart-arc .c3-gauge-value{fill:#000}.ct-label{font-size:13px}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{font-size:13px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{margin-top:15px}table.dataTable{width:100%;margin:0 auto;clear:both;border-spacing:0}table.dataTable thead tr{background:#fff}table.dataTable thead th{text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12);padding:16px 8px}table.dataTable thead th:first-child{padding-left:24px}table.dataTable thead th:last-child{border-right:none;padding-right:24px}table.dataTable thead th:active{outline:0}table.dataTable thead th.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable thead th .table-header .column-title{display:block;font-weight:600;white-space:nowrap}table.dataTable thead th .table-header .selectize-control{margin-top:15px}table.dataTable thead th .table-header .selectize-control.single .selectize-input{padding:7px 10px}table.dataTable thead th .table-header .selectize-control.single .selectize-input:after{right:10px;border-width:5px 4px 0 4px;border-color:rgba(0,0,0,.12) transparent transparent transparent}table.dataTable thead th .table-header .column-search-input{display:inline-block;margin-top:15px;width:100%;height:33px}table.dataTable thead td{padding:15px;vertical-align:middle}table.dataTable thead td:active{outline:0}table.dataTable thead td.dt-head-left{text-align:left}table.dataTable thead td.dt-head-center{text-align:center}table.dataTable thead td.dt-head-right{text-align:right}table.dataTable thead td.dt-head-justify{text-align:justify}table.dataTable thead td.dt-head-nowrap{white-space:nowrap}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{background:0 0}table.dataTable thead .sorting .table-header .column-title,table.dataTable thead .sorting_asc .table-header .column-title,table.dataTable thead .sorting_desc .table-header .column-title{cursor:pointer}table.dataTable thead .sorting .table-header .column-title:after,table.dataTable thead .sorting_asc .table-header .column-title:after,table.dataTable thead .sorting_desc .table-header .column-title:after{position:relative;font-family:icomoon;font-weight:400;margin-left:10px;top:2px;font-size:16px;color:rgba(0,0,0,.54)}table.dataTable thead .sorting .table-header .column-title:after{content:'\eaa8'}table.dataTable thead .sorting_asc .table-header .column-title:after{content:'\e718'}table.dataTable thead .sorting_desc .table-header .column-title:after{content:'\e715'}table.dataTable tfoot th{font-weight:600;text-align:left;padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot th.dt-head-left{text-align:left}table.dataTable tfoot th.dt-head-center{text-align:center}table.dataTable tfoot th.dt-head-right{text-align:right}table.dataTable tfoot th.dt-head-justify{text-align:justify}table.dataTable tfoot th.dt-head-nowrap{white-space:nowrap}table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody tr.details-open td.detail-column i{background:#fff}table.dataTable tbody tr.details-row.odd tr{background:#fff}table.dataTable tbody tr.details-row>td{padding:0}table.dataTable tbody th{padding:14px 15px;vertical-align:middle}table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable tbody td{padding:16px 8px;vertical-align:middle}table.dataTable tbody td:first-child{padding-left:24px}table.dataTable tbody td:last-child{padding-right:24px}table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable th.dt-left{text-align:left}table.dataTable th.dt-center{text-align:center}table.dataTable th.dt-right{text-align:right}table.dataTable th.dt-justify{text-align:justify}table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable td.dt-left{text-align:left}table.dataTable td.dt-center{text-align:center}table.dataTable td.dataTables_empty{height:51px;text-align:center}table.dataTable td.dt-right{text-align:right}table.dataTable td.dt-justify{text-align:justify}table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable.row-border thead{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.row-border tbody tr:first-child td{border-top:none}table.dataTable.row-border tbody tr:last-child td{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody th{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody td{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody th:last-child{border-right:none}table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody td:last-child{border-right:none}table.dataTable.stripe tbody tr.odd{background-color:#fff}table.dataTable.stripe tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.odd:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.odd:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_2{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_2{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:none}table.dataTable.nowrap th{white-space:nowrap}table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th{padding:5px 9px}table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th{padding:5px 9px 3px 9px}table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th{padding:4px 5px}table.dataTable.compact tbody td{padding:4px 5px}.dataTables_wrapper{display:flex;flex:1 0 auto;flex-direction:column;min-height:0}.dataTables_wrapper .top{padding:16px 24px}.dataTables_wrapper .bottom{display:flex;min-height:64px;justify-content:space-between;padding:16px 8px;border-top:1px solid rgba(0,0,0,.12)}.dataTables_wrapper .bottom .left{display:flex;flex:0 0 50%;max-width:50%;align-self:center;padding:0 8px}.dataTables_wrapper .bottom .left .length{display:block}.dataTables_wrapper .bottom .right{display:flex;flex:0 0 50%;max-width:50%;align-self:center;justify-content:flex-end;padding:0 8px}.dataTables_wrapper .bottom .right .info{display:block;align-self:center}.dataTables_wrapper .bottom .right .info .dataTables_info{padding:0 8px;font-weight:600}.dataTables_wrapper .bottom .right .pagination{display:block;align-self:center;white-space:nowrap}.dataTables_wrapper .bottom .right .pagination .dataTables_paginate{padding:0;margin:0!important}.dataTables_wrapper .dataTables_filter{float:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em;border:1px solid rgba(0,0,0,.12);height:24px;padding:4px 8px}.dataTables_wrapper .dataTables_paginate .paginate_button{background:#fff;color:rgba(0,0,0,.87);border:1px solid rgba(0,0,0,.12);padding:9px 12px;border-radius:2px;cursor:pointer;user-select:none;margin:0 2px}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.05);color:rgba(0,0,0,.87)!important;border:1px solid rgba(0,0,0,.12)!important;background:0 0}.dataTables_wrapper .dataTables_paginate .paginate_button:active{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.08),inset 0 1px 3px 0 rgba(0,0,0,.1),0 1px 0 0 rgba(255,255,255,.35)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:rgba(0,0,0,.54)!important;border-color:rgba(0,0,0,.12)!important;background:#fff!important;box-shadow:none!important;cursor:default}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_scroll{display:flex;flex:1 1 0;flex-direction:column;clear:both;min-height:0}.dataTables_wrapper .dataTables_scroll table.dataTable{box-shadow:none}.dataTables_wrapper .dataTables_scroll table.dataTable.row-border thead{border:none}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead{display:flex;min-height:56px;box-shadow:0 0 0 1px rgba(0,0,0,.095),0 1px 1px 0 rgba(0,0,0,.1),0 2px 1px 0 rgba(0,0,0,.05);background:#fff;overflow:visible!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead tr th:last-child .table-header .column-title{position:relative;left:7px}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody{display:flex;overflow-x:hidden!important;overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody th>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody td>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper.no-footer .dataTables_scrollBody table,.dataTables_wrapper.no-footer .dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:'';clear:both;height:0}table.dataTable .show-details{padding:5px 10px;font-weight:700}table.dataTable .action-buttons{display:flex;justify-content:center}table.dataTable .action-buttons .button{padding:8px}.fullpage-datatable .dataTables_wrapper{height:100%;max-height:100%}.explorer-11 .fullpage-datatable .dataTables_scroll{flex:1}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child{padding-left:40px}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child:before{content:'+';width:15px;height:15px;line-height:15px;top:50%;margin-top:-7px;left:8px;color:rgba(0,0,0,.54);background:0 0;border:none;box-shadow:0 0 0 2px rgba(0,0,0,.54);font-weight:700}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{background:0 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul{display:block}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.12);padding:8px 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:last-child{border-bottom:none;padding-bottom:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li .dtr-title{margin-right:8px}[hljs],hljs{display:block;overflow-x:auto;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.diff .hljs-header,.hljs-comment{color:#998;font-style:italic}.css .rule .hljs-keyword,.hljs-keyword,.hljs-request,.hljs-status,.hljs-subst,.hljs-winutils,.nginx .hljs-title{color:#333;font-weight:700}.hljs-hexcolor,.hljs-number,.ruby .hljs-constant{color:teal}.hljs-doctag,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#d14}.hljs-id,.hljs-title,.scss .hljs-preprocessor{color:#900;font-weight:700}.hljs-list .hljs-keyword,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type,.tex .hljs-command,.vhdl .hljs-literal{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rule .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-name,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.clojure .hljs-keyword,.hljs-prompt,.hljs-symbol,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-string,.scheme .hljs-keyword,.tex .hljs-special{color:#990073}.hljs-built_in{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}nvd3{display:block;width:100%;height:100%}nvd3.remove-x-lines .nv-x .tick line{display:none}nvd3.remove-y-lines .nv-y .tick line{display:none}nvd3.remove-line-stroke .nv-groups path.nv-line{stroke-width:0!important}nvd3.remove-opacity .nv-groups .nv-group{fill-opacity:1!important}nvd3.show-line-points .nv-line .nv-scatter .nv-groups .nv-point{fill-opacity:1!important;stroke-opacity:1!important}.nvd3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif}.nvd3 line.nv-guideline{stroke:rgba(0,0,0,.54)}.nvd3 .nv-groups .nv-point.hover{stroke-width:3px!important;fill-opacity:1!important;stroke-opacity:1!important}.nvtooltip{background:0 0;color:#fff;padding:0;border:none}.nvtooltip.gravity-n:after{display:block;position:absolute;content:'';width:0;height:0;left:50%;bottom:100%;margin-left:-5px;border:5px solid transparent;border-bottom-color:rgba(0,0,0,.87)}.nvtooltip.gravity-s:after{display:block;position:absolute;content:'';width:0;height:0;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.87)}.nvtooltip.gravity-e:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;right:0;margin-top:-6px;margin-right:-11px;border:6px solid transparent;border-left-color:rgba(0,0,0,.87)}.nvtooltip.gravity-w:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;margin-top:-6px;margin-left:-11px;border:6px solid transparent;border-right-color:rgba(0,0,0,.87)}.nvtooltip table{background:rgba(0,0,0,.87);padding:8px 12px;margin:0;border-radius:2px}.nvtooltip table tbody tr td.legend-color-guide div{border:none}.nvtooltip table tbody tr td:last-child{padding-right:0}.ps-container:hover .ps-in-scrolling{pointer-events:auto}.ps-container .ps-in-scrolling{pointer-events:auto}.ps-container>.ps-scrollbar-x-rail{background:0 0!important;margin:4px 0;height:4px;z-index:49}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{height:4px}.ps-container>.ps-scrollbar-y-rail{background:0 0!important;margin:4px 0;width:4px;z-index:49}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{width:4px}.ta-root{display:block}.ta-root .ta-scroll-window.form-control{border:1px solid rgba(0,0,0,.12)}.ta-root.focussed>.ta-scroll-window.form-control{outline:0 solid transparent;border:1px solid rgba(0,0,0,.12);box-shadow:none}.ta-root textarea.ta-editor.ta-html{resize:vertical;width:100%!important;border:1px solid rgba(0,0,0,.12);padding:16px}.ta-root .ta-toolbar{border:1px solid rgba(0,0,0,.12);border-bottom:none;background:#f5f5f5}.ta-root .ta-toolbar .ta-group{display:flex;align-items:center;align-content:center;flex-wrap:wrap}.ta-root .ta-toolbar .ta-group #toolbarCC,.ta-root .ta-toolbar .ta-group #toolbarWC{display:inline-block!important;line-height:24px}.ta-root .ta-toolbar .ta-group .md-button{width:40px;min-width:40px;line-height:14px;height:36px;min-height:36px;padding:6px;margin:4px 0}.ta-root .ta-toolbar .ta-group .md-button i{font-size:20px;width:20px;height:20px;line-height:20px}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-radius{border-radius:0}.divider-vertical{background:rgba(0,0,0,.12);height:24px;width:1px;margin:0 8px}.hidden{visibility:hidden;opacity:0}[fill-width]{min-width:100%}[fill-height]{min-height:100%}.full-height{height:100%!important}a img{display:block;outline:0}img{max-width:100%;height:auto;vertical-align:top;border:none}.scrollable{display:block;position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.only-x{overflow-x:auto;overflow-y:hidden}.scrollable.only-y{overflow-x:hidden;overflow-y:auto}.flex-scrollable{position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.flex-scrollable.only-x{overflow-x:auto;overflow-y:hidden}.flex-scrollable.only-y{overflow-x:hidden;overflow-y:auto}.background-image-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.align-vertical:before{display:inline-block;height:100%;content:'';vertical-align:middle}.align-vertical .align-vertical-bottom,.align-vertical .align-vertical-middle,.align-vertical .align-vertical-top{display:inline-block}.align-vertical .align-vertical-top{vertical-align:top}.align-vertical .align-vertical-middle{vertical-align:middle}.align-vertical .align-vertical-bottom{vertical-align:bottom}.p-0,.padding-0{padding:0}.padding-top-0,.pt-0{padding-top:0}.padding-right-0,.pr-0{padding-right:0}.padding-bottom-0,.pb-0{padding-bottom:0}.padding-left-0,.pl-0{padding-left:0}.padding-horizontal-0,.ph-0{padding-left:0;padding-right:0}.padding-vertical-0,.pv-0{padding-top:0;padding-bottom:0}.p-5,.padding-5{padding:5px}.padding-top-5,.pt-5{padding-top:5px}.padding-right-5,.pr-5{padding-right:5px}.padding-bottom-5,.pb-5{padding-bottom:5px}.padding-left-5,.pl-5{padding-left:5px}.padding-horizontal-5,.ph-5{padding-left:5px;padding-right:5px}.padding-vertical-5,.pv-5{padding-top:5px;padding-bottom:5px}.p-10,.padding-10{padding:10px}.padding-top-10,.pt-10{padding-top:10px}.padding-right-10,.pr-10{padding-right:10px}.padding-bottom-10,.pb-10{padding-bottom:10px}.padding-left-10,.pl-10{padding-left:10px}.padding-horizontal-10,.ph-10{padding-left:10px;padding-right:10px}.padding-vertical-10,.pv-10{padding-top:10px;padding-bottom:10px}.p-15,.padding-15{padding:15px}.padding-top-15,.pt-15{padding-top:15px}.padding-right-15,.pr-15{padding-right:15px}.padding-bottom-15,.pb-15{padding-bottom:15px}.padding-left-15,.pl-15{padding-left:15px}.padding-horizontal-15,.ph-15{padding-left:15px;padding-right:15px}.padding-vertical-15,.pv-15{padding-top:15px;padding-bottom:15px}.p-20,.padding-20{padding:20px}.padding-top-20,.pt-20{padding-top:20px}.padding-right-20,.pr-20{padding-right:20px}.padding-bottom-20,.pb-20{padding-bottom:20px}.padding-left-20,.pl-20{padding-left:20px}.padding-horizontal-20,.ph-20{padding-left:20px;padding-right:20px}.padding-vertical-20,.pv-20{padding-top:20px;padding-bottom:20px}.p-25,.padding-25{padding:25px}.padding-top-25,.pt-25{padding-top:25px}.padding-right-25,.pr-25{padding-right:25px}.padding-bottom-25,.pb-25{padding-bottom:25px}.padding-left-25,.pl-25{padding-left:25px}.padding-horizontal-25,.ph-25{padding-left:25px;padding-right:25px}.padding-vertical-25,.pv-25{padding-top:25px;padding-bottom:25px}.p-30,.padding-30{padding:30px}.padding-top-30,.pt-30{padding-top:30px}.padding-right-30,.pr-30{padding-right:30px}.padding-bottom-30,.pb-30{padding-bottom:30px}.padding-left-30,.pl-30{padding-left:30px}.padding-horizontal-30,.ph-30{padding-left:30px;padding-right:30px}.padding-vertical-30,.pv-30{padding-top:30px;padding-bottom:30px}.p-35,.padding-35{padding:35px}.padding-top-35,.pt-35{padding-top:35px}.padding-right-35,.pr-35{padding-right:35px}.padding-bottom-35,.pb-35{padding-bottom:35px}.padding-left-35,.pl-35{padding-left:35px}.padding-horizontal-35,.ph-35{padding-left:35px;padding-right:35px}.padding-vertical-35,.pv-35{padding-top:35px;padding-bottom:35px}.p-40,.padding-40{padding:40px}.padding-top-40,.pt-40{padding-top:40px}.padding-right-40,.pr-40{padding-right:40px}.padding-bottom-40,.pb-40{padding-bottom:40px}.padding-left-40,.pl-40{padding-left:40px}.padding-horizontal-40,.ph-40{padding-left:40px;padding-right:40px}.padding-vertical-40,.pv-40{padding-top:40px;padding-bottom:40px}.p-45,.padding-45{padding:45px}.padding-top-45,.pt-45{padding-top:45px}.padding-right-45,.pr-45{padding-right:45px}.padding-bottom-45,.pb-45{padding-bottom:45px}.padding-left-45,.pl-45{padding-left:45px}.padding-horizontal-45,.ph-45{padding-left:45px;padding-right:45px}.padding-vertical-45,.pv-45{padding-top:45px;padding-bottom:45px}.p-50,.padding-50{padding:50px}.padding-top-50,.pt-50{padding-top:50px}.padding-right-50,.pr-50{padding-right:50px}.padding-bottom-50,.pb-50{padding-bottom:50px}.padding-left-50,.pl-50{padding-left:50px}.padding-horizontal-50,.ph-50{padding-left:50px;padding-right:50px}.padding-vertical-50,.pv-50{padding-top:50px;padding-bottom:50px}.p-55,.padding-55{padding:55px}.padding-top-55,.pt-55{padding-top:55px}.padding-right-55,.pr-55{padding-right:55px}.padding-bottom-55,.pb-55{padding-bottom:55px}.padding-left-55,.pl-55{padding-left:55px}.padding-horizontal-55,.ph-55{padding-left:55px;padding-right:55px}.padding-vertical-55,.pv-55{padding-top:55px;padding-bottom:55px}.p-60,.padding-60{padding:60px}.padding-top-60,.pt-60{padding-top:60px}.padding-right-60,.pr-60{padding-right:60px}.padding-bottom-60,.pb-60{padding-bottom:60px}.padding-left-60,.pl-60{padding-left:60px}.padding-horizontal-60,.ph-60{padding-left:60px;padding-right:60px}.padding-vertical-60,.pv-60{padding-top:60px;padding-bottom:60px}.p-65,.padding-65{padding:65px}.padding-top-65,.pt-65{padding-top:65px}.padding-right-65,.pr-65{padding-right:65px}.padding-bottom-65,.pb-65{padding-bottom:65px}.padding-left-65,.pl-65{padding-left:65px}.padding-horizontal-65,.ph-65{padding-left:65px;padding-right:65px}.padding-vertical-65,.pv-65{padding-top:65px;padding-bottom:65px}.p-70,.padding-70{padding:70px}.padding-top-70,.pt-70{padding-top:70px}.padding-right-70,.pr-70{padding-right:70px}.padding-bottom-70,.pb-70{padding-bottom:70px}.padding-left-70,.pl-70{padding-left:70px}.padding-horizontal-70,.ph-70{padding-left:70px;padding-right:70px}.padding-vertical-70,.pv-70{padding-top:70px;padding-bottom:70px}.p-75,.padding-75{padding:75px}.padding-top-75,.pt-75{padding-top:75px}.padding-right-75,.pr-75{padding-right:75px}.padding-bottom-75,.pb-75{padding-bottom:75px}.padding-left-75,.pl-75{padding-left:75px}.padding-horizontal-75,.ph-75{padding-left:75px;padding-right:75px}.padding-vertical-75,.pv-75{padding-top:75px;padding-bottom:75px}.p-80,.padding-80{padding:80px}.padding-top-80,.pt-80{padding-top:80px}.padding-right-80,.pr-80{padding-right:80px}.padding-bottom-80,.pb-80{padding-bottom:80px}.padding-left-80,.pl-80{padding-left:80px}.padding-horizontal-80,.ph-80{padding-left:80px;padding-right:80px}.padding-vertical-80,.pv-80{padding-top:80px;padding-bottom:80px}.p-85,.padding-85{padding:85px}.padding-top-85,.pt-85{padding-top:85px}.padding-right-85,.pr-85{padding-right:85px}.padding-bottom-85,.pb-85{padding-bottom:85px}.padding-left-85,.pl-85{padding-left:85px}.padding-horizontal-85,.ph-85{padding-left:85px;padding-right:85px}.padding-vertical-85,.pv-85{padding-top:85px;padding-bottom:85px}.p-90,.padding-90{padding:90px}.padding-top-90,.pt-90{padding-top:90px}.padding-right-90,.pr-90{padding-right:90px}.padding-bottom-90,.pb-90{padding-bottom:90px}.padding-left-90,.pl-90{padding-left:90px}.padding-horizontal-90,.ph-90{padding-left:90px;padding-right:90px}.padding-vertical-90,.pv-90{padding-top:90px;padding-bottom:90px}.p-95,.padding-95{padding:95px}.padding-top-95,.pt-95{padding-top:95px}.padding-right-95,.pr-95{padding-right:95px}.padding-bottom-95,.pb-95{padding-bottom:95px}.padding-left-95,.pl-95{padding-left:95px}.padding-horizontal-95,.ph-95{padding-left:95px;padding-right:95px}.padding-vertical-95,.pv-95{padding-top:95px;padding-bottom:95px}.p-100,.padding-100{padding:100px}.padding-top-100,.pt-100{padding-top:100px}.padding-right-100,.pr-100{padding-right:100px}.padding-bottom-100,.pb-100{padding-bottom:100px}.padding-left-100,.pl-100{padding-left:100px}.padding-horizontal-100,.ph-100{padding-left:100px;padding-right:100px}.padding-vertical-100,.pv-100{padding-top:100px;padding-bottom:100px}.p-8,.padding-8{padding:8px}.padding-top-8,.pt-8{padding-top:8px}.padding-right-8,.pr-8{padding-right:8px}.padding-bottom-8,.pb-8{padding-bottom:8px}.padding-left-8,.pl-8{padding-left:8px}.padding-horizontal-8,.ph-8{padding-left:8px;padding-right:8px}.padding-vertical-8,.pv-8{padding-top:8px;padding-bottom:8px}.p-16,.padding-16{padding:16px}.padding-top-16,.pt-16{padding-top:16px}.padding-right-16,.pr-16{padding-right:16px}.padding-bottom-16,.pb-16{padding-bottom:16px}.padding-left-16,.pl-16{padding-left:16px}.padding-horizontal-16,.ph-16{padding-left:16px;padding-right:16px}.padding-vertical-16,.pv-16{padding-top:16px;padding-bottom:16px}.p-24,.padding-24{padding:24px}.padding-top-24,.pt-24{padding-top:24px}.padding-right-24,.pr-24{padding-right:24px}.padding-bottom-24,.pb-24{padding-bottom:24px}.padding-left-24,.pl-24{padding-left:24px}.padding-horizontal-24,.ph-24{padding-left:24px;padding-right:24px}.padding-vertical-24,.pv-24{padding-top:24px;padding-bottom:24px}.p-32,.padding-32{padding:32px}.padding-top-32,.pt-32{padding-top:32px}.padding-right-32,.pr-32{padding-right:32px}.padding-bottom-32,.pb-32{padding-bottom:32px}.padding-left-32,.pl-32{padding-left:32px}.padding-horizontal-32,.ph-32{padding-left:32px;padding-right:32px}.padding-vertical-32,.pv-32{padding-top:32px;padding-bottom:32px}.p-48,.padding-48{padding:48px}.padding-top-48,.pt-48{padding-top:48px}.padding-right-48,.pr-48{padding-right:48px}.padding-bottom-48,.pb-48{padding-bottom:48px}.padding-left-48,.pl-48{padding-left:48px}.padding-horizontal-48,.ph-48{padding-left:48px;padding-right:48px}.padding-vertical-48,.pv-48{padding-top:48px;padding-bottom:48px}.p-56,.padding-56{padding:56px}.padding-top-56,.pt-56{padding-top:56px}.padding-right-56,.pr-56{padding-right:56px}.padding-bottom-56,.pb-56{padding-bottom:56px}.padding-left-56,.pl-56{padding-left:56px}.padding-horizontal-56,.ph-56{padding-left:56px;padding-right:56px}.padding-vertical-56,.pv-56{padding-top:56px;padding-bottom:56px}.p-64,.padding-64{padding:64px}.padding-top-64,.pt-64{padding-top:64px}.padding-right-64,.pr-64{padding-right:64px}.padding-bottom-64,.pb-64{padding-bottom:64px}.padding-left-64,.pl-64{padding-left:64px}.padding-horizontal-64,.ph-64{padding-left:64px;padding-right:64px}.padding-vertical-64,.pv-64{padding-top:64px;padding-bottom:64px}.p-72,.padding-72{padding:72px}.padding-top-72,.pt-72{padding-top:72px}.padding-right-72,.pr-72{padding-right:72px}.padding-bottom-72,.pb-72{padding-bottom:72px}.padding-left-72,.pl-72{padding-left:72px}.padding-horizontal-72,.ph-72{padding-left:72px;padding-right:72px}.padding-vertical-72,.pv-72{padding-top:72px;padding-bottom:72px}.p-88,.padding-88{padding:88px}.padding-top-88,.pt-88{padding-top:88px}.padding-right-88,.pr-88{padding-right:88px}.padding-bottom-88,.pb-88{padding-bottom:88px}.padding-left-88,.pl-88{padding-left:88px}.padding-horizontal-88,.ph-88{padding-left:88px;padding-right:88px}.padding-vertical-88,.pv-88{padding-top:88px;padding-bottom:88px}.p-96,.padding-96{padding:96px}.padding-top-96,.pt-96{padding-top:96px}.padding-right-96,.pr-96{padding-right:96px}.padding-bottom-96,.pb-96{padding-bottom:96px}.padding-left-96,.pl-96{padding-left:96px}.padding-horizontal-96,.ph-96{padding-left:96px;padding-right:96px}.padding-vertical-96,.pv-96{padding-top:96px;padding-bottom:96px}.m-0,.margin-0{margin:0}.margin-top-0,.mt-0{margin-top:0}.margin-right-0,.mr-0{margin-right:0}.margin-bottom-0,.mb-0{margin-bottom:0}.margin-left-0,.ml-0{margin-left:0}.margin-horizontal-0,.mh-0{margin-left:0;margin-right:0}.margin-vertical-0,.mv-0{margin-top:0;margin-bottom:0}.m-5,.margin-5{margin:5px}.margin-top-5,.mt-5{margin-top:5px}.margin-right-5,.mr-5{margin-right:5px}.margin-bottom-5,.mb-5{margin-bottom:5px}.margin-left-5,.ml-5{margin-left:5px}.margin-horizontal-5,.mh-5{margin-left:5px;margin-right:5px}.margin-vertical-5,.mv-5{margin-top:5px;margin-bottom:5px}.m-10,.margin-10{margin:10px}.margin-top-10,.mt-10{margin-top:10px}.margin-right-10,.mr-10{margin-right:10px}.margin-bottom-10,.mb-10{margin-bottom:10px}.margin-left-10,.ml-10{margin-left:10px}.margin-horizontal-10,.mh-10{margin-left:10px;margin-right:10px}.margin-vertical-10,.mv-10{margin-top:10px;margin-bottom:10px}.m-15,.margin-15{margin:15px}.margin-top-15,.mt-15{margin-top:15px}.margin-right-15,.mr-15{margin-right:15px}.margin-bottom-15,.mb-15{margin-bottom:15px}.margin-left-15,.ml-15{margin-left:15px}.margin-horizontal-15,.mh-15{margin-left:15px;margin-right:15px}.margin-vertical-15,.mv-15{margin-top:15px;margin-bottom:15px}.m-20,.margin-20{margin:20px}.margin-top-20,.mt-20{margin-top:20px}.margin-right-20,.mr-20{margin-right:20px}.margin-bottom-20,.mb-20{margin-bottom:20px}.margin-left-20,.ml-20{margin-left:20px}.margin-horizontal-20,.mh-20{margin-left:20px;margin-right:20px}.margin-vertical-20,.mv-20{margin-top:20px;margin-bottom:20px}.m-25,.margin-25{margin:25px}.margin-top-25,.mt-25{margin-top:25px}.margin-right-25,.mr-25{margin-right:25px}.margin-bottom-25,.mb-25{margin-bottom:25px}.margin-left-25,.ml-25{margin-left:25px}.margin-horizontal-25,.mh-25{margin-left:25px;margin-right:25px}.margin-vertical-25,.mv-25{margin-top:25px;margin-bottom:25px}.m-30,.margin-30{margin:30px}.margin-top-30,.mt-30{margin-top:30px}.margin-right-30,.mr-30{margin-right:30px}.margin-bottom-30,.mb-30{margin-bottom:30px}.margin-left-30,.ml-30{margin-left:30px}.margin-horizontal-30,.mh-30{margin-left:30px;margin-right:30px}.margin-vertical-30,.mv-30{margin-top:30px;margin-bottom:30px}.m-35,.margin-35{margin:35px}.margin-top-35,.mt-35{margin-top:35px}.margin-right-35,.mr-35{margin-right:35px}.margin-bottom-35,.mb-35{margin-bottom:35px}.margin-left-35,.ml-35{margin-left:35px}.margin-horizontal-35,.mh-35{margin-left:35px;margin-right:35px}.margin-vertical-35,.mv-35{margin-top:35px;margin-bottom:35px}.m-40,.margin-40{margin:40px}.margin-top-40,.mt-40{margin-top:40px}.margin-right-40,.mr-40{margin-right:40px}.margin-bottom-40,.mb-40{margin-bottom:40px}.margin-left-40,.ml-40{margin-left:40px}.margin-horizontal-40,.mh-40{margin-left:40px;margin-right:40px}.margin-vertical-40,.mv-40{margin-top:40px;margin-bottom:40px}.m-45,.margin-45{margin:45px}.margin-top-45,.mt-45{margin-top:45px}.margin-right-45,.mr-45{margin-right:45px}.margin-bottom-45,.mb-45{margin-bottom:45px}.margin-left-45,.ml-45{margin-left:45px}.margin-horizontal-45,.mh-45{margin-left:45px;margin-right:45px}.margin-vertical-45,.mv-45{margin-top:45px;margin-bottom:45px}.m-50,.margin-50{margin:50px}.margin-top-50,.mt-50{margin-top:50px}.margin-right-50,.mr-50{margin-right:50px}.margin-bottom-50,.mb-50{margin-bottom:50px}.margin-left-50,.ml-50{margin-left:50px}.margin-horizontal-50,.mh-50{margin-left:50px;margin-right:50px}.margin-vertical-50,.mv-50{margin-top:50px;margin-bottom:50px}.m-55,.margin-55{margin:55px}.margin-top-55,.mt-55{margin-top:55px}.margin-right-55,.mr-55{margin-right:55px}.margin-bottom-55,.mb-55{margin-bottom:55px}.margin-left-55,.ml-55{margin-left:55px}.margin-horizontal-55,.mh-55{margin-left:55px;margin-right:55px}.margin-vertical-55,.mv-55{margin-top:55px;margin-bottom:55px}.m-60,.margin-60{margin:60px}.margin-top-60,.mt-60{margin-top:60px}.margin-right-60,.mr-60{margin-right:60px}.margin-bottom-60,.mb-60{margin-bottom:60px}.margin-left-60,.ml-60{margin-left:60px}.margin-horizontal-60,.mh-60{margin-left:60px;margin-right:60px}.margin-vertical-60,.mv-60{margin-top:60px;margin-bottom:60px}.m-65,.margin-65{margin:65px}.margin-top-65,.mt-65{margin-top:65px}.margin-right-65,.mr-65{margin-right:65px}.margin-bottom-65,.mb-65{margin-bottom:65px}.margin-left-65,.ml-65{margin-left:65px}.margin-horizontal-65,.mh-65{margin-left:65px;margin-right:65px}.margin-vertical-65,.mv-65{margin-top:65px;margin-bottom:65px}.m-70,.margin-70{margin:70px}.margin-top-70,.mt-70{margin-top:70px}.margin-right-70,.mr-70{margin-right:70px}.margin-bottom-70,.mb-70{margin-bottom:70px}.margin-left-70,.ml-70{margin-left:70px}.margin-horizontal-70,.mh-70{margin-left:70px;margin-right:70px}.margin-vertical-70,.mv-70{margin-top:70px;margin-bottom:70px}.m-75,.margin-75{margin:75px}.margin-top-75,.mt-75{margin-top:75px}.margin-right-75,.mr-75{margin-right:75px}.margin-bottom-75,.mb-75{margin-bottom:75px}.margin-left-75,.ml-75{margin-left:75px}.margin-horizontal-75,.mh-75{margin-left:75px;margin-right:75px}.margin-vertical-75,.mv-75{margin-top:75px;margin-bottom:75px}.m-80,.margin-80{margin:80px}.margin-top-80,.mt-80{margin-top:80px}.margin-right-80,.mr-80{margin-right:80px}.margin-bottom-80,.mb-80{margin-bottom:80px}.margin-left-80,.ml-80{margin-left:80px}.margin-horizontal-80,.mh-80{margin-left:80px;margin-right:80px}.margin-vertical-80,.mv-80{margin-top:80px;margin-bottom:80px}.m-85,.margin-85{margin:85px}.margin-top-85,.mt-85{margin-top:85px}.margin-right-85,.mr-85{margin-right:85px}.margin-bottom-85,.mb-85{margin-bottom:85px}.margin-left-85,.ml-85{margin-left:85px}.margin-horizontal-85,.mh-85{margin-left:85px;margin-right:85px}.margin-vertical-85,.mv-85{margin-top:85px;margin-bottom:85px}.m-90,.margin-90{margin:90px}.margin-top-90,.mt-90{margin-top:90px}.margin-right-90,.mr-90{margin-right:90px}.margin-bottom-90,.mb-90{margin-bottom:90px}.margin-left-90,.ml-90{margin-left:90px}.margin-horizontal-90,.mh-90{margin-left:90px;margin-right:90px}.margin-vertical-90,.mv-90{margin-top:90px;margin-bottom:90px}.m-95,.margin-95{margin:95px}.margin-top-95,.mt-95{margin-top:95px}.margin-right-95,.mr-95{margin-right:95px}.margin-bottom-95,.mb-95{margin-bottom:95px}.margin-left-95,.ml-95{margin-left:95px}.margin-horizontal-95,.mh-95{margin-left:95px;margin-right:95px}.margin-vertical-95,.mv-95{margin-top:95px;margin-bottom:95px}.m-100,.margin-100{margin:100px}.margin-top-100,.mt-100{margin-top:100px}.margin-right-100,.mr-100{margin-right:100px}.margin-bottom-100,.mb-100{margin-bottom:100px}.margin-left-100,.ml-100{margin-left:100px}.margin-horizontal-100,.mh-100{margin-left:100px;margin-right:100px}.margin-vertical-100,.mv-100{margin-top:100px;margin-bottom:100px}.m-8,.margin-8{margin:8px}.margin-top-8,.mt-8{margin-top:8px}.margin-right-8,.mr-8{margin-right:8px}.margin-bottom-8,.mb-8{margin-bottom:8px}.margin-left-8,.ml-8{margin-left:8px}.margin-horizontal-8,.mh-8{margin-left:8px;margin-right:8px}.margin-vertical-8,.mv-8{margin-top:8px;margin-bottom:8px}.m-16,.margin-16{margin:16px}.margin-top-16,.mt-16{margin-top:16px}.margin-right-16,.mr-16{margin-right:16px}.margin-bottom-16,.mb-16{margin-bottom:16px}.margin-left-16,.ml-16{margin-left:16px}.margin-horizontal-16,.mh-16{margin-left:16px;margin-right:16px}.margin-vertical-16,.mv-16{margin-top:16px;margin-bottom:16px}.m-24,.margin-24{margin:24px}.margin-top-24,.mt-24{margin-top:24px}.margin-right-24,.mr-24{margin-right:24px}.margin-bottom-24,.mb-24{margin-bottom:24px}.margin-left-24,.ml-24{margin-left:24px}.margin-horizontal-24,.mh-24{margin-left:24px;margin-right:24px}.margin-vertical-24,.mv-24{margin-top:24px;margin-bottom:24px}.m-32,.margin-32{margin:32px}.margin-top-32,.mt-32{margin-top:32px}.margin-right-32,.mr-32{margin-right:32px}.margin-bottom-32,.mb-32{margin-bottom:32px}.margin-left-32,.ml-32{margin-left:32px}.margin-horizontal-32,.mh-32{margin-left:32px;margin-right:32px}.margin-vertical-32,.mv-32{margin-top:32px;margin-bottom:32px}.m-48,.margin-48{margin:48px}.margin-top-48,.mt-48{margin-top:48px}.margin-right-48,.mr-48{margin-right:48px}.margin-bottom-48,.mb-48{margin-bottom:48px}.margin-left-48,.ml-48{margin-left:48px}.margin-horizontal-48,.mh-48{margin-left:48px;margin-right:48px}.margin-vertical-48,.mv-48{margin-top:48px;margin-bottom:48px}.m-56,.margin-56{margin:56px}.margin-top-56,.mt-56{margin-top:56px}.margin-right-56,.mr-56{margin-right:56px}.margin-bottom-56,.mb-56{margin-bottom:56px}.margin-left-56,.ml-56{margin-left:56px}.margin-horizontal-56,.mh-56{margin-left:56px;margin-right:56px}.margin-vertical-56,.mv-56{margin-top:56px;margin-bottom:56px}.m-64,.margin-64{margin:64px}.margin-top-64,.mt-64{margin-top:64px}.margin-right-64,.mr-64{margin-right:64px}.margin-bottom-64,.mb-64{margin-bottom:64px}.margin-left-64,.ml-64{margin-left:64px}.margin-horizontal-64,.mh-64{margin-left:64px;margin-right:64px}.margin-vertical-64,.mv-64{margin-top:64px;margin-bottom:64px}.m-72,.margin-72{margin:72px}.margin-top-72,.mt-72{margin-top:72px}.margin-right-72,.mr-72{margin-right:72px}.margin-bottom-72,.mb-72{margin-bottom:72px}.margin-left-72,.ml-72{margin-left:72px}.margin-horizontal-72,.mh-72{margin-left:72px;margin-right:72px}.margin-vertical-72,.mv-72{margin-top:72px;margin-bottom:72px}.m-88,.margin-88{margin:88px}.margin-top-88,.mt-88{margin-top:88px}.margin-right-88,.mr-88{margin-right:88px}.margin-bottom-88,.mb-88{margin-bottom:88px}.margin-left-88,.ml-88{margin-left:88px}.margin-horizontal-88,.mh-88{margin-left:88px;margin-right:88px}.margin-vertical-88,.mv-88{margin-top:88px;margin-bottom:88px}.m-96,.margin-96{margin:96px}.margin-top-96,.mt-96{margin-top:96px}.margin-right-96,.mr-96{margin-right:96px}.margin-bottom-96,.mb-96{margin-bottom:96px}.margin-left-96,.ml-96{margin-left:96px}.margin-horizontal-96,.mh-96{margin-left:96px;margin-right:96px}.margin-vertical-96,.mv-96{margin-top:96px;margin-bottom:96px}.h-0,.height-0{height:0!important;min-height:0!important;max-height:0!important}.w-0,.width-0{width:0!important;min-width:0!important;max-width:0!important}.h-5,.height-5{height:5px!important;min-height:5px!important;max-height:5px!important}.w-5,.width-5{width:5px!important;min-width:5px!important;max-width:5px!important}.h-10,.height-10{height:10px!important;min-height:10px!important;max-height:10px!important}.w-10,.width-10{width:10px!important;min-width:10px!important;max-width:10px!important}.h-15,.height-15{height:15px!important;min-height:15px!important;max-height:15px!important}.w-15,.width-15{width:15px!important;min-width:15px!important;max-width:15px!important}.h-20,.height-20{height:20px!important;min-height:20px!important;max-height:20px!important}.w-20,.width-20{width:20px!important;min-width:20px!important;max-width:20px!important}.h-25,.height-25{height:25px!important;min-height:25px!important;max-height:25px!important}.w-25,.width-25{width:25px!important;min-width:25px!important;max-width:25px!important}.h-30,.height-30{height:30px!important;min-height:30px!important;max-height:30px!important}.w-30,.width-30{width:30px!important;min-width:30px!important;max-width:30px!important}.h-35,.height-35{height:35px!important;min-height:35px!important;max-height:35px!important}.w-35,.width-35{width:35px!important;min-width:35px!important;max-width:35px!important}.h-40,.height-40{height:40px!important;min-height:40px!important;max-height:40px!important}.w-40,.width-40{width:40px!important;min-width:40px!important;max-width:40px!important}.h-45,.height-45{height:45px!important;min-height:45px!important;max-height:45px!important}.w-45,.width-45{width:45px!important;min-width:45px!important;max-width:45px!important}.h-50,.height-50{height:50px!important;min-height:50px!important;max-height:50px!important}.w-50,.width-50{width:50px!important;min-width:50px!important;max-width:50px!important}.h-55,.height-55{height:55px!important;min-height:55px!important;max-height:55px!important}.w-55,.width-55{width:55px!important;min-width:55px!important;max-width:55px!important}.h-60,.height-60{height:60px!important;min-height:60px!important;max-height:60px!important}.w-60,.width-60{width:60px!important;min-width:60px!important;max-width:60px!important}.h-65,.height-65{height:65px!important;min-height:65px!important;max-height:65px!important}.w-65,.width-65{width:65px!important;min-width:65px!important;max-width:65px!important}.h-70,.height-70{height:70px!important;min-height:70px!important;max-height:70px!important}.w-70,.width-70{width:70px!important;min-width:70px!important;max-width:70px!important}.h-75,.height-75{height:75px!important;min-height:75px!important;max-height:75px!important}.w-75,.width-75{width:75px!important;min-width:75px!important;max-width:75px!important}.h-80,.height-80{height:80px!important;min-height:80px!important;max-height:80px!important}.w-80,.width-80{width:80px!important;min-width:80px!important;max-width:80px!important}.h-85,.height-85{height:85px!important;min-height:85px!important;max-height:85px!important}.w-85,.width-85{width:85px!important;min-width:85px!important;max-width:85px!important}.h-90,.height-90{height:90px!important;min-height:90px!important;max-height:90px!important}.w-90,.width-90{width:90px!important;min-width:90px!important;max-width:90px!important}.h-95,.height-95{height:95px!important;min-height:95px!important;max-height:95px!important}.w-95,.width-95{width:95px!important;min-width:95px!important;max-width:95px!important}.h-100,.height-100{height:100px!important;min-height:100px!important;max-height:100px!important}.w-100,.width-100{width:100px!important;min-width:100px!important;max-width:100px!important}.h-105,.height-105{height:105px!important;min-height:105px!important;max-height:105px!important}.w-105,.width-105{width:105px!important;min-width:105px!important;max-width:105px!important}.h-110,.height-110{height:110px!important;min-height:110px!important;max-height:110px!important}.w-110,.width-110{width:110px!important;min-width:110px!important;max-width:110px!important}.h-115,.height-115{height:115px!important;min-height:115px!important;max-height:115px!important}.w-115,.width-115{width:115px!important;min-width:115px!important;max-width:115px!important}.h-120,.height-120{height:120px!important;min-height:120px!important;max-height:120px!important}.w-120,.width-120{width:120px!important;min-width:120px!important;max-width:120px!important}.h-125,.height-125{height:125px!important;min-height:125px!important;max-height:125px!important}.w-125,.width-125{width:125px!important;min-width:125px!important;max-width:125px!important}.h-130,.height-130{height:130px!important;min-height:130px!important;max-height:130px!important}.w-130,.width-130{width:130px!important;min-width:130px!important;max-width:130px!important}.h-135,.height-135{height:135px!important;min-height:135px!important;max-height:135px!important}.w-135,.width-135{width:135px!important;min-width:135px!important;max-width:135px!important}.h-140,.height-140{height:140px!important;min-height:140px!important;max-height:140px!important}.w-140,.width-140{width:140px!important;min-width:140px!important;max-width:140px!important}.h-145,.height-145{height:145px!important;min-height:145px!important;max-height:145px!important}.w-145,.width-145{width:145px!important;min-width:145px!important;max-width:145px!important}.h-150,.height-150{height:150px!important;min-height:150px!important;max-height:150px!important}.w-150,.width-150{width:150px!important;min-width:150px!important;max-width:150px!important}.h-155,.height-155{height:155px!important;min-height:155px!important;max-height:155px!important}.w-155,.width-155{width:155px!important;min-width:155px!important;max-width:155px!important}.h-160,.height-160{height:160px!important;min-height:160px!important;max-height:160px!important}.w-160,.width-160{width:160px!important;min-width:160px!important;max-width:160px!important}.h-165,.height-165{height:165px!important;min-height:165px!important;max-height:165px!important}.w-165,.width-165{width:165px!important;min-width:165px!important;max-width:165px!important}.h-170,.height-170{height:170px!important;min-height:170px!important;max-height:170px!important}.w-170,.width-170{width:170px!important;min-width:170px!important;max-width:170px!important}.h-175,.height-175{height:175px!important;min-height:175px!important;max-height:175px!important}.w-175,.width-175{width:175px!important;min-width:175px!important;max-width:175px!important}.h-180,.height-180{height:180px!important;min-height:180px!important;max-height:180px!important}.w-180,.width-180{width:180px!important;min-width:180px!important;max-width:180px!important}.h-185,.height-185{height:185px!important;min-height:185px!important;max-height:185px!important}.w-185,.width-185{width:185px!important;min-width:185px!important;max-width:185px!important}.h-190,.height-190{height:190px!important;min-height:190px!important;max-height:190px!important}.w-190,.width-190{width:190px!important;min-width:190px!important;max-width:190px!important}.h-195,.height-195{height:195px!important;min-height:195px!important;max-height:195px!important}.w-195,.width-195{width:195px!important;min-width:195px!important;max-width:195px!important}.h-200,.height-200{height:200px!important;min-height:200px!important;max-height:200px!important}.w-200,.width-200{width:200px!important;min-width:200px!important;max-width:200px!important}.h-205,.height-205{height:205px!important;min-height:205px!important;max-height:205px!important}.w-205,.width-205{width:205px!important;min-width:205px!important;max-width:205px!important}.h-210,.height-210{height:210px!important;min-height:210px!important;max-height:210px!important}.w-210,.width-210{width:210px!important;min-width:210px!important;max-width:210px!important}.h-215,.height-215{height:215px!important;min-height:215px!important;max-height:215px!important}.w-215,.width-215{width:215px!important;min-width:215px!important;max-width:215px!important}.h-220,.height-220{height:220px!important;min-height:220px!important;max-height:220px!important}.w-220,.width-220{width:220px!important;min-width:220px!important;max-width:220px!important}.h-225,.height-225{height:225px!important;min-height:225px!important;max-height:225px!important}.w-225,.width-225{width:225px!important;min-width:225px!important;max-width:225px!important}.h-230,.height-230{height:230px!important;min-height:230px!important;max-height:230px!important}.w-230,.width-230{width:230px!important;min-width:230px!important;max-width:230px!important}.h-235,.height-235{height:235px!important;min-height:235px!important;max-height:235px!important}.w-235,.width-235{width:235px!important;min-width:235px!important;max-width:235px!important}.h-240,.height-240{height:240px!important;min-height:240px!important;max-height:240px!important}.w-240,.width-240{width:240px!important;min-width:240px!important;max-width:240px!important}.h-245,.height-245{height:245px!important;min-height:245px!important;max-height:245px!important}.w-245,.width-245{width:245px!important;min-width:245px!important;max-width:245px!important}.h-250,.height-250{height:250px!important;min-height:250px!important;max-height:250px!important}.w-250,.width-250{width:250px!important;min-width:250px!important;max-width:250px!important}.h-255,.height-255{height:255px!important;min-height:255px!important;max-height:255px!important}.w-255,.width-255{width:255px!important;min-width:255px!important;max-width:255px!important}.h-260,.height-260{height:260px!important;min-height:260px!important;max-height:260px!important}.w-260,.width-260{width:260px!important;min-width:260px!important;max-width:260px!important}.h-265,.height-265{height:265px!important;min-height:265px!important;max-height:265px!important}.w-265,.width-265{width:265px!important;min-width:265px!important;max-width:265px!important}.h-270,.height-270{height:270px!important;min-height:270px!important;max-height:270px!important}.w-270,.width-270{width:270px!important;min-width:270px!important;max-width:270px!important}.h-275,.height-275{height:275px!important;min-height:275px!important;max-height:275px!important}.w-275,.width-275{width:275px!important;min-width:275px!important;max-width:275px!important}.h-280,.height-280{height:280px!important;min-height:280px!important;max-height:280px!important}.w-280,.width-280{width:280px!important;min-width:280px!important;max-width:280px!important}.h-285,.height-285{height:285px!important;min-height:285px!important;max-height:285px!important}.w-285,.width-285{width:285px!important;min-width:285px!important;max-width:285px!important}.h-290,.height-290{height:290px!important;min-height:290px!important;max-height:290px!important}.w-290,.width-290{width:290px!important;min-width:290px!important;max-width:290px!important}.h-295,.height-295{height:295px!important;min-height:295px!important;max-height:295px!important}.w-295,.width-295{width:295px!important;min-width:295px!important;max-width:295px!important}.h-300,.height-300{height:300px!important;min-height:300px!important;max-height:300px!important}.w-300,.width-300{width:300px!important;min-width:300px!important;max-width:300px!important}.h-305,.height-305{height:305px!important;min-height:305px!important;max-height:305px!important}.w-305,.width-305{width:305px!important;min-width:305px!important;max-width:305px!important}.h-310,.height-310{height:310px!important;min-height:310px!important;max-height:310px!important}.w-310,.width-310{width:310px!important;min-width:310px!important;max-width:310px!important}.h-315,.height-315{height:315px!important;min-height:315px!important;max-height:315px!important}.w-315,.width-315{width:315px!important;min-width:315px!important;max-width:315px!important}.h-320,.height-320{height:320px!important;min-height:320px!important;max-height:320px!important}.w-320,.width-320{width:320px!important;min-width:320px!important;max-width:320px!important}.h-325,.height-325{height:325px!important;min-height:325px!important;max-height:325px!important}.w-325,.width-325{width:325px!important;min-width:325px!important;max-width:325px!important}.h-330,.height-330{height:330px!important;min-height:330px!important;max-height:330px!important}.w-330,.width-330{width:330px!important;min-width:330px!important;max-width:330px!important}.h-335,.height-335{height:335px!important;min-height:335px!important;max-height:335px!important}.w-335,.width-335{width:335px!important;min-width:335px!important;max-width:335px!important}.h-340,.height-340{height:340px!important;min-height:340px!important;max-height:340px!important}.w-340,.width-340{width:340px!important;min-width:340px!important;max-width:340px!important}.h-345,.height-345{height:345px!important;min-height:345px!important;max-height:345px!important}.w-345,.width-345{width:345px!important;min-width:345px!important;max-width:345px!important}.h-350,.height-350{height:350px!important;min-height:350px!important;max-height:350px!important}.w-350,.width-350{width:350px!important;min-width:350px!important;max-width:350px!important}.h-355,.height-355{height:355px!important;min-height:355px!important;max-height:355px!important}.w-355,.width-355{width:355px!important;min-width:355px!important;max-width:355px!important}.h-360,.height-360{height:360px!important;min-height:360px!important;max-height:360px!important}.w-360,.width-360{width:360px!important;min-width:360px!important;max-width:360px!important}.h-365,.height-365{height:365px!important;min-height:365px!important;max-height:365px!important}.w-365,.width-365{width:365px!important;min-width:365px!important;max-width:365px!important}.h-370,.height-370{height:370px!important;min-height:370px!important;max-height:370px!important}.w-370,.width-370{width:370px!important;min-width:370px!important;max-width:370px!important}.h-375,.height-375{height:375px!important;min-height:375px!important;max-height:375px!important}.w-375,.width-375{width:375px!important;min-width:375px!important;max-width:375px!important}.h-380,.height-380{height:380px!important;min-height:380px!important;max-height:380px!important}.w-380,.width-380{width:380px!important;min-width:380px!important;max-width:380px!important}.h-385,.height-385{height:385px!important;min-height:385px!important;max-height:385px!important}.w-385,.width-385{width:385px!important;min-width:385px!important;max-width:385px!important}.h-390,.height-390{height:390px!important;min-height:390px!important;max-height:390px!important}.w-390,.width-390{width:390px!important;min-width:390px!important;max-width:390px!important}.h-395,.height-395{height:395px!important;min-height:395px!important;max-height:395px!important}.w-395,.width-395{width:395px!important;min-width:395px!important;max-width:395px!important}.h-400,.height-400{height:400px!important;min-height:400px!important;max-height:400px!important}.w-400,.width-400{width:400px!important;min-width:400px!important;max-width:400px!important}.h-405,.height-405{height:405px!important;min-height:405px!important;max-height:405px!important}.w-405,.width-405{width:405px!important;min-width:405px!important;max-width:405px!important}.h-410,.height-410{height:410px!important;min-height:410px!important;max-height:410px!important}.w-410,.width-410{width:410px!important;min-width:410px!important;max-width:410px!important}.h-415,.height-415{height:415px!important;min-height:415px!important;max-height:415px!important}.w-415,.width-415{width:415px!important;min-width:415px!important;max-width:415px!important}.h-420,.height-420{height:420px!important;min-height:420px!important;max-height:420px!important}.w-420,.width-420{width:420px!important;min-width:420px!important;max-width:420px!important}.h-425,.height-425{height:425px!important;min-height:425px!important;max-height:425px!important}.w-425,.width-425{width:425px!important;min-width:425px!important;max-width:425px!important}.h-430,.height-430{height:430px!important;min-height:430px!important;max-height:430px!important}.w-430,.width-430{width:430px!important;min-width:430px!important;max-width:430px!important}.h-435,.height-435{height:435px!important;min-height:435px!important;max-height:435px!important}.w-435,.width-435{width:435px!important;min-width:435px!important;max-width:435px!important}.h-440,.height-440{height:440px!important;min-height:440px!important;max-height:440px!important}.w-440,.width-440{width:440px!important;min-width:440px!important;max-width:440px!important}.h-445,.height-445{height:445px!important;min-height:445px!important;max-height:445px!important}.w-445,.width-445{width:445px!important;min-width:445px!important;max-width:445px!important}.h-450,.height-450{height:450px!important;min-height:450px!important;max-height:450px!important}.w-450,.width-450{width:450px!important;min-width:450px!important;max-width:450px!important}.h-455,.height-455{height:455px!important;min-height:455px!important;max-height:455px!important}.w-455,.width-455{width:455px!important;min-width:455px!important;max-width:455px!important}.h-460,.height-460{height:460px!important;min-height:460px!important;max-height:460px!important}.w-460,.width-460{width:460px!important;min-width:460px!important;max-width:460px!important}.h-465,.height-465{height:465px!important;min-height:465px!important;max-height:465px!important}.w-465,.width-465{width:465px!important;min-width:465px!important;max-width:465px!important}.h-470,.height-470{height:470px!important;min-height:470px!important;max-height:470px!important}.w-470,.width-470{width:470px!important;min-width:470px!important;max-width:470px!important}.h-475,.height-475{height:475px!important;min-height:475px!important;max-height:475px!important}.w-475,.width-475{width:475px!important;min-width:475px!important;max-width:475px!important}.h-480,.height-480{height:480px!important;min-height:480px!important;max-height:480px!important}.w-480,.width-480{width:480px!important;min-width:480px!important;max-width:480px!important}.h-485,.height-485{height:485px!important;min-height:485px!important;max-height:485px!important}.w-485,.width-485{width:485px!important;min-width:485px!important;max-width:485px!important}.h-490,.height-490{height:490px!important;min-height:490px!important;max-height:490px!important}.w-490,.width-490{width:490px!important;min-width:490px!important;max-width:490px!important}.h-495,.height-495{height:495px!important;min-height:495px!important;max-height:495px!important}.w-495,.width-495{width:495px!important;min-width:495px!important;max-width:495px!important}.h-500,.height-500{height:500px!important;min-height:500px!important;max-height:500px!important}.w-500,.width-500{width:500px!important;min-width:500px!important;max-width:500px!important}.h-8,.height-8{height:8px!important;min-height:8px!important;max-height:8px!important}.w-8,.width-8{width:8px!important;min-width:8px!important;max-width:8px!important}.h-16,.height-16{height:16px!important;min-height:16px!important;max-height:16px!important}.w-16,.width-16{width:16px!important;min-width:16px!important;max-width:16px!important}.h-24,.height-24{height:24px!important;min-height:24px!important;max-height:24px!important}.w-24,.width-24{width:24px!important;min-width:24px!important;max-width:24px!important}.h-32,.height-32{height:32px!important;min-height:32px!important;max-height:32px!important}.w-32,.width-32{width:32px!important;min-width:32px!important;max-width:32px!important}.h-48,.height-48{height:48px!important;min-height:48px!important;max-height:48px!important}.w-48,.width-48{width:48px!important;min-width:48px!important;max-width:48px!important}.h-56,.height-56{height:56px!important;min-height:56px!important;max-height:56px!important}.w-56,.width-56{width:56px!important;min-width:56px!important;max-width:56px!important}.h-64,.height-64{height:64px!important;min-height:64px!important;max-height:64px!important}.w-64,.width-64{width:64px!important;min-width:64px!important;max-width:64px!important}.h-72,.height-72{height:72px!important;min-height:72px!important;max-height:72px!important}.w-72,.width-72{width:72px!important;min-width:72px!important;max-width:72px!important}.h-88,.height-88{height:88px!important;min-height:88px!important;max-height:88px!important}.w-88,.width-88{width:88px!important;min-width:88px!important;max-width:88px!important}.h-96,.height-96{height:96px!important;min-height:96px!important;max-height:96px!important}.w-96,.width-96{width:96px!important;min-width:96px!important;max-width:96px!important}.h-104,.height-104{height:104px!important;min-height:104px!important;max-height:104px!important}.w-104,.width-104{width:104px!important;min-width:104px!important;max-width:104px!important}.h-112,.height-112{height:112px!important;min-height:112px!important;max-height:112px!important}.w-112,.width-112{width:112px!important;min-width:112px!important;max-width:112px!important}.h-128,.height-128{height:128px!important;min-height:128px!important;max-height:128px!important}.w-128,.width-128{width:128px!important;min-width:128px!important;max-width:128px!important}.h-136,.height-136{height:136px!important;min-height:136px!important;max-height:136px!important}.w-136,.width-136{width:136px!important;min-width:136px!important;max-width:136px!important}.h-144,.height-144{height:144px!important;min-height:144px!important;max-height:144px!important}.w-144,.width-144{width:144px!important;min-width:144px!important;max-width:144px!important}.h-152,.height-152{height:152px!important;min-height:152px!important;max-height:152px!important}.w-152,.width-152{width:152px!important;min-width:152px!important;max-width:152px!important}.h-168,.height-168{height:168px!important;min-height:168px!important;max-height:168px!important}.w-168,.width-168{width:168px!important;min-width:168px!important;max-width:168px!important}.h-176,.height-176{height:176px!important;min-height:176px!important;max-height:176px!important}.w-176,.width-176{width:176px!important;min-width:176px!important;max-width:176px!important}.h-184,.height-184{height:184px!important;min-height:184px!important;max-height:184px!important}.w-184,.width-184{width:184px!important;min-width:184px!important;max-width:184px!important}.h-192,.height-192{height:192px!important;min-height:192px!important;max-height:192px!important}.w-192,.width-192{width:192px!important;min-width:192px!important;max-width:192px!important}.h-208,.height-208{height:208px!important;min-height:208px!important;max-height:208px!important}.w-208,.width-208{width:208px!important;min-width:208px!important;max-width:208px!important}.h-216,.height-216{height:216px!important;min-height:216px!important;max-height:216px!important}.w-216,.width-216{width:216px!important;min-width:216px!important;max-width:216px!important}.h-224,.height-224{height:224px!important;min-height:224px!important;max-height:224px!important}.w-224,.width-224{width:224px!important;min-width:224px!important;max-width:224px!important}.h-232,.height-232{height:232px!important;min-height:232px!important;max-height:232px!important}.w-232,.width-232{width:232px!important;min-width:232px!important;max-width:232px!important}.h-248,.height-248{height:248px!important;min-height:248px!important;max-height:248px!important}.w-248,.width-248{width:248px!important;min-width:248px!important;max-width:248px!important}.h-256,.height-256{height:256px!important;min-height:256px!important;max-height:256px!important}.w-256,.width-256{width:256px!important;min-width:256px!important;max-width:256px!important}.h-264,.height-264{height:264px!important;min-height:264px!important;max-height:264px!important}.w-264,.width-264{width:264px!important;min-width:264px!important;max-width:264px!important}.h-272,.height-272{height:272px!important;min-height:272px!important;max-height:272px!important}.w-272,.width-272{width:272px!important;min-width:272px!important;max-width:272px!important}.h-288,.height-288{height:288px!important;min-height:288px!important;max-height:288px!important}.w-288,.width-288{width:288px!important;min-width:288px!important;max-width:288px!important}.h-296,.height-296{height:296px!important;min-height:296px!important;max-height:296px!important}.w-296,.width-296{width:296px!important;min-width:296px!important;max-width:296px!important}.h-304,.height-304{height:304px!important;min-height:304px!important;max-height:304px!important}.w-304,.width-304{width:304px!important;min-width:304px!important;max-width:304px!important}.h-312,.height-312{height:312px!important;min-height:312px!important;max-height:312px!important}.w-312,.width-312{width:312px!important;min-width:312px!important;max-width:312px!important}.h-328,.height-328{height:328px!important;min-height:328px!important;max-height:328px!important}.w-328,.width-328{width:328px!important;min-width:328px!important;max-width:328px!important}.h-336,.height-336{height:336px!important;min-height:336px!important;max-height:336px!important}.w-336,.width-336{width:336px!important;min-width:336px!important;max-width:336px!important}.h-344,.height-344{height:344px!important;min-height:344px!important;max-height:344px!important}.w-344,.width-344{width:344px!important;min-width:344px!important;max-width:344px!important}.h-352,.height-352{height:352px!important;min-height:352px!important;max-height:352px!important}.w-352,.width-352{width:352px!important;min-width:352px!important;max-width:352px!important}.h-368,.height-368{height:368px!important;min-height:368px!important;max-height:368px!important}.w-368,.width-368{width:368px!important;min-width:368px!important;max-width:368px!important}.h-376,.height-376{height:376px!important;min-height:376px!important;max-height:376px!important}.w-376,.width-376{width:376px!important;min-width:376px!important;max-width:376px!important}.h-384,.height-384{height:384px!important;min-height:384px!important;max-height:384px!important}.w-384,.width-384{width:384px!important;min-width:384px!important;max-width:384px!important}.h-392,.height-392{height:392px!important;min-height:392px!important;max-height:392px!important}.w-392,.width-392{width:392px!important;min-width:392px!important;max-width:392px!important}.h-408,.height-408{height:408px!important;min-height:408px!important;max-height:408px!important}.w-408,.width-408{width:408px!important;min-width:408px!important;max-width:408px!important}.h-416,.height-416{height:416px!important;min-height:416px!important;max-height:416px!important}.w-416,.width-416{width:416px!important;min-width:416px!important;max-width:416px!important}.h-424,.height-424{height:424px!important;min-height:424px!important;max-height:424px!important}.w-424,.width-424{width:424px!important;min-width:424px!important;max-width:424px!important}.h-432,.height-432{height:432px!important;min-height:432px!important;max-height:432px!important}.w-432,.width-432{width:432px!important;min-width:432px!important;max-width:432px!important}.h-448,.height-448{height:448px!important;min-height:448px!important;max-height:448px!important}.w-448,.width-448{width:448px!important;min-width:448px!important;max-width:448px!important}.h-456,.height-456{height:456px!important;min-height:456px!important;max-height:456px!important}.w-456,.width-456{width:456px!important;min-width:456px!important;max-width:456px!important}.h-464,.height-464{height:464px!important;min-height:464px!important;max-height:464px!important}.w-464,.width-464{width:464px!important;min-width:464px!important;max-width:464px!important}.h-472,.height-472{height:472px!important;min-height:472px!important;max-height:472px!important}.w-472,.width-472{width:472px!important;min-width:472px!important;max-width:472px!important}.h-488,.height-488{height:488px!important;min-height:488px!important;max-height:488px!important}.w-488,.width-488{width:488px!important;min-width:488px!important;max-width:488px!important}.h-496,.height-496{height:496px!important;min-height:496px!important;max-height:496px!important}.w-496,.width-496{width:496px!important;min-width:496px!important;max-width:496px!important}.h-504,.height-504{height:504px!important;min-height:504px!important;max-height:504px!important}.w-504,.width-504{width:504px!important;min-width:504px!important;max-width:504px!important}.h-512,.height-512{height:512px!important;min-height:512px!important;max-height:512px!important}.w-512,.width-512{width:512px!important;min-width:512px!important;max-width:512px!important}.h-528,.height-528{height:528px!important;min-height:528px!important;max-height:528px!important}.w-528,.width-528{width:528px!important;min-width:528px!important;max-width:528px!important}.h-536,.height-536{height:536px!important;min-height:536px!important;max-height:536px!important}.w-536,.width-536{width:536px!important;min-width:536px!important;max-width:536px!important}.h-544,.height-544{height:544px!important;min-height:544px!important;max-height:544px!important}.w-544,.width-544{width:544px!important;min-width:544px!important;max-width:544px!important}.h-552,.height-552{height:552px!important;min-height:552px!important;max-height:552px!important}.w-552,.width-552{width:552px!important;min-width:552px!important;max-width:552px!important}.h-568,.height-568{height:568px!important;min-height:568px!important;max-height:568px!important}.w-568,.width-568{width:568px!important;min-width:568px!important;max-width:568px!important}.h-576,.height-576{height:576px!important;min-height:576px!important;max-height:576px!important}.w-576,.width-576{width:576px!important;min-width:576px!important;max-width:576px!important}.h-584,.height-584{height:584px!important;min-height:584px!important;max-height:584px!important}.w-584,.width-584{width:584px!important;min-width:584px!important;max-width:584px!important}.h-592,.height-592{height:592px!important;min-height:592px!important;max-height:592px!important}.w-592,.width-592{width:592px!important;min-width:592px!important;max-width:592px!important}.h-608,.height-608{height:608px!important;min-height:608px!important;max-height:608px!important}.w-608,.width-608{width:608px!important;min-width:608px!important;max-width:608px!important}.h-616,.height-616{height:616px!important;min-height:616px!important;max-height:616px!important}.w-616,.width-616{width:616px!important;min-width:616px!important;max-width:616px!important}.h-624,.height-624{height:624px!important;min-height:624px!important;max-height:624px!important}.w-624,.width-624{width:624px!important;min-width:624px!important;max-width:624px!important}.h-632,.height-632{height:632px!important;min-height:632px!important;max-height:632px!important}.w-632,.width-632{width:632px!important;min-width:632px!important;max-width:632px!important}.h-648,.height-648{height:648px!important;min-height:648px!important;max-height:648px!important}.w-648,.width-648{width:648px!important;min-width:648px!important;max-width:648px!important}.h-656,.height-656{height:656px!important;min-height:656px!important;max-height:656px!important}.w-656,.width-656{width:656px!important;min-width:656px!important;max-width:656px!important}.h-664,.height-664{height:664px!important;min-height:664px!important;max-height:664px!important}.w-664,.width-664{width:664px!important;min-width:664px!important;max-width:664px!important}.h-672,.height-672{height:672px!important;min-height:672px!important;max-height:672px!important}.w-672,.width-672{width:672px!important;min-width:672px!important;max-width:672px!important}.h-688,.height-688{height:688px!important;min-height:688px!important;max-height:688px!important}.w-688,.width-688{width:688px!important;min-width:688px!important;max-width:688px!important}.h-696,.height-696{height:696px!important;min-height:696px!important;max-height:696px!important}.w-696,.width-696{width:696px!important;min-width:696px!important;max-width:696px!important}.h-704,.height-704{height:704px!important;min-height:704px!important;max-height:704px!important}.w-704,.width-704{width:704px!important;min-width:704px!important;max-width:704px!important}.h-712,.height-712{height:712px!important;min-height:712px!important;max-height:712px!important}.w-712,.width-712{width:712px!important;min-width:712px!important;max-width:712px!important}.h-728,.height-728{height:728px!important;min-height:728px!important;max-height:728px!important}.w-728,.width-728{width:728px!important;min-width:728px!important;max-width:728px!important}.h-736,.height-736{height:736px!important;min-height:736px!important;max-height:736px!important}.w-736,.width-736{width:736px!important;min-width:736px!important;max-width:736px!important}.h-744,.height-744{height:744px!important;min-height:744px!important;max-height:744px!important}.w-744,.width-744{width:744px!important;min-width:744px!important;max-width:744px!important}.h-752,.height-752{height:752px!important;min-height:752px!important;max-height:752px!important}.w-752,.width-752{width:752px!important;min-width:752px!important;max-width:752px!important}.h-768,.height-768{height:768px!important;min-height:768px!important;max-height:768px!important}.w-768,.width-768{width:768px!important;min-width:768px!important;max-width:768px!important}.h-776,.height-776{height:776px!important;min-height:776px!important;max-height:776px!important}.w-776,.width-776{width:776px!important;min-width:776px!important;max-width:776px!important}.h-784,.height-784{height:784px!important;min-height:784px!important;max-height:784px!important}.w-784,.width-784{width:784px!important;min-width:784px!important;max-width:784px!important}.h-792,.height-792{height:792px!important;min-height:792px!important;max-height:792px!important}.w-792,.width-792{width:792px!important;min-width:792px!important;max-width:792px!important}.b,.border{border:1px solid rgba(0,0,0,.12)}.border-top,.bt{border-top:1px solid rgba(0,0,0,.12)}.border-right,.br{border-right:1px solid rgba(0,0,0,.12)}.bb,.border-bottom{border-bottom:1px solid rgba(0,0,0,.12)}.bl,.border-left{border-left:1px solid rgba(0,0,0,.12)}.bh,.border-horizontal{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}.border-vertical,.bv{border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.brad-1{border-radius:1px}.brad-2{border-radius:2px}.brad-3{border-radius:3px}.brad-4{border-radius:4px}.brad-5{border-radius:5px}.brad-6{border-radius:6px}.brad-7{border-radius:7px}.brad-8{border-radius:8px}.brad-9{border-radius:9px}.brad-10{border-radius:10px}.brad-11{border-radius:11px}.brad-12{border-radius:12px}@media all{.page-break{display:none}}@media print{.page-break{display:block;break-after:always;page-break-after:always}#main #vertical-navigation{display:none}#main #toolbar{display:none}#main #quick-panel{display:none}#main #content{position:relative!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:0 0!important}ms-theme-options{display:none}.ps-scrollbar-x-rail,.ps-scrollbar-y-rail{display:none!important}.printable{overflow:visible!important}.printable .template-layout{display:inline!important}}.advanced-search-container{border-bottom:1px rgba(0,0,0,.12) solid}.advanced-search-conditions{border-bottom:1px rgba(0,0,0,.12) solid;padding:4px 0}.advanced-search-conditions .errors{font-size:12px;color:#dd2c00;margin-top:10px}.advanced-search-conditions .advanced-search-chips md-chips-wrap{box-shadow:none}.advanced-search-conditions .advanced-search-chips md-chip{position:relative}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-content md-chip-template span p.filter-text{display:inline-block;margin:0}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container{position:absolute;right:4px;top:4px;margin-right:0;height:24px}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter{position:relative;height:24px;width:24px;line-height:30px;text-align:center;border-radius:50%;border:none;box-shadow:none;padding:0;margin:0;transition:background .15s linear;display:block}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);color:#616161}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:focus,.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:hover{color:rgba(255,0,0,.8)}.advanced-search-conditions .advanced-search-chips md-chips-wrap.md-removable md-chip md-chip-template{padding-right:5px}.advanced-search-bar{padding:10px 0}.advanced-search-bar md-input-container.no-errors{font-size:12px;transition:0s none;-webkit-transition:0s none;animation:0s none;-webkit-animation:0s none}.advanced-search-bar md-input-container.no-errors input{font-family:Arial Unicode MS,Arial,Helvetica}.advanced-search-bar md-input-container.no-errors .md-errors-spacer{min-height:0}md-option div div.operators-list{display:table}md-option div div.operators-list span{display:table-cell}md-option div div.operators-list span.operator-symbol{display:table-cell;font-size:14px;width:30px}.advanced-search-bar mdp-date-picker button{margin:0!important}.advanced-search-bar mdp-date-picker md-input-container{flex:1;margin:0}.advanced-search-bar mdp-date-picker md-input-container label{font-size:12px}.advanced-search-bar mdp-date-picker md-input-container .md-errors-spacer{min-height:0}.advanced-search-bar div md-date-range{font-size:12px;margin-left:10px}.advanced-search-bar div.autocomplete-input md-icon{margin:8px 8px 8px 0}.advanced-search-bar div.autocomplete-input md-autocomplete{font-size:12px!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap{height:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container{margin:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container input[type=search]{padding:0!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container div.md-errors-spacer{min-height:0}md-toolbar.advanced-search-dialog-header{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}.md-autocomplete-suggestions-container li .highlight,.md-autocomplete-suggestions-container.md-default-theme li .highlight{color:#ca1d1d;font-weight:700}.chip-disabled{opacity:.4}.ms-card{display:flex;flex-direction:row;padding:8px}.ms-card .ms-card-content-wrapper{position:relative;overflow:hidden;width:100%;max-width:400px;border-radius:2px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}.ms-card .template-1 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-10 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-2 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-2 .media .image{width:100%}.ms-card .template-4 .info{position:absolute;right:0;bottom:0;left:0;z-index:2;background:rgba(0,0,0,.54)}.ms-card .template-4 .media{z-index:1}.ms-card .template-4 .media .image{width:100%}.ms-card .template-5 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-5 .info,.ms-card .template-5 .media{-ms-flex:0 1 auto}.ms-card .template-8 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-9 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-9 .media .image{width:100%}md-list-item .md-list-item-text p.ms-dual-multiselect-line-xs{font-size:10px!important;padding-top:5px}md-list-item md-icon.hidden{visibility:hidden}md-icon.add-disabled{cursor:default!important;opacity:.4}md-list-item.read-only-mode{cursor:none!important}.ms-form-wizard{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item{opacity:1!important;padding:24px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:before{content:'';display:block;position:absolute;top:50%;left:0;right:50%;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:after{content:'';display:block;position:absolute;top:50%;left:50%;right:0;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:first-of-type:before{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:last-of-type:after{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item.md-disabled .ms-form-wizard-step-label .ms-form-wizard-step-number{background:rgba(0,0,0,.12)!important}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item .md-ripple-container{z-index:11}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-ink-bar{display:none!important}.ms-form-wizard .ms-form-wizard-step-label{display:inline-block;position:relative;background:#fff;z-index:10;padding:0 16px;line-height:24px}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number{display:inline-block;vertical-align:middle;width:24px;height:24px;line-height:24px;font-size:14px;margin-right:12px;border-radius:50%;color:#fff!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number i{line-height:24px!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-text{display:inline-block;vertical-align:middle;position:relative;line-height:24px}.ms-form-wizard .ms-form-wizard-form{padding:24px 16px}.ms-form-wizard .navigation{padding:16px}.ms-form-wizard .navigation .steps{display:flex;align-items:center;justify-content:center;padding:0 16px}.ms-form-wizard .navigation .steps span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-form-wizard .navigation .steps span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-form-wizard .navigation .steps span.selected{width:8px;height:8px}ms-info-bar{display:block;position:relative;width:100%;height:44px;background-color:#e91e63;z-index:99998;box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}ms-info-bar #ms-info-bar-message{padding:8px 16px;line-height:28px;font-size:14px}ms-info-bar #ms-info-bar-message a{overflow:hidden;height:48px;color:#fff}ms-masonry{width:100%;display:block}ms-masonry [ms-masonry-item],ms-masonry ms-masonry-item{transition:transform .3s ease;position:absolute;transform:translate3d(50vw,100vh,0)}ms-material-color-picker md-menu .md-button{font-size:12px}md-menu-content.ms-material-color-picker-menu-content{width:208px;max-width:208px;min-width:208px;padding:0;overflow:hidden}md-menu-content.ms-material-color-picker-menu-content header{height:48px;text-transform:uppercase}md-menu-content.ms-material-color-picker-menu-content header .md-button{display:flex;margin:0}md-menu-content.ms-material-color-picker-menu-content header>span{line-height:13px}md-menu-content.ms-material-color-picker-menu-content .colors{position:relative;width:208px;min-height:258px;height:258px;padding:4px}md-menu-content.ms-material-color-picker-menu-content .colors .color{position:relative;width:46px;height:46px;margin:2px;border-radius:0;cursor:pointer}md-menu-content.ms-material-color-picker-menu-content .colors .color .label{padding:2px;font-size:10px}md-menu-content.ms-material-color-picker-menu-content .colors .color .icon-check{position:absolute;top:2px;right:2px;font-size:16px;opacity:.7}ms-nav{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none;z-index:70}ms-nav ms-nav-item{display:block;position:relative;line-height:48px}ms-nav ms-nav-item.ms-nav-title{line-height:32px;font-size:12px;font-weight:500;margin-top:8px;padding:0 24px;width:100%;color:rgba(255,255,255,.3);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ms-nav ms-nav-item .ms-nav-button{display:flex;align-self:flex-start;align-items:center;position:relative;cursor:pointer;padding:0 48px 0 24px;color:rgba(255,255,255,.7);text-decoration:none}ms-nav ms-nav-item .ms-nav-button:not(.active):hover{background:rgba(0,0,0,.1);text-decoration:none}ms-nav ms-nav-item .ms-nav-button .ms-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .arrow{position:absolute;top:16px;right:24px;margin:0;transition:transform .3s ease-in-out,opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .ms-nav-badge{position:absolute;top:50%;right:24px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button.active{color:#fff!important}ms-nav ms-nav-item .ms-nav-button.active .ms-nav-badge{background:#fff!important;color:rgba(0,0,0,.87)!important}ms-nav ms-nav-item .ms-nav-button.active i{color:#fff}ms-nav ms-nav-item i{color:rgba(255,255,255,.7);margin:0 16px 0 0}ms-nav .ms-nav-toggle ms-nav-toggle-items{display:none;overflow:hidden}ms-nav .ms-nav-toggle ms-nav-toggle-items.expand-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items.collapse-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:58px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:68px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:78px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:88px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:98px}ms-nav .ms-nav-toggle.active>.ms-nav-button{color:#fff}ms-nav .ms-nav-toggle.active>.ms-nav-button a,ms-nav .ms-nav-toggle.active>.ms-nav-button md-icon{color:#fff}ms-nav .ms-nav-toggle[collapsed=false]>.ms-nav-button>.arrow{transform:rotate(90deg)}ms-nav>.ms-nav-toggle[collapsed=false]{background-color:rgba(0,0,0,.12)}@media only screen and (min-width:1280px){.ms-nav-folded #ms-nav-fold-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;z-index:998}.ms-nav-folded #ms-nav-fold-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title{height:32px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title:before{content:'';display:block;position:relative;top:12px;width:16px;border-top:1px solid rgba(255,255,255,.12)}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title span{display:none}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button{height:48px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.arrow,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-badge,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-label{opacity:0;visibility:hidden}}.ms-navigation{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none}.ms-navigation li,.ms-navigation ul{padding:0;margin:0}.ms-navigation ul{display:block;overflow:hidden}.ms-navigation ul li{position:relative}.ms-navigation ul li.collapsed ul{display:none}.ms-navigation .animate-height{transition:height .25s cubic-bezier(.25,.46,.45,.94)}.ms-navigation .ms-navigation-node .ms-navigation-item{display:block;position:relative;cursor:pointer;color:rgba(255,255,255,.7)}.ms-navigation .ms-navigation-node .ms-navigation-item:hover{background:rgba(0,0,0,.1)}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button{display:flex;position:relative;width:100%;height:48px;line-height:48px;flex-direction:row;justify-content:flex-start;align-items:center;padding-right:16px;color:rgba(255,255,255,.7);text-decoration:none;white-space:nowrap;overflow:hidden}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{color:rgba(255,255,255,.7);margin:0 16px 0 0}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button span{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button a{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .arrow{margin:0;opacity:1;transition:transform .3s ease-in-out,opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .badge{position:absolute;top:50%;right:16px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .icon{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}.ms-navigation .ms-navigation-node:not(.collapsed)>.ms-navigation-item>.ms-navigation-button .arrow{transform:rotate(90deg)}.ms-navigation .ms-navigation-node.group>.ms-navigation-item{font-size:12px;font-weight:500;margin-top:8px;cursor:auto;background:0 0!important;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-navigation .ms-navigation-node.group>.ms-navigation-item>.ms-navigation-button{height:32px;line-height:32px;color:rgba(255,255,255,.3)}.ms-navigation .ms-navigation-node:not(.group).has-children:not(.collapsed){background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children.collapsing{background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children .has-children:not(.collapsed){background:0 0}.ms-navigation li .ms-navigation-button{padding-left:24px}.ms-navigation li li .ms-navigation-button{padding-left:56px}.ms-navigation li li li .ms-navigation-button{padding-left:72px}.ms-navigation li li li li .ms-navigation-button{padding-left:88px}.ms-navigation li li li li li .ms-navigation-button{padding-left:104px}.ms-navigation li.group .ms-navigation-button{padding-left:24px}.ms-navigation li.group li .ms-navigation-button{padding-left:24px}.ms-navigation li.group li li .ms-navigation-button{padding-left:56px}.ms-navigation li.group li li li .ms-navigation-button{padding-left:72px}.ms-navigation li.group li li li li .ms-navigation-button{padding-left:88px}#horizontal-navigation{height:64px;min-height:64px;max-height:64px;background:#fff;z-index:54}#horizontal-navigation .ms-navigation-horizontal{display:flex;position:relative;user-select:none}#horizontal-navigation .ms-navigation-horizontal li,#horizontal-navigation .ms-navigation-horizontal ul{padding:0;margin:0;list-style:none}#horizontal-navigation .ms-navigation-horizontal .horizontal{display:flex;flex:1}#horizontal-navigation .ms-navigation-horizontal .horizontal li{position:relative;cursor:pointer}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:block;float:left;padding:12px 14px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button.active{background:0 0;border-bottom:2px solid}#horizontal-navigation .ms-navigation-horizontal .horizontal>li:last-child{margin-right:0}#horizontal-navigation .ms-navigation-horizontal .horizontal>li li .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active{color:#fff!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{display:none;position:absolute;background:#fff;z-index:999;min-width:200px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);top:0;left:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal>.has-children>ul{top:100%;left:0}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button{display:flex;align-items:center;width:100%;color:rgba(0,0,0,.87);white-space:nowrap;padding:14px 16px;text-decoration:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .icon{color:rgba(0,0,0,.54);margin-right:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .arrow{margin-left:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .icon{color:#fff}@media only screen and (min-width:960px){body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .animate-height{transition:none}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .icon{margin:0}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .arrow,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .badge,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .title{opacity:0;visibility:hidden}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node.group>.ms-navigation-item .ms-navigation-button:before{content:'';display:block;position:relative;width:16px;border-top:1px solid rgba(255,255,255,.12)}body.ms-navigation-folded:not(.ms-navigation-folded-open) #ms-navigation-fold-expander{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}body.ms-navigation-folded #ms-navigation-fold-collapser{position:absolute;top:0;right:0;bottom:0;left:0;z-index:59}}@media only screen and (max-width:960px){body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle{height:64px;margin-right:16px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle .md-button{margin:0;width:64px;height:64px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .ms-navigation-horizontal{display:block!important;background:#fff}#horizontal-navigation{z-index:60}#horizontal-navigation .ms-navigation-horizontal{position:absolute;display:none;top:0;right:0;bottom:0;left:0;padding:0 0 16px 0;z-index:9998;overflow-x:hidden;overflow-y:scroll}#horizontal-navigation .ms-navigation-horizontal .horizontal{flex-direction:column;min-height:100%;width:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:0 0}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item{margin:4px}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item:hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li{padding:0 12px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:flex;float:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{position:relative;top:0;left:0;box-shadow:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded>.ms-navigation-horizontal-button .arrow{transform:rotate(90deg)}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded+ul{display:block;margin-left:16px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item{min-height:48px;height:48px}}md-dialog.md-phonebar-dialog{max-width:720px;width:720px}md-dialog.md-phonebar-dialog md-dialog-content{display:block;position:relative;height:500px}md-dialog.md-phonebar-dialog md-toolbar .title{font-size:17px}md-dialog.md-phonebar-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.md-phonebar-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.md-phonebar-dialog md-tabs{position:static}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}.ms-phonebar{height:64px;font-size:13px}.ms-phonebar .phonebar-container{height:64px;padding:0}.ms-phonebar .phonebar-container .quantity-indicator{display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:4px;margin-right:5px;margin-left:5px}.ms-phonebar .phonebar-container .sessions{overflow-x:auto}.ms-phonebar .phonebar-container .session{border-radius:3px;border:1px solid #dcdcdc;margin-left:3px;cursor:pointer}.ms-phonebar .phonebar-container .session-info{padding-left:3px;padding-right:3px;color:grey}.ms-phonebar .phonebar-container .session-button{border:1px solid grey;margin:3px}.ms-phonebar .phonebar-container .button-bar{border:1px solid grey}.ms-phonebar .phonebar-container .num-pad{position:fixed;border-radius:3px;border:1px solid #9e9e9e;top:80px;left:80px}.ms-phonebar .phonebar-container .num-pad-logo{height:40px;width:42px}.ms-phonebar .phonebar-container p{margin:0;padding:0 0 10px 0;line-height:10px;font-size:10px}.ms-phonebar .phonebar-container .span4{width:50px;float:left;margin:8px}.ms-phonebar .phonebar-container .num{border:1px solid #9e9e9e;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:50px;background-color:#fff;color:#333;cursor:pointer}.ms-phonebar .phonebar-container .num:hover{background-color:#9e9e9e;color:#fff;transition-property:background-color .2s linear 0s;-moz-transition:background-color .2s linear 0s;-webkit-transition:background-color .2s linear 0s;-o-transition:background-color .2s linear 0s}.ms-phonebar .phonebar-container .txt{font-size:20px;text-align:center;margin-top:3px;font-family:Lato,sans-serif;color:#333}.ms-phonebar .phonebar-container .small{font-size:15px}.ms-phonebar .phonebar-container .angucomplete-dropdown{top:45px;overflow-y:auto;max-height:200px}.ms-phonebar .phonebar-container .highlight{color:red}.ms-phonebar .phonebar-container .input-number{margin-left:5px;padding:8px;border:1px solid #ccc;border-radius:3px;box-sizing:border-box}.ms-phonebar .phonebar-container .phonebar{position:relative}.ms-phonebar .phonebar-container .phonebar>div{height:64px;min-width:44px}.ms-phonebar .phonebar-container .phonebar>div.dragging{cursor:grabbing}.ms-phonebar .phonebar-container .phonebar>div.dragging .md-ripple-container{display:none}.ms-phonebar .phonebar-container .phonebar>div.ghost .shortcut{opacity:.27}.ms-phonebar .phonebar-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-phonebar .phonebar-container.mobile-bar-active .phonebar,.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-phonebar .phonebar-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}.quick-filter-container md-select .md-select-value.md-select-placeholder{color:inherit}.quick-filter-container md-select[multiple] md-select-value>:first-child{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ms-responsive-table-wrapper{overflow-x:auto;overflow-y:hidden}.ms-scroll{overflow:hidden!important}.ms-search-bar{height:64px;font-size:13px}.ms-search-bar .ms-search-bar-collapser,.ms-search-bar .ms-search-bar-expander{cursor:pointer;padding:0 20px;margin:0;width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-loader{width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-button-expanded{pointer-events:none}.ms-search-bar .ms-search-bar-collapser{display:none}.ms-search-bar input{background-color:transparent;font-size:16px}.ms-search-bar .ms-search-bar-results{position:absolute;top:64px;left:0;right:0;overflow-x:hidden;overflow-y:scroll;background:#fff;max-height:300px;box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.ms-search-bar .ms-search-bar-results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}.ms-search-bar .ms-search-bar-results .result{position:relative;height:56px;min-height:56px;max-height:56px;padding:16px;cursor:pointer}.ms-search-bar .ms-search-bar-results .result.selected{background:rgba(0,0,0,.07)}.ms-search-bar .ms-search-bar-results .result .icon-container{min-width:32px;margin-right:8px}.ms-search-bar .ms-search-bar-results .result .icon-container .square{width:6px;height:6px}.ms-search-bar .ms-search-bar-results .result .title{font-size:16px}.ms-search-bar .ms-search-bar-results .result .description{padding-top:6px;font-size:14px}.ms-search-bar.expanded{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:10}.ms-search-bar.expanded #ms-search-bar-input{display:block}.ms-search-bar.expanded .ms-search-bar-collapser{display:block}.ms-search-bar.down{top:64px;border-bottom:1px rgba(0,0,0,.12) solid}.ms-search-bar[disabled] input{pointer-events:none}body.ms-search-bar-expanded #toolbar{z-index:999!important}@media screen and (max-width:960px){.ms-search-bar-label{padding:0 8px 0 12px}}.ms-shortcuts{height:64px;font-size:13px}.ms-shortcuts .shortcuts-container{height:64px;padding:0 8px;max-width:400px}.ms-shortcuts .shortcuts-container .shortcuts{position:relative;overflow-x:scroll}.ms-shortcuts .shortcuts-container .shortcuts>div{height:64px;min-width:44px}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging{cursor:grabbing}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging .md-ripple-container{display:none}.ms-shortcuts .shortcuts-container .shortcuts>div.ghost .shortcut{opacity:.27}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut{margin:2px}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut .first-letter{display:inline-block;vertical-align:middle;font-size:20px;text-transform:uppercase;color:rgba(0,0,0,.54)}.ms-shortcuts .shortcuts-container .shortcut-menu{margin:0}.ms-shortcuts .shortcuts-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcut-menu,.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcuts,.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-shortcuts .shortcuts-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu{position:relative;width:240px;min-width:240px;max-width:240px}#ms-shortcut-add-menu .add-shortcut-button{width:48px;height:48px;padding:0 12px;margin:0}#ms-shortcut-add-menu .shortcut-search{height:45px;padding:0 8px}#ms-shortcut-add-menu .shortcut-search .search-icon{width:40px;height:40px;line-height:48px}#ms-shortcut-add-menu .shortcut-search .shortcut-loader{padding:10px}#ms-shortcut-add-menu .shortcut-search input{padding:8px}#ms-shortcut-add-menu .results{position:relative;overflow-y:scroll;max-height:233px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu .results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}#ms-shortcut-add-menu .results .result{position:relative;min-height:56px;padding:16px;cursor:pointer}#ms-shortcut-add-menu .results .result.selected{background:rgba(0,0,0,.07)}#ms-shortcut-add-menu .results .result .icon-container{min-width:32px;margin-right:8px}#ms-shortcut-add-menu .results .result .icon-container .square{width:6px;height:6px}#ms-shortcut-add-menu .results .result .title{font-size:16px}#ms-shortcut-add-menu .results .result .description{padding-top:6px;font-size:14px}#splash-screen{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#3c4252;z-index:99999}#splash-screen.ng-leave{opacity:1;transition:all linear .2s}#splash-screen.ng-leave-active{opacity:0}#splash-screen .center{display:block;width:100%;position:absolute;top:50%;transform:translateY(-50%)}#splash-screen .logo{width:96px;height:96px;line-height:96px;margin:0 auto;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:56px;text-align:center;border-radius:2px;background-color:#039be5;color:#fff;box-shadow:0 2px 14px 0 rgba(0,0,0,.22)}#splash-screen .spinner-wrapper{display:block;position:relative;width:100%;min-height:100px;height:100px}#splash-screen .spinner-wrapper .spinner{position:absolute;overflow:hidden;left:50%;margin-left:-50px;animation:outer-rotate 2.91667s linear infinite}#splash-screen .spinner-wrapper .spinner .inner{width:100px;height:100px;position:relative;animation:sporadic-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .gap{position:absolute;left:49px;right:49px;top:0;bottom:0;border-top:10px solid;box-sizing:border-box}#splash-screen .spinner-wrapper .spinner .inner .left,#splash-screen .spinner-wrapper .spinner .inner .right{position:absolute;top:0;height:100px;width:50px;overflow:hidden}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle,#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{position:absolute;top:0;width:100px;height:100px;box-sizing:border-box;border:10px solid #4285f4;border-bottom-color:transparent;border-radius:50%}#splash-screen .spinner-wrapper .spinner .inner .left{left:0}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle{left:0;border-right-color:transparent;animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .right{right:0}#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{right:0;border-left-color:transparent;animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}@keyframes outer-rotate{0%{transform:rotate(0) scale(.5)}100%{transform:rotate(360deg) scale(.5)}}@keyframes left-wobble{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes right-wobble{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes sporadic-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}.ms-stepper .ms-stepper-horizontal{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{height:72px;min-height:72px;max-height:72px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after,.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{content:'';display:block;position:absolute;top:50%;width:24px;border-bottom:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{left:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after{right:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .step{background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step{width:24px;min-width:24px;height:24px;border-radius:50%;margin:0 8px 0 16px;color:#fff}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step .icon{color:#fff;font-weight:700;line-height:24px!important}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-horizontal .ms-stepper-steps{padding:24px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls{padding:0 16px 16px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:none;align-items:center;justify-content:center;padding:0 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span.selected{width:8px;height:8px}@media screen and (max-width:600px){.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:flex}}.ms-stepper .ms-stepper-vertical{position:relative;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-vertical-line{display:block;position:absolute;width:1px;top:32px;bottom:32px;left:43px;border-left:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps{padding:8px 0}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step{display:block}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:0 24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:hover:not(.disabled) .step{background-color:#ececec;border-color:#ececec}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step{width:40px;min-width:40px;height:40px;margin:0 16px 0 0;border-radius:50%;background:#fff;border:8px solid #fff;color:#fff;transition:border-color .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step .icon{font-weight:700;line-height:28px!important}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-step-content{padding:0 24px 16px 64px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-controls{padding:0 16px 16px 56px}.ms-tab-scroll .scroll-arrow{height:inherit;padding:0}.ms-tab-scroll .bar-container{overflow:hidden}.ms-tab-scroll .scroll-container{overflow-x:hidden;overflow-y:hidden;transition:transform .2s ease-in-out}.ms-timeline .ms-timeline-loader{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;background:#fff;font-weight:500;opacity:0;z-index:11;border-radius:50%}.ms-timeline .ms-timeline-loader.show{opacity:1}.ms-timeline .ms-timeline-loader .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%}.ms-widget .ms-widget-front{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget .ms-widget-back{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget.sidenav-widget .ms-widget-back,.ms-widget.sidenav-widget .ms-widget-front{box-shadow:none}.ms-widget .flip-to-front{position:absolute;top:0;right:0}.ms-widget .c3{height:100%}.ms-widget .chart-fill-8{margin:0 -8px -8px -8px}.ms-widget .chart-fill-16{margin:0 -16px -16px -16px}.ms-widget .chart-fill-24{margin:0 -24px -24px -24px}.ms-widget .chart-fill-32{margin:0 -32px -32px -32px}.ms-widget .chart-fill-40{margin:0 -40px -40px -40px}.ms-widget .chart-fill-48{margin:0 -48px -48px -48px}.ms-widget .chart-fill-56{margin:0 -56px -56px -56px}.ms-widget .chart-fill-64{margin:0 -64px -64px -64px}.ms-widget .chart-fill-72{margin:0 -72px -72px -72px}.ms-widget .chart-fill-80{margin:0 -80px -80px -80px}.ms-widget{position:relative;font-size:1.3rem;perspective:3000px;padding:12px}.ms-widget .ms-widget-front{display:flex;flex-direction:column;flex:1 1 auto;position:relative;overflow:hidden;visibility:visible;width:100%;opacity:1;z-index:10;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(0);backface-visibility:hidden}.ms-widget .ms-widget-back{display:block;position:absolute;overflow:hidden;visibility:hidden;opacity:0;z-index:10;top:12px;right:12px;bottom:12px;left:12px;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(180deg);backface-visibility:hidden}.ms-widget .md-button{margin:0}.ms-widget .md-button.md-icon-button{margin:0}.ms-widget.flipped .ms-widget-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}.ms-widget.flipped .ms-widget-back{display:block;visibility:visible;opacity:1;transform:rotateY(360deg)}.ms-widget.sidenav-widget{padding:0}.ms-widget.ar-2-1 .widget{padding:0;position:relative}.ms-widget.ar-2-1 .widget:before{display:block;content:'';width:100%;padding-top:50%}.ms-widget.ar-2-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-widget.ar-1-1 .widget{padding:0;position:relative}.ms-widget.ar-1-1 .widget:before{display:block;content:'';width:100%;padding-top:100%}.ms-widget.ar-1-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-theme-options .ms-theme-options-button{position:absolute;top:160px;right:0;z-index:50;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:48px;height:48px;line-height:48px;text-align:center;cursor:pointer;border-radius:0;margin:0;pointer-events:auto;opacity:.75}.ms-theme-options .ms-theme-options-button:hover{opacity:1}.ms-theme-options md-sidenav{width:384px;min-width:384px;max-width:384px}.ms-theme-options md-sidenav .ms-theme-options-list{background:#fff;z-index:12;pointer-events:auto}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option{padding:16px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button{width:160px;max-width:160px;margin:8px 8px 16px 8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button.md-checked ._md-label img,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button:hover ._md-label img{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-container{display:none}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label{margin-left:0}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label img{opacity:.8;margin-bottom:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes md-menu-item{max-width:192px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button{border-bottom:16px solid;text-align:left;width:101px;height:88px;box-shadow:none;opacity:.8}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button.active,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button:hover{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option md-radio-button{margin:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option .option-title{font-size:14px;font-weight:500;padding:0 8px 12px 8px}#error-404 .content{width:90%;max-width:512px;margin-top:128px}#error-404 .content .error-code{font-size:112px;text-align:center;line-height:1;margin-bottom:16px;font-weight:500}#error-404 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-404 .content .search{width:100%;height:56px;line-height:56px;margin:48px auto 16px auto;padding:16px;background:#fff}#error-404 .content .search input{padding:0 0 0 16px}#error-404 .content .back-link{font-size:15px;text-align:center}#error-500 .content{width:90%;max-width:512px;margin-top:128px}#error-500 .content .error-code{font-size:112px;line-height:1;text-align:center;margin-bottom:16px;font-weight:500}#error-500 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-500 .content .sub-message{font-size:17px;text-align:center;color:rgba(0,0,0,.54);margin:16px auto 48px auto}#error-500 .content .report-link{text-align:center;font-size:15px}#forgot-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#forgot-password #forgot-password-form-wrapper{flex:1 0 auto;padding:32px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#forgot-password #forgot-password-form-wrapper #forgot-password-form .title{font-size:17px;margin:16px 0 32px 0}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo_login{max-height:200px}#forgot-password #forgot-password-form-wrapper #forgot-password-form form{width:100%;text-align:left}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .submit-button{width:220px;margin:16px auto;display:block}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#forgot-password #forgot-password-form-wrapper{padding:16px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{padding:24px;width:100%}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .md-button{width:90%}}#login{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#login #login-form-wrapper{flex:1 0 auto;padding:32px}#login #login-form-wrapper #login-form{width:384px;max-width:384px;padding:32px;background:#fff;text-align:center}#login #login-form-wrapper #login-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#login #login-form-wrapper #login-form .title{font-size:17px;margin:16px 0 32px 0}#login #login-form-wrapper #login-form .logo_login{max-height:200px}#login #login-form-wrapper #login-form form{width:100%;text-align:left}#login #login-form-wrapper #login-form form md-checkbox{margin:0}#login #login-form-wrapper #login-form form .remember-forgot-password{font-size:13px;margin-top:8px}#login #login-form-wrapper #login-form form .remember-forgot-password .remember-me{margin-bottom:16px}#login #login-form-wrapper #login-form form .remember-forgot-password .forgot-password{font-size:13px;font-weight:500;margin-bottom:16px}#login #login-form-wrapper #login-form form .submit-button{width:220px;margin:16px auto;display:block}#login #login-form-wrapper #login-form .register{margin:32px auto 24px auto;width:250px;font-weight:500}#login #login-form-wrapper #login-form .register .text{margin-right:8px}#login #login-form-wrapper #login-form .separator{font-size:15px;font-weight:600;margin:24px auto 16px auto;position:relative;overflow:hidden;width:100px;color:rgba(0,0,0,.54)}#login #login-form-wrapper #login-form .separator .text{display:inline-block;vertical-align:baseline;position:relative;padding:0 8px;z-index:9999}#login #login-form-wrapper #login-form .separator .text:after,#login #login-form-wrapper #login-form .separator .text:before{content:'';display:block;width:30px;position:absolute;top:10px;border-top:1px solid rgba(0,0,0,.12)}#login #login-form-wrapper #login-form .separator .text:before{right:100%}#login #login-form-wrapper #login-form .separator .text:after{left:100%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:192px;text-transform:none;color:#fff;font-size:13px}#login #login-form-wrapper #login-form .md-button.facebook md-icon,#login #login-form-wrapper #login-form .md-button.google md-icon{color:#fff;margin:0 8px 0 0}#login #login-form-wrapper #login-form .md-button.google{background-color:#d73d32}#login #login-form-wrapper #login-form .md-button.facebook{background-color:#3f5c9a}@media screen and (max-width:600px){#login #login-form-wrapper{padding:16px}#login #login-form-wrapper #login-form{padding:24px;width:100%}#login #login-form-wrapper #login-form form .md-button{width:90%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:80%}}md-dialog.extractedReport-dialog{max-width:720px;width:720px}md-dialog.extractedReport-dialog md-dialog-content{display:block;position:relative}md-dialog.extractedReport-dialog md-toolbar .title{font-size:17px}md-dialog.extractedReport-dialog md-input-container textarea{min-height:150px}md-dialog.extractedReport-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.extractedReport-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.extractedReport-dialog .date-container{padding:16px 0 24px 0}md-dialog.extractedReport-dialog .error-list{font-size:13px}md-dialog.extractedReport-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.extractedReport-dialog .error-list .error .message{font-weight:500}md-dialog.extractedReport-dialog .error-list .error .md-button{margin:0}md-dialog.extractedReport-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.extractedReport-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#extractedReports{position:relative}#extractedReports>.header{height:76px;min-height:76px;max-height:76px}#extractedReports>.header .logo .logo-icon{margin:0 16px 0 0}#extractedReports>.header .logo .logo-text{font-size:24px}#extractedReports>.header md-icon{color:#fff}#extractedReports>.header .search-input-wrapper{position:relative}#extractedReports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#extractedReports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#extractedReports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#extractedReports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#extractedReports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#extractedReports>.header.selected-bar .close-button-wrapper{width:244px}#extractedReports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#extractedReports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#extractedReports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#extractedReports #add-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}#extractedReports #upload-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.metric-dialog{max-width:720px;width:720px}md-dialog.metric-dialog md-dialog-content{display:block;position:relative}md-dialog.metric-dialog md-toolbar .title{font-size:17px}md-dialog.metric-dialog md-input-container textarea{min-height:150px}md-dialog.metric-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.metric-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.metric-dialog .date-container{padding:16px 0 24px 0}md-dialog.metric-dialog .error-list{font-size:13px}md-dialog.metric-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.metric-dialog .error-list .error .message{font-weight:500}md-dialog.metric-dialog .error-list .error .md-button{margin:0}md-dialog.metric-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.metric-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#metrics{position:relative}#metrics>.header{height:76px;min-height:76px;max-height:76px}#metrics>.header .logo .logo-icon{margin:0 16px 0 0}#metrics>.header .logo .logo-text{font-size:24px}#metrics>.header md-icon{color:#fff}#metrics>.header .search-input-wrapper{position:relative}#metrics>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#metrics>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#metrics>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#metrics>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#metrics>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#metrics>.header.selected-bar .close-button-wrapper{width:244px}#metrics>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#metrics>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#metrics>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#metrics #add-metric-button{position:fixed;bottom:8px;right:8px;padding:0}#metrics #upload-metric-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.reportField-dialog{max-width:720px;width:720px}md-dialog.reportField-dialog md-dialog-content{display:block;position:relative}md-dialog.reportField-dialog md-toolbar .title{font-size:17px}md-dialog.reportField-dialog md-input-container textarea{min-height:150px}md-dialog.reportField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.reportField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.reportField-dialog .date-container{padding:16px 0 24px 0}md-dialog.reportField-dialog .error-list{font-size:13px}md-dialog.reportField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.reportField-dialog .error-list .error .message{font-weight:500}md-dialog.reportField-dialog .error-list .error .md-button{margin:0}md-dialog.reportField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.reportField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#analytics-report .header{height:76px;min-height:76px;max-height:76px}#analytics-report .header .goto-reports-button{margin-right:16px}#analytics-report .header .report-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#analytics-report .header .report-image img{height:100%;width:auto;max-width:none}#analytics-report .header .subtitle{margin:6px 0 0 0}#analytics-report .report-detail-form-container{padding:24px;margin-bottom:24px}#analytics-report .report-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#analytics-report .report-detail-form-container .handle{cursor:move}#analytics-report .report-detail-form-container md-input-container md-switch{margin:0!important}#analytics-report .report-detail-form-container #report-image-uploader{position:relative}#analytics-report .report-detail-form-container #report-image-uploader.dropping .drop-text{display:flex}#analytics-report .report-detail-form-container #report-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#analytics-report .report-detail-form-container #report-image-uploader .upload-button{margin-bottom:16px}#analytics-report .report-detail-form-container #report-image-uploader .report-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#analytics-report .report-detail-form-container #report-image-uploader .report-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#analytics-report .report-detail-form-container #report-image-uploader .report-image .media{max-height:100%}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reports{position:relative}#reports>.header{height:76px;min-height:76px;max-height:76px}#reports>.header .logo .logo-icon{margin:0 16px 0 0}#reports>.header .logo .logo-text{font-size:24px}#reports>.header md-icon{color:#fff}#reports>.header .search-input-wrapper{position:relative}#reports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#reports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#reports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#reports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#reports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#reports>.header.selected-bar .close-button-wrapper{width:244px}#reports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#reports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#reports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.web-dialog md-dialog-content{display:block;position:relative}md-dialog.web-dialog md-toolbar .title{font-size:17px}md-dialog.web-dialog md-input-container textarea{min-height:150px}md-dialog.web-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.web-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.web-dialog .date-container{padding:16px 0 24px 0}md-dialog.web-dialog .error-list{font-size:13px}md-dialog.web-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.web-dialog .error-list .error .message{font-weight:500}md-dialog.web-dialog .error-list .error .md-button{margin:0}md-dialog.web-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.web-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.odbc-dialog{max-width:720px;width:720px}md-dialog.odbc-dialog md-dialog-content{display:block;position:relative}md-dialog.odbc-dialog md-toolbar .title{font-size:17px}md-dialog.odbc-dialog md-input-container textarea{min-height:150px}md-dialog.odbc-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.odbc-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.odbc-dialog .date-container{padding:16px 0 24px 0}md-dialog.odbc-dialog .error-list{font-size:13px}md-dialog.odbc-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.odbc-dialog .error-list .error .message{font-weight:500}md-dialog.odbc-dialog .error-list .error .md-button{margin:0}md-dialog.odbc-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.odbc-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#odbcs{position:relative}#odbcs>.header{height:76px;min-height:76px;max-height:76px}#odbcs>.header .logo .logo-icon{margin:0 16px 0 0}#odbcs>.header .logo .logo-text{font-size:24px}#odbcs>.header md-icon{color:#fff}#odbcs>.header .search-input-wrapper{position:relative}#odbcs>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#odbcs>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#odbcs>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#odbcs>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#odbcs>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#odbcs>.header.selected-bar .close-button-wrapper{width:244px}#odbcs>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#odbcs>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#odbcs>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#odbcs #add-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}#odbcs #upload-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.project-dialog .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#callysquare-project .header{height:76px;min-height:76px;max-height:76px}#callysquare-project .header .goto-projects-button{margin-right:16px}#callysquare-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#callysquare-project .header .project-image img{height:100%;width:auto;max-width:none}#callysquare-project .header .subtitle{margin:6px 0 0 0}#callysquare-project .project-detail-form-container{padding:24px;margin-bottom:24px}#callysquare-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#callysquare-project .project-detail-form-container #project-image-uploader{position:relative}#callysquare-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#callysquare-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#callysquare-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#callysquare-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#callysquare-project>.callysquare-content{position:absolute;top:76px;bottom:0;left:0;right:0}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.squareRecording-dialog{max-width:720px;width:720px}md-dialog.squareRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.squareRecording-dialog md-toolbar .title{font-size:17px}md-dialog.squareRecording-dialog md-input-container textarea{min-height:150px}md-dialog.squareRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.squareRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.squareRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.squareRecording-dialog .error-list{font-size:13px}md-dialog.squareRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.squareRecording-dialog .error-list .error .message{font-weight:500}md-dialog.squareRecording-dialog .error-list .error .md-button{margin:0}md-dialog.squareRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.squareRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#squareRecordings{position:relative}#squareRecordings>.header{height:76px;min-height:76px;max-height:76px}#squareRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#squareRecordings>.header .logo .logo-text{font-size:24px}#squareRecordings>.header md-icon{color:#fff}#squareRecordings>.header .search-input-wrapper{position:relative}#squareRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#squareRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#squareRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#squareRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#squareRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#squareRecordings>.header.selected-bar .close-button-wrapper{width:244px}#squareRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#squareRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#squareRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#squareRecordings #add-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#squareRecordings #upload-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues{position:relative}#chatQueues>.header{height:76px;min-height:76px;max-height:76px}#chatQueues>.header .logo .logo-icon{margin:0 16px 0 0}#chatQueues>.header .logo .logo-text{font-size:24px}#chatQueues>.header md-icon{color:#fff}#chatQueues>.header .search-input-wrapper{position:relative}#chatQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatQueues>.header.selected-bar .close-button-wrapper{width:244px}#chatQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatQueues #add-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues #upload-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatQueue-dialog{max-width:720px;width:720px}md-dialog.chatQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.chatQueue-dialog md-toolbar .title{font-size:17px}md-dialog.chatQueue-dialog md-input-container textarea{min-height:150px}md-dialog.chatQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatQueue-dialog .error-list{font-size:13px}md-dialog.chatQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatQueue-dialog .error-list .error .message{font-weight:500}md-dialog.chatQueue-dialog .error-list .error .md-button{margin:0}md-dialog.chatQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatQueue .header{height:76px;min-height:76px;max-height:76px}#chat-chatQueue .header .goto-chatQueues-button{margin-right:16px}#chat-chatQueue .header .chatQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatQueue .header .chatQueue-image img{height:100%;width:auto;max-width:none}#chat-chatQueue .header .subtitle{margin:6px 0 0 0}#chat-chatQueue .chatQueue-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatQueue .chatQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatQueue .chatQueue-detail-form-container .handle{cursor:move}#chat-chatQueue .chatQueue-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader{position:relative}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader.dropping .drop-text{display:flex}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .upload-button{margin-bottom:16px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image .media{max-height:100%}#chat-chatQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#chatWebsites{position:relative}#chatWebsites>.header{height:76px;min-height:76px;max-height:76px}#chatWebsites>.header .logo .logo-icon{margin:0 16px 0 0}#chatWebsites>.header .logo .logo-text{font-size:24px}#chatWebsites>.header md-icon{color:#fff}#chatWebsites>.header .search-input-wrapper{position:relative}#chatWebsites>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatWebsites>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatWebsites>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatWebsites>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatWebsites>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatWebsites>.header.selected-bar .close-button-wrapper{width:244px}#chatWebsites>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatWebsites>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatWebsites>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatWebsites #add-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}#chatWebsites #upload-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatWebsite-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.chatCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.chatCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.chatCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.chatCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatCannedAnswer-dialog .error-list{font-size:13px}md-dialog.chatCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.chatCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.chatCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.offlineMessage-dialog{max-width:720px;width:720px}md-dialog.offlineMessage-dialog md-dialog-content{display:block;position:relative}md-dialog.offlineMessage-dialog md-toolbar .title{font-size:17px}md-dialog.offlineMessage-dialog md-input-container textarea{min-height:150px}md-dialog.offlineMessage-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.offlineMessage-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.offlineMessage-dialog .date-container{padding:16px 0 24px 0}md-dialog.offlineMessage-dialog .error-list{font-size:13px}md-dialog.offlineMessage-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.offlineMessage-dialog .error-list .error .message{font-weight:500}md-dialog.offlineMessage-dialog .error-list .error .md-button{margin:0}md-dialog.offlineMessage-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.offlineMessage-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatProactiveAction-dialog{max-width:720px;width:720px}md-dialog.chatProactiveAction-dialog md-dialog-content{display:block;position:relative}md-dialog.chatProactiveAction-dialog md-toolbar .title{font-size:17px}md-dialog.chatProactiveAction-dialog md-input-container textarea{min-height:150px}md-dialog.chatProactiveAction-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatProactiveAction-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatProactiveAction-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatProactiveAction-dialog .error-list{font-size:13px}md-dialog.chatProactiveAction-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatProactiveAction-dialog .error-list .error .message{font-weight:500}md-dialog.chatProactiveAction-dialog .error-list .error .md-button{margin:0}md-dialog.chatProactiveAction-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatProactiveAction-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatWebsite .header{height:76px;min-height:76px;max-height:76px}#chat-chatWebsite .header .goto-chatWebsites-button{margin-right:16px}#chat-chatWebsite .header .chatWebsite-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatWebsite .header .chatWebsite-image img{height:100%;width:auto;max-width:none}#chat-chatWebsite .header .subtitle{margin:6px 0 0 0}#chat-chatWebsite .chatWebsite-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatWebsite .chatWebsite-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatWebsite .chatWebsite-detail-form-container .handle{cursor:move}#chat-chatWebsite .chatWebsite-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader{position:relative}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader.dropping .drop-text{display:flex}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .upload-button{margin-bottom:16px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image .media{max-height:100%}#chat-chatWebsite md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatWebsite md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container.font-size-12 td.md-cell{font-size:12px!important}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#companies{position:relative}#companies>.header{height:76px;min-height:76px;max-height:76px}#companies>.header .logo .logo-icon{margin:0 16px 0 0}#companies>.header .logo .logo-text{font-size:24px}#companies>.header md-icon{color:#fff}#companies>.header .search-input-wrapper{position:relative}#companies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#companies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#companies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#companies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#companies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#companies>.header.selected-bar .close-button-wrapper{width:244px}#companies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#companies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#companies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#companies #add-company-button{position:fixed;bottom:8px;right:8px;padding:0}#companies #upload-company-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.company-dialog{max-width:720px;width:720px}md-dialog.company-dialog md-dialog-content{display:block;position:relative}md-dialog.company-dialog md-toolbar .title{font-size:17px}md-dialog.company-dialog md-input-container textarea{min-height:150px}md-dialog.company-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.company-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.company-dialog .date-container{padding:16px 0 24px 0}md-dialog.company-dialog .error-list{font-size:13px}md-dialog.company-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.company-dialog .error-list .error .message{font-weight:500}md-dialog.company-dialog .error-list .error .md-button{margin:0}md-dialog.company-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.company-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-company .header{height:76px;min-height:76px;max-height:76px}#contactmanager-company .header .goto-companies-button{margin-right:16px}#contactmanager-company .header .company-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-company .header .company-image img{height:100%;width:auto;max-width:none}#contactmanager-company .header .subtitle{margin:6px 0 0 0}#contactmanager-company .company-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-company .company-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-company .company-detail-form-container .handle{cursor:move}#contactmanager-company .company-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-company .company-detail-form-container #company-image-uploader{position:relative}#contactmanager-company .company-detail-form-container #company-image-uploader.dropping .drop-text{display:flex}#contactmanager-company .company-detail-form-container #company-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-company .company-detail-form-container #company-image-uploader .upload-button{margin-bottom:16px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image .media{max-height:100%}#contactmanager-company md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-company md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container.font-size-12 td.md-cell{font-size:12px!important}#contacts{position:relative}#contacts>.header{height:76px;min-height:76px;max-height:76px}#contacts>.header .logo .logo-icon{margin:0 16px 0 0}#contacts>.header .logo .logo-text{font-size:24px}#contacts>.header md-icon{color:#fff}#contacts>.header .search-input-wrapper{position:relative}#contacts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contacts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contacts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contacts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contacts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contacts>.header.selected-bar .close-button-wrapper{width:244px}#contacts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contacts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contacts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contacts #add-contact-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#cm-contact .pointer{cursor:pointer}#cm-contact .header{height:76px;min-height:76px;max-height:76px}#cm-contact .header .goto-contacts-button{margin-right:16px}#cm-contact .header .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#cm-contact .header .contact-image img{height:100%;width:auto;max-width:none}#cm-contact .header .subtitle{margin:6px 0 0 0}#cm-contact .contact-detail-form-container{padding:24px;margin-bottom:24px}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.email{color:green}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.firstname{color:#1e90ff}#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.email,#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.firstname{color:red}#cm-contact .contact-detail-form-container .hint{position:absolute;left:2px;right:auto;bottom:7px;font-size:10px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.import-dialog{max-width:720px;width:720px}md-dialog.import-dialog md-dialog-content{display:block;position:relative}md-dialog.import-dialog md-toolbar .title{font-size:17px}md-dialog.import-dialog md-input-container textarea{min-height:150px}md-dialog.import-dialog .date-container{padding:16px 0 24px 0}md-dialog.import-dialog .error-list{font-size:13px}md-dialog.import-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .error .message{font-weight:500}md-dialog.import-dialog .error-list .error .md-button{margin:0}md-dialog.import-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.import-dialog .error-list .info{background-color:rgba(24,160,135,.08);border:1px solid rgba(24,160,135,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .info .message{font-weight:500}md-dialog.import-dialog .error-list .info .md-button{margin:0}md-dialog.import-dialog .error-list .info:last-child{margin-bottom:30px}md-dialog.import-dialog .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}md-dialog.import-dialog .contact-image img{height:100%;width:auto;max-width:none}md-dialog.import-dialog .contact-image .media{max-height:100%}md-dialog.import-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.globalCustomField-dialog{max-width:720px;width:720px}md-dialog.globalCustomField-dialog md-dialog-content{display:block;position:relative}md-dialog.globalCustomField-dialog md-toolbar .title{font-size:17px}md-dialog.globalCustomField-dialog md-input-container textarea{min-height:150px}md-dialog.globalCustomField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.globalCustomField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.globalCustomField-dialog .date-container{padding:16px 0 24px 0}md-dialog.globalCustomField-dialog .error-list{font-size:13px}md-dialog.globalCustomField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.globalCustomField-dialog .error-list .error .message{font-weight:500}md-dialog.globalCustomField-dialog .error-list .error .md-button{margin:0}md-dialog.globalCustomField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.globalCustomField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#globalCustomFields{position:relative}#globalCustomFields>.header{height:76px;min-height:76px;max-height:76px}#globalCustomFields>.header .logo .logo-icon{margin:0 16px 0 0}#globalCustomFields>.header .logo .logo-text{font-size:24px}#globalCustomFields>.header md-icon{color:#fff}#globalCustomFields>.header .search-input-wrapper{position:relative}#globalCustomFields>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#globalCustomFields>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#globalCustomFields>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#globalCustomFields>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#globalCustomFields>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#globalCustomFields>.header.selected-bar .close-button-wrapper{width:244px}#globalCustomFields>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#globalCustomFields>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#globalCustomFields>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#globalCustomFields #add-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}#globalCustomFields #upload-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.list-dialog{max-width:720px;width:720px}md-dialog.list-dialog md-dialog-content{display:block;position:relative}md-dialog.list-dialog md-toolbar .title{font-size:17px}md-dialog.list-dialog md-input-container textarea{min-height:150px}md-dialog.list-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.list-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.list-dialog .date-container{padding:16px 0 24px 0}md-dialog.list-dialog .error-list{font-size:13px}md-dialog.list-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.list-dialog .error-list .error .message{font-weight:500}md-dialog.list-dialog .error-list .error .md-button{margin:0}md-dialog.list-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.list-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customField-dialog{max-width:720px;width:720px}md-dialog.customField-dialog md-dialog-content{display:block;position:relative}md-dialog.customField-dialog md-toolbar .title{font-size:17px}md-dialog.customField-dialog md-input-container textarea{min-height:150px}md-dialog.customField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customField-dialog .date-container{padding:16px 0 24px 0}md-dialog.customField-dialog .error-list{font-size:13px}md-dialog.customField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customField-dialog .error-list .error .message{font-weight:500}md-dialog.customField-dialog .error-list .error .md-button{margin:0}md-dialog.customField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-list .header{height:76px;min-height:76px;max-height:76px}#contactmanager-list .header .goto-lists-button{margin-right:16px}#contactmanager-list .header .list-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-list .header .list-image img{height:100%;width:auto;max-width:none}#contactmanager-list .header .subtitle{margin:6px 0 0 0}#contactmanager-list .list-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-list .list-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-list .list-detail-form-container .handle{cursor:move}#contactmanager-list .list-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-list .list-detail-form-container #list-image-uploader{position:relative}#contactmanager-list .list-detail-form-container #list-image-uploader.dropping .drop-text{display:flex}#contactmanager-list .list-detail-form-container #list-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-list .list-detail-form-container #list-image-uploader .upload-button{margin-bottom:16px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image .media{max-height:100%}#contactmanager-list md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-list md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container.font-size-12 td.md-cell{font-size:12px!important}#lists{position:relative}#lists>.header{height:76px;min-height:76px;max-height:76px}#lists>.header .logo .logo-icon{margin:0 16px 0 0}#lists>.header .logo .logo-text{font-size:24px}#lists>.header md-icon{color:#fff}#lists>.header .search-input-wrapper{position:relative}#lists>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#lists>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#lists>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#lists>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#lists>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#lists>.header.selected-bar .close-button-wrapper{width:244px}#lists>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#lists>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#lists>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#lists #add-list-button{position:fixed;bottom:8px;right:8px;padding:0}#lists #upload-list-button{position:fixed;bottom:8px;right:8px;padding:0}#dashboard-custom .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general{position:fixed;width:100%;height:100%}#agent-general .agent-content{position:fixed;top:36px;bottom:0;left:0;right:0}#agent-general .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#agent-general .table-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general .table-header .md-toolbar-tools div md-select .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder .md-select-icon{display:none}#agent-general .table-header ms-quick-filter .quick-filter-date-clear-button{color:#fff}#agent-general .tooltip-preview{position:relative;display:inline-block;text-decoration:underline}#agent-general .tooltip-preview .tooltip-preview-text{visibility:hidden;width:500px;position:absolute;white-space:pre-line;left:100%;z-index:9999}#agent-general .tooltip-preview:hover .tooltip-preview-text{visibility:visible}#agent-general .reload-list md-icon{color:#fff}#agent-general .advanced-search md-icon{color:#fff}#agent-general .create-new md-icon{color:#fff}#agent-general div.draft-manager-bar{background-color:#f5f5f5;position:sticky;height:34px;bottom:0;border-top:1px solid #e0e0e0}#agent-general div.draft-manager-bar ms-tab-scroll{overflow:hidden}#agent-general div.draft-manager-bar ms-tab-scroll div.draft-manager-tab{height:34px;border-right:1px solid #e0e0e0}#agent-general td.width-5,#agent-general th.width-5{width:5px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-10,#agent-general th.width-10{width:10px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-15,#agent-general th.width-15{width:15px!important;min-width:auto!important;max-width:none!important}#agent-general td.no-padding,#agent-general th.no-padding{padding:0!important}#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:300px!important}#agent-general span.no-margin-bottom{margin-bottom:0!important}#agent-general span.no-margin-top{margin-top:0!important}#agent-general md-table-container.interactions-list thead tr th:not(.no-padding):not(.id-header){padding:0 20px 0 0!important}#agent-general md-table-container.interactions-list tbody tr td:not(.no-padding):not(.actions-padding):not(.id){padding:0 20px 0 0!important}#agent-general td.actions-padding{padding:0 8px 0 0!important}#agent-general md-toolbar.md-table-toolbar[disabled]{pointer-events:none}#agent-general md-toolbar.md-table-toolbar[disabled] ms-search-bar{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] ms-quick-filter{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] button.advanced-search,#agent-general md-toolbar.md-table-toolbar[disabled] button.interaction-reload{opacity:.7}#agent-general md-card.call-info-card{min-width:200px}#agent-general md-card.call-info-card div.reload-container{position:relative}#agent-general md-card.call-info-card button.reload-button{position:absolute;right:-16px}@media screen and (max-width:1280px){#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:350px!important}}@media screen and (max-width:1920px){#agent-general span.contact-text{width:150px!important}#agent-general span.subject-text{width:500px!important}}#agent-general-dialog{position:fixed;width:100%;height:100%}#agent-general-dialog .agent-content{position:fixed;top:0;bottom:0;left:0;right:0}body .md-select-menu-container{z-index:110}.md-toolbar-tools{font-size:12px}div.toolbar-quick-filter[disabled]{pointer-events:none;opacity:.7}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.contact-trigger-dialog{max-width:720px;width:720px}md-dialog.contact-trigger-dialog md-dialog-content{display:block;position:relative;max-height:400px;height:400px}md-dialog.contact-trigger-dialog md-toolbar{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}md-dialog.contact-trigger-dialog md-toolbar .title{font-size:17px}md-dialog.contact-trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.contact-trigger-dialog md-dialog-actions button.select-button{position:absolute;right:0;margin-right:16px}md-dialog md-grid-list.one-row-layout{height:150px;max-height:150px}md-dialog md-grid-list.two-rows-layout{height:300px;max-height:300px}md-dialog md-card.contact-info:hover{background-color:#e9eef1ad}@media screen and (max-width:1280px){md-dialog.contact-trigger-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.contact-trigger-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.details-dialog{max-width:500px;width:500px}md-dialog.details-dialog md-dialog-content{display:block;position:relative}md-dialog.details-dialog md-toolbar .title{font-size:17px}md-dialog.details-dialog md-input-container textarea{min-height:150px}md-dialog.details-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.details-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.details-dialog .date-container{padding:16px 0 24px 0}md-dialog.details-dialog .error-list{font-size:13px}md-dialog.details-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.details-dialog .error-list .error .message{font-weight:500}md-dialog.details-dialog .error-list .error .md-button{margin:0}md-dialog.details-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.details-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#interaction-app .tags{font-size:12px}#interaction-app .tags .tag{border-radius:2px;padding:3px 8px;background-color:rgba(0,0,0,.08)}#interaction-app .tags .tag .tag-color{width:8px;height:8px;margin-right:8px;border-radius:50%}#interaction-app .content-card{position:relative;height:100%}#interaction-app .content-card .interaction{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .interaction .avatar-small{width:30px;min-width:30px;height:30px;line-height:30px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}#interaction-app .content-card .interaction .interaction-agents{min-height:40px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-agents .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-agents .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-agents .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .interaction-toolbar{min-height:64px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-toolbar md-icon{color:rgba(0,0,0,.87)}#interaction-app .content-card .interaction .interaction-toolbar .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .cannedarea{margin-right:7px;font-size:14px;border:1px solid #ccc;border-radius:3px;align-self:stretch}#interaction-app .content-card .interaction .cannedarea md-autocomplete-wrap{padding:0 1em}#interaction-app .content-card .interaction .emojionearea{margin-right:7px}#interaction-app .content-card .interaction #interaction-content{background:url(/assets/images/patterns/circles-light.png) repeat}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content{padding:24px 0}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject .subject-text{margin-right:4px;text-transform:lowercase}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info{padding-bottom:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .avatar{margin-right:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .name{margin-right:8px;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .toggle-details{padding-top:16px;cursor:pointer;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details{padding-top:8px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .title{font-weight:500;margin-right:6px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .detail{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .bubble{position:relative;padding:6px 7px 8px 9px;background-color:#fff;border:1px solid #dcdfe1;border-radius:6px;word-break:break-word}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after,#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#fff transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .time{font-size:11px;margin-top:0;text-align:right}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message{white-space:pre-wrap}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message span{word-break:break-all}#interaction-app .content-card .interaction #interaction-content .message-row.in{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.in .avatar{margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble{margin-left:auto;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:after{right:-9px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:before{right:-11px;left:auto;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}#interaction-app .content-card .interaction #interaction-content .message-row.out{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.out .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble{margin-left:auto;background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .avatar{order:1;margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:2}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction .interaction-footer{min-height:64px;max-height:180px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-top:1px solid rgba(0,0,0,.08);padding:8px 8px 8px 16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container{margin:0;padding-right:16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea{overflow:auto;max-height:80px;transition:height .2s ease}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea.grow{height:80px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container .md-errors-spacer{display:none}#interaction-app .content-card .interaction .interaction-footer .reply-form .md-button{margin:0}#interaction-app .content-card .info md-list-item{min-height:40px;height:52px}#interaction-app .content-card .start-point{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .start-point .big-circle{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8));border-radius:50%;width:300px;height:300px;line-height:300px;text-align:center}#interaction-app .content-card .start-point .app-title{font-weight:500;font-size:32px;margin:12px 0}#interaction-app .content-card .start-point .secondary-text{font-size:16px}#interaction-app .content-card .sidenav md-toolbar{border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search{height:36px;line-height:36px;padding:8px;background:#fff;font-size:13px}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search .icon{margin:0;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search input{padding-left:12px;height:36px;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-list.contact-list,#interaction-app .content-card .sidenav md-list.interaction-list{position:relative;transition:all .2s ease-out}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.contact-list md-list-item,#interaction-app .content-card .sidenav md-list.interaction-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item{position:absolute;right:0;left:0;width:100%;transition:transform .2s ease-out;background:#fff;will-change:transform}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave{transform:translateY(0);display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave.ng-leave-active{transform:translateY(-100%)}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide{display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-remove-active{display:block;transition-property:all}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list .subheader{padding-left:16px;font-size:20px;font-weight:300;height:88px;line-height:88px}#interaction-app .content-card .sidenav .no-results-message{position:absolute;width:100%;height:88px;padding:16px;background:#fff;font-size:15px;font-weight:400}#interaction-app .avatar-wrapper{position:relative}#interaction-app .avatar-wrapper .avatar{margin-top:0;margin-bottom:0}#interaction-app .status{position:absolute;top:28px;left:28px;border-radius:50%}#interaction-app .status.online{color:#4caf50}#interaction-app .status.online:before{content:'\e709'}#interaction-app .status.do-not-disturb{color:#f44336}#interaction-app .status.do-not-disturb:before{content:'\e912'}#interaction-app .status.away{background-color:#ffc107;color:#fff}#interaction-app .status.away:before{content:'\e727'}#interaction-app .status.offline{color:#4caf50;background-color:#fff}#interaction-app .status.offline:before{content:'\e704'}#interaction-app .editable-wrap{position:relative}#interaction-app .editable-wrap .editable-controls{display:flex;flex-direction:row;align-items:center;width:100%}#interaction-app .editable-wrap .editable-controls .editable-input{width:inherit;background-color:#fff;padding:8px;border:1px solid rgba(0,0,0,.12)}#interaction-app .editable-wrap .editable-controls .editable-buttons{display:inherit}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button{margin:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button:first-of-type{padding-right:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button .icon-cancel{color:rgba(0,0,0,.32)}#interaction-app .editable-click{cursor:pointer;text-decoration:none;color:inherit;border-bottom:none}#interaction-app .emoji-picker-icon{right:5px;cursor:pointer}#interaction-app .input-show-hide{transition:all linear .5s}#interaction-app .input-show-hide.ng-hide{opacity:0}#interaction-app div.interaction-reply-button-container{display:inline;padding-bottom:14px}#timeline{position:relative;height:auto;padding-bottom:30px}#timeline:before{display:block;position:absolute;z-index:10;content:'';width:2px;background:rgba(0,0,0,.08);top:0;left:50%;bottom:0;margin-left:-1px}#timeline .ms-timeline-item{overflow:hidden;position:relative;z-index:20;width:100%;margin:0 auto;max-width:1200px}#timeline .ms-timeline-item .timeline-card{order:1}#timeline .ms-timeline-item .timeline-card .interaction .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}#timeline .ms-timeline-item .timeline-card .interaction .media .image{width:100%}#timeline .ms-timeline-item .timeline-point{position:absolute;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;left:50%;margin:16px 0 0 -28px;order:2}#timeline .ms-timeline-item .timeline-point md-icon{color:#fff}#timeline .ms-timeline-item .timeline-detail{flex:50% 0 0;padding-top:28px;order:3}#timeline .ms-timeline-item .timeline-detail .time{font-size:15px;padding-left:68px}#timeline .ms-timeline-item .timeline-detail .event{color:rgba(0,0,0,.54);padding-left:68px}#timeline .ms-timeline-item:nth-child(odd) .timeline-card{flex-direction:row-reverse}#timeline .ms-timeline-item:nth-child(even) .timeline-card{order:3;padding-right:0}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card{padding-left:84px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail{order:1;padding-left:0;text-align:right}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:68px}#timeline .ms-timeline-item:first-child{padding-top:15px}#timeline .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline .ms-timeline-item.animate .timeline-point{animation:slide-in-bottom .4s}#timeline .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-card{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-detail{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item .timeline-card{order:1}#timeline.timeline-left .ms-timeline-item .timeline-card ms-card{padding-right:68px;padding-left:0;margin-left:auto}#timeline.timeline-left .ms-timeline-item .timeline-detail{order:3;text-align:left}#timeline.timeline-left .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item .timeline-card{order:3}#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{padding-left:68px;padding-right:0;margin-right:auto}#timeline.timeline-right .ms-timeline-item .timeline-detail{order:1;text-align:right}#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:68px;padding-left:0}#timeline.timeline-right .ms-timeline-item.animate .timeline-card{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item.animate .timeline-detail{animation:slide-in-left .4s}@media screen and (max-width:1280px){#timeline .ms-timeline-item,#timeline.timeline-left .ms-timeline-item,#timeline.timeline-right .ms-timeline-item{display:block}#timeline .ms-timeline-item .timeline-point,#timeline.timeline-left .ms-timeline-item .timeline-point,#timeline.timeline-right .ms-timeline-item .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item .timeline-detail,#timeline.timeline-left .ms-timeline-item .timeline-detail,#timeline.timeline-right .ms-timeline-item .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item .timeline-detail .event,#timeline .ms-timeline-item .timeline-detail .time,#timeline.timeline-left .ms-timeline-item .timeline-detail .event,#timeline.timeline-left .ms-timeline-item .timeline-detail .time,#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{margin:0 auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-card ms-card{margin:0 auto;padding:0}}md-dialog.compose-dialog{max-width:720px;width:720px}md-dialog.compose-dialog.mail-no-secret{max-height:97%;max-width:90%!important;width:100%!important}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-toolbar .vertical-divider{position:absolute;border-right-width:.5px;border-right-style:solid;height:100%}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .to.hidden-cc input{padding-right:32px}md-dialog.compose-dialog .to.hidden-cc.hidden-bcc input{padding-right:56px}md-dialog.compose-dialog .to.hidden-bcc input{padding-right:32px}md-dialog.compose-dialog .to .cc-bcc{position:absolute;bottom:8px;right:0}md-dialog.compose-dialog .to .cc-bcc .show-bcc,md-dialog.compose-dialog .to .cc-bcc .show-cc{cursor:pointer;font-size:12px}md-dialog.compose-dialog .to .cc-bcc .show-bcc{margin-left:8px}md-dialog.compose-dialog .attachment-list{font-size:13px}md-dialog.compose-dialog .attachment-list .attachment{background-color:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.16);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .attachment-list .attachment .filename{font-weight:500}md-dialog.compose-dialog .attachment-list .attachment .md-button{margin:0}md-dialog.compose-dialog .attachment-list .attachment:last-child{margin-bottom:0}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{max-width:700px;min-height:300px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dashboard-general>.center>.header{height:160px;min-height:160px;max-height:160px;padding-bottom:0}#dashboard-general>.center>.header .selected-general{background:rgba(0,0,0,.12);color:#fff;padding:8px 16px;height:40px;line-height:24px;font-size:16px}#dashboard-general>.center>.header .general-selector{margin-left:1px;border-radius:0;background:rgba(0,0,0,.12)}#dashboard-general>.center>.header .general-selector md-icon{color:#fff}#dashboard-general>.center>.content{background:0 0;padding:0}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}#dashboard-general>.center>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-content-wrapper md-tab-content{padding:12px}#dashboard-general>.sidenav{width:330px;min-width:330px;max-width:330px;padding:0;z-index:51;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#dashboard-general>.sidenav.md-locked-open{width:250px;min-width:250px;max-width:250px;z-index:2;box-shadow:none;background:#eee}#dashboard-general .dashboard-container{padding:24px;margin-bottom:24px}#dashboard-general .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxAccount .header{height:76px;min-height:76px;max-height:76px}#fax-faxAccount .header .goto-faxAccounts-button{margin-right:16px}#fax-faxAccount .header .faxAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxAccount .header .faxAccount-image img{height:100%;width:auto;max-width:none}#fax-faxAccount .header .subtitle{margin:6px 0 0 0}#fax-faxAccount .faxAccount-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxAccount .faxAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxAccount .faxAccount-detail-form-container .handle{cursor:move}#fax-faxAccount .faxAccount-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader{position:relative}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader.dropping .drop-text{display:flex}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .upload-button{margin-bottom:16px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image .media{max-height:100%}#fax-faxAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxAccounts{position:relative}#faxAccounts>.header{height:76px;min-height:76px;max-height:76px}#faxAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#faxAccounts>.header .logo .logo-text{font-size:24px}#faxAccounts>.header md-icon{color:#fff}#faxAccounts>.header .search-input-wrapper{position:relative}#faxAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxAccounts>.header.selected-bar .close-button-wrapper{width:244px}#faxAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxAccounts #add-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#faxAccounts #upload-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.faxQueue-dialog{max-width:720px;width:720px}md-dialog.faxQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.faxQueue-dialog md-toolbar .title{font-size:17px}md-dialog.faxQueue-dialog md-input-container textarea{min-height:150px}md-dialog.faxQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxQueue-dialog .error-list{font-size:13px}md-dialog.faxQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxQueue-dialog .error-list .error .message{font-weight:500}md-dialog.faxQueue-dialog .error-list .error .md-button{margin:0}md-dialog.faxQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxQueue .header{height:76px;min-height:76px;max-height:76px}#fax-faxQueue .header .goto-faxQueues-button{margin-right:16px}#fax-faxQueue .header .faxQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxQueue .header .faxQueue-image img{height:100%;width:auto;max-width:none}#fax-faxQueue .header .subtitle{margin:6px 0 0 0}#fax-faxQueue .faxQueue-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxQueue .faxQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxQueue .faxQueue-detail-form-container .handle{cursor:move}#fax-faxQueue .faxQueue-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader{position:relative}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader.dropping .drop-text{display:flex}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .upload-button{margin-bottom:16px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image .media{max-height:100%}#fax-faxQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxQueues{position:relative}#faxQueues>.header{height:76px;min-height:76px;max-height:76px}#faxQueues>.header .logo .logo-icon{margin:0 16px 0 0}#faxQueues>.header .logo .logo-text{font-size:24px}#faxQueues>.header md-icon{color:#fff}#faxQueues>.header .search-input-wrapper{position:relative}#faxQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxQueues>.header.selected-bar .close-button-wrapper{width:244px}#faxQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxQueues #add-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#faxQueues #upload-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#profile .about-tab{max-width:1200px}#profile .about-tab .about{padding:8px}#profile .about-tab .about .general .location md-icon{line-height:13px!important}#profile .about-tab .about .work .job .company{padding:0 16px 0 0;font-weight:500}#profile .about-tab .about .work .job .date{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar{padding:8px 8px 8px 32px}#profile .about-tab .about-sidebar .friends .content .friend{padding:4px}#profile .about-tab .about-sidebar .groups .content .group{margin-bottom:16px}#profile .about-tab .about-sidebar .groups .content .group:last-child{margin-bottom:0}#profile .about-tab .about-sidebar .groups .content .group .logo{border:1px solid rgba(0,0,0,.12);margin-right:16px}#profile .about-tab .about-sidebar .groups .content .group .name{font-weight:500;font-size:15px}#profile .about-tab .about-sidebar .groups .content .group .category,#profile .about-tab .about-sidebar .groups .content .group .members{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar .groups .content .group .members{margin-top:16px}@media screen and (max-width:960px){#profile .about-tab .about-sidebar{padding:8px}}#maintenance{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#maintenance #maintenance-form-wrapper{flex:1 0 auto;padding:32px}#maintenance #maintenance-form-wrapper #maintenance-form{max-width:384px;padding:32px;background:#fff;text-align:center}#maintenance #maintenance-form-wrapper #maintenance-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#maintenance #maintenance-form-wrapper #maintenance-form .title{font-size:17px;margin-top:16px}#maintenance #maintenance-form-wrapper #maintenance-form .subtitle{margin:16px 0;max-width:300px;color:rgba(0,0,0,.54);font-size:15px}@media screen and (max-width:600px){#maintenance #maintenance-form-wrapper{padding:16px}#maintenance #maintenance-form-wrapper #maintenance-form{padding:24px;width:100%}}md-dialog.deskAccount-dialog{max-width:720px;width:720px}md-dialog.deskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-dialog .error-list{font-size:13px}md-dialog.deskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#deskAccounts{position:relative}#deskAccounts>.header{height:76px;min-height:76px;max-height:76px}#deskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#deskAccounts>.header .logo .logo-text{font-size:24px}#deskAccounts>.header md-icon{color:#fff}#deskAccounts>.header .search-input-wrapper{position:relative}#deskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#deskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#deskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#deskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#deskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#deskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#deskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#deskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#deskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#deskAccounts #add-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#deskAccounts #upload-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.deskConfiguration-dialog{max-width:720px;width:720px}md-dialog.deskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.deskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.deskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.deskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskConfiguration-dialog .error-list{font-size:13px}md-dialog.deskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.deskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.deskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.deskAccount-item-dialog{max-width:720px;width:720px}md-dialog.deskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-item-dialog .error-list{font-size:13px}md-dialog.deskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-deskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-deskAccount .header .goto-deskAccounts-button{margin-right:16px}#integrations-deskAccount .header .deskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-deskAccount .header .deskAccount-image img{height:100%;width:auto;max-width:none}#integrations-deskAccount .header .subtitle{margin:6px 0 0 0}#integrations-deskAccount .deskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-deskAccount .deskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-deskAccount .deskAccount-detail-form-container .handle{cursor:move}#integrations-deskAccount .deskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader{position:relative}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image .media{max-height:100%}#integrations-deskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-deskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.dynamics365Account-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dynamics365Accounts{position:relative}#dynamics365Accounts>.header{height:76px;min-height:76px;max-height:76px}#dynamics365Accounts>.header .logo .logo-icon{margin:0 16px 0 0}#dynamics365Accounts>.header .logo .logo-text{font-size:24px}#dynamics365Accounts>.header md-icon{color:#fff}#dynamics365Accounts>.header .search-input-wrapper{position:relative}#dynamics365Accounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dynamics365Accounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dynamics365Accounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dynamics365Accounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dynamics365Accounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dynamics365Accounts>.header.selected-bar .close-button-wrapper{width:244px}#dynamics365Accounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dynamics365Accounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dynamics365Accounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dynamics365Accounts #add-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}#dynamics365Accounts #upload-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dynamics365Configuration-dialog{max-width:720px;width:720px}md-dialog.dynamics365Configuration-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Configuration-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Configuration-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Configuration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Configuration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Configuration-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Configuration-dialog .error-list{font-size:13px}md-dialog.dynamics365Configuration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Configuration-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Configuration-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Configuration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Configuration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dynamics365Account-item-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-item-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-item-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-item-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-item-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-item-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-item-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-dynamics365Account .header{height:76px;min-height:76px;max-height:76px}#integrations-dynamics365Account .header .goto-dynamics365Accounts-button{margin-right:16px}#integrations-dynamics365Account .header .dynamics365Account-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-dynamics365Account .header .dynamics365Account-image img{height:100%;width:auto;max-width:none}#integrations-dynamics365Account .header .subtitle{margin:6px 0 0 0}#integrations-dynamics365Account .dynamics365Account-detail-form-container{padding:24px;margin-bottom:24px}#integrations-dynamics365Account .dynamics365Account-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-dynamics365Account .dynamics365Account-detail-form-container .handle{cursor:move}#integrations-dynamics365Account .dynamics365Account-detail-form-container md-input-container md-switch{margin:0!important}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader{position:relative}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader.dropping .drop-text{display:flex}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .upload-button{margin-bottom:16px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image .media{max-height:100%}#integrations-dynamics365Account md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-dynamics365Account md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.freshdeskAccount-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshdeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskConfiguration-dialog .error-list{font-size:13px}md-dialog.freshdeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-item-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshdeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshdeskAccount .header .goto-freshdeskAccounts-button{margin-right:16px}#integrations-freshdeskAccount .header .freshdeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshdeskAccount .header .freshdeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshdeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .handle{cursor:move}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader{position:relative}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image .media{max-height:100%}#integrations-freshdeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshdeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshdeskAccounts{position:relative}#freshdeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshdeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshdeskAccounts>.header .logo .logo-text{font-size:24px}#freshdeskAccounts>.header md-icon{color:#fff}#freshdeskAccounts>.header .search-input-wrapper{position:relative}#freshdeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshdeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshdeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshdeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshdeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshdeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshdeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshdeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshdeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshdeskAccounts #add-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshdeskAccounts #upload-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.freshsalesAccount-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshsalesConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesConfiguration-dialog .error-list{font-size:13px}md-dialog.freshsalesConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-item-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshsalesAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshsalesAccount .header .goto-freshsalesAccounts-button{margin-right:16px}#integrations-freshsalesAccount .header .freshsalesAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshsalesAccount .header .freshsalesAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshsalesAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .handle{cursor:move}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader{position:relative}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image .media{max-height:100%}#integrations-freshsalesAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshsalesAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshsalesAccounts{position:relative}#freshsalesAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshsalesAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshsalesAccounts>.header .logo .logo-text{font-size:24px}#freshsalesAccounts>.header md-icon{color:#fff}#freshsalesAccounts>.header .search-input-wrapper{position:relative}#freshsalesAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshsalesAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshsalesAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshsalesAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshsalesAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshsalesAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshsalesAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshsalesAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshsalesAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshsalesAccounts #add-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshsalesAccounts #upload-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.salesforceAccount-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceConfiguration-dialog{max-width:720px;width:720px}md-dialog.salesforceConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceConfiguration-dialog .error-list{font-size:13px}md-dialog.salesforceConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceAccount-item-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-item-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-salesforceAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-salesforceAccount .header .goto-salesforceAccounts-button{margin-right:16px}#integrations-salesforceAccount .header .salesforceAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-salesforceAccount .header .salesforceAccount-image img{height:100%;width:auto;max-width:none}#integrations-salesforceAccount .header .subtitle{margin:6px 0 0 0}#integrations-salesforceAccount .salesforceAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-salesforceAccount .salesforceAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-salesforceAccount .salesforceAccount-detail-form-container .handle{cursor:move}#integrations-salesforceAccount .salesforceAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader{position:relative}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader.dropping .drop-text{display:flex}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image .media{max-height:100%}#integrations-salesforceAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-salesforceAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#salesforceAccounts{position:relative}#salesforceAccounts>.header{height:76px;min-height:76px;max-height:76px}#salesforceAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#salesforceAccounts>.header .logo .logo-text{font-size:24px}#salesforceAccounts>.header md-icon{color:#fff}#salesforceAccounts>.header .search-input-wrapper{position:relative}#salesforceAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#salesforceAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#salesforceAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#salesforceAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#salesforceAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#salesforceAccounts>.header.selected-bar .close-button-wrapper{width:244px}#salesforceAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#salesforceAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#salesforceAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#salesforceAccounts #add-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#salesforceAccounts #upload-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.servicenowAccount-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowConfiguration-dialog{max-width:720px;width:720px}md-dialog.servicenowConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowConfiguration-dialog .error-list{font-size:13px}md-dialog.servicenowConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowAccount-item-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-item-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-servicenowAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-servicenowAccount .header .goto-servicenowAccounts-button{margin-right:16px}#integrations-servicenowAccount .header .servicenowAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-servicenowAccount .header .servicenowAccount-image img{height:100%;width:auto;max-width:none}#integrations-servicenowAccount .header .subtitle{margin:6px 0 0 0}#integrations-servicenowAccount .servicenowAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-servicenowAccount .servicenowAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-servicenowAccount .servicenowAccount-detail-form-container .handle{cursor:move}#integrations-servicenowAccount .servicenowAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader{position:relative}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader.dropping .drop-text{display:flex}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image .media{max-height:100%}#integrations-servicenowAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-servicenowAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#servicenowAccounts{position:relative}#servicenowAccounts>.header{height:76px;min-height:76px;max-height:76px}#servicenowAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#servicenowAccounts>.header .logo .logo-text{font-size:24px}#servicenowAccounts>.header md-icon{color:#fff}#servicenowAccounts>.header .search-input-wrapper{position:relative}#servicenowAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#servicenowAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#servicenowAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#servicenowAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#servicenowAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#servicenowAccounts>.header.selected-bar .close-button-wrapper{width:244px}#servicenowAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#servicenowAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#servicenowAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#servicenowAccounts #add-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#servicenowAccounts #upload-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sugarcrmAccount-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmConfiguration-dialog{max-width:720px;width:720px}md-dialog.sugarcrmConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmConfiguration-dialog .error-list{font-size:13px}md-dialog.sugarcrmConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmAccount-item-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-item-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-sugarcrmAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-sugarcrmAccount .header .goto-sugarcrmAccounts-button{margin-right:16px}#integrations-sugarcrmAccount .header .sugarcrmAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-sugarcrmAccount .header .sugarcrmAccount-image img{height:100%;width:auto;max-width:none}#integrations-sugarcrmAccount .header .subtitle{margin:6px 0 0 0}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .handle{cursor:move}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader{position:relative}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader.dropping .drop-text{display:flex}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image .media{max-height:100%}#integrations-sugarcrmAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-sugarcrmAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#sugarcrmAccounts{position:relative}#sugarcrmAccounts>.header{height:76px;min-height:76px;max-height:76px}#sugarcrmAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#sugarcrmAccounts>.header .logo .logo-text{font-size:24px}#sugarcrmAccounts>.header md-icon{color:#fff}#sugarcrmAccounts>.header .search-input-wrapper{position:relative}#sugarcrmAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sugarcrmAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sugarcrmAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sugarcrmAccounts>.header.selected-bar .close-button-wrapper{width:244px}#sugarcrmAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sugarcrmAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sugarcrmAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sugarcrmAccounts #add-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#sugarcrmAccounts #upload-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.vtigerAccount-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerConfiguration-dialog{max-width:720px;width:720px}md-dialog.vtigerConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerConfiguration-dialog .error-list{font-size:13px}md-dialog.vtigerConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerAccount-item-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-item-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-vtigerAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-vtigerAccount .header .goto-vtigerAccounts-button{margin-right:16px}#integrations-vtigerAccount .header .vtigerAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-vtigerAccount .header .vtigerAccount-image img{height:100%;width:auto;max-width:none}#integrations-vtigerAccount .header .subtitle{margin:6px 0 0 0}#integrations-vtigerAccount .vtigerAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-vtigerAccount .vtigerAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-vtigerAccount .vtigerAccount-detail-form-container .handle{cursor:move}#integrations-vtigerAccount .vtigerAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader{position:relative}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader.dropping .drop-text{display:flex}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image .media{max-height:100%}#integrations-vtigerAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-vtigerAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#vtigerAccounts{position:relative}#vtigerAccounts>.header{height:76px;min-height:76px;max-height:76px}#vtigerAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#vtigerAccounts>.header .logo .logo-text{font-size:24px}#vtigerAccounts>.header md-icon{color:#fff}#vtigerAccounts>.header .search-input-wrapper{position:relative}#vtigerAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#vtigerAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#vtigerAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#vtigerAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#vtigerAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#vtigerAccounts>.header.selected-bar .close-button-wrapper{width:244px}#vtigerAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#vtigerAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#vtigerAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#vtigerAccounts #add-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#vtigerAccounts #upload-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zendeskAccount-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zendeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-item-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zendeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zendeskAccount .header .goto-zendeskAccounts-button{margin-right:16px}#integrations-zendeskAccount .header .zendeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zendeskAccount .header .zendeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-zendeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-zendeskAccount .zendeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zendeskAccount .zendeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zendeskAccount .zendeskAccount-detail-form-container .handle{cursor:move}#integrations-zendeskAccount .zendeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader{position:relative}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image .media{max-height:100%}#integrations-zendeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zendeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.zendeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.zendeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskConfiguration-dialog .error-list{font-size:13px}md-dialog.zendeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#zendeskAccounts{position:relative}#zendeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#zendeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zendeskAccounts>.header .logo .logo-text{font-size:24px}#zendeskAccounts>.header md-icon{color:#fff}#zendeskAccounts>.header .search-input-wrapper{position:relative}#zendeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zendeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zendeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zendeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zendeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zendeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zendeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zendeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zendeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zendeskAccounts #add-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zendeskAccounts #upload-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zohoAccount-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-dialog .error-list{font-size:13px}md-dialog.zohoAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoConfiguration-dialog{max-width:720px;width:720px}md-dialog.zohoConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zohoConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zohoConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoConfiguration-dialog .error-list{font-size:13px}md-dialog.zohoConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zohoConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zohoConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoAccount-item-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-item-dialog .error-list{font-size:13px}md-dialog.zohoAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zohoAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zohoAccount .header .goto-zohoAccounts-button{margin-right:16px}#integrations-zohoAccount .header .zohoAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zohoAccount .header .zohoAccount-image img{height:100%;width:auto;max-width:none}#integrations-zohoAccount .header .subtitle{margin:6px 0 0 0}#integrations-zohoAccount .zohoAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zohoAccount .zohoAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zohoAccount .zohoAccount-detail-form-container .handle{cursor:move}#integrations-zohoAccount .zohoAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader{position:relative}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image .media{max-height:100%}#integrations-zohoAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zohoAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#zohoAccounts{position:relative}#zohoAccounts>.header{height:76px;min-height:76px;max-height:76px}#zohoAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zohoAccounts>.header .logo .logo-text{font-size:24px}#zohoAccounts>.header md-icon{color:#fff}#zohoAccounts>.header .search-input-wrapper{position:relative}#zohoAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zohoAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zohoAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zohoAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zohoAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zohoAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zohoAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zohoAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zohoAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zohoAccounts #add-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zohoAccounts #upload-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.project-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.session-dialog{max-width:720px;width:720px}md-dialog.session-dialog md-dialog-content{display:block;position:relative}md-dialog.session-dialog md-toolbar .title{font-size:17px}md-dialog.session-dialog md-input-container textarea{min-height:150px}md-dialog.session-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.session-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.session-dialog .date-container{padding:16px 0 24px 0}md-dialog.session-dialog .error-list{font-size:13px}md-dialog.session-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.session-dialog .error-list .error .message{font-weight:500}md-dialog.session-dialog .error-list .error .md-button{margin:0}md-dialog.session-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.session-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#jscripty-project .header{height:76px;min-height:76px;max-height:76px}#jscripty-project .header .goto-projects-button{margin-right:16px}#jscripty-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#jscripty-project .header .project-image img{height:100%;width:auto;max-width:none}#jscripty-project .header .subtitle{margin:6px 0 0 0}#jscripty-project .project-detail-form-container{padding:24px;margin-bottom:24px}#jscripty-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#jscripty-project .project-detail-form-container .handle{cursor:move}#jscripty-project .project-detail-form-container md-input-container md-switch{margin:0!important}#jscripty-project .project-detail-form-container #project-image-uploader{position:relative}#jscripty-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#jscripty-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#jscripty-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#jscripty-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#jscripty-project md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#jscripty-project md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container.font-size-12 td.md-cell{font-size:12px!important}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}#projects #upload-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.mailCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.mailCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.mailCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.mailCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailCannedAnswer-dialog .error-list{font-size:13px}md-dialog.mailCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.mailCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.mailCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailAccount .header{height:76px;min-height:76px;max-height:76px}#mail-mailAccount .header .goto-mailAccounts-button{margin-right:16px}#mail-mailAccount .header .mailAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailAccount .header .mailAccount-image img{height:100%;width:auto;max-width:none}#mail-mailAccount .header .subtitle{margin:6px 0 0 0}#mail-mailAccount .mailAccount-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailAccount .mailAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailAccount .mailAccount-detail-form-container .handle{cursor:move}#mail-mailAccount .mailAccount-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader{position:relative}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader.dropping .drop-text{display:flex}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .upload-button{margin-bottom:16px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image .media{max-height:100%}#mail-mailAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailAccounts{position:relative}#mailAccounts>.header{height:76px;min-height:76px;max-height:76px}#mailAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#mailAccounts>.header .logo .logo-text{font-size:24px}#mailAccounts>.header md-icon{color:#fff}#mailAccounts>.header .search-input-wrapper{position:relative}#mailAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailAccounts>.header.selected-bar .close-button-wrapper{width:244px}#mailAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailAccounts #add-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#mailAccounts #upload-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailQueue-dialog{max-width:720px;width:720px}md-dialog.mailQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.mailQueue-dialog md-toolbar .title{font-size:17px}md-dialog.mailQueue-dialog md-input-container textarea{min-height:150px}md-dialog.mailQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailQueue-dialog .error-list{font-size:13px}md-dialog.mailQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailQueue-dialog .error-list .error .message{font-weight:500}md-dialog.mailQueue-dialog .error-list .error .md-button{margin:0}md-dialog.mailQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailQueue .header{height:76px;min-height:76px;max-height:76px}#mail-mailQueue .header .goto-mailQueues-button{margin-right:16px}#mail-mailQueue .header .mailQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailQueue .header .mailQueue-image img{height:100%;width:auto;max-width:none}#mail-mailQueue .header .subtitle{margin:6px 0 0 0}#mail-mailQueue .mailQueue-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailQueue .mailQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailQueue .mailQueue-detail-form-container .handle{cursor:move}#mail-mailQueue .mailQueue-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader{position:relative}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader.dropping .drop-text{display:flex}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .upload-button{margin-bottom:16px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image .media{max-height:100%}#mail-mailQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailQueues{position:relative}#mailQueues>.header{height:76px;min-height:76px;max-height:76px}#mailQueues>.header .logo .logo-icon{margin:0 16px 0 0}#mailQueues>.header .logo .logo-text{font-size:24px}#mailQueues>.header md-icon{color:#fff}#mailQueues>.header .search-input-wrapper{position:relative}#mailQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailQueues>.header.selected-bar .close-button-wrapper{width:244px}#mailQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailQueues #add-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#mailQueues #upload-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailSubstatus-dialog{max-width:720px;width:720px}md-dialog.mailSubstatus-dialog md-dialog-content{display:block;position:relative}md-dialog.mailSubstatus-dialog md-toolbar .title{font-size:17px}md-dialog.mailSubstatus-dialog md-input-container textarea{min-height:150px}md-dialog.mailSubstatus-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailSubstatus-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailSubstatus-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailSubstatus-dialog .error-list{font-size:13px}md-dialog.mailSubstatus-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailSubstatus-dialog .error-list .error .message{font-weight:500}md-dialog.mailSubstatus-dialog .error-list .error .md-button{margin:0}md-dialog.mailSubstatus-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailSubstatus-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mailSubtatuses{position:relative}#mailSubtatuses>.header{height:76px;min-height:76px;max-height:76px}#mailSubtatuses>.header .logo .logo-icon{margin:0 16px 0 0}#mailSubtatuses>.header .logo .logo-text{font-size:24px}#mailSubtatuses>.header md-icon{color:#fff}#mailSubtatuses>.header .search-input-wrapper{position:relative}#mailSubtatuses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailSubtatuses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailSubtatuses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailSubtatuses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailSubtatuses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailSubtatuses>.header.selected-bar .close-button-wrapper{width:244px}#mailSubtatuses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailSubtatuses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailSubtatuses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailSubtatuses #add-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#mailSubtatuses #upload-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.plugin-dialog{max-width:720px;width:720px}md-dialog.plugin-dialog md-dialog-content{display:block;position:relative}md-dialog.plugin-dialog md-toolbar .title{font-size:17px}md-dialog.plugin-dialog md-input-container textarea{min-height:150px}md-dialog.plugin-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.plugin-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.plugin-dialog .date-container{padding:16px 0 24px 0}md-dialog.plugin-dialog .error-list{font-size:13px}md-dialog.plugin-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.plugin-dialog .error-list .error .message{font-weight:500}md-dialog.plugin-dialog .error-list .error .md-button{margin:0}md-dialog.plugin-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.plugin-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#marketplace-plugin .header{height:76px;min-height:76px;max-height:76px}#marketplace-plugin .header .goto-plugins-button{margin-right:16px}#marketplace-plugin .header .plugin-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#marketplace-plugin .header .plugin-image img{height:100%;width:auto;max-width:none}#marketplace-plugin .header .subtitle{margin:6px 0 0 0}#marketplace-plugin .plugin-detail-form-container{padding:24px;margin-bottom:24px}#marketplace-plugin .plugin-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#marketplace-plugin .plugin-detail-form-container .handle{cursor:move}#marketplace-plugin .plugin-detail-form-container md-input-container md-switch{margin:0!important}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader{position:relative}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader.dropping .drop-text{display:flex}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .upload-button{margin-bottom:16px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image .media{max-height:100%}#marketplace-plugin md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#marketplace-plugin md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container.font-size-12 td.md-cell{font-size:12px!important}#plugins{position:relative}#plugins>.header{height:76px;min-height:76px;max-height:76px}#plugins>.header .logo .logo-icon{margin:0 16px 0 0}#plugins>.header .logo .logo-text{font-size:24px}#plugins>.header md-icon{color:#fff}#plugins>.header .search-input-wrapper{position:relative}#plugins>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#plugins>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#plugins>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#plugins>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#plugins>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#plugins>.header.selected-bar .close-button-wrapper{width:244px}#plugins>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#plugins>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#plugins>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#plugins #add-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}#plugins #upload-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .plugin-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .plugin-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.ivrCampaign-dialog{max-width:720px;width:720px}md-dialog.ivrCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.ivrCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.ivrCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.ivrCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.ivrCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.ivrCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.ivrCampaign-dialog .error-list{font-size:13px}md-dialog.ivrCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.ivrCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.ivrCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.ivrCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.ivrCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-ivrCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-ivrCampaign .header .goto-ivrCampaigns-button{margin-right:16px}#motiondialer-ivrCampaign .header .ivrCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-ivrCampaign .header .ivrCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-ivrCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .handle{cursor:move}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader{position:relative}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image .media{max-height:100%}#motiondialer-ivrCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-ivrCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#ivrCampaigns{position:relative}#ivrCampaigns>.header{height:76px;min-height:76px;max-height:76px}#ivrCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#ivrCampaigns>.header .logo .logo-text{font-size:24px}#ivrCampaigns>.header md-icon{color:#fff}#ivrCampaigns>.header .search-input-wrapper{position:relative}#ivrCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#ivrCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#ivrCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#ivrCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#ivrCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#ivrCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#ivrCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#ivrCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#ivrCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#ivrCampaigns #add-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#ivrCampaigns #upload-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.queueCampaign-dialog{max-width:720px;width:720px}md-dialog.queueCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.queueCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.queueCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.queueCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.queueCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.queueCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.queueCampaign-dialog .error-list{font-size:13px}md-dialog.queueCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.queueCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.queueCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.queueCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.queueCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-queueCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-queueCampaign .header .goto-queueCampaigns-button{margin-right:16px}#motiondialer-queueCampaign .header .queueCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-queueCampaign .header .queueCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-queueCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-queueCampaign .queueCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-queueCampaign .queueCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-queueCampaign .queueCampaign-detail-form-container .handle{cursor:move}#motiondialer-queueCampaign .queueCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader{position:relative}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image .media{max-height:100%}#motiondialer-queueCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-queueCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#queueCampaigns{position:relative}#queueCampaigns>.header{height:76px;min-height:76px;max-height:76px}#queueCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#queueCampaigns>.header .logo .logo-text{font-size:24px}#queueCampaigns>.header md-icon{color:#fff}#queueCampaigns>.header .search-input-wrapper{position:relative}#queueCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#queueCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#queueCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#queueCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#queueCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#queueCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#queueCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#queueCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#queueCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#queueCampaigns #add-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#queueCampaigns #upload-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.predictive-dialog{max-width:720px;width:720px}md-dialog.predictive-dialog md-dialog-content{display:block;position:relative}md-dialog.predictive-dialog md-toolbar .title{font-size:17px}md-dialog.predictive-dialog md-input-container textarea{min-height:150px}md-dialog.predictive-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.predictive-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.predictive-dialog .date-container{padding:16px 0 24px 0}md-dialog.predictive-dialog .error-list{font-size:13px}md-dialog.predictive-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.predictive-dialog .error-list .error .message{font-weight:500}md-dialog.predictive-dialog .error-list .error .md-button{margin:0}md-dialog.predictive-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.predictive-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.openchannelCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelCannedAnswer-dialog .error-list{font-size:13px}md-dialog.openchannelCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelAccount .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelAccount .header .goto-openchannelAccounts-button{margin-right:16px}#openchannel-openchannelAccount .header .openchannelAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelAccount .header .openchannelAccount-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelAccount .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelAccount .openchannelAccount-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .handle{cursor:move}#openchannel-openchannelAccount .openchannelAccount-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader{position:relative}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image .media{max-height:100%}#openchannel-openchannelAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelAccounts{position:relative}#openchannelAccounts>.header{height:76px;min-height:76px;max-height:76px}#openchannelAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelAccounts>.header .logo .logo-text{font-size:24px}#openchannelAccounts>.header md-icon{color:#fff}#openchannelAccounts>.header .search-input-wrapper{position:relative}#openchannelAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelAccounts>.header.selected-bar .close-button-wrapper{width:244px}#openchannelAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelAccounts #add-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelAccounts #upload-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.openchannelQueue-dialog{max-width:720px;width:720px}md-dialog.openchannelQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelQueue-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelQueue-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelQueue-dialog .error-list{font-size:13px}md-dialog.openchannelQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelQueue-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelQueue-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelQueue .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelQueue .header .goto-openchannelQueues-button{margin-right:16px}#openchannel-openchannelQueue .header .openchannelQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelQueue .header .openchannelQueue-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelQueue .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelQueue .openchannelQueue-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .handle{cursor:move}#openchannel-openchannelQueue .openchannelQueue-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader{position:relative}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image .media{max-height:100%}#openchannel-openchannelQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelQueues{position:relative}#openchannelQueues>.header{height:76px;min-height:76px;max-height:76px}#openchannelQueues>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelQueues>.header .logo .logo-text{font-size:24px}#openchannelQueues>.header md-icon{color:#fff}#openchannelQueues>.header .search-input-wrapper{position:relative}#openchannelQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelQueues>.header.selected-bar .close-button-wrapper{width:244px}#openchannelQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelQueues #add-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelQueues #upload-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#plugin .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#cloudProviders{position:relative}#cloudProviders>.header{height:76px;min-height:76px;max-height:76px}#cloudProviders>.header .logo .logo-icon{margin:0 16px 0 0}#cloudProviders>.header .logo .logo-text{font-size:24px}#cloudProviders>.header md-icon{color:#fff}#cloudProviders>.header .search-input-wrapper{position:relative}#cloudProviders>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cloudProviders>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cloudProviders>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cloudProviders>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cloudProviders>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cloudProviders>.header.selected-bar .close-button-wrapper{width:244px}#cloudProviders>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cloudProviders>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cloudProviders>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cloudProviders #add-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}#cloudProviders #upload-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cloudProvider-dialog{max-width:720px;width:720px}md-dialog.cloudProvider-dialog md-dialog-content{display:block;position:relative}md-dialog.cloudProvider-dialog md-toolbar .title{font-size:17px}md-dialog.cloudProvider-dialog md-input-container textarea{min-height:150px}md-dialog.cloudProvider-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cloudProvider-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cloudProvider-dialog .date-container{padding:16px 0 24px 0}md-dialog.cloudProvider-dialog .error-list{font-size:13px}md-dialog.cloudProvider-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cloudProvider-dialog .error-list .error .message{font-weight:500}md-dialog.cloudProvider-dialog .error-list .error .md-button{margin:0}md-dialog.cloudProvider-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cloudProvider-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customization-dialog{max-width:720px;width:720px}md-dialog.customization-dialog md-dialog-content{display:block;position:relative}md-dialog.customization-dialog md-toolbar .title{font-size:17px}md-dialog.customization-dialog md-input-container textarea{min-height:150px}md-dialog.customization-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customization-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customization-dialog .date-container{padding:16px 0 24px 0}md-dialog.customization-dialog .error-list{font-size:13px}md-dialog.customization-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customization-dialog .error-list .error .message{font-weight:500}md-dialog.customization-dialog .error-list .error .md-button{margin:0}md-dialog.customization-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customization-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customizations{position:relative}#customizations>.header{height:76px;min-height:76px;max-height:76px}#customizations>.header .logo .logo-icon{margin:0 16px 0 0}#customizations>.header .logo .logo-text{font-size:24px}#customizations>.header md-icon{color:#fff}#customizations>.header .search-input-wrapper{position:relative}#customizations>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customizations>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customizations>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customizations>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customizations>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customizations>.header.selected-bar .close-button-wrapper{width:244px}#customizations>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customizations>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customizations>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customizations>.content .customization-detail-form-container{padding:24px;margin-bottom:24px}#customizations>.content .customization-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#customizations>.content .customization-detail-form-container .handle{cursor:move}#customizations>.content .customization-detail-form-container md-input-container md-switch{margin:0!important}#customizations>.content .customization-detail-form-container #customization-image-uploader{position:relative}#customizations>.content .customization-detail-form-container #customization-image-uploader.dropping .drop-text{display:flex}#customizations>.content .customization-detail-form-container #customization-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#customizations>.content .customization-detail-form-container #customization-image-uploader .upload-button{margin-bottom:16px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image .media{max-height:100%}#customizations #add-customization-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.general-dialog{max-width:720px;width:720px}md-dialog.general-dialog md-dialog-content{display:block;position:relative}md-dialog.general-dialog md-toolbar .title{font-size:17px}md-dialog.general-dialog md-input-container textarea{min-height:150px}md-dialog.general-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.general-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.general-dialog .date-container{padding:16px 0 24px 0}md-dialog.general-dialog .error-list{font-size:13px}md-dialog.general-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.general-dialog .error-list .error .message{font-weight:500}md-dialog.general-dialog .error-list .error .md-button{margin:0}md-dialog.general-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.general-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#generals{position:relative}#generals>.header{height:76px;min-height:76px;max-height:76px}#generals>.header .logo .logo-icon{margin:0 16px 0 0}#generals>.header .logo .logo-text{font-size:24px}#generals>.header md-icon{color:#fff}#generals>.header .search-input-wrapper{position:relative}#generals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#generals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#generals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#generals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#generals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#generals>.header.selected-bar .close-button-wrapper{width:244px}#generals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#generals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#generals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#generals>.content .general-detail-form-container{padding:24px;margin-bottom:24px}#generals>.content .general-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#generals>.content .general-detail-form-container .handle{cursor:move}#generals>.content .general-detail-form-container md-input-container md-switch{margin:0!important}#generals>.content .general-detail-form-container #general-image-uploader{position:relative}#generals>.content .general-detail-form-container #general-image-uploader.dropping .drop-text{display:flex}#generals>.content .general-detail-form-container #general-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#generals>.content .general-detail-form-container #general-image-uploader .upload-button{margin-bottom:16px}#generals>.content .general-detail-form-container #general-image-uploader .general-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#generals>.content .general-detail-form-container #general-image-uploader .general-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#generals>.content .general-detail-form-container #general-image-uploader .general-image .media{max-height:100%}#generals #add-general-button{position:fixed;bottom:8px;right:8px;padding:0}#license{position:relative}#license .blink{animation:blinker 2s linear infinite}#license>.header{height:76px;min-height:76px;max-height:76px}#license>.header .logo .logo-icon{margin:0 16px 0 0}#license>.header .logo .logo-text{font-size:24px}#license>.header md-icon{color:#fff}#license>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#license>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#license>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#license>.content .badge{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}md-dialog.request-dialog{max-width:720px;width:720px}md-dialog.request-dialog md-dialog-content{display:block;position:relative}md-dialog.request-dialog md-toolbar .title{font-size:17px}md-dialog.request-dialog md-input-container textarea{min-height:150px}md-dialog.request-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.request-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.request-dialog .date-container{padding:16px 0 24px 0}md-dialog.request-dialog .error-list{font-size:13px}md-dialog.request-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.request-dialog .error-list .error .message{font-weight:500}md-dialog.request-dialog .error-list .error .md-button{margin:0}md-dialog.request-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.request-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.update-dialog{max-width:720px;width:720px}md-dialog.update-dialog md-dialog-content{display:block;position:relative}md-dialog.update-dialog md-toolbar .title{font-size:17px}md-dialog.update-dialog md-input-container textarea{min-height:60px}md-dialog.update-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.update-dialog .error-list{font-size:13px}md-dialog.update-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.update-dialog .error-list .error .message{font-weight:500}md-dialog.update-dialog .error-list .error .md-button{margin:0}md-dialog.update-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.update-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.network-dialog{max-width:720px;width:720px}md-dialog.network-dialog md-dialog-content{display:block;position:relative}md-dialog.network-dialog md-toolbar .title{font-size:17px}md-dialog.network-dialog md-input-container textarea{min-height:150px}md-dialog.network-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.network-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.network-dialog .date-container{padding:16px 0 24px 0}md-dialog.network-dialog .error-list{font-size:13px}md-dialog.network-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.network-dialog .error-list .error .message{font-weight:500}md-dialog.network-dialog .error-list .error .md-button{margin:0}md-dialog.network-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.network-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#networks{position:relative}#networks>.header{height:76px;min-height:76px;max-height:76px}#networks>.header .logo .logo-icon{margin:0 16px 0 0}#networks>.header .logo .logo-text{font-size:24px}#networks>.header md-icon{color:#fff}#networks>.header .search-input-wrapper{position:relative}#networks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#networks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#networks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#networks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#networks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#networks>.header.selected-bar .close-button-wrapper{width:244px}#networks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#networks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#networks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#networks #add-network-button{position:fixed;bottom:8px;right:8px;padding:0}#networks #upload-network-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smtp-dialog{max-width:720px;width:720px}md-dialog.smtp-dialog md-dialog-content{display:block;position:relative}md-dialog.smtp-dialog md-toolbar .title{font-size:17px}md-dialog.smtp-dialog md-input-container textarea{min-height:150px}md-dialog.smtp-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smtp-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smtp-dialog .date-container{padding:16px 0 24px 0}md-dialog.smtp-dialog .error-list{font-size:13px}md-dialog.smtp-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smtp-dialog .error-list .error .message{font-weight:500}md-dialog.smtp-dialog .error-list .error .md-button{margin:0}md-dialog.smtp-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smtp-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#smtps{position:relative}#smtps>.header{height:76px;min-height:76px;max-height:76px}#smtps>.header .logo .logo-icon{margin:0 16px 0 0}#smtps>.header .logo .logo-text{font-size:24px}#smtps>.header md-icon{color:#fff}#smtps>.header .search-input-wrapper{position:relative}#smtps>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smtps>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smtps>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smtps>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smtps>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smtps>.header.selected-bar .close-button-wrapper{width:244px}#smtps>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smtps>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smtps>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smtps>.content .smtp-detail-form-container{padding:24px;margin-bottom:24px}#smtps>.content .smtp-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#smtps>.content .smtp-detail-form-container .handle{cursor:move}#smtps>.content .smtp-detail-form-container md-input-container md-switch{margin:0!important}#smtps>.content .smtp-detail-form-container #smtp-image-uploader{position:relative}#smtps>.content .smtp-detail-form-container #smtp-image-uploader.dropping .drop-text{display:flex}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .upload-button{margin-bottom:16px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image .media{max-height:100%}#smtps #add-smtp-button{position:fixed;bottom:8px;right:8px;padding:0}#system>.header{height:76px;min-height:76px;max-height:76px}#system>.header .logo .logo-icon{margin:0 16px 0 0}#system>.header .logo .logo-text{font-size:24px}#system>.header md-icon{color:#fff}#system .system-detail-form-container{padding:24px;margin-bottom:24px}#system .system-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#system .system-detail-form-container .handle{cursor:move}#system .system-detail-form-container md-input-container md-switch{margin:0!important}#system .system-detail-form-container #system-image-uploader{position:relative}#system .system-detail-form-container #system-image-uploader.dropping .drop-text{display:flex}#system .system-detail-form-container #system-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#system .system-detail-form-container #system-image-uploader .upload-button{margin-bottom:16px}#system .system-detail-form-container #system-image-uploader .system-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#system .system-detail-form-container #system-image-uploader .system-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#system .system-detail-form-container #system-image-uploader .system-image .media{max-height:100%}#updates{position:relative}#updates>.header{height:76px;min-height:76px;max-height:76px}#updates>.header .logo .logo-icon{margin:0 16px 0 0}#updates>.header .logo .logo-text{font-size:24px}#updates>.header md-icon{color:#fff}#updates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#updates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#updates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.smsCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.smsCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.smsCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.smsCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsCannedAnswer-dialog .error-list{font-size:13px}md-dialog.smsCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.smsCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.smsCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsAccount .header{height:76px;min-height:76px;max-height:76px}#sms-smsAccount .header .goto-smsAccounts-button{margin-right:16px}#sms-smsAccount .header .smsAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsAccount .header .smsAccount-image img{height:100%;width:auto;max-width:none}#sms-smsAccount .header .subtitle{margin:6px 0 0 0}#sms-smsAccount .smsAccount-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsAccount .smsAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsAccount .smsAccount-detail-form-container .handle{cursor:move}#sms-smsAccount .smsAccount-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader{position:relative}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader.dropping .drop-text{display:flex}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .upload-button{margin-bottom:16px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image .media{max-height:100%}#sms-smsAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsAccounts{position:relative}#smsAccounts>.header{height:76px;min-height:76px;max-height:76px}#smsAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#smsAccounts>.header .logo .logo-text{font-size:24px}#smsAccounts>.header md-icon{color:#fff}#smsAccounts>.header .search-input-wrapper{position:relative}#smsAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsAccounts>.header.selected-bar .close-button-wrapper{width:244px}#smsAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsAccounts #add-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#smsAccounts #upload-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smsQueue-dialog{max-width:720px;width:720px}md-dialog.smsQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.smsQueue-dialog md-toolbar .title{font-size:17px}md-dialog.smsQueue-dialog md-input-container textarea{min-height:150px}md-dialog.smsQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsQueue-dialog .error-list{font-size:13px}md-dialog.smsQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsQueue-dialog .error-list .error .message{font-weight:500}md-dialog.smsQueue-dialog .error-list .error .md-button{margin:0}md-dialog.smsQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsQueue .header{height:76px;min-height:76px;max-height:76px}#sms-smsQueue .header .goto-smsQueues-button{margin-right:16px}#sms-smsQueue .header .smsQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsQueue .header .smsQueue-image img{height:100%;width:auto;max-width:none}#sms-smsQueue .header .subtitle{margin:6px 0 0 0}#sms-smsQueue .smsQueue-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsQueue .smsQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsQueue .smsQueue-detail-form-container .handle{cursor:move}#sms-smsQueue .smsQueue-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader{position:relative}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader.dropping .drop-text{display:flex}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .upload-button{margin-bottom:16px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image .media{max-height:100%}#sms-smsQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsQueues{position:relative}#smsQueues>.header{height:76px;min-height:76px;max-height:76px}#smsQueues>.header .logo .logo-icon{margin:0 16px 0 0}#smsQueues>.header .logo .logo-text{font-size:24px}#smsQueues>.header md-icon{color:#fff}#smsQueues>.header .search-input-wrapper{position:relative}#smsQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsQueues>.header.selected-bar .close-button-wrapper{width:244px}#smsQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsQueues #add-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#smsQueues #upload-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#agents{position:relative}#agents>.header{height:76px;min-height:76px;max-height:76px}#agents>.header .logo .logo-icon{margin:0 16px 0 0}#agents>.header .logo .logo-text{font-size:24px}#agents>.header md-icon{color:#fff}#agents>.header .search-input-wrapper{position:relative}#agents>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#agents>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#agents>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#agents>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#agents>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#agents>.header.selected-bar .close-button-wrapper{width:244px}#agents>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#agents>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#agents>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#agents #add-agent-button{position:fixed;bottom:8px;right:8px;padding:0}#agents #upload-agent-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-agent .header{height:76px;min-height:76px;max-height:76px}#staff-agent .header .goto-agents-button{margin-right:16px}#staff-agent .header .agent-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-agent .header .agent-image img{height:100%;width:auto;max-width:none}#staff-agent .header .subtitle{margin:6px 0 0 0}#staff-agent .agent-detail-form-container{padding:24px;margin-bottom:24px}#staff-agent .agent-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-agent .agent-detail-form-container .handle{cursor:move}#staff-agent .agent-detail-form-container md-input-container md-switch{margin:0!important}#staff-agent .agent-detail-form-container #agent-image-uploader{position:relative}#staff-agent .agent-detail-form-container #agent-image-uploader.dropping .drop-text{display:flex}#staff-agent .agent-detail-form-container #agent-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-agent .agent-detail-form-container #agent-image-uploader .upload-button{margin-bottom:16px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image .media{max-height:100%}#staff-agent md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-agent md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-agent md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-agent md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.team-dialog{max-width:720px;width:720px}md-dialog.team-dialog md-dialog-content{display:block;position:relative}md-dialog.team-dialog md-toolbar .title{font-size:17px}md-dialog.team-dialog md-input-container textarea{min-height:150px}md-dialog.team-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.team-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.team-dialog .date-container{padding:16px 0 24px 0}md-dialog.team-dialog .error-list{font-size:13px}md-dialog.team-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.team-dialog .error-list .error .message{font-weight:500}md-dialog.team-dialog .error-list .error .md-button{margin:0}md-dialog.team-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.team-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#teams{position:relative}#teams>.header{height:76px;min-height:76px;max-height:76px}#teams>.header .logo .logo-icon{margin:0 16px 0 0}#teams>.header .logo .logo-text{font-size:24px}#teams>.header md-icon{color:#fff}#teams>.header .search-input-wrapper{position:relative}#teams>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#teams>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#teams>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#teams>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#teams>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#teams>.header.selected-bar .close-button-wrapper{width:244px}#teams>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#teams>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#teams>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#teams #add-team-button{position:fixed;bottom:8px;right:8px;padding:0}#teams #upload-team-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.telephone-dialog{max-width:720px;width:720px}md-dialog.telephone-dialog md-dialog-content{display:block;position:relative}md-dialog.telephone-dialog md-toolbar .title{font-size:17px}md-dialog.telephone-dialog md-input-container textarea{min-height:150px}md-dialog.telephone-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.telephone-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.telephone-dialog .date-container{padding:16px 0 24px 0}md-dialog.telephone-dialog .error-list{font-size:13px}md-dialog.telephone-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.telephone-dialog .error-list .error .message{font-weight:500}md-dialog.telephone-dialog .error-list .error .md-button{margin:0}md-dialog.telephone-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.telephone-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-telephone .header{height:76px;min-height:76px;max-height:76px}#staff-telephone .header .goto-telephones-button{margin-right:16px}#staff-telephone .header .telephone-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-telephone .header .telephone-image img{height:100%;width:auto;max-width:none}#staff-telephone .header .subtitle{margin:6px 0 0 0}#staff-telephone .telephone-detail-form-container{padding:24px;margin-bottom:24px}#staff-telephone .telephone-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-telephone .telephone-detail-form-container .handle{cursor:move}#staff-telephone .telephone-detail-form-container md-input-container md-switch{margin:0!important}#staff-telephone .telephone-detail-form-container #telephone-image-uploader{position:relative}#staff-telephone .telephone-detail-form-container #telephone-image-uploader.dropping .drop-text{display:flex}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .upload-button{margin-bottom:16px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image .media{max-height:100%}#staff-telephone md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-telephone md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container.font-size-12 td.md-cell{font-size:12px!important}#telephones{position:relative}#telephones>.header{height:76px;min-height:76px;max-height:76px}#telephones>.header .logo .logo-icon{margin:0 16px 0 0}#telephones>.header .logo .logo-text{font-size:24px}#telephones>.header md-icon{color:#fff}#telephones>.header .search-input-wrapper{position:relative}#telephones>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#telephones>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#telephones>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#telephones>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#telephones>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#telephones>.header.selected-bar .close-button-wrapper{width:244px}#telephones>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#telephones>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#telephones>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#telephones #add-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}#telephones #upload-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.userProfile-dialog{max-width:720px;width:720px}md-dialog.userProfile-dialog md-dialog-content{display:block;position:relative}md-dialog.userProfile-dialog md-toolbar .title{font-size:17px}md-dialog.userProfile-dialog md-input-container textarea{min-height:150px}md-dialog.userProfile-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.userProfile-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.userProfile-dialog .date-container{padding:16px 0 24px 0}md-dialog.userProfile-dialog .error-list{font-size:13px}md-dialog.userProfile-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.userProfile-dialog .error-list .error .message{font-weight:500}md-dialog.userProfile-dialog .error-list .error .md-button{margin:0}md-dialog.userProfile-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.userProfile-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-userProfile .header{height:76px;min-height:76px;max-height:76px}#staff-userProfile .header .goto-userProfiles-button{margin-right:16px}#staff-userProfile .header .userProfile-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-userProfile .header .userProfile-image img{height:100%;width:auto;max-width:none}#staff-userProfile .header .subtitle{margin:6px 0 0 0}#staff-userProfile .userProfile-detail-form-container{padding:24px;margin-bottom:24px}#staff-userProfile .userProfile-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-userProfile .userProfile-detail-form-container .handle{cursor:move}#staff-userProfile .userProfile-detail-form-container md-input-container md-switch{margin:0!important}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader{position:relative}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader.dropping .drop-text{display:flex}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .upload-button{margin-bottom:16px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image .media{max-height:100%}#staff-userProfile md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-userProfile md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container.font-size-12 td.md-cell{font-size:12px!important}#userProfiles{position:relative}#userProfiles>.header{height:76px;min-height:76px;max-height:76px}#userProfiles>.header .logo .logo-icon{margin:0 16px 0 0}#userProfiles>.header .logo .logo-text{font-size:24px}#userProfiles>.header md-icon{color:#fff}#userProfiles>.header .search-input-wrapper{position:relative}#userProfiles>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#userProfiles>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#userProfiles>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#userProfiles>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#userProfiles>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#userProfiles>.header.selected-bar .close-button-wrapper{width:244px}#userProfiles>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#userProfiles>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#userProfiles>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#userProfiles #add-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}#userProfiles #upload-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.user-dialog{max-width:720px;width:720px}md-dialog.user-dialog md-dialog-content{display:block;position:relative}md-dialog.user-dialog md-toolbar .title{font-size:17px}md-dialog.user-dialog md-input-container textarea{min-height:150px}md-dialog.user-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.user-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.user-dialog .date-container{padding:16px 0 24px 0}md-dialog.user-dialog .error-list{font-size:13px}md-dialog.user-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.user-dialog .error-list .error .message{font-weight:500}md-dialog.user-dialog .error-list .error .md-button{margin:0}md-dialog.user-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.user-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-user .header{height:76px;min-height:76px;max-height:76px}#staff-user .header .goto-users-button{margin-right:16px}#staff-user .header .user-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-user .header .user-image img{height:100%;width:auto;max-width:none}#staff-user .header .subtitle{margin:6px 0 0 0}#staff-user .user-detail-form-container{padding:24px;margin-bottom:24px}#staff-user .user-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-user .user-detail-form-container .handle{cursor:move}#staff-user .user-detail-form-container md-input-container md-switch{margin:0!important}#staff-user .user-detail-form-container #user-image-uploader{position:relative}#staff-user .user-detail-form-container #user-image-uploader.dropping .drop-text{display:flex}#staff-user .user-detail-form-container #user-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-user .user-detail-form-container #user-image-uploader .upload-button{margin-bottom:16px}#staff-user .user-detail-form-container #user-image-uploader .user-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-user .user-detail-form-container #user-image-uploader .user-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-user .user-detail-form-container #user-image-uploader .user-image .media{max-height:100%}#staff-user md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-user md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-user md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-user md-table-container.font-size-12 td.md-cell{font-size:12px!important}#users{position:relative}#users>.header{height:76px;min-height:76px;max-height:76px}#users>.header .logo .logo-icon{margin:0 16px 0 0}#users>.header .logo .logo-text{font-size:24px}#users>.header md-icon{color:#fff}#users>.header .search-input-wrapper{position:relative}#users>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#users>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#users>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#users>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#users>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#users>.header.selected-bar .close-button-wrapper{width:244px}#users>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#users>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#users>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#users #add-user-button{position:fixed;bottom:8px;right:8px;padding:0}#users #upload-user-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers{position:relative}#cannedAnswers>.header{height:76px;min-height:76px;max-height:76px}#cannedAnswers>.header .logo .logo-icon{margin:0 16px 0 0}#cannedAnswers>.header .logo .logo-text{font-size:24px}#cannedAnswers>.header md-icon{color:#fff}#cannedAnswers>.header .search-input-wrapper{position:relative}#cannedAnswers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cannedAnswers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cannedAnswers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cannedAnswers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cannedAnswers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cannedAnswers>.header.selected-bar .close-button-wrapper{width:244px}#cannedAnswers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cannedAnswers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cannedAnswers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cannedAnswers #add-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers #upload-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cannedAnswer-dialog{max-width:720px;width:720px}md-dialog.cannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.cannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.cannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.cannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.cannedAnswer-dialog .error-list{font-size:13px}md-dialog.cannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.cannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.cannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customDashboard-dialog{max-width:720px;width:720px}md-dialog.customDashboard-dialog md-dialog-content{display:block;position:relative}md-dialog.customDashboard-dialog md-toolbar .title{font-size:17px}md-dialog.customDashboard-dialog md-input-container textarea{min-height:150px}md-dialog.customDashboard-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customDashboard-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customDashboard-dialog .date-container{padding:16px 0 24px 0}md-dialog.customDashboard-dialog .error-list{font-size:13px}md-dialog.customDashboard-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customDashboard-dialog .error-list .error .message{font-weight:500}md-dialog.customDashboard-dialog .error-list .error .md-button{margin:0}md-dialog.customDashboard-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customDashboard-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customDashboards{position:relative}#customDashboards>.header{height:76px;min-height:76px;max-height:76px}#customDashboards>.header .logo .logo-icon{margin:0 16px 0 0}#customDashboards>.header .logo .logo-text{font-size:24px}#customDashboards>.header md-icon{color:#fff}#customDashboards>.header .search-input-wrapper{position:relative}#customDashboards>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customDashboards>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customDashboards>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customDashboards>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customDashboards>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customDashboards>.header.selected-bar .close-button-wrapper{width:244px}#customDashboards>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customDashboards>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customDashboards>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customDashboards #add-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}#customDashboards #upload-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-customDashboard .header{height:76px;min-height:76px;max-height:76px}#tools-customDashboard .header .goto-customDashboards-button{margin-right:16px}#tools-customDashboard .header .customDashboard-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-customDashboard .header .customDashboard-image img{height:100%;width:auto;max-width:none}#tools-customDashboard .header .subtitle{margin:6px 0 0 0}#tools-customDashboard .customDashboard-detail-form-container{padding:24px;margin-bottom:24px}#tools-customDashboard .customDashboard-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-customDashboard .customDashboard-detail-form-container .handle{cursor:move}#tools-customDashboard .customDashboard-detail-form-container md-input-container md-switch{margin:0!important}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader{position:relative}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader.dropping .drop-text{display:flex}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .upload-button{margin-bottom:16px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image .media{max-height:100%}#tools-customDashboard md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-customDashboard md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dispositions{position:relative}#dispositions>.header{height:76px;min-height:76px;max-height:76px}#dispositions>.header .logo .logo-icon{margin:0 16px 0 0}#dispositions>.header .logo .logo-text{font-size:24px}#dispositions>.header md-icon{color:#fff}#dispositions>.header .search-input-wrapper{position:relative}#dispositions>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dispositions>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dispositions>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dispositions>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dispositions>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dispositions>.header.selected-bar .close-button-wrapper{width:244px}#dispositions>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dispositions>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dispositions>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dispositions #add-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}#dispositions #upload-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-interval .header{height:76px;min-height:76px;max-height:76px}#tools-interval .header .goto-intervals-button{margin-right:16px}#tools-interval .header .interval-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-interval .header .interval-image img{height:100%;width:auto;max-width:none}#tools-interval .header .subtitle{margin:6px 0 0 0}#tools-interval .interval-detail-form-container{padding:24px;margin-bottom:24px}#tools-interval .interval-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-interval .interval-detail-form-container .handle{cursor:move}#tools-interval .interval-detail-form-container md-input-container md-switch{margin:0!important}#tools-interval .interval-detail-form-container #interval-image-uploader{position:relative}#tools-interval .interval-detail-form-container #interval-image-uploader.dropping .drop-text{display:flex}#tools-interval .interval-detail-form-container #interval-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-interval .interval-detail-form-container #interval-image-uploader .upload-button{margin-bottom:16px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image .media{max-height:100%}#tools-interval md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-interval md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-interval md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-interval md-table-container.font-size-12 td.md-cell{font-size:12px!important}#intervals{position:relative}#intervals>.header{height:76px;min-height:76px;max-height:76px}#intervals>.header .logo .logo-icon{margin:0 16px 0 0}#intervals>.header .logo .logo-text{font-size:24px}#intervals>.header md-icon{color:#fff}#intervals>.header .search-input-wrapper{position:relative}#intervals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#intervals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#intervals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#intervals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#intervals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#intervals>.header.selected-bar .close-button-wrapper{width:244px}#intervals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#intervals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#intervals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#intervals #add-interval-button{position:fixed;bottom:8px;right:8px;padding:0}#intervals #upload-interval-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.pause-dialog{max-width:720px;width:720px}md-dialog.pause-dialog md-dialog-content{display:block;position:relative}md-dialog.pause-dialog md-toolbar .title{font-size:17px}md-dialog.pause-dialog md-input-container textarea{min-height:150px}md-dialog.pause-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.pause-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.pause-dialog .date-container{padding:16px 0 24px 0}md-dialog.pause-dialog .error-list{font-size:13px}md-dialog.pause-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.pause-dialog .error-list .error .message{font-weight:500}md-dialog.pause-dialog .error-list .error .md-button{margin:0}md-dialog.pause-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.pause-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#pauses{position:relative}#pauses>.header{height:76px;min-height:76px;max-height:76px}#pauses>.header .logo .logo-icon{margin:0 16px 0 0}#pauses>.header .logo .logo-text{font-size:24px}#pauses>.header md-icon{color:#fff}#pauses>.header .search-input-wrapper{position:relative}#pauses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#pauses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#pauses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#pauses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#pauses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#pauses>.header.selected-bar .close-button-wrapper{width:244px}#pauses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#pauses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#pauses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#pauses #add-pause-button{position:fixed;bottom:8px;right:8px;padding:0}#pauses #upload-pause-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.schedule-dialog{max-width:720px;width:720px}md-dialog.schedule-dialog md-dialog-content{display:block;position:relative}md-dialog.schedule-dialog md-toolbar .title{font-size:17px}md-dialog.schedule-dialog md-input-container textarea{min-height:150px}md-dialog.schedule-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.schedule-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.schedule-dialog .date-container{padding:16px 0 24px 0}md-dialog.schedule-dialog .error-list{font-size:13px}md-dialog.schedule-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.schedule-dialog .error-list .error .message{font-weight:500}md-dialog.schedule-dialog .error-list .error .md-button{margin:0}md-dialog.schedule-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.schedule-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#schedules{position:relative}#schedules>.header{height:76px;min-height:76px;max-height:76px}#schedules>.header .logo .logo-icon{margin:0 16px 0 0}#schedules>.header .logo .logo-text{font-size:24px}#schedules>.header md-icon{color:#fff}#schedules>.header .search-input-wrapper{position:relative}#schedules>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#schedules>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#schedules>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#schedules>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#schedules>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#schedules>.header.selected-bar .close-button-wrapper{width:244px}#schedules>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#schedules>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#schedules>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#schedules #add-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}#schedules #upload-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sound-dialog{max-width:720px;width:720px}md-dialog.sound-dialog md-dialog-content{display:block;position:relative}md-dialog.sound-dialog md-toolbar .title{font-size:17px}md-dialog.sound-dialog md-input-container textarea{min-height:150px}md-dialog.sound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sound-dialog .date-container{padding:16px 0 24px 0}md-dialog.sound-dialog .error-list{font-size:13px}md-dialog.sound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sound-dialog .error-list .error .message{font-weight:500}md-dialog.sound-dialog .error-list .error .md-button{margin:0}md-dialog.sound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sounds{position:relative}#sounds>.header{height:76px;min-height:76px;max-height:76px}#sounds>.header .logo .logo-icon{margin:0 16px 0 0}#sounds>.header .logo .logo-text{font-size:24px}#sounds>.header md-icon{color:#fff}#sounds>.header .search-input-wrapper{position:relative}#sounds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sounds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sounds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sounds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sounds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sounds>.header.selected-bar .close-button-wrapper{width:244px}#sounds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sounds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sounds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sounds #add-sound-button{position:fixed;bottom:8px;right:8px;padding:0}#sounds #upload-sound-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .sound-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .sound-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.tag-dialog{max-width:720px;width:720px}md-dialog.tag-dialog md-dialog-content{display:block;position:relative}md-dialog.tag-dialog md-toolbar .title{font-size:17px}md-dialog.tag-dialog md-input-container textarea{min-height:150px}md-dialog.tag-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.tag-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.tag-dialog .date-container{padding:16px 0 24px 0}md-dialog.tag-dialog .error-list{font-size:13px}md-dialog.tag-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.tag-dialog .error-list .error .message{font-weight:500}md-dialog.tag-dialog .error-list .error .md-button{margin:0}md-dialog.tag-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.tag-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tags{position:relative}#tags>.header{height:76px;min-height:76px;max-height:76px}#tags>.header .logo .logo-icon{margin:0 16px 0 0}#tags>.header .logo .logo-text{font-size:24px}#tags>.header md-icon{color:#fff}#tags>.header .search-input-wrapper{position:relative}#tags>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#tags>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#tags>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#tags>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#tags>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#tags>.header.selected-bar .close-button-wrapper{width:244px}#tags>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#tags>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#tags>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#tags #add-tag-button{position:fixed;bottom:8px;right:8px;padding:0}#tags #upload-tag-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.template-dialog{max-width:720px;width:720px}md-dialog.template-dialog md-dialog-content{display:block;position:relative}md-dialog.template-dialog md-toolbar .title{font-size:17px}md-dialog.template-dialog md-input-container textarea{min-height:150px}md-dialog.template-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.template-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.template-dialog .date-container{padding:16px 0 24px 0}md-dialog.template-dialog .error-list{font-size:13px}md-dialog.template-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.template-dialog .error-list .error .message{font-weight:500}md-dialog.template-dialog .error-list .error .md-button{margin:0}md-dialog.template-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.template-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#templates{position:relative}#templates>.header{height:76px;min-height:76px;max-height:76px}#templates>.header .logo .logo-icon{margin:0 16px 0 0}#templates>.header .logo .logo-text{font-size:24px}#templates>.header md-icon{color:#fff}#templates>.header .search-input-wrapper{position:relative}#templates>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#templates>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#templates>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#templates>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#templates>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#templates>.header.selected-bar .close-button-wrapper{width:244px}#templates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#templates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#templates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#templates #add-template-button{position:fixed;bottom:8px;right:8px;padding:0}#templates #upload-template-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trigger-dialog{max-width:720px;width:720px}md-dialog.trigger-dialog md-dialog-content{display:block;position:relative}md-dialog.trigger-dialog md-toolbar .title{font-size:17px}md-dialog.trigger-dialog md-input-container textarea{min-height:150px}md-dialog.trigger-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trigger-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trigger-dialog .date-container{padding:16px 0 24px 0}md-dialog.trigger-dialog .error-list{font-size:13px}md-dialog.trigger-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trigger-dialog .error-list .error .message{font-weight:500}md-dialog.trigger-dialog .error-list .error .md-button{margin:0}md-dialog.trigger-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.action-dialog{max-width:720px;width:720px}md-dialog.action-dialog md-dialog-content{display:block;position:relative}md-dialog.action-dialog md-toolbar .title{font-size:17px}md-dialog.action-dialog md-input-container textarea{min-height:150px}md-dialog.action-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.action-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.action-dialog .date-container{padding:16px 0 24px 0}md-dialog.action-dialog .error-list{font-size:13px}md-dialog.action-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.action-dialog .error-list .error .message{font-weight:500}md-dialog.action-dialog .error-list .error .md-button{margin:0}md-dialog.action-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.action-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.allCondition-dialog{max-width:720px;width:720px}md-dialog.allCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.allCondition-dialog md-toolbar .title{font-size:17px}md-dialog.allCondition-dialog md-input-container textarea{min-height:150px}md-dialog.allCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.allCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.allCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.allCondition-dialog .error-list{font-size:13px}md-dialog.allCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.allCondition-dialog .error-list .error .message{font-weight:500}md-dialog.allCondition-dialog .error-list .error .md-button{margin:0}md-dialog.allCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.allCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.anyCondition-dialog{max-width:720px;width:720px}md-dialog.anyCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.anyCondition-dialog md-toolbar .title{font-size:17px}md-dialog.anyCondition-dialog md-input-container textarea{min-height:150px}md-dialog.anyCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.anyCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.anyCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.anyCondition-dialog .error-list{font-size:13px}md-dialog.anyCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.anyCondition-dialog .error-list .error .message{font-weight:500}md-dialog.anyCondition-dialog .error-list .error .md-button{margin:0}md-dialog.anyCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.anyCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trigger .header{height:76px;min-height:76px;max-height:76px}#tools-trigger .header .goto-triggers-button{margin-right:16px}#tools-trigger .header .trigger-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trigger .header .trigger-image img{height:100%;width:auto;max-width:none}#tools-trigger .header .subtitle{margin:6px 0 0 0}#tools-trigger .trigger-detail-form-container{padding:24px;margin-bottom:24px}#tools-trigger .trigger-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trigger .trigger-detail-form-container .handle{cursor:move}#tools-trigger .trigger-detail-form-container md-input-container md-switch{margin:0!important}#tools-trigger .trigger-detail-form-container #trigger-image-uploader{position:relative}#tools-trigger .trigger-detail-form-container #trigger-image-uploader.dropping .drop-text{display:flex}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .upload-button{margin-bottom:16px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image .media{max-height:100%}#tools-trigger md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trigger md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container.font-size-12 td.md-cell{font-size:12px!important}#triggers{position:relative}#triggers>.header{height:76px;min-height:76px;max-height:76px}#triggers>.header .logo .logo-icon{margin:0 16px 0 0}#triggers>.header .logo .logo-text{font-size:24px}#triggers>.header md-icon{color:#fff}#triggers>.header .search-input-wrapper{position:relative}#triggers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#triggers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#triggers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#triggers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#triggers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#triggers>.header.selected-bar .close-button-wrapper{width:244px}#triggers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#triggers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#triggers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#triggers #add-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}#triggers #upload-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trunk-dialog{max-width:720px;width:720px}md-dialog.trunk-dialog md-dialog-content{display:block;position:relative}md-dialog.trunk-dialog md-toolbar .title{font-size:17px}md-dialog.trunk-dialog md-input-container textarea{min-height:150px}md-dialog.trunk-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trunk-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trunk-dialog .date-container{padding:16px 0 24px 0}md-dialog.trunk-dialog .error-list{font-size:13px}md-dialog.trunk-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trunk-dialog .error-list .error .message{font-weight:500}md-dialog.trunk-dialog .error-list .error .md-button{margin:0}md-dialog.trunk-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trunk-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trunk .header{height:76px;min-height:76px;max-height:76px}#tools-trunk .header .goto-trunks-button{margin-right:16px}#tools-trunk .header .trunk-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trunk .header .trunk-image img{height:100%;width:auto;max-width:none}#tools-trunk .header .subtitle{margin:6px 0 0 0}#tools-trunk .trunk-detail-form-container{padding:24px;margin-bottom:24px}#tools-trunk .trunk-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trunk .trunk-detail-form-container .handle{cursor:move}#tools-trunk .trunk-detail-form-container md-input-container md-switch{margin:0!important}#tools-trunk .trunk-detail-form-container #trunk-image-uploader{position:relative}#tools-trunk .trunk-detail-form-container #trunk-image-uploader.dropping .drop-text{display:flex}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .upload-button{margin-bottom:16px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image .media{max-height:100%}#tools-trunk md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trunk md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container.font-size-12 td.md-cell{font-size:12px!important}#trunks{position:relative}#trunks>.header{height:76px;min-height:76px;max-height:76px}#trunks>.header .logo .logo-icon{margin:0 16px 0 0}#trunks>.header .logo .logo-text{font-size:24px}#trunks>.header md-icon{color:#fff}#trunks>.header .search-input-wrapper{position:relative}#trunks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#trunks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#trunks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#trunks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#trunks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#trunks>.header.selected-bar .close-button-wrapper{width:244px}#trunks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#trunks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#trunks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#trunks #add-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}#trunks #upload-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.variable-dialog{max-width:720px;width:720px}md-dialog.variable-dialog md-dialog-content{display:block;position:relative}md-dialog.variable-dialog md-toolbar .title{font-size:17px}md-dialog.variable-dialog md-input-container textarea{min-height:150px}md-dialog.variable-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.variable-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.variable-dialog .date-container{padding:16px 0 24px 0}md-dialog.variable-dialog .error-list{font-size:13px}md-dialog.variable-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.variable-dialog .error-list .error .message{font-weight:500}md-dialog.variable-dialog .error-list .error .md-button{margin:0}md-dialog.variable-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.variable-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#variables{position:relative}#variables>.header{height:76px;min-height:76px;max-height:76px}#variables>.header .logo .logo-icon{margin:0 16px 0 0}#variables>.header .logo .logo-text{font-size:24px}#variables>.header md-icon{color:#fff}#variables>.header .search-input-wrapper{position:relative}#variables>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#variables>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#variables>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#variables>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#variables>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#variables>.header.selected-bar .close-button-wrapper{width:244px}#variables>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#variables>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#variables>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#variables #add-variable-button{position:fixed;bottom:8px;right:8px;padding:0}#variables #upload-variable-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.screenRecording-dialog{max-width:720px;width:720px}md-dialog.screenRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.screenRecording-dialog md-toolbar .title{font-size:17px}md-dialog.screenRecording-dialog md-input-container textarea{min-height:150px}md-dialog.screenRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.screenRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.screenRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.screenRecording-dialog .error-list{font-size:13px}md-dialog.screenRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.screenRecording-dialog .error-list .error .message{font-weight:500}md-dialog.screenRecording-dialog .error-list .error .md-button{margin:0}md-dialog.screenRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.screenRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#screenRecordings{position:relative}#screenRecordings>.header{height:76px;min-height:76px;max-height:76px}#screenRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#screenRecordings>.header .logo .logo-text{font-size:24px}#screenRecordings>.header md-icon{color:#fff}#screenRecordings>.header .search-input-wrapper{position:relative}#screenRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#screenRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#screenRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#screenRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#screenRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#screenRecordings>.header.selected-bar .close-button-wrapper{width:244px}#screenRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#screenRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#screenRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#screenRecordings #add-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#screenRecordings #upload-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voice-routing-dialog{max-width:720px;width:720px}md-dialog.voice-routing-dialog md-dialog-content{display:block;position:relative}md-dialog.voice-routing-dialog md-toolbar .title{font-size:17px}md-dialog.voice-routing-dialog md-input-container textarea{min-height:150px}md-dialog.voice-routing-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voice-routing-dialog .date-container{padding:16px 0 24px 0}md-dialog.voice-routing-dialog .error-list{font-size:13px}md-dialog.voice-routing-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voice-routing-dialog .error-list .error .message{font-weight:500}md-dialog.voice-routing-dialog .error-list .error .md-button{margin:0}md-dialog.voice-routing-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voice-routing-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chanSpies{position:relative}#chanSpies>.header{height:76px;min-height:76px;max-height:76px}#chanSpies>.header .logo .logo-icon{margin:0 16px 0 0}#chanSpies>.header .logo .logo-text{font-size:24px}#chanSpies>.header md-icon{color:#fff}#chanSpies>.header .search-input-wrapper{position:relative}#chanSpies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chanSpies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chanSpies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chanSpies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chanSpies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chanSpies>.header.selected-bar .close-button-wrapper{width:244px}#chanSpies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chanSpies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chanSpies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chanSpies #add-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}#chanSpies #upload-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chanSpy-dialog{max-width:720px;width:720px}md-dialog.chanSpy-dialog md-dialog-content{display:block;position:relative}md-dialog.chanSpy-dialog md-toolbar .title{font-size:17px}md-dialog.chanSpy-dialog md-input-container textarea{min-height:150px}md-dialog.chanSpy-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chanSpy-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chanSpy-dialog .date-container{padding:16px 0 24px 0}md-dialog.chanSpy-dialog .error-list{font-size:13px}md-dialog.chanSpy-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chanSpy-dialog .error-list .error .message{font-weight:500}md-dialog.chanSpy-dialog .error-list .error .md-button{margin:0}md-dialog.chanSpy-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chanSpy-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contexts{position:relative}#contexts>.header{height:76px;min-height:76px;max-height:76px}#contexts>.header .logo .logo-icon{margin:0 16px 0 0}#contexts>.header .logo .logo-text{font-size:24px}#contexts>.header md-icon{color:#fff}#contexts>.header .search-input-wrapper{position:relative}#contexts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contexts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contexts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contexts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contexts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contexts>.header.selected-bar .close-button-wrapper{width:244px}#contexts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contexts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contexts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contexts #add-context-button{position:fixed;bottom:8px;right:8px;padding:0}#contexts #upload-context-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.context-dialog{max-width:720px;width:720px}md-dialog.context-dialog md-dialog-content{display:block;position:relative}md-dialog.context-dialog md-toolbar .title{font-size:17px}md-dialog.context-dialog md-input-container textarea{min-height:150px}md-dialog.context-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.context-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.context-dialog .date-container{padding:16px 0 24px 0}md-dialog.context-dialog .error-list{font-size:13px}md-dialog.context-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.context-dialog .error-list .error .message{font-weight:500}md-dialog.context-dialog .error-list .error .md-button{margin:0}md-dialog.context-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.context-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inbound-route-dialog{max-width:720px;width:720px}md-dialog.inbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.inbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.inbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.inbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.inbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.inbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.inbound-route-dialog .error-list{font-size:13px}md-dialog.inbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.inbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.inbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-inbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-inbound-route .header .goto-inbound-routes-button{margin-right:16px}#voice-inbound-route .header .inbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-inbound-route .header .inbound-route-image img{height:100%;width:auto;max-width:none}#voice-inbound-route .header .subtitle{margin:6px 0 0 0}#voice-inbound-route .inbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-inbound-route .inbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-inbound-route .inbound-route-detail-form-container .handle{cursor:move}#voice-inbound-route .inbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-inbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-inbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#inbound-routes{position:relative}#inbound-routes>.header{height:76px;min-height:76px;max-height:76px}#inbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#inbound-routes>.header .logo .logo-text{font-size:24px}#inbound-routes>.header md-icon{color:#fff}#inbound-routes>.header .search-input-wrapper{position:relative}#inbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#inbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#inbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#inbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#inbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#inbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#inbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#inbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#inbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#inbound-routes #add-inbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.internal-route-dialog{max-width:720px;width:720px}md-dialog.internal-route-dialog md-dialog-content{display:block;position:relative}md-dialog.internal-route-dialog md-toolbar .title{font-size:17px}md-dialog.internal-route-dialog md-input-container textarea{min-height:150px}md-dialog.internal-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.internal-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.internal-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.internal-route-dialog .error-list{font-size:13px}md-dialog.internal-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internal-route-dialog .error-list .error .message{font-weight:500}md-dialog.internal-route-dialog .error-list .error .md-button{margin:0}md-dialog.internal-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internal-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-internal-route .header{height:76px;min-height:76px;max-height:76px}#voice-internal-route .header .goto-internal-routes-button{margin-right:16px}#voice-internal-route .header .internal-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-internal-route .header .internal-route-image img{height:100%;width:auto;max-width:none}#voice-internal-route .header .subtitle{margin:6px 0 0 0}#voice-internal-route .internal-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-internal-route .internal-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-internal-route .internal-route-detail-form-container .handle{cursor:move}#voice-internal-route .internal-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-internal-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-internal-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#internal-routes{position:relative}#internal-routes>.header{height:76px;min-height:76px;max-height:76px}#internal-routes>.header .logo .logo-icon{margin:0 16px 0 0}#internal-routes>.header .logo .logo-text{font-size:24px}#internal-routes>.header md-icon{color:#fff}#internal-routes>.header .search-input-wrapper{position:relative}#internal-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#internal-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#internal-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#internal-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#internal-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#internal-routes>.header.selected-bar .close-button-wrapper{width:244px}#internal-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#internal-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#internal-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#internal-routes #add-internal-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.musiconhold-dialog{max-width:720px;width:720px}md-dialog.musiconhold-dialog md-dialog-content{display:block;position:relative}md-dialog.musiconhold-dialog md-toolbar .title{font-size:17px}md-dialog.musiconhold-dialog md-input-container textarea{min-height:150px}md-dialog.musiconhold-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.musiconhold-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.musiconhold-dialog .date-container{padding:16px 0 24px 0}md-dialog.musiconhold-dialog .error-list{font-size:13px}md-dialog.musiconhold-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.musiconhold-dialog .error-list .error .message{font-weight:500}md-dialog.musiconhold-dialog .error-list .error .md-button{margin:0}md-dialog.musiconhold-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.musiconhold-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mohSound-dialog{max-width:720px;width:720px}md-dialog.mohSound-dialog md-dialog-content{display:block;position:relative}md-dialog.mohSound-dialog md-toolbar .title{font-size:17px}md-dialog.mohSound-dialog md-input-container textarea{min-height:150px}md-dialog.mohSound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mohSound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mohSound-dialog .date-container{padding:16px 0 24px 0}md-dialog.mohSound-dialog .error-list{font-size:13px}md-dialog.mohSound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mohSound-dialog .error-list .error .message{font-weight:500}md-dialog.mohSound-dialog .error-list .error .md-button{margin:0}md-dialog.mohSound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mohSound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-musiconhold .header{height:76px;min-height:76px;max-height:76px}#voice-musiconhold .header .goto-musiconholds-button{margin-right:16px}#voice-musiconhold .header .musiconhold-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-musiconhold .header .musiconhold-image img{height:100%;width:auto;max-width:none}#voice-musiconhold .header .subtitle{margin:6px 0 0 0}#voice-musiconhold .musiconhold-detail-form-container{padding:24px;margin-bottom:24px}#voice-musiconhold .musiconhold-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-musiconhold .musiconhold-detail-form-container .handle{cursor:move}#voice-musiconhold .musiconhold-detail-form-container md-input-container md-switch{margin:0!important}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader{position:relative}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader.dropping .drop-text{display:flex}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .upload-button{margin-bottom:16px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image .media{max-height:100%}#voice-musiconhold md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-musiconhold md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container.font-size-12 td.md-cell{font-size:12px!important}#musiconholds{position:relative}#musiconholds>.header{height:76px;min-height:76px;max-height:76px}#musiconholds>.header .logo .logo-icon{margin:0 16px 0 0}#musiconholds>.header .logo .logo-text{font-size:24px}#musiconholds>.header md-icon{color:#fff}#musiconholds>.header .search-input-wrapper{position:relative}#musiconholds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#musiconholds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#musiconholds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#musiconholds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#musiconholds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#musiconholds>.header.selected-bar .close-button-wrapper{width:244px}#musiconholds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#musiconholds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#musiconholds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#musiconholds #add-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}#musiconholds #upload-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.outbound-route-dialog{max-width:720px;width:720px}md-dialog.outbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.outbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.outbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.outbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.outbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.outbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.outbound-route-dialog .error-list{font-size:13px}md-dialog.outbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.outbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.outbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-outbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-outbound-route .header .goto-outbound-routes-button{margin-right:16px}#voice-outbound-route .header .outbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-outbound-route .header .outbound-route-image img{height:100%;width:auto;max-width:none}#voice-outbound-route .header .subtitle{margin:6px 0 0 0}#voice-outbound-route .outbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-outbound-route .outbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-outbound-route .outbound-route-detail-form-container .handle{cursor:move}#voice-outbound-route .outbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-outbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-outbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#outbound-routes{position:relative}#outbound-routes>.header{height:76px;min-height:76px;max-height:76px}#outbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#outbound-routes>.header .logo .logo-text{font-size:24px}#outbound-routes>.header md-icon{color:#fff}#outbound-routes>.header .search-input-wrapper{position:relative}#outbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#outbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#outbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#outbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#outbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#outbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#outbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#outbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#outbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#outbound-routes #add-outbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.voicemail-dialog{max-width:720px;width:720px}md-dialog.voicemail-dialog md-dialog-content{display:block;position:relative}md-dialog.voicemail-dialog md-toolbar .title{font-size:17px}md-dialog.voicemail-dialog md-input-container textarea{min-height:150px}md-dialog.voicemail-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicemail-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicemail-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicemail-dialog .error-list{font-size:13px}md-dialog.voicemail-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicemail-dialog .error-list .error .message{font-weight:500}md-dialog.voicemail-dialog .error-list .error .md-button{margin:0}md-dialog.voicemail-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicemail-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voicemail .header{height:76px;min-height:76px;max-height:76px}#voice-voicemail .header .goto-voicemails-button{margin-right:16px}#voice-voicemail .header .voicemail-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voicemail .header .voicemail-image img{height:100%;width:auto;max-width:none}#voice-voicemail .header .subtitle{margin:6px 0 0 0}#voice-voicemail .voicemail-detail-form-container{padding:24px;margin-bottom:24px}#voice-voicemail .voicemail-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voicemail .voicemail-detail-form-container .handle{cursor:move}#voice-voicemail .voicemail-detail-form-container md-input-container md-switch{margin:0!important}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader{position:relative}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader.dropping .drop-text{display:flex}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .upload-button{margin-bottom:16px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image .media{max-height:100%}#voice-voicemail md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voicemail md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voicemails{position:relative}#voicemails>.header{height:76px;min-height:76px;max-height:76px}#voicemails>.header .logo .logo-icon{margin:0 16px 0 0}#voicemails>.header .logo .logo-text{font-size:24px}#voicemails>.header md-icon{color:#fff}#voicemails>.header .search-input-wrapper{position:relative}#voicemails>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicemails>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicemails>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicemails>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicemails>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicemails>.header.selected-bar .close-button-wrapper{width:244px}#voicemails>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicemails>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicemails>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicemails #add-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}#voicemails #upload-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voicePrefix-dialog{max-width:720px;width:720px}md-dialog.voicePrefix-dialog md-dialog-content{display:block;position:relative}md-dialog.voicePrefix-dialog md-toolbar .title{font-size:17px}md-dialog.voicePrefix-dialog md-input-container textarea{min-height:150px}md-dialog.voicePrefix-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicePrefix-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicePrefix-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicePrefix-dialog .error-list{font-size:13px}md-dialog.voicePrefix-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicePrefix-dialog .error-list .error .message{font-weight:500}md-dialog.voicePrefix-dialog .error-list .error .md-button{margin:0}md-dialog.voicePrefix-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicePrefix-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voicePrefixes{position:relative}#voicePrefixes>.header{height:76px;min-height:76px;max-height:76px}#voicePrefixes>.header .logo .logo-icon{margin:0 16px 0 0}#voicePrefixes>.header .logo .logo-text{font-size:24px}#voicePrefixes>.header md-icon{color:#fff}#voicePrefixes>.header .search-input-wrapper{position:relative}#voicePrefixes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicePrefixes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicePrefixes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicePrefixes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicePrefixes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicePrefixes>.header.selected-bar .close-button-wrapper{width:244px}#voicePrefixes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicePrefixes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicePrefixes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicePrefixes #add-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}#voicePrefixes #upload-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceQueue-dialog{max-width:720px;width:720px}md-dialog.voiceQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceQueue-dialog md-toolbar .title{font-size:17px}md-dialog.voiceQueue-dialog md-input-container textarea{min-height:150px}md-dialog.voiceQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceQueue-dialog .error-list{font-size:13px}md-dialog.voiceQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceQueue-dialog .error-list .error .message{font-weight:500}md-dialog.voiceQueue-dialog .error-list .error .md-button{margin:0}md-dialog.voiceQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceQueue .header{height:76px;min-height:76px;max-height:76px}#voice-voiceQueue .header .goto-voiceQueues-button{margin-right:16px}#voice-voiceQueue .header .voiceQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceQueue .header .voiceQueue-image img{height:100%;width:auto;max-width:none}#voice-voiceQueue .header .subtitle{margin:6px 0 0 0}#voice-voiceQueue .voiceQueue-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceQueue .voiceQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceQueue .voiceQueue-detail-form-container .handle{cursor:move}#voice-voiceQueue .voiceQueue-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader{position:relative}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader.dropping .drop-text{display:flex}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .upload-button{margin-bottom:16px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image .media{max-height:100%}#voice-voiceQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voiceQueues{position:relative}#voiceQueues>.header{height:76px;min-height:76px;max-height:76px}#voiceQueues>.header .logo .logo-icon{margin:0 16px 0 0}#voiceQueues>.header .logo .logo-text{font-size:24px}#voiceQueues>.header md-icon{color:#fff}#voiceQueues>.header .search-input-wrapper{position:relative}#voiceQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceQueues>.header.selected-bar .close-button-wrapper{width:244px}#voiceQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceQueues #add-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceQueues #upload-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceRecording-dialog{max-width:720px;width:720px}md-dialog.voiceRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceRecording-dialog md-toolbar .title{font-size:17px}md-dialog.voiceRecording-dialog md-input-container textarea{min-height:150px}md-dialog.voiceRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceRecording-dialog .error-list{font-size:13px}md-dialog.voiceRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceRecording-dialog .error-list .error .message{font-weight:500}md-dialog.voiceRecording-dialog .error-list .error .md-button{margin:0}md-dialog.voiceRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceRecording .header{height:76px;min-height:76px;max-height:76px}#voice-voiceRecording .header .goto-voiceRecordings-button{margin-right:16px}#voice-voiceRecording .header .voiceRecording-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceRecording .header .voiceRecording-image img{height:100%;width:auto;max-width:none}#voice-voiceRecording .header .subtitle{margin:6px 0 0 0}#voice-voiceRecording .voiceRecording-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceRecording .voiceRecording-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceRecording .voiceRecording-detail-form-container .handle{cursor:move}#voice-voiceRecording .voiceRecording-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader{position:relative}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader.dropping .drop-text{display:flex}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .upload-button{margin-bottom:16px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image .media{max-height:100%}#voice-voiceRecording md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceRecording md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voice-voiceRecording .sentiment.POSITIVE{color:#4caf50;font-size:25px}#voice-voiceRecording .sentiment.NEGATIVE{color:#f40505;font-size:30px}#voice-voiceRecording .sentiment.NEUTRAL{color:#03a9f4;font-size:30px}#voice-voiceRecording .sentiment.MIXED{color:#9c27b0;font-size:30px}#voiceRecordings{position:relative}#voiceRecordings>.header{height:76px;min-height:76px;max-height:76px}#voiceRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#voiceRecordings>.header .logo .logo-text{font-size:24px}#voiceRecordings>.header md-icon{color:#fff}#voiceRecordings>.header .search-input-wrapper{position:relative}#voiceRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceRecordings>.header.selected-bar .close-button-wrapper{width:244px}#voiceRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceRecordings #add-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceRecordings #upload-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappAccount .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappAccount .header .goto-whatsappAccounts-button{margin-right:16px}#whatsapp-whatsappAccount .header .whatsappAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappAccount .header .whatsappAccount-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappAccount .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .handle{cursor:move}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader{position:relative}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image .media{max-height:100%}#whatsapp-whatsappAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.whatsappCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.whatsappCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappCannedAnswer-dialog .error-list{font-size:13px}md-dialog.whatsappCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsappAccounts{position:relative}#whatsappAccounts>.header{height:76px;min-height:76px;max-height:76px}#whatsappAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappAccounts>.header .logo .logo-text{font-size:24px}#whatsappAccounts>.header md-icon{color:#fff}#whatsappAccounts>.header .search-input-wrapper{position:relative}#whatsappAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappAccounts>.header.selected-bar .close-button-wrapper{width:244px}#whatsappAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappAccounts #add-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappAccounts #upload-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.whatsappQueue-dialog{max-width:720px;width:720px}md-dialog.whatsappQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappQueue-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappQueue-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappQueue-dialog .error-list{font-size:13px}md-dialog.whatsappQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappQueue-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappQueue-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappQueue .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappQueue .header .goto-whatsappQueues-button{margin-right:16px}#whatsapp-whatsappQueue .header .whatsappQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappQueue .header .whatsappQueue-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappQueue .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .handle{cursor:move}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader{position:relative}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image .media{max-height:100%}#whatsapp-whatsappQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#whatsappQueues{position:relative}#whatsappQueues>.header{height:76px;min-height:76px;max-height:76px}#whatsappQueues>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappQueues>.header .logo .logo-text{font-size:24px}#whatsappQueues>.header md-icon{color:#fff}#whatsappQueues>.header .search-input-wrapper{position:relative}#whatsappQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappQueues>.header.selected-bar .close-button-wrapper{width:244px}#whatsappQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappQueues #add-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappQueues #upload-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header .logo-text{display:none}}#vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#vertical-navigation .navigation-header .logo .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px}#vertical-navigation .navigation-header .logo .logo-text{color:#fff;margin-left:16px;font-size:16px}#vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s;transform:rotate(0);margin:0;padding:8px;width:34px!important;height:34px!important;cursor:pointer}#vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #vertical-navigation{position:absolute}.ms-navigation-folded #vertical-navigation .navigation-header .fold-toggle{transform:rotate(180deg);opacity:0}.ms-navigation-folded.ms-navigation-folded-open #vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s,opacity .3s ease-in-out .2s;opacity:1}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header .logo-text{display:none}}#quick-panel{width:330px;min-width:330px;max-width:330px;z-index:99}#quick-panel md-content{height:100%}#quick-panel md-content md-tabs{position:static;height:100%}#quick-panel md-content md-tabs md-tabs-wrapper{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.06)}#quick-panel md-content md-tabs md-tabs-wrapper .md-tab{max-width:none!important}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content{height:100%;overflow:hidden}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content>div{overflow:hidden;height:100%}.unread-message-count-chat{position:absolute;top:5px;left:10px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}@media screen and (max-width:600px){#quick-panel{width:80%;min-width:80%;max-width:80%}}#quick-panel .activity-tab .friends .friend{position:relative}#quick-panel .activity-tab .friends .friend .status{position:absolute;top:8px;left:44px;width:18px;height:18px;z-index:10;border-radius:50%;border:3px solid #fff}#quick-panel .activity-tab .friends .friend .status.online{background-color:#00c853}#quick-panel .activity-tab .friends .friend .status.offline{background-color:#d50000}#quick-panel .activity-tab .friends .friend .status.away{background-color:#ff6d00}#quick-panel .activity-tab .friends .friend .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .activity-tab .servers .server .status{margin:24px 20px 28px 8px}#quick-panel .activity-tab .servers .server .status.normal{color:#00c853}#quick-panel .activity-tab .servers .server .status.warn{color:#d50000}#quick-panel .activity-tab .servers .server .status.error{color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.normal .md-bar{background-color:#00c853}#quick-panel .activity-tab .stat md-progress-linear.normal .md-container{background-color:rgba(0,200,83,.3)}#quick-panel .activity-tab .stat md-progress-linear.warn .md-bar{background-color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.warn .md-container{background-color:rgba(255,109,0,.3)}#quick-panel .activity-tab .stat md-progress-linear.alert .md-bar{background-color:#d50000}#quick-panel .activity-tab .stat md-progress-linear.alert .md-container{background-color:rgba(213,0,0,.3)}#quick-panel .chat-tab .chat,#quick-panel .chat-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .chat-tab .main .contact{position:relative}#quick-panel .chat-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .chat-tab .main .contact .status.online{background-color:#00c853}#quick-panel .chat-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .chat-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .chat-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .chat-tab .main .recent .contact .status{top:18px}#quick-panel .chat-tab .chat{max-height:100%;overflow:hidden}#quick-panel .chat-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .chat-tab .chat .message-row .bubble:after,#quick-panel .chat-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .chat-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .chat-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .chat-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .chat-tab .chat .message-row.user{align-items:flex-end}#quick-panel .chat-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .chat-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .chat-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .chat-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .chat-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .chat-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#quick-panel .group-tab .chat,#quick-panel .group-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .group-tab .main .contact{position:relative}#quick-panel .group-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .group-tab .main .contact .status.online{background-color:#00c853}#quick-panel .group-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .group-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .group-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .group-tab .main .recent .contact .status{top:18px}#quick-panel .group-tab .chat{max-height:100%;overflow:hidden}#quick-panel .group-tab .chat .message-row{padding:8px}#quick-panel .group-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .group-tab .chat .message-row .bubble:after,#quick-panel .group-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .group-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .group-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .group-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .group-tab .chat .message-row.user{align-items:flex-end}#quick-panel .group-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .group-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .group-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .group-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .group-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .group-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reset-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#reset-password #reset-password-form-wrapper{flex:1 0 auto;padding:32px}#reset-password #reset-password-form-wrapper #reset-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#reset-password #reset-password-form-wrapper #reset-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#reset-password #reset-password-form-wrapper #reset-password-form .title{font-size:17px;margin:16px 0 32px 0}#reset-password #reset-password-form-wrapper #reset-password-form .logo_login{max-height:200px}#reset-password #reset-password-form-wrapper #reset-password-form form{width:100%;text-align:left}#reset-password #reset-password-form-wrapper #reset-password-form form .submit-button{width:220px;margin:16px auto;display:block}#reset-password #reset-password-form-wrapper #reset-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#reset-password #reset-password-form-wrapper #reset-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#reset-password #reset-password-form-wrapper{padding:16px}#reset-password #reset-password-form-wrapper #reset-password-form{padding:24px;width:100%}#reset-password #reset-password-form-wrapper #reset-password-form form .md-button{width:90%}}md-dialog.preview-dialog{max-width:1020px;width:1020px}md-dialog.preview-dialog md-dialog-content{display:block;position:relative;padding:0}md-dialog.preview-dialog md-toolbar .title{font-size:17px}md-dialog.preview-dialog md-input-container textarea{min-height:150px}md-dialog.preview-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.preview-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.preview-dialog .date-container{padding:16px 0 24px 0}md-dialog.preview-dialog .error-list{font-size:13px}md-dialog.preview-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.preview-dialog .error-list .error .message{font-weight:500}md-dialog.preview-dialog .error-list .error .md-button{margin:0}md-dialog.preview-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.preview-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#toolbar{height:64px;min-height:64px;max-height:64px;z-index:55!important}#toolbar .blink{animation:blinker 2s linear infinite}#toolbar #navigation-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#toolbar .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px;margin-left:10px;margin-right:8px}#toolbar #user-menu{height:64px;padding:0}#toolbar #user-menu md-menu-item .md-button{font-size:15px}#toolbar #user-menu md-menu-item .md-button md-icon{margin:auto 16px auto 0}#toolbar #user-menu .user-button{margin:0;padding:0 16px;height:64px;text-transform:none}#toolbar #user-menu .user-button .avatar-wrapper{position:relative}#toolbar #user-menu .user-button .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#toolbar #user-menu .user-button .username{margin:0 12px 0 8px}#toolbar #language-menu{height:64px}#toolbar #language-menu .language-button{min-width:64px;height:64px;margin:0;padding:0 16px;border-radius:0}#toolbar #language-menu .language-button .iso{text-transform:uppercase}#toolbar #language-menu .language-button .flag{margin-right:8px}#toolbar #quick-panel-toggle{width:64px;height:64px;margin:0;border-radius:0}#toolbar #quick-panel-toggle .unread-message-count{position:absolute;top:8px;left:38px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}#toolbar .toolbar-separator{height:64px;width:1px;background:rgba(0,0,0,.12)}#language-menu-content md-menu-item .flag{margin-right:16px}#language-message{min-height:88px;max-width:600px}#language-message .md-toast-content{height:90px}.open-contact-count{position:absolute;top:1px;left:25px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}.md-button.preview-button{min-width:46px;min-height:50px}@media screen and (max-width:600px){#toolbar #user-menu .user-button{min-width:64px;padding:0 2px 0 10px}}.geEditor{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt;overflow:hidden;height:100%}.geMenubarContainer .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel{cursor:pointer!important}.geContentEditable div,.geContentEditable table,.geContentEditable table td{border:1px dashed #d3d3d3}.geBackgroundPage{-webkit-box-shadow:0 0 3px 0 #d9d9d9;-moz-box-shadow:0 0 3px 0 #d9d9d9;box-shadow:0 0 3px 0 #d9d9d9}.geMenubarContainer a,.geSidebarContainer a,.geToolbar a{color:#000!important;text-decoration:none}.geDiagramContainer,.geFooterContainer,.geHsplit,.geMenubarContainer,.geOutlineContainer,.geSidebarContainer,.geToolbarContainer,.geVsplit{overflow:hidden;position:absolute;cursor:default}.geDiagramContainer,.geOutlineContainer{background-color:#fff;outline:0}.geMenubar,.geToolbar{white-space:nowrap;display:block;width:100%}.geMenubarContainer .geItem,.geSidebar,.geSidebar .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel,.mxPopupMenuItem{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.geHint{background-color:#fff;border:1px solid gray;padding:4px 16px 4px 16px;border-radius:3px;-webkit-box-shadow:1px 1px 2px 0 #ddd;-moz-box-shadow:1px 1px 2px 0 #ddd;box-shadow:1px 1px 2px 0 #ddd;opacity:.8}.geStatusAlert{white-space:nowrap;margin-top:-5px;font-size:12px;padding:4px 6px 4px 6px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442!important;border-radius:3px}.geStatusAlert:hover{background-color:#f1d8d8;border-color:#d6b2b8}.geStatusMessage{white-space:nowrap;margin-top:-5px;padding:4px 6px 4px 6px;font-size:12px;background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border:1px solid #b2dba1;border-radius:3px;color:#3c763d!important}.geStatusMessage:hover{background:#c8e5bc;border-color:#b2dba1}.geAlert{position:absolute;white-space:nowrap;padding:14px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;border-radius:3px;-webkit-box-shadow:2px 2px 3px 0 #ddd;-moz-box-shadow:2px 2px 3px 0 #ddd;box-shadow:2px 2px 3px 0 #ddd}.geBtn{background-color:#f5f5f5;border-radius:2px;border:1px solid #d8d8d8;color:#333;cursor:default;font-size:11px;font-weight:700;height:29px;line-height:27px;margin:0 0 0 8px;min-width:72px;outline:0;padding:0 8px;cursor:pointer}.geBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(#f8f8f8 0,#f1f1f1 100%);color:#111}.geBtn:disabled{opacity:.5}.geBtnUp{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECAGZmZtXV1f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJERjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJFMDg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkREODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRFODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjwiQBhGYglCKhXFLBQA7);background-position:center center;background-repeat:no-repeat}.geBtnUp:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geBtnDown{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECANXV1WZmZv///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJEQjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJEQzg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkQ5ODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRBODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjxLLewEiCAnOZBzeBQA7);background-position:center center;background-repeat:no-repeat}.geBtnDown:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geColorBtn{background-color:#f5f5f5;background-image:linear-gradient(#f5f5f5 0,#e1e1e1 100%);border-radius:4px;border:1px solid rgba(0,0,0,.5);color:#333;cursor:default;margin:0;outline:0;padding:0;cursor:pointer}.geColorBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.7)}.geColorBtn:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.geColorBtn:disabled{opacity:.5}.gePrimaryBtn{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#4787ed 100%);border:1px solid #3079ed;color:#fff}.gePrimaryBtn:hover{background-color:#357ae8;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.gePrimaryBtn:disabled{opacity:.5}.geAlertLink{color:#843534;font-weight:700;text-decoration:none}.geMenubarContainer{background-color:#fff}.geMenubar{padding:0 2px 0 2px;vertical-align:middle}.geMenubarContainer .geItem,.geToolbar .geItem{padding:6px 8px 6px 8px;cursor:default}.geMenubarContainer .geItem:hover,.geToolbarContainer .geItem:hover{background:#eee}.mxDisabled:hover{background:inherit!important}.geMenubar a.geStatus{color:#b3b3b3;padding-left:6px;display:inline-block;cursor:default!important}.geMenubar a.geStatus:hover{background:0 0}.geMenubarMenu{border:1px solid #d5d5d5!important}.geToolbarContainer{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.geSidebarContainer .geToolbarContainer{background:0 0;border-bottom:none}.geSidebarContainer button{text-overflow:ellipsis;overflow:hidden}.geToolbar{padding:1px 0 0 6px;border-top:1px solid #e0e0e0;-webkit-box-shadow:inset 0 1px 0 0 #fff;-moz-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.geToolbarContainer .geSeparator{float:left;width:1px;height:34px;background:#e5e5e5;margin-left:6px;margin-right:6px;margin-top:-2px}.geToolbarContainer .geButton{float:left;width:20px;height:20px;padding:0 2px 4px 2px;margin:2px;border:1px solid transparent;cursor:pointer;opacity:.6}.geToolbarContainer .geButton:hover{border:1px solid gray;border-radius:2px;opacity:1;filter:none!important}.geToolbarContainer .geButton:active{border:1px solid #000}div.mxWindow .geButton{margin:-1px 2px 2px 2px;padding:1px 2px 2px 1px}.geToolbarContainer .geLabel{float:left;margin:2px;cursor:pointer;padding:3px 5px 3px 5px;border:1px solid transparent;opacity:.6}.geToolbarContainer .geLabel:hover{border:1px solid gray;border-radius:2px;opacity:.9}.geToolbarContainer .geLabel:active{border:1px solid #000;opacity:1;filter:none!important}.geToolbarContainer .mxDisabled:hover{border:1px solid transparent!important;opacity:.2!important}.geToolbarMenu{border:3px solid #e0e0e0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;filter:none!important}.geDiagramBackdrop{background-color:#ebebeb;border-style:solid;border-color:#e5e5e5;border-width:1px 0 0 1px}.geSidebarContainer{background:#fff;overflow:hidden;position:absolute;border-top:1px solid #e5e5e5;overflow:auto}.geSidebar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:5px;padding-bottom:12px;overflow:hidden}.geSidebarContainer .geTitle{display:block;font-size:9pt;border-bottom:1px solid #e5e5e5;font-weight:400;padding:6px 0 6px 14px;margin:0;cursor:default;background:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4em}.geSidebarContainer .geTitle:hover{background:#e5e5e5}.geTitle img{opacity:.5}.geTitle img:hover{opacity:1}.geSidebar .geItem{display:inline-block;background-repeat:no-repeat;background-position:50% 50%;border:1px solid transparent;border-radius:2px;cursor:move}.geSidebar .geItem:hover{border:1px solid gray!important}.geItem{vertical-align:top;display:inline-block}.geSidebarTooltip{position:absolute;background:#fff;overflow:hidden;border:1px solid gray;border-radius:8px;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5}.geFooterContainer{background:#e5e5e5;border-top:1px solid silver}.geFooterContainer a{font-size:14px;color:#235695;font-weight:700;text-decoration:none}.geFooterContainer table{border-collapse:collapse;margin:0 auto}.geFooterContainer td{border-left:1px solid silver;border-right:1px solid silver}.geFooterContainer td:hover{background-color:#b3b3b3}.geFooterContainer a{display:block;box-sizing:border-box;width:100%;height:100%;padding:11px 42px 11px 42px;white-space:nowrap}.geHsplit{cursor:col-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHBAMAAADdS/HjAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAHUlEQVQImWMQEGAQFWUQFmYQF2cQEmIQE2MQEQEACy4BF67hpEwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geVsplit{font-size:1pt;cursor:row-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geHsplit:hover,.geVsplit:hover{background-color:#d5d5d5}.geDialog{position:absolute;background:#fff;overflow:hidden;padding:30px;border:1px solid #acacac;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5;z-index:2}.geDialogClose{position:absolute;width:9px;height:9px;opacity:.5;cursor:pointer}.geDialogClose:hover{opacity:1}.geDialogTitle{box-sizing:border-box;white-space:nowrap;background:#e5e5e5;border-bottom:1px solid silver;font-size:15px;font-weight:700;text-align:center;color:#235695}.geDialogFooter{background:#f5f5f5;white-space:nowrap;text-align:right;box-sizing:border-box;border-top:1px solid #e5e5e5;color:#a9a9a9}.geSprite{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAk/CAYAAACauMYVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAWn0lEQVR4Ae2dW4gdxdbHO0aJYjzxTtR4EhSDSNB84kPEQOL9CB/Ex4igg8iAGCSgiIIQH1SOqJAnn4N4wBdvYBRBcYTIp0+OF0SDYoJRgyAmeA1e5lv/PrM6q6urqqu7a2/3ZP4NPVVdtda/Vv2qZ9Nrd++9i2IE2xJoHn/88XOq/ccff5RtepxSuv7HqxPE0GkNtC+lVH/YjiTSKoi+EaqA9T9OG3OW4xNdu3btHPZY9DGbRqRtYhiozaYhunfvXu95aoVCNjqzhqh2uGWbkLVPFrWRWgFfvSFqnW3dOtt2W7c2Zd2evI3OhAbr34g0wb/VZOGIjuRVagG+nrYuKQ1IgARIgARIgARIgARIoEbAm93BwmYb1mP58uXFoUOHgn6wTUok8K4Ddgj+9NNPxamnnhpNhpNENdL169eXVQj32jB93VUAEaJNxKORBtmEmGIAoNCBfGXS9C1TiLRF6huobNOp24g3b97cQBIU8HX4RJVp2+oH2dgI7aAp56m1Z50ESIAESIAESIAESIAESGCREtBMJXX6SclZqpjaUVRJ5CuPEabI623ii3rvXN/SVeFsgioO4SwRquDElNU7E3ZB+kTX9g5QH036kAAJkAAJkAAJkAAJkMDEEqiupBFh36vpsVxF1yJVnqkRjyVCDaoWaWqE6qzlWCKuRaojp0Y8lgg1qFqkqRGqs5ZjibgWqY6cGvFYItSgWJIACZAACZAACZAACZDAJBHwXknbAENX1bGr6IZoSMQO5KvbQUZyi9M36OC2xvRVMRWDnbb6jmT6FFW8+UoyzcdSlUbCVMVZkgAJkAAJkAAJkAAJTCqB1Pypc/yu8Jo1a6KfhE0eAMI7duyYS/04aJIwBCGsUeL507bPmbYKQwCCFsUgYQjaJ2MHC7uCvim1RVxLzSHY5YPUq1atKvbt21fTQBC9sxN8ltcnCNHGKCnR2g8HP/TQQ+U5/Mgjj1RajUjxiXc4hTYrCJtff/213K19pW4bUfdF7Aree++9tf+0p556qtRrRKribsSuoNr1KhEx9pAzonUjDtmynQRIgARIgARIgARIgASOGQLlNbrN6Hy3LNtm6/ovwC+qtVNom66v3/p7Ux4YuLsrZLNst686tiO5grZPHdCmbzCgzdp4I1VHX6kDou/AgQOFFW7Y25HU0ZauA/ps0mb9O0eq4uvWrWv9OrgaE3XsUmaJNDZgdPp29JiI2xcVdY1Tj72iOLE1SpRJJ7pvRBXRPpwuaLOnjfb5Ste/tPE1Rk9sR9n68/XUgcNDEiABEiABEiABEjgmCTTunMkl4Z65ublVbbM97rjj3v3999+3+uyqLFo7Ifjqq6+ulq1YsqQxJr6huXj77beLe+65Z5/6uGVDFAZysVtcdNFFXlGJrpDfPSp13nrrLczouauvvnpj2TD/x3vNjz5flOooUy8uvPDCDV9//fX/yb3ADc8///we7UMZFEXnn3/+WbzwwgvF559/XiBCbCeccEJx/fXXF4899tiyxx9/fNXpp5++VO4K19bAO/3SW/4goquuuqp4+OGHi08//bQ8vuyyy4rbb7+9ePTRR4svvvjioAyy9a+//jqiPt5y6dKl+z777DNZr6Pb+++/P3fHHXfMSd/cGWecMXf55Zcjc3lfBDZ4RdxGnyjkZ2Zm5q655ppSGOIiOuP66nGUKYx++eWX4pVXXilXfGpqqnjppZcKuZNbyDjrzzvvvJk33njjORXTMioqrIoPPvigPDdxmm3cuLG49tpri5tvvrm47bbbVkj/pp9//vlfL7744nYVRBldKBgsW7asEIbFWWedVZx00kkFBvrtt9/QVZ520r/ihx9+gOjOslH+REWx+hC0G04zWcjimWee2X/OOefsWrFiRfHtt98esjZeUTji39H3D4B29EvfPnkP5eErr7zS6pV1r+h7771XfPXVV0HRjz76qCFkGxqvGHIyPycru9Ia+eoS6az8l9UWyGfHNhIgARIgARIgARIgARLoQKBxfer6fvLJJ899/PHHZb506aWXvnvxxRdvdW3c48aV9O7du/eIUZUW3nXXXStvvPHGZbhUf/rpp1dK/z4VQUp5ySWXHJAHhuMJ75133rlKcqfVJ5988mpJJFYfPnx42ZNPPlk88cQTuPu4DG3og83999+/WjKTKgAdrJFHfffdd8Xs7OxWcd4sD//Ofvnll4UIlzvqDz74YCGPkIvJ7Nbvv/++TCpULFgijZTO1TK1nVI/hJTR3edTyNXnn3/+nIjDvrY1mGqvJAm7pP6iHjvlYee4dhgUffPNN9dLzrQG1sjyZJu56aabZlCZ31ZrxS2DoiI0Jcab4IDMT7bNr7/++gwqSMxuuOGGt1D3bY2F8hnNt22S/Goq0l91BSOtLI5W3paId0mEu+abuk8fGR1OeIlOme4Spip4dChPLRjpdddd1ztF7MLUE5O/aSSioek3/p89MZU2YO5uDVFZnAPyb/kf19B3LIL7pf2Ar49tJEACJEACJEACJEAC/Qh4c1O5sfWhXHz9MyK5Rx51/N9Qf+OqD4abNm36hxQrQk5XXHHFvyQz/PDss8++1GfjFf3xxx+RHm595513tp944ollBq3Octfs3YMHD+6US87/iPAeEd6ofVp6Rec7D956662N+6FHjhz5Hxl055lnnrlUbnduEFR75F5qTTgmWj5d/OyzzxYbNtSCXSaDrsSTx7fccstSYd+46o6KIuKVK1cWuIPeZWsVhZjcyC6++eYbPExcyLQLyZ6jYySJ4pamvFlQ3vPDImKXvCAo3CnlQSaCtzgQKcrQ1kkU2TQ+y3vKKafkiRR5KkSBAnxjWzDSBx54YEpuYJfLftpppxUXXHBBsWbNmkLOzZhe2ecVlYh2Crf9El352iBPG+BxhlIY4ueee24lLJxXvPbaaw9UDVLxrr68f7Lz7rvvxim0Wd548Z6k8q9a6sg7GKdKBaL/Lhvkj1dUOyXQ2fvuu08PG6Xc4C5PM7Hr+ZvkDUk2kAAJkAAJkAAJkAAJkAAJLFYC3vdQXBiS+jRvj4mR3AFO8nf1quPt27d3+qho5RirINpQxK6fN410jTZv3lxOH19Rlm3rEiUGbY1UMucySjzNnW3rGmVrpPqh4G3btnUK0nuehVZ58HnZKTQakwAJkAAJkAAJkAAJkAAJZCBQu+YPXeu3jTOWXKBXpGOJzMXTK1JXZCyR94p0LJG5OHpF6oqMJfJekY4lMhcHj0mABEiABEiABEiABEhgnkDXe1Ktd876kKVomJr9ZmFYYcF6f7uwHUaFswmqOISzRKiCE1NWGV/f9090JsdwFph99bOfp1ZQX/6yna8qqCvdVvKlr40Q+0mABEiABEiABEiABBY8gSqP8s2kLbcK5U4juZL2BTi4rTH9timHRrQoBk3fCtnBBomGZjVI1EZn69EPBsMwNMVQlPAZSaQQDm6xaGJ9I4m0lWksouAU2UECJEACJEACJEACJEACJEACWQnITzuVP5mLDEX3Qff4VCRUWnHYtM4GRvpZaDXGJ7j1B391IHusdt5SPwzs7ZRGDKaitgzZF4gm2Gk65JeuGsKmu55F4wemUjb50a+oWeM9lKi1dAKP/Fhawyz0vkDDkA0kQAIkQAIkQAIkQAIkQAILnkAtkUBe1GdGY0kiapG6UaZGPv5IUyNzZzT+SN0IUiMff6SpkbkzGn+kbgSpkY8lUjc4HpMACZAACZAACZAACZAACaQQaOSmqdf5Vty95h/vQ63u6DYyrYdmlSXS6enpOew6WBZRFdOSokoiXxl8Tjp0uqQMPZKFakRqT3p77qVEqDYjiVTFWZIACZAACZAACZAACZDARBKQa/0P5XeLD0lwbT8Z9E/Ywd6dSONKWn5XV38qO/yLyP9VQQa+Yt6+ptsQrfX2PFjkoo08SjHKyk7JzwtfrceeEovkaY5/2nhKnFb7vNAu+3ZfH9qCkaJTfjB9lxSHZcdT2ftl3yc7tk2YCSq+rXX15eTeKQIzUk75BHxtraI+p7a2hqgszgFx+lMd5Ri/Nr1fSvzrJm0NppJFb5Sp7pGFwI+aHZFfud4KJeFrBfEb8mCMH6FGENxIgARIgARIgARIgARIYHERQNJabnL17E+K1KCltPexWkwXWjc+WWw/XTw4foiBN/YswlYwqzCmqoKp025kfKmOMTuKxuj061s4TPvNj14kQAIkQAIkQAIkQAIkQAIBAqEsL9RuZRZOIsFI7bodra9ahdumRbFjx47qXSCta99R63qtegup3vzfI5w+vva2t4uiCwVnGxXqbYK+ILK0eacfmrY74t8WtRsIj0mABEiABEiABEiABEiABBYBAffWMb6lGd/dnTx1+63Xrpi+eWDLJGE4QBi7dcax+63Y+rXarcJWSOvuF4C7InZ2bl95rEJa4ru4vYZOozuLaMLb9l3cqu1+t3ctN0WEaqjl8uXLi0OHDtXstI8lCZAACZAACZAACZAACZAACTQIuFkfjhtGnoZg1uHLVNS/7Y6ZN49SwW3btpU3CiGCHcfYtF8HaS11yjaLW7t2bTVttEM0FUU5IBzcSKwojHw2NtoGUxXEdF0xOO7du3eJtbFiwbovClfcZ2MFGwu1bt26st8ytQ7arna2L1rXSFRAjXWRdPranlyqcKjstPp2VD29VFiFtF2Prc+g+tiFG6vfJfzZ2dklOAsk6i5utCUBEiABEiABEiABEiCBySGgl+DuNX9bhI2MTx0gpHW3nNws2kaqCVqndEf5WSG33mbT+H4pK+AmuuhDFm1tkuptUUCkzaaRR2l27Ca7GpG2q522t5YaiQqogy4S+rWtU6nCobLT6tuRQ/9R2t5b2A5i62MXbqy+jaatziy6jRD7SYAESIAESIAESOBYJtA9ffHQsDkAUsxoHmX9raNt13opNp9gJIvCOZToarKhAySXbZFaoUGX51bI1ilqaeSpk2kejlZlkTMtX6Xsi0Xolcgya6tXL336emgHaHMO9Zev/FYoR6ShwdhOAiRAAiRAAiRAAscYgZFk0dmupO2FXTZRe+WYbTWtaLZIbXQUtTTy1KvsxK5eHmlRySnK1c+2LJXQSJiOJDetIrWvh9U8elYq0Zznac9Y6EYCJEACJEACJEACC43AIsqid+/eXT41m+2qEYIQU+HBa0/BwQgLMiTDHgSynjZ4UdA924uDvmxp2WOSNRdm0TUcPCABEiABEiABEiCBTgQmK4vWa1m9Uhx870UF9VpWr211gE6s1BjOKqhtg0qNcpCI68woXSL9jnVxsq44F6ffYvi8Jo8lItIdEWc5hSAIMRVGOeScHMldcwTIjQRIgARIgARIgAQWAYHJyqJd4DaLru6duEZdj/VytKtf1N6KZovUjkhRSyNPnUzzcLQqi5wpPxdtTwbWSYAESIAESIAESOBYJTCSLLr6vGlXajYXhS+yaG0bdHkOIU3JVbBrcDX7mMigSGujmAOKGhiZqsHzNLa6vcceIsrV74096DgSpiPJoqtI7UvYkNMJTHgvOnhmsIMESIAESIAESIAESIAESCBEoPYW0tCsRDOc0GBsJwESIAESIAESIAESIAESIAESmFQCyAiHfGYyOC8Ij0RchbOLW2FXfLKy6FikwQWJdVjBLGeDCmYRQ+TugsRmwz4SIAESIAESIAESIAESIAESGD2B7GmPhnxsCE9WFj0yttkXa/IFlSVLEiABEiABEiABEiABEiABEuhEIHu6g9FVFGXWu5LZha2g1m3Ek5NFa3S2tJF2WnU1tmKoDxYc+epniVCnz5IESIAESIAESIAESIAESIAEJoMAUh2boA1OfVxBFbfCtYQ3hQNEQnb6Eebat4vFHEJCvvaRRFp9v5RvRF/byy+/7GsuQu1eY1+ju1h2kXz2bCMBEiABEiABEiABEiABEiCBBUYglh12zvgwdyuo+ahl0lnUCqqQK9xJ1CfoE66JxpzUOVZqxDXRmAP6YoOqIOw6iYaErWAvUVfYFUR/7y2GorcoHUmABEiABEiABEiABEiABEjg7yNg70IOvgNpxZA/2d0n3ppGpiZhNvOriaYKhBZAhWuiPuPUgVQQGq33omEcu8+MPivoCyzaZhfMt0BRZ3aSAAmQAAmQAAmQAAmQAAmQwGQTQKI2klQHwiMRV+Hs4iqoA1gstYQXBl1WVXNS9dPjLho121ikNcPUA52yCqf6Be1U0DIMGqd0ZIssZTDakAAJkAAJkAAJkAAJkAAJkEArgexpD0ZU0awpEMSseJZETUVDwr2zaJsx6yC2DQN22lQETqhjH4xARbMJ2uiyRKiMskaooixJgARIgARIgARIgARIgARIYDIIILvTtMeXS7U+fexOA4L6xDFyUew4HpRGIjJ3IBzb9pF8u5hv0GibjcgahtqtTbAOdtPT0zUEOB7EFKNBAJHpPlgwOAV2kAAJkAAJkAAJkAAJkAAJkMDfQmBQMuaLGIKaS/n6O7epIByzCFtBjaZVGE6xPZQutgprBL6yV6Q+IbfNCg+KMCSMAdy+QcfZBQdFQ2cSIAESIAESIAESIAESIAESyEIAqU5bulN7Tjo2qgrpt2Jt2bKlNO/1bDRutELQl+xqGunenK0Fp1NzS5+gOiYJq7GWfSL9e5hqxFoqGj1mSQIkQAIkQAIkQAIkQAIkQAILmIBmdFmmoGLImwYLWrHBgq7YEMEqNx0iAjzevD9npI01cMUbBkMarPgQHa+vins72UgCJEACJEACJEACJEACJEACIyWgGcnQLLAKcnEJji+LrgDnqGRfJA1q4Qlr5CxJgARIgARIgARIgARIgARIIIlA9rTHCmZJzV3BwaI+wb6i48uiEaHuSSsbM/IhiNkn97nCyY5thla4zZb9JEACJEACJEACJEACJEACJLBACNhUBxkfjgeF7gpqGtlHOCnh9T5YHZlCkmjEv+qyA9e++LuycCrWwenyHlbfe66fIXetQu2uXfDYXaw+ixQUZwcJkAAJkAAJkAAJkAAJkAAJTA4B5KZ9o6nSSCtgBbtme9BpiFpBHaircE3UJ9hHuBKNCapwrLSzqUThEBO2TjFx9NVE0eAT7iLoFXWFuwrCP7j5Ig4as4MESIAESIAESIAESIAESIAEFhYBe2dy8F1JK4Zcyu6p4rU0MjUha8sCK9FUwdAi2oEqURinClsB3yDVvWh0wjh27xl9bYK+Qao2u2CpC1Q5s0ICJEACJEACJEACJEACJEACC4OApj5ZolWx1CwwOqgVGyxoxbQeHT3SWSW8GpXmnnoc8a11qV+tUaODmNZrBkMOVBDiXaNtHdeKtxp3NVDxrn60JwESIAESIAESIAESIAESIIHhBDQjyZZHWcEsolYQ8x0s6goOEQ1m0V1FW7NoCGIbPH2IuAiyiLrC2URdYRxzIwESIAESIAESIAESIAESIIFjgIBNzpBD4bjPtKqnjyGgTxcjz8SO477CZTCh7C7UHptB0heBpQjbLDpJ1DrEImz0gd309HRtYXA8iClGgQCmqvtgwUbobCABEiABEiABEiABEiABEiCBiSCQkuV1ChSCmlN1cgwZqyD6swhbQR10kLBP0BWGTWhX20bpEx4UqY5ghbMIusIYQNuylNkFs0RFERIgARIgARIgARIgARIgARLIRgBpT5/Up3pO2kaiQvqtWFu2bCm7e92Uxc1XCCJ9tIOgrimle8PWtasdxwTVUIUViy3VplHGhFUwJdLRM3VD1+m57TwmgTCB/wdigVA7yGo0NAAAAABJRU5ErkJggg==) no-repeat top left;width:21px;height:21px}.geSprite-actualsize{background-position:0 0}.geSprite-bold{background-position:0 -46px}.geSprite-bottom{background-position:0 -92px}.geSprite-center{background-position:0 -138px}.geSprite-delete{background-position:0 -184px}.geSprite-fillcolor{background-position:0 -230px}.geSprite-fit{background-position:0 -276px}.geSprite-fontcolor{background-position:0 -322px}.geSprite-gradientcolor{background-position:0 -368px}.geSprite-image{background-position:0 -414px}.geSprite-italic{background-position:0 -460px}.geSprite-left{background-position:0 -506px}.geSprite-middle{background-position:0 -552px}.geSprite-print{background-position:0 -598px}.geSprite-redo{background-position:0 -644px}.geSprite-right{background-position:0 -690px}.geSprite-shadow{background-position:0 -736px}.geSprite-strokecolor{background-position:0 -782px}.geSprite-top{background-position:0 -828px}.geSprite-underline{background-position:0 -874px}.geSprite-undo{background-position:0 -920px}.geSprite-zoomin{background-position:0 -966px}.geSprite-zoomout{background-position:0 -1012px}.geSprite-helbow{background-position:0 -1058px}.geSprite-velbow{background-position:0 -1104px}.geSprite-straight{background-position:0 -1150px}.geSprite-entity{background-position:0 -1196px}.geSprite-segment{background-position:0 -1242px}.geSprite-orthogonal{background-position:0 -1288px}.geSprite-noarrow{background-position:0 -1334px}.geSprite-endclassic{background-position:0 -1380px}.geSprite-endopen{background-position:0 -1426px}.geSprite-endblock{background-position:0 -1472px}.geSprite-endoval{background-position:0 -1518px}.geSprite-enddiamond{background-position:0 -1564px}.geSprite-endthindiamond{background-position:0 -1610px}.geSprite-endclassictrans{background-position:0 -1656px}.geSprite-endblocktrans{background-position:0 -1702px}.geSprite-endovaltrans{background-position:0 -1748px}.geSprite-enddiamondtrans{background-position:0 -1794px}.geSprite-endthindiamondtrans{background-position:0 -1840px}.geSprite-startclassic{background-position:0 -1886px}.geSprite-startopen{background-position:0 -1932px}.geSprite-startblock{background-position:0 -1978px}.geSprite-startoval{background-position:0 -2024px}.geSprite-startdiamond{background-position:0 -2070px}.geSprite-startthindiamond{background-position:0 -2116px}.geSprite-startclassictrans{background-position:0 -2162px}.geSprite-startblocktrans{background-position:0 -2208px}.geSprite-startovaltrans{background-position:0 -2254px}.geSprite-startdiamondtrans{background-position:0 -2300px}.geSprite-startthindiamondtrans{background-position:0 -2346px}.geSprite-copy{background-position:0 -410px}.geSprite-cut{background-position:0 -320px}.geSprite-paste{background-position:0 -367px}.geSprite-duplicate{background-position:0 -736px}.geSprite-save{background-position:0 -782px}.geSprite-publish{background-position:0 -92px}.geBaseButton{padding:10px;border-radius:6px;border:1px solid silver;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#ececec 0,#fcfcfc 100%)}.geBaseButton:hover{background:#ececec}.geBigButton{color:#fff;border:none;padding:10px;font-size:14pt;white-space:nowrap;border-radius:6px;text-shadow:#295989 0 1px 0;background-color:#428bca;background-image:linear-gradient(#4687ce 0,#3068a2 100%);-webkit-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;-moz-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0}.geBigButton:hover{background-color:#2d6ca2;background-image:linear-gradient(#5a94d3 0,#3673b5 100%)}.geBigButton:active{background-color:#3673b5;background-image:none}@media print{div.geNoPrint{display:none!important}}html div.mxRubberband{border-color:#00d;background:#9cf}td.mxPopupMenuIcon div{width:16px;height:16px}html div.mxPopupMenu{-webkit-box-shadow:2px 2px 3px #d5d5d5;-moz-box-shadow:2px 2px 3px #d5d5d5;box-shadow:2px 2px 3px #d5d5d5;background:#fff;position:absolute;border:3px solid #e7e7e7;padding:3px}html table.mxPopupMenu{border-collapse:collapse;margin:0}html td.mxPopupMenuItem{padding:7px 30px 7px 30px;font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt}html td.mxPopupMenuIcon{background-color:#fff;padding:0}td.mxPopupMenuIcon .geIcon{padding:2px;padding-bottom:4px;margin:2px;border:1px solid transparent;opacity:.5}td.mxPopupMenuIcon .geIcon:hover{border:1px solid gray;border-radius:2px;opacity:1}html tr.mxPopupMenuItemHover{background-color:#eee;color:#000}table.mxPopupMenu hr{color:#ccc;background-color:#ccc;border:none;height:1px}table.mxPopupMenu tr{font-size:4pt}html td.mxWindowTitle{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;text-align:left;font-size:12px;color:#707070;padding:4px}div.mxTooltip{-webkit-box-shadow:3px 3px 12px silver;-moz-box-shadow:3px 3px 12px silver;box-shadow:3px 3px 12px silver;background:#ffc;border-style:solid;border-width:1px;border-color:#000;font-family:Arial;font-size:8pt;position:absolute;cursor:default;padding:4px;color:#000}body{font-family:Arial Unicode MS,Arial,Helvetica;font-size:10pt}
\ No newline at end of file
--- /dev/null
+[data-ng-click],[ng-click],[x-ng-click]{cursor:pointer}.ms-container{width:100%!important}.ms-container .ms-list{height:380px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:6px 12px!important;height:34px!important}md-input-container:not(.md-input-has-value) input:not(:focus){color:inherit!important}.ms-container .ms-search{height:34px;margin-bottom:5px;border:solid 1px #e5e5e5;background-color:#fff;box-shadow:none;width:100%;padding-left:6px}.ms-container .ms-footer{text-align:center}.no-border{border:none!important}.left .motion-spinner{border-top-color:#00d7cc!important;border-left-color:#00d7cc!important}.right .motion-spinner{border-top-color:#00d7cc!important;border-right-color:#00d7cc!important}.md-option-info-text{font-size:10px}md-pagination-wrapper{width:auto!important}md-autocomplete.no-container-margin md-autocomplete-wrap md-input-container{margin:0!important}md-dialog.report-selection-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.advanced-search-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}.md-dialog-action-center{justify-content:center!important}.flag-24{height:24px}button.auto-width{min-width:auto!important}button.size-8{transform:scale(.8)}md-icon.auto-size{height:auto!important;width:auto!important}md-switch.auto-height{height:auto!important}.hidden{visibility:hidden}.user-profile-section-help{background:#fcf20f0f;border:1px solid rgba(0,0,0,.12);padding:5px}.email-preview-message{display:-webkit-box;margin:0 auto;display:block;height:200px;line-height:1.4;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all}button.advanced-search.md-accent-bg.md-button.md-default-theme:not([disabled]).md-icon-button:hover{background-color:#0091ea}.blink{animation:blink 2s ease-in infinite}.no-click{pointer-events:none}.spinner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:rgba(43,43,43,.5)}ms-quick-filter[disabled]{pointer-events:none;opacity:.7}ms-search-bar[disabled]{pointer-events:none;opacity:.7}@keyframes blink{from,to{opacity:1}50%{opacity:0}}textarea.api-key-area{background:0 0;resize:none}.badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}md-tooltip.multiline div.md-content{height:auto!important}.auto-margin{margin:auto}md-menu-item md-menu.no-margin button{display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-date-range md-menu span.md-select-value{border-bottom-color:rgba(0,0,0,.12)}.keep-on-top{z-index:9999!important}.margin-auto{margin:auto}.xenialab-violet-light-bg{background-color:#9c4fd3!important}.xenialab-violet-light-fg{color:#9c4fd3!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.disabled-button{display:inline-block;position:relative;cursor:default;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:rgba(0,0,0,.12);color:rgba(0,0,0,.38);white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden}.word-break-all{word-break:break-all}@supports (-ms-ime-align:auto){md-tabs{display:inline!important}}@supports (-ms-accelerator:true){md-tabs{display:inline!important}}@supports (-moz-transform:translate(0,0)){md-tabs{display:inline!important}}body[dir=rtl] table.md-table td.md-cell,body[dir=rtl] table.md-table th.md-column{text-align:right!important}body[dir=rtl] table.md-table td.md-cell md-checkbox,body[dir=rtl] table.md-table th.md-column md-checkbox{margin-right:12px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{margin:0 0 0 16px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>a.ms-navigation-button{padding-right:45px}body[dir=rtl] .md-table-pagination>.buttons{direction:ltr}body[dir=rtl] .md-table-pagination>.buttons>.label{direction:rtl}body[dir=rtl] .header .logo .logo-icon{margin:5px 0 0 15px!important}body[dir=rtl] md-switch .md-container{margin-right:inherit!important}#toasty.toasty-position-top-right{top:64px}body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;transform:translate(-50%,-50%) scale(0);transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1{font-size:14px;font-weight:400;letter-spacing:.010em;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}.md-button{letter-spacing:.010em}button,html,input,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}button,input,select,textarea{font-size:100%}@keyframes md-autocomplete-list-out{0%{animation-timing-function:linear}50%{opacity:0;height:40px;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:flex;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{content:'';position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;transform:scale(0);opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{transform:scale(0);transition:transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{transform:scale(1)}md-autocomplete button.ng-leave{transition:transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{transition:opacity 450ms;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px 16px;z-index:70;border-top-width:1px;border-top-style:solid;transform:translate3d(0,80px,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{transform:translate3d(0,100%,0)!important;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:flex;outline:0}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:flex;flex-direction:row;flex-wrap:wrap;transition:all .5s;align-items:center}md-bottom-sheet.md-grid md-list-item{flex-direction:column;align-items:center;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{flex:1 1 33.3333333333%;max-width:33.3333333333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{flex:1 1 16.6666666667%;max-width:16.6666666667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{flex:1 1 14.2857142857%;max-width:14.2857142857%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:flex;flex-direction:column;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:flex;flex-direction:column;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-property:background-color,box-shadow,transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{transform:translate3d(0,-43px,0)}.md-button-group{display:flex;flex:1;width:100%}.md-button-group>.md-button{flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card md-card-header{padding:16px;display:flex;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:flex;flex:1;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:flex;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:flex;flex:1 1 auto;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{flex:1;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{flex:1;justify-content:flex-start;display:flex;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{flex:1;justify-content:flex-end;display:flex;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px 0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px}[dir=rtl] .md-chips md-chip{float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px}[dir=rtl] .md-chips .md-chip-input-container{float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:0 0;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px}[dir=rtl] md-checkbox{margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto}[dir=rtl] md-checkbox .md-container{right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0}[dir=rtl] md-checkbox .md-label{margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-month-label md-icon{transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px;vertical-align:middle}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px}[dir=rtl] md-datepicker{margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;transform:scale(0);transform-origin:0 0;transition:transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0}[dir=rtl] .md-datepicker-triangle-button{transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label{display:none}.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{transform:translateY(-85px);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,100%) scale(.2)}md-dialog>form{display:flex;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{order:1;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:flex;order:2;box-sizing:border-box;align-items:center;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin-bottom:8px;margin-left:8px;margin-right:0;margin-top:8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:flex;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{align-items:center}md-fab-speed-dial md-fab-actions{display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;order:2}md-fab-speed-dial.md-up{flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{order:2}md-fab-speed-dial.md-up md-fab-actions{flex-direction:column-reverse;order:1}md-fab-speed-dial.md-left{flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{order:2}md-fab-speed-dial.md-left md-fab-actions{flex-direction:row-reverse;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{order:1}md-fab-speed-dial.md-right md-fab-actions{flex-direction:row;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.1428571429s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:flex;flex-direction:row;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto}[dir=rtl] md-input-container>md-icon{right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;transform:translate3d(0,28px,0) scale(1);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-right:3px}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;transition-property:opacity,transform;transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{order:2;display:block;margin-top:0;background:0 0;padding-top:2px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-width:0 0 1px 0;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left}[dir=rtl] md-input-container .md-char-counter{padding-right:0}[dir=rtl] md-input-container .md-char-counter{padding-left:2px}md-input-container .md-input-messages-animation{position:relative;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-left:5px}md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-input-message-animation:not(.ng-animate){opacity:0;margin-top:-100px}md-input-container .md-input-message-animation.ng-enter{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){transform:translate3d(0,6px,0) scale(.75);transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px 0}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0}[dir=rtl] md-input-container.md-icon-left{padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto}[dir=rtl] md-input-container.md-icon-left>label{right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px}[dir=rtl] md-input-container.md-icon-right{padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0 8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;flex-direction:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:flex;justify-content:flex-start;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:flex;align-items:center;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{align-items:flex-start;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px 0;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.2s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-menu-content{display:flex;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;flex-direction:row;min-height:48px;height:48px;align-content:center;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{flex-grow:0;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{transform:rotate(90deg) scaleY(.45) scaleX(.9)}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;transition:none}.md-panel._md-panel-animate-enter{opacity:1;transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{transition:opacity .3s cubic-bezier(.4,0,1,1)}@keyframes indeterminate-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{transition:transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{transition:all .2s linear;animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1{animation-name:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;animation:buffer 3s infinite linear}@keyframes query{0%{opacity:1;transform:translateX(35%) scale(.3,1)}100%{opacity:0;transform:translateX(-50%) scale(0,1)}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes md-progress-linear-indeterminate-scale-1{0%{transform:scaleX(.1);animation-timing-function:linear}36.6%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.334731432,.124819821,.785843996,1)}69.15%{transform:scaleX(.83);animation-timing-function:cubic-bezier(.225732004,0,.233648906,1.3709798)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.166666667%;animation-timing-function:linear}20%{left:-105.166666667%;animation-timing-function:cubic-bezier(.5,0,.701732,.495818703)}69.15%{left:21.5%;animation-timing-function:cubic-bezier(.302435,.38135197,.55,.956352125)}100%{left:95.4444444444%}}@keyframes md-progress-linear-indeterminate-scale-2{0%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.205028172,.057050836,.57660995,.453970841)}19.15%{transform:scaleX(.57);animation-timing-function:cubic-bezier(.152312994,.196431957,.648373778,1.00431535)}44.15%{transform:scaleX(.91);animation-timing-function:cubic-bezier(.25775882,-.003163357,.211761916,1.38178961)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.8888888889%;animation-timing-function:cubic-bezier(.15,0,.5150584,.409684966)}25%{left:-17.25%;animation-timing-function:cubic-bezier(.3103299,.284057684,.8,.733718979)}48.35%{left:29.5%;animation-timing-function:cubic-bezier(.4,.627034903,.6,.902025796)}100%{left:117.388888889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled]{cursor:default}md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto}[dir=rtl] md-radio-button .md-container{right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-style:solid;border-width:2px;border-radius:50%;transition:border-color ease .28s}md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;transition:transform ease .28s;transform:scale(0)}md-radio-button.md-checked .md-on{transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0}[dir=rtl] md-radio-button .md-label{margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin-top:0;margin-bottom:0;margin-left:0;margin-right:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button{cursor:default}md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:150ms;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-input-container>md-select{margin:0;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:flex;margin:20px 0 26px 0}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){transform:translate3d(0,1px,0)}.md-select-value{display:flex;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;align-items:flex-end;text-align:end;width:24px;margin:0 4px;transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:flex;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:flex;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;transform-origin:left top;transform:scale(1)}md-select-menu.md-reverse{flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:flex;align-items:center;width:auto;transition:background .15s linear;padding:0 16px 0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.6666666667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-right:10.6666666667px}md-sidenav{box-sizing:border-box;position:absolute;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:flex;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open-remove-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;transform:translate(-100%,0)}.md-sidenav-right.md-closed{transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@keyframes sliderFocusThumb{0%{transform:scale(.7)}30%{transform:scale(1)}100%{transform:scale(.7)}}@keyframes sliderDiscreteFocusThumb{0%{transform:scale(.7)}50%{transform:scale(.8)}100%{transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{transform:scale(.7);opacity:0}50%{transform:scale(1);opacity:1}100%{transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;transform:translate3d(-50%,-50%,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;transform:scale(.7);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;transition:inherit}md-slider .md-sign{display:flex;align-items:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;transform:scale(.4) translate3d(0,67.5px,0);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;transform:scale(.7);opacity:0;transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(0);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks{opacity:0}md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{flex:1;padding-top:12px;padding-bottom:12px;width:48px;align-self:center;display:flex;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:flex;align-items:center;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{animation:subheaderStickyHoverIn .3s ease-out both}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:0;user-select:none;height:30px;line-height:28px;align-items:center;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px}[dir=rtl] md-switch{margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0}[dir=rtl] md-switch:last-of-type{margin-right:inherit}md-switch[disabled]{cursor:default}md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:grab;width:36px;height:24px;position:relative;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{transform:translate3d(100%,0,0)}md-switch .md-thumb{position:absolute;margin:0;left:0;top:0;outline:0;height:20px;width:20px;border-radius:50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{transition:all 80ms linear;transition-property:transform,background-color}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat center center;transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:flex;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:flex;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;transition:transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;position:absolute;top:0;left:0;right:0;bottom:0;transition:transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{transition:none}md-tab-content.md-left:not(.md-active){transform:translateX(-100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){transform:translateX(100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;overflow:hidden;padding:8px;opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:flex;direction:row;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;transform:translate3d(0,0,0) rotateZ(0);transition:all .4s cubic-bezier(.25,.8,.25,1);justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{justify-content:flex-end}md-toast .md-toast-content span{flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule{border-radius:24px}md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px}[dir=rtl] md-toast .md-button{margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:flex;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:flex;align-items:center;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:flex;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:center top;transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s;transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{transform:scale(1);opacity:.9;transform-origin:center top}md-tooltip .md-content.md-show-remove{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{transform:scale(0);opacity:0}md-tooltip.md-hide{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{order:0}.flex-order--20{order:-20}.flex-order--19{order:-19}.flex-order--18{order:-18}.flex-order--17{order:-17}.flex-order--16{order:-16}.flex-order--15{order:-15}.flex-order--14{order:-14}.flex-order--13{order:-13}.flex-order--12{order:-12}.flex-order--11{order:-11}.flex-order--10{order:-10}.flex-order--9{order:-9}.flex-order--8{order:-8}.flex-order--7{order:-7}.flex-order--6{order:-6}.flex-order--5{order:-5}.flex-order--4{order:-4}.flex-order--3{order:-3}.flex-order--2{order:-2}.flex-order--1{order:-1}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-order-7{order:7}.flex-order-8{order:8}.flex-order-9{order:9}.flex-order-10{order:10}.flex-order-11{order:11}.flex-order-12{order:12}.flex-order-13{order:13}.flex-order-14{order:14}.flex-order-15{order:15}.flex-order-16{order:16}.flex-order-17{order:17}.flex-order-18{order:18}.flex-order-19{order:19}.flex-order-20{order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{align-items:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{align-items:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{align-items:stretch;align-content:stretch}.flex{flex:1;box-sizing:border-box}.flex-grow{flex:1 1 100%;box-sizing:border-box}.flex-initial{flex:0 1 auto;box-sizing:border-box}.flex-auto{flex:1 1 auto;box-sizing:border-box}.flex-none{flex:0 0 auto;box-sizing:border-box}.flex-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-row>.flex{min-width:0}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-column{flex-direction:column}.layout-row{flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{flex-wrap:wrap}.layout-nowrap{flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{order:-20}.flex-order-xs--19{order:-19}.flex-order-xs--18{order:-18}.flex-order-xs--17{order:-17}.flex-order-xs--16{order:-16}.flex-order-xs--15{order:-15}.flex-order-xs--14{order:-14}.flex-order-xs--13{order:-13}.flex-order-xs--12{order:-12}.flex-order-xs--11{order:-11}.flex-order-xs--10{order:-10}.flex-order-xs--9{order:-9}.flex-order-xs--8{order:-8}.flex-order-xs--7{order:-7}.flex-order-xs--6{order:-6}.flex-order-xs--5{order:-5}.flex-order-xs--4{order:-4}.flex-order-xs--3{order:-3}.flex-order-xs--2{order:-2}.flex-order-xs--1{order:-1}.flex-order-xs-0{order:0}.flex-order-xs-1{order:1}.flex-order-xs-2{order:2}.flex-order-xs-3{order:3}.flex-order-xs-4{order:4}.flex-order-xs-5{order:5}.flex-order-xs-6{order:6}.flex-order-xs-7{order:7}.flex-order-xs-8{order:8}.flex-order-xs-9{order:9}.flex-order-xs-10{order:10}.flex-order-xs-11{order:11}.flex-order-xs-12{order:12}.flex-order-xs-13{order:13}.flex-order-xs-14{order:14}.flex-order-xs-15{order:15}.flex-order-xs-16{order:16}.flex-order-xs-17{order:17}.flex-order-xs-18{order:18}.flex-order-xs-19{order:19}.flex-order-xs-20{order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-xs{flex:1;box-sizing:border-box}.flex-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xs-column{flex-direction:column}.layout-xs-row{flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{order:-20}.flex-order-gt-xs--19{order:-19}.flex-order-gt-xs--18{order:-18}.flex-order-gt-xs--17{order:-17}.flex-order-gt-xs--16{order:-16}.flex-order-gt-xs--15{order:-15}.flex-order-gt-xs--14{order:-14}.flex-order-gt-xs--13{order:-13}.flex-order-gt-xs--12{order:-12}.flex-order-gt-xs--11{order:-11}.flex-order-gt-xs--10{order:-10}.flex-order-gt-xs--9{order:-9}.flex-order-gt-xs--8{order:-8}.flex-order-gt-xs--7{order:-7}.flex-order-gt-xs--6{order:-6}.flex-order-gt-xs--5{order:-5}.flex-order-gt-xs--4{order:-4}.flex-order-gt-xs--3{order:-3}.flex-order-gt-xs--2{order:-2}.flex-order-gt-xs--1{order:-1}.flex-order-gt-xs-0{order:0}.flex-order-gt-xs-1{order:1}.flex-order-gt-xs-2{order:2}.flex-order-gt-xs-3{order:3}.flex-order-gt-xs-4{order:4}.flex-order-gt-xs-5{order:5}.flex-order-gt-xs-6{order:6}.flex-order-gt-xs-7{order:7}.flex-order-gt-xs-8{order:8}.flex-order-gt-xs-9{order:9}.flex-order-gt-xs-10{order:10}.flex-order-gt-xs-11{order:11}.flex-order-gt-xs-12{order:12}.flex-order-gt-xs-13{order:13}.flex-order-gt-xs-14{order:14}.flex-order-gt-xs-15{order:15}.flex-order-gt-xs-16{order:16}.flex-order-gt-xs-17{order:17}.flex-order-gt-xs-18{order:18}.flex-order-gt-xs-19{order:19}.flex-order-gt-xs-20{order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-xs{flex:1;box-sizing:border-box}.flex-gt-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-xs-column{flex-direction:column}.layout-gt-xs-row{flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{order:-20}.flex-order-sm--19{order:-19}.flex-order-sm--18{order:-18}.flex-order-sm--17{order:-17}.flex-order-sm--16{order:-16}.flex-order-sm--15{order:-15}.flex-order-sm--14{order:-14}.flex-order-sm--13{order:-13}.flex-order-sm--12{order:-12}.flex-order-sm--11{order:-11}.flex-order-sm--10{order:-10}.flex-order-sm--9{order:-9}.flex-order-sm--8{order:-8}.flex-order-sm--7{order:-7}.flex-order-sm--6{order:-6}.flex-order-sm--5{order:-5}.flex-order-sm--4{order:-4}.flex-order-sm--3{order:-3}.flex-order-sm--2{order:-2}.flex-order-sm--1{order:-1}.flex-order-sm-0{order:0}.flex-order-sm-1{order:1}.flex-order-sm-2{order:2}.flex-order-sm-3{order:3}.flex-order-sm-4{order:4}.flex-order-sm-5{order:5}.flex-order-sm-6{order:6}.flex-order-sm-7{order:7}.flex-order-sm-8{order:8}.flex-order-sm-9{order:9}.flex-order-sm-10{order:10}.flex-order-sm-11{order:11}.flex-order-sm-12{order:12}.flex-order-sm-13{order:13}.flex-order-sm-14{order:14}.flex-order-sm-15{order:15}.flex-order-sm-16{order:16}.flex-order-sm-17{order:17}.flex-order-sm-18{order:18}.flex-order-sm-19{order:19}.flex-order-sm-20{order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-sm{flex:1;box-sizing:border-box}.flex-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-sm-column{flex-direction:column}.layout-sm-row{flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{order:-20}.flex-order-gt-sm--19{order:-19}.flex-order-gt-sm--18{order:-18}.flex-order-gt-sm--17{order:-17}.flex-order-gt-sm--16{order:-16}.flex-order-gt-sm--15{order:-15}.flex-order-gt-sm--14{order:-14}.flex-order-gt-sm--13{order:-13}.flex-order-gt-sm--12{order:-12}.flex-order-gt-sm--11{order:-11}.flex-order-gt-sm--10{order:-10}.flex-order-gt-sm--9{order:-9}.flex-order-gt-sm--8{order:-8}.flex-order-gt-sm--7{order:-7}.flex-order-gt-sm--6{order:-6}.flex-order-gt-sm--5{order:-5}.flex-order-gt-sm--4{order:-4}.flex-order-gt-sm--3{order:-3}.flex-order-gt-sm--2{order:-2}.flex-order-gt-sm--1{order:-1}.flex-order-gt-sm-0{order:0}.flex-order-gt-sm-1{order:1}.flex-order-gt-sm-2{order:2}.flex-order-gt-sm-3{order:3}.flex-order-gt-sm-4{order:4}.flex-order-gt-sm-5{order:5}.flex-order-gt-sm-6{order:6}.flex-order-gt-sm-7{order:7}.flex-order-gt-sm-8{order:8}.flex-order-gt-sm-9{order:9}.flex-order-gt-sm-10{order:10}.flex-order-gt-sm-11{order:11}.flex-order-gt-sm-12{order:12}.flex-order-gt-sm-13{order:13}.flex-order-gt-sm-14{order:14}.flex-order-gt-sm-15{order:15}.flex-order-gt-sm-16{order:16}.flex-order-gt-sm-17{order:17}.flex-order-gt-sm-18{order:18}.flex-order-gt-sm-19{order:19}.flex-order-gt-sm-20{order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-sm{flex:1;box-sizing:border-box}.flex-gt-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-sm-column{flex-direction:column}.layout-gt-sm-row{flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-md--20{order:-20}.flex-order-md--19{order:-19}.flex-order-md--18{order:-18}.flex-order-md--17{order:-17}.flex-order-md--16{order:-16}.flex-order-md--15{order:-15}.flex-order-md--14{order:-14}.flex-order-md--13{order:-13}.flex-order-md--12{order:-12}.flex-order-md--11{order:-11}.flex-order-md--10{order:-10}.flex-order-md--9{order:-9}.flex-order-md--8{order:-8}.flex-order-md--7{order:-7}.flex-order-md--6{order:-6}.flex-order-md--5{order:-5}.flex-order-md--4{order:-4}.flex-order-md--3{order:-3}.flex-order-md--2{order:-2}.flex-order-md--1{order:-1}.flex-order-md-0{order:0}.flex-order-md-1{order:1}.flex-order-md-2{order:2}.flex-order-md-3{order:3}.flex-order-md-4{order:4}.flex-order-md-5{order:5}.flex-order-md-6{order:6}.flex-order-md-7{order:7}.flex-order-md-8{order:8}.flex-order-md-9{order:9}.flex-order-md-10{order:10}.flex-order-md-11{order:11}.flex-order-md-12{order:12}.flex-order-md-13{order:13}.flex-order-md-14{order:14}.flex-order-md-15{order:15}.flex-order-md-16{order:16}.flex-order-md-17{order:17}.flex-order-md-18{order:18}.flex-order-md-19{order:19}.flex-order-md-20{order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{align-items:stretch;align-content:stretch}.flex-md{flex:1;box-sizing:border-box}.flex-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-md-none{flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-md-column{flex-direction:column}.layout-md-row{flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{order:-20}.flex-order-gt-md--19{order:-19}.flex-order-gt-md--18{order:-18}.flex-order-gt-md--17{order:-17}.flex-order-gt-md--16{order:-16}.flex-order-gt-md--15{order:-15}.flex-order-gt-md--14{order:-14}.flex-order-gt-md--13{order:-13}.flex-order-gt-md--12{order:-12}.flex-order-gt-md--11{order:-11}.flex-order-gt-md--10{order:-10}.flex-order-gt-md--9{order:-9}.flex-order-gt-md--8{order:-8}.flex-order-gt-md--7{order:-7}.flex-order-gt-md--6{order:-6}.flex-order-gt-md--5{order:-5}.flex-order-gt-md--4{order:-4}.flex-order-gt-md--3{order:-3}.flex-order-gt-md--2{order:-2}.flex-order-gt-md--1{order:-1}.flex-order-gt-md-0{order:0}.flex-order-gt-md-1{order:1}.flex-order-gt-md-2{order:2}.flex-order-gt-md-3{order:3}.flex-order-gt-md-4{order:4}.flex-order-gt-md-5{order:5}.flex-order-gt-md-6{order:6}.flex-order-gt-md-7{order:7}.flex-order-gt-md-8{order:8}.flex-order-gt-md-9{order:9}.flex-order-gt-md-10{order:10}.flex-order-gt-md-11{order:11}.flex-order-gt-md-12{order:12}.flex-order-gt-md-13{order:13}.flex-order-gt-md-14{order:14}.flex-order-gt-md-15{order:15}.flex-order-gt-md-16{order:16}.flex-order-gt-md-17{order:17}.flex-order-gt-md-18{order:18}.flex-order-gt-md-19{order:19}.flex-order-gt-md-20{order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-md{flex:1;box-sizing:border-box}.flex-gt-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-md-column{flex-direction:column}.layout-gt-md-row{flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-lg--20{order:-20}.flex-order-lg--19{order:-19}.flex-order-lg--18{order:-18}.flex-order-lg--17{order:-17}.flex-order-lg--16{order:-16}.flex-order-lg--15{order:-15}.flex-order-lg--14{order:-14}.flex-order-lg--13{order:-13}.flex-order-lg--12{order:-12}.flex-order-lg--11{order:-11}.flex-order-lg--10{order:-10}.flex-order-lg--9{order:-9}.flex-order-lg--8{order:-8}.flex-order-lg--7{order:-7}.flex-order-lg--6{order:-6}.flex-order-lg--5{order:-5}.flex-order-lg--4{order:-4}.flex-order-lg--3{order:-3}.flex-order-lg--2{order:-2}.flex-order-lg--1{order:-1}.flex-order-lg-0{order:0}.flex-order-lg-1{order:1}.flex-order-lg-2{order:2}.flex-order-lg-3{order:3}.flex-order-lg-4{order:4}.flex-order-lg-5{order:5}.flex-order-lg-6{order:6}.flex-order-lg-7{order:7}.flex-order-lg-8{order:8}.flex-order-lg-9{order:9}.flex-order-lg-10{order:10}.flex-order-lg-11{order:11}.flex-order-lg-12{order:12}.flex-order-lg-13{order:13}.flex-order-lg-14{order:14}.flex-order-lg-15{order:15}.flex-order-lg-16{order:16}.flex-order-lg-17{order:17}.flex-order-lg-18{order:18}.flex-order-lg-19{order:19}.flex-order-lg-20{order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-lg{flex:1;box-sizing:border-box}.flex-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-lg-column{flex-direction:column}.layout-lg-row{flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{order:-20}.flex-order-gt-lg--19{order:-19}.flex-order-gt-lg--18{order:-18}.flex-order-gt-lg--17{order:-17}.flex-order-gt-lg--16{order:-16}.flex-order-gt-lg--15{order:-15}.flex-order-gt-lg--14{order:-14}.flex-order-gt-lg--13{order:-13}.flex-order-gt-lg--12{order:-12}.flex-order-gt-lg--11{order:-11}.flex-order-gt-lg--10{order:-10}.flex-order-gt-lg--9{order:-9}.flex-order-gt-lg--8{order:-8}.flex-order-gt-lg--7{order:-7}.flex-order-gt-lg--6{order:-6}.flex-order-gt-lg--5{order:-5}.flex-order-gt-lg--4{order:-4}.flex-order-gt-lg--3{order:-3}.flex-order-gt-lg--2{order:-2}.flex-order-gt-lg--1{order:-1}.flex-order-gt-lg-0{order:0}.flex-order-gt-lg-1{order:1}.flex-order-gt-lg-2{order:2}.flex-order-gt-lg-3{order:3}.flex-order-gt-lg-4{order:4}.flex-order-gt-lg-5{order:5}.flex-order-gt-lg-6{order:6}.flex-order-gt-lg-7{order:7}.flex-order-gt-lg-8{order:8}.flex-order-gt-lg-9{order:9}.flex-order-gt-lg-10{order:10}.flex-order-gt-lg-11{order:11}.flex-order-gt-lg-12{order:12}.flex-order-gt-lg-13{order:13}.flex-order-gt-lg-14{order:14}.flex-order-gt-lg-15{order:15}.flex-order-gt-lg-16{order:16}.flex-order-gt-lg-17{order:17}.flex-order-gt-lg-18{order:18}.flex-order-gt-lg-19{order:19}.flex-order-gt-lg-20{order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-lg{flex:1;box-sizing:border-box}.flex-gt-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-lg-column{flex-direction:column}.layout-gt-lg-row{flex-direction:row}.flex-order-xl--20{order:-20}.flex-order-xl--19{order:-19}.flex-order-xl--18{order:-18}.flex-order-xl--17{order:-17}.flex-order-xl--16{order:-16}.flex-order-xl--15{order:-15}.flex-order-xl--14{order:-14}.flex-order-xl--13{order:-13}.flex-order-xl--12{order:-12}.flex-order-xl--11{order:-11}.flex-order-xl--10{order:-10}.flex-order-xl--9{order:-9}.flex-order-xl--8{order:-8}.flex-order-xl--7{order:-7}.flex-order-xl--6{order:-6}.flex-order-xl--5{order:-5}.flex-order-xl--4{order:-4}.flex-order-xl--3{order:-3}.flex-order-xl--2{order:-2}.flex-order-xl--1{order:-1}.flex-order-xl-0{order:0}.flex-order-xl-1{order:1}.flex-order-xl-2{order:2}.flex-order-xl-3{order:3}.flex-order-xl-4{order:4}.flex-order-xl-5{order:5}.flex-order-xl-6{order:6}.flex-order-xl-7{order:7}.flex-order-xl-8{order:8}.flex-order-xl-9{order:9}.flex-order-xl-10{order:10}.flex-order-xl-11{order:11}.flex-order-xl-12{order:12}.flex-order-xl-13{order:13}.flex-order-xl-14{order:14}.flex-order-xl-15{order:15}.flex-order-xl-16{order:16}.flex-order-xl-17{order:17}.flex-order-xl-18{order:18}.flex-order-xl-19{order:19}.flex-order-xl-20{order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{align-items:stretch;align-content:stretch}.flex-xl{flex:1;box-sizing:border-box}.flex-xl-grow{flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{flex:1 1 auto;box-sizing:border-box}.flex-xl-none{flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xl-column{flex-direction:column}.layout-xl-row{flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;box-sizing:border-box}:after,:before{box-sizing:border-box}:focus{outline:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=email],:not(md-input-container)>input[type=image],:not(md-input-container)>input[type=password],:not(md-input-container)>input[type=search],:not(md-input-container)>input[type=submit],:not(md-input-container)>input[type=tel],:not(md-input-container)>input[type=text],:not(md-input-container)>textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;padding:0;margin:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=submit]{background:0 0}button{border-radius:0;font-family:inherit;font-size:inherit;padding:0;margin:0;appearance:none;-moz-appearance:none;-webkit-appearance:none}[layout]>*{min-height:auto;min-height:initial}md-card>:not(md-card-content) img,md-card>img{height:inherit;height:initial}.md-datepicker-calendar-pane *{box-sizing:initial}md-autocomplete-wrap>input[type=search]{background:#fff;padding:0 15px!important}md-backdrop.md-opaque{background-color:rgba(33,33,33,.48)!important}md-card md-card-header md-card-avatar md-icon{width:40px;height:40px}md-checkbox.no-label{margin:0}md-chip .md-chip-remove md-icon{margin-left:2px}md-chip .md-chip-remove md-icon svg{width:18px;height:18px;max-width:18px;max-height:18px;margin:4px}md-datepicker .md-datepicker-button{padding:0!important;margin:0!important;vertical-align:middle}md-datepicker .md-datepicker-input-container{margin-left:0}.md-inline-form md-datepicker{margin-top:14px}md-dialog md-dialog-content{padding:32px 24px 24px 24px}md-dialog md-dialog-actions{min-height:64px;padding-top:8px;padding-bottom:8px}md-dialog md-dialog-actions .md-button{margin:0 8px}md-input-container.no-errors-spacer .md-errors-spacer{display:none}md-input-container .input-hint{position:absolute;right:auto;bottom:7px;left:2px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-input-container.md-icon-left .input-hint{left:38px}md-list-item .md-list-item-text p{font-size:13px!important}.md-menu,md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense{padding:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item{height:40px;line-height:40px}md-menu-content.md-menu-bar-menu.md-dense .md-button.md-indent>md-icon,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{top:8px}.md-open-menu-container md-menu-content md-menu-item.selected{opacity:.4}md-menu-content md-menu-item .md-button{text-align:left}md-select.simplified{margin:0 8px}md-select.simplified .md-select-value{border:none!important;box-sizing:border-box;padding:0}md-select.simplified .md-select-value :first-child{transform:none;height:auto}md-select.simplified .md-select-value .md-select-icon{transform:none;font-size:16px}md-select.simplified .md-select-value .md-select-icon:after{top:1px}md-select[multiple] md-select-value>:first-child{display:flex}md-select[multiple] md-select-value>:first-child>:first-child{flex:0}md-select[multiple] md-select-value>:first-child .md-container{padding-right:6px}md-select[multiple] md-select-value>:first-child .md-container:first-of-type{padding-right:0}md-select-menu md-select-header{position:relative;display:flex;align-items:center;width:auto;height:48px;padding-left:10.667px;box-shadow:0 1px 0 0 rgba(0,0,0,.1),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);cursor:pointer}md-select-menu md-select-header input[type=search]{border:none;outline:0;height:100%;width:100%;padding:0}md-sidenav{-webkit-overflow-scrolling:touch}md-toolbar.colored-toolbar{color:rgba(255,255,255,.87)}md-toolbar.colored-toolbar md-menu-bar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar input{color:rgba(255,255,255,.87)!important}md-progress-circular[disabled]{visibility:hidden}body,html{overflow:hidden!important}#main{position:absolute;top:0;right:0;bottom:0;left:0}body.boxed{background:#3f4450}body.boxed #main{overflow:hidden!important;width:100%;max-width:1280px;margin:0 auto;box-shadow:0 0 12px rgba(0,0,0,.45)}#layout-content-only{position:relative;height:100%;max-height:100%}#layout-content-only #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-content-with-toolbar{position:relative;height:100%;max-height:100%}#layout-content-with-toolbar #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation{height:100%;max-height:100%}#layout-vertical-navigation #content-container{position:relative;overflow:hidden}#layout-vertical-navigation #content-container #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar-2{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-horizontal-navigation{height:100%;max-height:100%}#layout-horizontal-navigation #content-container{position:relative;overflow:hidden}#layout-horizontal-navigation #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}.page-layout{position:relative;overflow:hidden}.page-layout .top-bg{position:absolute;z-index:1;top:0;right:0;left:0;height:200px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout md-backdrop{z-index:50}.page-layout>.header .breadcrumb{margin-bottom:16px;font-weight:500;color:rgba(0,0,0,.54)}.page-layout>.header .breadcrumb md-icon{margin:0}.page-layout>.header .breadcrumb .separator{margin:0 8px}.page-layout>.header .title{font-size:34px}.page-layout.carded{min-height:100%;height:100%}.page-layout.carded.fullwidth.single-scroll{height:auto}.page-layout.carded.fullwidth.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.fullwidth>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.fullwidth>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.fullwidth>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.fullwidth>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.fullwidth>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.left-sidenav.single-scroll{height:auto}.page-layout.carded.left-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.left-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px}.page-layout.carded.left-sidenav>.sidenav .content{background:0 0;padding:24px}.page-layout.carded.left-sidenav>.sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.left-sidenav>.sidenav.md-locked-open+.center{margin-left:0}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .header{border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden}.page-layout.carded.left-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.left-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.left-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.left-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 8px 0 0!important;padding:0!important;border-radius:0}.page-layout.carded.left-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.right-sidenav.single-scroll{height:auto}.page-layout.carded.right-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.right-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.right-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav .content{background:0 0;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav.md-locked-open{width:196px;min-width:196px;max-width:196px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .header{padding:24px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden;padding:24px}.page-layout.carded.right-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.right-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.right-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.right-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 0 0 8px!important;padding:0!important;border-radius:0}.page-layout.carded.right-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.simple.fullwidth,.page-layout.simple.inner-sidenav{min-height:100%}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.fullwidth>.content,.page-layout.simple.inner-sidenav>.content{padding:24px}.page-layout.simple.left-sidenav{min-height:100%;height:100%}.page-layout.simple.left-sidenav.single-scroll{height:auto}.page-layout.simple.left-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.left-sidenav.inner-sidenav>.content>md-sidenav{margin-right:24px}.page-layout.simple.left-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.left-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.left-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.right-sidenav{min-height:100%;height:100%}.page-layout.simple.right-sidenav.single-scroll{height:auto}.page-layout.simple.right-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.right-sidenav.inner-sidenav>.content>md-sidenav{margin-left:24px}.page-layout.simple.right-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.right-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.right-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.inner-sidenav{height:auto}.page-layout.simple.inner-sidenav>.content>md-sidenav.md-locked-open{padding:0}.page-layout.simple.tabbed{min-height:100%}.page-layout.simple.tabbed>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}.page-layout.simple.tabbed>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-content-wrapper>md-tab-content{padding:24px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);border:none;height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav{margin:0 12px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item{height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button{height:56px;line-height:32px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button-text{text-transform:none}.page-layout.blank{min-height:100%;padding:24px}.single-scroll .carded.fullwidth{height:auto}.single-scroll .carded.fullwidth>.center .content-card .content{overflow:hidden}.single-scroll .carded.left-sidenav{height:auto}.single-scroll .carded.left-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .carded.right-sidenav{height:auto}.single-scroll .carded.right-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .simple.left-sidenav{height:auto}.single-scroll .simple.left-sidenav>.center{overflow:hidden}.single-scroll .simple.right-sidenav{height:auto}.single-scroll .simple.right-sidenav>.center{overflow:hidden}@media screen and (max-width:1280px){.page-layout.simple.inner-sidenav.left-sidenav>.content,.page-layout.simple.inner-sidenav.right-sidenav>.content{height:auto!important}.page-layout.simple.inner-sidenav.left-sidenav>.content>md-sidenav,.page-layout.simple.inner-sidenav.right-sidenav>.content>md-sidenav{margin-left:0;margin-right:0}.sidenav-open .page-layout.simple.inner-sidenav{height:100%}}@media screen and (max-width:600px){.page-layout .top-bg{height:160px}.page-layout.carded.fullwidth>.center,.page-layout.carded.left-sidenav>.center,.page-layout.carded.right-sidenav>.center{margin-left:16px;margin-right:16px}.page-layout.carded.fullwidth>.center .header,.page-layout.carded.left-sidenav>.center .header,.page-layout.carded.right-sidenav>.center .header{height:96px;min-height:96px;max-height:96px;padding:16px}.page-layout.carded.fullwidth{height:auto}.page-layout.carded.fullwidth>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav,.page-layout.carded.right-sidenav{height:auto}.page-layout.carded.left-sidenav>.center .content-card .content,.page-layout.carded.right-sidenav>.center .content-card .content{overflow:hidden}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav>.center .header,.page-layout.simple.right-sidenav>.center .header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav,.page-layout.simple.right-sidenav{height:auto}.page-layout.simple.left-sidenav>.center,.page-layout.simple.right-sidenav>.center{overflow:hidden}}.animate-slide-up{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-up.ng-enter{transform:translateY(100%);opacity:0}.animate-slide-up.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-up.ng-leave{transform:translateY(0);opacity:1}.animate-slide-up.ng-leave.ng-leave-active{transition-property:all;transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide-add-active,.animate-slide-up.ng-hide-remove-active{transition-property:all}.animate-slide-down{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-down.ng-enter{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-down.ng-leave{transform:translateY(0);opacity:1}.animate-slide-down.ng-leave.ng-leave-active{transition-property:all;transform:translateY(100%);opacity:0}.animate-slide-down.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-hide-add-active,.animate-slide-down.ng-hide-remove-active{transition-property:all}.animate-slide-left{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-left.ng-enter{transform:translateX(100%);opacity:0}.animate-slide-left.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-left.ng-leave{transform:translateX(0);opacity:1}.animate-slide-left.ng-leave.ng-leave-active{transition-property:all;transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide{transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide-add-active,.animate-slide-left.ng-hide-remove-active{transition-property:all}.animate-slide-right{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-right.ng-enter{transform:translateX(-100%);opacity:0}.animate-slide-right.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-right.ng-leave{transform:translateX(0);opacity:1}.animate-slide-right.ng-leave.ng-leave-active{transition-property:all;transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide{transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide-add-active,.animate-slide-right.ng-hide-remove-active{transition-property:all}.animate-fade-in-out{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-fade-in-out.ng-enter{opacity:0}.animate-fade-in-out.ng-enter.ng-enter-active{transition-property:all;opacity:1}.animate-fade-in-out.ng-leave{opacity:1}.animate-fade-in-out.ng-leave.ng-leave-active{transition-property:all;opacity:0}.animate-fade-in-out.ng-hide{opacity:0}.animate-fade-in-out.ng-hide-add-active,.animate-fade-in-out.ng-hide-remove-active{transition-property:all}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(200px)}65%{opacity:1;transform:translateY(0)}100%{transform:translateY(0)}}.animate-rotate{animation:rotate 1.75s linear infinite}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.black-fg,.black-text{color:rgba(0,0,0,.87)!important}.black-fg .icon,.black-fg .secondary-text,.black-fg.icon,.black-fg.secondary-text,.black-text .icon,.black-text .secondary-text,.black-text.icon,.black-text.secondary-text{color:rgba(0,0,0,.54)!important}.black-fg .disabled-text,.black-fg .hint-text,.black-fg.disabled-text,.black-fg.hint-text,.black-text .disabled-text,.black-text .hint-text,.black-text.disabled-text,.black-text.hint-text{color:rgba(0,0,0,.26)!important}.black-fg .divider,.black-fg .faint-text,.black-fg.divider,.black-fg.faint-text,.black-text .divider,.black-text .faint-text,.black-text.divider,.black-text.faint-text{color:rgba(0,0,0,.12)!important}.white-fg,.white-text{color:#fff!important}.white-fg .icon,.white-fg .secondary-text,.white-fg.icon,.white-fg.secondary-text,.white-text .icon,.white-text .secondary-text,.white-text.icon,.white-text.secondary-text{color:rgba(255,255,255,.7)!important}.white-fg .disabled-text,.white-fg .hint-text,.white-fg.disabled-text,.white-fg.hint-text,.white-text .disabled-text,.white-text .hint-text,.white-text.disabled-text,.white-text.hint-text{color:rgba(255,255,255,.3)!important}.white-fg .divider,.white-fg .faint-text,.white-fg.divider,.white-fg.faint-text,.white-text .divider,.white-text .faint-text,.white-text.divider,.white-text.faint-text{color:rgba(255,255,255,.12)!important}.white-fg md-icon,.white-text md-icon{color:#fff}.white-fg md-progress-linear .md-container,.white-text md-progress-linear .md-container{background:rgba(255,255,255,.3)}.white-fg md-progress-linear .md-bar,.white-text md-progress-linear .md-bar{background:rgba(255,255,255,.7)}.red-50-bg{background-color:#ffebee!important}.md-red-50-bg{background-color:#ffebee!important;color:rgba(0,0,0,.87)}.red-50-fg{color:#ffebee!important}.red-50-border{border-color:#ffebee!important}.red-50-border-top{border-top-color:#ffebee!important}.red-50-border-right{border-right-color:#ffebee!important}.red-50-border-bottom{border-bottom-color:#ffebee!important}.red-50-border-left{border-left-color:#ffebee!important}.red-100-bg{background-color:#ffcdd2!important}.md-red-100-bg{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)}.red-100-fg{color:#ffcdd2!important}.red-100-border{border-color:#ffcdd2!important}.red-100-border-top{border-top-color:#ffcdd2!important}.red-100-border-right{border-right-color:#ffcdd2!important}.red-100-border-bottom{border-bottom-color:#ffcdd2!important}.red-100-border-left{border-left-color:#ffcdd2!important}.red-200-bg{background-color:#ef9a9a!important}.md-red-200-bg{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)}.red-200-fg{color:#ef9a9a!important}.red-200-border{border-color:#ef9a9a!important}.red-200-border-top{border-top-color:#ef9a9a!important}.red-200-border-right{border-right-color:#ef9a9a!important}.red-200-border-bottom{border-bottom-color:#ef9a9a!important}.red-200-border-left{border-left-color:#ef9a9a!important}.red-300-bg{background-color:#e57373!important}.md-red-300-bg{background-color:#e57373!important;color:rgba(0,0,0,.87)}.red-300-fg{color:#e57373!important}.red-300-border{border-color:#e57373!important}.red-300-border-top{border-top-color:#e57373!important}.red-300-border-right{border-right-color:#e57373!important}.red-300-border-bottom{border-bottom-color:#e57373!important}.red-300-border-left{border-left-color:#e57373!important}.red-400-bg{background-color:#ef5350!important}.md-red-400-bg{background-color:#ef5350!important;color:#fff}.red-400-fg{color:#ef5350!important}.red-400-border{border-color:#ef5350!important}.red-400-border-top{border-top-color:#ef5350!important}.red-400-border-right{border-right-color:#ef5350!important}.red-400-border-bottom{border-bottom-color:#ef5350!important}.red-400-border-left{border-left-color:#ef5350!important}.red-500-bg{background-color:#f44336!important}.md-red-500-bg{background-color:#f44336!important;color:#fff}.red-500-fg{color:#f44336!important}.red-500-border{border-color:#f44336!important}.red-500-border-top{border-top-color:#f44336!important}.red-500-border-right{border-right-color:#f44336!important}.red-500-border-bottom{border-bottom-color:#f44336!important}.red-500-border-left{border-left-color:#f44336!important}.md-red-bg{background-color:#f44336!important;color:#fff}.red-bg{background-color:#f44336!important}.red-fg{color:#f44336!important}.red-border{border-color:#f44336!important}.red-border-top{border-top-color:#f44336!important}.red-border-right{border-right-color:#f44336!important}.red-border-bottom{border-bottom-color:#f44336!important}.red-border-left{border-left-color:#f44336!important}.red-600-bg{background-color:#e53935!important}.md-red-600-bg{background-color:#e53935!important;color:#fff}.red-600-fg{color:#e53935!important}.red-600-border{border-color:#e53935!important}.red-600-border-top{border-top-color:#e53935!important}.red-600-border-right{border-right-color:#e53935!important}.red-600-border-bottom{border-bottom-color:#e53935!important}.red-600-border-left{border-left-color:#e53935!important}.red-700-bg{background-color:#d32f2f!important}.md-red-700-bg{background-color:#d32f2f!important;color:#fff}.red-700-fg{color:#d32f2f!important}.red-700-border{border-color:#d32f2f!important}.red-700-border-top{border-top-color:#d32f2f!important}.red-700-border-right{border-right-color:#d32f2f!important}.red-700-border-bottom{border-bottom-color:#d32f2f!important}.red-700-border-left{border-left-color:#d32f2f!important}.red-800-bg{background-color:#c62828!important}.md-red-800-bg{background-color:#c62828!important;color:rgba(255,255,255,.87)}.red-800-fg{color:#c62828!important}.red-800-border{border-color:#c62828!important}.red-800-border-top{border-top-color:#c62828!important}.red-800-border-right{border-right-color:#c62828!important}.red-800-border-bottom{border-bottom-color:#c62828!important}.red-800-border-left{border-left-color:#c62828!important}.red-900-bg{background-color:#b71c1c!important}.md-red-900-bg{background-color:#b71c1c!important;color:rgba(255,255,255,.87)}.red-900-fg{color:#b71c1c!important}.red-900-border{border-color:#b71c1c!important}.red-900-border-top{border-top-color:#b71c1c!important}.red-900-border-right{border-right-color:#b71c1c!important}.red-900-border-bottom{border-bottom-color:#b71c1c!important}.red-900-border-left{border-left-color:#b71c1c!important}.red-A100-bg{background-color:#ff8a80!important}.md-red-A100-bg{background-color:#ff8a80!important;color:rgba(0,0,0,.87)}.red-A100-fg{color:#ff8a80!important}.red-A100-border{border-color:#ff8a80!important}.red-A100-border-top{border-top-color:#ff8a80!important}.red-A100-border-right{border-right-color:#ff8a80!important}.red-A100-border-bottom{border-bottom-color:#ff8a80!important}.red-A100-border-left{border-left-color:#ff8a80!important}.red-A200-bg{background-color:#ff5252!important}.md-red-A200-bg{background-color:#ff5252!important;color:#fff}.red-A200-fg{color:#ff5252!important}.red-A200-border{border-color:#ff5252!important}.red-A200-border-top{border-top-color:#ff5252!important}.red-A200-border-right{border-right-color:#ff5252!important}.red-A200-border-bottom{border-bottom-color:#ff5252!important}.red-A200-border-left{border-left-color:#ff5252!important}.red-A400-bg{background-color:#ff1744!important}.md-red-A400-bg{background-color:#ff1744!important;color:#fff}.red-A400-fg{color:#ff1744!important}.red-A400-border{border-color:#ff1744!important}.red-A400-border-top{border-top-color:#ff1744!important}.red-A400-border-right{border-right-color:#ff1744!important}.red-A400-border-bottom{border-bottom-color:#ff1744!important}.red-A400-border-left{border-left-color:#ff1744!important}.red-A700-bg{background-color:#d50000!important}.md-red-A700-bg{background-color:#d50000!important;color:#fff}.red-A700-fg{color:#d50000!important}.red-A700-border{border-color:#d50000!important}.red-A700-border-top{border-top-color:#d50000!important}.red-A700-border-right{border-right-color:#d50000!important}.red-A700-border-bottom{border-bottom-color:#d50000!important}.red-A700-border-left{border-left-color:#d50000!important}.pink-50-bg{background-color:#fce4ec!important}.md-pink-50-bg{background-color:#fce4ec!important;color:rgba(0,0,0,.87)}.pink-50-fg{color:#fce4ec!important}.pink-50-border{border-color:#fce4ec!important}.pink-50-border-top{border-top-color:#fce4ec!important}.pink-50-border-right{border-right-color:#fce4ec!important}.pink-50-border-bottom{border-bottom-color:#fce4ec!important}.pink-50-border-left{border-left-color:#fce4ec!important}.pink-100-bg{background-color:#f8bbd0!important}.md-pink-100-bg{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)}.pink-100-fg{color:#f8bbd0!important}.pink-100-border{border-color:#f8bbd0!important}.pink-100-border-top{border-top-color:#f8bbd0!important}.pink-100-border-right{border-right-color:#f8bbd0!important}.pink-100-border-bottom{border-bottom-color:#f8bbd0!important}.pink-100-border-left{border-left-color:#f8bbd0!important}.pink-200-bg{background-color:#f48fb1!important}.md-pink-200-bg{background-color:#f48fb1!important;color:rgba(0,0,0,.87)}.pink-200-fg{color:#f48fb1!important}.pink-200-border{border-color:#f48fb1!important}.pink-200-border-top{border-top-color:#f48fb1!important}.pink-200-border-right{border-right-color:#f48fb1!important}.pink-200-border-bottom{border-bottom-color:#f48fb1!important}.pink-200-border-left{border-left-color:#f48fb1!important}.pink-300-bg{background-color:#f06292!important}.md-pink-300-bg{background-color:#f06292!important;color:rgba(255,255,255,.87)}.pink-300-fg{color:#f06292!important}.pink-300-border{border-color:#f06292!important}.pink-300-border-top{border-top-color:#f06292!important}.pink-300-border-right{border-right-color:#f06292!important}.pink-300-border-bottom{border-bottom-color:#f06292!important}.pink-300-border-left{border-left-color:#f06292!important}.pink-400-bg{background-color:#ec407a!important}.md-pink-400-bg{background-color:#ec407a!important;color:rgba(255,255,255,.87)}.pink-400-fg{color:#ec407a!important}.pink-400-border{border-color:#ec407a!important}.pink-400-border-top{border-top-color:#ec407a!important}.pink-400-border-right{border-right-color:#ec407a!important}.pink-400-border-bottom{border-bottom-color:#ec407a!important}.pink-400-border-left{border-left-color:#ec407a!important}.pink-500-bg{background-color:#e91e63!important}.md-pink-500-bg{background-color:#e91e63!important;color:#fff}.pink-500-fg{color:#e91e63!important}.pink-500-border{border-color:#e91e63!important}.pink-500-border-top{border-top-color:#e91e63!important}.pink-500-border-right{border-right-color:#e91e63!important}.pink-500-border-bottom{border-bottom-color:#e91e63!important}.pink-500-border-left{border-left-color:#e91e63!important}.md-pink-bg{background-color:#e91e63!important;color:#fff}.pink-bg{background-color:#e91e63!important}.pink-fg{color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-border-top{border-top-color:#e91e63!important}.pink-border-right{border-right-color:#e91e63!important}.pink-border-bottom{border-bottom-color:#e91e63!important}.pink-border-left{border-left-color:#e91e63!important}.pink-600-bg{background-color:#d81b60!important}.md-pink-600-bg{background-color:#d81b60!important;color:#fff}.pink-600-fg{color:#d81b60!important}.pink-600-border{border-color:#d81b60!important}.pink-600-border-top{border-top-color:#d81b60!important}.pink-600-border-right{border-right-color:#d81b60!important}.pink-600-border-bottom{border-bottom-color:#d81b60!important}.pink-600-border-left{border-left-color:#d81b60!important}.pink-700-bg{background-color:#c2185b!important}.md-pink-700-bg{background-color:#c2185b!important;color:rgba(255,255,255,.87)}.pink-700-fg{color:#c2185b!important}.pink-700-border{border-color:#c2185b!important}.pink-700-border-top{border-top-color:#c2185b!important}.pink-700-border-right{border-right-color:#c2185b!important}.pink-700-border-bottom{border-bottom-color:#c2185b!important}.pink-700-border-left{border-left-color:#c2185b!important}.pink-800-bg{background-color:#ad1457!important}.md-pink-800-bg{background-color:#ad1457!important;color:rgba(255,255,255,.87)}.pink-800-fg{color:#ad1457!important}.pink-800-border{border-color:#ad1457!important}.pink-800-border-top{border-top-color:#ad1457!important}.pink-800-border-right{border-right-color:#ad1457!important}.pink-800-border-bottom{border-bottom-color:#ad1457!important}.pink-800-border-left{border-left-color:#ad1457!important}.pink-900-bg{background-color:#880e4f!important}.md-pink-900-bg{background-color:#880e4f!important;color:rgba(255,255,255,.87)}.pink-900-fg{color:#880e4f!important}.pink-900-border{border-color:#880e4f!important}.pink-900-border-top{border-top-color:#880e4f!important}.pink-900-border-right{border-right-color:#880e4f!important}.pink-900-border-bottom{border-bottom-color:#880e4f!important}.pink-900-border-left{border-left-color:#880e4f!important}.pink-A100-bg{background-color:#ff80ab!important}.md-pink-A100-bg{background-color:#ff80ab!important;color:rgba(0,0,0,.87)}.pink-A100-fg{color:#ff80ab!important}.pink-A100-border{border-color:#ff80ab!important}.pink-A100-border-top{border-top-color:#ff80ab!important}.pink-A100-border-right{border-right-color:#ff80ab!important}.pink-A100-border-bottom{border-bottom-color:#ff80ab!important}.pink-A100-border-left{border-left-color:#ff80ab!important}.pink-A200-bg{background-color:#ff4081!important}.md-pink-A200-bg{background-color:#ff4081!important;color:#fff}.pink-A200-fg{color:#ff4081!important}.pink-A200-border{border-color:#ff4081!important}.pink-A200-border-top{border-top-color:#ff4081!important}.pink-A200-border-right{border-right-color:#ff4081!important}.pink-A200-border-bottom{border-bottom-color:#ff4081!important}.pink-A200-border-left{border-left-color:#ff4081!important}.pink-A400-bg{background-color:#f50057!important}.md-pink-A400-bg{background-color:#f50057!important;color:#fff}.pink-A400-fg{color:#f50057!important}.pink-A400-border{border-color:#f50057!important}.pink-A400-border-top{border-top-color:#f50057!important}.pink-A400-border-right{border-right-color:#f50057!important}.pink-A400-border-bottom{border-bottom-color:#f50057!important}.pink-A400-border-left{border-left-color:#f50057!important}.pink-A700-bg{background-color:#c51162!important}.md-pink-A700-bg{background-color:#c51162!important;color:#fff}.pink-A700-fg{color:#c51162!important}.pink-A700-border{border-color:#c51162!important}.pink-A700-border-top{border-top-color:#c51162!important}.pink-A700-border-right{border-right-color:#c51162!important}.pink-A700-border-bottom{border-bottom-color:#c51162!important}.pink-A700-border-left{border-left-color:#c51162!important}.purple-50-bg{background-color:#f3e5f5!important}.md-purple-50-bg{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)}.purple-50-fg{color:#f3e5f5!important}.purple-50-border{border-color:#f3e5f5!important}.purple-50-border-top{border-top-color:#f3e5f5!important}.purple-50-border-right{border-right-color:#f3e5f5!important}.purple-50-border-bottom{border-bottom-color:#f3e5f5!important}.purple-50-border-left{border-left-color:#f3e5f5!important}.purple-100-bg{background-color:#e1bee7!important}.md-purple-100-bg{background-color:#e1bee7!important;color:rgba(0,0,0,.87)}.purple-100-fg{color:#e1bee7!important}.purple-100-border{border-color:#e1bee7!important}.purple-100-border-top{border-top-color:#e1bee7!important}.purple-100-border-right{border-right-color:#e1bee7!important}.purple-100-border-bottom{border-bottom-color:#e1bee7!important}.purple-100-border-left{border-left-color:#e1bee7!important}.purple-200-bg{background-color:#ce93d8!important}.md-purple-200-bg{background-color:#ce93d8!important;color:rgba(0,0,0,.87)}.purple-200-fg{color:#ce93d8!important}.purple-200-border{border-color:#ce93d8!important}.purple-200-border-top{border-top-color:#ce93d8!important}.purple-200-border-right{border-right-color:#ce93d8!important}.purple-200-border-bottom{border-bottom-color:#ce93d8!important}.purple-200-border-left{border-left-color:#ce93d8!important}.purple-300-bg{background-color:#ba68c8!important}.md-purple-300-bg{background-color:#ba68c8!important;color:#fff}.purple-300-fg{color:#ba68c8!important}.purple-300-border{border-color:#ba68c8!important}.purple-300-border-top{border-top-color:#ba68c8!important}.purple-300-border-right{border-right-color:#ba68c8!important}.purple-300-border-bottom{border-bottom-color:#ba68c8!important}.purple-300-border-left{border-left-color:#ba68c8!important}.purple-400-bg{background-color:#ab47bc!important}.md-purple-400-bg{background-color:#ab47bc!important;color:#fff}.purple-400-fg{color:#ab47bc!important}.purple-400-border{border-color:#ab47bc!important}.purple-400-border-top{border-top-color:#ab47bc!important}.purple-400-border-right{border-right-color:#ab47bc!important}.purple-400-border-bottom{border-bottom-color:#ab47bc!important}.purple-400-border-left{border-left-color:#ab47bc!important}.purple-500-bg{background-color:#9c27b0!important}.md-purple-500-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-500-fg{color:#9c27b0!important}.purple-500-border{border-color:#9c27b0!important}.purple-500-border-top{border-top-color:#9c27b0!important}.purple-500-border-right{border-right-color:#9c27b0!important}.purple-500-border-bottom{border-bottom-color:#9c27b0!important}.purple-500-border-left{border-left-color:#9c27b0!important}.md-purple-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-bg{background-color:#9c27b0!important}.purple-fg{color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-border-top{border-top-color:#9c27b0!important}.purple-border-right{border-right-color:#9c27b0!important}.purple-border-bottom{border-bottom-color:#9c27b0!important}.purple-border-left{border-left-color:#9c27b0!important}.purple-600-bg{background-color:#8e24aa!important}.md-purple-600-bg{background-color:#8e24aa!important;color:rgba(255,255,255,.87)}.purple-600-fg{color:#8e24aa!important}.purple-600-border{border-color:#8e24aa!important}.purple-600-border-top{border-top-color:#8e24aa!important}.purple-600-border-right{border-right-color:#8e24aa!important}.purple-600-border-bottom{border-bottom-color:#8e24aa!important}.purple-600-border-left{border-left-color:#8e24aa!important}.purple-700-bg{background-color:#7b1fa2!important}.md-purple-700-bg{background-color:#7b1fa2!important;color:rgba(255,255,255,.87)}.purple-700-fg{color:#7b1fa2!important}.purple-700-border{border-color:#7b1fa2!important}.purple-700-border-top{border-top-color:#7b1fa2!important}.purple-700-border-right{border-right-color:#7b1fa2!important}.purple-700-border-bottom{border-bottom-color:#7b1fa2!important}.purple-700-border-left{border-left-color:#7b1fa2!important}.purple-800-bg{background-color:#6a1b9a!important}.md-purple-800-bg{background-color:#6a1b9a!important;color:rgba(255,255,255,.87)}.purple-800-fg{color:#6a1b9a!important}.purple-800-border{border-color:#6a1b9a!important}.purple-800-border-top{border-top-color:#6a1b9a!important}.purple-800-border-right{border-right-color:#6a1b9a!important}.purple-800-border-bottom{border-bottom-color:#6a1b9a!important}.purple-800-border-left{border-left-color:#6a1b9a!important}.purple-900-bg{background-color:#4a148c!important}.md-purple-900-bg{background-color:#4a148c!important;color:rgba(255,255,255,.87)}.purple-900-fg{color:#4a148c!important}.purple-900-border{border-color:#4a148c!important}.purple-900-border-top{border-top-color:#4a148c!important}.purple-900-border-right{border-right-color:#4a148c!important}.purple-900-border-bottom{border-bottom-color:#4a148c!important}.purple-900-border-left{border-left-color:#4a148c!important}.purple-A100-bg{background-color:#ea80fc!important}.md-purple-A100-bg{background-color:#ea80fc!important;color:rgba(0,0,0,.87)}.purple-A100-fg{color:#ea80fc!important}.purple-A100-border{border-color:#ea80fc!important}.purple-A100-border-top{border-top-color:#ea80fc!important}.purple-A100-border-right{border-right-color:#ea80fc!important}.purple-A100-border-bottom{border-bottom-color:#ea80fc!important}.purple-A100-border-left{border-left-color:#ea80fc!important}.purple-A200-bg{background-color:#e040fb!important}.md-purple-A200-bg{background-color:#e040fb!important;color:#fff}.purple-A200-fg{color:#e040fb!important}.purple-A200-border{border-color:#e040fb!important}.purple-A200-border-top{border-top-color:#e040fb!important}.purple-A200-border-right{border-right-color:#e040fb!important}.purple-A200-border-bottom{border-bottom-color:#e040fb!important}.purple-A200-border-left{border-left-color:#e040fb!important}.purple-A400-bg{background-color:#d500f9!important}.md-purple-A400-bg{background-color:#d500f9!important;color:#fff}.purple-A400-fg{color:#d500f9!important}.purple-A400-border{border-color:#d500f9!important}.purple-A400-border-top{border-top-color:#d500f9!important}.purple-A400-border-right{border-right-color:#d500f9!important}.purple-A400-border-bottom{border-bottom-color:#d500f9!important}.purple-A400-border-left{border-left-color:#d500f9!important}.purple-A700-bg{background-color:#a0f!important}.md-purple-A700-bg{background-color:#a0f!important;color:#fff}.purple-A700-fg{color:#a0f!important}.purple-A700-border{border-color:#a0f!important}.purple-A700-border-top{border-top-color:#a0f!important}.purple-A700-border-right{border-right-color:#a0f!important}.purple-A700-border-bottom{border-bottom-color:#a0f!important}.purple-A700-border-left{border-left-color:#a0f!important}.deep-purple-50-bg{background-color:#ede7f6!important}.md-deep-purple-50-bg{background-color:#ede7f6!important;color:rgba(0,0,0,.87)}.deep-purple-50-fg{color:#ede7f6!important}.deep-purple-50-border{border-color:#ede7f6!important}.deep-purple-50-border-top{border-top-color:#ede7f6!important}.deep-purple-50-border-right{border-right-color:#ede7f6!important}.deep-purple-50-border-bottom{border-bottom-color:#ede7f6!important}.deep-purple-50-border-left{border-left-color:#ede7f6!important}.deep-purple-100-bg{background-color:#d1c4e9!important}.md-deep-purple-100-bg{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)}.deep-purple-100-fg{color:#d1c4e9!important}.deep-purple-100-border{border-color:#d1c4e9!important}.deep-purple-100-border-top{border-top-color:#d1c4e9!important}.deep-purple-100-border-right{border-right-color:#d1c4e9!important}.deep-purple-100-border-bottom{border-bottom-color:#d1c4e9!important}.deep-purple-100-border-left{border-left-color:#d1c4e9!important}.deep-purple-200-bg{background-color:#b39ddb!important}.md-deep-purple-200-bg{background-color:#b39ddb!important;color:rgba(0,0,0,.87)}.deep-purple-200-fg{color:#b39ddb!important}.deep-purple-200-border{border-color:#b39ddb!important}.deep-purple-200-border-top{border-top-color:#b39ddb!important}.deep-purple-200-border-right{border-right-color:#b39ddb!important}.deep-purple-200-border-bottom{border-bottom-color:#b39ddb!important}.deep-purple-200-border-left{border-left-color:#b39ddb!important}.deep-purple-300-bg{background-color:#9575cd!important}.md-deep-purple-300-bg{background-color:#9575cd!important;color:#fff}.deep-purple-300-fg{color:#9575cd!important}.deep-purple-300-border{border-color:#9575cd!important}.deep-purple-300-border-top{border-top-color:#9575cd!important}.deep-purple-300-border-right{border-right-color:#9575cd!important}.deep-purple-300-border-bottom{border-bottom-color:#9575cd!important}.deep-purple-300-border-left{border-left-color:#9575cd!important}.deep-purple-400-bg{background-color:#7e57c2!important}.md-deep-purple-400-bg{background-color:#7e57c2!important;color:#fff}.deep-purple-400-fg{color:#7e57c2!important}.deep-purple-400-border{border-color:#7e57c2!important}.deep-purple-400-border-top{border-top-color:#7e57c2!important}.deep-purple-400-border-right{border-right-color:#7e57c2!important}.deep-purple-400-border-bottom{border-bottom-color:#7e57c2!important}.deep-purple-400-border-left{border-left-color:#7e57c2!important}.deep-purple-500-bg{background-color:#673ab7!important}.md-deep-purple-500-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-500-fg{color:#673ab7!important}.deep-purple-500-border{border-color:#673ab7!important}.deep-purple-500-border-top{border-top-color:#673ab7!important}.deep-purple-500-border-right{border-right-color:#673ab7!important}.deep-purple-500-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-500-border-left{border-left-color:#673ab7!important}.md-deep-purple-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-bg{background-color:#673ab7!important}.deep-purple-fg{color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-border-top{border-top-color:#673ab7!important}.deep-purple-border-right{border-right-color:#673ab7!important}.deep-purple-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-border-left{border-left-color:#673ab7!important}.deep-purple-600-bg{background-color:#5e35b1!important}.md-deep-purple-600-bg{background-color:#5e35b1!important;color:rgba(255,255,255,.87)}.deep-purple-600-fg{color:#5e35b1!important}.deep-purple-600-border{border-color:#5e35b1!important}.deep-purple-600-border-top{border-top-color:#5e35b1!important}.deep-purple-600-border-right{border-right-color:#5e35b1!important}.deep-purple-600-border-bottom{border-bottom-color:#5e35b1!important}.deep-purple-600-border-left{border-left-color:#5e35b1!important}.deep-purple-700-bg{background-color:#512da8!important}.md-deep-purple-700-bg{background-color:#512da8!important;color:rgba(255,255,255,.87)}.deep-purple-700-fg{color:#512da8!important}.deep-purple-700-border{border-color:#512da8!important}.deep-purple-700-border-top{border-top-color:#512da8!important}.deep-purple-700-border-right{border-right-color:#512da8!important}.deep-purple-700-border-bottom{border-bottom-color:#512da8!important}.deep-purple-700-border-left{border-left-color:#512da8!important}.deep-purple-800-bg{background-color:#4527a0!important}.md-deep-purple-800-bg{background-color:#4527a0!important;color:rgba(255,255,255,.87)}.deep-purple-800-fg{color:#4527a0!important}.deep-purple-800-border{border-color:#4527a0!important}.deep-purple-800-border-top{border-top-color:#4527a0!important}.deep-purple-800-border-right{border-right-color:#4527a0!important}.deep-purple-800-border-bottom{border-bottom-color:#4527a0!important}.deep-purple-800-border-left{border-left-color:#4527a0!important}.deep-purple-900-bg{background-color:#311b92!important}.md-deep-purple-900-bg{background-color:#311b92!important;color:rgba(255,255,255,.87)}.deep-purple-900-fg{color:#311b92!important}.deep-purple-900-border{border-color:#311b92!important}.deep-purple-900-border-top{border-top-color:#311b92!important}.deep-purple-900-border-right{border-right-color:#311b92!important}.deep-purple-900-border-bottom{border-bottom-color:#311b92!important}.deep-purple-900-border-left{border-left-color:#311b92!important}.deep-purple-A100-bg{background-color:#b388ff!important}.md-deep-purple-A100-bg{background-color:#b388ff!important;color:rgba(0,0,0,.87)}.deep-purple-A100-fg{color:#b388ff!important}.deep-purple-A100-border{border-color:#b388ff!important}.deep-purple-A100-border-top{border-top-color:#b388ff!important}.deep-purple-A100-border-right{border-right-color:#b388ff!important}.deep-purple-A100-border-bottom{border-bottom-color:#b388ff!important}.deep-purple-A100-border-left{border-left-color:#b388ff!important}.deep-purple-A200-bg{background-color:#7c4dff!important}.md-deep-purple-A200-bg{background-color:#7c4dff!important;color:#fff}.deep-purple-A200-fg{color:#7c4dff!important}.deep-purple-A200-border{border-color:#7c4dff!important}.deep-purple-A200-border-top{border-top-color:#7c4dff!important}.deep-purple-A200-border-right{border-right-color:#7c4dff!important}.deep-purple-A200-border-bottom{border-bottom-color:#7c4dff!important}.deep-purple-A200-border-left{border-left-color:#7c4dff!important}.deep-purple-A400-bg{background-color:#651fff!important}.md-deep-purple-A400-bg{background-color:#651fff!important;color:rgba(255,255,255,.87)}.deep-purple-A400-fg{color:#651fff!important}.deep-purple-A400-border{border-color:#651fff!important}.deep-purple-A400-border-top{border-top-color:#651fff!important}.deep-purple-A400-border-right{border-right-color:#651fff!important}.deep-purple-A400-border-bottom{border-bottom-color:#651fff!important}.deep-purple-A400-border-left{border-left-color:#651fff!important}.deep-purple-A700-bg{background-color:#6200ea!important}.md-deep-purple-A700-bg{background-color:#6200ea!important;color:rgba(255,255,255,.87)}.deep-purple-A700-fg{color:#6200ea!important}.deep-purple-A700-border{border-color:#6200ea!important}.deep-purple-A700-border-top{border-top-color:#6200ea!important}.deep-purple-A700-border-right{border-right-color:#6200ea!important}.deep-purple-A700-border-bottom{border-bottom-color:#6200ea!important}.deep-purple-A700-border-left{border-left-color:#6200ea!important}.indigo-50-bg{background-color:#e8eaf6!important}.md-indigo-50-bg{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)}.indigo-50-fg{color:#e8eaf6!important}.indigo-50-border{border-color:#e8eaf6!important}.indigo-50-border-top{border-top-color:#e8eaf6!important}.indigo-50-border-right{border-right-color:#e8eaf6!important}.indigo-50-border-bottom{border-bottom-color:#e8eaf6!important}.indigo-50-border-left{border-left-color:#e8eaf6!important}.indigo-100-bg{background-color:#c5cae9!important}.md-indigo-100-bg{background-color:#c5cae9!important;color:rgba(0,0,0,.87)}.indigo-100-fg{color:#c5cae9!important}.indigo-100-border{border-color:#c5cae9!important}.indigo-100-border-top{border-top-color:#c5cae9!important}.indigo-100-border-right{border-right-color:#c5cae9!important}.indigo-100-border-bottom{border-bottom-color:#c5cae9!important}.indigo-100-border-left{border-left-color:#c5cae9!important}.indigo-200-bg{background-color:#9fa8da!important}.md-indigo-200-bg{background-color:#9fa8da!important;color:rgba(0,0,0,.87)}.indigo-200-fg{color:#9fa8da!important}.indigo-200-border{border-color:#9fa8da!important}.indigo-200-border-top{border-top-color:#9fa8da!important}.indigo-200-border-right{border-right-color:#9fa8da!important}.indigo-200-border-bottom{border-bottom-color:#9fa8da!important}.indigo-200-border-left{border-left-color:#9fa8da!important}.indigo-300-bg{background-color:#7986cb!important}.md-indigo-300-bg{background-color:#7986cb!important;color:#fff}.indigo-300-fg{color:#7986cb!important}.indigo-300-border{border-color:#7986cb!important}.indigo-300-border-top{border-top-color:#7986cb!important}.indigo-300-border-right{border-right-color:#7986cb!important}.indigo-300-border-bottom{border-bottom-color:#7986cb!important}.indigo-300-border-left{border-left-color:#7986cb!important}.indigo-400-bg{background-color:#5c6bc0!important}.md-indigo-400-bg{background-color:#5c6bc0!important;color:#fff}.indigo-400-fg{color:#5c6bc0!important}.indigo-400-border{border-color:#5c6bc0!important}.indigo-400-border-top{border-top-color:#5c6bc0!important}.indigo-400-border-right{border-right-color:#5c6bc0!important}.indigo-400-border-bottom{border-bottom-color:#5c6bc0!important}.indigo-400-border-left{border-left-color:#5c6bc0!important}.indigo-500-bg{background-color:#3f51b5!important}.md-indigo-500-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-500-fg{color:#3f51b5!important}.indigo-500-border{border-color:#3f51b5!important}.indigo-500-border-top{border-top-color:#3f51b5!important}.indigo-500-border-right{border-right-color:#3f51b5!important}.indigo-500-border-bottom{border-bottom-color:#3f51b5!important}.indigo-500-border-left{border-left-color:#3f51b5!important}.md-indigo-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-bg{background-color:#3f51b5!important}.indigo-fg{color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-border-top{border-top-color:#3f51b5!important}.indigo-border-right{border-right-color:#3f51b5!important}.indigo-border-bottom{border-bottom-color:#3f51b5!important}.indigo-border-left{border-left-color:#3f51b5!important}.indigo-600-bg{background-color:#3949ab!important}.md-indigo-600-bg{background-color:#3949ab!important;color:rgba(255,255,255,.87)}.indigo-600-fg{color:#3949ab!important}.indigo-600-border{border-color:#3949ab!important}.indigo-600-border-top{border-top-color:#3949ab!important}.indigo-600-border-right{border-right-color:#3949ab!important}.indigo-600-border-bottom{border-bottom-color:#3949ab!important}.indigo-600-border-left{border-left-color:#3949ab!important}.indigo-700-bg{background-color:#303f9f!important}.md-indigo-700-bg{background-color:#303f9f!important;color:rgba(255,255,255,.87)}.indigo-700-fg{color:#303f9f!important}.indigo-700-border{border-color:#303f9f!important}.indigo-700-border-top{border-top-color:#303f9f!important}.indigo-700-border-right{border-right-color:#303f9f!important}.indigo-700-border-bottom{border-bottom-color:#303f9f!important}.indigo-700-border-left{border-left-color:#303f9f!important}.indigo-800-bg{background-color:#283593!important}.md-indigo-800-bg{background-color:#283593!important;color:rgba(255,255,255,.87)}.indigo-800-fg{color:#283593!important}.indigo-800-border{border-color:#283593!important}.indigo-800-border-top{border-top-color:#283593!important}.indigo-800-border-right{border-right-color:#283593!important}.indigo-800-border-bottom{border-bottom-color:#283593!important}.indigo-800-border-left{border-left-color:#283593!important}.indigo-900-bg{background-color:#1a237e!important}.md-indigo-900-bg{background-color:#1a237e!important;color:rgba(255,255,255,.87)}.indigo-900-fg{color:#1a237e!important}.indigo-900-border{border-color:#1a237e!important}.indigo-900-border-top{border-top-color:#1a237e!important}.indigo-900-border-right{border-right-color:#1a237e!important}.indigo-900-border-bottom{border-bottom-color:#1a237e!important}.indigo-900-border-left{border-left-color:#1a237e!important}.indigo-A100-bg{background-color:#8c9eff!important}.md-indigo-A100-bg{background-color:#8c9eff!important;color:rgba(0,0,0,.87)}.indigo-A100-fg{color:#8c9eff!important}.indigo-A100-border{border-color:#8c9eff!important}.indigo-A100-border-top{border-top-color:#8c9eff!important}.indigo-A100-border-right{border-right-color:#8c9eff!important}.indigo-A100-border-bottom{border-bottom-color:#8c9eff!important}.indigo-A100-border-left{border-left-color:#8c9eff!important}.indigo-A200-bg{background-color:#536dfe!important}.md-indigo-A200-bg{background-color:#536dfe!important;color:#fff}.indigo-A200-fg{color:#536dfe!important}.indigo-A200-border{border-color:#536dfe!important}.indigo-A200-border-top{border-top-color:#536dfe!important}.indigo-A200-border-right{border-right-color:#536dfe!important}.indigo-A200-border-bottom{border-bottom-color:#536dfe!important}.indigo-A200-border-left{border-left-color:#536dfe!important}.indigo-A400-bg{background-color:#3d5afe!important}.md-indigo-A400-bg{background-color:#3d5afe!important;color:#fff}.indigo-A400-fg{color:#3d5afe!important}.indigo-A400-border{border-color:#3d5afe!important}.indigo-A400-border-top{border-top-color:#3d5afe!important}.indigo-A400-border-right{border-right-color:#3d5afe!important}.indigo-A400-border-bottom{border-bottom-color:#3d5afe!important}.indigo-A400-border-left{border-left-color:#3d5afe!important}.indigo-A700-bg{background-color:#304ffe!important}.md-indigo-A700-bg{background-color:#304ffe!important;color:rgba(255,255,255,.87)}.indigo-A700-fg{color:#304ffe!important}.indigo-A700-border{border-color:#304ffe!important}.indigo-A700-border-top{border-top-color:#304ffe!important}.indigo-A700-border-right{border-right-color:#304ffe!important}.indigo-A700-border-bottom{border-bottom-color:#304ffe!important}.indigo-A700-border-left{border-left-color:#304ffe!important}.blue-50-bg{background-color:#e3f2fd!important}.md-blue-50-bg{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)}.blue-50-fg{color:#e3f2fd!important}.blue-50-border{border-color:#e3f2fd!important}.blue-50-border-top{border-top-color:#e3f2fd!important}.blue-50-border-right{border-right-color:#e3f2fd!important}.blue-50-border-bottom{border-bottom-color:#e3f2fd!important}.blue-50-border-left{border-left-color:#e3f2fd!important}.blue-100-bg{background-color:#bbdefb!important}.md-blue-100-bg{background-color:#bbdefb!important;color:rgba(0,0,0,.87)}.blue-100-fg{color:#bbdefb!important}.blue-100-border{border-color:#bbdefb!important}.blue-100-border-top{border-top-color:#bbdefb!important}.blue-100-border-right{border-right-color:#bbdefb!important}.blue-100-border-bottom{border-bottom-color:#bbdefb!important}.blue-100-border-left{border-left-color:#bbdefb!important}.blue-200-bg{background-color:#90caf9!important}.md-blue-200-bg{background-color:#90caf9!important;color:rgba(0,0,0,.87)}.blue-200-fg{color:#90caf9!important}.blue-200-border{border-color:#90caf9!important}.blue-200-border-top{border-top-color:#90caf9!important}.blue-200-border-right{border-right-color:#90caf9!important}.blue-200-border-bottom{border-bottom-color:#90caf9!important}.blue-200-border-left{border-left-color:#90caf9!important}.blue-300-bg{background-color:#64b5f6!important}.md-blue-300-bg{background-color:#64b5f6!important;color:rgba(0,0,0,.87)}.blue-300-fg{color:#64b5f6!important}.blue-300-border{border-color:#64b5f6!important}.blue-300-border-top{border-top-color:#64b5f6!important}.blue-300-border-right{border-right-color:#64b5f6!important}.blue-300-border-bottom{border-bottom-color:#64b5f6!important}.blue-300-border-left{border-left-color:#64b5f6!important}.blue-400-bg{background-color:#42a5f5!important}.md-blue-400-bg{background-color:#42a5f5!important;color:rgba(0,0,0,.87)}.blue-400-fg{color:#42a5f5!important}.blue-400-border{border-color:#42a5f5!important}.blue-400-border-top{border-top-color:#42a5f5!important}.blue-400-border-right{border-right-color:#42a5f5!important}.blue-400-border-bottom{border-bottom-color:#42a5f5!important}.blue-400-border-left{border-left-color:#42a5f5!important}.blue-500-bg{background-color:#2196f3!important}.md-blue-500-bg{background-color:#2196f3!important;color:#fff}.blue-500-fg{color:#2196f3!important}.blue-500-border{border-color:#2196f3!important}.blue-500-border-top{border-top-color:#2196f3!important}.blue-500-border-right{border-right-color:#2196f3!important}.blue-500-border-bottom{border-bottom-color:#2196f3!important}.blue-500-border-left{border-left-color:#2196f3!important}.md-blue-bg{background-color:#2196f3!important;color:#fff}.blue-bg{background-color:#2196f3!important}.blue-fg{color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-border-top{border-top-color:#2196f3!important}.blue-border-right{border-right-color:#2196f3!important}.blue-border-bottom{border-bottom-color:#2196f3!important}.blue-border-left{border-left-color:#2196f3!important}.blue-600-bg{background-color:#1e88e5!important}.md-blue-600-bg{background-color:#1e88e5!important;color:#fff}.blue-600-fg{color:#1e88e5!important}.blue-600-border{border-color:#1e88e5!important}.blue-600-border-top{border-top-color:#1e88e5!important}.blue-600-border-right{border-right-color:#1e88e5!important}.blue-600-border-bottom{border-bottom-color:#1e88e5!important}.blue-600-border-left{border-left-color:#1e88e5!important}.blue-700-bg{background-color:#1976d2!important}.md-blue-700-bg{background-color:#1976d2!important;color:#fff}.blue-700-fg{color:#1976d2!important}.blue-700-border{border-color:#1976d2!important}.blue-700-border-top{border-top-color:#1976d2!important}.blue-700-border-right{border-right-color:#1976d2!important}.blue-700-border-bottom{border-bottom-color:#1976d2!important}.blue-700-border-left{border-left-color:#1976d2!important}.blue-800-bg{background-color:#1565c0!important}.md-blue-800-bg{background-color:#1565c0!important;color:rgba(255,255,255,.87)}.blue-800-fg{color:#1565c0!important}.blue-800-border{border-color:#1565c0!important}.blue-800-border-top{border-top-color:#1565c0!important}.blue-800-border-right{border-right-color:#1565c0!important}.blue-800-border-bottom{border-bottom-color:#1565c0!important}.blue-800-border-left{border-left-color:#1565c0!important}.blue-900-bg{background-color:#0d47a1!important}.md-blue-900-bg{background-color:#0d47a1!important;color:rgba(255,255,255,.87)}.blue-900-fg{color:#0d47a1!important}.blue-900-border{border-color:#0d47a1!important}.blue-900-border-top{border-top-color:#0d47a1!important}.blue-900-border-right{border-right-color:#0d47a1!important}.blue-900-border-bottom{border-bottom-color:#0d47a1!important}.blue-900-border-left{border-left-color:#0d47a1!important}.blue-A100-bg{background-color:#82b1ff!important}.md-blue-A100-bg{background-color:#82b1ff!important;color:rgba(0,0,0,.87)}.blue-A100-fg{color:#82b1ff!important}.blue-A100-border{border-color:#82b1ff!important}.blue-A100-border-top{border-top-color:#82b1ff!important}.blue-A100-border-right{border-right-color:#82b1ff!important}.blue-A100-border-bottom{border-bottom-color:#82b1ff!important}.blue-A100-border-left{border-left-color:#82b1ff!important}.blue-A200-bg{background-color:#448aff!important}.md-blue-A200-bg{background-color:#448aff!important;color:#fff}.blue-A200-fg{color:#448aff!important}.blue-A200-border{border-color:#448aff!important}.blue-A200-border-top{border-top-color:#448aff!important}.blue-A200-border-right{border-right-color:#448aff!important}.blue-A200-border-bottom{border-bottom-color:#448aff!important}.blue-A200-border-left{border-left-color:#448aff!important}.blue-A400-bg{background-color:#2979ff!important}.md-blue-A400-bg{background-color:#2979ff!important;color:#fff}.blue-A400-fg{color:#2979ff!important}.blue-A400-border{border-color:#2979ff!important}.blue-A400-border-top{border-top-color:#2979ff!important}.blue-A400-border-right{border-right-color:#2979ff!important}.blue-A400-border-bottom{border-bottom-color:#2979ff!important}.blue-A400-border-left{border-left-color:#2979ff!important}.blue-A700-bg{background-color:#2962ff!important}.md-blue-A700-bg{background-color:#2962ff!important;color:#fff}.blue-A700-fg{color:#2962ff!important}.blue-A700-border{border-color:#2962ff!important}.blue-A700-border-top{border-top-color:#2962ff!important}.blue-A700-border-right{border-right-color:#2962ff!important}.blue-A700-border-bottom{border-bottom-color:#2962ff!important}.blue-A700-border-left{border-left-color:#2962ff!important}.light-blue-50-bg{background-color:#e1f5fe!important}.md-light-blue-50-bg{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)}.light-blue-50-fg{color:#e1f5fe!important}.light-blue-50-border{border-color:#e1f5fe!important}.light-blue-50-border-top{border-top-color:#e1f5fe!important}.light-blue-50-border-right{border-right-color:#e1f5fe!important}.light-blue-50-border-bottom{border-bottom-color:#e1f5fe!important}.light-blue-50-border-left{border-left-color:#e1f5fe!important}.light-blue-100-bg{background-color:#b3e5fc!important}.md-light-blue-100-bg{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)}.light-blue-100-fg{color:#b3e5fc!important}.light-blue-100-border{border-color:#b3e5fc!important}.light-blue-100-border-top{border-top-color:#b3e5fc!important}.light-blue-100-border-right{border-right-color:#b3e5fc!important}.light-blue-100-border-bottom{border-bottom-color:#b3e5fc!important}.light-blue-100-border-left{border-left-color:#b3e5fc!important}.light-blue-200-bg{background-color:#81d4fa!important}.md-light-blue-200-bg{background-color:#81d4fa!important;color:rgba(0,0,0,.87)}.light-blue-200-fg{color:#81d4fa!important}.light-blue-200-border{border-color:#81d4fa!important}.light-blue-200-border-top{border-top-color:#81d4fa!important}.light-blue-200-border-right{border-right-color:#81d4fa!important}.light-blue-200-border-bottom{border-bottom-color:#81d4fa!important}.light-blue-200-border-left{border-left-color:#81d4fa!important}.light-blue-300-bg{background-color:#4fc3f7!important}.md-light-blue-300-bg{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)}.light-blue-300-fg{color:#4fc3f7!important}.light-blue-300-border{border-color:#4fc3f7!important}.light-blue-300-border-top{border-top-color:#4fc3f7!important}.light-blue-300-border-right{border-right-color:#4fc3f7!important}.light-blue-300-border-bottom{border-bottom-color:#4fc3f7!important}.light-blue-300-border-left{border-left-color:#4fc3f7!important}.light-blue-400-bg{background-color:#29b6f6!important}.md-light-blue-400-bg{background-color:#29b6f6!important;color:rgba(0,0,0,.87)}.light-blue-400-fg{color:#29b6f6!important}.light-blue-400-border{border-color:#29b6f6!important}.light-blue-400-border-top{border-top-color:#29b6f6!important}.light-blue-400-border-right{border-right-color:#29b6f6!important}.light-blue-400-border-bottom{border-bottom-color:#29b6f6!important}.light-blue-400-border-left{border-left-color:#29b6f6!important}.light-blue-500-bg{background-color:#03a9f4!important}.md-light-blue-500-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-500-fg{color:#03a9f4!important}.light-blue-500-border{border-color:#03a9f4!important}.light-blue-500-border-top{border-top-color:#03a9f4!important}.light-blue-500-border-right{border-right-color:#03a9f4!important}.light-blue-500-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-500-border-left{border-left-color:#03a9f4!important}.md-light-blue-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-bg{background-color:#03a9f4!important}.light-blue-fg{color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-border-top{border-top-color:#03a9f4!important}.light-blue-border-right{border-right-color:#03a9f4!important}.light-blue-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-border-left{border-left-color:#03a9f4!important}.light-blue-600-bg{background-color:#039be5!important}.md-light-blue-600-bg{background-color:#039be5!important;color:#fff}.light-blue-600-fg{color:#039be5!important}.light-blue-600-border{border-color:#039be5!important}.light-blue-600-border-top{border-top-color:#039be5!important}.light-blue-600-border-right{border-right-color:#039be5!important}.light-blue-600-border-bottom{border-bottom-color:#039be5!important}.light-blue-600-border-left{border-left-color:#039be5!important}.light-blue-700-bg{background-color:#0288d1!important}.md-light-blue-700-bg{background-color:#0288d1!important;color:#fff}.light-blue-700-fg{color:#0288d1!important}.light-blue-700-border{border-color:#0288d1!important}.light-blue-700-border-top{border-top-color:#0288d1!important}.light-blue-700-border-right{border-right-color:#0288d1!important}.light-blue-700-border-bottom{border-bottom-color:#0288d1!important}.light-blue-700-border-left{border-left-color:#0288d1!important}.light-blue-800-bg{background-color:#0277bd!important}.md-light-blue-800-bg{background-color:#0277bd!important;color:#fff}.light-blue-800-fg{color:#0277bd!important}.light-blue-800-border{border-color:#0277bd!important}.light-blue-800-border-top{border-top-color:#0277bd!important}.light-blue-800-border-right{border-right-color:#0277bd!important}.light-blue-800-border-bottom{border-bottom-color:#0277bd!important}.light-blue-800-border-left{border-left-color:#0277bd!important}.light-blue-900-bg{background-color:#01579b!important}.md-light-blue-900-bg{background-color:#01579b!important;color:#fff}.light-blue-900-fg{color:#01579b!important}.light-blue-900-border{border-color:#01579b!important}.light-blue-900-border-top{border-top-color:#01579b!important}.light-blue-900-border-right{border-right-color:#01579b!important}.light-blue-900-border-bottom{border-bottom-color:#01579b!important}.light-blue-900-border-left{border-left-color:#01579b!important}.light-blue-A100-bg{background-color:#80d8ff!important}.md-light-blue-A100-bg{background-color:#80d8ff!important;color:rgba(0,0,0,.87)}.light-blue-A100-fg{color:#80d8ff!important}.light-blue-A100-border{border-color:#80d8ff!important}.light-blue-A100-border-top{border-top-color:#80d8ff!important}.light-blue-A100-border-right{border-right-color:#80d8ff!important}.light-blue-A100-border-bottom{border-bottom-color:#80d8ff!important}.light-blue-A100-border-left{border-left-color:#80d8ff!important}.light-blue-A200-bg{background-color:#40c4ff!important}.md-light-blue-A200-bg{background-color:#40c4ff!important;color:rgba(0,0,0,.87)}.light-blue-A200-fg{color:#40c4ff!important}.light-blue-A200-border{border-color:#40c4ff!important}.light-blue-A200-border-top{border-top-color:#40c4ff!important}.light-blue-A200-border-right{border-right-color:#40c4ff!important}.light-blue-A200-border-bottom{border-bottom-color:#40c4ff!important}.light-blue-A200-border-left{border-left-color:#40c4ff!important}.light-blue-A400-bg{background-color:#00b0ff!important}.md-light-blue-A400-bg{background-color:#00b0ff!important;color:rgba(0,0,0,.87)}.light-blue-A400-fg{color:#00b0ff!important}.light-blue-A400-border{border-color:#00b0ff!important}.light-blue-A400-border-top{border-top-color:#00b0ff!important}.light-blue-A400-border-right{border-right-color:#00b0ff!important}.light-blue-A400-border-bottom{border-bottom-color:#00b0ff!important}.light-blue-A400-border-left{border-left-color:#00b0ff!important}.light-blue-A700-bg{background-color:#0091ea!important}.md-light-blue-A700-bg{background-color:#0091ea!important;color:#fff}.light-blue-A700-fg{color:#0091ea!important}.light-blue-A700-border{border-color:#0091ea!important}.light-blue-A700-border-top{border-top-color:#0091ea!important}.light-blue-A700-border-right{border-right-color:#0091ea!important}.light-blue-A700-border-bottom{border-bottom-color:#0091ea!important}.light-blue-A700-border-left{border-left-color:#0091ea!important}.cyan-50-bg{background-color:#e0f7fa!important}.md-cyan-50-bg{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)}.cyan-50-fg{color:#e0f7fa!important}.cyan-50-border{border-color:#e0f7fa!important}.cyan-50-border-top{border-top-color:#e0f7fa!important}.cyan-50-border-right{border-right-color:#e0f7fa!important}.cyan-50-border-bottom{border-bottom-color:#e0f7fa!important}.cyan-50-border-left{border-left-color:#e0f7fa!important}.cyan-100-bg{background-color:#b2ebf2!important}.md-cyan-100-bg{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)}.cyan-100-fg{color:#b2ebf2!important}.cyan-100-border{border-color:#b2ebf2!important}.cyan-100-border-top{border-top-color:#b2ebf2!important}.cyan-100-border-right{border-right-color:#b2ebf2!important}.cyan-100-border-bottom{border-bottom-color:#b2ebf2!important}.cyan-100-border-left{border-left-color:#b2ebf2!important}.cyan-200-bg{background-color:#80deea!important}.md-cyan-200-bg{background-color:#80deea!important;color:rgba(0,0,0,.87)}.cyan-200-fg{color:#80deea!important}.cyan-200-border{border-color:#80deea!important}.cyan-200-border-top{border-top-color:#80deea!important}.cyan-200-border-right{border-right-color:#80deea!important}.cyan-200-border-bottom{border-bottom-color:#80deea!important}.cyan-200-border-left{border-left-color:#80deea!important}.cyan-300-bg{background-color:#4dd0e1!important}.md-cyan-300-bg{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)}.cyan-300-fg{color:#4dd0e1!important}.cyan-300-border{border-color:#4dd0e1!important}.cyan-300-border-top{border-top-color:#4dd0e1!important}.cyan-300-border-right{border-right-color:#4dd0e1!important}.cyan-300-border-bottom{border-bottom-color:#4dd0e1!important}.cyan-300-border-left{border-left-color:#4dd0e1!important}.cyan-400-bg{background-color:#26c6da!important}.md-cyan-400-bg{background-color:#26c6da!important;color:rgba(0,0,0,.87)}.cyan-400-fg{color:#26c6da!important}.cyan-400-border{border-color:#26c6da!important}.cyan-400-border-top{border-top-color:#26c6da!important}.cyan-400-border-right{border-right-color:#26c6da!important}.cyan-400-border-bottom{border-bottom-color:#26c6da!important}.cyan-400-border-left{border-left-color:#26c6da!important}.cyan-500-bg{background-color:#00bcd4!important}.md-cyan-500-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-500-fg{color:#00bcd4!important}.cyan-500-border{border-color:#00bcd4!important}.cyan-500-border-top{border-top-color:#00bcd4!important}.cyan-500-border-right{border-right-color:#00bcd4!important}.cyan-500-border-bottom{border-bottom-color:#00bcd4!important}.cyan-500-border-left{border-left-color:#00bcd4!important}.md-cyan-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-bg{background-color:#00bcd4!important}.cyan-fg{color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-border-top{border-top-color:#00bcd4!important}.cyan-border-right{border-right-color:#00bcd4!important}.cyan-border-bottom{border-bottom-color:#00bcd4!important}.cyan-border-left{border-left-color:#00bcd4!important}.cyan-600-bg{background-color:#00acc1!important}.md-cyan-600-bg{background-color:#00acc1!important;color:rgba(0,0,0,.87)}.cyan-600-fg{color:#00acc1!important}.cyan-600-border{border-color:#00acc1!important}.cyan-600-border-top{border-top-color:#00acc1!important}.cyan-600-border-right{border-right-color:#00acc1!important}.cyan-600-border-bottom{border-bottom-color:#00acc1!important}.cyan-600-border-left{border-left-color:#00acc1!important}.cyan-700-bg{background-color:#0097a7!important}.md-cyan-700-bg{background-color:#0097a7!important;color:#fff}.cyan-700-fg{color:#0097a7!important}.cyan-700-border{border-color:#0097a7!important}.cyan-700-border-top{border-top-color:#0097a7!important}.cyan-700-border-right{border-right-color:#0097a7!important}.cyan-700-border-bottom{border-bottom-color:#0097a7!important}.cyan-700-border-left{border-left-color:#0097a7!important}.cyan-800-bg{background-color:#00838f!important}.md-cyan-800-bg{background-color:#00838f!important;color:#fff}.cyan-800-fg{color:#00838f!important}.cyan-800-border{border-color:#00838f!important}.cyan-800-border-top{border-top-color:#00838f!important}.cyan-800-border-right{border-right-color:#00838f!important}.cyan-800-border-bottom{border-bottom-color:#00838f!important}.cyan-800-border-left{border-left-color:#00838f!important}.cyan-900-bg{background-color:#006064!important}.md-cyan-900-bg{background-color:#006064!important;color:#fff}.cyan-900-fg{color:#006064!important}.cyan-900-border{border-color:#006064!important}.cyan-900-border-top{border-top-color:#006064!important}.cyan-900-border-right{border-right-color:#006064!important}.cyan-900-border-bottom{border-bottom-color:#006064!important}.cyan-900-border-left{border-left-color:#006064!important}.cyan-A100-bg{background-color:#84ffff!important}.md-cyan-A100-bg{background-color:#84ffff!important;color:rgba(0,0,0,.87)}.cyan-A100-fg{color:#84ffff!important}.cyan-A100-border{border-color:#84ffff!important}.cyan-A100-border-top{border-top-color:#84ffff!important}.cyan-A100-border-right{border-right-color:#84ffff!important}.cyan-A100-border-bottom{border-bottom-color:#84ffff!important}.cyan-A100-border-left{border-left-color:#84ffff!important}.cyan-A200-bg{background-color:#18ffff!important}.md-cyan-A200-bg{background-color:#18ffff!important;color:rgba(0,0,0,.87)}.cyan-A200-fg{color:#18ffff!important}.cyan-A200-border{border-color:#18ffff!important}.cyan-A200-border-top{border-top-color:#18ffff!important}.cyan-A200-border-right{border-right-color:#18ffff!important}.cyan-A200-border-bottom{border-bottom-color:#18ffff!important}.cyan-A200-border-left{border-left-color:#18ffff!important}.cyan-A400-bg{background-color:#00e5ff!important}.md-cyan-A400-bg{background-color:#00e5ff!important;color:rgba(0,0,0,.87)}.cyan-A400-fg{color:#00e5ff!important}.cyan-A400-border{border-color:#00e5ff!important}.cyan-A400-border-top{border-top-color:#00e5ff!important}.cyan-A400-border-right{border-right-color:#00e5ff!important}.cyan-A400-border-bottom{border-bottom-color:#00e5ff!important}.cyan-A400-border-left{border-left-color:#00e5ff!important}.cyan-A700-bg{background-color:#00b8d4!important}.md-cyan-A700-bg{background-color:#00b8d4!important;color:rgba(0,0,0,.87)}.cyan-A700-fg{color:#00b8d4!important}.cyan-A700-border{border-color:#00b8d4!important}.cyan-A700-border-top{border-top-color:#00b8d4!important}.cyan-A700-border-right{border-right-color:#00b8d4!important}.cyan-A700-border-bottom{border-bottom-color:#00b8d4!important}.cyan-A700-border-left{border-left-color:#00b8d4!important}.teal-50-bg{background-color:#e0f2f1!important}.md-teal-50-bg{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)}.teal-50-fg{color:#e0f2f1!important}.teal-50-border{border-color:#e0f2f1!important}.teal-50-border-top{border-top-color:#e0f2f1!important}.teal-50-border-right{border-right-color:#e0f2f1!important}.teal-50-border-bottom{border-bottom-color:#e0f2f1!important}.teal-50-border-left{border-left-color:#e0f2f1!important}.teal-100-bg{background-color:#b2dfdb!important}.md-teal-100-bg{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)}.teal-100-fg{color:#b2dfdb!important}.teal-100-border{border-color:#b2dfdb!important}.teal-100-border-top{border-top-color:#b2dfdb!important}.teal-100-border-right{border-right-color:#b2dfdb!important}.teal-100-border-bottom{border-bottom-color:#b2dfdb!important}.teal-100-border-left{border-left-color:#b2dfdb!important}.teal-200-bg{background-color:#80cbc4!important}.md-teal-200-bg{background-color:#80cbc4!important;color:rgba(0,0,0,.87)}.teal-200-fg{color:#80cbc4!important}.teal-200-border{border-color:#80cbc4!important}.teal-200-border-top{border-top-color:#80cbc4!important}.teal-200-border-right{border-right-color:#80cbc4!important}.teal-200-border-bottom{border-bottom-color:#80cbc4!important}.teal-200-border-left{border-left-color:#80cbc4!important}.teal-300-bg{background-color:#4db6ac!important}.md-teal-300-bg{background-color:#4db6ac!important;color:rgba(0,0,0,.87)}.teal-300-fg{color:#4db6ac!important}.teal-300-border{border-color:#4db6ac!important}.teal-300-border-top{border-top-color:#4db6ac!important}.teal-300-border-right{border-right-color:#4db6ac!important}.teal-300-border-bottom{border-bottom-color:#4db6ac!important}.teal-300-border-left{border-left-color:#4db6ac!important}.teal-400-bg{background-color:#26a69a!important}.md-teal-400-bg{background-color:#26a69a!important;color:rgba(0,0,0,.87)}.teal-400-fg{color:#26a69a!important}.teal-400-border{border-color:#26a69a!important}.teal-400-border-top{border-top-color:#26a69a!important}.teal-400-border-right{border-right-color:#26a69a!important}.teal-400-border-bottom{border-bottom-color:#26a69a!important}.teal-400-border-left{border-left-color:#26a69a!important}.teal-500-bg{background-color:#009688!important}.md-teal-500-bg{background-color:#009688!important;color:#fff}.teal-500-fg{color:#009688!important}.teal-500-border{border-color:#009688!important}.teal-500-border-top{border-top-color:#009688!important}.teal-500-border-right{border-right-color:#009688!important}.teal-500-border-bottom{border-bottom-color:#009688!important}.teal-500-border-left{border-left-color:#009688!important}.md-teal-bg{background-color:#009688!important;color:#fff}.teal-bg{background-color:#009688!important}.teal-fg{color:#009688!important}.teal-border{border-color:#009688!important}.teal-border-top{border-top-color:#009688!important}.teal-border-right{border-right-color:#009688!important}.teal-border-bottom{border-bottom-color:#009688!important}.teal-border-left{border-left-color:#009688!important}.teal-600-bg{background-color:#00897b!important}.md-teal-600-bg{background-color:#00897b!important;color:#fff}.teal-600-fg{color:#00897b!important}.teal-600-border{border-color:#00897b!important}.teal-600-border-top{border-top-color:#00897b!important}.teal-600-border-right{border-right-color:#00897b!important}.teal-600-border-bottom{border-bottom-color:#00897b!important}.teal-600-border-left{border-left-color:#00897b!important}.teal-700-bg{background-color:#00796b!important}.md-teal-700-bg{background-color:#00796b!important;color:#fff}.teal-700-fg{color:#00796b!important}.teal-700-border{border-color:#00796b!important}.teal-700-border-top{border-top-color:#00796b!important}.teal-700-border-right{border-right-color:#00796b!important}.teal-700-border-bottom{border-bottom-color:#00796b!important}.teal-700-border-left{border-left-color:#00796b!important}.teal-800-bg{background-color:#00695c!important}.md-teal-800-bg{background-color:#00695c!important;color:rgba(255,255,255,.87)}.teal-800-fg{color:#00695c!important}.teal-800-border{border-color:#00695c!important}.teal-800-border-top{border-top-color:#00695c!important}.teal-800-border-right{border-right-color:#00695c!important}.teal-800-border-bottom{border-bottom-color:#00695c!important}.teal-800-border-left{border-left-color:#00695c!important}.teal-900-bg{background-color:#004d40!important}.md-teal-900-bg{background-color:#004d40!important;color:rgba(255,255,255,.87)}.teal-900-fg{color:#004d40!important}.teal-900-border{border-color:#004d40!important}.teal-900-border-top{border-top-color:#004d40!important}.teal-900-border-right{border-right-color:#004d40!important}.teal-900-border-bottom{border-bottom-color:#004d40!important}.teal-900-border-left{border-left-color:#004d40!important}.teal-A100-bg{background-color:#a7ffeb!important}.md-teal-A100-bg{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)}.teal-A100-fg{color:#a7ffeb!important}.teal-A100-border{border-color:#a7ffeb!important}.teal-A100-border-top{border-top-color:#a7ffeb!important}.teal-A100-border-right{border-right-color:#a7ffeb!important}.teal-A100-border-bottom{border-bottom-color:#a7ffeb!important}.teal-A100-border-left{border-left-color:#a7ffeb!important}.teal-A200-bg{background-color:#64ffda!important}.md-teal-A200-bg{background-color:#64ffda!important;color:rgba(0,0,0,.87)}.teal-A200-fg{color:#64ffda!important}.teal-A200-border{border-color:#64ffda!important}.teal-A200-border-top{border-top-color:#64ffda!important}.teal-A200-border-right{border-right-color:#64ffda!important}.teal-A200-border-bottom{border-bottom-color:#64ffda!important}.teal-A200-border-left{border-left-color:#64ffda!important}.teal-A400-bg{background-color:#1de9b6!important}.md-teal-A400-bg{background-color:#1de9b6!important;color:rgba(0,0,0,.87)}.teal-A400-fg{color:#1de9b6!important}.teal-A400-border{border-color:#1de9b6!important}.teal-A400-border-top{border-top-color:#1de9b6!important}.teal-A400-border-right{border-right-color:#1de9b6!important}.teal-A400-border-bottom{border-bottom-color:#1de9b6!important}.teal-A400-border-left{border-left-color:#1de9b6!important}.teal-A700-bg{background-color:#00bfa5!important}.md-teal-A700-bg{background-color:#00bfa5!important;color:rgba(0,0,0,.87)}.teal-A700-fg{color:#00bfa5!important}.teal-A700-border{border-color:#00bfa5!important}.teal-A700-border-top{border-top-color:#00bfa5!important}.teal-A700-border-right{border-right-color:#00bfa5!important}.teal-A700-border-bottom{border-bottom-color:#00bfa5!important}.teal-A700-border-left{border-left-color:#00bfa5!important}.green-50-bg{background-color:#e8f5e9!important}.md-green-50-bg{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)}.green-50-fg{color:#e8f5e9!important}.green-50-border{border-color:#e8f5e9!important}.green-50-border-top{border-top-color:#e8f5e9!important}.green-50-border-right{border-right-color:#e8f5e9!important}.green-50-border-bottom{border-bottom-color:#e8f5e9!important}.green-50-border-left{border-left-color:#e8f5e9!important}.green-100-bg{background-color:#c8e6c9!important}.md-green-100-bg{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)}.green-100-fg{color:#c8e6c9!important}.green-100-border{border-color:#c8e6c9!important}.green-100-border-top{border-top-color:#c8e6c9!important}.green-100-border-right{border-right-color:#c8e6c9!important}.green-100-border-bottom{border-bottom-color:#c8e6c9!important}.green-100-border-left{border-left-color:#c8e6c9!important}.green-200-bg{background-color:#a5d6a7!important}.md-green-200-bg{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)}.green-200-fg{color:#a5d6a7!important}.green-200-border{border-color:#a5d6a7!important}.green-200-border-top{border-top-color:#a5d6a7!important}.green-200-border-right{border-right-color:#a5d6a7!important}.green-200-border-bottom{border-bottom-color:#a5d6a7!important}.green-200-border-left{border-left-color:#a5d6a7!important}.green-300-bg{background-color:#81c784!important}.md-green-300-bg{background-color:#81c784!important;color:rgba(0,0,0,.87)}.green-300-fg{color:#81c784!important}.green-300-border{border-color:#81c784!important}.green-300-border-top{border-top-color:#81c784!important}.green-300-border-right{border-right-color:#81c784!important}.green-300-border-bottom{border-bottom-color:#81c784!important}.green-300-border-left{border-left-color:#81c784!important}.green-400-bg{background-color:#66bb6a!important}.md-green-400-bg{background-color:#66bb6a!important;color:rgba(0,0,0,.87)}.green-400-fg{color:#66bb6a!important}.green-400-border{border-color:#66bb6a!important}.green-400-border-top{border-top-color:#66bb6a!important}.green-400-border-right{border-right-color:#66bb6a!important}.green-400-border-bottom{border-bottom-color:#66bb6a!important}.green-400-border-left{border-left-color:#66bb6a!important}.green-500-bg{background-color:#4caf50!important}.md-green-500-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-500-fg{color:#4caf50!important}.green-500-border{border-color:#4caf50!important}.green-500-border-top{border-top-color:#4caf50!important}.green-500-border-right{border-right-color:#4caf50!important}.green-500-border-bottom{border-bottom-color:#4caf50!important}.green-500-border-left{border-left-color:#4caf50!important}.md-green-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-bg{background-color:#4caf50!important}.green-fg{color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-border-top{border-top-color:#4caf50!important}.green-border-right{border-right-color:#4caf50!important}.green-border-bottom{border-bottom-color:#4caf50!important}.green-border-left{border-left-color:#4caf50!important}.green-600-bg{background-color:#43a047!important}.md-green-600-bg{background-color:#43a047!important;color:#fff}.green-600-fg{color:#43a047!important}.green-600-border{border-color:#43a047!important}.green-600-border-top{border-top-color:#43a047!important}.green-600-border-right{border-right-color:#43a047!important}.green-600-border-bottom{border-bottom-color:#43a047!important}.green-600-border-left{border-left-color:#43a047!important}.green-700-bg{background-color:#388e3c!important}.md-green-700-bg{background-color:#388e3c!important;color:#fff}.green-700-fg{color:#388e3c!important}.green-700-border{border-color:#388e3c!important}.green-700-border-top{border-top-color:#388e3c!important}.green-700-border-right{border-right-color:#388e3c!important}.green-700-border-bottom{border-bottom-color:#388e3c!important}.green-700-border-left{border-left-color:#388e3c!important}.green-800-bg{background-color:#2e7d32!important}.md-green-800-bg{background-color:#2e7d32!important;color:rgba(255,255,255,.87)}.green-800-fg{color:#2e7d32!important}.green-800-border{border-color:#2e7d32!important}.green-800-border-top{border-top-color:#2e7d32!important}.green-800-border-right{border-right-color:#2e7d32!important}.green-800-border-bottom{border-bottom-color:#2e7d32!important}.green-800-border-left{border-left-color:#2e7d32!important}.green-900-bg{background-color:#1b5e20!important}.md-green-900-bg{background-color:#1b5e20!important;color:rgba(255,255,255,.87)}.green-900-fg{color:#1b5e20!important}.green-900-border{border-color:#1b5e20!important}.green-900-border-top{border-top-color:#1b5e20!important}.green-900-border-right{border-right-color:#1b5e20!important}.green-900-border-bottom{border-bottom-color:#1b5e20!important}.green-900-border-left{border-left-color:#1b5e20!important}.green-A100-bg{background-color:#b9f6ca!important}.md-green-A100-bg{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)}.green-A100-fg{color:#b9f6ca!important}.green-A100-border{border-color:#b9f6ca!important}.green-A100-border-top{border-top-color:#b9f6ca!important}.green-A100-border-right{border-right-color:#b9f6ca!important}.green-A100-border-bottom{border-bottom-color:#b9f6ca!important}.green-A100-border-left{border-left-color:#b9f6ca!important}.green-A200-bg{background-color:#69f0ae!important}.md-green-A200-bg{background-color:#69f0ae!important;color:rgba(0,0,0,.87)}.green-A200-fg{color:#69f0ae!important}.green-A200-border{border-color:#69f0ae!important}.green-A200-border-top{border-top-color:#69f0ae!important}.green-A200-border-right{border-right-color:#69f0ae!important}.green-A200-border-bottom{border-bottom-color:#69f0ae!important}.green-A200-border-left{border-left-color:#69f0ae!important}.green-A400-bg{background-color:#00e676!important}.md-green-A400-bg{background-color:#00e676!important;color:rgba(0,0,0,.87)}.green-A400-fg{color:#00e676!important}.green-A400-border{border-color:#00e676!important}.green-A400-border-top{border-top-color:#00e676!important}.green-A400-border-right{border-right-color:#00e676!important}.green-A400-border-bottom{border-bottom-color:#00e676!important}.green-A400-border-left{border-left-color:#00e676!important}.green-A700-bg{background-color:#00c853!important}.md-green-A700-bg{background-color:#00c853!important;color:rgba(0,0,0,.87)}.green-A700-fg{color:#00c853!important}.green-A700-border{border-color:#00c853!important}.green-A700-border-top{border-top-color:#00c853!important}.green-A700-border-right{border-right-color:#00c853!important}.green-A700-border-bottom{border-bottom-color:#00c853!important}.green-A700-border-left{border-left-color:#00c853!important}.light-green-50-bg{background-color:#f1f8e9!important}.md-light-green-50-bg{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)}.light-green-50-fg{color:#f1f8e9!important}.light-green-50-border{border-color:#f1f8e9!important}.light-green-50-border-top{border-top-color:#f1f8e9!important}.light-green-50-border-right{border-right-color:#f1f8e9!important}.light-green-50-border-bottom{border-bottom-color:#f1f8e9!important}.light-green-50-border-left{border-left-color:#f1f8e9!important}.light-green-100-bg{background-color:#dcedc8!important}.md-light-green-100-bg{background-color:#dcedc8!important;color:rgba(0,0,0,.87)}.light-green-100-fg{color:#dcedc8!important}.light-green-100-border{border-color:#dcedc8!important}.light-green-100-border-top{border-top-color:#dcedc8!important}.light-green-100-border-right{border-right-color:#dcedc8!important}.light-green-100-border-bottom{border-bottom-color:#dcedc8!important}.light-green-100-border-left{border-left-color:#dcedc8!important}.light-green-200-bg{background-color:#c5e1a5!important}.md-light-green-200-bg{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)}.light-green-200-fg{color:#c5e1a5!important}.light-green-200-border{border-color:#c5e1a5!important}.light-green-200-border-top{border-top-color:#c5e1a5!important}.light-green-200-border-right{border-right-color:#c5e1a5!important}.light-green-200-border-bottom{border-bottom-color:#c5e1a5!important}.light-green-200-border-left{border-left-color:#c5e1a5!important}.light-green-300-bg{background-color:#aed581!important}.md-light-green-300-bg{background-color:#aed581!important;color:rgba(0,0,0,.87)}.light-green-300-fg{color:#aed581!important}.light-green-300-border{border-color:#aed581!important}.light-green-300-border-top{border-top-color:#aed581!important}.light-green-300-border-right{border-right-color:#aed581!important}.light-green-300-border-bottom{border-bottom-color:#aed581!important}.light-green-300-border-left{border-left-color:#aed581!important}.light-green-400-bg{background-color:#9ccc65!important}.md-light-green-400-bg{background-color:#9ccc65!important;color:rgba(0,0,0,.87)}.light-green-400-fg{color:#9ccc65!important}.light-green-400-border{border-color:#9ccc65!important}.light-green-400-border-top{border-top-color:#9ccc65!important}.light-green-400-border-right{border-right-color:#9ccc65!important}.light-green-400-border-bottom{border-bottom-color:#9ccc65!important}.light-green-400-border-left{border-left-color:#9ccc65!important}.light-green-500-bg{background-color:#8bc34a!important}.md-light-green-500-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-500-fg{color:#8bc34a!important}.light-green-500-border{border-color:#8bc34a!important}.light-green-500-border-top{border-top-color:#8bc34a!important}.light-green-500-border-right{border-right-color:#8bc34a!important}.light-green-500-border-bottom{border-bottom-color:#8bc34a!important}.light-green-500-border-left{border-left-color:#8bc34a!important}.md-light-green-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-bg{background-color:#8bc34a!important}.light-green-fg{color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-border-top{border-top-color:#8bc34a!important}.light-green-border-right{border-right-color:#8bc34a!important}.light-green-border-bottom{border-bottom-color:#8bc34a!important}.light-green-border-left{border-left-color:#8bc34a!important}.light-green-600-bg{background-color:#7cb342!important}.md-light-green-600-bg{background-color:#7cb342!important;color:rgba(0,0,0,.87)}.light-green-600-fg{color:#7cb342!important}.light-green-600-border{border-color:#7cb342!important}.light-green-600-border-top{border-top-color:#7cb342!important}.light-green-600-border-right{border-right-color:#7cb342!important}.light-green-600-border-bottom{border-bottom-color:#7cb342!important}.light-green-600-border-left{border-left-color:#7cb342!important}.light-green-700-bg{background-color:#689f38!important}.md-light-green-700-bg{background-color:#689f38!important;color:#fff}.light-green-700-fg{color:#689f38!important}.light-green-700-border{border-color:#689f38!important}.light-green-700-border-top{border-top-color:#689f38!important}.light-green-700-border-right{border-right-color:#689f38!important}.light-green-700-border-bottom{border-bottom-color:#689f38!important}.light-green-700-border-left{border-left-color:#689f38!important}.light-green-800-bg{background-color:#558b2f!important}.md-light-green-800-bg{background-color:#558b2f!important;color:#fff}.light-green-800-fg{color:#558b2f!important}.light-green-800-border{border-color:#558b2f!important}.light-green-800-border-top{border-top-color:#558b2f!important}.light-green-800-border-right{border-right-color:#558b2f!important}.light-green-800-border-bottom{border-bottom-color:#558b2f!important}.light-green-800-border-left{border-left-color:#558b2f!important}.light-green-900-bg{background-color:#33691e!important}.md-light-green-900-bg{background-color:#33691e!important;color:#fff}.light-green-900-fg{color:#33691e!important}.light-green-900-border{border-color:#33691e!important}.light-green-900-border-top{border-top-color:#33691e!important}.light-green-900-border-right{border-right-color:#33691e!important}.light-green-900-border-bottom{border-bottom-color:#33691e!important}.light-green-900-border-left{border-left-color:#33691e!important}.light-green-A100-bg{background-color:#ccff90!important}.md-light-green-A100-bg{background-color:#ccff90!important;color:rgba(0,0,0,.87)}.light-green-A100-fg{color:#ccff90!important}.light-green-A100-border{border-color:#ccff90!important}.light-green-A100-border-top{border-top-color:#ccff90!important}.light-green-A100-border-right{border-right-color:#ccff90!important}.light-green-A100-border-bottom{border-bottom-color:#ccff90!important}.light-green-A100-border-left{border-left-color:#ccff90!important}.light-green-A200-bg{background-color:#b2ff59!important}.md-light-green-A200-bg{background-color:#b2ff59!important;color:rgba(0,0,0,.87)}.light-green-A200-fg{color:#b2ff59!important}.light-green-A200-border{border-color:#b2ff59!important}.light-green-A200-border-top{border-top-color:#b2ff59!important}.light-green-A200-border-right{border-right-color:#b2ff59!important}.light-green-A200-border-bottom{border-bottom-color:#b2ff59!important}.light-green-A200-border-left{border-left-color:#b2ff59!important}.light-green-A400-bg{background-color:#76ff03!important}.md-light-green-A400-bg{background-color:#76ff03!important;color:rgba(0,0,0,.87)}.light-green-A400-fg{color:#76ff03!important}.light-green-A400-border{border-color:#76ff03!important}.light-green-A400-border-top{border-top-color:#76ff03!important}.light-green-A400-border-right{border-right-color:#76ff03!important}.light-green-A400-border-bottom{border-bottom-color:#76ff03!important}.light-green-A400-border-left{border-left-color:#76ff03!important}.light-green-A700-bg{background-color:#64dd17!important}.md-light-green-A700-bg{background-color:#64dd17!important;color:rgba(0,0,0,.87)}.light-green-A700-fg{color:#64dd17!important}.light-green-A700-border{border-color:#64dd17!important}.light-green-A700-border-top{border-top-color:#64dd17!important}.light-green-A700-border-right{border-right-color:#64dd17!important}.light-green-A700-border-bottom{border-bottom-color:#64dd17!important}.light-green-A700-border-left{border-left-color:#64dd17!important}.lime-50-bg{background-color:#f9fbe7!important}.md-lime-50-bg{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)}.lime-50-fg{color:#f9fbe7!important}.lime-50-border{border-color:#f9fbe7!important}.lime-50-border-top{border-top-color:#f9fbe7!important}.lime-50-border-right{border-right-color:#f9fbe7!important}.lime-50-border-bottom{border-bottom-color:#f9fbe7!important}.lime-50-border-left{border-left-color:#f9fbe7!important}.lime-100-bg{background-color:#f0f4c3!important}.md-lime-100-bg{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)}.lime-100-fg{color:#f0f4c3!important}.lime-100-border{border-color:#f0f4c3!important}.lime-100-border-top{border-top-color:#f0f4c3!important}.lime-100-border-right{border-right-color:#f0f4c3!important}.lime-100-border-bottom{border-bottom-color:#f0f4c3!important}.lime-100-border-left{border-left-color:#f0f4c3!important}.lime-200-bg{background-color:#e6ee9c!important}.md-lime-200-bg{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)}.lime-200-fg{color:#e6ee9c!important}.lime-200-border{border-color:#e6ee9c!important}.lime-200-border-top{border-top-color:#e6ee9c!important}.lime-200-border-right{border-right-color:#e6ee9c!important}.lime-200-border-bottom{border-bottom-color:#e6ee9c!important}.lime-200-border-left{border-left-color:#e6ee9c!important}.lime-300-bg{background-color:#dce775!important}.md-lime-300-bg{background-color:#dce775!important;color:rgba(0,0,0,.87)}.lime-300-fg{color:#dce775!important}.lime-300-border{border-color:#dce775!important}.lime-300-border-top{border-top-color:#dce775!important}.lime-300-border-right{border-right-color:#dce775!important}.lime-300-border-bottom{border-bottom-color:#dce775!important}.lime-300-border-left{border-left-color:#dce775!important}.lime-400-bg{background-color:#d4e157!important}.md-lime-400-bg{background-color:#d4e157!important;color:rgba(0,0,0,.87)}.lime-400-fg{color:#d4e157!important}.lime-400-border{border-color:#d4e157!important}.lime-400-border-top{border-top-color:#d4e157!important}.lime-400-border-right{border-right-color:#d4e157!important}.lime-400-border-bottom{border-bottom-color:#d4e157!important}.lime-400-border-left{border-left-color:#d4e157!important}.lime-500-bg{background-color:#cddc39!important}.md-lime-500-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-500-fg{color:#cddc39!important}.lime-500-border{border-color:#cddc39!important}.lime-500-border-top{border-top-color:#cddc39!important}.lime-500-border-right{border-right-color:#cddc39!important}.lime-500-border-bottom{border-bottom-color:#cddc39!important}.lime-500-border-left{border-left-color:#cddc39!important}.md-lime-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-bg{background-color:#cddc39!important}.lime-fg{color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-border-top{border-top-color:#cddc39!important}.lime-border-right{border-right-color:#cddc39!important}.lime-border-bottom{border-bottom-color:#cddc39!important}.lime-border-left{border-left-color:#cddc39!important}.lime-600-bg{background-color:#c0ca33!important}.md-lime-600-bg{background-color:#c0ca33!important;color:rgba(0,0,0,.87)}.lime-600-fg{color:#c0ca33!important}.lime-600-border{border-color:#c0ca33!important}.lime-600-border-top{border-top-color:#c0ca33!important}.lime-600-border-right{border-right-color:#c0ca33!important}.lime-600-border-bottom{border-bottom-color:#c0ca33!important}.lime-600-border-left{border-left-color:#c0ca33!important}.lime-700-bg{background-color:#afb42b!important}.md-lime-700-bg{background-color:#afb42b!important;color:rgba(0,0,0,.87)}.lime-700-fg{color:#afb42b!important}.lime-700-border{border-color:#afb42b!important}.lime-700-border-top{border-top-color:#afb42b!important}.lime-700-border-right{border-right-color:#afb42b!important}.lime-700-border-bottom{border-bottom-color:#afb42b!important}.lime-700-border-left{border-left-color:#afb42b!important}.lime-800-bg{background-color:#9e9d24!important}.md-lime-800-bg{background-color:#9e9d24!important;color:rgba(0,0,0,.87)}.lime-800-fg{color:#9e9d24!important}.lime-800-border{border-color:#9e9d24!important}.lime-800-border-top{border-top-color:#9e9d24!important}.lime-800-border-right{border-right-color:#9e9d24!important}.lime-800-border-bottom{border-bottom-color:#9e9d24!important}.lime-800-border-left{border-left-color:#9e9d24!important}.lime-900-bg{background-color:#827717!important}.md-lime-900-bg{background-color:#827717!important;color:#fff}.lime-900-fg{color:#827717!important}.lime-900-border{border-color:#827717!important}.lime-900-border-top{border-top-color:#827717!important}.lime-900-border-right{border-right-color:#827717!important}.lime-900-border-bottom{border-bottom-color:#827717!important}.lime-900-border-left{border-left-color:#827717!important}.lime-A100-bg{background-color:#f4ff81!important}.md-lime-A100-bg{background-color:#f4ff81!important;color:rgba(0,0,0,.87)}.lime-A100-fg{color:#f4ff81!important}.lime-A100-border{border-color:#f4ff81!important}.lime-A100-border-top{border-top-color:#f4ff81!important}.lime-A100-border-right{border-right-color:#f4ff81!important}.lime-A100-border-bottom{border-bottom-color:#f4ff81!important}.lime-A100-border-left{border-left-color:#f4ff81!important}.lime-A200-bg{background-color:#eeff41!important}.md-lime-A200-bg{background-color:#eeff41!important;color:rgba(0,0,0,.87)}.lime-A200-fg{color:#eeff41!important}.lime-A200-border{border-color:#eeff41!important}.lime-A200-border-top{border-top-color:#eeff41!important}.lime-A200-border-right{border-right-color:#eeff41!important}.lime-A200-border-bottom{border-bottom-color:#eeff41!important}.lime-A200-border-left{border-left-color:#eeff41!important}.lime-A400-bg{background-color:#c6ff00!important}.md-lime-A400-bg{background-color:#c6ff00!important;color:rgba(0,0,0,.87)}.lime-A400-fg{color:#c6ff00!important}.lime-A400-border{border-color:#c6ff00!important}.lime-A400-border-top{border-top-color:#c6ff00!important}.lime-A400-border-right{border-right-color:#c6ff00!important}.lime-A400-border-bottom{border-bottom-color:#c6ff00!important}.lime-A400-border-left{border-left-color:#c6ff00!important}.lime-A700-bg{background-color:#aeea00!important}.md-lime-A700-bg{background-color:#aeea00!important;color:rgba(0,0,0,.87)}.lime-A700-fg{color:#aeea00!important}.lime-A700-border{border-color:#aeea00!important}.lime-A700-border-top{border-top-color:#aeea00!important}.lime-A700-border-right{border-right-color:#aeea00!important}.lime-A700-border-bottom{border-bottom-color:#aeea00!important}.lime-A700-border-left{border-left-color:#aeea00!important}.yellow-50-bg{background-color:#fffde7!important}.md-yellow-50-bg{background-color:#fffde7!important;color:rgba(0,0,0,.87)}.yellow-50-fg{color:#fffde7!important}.yellow-50-border{border-color:#fffde7!important}.yellow-50-border-top{border-top-color:#fffde7!important}.yellow-50-border-right{border-right-color:#fffde7!important}.yellow-50-border-bottom{border-bottom-color:#fffde7!important}.yellow-50-border-left{border-left-color:#fffde7!important}.yellow-100-bg{background-color:#fff9c4!important}.md-yellow-100-bg{background-color:#fff9c4!important;color:rgba(0,0,0,.87)}.yellow-100-fg{color:#fff9c4!important}.yellow-100-border{border-color:#fff9c4!important}.yellow-100-border-top{border-top-color:#fff9c4!important}.yellow-100-border-right{border-right-color:#fff9c4!important}.yellow-100-border-bottom{border-bottom-color:#fff9c4!important}.yellow-100-border-left{border-left-color:#fff9c4!important}.yellow-200-bg{background-color:#fff59d!important}.md-yellow-200-bg{background-color:#fff59d!important;color:rgba(0,0,0,.87)}.yellow-200-fg{color:#fff59d!important}.yellow-200-border{border-color:#fff59d!important}.yellow-200-border-top{border-top-color:#fff59d!important}.yellow-200-border-right{border-right-color:#fff59d!important}.yellow-200-border-bottom{border-bottom-color:#fff59d!important}.yellow-200-border-left{border-left-color:#fff59d!important}.yellow-300-bg{background-color:#fff176!important}.md-yellow-300-bg{background-color:#fff176!important;color:rgba(0,0,0,.87)}.yellow-300-fg{color:#fff176!important}.yellow-300-border{border-color:#fff176!important}.yellow-300-border-top{border-top-color:#fff176!important}.yellow-300-border-right{border-right-color:#fff176!important}.yellow-300-border-bottom{border-bottom-color:#fff176!important}.yellow-300-border-left{border-left-color:#fff176!important}.yellow-400-bg{background-color:#ffee58!important}.md-yellow-400-bg{background-color:#ffee58!important;color:rgba(0,0,0,.87)}.yellow-400-fg{color:#ffee58!important}.yellow-400-border{border-color:#ffee58!important}.yellow-400-border-top{border-top-color:#ffee58!important}.yellow-400-border-right{border-right-color:#ffee58!important}.yellow-400-border-bottom{border-bottom-color:#ffee58!important}.yellow-400-border-left{border-left-color:#ffee58!important}.yellow-500-bg{background-color:#ffeb3b!important}.md-yellow-500-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-500-fg{color:#ffeb3b!important}.yellow-500-border{border-color:#ffeb3b!important}.yellow-500-border-top{border-top-color:#ffeb3b!important}.yellow-500-border-right{border-right-color:#ffeb3b!important}.yellow-500-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-500-border-left{border-left-color:#ffeb3b!important}.md-yellow-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-bg{background-color:#ffeb3b!important}.yellow-fg{color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-border-top{border-top-color:#ffeb3b!important}.yellow-border-right{border-right-color:#ffeb3b!important}.yellow-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-border-left{border-left-color:#ffeb3b!important}.yellow-600-bg{background-color:#fdd835!important}.md-yellow-600-bg{background-color:#fdd835!important;color:rgba(0,0,0,.87)}.yellow-600-fg{color:#fdd835!important}.yellow-600-border{border-color:#fdd835!important}.yellow-600-border-top{border-top-color:#fdd835!important}.yellow-600-border-right{border-right-color:#fdd835!important}.yellow-600-border-bottom{border-bottom-color:#fdd835!important}.yellow-600-border-left{border-left-color:#fdd835!important}.yellow-700-bg{background-color:#fbc02d!important}.md-yellow-700-bg{background-color:#fbc02d!important;color:rgba(0,0,0,.87)}.yellow-700-fg{color:#fbc02d!important}.yellow-700-border{border-color:#fbc02d!important}.yellow-700-border-top{border-top-color:#fbc02d!important}.yellow-700-border-right{border-right-color:#fbc02d!important}.yellow-700-border-bottom{border-bottom-color:#fbc02d!important}.yellow-700-border-left{border-left-color:#fbc02d!important}.yellow-800-bg{background-color:#f9a825!important}.md-yellow-800-bg{background-color:#f9a825!important;color:rgba(0,0,0,.87)}.yellow-800-fg{color:#f9a825!important}.yellow-800-border{border-color:#f9a825!important}.yellow-800-border-top{border-top-color:#f9a825!important}.yellow-800-border-right{border-right-color:#f9a825!important}.yellow-800-border-bottom{border-bottom-color:#f9a825!important}.yellow-800-border-left{border-left-color:#f9a825!important}.yellow-900-bg{background-color:#f57f17!important}.md-yellow-900-bg{background-color:#f57f17!important;color:rgba(0,0,0,.87)}.yellow-900-fg{color:#f57f17!important}.yellow-900-border{border-color:#f57f17!important}.yellow-900-border-top{border-top-color:#f57f17!important}.yellow-900-border-right{border-right-color:#f57f17!important}.yellow-900-border-bottom{border-bottom-color:#f57f17!important}.yellow-900-border-left{border-left-color:#f57f17!important}.yellow-A100-bg{background-color:#ffff8d!important}.md-yellow-A100-bg{background-color:#ffff8d!important;color:rgba(0,0,0,.87)}.yellow-A100-fg{color:#ffff8d!important}.yellow-A100-border{border-color:#ffff8d!important}.yellow-A100-border-top{border-top-color:#ffff8d!important}.yellow-A100-border-right{border-right-color:#ffff8d!important}.yellow-A100-border-bottom{border-bottom-color:#ffff8d!important}.yellow-A100-border-left{border-left-color:#ffff8d!important}.yellow-A200-bg{background-color:#ff0!important}.md-yellow-A200-bg{background-color:#ff0!important;color:rgba(0,0,0,.87)}.yellow-A200-fg{color:#ff0!important}.yellow-A200-border{border-color:#ff0!important}.yellow-A200-border-top{border-top-color:#ff0!important}.yellow-A200-border-right{border-right-color:#ff0!important}.yellow-A200-border-bottom{border-bottom-color:#ff0!important}.yellow-A200-border-left{border-left-color:#ff0!important}.yellow-A400-bg{background-color:#ffea00!important}.md-yellow-A400-bg{background-color:#ffea00!important;color:rgba(0,0,0,.87)}.yellow-A400-fg{color:#ffea00!important}.yellow-A400-border{border-color:#ffea00!important}.yellow-A400-border-top{border-top-color:#ffea00!important}.yellow-A400-border-right{border-right-color:#ffea00!important}.yellow-A400-border-bottom{border-bottom-color:#ffea00!important}.yellow-A400-border-left{border-left-color:#ffea00!important}.yellow-A700-bg{background-color:#ffd600!important}.md-yellow-A700-bg{background-color:#ffd600!important;color:rgba(0,0,0,.87)}.yellow-A700-fg{color:#ffd600!important}.yellow-A700-border{border-color:#ffd600!important}.yellow-A700-border-top{border-top-color:#ffd600!important}.yellow-A700-border-right{border-right-color:#ffd600!important}.yellow-A700-border-bottom{border-bottom-color:#ffd600!important}.yellow-A700-border-left{border-left-color:#ffd600!important}.amber-50-bg{background-color:#fff8e1!important}.md-amber-50-bg{background-color:#fff8e1!important;color:rgba(0,0,0,.87)}.amber-50-fg{color:#fff8e1!important}.amber-50-border{border-color:#fff8e1!important}.amber-50-border-top{border-top-color:#fff8e1!important}.amber-50-border-right{border-right-color:#fff8e1!important}.amber-50-border-bottom{border-bottom-color:#fff8e1!important}.amber-50-border-left{border-left-color:#fff8e1!important}.amber-100-bg{background-color:#ffecb3!important}.md-amber-100-bg{background-color:#ffecb3!important;color:rgba(0,0,0,.87)}.amber-100-fg{color:#ffecb3!important}.amber-100-border{border-color:#ffecb3!important}.amber-100-border-top{border-top-color:#ffecb3!important}.amber-100-border-right{border-right-color:#ffecb3!important}.amber-100-border-bottom{border-bottom-color:#ffecb3!important}.amber-100-border-left{border-left-color:#ffecb3!important}.amber-200-bg{background-color:#ffe082!important}.md-amber-200-bg{background-color:#ffe082!important;color:rgba(0,0,0,.87)}.amber-200-fg{color:#ffe082!important}.amber-200-border{border-color:#ffe082!important}.amber-200-border-top{border-top-color:#ffe082!important}.amber-200-border-right{border-right-color:#ffe082!important}.amber-200-border-bottom{border-bottom-color:#ffe082!important}.amber-200-border-left{border-left-color:#ffe082!important}.amber-300-bg{background-color:#ffd54f!important}.md-amber-300-bg{background-color:#ffd54f!important;color:rgba(0,0,0,.87)}.amber-300-fg{color:#ffd54f!important}.amber-300-border{border-color:#ffd54f!important}.amber-300-border-top{border-top-color:#ffd54f!important}.amber-300-border-right{border-right-color:#ffd54f!important}.amber-300-border-bottom{border-bottom-color:#ffd54f!important}.amber-300-border-left{border-left-color:#ffd54f!important}.amber-400-bg{background-color:#ffca28!important}.md-amber-400-bg{background-color:#ffca28!important;color:rgba(0,0,0,.87)}.amber-400-fg{color:#ffca28!important}.amber-400-border{border-color:#ffca28!important}.amber-400-border-top{border-top-color:#ffca28!important}.amber-400-border-right{border-right-color:#ffca28!important}.amber-400-border-bottom{border-bottom-color:#ffca28!important}.amber-400-border-left{border-left-color:#ffca28!important}.amber-500-bg{background-color:#ffc107!important}.md-amber-500-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-500-fg{color:#ffc107!important}.amber-500-border{border-color:#ffc107!important}.amber-500-border-top{border-top-color:#ffc107!important}.amber-500-border-right{border-right-color:#ffc107!important}.amber-500-border-bottom{border-bottom-color:#ffc107!important}.amber-500-border-left{border-left-color:#ffc107!important}.md-amber-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-bg{background-color:#ffc107!important}.amber-fg{color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-border-top{border-top-color:#ffc107!important}.amber-border-right{border-right-color:#ffc107!important}.amber-border-bottom{border-bottom-color:#ffc107!important}.amber-border-left{border-left-color:#ffc107!important}.amber-600-bg{background-color:#ffb300!important}.md-amber-600-bg{background-color:#ffb300!important;color:rgba(0,0,0,.87)}.amber-600-fg{color:#ffb300!important}.amber-600-border{border-color:#ffb300!important}.amber-600-border-top{border-top-color:#ffb300!important}.amber-600-border-right{border-right-color:#ffb300!important}.amber-600-border-bottom{border-bottom-color:#ffb300!important}.amber-600-border-left{border-left-color:#ffb300!important}.amber-700-bg{background-color:#ffa000!important}.md-amber-700-bg{background-color:#ffa000!important;color:rgba(0,0,0,.87)}.amber-700-fg{color:#ffa000!important}.amber-700-border{border-color:#ffa000!important}.amber-700-border-top{border-top-color:#ffa000!important}.amber-700-border-right{border-right-color:#ffa000!important}.amber-700-border-bottom{border-bottom-color:#ffa000!important}.amber-700-border-left{border-left-color:#ffa000!important}.amber-800-bg{background-color:#ff8f00!important}.md-amber-800-bg{background-color:#ff8f00!important;color:rgba(0,0,0,.87)}.amber-800-fg{color:#ff8f00!important}.amber-800-border{border-color:#ff8f00!important}.amber-800-border-top{border-top-color:#ff8f00!important}.amber-800-border-right{border-right-color:#ff8f00!important}.amber-800-border-bottom{border-bottom-color:#ff8f00!important}.amber-800-border-left{border-left-color:#ff8f00!important}.amber-900-bg{background-color:#ff6f00!important}.md-amber-900-bg{background-color:#ff6f00!important;color:rgba(0,0,0,.87)}.amber-900-fg{color:#ff6f00!important}.amber-900-border{border-color:#ff6f00!important}.amber-900-border-top{border-top-color:#ff6f00!important}.amber-900-border-right{border-right-color:#ff6f00!important}.amber-900-border-bottom{border-bottom-color:#ff6f00!important}.amber-900-border-left{border-left-color:#ff6f00!important}.amber-A100-bg{background-color:#ffe57f!important}.md-amber-A100-bg{background-color:#ffe57f!important;color:rgba(0,0,0,.87)}.amber-A100-fg{color:#ffe57f!important}.amber-A100-border{border-color:#ffe57f!important}.amber-A100-border-top{border-top-color:#ffe57f!important}.amber-A100-border-right{border-right-color:#ffe57f!important}.amber-A100-border-bottom{border-bottom-color:#ffe57f!important}.amber-A100-border-left{border-left-color:#ffe57f!important}.amber-A200-bg{background-color:#ffd740!important}.md-amber-A200-bg{background-color:#ffd740!important;color:rgba(0,0,0,.87)}.amber-A200-fg{color:#ffd740!important}.amber-A200-border{border-color:#ffd740!important}.amber-A200-border-top{border-top-color:#ffd740!important}.amber-A200-border-right{border-right-color:#ffd740!important}.amber-A200-border-bottom{border-bottom-color:#ffd740!important}.amber-A200-border-left{border-left-color:#ffd740!important}.amber-A400-bg{background-color:#ffc400!important}.md-amber-A400-bg{background-color:#ffc400!important;color:rgba(0,0,0,.87)}.amber-A400-fg{color:#ffc400!important}.amber-A400-border{border-color:#ffc400!important}.amber-A400-border-top{border-top-color:#ffc400!important}.amber-A400-border-right{border-right-color:#ffc400!important}.amber-A400-border-bottom{border-bottom-color:#ffc400!important}.amber-A400-border-left{border-left-color:#ffc400!important}.amber-A700-bg{background-color:#ffab00!important}.md-amber-A700-bg{background-color:#ffab00!important;color:rgba(0,0,0,.87)}.amber-A700-fg{color:#ffab00!important}.amber-A700-border{border-color:#ffab00!important}.amber-A700-border-top{border-top-color:#ffab00!important}.amber-A700-border-right{border-right-color:#ffab00!important}.amber-A700-border-bottom{border-bottom-color:#ffab00!important}.amber-A700-border-left{border-left-color:#ffab00!important}.orange-50-bg{background-color:#fff3e0!important}.md-orange-50-bg{background-color:#fff3e0!important;color:rgba(0,0,0,.87)}.orange-50-fg{color:#fff3e0!important}.orange-50-border{border-color:#fff3e0!important}.orange-50-border-top{border-top-color:#fff3e0!important}.orange-50-border-right{border-right-color:#fff3e0!important}.orange-50-border-bottom{border-bottom-color:#fff3e0!important}.orange-50-border-left{border-left-color:#fff3e0!important}.orange-100-bg{background-color:#ffe0b2!important}.md-orange-100-bg{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)}.orange-100-fg{color:#ffe0b2!important}.orange-100-border{border-color:#ffe0b2!important}.orange-100-border-top{border-top-color:#ffe0b2!important}.orange-100-border-right{border-right-color:#ffe0b2!important}.orange-100-border-bottom{border-bottom-color:#ffe0b2!important}.orange-100-border-left{border-left-color:#ffe0b2!important}.orange-200-bg{background-color:#ffcc80!important}.md-orange-200-bg{background-color:#ffcc80!important;color:rgba(0,0,0,.87)}.orange-200-fg{color:#ffcc80!important}.orange-200-border{border-color:#ffcc80!important}.orange-200-border-top{border-top-color:#ffcc80!important}.orange-200-border-right{border-right-color:#ffcc80!important}.orange-200-border-bottom{border-bottom-color:#ffcc80!important}.orange-200-border-left{border-left-color:#ffcc80!important}.orange-300-bg{background-color:#ffb74d!important}.md-orange-300-bg{background-color:#ffb74d!important;color:rgba(0,0,0,.87)}.orange-300-fg{color:#ffb74d!important}.orange-300-border{border-color:#ffb74d!important}.orange-300-border-top{border-top-color:#ffb74d!important}.orange-300-border-right{border-right-color:#ffb74d!important}.orange-300-border-bottom{border-bottom-color:#ffb74d!important}.orange-300-border-left{border-left-color:#ffb74d!important}.orange-400-bg{background-color:#ffa726!important}.md-orange-400-bg{background-color:#ffa726!important;color:rgba(0,0,0,.87)}.orange-400-fg{color:#ffa726!important}.orange-400-border{border-color:#ffa726!important}.orange-400-border-top{border-top-color:#ffa726!important}.orange-400-border-right{border-right-color:#ffa726!important}.orange-400-border-bottom{border-bottom-color:#ffa726!important}.orange-400-border-left{border-left-color:#ffa726!important}.orange-500-bg{background-color:#ff9800!important}.md-orange-500-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-500-fg{color:#ff9800!important}.orange-500-border{border-color:#ff9800!important}.orange-500-border-top{border-top-color:#ff9800!important}.orange-500-border-right{border-right-color:#ff9800!important}.orange-500-border-bottom{border-bottom-color:#ff9800!important}.orange-500-border-left{border-left-color:#ff9800!important}.md-orange-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-bg{background-color:#ff9800!important}.orange-fg{color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-border-top{border-top-color:#ff9800!important}.orange-border-right{border-right-color:#ff9800!important}.orange-border-bottom{border-bottom-color:#ff9800!important}.orange-border-left{border-left-color:#ff9800!important}.orange-600-bg{background-color:#fb8c00!important}.md-orange-600-bg{background-color:#fb8c00!important;color:rgba(0,0,0,.87)}.orange-600-fg{color:#fb8c00!important}.orange-600-border{border-color:#fb8c00!important}.orange-600-border-top{border-top-color:#fb8c00!important}.orange-600-border-right{border-right-color:#fb8c00!important}.orange-600-border-bottom{border-bottom-color:#fb8c00!important}.orange-600-border-left{border-left-color:#fb8c00!important}.orange-700-bg{background-color:#f57c00!important}.md-orange-700-bg{background-color:#f57c00!important;color:rgba(0,0,0,.87)}.orange-700-fg{color:#f57c00!important}.orange-700-border{border-color:#f57c00!important}.orange-700-border-top{border-top-color:#f57c00!important}.orange-700-border-right{border-right-color:#f57c00!important}.orange-700-border-bottom{border-bottom-color:#f57c00!important}.orange-700-border-left{border-left-color:#f57c00!important}.orange-800-bg{background-color:#ef6c00!important}.md-orange-800-bg{background-color:#ef6c00!important;color:#fff}.orange-800-fg{color:#ef6c00!important}.orange-800-border{border-color:#ef6c00!important}.orange-800-border-top{border-top-color:#ef6c00!important}.orange-800-border-right{border-right-color:#ef6c00!important}.orange-800-border-bottom{border-bottom-color:#ef6c00!important}.orange-800-border-left{border-left-color:#ef6c00!important}.orange-900-bg{background-color:#e65100!important}.md-orange-900-bg{background-color:#e65100!important;color:#fff}.orange-900-fg{color:#e65100!important}.orange-900-border{border-color:#e65100!important}.orange-900-border-top{border-top-color:#e65100!important}.orange-900-border-right{border-right-color:#e65100!important}.orange-900-border-bottom{border-bottom-color:#e65100!important}.orange-900-border-left{border-left-color:#e65100!important}.orange-A100-bg{background-color:#ffd180!important}.md-orange-A100-bg{background-color:#ffd180!important;color:rgba(0,0,0,.87)}.orange-A100-fg{color:#ffd180!important}.orange-A100-border{border-color:#ffd180!important}.orange-A100-border-top{border-top-color:#ffd180!important}.orange-A100-border-right{border-right-color:#ffd180!important}.orange-A100-border-bottom{border-bottom-color:#ffd180!important}.orange-A100-border-left{border-left-color:#ffd180!important}.orange-A200-bg{background-color:#ffab40!important}.md-orange-A200-bg{background-color:#ffab40!important;color:rgba(0,0,0,.87)}.orange-A200-fg{color:#ffab40!important}.orange-A200-border{border-color:#ffab40!important}.orange-A200-border-top{border-top-color:#ffab40!important}.orange-A200-border-right{border-right-color:#ffab40!important}.orange-A200-border-bottom{border-bottom-color:#ffab40!important}.orange-A200-border-left{border-left-color:#ffab40!important}.orange-A400-bg{background-color:#ff9100!important}.md-orange-A400-bg{background-color:#ff9100!important;color:rgba(0,0,0,.87)}.orange-A400-fg{color:#ff9100!important}.orange-A400-border{border-color:#ff9100!important}.orange-A400-border-top{border-top-color:#ff9100!important}.orange-A400-border-right{border-right-color:#ff9100!important}.orange-A400-border-bottom{border-bottom-color:#ff9100!important}.orange-A400-border-left{border-left-color:#ff9100!important}.orange-A700-bg{background-color:#ff6d00!important}.md-orange-A700-bg{background-color:#ff6d00!important;color:rgba(0,0,0,.87)}.orange-A700-fg{color:#ff6d00!important}.orange-A700-border{border-color:#ff6d00!important}.orange-A700-border-top{border-top-color:#ff6d00!important}.orange-A700-border-right{border-right-color:#ff6d00!important}.orange-A700-border-bottom{border-bottom-color:#ff6d00!important}.orange-A700-border-left{border-left-color:#ff6d00!important}.deep-orange-50-bg{background-color:#fbe9e7!important}.md-deep-orange-50-bg{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)}.deep-orange-50-fg{color:#fbe9e7!important}.deep-orange-50-border{border-color:#fbe9e7!important}.deep-orange-50-border-top{border-top-color:#fbe9e7!important}.deep-orange-50-border-right{border-right-color:#fbe9e7!important}.deep-orange-50-border-bottom{border-bottom-color:#fbe9e7!important}.deep-orange-50-border-left{border-left-color:#fbe9e7!important}.deep-orange-100-bg{background-color:#ffccbc!important}.md-deep-orange-100-bg{background-color:#ffccbc!important;color:rgba(0,0,0,.87)}.deep-orange-100-fg{color:#ffccbc!important}.deep-orange-100-border{border-color:#ffccbc!important}.deep-orange-100-border-top{border-top-color:#ffccbc!important}.deep-orange-100-border-right{border-right-color:#ffccbc!important}.deep-orange-100-border-bottom{border-bottom-color:#ffccbc!important}.deep-orange-100-border-left{border-left-color:#ffccbc!important}.deep-orange-200-bg{background-color:#ffab91!important}.md-deep-orange-200-bg{background-color:#ffab91!important;color:rgba(0,0,0,.87)}.deep-orange-200-fg{color:#ffab91!important}.deep-orange-200-border{border-color:#ffab91!important}.deep-orange-200-border-top{border-top-color:#ffab91!important}.deep-orange-200-border-right{border-right-color:#ffab91!important}.deep-orange-200-border-bottom{border-bottom-color:#ffab91!important}.deep-orange-200-border-left{border-left-color:#ffab91!important}.deep-orange-300-bg{background-color:#ff8a65!important}.md-deep-orange-300-bg{background-color:#ff8a65!important;color:rgba(0,0,0,.87)}.deep-orange-300-fg{color:#ff8a65!important}.deep-orange-300-border{border-color:#ff8a65!important}.deep-orange-300-border-top{border-top-color:#ff8a65!important}.deep-orange-300-border-right{border-right-color:#ff8a65!important}.deep-orange-300-border-bottom{border-bottom-color:#ff8a65!important}.deep-orange-300-border-left{border-left-color:#ff8a65!important}.deep-orange-400-bg{background-color:#ff7043!important}.md-deep-orange-400-bg{background-color:#ff7043!important;color:rgba(0,0,0,.87)}.deep-orange-400-fg{color:#ff7043!important}.deep-orange-400-border{border-color:#ff7043!important}.deep-orange-400-border-top{border-top-color:#ff7043!important}.deep-orange-400-border-right{border-right-color:#ff7043!important}.deep-orange-400-border-bottom{border-bottom-color:#ff7043!important}.deep-orange-400-border-left{border-left-color:#ff7043!important}.deep-orange-500-bg{background-color:#ff5722!important}.md-deep-orange-500-bg{background-color:#ff5722!important;color:#fff}.deep-orange-500-fg{color:#ff5722!important}.deep-orange-500-border{border-color:#ff5722!important}.deep-orange-500-border-top{border-top-color:#ff5722!important}.deep-orange-500-border-right{border-right-color:#ff5722!important}.deep-orange-500-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-500-border-left{border-left-color:#ff5722!important}.md-deep-orange-bg{background-color:#ff5722!important;color:#fff}.deep-orange-bg{background-color:#ff5722!important}.deep-orange-fg{color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-border-top{border-top-color:#ff5722!important}.deep-orange-border-right{border-right-color:#ff5722!important}.deep-orange-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-border-left{border-left-color:#ff5722!important}.deep-orange-600-bg{background-color:#f4511e!important}.md-deep-orange-600-bg{background-color:#f4511e!important;color:#fff}.deep-orange-600-fg{color:#f4511e!important}.deep-orange-600-border{border-color:#f4511e!important}.deep-orange-600-border-top{border-top-color:#f4511e!important}.deep-orange-600-border-right{border-right-color:#f4511e!important}.deep-orange-600-border-bottom{border-bottom-color:#f4511e!important}.deep-orange-600-border-left{border-left-color:#f4511e!important}.deep-orange-700-bg{background-color:#e64a19!important}.md-deep-orange-700-bg{background-color:#e64a19!important;color:#fff}.deep-orange-700-fg{color:#e64a19!important}.deep-orange-700-border{border-color:#e64a19!important}.deep-orange-700-border-top{border-top-color:#e64a19!important}.deep-orange-700-border-right{border-right-color:#e64a19!important}.deep-orange-700-border-bottom{border-bottom-color:#e64a19!important}.deep-orange-700-border-left{border-left-color:#e64a19!important}.deep-orange-800-bg{background-color:#d84315!important}.md-deep-orange-800-bg{background-color:#d84315!important;color:#fff}.deep-orange-800-fg{color:#d84315!important}.deep-orange-800-border{border-color:#d84315!important}.deep-orange-800-border-top{border-top-color:#d84315!important}.deep-orange-800-border-right{border-right-color:#d84315!important}.deep-orange-800-border-bottom{border-bottom-color:#d84315!important}.deep-orange-800-border-left{border-left-color:#d84315!important}.deep-orange-900-bg{background-color:#bf360c!important}.md-deep-orange-900-bg{background-color:#bf360c!important;color:#fff}.deep-orange-900-fg{color:#bf360c!important}.deep-orange-900-border{border-color:#bf360c!important}.deep-orange-900-border-top{border-top-color:#bf360c!important}.deep-orange-900-border-right{border-right-color:#bf360c!important}.deep-orange-900-border-bottom{border-bottom-color:#bf360c!important}.deep-orange-900-border-left{border-left-color:#bf360c!important}.deep-orange-A100-bg{background-color:#ff9e80!important}.md-deep-orange-A100-bg{background-color:#ff9e80!important;color:rgba(0,0,0,.87)}.deep-orange-A100-fg{color:#ff9e80!important}.deep-orange-A100-border{border-color:#ff9e80!important}.deep-orange-A100-border-top{border-top-color:#ff9e80!important}.deep-orange-A100-border-right{border-right-color:#ff9e80!important}.deep-orange-A100-border-bottom{border-bottom-color:#ff9e80!important}.deep-orange-A100-border-left{border-left-color:#ff9e80!important}.deep-orange-A200-bg{background-color:#ff6e40!important}.md-deep-orange-A200-bg{background-color:#ff6e40!important;color:rgba(0,0,0,.87)}.deep-orange-A200-fg{color:#ff6e40!important}.deep-orange-A200-border{border-color:#ff6e40!important}.deep-orange-A200-border-top{border-top-color:#ff6e40!important}.deep-orange-A200-border-right{border-right-color:#ff6e40!important}.deep-orange-A200-border-bottom{border-bottom-color:#ff6e40!important}.deep-orange-A200-border-left{border-left-color:#ff6e40!important}.deep-orange-A400-bg{background-color:#ff3d00!important}.md-deep-orange-A400-bg{background-color:#ff3d00!important;color:#fff}.deep-orange-A400-fg{color:#ff3d00!important}.deep-orange-A400-border{border-color:#ff3d00!important}.deep-orange-A400-border-top{border-top-color:#ff3d00!important}.deep-orange-A400-border-right{border-right-color:#ff3d00!important}.deep-orange-A400-border-bottom{border-bottom-color:#ff3d00!important}.deep-orange-A400-border-left{border-left-color:#ff3d00!important}.deep-orange-A700-bg{background-color:#dd2c00!important}.md-deep-orange-A700-bg{background-color:#dd2c00!important;color:#fff}.deep-orange-A700-fg{color:#dd2c00!important}.deep-orange-A700-border{border-color:#dd2c00!important}.deep-orange-A700-border-top{border-top-color:#dd2c00!important}.deep-orange-A700-border-right{border-right-color:#dd2c00!important}.deep-orange-A700-border-bottom{border-bottom-color:#dd2c00!important}.deep-orange-A700-border-left{border-left-color:#dd2c00!important}.brown-50-bg{background-color:#efebe9!important}.md-brown-50-bg{background-color:#efebe9!important;color:rgba(0,0,0,.87)}.brown-50-fg{color:#efebe9!important}.brown-50-border{border-color:#efebe9!important}.brown-50-border-top{border-top-color:#efebe9!important}.brown-50-border-right{border-right-color:#efebe9!important}.brown-50-border-bottom{border-bottom-color:#efebe9!important}.brown-50-border-left{border-left-color:#efebe9!important}.brown-100-bg{background-color:#d7ccc8!important}.md-brown-100-bg{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)}.brown-100-fg{color:#d7ccc8!important}.brown-100-border{border-color:#d7ccc8!important}.brown-100-border-top{border-top-color:#d7ccc8!important}.brown-100-border-right{border-right-color:#d7ccc8!important}.brown-100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-100-border-left{border-left-color:#d7ccc8!important}.brown-200-bg{background-color:#bcaaa4!important}.md-brown-200-bg{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)}.brown-200-fg{color:#bcaaa4!important}.brown-200-border{border-color:#bcaaa4!important}.brown-200-border-top{border-top-color:#bcaaa4!important}.brown-200-border-right{border-right-color:#bcaaa4!important}.brown-200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-200-border-left{border-left-color:#bcaaa4!important}.brown-300-bg{background-color:#a1887f!important}.md-brown-300-bg{background-color:#a1887f!important;color:#fff}.brown-300-fg{color:#a1887f!important}.brown-300-border{border-color:#a1887f!important}.brown-300-border-top{border-top-color:#a1887f!important}.brown-300-border-right{border-right-color:#a1887f!important}.brown-300-border-bottom{border-bottom-color:#a1887f!important}.brown-300-border-left{border-left-color:#a1887f!important}.brown-400-bg{background-color:#8d6e63!important}.md-brown-400-bg{background-color:#8d6e63!important;color:#fff}.brown-400-fg{color:#8d6e63!important}.brown-400-border{border-color:#8d6e63!important}.brown-400-border-top{border-top-color:#8d6e63!important}.brown-400-border-right{border-right-color:#8d6e63!important}.brown-400-border-bottom{border-bottom-color:#8d6e63!important}.brown-400-border-left{border-left-color:#8d6e63!important}.brown-500-bg{background-color:#795548!important}.md-brown-500-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-500-fg{color:#795548!important}.brown-500-border{border-color:#795548!important}.brown-500-border-top{border-top-color:#795548!important}.brown-500-border-right{border-right-color:#795548!important}.brown-500-border-bottom{border-bottom-color:#795548!important}.brown-500-border-left{border-left-color:#795548!important}.md-brown-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-bg{background-color:#795548!important}.brown-fg{color:#795548!important}.brown-border{border-color:#795548!important}.brown-border-top{border-top-color:#795548!important}.brown-border-right{border-right-color:#795548!important}.brown-border-bottom{border-bottom-color:#795548!important}.brown-border-left{border-left-color:#795548!important}.brown-600-bg{background-color:#6d4c41!important}.md-brown-600-bg{background-color:#6d4c41!important;color:rgba(255,255,255,.87)}.brown-600-fg{color:#6d4c41!important}.brown-600-border{border-color:#6d4c41!important}.brown-600-border-top{border-top-color:#6d4c41!important}.brown-600-border-right{border-right-color:#6d4c41!important}.brown-600-border-bottom{border-bottom-color:#6d4c41!important}.brown-600-border-left{border-left-color:#6d4c41!important}.brown-700-bg{background-color:#5d4037!important}.md-brown-700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-700-fg{color:#5d4037!important}.brown-700-border{border-color:#5d4037!important}.brown-700-border-top{border-top-color:#5d4037!important}.brown-700-border-right{border-right-color:#5d4037!important}.brown-700-border-bottom{border-bottom-color:#5d4037!important}.brown-700-border-left{border-left-color:#5d4037!important}.brown-800-bg{background-color:#4e342e!important}.md-brown-800-bg{background-color:#4e342e!important;color:rgba(255,255,255,.87)}.brown-800-fg{color:#4e342e!important}.brown-800-border{border-color:#4e342e!important}.brown-800-border-top{border-top-color:#4e342e!important}.brown-800-border-right{border-right-color:#4e342e!important}.brown-800-border-bottom{border-bottom-color:#4e342e!important}.brown-800-border-left{border-left-color:#4e342e!important}.brown-900-bg{background-color:#3e2723!important}.md-brown-900-bg{background-color:#3e2723!important;color:rgba(255,255,255,.87)}.brown-900-fg{color:#3e2723!important}.brown-900-border{border-color:#3e2723!important}.brown-900-border-top{border-top-color:#3e2723!important}.brown-900-border-right{border-right-color:#3e2723!important}.brown-900-border-bottom{border-bottom-color:#3e2723!important}.brown-900-border-left{border-left-color:#3e2723!important}.brown-A100-bg{background-color:#d7ccc8!important}.md-brown-A100-bg{background-color:#d7ccc8!important;color:rgba(255,255,255,.87)}.brown-A100-fg{color:#d7ccc8!important}.brown-A100-border{border-color:#d7ccc8!important}.brown-A100-border-top{border-top-color:#d7ccc8!important}.brown-A100-border-right{border-right-color:#d7ccc8!important}.brown-A100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-A100-border-left{border-left-color:#d7ccc8!important}.brown-A200-bg{background-color:#bcaaa4!important}.md-brown-A200-bg{background-color:#bcaaa4!important;color:rgba(255,255,255,.87)}.brown-A200-fg{color:#bcaaa4!important}.brown-A200-border{border-color:#bcaaa4!important}.brown-A200-border-top{border-top-color:#bcaaa4!important}.brown-A200-border-right{border-right-color:#bcaaa4!important}.brown-A200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-A200-border-left{border-left-color:#bcaaa4!important}.brown-A400-bg{background-color:#8d6e63!important}.md-brown-A400-bg{background-color:#8d6e63!important;color:rgba(255,255,255,.87)}.brown-A400-fg{color:#8d6e63!important}.brown-A400-border{border-color:#8d6e63!important}.brown-A400-border-top{border-top-color:#8d6e63!important}.brown-A400-border-right{border-right-color:#8d6e63!important}.brown-A400-border-bottom{border-bottom-color:#8d6e63!important}.brown-A400-border-left{border-left-color:#8d6e63!important}.brown-A700-bg{background-color:#5d4037!important}.md-brown-A700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-A700-fg{color:#5d4037!important}.brown-A700-border{border-color:#5d4037!important}.brown-A700-border-top{border-top-color:#5d4037!important}.brown-A700-border-right{border-right-color:#5d4037!important}.brown-A700-border-bottom{border-bottom-color:#5d4037!important}.brown-A700-border-left{border-left-color:#5d4037!important}.grey-50-bg{background-color:#fafafa!important}.md-grey-50-bg{background-color:#fafafa!important;color:rgba(0,0,0,.87)}.grey-50-fg{color:#fafafa!important}.grey-50-border{border-color:#fafafa!important}.grey-50-border-top{border-top-color:#fafafa!important}.grey-50-border-right{border-right-color:#fafafa!important}.grey-50-border-bottom{border-bottom-color:#fafafa!important}.grey-50-border-left{border-left-color:#fafafa!important}.grey-100-bg{background-color:#f5f5f5!important}.md-grey-100-bg{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)}.grey-100-fg{color:#f5f5f5!important}.grey-100-border{border-color:#f5f5f5!important}.grey-100-border-top{border-top-color:#f5f5f5!important}.grey-100-border-right{border-right-color:#f5f5f5!important}.grey-100-border-bottom{border-bottom-color:#f5f5f5!important}.grey-100-border-left{border-left-color:#f5f5f5!important}.grey-200-bg{background-color:#eee!important}.md-grey-200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-200-fg{color:#eee!important}.grey-200-border{border-color:#eee!important}.grey-200-border-top{border-top-color:#eee!important}.grey-200-border-right{border-right-color:#eee!important}.grey-200-border-bottom{border-bottom-color:#eee!important}.grey-200-border-left{border-left-color:#eee!important}.grey-300-bg{background-color:#e0e0e0!important}.md-grey-300-bg{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)}.grey-300-fg{color:#e0e0e0!important}.grey-300-border{border-color:#e0e0e0!important}.grey-300-border-top{border-top-color:#e0e0e0!important}.grey-300-border-right{border-right-color:#e0e0e0!important}.grey-300-border-bottom{border-bottom-color:#e0e0e0!important}.grey-300-border-left{border-left-color:#e0e0e0!important}.grey-400-bg{background-color:#bdbdbd!important}.md-grey-400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-400-fg{color:#bdbdbd!important}.grey-400-border{border-color:#bdbdbd!important}.grey-400-border-top{border-top-color:#bdbdbd!important}.grey-400-border-right{border-right-color:#bdbdbd!important}.grey-400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-400-border-left{border-left-color:#bdbdbd!important}.grey-500-bg{background-color:#9e9e9e!important}.md-grey-500-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-500-fg{color:#9e9e9e!important}.grey-500-border{border-color:#9e9e9e!important}.grey-500-border-top{border-top-color:#9e9e9e!important}.grey-500-border-right{border-right-color:#9e9e9e!important}.grey-500-border-bottom{border-bottom-color:#9e9e9e!important}.grey-500-border-left{border-left-color:#9e9e9e!important}.md-grey-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-bg{background-color:#9e9e9e!important}.grey-fg{color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-border-top{border-top-color:#9e9e9e!important}.grey-border-right{border-right-color:#9e9e9e!important}.grey-border-bottom{border-bottom-color:#9e9e9e!important}.grey-border-left{border-left-color:#9e9e9e!important}.grey-600-bg{background-color:#757575!important}.md-grey-600-bg{background-color:#757575!important;color:rgba(255,255,255,.87)}.grey-600-fg{color:#757575!important}.grey-600-border{border-color:#757575!important}.grey-600-border-top{border-top-color:#757575!important}.grey-600-border-right{border-right-color:#757575!important}.grey-600-border-bottom{border-bottom-color:#757575!important}.grey-600-border-left{border-left-color:#757575!important}.grey-700-bg{background-color:#616161!important}.md-grey-700-bg{background-color:#616161!important;color:rgba(255,255,255,.87)}.grey-700-fg{color:#616161!important}.grey-700-border{border-color:#616161!important}.grey-700-border-top{border-top-color:#616161!important}.grey-700-border-right{border-right-color:#616161!important}.grey-700-border-bottom{border-bottom-color:#616161!important}.grey-700-border-left{border-left-color:#616161!important}.grey-800-bg{background-color:#424242!important}.md-grey-800-bg{background-color:#424242!important;color:rgba(255,255,255,.87)}.grey-800-fg{color:#424242!important}.grey-800-border{border-color:#424242!important}.grey-800-border-top{border-top-color:#424242!important}.grey-800-border-right{border-right-color:#424242!important}.grey-800-border-bottom{border-bottom-color:#424242!important}.grey-800-border-left{border-left-color:#424242!important}.grey-900-bg{background-color:#212121!important}.md-grey-900-bg{background-color:#212121!important;color:rgba(255,255,255,.87)}.grey-900-fg{color:#212121!important}.grey-900-border{border-color:#212121!important}.grey-900-border-top{border-top-color:#212121!important}.grey-900-border-right{border-right-color:#212121!important}.grey-900-border-bottom{border-bottom-color:#212121!important}.grey-900-border-left{border-left-color:#212121!important}.grey-1000-bg{background-color:#000!important}.md-grey-1000-bg{background-color:#000!important}.grey-1000-fg{color:#000!important}.grey-1000-border{border-color:#000!important}.grey-1000-border-top{border-top-color:#000!important}.grey-1000-border-right{border-right-color:#000!important}.grey-1000-border-bottom{border-bottom-color:#000!important}.grey-1000-border-left{border-left-color:#000!important}.grey-A100-bg{background-color:#fff!important}.md-grey-A100-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.grey-A100-fg{color:#fff!important}.grey-A100-border{border-color:#fff!important}.grey-A100-border-top{border-top-color:#fff!important}.grey-A100-border-right{border-right-color:#fff!important}.grey-A100-border-bottom{border-bottom-color:#fff!important}.grey-A100-border-left{border-left-color:#fff!important}.grey-A200-bg{background-color:#eee!important}.md-grey-A200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-A200-fg{color:#eee!important}.grey-A200-border{border-color:#eee!important}.grey-A200-border-top{border-top-color:#eee!important}.grey-A200-border-right{border-right-color:#eee!important}.grey-A200-border-bottom{border-bottom-color:#eee!important}.grey-A200-border-left{border-left-color:#eee!important}.grey-A400-bg{background-color:#bdbdbd!important}.md-grey-A400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-A400-fg{color:#bdbdbd!important}.grey-A400-border{border-color:#bdbdbd!important}.grey-A400-border-top{border-top-color:#bdbdbd!important}.grey-A400-border-right{border-right-color:#bdbdbd!important}.grey-A400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-A400-border-left{border-left-color:#bdbdbd!important}.grey-A700-bg{background-color:#616161!important}.md-grey-A700-bg{background-color:#616161!important;color:rgba(0,0,0,.87)}.grey-A700-fg{color:#616161!important}.grey-A700-border{border-color:#616161!important}.grey-A700-border-top{border-top-color:#616161!important}.grey-A700-border-right{border-right-color:#616161!important}.grey-A700-border-bottom{border-bottom-color:#616161!important}.grey-A700-border-left{border-left-color:#616161!important}.blue-grey-50-bg{background-color:#eceff1!important}.md-blue-grey-50-bg{background-color:#eceff1!important;color:rgba(0,0,0,.87)}.blue-grey-50-fg{color:#eceff1!important}.blue-grey-50-border{border-color:#eceff1!important}.blue-grey-50-border-top{border-top-color:#eceff1!important}.blue-grey-50-border-right{border-right-color:#eceff1!important}.blue-grey-50-border-bottom{border-bottom-color:#eceff1!important}.blue-grey-50-border-left{border-left-color:#eceff1!important}.blue-grey-100-bg{background-color:#cfd8dc!important}.md-blue-grey-100-bg{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)}.blue-grey-100-fg{color:#cfd8dc!important}.blue-grey-100-border{border-color:#cfd8dc!important}.blue-grey-100-border-top{border-top-color:#cfd8dc!important}.blue-grey-100-border-right{border-right-color:#cfd8dc!important}.blue-grey-100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-100-border-left{border-left-color:#cfd8dc!important}.blue-grey-200-bg{background-color:#b0bec5!important}.md-blue-grey-200-bg{background-color:#b0bec5!important;color:rgba(0,0,0,.87)}.blue-grey-200-fg{color:#b0bec5!important}.blue-grey-200-border{border-color:#b0bec5!important}.blue-grey-200-border-top{border-top-color:#b0bec5!important}.blue-grey-200-border-right{border-right-color:#b0bec5!important}.blue-grey-200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-200-border-left{border-left-color:#b0bec5!important}.blue-grey-300-bg{background-color:#90a4ae!important}.md-blue-grey-300-bg{background-color:#90a4ae!important;color:rgba(0,0,0,.87)}.blue-grey-300-fg{color:#90a4ae!important}.blue-grey-300-border{border-color:#90a4ae!important}.blue-grey-300-border-top{border-top-color:#90a4ae!important}.blue-grey-300-border-right{border-right-color:#90a4ae!important}.blue-grey-300-border-bottom{border-bottom-color:#90a4ae!important}.blue-grey-300-border-left{border-left-color:#90a4ae!important}.blue-grey-400-bg{background-color:#78909c!important}.md-blue-grey-400-bg{background-color:#78909c!important;color:#fff}.blue-grey-400-fg{color:#78909c!important}.blue-grey-400-border{border-color:#78909c!important}.blue-grey-400-border-top{border-top-color:#78909c!important}.blue-grey-400-border-right{border-right-color:#78909c!important}.blue-grey-400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-400-border-left{border-left-color:#78909c!important}.blue-grey-500-bg{background-color:#607d8b!important}.md-blue-grey-500-bg{background-color:#607d8b!important;color:#fff}.blue-grey-500-fg{color:#607d8b!important}.blue-grey-500-border{border-color:#607d8b!important}.blue-grey-500-border-top{border-top-color:#607d8b!important}.blue-grey-500-border-right{border-right-color:#607d8b!important}.blue-grey-500-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-500-border-left{border-left-color:#607d8b!important}.md-blue-grey-bg{background-color:#607d8b!important;color:#fff}.blue-grey-bg{background-color:#607d8b!important}.blue-grey-fg{color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-border-top{border-top-color:#607d8b!important}.blue-grey-border-right{border-right-color:#607d8b!important}.blue-grey-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-border-left{border-left-color:#607d8b!important}.blue-grey-600-bg{background-color:#546e7a!important}.md-blue-grey-600-bg{background-color:#546e7a!important;color:rgba(255,255,255,.87)}.blue-grey-600-fg{color:#546e7a!important}.blue-grey-600-border{border-color:#546e7a!important}.blue-grey-600-border-top{border-top-color:#546e7a!important}.blue-grey-600-border-right{border-right-color:#546e7a!important}.blue-grey-600-border-bottom{border-bottom-color:#546e7a!important}.blue-grey-600-border-left{border-left-color:#546e7a!important}.blue-grey-700-bg{background-color:#455a64!important}.md-blue-grey-700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-700-fg{color:#455a64!important}.blue-grey-700-border{border-color:#455a64!important}.blue-grey-700-border-top{border-top-color:#455a64!important}.blue-grey-700-border-right{border-right-color:#455a64!important}.blue-grey-700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-700-border-left{border-left-color:#455a64!important}.blue-grey-800-bg{background-color:#37474f!important}.md-blue-grey-800-bg{background-color:#37474f!important;color:rgba(255,255,255,.87)}.blue-grey-800-fg{color:#37474f!important}.blue-grey-800-border{border-color:#37474f!important}.blue-grey-800-border-top{border-top-color:#37474f!important}.blue-grey-800-border-right{border-right-color:#37474f!important}.blue-grey-800-border-bottom{border-bottom-color:#37474f!important}.blue-grey-800-border-left{border-left-color:#37474f!important}.blue-grey-900-bg{background-color:#263238!important}.md-blue-grey-900-bg{background-color:#263238!important;color:rgba(255,255,255,.87)}.blue-grey-900-fg{color:#263238!important}.blue-grey-900-border{border-color:#263238!important}.blue-grey-900-border-top{border-top-color:#263238!important}.blue-grey-900-border-right{border-right-color:#263238!important}.blue-grey-900-border-bottom{border-bottom-color:#263238!important}.blue-grey-900-border-left{border-left-color:#263238!important}.blue-grey-A100-bg{background-color:#cfd8dc!important}.md-blue-grey-A100-bg{background-color:#cfd8dc!important;color:rgba(255,255,255,.87)}.blue-grey-A100-fg{color:#cfd8dc!important}.blue-grey-A100-border{border-color:#cfd8dc!important}.blue-grey-A100-border-top{border-top-color:#cfd8dc!important}.blue-grey-A100-border-right{border-right-color:#cfd8dc!important}.blue-grey-A100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-A100-border-left{border-left-color:#cfd8dc!important}.blue-grey-A200-bg{background-color:#b0bec5!important}.md-blue-grey-A200-bg{background-color:#b0bec5!important;color:rgba(255,255,255,.87)}.blue-grey-A200-fg{color:#b0bec5!important}.blue-grey-A200-border{border-color:#b0bec5!important}.blue-grey-A200-border-top{border-top-color:#b0bec5!important}.blue-grey-A200-border-right{border-right-color:#b0bec5!important}.blue-grey-A200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-A200-border-left{border-left-color:#b0bec5!important}.blue-grey-A400-bg{background-color:#78909c!important}.md-blue-grey-A400-bg{background-color:#78909c!important;color:rgba(255,255,255,.87)}.blue-grey-A400-fg{color:#78909c!important}.blue-grey-A400-border{border-color:#78909c!important}.blue-grey-A400-border-top{border-top-color:#78909c!important}.blue-grey-A400-border-right{border-right-color:#78909c!important}.blue-grey-A400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-A400-border-left{border-left-color:#78909c!important}.blue-grey-A700-bg{background-color:#455a64!important}.md-blue-grey-A700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-A700-fg{color:#455a64!important}.blue-grey-A700-border{border-color:#455a64!important}.blue-grey-A700-border-top{border-top-color:#455a64!important}.blue-grey-A700-border-right{border-right-color:#455a64!important}.blue-grey-A700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-A700-border-left{border-left-color:#455a64!important}.white-500-bg{background-color:#fff!important}.md-white-500-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-500-fg{color:#fff!important}.white-500-border{border-color:#fff!important}.white-500-border-top{border-top-color:#fff!important}.white-500-border-right{border-right-color:#fff!important}.white-500-border-bottom{border-bottom-color:#fff!important}.white-500-border-left{border-left-color:#fff!important}.md-white-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-bg{background-color:#fff!important}.white-fg{color:#fff!important}.white-border{border-color:#fff!important}.white-border-top{border-top-color:#fff!important}.white-border-right{border-right-color:#fff!important}.white-border-bottom{border-bottom-color:#fff!important}.white-border-left{border-left-color:#fff!important}.black-500-bg{background-color:#000!important}.md-black-500-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-500-fg{color:#000!important}.black-500-border{border-color:#000!important}.black-500-border-top{border-top-color:#000!important}.black-500-border-right{border-right-color:#000!important}.black-500-border-bottom{border-bottom-color:#000!important}.black-500-border-left{border-left-color:#000!important}.md-black-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-bg{background-color:#000!important}.black-fg{color:#000!important}.black-border{border-color:#000!important}.black-border-top{border-top-color:#000!important}.black-border-right{border-right-color:#000!important}.black-border-bottom{border-bottom-color:#000!important}.black-border-left{border-left-color:#000!important}i,md-icon[md-font-icon]{font-size:24px;width:24px;height:24px;min-width:24px;min-height:24px;line-height:24px}i.s4,md-icon[md-font-icon].s4{font-size:4px!important;width:4px!important;height:4px!important;min-width:4px!important;min-height:4px!important;line-height:4px!important}i.s6,md-icon[md-font-icon].s6{font-size:6px!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;line-height:6px!important}i.s8,md-icon[md-font-icon].s8{font-size:8px!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;line-height:8px!important}i.s10,md-icon[md-font-icon].s10{font-size:10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;line-height:10px!important}i.s12,md-icon[md-font-icon].s12{font-size:12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;line-height:12px!important}i.s14,md-icon[md-font-icon].s14{font-size:14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;line-height:14px!important}i.s16,md-icon[md-font-icon].s16{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important}i.s18,md-icon[md-font-icon].s18{font-size:18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;line-height:18px!important}i.s20,md-icon[md-font-icon].s20{font-size:20px!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;line-height:20px!important}i.s22,md-icon[md-font-icon].s22{font-size:22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;line-height:22px!important}i.s24,md-icon[md-font-icon].s24{font-size:24px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;line-height:24px!important}i.s26,md-icon[md-font-icon].s26{font-size:26px!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;line-height:26px!important}i.s28,md-icon[md-font-icon].s28{font-size:28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important}i.s30,md-icon[md-font-icon].s30{font-size:30px!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;line-height:30px!important}i.s32,md-icon[md-font-icon].s32{font-size:32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;line-height:32px!important}i.s34,md-icon[md-font-icon].s34{font-size:34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;line-height:34px!important}i.s36,md-icon[md-font-icon].s36{font-size:36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;line-height:36px!important}i.s38,md-icon[md-font-icon].s38{font-size:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;line-height:38px!important}i.s40,md-icon[md-font-icon].s40{font-size:40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;line-height:40px!important}i.s42,md-icon[md-font-icon].s42{font-size:42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;line-height:42px!important}i.s44,md-icon[md-font-icon].s44{font-size:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;line-height:44px!important}i.s46,md-icon[md-font-icon].s46{font-size:46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;line-height:46px!important}i.s48,md-icon[md-font-icon].s48{font-size:48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;line-height:48px!important}i.s50,md-icon[md-font-icon].s50{font-size:50px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;line-height:50px!important}i.s52,md-icon[md-font-icon].s52{font-size:52px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;line-height:52px!important}i.s54,md-icon[md-font-icon].s54{font-size:54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;line-height:54px!important}i.s56,md-icon[md-font-icon].s56{font-size:56px!important;width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;line-height:56px!important}i.s58,md-icon[md-font-icon].s58{font-size:58px!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;line-height:58px!important}i.s60,md-icon[md-font-icon].s60{font-size:60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;line-height:60px!important}i.s62,md-icon[md-font-icon].s62{font-size:62px!important;width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;line-height:62px!important}i.s64,md-icon[md-font-icon].s64{font-size:64px!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;line-height:64px!important}i.s66,md-icon[md-font-icon].s66{font-size:66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;line-height:66px!important}i.s68,md-icon[md-font-icon].s68{font-size:68px!important;width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;line-height:68px!important}i.s70,md-icon[md-font-icon].s70{font-size:70px!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;line-height:70px!important}i.s72,md-icon[md-font-icon].s72{font-size:72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;line-height:72px!important}i.s74,md-icon[md-font-icon].s74{font-size:74px!important;width:74px!important;height:74px!important;min-width:74px!important;min-height:74px!important;line-height:74px!important}i.s76,md-icon[md-font-icon].s76{font-size:76px!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;line-height:76px!important}i.s78,md-icon[md-font-icon].s78{font-size:78px!important;width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important;line-height:78px!important}i.s80,md-icon[md-font-icon].s80{font-size:80px!important;width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;line-height:80px!important}i.s82,md-icon[md-font-icon].s82{font-size:82px!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;line-height:82px!important}i.s84,md-icon[md-font-icon].s84{font-size:84px!important;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;line-height:84px!important}i.s86,md-icon[md-font-icon].s86{font-size:86px!important;width:86px!important;height:86px!important;min-width:86px!important;min-height:86px!important;line-height:86px!important}i.s88,md-icon[md-font-icon].s88{font-size:88px!important;width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;line-height:88px!important}i.s90,md-icon[md-font-icon].s90{font-size:90px!important;width:90px!important;height:90px!important;min-width:90px!important;min-height:90px!important;line-height:90px!important}i.s92,md-icon[md-font-icon].s92{font-size:92px!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;line-height:92px!important}i.s94,md-icon[md-font-icon].s94{font-size:94px!important;width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important;line-height:94px!important}i.s96,md-icon[md-font-icon].s96{font-size:96px!important;width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;line-height:96px!important}i.s98,md-icon[md-font-icon].s98{font-size:98px!important;width:98px!important;height:98px!important;min-width:98px!important;min-height:98px!important;line-height:98px!important}i.s100,md-icon[md-font-icon].s100{font-size:100px!important;width:100px!important;height:100px!important;min-width:100px!important;min-height:100px!important;line-height:100px!important}i.s102,md-icon[md-font-icon].s102{font-size:102px!important;width:102px!important;height:102px!important;min-width:102px!important;min-height:102px!important;line-height:102px!important}i.s104,md-icon[md-font-icon].s104{font-size:104px!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;line-height:104px!important}i.s106,md-icon[md-font-icon].s106{font-size:106px!important;width:106px!important;height:106px!important;min-width:106px!important;min-height:106px!important;line-height:106px!important}i.s108,md-icon[md-font-icon].s108{font-size:108px!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;line-height:108px!important}i.s110,md-icon[md-font-icon].s110{font-size:110px!important;width:110px!important;height:110px!important;min-width:110px!important;min-height:110px!important;line-height:110px!important}i.s112,md-icon[md-font-icon].s112{font-size:112px!important;width:112px!important;height:112px!important;min-width:112px!important;min-height:112px!important;line-height:112px!important}i.s114,md-icon[md-font-icon].s114{font-size:114px!important;width:114px!important;height:114px!important;min-width:114px!important;min-height:114px!important;line-height:114px!important}i.s116,md-icon[md-font-icon].s116{font-size:116px!important;width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;line-height:116px!important}i.s118,md-icon[md-font-icon].s118{font-size:118px!important;width:118px!important;height:118px!important;min-width:118px!important;min-height:118px!important;line-height:118px!important}i.s120,md-icon[md-font-icon].s120{font-size:120px!important;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;line-height:120px!important}i.s122,md-icon[md-font-icon].s122{font-size:122px!important;width:122px!important;height:122px!important;min-width:122px!important;min-height:122px!important;line-height:122px!important}i.s124,md-icon[md-font-icon].s124{font-size:124px!important;width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important;line-height:124px!important}i.s126,md-icon[md-font-icon].s126{font-size:126px!important;width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;line-height:126px!important}i.s128,md-icon[md-font-icon].s128{font-size:128px!important;width:128px!important;height:128px!important;min-width:128px!important;min-height:128px!important;line-height:128px!important}i.s130,md-icon[md-font-icon].s130{font-size:130px!important;width:130px!important;height:130px!important;min-width:130px!important;min-height:130px!important;line-height:130px!important}i.s132,md-icon[md-font-icon].s132{font-size:132px!important;width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;line-height:132px!important}i.s134,md-icon[md-font-icon].s134{font-size:134px!important;width:134px!important;height:134px!important;min-width:134px!important;min-height:134px!important;line-height:134px!important}i.s136,md-icon[md-font-icon].s136{font-size:136px!important;width:136px!important;height:136px!important;min-width:136px!important;min-height:136px!important;line-height:136px!important}i.s138,md-icon[md-font-icon].s138{font-size:138px!important;width:138px!important;height:138px!important;min-width:138px!important;min-height:138px!important;line-height:138px!important}i.s140,md-icon[md-font-icon].s140{font-size:140px!important;width:140px!important;height:140px!important;min-width:140px!important;min-height:140px!important;line-height:140px!important}i.s142,md-icon[md-font-icon].s142{font-size:142px!important;width:142px!important;height:142px!important;min-width:142px!important;min-height:142px!important;line-height:142px!important}i.s144,md-icon[md-font-icon].s144{font-size:144px!important;width:144px!important;height:144px!important;min-width:144px!important;min-height:144px!important;line-height:144px!important}i.s146,md-icon[md-font-icon].s146{font-size:146px!important;width:146px!important;height:146px!important;min-width:146px!important;min-height:146px!important;line-height:146px!important}i.s148,md-icon[md-font-icon].s148{font-size:148px!important;width:148px!important;height:148px!important;min-width:148px!important;min-height:148px!important;line-height:148px!important}i.s150,md-icon[md-font-icon].s150{font-size:150px!important;width:150px!important;height:150px!important;min-width:150px!important;min-height:150px!important;line-height:150px!important}i.s152,md-icon[md-font-icon].s152{font-size:152px!important;width:152px!important;height:152px!important;min-width:152px!important;min-height:152px!important;line-height:152px!important}i.s154,md-icon[md-font-icon].s154{font-size:154px!important;width:154px!important;height:154px!important;min-width:154px!important;min-height:154px!important;line-height:154px!important}i.s156,md-icon[md-font-icon].s156{font-size:156px!important;width:156px!important;height:156px!important;min-width:156px!important;min-height:156px!important;line-height:156px!important}i.s158,md-icon[md-font-icon].s158{font-size:158px!important;width:158px!important;height:158px!important;min-width:158px!important;min-height:158px!important;line-height:158px!important}i.s160,md-icon[md-font-icon].s160{font-size:160px!important;width:160px!important;height:160px!important;min-width:160px!important;min-height:160px!important;line-height:160px!important}i.s162,md-icon[md-font-icon].s162{font-size:162px!important;width:162px!important;height:162px!important;min-width:162px!important;min-height:162px!important;line-height:162px!important}i.s164,md-icon[md-font-icon].s164{font-size:164px!important;width:164px!important;height:164px!important;min-width:164px!important;min-height:164px!important;line-height:164px!important}i.s166,md-icon[md-font-icon].s166{font-size:166px!important;width:166px!important;height:166px!important;min-width:166px!important;min-height:166px!important;line-height:166px!important}i.s168,md-icon[md-font-icon].s168{font-size:168px!important;width:168px!important;height:168px!important;min-width:168px!important;min-height:168px!important;line-height:168px!important}i.s170,md-icon[md-font-icon].s170{font-size:170px!important;width:170px!important;height:170px!important;min-width:170px!important;min-height:170px!important;line-height:170px!important}i.s172,md-icon[md-font-icon].s172{font-size:172px!important;width:172px!important;height:172px!important;min-width:172px!important;min-height:172px!important;line-height:172px!important}i.s174,md-icon[md-font-icon].s174{font-size:174px!important;width:174px!important;height:174px!important;min-width:174px!important;min-height:174px!important;line-height:174px!important}i.s176,md-icon[md-font-icon].s176{font-size:176px!important;width:176px!important;height:176px!important;min-width:176px!important;min-height:176px!important;line-height:176px!important}i.s178,md-icon[md-font-icon].s178{font-size:178px!important;width:178px!important;height:178px!important;min-width:178px!important;min-height:178px!important;line-height:178px!important}i.s180,md-icon[md-font-icon].s180{font-size:180px!important;width:180px!important;height:180px!important;min-width:180px!important;min-height:180px!important;line-height:180px!important}i.s182,md-icon[md-font-icon].s182{font-size:182px!important;width:182px!important;height:182px!important;min-width:182px!important;min-height:182px!important;line-height:182px!important}i.s184,md-icon[md-font-icon].s184{font-size:184px!important;width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;line-height:184px!important}i.s186,md-icon[md-font-icon].s186{font-size:186px!important;width:186px!important;height:186px!important;min-width:186px!important;min-height:186px!important;line-height:186px!important}i.s188,md-icon[md-font-icon].s188{font-size:188px!important;width:188px!important;height:188px!important;min-width:188px!important;min-height:188px!important;line-height:188px!important}i.s190,md-icon[md-font-icon].s190{font-size:190px!important;width:190px!important;height:190px!important;min-width:190px!important;min-height:190px!important;line-height:190px!important}i.s192,md-icon[md-font-icon].s192{font-size:192px!important;width:192px!important;height:192px!important;min-width:192px!important;min-height:192px!important;line-height:192px!important}i.s194,md-icon[md-font-icon].s194{font-size:194px!important;width:194px!important;height:194px!important;min-width:194px!important;min-height:194px!important;line-height:194px!important}i.s196,md-icon[md-font-icon].s196{font-size:196px!important;width:196px!important;height:196px!important;min-width:196px!important;min-height:196px!important;line-height:196px!important}i.s198,md-icon[md-font-icon].s198{font-size:198px!important;width:198px!important;height:198px!important;min-width:198px!important;min-height:198px!important;line-height:198px!important}i.s200,md-icon[md-font-icon].s200{font-size:200px!important;width:200px!important;height:200px!important;min-width:200px!important;min-height:200px!important;line-height:200px!important}i.s202,md-icon[md-font-icon].s202{font-size:202px!important;width:202px!important;height:202px!important;min-width:202px!important;min-height:202px!important;line-height:202px!important}i.s204,md-icon[md-font-icon].s204{font-size:204px!important;width:204px!important;height:204px!important;min-width:204px!important;min-height:204px!important;line-height:204px!important}i.s206,md-icon[md-font-icon].s206{font-size:206px!important;width:206px!important;height:206px!important;min-width:206px!important;min-height:206px!important;line-height:206px!important}i.s208,md-icon[md-font-icon].s208{font-size:208px!important;width:208px!important;height:208px!important;min-width:208px!important;min-height:208px!important;line-height:208px!important}i.s210,md-icon[md-font-icon].s210{font-size:210px!important;width:210px!important;height:210px!important;min-width:210px!important;min-height:210px!important;line-height:210px!important}i.s212,md-icon[md-font-icon].s212{font-size:212px!important;width:212px!important;height:212px!important;min-width:212px!important;min-height:212px!important;line-height:212px!important}i.s214,md-icon[md-font-icon].s214{font-size:214px!important;width:214px!important;height:214px!important;min-width:214px!important;min-height:214px!important;line-height:214px!important}i.s216,md-icon[md-font-icon].s216{font-size:216px!important;width:216px!important;height:216px!important;min-width:216px!important;min-height:216px!important;line-height:216px!important}i.s218,md-icon[md-font-icon].s218{font-size:218px!important;width:218px!important;height:218px!important;min-width:218px!important;min-height:218px!important;line-height:218px!important}i.s220,md-icon[md-font-icon].s220{font-size:220px!important;width:220px!important;height:220px!important;min-width:220px!important;min-height:220px!important;line-height:220px!important}i.s222,md-icon[md-font-icon].s222{font-size:222px!important;width:222px!important;height:222px!important;min-width:222px!important;min-height:222px!important;line-height:222px!important}i.s224,md-icon[md-font-icon].s224{font-size:224px!important;width:224px!important;height:224px!important;min-width:224px!important;min-height:224px!important;line-height:224px!important}i.s226,md-icon[md-font-icon].s226{font-size:226px!important;width:226px!important;height:226px!important;min-width:226px!important;min-height:226px!important;line-height:226px!important}i.s228,md-icon[md-font-icon].s228{font-size:228px!important;width:228px!important;height:228px!important;min-width:228px!important;min-height:228px!important;line-height:228px!important}i.s230,md-icon[md-font-icon].s230{font-size:230px!important;width:230px!important;height:230px!important;min-width:230px!important;min-height:230px!important;line-height:230px!important}i.s232,md-icon[md-font-icon].s232{font-size:232px!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;line-height:232px!important}i.s234,md-icon[md-font-icon].s234{font-size:234px!important;width:234px!important;height:234px!important;min-width:234px!important;min-height:234px!important;line-height:234px!important}i.s236,md-icon[md-font-icon].s236{font-size:236px!important;width:236px!important;height:236px!important;min-width:236px!important;min-height:236px!important;line-height:236px!important}i.s238,md-icon[md-font-icon].s238{font-size:238px!important;width:238px!important;height:238px!important;min-width:238px!important;min-height:238px!important;line-height:238px!important}i.s240,md-icon[md-font-icon].s240{font-size:240px!important;width:240px!important;height:240px!important;min-width:240px!important;min-height:240px!important;line-height:240px!important}i.s242,md-icon[md-font-icon].s242{font-size:242px!important;width:242px!important;height:242px!important;min-width:242px!important;min-height:242px!important;line-height:242px!important}i.s244,md-icon[md-font-icon].s244{font-size:244px!important;width:244px!important;height:244px!important;min-width:244px!important;min-height:244px!important;line-height:244px!important}i.s246,md-icon[md-font-icon].s246{font-size:246px!important;width:246px!important;height:246px!important;min-width:246px!important;min-height:246px!important;line-height:246px!important}i.s248,md-icon[md-font-icon].s248{font-size:248px!important;width:248px!important;height:248px!important;min-width:248px!important;min-height:248px!important;line-height:248px!important}i.s250,md-icon[md-font-icon].s250{font-size:250px!important;width:250px!important;height:250px!important;min-width:250px!important;min-height:250px!important;line-height:250px!important}i.s252,md-icon[md-font-icon].s252{font-size:252px!important;width:252px!important;height:252px!important;min-width:252px!important;min-height:252px!important;line-height:252px!important}i.s254,md-icon[md-font-icon].s254{font-size:254px!important;width:254px!important;height:254px!important;min-width:254px!important;min-height:254px!important;line-height:254px!important}i.s256,md-icon[md-font-icon].s256{font-size:256px!important;width:256px!important;height:256px!important;min-width:256px!important;min-height:256px!important;line-height:256px!important}@font-face{font-family:icomoon;src:url(../assets/icons/fonts/icomoon.eot?5km1tg);src:url(../assets/icons/fonts/icomoon.eot?#iefix5km1tg) format("embedded-opentype"),url(../assets/icons/fonts/icomoon.ttf?5km1tg) format("truetype"),url(../assets/icons/fonts/icomoon.woff?5km1tg) format("woff"),url(../assets/icons/fonts/icomoon.svg?5km1tg#icomoon) format("svg");font-weight:400;font-style:normal}[class*=' icon-'],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-account-alert:before{content:'\e600'}.icon-account-box-outline:before{content:'\e601'}.icon-account-box:before{content:'\e602'}.icon-account-check:before{content:'\e603'}.icon-account-circle:before{content:'\e604'}.icon-account-key:before{content:'\e605'}.icon-account-location:before{content:'\e606'}.icon-account-minus:before{content:'\e607'}.icon-account-multiple-outline:before{content:'\e608'}.icon-account-multiple-plus:before{content:'\e609'}.icon-account-multiple:before{content:'\e60a'}.icon-account-network:before{content:'\e60b'}.icon-account-outline:before{content:'\e60c'}.icon-account-plus:before{content:'\e60d'}.icon-account-remove:before{content:'\e60e'}.icon-account-search:before{content:'\e60f'}.icon-account-switch:before{content:'\e610'}.icon-account:before{content:'\e611'}.icon-airballoon:before{content:'\e612'}.icon-airplane-off:before{content:'\e613'}.icon-airplane:before{content:'\e614'}.icon-alarm-check:before{content:'\e615'}.icon-alarm-multiple:before{content:'\e616'}.icon-alarm-off:before{content:'\e617'}.icon-alarm-plus:before{content:'\e618'}.icon-alarm:before{content:'\e619'}.icon-album:before{content:'\e61a'}.icon-alert-box:before{content:'\e61b'}.icon-alert-circle:before{content:'\e61c'}.icon-alert-octagon:before{content:'\e61d'}.icon-alert:before{content:'\e61e'}.icon-alpha:before{content:'\e61f'}.icon-alphabetical:before{content:'\e620'}.icon-amazon-clouddrive:before{content:'\e621'}.icon-amazon:before{content:'\e622'}.icon-ambulance:before{content:'\e623'}.icon-android-debug-bridge:before{content:'\e624'}.icon-android-studio:before{content:'\e625'}.icon-android:before{content:'\e626'}.icon-apple-finder:before{content:'\e627'}.icon-apple-ios:before{content:'\e628'}.icon-apple-mobileme:before{content:'\e629'}.icon-apple-safari:before{content:'\e62a'}.icon-apple:before{content:'\e62b'}.icon-appnet:before{content:'\e62c'}.icon-apps:before{content:'\e62d'}.icon-archive:before{content:'\e62e'}.icon-arrange-bring-forward:before{content:'\e62f'}.icon-arrange-bring-to-front:before{content:'\e630'}.icon-arrange-send-backward:before{content:'\e631'}.icon-arrange-send-to-back:before{content:'\e632'}.icon-arrow-all:before{content:'\e633'}.icon-arrow-bottom-left:before{content:'\e634'}.icon-arrow-bottom-right:before{content:'\e635'}.icon-arrow-collapse:before{content:'\e636'}.icon-arrow-down-bold-circle-outline:before{content:'\e637'}.icon-arrow-down-bold-circle:before{content:'\e638'}.icon-arrow-down-bold-hexagon-outline:before{content:'\e639'}.icon-arrow-down-bold:before{content:'\e63a'}.icon-arrow-down:before{content:'\e63b'}.icon-arrow-expand:before{content:'\e63c'}.icon-arrow-left-bold-circle-outline:before{content:'\e63d'}.icon-arrow-left-bold-circle:before{content:'\e63e'}.icon-arrow-left-bold-hexagon-outline:before{content:'\e63f'}.icon-arrow-left-bold:before{content:'\e640'}.icon-arrow-left:before{content:'\e641'}.icon-arrow-right-bold-circle-outline:before{content:'\e642'}.icon-arrow-right-bold-circle:before{content:'\e643'}.icon-arrow-right-bold-hexagon-outline:before{content:'\e644'}.icon-arrow-right-bold:before{content:'\e645'}.icon-arrow-right:before{content:'\e646'}.icon-arrow-top-left:before{content:'\e647'}.icon-arrow-top-right:before{content:'\e648'}.icon-arrow-up-bold-circle-outline:before{content:'\e649'}.icon-arrow-up-bold-circle:before{content:'\e64a'}.icon-arrow-up-bold-hexagon-outline:before{content:'\e64b'}.icon-arrow-up-bold:before{content:'\e64c'}.icon-arrow-up:before{content:'\e64d'}.icon-at:before{content:'\e64e'}.icon-attachment:before{content:'\e64f'}.icon-audiobook:before{content:'\e650'}.icon-auto-fix:before{content:'\e651'}.icon-auto-upload:before{content:'\e652'}.icon-baby:before{content:'\e653'}.icon-backburger:before{content:'\e654'}.icon-backup-restore:before{content:'\e655'}.icon-bank:before{content:'\e656'}.icon-barcode:before{content:'\e657'}.icon-barley:before{content:'\e658'}.icon-barrel:before{content:'\e659'}.icon-basecamp:before{content:'\e65a'}.icon-basket-fill:before{content:'\e65b'}.icon-basket-unfill:before{content:'\e65c'}.icon-basket:before{content:'\e65d'}.icon-battery-10:before{content:'\e65e'}.icon-battery-20:before{content:'\e65f'}.icon-battery-30:before{content:'\e660'}.icon-battery-40:before{content:'\e661'}.icon-battery-50:before{content:'\e662'}.icon-battery-60:before{content:'\e663'}.icon-battery-70:before{content:'\e664'}.icon-battery-80:before{content:'\e665'}.icon-battery-90:before{content:'\e666'}.icon-battery-alert:before{content:'\e667'}.icon-battery-charging-20:before{content:'\e668'}.icon-battery-charging-30:before{content:'\e669'}.icon-battery-charging-40:before{content:'\e66a'}.icon-battery-charging-60:before{content:'\e66b'}.icon-battery-charging-80:before{content:'\e66c'}.icon-battery-charging-90:before{content:'\e66d'}.icon-battery-charging-100:before{content:'\e66e'}.icon-battery-minus:before{content:'\e66f'}.icon-battery-negative:before{content:'\e670'}.icon-battery-outline:before{content:'\e671'}.icon-battery-plus:before{content:'\e672'}.icon-battery-positive:before{content:'\e673'}.icon-battery-standard:before{content:'\e674'}.icon-battery-unknown:before{content:'\e675'}.icon-battery:before{content:'\e676'}.icon-beach:before{content:'\e677'}.icon-beaker-empty-outline:before{content:'\e678'}.icon-beaker-empty:before{content:'\e679'}.icon-beaker-outline:before{content:'\e67a'}.icon-beaker:before{content:'\e67b'}.icon-beats:before{content:'\e67c'}.icon-beer:before{content:'\e67d'}.icon-behance:before{content:'\e67e'}.icon-bell-off:before{content:'\e67f'}.icon-bell-outline:before{content:'\e680'}.icon-bell-ring-outline:before{content:'\e681'}.icon-bell-ring:before{content:'\e682'}.icon-bell-sleep:before{content:'\e683'}.icon-bell:before{content:'\e684'}.icon-beta:before{content:'\e685'}.icon-bike:before{content:'\e686'}.icon-bing:before{content:'\e687'}.icon-binoculars:before{content:'\e688'}.icon-bio:before{content:'\e689'}.icon-bitbucket:before{content:'\e68a'}.icon-black-mesa:before{content:'\e68b'}.icon-blackberry:before{content:'\e68c'}.icon-blinds:before{content:'\e68d'}.icon-block-helper:before{content:'\e68e'}.icon-blogger:before{content:'\e68f'}.icon-bluetooth-audio:before{content:'\e690'}.icon-bluetooth-connect:before{content:'\e691'}.icon-bluetooth-settings:before{content:'\e692'}.icon-bluetooth-transfer:before{content:'\e693'}.icon-bluetooth:before{content:'\e694'}.icon-blur-linear:before{content:'\e695'}.icon-blur-off:before{content:'\e696'}.icon-blur-radial:before{content:'\e697'}.icon-blur:before{content:'\e698'}.icon-bone:before{content:'\e699'}.icon-book-multiple-variant:before{content:'\e69a'}.icon-book-multiple:before{content:'\e69b'}.icon-book-open:before{content:'\e69c'}.icon-book-variant:before{content:'\e69d'}.icon-book:before{content:'\e69e'}.icon-bookmark-check:before{content:'\e69f'}.icon-bookmark-music:before{content:'\e6a0'}.icon-bookmark-outline-plus:before{content:'\e6a1'}.icon-bookmark-outline:before{content:'\e6a2'}.icon-bookmark-plus:before{content:'\e6a3'}.icon-bookmark-remove:before{content:'\e6a4'}.icon-bookmark:before{content:'\e6a5'}.icon-border-all:before{content:'\e6a6'}.icon-border-bottom:before{content:'\e6a7'}.icon-border-color:before{content:'\e6a8'}.icon-border-horizontal:before{content:'\e6a9'}.icon-border-inside:before{content:'\e6aa'}.icon-border-left:before{content:'\e6ab'}.icon-border-none:before{content:'\e6ac'}.icon-border-outside:before{content:'\e6ad'}.icon-border-right:before{content:'\e6ae'}.icon-border-top:before{content:'\e6af'}.icon-border-vertical:before{content:'\e6b0'}.icon-bowling:before{content:'\e6b1'}.icon-box-download:before{content:'\e6b2'}.icon-box-upload:before{content:'\e6b3'}.icon-box:before{content:'\e6b4'}.icon-briefcase-checked:before{content:'\e6b5'}.icon-briefcase-download:before{content:'\e6b6'}.icon-briefcase-upload:before{content:'\e6b7'}.icon-briefcase:before{content:'\e6b8'}.icon-brightness-1:before{content:'\e6b9'}.icon-brightness-2:before{content:'\e6ba'}.icon-brightness-3:before{content:'\e6bb'}.icon-brightness-4:before{content:'\e6bc'}.icon-brightness-5:before{content:'\e6bd'}.icon-brightness-6:before{content:'\e6be'}.icon-brightness-7:before{content:'\e6bf'}.icon-brightness-auto:before{content:'\e6c0'}.icon-brightness:before{content:'\e6c1'}.icon-broom:before{content:'\e6c2'}.icon-brush:before{content:'\e6c3'}.icon-bug:before{content:'\e6c4'}.icon-bulletin-board:before{content:'\e6c5'}.icon-bullhorn:before{content:'\e6c6'}.icon-bus:before{content:'\e6c7'}.icon-cake-variant:before{content:'\e6c8'}.icon-cake:before{content:'\e6c9'}.icon-calculator:before{content:'\e6ca'}.icon-calendar-blank:before{content:'\e6cb'}.icon-calendar-check-multiple:before{content:'\e6cc'}.icon-calendar-check:before{content:'\e6cd'}.icon-calendar-clock:before{content:'\e6ce'}.icon-calendar-multiple:before{content:'\e6cf'}.icon-calendar-plus:before{content:'\e6d0'}.icon-calendar-remove:before{content:'\e6d1'}.icon-calendar-select:before{content:'\e6d2'}.icon-calendar-text:before{content:'\e6d3'}.icon-calendar-today:before{content:'\e6d4'}.icon-calendar:before{content:'\e6d5'}.icon-camcorder-box-off:before{content:'\e6d6'}.icon-camcorder-box:before{content:'\e6d7'}.icon-camcorder-off:before{content:'\e6d8'}.icon-camcorder:before{content:'\e6d9'}.icon-camera-front-variant:before{content:'\e6da'}.icon-camera-front:before{content:'\e6db'}.icon-camera-iris:before{content:'\e6dc'}.icon-camera-party-mode:before{content:'\e6dd'}.icon-camera-rear-variant:before{content:'\e6de'}.icon-camera-rear:before{content:'\e6df'}.icon-camera-switch:before{content:'\e6e0'}.icon-camera-timer:before{content:'\e6e1'}.icon-camera:before{content:'\e6e2'}.icon-cancel:before{content:'\e6e3'}.icon-candycane:before{content:'\e6e4'}.icon-car-wash:before{content:'\e6e5'}.icon-car:before{content:'\e6e6'}.icon-carrot:before{content:'\e6e7'}.icon-cart-outline:before{content:'\e6e8'}.icon-cart:before{content:'\e6e9'}.icon-cash-100:before{content:'\e6ea'}.icon-cash-multiple:before{content:'\e6eb'}.icon-cash-usd:before{content:'\e6ec'}.icon-cash:before{content:'\e6ed'}.icon-cast-connected:before{content:'\e6ee'}.icon-cast:before{content:'\e6ef'}.icon-castle:before{content:'\e6f0'}.icon-cat:before{content:'\e6f1'}.icon-cellphone-android:before{content:'\e6f2'}.icon-cellphone-dock:before{content:'\e6f3'}.icon-cellphone-iphone:before{content:'\e6f4'}.icon-cellphone-link-off:before{content:'\e6f5'}.icon-cellphone-link:before{content:'\e6f6'}.icon-cellphone-settings:before{content:'\e6f7'}.icon-cellphone:before{content:'\e6f8'}.icon-chair-school:before{content:'\e6f9'}.icon-chart-arc:before{content:'\e6fa'}.icon-chart-areaspline:before{content:'\e6fb'}.icon-chart-bar:before{content:'\e6fc'}.icon-chart-histogram:before{content:'\e6fd'}.icon-chart-line:before{content:'\e6fe'}.icon-chart-pie:before{content:'\e6ff'}.icon-check-all:before{content:'\e700'}.icon-check-bookmark:before{content:'\e701'}.icon-check-circle:before{content:'\e702'}.icon-check:before{content:'\e703'}.icon-checkbox-blank-circle-outline:before{content:'\e704'}.icon-checkbox-blank-circle:before{content:'\e705'}.icon-checkbox-blank-outline:before{content:'\e706'}.icon-checkbox-blank:before{content:'\e707'}.icon-checkbox-marked-circle-outline:before{content:'\e708'}.icon-checkbox-marked-circle:before{content:'\e709'}.icon-checkbox-marked-outline:before{content:'\e70a'}.icon-checkbox-marked:before{content:'\e70b'}.icon-checkbox-multiple-blank-outline:before{content:'\e70c'}.icon-checkbox-multiple-blank:before{content:'\e70d'}.icon-checkbox-multiple-marked-outline:before{content:'\e70e'}.icon-checkbox-multiple-marked:before{content:'\e70f'}.icon-checkerboard:before{content:'\e710'}.icon-chevron-double-down:before{content:'\e711'}.icon-chevron-double-left:before{content:'\e712'}.icon-chevron-double-right:before{content:'\e713'}.icon-chevron-double-up:before{content:'\e714'}.icon-chevron-down:before{content:'\e715'}.icon-chevron-left:before{content:'\e716'}.icon-chevron-right:before{content:'\e717'}.icon-chevron-up:before{content:'\e718'}.icon-church:before{content:'\e719'}.icon-cisco-webex:before{content:'\e71a'}.icon-city:before{content:'\e71b'}.icon-clapperboard:before{content:'\e71c'}.icon-clipboard-account:before{content:'\e71d'}.icon-clipboard-alert:before{content:'\e71e'}.icon-clipboard-arrow-down:before{content:'\e71f'}.icon-clipboard-arrow-left:before{content:'\e720'}.icon-clipboard-check:before{content:'\e721'}.icon-clipboard-outline:before{content:'\e722'}.icon-clipboard-text:before{content:'\e723'}.icon-clipboard:before{content:'\e724'}.icon-clippy:before{content:'\e725'}.icon-clock-fast:before{content:'\e726'}.icon-clock:before{content:'\e727'}.icon-close-circle-outline:before{content:'\e728'}.icon-close-circle:before{content:'\e729'}.icon-close-network:before{content:'\e72a'}.icon-close:before{content:'\e72b'}.icon-closed-caption:before{content:'\e72c'}.icon-cloud-check:before{content:'\e72d'}.icon-cloud-circle:before{content:'\e72e'}.icon-cloud-download:before{content:'\e72f'}.icon-cloud-outline-off:before{content:'\e730'}.icon-cloud-outline:before{content:'\e731'}.icon-cloud-upload:before{content:'\e732'}.icon-cloud:before{content:'\e733'}.icon-code-array:before{content:'\e734'}.icon-code-braces:before{content:'\e735'}.icon-code-equal:before{content:'\e736'}.icon-code-greater-than-or-equal:before{content:'\e737'}.icon-code-greater-than:before{content:'\e738'}.icon-code-less-than-or-equal:before{content:'\e739'}.icon-code-less-than:before{content:'\e73a'}.icon-code-not-equal-variant:before{content:'\e73b'}.icon-code-not-equal:before{content:'\e73c'}.icon-code-string:before{content:'\e73d'}.icon-code-tags:before{content:'\e73e'}.icon-codepen:before{content:'\e73f'}.icon-coffee-to-go:before{content:'\e740'}.icon-coffee:before{content:'\e741'}.icon-cog-box:before{content:'\e742'}.icon-cog:before{content:'\e743'}.icon-coin:before{content:'\e744'}.icon-color-helper:before{content:'\e745'}.icon-comment-account-outline:before{content:'\e746'}.icon-comment-account:before{content:'\e747'}.icon-comment-alert-outline:before{content:'\e748'}.icon-comment-alert:before{content:'\e749'}.icon-comment-check-outline:before{content:'\e74a'}.icon-comment-check:before{content:'\e74b'}.icon-comment-multipe-outline:before{content:'\e74c'}.icon-comment-outline:before{content:'\e74d'}.icon-comment-plus-outline:before{content:'\e74e'}.icon-comment-processing-outline:before{content:'\e74f'}.icon-comment-processing:before{content:'\e750'}.icon-comment-remove-outline:before{content:'\e751'}.icon-comment-text-outline:before{content:'\e752'}.icon-comment-text:before{content:'\e753'}.icon-comment:before{content:'\e754'}.icon-compare:before{content:'\e755'}.icon-compass-outline:before{content:'\e756'}.icon-compass:before{content:'\e757'}.icon-console:before{content:'\e758'}.icon-content-copy:before{content:'\e759'}.icon-content-cut:before{content:'\e75a'}.icon-content-duplicate:before{content:'\e75b'}.icon-content-paste:before{content:'\e75c'}.icon-content-save-all:before{content:'\e75d'}.icon-content-save:before{content:'\e75e'}.icon-contrast-box:before{content:'\e75f'}.icon-contrast-circle:before{content:'\e760'}.icon-contrast:before{content:'\e761'}.icon-controller-xbox:before{content:'\e762'}.icon-cow:before{content:'\e763'}.icon-credit-card-multiple:before{content:'\e764'}.icon-credit-card:before{content:'\e765'}.icon-crop-free:before{content:'\e766'}.icon-crop-landscape:before{content:'\e767'}.icon-crop-portrait:before{content:'\e768'}.icon-crop-square:before{content:'\e769'}.icon-crop:before{content:'\e76a'}.icon-crosshairs-gps:before{content:'\e76b'}.icon-crosshairs:before{content:'\e76c'}.icon-crown:before{content:'\e76d'}.icon-cube-outline:before{content:'\e76e'}.icon-cube-unfolded:before{content:'\e76f'}.icon-cube:before{content:'\e770'}.icon-cup-water:before{content:'\e771'}.icon-cup:before{content:'\e772'}.icon-currency-btc:before{content:'\e773'}.icon-currency-eur:before{content:'\e774'}.icon-currency-gbp:before{content:'\e775'}.icon-currency-inr:before{content:'\e776'}.icon-currency-rub:before{content:'\e777'}.icon-currency-try:before{content:'\e778'}.icon-currency-usd:before{content:'\e779'}.icon-cursor-default-outline:before{content:'\e77a'}.icon-cursor-default:before{content:'\e77b'}.icon-cursor-move:before{content:'\e77c'}.icon-cursor-pointer:before{content:'\e77d'}.icon-data:before{content:'\e77e'}.icon-debug-step-into:before{content:'\e77f'}.icon-debug-step-out:before{content:'\e780'}.icon-debug-step-over:before{content:'\e781'}.icon-decimal-decrease:before{content:'\e782'}.icon-decimal-increase:before{content:'\e783'}.icon-delete-variant:before{content:'\e784'}.icon-delete:before{content:'\e785'}.icon-deskphone:before{content:'\e786'}.icon-desktop-mac:before{content:'\e787'}.icon-desktop-tower:before{content:'\e788'}.icon-details:before{content:'\e789'}.icon-deviantart:before{content:'\e78a'}.icon-diamond:before{content:'\e78b'}.icon-dice-1:before{content:'\e78c'}.icon-dice-2:before{content:'\e78d'}.icon-dice-3:before{content:'\e78e'}.icon-dice-4:before{content:'\e78f'}.icon-dice-5:before{content:'\e790'}.icon-dice-6:before{content:'\e791'}.icon-dice:before{content:'\e792'}.icon-directions:before{content:'\e793'}.icon-disk-alert:before{content:'\e794'}.icon-disqus-outline:before{content:'\e795'}.icon-disqus:before{content:'\e796'}.icon-division-box:before{content:'\e797'}.icon-division:before{content:'\e798'}.icon-dns:before{content:'\e799'}.icon-document:before{content:'\e79a'}.icon-domain:before{content:'\e79b'}.icon-dots-horizontal:before{content:'\e79c'}.icon-dots-vertical:before{content:'\e79d'}.icon-download:before{content:'\e79e'}.icon-drag-horizontal:before{content:'\e79f'}.icon-drag-vertical:before{content:'\e7a0'}.icon-drag:before{content:'\e7a1'}.icon-drawing-box:before{content:'\e7a2'}.icon-drawing:before{content:'\e7a3'}.icon-dribbble-box:before{content:'\e7a4'}.icon-dribbble:before{content:'\e7a5'}.icon-drone:before{content:'\e7a6'}.icon-dropbox:before{content:'\e7a7'}.icon-drupal:before{content:'\e7a8'}.icon-duck:before{content:'\e7a9'}.icon-dumbbell:before{content:'\e7aa'}.icon-earth-off:before{content:'\e7ab'}.icon-earth:before{content:'\e7ac'}.icon-ebay:before{content:'\e7ad'}.icon-edge:before{content:'\e7ae'}.icon-eject:before{content:'\e7af'}.icon-elevation-decline:before{content:'\e7b0'}.icon-elevation-rise:before{content:'\e7b1'}.icon-elevator:before{content:'\e7b2'}.icon-email-open:before{content:'\e7b3'}.icon-email-secure:before{content:'\e7b4'}.icon-email:before{content:'\e7b5'}.icon-emoticon-cool:before{content:'\e7b6'}.icon-emoticon-devil:before{content:'\e7b7'}.icon-emoticon-happy:before{content:'\e7b8'}.icon-emoticon-neutral:before{content:'\e7b9'}.icon-emoticon-poop:before{content:'\e7ba'}.icon-emoticon-sad:before{content:'\e7bb'}.icon-emoticon-tongue:before{content:'\e7bc'}.icon-emoticon:before{content:'\e7bd'}.icon-engine-outline:before{content:'\e7be'}.icon-engine:before{content:'\e7bf'}.icon-equal-box:before{content:'\e7c0'}.icon-equal:before{content:'\e7c1'}.icon-eraser:before{content:'\e7c2'}.icon-escalator:before{content:'\e7c3'}.icon-etsy:before{content:'\e7c4'}.icon-evernote:before{content:'\e7c5'}.icon-exclamation:before{content:'\e7c6'}.icon-exit-to-app:before{content:'\e7c7'}.icon-export:before{content:'\e7c8'}.icon-eye-off:before{content:'\e7c9'}.icon-eye:before{content:'\e7ca'}.icon-eyedropper-variant:before{content:'\e7cb'}.icon-eyedropper:before{content:'\e7cc'}.icon-facebook-box:before{content:'\e7cd'}.icon-facebook:before{content:'\e7ce'}.icon-factory:before{content:'\e7cf'}.icon-fan:before{content:'\e7d0'}.icon-fast-forward:before{content:'\e7d1'}.icon-ferry:before{content:'\e7d2'}.icon-file-cloud:before{content:'\e7d3'}.icon-file-delimited:before{content:'\e7d4'}.icon-file-document-box:before{content:'\e7d5'}.icon-file-document:before{content:'\e7d6'}.icon-file-excel-box:before{content:'\e7d7'}.icon-file-excel:before{content:'\e7d8'}.icon-file-find:before{content:'\e7d9'}.icon-file-hidden:before{content:'\e7da'}.icon-file-image-box:before{content:'\e7db'}.icon-file-image:before{content:'\e7dc'}.icon-file-multiple:before{content:'\e7dd'}.icon-file-music:before{content:'\e7de'}.icon-file-outline:before{content:'\e7df'}.icon-file-pdf-box:before{content:'\e7e0'}.icon-file-pdf:before{content:'\e7e1'}.icon-file-powerpoint-box:before{content:'\e7e2'}.icon-file-powerpoint:before{content:'\e7e3'}.icon-file-presentation-box:before{content:'\e7e4'}.icon-file-video:before{content:'\e7e5'}.icon-file-word-box:before{content:'\e7e6'}.icon-file-word:before{content:'\e7e7'}.icon-file-xml:before{content:'\e7e8'}.icon-file:before{content:'\e7e9'}.icon-fill:before{content:'\e7ea'}.icon-film:before{content:'\e7eb'}.icon-filmstrip-off:before{content:'\e7ec'}.icon-filmstrip:before{content:'\e7ed'}.icon-filter-outline:before{content:'\e7ee'}.icon-filter-remove-outline:before{content:'\e7ef'}.icon-filter-remove:before{content:'\e7f0'}.icon-filter-variant:before{content:'\e7f1'}.icon-filter:before{content:'\e7f2'}.icon-fire:before{content:'\e7f3'}.icon-fish:before{content:'\e7f4'}.icon-flag-checkered-variant:before{content:'\e7f5'}.icon-flag-checkered:before{content:'\e7f6'}.icon-flag-outline-variant:before{content:'\e7f7'}.icon-flag-outline:before{content:'\e7f8'}.icon-flag-triangle:before{content:'\e7f9'}.icon-flag-variant:before{content:'\e7fa'}.icon-flag:before{content:'\e7fb'}.icon-flash-auto:before{content:'\e7fc'}.icon-flash-off:before{content:'\e7fd'}.icon-flash:before{content:'\e7fe'}.icon-flashlight-off:before{content:'\e7ff'}.icon-flashlight:before{content:'\e800'}.icon-flattr:before{content:'\e801'}.icon-flickr-after:before{content:'\e802'}.icon-flickr-before:before{content:'\e803'}.icon-flip-to-back:before{content:'\e804'}.icon-flip-to-front:before{content:'\e805'}.icon-floppy:before{content:'\e806'}.icon-flower:before{content:'\e807'}.icon-folder-account:before{content:'\e808'}.icon-folder-download:before{content:'\e809'}.icon-folder-google-drive:before{content:'\e80a'}.icon-folder-image:before{content:'\e80b'}.icon-folder-lock-open:before{content:'\e80c'}.icon-folder-lock:before{content:'\e80d'}.icon-folder-move:before{content:'\e80e'}.icon-folder-multiple-image:before{content:'\e80f'}.icon-folder-multiple-outline:before{content:'\e810'}.icon-folder-multiple:before{content:'\e811'}.icon-folder-outline-lock:before{content:'\e812'}.icon-folder-outline:before{content:'\e813'}.icon-folder-plus:before{content:'\e814'}.icon-folder-remove:before{content:'\e815'}.icon-folder-upload:before{content:'\e816'}.icon-folder:before{content:'\e817'}.icon-food-apple:before{content:'\e818'}.icon-food-variant:before{content:'\e819'}.icon-food:before{content:'\e81a'}.icon-football-helmet:before{content:'\e81b'}.icon-football:before{content:'\e81c'}.icon-format-align-center:before{content:'\e81d'}.icon-format-align-justify:before{content:'\e81e'}.icon-format-align-left:before{content:'\e81f'}.icon-format-align-right:before{content:'\e820'}.icon-format-bold:before{content:'\e821'}.icon-format-clear:before{content:'\e822'}.icon-format-color-fill:before{content:'\e823'}.icon-format-color:before{content:'\e824'}.icon-format-float-center:before{content:'\e825'}.icon-format-float-left:before{content:'\e826'}.icon-format-float-none:before{content:'\e827'}.icon-format-float-right:before{content:'\e828'}.icon-format-header-1:before{content:'\e829'}.icon-format-header-2:before{content:'\e82a'}.icon-format-header-3:before{content:'\e82b'}.icon-format-header-4:before{content:'\e82c'}.icon-format-header-5:before{content:'\e82d'}.icon-format-header-6:before{content:'\e82e'}.icon-format-header-decrease:before{content:'\e82f'}.icon-format-header-down:before{content:'\e830'}.icon-format-header-equal:before{content:'\e831'}.icon-format-header-increase:before{content:'\e832'}.icon-format-header-pound:before{content:'\e833'}.icon-format-header-up:before{content:'\e834'}.icon-format-indent-decrease:before{content:'\e835'}.icon-format-indent-increase:before{content:'\e836'}.icon-format-italic:before{content:'\e837'}.icon-format-line-spacing:before{content:'\e838'}.icon-format-list-bulleted:before{content:'\e839'}.icon-format-list-numbers:before{content:'\e83a'}.icon-format-object-inline:before{content:'\e83b'}.icon-format-object-square:before{content:'\e83c'}.icon-format-object-tight:before{content:'\e83d'}.icon-format-object-top-bottom:before{content:'\e83e'}.icon-format-paint:before{content:'\e83f'}.icon-format-paragraph:before{content:'\e840'}.icon-format-quote:before{content:'\e841'}.icon-format-size:before{content:'\e842'}.icon-format-strikethrough:before{content:'\e843'}.icon-format-subscript:before{content:'\e844'}.icon-format-superscript:before{content:'\e845'}.icon-format-text:before{content:'\e846'}.icon-format-textdirection-l-to-r:before{content:'\e847'}.icon-format-textdirection-r-to-l:before{content:'\e848'}.icon-format-underline:before{content:'\e849'}.icon-forum:before{content:'\e84a'}.icon-forward:before{content:'\e84b'}.icon-foursquare:before{content:'\e84c'}.icon-fridge:before{content:'\e84d'}.icon-fullscreen-exit:before{content:'\e84e'}.icon-fullscreen:before{content:'\e84f'}.icon-function:before{content:'\e850'}.icon-gamepad-variant:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-gas-station:before{content:'\e853'}.icon-gavel:before{content:'\e854'}.icon-gender-female:before{content:'\e855'}.icon-gender-male-female:before{content:'\e856'}.icon-gender-male:before{content:'\e857'}.icon-gender-transgender:before{content:'\e858'}.icon-gift:before{content:'\e859'}.icon-git:before{content:'\e85a'}.icon-github-box:before{content:'\e85b'}.icon-github:before{content:'\e85c'}.icon-glass-flute:before{content:'\e85d'}.icon-glass-mug:before{content:'\e85e'}.icon-glass-stange:before{content:'\e85f'}.icon-glass-tulip:before{content:'\e860'}.icon-glasses:before{content:'\e861'}.icon-gmail:before{content:'\e862'}.icon-google-chrome:before{content:'\e863'}.icon-google-circles-communities:before{content:'\e864'}.icon-google-circles-extended:before{content:'\e865'}.icon-google-circles-invite:before{content:'\e866'}.icon-google-circles:before{content:'\e867'}.icon-google-controller-off:before{content:'\e868'}.icon-google-controller:before{content:'\e869'}.icon-google-drive:before{content:'\e86a'}.icon-google-earth:before{content:'\e86b'}.icon-google-glass:before{content:'\e86c'}.icon-google-maps:before{content:'\e86d'}.icon-google-pages:before{content:'\e86e'}.icon-google-play:before{content:'\e86f'}.icon-google-plus-box:before{content:'\e870'}.icon-google-plus:before{content:'\e871'}.icon-google:before{content:'\e872'}.icon-grid-off:before{content:'\e873'}.icon-grid:before{content:'\e874'}.icon-group:before{content:'\e875'}.icon-hand-pointing-right:before{content:'\e876'}.icon-hanger:before{content:'\e877'}.icon-hangouts:before{content:'\e878'}.icon-harddisk:before{content:'\e879'}.icon-headphones-box:before{content:'\e87a'}.icon-headphones-dots:before{content:'\e87b'}.icon-headphones:before{content:'\e87c'}.icon-headset-dock:before{content:'\e87d'}.icon-headset-off:before{content:'\e87e'}.icon-headset:before{content:'\e87f'}.icon-heart-box-outline:before{content:'\e880'}.icon-heart-box:before{content:'\e881'}.icon-heart-broken:before{content:'\e882'}.icon-heart-outline:before{content:'\e883'}.icon-heart:before{content:'\e884'}.icon-help-circle:before{content:'\e885'}.icon-help:before{content:'\e886'}.icon-hexagon-outline:before{content:'\e887'}.icon-hexagon:before{content:'\e888'}.icon-history:before{content:'\e889'}.icon-hololens:before{content:'\e88a'}.icon-home-modern:before{content:'\e88b'}.icon-home-variant:before{content:'\e88c'}.icon-home:before{content:'\e88d'}.icon-hops:before{content:'\e88e'}.icon-hospital-building:before{content:'\e88f'}.icon-hospital-marker:before{content:'\e890'}.icon-hospital:before{content:'\e891'}.icon-hotel:before{content:'\e892'}.icon-houzz-box:before{content:'\e893'}.icon-human-child:before{content:'\e894'}.icon-human-male-female:before{content:'\e895'}.icon-human:before{content:'\e896'}.icon-image-album:before{content:'\e897'}.icon-image-area-close:before{content:'\e898'}.icon-image-area:before{content:'\e899'}.icon-image-broken:before{content:'\e89a'}.icon-image-filter-black-white:before{content:'\e89b'}.icon-image-filter-center-focus:before{content:'\e89c'}.icon-image-filter-drama:before{content:'\e89d'}.icon-image-filter-frames:before{content:'\e89e'}.icon-image-filter-hdr:before{content:'\e89f'}.icon-image-filter-none:before{content:'\e8a0'}.icon-image-filter-tilt-shift:before{content:'\e8a1'}.icon-image-filter-vintage:before{content:'\e8a2'}.icon-image-filter:before{content:'\e8a3'}.icon-image:before{content:'\e8a4'}.icon-import:before{content:'\e8a5'}.icon-inbox:before{content:'\e8a6'}.icon-indent:before{content:'\e8a7'}.icon-information-outline:before{content:'\e8a8'}.icon-information:before{content:'\e8a9'}.icon-instagram:before{content:'\e8aa'}.icon-instapaper:before{content:'\e8ab'}.icon-internet-explorer:before{content:'\e8ac'}.icon-invert-colors:before{content:'\e8ad'}.icon-jira:before{content:'\e8ae'}.icon-jsfiddle:before{content:'\e8af'}.icon-keg:before{content:'\e8b0'}.icon-key-change:before{content:'\e8b1'}.icon-key-minus:before{content:'\e8b2'}.icon-key-plus:before{content:'\e8b3'}.icon-key-remove:before{content:'\e8b4'}.icon-key-variant:before{content:'\e8b5'}.icon-key:before{content:'\e8b6'}.icon-keyboard-backspace:before{content:'\e8b7'}.icon-keyboard-caps:before{content:'\e8b8'}.icon-keyboard-close:before{content:'\e8b9'}.icon-keyboard-off:before{content:'\e8ba'}.icon-keyboard-return:before{content:'\e8bb'}.icon-keyboard-tab:before{content:'\e8bc'}.icon-keyboard-variant:before{content:'\e8bd'}.icon-keyboard:before{content:'\e8be'}.icon-label-outline:before{content:'\e8bf'}.icon-label:before{content:'\e8c0'}.icon-language-csharp:before{content:'\e8c1'}.icon-language-css3:before{content:'\e8c2'}.icon-language-html5:before{content:'\e8c3'}.icon-language-javascript:before{content:'\e8c4'}.icon-language-python-text:before{content:'\e8c5'}.icon-language-python:before{content:'\e8c6'}.icon-laptop-chromebook:before{content:'\e8c7'}.icon-laptop-mac:before{content:'\e8c8'}.icon-laptop-windows:before{content:'\e8c9'}.icon-laptop:before{content:'\e8ca'}.icon-lastfm:before{content:'\e8cb'}.icon-launch:before{content:'\e8cc'}.icon-layers-off:before{content:'\e8cd'}.icon-layers:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-library-books:before{content:'\e8d0'}.icon-library-music:before{content:'\e8d1'}.icon-library-plus:before{content:'\e8d2'}.icon-library:before{content:'\e8d3'}.icon-lightbulb-outline:before{content:'\e8d4'}.icon-lightbulb:before{content:'\e8d5'}.icon-link-off:before{content:'\e8d6'}.icon-link-variant-off:before{content:'\e8d7'}.icon-link-variant:before{content:'\e8d8'}.icon-link:before{content:'\e8d9'}.icon-linkedin-box:before{content:'\e8da'}.icon-linkedin:before{content:'\e8db'}.icon-linode:before{content:'\e8dc'}.icon-linux:before{content:'\e8dd'}.icon-lock-outline:before{content:'\e8de'}.icon-lock-unlocked-outline:before{content:'\e8df'}.icon-lock-unlocked:before{content:'\e8e0'}.icon-lock:before{content:'\e8e1'}.icon-login:before{content:'\e8e2'}.icon-logout:before{content:'\e8e3'}.icon-looks:before{content:'\e8e4'}.icon-loupe:before{content:'\e8e5'}.icon-lumx:before{content:'\e8e6'}.icon-magnet-on:before{content:'\e8e7'}.icon-magnet:before{content:'\e8e8'}.icon-magnify-minus:before{content:'\e8e9'}.icon-magnify-plus:before{content:'\e8ea'}.icon-magnify:before{content:'\e8eb'}.icon-mail-ru:before{content:'\e8ec'}.icon-map-marker-circle:before{content:'\e8ed'}.icon-map-marker-multiple:before{content:'\e8ee'}.icon-map-marker-off:before{content:'\e8ef'}.icon-map-marker-radius:before{content:'\e8f0'}.icon-map-marker:before{content:'\e8f1'}.icon-map:before{content:'\e8f2'}.icon-margin:before{content:'\e8f3'}.icon-markdown:before{content:'\e8f4'}.icon-marker-check:before{content:'\e8f5'}.icon-martini:before{content:'\e8f6'}.icon-material-ui:before{content:'\e8f7'}.icon-maxcdn:before{content:'\e8f8'}.icon-medium:before{content:'\e8f9'}.icon-memory:before{content:'\e8fa'}.icon-menu-down:before{content:'\e8fb'}.icon-menu-left:before{content:'\e8fc'}.icon-menu-right:before{content:'\e8fd'}.icon-menu-up:before{content:'\e8fe'}.icon-menu:before{content:'\e8ff'}.icon-message-alert:before{content:'\e900'}.icon-message-draw:before{content:'\e901'}.icon-message-image:before{content:'\e902'}.icon-message-processing:before{content:'\e903'}.icon-message-reply:before{content:'\e904'}.icon-message-text-outline:before{content:'\e905'}.icon-message-text:before{content:'\e906'}.icon-message-video:before{content:'\e907'}.icon-message:before{content:'\e908'}.icon-microphone-dots:before{content:'\e909'}.icon-microphone-off:before{content:'\e90a'}.icon-microphone-outline:before{content:'\e90b'}.icon-microphone-settings:before{content:'\e90c'}.icon-microphone-variant-off:before{content:'\e90d'}.icon-microphone-variant:before{content:'\e90e'}.icon-microphone:before{content:'\e90f'}.icon-minus-box:before{content:'\e910'}.icon-minus-circle-outline:before{content:'\e911'}.icon-minus-circle:before{content:'\e912'}.icon-minus-network:before{content:'\e913'}.icon-minus:before{content:'\e914'}.icon-monitor-multiple:before{content:'\e915'}.icon-monitor:before{content:'\e916'}.icon-more:before{content:'\e917'}.icon-mouse-off:before{content:'\e918'}.icon-mouse-variant-off:before{content:'\e919'}.icon-mouse-variant:before{content:'\e91a'}.icon-mouse:before{content:'\e91b'}.icon-movie:before{content:'\e91c'}.icon-multiplication-box:before{content:'\e91d'}.icon-multiplication:before{content:'\e91e'}.icon-music-box-outline:before{content:'\e91f'}.icon-music-box:before{content:'\e920'}.icon-music-circle:before{content:'\e921'}.icon-music-note-eighth:before{content:'\e922'}.icon-music-note-half:before{content:'\e923'}.icon-music-note-off:before{content:'\e924'}.icon-music-note-quarter:before{content:'\e925'}.icon-music-note-sixteenth:before{content:'\e926'}.icon-music-note-whole:before{content:'\e927'}.icon-music-note:before{content:'\e928'}.icon-nature-people:before{content:'\e929'}.icon-nature:before{content:'\e92a'}.icon-navigation:before{content:'\e92b'}.icon-needle:before{content:'\e92c'}.icon-nest-protect:before{content:'\e92d'}.icon-nest-thermostat:before{content:'\e92e'}.icon-newspaper:before{content:'\e92f'}.icon-nfc-tap:before{content:'\e930'}.icon-nfc-variant:before{content:'\e931'}.icon-nfc:before{content:'\e932'}.icon-no:before{content:'\e933'}.icon-not-equal:before{content:'\e934'}.icon-note-outline:before{content:'\e935'}.icon-note-text:before{content:'\e936'}.icon-note:before{content:'\e937'}.icon-numeric-0-box-multiple-outline:before{content:'\e938'}.icon-numeric-0-box-outline:before{content:'\e939'}.icon-numeric-0-box:before{content:'\e93a'}.icon-numeric-1-box-multiple-outline:before{content:'\e93b'}.icon-numeric-1-box-outline:before{content:'\e93c'}.icon-numeric-1-box:before{content:'\e93d'}.icon-numeric-2-box-multiple-outline:before{content:'\e93e'}.icon-numeric-2-box-outline:before{content:'\e93f'}.icon-numeric-2-box:before{content:'\e940'}.icon-numeric-3-box-multiple-outline:before{content:'\e941'}.icon-numeric-3-box-outline:before{content:'\e942'}.icon-numeric-3-box:before{content:'\e943'}.icon-numeric-4-box-multiple-outline:before{content:'\e944'}.icon-numeric-4-box-outline:before{content:'\e945'}.icon-numeric-4-box:before{content:'\e946'}.icon-numeric-5-box-multiple-outline:before{content:'\e947'}.icon-numeric-5-box-outline:before{content:'\e948'}.icon-numeric-5-box:before{content:'\e949'}.icon-numeric-6-box-multiple-outline:before{content:'\e94a'}.icon-numeric-6-box-outline:before{content:'\e94b'}.icon-numeric-6-box:before{content:'\e94c'}.icon-numeric-7-box-multiple-outline:before{content:'\e94d'}.icon-numeric-7-box-outline:before{content:'\e94e'}.icon-numeric-7-box:before{content:'\e94f'}.icon-numeric-8-box-multiple-outline:before{content:'\e950'}.icon-numeric-8-box-outline:before{content:'\e951'}.icon-numeric-8-box:before{content:'\e952'}.icon-numeric-9-box-multiple-outline:before{content:'\e953'}.icon-numeric-9-box-outline:before{content:'\e954'}.icon-numeric-9-box:before{content:'\e955'}.icon-numeric-9-plus-box-multiple-outline:before{content:'\e956'}.icon-numeric-9-plus-box-outline:before{content:'\e957'}.icon-numeric-9-plus-box:before{content:'\e958'}.icon-numeric:before{content:'\e959'}.icon-nutriton:before{content:'\e95a'}.icon-odnoklassniki:before{content:'\e95b'}.icon-office:before{content:'\e95c'}.icon-oil:before{content:'\e95d'}.icon-omega:before{content:'\e95e'}.icon-onedrive:before{content:'\e95f'}.icon-open-in-app:before{content:'\e960'}.icon-open-in-new:before{content:'\e961'}.icon-ornament-variant:before{content:'\e962'}.icon-ornament:before{content:'\e963'}.icon-outbox:before{content:'\e964'}.icon-outdent:before{content:'\e965'}.icon-owl:before{content:'\e966'}.icon-package-down:before{content:'\e967'}.icon-package-up:before{content:'\e968'}.icon-package-variant-closed:before{content:'\e969'}.icon-package-variant:before{content:'\e96a'}.icon-package:before{content:'\e96b'}.icon-palette-advanced:before{content:'\e96c'}.icon-palette:before{content:'\e96d'}.icon-panda:before{content:'\e96e'}.icon-pandora:before{content:'\e96f'}.icon-panorama-fisheye:before{content:'\e970'}.icon-panorama-horizontal:before{content:'\e971'}.icon-panorama-vertical:before{content:'\e972'}.icon-panorama-wide-angle:before{content:'\e973'}.icon-panorama:before{content:'\e974'}.icon-paper-cut-vertical:before{content:'\e975'}.icon-paperclip:before{content:'\e976'}.icon-parking:before{content:'\e977'}.icon-pause-circle-outline:before{content:'\e978'}.icon-pause-circle:before{content:'\e979'}.icon-pause-octagon-outline:before{content:'\e97a'}.icon-pause-octagon:before{content:'\e97b'}.icon-pause:before{content:'\e97c'}.icon-paw:before{content:'\e97d'}.icon-pen:before{content:'\e97e'}.icon-pencil-box-outline:before{content:'\e97f'}.icon-pencil-box:before{content:'\e980'}.icon-pencil:before{content:'\e981'}.icon-people:before{content:'\e982'}.icon-percent:before{content:'\e983'}.icon-person-box:before{content:'\e984'}.icon-person-minus:before{content:'\e985'}.icon-person-plus:before{content:'\e986'}.icon-pharmacy:before{content:'\e987'}.icon-phone-bluetooth:before{content:'\e988'}.icon-phone-dots:before{content:'\e989'}.icon-phone-forward:before{content:'\e98a'}.icon-phone-hangup:before{content:'\e98b'}.icon-phone-in-talk:before{content:'\e98c'}.icon-phone-incoming:before{content:'\e98d'}.icon-phone-locked:before{content:'\e98e'}.icon-phone-log:before{content:'\e98f'}.icon-phone-missed:before{content:'\e990'}.icon-phone-outgoing:before{content:'\e991'}.icon-phone-paused:before{content:'\e992'}.icon-phone:before{content:'\e993'}.icon-picture:before{content:'\e994'}.icon-pig:before{content:'\e995'}.icon-pill:before{content:'\e996'}.icon-pin-off:before{content:'\e997'}.icon-pin:before{content:'\e998'}.icon-pine-tree-box:before{content:'\e999'}.icon-pine-tree:before{content:'\e99a'}.icon-pinterest-box:before{content:'\e99b'}.icon-pinterest:before{content:'\e99c'}.icon-pizza:before{content:'\e99d'}.icon-plane:before{content:'\e99e'}.icon-play-box-outline:before{content:'\e99f'}.icon-play-circle-outline:before{content:'\e9a0'}.icon-play-circle:before{content:'\e9a1'}.icon-play:before{content:'\e9a2'}.icon-playlist-minus:before{content:'\e9a3'}.icon-playlist-plus:before{content:'\e9a4'}.icon-playstation:before{content:'\e9a5'}.icon-plus-box:before{content:'\e9a6'}.icon-plus-circle-outline:before{content:'\e9a7'}.icon-plus-circle:before{content:'\e9a8'}.icon-plus-network:before{content:'\e9a9'}.icon-plus-one:before{content:'\e9aa'}.icon-plus:before{content:'\e9ab'}.icon-pocket:before{content:'\e9ac'}.icon-poll-box:before{content:'\e9ad'}.icon-poll:before{content:'\e9ae'}.icon-polymer:before{content:'\e9af'}.icon-popcorn:before{content:'\e9b0'}.icon-pound-box:before{content:'\e9b1'}.icon-pound:before{content:'\e9b2'}.icon-power-settings:before{content:'\e9b3'}.icon-power-socket:before{content:'\e9b4'}.icon-power:before{content:'\e9b5'}.icon-presentation-play:before{content:'\e9b6'}.icon-presentation:before{content:'\e9b7'}.icon-printer-3d:before{content:'\e9b8'}.icon-printer:before{content:'\e9b9'}.icon-pulse:before{content:'\e9ba'}.icon-puzzle:before{content:'\e9bb'}.icon-qrcode:before{content:'\e9bc'}.icon-quadcopter:before{content:'\e9bd'}.icon-quality-high:before{content:'\e9be'}.icon-question-mark-circle:before{content:'\e9bf'}.icon-quick-reply:before{content:'\e9c0'}.icon-quicktime:before{content:'\e9c1'}.icon-rabbit:before{content:'\e9c2'}.icon-radiator:before{content:'\e9c3'}.icon-radio-tower:before{content:'\e9c4'}.icon-radio:before{content:'\e9c5'}.icon-radioactive:before{content:'\e9c6'}.icon-radiobox-blank:before{content:'\e9c7'}.icon-radiobox-marked:before{content:'\e9c8'}.icon-raspberrypi:before{content:'\e9c9'}.icon-rdio:before{content:'\e9ca'}.icon-read:before{content:'\e9cb'}.icon-readability:before{content:'\e9cc'}.icon-receipt:before{content:'\e9cd'}.icon-recycle:before{content:'\e9ce'}.icon-reddit:before{content:'\e9cf'}.icon-redo-variant:before{content:'\e9d0'}.icon-redo:before{content:'\e9d1'}.icon-refresh:before{content:'\e9d2'}.icon-relative-scale:before{content:'\e9d3'}.icon-reload:before{content:'\e9d4'}.icon-remote:before{content:'\e9d5'}.icon-rename-box:before{content:'\e9d6'}.icon-repeat-off:before{content:'\e9d7'}.icon-repeat-once:before{content:'\e9d8'}.icon-repeat:before{content:'\e9d9'}.icon-replay:before{content:'\e9da'}.icon-reply-all:before{content:'\e9db'}.icon-reply:before{content:'\e9dc'}.icon-reproduction:before{content:'\e9dd'}.icon-resize-bottom-right:before{content:'\e9de'}.icon-responsive:before{content:'\e9df'}.icon-restore:before{content:'\e9e0'}.icon-rewind:before{content:'\e9e1'}.icon-ribbon:before{content:'\e9e2'}.icon-road:before{content:'\e9e3'}.icon-rocket:before{content:'\e9e4'}.icon-rotate-3d:before{content:'\e9e5'}.icon-rotate-left-variant:before{content:'\e9e6'}.icon-rotate-left:before{content:'\e9e7'}.icon-rotate-right-variant:before{content:'\e9e8'}.icon-rotate-right:before{content:'\e9e9'}.icon-routes:before{content:'\e9ea'}.icon-rss-box:before{content:'\e9eb'}.icon-ruler:before{content:'\e9ec'}.icon-run:before{content:'\e9ed'}.icon-sale:before{content:'\e9ee'}.icon-satellite-variant:before{content:'\e9ef'}.icon-satellite:before{content:'\e9f0'}.icon-scale-bathroom:before{content:'\e9f1'}.icon-scale:before{content:'\e9f2'}.icon-school:before{content:'\e9f3'}.icon-screen-rotation-lock:before{content:'\e9f4'}.icon-screen-rotation:before{content:'\e9f5'}.icon-script:before{content:'\e9f6'}.icon-security-network:before{content:'\e9f7'}.icon-security:before{content:'\e9f8'}.icon-select-all:before{content:'\e9f9'}.icon-select-inverse:before{content:'\e9fa'}.icon-select-off:before{content:'\e9fb'}.icon-select:before{content:'\e9fc'}.icon-send:before{content:'\e9fd'}.icon-server-minus:before{content:'\e9fe'}.icon-server-network-off:before{content:'\e9ff'}.icon-server-network:before{content:'\ea00'}.icon-server-off:before{content:'\ea01'}.icon-server-plus:before{content:'\ea02'}.icon-server-remove:before{content:'\ea03'}.icon-server-security:before{content:'\ea04'}.icon-server:before{content:'\ea05'}.icon-shape-plus:before{content:'\ea06'}.icon-share-variant:before{content:'\ea07'}.icon-share:before{content:'\ea08'}.icon-shield-outline:before{content:'\ea09'}.icon-shield:before{content:'\ea0a'}.icon-shopping-music:before{content:'\ea0b'}.icon-shopping:before{content:'\ea0c'}.icon-shuffle:before{content:'\ea0d'}.icon-sigma:before{content:'\ea0e'}.icon-sign-caution:before{content:'\ea0f'}.icon-signal:before{content:'\ea10'}.icon-silverware-fork:before{content:'\ea11'}.icon-silverware-spoon:before{content:'\ea12'}.icon-silverware-variant:before{content:'\ea13'}.icon-silverware:before{content:'\ea14'}.icon-sim-alert:before{content:'\ea15'}.icon-sim:before{content:'\ea16'}.icon-sitemap:before{content:'\ea17'}.icon-skip-next:before{content:'\ea18'}.icon-skip-previous:before{content:'\ea19'}.icon-skype-business:before{content:'\ea1a'}.icon-skype:before{content:'\ea1b'}.icon-sleep-off:before{content:'\ea1c'}.icon-sleep:before{content:'\ea1d'}.icon-smoking-off:before{content:'\ea1e'}.icon-smoking:before{content:'\ea1f'}.icon-snapchat:before{content:'\ea20'}.icon-snowman:before{content:'\ea21'}.icon-sofa:before{content:'\ea22'}.icon-sort-alphabetical:before{content:'\ea23'}.icon-sort-ascending:before{content:'\ea24'}.icon-sort-descending:before{content:'\ea25'}.icon-sort-numeric:before{content:'\ea26'}.icon-sort-variant:before{content:'\ea27'}.icon-sort:before{content:'\ea28'}.icon-soundcloud:before{content:'\ea29'}.icon-source-fork:before{content:'\ea2a'}.icon-source-pull:before{content:'\ea2b'}.icon-speaker-off:before{content:'\ea2c'}.icon-speaker:before{content:'\ea2d'}.icon-speedometer:before{content:'\ea2e'}.icon-spellcheck:before{content:'\ea2f'}.icon-spotify:before{content:'\ea30'}.icon-spotlight-beam:before{content:'\ea31'}.icon-spotlight:before{content:'\ea32'}.icon-spreadsheet:before{content:'\ea33'}.icon-square-inc-cash:before{content:'\ea34'}.icon-square-inc:before{content:'\ea35'}.icon-stackoverflow:before{content:'\ea36'}.icon-star-circle:before{content:'\ea37'}.icon-star-half:before{content:'\ea38'}.icon-star-of-david:before{content:'\ea39'}.icon-star-outline:before{content:'\ea3a'}.icon-star:before{content:'\ea3b'}.icon-steam:before{content:'\ea3c'}.icon-stethoscope:before{content:'\ea3d'}.icon-stocking:before{content:'\ea3e'}.icon-stop:before{content:'\ea3f'}.icon-store-24-hour:before{content:'\ea40'}.icon-store:before{content:'\ea41'}.icon-stove:before{content:'\ea42'}.icon-subway:before{content:'\ea43'}.icon-sunglasses:before{content:'\ea44'}.icon-swap-horizontal:before{content:'\ea45'}.icon-swap-vertical:before{content:'\ea46'}.icon-swim:before{content:'\ea47'}.icon-sword:before{content:'\ea48'}.icon-sync-alert:before{content:'\ea49'}.icon-sync-off:before{content:'\ea4a'}.icon-sync:before{content:'\ea4b'}.icon-tab-unselected:before{content:'\ea4c'}.icon-tab:before{content:'\ea4d'}.icon-table-column-plus-after:before{content:'\ea4e'}.icon-table-column-plus-before:before{content:'\ea4f'}.icon-table-column-remove:before{content:'\ea50'}.icon-table-column-width:before{content:'\ea51'}.icon-table-edit:before{content:'\ea52'}.icon-table-large:before{content:'\ea53'}.icon-table-row-height:before{content:'\ea54'}.icon-table-row-plus-after:before{content:'\ea55'}.icon-table-row-plus-before:before{content:'\ea56'}.icon-table-row-remove:before{content:'\ea57'}.icon-table:before{content:'\ea58'}.icon-tablet-android:before{content:'\ea59'}.icon-tablet-ipad:before{content:'\ea5a'}.icon-tablet:before{content:'\ea5b'}.icon-tag-faces:before{content:'\ea5c'}.icon-tag-multiple:before{content:'\ea5d'}.icon-tag-outline:before{content:'\ea5e'}.icon-tag-text-outline:before{content:'\ea5f'}.icon-tag:before{content:'\ea60'}.icon-taxi:before{content:'\ea61'}.icon-teamviewer:before{content:'\ea62'}.icon-telegram:before{content:'\ea63'}.icon-television-guide:before{content:'\ea64'}.icon-television:before{content:'\ea65'}.icon-temperature-celsius:before{content:'\ea66'}.icon-temperature-fahrenheit:before{content:'\ea67'}.icon-temperature-kelvin:before{content:'\ea68'}.icon-tennis:before{content:'\ea69'}.icon-tent:before{content:'\ea6a'}.icon-terrain:before{content:'\ea6b'}.icon-text-to-speech-off:before{content:'\ea6c'}.icon-text-to-speech:before{content:'\ea6d'}.icon-texture:before{content:'\ea6e'}.icon-theater:before{content:'\ea6f'}.icon-theme-light-dark:before{content:'\ea70'}.icon-thermometer-lines:before{content:'\ea71'}.icon-thermometer:before{content:'\ea72'}.icon-thumb-down-outline:before{content:'\ea73'}.icon-thumb-down:before{content:'\ea74'}.icon-thumb-up-outline:before{content:'\ea75'}.icon-thumb-up:before{content:'\ea76'}.icon-thumbs-up-down:before{content:'\ea77'}.icon-ticket-account:before{content:'\ea78'}.icon-ticket:before{content:'\ea79'}.icon-tie:before{content:'\ea7a'}.icon-tile-four:before{content:'\ea7b'}.icon-timelapse:before{content:'\ea7c'}.icon-timer-3:before{content:'\ea7d'}.icon-timer-10:before{content:'\ea7e'}.icon-timer-off:before{content:'\ea7f'}.icon-timer-sand:before{content:'\ea80'}.icon-timer:before{content:'\ea81'}.icon-timetable:before{content:'\ea82'}.icon-toggle-switch-off:before{content:'\ea83'}.icon-toggle-switch-on:before{content:'\ea84'}.icon-tooltip-edit:before{content:'\ea85'}.icon-tooltip-image:before{content:'\ea86'}.icon-tooltip-outline-plus:before{content:'\ea87'}.icon-tooltip-outline:before{content:'\ea88'}.icon-tooltip-text:before{content:'\ea89'}.icon-tooltip:before{content:'\ea8a'}.icon-tor:before{content:'\ea8b'}.icon-traffic-light:before{content:'\ea8c'}.icon-train:before{content:'\ea8d'}.icon-tram:before{content:'\ea8e'}.icon-transcribe-close:before{content:'\ea8f'}.icon-transcribe:before{content:'\ea90'}.icon-transfer:before{content:'\ea91'}.icon-trash:before{content:'\ea92'}.icon-tree:before{content:'\ea93'}.icon-trello:before{content:'\ea94'}.icon-trending-down:before{content:'\ea95'}.icon-trending-neutral:before{content:'\ea96'}.icon-trending-up:before{content:'\ea97'}.icon-truck:before{content:'\ea98'}.icon-tshirt-crew:before{content:'\ea99'}.icon-tshirt-v:before{content:'\ea9a'}.icon-tumblr-reblog:before{content:'\ea9b'}.icon-tumblr:before{content:'\ea9c'}.icon-twitch:before{content:'\ea9d'}.icon-twitter-box:before{content:'\ea9e'}.icon-twitter-circle:before{content:'\ea9f'}.icon-twitter-retweet:before{content:'\eaa0'}.icon-twitter:before{content:'\eaa1'}.icon-ubuntu:before{content:'\eaa2'}.icon-umbrella-outline:before{content:'\eaa3'}.icon-umbrella:before{content:'\eaa4'}.icon-undo-variant:before{content:'\eaa5'}.icon-undo:before{content:'\eaa6'}.icon-unfold-less:before{content:'\eaa7'}.icon-unfold-more:before{content:'\eaa8'}.icon-ungroup:before{content:'\eaa9'}.icon-untappd:before{content:'\eaaa'}.icon-upload:before{content:'\eaab'}.icon-usb:before{content:'\eaac'}.icon-vector-curve:before{content:'\eaad'}.icon-vector-point:before{content:'\eaae'}.icon-vector-square:before{content:'\eaaf'}.icon-verified:before{content:'\eab0'}.icon-vibration:before{content:'\eab1'}.icon-video-off:before{content:'\eab2'}.icon-video-switch:before{content:'\eab3'}.icon-video:before{content:'\eab4'}.icon-view-agenda:before{content:'\eab5'}.icon-view-array:before{content:'\eab6'}.icon-view-carousel:before{content:'\eab7'}.icon-view-column:before{content:'\eab8'}.icon-view-dashboard:before{content:'\eab9'}.icon-view-day:before{content:'\eaba'}.icon-view-headline:before{content:'\eabb'}.icon-view-list:before{content:'\eabc'}.icon-view-module:before{content:'\eabd'}.icon-view-quilt:before{content:'\eabe'}.icon-view-stream:before{content:'\eabf'}.icon-view-week:before{content:'\eac0'}.icon-vimeo:before{content:'\eac1'}.icon-vine:before{content:'\eac2'}.icon-vk-box:before{content:'\eac3'}.icon-vk-circle:before{content:'\eac4'}.icon-vk:before{content:'\eac5'}.icon-voicemail:before{content:'\eac6'}.icon-volume-high:before{content:'\eac7'}.icon-volume-low:before{content:'\eac8'}.icon-volume-medium:before{content:'\eac9'}.icon-volume-off:before{content:'\eaca'}.icon-volume:before{content:'\eacb'}.icon-vpn:before{content:'\eacc'}.icon-walk:before{content:'\eacd'}.icon-wallet-giftcard:before{content:'\eace'}.icon-wallet-membership:before{content:'\eacf'}.icon-wallet-travel:before{content:'\ead0'}.icon-wallet:before{content:'\ead1'}.icon-washing-machine:before{content:'\ead2'}.icon-watch-export:before{content:'\ead3'}.icon-watch-import:before{content:'\ead4'}.icon-watch:before{content:'\ead5'}.icon-water-off:before{content:'\ead6'}.icon-water-pump:before{content:'\ead7'}.icon-water:before{content:'\ead8'}.icon-weather-cloudy:before{content:'\ead9'}.icon-weather-fog:before{content:'\eada'}.icon-weather-hail:before{content:'\eadb'}.icon-weather-lightning:before{content:'\eadc'}.icon-weather-night:before{content:'\eadd'}.icon-weather-partlycloudy:before{content:'\eade'}.icon-weather-pouring:before{content:'\eadf'}.icon-weather-rainy:before{content:'\eae0'}.icon-weather-snowy:before{content:'\eae1'}.icon-weather-sunny:before{content:'\eae2'}.icon-weather-sunset-down:before{content:'\eae3'}.icon-weather-sunset-up:before{content:'\eae4'}.icon-weather-sunset:before{content:'\eae5'}.icon-weather-windy-variant:before{content:'\eae6'}.icon-weather-windy:before{content:'\eae7'}.icon-web:before{content:'\eae8'}.icon-webcam:before{content:'\eae9'}.icon-weight-kilogram:before{content:'\eaea'}.icon-weight:before{content:'\eaeb'}.icon-whatsapp:before{content:'\eaec'}.icon-wheelchair-accessibility:before{content:'\eaed'}.icon-white-balance-auto:before{content:'\eaee'}.icon-white-balance-incandescent:before{content:'\eaef'}.icon-white-balance-irradescent:before{content:'\eaf0'}.icon-white-balance-sunny:before{content:'\eaf1'}.icon-wifi:before{content:'\eaf2'}.icon-wii:before{content:'\eaf3'}.icon-wikipedia:before{content:'\eaf4'}.icon-window-close:before{content:'\eaf5'}.icon-window-closed:before{content:'\eaf6'}.icon-window-maximize:before{content:'\eaf7'}.icon-window-minimize:before{content:'\eaf8'}.icon-window-open:before{content:'\eaf9'}.icon-window-restore:before{content:'\eafa'}.icon-windows:before{content:'\eafb'}.icon-wordpress:before{content:'\eafc'}.icon-worker:before{content:'\eafd'}.icon-wunderlist:before{content:'\eafe'}.icon-xbox-controller-off:before{content:'\eaff'}.icon-xbox-controller:before{content:'\eb00'}.icon-xbox:before{content:'\eb01'}.icon-xda:before{content:'\eb02'}.icon-xml:before{content:'\eb03'}.icon-yeast:before{content:'\eb04'}.icon-yelp:before{content:'\eb05'}.icon-youtube-play:before{content:'\eb06'}.icon-youtube:before{content:'\eb07'}.icon-zip-box:before{content:'\eb08'}.avatar{width:40px;min-width:40px;height:40px;line-height:40px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}.avatar.square{border-radius:0}.avatar.small{width:20px;min-width:20px;height:20px;line-height:20px}.avatar.big{width:72px;min-width:72px;height:72px;line-height:72px}.avatar.huge{width:96px;min-width:96px;height:96px;line-height:96px}.form-wrapper{background:#fff;padding:16px}.form-wrapper .form-title{font-size:21px;padding:8px 0}.navigation-simple .item{position:relative;cursor:pointer;text-align:left;margin:0;padding:0 24px;text-transform:none;line-height:48px;max-height:48px;height:48px}.navigation-simple .item md-icon{margin:0 16px 0 0}.navigation-simple .item .title{font-size:13px;font-weight:500;line-height:1}.navigation-simple .item.selected{background-color:rgba(0,0,0,.06)}.navigation-simple .subheader{font-size:13px;border-top:1px solid rgba(0,0,0,.12);font-weight:500;margin-top:8px}.navigation-simple .subheader.light{border-top:1px solid rgba(255,255,255,.12)}.navigation-simple md-divider{margin:8px 0}.simple-pagination{position:relative;display:inline-flex;flex-direction:row;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background-color:#fff;padding:0 8px}.simple-pagination .pagination-item{min-width:48px;min-height:56px;line-height:56px;border-radius:0;margin:0;font-weight:400;color:rgba(0,0,0,.54)}.simple-pagination .pagination-item:hover{color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.active{cursor:default;color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.disabled{cursor:default;color:rgba(0,0,0,.26)}.price-tables .price-table{position:relative;background-color:#fff;width:280px;border-radius:2px;margin:24px 24px 0 0;overflow:hidden}.price-tables .price-table.style-1 .package-type{font-size:17px;padding:16px 24px}.price-tables .price-table.style-1 .package-type .sale{font-size:13px;font-weight:600}.price-tables .price-table.style-1 .price{padding:32px 32px 16px 32px}.price-tables .price-table.style-1 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 .price .value{font-size:72px;font-weight:300;line-height:1}.price-tables .price-table.style-1 .price .period{padding:0 0 5px 4px;font-size:17px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 md-divider{margin:16px 32px}.price-tables .price-table.style-1 .terms{padding:16px 32px;font-size:15px}.price-tables .price-table.style-1 .cta-button{margin:16px auto 32px auto;width:128px}.price-tables .price-table.style-2 .badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}.price-tables .price-table.style-2 .package-type{padding:48px 32px 24px 32px;font-size:20px;font-weight:500;text-align:center}.price-tables .price-table.style-2 .price{padding:0 32px 8px 32px}.price-tables .price-table.style-2 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-2 .price .value{font-size:56px;font-weight:300;line-height:1}.price-tables .price-table.style-2 .period{padding:0 32px;font-size:15px;font-weight:500;color:rgba(0,0,0,.54);text-align:center}.price-tables .price-table.style-2 .terms{padding:32px;font-size:15px}.price-tables .price-table.style-2 .terms .term{padding-bottom:8px}.price-tables .price-table.style-2 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-2 .cta-button{margin:8px auto 32px auto;width:128px}.price-tables .price-table.style-3 .package-type{padding:32px;text-align:center}.price-tables .price-table.style-3 .package-type .title{font-size:34px}.price-tables .price-table.style-3 .package-type .subtitle{font-size:17px;color:rgba(0,0,0,.54);font-weight:500}.price-tables .price-table.style-3 .price{padding:16px 32px}.price-tables .price-table.style-3 .price .currency{padding-right:4px;font-size:15px;font-weight:500}.price-tables .price-table.style-3 .price .value{font-size:34px;font-weight:300;line-height:1}.price-tables .price-table.style-3 .price .period{padding-left:4px;text-align:center}.price-tables .price-table.style-3 .terms{margin:32px;font-size:15px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-3 .terms .term{padding-bottom:16px}.price-tables .price-table.style-3 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-3 .cta-button{margin:8px 32px}.price-tables .price-table.style-3 .note{padding:8px 32px 16px 32px;text-align:center;color:rgba(0,0,0,.54)}.simple-table-container{background:#fff}.simple-table-container .table-title{font-size:20px;padding:24px}table.simple{width:100%;border:none;border-spacing:0;text-align:left}table.simple thead tr th{padding:16px 8px;font-weight:500;color:rgba(0,0,0,.54);border-bottom:1px solid rgba(0,0,0,.12);white-space:nowrap;min-width:120px}table.simple thead tr th:first-child{padding-left:24px}table.simple thead tr th:last-child{padding-right:24px}table.simple tbody tr td{padding:16px 8px;border-bottom:1px solid rgba(0,0,0,.12)}table.simple tbody tr td:first-child{padding-left:24px}table.simple tbody tr td:last-child{padding-right:24px}table.simple tbody tr:last-child td{border-bottom:none}table.simple.clickable tbody tr{cursor:pointer}table.simple.clickable tbody tr:hover{background:rgba(0,0,0,.03)}html{font-size:62.5%;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.4;letter-spacing:-.1px}body{font-size:1.3rem}body,html{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}form{font-size:1.6rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:400}.h1,h1{font-size:2.4rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.6rem}.h4,h4{font-size:1.4rem}.h5,h5{font-size:1.3rem}.h6,h6{font-size:1.2rem}a{text-decoration:none}a:active,a:hover{text-decoration:underline}abbr{cursor:help;border-bottom:1px dotted rgba(0,0,0,.54)}blockquote{border-left:3px solid rgba(0,0,0,.12);font-style:italic;margin:1em 0;padding-left:16px}blockquote footer{font-style:normal}blockquote footer:before{content:'\2014 \00A0'}blockquote.reverse{border-left:none;border-right:3px solid rgba(0,0,0,.12);text-align:right;padding-left:0;padding-right:16px}blockquote.reverse footer:before{content:''}blockquote.reverse footer:after{content:'\2014 \00A0'}code{font-family:Monaco,Menlo,Consolas,"Ubuntu Mono",monospace}code:not(.highlight){background:rgba(0,0,0,.065);color:#106cc8;margin:0 1px;padding:2px 3px;border-radius:2px}dl dt{font-weight:700}dl dd{margin:4px 0 16px 0}mark{background:#f7f49a}pre{line-height:1.6;margin:8px 16px;white-space:pre-wrap}small{font-size:80%}table thead tr th{text-align:left}.text-italic{font-style:italic}.text-semibold{font-weight:600}.text-bold,strong{font-weight:700}.text-strike{text-decoration:line-through}.text-super{vertical-align:super}.text-sub{vertical-align:sub}.text-capitalize{text-transform:capitalize}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-weight-100{font-weight:100}.font-weight-200{font-weight:200}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-weight-900{font-weight:900}.font-size-2{font-size:2px}.font-size-4{font-size:4px}.font-size-6{font-size:6px}.font-size-8{font-size:8px}.font-size-10{font-size:10px}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-18{font-size:18px}.font-size-20{font-size:20px}.font-size-22{font-size:22px}.font-size-24{font-size:24px}.font-size-26{font-size:26px}.font-size-28{font-size:28px}.font-size-30{font-size:30px}.font-size-32{font-size:32px}.font-size-34{font-size:34px}.font-size-36{font-size:36px}.font-size-38{font-size:38px}.font-size-40{font-size:40px}.font-size-42{font-size:42px}.font-size-44{font-size:44px}.font-size-46{font-size:46px}.font-size-48{font-size:48px}.font-size-50{font-size:50px}.font-size-52{font-size:52px}.font-size-54{font-size:54px}.font-size-56{font-size:56px}.font-size-58{font-size:58px}.font-size-60{font-size:60px}.font-size-62{font-size:62px}.font-size-64{font-size:64px}.font-size-66{font-size:66px}.font-size-68{font-size:68px}.font-size-70{font-size:70px}.font-size-72{font-size:72px}.font-size-74{font-size:74px}.font-size-76{font-size:76px}.font-size-78{font-size:78px}.font-size-80{font-size:80px}.font-size-82{font-size:82px}.font-size-84{font-size:84px}.font-size-86{font-size:86px}.font-size-88{font-size:88px}.font-size-90{font-size:90px}.font-size-92{font-size:92px}.font-size-94{font-size:94px}.font-size-96{font-size:96px}.font-size-98{font-size:98px}.font-size-100{font-size:100px}.font-size-102{font-size:102px}.font-size-104{font-size:104px}.font-size-106{font-size:106px}.font-size-108{font-size:108px}.font-size-110{font-size:110px}.font-size-112{font-size:112px}.font-size-114{font-size:114px}.font-size-116{font-size:116px}.font-size-118{font-size:118px}.font-size-120{font-size:120px}.line-height-2{line-height:2px}.line-height-4{line-height:4px}.line-height-6{line-height:6px}.line-height-8{line-height:8px}.line-height-10{line-height:10px}.line-height-12{line-height:12px}.line-height-14{line-height:14px}.line-height-16{line-height:16px}.line-height-18{line-height:18px}.line-height-20{line-height:20px}.line-height-22{line-height:22px}.line-height-24{line-height:24px}.line-height-26{line-height:26px}.line-height-28{line-height:28px}.line-height-30{line-height:30px}.line-height-32{line-height:32px}.line-height-34{line-height:34px}.line-height-36{line-height:36px}.line-height-38{line-height:38px}.line-height-40{line-height:40px}.line-height-42{line-height:42px}.line-height-44{line-height:44px}.line-height-46{line-height:46px}.line-height-48{line-height:48px}.line-height-50{line-height:50px}.line-height-52{line-height:52px}.line-height-54{line-height:54px}.line-height-56{line-height:56px}.line-height-58{line-height:58px}.line-height-60{line-height:60px}.line-height-62{line-height:62px}.line-height-64{line-height:64px}.line-height-66{line-height:66px}.line-height-68{line-height:68px}.line-height-70{line-height:70px}.line-height-72{line-height:72px}.line-height-74{line-height:74px}.line-height-76{line-height:76px}.line-height-78{line-height:78px}.line-height-80{line-height:80px}.line-height-82{line-height:82px}.line-height-84{line-height:84px}.line-height-86{line-height:86px}.line-height-88{line-height:88px}.line-height-90{line-height:90px}.line-height-92{line-height:92px}.line-height-94{line-height:94px}.line-height-96{line-height:96px}.line-height-98{line-height:98px}.line-height-100{line-height:100px}.line-height-102{line-height:102px}.line-height-104{line-height:104px}.line-height-106{line-height:106px}.line-height-108{line-height:108px}.line-height-110{line-height:110px}.line-height-112{line-height:112px}.line-height-114{line-height:114px}.line-height-116{line-height:116px}.line-height-118{line-height:118px}.line-height-120{line-height:120px}.text-boxed,.text-boxed-light{border-radius:2px;padding:4px 8px;margin:0 8px;font-size:11px;font-weight:500;color:rgba(0,0,0,.54);background-color:rgba(0,0,0,.12);white-space:nowrap}.text-boxed-light{background-color:rgba(255,255,255,.7)}.text-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.angular-google-map-container{height:400px}.moment-picker .moment-picker-container{width:296px;border:none;border-radius:2px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:0;padding:8px}.moment-picker .moment-picker-container td,.moment-picker .moment-picker-container th{min-width:0;width:40px;height:40px;padding:8px;text-shadow:none;border-radius:35px}.moment-picker .moment-picker-container td:hover,.moment-picker .moment-picker-container th:hover{background:#f5f5f5;background-image:none}.moment-picker .moment-picker-container td.selected{background:#03a9f4;background-image:none}.moment-picker .moment-picker-container .header-view th{border-radius:0;white-space:nowrap;width:auto}.moment-picker .moment-picker-container .header-view th:first-child,.moment-picker .moment-picker-container .header-view th:last-child{width:20%}.c3{transition:all .3s ease}.c3 svg{font:12px RobotoDraft,Roboto,'Helvetica Neue',sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;user-select:none}.c3 .c3-bars path,.c3 .c3-event-rect,.c3 .c3-legend-item-tile,.c3 .c3-xgrid-focus,.c3 .c3-ygrid{shape-rendering:crispEdges}.c3 .c3-chart-line{transition:all .3s ease}.c3 .c3-line{stroke-width:1px}.c3.stroke-3 .c3-line{stroke-width:3px}.c3.stroke-2 .c3-line{stroke-width:2px}.c3 .c3-circle{transition:all .3s ease;stroke:#fff;stroke-width:2}.c3 .c3-circle._expanded_{stroke-width:3;stroke:#fff}.c3 .c3-chart-arc path{stroke:#fff}.c3 .c3-chart-arc text{fill:#fff;font-size:13px}.c3 .c3-grid line{stroke:rgba(0,0,0,.04);stroke-width:1px;stroke-dasharray:0}.c3 .c3-grid text{fill:#aaa}.c3 .c3-axis .tick{stroke-width:0}.c3 .c3-axis text{fill:rgba(0,0,0,.33)}.c3 .c3-axis line,.c3 .c3-axis path{stroke:rgba(0,0,0,.04)}.c3 .c3-xgrid,.c3 .c3-ygrid{stroke-dasharray:0 0}.c3 .c3-text.c3-empty{fill:grey;font-size:2em}.c3 .c3-bar{stroke-width:0}.c3 .c3-bar._expanded_{fill-opacity:.75}.c3 .c3-target.c3-focused{opacity:1}.c3 .c3-target.c3-focused .c3-target.c3-focused path.c3-step,.c3 .c3-target.c3-focused path.c3-line{stroke-width:3px;transition:all .3s ease}.c3 .c3-target.c3-defocused{opacity:.3!important}.c3 .c3-region{fill:#4682b4;fill-opacity:.1}.c3 .c3-brush .extent{fill-opacity:.1}.c3 .c3-legend-item{font-size:12px}.c3 .c3-legend-item-hidden{opacity:.15}.c3 .c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3 .c3-tooltip-container{z-index:10}.c3 .c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);opacity:1;border-radius:2px;overflow:hidden;padding:4px 0}.c3 .c3-tooltip tr{border:none}.c3 .c3-tooltip th{background-color:transparent;font-size:14px;font-weight:400;padding:8px 12px;text-align:left;color:rgba(0,0,0,.54)}.c3 .c3-tooltip td{font-size:13px;padding:4px 12px!important;background-color:#fff;border-left:none;color:rgba(0,0,0,.84)}.c3 .c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3 .c3-tooltip td.value{font-size:14px!important;text-align:right;color:rgba(0,0,0,.84)}.c3 .c3-area{stroke-width:0;opacity:.2}.c3 .c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3 .c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3 .c3-chart-arc .c3-gauge-value{fill:#000}.ct-label{font-size:13px}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{font-size:13px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{margin-top:15px}table.dataTable{width:100%;margin:0 auto;clear:both;border-spacing:0}table.dataTable thead tr{background:#fff}table.dataTable thead th{text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12);padding:16px 8px}table.dataTable thead th:first-child{padding-left:24px}table.dataTable thead th:last-child{border-right:none;padding-right:24px}table.dataTable thead th:active{outline:0}table.dataTable thead th.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable thead th .table-header .column-title{display:block;font-weight:600;white-space:nowrap}table.dataTable thead th .table-header .selectize-control{margin-top:15px}table.dataTable thead th .table-header .selectize-control.single .selectize-input{padding:7px 10px}table.dataTable thead th .table-header .selectize-control.single .selectize-input:after{right:10px;border-width:5px 4px 0 4px;border-color:rgba(0,0,0,.12) transparent transparent transparent}table.dataTable thead th .table-header .column-search-input{display:inline-block;margin-top:15px;width:100%;height:33px}table.dataTable thead td{padding:15px;vertical-align:middle}table.dataTable thead td:active{outline:0}table.dataTable thead td.dt-head-left{text-align:left}table.dataTable thead td.dt-head-center{text-align:center}table.dataTable thead td.dt-head-right{text-align:right}table.dataTable thead td.dt-head-justify{text-align:justify}table.dataTable thead td.dt-head-nowrap{white-space:nowrap}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{background:0 0}table.dataTable thead .sorting .table-header .column-title,table.dataTable thead .sorting_asc .table-header .column-title,table.dataTable thead .sorting_desc .table-header .column-title{cursor:pointer}table.dataTable thead .sorting .table-header .column-title:after,table.dataTable thead .sorting_asc .table-header .column-title:after,table.dataTable thead .sorting_desc .table-header .column-title:after{position:relative;font-family:icomoon;font-weight:400;margin-left:10px;top:2px;font-size:16px;color:rgba(0,0,0,.54)}table.dataTable thead .sorting .table-header .column-title:after{content:'\eaa8'}table.dataTable thead .sorting_asc .table-header .column-title:after{content:'\e718'}table.dataTable thead .sorting_desc .table-header .column-title:after{content:'\e715'}table.dataTable tfoot th{font-weight:600;text-align:left;padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot th.dt-head-left{text-align:left}table.dataTable tfoot th.dt-head-center{text-align:center}table.dataTable tfoot th.dt-head-right{text-align:right}table.dataTable tfoot th.dt-head-justify{text-align:justify}table.dataTable tfoot th.dt-head-nowrap{white-space:nowrap}table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody tr.details-open td.detail-column i{background:#fff}table.dataTable tbody tr.details-row.odd tr{background:#fff}table.dataTable tbody tr.details-row>td{padding:0}table.dataTable tbody th{padding:14px 15px;vertical-align:middle}table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable tbody td{padding:16px 8px;vertical-align:middle}table.dataTable tbody td:first-child{padding-left:24px}table.dataTable tbody td:last-child{padding-right:24px}table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable th.dt-left{text-align:left}table.dataTable th.dt-center{text-align:center}table.dataTable th.dt-right{text-align:right}table.dataTable th.dt-justify{text-align:justify}table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable td.dt-left{text-align:left}table.dataTable td.dt-center{text-align:center}table.dataTable td.dataTables_empty{height:51px;text-align:center}table.dataTable td.dt-right{text-align:right}table.dataTable td.dt-justify{text-align:justify}table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable.row-border thead{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.row-border tbody tr:first-child td{border-top:none}table.dataTable.row-border tbody tr:last-child td{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody th{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody td{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody th:last-child{border-right:none}table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody td:last-child{border-right:none}table.dataTable.stripe tbody tr.odd{background-color:#fff}table.dataTable.stripe tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.odd:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.odd:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_2{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_2{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:none}table.dataTable.nowrap th{white-space:nowrap}table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th{padding:5px 9px}table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th{padding:5px 9px 3px 9px}table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th{padding:4px 5px}table.dataTable.compact tbody td{padding:4px 5px}.dataTables_wrapper{display:flex;flex:1 0 auto;flex-direction:column;min-height:0}.dataTables_wrapper .top{padding:16px 24px}.dataTables_wrapper .bottom{display:flex;min-height:64px;justify-content:space-between;padding:16px 8px;border-top:1px solid rgba(0,0,0,.12)}.dataTables_wrapper .bottom .left{display:flex;flex:0 0 50%;max-width:50%;align-self:center;padding:0 8px}.dataTables_wrapper .bottom .left .length{display:block}.dataTables_wrapper .bottom .right{display:flex;flex:0 0 50%;max-width:50%;align-self:center;justify-content:flex-end;padding:0 8px}.dataTables_wrapper .bottom .right .info{display:block;align-self:center}.dataTables_wrapper .bottom .right .info .dataTables_info{padding:0 8px;font-weight:600}.dataTables_wrapper .bottom .right .pagination{display:block;align-self:center;white-space:nowrap}.dataTables_wrapper .bottom .right .pagination .dataTables_paginate{padding:0;margin:0!important}.dataTables_wrapper .dataTables_filter{float:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em;border:1px solid rgba(0,0,0,.12);height:24px;padding:4px 8px}.dataTables_wrapper .dataTables_paginate .paginate_button{background:#fff;color:rgba(0,0,0,.87);border:1px solid rgba(0,0,0,.12);padding:9px 12px;border-radius:2px;cursor:pointer;user-select:none;margin:0 2px}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.05);color:rgba(0,0,0,.87)!important;border:1px solid rgba(0,0,0,.12)!important;background:0 0}.dataTables_wrapper .dataTables_paginate .paginate_button:active{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.08),inset 0 1px 3px 0 rgba(0,0,0,.1),0 1px 0 0 rgba(255,255,255,.35)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:rgba(0,0,0,.54)!important;border-color:rgba(0,0,0,.12)!important;background:#fff!important;box-shadow:none!important;cursor:default}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_scroll{display:flex;flex:1 1 0;flex-direction:column;clear:both;min-height:0}.dataTables_wrapper .dataTables_scroll table.dataTable{box-shadow:none}.dataTables_wrapper .dataTables_scroll table.dataTable.row-border thead{border:none}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead{display:flex;min-height:56px;box-shadow:0 0 0 1px rgba(0,0,0,.095),0 1px 1px 0 rgba(0,0,0,.1),0 2px 1px 0 rgba(0,0,0,.05);background:#fff;overflow:visible!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead tr th:last-child .table-header .column-title{position:relative;left:7px}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody{display:flex;overflow-x:hidden!important;overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody th>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody td>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper.no-footer .dataTables_scrollBody table,.dataTables_wrapper.no-footer .dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:'';clear:both;height:0}table.dataTable .show-details{padding:5px 10px;font-weight:700}table.dataTable .action-buttons{display:flex;justify-content:center}table.dataTable .action-buttons .button{padding:8px}.fullpage-datatable .dataTables_wrapper{height:100%;max-height:100%}.explorer-11 .fullpage-datatable .dataTables_scroll{flex:1}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child{padding-left:40px}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child:before{content:'+';width:15px;height:15px;line-height:15px;top:50%;margin-top:-7px;left:8px;color:rgba(0,0,0,.54);background:0 0;border:none;box-shadow:0 0 0 2px rgba(0,0,0,.54);font-weight:700}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{background:0 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul{display:block}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.12);padding:8px 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:last-child{border-bottom:none;padding-bottom:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li .dtr-title{margin-right:8px}[hljs],hljs{display:block;overflow-x:auto;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.diff .hljs-header,.hljs-comment{color:#998;font-style:italic}.css .rule .hljs-keyword,.hljs-keyword,.hljs-request,.hljs-status,.hljs-subst,.hljs-winutils,.nginx .hljs-title{color:#333;font-weight:700}.hljs-hexcolor,.hljs-number,.ruby .hljs-constant{color:teal}.hljs-doctag,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#d14}.hljs-id,.hljs-title,.scss .hljs-preprocessor{color:#900;font-weight:700}.hljs-list .hljs-keyword,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type,.tex .hljs-command,.vhdl .hljs-literal{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rule .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-name,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.clojure .hljs-keyword,.hljs-prompt,.hljs-symbol,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-string,.scheme .hljs-keyword,.tex .hljs-special{color:#990073}.hljs-built_in{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}nvd3{display:block;width:100%;height:100%}nvd3.remove-x-lines .nv-x .tick line{display:none}nvd3.remove-y-lines .nv-y .tick line{display:none}nvd3.remove-line-stroke .nv-groups path.nv-line{stroke-width:0!important}nvd3.remove-opacity .nv-groups .nv-group{fill-opacity:1!important}nvd3.show-line-points .nv-line .nv-scatter .nv-groups .nv-point{fill-opacity:1!important;stroke-opacity:1!important}.nvd3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif}.nvd3 line.nv-guideline{stroke:rgba(0,0,0,.54)}.nvd3 .nv-groups .nv-point.hover{stroke-width:3px!important;fill-opacity:1!important;stroke-opacity:1!important}.nvtooltip{background:0 0;color:#fff;padding:0;border:none}.nvtooltip.gravity-n:after{display:block;position:absolute;content:'';width:0;height:0;left:50%;bottom:100%;margin-left:-5px;border:5px solid transparent;border-bottom-color:rgba(0,0,0,.87)}.nvtooltip.gravity-s:after{display:block;position:absolute;content:'';width:0;height:0;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.87)}.nvtooltip.gravity-e:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;right:0;margin-top:-6px;margin-right:-11px;border:6px solid transparent;border-left-color:rgba(0,0,0,.87)}.nvtooltip.gravity-w:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;margin-top:-6px;margin-left:-11px;border:6px solid transparent;border-right-color:rgba(0,0,0,.87)}.nvtooltip table{background:rgba(0,0,0,.87);padding:8px 12px;margin:0;border-radius:2px}.nvtooltip table tbody tr td.legend-color-guide div{border:none}.nvtooltip table tbody tr td:last-child{padding-right:0}.ps-container:hover .ps-in-scrolling{pointer-events:auto}.ps-container .ps-in-scrolling{pointer-events:auto}.ps-container>.ps-scrollbar-x-rail{background:0 0!important;margin:4px 0;height:4px;z-index:49}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{height:4px}.ps-container>.ps-scrollbar-y-rail{background:0 0!important;margin:4px 0;width:4px;z-index:49}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{width:4px}.ta-root{display:block}.ta-root .ta-scroll-window.form-control{border:1px solid rgba(0,0,0,.12)}.ta-root.focussed>.ta-scroll-window.form-control{outline:0 solid transparent;border:1px solid rgba(0,0,0,.12);box-shadow:none}.ta-root textarea.ta-editor.ta-html{resize:vertical;width:100%!important;border:1px solid rgba(0,0,0,.12);padding:16px}.ta-root .ta-toolbar{border:1px solid rgba(0,0,0,.12);border-bottom:none;background:#f5f5f5}.ta-root .ta-toolbar .ta-group{display:flex;align-items:center;align-content:center;flex-wrap:wrap}.ta-root .ta-toolbar .ta-group #toolbarCC,.ta-root .ta-toolbar .ta-group #toolbarWC{display:inline-block!important;line-height:24px}.ta-root .ta-toolbar .ta-group .md-button{width:40px;min-width:40px;line-height:14px;height:36px;min-height:36px;padding:6px;margin:4px 0}.ta-root .ta-toolbar .ta-group .md-button i{font-size:20px;width:20px;height:20px;line-height:20px}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-radius{border-radius:0}.divider-vertical{background:rgba(0,0,0,.12);height:24px;width:1px;margin:0 8px}.hidden{visibility:hidden;opacity:0}[fill-width]{min-width:100%}[fill-height]{min-height:100%}.full-height{height:100%!important}a img{display:block;outline:0}img{max-width:100%;height:auto;vertical-align:top;border:none}.scrollable{display:block;position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.only-x{overflow-x:auto;overflow-y:hidden}.scrollable.only-y{overflow-x:hidden;overflow-y:auto}.flex-scrollable{position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.flex-scrollable.only-x{overflow-x:auto;overflow-y:hidden}.flex-scrollable.only-y{overflow-x:hidden;overflow-y:auto}.background-image-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.align-vertical:before{display:inline-block;height:100%;content:'';vertical-align:middle}.align-vertical .align-vertical-bottom,.align-vertical .align-vertical-middle,.align-vertical .align-vertical-top{display:inline-block}.align-vertical .align-vertical-top{vertical-align:top}.align-vertical .align-vertical-middle{vertical-align:middle}.align-vertical .align-vertical-bottom{vertical-align:bottom}.p-0,.padding-0{padding:0}.padding-top-0,.pt-0{padding-top:0}.padding-right-0,.pr-0{padding-right:0}.padding-bottom-0,.pb-0{padding-bottom:0}.padding-left-0,.pl-0{padding-left:0}.padding-horizontal-0,.ph-0{padding-left:0;padding-right:0}.padding-vertical-0,.pv-0{padding-top:0;padding-bottom:0}.p-5,.padding-5{padding:5px}.padding-top-5,.pt-5{padding-top:5px}.padding-right-5,.pr-5{padding-right:5px}.padding-bottom-5,.pb-5{padding-bottom:5px}.padding-left-5,.pl-5{padding-left:5px}.padding-horizontal-5,.ph-5{padding-left:5px;padding-right:5px}.padding-vertical-5,.pv-5{padding-top:5px;padding-bottom:5px}.p-10,.padding-10{padding:10px}.padding-top-10,.pt-10{padding-top:10px}.padding-right-10,.pr-10{padding-right:10px}.padding-bottom-10,.pb-10{padding-bottom:10px}.padding-left-10,.pl-10{padding-left:10px}.padding-horizontal-10,.ph-10{padding-left:10px;padding-right:10px}.padding-vertical-10,.pv-10{padding-top:10px;padding-bottom:10px}.p-15,.padding-15{padding:15px}.padding-top-15,.pt-15{padding-top:15px}.padding-right-15,.pr-15{padding-right:15px}.padding-bottom-15,.pb-15{padding-bottom:15px}.padding-left-15,.pl-15{padding-left:15px}.padding-horizontal-15,.ph-15{padding-left:15px;padding-right:15px}.padding-vertical-15,.pv-15{padding-top:15px;padding-bottom:15px}.p-20,.padding-20{padding:20px}.padding-top-20,.pt-20{padding-top:20px}.padding-right-20,.pr-20{padding-right:20px}.padding-bottom-20,.pb-20{padding-bottom:20px}.padding-left-20,.pl-20{padding-left:20px}.padding-horizontal-20,.ph-20{padding-left:20px;padding-right:20px}.padding-vertical-20,.pv-20{padding-top:20px;padding-bottom:20px}.p-25,.padding-25{padding:25px}.padding-top-25,.pt-25{padding-top:25px}.padding-right-25,.pr-25{padding-right:25px}.padding-bottom-25,.pb-25{padding-bottom:25px}.padding-left-25,.pl-25{padding-left:25px}.padding-horizontal-25,.ph-25{padding-left:25px;padding-right:25px}.padding-vertical-25,.pv-25{padding-top:25px;padding-bottom:25px}.p-30,.padding-30{padding:30px}.padding-top-30,.pt-30{padding-top:30px}.padding-right-30,.pr-30{padding-right:30px}.padding-bottom-30,.pb-30{padding-bottom:30px}.padding-left-30,.pl-30{padding-left:30px}.padding-horizontal-30,.ph-30{padding-left:30px;padding-right:30px}.padding-vertical-30,.pv-30{padding-top:30px;padding-bottom:30px}.p-35,.padding-35{padding:35px}.padding-top-35,.pt-35{padding-top:35px}.padding-right-35,.pr-35{padding-right:35px}.padding-bottom-35,.pb-35{padding-bottom:35px}.padding-left-35,.pl-35{padding-left:35px}.padding-horizontal-35,.ph-35{padding-left:35px;padding-right:35px}.padding-vertical-35,.pv-35{padding-top:35px;padding-bottom:35px}.p-40,.padding-40{padding:40px}.padding-top-40,.pt-40{padding-top:40px}.padding-right-40,.pr-40{padding-right:40px}.padding-bottom-40,.pb-40{padding-bottom:40px}.padding-left-40,.pl-40{padding-left:40px}.padding-horizontal-40,.ph-40{padding-left:40px;padding-right:40px}.padding-vertical-40,.pv-40{padding-top:40px;padding-bottom:40px}.p-45,.padding-45{padding:45px}.padding-top-45,.pt-45{padding-top:45px}.padding-right-45,.pr-45{padding-right:45px}.padding-bottom-45,.pb-45{padding-bottom:45px}.padding-left-45,.pl-45{padding-left:45px}.padding-horizontal-45,.ph-45{padding-left:45px;padding-right:45px}.padding-vertical-45,.pv-45{padding-top:45px;padding-bottom:45px}.p-50,.padding-50{padding:50px}.padding-top-50,.pt-50{padding-top:50px}.padding-right-50,.pr-50{padding-right:50px}.padding-bottom-50,.pb-50{padding-bottom:50px}.padding-left-50,.pl-50{padding-left:50px}.padding-horizontal-50,.ph-50{padding-left:50px;padding-right:50px}.padding-vertical-50,.pv-50{padding-top:50px;padding-bottom:50px}.p-55,.padding-55{padding:55px}.padding-top-55,.pt-55{padding-top:55px}.padding-right-55,.pr-55{padding-right:55px}.padding-bottom-55,.pb-55{padding-bottom:55px}.padding-left-55,.pl-55{padding-left:55px}.padding-horizontal-55,.ph-55{padding-left:55px;padding-right:55px}.padding-vertical-55,.pv-55{padding-top:55px;padding-bottom:55px}.p-60,.padding-60{padding:60px}.padding-top-60,.pt-60{padding-top:60px}.padding-right-60,.pr-60{padding-right:60px}.padding-bottom-60,.pb-60{padding-bottom:60px}.padding-left-60,.pl-60{padding-left:60px}.padding-horizontal-60,.ph-60{padding-left:60px;padding-right:60px}.padding-vertical-60,.pv-60{padding-top:60px;padding-bottom:60px}.p-65,.padding-65{padding:65px}.padding-top-65,.pt-65{padding-top:65px}.padding-right-65,.pr-65{padding-right:65px}.padding-bottom-65,.pb-65{padding-bottom:65px}.padding-left-65,.pl-65{padding-left:65px}.padding-horizontal-65,.ph-65{padding-left:65px;padding-right:65px}.padding-vertical-65,.pv-65{padding-top:65px;padding-bottom:65px}.p-70,.padding-70{padding:70px}.padding-top-70,.pt-70{padding-top:70px}.padding-right-70,.pr-70{padding-right:70px}.padding-bottom-70,.pb-70{padding-bottom:70px}.padding-left-70,.pl-70{padding-left:70px}.padding-horizontal-70,.ph-70{padding-left:70px;padding-right:70px}.padding-vertical-70,.pv-70{padding-top:70px;padding-bottom:70px}.p-75,.padding-75{padding:75px}.padding-top-75,.pt-75{padding-top:75px}.padding-right-75,.pr-75{padding-right:75px}.padding-bottom-75,.pb-75{padding-bottom:75px}.padding-left-75,.pl-75{padding-left:75px}.padding-horizontal-75,.ph-75{padding-left:75px;padding-right:75px}.padding-vertical-75,.pv-75{padding-top:75px;padding-bottom:75px}.p-80,.padding-80{padding:80px}.padding-top-80,.pt-80{padding-top:80px}.padding-right-80,.pr-80{padding-right:80px}.padding-bottom-80,.pb-80{padding-bottom:80px}.padding-left-80,.pl-80{padding-left:80px}.padding-horizontal-80,.ph-80{padding-left:80px;padding-right:80px}.padding-vertical-80,.pv-80{padding-top:80px;padding-bottom:80px}.p-85,.padding-85{padding:85px}.padding-top-85,.pt-85{padding-top:85px}.padding-right-85,.pr-85{padding-right:85px}.padding-bottom-85,.pb-85{padding-bottom:85px}.padding-left-85,.pl-85{padding-left:85px}.padding-horizontal-85,.ph-85{padding-left:85px;padding-right:85px}.padding-vertical-85,.pv-85{padding-top:85px;padding-bottom:85px}.p-90,.padding-90{padding:90px}.padding-top-90,.pt-90{padding-top:90px}.padding-right-90,.pr-90{padding-right:90px}.padding-bottom-90,.pb-90{padding-bottom:90px}.padding-left-90,.pl-90{padding-left:90px}.padding-horizontal-90,.ph-90{padding-left:90px;padding-right:90px}.padding-vertical-90,.pv-90{padding-top:90px;padding-bottom:90px}.p-95,.padding-95{padding:95px}.padding-top-95,.pt-95{padding-top:95px}.padding-right-95,.pr-95{padding-right:95px}.padding-bottom-95,.pb-95{padding-bottom:95px}.padding-left-95,.pl-95{padding-left:95px}.padding-horizontal-95,.ph-95{padding-left:95px;padding-right:95px}.padding-vertical-95,.pv-95{padding-top:95px;padding-bottom:95px}.p-100,.padding-100{padding:100px}.padding-top-100,.pt-100{padding-top:100px}.padding-right-100,.pr-100{padding-right:100px}.padding-bottom-100,.pb-100{padding-bottom:100px}.padding-left-100,.pl-100{padding-left:100px}.padding-horizontal-100,.ph-100{padding-left:100px;padding-right:100px}.padding-vertical-100,.pv-100{padding-top:100px;padding-bottom:100px}.p-8,.padding-8{padding:8px}.padding-top-8,.pt-8{padding-top:8px}.padding-right-8,.pr-8{padding-right:8px}.padding-bottom-8,.pb-8{padding-bottom:8px}.padding-left-8,.pl-8{padding-left:8px}.padding-horizontal-8,.ph-8{padding-left:8px;padding-right:8px}.padding-vertical-8,.pv-8{padding-top:8px;padding-bottom:8px}.p-16,.padding-16{padding:16px}.padding-top-16,.pt-16{padding-top:16px}.padding-right-16,.pr-16{padding-right:16px}.padding-bottom-16,.pb-16{padding-bottom:16px}.padding-left-16,.pl-16{padding-left:16px}.padding-horizontal-16,.ph-16{padding-left:16px;padding-right:16px}.padding-vertical-16,.pv-16{padding-top:16px;padding-bottom:16px}.p-24,.padding-24{padding:24px}.padding-top-24,.pt-24{padding-top:24px}.padding-right-24,.pr-24{padding-right:24px}.padding-bottom-24,.pb-24{padding-bottom:24px}.padding-left-24,.pl-24{padding-left:24px}.padding-horizontal-24,.ph-24{padding-left:24px;padding-right:24px}.padding-vertical-24,.pv-24{padding-top:24px;padding-bottom:24px}.p-32,.padding-32{padding:32px}.padding-top-32,.pt-32{padding-top:32px}.padding-right-32,.pr-32{padding-right:32px}.padding-bottom-32,.pb-32{padding-bottom:32px}.padding-left-32,.pl-32{padding-left:32px}.padding-horizontal-32,.ph-32{padding-left:32px;padding-right:32px}.padding-vertical-32,.pv-32{padding-top:32px;padding-bottom:32px}.p-48,.padding-48{padding:48px}.padding-top-48,.pt-48{padding-top:48px}.padding-right-48,.pr-48{padding-right:48px}.padding-bottom-48,.pb-48{padding-bottom:48px}.padding-left-48,.pl-48{padding-left:48px}.padding-horizontal-48,.ph-48{padding-left:48px;padding-right:48px}.padding-vertical-48,.pv-48{padding-top:48px;padding-bottom:48px}.p-56,.padding-56{padding:56px}.padding-top-56,.pt-56{padding-top:56px}.padding-right-56,.pr-56{padding-right:56px}.padding-bottom-56,.pb-56{padding-bottom:56px}.padding-left-56,.pl-56{padding-left:56px}.padding-horizontal-56,.ph-56{padding-left:56px;padding-right:56px}.padding-vertical-56,.pv-56{padding-top:56px;padding-bottom:56px}.p-64,.padding-64{padding:64px}.padding-top-64,.pt-64{padding-top:64px}.padding-right-64,.pr-64{padding-right:64px}.padding-bottom-64,.pb-64{padding-bottom:64px}.padding-left-64,.pl-64{padding-left:64px}.padding-horizontal-64,.ph-64{padding-left:64px;padding-right:64px}.padding-vertical-64,.pv-64{padding-top:64px;padding-bottom:64px}.p-72,.padding-72{padding:72px}.padding-top-72,.pt-72{padding-top:72px}.padding-right-72,.pr-72{padding-right:72px}.padding-bottom-72,.pb-72{padding-bottom:72px}.padding-left-72,.pl-72{padding-left:72px}.padding-horizontal-72,.ph-72{padding-left:72px;padding-right:72px}.padding-vertical-72,.pv-72{padding-top:72px;padding-bottom:72px}.p-88,.padding-88{padding:88px}.padding-top-88,.pt-88{padding-top:88px}.padding-right-88,.pr-88{padding-right:88px}.padding-bottom-88,.pb-88{padding-bottom:88px}.padding-left-88,.pl-88{padding-left:88px}.padding-horizontal-88,.ph-88{padding-left:88px;padding-right:88px}.padding-vertical-88,.pv-88{padding-top:88px;padding-bottom:88px}.p-96,.padding-96{padding:96px}.padding-top-96,.pt-96{padding-top:96px}.padding-right-96,.pr-96{padding-right:96px}.padding-bottom-96,.pb-96{padding-bottom:96px}.padding-left-96,.pl-96{padding-left:96px}.padding-horizontal-96,.ph-96{padding-left:96px;padding-right:96px}.padding-vertical-96,.pv-96{padding-top:96px;padding-bottom:96px}.m-0,.margin-0{margin:0}.margin-top-0,.mt-0{margin-top:0}.margin-right-0,.mr-0{margin-right:0}.margin-bottom-0,.mb-0{margin-bottom:0}.margin-left-0,.ml-0{margin-left:0}.margin-horizontal-0,.mh-0{margin-left:0;margin-right:0}.margin-vertical-0,.mv-0{margin-top:0;margin-bottom:0}.m-5,.margin-5{margin:5px}.margin-top-5,.mt-5{margin-top:5px}.margin-right-5,.mr-5{margin-right:5px}.margin-bottom-5,.mb-5{margin-bottom:5px}.margin-left-5,.ml-5{margin-left:5px}.margin-horizontal-5,.mh-5{margin-left:5px;margin-right:5px}.margin-vertical-5,.mv-5{margin-top:5px;margin-bottom:5px}.m-10,.margin-10{margin:10px}.margin-top-10,.mt-10{margin-top:10px}.margin-right-10,.mr-10{margin-right:10px}.margin-bottom-10,.mb-10{margin-bottom:10px}.margin-left-10,.ml-10{margin-left:10px}.margin-horizontal-10,.mh-10{margin-left:10px;margin-right:10px}.margin-vertical-10,.mv-10{margin-top:10px;margin-bottom:10px}.m-15,.margin-15{margin:15px}.margin-top-15,.mt-15{margin-top:15px}.margin-right-15,.mr-15{margin-right:15px}.margin-bottom-15,.mb-15{margin-bottom:15px}.margin-left-15,.ml-15{margin-left:15px}.margin-horizontal-15,.mh-15{margin-left:15px;margin-right:15px}.margin-vertical-15,.mv-15{margin-top:15px;margin-bottom:15px}.m-20,.margin-20{margin:20px}.margin-top-20,.mt-20{margin-top:20px}.margin-right-20,.mr-20{margin-right:20px}.margin-bottom-20,.mb-20{margin-bottom:20px}.margin-left-20,.ml-20{margin-left:20px}.margin-horizontal-20,.mh-20{margin-left:20px;margin-right:20px}.margin-vertical-20,.mv-20{margin-top:20px;margin-bottom:20px}.m-25,.margin-25{margin:25px}.margin-top-25,.mt-25{margin-top:25px}.margin-right-25,.mr-25{margin-right:25px}.margin-bottom-25,.mb-25{margin-bottom:25px}.margin-left-25,.ml-25{margin-left:25px}.margin-horizontal-25,.mh-25{margin-left:25px;margin-right:25px}.margin-vertical-25,.mv-25{margin-top:25px;margin-bottom:25px}.m-30,.margin-30{margin:30px}.margin-top-30,.mt-30{margin-top:30px}.margin-right-30,.mr-30{margin-right:30px}.margin-bottom-30,.mb-30{margin-bottom:30px}.margin-left-30,.ml-30{margin-left:30px}.margin-horizontal-30,.mh-30{margin-left:30px;margin-right:30px}.margin-vertical-30,.mv-30{margin-top:30px;margin-bottom:30px}.m-35,.margin-35{margin:35px}.margin-top-35,.mt-35{margin-top:35px}.margin-right-35,.mr-35{margin-right:35px}.margin-bottom-35,.mb-35{margin-bottom:35px}.margin-left-35,.ml-35{margin-left:35px}.margin-horizontal-35,.mh-35{margin-left:35px;margin-right:35px}.margin-vertical-35,.mv-35{margin-top:35px;margin-bottom:35px}.m-40,.margin-40{margin:40px}.margin-top-40,.mt-40{margin-top:40px}.margin-right-40,.mr-40{margin-right:40px}.margin-bottom-40,.mb-40{margin-bottom:40px}.margin-left-40,.ml-40{margin-left:40px}.margin-horizontal-40,.mh-40{margin-left:40px;margin-right:40px}.margin-vertical-40,.mv-40{margin-top:40px;margin-bottom:40px}.m-45,.margin-45{margin:45px}.margin-top-45,.mt-45{margin-top:45px}.margin-right-45,.mr-45{margin-right:45px}.margin-bottom-45,.mb-45{margin-bottom:45px}.margin-left-45,.ml-45{margin-left:45px}.margin-horizontal-45,.mh-45{margin-left:45px;margin-right:45px}.margin-vertical-45,.mv-45{margin-top:45px;margin-bottom:45px}.m-50,.margin-50{margin:50px}.margin-top-50,.mt-50{margin-top:50px}.margin-right-50,.mr-50{margin-right:50px}.margin-bottom-50,.mb-50{margin-bottom:50px}.margin-left-50,.ml-50{margin-left:50px}.margin-horizontal-50,.mh-50{margin-left:50px;margin-right:50px}.margin-vertical-50,.mv-50{margin-top:50px;margin-bottom:50px}.m-55,.margin-55{margin:55px}.margin-top-55,.mt-55{margin-top:55px}.margin-right-55,.mr-55{margin-right:55px}.margin-bottom-55,.mb-55{margin-bottom:55px}.margin-left-55,.ml-55{margin-left:55px}.margin-horizontal-55,.mh-55{margin-left:55px;margin-right:55px}.margin-vertical-55,.mv-55{margin-top:55px;margin-bottom:55px}.m-60,.margin-60{margin:60px}.margin-top-60,.mt-60{margin-top:60px}.margin-right-60,.mr-60{margin-right:60px}.margin-bottom-60,.mb-60{margin-bottom:60px}.margin-left-60,.ml-60{margin-left:60px}.margin-horizontal-60,.mh-60{margin-left:60px;margin-right:60px}.margin-vertical-60,.mv-60{margin-top:60px;margin-bottom:60px}.m-65,.margin-65{margin:65px}.margin-top-65,.mt-65{margin-top:65px}.margin-right-65,.mr-65{margin-right:65px}.margin-bottom-65,.mb-65{margin-bottom:65px}.margin-left-65,.ml-65{margin-left:65px}.margin-horizontal-65,.mh-65{margin-left:65px;margin-right:65px}.margin-vertical-65,.mv-65{margin-top:65px;margin-bottom:65px}.m-70,.margin-70{margin:70px}.margin-top-70,.mt-70{margin-top:70px}.margin-right-70,.mr-70{margin-right:70px}.margin-bottom-70,.mb-70{margin-bottom:70px}.margin-left-70,.ml-70{margin-left:70px}.margin-horizontal-70,.mh-70{margin-left:70px;margin-right:70px}.margin-vertical-70,.mv-70{margin-top:70px;margin-bottom:70px}.m-75,.margin-75{margin:75px}.margin-top-75,.mt-75{margin-top:75px}.margin-right-75,.mr-75{margin-right:75px}.margin-bottom-75,.mb-75{margin-bottom:75px}.margin-left-75,.ml-75{margin-left:75px}.margin-horizontal-75,.mh-75{margin-left:75px;margin-right:75px}.margin-vertical-75,.mv-75{margin-top:75px;margin-bottom:75px}.m-80,.margin-80{margin:80px}.margin-top-80,.mt-80{margin-top:80px}.margin-right-80,.mr-80{margin-right:80px}.margin-bottom-80,.mb-80{margin-bottom:80px}.margin-left-80,.ml-80{margin-left:80px}.margin-horizontal-80,.mh-80{margin-left:80px;margin-right:80px}.margin-vertical-80,.mv-80{margin-top:80px;margin-bottom:80px}.m-85,.margin-85{margin:85px}.margin-top-85,.mt-85{margin-top:85px}.margin-right-85,.mr-85{margin-right:85px}.margin-bottom-85,.mb-85{margin-bottom:85px}.margin-left-85,.ml-85{margin-left:85px}.margin-horizontal-85,.mh-85{margin-left:85px;margin-right:85px}.margin-vertical-85,.mv-85{margin-top:85px;margin-bottom:85px}.m-90,.margin-90{margin:90px}.margin-top-90,.mt-90{margin-top:90px}.margin-right-90,.mr-90{margin-right:90px}.margin-bottom-90,.mb-90{margin-bottom:90px}.margin-left-90,.ml-90{margin-left:90px}.margin-horizontal-90,.mh-90{margin-left:90px;margin-right:90px}.margin-vertical-90,.mv-90{margin-top:90px;margin-bottom:90px}.m-95,.margin-95{margin:95px}.margin-top-95,.mt-95{margin-top:95px}.margin-right-95,.mr-95{margin-right:95px}.margin-bottom-95,.mb-95{margin-bottom:95px}.margin-left-95,.ml-95{margin-left:95px}.margin-horizontal-95,.mh-95{margin-left:95px;margin-right:95px}.margin-vertical-95,.mv-95{margin-top:95px;margin-bottom:95px}.m-100,.margin-100{margin:100px}.margin-top-100,.mt-100{margin-top:100px}.margin-right-100,.mr-100{margin-right:100px}.margin-bottom-100,.mb-100{margin-bottom:100px}.margin-left-100,.ml-100{margin-left:100px}.margin-horizontal-100,.mh-100{margin-left:100px;margin-right:100px}.margin-vertical-100,.mv-100{margin-top:100px;margin-bottom:100px}.m-8,.margin-8{margin:8px}.margin-top-8,.mt-8{margin-top:8px}.margin-right-8,.mr-8{margin-right:8px}.margin-bottom-8,.mb-8{margin-bottom:8px}.margin-left-8,.ml-8{margin-left:8px}.margin-horizontal-8,.mh-8{margin-left:8px;margin-right:8px}.margin-vertical-8,.mv-8{margin-top:8px;margin-bottom:8px}.m-16,.margin-16{margin:16px}.margin-top-16,.mt-16{margin-top:16px}.margin-right-16,.mr-16{margin-right:16px}.margin-bottom-16,.mb-16{margin-bottom:16px}.margin-left-16,.ml-16{margin-left:16px}.margin-horizontal-16,.mh-16{margin-left:16px;margin-right:16px}.margin-vertical-16,.mv-16{margin-top:16px;margin-bottom:16px}.m-24,.margin-24{margin:24px}.margin-top-24,.mt-24{margin-top:24px}.margin-right-24,.mr-24{margin-right:24px}.margin-bottom-24,.mb-24{margin-bottom:24px}.margin-left-24,.ml-24{margin-left:24px}.margin-horizontal-24,.mh-24{margin-left:24px;margin-right:24px}.margin-vertical-24,.mv-24{margin-top:24px;margin-bottom:24px}.m-32,.margin-32{margin:32px}.margin-top-32,.mt-32{margin-top:32px}.margin-right-32,.mr-32{margin-right:32px}.margin-bottom-32,.mb-32{margin-bottom:32px}.margin-left-32,.ml-32{margin-left:32px}.margin-horizontal-32,.mh-32{margin-left:32px;margin-right:32px}.margin-vertical-32,.mv-32{margin-top:32px;margin-bottom:32px}.m-48,.margin-48{margin:48px}.margin-top-48,.mt-48{margin-top:48px}.margin-right-48,.mr-48{margin-right:48px}.margin-bottom-48,.mb-48{margin-bottom:48px}.margin-left-48,.ml-48{margin-left:48px}.margin-horizontal-48,.mh-48{margin-left:48px;margin-right:48px}.margin-vertical-48,.mv-48{margin-top:48px;margin-bottom:48px}.m-56,.margin-56{margin:56px}.margin-top-56,.mt-56{margin-top:56px}.margin-right-56,.mr-56{margin-right:56px}.margin-bottom-56,.mb-56{margin-bottom:56px}.margin-left-56,.ml-56{margin-left:56px}.margin-horizontal-56,.mh-56{margin-left:56px;margin-right:56px}.margin-vertical-56,.mv-56{margin-top:56px;margin-bottom:56px}.m-64,.margin-64{margin:64px}.margin-top-64,.mt-64{margin-top:64px}.margin-right-64,.mr-64{margin-right:64px}.margin-bottom-64,.mb-64{margin-bottom:64px}.margin-left-64,.ml-64{margin-left:64px}.margin-horizontal-64,.mh-64{margin-left:64px;margin-right:64px}.margin-vertical-64,.mv-64{margin-top:64px;margin-bottom:64px}.m-72,.margin-72{margin:72px}.margin-top-72,.mt-72{margin-top:72px}.margin-right-72,.mr-72{margin-right:72px}.margin-bottom-72,.mb-72{margin-bottom:72px}.margin-left-72,.ml-72{margin-left:72px}.margin-horizontal-72,.mh-72{margin-left:72px;margin-right:72px}.margin-vertical-72,.mv-72{margin-top:72px;margin-bottom:72px}.m-88,.margin-88{margin:88px}.margin-top-88,.mt-88{margin-top:88px}.margin-right-88,.mr-88{margin-right:88px}.margin-bottom-88,.mb-88{margin-bottom:88px}.margin-left-88,.ml-88{margin-left:88px}.margin-horizontal-88,.mh-88{margin-left:88px;margin-right:88px}.margin-vertical-88,.mv-88{margin-top:88px;margin-bottom:88px}.m-96,.margin-96{margin:96px}.margin-top-96,.mt-96{margin-top:96px}.margin-right-96,.mr-96{margin-right:96px}.margin-bottom-96,.mb-96{margin-bottom:96px}.margin-left-96,.ml-96{margin-left:96px}.margin-horizontal-96,.mh-96{margin-left:96px;margin-right:96px}.margin-vertical-96,.mv-96{margin-top:96px;margin-bottom:96px}.h-0,.height-0{height:0!important;min-height:0!important;max-height:0!important}.w-0,.width-0{width:0!important;min-width:0!important;max-width:0!important}.h-5,.height-5{height:5px!important;min-height:5px!important;max-height:5px!important}.w-5,.width-5{width:5px!important;min-width:5px!important;max-width:5px!important}.h-10,.height-10{height:10px!important;min-height:10px!important;max-height:10px!important}.w-10,.width-10{width:10px!important;min-width:10px!important;max-width:10px!important}.h-15,.height-15{height:15px!important;min-height:15px!important;max-height:15px!important}.w-15,.width-15{width:15px!important;min-width:15px!important;max-width:15px!important}.h-20,.height-20{height:20px!important;min-height:20px!important;max-height:20px!important}.w-20,.width-20{width:20px!important;min-width:20px!important;max-width:20px!important}.h-25,.height-25{height:25px!important;min-height:25px!important;max-height:25px!important}.w-25,.width-25{width:25px!important;min-width:25px!important;max-width:25px!important}.h-30,.height-30{height:30px!important;min-height:30px!important;max-height:30px!important}.w-30,.width-30{width:30px!important;min-width:30px!important;max-width:30px!important}.h-35,.height-35{height:35px!important;min-height:35px!important;max-height:35px!important}.w-35,.width-35{width:35px!important;min-width:35px!important;max-width:35px!important}.h-40,.height-40{height:40px!important;min-height:40px!important;max-height:40px!important}.w-40,.width-40{width:40px!important;min-width:40px!important;max-width:40px!important}.h-45,.height-45{height:45px!important;min-height:45px!important;max-height:45px!important}.w-45,.width-45{width:45px!important;min-width:45px!important;max-width:45px!important}.h-50,.height-50{height:50px!important;min-height:50px!important;max-height:50px!important}.w-50,.width-50{width:50px!important;min-width:50px!important;max-width:50px!important}.h-55,.height-55{height:55px!important;min-height:55px!important;max-height:55px!important}.w-55,.width-55{width:55px!important;min-width:55px!important;max-width:55px!important}.h-60,.height-60{height:60px!important;min-height:60px!important;max-height:60px!important}.w-60,.width-60{width:60px!important;min-width:60px!important;max-width:60px!important}.h-65,.height-65{height:65px!important;min-height:65px!important;max-height:65px!important}.w-65,.width-65{width:65px!important;min-width:65px!important;max-width:65px!important}.h-70,.height-70{height:70px!important;min-height:70px!important;max-height:70px!important}.w-70,.width-70{width:70px!important;min-width:70px!important;max-width:70px!important}.h-75,.height-75{height:75px!important;min-height:75px!important;max-height:75px!important}.w-75,.width-75{width:75px!important;min-width:75px!important;max-width:75px!important}.h-80,.height-80{height:80px!important;min-height:80px!important;max-height:80px!important}.w-80,.width-80{width:80px!important;min-width:80px!important;max-width:80px!important}.h-85,.height-85{height:85px!important;min-height:85px!important;max-height:85px!important}.w-85,.width-85{width:85px!important;min-width:85px!important;max-width:85px!important}.h-90,.height-90{height:90px!important;min-height:90px!important;max-height:90px!important}.w-90,.width-90{width:90px!important;min-width:90px!important;max-width:90px!important}.h-95,.height-95{height:95px!important;min-height:95px!important;max-height:95px!important}.w-95,.width-95{width:95px!important;min-width:95px!important;max-width:95px!important}.h-100,.height-100{height:100px!important;min-height:100px!important;max-height:100px!important}.w-100,.width-100{width:100px!important;min-width:100px!important;max-width:100px!important}.h-105,.height-105{height:105px!important;min-height:105px!important;max-height:105px!important}.w-105,.width-105{width:105px!important;min-width:105px!important;max-width:105px!important}.h-110,.height-110{height:110px!important;min-height:110px!important;max-height:110px!important}.w-110,.width-110{width:110px!important;min-width:110px!important;max-width:110px!important}.h-115,.height-115{height:115px!important;min-height:115px!important;max-height:115px!important}.w-115,.width-115{width:115px!important;min-width:115px!important;max-width:115px!important}.h-120,.height-120{height:120px!important;min-height:120px!important;max-height:120px!important}.w-120,.width-120{width:120px!important;min-width:120px!important;max-width:120px!important}.h-125,.height-125{height:125px!important;min-height:125px!important;max-height:125px!important}.w-125,.width-125{width:125px!important;min-width:125px!important;max-width:125px!important}.h-130,.height-130{height:130px!important;min-height:130px!important;max-height:130px!important}.w-130,.width-130{width:130px!important;min-width:130px!important;max-width:130px!important}.h-135,.height-135{height:135px!important;min-height:135px!important;max-height:135px!important}.w-135,.width-135{width:135px!important;min-width:135px!important;max-width:135px!important}.h-140,.height-140{height:140px!important;min-height:140px!important;max-height:140px!important}.w-140,.width-140{width:140px!important;min-width:140px!important;max-width:140px!important}.h-145,.height-145{height:145px!important;min-height:145px!important;max-height:145px!important}.w-145,.width-145{width:145px!important;min-width:145px!important;max-width:145px!important}.h-150,.height-150{height:150px!important;min-height:150px!important;max-height:150px!important}.w-150,.width-150{width:150px!important;min-width:150px!important;max-width:150px!important}.h-155,.height-155{height:155px!important;min-height:155px!important;max-height:155px!important}.w-155,.width-155{width:155px!important;min-width:155px!important;max-width:155px!important}.h-160,.height-160{height:160px!important;min-height:160px!important;max-height:160px!important}.w-160,.width-160{width:160px!important;min-width:160px!important;max-width:160px!important}.h-165,.height-165{height:165px!important;min-height:165px!important;max-height:165px!important}.w-165,.width-165{width:165px!important;min-width:165px!important;max-width:165px!important}.h-170,.height-170{height:170px!important;min-height:170px!important;max-height:170px!important}.w-170,.width-170{width:170px!important;min-width:170px!important;max-width:170px!important}.h-175,.height-175{height:175px!important;min-height:175px!important;max-height:175px!important}.w-175,.width-175{width:175px!important;min-width:175px!important;max-width:175px!important}.h-180,.height-180{height:180px!important;min-height:180px!important;max-height:180px!important}.w-180,.width-180{width:180px!important;min-width:180px!important;max-width:180px!important}.h-185,.height-185{height:185px!important;min-height:185px!important;max-height:185px!important}.w-185,.width-185{width:185px!important;min-width:185px!important;max-width:185px!important}.h-190,.height-190{height:190px!important;min-height:190px!important;max-height:190px!important}.w-190,.width-190{width:190px!important;min-width:190px!important;max-width:190px!important}.h-195,.height-195{height:195px!important;min-height:195px!important;max-height:195px!important}.w-195,.width-195{width:195px!important;min-width:195px!important;max-width:195px!important}.h-200,.height-200{height:200px!important;min-height:200px!important;max-height:200px!important}.w-200,.width-200{width:200px!important;min-width:200px!important;max-width:200px!important}.h-205,.height-205{height:205px!important;min-height:205px!important;max-height:205px!important}.w-205,.width-205{width:205px!important;min-width:205px!important;max-width:205px!important}.h-210,.height-210{height:210px!important;min-height:210px!important;max-height:210px!important}.w-210,.width-210{width:210px!important;min-width:210px!important;max-width:210px!important}.h-215,.height-215{height:215px!important;min-height:215px!important;max-height:215px!important}.w-215,.width-215{width:215px!important;min-width:215px!important;max-width:215px!important}.h-220,.height-220{height:220px!important;min-height:220px!important;max-height:220px!important}.w-220,.width-220{width:220px!important;min-width:220px!important;max-width:220px!important}.h-225,.height-225{height:225px!important;min-height:225px!important;max-height:225px!important}.w-225,.width-225{width:225px!important;min-width:225px!important;max-width:225px!important}.h-230,.height-230{height:230px!important;min-height:230px!important;max-height:230px!important}.w-230,.width-230{width:230px!important;min-width:230px!important;max-width:230px!important}.h-235,.height-235{height:235px!important;min-height:235px!important;max-height:235px!important}.w-235,.width-235{width:235px!important;min-width:235px!important;max-width:235px!important}.h-240,.height-240{height:240px!important;min-height:240px!important;max-height:240px!important}.w-240,.width-240{width:240px!important;min-width:240px!important;max-width:240px!important}.h-245,.height-245{height:245px!important;min-height:245px!important;max-height:245px!important}.w-245,.width-245{width:245px!important;min-width:245px!important;max-width:245px!important}.h-250,.height-250{height:250px!important;min-height:250px!important;max-height:250px!important}.w-250,.width-250{width:250px!important;min-width:250px!important;max-width:250px!important}.h-255,.height-255{height:255px!important;min-height:255px!important;max-height:255px!important}.w-255,.width-255{width:255px!important;min-width:255px!important;max-width:255px!important}.h-260,.height-260{height:260px!important;min-height:260px!important;max-height:260px!important}.w-260,.width-260{width:260px!important;min-width:260px!important;max-width:260px!important}.h-265,.height-265{height:265px!important;min-height:265px!important;max-height:265px!important}.w-265,.width-265{width:265px!important;min-width:265px!important;max-width:265px!important}.h-270,.height-270{height:270px!important;min-height:270px!important;max-height:270px!important}.w-270,.width-270{width:270px!important;min-width:270px!important;max-width:270px!important}.h-275,.height-275{height:275px!important;min-height:275px!important;max-height:275px!important}.w-275,.width-275{width:275px!important;min-width:275px!important;max-width:275px!important}.h-280,.height-280{height:280px!important;min-height:280px!important;max-height:280px!important}.w-280,.width-280{width:280px!important;min-width:280px!important;max-width:280px!important}.h-285,.height-285{height:285px!important;min-height:285px!important;max-height:285px!important}.w-285,.width-285{width:285px!important;min-width:285px!important;max-width:285px!important}.h-290,.height-290{height:290px!important;min-height:290px!important;max-height:290px!important}.w-290,.width-290{width:290px!important;min-width:290px!important;max-width:290px!important}.h-295,.height-295{height:295px!important;min-height:295px!important;max-height:295px!important}.w-295,.width-295{width:295px!important;min-width:295px!important;max-width:295px!important}.h-300,.height-300{height:300px!important;min-height:300px!important;max-height:300px!important}.w-300,.width-300{width:300px!important;min-width:300px!important;max-width:300px!important}.h-305,.height-305{height:305px!important;min-height:305px!important;max-height:305px!important}.w-305,.width-305{width:305px!important;min-width:305px!important;max-width:305px!important}.h-310,.height-310{height:310px!important;min-height:310px!important;max-height:310px!important}.w-310,.width-310{width:310px!important;min-width:310px!important;max-width:310px!important}.h-315,.height-315{height:315px!important;min-height:315px!important;max-height:315px!important}.w-315,.width-315{width:315px!important;min-width:315px!important;max-width:315px!important}.h-320,.height-320{height:320px!important;min-height:320px!important;max-height:320px!important}.w-320,.width-320{width:320px!important;min-width:320px!important;max-width:320px!important}.h-325,.height-325{height:325px!important;min-height:325px!important;max-height:325px!important}.w-325,.width-325{width:325px!important;min-width:325px!important;max-width:325px!important}.h-330,.height-330{height:330px!important;min-height:330px!important;max-height:330px!important}.w-330,.width-330{width:330px!important;min-width:330px!important;max-width:330px!important}.h-335,.height-335{height:335px!important;min-height:335px!important;max-height:335px!important}.w-335,.width-335{width:335px!important;min-width:335px!important;max-width:335px!important}.h-340,.height-340{height:340px!important;min-height:340px!important;max-height:340px!important}.w-340,.width-340{width:340px!important;min-width:340px!important;max-width:340px!important}.h-345,.height-345{height:345px!important;min-height:345px!important;max-height:345px!important}.w-345,.width-345{width:345px!important;min-width:345px!important;max-width:345px!important}.h-350,.height-350{height:350px!important;min-height:350px!important;max-height:350px!important}.w-350,.width-350{width:350px!important;min-width:350px!important;max-width:350px!important}.h-355,.height-355{height:355px!important;min-height:355px!important;max-height:355px!important}.w-355,.width-355{width:355px!important;min-width:355px!important;max-width:355px!important}.h-360,.height-360{height:360px!important;min-height:360px!important;max-height:360px!important}.w-360,.width-360{width:360px!important;min-width:360px!important;max-width:360px!important}.h-365,.height-365{height:365px!important;min-height:365px!important;max-height:365px!important}.w-365,.width-365{width:365px!important;min-width:365px!important;max-width:365px!important}.h-370,.height-370{height:370px!important;min-height:370px!important;max-height:370px!important}.w-370,.width-370{width:370px!important;min-width:370px!important;max-width:370px!important}.h-375,.height-375{height:375px!important;min-height:375px!important;max-height:375px!important}.w-375,.width-375{width:375px!important;min-width:375px!important;max-width:375px!important}.h-380,.height-380{height:380px!important;min-height:380px!important;max-height:380px!important}.w-380,.width-380{width:380px!important;min-width:380px!important;max-width:380px!important}.h-385,.height-385{height:385px!important;min-height:385px!important;max-height:385px!important}.w-385,.width-385{width:385px!important;min-width:385px!important;max-width:385px!important}.h-390,.height-390{height:390px!important;min-height:390px!important;max-height:390px!important}.w-390,.width-390{width:390px!important;min-width:390px!important;max-width:390px!important}.h-395,.height-395{height:395px!important;min-height:395px!important;max-height:395px!important}.w-395,.width-395{width:395px!important;min-width:395px!important;max-width:395px!important}.h-400,.height-400{height:400px!important;min-height:400px!important;max-height:400px!important}.w-400,.width-400{width:400px!important;min-width:400px!important;max-width:400px!important}.h-405,.height-405{height:405px!important;min-height:405px!important;max-height:405px!important}.w-405,.width-405{width:405px!important;min-width:405px!important;max-width:405px!important}.h-410,.height-410{height:410px!important;min-height:410px!important;max-height:410px!important}.w-410,.width-410{width:410px!important;min-width:410px!important;max-width:410px!important}.h-415,.height-415{height:415px!important;min-height:415px!important;max-height:415px!important}.w-415,.width-415{width:415px!important;min-width:415px!important;max-width:415px!important}.h-420,.height-420{height:420px!important;min-height:420px!important;max-height:420px!important}.w-420,.width-420{width:420px!important;min-width:420px!important;max-width:420px!important}.h-425,.height-425{height:425px!important;min-height:425px!important;max-height:425px!important}.w-425,.width-425{width:425px!important;min-width:425px!important;max-width:425px!important}.h-430,.height-430{height:430px!important;min-height:430px!important;max-height:430px!important}.w-430,.width-430{width:430px!important;min-width:430px!important;max-width:430px!important}.h-435,.height-435{height:435px!important;min-height:435px!important;max-height:435px!important}.w-435,.width-435{width:435px!important;min-width:435px!important;max-width:435px!important}.h-440,.height-440{height:440px!important;min-height:440px!important;max-height:440px!important}.w-440,.width-440{width:440px!important;min-width:440px!important;max-width:440px!important}.h-445,.height-445{height:445px!important;min-height:445px!important;max-height:445px!important}.w-445,.width-445{width:445px!important;min-width:445px!important;max-width:445px!important}.h-450,.height-450{height:450px!important;min-height:450px!important;max-height:450px!important}.w-450,.width-450{width:450px!important;min-width:450px!important;max-width:450px!important}.h-455,.height-455{height:455px!important;min-height:455px!important;max-height:455px!important}.w-455,.width-455{width:455px!important;min-width:455px!important;max-width:455px!important}.h-460,.height-460{height:460px!important;min-height:460px!important;max-height:460px!important}.w-460,.width-460{width:460px!important;min-width:460px!important;max-width:460px!important}.h-465,.height-465{height:465px!important;min-height:465px!important;max-height:465px!important}.w-465,.width-465{width:465px!important;min-width:465px!important;max-width:465px!important}.h-470,.height-470{height:470px!important;min-height:470px!important;max-height:470px!important}.w-470,.width-470{width:470px!important;min-width:470px!important;max-width:470px!important}.h-475,.height-475{height:475px!important;min-height:475px!important;max-height:475px!important}.w-475,.width-475{width:475px!important;min-width:475px!important;max-width:475px!important}.h-480,.height-480{height:480px!important;min-height:480px!important;max-height:480px!important}.w-480,.width-480{width:480px!important;min-width:480px!important;max-width:480px!important}.h-485,.height-485{height:485px!important;min-height:485px!important;max-height:485px!important}.w-485,.width-485{width:485px!important;min-width:485px!important;max-width:485px!important}.h-490,.height-490{height:490px!important;min-height:490px!important;max-height:490px!important}.w-490,.width-490{width:490px!important;min-width:490px!important;max-width:490px!important}.h-495,.height-495{height:495px!important;min-height:495px!important;max-height:495px!important}.w-495,.width-495{width:495px!important;min-width:495px!important;max-width:495px!important}.h-500,.height-500{height:500px!important;min-height:500px!important;max-height:500px!important}.w-500,.width-500{width:500px!important;min-width:500px!important;max-width:500px!important}.h-8,.height-8{height:8px!important;min-height:8px!important;max-height:8px!important}.w-8,.width-8{width:8px!important;min-width:8px!important;max-width:8px!important}.h-16,.height-16{height:16px!important;min-height:16px!important;max-height:16px!important}.w-16,.width-16{width:16px!important;min-width:16px!important;max-width:16px!important}.h-24,.height-24{height:24px!important;min-height:24px!important;max-height:24px!important}.w-24,.width-24{width:24px!important;min-width:24px!important;max-width:24px!important}.h-32,.height-32{height:32px!important;min-height:32px!important;max-height:32px!important}.w-32,.width-32{width:32px!important;min-width:32px!important;max-width:32px!important}.h-48,.height-48{height:48px!important;min-height:48px!important;max-height:48px!important}.w-48,.width-48{width:48px!important;min-width:48px!important;max-width:48px!important}.h-56,.height-56{height:56px!important;min-height:56px!important;max-height:56px!important}.w-56,.width-56{width:56px!important;min-width:56px!important;max-width:56px!important}.h-64,.height-64{height:64px!important;min-height:64px!important;max-height:64px!important}.w-64,.width-64{width:64px!important;min-width:64px!important;max-width:64px!important}.h-72,.height-72{height:72px!important;min-height:72px!important;max-height:72px!important}.w-72,.width-72{width:72px!important;min-width:72px!important;max-width:72px!important}.h-88,.height-88{height:88px!important;min-height:88px!important;max-height:88px!important}.w-88,.width-88{width:88px!important;min-width:88px!important;max-width:88px!important}.h-96,.height-96{height:96px!important;min-height:96px!important;max-height:96px!important}.w-96,.width-96{width:96px!important;min-width:96px!important;max-width:96px!important}.h-104,.height-104{height:104px!important;min-height:104px!important;max-height:104px!important}.w-104,.width-104{width:104px!important;min-width:104px!important;max-width:104px!important}.h-112,.height-112{height:112px!important;min-height:112px!important;max-height:112px!important}.w-112,.width-112{width:112px!important;min-width:112px!important;max-width:112px!important}.h-128,.height-128{height:128px!important;min-height:128px!important;max-height:128px!important}.w-128,.width-128{width:128px!important;min-width:128px!important;max-width:128px!important}.h-136,.height-136{height:136px!important;min-height:136px!important;max-height:136px!important}.w-136,.width-136{width:136px!important;min-width:136px!important;max-width:136px!important}.h-144,.height-144{height:144px!important;min-height:144px!important;max-height:144px!important}.w-144,.width-144{width:144px!important;min-width:144px!important;max-width:144px!important}.h-152,.height-152{height:152px!important;min-height:152px!important;max-height:152px!important}.w-152,.width-152{width:152px!important;min-width:152px!important;max-width:152px!important}.h-168,.height-168{height:168px!important;min-height:168px!important;max-height:168px!important}.w-168,.width-168{width:168px!important;min-width:168px!important;max-width:168px!important}.h-176,.height-176{height:176px!important;min-height:176px!important;max-height:176px!important}.w-176,.width-176{width:176px!important;min-width:176px!important;max-width:176px!important}.h-184,.height-184{height:184px!important;min-height:184px!important;max-height:184px!important}.w-184,.width-184{width:184px!important;min-width:184px!important;max-width:184px!important}.h-192,.height-192{height:192px!important;min-height:192px!important;max-height:192px!important}.w-192,.width-192{width:192px!important;min-width:192px!important;max-width:192px!important}.h-208,.height-208{height:208px!important;min-height:208px!important;max-height:208px!important}.w-208,.width-208{width:208px!important;min-width:208px!important;max-width:208px!important}.h-216,.height-216{height:216px!important;min-height:216px!important;max-height:216px!important}.w-216,.width-216{width:216px!important;min-width:216px!important;max-width:216px!important}.h-224,.height-224{height:224px!important;min-height:224px!important;max-height:224px!important}.w-224,.width-224{width:224px!important;min-width:224px!important;max-width:224px!important}.h-232,.height-232{height:232px!important;min-height:232px!important;max-height:232px!important}.w-232,.width-232{width:232px!important;min-width:232px!important;max-width:232px!important}.h-248,.height-248{height:248px!important;min-height:248px!important;max-height:248px!important}.w-248,.width-248{width:248px!important;min-width:248px!important;max-width:248px!important}.h-256,.height-256{height:256px!important;min-height:256px!important;max-height:256px!important}.w-256,.width-256{width:256px!important;min-width:256px!important;max-width:256px!important}.h-264,.height-264{height:264px!important;min-height:264px!important;max-height:264px!important}.w-264,.width-264{width:264px!important;min-width:264px!important;max-width:264px!important}.h-272,.height-272{height:272px!important;min-height:272px!important;max-height:272px!important}.w-272,.width-272{width:272px!important;min-width:272px!important;max-width:272px!important}.h-288,.height-288{height:288px!important;min-height:288px!important;max-height:288px!important}.w-288,.width-288{width:288px!important;min-width:288px!important;max-width:288px!important}.h-296,.height-296{height:296px!important;min-height:296px!important;max-height:296px!important}.w-296,.width-296{width:296px!important;min-width:296px!important;max-width:296px!important}.h-304,.height-304{height:304px!important;min-height:304px!important;max-height:304px!important}.w-304,.width-304{width:304px!important;min-width:304px!important;max-width:304px!important}.h-312,.height-312{height:312px!important;min-height:312px!important;max-height:312px!important}.w-312,.width-312{width:312px!important;min-width:312px!important;max-width:312px!important}.h-328,.height-328{height:328px!important;min-height:328px!important;max-height:328px!important}.w-328,.width-328{width:328px!important;min-width:328px!important;max-width:328px!important}.h-336,.height-336{height:336px!important;min-height:336px!important;max-height:336px!important}.w-336,.width-336{width:336px!important;min-width:336px!important;max-width:336px!important}.h-344,.height-344{height:344px!important;min-height:344px!important;max-height:344px!important}.w-344,.width-344{width:344px!important;min-width:344px!important;max-width:344px!important}.h-352,.height-352{height:352px!important;min-height:352px!important;max-height:352px!important}.w-352,.width-352{width:352px!important;min-width:352px!important;max-width:352px!important}.h-368,.height-368{height:368px!important;min-height:368px!important;max-height:368px!important}.w-368,.width-368{width:368px!important;min-width:368px!important;max-width:368px!important}.h-376,.height-376{height:376px!important;min-height:376px!important;max-height:376px!important}.w-376,.width-376{width:376px!important;min-width:376px!important;max-width:376px!important}.h-384,.height-384{height:384px!important;min-height:384px!important;max-height:384px!important}.w-384,.width-384{width:384px!important;min-width:384px!important;max-width:384px!important}.h-392,.height-392{height:392px!important;min-height:392px!important;max-height:392px!important}.w-392,.width-392{width:392px!important;min-width:392px!important;max-width:392px!important}.h-408,.height-408{height:408px!important;min-height:408px!important;max-height:408px!important}.w-408,.width-408{width:408px!important;min-width:408px!important;max-width:408px!important}.h-416,.height-416{height:416px!important;min-height:416px!important;max-height:416px!important}.w-416,.width-416{width:416px!important;min-width:416px!important;max-width:416px!important}.h-424,.height-424{height:424px!important;min-height:424px!important;max-height:424px!important}.w-424,.width-424{width:424px!important;min-width:424px!important;max-width:424px!important}.h-432,.height-432{height:432px!important;min-height:432px!important;max-height:432px!important}.w-432,.width-432{width:432px!important;min-width:432px!important;max-width:432px!important}.h-448,.height-448{height:448px!important;min-height:448px!important;max-height:448px!important}.w-448,.width-448{width:448px!important;min-width:448px!important;max-width:448px!important}.h-456,.height-456{height:456px!important;min-height:456px!important;max-height:456px!important}.w-456,.width-456{width:456px!important;min-width:456px!important;max-width:456px!important}.h-464,.height-464{height:464px!important;min-height:464px!important;max-height:464px!important}.w-464,.width-464{width:464px!important;min-width:464px!important;max-width:464px!important}.h-472,.height-472{height:472px!important;min-height:472px!important;max-height:472px!important}.w-472,.width-472{width:472px!important;min-width:472px!important;max-width:472px!important}.h-488,.height-488{height:488px!important;min-height:488px!important;max-height:488px!important}.w-488,.width-488{width:488px!important;min-width:488px!important;max-width:488px!important}.h-496,.height-496{height:496px!important;min-height:496px!important;max-height:496px!important}.w-496,.width-496{width:496px!important;min-width:496px!important;max-width:496px!important}.h-504,.height-504{height:504px!important;min-height:504px!important;max-height:504px!important}.w-504,.width-504{width:504px!important;min-width:504px!important;max-width:504px!important}.h-512,.height-512{height:512px!important;min-height:512px!important;max-height:512px!important}.w-512,.width-512{width:512px!important;min-width:512px!important;max-width:512px!important}.h-528,.height-528{height:528px!important;min-height:528px!important;max-height:528px!important}.w-528,.width-528{width:528px!important;min-width:528px!important;max-width:528px!important}.h-536,.height-536{height:536px!important;min-height:536px!important;max-height:536px!important}.w-536,.width-536{width:536px!important;min-width:536px!important;max-width:536px!important}.h-544,.height-544{height:544px!important;min-height:544px!important;max-height:544px!important}.w-544,.width-544{width:544px!important;min-width:544px!important;max-width:544px!important}.h-552,.height-552{height:552px!important;min-height:552px!important;max-height:552px!important}.w-552,.width-552{width:552px!important;min-width:552px!important;max-width:552px!important}.h-568,.height-568{height:568px!important;min-height:568px!important;max-height:568px!important}.w-568,.width-568{width:568px!important;min-width:568px!important;max-width:568px!important}.h-576,.height-576{height:576px!important;min-height:576px!important;max-height:576px!important}.w-576,.width-576{width:576px!important;min-width:576px!important;max-width:576px!important}.h-584,.height-584{height:584px!important;min-height:584px!important;max-height:584px!important}.w-584,.width-584{width:584px!important;min-width:584px!important;max-width:584px!important}.h-592,.height-592{height:592px!important;min-height:592px!important;max-height:592px!important}.w-592,.width-592{width:592px!important;min-width:592px!important;max-width:592px!important}.h-608,.height-608{height:608px!important;min-height:608px!important;max-height:608px!important}.w-608,.width-608{width:608px!important;min-width:608px!important;max-width:608px!important}.h-616,.height-616{height:616px!important;min-height:616px!important;max-height:616px!important}.w-616,.width-616{width:616px!important;min-width:616px!important;max-width:616px!important}.h-624,.height-624{height:624px!important;min-height:624px!important;max-height:624px!important}.w-624,.width-624{width:624px!important;min-width:624px!important;max-width:624px!important}.h-632,.height-632{height:632px!important;min-height:632px!important;max-height:632px!important}.w-632,.width-632{width:632px!important;min-width:632px!important;max-width:632px!important}.h-648,.height-648{height:648px!important;min-height:648px!important;max-height:648px!important}.w-648,.width-648{width:648px!important;min-width:648px!important;max-width:648px!important}.h-656,.height-656{height:656px!important;min-height:656px!important;max-height:656px!important}.w-656,.width-656{width:656px!important;min-width:656px!important;max-width:656px!important}.h-664,.height-664{height:664px!important;min-height:664px!important;max-height:664px!important}.w-664,.width-664{width:664px!important;min-width:664px!important;max-width:664px!important}.h-672,.height-672{height:672px!important;min-height:672px!important;max-height:672px!important}.w-672,.width-672{width:672px!important;min-width:672px!important;max-width:672px!important}.h-688,.height-688{height:688px!important;min-height:688px!important;max-height:688px!important}.w-688,.width-688{width:688px!important;min-width:688px!important;max-width:688px!important}.h-696,.height-696{height:696px!important;min-height:696px!important;max-height:696px!important}.w-696,.width-696{width:696px!important;min-width:696px!important;max-width:696px!important}.h-704,.height-704{height:704px!important;min-height:704px!important;max-height:704px!important}.w-704,.width-704{width:704px!important;min-width:704px!important;max-width:704px!important}.h-712,.height-712{height:712px!important;min-height:712px!important;max-height:712px!important}.w-712,.width-712{width:712px!important;min-width:712px!important;max-width:712px!important}.h-728,.height-728{height:728px!important;min-height:728px!important;max-height:728px!important}.w-728,.width-728{width:728px!important;min-width:728px!important;max-width:728px!important}.h-736,.height-736{height:736px!important;min-height:736px!important;max-height:736px!important}.w-736,.width-736{width:736px!important;min-width:736px!important;max-width:736px!important}.h-744,.height-744{height:744px!important;min-height:744px!important;max-height:744px!important}.w-744,.width-744{width:744px!important;min-width:744px!important;max-width:744px!important}.h-752,.height-752{height:752px!important;min-height:752px!important;max-height:752px!important}.w-752,.width-752{width:752px!important;min-width:752px!important;max-width:752px!important}.h-768,.height-768{height:768px!important;min-height:768px!important;max-height:768px!important}.w-768,.width-768{width:768px!important;min-width:768px!important;max-width:768px!important}.h-776,.height-776{height:776px!important;min-height:776px!important;max-height:776px!important}.w-776,.width-776{width:776px!important;min-width:776px!important;max-width:776px!important}.h-784,.height-784{height:784px!important;min-height:784px!important;max-height:784px!important}.w-784,.width-784{width:784px!important;min-width:784px!important;max-width:784px!important}.h-792,.height-792{height:792px!important;min-height:792px!important;max-height:792px!important}.w-792,.width-792{width:792px!important;min-width:792px!important;max-width:792px!important}.b,.border{border:1px solid rgba(0,0,0,.12)}.border-top,.bt{border-top:1px solid rgba(0,0,0,.12)}.border-right,.br{border-right:1px solid rgba(0,0,0,.12)}.bb,.border-bottom{border-bottom:1px solid rgba(0,0,0,.12)}.bl,.border-left{border-left:1px solid rgba(0,0,0,.12)}.bh,.border-horizontal{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}.border-vertical,.bv{border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.brad-1{border-radius:1px}.brad-2{border-radius:2px}.brad-3{border-radius:3px}.brad-4{border-radius:4px}.brad-5{border-radius:5px}.brad-6{border-radius:6px}.brad-7{border-radius:7px}.brad-8{border-radius:8px}.brad-9{border-radius:9px}.brad-10{border-radius:10px}.brad-11{border-radius:11px}.brad-12{border-radius:12px}@media all{.page-break{display:none}}@media print{.page-break{display:block;break-after:always;page-break-after:always}#main #vertical-navigation{display:none}#main #toolbar{display:none}#main #quick-panel{display:none}#main #content{position:relative!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:0 0!important}ms-theme-options{display:none}.ps-scrollbar-x-rail,.ps-scrollbar-y-rail{display:none!important}.printable{overflow:visible!important}.printable .template-layout{display:inline!important}}.advanced-search-container{border-bottom:1px rgba(0,0,0,.12) solid}.advanced-search-conditions{border-bottom:1px rgba(0,0,0,.12) solid;padding:4px 0}.advanced-search-conditions .errors{font-size:12px;color:#dd2c00;margin-top:10px}.advanced-search-conditions .advanced-search-chips md-chips-wrap{box-shadow:none}.advanced-search-conditions .advanced-search-chips md-chip{position:relative}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-content md-chip-template span p.filter-text{display:inline-block;margin:0}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container{position:absolute;right:4px;top:4px;margin-right:0;height:24px}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter{position:relative;height:24px;width:24px;line-height:30px;text-align:center;border-radius:50%;border:none;box-shadow:none;padding:0;margin:0;transition:background .15s linear;display:block}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);color:#616161}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:focus,.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:hover{color:rgba(255,0,0,.8)}.advanced-search-conditions .advanced-search-chips md-chips-wrap.md-removable md-chip md-chip-template{padding-right:5px}.advanced-search-bar{padding:10px 0}.advanced-search-bar md-input-container.no-errors{font-size:12px;transition:0s none;-webkit-transition:0s none;animation:0s none;-webkit-animation:0s none}.advanced-search-bar md-input-container.no-errors input{font-family:Arial Unicode MS,Arial,Helvetica}.advanced-search-bar md-input-container.no-errors .md-errors-spacer{min-height:0}md-option div div.operators-list{display:table}md-option div div.operators-list span{display:table-cell}md-option div div.operators-list span.operator-symbol{display:table-cell;font-size:14px;width:30px}.advanced-search-bar mdp-date-picker button{margin:0!important}.advanced-search-bar mdp-date-picker md-input-container{flex:1;margin:0}.advanced-search-bar mdp-date-picker md-input-container label{font-size:12px}.advanced-search-bar mdp-date-picker md-input-container .md-errors-spacer{min-height:0}.advanced-search-bar div md-date-range{font-size:12px;margin-left:10px}.advanced-search-bar div.autocomplete-input md-icon{margin:8px 8px 8px 0}.advanced-search-bar div.autocomplete-input md-autocomplete{font-size:12px!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap{height:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container{margin:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container input[type=search]{padding:0!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container div.md-errors-spacer{min-height:0}md-toolbar.advanced-search-dialog-header{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}.md-autocomplete-suggestions-container li .highlight,.md-autocomplete-suggestions-container.md-default-theme li .highlight{color:#ca1d1d;font-weight:700}.chip-disabled{opacity:.4}.ms-card{display:flex;flex-direction:row;padding:8px}.ms-card .ms-card-content-wrapper{position:relative;overflow:hidden;width:100%;max-width:400px;border-radius:2px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}.ms-card .template-1 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-10 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-2 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-2 .media .image{width:100%}.ms-card .template-4 .info{position:absolute;right:0;bottom:0;left:0;z-index:2;background:rgba(0,0,0,.54)}.ms-card .template-4 .media{z-index:1}.ms-card .template-4 .media .image{width:100%}.ms-card .template-5 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-5 .info,.ms-card .template-5 .media{-ms-flex:0 1 auto}.ms-card .template-8 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-9 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-9 .media .image{width:100%}md-list-item .md-list-item-text p.ms-dual-multiselect-line-xs{font-size:10px!important;padding-top:5px}md-list-item md-icon.hidden{visibility:hidden}md-icon.add-disabled{cursor:default!important;opacity:.4}md-list-item.read-only-mode{cursor:none!important}.ms-form-wizard{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item{opacity:1!important;padding:24px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:before{content:'';display:block;position:absolute;top:50%;left:0;right:50%;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:after{content:'';display:block;position:absolute;top:50%;left:50%;right:0;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:first-of-type:before{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:last-of-type:after{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item.md-disabled .ms-form-wizard-step-label .ms-form-wizard-step-number{background:rgba(0,0,0,.12)!important}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item .md-ripple-container{z-index:11}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-ink-bar{display:none!important}.ms-form-wizard .ms-form-wizard-step-label{display:inline-block;position:relative;background:#fff;z-index:10;padding:0 16px;line-height:24px}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number{display:inline-block;vertical-align:middle;width:24px;height:24px;line-height:24px;font-size:14px;margin-right:12px;border-radius:50%;color:#fff!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number i{line-height:24px!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-text{display:inline-block;vertical-align:middle;position:relative;line-height:24px}.ms-form-wizard .ms-form-wizard-form{padding:24px 16px}.ms-form-wizard .navigation{padding:16px}.ms-form-wizard .navigation .steps{display:flex;align-items:center;justify-content:center;padding:0 16px}.ms-form-wizard .navigation .steps span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-form-wizard .navigation .steps span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-form-wizard .navigation .steps span.selected{width:8px;height:8px}ms-info-bar{display:block;position:relative;width:100%;height:44px;background-color:#e91e63;z-index:99998;box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}ms-info-bar #ms-info-bar-message{padding:8px 16px;line-height:28px;font-size:14px}ms-info-bar #ms-info-bar-message a{overflow:hidden;height:48px;color:#fff}ms-masonry{width:100%;display:block}ms-masonry [ms-masonry-item],ms-masonry ms-masonry-item{transition:transform .3s ease;position:absolute;transform:translate3d(50vw,100vh,0)}ms-material-color-picker md-menu .md-button{font-size:12px}md-menu-content.ms-material-color-picker-menu-content{width:208px;max-width:208px;min-width:208px;padding:0;overflow:hidden}md-menu-content.ms-material-color-picker-menu-content header{height:48px;text-transform:uppercase}md-menu-content.ms-material-color-picker-menu-content header .md-button{display:flex;margin:0}md-menu-content.ms-material-color-picker-menu-content header>span{line-height:13px}md-menu-content.ms-material-color-picker-menu-content .colors{position:relative;width:208px;min-height:258px;height:258px;padding:4px}md-menu-content.ms-material-color-picker-menu-content .colors .color{position:relative;width:46px;height:46px;margin:2px;border-radius:0;cursor:pointer}md-menu-content.ms-material-color-picker-menu-content .colors .color .label{padding:2px;font-size:10px}md-menu-content.ms-material-color-picker-menu-content .colors .color .icon-check{position:absolute;top:2px;right:2px;font-size:16px;opacity:.7}ms-nav{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none;z-index:70}ms-nav ms-nav-item{display:block;position:relative;line-height:48px}ms-nav ms-nav-item.ms-nav-title{line-height:32px;font-size:12px;font-weight:500;margin-top:8px;padding:0 24px;width:100%;color:rgba(255,255,255,.3);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ms-nav ms-nav-item .ms-nav-button{display:flex;align-self:flex-start;align-items:center;position:relative;cursor:pointer;padding:0 48px 0 24px;color:rgba(255,255,255,.7);text-decoration:none}ms-nav ms-nav-item .ms-nav-button:not(.active):hover{background:rgba(0,0,0,.1);text-decoration:none}ms-nav ms-nav-item .ms-nav-button .ms-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .arrow{position:absolute;top:16px;right:24px;margin:0;transition:transform .3s ease-in-out,opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .ms-nav-badge{position:absolute;top:50%;right:24px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button.active{color:#fff!important}ms-nav ms-nav-item .ms-nav-button.active .ms-nav-badge{background:#fff!important;color:rgba(0,0,0,.87)!important}ms-nav ms-nav-item .ms-nav-button.active i{color:#fff}ms-nav ms-nav-item i{color:rgba(255,255,255,.7);margin:0 16px 0 0}ms-nav .ms-nav-toggle ms-nav-toggle-items{display:none;overflow:hidden}ms-nav .ms-nav-toggle ms-nav-toggle-items.expand-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items.collapse-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:58px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:68px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:78px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:88px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:98px}ms-nav .ms-nav-toggle.active>.ms-nav-button{color:#fff}ms-nav .ms-nav-toggle.active>.ms-nav-button a,ms-nav .ms-nav-toggle.active>.ms-nav-button md-icon{color:#fff}ms-nav .ms-nav-toggle[collapsed=false]>.ms-nav-button>.arrow{transform:rotate(90deg)}ms-nav>.ms-nav-toggle[collapsed=false]{background-color:rgba(0,0,0,.12)}@media only screen and (min-width:1280px){.ms-nav-folded #ms-nav-fold-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;z-index:998}.ms-nav-folded #ms-nav-fold-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title{height:32px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title:before{content:'';display:block;position:relative;top:12px;width:16px;border-top:1px solid rgba(255,255,255,.12)}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title span{display:none}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button{height:48px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.arrow,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-badge,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-label{opacity:0;visibility:hidden}}.ms-navigation{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none}.ms-navigation li,.ms-navigation ul{padding:0;margin:0}.ms-navigation ul{display:block;overflow:hidden}.ms-navigation ul li{position:relative}.ms-navigation ul li.collapsed ul{display:none}.ms-navigation .animate-height{transition:height .25s cubic-bezier(.25,.46,.45,.94)}.ms-navigation .ms-navigation-node .ms-navigation-item{display:block;position:relative;cursor:pointer;color:rgba(255,255,255,.7)}.ms-navigation .ms-navigation-node .ms-navigation-item:hover{background:rgba(0,0,0,.1)}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button{display:flex;position:relative;width:100%;height:48px;line-height:48px;flex-direction:row;justify-content:flex-start;align-items:center;padding-right:16px;color:rgba(255,255,255,.7);text-decoration:none;white-space:nowrap;overflow:hidden}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{color:rgba(255,255,255,.7);margin:0 16px 0 0}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button span{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button a{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .arrow{margin:0;opacity:1;transition:transform .3s ease-in-out,opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .badge{position:absolute;top:50%;right:16px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .icon{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}.ms-navigation .ms-navigation-node:not(.collapsed)>.ms-navigation-item>.ms-navigation-button .arrow{transform:rotate(90deg)}.ms-navigation .ms-navigation-node.group>.ms-navigation-item{font-size:12px;font-weight:500;margin-top:8px;cursor:auto;background:0 0!important;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-navigation .ms-navigation-node.group>.ms-navigation-item>.ms-navigation-button{height:32px;line-height:32px;color:rgba(255,255,255,.3)}.ms-navigation .ms-navigation-node:not(.group).has-children:not(.collapsed){background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children.collapsing{background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children .has-children:not(.collapsed){background:0 0}.ms-navigation li .ms-navigation-button{padding-left:24px}.ms-navigation li li .ms-navigation-button{padding-left:56px}.ms-navigation li li li .ms-navigation-button{padding-left:72px}.ms-navigation li li li li .ms-navigation-button{padding-left:88px}.ms-navigation li li li li li .ms-navigation-button{padding-left:104px}.ms-navigation li.group .ms-navigation-button{padding-left:24px}.ms-navigation li.group li .ms-navigation-button{padding-left:24px}.ms-navigation li.group li li .ms-navigation-button{padding-left:56px}.ms-navigation li.group li li li .ms-navigation-button{padding-left:72px}.ms-navigation li.group li li li li .ms-navigation-button{padding-left:88px}#horizontal-navigation{height:64px;min-height:64px;max-height:64px;background:#fff;z-index:54}#horizontal-navigation .ms-navigation-horizontal{display:flex;position:relative;user-select:none}#horizontal-navigation .ms-navigation-horizontal li,#horizontal-navigation .ms-navigation-horizontal ul{padding:0;margin:0;list-style:none}#horizontal-navigation .ms-navigation-horizontal .horizontal{display:flex;flex:1}#horizontal-navigation .ms-navigation-horizontal .horizontal li{position:relative;cursor:pointer}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:block;float:left;padding:12px 14px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button.active{background:0 0;border-bottom:2px solid}#horizontal-navigation .ms-navigation-horizontal .horizontal>li:last-child{margin-right:0}#horizontal-navigation .ms-navigation-horizontal .horizontal>li li .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active{color:#fff!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{display:none;position:absolute;background:#fff;z-index:999;min-width:200px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);top:0;left:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal>.has-children>ul{top:100%;left:0}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button{display:flex;align-items:center;width:100%;color:rgba(0,0,0,.87);white-space:nowrap;padding:14px 16px;text-decoration:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .icon{color:rgba(0,0,0,.54);margin-right:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .arrow{margin-left:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .icon{color:#fff}@media only screen and (min-width:960px){body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .animate-height{transition:none}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .icon{margin:0}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .arrow,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .badge,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .title{opacity:0;visibility:hidden}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node.group>.ms-navigation-item .ms-navigation-button:before{content:'';display:block;position:relative;width:16px;border-top:1px solid rgba(255,255,255,.12)}body.ms-navigation-folded:not(.ms-navigation-folded-open) #ms-navigation-fold-expander{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}body.ms-navigation-folded #ms-navigation-fold-collapser{position:absolute;top:0;right:0;bottom:0;left:0;z-index:59}}@media only screen and (max-width:960px){body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle{height:64px;margin-right:16px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle .md-button{margin:0;width:64px;height:64px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .ms-navigation-horizontal{display:block!important;background:#fff}#horizontal-navigation{z-index:60}#horizontal-navigation .ms-navigation-horizontal{position:absolute;display:none;top:0;right:0;bottom:0;left:0;padding:0 0 16px 0;z-index:9998;overflow-x:hidden;overflow-y:scroll}#horizontal-navigation .ms-navigation-horizontal .horizontal{flex-direction:column;min-height:100%;width:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:0 0}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item{margin:4px}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item:hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li{padding:0 12px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:flex;float:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{position:relative;top:0;left:0;box-shadow:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded>.ms-navigation-horizontal-button .arrow{transform:rotate(90deg)}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded+ul{display:block;margin-left:16px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item{min-height:48px;height:48px}}md-dialog.md-phonebar-dialog{max-width:720px;width:720px}md-dialog.md-phonebar-dialog md-dialog-content{display:block;position:relative;height:500px}md-dialog.md-phonebar-dialog md-toolbar .title{font-size:17px}md-dialog.md-phonebar-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.md-phonebar-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.md-phonebar-dialog md-tabs{position:static}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}.ms-phonebar{height:64px;font-size:13px}.ms-phonebar .phonebar-container{height:64px;padding:0}.ms-phonebar .phonebar-container .quantity-indicator{display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:4px;margin-right:5px;margin-left:5px}.ms-phonebar .phonebar-container .sessions{overflow-x:auto}.ms-phonebar .phonebar-container .session{border-radius:3px;border:1px solid #dcdcdc;margin-left:3px;cursor:pointer}.ms-phonebar .phonebar-container .session-info{padding-left:3px;padding-right:3px;color:grey}.ms-phonebar .phonebar-container .session-button{border:1px solid grey;margin:3px}.ms-phonebar .phonebar-container .button-bar{border:1px solid grey}.ms-phonebar .phonebar-container .num-pad{position:fixed;border-radius:3px;border:1px solid #9e9e9e;top:80px;left:80px}.ms-phonebar .phonebar-container .num-pad-logo{height:40px;width:42px}.ms-phonebar .phonebar-container p{margin:0;padding:0 0 10px 0;line-height:10px;font-size:10px}.ms-phonebar .phonebar-container .span4{width:50px;float:left;margin:8px}.ms-phonebar .phonebar-container .num{border:1px solid #9e9e9e;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:50px;background-color:#fff;color:#333;cursor:pointer}.ms-phonebar .phonebar-container .num:hover{background-color:#9e9e9e;color:#fff;transition-property:background-color .2s linear 0s;-moz-transition:background-color .2s linear 0s;-webkit-transition:background-color .2s linear 0s;-o-transition:background-color .2s linear 0s}.ms-phonebar .phonebar-container .txt{font-size:20px;text-align:center;margin-top:3px;font-family:Lato,sans-serif;color:#333}.ms-phonebar .phonebar-container .small{font-size:15px}.ms-phonebar .phonebar-container .angucomplete-dropdown{top:45px;overflow-y:auto;max-height:200px}.ms-phonebar .phonebar-container .highlight{color:red}.ms-phonebar .phonebar-container .input-number{margin-left:5px;padding:8px;border:1px solid #ccc;border-radius:3px;box-sizing:border-box}.ms-phonebar .phonebar-container .phonebar{position:relative}.ms-phonebar .phonebar-container .phonebar>div{height:64px;min-width:44px}.ms-phonebar .phonebar-container .phonebar>div.dragging{cursor:grabbing}.ms-phonebar .phonebar-container .phonebar>div.dragging .md-ripple-container{display:none}.ms-phonebar .phonebar-container .phonebar>div.ghost .shortcut{opacity:.27}.ms-phonebar .phonebar-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-phonebar .phonebar-container.mobile-bar-active .phonebar,.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-phonebar .phonebar-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}.quick-filter-container md-select .md-select-value.md-select-placeholder{color:inherit}.quick-filter-container md-select[multiple] md-select-value>:first-child{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ms-responsive-table-wrapper{overflow-x:auto;overflow-y:hidden}.ms-scroll{overflow:hidden!important}.ms-search-bar{height:64px;font-size:13px}.ms-search-bar .ms-search-bar-collapser,.ms-search-bar .ms-search-bar-expander{cursor:pointer;padding:0 20px;margin:0;width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-loader{width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-button-expanded{pointer-events:none}.ms-search-bar .ms-search-bar-collapser{display:none}.ms-search-bar input{background-color:transparent;font-size:16px}.ms-search-bar .ms-search-bar-results{position:absolute;top:64px;left:0;right:0;overflow-x:hidden;overflow-y:scroll;background:#fff;max-height:300px;box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.ms-search-bar .ms-search-bar-results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}.ms-search-bar .ms-search-bar-results .result{position:relative;height:56px;min-height:56px;max-height:56px;padding:16px;cursor:pointer}.ms-search-bar .ms-search-bar-results .result.selected{background:rgba(0,0,0,.07)}.ms-search-bar .ms-search-bar-results .result .icon-container{min-width:32px;margin-right:8px}.ms-search-bar .ms-search-bar-results .result .icon-container .square{width:6px;height:6px}.ms-search-bar .ms-search-bar-results .result .title{font-size:16px}.ms-search-bar .ms-search-bar-results .result .description{padding-top:6px;font-size:14px}.ms-search-bar.expanded{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:10}.ms-search-bar.expanded #ms-search-bar-input{display:block}.ms-search-bar.expanded .ms-search-bar-collapser{display:block}.ms-search-bar.down{top:64px;border-bottom:1px rgba(0,0,0,.12) solid}.ms-search-bar[disabled] input{pointer-events:none}body.ms-search-bar-expanded #toolbar{z-index:999!important}@media screen and (max-width:960px){.ms-search-bar-label{padding:0 8px 0 12px}}.ms-shortcuts{height:64px;font-size:13px}.ms-shortcuts .shortcuts-container{height:64px;padding:0 8px;max-width:400px}.ms-shortcuts .shortcuts-container .shortcuts{position:relative;overflow-x:scroll}.ms-shortcuts .shortcuts-container .shortcuts>div{height:64px;min-width:44px}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging{cursor:grabbing}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging .md-ripple-container{display:none}.ms-shortcuts .shortcuts-container .shortcuts>div.ghost .shortcut{opacity:.27}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut{margin:2px}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut .first-letter{display:inline-block;vertical-align:middle;font-size:20px;text-transform:uppercase;color:rgba(0,0,0,.54)}.ms-shortcuts .shortcuts-container .shortcut-menu{margin:0}.ms-shortcuts .shortcuts-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcut-menu,.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcuts,.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-shortcuts .shortcuts-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu{position:relative;width:240px;min-width:240px;max-width:240px}#ms-shortcut-add-menu .add-shortcut-button{width:48px;height:48px;padding:0 12px;margin:0}#ms-shortcut-add-menu .shortcut-search{height:45px;padding:0 8px}#ms-shortcut-add-menu .shortcut-search .search-icon{width:40px;height:40px;line-height:48px}#ms-shortcut-add-menu .shortcut-search .shortcut-loader{padding:10px}#ms-shortcut-add-menu .shortcut-search input{padding:8px}#ms-shortcut-add-menu .results{position:relative;overflow-y:scroll;max-height:233px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu .results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}#ms-shortcut-add-menu .results .result{position:relative;min-height:56px;padding:16px;cursor:pointer}#ms-shortcut-add-menu .results .result.selected{background:rgba(0,0,0,.07)}#ms-shortcut-add-menu .results .result .icon-container{min-width:32px;margin-right:8px}#ms-shortcut-add-menu .results .result .icon-container .square{width:6px;height:6px}#ms-shortcut-add-menu .results .result .title{font-size:16px}#ms-shortcut-add-menu .results .result .description{padding-top:6px;font-size:14px}#splash-screen{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#3c4252;z-index:99999}#splash-screen.ng-leave{opacity:1;transition:all linear .2s}#splash-screen.ng-leave-active{opacity:0}#splash-screen .center{display:block;width:100%;position:absolute;top:50%;transform:translateY(-50%)}#splash-screen .logo{width:96px;height:96px;line-height:96px;margin:0 auto;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:56px;text-align:center;border-radius:2px;background-color:#039be5;color:#fff;box-shadow:0 2px 14px 0 rgba(0,0,0,.22)}#splash-screen .spinner-wrapper{display:block;position:relative;width:100%;min-height:100px;height:100px}#splash-screen .spinner-wrapper .spinner{position:absolute;overflow:hidden;left:50%;margin-left:-50px;animation:outer-rotate 2.91667s linear infinite}#splash-screen .spinner-wrapper .spinner .inner{width:100px;height:100px;position:relative;animation:sporadic-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .gap{position:absolute;left:49px;right:49px;top:0;bottom:0;border-top:10px solid;box-sizing:border-box}#splash-screen .spinner-wrapper .spinner .inner .left,#splash-screen .spinner-wrapper .spinner .inner .right{position:absolute;top:0;height:100px;width:50px;overflow:hidden}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle,#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{position:absolute;top:0;width:100px;height:100px;box-sizing:border-box;border:10px solid #4285f4;border-bottom-color:transparent;border-radius:50%}#splash-screen .spinner-wrapper .spinner .inner .left{left:0}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle{left:0;border-right-color:transparent;animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .right{right:0}#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{right:0;border-left-color:transparent;animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}@keyframes outer-rotate{0%{transform:rotate(0) scale(.5)}100%{transform:rotate(360deg) scale(.5)}}@keyframes left-wobble{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes right-wobble{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes sporadic-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}.ms-stepper .ms-stepper-horizontal{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{height:72px;min-height:72px;max-height:72px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after,.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{content:'';display:block;position:absolute;top:50%;width:24px;border-bottom:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{left:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after{right:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .step{background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step{width:24px;min-width:24px;height:24px;border-radius:50%;margin:0 8px 0 16px;color:#fff}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step .icon{color:#fff;font-weight:700;line-height:24px!important}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-horizontal .ms-stepper-steps{padding:24px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls{padding:0 16px 16px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:none;align-items:center;justify-content:center;padding:0 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span.selected{width:8px;height:8px}@media screen and (max-width:600px){.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:flex}}.ms-stepper .ms-stepper-vertical{position:relative;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-vertical-line{display:block;position:absolute;width:1px;top:32px;bottom:32px;left:43px;border-left:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps{padding:8px 0}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step{display:block}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:0 24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:hover:not(.disabled) .step{background-color:#ececec;border-color:#ececec}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step{width:40px;min-width:40px;height:40px;margin:0 16px 0 0;border-radius:50%;background:#fff;border:8px solid #fff;color:#fff;transition:border-color .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step .icon{font-weight:700;line-height:28px!important}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-step-content{padding:0 24px 16px 64px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-controls{padding:0 16px 16px 56px}.ms-tab-scroll .scroll-arrow{height:inherit;padding:0}.ms-tab-scroll .bar-container{overflow:hidden}.ms-tab-scroll .scroll-container{overflow-x:hidden;overflow-y:hidden;transition:transform .2s ease-in-out}.ms-timeline .ms-timeline-loader{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;background:#fff;font-weight:500;opacity:0;z-index:11;border-radius:50%}.ms-timeline .ms-timeline-loader.show{opacity:1}.ms-timeline .ms-timeline-loader .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%}.ms-widget .ms-widget-front{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget .ms-widget-back{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget.sidenav-widget .ms-widget-back,.ms-widget.sidenav-widget .ms-widget-front{box-shadow:none}.ms-widget .flip-to-front{position:absolute;top:0;right:0}.ms-widget .c3{height:100%}.ms-widget .chart-fill-8{margin:0 -8px -8px -8px}.ms-widget .chart-fill-16{margin:0 -16px -16px -16px}.ms-widget .chart-fill-24{margin:0 -24px -24px -24px}.ms-widget .chart-fill-32{margin:0 -32px -32px -32px}.ms-widget .chart-fill-40{margin:0 -40px -40px -40px}.ms-widget .chart-fill-48{margin:0 -48px -48px -48px}.ms-widget .chart-fill-56{margin:0 -56px -56px -56px}.ms-widget .chart-fill-64{margin:0 -64px -64px -64px}.ms-widget .chart-fill-72{margin:0 -72px -72px -72px}.ms-widget .chart-fill-80{margin:0 -80px -80px -80px}.ms-widget{position:relative;font-size:1.3rem;perspective:3000px;padding:12px}.ms-widget .ms-widget-front{display:flex;flex-direction:column;flex:1 1 auto;position:relative;overflow:hidden;visibility:visible;width:100%;opacity:1;z-index:10;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(0);backface-visibility:hidden}.ms-widget .ms-widget-back{display:block;position:absolute;overflow:hidden;visibility:hidden;opacity:0;z-index:10;top:12px;right:12px;bottom:12px;left:12px;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(180deg);backface-visibility:hidden}.ms-widget .md-button{margin:0}.ms-widget .md-button.md-icon-button{margin:0}.ms-widget.flipped .ms-widget-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}.ms-widget.flipped .ms-widget-back{display:block;visibility:visible;opacity:1;transform:rotateY(360deg)}.ms-widget.sidenav-widget{padding:0}.ms-widget.ar-2-1 .widget{padding:0;position:relative}.ms-widget.ar-2-1 .widget:before{display:block;content:'';width:100%;padding-top:50%}.ms-widget.ar-2-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-widget.ar-1-1 .widget{padding:0;position:relative}.ms-widget.ar-1-1 .widget:before{display:block;content:'';width:100%;padding-top:100%}.ms-widget.ar-1-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-theme-options .ms-theme-options-button{position:absolute;top:160px;right:0;z-index:50;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:48px;height:48px;line-height:48px;text-align:center;cursor:pointer;border-radius:0;margin:0;pointer-events:auto;opacity:.75}.ms-theme-options .ms-theme-options-button:hover{opacity:1}.ms-theme-options md-sidenav{width:384px;min-width:384px;max-width:384px}.ms-theme-options md-sidenav .ms-theme-options-list{background:#fff;z-index:12;pointer-events:auto}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option{padding:16px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button{width:160px;max-width:160px;margin:8px 8px 16px 8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button.md-checked ._md-label img,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button:hover ._md-label img{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-container{display:none}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label{margin-left:0}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label img{opacity:.8;margin-bottom:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes md-menu-item{max-width:192px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button{border-bottom:16px solid;text-align:left;width:101px;height:88px;box-shadow:none;opacity:.8}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button.active,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button:hover{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option md-radio-button{margin:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option .option-title{font-size:14px;font-weight:500;padding:0 8px 12px 8px}#error-404 .content{width:90%;max-width:512px;margin-top:128px}#error-404 .content .error-code{font-size:112px;text-align:center;line-height:1;margin-bottom:16px;font-weight:500}#error-404 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-404 .content .search{width:100%;height:56px;line-height:56px;margin:48px auto 16px auto;padding:16px;background:#fff}#error-404 .content .search input{padding:0 0 0 16px}#error-404 .content .back-link{font-size:15px;text-align:center}#error-500 .content{width:90%;max-width:512px;margin-top:128px}#error-500 .content .error-code{font-size:112px;line-height:1;text-align:center;margin-bottom:16px;font-weight:500}#error-500 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-500 .content .sub-message{font-size:17px;text-align:center;color:rgba(0,0,0,.54);margin:16px auto 48px auto}#error-500 .content .report-link{text-align:center;font-size:15px}#forgot-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#forgot-password #forgot-password-form-wrapper{flex:1 0 auto;padding:32px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#forgot-password #forgot-password-form-wrapper #forgot-password-form .title{font-size:17px;margin:16px 0 32px 0}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo_login{max-height:200px}#forgot-password #forgot-password-form-wrapper #forgot-password-form form{width:100%;text-align:left}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .submit-button{width:220px;margin:16px auto;display:block}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#forgot-password #forgot-password-form-wrapper{padding:16px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{padding:24px;width:100%}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .md-button{width:90%}}#login{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#login #login-form-wrapper{flex:1 0 auto;padding:32px}#login #login-form-wrapper #login-form{width:384px;max-width:384px;padding:32px;background:#fff;text-align:center}#login #login-form-wrapper #login-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#login #login-form-wrapper #login-form .title{font-size:17px;margin:16px 0 32px 0}#login #login-form-wrapper #login-form .logo_login{max-height:200px}#login #login-form-wrapper #login-form form{width:100%;text-align:left}#login #login-form-wrapper #login-form form md-checkbox{margin:0}#login #login-form-wrapper #login-form form .remember-forgot-password{font-size:13px;margin-top:8px}#login #login-form-wrapper #login-form form .remember-forgot-password .remember-me{margin-bottom:16px}#login #login-form-wrapper #login-form form .remember-forgot-password .forgot-password{font-size:13px;font-weight:500;margin-bottom:16px}#login #login-form-wrapper #login-form form .submit-button{width:220px;margin:16px auto;display:block}#login #login-form-wrapper #login-form .register{margin:32px auto 24px auto;width:250px;font-weight:500}#login #login-form-wrapper #login-form .register .text{margin-right:8px}#login #login-form-wrapper #login-form .separator{font-size:15px;font-weight:600;margin:24px auto 16px auto;position:relative;overflow:hidden;width:100px;color:rgba(0,0,0,.54)}#login #login-form-wrapper #login-form .separator .text{display:inline-block;vertical-align:baseline;position:relative;padding:0 8px;z-index:9999}#login #login-form-wrapper #login-form .separator .text:after,#login #login-form-wrapper #login-form .separator .text:before{content:'';display:block;width:30px;position:absolute;top:10px;border-top:1px solid rgba(0,0,0,.12)}#login #login-form-wrapper #login-form .separator .text:before{right:100%}#login #login-form-wrapper #login-form .separator .text:after{left:100%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:192px;text-transform:none;color:#fff;font-size:13px}#login #login-form-wrapper #login-form .md-button.facebook md-icon,#login #login-form-wrapper #login-form .md-button.google md-icon{color:#fff;margin:0 8px 0 0}#login #login-form-wrapper #login-form .md-button.google{background-color:#d73d32}#login #login-form-wrapper #login-form .md-button.facebook{background-color:#3f5c9a}@media screen and (max-width:600px){#login #login-form-wrapper{padding:16px}#login #login-form-wrapper #login-form{padding:24px;width:100%}#login #login-form-wrapper #login-form form .md-button{width:90%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:80%}}md-dialog.extractedReport-dialog{max-width:720px;width:720px}md-dialog.extractedReport-dialog md-dialog-content{display:block;position:relative}md-dialog.extractedReport-dialog md-toolbar .title{font-size:17px}md-dialog.extractedReport-dialog md-input-container textarea{min-height:150px}md-dialog.extractedReport-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.extractedReport-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.extractedReport-dialog .date-container{padding:16px 0 24px 0}md-dialog.extractedReport-dialog .error-list{font-size:13px}md-dialog.extractedReport-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.extractedReport-dialog .error-list .error .message{font-weight:500}md-dialog.extractedReport-dialog .error-list .error .md-button{margin:0}md-dialog.extractedReport-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.extractedReport-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#extractedReports{position:relative}#extractedReports>.header{height:76px;min-height:76px;max-height:76px}#extractedReports>.header .logo .logo-icon{margin:0 16px 0 0}#extractedReports>.header .logo .logo-text{font-size:24px}#extractedReports>.header md-icon{color:#fff}#extractedReports>.header .search-input-wrapper{position:relative}#extractedReports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#extractedReports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#extractedReports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#extractedReports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#extractedReports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#extractedReports>.header.selected-bar .close-button-wrapper{width:244px}#extractedReports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#extractedReports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#extractedReports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#extractedReports #add-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}#extractedReports #upload-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.metric-dialog{max-width:720px;width:720px}md-dialog.metric-dialog md-dialog-content{display:block;position:relative}md-dialog.metric-dialog md-toolbar .title{font-size:17px}md-dialog.metric-dialog md-input-container textarea{min-height:150px}md-dialog.metric-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.metric-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.metric-dialog .date-container{padding:16px 0 24px 0}md-dialog.metric-dialog .error-list{font-size:13px}md-dialog.metric-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.metric-dialog .error-list .error .message{font-weight:500}md-dialog.metric-dialog .error-list .error .md-button{margin:0}md-dialog.metric-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.metric-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#metrics{position:relative}#metrics>.header{height:76px;min-height:76px;max-height:76px}#metrics>.header .logo .logo-icon{margin:0 16px 0 0}#metrics>.header .logo .logo-text{font-size:24px}#metrics>.header md-icon{color:#fff}#metrics>.header .search-input-wrapper{position:relative}#metrics>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#metrics>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#metrics>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#metrics>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#metrics>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#metrics>.header.selected-bar .close-button-wrapper{width:244px}#metrics>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#metrics>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#metrics>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#metrics #add-metric-button{position:fixed;bottom:8px;right:8px;padding:0}#metrics #upload-metric-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.reportField-dialog{max-width:720px;width:720px}md-dialog.reportField-dialog md-dialog-content{display:block;position:relative}md-dialog.reportField-dialog md-toolbar .title{font-size:17px}md-dialog.reportField-dialog md-input-container textarea{min-height:150px}md-dialog.reportField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.reportField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.reportField-dialog .date-container{padding:16px 0 24px 0}md-dialog.reportField-dialog .error-list{font-size:13px}md-dialog.reportField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.reportField-dialog .error-list .error .message{font-weight:500}md-dialog.reportField-dialog .error-list .error .md-button{margin:0}md-dialog.reportField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.reportField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#analytics-report .header{height:76px;min-height:76px;max-height:76px}#analytics-report .header .goto-reports-button{margin-right:16px}#analytics-report .header .report-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#analytics-report .header .report-image img{height:100%;width:auto;max-width:none}#analytics-report .header .subtitle{margin:6px 0 0 0}#analytics-report .report-detail-form-container{padding:24px;margin-bottom:24px}#analytics-report .report-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#analytics-report .report-detail-form-container .handle{cursor:move}#analytics-report .report-detail-form-container md-input-container md-switch{margin:0!important}#analytics-report .report-detail-form-container #report-image-uploader{position:relative}#analytics-report .report-detail-form-container #report-image-uploader.dropping .drop-text{display:flex}#analytics-report .report-detail-form-container #report-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#analytics-report .report-detail-form-container #report-image-uploader .upload-button{margin-bottom:16px}#analytics-report .report-detail-form-container #report-image-uploader .report-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#analytics-report .report-detail-form-container #report-image-uploader .report-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#analytics-report .report-detail-form-container #report-image-uploader .report-image .media{max-height:100%}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reports{position:relative}#reports>.header{height:76px;min-height:76px;max-height:76px}#reports>.header .logo .logo-icon{margin:0 16px 0 0}#reports>.header .logo .logo-text{font-size:24px}#reports>.header md-icon{color:#fff}#reports>.header .search-input-wrapper{position:relative}#reports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#reports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#reports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#reports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#reports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#reports>.header.selected-bar .close-button-wrapper{width:244px}#reports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#reports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#reports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.web-dialog md-dialog-content{display:block;position:relative}md-dialog.web-dialog md-toolbar .title{font-size:17px}md-dialog.web-dialog md-input-container textarea{min-height:150px}md-dialog.web-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.web-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.web-dialog .date-container{padding:16px 0 24px 0}md-dialog.web-dialog .error-list{font-size:13px}md-dialog.web-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.web-dialog .error-list .error .message{font-weight:500}md-dialog.web-dialog .error-list .error .md-button{margin:0}md-dialog.web-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.web-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.odbc-dialog{max-width:720px;width:720px}md-dialog.odbc-dialog md-dialog-content{display:block;position:relative}md-dialog.odbc-dialog md-toolbar .title{font-size:17px}md-dialog.odbc-dialog md-input-container textarea{min-height:150px}md-dialog.odbc-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.odbc-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.odbc-dialog .date-container{padding:16px 0 24px 0}md-dialog.odbc-dialog .error-list{font-size:13px}md-dialog.odbc-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.odbc-dialog .error-list .error .message{font-weight:500}md-dialog.odbc-dialog .error-list .error .md-button{margin:0}md-dialog.odbc-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.odbc-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#odbcs{position:relative}#odbcs>.header{height:76px;min-height:76px;max-height:76px}#odbcs>.header .logo .logo-icon{margin:0 16px 0 0}#odbcs>.header .logo .logo-text{font-size:24px}#odbcs>.header md-icon{color:#fff}#odbcs>.header .search-input-wrapper{position:relative}#odbcs>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#odbcs>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#odbcs>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#odbcs>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#odbcs>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#odbcs>.header.selected-bar .close-button-wrapper{width:244px}#odbcs>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#odbcs>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#odbcs>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#odbcs #add-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}#odbcs #upload-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.project-dialog .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#callysquare-project .header{height:76px;min-height:76px;max-height:76px}#callysquare-project .header .goto-projects-button{margin-right:16px}#callysquare-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#callysquare-project .header .project-image img{height:100%;width:auto;max-width:none}#callysquare-project .header .subtitle{margin:6px 0 0 0}#callysquare-project .project-detail-form-container{padding:24px;margin-bottom:24px}#callysquare-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#callysquare-project .project-detail-form-container #project-image-uploader{position:relative}#callysquare-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#callysquare-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#callysquare-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#callysquare-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#callysquare-project>.callysquare-content{position:absolute;top:76px;bottom:0;left:0;right:0}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.squareRecording-dialog{max-width:720px;width:720px}md-dialog.squareRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.squareRecording-dialog md-toolbar .title{font-size:17px}md-dialog.squareRecording-dialog md-input-container textarea{min-height:150px}md-dialog.squareRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.squareRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.squareRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.squareRecording-dialog .error-list{font-size:13px}md-dialog.squareRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.squareRecording-dialog .error-list .error .message{font-weight:500}md-dialog.squareRecording-dialog .error-list .error .md-button{margin:0}md-dialog.squareRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.squareRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#squareRecordings{position:relative}#squareRecordings>.header{height:76px;min-height:76px;max-height:76px}#squareRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#squareRecordings>.header .logo .logo-text{font-size:24px}#squareRecordings>.header md-icon{color:#fff}#squareRecordings>.header .search-input-wrapper{position:relative}#squareRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#squareRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#squareRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#squareRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#squareRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#squareRecordings>.header.selected-bar .close-button-wrapper{width:244px}#squareRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#squareRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#squareRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#squareRecordings #add-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#squareRecordings #upload-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues{position:relative}#chatQueues>.header{height:76px;min-height:76px;max-height:76px}#chatQueues>.header .logo .logo-icon{margin:0 16px 0 0}#chatQueues>.header .logo .logo-text{font-size:24px}#chatQueues>.header md-icon{color:#fff}#chatQueues>.header .search-input-wrapper{position:relative}#chatQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatQueues>.header.selected-bar .close-button-wrapper{width:244px}#chatQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatQueues #add-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues #upload-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatQueue-dialog{max-width:720px;width:720px}md-dialog.chatQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.chatQueue-dialog md-toolbar .title{font-size:17px}md-dialog.chatQueue-dialog md-input-container textarea{min-height:150px}md-dialog.chatQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatQueue-dialog .error-list{font-size:13px}md-dialog.chatQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatQueue-dialog .error-list .error .message{font-weight:500}md-dialog.chatQueue-dialog .error-list .error .md-button{margin:0}md-dialog.chatQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatQueue .header{height:76px;min-height:76px;max-height:76px}#chat-chatQueue .header .goto-chatQueues-button{margin-right:16px}#chat-chatQueue .header .chatQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatQueue .header .chatQueue-image img{height:100%;width:auto;max-width:none}#chat-chatQueue .header .subtitle{margin:6px 0 0 0}#chat-chatQueue .chatQueue-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatQueue .chatQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatQueue .chatQueue-detail-form-container .handle{cursor:move}#chat-chatQueue .chatQueue-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader{position:relative}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader.dropping .drop-text{display:flex}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .upload-button{margin-bottom:16px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image .media{max-height:100%}#chat-chatQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#chatWebsites{position:relative}#chatWebsites>.header{height:76px;min-height:76px;max-height:76px}#chatWebsites>.header .logo .logo-icon{margin:0 16px 0 0}#chatWebsites>.header .logo .logo-text{font-size:24px}#chatWebsites>.header md-icon{color:#fff}#chatWebsites>.header .search-input-wrapper{position:relative}#chatWebsites>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatWebsites>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatWebsites>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatWebsites>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatWebsites>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatWebsites>.header.selected-bar .close-button-wrapper{width:244px}#chatWebsites>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatWebsites>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatWebsites>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatWebsites #add-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}#chatWebsites #upload-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatWebsite-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.chatCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.chatCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.chatCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.chatCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatCannedAnswer-dialog .error-list{font-size:13px}md-dialog.chatCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.chatCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.chatCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.offlineMessage-dialog{max-width:720px;width:720px}md-dialog.offlineMessage-dialog md-dialog-content{display:block;position:relative}md-dialog.offlineMessage-dialog md-toolbar .title{font-size:17px}md-dialog.offlineMessage-dialog md-input-container textarea{min-height:150px}md-dialog.offlineMessage-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.offlineMessage-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.offlineMessage-dialog .date-container{padding:16px 0 24px 0}md-dialog.offlineMessage-dialog .error-list{font-size:13px}md-dialog.offlineMessage-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.offlineMessage-dialog .error-list .error .message{font-weight:500}md-dialog.offlineMessage-dialog .error-list .error .md-button{margin:0}md-dialog.offlineMessage-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.offlineMessage-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatProactiveAction-dialog{max-width:720px;width:720px}md-dialog.chatProactiveAction-dialog md-dialog-content{display:block;position:relative}md-dialog.chatProactiveAction-dialog md-toolbar .title{font-size:17px}md-dialog.chatProactiveAction-dialog md-input-container textarea{min-height:150px}md-dialog.chatProactiveAction-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatProactiveAction-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatProactiveAction-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatProactiveAction-dialog .error-list{font-size:13px}md-dialog.chatProactiveAction-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatProactiveAction-dialog .error-list .error .message{font-weight:500}md-dialog.chatProactiveAction-dialog .error-list .error .md-button{margin:0}md-dialog.chatProactiveAction-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatProactiveAction-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatWebsite .header{height:76px;min-height:76px;max-height:76px}#chat-chatWebsite .header .goto-chatWebsites-button{margin-right:16px}#chat-chatWebsite .header .chatWebsite-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatWebsite .header .chatWebsite-image img{height:100%;width:auto;max-width:none}#chat-chatWebsite .header .subtitle{margin:6px 0 0 0}#chat-chatWebsite .chatWebsite-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatWebsite .chatWebsite-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatWebsite .chatWebsite-detail-form-container .handle{cursor:move}#chat-chatWebsite .chatWebsite-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader{position:relative}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader.dropping .drop-text{display:flex}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .upload-button{margin-bottom:16px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image .media{max-height:100%}#chat-chatWebsite md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatWebsite md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#chat-chatWebsite .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#chat-chatWebsite .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#chat-chatWebsite .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#chat-chatWebsite .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#chat-chatWebsite .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#chat-chatWebsite .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#chat-chatWebsite .actionAppData{width:150px!important}}@media screen and (max-width:960px){#chat-chatWebsite .actionAppData{width:80px!important}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#companies{position:relative}#companies>.header{height:76px;min-height:76px;max-height:76px}#companies>.header .logo .logo-icon{margin:0 16px 0 0}#companies>.header .logo .logo-text{font-size:24px}#companies>.header md-icon{color:#fff}#companies>.header .search-input-wrapper{position:relative}#companies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#companies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#companies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#companies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#companies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#companies>.header.selected-bar .close-button-wrapper{width:244px}#companies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#companies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#companies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#companies #add-company-button{position:fixed;bottom:8px;right:8px;padding:0}#companies #upload-company-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.company-dialog{max-width:720px;width:720px}md-dialog.company-dialog md-dialog-content{display:block;position:relative}md-dialog.company-dialog md-toolbar .title{font-size:17px}md-dialog.company-dialog md-input-container textarea{min-height:150px}md-dialog.company-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.company-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.company-dialog .date-container{padding:16px 0 24px 0}md-dialog.company-dialog .error-list{font-size:13px}md-dialog.company-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.company-dialog .error-list .error .message{font-weight:500}md-dialog.company-dialog .error-list .error .md-button{margin:0}md-dialog.company-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.company-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-company .header{height:76px;min-height:76px;max-height:76px}#contactmanager-company .header .goto-companies-button{margin-right:16px}#contactmanager-company .header .company-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-company .header .company-image img{height:100%;width:auto;max-width:none}#contactmanager-company .header .subtitle{margin:6px 0 0 0}#contactmanager-company .company-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-company .company-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-company .company-detail-form-container .handle{cursor:move}#contactmanager-company .company-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-company .company-detail-form-container #company-image-uploader{position:relative}#contactmanager-company .company-detail-form-container #company-image-uploader.dropping .drop-text{display:flex}#contactmanager-company .company-detail-form-container #company-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-company .company-detail-form-container #company-image-uploader .upload-button{margin-bottom:16px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image .media{max-height:100%}#contactmanager-company md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-company md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container.font-size-12 td.md-cell{font-size:12px!important}#contacts{position:relative}#contacts>.header{height:76px;min-height:76px;max-height:76px}#contacts>.header .logo .logo-icon{margin:0 16px 0 0}#contacts>.header .logo .logo-text{font-size:24px}#contacts>.header md-icon{color:#fff}#contacts>.header .search-input-wrapper{position:relative}#contacts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contacts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contacts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contacts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contacts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contacts>.header.selected-bar .close-button-wrapper{width:244px}#contacts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contacts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contacts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contacts #add-contact-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#cm-contact .pointer{cursor:pointer}#cm-contact .header{height:76px;min-height:76px;max-height:76px}#cm-contact .header .goto-contacts-button{margin-right:16px}#cm-contact .header .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#cm-contact .header .contact-image img{height:100%;width:auto;max-width:none}#cm-contact .header .subtitle{margin:6px 0 0 0}#cm-contact .contact-detail-form-container{padding:24px;margin-bottom:24px}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.email{color:green}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.firstname{color:#1e90ff}#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.email,#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.firstname{color:red}#cm-contact .contact-detail-form-container .hint{position:absolute;left:2px;right:auto;bottom:7px;font-size:10px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.import-dialog{max-width:720px;width:720px}md-dialog.import-dialog md-dialog-content{display:block;position:relative}md-dialog.import-dialog md-toolbar .title{font-size:17px}md-dialog.import-dialog md-input-container textarea{min-height:150px}md-dialog.import-dialog .date-container{padding:16px 0 24px 0}md-dialog.import-dialog .error-list{font-size:13px}md-dialog.import-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .error .message{font-weight:500}md-dialog.import-dialog .error-list .error .md-button{margin:0}md-dialog.import-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.import-dialog .error-list .info{background-color:rgba(24,160,135,.08);border:1px solid rgba(24,160,135,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .info .message{font-weight:500}md-dialog.import-dialog .error-list .info .md-button{margin:0}md-dialog.import-dialog .error-list .info:last-child{margin-bottom:30px}md-dialog.import-dialog .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}md-dialog.import-dialog .contact-image img{height:100%;width:auto;max-width:none}md-dialog.import-dialog .contact-image .media{max-height:100%}md-dialog.import-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.globalCustomField-dialog{max-width:720px;width:720px}md-dialog.globalCustomField-dialog md-dialog-content{display:block;position:relative}md-dialog.globalCustomField-dialog md-toolbar .title{font-size:17px}md-dialog.globalCustomField-dialog md-input-container textarea{min-height:150px}md-dialog.globalCustomField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.globalCustomField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.globalCustomField-dialog .date-container{padding:16px 0 24px 0}md-dialog.globalCustomField-dialog .error-list{font-size:13px}md-dialog.globalCustomField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.globalCustomField-dialog .error-list .error .message{font-weight:500}md-dialog.globalCustomField-dialog .error-list .error .md-button{margin:0}md-dialog.globalCustomField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.globalCustomField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#globalCustomFields{position:relative}#globalCustomFields>.header{height:76px;min-height:76px;max-height:76px}#globalCustomFields>.header .logo .logo-icon{margin:0 16px 0 0}#globalCustomFields>.header .logo .logo-text{font-size:24px}#globalCustomFields>.header md-icon{color:#fff}#globalCustomFields>.header .search-input-wrapper{position:relative}#globalCustomFields>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#globalCustomFields>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#globalCustomFields>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#globalCustomFields>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#globalCustomFields>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#globalCustomFields>.header.selected-bar .close-button-wrapper{width:244px}#globalCustomFields>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#globalCustomFields>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#globalCustomFields>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#globalCustomFields #add-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}#globalCustomFields #upload-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.list-dialog{max-width:720px;width:720px}md-dialog.list-dialog md-dialog-content{display:block;position:relative}md-dialog.list-dialog md-toolbar .title{font-size:17px}md-dialog.list-dialog md-input-container textarea{min-height:150px}md-dialog.list-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.list-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.list-dialog .date-container{padding:16px 0 24px 0}md-dialog.list-dialog .error-list{font-size:13px}md-dialog.list-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.list-dialog .error-list .error .message{font-weight:500}md-dialog.list-dialog .error-list .error .md-button{margin:0}md-dialog.list-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.list-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customField-dialog{max-width:720px;width:720px}md-dialog.customField-dialog md-dialog-content{display:block;position:relative}md-dialog.customField-dialog md-toolbar .title{font-size:17px}md-dialog.customField-dialog md-input-container textarea{min-height:150px}md-dialog.customField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customField-dialog .date-container{padding:16px 0 24px 0}md-dialog.customField-dialog .error-list{font-size:13px}md-dialog.customField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customField-dialog .error-list .error .message{font-weight:500}md-dialog.customField-dialog .error-list .error .md-button{margin:0}md-dialog.customField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-list .header{height:76px;min-height:76px;max-height:76px}#contactmanager-list .header .goto-lists-button{margin-right:16px}#contactmanager-list .header .list-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-list .header .list-image img{height:100%;width:auto;max-width:none}#contactmanager-list .header .subtitle{margin:6px 0 0 0}#contactmanager-list .list-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-list .list-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-list .list-detail-form-container .handle{cursor:move}#contactmanager-list .list-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-list .list-detail-form-container #list-image-uploader{position:relative}#contactmanager-list .list-detail-form-container #list-image-uploader.dropping .drop-text{display:flex}#contactmanager-list .list-detail-form-container #list-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-list .list-detail-form-container #list-image-uploader .upload-button{margin-bottom:16px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image .media{max-height:100%}#contactmanager-list md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-list md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container.font-size-12 td.md-cell{font-size:12px!important}#lists{position:relative}#lists>.header{height:76px;min-height:76px;max-height:76px}#lists>.header .logo .logo-icon{margin:0 16px 0 0}#lists>.header .logo .logo-text{font-size:24px}#lists>.header md-icon{color:#fff}#lists>.header .search-input-wrapper{position:relative}#lists>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#lists>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#lists>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#lists>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#lists>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#lists>.header.selected-bar .close-button-wrapper{width:244px}#lists>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#lists>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#lists>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#lists #add-list-button{position:fixed;bottom:8px;right:8px;padding:0}#lists #upload-list-button{position:fixed;bottom:8px;right:8px;padding:0}#dashboard-custom .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general{position:fixed;width:100%;height:100%}#agent-general .agent-content{position:fixed;top:36px;bottom:0;left:0;right:0}#agent-general .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#agent-general .table-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general .table-header .md-toolbar-tools div md-select .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder .md-select-icon{display:none}#agent-general .table-header ms-quick-filter .quick-filter-date-clear-button{color:#fff}#agent-general .tooltip-preview{position:relative;display:inline-block;text-decoration:underline}#agent-general .tooltip-preview .tooltip-preview-text{visibility:hidden;width:500px;position:fixed;white-space:pre-line;left:28%;z-index:9999}#agent-general .tooltip-preview:hover .tooltip-preview-text{visibility:visible}#agent-general .reload-list md-icon{color:#fff}#agent-general .advanced-search md-icon{color:#fff}#agent-general .create-new md-icon{color:#fff}#agent-general div.draft-manager-bar{background-color:#f5f5f5;position:sticky;height:34px;bottom:0;border-top:1px solid #e0e0e0}#agent-general div.draft-manager-bar ms-tab-scroll{overflow:hidden}#agent-general div.draft-manager-bar ms-tab-scroll div.draft-manager-tab{height:34px;border-right:1px solid #e0e0e0}#agent-general td.width-5,#agent-general th.width-5{width:5px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-10,#agent-general th.width-10{width:10px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-15,#agent-general th.width-15{width:15px!important;min-width:auto!important;max-width:none!important}#agent-general td.no-padding,#agent-general th.no-padding{padding:0!important}#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:300px!important}#agent-general span.no-margin-bottom{margin-bottom:0!important}#agent-general span.no-margin-top{margin-top:0!important}#agent-general md-table-container.interactions-list thead tr th:not(.no-padding):not(.id-header){padding:0 20px 0 0!important}#agent-general md-table-container.interactions-list tbody tr td:not(.no-padding):not(.actions-padding):not(.id){padding:0 20px 0 0!important}#agent-general td.actions-padding{padding:0 8px 0 0!important}#agent-general md-toolbar.md-table-toolbar[disabled]{pointer-events:none}#agent-general md-toolbar.md-table-toolbar[disabled] ms-search-bar{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] ms-quick-filter{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] button.advanced-search,#agent-general md-toolbar.md-table-toolbar[disabled] button.interaction-reload{opacity:.7}#agent-general md-card.call-info-card{min-width:220px}#agent-general md-card.call-info-card md-card-content,#agent-general md-card.call-info-card md-card-header{padding:10px!important}#agent-general md-card.call-info-card button.reload-button{padding:0;height:22px;width:auto}@media screen and (max-width:1280px){#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:350px!important}}@media screen and (max-width:1920px){#agent-general span.contact-text{width:150px!important}#agent-general span.subject-text{width:500px!important}}#agent-general-dialog{position:fixed;width:100%;height:100%}#agent-general-dialog .agent-content{position:fixed;top:0;bottom:0;left:0;right:0}body .md-select-menu-container{z-index:110}.md-toolbar-tools{font-size:12px}div.toolbar-quick-filter[disabled]{pointer-events:none;opacity:.7}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.contact-trigger-dialog{max-width:720px;width:720px}md-dialog.contact-trigger-dialog md-dialog-content{display:block;position:relative;max-height:400px;height:400px}md-dialog.contact-trigger-dialog md-toolbar{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}md-dialog.contact-trigger-dialog md-toolbar .title{font-size:17px}md-dialog.contact-trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.contact-trigger-dialog md-dialog-actions button.select-button{position:absolute;right:0;margin-right:16px}md-dialog md-grid-list.one-row-layout{height:150px;max-height:150px}md-dialog md-grid-list.two-rows-layout{height:300px;max-height:300px}md-dialog md-card.contact-info:hover{background-color:#e9eef1ad}@media screen and (max-width:1280px){md-dialog.contact-trigger-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.contact-trigger-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.details-dialog{max-width:500px;width:500px}md-dialog.details-dialog md-dialog-content{display:block;position:relative}md-dialog.details-dialog md-toolbar .title{font-size:17px}md-dialog.details-dialog md-input-container textarea{min-height:150px}md-dialog.details-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.details-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.details-dialog .date-container{padding:16px 0 24px 0}md-dialog.details-dialog .error-list{font-size:13px}md-dialog.details-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.details-dialog .error-list .error .message{font-weight:500}md-dialog.details-dialog .error-list .error .md-button{margin:0}md-dialog.details-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.details-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#interaction-app .tags{font-size:12px}#interaction-app .tags .tag{border-radius:2px;padding:3px 8px;background-color:rgba(0,0,0,.08)}#interaction-app .tags .tag .tag-color{width:8px;height:8px;margin-right:8px;border-radius:50%}#interaction-app .content-card{position:relative;height:100%}#interaction-app .content-card .interaction{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .interaction .avatar-small{width:30px;min-width:30px;height:30px;line-height:30px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}#interaction-app .content-card .interaction .interaction-agents{min-height:40px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-agents .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-agents .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-agents .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .interaction-toolbar{min-height:64px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-toolbar md-icon{color:rgba(0,0,0,.87)}#interaction-app .content-card .interaction .interaction-toolbar .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .cannedarea{margin-right:7px;font-size:14px;border:1px solid #ccc;border-radius:3px;align-self:stretch}#interaction-app .content-card .interaction .cannedarea md-autocomplete-wrap{padding:0 1em}#interaction-app .content-card .interaction .emojionearea{margin-right:7px}#interaction-app .content-card .interaction #interaction-content{background:url(/assets/images/patterns/circles-light.png) repeat}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content{padding:24px 0}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject .subject-text{margin-right:4px;text-transform:lowercase}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info{padding-bottom:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .avatar{margin-right:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .name{margin-right:8px;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .toggle-details{padding-top:16px;cursor:pointer;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details{padding-top:8px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .title{font-weight:500;margin-right:6px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .detail{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .bubble{position:relative;padding:6px 7px 8px 9px;background-color:#fff;border:1px solid #dcdfe1;border-radius:6px;word-break:break-word}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after,#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#fff transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .time{font-size:11px;margin-top:0;text-align:right}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message{white-space:pre-wrap}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message span{word-break:break-all}#interaction-app .content-card .interaction #interaction-content .message-row.in{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.in .avatar{margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble{margin-left:auto;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:after{right:-9px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:before{right:-11px;left:auto;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}#interaction-app .content-card .interaction #interaction-content .message-row.out{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.out .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble{margin-left:auto;background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .avatar{order:1;margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:2}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction .interaction-footer{min-height:64px;max-height:180px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-top:1px solid rgba(0,0,0,.08);padding:8px 8px 8px 16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container{margin:0;padding-right:16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea{overflow:auto;max-height:80px;transition:height .2s ease}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea.grow{height:80px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container .md-errors-spacer{display:none}#interaction-app .content-card .interaction .interaction-footer .reply-form .md-button{margin:0}#interaction-app .content-card .info md-list-item{min-height:40px;height:52px}#interaction-app .content-card .start-point{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .start-point .big-circle{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8));border-radius:50%;width:300px;height:300px;line-height:300px;text-align:center}#interaction-app .content-card .start-point .app-title{font-weight:500;font-size:32px;margin:12px 0}#interaction-app .content-card .start-point .secondary-text{font-size:16px}#interaction-app .content-card .sidenav md-toolbar{border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search{height:36px;line-height:36px;padding:8px;background:#fff;font-size:13px}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search .icon{margin:0;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search input{padding-left:12px;height:36px;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-list.contact-list,#interaction-app .content-card .sidenav md-list.interaction-list{position:relative;transition:all .2s ease-out}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.contact-list md-list-item,#interaction-app .content-card .sidenav md-list.interaction-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item{position:absolute;right:0;left:0;width:100%;transition:transform .2s ease-out;background:#fff;will-change:transform}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave{transform:translateY(0);display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave.ng-leave-active{transform:translateY(-100%)}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide{display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-remove-active{display:block;transition-property:all}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list .subheader{padding-left:16px;font-size:20px;font-weight:300;height:88px;line-height:88px}#interaction-app .content-card .sidenav .no-results-message{position:absolute;width:100%;height:88px;padding:16px;background:#fff;font-size:15px;font-weight:400}#interaction-app .avatar-wrapper{position:relative}#interaction-app .avatar-wrapper .avatar{margin-top:0;margin-bottom:0}#interaction-app .status{position:absolute;top:28px;left:28px;border-radius:50%}#interaction-app .status.online{color:#4caf50}#interaction-app .status.online:before{content:'\e709'}#interaction-app .status.do-not-disturb{color:#f44336}#interaction-app .status.do-not-disturb:before{content:'\e912'}#interaction-app .status.away{background-color:#ffc107;color:#fff}#interaction-app .status.away:before{content:'\e727'}#interaction-app .status.offline{color:#4caf50;background-color:#fff}#interaction-app .status.offline:before{content:'\e704'}#interaction-app .editable-wrap{position:relative}#interaction-app .editable-wrap .editable-controls{display:flex;flex-direction:row;align-items:center;width:100%}#interaction-app .editable-wrap .editable-controls .editable-input{width:inherit;background-color:#fff;padding:8px;border:1px solid rgba(0,0,0,.12)}#interaction-app .editable-wrap .editable-controls .editable-buttons{display:inherit}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button{margin:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button:first-of-type{padding-right:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button .icon-cancel{color:rgba(0,0,0,.32)}#interaction-app .editable-click{cursor:pointer;text-decoration:none;color:inherit;border-bottom:none}#interaction-app .emoji-picker-icon{right:5px;cursor:pointer}#interaction-app .input-show-hide{transition:all linear .5s}#interaction-app .input-show-hide.ng-hide{opacity:0}#interaction-app div.interaction-reply-button-container{display:inline;padding-bottom:14px}#timeline{position:relative;height:auto;padding-bottom:30px}#timeline:before{display:block;position:absolute;z-index:10;content:'';width:2px;background:rgba(0,0,0,.08);top:0;left:50%;bottom:0;margin-left:-1px}#timeline .ms-timeline-item{overflow:hidden;position:relative;z-index:20;width:100%;margin:0 auto;max-width:1200px}#timeline .ms-timeline-item .timeline-card{order:1}#timeline .ms-timeline-item .timeline-card .interaction .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}#timeline .ms-timeline-item .timeline-card .interaction .media .image{width:100%}#timeline .ms-timeline-item .timeline-point{position:absolute;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;left:50%;margin:16px 0 0 -28px;order:2}#timeline .ms-timeline-item .timeline-point md-icon{color:#fff}#timeline .ms-timeline-item .timeline-detail{flex:50% 0 0;padding-top:28px;order:3}#timeline .ms-timeline-item .timeline-detail .time{font-size:15px;padding-left:68px}#timeline .ms-timeline-item .timeline-detail .event{color:rgba(0,0,0,.54);padding-left:68px}#timeline .ms-timeline-item:nth-child(odd) .timeline-card{flex-direction:row-reverse}#timeline .ms-timeline-item:nth-child(even) .timeline-card{order:3;padding-right:0}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card{padding-left:84px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail{order:1;padding-left:0;text-align:right}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:68px}#timeline .ms-timeline-item:first-child{padding-top:15px}#timeline .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline .ms-timeline-item.animate .timeline-point{animation:slide-in-bottom .4s}#timeline .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-card{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-detail{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item .timeline-card{order:1}#timeline.timeline-left .ms-timeline-item .timeline-card ms-card{padding-right:68px;padding-left:0;margin-left:auto}#timeline.timeline-left .ms-timeline-item .timeline-detail{order:3;text-align:left}#timeline.timeline-left .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item .timeline-card{order:3}#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{padding-left:68px;padding-right:0;margin-right:auto}#timeline.timeline-right .ms-timeline-item .timeline-detail{order:1;text-align:right}#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:68px;padding-left:0}#timeline.timeline-right .ms-timeline-item.animate .timeline-card{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item.animate .timeline-detail{animation:slide-in-left .4s}@media screen and (max-width:1280px){#timeline .ms-timeline-item,#timeline.timeline-left .ms-timeline-item,#timeline.timeline-right .ms-timeline-item{display:block}#timeline .ms-timeline-item .timeline-point,#timeline.timeline-left .ms-timeline-item .timeline-point,#timeline.timeline-right .ms-timeline-item .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item .timeline-detail,#timeline.timeline-left .ms-timeline-item .timeline-detail,#timeline.timeline-right .ms-timeline-item .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item .timeline-detail .event,#timeline .ms-timeline-item .timeline-detail .time,#timeline.timeline-left .ms-timeline-item .timeline-detail .event,#timeline.timeline-left .ms-timeline-item .timeline-detail .time,#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{margin:0 auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-card ms-card{margin:0 auto;padding:0}}md-dialog.compose-dialog{max-width:720px;width:720px}md-dialog.compose-dialog.mail-no-secret{max-height:97%;max-width:90%!important;width:100%!important}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-toolbar .vertical-divider{position:absolute;border-right-width:.5px;border-right-style:solid;height:100%}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .to.hidden-cc input{padding-right:32px}md-dialog.compose-dialog .to.hidden-cc.hidden-bcc input{padding-right:56px}md-dialog.compose-dialog .to.hidden-bcc input{padding-right:32px}md-dialog.compose-dialog .to .cc-bcc{position:absolute;bottom:8px;right:0}md-dialog.compose-dialog .to .cc-bcc .show-bcc,md-dialog.compose-dialog .to .cc-bcc .show-cc{cursor:pointer;font-size:12px}md-dialog.compose-dialog .to .cc-bcc .show-bcc{margin-left:8px}md-dialog.compose-dialog .attachment-list{font-size:13px}md-dialog.compose-dialog .attachment-list .attachment{background-color:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.16);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .attachment-list .attachment .filename{font-weight:500}md-dialog.compose-dialog .attachment-list .attachment .md-button{margin:0}md-dialog.compose-dialog .attachment-list .attachment:last-child{margin-bottom:0}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{max-width:700px;min-height:300px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dashboard-general>.center>.header{height:160px;min-height:160px;max-height:160px;padding-bottom:0}#dashboard-general>.center>.header .selected-general{background:rgba(0,0,0,.12);color:#fff;padding:8px 16px;height:40px;line-height:24px;font-size:16px}#dashboard-general>.center>.header .general-selector{margin-left:1px;border-radius:0;background:rgba(0,0,0,.12)}#dashboard-general>.center>.header .general-selector md-icon{color:#fff}#dashboard-general>.center>.content{background:0 0;padding:0}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}#dashboard-general>.center>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-content-wrapper md-tab-content{padding:12px}#dashboard-general>.sidenav{width:330px;min-width:330px;max-width:330px;padding:0;z-index:51;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#dashboard-general>.sidenav.md-locked-open{width:250px;min-width:250px;max-width:250px;z-index:2;box-shadow:none;background:#eee}#dashboard-general .dashboard-container{padding:24px;margin-bottom:24px}#dashboard-general .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxAccount .header{height:76px;min-height:76px;max-height:76px}#fax-faxAccount .header .goto-faxAccounts-button{margin-right:16px}#fax-faxAccount .header .faxAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxAccount .header .faxAccount-image img{height:100%;width:auto;max-width:none}#fax-faxAccount .header .subtitle{margin:6px 0 0 0}#fax-faxAccount .faxAccount-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxAccount .faxAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxAccount .faxAccount-detail-form-container .handle{cursor:move}#fax-faxAccount .faxAccount-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader{position:relative}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader.dropping .drop-text{display:flex}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .upload-button{margin-bottom:16px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image .media{max-height:100%}#fax-faxAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#fax-faxAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#fax-faxAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#fax-faxAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#fax-faxAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#fax-faxAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#fax-faxAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#fax-faxAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#fax-faxAccount .actionAppData{width:80px!important}}#faxAccounts{position:relative}#faxAccounts>.header{height:76px;min-height:76px;max-height:76px}#faxAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#faxAccounts>.header .logo .logo-text{font-size:24px}#faxAccounts>.header md-icon{color:#fff}#faxAccounts>.header .search-input-wrapper{position:relative}#faxAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxAccounts>.header.selected-bar .close-button-wrapper{width:244px}#faxAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxAccounts #add-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#faxAccounts #upload-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.faxQueue-dialog{max-width:720px;width:720px}md-dialog.faxQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.faxQueue-dialog md-toolbar .title{font-size:17px}md-dialog.faxQueue-dialog md-input-container textarea{min-height:150px}md-dialog.faxQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxQueue-dialog .error-list{font-size:13px}md-dialog.faxQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxQueue-dialog .error-list .error .message{font-weight:500}md-dialog.faxQueue-dialog .error-list .error .md-button{margin:0}md-dialog.faxQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxQueue .header{height:76px;min-height:76px;max-height:76px}#fax-faxQueue .header .goto-faxQueues-button{margin-right:16px}#fax-faxQueue .header .faxQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxQueue .header .faxQueue-image img{height:100%;width:auto;max-width:none}#fax-faxQueue .header .subtitle{margin:6px 0 0 0}#fax-faxQueue .faxQueue-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxQueue .faxQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxQueue .faxQueue-detail-form-container .handle{cursor:move}#fax-faxQueue .faxQueue-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader{position:relative}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader.dropping .drop-text{display:flex}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .upload-button{margin-bottom:16px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image .media{max-height:100%}#fax-faxQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxQueues{position:relative}#faxQueues>.header{height:76px;min-height:76px;max-height:76px}#faxQueues>.header .logo .logo-icon{margin:0 16px 0 0}#faxQueues>.header .logo .logo-text{font-size:24px}#faxQueues>.header md-icon{color:#fff}#faxQueues>.header .search-input-wrapper{position:relative}#faxQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxQueues>.header.selected-bar .close-button-wrapper{width:244px}#faxQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxQueues #add-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#faxQueues #upload-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#profile .about-tab{max-width:1200px}#profile .about-tab .about{padding:8px}#profile .about-tab .about .general .location md-icon{line-height:13px!important}#profile .about-tab .about .work .job .company{padding:0 16px 0 0;font-weight:500}#profile .about-tab .about .work .job .date{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar{padding:8px 8px 8px 32px}#profile .about-tab .about-sidebar .friends .content .friend{padding:4px}#profile .about-tab .about-sidebar .groups .content .group{margin-bottom:16px}#profile .about-tab .about-sidebar .groups .content .group:last-child{margin-bottom:0}#profile .about-tab .about-sidebar .groups .content .group .logo{border:1px solid rgba(0,0,0,.12);margin-right:16px}#profile .about-tab .about-sidebar .groups .content .group .name{font-weight:500;font-size:15px}#profile .about-tab .about-sidebar .groups .content .group .category,#profile .about-tab .about-sidebar .groups .content .group .members{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar .groups .content .group .members{margin-top:16px}@media screen and (max-width:960px){#profile .about-tab .about-sidebar{padding:8px}}#maintenance{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#maintenance #maintenance-form-wrapper{flex:1 0 auto;padding:32px}#maintenance #maintenance-form-wrapper #maintenance-form{max-width:384px;padding:32px;background:#fff;text-align:center}#maintenance #maintenance-form-wrapper #maintenance-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#maintenance #maintenance-form-wrapper #maintenance-form .title{font-size:17px;margin-top:16px}#maintenance #maintenance-form-wrapper #maintenance-form .subtitle{margin:16px 0;max-width:300px;color:rgba(0,0,0,.54);font-size:15px}@media screen and (max-width:600px){#maintenance #maintenance-form-wrapper{padding:16px}#maintenance #maintenance-form-wrapper #maintenance-form{padding:24px;width:100%}}md-dialog.deskAccount-dialog{max-width:720px;width:720px}md-dialog.deskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-dialog .error-list{font-size:13px}md-dialog.deskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#deskAccounts{position:relative}#deskAccounts>.header{height:76px;min-height:76px;max-height:76px}#deskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#deskAccounts>.header .logo .logo-text{font-size:24px}#deskAccounts>.header md-icon{color:#fff}#deskAccounts>.header .search-input-wrapper{position:relative}#deskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#deskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#deskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#deskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#deskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#deskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#deskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#deskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#deskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#deskAccounts #add-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#deskAccounts #upload-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.deskConfiguration-dialog{max-width:720px;width:720px}md-dialog.deskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.deskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.deskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.deskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskConfiguration-dialog .error-list{font-size:13px}md-dialog.deskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.deskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.deskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.deskAccount-item-dialog{max-width:720px;width:720px}md-dialog.deskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-item-dialog .error-list{font-size:13px}md-dialog.deskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-deskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-deskAccount .header .goto-deskAccounts-button{margin-right:16px}#integrations-deskAccount .header .deskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-deskAccount .header .deskAccount-image img{height:100%;width:auto;max-width:none}#integrations-deskAccount .header .subtitle{margin:6px 0 0 0}#integrations-deskAccount .deskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-deskAccount .deskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-deskAccount .deskAccount-detail-form-container .handle{cursor:move}#integrations-deskAccount .deskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader{position:relative}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image .media{max-height:100%}#integrations-deskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-deskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.dynamics365Account-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dynamics365Accounts{position:relative}#dynamics365Accounts>.header{height:76px;min-height:76px;max-height:76px}#dynamics365Accounts>.header .logo .logo-icon{margin:0 16px 0 0}#dynamics365Accounts>.header .logo .logo-text{font-size:24px}#dynamics365Accounts>.header md-icon{color:#fff}#dynamics365Accounts>.header .search-input-wrapper{position:relative}#dynamics365Accounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dynamics365Accounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dynamics365Accounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dynamics365Accounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dynamics365Accounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dynamics365Accounts>.header.selected-bar .close-button-wrapper{width:244px}#dynamics365Accounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dynamics365Accounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dynamics365Accounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dynamics365Accounts #add-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}#dynamics365Accounts #upload-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dynamics365Configuration-dialog{max-width:720px;width:720px}md-dialog.dynamics365Configuration-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Configuration-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Configuration-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Configuration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Configuration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Configuration-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Configuration-dialog .error-list{font-size:13px}md-dialog.dynamics365Configuration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Configuration-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Configuration-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Configuration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Configuration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dynamics365Account-item-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-item-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-item-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-item-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-item-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-item-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-item-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-dynamics365Account .header{height:76px;min-height:76px;max-height:76px}#integrations-dynamics365Account .header .goto-dynamics365Accounts-button{margin-right:16px}#integrations-dynamics365Account .header .dynamics365Account-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-dynamics365Account .header .dynamics365Account-image img{height:100%;width:auto;max-width:none}#integrations-dynamics365Account .header .subtitle{margin:6px 0 0 0}#integrations-dynamics365Account .dynamics365Account-detail-form-container{padding:24px;margin-bottom:24px}#integrations-dynamics365Account .dynamics365Account-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-dynamics365Account .dynamics365Account-detail-form-container .handle{cursor:move}#integrations-dynamics365Account .dynamics365Account-detail-form-container md-input-container md-switch{margin:0!important}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader{position:relative}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader.dropping .drop-text{display:flex}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .upload-button{margin-bottom:16px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image .media{max-height:100%}#integrations-dynamics365Account md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-dynamics365Account md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.freshdeskAccount-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshdeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskConfiguration-dialog .error-list{font-size:13px}md-dialog.freshdeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-item-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshdeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshdeskAccount .header .goto-freshdeskAccounts-button{margin-right:16px}#integrations-freshdeskAccount .header .freshdeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshdeskAccount .header .freshdeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshdeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .handle{cursor:move}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader{position:relative}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image .media{max-height:100%}#integrations-freshdeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshdeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshdeskAccounts{position:relative}#freshdeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshdeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshdeskAccounts>.header .logo .logo-text{font-size:24px}#freshdeskAccounts>.header md-icon{color:#fff}#freshdeskAccounts>.header .search-input-wrapper{position:relative}#freshdeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshdeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshdeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshdeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshdeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshdeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshdeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshdeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshdeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshdeskAccounts #add-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshdeskAccounts #upload-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.freshsalesAccount-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshsalesConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesConfiguration-dialog .error-list{font-size:13px}md-dialog.freshsalesConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-item-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshsalesAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshsalesAccount .header .goto-freshsalesAccounts-button{margin-right:16px}#integrations-freshsalesAccount .header .freshsalesAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshsalesAccount .header .freshsalesAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshsalesAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .handle{cursor:move}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader{position:relative}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image .media{max-height:100%}#integrations-freshsalesAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshsalesAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshsalesAccounts{position:relative}#freshsalesAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshsalesAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshsalesAccounts>.header .logo .logo-text{font-size:24px}#freshsalesAccounts>.header md-icon{color:#fff}#freshsalesAccounts>.header .search-input-wrapper{position:relative}#freshsalesAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshsalesAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshsalesAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshsalesAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshsalesAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshsalesAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshsalesAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshsalesAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshsalesAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshsalesAccounts #add-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshsalesAccounts #upload-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.salesforceAccount-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceConfiguration-dialog{max-width:720px;width:720px}md-dialog.salesforceConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceConfiguration-dialog .error-list{font-size:13px}md-dialog.salesforceConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceAccount-item-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-item-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-salesforceAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-salesforceAccount .header .goto-salesforceAccounts-button{margin-right:16px}#integrations-salesforceAccount .header .salesforceAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-salesforceAccount .header .salesforceAccount-image img{height:100%;width:auto;max-width:none}#integrations-salesforceAccount .header .subtitle{margin:6px 0 0 0}#integrations-salesforceAccount .salesforceAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-salesforceAccount .salesforceAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-salesforceAccount .salesforceAccount-detail-form-container .handle{cursor:move}#integrations-salesforceAccount .salesforceAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader{position:relative}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader.dropping .drop-text{display:flex}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image .media{max-height:100%}#integrations-salesforceAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-salesforceAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#salesforceAccounts{position:relative}#salesforceAccounts>.header{height:76px;min-height:76px;max-height:76px}#salesforceAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#salesforceAccounts>.header .logo .logo-text{font-size:24px}#salesforceAccounts>.header md-icon{color:#fff}#salesforceAccounts>.header .search-input-wrapper{position:relative}#salesforceAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#salesforceAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#salesforceAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#salesforceAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#salesforceAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#salesforceAccounts>.header.selected-bar .close-button-wrapper{width:244px}#salesforceAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#salesforceAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#salesforceAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#salesforceAccounts #add-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#salesforceAccounts #upload-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.servicenowAccount-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowConfiguration-dialog{max-width:720px;width:720px}md-dialog.servicenowConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowConfiguration-dialog .error-list{font-size:13px}md-dialog.servicenowConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowAccount-item-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-item-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-servicenowAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-servicenowAccount .header .goto-servicenowAccounts-button{margin-right:16px}#integrations-servicenowAccount .header .servicenowAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-servicenowAccount .header .servicenowAccount-image img{height:100%;width:auto;max-width:none}#integrations-servicenowAccount .header .subtitle{margin:6px 0 0 0}#integrations-servicenowAccount .servicenowAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-servicenowAccount .servicenowAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-servicenowAccount .servicenowAccount-detail-form-container .handle{cursor:move}#integrations-servicenowAccount .servicenowAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader{position:relative}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader.dropping .drop-text{display:flex}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image .media{max-height:100%}#integrations-servicenowAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-servicenowAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#servicenowAccounts{position:relative}#servicenowAccounts>.header{height:76px;min-height:76px;max-height:76px}#servicenowAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#servicenowAccounts>.header .logo .logo-text{font-size:24px}#servicenowAccounts>.header md-icon{color:#fff}#servicenowAccounts>.header .search-input-wrapper{position:relative}#servicenowAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#servicenowAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#servicenowAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#servicenowAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#servicenowAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#servicenowAccounts>.header.selected-bar .close-button-wrapper{width:244px}#servicenowAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#servicenowAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#servicenowAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#servicenowAccounts #add-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#servicenowAccounts #upload-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sugarcrmAccount-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmConfiguration-dialog{max-width:720px;width:720px}md-dialog.sugarcrmConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmConfiguration-dialog .error-list{font-size:13px}md-dialog.sugarcrmConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmAccount-item-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-item-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-sugarcrmAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-sugarcrmAccount .header .goto-sugarcrmAccounts-button{margin-right:16px}#integrations-sugarcrmAccount .header .sugarcrmAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-sugarcrmAccount .header .sugarcrmAccount-image img{height:100%;width:auto;max-width:none}#integrations-sugarcrmAccount .header .subtitle{margin:6px 0 0 0}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .handle{cursor:move}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader{position:relative}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader.dropping .drop-text{display:flex}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image .media{max-height:100%}#integrations-sugarcrmAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-sugarcrmAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#sugarcrmAccounts{position:relative}#sugarcrmAccounts>.header{height:76px;min-height:76px;max-height:76px}#sugarcrmAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#sugarcrmAccounts>.header .logo .logo-text{font-size:24px}#sugarcrmAccounts>.header md-icon{color:#fff}#sugarcrmAccounts>.header .search-input-wrapper{position:relative}#sugarcrmAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sugarcrmAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sugarcrmAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sugarcrmAccounts>.header.selected-bar .close-button-wrapper{width:244px}#sugarcrmAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sugarcrmAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sugarcrmAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sugarcrmAccounts #add-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#sugarcrmAccounts #upload-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.vtigerAccount-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerConfiguration-dialog{max-width:720px;width:720px}md-dialog.vtigerConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerConfiguration-dialog .error-list{font-size:13px}md-dialog.vtigerConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerAccount-item-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-item-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-vtigerAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-vtigerAccount .header .goto-vtigerAccounts-button{margin-right:16px}#integrations-vtigerAccount .header .vtigerAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-vtigerAccount .header .vtigerAccount-image img{height:100%;width:auto;max-width:none}#integrations-vtigerAccount .header .subtitle{margin:6px 0 0 0}#integrations-vtigerAccount .vtigerAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-vtigerAccount .vtigerAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-vtigerAccount .vtigerAccount-detail-form-container .handle{cursor:move}#integrations-vtigerAccount .vtigerAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader{position:relative}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader.dropping .drop-text{display:flex}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image .media{max-height:100%}#integrations-vtigerAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-vtigerAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#vtigerAccounts{position:relative}#vtigerAccounts>.header{height:76px;min-height:76px;max-height:76px}#vtigerAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#vtigerAccounts>.header .logo .logo-text{font-size:24px}#vtigerAccounts>.header md-icon{color:#fff}#vtigerAccounts>.header .search-input-wrapper{position:relative}#vtigerAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#vtigerAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#vtigerAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#vtigerAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#vtigerAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#vtigerAccounts>.header.selected-bar .close-button-wrapper{width:244px}#vtigerAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#vtigerAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#vtigerAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#vtigerAccounts #add-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#vtigerAccounts #upload-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zendeskAccount-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zendeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-item-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zendeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zendeskAccount .header .goto-zendeskAccounts-button{margin-right:16px}#integrations-zendeskAccount .header .zendeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zendeskAccount .header .zendeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-zendeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-zendeskAccount .zendeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zendeskAccount .zendeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zendeskAccount .zendeskAccount-detail-form-container .handle{cursor:move}#integrations-zendeskAccount .zendeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader{position:relative}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image .media{max-height:100%}#integrations-zendeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zendeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.zendeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.zendeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskConfiguration-dialog .error-list{font-size:13px}md-dialog.zendeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#zendeskAccounts{position:relative}#zendeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#zendeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zendeskAccounts>.header .logo .logo-text{font-size:24px}#zendeskAccounts>.header md-icon{color:#fff}#zendeskAccounts>.header .search-input-wrapper{position:relative}#zendeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zendeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zendeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zendeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zendeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zendeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zendeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zendeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zendeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zendeskAccounts #add-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zendeskAccounts #upload-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zohoAccount-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-dialog .error-list{font-size:13px}md-dialog.zohoAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoConfiguration-dialog{max-width:720px;width:720px}md-dialog.zohoConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zohoConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zohoConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoConfiguration-dialog .error-list{font-size:13px}md-dialog.zohoConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zohoConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zohoConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoAccount-item-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-item-dialog .error-list{font-size:13px}md-dialog.zohoAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zohoAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zohoAccount .header .goto-zohoAccounts-button{margin-right:16px}#integrations-zohoAccount .header .zohoAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zohoAccount .header .zohoAccount-image img{height:100%;width:auto;max-width:none}#integrations-zohoAccount .header .subtitle{margin:6px 0 0 0}#integrations-zohoAccount .zohoAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zohoAccount .zohoAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zohoAccount .zohoAccount-detail-form-container .handle{cursor:move}#integrations-zohoAccount .zohoAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader{position:relative}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image .media{max-height:100%}#integrations-zohoAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zohoAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#zohoAccounts{position:relative}#zohoAccounts>.header{height:76px;min-height:76px;max-height:76px}#zohoAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zohoAccounts>.header .logo .logo-text{font-size:24px}#zohoAccounts>.header md-icon{color:#fff}#zohoAccounts>.header .search-input-wrapper{position:relative}#zohoAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zohoAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zohoAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zohoAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zohoAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zohoAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zohoAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zohoAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zohoAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zohoAccounts #add-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zohoAccounts #upload-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.project-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.session-dialog{max-width:720px;width:720px}md-dialog.session-dialog md-dialog-content{display:block;position:relative}md-dialog.session-dialog md-toolbar .title{font-size:17px}md-dialog.session-dialog md-input-container textarea{min-height:150px}md-dialog.session-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.session-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.session-dialog .date-container{padding:16px 0 24px 0}md-dialog.session-dialog .error-list{font-size:13px}md-dialog.session-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.session-dialog .error-list .error .message{font-weight:500}md-dialog.session-dialog .error-list .error .md-button{margin:0}md-dialog.session-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.session-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#jscripty-project .header{height:76px;min-height:76px;max-height:76px}#jscripty-project .header .goto-projects-button{margin-right:16px}#jscripty-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#jscripty-project .header .project-image img{height:100%;width:auto;max-width:none}#jscripty-project .header .subtitle{margin:6px 0 0 0}#jscripty-project .project-detail-form-container{padding:24px;margin-bottom:24px}#jscripty-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#jscripty-project .project-detail-form-container .handle{cursor:move}#jscripty-project .project-detail-form-container md-input-container md-switch{margin:0!important}#jscripty-project .project-detail-form-container #project-image-uploader{position:relative}#jscripty-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#jscripty-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#jscripty-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#jscripty-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#jscripty-project md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#jscripty-project md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container.font-size-12 td.md-cell{font-size:12px!important}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}#projects #upload-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.mailCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.mailCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.mailCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.mailCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailCannedAnswer-dialog .error-list{font-size:13px}md-dialog.mailCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.mailCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.mailCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailAccount .header{height:76px;min-height:76px;max-height:76px}#mail-mailAccount .header .goto-mailAccounts-button{margin-right:16px}#mail-mailAccount .header .mailAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailAccount .header .mailAccount-image img{height:100%;width:auto;max-width:none}#mail-mailAccount .header .subtitle{margin:6px 0 0 0}#mail-mailAccount .mailAccount-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailAccount .mailAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailAccount .mailAccount-detail-form-container .handle{cursor:move}#mail-mailAccount .mailAccount-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader{position:relative}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader.dropping .drop-text{display:flex}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .upload-button{margin-bottom:16px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image .media{max-height:100%}#mail-mailAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#mail-mailAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#mail-mailAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#mail-mailAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#mail-mailAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#mail-mailAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#mail-mailAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#mail-mailAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#mail-mailAccount .actionAppData{width:80px!important}}#mailAccounts{position:relative}#mailAccounts>.header{height:76px;min-height:76px;max-height:76px}#mailAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#mailAccounts>.header .logo .logo-text{font-size:24px}#mailAccounts>.header md-icon{color:#fff}#mailAccounts>.header .search-input-wrapper{position:relative}#mailAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailAccounts>.header.selected-bar .close-button-wrapper{width:244px}#mailAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailAccounts #add-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#mailAccounts #upload-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailQueue-dialog{max-width:720px;width:720px}md-dialog.mailQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.mailQueue-dialog md-toolbar .title{font-size:17px}md-dialog.mailQueue-dialog md-input-container textarea{min-height:150px}md-dialog.mailQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailQueue-dialog .error-list{font-size:13px}md-dialog.mailQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailQueue-dialog .error-list .error .message{font-weight:500}md-dialog.mailQueue-dialog .error-list .error .md-button{margin:0}md-dialog.mailQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailQueue .header{height:76px;min-height:76px;max-height:76px}#mail-mailQueue .header .goto-mailQueues-button{margin-right:16px}#mail-mailQueue .header .mailQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailQueue .header .mailQueue-image img{height:100%;width:auto;max-width:none}#mail-mailQueue .header .subtitle{margin:6px 0 0 0}#mail-mailQueue .mailQueue-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailQueue .mailQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailQueue .mailQueue-detail-form-container .handle{cursor:move}#mail-mailQueue .mailQueue-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader{position:relative}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader.dropping .drop-text{display:flex}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .upload-button{margin-bottom:16px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image .media{max-height:100%}#mail-mailQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailQueues{position:relative}#mailQueues>.header{height:76px;min-height:76px;max-height:76px}#mailQueues>.header .logo .logo-icon{margin:0 16px 0 0}#mailQueues>.header .logo .logo-text{font-size:24px}#mailQueues>.header md-icon{color:#fff}#mailQueues>.header .search-input-wrapper{position:relative}#mailQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailQueues>.header.selected-bar .close-button-wrapper{width:244px}#mailQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailQueues #add-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#mailQueues #upload-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailSubstatus-dialog{max-width:720px;width:720px}md-dialog.mailSubstatus-dialog md-dialog-content{display:block;position:relative}md-dialog.mailSubstatus-dialog md-toolbar .title{font-size:17px}md-dialog.mailSubstatus-dialog md-input-container textarea{min-height:150px}md-dialog.mailSubstatus-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailSubstatus-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailSubstatus-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailSubstatus-dialog .error-list{font-size:13px}md-dialog.mailSubstatus-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailSubstatus-dialog .error-list .error .message{font-weight:500}md-dialog.mailSubstatus-dialog .error-list .error .md-button{margin:0}md-dialog.mailSubstatus-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailSubstatus-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mailSubtatuses{position:relative}#mailSubtatuses>.header{height:76px;min-height:76px;max-height:76px}#mailSubtatuses>.header .logo .logo-icon{margin:0 16px 0 0}#mailSubtatuses>.header .logo .logo-text{font-size:24px}#mailSubtatuses>.header md-icon{color:#fff}#mailSubtatuses>.header .search-input-wrapper{position:relative}#mailSubtatuses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailSubtatuses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailSubtatuses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailSubtatuses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailSubtatuses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailSubtatuses>.header.selected-bar .close-button-wrapper{width:244px}#mailSubtatuses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailSubtatuses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailSubtatuses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailSubtatuses #add-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#mailSubtatuses #upload-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.plugin-dialog{max-width:720px;width:720px}md-dialog.plugin-dialog md-dialog-content{display:block;position:relative}md-dialog.plugin-dialog md-toolbar .title{font-size:17px}md-dialog.plugin-dialog md-input-container textarea{min-height:150px}md-dialog.plugin-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.plugin-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.plugin-dialog .date-container{padding:16px 0 24px 0}md-dialog.plugin-dialog .error-list{font-size:13px}md-dialog.plugin-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.plugin-dialog .error-list .error .message{font-weight:500}md-dialog.plugin-dialog .error-list .error .md-button{margin:0}md-dialog.plugin-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.plugin-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#marketplace-plugin .header{height:76px;min-height:76px;max-height:76px}#marketplace-plugin .header .goto-plugins-button{margin-right:16px}#marketplace-plugin .header .plugin-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#marketplace-plugin .header .plugin-image img{height:100%;width:auto;max-width:none}#marketplace-plugin .header .subtitle{margin:6px 0 0 0}#marketplace-plugin .plugin-detail-form-container{padding:24px;margin-bottom:24px}#marketplace-plugin .plugin-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#marketplace-plugin .plugin-detail-form-container .handle{cursor:move}#marketplace-plugin .plugin-detail-form-container md-input-container md-switch{margin:0!important}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader{position:relative}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader.dropping .drop-text{display:flex}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .upload-button{margin-bottom:16px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image .media{max-height:100%}#marketplace-plugin md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#marketplace-plugin md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container.font-size-12 td.md-cell{font-size:12px!important}#plugins{position:relative}#plugins>.header{height:76px;min-height:76px;max-height:76px}#plugins>.header .logo .logo-icon{margin:0 16px 0 0}#plugins>.header .logo .logo-text{font-size:24px}#plugins>.header md-icon{color:#fff}#plugins>.header .search-input-wrapper{position:relative}#plugins>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#plugins>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#plugins>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#plugins>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#plugins>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#plugins>.header.selected-bar .close-button-wrapper{width:244px}#plugins>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#plugins>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#plugins>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#plugins #add-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}#plugins #upload-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .plugin-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .plugin-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.ivrCampaign-dialog{max-width:720px;width:720px}md-dialog.ivrCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.ivrCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.ivrCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.ivrCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.ivrCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.ivrCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.ivrCampaign-dialog .error-list{font-size:13px}md-dialog.ivrCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.ivrCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.ivrCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.ivrCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.ivrCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-ivrCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-ivrCampaign .header .goto-ivrCampaigns-button{margin-right:16px}#motiondialer-ivrCampaign .header .ivrCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-ivrCampaign .header .ivrCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-ivrCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .handle{cursor:move}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader{position:relative}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image .media{max-height:100%}#motiondialer-ivrCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-ivrCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#ivrCampaigns{position:relative}#ivrCampaigns>.header{height:76px;min-height:76px;max-height:76px}#ivrCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#ivrCampaigns>.header .logo .logo-text{font-size:24px}#ivrCampaigns>.header md-icon{color:#fff}#ivrCampaigns>.header .search-input-wrapper{position:relative}#ivrCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#ivrCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#ivrCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#ivrCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#ivrCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#ivrCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#ivrCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#ivrCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#ivrCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#ivrCampaigns #add-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#ivrCampaigns #upload-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.queueCampaign-dialog{max-width:720px;width:720px}md-dialog.queueCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.queueCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.queueCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.queueCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.queueCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.queueCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.queueCampaign-dialog .error-list{font-size:13px}md-dialog.queueCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.queueCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.queueCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.queueCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.queueCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-queueCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-queueCampaign .header .goto-queueCampaigns-button{margin-right:16px}#motiondialer-queueCampaign .header .queueCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-queueCampaign .header .queueCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-queueCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-queueCampaign .queueCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-queueCampaign .queueCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-queueCampaign .queueCampaign-detail-form-container .handle{cursor:move}#motiondialer-queueCampaign .queueCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader{position:relative}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image .media{max-height:100%}#motiondialer-queueCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-queueCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#queueCampaigns{position:relative}#queueCampaigns>.header{height:76px;min-height:76px;max-height:76px}#queueCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#queueCampaigns>.header .logo .logo-text{font-size:24px}#queueCampaigns>.header md-icon{color:#fff}#queueCampaigns>.header .search-input-wrapper{position:relative}#queueCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#queueCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#queueCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#queueCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#queueCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#queueCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#queueCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#queueCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#queueCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#queueCampaigns #add-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#queueCampaigns #upload-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.predictive-dialog{max-width:720px;width:720px}md-dialog.predictive-dialog md-dialog-content{display:block;position:relative}md-dialog.predictive-dialog md-toolbar .title{font-size:17px}md-dialog.predictive-dialog md-input-container textarea{min-height:150px}md-dialog.predictive-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.predictive-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.predictive-dialog .date-container{padding:16px 0 24px 0}md-dialog.predictive-dialog .error-list{font-size:13px}md-dialog.predictive-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.predictive-dialog .error-list .error .message{font-weight:500}md-dialog.predictive-dialog .error-list .error .md-button{margin:0}md-dialog.predictive-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.predictive-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.openchannelCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelCannedAnswer-dialog .error-list{font-size:13px}md-dialog.openchannelCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelAccount .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelAccount .header .goto-openchannelAccounts-button{margin-right:16px}#openchannel-openchannelAccount .header .openchannelAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelAccount .header .openchannelAccount-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelAccount .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelAccount .openchannelAccount-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .handle{cursor:move}#openchannel-openchannelAccount .openchannelAccount-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader{position:relative}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image .media{max-height:100%}#openchannel-openchannelAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#openchannel-openchannelAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#openchannel-openchannelAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#openchannel-openchannelAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#openchannel-openchannelAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#openchannel-openchannelAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#openchannel-openchannelAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#openchannel-openchannelAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#openchannel-openchannelAccount .actionAppData{width:80px!important}}#openchannelAccounts{position:relative}#openchannelAccounts>.header{height:76px;min-height:76px;max-height:76px}#openchannelAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelAccounts>.header .logo .logo-text{font-size:24px}#openchannelAccounts>.header md-icon{color:#fff}#openchannelAccounts>.header .search-input-wrapper{position:relative}#openchannelAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelAccounts>.header.selected-bar .close-button-wrapper{width:244px}#openchannelAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelAccounts #add-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelAccounts #upload-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.openchannelQueue-dialog{max-width:720px;width:720px}md-dialog.openchannelQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelQueue-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelQueue-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelQueue-dialog .error-list{font-size:13px}md-dialog.openchannelQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelQueue-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelQueue-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelQueue .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelQueue .header .goto-openchannelQueues-button{margin-right:16px}#openchannel-openchannelQueue .header .openchannelQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelQueue .header .openchannelQueue-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelQueue .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelQueue .openchannelQueue-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .handle{cursor:move}#openchannel-openchannelQueue .openchannelQueue-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader{position:relative}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image .media{max-height:100%}#openchannel-openchannelQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelQueues{position:relative}#openchannelQueues>.header{height:76px;min-height:76px;max-height:76px}#openchannelQueues>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelQueues>.header .logo .logo-text{font-size:24px}#openchannelQueues>.header md-icon{color:#fff}#openchannelQueues>.header .search-input-wrapper{position:relative}#openchannelQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelQueues>.header.selected-bar .close-button-wrapper{width:244px}#openchannelQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelQueues #add-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelQueues #upload-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#plugin .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#cloudProviders{position:relative}#cloudProviders>.header{height:76px;min-height:76px;max-height:76px}#cloudProviders>.header .logo .logo-icon{margin:0 16px 0 0}#cloudProviders>.header .logo .logo-text{font-size:24px}#cloudProviders>.header md-icon{color:#fff}#cloudProviders>.header .search-input-wrapper{position:relative}#cloudProviders>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cloudProviders>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cloudProviders>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cloudProviders>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cloudProviders>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cloudProviders>.header.selected-bar .close-button-wrapper{width:244px}#cloudProviders>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cloudProviders>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cloudProviders>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cloudProviders #add-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}#cloudProviders #upload-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cloudProvider-dialog{max-width:720px;width:720px}md-dialog.cloudProvider-dialog md-dialog-content{display:block;position:relative}md-dialog.cloudProvider-dialog md-toolbar .title{font-size:17px}md-dialog.cloudProvider-dialog md-input-container textarea{min-height:150px}md-dialog.cloudProvider-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cloudProvider-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cloudProvider-dialog .date-container{padding:16px 0 24px 0}md-dialog.cloudProvider-dialog .error-list{font-size:13px}md-dialog.cloudProvider-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cloudProvider-dialog .error-list .error .message{font-weight:500}md-dialog.cloudProvider-dialog .error-list .error .md-button{margin:0}md-dialog.cloudProvider-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cloudProvider-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customization-dialog{max-width:720px;width:720px}md-dialog.customization-dialog md-dialog-content{display:block;position:relative}md-dialog.customization-dialog md-toolbar .title{font-size:17px}md-dialog.customization-dialog md-input-container textarea{min-height:150px}md-dialog.customization-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customization-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customization-dialog .date-container{padding:16px 0 24px 0}md-dialog.customization-dialog .error-list{font-size:13px}md-dialog.customization-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customization-dialog .error-list .error .message{font-weight:500}md-dialog.customization-dialog .error-list .error .md-button{margin:0}md-dialog.customization-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customization-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customizations{position:relative}#customizations>.header{height:76px;min-height:76px;max-height:76px}#customizations>.header .logo .logo-icon{margin:0 16px 0 0}#customizations>.header .logo .logo-text{font-size:24px}#customizations>.header md-icon{color:#fff}#customizations>.header .search-input-wrapper{position:relative}#customizations>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customizations>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customizations>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customizations>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customizations>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customizations>.header.selected-bar .close-button-wrapper{width:244px}#customizations>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customizations>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customizations>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customizations>.content .customization-detail-form-container{padding:24px;margin-bottom:24px}#customizations>.content .customization-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#customizations>.content .customization-detail-form-container .handle{cursor:move}#customizations>.content .customization-detail-form-container md-input-container md-switch{margin:0!important}#customizations>.content .customization-detail-form-container #customization-image-uploader{position:relative}#customizations>.content .customization-detail-form-container #customization-image-uploader.dropping .drop-text{display:flex}#customizations>.content .customization-detail-form-container #customization-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#customizations>.content .customization-detail-form-container #customization-image-uploader .upload-button{margin-bottom:16px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image .media{max-height:100%}#customizations #add-customization-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.general-dialog{max-width:720px;width:720px}md-dialog.general-dialog md-dialog-content{display:block;position:relative}md-dialog.general-dialog md-toolbar .title{font-size:17px}md-dialog.general-dialog md-input-container textarea{min-height:150px}md-dialog.general-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.general-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.general-dialog .date-container{padding:16px 0 24px 0}md-dialog.general-dialog .error-list{font-size:13px}md-dialog.general-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.general-dialog .error-list .error .message{font-weight:500}md-dialog.general-dialog .error-list .error .md-button{margin:0}md-dialog.general-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.general-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#generals{position:relative}#generals>.header{height:76px;min-height:76px;max-height:76px}#generals>.header .logo .logo-icon{margin:0 16px 0 0}#generals>.header .logo .logo-text{font-size:24px}#generals>.header md-icon{color:#fff}#generals>.header .search-input-wrapper{position:relative}#generals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#generals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#generals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#generals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#generals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#generals>.header.selected-bar .close-button-wrapper{width:244px}#generals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#generals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#generals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#generals>.content .general-detail-form-container{padding:24px;margin-bottom:24px}#generals>.content .general-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#generals>.content .general-detail-form-container .handle{cursor:move}#generals>.content .general-detail-form-container md-input-container md-switch{margin:0!important}#generals>.content .general-detail-form-container #general-image-uploader{position:relative}#generals>.content .general-detail-form-container #general-image-uploader.dropping .drop-text{display:flex}#generals>.content .general-detail-form-container #general-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#generals>.content .general-detail-form-container #general-image-uploader .upload-button{margin-bottom:16px}#generals>.content .general-detail-form-container #general-image-uploader .general-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#generals>.content .general-detail-form-container #general-image-uploader .general-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#generals>.content .general-detail-form-container #general-image-uploader .general-image .media{max-height:100%}#generals #add-general-button{position:fixed;bottom:8px;right:8px;padding:0}#license{position:relative}#license .blink{animation:blinker 2s linear infinite}#license>.header{height:76px;min-height:76px;max-height:76px}#license>.header .logo .logo-icon{margin:0 16px 0 0}#license>.header .logo .logo-text{font-size:24px}#license>.header md-icon{color:#fff}#license>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#license>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#license>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#license>.content .badge{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}md-dialog.request-dialog{max-width:720px;width:720px}md-dialog.request-dialog md-dialog-content{display:block;position:relative}md-dialog.request-dialog md-toolbar .title{font-size:17px}md-dialog.request-dialog md-input-container textarea{min-height:150px}md-dialog.request-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.request-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.request-dialog .date-container{padding:16px 0 24px 0}md-dialog.request-dialog .error-list{font-size:13px}md-dialog.request-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.request-dialog .error-list .error .message{font-weight:500}md-dialog.request-dialog .error-list .error .md-button{margin:0}md-dialog.request-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.request-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.update-dialog{max-width:720px;width:720px}md-dialog.update-dialog md-dialog-content{display:block;position:relative}md-dialog.update-dialog md-toolbar .title{font-size:17px}md-dialog.update-dialog md-input-container textarea{min-height:60px}md-dialog.update-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.update-dialog .error-list{font-size:13px}md-dialog.update-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.update-dialog .error-list .error .message{font-weight:500}md-dialog.update-dialog .error-list .error .md-button{margin:0}md-dialog.update-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.update-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.network-dialog{max-width:720px;width:720px}md-dialog.network-dialog md-dialog-content{display:block;position:relative}md-dialog.network-dialog md-toolbar .title{font-size:17px}md-dialog.network-dialog md-input-container textarea{min-height:150px}md-dialog.network-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.network-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.network-dialog .date-container{padding:16px 0 24px 0}md-dialog.network-dialog .error-list{font-size:13px}md-dialog.network-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.network-dialog .error-list .error .message{font-weight:500}md-dialog.network-dialog .error-list .error .md-button{margin:0}md-dialog.network-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.network-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#networks{position:relative}#networks>.header{height:76px;min-height:76px;max-height:76px}#networks>.header .logo .logo-icon{margin:0 16px 0 0}#networks>.header .logo .logo-text{font-size:24px}#networks>.header md-icon{color:#fff}#networks>.header .search-input-wrapper{position:relative}#networks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#networks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#networks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#networks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#networks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#networks>.header.selected-bar .close-button-wrapper{width:244px}#networks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#networks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#networks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#networks #add-network-button{position:fixed;bottom:8px;right:8px;padding:0}#networks #upload-network-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smtp-dialog{max-width:720px;width:720px}md-dialog.smtp-dialog md-dialog-content{display:block;position:relative}md-dialog.smtp-dialog md-toolbar .title{font-size:17px}md-dialog.smtp-dialog md-input-container textarea{min-height:150px}md-dialog.smtp-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smtp-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smtp-dialog .date-container{padding:16px 0 24px 0}md-dialog.smtp-dialog .error-list{font-size:13px}md-dialog.smtp-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smtp-dialog .error-list .error .message{font-weight:500}md-dialog.smtp-dialog .error-list .error .md-button{margin:0}md-dialog.smtp-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smtp-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#smtps{position:relative}#smtps>.header{height:76px;min-height:76px;max-height:76px}#smtps>.header .logo .logo-icon{margin:0 16px 0 0}#smtps>.header .logo .logo-text{font-size:24px}#smtps>.header md-icon{color:#fff}#smtps>.header .search-input-wrapper{position:relative}#smtps>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smtps>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smtps>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smtps>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smtps>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smtps>.header.selected-bar .close-button-wrapper{width:244px}#smtps>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smtps>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smtps>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smtps>.content .smtp-detail-form-container{padding:24px;margin-bottom:24px}#smtps>.content .smtp-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#smtps>.content .smtp-detail-form-container .handle{cursor:move}#smtps>.content .smtp-detail-form-container md-input-container md-switch{margin:0!important}#smtps>.content .smtp-detail-form-container #smtp-image-uploader{position:relative}#smtps>.content .smtp-detail-form-container #smtp-image-uploader.dropping .drop-text{display:flex}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .upload-button{margin-bottom:16px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image .media{max-height:100%}#smtps #add-smtp-button{position:fixed;bottom:8px;right:8px;padding:0}#system>.header{height:76px;min-height:76px;max-height:76px}#system>.header .logo .logo-icon{margin:0 16px 0 0}#system>.header .logo .logo-text{font-size:24px}#system>.header md-icon{color:#fff}#system .system-detail-form-container{padding:24px;margin-bottom:24px}#system .system-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#system .system-detail-form-container .handle{cursor:move}#system .system-detail-form-container md-input-container md-switch{margin:0!important}#system .system-detail-form-container #system-image-uploader{position:relative}#system .system-detail-form-container #system-image-uploader.dropping .drop-text{display:flex}#system .system-detail-form-container #system-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#system .system-detail-form-container #system-image-uploader .upload-button{margin-bottom:16px}#system .system-detail-form-container #system-image-uploader .system-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#system .system-detail-form-container #system-image-uploader .system-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#system .system-detail-form-container #system-image-uploader .system-image .media{max-height:100%}#updates{position:relative}#updates>.header{height:76px;min-height:76px;max-height:76px}#updates>.header .logo .logo-icon{margin:0 16px 0 0}#updates>.header .logo .logo-text{font-size:24px}#updates>.header md-icon{color:#fff}#updates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#updates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#updates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.smsCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.smsCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.smsCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.smsCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsCannedAnswer-dialog .error-list{font-size:13px}md-dialog.smsCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.smsCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.smsCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsAccount .header{height:76px;min-height:76px;max-height:76px}#sms-smsAccount .header .goto-smsAccounts-button{margin-right:16px}#sms-smsAccount .header .smsAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsAccount .header .smsAccount-image img{height:100%;width:auto;max-width:none}#sms-smsAccount .header .subtitle{margin:6px 0 0 0}#sms-smsAccount .smsAccount-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsAccount .smsAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsAccount .smsAccount-detail-form-container .handle{cursor:move}#sms-smsAccount .smsAccount-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader{position:relative}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader.dropping .drop-text{display:flex}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .upload-button{margin-bottom:16px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image .media{max-height:100%}#sms-smsAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#sms-smsAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#sms-smsAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#sms-smsAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#sms-smsAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#sms-smsAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#sms-smsAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#sms-smsAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#sms-smsAccount .actionAppData{width:80px!important}}#smsAccounts{position:relative}#smsAccounts>.header{height:76px;min-height:76px;max-height:76px}#smsAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#smsAccounts>.header .logo .logo-text{font-size:24px}#smsAccounts>.header md-icon{color:#fff}#smsAccounts>.header .search-input-wrapper{position:relative}#smsAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsAccounts>.header.selected-bar .close-button-wrapper{width:244px}#smsAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsAccounts #add-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#smsAccounts #upload-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smsQueue-dialog{max-width:720px;width:720px}md-dialog.smsQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.smsQueue-dialog md-toolbar .title{font-size:17px}md-dialog.smsQueue-dialog md-input-container textarea{min-height:150px}md-dialog.smsQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsQueue-dialog .error-list{font-size:13px}md-dialog.smsQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsQueue-dialog .error-list .error .message{font-weight:500}md-dialog.smsQueue-dialog .error-list .error .md-button{margin:0}md-dialog.smsQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsQueue .header{height:76px;min-height:76px;max-height:76px}#sms-smsQueue .header .goto-smsQueues-button{margin-right:16px}#sms-smsQueue .header .smsQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsQueue .header .smsQueue-image img{height:100%;width:auto;max-width:none}#sms-smsQueue .header .subtitle{margin:6px 0 0 0}#sms-smsQueue .smsQueue-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsQueue .smsQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsQueue .smsQueue-detail-form-container .handle{cursor:move}#sms-smsQueue .smsQueue-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader{position:relative}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader.dropping .drop-text{display:flex}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .upload-button{margin-bottom:16px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image .media{max-height:100%}#sms-smsQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsQueues{position:relative}#smsQueues>.header{height:76px;min-height:76px;max-height:76px}#smsQueues>.header .logo .logo-icon{margin:0 16px 0 0}#smsQueues>.header .logo .logo-text{font-size:24px}#smsQueues>.header md-icon{color:#fff}#smsQueues>.header .search-input-wrapper{position:relative}#smsQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsQueues>.header.selected-bar .close-button-wrapper{width:244px}#smsQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsQueues #add-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#smsQueues #upload-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#agents{position:relative}#agents>.header{height:76px;min-height:76px;max-height:76px}#agents>.header .logo .logo-icon{margin:0 16px 0 0}#agents>.header .logo .logo-text{font-size:24px}#agents>.header md-icon{color:#fff}#agents>.header .search-input-wrapper{position:relative}#agents>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#agents>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#agents>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#agents>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#agents>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#agents>.header.selected-bar .close-button-wrapper{width:244px}#agents>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#agents>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#agents>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#agents #add-agent-button{position:fixed;bottom:8px;right:8px;padding:0}#agents #upload-agent-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-agent .header{height:76px;min-height:76px;max-height:76px}#staff-agent .header .goto-agents-button{margin-right:16px}#staff-agent .header .agent-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-agent .header .agent-image img{height:100%;width:auto;max-width:none}#staff-agent .header .subtitle{margin:6px 0 0 0}#staff-agent .agent-detail-form-container{padding:24px;margin-bottom:24px}#staff-agent .agent-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-agent .agent-detail-form-container .handle{cursor:move}#staff-agent .agent-detail-form-container md-input-container md-switch{margin:0!important}#staff-agent .agent-detail-form-container #agent-image-uploader{position:relative}#staff-agent .agent-detail-form-container #agent-image-uploader.dropping .drop-text{display:flex}#staff-agent .agent-detail-form-container #agent-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-agent .agent-detail-form-container #agent-image-uploader .upload-button{margin-bottom:16px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image .media{max-height:100%}#staff-agent md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-agent md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-agent md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-agent md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.team-dialog{max-width:720px;width:720px}md-dialog.team-dialog md-dialog-content{display:block;position:relative}md-dialog.team-dialog md-toolbar .title{font-size:17px}md-dialog.team-dialog md-input-container textarea{min-height:150px}md-dialog.team-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.team-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.team-dialog .date-container{padding:16px 0 24px 0}md-dialog.team-dialog .error-list{font-size:13px}md-dialog.team-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.team-dialog .error-list .error .message{font-weight:500}md-dialog.team-dialog .error-list .error .md-button{margin:0}md-dialog.team-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.team-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#teams{position:relative}#teams>.header{height:76px;min-height:76px;max-height:76px}#teams>.header .logo .logo-icon{margin:0 16px 0 0}#teams>.header .logo .logo-text{font-size:24px}#teams>.header md-icon{color:#fff}#teams>.header .search-input-wrapper{position:relative}#teams>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#teams>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#teams>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#teams>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#teams>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#teams>.header.selected-bar .close-button-wrapper{width:244px}#teams>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#teams>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#teams>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#teams #add-team-button{position:fixed;bottom:8px;right:8px;padding:0}#teams #upload-team-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.telephone-dialog{max-width:720px;width:720px}md-dialog.telephone-dialog md-dialog-content{display:block;position:relative}md-dialog.telephone-dialog md-toolbar .title{font-size:17px}md-dialog.telephone-dialog md-input-container textarea{min-height:150px}md-dialog.telephone-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.telephone-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.telephone-dialog .date-container{padding:16px 0 24px 0}md-dialog.telephone-dialog .error-list{font-size:13px}md-dialog.telephone-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.telephone-dialog .error-list .error .message{font-weight:500}md-dialog.telephone-dialog .error-list .error .md-button{margin:0}md-dialog.telephone-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.telephone-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-telephone .header{height:76px;min-height:76px;max-height:76px}#staff-telephone .header .goto-telephones-button{margin-right:16px}#staff-telephone .header .telephone-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-telephone .header .telephone-image img{height:100%;width:auto;max-width:none}#staff-telephone .header .subtitle{margin:6px 0 0 0}#staff-telephone .telephone-detail-form-container{padding:24px;margin-bottom:24px}#staff-telephone .telephone-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-telephone .telephone-detail-form-container .handle{cursor:move}#staff-telephone .telephone-detail-form-container md-input-container md-switch{margin:0!important}#staff-telephone .telephone-detail-form-container #telephone-image-uploader{position:relative}#staff-telephone .telephone-detail-form-container #telephone-image-uploader.dropping .drop-text{display:flex}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .upload-button{margin-bottom:16px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image .media{max-height:100%}#staff-telephone md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-telephone md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container.font-size-12 td.md-cell{font-size:12px!important}#telephones{position:relative}#telephones>.header{height:76px;min-height:76px;max-height:76px}#telephones>.header .logo .logo-icon{margin:0 16px 0 0}#telephones>.header .logo .logo-text{font-size:24px}#telephones>.header md-icon{color:#fff}#telephones>.header .search-input-wrapper{position:relative}#telephones>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#telephones>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#telephones>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#telephones>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#telephones>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#telephones>.header.selected-bar .close-button-wrapper{width:244px}#telephones>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#telephones>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#telephones>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#telephones #add-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}#telephones #upload-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.userProfile-dialog{max-width:720px;width:720px}md-dialog.userProfile-dialog md-dialog-content{display:block;position:relative}md-dialog.userProfile-dialog md-toolbar .title{font-size:17px}md-dialog.userProfile-dialog md-input-container textarea{min-height:150px}md-dialog.userProfile-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.userProfile-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.userProfile-dialog .date-container{padding:16px 0 24px 0}md-dialog.userProfile-dialog .error-list{font-size:13px}md-dialog.userProfile-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.userProfile-dialog .error-list .error .message{font-weight:500}md-dialog.userProfile-dialog .error-list .error .md-button{margin:0}md-dialog.userProfile-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.userProfile-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-userProfile .header{height:76px;min-height:76px;max-height:76px}#staff-userProfile .header .goto-userProfiles-button{margin-right:16px}#staff-userProfile .header .userProfile-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-userProfile .header .userProfile-image img{height:100%;width:auto;max-width:none}#staff-userProfile .header .subtitle{margin:6px 0 0 0}#staff-userProfile .userProfile-detail-form-container{padding:24px;margin-bottom:24px}#staff-userProfile .userProfile-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-userProfile .userProfile-detail-form-container .handle{cursor:move}#staff-userProfile .userProfile-detail-form-container md-input-container md-switch{margin:0!important}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader{position:relative}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader.dropping .drop-text{display:flex}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .upload-button{margin-bottom:16px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image .media{max-height:100%}#staff-userProfile md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-userProfile md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container.font-size-12 td.md-cell{font-size:12px!important}#userProfiles{position:relative}#userProfiles>.header{height:76px;min-height:76px;max-height:76px}#userProfiles>.header .logo .logo-icon{margin:0 16px 0 0}#userProfiles>.header .logo .logo-text{font-size:24px}#userProfiles>.header md-icon{color:#fff}#userProfiles>.header .search-input-wrapper{position:relative}#userProfiles>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#userProfiles>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#userProfiles>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#userProfiles>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#userProfiles>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#userProfiles>.header.selected-bar .close-button-wrapper{width:244px}#userProfiles>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#userProfiles>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#userProfiles>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#userProfiles #add-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}#userProfiles #upload-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.user-dialog{max-width:720px;width:720px}md-dialog.user-dialog md-dialog-content{display:block;position:relative}md-dialog.user-dialog md-toolbar .title{font-size:17px}md-dialog.user-dialog md-input-container textarea{min-height:150px}md-dialog.user-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.user-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.user-dialog .date-container{padding:16px 0 24px 0}md-dialog.user-dialog .error-list{font-size:13px}md-dialog.user-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.user-dialog .error-list .error .message{font-weight:500}md-dialog.user-dialog .error-list .error .md-button{margin:0}md-dialog.user-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.user-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-user .header{height:76px;min-height:76px;max-height:76px}#staff-user .header .goto-users-button{margin-right:16px}#staff-user .header .user-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-user .header .user-image img{height:100%;width:auto;max-width:none}#staff-user .header .subtitle{margin:6px 0 0 0}#staff-user .user-detail-form-container{padding:24px;margin-bottom:24px}#staff-user .user-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-user .user-detail-form-container .handle{cursor:move}#staff-user .user-detail-form-container md-input-container md-switch{margin:0!important}#staff-user .user-detail-form-container #user-image-uploader{position:relative}#staff-user .user-detail-form-container #user-image-uploader.dropping .drop-text{display:flex}#staff-user .user-detail-form-container #user-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-user .user-detail-form-container #user-image-uploader .upload-button{margin-bottom:16px}#staff-user .user-detail-form-container #user-image-uploader .user-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-user .user-detail-form-container #user-image-uploader .user-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-user .user-detail-form-container #user-image-uploader .user-image .media{max-height:100%}#staff-user md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-user md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-user md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-user md-table-container.font-size-12 td.md-cell{font-size:12px!important}#users{position:relative}#users>.header{height:76px;min-height:76px;max-height:76px}#users>.header .logo .logo-icon{margin:0 16px 0 0}#users>.header .logo .logo-text{font-size:24px}#users>.header md-icon{color:#fff}#users>.header .search-input-wrapper{position:relative}#users>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#users>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#users>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#users>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#users>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#users>.header.selected-bar .close-button-wrapper{width:244px}#users>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#users>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#users>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#users #add-user-button{position:fixed;bottom:8px;right:8px;padding:0}#users #upload-user-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers{position:relative}#cannedAnswers>.header{height:76px;min-height:76px;max-height:76px}#cannedAnswers>.header .logo .logo-icon{margin:0 16px 0 0}#cannedAnswers>.header .logo .logo-text{font-size:24px}#cannedAnswers>.header md-icon{color:#fff}#cannedAnswers>.header .search-input-wrapper{position:relative}#cannedAnswers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cannedAnswers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cannedAnswers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cannedAnswers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cannedAnswers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cannedAnswers>.header.selected-bar .close-button-wrapper{width:244px}#cannedAnswers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cannedAnswers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cannedAnswers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cannedAnswers #add-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers #upload-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cannedAnswer-dialog{max-width:720px;width:720px}md-dialog.cannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.cannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.cannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.cannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.cannedAnswer-dialog .error-list{font-size:13px}md-dialog.cannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.cannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.cannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customDashboard-dialog{max-width:720px;width:720px}md-dialog.customDashboard-dialog md-dialog-content{display:block;position:relative}md-dialog.customDashboard-dialog md-toolbar .title{font-size:17px}md-dialog.customDashboard-dialog md-input-container textarea{min-height:150px}md-dialog.customDashboard-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customDashboard-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customDashboard-dialog .date-container{padding:16px 0 24px 0}md-dialog.customDashboard-dialog .error-list{font-size:13px}md-dialog.customDashboard-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customDashboard-dialog .error-list .error .message{font-weight:500}md-dialog.customDashboard-dialog .error-list .error .md-button{margin:0}md-dialog.customDashboard-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customDashboard-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customDashboards{position:relative}#customDashboards>.header{height:76px;min-height:76px;max-height:76px}#customDashboards>.header .logo .logo-icon{margin:0 16px 0 0}#customDashboards>.header .logo .logo-text{font-size:24px}#customDashboards>.header md-icon{color:#fff}#customDashboards>.header .search-input-wrapper{position:relative}#customDashboards>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customDashboards>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customDashboards>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customDashboards>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customDashboards>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customDashboards>.header.selected-bar .close-button-wrapper{width:244px}#customDashboards>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customDashboards>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customDashboards>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customDashboards #add-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}#customDashboards #upload-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-customDashboard .header{height:76px;min-height:76px;max-height:76px}#tools-customDashboard .header .goto-customDashboards-button{margin-right:16px}#tools-customDashboard .header .customDashboard-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-customDashboard .header .customDashboard-image img{height:100%;width:auto;max-width:none}#tools-customDashboard .header .subtitle{margin:6px 0 0 0}#tools-customDashboard .customDashboard-detail-form-container{padding:24px;margin-bottom:24px}#tools-customDashboard .customDashboard-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-customDashboard .customDashboard-detail-form-container .handle{cursor:move}#tools-customDashboard .customDashboard-detail-form-container md-input-container md-switch{margin:0!important}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader{position:relative}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader.dropping .drop-text{display:flex}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .upload-button{margin-bottom:16px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image .media{max-height:100%}#tools-customDashboard md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-customDashboard md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dispositions{position:relative}#dispositions>.header{height:76px;min-height:76px;max-height:76px}#dispositions>.header .logo .logo-icon{margin:0 16px 0 0}#dispositions>.header .logo .logo-text{font-size:24px}#dispositions>.header md-icon{color:#fff}#dispositions>.header .search-input-wrapper{position:relative}#dispositions>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dispositions>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dispositions>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dispositions>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dispositions>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dispositions>.header.selected-bar .close-button-wrapper{width:244px}#dispositions>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dispositions>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dispositions>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dispositions #add-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}#dispositions #upload-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-interval .header{height:76px;min-height:76px;max-height:76px}#tools-interval .header .goto-intervals-button{margin-right:16px}#tools-interval .header .interval-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-interval .header .interval-image img{height:100%;width:auto;max-width:none}#tools-interval .header .subtitle{margin:6px 0 0 0}#tools-interval .interval-detail-form-container{padding:24px;margin-bottom:24px}#tools-interval .interval-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-interval .interval-detail-form-container .handle{cursor:move}#tools-interval .interval-detail-form-container md-input-container md-switch{margin:0!important}#tools-interval .interval-detail-form-container #interval-image-uploader{position:relative}#tools-interval .interval-detail-form-container #interval-image-uploader.dropping .drop-text{display:flex}#tools-interval .interval-detail-form-container #interval-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-interval .interval-detail-form-container #interval-image-uploader .upload-button{margin-bottom:16px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image .media{max-height:100%}#tools-interval md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-interval md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-interval md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-interval md-table-container.font-size-12 td.md-cell{font-size:12px!important}#intervals{position:relative}#intervals>.header{height:76px;min-height:76px;max-height:76px}#intervals>.header .logo .logo-icon{margin:0 16px 0 0}#intervals>.header .logo .logo-text{font-size:24px}#intervals>.header md-icon{color:#fff}#intervals>.header .search-input-wrapper{position:relative}#intervals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#intervals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#intervals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#intervals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#intervals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#intervals>.header.selected-bar .close-button-wrapper{width:244px}#intervals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#intervals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#intervals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#intervals #add-interval-button{position:fixed;bottom:8px;right:8px;padding:0}#intervals #upload-interval-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.pause-dialog{max-width:720px;width:720px}md-dialog.pause-dialog md-dialog-content{display:block;position:relative}md-dialog.pause-dialog md-toolbar .title{font-size:17px}md-dialog.pause-dialog md-input-container textarea{min-height:150px}md-dialog.pause-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.pause-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.pause-dialog .date-container{padding:16px 0 24px 0}md-dialog.pause-dialog .error-list{font-size:13px}md-dialog.pause-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.pause-dialog .error-list .error .message{font-weight:500}md-dialog.pause-dialog .error-list .error .md-button{margin:0}md-dialog.pause-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.pause-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#pauses{position:relative}#pauses>.header{height:76px;min-height:76px;max-height:76px}#pauses>.header .logo .logo-icon{margin:0 16px 0 0}#pauses>.header .logo .logo-text{font-size:24px}#pauses>.header md-icon{color:#fff}#pauses>.header .search-input-wrapper{position:relative}#pauses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#pauses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#pauses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#pauses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#pauses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#pauses>.header.selected-bar .close-button-wrapper{width:244px}#pauses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#pauses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#pauses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#pauses #add-pause-button{position:fixed;bottom:8px;right:8px;padding:0}#pauses #upload-pause-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.schedule-dialog{max-width:720px;width:720px}md-dialog.schedule-dialog md-dialog-content{display:block;position:relative}md-dialog.schedule-dialog md-toolbar .title{font-size:17px}md-dialog.schedule-dialog md-input-container textarea{min-height:150px}md-dialog.schedule-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.schedule-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.schedule-dialog .date-container{padding:16px 0 24px 0}md-dialog.schedule-dialog .error-list{font-size:13px}md-dialog.schedule-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.schedule-dialog .error-list .error .message{font-weight:500}md-dialog.schedule-dialog .error-list .error .md-button{margin:0}md-dialog.schedule-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.schedule-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#schedules{position:relative}#schedules>.header{height:76px;min-height:76px;max-height:76px}#schedules>.header .logo .logo-icon{margin:0 16px 0 0}#schedules>.header .logo .logo-text{font-size:24px}#schedules>.header md-icon{color:#fff}#schedules>.header .search-input-wrapper{position:relative}#schedules>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#schedules>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#schedules>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#schedules>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#schedules>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#schedules>.header.selected-bar .close-button-wrapper{width:244px}#schedules>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#schedules>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#schedules>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#schedules #add-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}#schedules #upload-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sound-dialog{max-width:720px;width:720px}md-dialog.sound-dialog md-dialog-content{display:block;position:relative}md-dialog.sound-dialog md-toolbar .title{font-size:17px}md-dialog.sound-dialog md-input-container textarea{min-height:150px}md-dialog.sound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sound-dialog .date-container{padding:16px 0 24px 0}md-dialog.sound-dialog .error-list{font-size:13px}md-dialog.sound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sound-dialog .error-list .error .message{font-weight:500}md-dialog.sound-dialog .error-list .error .md-button{margin:0}md-dialog.sound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sounds{position:relative}#sounds>.header{height:76px;min-height:76px;max-height:76px}#sounds>.header .logo .logo-icon{margin:0 16px 0 0}#sounds>.header .logo .logo-text{font-size:24px}#sounds>.header md-icon{color:#fff}#sounds>.header .search-input-wrapper{position:relative}#sounds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sounds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sounds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sounds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sounds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sounds>.header.selected-bar .close-button-wrapper{width:244px}#sounds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sounds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sounds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sounds #add-sound-button{position:fixed;bottom:8px;right:8px;padding:0}#sounds #upload-sound-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .sound-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .sound-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.tag-dialog{max-width:720px;width:720px}md-dialog.tag-dialog md-dialog-content{display:block;position:relative}md-dialog.tag-dialog md-toolbar .title{font-size:17px}md-dialog.tag-dialog md-input-container textarea{min-height:150px}md-dialog.tag-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.tag-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.tag-dialog .date-container{padding:16px 0 24px 0}md-dialog.tag-dialog .error-list{font-size:13px}md-dialog.tag-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.tag-dialog .error-list .error .message{font-weight:500}md-dialog.tag-dialog .error-list .error .md-button{margin:0}md-dialog.tag-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.tag-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tags{position:relative}#tags>.header{height:76px;min-height:76px;max-height:76px}#tags>.header .logo .logo-icon{margin:0 16px 0 0}#tags>.header .logo .logo-text{font-size:24px}#tags>.header md-icon{color:#fff}#tags>.header .search-input-wrapper{position:relative}#tags>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#tags>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#tags>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#tags>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#tags>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#tags>.header.selected-bar .close-button-wrapper{width:244px}#tags>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#tags>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#tags>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#tags #add-tag-button{position:fixed;bottom:8px;right:8px;padding:0}#tags #upload-tag-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.template-dialog{max-width:720px;width:720px}md-dialog.template-dialog md-dialog-content{display:block;position:relative}md-dialog.template-dialog md-toolbar .title{font-size:17px}md-dialog.template-dialog md-input-container textarea{min-height:150px}md-dialog.template-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.template-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.template-dialog .date-container{padding:16px 0 24px 0}md-dialog.template-dialog .error-list{font-size:13px}md-dialog.template-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.template-dialog .error-list .error .message{font-weight:500}md-dialog.template-dialog .error-list .error .md-button{margin:0}md-dialog.template-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.template-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#templates{position:relative}#templates>.header{height:76px;min-height:76px;max-height:76px}#templates>.header .logo .logo-icon{margin:0 16px 0 0}#templates>.header .logo .logo-text{font-size:24px}#templates>.header md-icon{color:#fff}#templates>.header .search-input-wrapper{position:relative}#templates>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#templates>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#templates>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#templates>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#templates>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#templates>.header.selected-bar .close-button-wrapper{width:244px}#templates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#templates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#templates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#templates #add-template-button{position:fixed;bottom:8px;right:8px;padding:0}#templates #upload-template-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trigger-dialog{max-width:720px;width:720px}md-dialog.trigger-dialog md-dialog-content{display:block;position:relative}md-dialog.trigger-dialog md-toolbar .title{font-size:17px}md-dialog.trigger-dialog md-input-container textarea{min-height:150px}md-dialog.trigger-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trigger-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trigger-dialog .date-container{padding:16px 0 24px 0}md-dialog.trigger-dialog .error-list{font-size:13px}md-dialog.trigger-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trigger-dialog .error-list .error .message{font-weight:500}md-dialog.trigger-dialog .error-list .error .md-button{margin:0}md-dialog.trigger-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.action-dialog{max-width:720px;width:720px}md-dialog.action-dialog md-dialog-content{display:block;position:relative}md-dialog.action-dialog md-toolbar .title{font-size:17px}md-dialog.action-dialog md-input-container textarea{min-height:150px}md-dialog.action-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.action-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.action-dialog .date-container{padding:16px 0 24px 0}md-dialog.action-dialog .error-list{font-size:13px}md-dialog.action-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.action-dialog .error-list .error .message{font-weight:500}md-dialog.action-dialog .error-list .error .md-button{margin:0}md-dialog.action-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.action-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.allCondition-dialog{max-width:720px;width:720px}md-dialog.allCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.allCondition-dialog md-toolbar .title{font-size:17px}md-dialog.allCondition-dialog md-input-container textarea{min-height:150px}md-dialog.allCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.allCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.allCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.allCondition-dialog .error-list{font-size:13px}md-dialog.allCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.allCondition-dialog .error-list .error .message{font-weight:500}md-dialog.allCondition-dialog .error-list .error .md-button{margin:0}md-dialog.allCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.allCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.anyCondition-dialog{max-width:720px;width:720px}md-dialog.anyCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.anyCondition-dialog md-toolbar .title{font-size:17px}md-dialog.anyCondition-dialog md-input-container textarea{min-height:150px}md-dialog.anyCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.anyCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.anyCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.anyCondition-dialog .error-list{font-size:13px}md-dialog.anyCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.anyCondition-dialog .error-list .error .message{font-weight:500}md-dialog.anyCondition-dialog .error-list .error .md-button{margin:0}md-dialog.anyCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.anyCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trigger .header{height:76px;min-height:76px;max-height:76px}#tools-trigger .header .goto-triggers-button{margin-right:16px}#tools-trigger .header .trigger-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trigger .header .trigger-image img{height:100%;width:auto;max-width:none}#tools-trigger .header .subtitle{margin:6px 0 0 0}#tools-trigger .trigger-detail-form-container{padding:24px;margin-bottom:24px}#tools-trigger .trigger-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trigger .trigger-detail-form-container .handle{cursor:move}#tools-trigger .trigger-detail-form-container md-input-container md-switch{margin:0!important}#tools-trigger .trigger-detail-form-container #trigger-image-uploader{position:relative}#tools-trigger .trigger-detail-form-container #trigger-image-uploader.dropping .drop-text{display:flex}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .upload-button{margin-bottom:16px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image .media{max-height:100%}#tools-trigger md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trigger md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container.font-size-12 td.md-cell{font-size:12px!important}#triggers{position:relative}#triggers>.header{height:76px;min-height:76px;max-height:76px}#triggers>.header .logo .logo-icon{margin:0 16px 0 0}#triggers>.header .logo .logo-text{font-size:24px}#triggers>.header md-icon{color:#fff}#triggers>.header .search-input-wrapper{position:relative}#triggers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#triggers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#triggers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#triggers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#triggers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#triggers>.header.selected-bar .close-button-wrapper{width:244px}#triggers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#triggers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#triggers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#triggers #add-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}#triggers #upload-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trunk-dialog{max-width:720px;width:720px}md-dialog.trunk-dialog md-dialog-content{display:block;position:relative}md-dialog.trunk-dialog md-toolbar .title{font-size:17px}md-dialog.trunk-dialog md-input-container textarea{min-height:150px}md-dialog.trunk-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trunk-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trunk-dialog .date-container{padding:16px 0 24px 0}md-dialog.trunk-dialog .error-list{font-size:13px}md-dialog.trunk-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trunk-dialog .error-list .error .message{font-weight:500}md-dialog.trunk-dialog .error-list .error .md-button{margin:0}md-dialog.trunk-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trunk-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trunk .header{height:76px;min-height:76px;max-height:76px}#tools-trunk .header .goto-trunks-button{margin-right:16px}#tools-trunk .header .trunk-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trunk .header .trunk-image img{height:100%;width:auto;max-width:none}#tools-trunk .header .subtitle{margin:6px 0 0 0}#tools-trunk .trunk-detail-form-container{padding:24px;margin-bottom:24px}#tools-trunk .trunk-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trunk .trunk-detail-form-container .handle{cursor:move}#tools-trunk .trunk-detail-form-container md-input-container md-switch{margin:0!important}#tools-trunk .trunk-detail-form-container #trunk-image-uploader{position:relative}#tools-trunk .trunk-detail-form-container #trunk-image-uploader.dropping .drop-text{display:flex}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .upload-button{margin-bottom:16px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image .media{max-height:100%}#tools-trunk md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trunk md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container.font-size-12 td.md-cell{font-size:12px!important}#trunks{position:relative}#trunks>.header{height:76px;min-height:76px;max-height:76px}#trunks>.header .logo .logo-icon{margin:0 16px 0 0}#trunks>.header .logo .logo-text{font-size:24px}#trunks>.header md-icon{color:#fff}#trunks>.header .search-input-wrapper{position:relative}#trunks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#trunks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#trunks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#trunks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#trunks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#trunks>.header.selected-bar .close-button-wrapper{width:244px}#trunks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#trunks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#trunks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#trunks #add-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}#trunks #upload-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.variable-dialog{max-width:720px;width:720px}md-dialog.variable-dialog md-dialog-content{display:block;position:relative}md-dialog.variable-dialog md-toolbar .title{font-size:17px}md-dialog.variable-dialog md-input-container textarea{min-height:150px}md-dialog.variable-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.variable-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.variable-dialog .date-container{padding:16px 0 24px 0}md-dialog.variable-dialog .error-list{font-size:13px}md-dialog.variable-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.variable-dialog .error-list .error .message{font-weight:500}md-dialog.variable-dialog .error-list .error .md-button{margin:0}md-dialog.variable-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.variable-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#variables{position:relative}#variables>.header{height:76px;min-height:76px;max-height:76px}#variables>.header .logo .logo-icon{margin:0 16px 0 0}#variables>.header .logo .logo-text{font-size:24px}#variables>.header md-icon{color:#fff}#variables>.header .search-input-wrapper{position:relative}#variables>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#variables>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#variables>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#variables>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#variables>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#variables>.header.selected-bar .close-button-wrapper{width:244px}#variables>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#variables>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#variables>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#variables #add-variable-button{position:fixed;bottom:8px;right:8px;padding:0}#variables #upload-variable-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.screenRecording-dialog{max-width:720px;width:720px}md-dialog.screenRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.screenRecording-dialog md-toolbar .title{font-size:17px}md-dialog.screenRecording-dialog md-input-container textarea{min-height:150px}md-dialog.screenRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.screenRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.screenRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.screenRecording-dialog .error-list{font-size:13px}md-dialog.screenRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.screenRecording-dialog .error-list .error .message{font-weight:500}md-dialog.screenRecording-dialog .error-list .error .md-button{margin:0}md-dialog.screenRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.screenRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#screenRecordings{position:relative}#screenRecordings>.header{height:76px;min-height:76px;max-height:76px}#screenRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#screenRecordings>.header .logo .logo-text{font-size:24px}#screenRecordings>.header md-icon{color:#fff}#screenRecordings>.header .search-input-wrapper{position:relative}#screenRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#screenRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#screenRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#screenRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#screenRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#screenRecordings>.header.selected-bar .close-button-wrapper{width:244px}#screenRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#screenRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#screenRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#screenRecordings #add-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#screenRecordings #upload-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voice-routing-dialog{max-width:720px;width:720px}md-dialog.voice-routing-dialog md-dialog-content{display:block;position:relative}md-dialog.voice-routing-dialog md-toolbar .title{font-size:17px}md-dialog.voice-routing-dialog md-input-container textarea{min-height:150px}md-dialog.voice-routing-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voice-routing-dialog .date-container{padding:16px 0 24px 0}md-dialog.voice-routing-dialog .error-list{font-size:13px}md-dialog.voice-routing-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voice-routing-dialog .error-list .error .message{font-weight:500}md-dialog.voice-routing-dialog .error-list .error .md-button{margin:0}md-dialog.voice-routing-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voice-routing-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chanSpies{position:relative}#chanSpies>.header{height:76px;min-height:76px;max-height:76px}#chanSpies>.header .logo .logo-icon{margin:0 16px 0 0}#chanSpies>.header .logo .logo-text{font-size:24px}#chanSpies>.header md-icon{color:#fff}#chanSpies>.header .search-input-wrapper{position:relative}#chanSpies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chanSpies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chanSpies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chanSpies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chanSpies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chanSpies>.header.selected-bar .close-button-wrapper{width:244px}#chanSpies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chanSpies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chanSpies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chanSpies #add-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}#chanSpies #upload-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chanSpy-dialog{max-width:720px;width:720px}md-dialog.chanSpy-dialog md-dialog-content{display:block;position:relative}md-dialog.chanSpy-dialog md-toolbar .title{font-size:17px}md-dialog.chanSpy-dialog md-input-container textarea{min-height:150px}md-dialog.chanSpy-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chanSpy-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chanSpy-dialog .date-container{padding:16px 0 24px 0}md-dialog.chanSpy-dialog .error-list{font-size:13px}md-dialog.chanSpy-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chanSpy-dialog .error-list .error .message{font-weight:500}md-dialog.chanSpy-dialog .error-list .error .md-button{margin:0}md-dialog.chanSpy-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chanSpy-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contexts{position:relative}#contexts>.header{height:76px;min-height:76px;max-height:76px}#contexts>.header .logo .logo-icon{margin:0 16px 0 0}#contexts>.header .logo .logo-text{font-size:24px}#contexts>.header md-icon{color:#fff}#contexts>.header .search-input-wrapper{position:relative}#contexts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contexts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contexts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contexts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contexts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contexts>.header.selected-bar .close-button-wrapper{width:244px}#contexts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contexts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contexts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contexts #add-context-button{position:fixed;bottom:8px;right:8px;padding:0}#contexts #upload-context-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.context-dialog{max-width:720px;width:720px}md-dialog.context-dialog md-dialog-content{display:block;position:relative}md-dialog.context-dialog md-toolbar .title{font-size:17px}md-dialog.context-dialog md-input-container textarea{min-height:150px}md-dialog.context-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.context-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.context-dialog .date-container{padding:16px 0 24px 0}md-dialog.context-dialog .error-list{font-size:13px}md-dialog.context-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.context-dialog .error-list .error .message{font-weight:500}md-dialog.context-dialog .error-list .error .md-button{margin:0}md-dialog.context-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.context-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inbound-route-dialog{max-width:720px;width:720px}md-dialog.inbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.inbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.inbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.inbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.inbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.inbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.inbound-route-dialog .error-list{font-size:13px}md-dialog.inbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.inbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.inbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-inbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-inbound-route .header .goto-inbound-routes-button{margin-right:16px}#voice-inbound-route .header .inbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-inbound-route .header .inbound-route-image img{height:100%;width:auto;max-width:none}#voice-inbound-route .header .subtitle{margin:6px 0 0 0}#voice-inbound-route .inbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-inbound-route .inbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-inbound-route .inbound-route-detail-form-container .handle{cursor:move}#voice-inbound-route .inbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-inbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-inbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-inbound-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-inbound-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-inbound-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-inbound-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-inbound-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-inbound-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-inbound-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-inbound-route .actionAppData{width:80px!important}}#inbound-routes{position:relative}#inbound-routes>.header{height:76px;min-height:76px;max-height:76px}#inbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#inbound-routes>.header .logo .logo-text{font-size:24px}#inbound-routes>.header md-icon{color:#fff}#inbound-routes>.header .search-input-wrapper{position:relative}#inbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#inbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#inbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#inbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#inbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#inbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#inbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#inbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#inbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#inbound-routes #add-inbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.internal-route-dialog{max-width:720px;width:720px}md-dialog.internal-route-dialog md-dialog-content{display:block;position:relative}md-dialog.internal-route-dialog md-toolbar .title{font-size:17px}md-dialog.internal-route-dialog md-input-container textarea{min-height:150px}md-dialog.internal-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.internal-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.internal-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.internal-route-dialog .error-list{font-size:13px}md-dialog.internal-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internal-route-dialog .error-list .error .message{font-weight:500}md-dialog.internal-route-dialog .error-list .error .md-button{margin:0}md-dialog.internal-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internal-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-internal-route .header{height:76px;min-height:76px;max-height:76px}#voice-internal-route .header .goto-internal-routes-button{margin-right:16px}#voice-internal-route .header .internal-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-internal-route .header .internal-route-image img{height:100%;width:auto;max-width:none}#voice-internal-route .header .subtitle{margin:6px 0 0 0}#voice-internal-route .internal-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-internal-route .internal-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-internal-route .internal-route-detail-form-container .handle{cursor:move}#voice-internal-route .internal-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-internal-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-internal-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-internal-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-internal-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-internal-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-internal-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-internal-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-internal-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-internal-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-internal-route .actionAppData{width:80px!important}}#internal-routes{position:relative}#internal-routes>.header{height:76px;min-height:76px;max-height:76px}#internal-routes>.header .logo .logo-icon{margin:0 16px 0 0}#internal-routes>.header .logo .logo-text{font-size:24px}#internal-routes>.header md-icon{color:#fff}#internal-routes>.header .search-input-wrapper{position:relative}#internal-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#internal-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#internal-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#internal-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#internal-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#internal-routes>.header.selected-bar .close-button-wrapper{width:244px}#internal-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#internal-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#internal-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#internal-routes #add-internal-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.musiconhold-dialog{max-width:720px;width:720px}md-dialog.musiconhold-dialog md-dialog-content{display:block;position:relative}md-dialog.musiconhold-dialog md-toolbar .title{font-size:17px}md-dialog.musiconhold-dialog md-input-container textarea{min-height:150px}md-dialog.musiconhold-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.musiconhold-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.musiconhold-dialog .date-container{padding:16px 0 24px 0}md-dialog.musiconhold-dialog .error-list{font-size:13px}md-dialog.musiconhold-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.musiconhold-dialog .error-list .error .message{font-weight:500}md-dialog.musiconhold-dialog .error-list .error .md-button{margin:0}md-dialog.musiconhold-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.musiconhold-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mohSound-dialog{max-width:720px;width:720px}md-dialog.mohSound-dialog md-dialog-content{display:block;position:relative}md-dialog.mohSound-dialog md-toolbar .title{font-size:17px}md-dialog.mohSound-dialog md-input-container textarea{min-height:150px}md-dialog.mohSound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mohSound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mohSound-dialog .date-container{padding:16px 0 24px 0}md-dialog.mohSound-dialog .error-list{font-size:13px}md-dialog.mohSound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mohSound-dialog .error-list .error .message{font-weight:500}md-dialog.mohSound-dialog .error-list .error .md-button{margin:0}md-dialog.mohSound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mohSound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-musiconhold .header{height:76px;min-height:76px;max-height:76px}#voice-musiconhold .header .goto-musiconholds-button{margin-right:16px}#voice-musiconhold .header .musiconhold-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-musiconhold .header .musiconhold-image img{height:100%;width:auto;max-width:none}#voice-musiconhold .header .subtitle{margin:6px 0 0 0}#voice-musiconhold .musiconhold-detail-form-container{padding:24px;margin-bottom:24px}#voice-musiconhold .musiconhold-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-musiconhold .musiconhold-detail-form-container .handle{cursor:move}#voice-musiconhold .musiconhold-detail-form-container md-input-container md-switch{margin:0!important}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader{position:relative}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader.dropping .drop-text{display:flex}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .upload-button{margin-bottom:16px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image .media{max-height:100%}#voice-musiconhold md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-musiconhold md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container.font-size-12 td.md-cell{font-size:12px!important}#musiconholds{position:relative}#musiconholds>.header{height:76px;min-height:76px;max-height:76px}#musiconholds>.header .logo .logo-icon{margin:0 16px 0 0}#musiconholds>.header .logo .logo-text{font-size:24px}#musiconholds>.header md-icon{color:#fff}#musiconholds>.header .search-input-wrapper{position:relative}#musiconholds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#musiconholds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#musiconholds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#musiconholds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#musiconholds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#musiconholds>.header.selected-bar .close-button-wrapper{width:244px}#musiconholds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#musiconholds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#musiconholds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#musiconholds #add-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}#musiconholds #upload-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.outbound-route-dialog{max-width:720px;width:720px}md-dialog.outbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.outbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.outbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.outbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.outbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.outbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.outbound-route-dialog .error-list{font-size:13px}md-dialog.outbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.outbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.outbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-outbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-outbound-route .header .goto-outbound-routes-button{margin-right:16px}#voice-outbound-route .header .outbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-outbound-route .header .outbound-route-image img{height:100%;width:auto;max-width:none}#voice-outbound-route .header .subtitle{margin:6px 0 0 0}#voice-outbound-route .outbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-outbound-route .outbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-outbound-route .outbound-route-detail-form-container .handle{cursor:move}#voice-outbound-route .outbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-outbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-outbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-outbound-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-outbound-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-outbound-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-outbound-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-outbound-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-outbound-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-outbound-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-outbound-route .actionAppData{width:80px!important}}#outbound-routes{position:relative}#outbound-routes>.header{height:76px;min-height:76px;max-height:76px}#outbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#outbound-routes>.header .logo .logo-text{font-size:24px}#outbound-routes>.header md-icon{color:#fff}#outbound-routes>.header .search-input-wrapper{position:relative}#outbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#outbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#outbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#outbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#outbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#outbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#outbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#outbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#outbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#outbound-routes #add-outbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.voicemail-dialog{max-width:720px;width:720px}md-dialog.voicemail-dialog md-dialog-content{display:block;position:relative}md-dialog.voicemail-dialog md-toolbar .title{font-size:17px}md-dialog.voicemail-dialog md-input-container textarea{min-height:150px}md-dialog.voicemail-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicemail-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicemail-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicemail-dialog .error-list{font-size:13px}md-dialog.voicemail-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicemail-dialog .error-list .error .message{font-weight:500}md-dialog.voicemail-dialog .error-list .error .md-button{margin:0}md-dialog.voicemail-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicemail-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voicemail .header{height:76px;min-height:76px;max-height:76px}#voice-voicemail .header .goto-voicemails-button{margin-right:16px}#voice-voicemail .header .voicemail-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voicemail .header .voicemail-image img{height:100%;width:auto;max-width:none}#voice-voicemail .header .subtitle{margin:6px 0 0 0}#voice-voicemail .voicemail-detail-form-container{padding:24px;margin-bottom:24px}#voice-voicemail .voicemail-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voicemail .voicemail-detail-form-container .handle{cursor:move}#voice-voicemail .voicemail-detail-form-container md-input-container md-switch{margin:0!important}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader{position:relative}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader.dropping .drop-text{display:flex}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .upload-button{margin-bottom:16px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image .media{max-height:100%}#voice-voicemail md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voicemail md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voicemails{position:relative}#voicemails>.header{height:76px;min-height:76px;max-height:76px}#voicemails>.header .logo .logo-icon{margin:0 16px 0 0}#voicemails>.header .logo .logo-text{font-size:24px}#voicemails>.header md-icon{color:#fff}#voicemails>.header .search-input-wrapper{position:relative}#voicemails>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicemails>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicemails>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicemails>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicemails>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicemails>.header.selected-bar .close-button-wrapper{width:244px}#voicemails>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicemails>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicemails>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicemails #add-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}#voicemails #upload-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voicePrefix-dialog{max-width:720px;width:720px}md-dialog.voicePrefix-dialog md-dialog-content{display:block;position:relative}md-dialog.voicePrefix-dialog md-toolbar .title{font-size:17px}md-dialog.voicePrefix-dialog md-input-container textarea{min-height:150px}md-dialog.voicePrefix-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicePrefix-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicePrefix-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicePrefix-dialog .error-list{font-size:13px}md-dialog.voicePrefix-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicePrefix-dialog .error-list .error .message{font-weight:500}md-dialog.voicePrefix-dialog .error-list .error .md-button{margin:0}md-dialog.voicePrefix-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicePrefix-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voicePrefixes{position:relative}#voicePrefixes>.header{height:76px;min-height:76px;max-height:76px}#voicePrefixes>.header .logo .logo-icon{margin:0 16px 0 0}#voicePrefixes>.header .logo .logo-text{font-size:24px}#voicePrefixes>.header md-icon{color:#fff}#voicePrefixes>.header .search-input-wrapper{position:relative}#voicePrefixes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicePrefixes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicePrefixes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicePrefixes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicePrefixes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicePrefixes>.header.selected-bar .close-button-wrapper{width:244px}#voicePrefixes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicePrefixes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicePrefixes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicePrefixes #add-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}#voicePrefixes #upload-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceQueue-dialog{max-width:720px;width:720px}md-dialog.voiceQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceQueue-dialog md-toolbar .title{font-size:17px}md-dialog.voiceQueue-dialog md-input-container textarea{min-height:150px}md-dialog.voiceQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceQueue-dialog .error-list{font-size:13px}md-dialog.voiceQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceQueue-dialog .error-list .error .message{font-weight:500}md-dialog.voiceQueue-dialog .error-list .error .md-button{margin:0}md-dialog.voiceQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceQueue .header{height:76px;min-height:76px;max-height:76px}#voice-voiceQueue .header .goto-voiceQueues-button{margin-right:16px}#voice-voiceQueue .header .voiceQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceQueue .header .voiceQueue-image img{height:100%;width:auto;max-width:none}#voice-voiceQueue .header .subtitle{margin:6px 0 0 0}#voice-voiceQueue .voiceQueue-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceQueue .voiceQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceQueue .voiceQueue-detail-form-container .handle{cursor:move}#voice-voiceQueue .voiceQueue-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader{position:relative}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader.dropping .drop-text{display:flex}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .upload-button{margin-bottom:16px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image .media{max-height:100%}#voice-voiceQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voiceQueues{position:relative}#voiceQueues>.header{height:76px;min-height:76px;max-height:76px}#voiceQueues>.header .logo .logo-icon{margin:0 16px 0 0}#voiceQueues>.header .logo .logo-text{font-size:24px}#voiceQueues>.header md-icon{color:#fff}#voiceQueues>.header .search-input-wrapper{position:relative}#voiceQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceQueues>.header.selected-bar .close-button-wrapper{width:244px}#voiceQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceQueues #add-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceQueues #upload-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceRecording-dialog{max-width:720px;width:720px}md-dialog.voiceRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceRecording-dialog md-toolbar .title{font-size:17px}md-dialog.voiceRecording-dialog md-input-container textarea{min-height:150px}md-dialog.voiceRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceRecording-dialog .error-list{font-size:13px}md-dialog.voiceRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceRecording-dialog .error-list .error .message{font-weight:500}md-dialog.voiceRecording-dialog .error-list .error .md-button{margin:0}md-dialog.voiceRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceRecording .header{height:76px;min-height:76px;max-height:76px}#voice-voiceRecording .header .goto-voiceRecordings-button{margin-right:16px}#voice-voiceRecording .header .voiceRecording-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceRecording .header .voiceRecording-image img{height:100%;width:auto;max-width:none}#voice-voiceRecording .header .subtitle{margin:6px 0 0 0}#voice-voiceRecording .voiceRecording-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceRecording .voiceRecording-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceRecording .voiceRecording-detail-form-container .handle{cursor:move}#voice-voiceRecording .voiceRecording-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader{position:relative}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader.dropping .drop-text{display:flex}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .upload-button{margin-bottom:16px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image .media{max-height:100%}#voice-voiceRecording md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceRecording md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voice-voiceRecording .sentiment.POSITIVE{color:#4caf50;font-size:25px}#voice-voiceRecording .sentiment.NEGATIVE{color:#f40505;font-size:30px}#voice-voiceRecording .sentiment.NEUTRAL{color:#03a9f4;font-size:30px}#voice-voiceRecording .sentiment.MIXED{color:#9c27b0;font-size:30px}#voiceRecordings{position:relative}#voiceRecordings>.header{height:76px;min-height:76px;max-height:76px}#voiceRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#voiceRecordings>.header .logo .logo-text{font-size:24px}#voiceRecordings>.header md-icon{color:#fff}#voiceRecordings>.header .search-input-wrapper{position:relative}#voiceRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceRecordings>.header.selected-bar .close-button-wrapper{width:244px}#voiceRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceRecordings #add-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceRecordings #upload-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappAccount .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappAccount .header .goto-whatsappAccounts-button{margin-right:16px}#whatsapp-whatsappAccount .header .whatsappAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappAccount .header .whatsappAccount-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappAccount .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .handle{cursor:move}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader{position:relative}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image .media{max-height:100%}#whatsapp-whatsappAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#whatsapp-whatsappAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#whatsapp-whatsappAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#whatsapp-whatsappAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#whatsapp-whatsappAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#whatsapp-whatsappAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#whatsapp-whatsappAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#whatsapp-whatsappAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#whatsapp-whatsappAccount .actionAppData{width:80px!important}}md-dialog.whatsappCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.whatsappCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappCannedAnswer-dialog .error-list{font-size:13px}md-dialog.whatsappCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsappAccounts{position:relative}#whatsappAccounts>.header{height:76px;min-height:76px;max-height:76px}#whatsappAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappAccounts>.header .logo .logo-text{font-size:24px}#whatsappAccounts>.header md-icon{color:#fff}#whatsappAccounts>.header .search-input-wrapper{position:relative}#whatsappAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappAccounts>.header.selected-bar .close-button-wrapper{width:244px}#whatsappAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappAccounts #add-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappAccounts #upload-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.whatsappQueue-dialog{max-width:720px;width:720px}md-dialog.whatsappQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappQueue-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappQueue-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappQueue-dialog .error-list{font-size:13px}md-dialog.whatsappQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappQueue-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappQueue-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappQueue .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappQueue .header .goto-whatsappQueues-button{margin-right:16px}#whatsapp-whatsappQueue .header .whatsappQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappQueue .header .whatsappQueue-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappQueue .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .handle{cursor:move}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader{position:relative}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image .media{max-height:100%}#whatsapp-whatsappQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#whatsappQueues{position:relative}#whatsappQueues>.header{height:76px;min-height:76px;max-height:76px}#whatsappQueues>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappQueues>.header .logo .logo-text{font-size:24px}#whatsappQueues>.header md-icon{color:#fff}#whatsappQueues>.header .search-input-wrapper{position:relative}#whatsappQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappQueues>.header.selected-bar .close-button-wrapper{width:244px}#whatsappQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappQueues #add-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappQueues #upload-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header .logo-text{display:none}}#vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#vertical-navigation .navigation-header .logo .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px}#vertical-navigation .navigation-header .logo .logo-text{color:#fff;margin-left:16px;font-size:16px}#vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s;transform:rotate(0);margin:0;padding:8px;width:34px!important;height:34px!important;cursor:pointer}#vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #vertical-navigation{position:absolute}.ms-navigation-folded #vertical-navigation .navigation-header .fold-toggle{transform:rotate(180deg);opacity:0}.ms-navigation-folded.ms-navigation-folded-open #vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s,opacity .3s ease-in-out .2s;opacity:1}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header .logo-text{display:none}}#quick-panel{width:330px;min-width:330px;max-width:330px;z-index:99}#quick-panel md-content{height:100%}#quick-panel md-content md-tabs{position:static;height:100%}#quick-panel md-content md-tabs md-tabs-wrapper{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.06)}#quick-panel md-content md-tabs md-tabs-wrapper .md-tab{max-width:none!important}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content{height:100%;overflow:hidden}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content>div{overflow:hidden;height:100%}.unread-message-count-chat{position:absolute;top:5px;left:10px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}@media screen and (max-width:600px){#quick-panel{width:80%;min-width:80%;max-width:80%}}#quick-panel .activity-tab .friends .friend{position:relative}#quick-panel .activity-tab .friends .friend .status{position:absolute;top:8px;left:44px;width:18px;height:18px;z-index:10;border-radius:50%;border:3px solid #fff}#quick-panel .activity-tab .friends .friend .status.online{background-color:#00c853}#quick-panel .activity-tab .friends .friend .status.offline{background-color:#d50000}#quick-panel .activity-tab .friends .friend .status.away{background-color:#ff6d00}#quick-panel .activity-tab .friends .friend .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .activity-tab .servers .server .status{margin:24px 20px 28px 8px}#quick-panel .activity-tab .servers .server .status.normal{color:#00c853}#quick-panel .activity-tab .servers .server .status.warn{color:#d50000}#quick-panel .activity-tab .servers .server .status.error{color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.normal .md-bar{background-color:#00c853}#quick-panel .activity-tab .stat md-progress-linear.normal .md-container{background-color:rgba(0,200,83,.3)}#quick-panel .activity-tab .stat md-progress-linear.warn .md-bar{background-color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.warn .md-container{background-color:rgba(255,109,0,.3)}#quick-panel .activity-tab .stat md-progress-linear.alert .md-bar{background-color:#d50000}#quick-panel .activity-tab .stat md-progress-linear.alert .md-container{background-color:rgba(213,0,0,.3)}#quick-panel .chat-tab .chat,#quick-panel .chat-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .chat-tab .main .contact{position:relative}#quick-panel .chat-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .chat-tab .main .contact .status.online{background-color:#00c853}#quick-panel .chat-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .chat-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .chat-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .chat-tab .main .recent .contact .status{top:18px}#quick-panel .chat-tab .chat{max-height:100%;overflow:hidden}#quick-panel .chat-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .chat-tab .chat .message-row .bubble:after,#quick-panel .chat-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .chat-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .chat-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .chat-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .chat-tab .chat .message-row.user{align-items:flex-end}#quick-panel .chat-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .chat-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .chat-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .chat-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .chat-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .chat-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#quick-panel .group-tab .chat,#quick-panel .group-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .group-tab .main .contact{position:relative}#quick-panel .group-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .group-tab .main .contact .status.online{background-color:#00c853}#quick-panel .group-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .group-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .group-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .group-tab .main .recent .contact .status{top:18px}#quick-panel .group-tab .chat{max-height:100%;overflow:hidden}#quick-panel .group-tab .chat .message-row{padding:8px}#quick-panel .group-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .group-tab .chat .message-row .bubble:after,#quick-panel .group-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .group-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .group-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .group-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .group-tab .chat .message-row.user{align-items:flex-end}#quick-panel .group-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .group-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .group-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .group-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .group-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .group-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reset-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#reset-password #reset-password-form-wrapper{flex:1 0 auto;padding:32px}#reset-password #reset-password-form-wrapper #reset-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#reset-password #reset-password-form-wrapper #reset-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#reset-password #reset-password-form-wrapper #reset-password-form .title{font-size:17px;margin:16px 0 32px 0}#reset-password #reset-password-form-wrapper #reset-password-form .logo_login{max-height:200px}#reset-password #reset-password-form-wrapper #reset-password-form form{width:100%;text-align:left}#reset-password #reset-password-form-wrapper #reset-password-form form .submit-button{width:220px;margin:16px auto;display:block}#reset-password #reset-password-form-wrapper #reset-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#reset-password #reset-password-form-wrapper #reset-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#reset-password #reset-password-form-wrapper{padding:16px}#reset-password #reset-password-form-wrapper #reset-password-form{padding:24px;width:100%}#reset-password #reset-password-form-wrapper #reset-password-form form .md-button{width:90%}}md-dialog.preview-dialog{max-width:1020px;width:1020px}md-dialog.preview-dialog md-dialog-content{display:block;position:relative;padding:0}md-dialog.preview-dialog md-toolbar .title{font-size:17px}md-dialog.preview-dialog md-input-container textarea{min-height:150px}md-dialog.preview-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.preview-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.preview-dialog .date-container{padding:16px 0 24px 0}md-dialog.preview-dialog .error-list{font-size:13px}md-dialog.preview-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.preview-dialog .error-list .error .message{font-weight:500}md-dialog.preview-dialog .error-list .error .md-button{margin:0}md-dialog.preview-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.preview-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#toolbar{height:64px;min-height:64px;max-height:64px;z-index:55!important}#toolbar .blink{animation:blinker 2s linear infinite}#toolbar #navigation-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#toolbar .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px;margin-left:10px;margin-right:8px}#toolbar #user-menu{height:64px;padding:0}#toolbar #user-menu md-menu-item .md-button{font-size:15px}#toolbar #user-menu md-menu-item .md-button md-icon{margin:auto 16px auto 0}#toolbar #user-menu .user-button{margin:0;padding:0 16px;height:64px;text-transform:none}#toolbar #user-menu .user-button .avatar-wrapper{position:relative}#toolbar #user-menu .user-button .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#toolbar #user-menu .user-button .username{margin:0 12px 0 8px}#toolbar #language-menu{height:64px}#toolbar #language-menu .language-button{min-width:64px;height:64px;margin:0;padding:0 16px;border-radius:0}#toolbar #language-menu .language-button .iso{text-transform:uppercase}#toolbar #language-menu .language-button .flag{margin-right:8px}#toolbar #quick-panel-toggle{width:64px;height:64px;margin:0;border-radius:0}#toolbar #quick-panel-toggle .unread-message-count{position:absolute;top:8px;left:38px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}#toolbar .toolbar-separator{height:64px;width:1px;background:rgba(0,0,0,.12)}#language-menu-content md-menu-item .flag{margin-right:16px}#language-message{min-height:88px;max-width:600px}#language-message .md-toast-content{height:90px}.open-contact-count{position:absolute;top:1px;left:25px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}.md-button.preview-button{min-width:46px;min-height:50px}@media screen and (max-width:600px){#toolbar #user-menu .user-button{min-width:64px;padding:0 2px 0 10px}}.geEditor{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt;overflow:hidden;height:100%}.geMenubarContainer .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel{cursor:pointer!important}.geContentEditable div,.geContentEditable table,.geContentEditable table td{border:1px dashed #d3d3d3}.geBackgroundPage{-webkit-box-shadow:0 0 3px 0 #d9d9d9;-moz-box-shadow:0 0 3px 0 #d9d9d9;box-shadow:0 0 3px 0 #d9d9d9}.geMenubarContainer a,.geSidebarContainer a,.geToolbar a{color:#000!important;text-decoration:none}.geDiagramContainer,.geFooterContainer,.geHsplit,.geMenubarContainer,.geOutlineContainer,.geSidebarContainer,.geToolbarContainer,.geVsplit{overflow:hidden;position:absolute;cursor:default}.geDiagramContainer,.geOutlineContainer{background-color:#fff;outline:0}.geMenubar,.geToolbar{white-space:nowrap;display:block;width:100%}.geMenubarContainer .geItem,.geSidebar,.geSidebar .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel,.mxPopupMenuItem{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.geHint{background-color:#fff;border:1px solid gray;padding:4px 16px 4px 16px;border-radius:3px;-webkit-box-shadow:1px 1px 2px 0 #ddd;-moz-box-shadow:1px 1px 2px 0 #ddd;box-shadow:1px 1px 2px 0 #ddd;opacity:.8}.geStatusAlert{white-space:nowrap;margin-top:-5px;font-size:12px;padding:4px 6px 4px 6px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442!important;border-radius:3px}.geStatusAlert:hover{background-color:#f1d8d8;border-color:#d6b2b8}.geStatusMessage{white-space:nowrap;margin-top:-5px;padding:4px 6px 4px 6px;font-size:12px;background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border:1px solid #b2dba1;border-radius:3px;color:#3c763d!important}.geStatusMessage:hover{background:#c8e5bc;border-color:#b2dba1}.geAlert{position:absolute;white-space:nowrap;padding:14px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;border-radius:3px;-webkit-box-shadow:2px 2px 3px 0 #ddd;-moz-box-shadow:2px 2px 3px 0 #ddd;box-shadow:2px 2px 3px 0 #ddd}.geBtn{background-color:#f5f5f5;border-radius:2px;border:1px solid #d8d8d8;color:#333;cursor:default;font-size:11px;font-weight:700;height:29px;line-height:27px;margin:0 0 0 8px;min-width:72px;outline:0;padding:0 8px;cursor:pointer}.geBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(#f8f8f8 0,#f1f1f1 100%);color:#111}.geBtn:disabled{opacity:.5}.geBtnUp{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECAGZmZtXV1f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJERjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJFMDg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkREODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRFODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjwiQBhGYglCKhXFLBQA7);background-position:center center;background-repeat:no-repeat}.geBtnUp:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geBtnDown{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECANXV1WZmZv///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJEQjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJEQzg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkQ5ODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRBODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjxLLewEiCAnOZBzeBQA7);background-position:center center;background-repeat:no-repeat}.geBtnDown:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geColorBtn{background-color:#f5f5f5;background-image:linear-gradient(#f5f5f5 0,#e1e1e1 100%);border-radius:4px;border:1px solid rgba(0,0,0,.5);color:#333;cursor:default;margin:0;outline:0;padding:0;cursor:pointer}.geColorBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.7)}.geColorBtn:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.geColorBtn:disabled{opacity:.5}.gePrimaryBtn{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#4787ed 100%);border:1px solid #3079ed;color:#fff}.gePrimaryBtn:hover{background-color:#357ae8;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.gePrimaryBtn:disabled{opacity:.5}.geAlertLink{color:#843534;font-weight:700;text-decoration:none}.geMenubarContainer{background-color:#fff}.geMenubar{padding:0 2px 0 2px;vertical-align:middle}.geMenubarContainer .geItem,.geToolbar .geItem{padding:6px 8px 6px 8px;cursor:default}.geMenubarContainer .geItem:hover,.geToolbarContainer .geItem:hover{background:#eee}.mxDisabled:hover{background:inherit!important}.geMenubar a.geStatus{color:#b3b3b3;padding-left:6px;display:inline-block;cursor:default!important}.geMenubar a.geStatus:hover{background:0 0}.geMenubarMenu{border:1px solid #d5d5d5!important}.geToolbarContainer{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.geSidebarContainer .geToolbarContainer{background:0 0;border-bottom:none}.geSidebarContainer button{text-overflow:ellipsis;overflow:hidden}.geToolbar{padding:1px 0 0 6px;border-top:1px solid #e0e0e0;-webkit-box-shadow:inset 0 1px 0 0 #fff;-moz-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.geToolbarContainer .geSeparator{float:left;width:1px;height:34px;background:#e5e5e5;margin-left:6px;margin-right:6px;margin-top:-2px}.geToolbarContainer .geButton{float:left;width:20px;height:20px;padding:0 2px 4px 2px;margin:2px;border:1px solid transparent;cursor:pointer;opacity:.6}.geToolbarContainer .geButton:hover{border:1px solid gray;border-radius:2px;opacity:1;filter:none!important}.geToolbarContainer .geButton:active{border:1px solid #000}div.mxWindow .geButton{margin:-1px 2px 2px 2px;padding:1px 2px 2px 1px}.geToolbarContainer .geLabel{float:left;margin:2px;cursor:pointer;padding:3px 5px 3px 5px;border:1px solid transparent;opacity:.6}.geToolbarContainer .geLabel:hover{border:1px solid gray;border-radius:2px;opacity:.9}.geToolbarContainer .geLabel:active{border:1px solid #000;opacity:1;filter:none!important}.geToolbarContainer .mxDisabled:hover{border:1px solid transparent!important;opacity:.2!important}.geToolbarMenu{border:3px solid #e0e0e0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;filter:none!important}.geDiagramBackdrop{background-color:#ebebeb;border-style:solid;border-color:#e5e5e5;border-width:1px 0 0 1px}.geSidebarContainer{background:#fff;overflow:hidden;position:absolute;border-top:1px solid #e5e5e5;overflow:auto}.geSidebar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:5px;padding-bottom:12px;overflow:hidden}.geSidebarContainer .geTitle{display:block;font-size:9pt;border-bottom:1px solid #e5e5e5;font-weight:400;padding:6px 0 6px 14px;margin:0;cursor:default;background:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4em}.geSidebarContainer .geTitle:hover{background:#e5e5e5}.geTitle img{opacity:.5}.geTitle img:hover{opacity:1}.geSidebar .geItem{display:inline-block;background-repeat:no-repeat;background-position:50% 50%;border:1px solid transparent;border-radius:2px;cursor:move}.geSidebar .geItem:hover{border:1px solid gray!important}.geItem{vertical-align:top;display:inline-block}.geSidebarTooltip{position:absolute;background:#fff;overflow:hidden;border:1px solid gray;border-radius:8px;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5}.geFooterContainer{background:#e5e5e5;border-top:1px solid silver}.geFooterContainer a{font-size:14px;color:#235695;font-weight:700;text-decoration:none}.geFooterContainer table{border-collapse:collapse;margin:0 auto}.geFooterContainer td{border-left:1px solid silver;border-right:1px solid silver}.geFooterContainer td:hover{background-color:#b3b3b3}.geFooterContainer a{display:block;box-sizing:border-box;width:100%;height:100%;padding:11px 42px 11px 42px;white-space:nowrap}.geHsplit{cursor:col-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHBAMAAADdS/HjAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAHUlEQVQImWMQEGAQFWUQFmYQF2cQEmIQE2MQEQEACy4BF67hpEwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geVsplit{font-size:1pt;cursor:row-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geHsplit:hover,.geVsplit:hover{background-color:#d5d5d5}.geDialog{position:absolute;background:#fff;overflow:hidden;padding:30px;border:1px solid #acacac;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5;z-index:2}.geDialogClose{position:absolute;width:9px;height:9px;opacity:.5;cursor:pointer}.geDialogClose:hover{opacity:1}.geDialogTitle{box-sizing:border-box;white-space:nowrap;background:#e5e5e5;border-bottom:1px solid silver;font-size:15px;font-weight:700;text-align:center;color:#235695}.geDialogFooter{background:#f5f5f5;white-space:nowrap;text-align:right;box-sizing:border-box;border-top:1px solid #e5e5e5;color:#a9a9a9}.geSprite{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAk/CAYAAACauMYVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAWn0lEQVR4Ae2dW4gdxdbHO0aJYjzxTtR4EhSDSNB84kPEQOL9CB/Ex4igg8iAGCSgiIIQH1SOqJAnn4N4wBdvYBRBcYTIp0+OF0SDYoJRgyAmeA1e5lv/PrM6q6urqqu7a2/3ZP4NPVVdtda/Vv2qZ9Nrd++9i2IE2xJoHn/88XOq/ccff5RtepxSuv7HqxPE0GkNtC+lVH/YjiTSKoi+EaqA9T9OG3OW4xNdu3btHPZY9DGbRqRtYhiozaYhunfvXu95aoVCNjqzhqh2uGWbkLVPFrWRWgFfvSFqnW3dOtt2W7c2Zd2evI3OhAbr34g0wb/VZOGIjuRVagG+nrYuKQ1IgARIgARIgARIgARIoEbAm93BwmYb1mP58uXFoUOHgn6wTUok8K4Ddgj+9NNPxamnnhpNhpNENdL169eXVQj32jB93VUAEaJNxKORBtmEmGIAoNCBfGXS9C1TiLRF6huobNOp24g3b97cQBIU8HX4RJVp2+oH2dgI7aAp56m1Z50ESIAESIAESIAESIAESGCREtBMJXX6SclZqpjaUVRJ5CuPEabI623ii3rvXN/SVeFsgioO4SwRquDElNU7E3ZB+kTX9g5QH036kAAJkAAJkAAJkAAJkMDEEqiupBFh36vpsVxF1yJVnqkRjyVCDaoWaWqE6qzlWCKuRaojp0Y8lgg1qFqkqRGqs5ZjibgWqY6cGvFYItSgWJIACZAACZAACZAACZDAJBHwXknbAENX1bGr6IZoSMQO5KvbQUZyi9M36OC2xvRVMRWDnbb6jmT6FFW8+UoyzcdSlUbCVMVZkgAJkAAJkAAJkAAJTCqB1Pypc/yu8Jo1a6KfhE0eAMI7duyYS/04aJIwBCGsUeL507bPmbYKQwCCFsUgYQjaJ2MHC7uCvim1RVxLzSHY5YPUq1atKvbt21fTQBC9sxN8ltcnCNHGKCnR2g8HP/TQQ+U5/Mgjj1RajUjxiXc4hTYrCJtff/213K19pW4bUfdF7Aree++9tf+0p556qtRrRKribsSuoNr1KhEx9pAzonUjDtmynQRIgARIgARIgARIgASOGQLlNbrN6Hy3LNtm6/ovwC+qtVNom66v3/p7Ux4YuLsrZLNst686tiO5grZPHdCmbzCgzdp4I1VHX6kDou/AgQOFFW7Y25HU0ZauA/ps0mb9O0eq4uvWrWv9OrgaE3XsUmaJNDZgdPp29JiI2xcVdY1Tj72iOLE1SpRJJ7pvRBXRPpwuaLOnjfb5Ste/tPE1Rk9sR9n68/XUgcNDEiABEiABEiABEjgmCTTunMkl4Z65ublVbbM97rjj3v3999+3+uyqLFo7Ifjqq6+ulq1YsqQxJr6huXj77beLe+65Z5/6uGVDFAZysVtcdNFFXlGJrpDfPSp13nrrLczouauvvnpj2TD/x3vNjz5flOooUy8uvPDCDV9//fX/yb3ADc8///we7UMZFEXnn3/+WbzwwgvF559/XiBCbCeccEJx/fXXF4899tiyxx9/fNXpp5++VO4K19bAO/3SW/4goquuuqp4+OGHi08//bQ8vuyyy4rbb7+9ePTRR4svvvjioAyy9a+//jqiPt5y6dKl+z777DNZr6Pb+++/P3fHHXfMSd/cGWecMXf55Zcjc3lfBDZ4RdxGnyjkZ2Zm5q655ppSGOIiOuP66nGUKYx++eWX4pVXXilXfGpqqnjppZcKuZNbyDjrzzvvvJk33njjORXTMioqrIoPPvigPDdxmm3cuLG49tpri5tvvrm47bbbVkj/pp9//vlfL7744nYVRBldKBgsW7asEIbFWWedVZx00kkFBvrtt9/QVZ520r/ihx9+gOjOslH+REWx+hC0G04zWcjimWee2X/OOefsWrFiRfHtt98esjZeUTji39H3D4B29EvfPnkP5eErr7zS6pV1r+h7771XfPXVV0HRjz76qCFkGxqvGHIyPycru9Ia+eoS6az8l9UWyGfHNhIgARIgARIgARIgARLoQKBxfer6fvLJJ899/PHHZb506aWXvnvxxRdvdW3c48aV9O7du/eIUZUW3nXXXStvvPHGZbhUf/rpp1dK/z4VQUp5ySWXHJAHhuMJ75133rlKcqfVJ5988mpJJFYfPnx42ZNPPlk88cQTuPu4DG3og83999+/WjKTKgAdrJFHfffdd8Xs7OxWcd4sD//Ofvnll4UIlzvqDz74YCGPkIvJ7Nbvv/++TCpULFgijZTO1TK1nVI/hJTR3edTyNXnn3/+nIjDvrY1mGqvJAm7pP6iHjvlYee4dhgUffPNN9dLzrQG1sjyZJu56aabZlCZ31ZrxS2DoiI0Jcab4IDMT7bNr7/++gwqSMxuuOGGt1D3bY2F8hnNt22S/Goq0l91BSOtLI5W3paId0mEu+abuk8fGR1OeIlOme4Spip4dChPLRjpdddd1ztF7MLUE5O/aSSioek3/p89MZU2YO5uDVFZnAPyb/kf19B3LIL7pf2Ar49tJEACJEACJEACJEAC/Qh4c1O5sfWhXHz9MyK5Rx51/N9Qf+OqD4abNm36hxQrQk5XXHHFvyQz/PDss8++1GfjFf3xxx+RHm595513tp944ollBq3Octfs3YMHD+6US87/iPAeEd6ofVp6Rec7D956662N+6FHjhz5Hxl055lnnrlUbnduEFR75F5qTTgmWj5d/OyzzxYbNtSCXSaDrsSTx7fccstSYd+46o6KIuKVK1cWuIPeZWsVhZjcyC6++eYbPExcyLQLyZ6jYySJ4pamvFlQ3vPDImKXvCAo3CnlQSaCtzgQKcrQ1kkU2TQ+y3vKKafkiRR5KkSBAnxjWzDSBx54YEpuYJfLftpppxUXXHBBsWbNmkLOzZhe2ecVlYh2Crf9El352iBPG+BxhlIY4ueee24lLJxXvPbaaw9UDVLxrr68f7Lz7rvvxim0Wd548Z6k8q9a6sg7GKdKBaL/Lhvkj1dUOyXQ2fvuu08PG6Xc4C5PM7Hr+ZvkDUk2kAAJkAAJkAAJkAAJkAAJLFYC3vdQXBiS+jRvj4mR3AFO8nf1quPt27d3+qho5RirINpQxK6fN410jTZv3lxOH19Rlm3rEiUGbY1UMucySjzNnW3rGmVrpPqh4G3btnUK0nuehVZ58HnZKTQakwAJkAAJkAAJkAAJkAAJZCBQu+YPXeu3jTOWXKBXpGOJzMXTK1JXZCyR94p0LJG5OHpF6oqMJfJekY4lMhcHj0mABEiABEiABEiABEhgnkDXe1Ktd876kKVomJr9ZmFYYcF6f7uwHUaFswmqOISzRKiCE1NWGV/f9090JsdwFph99bOfp1ZQX/6yna8qqCvdVvKlr40Q+0mABEiABEiABEiABBY8gSqP8s2kLbcK5U4juZL2BTi4rTH9timHRrQoBk3fCtnBBomGZjVI1EZn69EPBsMwNMVQlPAZSaQQDm6xaGJ9I4m0lWksouAU2UECJEACJEACJEACJEACJEACWQnITzuVP5mLDEX3Qff4VCRUWnHYtM4GRvpZaDXGJ7j1B391IHusdt5SPwzs7ZRGDKaitgzZF4gm2Gk65JeuGsKmu55F4wemUjb50a+oWeM9lKi1dAKP/Fhawyz0vkDDkA0kQAIkQAIkQAIkQAIkQAILnkAtkUBe1GdGY0kiapG6UaZGPv5IUyNzZzT+SN0IUiMff6SpkbkzGn+kbgSpkY8lUjc4HpMACZAACZAACZAACZAACaQQaOSmqdf5Vty95h/vQ63u6DYyrYdmlSXS6enpOew6WBZRFdOSokoiXxl8Tjp0uqQMPZKFakRqT3p77qVEqDYjiVTFWZIACZAACZAACZAACZDARBKQa/0P5XeLD0lwbT8Z9E/Ywd6dSONKWn5XV38qO/yLyP9VQQa+Yt6+ptsQrfX2PFjkoo08SjHKyk7JzwtfrceeEovkaY5/2nhKnFb7vNAu+3ZfH9qCkaJTfjB9lxSHZcdT2ftl3yc7tk2YCSq+rXX15eTeKQIzUk75BHxtraI+p7a2hqgszgFx+lMd5Ri/Nr1fSvzrJm0NppJFb5Sp7pGFwI+aHZFfud4KJeFrBfEb8mCMH6FGENxIgARIgARIgARIgARIYHERQNJabnL17E+K1KCltPexWkwXWjc+WWw/XTw4foiBN/YswlYwqzCmqoKp025kfKmOMTuKxuj061s4TPvNj14kQAIkQAIkQAIkQAIkQAIBAqEsL9RuZRZOIsFI7bodra9ahdumRbFjx47qXSCta99R63qtegup3vzfI5w+vva2t4uiCwVnGxXqbYK+ILK0eacfmrY74t8WtRsIj0mABEiABEiABEiABEiABBYBAffWMb6lGd/dnTx1+63Xrpi+eWDLJGE4QBi7dcax+63Y+rXarcJWSOvuF4C7InZ2bl95rEJa4ru4vYZOozuLaMLb9l3cqu1+t3ctN0WEaqjl8uXLi0OHDtXstI8lCZAACZAACZAACZAACZAACTQIuFkfjhtGnoZg1uHLVNS/7Y6ZN49SwW3btpU3CiGCHcfYtF8HaS11yjaLW7t2bTVttEM0FUU5IBzcSKwojHw2NtoGUxXEdF0xOO7du3eJtbFiwbovClfcZ2MFGwu1bt26st8ytQ7arna2L1rXSFRAjXWRdPranlyqcKjstPp2VD29VFiFtF2Prc+g+tiFG6vfJfzZ2dklOAsk6i5utCUBEiABEiABEiABEiCBySGgl+DuNX9bhI2MTx0gpHW3nNws2kaqCVqndEf5WSG33mbT+H4pK+AmuuhDFm1tkuptUUCkzaaRR2l27Ca7GpG2q522t5YaiQqogy4S+rWtU6nCobLT6tuRQ/9R2t5b2A5i62MXbqy+jaatziy6jRD7SYAESIAESIAESOBYJtA9ffHQsDkAUsxoHmX9raNt13opNp9gJIvCOZToarKhAySXbZFaoUGX51bI1ilqaeSpk2kejlZlkTMtX6Xsi0Xolcgya6tXL336emgHaHMO9Zev/FYoR6ShwdhOAiRAAiRAAiRAAscYgZFk0dmupO2FXTZRe+WYbTWtaLZIbXQUtTTy1KvsxK5eHmlRySnK1c+2LJXQSJiOJDetIrWvh9U8elYq0Zznac9Y6EYCJEACJEACJEACC43AIsqid+/eXT41m+2qEYIQU+HBa0/BwQgLMiTDHgSynjZ4UdA924uDvmxp2WOSNRdm0TUcPCABEiABEiABEiCBTgQmK4vWa1m9Uhx870UF9VpWr211gE6s1BjOKqhtg0qNcpCI68woXSL9jnVxsq44F6ffYvi8Jo8lItIdEWc5hSAIMRVGOeScHMldcwTIjQRIgARIgARIgAQWAYHJyqJd4DaLru6duEZdj/VytKtf1N6KZovUjkhRSyNPnUzzcLQqi5wpPxdtTwbWSYAESIAESIAESOBYJTCSLLr6vGlXajYXhS+yaG0bdHkOIU3JVbBrcDX7mMigSGujmAOKGhiZqsHzNLa6vcceIsrV74096DgSpiPJoqtI7UvYkNMJTHgvOnhmsIMESIAESIAESIAESIAESCBEoPYW0tCsRDOc0GBsJwESIAESIAESIAESIAESIAESmFQCyAiHfGYyOC8Ij0RchbOLW2FXfLKy6FikwQWJdVjBLGeDCmYRQ+TugsRmwz4SIAESIAESIAESIAESIAESGD2B7GmPhnxsCE9WFj0yttkXa/IFlSVLEiABEiABEiABEiABEiABEuhEIHu6g9FVFGXWu5LZha2g1m3Ek5NFa3S2tJF2WnU1tmKoDxYc+epniVCnz5IESIAESIAESIAESIAESIAEJoMAUh2boA1OfVxBFbfCtYQ3hQNEQnb6Eebat4vFHEJCvvaRRFp9v5RvRF/byy+/7GsuQu1eY1+ju1h2kXz2bCMBEiABEiABEiABEiABEiCBBUYglh12zvgwdyuo+ahl0lnUCqqQK9xJ1CfoE66JxpzUOVZqxDXRmAP6YoOqIOw6iYaErWAvUVfYFUR/7y2GorcoHUmABEiABEiABEiABEiABEjg7yNg70IOvgNpxZA/2d0n3ppGpiZhNvOriaYKhBZAhWuiPuPUgVQQGq33omEcu8+MPivoCyzaZhfMt0BRZ3aSAAmQAAmQAAmQAAmQAAmQwGQTQKI2klQHwiMRV+Hs4iqoA1gstYQXBl1WVXNS9dPjLho121ikNcPUA52yCqf6Be1U0DIMGqd0ZIssZTDakAAJkAAJkAAJkAAJkAAJkEArgexpD0ZU0awpEMSseJZETUVDwr2zaJsx6yC2DQN22lQETqhjH4xARbMJ2uiyRKiMskaooixJgARIgARIgARIgARIgARIYDIIILvTtMeXS7U+fexOA4L6xDFyUew4HpRGIjJ3IBzb9pF8u5hv0GibjcgahtqtTbAOdtPT0zUEOB7EFKNBAJHpPlgwOAV2kAAJkAAJkAAJkAAJkAAJkMDfQmBQMuaLGIKaS/n6O7epIByzCFtBjaZVGE6xPZQutgprBL6yV6Q+IbfNCg+KMCSMAdy+QcfZBQdFQ2cSIAESIAESIAESIAESIAESyEIAqU5bulN7Tjo2qgrpt2Jt2bKlNO/1bDRutELQl+xqGunenK0Fp1NzS5+gOiYJq7GWfSL9e5hqxFoqGj1mSQIkQAIkQAIkQAIkQAIkQAILmIBmdFmmoGLImwYLWrHBgq7YEMEqNx0iAjzevD9npI01cMUbBkMarPgQHa+vins72UgCJEACJEACJEACJEACJEACIyWgGcnQLLAKcnEJji+LrgDnqGRfJA1q4Qlr5CxJgARIgARIgARIgARIgARIIIlA9rTHCmZJzV3BwaI+wb6i48uiEaHuSSsbM/IhiNkn97nCyY5thla4zZb9JEACJEACJEACJEACJEACJLBACNhUBxkfjgeF7gpqGtlHOCnh9T5YHZlCkmjEv+qyA9e++LuycCrWwenyHlbfe66fIXetQu2uXfDYXaw+ixQUZwcJkAAJkAAJkAAJkAAJkAAJTA4B5KZ9o6nSSCtgBbtme9BpiFpBHaircE3UJ9hHuBKNCapwrLSzqUThEBO2TjFx9NVE0eAT7iLoFXWFuwrCP7j5Ig4as4MESIAESIAESIAESIAESIAEFhYBe2dy8F1JK4Zcyu6p4rU0MjUha8sCK9FUwdAi2oEqURinClsB3yDVvWh0wjh27xl9bYK+Qao2u2CpC1Q5s0ICJEACJEACJEACJEACJEACC4OApj5ZolWx1CwwOqgVGyxoxbQeHT3SWSW8GpXmnnoc8a11qV+tUaODmNZrBkMOVBDiXaNtHdeKtxp3NVDxrn60JwESIAESIAESIAESIAESIIHhBDQjyZZHWcEsolYQ8x0s6goOEQ1m0V1FW7NoCGIbPH2IuAiyiLrC2URdYRxzIwESIAESIAESIAESIAESIIFjgIBNzpBD4bjPtKqnjyGgTxcjz8SO477CZTCh7C7UHptB0heBpQjbLDpJ1DrEImz0gd309HRtYXA8iClGgQCmqvtgwUbobCABEiABEiABEiABEiABEiCBiSCQkuV1ChSCmlN1cgwZqyD6swhbQR10kLBP0BWGTWhX20bpEx4UqY5ghbMIusIYQNuylNkFs0RFERIgARIgARIgARIgARIgARLIRgBpT5/Up3pO2kaiQvqtWFu2bCm7e92Uxc1XCCJ9tIOgrimle8PWtasdxwTVUIUViy3VplHGhFUwJdLRM3VD1+m57TwmgTCB/wdigVA7yGo0NAAAAABJRU5ErkJggg==) no-repeat top left;width:21px;height:21px}.geSprite-actualsize{background-position:0 0}.geSprite-bold{background-position:0 -46px}.geSprite-bottom{background-position:0 -92px}.geSprite-center{background-position:0 -138px}.geSprite-delete{background-position:0 -184px}.geSprite-fillcolor{background-position:0 -230px}.geSprite-fit{background-position:0 -276px}.geSprite-fontcolor{background-position:0 -322px}.geSprite-gradientcolor{background-position:0 -368px}.geSprite-image{background-position:0 -414px}.geSprite-italic{background-position:0 -460px}.geSprite-left{background-position:0 -506px}.geSprite-middle{background-position:0 -552px}.geSprite-print{background-position:0 -598px}.geSprite-redo{background-position:0 -644px}.geSprite-right{background-position:0 -690px}.geSprite-shadow{background-position:0 -736px}.geSprite-strokecolor{background-position:0 -782px}.geSprite-top{background-position:0 -828px}.geSprite-underline{background-position:0 -874px}.geSprite-undo{background-position:0 -920px}.geSprite-zoomin{background-position:0 -966px}.geSprite-zoomout{background-position:0 -1012px}.geSprite-helbow{background-position:0 -1058px}.geSprite-velbow{background-position:0 -1104px}.geSprite-straight{background-position:0 -1150px}.geSprite-entity{background-position:0 -1196px}.geSprite-segment{background-position:0 -1242px}.geSprite-orthogonal{background-position:0 -1288px}.geSprite-noarrow{background-position:0 -1334px}.geSprite-endclassic{background-position:0 -1380px}.geSprite-endopen{background-position:0 -1426px}.geSprite-endblock{background-position:0 -1472px}.geSprite-endoval{background-position:0 -1518px}.geSprite-enddiamond{background-position:0 -1564px}.geSprite-endthindiamond{background-position:0 -1610px}.geSprite-endclassictrans{background-position:0 -1656px}.geSprite-endblocktrans{background-position:0 -1702px}.geSprite-endovaltrans{background-position:0 -1748px}.geSprite-enddiamondtrans{background-position:0 -1794px}.geSprite-endthindiamondtrans{background-position:0 -1840px}.geSprite-startclassic{background-position:0 -1886px}.geSprite-startopen{background-position:0 -1932px}.geSprite-startblock{background-position:0 -1978px}.geSprite-startoval{background-position:0 -2024px}.geSprite-startdiamond{background-position:0 -2070px}.geSprite-startthindiamond{background-position:0 -2116px}.geSprite-startclassictrans{background-position:0 -2162px}.geSprite-startblocktrans{background-position:0 -2208px}.geSprite-startovaltrans{background-position:0 -2254px}.geSprite-startdiamondtrans{background-position:0 -2300px}.geSprite-startthindiamondtrans{background-position:0 -2346px}.geSprite-copy{background-position:0 -410px}.geSprite-cut{background-position:0 -320px}.geSprite-paste{background-position:0 -367px}.geSprite-duplicate{background-position:0 -736px}.geSprite-save{background-position:0 -782px}.geSprite-publish{background-position:0 -92px}.geBaseButton{padding:10px;border-radius:6px;border:1px solid silver;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#ececec 0,#fcfcfc 100%)}.geBaseButton:hover{background:#ececec}.geBigButton{color:#fff;border:none;padding:10px;font-size:14pt;white-space:nowrap;border-radius:6px;text-shadow:#295989 0 1px 0;background-color:#428bca;background-image:linear-gradient(#4687ce 0,#3068a2 100%);-webkit-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;-moz-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0}.geBigButton:hover{background-color:#2d6ca2;background-image:linear-gradient(#5a94d3 0,#3673b5 100%)}.geBigButton:active{background-color:#3673b5;background-image:none}@media print{div.geNoPrint{display:none!important}}html div.mxRubberband{border-color:#00d;background:#9cf}td.mxPopupMenuIcon div{width:16px;height:16px}html div.mxPopupMenu{-webkit-box-shadow:2px 2px 3px #d5d5d5;-moz-box-shadow:2px 2px 3px #d5d5d5;box-shadow:2px 2px 3px #d5d5d5;background:#fff;position:absolute;border:3px solid #e7e7e7;padding:3px}html table.mxPopupMenu{border-collapse:collapse;margin:0}html td.mxPopupMenuItem{padding:7px 30px 7px 30px;font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt}html td.mxPopupMenuIcon{background-color:#fff;padding:0}td.mxPopupMenuIcon .geIcon{padding:2px;padding-bottom:4px;margin:2px;border:1px solid transparent;opacity:.5}td.mxPopupMenuIcon .geIcon:hover{border:1px solid gray;border-radius:2px;opacity:1}html tr.mxPopupMenuItemHover{background-color:#eee;color:#000}table.mxPopupMenu hr{color:#ccc;background-color:#ccc;border:none;height:1px}table.mxPopupMenu tr{font-size:4pt}html td.mxWindowTitle{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;text-align:left;font-size:12px;color:#707070;padding:4px}div.mxTooltip{-webkit-box-shadow:3px 3px 12px silver;-moz-box-shadow:3px 3px 12px silver;box-shadow:3px 3px 12px silver;background:#ffc;border-style:solid;border-width:1px;border-color:#000;font-family:Arial;font-size:8pt;position:absolute;cursor:default;padding:4px;color:#000}body{font-family:Arial Unicode MS,Arial,Helvetica;font-size:10pt}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd20=['exports','getDataValue','action','contactManager','motionbar','jscripty','urlForward','browser','bot','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','STRING','jscripty[ProjectId],\x20browser[type(0=Popup,1=CTI\x20URL)],\x20contactManager[ListId],\x20urlForward[type(GET,POST,PUT,DELETE)],\x20script[info],\x20integration[intName(desk,dynamics365,freshdesk,freshsales,salesforce,sugarcrm,vtiger,zendesk,zoho)],\x20motionbar[type(0=Popup,1=CTI\x20URL,2=WinApp)]','contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]','contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','TEXT','urlForward[body]'];(function(_0xab0227,_0x27b26f){var _0x19f8a3=function(_0x4661d9){while(--_0x4661d9){_0xab0227['push'](_0xab0227['shift']());}};_0x19f8a3(++_0x27b26f);}(_0xfd20,0x66));var _0x0fd2=function(_0x2d4501,_0x328b79){_0x2d4501=_0x2d4501-0x0;var _0x4725b4=_0xfd20[_0x2d4501];return _0x4725b4;};'use strict';var Sequelize=require('sequelize');module[_0x0fd2('0x0')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x54f464){return this[_0x0fd2('0x1')](_0x0fd2('0x2'));}},'action':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'isIn':{'args':[[_0x0fd2('0x3'),'integration',_0x0fd2('0x4'),_0x0fd2('0x5'),_0x0fd2('0x6'),_0x0fd2('0x7'),_0x0fd2('0x8'),'script']],'msg':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'}},'comment':_0x0fd2('0x9')},'data1':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comment':_0x0fd2('0xb')},'data2':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comment':_0x0fd2('0xc')},'data3':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comment':_0x0fd2('0xd')},'data4':{'type':Sequelize['STRING'](0x1000),'comments':_0x0fd2('0xe')},'data5':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comments':'urlForward[timeout],\x20browser[windowWidth]'},'data6':{'type':Sequelize[_0x0fd2('0xa')],'comments':'urlForward[headers],\x20browser[wsindowHeight]'},'data7':{'type':Sequelize[_0x0fd2('0xf')],'comments':_0x0fd2('0x10')}};
\ No newline at end of file
+var _0xa9dd=['motionbar','jscripty','browser','bot','script','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','jscripty[ProjectId],\x20browser[type(0=Popup,1=CTI\x20URL)],\x20contactManager[ListId],\x20urlForward[type(GET,POST,PUT,DELETE)],\x20script[info],\x20integration[intName(desk,dynamics365,freshdesk,freshsales,salesforce,sugarcrm,vtiger,zendesk,zoho)],\x20motionbar[type(0=Popup,1=CTI\x20URL,2=WinApp)]','contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]','contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]','urlForward[timeout],\x20browser[windowWidth],\x20contactManager[ignoreDialerContactId]','urlForward[headers],\x20browser[wsindowHeight]','TEXT','urlForward[body]','exports','VIRTUAL','getDataValue','action','STRING','contactManager'];(function(_0x4a6a4c,_0x5149d1){var _0xdb0e5b=function(_0x319640){while(--_0x319640){_0x4a6a4c['push'](_0x4a6a4c['shift']());}};_0xdb0e5b(++_0x5149d1);}(_0xa9dd,0x1c2));var _0xda9d=function(_0x564821,_0x4d037e){_0x564821=_0x564821-0x0;var _0x2b604d=_0xa9dd[_0x564821];return _0x2b604d;};'use strict';var Sequelize=require('sequelize');module[_0xda9d('0x0')]={'name':{'type':Sequelize[_0xda9d('0x1')],'get':function(_0x4e6c23){return this[_0xda9d('0x2')](_0xda9d('0x3'));}},'action':{'type':Sequelize[_0xda9d('0x4')],'allowNull':![],'validate':{'isIn':{'args':[[_0xda9d('0x5'),'integration',_0xda9d('0x6'),_0xda9d('0x7'),'urlForward',_0xda9d('0x8'),_0xda9d('0x9'),_0xda9d('0xa')]],'msg':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'}},'comment':_0xda9d('0xb')},'data1':{'type':Sequelize[_0xda9d('0x4')](0x1000),'comment':_0xda9d('0xc')},'data2':{'type':Sequelize[_0xda9d('0x4')](0x1000),'comment':_0xda9d('0xd')},'data3':{'type':Sequelize[_0xda9d('0x4')](0x1000),'comment':_0xda9d('0xe')},'data4':{'type':Sequelize['STRING'](0x1000),'comments':'browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]'},'data5':{'type':Sequelize[_0xda9d('0x4')](0x1000),'comments':_0xda9d('0xf')},'data6':{'type':Sequelize[_0xda9d('0x4')],'comments':_0xda9d('0x10')},'data7':{'type':Sequelize[_0xda9d('0x11')],'comments':_0xda9d('0x12')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcac1=['crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/environment','sendStatus','end','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','body','Action','find','params','then','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','to-csv','ejs','fs-extra','squel'];(function(_0x1d7472,_0x35ec49){var _0x5f0272=function(_0x3fd9ca){while(--_0x3fd9ca){_0x1d7472['push'](_0x1d7472['shift']());}};_0x5f0272(++_0x35ec49);}(_0xcac1,0x14e));var _0x1cac=function(_0x26eb88,_0x5efcf1){_0x26eb88=_0x26eb88-0x0;var _0x5a1b15=_0xcac1[_0x26eb88];return _0x5a1b15;};'use strict';var emlformat=require(_0x1cac('0x0'));var rimraf=require(_0x1cac('0x1'));var zipdir=require(_0x1cac('0x2'));var jsonpatch=require(_0x1cac('0x3'));var rp=require(_0x1cac('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1cac('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x1cac('0x6'));var ejs=require(_0x1cac('0x7'));var fs=require('fs');var fs_extra=require(_0x1cac('0x8'));var _=require('lodash');var squel=require(_0x1cac('0x9'));var crypto=require(_0x1cac('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x1cac('0xb'));var toCsv=require('to-csv');var querystring=require(_0x1cac('0xc'));var Papa=require(_0x1cac('0xd'));var Redis=require(_0x1cac('0xe'));var authService=require(_0x1cac('0xf'));var qs=require(_0x1cac('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1cac('0x11'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x1cac('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x194b57,_0x4743c7){_0x4743c7=_0x4743c7||0xcc;return function(_0x2fb60a){if(_0x2fb60a){return _0x194b57[_0x1cac('0x13')](_0x4743c7);}return _0x194b57['status'](_0x4743c7)[_0x1cac('0x14')]();};}function respondWithResult(_0x478610,_0x3a3e8c){_0x3a3e8c=_0x3a3e8c||0xc8;return function(_0x3ad054){if(_0x3ad054){return _0x478610['status'](_0x3a3e8c)['json'](_0x3ad054);}};}function respondWithFilteredResult(_0x3e2a9e,_0x35f8a6){return function(_0x3aa05a){if(_0x3aa05a){var _0xad7af7=typeof _0x35f8a6[_0x1cac('0x15')]===_0x1cac('0x16')&&typeof _0x35f8a6[_0x1cac('0x17')]===_0x1cac('0x16');var _0x4c06d8=_0x3aa05a['count'];var _0x3a651a=_0xad7af7?0x0:_0x35f8a6[_0x1cac('0x15')];var _0x3eb36b=_0xad7af7?_0x3aa05a[_0x1cac('0x18')]:_0x35f8a6[_0x1cac('0x15')]+_0x35f8a6[_0x1cac('0x17')];var _0x56ceca;if(_0x3eb36b>=_0x4c06d8){_0x3eb36b=_0x4c06d8;_0x56ceca=0xc8;}else{_0x56ceca=0xce;}_0x3e2a9e[_0x1cac('0x19')](_0x56ceca);return _0x3e2a9e[_0x1cac('0x1a')](_0x1cac('0x1b'),_0x3a651a+'-'+_0x3eb36b+'/'+_0x4c06d8)['json'](_0x3aa05a);}return null;};}function patchUpdates(_0x387589){return function(_0x5474fa){try{jsonpatch[_0x1cac('0x1c')](_0x5474fa,_0x387589,!![]);}catch(_0x578f9b){return BPromise[_0x1cac('0x1d')](_0x578f9b);}return _0x5474fa[_0x1cac('0x1e')]();};}function saveUpdates(_0x50e786,_0x2b59b9){return function(_0x6172ef){if(_0x6172ef){return _0x6172ef[_0x1cac('0x1f')](_0x50e786)['then'](function(_0xe81141){return _0xe81141;});}return null;};}function removeEntity(_0x3daf59,_0x4d7b1d){return function(_0x2d6a22){if(_0x2d6a22){return _0x2d6a22[_0x1cac('0x20')]()['then'](function(){_0x3daf59[_0x1cac('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x593575,_0xceac97){return function(_0x2342d6){if(!_0x2342d6){_0x593575[_0x1cac('0x13')](0x194);}return _0x2342d6;};}function handleError(_0x10b6f1,_0x2a64e9){_0x2a64e9=_0x2a64e9||0x1f4;return function(_0x207dd2){logger[_0x1cac('0x21')](_0x207dd2[_0x1cac('0x22')]);if(_0x207dd2[_0x1cac('0x23')]){delete _0x207dd2['name'];}_0x10b6f1[_0x1cac('0x19')](_0x2a64e9)[_0x1cac('0x24')](_0x207dd2);};}exports[_0x1cac('0x1f')]=function(_0x25e71b,_0xabe607){if(_0x25e71b[_0x1cac('0x25')]['id']){delete _0x25e71b[_0x1cac('0x25')]['id'];}return db[_0x1cac('0x26')][_0x1cac('0x27')]({'where':{'id':_0x25e71b[_0x1cac('0x28')]['id']}})[_0x1cac('0x29')](handleEntityNotFound(_0xabe607,null))[_0x1cac('0x29')](saveUpdates(_0x25e71b['body'],null))[_0x1cac('0x29')](respondWithResult(_0xabe607,null))[_0x1cac('0x2a')](handleError(_0xabe607,null));};exports[_0x1cac('0x20')]=function(_0x33ea57,_0x2ecbad){return db[_0x1cac('0x26')][_0x1cac('0x27')]({'where':{'id':_0x33ea57[_0x1cac('0x28')]['id']}})[_0x1cac('0x29')](handleEntityNotFound(_0x2ecbad,null))[_0x1cac('0x29')](removeEntity(_0x2ecbad,null))['catch'](handleError(_0x2ecbad,null));};
\ No newline at end of file
+var _0xc6f2=['body','Action','find','params','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','sendStatus','error','stack','name'];(function(_0x55d697,_0x2d3b37){var _0x1fc3f9=function(_0x13e1e5){while(--_0x13e1e5){_0x55d697['push'](_0x55d697['shift']());}};_0x1fc3f9(++_0x2d3b37);}(_0xc6f2,0xfa));var _0x2c6f=function(_0x592820,_0x1df77a){_0x592820=_0x592820-0x0;var _0x43d13e=_0xc6f2[_0x592820];return _0x43d13e;};'use strict';var emlformat=require(_0x2c6f('0x0'));var rimraf=require(_0x2c6f('0x1'));var zipdir=require(_0x2c6f('0x2'));var jsonpatch=require(_0x2c6f('0x3'));var rp=require(_0x2c6f('0x4'));var moment=require(_0x2c6f('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x2c6f('0x6'));var util=require('util');var path=require(_0x2c6f('0x7'));var sox=require(_0x2c6f('0x8'));var csv=require(_0x2c6f('0x9'));var ejs=require(_0x2c6f('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2c6f('0xb'));var squel=require(_0x2c6f('0xc'));var crypto=require(_0x2c6f('0xd'));var jsforce=require(_0x2c6f('0xe'));var deskjs=require(_0x2c6f('0xf'));var toCsv=require(_0x2c6f('0x9'));var querystring=require(_0x2c6f('0x10'));var Papa=require('papaparse');var Redis=require(_0x2c6f('0x11'));var authService=require(_0x2c6f('0x12'));var qs=require(_0x2c6f('0x13'));var as=require(_0x2c6f('0x14'));var hardwareService=require(_0x2c6f('0x15'));var logger=require(_0x2c6f('0x16'))(_0x2c6f('0x17'));var utils=require('../../config/utils');var config=require(_0x2c6f('0x18'));var licenseUtil=require(_0x2c6f('0x19'));var db=require(_0x2c6f('0x1a'))['db'];function respondWithStatusCode(_0x46677e,_0x49dc83){_0x49dc83=_0x49dc83||0xcc;return function(_0x304e61){if(_0x304e61){return _0x46677e['sendStatus'](_0x49dc83);}return _0x46677e[_0x2c6f('0x1b')](_0x49dc83)[_0x2c6f('0x1c')]();};}function respondWithResult(_0x2ef7a7,_0x2583ca){_0x2583ca=_0x2583ca||0xc8;return function(_0x47d7d6){if(_0x47d7d6){return _0x2ef7a7['status'](_0x2583ca)[_0x2c6f('0x1d')](_0x47d7d6);}};}function respondWithFilteredResult(_0xef996f,_0x581f6f){return function(_0x4adb2b){if(_0x4adb2b){var _0x5cec38=typeof _0x581f6f[_0x2c6f('0x1e')]===_0x2c6f('0x1f')&&typeof _0x581f6f[_0x2c6f('0x20')]===_0x2c6f('0x1f');var _0x4d9dc7=_0x4adb2b[_0x2c6f('0x21')];var _0x233710=_0x5cec38?0x0:_0x581f6f[_0x2c6f('0x1e')];var _0x114047=_0x5cec38?_0x4adb2b[_0x2c6f('0x21')]:_0x581f6f[_0x2c6f('0x1e')]+_0x581f6f[_0x2c6f('0x20')];var _0x79a69b;if(_0x114047>=_0x4d9dc7){_0x114047=_0x4d9dc7;_0x79a69b=0xc8;}else{_0x79a69b=0xce;}_0xef996f[_0x2c6f('0x1b')](_0x79a69b);return _0xef996f[_0x2c6f('0x22')](_0x2c6f('0x23'),_0x233710+'-'+_0x114047+'/'+_0x4d9dc7)[_0x2c6f('0x1d')](_0x4adb2b);}return null;};}function patchUpdates(_0x4a2b5b){return function(_0x390a45){try{jsonpatch[_0x2c6f('0x24')](_0x390a45,_0x4a2b5b,!![]);}catch(_0x5b5258){return BPromise['reject'](_0x5b5258);}return _0x390a45[_0x2c6f('0x25')]();};}function saveUpdates(_0xa49450,_0x4485c4){return function(_0x1a31ab){if(_0x1a31ab){return _0x1a31ab[_0x2c6f('0x26')](_0xa49450)[_0x2c6f('0x27')](function(_0x4f2fa9){return _0x4f2fa9;});}return null;};}function removeEntity(_0x2326dc,_0x36a940){return function(_0x12a79f){if(_0x12a79f){return _0x12a79f['destroy']()['then'](function(){_0x2326dc[_0x2c6f('0x1b')](0xcc)[_0x2c6f('0x1c')]();});}};}function handleEntityNotFound(_0x3b3032,_0x306c62){return function(_0x357834){if(!_0x357834){_0x3b3032[_0x2c6f('0x28')](0x194);}return _0x357834;};}function handleError(_0x5ab25a,_0x597581){_0x597581=_0x597581||0x1f4;return function(_0x2dd13c){logger[_0x2c6f('0x29')](_0x2dd13c[_0x2c6f('0x2a')]);if(_0x2dd13c['name']){delete _0x2dd13c[_0x2c6f('0x2b')];}_0x5ab25a[_0x2c6f('0x1b')](_0x597581)['send'](_0x2dd13c);};}exports['update']=function(_0x56c69c,_0x41a264){if(_0x56c69c[_0x2c6f('0x2c')]['id']){delete _0x56c69c['body']['id'];}return db[_0x2c6f('0x2d')][_0x2c6f('0x2e')]({'where':{'id':_0x56c69c[_0x2c6f('0x2f')]['id']}})[_0x2c6f('0x27')](handleEntityNotFound(_0x41a264,null))[_0x2c6f('0x27')](saveUpdates(_0x56c69c[_0x2c6f('0x2c')],null))[_0x2c6f('0x27')](respondWithResult(_0x41a264,null))[_0x2c6f('0x30')](handleError(_0x41a264,null));};exports['destroy']=function(_0x10518b,_0x3dcd28){return db[_0x2c6f('0x2d')][_0x2c6f('0x2e')]({'where':{'id':_0x10518b['params']['id']}})[_0x2c6f('0x27')](handleEntityNotFound(_0x3dcd28,null))['then'](removeEntity(_0x3dcd28,null))[_0x2c6f('0x30')](handleError(_0x3dcd28,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa108=['../../config/environment','./action.attributes','define','Action','tools_actions','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x416f0f,_0x5453e6){var _0x2ac5c6=function(_0x112b7f){while(--_0x112b7f){_0x416f0f['push'](_0x416f0f['shift']());}};_0x2ac5c6(++_0x5453e6);}(_0xa108,0x1c8));var _0x8a10=function(_0x1306f5,_0x1ff80e){_0x1306f5=_0x1306f5-0x0;var _0x508e6f=_0xa108[_0x1306f5];return _0x508e6f;};'use strict';var _=require('lodash');var util=require(_0x8a10('0x0'));var logger=require(_0x8a10('0x1'))('api');var moment=require(_0x8a10('0x2'));var BPromise=require(_0x8a10('0x3'));var rp=require(_0x8a10('0x4'));var fs=require('fs');var path=require(_0x8a10('0x5'));var rimraf=require('rimraf');var config=require(_0x8a10('0x6'));var attributes=require(_0x8a10('0x7'));module['exports']=function(_0x5a4619,_0x365b2a){return _0x5a4619[_0x8a10('0x8')](_0x8a10('0x9'),attributes,{'tableName':_0x8a10('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x71d3=['lodash','util','../../config/logger','api','moment','bluebird','path','./action.attributes','exports','define','Action','tools_actions'];(function(_0x41e72c,_0x5d38dc){var _0x877b0=function(_0x3c6fb4){while(--_0x3c6fb4){_0x41e72c['push'](_0x41e72c['shift']());}};_0x877b0(++_0x5d38dc);}(_0x71d3,0xb4));var _0x371d=function(_0x2c356f,_0xfd05e2){_0x2c356f=_0x2c356f-0x0;var _0x4f1294=_0x71d3[_0x2c356f];return _0x4f1294;};'use strict';var _=require(_0x371d('0x0'));var util=require(_0x371d('0x1'));var logger=require(_0x371d('0x2'))(_0x371d('0x3'));var moment=require(_0x371d('0x4'));var BPromise=require(_0x371d('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x371d('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x371d('0x7'));module[_0x371d('0x8')]=function(_0x560370,_0x13be14){return _0x560370[_0x371d('0x9')](_0x371d('0xa'),attributes,{'tableName':_0x371d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4975=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','Action,\x20%s,\x20%s','request\x20sent','debug','Action,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','moment','bluebird','randomstring'];(function(_0x4dbaad,_0x730318){var _0x226c72=function(_0x501972){while(--_0x501972){_0x4dbaad['push'](_0x4dbaad['shift']());}};_0x226c72(++_0x730318);}(_0x4975,0x86));var _0x5497=function(_0x228d8a,_0x564cfb){_0x228d8a=_0x228d8a-0x0;var _0x52ba4e=_0x4975[_0x228d8a];return _0x52ba4e;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var moment=require(_0x5497('0x1'));var BPromise=require(_0x5497('0x2'));var rs=require(_0x5497('0x3'));var fs=require('fs');var Redis=require(_0x5497('0x4'));var db=require(_0x5497('0x5'))['db'];var utils=require(_0x5497('0x6'));var logger=require(_0x5497('0x7'))(_0x5497('0x8'));var config=require(_0x5497('0x9'));var jayson=require(_0x5497('0xa'));var client=jayson['client'][_0x5497('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4f563d,_0x1d0019,_0x674a2a){return new BPromise(function(_0x368e8b,_0x57f930){return client[_0x5497('0xc')](_0x4f563d,_0x674a2a)['then'](function(_0x1f63d8){logger[_0x5497('0xd')](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));logger[_0x5497('0x10')](_0x5497('0x11'),_0x1d0019,_0x5497('0xf'),JSON[_0x5497('0x12')](_0x1f63d8));if(_0x1f63d8['error']){if(_0x1f63d8['error']['code']===0x1f4){logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x57f930(_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);}logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x368e8b(_0x1f63d8['error'][_0x5497('0x14')]);}else{logger['info'](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));_0x368e8b(_0x1f63d8[_0x5497('0x15')][_0x5497('0x14')]);}})[_0x5497('0x16')](function(_0x4073e6){logger[_0x5497('0x13')]('Action,\x20%s,\x20%s',_0x1d0019,_0x4073e6);_0x57f930(_0x4073e6);});});}
\ No newline at end of file
+var _0x5fab=['../../config/environment','jayson/promise','client','request','then','request\x20sent','debug','Action,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Action,\x20%s,\x20%s','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x26a515,_0x286339){var _0x314682=function(_0x501b51){while(--_0x501b51){_0x26a515['push'](_0x26a515['shift']());}};_0x314682(++_0x286339);}(_0x5fab,0x177));var _0xb5fa=function(_0x809314,_0xaf27c0){_0x809314=_0x809314-0x0;var _0x1a94b6=_0x5fab[_0x809314];return _0x1a94b6;};'use strict';var _=require(_0xb5fa('0x0'));var util=require(_0xb5fa('0x1'));var moment=require('moment');var BPromise=require(_0xb5fa('0x2'));var rs=require(_0xb5fa('0x3'));var fs=require('fs');var Redis=require(_0xb5fa('0x4'));var db=require(_0xb5fa('0x5'))['db'];var utils=require(_0xb5fa('0x6'));var logger=require(_0xb5fa('0x7'))(_0xb5fa('0x8'));var config=require(_0xb5fa('0x9'));var jayson=require(_0xb5fa('0xa'));var client=jayson[_0xb5fa('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5d70f6,_0x2e3804,_0x1aec3e){return new BPromise(function(_0x9c7bce,_0x56d018){return client[_0xb5fa('0xc')](_0x5d70f6,_0x1aec3e)[_0xb5fa('0xd')](function(_0x2cf4a5){logger['info']('Action,\x20%s,\x20%s',_0x2e3804,_0xb5fa('0xe'));logger[_0xb5fa('0xf')](_0xb5fa('0x10'),_0x2e3804,_0xb5fa('0xe'),JSON[_0xb5fa('0x11')](_0x2cf4a5));if(_0x2cf4a5[_0xb5fa('0x12')]){if(_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x13')]===0x1f4){logger[_0xb5fa('0x12')]('Action,\x20%s,\x20%s',_0x2e3804,_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x14')]);return _0x56d018(_0x2cf4a5['error'][_0xb5fa('0x14')]);}logger['error'](_0xb5fa('0x15'),_0x2e3804,_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x14')]);return _0x9c7bce(_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x14')]);}else{logger['info']('Action,\x20%s,\x20%s',_0x2e3804,_0xb5fa('0xe'));_0x9c7bce(_0x2cf4a5[_0xb5fa('0x16')][_0xb5fa('0x14')]);}})[_0xb5fa('0x17')](function(_0x56fe10){logger['error'](_0xb5fa('0x15'),_0x2e3804,_0x56fe10);_0x56d018(_0x56fe10);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc5ff=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./action.controller','put','/:id','update','delete','destroy','exports','path'];(function(_0x4b7b62,_0x4920a9){var _0x2280df=function(_0x21e1f8){while(--_0x21e1f8){_0x4b7b62['push'](_0x4b7b62['shift']());}};_0x2280df(++_0x4920a9);}(_0xc5ff,0x15d));var _0xfc5f=function(_0x555fa2,_0x26e523){_0x555fa2=_0x555fa2-0x0;var _0x52d4bb=_0xc5ff[_0x555fa2];return _0x52d4bb;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xfc5f('0x0'));var timeout=require('connect-timeout');var express=require(_0xfc5f('0x1'));var router=express[_0xfc5f('0x2')]();var fs_extra=require(_0xfc5f('0x3'));var auth=require(_0xfc5f('0x4'));var interaction=require(_0xfc5f('0x5'));var config=require(_0xfc5f('0x6'));var controller=require(_0xfc5f('0x7'));router[_0xfc5f('0x8')](_0xfc5f('0x9'),auth['isAuthenticated'](),controller[_0xfc5f('0xa')]);router[_0xfc5f('0xb')](_0xfc5f('0x9'),auth['isAuthenticated'](),controller[_0xfc5f('0xc')]);module[_0xfc5f('0xd')]=router;
\ No newline at end of file
+var _0x3172=['delete','exports','multer','path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./action.controller','put','/:id','isAuthenticated','update'];(function(_0x1b68ba,_0x23687a){var _0xf49b11=function(_0x5732c6){while(--_0x5732c6){_0x1b68ba['push'](_0x1b68ba['shift']());}};_0xf49b11(++_0x23687a);}(_0x3172,0x120));var _0x2317=function(_0x7feb90,_0x28e700){_0x7feb90=_0x7feb90-0x0;var _0x3c5b33=_0x3172[_0x7feb90];return _0x3c5b33;};'use strict';var multer=require(_0x2317('0x0'));var util=require('util');var path=require(_0x2317('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x2317('0x2'));var auth=require(_0x2317('0x3'));var interaction=require(_0x2317('0x4'));var config=require(_0x2317('0x5'));var controller=require(_0x2317('0x6'));router[_0x2317('0x7')](_0x2317('0x8'),auth[_0x2317('0x9')](),controller[_0x2317('0xa')]);router[_0x2317('0xb')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x2317('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['STRING','sequelize','exports'];(function(_0x24703f,_0x2669d3){var _0x2dc703=function(_0x4b6b90){while(--_0x4b6b90){_0x24703f['push'](_0x24703f['shift']());}};_0x2dc703(++_0x2669d3);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x342baa,_0x4a110f){_0x342baa=_0x342baa-0x0;var _0x1208f3=_0xc4aa[_0x342baa];return _0x1208f3;};'use strict';var Sequelize=require(_0xac4a('0x0'));module[_0xac4a('0x1')]={'name':{'type':Sequelize[_0xac4a('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xac4a('0x2')]},'parent':{'type':Sequelize[_0xac4a('0x2')]},'table':{'type':Sequelize[_0xac4a('0x2')]},'conditions':{'type':Sequelize['TEXT']},'joins':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x71ab=['TEXT','exports','STRING'];(function(_0x8d8786,_0x4eaced){var _0x548894=function(_0x7a8f9){while(--_0x7a8f9){_0x8d8786['push'](_0x8d8786['shift']());}};_0x548894(++_0x4eaced);}(_0x71ab,0x64));var _0xb71a=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x71ab[_0x4cf98e];return _0x1623ac;};'use strict';var Sequelize=require('sequelize');module[_0xb71a('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0xb71a('0x1')]},'parent':{'type':Sequelize['STRING']},'table':{'type':Sequelize[_0xb71a('0x1')]},'conditions':{'type':Sequelize[_0xb71a('0x2')]},'joins':{'type':Sequelize[_0xb71a('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5d9=['custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','ROUND(%s)','AnalyticMetric','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','end','status','json','offset','undefined','limit','count','set','Content-Range','save','then','get','CustomReports','destroy','sendStatus','error','stack','name','send','index','AnalyticCustomReport','rawAttributes','fieldName','key','map','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','type','VIRTUAL','merge','includeAll','include','rows','catch','keys','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','preview','join','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','findAll','keyBy','select','table','MetricId','metric','function','format','replace','groupBy','orderBy','alias','joins','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','parse','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','SUM(%s)','UNIX_TIMESTAMP(%s)','value','from','DESC','output','web','fullPath','%s-%s.%s','randomstring','generate','csv'];(function(_0x4b76cb,_0xba6fcc){var _0x4c23d3=function(_0x4d98ec){while(--_0x4d98ec){_0x4b76cb['push'](_0x4b76cb['shift']());}};_0x4c23d3(++_0xba6fcc);}(_0xa5d9,0xb8));var _0x9a5d=function(_0x35830,_0x178dc0){_0x35830=_0x35830-0x0;var _0x498b89=_0xa5d9[_0x35830];return _0x498b89;};'use strict';var emlformat=require(_0x9a5d('0x0'));var rimraf=require(_0x9a5d('0x1'));var zipdir=require(_0x9a5d('0x2'));var jsonpatch=require(_0x9a5d('0x3'));var rp=require(_0x9a5d('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9a5d('0x5'));var path=require(_0x9a5d('0x6'));var sox=require('sox');var csv=require(_0x9a5d('0x7'));var ejs=require(_0x9a5d('0x8'));var fs=require('fs');var fs_extra=require(_0x9a5d('0x9'));var _=require(_0x9a5d('0xa'));var squel=require(_0x9a5d('0xb'));var crypto=require(_0x9a5d('0xc'));var jsforce=require(_0x9a5d('0xd'));var deskjs=require(_0x9a5d('0xe'));var toCsv=require(_0x9a5d('0x7'));var querystring=require(_0x9a5d('0xf'));var Papa=require(_0x9a5d('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x9a5d('0x11'));var hardwareService=require(_0x9a5d('0x12'));var logger=require(_0x9a5d('0x13'))(_0x9a5d('0x14'));var utils=require(_0x9a5d('0x15'));var config=require(_0x9a5d('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9a5d('0x17'))['db'];var dbH=require(_0x9a5d('0x17'))[_0x9a5d('0x18')];function respondWithStatusCode(_0x211125,_0x3753c1){_0x3753c1=_0x3753c1||0xcc;return function(_0x4befb3){if(_0x4befb3){return _0x211125['sendStatus'](_0x3753c1);}return _0x211125['status'](_0x3753c1)[_0x9a5d('0x19')]();};}function respondWithResult(_0x2b85b8,_0x2aead0){_0x2aead0=_0x2aead0||0xc8;return function(_0x197bfa){if(_0x197bfa){return _0x2b85b8[_0x9a5d('0x1a')](_0x2aead0)[_0x9a5d('0x1b')](_0x197bfa);}};}function respondWithFilteredResult(_0x477c75,_0x595bc3){return function(_0x25c6d7){if(_0x25c6d7){var _0x582288=typeof _0x595bc3[_0x9a5d('0x1c')]===_0x9a5d('0x1d')&&typeof _0x595bc3[_0x9a5d('0x1e')]===_0x9a5d('0x1d');var _0x48eea2=_0x25c6d7[_0x9a5d('0x1f')];var _0x5ce584=_0x582288?0x0:_0x595bc3[_0x9a5d('0x1c')];var _0x5ba92b=_0x582288?_0x25c6d7[_0x9a5d('0x1f')]:_0x595bc3[_0x9a5d('0x1c')]+_0x595bc3[_0x9a5d('0x1e')];var _0x3bbf49;if(_0x5ba92b>=_0x48eea2){_0x5ba92b=_0x48eea2;_0x3bbf49=0xc8;}else{_0x3bbf49=0xce;}_0x477c75[_0x9a5d('0x1a')](_0x3bbf49);return _0x477c75[_0x9a5d('0x20')](_0x9a5d('0x21'),_0x5ce584+'-'+_0x5ba92b+'/'+_0x48eea2)[_0x9a5d('0x1b')](_0x25c6d7);}return null;};}function patchUpdates(_0x21558c){return function(_0x57a28c){try{jsonpatch['apply'](_0x57a28c,_0x21558c,!![]);}catch(_0x75553f){return BPromise['reject'](_0x75553f);}return _0x57a28c[_0x9a5d('0x22')]();};}function saveUpdates(_0x47db71,_0xbb32c1){return function(_0x227d93){if(_0x227d93){return _0x227d93['update'](_0x47db71)['then'](function(_0x4899a9){return _0x4899a9;});}return null;};}function removeEntity(_0x148dc8,_0x26f821){return function(_0x46801d){if(_0x46801d){return _0x46801d['destroy']()[_0x9a5d('0x23')](function(){var _0x2cb129=_0x46801d[_0x9a5d('0x24')]({'plain':!![]});var _0x322927=_0x9a5d('0x25');return db['UserProfileResource'][_0x9a5d('0x26')]({'where':{'type':_0x322927,'resourceId':_0x2cb129['id']}})[_0x9a5d('0x23')](function(){return _0x46801d;});})[_0x9a5d('0x23')](function(){_0x148dc8[_0x9a5d('0x1a')](0xcc)[_0x9a5d('0x19')]();});}};}function handleEntityNotFound(_0x229610,_0x3016fc){return function(_0x11a6aa){if(!_0x11a6aa){_0x229610[_0x9a5d('0x27')](0x194);}return _0x11a6aa;};}function handleError(_0x2fd4f9,_0x1d3e53){_0x1d3e53=_0x1d3e53||0x1f4;return function(_0x2facc3){logger[_0x9a5d('0x28')](_0x2facc3[_0x9a5d('0x29')]);if(_0x2facc3[_0x9a5d('0x2a')]){delete _0x2facc3['name'];}_0x2fd4f9[_0x9a5d('0x1a')](_0x1d3e53)[_0x9a5d('0x2b')](_0x2facc3);};}exports[_0x9a5d('0x2c')]=function(_0xe2cdb1,_0x3b73fe){var _0x1efb00={},_0x3ce95e={},_0x25bd84={'count':0x0,'rows':[]};var _0x5cdfdf=_['map'](db[_0x9a5d('0x2d')][_0x9a5d('0x2e')],function(_0x3c6a10){return{'name':_0x3c6a10[_0x9a5d('0x2f')],'type':_0x3c6a10['type'][_0x9a5d('0x30')]};});_0x3ce95e['model']=_[_0x9a5d('0x31')](_0x5cdfdf,_0x9a5d('0x2a'));_0x3ce95e['query']=_['keys'](_0xe2cdb1[_0x9a5d('0x32')]);_0x3ce95e['filters']=_[_0x9a5d('0x33')](_0x3ce95e[_0x9a5d('0x34')],_0x3ce95e['query']);_0x1efb00[_0x9a5d('0x35')]=_['intersection'](_0x3ce95e[_0x9a5d('0x34')],qs[_0x9a5d('0x36')](_0xe2cdb1[_0x9a5d('0x32')]['fields']));_0x1efb00[_0x9a5d('0x35')]=_0x1efb00[_0x9a5d('0x35')][_0x9a5d('0x37')]?_0x1efb00['attributes']:_0x3ce95e[_0x9a5d('0x34')];if(!_0xe2cdb1[_0x9a5d('0x32')][_0x9a5d('0x38')](_0x9a5d('0x39'))){_0x1efb00[_0x9a5d('0x1e')]=qs[_0x9a5d('0x1e')](_0xe2cdb1[_0x9a5d('0x32')]['limit']);_0x1efb00['offset']=qs[_0x9a5d('0x1c')](_0xe2cdb1[_0x9a5d('0x32')][_0x9a5d('0x1c')]);}_0x1efb00[_0x9a5d('0x3a')]=qs[_0x9a5d('0x3b')](_0xe2cdb1['query'][_0x9a5d('0x3b')]);_0x1efb00[_0x9a5d('0x3c')]=qs['filters'](_['pick'](_0xe2cdb1[_0x9a5d('0x32')],_0x3ce95e[_0x9a5d('0x3d')]),_0x5cdfdf);if(_0xe2cdb1[_0x9a5d('0x32')][_0x9a5d('0x3e')]){_0x1efb00[_0x9a5d('0x3c')]=_['merge'](_0x1efb00[_0x9a5d('0x3c')],{'$or':_[_0x9a5d('0x31')](_0x5cdfdf,function(_0x36bb83){if(_0x36bb83[_0x9a5d('0x3f')]!==_0x9a5d('0x40')){var _0x5df98f={};_0x5df98f[_0x36bb83['name']]={'$like':'%'+_0xe2cdb1[_0x9a5d('0x32')]['filter']+'%'};return _0x5df98f;}})});}_0x1efb00=_[_0x9a5d('0x41')]({},_0x1efb00,_0xe2cdb1['options']);var _0x3c2f72={'where':_0x1efb00[_0x9a5d('0x3c')]};return db[_0x9a5d('0x2d')][_0x9a5d('0x1f')](_0x3c2f72)[_0x9a5d('0x23')](function(_0x1364ff){_0x25bd84[_0x9a5d('0x1f')]=_0x1364ff;if(_0xe2cdb1['query'][_0x9a5d('0x42')]){_0x1efb00[_0x9a5d('0x43')]=[{'all':!![]}];}return db[_0x9a5d('0x2d')]['findAll'](_0x1efb00);})[_0x9a5d('0x23')](function(_0x1d019b){_0x25bd84[_0x9a5d('0x44')]=_0x1d019b;return _0x25bd84;})[_0x9a5d('0x23')](respondWithFilteredResult(_0x3b73fe,_0x1efb00))[_0x9a5d('0x45')](handleError(_0x3b73fe,null));};exports['show']=function(_0x5533d3,_0x59b18d){var _0x5317ab={'raw':![],'where':{'id':_0x5533d3['params']['id']}},_0x1a168d={};_0x1a168d[_0x9a5d('0x34')]=_[_0x9a5d('0x46')](db[_0x9a5d('0x2d')]['rawAttributes']);_0x1a168d['query']=_['keys'](_0x5533d3[_0x9a5d('0x32')]);_0x1a168d[_0x9a5d('0x3d')]=_[_0x9a5d('0x33')](_0x1a168d[_0x9a5d('0x34')],_0x1a168d[_0x9a5d('0x32')]);_0x5317ab[_0x9a5d('0x35')]=_[_0x9a5d('0x33')](_0x1a168d['model'],qs[_0x9a5d('0x36')](_0x5533d3[_0x9a5d('0x32')][_0x9a5d('0x36')]));_0x5317ab[_0x9a5d('0x35')]=_0x5317ab['attributes'][_0x9a5d('0x37')]?_0x5317ab['attributes']:_0x1a168d['model'];if(_0x5533d3[_0x9a5d('0x32')][_0x9a5d('0x42')]){_0x5317ab[_0x9a5d('0x43')]=[{'all':!![]}];}_0x5317ab=_[_0x9a5d('0x41')]({},_0x5317ab,_0x5533d3[_0x9a5d('0x47')]);return db['AnalyticCustomReport']['find'](_0x5317ab)[_0x9a5d('0x23')](handleEntityNotFound(_0x59b18d,null))['then'](respondWithResult(_0x59b18d,null))[_0x9a5d('0x45')](handleError(_0x59b18d,null));};exports[_0x9a5d('0x48')]=function(_0xd33582,_0x4c2167){return db[_0x9a5d('0x2d')]['create'](_0xd33582[_0x9a5d('0x49')],{})[_0x9a5d('0x23')](function(_0x44c146){var _0x4fd252=_0xd33582[_0x9a5d('0x4a')][_0x9a5d('0x24')]({'plain':!![]});if(!_0x4fd252)throw new Error(_0x9a5d('0x4b'));if(_0x4fd252[_0x9a5d('0x4c')]===_0x9a5d('0x4a')){var _0x486b45=_0x44c146[_0x9a5d('0x24')]({'plain':!![]});var _0x4e8a1c='Reports';return db['UserProfileSection'][_0x9a5d('0x4d')]({'where':{'name':_0x4e8a1c,'userProfileId':_0x4fd252[_0x9a5d('0x4e')]},'raw':!![]})['then'](function(_0x4c5ad4){if(_0x4c5ad4&&_0x4c5ad4[_0x9a5d('0x4f')]===0x0){return db['UserProfileResource'][_0x9a5d('0x48')]({'name':_0x486b45[_0x9a5d('0x2a')],'resourceId':_0x486b45['id'],'type':'CustomReports','sectionId':_0x4c5ad4['id']},{})['then'](function(){return _0x44c146;});}else{return _0x44c146;}})['catch'](function(_0x4f0315){logger[_0x9a5d('0x28')](_0x9a5d('0x50'),_0x4f0315);throw _0x4f0315;});}return _0x44c146;})[_0x9a5d('0x23')](respondWithResult(_0x4c2167,0xc9))[_0x9a5d('0x45')](handleError(_0x4c2167,null));};exports[_0x9a5d('0x51')]=function(_0x3d1666,_0x65a7b6){if(_0x3d1666[_0x9a5d('0x49')]['id']){delete _0x3d1666[_0x9a5d('0x49')]['id'];}return db[_0x9a5d('0x2d')][_0x9a5d('0x4d')]({'where':{'id':_0x3d1666[_0x9a5d('0x52')]['id']}})[_0x9a5d('0x23')](handleEntityNotFound(_0x65a7b6,null))[_0x9a5d('0x23')](saveUpdates(_0x3d1666[_0x9a5d('0x49')],null))[_0x9a5d('0x23')](respondWithResult(_0x65a7b6,null))[_0x9a5d('0x45')](handleError(_0x65a7b6,null));};exports[_0x9a5d('0x26')]=function(_0x1d99f6,_0x5b31e7){return db[_0x9a5d('0x2d')][_0x9a5d('0x4d')]({'where':{'id':_0x1d99f6[_0x9a5d('0x52')]['id']}})[_0x9a5d('0x23')](handleEntityNotFound(_0x5b31e7,null))[_0x9a5d('0x23')](removeEntity(_0x5b31e7,null))['catch'](handleError(_0x5b31e7,null));};exports[_0x9a5d('0x53')]=function(_0x414f13,_0x17ffe6){var _0x5704b5=0xa;var _0x136aa5=[_0x9a5d('0x54'),_0x9a5d('0x55'),_0x9a5d('0x56'),_0x9a5d('0x57')];var _0x224c21={'SUM':'SUM(%s)','COUNT':_0x9a5d('0x58'),'COUNT DISTINCT':_0x9a5d('0x59'),'MAX':_0x9a5d('0x5a'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x9a5d('0x5b'),'GROUP_CONCAT ASC':_0x9a5d('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2072be={'SEC_TO_TIME':_0x9a5d('0x5d'),'DATE':_0x9a5d('0x5e'),'HOUR':_0x9a5d('0x5f'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x325476=function(_0x465ed9){return!_[_0x9a5d('0x60')]([_0x9a5d('0x61'),_0x9a5d('0x62'),_0x9a5d('0x63'),_0x9a5d('0x64')],_0x465ed9);};var _0x3fbbd9=function(_0x59b489){if(!_0x59b489||!_0x59b489[_0x9a5d('0x65')][_0x9a5d('0x37')]){return'';}for(var _0x18e37f='(',_0x5219ed=0x0;_0x5219ed<_0x59b489['rules'][_0x9a5d('0x37')];_0x5219ed+=0x1){_0x5219ed>0x0&&(_0x18e37f+='\x20'+_0x59b489[_0x9a5d('0x66')]+'\x20');_0x18e37f+=_0x59b489['rules'][_0x5219ed][_0x9a5d('0x67')]?_0x3fbbd9(_0x59b489[_0x9a5d('0x65')][_0x5219ed][_0x9a5d('0x67')]):_0x59b489['rules'][_0x5219ed][_0x9a5d('0x68')]+'\x20'+_0x59b489[_0x9a5d('0x65')][_0x5219ed]['condition']+(_0x325476(_0x59b489['rules'][_0x5219ed][_0x9a5d('0x69')])?'\x20'+_0x59b489[_0x9a5d('0x65')][_0x5219ed]['value']:'');}return _0x18e37f+')';};var _0x22c005={'where':{'id':_0x414f13[_0x9a5d('0x52')]['id']}},_0x5794b1,_0x2eab28,_0x57bdcc,_0x352bca,_0xb7fa62;_0x22c005=_[_0x9a5d('0x41')]({},_0x22c005,_0x414f13[_0x9a5d('0x47')]);return db[_0x9a5d('0x2d')]['find'](_0x22c005)[_0x9a5d('0x23')](function(_0x4771a5){if(_0x4771a5){_0x5794b1=_0x4771a5;return _0x4771a5[_0x9a5d('0x6a')]();}return null;})['then'](function(_0x4ece18){if(_0x4ece18){if(!_0x4ece18['length']){throw new db[(_0x9a5d('0x6b'))][(_0x9a5d('0x6c'))](_0x9a5d('0x6d'),0x193);}_0x2eab28=_0x4ece18;return db['AnalyticMetric'][_0x9a5d('0x6e')]({'raw':!![]});}return null;})['then'](function(_0x145138){if(_0x145138){_0x57bdcc=_[_0x9a5d('0x6f')](_0x145138,'id');var _0x506024;var _0x1dbe9c=squel[_0x9a5d('0x70')]();_0x1dbe9c['from'](_0x5794b1[_0x9a5d('0x71')]);for(var _0x13c173=0x0;_0x13c173<_0x2eab28[_0x9a5d('0x37')];_0x13c173+=0x1){_0x506024=_0x2eab28[_0x13c173][_0x9a5d('0x72')]?_0x57bdcc[_0x2eab28[_0x13c173][_0x9a5d('0x72')]][_0x9a5d('0x73')]:_0x2eab28[_0x13c173][_0x9a5d('0x68')];_0x506024=_0x2eab28[_0x13c173][_0x9a5d('0x74')]?_['replace'](_0x224c21[_0x2eab28[_0x13c173]['function']],'%s',_0x506024):_0x506024;_0x506024=_0x2eab28[_0x13c173][_0x9a5d('0x75')]?_[_0x9a5d('0x76')](_0x2072be[_0x2eab28[_0x13c173]['format']],'%s',_0x506024):_0x506024;if(_0x2eab28[_0x13c173][_0x9a5d('0x77')]){_0x1dbe9c[_0x9a5d('0x67')](_0x506024);}_0x2eab28[_0x13c173][_0x9a5d('0x78')]&&_0x1dbe9c['order'](_0x506024,_0x2eab28[_0x13c173][_0x9a5d('0x78')]==='DESC'?![]:!![]);_0x1dbe9c[_0x9a5d('0x68')](_0x506024,_0x2eab28[_0x13c173][_0x9a5d('0x79')]||_0x506024);}if(_0x5794b1[_0x9a5d('0x7a')]){_0x5794b1[_0x9a5d('0x7a')]=JSON['parse'](_0x5794b1[_0x9a5d('0x7a')]);for(var _0x547bdc=0x0;_0x547bdc<_0x5794b1[_0x9a5d('0x7a')][_0x9a5d('0x37')];_0x547bdc+=0x1){if(_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x3f')]&&_['includes'](_0x136aa5,_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x3f')])&&_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7b')]&&_0x5794b1['joins'][_0x547bdc][_0x9a5d('0x7c')]&&_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7d')]){_0x1dbe9c[_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x3f')]](_0x5794b1['joins'][_0x547bdc][_0x9a5d('0x7c')],null,util['format'](_0x9a5d('0x7e'),_0x5794b1[_0x9a5d('0x71')],_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7b')],_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7c')],_0x5794b1['joins'][_0x547bdc]['foreignKey']));}}}if(_0x5794b1[_0x9a5d('0x7f')]){_0x5794b1[_0x9a5d('0x7f')]=JSON[_0x9a5d('0x80')](_0x5794b1[_0x9a5d('0x7f')]);_0x1dbe9c[_0x9a5d('0x3c')](_0x3fbbd9(_0x5794b1['conditions']['group']));}_0xb7fa62=_0x1dbe9c[_0x9a5d('0x81')]();_0x1dbe9c['limit'](_0x5704b5);_0x1dbe9c['offset'](0x0);logger[_0x9a5d('0x82')](_0x9a5d('0x83'),_0x1dbe9c[_0x9a5d('0x84')]());return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x1dbe9c[_0x9a5d('0x84')](),{'type':dbH[_0x9a5d('0x85')][_0x9a5d('0x86')][_0x9a5d('0x87')]});}})[_0x9a5d('0x23')](respondWithResult(_0x17ffe6,null))[_0x9a5d('0x45')](handleError(_0x17ffe6,null));};function runReport(_0x41ef91,_0x2f8a34,_0x33e4aa){var _0x4a9e0b=_0x2f8a34['name'];var _0x23a818=0xa;var _0x1712e8=[_0x9a5d('0x54'),_0x9a5d('0x55'),_0x9a5d('0x56'),_0x9a5d('0x57')];var _0x40e5e4={'SUM':_0x9a5d('0x88'),'COUNT':_0x9a5d('0x58'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x9a5d('0x5b'),'GROUP_CONCAT ASC':_0x9a5d('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x4c25fe={'SEC_TO_TIME':_0x9a5d('0x5d'),'DATE':_0x9a5d('0x5e'),'HOUR':_0x9a5d('0x5f'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x9a5d('0x89')};var _0x475f31=function(_0x5f5be6){return!_['includes']([_0x9a5d('0x61'),_0x9a5d('0x62'),_0x9a5d('0x63'),_0x9a5d('0x64')],_0x5f5be6);};var _0x5c0f3f=function(_0x3da839){if(!_0x3da839||!_0x3da839[_0x9a5d('0x65')][_0x9a5d('0x37')]){return'';}for(var _0x57f772='(',_0x48cd8e=0x0;_0x48cd8e<_0x3da839[_0x9a5d('0x65')][_0x9a5d('0x37')];_0x48cd8e+=0x1){_0x48cd8e>0x0&&(_0x57f772+='\x20'+_0x3da839[_0x9a5d('0x66')]+'\x20');_0x57f772+=_0x3da839[_0x9a5d('0x65')][_0x48cd8e]['group']?_0x5c0f3f(_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x67')]):_0x3da839['rules'][_0x48cd8e][_0x9a5d('0x68')]+'\x20'+_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x69')]+(_0x475f31(_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x69')])?'\x20'+_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x8a')]:'');}return _0x57f772+')';};var _0x5a44d6={'where':{'id':_0x41ef91['id']}},_0x3b3843,_0x3fab46,_0x346c75,_0x2b601c,_0x175ff1;_0x5a44d6=_[_0x9a5d('0x41')]({},_0x5a44d6,_0x33e4aa);return db['AnalyticCustomReport']['find'](_0x5a44d6)[_0x9a5d('0x23')](function(_0x1f46ff){if(_0x1f46ff){_0x3b3843=_0x1f46ff;return _0x1f46ff[_0x9a5d('0x6a')]();}return null;})[_0x9a5d('0x23')](function(_0xe16d7e){if(_0xe16d7e){if(!_0xe16d7e[_0x9a5d('0x37')]){throw new db['Sequelize']['ValidationErrorItem'](_0x9a5d('0x6d'),0x193);}_0x3fab46=_0xe16d7e;return db['AnalyticMetric'][_0x9a5d('0x6e')]({'raw':!![]});}return null;})[_0x9a5d('0x23')](function(_0x32a023){if(_0x32a023){_0x346c75=_[_0x9a5d('0x6f')](_0x32a023,'id');var _0x2d9da7;var _0x5103e1=squel[_0x9a5d('0x70')]();_0x5103e1[_0x9a5d('0x8b')](_0x3b3843['table']);for(var _0x1d5476=0x0;_0x1d5476<_0x3fab46[_0x9a5d('0x37')];_0x1d5476+=0x1){_0x2d9da7=_0x3fab46[_0x1d5476][_0x9a5d('0x72')]?_0x346c75[_0x3fab46[_0x1d5476][_0x9a5d('0x72')]][_0x9a5d('0x73')]:_0x3fab46[_0x1d5476][_0x9a5d('0x68')];_0x2d9da7=_0x3fab46[_0x1d5476]['function']?_[_0x9a5d('0x76')](_0x40e5e4[_0x3fab46[_0x1d5476]['function']],'%s',_0x2d9da7):_0x2d9da7;_0x2d9da7=_0x3fab46[_0x1d5476][_0x9a5d('0x75')]?_['replace'](_0x4c25fe[_0x3fab46[_0x1d5476][_0x9a5d('0x75')]],'%s',_0x2d9da7):_0x2d9da7;if(_0x3fab46[_0x1d5476][_0x9a5d('0x77')]){_0x5103e1[_0x9a5d('0x67')](_0x2d9da7);}_0x3fab46[_0x1d5476][_0x9a5d('0x78')]&&_0x5103e1[_0x9a5d('0x3a')](_0x2d9da7,_0x3fab46[_0x1d5476]['orderBy']===_0x9a5d('0x8c')?![]:!![]);_0x5103e1[_0x9a5d('0x68')](_0x2d9da7,_0x3fab46[_0x1d5476][_0x9a5d('0x79')]||_0x2d9da7);}if(_0x3b3843[_0x9a5d('0x7a')]){_0x3b3843['joins']=JSON['parse'](_0x3b3843[_0x9a5d('0x7a')]);for(var _0x5a9de6=0x0;_0x5a9de6<_0x3b3843['joins'][_0x9a5d('0x37')];_0x5a9de6+=0x1){if(_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x3f')]&&_['includes'](_0x1712e8,_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x3f')])&&_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6]['parentKey']&&_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x7c')]&&_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6]['foreignKey']){_0x5103e1[_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x3f')]](_0x3b3843['joins'][_0x5a9de6][_0x9a5d('0x7c')],null,util[_0x9a5d('0x75')]('%s.%s\x20=\x20%s.%s',_0x3b3843[_0x9a5d('0x71')],_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6]['parentKey'],_0x3b3843['joins'][_0x5a9de6][_0x9a5d('0x7c')],_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x7d')]));}}}if(_0x3b3843['conditions']){_0x3b3843['conditions']=JSON[_0x9a5d('0x80')](_0x3b3843[_0x9a5d('0x7f')]);_0x5103e1[_0x9a5d('0x3c')](_0x5c0f3f(_0x3b3843[_0x9a5d('0x7f')][_0x9a5d('0x67')]));}_0x175ff1=_0x5103e1[_0x9a5d('0x81')]();_0x5103e1[_0x9a5d('0x1e')](_0x23a818);_0x5103e1['offset'](0x0);return;}})[_0x9a5d('0x23')](function(){if(_0x2f8a34[_0x9a5d('0x8d')]===_0x9a5d('0x8e')){return null;}var _0xfa67=_[_0x9a5d('0x41')](_0x2f8a34,{'name':_0x2f8a34[_0x9a5d('0x8f')]||_0x2f8a34[_0x9a5d('0x2a')]||_0x3b3843[_0x9a5d('0x2a')],'basename':_0x4a9e0b,'savename':util[_0x9a5d('0x75')](_0x9a5d('0x90'),_0x2f8a34['name']||_0x3b3843['name'],require(_0x9a5d('0x91'))[_0x9a5d('0x92')](0x4),_0x2f8a34[_0x9a5d('0x8d')]||_0x9a5d('0x93')),'reportId':_0x3b3843['id'],'reportType':_0x9a5d('0x94')});return db[_0x9a5d('0x95')][_0x9a5d('0x48')](_0xfa67,{'raw':!![]});})['then'](function(_0xb7e5d3){if(_0x3b3843[_0x9a5d('0x71')]==='cdr'){_0x175ff1[_0x9a5d('0x3c')](_0x3b3843[_0x9a5d('0x71')]+_0x9a5d('0x96'),_0x2f8a34['startDate'],_0x2f8a34[_0x9a5d('0x97')]);}else{_0x175ff1[_0x9a5d('0x3c')](_0x3b3843['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2f8a34[_0x9a5d('0x98')],_0x2f8a34[_0x9a5d('0x97')]);}if(_0xb7e5d3){logger['info'](_0x9a5d('0x99'),_0x175ff1[_0x9a5d('0x84')]());require(_0x9a5d('0x9a'))['fork'](path[_0x9a5d('0x54')](__dirname,_0x9a5d('0x9b'),_0xb7e5d3[_0x9a5d('0x8d')]),[_0xb7e5d3['id'],_0x175ff1['toString'](),path[_0x9a5d('0x54')](__dirname,_0x9a5d('0x9c'),_0xb7e5d3[_0x9a5d('0x9d')]),_0x4a9e0b]);return _0xb7e5d3;}else{var _0x7a92a0=squel[_0x9a5d('0x70')]();_0x7a92a0[_0x9a5d('0x8b')]('('+_0x175ff1[_0x9a5d('0x84')]()+')',_0x9a5d('0x9e'));_0x7a92a0[_0x9a5d('0x68')](_0x9a5d('0x9f'),_0x9a5d('0x1f'));_0x175ff1[_0x9a5d('0x1e')](_0x2f8a34[_0x9a5d('0x1e')]||_0x23a818);_0x175ff1[_0x9a5d('0x1c')](_0x2f8a34['offset']||0x0);return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x7a92a0[_0x9a5d('0x84')](),{'type':dbH[_0x9a5d('0x85')][_0x9a5d('0x86')]['SELECT']})['then'](function(_0x1d77a9){if(!_0x1d77a9[_0x9a5d('0x37')]){_0x2b601c=0x0;}else{_0x2b601c=_0x1d77a9[0x0]['count']||0x0;}return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x175ff1[_0x9a5d('0x84')](),{'type':dbH['sequelize'][_0x9a5d('0x86')][_0x9a5d('0x87')]});})['then'](function(_0x44e60b){return{'rows':_0x44e60b||[],'count':_0x2b601c};});}});}exports[_0x9a5d('0xa0')]=function(_0xa9a451,_0x38ce4b){return runReport(_0xa9a451[_0x9a5d('0x52')],_0xa9a451['query'],_0xa9a451[_0x9a5d('0x47')])[_0x9a5d('0x23')](respondWithResult(_0x38ce4b,null))['catch'](handleError(_0x38ce4b,null));};exports[_0x9a5d('0xa1')]=runReport;exports[_0x9a5d('0x32')]=function(_0x3726e3,_0x2259b8){var _0x4f8f07=0xa;var _0x33617a=[_0x9a5d('0x54'),_0x9a5d('0x55'),_0x9a5d('0x56'),_0x9a5d('0x57')];var _0x5819ea={'SUM':_0x9a5d('0x88'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x9a5d('0x59'),'MAX':_0x9a5d('0x5a'),'MIN':'MIN(%s)','AVG':_0x9a5d('0xa2'),'GROUP_CONCAT':_0x9a5d('0x5b'),'GROUP_CONCAT ASC':_0x9a5d('0x5c'),'GROUP_CONCAT DESC':_0x9a5d('0xa3')};var _0x162bd1={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x9a5d('0x5f'),'ROUND':_0x9a5d('0xa4'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x4cc793=function(_0xf3819f){return!_['includes']([_0x9a5d('0x61'),'IS\x20NOT\x20NULL',_0x9a5d('0x63'),_0x9a5d('0x64')],_0xf3819f);};var _0x318ac0=function(_0x455f1b){if(!_0x455f1b||!_0x455f1b['rules']['length']){return'';}for(var _0x1eba28='(',_0x28f290=0x0;_0x28f290<_0x455f1b['rules'][_0x9a5d('0x37')];_0x28f290+=0x1){_0x28f290>0x0&&(_0x1eba28+='\x20'+_0x455f1b['operator']+'\x20');_0x1eba28+=_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x67')]?_0x318ac0(_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x67')]):_0x455f1b[_0x9a5d('0x65')][_0x28f290]['field']+'\x20'+_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x69')]+(_0x4cc793(_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x69')])?'\x20'+_0x455f1b[_0x9a5d('0x65')][_0x28f290]['value']:'');}return _0x1eba28+')';};var _0xd4375c={'where':{'id':_0x3726e3[_0x9a5d('0x52')]['id']}},_0x236e65,_0x3b33ed,_0x399d74,_0x55992f,_0x5b7da5;_0xd4375c=_[_0x9a5d('0x41')]({},_0xd4375c,_0x3726e3[_0x9a5d('0x47')]);return db[_0x9a5d('0x2d')]['find'](_0xd4375c)['then'](function(_0x3e4a74){if(_0x3e4a74){_0x236e65=_0x3e4a74;return _0x3e4a74['getFields']();}return null;})[_0x9a5d('0x23')](function(_0x25dbad){if(_0x25dbad){if(!_0x25dbad['length']){throw new db[(_0x9a5d('0x6b'))][(_0x9a5d('0x6c'))](_0x9a5d('0x6d'),0x193);}_0x3b33ed=_0x25dbad;return db[_0x9a5d('0xa5')][_0x9a5d('0x6e')]({'raw':!![]});}return null;})[_0x9a5d('0x23')](function(_0x2bbcdf){if(_0x2bbcdf){_0x399d74=_['keyBy'](_0x2bbcdf,'id');var _0x42a71b;var _0x2e8c4a=squel[_0x9a5d('0x70')]();_0x2e8c4a[_0x9a5d('0x8b')](_0x236e65[_0x9a5d('0x71')]);for(var _0x5d1f4e=0x0;_0x5d1f4e<_0x3b33ed[_0x9a5d('0x37')];_0x5d1f4e+=0x1){_0x42a71b=_0x3b33ed[_0x5d1f4e][_0x9a5d('0x72')]?_0x399d74[_0x3b33ed[_0x5d1f4e]['MetricId']][_0x9a5d('0x73')]:_0x3b33ed[_0x5d1f4e][_0x9a5d('0x68')];_0x42a71b=_0x3b33ed[_0x5d1f4e][_0x9a5d('0x74')]?_[_0x9a5d('0x76')](_0x5819ea[_0x3b33ed[_0x5d1f4e][_0x9a5d('0x74')]],'%s',_0x42a71b):_0x42a71b;_0x42a71b=_0x3b33ed[_0x5d1f4e][_0x9a5d('0x75')]?_[_0x9a5d('0x76')](_0x162bd1[_0x3b33ed[_0x5d1f4e][_0x9a5d('0x75')]],'%s',_0x42a71b):_0x42a71b;if(_0x3b33ed[_0x5d1f4e][_0x9a5d('0x77')]){_0x2e8c4a[_0x9a5d('0x67')](_0x42a71b);}_0x3b33ed[_0x5d1f4e][_0x9a5d('0x78')]&&_0x2e8c4a['order'](_0x42a71b,_0x3b33ed[_0x5d1f4e][_0x9a5d('0x78')]==='DESC'?![]:!![]);_0x2e8c4a[_0x9a5d('0x68')](_0x42a71b,_0x3b33ed[_0x5d1f4e][_0x9a5d('0x79')]||_0x42a71b);}if(_0x236e65[_0x9a5d('0x7a')]){_0x236e65[_0x9a5d('0x7a')]=JSON['parse'](_0x236e65[_0x9a5d('0x7a')]);for(var _0x493931=0x0;_0x493931<_0x236e65[_0x9a5d('0x7a')][_0x9a5d('0x37')];_0x493931+=0x1){if(_0x236e65['joins'][_0x493931][_0x9a5d('0x3f')]&&_['includes'](_0x33617a,_0x236e65['joins'][_0x493931]['type'])&&_0x236e65[_0x9a5d('0x7a')][_0x493931]['parentKey']&&_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7c')]&&_0x236e65[_0x9a5d('0x7a')][_0x493931]['foreignKey']){_0x2e8c4a[_0x236e65[_0x9a5d('0x7a')][_0x493931]['type']](_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7c')],null,util['format'](_0x9a5d('0x7e'),_0x236e65[_0x9a5d('0x71')],_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7b')],_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7c')],_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7d')]));}}}if(_0x236e65[_0x9a5d('0x7f')]){_0x236e65['conditions']=JSON[_0x9a5d('0x80')](_0x236e65[_0x9a5d('0x7f')]);_0x2e8c4a[_0x9a5d('0x3c')](_0x318ac0(_0x236e65['conditions']['group']));}_0x5b7da5=_0x2e8c4a[_0x9a5d('0x81')]();_0x2e8c4a['limit'](_0x4f8f07);_0x2e8c4a['offset'](0x0);logger['debug'](_0x9a5d('0x83'),_0x2e8c4a[_0x9a5d('0x84')]());return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x2e8c4a[_0x9a5d('0x84')](),{'type':dbH[_0x9a5d('0x85')][_0x9a5d('0x86')][_0x9a5d('0x87')]});}})['then'](function(){return{'sql':_0x5b7da5['toString']()};})[_0x9a5d('0x23')](respondWithResult(_0x2259b8,null))[_0x9a5d('0x45')](handleError(_0x2259b8,null));};
\ No newline at end of file
+var _0x84dd=['apply','save','update','then','destroy','get','CustomReports','UserProfileResource','end','stack','name','send','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','query','keys','filters','attributes','intersection','length','model','nolimit','order','sort','pick','filter','VIRTUAL','merge','options','where','findAll','rows','catch','params','fields','includeAll','include','create','body','role','user','Reports','UserProfileSection','find','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','HOUR(%s)','ROUND(%s)','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','value','Sequelize','ValidationErrorItem','AnalyticMetric','keyBy','select','table','MetricId','metric','function','format','groupBy','orderBy','DESC','alias','joins','parse','includes','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','join','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20EMPTY','getFields','replace','output','web','%s-%s.%s','randomstring','generate','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','info','fork','../../components/export/','../../files/reports','COUNT(*)','run','runReport','DATE(%s)','Please\x20insert\x20at\x20least\x20one\x20field','from','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util','path','sox','fs-extra','crypto','to-csv','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json'];(function(_0x141b71,_0x2990ea){var _0x2b5c3d=function(_0x346377){while(--_0x346377){_0x141b71['push'](_0x141b71['shift']());}};_0x2b5c3d(++_0x2990ea);}(_0x84dd,0x1bc));var _0xd84d=function(_0x2b30dd,_0x2fef30){_0x2b30dd=_0x2b30dd-0x0;var _0x55504e=_0x84dd[_0x2b30dd];return _0x55504e;};'use strict';var emlformat=require(_0xd84d('0x0'));var rimraf=require(_0xd84d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd84d('0x2'));var rp=require(_0xd84d('0x3'));var moment=require('moment');var BPromise=require(_0xd84d('0x4'));var Mustache=require('mustache');var util=require(_0xd84d('0x5'));var path=require(_0xd84d('0x6'));var sox=require(_0xd84d('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd84d('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xd84d('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xd84d('0xa'));var querystring=require(_0xd84d('0xb'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xd84d('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd84d('0xd'))(_0xd84d('0xe'));var utils=require(_0xd84d('0xf'));var config=require(_0xd84d('0x10'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require(_0xd84d('0x11'))['dbH'];function respondWithStatusCode(_0x8b734f,_0x3287fd){_0x3287fd=_0x3287fd||0xcc;return function(_0x2e35ba){if(_0x2e35ba){return _0x8b734f[_0xd84d('0x12')](_0x3287fd);}return _0x8b734f[_0xd84d('0x13')](_0x3287fd)['end']();};}function respondWithResult(_0x7511ac,_0x4601d1){_0x4601d1=_0x4601d1||0xc8;return function(_0x43ff15){if(_0x43ff15){return _0x7511ac[_0xd84d('0x13')](_0x4601d1)['json'](_0x43ff15);}};}function respondWithFilteredResult(_0x555ff1,_0x521384){return function(_0x5dfcb5){if(_0x5dfcb5){var _0x4b1041=typeof _0x521384[_0xd84d('0x14')]===_0xd84d('0x15')&&typeof _0x521384[_0xd84d('0x16')]===_0xd84d('0x15');var _0x12bea7=_0x5dfcb5['count'];var _0x19c629=_0x4b1041?0x0:_0x521384[_0xd84d('0x14')];var _0x574139=_0x4b1041?_0x5dfcb5[_0xd84d('0x17')]:_0x521384[_0xd84d('0x14')]+_0x521384[_0xd84d('0x16')];var _0x5cba14;if(_0x574139>=_0x12bea7){_0x574139=_0x12bea7;_0x5cba14=0xc8;}else{_0x5cba14=0xce;}_0x555ff1[_0xd84d('0x13')](_0x5cba14);return _0x555ff1[_0xd84d('0x18')](_0xd84d('0x19'),_0x19c629+'-'+_0x574139+'/'+_0x12bea7)[_0xd84d('0x1a')](_0x5dfcb5);}return null;};}function patchUpdates(_0x1a3242){return function(_0x2fb987){try{jsonpatch[_0xd84d('0x1b')](_0x2fb987,_0x1a3242,!![]);}catch(_0x28a33d){return BPromise['reject'](_0x28a33d);}return _0x2fb987[_0xd84d('0x1c')]();};}function saveUpdates(_0x3a8113,_0x57f6f9){return function(_0x1ca5a4){if(_0x1ca5a4){return _0x1ca5a4[_0xd84d('0x1d')](_0x3a8113)[_0xd84d('0x1e')](function(_0x3cf73a){return _0x3cf73a;});}return null;};}function removeEntity(_0x43ffbc,_0x17252e){return function(_0x5d980e){if(_0x5d980e){return _0x5d980e[_0xd84d('0x1f')]()[_0xd84d('0x1e')](function(){var _0x4978e6=_0x5d980e[_0xd84d('0x20')]({'plain':!![]});var _0x190a08=_0xd84d('0x21');return db[_0xd84d('0x22')]['destroy']({'where':{'type':_0x190a08,'resourceId':_0x4978e6['id']}})['then'](function(){return _0x5d980e;});})[_0xd84d('0x1e')](function(){_0x43ffbc['status'](0xcc)[_0xd84d('0x23')]();});}};}function handleEntityNotFound(_0x594612,_0x5877cd){return function(_0x5e375a){if(!_0x5e375a){_0x594612[_0xd84d('0x12')](0x194);}return _0x5e375a;};}function handleError(_0x5811d4,_0x44487f){_0x44487f=_0x44487f||0x1f4;return function(_0x4361e8){logger['error'](_0x4361e8[_0xd84d('0x24')]);if(_0x4361e8[_0xd84d('0x25')]){delete _0x4361e8[_0xd84d('0x25')];}_0x5811d4['status'](_0x44487f)[_0xd84d('0x26')](_0x4361e8);};}exports['index']=function(_0x3e3328,_0x3079a3){var _0x2c1fea={},_0x364b7f={},_0x169a64={'count':0x0,'rows':[]};var _0x336f80=_[_0xd84d('0x27')](db[_0xd84d('0x28')][_0xd84d('0x29')],function(_0x74e2b8){return{'name':_0x74e2b8[_0xd84d('0x2a')],'type':_0x74e2b8[_0xd84d('0x2b')][_0xd84d('0x2c')]};});_0x364b7f['model']=_[_0xd84d('0x27')](_0x336f80,_0xd84d('0x25'));_0x364b7f[_0xd84d('0x2d')]=_[_0xd84d('0x2e')](_0x3e3328[_0xd84d('0x2d')]);_0x364b7f[_0xd84d('0x2f')]=_['intersection'](_0x364b7f['model'],_0x364b7f[_0xd84d('0x2d')]);_0x2c1fea[_0xd84d('0x30')]=_[_0xd84d('0x31')](_0x364b7f['model'],qs['fields'](_0x3e3328[_0xd84d('0x2d')]['fields']));_0x2c1fea[_0xd84d('0x30')]=_0x2c1fea[_0xd84d('0x30')][_0xd84d('0x32')]?_0x2c1fea[_0xd84d('0x30')]:_0x364b7f[_0xd84d('0x33')];if(!_0x3e3328[_0xd84d('0x2d')]['hasOwnProperty'](_0xd84d('0x34'))){_0x2c1fea['limit']=qs[_0xd84d('0x16')](_0x3e3328[_0xd84d('0x2d')][_0xd84d('0x16')]);_0x2c1fea[_0xd84d('0x14')]=qs[_0xd84d('0x14')](_0x3e3328[_0xd84d('0x2d')]['offset']);}_0x2c1fea[_0xd84d('0x35')]=qs[_0xd84d('0x36')](_0x3e3328[_0xd84d('0x2d')][_0xd84d('0x36')]);_0x2c1fea['where']=qs[_0xd84d('0x2f')](_[_0xd84d('0x37')](_0x3e3328[_0xd84d('0x2d')],_0x364b7f[_0xd84d('0x2f')]),_0x336f80);if(_0x3e3328[_0xd84d('0x2d')][_0xd84d('0x38')]){_0x2c1fea['where']=_['merge'](_0x2c1fea['where'],{'$or':_[_0xd84d('0x27')](_0x336f80,function(_0x1a661a){if(_0x1a661a[_0xd84d('0x2b')]!==_0xd84d('0x39')){var _0x55c717={};_0x55c717[_0x1a661a[_0xd84d('0x25')]]={'$like':'%'+_0x3e3328[_0xd84d('0x2d')][_0xd84d('0x38')]+'%'};return _0x55c717;}})});}_0x2c1fea=_[_0xd84d('0x3a')]({},_0x2c1fea,_0x3e3328[_0xd84d('0x3b')]);var _0x5e224b={'where':_0x2c1fea[_0xd84d('0x3c')]};return db[_0xd84d('0x28')][_0xd84d('0x17')](_0x5e224b)[_0xd84d('0x1e')](function(_0x1b2407){_0x169a64[_0xd84d('0x17')]=_0x1b2407;if(_0x3e3328[_0xd84d('0x2d')]['includeAll']){_0x2c1fea['include']=[{'all':!![]}];}return db[_0xd84d('0x28')][_0xd84d('0x3d')](_0x2c1fea);})['then'](function(_0x4e7b55){_0x169a64[_0xd84d('0x3e')]=_0x4e7b55;return _0x169a64;})[_0xd84d('0x1e')](respondWithFilteredResult(_0x3079a3,_0x2c1fea))[_0xd84d('0x3f')](handleError(_0x3079a3,null));};exports['show']=function(_0x23c911,_0x27bebd){var _0xf2735c={'raw':![],'where':{'id':_0x23c911[_0xd84d('0x40')]['id']}},_0x2d6ef3={};_0x2d6ef3['model']=_[_0xd84d('0x2e')](db[_0xd84d('0x28')]['rawAttributes']);_0x2d6ef3[_0xd84d('0x2d')]=_[_0xd84d('0x2e')](_0x23c911[_0xd84d('0x2d')]);_0x2d6ef3[_0xd84d('0x2f')]=_[_0xd84d('0x31')](_0x2d6ef3[_0xd84d('0x33')],_0x2d6ef3['query']);_0xf2735c[_0xd84d('0x30')]=_['intersection'](_0x2d6ef3[_0xd84d('0x33')],qs['fields'](_0x23c911['query'][_0xd84d('0x41')]));_0xf2735c[_0xd84d('0x30')]=_0xf2735c[_0xd84d('0x30')][_0xd84d('0x32')]?_0xf2735c[_0xd84d('0x30')]:_0x2d6ef3[_0xd84d('0x33')];if(_0x23c911[_0xd84d('0x2d')][_0xd84d('0x42')]){_0xf2735c[_0xd84d('0x43')]=[{'all':!![]}];}_0xf2735c=_['merge']({},_0xf2735c,_0x23c911[_0xd84d('0x3b')]);return db[_0xd84d('0x28')]['find'](_0xf2735c)[_0xd84d('0x1e')](handleEntityNotFound(_0x27bebd,null))[_0xd84d('0x1e')](respondWithResult(_0x27bebd,null))[_0xd84d('0x3f')](handleError(_0x27bebd,null));};exports['create']=function(_0x299a9e,_0x3a2e0d){return db[_0xd84d('0x28')][_0xd84d('0x44')](_0x299a9e[_0xd84d('0x45')],{})[_0xd84d('0x1e')](function(_0x10e904){var _0xd7cce8=_0x299a9e['user']['get']({'plain':!![]});if(!_0xd7cce8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xd7cce8[_0xd84d('0x46')]===_0xd84d('0x47')){var _0x38b3c6=_0x10e904[_0xd84d('0x20')]({'plain':!![]});var _0x452285=_0xd84d('0x48');return db[_0xd84d('0x49')][_0xd84d('0x4a')]({'where':{'name':_0x452285,'userProfileId':_0xd7cce8['userProfileId']},'raw':!![]})[_0xd84d('0x1e')](function(_0x661420){if(_0x661420&&_0x661420[_0xd84d('0x4b')]===0x0){return db[_0xd84d('0x22')][_0xd84d('0x44')]({'name':_0x38b3c6['name'],'resourceId':_0x38b3c6['id'],'type':_0xd84d('0x21'),'sectionId':_0x661420['id']},{})[_0xd84d('0x1e')](function(){return _0x10e904;});}else{return _0x10e904;}})[_0xd84d('0x3f')](function(_0xb5f0a6){logger[_0xd84d('0x4c')](_0xd84d('0x4d'),_0xb5f0a6);throw _0xb5f0a6;});}return _0x10e904;})['then'](respondWithResult(_0x3a2e0d,0xc9))[_0xd84d('0x3f')](handleError(_0x3a2e0d,null));};exports[_0xd84d('0x1d')]=function(_0x22ec12,_0x3787d2){if(_0x22ec12[_0xd84d('0x45')]['id']){delete _0x22ec12[_0xd84d('0x45')]['id'];}return db['AnalyticCustomReport'][_0xd84d('0x4a')]({'where':{'id':_0x22ec12[_0xd84d('0x40')]['id']}})['then'](handleEntityNotFound(_0x3787d2,null))[_0xd84d('0x1e')](saveUpdates(_0x22ec12[_0xd84d('0x45')],null))[_0xd84d('0x1e')](respondWithResult(_0x3787d2,null))[_0xd84d('0x3f')](handleError(_0x3787d2,null));};exports[_0xd84d('0x1f')]=function(_0x5051f8,_0x21720d){return db[_0xd84d('0x28')][_0xd84d('0x4a')]({'where':{'id':_0x5051f8[_0xd84d('0x40')]['id']}})[_0xd84d('0x1e')](handleEntityNotFound(_0x21720d,null))[_0xd84d('0x1e')](removeEntity(_0x21720d,null))[_0xd84d('0x3f')](handleError(_0x21720d,null));};exports[_0xd84d('0x4e')]=function(_0xa53491,_0xbf9ae6){var _0x380e60=0xa;var _0x3616fa=['join',_0xd84d('0x4f'),_0xd84d('0x50'),_0xd84d('0x51')];var _0x2831f6={'SUM':_0xd84d('0x52'),'COUNT':_0xd84d('0x53'),'COUNT DISTINCT':_0xd84d('0x54'),'MAX':'MAX(%s)','MIN':_0xd84d('0x55'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xd84d('0x56'),'GROUP_CONCAT ASC':_0xd84d('0x57'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2d7705={'SEC_TO_TIME':_0xd84d('0x58'),'DATE':'DATE(%s)','HOUR':_0xd84d('0x59'),'ROUND':_0xd84d('0x5a'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x9038a3=function(_0x510f13){return!_['includes'](['IS\x20NULL',_0xd84d('0x5b'),_0xd84d('0x5c'),'IS\x20NOT\x20EMPTY'],_0x510f13);};var _0x4435d3=function(_0x294602){if(!_0x294602||!_0x294602[_0xd84d('0x5d')][_0xd84d('0x32')]){return'';}for(var _0x447f85='(',_0x3f0a5a=0x0;_0x3f0a5a<_0x294602['rules'][_0xd84d('0x32')];_0x3f0a5a+=0x1){_0x3f0a5a>0x0&&(_0x447f85+='\x20'+_0x294602[_0xd84d('0x5e')]+'\x20');_0x447f85+=_0x294602['rules'][_0x3f0a5a][_0xd84d('0x5f')]?_0x4435d3(_0x294602['rules'][_0x3f0a5a]['group']):_0x294602[_0xd84d('0x5d')][_0x3f0a5a][_0xd84d('0x60')]+'\x20'+_0x294602[_0xd84d('0x5d')][_0x3f0a5a][_0xd84d('0x61')]+(_0x9038a3(_0x294602['rules'][_0x3f0a5a][_0xd84d('0x61')])?'\x20'+_0x294602[_0xd84d('0x5d')][_0x3f0a5a][_0xd84d('0x62')]:'');}return _0x447f85+')';};var _0x38e9f6={'where':{'id':_0xa53491['params']['id']}},_0x4c0da6,_0x390046,_0x2762f2,_0x421df5,_0x2ed66f;_0x38e9f6=_['merge']({},_0x38e9f6,_0xa53491[_0xd84d('0x3b')]);return db[_0xd84d('0x28')][_0xd84d('0x4a')](_0x38e9f6)[_0xd84d('0x1e')](function(_0x371945){if(_0x371945){_0x4c0da6=_0x371945;return _0x371945['getFields']();}return null;})[_0xd84d('0x1e')](function(_0x31063b){if(_0x31063b){if(!_0x31063b[_0xd84d('0x32')]){throw new db[(_0xd84d('0x63'))][(_0xd84d('0x64'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x390046=_0x31063b;return db[_0xd84d('0x65')]['findAll']({'raw':!![]});}return null;})[_0xd84d('0x1e')](function(_0x44c171){if(_0x44c171){_0x2762f2=_[_0xd84d('0x66')](_0x44c171,'id');var _0x5f4004;var _0x23e589=squel[_0xd84d('0x67')]();_0x23e589['from'](_0x4c0da6[_0xd84d('0x68')]);for(var _0x241a03=0x0;_0x241a03<_0x390046[_0xd84d('0x32')];_0x241a03+=0x1){_0x5f4004=_0x390046[_0x241a03]['MetricId']?_0x2762f2[_0x390046[_0x241a03][_0xd84d('0x69')]][_0xd84d('0x6a')]:_0x390046[_0x241a03][_0xd84d('0x60')];_0x5f4004=_0x390046[_0x241a03]['function']?_['replace'](_0x2831f6[_0x390046[_0x241a03][_0xd84d('0x6b')]],'%s',_0x5f4004):_0x5f4004;_0x5f4004=_0x390046[_0x241a03][_0xd84d('0x6c')]?_['replace'](_0x2d7705[_0x390046[_0x241a03][_0xd84d('0x6c')]],'%s',_0x5f4004):_0x5f4004;if(_0x390046[_0x241a03][_0xd84d('0x6d')]){_0x23e589[_0xd84d('0x5f')](_0x5f4004);}_0x390046[_0x241a03][_0xd84d('0x6e')]&&_0x23e589[_0xd84d('0x35')](_0x5f4004,_0x390046[_0x241a03]['orderBy']===_0xd84d('0x6f')?![]:!![]);_0x23e589[_0xd84d('0x60')](_0x5f4004,_0x390046[_0x241a03][_0xd84d('0x70')]||_0x5f4004);}if(_0x4c0da6[_0xd84d('0x71')]){_0x4c0da6['joins']=JSON[_0xd84d('0x72')](_0x4c0da6['joins']);for(var _0x54bb54=0x0;_0x54bb54<_0x4c0da6[_0xd84d('0x71')][_0xd84d('0x32')];_0x54bb54+=0x1){if(_0x4c0da6[_0xd84d('0x71')][_0x54bb54][_0xd84d('0x2b')]&&_[_0xd84d('0x73')](_0x3616fa,_0x4c0da6[_0xd84d('0x71')][_0x54bb54]['type'])&&_0x4c0da6[_0xd84d('0x71')][_0x54bb54][_0xd84d('0x74')]&&_0x4c0da6[_0xd84d('0x71')][_0x54bb54][_0xd84d('0x75')]&&_0x4c0da6[_0xd84d('0x71')][_0x54bb54][_0xd84d('0x76')]){_0x23e589[_0x4c0da6['joins'][_0x54bb54][_0xd84d('0x2b')]](_0x4c0da6['joins'][_0x54bb54][_0xd84d('0x75')],null,util[_0xd84d('0x6c')](_0xd84d('0x77'),_0x4c0da6[_0xd84d('0x68')],_0x4c0da6[_0xd84d('0x71')][_0x54bb54][_0xd84d('0x74')],_0x4c0da6[_0xd84d('0x71')][_0x54bb54][_0xd84d('0x75')],_0x4c0da6[_0xd84d('0x71')][_0x54bb54]['foreignKey']));}}}if(_0x4c0da6[_0xd84d('0x78')]){_0x4c0da6[_0xd84d('0x78')]=JSON[_0xd84d('0x72')](_0x4c0da6['conditions']);_0x23e589[_0xd84d('0x3c')](_0x4435d3(_0x4c0da6[_0xd84d('0x78')][_0xd84d('0x5f')]));}_0x2ed66f=_0x23e589[_0xd84d('0x79')]();_0x23e589['limit'](_0x380e60);_0x23e589['offset'](0x0);logger[_0xd84d('0x7a')](_0xd84d('0x7b'),_0x23e589['toString']());return dbH[_0xd84d('0x7c')]['query'](_0x23e589[_0xd84d('0x7d')](),{'type':dbH[_0xd84d('0x7c')][_0xd84d('0x7e')][_0xd84d('0x7f')]});}})['then'](respondWithResult(_0xbf9ae6,null))[_0xd84d('0x3f')](handleError(_0xbf9ae6,null));};function runReport(_0x41fd5a,_0x46591d,_0x1e2cf8){var _0x1eebbe=_0x46591d[_0xd84d('0x25')];var _0x20d2aa=0xa;var _0x565ceb=[_0xd84d('0x80'),_0xd84d('0x4f'),_0xd84d('0x50'),_0xd84d('0x51')];var _0x2a9b80={'SUM':_0xd84d('0x52'),'COUNT':_0xd84d('0x53'),'COUNT DISTINCT':_0xd84d('0x54'),'MAX':_0xd84d('0x81'),'MIN':_0xd84d('0x55'),'AVG':_0xd84d('0x82'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xd84d('0x57'),'GROUP_CONCAT DESC':_0xd84d('0x83')};var _0x124e1a={'SEC_TO_TIME':_0xd84d('0x58'),'DATE':'DATE(%s)','HOUR':_0xd84d('0x59'),'ROUND':_0xd84d('0x5a'),'UNIX_TIMESTAMP':_0xd84d('0x84')};var _0x182d3c=function(_0x544193){return!_[_0xd84d('0x73')]([_0xd84d('0x85'),_0xd84d('0x5b'),_0xd84d('0x5c'),_0xd84d('0x86')],_0x544193);};var _0x18fb8c=function(_0x2ba00d){if(!_0x2ba00d||!_0x2ba00d[_0xd84d('0x5d')]['length']){return'';}for(var _0x44ecd5='(',_0x299c3b=0x0;_0x299c3b<_0x2ba00d[_0xd84d('0x5d')][_0xd84d('0x32')];_0x299c3b+=0x1){_0x299c3b>0x0&&(_0x44ecd5+='\x20'+_0x2ba00d[_0xd84d('0x5e')]+'\x20');_0x44ecd5+=_0x2ba00d[_0xd84d('0x5d')][_0x299c3b]['group']?_0x18fb8c(_0x2ba00d[_0xd84d('0x5d')][_0x299c3b]['group']):_0x2ba00d['rules'][_0x299c3b][_0xd84d('0x60')]+'\x20'+_0x2ba00d[_0xd84d('0x5d')][_0x299c3b][_0xd84d('0x61')]+(_0x182d3c(_0x2ba00d['rules'][_0x299c3b][_0xd84d('0x61')])?'\x20'+_0x2ba00d['rules'][_0x299c3b][_0xd84d('0x62')]:'');}return _0x44ecd5+')';};var _0x260c47={'where':{'id':_0x41fd5a['id']}},_0x4cad81,_0xb9ec8,_0x264ee1,_0x188dd7,_0xc1601e;_0x260c47=_[_0xd84d('0x3a')]({},_0x260c47,_0x1e2cf8);return db[_0xd84d('0x28')][_0xd84d('0x4a')](_0x260c47)[_0xd84d('0x1e')](function(_0x355ef9){if(_0x355ef9){_0x4cad81=_0x355ef9;return _0x355ef9[_0xd84d('0x87')]();}return null;})[_0xd84d('0x1e')](function(_0x162f18){if(_0x162f18){if(!_0x162f18['length']){throw new db[(_0xd84d('0x63'))][(_0xd84d('0x64'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0xb9ec8=_0x162f18;return db[_0xd84d('0x65')][_0xd84d('0x3d')]({'raw':!![]});}return null;})['then'](function(_0x3da2e7){if(_0x3da2e7){_0x264ee1=_[_0xd84d('0x66')](_0x3da2e7,'id');var _0x304018;var _0x550890=squel[_0xd84d('0x67')]();_0x550890['from'](_0x4cad81[_0xd84d('0x68')]);for(var _0x255024=0x0;_0x255024<_0xb9ec8[_0xd84d('0x32')];_0x255024+=0x1){_0x304018=_0xb9ec8[_0x255024][_0xd84d('0x69')]?_0x264ee1[_0xb9ec8[_0x255024][_0xd84d('0x69')]][_0xd84d('0x6a')]:_0xb9ec8[_0x255024][_0xd84d('0x60')];_0x304018=_0xb9ec8[_0x255024]['function']?_[_0xd84d('0x88')](_0x2a9b80[_0xb9ec8[_0x255024]['function']],'%s',_0x304018):_0x304018;_0x304018=_0xb9ec8[_0x255024][_0xd84d('0x6c')]?_[_0xd84d('0x88')](_0x124e1a[_0xb9ec8[_0x255024][_0xd84d('0x6c')]],'%s',_0x304018):_0x304018;if(_0xb9ec8[_0x255024][_0xd84d('0x6d')]){_0x550890[_0xd84d('0x5f')](_0x304018);}_0xb9ec8[_0x255024][_0xd84d('0x6e')]&&_0x550890['order'](_0x304018,_0xb9ec8[_0x255024]['orderBy']==='DESC'?![]:!![]);_0x550890['field'](_0x304018,_0xb9ec8[_0x255024][_0xd84d('0x70')]||_0x304018);}if(_0x4cad81['joins']){_0x4cad81['joins']=JSON[_0xd84d('0x72')](_0x4cad81[_0xd84d('0x71')]);for(var _0x2eb732=0x0;_0x2eb732<_0x4cad81[_0xd84d('0x71')]['length'];_0x2eb732+=0x1){if(_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x2b')]&&_[_0xd84d('0x73')](_0x565ceb,_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x2b')])&&_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x74')]&&_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x75')]&&_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x76')]){_0x550890[_0x4cad81['joins'][_0x2eb732]['type']](_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x75')],null,util[_0xd84d('0x6c')](_0xd84d('0x77'),_0x4cad81[_0xd84d('0x68')],_0x4cad81[_0xd84d('0x71')][_0x2eb732]['parentKey'],_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x75')],_0x4cad81[_0xd84d('0x71')][_0x2eb732][_0xd84d('0x76')]));}}}if(_0x4cad81[_0xd84d('0x78')]){_0x4cad81[_0xd84d('0x78')]=JSON[_0xd84d('0x72')](_0x4cad81[_0xd84d('0x78')]);_0x550890[_0xd84d('0x3c')](_0x18fb8c(_0x4cad81[_0xd84d('0x78')][_0xd84d('0x5f')]));}_0xc1601e=_0x550890[_0xd84d('0x79')]();_0x550890[_0xd84d('0x16')](_0x20d2aa);_0x550890[_0xd84d('0x14')](0x0);return;}})[_0xd84d('0x1e')](function(){if(_0x46591d[_0xd84d('0x89')]===_0xd84d('0x8a')){return null;}var _0x14a876=_[_0xd84d('0x3a')](_0x46591d,{'name':_0x46591d['fullPath']||_0x46591d[_0xd84d('0x25')]||_0x4cad81[_0xd84d('0x25')],'basename':_0x1eebbe,'savename':util['format'](_0xd84d('0x8b'),_0x46591d[_0xd84d('0x25')]||_0x4cad81[_0xd84d('0x25')],require(_0xd84d('0x8c'))[_0xd84d('0x8d')](0x4),_0x46591d[_0xd84d('0x89')]||'csv'),'reportId':_0x4cad81['id'],'reportType':_0xd84d('0x8e')});return db['AnalyticExtractedReport']['create'](_0x14a876,{'raw':!![]});})[_0xd84d('0x1e')](function(_0x11443c){if(_0x4cad81[_0xd84d('0x68')]===_0xd84d('0x8f')){_0xc1601e['where'](_0x4cad81['table']+_0xd84d('0x90'),_0x46591d['startDate'],_0x46591d[_0xd84d('0x91')]);}else{_0xc1601e[_0xd84d('0x3c')](_0x4cad81[_0xd84d('0x68')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x46591d[_0xd84d('0x92')],_0x46591d[_0xd84d('0x91')]);}if(_0x11443c){logger[_0xd84d('0x93')]('Run\x20Query:',_0xc1601e['toString']());require('child_process')[_0xd84d('0x94')](path['join'](__dirname,_0xd84d('0x95'),_0x11443c[_0xd84d('0x89')]),[_0x11443c['id'],_0xc1601e[_0xd84d('0x7d')](),path['join'](__dirname,_0xd84d('0x96'),_0x11443c['savename']),_0x1eebbe]);return _0x11443c;}else{var _0x2fd58e=squel[_0xd84d('0x67')]();_0x2fd58e['from']('('+_0xc1601e[_0xd84d('0x7d')]()+')','countTable');_0x2fd58e[_0xd84d('0x60')](_0xd84d('0x97'),_0xd84d('0x17'));_0xc1601e[_0xd84d('0x16')](_0x46591d[_0xd84d('0x16')]||_0x20d2aa);_0xc1601e[_0xd84d('0x14')](_0x46591d[_0xd84d('0x14')]||0x0);return dbH['sequelize'][_0xd84d('0x2d')](_0x2fd58e[_0xd84d('0x7d')](),{'type':dbH['sequelize'][_0xd84d('0x7e')][_0xd84d('0x7f')]})[_0xd84d('0x1e')](function(_0x51c251){if(!_0x51c251[_0xd84d('0x32')]){_0x188dd7=0x0;}else{_0x188dd7=_0x51c251[0x0][_0xd84d('0x17')]||0x0;}return dbH['sequelize'][_0xd84d('0x2d')](_0xc1601e[_0xd84d('0x7d')](),{'type':dbH[_0xd84d('0x7c')]['QueryTypes']['SELECT']});})[_0xd84d('0x1e')](function(_0x3215b7){return{'rows':_0x3215b7||[],'count':_0x188dd7};});}});}exports[_0xd84d('0x98')]=function(_0x4ea645,_0x34ff78){return runReport(_0x4ea645['params'],_0x4ea645[_0xd84d('0x2d')],_0x4ea645['options'])[_0xd84d('0x1e')](respondWithResult(_0x34ff78,null))[_0xd84d('0x3f')](handleError(_0x34ff78,null));};exports[_0xd84d('0x99')]=runReport;exports[_0xd84d('0x2d')]=function(_0x43c480,_0x199315){var _0x3250fb=0xa;var _0xc95f9d=[_0xd84d('0x80'),_0xd84d('0x4f'),_0xd84d('0x50'),'cross_join'];var _0x5c9e4a={'SUM':'SUM(%s)','COUNT':_0xd84d('0x53'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xd84d('0x81'),'MIN':_0xd84d('0x55'),'AVG':_0xd84d('0x82'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xd84d('0x57'),'GROUP_CONCAT DESC':_0xd84d('0x83')};var _0x5a36ff={'SEC_TO_TIME':_0xd84d('0x58'),'DATE':_0xd84d('0x9a'),'HOUR':_0xd84d('0x59'),'ROUND':_0xd84d('0x5a'),'UNIX_TIMESTAMP':_0xd84d('0x84')};var _0x2977e9=function(_0x269227){return!_['includes']([_0xd84d('0x85'),_0xd84d('0x5b'),_0xd84d('0x5c'),_0xd84d('0x86')],_0x269227);};var _0xeca768=function(_0x3d1bec){if(!_0x3d1bec||!_0x3d1bec[_0xd84d('0x5d')][_0xd84d('0x32')]){return'';}for(var _0x574ac9='(',_0x362b22=0x0;_0x362b22<_0x3d1bec[_0xd84d('0x5d')][_0xd84d('0x32')];_0x362b22+=0x1){_0x362b22>0x0&&(_0x574ac9+='\x20'+_0x3d1bec[_0xd84d('0x5e')]+'\x20');_0x574ac9+=_0x3d1bec[_0xd84d('0x5d')][_0x362b22]['group']?_0xeca768(_0x3d1bec[_0xd84d('0x5d')][_0x362b22][_0xd84d('0x5f')]):_0x3d1bec[_0xd84d('0x5d')][_0x362b22][_0xd84d('0x60')]+'\x20'+_0x3d1bec[_0xd84d('0x5d')][_0x362b22][_0xd84d('0x61')]+(_0x2977e9(_0x3d1bec['rules'][_0x362b22]['condition'])?'\x20'+_0x3d1bec['rules'][_0x362b22]['value']:'');}return _0x574ac9+')';};var _0x31957e={'where':{'id':_0x43c480[_0xd84d('0x40')]['id']}},_0x382a1a,_0x5a0ba6,_0x5d4c55,_0xbbd98f,_0x191823;_0x31957e=_['merge']({},_0x31957e,_0x43c480[_0xd84d('0x3b')]);return db[_0xd84d('0x28')]['find'](_0x31957e)[_0xd84d('0x1e')](function(_0x46f225){if(_0x46f225){_0x382a1a=_0x46f225;return _0x46f225['getFields']();}return null;})[_0xd84d('0x1e')](function(_0x44c61b){if(_0x44c61b){if(!_0x44c61b[_0xd84d('0x32')]){throw new db['Sequelize'][(_0xd84d('0x64'))](_0xd84d('0x9b'),0x193);}_0x5a0ba6=_0x44c61b;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})['then'](function(_0x1fc2c4){if(_0x1fc2c4){_0x5d4c55=_[_0xd84d('0x66')](_0x1fc2c4,'id');var _0x17847d;var _0x227a3a=squel[_0xd84d('0x67')]();_0x227a3a[_0xd84d('0x9c')](_0x382a1a[_0xd84d('0x68')]);for(var _0x56b315=0x0;_0x56b315<_0x5a0ba6[_0xd84d('0x32')];_0x56b315+=0x1){_0x17847d=_0x5a0ba6[_0x56b315][_0xd84d('0x69')]?_0x5d4c55[_0x5a0ba6[_0x56b315]['MetricId']][_0xd84d('0x6a')]:_0x5a0ba6[_0x56b315][_0xd84d('0x60')];_0x17847d=_0x5a0ba6[_0x56b315][_0xd84d('0x6b')]?_[_0xd84d('0x88')](_0x5c9e4a[_0x5a0ba6[_0x56b315][_0xd84d('0x6b')]],'%s',_0x17847d):_0x17847d;_0x17847d=_0x5a0ba6[_0x56b315][_0xd84d('0x6c')]?_[_0xd84d('0x88')](_0x5a36ff[_0x5a0ba6[_0x56b315][_0xd84d('0x6c')]],'%s',_0x17847d):_0x17847d;if(_0x5a0ba6[_0x56b315][_0xd84d('0x6d')]){_0x227a3a[_0xd84d('0x5f')](_0x17847d);}_0x5a0ba6[_0x56b315][_0xd84d('0x6e')]&&_0x227a3a[_0xd84d('0x35')](_0x17847d,_0x5a0ba6[_0x56b315][_0xd84d('0x6e')]===_0xd84d('0x6f')?![]:!![]);_0x227a3a[_0xd84d('0x60')](_0x17847d,_0x5a0ba6[_0x56b315][_0xd84d('0x70')]||_0x17847d);}if(_0x382a1a[_0xd84d('0x71')]){_0x382a1a[_0xd84d('0x71')]=JSON[_0xd84d('0x72')](_0x382a1a[_0xd84d('0x71')]);for(var _0x6626=0x0;_0x6626<_0x382a1a[_0xd84d('0x71')][_0xd84d('0x32')];_0x6626+=0x1){if(_0x382a1a['joins'][_0x6626][_0xd84d('0x2b')]&&_[_0xd84d('0x73')](_0xc95f9d,_0x382a1a[_0xd84d('0x71')][_0x6626][_0xd84d('0x2b')])&&_0x382a1a['joins'][_0x6626][_0xd84d('0x74')]&&_0x382a1a['joins'][_0x6626]['foreignTable']&&_0x382a1a[_0xd84d('0x71')][_0x6626][_0xd84d('0x76')]){_0x227a3a[_0x382a1a[_0xd84d('0x71')][_0x6626][_0xd84d('0x2b')]](_0x382a1a[_0xd84d('0x71')][_0x6626][_0xd84d('0x75')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x382a1a['table'],_0x382a1a[_0xd84d('0x71')][_0x6626][_0xd84d('0x74')],_0x382a1a[_0xd84d('0x71')][_0x6626][_0xd84d('0x75')],_0x382a1a[_0xd84d('0x71')][_0x6626][_0xd84d('0x76')]));}}}if(_0x382a1a[_0xd84d('0x78')]){_0x382a1a[_0xd84d('0x78')]=JSON[_0xd84d('0x72')](_0x382a1a[_0xd84d('0x78')]);_0x227a3a['where'](_0xeca768(_0x382a1a[_0xd84d('0x78')][_0xd84d('0x5f')]));}_0x191823=_0x227a3a[_0xd84d('0x79')]();_0x227a3a[_0xd84d('0x16')](_0x3250fb);_0x227a3a[_0xd84d('0x14')](0x0);logger[_0xd84d('0x7a')](_0xd84d('0x7b'),_0x227a3a['toString']());return dbH[_0xd84d('0x7c')][_0xd84d('0x2d')](_0x227a3a['toString'](),{'type':dbH[_0xd84d('0x7c')][_0xd84d('0x7e')][_0xd84d('0x7f')]});}})['then'](function(){return{'sql':_0x191823[_0xd84d('0x7d')]()};})[_0xd84d('0x1e')](respondWithResult(_0x199315,null))[_0xd84d('0x3f')](handleError(_0x199315,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6aee=['api','bluebird','path','rimraf','../../config/environment','./analyticCustomReport.attributes','exports','analytics_custom_reports','lodash','util'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x6aee,0x134));var _0xe6ae=function(_0x3083f7,_0x309c11){_0x3083f7=_0x3083f7-0x0;var _0x3d1c3c=_0x6aee[_0x3083f7];return _0x3d1c3c;};'use strict';var _=require(_0xe6ae('0x0'));var util=require(_0xe6ae('0x1'));var logger=require('../../config/logger')(_0xe6ae('0x2'));var moment=require('moment');var BPromise=require(_0xe6ae('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe6ae('0x4'));var rimraf=require(_0xe6ae('0x5'));var config=require(_0xe6ae('0x6'));var attributes=require(_0xe6ae('0x7'));module[_0xe6ae('0x8')]=function(_0x641dc9,_0x432825){return _0x641dc9['define']('AnalyticCustomReport',attributes,{'tableName':_0xe6ae('0x9'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x64e4=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','analytics_custom_reports','lodash','util','../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x64e4,0x135));var _0x464e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x64e4[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x464e('0x0'));var util=require(_0x464e('0x1'));var logger=require(_0x464e('0x2'))(_0x464e('0x3'));var moment=require(_0x464e('0x4'));var BPromise=require(_0x464e('0x5'));var rp=require(_0x464e('0x6'));var fs=require('fs');var path=require(_0x464e('0x7'));var rimraf=require(_0x464e('0x8'));var config=require(_0x464e('0x9'));var attributes=require('./analyticCustomReport.attributes');module[_0x464e('0xa')]=function(_0x5a869d,_0x5e9483){return _0x5a869d[_0x464e('0xb')]('AnalyticCustomReport',attributes,{'tableName':_0x464e('0xc'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x775d=['../../config/utils','../../config/logger','rpc','client','http','then','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x209941,_0x5c9988){var _0x1e8729=function(_0x51a9b8){while(--_0x51a9b8){_0x209941['push'](_0x209941['shift']());}};_0x1e8729(++_0x5c9988);}(_0x775d,0x15f));var _0xd775=function(_0x209032,_0x251a46){_0x209032=_0x209032-0x0;var _0x3c311e=_0x775d[_0x209032];return _0x3c311e;};'use strict';var _=require(_0xd775('0x0'));var util=require('util');var moment=require(_0xd775('0x1'));var BPromise=require(_0xd775('0x2'));var rs=require(_0xd775('0x3'));var fs=require('fs');var Redis=require(_0xd775('0x4'));var db=require(_0xd775('0x5'))['db'];var utils=require(_0xd775('0x6'));var logger=require(_0xd775('0x7'))(_0xd775('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd775('0x9')][_0xd775('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xbef926,_0x17b9f1,_0x1680ba){return new BPromise(function(_0x28fc4b,_0x39dcad){return client['request'](_0xbef926,_0x1680ba)[_0xd775('0xb')](function(_0x170ecb){logger[_0xd775('0xc')](_0xd775('0xd'),_0x17b9f1,_0xd775('0xe'));logger[_0xd775('0xf')]('AnalyticCustomReport,\x20%s,\x20%s,\x20%s',_0x17b9f1,_0xd775('0xe'),JSON[_0xd775('0x10')](_0x170ecb));if(_0x170ecb['error']){if(_0x170ecb['error'][_0xd775('0x11')]===0x1f4){logger[_0xd775('0x12')](_0xd775('0xd'),_0x17b9f1,_0x170ecb[_0xd775('0x12')][_0xd775('0x13')]);return _0x39dcad(_0x170ecb[_0xd775('0x12')]['message']);}logger[_0xd775('0x12')](_0xd775('0xd'),_0x17b9f1,_0x170ecb['error'][_0xd775('0x13')]);return _0x28fc4b(_0x170ecb[_0xd775('0x12')]['message']);}else{logger[_0xd775('0xc')]('AnalyticCustomReport,\x20%s,\x20%s',_0x17b9f1,'request\x20sent');_0x28fc4b(_0x170ecb['result'][_0xd775('0x13')]);}})[_0xd775('0x14')](function(_0x1edbd7){logger[_0xd775('0x12')](_0xd775('0xd'),_0x17b9f1,_0x1edbd7);_0x39dcad(_0x1edbd7);});});}
\ No newline at end of file
+var _0x4277=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','request','info','request\x20sent','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','stringify','error','AnalyticCustomReport,\x20%s,\x20%s','message','result','catch','lodash'];(function(_0x4e66eb,_0x1a5ae0){var _0x2ae430=function(_0x85f960){while(--_0x85f960){_0x4e66eb['push'](_0x4e66eb['shift']());}};_0x2ae430(++_0x1a5ae0);}(_0x4277,0x107));var _0x7427=function(_0x532f33,_0x33ca4a){_0x532f33=_0x532f33-0x0;var _0x4eafe8=_0x4277[_0x532f33];return _0x4eafe8;};'use strict';var _=require(_0x7427('0x0'));var util=require(_0x7427('0x1'));var moment=require(_0x7427('0x2'));var BPromise=require(_0x7427('0x3'));var rs=require(_0x7427('0x4'));var fs=require('fs');var Redis=require(_0x7427('0x5'));var db=require(_0x7427('0x6'))['db'];var utils=require(_0x7427('0x7'));var logger=require(_0x7427('0x8'))(_0x7427('0x9'));var config=require(_0x7427('0xa'));var jayson=require('jayson/promise');var client=jayson[_0x7427('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x353770,_0x1511dc,_0x8a0da){return new BPromise(function(_0x39bc80,_0x2e7718){return client[_0x7427('0xc')](_0x353770,_0x8a0da)['then'](function(_0x55e7cb){logger[_0x7427('0xd')]('AnalyticCustomReport,\x20%s,\x20%s',_0x1511dc,_0x7427('0xe'));logger['debug'](_0x7427('0xf'),_0x1511dc,'request\x20sent',JSON[_0x7427('0x10')](_0x55e7cb));if(_0x55e7cb[_0x7427('0x11')]){if(_0x55e7cb[_0x7427('0x11')]['code']===0x1f4){logger['error'](_0x7427('0x12'),_0x1511dc,_0x55e7cb[_0x7427('0x11')][_0x7427('0x13')]);return _0x2e7718(_0x55e7cb[_0x7427('0x11')][_0x7427('0x13')]);}logger[_0x7427('0x11')](_0x7427('0x12'),_0x1511dc,_0x55e7cb[_0x7427('0x11')][_0x7427('0x13')]);return _0x39bc80(_0x55e7cb[_0x7427('0x11')][_0x7427('0x13')]);}else{logger['info'](_0x7427('0x12'),_0x1511dc,'request\x20sent');_0x39bc80(_0x55e7cb[_0x7427('0x14')][_0x7427('0x13')]);}})[_0x7427('0x15')](function(_0x18c8ee){logger['error'](_0x7427('0x12'),_0x1511dc,_0x18c8ee);_0x2e7718(_0x18c8ee);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69da=['../../components/interaction/service','../../config/environment','./analyticCustomReport.controller','isAuthenticated','get','show','/:id/preview','preview','/:id/run','run','/:id/query','put','/:id','update','delete','destroy','exports','util','connect-timeout','express','Router','fs-extra'];(function(_0x42512d,_0x3e8f60){var _0x242bbd=function(_0x17322f){while(--_0x17322f){_0x42512d['push'](_0x42512d['shift']());}};_0x242bbd(++_0x3e8f60);}(_0x69da,0x95));var _0xa69d=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x69da[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require('multer');var util=require(_0xa69d('0x0'));var path=require('path');var timeout=require(_0xa69d('0x1'));var express=require(_0xa69d('0x2'));var router=express[_0xa69d('0x3')]();var fs_extra=require(_0xa69d('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xa69d('0x5'));var config=require(_0xa69d('0x6'));var controller=require(_0xa69d('0x7'));router['get']('/',auth[_0xa69d('0x8')](),controller['index']);router[_0xa69d('0x9')]('/:id',auth[_0xa69d('0x8')](),controller[_0xa69d('0xa')]);router[_0xa69d('0x9')](_0xa69d('0xb'),auth[_0xa69d('0x8')](),controller[_0xa69d('0xc')]);router['get'](_0xa69d('0xd'),auth['isAuthenticated'](),controller[_0xa69d('0xe')]);router['get'](_0xa69d('0xf'),auth[_0xa69d('0x8')](),controller['query']);router['post']('/',auth[_0xa69d('0x8')](),controller['create']);router[_0xa69d('0x10')](_0xa69d('0x11'),auth[_0xa69d('0x8')](),controller[_0xa69d('0x12')]);router[_0xa69d('0x13')](_0xa69d('0x11'),auth[_0xa69d('0x8')](),controller[_0xa69d('0x14')]);module[_0xa69d('0x15')]=router;
\ No newline at end of file
+var _0xd078=['isAuthenticated','/:id','show','/:id/preview','/:id/run','run','/:id/query','query','post','create','put','update','delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./analyticCustomReport.controller','get'];(function(_0x29eef2,_0x428d6e){var _0x1322e0=function(_0x1a17cc){while(--_0x1a17cc){_0x29eef2['push'](_0x29eef2['shift']());}};_0x1322e0(++_0x428d6e);}(_0xd078,0x9e));var _0x8d07=function(_0x4b3fa1,_0x497557){_0x4b3fa1=_0x4b3fa1-0x0;var _0x3a9c0a=_0xd078[_0x4b3fa1];return _0x3a9c0a;};'use strict';var multer=require('multer');var util=require(_0x8d07('0x0'));var path=require(_0x8d07('0x1'));var timeout=require(_0x8d07('0x2'));var express=require(_0x8d07('0x3'));var router=express[_0x8d07('0x4')]();var fs_extra=require(_0x8d07('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x8d07('0x6'));var config=require(_0x8d07('0x7'));var controller=require(_0x8d07('0x8'));router[_0x8d07('0x9')]('/',auth[_0x8d07('0xa')](),controller['index']);router[_0x8d07('0x9')](_0x8d07('0xb'),auth[_0x8d07('0xa')](),controller[_0x8d07('0xc')]);router[_0x8d07('0x9')](_0x8d07('0xd'),auth['isAuthenticated'](),controller['preview']);router[_0x8d07('0x9')](_0x8d07('0xe'),auth[_0x8d07('0xa')](),controller[_0x8d07('0xf')]);router[_0x8d07('0x9')](_0x8d07('0x10'),auth['isAuthenticated'](),controller[_0x8d07('0x11')]);router[_0x8d07('0x12')]('/',auth['isAuthenticated'](),controller[_0x8d07('0x13')]);router[_0x8d07('0x14')](_0x8d07('0xb'),auth['isAuthenticated'](),controller[_0x8d07('0x15')]);router[_0x8d07('0x16')](_0x8d07('0xb'),auth['isAuthenticated'](),controller[_0x8d07('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98a8=['sequelize','exports','STRING','TEXT'];(function(_0x4e95e0,_0x523ab8){var _0x22a1bd=function(_0x5cbdac){while(--_0x5cbdac){_0x4e95e0['push'](_0x4e95e0['shift']());}};_0x22a1bd(++_0x523ab8);}(_0x98a8,0x12c));var _0x898a=function(_0x6579f7,_0x19052e){_0x6579f7=_0x6579f7-0x0;var _0x1665e5=_0x98a8[_0x6579f7];return _0x1665e5;};'use strict';var Sequelize=require(_0x898a('0x0'));module[_0x898a('0x1')]={'name':{'type':Sequelize[_0x898a('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x898a('0x2')]},'parent':{'type':Sequelize[_0x898a('0x2')]},'table':{'type':Sequelize[_0x898a('0x2')]},'conditions':{'type':Sequelize[_0x898a('0x3')]},'joins':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x7fbe=['STRING','TEXT'];(function(_0xf74ddb,_0x8383bd){var _0x44e4cd=function(_0x20be15){while(--_0x20be15){_0xf74ddb['push'](_0xf74ddb['shift']());}};_0x44e4cd(++_0x8383bd);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x2587ca,_0x231303){_0x2587ca=_0x2587ca-0x0;var _0x5aada1=_0x7fbe[_0x2587ca];return _0x5aada1;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xe7fb('0x0')],'allowNull':![]},'description':{'type':Sequelize[_0xe7fb('0x0')]},'parent':{'type':Sequelize[_0xe7fb('0x0')]},'table':{'type':Sequelize[_0xe7fb('0x0')]},'conditions':{'type':Sequelize[_0xe7fb('0x1')]},'joins':{'type':Sequelize[_0xe7fb('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['options','AnalyticDefaultReport','includeAll','include','show','keys','attributes','create','body','user','role','get','Reports','UserProfileSection','userProfileId','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','params','right_join','cross_join','SUM(%s)','COUNT(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','group','condition','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','MetricId','metric','field','function','replace','format','orderBy','DESC','joins','parse','type','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','table','conditions','debug','toString','sequelize','QueryTypes','SELECT','join','left_join','COUNT(DISTINCT\x20%s)','MAX(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','IS\x20EMPTY','operator','groupBy','alias','output','web','fullPath','%s-%s.%s','generate','default','AnalyticExtractedReport','cdr','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','getFields','clone','Limited\x20Query:','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','limit','count','offset','Content-Range','apply','save','then','destroy','DefaultReports','error','stack','name','index','map','fieldName','model','query','filters','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge'];(function(_0x59eefb,_0x2151ce){var _0x1a49e8=function(_0x5a758c){while(--_0x5a758c){_0x59eefb['push'](_0x59eefb['shift']());}};_0x1a49e8(++_0x2151ce);}(_0x7a54,0x106));var _0x47a5=function(_0x578082,_0x508bb8){_0x578082=_0x578082-0x0;var _0x528ccc=_0x7a54[_0x578082];return _0x528ccc;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];var dbH=require(_0x47a5('0x15'))[_0x47a5('0x16')];function respondWithStatusCode(_0x5beb89,_0x44bd3e){_0x44bd3e=_0x44bd3e||0xcc;return function(_0x221b54){if(_0x221b54){return _0x5beb89[_0x47a5('0x17')](_0x44bd3e);}return _0x5beb89[_0x47a5('0x18')](_0x44bd3e)[_0x47a5('0x19')]();};}function respondWithResult(_0x620ee9,_0x3c6c46){_0x3c6c46=_0x3c6c46||0xc8;return function(_0x190faa){if(_0x190faa){return _0x620ee9['status'](_0x3c6c46)[_0x47a5('0x1a')](_0x190faa);}};}function respondWithFilteredResult(_0x11faf5,_0x3b001e){return function(_0x2a2cbb){if(_0x2a2cbb){var _0x1ef44c=typeof _0x3b001e['offset']==='undefined'&&typeof _0x3b001e[_0x47a5('0x1b')]==='undefined';var _0x5247fd=_0x2a2cbb[_0x47a5('0x1c')];var _0xaf70a6=_0x1ef44c?0x0:_0x3b001e[_0x47a5('0x1d')];var _0x1ef371=_0x1ef44c?_0x2a2cbb[_0x47a5('0x1c')]:_0x3b001e[_0x47a5('0x1d')]+_0x3b001e[_0x47a5('0x1b')];var _0xe3c618;if(_0x1ef371>=_0x5247fd){_0x1ef371=_0x5247fd;_0xe3c618=0xc8;}else{_0xe3c618=0xce;}_0x11faf5[_0x47a5('0x18')](_0xe3c618);return _0x11faf5['set'](_0x47a5('0x1e'),_0xaf70a6+'-'+_0x1ef371+'/'+_0x5247fd)[_0x47a5('0x1a')](_0x2a2cbb);}return null;};}function patchUpdates(_0x47cf3c){return function(_0x2b0360){try{jsonpatch[_0x47a5('0x1f')](_0x2b0360,_0x47cf3c,!![]);}catch(_0x36874d){return BPromise['reject'](_0x36874d);}return _0x2b0360[_0x47a5('0x20')]();};}function saveUpdates(_0x2f142b,_0x23db32){return function(_0x7a9f9e){if(_0x7a9f9e){return _0x7a9f9e['update'](_0x2f142b)[_0x47a5('0x21')](function(_0x385687){return _0x385687;});}return null;};}function removeEntity(_0x513981,_0x28747d){return function(_0xc4cd63){if(_0xc4cd63){return _0xc4cd63[_0x47a5('0x22')]()[_0x47a5('0x21')](function(){var _0x3abd6a=_0xc4cd63['get']({'plain':!![]});var _0x53078a=_0x47a5('0x23');return db['UserProfileResource'][_0x47a5('0x22')]({'where':{'type':_0x53078a,'resourceId':_0x3abd6a['id']}})['then'](function(){return _0xc4cd63;});})[_0x47a5('0x21')](function(){_0x513981[_0x47a5('0x18')](0xcc)[_0x47a5('0x19')]();});}};}function handleEntityNotFound(_0x1dac65,_0x21f296){return function(_0x3ba0b7){if(!_0x3ba0b7){_0x1dac65[_0x47a5('0x17')](0x194);}return _0x3ba0b7;};}function handleError(_0x136b14,_0x16631f){_0x16631f=_0x16631f||0x1f4;return function(_0x361bfa){logger[_0x47a5('0x24')](_0x361bfa[_0x47a5('0x25')]);if(_0x361bfa[_0x47a5('0x26')]){delete _0x361bfa['name'];}_0x136b14[_0x47a5('0x18')](_0x16631f)['send'](_0x361bfa);};}exports[_0x47a5('0x27')]=function(_0x9ac908,_0x16901f){var _0x4d6b57={},_0x256650={},_0x625952={'count':0x0,'rows':[]};var _0x39b50b=_[_0x47a5('0x28')](db['AnalyticDefaultReport']['rawAttributes'],function(_0x6f9a12){return{'name':_0x6f9a12[_0x47a5('0x29')],'type':_0x6f9a12['type']['key']};});_0x256650[_0x47a5('0x2a')]=_[_0x47a5('0x28')](_0x39b50b,'name');_0x256650[_0x47a5('0x2b')]=_['keys'](_0x9ac908[_0x47a5('0x2b')]);_0x256650[_0x47a5('0x2c')]=_['intersection'](_0x256650['model'],_0x256650[_0x47a5('0x2b')]);_0x4d6b57['attributes']=_[_0x47a5('0x2d')](_0x256650[_0x47a5('0x2a')],qs[_0x47a5('0x2e')](_0x9ac908['query'][_0x47a5('0x2e')]));_0x4d6b57['attributes']=_0x4d6b57['attributes'][_0x47a5('0x2f')]?_0x4d6b57['attributes']:_0x256650[_0x47a5('0x2a')];if(!_0x9ac908['query'][_0x47a5('0x30')](_0x47a5('0x31'))){_0x4d6b57[_0x47a5('0x1b')]=qs[_0x47a5('0x1b')](_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x1b')]);_0x4d6b57[_0x47a5('0x1d')]=qs[_0x47a5('0x1d')](_0x9ac908[_0x47a5('0x2b')]['offset']);}_0x4d6b57[_0x47a5('0x32')]=qs[_0x47a5('0x33')](_0x9ac908['query'][_0x47a5('0x33')]);_0x4d6b57[_0x47a5('0x34')]=qs[_0x47a5('0x2c')](_['pick'](_0x9ac908[_0x47a5('0x2b')],_0x256650[_0x47a5('0x2c')]),_0x39b50b);if(_0x9ac908['query'][_0x47a5('0x35')]){_0x4d6b57[_0x47a5('0x34')]=_['merge'](_0x4d6b57['where'],{'$or':_['map'](_0x39b50b,function(_0x12d9f2){if(_0x12d9f2['type']!==_0x47a5('0x36')){var _0x1f9631={};_0x1f9631[_0x12d9f2[_0x47a5('0x26')]]={'$like':'%'+_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x35')]+'%'};return _0x1f9631;}})});}_0x4d6b57=_[_0x47a5('0x37')]({},_0x4d6b57,_0x9ac908[_0x47a5('0x38')]);var _0x1f3d01={'where':_0x4d6b57[_0x47a5('0x34')]};return db[_0x47a5('0x39')][_0x47a5('0x1c')](_0x1f3d01)[_0x47a5('0x21')](function(_0x23d6d8){_0x625952['count']=_0x23d6d8;if(_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x3a')]){_0x4d6b57[_0x47a5('0x3b')]=[{'all':!![]}];}return db[_0x47a5('0x39')]['findAll'](_0x4d6b57);})[_0x47a5('0x21')](function(_0x528ef3){_0x625952['rows']=_0x528ef3;return _0x625952;})['then'](respondWithFilteredResult(_0x16901f,_0x4d6b57))['catch'](handleError(_0x16901f,null));};exports[_0x47a5('0x3c')]=function(_0x5ec4e5,_0x2bb502){var _0x3a740b={'raw':!![],'where':{'id':_0x5ec4e5['params']['id']}},_0x448610={};_0x448610[_0x47a5('0x2a')]=_[_0x47a5('0x3d')](db['AnalyticDefaultReport']['rawAttributes']);_0x448610[_0x47a5('0x2b')]=_['keys'](_0x5ec4e5[_0x47a5('0x2b')]);_0x448610[_0x47a5('0x2c')]=_[_0x47a5('0x2d')](_0x448610[_0x47a5('0x2a')],_0x448610[_0x47a5('0x2b')]);_0x3a740b[_0x47a5('0x3e')]=_[_0x47a5('0x2d')](_0x448610[_0x47a5('0x2a')],qs[_0x47a5('0x2e')](_0x5ec4e5[_0x47a5('0x2b')][_0x47a5('0x2e')]));_0x3a740b[_0x47a5('0x3e')]=_0x3a740b[_0x47a5('0x3e')][_0x47a5('0x2f')]?_0x3a740b[_0x47a5('0x3e')]:_0x448610[_0x47a5('0x2a')];if(_0x5ec4e5['query'][_0x47a5('0x3a')]){_0x3a740b[_0x47a5('0x3b')]=[{'all':!![]}];}_0x3a740b=_['merge']({},_0x3a740b,_0x5ec4e5['options']);return db[_0x47a5('0x39')]['find'](_0x3a740b)[_0x47a5('0x21')](handleEntityNotFound(_0x2bb502,null))[_0x47a5('0x21')](respondWithResult(_0x2bb502,null))['catch'](handleError(_0x2bb502,null));};exports['create']=function(_0x3d85cc,_0x52d409){return db[_0x47a5('0x39')][_0x47a5('0x3f')](_0x3d85cc[_0x47a5('0x40')],{})[_0x47a5('0x21')](function(_0x44fe8a){var _0x26acd2=_0x3d85cc[_0x47a5('0x41')]['get']({'plain':!![]});if(!_0x26acd2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x26acd2[_0x47a5('0x42')]===_0x47a5('0x41')){var _0x1163e3=_0x44fe8a[_0x47a5('0x43')]({'plain':!![]});var _0x2c7020=_0x47a5('0x44');return db[_0x47a5('0x45')]['find']({'where':{'name':_0x2c7020,'userProfileId':_0x26acd2[_0x47a5('0x46')]},'raw':!![]})[_0x47a5('0x21')](function(_0x5f6a){if(_0x5f6a&&_0x5f6a['autoAssociation']===0x0){return db[_0x47a5('0x47')]['create']({'name':_0x1163e3[_0x47a5('0x26')],'resourceId':_0x1163e3['id'],'type':_0x47a5('0x23'),'sectionId':_0x5f6a['id']},{})[_0x47a5('0x21')](function(){return _0x44fe8a;});}else{return _0x44fe8a;}})[_0x47a5('0x48')](function(_0x588551){logger[_0x47a5('0x24')](_0x47a5('0x49'),_0x588551);throw _0x588551;});}return _0x44fe8a;})[_0x47a5('0x21')](respondWithResult(_0x52d409,0xc9))[_0x47a5('0x48')](handleError(_0x52d409,null));};exports[_0x47a5('0x4a')]=function(_0x6a53b3,_0x24e9f4){if(_0x6a53b3['body']['id']){delete _0x6a53b3[_0x47a5('0x40')]['id'];}return db[_0x47a5('0x39')][_0x47a5('0x4b')]({'where':{'id':_0x6a53b3[_0x47a5('0x4c')]['id']}})[_0x47a5('0x21')](handleEntityNotFound(_0x24e9f4,null))[_0x47a5('0x21')](saveUpdates(_0x6a53b3['body'],null))[_0x47a5('0x21')](respondWithResult(_0x24e9f4,null))[_0x47a5('0x48')](handleError(_0x24e9f4,null));};exports[_0x47a5('0x22')]=function(_0x53871e,_0x4c5ed){return db[_0x47a5('0x39')][_0x47a5('0x4b')]({'where':{'id':_0x53871e['params']['id']}})['then'](handleEntityNotFound(_0x4c5ed,null))[_0x47a5('0x21')](removeEntity(_0x4c5ed,null))[_0x47a5('0x48')](handleError(_0x4c5ed,null));};exports['preview']=function(_0x4cf792,_0x6d6b2b){var _0x4d6a82=0xa;var _0x16bb8a=['join','left_join',_0x47a5('0x4d'),_0x47a5('0x4e')];var _0x53eedf={'SUM':_0x47a5('0x4f'),'COUNT':_0x47a5('0x50'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':_0x47a5('0x53'),'GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x199621={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':_0x47a5('0x56'),'HOUR':'HOUR(%s)','ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x485e3c=function(_0x470da6){return!_[_0x47a5('0x58')]([_0x47a5('0x59'),_0x47a5('0x5a'),'IS\x20EMPTY',_0x47a5('0x5b')],_0x470da6);};var _0x5d1550=function(_0x5cbe97){if(!_0x5cbe97||!_0x5cbe97['rules']['length']){return'';}for(var _0x212d92='(',_0x6cd4ea=0x0;_0x6cd4ea<_0x5cbe97[_0x47a5('0x5c')]['length'];_0x6cd4ea+=0x1){_0x6cd4ea>0x0&&(_0x212d92+='\x20'+_0x5cbe97['operator']+'\x20');_0x212d92+=_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5d')]?_0x5d1550(_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5d')]):_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea]['field']+'\x20'+_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea]['condition']+(_0x485e3c(_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5e')])?'\x20'+_0x5cbe97['rules'][_0x6cd4ea][_0x47a5('0x5f')]:'');}return _0x212d92+')';};var _0x345104={'where':{'id':_0x4cf792[_0x47a5('0x4c')]['id']}},_0x132854,_0x3e8274,_0x2d6494,_0x215634,_0x35cca8;_0x345104=_['merge']({},_0x345104,_0x4cf792[_0x47a5('0x38')]);return db[_0x47a5('0x39')][_0x47a5('0x4b')](_0x345104)[_0x47a5('0x21')](function(_0x396cb0){if(_0x396cb0){_0x132854=_0x396cb0;return _0x396cb0['getFields']();}return null;})[_0x47a5('0x21')](function(_0xdfcecc){if(_0xdfcecc){if(!_0xdfcecc[_0x47a5('0x2f')]){throw new db[(_0x47a5('0x60'))][(_0x47a5('0x61'))](_0x47a5('0x62'),0x193);}_0x3e8274=_0xdfcecc;return db[_0x47a5('0x63')][_0x47a5('0x64')]({'raw':!![]});}return null;})[_0x47a5('0x21')](function(_0x44cb90){if(_0x44cb90){_0x2d6494=_[_0x47a5('0x65')](_0x44cb90,'id');var _0x44fda9;var _0x3c0006=squel[_0x47a5('0x66')]();_0x3c0006[_0x47a5('0x67')](_0x132854['table']);for(var _0x42dd7d=0x0;_0x42dd7d<_0x3e8274[_0x47a5('0x2f')];_0x42dd7d+=0x1){_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x68')]?_0x2d6494[_0x3e8274[_0x42dd7d]['MetricId']][_0x47a5('0x69')]:_0x3e8274[_0x42dd7d][_0x47a5('0x6a')];_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x6b')]?_[_0x47a5('0x6c')](_0x53eedf[_0x3e8274[_0x42dd7d]['function']],'%s',_0x44fda9):_0x44fda9;_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x6d')]?_['replace'](_0x199621[_0x3e8274[_0x42dd7d][_0x47a5('0x6d')]],'%s',_0x44fda9):_0x44fda9;if(_0x3e8274[_0x42dd7d]['groupBy']){_0x3c0006[_0x47a5('0x5d')](_0x44fda9);}_0x3e8274[_0x42dd7d]['orderBy']&&_0x3c0006[_0x47a5('0x32')](_0x44fda9,_0x3e8274[_0x42dd7d][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x3c0006['field'](_0x44fda9,_0x3e8274[_0x42dd7d]['alias']||_0x44fda9);}if(_0x132854['joins']){_0x132854[_0x47a5('0x70')]=JSON[_0x47a5('0x71')](_0x132854[_0x47a5('0x70')]);for(var _0x117510=0x0;_0x117510<_0x132854['joins'][_0x47a5('0x2f')];_0x117510+=0x1){if(_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x72')]&&_[_0x47a5('0x58')](_0x16bb8a,_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x72')])&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x73')]&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x74')]&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x75')]){_0x3c0006[_0x132854['joins'][_0x117510][_0x47a5('0x72')]](_0x132854['joins'][_0x117510][_0x47a5('0x74')],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x132854[_0x47a5('0x77')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x73')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x74')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x75')]));}}}if(_0x132854[_0x47a5('0x78')]){_0x132854[_0x47a5('0x78')]=JSON[_0x47a5('0x71')](_0x132854[_0x47a5('0x78')]);_0x3c0006[_0x47a5('0x34')](_0x5d1550(_0x132854['conditions']['group']));}_0x35cca8=_0x3c0006['clone']();_0x3c0006['limit'](_0x4d6a82);_0x3c0006[_0x47a5('0x1d')](0x0);logger[_0x47a5('0x79')]('Limited\x20Query:',_0x3c0006[_0x47a5('0x7a')]());return dbH[_0x47a5('0x7b')][_0x47a5('0x2b')](_0x3c0006[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')][_0x47a5('0x7d')]});}})[_0x47a5('0x21')](respondWithResult(_0x6d6b2b,null))[_0x47a5('0x48')](handleError(_0x6d6b2b,null));};function runReport(_0x1ffe3c,_0x24a6c1,_0x5e5f16){var _0x18fa31=_0x24a6c1[_0x47a5('0x26')];var _0x420671=0xa;var _0x4f35ff=[_0x47a5('0x7e'),_0x47a5('0x7f'),_0x47a5('0x4d'),'cross_join'];var _0x19dc8c={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x47a5('0x80'),'MAX':_0x47a5('0x81'),'MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':_0x47a5('0x53'),'GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x592322={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':'DATE(%s)','HOUR':_0x47a5('0x82'),'ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':_0x47a5('0x83')};var _0xb16bdd=function(_0x53ea2b){return!_[_0x47a5('0x58')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x47a5('0x84'),_0x47a5('0x5b')],_0x53ea2b);};var _0x5b91f7=function(_0x1926bd){if(!_0x1926bd||!_0x1926bd[_0x47a5('0x5c')][_0x47a5('0x2f')]){return'';}for(var _0x4c25ec='(',_0x280372=0x0;_0x280372<_0x1926bd['rules'][_0x47a5('0x2f')];_0x280372+=0x1){_0x280372>0x0&&(_0x4c25ec+='\x20'+_0x1926bd[_0x47a5('0x85')]+'\x20');_0x4c25ec+=_0x1926bd[_0x47a5('0x5c')][_0x280372]['group']?_0x5b91f7(_0x1926bd[_0x47a5('0x5c')][_0x280372][_0x47a5('0x5d')]):_0x1926bd[_0x47a5('0x5c')][_0x280372]['field']+'\x20'+_0x1926bd[_0x47a5('0x5c')][_0x280372]['condition']+(_0xb16bdd(_0x1926bd[_0x47a5('0x5c')][_0x280372]['condition'])?'\x20'+_0x1926bd[_0x47a5('0x5c')][_0x280372][_0x47a5('0x5f')]:'');}return _0x4c25ec+')';};var _0x20a742={'where':{'id':_0x1ffe3c['id']}},_0x211fbf,_0x51738b,_0x42fcce,_0x2ae130,_0x23c393;_0x20a742=_[_0x47a5('0x37')]({},_0x20a742,_0x5e5f16);return db[_0x47a5('0x39')]['find'](_0x20a742)['then'](function(_0x569550){if(_0x569550){_0x211fbf=_0x569550;return _0x569550['getFields']();}return null;})[_0x47a5('0x21')](function(_0xa8809a){if(_0xa8809a){if(!_0xa8809a[_0x47a5('0x2f')]){throw new db['Sequelize'][(_0x47a5('0x61'))](_0x47a5('0x62'),0x193);}_0x51738b=_0xa8809a;return db['AnalyticMetric'][_0x47a5('0x64')]({'raw':!![]});}return null;})[_0x47a5('0x21')](function(_0x19acfa){if(_0x19acfa){_0x42fcce=_[_0x47a5('0x65')](_0x19acfa,'id');var _0x58dacd;var _0x4b5353=squel[_0x47a5('0x66')]();_0x4b5353[_0x47a5('0x67')](_0x211fbf['table']);for(var _0x27d422=0x0;_0x27d422<_0x51738b[_0x47a5('0x2f')];_0x27d422+=0x1){_0x58dacd=_0x51738b[_0x27d422]['MetricId']?_0x42fcce[_0x51738b[_0x27d422][_0x47a5('0x68')]][_0x47a5('0x69')]:_0x51738b[_0x27d422][_0x47a5('0x6a')];_0x58dacd=_0x51738b[_0x27d422]['function']?_[_0x47a5('0x6c')](_0x19dc8c[_0x51738b[_0x27d422]['function']],'%s',_0x58dacd):_0x58dacd;_0x58dacd=_0x51738b[_0x27d422][_0x47a5('0x6d')]?_['replace'](_0x592322[_0x51738b[_0x27d422][_0x47a5('0x6d')]],'%s',_0x58dacd):_0x58dacd;if(_0x51738b[_0x27d422][_0x47a5('0x86')]){_0x4b5353['group'](_0x58dacd);}_0x51738b[_0x27d422][_0x47a5('0x6e')]&&_0x4b5353['order'](_0x58dacd,_0x51738b[_0x27d422][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x4b5353[_0x47a5('0x6a')](_0x58dacd,_0x51738b[_0x27d422][_0x47a5('0x87')]||_0x58dacd);}if(_0x211fbf['joins']){_0x211fbf[_0x47a5('0x70')]=JSON['parse'](_0x211fbf['joins']);for(var _0x2bb2df=0x0;_0x2bb2df<_0x211fbf[_0x47a5('0x70')][_0x47a5('0x2f')];_0x2bb2df+=0x1){if(_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')]&&_['includes'](_0x4f35ff,_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')])&&_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x73')]&&_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x74')]&&_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x75')]){_0x4b5353[_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')]](_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x74')],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x211fbf[_0x47a5('0x77')],_0x211fbf[_0x47a5('0x70')][_0x2bb2df]['parentKey'],_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x74')],_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x75')]));}}}if(_0x211fbf[_0x47a5('0x78')]){_0x211fbf[_0x47a5('0x78')]=JSON['parse'](_0x211fbf['conditions']);_0x4b5353[_0x47a5('0x34')](_0x5b91f7(_0x211fbf[_0x47a5('0x78')]['group']));}_0x23c393=_0x4b5353['clone']();_0x4b5353[_0x47a5('0x1b')](_0x420671);_0x4b5353[_0x47a5('0x1d')](0x0);return;}})['then'](function(){if(_0x24a6c1[_0x47a5('0x88')]===_0x47a5('0x89')){return null;}var _0x4c9e6a=_[_0x47a5('0x37')](_0x24a6c1,{'name':_0x24a6c1[_0x47a5('0x8a')]||_0x24a6c1[_0x47a5('0x26')]||_0x211fbf[_0x47a5('0x26')],'basename':_0x18fa31,'savename':util[_0x47a5('0x6d')](_0x47a5('0x8b'),_0x24a6c1['name']||_0x211fbf['name'],require('randomstring')[_0x47a5('0x8c')](0x4),_0x24a6c1[_0x47a5('0x88')]||'csv'),'reportId':_0x211fbf['id'],'reportType':_0x47a5('0x8d')});return db[_0x47a5('0x8e')][_0x47a5('0x3f')](_0x4c9e6a,{'raw':!![]});})[_0x47a5('0x21')](function(_0xcdbfd7){if(_0x211fbf['table']===_0x47a5('0x8f')){_0x23c393['where'](_0x211fbf['table']+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x24a6c1[_0x47a5('0x90')],_0x24a6c1['endDate']);}else{_0x23c393[_0x47a5('0x34')](_0x211fbf[_0x47a5('0x77')]+_0x47a5('0x91'),_0x24a6c1['startDate'],_0x24a6c1[_0x47a5('0x92')]);}if(_0xcdbfd7){logger[_0x47a5('0x93')](_0x47a5('0x94'),_0x23c393[_0x47a5('0x7a')]());require(_0x47a5('0x95'))['fork'](path[_0x47a5('0x7e')](__dirname,_0x47a5('0x96'),_0xcdbfd7['output']),[_0xcdbfd7['id'],_0x23c393[_0x47a5('0x7a')](),path[_0x47a5('0x7e')](__dirname,_0x47a5('0x97'),_0xcdbfd7[_0x47a5('0x98')]),_0x18fa31]);return _0xcdbfd7;}else{var _0x3c117a=squel[_0x47a5('0x66')]();_0x3c117a['from']('('+_0x23c393[_0x47a5('0x7a')]()+')',_0x47a5('0x99'));_0x3c117a['field'](_0x47a5('0x9a'),_0x47a5('0x1c'));_0x23c393[_0x47a5('0x1b')](_0x24a6c1[_0x47a5('0x1b')]||_0x420671);_0x23c393['offset'](_0x24a6c1['offset']||0x0);return dbH['sequelize']['query'](_0x3c117a[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')][_0x47a5('0x7d')]})[_0x47a5('0x21')](function(_0x6bc37b){if(!_0x6bc37b[_0x47a5('0x2f')]){_0x2ae130=0x0;}else{_0x2ae130=_0x6bc37b[0x0][_0x47a5('0x1c')]||0x0;}return dbH['sequelize'][_0x47a5('0x2b')](_0x23c393[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')]['SELECT']});})['then'](function(_0x3770ae){return{'rows':_0x3770ae||[],'count':_0x2ae130};});}});}exports['run']=function(_0x4cb8e4,_0x1b6a5c){return runReport(_0x4cb8e4[_0x47a5('0x4c')],_0x4cb8e4['query'],_0x4cb8e4[_0x47a5('0x38')])[_0x47a5('0x21')](respondWithResult(_0x1b6a5c,null))[_0x47a5('0x48')](handleError(_0x1b6a5c,null));};exports['runReport']=runReport;exports[_0x47a5('0x2b')]=function(_0xee23c7,_0x48a491){var _0x1172fd=0xa;var _0x280b7b=[_0x47a5('0x7e'),_0x47a5('0x7f'),_0x47a5('0x4d'),_0x47a5('0x4e')];var _0x482c87={'SUM':_0x47a5('0x4f'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x47a5('0x80'),'MAX':_0x47a5('0x81'),'MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':_0x47a5('0x9b')};var _0x151540={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':_0x47a5('0x56'),'HOUR':_0x47a5('0x82'),'ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':_0x47a5('0x83')};var _0x1b3e82=function(_0xa2045c){return!_[_0x47a5('0x58')]([_0x47a5('0x59'),'IS\x20NOT\x20NULL',_0x47a5('0x84'),_0x47a5('0x5b')],_0xa2045c);};var _0x591bde=function(_0x55d955){if(!_0x55d955||!_0x55d955[_0x47a5('0x5c')][_0x47a5('0x2f')]){return'';}for(var _0x2ccf21='(',_0x2ff467=0x0;_0x2ff467<_0x55d955['rules'][_0x47a5('0x2f')];_0x2ff467+=0x1){_0x2ff467>0x0&&(_0x2ccf21+='\x20'+_0x55d955[_0x47a5('0x85')]+'\x20');_0x2ccf21+=_0x55d955[_0x47a5('0x5c')][_0x2ff467][_0x47a5('0x5d')]?_0x591bde(_0x55d955[_0x47a5('0x5c')][_0x2ff467][_0x47a5('0x5d')]):_0x55d955[_0x47a5('0x5c')][_0x2ff467]['field']+'\x20'+_0x55d955['rules'][_0x2ff467][_0x47a5('0x5e')]+(_0x1b3e82(_0x55d955['rules'][_0x2ff467][_0x47a5('0x5e')])?'\x20'+_0x55d955['rules'][_0x2ff467][_0x47a5('0x5f')]:'');}return _0x2ccf21+')';};var _0x8b4354={'where':{'id':_0xee23c7[_0x47a5('0x4c')]['id']}},_0x134c1a,_0x2bc7ae,_0x49cb8c,_0x220557,_0x11f07b;_0x8b4354=_['merge']({},_0x8b4354,_0xee23c7['options']);return db[_0x47a5('0x39')][_0x47a5('0x4b')](_0x8b4354)[_0x47a5('0x21')](function(_0xfccf9c){if(_0xfccf9c){_0x134c1a=_0xfccf9c;return _0xfccf9c[_0x47a5('0x9c')]();}return null;})[_0x47a5('0x21')](function(_0x1c0323){if(_0x1c0323){if(!_0x1c0323[_0x47a5('0x2f')]){throw new db['Sequelize'][(_0x47a5('0x61'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x2bc7ae=_0x1c0323;return db[_0x47a5('0x63')][_0x47a5('0x64')]({'raw':!![]});}return null;})['then'](function(_0x48d4cf){if(_0x48d4cf){_0x49cb8c=_[_0x47a5('0x65')](_0x48d4cf,'id');var _0x41d2da;var _0x530387=squel[_0x47a5('0x66')]();_0x530387[_0x47a5('0x67')](_0x134c1a[_0x47a5('0x77')]);for(var _0x44567e=0x0;_0x44567e<_0x2bc7ae['length'];_0x44567e+=0x1){_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x68')]?_0x49cb8c[_0x2bc7ae[_0x44567e]['MetricId']]['metric']:_0x2bc7ae[_0x44567e]['field'];_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x6b')]?_['replace'](_0x482c87[_0x2bc7ae[_0x44567e][_0x47a5('0x6b')]],'%s',_0x41d2da):_0x41d2da;_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x6d')]?_[_0x47a5('0x6c')](_0x151540[_0x2bc7ae[_0x44567e][_0x47a5('0x6d')]],'%s',_0x41d2da):_0x41d2da;if(_0x2bc7ae[_0x44567e][_0x47a5('0x86')]){_0x530387[_0x47a5('0x5d')](_0x41d2da);}_0x2bc7ae[_0x44567e][_0x47a5('0x6e')]&&_0x530387[_0x47a5('0x32')](_0x41d2da,_0x2bc7ae[_0x44567e][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x530387[_0x47a5('0x6a')](_0x41d2da,_0x2bc7ae[_0x44567e][_0x47a5('0x87')]||_0x41d2da);}if(_0x134c1a[_0x47a5('0x70')]){_0x134c1a[_0x47a5('0x70')]=JSON[_0x47a5('0x71')](_0x134c1a['joins']);for(var _0xdd95c8=0x0;_0xdd95c8<_0x134c1a[_0x47a5('0x70')][_0x47a5('0x2f')];_0xdd95c8+=0x1){if(_0x134c1a[_0x47a5('0x70')][_0xdd95c8]['type']&&_[_0x47a5('0x58')](_0x280b7b,_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x72')])&&_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x73')]&&_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x74')]&&_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x75')]){_0x530387[_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x72')]](_0x134c1a['joins'][_0xdd95c8]['foreignTable'],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x134c1a[_0x47a5('0x77')],_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x73')],_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x74')],_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x75')]));}}}if(_0x134c1a[_0x47a5('0x78')]){_0x134c1a[_0x47a5('0x78')]=JSON[_0x47a5('0x71')](_0x134c1a['conditions']);_0x530387['where'](_0x591bde(_0x134c1a[_0x47a5('0x78')][_0x47a5('0x5d')]));}_0x11f07b=_0x530387[_0x47a5('0x9d')]();_0x530387[_0x47a5('0x1b')](_0x1172fd);_0x530387[_0x47a5('0x1d')](0x0);logger[_0x47a5('0x79')](_0x47a5('0x9e'),_0x530387[_0x47a5('0x7a')]());return dbH[_0x47a5('0x7b')]['query'](_0x530387['toString'](),{'type':dbH[_0x47a5('0x7b')]['QueryTypes'][_0x47a5('0x7d')]});}})[_0x47a5('0x21')](function(){return{'sql':_0x11f07b[_0x47a5('0x7a')]()};})['then'](respondWithResult(_0x48a491,null))[_0x47a5('0x48')](handleError(_0x48a491,null));};
\ No newline at end of file
+var _0x53ec=['IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','value','getFields','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','function','format','replace','orderBy','DESC','alias','joins','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','parse','clone','debug','Limited\x20Query:','sequelize','toString','QueryTypes','right_join','SUM(%s)','COUNT(DISTINCT\x20%s)','GROUP_CONCAT(%s)','HOUR(%s)','ROUND(%s)','condition','Sequelize','groupBy','foreignKey','output','fullPath','%s-%s.%s','randomstring','generate','csv','default','AnalyticExtractedReport','cdr','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../files/reports','savename','countTable','COUNT(*)','SELECT','runReport','cross_join','COUNT(%s)','MIN(%s)','ValidationErrorItem','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','get','DefaultReports','UserProfileResource','error','stack','name','send','index','map','rawAttributes','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','filter','merge','type','include','AnalyticDefaultReport','params','includeAll','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','preview','join','left_join','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','includes'];(function(_0x4dad7b,_0x4a17b0){var _0xc04d92=function(_0x5cad94){while(--_0x5cad94){_0x4dad7b['push'](_0x4dad7b['shift']());}};_0xc04d92(++_0x4a17b0);}(_0x53ec,0x192));var _0xc53e=function(_0x501932,_0x432837){_0x501932=_0x501932-0x0;var _0x1fe5eb=_0x53ec[_0x501932];return _0x1fe5eb;};'use strict';var emlformat=require(_0xc53e('0x0'));var rimraf=require(_0xc53e('0x1'));var zipdir=require(_0xc53e('0x2'));var jsonpatch=require(_0xc53e('0x3'));var rp=require(_0xc53e('0x4'));var moment=require(_0xc53e('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc53e('0x6'));var util=require('util');var path=require(_0xc53e('0x7'));var sox=require(_0xc53e('0x8'));var csv=require('to-csv');var ejs=require(_0xc53e('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc53e('0xa'));var squel=require(_0xc53e('0xb'));var crypto=require('crypto');var jsforce=require(_0xc53e('0xc'));var deskjs=require(_0xc53e('0xd'));var toCsv=require(_0xc53e('0xe'));var querystring=require(_0xc53e('0xf'));var Papa=require(_0xc53e('0x10'));var Redis=require(_0xc53e('0x11'));var authService=require(_0xc53e('0x12'));var qs=require(_0xc53e('0x13'));var as=require(_0xc53e('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc53e('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc53e('0x16'));var db=require(_0xc53e('0x17'))['db'];var dbH=require(_0xc53e('0x17'))[_0xc53e('0x18')];function respondWithStatusCode(_0x56f0e5,_0x4e74c9){_0x4e74c9=_0x4e74c9||0xcc;return function(_0x1c06cd){if(_0x1c06cd){return _0x56f0e5[_0xc53e('0x19')](_0x4e74c9);}return _0x56f0e5[_0xc53e('0x1a')](_0x4e74c9)[_0xc53e('0x1b')]();};}function respondWithResult(_0x358ef3,_0x382e87){_0x382e87=_0x382e87||0xc8;return function(_0x3dc2fa){if(_0x3dc2fa){return _0x358ef3[_0xc53e('0x1a')](_0x382e87)[_0xc53e('0x1c')](_0x3dc2fa);}};}function respondWithFilteredResult(_0x2ad6eb,_0x5b0a88){return function(_0x8a522e){if(_0x8a522e){var _0x191567=typeof _0x5b0a88[_0xc53e('0x1d')]===_0xc53e('0x1e')&&typeof _0x5b0a88[_0xc53e('0x1f')]===_0xc53e('0x1e');var _0x164016=_0x8a522e[_0xc53e('0x20')];var _0x3b550e=_0x191567?0x0:_0x5b0a88['offset'];var _0x546fab=_0x191567?_0x8a522e[_0xc53e('0x20')]:_0x5b0a88[_0xc53e('0x1d')]+_0x5b0a88[_0xc53e('0x1f')];var _0x2e85df;if(_0x546fab>=_0x164016){_0x546fab=_0x164016;_0x2e85df=0xc8;}else{_0x2e85df=0xce;}_0x2ad6eb[_0xc53e('0x1a')](_0x2e85df);return _0x2ad6eb[_0xc53e('0x21')](_0xc53e('0x22'),_0x3b550e+'-'+_0x546fab+'/'+_0x164016)[_0xc53e('0x1c')](_0x8a522e);}return null;};}function patchUpdates(_0x364c80){return function(_0x401af6){try{jsonpatch[_0xc53e('0x23')](_0x401af6,_0x364c80,!![]);}catch(_0x44fd93){return BPromise[_0xc53e('0x24')](_0x44fd93);}return _0x401af6['save']();};}function saveUpdates(_0x47cfdd,_0x531ede){return function(_0x4f4304){if(_0x4f4304){return _0x4f4304[_0xc53e('0x25')](_0x47cfdd)[_0xc53e('0x26')](function(_0x4015c8){return _0x4015c8;});}return null;};}function removeEntity(_0x180811,_0x5009e1){return function(_0x5e5377){if(_0x5e5377){return _0x5e5377[_0xc53e('0x27')]()['then'](function(){var _0x1ae55e=_0x5e5377[_0xc53e('0x28')]({'plain':!![]});var _0x443179=_0xc53e('0x29');return db[_0xc53e('0x2a')]['destroy']({'where':{'type':_0x443179,'resourceId':_0x1ae55e['id']}})[_0xc53e('0x26')](function(){return _0x5e5377;});})['then'](function(){_0x180811['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c5056,_0x57a1f5){return function(_0x28240a){if(!_0x28240a){_0x3c5056['sendStatus'](0x194);}return _0x28240a;};}function handleError(_0x24a77e,_0x5112d2){_0x5112d2=_0x5112d2||0x1f4;return function(_0x5ce216){logger[_0xc53e('0x2b')](_0x5ce216[_0xc53e('0x2c')]);if(_0x5ce216[_0xc53e('0x2d')]){delete _0x5ce216[_0xc53e('0x2d')];}_0x24a77e[_0xc53e('0x1a')](_0x5112d2)[_0xc53e('0x2e')](_0x5ce216);};}exports[_0xc53e('0x2f')]=function(_0x2a2ca9,_0x4ace0b){var _0x437893={},_0x311835={},_0x2d36c0={'count':0x0,'rows':[]};var _0x56206b=_[_0xc53e('0x30')](db['AnalyticDefaultReport'][_0xc53e('0x31')],function(_0x2467f4){return{'name':_0x2467f4['fieldName'],'type':_0x2467f4['type'][_0xc53e('0x32')]};});_0x311835[_0xc53e('0x33')]=_[_0xc53e('0x30')](_0x56206b,_0xc53e('0x2d'));_0x311835[_0xc53e('0x34')]=_[_0xc53e('0x35')](_0x2a2ca9[_0xc53e('0x34')]);_0x311835[_0xc53e('0x36')]=_['intersection'](_0x311835[_0xc53e('0x33')],_0x311835[_0xc53e('0x34')]);_0x437893[_0xc53e('0x37')]=_[_0xc53e('0x38')](_0x311835[_0xc53e('0x33')],qs[_0xc53e('0x39')](_0x2a2ca9[_0xc53e('0x34')][_0xc53e('0x39')]));_0x437893[_0xc53e('0x37')]=_0x437893['attributes'][_0xc53e('0x3a')]?_0x437893['attributes']:_0x311835[_0xc53e('0x33')];if(!_0x2a2ca9[_0xc53e('0x34')]['hasOwnProperty'](_0xc53e('0x3b'))){_0x437893[_0xc53e('0x1f')]=qs[_0xc53e('0x1f')](_0x2a2ca9['query'][_0xc53e('0x1f')]);_0x437893[_0xc53e('0x1d')]=qs[_0xc53e('0x1d')](_0x2a2ca9[_0xc53e('0x34')][_0xc53e('0x1d')]);}_0x437893[_0xc53e('0x3c')]=qs[_0xc53e('0x3d')](_0x2a2ca9['query'][_0xc53e('0x3d')]);_0x437893[_0xc53e('0x3e')]=qs[_0xc53e('0x36')](_['pick'](_0x2a2ca9[_0xc53e('0x34')],_0x311835['filters']),_0x56206b);if(_0x2a2ca9[_0xc53e('0x34')][_0xc53e('0x3f')]){_0x437893[_0xc53e('0x3e')]=_[_0xc53e('0x40')](_0x437893[_0xc53e('0x3e')],{'$or':_['map'](_0x56206b,function(_0x3dda55){if(_0x3dda55[_0xc53e('0x41')]!=='VIRTUAL'){var _0x5b7354={};_0x5b7354[_0x3dda55['name']]={'$like':'%'+_0x2a2ca9['query'][_0xc53e('0x3f')]+'%'};return _0x5b7354;}})});}_0x437893=_[_0xc53e('0x40')]({},_0x437893,_0x2a2ca9['options']);var _0x460ee6={'where':_0x437893['where']};return db['AnalyticDefaultReport']['count'](_0x460ee6)[_0xc53e('0x26')](function(_0x4ba96f){_0x2d36c0['count']=_0x4ba96f;if(_0x2a2ca9[_0xc53e('0x34')]['includeAll']){_0x437893[_0xc53e('0x42')]=[{'all':!![]}];}return db[_0xc53e('0x43')]['findAll'](_0x437893);})[_0xc53e('0x26')](function(_0x3a4ebc){_0x2d36c0['rows']=_0x3a4ebc;return _0x2d36c0;})[_0xc53e('0x26')](respondWithFilteredResult(_0x4ace0b,_0x437893))['catch'](handleError(_0x4ace0b,null));};exports['show']=function(_0x481e6d,_0x4efee5){var _0x887d78={'raw':!![],'where':{'id':_0x481e6d[_0xc53e('0x44')]['id']}},_0x17b586={};_0x17b586['model']=_[_0xc53e('0x35')](db[_0xc53e('0x43')]['rawAttributes']);_0x17b586['query']=_[_0xc53e('0x35')](_0x481e6d[_0xc53e('0x34')]);_0x17b586[_0xc53e('0x36')]=_['intersection'](_0x17b586[_0xc53e('0x33')],_0x17b586[_0xc53e('0x34')]);_0x887d78[_0xc53e('0x37')]=_[_0xc53e('0x38')](_0x17b586[_0xc53e('0x33')],qs[_0xc53e('0x39')](_0x481e6d[_0xc53e('0x34')]['fields']));_0x887d78[_0xc53e('0x37')]=_0x887d78[_0xc53e('0x37')][_0xc53e('0x3a')]?_0x887d78['attributes']:_0x17b586[_0xc53e('0x33')];if(_0x481e6d[_0xc53e('0x34')][_0xc53e('0x45')]){_0x887d78[_0xc53e('0x42')]=[{'all':!![]}];}_0x887d78=_[_0xc53e('0x40')]({},_0x887d78,_0x481e6d[_0xc53e('0x46')]);return db['AnalyticDefaultReport'][_0xc53e('0x47')](_0x887d78)[_0xc53e('0x26')](handleEntityNotFound(_0x4efee5,null))[_0xc53e('0x26')](respondWithResult(_0x4efee5,null))['catch'](handleError(_0x4efee5,null));};exports[_0xc53e('0x48')]=function(_0x1d2491,_0x1eeb65){return db[_0xc53e('0x43')][_0xc53e('0x48')](_0x1d2491[_0xc53e('0x49')],{})[_0xc53e('0x26')](function(_0x2ba2b4){var _0x34de2d=_0x1d2491[_0xc53e('0x4a')]['get']({'plain':!![]});if(!_0x34de2d)throw new Error(_0xc53e('0x4b'));if(_0x34de2d[_0xc53e('0x4c')]===_0xc53e('0x4a')){var _0x3d74ac=_0x2ba2b4[_0xc53e('0x28')]({'plain':!![]});var _0x52dac7='Reports';return db[_0xc53e('0x4d')]['find']({'where':{'name':_0x52dac7,'userProfileId':_0x34de2d[_0xc53e('0x4e')]},'raw':!![]})['then'](function(_0x3a49a4){if(_0x3a49a4&&_0x3a49a4[_0xc53e('0x4f')]===0x0){return db[_0xc53e('0x2a')]['create']({'name':_0x3d74ac[_0xc53e('0x2d')],'resourceId':_0x3d74ac['id'],'type':_0xc53e('0x29'),'sectionId':_0x3a49a4['id']},{})[_0xc53e('0x26')](function(){return _0x2ba2b4;});}else{return _0x2ba2b4;}})['catch'](function(_0x2f7df2){logger['error'](_0xc53e('0x50'),_0x2f7df2);throw _0x2f7df2;});}return _0x2ba2b4;})[_0xc53e('0x26')](respondWithResult(_0x1eeb65,0xc9))['catch'](handleError(_0x1eeb65,null));};exports[_0xc53e('0x25')]=function(_0x1515ea,_0x5bba72){if(_0x1515ea[_0xc53e('0x49')]['id']){delete _0x1515ea[_0xc53e('0x49')]['id'];}return db[_0xc53e('0x43')][_0xc53e('0x47')]({'where':{'id':_0x1515ea[_0xc53e('0x44')]['id']}})[_0xc53e('0x26')](handleEntityNotFound(_0x5bba72,null))[_0xc53e('0x26')](saveUpdates(_0x1515ea[_0xc53e('0x49')],null))[_0xc53e('0x26')](respondWithResult(_0x5bba72,null))[_0xc53e('0x51')](handleError(_0x5bba72,null));};exports[_0xc53e('0x27')]=function(_0x47dd5a,_0x8364f6){return db['AnalyticDefaultReport'][_0xc53e('0x47')]({'where':{'id':_0x47dd5a['params']['id']}})[_0xc53e('0x26')](handleEntityNotFound(_0x8364f6,null))[_0xc53e('0x26')](removeEntity(_0x8364f6,null))['catch'](handleError(_0x8364f6,null));};exports[_0xc53e('0x52')]=function(_0x7f0bc0,_0x9c0112){var _0x432a91=0xa;var _0x53083b=[_0xc53e('0x53'),_0xc53e('0x54'),'right_join','cross_join'];var _0x3c0aa1={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xc53e('0x55'),'MIN':'MIN(%s)','AVG':_0xc53e('0x56'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xc53e('0x57'),'GROUP_CONCAT DESC':_0xc53e('0x58')};var _0x5fcd58={'SEC_TO_TIME':_0xc53e('0x59'),'DATE':_0xc53e('0x5a'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xc53e('0x5b')};var _0x37b091=function(_0x31e22b){return!_[_0xc53e('0x5c')]([_0xc53e('0x5d'),_0xc53e('0x5e'),_0xc53e('0x5f'),_0xc53e('0x60')],_0x31e22b);};var _0x13bf71=function(_0x16d8a1){if(!_0x16d8a1||!_0x16d8a1[_0xc53e('0x61')][_0xc53e('0x3a')]){return'';}for(var _0xdc0e49='(',_0x520738=0x0;_0x520738<_0x16d8a1[_0xc53e('0x61')]['length'];_0x520738+=0x1){_0x520738>0x0&&(_0xdc0e49+='\x20'+_0x16d8a1[_0xc53e('0x62')]+'\x20');_0xdc0e49+=_0x16d8a1[_0xc53e('0x61')][_0x520738][_0xc53e('0x63')]?_0x13bf71(_0x16d8a1[_0xc53e('0x61')][_0x520738][_0xc53e('0x63')]):_0x16d8a1[_0xc53e('0x61')][_0x520738][_0xc53e('0x64')]+'\x20'+_0x16d8a1[_0xc53e('0x61')][_0x520738]['condition']+(_0x37b091(_0x16d8a1['rules'][_0x520738]['condition'])?'\x20'+_0x16d8a1[_0xc53e('0x61')][_0x520738][_0xc53e('0x65')]:'');}return _0xdc0e49+')';};var _0x37ac78={'where':{'id':_0x7f0bc0['params']['id']}},_0x25e4b6,_0x247d99,_0x160ca3,_0x3581ab,_0x5a9596;_0x37ac78=_['merge']({},_0x37ac78,_0x7f0bc0[_0xc53e('0x46')]);return db[_0xc53e('0x43')]['find'](_0x37ac78)[_0xc53e('0x26')](function(_0x235a6b){if(_0x235a6b){_0x25e4b6=_0x235a6b;return _0x235a6b[_0xc53e('0x66')]();}return null;})[_0xc53e('0x26')](function(_0x22829b){if(_0x22829b){if(!_0x22829b[_0xc53e('0x3a')]){throw new db['Sequelize']['ValidationErrorItem'](_0xc53e('0x67'),0x193);}_0x247d99=_0x22829b;return db[_0xc53e('0x68')][_0xc53e('0x69')]({'raw':!![]});}return null;})[_0xc53e('0x26')](function(_0x29ee08){if(_0x29ee08){_0x160ca3=_[_0xc53e('0x6a')](_0x29ee08,'id');var _0x5a1a4b;var _0x2b6734=squel[_0xc53e('0x6b')]();_0x2b6734[_0xc53e('0x6c')](_0x25e4b6[_0xc53e('0x6d')]);for(var _0x4d2609=0x0;_0x4d2609<_0x247d99[_0xc53e('0x3a')];_0x4d2609+=0x1){_0x5a1a4b=_0x247d99[_0x4d2609][_0xc53e('0x6e')]?_0x160ca3[_0x247d99[_0x4d2609][_0xc53e('0x6e')]][_0xc53e('0x6f')]:_0x247d99[_0x4d2609][_0xc53e('0x64')];_0x5a1a4b=_0x247d99[_0x4d2609][_0xc53e('0x70')]?_['replace'](_0x3c0aa1[_0x247d99[_0x4d2609][_0xc53e('0x70')]],'%s',_0x5a1a4b):_0x5a1a4b;_0x5a1a4b=_0x247d99[_0x4d2609][_0xc53e('0x71')]?_[_0xc53e('0x72')](_0x5fcd58[_0x247d99[_0x4d2609][_0xc53e('0x71')]],'%s',_0x5a1a4b):_0x5a1a4b;if(_0x247d99[_0x4d2609]['groupBy']){_0x2b6734['group'](_0x5a1a4b);}_0x247d99[_0x4d2609][_0xc53e('0x73')]&&_0x2b6734[_0xc53e('0x3c')](_0x5a1a4b,_0x247d99[_0x4d2609][_0xc53e('0x73')]===_0xc53e('0x74')?![]:!![]);_0x2b6734['field'](_0x5a1a4b,_0x247d99[_0x4d2609][_0xc53e('0x75')]||_0x5a1a4b);}if(_0x25e4b6['joins']){_0x25e4b6[_0xc53e('0x76')]=JSON['parse'](_0x25e4b6[_0xc53e('0x76')]);for(var _0x4e128a=0x0;_0x4e128a<_0x25e4b6[_0xc53e('0x76')][_0xc53e('0x3a')];_0x4e128a+=0x1){if(_0x25e4b6['joins'][_0x4e128a][_0xc53e('0x41')]&&_[_0xc53e('0x5c')](_0x53083b,_0x25e4b6['joins'][_0x4e128a]['type'])&&_0x25e4b6[_0xc53e('0x76')][_0x4e128a][_0xc53e('0x77')]&&_0x25e4b6['joins'][_0x4e128a]['foreignTable']&&_0x25e4b6[_0xc53e('0x76')][_0x4e128a]['foreignKey']){_0x2b6734[_0x25e4b6[_0xc53e('0x76')][_0x4e128a]['type']](_0x25e4b6[_0xc53e('0x76')][_0x4e128a][_0xc53e('0x78')],null,util[_0xc53e('0x71')](_0xc53e('0x79'),_0x25e4b6[_0xc53e('0x6d')],_0x25e4b6[_0xc53e('0x76')][_0x4e128a][_0xc53e('0x77')],_0x25e4b6[_0xc53e('0x76')][_0x4e128a][_0xc53e('0x78')],_0x25e4b6[_0xc53e('0x76')][_0x4e128a]['foreignKey']));}}}if(_0x25e4b6[_0xc53e('0x7a')]){_0x25e4b6['conditions']=JSON[_0xc53e('0x7b')](_0x25e4b6[_0xc53e('0x7a')]);_0x2b6734[_0xc53e('0x3e')](_0x13bf71(_0x25e4b6[_0xc53e('0x7a')][_0xc53e('0x63')]));}_0x5a9596=_0x2b6734[_0xc53e('0x7c')]();_0x2b6734[_0xc53e('0x1f')](_0x432a91);_0x2b6734[_0xc53e('0x1d')](0x0);logger[_0xc53e('0x7d')](_0xc53e('0x7e'),_0x2b6734['toString']());return dbH[_0xc53e('0x7f')]['query'](_0x2b6734[_0xc53e('0x80')](),{'type':dbH[_0xc53e('0x7f')][_0xc53e('0x81')]['SELECT']});}})[_0xc53e('0x26')](respondWithResult(_0x9c0112,null))[_0xc53e('0x51')](handleError(_0x9c0112,null));};function runReport(_0x381652,_0xec3738,_0x3a84a2){var _0x508671=_0xec3738[_0xc53e('0x2d')];var _0x48e337=0xa;var _0x56c66f=[_0xc53e('0x53'),_0xc53e('0x54'),_0xc53e('0x82'),'cross_join'];var _0x35b6dc={'SUM':_0xc53e('0x83'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xc53e('0x84'),'MAX':_0xc53e('0x55'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0xc53e('0x85'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xc53e('0x58')};var _0x3d2636={'SEC_TO_TIME':_0xc53e('0x59'),'DATE':'DATE(%s)','HOUR':_0xc53e('0x86'),'ROUND':_0xc53e('0x87'),'UNIX_TIMESTAMP':_0xc53e('0x5b')};var _0x4c8112=function(_0x1a8ae4){return!_[_0xc53e('0x5c')]([_0xc53e('0x5d'),_0xc53e('0x5e'),_0xc53e('0x5f'),'IS\x20NOT\x20EMPTY'],_0x1a8ae4);};var _0x3dac82=function(_0x325287){if(!_0x325287||!_0x325287[_0xc53e('0x61')][_0xc53e('0x3a')]){return'';}for(var _0xe6a976='(',_0x4102bc=0x0;_0x4102bc<_0x325287[_0xc53e('0x61')][_0xc53e('0x3a')];_0x4102bc+=0x1){_0x4102bc>0x0&&(_0xe6a976+='\x20'+_0x325287[_0xc53e('0x62')]+'\x20');_0xe6a976+=_0x325287['rules'][_0x4102bc][_0xc53e('0x63')]?_0x3dac82(_0x325287[_0xc53e('0x61')][_0x4102bc][_0xc53e('0x63')]):_0x325287[_0xc53e('0x61')][_0x4102bc][_0xc53e('0x64')]+'\x20'+_0x325287[_0xc53e('0x61')][_0x4102bc][_0xc53e('0x88')]+(_0x4c8112(_0x325287[_0xc53e('0x61')][_0x4102bc][_0xc53e('0x88')])?'\x20'+_0x325287['rules'][_0x4102bc][_0xc53e('0x65')]:'');}return _0xe6a976+')';};var _0x190509={'where':{'id':_0x381652['id']}},_0x110e32,_0x2135d4,_0x4bbf8a,_0x31b06d,_0x21fc8d;_0x190509=_[_0xc53e('0x40')]({},_0x190509,_0x3a84a2);return db[_0xc53e('0x43')]['find'](_0x190509)[_0xc53e('0x26')](function(_0x138870){if(_0x138870){_0x110e32=_0x138870;return _0x138870[_0xc53e('0x66')]();}return null;})[_0xc53e('0x26')](function(_0x621e78){if(_0x621e78){if(!_0x621e78[_0xc53e('0x3a')]){throw new db[(_0xc53e('0x89'))]['ValidationErrorItem'](_0xc53e('0x67'),0x193);}_0x2135d4=_0x621e78;return db['AnalyticMetric'][_0xc53e('0x69')]({'raw':!![]});}return null;})[_0xc53e('0x26')](function(_0x3fe278){if(_0x3fe278){_0x4bbf8a=_['keyBy'](_0x3fe278,'id');var _0x7c56eb;var _0x36dffe=squel[_0xc53e('0x6b')]();_0x36dffe['from'](_0x110e32[_0xc53e('0x6d')]);for(var _0xedb93a=0x0;_0xedb93a<_0x2135d4[_0xc53e('0x3a')];_0xedb93a+=0x1){_0x7c56eb=_0x2135d4[_0xedb93a]['MetricId']?_0x4bbf8a[_0x2135d4[_0xedb93a][_0xc53e('0x6e')]][_0xc53e('0x6f')]:_0x2135d4[_0xedb93a][_0xc53e('0x64')];_0x7c56eb=_0x2135d4[_0xedb93a][_0xc53e('0x70')]?_[_0xc53e('0x72')](_0x35b6dc[_0x2135d4[_0xedb93a]['function']],'%s',_0x7c56eb):_0x7c56eb;_0x7c56eb=_0x2135d4[_0xedb93a]['format']?_['replace'](_0x3d2636[_0x2135d4[_0xedb93a][_0xc53e('0x71')]],'%s',_0x7c56eb):_0x7c56eb;if(_0x2135d4[_0xedb93a][_0xc53e('0x8a')]){_0x36dffe[_0xc53e('0x63')](_0x7c56eb);}_0x2135d4[_0xedb93a][_0xc53e('0x73')]&&_0x36dffe['order'](_0x7c56eb,_0x2135d4[_0xedb93a][_0xc53e('0x73')]==='DESC'?![]:!![]);_0x36dffe[_0xc53e('0x64')](_0x7c56eb,_0x2135d4[_0xedb93a][_0xc53e('0x75')]||_0x7c56eb);}if(_0x110e32[_0xc53e('0x76')]){_0x110e32[_0xc53e('0x76')]=JSON['parse'](_0x110e32[_0xc53e('0x76')]);for(var _0xc23eef=0x0;_0xc23eef<_0x110e32[_0xc53e('0x76')][_0xc53e('0x3a')];_0xc23eef+=0x1){if(_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x41')]&&_[_0xc53e('0x5c')](_0x56c66f,_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x41')])&&_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x77')]&&_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x78')]&&_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x8b')]){_0x36dffe[_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x41')]](_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x78')],null,util[_0xc53e('0x71')](_0xc53e('0x79'),_0x110e32[_0xc53e('0x6d')],_0x110e32[_0xc53e('0x76')][_0xc23eef][_0xc53e('0x77')],_0x110e32[_0xc53e('0x76')][_0xc23eef]['foreignTable'],_0x110e32[_0xc53e('0x76')][_0xc23eef]['foreignKey']));}}}if(_0x110e32[_0xc53e('0x7a')]){_0x110e32[_0xc53e('0x7a')]=JSON['parse'](_0x110e32[_0xc53e('0x7a')]);_0x36dffe[_0xc53e('0x3e')](_0x3dac82(_0x110e32[_0xc53e('0x7a')][_0xc53e('0x63')]));}_0x21fc8d=_0x36dffe[_0xc53e('0x7c')]();_0x36dffe[_0xc53e('0x1f')](_0x48e337);_0x36dffe[_0xc53e('0x1d')](0x0);return;}})[_0xc53e('0x26')](function(){if(_0xec3738[_0xc53e('0x8c')]==='web'){return null;}var _0x37c8e6=_['merge'](_0xec3738,{'name':_0xec3738[_0xc53e('0x8d')]||_0xec3738[_0xc53e('0x2d')]||_0x110e32[_0xc53e('0x2d')],'basename':_0x508671,'savename':util[_0xc53e('0x71')](_0xc53e('0x8e'),_0xec3738[_0xc53e('0x2d')]||_0x110e32[_0xc53e('0x2d')],require(_0xc53e('0x8f'))[_0xc53e('0x90')](0x4),_0xec3738[_0xc53e('0x8c')]||_0xc53e('0x91')),'reportId':_0x110e32['id'],'reportType':_0xc53e('0x92')});return db[_0xc53e('0x93')]['create'](_0x37c8e6,{'raw':!![]});})[_0xc53e('0x26')](function(_0x575ef5){if(_0x110e32[_0xc53e('0x6d')]===_0xc53e('0x94')){_0x21fc8d[_0xc53e('0x3e')](_0x110e32[_0xc53e('0x6d')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0xec3738['startDate'],_0xec3738[_0xc53e('0x95')]);}else{_0x21fc8d[_0xc53e('0x3e')](_0x110e32[_0xc53e('0x6d')]+_0xc53e('0x96'),_0xec3738['startDate'],_0xec3738['endDate']);}if(_0x575ef5){logger[_0xc53e('0x97')](_0xc53e('0x98'),_0x21fc8d[_0xc53e('0x80')]());require(_0xc53e('0x99'))[_0xc53e('0x9a')](path[_0xc53e('0x53')](__dirname,'../../components/export/',_0x575ef5[_0xc53e('0x8c')]),[_0x575ef5['id'],_0x21fc8d[_0xc53e('0x80')](),path[_0xc53e('0x53')](__dirname,_0xc53e('0x9b'),_0x575ef5[_0xc53e('0x9c')]),_0x508671]);return _0x575ef5;}else{var _0x4f527e=squel[_0xc53e('0x6b')]();_0x4f527e[_0xc53e('0x6c')]('('+_0x21fc8d[_0xc53e('0x80')]()+')',_0xc53e('0x9d'));_0x4f527e[_0xc53e('0x64')](_0xc53e('0x9e'),_0xc53e('0x20'));_0x21fc8d[_0xc53e('0x1f')](_0xec3738[_0xc53e('0x1f')]||_0x48e337);_0x21fc8d[_0xc53e('0x1d')](_0xec3738[_0xc53e('0x1d')]||0x0);return dbH[_0xc53e('0x7f')][_0xc53e('0x34')](_0x4f527e['toString'](),{'type':dbH[_0xc53e('0x7f')][_0xc53e('0x81')]['SELECT']})[_0xc53e('0x26')](function(_0x4ee56b){if(!_0x4ee56b['length']){_0x31b06d=0x0;}else{_0x31b06d=_0x4ee56b[0x0][_0xc53e('0x20')]||0x0;}return dbH['sequelize'][_0xc53e('0x34')](_0x21fc8d['toString'](),{'type':dbH[_0xc53e('0x7f')]['QueryTypes'][_0xc53e('0x9f')]});})[_0xc53e('0x26')](function(_0x10ad32){return{'rows':_0x10ad32||[],'count':_0x31b06d};});}});}exports['run']=function(_0xf3f34a,_0x5dd87e){return runReport(_0xf3f34a[_0xc53e('0x44')],_0xf3f34a[_0xc53e('0x34')],_0xf3f34a[_0xc53e('0x46')])[_0xc53e('0x26')](respondWithResult(_0x5dd87e,null))[_0xc53e('0x51')](handleError(_0x5dd87e,null));};exports[_0xc53e('0xa0')]=runReport;exports[_0xc53e('0x34')]=function(_0x265292,_0x2c776c){var _0x383f22=0xa;var _0x51f2a4=['join',_0xc53e('0x54'),'right_join',_0xc53e('0xa1')];var _0xbc960={'SUM':_0xc53e('0x83'),'COUNT':_0xc53e('0xa2'),'COUNT DISTINCT':_0xc53e('0x84'),'MAX':_0xc53e('0x55'),'MIN':_0xc53e('0xa3'),'AVG':_0xc53e('0x56'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xc53e('0x57'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x34cb12={'SEC_TO_TIME':_0xc53e('0x59'),'DATE':_0xc53e('0x5a'),'HOUR':_0xc53e('0x86'),'ROUND':_0xc53e('0x87'),'UNIX_TIMESTAMP':_0xc53e('0x5b')};var _0x227e0c=function(_0x4c0802){return!_[_0xc53e('0x5c')]([_0xc53e('0x5d'),_0xc53e('0x5e'),_0xc53e('0x5f'),_0xc53e('0x60')],_0x4c0802);};var _0x590fb6=function(_0x15d269){if(!_0x15d269||!_0x15d269[_0xc53e('0x61')]['length']){return'';}for(var _0x5253b1='(',_0x208c17=0x0;_0x208c17<_0x15d269['rules'][_0xc53e('0x3a')];_0x208c17+=0x1){_0x208c17>0x0&&(_0x5253b1+='\x20'+_0x15d269[_0xc53e('0x62')]+'\x20');_0x5253b1+=_0x15d269['rules'][_0x208c17]['group']?_0x590fb6(_0x15d269[_0xc53e('0x61')][_0x208c17]['group']):_0x15d269[_0xc53e('0x61')][_0x208c17]['field']+'\x20'+_0x15d269[_0xc53e('0x61')][_0x208c17][_0xc53e('0x88')]+(_0x227e0c(_0x15d269[_0xc53e('0x61')][_0x208c17][_0xc53e('0x88')])?'\x20'+_0x15d269[_0xc53e('0x61')][_0x208c17]['value']:'');}return _0x5253b1+')';};var _0x2f5d22={'where':{'id':_0x265292[_0xc53e('0x44')]['id']}},_0x478e57,_0x5e427a,_0x3e666b,_0x365a98,_0x375d8b;_0x2f5d22=_[_0xc53e('0x40')]({},_0x2f5d22,_0x265292[_0xc53e('0x46')]);return db[_0xc53e('0x43')][_0xc53e('0x47')](_0x2f5d22)[_0xc53e('0x26')](function(_0x3b778b){if(_0x3b778b){_0x478e57=_0x3b778b;return _0x3b778b[_0xc53e('0x66')]();}return null;})[_0xc53e('0x26')](function(_0x55581a){if(_0x55581a){if(!_0x55581a[_0xc53e('0x3a')]){throw new db[(_0xc53e('0x89'))][(_0xc53e('0xa4'))](_0xc53e('0x67'),0x193);}_0x5e427a=_0x55581a;return db[_0xc53e('0x68')]['findAll']({'raw':!![]});}return null;})['then'](function(_0x34c717){if(_0x34c717){_0x3e666b=_[_0xc53e('0x6a')](_0x34c717,'id');var _0x2718fe;var _0x15014e=squel[_0xc53e('0x6b')]();_0x15014e[_0xc53e('0x6c')](_0x478e57[_0xc53e('0x6d')]);for(var _0x2d80f5=0x0;_0x2d80f5<_0x5e427a[_0xc53e('0x3a')];_0x2d80f5+=0x1){_0x2718fe=_0x5e427a[_0x2d80f5][_0xc53e('0x6e')]?_0x3e666b[_0x5e427a[_0x2d80f5][_0xc53e('0x6e')]][_0xc53e('0x6f')]:_0x5e427a[_0x2d80f5][_0xc53e('0x64')];_0x2718fe=_0x5e427a[_0x2d80f5]['function']?_[_0xc53e('0x72')](_0xbc960[_0x5e427a[_0x2d80f5][_0xc53e('0x70')]],'%s',_0x2718fe):_0x2718fe;_0x2718fe=_0x5e427a[_0x2d80f5]['format']?_[_0xc53e('0x72')](_0x34cb12[_0x5e427a[_0x2d80f5][_0xc53e('0x71')]],'%s',_0x2718fe):_0x2718fe;if(_0x5e427a[_0x2d80f5][_0xc53e('0x8a')]){_0x15014e['group'](_0x2718fe);}_0x5e427a[_0x2d80f5]['orderBy']&&_0x15014e[_0xc53e('0x3c')](_0x2718fe,_0x5e427a[_0x2d80f5][_0xc53e('0x73')]===_0xc53e('0x74')?![]:!![]);_0x15014e[_0xc53e('0x64')](_0x2718fe,_0x5e427a[_0x2d80f5]['alias']||_0x2718fe);}if(_0x478e57[_0xc53e('0x76')]){_0x478e57[_0xc53e('0x76')]=JSON[_0xc53e('0x7b')](_0x478e57['joins']);for(var _0x48d301=0x0;_0x48d301<_0x478e57[_0xc53e('0x76')][_0xc53e('0x3a')];_0x48d301+=0x1){if(_0x478e57[_0xc53e('0x76')][_0x48d301]['type']&&_[_0xc53e('0x5c')](_0x51f2a4,_0x478e57[_0xc53e('0x76')][_0x48d301]['type'])&&_0x478e57[_0xc53e('0x76')][_0x48d301][_0xc53e('0x77')]&&_0x478e57[_0xc53e('0x76')][_0x48d301][_0xc53e('0x78')]&&_0x478e57[_0xc53e('0x76')][_0x48d301]['foreignKey']){_0x15014e[_0x478e57[_0xc53e('0x76')][_0x48d301][_0xc53e('0x41')]](_0x478e57[_0xc53e('0x76')][_0x48d301]['foreignTable'],null,util['format'](_0xc53e('0x79'),_0x478e57[_0xc53e('0x6d')],_0x478e57[_0xc53e('0x76')][_0x48d301][_0xc53e('0x77')],_0x478e57[_0xc53e('0x76')][_0x48d301]['foreignTable'],_0x478e57[_0xc53e('0x76')][_0x48d301]['foreignKey']));}}}if(_0x478e57[_0xc53e('0x7a')]){_0x478e57[_0xc53e('0x7a')]=JSON[_0xc53e('0x7b')](_0x478e57[_0xc53e('0x7a')]);_0x15014e[_0xc53e('0x3e')](_0x590fb6(_0x478e57[_0xc53e('0x7a')][_0xc53e('0x63')]));}_0x375d8b=_0x15014e[_0xc53e('0x7c')]();_0x15014e[_0xc53e('0x1f')](_0x383f22);_0x15014e['offset'](0x0);logger[_0xc53e('0x7d')](_0xc53e('0x7e'),_0x15014e[_0xc53e('0x80')]());return dbH[_0xc53e('0x7f')][_0xc53e('0x34')](_0x15014e[_0xc53e('0x80')](),{'type':dbH['sequelize'][_0xc53e('0x81')][_0xc53e('0x9f')]});}})[_0xc53e('0x26')](function(){return{'sql':_0x375d8b[_0xc53e('0x80')]()};})[_0xc53e('0x26')](respondWithResult(_0x2c776c,null))[_0xc53e('0x51')](handleError(_0x2c776c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c5c=['../../config/environment','./analyticDefaultReport.attributes','exports','define','AnalyticDefaultReport','lodash','util','api','bluebird','path','rimraf'];(function(_0x172133,_0x10246b){var _0x2460e5=function(_0x3c4918){while(--_0x3c4918){_0x172133['push'](_0x172133['shift']());}};_0x2460e5(++_0x10246b);}(_0x4c5c,0x123));var _0xc4c5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4c5c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc4c5('0x0'));var util=require(_0xc4c5('0x1'));var logger=require('../../config/logger')(_0xc4c5('0x2'));var moment=require('moment');var BPromise=require(_0xc4c5('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc4c5('0x4'));var rimraf=require(_0xc4c5('0x5'));var config=require(_0xc4c5('0x6'));var attributes=require(_0xc4c5('0x7'));module[_0xc4c5('0x8')]=function(_0x55e1d4,_0x2baf0a){return _0x55e1d4[_0xc4c5('0x9')](_0xc4c5('0xa'),attributes,{'tableName':'analytics_default_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8da5=['lodash','util','../../config/logger','api','request-promise','rimraf','../../config/environment','./analyticDefaultReport.attributes','exports','define','AnalyticDefaultReport','analytics_default_reports'];(function(_0x238480,_0x57fb07){var _0x1f7717=function(_0x134d23){while(--_0x134d23){_0x238480['push'](_0x238480['shift']());}};_0x1f7717(++_0x57fb07);}(_0x8da5,0x180));var _0x58da=function(_0x1ba208,_0x1cf9d0){_0x1ba208=_0x1ba208-0x0;var _0x33cbce=_0x8da5[_0x1ba208];return _0x33cbce;};'use strict';var _=require(_0x58da('0x0'));var util=require(_0x58da('0x1'));var logger=require(_0x58da('0x2'))(_0x58da('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x58da('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x58da('0x5'));var config=require(_0x58da('0x6'));var attributes=require(_0x58da('0x7'));module[_0x58da('0x8')]=function(_0x5a5122,_0x363f61){return _0x5a5122[_0x58da('0x9')](_0x58da('0xa'),attributes,{'tableName':_0x58da('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb2c=['ioredis','../../mysqldb','../../config/utils','jayson/promise','http','then','AnalyticDefaultReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','randomstring'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xeb2c,0x1ca));var _0xceb2=function(_0x319784,_0x47e6d4){_0x319784=_0x319784-0x0;var _0x1917da=_0xeb2c[_0x319784];return _0x1917da;};'use strict';var _=require(_0xceb2('0x0'));var util=require(_0xceb2('0x1'));var moment=require(_0xceb2('0x2'));var BPromise=require('bluebird');var rs=require(_0xceb2('0x3'));var fs=require('fs');var Redis=require(_0xceb2('0x4'));var db=require(_0xceb2('0x5'))['db'];var utils=require(_0xceb2('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xceb2('0x7'));var client=jayson['client'][_0xceb2('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5047bb,_0x16a74e,_0x379fda){return new BPromise(function(_0x5cf4a8,_0x20ad36){return client['request'](_0x5047bb,_0x379fda)[_0xceb2('0x9')](function(_0x1cd6e8){logger['info'](_0xceb2('0xa'),_0x16a74e,_0xceb2('0xb'));logger[_0xceb2('0xc')](_0xceb2('0xd'),_0x16a74e,_0xceb2('0xb'),JSON[_0xceb2('0xe')](_0x1cd6e8));if(_0x1cd6e8[_0xceb2('0xf')]){if(_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x10')]===0x1f4){logger['error']('AnalyticDefaultReport,\x20%s,\x20%s',_0x16a74e,_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x11')]);return _0x20ad36(_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x11')]);}logger[_0xceb2('0xf')](_0xceb2('0xa'),_0x16a74e,_0x1cd6e8['error']['message']);return _0x5cf4a8(_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x11')]);}else{logger[_0xceb2('0x12')](_0xceb2('0xa'),_0x16a74e,_0xceb2('0xb'));_0x5cf4a8(_0x1cd6e8[_0xceb2('0x13')][_0xceb2('0x11')]);}})[_0xceb2('0x14')](function(_0x17673c){logger[_0xceb2('0xf')](_0xceb2('0xa'),_0x16a74e,_0x17673c);_0x20ad36(_0x17673c);});});}
\ No newline at end of file
+var _0x8e71=['util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','request','then','info','AnalyticDefaultReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash'];(function(_0x52efef,_0x572e27){var _0x5dd0d6=function(_0xae91fb){while(--_0xae91fb){_0x52efef['push'](_0x52efef['shift']());}};_0x5dd0d6(++_0x572e27);}(_0x8e71,0x92));var _0x18e7=function(_0x12f59c,_0x13d956){_0x12f59c=_0x12f59c-0x0;var _0x2db43e=_0x8e71[_0x12f59c];return _0x2db43e;};'use strict';var _=require(_0x18e7('0x0'));var util=require(_0x18e7('0x1'));var moment=require(_0x18e7('0x2'));var BPromise=require(_0x18e7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x18e7('0x4'))['db'];var utils=require(_0x18e7('0x5'));var logger=require(_0x18e7('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x18e7('0x7'));var client=jayson[_0x18e7('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3038b8,_0x7d666e,_0x1a6771){return new BPromise(function(_0x3f15bf,_0x18fb6b){return client[_0x18e7('0x9')](_0x3038b8,_0x1a6771)[_0x18e7('0xa')](function(_0x1fe707){logger[_0x18e7('0xb')](_0x18e7('0xc'),_0x7d666e,_0x18e7('0xd'));logger[_0x18e7('0xe')](_0x18e7('0xf'),_0x7d666e,_0x18e7('0xd'),JSON[_0x18e7('0x10')](_0x1fe707));if(_0x1fe707[_0x18e7('0x11')]){if(_0x1fe707[_0x18e7('0x11')][_0x18e7('0x12')]===0x1f4){logger[_0x18e7('0x11')](_0x18e7('0xc'),_0x7d666e,_0x1fe707['error']['message']);return _0x18fb6b(_0x1fe707['error'][_0x18e7('0x13')]);}logger[_0x18e7('0x11')](_0x18e7('0xc'),_0x7d666e,_0x1fe707[_0x18e7('0x11')]['message']);return _0x3f15bf(_0x1fe707[_0x18e7('0x11')]['message']);}else{logger['info'](_0x18e7('0xc'),_0x7d666e,_0x18e7('0xd'));_0x3f15bf(_0x1fe707[_0x18e7('0x14')][_0x18e7('0x13')]);}})['catch'](function(_0xbee483){logger[_0x18e7('0x11')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x7d666e,_0xbee483);_0x18fb6b(_0xbee483);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed60=['run','query','post','create','update','delete','/:id','destroy','exports','util','path','express','Router','../../components/interaction/service','./analyticDefaultReport.controller','isAuthenticated','index','get','show','/:id/preview','preview','/:id/run'];(function(_0x6b9a6d,_0x266f07){var _0x424859=function(_0x1b2dd1){while(--_0x1b2dd1){_0x6b9a6d['push'](_0x6b9a6d['shift']());}};_0x424859(++_0x266f07);}(_0xed60,0x77));var _0x0ed6=function(_0x3939ea,_0x10c50a){_0x3939ea=_0x3939ea-0x0;var _0x5af6c4=_0xed60[_0x3939ea];return _0x5af6c4;};'use strict';var multer=require('multer');var util=require(_0x0ed6('0x0'));var path=require(_0x0ed6('0x1'));var timeout=require('connect-timeout');var express=require(_0x0ed6('0x2'));var router=express[_0x0ed6('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x0ed6('0x4'));var config=require('../../config/environment');var controller=require(_0x0ed6('0x5'));router['get']('/',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x7')]);router[_0x0ed6('0x8')]('/:id',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x9')]);router[_0x0ed6('0x8')](_0x0ed6('0xa'),auth[_0x0ed6('0x6')](),controller[_0x0ed6('0xb')]);router['get'](_0x0ed6('0xc'),auth[_0x0ed6('0x6')](),controller[_0x0ed6('0xd')]);router[_0x0ed6('0x8')]('/:id/query',auth['isAuthenticated'](),controller[_0x0ed6('0xe')]);router[_0x0ed6('0xf')]('/',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x10')]);router['put']('/:id',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x11')]);router[_0x0ed6('0x12')](_0x0ed6('0x13'),auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x14')]);module[_0x0ed6('0x15')]=router;
\ No newline at end of file
+var _0x164d=['/:id/query','put','update','delete','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./analyticDefaultReport.controller','isAuthenticated','get','/:id','show','/:id/preview','preview','/:id/run','run'];(function(_0x240786,_0x2bd6e1){var _0xd3a543=function(_0xc091e3){while(--_0xc091e3){_0x240786['push'](_0x240786['shift']());}};_0xd3a543(++_0x2bd6e1);}(_0x164d,0x82));var _0xd164=function(_0x1cfacc,_0x167cca){_0x1cfacc=_0x1cfacc-0x0;var _0x5e8766=_0x164d[_0x1cfacc];return _0x5e8766;};'use strict';var multer=require(_0xd164('0x0'));var util=require('util');var path=require(_0xd164('0x1'));var timeout=require(_0xd164('0x2'));var express=require(_0xd164('0x3'));var router=express[_0xd164('0x4')]();var fs_extra=require(_0xd164('0x5'));var auth=require(_0xd164('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xd164('0x7'));var controller=require(_0xd164('0x8'));router['get']('/',auth[_0xd164('0x9')](),controller['index']);router[_0xd164('0xa')](_0xd164('0xb'),auth[_0xd164('0x9')](),controller[_0xd164('0xc')]);router[_0xd164('0xa')](_0xd164('0xd'),auth[_0xd164('0x9')](),controller[_0xd164('0xe')]);router[_0xd164('0xa')](_0xd164('0xf'),auth[_0xd164('0x9')](),controller[_0xd164('0x10')]);router[_0xd164('0xa')](_0xd164('0x11'),auth[_0xd164('0x9')](),controller['query']);router['post']('/',auth[_0xd164('0x9')](),controller['create']);router[_0xd164('0x12')](_0xd164('0xb'),auth[_0xd164('0x9')](),controller[_0xd164('0x13')]);router[_0xd164('0x14')]('/:id',auth[_0xd164('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9424=['scheduled','INTEGER','UNSIGNED','sequelize','moment','exports','STRING','csv','pdf','xlsx','DATE','Loading','manual'];(function(_0xb0f7c3,_0x4eae95){var _0x28ea68=function(_0x4395a7){while(--_0x4395a7){_0xb0f7c3['push'](_0xb0f7c3['shift']());}};_0x28ea68(++_0x4eae95);}(_0x9424,0x114));var _0x4942=function(_0xffc13f,_0x550cda){_0xffc13f=_0xffc13f-0x0;var _0x517f80=_0x9424[_0xffc13f];return _0x517f80;};'use strict';var Sequelize=require(_0x4942('0x0'));var moment=require(_0x4942('0x1'));module[_0x4942('0x2')]={'name':{'type':Sequelize[_0x4942('0x3')],'allowNull':![]},'basename':{'type':Sequelize[_0x4942('0x3')],'allowNull':![]},'output':{'type':Sequelize['ENUM'](_0x4942('0x4'),_0x4942('0x5'),_0x4942('0x6')),'allowNull':![],'defaultValue':_0x4942('0x4')},'savename':{'type':Sequelize[_0x4942('0x3')],'allowNull':![]},'startDate':{'type':Sequelize[_0x4942('0x7')]},'endDate':{'type':Sequelize['DATE']},'status':{'type':Sequelize[_0x4942('0x3')],'defaultValue':_0x4942('0x8')},'type':{'type':Sequelize['ENUM'](_0x4942('0x9'),_0x4942('0xa')),'allowNull':![],'defaultValue':_0x4942('0x9')},'reportId':{'type':Sequelize[_0x4942('0xb')](0xb)[_0x4942('0xc')]},'reportType':{'type':Sequelize[_0x4942('0x3')]}};
\ No newline at end of file
+var _0x64d3=['pdf','xlsx','DATE','Loading','manual','INTEGER','UNSIGNED','sequelize','moment','STRING','ENUM','csv'];(function(_0x17c441,_0x2cd80b){var _0x44d307=function(_0x3279ea){while(--_0x3279ea){_0x17c441['push'](_0x17c441['shift']());}};_0x44d307(++_0x2cd80b);}(_0x64d3,0x1e7));var _0x364d=function(_0x1a7a39,_0x47b900){_0x1a7a39=_0x1a7a39-0x0;var _0x24af5b=_0x64d3[_0x1a7a39];return _0x24af5b;};'use strict';var Sequelize=require(_0x364d('0x0'));var moment=require(_0x364d('0x1'));module['exports']={'name':{'type':Sequelize[_0x364d('0x2')],'allowNull':![]},'basename':{'type':Sequelize['STRING'],'allowNull':![]},'output':{'type':Sequelize[_0x364d('0x3')](_0x364d('0x4'),_0x364d('0x5'),_0x364d('0x6')),'allowNull':![],'defaultValue':_0x364d('0x4')},'savename':{'type':Sequelize[_0x364d('0x2')],'allowNull':![]},'startDate':{'type':Sequelize['DATE']},'endDate':{'type':Sequelize[_0x364d('0x7')]},'status':{'type':Sequelize['STRING'],'defaultValue':_0x364d('0x8')},'type':{'type':Sequelize[_0x364d('0x3')](_0x364d('0x9'),'scheduled'),'allowNull':![],'defaultValue':_0x364d('0x9')},'reportId':{'type':Sequelize[_0x364d('0xa')](0xb)[_0x364d('0xb')]},'reportType':{'type':Sequelize[_0x364d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a5e=['basename','savename','output','existsSync','join','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','root','server/files/reports','format','%s.%s','toLowerCase','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','stack','name','send','map','AnalyticExtractedReport','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','where','VIRTUAL','filter','merge','options','include','rows','catch','show','params','length','find','create','body','user','error'];(function(_0x280f4a,_0x2ed8d6){var _0x1bb157=function(_0x37de94){while(--_0x37de94){_0x280f4a['push'](_0x280f4a['shift']());}};_0x1bb157(++_0x2ed8d6);}(_0x0a5e,0x6c));var _0xe0a5=function(_0x288d6f,_0x4e66a2){_0x288d6f=_0x288d6f-0x0;var _0x547294=_0x0a5e[_0x288d6f];return _0x547294;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe0a5('0x0'));var jsonpatch=require(_0xe0a5('0x1'));var rp=require(_0xe0a5('0x2'));var moment=require(_0xe0a5('0x3'));var BPromise=require(_0xe0a5('0x4'));var Mustache=require(_0xe0a5('0x5'));var util=require(_0xe0a5('0x6'));var path=require(_0xe0a5('0x7'));var sox=require(_0xe0a5('0x8'));var csv=require(_0xe0a5('0x9'));var ejs=require(_0xe0a5('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe0a5('0xb'));var squel=require(_0xe0a5('0xc'));var crypto=require(_0xe0a5('0xd'));var jsforce=require(_0xe0a5('0xe'));var deskjs=require(_0xe0a5('0xf'));var toCsv=require(_0xe0a5('0x9'));var querystring=require(_0xe0a5('0x10'));var Papa=require(_0xe0a5('0x11'));var Redis=require(_0xe0a5('0x12'));var authService=require(_0xe0a5('0x13'));var qs=require(_0xe0a5('0x14'));var as=require(_0xe0a5('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe0a5('0x16'))('api');var utils=require(_0xe0a5('0x17'));var config=require(_0xe0a5('0x18'));var licenseUtil=require(_0xe0a5('0x19'));var db=require(_0xe0a5('0x1a'))['db'];function respondWithStatusCode(_0x53b422,_0xdd7091){_0xdd7091=_0xdd7091||0xcc;return function(_0x548060){if(_0x548060){return _0x53b422[_0xe0a5('0x1b')](_0xdd7091);}return _0x53b422[_0xe0a5('0x1c')](_0xdd7091)[_0xe0a5('0x1d')]();};}function respondWithResult(_0x25dc7e,_0x5253d1){_0x5253d1=_0x5253d1||0xc8;return function(_0x4d06f0){if(_0x4d06f0){return _0x25dc7e[_0xe0a5('0x1c')](_0x5253d1)[_0xe0a5('0x1e')](_0x4d06f0);}};}function respondWithFilteredResult(_0x2cfc52,_0x48b7b7){return function(_0x3b9a27){if(_0x3b9a27){var _0x4e804d=typeof _0x48b7b7[_0xe0a5('0x1f')]==='undefined'&&typeof _0x48b7b7[_0xe0a5('0x20')]===_0xe0a5('0x21');var _0x14e8cd=_0x3b9a27[_0xe0a5('0x22')];var _0x415c29=_0x4e804d?0x0:_0x48b7b7[_0xe0a5('0x1f')];var _0x3ae587=_0x4e804d?_0x3b9a27[_0xe0a5('0x22')]:_0x48b7b7['offset']+_0x48b7b7[_0xe0a5('0x20')];var _0x2e9acc;if(_0x3ae587>=_0x14e8cd){_0x3ae587=_0x14e8cd;_0x2e9acc=0xc8;}else{_0x2e9acc=0xce;}_0x2cfc52[_0xe0a5('0x1c')](_0x2e9acc);return _0x2cfc52[_0xe0a5('0x23')](_0xe0a5('0x24'),_0x415c29+'-'+_0x3ae587+'/'+_0x14e8cd)[_0xe0a5('0x1e')](_0x3b9a27);}return null;};}function patchUpdates(_0x1dad68){return function(_0x31cb1f){try{jsonpatch[_0xe0a5('0x25')](_0x31cb1f,_0x1dad68,!![]);}catch(_0x2a4463){return BPromise[_0xe0a5('0x26')](_0x2a4463);}return _0x31cb1f[_0xe0a5('0x27')]();};}function saveUpdates(_0x1d3435,_0xc1a73a){return function(_0x3bca76){if(_0x3bca76){return _0x3bca76[_0xe0a5('0x28')](_0x1d3435)[_0xe0a5('0x29')](function(_0x5c8589){return _0x5c8589;});}return null;};}function removeEntity(_0x3db5fc,_0x17ecd9){return function(_0x571e52){if(_0x571e52){return _0x571e52[_0xe0a5('0x2a')]()['then'](function(){var _0xe573ab=_0x571e52[_0xe0a5('0x2b')]({'plain':!![]});var _0x3c14d4=_0xe0a5('0x2c');return db[_0xe0a5('0x2d')][_0xe0a5('0x2a')]({'where':{'type':_0x3c14d4,'resourceId':_0xe573ab['id']}})[_0xe0a5('0x29')](function(){return _0x571e52;});})['then'](function(){_0x3db5fc[_0xe0a5('0x1c')](0xcc)[_0xe0a5('0x1d')]();});}};}function handleEntityNotFound(_0x24dc9b,_0x5db2b7){return function(_0x73f489){if(!_0x73f489){_0x24dc9b[_0xe0a5('0x1b')](0x194);}return _0x73f489;};}function handleError(_0x178dc8,_0x326ba0){_0x326ba0=_0x326ba0||0x1f4;return function(_0xa51400){logger['error'](_0xa51400[_0xe0a5('0x2e')]);if(_0xa51400['name']){delete _0xa51400[_0xe0a5('0x2f')];}_0x178dc8[_0xe0a5('0x1c')](_0x326ba0)[_0xe0a5('0x30')](_0xa51400);};}exports['index']=function(_0x312c5e,_0x5d1d55){var _0x160e34={},_0x45fd11={},_0x3b19c9={'count':0x0,'rows':[]};var _0x3ea67e=_[_0xe0a5('0x31')](db[_0xe0a5('0x32')][_0xe0a5('0x33')],function(_0xc23e75){return{'name':_0xc23e75['fieldName'],'type':_0xc23e75[_0xe0a5('0x34')][_0xe0a5('0x35')]};});_0x45fd11['model']=_[_0xe0a5('0x31')](_0x3ea67e,'name');_0x45fd11[_0xe0a5('0x36')]=_[_0xe0a5('0x37')](_0x312c5e[_0xe0a5('0x36')]);_0x45fd11[_0xe0a5('0x38')]=_[_0xe0a5('0x39')](_0x45fd11[_0xe0a5('0x3a')],_0x45fd11[_0xe0a5('0x36')]);_0x160e34[_0xe0a5('0x3b')]=_[_0xe0a5('0x39')](_0x45fd11[_0xe0a5('0x3a')],qs[_0xe0a5('0x3c')](_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x3c')]));_0x160e34[_0xe0a5('0x3b')]=_0x160e34[_0xe0a5('0x3b')]['length']?_0x160e34['attributes']:_0x45fd11[_0xe0a5('0x3a')];if(!_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x3d')]('nolimit')){_0x160e34[_0xe0a5('0x20')]=qs[_0xe0a5('0x20')](_0x312c5e['query']['limit']);_0x160e34[_0xe0a5('0x1f')]=qs[_0xe0a5('0x1f')](_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x1f')]);}_0x160e34['order']=qs['sort'](_0x312c5e[_0xe0a5('0x36')]['sort']);_0x160e34['where']=qs['filters'](_['pick'](_0x312c5e[_0xe0a5('0x36')],_0x45fd11[_0xe0a5('0x38')]),_0x3ea67e);if(_0x312c5e['query']['filter']){_0x160e34[_0xe0a5('0x3e')]=_['merge'](_0x160e34[_0xe0a5('0x3e')],{'$or':_[_0xe0a5('0x31')](_0x3ea67e,function(_0x2ec769){if(_0x2ec769[_0xe0a5('0x34')]!==_0xe0a5('0x3f')){var _0x277e6c={};_0x277e6c[_0x2ec769[_0xe0a5('0x2f')]]={'$like':'%'+_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x40')]+'%'};return _0x277e6c;}})});}_0x160e34=_[_0xe0a5('0x41')]({},_0x160e34,_0x312c5e[_0xe0a5('0x42')]);var _0x3b2441={'where':_0x160e34['where']};return db[_0xe0a5('0x32')][_0xe0a5('0x22')](_0x3b2441)['then'](function(_0x16727b){_0x3b19c9[_0xe0a5('0x22')]=_0x16727b;if(_0x312c5e['query']['includeAll']){_0x160e34[_0xe0a5('0x43')]=[{'all':!![]}];}return db[_0xe0a5('0x32')]['findAll'](_0x160e34);})[_0xe0a5('0x29')](function(_0x99373){_0x3b19c9[_0xe0a5('0x44')]=_0x99373;return _0x3b19c9;})['then'](respondWithFilteredResult(_0x5d1d55,_0x160e34))[_0xe0a5('0x45')](handleError(_0x5d1d55,null));};exports[_0xe0a5('0x46')]=function(_0x20e66e,_0x31a171){var _0x28ea8a={'raw':!![],'where':{'id':_0x20e66e[_0xe0a5('0x47')]['id']}},_0x32a0f1={};_0x32a0f1[_0xe0a5('0x3a')]=_[_0xe0a5('0x37')](db[_0xe0a5('0x32')]['rawAttributes']);_0x32a0f1[_0xe0a5('0x36')]=_['keys'](_0x20e66e[_0xe0a5('0x36')]);_0x32a0f1[_0xe0a5('0x38')]=_[_0xe0a5('0x39')](_0x32a0f1[_0xe0a5('0x3a')],_0x32a0f1[_0xe0a5('0x36')]);_0x28ea8a[_0xe0a5('0x3b')]=_[_0xe0a5('0x39')](_0x32a0f1[_0xe0a5('0x3a')],qs[_0xe0a5('0x3c')](_0x20e66e[_0xe0a5('0x36')][_0xe0a5('0x3c')]));_0x28ea8a[_0xe0a5('0x3b')]=_0x28ea8a[_0xe0a5('0x3b')][_0xe0a5('0x48')]?_0x28ea8a[_0xe0a5('0x3b')]:_0x32a0f1['model'];if(_0x20e66e['query']['includeAll']){_0x28ea8a['include']=[{'all':!![]}];}_0x28ea8a=_[_0xe0a5('0x41')]({},_0x28ea8a,_0x20e66e[_0xe0a5('0x42')]);return db[_0xe0a5('0x32')][_0xe0a5('0x49')](_0x28ea8a)['then'](handleEntityNotFound(_0x31a171,null))[_0xe0a5('0x29')](respondWithResult(_0x31a171,null))['catch'](handleError(_0x31a171,null));};exports['create']=function(_0x40c602,_0x2a7ef6){return db[_0xe0a5('0x32')][_0xe0a5('0x4a')](_0x40c602[_0xe0a5('0x4b')],{})[_0xe0a5('0x29')](function(_0x21f576){var _0x1bc8ec=_0x40c602[_0xe0a5('0x4c')][_0xe0a5('0x2b')]({'plain':!![]});if(!_0x1bc8ec)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1bc8ec['role']===_0xe0a5('0x4c')){var _0x37189c=_0x21f576[_0xe0a5('0x2b')]({'plain':!![]});var _0x48375d=_0xe0a5('0x2c');return db['UserProfileSection'][_0xe0a5('0x49')]({'where':{'name':_0x48375d,'userProfileId':_0x1bc8ec['userProfileId']},'raw':!![]})[_0xe0a5('0x29')](function(_0x10c58e){if(_0x10c58e&&_0x10c58e['autoAssociation']===0x0){return db[_0xe0a5('0x2d')][_0xe0a5('0x4a')]({'name':_0x37189c['name'],'resourceId':_0x37189c['id'],'type':_0x10c58e[_0xe0a5('0x2f')],'sectionId':_0x10c58e['id']},{})[_0xe0a5('0x29')](function(){return _0x21f576;});}else{return _0x21f576;}})[_0xe0a5('0x45')](function(_0x3d0233){logger[_0xe0a5('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3d0233);throw _0x3d0233;});}return _0x21f576;})[_0xe0a5('0x29')](respondWithResult(_0x2a7ef6,0xc9))['catch'](handleError(_0x2a7ef6,null));};exports[_0xe0a5('0x28')]=function(_0x2b2c3b,_0x2c0c55){if(_0x2b2c3b[_0xe0a5('0x4b')]['id']){delete _0x2b2c3b['body']['id'];}return db[_0xe0a5('0x32')][_0xe0a5('0x49')]({'where':{'id':_0x2b2c3b['params']['id']}})[_0xe0a5('0x29')](handleEntityNotFound(_0x2c0c55,null))[_0xe0a5('0x29')](saveUpdates(_0x2b2c3b[_0xe0a5('0x4b')],null))[_0xe0a5('0x29')](respondWithResult(_0x2c0c55,null))[_0xe0a5('0x45')](handleError(_0x2c0c55,null));};exports[_0xe0a5('0x2a')]=function(_0x378599,_0x5361ac){return db['AnalyticExtractedReport'][_0xe0a5('0x49')]({'where':{'id':_0x378599[_0xe0a5('0x47')]['id']}})[_0xe0a5('0x29')](handleEntityNotFound(_0x5361ac,null))[_0xe0a5('0x29')](removeEntity(_0x5361ac,null))[_0xe0a5('0x45')](handleError(_0x5361ac,null));};exports['download']=function(_0x514ba1,_0x6448db,_0x430ec3){return db[_0xe0a5('0x32')][_0xe0a5('0x49')]({'where':{'id':_0x514ba1[_0xe0a5('0x47')]['id']},'attributes':['name',_0xe0a5('0x4e'),_0xe0a5('0x4f'),_0xe0a5('0x50')],'raw':!![]})[_0xe0a5('0x29')](handleEntityNotFound(_0x6448db,null))['then'](function(_0x2f78d5){if(_0x2f78d5){if(!fs[_0xe0a5('0x51')](path[_0xe0a5('0x52')](config['root'],'server/files/reports',_0x2f78d5[_0xe0a5('0x4f')]))){throw new db[(_0xe0a5('0x53'))][(_0xe0a5('0x54'))](_0xe0a5('0x55'));}if(_0x514ba1['query'][_0xe0a5('0x56')]){return _0x6448db['sendStatus'](0xc8);}return _0x6448db[_0xe0a5('0x57')](path['join'](config[_0xe0a5('0x58')],_0xe0a5('0x59'),_0x2f78d5['savename']),util[_0xe0a5('0x5a')](_0xe0a5('0x5b'),_0x2f78d5[_0xe0a5('0x4e')]||_0x2f78d5['name'],_0x2f78d5[_0xe0a5('0x50')][_0xe0a5('0x5c')]()));}})[_0xe0a5('0x45')](handleError(_0x6448db,null));};
\ No newline at end of file
+var _0xf115=['where','merge','VIRTUAL','options','AnalyticExtractedReport','findAll','rows','catch','show','params','keys','includeAll','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','download','basename','output','existsSync','join','server/files/reports','savename','Sequelize','ValidationError','exists','root','format','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','sox','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','destroy','get','ExtractedReports','UserProfileResource','stack','name','index','rawAttributes','fieldName','type','key','model','map','query','filters','attributes','intersection','fields','length','nolimit','sort','pick','filter'];(function(_0x50e351,_0x35608c){var _0x418d06=function(_0x26145a){while(--_0x26145a){_0x50e351['push'](_0x50e351['shift']());}};_0x418d06(++_0x35608c);}(_0xf115,0x88));var _0x5f11=function(_0x42ed8f,_0x115d81){_0x42ed8f=_0x42ed8f-0x0;var _0x1aa640=_0xf115[_0x42ed8f];return _0x1aa640;};'use strict';var emlformat=require(_0x5f11('0x0'));var rimraf=require(_0x5f11('0x1'));var zipdir=require(_0x5f11('0x2'));var jsonpatch=require(_0x5f11('0x3'));var rp=require(_0x5f11('0x4'));var moment=require('moment');var BPromise=require(_0x5f11('0x5'));var Mustache=require('mustache');var util=require(_0x5f11('0x6'));var path=require('path');var sox=require(_0x5f11('0x7'));var csv=require('to-csv');var ejs=require(_0x5f11('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5f11('0x9'));var squel=require(_0x5f11('0xa'));var crypto=require(_0x5f11('0xb'));var jsforce=require(_0x5f11('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x5f11('0xd'));var querystring=require(_0x5f11('0xe'));var Papa=require(_0x5f11('0xf'));var Redis=require(_0x5f11('0x10'));var authService=require(_0x5f11('0x11'));var qs=require(_0x5f11('0x12'));var as=require(_0x5f11('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5f11('0x14'))('api');var utils=require(_0x5f11('0x15'));var config=require(_0x5f11('0x16'));var licenseUtil=require(_0x5f11('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5dc905,_0x3c0ea7){_0x3c0ea7=_0x3c0ea7||0xcc;return function(_0x9a9d20){if(_0x9a9d20){return _0x5dc905[_0x5f11('0x18')](_0x3c0ea7);}return _0x5dc905[_0x5f11('0x19')](_0x3c0ea7)[_0x5f11('0x1a')]();};}function respondWithResult(_0x26dfca,_0x507386){_0x507386=_0x507386||0xc8;return function(_0x3dba84){if(_0x3dba84){return _0x26dfca[_0x5f11('0x19')](_0x507386)[_0x5f11('0x1b')](_0x3dba84);}};}function respondWithFilteredResult(_0x513463,_0x2e2083){return function(_0x399cad){if(_0x399cad){var _0x17483a=typeof _0x2e2083[_0x5f11('0x1c')]===_0x5f11('0x1d')&&typeof _0x2e2083[_0x5f11('0x1e')]===_0x5f11('0x1d');var _0x17243f=_0x399cad[_0x5f11('0x1f')];var _0x3b883d=_0x17483a?0x0:_0x2e2083['offset'];var _0x560f50=_0x17483a?_0x399cad[_0x5f11('0x1f')]:_0x2e2083[_0x5f11('0x1c')]+_0x2e2083[_0x5f11('0x1e')];var _0x2bab43;if(_0x560f50>=_0x17243f){_0x560f50=_0x17243f;_0x2bab43=0xc8;}else{_0x2bab43=0xce;}_0x513463[_0x5f11('0x19')](_0x2bab43);return _0x513463[_0x5f11('0x20')](_0x5f11('0x21'),_0x3b883d+'-'+_0x560f50+'/'+_0x17243f)[_0x5f11('0x1b')](_0x399cad);}return null;};}function patchUpdates(_0x57c8f5){return function(_0x523038){try{jsonpatch['apply'](_0x523038,_0x57c8f5,!![]);}catch(_0x21b964){return BPromise[_0x5f11('0x22')](_0x21b964);}return _0x523038[_0x5f11('0x23')]();};}function saveUpdates(_0x4153b0,_0x5d23a1){return function(_0x55b3c3){if(_0x55b3c3){return _0x55b3c3['update'](_0x4153b0)[_0x5f11('0x24')](function(_0x1c9628){return _0x1c9628;});}return null;};}function removeEntity(_0x59ec7d,_0x287b04){return function(_0x2a028f){if(_0x2a028f){return _0x2a028f[_0x5f11('0x25')]()['then'](function(){var _0x5bc717=_0x2a028f[_0x5f11('0x26')]({'plain':!![]});var _0x451beb=_0x5f11('0x27');return db[_0x5f11('0x28')][_0x5f11('0x25')]({'where':{'type':_0x451beb,'resourceId':_0x5bc717['id']}})[_0x5f11('0x24')](function(){return _0x2a028f;});})[_0x5f11('0x24')](function(){_0x59ec7d[_0x5f11('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4166ac,_0x628e03){return function(_0x2be442){if(!_0x2be442){_0x4166ac[_0x5f11('0x18')](0x194);}return _0x2be442;};}function handleError(_0x284e41,_0x48c052){_0x48c052=_0x48c052||0x1f4;return function(_0x37dc8d){logger['error'](_0x37dc8d[_0x5f11('0x29')]);if(_0x37dc8d['name']){delete _0x37dc8d[_0x5f11('0x2a')];}_0x284e41[_0x5f11('0x19')](_0x48c052)['send'](_0x37dc8d);};}exports[_0x5f11('0x2b')]=function(_0x2fc04d,_0x3b5301){var _0x269347={},_0x77e94f={},_0x50418b={'count':0x0,'rows':[]};var _0x5e0ad4=_['map'](db['AnalyticExtractedReport'][_0x5f11('0x2c')],function(_0x434f8c){return{'name':_0x434f8c[_0x5f11('0x2d')],'type':_0x434f8c[_0x5f11('0x2e')][_0x5f11('0x2f')]};});_0x77e94f[_0x5f11('0x30')]=_[_0x5f11('0x31')](_0x5e0ad4,'name');_0x77e94f[_0x5f11('0x32')]=_['keys'](_0x2fc04d[_0x5f11('0x32')]);_0x77e94f[_0x5f11('0x33')]=_['intersection'](_0x77e94f[_0x5f11('0x30')],_0x77e94f[_0x5f11('0x32')]);_0x269347[_0x5f11('0x34')]=_[_0x5f11('0x35')](_0x77e94f[_0x5f11('0x30')],qs[_0x5f11('0x36')](_0x2fc04d[_0x5f11('0x32')][_0x5f11('0x36')]));_0x269347[_0x5f11('0x34')]=_0x269347[_0x5f11('0x34')][_0x5f11('0x37')]?_0x269347[_0x5f11('0x34')]:_0x77e94f[_0x5f11('0x30')];if(!_0x2fc04d[_0x5f11('0x32')]['hasOwnProperty'](_0x5f11('0x38'))){_0x269347[_0x5f11('0x1e')]=qs[_0x5f11('0x1e')](_0x2fc04d[_0x5f11('0x32')][_0x5f11('0x1e')]);_0x269347[_0x5f11('0x1c')]=qs[_0x5f11('0x1c')](_0x2fc04d['query']['offset']);}_0x269347['order']=qs[_0x5f11('0x39')](_0x2fc04d['query'][_0x5f11('0x39')]);_0x269347['where']=qs[_0x5f11('0x33')](_[_0x5f11('0x3a')](_0x2fc04d['query'],_0x77e94f[_0x5f11('0x33')]),_0x5e0ad4);if(_0x2fc04d[_0x5f11('0x32')][_0x5f11('0x3b')]){_0x269347[_0x5f11('0x3c')]=_[_0x5f11('0x3d')](_0x269347[_0x5f11('0x3c')],{'$or':_[_0x5f11('0x31')](_0x5e0ad4,function(_0x1cda37){if(_0x1cda37[_0x5f11('0x2e')]!==_0x5f11('0x3e')){var _0x4dce13={};_0x4dce13[_0x1cda37[_0x5f11('0x2a')]]={'$like':'%'+_0x2fc04d[_0x5f11('0x32')][_0x5f11('0x3b')]+'%'};return _0x4dce13;}})});}_0x269347=_[_0x5f11('0x3d')]({},_0x269347,_0x2fc04d[_0x5f11('0x3f')]);var _0x243844={'where':_0x269347[_0x5f11('0x3c')]};return db[_0x5f11('0x40')][_0x5f11('0x1f')](_0x243844)['then'](function(_0x116aa9){_0x50418b['count']=_0x116aa9;if(_0x2fc04d[_0x5f11('0x32')]['includeAll']){_0x269347['include']=[{'all':!![]}];}return db[_0x5f11('0x40')][_0x5f11('0x41')](_0x269347);})[_0x5f11('0x24')](function(_0x3bb22d){_0x50418b[_0x5f11('0x42')]=_0x3bb22d;return _0x50418b;})[_0x5f11('0x24')](respondWithFilteredResult(_0x3b5301,_0x269347))[_0x5f11('0x43')](handleError(_0x3b5301,null));};exports[_0x5f11('0x44')]=function(_0x3ee7d9,_0xa73f2f){var _0x4314ae={'raw':!![],'where':{'id':_0x3ee7d9[_0x5f11('0x45')]['id']}},_0x4a1f8d={};_0x4a1f8d[_0x5f11('0x30')]=_['keys'](db['AnalyticExtractedReport']['rawAttributes']);_0x4a1f8d[_0x5f11('0x32')]=_[_0x5f11('0x46')](_0x3ee7d9[_0x5f11('0x32')]);_0x4a1f8d[_0x5f11('0x33')]=_[_0x5f11('0x35')](_0x4a1f8d[_0x5f11('0x30')],_0x4a1f8d[_0x5f11('0x32')]);_0x4314ae['attributes']=_['intersection'](_0x4a1f8d[_0x5f11('0x30')],qs['fields'](_0x3ee7d9[_0x5f11('0x32')][_0x5f11('0x36')]));_0x4314ae[_0x5f11('0x34')]=_0x4314ae['attributes'][_0x5f11('0x37')]?_0x4314ae[_0x5f11('0x34')]:_0x4a1f8d[_0x5f11('0x30')];if(_0x3ee7d9[_0x5f11('0x32')][_0x5f11('0x47')]){_0x4314ae[_0x5f11('0x48')]=[{'all':!![]}];}_0x4314ae=_['merge']({},_0x4314ae,_0x3ee7d9[_0x5f11('0x3f')]);return db[_0x5f11('0x40')]['find'](_0x4314ae)[_0x5f11('0x24')](handleEntityNotFound(_0xa73f2f,null))[_0x5f11('0x24')](respondWithResult(_0xa73f2f,null))[_0x5f11('0x43')](handleError(_0xa73f2f,null));};exports['create']=function(_0x1e1be0,_0x352d5a){return db[_0x5f11('0x40')][_0x5f11('0x49')](_0x1e1be0[_0x5f11('0x4a')],{})[_0x5f11('0x24')](function(_0xc893ca){var _0x1c739a=_0x1e1be0[_0x5f11('0x4b')][_0x5f11('0x26')]({'plain':!![]});if(!_0x1c739a)throw new Error(_0x5f11('0x4c'));if(_0x1c739a[_0x5f11('0x4d')]===_0x5f11('0x4b')){var _0x2e867a=_0xc893ca[_0x5f11('0x26')]({'plain':!![]});var _0x4fb1d4='ExtractedReports';return db['UserProfileSection'][_0x5f11('0x4e')]({'where':{'name':_0x4fb1d4,'userProfileId':_0x1c739a[_0x5f11('0x4f')]},'raw':!![]})[_0x5f11('0x24')](function(_0x33f0e1){if(_0x33f0e1&&_0x33f0e1[_0x5f11('0x50')]===0x0){return db['UserProfileResource']['create']({'name':_0x2e867a['name'],'resourceId':_0x2e867a['id'],'type':_0x33f0e1[_0x5f11('0x2a')],'sectionId':_0x33f0e1['id']},{})[_0x5f11('0x24')](function(){return _0xc893ca;});}else{return _0xc893ca;}})[_0x5f11('0x43')](function(_0x5bf90e){logger[_0x5f11('0x51')](_0x5f11('0x52'),_0x5bf90e);throw _0x5bf90e;});}return _0xc893ca;})[_0x5f11('0x24')](respondWithResult(_0x352d5a,0xc9))[_0x5f11('0x43')](handleError(_0x352d5a,null));};exports[_0x5f11('0x53')]=function(_0x175077,_0x3dc810){if(_0x175077[_0x5f11('0x4a')]['id']){delete _0x175077[_0x5f11('0x4a')]['id'];}return db[_0x5f11('0x40')][_0x5f11('0x4e')]({'where':{'id':_0x175077[_0x5f11('0x45')]['id']}})[_0x5f11('0x24')](handleEntityNotFound(_0x3dc810,null))['then'](saveUpdates(_0x175077[_0x5f11('0x4a')],null))[_0x5f11('0x24')](respondWithResult(_0x3dc810,null))[_0x5f11('0x43')](handleError(_0x3dc810,null));};exports[_0x5f11('0x25')]=function(_0xcc6db8,_0x239168){return db[_0x5f11('0x40')][_0x5f11('0x4e')]({'where':{'id':_0xcc6db8[_0x5f11('0x45')]['id']}})['then'](handleEntityNotFound(_0x239168,null))['then'](removeEntity(_0x239168,null))[_0x5f11('0x43')](handleError(_0x239168,null));};exports[_0x5f11('0x54')]=function(_0x29a913,_0x851af8,_0x1c7f49){return db[_0x5f11('0x40')][_0x5f11('0x4e')]({'where':{'id':_0x29a913['params']['id']},'attributes':['name',_0x5f11('0x55'),'savename',_0x5f11('0x56')],'raw':!![]})[_0x5f11('0x24')](handleEntityNotFound(_0x851af8,null))[_0x5f11('0x24')](function(_0x5357ec){if(_0x5357ec){if(!fs[_0x5f11('0x57')](path[_0x5f11('0x58')](config['root'],_0x5f11('0x59'),_0x5357ec[_0x5f11('0x5a')]))){throw new db[(_0x5f11('0x5b'))][(_0x5f11('0x5c'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x29a913['query'][_0x5f11('0x5d')]){return _0x851af8[_0x5f11('0x18')](0xc8);}return _0x851af8[_0x5f11('0x54')](path['join'](config[_0x5f11('0x5e')],_0x5f11('0x59'),_0x5357ec[_0x5f11('0x5a')]),util[_0x5f11('0x5f')](_0x5f11('0x60'),_0x5357ec[_0x5f11('0x55')]||_0x5357ec[_0x5f11('0x2a')],_0x5357ec[_0x5f11('0x56')][_0x5f11('0x61')]()));}})[_0x5f11('0x43')](handleError(_0x851af8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8e3=['AnalyticExtractedReport','analytics_extracted_reports','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./analyticExtractedReport.attributes','exports','define'];(function(_0x1fc512,_0x1996db){var _0xae94b9=function(_0x18f59d){while(--_0x18f59d){_0x1fc512['push'](_0x1fc512['shift']());}};_0xae94b9(++_0x1996db);}(_0xa8e3,0x9c));var _0x3a8e=function(_0x10dc64,_0x11bb29){_0x10dc64=_0x10dc64-0x0;var _0x9cf98d=_0xa8e3[_0x10dc64];return _0x9cf98d;};'use strict';var _=require(_0x3a8e('0x0'));var util=require(_0x3a8e('0x1'));var logger=require(_0x3a8e('0x2'))(_0x3a8e('0x3'));var moment=require(_0x3a8e('0x4'));var BPromise=require(_0x3a8e('0x5'));var rp=require(_0x3a8e('0x6'));var fs=require('fs');var path=require(_0x3a8e('0x7'));var rimraf=require(_0x3a8e('0x8'));var config=require('../../config/environment');var attributes=require(_0x3a8e('0x9'));module[_0x3a8e('0xa')]=function(_0x1c0fd8,_0x82604d){return _0x1c0fd8[_0x3a8e('0xb')](_0x3a8e('0xc'),attributes,{'tableName':_0x3a8e('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb31a=['define','AnalyticExtractedReport','analytics_extracted_reports','lodash','moment','bluebird','request-promise','path','../../config/environment','./analyticExtractedReport.attributes','exports'];(function(_0x16dbec,_0x133595){var _0x6785b4=function(_0x50a214){while(--_0x50a214){_0x16dbec['push'](_0x16dbec['shift']());}};_0x6785b4(++_0x133595);}(_0xb31a,0x7c));var _0xab31=function(_0x4ece6b,_0x20e7f5){_0x4ece6b=_0x4ece6b-0x0;var _0x1dae24=_0xb31a[_0x4ece6b];return _0x1dae24;};'use strict';var _=require(_0xab31('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xab31('0x1'));var BPromise=require(_0xab31('0x2'));var rp=require(_0xab31('0x3'));var fs=require('fs');var path=require(_0xab31('0x4'));var rimraf=require('rimraf');var config=require(_0xab31('0x5'));var attributes=require(_0xab31('0x6'));module[_0xab31('0x7')]=function(_0x3d93f5,_0x2a3629){return _0x3d93f5[_0xab31('0x8')](_0xab31('0x9'),attributes,{'tableName':_0xab31('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f18=['moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash'];(function(_0x90f2d6,_0x34b9ca){var _0x59544c=function(_0x2ff9c4){while(--_0x2ff9c4){_0x90f2d6['push'](_0x90f2d6['shift']());}};_0x59544c(++_0x34b9ca);}(_0x6f18,0x1b4));var _0x86f1=function(_0x203339,_0x3f0e16){_0x203339=_0x203339-0x0;var _0x14f4a0=_0x6f18[_0x203339];return _0x14f4a0;};'use strict';var _=require(_0x86f1('0x0'));var util=require('util');var moment=require(_0x86f1('0x1'));var BPromise=require('bluebird');var rs=require(_0x86f1('0x2'));var fs=require('fs');var Redis=require(_0x86f1('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x86f1('0x4'));var logger=require(_0x86f1('0x5'))('rpc');var config=require(_0x86f1('0x6'));var jayson=require(_0x86f1('0x7'));var client=jayson[_0x86f1('0x8')][_0x86f1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x403f48,_0x4c7943,_0x5b0f45){return new BPromise(function(_0x3cc3c5,_0x3223eb){return client[_0x86f1('0xa')](_0x403f48,_0x5b0f45)[_0x86f1('0xb')](function(_0x4f1f6e){logger[_0x86f1('0xc')](_0x86f1('0xd'),_0x4c7943,_0x86f1('0xe'));logger[_0x86f1('0xf')](_0x86f1('0x10'),_0x4c7943,_0x86f1('0xe'),JSON[_0x86f1('0x11')](_0x4f1f6e));if(_0x4f1f6e[_0x86f1('0x12')]){if(_0x4f1f6e['error'][_0x86f1('0x13')]===0x1f4){logger[_0x86f1('0x12')](_0x86f1('0xd'),_0x4c7943,_0x4f1f6e[_0x86f1('0x12')][_0x86f1('0x14')]);return _0x3223eb(_0x4f1f6e[_0x86f1('0x12')]['message']);}logger[_0x86f1('0x12')](_0x86f1('0xd'),_0x4c7943,_0x4f1f6e[_0x86f1('0x12')][_0x86f1('0x14')]);return _0x3cc3c5(_0x4f1f6e[_0x86f1('0x12')][_0x86f1('0x14')]);}else{logger[_0x86f1('0xc')](_0x86f1('0xd'),_0x4c7943,'request\x20sent');_0x3cc3c5(_0x4f1f6e[_0x86f1('0x15')][_0x86f1('0x14')]);}})[_0x86f1('0x16')](function(_0x4452c4){logger[_0x86f1('0x12')](_0x86f1('0xd'),_0x4c7943,_0x4452c4);_0x3223eb(_0x4452c4);});});}
\ No newline at end of file
+var _0x1869=['ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring'];(function(_0x199b4c,_0x3c0920){var _0x36c372=function(_0x52f27c){while(--_0x52f27c){_0x199b4c['push'](_0x199b4c['shift']());}};_0x36c372(++_0x3c0920);}(_0x1869,0x1c3));var _0x9186=function(_0x7af2bd,_0x23021a){_0x7af2bd=_0x7af2bd-0x0;var _0x458a6f=_0x1869[_0x7af2bd];return _0x458a6f;};'use strict';var _=require(_0x9186('0x0'));var util=require(_0x9186('0x1'));var moment=require(_0x9186('0x2'));var BPromise=require(_0x9186('0x3'));var rs=require(_0x9186('0x4'));var fs=require('fs');var Redis=require(_0x9186('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x9186('0x6'));var logger=require(_0x9186('0x7'))(_0x9186('0x8'));var config=require(_0x9186('0x9'));var jayson=require(_0x9186('0xa'));var client=jayson[_0x9186('0xb')][_0x9186('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x15949d,_0x1a39af,_0x2b881){return new BPromise(function(_0xacb782,_0x3762ec){return client[_0x9186('0xd')](_0x15949d,_0x2b881)[_0x9186('0xe')](function(_0x2e05da){logger[_0x9186('0xf')](_0x9186('0x10'),_0x1a39af,_0x9186('0x11'));logger['debug'](_0x9186('0x12'),_0x1a39af,'request\x20sent',JSON[_0x9186('0x13')](_0x2e05da));if(_0x2e05da[_0x9186('0x14')]){if(_0x2e05da['error'][_0x9186('0x15')]===0x1f4){logger[_0x9186('0x14')](_0x9186('0x10'),_0x1a39af,_0x2e05da[_0x9186('0x14')]['message']);return _0x3762ec(_0x2e05da[_0x9186('0x14')][_0x9186('0x16')]);}logger[_0x9186('0x14')](_0x9186('0x10'),_0x1a39af,_0x2e05da[_0x9186('0x14')][_0x9186('0x16')]);return _0xacb782(_0x2e05da['error'][_0x9186('0x16')]);}else{logger[_0x9186('0xf')](_0x9186('0x10'),_0x1a39af,_0x9186('0x11'));_0xacb782(_0x2e05da[_0x9186('0x17')][_0x9186('0x16')]);}})['catch'](function(_0x18739a){logger[_0x9186('0x14')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x1a39af,_0x18739a);_0x3762ec(_0x18739a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf410=['update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','/:id','show','get','/:id/download','create'];(function(_0x28d52c,_0x3720f1){var _0x4ef1a0=function(_0x59ae2b){while(--_0x59ae2b){_0x28d52c['push'](_0x28d52c['shift']());}};_0x4ef1a0(++_0x3720f1);}(_0xf410,0xb7));var _0x0f41=function(_0x1fbf48,_0x15a4c7){_0x1fbf48=_0x1fbf48-0x0;var _0x3eb293=_0xf410[_0x1fbf48];return _0x3eb293;};'use strict';var multer=require(_0x0f41('0x0'));var util=require(_0x0f41('0x1'));var path=require(_0x0f41('0x2'));var timeout=require(_0x0f41('0x3'));var express=require(_0x0f41('0x4'));var router=express[_0x0f41('0x5')]();var fs_extra=require(_0x0f41('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x0f41('0x7'));var config=require(_0x0f41('0x8'));var controller=require('./analyticExtractedReport.controller');router['get']('/',auth[_0x0f41('0x9')](),controller['index']);router['get'](_0x0f41('0xa'),auth['isAuthenticated'](),controller[_0x0f41('0xb')]);router[_0x0f41('0xc')](_0x0f41('0xd'),auth[_0x0f41('0x9')](),controller['download']);router['post']('/',auth['isAuthenticated'](),controller[_0x0f41('0xe')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x0f41('0xf')]);router['delete'](_0x0f41('0xa'),auth[_0x0f41('0x9')](),controller[_0x0f41('0x10')]);module[_0x0f41('0x11')]=router;
\ No newline at end of file
+var _0x12fa=['../../components/interaction/service','../../config/environment','./analyticExtractedReport.controller','get','isAuthenticated','index','show','post','create','put','update','/:id','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x1807b4,_0x1a2315){var _0x380523=function(_0x3af905){while(--_0x3af905){_0x1807b4['push'](_0x1807b4['shift']());}};_0x380523(++_0x1a2315);}(_0x12fa,0xfd));var _0xa12f=function(_0x1d721e,_0x329bfe){_0x1d721e=_0x1d721e-0x0;var _0x458fa9=_0x12fa[_0x1d721e];return _0x458fa9;};'use strict';var multer=require('multer');var util=require(_0xa12f('0x0'));var path=require(_0xa12f('0x1'));var timeout=require(_0xa12f('0x2'));var express=require(_0xa12f('0x3'));var router=express[_0xa12f('0x4')]();var fs_extra=require(_0xa12f('0x5'));var auth=require(_0xa12f('0x6'));var interaction=require(_0xa12f('0x7'));var config=require(_0xa12f('0x8'));var controller=require(_0xa12f('0x9'));router[_0xa12f('0xa')]('/',auth[_0xa12f('0xb')](),controller[_0xa12f('0xc')]);router[_0xa12f('0xa')]('/:id',auth[_0xa12f('0xb')](),controller[_0xa12f('0xd')]);router[_0xa12f('0xa')]('/:id/download',auth['isAuthenticated'](),controller['download']);router[_0xa12f('0xe')]('/',auth[_0xa12f('0xb')](),controller[_0xa12f('0xf')]);router[_0xa12f('0x10')]('/:id',auth[_0xa12f('0xb')](),controller[_0xa12f('0x11')]);router['delete'](_0xa12f('0x12'),auth[_0xa12f('0xb')](),controller['destroy']);module[_0xa12f('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d39=['BOOLEAN','exports','TEXT','STRING'];(function(_0x395a86,_0x8664f1){var _0x1a9722=function(_0x4ce4a7){while(--_0x4ce4a7){_0x395a86['push'](_0x395a86['shift']());}};_0x1a9722(++_0x8664f1);}(_0x0d39,0xa5));var _0x90d3=function(_0x5b48ec,_0x11cb52){_0x5b48ec=_0x5b48ec-0x0;var _0x2b73d4=_0x0d39[_0x5b48ec];return _0x2b73d4;};'use strict';var Sequelize=require('sequelize');module[_0x90d3('0x0')]={'field':{'type':Sequelize[_0x90d3('0x1')]},'alias':{'type':Sequelize[_0x90d3('0x2')]},'function':{'type':Sequelize[_0x90d3('0x2')]},'format':{'type':Sequelize[_0x90d3('0x2')]},'groupBy':{'type':Sequelize[_0x90d3('0x3')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x90d3('0x2')]},'custom':{'type':Sequelize[_0x90d3('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0xcda0=['TEXT','STRING','BOOLEAN','sequelize','exports'];(function(_0x442b6e,_0x27c6b1){var _0x349e9c=function(_0x370f05){while(--_0x370f05){_0x442b6e['push'](_0x442b6e['shift']());}};_0x349e9c(++_0x27c6b1);}(_0xcda0,0x19d));var _0x0cda=function(_0x39a873,_0x449c58){_0x39a873=_0x39a873-0x0;var _0x3a2c5f=_0xcda0[_0x39a873];return _0x3a2c5f;};'use strict';var Sequelize=require(_0x0cda('0x0'));module[_0x0cda('0x1')]={'field':{'type':Sequelize[_0x0cda('0x2')]},'alias':{'type':Sequelize[_0x0cda('0x3')]},'function':{'type':Sequelize[_0x0cda('0x3')]},'format':{'type':Sequelize[_0x0cda('0x3')]},'groupBy':{'type':Sequelize[_0x0cda('0x4')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x0cda('0x3')]},'custom':{'type':Sequelize[_0x0cda('0x4')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd10c=['filter','merge','VIRTUAL','count','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','create','bulkCreate','body','update','ids','findOne','transaction','CustomReportId','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','Content-Range','reject','save','then','destroy','error','name','send','index','AnalyticFieldReport','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x946518,_0x22816f){var _0x909b69=function(_0x2fa5a4){while(--_0x2fa5a4){_0x946518['push'](_0x946518['shift']());}};_0x909b69(++_0x22816f);}(_0xd10c,0x15a));var _0xcd10=function(_0x194ed9,_0x347fe8){_0x194ed9=_0x194ed9-0x0;var _0x56780d=_0xd10c[_0x194ed9];return _0x56780d;};'use strict';var emlformat=require(_0xcd10('0x0'));var rimraf=require(_0xcd10('0x1'));var zipdir=require(_0xcd10('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcd10('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xcd10('0x4'));var util=require(_0xcd10('0x5'));var path=require(_0xcd10('0x6'));var sox=require('sox');var csv=require(_0xcd10('0x7'));var ejs=require(_0xcd10('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xcd10('0x9'));var crypto=require(_0xcd10('0xa'));var jsforce=require(_0xcd10('0xb'));var deskjs=require(_0xcd10('0xc'));var toCsv=require(_0xcd10('0x7'));var querystring=require(_0xcd10('0xd'));var Papa=require(_0xcd10('0xe'));var Redis=require(_0xcd10('0xf'));var authService=require(_0xcd10('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xcd10('0x11'));var hardwareService=require(_0xcd10('0x12'));var logger=require(_0xcd10('0x13'))('api');var utils=require(_0xcd10('0x14'));var config=require(_0xcd10('0x15'));var licenseUtil=require(_0xcd10('0x16'));var db=require(_0xcd10('0x17'))['db'];function respondWithStatusCode(_0x4d2962,_0xfb1a0f){_0xfb1a0f=_0xfb1a0f||0xcc;return function(_0x1b0233){if(_0x1b0233){return _0x4d2962[_0xcd10('0x18')](_0xfb1a0f);}return _0x4d2962[_0xcd10('0x19')](_0xfb1a0f)[_0xcd10('0x1a')]();};}function respondWithResult(_0x38cc60,_0x4edeff){_0x4edeff=_0x4edeff||0xc8;return function(_0x27c261){if(_0x27c261){return _0x38cc60[_0xcd10('0x19')](_0x4edeff)[_0xcd10('0x1b')](_0x27c261);}};}function respondWithFilteredResult(_0x5b804b,_0x4eed67){return function(_0x1da47f){if(_0x1da47f){var _0x39c990=typeof _0x4eed67['offset']===_0xcd10('0x1c')&&typeof _0x4eed67[_0xcd10('0x1d')]==='undefined';var _0x5898b7=_0x1da47f['count'];var _0x28fed8=_0x39c990?0x0:_0x4eed67['offset'];var _0xaed201=_0x39c990?_0x1da47f['count']:_0x4eed67[_0xcd10('0x1e')]+_0x4eed67[_0xcd10('0x1d')];var _0xe31113;if(_0xaed201>=_0x5898b7){_0xaed201=_0x5898b7;_0xe31113=0xc8;}else{_0xe31113=0xce;}_0x5b804b[_0xcd10('0x19')](_0xe31113);return _0x5b804b['set'](_0xcd10('0x1f'),_0x28fed8+'-'+_0xaed201+'/'+_0x5898b7)[_0xcd10('0x1b')](_0x1da47f);}return null;};}function patchUpdates(_0x3fea7b){return function(_0x267424){try{jsonpatch['apply'](_0x267424,_0x3fea7b,!![]);}catch(_0x5a6a67){return BPromise[_0xcd10('0x20')](_0x5a6a67);}return _0x267424[_0xcd10('0x21')]();};}function saveUpdates(_0x2fa62b,_0x5a9c8e){return function(_0x5b6ad6){if(_0x5b6ad6){return _0x5b6ad6['update'](_0x2fa62b)[_0xcd10('0x22')](function(_0x2339a7){return _0x2339a7;});}return null;};}function removeEntity(_0x23a3e7,_0x1dd554){return function(_0x533056){if(_0x533056){return _0x533056[_0xcd10('0x23')]()[_0xcd10('0x22')](function(){_0x23a3e7[_0xcd10('0x19')](0xcc)[_0xcd10('0x1a')]();});}};}function handleEntityNotFound(_0x3e7b91,_0x312e1b){return function(_0x443bc4){if(!_0x443bc4){_0x3e7b91[_0xcd10('0x18')](0x194);}return _0x443bc4;};}function handleError(_0x1d1568,_0x237d67){_0x237d67=_0x237d67||0x1f4;return function(_0x56a155){logger[_0xcd10('0x24')](_0x56a155['stack']);if(_0x56a155[_0xcd10('0x25')]){delete _0x56a155[_0xcd10('0x25')];}_0x1d1568[_0xcd10('0x19')](_0x237d67)[_0xcd10('0x26')](_0x56a155);};}exports[_0xcd10('0x27')]=function(_0x852c0c,_0x402531){var _0x1f8762={},_0x5f460e={},_0x4e85f9={'count':0x0,'rows':[]};var _0x6e41f2=_['map'](db[_0xcd10('0x28')]['rawAttributes'],function(_0x10de4e){return{'name':_0x10de4e[_0xcd10('0x29')],'type':_0x10de4e[_0xcd10('0x2a')][_0xcd10('0x2b')]};});_0x5f460e[_0xcd10('0x2c')]=_[_0xcd10('0x2d')](_0x6e41f2,_0xcd10('0x25'));_0x5f460e['query']=_[_0xcd10('0x2e')](_0x852c0c[_0xcd10('0x2f')]);_0x5f460e[_0xcd10('0x30')]=_[_0xcd10('0x31')](_0x5f460e[_0xcd10('0x2c')],_0x5f460e[_0xcd10('0x2f')]);_0x1f8762[_0xcd10('0x32')]=_[_0xcd10('0x31')](_0x5f460e['model'],qs[_0xcd10('0x33')](_0x852c0c['query'][_0xcd10('0x33')]));_0x1f8762['attributes']=_0x1f8762[_0xcd10('0x32')][_0xcd10('0x34')]?_0x1f8762[_0xcd10('0x32')]:_0x5f460e[_0xcd10('0x2c')];if(!_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x35')](_0xcd10('0x36'))){_0x1f8762[_0xcd10('0x1d')]=qs['limit'](_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x1d')]);_0x1f8762[_0xcd10('0x1e')]=qs[_0xcd10('0x1e')](_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x1e')]);}_0x1f8762[_0xcd10('0x37')]=qs[_0xcd10('0x38')](_0x852c0c[_0xcd10('0x2f')]['sort']);_0x1f8762[_0xcd10('0x39')]=qs[_0xcd10('0x30')](_[_0xcd10('0x3a')](_0x852c0c['query'],_0x5f460e[_0xcd10('0x30')]),_0x6e41f2);if(_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x3b')]){_0x1f8762[_0xcd10('0x39')]=_[_0xcd10('0x3c')](_0x1f8762[_0xcd10('0x39')],{'$or':_['map'](_0x6e41f2,function(_0x446560){if(_0x446560['type']!==_0xcd10('0x3d')){var _0x3fd446={};_0x3fd446[_0x446560[_0xcd10('0x25')]]={'$like':'%'+_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x3b')]+'%'};return _0x3fd446;}})});}_0x1f8762=_[_0xcd10('0x3c')]({},_0x1f8762,_0x852c0c['options']);var _0x2249d={'where':_0x1f8762[_0xcd10('0x39')]};return db[_0xcd10('0x28')][_0xcd10('0x3e')](_0x2249d)['then'](function(_0x538565){_0x4e85f9[_0xcd10('0x3e')]=_0x538565;if(_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x3f')]){_0x1f8762[_0xcd10('0x40')]=[{'all':!![]}];}return db['AnalyticFieldReport'][_0xcd10('0x41')](_0x1f8762);})[_0xcd10('0x22')](function(_0xb2ada8){_0x4e85f9[_0xcd10('0x42')]=_0xb2ada8;return _0x4e85f9;})[_0xcd10('0x22')](respondWithFilteredResult(_0x402531,_0x1f8762))[_0xcd10('0x43')](handleError(_0x402531,null));};exports[_0xcd10('0x44')]=function(_0x2b4cbf,_0x3b7694){var _0x43cdbf={'raw':![],'where':{'id':_0x2b4cbf[_0xcd10('0x45')]['id']}},_0x21e41e={};_0x21e41e[_0xcd10('0x2c')]=_[_0xcd10('0x2e')](db[_0xcd10('0x28')][_0xcd10('0x46')]);_0x21e41e[_0xcd10('0x2f')]=_[_0xcd10('0x2e')](_0x2b4cbf['query']);_0x21e41e[_0xcd10('0x30')]=_[_0xcd10('0x31')](_0x21e41e[_0xcd10('0x2c')],_0x21e41e[_0xcd10('0x2f')]);_0x43cdbf['attributes']=_['intersection'](_0x21e41e[_0xcd10('0x2c')],qs[_0xcd10('0x33')](_0x2b4cbf[_0xcd10('0x2f')][_0xcd10('0x33')]));_0x43cdbf[_0xcd10('0x32')]=_0x43cdbf[_0xcd10('0x32')][_0xcd10('0x34')]?_0x43cdbf[_0xcd10('0x32')]:_0x21e41e[_0xcd10('0x2c')];if(_0x2b4cbf[_0xcd10('0x2f')][_0xcd10('0x3f')]){_0x43cdbf['include']=[{'all':!![]}];}_0x43cdbf=_[_0xcd10('0x3c')]({},_0x43cdbf,_0x2b4cbf[_0xcd10('0x47')]);return db[_0xcd10('0x28')][_0xcd10('0x48')](_0x43cdbf)['then'](handleEntityNotFound(_0x3b7694,null))[_0xcd10('0x22')](respondWithResult(_0x3b7694,null))[_0xcd10('0x43')](handleError(_0x3b7694,null));};exports['create']=function(_0x3e5f7a,_0x3b9d3b){return db['AnalyticFieldReport'][_0xcd10('0x49')](_0x3e5f7a['body'],{})[_0xcd10('0x22')](respondWithResult(_0x3b9d3b,0xc9))['catch'](handleError(_0x3b9d3b,null));};exports[_0xcd10('0x4a')]=function(_0x10b032,_0x3d68c9){return db[_0xcd10('0x28')][_0xcd10('0x4a')](_0x10b032[_0xcd10('0x4b')],{'raw':![],'individualHooks':!![]})[_0xcd10('0x22')](respondWithResult(_0x3d68c9,0xc9))['catch'](handleError(_0x3d68c9,null));};exports[_0xcd10('0x4c')]=function(_0x160715,_0x598006){if(_0x160715['body']['id']){delete _0x160715[_0xcd10('0x4b')]['id'];}return db[_0xcd10('0x28')]['find']({'where':{'id':_0x160715[_0xcd10('0x45')]['id']}})[_0xcd10('0x22')](handleEntityNotFound(_0x598006,null))[_0xcd10('0x22')](saveUpdates(_0x160715['body'],null))[_0xcd10('0x22')](respondWithResult(_0x598006,null))[_0xcd10('0x43')](handleError(_0x598006,null));};exports[_0xcd10('0x23')]=function(_0x486750,_0x3e3c4a){return db['AnalyticFieldReport'][_0xcd10('0x48')]({'where':{'id':_0x486750[_0xcd10('0x45')]['id']}})[_0xcd10('0x22')](handleEntityNotFound(_0x3e3c4a,null))[_0xcd10('0x22')](removeEntity(_0x3e3c4a,null))['catch'](handleError(_0x3e3c4a,null));};exports['bulkDestroy']=function(_0x145716,_0x42acef){return db[_0xcd10('0x28')][_0xcd10('0x23')]({'where':{'id':_0x145716[_0xcd10('0x2f')][_0xcd10('0x4d')]||[]},'raw':![],'individualHooks':!![]})[_0xcd10('0x22')](respondWithResult(_0x42acef,0xcc))[_0xcd10('0x43')](handleError(_0x42acef,null));};exports['addFields']=function(_0x211320,_0x2039fe,_0x4c2d7f){return db['AnalyticCustomReport'][_0xcd10('0x4e')]({'where':{'id':_0x211320[_0xcd10('0x45')]['id']}})[_0xcd10('0x22')](handleEntityNotFound(_0x2039fe,null))[_0xcd10('0x22')](function(_0x427ca6){if(_0x427ca6){return db['sequelize'][_0xcd10('0x4f')](function(_0x53dada){return db[_0xcd10('0x28')][_0xcd10('0x23')]({'where':{'CustomReportId':_0x211320['params']['id']},'transaction':_0x53dada})[_0xcd10('0x22')](function(_0x230cea){var _0x56c24b=_['map'](_0x211320[_0xcd10('0x4b')],function(_0x389884){delete _0x389884['id'];_0x389884[_0xcd10('0x50')]=_0x211320[_0xcd10('0x45')]['id'];return _0x389884;});return db[_0xcd10('0x28')][_0xcd10('0x4a')](_0x56c24b,{'transaction':_0x53dada});});})['then'](function(){return db[_0xcd10('0x28')][_0xcd10('0x41')]({'where':{'CustomReportId':_0x211320['params']['id']}});});}})[_0xcd10('0x22')](respondWithResult(_0x2039fe,null))[_0xcd10('0x43')](handleError(_0x2039fe,null));};
\ No newline at end of file
+var _0xe756=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','json','offset','undefined','limit','count','status','set','apply','reject','update','destroy','end','error','name','index','map','AnalyticFieldReport','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','merge','options','then','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','bulkCreate','bulkDestroy','ids','addFields','findOne','sequelize','transaction','CustomReportId','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api'];(function(_0x116ea2,_0x581107){var _0x3448e9=function(_0x5ebc9a){while(--_0x5ebc9a){_0x116ea2['push'](_0x116ea2['shift']());}};_0x3448e9(++_0x581107);}(_0xe756,0x8d));var _0x6e75=function(_0x395f0f,_0x398025){_0x395f0f=_0x395f0f-0x0;var _0x3eada0=_0xe756[_0x395f0f];return _0x3eada0;};'use strict';var emlformat=require(_0x6e75('0x0'));var rimraf=require(_0x6e75('0x1'));var zipdir=require(_0x6e75('0x2'));var jsonpatch=require(_0x6e75('0x3'));var rp=require(_0x6e75('0x4'));var moment=require('moment');var BPromise=require(_0x6e75('0x5'));var Mustache=require(_0x6e75('0x6'));var util=require('util');var path=require('path');var sox=require(_0x6e75('0x7'));var csv=require(_0x6e75('0x8'));var ejs=require(_0x6e75('0x9'));var fs=require('fs');var fs_extra=require(_0x6e75('0xa'));var _=require(_0x6e75('0xb'));var squel=require(_0x6e75('0xc'));var crypto=require('crypto');var jsforce=require(_0x6e75('0xd'));var deskjs=require(_0x6e75('0xe'));var toCsv=require(_0x6e75('0x8'));var querystring=require('querystring');var Papa=require(_0x6e75('0xf'));var Redis=require(_0x6e75('0x10'));var authService=require(_0x6e75('0x11'));var qs=require(_0x6e75('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6e75('0x13'));var logger=require('../../config/logger')(_0x6e75('0x14'));var utils=require(_0x6e75('0x15'));var config=require(_0x6e75('0x16'));var licenseUtil=require(_0x6e75('0x17'));var db=require(_0x6e75('0x18'))['db'];function respondWithStatusCode(_0x5d8b1e,_0x3de5f5){_0x3de5f5=_0x3de5f5||0xcc;return function(_0x27a407){if(_0x27a407){return _0x5d8b1e[_0x6e75('0x19')](_0x3de5f5);}return _0x5d8b1e['status'](_0x3de5f5)['end']();};}function respondWithResult(_0x3f29c1,_0x15c2dc){_0x15c2dc=_0x15c2dc||0xc8;return function(_0x5da9a5){if(_0x5da9a5){return _0x3f29c1['status'](_0x15c2dc)[_0x6e75('0x1a')](_0x5da9a5);}};}function respondWithFilteredResult(_0x38a2b8,_0x42a732){return function(_0x49d28b){if(_0x49d28b){var _0x1b2506=typeof _0x42a732[_0x6e75('0x1b')]===_0x6e75('0x1c')&&typeof _0x42a732[_0x6e75('0x1d')]===_0x6e75('0x1c');var _0x1770ac=_0x49d28b['count'];var _0x286d49=_0x1b2506?0x0:_0x42a732['offset'];var _0x233b77=_0x1b2506?_0x49d28b[_0x6e75('0x1e')]:_0x42a732['offset']+_0x42a732[_0x6e75('0x1d')];var _0x3d6749;if(_0x233b77>=_0x1770ac){_0x233b77=_0x1770ac;_0x3d6749=0xc8;}else{_0x3d6749=0xce;}_0x38a2b8[_0x6e75('0x1f')](_0x3d6749);return _0x38a2b8[_0x6e75('0x20')]('Content-Range',_0x286d49+'-'+_0x233b77+'/'+_0x1770ac)['json'](_0x49d28b);}return null;};}function patchUpdates(_0x249859){return function(_0x549138){try{jsonpatch[_0x6e75('0x21')](_0x549138,_0x249859,!![]);}catch(_0x55a0eb){return BPromise[_0x6e75('0x22')](_0x55a0eb);}return _0x549138['save']();};}function saveUpdates(_0x2bc685,_0x5be674){return function(_0x5b617a){if(_0x5b617a){return _0x5b617a[_0x6e75('0x23')](_0x2bc685)['then'](function(_0xee6788){return _0xee6788;});}return null;};}function removeEntity(_0x53a9ea,_0x2f049b){return function(_0x1a5323){if(_0x1a5323){return _0x1a5323[_0x6e75('0x24')]()['then'](function(){_0x53a9ea[_0x6e75('0x1f')](0xcc)[_0x6e75('0x25')]();});}};}function handleEntityNotFound(_0x3fbdde,_0x421a7b){return function(_0x5ed37d){if(!_0x5ed37d){_0x3fbdde[_0x6e75('0x19')](0x194);}return _0x5ed37d;};}function handleError(_0x7bb451,_0x8d2908){_0x8d2908=_0x8d2908||0x1f4;return function(_0x3b93ff){logger[_0x6e75('0x26')](_0x3b93ff['stack']);if(_0x3b93ff['name']){delete _0x3b93ff[_0x6e75('0x27')];}_0x7bb451[_0x6e75('0x1f')](_0x8d2908)['send'](_0x3b93ff);};}exports[_0x6e75('0x28')]=function(_0x1c0a6b,_0x138696){var _0x158dda={},_0x352d0b={},_0x137b26={'count':0x0,'rows':[]};var _0x455c3f=_[_0x6e75('0x29')](db[_0x6e75('0x2a')][_0x6e75('0x2b')],function(_0x56690d){return{'name':_0x56690d['fieldName'],'type':_0x56690d[_0x6e75('0x2c')]['key']};});_0x352d0b[_0x6e75('0x2d')]=_[_0x6e75('0x29')](_0x455c3f,_0x6e75('0x27'));_0x352d0b[_0x6e75('0x2e')]=_[_0x6e75('0x2f')](_0x1c0a6b[_0x6e75('0x2e')]);_0x352d0b[_0x6e75('0x30')]=_[_0x6e75('0x31')](_0x352d0b[_0x6e75('0x2d')],_0x352d0b[_0x6e75('0x2e')]);_0x158dda['attributes']=_[_0x6e75('0x31')](_0x352d0b[_0x6e75('0x2d')],qs[_0x6e75('0x32')](_0x1c0a6b[_0x6e75('0x2e')]['fields']));_0x158dda[_0x6e75('0x33')]=_0x158dda[_0x6e75('0x33')]['length']?_0x158dda[_0x6e75('0x33')]:_0x352d0b[_0x6e75('0x2d')];if(!_0x1c0a6b['query'][_0x6e75('0x34')]('nolimit')){_0x158dda[_0x6e75('0x1d')]=qs[_0x6e75('0x1d')](_0x1c0a6b['query'][_0x6e75('0x1d')]);_0x158dda['offset']=qs[_0x6e75('0x1b')](_0x1c0a6b[_0x6e75('0x2e')]['offset']);}_0x158dda[_0x6e75('0x35')]=qs['sort'](_0x1c0a6b[_0x6e75('0x2e')][_0x6e75('0x36')]);_0x158dda[_0x6e75('0x37')]=qs[_0x6e75('0x30')](_[_0x6e75('0x38')](_0x1c0a6b[_0x6e75('0x2e')],_0x352d0b[_0x6e75('0x30')]),_0x455c3f);if(_0x1c0a6b[_0x6e75('0x2e')]['filter']){_0x158dda[_0x6e75('0x37')]=_['merge'](_0x158dda[_0x6e75('0x37')],{'$or':_[_0x6e75('0x29')](_0x455c3f,function(_0x16de38){if(_0x16de38[_0x6e75('0x2c')]!==_0x6e75('0x39')){var _0x12affd={};_0x12affd[_0x16de38['name']]={'$like':'%'+_0x1c0a6b['query'][_0x6e75('0x3a')]+'%'};return _0x12affd;}})});}_0x158dda=_[_0x6e75('0x3b')]({},_0x158dda,_0x1c0a6b[_0x6e75('0x3c')]);var _0x1c4bce={'where':_0x158dda[_0x6e75('0x37')]};return db[_0x6e75('0x2a')][_0x6e75('0x1e')](_0x1c4bce)[_0x6e75('0x3d')](function(_0x350dd8){_0x137b26[_0x6e75('0x1e')]=_0x350dd8;if(_0x1c0a6b['query'][_0x6e75('0x3e')]){_0x158dda[_0x6e75('0x3f')]=[{'all':!![]}];}return db[_0x6e75('0x2a')][_0x6e75('0x40')](_0x158dda);})[_0x6e75('0x3d')](function(_0x34ec5a){_0x137b26[_0x6e75('0x41')]=_0x34ec5a;return _0x137b26;})[_0x6e75('0x3d')](respondWithFilteredResult(_0x138696,_0x158dda))[_0x6e75('0x42')](handleError(_0x138696,null));};exports[_0x6e75('0x43')]=function(_0x28ca6f,_0x48bdb){var _0x22d34f={'raw':![],'where':{'id':_0x28ca6f[_0x6e75('0x44')]['id']}},_0x21acd6={};_0x21acd6[_0x6e75('0x2d')]=_[_0x6e75('0x2f')](db['AnalyticFieldReport'][_0x6e75('0x2b')]);_0x21acd6[_0x6e75('0x2e')]=_[_0x6e75('0x2f')](_0x28ca6f[_0x6e75('0x2e')]);_0x21acd6[_0x6e75('0x30')]=_[_0x6e75('0x31')](_0x21acd6[_0x6e75('0x2d')],_0x21acd6['query']);_0x22d34f['attributes']=_[_0x6e75('0x31')](_0x21acd6[_0x6e75('0x2d')],qs[_0x6e75('0x32')](_0x28ca6f[_0x6e75('0x2e')][_0x6e75('0x32')]));_0x22d34f[_0x6e75('0x33')]=_0x22d34f[_0x6e75('0x33')][_0x6e75('0x45')]?_0x22d34f['attributes']:_0x21acd6['model'];if(_0x28ca6f[_0x6e75('0x2e')][_0x6e75('0x3e')]){_0x22d34f[_0x6e75('0x3f')]=[{'all':!![]}];}_0x22d34f=_['merge']({},_0x22d34f,_0x28ca6f[_0x6e75('0x3c')]);return db['AnalyticFieldReport'][_0x6e75('0x46')](_0x22d34f)[_0x6e75('0x3d')](handleEntityNotFound(_0x48bdb,null))[_0x6e75('0x3d')](respondWithResult(_0x48bdb,null))[_0x6e75('0x42')](handleError(_0x48bdb,null));};exports[_0x6e75('0x47')]=function(_0x4d2e93,_0x1eb5dd){return db['AnalyticFieldReport'][_0x6e75('0x47')](_0x4d2e93[_0x6e75('0x48')],{})[_0x6e75('0x3d')](respondWithResult(_0x1eb5dd,0xc9))[_0x6e75('0x42')](handleError(_0x1eb5dd,null));};exports[_0x6e75('0x49')]=function(_0x2eb8c7,_0x446c31){return db[_0x6e75('0x2a')][_0x6e75('0x49')](_0x2eb8c7[_0x6e75('0x48')],{'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x446c31,0xc9))[_0x6e75('0x42')](handleError(_0x446c31,null));};exports[_0x6e75('0x23')]=function(_0x8f81d0,_0x4a68b1){if(_0x8f81d0[_0x6e75('0x48')]['id']){delete _0x8f81d0['body']['id'];}return db[_0x6e75('0x2a')][_0x6e75('0x46')]({'where':{'id':_0x8f81d0[_0x6e75('0x44')]['id']}})[_0x6e75('0x3d')](handleEntityNotFound(_0x4a68b1,null))[_0x6e75('0x3d')](saveUpdates(_0x8f81d0[_0x6e75('0x48')],null))['then'](respondWithResult(_0x4a68b1,null))[_0x6e75('0x42')](handleError(_0x4a68b1,null));};exports[_0x6e75('0x24')]=function(_0x11023f,_0x2086be){return db[_0x6e75('0x2a')][_0x6e75('0x46')]({'where':{'id':_0x11023f['params']['id']}})[_0x6e75('0x3d')](handleEntityNotFound(_0x2086be,null))[_0x6e75('0x3d')](removeEntity(_0x2086be,null))[_0x6e75('0x42')](handleError(_0x2086be,null));};exports[_0x6e75('0x4a')]=function(_0x268d03,_0x46019b){return db[_0x6e75('0x2a')]['destroy']({'where':{'id':_0x268d03[_0x6e75('0x2e')][_0x6e75('0x4b')]||[]},'raw':![],'individualHooks':!![]})[_0x6e75('0x3d')](respondWithResult(_0x46019b,0xcc))['catch'](handleError(_0x46019b,null));};exports[_0x6e75('0x4c')]=function(_0x1275f8,_0x55533e,_0x40bcee){return db['AnalyticCustomReport'][_0x6e75('0x4d')]({'where':{'id':_0x1275f8[_0x6e75('0x44')]['id']}})[_0x6e75('0x3d')](handleEntityNotFound(_0x55533e,null))['then'](function(_0x592e1c){if(_0x592e1c){return db[_0x6e75('0x4e')][_0x6e75('0x4f')](function(_0xc0b796){return db['AnalyticFieldReport'][_0x6e75('0x24')]({'where':{'CustomReportId':_0x1275f8[_0x6e75('0x44')]['id']},'transaction':_0xc0b796})[_0x6e75('0x3d')](function(_0x339f54){var _0x53ea80=_[_0x6e75('0x29')](_0x1275f8['body'],function(_0x2e1582){delete _0x2e1582['id'];_0x2e1582[_0x6e75('0x50')]=_0x1275f8['params']['id'];return _0x2e1582;});return db[_0x6e75('0x2a')][_0x6e75('0x49')](_0x53ea80,{'transaction':_0xc0b796});});})['then'](function(){return db[_0x6e75('0x2a')][_0x6e75('0x40')]({'where':{'CustomReportId':_0x1275f8[_0x6e75('0x44')]['id']}});});}})['then'](respondWithResult(_0x55533e,null))[_0x6e75('0x42')](handleError(_0x55533e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf263=['analytics_report_fields','util','../../config/logger','api','moment','request-promise','../../config/environment','exports','define','AnalyticFieldReport'];(function(_0x3c44d2,_0x20b6b3){var _0x22fe72=function(_0x24f27d){while(--_0x24f27d){_0x3c44d2['push'](_0x3c44d2['shift']());}};_0x22fe72(++_0x20b6b3);}(_0xf263,0x1eb));var _0x3f26=function(_0x2dacca,_0x3b55a5){_0x2dacca=_0x2dacca-0x0;var _0x4e8745=_0xf263[_0x2dacca];return _0x4e8745;};'use strict';var _=require('lodash');var util=require(_0x3f26('0x0'));var logger=require(_0x3f26('0x1'))(_0x3f26('0x2'));var moment=require(_0x3f26('0x3'));var BPromise=require('bluebird');var rp=require(_0x3f26('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x3f26('0x5'));var attributes=require('./analyticFieldReport.attributes');module[_0x3f26('0x6')]=function(_0x2a3be8,_0x10317f){return _0x2a3be8[_0x3f26('0x7')](_0x3f26('0x8'),attributes,{'tableName':_0x3f26('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2c60=['exports','util','../../config/logger','api','bluebird','path','../../config/environment','./analyticFieldReport.attributes'];(function(_0x3764dc,_0x49f7d1){var _0x3a909b=function(_0x21fbde){while(--_0x21fbde){_0x3764dc['push'](_0x3764dc['shift']());}};_0x3a909b(++_0x49f7d1);}(_0x2c60,0xa9));var _0x02c6=function(_0x53cf8e,_0x3d290f){_0x53cf8e=_0x53cf8e-0x0;var _0x459197=_0x2c60[_0x53cf8e];return _0x459197;};'use strict';var _=require('lodash');var util=require(_0x02c6('0x0'));var logger=require(_0x02c6('0x1'))(_0x02c6('0x2'));var moment=require('moment');var BPromise=require(_0x02c6('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x02c6('0x4'));var rimraf=require('rimraf');var config=require(_0x02c6('0x5'));var attributes=require(_0x02c6('0x6'));module[_0x02c6('0x7')]=function(_0x420a1e,_0x203dcb){return _0x420a1e['define']('AnalyticFieldReport',attributes,{'tableName':'analytics_report_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f0c=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','AnalyticFieldReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x77fd25,_0x226ea2){var _0xe14528=function(_0x1551d5){while(--_0x1551d5){_0x77fd25['push'](_0x77fd25['shift']());}};_0xe14528(++_0x226ea2);}(_0x8f0c,0x9a));var _0xc8f0=function(_0x2d5934,_0x1acc4f){_0x2d5934=_0x2d5934-0x0;var _0x5807c8=_0x8f0c[_0x2d5934];return _0x5807c8;};'use strict';var _=require(_0xc8f0('0x0'));var util=require(_0xc8f0('0x1'));var moment=require(_0xc8f0('0x2'));var BPromise=require(_0xc8f0('0x3'));var rs=require(_0xc8f0('0x4'));var fs=require('fs');var Redis=require(_0xc8f0('0x5'));var db=require(_0xc8f0('0x6'))['db'];var utils=require(_0xc8f0('0x7'));var logger=require(_0xc8f0('0x8'))(_0xc8f0('0x9'));var config=require(_0xc8f0('0xa'));var jayson=require(_0xc8f0('0xb'));var client=jayson['client'][_0xc8f0('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4b4083,_0x230d3c,_0x32ba3f){return new BPromise(function(_0x5a0df3,_0x2f4375){return client[_0xc8f0('0xd')](_0x4b4083,_0x32ba3f)['then'](function(_0x34d998){logger[_0xc8f0('0xe')](_0xc8f0('0xf'),_0x230d3c,_0xc8f0('0x10'));logger[_0xc8f0('0x11')](_0xc8f0('0x12'),_0x230d3c,_0xc8f0('0x10'),JSON[_0xc8f0('0x13')](_0x34d998));if(_0x34d998[_0xc8f0('0x14')]){if(_0x34d998['error']['code']===0x1f4){logger[_0xc8f0('0x14')]('AnalyticFieldReport,\x20%s,\x20%s',_0x230d3c,_0x34d998['error']['message']);return _0x2f4375(_0x34d998[_0xc8f0('0x14')][_0xc8f0('0x15')]);}logger[_0xc8f0('0x14')](_0xc8f0('0xf'),_0x230d3c,_0x34d998[_0xc8f0('0x14')][_0xc8f0('0x15')]);return _0x5a0df3(_0x34d998[_0xc8f0('0x14')][_0xc8f0('0x15')]);}else{logger[_0xc8f0('0xe')]('AnalyticFieldReport,\x20%s,\x20%s',_0x230d3c,_0xc8f0('0x10'));_0x5a0df3(_0x34d998['result'][_0xc8f0('0x15')]);}})[_0xc8f0('0x16')](function(_0x5bad77){logger['error']('AnalyticFieldReport,\x20%s,\x20%s',_0x230d3c,_0x5bad77);_0x2f4375(_0x5bad77);});});}
\ No newline at end of file
+var _0x849e=['jayson/promise','http','request','AnalyticFieldReport,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','lodash','util','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment'];(function(_0xbd4ecd,_0x2f83ee){var _0x2571b4=function(_0x31c936){while(--_0x31c936){_0xbd4ecd['push'](_0xbd4ecd['shift']());}};_0x2571b4(++_0x2f83ee);}(_0x849e,0x80));var _0xe849=function(_0x20dd9b,_0x3c0fb8){_0x20dd9b=_0x20dd9b-0x0;var _0x2de3b0=_0x849e[_0x20dd9b];return _0x2de3b0;};'use strict';var _=require(_0xe849('0x0'));var util=require(_0xe849('0x1'));var moment=require('moment');var BPromise=require(_0xe849('0x2'));var rs=require(_0xe849('0x3'));var fs=require('fs');var Redis=require(_0xe849('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xe849('0x5'))(_0xe849('0x6'));var config=require(_0xe849('0x7'));var jayson=require(_0xe849('0x8'));var client=jayson['client'][_0xe849('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x993f74,_0x59ed85,_0x4f78fb){return new BPromise(function(_0x451b39,_0x3e1753){return client[_0xe849('0xa')](_0x993f74,_0x4f78fb)['then'](function(_0x4bdc74){logger['info'](_0xe849('0xb'),_0x59ed85,_0xe849('0xc'));logger['debug']('AnalyticFieldReport,\x20%s,\x20%s,\x20%s',_0x59ed85,_0xe849('0xc'),JSON[_0xe849('0xd')](_0x4bdc74));if(_0x4bdc74[_0xe849('0xe')]){if(_0x4bdc74[_0xe849('0xe')]['code']===0x1f4){logger['error'](_0xe849('0xb'),_0x59ed85,_0x4bdc74[_0xe849('0xe')][_0xe849('0xf')]);return _0x3e1753(_0x4bdc74[_0xe849('0xe')][_0xe849('0xf')]);}logger[_0xe849('0xe')](_0xe849('0xb'),_0x59ed85,_0x4bdc74['error'][_0xe849('0xf')]);return _0x451b39(_0x4bdc74[_0xe849('0xe')][_0xe849('0xf')]);}else{logger['info'](_0xe849('0xb'),_0x59ed85,'request\x20sent');_0x451b39(_0x4bdc74[_0xe849('0x10')][_0xe849('0xf')]);}})['catch'](function(_0x39e8d3){logger[_0xe849('0xe')](_0xe849('0xb'),_0x59ed85,_0x39e8d3);_0x3e1753(_0x39e8d3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x2ecfc3,_0x1d17c4){var _0x476a85=function(_0x29ca0c){while(--_0x29ca0c){_0x2ecfc3['push'](_0x2ecfc3['shift']());}};_0x476a85(++_0x1d17c4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x18a79d,_0x57bd2c){_0x18a79d=_0x18a79d-0x0;var _0x4f8848=_0xa9e0[_0x18a79d];return _0x4f8848;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
+var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x129f47,_0x2d4e0c){var _0xcaf42a=function(_0x46a26d){while(--_0x46a26d){_0x129f47['push'](_0x129f47['shift']());}};_0xcaf42a(++_0x2d4e0c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2bf141,_0x31eac7){_0x2bf141=_0x2bf141-0x0;var _0x48277b=_0xa9e0[_0x2bf141];return _0x48277b;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x705f=['TEXT','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x705f,0x75));var _0xf705=function(_0x2d2a33,_0x2d1d1f){_0x2d2a33=_0x2d2a33-0x0;var _0x32d8ba=_0x705f[_0x2d2a33];return _0x32d8ba;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xf705('0x0')],'allowNull':![],'unique':'name'},'table':{'type':Sequelize[_0xf705('0x0')]},'metric':{'type':Sequelize[_0xf705('0x1')]},'description':{'type':Sequelize[_0xf705('0x0')]}};
\ No newline at end of file
+var _0x90db=['name','exports','STRING'];(function(_0x5447fd,_0x52a6b5){var _0x15b28a=function(_0x370d4f){while(--_0x370d4f){_0x5447fd['push'](_0x5447fd['shift']());}};_0x15b28a(++_0x52a6b5);}(_0x90db,0x1c0));var _0xb90d=function(_0x521929,_0x479be5){_0x521929=_0x521929-0x0;var _0x632436=_0x90db[_0x521929];return _0x632436;};'use strict';var Sequelize=require('sequelize');module[_0xb90d('0x0')]={'name':{'type':Sequelize[_0xb90d('0x1')],'allowNull':![],'unique':_0xb90d('0x2')},'table':{'type':Sequelize['STRING']},'metric':{'type':Sequelize['TEXT']},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['Content-Range','apply','reject','save','update','then','destroy','get','Metrics','UserProfileResource','sendStatus','error','stack','name','send','index','map','AnalyticMetric','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','catch','show','params','rawAttributes','find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set'];(function(_0x386d12,_0x1c6ca8){var _0x5caf2c=function(_0x596c44){while(--_0x596c44){_0x386d12['push'](_0x386d12['shift']());}};_0x5caf2c(++_0x1c6ca8);}(_0x7217,0x19e));var _0x7721=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0x7217[_0xf71120];return _0xbe2fd3;};'use strict';var emlformat=require(_0x7721('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7721('0x1'));var jsonpatch=require(_0x7721('0x2'));var rp=require(_0x7721('0x3'));var moment=require(_0x7721('0x4'));var BPromise=require(_0x7721('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x7721('0x6'));var sox=require(_0x7721('0x7'));var csv=require(_0x7721('0x8'));var ejs=require(_0x7721('0x9'));var fs=require('fs');var fs_extra=require(_0x7721('0xa'));var _=require(_0x7721('0xb'));var squel=require(_0x7721('0xc'));var crypto=require(_0x7721('0xd'));var jsforce=require(_0x7721('0xe'));var deskjs=require(_0x7721('0xf'));var toCsv=require(_0x7721('0x8'));var querystring=require(_0x7721('0x10'));var Papa=require(_0x7721('0x11'));var Redis=require(_0x7721('0x12'));var authService=require(_0x7721('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x7721('0x14'));var hardwareService=require(_0x7721('0x15'));var logger=require(_0x7721('0x16'))(_0x7721('0x17'));var utils=require(_0x7721('0x18'));var config=require(_0x7721('0x19'));var licenseUtil=require(_0x7721('0x1a'));var db=require(_0x7721('0x1b'))['db'];function respondWithStatusCode(_0x55b4ca,_0x2911ec){_0x2911ec=_0x2911ec||0xcc;return function(_0x199930){if(_0x199930){return _0x55b4ca['sendStatus'](_0x2911ec);}return _0x55b4ca[_0x7721('0x1c')](_0x2911ec)[_0x7721('0x1d')]();};}function respondWithResult(_0x3f01c5,_0x2e9752){_0x2e9752=_0x2e9752||0xc8;return function(_0x5069da){if(_0x5069da){return _0x3f01c5[_0x7721('0x1c')](_0x2e9752)[_0x7721('0x1e')](_0x5069da);}};}function respondWithFilteredResult(_0x534f1b,_0x4e199a){return function(_0x4b183e){if(_0x4b183e){var _0x5ed54=typeof _0x4e199a[_0x7721('0x1f')]===_0x7721('0x20')&&typeof _0x4e199a[_0x7721('0x21')]==='undefined';var _0x20f669=_0x4b183e['count'];var _0x3fc09e=_0x5ed54?0x0:_0x4e199a['offset'];var _0xfec626=_0x5ed54?_0x4b183e[_0x7721('0x22')]:_0x4e199a[_0x7721('0x1f')]+_0x4e199a[_0x7721('0x21')];var _0x2286e5;if(_0xfec626>=_0x20f669){_0xfec626=_0x20f669;_0x2286e5=0xc8;}else{_0x2286e5=0xce;}_0x534f1b[_0x7721('0x1c')](_0x2286e5);return _0x534f1b[_0x7721('0x23')](_0x7721('0x24'),_0x3fc09e+'-'+_0xfec626+'/'+_0x20f669)[_0x7721('0x1e')](_0x4b183e);}return null;};}function patchUpdates(_0xaeccc4){return function(_0x4ce1db){try{jsonpatch[_0x7721('0x25')](_0x4ce1db,_0xaeccc4,!![]);}catch(_0x2c1583){return BPromise[_0x7721('0x26')](_0x2c1583);}return _0x4ce1db[_0x7721('0x27')]();};}function saveUpdates(_0x57140c,_0x28f5a6){return function(_0x512f31){if(_0x512f31){return _0x512f31[_0x7721('0x28')](_0x57140c)[_0x7721('0x29')](function(_0x3e8a4e){return _0x3e8a4e;});}return null;};}function removeEntity(_0x1caad8,_0x121cc4){return function(_0x395b15){if(_0x395b15){return _0x395b15[_0x7721('0x2a')]()['then'](function(){var _0x216f20=_0x395b15[_0x7721('0x2b')]({'plain':!![]});var _0x125564=_0x7721('0x2c');return db[_0x7721('0x2d')][_0x7721('0x2a')]({'where':{'type':_0x125564,'resourceId':_0x216f20['id']}})[_0x7721('0x29')](function(){return _0x395b15;});})[_0x7721('0x29')](function(){_0x1caad8[_0x7721('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x258ddf,_0x5b0551){return function(_0x499b87){if(!_0x499b87){_0x258ddf[_0x7721('0x2e')](0x194);}return _0x499b87;};}function handleError(_0x343c19,_0x53c904){_0x53c904=_0x53c904||0x1f4;return function(_0x158d98){logger[_0x7721('0x2f')](_0x158d98[_0x7721('0x30')]);if(_0x158d98[_0x7721('0x31')]){delete _0x158d98[_0x7721('0x31')];}_0x343c19['status'](_0x53c904)[_0x7721('0x32')](_0x158d98);};}exports[_0x7721('0x33')]=function(_0x497f9f,_0x4a25c9){var _0xfde9ec={},_0x220bbf={},_0x48f329={'count':0x0,'rows':[]};var _0x46f772=_[_0x7721('0x34')](db[_0x7721('0x35')]['rawAttributes'],function(_0x3d9a32){return{'name':_0x3d9a32[_0x7721('0x36')],'type':_0x3d9a32[_0x7721('0x37')][_0x7721('0x38')]};});_0x220bbf[_0x7721('0x39')]=_['map'](_0x46f772,_0x7721('0x31'));_0x220bbf[_0x7721('0x3a')]=_[_0x7721('0x3b')](_0x497f9f['query']);_0x220bbf[_0x7721('0x3c')]=_[_0x7721('0x3d')](_0x220bbf['model'],_0x220bbf[_0x7721('0x3a')]);_0xfde9ec['attributes']=_[_0x7721('0x3d')](_0x220bbf[_0x7721('0x39')],qs[_0x7721('0x3e')](_0x497f9f[_0x7721('0x3a')][_0x7721('0x3e')]));_0xfde9ec[_0x7721('0x3f')]=_0xfde9ec[_0x7721('0x3f')][_0x7721('0x40')]?_0xfde9ec[_0x7721('0x3f')]:_0x220bbf[_0x7721('0x39')];if(!_0x497f9f[_0x7721('0x3a')]['hasOwnProperty'](_0x7721('0x41'))){_0xfde9ec['limit']=qs[_0x7721('0x21')](_0x497f9f[_0x7721('0x3a')][_0x7721('0x21')]);_0xfde9ec[_0x7721('0x1f')]=qs[_0x7721('0x1f')](_0x497f9f[_0x7721('0x3a')]['offset']);}_0xfde9ec['order']=qs['sort'](_0x497f9f['query'][_0x7721('0x42')]);_0xfde9ec[_0x7721('0x43')]=qs[_0x7721('0x3c')](_[_0x7721('0x44')](_0x497f9f['query'],_0x220bbf[_0x7721('0x3c')]),_0x46f772);if(_0x497f9f['query'][_0x7721('0x45')]){_0xfde9ec[_0x7721('0x43')]=_['merge'](_0xfde9ec[_0x7721('0x43')],{'$or':_[_0x7721('0x34')](_0x46f772,function(_0x4e77ff){if(_0x4e77ff['type']!==_0x7721('0x46')){var _0xfc4dc4={};_0xfc4dc4[_0x4e77ff[_0x7721('0x31')]]={'$like':'%'+_0x497f9f[_0x7721('0x3a')]['filter']+'%'};return _0xfc4dc4;}})});}_0xfde9ec=_[_0x7721('0x47')]({},_0xfde9ec,_0x497f9f[_0x7721('0x48')]);var _0x40ce8c={'where':_0xfde9ec[_0x7721('0x43')]};return db[_0x7721('0x35')]['count'](_0x40ce8c)[_0x7721('0x29')](function(_0x4a2c28){_0x48f329[_0x7721('0x22')]=_0x4a2c28;if(_0x497f9f['query'][_0x7721('0x49')]){_0xfde9ec[_0x7721('0x4a')]=[{'all':!![]}];}return db[_0x7721('0x35')]['findAll'](_0xfde9ec);})[_0x7721('0x29')](function(_0x11d853){_0x48f329[_0x7721('0x4b')]=_0x11d853;return _0x48f329;})['then'](respondWithFilteredResult(_0x4a25c9,_0xfde9ec))[_0x7721('0x4c')](handleError(_0x4a25c9,null));};exports[_0x7721('0x4d')]=function(_0xdb3033,_0x2d5f35){var _0x135dbc={'raw':!![],'where':{'id':_0xdb3033[_0x7721('0x4e')]['id']}},_0x57d09b={};_0x57d09b['model']=_['keys'](db[_0x7721('0x35')][_0x7721('0x4f')]);_0x57d09b[_0x7721('0x3a')]=_[_0x7721('0x3b')](_0xdb3033[_0x7721('0x3a')]);_0x57d09b[_0x7721('0x3c')]=_[_0x7721('0x3d')](_0x57d09b[_0x7721('0x39')],_0x57d09b[_0x7721('0x3a')]);_0x135dbc[_0x7721('0x3f')]=_['intersection'](_0x57d09b['model'],qs[_0x7721('0x3e')](_0xdb3033[_0x7721('0x3a')][_0x7721('0x3e')]));_0x135dbc[_0x7721('0x3f')]=_0x135dbc['attributes'][_0x7721('0x40')]?_0x135dbc[_0x7721('0x3f')]:_0x57d09b['model'];if(_0xdb3033[_0x7721('0x3a')]['includeAll']){_0x135dbc[_0x7721('0x4a')]=[{'all':!![]}];}_0x135dbc=_['merge']({},_0x135dbc,_0xdb3033[_0x7721('0x48')]);return db[_0x7721('0x35')][_0x7721('0x50')](_0x135dbc)['then'](handleEntityNotFound(_0x2d5f35,null))[_0x7721('0x29')](respondWithResult(_0x2d5f35,null))[_0x7721('0x4c')](handleError(_0x2d5f35,null));};exports['create']=function(_0x223d93,_0x1196c2){return db[_0x7721('0x35')]['create'](_0x223d93[_0x7721('0x51')],{})['then'](function(_0xdb1ca8){var _0x310549=_0x223d93[_0x7721('0x52')][_0x7721('0x2b')]({'plain':!![]});if(!_0x310549)throw new Error(_0x7721('0x53'));if(_0x310549[_0x7721('0x54')]===_0x7721('0x52')){var _0x7fbb73=_0xdb1ca8[_0x7721('0x2b')]({'plain':!![]});var _0x3386aa=_0x7721('0x2c');return db[_0x7721('0x55')][_0x7721('0x50')]({'where':{'name':_0x3386aa,'userProfileId':_0x310549[_0x7721('0x56')]},'raw':!![]})[_0x7721('0x29')](function(_0x5b741d){if(_0x5b741d&&_0x5b741d[_0x7721('0x57')]===0x0){return db[_0x7721('0x2d')][_0x7721('0x58')]({'name':_0x7fbb73[_0x7721('0x31')],'resourceId':_0x7fbb73['id'],'type':_0x5b741d[_0x7721('0x31')],'sectionId':_0x5b741d['id']},{})[_0x7721('0x29')](function(){return _0xdb1ca8;});}else{return _0xdb1ca8;}})[_0x7721('0x4c')](function(_0x57484c){logger[_0x7721('0x2f')](_0x7721('0x59'),_0x57484c);throw _0x57484c;});}return _0xdb1ca8;})[_0x7721('0x29')](respondWithResult(_0x1196c2,0xc9))[_0x7721('0x4c')](handleError(_0x1196c2,null));};exports[_0x7721('0x28')]=function(_0x9c0d4,_0x7fbd6c){if(_0x9c0d4[_0x7721('0x51')]['id']){delete _0x9c0d4[_0x7721('0x51')]['id'];}return db[_0x7721('0x35')][_0x7721('0x50')]({'where':{'id':_0x9c0d4['params']['id']}})[_0x7721('0x29')](handleEntityNotFound(_0x7fbd6c,null))[_0x7721('0x29')](saveUpdates(_0x9c0d4[_0x7721('0x51')],null))[_0x7721('0x29')](respondWithResult(_0x7fbd6c,null))[_0x7721('0x4c')](handleError(_0x7fbd6c,null));};exports[_0x7721('0x2a')]=function(_0x41644f,_0x36fe6f){return db[_0x7721('0x35')][_0x7721('0x50')]({'where':{'id':_0x41644f[_0x7721('0x4e')]['id']}})[_0x7721('0x29')](handleEntityNotFound(_0x36fe6f,null))[_0x7721('0x29')](removeEntity(_0x36fe6f,null))[_0x7721('0x4c')](handleError(_0x36fe6f,null));};
\ No newline at end of file
+var _0x9a19=['AnalyticMetric','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','options','find','body','user','UserProfileSection','autoAssociation','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','save','then','destroy','get','Metrics','stack','name','send','index','map'];(function(_0xff1914,_0x15fd31){var _0x1e4fb5=function(_0x341cd3){while(--_0x341cd3){_0xff1914['push'](_0xff1914['shift']());}};_0x1e4fb5(++_0x15fd31);}(_0x9a19,0x114));var _0x99a1=function(_0x503564,_0x55867e){_0x503564=_0x503564-0x0;var _0x4be9fd=_0x9a19[_0x503564];return _0x4be9fd;};'use strict';var emlformat=require(_0x99a1('0x0'));var rimraf=require(_0x99a1('0x1'));var zipdir=require(_0x99a1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x99a1('0x3'));var moment=require(_0x99a1('0x4'));var BPromise=require(_0x99a1('0x5'));var Mustache=require(_0x99a1('0x6'));var util=require(_0x99a1('0x7'));var path=require(_0x99a1('0x8'));var sox=require(_0x99a1('0x9'));var csv=require(_0x99a1('0xa'));var ejs=require(_0x99a1('0xb'));var fs=require('fs');var fs_extra=require(_0x99a1('0xc'));var _=require(_0x99a1('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x99a1('0xe'));var toCsv=require(_0x99a1('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x99a1('0xf'));var authService=require(_0x99a1('0x10'));var qs=require(_0x99a1('0x11'));var as=require(_0x99a1('0x12'));var hardwareService=require(_0x99a1('0x13'));var logger=require('../../config/logger')(_0x99a1('0x14'));var utils=require(_0x99a1('0x15'));var config=require(_0x99a1('0x16'));var licenseUtil=require(_0x99a1('0x17'));var db=require(_0x99a1('0x18'))['db'];function respondWithStatusCode(_0x1bc7aa,_0x2ff655){_0x2ff655=_0x2ff655||0xcc;return function(_0x532f56){if(_0x532f56){return _0x1bc7aa[_0x99a1('0x19')](_0x2ff655);}return _0x1bc7aa[_0x99a1('0x1a')](_0x2ff655)[_0x99a1('0x1b')]();};}function respondWithResult(_0x47815e,_0xe1a1f){_0xe1a1f=_0xe1a1f||0xc8;return function(_0x3c9ef4){if(_0x3c9ef4){return _0x47815e[_0x99a1('0x1a')](_0xe1a1f)['json'](_0x3c9ef4);}};}function respondWithFilteredResult(_0x2d81ed,_0x3e45d4){return function(_0x1bb464){if(_0x1bb464){var _0x3d40cc=typeof _0x3e45d4[_0x99a1('0x1c')]===_0x99a1('0x1d')&&typeof _0x3e45d4[_0x99a1('0x1e')]==='undefined';var _0x4f049c=_0x1bb464[_0x99a1('0x1f')];var _0xbf62f1=_0x3d40cc?0x0:_0x3e45d4[_0x99a1('0x1c')];var _0x1fcd00=_0x3d40cc?_0x1bb464[_0x99a1('0x1f')]:_0x3e45d4[_0x99a1('0x1c')]+_0x3e45d4[_0x99a1('0x1e')];var _0x3cd62c;if(_0x1fcd00>=_0x4f049c){_0x1fcd00=_0x4f049c;_0x3cd62c=0xc8;}else{_0x3cd62c=0xce;}_0x2d81ed[_0x99a1('0x1a')](_0x3cd62c);return _0x2d81ed[_0x99a1('0x20')](_0x99a1('0x21'),_0xbf62f1+'-'+_0x1fcd00+'/'+_0x4f049c)['json'](_0x1bb464);}return null;};}function patchUpdates(_0x3023a1){return function(_0x20007e){try{jsonpatch['apply'](_0x20007e,_0x3023a1,!![]);}catch(_0x38435b){return BPromise['reject'](_0x38435b);}return _0x20007e[_0x99a1('0x22')]();};}function saveUpdates(_0x2927b0,_0x2d6f20){return function(_0x2d3b82){if(_0x2d3b82){return _0x2d3b82['update'](_0x2927b0)[_0x99a1('0x23')](function(_0x1268a7){return _0x1268a7;});}return null;};}function removeEntity(_0x483c17,_0x44df2d){return function(_0x5b5dfa){if(_0x5b5dfa){return _0x5b5dfa[_0x99a1('0x24')]()[_0x99a1('0x23')](function(){var _0x179597=_0x5b5dfa[_0x99a1('0x25')]({'plain':!![]});var _0x3c813=_0x99a1('0x26');return db['UserProfileResource'][_0x99a1('0x24')]({'where':{'type':_0x3c813,'resourceId':_0x179597['id']}})['then'](function(){return _0x5b5dfa;});})['then'](function(){_0x483c17[_0x99a1('0x1a')](0xcc)[_0x99a1('0x1b')]();});}};}function handleEntityNotFound(_0xa6799b,_0x15a0b6){return function(_0x25d560){if(!_0x25d560){_0xa6799b[_0x99a1('0x19')](0x194);}return _0x25d560;};}function handleError(_0x183037,_0x549645){_0x549645=_0x549645||0x1f4;return function(_0xf41b0d){logger['error'](_0xf41b0d[_0x99a1('0x27')]);if(_0xf41b0d[_0x99a1('0x28')]){delete _0xf41b0d[_0x99a1('0x28')];}_0x183037['status'](_0x549645)[_0x99a1('0x29')](_0xf41b0d);};}exports[_0x99a1('0x2a')]=function(_0x5718b9,_0x37514e){var _0x1434a0={},_0x36aa34={},_0x303d1e={'count':0x0,'rows':[]};var _0x2a5b8c=_[_0x99a1('0x2b')](db[_0x99a1('0x2c')][_0x99a1('0x2d')],function(_0x52da8d){return{'name':_0x52da8d['fieldName'],'type':_0x52da8d[_0x99a1('0x2e')]['key']};});_0x36aa34[_0x99a1('0x2f')]=_[_0x99a1('0x2b')](_0x2a5b8c,'name');_0x36aa34[_0x99a1('0x30')]=_[_0x99a1('0x31')](_0x5718b9[_0x99a1('0x30')]);_0x36aa34[_0x99a1('0x32')]=_[_0x99a1('0x33')](_0x36aa34[_0x99a1('0x2f')],_0x36aa34[_0x99a1('0x30')]);_0x1434a0[_0x99a1('0x34')]=_[_0x99a1('0x33')](_0x36aa34[_0x99a1('0x2f')],qs[_0x99a1('0x35')](_0x5718b9[_0x99a1('0x30')][_0x99a1('0x35')]));_0x1434a0[_0x99a1('0x34')]=_0x1434a0['attributes']['length']?_0x1434a0[_0x99a1('0x34')]:_0x36aa34[_0x99a1('0x2f')];if(!_0x5718b9[_0x99a1('0x30')][_0x99a1('0x36')](_0x99a1('0x37'))){_0x1434a0[_0x99a1('0x1e')]=qs[_0x99a1('0x1e')](_0x5718b9['query'][_0x99a1('0x1e')]);_0x1434a0[_0x99a1('0x1c')]=qs['offset'](_0x5718b9[_0x99a1('0x30')][_0x99a1('0x1c')]);}_0x1434a0[_0x99a1('0x38')]=qs[_0x99a1('0x39')](_0x5718b9[_0x99a1('0x30')][_0x99a1('0x39')]);_0x1434a0[_0x99a1('0x3a')]=qs[_0x99a1('0x32')](_[_0x99a1('0x3b')](_0x5718b9[_0x99a1('0x30')],_0x36aa34[_0x99a1('0x32')]),_0x2a5b8c);if(_0x5718b9[_0x99a1('0x30')][_0x99a1('0x3c')]){_0x1434a0['where']=_['merge'](_0x1434a0['where'],{'$or':_[_0x99a1('0x2b')](_0x2a5b8c,function(_0x169df7){if(_0x169df7[_0x99a1('0x2e')]!==_0x99a1('0x3d')){var _0x40613a={};_0x40613a[_0x169df7['name']]={'$like':'%'+_0x5718b9[_0x99a1('0x30')][_0x99a1('0x3c')]+'%'};return _0x40613a;}})});}_0x1434a0=_[_0x99a1('0x3e')]({},_0x1434a0,_0x5718b9['options']);var _0x49be37={'where':_0x1434a0[_0x99a1('0x3a')]};return db[_0x99a1('0x2c')][_0x99a1('0x1f')](_0x49be37)['then'](function(_0x6c4cb){_0x303d1e[_0x99a1('0x1f')]=_0x6c4cb;if(_0x5718b9[_0x99a1('0x30')][_0x99a1('0x3f')]){_0x1434a0[_0x99a1('0x40')]=[{'all':!![]}];}return db[_0x99a1('0x2c')][_0x99a1('0x41')](_0x1434a0);})[_0x99a1('0x23')](function(_0x1c4ce4){_0x303d1e[_0x99a1('0x42')]=_0x1c4ce4;return _0x303d1e;})['then'](respondWithFilteredResult(_0x37514e,_0x1434a0))[_0x99a1('0x43')](handleError(_0x37514e,null));};exports[_0x99a1('0x44')]=function(_0x3d5373,_0x50d38b){var _0x1beed2={'raw':!![],'where':{'id':_0x3d5373[_0x99a1('0x45')]['id']}},_0x51536d={};_0x51536d[_0x99a1('0x2f')]=_[_0x99a1('0x31')](db[_0x99a1('0x2c')][_0x99a1('0x2d')]);_0x51536d[_0x99a1('0x30')]=_['keys'](_0x3d5373[_0x99a1('0x30')]);_0x51536d['filters']=_[_0x99a1('0x33')](_0x51536d[_0x99a1('0x2f')],_0x51536d[_0x99a1('0x30')]);_0x1beed2[_0x99a1('0x34')]=_[_0x99a1('0x33')](_0x51536d[_0x99a1('0x2f')],qs[_0x99a1('0x35')](_0x3d5373[_0x99a1('0x30')][_0x99a1('0x35')]));_0x1beed2[_0x99a1('0x34')]=_0x1beed2[_0x99a1('0x34')]['length']?_0x1beed2[_0x99a1('0x34')]:_0x51536d[_0x99a1('0x2f')];if(_0x3d5373['query'][_0x99a1('0x3f')]){_0x1beed2[_0x99a1('0x40')]=[{'all':!![]}];}_0x1beed2=_[_0x99a1('0x3e')]({},_0x1beed2,_0x3d5373[_0x99a1('0x46')]);return db[_0x99a1('0x2c')][_0x99a1('0x47')](_0x1beed2)[_0x99a1('0x23')](handleEntityNotFound(_0x50d38b,null))['then'](respondWithResult(_0x50d38b,null))[_0x99a1('0x43')](handleError(_0x50d38b,null));};exports['create']=function(_0x1d4d3f,_0x269798){return db['AnalyticMetric']['create'](_0x1d4d3f[_0x99a1('0x48')],{})[_0x99a1('0x23')](function(_0x462c15){var _0x4519fb=_0x1d4d3f[_0x99a1('0x49')]['get']({'plain':!![]});if(!_0x4519fb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4519fb['role']===_0x99a1('0x49')){var _0x4ae90e=_0x462c15[_0x99a1('0x25')]({'plain':!![]});var _0x30fdfb=_0x99a1('0x26');return db[_0x99a1('0x4a')][_0x99a1('0x47')]({'where':{'name':_0x30fdfb,'userProfileId':_0x4519fb['userProfileId']},'raw':!![]})[_0x99a1('0x23')](function(_0x22bfd8){if(_0x22bfd8&&_0x22bfd8[_0x99a1('0x4b')]===0x0){return db['UserProfileResource'][_0x99a1('0x4c')]({'name':_0x4ae90e['name'],'resourceId':_0x4ae90e['id'],'type':_0x22bfd8['name'],'sectionId':_0x22bfd8['id']},{})[_0x99a1('0x23')](function(){return _0x462c15;});}else{return _0x462c15;}})[_0x99a1('0x43')](function(_0x1dd17b){logger[_0x99a1('0x4d')](_0x99a1('0x4e'),_0x1dd17b);throw _0x1dd17b;});}return _0x462c15;})[_0x99a1('0x23')](respondWithResult(_0x269798,0xc9))[_0x99a1('0x43')](handleError(_0x269798,null));};exports[_0x99a1('0x4f')]=function(_0x16641e,_0x53e9eb){if(_0x16641e[_0x99a1('0x48')]['id']){delete _0x16641e['body']['id'];}return db[_0x99a1('0x2c')][_0x99a1('0x47')]({'where':{'id':_0x16641e['params']['id']}})[_0x99a1('0x23')](handleEntityNotFound(_0x53e9eb,null))[_0x99a1('0x23')](saveUpdates(_0x16641e[_0x99a1('0x48')],null))[_0x99a1('0x23')](respondWithResult(_0x53e9eb,null))[_0x99a1('0x43')](handleError(_0x53e9eb,null));};exports[_0x99a1('0x24')]=function(_0x157c49,_0x1a5658){return db[_0x99a1('0x2c')][_0x99a1('0x47')]({'where':{'id':_0x157c49[_0x99a1('0x45')]['id']}})[_0x99a1('0x23')](handleEntityNotFound(_0x1a5658,null))['then'](removeEntity(_0x1a5658,null))['catch'](handleError(_0x1a5658,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5e0=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./analyticMetric.attributes','exports','define','AnalyticMetric','analytics_metrics','lodash','util'];(function(_0x4de5a7,_0x18c50d){var _0x2cefc1=function(_0x3ac2c6){while(--_0x3ac2c6){_0x4de5a7['push'](_0x4de5a7['shift']());}};_0x2cefc1(++_0x18c50d);}(_0xe5e0,0x1be));var _0x0e5e=function(_0x41a727,_0x1cf419){_0x41a727=_0x41a727-0x0;var _0x3eef84=_0xe5e0[_0x41a727];return _0x3eef84;};'use strict';var _=require(_0x0e5e('0x0'));var util=require(_0x0e5e('0x1'));var logger=require(_0x0e5e('0x2'))(_0x0e5e('0x3'));var moment=require(_0x0e5e('0x4'));var BPromise=require(_0x0e5e('0x5'));var rp=require(_0x0e5e('0x6'));var fs=require('fs');var path=require(_0x0e5e('0x7'));var rimraf=require(_0x0e5e('0x8'));var config=require('../../config/environment');var attributes=require(_0x0e5e('0x9'));module[_0x0e5e('0xa')]=function(_0x14afb0,_0x5f044c){return _0x14afb0[_0x0e5e('0xb')](_0x0e5e('0xc'),attributes,{'tableName':_0x0e5e('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4745=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./analyticMetric.attributes','exports','define','analytics_metrics','lodash','util','../../config/logger'];(function(_0x2fa536,_0x776a1c){var _0x316ea0=function(_0x285fac){while(--_0x285fac){_0x2fa536['push'](_0x2fa536['shift']());}};_0x316ea0(++_0x776a1c);}(_0x4745,0x1e7));var _0x5474=function(_0x4ea69d,_0x290f53){_0x4ea69d=_0x4ea69d-0x0;var _0x5318e0=_0x4745[_0x4ea69d];return _0x5318e0;};'use strict';var _=require(_0x5474('0x0'));var util=require(_0x5474('0x1'));var logger=require(_0x5474('0x2'))(_0x5474('0x3'));var moment=require(_0x5474('0x4'));var BPromise=require(_0x5474('0x5'));var rp=require(_0x5474('0x6'));var fs=require('fs');var path=require(_0x5474('0x7'));var rimraf=require(_0x5474('0x8'));var config=require(_0x5474('0x9'));var attributes=require(_0x5474('0xa'));module[_0x5474('0xb')]=function(_0x4e7ce7,_0x3d1e1){return _0x4e7ce7[_0x5474('0xc')]('AnalyticMetric',attributes,{'tableName':_0x5474('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7f1=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info'];(function(_0x45096e,_0x17e82d){var _0xba1fa3=function(_0x29f43c){while(--_0x29f43c){_0x45096e['push'](_0x45096e['shift']());}};_0xba1fa3(++_0x17e82d);}(_0xe7f1,0x171));var _0x1e7f=function(_0xffe6ea,_0x453117){_0xffe6ea=_0xffe6ea-0x0;var _0x425e16=_0xe7f1[_0xffe6ea];return _0x425e16;};'use strict';var _=require(_0x1e7f('0x0'));var util=require(_0x1e7f('0x1'));var moment=require(_0x1e7f('0x2'));var BPromise=require(_0x1e7f('0x3'));var rs=require(_0x1e7f('0x4'));var fs=require('fs');var Redis=require(_0x1e7f('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x1e7f('0x6'));var logger=require(_0x1e7f('0x7'))(_0x1e7f('0x8'));var config=require(_0x1e7f('0x9'));var jayson=require(_0x1e7f('0xa'));var client=jayson[_0x1e7f('0xb')][_0x1e7f('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x55e490,_0x52b9b1,_0x4a2196){return new BPromise(function(_0x29a0ab,_0x73015c){return client[_0x1e7f('0xd')](_0x55e490,_0x4a2196)[_0x1e7f('0xe')](function(_0x58ba7f){logger['info'](_0x1e7f('0xf'),_0x52b9b1,_0x1e7f('0x10'));logger[_0x1e7f('0x11')]('AnalyticMetric,\x20%s,\x20%s,\x20%s',_0x52b9b1,'request\x20sent',JSON['stringify'](_0x58ba7f));if(_0x58ba7f[_0x1e7f('0x12')]){if(_0x58ba7f[_0x1e7f('0x12')][_0x1e7f('0x13')]===0x1f4){logger['error'](_0x1e7f('0xf'),_0x52b9b1,_0x58ba7f[_0x1e7f('0x12')]['message']);return _0x73015c(_0x58ba7f[_0x1e7f('0x12')]['message']);}logger['error'](_0x1e7f('0xf'),_0x52b9b1,_0x58ba7f[_0x1e7f('0x12')][_0x1e7f('0x14')]);return _0x29a0ab(_0x58ba7f['error']['message']);}else{logger[_0x1e7f('0x15')]('AnalyticMetric,\x20%s,\x20%s',_0x52b9b1,'request\x20sent');_0x29a0ab(_0x58ba7f['result']['message']);}})[_0x1e7f('0x16')](function(_0x3b50be){logger[_0x1e7f('0x12')](_0x1e7f('0xf'),_0x52b9b1,_0x3b50be);_0x73015c(_0x3b50be);});});}
\ No newline at end of file
+var _0x06c9=['stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','http','info','AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x14e8d3,_0x67e3a){var _0x1f565b=function(_0x2be885){while(--_0x2be885){_0x14e8d3['push'](_0x14e8d3['shift']());}};_0x1f565b(++_0x67e3a);}(_0x06c9,0x8a));var _0x906c=function(_0x8a5a7b,_0xc5e515){_0x8a5a7b=_0x8a5a7b-0x0;var _0x54c476=_0x06c9[_0x8a5a7b];return _0x54c476;};'use strict';var _=require(_0x906c('0x0'));var util=require(_0x906c('0x1'));var moment=require(_0x906c('0x2'));var BPromise=require(_0x906c('0x3'));var rs=require(_0x906c('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x906c('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x906c('0x6'))(_0x906c('0x7'));var config=require('../../config/environment');var jayson=require(_0x906c('0x8'));var client=jayson['client'][_0x906c('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x178bc9,_0x5f28af,_0x47b0d1){return new BPromise(function(_0x48c655,_0x2647eb){return client['request'](_0x178bc9,_0x47b0d1)['then'](function(_0x4dfbba){logger[_0x906c('0xa')](_0x906c('0xb'),_0x5f28af,_0x906c('0xc'));logger[_0x906c('0xd')]('AnalyticMetric,\x20%s,\x20%s,\x20%s',_0x5f28af,_0x906c('0xc'),JSON[_0x906c('0xe')](_0x4dfbba));if(_0x4dfbba[_0x906c('0xf')]){if(_0x4dfbba[_0x906c('0xf')][_0x906c('0x10')]===0x1f4){logger[_0x906c('0xf')]('AnalyticMetric,\x20%s,\x20%s',_0x5f28af,_0x4dfbba['error'][_0x906c('0x11')]);return _0x2647eb(_0x4dfbba[_0x906c('0xf')][_0x906c('0x11')]);}logger['error'](_0x906c('0xb'),_0x5f28af,_0x4dfbba[_0x906c('0xf')]['message']);return _0x48c655(_0x4dfbba[_0x906c('0xf')]['message']);}else{logger[_0x906c('0xa')]('AnalyticMetric,\x20%s,\x20%s',_0x5f28af,_0x906c('0xc'));_0x48c655(_0x4dfbba[_0x906c('0x12')][_0x906c('0x11')]);}})['catch'](function(_0x1681c8){logger[_0x906c('0xf')](_0x906c('0xb'),_0x5f28af,_0x1681c8);_0x2647eb(_0x1681c8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6d2=['../../config/environment','./analyticMetric.controller','isAuthenticated','index','get','/:id','show','post','create','put','update','delete','destroy','multer','util','connect-timeout','express','fs-extra','../../components/interaction/service'];(function(_0x4a23a9,_0x17a2c0){var _0x18c27f=function(_0x3414e3){while(--_0x3414e3){_0x4a23a9['push'](_0x4a23a9['shift']());}};_0x18c27f(++_0x17a2c0);}(_0xd6d2,0xcb));var _0x2d6d=function(_0x17f9d2,_0x3f7ba7){_0x17f9d2=_0x17f9d2-0x0;var _0x2959cd=_0xd6d2[_0x17f9d2];return _0x2959cd;};'use strict';var multer=require(_0x2d6d('0x0'));var util=require(_0x2d6d('0x1'));var path=require('path');var timeout=require(_0x2d6d('0x2'));var express=require(_0x2d6d('0x3'));var router=express['Router']();var fs_extra=require(_0x2d6d('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2d6d('0x5'));var config=require(_0x2d6d('0x6'));var controller=require(_0x2d6d('0x7'));router['get']('/',auth[_0x2d6d('0x8')](),controller[_0x2d6d('0x9')]);router[_0x2d6d('0xa')](_0x2d6d('0xb'),auth[_0x2d6d('0x8')](),controller[_0x2d6d('0xc')]);router[_0x2d6d('0xd')]('/',auth[_0x2d6d('0x8')](),controller[_0x2d6d('0xe')]);router[_0x2d6d('0xf')](_0x2d6d('0xb'),auth['isAuthenticated'](),controller[_0x2d6d('0x10')]);router[_0x2d6d('0x11')](_0x2d6d('0xb'),auth[_0x2d6d('0x8')](),controller[_0x2d6d('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0xc949=['create','put','update','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./analyticMetric.controller','get','isAuthenticated','index','/:id','show','post'];(function(_0x4cc78f,_0x549c18){var _0x35f93c=function(_0x5820f5){while(--_0x5820f5){_0x4cc78f['push'](_0x4cc78f['shift']());}};_0x35f93c(++_0x549c18);}(_0xc949,0x181));var _0x9c94=function(_0x4d8ed9,_0x2ae284){_0x4d8ed9=_0x4d8ed9-0x0;var _0x1e2140=_0xc949[_0x4d8ed9];return _0x1e2140;};'use strict';var multer=require(_0x9c94('0x0'));var util=require('util');var path=require(_0x9c94('0x1'));var timeout=require(_0x9c94('0x2'));var express=require(_0x9c94('0x3'));var router=express[_0x9c94('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x9c94('0x5'));var interaction=require(_0x9c94('0x6'));var config=require('../../config/environment');var controller=require(_0x9c94('0x7'));router[_0x9c94('0x8')]('/',auth[_0x9c94('0x9')](),controller[_0x9c94('0xa')]);router['get'](_0x9c94('0xb'),auth[_0x9c94('0x9')](),controller[_0x9c94('0xc')]);router[_0x9c94('0xd')]('/',auth[_0x9c94('0x9')](),controller[_0x9c94('0xe')]);router[_0x9c94('0xf')](_0x9c94('0xb'),auth[_0x9c94('0x9')](),controller[_0x9c94('0x10')]);router['delete'](_0x9c94('0xb'),auth[_0x9c94('0x9')](),controller[_0x9c94('0x11')]);module[_0x9c94('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcdb1=['exports','sequelize'];(function(_0x46981d,_0x1332be){var _0x37e4d5=function(_0x18bdcd){while(--_0x18bdcd){_0x46981d['push'](_0x46981d['shift']());}};_0x37e4d5(++_0x1332be);}(_0xcdb1,0x177));var _0x1cdb=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xcdb1[_0x3ab51d];return _0x29a04e;};'use strict';var Sequelize=require(_0x1cdb('0x0'));module[_0x1cdb('0x1')]={'tree':{'type':Sequelize['TEXT'],'allowNull':![]}};
\ No newline at end of file
+var _0x724d=['TEXT','sequelize'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x724d,0x129));var _0xd724=function(_0x5b64a1,_0x2ec810){_0x5b64a1=_0x5b64a1-0x0;var _0x4b6f55=_0x724d[_0x5b64a1];return _0x4b6f55;};'use strict';var Sequelize=require(_0xd724('0x0'));module['exports']={'tree':{'type':Sequelize[_0xd724('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2edb=['../../mysqldb','status','json','offset','undefined','count','limit','set','Content-Range','reject','then','end','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','AnalyticTreeReport','includeAll','include','findAll','rows','catch','show','fields','find','create','body','params','destroy','rimraf','zip-dir','fast-json-patch','request-promise','mustache','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/utils','../../config/environment','../../config/license/util'];(function(_0xaa9085,_0x814743){var _0x35c212=function(_0x515e2b){while(--_0x515e2b){_0xaa9085['push'](_0xaa9085['shift']());}};_0x35c212(++_0x814743);}(_0x2edb,0x1d7));var _0xb2ed=function(_0x269b97,_0x10d133){_0x269b97=_0x269b97-0x0;var _0x120efa=_0x2edb[_0x269b97];return _0x120efa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb2ed('0x0'));var zipdir=require(_0xb2ed('0x1'));var jsonpatch=require(_0xb2ed('0x2'));var rp=require(_0xb2ed('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb2ed('0x4'));var util=require('util');var path=require('path');var sox=require(_0xb2ed('0x5'));var csv=require(_0xb2ed('0x6'));var ejs=require(_0xb2ed('0x7'));var fs=require('fs');var fs_extra=require(_0xb2ed('0x8'));var _=require('lodash');var squel=require(_0xb2ed('0x9'));var crypto=require(_0xb2ed('0xa'));var jsforce=require(_0xb2ed('0xb'));var deskjs=require(_0xb2ed('0xc'));var toCsv=require(_0xb2ed('0x6'));var querystring=require(_0xb2ed('0xd'));var Papa=require(_0xb2ed('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb2ed('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xb2ed('0x10'));var config=require(_0xb2ed('0x11'));var licenseUtil=require(_0xb2ed('0x12'));var db=require(_0xb2ed('0x13'))['db'];function respondWithStatusCode(_0x4cdbe7,_0x4264b2){_0x4264b2=_0x4264b2||0xcc;return function(_0xc3a6eb){if(_0xc3a6eb){return _0x4cdbe7['sendStatus'](_0x4264b2);}return _0x4cdbe7['status'](_0x4264b2)['end']();};}function respondWithResult(_0x3dad8d,_0xe31ac2){_0xe31ac2=_0xe31ac2||0xc8;return function(_0xffbf65){if(_0xffbf65){return _0x3dad8d[_0xb2ed('0x14')](_0xe31ac2)[_0xb2ed('0x15')](_0xffbf65);}};}function respondWithFilteredResult(_0x3fc425,_0x4d54af){return function(_0x5d0f76){if(_0x5d0f76){var _0x39b9b5=typeof _0x4d54af[_0xb2ed('0x16')]==='undefined'&&typeof _0x4d54af['limit']===_0xb2ed('0x17');var _0x471755=_0x5d0f76[_0xb2ed('0x18')];var _0x22f79d=_0x39b9b5?0x0:_0x4d54af[_0xb2ed('0x16')];var _0x27d84c=_0x39b9b5?_0x5d0f76[_0xb2ed('0x18')]:_0x4d54af[_0xb2ed('0x16')]+_0x4d54af[_0xb2ed('0x19')];var _0x2b309b;if(_0x27d84c>=_0x471755){_0x27d84c=_0x471755;_0x2b309b=0xc8;}else{_0x2b309b=0xce;}_0x3fc425[_0xb2ed('0x14')](_0x2b309b);return _0x3fc425[_0xb2ed('0x1a')](_0xb2ed('0x1b'),_0x22f79d+'-'+_0x27d84c+'/'+_0x471755)[_0xb2ed('0x15')](_0x5d0f76);}return null;};}function patchUpdates(_0x3a16af){return function(_0x283031){try{jsonpatch['apply'](_0x283031,_0x3a16af,!![]);}catch(_0x439f9b){return BPromise[_0xb2ed('0x1c')](_0x439f9b);}return _0x283031['save']();};}function saveUpdates(_0x3eb820,_0x23f10c){return function(_0x3f95a6){if(_0x3f95a6){return _0x3f95a6['update'](_0x3eb820)[_0xb2ed('0x1d')](function(_0x19c31a){return _0x19c31a;});}return null;};}function removeEntity(_0x59637e,_0x4abac5){return function(_0x46a65a){if(_0x46a65a){return _0x46a65a['destroy']()[_0xb2ed('0x1d')](function(){_0x59637e[_0xb2ed('0x14')](0xcc)[_0xb2ed('0x1e')]();});}};}function handleEntityNotFound(_0x4f60a6,_0x5a38a8){return function(_0x2ecb30){if(!_0x2ecb30){_0x4f60a6[_0xb2ed('0x1f')](0x194);}return _0x2ecb30;};}function handleError(_0x269ce6,_0x3498cc){_0x3498cc=_0x3498cc||0x1f4;return function(_0x53e2bb){logger[_0xb2ed('0x20')](_0x53e2bb[_0xb2ed('0x21')]);if(_0x53e2bb['name']){delete _0x53e2bb[_0xb2ed('0x22')];}_0x269ce6[_0xb2ed('0x14')](_0x3498cc)[_0xb2ed('0x23')](_0x53e2bb);};}exports[_0xb2ed('0x24')]=function(_0x17f3f3,_0x4aa9a5){var _0x37ea0f={},_0x3b0f0b={},_0x1fbbd3={'count':0x0,'rows':[]};var _0x4e48f4=_[_0xb2ed('0x25')](db['AnalyticTreeReport'][_0xb2ed('0x26')],function(_0x129da9){return{'name':_0x129da9[_0xb2ed('0x27')],'type':_0x129da9[_0xb2ed('0x28')][_0xb2ed('0x29')]};});_0x3b0f0b[_0xb2ed('0x2a')]=_[_0xb2ed('0x25')](_0x4e48f4,_0xb2ed('0x22'));_0x3b0f0b[_0xb2ed('0x2b')]=_[_0xb2ed('0x2c')](_0x17f3f3[_0xb2ed('0x2b')]);_0x3b0f0b[_0xb2ed('0x2d')]=_[_0xb2ed('0x2e')](_0x3b0f0b[_0xb2ed('0x2a')],_0x3b0f0b[_0xb2ed('0x2b')]);_0x37ea0f[_0xb2ed('0x2f')]=_[_0xb2ed('0x2e')](_0x3b0f0b['model'],qs['fields'](_0x17f3f3[_0xb2ed('0x2b')]['fields']));_0x37ea0f[_0xb2ed('0x2f')]=_0x37ea0f['attributes'][_0xb2ed('0x30')]?_0x37ea0f[_0xb2ed('0x2f')]:_0x3b0f0b[_0xb2ed('0x2a')];if(!_0x17f3f3['query']['hasOwnProperty'](_0xb2ed('0x31'))){_0x37ea0f['limit']=qs[_0xb2ed('0x19')](_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x19')]);_0x37ea0f[_0xb2ed('0x16')]=qs[_0xb2ed('0x16')](_0x17f3f3['query'][_0xb2ed('0x16')]);}_0x37ea0f[_0xb2ed('0x32')]=qs['sort'](_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x33')]);_0x37ea0f[_0xb2ed('0x34')]=qs[_0xb2ed('0x2d')](_[_0xb2ed('0x35')](_0x17f3f3[_0xb2ed('0x2b')],_0x3b0f0b[_0xb2ed('0x2d')]),_0x4e48f4);if(_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x36')]){_0x37ea0f['where']=_[_0xb2ed('0x37')](_0x37ea0f[_0xb2ed('0x34')],{'$or':_[_0xb2ed('0x25')](_0x4e48f4,function(_0x402fef){if(_0x402fef[_0xb2ed('0x28')]!==_0xb2ed('0x38')){var _0x127b53={};_0x127b53[_0x402fef[_0xb2ed('0x22')]]={'$like':'%'+_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x36')]+'%'};return _0x127b53;}})});}_0x37ea0f=_[_0xb2ed('0x37')]({},_0x37ea0f,_0x17f3f3['options']);var _0xe3b3d8={'where':_0x37ea0f['where']};return db[_0xb2ed('0x39')][_0xb2ed('0x18')](_0xe3b3d8)[_0xb2ed('0x1d')](function(_0x5e82da){_0x1fbbd3[_0xb2ed('0x18')]=_0x5e82da;if(_0x17f3f3['query'][_0xb2ed('0x3a')]){_0x37ea0f[_0xb2ed('0x3b')]=[{'all':!![]}];}return db[_0xb2ed('0x39')][_0xb2ed('0x3c')](_0x37ea0f);})[_0xb2ed('0x1d')](function(_0x4505da){_0x1fbbd3[_0xb2ed('0x3d')]=_0x4505da;return _0x1fbbd3;})['then'](respondWithFilteredResult(_0x4aa9a5,_0x37ea0f))[_0xb2ed('0x3e')](handleError(_0x4aa9a5,null));};exports[_0xb2ed('0x3f')]=function(_0x3ecb65,_0x150dae){var _0x51633e={'raw':!![],'where':{'id':_0x3ecb65['params']['id']}},_0x35843b={};_0x35843b[_0xb2ed('0x2a')]=_[_0xb2ed('0x2c')](db[_0xb2ed('0x39')]['rawAttributes']);_0x35843b[_0xb2ed('0x2b')]=_[_0xb2ed('0x2c')](_0x3ecb65['query']);_0x35843b[_0xb2ed('0x2d')]=_[_0xb2ed('0x2e')](_0x35843b['model'],_0x35843b[_0xb2ed('0x2b')]);_0x51633e['attributes']=_[_0xb2ed('0x2e')](_0x35843b[_0xb2ed('0x2a')],qs[_0xb2ed('0x40')](_0x3ecb65[_0xb2ed('0x2b')][_0xb2ed('0x40')]));_0x51633e[_0xb2ed('0x2f')]=_0x51633e['attributes'][_0xb2ed('0x30')]?_0x51633e[_0xb2ed('0x2f')]:_0x35843b['model'];if(_0x3ecb65['query'][_0xb2ed('0x3a')]){_0x51633e[_0xb2ed('0x3b')]=[{'all':!![]}];}_0x51633e=_[_0xb2ed('0x37')]({},_0x51633e,_0x3ecb65['options']);return db[_0xb2ed('0x39')][_0xb2ed('0x41')](_0x51633e)['then'](handleEntityNotFound(_0x150dae,null))[_0xb2ed('0x1d')](respondWithResult(_0x150dae,null))[_0xb2ed('0x3e')](handleError(_0x150dae,null));};exports[_0xb2ed('0x42')]=function(_0x70f5f9,_0x3eaab0){return db[_0xb2ed('0x39')][_0xb2ed('0x42')](_0x70f5f9[_0xb2ed('0x43')],{})[_0xb2ed('0x1d')](respondWithResult(_0x3eaab0,0xc9))[_0xb2ed('0x3e')](handleError(_0x3eaab0,null));};exports['update']=function(_0x1d1c9e,_0x508026){if(_0x1d1c9e['body']['id']){delete _0x1d1c9e['body']['id'];}return db[_0xb2ed('0x39')]['find']({'where':{'id':_0x1d1c9e[_0xb2ed('0x44')]['id']}})['then'](handleEntityNotFound(_0x508026,null))[_0xb2ed('0x1d')](saveUpdates(_0x1d1c9e[_0xb2ed('0x43')],null))[_0xb2ed('0x1d')](respondWithResult(_0x508026,null))[_0xb2ed('0x3e')](handleError(_0x508026,null));};exports[_0xb2ed('0x45')]=function(_0x241d21,_0x38a3c){return db[_0xb2ed('0x39')]['find']({'where':{'id':_0x241d21['params']['id']}})[_0xb2ed('0x1d')](handleEntityNotFound(_0x38a3c,null))[_0xb2ed('0x1d')](removeEntity(_0x38a3c,null))[_0xb2ed('0x3e')](handleError(_0x38a3c,null));};
\ No newline at end of file
+var _0xcfb9=['model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','count','findAll','catch','show','options','find','create','body','params','rimraf','zip-dir','request-promise','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','AnalyticTreeReport','rawAttributes','fieldName','type'];(function(_0x4ca7c7,_0x5d16ee){var _0x456a87=function(_0x11c8fc){while(--_0x11c8fc){_0x4ca7c7['push'](_0x4ca7c7['shift']());}};_0x456a87(++_0x5d16ee);}(_0xcfb9,0x1c3));var _0x9cfb=function(_0x5c9307,_0x5b97e4){_0x5c9307=_0x5c9307-0x0;var _0x373e29=_0xcfb9[_0x5c9307];return _0x373e29;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9cfb('0x0'));var zipdir=require(_0x9cfb('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9cfb('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x9cfb('0x3'));var sox=require(_0x9cfb('0x4'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9cfb('0x5'));var _=require(_0x9cfb('0x6'));var squel=require(_0x9cfb('0x7'));var crypto=require(_0x9cfb('0x8'));var jsforce=require(_0x9cfb('0x9'));var deskjs=require(_0x9cfb('0xa'));var toCsv=require(_0x9cfb('0xb'));var querystring=require(_0x9cfb('0xc'));var Papa=require('papaparse');var Redis=require(_0x9cfb('0xd'));var authService=require(_0x9cfb('0xe'));var qs=require(_0x9cfb('0xf'));var as=require(_0x9cfb('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9cfb('0x11'))(_0x9cfb('0x12'));var utils=require(_0x9cfb('0x13'));var config=require(_0x9cfb('0x14'));var licenseUtil=require(_0x9cfb('0x15'));var db=require(_0x9cfb('0x16'))['db'];function respondWithStatusCode(_0x5d6e0d,_0x27760a){_0x27760a=_0x27760a||0xcc;return function(_0x443d90){if(_0x443d90){return _0x5d6e0d[_0x9cfb('0x17')](_0x27760a);}return _0x5d6e0d[_0x9cfb('0x18')](_0x27760a)[_0x9cfb('0x19')]();};}function respondWithResult(_0x249d86,_0xb3c395){_0xb3c395=_0xb3c395||0xc8;return function(_0x4a8136){if(_0x4a8136){return _0x249d86['status'](_0xb3c395)[_0x9cfb('0x1a')](_0x4a8136);}};}function respondWithFilteredResult(_0x59ed81,_0x33230e){return function(_0x41d582){if(_0x41d582){var _0x3d0692=typeof _0x33230e[_0x9cfb('0x1b')]===_0x9cfb('0x1c')&&typeof _0x33230e[_0x9cfb('0x1d')]===_0x9cfb('0x1c');var _0x2411e1=_0x41d582['count'];var _0x42eae4=_0x3d0692?0x0:_0x33230e[_0x9cfb('0x1b')];var _0x17e707=_0x3d0692?_0x41d582['count']:_0x33230e['offset']+_0x33230e[_0x9cfb('0x1d')];var _0x5c7fb0;if(_0x17e707>=_0x2411e1){_0x17e707=_0x2411e1;_0x5c7fb0=0xc8;}else{_0x5c7fb0=0xce;}_0x59ed81['status'](_0x5c7fb0);return _0x59ed81['set']('Content-Range',_0x42eae4+'-'+_0x17e707+'/'+_0x2411e1)[_0x9cfb('0x1a')](_0x41d582);}return null;};}function patchUpdates(_0x16c72c){return function(_0x435ee3){try{jsonpatch[_0x9cfb('0x1e')](_0x435ee3,_0x16c72c,!![]);}catch(_0x15892e){return BPromise[_0x9cfb('0x1f')](_0x15892e);}return _0x435ee3[_0x9cfb('0x20')]();};}function saveUpdates(_0xe42f4e,_0x18d257){return function(_0x386c86){if(_0x386c86){return _0x386c86[_0x9cfb('0x21')](_0xe42f4e)[_0x9cfb('0x22')](function(_0x53586b){return _0x53586b;});}return null;};}function removeEntity(_0x44c579,_0x46cb9e){return function(_0x25fe95){if(_0x25fe95){return _0x25fe95[_0x9cfb('0x23')]()['then'](function(){_0x44c579['status'](0xcc)[_0x9cfb('0x19')]();});}};}function handleEntityNotFound(_0x55fe00,_0x20c391){return function(_0x53ad27){if(!_0x53ad27){_0x55fe00[_0x9cfb('0x17')](0x194);}return _0x53ad27;};}function handleError(_0xf42e19,_0x52b1b6){_0x52b1b6=_0x52b1b6||0x1f4;return function(_0x5d26cc){logger[_0x9cfb('0x24')](_0x5d26cc[_0x9cfb('0x25')]);if(_0x5d26cc['name']){delete _0x5d26cc[_0x9cfb('0x26')];}_0xf42e19['status'](_0x52b1b6)[_0x9cfb('0x27')](_0x5d26cc);};}exports[_0x9cfb('0x28')]=function(_0x5c8e0,_0x1d008c){var _0x1bc6f1={},_0x286dbb={},_0x402e75={'count':0x0,'rows':[]};var _0x7462af=_[_0x9cfb('0x29')](db[_0x9cfb('0x2a')][_0x9cfb('0x2b')],function(_0x132164){return{'name':_0x132164[_0x9cfb('0x2c')],'type':_0x132164[_0x9cfb('0x2d')]['key']};});_0x286dbb[_0x9cfb('0x2e')]=_[_0x9cfb('0x29')](_0x7462af,_0x9cfb('0x26'));_0x286dbb[_0x9cfb('0x2f')]=_[_0x9cfb('0x30')](_0x5c8e0[_0x9cfb('0x2f')]);_0x286dbb['filters']=_[_0x9cfb('0x31')](_0x286dbb[_0x9cfb('0x2e')],_0x286dbb['query']);_0x1bc6f1[_0x9cfb('0x32')]=_[_0x9cfb('0x31')](_0x286dbb[_0x9cfb('0x2e')],qs[_0x9cfb('0x33')](_0x5c8e0[_0x9cfb('0x2f')][_0x9cfb('0x33')]));_0x1bc6f1['attributes']=_0x1bc6f1[_0x9cfb('0x32')][_0x9cfb('0x34')]?_0x1bc6f1[_0x9cfb('0x32')]:_0x286dbb['model'];if(!_0x5c8e0[_0x9cfb('0x2f')]['hasOwnProperty'](_0x9cfb('0x35'))){_0x1bc6f1[_0x9cfb('0x1d')]=qs[_0x9cfb('0x1d')](_0x5c8e0[_0x9cfb('0x2f')][_0x9cfb('0x1d')]);_0x1bc6f1[_0x9cfb('0x1b')]=qs[_0x9cfb('0x1b')](_0x5c8e0[_0x9cfb('0x2f')][_0x9cfb('0x1b')]);}_0x1bc6f1[_0x9cfb('0x36')]=qs[_0x9cfb('0x37')](_0x5c8e0['query'][_0x9cfb('0x37')]);_0x1bc6f1[_0x9cfb('0x38')]=qs[_0x9cfb('0x39')](_[_0x9cfb('0x3a')](_0x5c8e0[_0x9cfb('0x2f')],_0x286dbb[_0x9cfb('0x39')]),_0x7462af);if(_0x5c8e0[_0x9cfb('0x2f')][_0x9cfb('0x3b')]){_0x1bc6f1['where']=_[_0x9cfb('0x3c')](_0x1bc6f1['where'],{'$or':_[_0x9cfb('0x29')](_0x7462af,function(_0x331d0a){if(_0x331d0a[_0x9cfb('0x2d')]!==_0x9cfb('0x3d')){var _0x1be561={};_0x1be561[_0x331d0a[_0x9cfb('0x26')]]={'$like':'%'+_0x5c8e0['query'][_0x9cfb('0x3b')]+'%'};return _0x1be561;}})});}_0x1bc6f1=_[_0x9cfb('0x3c')]({},_0x1bc6f1,_0x5c8e0['options']);var _0x6c5bcb={'where':_0x1bc6f1['where']};return db['AnalyticTreeReport'][_0x9cfb('0x3e')](_0x6c5bcb)[_0x9cfb('0x22')](function(_0x448dce){_0x402e75[_0x9cfb('0x3e')]=_0x448dce;if(_0x5c8e0[_0x9cfb('0x2f')]['includeAll']){_0x1bc6f1['include']=[{'all':!![]}];}return db['AnalyticTreeReport'][_0x9cfb('0x3f')](_0x1bc6f1);})[_0x9cfb('0x22')](function(_0x195197){_0x402e75['rows']=_0x195197;return _0x402e75;})[_0x9cfb('0x22')](respondWithFilteredResult(_0x1d008c,_0x1bc6f1))[_0x9cfb('0x40')](handleError(_0x1d008c,null));};exports[_0x9cfb('0x41')]=function(_0x74de41,_0x593ea7){var _0x424e20={'raw':!![],'where':{'id':_0x74de41['params']['id']}},_0x116d72={};_0x116d72[_0x9cfb('0x2e')]=_[_0x9cfb('0x30')](db[_0x9cfb('0x2a')][_0x9cfb('0x2b')]);_0x116d72[_0x9cfb('0x2f')]=_[_0x9cfb('0x30')](_0x74de41['query']);_0x116d72[_0x9cfb('0x39')]=_[_0x9cfb('0x31')](_0x116d72[_0x9cfb('0x2e')],_0x116d72[_0x9cfb('0x2f')]);_0x424e20[_0x9cfb('0x32')]=_[_0x9cfb('0x31')](_0x116d72[_0x9cfb('0x2e')],qs[_0x9cfb('0x33')](_0x74de41[_0x9cfb('0x2f')][_0x9cfb('0x33')]));_0x424e20[_0x9cfb('0x32')]=_0x424e20['attributes']['length']?_0x424e20['attributes']:_0x116d72[_0x9cfb('0x2e')];if(_0x74de41['query']['includeAll']){_0x424e20['include']=[{'all':!![]}];}_0x424e20=_[_0x9cfb('0x3c')]({},_0x424e20,_0x74de41[_0x9cfb('0x42')]);return db['AnalyticTreeReport'][_0x9cfb('0x43')](_0x424e20)['then'](handleEntityNotFound(_0x593ea7,null))[_0x9cfb('0x22')](respondWithResult(_0x593ea7,null))[_0x9cfb('0x40')](handleError(_0x593ea7,null));};exports[_0x9cfb('0x44')]=function(_0x4a039a,_0x5291a6){return db[_0x9cfb('0x2a')]['create'](_0x4a039a[_0x9cfb('0x45')],{})[_0x9cfb('0x22')](respondWithResult(_0x5291a6,0xc9))[_0x9cfb('0x40')](handleError(_0x5291a6,null));};exports[_0x9cfb('0x21')]=function(_0x3c58bc,_0x5f0e43){if(_0x3c58bc['body']['id']){delete _0x3c58bc[_0x9cfb('0x45')]['id'];}return db['AnalyticTreeReport'][_0x9cfb('0x43')]({'where':{'id':_0x3c58bc[_0x9cfb('0x46')]['id']}})[_0x9cfb('0x22')](handleEntityNotFound(_0x5f0e43,null))[_0x9cfb('0x22')](saveUpdates(_0x3c58bc['body'],null))[_0x9cfb('0x22')](respondWithResult(_0x5f0e43,null))['catch'](handleError(_0x5f0e43,null));};exports[_0x9cfb('0x23')]=function(_0x3367ce,_0x4fbd67){return db[_0x9cfb('0x2a')][_0x9cfb('0x43')]({'where':{'id':_0x3367ce[_0x9cfb('0x46')]['id']}})[_0x9cfb('0x22')](handleEntityNotFound(_0x4fbd67,null))[_0x9cfb('0x22')](removeEntity(_0x4fbd67,null))[_0x9cfb('0x40')](handleError(_0x4fbd67,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x634e=['./analyticTreeReport.attributes','exports','define','AnalyticTreeReport','analytics_report_trees','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x28901e,_0x13ba7a){var _0x29468c=function(_0x55796f){while(--_0x55796f){_0x28901e['push'](_0x28901e['shift']());}};_0x29468c(++_0x13ba7a);}(_0x634e,0xe5));var _0xe634=function(_0x4a9771,_0x52429b){_0x4a9771=_0x4a9771-0x0;var _0x52e0ed=_0x634e[_0x4a9771];return _0x52e0ed;};'use strict';var _=require(_0xe634('0x0'));var util=require(_0xe634('0x1'));var logger=require(_0xe634('0x2'))(_0xe634('0x3'));var moment=require(_0xe634('0x4'));var BPromise=require('bluebird');var rp=require(_0xe634('0x5'));var fs=require('fs');var path=require(_0xe634('0x6'));var rimraf=require(_0xe634('0x7'));var config=require(_0xe634('0x8'));var attributes=require(_0xe634('0x9'));module[_0xe634('0xa')]=function(_0x3c1c3f,_0x5bc201){return _0x3c1c3f[_0xe634('0xb')](_0xe634('0xc'),attributes,{'tableName':_0xe634('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x77fb=['lodash','util','../../config/logger','api','moment','rimraf','../../config/environment','./analyticTreeReport.attributes','define','AnalyticTreeReport','analytics_report_trees'];(function(_0x42a178,_0x402f42){var _0x1ad3b8=function(_0x26eae2){while(--_0x26eae2){_0x42a178['push'](_0x42a178['shift']());}};_0x1ad3b8(++_0x402f42);}(_0x77fb,0x197));var _0xb77f=function(_0x1a9c9c,_0x35af92){_0x1a9c9c=_0x1a9c9c-0x0;var _0x3fee2e=_0x77fb[_0x1a9c9c];return _0x3fee2e;};'use strict';var _=require(_0xb77f('0x0'));var util=require(_0xb77f('0x1'));var logger=require(_0xb77f('0x2'))(_0xb77f('0x3'));var moment=require(_0xb77f('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb77f('0x5'));var config=require(_0xb77f('0x6'));var attributes=require(_0xb77f('0x7'));module['exports']=function(_0x494111,_0x10534d){return _0x494111[_0xb77f('0x8')](_0xb77f('0x9'),attributes,{'tableName':_0xb77f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util'];(function(_0x29fcf4,_0x3fefe5){var _0x149192=function(_0x30b717){while(--_0x30b717){_0x29fcf4['push'](_0x29fcf4['shift']());}};_0x149192(++_0x3fefe5);}(_0xdb28,0x106));var _0x8db2=function(_0x36c133,_0x3f4848){_0x36c133=_0x36c133-0x0;var _0x33d9b9=_0xdb28[_0x36c133];return _0x33d9b9;};'use strict';var _=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var moment=require(_0x8db2('0x2'));var BPromise=require(_0x8db2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8db2('0x4'));var db=require(_0x8db2('0x5'))['db'];var utils=require(_0x8db2('0x6'));var logger=require(_0x8db2('0x7'))(_0x8db2('0x8'));var config=require('../../config/environment');var jayson=require(_0x8db2('0x9'));var client=jayson[_0x8db2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x494b40,_0x477f50,_0x46932f){return new BPromise(function(_0x131537,_0x29f698){return client[_0x8db2('0xb')](_0x494b40,_0x46932f)[_0x8db2('0xc')](function(_0x126c78){logger['info'](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));logger[_0x8db2('0xf')]('AnalyticTreeReport,\x20%s,\x20%s,\x20%s',_0x477f50,_0x8db2('0xe'),JSON[_0x8db2('0x10')](_0x126c78));if(_0x126c78['error']){if(_0x126c78[_0x8db2('0x11')][_0x8db2('0x12')]===0x1f4){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')]['message']);return _0x29f698(_0x126c78['error'][_0x8db2('0x13')]);}logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);return _0x131537(_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);}else{logger[_0x8db2('0x14')](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));_0x131537(_0x126c78['result'][_0x8db2('0x13')]);}})[_0x8db2('0x15')](function(_0x48101e){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x48101e);_0x29f698(_0x48101e);});});}
\ No newline at end of file
+var _0x5f66=['../../mysqldb','../../config/utils','rpc','jayson/promise','client','request','then','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticTreeReport,\x20%s,\x20%s,\x20%s','stringify','code','message','error','info','catch','util','bluebird','randomstring','ioredis'];(function(_0x449ca9,_0x6fe125){var _0x3f755d=function(_0x4e0c71){while(--_0x4e0c71){_0x449ca9['push'](_0x449ca9['shift']());}};_0x3f755d(++_0x6fe125);}(_0x5f66,0x1a0));var _0x65f6=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0x5f66[_0x4243a3];return _0x1b2a33;};'use strict';var _=require('lodash');var util=require(_0x65f6('0x0'));var moment=require('moment');var BPromise=require(_0x65f6('0x1'));var rs=require(_0x65f6('0x2'));var fs=require('fs');var Redis=require(_0x65f6('0x3'));var db=require(_0x65f6('0x4'))['db'];var utils=require(_0x65f6('0x5'));var logger=require('../../config/logger')(_0x65f6('0x6'));var config=require('../../config/environment');var jayson=require(_0x65f6('0x7'));var client=jayson[_0x65f6('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4ed98f,_0x1c0e12,_0x2c6571){return new BPromise(function(_0x112079,_0x8f6451){return client[_0x65f6('0x9')](_0x4ed98f,_0x2c6571)[_0x65f6('0xa')](function(_0x48d85c){logger['info'](_0x65f6('0xb'),_0x1c0e12,_0x65f6('0xc'));logger[_0x65f6('0xd')](_0x65f6('0xe'),_0x1c0e12,'request\x20sent',JSON[_0x65f6('0xf')](_0x48d85c));if(_0x48d85c['error']){if(_0x48d85c['error'][_0x65f6('0x10')]===0x1f4){logger['error'](_0x65f6('0xb'),_0x1c0e12,_0x48d85c['error'][_0x65f6('0x11')]);return _0x8f6451(_0x48d85c[_0x65f6('0x12')][_0x65f6('0x11')]);}logger[_0x65f6('0x12')](_0x65f6('0xb'),_0x1c0e12,_0x48d85c[_0x65f6('0x12')][_0x65f6('0x11')]);return _0x112079(_0x48d85c[_0x65f6('0x12')][_0x65f6('0x11')]);}else{logger[_0x65f6('0x13')]('AnalyticTreeReport,\x20%s,\x20%s',_0x1c0e12,_0x65f6('0xc'));_0x112079(_0x48d85c['result']['message']);}})[_0x65f6('0x14')](function(_0x5c69f8){logger[_0x65f6('0x12')](_0x65f6('0xb'),_0x1c0e12,_0x5c69f8);_0x8f6451(_0x5c69f8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91de=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','index','/:id','isAuthenticated','show','post','put','update','delete','exports','util','connect-timeout','express','Router'];(function(_0x12f099,_0x38c9cb){var _0x2e553d=function(_0x31391a){while(--_0x31391a){_0x12f099['push'](_0x12f099['shift']());}};_0x2e553d(++_0x38c9cb);}(_0x91de,0x119));var _0xe91d=function(_0xb9f41a,_0x2b2e5f){_0xb9f41a=_0xb9f41a-0x0;var _0x4724fe=_0x91de[_0xb9f41a];return _0x4724fe;};'use strict';var multer=require('multer');var util=require(_0xe91d('0x0'));var path=require('path');var timeout=require(_0xe91d('0x1'));var express=require(_0xe91d('0x2'));var router=express[_0xe91d('0x3')]();var fs_extra=require(_0xe91d('0x4'));var auth=require(_0xe91d('0x5'));var interaction=require(_0xe91d('0x6'));var config=require(_0xe91d('0x7'));var controller=require(_0xe91d('0x8'));router[_0xe91d('0x9')]('/',auth['isAuthenticated'](),controller[_0xe91d('0xa')]);router[_0xe91d('0x9')](_0xe91d('0xb'),auth[_0xe91d('0xc')](),controller[_0xe91d('0xd')]);router[_0xe91d('0xe')]('/',auth[_0xe91d('0xc')](),controller['create']);router[_0xe91d('0xf')](_0xe91d('0xb'),auth[_0xe91d('0xc')](),controller[_0xe91d('0x10')]);router[_0xe91d('0x11')]('/:id',auth[_0xe91d('0xc')](),controller['destroy']);module[_0xe91d('0x12')]=router;
\ No newline at end of file
+var _0x78bb=['destroy','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','/:id','isAuthenticated','post','create','update'];(function(_0x7a2273,_0x2cd10c){var _0x320b19=function(_0x433656){while(--_0x433656){_0x7a2273['push'](_0x7a2273['shift']());}};_0x320b19(++_0x2cd10c);}(_0x78bb,0xab));var _0xb78b=function(_0x673722,_0x275d7e){_0x673722=_0x673722-0x0;var _0x21249c=_0x78bb[_0x673722];return _0x21249c;};'use strict';var multer=require(_0xb78b('0x0'));var util=require(_0xb78b('0x1'));var path=require(_0xb78b('0x2'));var timeout=require('connect-timeout');var express=require(_0xb78b('0x3'));var router=express[_0xb78b('0x4')]();var fs_extra=require(_0xb78b('0x5'));var auth=require(_0xb78b('0x6'));var interaction=require(_0xb78b('0x7'));var config=require(_0xb78b('0x8'));var controller=require(_0xb78b('0x9'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xb78b('0xa')](_0xb78b('0xb'),auth[_0xb78b('0xc')](),controller['show']);router[_0xb78b('0xd')]('/',auth['isAuthenticated'](),controller[_0xb78b('0xe')]);router['put'](_0xb78b('0xb'),auth[_0xb78b('0xc')](),controller[_0xb78b('0xf')]);router['delete'](_0xb78b('0xb'),auth[_0xb78b('0xc')](),controller[_0xb78b('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x167e=['STRING','sequelize','exports'];(function(_0x185e02,_0x5bd409){var _0x2d3b52=function(_0x1ca225){while(--_0x1ca225){_0x185e02['push'](_0x185e02['shift']());}};_0x2d3b52(++_0x5bd409);}(_0x167e,0xa3));var _0xe167=function(_0x2a1fe1,_0x1cece9){_0x2a1fe1=_0x2a1fe1-0x0;var _0x4d5e5d=_0x167e[_0x2a1fe1];return _0x4d5e5d;};'use strict';var Sequelize=require(_0xe167('0x0'));module[_0xe167('0x1')]={'name':{'type':Sequelize[_0xe167('0x2')]},'basename':{'type':Sequelize[_0xe167('0x2')]},'type':{'type':Sequelize[_0xe167('0x2')]}};
\ No newline at end of file
+var _0x6ae0=['sequelize','exports','STRING'];(function(_0x4af4c0,_0x21377b){var _0x123554=function(_0x6d3d75){while(--_0x6d3d75){_0x4af4c0['push'](_0x4af4c0['shift']());}};_0x123554(++_0x21377b);}(_0x6ae0,0x192));var _0x06ae=function(_0x1731fe,_0x3b733e){_0x1731fe=_0x1731fe-0x0;var _0x2cb785=_0x6ae0[_0x1731fe];return _0x2cb785;};'use strict';var Sequelize=require(_0x06ae('0x0'));module[_0x06ae('0x1')]={'name':{'type':Sequelize[_0x06ae('0x2')]},'basename':{'type':Sequelize[_0x06ae('0x2')]},'type':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc5dd=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName','key','map','query','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','merge','type','VIRTUAL','options','Attachment','includeAll','catch','show','params','keys','length','include','find','clone','get','omit','createdAt','body','updatedAt','create','file','originalname','basename','filename','ChatOfflineMessageId','root','offline-chat/','join','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','crypto','jsforce','desk.js'];(function(_0x392269,_0x27a650){var _0x19745e=function(_0x152c3b){while(--_0x152c3b){_0x392269['push'](_0x392269['shift']());}};_0x19745e(++_0x27a650);}(_0xc5dd,0x9e));var _0xdc5d=function(_0x12c7ff,_0x2d631c){_0x12c7ff=_0x12c7ff-0x0;var _0x5459d3=_0xc5dd[_0x12c7ff];return _0x5459d3;};'use strict';var emlformat=require(_0xdc5d('0x0'));var rimraf=require(_0xdc5d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xdc5d('0x2'));var rp=require(_0xdc5d('0x3'));var moment=require(_0xdc5d('0x4'));var BPromise=require(_0xdc5d('0x5'));var Mustache=require(_0xdc5d('0x6'));var util=require('util');var path=require(_0xdc5d('0x7'));var sox=require(_0xdc5d('0x8'));var csv=require(_0xdc5d('0x9'));var ejs=require(_0xdc5d('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xdc5d('0xb'));var jsforce=require(_0xdc5d('0xc'));var deskjs=require(_0xdc5d('0xd'));var toCsv=require(_0xdc5d('0x9'));var querystring=require(_0xdc5d('0xe'));var Papa=require(_0xdc5d('0xf'));var Redis=require(_0xdc5d('0x10'));var authService=require(_0xdc5d('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xdc5d('0x12'));var hardwareService=require(_0xdc5d('0x13'));var logger=require(_0xdc5d('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xdc5d('0x15'));var licenseUtil=require(_0xdc5d('0x16'));var db=require(_0xdc5d('0x17'))['db'];function respondWithStatusCode(_0x20e894,_0x48a5d1){_0x48a5d1=_0x48a5d1||0xcc;return function(_0x5db863){if(_0x5db863){return _0x20e894['sendStatus'](_0x48a5d1);}return _0x20e894['status'](_0x48a5d1)[_0xdc5d('0x18')]();};}function respondWithResult(_0x285ccd,_0x10e34e){_0x10e34e=_0x10e34e||0xc8;return function(_0x3d462a){if(_0x3d462a){return _0x285ccd[_0xdc5d('0x19')](_0x10e34e)[_0xdc5d('0x1a')](_0x3d462a);}};}function respondWithFilteredResult(_0x5790a4,_0x555f2f){return function(_0x14a542){if(_0x14a542){var _0x5d34df=typeof _0x555f2f['offset']===_0xdc5d('0x1b')&&typeof _0x555f2f['limit']===_0xdc5d('0x1b');var _0x391cf4=_0x14a542['count'];var _0x2a7d75=_0x5d34df?0x0:_0x555f2f['offset'];var _0x330382=_0x5d34df?_0x14a542[_0xdc5d('0x1c')]:_0x555f2f[_0xdc5d('0x1d')]+_0x555f2f[_0xdc5d('0x1e')];var _0x20698a;if(_0x330382>=_0x391cf4){_0x330382=_0x391cf4;_0x20698a=0xc8;}else{_0x20698a=0xce;}_0x5790a4[_0xdc5d('0x19')](_0x20698a);return _0x5790a4[_0xdc5d('0x1f')](_0xdc5d('0x20'),_0x2a7d75+'-'+_0x330382+'/'+_0x391cf4)[_0xdc5d('0x1a')](_0x14a542);}return null;};}function patchUpdates(_0xdfe2e2){return function(_0x161498){try{jsonpatch[_0xdc5d('0x21')](_0x161498,_0xdfe2e2,!![]);}catch(_0x542d6d){return BPromise[_0xdc5d('0x22')](_0x542d6d);}return _0x161498[_0xdc5d('0x23')]();};}function saveUpdates(_0x1ba7bb,_0x4adc03){return function(_0x59c0d0){if(_0x59c0d0){return _0x59c0d0[_0xdc5d('0x24')](_0x1ba7bb)[_0xdc5d('0x25')](function(_0x2c8b47){return _0x2c8b47;});}return null;};}function removeEntity(_0x32c516,_0x28e1e9){return function(_0x2475fb){if(_0x2475fb){return _0x2475fb[_0xdc5d('0x26')]()[_0xdc5d('0x25')](function(){_0x32c516[_0xdc5d('0x19')](0xcc)[_0xdc5d('0x18')]();});}};}function handleEntityNotFound(_0x121c24,_0x1248df){return function(_0x3ecdff){if(!_0x3ecdff){_0x121c24['sendStatus'](0x194);}return _0x3ecdff;};}function handleError(_0x54b291,_0x509809){_0x509809=_0x509809||0x1f4;return function(_0x13ed1d){logger[_0xdc5d('0x27')](_0x13ed1d[_0xdc5d('0x28')]);if(_0x13ed1d[_0xdc5d('0x29')]){delete _0x13ed1d[_0xdc5d('0x29')];}_0x54b291['status'](_0x509809)[_0xdc5d('0x2a')](_0x13ed1d);};}exports[_0xdc5d('0x2b')]=function(_0x19a5e8,_0x471c13){var _0xadfb0f={},_0x443a6a={},_0x2a7ddf={'count':0x0,'rows':[]};var _0x543b3f=_['map'](db['Attachment'][_0xdc5d('0x2c')],function(_0x4f71a2){return{'name':_0x4f71a2[_0xdc5d('0x2d')],'type':_0x4f71a2['type'][_0xdc5d('0x2e')]};});_0x443a6a['model']=_[_0xdc5d('0x2f')](_0x543b3f,_0xdc5d('0x29'));_0x443a6a[_0xdc5d('0x30')]=_['keys'](_0x19a5e8[_0xdc5d('0x30')]);_0x443a6a[_0xdc5d('0x31')]=_[_0xdc5d('0x32')](_0x443a6a[_0xdc5d('0x33')],_0x443a6a[_0xdc5d('0x30')]);_0xadfb0f[_0xdc5d('0x34')]=_[_0xdc5d('0x32')](_0x443a6a['model'],qs[_0xdc5d('0x35')](_0x19a5e8[_0xdc5d('0x30')][_0xdc5d('0x35')]));_0xadfb0f[_0xdc5d('0x34')]=_0xadfb0f['attributes']['length']?_0xadfb0f[_0xdc5d('0x34')]:_0x443a6a[_0xdc5d('0x33')];if(!_0x19a5e8[_0xdc5d('0x30')][_0xdc5d('0x36')]('nolimit')){_0xadfb0f[_0xdc5d('0x1e')]=qs[_0xdc5d('0x1e')](_0x19a5e8[_0xdc5d('0x30')][_0xdc5d('0x1e')]);_0xadfb0f['offset']=qs[_0xdc5d('0x1d')](_0x19a5e8[_0xdc5d('0x30')]['offset']);}_0xadfb0f[_0xdc5d('0x37')]=qs[_0xdc5d('0x38')](_0x19a5e8[_0xdc5d('0x30')]['sort']);_0xadfb0f[_0xdc5d('0x39')]=qs[_0xdc5d('0x31')](_['pick'](_0x19a5e8[_0xdc5d('0x30')],_0x443a6a[_0xdc5d('0x31')]),_0x543b3f);if(_0x19a5e8['query']['filter']){_0xadfb0f['where']=_[_0xdc5d('0x3a')](_0xadfb0f[_0xdc5d('0x39')],{'$or':_[_0xdc5d('0x2f')](_0x543b3f,function(_0x42798a){if(_0x42798a[_0xdc5d('0x3b')]!==_0xdc5d('0x3c')){var _0x21b19a={};_0x21b19a[_0x42798a[_0xdc5d('0x29')]]={'$like':'%'+_0x19a5e8[_0xdc5d('0x30')]['filter']+'%'};return _0x21b19a;}})});}_0xadfb0f=_[_0xdc5d('0x3a')]({},_0xadfb0f,_0x19a5e8[_0xdc5d('0x3d')]);var _0x52140d={'where':_0xadfb0f[_0xdc5d('0x39')]};return db[_0xdc5d('0x3e')]['count'](_0x52140d)['then'](function(_0x263c73){_0x2a7ddf[_0xdc5d('0x1c')]=_0x263c73;if(_0x19a5e8['query'][_0xdc5d('0x3f')]){_0xadfb0f['include']=[{'all':!![]}];}return db[_0xdc5d('0x3e')]['findAll'](_0xadfb0f);})[_0xdc5d('0x25')](function(_0x4ff80c){_0x2a7ddf['rows']=_0x4ff80c;return _0x2a7ddf;})[_0xdc5d('0x25')](respondWithFilteredResult(_0x471c13,_0xadfb0f))[_0xdc5d('0x40')](handleError(_0x471c13,null));};exports[_0xdc5d('0x41')]=function(_0x4d9772,_0x1816a6){var _0x2b3b0b={'raw':!![],'where':{'id':_0x4d9772[_0xdc5d('0x42')]['id']}},_0x2417ac={};_0x2417ac[_0xdc5d('0x33')]=_[_0xdc5d('0x43')](db['Attachment'][_0xdc5d('0x2c')]);_0x2417ac[_0xdc5d('0x30')]=_[_0xdc5d('0x43')](_0x4d9772['query']);_0x2417ac[_0xdc5d('0x31')]=_[_0xdc5d('0x32')](_0x2417ac[_0xdc5d('0x33')],_0x2417ac['query']);_0x2b3b0b[_0xdc5d('0x34')]=_[_0xdc5d('0x32')](_0x2417ac['model'],qs[_0xdc5d('0x35')](_0x4d9772[_0xdc5d('0x30')][_0xdc5d('0x35')]));_0x2b3b0b['attributes']=_0x2b3b0b['attributes'][_0xdc5d('0x44')]?_0x2b3b0b[_0xdc5d('0x34')]:_0x2417ac[_0xdc5d('0x33')];if(_0x4d9772[_0xdc5d('0x30')][_0xdc5d('0x3f')]){_0x2b3b0b[_0xdc5d('0x45')]=[{'all':!![]}];}_0x2b3b0b=_[_0xdc5d('0x3a')]({},_0x2b3b0b,_0x4d9772[_0xdc5d('0x3d')]);return db[_0xdc5d('0x3e')][_0xdc5d('0x46')](_0x2b3b0b)[_0xdc5d('0x25')](handleEntityNotFound(_0x1816a6,null))[_0xdc5d('0x25')](respondWithResult(_0x1816a6,null))['catch'](handleError(_0x1816a6,null));};exports[_0xdc5d('0x47')]=function(_0xf4a60d,_0xbfc675){var _0x5eabb3={'where':{'id':_0xf4a60d[_0xdc5d('0x42')]['id']}},_0x34d0be={};_0x34d0be[_0xdc5d('0x33')]=_['keys'](db[_0xdc5d('0x3e')][_0xdc5d('0x2c')]);_0x5eabb3['attributes']=_[_0xdc5d('0x32')](_0x34d0be['model'],qs[_0xdc5d('0x35')](_0xf4a60d[_0xdc5d('0x30')][_0xdc5d('0x35')]));_0x5eabb3[_0xdc5d('0x34')]=_0x5eabb3['attributes']['length']?_0x5eabb3[_0xdc5d('0x34')]:_0x34d0be[_0xdc5d('0x33')];if(_0xf4a60d[_0xdc5d('0x30')][_0xdc5d('0x3f')]){_0x5eabb3['include']=[{'all':!![]}];}_0x5eabb3=_['merge']({},_0x5eabb3,_0xf4a60d[_0xdc5d('0x3d')]);return db[_0xdc5d('0x3e')][_0xdc5d('0x46')](_0x5eabb3)['then'](handleEntityNotFound(_0xbfc675,null))[_0xdc5d('0x25')](function(_0x247b9f){if(_0x247b9f){var _0x2b7eeb=_0x247b9f[_0xdc5d('0x48')]({'plain':!![]});_0x2b7eeb=qs[_0xdc5d('0x49')](_0x2b7eeb,['id',_0xdc5d('0x4a'),'updatedAt']);_0xf4a60d['body']=_[_0xdc5d('0x49')](_0xf4a60d[_0xdc5d('0x4b')],['id',_0xdc5d('0x4a'),_0xdc5d('0x4c')]);return db[_0xdc5d('0x3e')][_0xdc5d('0x4d')](_['merge'](_0x2b7eeb,_0xf4a60d[_0xdc5d('0x4b')]),{'include':_0xf4a60d[_0xdc5d('0x30')][_0xdc5d('0x3f')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0xbfc675,0xc9))[_0xdc5d('0x40')](handleError(_0xbfc675,null));};exports[_0xdc5d('0x24')]=function(_0x401491,_0x4ed516){if(_0x401491[_0xdc5d('0x4b')]['id']){delete _0x401491[_0xdc5d('0x4b')]['id'];}return db[_0xdc5d('0x3e')][_0xdc5d('0x46')]({'where':{'id':_0x401491[_0xdc5d('0x42')]['id']}})[_0xdc5d('0x25')](handleEntityNotFound(_0x4ed516,null))[_0xdc5d('0x25')](saveUpdates(_0x401491[_0xdc5d('0x4b')],null))[_0xdc5d('0x25')](respondWithResult(_0x4ed516,null))[_0xdc5d('0x40')](handleError(_0x4ed516,null));};exports['destroy']=function(_0xc7197c,_0x4676f2){return db['Attachment'][_0xdc5d('0x46')]({'where':{'id':_0xc7197c[_0xdc5d('0x42')]['id']}})['then'](handleEntityNotFound(_0x4676f2,null))[_0xdc5d('0x25')](removeEntity(_0x4676f2,null))[_0xdc5d('0x40')](handleError(_0x4676f2,null));};exports[_0xdc5d('0x4d')]=function(_0x3b67ad,_0xd6adeb,_0x7aaf63){_0x3b67ad['body'][_0xdc5d('0x29')]=_0x3b67ad[_0xdc5d('0x4e')][_0xdc5d('0x4f')];_0x3b67ad[_0xdc5d('0x4b')][_0xdc5d('0x50')]=_0x3b67ad[_0xdc5d('0x4e')][_0xdc5d('0x51')];_0x3b67ad[_0xdc5d('0x4b')][_0xdc5d('0x3b')]=_0x3b67ad['file']['mimetype'];return db[_0xdc5d('0x3e')][_0xdc5d('0x4d')](_0x3b67ad[_0xdc5d('0x4b')])[_0xdc5d('0x25')](respondWithResult(_0xd6adeb,0xc9))[_0xdc5d('0x40')](handleError(_0xd6adeb,null));};exports['download']=function(_0x46a351,_0x3a5445,_0x25a153){return db[_0xdc5d('0x3e')]['findOne']({'where':{'id':_0x46a351[_0xdc5d('0x42')]['id']},'raw':!![]})[_0xdc5d('0x25')](handleEntityNotFound(_0x3a5445,null))[_0xdc5d('0x25')](function(_0x14f37c){if(_0x14f37c){var _0x381d67=_0x14f37c[_0xdc5d('0x52')]!==null;var _0x3ba9eb=path['join'](config[_0xdc5d('0x53')],'server/files/attachments/');if(_0x381d67){_0x3ba9eb=path['join'](_0x3ba9eb,_0xdc5d('0x54'));}var _0x36d063=path[_0xdc5d('0x55')](_0x3ba9eb,_0x14f37c[_0xdc5d('0x50')]);return _0x3a5445['download'](_0x36d063);}})[_0xdc5d('0x40')](handleError(_0x3a5445,null));};
\ No newline at end of file
+var _0xd09e=['rawAttributes','fields','includeAll','find','clone','params','get','createdAt','updatedAt','body','create','destroy','file','originalname','filename','mimetype','download','findOne','ChatOfflineMessageId','root','join','basename','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','Attachment','key','model','query','keys','attributes','intersection','length','nolimit','order','sort','filters','pick','filter','where','merge','type','VIRTUAL','options','include','findAll','catch'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xd09e,0x1d8));var _0xed09=function(_0x4a6873,_0x5570e1){_0x4a6873=_0x4a6873-0x0;var _0x35074c=_0xd09e[_0x4a6873];return _0x35074c;};'use strict';var emlformat=require(_0xed09('0x0'));var rimraf=require(_0xed09('0x1'));var zipdir=require(_0xed09('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xed09('0x3'));var moment=require(_0xed09('0x4'));var BPromise=require(_0xed09('0x5'));var Mustache=require(_0xed09('0x6'));var util=require('util');var path=require(_0xed09('0x7'));var sox=require(_0xed09('0x8'));var csv=require(_0xed09('0x9'));var ejs=require(_0xed09('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xed09('0xb'));var squel=require('squel');var crypto=require(_0xed09('0xc'));var jsforce=require(_0xed09('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xed09('0xe'));var Papa=require(_0xed09('0xf'));var Redis=require(_0xed09('0x10'));var authService=require(_0xed09('0x11'));var qs=require(_0xed09('0x12'));var as=require(_0xed09('0x13'));var hardwareService=require(_0xed09('0x14'));var logger=require(_0xed09('0x15'))(_0xed09('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xed09('0x17'));var db=require(_0xed09('0x18'))['db'];function respondWithStatusCode(_0x13bd71,_0x43c867){_0x43c867=_0x43c867||0xcc;return function(_0x2e06b4){if(_0x2e06b4){return _0x13bd71[_0xed09('0x19')](_0x43c867);}return _0x13bd71[_0xed09('0x1a')](_0x43c867)[_0xed09('0x1b')]();};}function respondWithResult(_0x4c6e57,_0x463cac){_0x463cac=_0x463cac||0xc8;return function(_0x17be5){if(_0x17be5){return _0x4c6e57[_0xed09('0x1a')](_0x463cac)[_0xed09('0x1c')](_0x17be5);}};}function respondWithFilteredResult(_0x3515d0,_0x27b4da){return function(_0x6c20d7){if(_0x6c20d7){var _0x4a7767=typeof _0x27b4da['offset']===_0xed09('0x1d')&&typeof _0x27b4da[_0xed09('0x1e')]===_0xed09('0x1d');var _0x15145c=_0x6c20d7['count'];var _0x592805=_0x4a7767?0x0:_0x27b4da[_0xed09('0x1f')];var _0x188448=_0x4a7767?_0x6c20d7[_0xed09('0x20')]:_0x27b4da[_0xed09('0x1f')]+_0x27b4da[_0xed09('0x1e')];var _0x4df891;if(_0x188448>=_0x15145c){_0x188448=_0x15145c;_0x4df891=0xc8;}else{_0x4df891=0xce;}_0x3515d0['status'](_0x4df891);return _0x3515d0[_0xed09('0x21')](_0xed09('0x22'),_0x592805+'-'+_0x188448+'/'+_0x15145c)[_0xed09('0x1c')](_0x6c20d7);}return null;};}function patchUpdates(_0x4b5640){return function(_0x37cb91){try{jsonpatch[_0xed09('0x23')](_0x37cb91,_0x4b5640,!![]);}catch(_0x4a5cbc){return BPromise[_0xed09('0x24')](_0x4a5cbc);}return _0x37cb91[_0xed09('0x25')]();};}function saveUpdates(_0x5aad24,_0x537553){return function(_0x588d3e){if(_0x588d3e){return _0x588d3e[_0xed09('0x26')](_0x5aad24)[_0xed09('0x27')](function(_0x420773){return _0x420773;});}return null;};}function removeEntity(_0x37e80f,_0x14fdae){return function(_0x146d2c){if(_0x146d2c){return _0x146d2c['destroy']()[_0xed09('0x27')](function(){_0x37e80f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x17fb5d,_0x428996){return function(_0x32f090){if(!_0x32f090){_0x17fb5d[_0xed09('0x19')](0x194);}return _0x32f090;};}function handleError(_0x47b0c6,_0x31302d){_0x31302d=_0x31302d||0x1f4;return function(_0x1fe6d1){logger[_0xed09('0x28')](_0x1fe6d1[_0xed09('0x29')]);if(_0x1fe6d1[_0xed09('0x2a')]){delete _0x1fe6d1[_0xed09('0x2a')];}_0x47b0c6[_0xed09('0x1a')](_0x31302d)[_0xed09('0x2b')](_0x1fe6d1);};}exports[_0xed09('0x2c')]=function(_0x515517,_0x2338f2){var _0x13b198={},_0x423b58={},_0x439404={'count':0x0,'rows':[]};var _0x43107a=_[_0xed09('0x2d')](db[_0xed09('0x2e')]['rawAttributes'],function(_0x1e41a1){return{'name':_0x1e41a1['fieldName'],'type':_0x1e41a1['type'][_0xed09('0x2f')]};});_0x423b58[_0xed09('0x30')]=_[_0xed09('0x2d')](_0x43107a,_0xed09('0x2a'));_0x423b58[_0xed09('0x31')]=_[_0xed09('0x32')](_0x515517[_0xed09('0x31')]);_0x423b58['filters']=_['intersection'](_0x423b58[_0xed09('0x30')],_0x423b58[_0xed09('0x31')]);_0x13b198[_0xed09('0x33')]=_[_0xed09('0x34')](_0x423b58['model'],qs['fields'](_0x515517[_0xed09('0x31')]['fields']));_0x13b198[_0xed09('0x33')]=_0x13b198[_0xed09('0x33')][_0xed09('0x35')]?_0x13b198[_0xed09('0x33')]:_0x423b58[_0xed09('0x30')];if(!_0x515517[_0xed09('0x31')]['hasOwnProperty'](_0xed09('0x36'))){_0x13b198[_0xed09('0x1e')]=qs[_0xed09('0x1e')](_0x515517['query'][_0xed09('0x1e')]);_0x13b198[_0xed09('0x1f')]=qs[_0xed09('0x1f')](_0x515517[_0xed09('0x31')]['offset']);}_0x13b198[_0xed09('0x37')]=qs[_0xed09('0x38')](_0x515517[_0xed09('0x31')]['sort']);_0x13b198['where']=qs[_0xed09('0x39')](_[_0xed09('0x3a')](_0x515517[_0xed09('0x31')],_0x423b58[_0xed09('0x39')]),_0x43107a);if(_0x515517[_0xed09('0x31')][_0xed09('0x3b')]){_0x13b198[_0xed09('0x3c')]=_[_0xed09('0x3d')](_0x13b198[_0xed09('0x3c')],{'$or':_[_0xed09('0x2d')](_0x43107a,function(_0x2cf3b3){if(_0x2cf3b3[_0xed09('0x3e')]!==_0xed09('0x3f')){var _0x69e47={};_0x69e47[_0x2cf3b3[_0xed09('0x2a')]]={'$like':'%'+_0x515517['query'][_0xed09('0x3b')]+'%'};return _0x69e47;}})});}_0x13b198=_['merge']({},_0x13b198,_0x515517[_0xed09('0x40')]);var _0x2b9a72={'where':_0x13b198[_0xed09('0x3c')]};return db['Attachment'][_0xed09('0x20')](_0x2b9a72)[_0xed09('0x27')](function(_0xbe9f8c){_0x439404[_0xed09('0x20')]=_0xbe9f8c;if(_0x515517['query']['includeAll']){_0x13b198[_0xed09('0x41')]=[{'all':!![]}];}return db['Attachment'][_0xed09('0x42')](_0x13b198);})[_0xed09('0x27')](function(_0x3d1efd){_0x439404['rows']=_0x3d1efd;return _0x439404;})[_0xed09('0x27')](respondWithFilteredResult(_0x2338f2,_0x13b198))[_0xed09('0x43')](handleError(_0x2338f2,null));};exports['show']=function(_0x5471dd,_0x38735b){var _0x1a2ae6={'raw':!![],'where':{'id':_0x5471dd['params']['id']}},_0xf5ffb8={};_0xf5ffb8['model']=_['keys'](db[_0xed09('0x2e')][_0xed09('0x44')]);_0xf5ffb8[_0xed09('0x31')]=_['keys'](_0x5471dd['query']);_0xf5ffb8[_0xed09('0x39')]=_[_0xed09('0x34')](_0xf5ffb8[_0xed09('0x30')],_0xf5ffb8[_0xed09('0x31')]);_0x1a2ae6[_0xed09('0x33')]=_[_0xed09('0x34')](_0xf5ffb8[_0xed09('0x30')],qs[_0xed09('0x45')](_0x5471dd[_0xed09('0x31')]['fields']));_0x1a2ae6['attributes']=_0x1a2ae6['attributes'][_0xed09('0x35')]?_0x1a2ae6[_0xed09('0x33')]:_0xf5ffb8[_0xed09('0x30')];if(_0x5471dd[_0xed09('0x31')][_0xed09('0x46')]){_0x1a2ae6['include']=[{'all':!![]}];}_0x1a2ae6=_[_0xed09('0x3d')]({},_0x1a2ae6,_0x5471dd['options']);return db[_0xed09('0x2e')][_0xed09('0x47')](_0x1a2ae6)[_0xed09('0x27')](handleEntityNotFound(_0x38735b,null))[_0xed09('0x27')](respondWithResult(_0x38735b,null))[_0xed09('0x43')](handleError(_0x38735b,null));};exports[_0xed09('0x48')]=function(_0x4eb316,_0x5145a0){var _0x5a2a69={'where':{'id':_0x4eb316[_0xed09('0x49')]['id']}},_0x50f9e0={};_0x50f9e0[_0xed09('0x30')]=_[_0xed09('0x32')](db[_0xed09('0x2e')]['rawAttributes']);_0x5a2a69[_0xed09('0x33')]=_[_0xed09('0x34')](_0x50f9e0[_0xed09('0x30')],qs[_0xed09('0x45')](_0x4eb316[_0xed09('0x31')][_0xed09('0x45')]));_0x5a2a69[_0xed09('0x33')]=_0x5a2a69[_0xed09('0x33')][_0xed09('0x35')]?_0x5a2a69[_0xed09('0x33')]:_0x50f9e0[_0xed09('0x30')];if(_0x4eb316['query']['includeAll']){_0x5a2a69[_0xed09('0x41')]=[{'all':!![]}];}_0x5a2a69=_[_0xed09('0x3d')]({},_0x5a2a69,_0x4eb316[_0xed09('0x40')]);return db['Attachment'][_0xed09('0x47')](_0x5a2a69)[_0xed09('0x27')](handleEntityNotFound(_0x5145a0,null))[_0xed09('0x27')](function(_0x50d786){if(_0x50d786){var _0x1678ec=_0x50d786[_0xed09('0x4a')]({'plain':!![]});_0x1678ec=qs['omit'](_0x1678ec,['id',_0xed09('0x4b'),_0xed09('0x4c')]);_0x4eb316[_0xed09('0x4d')]=_['omit'](_0x4eb316['body'],['id',_0xed09('0x4b'),_0xed09('0x4c')]);return db['Attachment'][_0xed09('0x4e')](_[_0xed09('0x3d')](_0x1678ec,_0x4eb316['body']),{'include':_0x4eb316[_0xed09('0x31')][_0xed09('0x46')]?[{'all':!![]}]:undefined});}})[_0xed09('0x27')](respondWithResult(_0x5145a0,0xc9))[_0xed09('0x43')](handleError(_0x5145a0,null));};exports['update']=function(_0x1999d5,_0x315886){if(_0x1999d5['body']['id']){delete _0x1999d5['body']['id'];}return db['Attachment'][_0xed09('0x47')]({'where':{'id':_0x1999d5[_0xed09('0x49')]['id']}})[_0xed09('0x27')](handleEntityNotFound(_0x315886,null))[_0xed09('0x27')](saveUpdates(_0x1999d5[_0xed09('0x4d')],null))[_0xed09('0x27')](respondWithResult(_0x315886,null))['catch'](handleError(_0x315886,null));};exports[_0xed09('0x4f')]=function(_0x28e9a0,_0x1d862c){return db['Attachment']['find']({'where':{'id':_0x28e9a0[_0xed09('0x49')]['id']}})[_0xed09('0x27')](handleEntityNotFound(_0x1d862c,null))['then'](removeEntity(_0x1d862c,null))[_0xed09('0x43')](handleError(_0x1d862c,null));};exports['create']=function(_0x2c0982,_0x16858d,_0x4520ad){_0x2c0982[_0xed09('0x4d')][_0xed09('0x2a')]=_0x2c0982[_0xed09('0x50')][_0xed09('0x51')];_0x2c0982[_0xed09('0x4d')]['basename']=_0x2c0982[_0xed09('0x50')][_0xed09('0x52')];_0x2c0982[_0xed09('0x4d')][_0xed09('0x3e')]=_0x2c0982[_0xed09('0x50')][_0xed09('0x53')];return db[_0xed09('0x2e')][_0xed09('0x4e')](_0x2c0982['body'])[_0xed09('0x27')](respondWithResult(_0x16858d,0xc9))[_0xed09('0x43')](handleError(_0x16858d,null));};exports[_0xed09('0x54')]=function(_0x252c92,_0x1638a1,_0x40863d){return db[_0xed09('0x2e')][_0xed09('0x55')]({'where':{'id':_0x252c92[_0xed09('0x49')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x1638a1,null))[_0xed09('0x27')](function(_0x295980){if(_0x295980){var _0x5b81f9=_0x295980[_0xed09('0x56')]!==null;var _0x3fbbe0=path['join'](config[_0xed09('0x57')],'server/files/attachments/');if(_0x5b81f9){_0x3fbbe0=path[_0xed09('0x58')](_0x3fbbe0,'offline-chat/');}var _0x1a8dc5=path[_0xed09('0x58')](_0x3fbbe0,_0x295980[_0xed09('0x59')]);return _0x1638a1[_0xed09('0x54')](_0x1a8dc5);}})[_0xed09('0x43')](handleError(_0x1638a1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b2f=['../../config/environment','Attachment','attachments','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0x4b6a87,_0x1bd1ca){var _0x1c1961=function(_0x9d3b91){while(--_0x9d3b91){_0x4b6a87['push'](_0x4b6a87['shift']());}};_0x1c1961(++_0x1bd1ca);}(_0x8b2f,0x100));var _0xf8b2=function(_0x2501a7,_0x415c60){_0x2501a7=_0x2501a7-0x0;var _0x2c9b64=_0x8b2f[_0x2501a7];return _0x2c9b64;};'use strict';var _=require(_0xf8b2('0x0'));var util=require(_0xf8b2('0x1'));var logger=require(_0xf8b2('0x2'))('api');var moment=require(_0xf8b2('0x3'));var BPromise=require(_0xf8b2('0x4'));var rp=require(_0xf8b2('0x5'));var fs=require('fs');var path=require(_0xf8b2('0x6'));var rimraf=require(_0xf8b2('0x7'));var config=require(_0xf8b2('0x8'));var attributes=require('./attachment.attributes');module['exports']=function(_0x452a58,_0x495d9d){return _0x452a58['define'](_0xf8b2('0x9'),attributes,{'tableName':_0xf8b2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8f0c=['rimraf','../../config/environment','./attachment.attributes','exports','define','attachments','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x17a516,_0x132246){var _0x55bd58=function(_0x2ed196){while(--_0x2ed196){_0x17a516['push'](_0x17a516['shift']());}};_0x55bd58(++_0x132246);}(_0x8f0c,0x1b3));var _0xc8f0=function(_0x251fa4,_0x3d5860){_0x251fa4=_0x251fa4-0x0;var _0x453047=_0x8f0c[_0x251fa4];return _0x453047;};'use strict';var _=require(_0xc8f0('0x0'));var util=require('util');var logger=require(_0xc8f0('0x1'))(_0xc8f0('0x2'));var moment=require(_0xc8f0('0x3'));var BPromise=require(_0xc8f0('0x4'));var rp=require(_0xc8f0('0x5'));var fs=require('fs');var path=require(_0xc8f0('0x6'));var rimraf=require(_0xc8f0('0x7'));var config=require(_0xc8f0('0x8'));var attributes=require(_0xc8f0('0x9'));module[_0xc8f0('0xa')]=function(_0xdee4b9,_0x50ce0e){return _0xdee4b9[_0xc8f0('0xb')]('Attachment',attributes,{'tableName':_0xc8f0('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c25=['then','info','Attachment,\x20%s,\x20%s','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','stringify','error','message','result','body','options','raw','CreateAttachment','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','jayson/promise','http','request'];(function(_0x2064e5,_0x4f6fa2){var _0x21a233=function(_0x1b2491){while(--_0x1b2491){_0x2064e5['push'](_0x2064e5['shift']());}};_0x21a233(++_0x4f6fa2);}(_0x8c25,0x15e));var _0x58c2=function(_0x2f2898,_0x341151){_0x2f2898=_0x2f2898-0x0;var _0x2bd02b=_0x8c25[_0x2f2898];return _0x2bd02b;};'use strict';var _=require(_0x58c2('0x0'));var util=require(_0x58c2('0x1'));var moment=require(_0x58c2('0x2'));var BPromise=require(_0x58c2('0x3'));var rs=require(_0x58c2('0x4'));var fs=require('fs');var Redis=require(_0x58c2('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x58c2('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x58c2('0x7'));var client=jayson['client'][_0x58c2('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4be512,_0x5f3536,_0x331863){return new BPromise(function(_0xddbb7e,_0x52cfa7){return client[_0x58c2('0x9')](_0x4be512,_0x331863)[_0x58c2('0xa')](function(_0xf9aef5){logger[_0x58c2('0xb')](_0x58c2('0xc'),_0x5f3536,_0x58c2('0xd'));logger[_0x58c2('0xe')](_0x58c2('0xf'),_0x5f3536,'request\x20sent',JSON[_0x58c2('0x10')](_0xf9aef5));if(_0xf9aef5[_0x58c2('0x11')]){if(_0xf9aef5[_0x58c2('0x11')]['code']===0x1f4){logger[_0x58c2('0x11')](_0x58c2('0xc'),_0x5f3536,_0xf9aef5[_0x58c2('0x11')][_0x58c2('0x12')]);return _0x52cfa7(_0xf9aef5[_0x58c2('0x11')][_0x58c2('0x12')]);}logger[_0x58c2('0x11')](_0x58c2('0xc'),_0x5f3536,_0xf9aef5[_0x58c2('0x11')][_0x58c2('0x12')]);return _0xddbb7e(_0xf9aef5['error']['message']);}else{logger[_0x58c2('0xb')](_0x58c2('0xc'),_0x5f3536,_0x58c2('0xd'));_0xddbb7e(_0xf9aef5[_0x58c2('0x13')][_0x58c2('0x12')]);}})['catch'](function(_0x3a6312){logger[_0x58c2('0x11')]('Attachment,\x20%s,\x20%s',_0x5f3536,_0x3a6312);_0x52cfa7(_0x3a6312);});});}exports['CreateAttachment']=function(_0x55d76b){var _0x427d7e=this;return new Promise(function(_0x4924c6,_0x58f5cf){return db['Attachment']['create'](_0x55d76b[_0x58c2('0x14')],{'raw':_0x55d76b[_0x58c2('0x15')]?_0x55d76b[_0x58c2('0x15')][_0x58c2('0x16')]===undefined?!![]:![]:!![]})[_0x58c2('0xa')](function(_0x367400){logger['info'](_0x58c2('0x17'),_0x55d76b);logger[_0x58c2('0xe')](_0x58c2('0x17'),_0x55d76b,JSON[_0x58c2('0x10')](_0x367400));_0x4924c6(_0x367400);})['catch'](function(_0x34c54b){logger[_0x58c2('0x11')](_0x58c2('0x17'),_0x34c54b[_0x58c2('0x12')],_0x55d76b);_0x58f5cf(_0x427d7e[_0x58c2('0x11')](0x1f4,_0x34c54b[_0x58c2('0x12')]));});});};
\ No newline at end of file
+var _0x0f69=['../../config/logger','../../config/environment','client','http','request','then','info','Attachment,\x20%s,\x20%s','request\x20sent','Attachment,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','Attachment','create','body','options','raw','CreateAttachment','moment','randomstring','ioredis','../../config/utils'];(function(_0x1aab74,_0x38a57b){var _0x396af2=function(_0x1c2e0d){while(--_0x1c2e0d){_0x1aab74['push'](_0x1aab74['shift']());}};_0x396af2(++_0x38a57b);}(_0x0f69,0x173));var _0x90f6=function(_0x20a558,_0x160e0e){_0x20a558=_0x20a558-0x0;var _0x53d3f7=_0x0f69[_0x20a558];return _0x53d3f7;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x90f6('0x0'));var BPromise=require('bluebird');var rs=require(_0x90f6('0x1'));var fs=require('fs');var Redis=require(_0x90f6('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x90f6('0x3'));var logger=require(_0x90f6('0x4'))('rpc');var config=require(_0x90f6('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x90f6('0x6')][_0x90f6('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x45657d,_0x3b35a0,_0x3bc2eb){return new BPromise(function(_0x42044f,_0x488b53){return client[_0x90f6('0x8')](_0x45657d,_0x3bc2eb)[_0x90f6('0x9')](function(_0x3c8148){logger[_0x90f6('0xa')](_0x90f6('0xb'),_0x3b35a0,_0x90f6('0xc'));logger['debug'](_0x90f6('0xd'),_0x3b35a0,_0x90f6('0xc'),JSON['stringify'](_0x3c8148));if(_0x3c8148[_0x90f6('0xe')]){if(_0x3c8148['error'][_0x90f6('0xf')]===0x1f4){logger['error']('Attachment,\x20%s,\x20%s',_0x3b35a0,_0x3c8148[_0x90f6('0xe')]['message']);return _0x488b53(_0x3c8148[_0x90f6('0xe')][_0x90f6('0x10')]);}logger[_0x90f6('0xe')](_0x90f6('0xb'),_0x3b35a0,_0x3c8148['error'][_0x90f6('0x10')]);return _0x42044f(_0x3c8148['error']['message']);}else{logger[_0x90f6('0xa')]('Attachment,\x20%s,\x20%s',_0x3b35a0,_0x90f6('0xc'));_0x42044f(_0x3c8148[_0x90f6('0x11')][_0x90f6('0x10')]);}})[_0x90f6('0x12')](function(_0x3b4d5d){logger[_0x90f6('0xe')](_0x90f6('0xb'),_0x3b35a0,_0x3b4d5d);_0x488b53(_0x3b4d5d);});});}exports['CreateAttachment']=function(_0x36682a){var _0x2898a8=this;return new Promise(function(_0x5ac9be,_0x4209b8){return db[_0x90f6('0x13')][_0x90f6('0x14')](_0x36682a[_0x90f6('0x15')],{'raw':_0x36682a[_0x90f6('0x16')]?_0x36682a[_0x90f6('0x16')][_0x90f6('0x17')]===undefined?!![]:![]:!![]})['then'](function(_0x1beb61){logger[_0x90f6('0xa')]('CreateAttachment',_0x36682a);logger['debug'](_0x90f6('0x18'),_0x36682a,JSON['stringify'](_0x1beb61));_0x5ac9be(_0x1beb61);})['catch'](function(_0x763a9b){logger['error'](_0x90f6('0x18'),_0x763a9b[_0x90f6('0x10')],_0x36682a);_0x4209b8(_0x2898a8[_0x90f6('0xe')](0x1f4,_0x763a9b[_0x90f6('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['originalname','replace','single','file','create','put','/:id','update','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./attachment.controller','get','index','isAuthenticated','show','/:id/download','download','post','/:id/clone','diskStorage','join','server/files/attachments/','format','%s-%s'];(function(_0x48903a,_0x20eb85){var _0xe27fea=function(_0x5216d7){while(--_0x5216d7){_0x48903a['push'](_0x48903a['shift']());}};_0xe27fea(++_0x20eb85);}(_0xb10b,0x12a));var _0xbb10=function(_0x5c3c90,_0x5ba31e){_0x5c3c90=_0x5c3c90-0x0;var _0x1dff8b=_0xb10b[_0x5c3c90];return _0x1dff8b;};'use strict';var multer=require(_0xbb10('0x0'));var util=require('util');var path=require(_0xbb10('0x1'));var timeout=require(_0xbb10('0x2'));var express=require(_0xbb10('0x3'));var router=express['Router']();var fs_extra=require(_0xbb10('0x4'));var auth=require(_0xbb10('0x5'));var interaction=require(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var controller=require(_0xbb10('0x8'));router[_0xbb10('0x9')]('/',auth['isAuthenticated'](),controller[_0xbb10('0xa')]);router[_0xbb10('0x9')]('/:id',auth[_0xbb10('0xb')](),controller[_0xbb10('0xc')]);router[_0xbb10('0x9')](_0xbb10('0xd'),auth[_0xbb10('0xb')](),controller[_0xbb10('0xe')]);router[_0xbb10('0xf')](_0xbb10('0x10'),auth['isAuthenticated'](),controller['clone']);var upload=multer({'storage':multer[_0xbb10('0x11')]({'destination':function(_0x118a74,_0xce64f3,_0x5e136d){_0x5e136d(null,path[_0xbb10('0x12')](config['root'],_0xbb10('0x13')));},'filename':function(_0x916a32,_0x285009,_0x193a27){_0x193a27(null,util[_0xbb10('0x14')](_0xbb10('0x15'),Date['now'](),_0x285009[_0xbb10('0x16')][_0xbb10('0x17')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xbb10('0xf')]('/',upload[_0xbb10('0x18')](_0xbb10('0x19')),controller[_0xbb10('0x1a')]);router[_0xbb10('0x1b')](_0xbb10('0x1c'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1d')]);router['delete'](_0xbb10('0x1c'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1e')]);module[_0xbb10('0x1f')]=router;
\ No newline at end of file
+var _0x5f2f=['show','/:id/download','download','post','/:id/clone','clone','root','server/files/attachments/','format','now','originalname','replace','single','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./attachment.controller','get','isAuthenticated','index','/:id'];(function(_0x12d8dc,_0x4ea5f3){var _0x1bf639=function(_0x30c282){while(--_0x30c282){_0x12d8dc['push'](_0x12d8dc['shift']());}};_0x1bf639(++_0x4ea5f3);}(_0x5f2f,0x73));var _0xf5f2=function(_0x4a731a,_0x200bce){_0x4a731a=_0x4a731a-0x0;var _0x6d27fa=_0x5f2f[_0x4a731a];return _0x6d27fa;};'use strict';var multer=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var path=require(_0xf5f2('0x2'));var timeout=require(_0xf5f2('0x3'));var express=require(_0xf5f2('0x4'));var router=express[_0xf5f2('0x5')]();var fs_extra=require(_0xf5f2('0x6'));var auth=require(_0xf5f2('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf5f2('0x8'));router[_0xf5f2('0x9')]('/',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0xb')]);router[_0xf5f2('0x9')](_0xf5f2('0xc'),auth['isAuthenticated'](),controller[_0xf5f2('0xd')]);router[_0xf5f2('0x9')](_0xf5f2('0xe'),auth['isAuthenticated'](),controller[_0xf5f2('0xf')]);router[_0xf5f2('0x10')](_0xf5f2('0x11'),auth['isAuthenticated'](),controller[_0xf5f2('0x12')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x53fb33,_0xa7e1a6,_0x151aba){_0x151aba(null,path['join'](config[_0xf5f2('0x13')],_0xf5f2('0x14')));},'filename':function(_0x331482,_0x3f2997,_0x59bb6c){_0x59bb6c(null,util[_0xf5f2('0x15')]('%s-%s',Date[_0xf5f2('0x16')](),_0x3f2997[_0xf5f2('0x17')][_0xf5f2('0x18')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xf5f2('0x10')]('/',upload[_0xf5f2('0x19')]('file'),controller[_0xf5f2('0x1a')]);router[_0xf5f2('0x1b')](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x1c')]);router[_0xf5f2('0x1d')](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x1e')]);module[_0xf5f2('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f12=['disabled','blockedAt','add','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','getLicense','catch','passport','Strategy','moment','../../mysqldb','../../config/environment','signToken','../../config/utils','login','authenticate','google','/login','profile','use','clientID','clientSecret','secret','callbackURL','Setting','findOne','allowedLoginAttempts','blockDuration','then','User','map','emails','value','admin','user','agent'];(function(_0xa23275,_0x418480){var _0x10a845=function(_0x2e82e8){while(--_0x2e82e8){_0xa23275['push'](_0xa23275['shift']());}};_0x10a845(++_0x418480);}(_0x6f12,0x16f));var _0x26f1=function(_0x3541da,_0x5b2254){_0x3541da=_0x3541da-0x0;var _0xa24cff=_0x6f12[_0x3541da];return _0xa24cff;};'use strict';var _=require('lodash');var passport=require(_0x26f1('0x0'));var GoogleStrategy=require('passport-google-oauth20')[_0x26f1('0x1')];var moment=require(_0x26f1('0x2'));var db=require(_0x26f1('0x3'))['db'];var config=require(_0x26f1('0x4'));var signToken=require('../../components/auth/service')[_0x26f1('0x5')];var utils=require(_0x26f1('0x6'));exports[_0x26f1('0x7')]=passport[_0x26f1('0x8')](_0x26f1('0x9'),{'failureRedirect':_0x26f1('0xa'),'scope':[_0x26f1('0xb'),'email'],'session':![]});exports['callback']=passport[_0x26f1('0x8')]('google',{'failureRedirect':_0x26f1('0xa'),'session':![]});passport[_0x26f1('0xc')](new GoogleStrategy({'clientID':config[_0x26f1('0x9')]?config[_0x26f1('0x9')][_0x26f1('0xd')]:'id','clientSecret':config[_0x26f1('0x9')]?config['google'][_0x26f1('0xe')]:_0x26f1('0xf'),'callbackURL':config[_0x26f1('0x9')]?config[_0x26f1('0x9')][_0x26f1('0x10')]:''},function(_0x4cbf47,_0x5ea982,_0x37eb14,_0x50c373){var _0x200ac0,_0x1c204a;return db[_0x26f1('0x11')][_0x26f1('0x12')]({'where':{'id':0x1},'attributes':[_0x26f1('0x13'),_0x26f1('0x14')],'raw':!![]})[_0x26f1('0x15')](function(_0x3101ba){_0x200ac0=_0x3101ba;return db[_0x26f1('0x16')]['find']({'where':{'email':_[_0x26f1('0x17')](_0x37eb14[_0x26f1('0x18')],_0x26f1('0x19')),'role':{'$or':[_0x26f1('0x1a'),_0x26f1('0x1b'),_0x26f1('0x1c')]}}});})['then'](function(_0x562d38){_0x1c204a=_0x562d38;if(_0x1c204a){if(_0x1c204a[_0x26f1('0x1d')]){return _0x50c373('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else if(_0x200ac0[_0x26f1('0x14')]>0x0){if(_0x1c204a['blocked']){if(moment(_0x1c204a[_0x26f1('0x1e')])[_0x26f1('0x1f')](_0x200ac0['blockDuration'],'minutes')>moment()){return _0x50c373(_0x26f1('0x20'));}else{return utils[_0x26f1('0x21')](_0x1c204a,0x0,![],null)['then'](function(){return utils['getLicense'](_0x1c204a);})[_0x26f1('0x15')](function(){return _0x50c373(null,_0x1c204a);});}}else{return utils[_0x26f1('0x22')](_0x1c204a)[_0x26f1('0x15')](function(){return _0x50c373(null,_0x1c204a);});}}else{return utils[_0x26f1('0x22')](_0x1c204a)[_0x26f1('0x15')](function(){return _0x50c373(null,_0x1c204a);});}}return _0x50c373(_0x26f1('0x20'));})[_0x26f1('0x23')](function(_0x3f1fde){_0x50c373(_0x3f1fde);});}));
\ No newline at end of file
+var _0xeb16=['getLicense','catch','passport','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','login','authenticate','google','/login','email','clientID','clientSecret','secret','Setting','findOne','allowedLoginAttempts','blockDuration','User','map','value','user','then','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockedAt','minutes','clearBlockUser'];(function(_0x261655,_0x5c949f){var _0x25b37e=function(_0x5dede1){while(--_0x5dede1){_0x261655['push'](_0x261655['shift']());}};_0x25b37e(++_0x5c949f);}(_0xeb16,0x102));var _0x6eb1=function(_0x1342a1,_0x365a1b){_0x1342a1=_0x1342a1-0x0;var _0x3722c0=_0xeb16[_0x1342a1];return _0x3722c0;};'use strict';var _=require('lodash');var passport=require(_0x6eb1('0x0'));var GoogleStrategy=require(_0x6eb1('0x1'))[_0x6eb1('0x2')];var moment=require(_0x6eb1('0x3'));var db=require(_0x6eb1('0x4'))['db'];var config=require(_0x6eb1('0x5'));var signToken=require(_0x6eb1('0x6'))[_0x6eb1('0x7')];var utils=require(_0x6eb1('0x8'));exports[_0x6eb1('0x9')]=passport[_0x6eb1('0xa')](_0x6eb1('0xb'),{'failureRedirect':_0x6eb1('0xc'),'scope':['profile',_0x6eb1('0xd')],'session':![]});exports['callback']=passport[_0x6eb1('0xa')](_0x6eb1('0xb'),{'failureRedirect':_0x6eb1('0xc'),'session':![]});passport['use'](new GoogleStrategy({'clientID':config[_0x6eb1('0xb')]?config[_0x6eb1('0xb')][_0x6eb1('0xe')]:'id','clientSecret':config[_0x6eb1('0xb')]?config['google'][_0x6eb1('0xf')]:_0x6eb1('0x10'),'callbackURL':config['google']?config['google']['callbackURL']:''},function(_0x1f3da3,_0x17c4e8,_0xcea09,_0x925f1a){var _0x240300,_0x505a66;return db[_0x6eb1('0x11')][_0x6eb1('0x12')]({'where':{'id':0x1},'attributes':[_0x6eb1('0x13'),_0x6eb1('0x14')],'raw':!![]})['then'](function(_0x41e973){_0x240300=_0x41e973;return db[_0x6eb1('0x15')]['find']({'where':{'email':_[_0x6eb1('0x16')](_0xcea09['emails'],_0x6eb1('0x17')),'role':{'$or':['admin',_0x6eb1('0x18'),'agent']}}});})[_0x6eb1('0x19')](function(_0x486336){_0x505a66=_0x486336;if(_0x505a66){if(_0x505a66['disabled']){return _0x925f1a(_0x6eb1('0x1a'));}else if(_0x240300['blockDuration']>0x0){if(_0x505a66['blocked']){if(moment(_0x505a66[_0x6eb1('0x1b')])['add'](_0x240300[_0x6eb1('0x14')],_0x6eb1('0x1c'))>moment()){return _0x925f1a(_0x6eb1('0x1a'));}else{return utils[_0x6eb1('0x1d')](_0x505a66,0x0,![],null)[_0x6eb1('0x19')](function(){return utils[_0x6eb1('0x1e')](_0x505a66);})[_0x6eb1('0x19')](function(){return _0x925f1a(null,_0x505a66);});}}else{return utils[_0x6eb1('0x1e')](_0x505a66)[_0x6eb1('0x19')](function(){return _0x925f1a(null,_0x505a66);});}}else{return utils[_0x6eb1('0x1e')](_0x505a66)['then'](function(){return _0x925f1a(null,_0x505a66);});}}return _0x925f1a(_0x6eb1('0x1a'));})[_0x6eb1('0x1f')](function(_0x64f829){_0x925f1a(_0x64f829);});}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x554b=['login','setTokenCookie','exports','./authGoogle.controller','../user/user.controller.js','../../components/auth/service','get','/callback','callback','isMiddleware'];(function(_0x205a15,_0x1beef5){var _0xc2652f=function(_0x5dc9f3){while(--_0x5dc9f3){_0x205a15['push'](_0x205a15['shift']());}};_0xc2652f(++_0x1beef5);}(_0x554b,0x125));var _0xb554=function(_0x576170,_0x1712ae){_0x576170=_0x576170-0x0;var _0x397c70=_0x554b[_0x576170];return _0x397c70;};'use strict';var express=require('express');var passport=require('passport');var router=express['Router']();var controller=require(_0xb554('0x0'));var userController=require(_0xb554('0x1'));var authService=require(_0xb554('0x2'));router[_0xb554('0x3')]('/',controller['login']);router[_0xb554('0x3')](_0xb554('0x4'),controller[_0xb554('0x5')],authService[_0xb554('0x6')],userController[_0xb554('0x7')],authService[_0xb554('0x8')]);module[_0xb554('0x9')]=router;
\ No newline at end of file
+var _0x6f1a=['isMiddleware','login','exports','express','passport','Router','../user/user.controller.js','../../components/auth/service','get','/callback'];(function(_0x13f9a9,_0x549e20){var _0x5753f5=function(_0xa71e52){while(--_0xa71e52){_0x13f9a9['push'](_0x13f9a9['shift']());}};_0x5753f5(++_0x549e20);}(_0x6f1a,0x14d));var _0xa6f1=function(_0x536c94,_0xd6aa36){_0x536c94=_0x536c94-0x0;var _0x5b1549=_0x6f1a[_0x536c94];return _0x5b1549;};'use strict';var express=require(_0xa6f1('0x0'));var passport=require(_0xa6f1('0x1'));var router=express[_0xa6f1('0x2')]();var controller=require('./authGoogle.controller');var userController=require(_0xa6f1('0x3'));var authService=require(_0xa6f1('0x4'));router[_0xa6f1('0x5')]('/',controller['login']);router[_0xa6f1('0x5')](_0xa6f1('0x6'),controller['callback'],authService[_0xa6f1('0x7')],userController[_0xa6f1('0x8')],authService['setTokenCookie']);module[_0xa6f1('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d56=['resetPasswordToken','resetPasswordExpires','now','save','xCally\x20Motion\x20Password\x20Reset','https://','Reset\x20Email\x20sent!','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','passwordHistoryLimit','validatePasswordPattern','enforcePasswordHistory','previousPasswords','validatePasswordHistory','Password\x20reset!','use','util','passport','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','http','Setting','allowedLoginAttempts','blockDuration','password','salt','role','disabled','blocked','loginAttempts','admin','agent','then','name','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockedAt','minutes','clearBlockUser','add','getLicense','catch','MailAccount','find','email','MailServerOut','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','authentication','auth','user','pass','merge','format','request','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','error','status','send','login','authenticate','signToken','json','forgot','body','generate','trim','User','This\x20email\x20is\x20not\x20registered.'];(function(_0x4825b0,_0x5592c9){var _0x5e3417=function(_0x2de002){while(--_0x2de002){_0x4825b0['push'](_0x4825b0['shift']());}};_0x5e3417(++_0x5592c9);}(_0x7d56,0x156));var _0x67d5=function(_0x14d927,_0x2d97f3){_0x14d927=_0x14d927-0x0;var _0x2dd508=_0x7d56[_0x14d927];return _0x2dd508;};'use strict';var util=require(_0x67d5('0x0'));var passport=require(_0x67d5('0x1'));var LocalStrategy=require('passport-local')['Strategy'];var jayson=require('jayson/promise');var _=require(_0x67d5('0x2'));var rs=require(_0x67d5('0x3'));var moment=require(_0x67d5('0x4'));var db=require(_0x67d5('0x5'))['db'];var authService=require(_0x67d5('0x6'));var utils=require(_0x67d5('0x7'));var client=jayson[_0x67d5('0x8')][_0x67d5('0x9')]({'port':0x232b});function localAuthenticate(_0x1dbb93,_0x5a3005,_0xeb3cc4,_0x5b6588){var _0x243eeb,_0x4b8e8b;return db[_0x67d5('0xa')]['findOne']({'where':{'id':0x1},'attributes':[_0x67d5('0xb'),_0x67d5('0xc')],'raw':!![]})['then'](function(_0x3aef16){_0x243eeb=_0x3aef16;return _0x1dbb93['findOne']({'attributes':['id','name',_0x67d5('0xd'),_0x67d5('0xe'),_0x67d5('0xf'),_0x67d5('0x10'),_0x67d5('0x11'),'blockedAt',_0x67d5('0x12')],'where':{'name':_0x5a3005,'role':{'$or':[_0x67d5('0x13'),'user',_0x67d5('0x14')]}}});})[_0x67d5('0x15')](function(_0x11a58f){if(!_0x11a58f||_0x11a58f&&_0x11a58f[_0x67d5('0x16')]!==_0x5a3005){throw new Error(_0x67d5('0x17'));}else{_0x4b8e8b=_0x11a58f;return _0x4b8e8b;}})['then'](function(){_0x4b8e8b['authenticate'](_0xeb3cc4,function(_0x37003,_0x372614){var _0x33c7de=_0x4b8e8b[_0x67d5('0x12')]+0x1;if(_0x37003){return _0x5b6588(_0x37003);}else if(!_0x372614){if(_0x4b8e8b[_0x67d5('0x10')]){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else if(_0x243eeb['allowedLoginAttempts']>0x0){if(_0x4b8e8b[_0x67d5('0x11')]){if(_0x243eeb[_0x67d5('0xc')]>0x0){if(moment(_0x4b8e8b[_0x67d5('0x18')])['add'](_0x243eeb[_0x67d5('0xc')],_0x67d5('0x19'))>moment()){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else{return utils[_0x67d5('0x1a')](_0x4b8e8b,_0x33c7de,![],null)[_0x67d5('0x15')](function(){return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}}else{if(_0x33c7de>=_0x243eeb[_0x67d5('0xb')]){return utils[_0x67d5('0x1a')](_0x4b8e8b,0x0,!![],moment())[_0x67d5('0x15')](function(){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});});}else{return utils[_0x67d5('0x1a')](_0x4b8e8b,_0x33c7de,![],null)['then'](function(){return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}}else{return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x4b8e8b['disabled']){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else if(_0x243eeb[_0x67d5('0xb')]>0x0){if(_0x4b8e8b['blocked']){if(_0x243eeb['blockDuration']>0x0){if(moment(_0x4b8e8b[_0x67d5('0x18')])[_0x67d5('0x1b')](_0x243eeb[_0x67d5('0xc')],_0x67d5('0x19'))>moment()){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else{return utils['clearBlockUser'](_0x4b8e8b,0x0,![],null)[_0x67d5('0x15')](function(){return utils[_0x67d5('0x1c')](_0x4b8e8b);})['then'](function(){return _0x5b6588(null,_0x4b8e8b);});}}else{return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}}else{return utils[_0x67d5('0x1a')](_0x4b8e8b,0x0,![],null)[_0x67d5('0x15')](function(){return utils[_0x67d5('0x1c')](_0x4b8e8b);})['then'](function(){return _0x5b6588(null,_0x4b8e8b);})[_0x67d5('0x1d')](function(_0x187ab4){return _0x5b6588(null,![],_0x187ab4);});}}else{if(_0x4b8e8b[_0x67d5('0x11')]){return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x67d5('0x1c')](_0x4b8e8b)[_0x67d5('0x15')](function(){return _0x5b6588(null,_0x4b8e8b);});}}}});})[_0x67d5('0x1d')](function(_0x4c6de8){return _0x5b6588(null,![],_0x4c6de8);});}function sendServiceMail(_0x2e4191){return db[_0x67d5('0x1e')][_0x67d5('0x1f')]({'where':{'service':!![]},'attributes':['id',_0x67d5('0x16'),_0x67d5('0x20')],'include':[{'model':db[_0x67d5('0x21')],'as':_0x67d5('0x22')}]})[_0x67d5('0x15')](function(_0xf926f7){if(!_0xf926f7){throw new Error(_0x67d5('0x23'));}var _0x339f07={'tls':{'rejectUnauthorized':![]}};if(_0xf926f7[_0x67d5('0x22')][_0x67d5('0x24')]){_0x339f07[_0x67d5('0x24')]=_0xf926f7[_0x67d5('0x22')][_0x67d5('0x24')];}else{_0x339f07['host']=_0xf926f7[_0x67d5('0x22')][_0x67d5('0x25')];_0x339f07[_0x67d5('0x26')]=_0xf926f7[_0x67d5('0x22')]['port'];_0x339f07[_0x67d5('0x27')]=_0xf926f7[_0x67d5('0x22')]['secure'];}if(_0xf926f7[_0x67d5('0x22')][_0x67d5('0x28')]){_0x339f07[_0x67d5('0x29')]={'user':_0xf926f7[_0x67d5('0x22')][_0x67d5('0x2a')],'pass':_0xf926f7['Smtp'][_0x67d5('0x2b')]};}var _0x5f511a={'account':_0x339f07,'message':_[_0x67d5('0x2c')]({'from':util[_0x67d5('0x2d')]('\x22%s\x22\x20<%s>',_0xf926f7[_0x67d5('0x16')],_0xf926f7[_0x67d5('0x20')]||_0xf926f7[_0x67d5('0x22')]['user'])},_0x2e4191)};return client[_0x67d5('0x2e')]('SendMail',_0x5f511a);})['then'](function(_0x2e4789){if(_0x2e4789['error']){throw new Error(util['format'](_0x67d5('0x2f'),_0x2e4789['error'][_0x67d5('0x30')]||JSON[_0x67d5('0x31')](_0x2e4789[_0x67d5('0x32')])));}return!![];});}function handleError(_0x24c15c,_0x3308b7,_0x4642a6){return _0x24c15c[_0x67d5('0x33')](_0x3308b7||0x1f4)[_0x67d5('0x34')]({'message':_0x4642a6?_0x4642a6[_0x67d5('0x30')]||_0x4642a6:''});}exports[_0x67d5('0x35')]=function(_0x40e419,_0x2814dc,_0x35364e){passport[_0x67d5('0x36')]('local',function(_0x4c26a0,_0x593ddf,_0x5b9a38){var _0x3d3d24=_0x4c26a0||_0x5b9a38;if(_0x3d3d24){return handleError(_0x2814dc,0x191,_0x3d3d24);}if(!_0x593ddf){return handleError(_0x2814dc,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x57ae2f={'payload':{'id':_0x593ddf['id'],'role':_0x593ddf['role']},'options':{'expiresIn':0x15180}};return authService[_0x67d5('0x37')](_0x57ae2f)[_0x67d5('0x15')](function(_0x40f503){_0x2814dc[_0x67d5('0x38')]({'id':_0x593ddf['id'],'token':_0x40f503,'statusCall':'','isAlreadyLogged':_0x593ddf['online']});});}})(_0x40e419,_0x2814dc,_0x35364e);};exports[_0x67d5('0x39')]=function(_0x310ae4,_0x2c7d5a,_0x2d2bb3){if(!_0x310ae4[_0x67d5('0x3a')][_0x67d5('0x20')]){return handleError(_0x2c7d5a,0x1f4,{'message':'Email\x20parameter\x20is\x20missing'});}var _0x423a19=rs[_0x67d5('0x3b')]();_0x310ae4['body'][_0x67d5('0x20')]=_0x310ae4[_0x67d5('0x3a')][_0x67d5('0x20')][_0x67d5('0x3c')]()['toLowerCase']();var _0x545e7b;return db[_0x67d5('0xa')]['findOne']({'where':{'id':0x1},'attributes':[_0x67d5('0xb'),_0x67d5('0xc')],'raw':!![]})[_0x67d5('0x15')](function(_0x4bb460){_0x545e7b=_0x4bb460;return db[_0x67d5('0x3d')][_0x67d5('0x1f')]({'where':{'email':_0x310ae4[_0x67d5('0x3a')][_0x67d5('0x20')]}});})[_0x67d5('0x15')](function(_0x40f892){if(!_0x40f892){throw new Error(_0x67d5('0x3e'));}if(_0x40f892[_0x67d5('0x10')]){throw new Error('The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.');}if(_0x40f892[_0x67d5('0x11')]){if(moment(_0x40f892[_0x67d5('0x18')])[_0x67d5('0x1b')](_0x545e7b[_0x67d5('0xc')],_0x67d5('0x19'))>moment()){throw new Error('The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.');}else{_0x40f892[_0x67d5('0x11')]=![];_0x40f892[_0x67d5('0x18')]=null;}}_0x40f892[_0x67d5('0x3f')]=_0x423a19;_0x40f892[_0x67d5('0x40')]=Date[_0x67d5('0x41')]()+0x36ee80;return _0x40f892[_0x67d5('0x42')]();})['then'](function(){return sendServiceMail({'to':_0x310ae4[_0x67d5('0x3a')]['email'],'subject':_0x67d5('0x43'),'text':'You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a'+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+_0x67d5('0x44')+_0x310ae4['headers']['host']+'/reset/'+_0x423a19+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0x67d5('0x15')](function(){_0x2c7d5a['status'](0xc8)[_0x67d5('0x34')]({'message':_0x67d5('0x45')});})[_0x67d5('0x1d')](function(_0x4a0e9e){return handleError(_0x2c7d5a,0x1f4,_0x4a0e9e);});};exports['reset']=function(_0x24ee1d,_0x2f5efd,_0x3a5f1f){return db['User'][_0x67d5('0x1f')]({'where':{'resetPasswordToken':_0x24ee1d[_0x67d5('0x46')][_0x67d5('0x47')],'resetPasswordExpires':{'$gt':Date[_0x67d5('0x41')]()}}})[_0x67d5('0x15')](function(_0x113751){if(!_0x113751){throw new Error(_0x67d5('0x48'));}return db[_0x67d5('0xa')]['findOne']({'attributes':['id',_0x67d5('0x49'),'enforcePasswordHistory',_0x67d5('0x4a')]})[_0x67d5('0x15')](function(_0x5c88be){if(_0x5c88be[_0x67d5('0x49')])authService[_0x67d5('0x4b')](_0x24ee1d[_0x67d5('0x3a')]['password']);if(!_0x5c88be[_0x67d5('0x4c')]||!_0x113751[_0x67d5('0x4d')])return _0x113751;authService[_0x67d5('0x4e')](_0x24ee1d[_0x67d5('0x3a')]['password'],_0x113751[_0x67d5('0x4d')],_0x5c88be[_0x67d5('0x4a')]);return _0x113751;})[_0x67d5('0x15')](function(){_0x113751[_0x67d5('0xd')]=_0x24ee1d['body'][_0x67d5('0xd')];_0x113751[_0x67d5('0x3f')]=null;_0x113751[_0x67d5('0x40')]=null;return _0x113751[_0x67d5('0x42')]();});})['then'](function(){_0x2f5efd[_0x67d5('0x33')](0xc8)[_0x67d5('0x34')]({'message':_0x67d5('0x4f')});})[_0x67d5('0x1d')](function(_0xe5f88d){return handleError(_0x2f5efd,0x1f4,_0xe5f88d);});};passport[_0x67d5('0x50')](new LocalStrategy({'usernameField':_0x67d5('0x16'),'passwordField':_0x67d5('0xd')},function(_0x54a14e,_0x31ac81,_0x238107){return localAuthenticate(db[_0x67d5('0x3d')],_0x54a14e,_0x31ac81,_0x238107);}));
\ No newline at end of file
+var _0x67f8=['util','passport','passport-local','Strategy','lodash','randomstring','../../mysqldb','../../config/utils','client','Setting','findOne','allowedLoginAttempts','then','name','password','role','disabled','blocked','blockedAt','admin','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','loginAttempts','blockDuration','minutes','clearBlockUser','getLicense','catch','MailAccount','find','email','MailServerOut','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','authentication','auth','format','\x22%s\x22\x20<%s>','request','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','error','stringify','status','send','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','trim','User','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','add','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','now','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','https://','headers','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!','reset','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','validatePasswordPattern','enforcePasswordHistory','validatePasswordHistory','previousPasswords','passwordHistoryLimit','resetPasswordExpires','save','Password\x20reset!','use'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x67f8,0x105));var _0x867f=function(_0x68ee8b,_0x3cc6c5){_0x68ee8b=_0x68ee8b-0x0;var _0x5148f7=_0x67f8[_0x68ee8b];return _0x5148f7;};'use strict';var util=require(_0x867f('0x0'));var passport=require(_0x867f('0x1'));var LocalStrategy=require(_0x867f('0x2'))[_0x867f('0x3')];var jayson=require('jayson/promise');var _=require(_0x867f('0x4'));var rs=require(_0x867f('0x5'));var moment=require('moment');var db=require(_0x867f('0x6'))['db'];var authService=require('../../components/auth/service');var utils=require(_0x867f('0x7'));var client=jayson[_0x867f('0x8')]['http']({'port':0x232b});function localAuthenticate(_0x547c7d,_0x19f2d9,_0x22c1d6,_0x2542d1){var _0x22d8a4,_0x200f44;return db[_0x867f('0x9')][_0x867f('0xa')]({'where':{'id':0x1},'attributes':[_0x867f('0xb'),'blockDuration'],'raw':!![]})[_0x867f('0xc')](function(_0x2e0c89){_0x22d8a4=_0x2e0c89;return _0x547c7d[_0x867f('0xa')]({'attributes':['id',_0x867f('0xd'),_0x867f('0xe'),'salt',_0x867f('0xf'),_0x867f('0x10'),_0x867f('0x11'),_0x867f('0x12'),'loginAttempts'],'where':{'name':_0x19f2d9,'role':{'$or':[_0x867f('0x13'),_0x867f('0x14'),_0x867f('0x15')]}}});})[_0x867f('0xc')](function(_0x4bb40d){if(!_0x4bb40d||_0x4bb40d&&_0x4bb40d[_0x867f('0xd')]!==_0x19f2d9){throw new Error(_0x867f('0x16'));}else{_0x200f44=_0x4bb40d;return _0x200f44;}})['then'](function(){_0x200f44[_0x867f('0x17')](_0x22c1d6,function(_0x9b9224,_0x3bc9c3){var _0x242b03=_0x200f44[_0x867f('0x18')]+0x1;if(_0x9b9224){return _0x2542d1(_0x9b9224);}else if(!_0x3bc9c3){if(_0x200f44[_0x867f('0x10')]){return _0x2542d1(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x22d8a4[_0x867f('0xb')]>0x0){if(_0x200f44[_0x867f('0x11')]){if(_0x22d8a4[_0x867f('0x19')]>0x0){if(moment(_0x200f44[_0x867f('0x12')])['add'](_0x22d8a4[_0x867f('0x19')],_0x867f('0x1a'))>moment()){return _0x2542d1(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x867f('0x1b')](_0x200f44,_0x242b03,![],null)[_0x867f('0xc')](function(){return _0x2542d1(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x2542d1(null,![],{'message':_0x867f('0x16')});}}else{if(_0x242b03>=_0x22d8a4[_0x867f('0xb')]){return utils[_0x867f('0x1b')](_0x200f44,0x0,!![],moment())[_0x867f('0xc')](function(){return _0x2542d1(null,![],{'message':_0x867f('0x16')});});}else{return utils[_0x867f('0x1b')](_0x200f44,_0x242b03,![],null)[_0x867f('0xc')](function(){return _0x2542d1(null,![],{'message':_0x867f('0x16')});});}}}else{return _0x2542d1(null,![],{'message':_0x867f('0x16')});}}else{if(_0x200f44[_0x867f('0x10')]){return _0x2542d1(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x22d8a4[_0x867f('0xb')]>0x0){if(_0x200f44['blocked']){if(_0x22d8a4[_0x867f('0x19')]>0x0){if(moment(_0x200f44[_0x867f('0x12')])['add'](_0x22d8a4[_0x867f('0x19')],_0x867f('0x1a'))>moment()){return _0x2542d1(null,![],{'message':_0x867f('0x16')});}else{return utils[_0x867f('0x1b')](_0x200f44,0x0,![],null)[_0x867f('0xc')](function(){return utils[_0x867f('0x1c')](_0x200f44);})[_0x867f('0xc')](function(){return _0x2542d1(null,_0x200f44);});}}else{return _0x2542d1(null,![],{'message':_0x867f('0x16')});}}else{return utils['clearBlockUser'](_0x200f44,0x0,![],null)[_0x867f('0xc')](function(){return utils[_0x867f('0x1c')](_0x200f44);})[_0x867f('0xc')](function(){return _0x2542d1(null,_0x200f44);})[_0x867f('0x1d')](function(_0x3fd9d4){return _0x2542d1(null,![],_0x3fd9d4);});}}else{if(_0x200f44[_0x867f('0x11')]){return _0x2542d1(null,![],{'message':_0x867f('0x16')});}else{return utils[_0x867f('0x1c')](_0x200f44)[_0x867f('0xc')](function(){return _0x2542d1(null,_0x200f44);});}}}});})['catch'](function(_0x12b6ae){return _0x2542d1(null,![],_0x12b6ae);});}function sendServiceMail(_0x3ade44){return db[_0x867f('0x1e')][_0x867f('0x1f')]({'where':{'service':!![]},'attributes':['id','name',_0x867f('0x20')],'include':[{'model':db[_0x867f('0x21')],'as':_0x867f('0x22')}]})[_0x867f('0xc')](function(_0x206ba8){if(!_0x206ba8){throw new Error(_0x867f('0x23'));}var _0x5927ea={'tls':{'rejectUnauthorized':![]}};if(_0x206ba8[_0x867f('0x22')][_0x867f('0x24')]){_0x5927ea[_0x867f('0x24')]=_0x206ba8['Smtp'][_0x867f('0x24')];}else{_0x5927ea[_0x867f('0x25')]=_0x206ba8[_0x867f('0x22')]['host'];_0x5927ea['port']=_0x206ba8['Smtp'][_0x867f('0x26')];_0x5927ea[_0x867f('0x27')]=_0x206ba8[_0x867f('0x22')][_0x867f('0x27')];}if(_0x206ba8[_0x867f('0x22')][_0x867f('0x28')]){_0x5927ea[_0x867f('0x29')]={'user':_0x206ba8[_0x867f('0x22')]['user'],'pass':_0x206ba8[_0x867f('0x22')]['pass']};}var _0x562fa8={'account':_0x5927ea,'message':_['merge']({'from':util[_0x867f('0x2a')](_0x867f('0x2b'),_0x206ba8[_0x867f('0xd')],_0x206ba8[_0x867f('0x20')]||_0x206ba8['Smtp'][_0x867f('0x14')])},_0x3ade44)};return client[_0x867f('0x2c')]('SendMail',_0x562fa8);})[_0x867f('0xc')](function(_0x4e115d){if(_0x4e115d['error']){throw new Error(util[_0x867f('0x2a')](_0x867f('0x2d'),_0x4e115d[_0x867f('0x2e')]['message']||JSON[_0x867f('0x2f')](_0x4e115d[_0x867f('0x2e')])));}return!![];});}function handleError(_0x3ab87b,_0x2a66a3,_0x5c1d68){return _0x3ab87b[_0x867f('0x30')](_0x2a66a3||0x1f4)[_0x867f('0x31')]({'message':_0x5c1d68?_0x5c1d68['message']||_0x5c1d68:''});}exports['login']=function(_0x5d287a,_0x4510d1,_0x4d7a5e){passport[_0x867f('0x17')](_0x867f('0x32'),function(_0x1f5f4d,_0x4ecc6b,_0x36cd63){var _0x534070=_0x1f5f4d||_0x36cd63;if(_0x534070){return handleError(_0x4510d1,0x191,_0x534070);}if(!_0x4ecc6b){return handleError(_0x4510d1,0x194,{'message':_0x867f('0x33')});}else{var _0x1efdb4={'payload':{'id':_0x4ecc6b['id'],'role':_0x4ecc6b['role']},'options':{'expiresIn':0x15180}};return authService[_0x867f('0x34')](_0x1efdb4)[_0x867f('0xc')](function(_0x8e4fef){_0x4510d1[_0x867f('0x35')]({'id':_0x4ecc6b['id'],'token':_0x8e4fef,'statusCall':'','isAlreadyLogged':_0x4ecc6b[_0x867f('0x36')]});});}})(_0x5d287a,_0x4510d1,_0x4d7a5e);};exports[_0x867f('0x37')]=function(_0x11ae4d,_0x560a8d,_0x11a586){if(!_0x11ae4d[_0x867f('0x38')]['email']){return handleError(_0x560a8d,0x1f4,{'message':_0x867f('0x39')});}var _0x33aa6e=rs[_0x867f('0x3a')]();_0x11ae4d[_0x867f('0x38')]['email']=_0x11ae4d[_0x867f('0x38')][_0x867f('0x20')][_0x867f('0x3b')]()['toLowerCase']();var _0x446cb9;return db[_0x867f('0x9')]['findOne']({'where':{'id':0x1},'attributes':[_0x867f('0xb'),_0x867f('0x19')],'raw':!![]})['then'](function(_0x18c507){_0x446cb9=_0x18c507;return db[_0x867f('0x3c')]['find']({'where':{'email':_0x11ae4d[_0x867f('0x38')][_0x867f('0x20')]}});})[_0x867f('0xc')](function(_0x3bae44){if(!_0x3bae44){throw new Error(_0x867f('0x3d'));}if(_0x3bae44[_0x867f('0x10')]){throw new Error(_0x867f('0x3e'));}if(_0x3bae44[_0x867f('0x11')]){if(moment(_0x3bae44[_0x867f('0x12')])[_0x867f('0x3f')](_0x446cb9[_0x867f('0x19')],_0x867f('0x1a'))>moment()){throw new Error(_0x867f('0x40'));}else{_0x3bae44[_0x867f('0x11')]=![];_0x3bae44[_0x867f('0x12')]=null;}}_0x3bae44[_0x867f('0x41')]=_0x33aa6e;_0x3bae44['resetPasswordExpires']=Date[_0x867f('0x42')]()+0x36ee80;return _0x3bae44['save']();})[_0x867f('0xc')](function(){return sendServiceMail({'to':_0x11ae4d[_0x867f('0x38')][_0x867f('0x20')],'subject':'xCally\x20Motion\x20Password\x20Reset','text':_0x867f('0x43')+_0x867f('0x44')+_0x867f('0x45')+_0x11ae4d[_0x867f('0x46')]['host']+_0x867f('0x47')+_0x33aa6e+'\x0a\x0a'+_0x867f('0x48')});})[_0x867f('0xc')](function(){_0x560a8d[_0x867f('0x30')](0xc8)[_0x867f('0x31')]({'message':_0x867f('0x49')});})[_0x867f('0x1d')](function(_0x2717c9){return handleError(_0x560a8d,0x1f4,_0x2717c9);});};exports[_0x867f('0x4a')]=function(_0x63f330,_0x4bc288,_0x396d6a){return db[_0x867f('0x3c')][_0x867f('0x1f')]({'where':{'resetPasswordToken':_0x63f330['params'][_0x867f('0x4b')],'resetPasswordExpires':{'$gt':Date[_0x867f('0x42')]()}}})[_0x867f('0xc')](function(_0x2f58f4){if(!_0x2f58f4){throw new Error(_0x867f('0x4c'));}return db[_0x867f('0x9')][_0x867f('0xa')]({'attributes':['id',_0x867f('0x4d'),'enforcePasswordHistory','passwordHistoryLimit']})['then'](function(_0x21b466){if(_0x21b466[_0x867f('0x4d')])authService[_0x867f('0x4e')](_0x63f330['body'][_0x867f('0xe')]);if(!_0x21b466[_0x867f('0x4f')]||!_0x2f58f4['previousPasswords'])return _0x2f58f4;authService[_0x867f('0x50')](_0x63f330[_0x867f('0x38')][_0x867f('0xe')],_0x2f58f4[_0x867f('0x51')],_0x21b466[_0x867f('0x52')]);return _0x2f58f4;})[_0x867f('0xc')](function(){_0x2f58f4['password']=_0x63f330[_0x867f('0x38')][_0x867f('0xe')];_0x2f58f4[_0x867f('0x41')]=null;_0x2f58f4[_0x867f('0x53')]=null;return _0x2f58f4[_0x867f('0x54')]();});})[_0x867f('0xc')](function(){_0x4bc288['status'](0xc8)['send']({'message':_0x867f('0x55')});})[_0x867f('0x1d')](function(_0xdb3c93){return handleError(_0x4bc288,0x1f4,_0xdb3c93);});};passport[_0x867f('0x56')](new LocalStrategy({'usernameField':_0x867f('0xd'),'passwordField':_0x867f('0xe')},function(_0x4f7baf,_0x4d4345,_0x1854bd){return localAuthenticate(db[_0x867f('0x3c')],_0x4f7baf,_0x4d4345,_0x1854bd);}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x286c=['Router','./authLocal.controller','post','login','/forgot','reset','express'];(function(_0x4ed42e,_0x16b827){var _0x9af164=function(_0x277c82){while(--_0x277c82){_0x4ed42e['push'](_0x4ed42e['shift']());}};_0x9af164(++_0x16b827);}(_0x286c,0x1a3));var _0xc286=function(_0x24253e,_0x4b7382){_0x24253e=_0x24253e-0x0;var _0x31e742=_0x286c[_0x24253e];return _0x31e742;};'use strict';var express=require(_0xc286('0x0'));var router=express[_0xc286('0x1')]();var controller=require(_0xc286('0x2'));router[_0xc286('0x3')]('/',controller[_0xc286('0x4')]);router[_0xc286('0x3')](_0xc286('0x5'),controller['forgot']);router[_0xc286('0x3')]('/reset/:token',controller[_0xc286('0x6')]);module['exports']=router;
\ No newline at end of file
+var _0xe2a0=['Router','./authLocal.controller','post','/forgot','forgot','/reset/:token','exports'];(function(_0x446a2a,_0x21892a){var _0x4e246d=function(_0x55d58b){while(--_0x55d58b){_0x446a2a['push'](_0x446a2a['shift']());}};_0x4e246d(++_0x21892a);}(_0xe2a0,0x13b));var _0x0e2a=function(_0x39d0dc,_0x542c56){_0x39d0dc=_0x39d0dc-0x0;var _0x3ce462=_0xe2a0[_0x39d0dc];return _0x3ce462;};'use strict';var express=require('express');var router=express[_0x0e2a('0x0')]();var controller=require(_0x0e2a('0x1'));router['post']('/',controller['login']);router[_0x0e2a('0x2')](_0x0e2a('0x3'),controller[_0x0e2a('0x4')]);router['post'](_0x0e2a('0x5'),controller['reset']);module[_0x0e2a('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4955=['STRING','BOOLEAN','exports'];(function(_0x3df85b,_0x58e357){var _0x17cf96=function(_0x3fbe81){while(--_0x3fbe81){_0x3df85b['push'](_0x3df85b['shift']());}};_0x17cf96(++_0x58e357);}(_0x4955,0x149));var _0x5495=function(_0x1af9e0,_0x1b2b21){_0x1af9e0=_0x1af9e0-0x0;var _0x3df45d=_0x4955[_0x1af9e0];return _0x3df45d;};'use strict';var Sequelize=require('sequelize');module[_0x5495('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'channel':{'type':Sequelize[_0x5495('0x1')]},'description':{'type':Sequelize[_0x5495('0x1')]},'status':{'type':Sequelize[_0x5495('0x2')],'defaultValue':![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0xa}};
\ No newline at end of file
+var _0x8cef=['INTEGER','sequelize','exports','STRING','BOOLEAN'];(function(_0x5b97c8,_0x5952f2){var _0x52b034=function(_0x37e5d0){while(--_0x37e5d0){_0x5b97c8['push'](_0x5b97c8['shift']());}};_0x52b034(++_0x5952f2);}(_0x8cef,0x83));var _0xf8ce=function(_0x18e947,_0x4bf371){_0x18e947=_0x18e947-0x0;var _0x5bc507=_0x8cef[_0x18e947];return _0x5bc507;};'use strict';var Sequelize=require(_0xf8ce('0x0'));module[_0xf8ce('0x1')]={'name':{'type':Sequelize[_0xf8ce('0x2')],'allowNull':![]},'channel':{'type':Sequelize[_0xf8ce('0x2')]},'description':{'type':Sequelize[_0xf8ce('0x2')]},'status':{'type':Sequelize[_0xf8ce('0x3')],'defaultValue':![]},'timeout':{'type':Sequelize[_0xf8ce('0x4')],'defaultValue':0xa}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x969a=['limit','count','set','Content-Range','json','apply','save','update','then','destroy','error','name','send','index','map','Automation','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','find','create','body','addConditions','Condition','ids','omit','getConditions','pick','Action','addActions','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','end','status','offset','undefined'];(function(_0x55fd04,_0xd99544){var _0x1fc4b0=function(_0x1a38fa){while(--_0x1a38fa){_0x55fd04['push'](_0x55fd04['shift']());}};_0x1fc4b0(++_0xd99544);}(_0x969a,0xe3));var _0xa969=function(_0x538c20,_0x42595b){_0x538c20=_0x538c20-0x0;var _0x5eac17=_0x969a[_0x538c20];return _0x5eac17;};'use strict';var emlformat=require(_0xa969('0x0'));var rimraf=require(_0xa969('0x1'));var zipdir=require(_0xa969('0x2'));var jsonpatch=require(_0xa969('0x3'));var rp=require(_0xa969('0x4'));var moment=require(_0xa969('0x5'));var BPromise=require(_0xa969('0x6'));var Mustache=require(_0xa969('0x7'));var util=require(_0xa969('0x8'));var path=require(_0xa969('0x9'));var sox=require(_0xa969('0xa'));var csv=require('to-csv');var ejs=require(_0xa969('0xb'));var fs=require('fs');var fs_extra=require(_0xa969('0xc'));var _=require(_0xa969('0xd'));var squel=require(_0xa969('0xe'));var crypto=require(_0xa969('0xf'));var jsforce=require(_0xa969('0x10'));var deskjs=require(_0xa969('0x11'));var toCsv=require('to-csv');var querystring=require(_0xa969('0x12'));var Papa=require(_0xa969('0x13'));var Redis=require(_0xa969('0x14'));var authService=require(_0xa969('0x15'));var qs=require(_0xa969('0x16'));var as=require(_0xa969('0x17'));var hardwareService=require(_0xa969('0x18'));var logger=require(_0xa969('0x19'))(_0xa969('0x1a'));var utils=require('../../config/utils');var config=require(_0xa969('0x1b'));var licenseUtil=require(_0xa969('0x1c'));var db=require(_0xa969('0x1d'))['db'];function respondWithStatusCode(_0x5642b7,_0x145dd4){_0x145dd4=_0x145dd4||0xcc;return function(_0x1ace70){if(_0x1ace70){return _0x5642b7['sendStatus'](_0x145dd4);}return _0x5642b7['status'](_0x145dd4)[_0xa969('0x1e')]();};}function respondWithResult(_0x24084f,_0x2788eb){_0x2788eb=_0x2788eb||0xc8;return function(_0x320f67){if(_0x320f67){return _0x24084f[_0xa969('0x1f')](_0x2788eb)['json'](_0x320f67);}};}function respondWithFilteredResult(_0x23b26e,_0x34dd99){return function(_0xa42700){if(_0xa42700){var _0x3d82e9=typeof _0x34dd99[_0xa969('0x20')]===_0xa969('0x21')&&typeof _0x34dd99[_0xa969('0x22')]===_0xa969('0x21');var _0x575f01=_0xa42700[_0xa969('0x23')];var _0x13766b=_0x3d82e9?0x0:_0x34dd99[_0xa969('0x20')];var _0x267386=_0x3d82e9?_0xa42700[_0xa969('0x23')]:_0x34dd99['offset']+_0x34dd99['limit'];var _0x504a2b;if(_0x267386>=_0x575f01){_0x267386=_0x575f01;_0x504a2b=0xc8;}else{_0x504a2b=0xce;}_0x23b26e[_0xa969('0x1f')](_0x504a2b);return _0x23b26e[_0xa969('0x24')](_0xa969('0x25'),_0x13766b+'-'+_0x267386+'/'+_0x575f01)[_0xa969('0x26')](_0xa42700);}return null;};}function patchUpdates(_0x305fc8){return function(_0x8f0937){try{jsonpatch[_0xa969('0x27')](_0x8f0937,_0x305fc8,!![]);}catch(_0x30b034){return BPromise['reject'](_0x30b034);}return _0x8f0937[_0xa969('0x28')]();};}function saveUpdates(_0x4004bf,_0x8a4517){return function(_0xea3d00){if(_0xea3d00){return _0xea3d00[_0xa969('0x29')](_0x4004bf)[_0xa969('0x2a')](function(_0x28c6be){return _0x28c6be;});}return null;};}function removeEntity(_0x2445d2,_0x3cf673){return function(_0x219db6){if(_0x219db6){return _0x219db6[_0xa969('0x2b')]()[_0xa969('0x2a')](function(){_0x2445d2[_0xa969('0x1f')](0xcc)[_0xa969('0x1e')]();});}};}function handleEntityNotFound(_0x23c649,_0x375e6c){return function(_0xcd29cf){if(!_0xcd29cf){_0x23c649['sendStatus'](0x194);}return _0xcd29cf;};}function handleError(_0x3f44a3,_0xc450){_0xc450=_0xc450||0x1f4;return function(_0x35b709){logger[_0xa969('0x2c')](_0x35b709['stack']);if(_0x35b709['name']){delete _0x35b709[_0xa969('0x2d')];}_0x3f44a3['status'](_0xc450)[_0xa969('0x2e')](_0x35b709);};}exports[_0xa969('0x2f')]=function(_0x22e54f,_0x56d505){var _0x17e47a={},_0x2a6173={},_0x258082={'count':0x0,'rows':[]};var _0x4bf711=_[_0xa969('0x30')](db[_0xa969('0x31')][_0xa969('0x32')],function(_0x491585){return{'name':_0x491585[_0xa969('0x33')],'type':_0x491585[_0xa969('0x34')]['key']};});_0x2a6173[_0xa969('0x35')]=_[_0xa969('0x30')](_0x4bf711,_0xa969('0x2d'));_0x2a6173[_0xa969('0x36')]=_[_0xa969('0x37')](_0x22e54f['query']);_0x2a6173[_0xa969('0x38')]=_[_0xa969('0x39')](_0x2a6173[_0xa969('0x35')],_0x2a6173[_0xa969('0x36')]);_0x17e47a['attributes']=_[_0xa969('0x39')](_0x2a6173[_0xa969('0x35')],qs[_0xa969('0x3a')](_0x22e54f['query'][_0xa969('0x3a')]));_0x17e47a[_0xa969('0x3b')]=_0x17e47a[_0xa969('0x3b')][_0xa969('0x3c')]?_0x17e47a[_0xa969('0x3b')]:_0x2a6173['model'];if(!_0x22e54f[_0xa969('0x36')][_0xa969('0x3d')](_0xa969('0x3e'))){_0x17e47a[_0xa969('0x22')]=qs[_0xa969('0x22')](_0x22e54f[_0xa969('0x36')][_0xa969('0x22')]);_0x17e47a[_0xa969('0x20')]=qs[_0xa969('0x20')](_0x22e54f['query']['offset']);}_0x17e47a[_0xa969('0x3f')]=qs[_0xa969('0x40')](_0x22e54f['query'][_0xa969('0x40')]);_0x17e47a[_0xa969('0x41')]=qs[_0xa969('0x38')](_['pick'](_0x22e54f[_0xa969('0x36')],_0x2a6173['filters']),_0x4bf711);if(_0x22e54f[_0xa969('0x36')][_0xa969('0x42')]){_0x17e47a[_0xa969('0x41')]=_[_0xa969('0x43')](_0x17e47a[_0xa969('0x41')],{'$or':_[_0xa969('0x30')](_0x4bf711,function(_0x2fdb3f){if(_0x2fdb3f[_0xa969('0x34')]!==_0xa969('0x44')){var _0x517777={};_0x517777[_0x2fdb3f[_0xa969('0x2d')]]={'$like':'%'+_0x22e54f[_0xa969('0x36')][_0xa969('0x42')]+'%'};return _0x517777;}})});}_0x17e47a=_['merge']({},_0x17e47a,_0x22e54f[_0xa969('0x45')]);var _0xe37188={'where':_0x17e47a['where']};return db[_0xa969('0x31')]['count'](_0xe37188)[_0xa969('0x2a')](function(_0x129dbe){_0x258082['count']=_0x129dbe;if(_0x22e54f[_0xa969('0x36')][_0xa969('0x46')]){_0x17e47a[_0xa969('0x47')]=[{'all':!![]}];}return db[_0xa969('0x31')][_0xa969('0x48')](_0x17e47a);})[_0xa969('0x2a')](function(_0x50b2ec){_0x258082['rows']=_0x50b2ec;return _0x258082;})[_0xa969('0x2a')](respondWithFilteredResult(_0x56d505,_0x17e47a))[_0xa969('0x49')](handleError(_0x56d505,null));};exports['show']=function(_0x56a92b,_0x3a15ed){var _0x2a8523={'raw':![],'where':{'id':_0x56a92b[_0xa969('0x4a')]['id']}},_0x54290b={};_0x54290b[_0xa969('0x35')]=_[_0xa969('0x37')](db[_0xa969('0x31')][_0xa969('0x32')]);_0x54290b[_0xa969('0x36')]=_[_0xa969('0x37')](_0x56a92b[_0xa969('0x36')]);_0x54290b[_0xa969('0x38')]=_['intersection'](_0x54290b[_0xa969('0x35')],_0x54290b[_0xa969('0x36')]);_0x2a8523[_0xa969('0x3b')]=_[_0xa969('0x39')](_0x54290b[_0xa969('0x35')],qs[_0xa969('0x3a')](_0x56a92b[_0xa969('0x36')][_0xa969('0x3a')]));_0x2a8523[_0xa969('0x3b')]=_0x2a8523[_0xa969('0x3b')][_0xa969('0x3c')]?_0x2a8523[_0xa969('0x3b')]:_0x54290b[_0xa969('0x35')];if(_0x56a92b['query'][_0xa969('0x46')]){_0x2a8523[_0xa969('0x47')]=[{'all':!![]}];}_0x2a8523=_[_0xa969('0x43')]({},_0x2a8523,_0x56a92b[_0xa969('0x45')]);return db['Automation'][_0xa969('0x4b')](_0x2a8523)[_0xa969('0x2a')](handleEntityNotFound(_0x3a15ed,null))[_0xa969('0x2a')](respondWithResult(_0x3a15ed,null))[_0xa969('0x49')](handleError(_0x3a15ed,null));};exports[_0xa969('0x4c')]=function(_0x12216f,_0x52c3e3){return db['Automation'][_0xa969('0x4c')](_0x12216f[_0xa969('0x4d')],{})['then'](respondWithResult(_0x52c3e3,0xc9))[_0xa969('0x49')](handleError(_0x52c3e3,null));};exports[_0xa969('0x29')]=function(_0x3be01c,_0x463285){if(_0x3be01c['body']['id']){delete _0x3be01c[_0xa969('0x4d')]['id'];}return db['Automation'][_0xa969('0x4b')]({'where':{'id':_0x3be01c[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x463285,null))[_0xa969('0x2a')](saveUpdates(_0x3be01c[_0xa969('0x4d')],null))[_0xa969('0x2a')](respondWithResult(_0x463285,null))[_0xa969('0x49')](handleError(_0x463285,null));};exports[_0xa969('0x2b')]=function(_0x59ff1a,_0x24fc84){return db['Automation'][_0xa969('0x4b')]({'where':{'id':_0x59ff1a['params']['id']}})['then'](handleEntityNotFound(_0x24fc84,null))[_0xa969('0x2a')](removeEntity(_0x24fc84,null))[_0xa969('0x49')](handleError(_0x24fc84,null));};exports[_0xa969('0x4e')]=function(_0xc4e144,_0x18f619,_0x4925b5){return db[_0xa969('0x4f')][_0xa969('0x4b')]({'where':{'id':_0xc4e144['params']['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x18f619,null))[_0xa969('0x2a')](function(_0x355cd1){if(_0x355cd1){return _0x355cd1[_0xa969('0x4e')](_0xc4e144[_0xa969('0x4d')][_0xa969('0x50')],_[_0xa969('0x51')](_0xc4e144[_0xa969('0x4d')],[_0xa969('0x50'),'id'])||{});}})['then'](respondWithResult(_0x18f619,null))[_0xa969('0x49')](handleError(_0x18f619,null));};exports[_0xa969('0x52')]=function(_0x455d49,_0x494847,_0x2f8623){var _0x22cac0={};var _0xb64c7c={};var _0x932230;var _0x12c644;return db[_0xa969('0x31')]['findOne']({'where':{'id':_0x455d49[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x494847,null))['then'](function(_0x334f3c){if(_0x334f3c){_0x932230=_0x334f3c;_0xb64c7c['model']=_[_0xa969('0x37')](db[_0xa969('0x4f')]['rawAttributes']);_0xb64c7c['query']=_['keys'](_0x455d49['query']);_0xb64c7c[_0xa969('0x38')]=_[_0xa969('0x39')](_0xb64c7c['model'],_0xb64c7c[_0xa969('0x36')]);_0x22cac0[_0xa969('0x3b')]=_[_0xa969('0x39')](_0xb64c7c['model'],qs[_0xa969('0x3a')](_0x455d49['query']['fields']));_0x22cac0[_0xa969('0x3b')]=_0x22cac0[_0xa969('0x3b')][_0xa969('0x3c')]?_0x22cac0[_0xa969('0x3b')]:_0xb64c7c[_0xa969('0x35')];_0x22cac0[_0xa969('0x3f')]=qs['sort'](_0x455d49[_0xa969('0x36')][_0xa969('0x40')]);_0x22cac0[_0xa969('0x41')]=qs[_0xa969('0x38')](_[_0xa969('0x53')](_0x455d49['query'],_0xb64c7c['filters']));if(_0x455d49[_0xa969('0x36')]['filter']){_0x22cac0[_0xa969('0x41')]=_[_0xa969('0x43')](_0x22cac0['where'],{'$or':_['map'](_0x22cac0[_0xa969('0x3b')],function(_0x5d13fe){var _0x381d40={};_0x381d40[_0x5d13fe]={'$like':'%'+_0x455d49[_0xa969('0x36')]['filter']+'%'};return _0x381d40;})});}_0x22cac0=_[_0xa969('0x43')]({},_0x22cac0,_0x455d49[_0xa969('0x45')]);return _0x932230[_0xa969('0x52')](_0x22cac0);}})['then'](function(_0x3bddef){if(_0x3bddef){_0x12c644=_0x3bddef[_0xa969('0x3c')];if(!_0x455d49[_0xa969('0x36')]['hasOwnProperty'](_0xa969('0x3e'))){_0x22cac0[_0xa969('0x22')]=qs[_0xa969('0x22')](_0x455d49[_0xa969('0x36')][_0xa969('0x22')]);_0x22cac0[_0xa969('0x20')]=qs[_0xa969('0x20')](_0x455d49[_0xa969('0x36')][_0xa969('0x20')]);}return _0x932230[_0xa969('0x52')](_0x22cac0);}})[_0xa969('0x2a')](function(_0x5d3c33){if(_0x5d3c33){return _0x5d3c33?{'count':_0x12c644,'rows':_0x5d3c33}:null;}})[_0xa969('0x2a')](respondWithResult(_0x494847,null))[_0xa969('0x49')](handleError(_0x494847,null));};exports['addActions']=function(_0x5da020,_0xf15f10,_0x319289){return db[_0xa969('0x54')][_0xa969('0x4b')]({'where':{'id':_0x5da020[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0xf15f10,null))['then'](function(_0x41870b){if(_0x41870b){return _0x41870b[_0xa969('0x55')](_0x5da020[_0xa969('0x4d')][_0xa969('0x50')],_[_0xa969('0x51')](_0x5da020[_0xa969('0x4d')],[_0xa969('0x50'),'id'])||{});}})['then'](respondWithResult(_0xf15f10,null))[_0xa969('0x49')](handleError(_0xf15f10,null));};exports[_0xa969('0x56')]=function(_0x25a2ef,_0x23b45a,_0x3d2ed6){var _0x22463e={};var _0x21b060={};var _0x9e8a93;var _0x7ebf5c;return db[_0xa969('0x31')]['findOne']({'where':{'id':_0x25a2ef[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x23b45a,null))[_0xa969('0x2a')](function(_0x23a8d0){if(_0x23a8d0){_0x9e8a93=_0x23a8d0;_0x21b060[_0xa969('0x35')]=_[_0xa969('0x37')](db[_0xa969('0x54')][_0xa969('0x32')]);_0x21b060['query']=_[_0xa969('0x37')](_0x25a2ef[_0xa969('0x36')]);_0x21b060[_0xa969('0x38')]=_['intersection'](_0x21b060['model'],_0x21b060[_0xa969('0x36')]);_0x22463e[_0xa969('0x3b')]=_[_0xa969('0x39')](_0x21b060[_0xa969('0x35')],qs[_0xa969('0x3a')](_0x25a2ef[_0xa969('0x36')][_0xa969('0x3a')]));_0x22463e[_0xa969('0x3b')]=_0x22463e['attributes'][_0xa969('0x3c')]?_0x22463e[_0xa969('0x3b')]:_0x21b060[_0xa969('0x35')];_0x22463e[_0xa969('0x3f')]=qs[_0xa969('0x40')](_0x25a2ef[_0xa969('0x36')][_0xa969('0x40')]);_0x22463e['where']=qs[_0xa969('0x38')](_[_0xa969('0x53')](_0x25a2ef[_0xa969('0x36')],_0x21b060[_0xa969('0x38')]));if(_0x25a2ef[_0xa969('0x36')][_0xa969('0x42')]){_0x22463e['where']=_['merge'](_0x22463e[_0xa969('0x41')],{'$or':_[_0xa969('0x30')](_0x22463e[_0xa969('0x3b')],function(_0x45fc91){var _0xb24da6={};_0xb24da6[_0x45fc91]={'$like':'%'+_0x25a2ef[_0xa969('0x36')][_0xa969('0x42')]+'%'};return _0xb24da6;})});}_0x22463e=_['merge']({},_0x22463e,_0x25a2ef[_0xa969('0x45')]);return _0x9e8a93[_0xa969('0x56')](_0x22463e);}})[_0xa969('0x2a')](function(_0x5cde9c){if(_0x5cde9c){_0x7ebf5c=_0x5cde9c[_0xa969('0x3c')];if(!_0x25a2ef['query'][_0xa969('0x3d')](_0xa969('0x3e'))){_0x22463e['limit']=qs[_0xa969('0x22')](_0x25a2ef['query']['limit']);_0x22463e[_0xa969('0x20')]=qs[_0xa969('0x20')](_0x25a2ef['query'][_0xa969('0x20')]);}return _0x9e8a93[_0xa969('0x56')](_0x22463e);}})[_0xa969('0x2a')](function(_0x57aafe){if(_0x57aafe){return _0x57aafe?{'count':_0x7ebf5c,'rows':_0x57aafe}:null;}})[_0xa969('0x2a')](respondWithResult(_0x23b45a,null))[_0xa969('0x49')](handleError(_0x23b45a,null));};
\ No newline at end of file
+var _0xe80f=['fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','Automation','includeAll','include','rows','catch','show','params','keys','length','create','update','body','find','addConditions','Condition','ids','omit','findOne','getConditions','addActions','Action','getActions','pick','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','save','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','filters','intersection','attributes'];(function(_0x295314,_0x17b250){var _0x584b0c=function(_0x51cc84){while(--_0x51cc84){_0x295314['push'](_0x295314['shift']());}};_0x584b0c(++_0x17b250);}(_0xe80f,0x77));var _0xfe80=function(_0x1e6b00,_0xe959e8){_0x1e6b00=_0x1e6b00-0x0;var _0x2422fb=_0xe80f[_0x1e6b00];return _0x2422fb;};'use strict';var emlformat=require(_0xfe80('0x0'));var rimraf=require(_0xfe80('0x1'));var zipdir=require(_0xfe80('0x2'));var jsonpatch=require(_0xfe80('0x3'));var rp=require(_0xfe80('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xfe80('0x5'));var util=require(_0xfe80('0x6'));var path=require(_0xfe80('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xfe80('0x8'));var fs=require('fs');var fs_extra=require(_0xfe80('0x9'));var _=require(_0xfe80('0xa'));var squel=require(_0xfe80('0xb'));var crypto=require(_0xfe80('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xfe80('0xd'));var querystring=require(_0xfe80('0xe'));var Papa=require('papaparse');var Redis=require(_0xfe80('0xf'));var authService=require(_0xfe80('0x10'));var qs=require(_0xfe80('0x11'));var as=require(_0xfe80('0x12'));var hardwareService=require(_0xfe80('0x13'));var logger=require(_0xfe80('0x14'))(_0xfe80('0x15'));var utils=require(_0xfe80('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xfe80('0x17'));var db=require(_0xfe80('0x18'))['db'];function respondWithStatusCode(_0x5ad938,_0x39f36e){_0x39f36e=_0x39f36e||0xcc;return function(_0x3f0ac2){if(_0x3f0ac2){return _0x5ad938[_0xfe80('0x19')](_0x39f36e);}return _0x5ad938[_0xfe80('0x1a')](_0x39f36e)[_0xfe80('0x1b')]();};}function respondWithResult(_0x4b516b,_0x326632){_0x326632=_0x326632||0xc8;return function(_0xdd8bdb){if(_0xdd8bdb){return _0x4b516b['status'](_0x326632)[_0xfe80('0x1c')](_0xdd8bdb);}};}function respondWithFilteredResult(_0x2038ea,_0x350dfb){return function(_0x1e516c){if(_0x1e516c){var _0x59d7b0=typeof _0x350dfb['offset']==='undefined'&&typeof _0x350dfb[_0xfe80('0x1d')]===_0xfe80('0x1e');var _0x4abfd9=_0x1e516c[_0xfe80('0x1f')];var _0x56c139=_0x59d7b0?0x0:_0x350dfb[_0xfe80('0x20')];var _0x504ec7=_0x59d7b0?_0x1e516c[_0xfe80('0x1f')]:_0x350dfb[_0xfe80('0x20')]+_0x350dfb['limit'];var _0x197bbb;if(_0x504ec7>=_0x4abfd9){_0x504ec7=_0x4abfd9;_0x197bbb=0xc8;}else{_0x197bbb=0xce;}_0x2038ea[_0xfe80('0x1a')](_0x197bbb);return _0x2038ea[_0xfe80('0x21')](_0xfe80('0x22'),_0x56c139+'-'+_0x504ec7+'/'+_0x4abfd9)[_0xfe80('0x1c')](_0x1e516c);}return null;};}function patchUpdates(_0x208e69){return function(_0x4f71d4){try{jsonpatch[_0xfe80('0x23')](_0x4f71d4,_0x208e69,!![]);}catch(_0x534cff){return BPromise['reject'](_0x534cff);}return _0x4f71d4[_0xfe80('0x24')]();};}function saveUpdates(_0xb7a44f,_0x433ff1){return function(_0x30ae71){if(_0x30ae71){return _0x30ae71['update'](_0xb7a44f)[_0xfe80('0x25')](function(_0x21109a){return _0x21109a;});}return null;};}function removeEntity(_0x44529b,_0x43ef84){return function(_0x3f84b1){if(_0x3f84b1){return _0x3f84b1[_0xfe80('0x26')]()[_0xfe80('0x25')](function(){_0x44529b['status'](0xcc)[_0xfe80('0x1b')]();});}};}function handleEntityNotFound(_0xc9d666,_0x503d0c){return function(_0x9deb96){if(!_0x9deb96){_0xc9d666[_0xfe80('0x19')](0x194);}return _0x9deb96;};}function handleError(_0xf51789,_0x369f6d){_0x369f6d=_0x369f6d||0x1f4;return function(_0x1702b5){logger[_0xfe80('0x27')](_0x1702b5[_0xfe80('0x28')]);if(_0x1702b5[_0xfe80('0x29')]){delete _0x1702b5[_0xfe80('0x29')];}_0xf51789[_0xfe80('0x1a')](_0x369f6d)[_0xfe80('0x2a')](_0x1702b5);};}exports[_0xfe80('0x2b')]=function(_0x1b4d60,_0x59fbcd){var _0x15fd6d={},_0x521693={},_0x52718b={'count':0x0,'rows':[]};var _0x4b7ea6=_[_0xfe80('0x2c')](db['Automation'][_0xfe80('0x2d')],function(_0x132960){return{'name':_0x132960[_0xfe80('0x2e')],'type':_0x132960[_0xfe80('0x2f')]['key']};});_0x521693[_0xfe80('0x30')]=_['map'](_0x4b7ea6,'name');_0x521693[_0xfe80('0x31')]=_['keys'](_0x1b4d60[_0xfe80('0x31')]);_0x521693[_0xfe80('0x32')]=_[_0xfe80('0x33')](_0x521693[_0xfe80('0x30')],_0x521693[_0xfe80('0x31')]);_0x15fd6d[_0xfe80('0x34')]=_[_0xfe80('0x33')](_0x521693[_0xfe80('0x30')],qs[_0xfe80('0x35')](_0x1b4d60[_0xfe80('0x31')][_0xfe80('0x35')]));_0x15fd6d[_0xfe80('0x34')]=_0x15fd6d['attributes']['length']?_0x15fd6d[_0xfe80('0x34')]:_0x521693[_0xfe80('0x30')];if(!_0x1b4d60[_0xfe80('0x31')][_0xfe80('0x36')](_0xfe80('0x37'))){_0x15fd6d[_0xfe80('0x1d')]=qs[_0xfe80('0x1d')](_0x1b4d60[_0xfe80('0x31')][_0xfe80('0x1d')]);_0x15fd6d[_0xfe80('0x20')]=qs[_0xfe80('0x20')](_0x1b4d60[_0xfe80('0x31')]['offset']);}_0x15fd6d[_0xfe80('0x38')]=qs[_0xfe80('0x39')](_0x1b4d60[_0xfe80('0x31')]['sort']);_0x15fd6d[_0xfe80('0x3a')]=qs[_0xfe80('0x32')](_['pick'](_0x1b4d60[_0xfe80('0x31')],_0x521693['filters']),_0x4b7ea6);if(_0x1b4d60['query']['filter']){_0x15fd6d[_0xfe80('0x3a')]=_[_0xfe80('0x3b')](_0x15fd6d[_0xfe80('0x3a')],{'$or':_['map'](_0x4b7ea6,function(_0x557544){if(_0x557544[_0xfe80('0x2f')]!==_0xfe80('0x3c')){var _0x1cf6eb={};_0x1cf6eb[_0x557544[_0xfe80('0x29')]]={'$like':'%'+_0x1b4d60['query'][_0xfe80('0x3d')]+'%'};return _0x1cf6eb;}})});}_0x15fd6d=_[_0xfe80('0x3b')]({},_0x15fd6d,_0x1b4d60[_0xfe80('0x3e')]);var _0x415b30={'where':_0x15fd6d[_0xfe80('0x3a')]};return db[_0xfe80('0x3f')][_0xfe80('0x1f')](_0x415b30)[_0xfe80('0x25')](function(_0x2ad277){_0x52718b[_0xfe80('0x1f')]=_0x2ad277;if(_0x1b4d60[_0xfe80('0x31')][_0xfe80('0x40')]){_0x15fd6d[_0xfe80('0x41')]=[{'all':!![]}];}return db[_0xfe80('0x3f')]['findAll'](_0x15fd6d);})[_0xfe80('0x25')](function(_0x190822){_0x52718b[_0xfe80('0x42')]=_0x190822;return _0x52718b;})[_0xfe80('0x25')](respondWithFilteredResult(_0x59fbcd,_0x15fd6d))[_0xfe80('0x43')](handleError(_0x59fbcd,null));};exports[_0xfe80('0x44')]=function(_0x5ef026,_0x2fe6ff){var _0x296e95={'raw':![],'where':{'id':_0x5ef026[_0xfe80('0x45')]['id']}},_0x3c1801={};_0x3c1801[_0xfe80('0x30')]=_[_0xfe80('0x46')](db['Automation'][_0xfe80('0x2d')]);_0x3c1801[_0xfe80('0x31')]=_[_0xfe80('0x46')](_0x5ef026[_0xfe80('0x31')]);_0x3c1801[_0xfe80('0x32')]=_[_0xfe80('0x33')](_0x3c1801[_0xfe80('0x30')],_0x3c1801[_0xfe80('0x31')]);_0x296e95['attributes']=_['intersection'](_0x3c1801[_0xfe80('0x30')],qs[_0xfe80('0x35')](_0x5ef026['query']['fields']));_0x296e95['attributes']=_0x296e95['attributes'][_0xfe80('0x47')]?_0x296e95[_0xfe80('0x34')]:_0x3c1801[_0xfe80('0x30')];if(_0x5ef026[_0xfe80('0x31')][_0xfe80('0x40')]){_0x296e95['include']=[{'all':!![]}];}_0x296e95=_[_0xfe80('0x3b')]({},_0x296e95,_0x5ef026[_0xfe80('0x3e')]);return db['Automation']['find'](_0x296e95)['then'](handleEntityNotFound(_0x2fe6ff,null))['then'](respondWithResult(_0x2fe6ff,null))[_0xfe80('0x43')](handleError(_0x2fe6ff,null));};exports[_0xfe80('0x48')]=function(_0x507f2a,_0x446d6b){return db[_0xfe80('0x3f')]['create'](_0x507f2a['body'],{})[_0xfe80('0x25')](respondWithResult(_0x446d6b,0xc9))[_0xfe80('0x43')](handleError(_0x446d6b,null));};exports[_0xfe80('0x49')]=function(_0x10c7fb,_0x3195cb){if(_0x10c7fb[_0xfe80('0x4a')]['id']){delete _0x10c7fb[_0xfe80('0x4a')]['id'];}return db[_0xfe80('0x3f')][_0xfe80('0x4b')]({'where':{'id':_0x10c7fb[_0xfe80('0x45')]['id']}})[_0xfe80('0x25')](handleEntityNotFound(_0x3195cb,null))[_0xfe80('0x25')](saveUpdates(_0x10c7fb[_0xfe80('0x4a')],null))[_0xfe80('0x25')](respondWithResult(_0x3195cb,null))[_0xfe80('0x43')](handleError(_0x3195cb,null));};exports[_0xfe80('0x26')]=function(_0x239ad7,_0x5d90fa){return db['Automation'][_0xfe80('0x4b')]({'where':{'id':_0x239ad7[_0xfe80('0x45')]['id']}})[_0xfe80('0x25')](handleEntityNotFound(_0x5d90fa,null))['then'](removeEntity(_0x5d90fa,null))[_0xfe80('0x43')](handleError(_0x5d90fa,null));};exports[_0xfe80('0x4c')]=function(_0x653c7a,_0x32f050,_0x1dd0b0){return db[_0xfe80('0x4d')][_0xfe80('0x4b')]({'where':{'id':_0x653c7a[_0xfe80('0x45')]['id']}})[_0xfe80('0x25')](handleEntityNotFound(_0x32f050,null))[_0xfe80('0x25')](function(_0x336eac){if(_0x336eac){return _0x336eac[_0xfe80('0x4c')](_0x653c7a['body'][_0xfe80('0x4e')],_[_0xfe80('0x4f')](_0x653c7a[_0xfe80('0x4a')],[_0xfe80('0x4e'),'id'])||{});}})[_0xfe80('0x25')](respondWithResult(_0x32f050,null))['catch'](handleError(_0x32f050,null));};exports['getConditions']=function(_0xec3ef0,_0x391034,_0x4879ca){var _0x5926d3={};var _0x33e00c={};var _0x38757c;var _0x32eb71;return db[_0xfe80('0x3f')][_0xfe80('0x50')]({'where':{'id':_0xec3ef0['params']['id']}})[_0xfe80('0x25')](handleEntityNotFound(_0x391034,null))[_0xfe80('0x25')](function(_0x12f855){if(_0x12f855){_0x38757c=_0x12f855;_0x33e00c[_0xfe80('0x30')]=_[_0xfe80('0x46')](db[_0xfe80('0x4d')][_0xfe80('0x2d')]);_0x33e00c['query']=_[_0xfe80('0x46')](_0xec3ef0[_0xfe80('0x31')]);_0x33e00c['filters']=_[_0xfe80('0x33')](_0x33e00c[_0xfe80('0x30')],_0x33e00c[_0xfe80('0x31')]);_0x5926d3[_0xfe80('0x34')]=_[_0xfe80('0x33')](_0x33e00c['model'],qs[_0xfe80('0x35')](_0xec3ef0[_0xfe80('0x31')][_0xfe80('0x35')]));_0x5926d3[_0xfe80('0x34')]=_0x5926d3[_0xfe80('0x34')][_0xfe80('0x47')]?_0x5926d3[_0xfe80('0x34')]:_0x33e00c['model'];_0x5926d3[_0xfe80('0x38')]=qs[_0xfe80('0x39')](_0xec3ef0['query'][_0xfe80('0x39')]);_0x5926d3[_0xfe80('0x3a')]=qs[_0xfe80('0x32')](_['pick'](_0xec3ef0[_0xfe80('0x31')],_0x33e00c['filters']));if(_0xec3ef0[_0xfe80('0x31')]['filter']){_0x5926d3[_0xfe80('0x3a')]=_[_0xfe80('0x3b')](_0x5926d3[_0xfe80('0x3a')],{'$or':_[_0xfe80('0x2c')](_0x5926d3[_0xfe80('0x34')],function(_0x2c7e92){var _0x1c2152={};_0x1c2152[_0x2c7e92]={'$like':'%'+_0xec3ef0[_0xfe80('0x31')][_0xfe80('0x3d')]+'%'};return _0x1c2152;})});}_0x5926d3=_[_0xfe80('0x3b')]({},_0x5926d3,_0xec3ef0[_0xfe80('0x3e')]);return _0x38757c['getConditions'](_0x5926d3);}})['then'](function(_0x1f83a3){if(_0x1f83a3){_0x32eb71=_0x1f83a3['length'];if(!_0xec3ef0[_0xfe80('0x31')][_0xfe80('0x36')](_0xfe80('0x37'))){_0x5926d3[_0xfe80('0x1d')]=qs[_0xfe80('0x1d')](_0xec3ef0['query']['limit']);_0x5926d3['offset']=qs[_0xfe80('0x20')](_0xec3ef0[_0xfe80('0x31')][_0xfe80('0x20')]);}return _0x38757c[_0xfe80('0x51')](_0x5926d3);}})['then'](function(_0xb5e0c7){if(_0xb5e0c7){return _0xb5e0c7?{'count':_0x32eb71,'rows':_0xb5e0c7}:null;}})[_0xfe80('0x25')](respondWithResult(_0x391034,null))[_0xfe80('0x43')](handleError(_0x391034,null));};exports[_0xfe80('0x52')]=function(_0x37c3dd,_0x5deee1,_0xaed81){return db[_0xfe80('0x53')][_0xfe80('0x4b')]({'where':{'id':_0x37c3dd[_0xfe80('0x45')]['id']}})[_0xfe80('0x25')](handleEntityNotFound(_0x5deee1,null))[_0xfe80('0x25')](function(_0x28786c){if(_0x28786c){return _0x28786c[_0xfe80('0x52')](_0x37c3dd[_0xfe80('0x4a')][_0xfe80('0x4e')],_[_0xfe80('0x4f')](_0x37c3dd[_0xfe80('0x4a')],['ids','id'])||{});}})[_0xfe80('0x25')](respondWithResult(_0x5deee1,null))[_0xfe80('0x43')](handleError(_0x5deee1,null));};exports[_0xfe80('0x54')]=function(_0x32270d,_0x286a06,_0x2dbb70){var _0x526b96={};var _0x1558a7={};var _0x652d29;var _0x3e6f4c;return db[_0xfe80('0x3f')][_0xfe80('0x50')]({'where':{'id':_0x32270d[_0xfe80('0x45')]['id']}})[_0xfe80('0x25')](handleEntityNotFound(_0x286a06,null))['then'](function(_0x5c709a){if(_0x5c709a){_0x652d29=_0x5c709a;_0x1558a7[_0xfe80('0x30')]=_['keys'](db['Action'][_0xfe80('0x2d')]);_0x1558a7[_0xfe80('0x31')]=_[_0xfe80('0x46')](_0x32270d[_0xfe80('0x31')]);_0x1558a7['filters']=_[_0xfe80('0x33')](_0x1558a7[_0xfe80('0x30')],_0x1558a7[_0xfe80('0x31')]);_0x526b96[_0xfe80('0x34')]=_[_0xfe80('0x33')](_0x1558a7[_0xfe80('0x30')],qs['fields'](_0x32270d[_0xfe80('0x31')][_0xfe80('0x35')]));_0x526b96[_0xfe80('0x34')]=_0x526b96[_0xfe80('0x34')][_0xfe80('0x47')]?_0x526b96['attributes']:_0x1558a7['model'];_0x526b96[_0xfe80('0x38')]=qs[_0xfe80('0x39')](_0x32270d[_0xfe80('0x31')][_0xfe80('0x39')]);_0x526b96[_0xfe80('0x3a')]=qs[_0xfe80('0x32')](_[_0xfe80('0x55')](_0x32270d[_0xfe80('0x31')],_0x1558a7['filters']));if(_0x32270d[_0xfe80('0x31')][_0xfe80('0x3d')]){_0x526b96[_0xfe80('0x3a')]=_[_0xfe80('0x3b')](_0x526b96[_0xfe80('0x3a')],{'$or':_[_0xfe80('0x2c')](_0x526b96[_0xfe80('0x34')],function(_0x312bb1){var _0x180e00={};_0x180e00[_0x312bb1]={'$like':'%'+_0x32270d['query'][_0xfe80('0x3d')]+'%'};return _0x180e00;})});}_0x526b96=_[_0xfe80('0x3b')]({},_0x526b96,_0x32270d[_0xfe80('0x3e')]);return _0x652d29[_0xfe80('0x54')](_0x526b96);}})[_0xfe80('0x25')](function(_0x5f41a3){if(_0x5f41a3){_0x3e6f4c=_0x5f41a3[_0xfe80('0x47')];if(!_0x32270d[_0xfe80('0x31')][_0xfe80('0x36')](_0xfe80('0x37'))){_0x526b96[_0xfe80('0x1d')]=qs[_0xfe80('0x1d')](_0x32270d[_0xfe80('0x31')][_0xfe80('0x1d')]);_0x526b96[_0xfe80('0x20')]=qs[_0xfe80('0x20')](_0x32270d[_0xfe80('0x31')][_0xfe80('0x20')]);}return _0x652d29[_0xfe80('0x54')](_0x526b96);}})[_0xfe80('0x25')](function(_0x39573f){if(_0x39573f){return _0x39573f?{'count':_0x3e6f4c,'rows':_0x39573f}:null;}})[_0xfe80('0x25')](respondWithResult(_0x286a06,null))['catch'](handleError(_0x286a06,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3064=['./automation.attributes','exports','define','tools_automations','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x2308af,_0x36afe8){var _0x73b412=function(_0x3b66cf){while(--_0x3b66cf){_0x2308af['push'](_0x2308af['shift']());}};_0x73b412(++_0x36afe8);}(_0x3064,0x13c));var _0x4306=function(_0x11072a,_0x326b62){_0x11072a=_0x11072a-0x0;var _0x53ff15=_0x3064[_0x11072a];return _0x53ff15;};'use strict';var _=require('lodash');var util=require(_0x4306('0x0'));var logger=require(_0x4306('0x1'))(_0x4306('0x2'));var moment=require(_0x4306('0x3'));var BPromise=require(_0x4306('0x4'));var rp=require(_0x4306('0x5'));var fs=require('fs');var path=require(_0x4306('0x6'));var rimraf=require(_0x4306('0x7'));var config=require('../../config/environment');var attributes=require(_0x4306('0x8'));module[_0x4306('0x9')]=function(_0x314d1b,_0x1da315){return _0x314d1b[_0x4306('0xa')]('Automation',attributes,{'tableName':_0x4306('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2717=['define','Automation','tools_automations','lodash','util','api','bluebird','path','exports'];(function(_0x20d829,_0x1e45f0){var _0x241675=function(_0xacf1b1){while(--_0xacf1b1){_0x20d829['push'](_0x20d829['shift']());}};_0x241675(++_0x1e45f0);}(_0x2717,0xf6));var _0x7271=function(_0x3c8a4c,_0x3653c){_0x3c8a4c=_0x3c8a4c-0x0;var _0x2a4c1f=_0x2717[_0x3c8a4c];return _0x2a4c1f;};'use strict';var _=require(_0x7271('0x0'));var util=require(_0x7271('0x1'));var logger=require('../../config/logger')(_0x7271('0x2'));var moment=require('moment');var BPromise=require(_0x7271('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7271('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./automation.attributes');module[_0x7271('0x5')]=function(_0xe3e6a2,_0x1ad8ef){return _0xe3e6a2[_0x7271('0x6')](_0x7271('0x7'),attributes,{'tableName':_0x7271('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09d2=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','debug','Automation,\x20%s,\x20%s,\x20%s','stringify','error','code','Automation,\x20%s,\x20%s','message','result','catch','lodash','util'];(function(_0x35c078,_0x362567){var _0xe8c0ef=function(_0x5b18b7){while(--_0x5b18b7){_0x35c078['push'](_0x35c078['shift']());}};_0xe8c0ef(++_0x362567);}(_0x09d2,0x1d2));var _0x209d=function(_0x548918,_0x9bb9ba){_0x548918=_0x548918-0x0;var _0x55f0ec=_0x09d2[_0x548918];return _0x55f0ec;};'use strict';var _=require(_0x209d('0x0'));var util=require(_0x209d('0x1'));var moment=require(_0x209d('0x2'));var BPromise=require(_0x209d('0x3'));var rs=require(_0x209d('0x4'));var fs=require('fs');var Redis=require(_0x209d('0x5'));var db=require(_0x209d('0x6'))['db'];var utils=require(_0x209d('0x7'));var logger=require(_0x209d('0x8'))(_0x209d('0x9'));var config=require('../../config/environment');var jayson=require(_0x209d('0xa'));var client=jayson[_0x209d('0xb')][_0x209d('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x204ab9,_0xc141e6,_0x5b460d){return new BPromise(function(_0x49cd7a,_0x306753){return client[_0x209d('0xd')](_0x204ab9,_0x5b460d)[_0x209d('0xe')](function(_0x48c52d){logger[_0x209d('0xf')]('Automation,\x20%s,\x20%s',_0xc141e6,_0x209d('0x10'));logger[_0x209d('0x11')](_0x209d('0x12'),_0xc141e6,_0x209d('0x10'),JSON[_0x209d('0x13')](_0x48c52d));if(_0x48c52d[_0x209d('0x14')]){if(_0x48c52d[_0x209d('0x14')][_0x209d('0x15')]===0x1f4){logger[_0x209d('0x14')](_0x209d('0x16'),_0xc141e6,_0x48c52d[_0x209d('0x14')][_0x209d('0x17')]);return _0x306753(_0x48c52d['error'][_0x209d('0x17')]);}logger[_0x209d('0x14')](_0x209d('0x16'),_0xc141e6,_0x48c52d['error']['message']);return _0x49cd7a(_0x48c52d[_0x209d('0x14')]['message']);}else{logger['info'](_0x209d('0x16'),_0xc141e6,_0x209d('0x10'));_0x49cd7a(_0x48c52d[_0x209d('0x18')]['message']);}})[_0x209d('0x19')](function(_0xe0721){logger[_0x209d('0x14')](_0x209d('0x16'),_0xc141e6,_0xe0721);_0x306753(_0xe0721);});});}
\ No newline at end of file
+var _0x72fa=['rpc','../../config/environment','jayson/promise','client','http','request','then','Automation,\x20%s,\x20%s','request\x20sent','Automation,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','bluebird','randomstring','ioredis','../../config/logger'];(function(_0x1ccbcc,_0x5c948b){var _0x1e873f=function(_0x4f232e){while(--_0x4f232e){_0x1ccbcc['push'](_0x1ccbcc['shift']());}};_0x1e873f(++_0x5c948b);}(_0x72fa,0x78));var _0xa72f=function(_0x38dbb5,_0x427be1){_0x38dbb5=_0x38dbb5-0x0;var _0x34bd46=_0x72fa[_0x38dbb5];return _0x34bd46;};'use strict';var _=require(_0xa72f('0x0'));var util=require(_0xa72f('0x1'));var moment=require('moment');var BPromise=require(_0xa72f('0x2'));var rs=require(_0xa72f('0x3'));var fs=require('fs');var Redis=require(_0xa72f('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xa72f('0x5'))(_0xa72f('0x6'));var config=require(_0xa72f('0x7'));var jayson=require(_0xa72f('0x8'));var client=jayson[_0xa72f('0x9')][_0xa72f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2cd1a3,_0xe8aa31,_0x1e1b85){return new BPromise(function(_0x33eae5,_0x57d4fa){return client[_0xa72f('0xb')](_0x2cd1a3,_0x1e1b85)[_0xa72f('0xc')](function(_0x423bc7){logger['info'](_0xa72f('0xd'),_0xe8aa31,_0xa72f('0xe'));logger['debug'](_0xa72f('0xf'),_0xe8aa31,_0xa72f('0xe'),JSON[_0xa72f('0x10')](_0x423bc7));if(_0x423bc7[_0xa72f('0x11')]){if(_0x423bc7[_0xa72f('0x11')][_0xa72f('0x12')]===0x1f4){logger[_0xa72f('0x11')](_0xa72f('0xd'),_0xe8aa31,_0x423bc7[_0xa72f('0x11')][_0xa72f('0x13')]);return _0x57d4fa(_0x423bc7[_0xa72f('0x11')][_0xa72f('0x13')]);}logger['error'](_0xa72f('0xd'),_0xe8aa31,_0x423bc7[_0xa72f('0x11')][_0xa72f('0x13')]);return _0x33eae5(_0x423bc7['error'][_0xa72f('0x13')]);}else{logger['info'](_0xa72f('0xd'),_0xe8aa31,_0xa72f('0xe'));_0x33eae5(_0x423bc7['result'][_0xa72f('0x13')]);}})[_0xa72f('0x14')](function(_0x461119){logger[_0xa72f('0x11')]('Automation,\x20%s,\x20%s',_0xe8aa31,_0x461119);_0x57d4fa(_0x461119);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe77f=['destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./automation.controller','get','isAuthenticated','index','show','/:id/conditions','getConditions','getActions','post','addConditions','/:id/actions','addActions','/:id','delete'];(function(_0x156009,_0x41a901){var _0x407ac1=function(_0x30b657){while(--_0x30b657){_0x156009['push'](_0x156009['shift']());}};_0x407ac1(++_0x41a901);}(_0xe77f,0xba));var _0xfe77=function(_0x27d723,_0x5719dd){_0x27d723=_0x27d723-0x0;var _0x164da5=_0xe77f[_0x27d723];return _0x164da5;};'use strict';var multer=require(_0xfe77('0x0'));var util=require(_0xfe77('0x1'));var path=require('path');var timeout=require(_0xfe77('0x2'));var express=require(_0xfe77('0x3'));var router=express['Router']();var fs_extra=require(_0xfe77('0x4'));var auth=require(_0xfe77('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xfe77('0x6'));var controller=require(_0xfe77('0x7'));router[_0xfe77('0x8')]('/',auth[_0xfe77('0x9')](),controller[_0xfe77('0xa')]);router['get']('/:id',auth[_0xfe77('0x9')](),controller[_0xfe77('0xb')]);router[_0xfe77('0x8')](_0xfe77('0xc'),auth[_0xfe77('0x9')](),controller[_0xfe77('0xd')]);router['get']('/:id/actions',auth[_0xfe77('0x9')](),controller[_0xfe77('0xe')]);router[_0xfe77('0xf')]('/',auth[_0xfe77('0x9')](),controller['create']);router[_0xfe77('0xf')](_0xfe77('0xc'),auth[_0xfe77('0x9')](),controller[_0xfe77('0x10')]);router['post'](_0xfe77('0x11'),auth[_0xfe77('0x9')](),controller[_0xfe77('0x12')]);router['put'](_0xfe77('0x13'),auth[_0xfe77('0x9')](),controller['update']);router[_0xfe77('0x14')](_0xfe77('0x13'),auth[_0xfe77('0x9')](),controller[_0xfe77('0x15')]);module[_0xfe77('0x16')]=router;
\ No newline at end of file
+var _0xadae=['put','update','multer','util','path','../../config/environment','get','isAuthenticated','/:id','show','/:id/conditions','getConditions','/:id/actions','getActions','post','addConditions','addActions'];(function(_0x55821d,_0x27a22e){var _0x58ea8a=function(_0x5bdd3d){while(--_0x5bdd3d){_0x55821d['push'](_0x55821d['shift']());}};_0x58ea8a(++_0x27a22e);}(_0xadae,0x134));var _0xeada=function(_0x2bf141,_0x31eac7){_0x2bf141=_0x2bf141-0x0;var _0x48277b=_0xadae[_0x2bf141];return _0x48277b;};'use strict';var multer=require(_0xeada('0x0'));var util=require(_0xeada('0x1'));var path=require(_0xeada('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xeada('0x3'));var controller=require('./automation.controller');router[_0xeada('0x4')]('/',auth[_0xeada('0x5')](),controller['index']);router['get'](_0xeada('0x6'),auth[_0xeada('0x5')](),controller[_0xeada('0x7')]);router[_0xeada('0x4')](_0xeada('0x8'),auth[_0xeada('0x5')](),controller[_0xeada('0x9')]);router[_0xeada('0x4')](_0xeada('0xa'),auth[_0xeada('0x5')](),controller[_0xeada('0xb')]);router[_0xeada('0xc')]('/',auth[_0xeada('0x5')](),controller['create']);router['post'](_0xeada('0x8'),auth[_0xeada('0x5')](),controller[_0xeada('0xd')]);router[_0xeada('0xc')](_0xeada('0xa'),auth['isAuthenticated'](),controller[_0xeada('0xe')]);router[_0xeada('0xf')](_0xeada('0x6'),auth[_0xeada('0x5')](),controller[_0xeada('0x10')]);router['delete'](_0xeada('0x6'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f8f=['ENUM','ivr','STRING','INTEGER','Max\x20200\x20calls.','UNSIGNED','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','always','never','onlyIfOpen','BOOLEAN','Active/Disactive\x20AMD','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','#Machine\x20Retry\x20(min:1,\x20max:999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','exports'];(function(_0x1eb8d6,_0x24f72f){var _0x13e05c=function(_0x43d80b){while(--_0x43d80b){_0x1eb8d6['push'](_0x1eb8d6['shift']());}};_0x13e05c(++_0x24f72f);}(_0x4f8f,0x175));var _0xf4f8=function(_0x31b5ce,_0x48b095){_0x31b5ce=_0x31b5ce-0x0;var _0x1d97b6=_0x4f8f[_0x31b5ce];return _0x1d97b6;};'use strict';var Sequelize=require('sequelize');module[_0xf4f8('0x0')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0xf4f8('0x1')]('ivr'),'allowNull':![],'defaultValue':_0xf4f8('0x2')},'description':{'type':Sequelize[_0xf4f8('0x3')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize[_0xf4f8('0x4')](0x4)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0xf4f8('0x5')},'dialOriginateCallerIdName':{'type':Sequelize[_0xf4f8('0x3')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xf4f8('0x3')]},'dialOriginateTimeout':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x7')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x8')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0x9')},'dialBusyMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0xa')},'dialBusyRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'comment':_0xf4f8('0xb')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0xc')},'dialGlobalMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xf4f8('0xd')},'dialTimezone':{'type':Sequelize[_0xf4f8('0x3')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xf4f8('0x3')],'defaultValue':'07:00-22:00,*,*,*'},'dialCheckDuplicateType':{'type':Sequelize[_0xf4f8('0x1')](_0xf4f8('0xe'),_0xf4f8('0xf'),_0xf4f8('0x10')),'defaultValue':_0xf4f8('0xe')},'dialAMDActive':{'type':Sequelize[_0xf4f8('0x11')],'defaultValue':0x0,'comment':_0xf4f8('0x12')},'dialAMDInitialSilence':{'type':Sequelize[_0xf4f8('0x4')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':'#AMD\x20Initial\x20Silence'},'dialAMDGreeting':{'type':Sequelize[_0xf4f8('0x4')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xf4f8('0x13')},'dialAMDAfterGreetingSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xf4f8('0x14')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xf4f8('0x15')},'dialAMDMinWordLength':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xf4f8('0x16')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0xf4f8('0x17')},'dialAMDSilenceThreshold':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xf4f8('0x18')},'dialAMDMaximumWordLength':{'type':Sequelize[_0xf4f8('0x4')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xf4f8('0x19')},'dialOrderByScheduledAt':{'type':Sequelize[_0xf4f8('0x1')](_0xf4f8('0x1a'),'ASC'),'defaultValue':_0xf4f8('0x1a')},'dialPrefix':{'type':Sequelize[_0xf4f8('0x3')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize['INTEGER'](0x3)[_0xf4f8('0x6')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xf4f8('0x1b')},'dialCutDigit':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Cut\x20Digit\x20(min:1,\x20max:15)'},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)'},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0x1c')},'dialDropMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x1d')},'dialDropRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAbandonedMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x1e')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x1f')},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x20')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0x21')}};
\ No newline at end of file
+var _0xe0b3=['onlyIfOpen','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Machine\x20Retry\x20(min:1,\x20max:999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','sequelize','exports','STRING','name','ENUM','ivr','BOOLEAN','Active/Disactive\x20Campaign','INTEGER','UNSIGNED','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','07:00-22:00,*,*,*','always','never'];(function(_0x11c573,_0x9e7c6e){var _0x6b72de=function(_0x2e8a61){while(--_0x2e8a61){_0x11c573['push'](_0x11c573['shift']());}};_0x6b72de(++_0x9e7c6e);}(_0xe0b3,0x1e6));var _0x3e0b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xe0b3[_0x122ef9];return _0x42fba0;};'use strict';var Sequelize=require(_0x3e0b('0x0'));module[_0x3e0b('0x1')]={'name':{'type':Sequelize[_0x3e0b('0x2')],'unique':_0x3e0b('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0x3e0b('0x4')](_0x3e0b('0x5')),'allowNull':![],'defaultValue':_0x3e0b('0x5')},'description':{'type':Sequelize[_0x3e0b('0x2')]},'active':{'type':Sequelize[_0x3e0b('0x6')],'defaultValue':0x0,'comment':_0x3e0b('0x7')},'limitCalls':{'type':Sequelize[_0x3e0b('0x8')](0x4)[_0x3e0b('0x9')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':'Max\x20200\x20calls.'},'dialOriginateCallerIdName':{'type':Sequelize[_0x3e0b('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x3e0b('0x2')]},'dialOriginateTimeout':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3e0b('0xa')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Congestion\x20Retry\x20(min:1,\x20max:999)'},'dialCongestionRetryFrequency':{'type':Sequelize[_0x3e0b('0x8')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x3e0b('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3e0b('0xb')},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x3e0b('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3e0b('0xc')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'defaultValue':0x3,'comment':_0x3e0b('0xd')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x3e0b('0x8')](0x5)[_0x3e0b('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3e0b('0xe')},'dialGlobalMaxRetry':{'type':Sequelize[_0x3e0b('0x8')](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':'#Global\x20Max\x20Retry\x20(min:1,\x20max:999)'},'dialTimezone':{'type':Sequelize[_0x3e0b('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x3e0b('0x2')],'defaultValue':_0x3e0b('0xf')},'dialCheckDuplicateType':{'type':Sequelize[_0x3e0b('0x4')](_0x3e0b('0x10'),_0x3e0b('0x11'),_0x3e0b('0x12')),'defaultValue':_0x3e0b('0x10')},'dialAMDActive':{'type':Sequelize[_0x3e0b('0x6')],'defaultValue':0x0,'comment':_0x3e0b('0x13')},'dialAMDInitialSilence':{'type':Sequelize[_0x3e0b('0x8')](0x9)[_0x3e0b('0x9')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x3e0b('0x14')},'dialAMDGreeting':{'type':Sequelize[_0x3e0b('0x8')](0x9)[_0x3e0b('0x9')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x3e0b('0x8')](0x9)['UNSIGNED'],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x3e0b('0x15')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x3e0b('0x8')](0x9)[_0x3e0b('0x9')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x3e0b('0x16')},'dialAMDMinWordLength':{'type':Sequelize['INTEGER'](0x9)[_0x3e0b('0x9')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x3e0b('0x17')},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)[_0x3e0b('0x9')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x3e0b('0x18')},'dialAMDMaximumNumberOfWords':{'type':Sequelize['INTEGER'](0x9)[_0x3e0b('0x9')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x3e0b('0x19')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x3e0b('0x8')](0x5)[_0x3e0b('0x9')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x3e0b('0x1a')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x3e0b('0x8')](0x9)[_0x3e0b('0x9')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x3e0b('0x1b')},'dialOrderByScheduledAt':{'type':Sequelize[_0x3e0b('0x4')](_0x3e0b('0x1c'),'ASC'),'defaultValue':_0x3e0b('0x1c')},'dialPrefix':{'type':Sequelize[_0x3e0b('0x2')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Random\x20Last\x20Digit\x20(min:1,\x20max:15)'},'dialCutDigit':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x3e0b('0x1d')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3e0b('0x1e')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x3e0b('0x8')](0x5)[_0x3e0b('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3e0b('0x1f')},'dialDropMaxRetry':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3e0b('0x20')},'dialDropRetryFrequency':{'type':Sequelize[_0x3e0b('0x8')](0x5)[_0x3e0b('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3e0b('0x21')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x3e0b('0x8')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Abandoned\x20Retry\x20(min:1,\x20max:999)'},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x3e0b('0x8')](0x5)[_0x3e0b('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3e0b('0x22')},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x3e0b('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x3e0b('0x8')](0x3)[_0x3e0b('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3e0b('0x23')},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x3e0b('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7729=['to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','then','UserProfileResource','destroy','error','stack','name','send','index','map','Campaign','rawAttributes','fieldName','type','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','includeAll','findAll','rows','catch','params','options','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','IvrCampaigns','UserProfileSection','userProfileId','autoAssociation','clone','include','omit','createdAt','updatedAt','body','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','findOne','nolimit','CampaignId','CmHopper','getHopperHistories','CmHopperHistory','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','spread','dialCheckDuplicateType','insert','into','cm_hopper','ContactId','ListId','select','field','phone','NOW()','scheduledAt','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','CmListId','phone\x20IS\x20NOT\x20NULL','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','CampaignId\x20=\x20?','phone\x20NOT\x20IN\x20(?)','COALESCE(phone,\x27\x27)','onlyIfOpen','fromQuery','push','sequelize','all','removeLists','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js'];(function(_0x12aab8,_0x4f106a){var _0x34c906=function(_0x16b216){while(--_0x16b216){_0x12aab8['push'](_0x12aab8['shift']());}};_0x34c906(++_0x4f106a);}(_0x7729,0x187));var _0x9772=function(_0x291d64,_0x27e47a){_0x291d64=_0x291d64-0x0;var _0x4f35d6=_0x7729[_0x291d64];return _0x4f35d6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9772('0x0'));var zipdir=require(_0x9772('0x1'));var jsonpatch=require(_0x9772('0x2'));var rp=require('request-promise');var moment=require(_0x9772('0x3'));var BPromise=require(_0x9772('0x4'));var Mustache=require('mustache');var util=require(_0x9772('0x5'));var path=require('path');var sox=require(_0x9772('0x6'));var csv=require('to-csv');var ejs=require(_0x9772('0x7'));var fs=require('fs');var fs_extra=require(_0x9772('0x8'));var _=require(_0x9772('0x9'));var squel=require(_0x9772('0xa'));var crypto=require(_0x9772('0xb'));var jsforce=require(_0x9772('0xc'));var deskjs=require(_0x9772('0xd'));var toCsv=require(_0x9772('0xe'));var querystring=require(_0x9772('0xf'));var Papa=require(_0x9772('0x10'));var Redis=require(_0x9772('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x9772('0x12'));var as=require(_0x9772('0x13'));var hardwareService=require(_0x9772('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x9772('0x15'));var config=require(_0x9772('0x16'));var licenseUtil=require(_0x9772('0x17'));var db=require(_0x9772('0x18'))['db'];function respondWithStatusCode(_0x521a52,_0x462ab8){_0x462ab8=_0x462ab8||0xcc;return function(_0x3d7e9e){if(_0x3d7e9e){return _0x521a52[_0x9772('0x19')](_0x462ab8);}return _0x521a52[_0x9772('0x1a')](_0x462ab8)[_0x9772('0x1b')]();};}function respondWithResult(_0x4d5015,_0x5dd7f8){_0x5dd7f8=_0x5dd7f8||0xc8;return function(_0x52485a){if(_0x52485a){return _0x4d5015[_0x9772('0x1a')](_0x5dd7f8)[_0x9772('0x1c')](_0x52485a);}};}function respondWithFilteredResult(_0x332964,_0x2fcf46){return function(_0x4b3b84){if(_0x4b3b84){var _0x3cc529=typeof _0x2fcf46[_0x9772('0x1d')]===_0x9772('0x1e')&&typeof _0x2fcf46[_0x9772('0x1f')]===_0x9772('0x1e');var _0x389a56=_0x4b3b84[_0x9772('0x20')];var _0x2f1179=_0x3cc529?0x0:_0x2fcf46['offset'];var _0xb66eb1=_0x3cc529?_0x4b3b84[_0x9772('0x20')]:_0x2fcf46[_0x9772('0x1d')]+_0x2fcf46[_0x9772('0x1f')];var _0x318acf;if(_0xb66eb1>=_0x389a56){_0xb66eb1=_0x389a56;_0x318acf=0xc8;}else{_0x318acf=0xce;}_0x332964[_0x9772('0x1a')](_0x318acf);return _0x332964[_0x9772('0x21')]('Content-Range',_0x2f1179+'-'+_0xb66eb1+'/'+_0x389a56)[_0x9772('0x1c')](_0x4b3b84);}return null;};}function patchUpdates(_0x300708){return function(_0x24f553){try{jsonpatch['apply'](_0x24f553,_0x300708,!![]);}catch(_0x4223ee){return BPromise[_0x9772('0x22')](_0x4223ee);}return _0x24f553[_0x9772('0x23')]();};}function saveUpdates(_0x1889f4,_0x5d4560){return function(_0x667c3a){if(_0x667c3a){return _0x667c3a['update'](_0x1889f4)[_0x9772('0x24')](function(_0x206d20){return _0x206d20;});}return null;};}function removeEntity(_0x44af39,_0x344582){return function(_0x3c559a){if(_0x3c559a){return _0x3c559a['destroy']()[_0x9772('0x24')](function(){var _0x138be8=_0x3c559a['get']({'plain':!![]});var _0x3283a8='IvrCampaigns';return db[_0x9772('0x25')][_0x9772('0x26')]({'where':{'type':_0x3283a8,'resourceId':_0x138be8['id']}})[_0x9772('0x24')](function(){return _0x3c559a;});})[_0x9772('0x24')](function(){_0x44af39[_0x9772('0x1a')](0xcc)[_0x9772('0x1b')]();});}};}function handleEntityNotFound(_0x5eac03,_0x53e3b5){return function(_0x261ac9){if(!_0x261ac9){_0x5eac03[_0x9772('0x19')](0x194);}return _0x261ac9;};}function handleError(_0x28e4d7,_0x21ca87){_0x21ca87=_0x21ca87||0x1f4;return function(_0x259b68){logger[_0x9772('0x27')](_0x259b68[_0x9772('0x28')]);if(_0x259b68[_0x9772('0x29')]){delete _0x259b68[_0x9772('0x29')];}_0x28e4d7[_0x9772('0x1a')](_0x21ca87)[_0x9772('0x2a')](_0x259b68);};}exports[_0x9772('0x2b')]=function(_0xee2046,_0x4ffc80){var _0x898847={},_0x2c7e35={},_0x3ec374={'count':0x0,'rows':[]};var _0x293d0a=_[_0x9772('0x2c')](db[_0x9772('0x2d')][_0x9772('0x2e')],function(_0x2b0b94){return{'name':_0x2b0b94[_0x9772('0x2f')],'type':_0x2b0b94[_0x9772('0x30')]['key']};});_0x2c7e35['model']=_['map'](_0x293d0a,_0x9772('0x29'));_0x2c7e35['query']=_[_0x9772('0x31')](_0xee2046[_0x9772('0x32')]);_0x2c7e35[_0x9772('0x33')]=_[_0x9772('0x34')](_0x2c7e35[_0x9772('0x35')],_0x2c7e35['query']);_0x898847[_0x9772('0x36')]=_[_0x9772('0x34')](_0x2c7e35['model'],qs[_0x9772('0x37')](_0xee2046[_0x9772('0x32')][_0x9772('0x37')]));_0x898847[_0x9772('0x36')]=_0x898847[_0x9772('0x36')][_0x9772('0x38')]?_0x898847[_0x9772('0x36')]:_0x2c7e35['model'];if(!_0xee2046[_0x9772('0x32')][_0x9772('0x39')]('nolimit')){_0x898847[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0xee2046[_0x9772('0x32')][_0x9772('0x1f')]);_0x898847['offset']=qs[_0x9772('0x1d')](_0xee2046[_0x9772('0x32')][_0x9772('0x1d')]);}_0x898847[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0xee2046[_0x9772('0x32')][_0x9772('0x3b')]);_0x898847[_0x9772('0x3c')]=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0xee2046[_0x9772('0x32')],_0x2c7e35[_0x9772('0x33')]),_0x293d0a);if(_0xee2046['query']['filter']){_0x898847[_0x9772('0x3c')]=_['merge'](_0x898847[_0x9772('0x3c')],{'$or':_[_0x9772('0x2c')](_0x293d0a,function(_0x4729c7){if(_0x4729c7['type']!=='VIRTUAL'){var _0x422eff={};_0x422eff[_0x4729c7[_0x9772('0x29')]]={'$like':'%'+_0xee2046[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x422eff;}})});}_0x898847=_[_0x9772('0x3f')]({},_0x898847,_0xee2046['options']);var _0x3b715a={'where':_0x898847['where']};return db[_0x9772('0x2d')]['count'](_0x3b715a)[_0x9772('0x24')](function(_0x2942ce){_0x3ec374['count']=_0x2942ce;if(_0xee2046[_0x9772('0x32')][_0x9772('0x40')]){_0x898847['include']=[{'all':!![]}];}return db[_0x9772('0x2d')][_0x9772('0x41')](_0x898847);})[_0x9772('0x24')](function(_0x9fcbae){_0x3ec374[_0x9772('0x42')]=_0x9fcbae;return _0x3ec374;})[_0x9772('0x24')](respondWithFilteredResult(_0x4ffc80,_0x898847))[_0x9772('0x43')](handleError(_0x4ffc80,null));};exports['show']=function(_0x357ab1,_0x10b926){var _0x38a90b={'raw':![],'where':{'id':_0x357ab1[_0x9772('0x44')]['id']}},_0x3f791e={};_0x3f791e[_0x9772('0x35')]=_['keys'](db[_0x9772('0x2d')][_0x9772('0x2e')]);_0x3f791e[_0x9772('0x32')]=_[_0x9772('0x31')](_0x357ab1[_0x9772('0x32')]);_0x3f791e['filters']=_['intersection'](_0x3f791e['model'],_0x3f791e[_0x9772('0x32')]);_0x38a90b[_0x9772('0x36')]=_['intersection'](_0x3f791e[_0x9772('0x35')],qs['fields'](_0x357ab1[_0x9772('0x32')]['fields']));_0x38a90b[_0x9772('0x36')]=_0x38a90b['attributes']['length']?_0x38a90b[_0x9772('0x36')]:_0x3f791e[_0x9772('0x35')];if(_0x357ab1[_0x9772('0x32')][_0x9772('0x40')]){_0x38a90b['include']=[{'all':!![]}];}_0x38a90b=_['merge']({},_0x38a90b,_0x357ab1[_0x9772('0x45')]);return db[_0x9772('0x2d')][_0x9772('0x46')](_0x38a90b)['then'](handleEntityNotFound(_0x10b926,null))[_0x9772('0x24')](respondWithResult(_0x10b926,null))[_0x9772('0x43')](handleError(_0x10b926,null));};exports['create']=function(_0x7e9dbd,_0x25a752){return db[_0x9772('0x2d')][_0x9772('0x47')](_0x7e9dbd['body'],{})[_0x9772('0x24')](function(_0x324104){var _0x304e03=_0x7e9dbd[_0x9772('0x48')][_0x9772('0x49')]({'plain':!![]});if(!_0x304e03)throw new Error(_0x9772('0x4a'));if(_0x304e03[_0x9772('0x4b')]===_0x9772('0x48')){var _0x4df0eb=_0x324104[_0x9772('0x49')]({'plain':!![]});var _0xf302ed=_0x9772('0x4c');return db[_0x9772('0x4d')][_0x9772('0x46')]({'where':{'name':_0xf302ed,'userProfileId':_0x304e03[_0x9772('0x4e')]},'raw':!![]})['then'](function(_0x27ca1b){if(_0x27ca1b&&_0x27ca1b[_0x9772('0x4f')]===0x0){return db[_0x9772('0x25')][_0x9772('0x47')]({'name':_0x4df0eb[_0x9772('0x29')],'resourceId':_0x4df0eb['id'],'type':_0x27ca1b[_0x9772('0x29')],'sectionId':_0x27ca1b['id']},{})[_0x9772('0x24')](function(){return _0x324104;});}else{return _0x324104;}})[_0x9772('0x43')](function(_0x5b7c71){logger[_0x9772('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5b7c71);throw _0x5b7c71;});}return _0x324104;})['then'](respondWithResult(_0x25a752,0xc9))[_0x9772('0x43')](handleError(_0x25a752,null));};exports[_0x9772('0x50')]=function(_0x43f671,_0x531789){var _0x380b06={'where':{'id':_0x43f671[_0x9772('0x44')]['id']}},_0x5de24b={};_0x5de24b[_0x9772('0x35')]=_[_0x9772('0x31')](db['Campaign'][_0x9772('0x2e')]);_0x380b06[_0x9772('0x36')]=_[_0x9772('0x34')](_0x5de24b[_0x9772('0x35')],qs[_0x9772('0x37')](_0x43f671[_0x9772('0x32')][_0x9772('0x37')]));_0x380b06[_0x9772('0x36')]=_0x380b06[_0x9772('0x36')]['length']?_0x380b06[_0x9772('0x36')]:_0x5de24b[_0x9772('0x35')];if(_0x43f671['query'][_0x9772('0x40')]){_0x380b06[_0x9772('0x51')]=[{'all':!![]}];}_0x380b06=_[_0x9772('0x3f')]({},_0x380b06,_0x43f671[_0x9772('0x45')]);return db[_0x9772('0x2d')]['find'](_0x380b06)[_0x9772('0x24')](handleEntityNotFound(_0x531789,null))[_0x9772('0x24')](function(_0x502404){if(_0x502404){var _0x2fd144=_0x502404[_0x9772('0x49')]({'plain':!![]});_0x2fd144=qs[_0x9772('0x52')](_0x2fd144,['id',_0x9772('0x53'),_0x9772('0x54')]);_0x43f671[_0x9772('0x55')]=_[_0x9772('0x52')](_0x43f671['body'],['id',_0x9772('0x53'),_0x9772('0x54')]);return db[_0x9772('0x2d')][_0x9772('0x47')](_['merge'](_0x2fd144,_0x43f671[_0x9772('0x55')]),{'include':_0x43f671[_0x9772('0x32')][_0x9772('0x40')]?[{'all':!![]}]:undefined})['then'](function(_0x46c1cd){var _0x329c32=_0x43f671[_0x9772('0x48')][_0x9772('0x49')]({'plain':!![]});if(!_0x329c32)throw new Error(_0x9772('0x4a'));if(_0x329c32[_0x9772('0x4b')]==='user'){var _0x5945d7=_0x46c1cd[_0x9772('0x49')]({'plain':!![]});var _0x2289d8='IvrCampaigns';return db[_0x9772('0x4d')][_0x9772('0x46')]({'where':{'name':_0x2289d8,'userProfileId':_0x329c32['userProfileId']},'raw':!![]})[_0x9772('0x24')](function(_0x35c3ec){if(_0x35c3ec&&_0x35c3ec[_0x9772('0x4f')]===0x0){return db['UserProfileResource']['create']({'name':_0x5945d7[_0x9772('0x29')],'resourceId':_0x5945d7['id'],'type':_0x35c3ec['name'],'sectionId':_0x35c3ec['id']},{})[_0x9772('0x24')](function(){return _0x46c1cd;});}else{return _0x46c1cd;}})[_0x9772('0x43')](function(_0x529039){logger[_0x9772('0x27')](_0x9772('0x56'),_0x529039);throw _0x529039;});}return _0x46c1cd;});}})['then'](respondWithResult(_0x531789,0xc9))[_0x9772('0x43')](handleError(_0x531789,null));};exports[_0x9772('0x57')]=function(_0x4d07fc,_0x1996dd){if(_0x4d07fc['body']['id']){delete _0x4d07fc[_0x9772('0x55')]['id'];}return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x4d07fc[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x1996dd,null))[_0x9772('0x24')](saveUpdates(_0x4d07fc[_0x9772('0x55')],null))[_0x9772('0x24')](respondWithResult(_0x1996dd,null))[_0x9772('0x43')](handleError(_0x1996dd,null));};exports['destroy']=function(_0x27ff53,_0xeb05d4){return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x27ff53['params']['id']}})['then'](handleEntityNotFound(_0xeb05d4,null))[_0x9772('0x24')](removeEntity(_0xeb05d4,null))['catch'](handleError(_0xeb05d4,null));};exports['getHoppers']=function(_0x39a7fd,_0x347857,_0x691d39){var _0x43a91a={'raw':!![],'where':{}};var _0x129d97={};var _0x438c37={'count':0x0,'rows':[]};return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x39a7fd['params']['id']}})['then'](handleEntityNotFound(_0x347857,null))['then'](function(_0x532da4){if(_0x532da4){_0x129d97[_0x9772('0x35')]=_[_0x9772('0x31')](db['CmHopper'][_0x9772('0x2e')]);_0x129d97[_0x9772('0x32')]=_[_0x9772('0x31')](_0x39a7fd[_0x9772('0x32')]);_0x129d97[_0x9772('0x33')]=_['intersection'](_0x129d97[_0x9772('0x35')],_0x129d97[_0x9772('0x32')]);_0x43a91a[_0x9772('0x36')]=_['intersection'](_0x129d97[_0x9772('0x35')],qs[_0x9772('0x37')](_0x39a7fd['query'][_0x9772('0x37')]));_0x43a91a['attributes']=_0x43a91a['attributes'][_0x9772('0x38')]?_0x43a91a[_0x9772('0x36')]:_0x129d97['model'];if(!_0x39a7fd[_0x9772('0x32')][_0x9772('0x39')](_0x9772('0x59'))){_0x43a91a[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x39a7fd[_0x9772('0x32')][_0x9772('0x1f')]);_0x43a91a[_0x9772('0x1d')]=qs[_0x9772('0x1d')](_0x39a7fd[_0x9772('0x32')][_0x9772('0x1d')]);}_0x43a91a[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0x39a7fd[_0x9772('0x32')]['sort']);_0x43a91a['where']=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0x39a7fd['query'],_0x129d97[_0x9772('0x33')]));_0x43a91a[_0x9772('0x3c')][_0x9772('0x5a')]=_0x532da4['id'];if(_0x39a7fd[_0x9772('0x32')][_0x9772('0x3e')]){_0x43a91a[_0x9772('0x3c')]=_['merge'](_0x43a91a[_0x9772('0x3c')],{'$or':_[_0x9772('0x2c')](_0x43a91a['attributes'],function(_0x2d2358){var _0x300e26={};_0x300e26[_0x2d2358]={'$like':'%'+_0x39a7fd[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x300e26;})});}_0x43a91a=_[_0x9772('0x3f')]({},_0x43a91a,_0x39a7fd['options']);return db['CmHopper'][_0x9772('0x20')]({'where':_0x43a91a['where']})['then'](function(_0x5af583){_0x438c37[_0x9772('0x20')]=_0x5af583;if(_0x39a7fd[_0x9772('0x32')][_0x9772('0x40')]){_0x43a91a[_0x9772('0x51')]=[{'all':!![]}];}return db[_0x9772('0x5b')][_0x9772('0x41')](_0x43a91a);})[_0x9772('0x24')](function(_0x2185a8){_0x438c37['rows']=_0x2185a8;return _0x438c37;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x347857,_0x43a91a))[_0x9772('0x43')](handleError(_0x347857,null));};exports[_0x9772('0x5c')]=function(_0x166ee0,_0x50f38e,_0x5081bf){var _0x1ca6ab={'raw':!![],'where':{}};var _0x96f25c={};var _0x29358d={'count':0x0,'rows':[]};return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x166ee0[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x50f38e,null))[_0x9772('0x24')](function(_0x5a511a){if(_0x5a511a){_0x96f25c[_0x9772('0x35')]=_['keys'](db['CmHopperHistory'][_0x9772('0x2e')]);_0x96f25c[_0x9772('0x32')]=_[_0x9772('0x31')](_0x166ee0['query']);_0x96f25c[_0x9772('0x33')]=_[_0x9772('0x34')](_0x96f25c[_0x9772('0x35')],_0x96f25c[_0x9772('0x32')]);_0x1ca6ab[_0x9772('0x36')]=_[_0x9772('0x34')](_0x96f25c[_0x9772('0x35')],qs[_0x9772('0x37')](_0x166ee0[_0x9772('0x32')][_0x9772('0x37')]));_0x1ca6ab[_0x9772('0x36')]=_0x1ca6ab[_0x9772('0x36')][_0x9772('0x38')]?_0x1ca6ab[_0x9772('0x36')]:_0x96f25c[_0x9772('0x35')];if(!_0x166ee0['query'][_0x9772('0x39')](_0x9772('0x59'))){_0x1ca6ab[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x166ee0[_0x9772('0x32')][_0x9772('0x1f')]);_0x1ca6ab[_0x9772('0x1d')]=qs['offset'](_0x166ee0['query'][_0x9772('0x1d')]);}_0x1ca6ab[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0x166ee0[_0x9772('0x32')][_0x9772('0x3b')]);_0x1ca6ab[_0x9772('0x3c')]=qs[_0x9772('0x33')](_['pick'](_0x166ee0['query'],_0x96f25c[_0x9772('0x33')]));_0x1ca6ab['where'][_0x9772('0x5a')]=_0x5a511a['id'];if(_0x166ee0[_0x9772('0x32')]['filter']){_0x1ca6ab[_0x9772('0x3c')]=_['merge'](_0x1ca6ab[_0x9772('0x3c')],{'$or':_['map'](_0x1ca6ab[_0x9772('0x36')],function(_0x4d0bca){var _0x4e4cc6={};_0x4e4cc6[_0x4d0bca]={'$like':'%'+_0x166ee0[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x4e4cc6;})});}_0x1ca6ab=_[_0x9772('0x3f')]({},_0x1ca6ab,_0x166ee0[_0x9772('0x45')]);return db[_0x9772('0x5d')][_0x9772('0x20')]({'where':_0x1ca6ab[_0x9772('0x3c')]})[_0x9772('0x24')](function(_0x575641){_0x29358d[_0x9772('0x20')]=_0x575641;if(_0x166ee0[_0x9772('0x32')][_0x9772('0x40')]){_0x1ca6ab['include']=[{'all':!![]}];}return db[_0x9772('0x5d')][_0x9772('0x41')](_0x1ca6ab);})[_0x9772('0x24')](function(_0x2058b6){_0x29358d[_0x9772('0x42')]=_0x2058b6;return _0x29358d;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x50f38e,_0x1ca6ab))['catch'](handleError(_0x50f38e,null));};exports['getHopperFinals']=function(_0x4d4259,_0x2b49ea,_0x56079a){var _0x5c23a1={'raw':!![],'where':{}};var _0x556685={};var _0x19be3d={'count':0x0,'rows':[]};return db[_0x9772('0x2d')][_0x9772('0x58')]({'where':{'id':_0x4d4259[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x2b49ea,null))[_0x9772('0x24')](function(_0x47ab52){if(_0x47ab52){_0x556685[_0x9772('0x35')]=_[_0x9772('0x31')](db[_0x9772('0x5e')]['rawAttributes']);_0x556685['query']=_[_0x9772('0x31')](_0x4d4259[_0x9772('0x32')]);_0x556685[_0x9772('0x33')]=_[_0x9772('0x34')](_0x556685[_0x9772('0x35')],_0x556685['query']);_0x5c23a1[_0x9772('0x36')]=_[_0x9772('0x34')](_0x556685[_0x9772('0x35')],qs[_0x9772('0x37')](_0x4d4259['query'][_0x9772('0x37')]));_0x5c23a1[_0x9772('0x36')]=_0x5c23a1[_0x9772('0x36')]['length']?_0x5c23a1[_0x9772('0x36')]:_0x556685[_0x9772('0x35')];if(!_0x4d4259[_0x9772('0x32')]['hasOwnProperty'](_0x9772('0x59'))){_0x5c23a1[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x4d4259[_0x9772('0x32')][_0x9772('0x1f')]);_0x5c23a1[_0x9772('0x1d')]=qs[_0x9772('0x1d')](_0x4d4259[_0x9772('0x32')][_0x9772('0x1d')]);}_0x5c23a1[_0x9772('0x3a')]=qs['sort'](_0x4d4259[_0x9772('0x32')][_0x9772('0x3b')]);_0x5c23a1[_0x9772('0x3c')]=qs[_0x9772('0x33')](_['pick'](_0x4d4259[_0x9772('0x32')],_0x556685[_0x9772('0x33')]));_0x5c23a1['where'][_0x9772('0x5a')]=_0x47ab52['id'];if(_0x4d4259[_0x9772('0x32')][_0x9772('0x3e')]){_0x5c23a1[_0x9772('0x3c')]=_[_0x9772('0x3f')](_0x5c23a1[_0x9772('0x3c')],{'$or':_[_0x9772('0x2c')](_0x5c23a1[_0x9772('0x36')],function(_0x33b1d9){var _0x46a8e0={};_0x46a8e0[_0x33b1d9]={'$like':'%'+_0x4d4259['query'][_0x9772('0x3e')]+'%'};return _0x46a8e0;})});}_0x5c23a1=_[_0x9772('0x3f')]({},_0x5c23a1,_0x4d4259[_0x9772('0x45')]);return db['CmHopperFinal'][_0x9772('0x20')]({'where':_0x5c23a1[_0x9772('0x3c')]})[_0x9772('0x24')](function(_0x1aca83){_0x19be3d[_0x9772('0x20')]=_0x1aca83;if(_0x4d4259[_0x9772('0x32')][_0x9772('0x40')]){_0x5c23a1['include']=[{'all':!![]}];}return db[_0x9772('0x5e')][_0x9772('0x41')](_0x5c23a1);})[_0x9772('0x24')](function(_0xf360a1){_0x19be3d[_0x9772('0x42')]=_0xf360a1;return _0x19be3d;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x2b49ea,_0x5c23a1))[_0x9772('0x43')](handleError(_0x2b49ea,null));};exports[_0x9772('0x5f')]=function(_0x28e818,_0x3ea013,_0x11d6a0){var _0x1ba958={'raw':!![],'where':{}};var _0xcb2977={};var _0xb6acc0={'count':0x0,'rows':[]};return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x28e818[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x3ea013,null))[_0x9772('0x24')](function(_0x1e63fc){if(_0x1e63fc){_0xcb2977['model']=_[_0x9772('0x31')](db[_0x9772('0x60')][_0x9772('0x2e')]);_0xcb2977[_0x9772('0x32')]=_['keys'](_0x28e818[_0x9772('0x32')]);_0xcb2977[_0x9772('0x33')]=_[_0x9772('0x34')](_0xcb2977[_0x9772('0x35')],_0xcb2977[_0x9772('0x32')]);_0x1ba958['attributes']=_[_0x9772('0x34')](_0xcb2977[_0x9772('0x35')],qs[_0x9772('0x37')](_0x28e818[_0x9772('0x32')]['fields']));_0x1ba958[_0x9772('0x36')]=_0x1ba958[_0x9772('0x36')][_0x9772('0x38')]?_0x1ba958[_0x9772('0x36')]:_0xcb2977[_0x9772('0x35')];if(!_0x28e818['query'][_0x9772('0x39')](_0x9772('0x59'))){_0x1ba958[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x28e818[_0x9772('0x32')][_0x9772('0x1f')]);_0x1ba958[_0x9772('0x1d')]=qs[_0x9772('0x1d')](_0x28e818['query']['offset']);}_0x1ba958[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0x28e818[_0x9772('0x32')][_0x9772('0x3b')]);_0x1ba958[_0x9772('0x3c')]=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0x28e818[_0x9772('0x32')],_0xcb2977[_0x9772('0x33')]));_0x1ba958[_0x9772('0x3c')][_0x9772('0x5a')]=_0x1e63fc['id'];if(_0x28e818[_0x9772('0x32')]['filter']){_0x1ba958[_0x9772('0x3c')]=_['merge'](_0x1ba958[_0x9772('0x3c')],{'$or':_['map'](_0x1ba958[_0x9772('0x36')],function(_0x3619f7){var _0x2df888={};_0x2df888[_0x3619f7]={'$like':'%'+_0x28e818[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x2df888;})});}_0x1ba958=_[_0x9772('0x3f')]({},_0x1ba958,_0x28e818[_0x9772('0x45')]);return db[_0x9772('0x60')][_0x9772('0x20')]({'where':_0x1ba958['where']})[_0x9772('0x24')](function(_0x41e359){_0xb6acc0[_0x9772('0x20')]=_0x41e359;if(_0x28e818[_0x9772('0x32')][_0x9772('0x40')]){_0x1ba958[_0x9772('0x51')]=[{'all':!![]}];}return db[_0x9772('0x60')][_0x9772('0x41')](_0x1ba958);})[_0x9772('0x24')](function(_0x31ac5d){_0xb6acc0[_0x9772('0x42')]=_0x31ac5d;return _0xb6acc0;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x3ea013,_0x1ba958))['catch'](handleError(_0x3ea013,null));};exports[_0x9772('0x61')]=function(_0x3be062,_0x4304e7,_0x3d9398){var _0x31ec61={};var _0x1d4c83={};var _0x4cfa4f;var _0x52cb2a;return db[_0x9772('0x2d')][_0x9772('0x58')]({'where':{'id':_0x3be062[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x4304e7,null))[_0x9772('0x24')](function(_0x4a2f35){if(_0x4a2f35){_0x4cfa4f=_0x4a2f35;_0x1d4c83[_0x9772('0x35')]=_[_0x9772('0x31')](db[_0x9772('0x62')]['rawAttributes']);_0x1d4c83[_0x9772('0x32')]=_[_0x9772('0x31')](_0x3be062[_0x9772('0x32')]);_0x1d4c83[_0x9772('0x33')]=_[_0x9772('0x34')](_0x1d4c83[_0x9772('0x35')],_0x1d4c83[_0x9772('0x32')]);_0x31ec61['attributes']=_['intersection'](_0x1d4c83['model'],qs[_0x9772('0x37')](_0x3be062[_0x9772('0x32')][_0x9772('0x37')]));_0x31ec61['attributes']=_0x31ec61['attributes'][_0x9772('0x38')]?_0x31ec61[_0x9772('0x36')]:_0x1d4c83[_0x9772('0x35')];_0x31ec61[_0x9772('0x3a')]=qs['sort'](_0x3be062[_0x9772('0x32')][_0x9772('0x3b')]);_0x31ec61[_0x9772('0x3c')]=qs['filters'](_[_0x9772('0x3d')](_0x3be062[_0x9772('0x32')],_0x1d4c83[_0x9772('0x33')]));if(_0x3be062['query'][_0x9772('0x3e')]){_0x31ec61[_0x9772('0x3c')]=_[_0x9772('0x3f')](_0x31ec61['where'],{'$or':_[_0x9772('0x2c')](_0x31ec61[_0x9772('0x36')],function(_0x131950){var _0x304c18={};_0x304c18[_0x131950]={'$like':'%'+_0x3be062['query'][_0x9772('0x3e')]+'%'};return _0x304c18;})});}_0x31ec61=_[_0x9772('0x3f')]({},_0x31ec61,_0x3be062[_0x9772('0x45')]);return _0x4cfa4f[_0x9772('0x61')](_0x31ec61);}})[_0x9772('0x24')](function(_0x22d57b){if(_0x22d57b){_0x52cb2a=_0x22d57b['length'];if(!_0x3be062[_0x9772('0x32')][_0x9772('0x39')](_0x9772('0x59'))){_0x31ec61[_0x9772('0x1f')]=qs['limit'](_0x3be062['query'][_0x9772('0x1f')]);_0x31ec61[_0x9772('0x1d')]=qs['offset'](_0x3be062[_0x9772('0x32')][_0x9772('0x1d')]);}return _0x4cfa4f[_0x9772('0x61')](_0x31ec61);}})[_0x9772('0x24')](function(_0x4580b4){if(_0x4580b4){return _0x4580b4?{'count':_0x52cb2a,'rows':_0x4580b4}:null;}})[_0x9772('0x24')](respondWithResult(_0x4304e7,null))[_0x9772('0x43')](handleError(_0x4304e7,null));};exports['addLists']=function(_0x12ab8c,_0x5f0040,_0x30ec3a){var _0x1941a8,_0x18418c;return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x12ab8c[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x5f0040,null))[_0x9772('0x24')](function(_0x2361cc){if(_0x2361cc){_0x18418c=_0x2361cc;return _0x2361cc[_0x9772('0x63')](_0x12ab8c[_0x9772('0x55')]['ids'],_['omit'](_0x12ab8c[_0x9772('0x55')],[_0x9772('0x64'),'id'])||{});}return null;})[_0x9772('0x65')](function(_0x6c159a){var _0x4a656c;_0x1941a8=_0x6c159a||[];var _0xdea99f=[];if(_0x6c159a){for(var _0x2edae0=0x0;_0x2edae0<_0x6c159a[_0x9772('0x38')];_0x2edae0+=0x1){var _0x2d9ae6=_0x6c159a[_0x2edae0][_0x9772('0x49')]({'plain':!![]});_0x18418c[_0x9772('0x66')]=_0x12ab8c[_0x9772('0x55')][_0x9772('0x66')]?_0x12ab8c['body'][_0x9772('0x66')]:_0x18418c[_0x9772('0x66')];switch(_0x18418c[_0x9772('0x66')]){case'always':_0x4a656c=squel[_0x9772('0x67')]()[_0x9772('0x68')](_0x9772('0x69'))['fromQuery'](['phone','scheduledAt',_0x9772('0x6a'),_0x9772('0x6b'),_0x9772('0x5a'),_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')]('phone',_0x9772('0x6e'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x70'))[_0x9772('0x6d')]('id',_0x9772('0x6a'))[_0x9772('0x6d')](_0x2d9ae6['CmListId'][_0x9772('0x71')](),'ListId')[_0x9772('0x6d')](_0x12ab8c['params']['id'][_0x9772('0x71')](),_0x9772('0x5a'))[_0x9772('0x6d')](_0x9772('0x6f'),'createdAt')[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x54'))[_0x9772('0x72')](_0x9772('0x73'))['where'](_0x9772('0x74'))['where'](_0x9772('0x75'),_0x2d9ae6[_0x9772('0x76')][_0x9772('0x71')]())[_0x9772('0x3c')](_0x9772('0x77'))['where']('phone\x20NOT\x20IN\x20(?)',squel['select']()['field'](_0x9772('0x78'))[_0x9772('0x72')](_0x9772('0x79'))[_0x9772('0x3c')](_0x9772('0x7a'),_0x12ab8c['params']['id']['toString']()))['where'](_0x9772('0x7b'),squel['select']()[_0x9772('0x6d')](_0x9772('0x7c'))[_0x9772('0x72')]('cm_hopper')[_0x9772('0x3c')]('CampaignId\x20=\x20?',_0x12ab8c[_0x9772('0x44')]['id'][_0x9772('0x71')]())))[_0x9772('0x71')]();break;case _0x9772('0x7d'):_0x4a656c=squel[_0x9772('0x67')]()['into'](_0x9772('0x69'))[_0x9772('0x7e')]([_0x9772('0x6e'),_0x9772('0x70'),_0x9772('0x6a'),_0x9772('0x6b'),'CampaignId',_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')](_0x9772('0x6e'),_0x9772('0x6e'))[_0x9772('0x6d')](_0x9772('0x6f'),'scheduledAt')['field']('id','ContactId')[_0x9772('0x6d')](_0x2d9ae6[_0x9772('0x76')][_0x9772('0x71')](),_0x9772('0x6b'))[_0x9772('0x6d')](_0x12ab8c[_0x9772('0x44')]['id'][_0x9772('0x71')](),_0x9772('0x5a'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x53'))[_0x9772('0x6d')]('NOW()',_0x9772('0x54'))[_0x9772('0x72')](_0x9772('0x73'))[_0x9772('0x3c')]('deletedAt\x20IS\x20NULL')['where'](_0x9772('0x75'),_0x2d9ae6[_0x9772('0x76')][_0x9772('0x71')]())[_0x9772('0x3c')]('phone\x20IS\x20NOT\x20NULL')[_0x9772('0x3c')]('phone\x20NOT\x20IN\x20(?)',squel[_0x9772('0x6c')]()['field'](_0x9772('0x7c'))['from'](_0x9772('0x69'))[_0x9772('0x3c')](_0x9772('0x7a'),_0x12ab8c['params']['id'][_0x9772('0x71')]())))[_0x9772('0x71')]();break;default:_0x4a656c=squel['insert']()[_0x9772('0x68')]('cm_hopper')['fromQuery']([_0x9772('0x6e'),_0x9772('0x70'),'ContactId',_0x9772('0x6b'),_0x9772('0x5a'),_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')](_0x9772('0x6e'),_0x9772('0x6e'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x70'))[_0x9772('0x6d')]('id',_0x9772('0x6a'))[_0x9772('0x6d')](_0x2d9ae6[_0x9772('0x76')]['toString'](),_0x9772('0x6b'))[_0x9772('0x6d')](_0x12ab8c['params']['id'][_0x9772('0x71')](),'CampaignId')['field'](_0x9772('0x6f'),_0x9772('0x53'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x54'))['from'](_0x9772('0x73'))['where'](_0x9772('0x74'))[_0x9772('0x3c')](_0x9772('0x75'),_0x2d9ae6['CmListId']['toString']())[_0x9772('0x3c')](_0x9772('0x77')))['toString']();}_0xdea99f[_0x9772('0x7f')](db[_0x9772('0x80')][_0x9772('0x32')](_0x4a656c));}return BPromise[_0x9772('0x81')](_0xdea99f);}})[_0x9772('0x24')](function(){return _0x1941a8;})[_0x9772('0x24')](respondWithResult(_0x5f0040,null))[_0x9772('0x43')](handleError(_0x5f0040,null));};exports[_0x9772('0x82')]=function(_0x376bb6,_0x44fce7,_0x4333d1){return db['Campaign'][_0x9772('0x46')]({'where':{'id':_0x376bb6[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x44fce7,null))['then'](function(_0x440e78){if(_0x440e78){return _0x440e78['removeLists'](_0x376bb6['query'][_0x9772('0x64')]);}})['then'](function(_0x5232ed){if(_0x5232ed){return db[_0x9772('0x5b')]['destroy']({'where':{'ListId':_0x376bb6[_0x9772('0x32')][_0x9772('0x64')],'CampaignId':_0x376bb6[_0x9772('0x44')]['id']}})[_0x9772('0x24')](function(){return _0x5232ed;});}})[_0x9772('0x24')](respondWithStatusCode(_0x44fce7,null))[_0x9772('0x43')](handleError(_0x44fce7,null));};exports['getBlackLists']=function(_0x2e0a2c,_0x366474,_0x5b7ac2){var _0x3e4679={};var _0x5ea269={};var _0x42de7d;var _0x39a9b4;return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x2e0a2c[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x366474,null))[_0x9772('0x24')](function(_0x56674e){if(_0x56674e){_0x42de7d=_0x56674e;_0x5ea269['model']=_['keys'](db[_0x9772('0x62')][_0x9772('0x2e')]);_0x5ea269[_0x9772('0x32')]=_[_0x9772('0x31')](_0x2e0a2c[_0x9772('0x32')]);_0x5ea269[_0x9772('0x33')]=_[_0x9772('0x34')](_0x5ea269[_0x9772('0x35')],_0x5ea269[_0x9772('0x32')]);_0x3e4679[_0x9772('0x36')]=_[_0x9772('0x34')](_0x5ea269[_0x9772('0x35')],qs[_0x9772('0x37')](_0x2e0a2c[_0x9772('0x32')][_0x9772('0x37')]));_0x3e4679[_0x9772('0x36')]=_0x3e4679[_0x9772('0x36')][_0x9772('0x38')]?_0x3e4679[_0x9772('0x36')]:_0x5ea269[_0x9772('0x35')];_0x3e4679[_0x9772('0x3a')]=qs['sort'](_0x2e0a2c[_0x9772('0x32')][_0x9772('0x3b')]);_0x3e4679[_0x9772('0x3c')]=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0x2e0a2c[_0x9772('0x32')],_0x5ea269[_0x9772('0x33')]));if(_0x2e0a2c[_0x9772('0x32')][_0x9772('0x3e')]){_0x3e4679['where']=_[_0x9772('0x3f')](_0x3e4679[_0x9772('0x3c')],{'$or':_['map'](_0x3e4679['attributes'],function(_0x158a79){var _0x44e1a0={};_0x44e1a0[_0x158a79]={'$like':'%'+_0x2e0a2c[_0x9772('0x32')]['filter']+'%'};return _0x44e1a0;})});}_0x3e4679=_['merge']({},_0x3e4679,_0x2e0a2c[_0x9772('0x45')]);return _0x42de7d[_0x9772('0x83')](_0x3e4679);}})[_0x9772('0x24')](function(_0xfd45ef){if(_0xfd45ef){_0x39a9b4=_0xfd45ef[_0x9772('0x38')];if(!_0x2e0a2c[_0x9772('0x32')][_0x9772('0x39')]('nolimit')){_0x3e4679[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x2e0a2c['query'][_0x9772('0x1f')]);_0x3e4679['offset']=qs['offset'](_0x2e0a2c[_0x9772('0x32')][_0x9772('0x1d')]);}return _0x42de7d[_0x9772('0x83')](_0x3e4679);}})['then'](function(_0x3cb49d){if(_0x3cb49d){return _0x3cb49d?{'count':_0x39a9b4,'rows':_0x3cb49d}:null;}})[_0x9772('0x24')](respondWithResult(_0x366474,null))[_0x9772('0x43')](handleError(_0x366474,null));};exports['addBlackLists']=function(_0xac4220,_0x19e202,_0x3e8fcc){var _0x5dafc0,_0x2deaad;return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0xac4220[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x19e202,null))['then'](function(_0x4dcc27){if(_0x4dcc27){_0x2deaad=_0x4dcc27;return _0x4dcc27[_0x9772('0x84')](_0xac4220[_0x9772('0x55')][_0x9772('0x64')],_[_0x9772('0x52')](_0xac4220['body'],[_0x9772('0x64'),'id'])||{});}return null;})[_0x9772('0x65')](function(_0x4fb365){var _0x44624c;_0x5dafc0=_0x4fb365||[];var _0x2a3cfc=[];if(_0x4fb365){for(var _0x116471=0x0;_0x116471<_0x4fb365[_0x9772('0x38')];_0x116471+=0x1){var _0x5a4445=_0x4fb365[_0x116471]['get']({'plain':!![]});_0x44624c=squel[_0x9772('0x67')]()[_0x9772('0x68')](_0x9772('0x85'))[_0x9772('0x7e')]([_0x9772('0x6e'),_0x9772('0x6a'),_0x9772('0x6b'),'CampaignId',_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')]('phone',_0x9772('0x6e'))[_0x9772('0x6d')]('id',_0x9772('0x6a'))[_0x9772('0x6d')](_0x5a4445[_0x9772('0x76')][_0x9772('0x71')](),_0x9772('0x6b'))[_0x9772('0x6d')](_0xac4220[_0x9772('0x44')]['id'][_0x9772('0x71')](),_0x9772('0x5a'))[_0x9772('0x6d')]('NOW()','createdAt')[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x54'))[_0x9772('0x72')]('cm_contacts')[_0x9772('0x3c')](_0x9772('0x74'))['where']('ListId\x20=\x20?',_0x5a4445['CmListId'][_0x9772('0x71')]())[_0x9772('0x3c')](_0x9772('0x77')))[_0x9772('0x71')]();_0x2a3cfc[_0x9772('0x7f')](db[_0x9772('0x80')][_0x9772('0x32')](_0x44624c));}return BPromise[_0x9772('0x81')](_0x2a3cfc);}})[_0x9772('0x24')](function(){return _0x5dafc0;})['then'](respondWithResult(_0x19e202,null))[_0x9772('0x43')](handleError(_0x19e202,null));};exports[_0x9772('0x86')]=function(_0x151a95,_0x56c69a,_0x99c251){return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x151a95[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x56c69a,null))[_0x9772('0x24')](function(_0x311a4e){if(_0x311a4e){return _0x311a4e[_0x9772('0x86')](_0x151a95[_0x9772('0x32')][_0x9772('0x64')]);}})[_0x9772('0x24')](function(_0x3080fc){if(_0x3080fc){return db['CmHopperBlack'][_0x9772('0x26')]({'where':{'ListId':_0x151a95[_0x9772('0x32')]['ids'],'CampaignId':_0x151a95[_0x9772('0x44')]['id']}})[_0x9772('0x24')](function(){return _0x3080fc;});}})['then'](respondWithStatusCode(_0x56c69a,null))[_0x9772('0x43')](handleError(_0x56c69a,null));};
\ No newline at end of file
+var _0x54af=['CampaignId\x20=\x20?','fromQuery','ListId\x20=\x20?','push','sequelize','all','removeLists','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','rimraf','zip-dir','fast-json-patch','bluebird','mustache','sox','ejs','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','get','UserProfileResource','error','stack','name','send','index','Campaign','rawAttributes','type','key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','user','role','IvrCampaigns','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','UserProfileSection','update','getHoppers','findOne','CampaignId','CmHopper','getHopperHistories','CmHopperHistory','CmHopperFinal','CmHopperBlack','getLists','CmList','addLists','ids','spread','dialCheckDuplicateType','always','insert','into','phone','scheduledAt','ContactId','ListId','select','field','CmListId','toString','NOW()','from','cm_contacts','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','COALESCE(phone,\x27\x27)','cm_hopper'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x54af,0x90));var _0xf54a=function(_0x5e2c68,_0x1ef9db){_0x5e2c68=_0x5e2c68-0x0;var _0x375826=_0x54af[_0x5e2c68];return _0x375826;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf54a('0x0'));var zipdir=require(_0xf54a('0x1'));var jsonpatch=require(_0xf54a('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xf54a('0x3'));var Mustache=require(_0xf54a('0x4'));var util=require('util');var path=require('path');var sox=require(_0xf54a('0x5'));var csv=require('to-csv');var ejs=require(_0xf54a('0x6'));var fs=require('fs');var fs_extra=require(_0xf54a('0x7'));var _=require('lodash');var squel=require(_0xf54a('0x8'));var crypto=require(_0xf54a('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xf54a('0xa'));var toCsv=require('to-csv');var querystring=require(_0xf54a('0xb'));var Papa=require('papaparse');var Redis=require(_0xf54a('0xc'));var authService=require(_0xf54a('0xd'));var qs=require(_0xf54a('0xe'));var as=require(_0xf54a('0xf'));var hardwareService=require(_0xf54a('0x10'));var logger=require('../../config/logger')(_0xf54a('0x11'));var utils=require(_0xf54a('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xf54a('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x353b8f,_0xd42c9f){_0xd42c9f=_0xd42c9f||0xcc;return function(_0x3b877c){if(_0x3b877c){return _0x353b8f[_0xf54a('0x14')](_0xd42c9f);}return _0x353b8f['status'](_0xd42c9f)[_0xf54a('0x15')]();};}function respondWithResult(_0x2e87c1,_0x456f55){_0x456f55=_0x456f55||0xc8;return function(_0x3e0eee){if(_0x3e0eee){return _0x2e87c1[_0xf54a('0x16')](_0x456f55)[_0xf54a('0x17')](_0x3e0eee);}};}function respondWithFilteredResult(_0x5a30c1,_0x165b79){return function(_0x941d34){if(_0x941d34){var _0x3a669f=typeof _0x165b79[_0xf54a('0x18')]===_0xf54a('0x19')&&typeof _0x165b79[_0xf54a('0x1a')]===_0xf54a('0x19');var _0x1aff3d=_0x941d34[_0xf54a('0x1b')];var _0x54083e=_0x3a669f?0x0:_0x165b79[_0xf54a('0x18')];var _0x3e3168=_0x3a669f?_0x941d34[_0xf54a('0x1b')]:_0x165b79[_0xf54a('0x18')]+_0x165b79['limit'];var _0x1b9cb6;if(_0x3e3168>=_0x1aff3d){_0x3e3168=_0x1aff3d;_0x1b9cb6=0xc8;}else{_0x1b9cb6=0xce;}_0x5a30c1[_0xf54a('0x16')](_0x1b9cb6);return _0x5a30c1[_0xf54a('0x1c')](_0xf54a('0x1d'),_0x54083e+'-'+_0x3e3168+'/'+_0x1aff3d)['json'](_0x941d34);}return null;};}function patchUpdates(_0x2e76e9){return function(_0x4984f2){try{jsonpatch[_0xf54a('0x1e')](_0x4984f2,_0x2e76e9,!![]);}catch(_0x285488){return BPromise[_0xf54a('0x1f')](_0x285488);}return _0x4984f2[_0xf54a('0x20')]();};}function saveUpdates(_0x47cf1f,_0xf023f3){return function(_0x571729){if(_0x571729){return _0x571729['update'](_0x47cf1f)[_0xf54a('0x21')](function(_0x1df943){return _0x1df943;});}return null;};}function removeEntity(_0x54a476,_0x287ed4){return function(_0x4a2818){if(_0x4a2818){return _0x4a2818[_0xf54a('0x22')]()[_0xf54a('0x21')](function(){var _0x26fc23=_0x4a2818[_0xf54a('0x23')]({'plain':!![]});var _0x23b097='IvrCampaigns';return db[_0xf54a('0x24')][_0xf54a('0x22')]({'where':{'type':_0x23b097,'resourceId':_0x26fc23['id']}})[_0xf54a('0x21')](function(){return _0x4a2818;});})['then'](function(){_0x54a476[_0xf54a('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x551122,_0x4822ea){return function(_0x3341f6){if(!_0x3341f6){_0x551122[_0xf54a('0x14')](0x194);}return _0x3341f6;};}function handleError(_0x299416,_0x15ed12){_0x15ed12=_0x15ed12||0x1f4;return function(_0x55061e){logger[_0xf54a('0x25')](_0x55061e[_0xf54a('0x26')]);if(_0x55061e['name']){delete _0x55061e[_0xf54a('0x27')];}_0x299416[_0xf54a('0x16')](_0x15ed12)[_0xf54a('0x28')](_0x55061e);};}exports[_0xf54a('0x29')]=function(_0x36a198,_0x17122a){var _0x599c52={},_0x4de741={},_0x1d346a={'count':0x0,'rows':[]};var _0x36a894=_['map'](db[_0xf54a('0x2a')][_0xf54a('0x2b')],function(_0x2278ff){return{'name':_0x2278ff['fieldName'],'type':_0x2278ff[_0xf54a('0x2c')][_0xf54a('0x2d')]};});_0x4de741['model']=_[_0xf54a('0x2e')](_0x36a894,'name');_0x4de741[_0xf54a('0x2f')]=_[_0xf54a('0x30')](_0x36a198['query']);_0x4de741[_0xf54a('0x31')]=_[_0xf54a('0x32')](_0x4de741[_0xf54a('0x33')],_0x4de741['query']);_0x599c52[_0xf54a('0x34')]=_[_0xf54a('0x32')](_0x4de741[_0xf54a('0x33')],qs[_0xf54a('0x35')](_0x36a198[_0xf54a('0x2f')][_0xf54a('0x35')]));_0x599c52[_0xf54a('0x34')]=_0x599c52[_0xf54a('0x34')][_0xf54a('0x36')]?_0x599c52[_0xf54a('0x34')]:_0x4de741['model'];if(!_0x36a198[_0xf54a('0x2f')][_0xf54a('0x37')](_0xf54a('0x38'))){_0x599c52[_0xf54a('0x1a')]=qs['limit'](_0x36a198[_0xf54a('0x2f')]['limit']);_0x599c52[_0xf54a('0x18')]=qs[_0xf54a('0x18')](_0x36a198[_0xf54a('0x2f')]['offset']);}_0x599c52[_0xf54a('0x39')]=qs[_0xf54a('0x3a')](_0x36a198[_0xf54a('0x2f')][_0xf54a('0x3a')]);_0x599c52['where']=qs[_0xf54a('0x31')](_[_0xf54a('0x3b')](_0x36a198[_0xf54a('0x2f')],_0x4de741[_0xf54a('0x31')]),_0x36a894);if(_0x36a198[_0xf54a('0x2f')][_0xf54a('0x3c')]){_0x599c52[_0xf54a('0x3d')]=_[_0xf54a('0x3e')](_0x599c52[_0xf54a('0x3d')],{'$or':_[_0xf54a('0x2e')](_0x36a894,function(_0x2de3a5){if(_0x2de3a5[_0xf54a('0x2c')]!==_0xf54a('0x3f')){var _0x2a2daa={};_0x2a2daa[_0x2de3a5[_0xf54a('0x27')]]={'$like':'%'+_0x36a198[_0xf54a('0x2f')][_0xf54a('0x3c')]+'%'};return _0x2a2daa;}})});}_0x599c52=_[_0xf54a('0x3e')]({},_0x599c52,_0x36a198[_0xf54a('0x40')]);var _0x1916f8={'where':_0x599c52[_0xf54a('0x3d')]};return db[_0xf54a('0x2a')][_0xf54a('0x1b')](_0x1916f8)[_0xf54a('0x21')](function(_0x2d0e82){_0x1d346a[_0xf54a('0x1b')]=_0x2d0e82;if(_0x36a198[_0xf54a('0x2f')][_0xf54a('0x41')]){_0x599c52[_0xf54a('0x42')]=[{'all':!![]}];}return db[_0xf54a('0x2a')][_0xf54a('0x43')](_0x599c52);})[_0xf54a('0x21')](function(_0x246559){_0x1d346a[_0xf54a('0x44')]=_0x246559;return _0x1d346a;})['then'](respondWithFilteredResult(_0x17122a,_0x599c52))[_0xf54a('0x45')](handleError(_0x17122a,null));};exports[_0xf54a('0x46')]=function(_0x40ffdf,_0x52aa17){var _0x5e36c2={'raw':![],'where':{'id':_0x40ffdf[_0xf54a('0x47')]['id']}},_0x281697={};_0x281697[_0xf54a('0x33')]=_[_0xf54a('0x30')](db[_0xf54a('0x2a')][_0xf54a('0x2b')]);_0x281697[_0xf54a('0x2f')]=_[_0xf54a('0x30')](_0x40ffdf[_0xf54a('0x2f')]);_0x281697[_0xf54a('0x31')]=_[_0xf54a('0x32')](_0x281697['model'],_0x281697['query']);_0x5e36c2['attributes']=_[_0xf54a('0x32')](_0x281697[_0xf54a('0x33')],qs[_0xf54a('0x35')](_0x40ffdf[_0xf54a('0x2f')][_0xf54a('0x35')]));_0x5e36c2['attributes']=_0x5e36c2['attributes'][_0xf54a('0x36')]?_0x5e36c2[_0xf54a('0x34')]:_0x281697[_0xf54a('0x33')];if(_0x40ffdf['query']['includeAll']){_0x5e36c2[_0xf54a('0x42')]=[{'all':!![]}];}_0x5e36c2=_[_0xf54a('0x3e')]({},_0x5e36c2,_0x40ffdf[_0xf54a('0x40')]);return db[_0xf54a('0x2a')]['find'](_0x5e36c2)['then'](handleEntityNotFound(_0x52aa17,null))[_0xf54a('0x21')](respondWithResult(_0x52aa17,null))['catch'](handleError(_0x52aa17,null));};exports[_0xf54a('0x48')]=function(_0x16432e,_0x2caabe){return db[_0xf54a('0x2a')]['create'](_0x16432e[_0xf54a('0x49')],{})[_0xf54a('0x21')](function(_0x262f8f){var _0x5d9b7a=_0x16432e[_0xf54a('0x4a')][_0xf54a('0x23')]({'plain':!![]});if(!_0x5d9b7a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5d9b7a[_0xf54a('0x4b')]===_0xf54a('0x4a')){var _0x5c16cc=_0x262f8f[_0xf54a('0x23')]({'plain':!![]});var _0x7902e=_0xf54a('0x4c');return db['UserProfileSection'][_0xf54a('0x4d')]({'where':{'name':_0x7902e,'userProfileId':_0x5d9b7a[_0xf54a('0x4e')]},'raw':!![]})[_0xf54a('0x21')](function(_0x514bbd){if(_0x514bbd&&_0x514bbd[_0xf54a('0x4f')]===0x0){return db[_0xf54a('0x24')]['create']({'name':_0x5c16cc[_0xf54a('0x27')],'resourceId':_0x5c16cc['id'],'type':_0x514bbd[_0xf54a('0x27')],'sectionId':_0x514bbd['id']},{})[_0xf54a('0x21')](function(){return _0x262f8f;});}else{return _0x262f8f;}})['catch'](function(_0x43315d){logger[_0xf54a('0x25')](_0xf54a('0x50'),_0x43315d);throw _0x43315d;});}return _0x262f8f;})[_0xf54a('0x21')](respondWithResult(_0x2caabe,0xc9))[_0xf54a('0x45')](handleError(_0x2caabe,null));};exports[_0xf54a('0x51')]=function(_0x1fcdf1,_0x6bc269){var _0x92016={'where':{'id':_0x1fcdf1['params']['id']}},_0x6bd696={};_0x6bd696['model']=_['keys'](db[_0xf54a('0x2a')]['rawAttributes']);_0x92016['attributes']=_['intersection'](_0x6bd696[_0xf54a('0x33')],qs['fields'](_0x1fcdf1['query'][_0xf54a('0x35')]));_0x92016[_0xf54a('0x34')]=_0x92016[_0xf54a('0x34')][_0xf54a('0x36')]?_0x92016[_0xf54a('0x34')]:_0x6bd696[_0xf54a('0x33')];if(_0x1fcdf1[_0xf54a('0x2f')][_0xf54a('0x41')]){_0x92016[_0xf54a('0x42')]=[{'all':!![]}];}_0x92016=_['merge']({},_0x92016,_0x1fcdf1[_0xf54a('0x40')]);return db[_0xf54a('0x2a')]['find'](_0x92016)[_0xf54a('0x21')](handleEntityNotFound(_0x6bc269,null))[_0xf54a('0x21')](function(_0x3e60c0){if(_0x3e60c0){var _0x113ba9=_0x3e60c0[_0xf54a('0x23')]({'plain':!![]});_0x113ba9=qs[_0xf54a('0x52')](_0x113ba9,['id',_0xf54a('0x53'),_0xf54a('0x54')]);_0x1fcdf1[_0xf54a('0x49')]=_[_0xf54a('0x52')](_0x1fcdf1[_0xf54a('0x49')],['id','createdAt',_0xf54a('0x54')]);return db[_0xf54a('0x2a')]['create'](_['merge'](_0x113ba9,_0x1fcdf1['body']),{'include':_0x1fcdf1[_0xf54a('0x2f')]['includeAll']?[{'all':!![]}]:undefined})['then'](function(_0xb164e2){var _0x3539c9=_0x1fcdf1[_0xf54a('0x4a')]['get']({'plain':!![]});if(!_0x3539c9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3539c9[_0xf54a('0x4b')]==='user'){var _0x24877f=_0xb164e2[_0xf54a('0x23')]({'plain':!![]});var _0x1dc864='IvrCampaigns';return db[_0xf54a('0x55')][_0xf54a('0x4d')]({'where':{'name':_0x1dc864,'userProfileId':_0x3539c9['userProfileId']},'raw':!![]})[_0xf54a('0x21')](function(_0x27aa77){if(_0x27aa77&&_0x27aa77['autoAssociation']===0x0){return db[_0xf54a('0x24')]['create']({'name':_0x24877f[_0xf54a('0x27')],'resourceId':_0x24877f['id'],'type':_0x27aa77[_0xf54a('0x27')],'sectionId':_0x27aa77['id']},{})[_0xf54a('0x21')](function(){return _0xb164e2;});}else{return _0xb164e2;}})[_0xf54a('0x45')](function(_0x1c4f6c){logger[_0xf54a('0x25')](_0xf54a('0x50'),_0x1c4f6c);throw _0x1c4f6c;});}return _0xb164e2;});}})['then'](respondWithResult(_0x6bc269,0xc9))[_0xf54a('0x45')](handleError(_0x6bc269,null));};exports[_0xf54a('0x56')]=function(_0x3f5c05,_0x45be17){if(_0x3f5c05['body']['id']){delete _0x3f5c05[_0xf54a('0x49')]['id'];}return db['Campaign'][_0xf54a('0x4d')]({'where':{'id':_0x3f5c05['params']['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0x45be17,null))[_0xf54a('0x21')](saveUpdates(_0x3f5c05[_0xf54a('0x49')],null))[_0xf54a('0x21')](respondWithResult(_0x45be17,null))[_0xf54a('0x45')](handleError(_0x45be17,null));};exports[_0xf54a('0x22')]=function(_0x5ee983,_0x7b5ac0){return db[_0xf54a('0x2a')]['find']({'where':{'id':_0x5ee983['params']['id']}})['then'](handleEntityNotFound(_0x7b5ac0,null))[_0xf54a('0x21')](removeEntity(_0x7b5ac0,null))[_0xf54a('0x45')](handleError(_0x7b5ac0,null));};exports[_0xf54a('0x57')]=function(_0x413843,_0x25ea19,_0x44400e){var _0x2dcb54={'raw':!![],'where':{}};var _0x1027b6={};var _0x498455={'count':0x0,'rows':[]};return db[_0xf54a('0x2a')][_0xf54a('0x58')]({'where':{'id':_0x413843[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0x25ea19,null))['then'](function(_0xc0f412){if(_0xc0f412){_0x1027b6['model']=_[_0xf54a('0x30')](db['CmHopper']['rawAttributes']);_0x1027b6[_0xf54a('0x2f')]=_[_0xf54a('0x30')](_0x413843[_0xf54a('0x2f')]);_0x1027b6[_0xf54a('0x31')]=_['intersection'](_0x1027b6[_0xf54a('0x33')],_0x1027b6[_0xf54a('0x2f')]);_0x2dcb54[_0xf54a('0x34')]=_[_0xf54a('0x32')](_0x1027b6['model'],qs['fields'](_0x413843['query']['fields']));_0x2dcb54[_0xf54a('0x34')]=_0x2dcb54[_0xf54a('0x34')][_0xf54a('0x36')]?_0x2dcb54['attributes']:_0x1027b6[_0xf54a('0x33')];if(!_0x413843[_0xf54a('0x2f')][_0xf54a('0x37')](_0xf54a('0x38'))){_0x2dcb54[_0xf54a('0x1a')]=qs['limit'](_0x413843[_0xf54a('0x2f')][_0xf54a('0x1a')]);_0x2dcb54[_0xf54a('0x18')]=qs[_0xf54a('0x18')](_0x413843[_0xf54a('0x2f')][_0xf54a('0x18')]);}_0x2dcb54[_0xf54a('0x39')]=qs[_0xf54a('0x3a')](_0x413843[_0xf54a('0x2f')][_0xf54a('0x3a')]);_0x2dcb54['where']=qs[_0xf54a('0x31')](_[_0xf54a('0x3b')](_0x413843['query'],_0x1027b6[_0xf54a('0x31')]));_0x2dcb54[_0xf54a('0x3d')][_0xf54a('0x59')]=_0xc0f412['id'];if(_0x413843[_0xf54a('0x2f')][_0xf54a('0x3c')]){_0x2dcb54['where']=_[_0xf54a('0x3e')](_0x2dcb54[_0xf54a('0x3d')],{'$or':_['map'](_0x2dcb54[_0xf54a('0x34')],function(_0x20eb98){var _0x167357={};_0x167357[_0x20eb98]={'$like':'%'+_0x413843[_0xf54a('0x2f')][_0xf54a('0x3c')]+'%'};return _0x167357;})});}_0x2dcb54=_[_0xf54a('0x3e')]({},_0x2dcb54,_0x413843[_0xf54a('0x40')]);return db[_0xf54a('0x5a')][_0xf54a('0x1b')]({'where':_0x2dcb54['where']})[_0xf54a('0x21')](function(_0x2875a1){_0x498455[_0xf54a('0x1b')]=_0x2875a1;if(_0x413843[_0xf54a('0x2f')]['includeAll']){_0x2dcb54[_0xf54a('0x42')]=[{'all':!![]}];}return db[_0xf54a('0x5a')][_0xf54a('0x43')](_0x2dcb54);})[_0xf54a('0x21')](function(_0x558c11){_0x498455[_0xf54a('0x44')]=_0x558c11;return _0x498455;});}})[_0xf54a('0x21')](respondWithFilteredResult(_0x25ea19,_0x2dcb54))['catch'](handleError(_0x25ea19,null));};exports[_0xf54a('0x5b')]=function(_0x34a143,_0x3717f4,_0x4c8f83){var _0x33bdf6={'raw':!![],'where':{}};var _0x13a7fe={};var _0x20f583={'count':0x0,'rows':[]};return db[_0xf54a('0x2a')][_0xf54a('0x58')]({'where':{'id':_0x34a143[_0xf54a('0x47')]['id']}})['then'](handleEntityNotFound(_0x3717f4,null))[_0xf54a('0x21')](function(_0x29b2d2){if(_0x29b2d2){_0x13a7fe[_0xf54a('0x33')]=_['keys'](db[_0xf54a('0x5c')][_0xf54a('0x2b')]);_0x13a7fe[_0xf54a('0x2f')]=_[_0xf54a('0x30')](_0x34a143['query']);_0x13a7fe[_0xf54a('0x31')]=_['intersection'](_0x13a7fe[_0xf54a('0x33')],_0x13a7fe[_0xf54a('0x2f')]);_0x33bdf6[_0xf54a('0x34')]=_[_0xf54a('0x32')](_0x13a7fe['model'],qs['fields'](_0x34a143['query'][_0xf54a('0x35')]));_0x33bdf6['attributes']=_0x33bdf6['attributes'][_0xf54a('0x36')]?_0x33bdf6[_0xf54a('0x34')]:_0x13a7fe['model'];if(!_0x34a143['query'][_0xf54a('0x37')](_0xf54a('0x38'))){_0x33bdf6[_0xf54a('0x1a')]=qs[_0xf54a('0x1a')](_0x34a143[_0xf54a('0x2f')]['limit']);_0x33bdf6[_0xf54a('0x18')]=qs[_0xf54a('0x18')](_0x34a143[_0xf54a('0x2f')][_0xf54a('0x18')]);}_0x33bdf6[_0xf54a('0x39')]=qs[_0xf54a('0x3a')](_0x34a143[_0xf54a('0x2f')][_0xf54a('0x3a')]);_0x33bdf6[_0xf54a('0x3d')]=qs[_0xf54a('0x31')](_['pick'](_0x34a143['query'],_0x13a7fe[_0xf54a('0x31')]));_0x33bdf6[_0xf54a('0x3d')]['CampaignId']=_0x29b2d2['id'];if(_0x34a143[_0xf54a('0x2f')][_0xf54a('0x3c')]){_0x33bdf6[_0xf54a('0x3d')]=_[_0xf54a('0x3e')](_0x33bdf6[_0xf54a('0x3d')],{'$or':_[_0xf54a('0x2e')](_0x33bdf6['attributes'],function(_0x48df8d){var _0x1badf8={};_0x1badf8[_0x48df8d]={'$like':'%'+_0x34a143[_0xf54a('0x2f')][_0xf54a('0x3c')]+'%'};return _0x1badf8;})});}_0x33bdf6=_['merge']({},_0x33bdf6,_0x34a143[_0xf54a('0x40')]);return db[_0xf54a('0x5c')]['count']({'where':_0x33bdf6['where']})[_0xf54a('0x21')](function(_0x5d3bc5){_0x20f583[_0xf54a('0x1b')]=_0x5d3bc5;if(_0x34a143[_0xf54a('0x2f')]['includeAll']){_0x33bdf6[_0xf54a('0x42')]=[{'all':!![]}];}return db[_0xf54a('0x5c')][_0xf54a('0x43')](_0x33bdf6);})[_0xf54a('0x21')](function(_0x4f1c4c){_0x20f583[_0xf54a('0x44')]=_0x4f1c4c;return _0x20f583;});}})['then'](respondWithFilteredResult(_0x3717f4,_0x33bdf6))[_0xf54a('0x45')](handleError(_0x3717f4,null));};exports['getHopperFinals']=function(_0x59c8a9,_0x5e8220,_0x1e53d4){var _0x1cddb5={'raw':!![],'where':{}};var _0x1f4b50={};var _0x13b6d1={'count':0x0,'rows':[]};return db[_0xf54a('0x2a')][_0xf54a('0x58')]({'where':{'id':_0x59c8a9[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0x5e8220,null))[_0xf54a('0x21')](function(_0x595ccb){if(_0x595ccb){_0x1f4b50[_0xf54a('0x33')]=_[_0xf54a('0x30')](db[_0xf54a('0x5d')][_0xf54a('0x2b')]);_0x1f4b50[_0xf54a('0x2f')]=_[_0xf54a('0x30')](_0x59c8a9[_0xf54a('0x2f')]);_0x1f4b50[_0xf54a('0x31')]=_['intersection'](_0x1f4b50[_0xf54a('0x33')],_0x1f4b50[_0xf54a('0x2f')]);_0x1cddb5[_0xf54a('0x34')]=_['intersection'](_0x1f4b50[_0xf54a('0x33')],qs[_0xf54a('0x35')](_0x59c8a9[_0xf54a('0x2f')][_0xf54a('0x35')]));_0x1cddb5[_0xf54a('0x34')]=_0x1cddb5[_0xf54a('0x34')]['length']?_0x1cddb5[_0xf54a('0x34')]:_0x1f4b50['model'];if(!_0x59c8a9['query'][_0xf54a('0x37')](_0xf54a('0x38'))){_0x1cddb5[_0xf54a('0x1a')]=qs['limit'](_0x59c8a9[_0xf54a('0x2f')][_0xf54a('0x1a')]);_0x1cddb5[_0xf54a('0x18')]=qs['offset'](_0x59c8a9[_0xf54a('0x2f')][_0xf54a('0x18')]);}_0x1cddb5[_0xf54a('0x39')]=qs[_0xf54a('0x3a')](_0x59c8a9[_0xf54a('0x2f')][_0xf54a('0x3a')]);_0x1cddb5[_0xf54a('0x3d')]=qs[_0xf54a('0x31')](_[_0xf54a('0x3b')](_0x59c8a9[_0xf54a('0x2f')],_0x1f4b50[_0xf54a('0x31')]));_0x1cddb5[_0xf54a('0x3d')][_0xf54a('0x59')]=_0x595ccb['id'];if(_0x59c8a9[_0xf54a('0x2f')][_0xf54a('0x3c')]){_0x1cddb5[_0xf54a('0x3d')]=_[_0xf54a('0x3e')](_0x1cddb5[_0xf54a('0x3d')],{'$or':_[_0xf54a('0x2e')](_0x1cddb5[_0xf54a('0x34')],function(_0x3f4c1c){var _0xe048c1={};_0xe048c1[_0x3f4c1c]={'$like':'%'+_0x59c8a9[_0xf54a('0x2f')]['filter']+'%'};return _0xe048c1;})});}_0x1cddb5=_[_0xf54a('0x3e')]({},_0x1cddb5,_0x59c8a9[_0xf54a('0x40')]);return db[_0xf54a('0x5d')][_0xf54a('0x1b')]({'where':_0x1cddb5[_0xf54a('0x3d')]})['then'](function(_0x2c2df1){_0x13b6d1[_0xf54a('0x1b')]=_0x2c2df1;if(_0x59c8a9[_0xf54a('0x2f')]['includeAll']){_0x1cddb5[_0xf54a('0x42')]=[{'all':!![]}];}return db[_0xf54a('0x5d')][_0xf54a('0x43')](_0x1cddb5);})['then'](function(_0x31a248){_0x13b6d1[_0xf54a('0x44')]=_0x31a248;return _0x13b6d1;});}})[_0xf54a('0x21')](respondWithFilteredResult(_0x5e8220,_0x1cddb5))[_0xf54a('0x45')](handleError(_0x5e8220,null));};exports['getHopperBlacks']=function(_0x572d68,_0x535e53,_0x3e1bdf){var _0x267d04={'raw':!![],'where':{}};var _0x271215={};var _0x122a9b={'count':0x0,'rows':[]};return db[_0xf54a('0x2a')]['findOne']({'where':{'id':_0x572d68['params']['id']}})['then'](handleEntityNotFound(_0x535e53,null))[_0xf54a('0x21')](function(_0x251cde){if(_0x251cde){_0x271215[_0xf54a('0x33')]=_[_0xf54a('0x30')](db[_0xf54a('0x5e')][_0xf54a('0x2b')]);_0x271215[_0xf54a('0x2f')]=_[_0xf54a('0x30')](_0x572d68['query']);_0x271215[_0xf54a('0x31')]=_[_0xf54a('0x32')](_0x271215[_0xf54a('0x33')],_0x271215[_0xf54a('0x2f')]);_0x267d04[_0xf54a('0x34')]=_[_0xf54a('0x32')](_0x271215[_0xf54a('0x33')],qs[_0xf54a('0x35')](_0x572d68['query'][_0xf54a('0x35')]));_0x267d04[_0xf54a('0x34')]=_0x267d04[_0xf54a('0x34')][_0xf54a('0x36')]?_0x267d04[_0xf54a('0x34')]:_0x271215['model'];if(!_0x572d68[_0xf54a('0x2f')][_0xf54a('0x37')](_0xf54a('0x38'))){_0x267d04[_0xf54a('0x1a')]=qs[_0xf54a('0x1a')](_0x572d68[_0xf54a('0x2f')][_0xf54a('0x1a')]);_0x267d04[_0xf54a('0x18')]=qs['offset'](_0x572d68[_0xf54a('0x2f')][_0xf54a('0x18')]);}_0x267d04['order']=qs[_0xf54a('0x3a')](_0x572d68['query'][_0xf54a('0x3a')]);_0x267d04[_0xf54a('0x3d')]=qs['filters'](_[_0xf54a('0x3b')](_0x572d68[_0xf54a('0x2f')],_0x271215[_0xf54a('0x31')]));_0x267d04[_0xf54a('0x3d')][_0xf54a('0x59')]=_0x251cde['id'];if(_0x572d68['query'][_0xf54a('0x3c')]){_0x267d04['where']=_[_0xf54a('0x3e')](_0x267d04[_0xf54a('0x3d')],{'$or':_[_0xf54a('0x2e')](_0x267d04[_0xf54a('0x34')],function(_0x5deb5c){var _0x1b64a1={};_0x1b64a1[_0x5deb5c]={'$like':'%'+_0x572d68[_0xf54a('0x2f')]['filter']+'%'};return _0x1b64a1;})});}_0x267d04=_[_0xf54a('0x3e')]({},_0x267d04,_0x572d68[_0xf54a('0x40')]);return db[_0xf54a('0x5e')][_0xf54a('0x1b')]({'where':_0x267d04[_0xf54a('0x3d')]})[_0xf54a('0x21')](function(_0x5181e1){_0x122a9b[_0xf54a('0x1b')]=_0x5181e1;if(_0x572d68['query'][_0xf54a('0x41')]){_0x267d04[_0xf54a('0x42')]=[{'all':!![]}];}return db[_0xf54a('0x5e')][_0xf54a('0x43')](_0x267d04);})[_0xf54a('0x21')](function(_0x13df16){_0x122a9b[_0xf54a('0x44')]=_0x13df16;return _0x122a9b;});}})[_0xf54a('0x21')](respondWithFilteredResult(_0x535e53,_0x267d04))['catch'](handleError(_0x535e53,null));};exports[_0xf54a('0x5f')]=function(_0x2a3e82,_0x4e9ddc,_0x3915f0){var _0x8a5887={};var _0x3f2559={};var _0x42c8bf;var _0xd5c4d6;return db['Campaign'][_0xf54a('0x58')]({'where':{'id':_0x2a3e82[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0x4e9ddc,null))['then'](function(_0x16db86){if(_0x16db86){_0x42c8bf=_0x16db86;_0x3f2559['model']=_[_0xf54a('0x30')](db[_0xf54a('0x60')][_0xf54a('0x2b')]);_0x3f2559[_0xf54a('0x2f')]=_[_0xf54a('0x30')](_0x2a3e82[_0xf54a('0x2f')]);_0x3f2559[_0xf54a('0x31')]=_[_0xf54a('0x32')](_0x3f2559[_0xf54a('0x33')],_0x3f2559[_0xf54a('0x2f')]);_0x8a5887[_0xf54a('0x34')]=_[_0xf54a('0x32')](_0x3f2559[_0xf54a('0x33')],qs[_0xf54a('0x35')](_0x2a3e82['query'][_0xf54a('0x35')]));_0x8a5887[_0xf54a('0x34')]=_0x8a5887['attributes']['length']?_0x8a5887['attributes']:_0x3f2559['model'];_0x8a5887[_0xf54a('0x39')]=qs[_0xf54a('0x3a')](_0x2a3e82[_0xf54a('0x2f')]['sort']);_0x8a5887[_0xf54a('0x3d')]=qs['filters'](_[_0xf54a('0x3b')](_0x2a3e82[_0xf54a('0x2f')],_0x3f2559[_0xf54a('0x31')]));if(_0x2a3e82[_0xf54a('0x2f')]['filter']){_0x8a5887['where']=_['merge'](_0x8a5887[_0xf54a('0x3d')],{'$or':_[_0xf54a('0x2e')](_0x8a5887[_0xf54a('0x34')],function(_0x3d76c9){var _0x3fb893={};_0x3fb893[_0x3d76c9]={'$like':'%'+_0x2a3e82[_0xf54a('0x2f')][_0xf54a('0x3c')]+'%'};return _0x3fb893;})});}_0x8a5887=_['merge']({},_0x8a5887,_0x2a3e82[_0xf54a('0x40')]);return _0x42c8bf['getLists'](_0x8a5887);}})['then'](function(_0x26920f){if(_0x26920f){_0xd5c4d6=_0x26920f[_0xf54a('0x36')];if(!_0x2a3e82[_0xf54a('0x2f')][_0xf54a('0x37')](_0xf54a('0x38'))){_0x8a5887['limit']=qs[_0xf54a('0x1a')](_0x2a3e82[_0xf54a('0x2f')][_0xf54a('0x1a')]);_0x8a5887[_0xf54a('0x18')]=qs[_0xf54a('0x18')](_0x2a3e82[_0xf54a('0x2f')][_0xf54a('0x18')]);}return _0x42c8bf[_0xf54a('0x5f')](_0x8a5887);}})[_0xf54a('0x21')](function(_0x154d70){if(_0x154d70){return _0x154d70?{'count':_0xd5c4d6,'rows':_0x154d70}:null;}})['then'](respondWithResult(_0x4e9ddc,null))[_0xf54a('0x45')](handleError(_0x4e9ddc,null));};exports[_0xf54a('0x61')]=function(_0x59f41f,_0x2541fa,_0x2eb563){var _0x59308f,_0x1ece2e;return db[_0xf54a('0x2a')][_0xf54a('0x4d')]({'where':{'id':_0x59f41f[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0x2541fa,null))[_0xf54a('0x21')](function(_0x4b50ae){if(_0x4b50ae){_0x1ece2e=_0x4b50ae;return _0x4b50ae[_0xf54a('0x61')](_0x59f41f[_0xf54a('0x49')][_0xf54a('0x62')],_['omit'](_0x59f41f['body'],[_0xf54a('0x62'),'id'])||{});}return null;})[_0xf54a('0x63')](function(_0x70f15a){var _0xe39e94;_0x59308f=_0x70f15a||[];var _0x1433c4=[];if(_0x70f15a){for(var _0x37a5da=0x0;_0x37a5da<_0x70f15a[_0xf54a('0x36')];_0x37a5da+=0x1){var _0x221347=_0x70f15a[_0x37a5da][_0xf54a('0x23')]({'plain':!![]});_0x1ece2e[_0xf54a('0x64')]=_0x59f41f[_0xf54a('0x49')][_0xf54a('0x64')]?_0x59f41f[_0xf54a('0x49')]['dialCheckDuplicateType']:_0x1ece2e['dialCheckDuplicateType'];switch(_0x1ece2e[_0xf54a('0x64')]){case _0xf54a('0x65'):_0xe39e94=squel[_0xf54a('0x66')]()[_0xf54a('0x67')]('cm_hopper')['fromQuery']([_0xf54a('0x68'),_0xf54a('0x69'),_0xf54a('0x6a'),_0xf54a('0x6b'),_0xf54a('0x59'),_0xf54a('0x53'),'updatedAt'],squel[_0xf54a('0x6c')]()[_0xf54a('0x6d')](_0xf54a('0x68'),_0xf54a('0x68'))[_0xf54a('0x6d')]('NOW()',_0xf54a('0x69'))[_0xf54a('0x6d')]('id',_0xf54a('0x6a'))[_0xf54a('0x6d')](_0x221347[_0xf54a('0x6e')]['toString'](),_0xf54a('0x6b'))['field'](_0x59f41f[_0xf54a('0x47')]['id'][_0xf54a('0x6f')](),'CampaignId')['field'](_0xf54a('0x70'),_0xf54a('0x53'))['field'](_0xf54a('0x70'),_0xf54a('0x54'))[_0xf54a('0x71')](_0xf54a('0x72'))[_0xf54a('0x3d')](_0xf54a('0x73'))[_0xf54a('0x3d')]('ListId\x20=\x20?',_0x221347[_0xf54a('0x6e')][_0xf54a('0x6f')]())[_0xf54a('0x3d')](_0xf54a('0x74'))['where'](_0xf54a('0x75'),squel[_0xf54a('0x6c')]()[_0xf54a('0x6d')](_0xf54a('0x76'))['from'](_0xf54a('0x77'))['where']('CampaignId\x20=\x20?',_0x59f41f[_0xf54a('0x47')]['id']['toString']()))[_0xf54a('0x3d')](_0xf54a('0x75'),squel[_0xf54a('0x6c')]()[_0xf54a('0x6d')](_0xf54a('0x78'))[_0xf54a('0x71')](_0xf54a('0x79'))[_0xf54a('0x3d')](_0xf54a('0x7a'),_0x59f41f[_0xf54a('0x47')]['id']['toString']())))['toString']();break;case'onlyIfOpen':_0xe39e94=squel[_0xf54a('0x66')]()['into']('cm_hopper')[_0xf54a('0x7b')](['phone',_0xf54a('0x69'),'ContactId',_0xf54a('0x6b'),_0xf54a('0x59'),_0xf54a('0x53'),'updatedAt'],squel['select']()['field']('phone',_0xf54a('0x68'))[_0xf54a('0x6d')](_0xf54a('0x70'),_0xf54a('0x69'))['field']('id',_0xf54a('0x6a'))[_0xf54a('0x6d')](_0x221347[_0xf54a('0x6e')][_0xf54a('0x6f')](),_0xf54a('0x6b'))[_0xf54a('0x6d')](_0x59f41f[_0xf54a('0x47')]['id'][_0xf54a('0x6f')](),_0xf54a('0x59'))[_0xf54a('0x6d')](_0xf54a('0x70'),_0xf54a('0x53'))[_0xf54a('0x6d')](_0xf54a('0x70'),'updatedAt')[_0xf54a('0x71')](_0xf54a('0x72'))[_0xf54a('0x3d')](_0xf54a('0x73'))[_0xf54a('0x3d')](_0xf54a('0x7c'),_0x221347[_0xf54a('0x6e')][_0xf54a('0x6f')]())[_0xf54a('0x3d')](_0xf54a('0x74'))[_0xf54a('0x3d')](_0xf54a('0x75'),squel['select']()['field'](_0xf54a('0x78'))['from']('cm_hopper')[_0xf54a('0x3d')](_0xf54a('0x7a'),_0x59f41f[_0xf54a('0x47')]['id'][_0xf54a('0x6f')]())))['toString']();break;default:_0xe39e94=squel[_0xf54a('0x66')]()[_0xf54a('0x67')]('cm_hopper')['fromQuery']([_0xf54a('0x68'),'scheduledAt',_0xf54a('0x6a'),'ListId',_0xf54a('0x59'),_0xf54a('0x53'),_0xf54a('0x54')],squel[_0xf54a('0x6c')]()[_0xf54a('0x6d')]('phone',_0xf54a('0x68'))['field'](_0xf54a('0x70'),_0xf54a('0x69'))[_0xf54a('0x6d')]('id',_0xf54a('0x6a'))[_0xf54a('0x6d')](_0x221347[_0xf54a('0x6e')][_0xf54a('0x6f')](),_0xf54a('0x6b'))[_0xf54a('0x6d')](_0x59f41f['params']['id']['toString'](),'CampaignId')[_0xf54a('0x6d')](_0xf54a('0x70'),_0xf54a('0x53'))[_0xf54a('0x6d')](_0xf54a('0x70'),'updatedAt')['from'](_0xf54a('0x72'))[_0xf54a('0x3d')]('deletedAt\x20IS\x20NULL')['where']('ListId\x20=\x20?',_0x221347[_0xf54a('0x6e')][_0xf54a('0x6f')]())[_0xf54a('0x3d')]('phone\x20IS\x20NOT\x20NULL'))['toString']();}_0x1433c4[_0xf54a('0x7d')](db[_0xf54a('0x7e')][_0xf54a('0x2f')](_0xe39e94));}return BPromise[_0xf54a('0x7f')](_0x1433c4);}})['then'](function(){return _0x59308f;})[_0xf54a('0x21')](respondWithResult(_0x2541fa,null))['catch'](handleError(_0x2541fa,null));};exports[_0xf54a('0x80')]=function(_0xfcff58,_0xcf3af4,_0x35f3a1){return db[_0xf54a('0x2a')][_0xf54a('0x4d')]({'where':{'id':_0xfcff58[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0xcf3af4,null))['then'](function(_0x3099bb){if(_0x3099bb){return _0x3099bb['removeLists'](_0xfcff58[_0xf54a('0x2f')][_0xf54a('0x62')]);}})['then'](function(_0x53f479){if(_0x53f479){return db[_0xf54a('0x5a')][_0xf54a('0x22')]({'where':{'ListId':_0xfcff58[_0xf54a('0x2f')][_0xf54a('0x62')],'CampaignId':_0xfcff58[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](function(){return _0x53f479;});}})['then'](respondWithStatusCode(_0xcf3af4,null))[_0xf54a('0x45')](handleError(_0xcf3af4,null));};exports[_0xf54a('0x81')]=function(_0x599f59,_0x580c69,_0x3e8f06){var _0x1157ea={};var _0x17c520={};var _0x89ff65;var _0x857bdc;return db[_0xf54a('0x2a')]['findOne']({'where':{'id':_0x599f59['params']['id']}})['then'](handleEntityNotFound(_0x580c69,null))[_0xf54a('0x21')](function(_0x3d237c){if(_0x3d237c){_0x89ff65=_0x3d237c;_0x17c520[_0xf54a('0x33')]=_[_0xf54a('0x30')](db['CmList'][_0xf54a('0x2b')]);_0x17c520['query']=_['keys'](_0x599f59[_0xf54a('0x2f')]);_0x17c520[_0xf54a('0x31')]=_[_0xf54a('0x32')](_0x17c520[_0xf54a('0x33')],_0x17c520['query']);_0x1157ea[_0xf54a('0x34')]=_[_0xf54a('0x32')](_0x17c520[_0xf54a('0x33')],qs[_0xf54a('0x35')](_0x599f59['query'][_0xf54a('0x35')]));_0x1157ea[_0xf54a('0x34')]=_0x1157ea['attributes'][_0xf54a('0x36')]?_0x1157ea[_0xf54a('0x34')]:_0x17c520['model'];_0x1157ea[_0xf54a('0x39')]=qs[_0xf54a('0x3a')](_0x599f59[_0xf54a('0x2f')][_0xf54a('0x3a')]);_0x1157ea['where']=qs[_0xf54a('0x31')](_[_0xf54a('0x3b')](_0x599f59[_0xf54a('0x2f')],_0x17c520[_0xf54a('0x31')]));if(_0x599f59[_0xf54a('0x2f')][_0xf54a('0x3c')]){_0x1157ea[_0xf54a('0x3d')]=_[_0xf54a('0x3e')](_0x1157ea[_0xf54a('0x3d')],{'$or':_['map'](_0x1157ea['attributes'],function(_0x13d023){var _0x42c5fa={};_0x42c5fa[_0x13d023]={'$like':'%'+_0x599f59[_0xf54a('0x2f')][_0xf54a('0x3c')]+'%'};return _0x42c5fa;})});}_0x1157ea=_[_0xf54a('0x3e')]({},_0x1157ea,_0x599f59[_0xf54a('0x40')]);return _0x89ff65['getBlackLists'](_0x1157ea);}})[_0xf54a('0x21')](function(_0x5992ea){if(_0x5992ea){_0x857bdc=_0x5992ea[_0xf54a('0x36')];if(!_0x599f59['query'][_0xf54a('0x37')]('nolimit')){_0x1157ea[_0xf54a('0x1a')]=qs[_0xf54a('0x1a')](_0x599f59[_0xf54a('0x2f')][_0xf54a('0x1a')]);_0x1157ea['offset']=qs[_0xf54a('0x18')](_0x599f59['query'][_0xf54a('0x18')]);}return _0x89ff65[_0xf54a('0x81')](_0x1157ea);}})[_0xf54a('0x21')](function(_0x72b2d3){if(_0x72b2d3){return _0x72b2d3?{'count':_0x857bdc,'rows':_0x72b2d3}:null;}})[_0xf54a('0x21')](respondWithResult(_0x580c69,null))[_0xf54a('0x45')](handleError(_0x580c69,null));};exports[_0xf54a('0x82')]=function(_0x13c205,_0x4fdfb5,_0x32715f){var _0x9bb1e8,_0x18bb4d;return db[_0xf54a('0x2a')]['find']({'where':{'id':_0x13c205[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0x4fdfb5,null))['then'](function(_0x25057e){if(_0x25057e){_0x18bb4d=_0x25057e;return _0x25057e[_0xf54a('0x82')](_0x13c205[_0xf54a('0x49')][_0xf54a('0x62')],_[_0xf54a('0x52')](_0x13c205[_0xf54a('0x49')],[_0xf54a('0x62'),'id'])||{});}return null;})['spread'](function(_0x503122){var _0x338295;_0x9bb1e8=_0x503122||[];var _0x480983=[];if(_0x503122){for(var _0x845359=0x0;_0x845359<_0x503122['length'];_0x845359+=0x1){var _0x552b40=_0x503122[_0x845359]['get']({'plain':!![]});_0x338295=squel[_0xf54a('0x66')]()['into'](_0xf54a('0x83'))[_0xf54a('0x7b')]([_0xf54a('0x68'),_0xf54a('0x6a'),'ListId',_0xf54a('0x59'),'createdAt','updatedAt'],squel['select']()['field'](_0xf54a('0x68'),_0xf54a('0x68'))[_0xf54a('0x6d')]('id',_0xf54a('0x6a'))[_0xf54a('0x6d')](_0x552b40[_0xf54a('0x6e')][_0xf54a('0x6f')](),_0xf54a('0x6b'))['field'](_0x13c205[_0xf54a('0x47')]['id'][_0xf54a('0x6f')](),_0xf54a('0x59'))[_0xf54a('0x6d')]('NOW()',_0xf54a('0x53'))[_0xf54a('0x6d')]('NOW()','updatedAt')[_0xf54a('0x71')](_0xf54a('0x72'))['where'](_0xf54a('0x73'))[_0xf54a('0x3d')](_0xf54a('0x7c'),_0x552b40['CmListId'][_0xf54a('0x6f')]())[_0xf54a('0x3d')](_0xf54a('0x74')))[_0xf54a('0x6f')]();_0x480983[_0xf54a('0x7d')](db[_0xf54a('0x7e')][_0xf54a('0x2f')](_0x338295));}return BPromise[_0xf54a('0x7f')](_0x480983);}})[_0xf54a('0x21')](function(){return _0x9bb1e8;})[_0xf54a('0x21')](respondWithResult(_0x4fdfb5,null))[_0xf54a('0x45')](handleError(_0x4fdfb5,null));};exports['removeBlackLists']=function(_0x59185d,_0x324086,_0x2f5706){return db[_0xf54a('0x2a')][_0xf54a('0x4d')]({'where':{'id':_0x59185d[_0xf54a('0x47')]['id']}})[_0xf54a('0x21')](handleEntityNotFound(_0x324086,null))[_0xf54a('0x21')](function(_0x26fc75){if(_0x26fc75){return _0x26fc75[_0xf54a('0x84')](_0x59185d['query'][_0xf54a('0x62')]);}})[_0xf54a('0x21')](function(_0x5adc8c){if(_0x5adc8c){return db[_0xf54a('0x5e')][_0xf54a('0x22')]({'where':{'ListId':_0x59185d[_0xf54a('0x2f')][_0xf54a('0x62')],'CampaignId':_0x59185d[_0xf54a('0x47')]['id']}})['then'](function(){return _0x5adc8c;});}})[_0xf54a('0x21')](respondWithStatusCode(_0x324086,null))['catch'](handleError(_0x324086,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','define','Campaign','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./campaign.attributes'];(function(_0x2adbeb,_0x5581be){var _0x5e18a6=function(_0x84e42b){while(--_0x84e42b){_0x2adbeb['push'](_0x2adbeb['shift']());}};_0x5e18a6(++_0x5581be);}(_0x9957,0x93));var _0x7995=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x9957[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'campaigns','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a54=['../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./campaign.attributes','exports','Campaign','campaigns','lodash','util'];(function(_0x101951,_0x42317d){var _0x114fd2=function(_0x526e20){while(--_0x526e20){_0x101951['push'](_0x101951['shift']());}};_0x114fd2(++_0x42317d);}(_0x7a54,0x106));var _0x47a5=function(_0x1196ec,_0x227fe7){_0x1196ec=_0x1196ec-0x0;var _0x150990=_0x7a54[_0x1196ec];return _0x150990;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x303a=['lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','Campaign,\x20%s,\x20%s,\x20%s','stringify','error','code','Campaign,\x20%s,\x20%s','message','result','catch','GetCampaign','findAll','options','where','attributes','map','include','model'];(function(_0x2461c9,_0x186167){var _0x4d6d48=function(_0x1c837b){while(--_0x1c837b){_0x2461c9['push'](_0x2461c9['shift']());}};_0x4d6d48(++_0x186167);}(_0x303a,0x1a0));var _0xa303=function(_0xb6e257,_0x445cd7){_0xb6e257=_0xb6e257-0x0;var _0x33b778=_0x303a[_0xb6e257];return _0x33b778;};'use strict';var _=require(_0xa303('0x0'));var util=require('util');var moment=require(_0xa303('0x1'));var BPromise=require(_0xa303('0x2'));var rs=require(_0xa303('0x3'));var fs=require('fs');var Redis=require(_0xa303('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xa303('0x5'));var logger=require(_0xa303('0x6'))(_0xa303('0x7'));var config=require(_0xa303('0x8'));var jayson=require(_0xa303('0x9'));var client=jayson[_0xa303('0xa')][_0xa303('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3f61f1,_0x69b173,_0x5d95fd){return new BPromise(function(_0x51e1ee,_0x488c85){return client[_0xa303('0xc')](_0x3f61f1,_0x5d95fd)[_0xa303('0xd')](function(_0x5e2e48){logger[_0xa303('0xe')]('Campaign,\x20%s,\x20%s',_0x69b173,_0xa303('0xf'));logger['debug'](_0xa303('0x10'),_0x69b173,_0xa303('0xf'),JSON[_0xa303('0x11')](_0x5e2e48));if(_0x5e2e48[_0xa303('0x12')]){if(_0x5e2e48['error'][_0xa303('0x13')]===0x1f4){logger['error'](_0xa303('0x14'),_0x69b173,_0x5e2e48[_0xa303('0x12')][_0xa303('0x15')]);return _0x488c85(_0x5e2e48['error'][_0xa303('0x15')]);}logger[_0xa303('0x12')](_0xa303('0x14'),_0x69b173,_0x5e2e48[_0xa303('0x12')][_0xa303('0x15')]);return _0x51e1ee(_0x5e2e48[_0xa303('0x12')][_0xa303('0x15')]);}else{logger[_0xa303('0xe')]('Campaign,\x20%s,\x20%s',_0x69b173,_0xa303('0xf'));_0x51e1ee(_0x5e2e48[_0xa303('0x16')][_0xa303('0x15')]);}})[_0xa303('0x17')](function(_0x3e2813){logger[_0xa303('0x12')]('Campaign,\x20%s,\x20%s',_0x69b173,_0x3e2813);_0x488c85(_0x3e2813);});});}exports[_0xa303('0x18')]=function(_0x54ca49){var _0x1d2003=this;return new Promise(function(_0x4cf535,_0x4462be){return db['Campaign'][_0xa303('0x19')]({'raw':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')][_0xa303('0x1b')]||null:null,'attributes':_0x54ca49['options']?_0x54ca49[_0xa303('0x1a')][_0xa303('0x1c')]||null:null,'limit':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')]['limit']||null:null,'include':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')]['include']?_[_0xa303('0x1d')](_0x54ca49[_0xa303('0x1a')][_0xa303('0x1e')],function(_0x122d1e){return{'model':db[_0x122d1e[_0xa303('0x1f')]],'as':_0x122d1e['as'],'attributes':_0x122d1e[_0xa303('0x1c')],'include':_0x122d1e[_0xa303('0x1e')]?_[_0xa303('0x1d')](_0x122d1e[_0xa303('0x1e')],function(_0x57d584){return{'model':db[_0x57d584['model']],'as':_0x57d584['as'],'attributes':_0x57d584['attributes'],'include':_0x57d584['include']?_['map'](_0x57d584[_0xa303('0x1e')],function(_0xc1fd3a){return{'model':db[_0xc1fd3a[_0xa303('0x1f')]],'as':_0xc1fd3a['as'],'attributes':_0xc1fd3a[_0xa303('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xa303('0xd')](function(_0x48e79f){logger[_0xa303('0xe')](_0xa303('0x18'),_0x54ca49);logger['debug'](_0xa303('0x18'),_0x54ca49,JSON[_0xa303('0x11')](_0x48e79f));_0x4cf535(_0x48e79f);})[_0xa303('0x17')](function(_0x32dcfb){logger[_0xa303('0x12')](_0xa303('0x18'),_0x32dcfb[_0xa303('0x15')],_0x54ca49);_0x4462be(_0x1d2003[_0xa303('0x12')](0x1f4,_0x32dcfb[_0xa303('0x15')]));});});};
\ No newline at end of file
+var _0xb49a=['code','Campaign,\x20%s,\x20%s','message','result','catch','GetCampaign','options','attributes','include','map','model','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','debug','Campaign,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x1f9f37,_0x18776e){var _0x21c080=function(_0x4acb93){while(--_0x4acb93){_0x1f9f37['push'](_0x1f9f37['shift']());}};_0x21c080(++_0x18776e);}(_0xb49a,0xfb));var _0xab49=function(_0x1bee7a,_0xacfa2a){_0x1bee7a=_0x1bee7a-0x0;var _0x5d69d7=_0xb49a[_0x1bee7a];return _0x5d69d7;};'use strict';var _=require(_0xab49('0x0'));var util=require(_0xab49('0x1'));var moment=require(_0xab49('0x2'));var BPromise=require(_0xab49('0x3'));var rs=require(_0xab49('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xab49('0x5'))['db'];var utils=require(_0xab49('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xab49('0x7'));var jayson=require(_0xab49('0x8'));var client=jayson[_0xab49('0x9')][_0xab49('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x57ea72,_0x26a98a,_0xd86a5){return new BPromise(function(_0x4d4d00,_0x15f259){return client[_0xab49('0xb')](_0x57ea72,_0xd86a5)[_0xab49('0xc')](function(_0x79f764){logger[_0xab49('0xd')]('Campaign,\x20%s,\x20%s',_0x26a98a,'request\x20sent');logger[_0xab49('0xe')](_0xab49('0xf'),_0x26a98a,_0xab49('0x10'),JSON[_0xab49('0x11')](_0x79f764));if(_0x79f764[_0xab49('0x12')]){if(_0x79f764['error'][_0xab49('0x13')]===0x1f4){logger[_0xab49('0x12')](_0xab49('0x14'),_0x26a98a,_0x79f764[_0xab49('0x12')][_0xab49('0x15')]);return _0x15f259(_0x79f764[_0xab49('0x12')][_0xab49('0x15')]);}logger[_0xab49('0x12')](_0xab49('0x14'),_0x26a98a,_0x79f764[_0xab49('0x12')][_0xab49('0x15')]);return _0x4d4d00(_0x79f764['error'][_0xab49('0x15')]);}else{logger[_0xab49('0xd')](_0xab49('0x14'),_0x26a98a,_0xab49('0x10'));_0x4d4d00(_0x79f764[_0xab49('0x16')]['message']);}})[_0xab49('0x17')](function(_0x2cbcff){logger[_0xab49('0x12')](_0xab49('0x14'),_0x26a98a,_0x2cbcff);_0x15f259(_0x2cbcff);});});}exports[_0xab49('0x18')]=function(_0x47f977){var _0x167a2a=this;return new Promise(function(_0x24cb8f,_0x28449b){return db['Campaign']['findAll']({'raw':_0x47f977[_0xab49('0x19')]?_0x47f977[_0xab49('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x47f977[_0xab49('0x19')]?_0x47f977[_0xab49('0x19')]['where']||null:null,'attributes':_0x47f977[_0xab49('0x19')]?_0x47f977['options'][_0xab49('0x1a')]||null:null,'limit':_0x47f977[_0xab49('0x19')]?_0x47f977['options']['limit']||null:null,'include':_0x47f977[_0xab49('0x19')]?_0x47f977['options'][_0xab49('0x1b')]?_['map'](_0x47f977[_0xab49('0x19')][_0xab49('0x1b')],function(_0x2ba18a){return{'model':db[_0x2ba18a['model']],'as':_0x2ba18a['as'],'attributes':_0x2ba18a[_0xab49('0x1a')],'include':_0x2ba18a['include']?_[_0xab49('0x1c')](_0x2ba18a[_0xab49('0x1b')],function(_0x5c3d71){return{'model':db[_0x5c3d71[_0xab49('0x1d')]],'as':_0x5c3d71['as'],'attributes':_0x5c3d71[_0xab49('0x1a')],'include':_0x5c3d71['include']?_['map'](_0x5c3d71[_0xab49('0x1b')],function(_0x2e0e37){return{'model':db[_0x2e0e37[_0xab49('0x1d')]],'as':_0x2e0e37['as'],'attributes':_0x2e0e37['attributes']};}):[]};}):[]};}):[]:[]})[_0xab49('0xc')](function(_0x237273){logger['info'](_0xab49('0x18'),_0x47f977);logger[_0xab49('0xe')](_0xab49('0x18'),_0x47f977,JSON['stringify'](_0x237273));_0x24cb8f(_0x237273);})[_0xab49('0x17')](function(_0x550f06){logger[_0xab49('0x12')]('GetCampaign',_0x550f06[_0xab49('0x15')],_0x47f977);_0x28449b(_0x167a2a['error'](0x1f4,_0x550f06[_0xab49('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e12=['/:id/blacklists','getBlackLists','create','post','/:id/clone','clone','addLists','addBlackLists','update','delete','destroy','removeLists','removeBlackLists','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./campaign.controller','isAuthenticated','index','get','/:id','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','getHopperBlacks','/:id/lists','getLists'];(function(_0x369151,_0x179f72){var _0x4292d5=function(_0x330422){while(--_0x330422){_0x369151['push'](_0x369151['shift']());}};_0x4292d5(++_0x179f72);}(_0x6e12,0xf2));var _0x26e1=function(_0x26588e,_0x139d9d){_0x26588e=_0x26588e-0x0;var _0x5886ac=_0x6e12[_0x26588e];return _0x5886ac;};'use strict';var multer=require('multer');var util=require(_0x26e1('0x0'));var path=require(_0x26e1('0x1'));var timeout=require(_0x26e1('0x2'));var express=require(_0x26e1('0x3'));var router=express[_0x26e1('0x4')]();var fs_extra=require(_0x26e1('0x5'));var auth=require(_0x26e1('0x6'));var interaction=require(_0x26e1('0x7'));var config=require(_0x26e1('0x8'));var controller=require(_0x26e1('0x9'));router['get']('/',auth[_0x26e1('0xa')](),controller[_0x26e1('0xb')]);router[_0x26e1('0xc')](_0x26e1('0xd'),auth[_0x26e1('0xa')](),controller[_0x26e1('0xe')]);router['get'](_0x26e1('0xf'),auth['isAuthenticated'](),controller[_0x26e1('0x10')]);router['get'](_0x26e1('0x11'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x12')]);router[_0x26e1('0xc')](_0x26e1('0x13'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x14')]);router['get']('/:id/hopper_black',auth['isAuthenticated'](),controller[_0x26e1('0x15')]);router[_0x26e1('0xc')](_0x26e1('0x16'),auth['isAuthenticated'](),controller[_0x26e1('0x17')]);router[_0x26e1('0xc')](_0x26e1('0x18'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x19')]);router['post']('/',auth[_0x26e1('0xa')](),controller[_0x26e1('0x1a')]);router[_0x26e1('0x1b')](_0x26e1('0x1c'),auth['isAuthenticated'](),controller[_0x26e1('0x1d')]);router[_0x26e1('0x1b')](_0x26e1('0x16'),auth['isAuthenticated'](),controller[_0x26e1('0x1e')]);router[_0x26e1('0x1b')](_0x26e1('0x18'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x1f')]);router['put'](_0x26e1('0xd'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x20')]);router[_0x26e1('0x21')](_0x26e1('0xd'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x22')]);router[_0x26e1('0x21')](_0x26e1('0x16'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x23')]);router[_0x26e1('0x21')]('/:id/blacklists',auth['isAuthenticated'](),controller[_0x26e1('0x24')]);module[_0x26e1('0x25')]=router;
\ No newline at end of file
+var _0x60a1=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./campaign.controller','get','isAuthenticated','index','show','getHoppers','/:id/hopper_histories','getHopperBlacks','getLists','/:id/blacklists','getBlackLists','create','post','/:id/clone','clone','/:id/lists','addBlackLists','put','delete','/:id','destroy','removeBlackLists','exports','multer'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_0x60a1,0x9f));var _0x160a=function(_0x12acbc,_0x2ce996){_0x12acbc=_0x12acbc-0x0;var _0x406495=_0x60a1[_0x12acbc];return _0x406495;};'use strict';var multer=require(_0x160a('0x0'));var util=require(_0x160a('0x1'));var path=require(_0x160a('0x2'));var timeout=require(_0x160a('0x3'));var express=require(_0x160a('0x4'));var router=express[_0x160a('0x5')]();var fs_extra=require(_0x160a('0x6'));var auth=require(_0x160a('0x7'));var interaction=require(_0x160a('0x8'));var config=require('../../config/environment');var controller=require(_0x160a('0x9'));router[_0x160a('0xa')]('/',auth[_0x160a('0xb')](),controller[_0x160a('0xc')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0x160a('0xd')]);router[_0x160a('0xa')]('/:id/hoppers',auth[_0x160a('0xb')](),controller[_0x160a('0xe')]);router[_0x160a('0xa')](_0x160a('0xf'),auth[_0x160a('0xb')](),controller['getHopperHistories']);router[_0x160a('0xa')]('/:id/hopper_finals',auth[_0x160a('0xb')](),controller['getHopperFinals']);router[_0x160a('0xa')]('/:id/hopper_black',auth['isAuthenticated'](),controller[_0x160a('0x10')]);router[_0x160a('0xa')]('/:id/lists',auth[_0x160a('0xb')](),controller[_0x160a('0x11')]);router['get'](_0x160a('0x12'),auth[_0x160a('0xb')](),controller[_0x160a('0x13')]);router['post']('/',auth[_0x160a('0xb')](),controller[_0x160a('0x14')]);router[_0x160a('0x15')](_0x160a('0x16'),auth[_0x160a('0xb')](),controller[_0x160a('0x17')]);router[_0x160a('0x15')](_0x160a('0x18'),auth[_0x160a('0xb')](),controller['addLists']);router[_0x160a('0x15')](_0x160a('0x12'),auth[_0x160a('0xb')](),controller[_0x160a('0x19')]);router[_0x160a('0x1a')]('/:id',auth[_0x160a('0xb')](),controller['update']);router[_0x160a('0x1b')](_0x160a('0x1c'),auth[_0x160a('0xb')](),controller[_0x160a('0x1d')]);router[_0x160a('0x1b')]('/:id/lists',auth[_0x160a('0xb')](),controller['removeLists']);router[_0x160a('0x1b')](_0x160a('0x12'),auth[_0x160a('0xb')](),controller[_0x160a('0x1e')]);module[_0x160a('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e5b=['STRING','TEXT','key','sequelize','exports'];(function(_0xba382f,_0x103ad2){var _0x139b7b=function(_0x537a1b){while(--_0x537a1b){_0xba382f['push'](_0xba382f['shift']());}};_0x139b7b(++_0x103ad2);}(_0x1e5b,0x17a));var _0xb1e5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1e5b[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xb1e5('0x0'));module[_0xb1e5('0x1')]={'key':{'type':Sequelize[_0xb1e5('0x2')],'allowNull':![]},'value':{'type':Sequelize[_0xb1e5('0x3')],'allowNull':![]},'description':{'type':Sequelize[_0xb1e5('0x2')]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this['getDataValue'](_0xb1e5('0x4'));}}};
\ No newline at end of file
+var _0xfacd=['VIRTUAL','getDataValue','key','sequelize','STRING'];(function(_0xc985a6,_0x697817){var _0x3e0c34=function(_0x42b0b6){while(--_0x42b0b6){_0xc985a6['push'](_0xc985a6['shift']());}};_0x3e0c34(++_0x697817);}(_0xfacd,0x157));var _0xdfac=function(_0x2b53f9,_0x4c78be){_0x2b53f9=_0x2b53f9-0x0;var _0x8deeb9=_0xfacd[_0x2b53f9];return _0x8deeb9;};'use strict';var Sequelize=require(_0xdfac('0x0'));module['exports']={'key':{'type':Sequelize[_0xdfac('0x1')],'allowNull':![]},'value':{'type':Sequelize['TEXT'],'allowNull':![]},'description':{'type':Sequelize[_0xdfac('0x1')]},'name':{'type':Sequelize[_0xdfac('0x2')],'get':function(){return this[_0xdfac('0x3')](_0xdfac('0x4'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc560=['model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','rows','catch','show','params','include','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','CannedAnswers','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','end','error','name','map','CannedAnswer','rawAttributes','type','key','query','keys','filters','intersection'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xc560,0x120));var _0x0c56=function(_0x354300,_0x2d7e34){_0x354300=_0x354300-0x0;var _0x2198f0=_0xc560[_0x354300];return _0x2198f0;};'use strict';var emlformat=require(_0x0c56('0x0'));var rimraf=require(_0x0c56('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0c56('0x2'));var moment=require(_0x0c56('0x3'));var BPromise=require(_0x0c56('0x4'));var Mustache=require(_0x0c56('0x5'));var util=require(_0x0c56('0x6'));var path=require(_0x0c56('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0c56('0x8'));var fs=require('fs');var fs_extra=require(_0x0c56('0x9'));var _=require(_0x0c56('0xa'));var squel=require('squel');var crypto=require(_0x0c56('0xb'));var jsforce=require(_0x0c56('0xc'));var deskjs=require(_0x0c56('0xd'));var toCsv=require(_0x0c56('0xe'));var querystring=require(_0x0c56('0xf'));var Papa=require('papaparse');var Redis=require(_0x0c56('0x10'));var authService=require(_0x0c56('0x11'));var qs=require(_0x0c56('0x12'));var as=require(_0x0c56('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0c56('0x14'))(_0x0c56('0x15'));var utils=require(_0x0c56('0x16'));var config=require(_0x0c56('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5225ca,_0x6e9726){_0x6e9726=_0x6e9726||0xcc;return function(_0x4f32a4){if(_0x4f32a4){return _0x5225ca[_0x0c56('0x18')](_0x6e9726);}return _0x5225ca[_0x0c56('0x19')](_0x6e9726)['end']();};}function respondWithResult(_0x1a65b7,_0x2cddf5){_0x2cddf5=_0x2cddf5||0xc8;return function(_0x449a4d){if(_0x449a4d){return _0x1a65b7[_0x0c56('0x19')](_0x2cddf5)[_0x0c56('0x1a')](_0x449a4d);}};}function respondWithFilteredResult(_0x33caeb,_0x384a60){return function(_0x9e92e9){if(_0x9e92e9){var _0x5c5e69=typeof _0x384a60[_0x0c56('0x1b')]===_0x0c56('0x1c')&&typeof _0x384a60[_0x0c56('0x1d')]===_0x0c56('0x1c');var _0x2d7847=_0x9e92e9[_0x0c56('0x1e')];var _0x595ec2=_0x5c5e69?0x0:_0x384a60['offset'];var _0x4526e2=_0x5c5e69?_0x9e92e9[_0x0c56('0x1e')]:_0x384a60[_0x0c56('0x1b')]+_0x384a60[_0x0c56('0x1d')];var _0x186cfe;if(_0x4526e2>=_0x2d7847){_0x4526e2=_0x2d7847;_0x186cfe=0xc8;}else{_0x186cfe=0xce;}_0x33caeb['status'](_0x186cfe);return _0x33caeb[_0x0c56('0x1f')](_0x0c56('0x20'),_0x595ec2+'-'+_0x4526e2+'/'+_0x2d7847)[_0x0c56('0x1a')](_0x9e92e9);}return null;};}function patchUpdates(_0x40c8b5){return function(_0x272b4d){try{jsonpatch[_0x0c56('0x21')](_0x272b4d,_0x40c8b5,!![]);}catch(_0x6bf06d){return BPromise[_0x0c56('0x22')](_0x6bf06d);}return _0x272b4d[_0x0c56('0x23')]();};}function saveUpdates(_0x1ea003,_0x28709e){return function(_0x4fd573){if(_0x4fd573){return _0x4fd573[_0x0c56('0x24')](_0x1ea003)[_0x0c56('0x25')](function(_0x44a0c5){return _0x44a0c5;});}return null;};}function removeEntity(_0x5eeb1b,_0x4a2105){return function(_0x1760c3){if(_0x1760c3){return _0x1760c3[_0x0c56('0x26')]()[_0x0c56('0x25')](function(){var _0x5891a0=_0x1760c3['get']({'plain':!![]});var _0x20ae33='CannedAnswers';return db[_0x0c56('0x27')]['destroy']({'where':{'type':_0x20ae33,'resourceId':_0x5891a0['id']}})[_0x0c56('0x25')](function(){return _0x1760c3;});})[_0x0c56('0x25')](function(){_0x5eeb1b['status'](0xcc)[_0x0c56('0x28')]();});}};}function handleEntityNotFound(_0x28f19d,_0xf0470f){return function(_0xf6ed66){if(!_0xf6ed66){_0x28f19d['sendStatus'](0x194);}return _0xf6ed66;};}function handleError(_0x3260fd,_0x3dc73a){_0x3dc73a=_0x3dc73a||0x1f4;return function(_0x3afc24){logger[_0x0c56('0x29')](_0x3afc24['stack']);if(_0x3afc24['name']){delete _0x3afc24[_0x0c56('0x2a')];}_0x3260fd[_0x0c56('0x19')](_0x3dc73a)['send'](_0x3afc24);};}exports['index']=function(_0x229095,_0x3303f4){var _0x3ba113={},_0x332f63={},_0x153fdd={'count':0x0,'rows':[]};var _0x2e64cc=_[_0x0c56('0x2b')](db[_0x0c56('0x2c')][_0x0c56('0x2d')],function(_0x5f1d1c){return{'name':_0x5f1d1c['fieldName'],'type':_0x5f1d1c[_0x0c56('0x2e')][_0x0c56('0x2f')]};});_0x332f63['model']=_[_0x0c56('0x2b')](_0x2e64cc,_0x0c56('0x2a'));_0x332f63[_0x0c56('0x30')]=_[_0x0c56('0x31')](_0x229095[_0x0c56('0x30')]);_0x332f63[_0x0c56('0x32')]=_[_0x0c56('0x33')](_0x332f63[_0x0c56('0x34')],_0x332f63[_0x0c56('0x30')]);_0x3ba113[_0x0c56('0x35')]=_['intersection'](_0x332f63[_0x0c56('0x34')],qs['fields'](_0x229095[_0x0c56('0x30')][_0x0c56('0x36')]));_0x3ba113['attributes']=_0x3ba113[_0x0c56('0x35')][_0x0c56('0x37')]?_0x3ba113[_0x0c56('0x35')]:_0x332f63[_0x0c56('0x34')];if(!_0x229095['query'][_0x0c56('0x38')](_0x0c56('0x39'))){_0x3ba113['limit']=qs[_0x0c56('0x1d')](_0x229095['query']['limit']);_0x3ba113[_0x0c56('0x1b')]=qs['offset'](_0x229095[_0x0c56('0x30')][_0x0c56('0x1b')]);}_0x3ba113[_0x0c56('0x3a')]=qs[_0x0c56('0x3b')](_0x229095[_0x0c56('0x30')][_0x0c56('0x3b')]);_0x3ba113[_0x0c56('0x3c')]=qs['filters'](_[_0x0c56('0x3d')](_0x229095['query'],_0x332f63[_0x0c56('0x32')]),_0x2e64cc);if(_0x229095[_0x0c56('0x30')][_0x0c56('0x3e')]){_0x3ba113[_0x0c56('0x3c')]=_[_0x0c56('0x3f')](_0x3ba113[_0x0c56('0x3c')],{'$or':[{'key':{'$like':'%'+_0x229095[_0x0c56('0x30')]['filter']+'%'}},{'value':{'$like':'%'+_0x229095[_0x0c56('0x30')][_0x0c56('0x3e')]+'%'}}]});}_0x3ba113=_[_0x0c56('0x3f')]({},_0x3ba113,_0x229095[_0x0c56('0x40')]);var _0x2c6253={'where':_0x3ba113[_0x0c56('0x3c')]};return db[_0x0c56('0x2c')][_0x0c56('0x1e')](_0x2c6253)[_0x0c56('0x25')](function(_0x329840){_0x153fdd[_0x0c56('0x1e')]=_0x329840;if(_0x229095['query'][_0x0c56('0x41')]){_0x3ba113['include']=[{'all':!![]}];}return db[_0x0c56('0x2c')]['findAll'](_0x3ba113);})[_0x0c56('0x25')](function(_0x19fc65){_0x153fdd[_0x0c56('0x42')]=_0x19fc65;return _0x153fdd;})[_0x0c56('0x25')](respondWithFilteredResult(_0x3303f4,_0x3ba113))[_0x0c56('0x43')](handleError(_0x3303f4,null));};exports[_0x0c56('0x44')]=function(_0x12d5d1,_0x1c6ec4){var _0x550bda={'raw':!![],'where':{'id':_0x12d5d1[_0x0c56('0x45')]['id']}},_0x2b2c2b={};_0x2b2c2b['model']=_[_0x0c56('0x31')](db[_0x0c56('0x2c')]['rawAttributes']);_0x2b2c2b[_0x0c56('0x30')]=_[_0x0c56('0x31')](_0x12d5d1[_0x0c56('0x30')]);_0x2b2c2b[_0x0c56('0x32')]=_[_0x0c56('0x33')](_0x2b2c2b[_0x0c56('0x34')],_0x2b2c2b['query']);_0x550bda[_0x0c56('0x35')]=_[_0x0c56('0x33')](_0x2b2c2b[_0x0c56('0x34')],qs[_0x0c56('0x36')](_0x12d5d1[_0x0c56('0x30')][_0x0c56('0x36')]));_0x550bda[_0x0c56('0x35')]=_0x550bda['attributes'][_0x0c56('0x37')]?_0x550bda[_0x0c56('0x35')]:_0x2b2c2b[_0x0c56('0x34')];if(_0x12d5d1[_0x0c56('0x30')][_0x0c56('0x41')]){_0x550bda[_0x0c56('0x46')]=[{'all':!![]}];}_0x550bda=_[_0x0c56('0x3f')]({},_0x550bda,_0x12d5d1['options']);return db[_0x0c56('0x2c')][_0x0c56('0x47')](_0x550bda)[_0x0c56('0x25')](handleEntityNotFound(_0x1c6ec4,null))[_0x0c56('0x25')](respondWithResult(_0x1c6ec4,null))[_0x0c56('0x43')](handleError(_0x1c6ec4,null));};exports[_0x0c56('0x24')]=function(_0x596bd3,_0x1cc9d8){if(_0x596bd3[_0x0c56('0x48')]['id']){delete _0x596bd3[_0x0c56('0x48')]['id'];}return db['CannedAnswer']['find']({'where':{'id':_0x596bd3[_0x0c56('0x45')]['id']}})[_0x0c56('0x25')](handleEntityNotFound(_0x1cc9d8,null))[_0x0c56('0x25')](saveUpdates(_0x596bd3['body'],null))[_0x0c56('0x25')](respondWithResult(_0x1cc9d8,null))[_0x0c56('0x43')](handleError(_0x1cc9d8,null));};exports[_0x0c56('0x26')]=function(_0x5d4a32,_0x11a0e8){return db[_0x0c56('0x2c')][_0x0c56('0x47')]({'where':{'id':_0x5d4a32[_0x0c56('0x45')]['id']}})[_0x0c56('0x25')](handleEntityNotFound(_0x11a0e8,null))[_0x0c56('0x25')](removeEntity(_0x11a0e8,null))[_0x0c56('0x43')](handleError(_0x11a0e8,null));};exports[_0x0c56('0x49')]=function(_0xd97281,_0x1efcda){var _0x3f307e={'key':_0xd97281[_0x0c56('0x48')]['key']};if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4a')]){_0x3f307e['MailAccountId']=_0xd97281[_0x0c56('0x48')]['MailAccountId'];}else if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4b')]){_0x3f307e[_0x0c56('0x4b')]=_0xd97281[_0x0c56('0x48')][_0x0c56('0x4b')];}else if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4c')]){_0x3f307e[_0x0c56('0x4c')]=_0xd97281['body']['OpenchannelAccountId'];}else if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4d')]){_0x3f307e[_0x0c56('0x4d')]=_0xd97281[_0x0c56('0x48')]['ChatWebsiteId'];}return db['CannedAnswer'][_0x0c56('0x47')]({'where':_0x3f307e})['then'](function(_0x26fad4){if(_0x26fad4){throw new db[(_0x0c56('0x4e'))]['ValidationError']('The\x20inserted\x20key\x20already\x20exists.');}return db['CannedAnswer'][_0x0c56('0x49')](_0xd97281['body']);})[_0x0c56('0x25')](function(_0x375d5f){var _0x5389d8=_0xd97281[_0x0c56('0x4f')][_0x0c56('0x50')]({'plain':!![]});if(!_0x5389d8)throw new Error(_0x0c56('0x51'));if(_0x5389d8['role']==='user'){var _0x1ee0ee=_0x375d5f['get']({'plain':!![]});return db[_0x0c56('0x52')][_0x0c56('0x47')]({'where':{'name':_0x0c56('0x53'),'userProfileId':_0x5389d8['userProfileId']},'raw':!![]})[_0x0c56('0x25')](function(_0x59d8fc){if(_0x59d8fc&&_0x59d8fc['autoAssociation']===0x0){return db[_0x0c56('0x27')][_0x0c56('0x49')]({'name':_0x1ee0ee[_0x0c56('0x2a')],'resourceId':_0x1ee0ee['id'],'type':_0x59d8fc[_0x0c56('0x2a')],'sectionId':_0x59d8fc['id']},{})[_0x0c56('0x25')](function(){return _0x375d5f;});}else{return _0x375d5f;}})['catch'](function(_0x2db3c4){logger[_0x0c56('0x29')](_0x0c56('0x54'),_0x2db3c4);throw _0x2db3c4;});}return _0x375d5f;})[_0x0c56('0x25')](respondWithResult(_0x1efcda,0xc9))[_0x0c56('0x43')](handleError(_0x1efcda,null));};
\ No newline at end of file
+var _0xdfd3=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','index','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','options','CannedAnswer','includeAll','include','catch','show','params','body','find','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','The\x20inserted\x20key\x20already\x20exists.','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','CannedAnswers','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x524319,_0x14ee21){var _0xa144d=function(_0x3871d6){while(--_0x3871d6){_0x524319['push'](_0x524319['shift']());}};_0xa144d(++_0x14ee21);}(_0xdfd3,0x148));var _0x3dfd=function(_0x2be1ab,_0x2fe1fc){_0x2be1ab=_0x2be1ab-0x0;var _0x4c616d=_0xdfd3[_0x2be1ab];return _0x4c616d;};'use strict';var emlformat=require(_0x3dfd('0x0'));var rimraf=require(_0x3dfd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3dfd('0x2'));var rp=require(_0x3dfd('0x3'));var moment=require('moment');var BPromise=require(_0x3dfd('0x4'));var Mustache=require(_0x3dfd('0x5'));var util=require(_0x3dfd('0x6'));var path=require('path');var sox=require(_0x3dfd('0x7'));var csv=require(_0x3dfd('0x8'));var ejs=require(_0x3dfd('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x3dfd('0xa'));var crypto=require(_0x3dfd('0xb'));var jsforce=require(_0x3dfd('0xc'));var deskjs=require(_0x3dfd('0xd'));var toCsv=require(_0x3dfd('0x8'));var querystring=require(_0x3dfd('0xe'));var Papa=require(_0x3dfd('0xf'));var Redis=require(_0x3dfd('0x10'));var authService=require(_0x3dfd('0x11'));var qs=require(_0x3dfd('0x12'));var as=require(_0x3dfd('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3dfd('0x14'))(_0x3dfd('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x3dfd('0x16'));var db=require(_0x3dfd('0x17'))['db'];function respondWithStatusCode(_0x51434f,_0x53b85b){_0x53b85b=_0x53b85b||0xcc;return function(_0x4905b5){if(_0x4905b5){return _0x51434f[_0x3dfd('0x18')](_0x53b85b);}return _0x51434f[_0x3dfd('0x19')](_0x53b85b)[_0x3dfd('0x1a')]();};}function respondWithResult(_0x626646,_0x52517e){_0x52517e=_0x52517e||0xc8;return function(_0x37c94e){if(_0x37c94e){return _0x626646[_0x3dfd('0x19')](_0x52517e)[_0x3dfd('0x1b')](_0x37c94e);}};}function respondWithFilteredResult(_0x17f20f,_0x31b413){return function(_0x5298b4){if(_0x5298b4){var _0x254c31=typeof _0x31b413[_0x3dfd('0x1c')]===_0x3dfd('0x1d')&&typeof _0x31b413[_0x3dfd('0x1e')]===_0x3dfd('0x1d');var _0x172337=_0x5298b4[_0x3dfd('0x1f')];var _0x2973bf=_0x254c31?0x0:_0x31b413['offset'];var _0x515b21=_0x254c31?_0x5298b4[_0x3dfd('0x1f')]:_0x31b413['offset']+_0x31b413[_0x3dfd('0x1e')];var _0x4ee14b;if(_0x515b21>=_0x172337){_0x515b21=_0x172337;_0x4ee14b=0xc8;}else{_0x4ee14b=0xce;}_0x17f20f['status'](_0x4ee14b);return _0x17f20f[_0x3dfd('0x20')](_0x3dfd('0x21'),_0x2973bf+'-'+_0x515b21+'/'+_0x172337)['json'](_0x5298b4);}return null;};}function patchUpdates(_0x5ab314){return function(_0x3d58fe){try{jsonpatch['apply'](_0x3d58fe,_0x5ab314,!![]);}catch(_0x2e25b0){return BPromise[_0x3dfd('0x22')](_0x2e25b0);}return _0x3d58fe[_0x3dfd('0x23')]();};}function saveUpdates(_0x3cc3f6,_0x46670a){return function(_0x50c0f5){if(_0x50c0f5){return _0x50c0f5[_0x3dfd('0x24')](_0x3cc3f6)[_0x3dfd('0x25')](function(_0x4f1861){return _0x4f1861;});}return null;};}function removeEntity(_0x587f44,_0x438eb5){return function(_0xc5bbde){if(_0xc5bbde){return _0xc5bbde[_0x3dfd('0x26')]()['then'](function(){var _0x57467a=_0xc5bbde[_0x3dfd('0x27')]({'plain':!![]});var _0x1f0829='CannedAnswers';return db[_0x3dfd('0x28')][_0x3dfd('0x26')]({'where':{'type':_0x1f0829,'resourceId':_0x57467a['id']}})[_0x3dfd('0x25')](function(){return _0xc5bbde;});})['then'](function(){_0x587f44[_0x3dfd('0x19')](0xcc)[_0x3dfd('0x1a')]();});}};}function handleEntityNotFound(_0x2387c4,_0x3ec76c){return function(_0x49ce90){if(!_0x49ce90){_0x2387c4[_0x3dfd('0x18')](0x194);}return _0x49ce90;};}function handleError(_0x2b36a7,_0x528c60){_0x528c60=_0x528c60||0x1f4;return function(_0x428a9a){logger[_0x3dfd('0x29')](_0x428a9a[_0x3dfd('0x2a')]);if(_0x428a9a['name']){delete _0x428a9a[_0x3dfd('0x2b')];}_0x2b36a7[_0x3dfd('0x19')](_0x528c60)['send'](_0x428a9a);};}exports[_0x3dfd('0x2c')]=function(_0x1ae922,_0x4f7d86){var _0x21688f={},_0x54669b={},_0xc5d14c={'count':0x0,'rows':[]};var _0x21937e=_['map'](db['CannedAnswer'][_0x3dfd('0x2d')],function(_0x9bd706){return{'name':_0x9bd706['fieldName'],'type':_0x9bd706[_0x3dfd('0x2e')][_0x3dfd('0x2f')]};});_0x54669b[_0x3dfd('0x30')]=_['map'](_0x21937e,_0x3dfd('0x2b'));_0x54669b[_0x3dfd('0x31')]=_[_0x3dfd('0x32')](_0x1ae922[_0x3dfd('0x31')]);_0x54669b[_0x3dfd('0x33')]=_[_0x3dfd('0x34')](_0x54669b[_0x3dfd('0x30')],_0x54669b[_0x3dfd('0x31')]);_0x21688f[_0x3dfd('0x35')]=_[_0x3dfd('0x34')](_0x54669b[_0x3dfd('0x30')],qs[_0x3dfd('0x36')](_0x1ae922[_0x3dfd('0x31')]['fields']));_0x21688f[_0x3dfd('0x35')]=_0x21688f[_0x3dfd('0x35')][_0x3dfd('0x37')]?_0x21688f['attributes']:_0x54669b[_0x3dfd('0x30')];if(!_0x1ae922[_0x3dfd('0x31')][_0x3dfd('0x38')](_0x3dfd('0x39'))){_0x21688f[_0x3dfd('0x1e')]=qs['limit'](_0x1ae922[_0x3dfd('0x31')]['limit']);_0x21688f[_0x3dfd('0x1c')]=qs[_0x3dfd('0x1c')](_0x1ae922[_0x3dfd('0x31')][_0x3dfd('0x1c')]);}_0x21688f[_0x3dfd('0x3a')]=qs['sort'](_0x1ae922[_0x3dfd('0x31')][_0x3dfd('0x3b')]);_0x21688f['where']=qs[_0x3dfd('0x33')](_['pick'](_0x1ae922[_0x3dfd('0x31')],_0x54669b[_0x3dfd('0x33')]),_0x21937e);if(_0x1ae922[_0x3dfd('0x31')][_0x3dfd('0x3c')]){_0x21688f[_0x3dfd('0x3d')]=_[_0x3dfd('0x3e')](_0x21688f[_0x3dfd('0x3d')],{'$or':[{'key':{'$like':'%'+_0x1ae922[_0x3dfd('0x31')][_0x3dfd('0x3c')]+'%'}},{'value':{'$like':'%'+_0x1ae922[_0x3dfd('0x31')][_0x3dfd('0x3c')]+'%'}}]});}_0x21688f=_['merge']({},_0x21688f,_0x1ae922[_0x3dfd('0x3f')]);var _0x702ffb={'where':_0x21688f[_0x3dfd('0x3d')]};return db[_0x3dfd('0x40')]['count'](_0x702ffb)[_0x3dfd('0x25')](function(_0x3d8217){_0xc5d14c['count']=_0x3d8217;if(_0x1ae922['query'][_0x3dfd('0x41')]){_0x21688f[_0x3dfd('0x42')]=[{'all':!![]}];}return db[_0x3dfd('0x40')]['findAll'](_0x21688f);})[_0x3dfd('0x25')](function(_0x2ffc18){_0xc5d14c['rows']=_0x2ffc18;return _0xc5d14c;})[_0x3dfd('0x25')](respondWithFilteredResult(_0x4f7d86,_0x21688f))[_0x3dfd('0x43')](handleError(_0x4f7d86,null));};exports[_0x3dfd('0x44')]=function(_0x58eb2f,_0x498ed7){var _0x399a11={'raw':!![],'where':{'id':_0x58eb2f[_0x3dfd('0x45')]['id']}},_0x147b1d={};_0x147b1d['model']=_[_0x3dfd('0x32')](db['CannedAnswer'][_0x3dfd('0x2d')]);_0x147b1d[_0x3dfd('0x31')]=_['keys'](_0x58eb2f[_0x3dfd('0x31')]);_0x147b1d[_0x3dfd('0x33')]=_[_0x3dfd('0x34')](_0x147b1d[_0x3dfd('0x30')],_0x147b1d[_0x3dfd('0x31')]);_0x399a11['attributes']=_[_0x3dfd('0x34')](_0x147b1d[_0x3dfd('0x30')],qs[_0x3dfd('0x36')](_0x58eb2f[_0x3dfd('0x31')][_0x3dfd('0x36')]));_0x399a11[_0x3dfd('0x35')]=_0x399a11[_0x3dfd('0x35')][_0x3dfd('0x37')]?_0x399a11[_0x3dfd('0x35')]:_0x147b1d[_0x3dfd('0x30')];if(_0x58eb2f['query']['includeAll']){_0x399a11[_0x3dfd('0x42')]=[{'all':!![]}];}_0x399a11=_[_0x3dfd('0x3e')]({},_0x399a11,_0x58eb2f[_0x3dfd('0x3f')]);return db[_0x3dfd('0x40')]['find'](_0x399a11)[_0x3dfd('0x25')](handleEntityNotFound(_0x498ed7,null))[_0x3dfd('0x25')](respondWithResult(_0x498ed7,null))[_0x3dfd('0x43')](handleError(_0x498ed7,null));};exports['update']=function(_0x489414,_0x47bae9){if(_0x489414['body']['id']){delete _0x489414[_0x3dfd('0x46')]['id'];}return db[_0x3dfd('0x40')]['find']({'where':{'id':_0x489414[_0x3dfd('0x45')]['id']}})[_0x3dfd('0x25')](handleEntityNotFound(_0x47bae9,null))[_0x3dfd('0x25')](saveUpdates(_0x489414[_0x3dfd('0x46')],null))[_0x3dfd('0x25')](respondWithResult(_0x47bae9,null))[_0x3dfd('0x43')](handleError(_0x47bae9,null));};exports[_0x3dfd('0x26')]=function(_0x59ae9b,_0x4b9383){return db['CannedAnswer'][_0x3dfd('0x47')]({'where':{'id':_0x59ae9b['params']['id']}})['then'](handleEntityNotFound(_0x4b9383,null))['then'](removeEntity(_0x4b9383,null))[_0x3dfd('0x43')](handleError(_0x4b9383,null));};exports[_0x3dfd('0x48')]=function(_0x457be8,_0xc0b897){var _0x4240c2={'key':_0x457be8[_0x3dfd('0x46')][_0x3dfd('0x2f')]};if(_0x457be8[_0x3dfd('0x46')][_0x3dfd('0x49')]){_0x4240c2['MailAccountId']=_0x457be8['body'][_0x3dfd('0x49')];}else if(_0x457be8['body'][_0x3dfd('0x4a')]){_0x4240c2['SmsAccountId']=_0x457be8[_0x3dfd('0x46')][_0x3dfd('0x4a')];}else if(_0x457be8[_0x3dfd('0x46')][_0x3dfd('0x4b')]){_0x4240c2[_0x3dfd('0x4b')]=_0x457be8['body']['OpenchannelAccountId'];}else if(_0x457be8[_0x3dfd('0x46')][_0x3dfd('0x4c')]){_0x4240c2[_0x3dfd('0x4c')]=_0x457be8[_0x3dfd('0x46')][_0x3dfd('0x4c')];}return db[_0x3dfd('0x40')]['find']({'where':_0x4240c2})[_0x3dfd('0x25')](function(_0x535f0e){if(_0x535f0e){throw new db[(_0x3dfd('0x4d'))]['ValidationError'](_0x3dfd('0x4e'));}return db[_0x3dfd('0x40')][_0x3dfd('0x48')](_0x457be8['body']);})[_0x3dfd('0x25')](function(_0x84e6ff){var _0x2c2bbe=_0x457be8['user']['get']({'plain':!![]});if(!_0x2c2bbe)throw new Error(_0x3dfd('0x4f'));if(_0x2c2bbe['role']===_0x3dfd('0x50')){var _0x2aeb2a=_0x84e6ff['get']({'plain':!![]});return db[_0x3dfd('0x51')][_0x3dfd('0x47')]({'where':{'name':_0x3dfd('0x52'),'userProfileId':_0x2c2bbe[_0x3dfd('0x53')]},'raw':!![]})[_0x3dfd('0x25')](function(_0x4b9791){if(_0x4b9791&&_0x4b9791[_0x3dfd('0x54')]===0x0){return db[_0x3dfd('0x28')][_0x3dfd('0x48')]({'name':_0x2aeb2a['name'],'resourceId':_0x2aeb2a['id'],'type':_0x4b9791[_0x3dfd('0x2b')],'sectionId':_0x4b9791['id']},{})['then'](function(){return _0x84e6ff;});}else{return _0x84e6ff;}})['catch'](function(_0x709a31){logger[_0x3dfd('0x29')](_0x3dfd('0x55'),_0x709a31);throw _0x709a31;});}return _0x84e6ff;})[_0x3dfd('0x25')](respondWithResult(_0xc0b897,0xc9))['catch'](handleError(_0xc0b897,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4584=['utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','rimraf','./cannedAnswer.attributes','exports','CannedAnswer','tools_canned_answers'];(function(_0x32904a,_0x5e5be9){var _0x12f2f=function(_0x5119ff){while(--_0x5119ff){_0x32904a['push'](_0x32904a['shift']());}};_0x12f2f(++_0x5e5be9);}(_0x4584,0x1be));var _0x4458=function(_0x3e2b98,_0x4f3bad){_0x3e2b98=_0x3e2b98-0x0;var _0x5e141d=_0x4584[_0x3e2b98];return _0x5e141d;};'use strict';var _=require(_0x4458('0x0'));var util=require(_0x4458('0x1'));var logger=require(_0x4458('0x2'))(_0x4458('0x3'));var moment=require(_0x4458('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x4458('0x5'));var config=require('../../config/environment');var attributes=require(_0x4458('0x6'));module[_0x4458('0x7')]=function(_0x1109dd,_0x505149){return _0x1109dd['define'](_0x4458('0x8'),attributes,{'tableName':_0x4458('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x4458('0xa'),'collate':_0x4458('0xb')});};
\ No newline at end of file
+var _0x76fe=['tools_canned_answers','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','bluebird','./cannedAnswer.attributes','define','CannedAnswer'];(function(_0x3815c2,_0x1f54e3){var _0x271f88=function(_0x53963c){while(--_0x53963c){_0x3815c2['push'](_0x3815c2['shift']());}};_0x271f88(++_0x1f54e3);}(_0x76fe,0x179));var _0xe76f=function(_0x2c4cee,_0xed54d6){_0x2c4cee=_0x2c4cee-0x0;var _0x4cad54=_0x76fe[_0x2c4cee];return _0x4cad54;};'use strict';var _=require(_0xe76f('0x0'));var util=require('util');var logger=require(_0xe76f('0x1'))(_0xe76f('0x2'));var moment=require(_0xe76f('0x3'));var BPromise=require(_0xe76f('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xe76f('0x5'));module['exports']=function(_0x45948a,_0x2a56d2){return _0x45948a[_0xe76f('0x6')](_0xe76f('0x7'),attributes,{'tableName':_0xe76f('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xe76f('0x9'),'collate':_0xe76f('0xa')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x5637e8,_0x2b096b){var _0x298601=function(_0x4ef37b){while(--_0x4ef37b){_0x5637e8['push'](_0x5637e8['shift']());}};_0x298601(++_0x2b096b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x28947d,_0x4cc9c6){_0x28947d=_0x28947d-0x0;var _0x12d2ee=_0xa9e0[_0x28947d];return _0x12d2ee;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x6ce588,_0x1d5f1b){var _0x59ea7c=function(_0x37cdf0){while(--_0x37cdf0){_0x6ce588['push'](_0x6ce588['shift']());}};_0x59ea7c(++_0x1d5f1b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0xa9e0[_0x2763f2];return _0x3ef471;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc8d=['get','show','post','put','/:id','update','delete','destroy','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index'];(function(_0x39959e,_0x293faa){var _0xcc1f8f=function(_0x395ef7){while(--_0x395ef7){_0x39959e['push'](_0x39959e['shift']());}};_0xcc1f8f(++_0x293faa);}(_0xdc8d,0x1dc));var _0xddc8=function(_0x594875,_0x55e6a5){_0x594875=_0x594875-0x0;var _0x21a762=_0xdc8d[_0x594875];return _0x21a762;};'use strict';var multer=require('multer');var util=require(_0xddc8('0x0'));var path=require(_0xddc8('0x1'));var timeout=require(_0xddc8('0x2'));var express=require(_0xddc8('0x3'));var router=express[_0xddc8('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xddc8('0x5'));var interaction=require(_0xddc8('0x6'));var config=require(_0xddc8('0x7'));var controller=require('./cannedAnswer.controller');router['get']('/',auth[_0xddc8('0x8')](),controller[_0xddc8('0x9')]);router[_0xddc8('0xa')]('/:id',auth[_0xddc8('0x8')](),controller[_0xddc8('0xb')]);router[_0xddc8('0xc')]('/',auth[_0xddc8('0x8')](),controller['create']);router[_0xddc8('0xd')](_0xddc8('0xe'),auth[_0xddc8('0x8')](),controller[_0xddc8('0xf')]);router[_0xddc8('0x10')](_0xddc8('0xe'),auth[_0xddc8('0x8')](),controller[_0xddc8('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x7a37=['./cannedAnswer.controller','isAuthenticated','index','get','/:id','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x21e79a,_0x5a7990){var _0x506c02=function(_0x566c95){while(--_0x566c95){_0x21e79a['push'](_0x21e79a['shift']());}};_0x506c02(++_0x5a7990);}(_0x7a37,0x198));var _0x77a3=function(_0x356d14,_0x335981){_0x356d14=_0x356d14-0x0;var _0x454990=_0x7a37[_0x356d14];return _0x454990;};'use strict';var multer=require(_0x77a3('0x0'));var util=require(_0x77a3('0x1'));var path=require(_0x77a3('0x2'));var timeout=require(_0x77a3('0x3'));var express=require(_0x77a3('0x4'));var router=express[_0x77a3('0x5')]();var fs_extra=require(_0x77a3('0x6'));var auth=require(_0x77a3('0x7'));var interaction=require(_0x77a3('0x8'));var config=require(_0x77a3('0x9'));var controller=require(_0x77a3('0xa'));router['get']('/',auth[_0x77a3('0xb')](),controller[_0x77a3('0xc')]);router[_0x77a3('0xd')](_0x77a3('0xe'),auth['isAuthenticated'](),controller[_0x77a3('0xf')]);router[_0x77a3('0x10')]('/',auth[_0x77a3('0xb')](),controller[_0x77a3('0x11')]);router[_0x77a3('0x12')](_0x77a3('0xe'),auth[_0x77a3('0xb')](),controller[_0x77a3('0x13')]);router[_0x77a3('0x14')](_0x77a3('0xe'),auth[_0x77a3('0xb')](),controller['destroy']);module[_0x77a3('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeebe=['DATE','STRING','INTEGER','sequelize'];(function(_0x5c8c1c,_0x11bada){var _0xbf4b41=function(_0x340f2b){while(--_0x340f2b){_0x5c8c1c['push'](_0x5c8c1c['shift']());}};_0xbf4b41(++_0x11bada);}(_0xeebe,0xff));var _0xeeeb=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0xeebe[_0x4243a3];return _0x1b2a33;};'use strict';var Sequelize=require(_0xeeeb('0x0'));module['exports']={'calldate':{'type':Sequelize[_0xeeeb('0x1')],'allowNull':![],'defaultValue':'1970-01-01\x2000:00:01'},'clid':{'type':Sequelize[_0xeeeb('0x2')]},'src':{'type':Sequelize[_0xeeeb('0x2')]},'dst':{'type':Sequelize[_0xeeeb('0x2')]},'dcontext':{'type':Sequelize[_0xeeeb('0x2')]},'channel':{'type':Sequelize[_0xeeeb('0x2')]},'dstchannel':{'type':Sequelize[_0xeeeb('0x2')]},'lastapp':{'type':Sequelize[_0xeeeb('0x2')]},'lastdata':{'type':Sequelize[_0xeeeb('0x2')]},'duration':{'type':Sequelize[_0xeeeb('0x3')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0xeeeb('0x3')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xeeeb('0x2')]},'amaflags':{'type':Sequelize[_0xeeeb('0x3')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0xeeeb('0x2')]},'userfield':{'type':Sequelize[_0xeeeb('0x2')]},'uniqueid':{'type':Sequelize[_0xeeeb('0x2')]},'linkedid':{'type':Sequelize[_0xeeeb('0x2')]},'sequence':{'type':Sequelize[_0xeeeb('0x2')]},'peeraccount':{'type':Sequelize[_0xeeeb('0x2')]},'type':{'type':Sequelize['STRING']},'tag':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6dd6=['DATE','1970-01-01\x2000:00:01','STRING','INTEGER','exports'];(function(_0x35b79f,_0x2d47db){var _0x1f7357=function(_0x3cb18a){while(--_0x3cb18a){_0x35b79f['push'](_0x35b79f['shift']());}};_0x1f7357(++_0x2d47db);}(_0x6dd6,0xcc));var _0x66dd=function(_0x123ff8,_0x2b9a42){_0x123ff8=_0x123ff8-0x0;var _0x2d8b5e=_0x6dd6[_0x123ff8];return _0x2d8b5e;};'use strict';var Sequelize=require('sequelize');module[_0x66dd('0x0')]={'calldate':{'type':Sequelize[_0x66dd('0x1')],'allowNull':![],'defaultValue':_0x66dd('0x2')},'clid':{'type':Sequelize[_0x66dd('0x3')]},'src':{'type':Sequelize[_0x66dd('0x3')]},'dst':{'type':Sequelize[_0x66dd('0x3')]},'dcontext':{'type':Sequelize[_0x66dd('0x3')]},'channel':{'type':Sequelize[_0x66dd('0x3')]},'dstchannel':{'type':Sequelize[_0x66dd('0x3')]},'lastapp':{'type':Sequelize['STRING']},'lastdata':{'type':Sequelize[_0x66dd('0x3')]},'duration':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x66dd('0x4')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize['STRING']},'amaflags':{'type':Sequelize[_0x66dd('0x4')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x66dd('0x3')]},'userfield':{'type':Sequelize[_0x66dd('0x3')]},'uniqueid':{'type':Sequelize[_0x66dd('0x3')]},'linkedid':{'type':Sequelize[_0x66dd('0x3')]},'sequence':{'type':Sequelize['STRING']},'peeraccount':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x66dd('0x3')]},'tag':{'type':Sequelize[_0x66dd('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1f6=['error','stack','name','send','index','map','Cdr','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','length','create','body','destroy','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then'];(function(_0x196e1b,_0x55fa06){var _0x5e1f18=function(_0x3bdb41){while(--_0x3bdb41){_0x196e1b['push'](_0x196e1b['shift']());}};_0x5e1f18(++_0x55fa06);}(_0xa1f6,0x19d));var _0x6a1f=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0xa1f6[_0x11005e];return _0x29338f;};'use strict';var emlformat=require(_0x6a1f('0x0'));var rimraf=require(_0x6a1f('0x1'));var zipdir=require(_0x6a1f('0x2'));var jsonpatch=require(_0x6a1f('0x3'));var rp=require(_0x6a1f('0x4'));var moment=require(_0x6a1f('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x6a1f('0x6'));var ejs=require(_0x6a1f('0x7'));var fs=require('fs');var fs_extra=require(_0x6a1f('0x8'));var _=require(_0x6a1f('0x9'));var squel=require(_0x6a1f('0xa'));var crypto=require(_0x6a1f('0xb'));var jsforce=require(_0x6a1f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x6a1f('0x6'));var querystring=require(_0x6a1f('0xd'));var Papa=require(_0x6a1f('0xe'));var Redis=require(_0x6a1f('0xf'));var authService=require(_0x6a1f('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6a1f('0x11'));var hardwareService=require(_0x6a1f('0x12'));var logger=require(_0x6a1f('0x13'))(_0x6a1f('0x14'));var utils=require('../../config/utils');var config=require(_0x6a1f('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x6a1f('0x16'))['db'];function respondWithStatusCode(_0x17edb6,_0x2a4e94){_0x2a4e94=_0x2a4e94||0xcc;return function(_0x442576){if(_0x442576){return _0x17edb6[_0x6a1f('0x17')](_0x2a4e94);}return _0x17edb6[_0x6a1f('0x18')](_0x2a4e94)[_0x6a1f('0x19')]();};}function respondWithResult(_0x8c3a36,_0x1918c6){_0x1918c6=_0x1918c6||0xc8;return function(_0x27d8f8){if(_0x27d8f8){return _0x8c3a36[_0x6a1f('0x18')](_0x1918c6)[_0x6a1f('0x1a')](_0x27d8f8);}};}function respondWithFilteredResult(_0x253305,_0x2677c1){return function(_0x14ecec){if(_0x14ecec){var _0x11ee0e=typeof _0x2677c1[_0x6a1f('0x1b')]===_0x6a1f('0x1c')&&typeof _0x2677c1[_0x6a1f('0x1d')]==='undefined';var _0x392ccb=_0x14ecec[_0x6a1f('0x1e')];var _0x1ccbed=_0x11ee0e?0x0:_0x2677c1[_0x6a1f('0x1b')];var _0x21d268=_0x11ee0e?_0x14ecec[_0x6a1f('0x1e')]:_0x2677c1[_0x6a1f('0x1b')]+_0x2677c1[_0x6a1f('0x1d')];var _0x5cb044;if(_0x21d268>=_0x392ccb){_0x21d268=_0x392ccb;_0x5cb044=0xc8;}else{_0x5cb044=0xce;}_0x253305[_0x6a1f('0x18')](_0x5cb044);return _0x253305['set'](_0x6a1f('0x1f'),_0x1ccbed+'-'+_0x21d268+'/'+_0x392ccb)[_0x6a1f('0x1a')](_0x14ecec);}return null;};}function patchUpdates(_0x3c7ed0){return function(_0x1b5856){try{jsonpatch[_0x6a1f('0x20')](_0x1b5856,_0x3c7ed0,!![]);}catch(_0x4eae7f){return BPromise[_0x6a1f('0x21')](_0x4eae7f);}return _0x1b5856[_0x6a1f('0x22')]();};}function saveUpdates(_0xa43cd5,_0x1be0c3){return function(_0x312e75){if(_0x312e75){return _0x312e75[_0x6a1f('0x23')](_0xa43cd5)[_0x6a1f('0x24')](function(_0x2736ab){return _0x2736ab;});}return null;};}function removeEntity(_0x53229b,_0x1eb146){return function(_0x3d953d){if(_0x3d953d){return _0x3d953d['destroy']()['then'](function(){_0x53229b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3ea158,_0x5e6013){return function(_0x5abe40){if(!_0x5abe40){_0x3ea158[_0x6a1f('0x17')](0x194);}return _0x5abe40;};}function handleError(_0x286d1d,_0x2b53ca){_0x2b53ca=_0x2b53ca||0x1f4;return function(_0x1e8db8){logger[_0x6a1f('0x25')](_0x1e8db8[_0x6a1f('0x26')]);if(_0x1e8db8[_0x6a1f('0x27')]){delete _0x1e8db8[_0x6a1f('0x27')];}_0x286d1d['status'](_0x2b53ca)[_0x6a1f('0x28')](_0x1e8db8);};}exports[_0x6a1f('0x29')]=function(_0x3f0730,_0x574d80){var _0x1e951c={},_0x155c58={},_0x257cee={'count':0x0,'rows':[]};var _0x113422=_[_0x6a1f('0x2a')](db[_0x6a1f('0x2b')][_0x6a1f('0x2c')],function(_0x58d879){return{'name':_0x58d879['fieldName'],'type':_0x58d879[_0x6a1f('0x2d')][_0x6a1f('0x2e')]};});_0x155c58[_0x6a1f('0x2f')]=_[_0x6a1f('0x2a')](_0x113422,_0x6a1f('0x27'));_0x155c58[_0x6a1f('0x30')]=_[_0x6a1f('0x31')](_0x3f0730['query']);_0x155c58[_0x6a1f('0x32')]=_[_0x6a1f('0x33')](_0x155c58['model'],_0x155c58[_0x6a1f('0x30')]);_0x1e951c[_0x6a1f('0x34')]=_[_0x6a1f('0x33')](_0x155c58['model'],qs['fields'](_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x35')]));_0x1e951c[_0x6a1f('0x34')]=_0x1e951c['attributes']['length']?_0x1e951c[_0x6a1f('0x34')]:_0x155c58[_0x6a1f('0x2f')];if(!_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x36')](_0x6a1f('0x37'))){_0x1e951c[_0x6a1f('0x1d')]=qs[_0x6a1f('0x1d')](_0x3f0730['query'][_0x6a1f('0x1d')]);_0x1e951c['offset']=qs[_0x6a1f('0x1b')](_0x3f0730[_0x6a1f('0x30')]['offset']);}_0x1e951c[_0x6a1f('0x38')]=qs[_0x6a1f('0x39')](_0x3f0730['query'][_0x6a1f('0x39')]);_0x1e951c['where']=qs[_0x6a1f('0x32')](_['pick'](_0x3f0730[_0x6a1f('0x30')],_0x155c58['filters']),_0x113422);if(_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x3a')]){_0x1e951c['where']=_[_0x6a1f('0x3b')](_0x1e951c[_0x6a1f('0x3c')],{'$or':_['map'](_0x113422,function(_0x5beb28){if(_0x5beb28[_0x6a1f('0x2d')]!==_0x6a1f('0x3d')){var _0x314fef={};_0x314fef[_0x5beb28[_0x6a1f('0x27')]]={'$like':'%'+_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x3a')]+'%'};return _0x314fef;}})});}_0x1e951c=_['merge']({},_0x1e951c,_0x3f0730[_0x6a1f('0x3e')]);var _0x2da23a={'where':_0x1e951c[_0x6a1f('0x3c')]};return db[_0x6a1f('0x2b')][_0x6a1f('0x1e')](_0x2da23a)[_0x6a1f('0x24')](function(_0x27be0a){_0x257cee[_0x6a1f('0x1e')]=_0x27be0a;if(_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x3f')]){_0x1e951c[_0x6a1f('0x40')]=[{'all':!![]}];}return db['Cdr'][_0x6a1f('0x41')](_0x1e951c);})[_0x6a1f('0x24')](function(_0x334fc4){_0x257cee[_0x6a1f('0x42')]=_0x334fc4;return _0x257cee;})[_0x6a1f('0x24')](respondWithFilteredResult(_0x574d80,_0x1e951c))[_0x6a1f('0x43')](handleError(_0x574d80,null));};exports['show']=function(_0x211009,_0x482c3a){var _0x3a6f80={'raw':!![],'where':{'id':_0x211009[_0x6a1f('0x44')]['id']}},_0x33208d={};_0x33208d[_0x6a1f('0x2f')]=_[_0x6a1f('0x31')](db[_0x6a1f('0x2b')]['rawAttributes']);_0x33208d[_0x6a1f('0x30')]=_[_0x6a1f('0x31')](_0x211009[_0x6a1f('0x30')]);_0x33208d[_0x6a1f('0x32')]=_[_0x6a1f('0x33')](_0x33208d[_0x6a1f('0x2f')],_0x33208d[_0x6a1f('0x30')]);_0x3a6f80[_0x6a1f('0x34')]=_[_0x6a1f('0x33')](_0x33208d[_0x6a1f('0x2f')],qs['fields'](_0x211009['query']['fields']));_0x3a6f80[_0x6a1f('0x34')]=_0x3a6f80[_0x6a1f('0x34')][_0x6a1f('0x45')]?_0x3a6f80[_0x6a1f('0x34')]:_0x33208d[_0x6a1f('0x2f')];if(_0x211009[_0x6a1f('0x30')]['includeAll']){_0x3a6f80[_0x6a1f('0x40')]=[{'all':!![]}];}_0x3a6f80=_['merge']({},_0x3a6f80,_0x211009[_0x6a1f('0x3e')]);return db[_0x6a1f('0x2b')]['find'](_0x3a6f80)[_0x6a1f('0x24')](handleEntityNotFound(_0x482c3a,null))['then'](respondWithResult(_0x482c3a,null))[_0x6a1f('0x43')](handleError(_0x482c3a,null));};exports[_0x6a1f('0x46')]=function(_0xa864f3,_0x4318fd){return db[_0x6a1f('0x2b')][_0x6a1f('0x46')](_0xa864f3['body'],{})[_0x6a1f('0x24')](respondWithResult(_0x4318fd,0xc9))[_0x6a1f('0x43')](handleError(_0x4318fd,null));};exports[_0x6a1f('0x23')]=function(_0x2bea1a,_0x34fa17){if(_0x2bea1a[_0x6a1f('0x47')]['id']){delete _0x2bea1a[_0x6a1f('0x47')]['id'];}return db[_0x6a1f('0x2b')]['find']({'where':{'id':_0x2bea1a[_0x6a1f('0x44')]['id']}})[_0x6a1f('0x24')](handleEntityNotFound(_0x34fa17,null))[_0x6a1f('0x24')](saveUpdates(_0x2bea1a['body'],null))[_0x6a1f('0x24')](respondWithResult(_0x34fa17,null))['catch'](handleError(_0x34fa17,null));};exports[_0x6a1f('0x48')]=function(_0x52c262,_0x366a60){return db['Cdr'][_0x6a1f('0x49')]({'where':{'id':_0x52c262[_0x6a1f('0x44')]['id']}})[_0x6a1f('0x24')](handleEntityNotFound(_0x366a60,null))['then'](removeEntity(_0x366a60,null))[_0x6a1f('0x43')](handleError(_0x366a60,null));};exports['describe']=function(_0x143873,_0x55d114){return db['Cdr'][_0x6a1f('0x4a')]()[_0x6a1f('0x24')](respondWithResult(_0x55d114,null))['catch'](handleError(_0x55d114,null));};
\ No newline at end of file
+var _0xd6d2=['../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','count','offset','limit','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','Cdr','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','sort','where','pick','filter','merge','type','VIRTUAL','options','include','findAll','catch','show','params','rawAttributes','includeAll','find','create','body','destroy','describe','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment'];(function(_0x65281d,_0x201f0c){var _0x5c1bdd=function(_0x108567){while(--_0x108567){_0x65281d['push'](_0x65281d['shift']());}};_0x5c1bdd(++_0x201f0c);}(_0xd6d2,0xcb));var _0x2d6d=function(_0x33229f,_0x53877b){_0x33229f=_0x33229f-0x0;var _0x18bb64=_0xd6d2[_0x33229f];return _0x18bb64;};'use strict';var emlformat=require(_0x2d6d('0x0'));var rimraf=require(_0x2d6d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2d6d('0x2'));var rp=require(_0x2d6d('0x3'));var moment=require('moment');var BPromise=require(_0x2d6d('0x4'));var Mustache=require('mustache');var util=require(_0x2d6d('0x5'));var path=require(_0x2d6d('0x6'));var sox=require(_0x2d6d('0x7'));var csv=require('to-csv');var ejs=require(_0x2d6d('0x8'));var fs=require('fs');var fs_extra=require(_0x2d6d('0x9'));var _=require(_0x2d6d('0xa'));var squel=require(_0x2d6d('0xb'));var crypto=require(_0x2d6d('0xc'));var jsforce=require(_0x2d6d('0xd'));var deskjs=require(_0x2d6d('0xe'));var toCsv=require(_0x2d6d('0xf'));var querystring=require(_0x2d6d('0x10'));var Papa=require(_0x2d6d('0x11'));var Redis=require(_0x2d6d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x2d6d('0x13'));var as=require(_0x2d6d('0x14'));var hardwareService=require(_0x2d6d('0x15'));var logger=require(_0x2d6d('0x16'))(_0x2d6d('0x17'));var utils=require('../../config/utils');var config=require(_0x2d6d('0x18'));var licenseUtil=require(_0x2d6d('0x19'));var db=require(_0x2d6d('0x1a'))['db'];function respondWithStatusCode(_0x2ad9fc,_0x5c4bf6){_0x5c4bf6=_0x5c4bf6||0xcc;return function(_0x5ef174){if(_0x5ef174){return _0x2ad9fc[_0x2d6d('0x1b')](_0x5c4bf6);}return _0x2ad9fc[_0x2d6d('0x1c')](_0x5c4bf6)[_0x2d6d('0x1d')]();};}function respondWithResult(_0x3528de,_0x58bd29){_0x58bd29=_0x58bd29||0xc8;return function(_0x1ec6aa){if(_0x1ec6aa){return _0x3528de[_0x2d6d('0x1c')](_0x58bd29)['json'](_0x1ec6aa);}};}function respondWithFilteredResult(_0x586085,_0x370096){return function(_0x17340f){if(_0x17340f){var _0x109b49=typeof _0x370096['offset']===_0x2d6d('0x1e')&&typeof _0x370096['limit']==='undefined';var _0x4c3092=_0x17340f[_0x2d6d('0x1f')];var _0x4179f2=_0x109b49?0x0:_0x370096[_0x2d6d('0x20')];var _0x3c527e=_0x109b49?_0x17340f[_0x2d6d('0x1f')]:_0x370096[_0x2d6d('0x20')]+_0x370096[_0x2d6d('0x21')];var _0xa2c4a7;if(_0x3c527e>=_0x4c3092){_0x3c527e=_0x4c3092;_0xa2c4a7=0xc8;}else{_0xa2c4a7=0xce;}_0x586085[_0x2d6d('0x1c')](_0xa2c4a7);return _0x586085['set'](_0x2d6d('0x22'),_0x4179f2+'-'+_0x3c527e+'/'+_0x4c3092)[_0x2d6d('0x23')](_0x17340f);}return null;};}function patchUpdates(_0x5b0c61){return function(_0x227e44){try{jsonpatch[_0x2d6d('0x24')](_0x227e44,_0x5b0c61,!![]);}catch(_0x15cb80){return BPromise[_0x2d6d('0x25')](_0x15cb80);}return _0x227e44[_0x2d6d('0x26')]();};}function saveUpdates(_0x59234a,_0x4aaa62){return function(_0x42c2f2){if(_0x42c2f2){return _0x42c2f2[_0x2d6d('0x27')](_0x59234a)[_0x2d6d('0x28')](function(_0x585b54){return _0x585b54;});}return null;};}function removeEntity(_0x47eb0e,_0x3ae8ad){return function(_0x4e7ec8){if(_0x4e7ec8){return _0x4e7ec8['destroy']()['then'](function(){_0x47eb0e[_0x2d6d('0x1c')](0xcc)[_0x2d6d('0x1d')]();});}};}function handleEntityNotFound(_0x3da83d,_0x3f89dd){return function(_0x3e5a92){if(!_0x3e5a92){_0x3da83d['sendStatus'](0x194);}return _0x3e5a92;};}function handleError(_0x16634d,_0x1b4964){_0x1b4964=_0x1b4964||0x1f4;return function(_0x455e71){logger[_0x2d6d('0x29')](_0x455e71[_0x2d6d('0x2a')]);if(_0x455e71[_0x2d6d('0x2b')]){delete _0x455e71[_0x2d6d('0x2b')];}_0x16634d[_0x2d6d('0x1c')](_0x1b4964)[_0x2d6d('0x2c')](_0x455e71);};}exports['index']=function(_0x1016e1,_0x26d299){var _0x2e7b32={},_0x34d485={},_0x486963={'count':0x0,'rows':[]};var _0x317bde=_['map'](db[_0x2d6d('0x2d')]['rawAttributes'],function(_0x58bfc7){return{'name':_0x58bfc7[_0x2d6d('0x2e')],'type':_0x58bfc7['type'][_0x2d6d('0x2f')]};});_0x34d485[_0x2d6d('0x30')]=_['map'](_0x317bde,_0x2d6d('0x2b'));_0x34d485['query']=_[_0x2d6d('0x31')](_0x1016e1[_0x2d6d('0x32')]);_0x34d485[_0x2d6d('0x33')]=_[_0x2d6d('0x34')](_0x34d485[_0x2d6d('0x30')],_0x34d485[_0x2d6d('0x32')]);_0x2e7b32[_0x2d6d('0x35')]=_[_0x2d6d('0x34')](_0x34d485['model'],qs[_0x2d6d('0x36')](_0x1016e1[_0x2d6d('0x32')]['fields']));_0x2e7b32[_0x2d6d('0x35')]=_0x2e7b32[_0x2d6d('0x35')][_0x2d6d('0x37')]?_0x2e7b32[_0x2d6d('0x35')]:_0x34d485[_0x2d6d('0x30')];if(!_0x1016e1['query']['hasOwnProperty']('nolimit')){_0x2e7b32[_0x2d6d('0x21')]=qs[_0x2d6d('0x21')](_0x1016e1[_0x2d6d('0x32')]['limit']);_0x2e7b32[_0x2d6d('0x20')]=qs[_0x2d6d('0x20')](_0x1016e1[_0x2d6d('0x32')][_0x2d6d('0x20')]);}_0x2e7b32['order']=qs[_0x2d6d('0x38')](_0x1016e1[_0x2d6d('0x32')][_0x2d6d('0x38')]);_0x2e7b32[_0x2d6d('0x39')]=qs[_0x2d6d('0x33')](_[_0x2d6d('0x3a')](_0x1016e1[_0x2d6d('0x32')],_0x34d485['filters']),_0x317bde);if(_0x1016e1[_0x2d6d('0x32')][_0x2d6d('0x3b')]){_0x2e7b32[_0x2d6d('0x39')]=_[_0x2d6d('0x3c')](_0x2e7b32[_0x2d6d('0x39')],{'$or':_['map'](_0x317bde,function(_0x1cad57){if(_0x1cad57[_0x2d6d('0x3d')]!==_0x2d6d('0x3e')){var _0x4616df={};_0x4616df[_0x1cad57[_0x2d6d('0x2b')]]={'$like':'%'+_0x1016e1[_0x2d6d('0x32')][_0x2d6d('0x3b')]+'%'};return _0x4616df;}})});}_0x2e7b32=_[_0x2d6d('0x3c')]({},_0x2e7b32,_0x1016e1[_0x2d6d('0x3f')]);var _0x38cce8={'where':_0x2e7b32[_0x2d6d('0x39')]};return db[_0x2d6d('0x2d')][_0x2d6d('0x1f')](_0x38cce8)[_0x2d6d('0x28')](function(_0x34fc23){_0x486963[_0x2d6d('0x1f')]=_0x34fc23;if(_0x1016e1[_0x2d6d('0x32')]['includeAll']){_0x2e7b32[_0x2d6d('0x40')]=[{'all':!![]}];}return db[_0x2d6d('0x2d')][_0x2d6d('0x41')](_0x2e7b32);})[_0x2d6d('0x28')](function(_0x246d6e){_0x486963['rows']=_0x246d6e;return _0x486963;})[_0x2d6d('0x28')](respondWithFilteredResult(_0x26d299,_0x2e7b32))[_0x2d6d('0x42')](handleError(_0x26d299,null));};exports[_0x2d6d('0x43')]=function(_0x41ab2e,_0x543b4b){var _0x3b62b1={'raw':!![],'where':{'id':_0x41ab2e[_0x2d6d('0x44')]['id']}},_0x7f76ad={};_0x7f76ad[_0x2d6d('0x30')]=_[_0x2d6d('0x31')](db['Cdr'][_0x2d6d('0x45')]);_0x7f76ad[_0x2d6d('0x32')]=_['keys'](_0x41ab2e[_0x2d6d('0x32')]);_0x7f76ad[_0x2d6d('0x33')]=_[_0x2d6d('0x34')](_0x7f76ad['model'],_0x7f76ad[_0x2d6d('0x32')]);_0x3b62b1[_0x2d6d('0x35')]=_['intersection'](_0x7f76ad['model'],qs['fields'](_0x41ab2e[_0x2d6d('0x32')][_0x2d6d('0x36')]));_0x3b62b1['attributes']=_0x3b62b1[_0x2d6d('0x35')][_0x2d6d('0x37')]?_0x3b62b1[_0x2d6d('0x35')]:_0x7f76ad[_0x2d6d('0x30')];if(_0x41ab2e['query'][_0x2d6d('0x46')]){_0x3b62b1[_0x2d6d('0x40')]=[{'all':!![]}];}_0x3b62b1=_['merge']({},_0x3b62b1,_0x41ab2e[_0x2d6d('0x3f')]);return db[_0x2d6d('0x2d')][_0x2d6d('0x47')](_0x3b62b1)[_0x2d6d('0x28')](handleEntityNotFound(_0x543b4b,null))[_0x2d6d('0x28')](respondWithResult(_0x543b4b,null))[_0x2d6d('0x42')](handleError(_0x543b4b,null));};exports[_0x2d6d('0x48')]=function(_0x5ac5e9,_0xe6b038){return db[_0x2d6d('0x2d')][_0x2d6d('0x48')](_0x5ac5e9['body'],{})['then'](respondWithResult(_0xe6b038,0xc9))[_0x2d6d('0x42')](handleError(_0xe6b038,null));};exports[_0x2d6d('0x27')]=function(_0x422198,_0x4e5203){if(_0x422198[_0x2d6d('0x49')]['id']){delete _0x422198[_0x2d6d('0x49')]['id'];}return db['Cdr'][_0x2d6d('0x47')]({'where':{'id':_0x422198[_0x2d6d('0x44')]['id']}})[_0x2d6d('0x28')](handleEntityNotFound(_0x4e5203,null))[_0x2d6d('0x28')](saveUpdates(_0x422198[_0x2d6d('0x49')],null))[_0x2d6d('0x28')](respondWithResult(_0x4e5203,null))[_0x2d6d('0x42')](handleError(_0x4e5203,null));};exports[_0x2d6d('0x4a')]=function(_0x42c125,_0x1ca9a2){return db['Cdr'][_0x2d6d('0x47')]({'where':{'id':_0x42c125[_0x2d6d('0x44')]['id']}})[_0x2d6d('0x28')](handleEntityNotFound(_0x1ca9a2,null))['then'](removeEntity(_0x1ca9a2,null))[_0x2d6d('0x42')](handleError(_0x1ca9a2,null));};exports[_0x2d6d('0x4b')]=function(_0x3738b3,_0x2dbcdc){return db[_0x2d6d('0x2d')][_0x2d6d('0x4b')]()[_0x2d6d('0x28')](respondWithResult(_0x2dbcdc,null))['catch'](handleError(_0x2dbcdc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['Cdr','cdr','accountcode','disposition','dst','src','uniqueid','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./cdr.attributes','exports'];(function(_0x599edf,_0x83aaf){var _0x3e4f6a=function(_0x1d02f5){while(--_0x1d02f5){_0x599edf['push'](_0x599edf['shift']());}};_0x3e4f6a(++_0x83aaf);}(_0x7a54,0x106));var _0x47a5=function(_0x1b5cf7,_0x44c1a5){_0x1b5cf7=_0x1b5cf7-0x0;var _0xe5f114=_0x7a54[_0x1b5cf7];return _0xe5f114;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[{'name':'accountcode','fields':[_0x47a5('0xc')]},{'name':'calldate','fields':['calldate']},{'name':'disposition','fields':[_0x47a5('0xd')]},{'name':_0x47a5('0xe'),'fields':['dst']},{'name':_0x47a5('0xf'),'fields':['src']},{'name':'uniqueid','fields':[_0x47a5('0x10')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x9957=['dst','src','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./cdr.attributes','exports','define','Cdr','accountcode','calldate','disposition'];(function(_0xea2a48,_0x24e9b1){var _0x247239=function(_0x295966){while(--_0x295966){_0xea2a48['push'](_0xea2a48['shift']());}};_0x247239(++_0x24e9b1);}(_0x9957,0x93));var _0x7995=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x9957[_0xbca1b1];return _0x4e1686;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'cdr','paranoid':![],'indexes':[{'name':_0x7995('0xc'),'fields':[_0x7995('0xc')]},{'name':'calldate','fields':[_0x7995('0xd')]},{'name':_0x7995('0xe'),'fields':[_0x7995('0xe')]},{'name':_0x7995('0xf'),'fields':[_0x7995('0xf')]},{'name':_0x7995('0x10'),'fields':[_0x7995('0x10')]},{'name':'uniqueid','fields':[_0x7995('0x11')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3dd=['../../mysqldb','../../config/utils','rpc','client','http','then','info','Cdr,\x20%s,\x20%s','request\x20sent','debug','Cdr,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis'];(function(_0x28e009,_0x3df9fb){var _0x38998f=function(_0x2c57f8){while(--_0x2c57f8){_0x28e009['push'](_0x28e009['shift']());}};_0x38998f(++_0x3df9fb);}(_0xb3dd,0x19d));var _0xdb3d=function(_0x5d038d,_0xdb699d){_0x5d038d=_0x5d038d-0x0;var _0x20001c=_0xb3dd[_0x5d038d];return _0x20001c;};'use strict';var _=require(_0xdb3d('0x0'));var util=require(_0xdb3d('0x1'));var moment=require(_0xdb3d('0x2'));var BPromise=require('bluebird');var rs=require(_0xdb3d('0x3'));var fs=require('fs');var Redis=require(_0xdb3d('0x4'));var db=require(_0xdb3d('0x5'))['db'];var utils=require(_0xdb3d('0x6'));var logger=require('../../config/logger')(_0xdb3d('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xdb3d('0x8')][_0xdb3d('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c4444,_0x1f86aa,_0x85b275){return new BPromise(function(_0x201d48,_0x28a116){return client['request'](_0x4c4444,_0x85b275)[_0xdb3d('0xa')](function(_0x34a57c){logger[_0xdb3d('0xb')](_0xdb3d('0xc'),_0x1f86aa,_0xdb3d('0xd'));logger[_0xdb3d('0xe')](_0xdb3d('0xf'),_0x1f86aa,_0xdb3d('0xd'),JSON[_0xdb3d('0x10')](_0x34a57c));if(_0x34a57c[_0xdb3d('0x11')]){if(_0x34a57c[_0xdb3d('0x11')][_0xdb3d('0x12')]===0x1f4){logger[_0xdb3d('0x11')]('Cdr,\x20%s,\x20%s',_0x1f86aa,_0x34a57c[_0xdb3d('0x11')]['message']);return _0x28a116(_0x34a57c[_0xdb3d('0x11')]['message']);}logger['error'](_0xdb3d('0xc'),_0x1f86aa,_0x34a57c['error'][_0xdb3d('0x13')]);return _0x201d48(_0x34a57c['error']['message']);}else{logger[_0xdb3d('0xb')](_0xdb3d('0xc'),_0x1f86aa,'request\x20sent');_0x201d48(_0x34a57c[_0xdb3d('0x14')][_0xdb3d('0x13')]);}})[_0xdb3d('0x15')](function(_0x45c950){logger[_0xdb3d('0x11')](_0xdb3d('0xc'),_0x1f86aa,_0x45c950);_0x28a116(_0x45c950);});});}
\ No newline at end of file
+var _0xd0f2=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','Cdr,\x20%s,\x20%s','debug','Cdr,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','lodash','moment'];(function(_0x2b7ffe,_0x3129be){var _0x1a009a=function(_0x1c0a18){while(--_0x1c0a18){_0x2b7ffe['push'](_0x2b7ffe['shift']());}};_0x1a009a(++_0x3129be);}(_0xd0f2,0x13e));var _0x2d0f=function(_0x1f9e85,_0x1d8277){_0x1f9e85=_0x1f9e85-0x0;var _0x67fee9=_0xd0f2[_0x1f9e85];return _0x67fee9;};'use strict';var _=require(_0x2d0f('0x0'));var util=require('util');var moment=require(_0x2d0f('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2d0f('0x2'));var db=require(_0x2d0f('0x3'))['db'];var utils=require(_0x2d0f('0x4'));var logger=require(_0x2d0f('0x5'))(_0x2d0f('0x6'));var config=require(_0x2d0f('0x7'));var jayson=require(_0x2d0f('0x8'));var client=jayson['client'][_0x2d0f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c2918,_0x2a1485,_0xfa6582){return new BPromise(function(_0x50deb2,_0x196a2f){return client[_0x2d0f('0xa')](_0x4c2918,_0xfa6582)[_0x2d0f('0xb')](function(_0x7b4e9b){logger['info'](_0x2d0f('0xc'),_0x2a1485,'request\x20sent');logger[_0x2d0f('0xd')](_0x2d0f('0xe'),_0x2a1485,_0x2d0f('0xf'),JSON['stringify'](_0x7b4e9b));if(_0x7b4e9b[_0x2d0f('0x10')]){if(_0x7b4e9b[_0x2d0f('0x10')][_0x2d0f('0x11')]===0x1f4){logger[_0x2d0f('0x10')](_0x2d0f('0xc'),_0x2a1485,_0x7b4e9b[_0x2d0f('0x10')]['message']);return _0x196a2f(_0x7b4e9b[_0x2d0f('0x10')][_0x2d0f('0x12')]);}logger[_0x2d0f('0x10')]('Cdr,\x20%s,\x20%s',_0x2a1485,_0x7b4e9b['error']['message']);return _0x50deb2(_0x7b4e9b['error'][_0x2d0f('0x12')]);}else{logger['info'](_0x2d0f('0xc'),_0x2a1485,'request\x20sent');_0x50deb2(_0x7b4e9b[_0x2d0f('0x13')][_0x2d0f('0x12')]);}})['catch'](function(_0x2f4b73){logger['error'](_0x2d0f('0xc'),_0x2a1485,_0x2f4b73);_0x196a2f(_0x2f4b73);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['../../components/interaction/service','../../config/environment','./cdr.controller','get','index','isAuthenticated','describe','/:id','show','post','update','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x1a647a,_0x3c940c){var _0x205d87=function(_0x4e9218){while(--_0x4e9218){_0x1a647a['push'](_0x1a647a['shift']());}};_0x205d87(++_0x3c940c);}(_0xb10b,0x12a));var _0xbb10=function(_0x5659c0,_0x5f2532){_0x5659c0=_0x5659c0-0x0;var _0x36e3c0=_0xb10b[_0x5659c0];return _0x36e3c0;};'use strict';var multer=require(_0xbb10('0x0'));var util=require('util');var path=require(_0xbb10('0x1'));var timeout=require(_0xbb10('0x2'));var express=require(_0xbb10('0x3'));var router=express['Router']();var fs_extra=require(_0xbb10('0x4'));var auth=require(_0xbb10('0x5'));var interaction=require(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var controller=require(_0xbb10('0x8'));router[_0xbb10('0x9')]('/',auth['isAuthenticated'](),controller[_0xbb10('0xa')]);router[_0xbb10('0x9')]('/describe',auth[_0xbb10('0xb')](),controller[_0xbb10('0xc')]);router[_0xbb10('0x9')](_0xbb10('0xd'),auth[_0xbb10('0xb')](),controller[_0xbb10('0xe')]);router[_0xbb10('0xf')]('/',auth[_0xbb10('0xb')](),controller['create']);router['put'](_0xbb10('0xd'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x10')]);router['delete'](_0xbb10('0xd'),auth['isAuthenticated'](),controller[_0xbb10('0x11')]);module[_0xbb10('0x12')]=router;
\ No newline at end of file
+var _0xa9e0=['isAuthenticated','create','put','/:id','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cdr.controller','get','index','/describe','show','post'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0xa9e0[_0x6131cd];return _0x47e916;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0xc')]('/',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')](_0x0a9e('0x10'),auth['isAuthenticated'](),controller['update']);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);module[_0x0a9e('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91b9=['*,*,*,*','sequelize','noop','TEXT','STRING'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x91b9,0xe2));var _0x991b=function(_0xfd69c1,_0x502768){_0xfd69c1=_0xfd69c1-0x0;var _0x200ec8=_0x91b9[_0xfd69c1];return _0x200ec8;};'use strict';var Sequelize=require(_0x991b('0x0'));module['exports']={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x991b('0x1')},'appdata':{'type':Sequelize[_0x991b('0x2')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x991b('0x3')],'defaultValue':_0x991b('0x4')}};
\ No newline at end of file
+var _0x54bd=['STRING','*,*,*,*','sequelize','exports','INTEGER'];(function(_0x29fad0,_0x192ddf){var _0x1d2dda=function(_0x5ba4ae){while(--_0x5ba4ae){_0x29fad0['push'](_0x29fad0['shift']());}};_0x1d2dda(++_0x192ddf);}(_0x54bd,0x1ab));var _0xd54b=function(_0x32220a,_0x283cf6){_0x32220a=_0x32220a-0x0;var _0x32d8e6=_0x54bd[_0x32220a];return _0x32d8e6;};'use strict';var Sequelize=require(_0xd54b('0x0'));module[_0xd54b('0x1')]={'priority':{'type':Sequelize[_0xd54b('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xd54b('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xd54b('0x3')],'defaultValue':_0xd54b('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2116=['sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','update','then','error','stack','name','send','show','params','model','keys','ChatApplication','query','attributes','intersection','fields','length','options','find','body','destroy','catch','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x5bc544,_0x36912d){var _0x5c38=function(_0x280622){while(--_0x280622){_0x5bc544['push'](_0x5bc544['shift']());}};_0x5c38(++_0x36912d);}(_0x2116,0x67));var _0x6211=function(_0x2456dd,_0xb579a7){_0x2456dd=_0x2456dd-0x0;var _0x270322=_0x2116[_0x2456dd];return _0x270322;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6211('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6211('0x1'));var rp=require(_0x6211('0x2'));var moment=require(_0x6211('0x3'));var BPromise=require(_0x6211('0x4'));var Mustache=require('mustache');var util=require(_0x6211('0x5'));var path=require(_0x6211('0x6'));var sox=require(_0x6211('0x7'));var csv=require(_0x6211('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6211('0x9'));var _=require('lodash');var squel=require(_0x6211('0xa'));var crypto=require(_0x6211('0xb'));var jsforce=require(_0x6211('0xc'));var deskjs=require(_0x6211('0xd'));var toCsv=require(_0x6211('0x8'));var querystring=require(_0x6211('0xe'));var Papa=require(_0x6211('0xf'));var Redis=require('ioredis');var authService=require(_0x6211('0x10'));var qs=require(_0x6211('0x11'));var as=require(_0x6211('0x12'));var hardwareService=require(_0x6211('0x13'));var logger=require(_0x6211('0x14'))(_0x6211('0x15'));var utils=require(_0x6211('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x6211('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x337362,_0x6661a7){_0x6661a7=_0x6661a7||0xcc;return function(_0x22963d){if(_0x22963d){return _0x337362['sendStatus'](_0x6661a7);}return _0x337362[_0x6211('0x18')](_0x6661a7)[_0x6211('0x19')]();};}function respondWithResult(_0x1a27a2,_0x509faa){_0x509faa=_0x509faa||0xc8;return function(_0x54a303){if(_0x54a303){return _0x1a27a2[_0x6211('0x18')](_0x509faa)[_0x6211('0x1a')](_0x54a303);}};}function respondWithFilteredResult(_0x23f8d2,_0xf69c79){return function(_0xa23863){if(_0xa23863){var _0x15adb6=typeof _0xf69c79[_0x6211('0x1b')]===_0x6211('0x1c')&&typeof _0xf69c79['limit']===_0x6211('0x1c');var _0x432c18=_0xa23863[_0x6211('0x1d')];var _0x2ccbb0=_0x15adb6?0x0:_0xf69c79[_0x6211('0x1b')];var _0x14c051=_0x15adb6?_0xa23863[_0x6211('0x1d')]:_0xf69c79['offset']+_0xf69c79[_0x6211('0x1e')];var _0x1528e6;if(_0x14c051>=_0x432c18){_0x14c051=_0x432c18;_0x1528e6=0xc8;}else{_0x1528e6=0xce;}_0x23f8d2['status'](_0x1528e6);return _0x23f8d2[_0x6211('0x1f')](_0x6211('0x20'),_0x2ccbb0+'-'+_0x14c051+'/'+_0x432c18)[_0x6211('0x1a')](_0xa23863);}return null;};}function patchUpdates(_0x30d6a5){return function(_0x4d99bc){try{jsonpatch['apply'](_0x4d99bc,_0x30d6a5,!![]);}catch(_0x4252d3){return BPromise[_0x6211('0x21')](_0x4252d3);}return _0x4d99bc['save']();};}function saveUpdates(_0x52eb53,_0x15ca00){return function(_0x1e6a53){if(_0x1e6a53){return _0x1e6a53[_0x6211('0x22')](_0x52eb53)[_0x6211('0x23')](function(_0x5b50cd){return _0x5b50cd;});}return null;};}function removeEntity(_0x2c1c0a,_0x311054){return function(_0x16fb0c){if(_0x16fb0c){return _0x16fb0c['destroy']()[_0x6211('0x23')](function(){_0x2c1c0a[_0x6211('0x18')](0xcc)[_0x6211('0x19')]();});}};}function handleEntityNotFound(_0x4a13f8,_0x532778){return function(_0x4ebae9){if(!_0x4ebae9){_0x4a13f8['sendStatus'](0x194);}return _0x4ebae9;};}function handleError(_0x524537,_0x15a096){_0x15a096=_0x15a096||0x1f4;return function(_0x2badd2){logger[_0x6211('0x24')](_0x2badd2[_0x6211('0x25')]);if(_0x2badd2[_0x6211('0x26')]){delete _0x2badd2[_0x6211('0x26')];}_0x524537[_0x6211('0x18')](_0x15a096)[_0x6211('0x27')](_0x2badd2);};}exports[_0x6211('0x28')]=function(_0x19a369,_0x105721){var _0x38f5f8={'raw':!![],'where':{'id':_0x19a369[_0x6211('0x29')]['id']}},_0x3564f2={};_0x3564f2[_0x6211('0x2a')]=_[_0x6211('0x2b')](db[_0x6211('0x2c')]['rawAttributes']);_0x3564f2[_0x6211('0x2d')]=_[_0x6211('0x2b')](_0x19a369[_0x6211('0x2d')]);_0x3564f2['filters']=_['intersection'](_0x3564f2[_0x6211('0x2a')],_0x3564f2['query']);_0x38f5f8[_0x6211('0x2e')]=_[_0x6211('0x2f')](_0x3564f2[_0x6211('0x2a')],qs['fields'](_0x19a369[_0x6211('0x2d')][_0x6211('0x30')]));_0x38f5f8[_0x6211('0x2e')]=_0x38f5f8[_0x6211('0x2e')][_0x6211('0x31')]?_0x38f5f8['attributes']:_0x3564f2['model'];if(_0x19a369[_0x6211('0x2d')]['includeAll']){_0x38f5f8['include']=[{'all':!![]}];}_0x38f5f8=_['merge']({},_0x38f5f8,_0x19a369[_0x6211('0x32')]);return db[_0x6211('0x2c')][_0x6211('0x33')](_0x38f5f8)['then'](handleEntityNotFound(_0x105721,null))[_0x6211('0x23')](respondWithResult(_0x105721,null))['catch'](handleError(_0x105721,null));};exports[_0x6211('0x22')]=function(_0x355496,_0x3c12e7){if(_0x355496['body']['id']){delete _0x355496[_0x6211('0x34')]['id'];}return db[_0x6211('0x2c')][_0x6211('0x33')]({'where':{'id':_0x355496[_0x6211('0x29')]['id']}})[_0x6211('0x23')](handleEntityNotFound(_0x3c12e7,null))[_0x6211('0x23')](saveUpdates(_0x355496[_0x6211('0x34')],null))[_0x6211('0x23')](respondWithResult(_0x3c12e7,null))['catch'](handleError(_0x3c12e7,null));};exports[_0x6211('0x35')]=function(_0x32e27e,_0x1e2888){return db[_0x6211('0x2c')][_0x6211('0x33')]({'where':{'id':_0x32e27e['params']['id']}})[_0x6211('0x23')](handleEntityNotFound(_0x1e2888,null))[_0x6211('0x23')](removeEntity(_0x1e2888,null))[_0x6211('0x36')](handleError(_0x1e2888,null));};
\ No newline at end of file
+var _0xeb74=['status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','sendStatus','error','stack','name','send','show','params','keys','rawAttributes','query','filters','intersection','model','attributes','fields','length','include','merge','options','ChatApplication','find','catch','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x4c0379,_0x265e7b){var _0x2e58db=function(_0xfdc7dc){while(--_0xfdc7dc){_0x4c0379['push'](_0x4c0379['shift']());}};_0x2e58db(++_0x265e7b);}(_0xeb74,0xe3));var _0x4eb7=function(_0x59ebe1,_0x94a70a){_0x59ebe1=_0x59ebe1-0x0;var _0x1b8872=_0xeb74[_0x59ebe1];return _0x1b8872;};'use strict';var emlformat=require(_0x4eb7('0x0'));var rimraf=require(_0x4eb7('0x1'));var zipdir=require(_0x4eb7('0x2'));var jsonpatch=require(_0x4eb7('0x3'));var rp=require(_0x4eb7('0x4'));var moment=require(_0x4eb7('0x5'));var BPromise=require(_0x4eb7('0x6'));var Mustache=require('mustache');var util=require(_0x4eb7('0x7'));var path=require(_0x4eb7('0x8'));var sox=require(_0x4eb7('0x9'));var csv=require(_0x4eb7('0xa'));var ejs=require(_0x4eb7('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4eb7('0xc'));var squel=require('squel');var crypto=require(_0x4eb7('0xd'));var jsforce=require(_0x4eb7('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x4eb7('0xf'));var Papa=require(_0x4eb7('0x10'));var Redis=require('ioredis');var authService=require(_0x4eb7('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x4eb7('0x12'));var hardwareService=require(_0x4eb7('0x13'));var logger=require(_0x4eb7('0x14'))('api');var utils=require(_0x4eb7('0x15'));var config=require(_0x4eb7('0x16'));var licenseUtil=require(_0x4eb7('0x17'));var db=require(_0x4eb7('0x18'))['db'];function respondWithStatusCode(_0x35fa89,_0x4194e1){_0x4194e1=_0x4194e1||0xcc;return function(_0x3c9f45){if(_0x3c9f45){return _0x35fa89['sendStatus'](_0x4194e1);}return _0x35fa89['status'](_0x4194e1)['end']();};}function respondWithResult(_0x17fb81,_0x51f09d){_0x51f09d=_0x51f09d||0xc8;return function(_0x84c68b){if(_0x84c68b){return _0x17fb81[_0x4eb7('0x19')](_0x51f09d)[_0x4eb7('0x1a')](_0x84c68b);}};}function respondWithFilteredResult(_0x1c4a97,_0x5d6d5){return function(_0x21433d){if(_0x21433d){var _0x11674f=typeof _0x5d6d5[_0x4eb7('0x1b')]===_0x4eb7('0x1c')&&typeof _0x5d6d5[_0x4eb7('0x1d')]==='undefined';var _0xb86bc9=_0x21433d[_0x4eb7('0x1e')];var _0x3b6d41=_0x11674f?0x0:_0x5d6d5[_0x4eb7('0x1b')];var _0x302e16=_0x11674f?_0x21433d[_0x4eb7('0x1e')]:_0x5d6d5[_0x4eb7('0x1b')]+_0x5d6d5[_0x4eb7('0x1d')];var _0x5f4780;if(_0x302e16>=_0xb86bc9){_0x302e16=_0xb86bc9;_0x5f4780=0xc8;}else{_0x5f4780=0xce;}_0x1c4a97[_0x4eb7('0x19')](_0x5f4780);return _0x1c4a97[_0x4eb7('0x1f')](_0x4eb7('0x20'),_0x3b6d41+'-'+_0x302e16+'/'+_0xb86bc9)[_0x4eb7('0x1a')](_0x21433d);}return null;};}function patchUpdates(_0x32f0f5){return function(_0x2efd67){try{jsonpatch[_0x4eb7('0x21')](_0x2efd67,_0x32f0f5,!![]);}catch(_0x4ddbe4){return BPromise[_0x4eb7('0x22')](_0x4ddbe4);}return _0x2efd67[_0x4eb7('0x23')]();};}function saveUpdates(_0x4783b1,_0x164515){return function(_0x14a7be){if(_0x14a7be){return _0x14a7be[_0x4eb7('0x24')](_0x4783b1)[_0x4eb7('0x25')](function(_0x2df1b1){return _0x2df1b1;});}return null;};}function removeEntity(_0x1a2b8b,_0x13e871){return function(_0x4de2d9){if(_0x4de2d9){return _0x4de2d9[_0x4eb7('0x26')]()[_0x4eb7('0x25')](function(){_0x1a2b8b[_0x4eb7('0x19')](0xcc)[_0x4eb7('0x27')]();});}};}function handleEntityNotFound(_0x3e0da2,_0x25eb74){return function(_0x365060){if(!_0x365060){_0x3e0da2[_0x4eb7('0x28')](0x194);}return _0x365060;};}function handleError(_0x80b804,_0x248759){_0x248759=_0x248759||0x1f4;return function(_0xf83c11){logger[_0x4eb7('0x29')](_0xf83c11[_0x4eb7('0x2a')]);if(_0xf83c11[_0x4eb7('0x2b')]){delete _0xf83c11[_0x4eb7('0x2b')];}_0x80b804[_0x4eb7('0x19')](_0x248759)[_0x4eb7('0x2c')](_0xf83c11);};}exports[_0x4eb7('0x2d')]=function(_0x33a2c1,_0x28fda8){var _0x114c68={'raw':!![],'where':{'id':_0x33a2c1[_0x4eb7('0x2e')]['id']}},_0x17030a={};_0x17030a['model']=_[_0x4eb7('0x2f')](db['ChatApplication'][_0x4eb7('0x30')]);_0x17030a[_0x4eb7('0x31')]=_[_0x4eb7('0x2f')](_0x33a2c1[_0x4eb7('0x31')]);_0x17030a[_0x4eb7('0x32')]=_[_0x4eb7('0x33')](_0x17030a[_0x4eb7('0x34')],_0x17030a[_0x4eb7('0x31')]);_0x114c68[_0x4eb7('0x35')]=_['intersection'](_0x17030a[_0x4eb7('0x34')],qs['fields'](_0x33a2c1[_0x4eb7('0x31')][_0x4eb7('0x36')]));_0x114c68['attributes']=_0x114c68['attributes'][_0x4eb7('0x37')]?_0x114c68[_0x4eb7('0x35')]:_0x17030a[_0x4eb7('0x34')];if(_0x33a2c1[_0x4eb7('0x31')]['includeAll']){_0x114c68[_0x4eb7('0x38')]=[{'all':!![]}];}_0x114c68=_[_0x4eb7('0x39')]({},_0x114c68,_0x33a2c1[_0x4eb7('0x3a')]);return db[_0x4eb7('0x3b')][_0x4eb7('0x3c')](_0x114c68)['then'](handleEntityNotFound(_0x28fda8,null))[_0x4eb7('0x25')](respondWithResult(_0x28fda8,null))[_0x4eb7('0x3d')](handleError(_0x28fda8,null));};exports[_0x4eb7('0x24')]=function(_0x59d70a,_0x115642){if(_0x59d70a[_0x4eb7('0x3e')]['id']){delete _0x59d70a[_0x4eb7('0x3e')]['id'];}return db['ChatApplication'][_0x4eb7('0x3c')]({'where':{'id':_0x59d70a['params']['id']}})[_0x4eb7('0x25')](handleEntityNotFound(_0x115642,null))[_0x4eb7('0x25')](saveUpdates(_0x59d70a[_0x4eb7('0x3e')],null))[_0x4eb7('0x25')](respondWithResult(_0x115642,null))['catch'](handleError(_0x115642,null));};exports[_0x4eb7('0x26')]=function(_0xfd2721,_0x9c44e9){return db[_0x4eb7('0x3b')]['find']({'where':{'id':_0xfd2721['params']['id']}})['then'](handleEntityNotFound(_0x9c44e9,null))[_0x4eb7('0x25')](removeEntity(_0x9c44e9,null))[_0x4eb7('0x3d')](handleError(_0x9c44e9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x209f=['./chatApplication.attributes','exports','ChatApplication','chat_applications','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','bluebird','request-promise','path','../../config/environment'];(function(_0x39494f,_0x400b84){var _0x20bcc9=function(_0x25f794){while(--_0x25f794){_0x39494f['push'](_0x39494f['shift']());}};_0x20bcc9(++_0x400b84);}(_0x209f,0x199));var _0xf209=function(_0x4564d1,_0x5c1617){_0x4564d1=_0x4564d1-0x0;var _0x2691e3=_0x209f[_0x4564d1];return _0x2691e3;};'use strict';var _=require(_0xf209('0x0'));var util=require('util');var logger=require(_0xf209('0x1'))(_0xf209('0x2'));var moment=require('moment');var BPromise=require(_0xf209('0x3'));var rp=require(_0xf209('0x4'));var fs=require('fs');var path=require(_0xf209('0x5'));var rimraf=require('rimraf');var config=require(_0xf209('0x6'));var attributes=require(_0xf209('0x7'));module[_0xf209('0x8')]=function(_0x24b4e2,_0x46c481){return _0x24b4e2['define'](_0xf209('0x9'),attributes,{'tableName':_0xf209('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xf209('0xb'),'collate':_0xf209('0xc')});};
\ No newline at end of file
+var _0x831e=['rimraf','../../config/environment','./chatApplication.attributes','exports','ChatApplication','chat_applications','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','bluebird','request-promise','path'];(function(_0x3f55de,_0x3ae98f){var _0x2698de=function(_0x48f021){while(--_0x48f021){_0x3f55de['push'](_0x3f55de['shift']());}};_0x2698de(++_0x3ae98f);}(_0x831e,0xb0));var _0xe831=function(_0x2b2074,_0x1525fb){_0x2b2074=_0x2b2074-0x0;var _0x51ce87=_0x831e[_0x2b2074];return _0x51ce87;};'use strict';var _=require(_0xe831('0x0'));var util=require('util');var logger=require(_0xe831('0x1'))(_0xe831('0x2'));var moment=require('moment');var BPromise=require(_0xe831('0x3'));var rp=require(_0xe831('0x4'));var fs=require('fs');var path=require(_0xe831('0x5'));var rimraf=require(_0xe831('0x6'));var config=require(_0xe831('0x7'));var attributes=require(_0xe831('0x8'));module[_0xe831('0x9')]=function(_0x4430be,_0x5639d0){return _0x4430be['define'](_0xe831('0xa'),attributes,{'tableName':_0xe831('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xe831('0xc'),'collate':_0xe831('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d68=['randomstring','ioredis','../../config/utils','rpc','../../config/environment','client','request','then','info','ChatApplication,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','lodash','util','bluebird'];(function(_0xd0d424,_0x1151d2){var _0x20ab5e=function(_0xcfe0e3){while(--_0xcfe0e3){_0xd0d424['push'](_0xd0d424['shift']());}};_0x20ab5e(++_0x1151d2);}(_0x1d68,0x75));var _0x81d6=function(_0xce1a87,_0x372c44){_0xce1a87=_0xce1a87-0x0;var _0x26669d=_0x1d68[_0xce1a87];return _0x26669d;};'use strict';var _=require(_0x81d6('0x0'));var util=require(_0x81d6('0x1'));var moment=require('moment');var BPromise=require(_0x81d6('0x2'));var rs=require(_0x81d6('0x3'));var fs=require('fs');var Redis=require(_0x81d6('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x81d6('0x5'));var logger=require('../../config/logger')(_0x81d6('0x6'));var config=require(_0x81d6('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x81d6('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1c29cb,_0x95d314,_0x55cfbe){return new BPromise(function(_0x1948e1,_0x755abe){return client[_0x81d6('0x9')](_0x1c29cb,_0x55cfbe)[_0x81d6('0xa')](function(_0x446d91){logger[_0x81d6('0xb')](_0x81d6('0xc'),_0x95d314,_0x81d6('0xd'));logger[_0x81d6('0xe')]('ChatApplication,\x20%s,\x20%s,\x20%s',_0x95d314,'request\x20sent',JSON[_0x81d6('0xf')](_0x446d91));if(_0x446d91[_0x81d6('0x10')]){if(_0x446d91['error'][_0x81d6('0x11')]===0x1f4){logger[_0x81d6('0x10')](_0x81d6('0xc'),_0x95d314,_0x446d91[_0x81d6('0x10')][_0x81d6('0x12')]);return _0x755abe(_0x446d91['error'][_0x81d6('0x12')]);}logger['error']('ChatApplication,\x20%s,\x20%s',_0x95d314,_0x446d91[_0x81d6('0x10')]['message']);return _0x1948e1(_0x446d91['error'][_0x81d6('0x12')]);}else{logger[_0x81d6('0xb')](_0x81d6('0xc'),_0x95d314,_0x81d6('0xd'));_0x1948e1(_0x446d91[_0x81d6('0x13')][_0x81d6('0x12')]);}})['catch'](function(_0x28d708){logger[_0x81d6('0x10')](_0x81d6('0xc'),_0x95d314,_0x28d708);_0x755abe(_0x28d708);});});}
\ No newline at end of file
+var _0xcb80=['stringify','error','message','result','catch','lodash','util','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','ChatApplication,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x5b3ccf,_0x540e79){var _0x143c48=function(_0x4c029b){while(--_0x4c029b){_0x5b3ccf['push'](_0x5b3ccf['shift']());}};_0x143c48(++_0x540e79);}(_0xcb80,0x1a9));var _0x0cb8=function(_0x4dd026,_0x2067c8){_0x4dd026=_0x4dd026-0x0;var _0x47d468=_0xcb80[_0x4dd026];return _0x47d468;};'use strict';var _=require(_0x0cb8('0x0'));var util=require(_0x0cb8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0cb8('0x2'));var db=require(_0x0cb8('0x3'))['db'];var utils=require(_0x0cb8('0x4'));var logger=require(_0x0cb8('0x5'))(_0x0cb8('0x6'));var config=require(_0x0cb8('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x0cb8('0x8')][_0x0cb8('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3ee2c9,_0x5b7333,_0x9f31cc){return new BPromise(function(_0x39c760,_0x31572f){return client[_0x0cb8('0xa')](_0x3ee2c9,_0x9f31cc)[_0x0cb8('0xb')](function(_0x5e4e34){logger[_0x0cb8('0xc')](_0x0cb8('0xd'),_0x5b7333,'request\x20sent');logger[_0x0cb8('0xe')]('ChatApplication,\x20%s,\x20%s,\x20%s',_0x5b7333,_0x0cb8('0xf'),JSON[_0x0cb8('0x10')](_0x5e4e34));if(_0x5e4e34[_0x0cb8('0x11')]){if(_0x5e4e34[_0x0cb8('0x11')]['code']===0x1f4){logger[_0x0cb8('0x11')](_0x0cb8('0xd'),_0x5b7333,_0x5e4e34[_0x0cb8('0x11')][_0x0cb8('0x12')]);return _0x31572f(_0x5e4e34[_0x0cb8('0x11')][_0x0cb8('0x12')]);}logger[_0x0cb8('0x11')](_0x0cb8('0xd'),_0x5b7333,_0x5e4e34[_0x0cb8('0x11')][_0x0cb8('0x12')]);return _0x39c760(_0x5e4e34[_0x0cb8('0x11')]['message']);}else{logger[_0x0cb8('0xc')]('ChatApplication,\x20%s,\x20%s',_0x5b7333,_0x0cb8('0xf'));_0x39c760(_0x5e4e34[_0x0cb8('0x13')][_0x0cb8('0x12')]);}})[_0x0cb8('0x14')](function(_0x1a4c24){logger[_0x0cb8('0x11')](_0x0cb8('0xd'),_0x5b7333,_0x1a4c24);_0x31572f(_0x1a4c24);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd5a5=['util','path','connect-timeout','Router','../../components/interaction/service','./chatApplication.controller','get','/:id','show','put','update','isAuthenticated','destroy','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd5a5,0xd2));var _0x5d5a=function(_0x1d2431,_0x251ec5){_0x1d2431=_0x1d2431-0x0;var _0x560b53=_0xd5a5[_0x1d2431];return _0x560b53;};'use strict';var multer=require('multer');var util=require(_0x5d5a('0x0'));var path=require(_0x5d5a('0x1'));var timeout=require(_0x5d5a('0x2'));var express=require('express');var router=express[_0x5d5a('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x5d5a('0x4'));var config=require('../../config/environment');var controller=require(_0x5d5a('0x5'));router[_0x5d5a('0x6')](_0x5d5a('0x7'),auth['isAuthenticated'](),controller[_0x5d5a('0x8')]);router[_0x5d5a('0x9')](_0x5d5a('0x7'),auth['isAuthenticated'](),controller[_0x5d5a('0xa')]);router['delete'](_0x5d5a('0x7'),auth[_0x5d5a('0xb')](),controller[_0x5d5a('0xc')]);module[_0x5d5a('0xd')]=router;
\ No newline at end of file
+var _0x037e=['exports','multer','util','path','Router','fs-extra','../../components/auth/service','../../config/environment','./chatApplication.controller','get','show','put','/:id','update','delete','isAuthenticated','destroy'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x037e,0x1dd));var _0xe037=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x037e[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require(_0xe037('0x0'));var util=require(_0xe037('0x1'));var path=require(_0xe037('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xe037('0x3')]();var fs_extra=require(_0xe037('0x4'));var auth=require(_0xe037('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xe037('0x6'));var controller=require(_0xe037('0x7'));router[_0xe037('0x8')]('/:id',auth['isAuthenticated'](),controller[_0xe037('0x9')]);router[_0xe037('0xa')](_0xe037('0xb'),auth['isAuthenticated'](),controller[_0xe037('0xc')]);router[_0xe037('0xd')](_0xe037('0xb'),auth[_0xe037('0xe')](),controller[_0xe037('0xf')]);module[_0xe037('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c9c=['STRING','BOOLEAN','exports'];(function(_0x1e3881,_0x30c731){var _0xf705aa=function(_0x32b6a2){while(--_0x32b6a2){_0x1e3881['push'](_0x1e3881['shift']());}};_0xf705aa(++_0x30c731);}(_0x1c9c,0xa7));var _0xc1c9=function(_0x302325,_0x51c70c){_0x302325=_0x302325-0x0;var _0x3d0e32=_0x1c9c[_0x302325];return _0x3d0e32;};'use strict';var Sequelize=require('sequelize');module[_0xc1c9('0x0')]={'name':{'type':Sequelize[_0xc1c9('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0xc1c9('0x1')]},'write':{'type':Sequelize[_0xc1c9('0x2')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x458a=['exports','STRING','BOOLEAN','sequelize'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x458a,0xc7));var _0xa458=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x458a[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xa458('0x0'));module[_0xa458('0x1')]={'name':{'type':Sequelize[_0xa458('0x2')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'write':{'type':Sequelize[_0xa458('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2804=['query','keys','filters','attributes','intersection','fields','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','length','body','find','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','getMembers','findOne','filter','nolimit','removeMembers','addMessage','ChatGroupId','create','getMessages','$gte','format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','fs-extra','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','register','sendStatus','end','status','json','undefined','limit','count','offset','Content-Range','save','update','then','destroy','error','stack','name','send','index','map','ChatGroup','rawAttributes','fieldName','type','model'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x2804,0x86));var _0x4280=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x2804[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4280('0x0'));var zipdir=require(_0x4280('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4280('0x2'));var BPromise=require(_0x4280('0x3'));var Mustache=require(_0x4280('0x4'));var util=require(_0x4280('0x5'));var path=require(_0x4280('0x6'));var sox=require(_0x4280('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4280('0x8'));var _=require('lodash');var squel=require(_0x4280('0x9'));var crypto=require(_0x4280('0xa'));var jsforce=require(_0x4280('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x4280('0xc'));var querystring=require(_0x4280('0xd'));var Papa=require(_0x4280('0xe'));var Redis=require('ioredis');var authService=require(_0x4280('0xf'));var qs=require(_0x4280('0x10'));var as=require(_0x4280('0x11'));var hardwareService=require(_0x4280('0x12'));var logger=require('../../config/logger')(_0x4280('0x13'));var utils=require(_0x4280('0x14'));var config=require(_0x4280('0x15'));var licenseUtil=require(_0x4280('0x16'));var db=require(_0x4280('0x17'))['db'];config[_0x4280('0x18')]=_[_0x4280('0x19')](config['redis'],{'host':_0x4280('0x1a'),'port':0x18eb});var socket=require(_0x4280('0x1b'))(new Redis(config[_0x4280('0x18')]));require(_0x4280('0x1c'))[_0x4280('0x1d')](socket);function respondWithStatusCode(_0x5e647c,_0x5c6d23){_0x5c6d23=_0x5c6d23||0xcc;return function(_0x2e7c52){if(_0x2e7c52){return _0x5e647c[_0x4280('0x1e')](_0x5c6d23);}return _0x5e647c['status'](_0x5c6d23)[_0x4280('0x1f')]();};}function respondWithResult(_0x2e8cf9,_0x1cbdbd){_0x1cbdbd=_0x1cbdbd||0xc8;return function(_0x2ac460){if(_0x2ac460){return _0x2e8cf9[_0x4280('0x20')](_0x1cbdbd)[_0x4280('0x21')](_0x2ac460);}};}function respondWithFilteredResult(_0x3de263,_0x5c3cbe){return function(_0x22fba6){if(_0x22fba6){var _0x5e2efb=typeof _0x5c3cbe['offset']===_0x4280('0x22')&&typeof _0x5c3cbe[_0x4280('0x23')]===_0x4280('0x22');var _0x4199ac=_0x22fba6[_0x4280('0x24')];var _0x1bcb62=_0x5e2efb?0x0:_0x5c3cbe[_0x4280('0x25')];var _0x2d3348=_0x5e2efb?_0x22fba6['count']:_0x5c3cbe[_0x4280('0x25')]+_0x5c3cbe[_0x4280('0x23')];var _0x4385d6;if(_0x2d3348>=_0x4199ac){_0x2d3348=_0x4199ac;_0x4385d6=0xc8;}else{_0x4385d6=0xce;}_0x3de263[_0x4280('0x20')](_0x4385d6);return _0x3de263['set'](_0x4280('0x26'),_0x1bcb62+'-'+_0x2d3348+'/'+_0x4199ac)[_0x4280('0x21')](_0x22fba6);}return null;};}function patchUpdates(_0x3d5620){return function(_0x13b52d){try{jsonpatch['apply'](_0x13b52d,_0x3d5620,!![]);}catch(_0x3dae68){return BPromise['reject'](_0x3dae68);}return _0x13b52d[_0x4280('0x27')]();};}function saveUpdates(_0x15826a,_0x4e98e1){return function(_0x4cc3c4){if(_0x4cc3c4){return _0x4cc3c4[_0x4280('0x28')](_0x15826a)[_0x4280('0x29')](function(_0x5acec8){return _0x5acec8;});}return null;};}function removeEntity(_0x4343e5,_0x5bd9fb){return function(_0x3a8b85){if(_0x3a8b85){return _0x3a8b85[_0x4280('0x2a')]()[_0x4280('0x29')](function(){_0x4343e5[_0x4280('0x20')](0xcc)[_0x4280('0x1f')]();});}};}function handleEntityNotFound(_0x3b2a1a,_0x4c9ad2){return function(_0x541fc9){if(!_0x541fc9){_0x3b2a1a[_0x4280('0x1e')](0x194);}return _0x541fc9;};}function handleError(_0x455581,_0x1a70af){_0x1a70af=_0x1a70af||0x1f4;return function(_0xf255f2){logger[_0x4280('0x2b')](_0xf255f2[_0x4280('0x2c')]);if(_0xf255f2[_0x4280('0x2d')]){delete _0xf255f2[_0x4280('0x2d')];}_0x455581[_0x4280('0x20')](_0x1a70af)[_0x4280('0x2e')](_0xf255f2);};}exports[_0x4280('0x2f')]=function(_0xabaecc,_0x1ae65c){var _0x201bbd={},_0x37ac2e={},_0x336d4b={'count':0x0,'rows':[]};var _0x5137d6=_[_0x4280('0x30')](db[_0x4280('0x31')][_0x4280('0x32')],function(_0x1a96c4){return{'name':_0x1a96c4[_0x4280('0x33')],'type':_0x1a96c4[_0x4280('0x34')]['key']};});_0x37ac2e[_0x4280('0x35')]=_[_0x4280('0x30')](_0x5137d6,_0x4280('0x2d'));_0x37ac2e[_0x4280('0x36')]=_[_0x4280('0x37')](_0xabaecc[_0x4280('0x36')]);_0x37ac2e[_0x4280('0x38')]=_['intersection'](_0x37ac2e['model'],_0x37ac2e['query']);_0x201bbd[_0x4280('0x39')]=_[_0x4280('0x3a')](_0x37ac2e[_0x4280('0x35')],qs['fields'](_0xabaecc['query'][_0x4280('0x3b')]));_0x201bbd['attributes']=_0x201bbd[_0x4280('0x39')]['length']?_0x201bbd[_0x4280('0x39')]:_0x37ac2e[_0x4280('0x35')];if(!_0xabaecc[_0x4280('0x36')]['hasOwnProperty']('nolimit')){_0x201bbd['limit']=qs['limit'](_0xabaecc['query'][_0x4280('0x23')]);_0x201bbd[_0x4280('0x25')]=qs[_0x4280('0x25')](_0xabaecc[_0x4280('0x36')][_0x4280('0x25')]);}_0x201bbd[_0x4280('0x3c')]=qs[_0x4280('0x3d')](_0xabaecc['query']['sort']);_0x201bbd[_0x4280('0x3e')]=qs[_0x4280('0x38')](_[_0x4280('0x3f')](_0xabaecc['query'],_0x37ac2e['filters']),_0x5137d6);if(_0xabaecc[_0x4280('0x36')]['filter']){_0x201bbd[_0x4280('0x3e')]=_[_0x4280('0x40')](_0x201bbd[_0x4280('0x3e')],{'$or':_[_0x4280('0x30')](_0x5137d6,function(_0x4e4422){if(_0x4e4422['type']!==_0x4280('0x41')){var _0x2d61a4={};_0x2d61a4[_0x4e4422['name']]={'$like':'%'+_0xabaecc[_0x4280('0x36')]['filter']+'%'};return _0x2d61a4;}})});}_0x201bbd=_[_0x4280('0x40')]({},_0x201bbd,_0xabaecc[_0x4280('0x42')]);var _0xdc46a9={'where':_0x201bbd[_0x4280('0x3e')]};return db[_0x4280('0x31')][_0x4280('0x24')](_0xdc46a9)[_0x4280('0x29')](function(_0x427b97){_0x336d4b[_0x4280('0x24')]=_0x427b97;if(_0xabaecc[_0x4280('0x36')][_0x4280('0x43')]){_0x201bbd[_0x4280('0x44')]=[{'all':!![]}];}return db[_0x4280('0x31')][_0x4280('0x45')](_0x201bbd);})['then'](function(_0x1caa22){_0x336d4b[_0x4280('0x46')]=_0x1caa22;return _0x336d4b;})[_0x4280('0x29')](respondWithFilteredResult(_0x1ae65c,_0x201bbd))[_0x4280('0x47')](handleError(_0x1ae65c,null));};exports['show']=function(_0x4e7a29,_0x450ea7){var _0x5df090={'raw':!![],'where':{'id':_0x4e7a29[_0x4280('0x48')]['id']}},_0x3feac6={};_0x3feac6[_0x4280('0x35')]=_['keys'](db[_0x4280('0x31')]['rawAttributes']);_0x3feac6['query']=_[_0x4280('0x37')](_0x4e7a29[_0x4280('0x36')]);_0x3feac6[_0x4280('0x38')]=_['intersection'](_0x3feac6['model'],_0x3feac6['query']);_0x5df090['attributes']=_['intersection'](_0x3feac6[_0x4280('0x35')],qs['fields'](_0x4e7a29[_0x4280('0x36')]['fields']));_0x5df090[_0x4280('0x39')]=_0x5df090['attributes'][_0x4280('0x49')]?_0x5df090[_0x4280('0x39')]:_0x3feac6[_0x4280('0x35')];if(_0x4e7a29['query'][_0x4280('0x43')]){_0x5df090[_0x4280('0x44')]=[{'all':!![]}];}_0x5df090=_['merge']({},_0x5df090,_0x4e7a29[_0x4280('0x42')]);return db['ChatGroup']['find'](_0x5df090)[_0x4280('0x29')](handleEntityNotFound(_0x450ea7,null))['then'](respondWithResult(_0x450ea7,null))[_0x4280('0x47')](handleError(_0x450ea7,null));};exports['create']=function(_0x8d6539,_0x14fd06){return db[_0x4280('0x31')]['create'](_0x8d6539[_0x4280('0x4a')],{})[_0x4280('0x29')](respondWithResult(_0x14fd06,0xc9))[_0x4280('0x47')](handleError(_0x14fd06,null));};exports['update']=function(_0x456fa1,_0x4e6f21){if(_0x456fa1[_0x4280('0x4a')]['id']){delete _0x456fa1[_0x4280('0x4a')]['id'];}return db[_0x4280('0x31')][_0x4280('0x4b')]({'where':{'id':_0x456fa1['params']['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x4e6f21,null))[_0x4280('0x29')](saveUpdates(_0x456fa1['body'],null))[_0x4280('0x29')](respondWithResult(_0x4e6f21,null))[_0x4280('0x47')](handleError(_0x4e6f21,null));};exports[_0x4280('0x2a')]=function(_0x5f44ff,_0x55c57d){return db['ChatGroup'][_0x4280('0x4b')]({'where':{'id':_0x5f44ff['params']['id']}})['then'](handleEntityNotFound(_0x55c57d,null))[_0x4280('0x29')](removeEntity(_0x55c57d,null))[_0x4280('0x47')](handleError(_0x55c57d,null));};exports[_0x4280('0x4c')]=function(_0x3b8097,_0x5e4305){return db[_0x4280('0x31')][_0x4280('0x4c')]()[_0x4280('0x29')](respondWithResult(_0x5e4305,null))[_0x4280('0x47')](handleError(_0x5e4305,null));};exports[_0x4280('0x4d')]=function(_0x26c0aa,_0x1113b3,_0x290f11){return db[_0x4280('0x4e')]['count']({'where':{'ChatGroupId':_0x26c0aa[_0x4280('0x48')]['id'],'ToId':_0x26c0aa[_0x4280('0x4f')]['id'],'read':![]}})[_0x4280('0x29')](function(_0x43d0d1){return{'id':_[_0x4280('0x50')](_0x26c0aa[_0x4280('0x48')]['id']),'count':_0x43d0d1};})[_0x4280('0x29')](respondWithResult(_0x1113b3,null))[_0x4280('0x47')](handleError(_0x1113b3,null));};exports[_0x4280('0x51')]=function(_0xae5b8d,_0x563876,_0x54a9d9){return db[_0x4280('0x31')][_0x4280('0x4b')]({'where':{'id':_0xae5b8d['params']['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x563876,null))[_0x4280('0x29')](function(_0x579fd3){if(_0x579fd3){return _0x579fd3[_0x4280('0x51')](_0xae5b8d[_0x4280('0x4a')][_0x4280('0x52')],_['omit'](_0xae5b8d[_0x4280('0x4a')],[_0x4280('0x52'),'id'])||{});}})[_0x4280('0x29')](respondWithResult(_0x563876,null))[_0x4280('0x47')](handleError(_0x563876,null));};exports[_0x4280('0x53')]=function(_0x40dac2,_0x5c958b,_0x29f382){var _0x59ff7f={};var _0x50e224={};var _0x47f07c;var _0x34707b;return db[_0x4280('0x31')][_0x4280('0x54')]({'where':{'id':_0x40dac2[_0x4280('0x48')]['id']}})['then'](handleEntityNotFound(_0x5c958b,null))[_0x4280('0x29')](function(_0x4183c5){if(_0x4183c5){_0x47f07c=_0x4183c5;_0x50e224['model']=_['keys'](db['User']['rawAttributes']);_0x50e224[_0x4280('0x36')]=_[_0x4280('0x37')](_0x40dac2[_0x4280('0x36')]);_0x50e224[_0x4280('0x38')]=_[_0x4280('0x3a')](_0x50e224['model'],_0x50e224[_0x4280('0x36')]);_0x59ff7f[_0x4280('0x39')]=_[_0x4280('0x3a')](_0x50e224['model'],qs['fields'](_0x40dac2[_0x4280('0x36')][_0x4280('0x3b')]));_0x59ff7f[_0x4280('0x39')]=_0x59ff7f[_0x4280('0x39')][_0x4280('0x49')]?_0x59ff7f['attributes']:_0x50e224['model'];_0x59ff7f[_0x4280('0x3c')]=qs[_0x4280('0x3d')](_0x40dac2[_0x4280('0x36')]['sort']);_0x59ff7f[_0x4280('0x3e')]=qs['filters'](_[_0x4280('0x3f')](_0x40dac2['query'],_0x50e224[_0x4280('0x38')]));if(_0x40dac2[_0x4280('0x36')][_0x4280('0x55')]){_0x59ff7f['where']=_[_0x4280('0x40')](_0x59ff7f['where'],{'$or':_[_0x4280('0x30')](_0x59ff7f['attributes'],function(_0x49d944){var _0x4b3343={};_0x4b3343[_0x49d944]={'$like':'%'+_0x40dac2[_0x4280('0x36')][_0x4280('0x55')]+'%'};return _0x4b3343;})});}_0x59ff7f=_['merge']({},_0x59ff7f,_0x40dac2['options']);return _0x47f07c[_0x4280('0x53')](_0x59ff7f);}})[_0x4280('0x29')](function(_0x4edee3){if(_0x4edee3){_0x34707b=_0x4edee3[_0x4280('0x49')];if(!_0x40dac2[_0x4280('0x36')]['hasOwnProperty'](_0x4280('0x56'))){_0x59ff7f[_0x4280('0x23')]=qs[_0x4280('0x23')](_0x40dac2[_0x4280('0x36')][_0x4280('0x23')]);_0x59ff7f['offset']=qs[_0x4280('0x25')](_0x40dac2[_0x4280('0x36')][_0x4280('0x25')]);}return _0x47f07c[_0x4280('0x53')](_0x59ff7f);}})[_0x4280('0x29')](function(_0x4c5714){if(_0x4c5714){return _0x4c5714?{'count':_0x34707b,'rows':_0x4c5714}:null;}})[_0x4280('0x29')](respondWithResult(_0x5c958b,null))[_0x4280('0x47')](handleError(_0x5c958b,null));};exports[_0x4280('0x57')]=function(_0x460885,_0x42fb9f,_0xf16f7c){return db['ChatGroup'][_0x4280('0x4b')]({'where':{'id':_0x460885[_0x4280('0x48')]['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x42fb9f,null))[_0x4280('0x29')](function(_0x362f8e){if(_0x362f8e){return _0x362f8e[_0x4280('0x57')](_0x460885[_0x4280('0x36')][_0x4280('0x52')]);}})[_0x4280('0x29')](respondWithStatusCode(_0x42fb9f,null))['catch'](handleError(_0x42fb9f,null));};exports[_0x4280('0x58')]=function(_0xc674d4,_0x212458,_0xe0ba43){if(_0xc674d4['body']['id']){delete _0xc674d4[_0x4280('0x4a')]['id'];}return db[_0x4280('0x31')][_0x4280('0x4b')]({'where':{'id':_0xc674d4[_0x4280('0x48')]['id']}})['then'](handleEntityNotFound(_0x212458,null))['then'](function(_0x15d696){if(_0x15d696){_0xc674d4[_0x4280('0x4a')][_0x4280('0x59')]=_0x15d696['id'];return db[_0x4280('0x4e')][_0x4280('0x5a')](_0xc674d4[_0x4280('0x4a')]);}})[_0x4280('0x29')](respondWithResult(_0x212458,null))[_0x4280('0x47')](handleError(_0x212458,null));};exports[_0x4280('0x5b')]=function(_0x44d9e9,_0x5097cf,_0x494f1e){var _0x20661e={};var _0x215c29={};var _0x40cb0a;var _0x5a6789;return db['ChatGroup'][_0x4280('0x54')]({'where':{'id':_0x44d9e9['params']['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x5097cf,null))[_0x4280('0x29')](function(_0x19d736){if(_0x19d736){_0x40cb0a=_0x19d736;_0x215c29['model']=_[_0x4280('0x37')](db[_0x4280('0x4e')][_0x4280('0x32')]);_0x215c29[_0x4280('0x36')]=_[_0x4280('0x37')](_0x44d9e9[_0x4280('0x36')]);_0x215c29['filters']=_[_0x4280('0x3a')](_0x215c29[_0x4280('0x35')],_0x215c29['query']);_0x20661e[_0x4280('0x39')]=_[_0x4280('0x3a')](_0x215c29['model'],qs[_0x4280('0x3b')](_0x44d9e9[_0x4280('0x36')]['fields']));_0x20661e[_0x4280('0x39')]=_0x20661e[_0x4280('0x39')][_0x4280('0x49')]?_0x20661e['attributes']:_0x215c29['model'];_0x20661e[_0x4280('0x3c')]=qs[_0x4280('0x3d')](_0x44d9e9['query'][_0x4280('0x3d')]);_0x20661e[_0x4280('0x3e')]=qs[_0x4280('0x38')](_['pick'](_0x44d9e9[_0x4280('0x36')],_0x215c29[_0x4280('0x38')]));if(_0x44d9e9[_0x4280('0x36')]['filter']){_0x20661e[_0x4280('0x3e')]=_[_0x4280('0x40')](_0x20661e[_0x4280('0x3e')],{'$or':_[_0x4280('0x30')](_0x20661e[_0x4280('0x39')],function(_0x576d13){var _0x17fd93={};_0x17fd93[_0x576d13]={'$like':'%'+_0x44d9e9[_0x4280('0x36')][_0x4280('0x55')]+'%'};return _0x17fd93;})});}if(_0x44d9e9['query'][_0x4280('0x5c')]){var _0x179fc0=_0x44d9e9['query'][_0x4280('0x5c')]['split'](',');var _0x2d0709={};_0x2d0709[_0x179fc0[0x0]]={'$gte':moment(_0x179fc0[0x1])[_0x4280('0x5d')]('YYYY-MM-DD\x20HH:mm:ss')};_0x20661e[_0x4280('0x3e')]=_[_0x4280('0x40')](_0x20661e['where'],_0x2d0709);}_0x20661e=_['merge']({},_0x20661e,_0x44d9e9[_0x4280('0x42')]);return _0x40cb0a['getMessages'](_0x20661e);}})[_0x4280('0x29')](function(_0x495484){if(_0x495484){_0x5a6789=_0x495484['length'];if(!_0x44d9e9[_0x4280('0x36')]['hasOwnProperty'](_0x4280('0x56'))){_0x20661e[_0x4280('0x23')]=qs[_0x4280('0x23')](_0x44d9e9[_0x4280('0x36')]['limit']);_0x20661e[_0x4280('0x25')]=qs[_0x4280('0x25')](_0x44d9e9[_0x4280('0x36')][_0x4280('0x25')]);}return _0x40cb0a[_0x4280('0x5b')](_0x20661e);}})[_0x4280('0x29')](function(_0x19d80d){if(_0x19d80d){return _0x19d80d?{'count':_0x5a6789,'rows':_0x19d80d}:null;}})[_0x4280('0x29')](respondWithResult(_0x5097cf,null))[_0x4280('0x47')](handleError(_0x5097cf,null));};
\ No newline at end of file
+var _0xa216=['omit','getMembers','User','removeMembers','findOne','$gte','format','getMessages','eml-format','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','ChatGroup','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','count','includeAll','include','rows','catch','show','params','options','find','create','body','describe','getUnread','ChatInternalMessage','user','addMembers','ids'];(function(_0x40e06e,_0x330b9a){var _0x382c2b=function(_0x41132c){while(--_0x41132c){_0x40e06e['push'](_0x40e06e['shift']());}};_0x382c2b(++_0x330b9a);}(_0xa216,0x69));var _0x6a21=function(_0x281aa2,_0x55282c){_0x281aa2=_0x281aa2-0x0;var _0x5475d2=_0xa216[_0x281aa2];return _0x5475d2;};'use strict';var emlformat=require(_0x6a21('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6a21('0x1'));var rp=require(_0x6a21('0x2'));var moment=require(_0x6a21('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x6a21('0x4'));var util=require(_0x6a21('0x5'));var path=require('path');var sox=require(_0x6a21('0x6'));var csv=require(_0x6a21('0x7'));var ejs=require(_0x6a21('0x8'));var fs=require('fs');var fs_extra=require(_0x6a21('0x9'));var _=require(_0x6a21('0xa'));var squel=require(_0x6a21('0xb'));var crypto=require(_0x6a21('0xc'));var jsforce=require(_0x6a21('0xd'));var deskjs=require(_0x6a21('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x6a21('0xf'));var Redis=require(_0x6a21('0x10'));var authService=require(_0x6a21('0x11'));var qs=require(_0x6a21('0x12'));var as=require(_0x6a21('0x13'));var hardwareService=require(_0x6a21('0x14'));var logger=require(_0x6a21('0x15'))(_0x6a21('0x16'));var utils=require(_0x6a21('0x17'));var config=require(_0x6a21('0x18'));var licenseUtil=require(_0x6a21('0x19'));var db=require('../../mysqldb')['db'];config[_0x6a21('0x1a')]=_['defaults'](config['redis'],{'host':_0x6a21('0x1b'),'port':0x18eb});var socket=require(_0x6a21('0x1c'))(new Redis(config[_0x6a21('0x1a')]));require('./chatGroup.socket')[_0x6a21('0x1d')](socket);function respondWithStatusCode(_0x2dd42f,_0x1c3ba3){_0x1c3ba3=_0x1c3ba3||0xcc;return function(_0x35a9cd){if(_0x35a9cd){return _0x2dd42f[_0x6a21('0x1e')](_0x1c3ba3);}return _0x2dd42f[_0x6a21('0x1f')](_0x1c3ba3)[_0x6a21('0x20')]();};}function respondWithResult(_0x1e8402,_0x34e398){_0x34e398=_0x34e398||0xc8;return function(_0x2940dc){if(_0x2940dc){return _0x1e8402[_0x6a21('0x1f')](_0x34e398)[_0x6a21('0x21')](_0x2940dc);}};}function respondWithFilteredResult(_0x5704e1,_0xd56564){return function(_0x6b66ad){if(_0x6b66ad){var _0x43fdbb=typeof _0xd56564[_0x6a21('0x22')]===_0x6a21('0x23')&&typeof _0xd56564[_0x6a21('0x24')]===_0x6a21('0x23');var _0x48284b=_0x6b66ad['count'];var _0x41764d=_0x43fdbb?0x0:_0xd56564[_0x6a21('0x22')];var _0x297138=_0x43fdbb?_0x6b66ad['count']:_0xd56564[_0x6a21('0x22')]+_0xd56564['limit'];var _0x5e916f;if(_0x297138>=_0x48284b){_0x297138=_0x48284b;_0x5e916f=0xc8;}else{_0x5e916f=0xce;}_0x5704e1[_0x6a21('0x1f')](_0x5e916f);return _0x5704e1[_0x6a21('0x25')](_0x6a21('0x26'),_0x41764d+'-'+_0x297138+'/'+_0x48284b)[_0x6a21('0x21')](_0x6b66ad);}return null;};}function patchUpdates(_0x56cf14){return function(_0x3c660d){try{jsonpatch[_0x6a21('0x27')](_0x3c660d,_0x56cf14,!![]);}catch(_0x1c3f98){return BPromise[_0x6a21('0x28')](_0x1c3f98);}return _0x3c660d[_0x6a21('0x29')]();};}function saveUpdates(_0x18780f,_0x5ca933){return function(_0x43faee){if(_0x43faee){return _0x43faee[_0x6a21('0x2a')](_0x18780f)[_0x6a21('0x2b')](function(_0x404330){return _0x404330;});}return null;};}function removeEntity(_0x18ac7e,_0x576a0a){return function(_0x5df219){if(_0x5df219){return _0x5df219[_0x6a21('0x2c')]()[_0x6a21('0x2b')](function(){_0x18ac7e[_0x6a21('0x1f')](0xcc)[_0x6a21('0x20')]();});}};}function handleEntityNotFound(_0x478509,_0x300a43){return function(_0x349c02){if(!_0x349c02){_0x478509[_0x6a21('0x1e')](0x194);}return _0x349c02;};}function handleError(_0x4a930d,_0xc84360){_0xc84360=_0xc84360||0x1f4;return function(_0x318869){logger[_0x6a21('0x2d')](_0x318869[_0x6a21('0x2e')]);if(_0x318869[_0x6a21('0x2f')]){delete _0x318869[_0x6a21('0x2f')];}_0x4a930d[_0x6a21('0x1f')](_0xc84360)['send'](_0x318869);};}exports[_0x6a21('0x30')]=function(_0x4f18f9,_0x9ccebb){var _0xde479d={},_0x48def0={},_0xf57255={'count':0x0,'rows':[]};var _0xc941ba=_[_0x6a21('0x31')](db[_0x6a21('0x32')][_0x6a21('0x33')],function(_0x27f3fc){return{'name':_0x27f3fc[_0x6a21('0x34')],'type':_0x27f3fc[_0x6a21('0x35')][_0x6a21('0x36')]};});_0x48def0[_0x6a21('0x37')]=_[_0x6a21('0x31')](_0xc941ba,_0x6a21('0x2f'));_0x48def0[_0x6a21('0x38')]=_[_0x6a21('0x39')](_0x4f18f9['query']);_0x48def0['filters']=_[_0x6a21('0x3a')](_0x48def0[_0x6a21('0x37')],_0x48def0[_0x6a21('0x38')]);_0xde479d[_0x6a21('0x3b')]=_[_0x6a21('0x3a')](_0x48def0['model'],qs[_0x6a21('0x3c')](_0x4f18f9[_0x6a21('0x38')][_0x6a21('0x3c')]));_0xde479d[_0x6a21('0x3b')]=_0xde479d['attributes'][_0x6a21('0x3d')]?_0xde479d[_0x6a21('0x3b')]:_0x48def0[_0x6a21('0x37')];if(!_0x4f18f9[_0x6a21('0x38')][_0x6a21('0x3e')](_0x6a21('0x3f'))){_0xde479d[_0x6a21('0x24')]=qs[_0x6a21('0x24')](_0x4f18f9['query'][_0x6a21('0x24')]);_0xde479d[_0x6a21('0x22')]=qs['offset'](_0x4f18f9[_0x6a21('0x38')][_0x6a21('0x22')]);}_0xde479d[_0x6a21('0x40')]=qs['sort'](_0x4f18f9[_0x6a21('0x38')][_0x6a21('0x41')]);_0xde479d[_0x6a21('0x42')]=qs[_0x6a21('0x43')](_[_0x6a21('0x44')](_0x4f18f9['query'],_0x48def0['filters']),_0xc941ba);if(_0x4f18f9[_0x6a21('0x38')][_0x6a21('0x45')]){_0xde479d[_0x6a21('0x42')]=_[_0x6a21('0x46')](_0xde479d[_0x6a21('0x42')],{'$or':_[_0x6a21('0x31')](_0xc941ba,function(_0x341d70){if(_0x341d70[_0x6a21('0x35')]!==_0x6a21('0x47')){var _0x2f5d24={};_0x2f5d24[_0x341d70['name']]={'$like':'%'+_0x4f18f9[_0x6a21('0x38')][_0x6a21('0x45')]+'%'};return _0x2f5d24;}})});}_0xde479d=_[_0x6a21('0x46')]({},_0xde479d,_0x4f18f9['options']);var _0x2708e9={'where':_0xde479d[_0x6a21('0x42')]};return db[_0x6a21('0x32')][_0x6a21('0x48')](_0x2708e9)['then'](function(_0x579595){_0xf57255[_0x6a21('0x48')]=_0x579595;if(_0x4f18f9[_0x6a21('0x38')][_0x6a21('0x49')]){_0xde479d[_0x6a21('0x4a')]=[{'all':!![]}];}return db['ChatGroup']['findAll'](_0xde479d);})['then'](function(_0x20edcb){_0xf57255[_0x6a21('0x4b')]=_0x20edcb;return _0xf57255;})[_0x6a21('0x2b')](respondWithFilteredResult(_0x9ccebb,_0xde479d))[_0x6a21('0x4c')](handleError(_0x9ccebb,null));};exports[_0x6a21('0x4d')]=function(_0x467d3d,_0x568664){var _0x4f91c0={'raw':!![],'where':{'id':_0x467d3d[_0x6a21('0x4e')]['id']}},_0x94ede8={};_0x94ede8[_0x6a21('0x37')]=_['keys'](db[_0x6a21('0x32')][_0x6a21('0x33')]);_0x94ede8['query']=_['keys'](_0x467d3d[_0x6a21('0x38')]);_0x94ede8[_0x6a21('0x43')]=_['intersection'](_0x94ede8['model'],_0x94ede8[_0x6a21('0x38')]);_0x4f91c0[_0x6a21('0x3b')]=_[_0x6a21('0x3a')](_0x94ede8[_0x6a21('0x37')],qs[_0x6a21('0x3c')](_0x467d3d['query'][_0x6a21('0x3c')]));_0x4f91c0[_0x6a21('0x3b')]=_0x4f91c0[_0x6a21('0x3b')][_0x6a21('0x3d')]?_0x4f91c0[_0x6a21('0x3b')]:_0x94ede8[_0x6a21('0x37')];if(_0x467d3d['query']['includeAll']){_0x4f91c0[_0x6a21('0x4a')]=[{'all':!![]}];}_0x4f91c0=_[_0x6a21('0x46')]({},_0x4f91c0,_0x467d3d[_0x6a21('0x4f')]);return db[_0x6a21('0x32')][_0x6a21('0x50')](_0x4f91c0)[_0x6a21('0x2b')](handleEntityNotFound(_0x568664,null))['then'](respondWithResult(_0x568664,null))['catch'](handleError(_0x568664,null));};exports[_0x6a21('0x51')]=function(_0x2336eb,_0x1b347f){return db[_0x6a21('0x32')][_0x6a21('0x51')](_0x2336eb[_0x6a21('0x52')],{})[_0x6a21('0x2b')](respondWithResult(_0x1b347f,0xc9))[_0x6a21('0x4c')](handleError(_0x1b347f,null));};exports[_0x6a21('0x2a')]=function(_0xa3a783,_0x2af0d9){if(_0xa3a783[_0x6a21('0x52')]['id']){delete _0xa3a783[_0x6a21('0x52')]['id'];}return db[_0x6a21('0x32')][_0x6a21('0x50')]({'where':{'id':_0xa3a783['params']['id']}})[_0x6a21('0x2b')](handleEntityNotFound(_0x2af0d9,null))[_0x6a21('0x2b')](saveUpdates(_0xa3a783[_0x6a21('0x52')],null))[_0x6a21('0x2b')](respondWithResult(_0x2af0d9,null))[_0x6a21('0x4c')](handleError(_0x2af0d9,null));};exports[_0x6a21('0x2c')]=function(_0x196efd,_0x4ebf7f){return db[_0x6a21('0x32')][_0x6a21('0x50')]({'where':{'id':_0x196efd['params']['id']}})[_0x6a21('0x2b')](handleEntityNotFound(_0x4ebf7f,null))[_0x6a21('0x2b')](removeEntity(_0x4ebf7f,null))[_0x6a21('0x4c')](handleError(_0x4ebf7f,null));};exports[_0x6a21('0x53')]=function(_0x37bcb6,_0x389d95){return db[_0x6a21('0x32')][_0x6a21('0x53')]()['then'](respondWithResult(_0x389d95,null))[_0x6a21('0x4c')](handleError(_0x389d95,null));};exports[_0x6a21('0x54')]=function(_0x450806,_0x46e89a,_0x49a9fe){return db[_0x6a21('0x55')]['count']({'where':{'ChatGroupId':_0x450806[_0x6a21('0x4e')]['id'],'ToId':_0x450806[_0x6a21('0x56')]['id'],'read':![]}})[_0x6a21('0x2b')](function(_0x2ca4c8){return{'id':_['toInteger'](_0x450806[_0x6a21('0x4e')]['id']),'count':_0x2ca4c8};})[_0x6a21('0x2b')](respondWithResult(_0x46e89a,null))['catch'](handleError(_0x46e89a,null));};exports['addMembers']=function(_0xf0efe9,_0x47ef49,_0x43560a){return db[_0x6a21('0x32')][_0x6a21('0x50')]({'where':{'id':_0xf0efe9[_0x6a21('0x4e')]['id']}})[_0x6a21('0x2b')](handleEntityNotFound(_0x47ef49,null))['then'](function(_0x37b34a){if(_0x37b34a){return _0x37b34a[_0x6a21('0x57')](_0xf0efe9['body'][_0x6a21('0x58')],_[_0x6a21('0x59')](_0xf0efe9['body'],[_0x6a21('0x58'),'id'])||{});}})[_0x6a21('0x2b')](respondWithResult(_0x47ef49,null))[_0x6a21('0x4c')](handleError(_0x47ef49,null));};exports[_0x6a21('0x5a')]=function(_0x30be55,_0x57c6fe,_0x4bf843){var _0x5812f0={};var _0x58282c={};var _0x14562b;var _0x263688;return db[_0x6a21('0x32')]['findOne']({'where':{'id':_0x30be55[_0x6a21('0x4e')]['id']}})[_0x6a21('0x2b')](handleEntityNotFound(_0x57c6fe,null))[_0x6a21('0x2b')](function(_0x2acd6b){if(_0x2acd6b){_0x14562b=_0x2acd6b;_0x58282c[_0x6a21('0x37')]=_[_0x6a21('0x39')](db[_0x6a21('0x5b')][_0x6a21('0x33')]);_0x58282c[_0x6a21('0x38')]=_['keys'](_0x30be55['query']);_0x58282c['filters']=_['intersection'](_0x58282c['model'],_0x58282c[_0x6a21('0x38')]);_0x5812f0[_0x6a21('0x3b')]=_[_0x6a21('0x3a')](_0x58282c['model'],qs[_0x6a21('0x3c')](_0x30be55['query'][_0x6a21('0x3c')]));_0x5812f0[_0x6a21('0x3b')]=_0x5812f0[_0x6a21('0x3b')]['length']?_0x5812f0['attributes']:_0x58282c[_0x6a21('0x37')];_0x5812f0[_0x6a21('0x40')]=qs[_0x6a21('0x41')](_0x30be55[_0x6a21('0x38')]['sort']);_0x5812f0[_0x6a21('0x42')]=qs['filters'](_[_0x6a21('0x44')](_0x30be55[_0x6a21('0x38')],_0x58282c[_0x6a21('0x43')]));if(_0x30be55[_0x6a21('0x38')][_0x6a21('0x45')]){_0x5812f0['where']=_[_0x6a21('0x46')](_0x5812f0['where'],{'$or':_[_0x6a21('0x31')](_0x5812f0['attributes'],function(_0x2a9e02){var _0x574394={};_0x574394[_0x2a9e02]={'$like':'%'+_0x30be55[_0x6a21('0x38')][_0x6a21('0x45')]+'%'};return _0x574394;})});}_0x5812f0=_['merge']({},_0x5812f0,_0x30be55[_0x6a21('0x4f')]);return _0x14562b[_0x6a21('0x5a')](_0x5812f0);}})[_0x6a21('0x2b')](function(_0x40410b){if(_0x40410b){_0x263688=_0x40410b[_0x6a21('0x3d')];if(!_0x30be55[_0x6a21('0x38')][_0x6a21('0x3e')]('nolimit')){_0x5812f0['limit']=qs[_0x6a21('0x24')](_0x30be55[_0x6a21('0x38')][_0x6a21('0x24')]);_0x5812f0[_0x6a21('0x22')]=qs[_0x6a21('0x22')](_0x30be55[_0x6a21('0x38')][_0x6a21('0x22')]);}return _0x14562b[_0x6a21('0x5a')](_0x5812f0);}})[_0x6a21('0x2b')](function(_0x309119){if(_0x309119){return _0x309119?{'count':_0x263688,'rows':_0x309119}:null;}})[_0x6a21('0x2b')](respondWithResult(_0x57c6fe,null))['catch'](handleError(_0x57c6fe,null));};exports[_0x6a21('0x5c')]=function(_0x185551,_0x1cdbd4,_0x42b3de){return db[_0x6a21('0x32')][_0x6a21('0x50')]({'where':{'id':_0x185551[_0x6a21('0x4e')]['id']}})[_0x6a21('0x2b')](handleEntityNotFound(_0x1cdbd4,null))[_0x6a21('0x2b')](function(_0x44428b){if(_0x44428b){return _0x44428b[_0x6a21('0x5c')](_0x185551[_0x6a21('0x38')][_0x6a21('0x58')]);}})[_0x6a21('0x2b')](respondWithStatusCode(_0x1cdbd4,null))[_0x6a21('0x4c')](handleError(_0x1cdbd4,null));};exports['addMessage']=function(_0x19ef3e,_0x34bc8a,_0x3337e1){if(_0x19ef3e[_0x6a21('0x52')]['id']){delete _0x19ef3e[_0x6a21('0x52')]['id'];}return db['ChatGroup']['find']({'where':{'id':_0x19ef3e[_0x6a21('0x4e')]['id']}})['then'](handleEntityNotFound(_0x34bc8a,null))[_0x6a21('0x2b')](function(_0x42b12d){if(_0x42b12d){_0x19ef3e[_0x6a21('0x52')]['ChatGroupId']=_0x42b12d['id'];return db[_0x6a21('0x55')]['create'](_0x19ef3e[_0x6a21('0x52')]);}})[_0x6a21('0x2b')](respondWithResult(_0x34bc8a,null))[_0x6a21('0x4c')](handleError(_0x34bc8a,null));};exports['getMessages']=function(_0x54a256,_0x57ea57,_0x368d96){var _0x4e5941={};var _0x4ea3bf={};var _0x572c07;var _0x4defcc;return db[_0x6a21('0x32')][_0x6a21('0x5d')]({'where':{'id':_0x54a256[_0x6a21('0x4e')]['id']}})[_0x6a21('0x2b')](handleEntityNotFound(_0x57ea57,null))[_0x6a21('0x2b')](function(_0x272642){if(_0x272642){_0x572c07=_0x272642;_0x4ea3bf['model']=_[_0x6a21('0x39')](db[_0x6a21('0x55')][_0x6a21('0x33')]);_0x4ea3bf[_0x6a21('0x38')]=_[_0x6a21('0x39')](_0x54a256[_0x6a21('0x38')]);_0x4ea3bf[_0x6a21('0x43')]=_['intersection'](_0x4ea3bf[_0x6a21('0x37')],_0x4ea3bf[_0x6a21('0x38')]);_0x4e5941[_0x6a21('0x3b')]=_['intersection'](_0x4ea3bf[_0x6a21('0x37')],qs[_0x6a21('0x3c')](_0x54a256[_0x6a21('0x38')][_0x6a21('0x3c')]));_0x4e5941[_0x6a21('0x3b')]=_0x4e5941[_0x6a21('0x3b')][_0x6a21('0x3d')]?_0x4e5941[_0x6a21('0x3b')]:_0x4ea3bf[_0x6a21('0x37')];_0x4e5941[_0x6a21('0x40')]=qs[_0x6a21('0x41')](_0x54a256[_0x6a21('0x38')][_0x6a21('0x41')]);_0x4e5941['where']=qs[_0x6a21('0x43')](_[_0x6a21('0x44')](_0x54a256[_0x6a21('0x38')],_0x4ea3bf[_0x6a21('0x43')]));if(_0x54a256['query'][_0x6a21('0x45')]){_0x4e5941[_0x6a21('0x42')]=_[_0x6a21('0x46')](_0x4e5941[_0x6a21('0x42')],{'$or':_[_0x6a21('0x31')](_0x4e5941[_0x6a21('0x3b')],function(_0x35c4b8){var _0x262b9={};_0x262b9[_0x35c4b8]={'$like':'%'+_0x54a256[_0x6a21('0x38')]['filter']+'%'};return _0x262b9;})});}if(_0x54a256[_0x6a21('0x38')][_0x6a21('0x5e')]){var _0x841bc0=_0x54a256[_0x6a21('0x38')][_0x6a21('0x5e')]['split'](',');var _0x32d96b={};_0x32d96b[_0x841bc0[0x0]]={'$gte':moment(_0x841bc0[0x1])[_0x6a21('0x5f')]('YYYY-MM-DD\x20HH:mm:ss')};_0x4e5941[_0x6a21('0x42')]=_[_0x6a21('0x46')](_0x4e5941[_0x6a21('0x42')],_0x32d96b);}_0x4e5941=_[_0x6a21('0x46')]({},_0x4e5941,_0x54a256['options']);return _0x572c07[_0x6a21('0x60')](_0x4e5941);}})['then'](function(_0x5794cc){if(_0x5794cc){_0x4defcc=_0x5794cc[_0x6a21('0x3d')];if(!_0x54a256[_0x6a21('0x38')][_0x6a21('0x3e')](_0x6a21('0x3f'))){_0x4e5941[_0x6a21('0x24')]=qs[_0x6a21('0x24')](_0x54a256['query'][_0x6a21('0x24')]);_0x4e5941[_0x6a21('0x22')]=qs[_0x6a21('0x22')](_0x54a256[_0x6a21('0x38')][_0x6a21('0x22')]);}return _0x572c07['getMessages'](_0x4e5941);}})[_0x6a21('0x2b')](function(_0x3c8934){if(_0x3c8934){return _0x3c8934?{'count':_0x4defcc,'rows':_0x3c8934}:null;}})[_0x6a21('0x2b')](respondWithResult(_0x57ea57,null))['catch'](handleError(_0x57ea57,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2ee=['emit','hasOwnProperty','events','../../mysqldb','ChatGroup','setMaxListeners'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xf2ee,0x110));var _0xef2e=function(_0x2bc019,_0x2388d8){_0x2bc019=_0x2bc019-0x0;var _0x25b270=_0xf2ee[_0x2bc019];return _0x25b270;};'use strict';var EventEmitter=require(_0xef2e('0x0'));var ChatGroup=require(_0xef2e('0x1'))['db'][_0xef2e('0x2')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0xef2e('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0xc8cad1){return function(_0x5671eb,_0x31a28f,_0x3d19c5){ChatGroupEvents[_0xef2e('0x4')](_0xc8cad1+':'+_0x5671eb['id'],_0x5671eb);ChatGroupEvents[_0xef2e('0x4')](_0xc8cad1,_0x5671eb);_0x3d19c5(null);};}for(var e in events){if(events[_0xef2e('0x5')](e)){var event=events[e];ChatGroup['hook'](e,emitEvent(event));}}module['exports']=ChatGroupEvents;
\ No newline at end of file
+var _0x52ad=['emit','hasOwnProperty','hook','exports','ChatGroup','save','update','remove'];(function(_0x58d90a,_0x1a2ea6){var _0x3938a9=function(_0x4f324c){while(--_0x4f324c){_0x58d90a['push'](_0x58d90a['shift']());}};_0x3938a9(++_0x1a2ea6);}(_0x52ad,0xd4));var _0xd52a=function(_0x1c1655,_0x46c212){_0x1c1655=_0x1c1655-0x0;var _0x159ee2=_0x52ad[_0x1c1655];return _0x159ee2;};'use strict';var EventEmitter=require('events');var ChatGroup=require('../../mysqldb')['db'][_0xd52a('0x0')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xd52a('0x1'),'afterUpdate':_0xd52a('0x2'),'afterDestroy':_0xd52a('0x3')};function emitEvent(_0x4c26b7){return function(_0x34e3af,_0x503160,_0x25cb54){ChatGroupEvents[_0xd52a('0x4')](_0x4c26b7+':'+_0x34e3af['id'],_0x34e3af);ChatGroupEvents['emit'](_0x4c26b7,_0x34e3af);_0x25cb54(null);};}for(var e in events){if(events[_0xd52a('0x5')](e)){var event=events[e];ChatGroup[_0xd52a('0x6')](e,emitEvent(event));}}module[_0xd52a('0x7')]=ChatGroupEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8e7=['bluebird','request-promise','path','rimraf','../../config/environment','./chatGroup.attributes','exports','define','ChatGroup','chat_groups','lodash','util','../../config/logger','api','moment'];(function(_0x393baf,_0x57589a){var _0x3875dc=function(_0x2dcd56){while(--_0x2dcd56){_0x393baf['push'](_0x393baf['shift']());}};_0x3875dc(++_0x57589a);}(_0xd8e7,0x127));var _0x7d8e=function(_0x385ce1,_0x180d49){_0x385ce1=_0x385ce1-0x0;var _0x1d99a2=_0xd8e7[_0x385ce1];return _0x1d99a2;};'use strict';var _=require(_0x7d8e('0x0'));var util=require(_0x7d8e('0x1'));var logger=require(_0x7d8e('0x2'))(_0x7d8e('0x3'));var moment=require(_0x7d8e('0x4'));var BPromise=require(_0x7d8e('0x5'));var rp=require(_0x7d8e('0x6'));var fs=require('fs');var path=require(_0x7d8e('0x7'));var rimraf=require(_0x7d8e('0x8'));var config=require(_0x7d8e('0x9'));var attributes=require(_0x7d8e('0xa'));module[_0x7d8e('0xb')]=function(_0x4d7139,_0x12e227){return _0x4d7139[_0x7d8e('0xc')](_0x7d8e('0xd'),attributes,{'tableName':_0x7d8e('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7355=['./chatGroup.attributes','exports','define','ChatGroup','chat_groups','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x5d8018,_0x588592){var _0x151ac4=function(_0x548679){while(--_0x548679){_0x5d8018['push'](_0x5d8018['shift']());}};_0x151ac4(++_0x588592);}(_0x7355,0x17e));var _0x5735=function(_0x29fae1,_0xad0704){_0x29fae1=_0x29fae1-0x0;var _0x3986d6=_0x7355[_0x29fae1];return _0x3986d6;};'use strict';var _=require('lodash');var util=require(_0x5735('0x0'));var logger=require(_0x5735('0x1'))(_0x5735('0x2'));var moment=require(_0x5735('0x3'));var BPromise=require(_0x5735('0x4'));var rp=require(_0x5735('0x5'));var fs=require('fs');var path=require(_0x5735('0x6'));var rimraf=require(_0x5735('0x7'));var config=require('../../config/environment');var attributes=require(_0x5735('0x8'));module[_0x5735('0x9')]=function(_0x6ee1c0,_0x309394){return _0x6ee1c0[_0x5735('0xa')](_0x5735('0xb'),attributes,{'tableName':_0x5735('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x897d=['request\x20sent','debug','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','ChatGroup,\x20%s,\x20%s'];(function(_0x240b0a,_0x50335f){var _0x35346a=function(_0x56d904){while(--_0x56d904){_0x240b0a['push'](_0x240b0a['shift']());}};_0x35346a(++_0x50335f);}(_0x897d,0x80));var _0xd897=function(_0x1451ea,_0x4ce6a8){_0x1451ea=_0x1451ea-0x0;var _0x4f62a4=_0x897d[_0x1451ea];return _0x4f62a4;};'use strict';var _=require(_0xd897('0x0'));var util=require(_0xd897('0x1'));var moment=require(_0xd897('0x2'));var BPromise=require(_0xd897('0x3'));var rs=require(_0xd897('0x4'));var fs=require('fs');var Redis=require(_0xd897('0x5'));var db=require(_0xd897('0x6'))['db'];var utils=require(_0xd897('0x7'));var logger=require(_0xd897('0x8'))(_0xd897('0x9'));var config=require(_0xd897('0xa'));var jayson=require(_0xd897('0xb'));var client=jayson[_0xd897('0xc')][_0xd897('0xd')]({'port':0x232a});config[_0xd897('0xe')]=_[_0xd897('0xf')](config[_0xd897('0xe')],{'host':_0xd897('0x10'),'port':0x18eb});var socket=require(_0xd897('0x11'))(new Redis(config['redis']));require('./chatGroup.socket')[_0xd897('0x12')](socket);function respondWithRpcPromise(_0x4534aa,_0x553b36,_0x206470){return new BPromise(function(_0x2d02f2,_0x263a51){return client[_0xd897('0x13')](_0x4534aa,_0x206470)[_0xd897('0x14')](function(_0x3f6ff7){logger['info'](_0xd897('0x15'),_0x553b36,_0xd897('0x16'));logger[_0xd897('0x17')]('ChatGroup,\x20%s,\x20%s,\x20%s',_0x553b36,_0xd897('0x16'),JSON[_0xd897('0x18')](_0x3f6ff7));if(_0x3f6ff7['error']){if(_0x3f6ff7[_0xd897('0x19')][_0xd897('0x1a')]===0x1f4){logger[_0xd897('0x19')](_0xd897('0x15'),_0x553b36,_0x3f6ff7[_0xd897('0x19')]['message']);return _0x263a51(_0x3f6ff7['error'][_0xd897('0x1b')]);}logger[_0xd897('0x19')](_0xd897('0x15'),_0x553b36,_0x3f6ff7[_0xd897('0x19')][_0xd897('0x1b')]);return _0x2d02f2(_0x3f6ff7['error'][_0xd897('0x1b')]);}else{logger['info'](_0xd897('0x15'),_0x553b36,_0xd897('0x16'));_0x2d02f2(_0x3f6ff7[_0xd897('0x1c')][_0xd897('0x1b')]);}})[_0xd897('0x1d')](function(_0x4cbe2b){logger['error'](_0xd897('0x15'),_0x553b36,_0x4cbe2b);_0x263a51(_0x4cbe2b);});});}
\ No newline at end of file
+var _0xd347=['rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./chatGroup.socket','register','request','then','ChatGroup,\x20%s,\x20%s','debug','ChatGroup,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','result','catch','lodash','util','moment','randomstring','../../config/utils','../../config/logger'];(function(_0x498e78,_0x1d6412){var _0x476268=function(_0x325434){while(--_0x325434){_0x498e78['push'](_0x498e78['shift']());}};_0x476268(++_0x1d6412);}(_0xd347,0x182));var _0x7d34=function(_0x3fec86,_0x41c942){_0x3fec86=_0x3fec86-0x0;var _0x1b4499=_0xd347[_0x3fec86];return _0x1b4499;};'use strict';var _=require(_0x7d34('0x0'));var util=require(_0x7d34('0x1'));var moment=require(_0x7d34('0x2'));var BPromise=require('bluebird');var rs=require(_0x7d34('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x7d34('0x4'));var logger=require(_0x7d34('0x5'))(_0x7d34('0x6'));var config=require(_0x7d34('0x7'));var jayson=require(_0x7d34('0x8'));var client=jayson[_0x7d34('0x9')][_0x7d34('0xa')]({'port':0x232a});config[_0x7d34('0xb')]=_[_0x7d34('0xc')](config[_0x7d34('0xb')],{'host':_0x7d34('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7d34('0xb')]));require(_0x7d34('0xe'))[_0x7d34('0xf')](socket);function respondWithRpcPromise(_0x4deb0d,_0x266182,_0x117987){return new BPromise(function(_0x2f9374,_0x34b3ce){return client[_0x7d34('0x10')](_0x4deb0d,_0x117987)[_0x7d34('0x11')](function(_0x5e2f23){logger['info'](_0x7d34('0x12'),_0x266182,'request\x20sent');logger[_0x7d34('0x13')](_0x7d34('0x14'),_0x266182,_0x7d34('0x15'),JSON[_0x7d34('0x16')](_0x5e2f23));if(_0x5e2f23[_0x7d34('0x17')]){if(_0x5e2f23[_0x7d34('0x17')]['code']===0x1f4){logger[_0x7d34('0x17')]('ChatGroup,\x20%s,\x20%s',_0x266182,_0x5e2f23[_0x7d34('0x17')][_0x7d34('0x18')]);return _0x34b3ce(_0x5e2f23['error'][_0x7d34('0x18')]);}logger[_0x7d34('0x17')]('ChatGroup,\x20%s,\x20%s',_0x266182,_0x5e2f23[_0x7d34('0x17')]['message']);return _0x2f9374(_0x5e2f23[_0x7d34('0x17')][_0x7d34('0x18')]);}else{logger[_0x7d34('0x19')]('ChatGroup,\x20%s,\x20%s',_0x266182,_0x7d34('0x15'));_0x2f9374(_0x5e2f23[_0x7d34('0x1a')][_0x7d34('0x18')]);}})[_0x7d34('0x1b')](function(_0x43b30b){logger[_0x7d34('0x17')]('ChatGroup,\x20%s,\x20%s',_0x266182,_0x43b30b);_0x34b3ce(_0x43b30b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x082c=['update','emit','removeListener','register','chatGroup:','./chatGroup.events','remove'];(function(_0x2081d0,_0xffdab5){var _0x2c2c52=function(_0x263596){while(--_0x263596){_0x2081d0['push'](_0x2081d0['shift']());}};_0x2c2c52(++_0xffdab5);}(_0x082c,0x116));var _0xc082=function(_0x2b2c32,_0x330535){_0x2b2c32=_0x2b2c32-0x0;var _0x1e5f99=_0x082c[_0x2b2c32];return _0x1e5f99;};'use strict';var ChatGroupEvents=require(_0xc082('0x0'));var events=['save',_0xc082('0x1'),_0xc082('0x2')];function createListener(_0x31ec72,_0x3ced92){return function(_0x113594){_0x3ced92[_0xc082('0x3')](_0x31ec72,_0x113594);};}function removeListener(_0x41ff09,_0x33acaf){return function(){ChatGroupEvents[_0xc082('0x4')](_0x41ff09,_0x33acaf);};}exports[_0xc082('0x5')]=function(_0x33d291){for(var _0xde6f66=0x0,_0x5608d9=events['length'];_0xde6f66<_0x5608d9;_0xde6f66++){var _0x57efce=events[_0xde6f66];var _0x4044b8=createListener(_0xc082('0x6')+_0x57efce,_0x33d291);ChatGroupEvents['on'](_0x57efce,_0x4044b8);}};
\ No newline at end of file
+var _0xeadb=['remove','update','removeListener','register','./chatGroup.events'];(function(_0x5204bc,_0x16596d){var _0x3188d8=function(_0x194ea8){while(--_0x194ea8){_0x5204bc['push'](_0x5204bc['shift']());}};_0x3188d8(++_0x16596d);}(_0xeadb,0xbd));var _0xbead=function(_0x5abb66,_0x890ddd){_0x5abb66=_0x5abb66-0x0;var _0x42f50e=_0xeadb[_0x5abb66];return _0x42f50e;};'use strict';var ChatGroupEvents=require(_0xbead('0x0'));var events=['save',_0xbead('0x1'),_0xbead('0x2')];function createListener(_0x41815a,_0xe1559d){return function(_0x419d80){_0xe1559d['emit'](_0x41815a,_0x419d80);};}function removeListener(_0x14a322,_0x50c2e4){return function(){ChatGroupEvents[_0xbead('0x3')](_0x14a322,_0x50c2e4);};}exports[_0xbead('0x4')]=function(_0x3854d3){for(var _0x232b4f=0x0,_0x16e4cc=events['length'];_0x232b4f<_0x16e4cc;_0x232b4f++){var _0x5c3148=events[_0x232b4f];var _0x41f91b=createListener('chatGroup:'+_0x5c3148,_0x3854d3);ChatGroupEvents['on'](_0x5c3148,_0x41f91b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff90=['destroy','removeMembers','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','isAuthenticated','index','/describe','describe','/:id','show','getUnread','/:id/members','getMembers','getMessages','post','create','addMembers','addMessage','delete'];(function(_0x3e630f,_0x1d4b4d){var _0x9ebd58=function(_0x533c88){while(--_0x533c88){_0x3e630f['push'](_0x3e630f['shift']());}};_0x9ebd58(++_0x1d4b4d);}(_0xff90,0xc0));var _0x0ff9=function(_0x4bfd95,_0x1c3b3b){_0x4bfd95=_0x4bfd95-0x0;var _0x1484cd=_0xff90[_0x4bfd95];return _0x1484cd;};'use strict';var multer=require(_0x0ff9('0x0'));var util=require('util');var path=require(_0x0ff9('0x1'));var timeout=require(_0x0ff9('0x2'));var express=require(_0x0ff9('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x0ff9('0x4'));var interaction=require(_0x0ff9('0x5'));var config=require(_0x0ff9('0x6'));var controller=require(_0x0ff9('0x7'));router[_0x0ff9('0x8')]('/',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xa')]);router['get'](_0x0ff9('0xb'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xc')]);router[_0x0ff9('0x8')](_0x0ff9('0xd'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xe')]);router[_0x0ff9('0x8')]('/:id/unread',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xf')]);router[_0x0ff9('0x8')](_0x0ff9('0x10'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x11')]);router[_0x0ff9('0x8')]('/:id/messages',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x12')]);router[_0x0ff9('0x13')]('/',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x14')]);router[_0x0ff9('0x13')](_0x0ff9('0x10'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x15')]);router['post']('/:id/messages',auth['isAuthenticated'](),controller[_0x0ff9('0x16')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x0ff9('0x17')](_0x0ff9('0xd'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x18')]);router[_0x0ff9('0x17')](_0x0ff9('0x10'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x19')]);module[_0x0ff9('0x1a')]=router;
\ No newline at end of file
+var _0x3fdf=['/:id/members','getMembers','/:id/messages','getMessages','post','addMembers','addMessage','update','delete','destroy','exports','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','isAuthenticated','describe','/:id','show','/:id/unread'];(function(_0x5280c2,_0x238faf){var _0x283bf6=function(_0x150603){while(--_0x150603){_0x5280c2['push'](_0x5280c2['shift']());}};_0x283bf6(++_0x238faf);}(_0x3fdf,0xfb));var _0xf3fd=function(_0x305cd9,_0x58f45c){_0x305cd9=_0x305cd9-0x0;var _0x23a541=_0x3fdf[_0x305cd9];return _0x23a541;};'use strict';var multer=require('multer');var util=require(_0xf3fd('0x0'));var path=require(_0xf3fd('0x1'));var timeout=require(_0xf3fd('0x2'));var express=require('express');var router=express[_0xf3fd('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xf3fd('0x4'));var config=require(_0xf3fd('0x5'));var controller=require(_0xf3fd('0x6'));router[_0xf3fd('0x7')]('/',auth[_0xf3fd('0x8')](),controller['index']);router['get']('/describe',auth['isAuthenticated'](),controller[_0xf3fd('0x9')]);router[_0xf3fd('0x7')](_0xf3fd('0xa'),auth[_0xf3fd('0x8')](),controller[_0xf3fd('0xb')]);router[_0xf3fd('0x7')](_0xf3fd('0xc'),auth[_0xf3fd('0x8')](),controller['getUnread']);router[_0xf3fd('0x7')](_0xf3fd('0xd'),auth[_0xf3fd('0x8')](),controller[_0xf3fd('0xe')]);router[_0xf3fd('0x7')](_0xf3fd('0xf'),auth[_0xf3fd('0x8')](),controller[_0xf3fd('0x10')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0xf3fd('0x11')](_0xf3fd('0xd'),auth['isAuthenticated'](),controller[_0xf3fd('0x12')]);router[_0xf3fd('0x11')]('/:id/messages',auth[_0xf3fd('0x8')](),controller[_0xf3fd('0x13')]);router['put'](_0xf3fd('0xa'),auth[_0xf3fd('0x8')](),controller[_0xf3fd('0x14')]);router[_0xf3fd('0x15')](_0xf3fd('0xa'),auth['isAuthenticated'](),controller[_0xf3fd('0x16')]);router[_0xf3fd('0x15')](_0xf3fd('0xd'),auth[_0xf3fd('0x8')](),controller['removeMembers']);module[_0xf3fd('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3070=['star','thumb','TEXT','DATE','STRING','long','BOOLEAN','exports','INTEGER','ENUM'];(function(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0x3070,0x75));var _0x0307=function(_0x1d1fe0,_0x1b7b0b){_0x1d1fe0=_0x1d1fe0-0x0;var _0xc06a9=_0x3070[_0x1d1fe0];return _0xc06a9;};'use strict';var Sequelize=require('sequelize');module[_0x0307('0x0')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x0307('0x1')]},'ratingType':{'type':Sequelize[_0x0307('0x2')](_0x0307('0x3'),_0x0307('0x4')),'defaultValue':_0x0307('0x3')},'ratingMessage':{'type':Sequelize[_0x0307('0x5')]},'pathTranscript':{'type':Sequelize['TEXT']},'mailTranscript':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x0307('0x6')]},'disposition':{'type':Sequelize[_0x0307('0x7')]},'secondDisposition':{'type':Sequelize[_0x0307('0x7')]},'thirdDisposition':{'type':Sequelize[_0x0307('0x7')]},'note':{'type':Sequelize['STRING']},'browserName':{'type':Sequelize[_0x0307('0x7')]},'browserVersion':{'type':Sequelize[_0x0307('0x7')]},'osName':{'type':Sequelize['STRING']},'osVersion':{'type':Sequelize[_0x0307('0x7')]},'deviceModel':{'type':Sequelize[_0x0307('0x7')]},'deviceVendor':{'type':Sequelize[_0x0307('0x7')]},'deviceType':{'type':Sequelize[_0x0307('0x7')]},'referer':{'type':Sequelize[_0x0307('0x5')]},'customerIp':{'type':Sequelize[_0x0307('0x7')]},'formData':{'type':Sequelize[_0x0307('0x5')](_0x0307('0x8'))},'read1stAt':{'type':Sequelize[_0x0307('0x6')]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x0307('0x2')]('in','out'),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x0307('0x7')]},'customerPort':{'type':Sequelize[_0x0307('0x7')]},'vidaooSessionId':{'type':Sequelize[_0x0307('0x5')]},'autoreplyExecuted':{'type':Sequelize[_0x0307('0x9')],'defaultValue':![]}};
\ No newline at end of file
+var _0x0427=['INTEGER','star','thumb','TEXT','STRING','DATE','out','BOOLEAN'];(function(_0x46684e,_0x55dac7){var _0x15cdc1=function(_0x4f2083){while(--_0x4f2083){_0x46684e['push'](_0x46684e['shift']());}};_0x15cdc1(++_0x55dac7);}(_0x0427,0x137));var _0x7042=function(_0x5a6ccc,_0x52259c){_0x5a6ccc=_0x5a6ccc-0x0;var _0x46ae25=_0x0427[_0x5a6ccc];return _0x46ae25;};'use strict';var Sequelize=require('sequelize');module['exports']={'closed':{'type':Sequelize[_0x7042('0x0')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x7042('0x1')]},'ratingType':{'type':Sequelize['ENUM'](_0x7042('0x2'),_0x7042('0x3')),'defaultValue':_0x7042('0x2')},'ratingMessage':{'type':Sequelize[_0x7042('0x4')]},'pathTranscript':{'type':Sequelize[_0x7042('0x4')]},'mailTranscript':{'type':Sequelize[_0x7042('0x5')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x7042('0x6')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x7042('0x5')]},'thirdDisposition':{'type':Sequelize[_0x7042('0x5')]},'note':{'type':Sequelize[_0x7042('0x5')]},'browserName':{'type':Sequelize[_0x7042('0x5')]},'browserVersion':{'type':Sequelize[_0x7042('0x5')]},'osName':{'type':Sequelize[_0x7042('0x5')]},'osVersion':{'type':Sequelize[_0x7042('0x5')]},'deviceModel':{'type':Sequelize[_0x7042('0x5')]},'deviceVendor':{'type':Sequelize[_0x7042('0x5')]},'deviceType':{'type':Sequelize['STRING']},'referer':{'type':Sequelize[_0x7042('0x4')]},'customerIp':{'type':Sequelize['STRING']},'formData':{'type':Sequelize['TEXT']('long')},'read1stAt':{'type':Sequelize['DATE']},'lastMsgAt':{'type':Sequelize[_0x7042('0x6')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0x7042('0x7')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x7042('0x5')]},'customerPort':{'type':Sequelize[_0x7042('0x5')]},'vidaooSessionId':{'type':Sequelize['TEXT']},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fc2=['result','catch','sendStatus','end','status','json','offset','undefined','count','Content-Range','apply','reject','save','update','destroy','stack','name','send','render','merge','body','contact','agent','interaction','account','map','fullname','TagIds','Tags','split','forEach','push','ChatInteraction','rawAttributes','type','key','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','select','field','color','from','tools_tags','u.id','u.fullname','ui.ChatInteractionId','left_join','users','u.id\x20=\x20ui.UserId','chat_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','chat_websites','a.id\x20=\x20i.ChatWebsiteId','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','search','parseSearch','sqlOperator','conditions','find','unreadMessages','`\x20=\x200','having','Contact','operator','$substring','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','keys','some','compact','isEmpty','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','DESC','t.id\x20IN\x20?','ChatWebsiteId','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','sequelize','toString','keyBy','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName','i.*','c.firstName','Contact.firstName','c.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','params','includeAll','options','create','describe','createVidaooSession','findOne','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','metadata','Sequelize','Error\x20in\x20conversion\x20vidaooMetadata','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandonInteraction,\x20%s,\x20%s,\x20%s','abandon','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','disposition','attachmentUpload','file','originalname','filename','mimetype','Attachment','Unauthorized','ChatOfflineMessageId','root','server/files/attachments/','join','offline-chat/','basename','download','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','pathTranscript','Messages','User','ChatWebsite','%s%d','agentAlias','System','customer','website_alias','alias','agent_fullname','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','authentication','auth','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','pick','YYYY-MM-DD\x20HH:mm:ss','include','findAll','getMyMessages','includeAgent','addTags','setTags','spread','Tag','removeTags','unix','server','files','attachments','transcript-%d-%s.zip','firstName','lastName','direction','Account','Owner','mkdirSync','N.A.','closedAt','customerIp','customerPort','existsSync','createWriteStream','out','renderFile','downloadInteraction.ejs','transcript-','.pdf','Chat','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message'];(function(_0x535cc4,_0x13c0a7){var _0x51d21c=function(_0x2bd20f){while(--_0x2bd20f){_0x535cc4['push'](_0x535cc4['shift']());}};_0x51d21c(++_0x13c0a7);}(_0x4fc2,0x111));var _0x24fc=function(_0x9d1d1f,_0x3d6e3f){_0x9d1d1f=_0x9d1d1f-0x0;var _0x19e276=_0x4fc2[_0x9d1d1f];return _0x19e276;};'use strict';var emlformat=require(_0x24fc('0x0'));var rimraf=require(_0x24fc('0x1'));var zipdir=require(_0x24fc('0x2'));var jsonpatch=require(_0x24fc('0x3'));var rp=require('request-promise');var moment=require(_0x24fc('0x4'));var BPromise=require(_0x24fc('0x5'));var Mustache=require(_0x24fc('0x6'));var util=require('util');var path=require(_0x24fc('0x7'));var sox=require(_0x24fc('0x8'));var csv=require('to-csv');var ejs=require(_0x24fc('0x9'));var fs=require('fs');var fs_extra=require(_0x24fc('0xa'));var _=require('lodash');var squel=require(_0x24fc('0xb'));var crypto=require(_0x24fc('0xc'));var jsforce=require(_0x24fc('0xd'));var deskjs=require(_0x24fc('0xe'));var toCsv=require(_0x24fc('0xf'));var querystring=require(_0x24fc('0x10'));var Papa=require('papaparse');var Redis=require(_0x24fc('0x11'));var authService=require(_0x24fc('0x12'));var qs=require(_0x24fc('0x13'));var as=require(_0x24fc('0x14'));var pdf=require(_0x24fc('0x15'));var hardwareService=require(_0x24fc('0x16'));var logger=require(_0x24fc('0x17'))(_0x24fc('0x18'));var utils=require('../../config/utils');var config=require(_0x24fc('0x19'));var licenseUtil=require(_0x24fc('0x1a'));var db=require('../../mysqldb')['db'];config[_0x24fc('0x1b')]=_[_0x24fc('0x1c')](config[_0x24fc('0x1b')],{'host':_0x24fc('0x1d'),'port':0x18eb});var socket=require(_0x24fc('0x1e'))(new Redis(config[_0x24fc('0x1b')]));require('./chatInteraction.socket')[_0x24fc('0x1f')](socket);var jayson=require(_0x24fc('0x20'));var client=jayson[_0x24fc('0x21')][_0x24fc('0x22')]({'port':0x232b});var client9004=jayson['client'][_0x24fc('0x22')]({'port':0x232c});function respondWithRpcPromise(_0x588543,_0x4af098,_0x3385c7,_0x218fb6){return new BPromise(function(_0x41c593,_0x25cb40){var _0x52a884=_0x218fb6||client;return _0x52a884[_0x24fc('0x23')](_0x588543,_0x3385c7)[_0x24fc('0x24')](function(_0x6cfa0a){logger[_0x24fc('0x25')]('ChatInteraction,\x20%s,\x20%s',_0x4af098,_0x24fc('0x26'));logger[_0x24fc('0x27')](_0x24fc('0x28'),_0x4af098,'request\x20sent',JSON[_0x24fc('0x29')](_0x6cfa0a));if(_0x6cfa0a[_0x24fc('0x2a')]){if(_0x6cfa0a[_0x24fc('0x2a')][_0x24fc('0x2b')]===0x1f4){logger['error'](_0x24fc('0x2c'),_0x4af098,_0x6cfa0a['error'][_0x24fc('0x2d')]);return _0x25cb40(_0x6cfa0a['error'][_0x24fc('0x2d')]);}logger[_0x24fc('0x2a')](_0x24fc('0x2c'),_0x4af098,_0x6cfa0a['error'][_0x24fc('0x2d')]);return _0x41c593(_0x6cfa0a['error'][_0x24fc('0x2d')]);}else{logger[_0x24fc('0x25')](_0x24fc('0x2c'),_0x4af098,_0x24fc('0x26'));_0x41c593(_0x6cfa0a[_0x24fc('0x2e')][_0x24fc('0x2d')]);}})[_0x24fc('0x2f')](function(_0x20192b){logger[_0x24fc('0x2a')](_0x24fc('0x2c'),_0x4af098,_0x20192b);_0x25cb40(_0x20192b);});});}function respondWithStatusCode(_0x568441,_0x11c913){_0x11c913=_0x11c913||0xcc;return function(_0x16f27f){if(_0x16f27f){return _0x568441[_0x24fc('0x30')](_0x11c913);}return _0x568441['status'](_0x11c913)[_0x24fc('0x31')]();};}function respondWithResult(_0x3d1ec8,_0x35f9f9){_0x35f9f9=_0x35f9f9||0xc8;return function(_0x290f84){if(_0x290f84){return _0x3d1ec8[_0x24fc('0x32')](_0x35f9f9)[_0x24fc('0x33')](_0x290f84);}};}function respondWithFilteredResult(_0x5ac1f2,_0x240ae7){return function(_0x29a461){if(_0x29a461){var _0x3c99ed=typeof _0x240ae7[_0x24fc('0x34')]===_0x24fc('0x35')&&typeof _0x240ae7['limit']==='undefined';var _0x4e6f73=_0x29a461[_0x24fc('0x36')];var _0x574ba3=_0x3c99ed?0x0:_0x240ae7[_0x24fc('0x34')];var _0x3e6389=_0x3c99ed?_0x29a461[_0x24fc('0x36')]:_0x240ae7[_0x24fc('0x34')]+_0x240ae7['limit'];var _0x66eec0;if(_0x3e6389>=_0x4e6f73){_0x3e6389=_0x4e6f73;_0x66eec0=0xc8;}else{_0x66eec0=0xce;}_0x5ac1f2[_0x24fc('0x32')](_0x66eec0);return _0x5ac1f2['set'](_0x24fc('0x37'),_0x574ba3+'-'+_0x3e6389+'/'+_0x4e6f73)[_0x24fc('0x33')](_0x29a461);}return null;};}function patchUpdates(_0x4d756f){return function(_0x48c62a){try{jsonpatch[_0x24fc('0x38')](_0x48c62a,_0x4d756f,!![]);}catch(_0x56eae7){return BPromise[_0x24fc('0x39')](_0x56eae7);}return _0x48c62a[_0x24fc('0x3a')]();};}function saveUpdates(_0x5491b0,_0x2ae896){return function(_0x33bbf2){if(_0x33bbf2){return _0x33bbf2[_0x24fc('0x3b')](_0x5491b0)[_0x24fc('0x24')](function(_0x1c5874){return _0x1c5874;});}return null;};}function removeEntity(_0x1e205d,_0x3b3932){return function(_0x2a209d){if(_0x2a209d){return _0x2a209d[_0x24fc('0x3c')]()['then'](function(){_0x1e205d[_0x24fc('0x32')](0xcc)[_0x24fc('0x31')]();});}};}function handleEntityNotFound(_0x2fbe30,_0x316aa2){return function(_0x242bd5){if(!_0x242bd5){_0x2fbe30['sendStatus'](0x194);}return _0x242bd5;};}function handleError(_0x56a9bd,_0xd52d10){_0xd52d10=_0xd52d10||0x1f4;return function(_0x5d48fe){logger[_0x24fc('0x2a')](_0x5d48fe[_0x24fc('0x3d')]);if(_0x5d48fe[_0x24fc('0x3e')]){delete _0x5d48fe[_0x24fc('0x3e')];}_0x56a9bd['status'](_0xd52d10)[_0x24fc('0x3f')](_0x5d48fe);};}function getMustacheRender(_0x4f4ec8,_0x65771d){return Mustache[_0x24fc('0x40')](_0x4f4ec8,_[_0x24fc('0x41')](_0x65771d[_0x24fc('0x42')],{'contact':_0x65771d[_0x24fc('0x43')],'message':_0x65771d['message'],'agent':_0x65771d[_0x24fc('0x44')],'interaction':_0x65771d[_0x24fc('0x45')],'account':_0x65771d[_0x24fc('0x46')]}))||'';}function getInteractionUsers(_0x22a75c,_0x5ceae2){return new BPromise(function(_0x172923,_0x2f0bd9){try{if(_0x5ceae2[_0x22a75c['id']]){_0x22a75c['Users']=_[_0x24fc('0x47')](_0x5ceae2[_0x22a75c['id']],function(_0x52df2e){return{'id':_0x52df2e['id'],'fullname':_0x52df2e[_0x24fc('0x48')]};});}}catch(_0x2fd30d){_0x2f0bd9(_0x2fd30d);}_0x172923(_0x22a75c);});}function getInteractionTags(_0x3a15ab,_0x1e045a){return new BPromise(function(_0x431189,_0x278b18){try{if(_0x3a15ab[_0x24fc('0x49')]){_0x3a15ab[_0x24fc('0x4a')]=[];_0x3a15ab['TagIds'][_0x24fc('0x4b')](',')[_0x24fc('0x4c')](function(_0x32f72c){_0x3a15ab['Tags'][_0x24fc('0x4d')](_0x1e045a[_0x32f72c]);});}delete _0x3a15ab[_0x24fc('0x49')];}catch(_0x4ae4a7){_0x278b18(_0x4ae4a7);}_0x431189(_0x3a15ab);});}function updateChatInteraction(_0x2c4a6c,_0x22f30b,_0x2c598c){return new BPromise(function(_0x5e4e9b,_0x31ddd0){return getInteractionUsers(_0x2c4a6c,_0x2c598c)[_0x24fc('0x24')](function(_0x585e48){return getInteractionTags(_0x585e48,_0x22f30b);})[_0x24fc('0x24')](function(_0x169982){_0x5e4e9b(_0x169982);})[_0x24fc('0x2f')](function(_0x2a0ac4){_0x31ddd0(_0x2a0ac4);});});}exports['index']=function(_0x2eecaf,_0x9bc56a){var _0x3ce7b3={},_0x7b38fa={},_0xbcbcfa={'count':0x0,'rows':[]};var _0x58a950=_[_0x24fc('0x47')](db[_0x24fc('0x4e')][_0x24fc('0x4f')],function(_0x3c6ffb){return{'name':_0x3c6ffb['fieldName'],'type':_0x3c6ffb[_0x24fc('0x50')][_0x24fc('0x51')]};});_0x7b38fa['model']=_['map'](_0x58a950,_0x24fc('0x3e'));_0x7b38fa['query']=_['keys'](_0x2eecaf[_0x24fc('0x52')]);_0x7b38fa['filters']=_[_0x24fc('0x53')](_0x7b38fa[_0x24fc('0x54')],_0x7b38fa[_0x24fc('0x52')]);_0x3ce7b3['attributes']=_[_0x24fc('0x53')](_0x7b38fa[_0x24fc('0x54')],qs[_0x24fc('0x55')](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x55')]));_0x3ce7b3[_0x24fc('0x56')]=_0x3ce7b3[_0x24fc('0x56')][_0x24fc('0x57')]?_0x3ce7b3['attributes']:_0x7b38fa['model'];if(!_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x58')](_0x24fc('0x59'))){_0x3ce7b3['limit']=qs['limit'](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x5a')]);_0x3ce7b3[_0x24fc('0x34')]=qs[_0x24fc('0x34')](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x34')]);}_0x3ce7b3[_0x24fc('0x5b')]=qs[_0x24fc('0x5c')](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x5c')]);_0x3ce7b3[_0x24fc('0x5d')]=qs[_0x24fc('0x5e')](_['pick'](_0x2eecaf[_0x24fc('0x52')],_0x7b38fa[_0x24fc('0x5e')]),_0x58a950);var _0x32a466=[];var _0xb0fc00=squel[_0x24fc('0x5f')]()['field']('id')[_0x24fc('0x60')]('name')[_0x24fc('0x60')](_0x24fc('0x61'))[_0x24fc('0x62')](_0x24fc('0x63'));var _0x40f42b=squel[_0x24fc('0x5f')]()['field'](_0x24fc('0x64'))[_0x24fc('0x60')](_0x24fc('0x65'))[_0x24fc('0x60')](_0x24fc('0x66'))[_0x24fc('0x62')]('user_has_chat_interactions','ui')[_0x24fc('0x67')](_0x24fc('0x68'),'u',_0x24fc('0x69'));var _0x1b69ad=squel[_0x24fc('0x5f')]()[_0x24fc('0x62')](_0x24fc('0x6a'),'i')['left_join'](_0x24fc('0x6b'),'c',_0x24fc('0x6c'))['left_join'](_0x24fc('0x68'),'o',_0x24fc('0x6d'))[_0x24fc('0x67')](_0x24fc('0x6e'),'a',_0x24fc('0x6f'))[_0x24fc('0x67')]('chat_messages','me',_0x24fc('0x70'))['left_join'](_0x24fc('0x71'),'it',_0x24fc('0x72'))['left_join'](_0x24fc('0x63'),'t','t.id\x20=\x20it.TagId');var _0x1c1f74=squel['expr']();var _0xdff811=[];var _0x27b612=squel['expr']();var _0x2edef7;if(_0x2eecaf['query'][_0x24fc('0x73')]){_0x2edef7=as[_0x24fc('0x74')](_0x2eecaf['query'][_0x24fc('0x73')]);var _0x3ec1a8=_0x2edef7[_0x24fc('0x75')];for(var _0x47179d=0x0;_0x47179d<_0x2edef7[_0x24fc('0x76')]['length'];_0x47179d++){var _0x39da59=_0x2edef7[_0x24fc('0x76')][_0x47179d];var _0x2d657a='i';var _0x2b5dca=_[_0x24fc('0x77')](_0x58a950,['name',_0x39da59['field']]);if(!_0x2b5dca){switch(_0x39da59[_0x24fc('0x60')]){case _0x24fc('0x78'):if(_0x39da59['value']==0x1){_0x1b69ad['having']('`'+_0x39da59[_0x24fc('0x60')]+_0x24fc('0x79'));}else{_0x1b69ad[_0x24fc('0x7a')]('`'+_0x39da59[_0x24fc('0x60')]+'`\x20>\x200');}break;case _0x24fc('0x7b'):if(_0x39da59[_0x24fc('0x7c')]===_0x24fc('0x7d')){if(_0x39da59[_0x24fc('0x7e')][_0x24fc('0x4b')]('\x20')[_0x24fc('0x57')]>0x1){_0x1c1f74[_0x3ec1a8](_0x24fc('0x7f'),qs[_0x24fc('0x80')](_0x39da59[_0x24fc('0x7e')]),null);}else{var _0x1f6a71='%'+_0x39da59[_0x24fc('0x7e')]+'%';_0x1c1f74[_0x3ec1a8](_0x24fc('0x81'),_0x1f6a71,_0x1f6a71,_0x1f6a71);}}else{_0x2b5dca=_[_0x24fc('0x77')](_0x58a950,[_0x24fc('0x3e'),_0x24fc('0x82')]);_0x39da59['field']=_0x24fc('0x82');_0x10ef7c=as[_0x24fc('0x83')](_0x2d657a,_0x2b5dca[_0x24fc('0x50')],_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c[_0x24fc('0x84')],_0x10ef7c[_0x24fc('0x7e')][_0x24fc('0x85')],_0x10ef7c[_0x24fc('0x7e')][_0x24fc('0x31')]);}break;case'Tag':var _0x3475b8=_0x39da59[_0x24fc('0x7e')][_0x24fc('0x4b')](',')[_0x24fc('0x47')](function(_0x55fceb){return Number(_0x55fceb);});_0x3475b8[_0x24fc('0x4c')](function(_0x29b381){_0x27b612['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x29b381+',%');});_0xdff811=_['union'](_0xdff811,_0x3475b8);break;case'User':if(_0x39da59[_0x24fc('0x7c')]===_0x24fc('0x7d')){_0x1c1f74[_0x3ec1a8](_0x24fc('0x86'),'%'+_0x39da59[_0x24fc('0x7e')]+'%',null);}else{_0x2b5dca=_[_0x24fc('0x77')](_0x58a950,[_0x24fc('0x3e'),'UserId']);_0x39da59[_0x24fc('0x60')]=_0x24fc('0x87');_0x10ef7c=as['buildExpression'](_0x2d657a,_0x2b5dca['type'],_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c[_0x24fc('0x84')],_0x10ef7c[_0x24fc('0x7e')][_0x24fc('0x85')],_0x10ef7c['value'][_0x24fc('0x31')]);}break;case _0x24fc('0x42'):_0x10ef7c=as[_0x24fc('0x83')]('me',null,_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c['text'],_0x10ef7c['value']['start'],_0x10ef7c['value']['end']);break;}}else{var _0x10ef7c=as[_0x24fc('0x83')](_0x2d657a,_0x2b5dca[_0x24fc('0x50')],_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c[_0x24fc('0x84')],_0x10ef7c['value'][_0x24fc('0x85')],_0x10ef7c['value'][_0x24fc('0x31')]);}}}else{var _0x4e6eec=_(_0x2eecaf[_0x24fc('0x52')])[_0x24fc('0x88')]()[_0x24fc('0x47')](function(_0x4291bd){return _[_0x24fc('0x89')](_0x58a950,[_0x24fc('0x3e'),_0x4291bd])?_0x4291bd:undefined;})[_0x24fc('0x8a')]()['value']();if(!_[_0x24fc('0x8b')](_0x4e6eec)){_0x4e6eec[_0x24fc('0x4c')](function(_0x2de101){if(_0x2de101==='ChatWebsiteId'){_0x1b69ad['where'](_0x24fc('0x8c'),[][_0x24fc('0x8d')](_0x2eecaf['query'][_0x2de101]));}else if(_0x2de101===_0x24fc('0x8e')){var _0x1a2e6d=JSON['parse'](_0x2eecaf[_0x24fc('0x52')][_0x2de101])[_0x24fc('0x8f')];var _0x5249ea=JSON[_0x24fc('0x90')](_0x2eecaf[_0x24fc('0x52')][_0x2de101])[_0x24fc('0x91')];_0x1b69ad[_0x24fc('0x5d')](_0x24fc('0x92'),_0x1a2e6d,_0x5249ea);}else{if(_0x2eecaf[_0x24fc('0x52')][_0x2de101]==='null'){_0x1b69ad['where']('i.'+_0x2de101+_0x24fc('0x93'));}else{_0x1b69ad['where']('i.'+_0x2de101+_0x24fc('0x94'),_0x2eecaf['query'][_0x2de101]);}}});}if(_0x2eecaf['query'][_0x24fc('0x95')]){if(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x95')]==0x1){_0x1b69ad[_0x24fc('0x7a')](_0x24fc('0x96'));}else{_0x1b69ad[_0x24fc('0x7a')](_0x24fc('0x97'));}}if(_0x2eecaf[_0x24fc('0x52')]['tag']){_0xdff811=_[_0x24fc('0x98')](_0x2eecaf[_0x24fc('0x52')]['tag'])?_0x2eecaf['query'][_0x24fc('0x99')]:new Array(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x99')]);_0xdff811[_0x24fc('0x4c')](function(_0xd1e6){_0x27b612['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xd1e6+',%');});}if(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x9a')]){var _0x5ca35b=_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x9a')][_0x24fc('0x9b')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x24fc('0x9c')](_0x5ca35b)){_0x1c1f74['or'](_0x24fc('0x9d'),_0x5ca35b+'%');}else{_0x1c1f74['or'](_0x24fc('0x9e'),qs[_0x24fc('0x80')](_0x5ca35b))['or'](_0x24fc('0x9f'),_0x5ca35b+'%');}}}_0x1b69ad[_0x24fc('0x5d')](_0x1c1f74);_0x1b69ad[_0x24fc('0xa0')](_0x24fc('0xa1'));var _0x188edb={'type':db['Sequelize'][_0x24fc('0xa2')][_0x24fc('0xa3')],'raw':!![]};var _0x1dcccf=_0x1b69ad['clone']();_0x1dcccf['field']('i.id');_0x1dcccf[_0x24fc('0x60')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x24fc('0x78'));if(_0x3ce7b3[_0x24fc('0x5b')]){_0x3ce7b3['order'][_0x24fc('0x4c')](function(_0x559692){var _0x41cef7=_0x559692[0x0]==='contactName'?_0x559692[0x0]:'i.'+_0x559692[0x0];_0x1b69ad[_0x24fc('0x5b')](_0x41cef7,_0x559692[0x1]===_0x24fc('0xa4')?![]:!![]);});}if(!_[_0x24fc('0x8b')](_0xdff811)){_0x1b69ad[_0x24fc('0x7a')](_0x27b612);_0x1dcccf[_0x24fc('0x5d')](_0x24fc('0xa5'),_0xdff811);}BPromise['resolve']()[_0x24fc('0x24')](function(){if(!_0x2edef7){if(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0xa6')])return;_0x1dcccf[_0x24fc('0x5d')](_0x24fc('0xa7'));_0x1b69ad[_0x24fc('0x5d')](_0x24fc('0xa7'));return;}if(_0x2eecaf[_0x24fc('0xa8')][_0x24fc('0xa9')]!=='agent')return;return _0x2eecaf[_0x24fc('0xa8')][_0x24fc('0xaa')]({'attributes':['id'],'raw':!![]})[_0x24fc('0x24')](function(_0x30ed50){if(_['isEmpty'](_0x30ed50)){_0x1dcccf[_0x24fc('0x5d')](_0x24fc('0xab'));_0x1b69ad[_0x24fc('0x5d')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x1dcccf[_0x24fc('0x5d')]('i.ChatWebsiteId\x20IN\x20?',_['map'](_0x30ed50,'id'));_0x1b69ad['where'](_0x24fc('0x8c'),_['map'](_0x30ed50,'id'));}});})[_0x24fc('0x24')](function(){if(_0x2eecaf[_0x24fc('0xa8')][_0x24fc('0xa9')]===_0x24fc('0x44')&&!_0x2edef7&&!_0x2eecaf['query'][_0x24fc('0xa6')])return[];return db[_0x24fc('0xac')][_0x24fc('0x52')](_0x1dcccf[_0x24fc('0xad')](),_0x188edb);})[_0x24fc('0x24')](function(_0x5c80a5){_0xbcbcfa[_0x24fc('0x36')]=_0x5c80a5[_0x24fc('0x57')];if(_0xbcbcfa[_0x24fc('0x36')]===0x0)return[];return db[_0x24fc('0xac')]['query'](_0xb0fc00['toString'](),_0x188edb)[_0x24fc('0x24')](function(_0x4216da){_0x32a466=_[_0x24fc('0xae')](_0x4216da,'id');_0x188edb=_[_0x24fc('0x41')](_0x188edb,{'model':db[_0x24fc('0x4e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2eecaf['query'][_0x24fc('0x55')]){_0x3ce7b3[_0x24fc('0x56')][_0x24fc('0x4c')](function(_0x5d5a59){_0x1b69ad[_0x24fc('0x60')]('i.'+_0x5d5a59);});}else{_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xaf'),_0x24fc('0x78'));_0x1b69ad[_0x24fc('0x60')]('a.key','Account.key');_0x1b69ad['field'](_0x24fc('0xb0'),_0x24fc('0xb1'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb2'),_0x24fc('0xb3'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb4'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb5'),_0x24fc('0xb6'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb7'),'Contact.lastName');_0x1b69ad['field'](_0x24fc('0xb8'),'Contact.email');_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb9'),_0x24fc('0xba'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xbb'),_0x24fc('0xbc'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xbd'),_0x24fc('0xbe'));_0x1b69ad['field'](_0x24fc('0xbf'),_0x24fc('0xc0'));_0x1b69ad['field']('o.internal',_0x24fc('0xc1'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xc2'),_0x24fc('0x49'));}if(_0x3ce7b3[_0x24fc('0x5a')])_0x1b69ad[_0x24fc('0x5a')](_0x3ce7b3['limit']);if(_0x3ce7b3[_0x24fc('0x34')])_0x1b69ad[_0x24fc('0x34')](_0x3ce7b3[_0x24fc('0x34')]);return db[_0x24fc('0xac')]['query'](_0x1b69ad[_0x24fc('0xad')](),_0x188edb);})[_0x24fc('0x24')](function(_0x1506e8){if(_0x1506e8['length']>0x0)_0x40f42b[_0x24fc('0x5d')](_0x24fc('0xc3'),_[_0x24fc('0x47')](_0x1506e8,'id'));return db['sequelize'][_0x24fc('0x52')](_0x40f42b[_0x24fc('0xad')](),_0x188edb)['then'](function(_0x543db4){var _0x283251=_[_0x24fc('0xc4')](_0x543db4,_0x24fc('0xc5'));var _0x2029cd=[];_0x1506e8[_0x24fc('0x4c')](function(_0x3afe80){_0x2029cd['push'](updateChatInteraction(_0x3afe80,_0x32a466,_0x283251));});return BPromise[_0x24fc('0xc6')](_0x2029cd);});});})[_0x24fc('0x24')](function(_0x17a6a9){_0xbcbcfa[_0x24fc('0xc7')]=_0x17a6a9;return _0xbcbcfa;})[_0x24fc('0x24')](respondWithFilteredResult(_0x9bc56a,_0x3ce7b3))[_0x24fc('0x2f')](handleError(_0x9bc56a,null));};exports['show']=function(_0x4018d3,_0x4a2522){var _0x5226aa={'raw':![],'where':{'id':_0x4018d3[_0x24fc('0xc8')]['id']}},_0x260a62={};_0x260a62['model']=_[_0x24fc('0x88')](db[_0x24fc('0x4e')][_0x24fc('0x4f')]);_0x260a62[_0x24fc('0x52')]=_['keys'](_0x4018d3[_0x24fc('0x52')]);_0x260a62[_0x24fc('0x5e')]=_[_0x24fc('0x53')](_0x260a62[_0x24fc('0x54')],_0x260a62[_0x24fc('0x52')]);_0x5226aa[_0x24fc('0x56')]=_['intersection'](_0x260a62['model'],qs['fields'](_0x4018d3[_0x24fc('0x52')][_0x24fc('0x55')]));_0x5226aa['attributes']=_0x5226aa[_0x24fc('0x56')][_0x24fc('0x57')]?_0x5226aa[_0x24fc('0x56')]:_0x260a62['model'];if(_0x4018d3[_0x24fc('0x52')][_0x24fc('0xc9')]){_0x5226aa['include']=[{'all':!![]}];}_0x5226aa=_['merge']({},_0x5226aa,_0x4018d3[_0x24fc('0xca')]);return db[_0x24fc('0x4e')][_0x24fc('0x77')](_0x5226aa)['then'](handleEntityNotFound(_0x4a2522,null))[_0x24fc('0x24')](respondWithResult(_0x4a2522,null))['catch'](handleError(_0x4a2522,null));};exports['create']=function(_0x344c0f,_0x52484a){return db['ChatInteraction'][_0x24fc('0xcb')](_0x344c0f['body'],{})[_0x24fc('0x24')](respondWithResult(_0x52484a,0xc9))[_0x24fc('0x2f')](handleError(_0x52484a,null));};exports[_0x24fc('0x3b')]=function(_0x11eaeb,_0x4ae346){if(_0x11eaeb[_0x24fc('0x42')]['id']){delete _0x11eaeb[_0x24fc('0x42')]['id'];}return db['ChatInteraction'][_0x24fc('0x77')]({'where':{'id':_0x11eaeb[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x4ae346,null))[_0x24fc('0x24')](saveUpdates(_0x11eaeb[_0x24fc('0x42')],null))['then'](respondWithResult(_0x4ae346,null))[_0x24fc('0x2f')](handleError(_0x4ae346,null));};exports[_0x24fc('0x3c')]=function(_0x5793d9,_0x759d35){return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x5793d9[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x759d35,null))['then'](removeEntity(_0x759d35,null))[_0x24fc('0x2f')](handleError(_0x759d35,null));};exports['describe']=function(_0x5c8969,_0x42c158){return db[_0x24fc('0x4e')][_0x24fc('0xcc')]()['then'](respondWithResult(_0x42c158,null))['catch'](handleError(_0x42c158,null));};exports[_0x24fc('0xcd')]=function(_0x38fba8,_0xfa9d58){var _0x353a64=_0x38fba8[_0x24fc('0xc8')]['id'];var _0x4ee1ad;var _0x4875bd;var _0x1efb25;return db['ChatInteraction']['findOne']({'where':{'id':_0x353a64}})[_0x24fc('0x24')](function(_0x484775){_0x4ee1ad=_0x484775;return db['ChatWebsite'][_0x24fc('0xce')]({'where':{'id':_0x484775[_0x24fc('0xa6')]},'attributes':['id',_0x24fc('0xcf'),_0x24fc('0xd0'),_0x24fc('0xd1'),_0x24fc('0xd2'),_0x24fc('0xd3')],'raw':!![]});})['then'](function(_0x3b2891){if(_0x3b2891&&_0x3b2891[_0x24fc('0xcf')]&&_0x3b2891[_0x24fc('0xd0')]){_0x4875bd=_0x3b2891;var _0x6e3447={'interaction':{'id':_0x353a64},'agent':{'id':_0x38fba8[_0x24fc('0xa8')]['id'],'name':_0x38fba8[_0x24fc('0xa8')][_0x24fc('0x3e')],'fullname':_0x38fba8[_0x24fc('0xa8')][_0x24fc('0x48')],'email':_0x38fba8[_0x24fc('0xa8')][_0x24fc('0xd4')]},'contact':_0x38fba8[_0x24fc('0x42')][_0x24fc('0x43')],'account':_0x38fba8[_0x24fc('0x42')][_0x24fc('0x46')]};var _0x38ec08={'rejectUnauthorized':![],'method':_0x24fc('0xd5'),'url':_0x24fc('0xd6'),'headers':{'X-APIKEY':_0x3b2891[_0x24fc('0xcf')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x38fba8[_0x24fc('0xa8')][_0x24fc('0xd4')]],'buttons':null,'topic':_0x4875bd[_0x24fc('0xd1')],'note':_[_0x24fc('0xd7')](_0x4875bd[_0x24fc('0xd2')])?null:getMustacheRender(_0x4875bd[_0x24fc('0xd2')],_0x6e3447),'metadata':null},'redirect':'follow','json':!![]};try{if(!_[_0x24fc('0xd7')](_0x4875bd[_0x24fc('0xd3')])){var _0x1d8a8f=getMustacheRender(_0x4875bd[_0x24fc('0xd3')],_0x6e3447);var _0x534388=JSON['parse'](_0x1d8a8f);_0x38ec08['body'][_0x24fc('0xd8')]=_0x534388;}}catch(_0x5aa947){throw new db[(_0x24fc('0xd9'))]['ValidationError'](_0x24fc('0xda'));}return rp(_0x38ec08);}else{throw new db[(_0x24fc('0xd9'))][(_0x24fc('0xdb'))](_0x24fc('0xdc'));}})[_0x24fc('0x24')](function(_0x468477){_0x1efb25=_0x468477;if(_0x1efb25['id']){var _0x1c4ac1={'body':_0x1efb25[_0x24fc('0xdd')],'ChatWebsiteId':_0x4875bd['id'],'ChatInteractionId':_0x4ee1ad['id'],'direction':'out','UserId':_0x38fba8[_0x24fc('0xa8')]['id']};return db[_0x24fc('0xde')][_0x24fc('0xcb')](_0x1c4ac1,{});}else{throw new db[(_0x24fc('0xd9'))]['ValidationError'](_0x24fc('0xdf'));}})[_0x24fc('0x24')](function(){return _0x4ee1ad[_0x24fc('0xe0')]({'vidaooSessionId':_0x1efb25['id']});})[_0x24fc('0x24')](respondWithResult(_0xfa9d58,null))[_0x24fc('0x2f')](handleError(_0xfa9d58,null));};exports[_0x24fc('0xe1')]=function(_0x17280c,_0x13f9e3){if(_0x17280c[_0x24fc('0x42')]['id']){delete _0x17280c[_0x24fc('0x42')]['id'];}return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x17280c['params']['id']},'include':[{'model':db[_0x24fc('0xe2')],'as':_0x24fc('0x7b')}]})[_0x24fc('0x24')](handleEntityNotFound(_0x13f9e3,null))[_0x24fc('0x24')](saveUpdates(_0x17280c[_0x24fc('0x42')],null))[_0x24fc('0x24')](respondWithResult(_0x13f9e3,null))[_0x24fc('0x2f')](handleError(_0x13f9e3,null));};exports['abandon']=function(_0x2400a3,_0x16368d,_0x5b1fe2){if(_0x2400a3[_0x24fc('0x42')]['id']){delete _0x2400a3[_0x24fc('0x42')]['id'];}return db['ChatInteraction'][_0x24fc('0x77')]({'where':{'id':_0x2400a3['params']['id']}})[_0x24fc('0x24')](function(_0x21d6d3){if(!_0x21d6d3){logger['error'](_0x24fc('0xe3'),_0x24fc('0xe4'),0x194,_0x24fc('0xe5'));_0x16368d[_0x24fc('0x30')](0x194);}else{if(_0x21d6d3[_0x24fc('0x87')]){throw new db[(_0x24fc('0xd9'))][(_0x24fc('0xdb'))](_0x24fc('0xe6'));}}return _0x21d6d3;})[_0x24fc('0x24')](function(_0x2c6ac9){if(_0x2c6ac9){return _0x2c6ac9[_0x24fc('0x3b')]({'closed':_0x2400a3[_0x24fc('0x42')][_0x24fc('0xe7')],'disposition':_0x2400a3[_0x24fc('0x42')][_0x24fc('0xe8')]})[_0x24fc('0x24')](function(_0x2ccd34){return _0x2ccd34;});}})['then'](function(_0x51764e){return respondWithRpcPromise('AbandonInteraction',_0x24fc('0xe4'),_0x2400a3['body'],client9004);})[_0x24fc('0x24')](respondWithResult(_0x16368d,null))[_0x24fc('0x2f')](handleError(_0x16368d,null));};exports[_0x24fc('0xe9')]=function(_0x2d7ecb,_0xf4f427,_0x41fbf1){_0x2d7ecb[_0x24fc('0x42')][_0x24fc('0x3e')]=_0x2d7ecb[_0x24fc('0xea')][_0x24fc('0xeb')];_0x2d7ecb[_0x24fc('0x42')]['basename']=_0x2d7ecb['file'][_0x24fc('0xec')];_0x2d7ecb[_0x24fc('0x42')][_0x24fc('0x50')]=_0x2d7ecb['file'][_0x24fc('0xed')];return db[_0x24fc('0xee')][_0x24fc('0xcb')](_0x2d7ecb[_0x24fc('0x42')])[_0x24fc('0x24')](respondWithResult(_0xf4f427,0xc9))[_0x24fc('0x2f')](handleError(_0xf4f427,null));};exports['attachmentDownload']=function(_0x3c41c1,_0x337fad,_0x525d4f){return db[_0x24fc('0x4e')]['findOne']({'where':{'id':_0x3c41c1['params']['id']},'raw':!![]})[_0x24fc('0x24')](handleEntityNotFound(_0x337fad,null))[_0x24fc('0x24')](function(_0x282848){if(_0x282848){if(_0x282848[_0x24fc('0xe7')]){return _0x337fad['status'](0x193)[_0x24fc('0x33')]({'status':0x193,'message':_0x24fc('0xef')});}return db[_0x24fc('0xee')][_0x24fc('0xce')]({'where':{'id':_0x3c41c1[_0x24fc('0x52')]['attachId']},'raw':!![]})['then'](handleEntityNotFound(_0x337fad,null));}})[_0x24fc('0x24')](function(_0x2cbaa1){if(_0x2cbaa1){var _0xaab85=_0x2cbaa1[_0x24fc('0xf0')]!==null;var _0x42d3ae=path['join'](config[_0x24fc('0xf1')],_0x24fc('0xf2'));if(_0xaab85){_0x42d3ae=path[_0x24fc('0xf3')](_0x42d3ae,_0x24fc('0xf4'));}var _0xc73868=path[_0x24fc('0xf3')](_0x42d3ae,_0x2cbaa1[_0x24fc('0xf5')]);return _0x337fad[_0x24fc('0xf6')](_0xc73868);}})[_0x24fc('0x2f')](handleError(_0x337fad,null));};exports['close']=function(_0x3f0da7,_0x36f9d2){var _0x50a4c5=null;var _0x299fd8=null;var _0x5d01fa=null;var _0x92d51d=null;if(_0x3f0da7[_0x24fc('0x42')]['id']){delete _0x3f0da7['body']['id'];}if(_0x3f0da7['body'][_0x24fc('0xf7')]){_0x92d51d=path['join'](config[_0x24fc('0xf1')],_0x24fc('0xf8'),util[_0x24fc('0xf9')](_0x24fc('0xfa'),Date['now']()));_0x3f0da7[_0x24fc('0x42')][_0x24fc('0xfb')]=_0x92d51d;}return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x3f0da7[_0x24fc('0xc8')]['id']},'include':[{'model':db[_0x24fc('0xde')],'as':_0x24fc('0xfc'),'include':[{'model':db[_0x24fc('0xfd')],'as':_0x24fc('0xfd')}]}]})[_0x24fc('0x24')](handleEntityNotFound(_0x36f9d2,null))[_0x24fc('0x24')](saveUpdates(_0x3f0da7[_0x24fc('0x42')],null))[_0x24fc('0x24')](function(_0x210bc5){if(_0x210bc5){_0x50a4c5=_0x210bc5;return db[_0x24fc('0xfe')][_0x24fc('0x77')]({'where':{'id':_0x50a4c5[_0x24fc('0xa6')]}});}})[_0x24fc('0x24')](function(_0x4dbbf1){if(_0x4dbbf1){_0x5d01fa=_0x4dbbf1;return db[_0x24fc('0xe2')][_0x24fc('0x77')]({'where':{'id':_0x50a4c5[_0x24fc('0x82')]}});}})[_0x24fc('0x24')](function(_0x61a50b){if(_0x61a50b){_0x299fd8=_0x61a50b;if(_0x92d51d){var _0x282e8c=null;for(var _0x47637c=0x1;_0x47637c<_0x50a4c5[_0x24fc('0xfc')]['length'];++_0x47637c){_0x282e8c=_0x50a4c5[_0x24fc('0xfc')][_0x47637c];var _0x36788c=_0x282e8c[_0x24fc('0x87')]?util['format'](_0x24fc('0xff'),_0x5d01fa[_0x24fc('0x100')],_0x282e8c[_0x24fc('0x87')]):_0x24fc('0x101');var _0x1bbfe1=_0x3f0da7[_0x24fc('0x42')][_0x24fc('0x102')]||util[_0x24fc('0xf9')]('%s%d','Visitor',_0x282e8c[_0x24fc('0x82')]);switch(_0x5d01fa['agentIdentifier']){case _0x24fc('0x103'):_0x36788c=_0x282e8c[_0x24fc('0x87')]?util[_0x24fc('0xf9')](_0x24fc('0xff'),_0x5d01fa[_0x24fc('0x100')],_0x282e8c[_0x24fc('0x87')]):_0x24fc('0x101');break;case'agent_alias':_0x36788c=_0x282e8c[_0x24fc('0x87')]?_0x282e8c[_0x24fc('0xfd')][_0x24fc('0x104')]||_0x282e8c['User'][_0x24fc('0x48')]:_0x24fc('0x101');break;case _0x24fc('0x105'):_0x36788c=_0x282e8c['UserId']?_0x282e8c[_0x24fc('0xfd')][_0x24fc('0x48')]:_0x24fc('0x101');break;default:_0x36788c=_0x282e8c[_0x24fc('0x87')]?util[_0x24fc('0xf9')](_0x24fc('0xff'),_0x5d01fa[_0x24fc('0x100')],_0x282e8c[_0x24fc('0x87')]):_0x24fc('0x101');}var _0x3f1c36=util['format']('[%s]\x20%s:\x20%s\x0a',moment(_0x282e8c[_0x24fc('0x8e')])[_0x24fc('0xf9')](_0x24fc('0x106')),_0x282e8c['direction']==='in'?_0x1bbfe1:_0x36788c,_0x282e8c[_0x24fc('0x42')]);if(!_0x282e8c[_0x24fc('0x107')]){fs[_0x24fc('0x108')](_0x92d51d,_0x3f1c36);}}return db[_0x24fc('0x109')][_0x24fc('0xce')]({'where':{'service':!![]},'include':[{'model':db[_0x24fc('0x10a')],'as':_0x24fc('0x10b'),'raw':!![]}]});}}})[_0x24fc('0x24')](function(_0x18ab28){if(_0x18ab28&&_0x18ab28[_0x24fc('0x10b')]&&_0x3f0da7[_0x24fc('0x42')]){var _0x14b0b5={'tls':{'rejectUnauthorized':![]}};if(_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x10c')]){_0x14b0b5[_0x24fc('0x10c')]=_0x18ab28['Smtp'][_0x24fc('0x10c')];}else{_0x14b0b5[_0x24fc('0x10d')]=_0x18ab28[_0x24fc('0x10b')]['host'];_0x14b0b5[_0x24fc('0x10e')]=_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x10e')];_0x14b0b5[_0x24fc('0x10f')]=_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x10f')];}if(_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x110')]){_0x14b0b5[_0x24fc('0x111')]={'user':_0x18ab28[_0x24fc('0x10b')][_0x24fc('0xa8')],'pass':_0x18ab28[_0x24fc('0x10b')]['pass']};}return respondWithRpcPromise(_0x24fc('0x112'),_0x24fc('0x113'),{'account':_0x14b0b5,'message':{'from':util[_0x24fc('0xf9')](_0x24fc('0x114'),_0x18ab28[_0x24fc('0x3e')],_0x18ab28[_0x24fc('0xd4')]||_0x18ab28['Smtp'][_0x24fc('0xa8')]),'to':_0x3f0da7[_0x24fc('0x42')][_0x24fc('0xf7')],'subject':_0x24fc('0x115'),'text':util[_0x24fc('0xf9')](_0x24fc('0x116'),_0x3f0da7[_0x24fc('0x42')][_0x24fc('0xf7')]),'attachments':[{'path':_0x92d51d}]}})[_0x24fc('0x24')](function(){return _0x50a4c5;})[_0x24fc('0x2f')](function(_0x51ecc4){console['error'](_0x51ecc4);});}else{return _0x50a4c5;}})['then'](respondWithStatusCode(_0x36f9d2,0xc8))[_0x24fc('0x2f')](handleError(_0x36f9d2,null));};exports[_0x24fc('0x117')]=function(_0x21d021,_0x15035b,_0xe5f00){return db[_0x24fc('0xde')][_0x24fc('0x77')]({'where':{'id':_0x21d021[_0x24fc('0xc8')]['id']}})['then'](handleEntityNotFound(_0x15035b,null))[_0x24fc('0x24')](function(_0x263597){if(_0x263597){return _0x263597['addMessage'](_0x21d021[_0x24fc('0x42')][_0x24fc('0x118')],_[_0x24fc('0x119')](_0x21d021[_0x24fc('0x42')],[_0x24fc('0x118'),'id'])||{});}})[_0x24fc('0x24')](respondWithResult(_0x15035b,null))[_0x24fc('0x2f')](handleError(_0x15035b,null));};exports['getMessages']=function(_0xda0576,_0x1a136f,_0x47833f){var _0x59d561={'raw':![],'where':{}};var _0x4614fe={};var _0x7a2cca={'count':0x0,'rows':[]};return db[_0x24fc('0x4e')][_0x24fc('0xce')]({'where':{'id':_0xda0576[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x1a136f,null))['then'](function(_0x14bd08){if(_0x14bd08){_0x4614fe[_0x24fc('0x54')]=_['keys'](db[_0x24fc('0xde')][_0x24fc('0x4f')]);_0x4614fe[_0x24fc('0x52')]=_[_0x24fc('0x88')](_0xda0576[_0x24fc('0x52')]);_0x4614fe[_0x24fc('0x5e')]=_[_0x24fc('0x53')](_0x4614fe[_0x24fc('0x54')],_0x4614fe[_0x24fc('0x52')]);_0x59d561[_0x24fc('0x56')]=_['intersection'](_0x4614fe['model'],qs[_0x24fc('0x55')](_0xda0576[_0x24fc('0x52')]['fields']));_0x59d561[_0x24fc('0x56')]=_0x59d561[_0x24fc('0x56')][_0x24fc('0x57')]?_0x59d561['attributes']:_0x4614fe[_0x24fc('0x54')];if(!_0xda0576[_0x24fc('0x52')][_0x24fc('0x58')](_0x24fc('0x59'))){_0x59d561['limit']=qs[_0x24fc('0x5a')](_0xda0576['query'][_0x24fc('0x5a')]);_0x59d561['offset']=qs[_0x24fc('0x34')](_0xda0576[_0x24fc('0x52')]['offset']);}_0x59d561[_0x24fc('0x5b')]=qs[_0x24fc('0x5c')](_0xda0576[_0x24fc('0x52')]['sort']);_0x59d561[_0x24fc('0x5d')]=qs[_0x24fc('0x5e')](_[_0x24fc('0x11a')](_0xda0576['query'],_0x4614fe[_0x24fc('0x5e')]));_0x59d561[_0x24fc('0x5d')][_0x24fc('0xc5')]=_0x14bd08['id'];if(_0xda0576['query'][_0x24fc('0x9a')]){_0x59d561[_0x24fc('0x5d')]=_[_0x24fc('0x41')](_0x59d561[_0x24fc('0x5d')],{'$or':_[_0x24fc('0x47')](_0x59d561[_0x24fc('0x56')],function(_0x6fa372){var _0x1e5616={};_0x1e5616[_0x6fa372]={'$like':'%'+_0xda0576[_0x24fc('0x52')]['filter']+'%'};return _0x1e5616;})});}if(_0xda0576['query'][_0x24fc('0x8f')]){var _0x59cd3c=_0xda0576[_0x24fc('0x52')]['$gte']['split'](',');var _0x235cd7={};_0x235cd7[_0x59cd3c[0x0]]={'$gte':moment(_0x59cd3c[0x1])['format'](_0x24fc('0x11b'))};_0x59d561[_0x24fc('0x5d')]=_[_0x24fc('0x41')](_0x59d561['where'],_0x235cd7);}_0x59d561=_[_0x24fc('0x41')]({},_0x59d561,_0xda0576[_0x24fc('0xca')]);return db[_0x24fc('0xde')][_0x24fc('0x36')]({'where':_0x59d561[_0x24fc('0x5d')]})[_0x24fc('0x24')](function(_0x3e6fda){_0x7a2cca[_0x24fc('0x36')]=_0x3e6fda;if(_0xda0576[_0x24fc('0x52')][_0x24fc('0xc9')]){_0x59d561[_0x24fc('0x11c')]=[{'all':!![]}];}return db[_0x24fc('0xde')][_0x24fc('0x11d')](_0x59d561);})[_0x24fc('0x24')](function(_0x4f5acf){_0x7a2cca[_0x24fc('0xc7')]=_0x4f5acf;return _0x7a2cca;});}})[_0x24fc('0x24')](respondWithFilteredResult(_0x1a136f,_0x59d561))[_0x24fc('0x2f')](handleError(_0x1a136f,null));};exports[_0x24fc('0x11e')]=function(_0x4ba8de,_0x53e48e,_0x50012d){var _0x1449f2={'where':{}},_0x43492b={},_0x487e55={'count':0x0,'rows':[]};return db[_0x24fc('0x4e')][_0x24fc('0xce')]({'where':{'id':_0x4ba8de['params']['id']}})['then'](handleEntityNotFound(_0x53e48e,null))[_0x24fc('0x24')](function(_0x5a41d8){if(_0x5a41d8){_0x43492b['model']=_['keys'](db[_0x24fc('0xde')][_0x24fc('0x4f')]);_0x43492b[_0x24fc('0x52')]=_[_0x24fc('0x88')](_0x4ba8de[_0x24fc('0x52')]);_0x43492b[_0x24fc('0x5e')]=_[_0x24fc('0x53')](_0x43492b[_0x24fc('0x54')],_0x43492b['query']);_0x1449f2[_0x24fc('0x56')]=_[_0x24fc('0x53')](_0x43492b[_0x24fc('0x54')],qs[_0x24fc('0x55')](_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x55')]));_0x1449f2[_0x24fc('0x56')]=_0x1449f2[_0x24fc('0x56')][_0x24fc('0x57')]?_0x1449f2[_0x24fc('0x56')]:_0x43492b[_0x24fc('0x54')];if(!_0x4ba8de[_0x24fc('0x52')]['hasOwnProperty'](_0x24fc('0x59'))){_0x1449f2[_0x24fc('0x5a')]=qs[_0x24fc('0x5a')](_0x4ba8de[_0x24fc('0x52')]['limit']);_0x1449f2[_0x24fc('0x34')]=qs[_0x24fc('0x34')](_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x34')]);}_0x1449f2['order']=qs['sort'](_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x5c')]);_0x1449f2[_0x24fc('0x5d')]=qs[_0x24fc('0x5e')](_['pick'](_0x4ba8de[_0x24fc('0x52')],_0x43492b['filters']));_0x1449f2[_0x24fc('0x5d')][_0x24fc('0xc5')]=_0x5a41d8['id'];if(_0x4ba8de[_0x24fc('0x52')]['filter']){_0x1449f2[_0x24fc('0x5d')]=_[_0x24fc('0x41')](_0x1449f2[_0x24fc('0x5d')],{'$or':_[_0x24fc('0x47')](_0x1449f2['attributes'],function(_0x4ae822){var _0x545714={};_0x545714[_0x4ae822]={'$like':'%'+_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x9a')]+'%'};return _0x545714;})});}_0x1449f2[_0x24fc('0x5d')]['secret']=![];if(_0x4ba8de[_0x24fc('0x52')]['id']){_0x1449f2[_0x24fc('0x5d')]['id']={'$gt':_0x4ba8de['query']['id']};}_0x1449f2=_[_0x24fc('0x41')]({},_0x1449f2,_0x4ba8de[_0x24fc('0xca')]);return db[_0x24fc('0xde')][_0x24fc('0x36')]({'where':_0x1449f2['where']})['then'](function(_0x12921f){_0x487e55[_0x24fc('0x36')]=_0x12921f;_0x1449f2['include']=[];if(_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x11f')]){_0x1449f2[_0x24fc('0x11c')]['push']({'model':db[_0x24fc('0xfd')],'as':_0x24fc('0xfd'),'attributes':['id','fullname','alias']});}if(_0x4ba8de[_0x24fc('0x52')][_0x24fc('0xc9')]){_0x1449f2[_0x24fc('0x11c')]=[{'all':!![]}];}return db[_0x24fc('0xde')][_0x24fc('0x11d')](_0x1449f2);})[_0x24fc('0x24')](function(_0x214f7d){_0x487e55[_0x24fc('0xc7')]=_0x214f7d;return _0x487e55;});}})[_0x24fc('0x24')](respondWithFilteredResult(_0x53e48e,_0x1449f2))[_0x24fc('0x2f')](handleError(_0x53e48e,null));};exports[_0x24fc('0x120')]=function(_0x1a7f96,_0x59d246,_0x281eed){return db[_0x24fc('0x4e')]['find']({'where':{'id':_0x1a7f96[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x59d246,null))['then'](function(_0x4e2c71){if(_0x4e2c71){return _0x4e2c71[_0x24fc('0x121')](_0x1a7f96['body'][_0x24fc('0x118')],_['omit'](_0x1a7f96[_0x24fc('0x42')],['ids','id'])||{})[_0x24fc('0x122')](function(){return db[_0x24fc('0x123')][_0x24fc('0x11d')]({'attributes':['id',_0x24fc('0x3e'),_0x24fc('0x61')],'where':{'id':_0x1a7f96[_0x24fc('0x42')][_0x24fc('0x118')]}});})[_0x24fc('0x24')](function(_0x3c5996){socket['emit']('chatInteractionTags:save',{'id':Number(_0x1a7f96['params']['id']),'tags':_0x3c5996||[]});return{'id':Number(_0x1a7f96[_0x24fc('0xc8')]['id']),'tags':_0x3c5996||[]};});}})[_0x24fc('0x24')](respondWithResult(_0x59d246,null))[_0x24fc('0x2f')](handleError(_0x59d246,null));};exports['removeTags']=function(_0x8dc31b,_0x5941bd,_0x4d73bb){return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x8dc31b[_0x24fc('0xc8')]['id']}})['then'](handleEntityNotFound(_0x5941bd,null))[_0x24fc('0x24')](function(_0x464057){if(_0x464057){return _0x464057[_0x24fc('0x124')](_0x8dc31b[_0x24fc('0x52')][_0x24fc('0x118')]);}})[_0x24fc('0x24')](respondWithStatusCode(_0x5941bd,null))['catch'](handleError(_0x5941bd,null));};exports[_0x24fc('0xf6')]=function(_0x9c34d9,_0x3e4f49){var _0x231f0b=moment()[_0x24fc('0x125')]()['toString']();var _0x34355e=path[_0x24fc('0xf3')](config[_0x24fc('0xf1')],_0x24fc('0x126'),_0x24fc('0x127'),'tmp');var _0x4d0910=path[_0x24fc('0xf3')](config[_0x24fc('0xf1')],'server','files',_0x24fc('0x128'));var _0x49025e=path[_0x24fc('0xf3')](_0x34355e,_0x231f0b);var _0x2c9a19=util['format'](_0x24fc('0x129'),_0x9c34d9['params']['id'],_0x231f0b);var _0x38ca24=path['join'](_0x34355e,_0x2c9a19);var _0x53a9aa=[];_0x53a9aa['push']({'model':db['User'],'as':_0x24fc('0xfd'),'attributes':['id',_0x24fc('0x48')],'raw':!![]});_0x53a9aa['push']({'model':db[_0x24fc('0xe2')],'as':_0x24fc('0x7b'),'attributes':['id',_0x24fc('0x12a'),_0x24fc('0x12b')],'raw':!![]});if(_0x9c34d9[_0x24fc('0x52')]['attachments']){_0x53a9aa[_0x24fc('0x4d')]({'model':db[_0x24fc('0xee')],'as':_0x24fc('0xee'),'raw':!![]});}var _0x2139e8=[{'model':db[_0x24fc('0xde')],'as':_0x24fc('0xfc'),'attributes':['id',_0x24fc('0x42'),'createdAt',_0x24fc('0x12c'),_0x24fc('0x107'),_0x24fc('0x95')],'include':_0x53a9aa}];_0x2139e8[_0x24fc('0x4d')]({'model':db['ChatWebsite'],'as':_0x24fc('0x12d'),'attributes':['id',_0x24fc('0x3e')]});_0x2139e8[_0x24fc('0x4d')]({'model':db[_0x24fc('0xfd')],'as':_0x24fc('0x12e'),'attributes':['id','fullname']});return db[_0x24fc('0x4e')]['find']({'where':{'id':_0x9c34d9[_0x24fc('0xc8')]['id']},'include':_0x2139e8})[_0x24fc('0x24')](handleEntityNotFound(_0x3e4f49,null))[_0x24fc('0x24')](function(_0x26179a){if(_0x26179a){var _0x6f1617=_0x26179a['get']({'plain':!![]});fs[_0x24fc('0x12f')](_0x49025e);var _0x57dfbc={'channel':'Chat','account':_0x6f1617['Account'][_0x24fc('0x3e')],'agent':_0x6f1617[_0x24fc('0x12e')]?_0x6f1617[_0x24fc('0x12e')][_0x24fc('0x48')]:_0x24fc('0x130'),'createdAt':moment(_0x6f1617[_0x24fc('0x8e')])[_0x24fc('0xf9')](_0x24fc('0x11b'))[_0x24fc('0xad')](),'closedAt':_0x6f1617[_0x24fc('0xe7')]?moment(_0x6f1617[_0x24fc('0x131')])[_0x24fc('0xf9')](_0x24fc('0x11b'))['toString']():'','disposition':_0x6f1617['disposition'],'chatInfo':{'browser':_0x6f1617['browserName'],'os':_0x6f1617['osName'],'referer':_0x6f1617['referer'],'customerIp':_0x6f1617[_0x24fc('0x132')],'customerPort':_0x6f1617[_0x24fc('0x133')]?_0x6f1617[_0x24fc('0x133')]:_0x24fc('0x130')},'messages':_(_0x6f1617['Messages'])['tail']()[_0x24fc('0x9a')]({'secret':![]})[_0x24fc('0x47')](function(_0x2ee9a6){if(_0x2ee9a6[_0x24fc('0xee')]){var _0x40409c=path['join'](_0x4d0910,_0x2ee9a6[_0x24fc('0xee')][_0x24fc('0xf5')]);if(fs[_0x24fc('0x134')](_0x40409c)){fs['createReadStream'](_0x40409c)['pipe'](fs[_0x24fc('0x135')](path[_0x24fc('0xf3')](_0x49025e,_0x2ee9a6[_0x24fc('0xee')][_0x24fc('0xf5')])));}}return{'date':moment(_0x2ee9a6[_0x24fc('0x8e')])[_0x24fc('0xf9')](_0x24fc('0x11b'))['toString'](),'sender':_0x2ee9a6[_0x24fc('0x12c')]===_0x24fc('0x136')?_0x2ee9a6[_0x24fc('0xfd')]?_0x2ee9a6[_0x24fc('0xfd')]['fullname']:'System':_0x2ee9a6['Contact']['firstName']+(_0x2ee9a6['Contact'][_0x24fc('0x12b')]?'\x20'+_0x2ee9a6[_0x24fc('0x7b')]['lastName']:''),'body':_0x2ee9a6[_0x24fc('0xee')]?_0x2ee9a6[_0x24fc('0xee')]['basename']:_0x2ee9a6[_0x24fc('0x42')],'direction':_0x2ee9a6['direction']===_0x24fc('0x136')?'A':'C','secret':_0x2ee9a6[_0x24fc('0x107')],'read':_0x2ee9a6[_0x24fc('0x95')],'attachment':_0x2ee9a6['Attachment']};})[_0x24fc('0x7e')]()};return ejs[_0x24fc('0x137')](path['join'](config[_0x24fc('0xf1')],'server','views',_0x24fc('0x138')),{'interaction':_0x57dfbc})[_0x24fc('0x24')](function(_0x24101d){var _0x5defce=path[_0x24fc('0xf3')](_0x49025e,_0x24fc('0x139')+_0x6f1617['id']+'-'+_0x231f0b+_0x24fc('0x13a'));var _0x187770={'path':_0x5defce,'channel':_0x24fc('0x13b'),'interactionId':_0x6f1617['id']};return pdf['createPdfFromHTML'](_0x24101d,_0x187770);})['then'](function(){return new BPromise(function(_0x3357cb,_0x2b633b){zipdir(_0x49025e,{'saveTo':_0x38ca24},function(_0x4ad7c4,_0x1d8b26){if(_0x4ad7c4)return _0x2b633b(_0x4ad7c4);return _0x3357cb(_0x1d8b26);});})[_0x24fc('0x24')](function(){return new BPromise(function(_0x4b0f8b,_0x59d408){rimraf(_0x49025e,function(_0x547f6b){if(_0x547f6b)_0x59d408(_0x547f6b);return _0x4b0f8b();});});})[_0x24fc('0x24')](function(){return _0x3e4f49[_0x24fc('0xf6')](_0x38ca24,_0x2c9a19,function(_0x3a2ffd){if(_0x3a2ffd){console[_0x24fc('0x13c')](_0x24fc('0x13d'),_0x3a2ffd);}else{fs[_0x24fc('0x13e')](_0x38ca24);}});});});}else{return _0x3e4f49[_0x24fc('0x30')](0xc8);}})['catch'](handleError(_0x3e4f49,null));};
\ No newline at end of file
+var _0x8603=['Unauthorized','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','close','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','CmContact','%s%d','agentAlias','System','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailServerOut','Smtp','service','host','port','secure','auth','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','mailTranscript','addMessage','ids','omit','getMessages','nolimit','pick','YYYY-MM-DD\x20HH:mm:ss','includeAll','findAll','rows','getMyMessages','hasOwnProperty','includeAgent','addTags','setTags','spread','chatInteractionTags:save','removeTags','download','unix','server','files','attachments','Attachment','Account','Owner','mkdirSync','Chat','N.A.','closedAt','disposition','osName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','lastName','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','client','http','request','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','save','update','then','stack','name','send','render','contact','agent','interaction','account','Users','fullname','Tags','TagIds','split','push','catch','index','map','ChatInteraction','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','field','color','from','tools_tags','select','u.id','u.fullname','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','o.id\x20=\x20i.UserId','chat_websites','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','value','`\x20=\x200','having','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','Tag','forEach','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','body','keys','some','isEmpty','ChatWebsiteId','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','role','sequelize','toString','keyBy','merge','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','show','params','include','options','create','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooMetadata','email','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooTopic','isNull','vidaooNote','follow','ValidationError','Error\x20in\x20Vidaoo\x20configuration','out','ChatMessage','customUpdate','abandon','Interaction\x20already\x20assigned','closed','AbandonInteraction','file','originalname','basename','mimetype','attachmentDownload'];(function(_0x420166,_0x4767a3){var _0x56a849=function(_0x2f449c){while(--_0x2f449c){_0x420166['push'](_0x420166['shift']());}};_0x56a849(++_0x4767a3);}(_0x8603,0x190));var _0x3860=function(_0x29438f,_0x34671f){_0x29438f=_0x29438f-0x0;var _0x22d852=_0x8603[_0x29438f];return _0x22d852;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3860('0x0'));var zipdir=require(_0x3860('0x1'));var jsonpatch=require(_0x3860('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3860('0x3'));var Mustache=require(_0x3860('0x4'));var util=require(_0x3860('0x5'));var path=require('path');var sox=require(_0x3860('0x6'));var csv=require('to-csv');var ejs=require(_0x3860('0x7'));var fs=require('fs');var fs_extra=require(_0x3860('0x8'));var _=require(_0x3860('0x9'));var squel=require(_0x3860('0xa'));var crypto=require(_0x3860('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3860('0xc'));var Papa=require(_0x3860('0xd'));var Redis=require('ioredis');var authService=require(_0x3860('0xe'));var qs=require(_0x3860('0xf'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x3860('0x10'));var hardwareService=require(_0x3860('0x11'));var logger=require('../../config/logger')(_0x3860('0x12'));var utils=require(_0x3860('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x3860('0x14'));var db=require(_0x3860('0x15'))['db'];config[_0x3860('0x16')]=_[_0x3860('0x17')](config[_0x3860('0x16')],{'host':_0x3860('0x18'),'port':0x18eb});var socket=require(_0x3860('0x19'))(new Redis(config[_0x3860('0x16')]));require(_0x3860('0x1a'))[_0x3860('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x3860('0x1c')][_0x3860('0x1d')]({'port':0x232b});var client9004=jayson[_0x3860('0x1c')][_0x3860('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0x1055b3,_0xfa0c9a,_0x2d8a3a,_0x378305){return new BPromise(function(_0x311fdb,_0x3c0d91){var _0x3e51b4=_0x378305||client;return _0x3e51b4[_0x3860('0x1e')](_0x1055b3,_0x2d8a3a)['then'](function(_0x4863bd){logger[_0x3860('0x1f')](_0x3860('0x20'),_0xfa0c9a,_0x3860('0x21'));logger['debug'](_0x3860('0x22'),_0xfa0c9a,_0x3860('0x21'),JSON[_0x3860('0x23')](_0x4863bd));if(_0x4863bd[_0x3860('0x24')]){if(_0x4863bd[_0x3860('0x24')][_0x3860('0x25')]===0x1f4){logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);return _0x3c0d91(_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);}logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x4863bd[_0x3860('0x24')]['message']);return _0x311fdb(_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);}else{logger[_0x3860('0x1f')](_0x3860('0x20'),_0xfa0c9a,_0x3860('0x21'));_0x311fdb(_0x4863bd['result'][_0x3860('0x26')]);}})['catch'](function(_0x577750){logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x577750);_0x3c0d91(_0x577750);});});}function respondWithStatusCode(_0x54b5ec,_0x4d9a90){_0x4d9a90=_0x4d9a90||0xcc;return function(_0x5f42d5){if(_0x5f42d5){return _0x54b5ec[_0x3860('0x27')](_0x4d9a90);}return _0x54b5ec[_0x3860('0x28')](_0x4d9a90)[_0x3860('0x29')]();};}function respondWithResult(_0x371f3a,_0x9332a5){_0x9332a5=_0x9332a5||0xc8;return function(_0x228d34){if(_0x228d34){return _0x371f3a['status'](_0x9332a5)['json'](_0x228d34);}};}function respondWithFilteredResult(_0x389bd0,_0x1f1809){return function(_0x5a9af2){if(_0x5a9af2){var _0x2551f4=typeof _0x1f1809[_0x3860('0x2a')]===_0x3860('0x2b')&&typeof _0x1f1809[_0x3860('0x2c')]===_0x3860('0x2b');var _0x4bbae9=_0x5a9af2[_0x3860('0x2d')];var _0xf624ba=_0x2551f4?0x0:_0x1f1809[_0x3860('0x2a')];var _0x4bd90c=_0x2551f4?_0x5a9af2[_0x3860('0x2d')]:_0x1f1809['offset']+_0x1f1809[_0x3860('0x2c')];var _0x4825f0;if(_0x4bd90c>=_0x4bbae9){_0x4bd90c=_0x4bbae9;_0x4825f0=0xc8;}else{_0x4825f0=0xce;}_0x389bd0[_0x3860('0x28')](_0x4825f0);return _0x389bd0[_0x3860('0x2e')](_0x3860('0x2f'),_0xf624ba+'-'+_0x4bd90c+'/'+_0x4bbae9)['json'](_0x5a9af2);}return null;};}function patchUpdates(_0x39c751){return function(_0x451b0c){try{jsonpatch['apply'](_0x451b0c,_0x39c751,!![]);}catch(_0x1c94cc){return BPromise['reject'](_0x1c94cc);}return _0x451b0c[_0x3860('0x30')]();};}function saveUpdates(_0x3a577a,_0x35185c){return function(_0x2fc231){if(_0x2fc231){return _0x2fc231[_0x3860('0x31')](_0x3a577a)[_0x3860('0x32')](function(_0x1d3fd0){return _0x1d3fd0;});}return null;};}function removeEntity(_0x4d30bc,_0x1a48b6){return function(_0x396ccf){if(_0x396ccf){return _0x396ccf['destroy']()[_0x3860('0x32')](function(){_0x4d30bc[_0x3860('0x28')](0xcc)[_0x3860('0x29')]();});}};}function handleEntityNotFound(_0x5af661,_0x523cc1){return function(_0x285b1b){if(!_0x285b1b){_0x5af661[_0x3860('0x27')](0x194);}return _0x285b1b;};}function handleError(_0x3abf18,_0xa921ed){_0xa921ed=_0xa921ed||0x1f4;return function(_0x59271f){logger['error'](_0x59271f[_0x3860('0x33')]);if(_0x59271f[_0x3860('0x34')]){delete _0x59271f[_0x3860('0x34')];}_0x3abf18[_0x3860('0x28')](_0xa921ed)[_0x3860('0x35')](_0x59271f);};}function getMustacheRender(_0x4df2a9,_0x424424){return Mustache[_0x3860('0x36')](_0x4df2a9,_['merge'](_0x424424['body'],{'contact':_0x424424[_0x3860('0x37')],'message':_0x424424[_0x3860('0x26')],'agent':_0x424424[_0x3860('0x38')],'interaction':_0x424424[_0x3860('0x39')],'account':_0x424424[_0x3860('0x3a')]}))||'';}function getInteractionUsers(_0x592311,_0x28f04d){return new BPromise(function(_0x510aef,_0x112600){try{if(_0x28f04d[_0x592311['id']]){_0x592311[_0x3860('0x3b')]=_['map'](_0x28f04d[_0x592311['id']],function(_0x36d9bd){return{'id':_0x36d9bd['id'],'fullname':_0x36d9bd[_0x3860('0x3c')]};});}}catch(_0x4f3303){_0x112600(_0x4f3303);}_0x510aef(_0x592311);});}function getInteractionTags(_0x1ef9aa,_0xc7d34d){return new BPromise(function(_0x15bd2c,_0xf346e){try{if(_0x1ef9aa['TagIds']){_0x1ef9aa[_0x3860('0x3d')]=[];_0x1ef9aa[_0x3860('0x3e')][_0x3860('0x3f')](',')['forEach'](function(_0x3a87e5){_0x1ef9aa['Tags'][_0x3860('0x40')](_0xc7d34d[_0x3a87e5]);});}delete _0x1ef9aa[_0x3860('0x3e')];}catch(_0x405bfc){_0xf346e(_0x405bfc);}_0x15bd2c(_0x1ef9aa);});}function updateChatInteraction(_0x3f613f,_0x2220c8,_0x3f4216){return new BPromise(function(_0x4e0a44,_0xbbbf01){return getInteractionUsers(_0x3f613f,_0x3f4216)[_0x3860('0x32')](function(_0x5dc78f){return getInteractionTags(_0x5dc78f,_0x2220c8);})['then'](function(_0x2938d4){_0x4e0a44(_0x2938d4);})[_0x3860('0x41')](function(_0x4f2f53){_0xbbbf01(_0x4f2f53);});});}exports[_0x3860('0x42')]=function(_0x30d8eb,_0x4c6c23){var _0xa6791a={},_0x56a650={},_0x392dc3={'count':0x0,'rows':[]};var _0x37e5c3=_[_0x3860('0x43')](db[_0x3860('0x44')][_0x3860('0x45')],function(_0x15ebbd){return{'name':_0x15ebbd[_0x3860('0x46')],'type':_0x15ebbd[_0x3860('0x47')][_0x3860('0x48')]};});_0x56a650[_0x3860('0x49')]=_[_0x3860('0x43')](_0x37e5c3,'name');_0x56a650[_0x3860('0x4a')]=_['keys'](_0x30d8eb[_0x3860('0x4a')]);_0x56a650[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x56a650[_0x3860('0x49')],_0x56a650[_0x3860('0x4a')]);_0xa6791a[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x56a650[_0x3860('0x49')],qs['fields'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x4e')]));_0xa6791a[_0x3860('0x4d')]=_0xa6791a['attributes'][_0x3860('0x4f')]?_0xa6791a[_0x3860('0x4d')]:_0x56a650[_0x3860('0x49')];if(!_0x30d8eb[_0x3860('0x4a')]['hasOwnProperty']('nolimit')){_0xa6791a[_0x3860('0x2c')]=qs['limit'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x2c')]);_0xa6791a[_0x3860('0x2a')]=qs['offset'](_0x30d8eb[_0x3860('0x4a')]['offset']);}_0xa6791a[_0x3860('0x50')]=qs['sort'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x51')]);_0xa6791a[_0x3860('0x52')]=qs['filters'](_['pick'](_0x30d8eb[_0x3860('0x4a')],_0x56a650[_0x3860('0x4b')]),_0x37e5c3);var _0x478dd9=[];var _0x3910f5=squel['select']()[_0x3860('0x53')]('id')[_0x3860('0x53')](_0x3860('0x34'))[_0x3860('0x53')](_0x3860('0x54'))[_0x3860('0x55')](_0x3860('0x56'));var _0x5a9987=squel[_0x3860('0x57')]()[_0x3860('0x53')](_0x3860('0x58'))[_0x3860('0x53')](_0x3860('0x59'))[_0x3860('0x53')]('ui.ChatInteractionId')[_0x3860('0x55')](_0x3860('0x5a'),'ui')[_0x3860('0x5b')](_0x3860('0x5c'),'u',_0x3860('0x5d'));var _0x1e2b5d=squel[_0x3860('0x57')]()[_0x3860('0x55')]('chat_interactions','i')[_0x3860('0x5b')](_0x3860('0x5e'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x3860('0x5b')](_0x3860('0x5c'),'o',_0x3860('0x5f'))['left_join'](_0x3860('0x60'),'a','a.id\x20=\x20i.ChatWebsiteId')[_0x3860('0x5b')](_0x3860('0x61'),'me',_0x3860('0x62'))[_0x3860('0x5b')](_0x3860('0x63'),'it',_0x3860('0x64'))[_0x3860('0x5b')](_0x3860('0x56'),'t',_0x3860('0x65'));var _0x151492=squel[_0x3860('0x66')]();var _0x2bac24=[];var _0x58147d=squel['expr']();var _0x5111e0;if(_0x30d8eb[_0x3860('0x4a')]['search']){_0x5111e0=as['parseSearch'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x67')]);var _0x2ff440=_0x5111e0[_0x3860('0x68')];for(var _0x3d6c17=0x0;_0x3d6c17<_0x5111e0[_0x3860('0x69')]['length'];_0x3d6c17++){var _0x49ec68=_0x5111e0['conditions'][_0x3d6c17];var _0x1d6c70='i';var _0x1c1da4=_[_0x3860('0x6a')](_0x37e5c3,['name',_0x49ec68[_0x3860('0x53')]]);if(!_0x1c1da4){switch(_0x49ec68['field']){case _0x3860('0x6b'):if(_0x49ec68[_0x3860('0x6c')]==0x1){_0x1e2b5d['having']('`'+_0x49ec68[_0x3860('0x53')]+_0x3860('0x6d'));}else{_0x1e2b5d[_0x3860('0x6e')]('`'+_0x49ec68[_0x3860('0x53')]+'`\x20>\x200');}break;case _0x3860('0x6f'):if(_0x49ec68[_0x3860('0x70')]===_0x3860('0x71')){if(_0x49ec68['value']['split']('\x20')[_0x3860('0x4f')]>0x1){_0x151492[_0x2ff440](_0x3860('0x72'),qs[_0x3860('0x73')](_0x49ec68[_0x3860('0x6c')]),null);}else{var _0x28a8b4='%'+_0x49ec68[_0x3860('0x6c')]+'%';_0x151492[_0x2ff440]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x28a8b4,_0x28a8b4,_0x28a8b4);}}else{_0x1c1da4=_[_0x3860('0x6a')](_0x37e5c3,[_0x3860('0x34'),'ContactId']);_0x49ec68[_0x3860('0x53')]=_0x3860('0x74');_0x3427a5=as[_0x3860('0x75')](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5[_0x3860('0x6c')][_0x3860('0x29')]);}break;case _0x3860('0x77'):var _0x27e5ab=_0x49ec68[_0x3860('0x6c')][_0x3860('0x3f')](',')['map'](function(_0x1ae31b){return Number(_0x1ae31b);});_0x27e5ab[_0x3860('0x78')](function(_0x1c33dc){_0x58147d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1c33dc+',%');});_0x2bac24=_['union'](_0x2bac24,_0x27e5ab);break;case _0x3860('0x79'):if(_0x49ec68[_0x3860('0x70')]===_0x3860('0x71')){_0x151492[_0x2ff440](_0x3860('0x7a'),'%'+_0x49ec68[_0x3860('0x6c')]+'%',null);}else{_0x1c1da4=_['find'](_0x37e5c3,['name',_0x3860('0x7b')]);_0x49ec68[_0x3860('0x53')]='UserId';_0x3427a5=as['buildExpression'](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5['value'][_0x3860('0x7c')],_0x3427a5[_0x3860('0x6c')][_0x3860('0x29')]);}break;case _0x3860('0x7d'):_0x3427a5=as['buildExpression']('me',null,_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5['value'][_0x3860('0x29')]);break;}}else{var _0x3427a5=as['buildExpression'](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5['text'],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5['value'][_0x3860('0x29')]);}}}else{var _0x49c356=_(_0x30d8eb[_0x3860('0x4a')])[_0x3860('0x7e')]()[_0x3860('0x43')](function(_0x2fd2f4){return _[_0x3860('0x7f')](_0x37e5c3,[_0x3860('0x34'),_0x2fd2f4])?_0x2fd2f4:undefined;})['compact']()[_0x3860('0x6c')]();if(!_[_0x3860('0x80')](_0x49c356)){_0x49c356[_0x3860('0x78')](function(_0x5d7cc4){if(_0x5d7cc4===_0x3860('0x81')){_0x1e2b5d['where'](_0x3860('0x82'),[][_0x3860('0x83')](_0x30d8eb['query'][_0x5d7cc4]));}else if(_0x5d7cc4===_0x3860('0x84')){var _0x2cd731=JSON[_0x3860('0x85')](_0x30d8eb['query'][_0x5d7cc4])['$gte'];var _0x5a282a=JSON['parse'](_0x30d8eb[_0x3860('0x4a')][_0x5d7cc4])[_0x3860('0x86')];_0x1e2b5d[_0x3860('0x52')](_0x3860('0x87'),_0x2cd731,_0x5a282a);}else{if(_0x30d8eb['query'][_0x5d7cc4]==='null'){_0x1e2b5d[_0x3860('0x52')]('i.'+_0x5d7cc4+_0x3860('0x88'));}else{_0x1e2b5d[_0x3860('0x52')]('i.'+_0x5d7cc4+_0x3860('0x89'),_0x30d8eb['query'][_0x5d7cc4]);}}});}if(_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8a')]){if(_0x30d8eb['query']['read']==0x1){_0x1e2b5d[_0x3860('0x6e')](_0x3860('0x8b'));}else{_0x1e2b5d[_0x3860('0x6e')](_0x3860('0x8c'));}}if(_0x30d8eb['query']['tag']){_0x2bac24=_[_0x3860('0x8d')](_0x30d8eb['query'][_0x3860('0x8e')])?_0x30d8eb[_0x3860('0x4a')]['tag']:new Array(_0x30d8eb['query']['tag']);_0x2bac24[_0x3860('0x78')](function(_0x36116e){_0x58147d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x36116e+',%');});}if(_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8f')]){var _0x2351fe=_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8f')]['replace']('\x5c','\x5c\x5c')[_0x3860('0x90')](/'/g,'\x27\x27');if(qs[_0x3860('0x91')](_0x2351fe)){_0x151492['or'](_0x3860('0x92'),_0x2351fe+'%');}else{_0x151492['or'](_0x3860('0x93'),qs[_0x3860('0x73')](_0x2351fe))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x2351fe+'%');}}}_0x1e2b5d[_0x3860('0x52')](_0x151492);_0x1e2b5d[_0x3860('0x94')](_0x3860('0x95'));var _0x41ee6f={'type':db[_0x3860('0x96')]['QueryTypes']['SELECT'],'raw':!![]};var _0x196c50=_0x1e2b5d[_0x3860('0x97')]();_0x196c50[_0x3860('0x53')](_0x3860('0x95'));_0x196c50[_0x3860('0x53')](_0x3860('0x98'),_0x3860('0x6b'));if(_0xa6791a['order']){_0xa6791a[_0x3860('0x50')][_0x3860('0x78')](function(_0x58eddd){var _0x1ff95b=_0x58eddd[0x0]===_0x3860('0x99')?_0x58eddd[0x0]:'i.'+_0x58eddd[0x0];_0x1e2b5d[_0x3860('0x50')](_0x1ff95b,_0x58eddd[0x1]==='DESC'?![]:!![]);});}if(!_[_0x3860('0x80')](_0x2bac24)){_0x1e2b5d[_0x3860('0x6e')](_0x58147d);_0x196c50['where'](_0x3860('0x9a'),_0x2bac24);}BPromise['resolve']()[_0x3860('0x32')](function(){if(!_0x5111e0){if(_0x30d8eb[_0x3860('0x4a')]['ChatWebsiteId'])return;_0x196c50[_0x3860('0x52')](_0x3860('0x9b'));_0x1e2b5d[_0x3860('0x52')](_0x3860('0x9b'));return;}if(_0x30d8eb[_0x3860('0x9c')]['role']!==_0x3860('0x38'))return;return _0x30d8eb[_0x3860('0x9c')][_0x3860('0x9d')]({'attributes':['id'],'raw':!![]})[_0x3860('0x32')](function(_0x3c9837){if(_['isEmpty'](_0x3c9837)){_0x196c50['where'](_0x3860('0x9e'));_0x1e2b5d[_0x3860('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x196c50[_0x3860('0x52')](_0x3860('0x82'),_[_0x3860('0x43')](_0x3c9837,'id'));_0x1e2b5d[_0x3860('0x52')]('i.ChatWebsiteId\x20IN\x20?',_[_0x3860('0x43')](_0x3c9837,'id'));}});})['then'](function(){if(_0x30d8eb[_0x3860('0x9c')][_0x3860('0x9f')]===_0x3860('0x38')&&!_0x5111e0&&!_0x30d8eb[_0x3860('0x4a')][_0x3860('0x81')])return[];return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x196c50['toString'](),_0x41ee6f);})[_0x3860('0x32')](function(_0x47396d){_0x392dc3['count']=_0x47396d['length'];if(_0x392dc3['count']===0x0)return[];return db['sequelize'][_0x3860('0x4a')](_0x3910f5[_0x3860('0xa1')](),_0x41ee6f)[_0x3860('0x32')](function(_0x1482cd){_0x478dd9=_[_0x3860('0xa2')](_0x1482cd,'id');_0x41ee6f=_[_0x3860('0xa3')](_0x41ee6f,{'model':db['ChatInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x30d8eb[_0x3860('0x4a')]['fields']){_0xa6791a[_0x3860('0x4d')][_0x3860('0x78')](function(_0x897ea0){_0x1e2b5d[_0x3860('0x53')]('i.'+_0x897ea0);});}else{_0x1e2b5d[_0x3860('0x53')](_0x3860('0x98'),_0x3860('0x6b'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa4'),_0x3860('0xa5'));_0x1e2b5d[_0x3860('0x53')]('a.mandatoryDisposition',_0x3860('0xa6'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa7'),'contactName');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa8'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa9'),'Contact.firstName');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xaa'),_0x3860('0xab'));_0x1e2b5d['field'](_0x3860('0xac'),_0x3860('0xad'));_0x1e2b5d[_0x3860('0x53')]('c.phone',_0x3860('0xae'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xaf'),'Contact.mobile');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xb0'),_0x3860('0xb1'));_0x1e2b5d['field'](_0x3860('0xb2'),_0x3860('0xb3'));_0x1e2b5d[_0x3860('0x53')]('o.internal',_0x3860('0xb4'));_0x1e2b5d['field'](_0x3860('0xb5'),'TagIds');}if(_0xa6791a[_0x3860('0x2c')])_0x1e2b5d[_0x3860('0x2c')](_0xa6791a[_0x3860('0x2c')]);if(_0xa6791a[_0x3860('0x2a')])_0x1e2b5d[_0x3860('0x2a')](_0xa6791a[_0x3860('0x2a')]);return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x1e2b5d[_0x3860('0xa1')](),_0x41ee6f);})[_0x3860('0x32')](function(_0x10b4e8){if(_0x10b4e8[_0x3860('0x4f')]>0x0)_0x5a9987[_0x3860('0x52')](_0x3860('0xb6'),_[_0x3860('0x43')](_0x10b4e8,'id'));return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x5a9987[_0x3860('0xa1')](),_0x41ee6f)['then'](function(_0x37575b){var _0x1d6d2b=_[_0x3860('0xb7')](_0x37575b,_0x3860('0xb8'));var _0x3e6bf8=[];_0x10b4e8[_0x3860('0x78')](function(_0xffe2a1){_0x3e6bf8[_0x3860('0x40')](updateChatInteraction(_0xffe2a1,_0x478dd9,_0x1d6d2b));});return BPromise[_0x3860('0xb9')](_0x3e6bf8);});});})[_0x3860('0x32')](function(_0x3b932d){_0x392dc3['rows']=_0x3b932d;return _0x392dc3;})[_0x3860('0x32')](respondWithFilteredResult(_0x4c6c23,_0xa6791a))[_0x3860('0x41')](handleError(_0x4c6c23,null));};exports[_0x3860('0xba')]=function(_0x6334ca,_0x4a929e){var _0x1a1994={'raw':![],'where':{'id':_0x6334ca[_0x3860('0xbb')]['id']}},_0x2ece36={};_0x2ece36[_0x3860('0x49')]=_['keys'](db[_0x3860('0x44')]['rawAttributes']);_0x2ece36['query']=_[_0x3860('0x7e')](_0x6334ca[_0x3860('0x4a')]);_0x2ece36[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x2ece36[_0x3860('0x49')],_0x2ece36[_0x3860('0x4a')]);_0x1a1994[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x2ece36[_0x3860('0x49')],qs[_0x3860('0x4e')](_0x6334ca[_0x3860('0x4a')][_0x3860('0x4e')]));_0x1a1994[_0x3860('0x4d')]=_0x1a1994['attributes'][_0x3860('0x4f')]?_0x1a1994['attributes']:_0x2ece36[_0x3860('0x49')];if(_0x6334ca[_0x3860('0x4a')]['includeAll']){_0x1a1994[_0x3860('0xbc')]=[{'all':!![]}];}_0x1a1994=_[_0x3860('0xa3')]({},_0x1a1994,_0x6334ca[_0x3860('0xbd')]);return db[_0x3860('0x44')][_0x3860('0x6a')](_0x1a1994)[_0x3860('0x32')](handleEntityNotFound(_0x4a929e,null))[_0x3860('0x32')](respondWithResult(_0x4a929e,null))['catch'](handleError(_0x4a929e,null));};exports[_0x3860('0xbe')]=function(_0x6d1819,_0x9e1682){return db[_0x3860('0x44')][_0x3860('0xbe')](_0x6d1819['body'],{})[_0x3860('0x32')](respondWithResult(_0x9e1682,0xc9))['catch'](handleError(_0x9e1682,null));};exports['update']=function(_0x56af8c,_0x1059a4){if(_0x56af8c[_0x3860('0x7d')]['id']){delete _0x56af8c[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x56af8c[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x1059a4,null))[_0x3860('0x32')](saveUpdates(_0x56af8c['body'],null))[_0x3860('0x32')](respondWithResult(_0x1059a4,null))[_0x3860('0x41')](handleError(_0x1059a4,null));};exports['destroy']=function(_0x490884,_0x4428eb){return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x490884['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x4428eb,null))['then'](removeEntity(_0x4428eb,null))[_0x3860('0x41')](handleError(_0x4428eb,null));};exports['describe']=function(_0x41fd53,_0xf91fc2){return db['ChatInteraction'][_0x3860('0xbf')]()[_0x3860('0x32')](respondWithResult(_0xf91fc2,null))['catch'](handleError(_0xf91fc2,null));};exports[_0x3860('0xc0')]=function(_0x398bc1,_0x3312c4){var _0x501519=_0x398bc1[_0x3860('0xbb')]['id'];var _0x47fba5;var _0x3e3dac;var _0x18b845;return db['ChatInteraction'][_0x3860('0xc1')]({'where':{'id':_0x501519}})[_0x3860('0x32')](function(_0x2b1dc1){_0x47fba5=_0x2b1dc1;return db[_0x3860('0xc2')][_0x3860('0xc1')]({'where':{'id':_0x2b1dc1['ChatWebsiteId']},'attributes':['id',_0x3860('0xc3'),_0x3860('0xc4'),'vidaooTopic','vidaooNote',_0x3860('0xc5')],'raw':!![]});})['then'](function(_0xe27f6b){if(_0xe27f6b&&_0xe27f6b[_0x3860('0xc3')]&&_0xe27f6b['vidaooEscalation']){_0x3e3dac=_0xe27f6b;var _0x1041bf={'interaction':{'id':_0x501519},'agent':{'id':_0x398bc1['user']['id'],'name':_0x398bc1[_0x3860('0x9c')]['name'],'fullname':_0x398bc1[_0x3860('0x9c')][_0x3860('0x3c')],'email':_0x398bc1[_0x3860('0x9c')][_0x3860('0xc6')]},'contact':_0x398bc1['body'][_0x3860('0x37')],'account':_0x398bc1[_0x3860('0x7d')][_0x3860('0x3a')]};var _0x1e1baf={'rejectUnauthorized':![],'method':'POST','url':_0x3860('0xc7'),'headers':{'X-APIKEY':_0xe27f6b[_0x3860('0xc3')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x398bc1['user'][_0x3860('0xc6')]],'buttons':null,'topic':_0x3e3dac[_0x3860('0xc8')],'note':_[_0x3860('0xc9')](_0x3e3dac[_0x3860('0xca')])?null:getMustacheRender(_0x3e3dac['vidaooNote'],_0x1041bf),'metadata':null},'redirect':_0x3860('0xcb'),'json':!![]};try{if(!_[_0x3860('0xc9')](_0x3e3dac[_0x3860('0xc5')])){var _0x1ce6e6=getMustacheRender(_0x3e3dac['vidaooMetadata'],_0x1041bf);var _0x1df44=JSON['parse'](_0x1ce6e6);_0x1e1baf['body']['metadata']=_0x1df44;}}catch(_0x15b53f){throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))]('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x1e1baf);}else{throw new db[(_0x3860('0x96'))]['ValidationError'](_0x3860('0xcd'));}})[_0x3860('0x32')](function(_0x21c052){_0x18b845=_0x21c052;if(_0x18b845['id']){var _0x3a920b={'body':_0x18b845['join_url'],'ChatWebsiteId':_0x3e3dac['id'],'ChatInteractionId':_0x47fba5['id'],'direction':_0x3860('0xce'),'UserId':_0x398bc1[_0x3860('0x9c')]['id']};return db[_0x3860('0xcf')]['create'](_0x3a920b,{});}else{throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x47fba5['updateAttributes']({'vidaooSessionId':_0x18b845['id']});})['then'](respondWithResult(_0x3312c4,null))[_0x3860('0x41')](handleError(_0x3312c4,null));};exports[_0x3860('0xd0')]=function(_0x2a09a2,_0x266347){if(_0x2a09a2[_0x3860('0x7d')]['id']){delete _0x2a09a2[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')]['find']({'where':{'id':_0x2a09a2['params']['id']},'include':[{'model':db['CmContact'],'as':_0x3860('0x6f')}]})[_0x3860('0x32')](handleEntityNotFound(_0x266347,null))[_0x3860('0x32')](saveUpdates(_0x2a09a2['body'],null))[_0x3860('0x32')](respondWithResult(_0x266347,null))['catch'](handleError(_0x266347,null));};exports['abandon']=function(_0x5f0700,_0x46f630,_0x505ba2){if(_0x5f0700['body']['id']){delete _0x5f0700[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x5f0700[_0x3860('0xbb')]['id']}})['then'](function(_0x53392b){if(!_0x53392b){logger['error']('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x3860('0xd1'),0x194,'entity\x20not\x20found');_0x46f630['sendStatus'](0x194);}else{if(_0x53392b[_0x3860('0x7b')]){throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))](_0x3860('0xd2'));}}return _0x53392b;})['then'](function(_0x6e541d){if(_0x6e541d){return _0x6e541d[_0x3860('0x31')]({'closed':_0x5f0700[_0x3860('0x7d')][_0x3860('0xd3')],'disposition':_0x5f0700['body']['disposition']})[_0x3860('0x32')](function(_0x55c19c){return _0x55c19c;});}})[_0x3860('0x32')](function(_0x4ab85d){return respondWithRpcPromise(_0x3860('0xd4'),_0x3860('0xd1'),_0x5f0700[_0x3860('0x7d')],client9004);})[_0x3860('0x32')](respondWithResult(_0x46f630,null))[_0x3860('0x41')](handleError(_0x46f630,null));};exports['attachmentUpload']=function(_0x5d3c4d,_0x5e3c54,_0x39e855){_0x5d3c4d[_0x3860('0x7d')][_0x3860('0x34')]=_0x5d3c4d[_0x3860('0xd5')][_0x3860('0xd6')];_0x5d3c4d['body'][_0x3860('0xd7')]=_0x5d3c4d[_0x3860('0xd5')]['filename'];_0x5d3c4d[_0x3860('0x7d')]['type']=_0x5d3c4d[_0x3860('0xd5')][_0x3860('0xd8')];return db['Attachment'][_0x3860('0xbe')](_0x5d3c4d[_0x3860('0x7d')])[_0x3860('0x32')](respondWithResult(_0x5e3c54,0xc9))[_0x3860('0x41')](handleError(_0x5e3c54,null));};exports[_0x3860('0xd9')]=function(_0x3e2dfc,_0x135e84,_0x199bbc){return db[_0x3860('0x44')][_0x3860('0xc1')]({'where':{'id':_0x3e2dfc[_0x3860('0xbb')]['id']},'raw':!![]})[_0x3860('0x32')](handleEntityNotFound(_0x135e84,null))['then'](function(_0x369a4b){if(_0x369a4b){if(_0x369a4b['closed']){return _0x135e84[_0x3860('0x28')](0x193)['json']({'status':0x193,'message':_0x3860('0xda')});}return db['Attachment'][_0x3860('0xc1')]({'where':{'id':_0x3e2dfc['query']['attachId']},'raw':!![]})[_0x3860('0x32')](handleEntityNotFound(_0x135e84,null));}})[_0x3860('0x32')](function(_0xa152b4){if(_0xa152b4){var _0x28931d=_0xa152b4[_0x3860('0xdb')]!==null;var _0x5e65a2=path[_0x3860('0xdc')](config[_0x3860('0xdd')],_0x3860('0xde'));if(_0x28931d){_0x5e65a2=path[_0x3860('0xdc')](_0x5e65a2,_0x3860('0xdf'));}var _0x268658=path['join'](_0x5e65a2,_0xa152b4[_0x3860('0xd7')]);return _0x135e84['download'](_0x268658);}})[_0x3860('0x41')](handleError(_0x135e84,null));};exports[_0x3860('0xe0')]=function(_0x118c4e,_0x471da9){var _0x244ceb=null;var _0x24f8a6=null;var _0x532349=null;var _0x17fa12=null;if(_0x118c4e[_0x3860('0x7d')]['id']){delete _0x118c4e[_0x3860('0x7d')]['id'];}if(_0x118c4e[_0x3860('0x7d')]['mailTranscript']){_0x17fa12=path[_0x3860('0xdc')](config[_0x3860('0xdd')],_0x3860('0xe1'),util[_0x3860('0xe2')](_0x3860('0xe3'),Date[_0x3860('0xe4')]()));_0x118c4e['body'][_0x3860('0xe5')]=_0x17fa12;}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x118c4e[_0x3860('0xbb')]['id']},'include':[{'model':db[_0x3860('0xcf')],'as':_0x3860('0xe6'),'include':[{'model':db['User'],'as':'User'}]}]})['then'](handleEntityNotFound(_0x471da9,null))[_0x3860('0x32')](saveUpdates(_0x118c4e[_0x3860('0x7d')],null))['then'](function(_0x276828){if(_0x276828){_0x244ceb=_0x276828;return db[_0x3860('0xc2')][_0x3860('0x6a')]({'where':{'id':_0x244ceb[_0x3860('0x81')]}});}})[_0x3860('0x32')](function(_0x1740d0){if(_0x1740d0){_0x532349=_0x1740d0;return db[_0x3860('0xe7')][_0x3860('0x6a')]({'where':{'id':_0x244ceb[_0x3860('0x74')]}});}})[_0x3860('0x32')](function(_0x975c7f){if(_0x975c7f){_0x24f8a6=_0x975c7f;if(_0x17fa12){var _0x23207b=null;for(var _0x1a1366=0x1;_0x1a1366<_0x244ceb[_0x3860('0xe6')][_0x3860('0x4f')];++_0x1a1366){_0x23207b=_0x244ceb['Messages'][_0x1a1366];var _0x56566c=_0x23207b[_0x3860('0x7b')]?util[_0x3860('0xe2')](_0x3860('0xe8'),_0x532349[_0x3860('0xe9')],_0x23207b[_0x3860('0x7b')]):_0x3860('0xea');var _0x1290e7=_0x118c4e[_0x3860('0x7d')]['customer']||util[_0x3860('0xe2')](_0x3860('0xe8'),_0x3860('0xeb'),_0x23207b['ContactId']);switch(_0x532349[_0x3860('0xec')]){case _0x3860('0xed'):_0x56566c=_0x23207b[_0x3860('0x7b')]?util[_0x3860('0xe2')](_0x3860('0xe8'),_0x532349[_0x3860('0xe9')],_0x23207b[_0x3860('0x7b')]):_0x3860('0xea');break;case _0x3860('0xee'):_0x56566c=_0x23207b['UserId']?_0x23207b[_0x3860('0x79')][_0x3860('0xef')]||_0x23207b['User'][_0x3860('0x3c')]:_0x3860('0xea');break;case _0x3860('0xf0'):_0x56566c=_0x23207b['UserId']?_0x23207b[_0x3860('0x79')][_0x3860('0x3c')]:_0x3860('0xea');break;default:_0x56566c=_0x23207b[_0x3860('0x7b')]?util['format']('%s%d',_0x532349[_0x3860('0xe9')],_0x23207b['UserId']):_0x3860('0xea');}var _0x15314d=util[_0x3860('0xe2')](_0x3860('0xf1'),moment(_0x23207b[_0x3860('0x84')])[_0x3860('0xe2')](_0x3860('0xf2')),_0x23207b[_0x3860('0xf3')]==='in'?_0x1290e7:_0x56566c,_0x23207b['body']);if(!_0x23207b[_0x3860('0xf4')]){fs[_0x3860('0xf5')](_0x17fa12,_0x15314d);}}return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db[_0x3860('0xf6')],'as':'Smtp','raw':!![]}]});}}})[_0x3860('0x32')](function(_0x2bf644){if(_0x2bf644&&_0x2bf644[_0x3860('0xf7')]&&_0x118c4e[_0x3860('0x7d')]){var _0xd95981={'tls':{'rejectUnauthorized':![]}};if(_0x2bf644[_0x3860('0xf7')][_0x3860('0xf8')]){_0xd95981[_0x3860('0xf8')]=_0x2bf644['Smtp']['service'];}else{_0xd95981[_0x3860('0xf9')]=_0x2bf644['Smtp'][_0x3860('0xf9')];_0xd95981[_0x3860('0xfa')]=_0x2bf644[_0x3860('0xf7')][_0x3860('0xfa')];_0xd95981[_0x3860('0xfb')]=_0x2bf644[_0x3860('0xf7')][_0x3860('0xfb')];}if(_0x2bf644['Smtp']['authentication']){_0xd95981[_0x3860('0xfc')]={'user':_0x2bf644[_0x3860('0xf7')][_0x3860('0x9c')],'pass':_0x2bf644['Smtp'][_0x3860('0xfd')]};}return respondWithRpcPromise(_0x3860('0xfe'),_0x3860('0xff'),{'account':_0xd95981,'message':{'from':util['format'](_0x3860('0x100'),_0x2bf644[_0x3860('0x34')],_0x2bf644['email']||_0x2bf644['Smtp']['user']),'to':_0x118c4e['body']['mailTranscript'],'subject':_0x3860('0x101'),'text':util[_0x3860('0xe2')](_0x3860('0x102'),_0x118c4e[_0x3860('0x7d')][_0x3860('0x103')]),'attachments':[{'path':_0x17fa12}]}})['then'](function(){return _0x244ceb;})[_0x3860('0x41')](function(_0x5235e){console['error'](_0x5235e);});}else{return _0x244ceb;}})[_0x3860('0x32')](respondWithStatusCode(_0x471da9,0xc8))[_0x3860('0x41')](handleError(_0x471da9,null));};exports[_0x3860('0x104')]=function(_0x38cdf1,_0x4ab7b2,_0x4c8a10){return db['ChatMessage'][_0x3860('0x6a')]({'where':{'id':_0x38cdf1['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x4ab7b2,null))[_0x3860('0x32')](function(_0x2adf67){if(_0x2adf67){return _0x2adf67[_0x3860('0x104')](_0x38cdf1[_0x3860('0x7d')][_0x3860('0x105')],_[_0x3860('0x106')](_0x38cdf1[_0x3860('0x7d')],[_0x3860('0x105'),'id'])||{});}})[_0x3860('0x32')](respondWithResult(_0x4ab7b2,null))[_0x3860('0x41')](handleError(_0x4ab7b2,null));};exports[_0x3860('0x107')]=function(_0x173790,_0x20d0d2,_0x8d3ad7){var _0xf1e9ab={'raw':![],'where':{}};var _0xcf350b={};var _0x1348e0={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x3860('0xc1')]({'where':{'id':_0x173790['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x20d0d2,null))[_0x3860('0x32')](function(_0x11d0ab){if(_0x11d0ab){_0xcf350b[_0x3860('0x49')]=_[_0x3860('0x7e')](db[_0x3860('0xcf')][_0x3860('0x45')]);_0xcf350b[_0x3860('0x4a')]=_[_0x3860('0x7e')](_0x173790['query']);_0xcf350b[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0xcf350b[_0x3860('0x49')],_0xcf350b[_0x3860('0x4a')]);_0xf1e9ab[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0xcf350b[_0x3860('0x49')],qs['fields'](_0x173790[_0x3860('0x4a')][_0x3860('0x4e')]));_0xf1e9ab[_0x3860('0x4d')]=_0xf1e9ab['attributes'][_0x3860('0x4f')]?_0xf1e9ab[_0x3860('0x4d')]:_0xcf350b[_0x3860('0x49')];if(!_0x173790['query']['hasOwnProperty'](_0x3860('0x108'))){_0xf1e9ab[_0x3860('0x2c')]=qs['limit'](_0x173790[_0x3860('0x4a')]['limit']);_0xf1e9ab[_0x3860('0x2a')]=qs[_0x3860('0x2a')](_0x173790['query'][_0x3860('0x2a')]);}_0xf1e9ab['order']=qs[_0x3860('0x51')](_0x173790[_0x3860('0x4a')][_0x3860('0x51')]);_0xf1e9ab[_0x3860('0x52')]=qs[_0x3860('0x4b')](_[_0x3860('0x109')](_0x173790[_0x3860('0x4a')],_0xcf350b['filters']));_0xf1e9ab[_0x3860('0x52')]['ChatInteractionId']=_0x11d0ab['id'];if(_0x173790[_0x3860('0x4a')][_0x3860('0x8f')]){_0xf1e9ab['where']=_['merge'](_0xf1e9ab[_0x3860('0x52')],{'$or':_[_0x3860('0x43')](_0xf1e9ab[_0x3860('0x4d')],function(_0x234f93){var _0x5ed001={};_0x5ed001[_0x234f93]={'$like':'%'+_0x173790[_0x3860('0x4a')][_0x3860('0x8f')]+'%'};return _0x5ed001;})});}if(_0x173790[_0x3860('0x4a')]['$gte']){var _0x1ac962=_0x173790[_0x3860('0x4a')]['$gte'][_0x3860('0x3f')](',');var _0x35dbfe={};_0x35dbfe[_0x1ac962[0x0]]={'$gte':moment(_0x1ac962[0x1])[_0x3860('0xe2')](_0x3860('0x10a'))};_0xf1e9ab[_0x3860('0x52')]=_[_0x3860('0xa3')](_0xf1e9ab[_0x3860('0x52')],_0x35dbfe);}_0xf1e9ab=_['merge']({},_0xf1e9ab,_0x173790[_0x3860('0xbd')]);return db[_0x3860('0xcf')][_0x3860('0x2d')]({'where':_0xf1e9ab[_0x3860('0x52')]})[_0x3860('0x32')](function(_0x54ebd7){_0x1348e0[_0x3860('0x2d')]=_0x54ebd7;if(_0x173790[_0x3860('0x4a')][_0x3860('0x10b')]){_0xf1e9ab[_0x3860('0xbc')]=[{'all':!![]}];}return db[_0x3860('0xcf')][_0x3860('0x10c')](_0xf1e9ab);})['then'](function(_0x16457e){_0x1348e0[_0x3860('0x10d')]=_0x16457e;return _0x1348e0;});}})[_0x3860('0x32')](respondWithFilteredResult(_0x20d0d2,_0xf1e9ab))[_0x3860('0x41')](handleError(_0x20d0d2,null));};exports[_0x3860('0x10e')]=function(_0x2b6605,_0x11409b,_0x187e3b){var _0x4fb4f3={'where':{}},_0x21b179={},_0x28b7a2={'count':0x0,'rows':[]};return db[_0x3860('0x44')][_0x3860('0xc1')]({'where':{'id':_0x2b6605[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x11409b,null))[_0x3860('0x32')](function(_0x2ca2e7){if(_0x2ca2e7){_0x21b179[_0x3860('0x49')]=_['keys'](db[_0x3860('0xcf')][_0x3860('0x45')]);_0x21b179[_0x3860('0x4a')]=_[_0x3860('0x7e')](_0x2b6605[_0x3860('0x4a')]);_0x21b179[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x21b179[_0x3860('0x49')],_0x21b179[_0x3860('0x4a')]);_0x4fb4f3[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x21b179[_0x3860('0x49')],qs[_0x3860('0x4e')](_0x2b6605[_0x3860('0x4a')][_0x3860('0x4e')]));_0x4fb4f3['attributes']=_0x4fb4f3[_0x3860('0x4d')][_0x3860('0x4f')]?_0x4fb4f3[_0x3860('0x4d')]:_0x21b179[_0x3860('0x49')];if(!_0x2b6605[_0x3860('0x4a')][_0x3860('0x10f')](_0x3860('0x108'))){_0x4fb4f3[_0x3860('0x2c')]=qs[_0x3860('0x2c')](_0x2b6605[_0x3860('0x4a')][_0x3860('0x2c')]);_0x4fb4f3[_0x3860('0x2a')]=qs['offset'](_0x2b6605[_0x3860('0x4a')]['offset']);}_0x4fb4f3[_0x3860('0x50')]=qs['sort'](_0x2b6605[_0x3860('0x4a')]['sort']);_0x4fb4f3[_0x3860('0x52')]=qs[_0x3860('0x4b')](_['pick'](_0x2b6605[_0x3860('0x4a')],_0x21b179[_0x3860('0x4b')]));_0x4fb4f3[_0x3860('0x52')][_0x3860('0xb8')]=_0x2ca2e7['id'];if(_0x2b6605[_0x3860('0x4a')]['filter']){_0x4fb4f3['where']=_[_0x3860('0xa3')](_0x4fb4f3[_0x3860('0x52')],{'$or':_[_0x3860('0x43')](_0x4fb4f3[_0x3860('0x4d')],function(_0x31a537){var _0x438121={};_0x438121[_0x31a537]={'$like':'%'+_0x2b6605[_0x3860('0x4a')]['filter']+'%'};return _0x438121;})});}_0x4fb4f3[_0x3860('0x52')]['secret']=![];if(_0x2b6605[_0x3860('0x4a')]['id']){_0x4fb4f3[_0x3860('0x52')]['id']={'$gt':_0x2b6605[_0x3860('0x4a')]['id']};}_0x4fb4f3=_[_0x3860('0xa3')]({},_0x4fb4f3,_0x2b6605['options']);return db[_0x3860('0xcf')][_0x3860('0x2d')]({'where':_0x4fb4f3['where']})[_0x3860('0x32')](function(_0x4d4366){_0x28b7a2[_0x3860('0x2d')]=_0x4d4366;_0x4fb4f3[_0x3860('0xbc')]=[];if(_0x2b6605[_0x3860('0x4a')][_0x3860('0x110')]){_0x4fb4f3[_0x3860('0xbc')][_0x3860('0x40')]({'model':db[_0x3860('0x79')],'as':_0x3860('0x79'),'attributes':['id',_0x3860('0x3c'),'alias']});}if(_0x2b6605[_0x3860('0x4a')][_0x3860('0x10b')]){_0x4fb4f3[_0x3860('0xbc')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x4fb4f3);})['then'](function(_0x39c52e){_0x28b7a2[_0x3860('0x10d')]=_0x39c52e;return _0x28b7a2;});}})[_0x3860('0x32')](respondWithFilteredResult(_0x11409b,_0x4fb4f3))[_0x3860('0x41')](handleError(_0x11409b,null));};exports[_0x3860('0x111')]=function(_0x185040,_0x14cef9,_0x5e1ed4){return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x185040[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x14cef9,null))['then'](function(_0xbc013a){if(_0xbc013a){return _0xbc013a[_0x3860('0x112')](_0x185040['body'][_0x3860('0x105')],_[_0x3860('0x106')](_0x185040[_0x3860('0x7d')],[_0x3860('0x105'),'id'])||{})[_0x3860('0x113')](function(){return db[_0x3860('0x77')][_0x3860('0x10c')]({'attributes':['id',_0x3860('0x34'),_0x3860('0x54')],'where':{'id':_0x185040[_0x3860('0x7d')][_0x3860('0x105')]}});})[_0x3860('0x32')](function(_0x57f603){socket['emit'](_0x3860('0x114'),{'id':Number(_0x185040['params']['id']),'tags':_0x57f603||[]});return{'id':Number(_0x185040['params']['id']),'tags':_0x57f603||[]};});}})[_0x3860('0x32')](respondWithResult(_0x14cef9,null))[_0x3860('0x41')](handleError(_0x14cef9,null));};exports[_0x3860('0x115')]=function(_0x2e2ff3,_0x27c591,_0x8b9a7a){return db['ChatInteraction'][_0x3860('0x6a')]({'where':{'id':_0x2e2ff3[_0x3860('0xbb')]['id']}})['then'](handleEntityNotFound(_0x27c591,null))[_0x3860('0x32')](function(_0x5ecd57){if(_0x5ecd57){return _0x5ecd57['removeTags'](_0x2e2ff3['query'][_0x3860('0x105')]);}})[_0x3860('0x32')](respondWithStatusCode(_0x27c591,null))[_0x3860('0x41')](handleError(_0x27c591,null));};exports[_0x3860('0x116')]=function(_0x39524a,_0xa0492b){var _0x4d44de=moment()[_0x3860('0x117')]()[_0x3860('0xa1')]();var _0x1dcd01=path['join'](config[_0x3860('0xdd')],_0x3860('0x118'),_0x3860('0x119'),'tmp');var _0x198422=path['join'](config[_0x3860('0xdd')],'server',_0x3860('0x119'),_0x3860('0x11a'));var _0x1a97c1=path[_0x3860('0xdc')](_0x1dcd01,_0x4d44de);var _0x4cc748=util[_0x3860('0xe2')]('transcript-%d-%s.zip',_0x39524a[_0x3860('0xbb')]['id'],_0x4d44de);var _0x18fd61=path['join'](_0x1dcd01,_0x4cc748);var _0x39eb63=[];_0x39eb63[_0x3860('0x40')]({'model':db['User'],'as':_0x3860('0x79'),'attributes':['id',_0x3860('0x3c')],'raw':!![]});_0x39eb63[_0x3860('0x40')]({'model':db[_0x3860('0xe7')],'as':_0x3860('0x6f'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x39524a[_0x3860('0x4a')]['attachments']){_0x39eb63[_0x3860('0x40')]({'model':db[_0x3860('0x11b')],'as':'Attachment','raw':!![]});}var _0x134dfd=[{'model':db[_0x3860('0xcf')],'as':_0x3860('0xe6'),'attributes':['id','body',_0x3860('0x84'),'direction','secret','read'],'include':_0x39eb63}];_0x134dfd['push']({'model':db['ChatWebsite'],'as':_0x3860('0x11c'),'attributes':['id',_0x3860('0x34')]});_0x134dfd['push']({'model':db[_0x3860('0x79')],'as':_0x3860('0x11d'),'attributes':['id',_0x3860('0x3c')]});return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x39524a[_0x3860('0xbb')]['id']},'include':_0x134dfd})[_0x3860('0x32')](handleEntityNotFound(_0xa0492b,null))['then'](function(_0x2fe51b){if(_0x2fe51b){var _0x51bf5a=_0x2fe51b['get']({'plain':!![]});fs[_0x3860('0x11e')](_0x1a97c1);var _0x33abf1={'channel':_0x3860('0x11f'),'account':_0x51bf5a[_0x3860('0x11c')][_0x3860('0x34')],'agent':_0x51bf5a['Owner']?_0x51bf5a[_0x3860('0x11d')]['fullname']:_0x3860('0x120'),'createdAt':moment(_0x51bf5a['createdAt'])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')](),'closedAt':_0x51bf5a[_0x3860('0xd3')]?moment(_0x51bf5a[_0x3860('0x121')])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')]():'','disposition':_0x51bf5a[_0x3860('0x122')],'chatInfo':{'browser':_0x51bf5a['browserName'],'os':_0x51bf5a[_0x3860('0x123')],'referer':_0x51bf5a[_0x3860('0x124')],'customerIp':_0x51bf5a[_0x3860('0x125')],'customerPort':_0x51bf5a[_0x3860('0x126')]?_0x51bf5a[_0x3860('0x126')]:'N.A.'},'messages':_(_0x51bf5a[_0x3860('0xe6')])[_0x3860('0x127')]()['filter']({'secret':![]})['map'](function(_0x5b23d2){if(_0x5b23d2[_0x3860('0x11b')]){var _0x409781=path[_0x3860('0xdc')](_0x198422,_0x5b23d2[_0x3860('0x11b')][_0x3860('0xd7')]);if(fs[_0x3860('0x128')](_0x409781)){fs[_0x3860('0x129')](_0x409781)[_0x3860('0x12a')](fs[_0x3860('0x12b')](path[_0x3860('0xdc')](_0x1a97c1,_0x5b23d2[_0x3860('0x11b')][_0x3860('0xd7')])));}}return{'date':moment(_0x5b23d2[_0x3860('0x84')])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')](),'sender':_0x5b23d2[_0x3860('0xf3')]===_0x3860('0xce')?_0x5b23d2[_0x3860('0x79')]?_0x5b23d2['User'][_0x3860('0x3c')]:_0x3860('0xea'):_0x5b23d2[_0x3860('0x6f')]['firstName']+(_0x5b23d2[_0x3860('0x6f')][_0x3860('0x12c')]?'\x20'+_0x5b23d2['Contact'][_0x3860('0x12c')]:''),'body':_0x5b23d2['Attachment']?_0x5b23d2['Attachment'][_0x3860('0xd7')]:_0x5b23d2[_0x3860('0x7d')],'direction':_0x5b23d2[_0x3860('0xf3')]===_0x3860('0xce')?'A':'C','secret':_0x5b23d2[_0x3860('0xf4')],'read':_0x5b23d2[_0x3860('0x8a')],'attachment':_0x5b23d2['Attachment']};})[_0x3860('0x6c')]()};return ejs[_0x3860('0x12d')](path[_0x3860('0xdc')](config['root'],_0x3860('0x118'),_0x3860('0x12e'),'downloadInteraction.ejs'),{'interaction':_0x33abf1})[_0x3860('0x32')](function(_0x5c5755){var _0x5dfb3b=path[_0x3860('0xdc')](_0x1a97c1,_0x3860('0x12f')+_0x51bf5a['id']+'-'+_0x4d44de+_0x3860('0x130'));var _0x1eba76={'path':_0x5dfb3b,'channel':'Chat','interactionId':_0x51bf5a['id']};return pdf[_0x3860('0x131')](_0x5c5755,_0x1eba76);})['then'](function(){return new BPromise(function(_0x34ad82,_0x44ac65){zipdir(_0x1a97c1,{'saveTo':_0x18fd61},function(_0x43cc98,_0xd9ff70){if(_0x43cc98)return _0x44ac65(_0x43cc98);return _0x34ad82(_0xd9ff70);});})['then'](function(){return new BPromise(function(_0x52e611,_0x4ccefa){rimraf(_0x1a97c1,function(_0x2c90b){if(_0x2c90b)_0x4ccefa(_0x2c90b);return _0x52e611();});});})[_0x3860('0x32')](function(){return _0xa0492b[_0x3860('0x116')](_0x18fd61,_0x4cc748,function(_0x3046f4){if(_0x3046f4){console[_0x3860('0x132')](_0x3860('0x133'),_0x3046f4);}else{fs[_0x3860('0x134')](_0x18fd61);}});});});}else{return _0xa0492b['sendStatus'](0xc8);}})[_0x3860('0x41')](handleError(_0xa0492b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf90c=['setMaxListeners','save','update','remove','getUsers','then','setDataValue','map','findAll','unreadMessages','length','emit','catch','hasOwnProperty','exports','events','../../mysqldb','ChatMessage'];(function(_0x2befb5,_0x10f2ac){var _0x11928d=function(_0x1be44d){while(--_0x1be44d){_0x2befb5['push'](_0x2befb5['shift']());}};_0x11928d(++_0x10f2ac);}(_0xf90c,0xe7));var _0xcf90=function(_0x2f99fb,_0x2a5f2e){_0x2f99fb=_0x2f99fb-0x0;var _0x51e6ad=_0xf90c[_0x2f99fb];return _0x51e6ad;};'use strict';var EventEmitter=require(_0xcf90('0x0'));var ChatInteraction=require(_0xcf90('0x1'))['db']['ChatInteraction'];var ChatMessage=require(_0xcf90('0x1'))['db'][_0xcf90('0x2')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0xcf90('0x3')](0x0);var events={'afterCreate':_0xcf90('0x4'),'afterUpdate':_0xcf90('0x5'),'afterDestroy':_0xcf90('0x6')};function emitEvent(_0x1a44ec){return function(_0x4a3892,_0x169d6b,_0x178e63){_0x4a3892[_0xcf90('0x7')]({'attributes':['id'],'raw':!![]})[_0xcf90('0x8')](function(_0x3757db){_0x4a3892[_0xcf90('0x9')]('Users',_0x3757db[_0xcf90('0xa')](function(_0x34f2eb){return{'id':_0x34f2eb['id']};}));return ChatMessage[_0xcf90('0xb')]({'where':{'ChatInteractionId':_0x4a3892['id'],'direction':'in','read':![]},'raw':!![]});})[_0xcf90('0x8')](function(_0x25f440){_0x4a3892[_0xcf90('0x9')](_0xcf90('0xc'),_0x25f440[_0xcf90('0xd')]);ChatInteractionEvents[_0xcf90('0xe')](_0x1a44ec+':'+_0x4a3892['id'],_0x4a3892);ChatInteractionEvents[_0xcf90('0xe')](_0x1a44ec,_0x4a3892);_0x178e63(null);})[_0xcf90('0xf')](_0x178e63(null));};}for(var e in events){if(events[_0xcf90('0x10')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module[_0xcf90('0x11')]=ChatInteractionEvents;
\ No newline at end of file
+var _0xacb2=['ChatInteraction','ChatMessage','setMaxListeners','update','remove','getUsers','then','map','findAll','setDataValue','length','emit','hasOwnProperty','../../mysqldb'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xacb2,0x117));var _0x2acb=function(_0x57dbd0,_0x8410cf){_0x57dbd0=_0x57dbd0-0x0;var _0x54894d=_0xacb2[_0x57dbd0];return _0x54894d;};'use strict';var EventEmitter=require('events');var ChatInteraction=require(_0x2acb('0x0'))['db'][_0x2acb('0x1')];var ChatMessage=require(_0x2acb('0x0'))['db'][_0x2acb('0x2')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0x2acb('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x2acb('0x4'),'afterDestroy':_0x2acb('0x5')};function emitEvent(_0x589ef1){return function(_0x4c8db2,_0x31d543,_0x27cdfb){_0x4c8db2[_0x2acb('0x6')]({'attributes':['id'],'raw':!![]})[_0x2acb('0x7')](function(_0x115b8c){_0x4c8db2['setDataValue']('Users',_0x115b8c[_0x2acb('0x8')](function(_0x1755c8){return{'id':_0x1755c8['id']};}));return ChatMessage[_0x2acb('0x9')]({'where':{'ChatInteractionId':_0x4c8db2['id'],'direction':'in','read':![]},'raw':!![]});})[_0x2acb('0x7')](function(_0x7016a6){_0x4c8db2[_0x2acb('0xa')]('unreadMessages',_0x7016a6[_0x2acb('0xb')]);ChatInteractionEvents[_0x2acb('0xc')](_0x589ef1+':'+_0x4c8db2['id'],_0x4c8db2);ChatInteractionEvents[_0x2acb('0xc')](_0x589ef1,_0x4c8db2);_0x27cdfb(null);})['catch'](_0x27cdfb(null));};}for(var e in events){if(events[_0x2acb('0xd')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module['exports']=ChatInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70db=['define','ChatInteraction','chat_interactions','changed','closedAt','YYYY-MM-DD\x20HH:mm:ss','utf8mb4','utf8mb4_unicode_ci','util','api','moment','bluebird','request-promise','path','../../config/environment','./chatInteraction.attributes','exports'];(function(_0x28a547,_0x4b2e12){var _0x1a4fb6=function(_0x53424a){while(--_0x53424a){_0x28a547['push'](_0x28a547['shift']());}};_0x1a4fb6(++_0x4b2e12);}(_0x70db,0x13a));var _0xb70d=function(_0x55f8b4,_0x43f30d){_0x55f8b4=_0x55f8b4-0x0;var _0x2475f9=_0x70db[_0x55f8b4];return _0x2475f9;};'use strict';var _=require('lodash');var util=require(_0xb70d('0x0'));var logger=require('../../config/logger')(_0xb70d('0x1'));var moment=require(_0xb70d('0x2'));var BPromise=require(_0xb70d('0x3'));var rp=require(_0xb70d('0x4'));var fs=require('fs');var path=require(_0xb70d('0x5'));var rimraf=require('rimraf');var config=require(_0xb70d('0x6'));var attributes=require(_0xb70d('0x7'));module[_0xb70d('0x8')]=function(_0x2439ba,_0x5a6a0a){return _0x2439ba[_0xb70d('0x9')](_0xb70d('0xa'),attributes,{'tableName':_0xb70d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5ab251,_0x13b415,_0x4af128){if(_0x5ab251[_0xb70d('0xc')]('closed')){_0x5ab251[_0xb70d('0xd')]=moment()['format'](_0xb70d('0xe'));}_0x4af128(null,_0x5ab251);}},'charset':_0xb70d('0xf'),'collate':_0xb70d('0x10')});};
\ No newline at end of file
+var _0x4c73=['closedAt','format','utf8mb4','lodash','api','moment','bluebird','path','../../config/environment','./chatInteraction.attributes','exports','define','ChatInteraction','changed','closed'];(function(_0x33399b,_0x1cd1cc){var _0x49acc9=function(_0x16ef40){while(--_0x16ef40){_0x33399b['push'](_0x33399b['shift']());}};_0x49acc9(++_0x1cd1cc);}(_0x4c73,0xa8));var _0x34c7=function(_0xf93db,_0x5b18ad){_0xf93db=_0xf93db-0x0;var _0x2d9680=_0x4c73[_0xf93db];return _0x2d9680;};'use strict';var _=require(_0x34c7('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x34c7('0x1'));var moment=require(_0x34c7('0x2'));var BPromise=require(_0x34c7('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x34c7('0x4'));var rimraf=require('rimraf');var config=require(_0x34c7('0x5'));var attributes=require(_0x34c7('0x6'));module[_0x34c7('0x7')]=function(_0x1df8fb,_0x479173){return _0x1df8fb[_0x34c7('0x8')](_0x34c7('0x9'),attributes,{'tableName':'chat_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x30d7f8,_0x542eb9,_0x52b36b){if(_0x30d7f8[_0x34c7('0xa')](_0x34c7('0xb'))){_0x30d7f8[_0x34c7('0xc')]=moment()[_0x34c7('0xd')]('YYYY-MM-DD\x20HH:mm:ss');}_0x52b36b(null,_0x30d7f8);}},'charset':_0x34c7('0xe'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fe1=['register','request','info','request\x20sent','debug','stringify','error','message','ChatInteraction,\x20%s,\x20%s','result','catch','UpdateChatInteraction','update','body','options','attributes','then','AddTagsToChatInteraction','find','addTags','ids','omit','spread','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter'];(function(_0x162805,_0x5649f3){var _0x46c331=function(_0x201b02){while(--_0x201b02){_0x162805['push'](_0x162805['shift']());}};_0x46c331(++_0x5649f3);}(_0x4fe1,0x19e));var _0x14fe=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0x4fe1[_0x13e741];return _0x3f8bb3;};'use strict';var _=require(_0x14fe('0x0'));var util=require(_0x14fe('0x1'));var moment=require(_0x14fe('0x2'));var BPromise=require(_0x14fe('0x3'));var rs=require(_0x14fe('0x4'));var fs=require('fs');var Redis=require(_0x14fe('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x14fe('0x6'));var logger=require(_0x14fe('0x7'))('rpc');var config=require(_0x14fe('0x8'));var jayson=require(_0x14fe('0x9'));var client=jayson[_0x14fe('0xa')]['http']({'port':0x232a});config[_0x14fe('0xb')]=_[_0x14fe('0xc')](config[_0x14fe('0xb')],{'host':_0x14fe('0xd'),'port':0x18eb});var socket=require(_0x14fe('0xe'))(new Redis(config[_0x14fe('0xb')]));require('./chatInteraction.socket')[_0x14fe('0xf')](socket);function respondWithRpcPromise(_0xd2ab25,_0x39a08d,_0x206087){return new BPromise(function(_0x37d6ba,_0x358832){return client[_0x14fe('0x10')](_0xd2ab25,_0x206087)['then'](function(_0x336eba){logger[_0x14fe('0x11')]('ChatInteraction,\x20%s,\x20%s',_0x39a08d,_0x14fe('0x12'));logger[_0x14fe('0x13')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x39a08d,_0x14fe('0x12'),JSON[_0x14fe('0x14')](_0x336eba));if(_0x336eba[_0x14fe('0x15')]){if(_0x336eba[_0x14fe('0x15')]['code']===0x1f4){logger[_0x14fe('0x15')]('ChatInteraction,\x20%s,\x20%s',_0x39a08d,_0x336eba[_0x14fe('0x15')][_0x14fe('0x16')]);return _0x358832(_0x336eba['error'][_0x14fe('0x16')]);}logger[_0x14fe('0x15')](_0x14fe('0x17'),_0x39a08d,_0x336eba['error'][_0x14fe('0x16')]);return _0x37d6ba(_0x336eba[_0x14fe('0x15')][_0x14fe('0x16')]);}else{logger[_0x14fe('0x11')](_0x14fe('0x17'),_0x39a08d,_0x14fe('0x12'));_0x37d6ba(_0x336eba[_0x14fe('0x18')]['message']);}})[_0x14fe('0x19')](function(_0x575e59){logger[_0x14fe('0x15')](_0x14fe('0x17'),_0x39a08d,_0x575e59);_0x358832(_0x575e59);});});}exports[_0x14fe('0x1a')]=function(_0x48d300){var _0x497c8e=this;return new Promise(function(_0x27356a,_0x416bf2){return db['ChatInteraction'][_0x14fe('0x1b')](_0x48d300[_0x14fe('0x1c')],{'raw':_0x48d300[_0x14fe('0x1d')]?_0x48d300['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x48d300[_0x14fe('0x1d')]?_0x48d300[_0x14fe('0x1d')]['where']||null:null,'attributes':_0x48d300[_0x14fe('0x1d')]?_0x48d300[_0x14fe('0x1d')][_0x14fe('0x1e')]||null:null,'limit':_0x48d300['options']?_0x48d300['options']['limit']||null:null})[_0x14fe('0x1f')](function(_0x527ba2){logger['info']('UpdateChatInteraction',_0x48d300);logger[_0x14fe('0x13')](_0x14fe('0x1a'),_0x48d300,JSON[_0x14fe('0x14')](_0x527ba2));_0x27356a(_0x527ba2);})[_0x14fe('0x19')](function(_0x21d490){logger[_0x14fe('0x15')](_0x14fe('0x1a'),_0x21d490[_0x14fe('0x16')],_0x48d300);_0x416bf2(_0x497c8e['error'](0x1f4,_0x21d490[_0x14fe('0x16')]));});});};exports[_0x14fe('0x20')]=function(_0xd1b2d6){return new Promise(function(_0x4facc7,_0x292e10){return db['ChatInteraction'][_0x14fe('0x21')]({'where':_0xd1b2d6['options']?_0xd1b2d6['options']['where']||null:null})[_0x14fe('0x1f')](function(_0x4de459){if(_0x4de459){return _0x4de459[_0x14fe('0x22')](_0xd1b2d6[_0x14fe('0x1c')][_0x14fe('0x23')],_[_0x14fe('0x24')](_0xd1b2d6[_0x14fe('0x1c')],[_0x14fe('0x23'),'id'])||{});}})[_0x14fe('0x25')](function(_0x3c5da0){logger[_0x14fe('0x11')]('AddTags',_0xd1b2d6);logger['debug'](_0x14fe('0x26'),_0xd1b2d6,JSON[_0x14fe('0x14')](_0x3c5da0));_0x4facc7(_0x3c5da0);})['catch'](function(_0x14e335){logger[_0x14fe('0x15')](_0x14fe('0x26'),_0x14e335['message'],_0xd1b2d6);_0x292e10(_this['error'](0x1f4,_0x14e335[_0x14fe('0x16')]));});});};
\ No newline at end of file
+var _0x5454=['jayson/promise','client','redis','localhost','socket.io-emitter','register','request','then','info','ChatInteraction,\x20%s,\x20%s','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','UpdateChatInteraction','update','body','options','raw','where','attributes','catch','AddTagsToChatInteraction','ChatInteraction','find','addTags','ids','omit','spread','AddTags','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x15d23a,_0x490567){var _0x2dedc9=function(_0x443ad5){while(--_0x443ad5){_0x15d23a['push'](_0x15d23a['shift']());}};_0x2dedc9(++_0x490567);}(_0x5454,0x160));var _0x4545=function(_0x24afda,_0x210b83){_0x24afda=_0x24afda-0x0;var _0x1d6256=_0x5454[_0x24afda];return _0x1d6256;};'use strict';var _=require(_0x4545('0x0'));var util=require(_0x4545('0x1'));var moment=require('moment');var BPromise=require(_0x4545('0x2'));var rs=require(_0x4545('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4545('0x4'))['db'];var utils=require(_0x4545('0x5'));var logger=require(_0x4545('0x6'))(_0x4545('0x7'));var config=require('../../config/environment');var jayson=require(_0x4545('0x8'));var client=jayson[_0x4545('0x9')]['http']({'port':0x232a});config[_0x4545('0xa')]=_['defaults'](config['redis'],{'host':_0x4545('0xb'),'port':0x18eb});var socket=require(_0x4545('0xc'))(new Redis(config[_0x4545('0xa')]));require('./chatInteraction.socket')[_0x4545('0xd')](socket);function respondWithRpcPromise(_0x2ffdf9,_0xaacc9e,_0x2e971e){return new BPromise(function(_0x32b7e4,_0xfb9f9a){return client[_0x4545('0xe')](_0x2ffdf9,_0x2e971e)[_0x4545('0xf')](function(_0x2d6f04){logger[_0x4545('0x10')](_0x4545('0x11'),_0xaacc9e,'request\x20sent');logger[_0x4545('0x12')](_0x4545('0x13'),_0xaacc9e,_0x4545('0x14'),JSON[_0x4545('0x15')](_0x2d6f04));if(_0x2d6f04['error']){if(_0x2d6f04[_0x4545('0x16')]['code']===0x1f4){logger['error'](_0x4545('0x11'),_0xaacc9e,_0x2d6f04[_0x4545('0x16')][_0x4545('0x17')]);return _0xfb9f9a(_0x2d6f04[_0x4545('0x16')]['message']);}logger[_0x4545('0x16')]('ChatInteraction,\x20%s,\x20%s',_0xaacc9e,_0x2d6f04[_0x4545('0x16')][_0x4545('0x17')]);return _0x32b7e4(_0x2d6f04['error'][_0x4545('0x17')]);}else{logger[_0x4545('0x10')](_0x4545('0x11'),_0xaacc9e,_0x4545('0x14'));_0x32b7e4(_0x2d6f04['result'][_0x4545('0x17')]);}})['catch'](function(_0x3f254e){logger[_0x4545('0x16')]('ChatInteraction,\x20%s,\x20%s',_0xaacc9e,_0x3f254e);_0xfb9f9a(_0x3f254e);});});}exports[_0x4545('0x18')]=function(_0x445ae5){var _0x5d9e65=this;return new Promise(function(_0x26b1f2,_0x4e1c33){return db['ChatInteraction'][_0x4545('0x19')](_0x445ae5[_0x4545('0x1a')],{'raw':_0x445ae5[_0x4545('0x1b')]?_0x445ae5[_0x4545('0x1b')][_0x4545('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x445ae5[_0x4545('0x1b')]?_0x445ae5['options'][_0x4545('0x1d')]||null:null,'attributes':_0x445ae5[_0x4545('0x1b')]?_0x445ae5[_0x4545('0x1b')][_0x4545('0x1e')]||null:null,'limit':_0x445ae5[_0x4545('0x1b')]?_0x445ae5[_0x4545('0x1b')]['limit']||null:null})[_0x4545('0xf')](function(_0x2c8eac){logger[_0x4545('0x10')](_0x4545('0x18'),_0x445ae5);logger[_0x4545('0x12')](_0x4545('0x18'),_0x445ae5,JSON[_0x4545('0x15')](_0x2c8eac));_0x26b1f2(_0x2c8eac);})[_0x4545('0x1f')](function(_0x58e2ab){logger[_0x4545('0x16')](_0x4545('0x18'),_0x58e2ab[_0x4545('0x17')],_0x445ae5);_0x4e1c33(_0x5d9e65[_0x4545('0x16')](0x1f4,_0x58e2ab[_0x4545('0x17')]));});});};exports[_0x4545('0x20')]=function(_0x690a84){return new Promise(function(_0x40e491,_0x3c17b3){return db[_0x4545('0x21')][_0x4545('0x22')]({'where':_0x690a84['options']?_0x690a84[_0x4545('0x1b')][_0x4545('0x1d')]||null:null})['then'](function(_0x2db4b9){if(_0x2db4b9){return _0x2db4b9[_0x4545('0x23')](_0x690a84[_0x4545('0x1a')][_0x4545('0x24')],_[_0x4545('0x25')](_0x690a84[_0x4545('0x1a')],[_0x4545('0x24'),'id'])||{});}})[_0x4545('0x26')](function(_0x3c317a){logger[_0x4545('0x10')]('AddTags',_0x690a84);logger[_0x4545('0x12')](_0x4545('0x27'),_0x690a84,JSON['stringify'](_0x3c317a));_0x40e491(_0x3c317a);})[_0x4545('0x1f')](function(_0x31b7ab){logger['error'](_0x4545('0x27'),_0x31b7ab[_0x4545('0x17')],_0x690a84);_0x3c17b3(_this[_0x4545('0x16')](0x1f4,_0x31b7ab[_0x4545('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3969=['./chatInteraction.events','save','emit','removeListener','register','length'];(function(_0x5c1435,_0x379418){var _0x5b18ad=function(_0x207e1f){while(--_0x207e1f){_0x5c1435['push'](_0x5c1435['shift']());}};_0x5b18ad(++_0x379418);}(_0x3969,0xa8));var _0x9396=function(_0x351edb,_0x490507){_0x351edb=_0x351edb-0x0;var _0x127603=_0x3969[_0x351edb];return _0x127603;};'use strict';var ChatInteractionEvents=require(_0x9396('0x0'));var events=[_0x9396('0x1'),'remove','update'];function createListener(_0x4fe6c3,_0x424cd9){return function(_0x5c402d){_0x424cd9[_0x9396('0x2')](_0x4fe6c3,_0x5c402d);};}function removeListener(_0x13ac16,_0x2ac8ec){return function(){ChatInteractionEvents[_0x9396('0x3')](_0x13ac16,_0x2ac8ec);};}exports[_0x9396('0x4')]=function(_0x6eae44){for(var _0x232c70=0x0,_0x321544=events[_0x9396('0x5')];_0x232c70<_0x321544;_0x232c70++){var _0x36ef09=events[_0x232c70];var _0x10c956=createListener('chatInteraction:'+_0x36ef09,_0x6eae44);ChatInteractionEvents['on'](_0x36ef09,_0x10c956);}};
\ No newline at end of file
+var _0x1268=['length','chatInteraction:','./chatInteraction.events','remove'];(function(_0x3ae8f4,_0x5d1025){var _0x207506=function(_0x5efbc5){while(--_0x5efbc5){_0x3ae8f4['push'](_0x3ae8f4['shift']());}};_0x207506(++_0x5d1025);}(_0x1268,0x1b6));var _0x8126=function(_0xe37b3f,_0xee7d81){_0xe37b3f=_0xe37b3f-0x0;var _0x5efbfd=_0x1268[_0xe37b3f];return _0x5efbfd;};'use strict';var ChatInteractionEvents=require(_0x8126('0x0'));var events=['save',_0x8126('0x1'),'update'];function createListener(_0x43b7a3,_0x251e59){return function(_0x118791){_0x251e59['emit'](_0x43b7a3,_0x118791);};}function removeListener(_0x265f15,_0x41b460){return function(){ChatInteractionEvents['removeListener'](_0x265f15,_0x41b460);};}exports['register']=function(_0x3277bf){for(var _0x13024f=0x0,_0x5c7dcc=events[_0x8126('0x2')];_0x13024f<_0x5c7dcc;_0x13024f++){var _0x4c9875=events[_0x13024f];var _0x3233ec=createListener(_0x8126('0x3')+_0x4c9875,_0x3277bf);ChatInteractionEvents['on'](_0x4c9875,_0x3233ec);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac65=['attachmentUpload','tracked','chat','chatinteraction:addtags','put','chatinteraction:update','/:id/abandon','abandon','delete','chatinteraction:destroy','destroy','/:id/tags','removeTags','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','/:id','isChatInteractionAuthorized','attachmentDownload','/:id/messages','getMessages','/:id/my_messages','/:id/download','download','post','create','diskStorage','join','root','server/files/attachments/','format','%s-%s','now','originalname','replace','/:id/attachment_upload','single','file'];(function(_0x6328e9,_0x318210){var _0x6d072f=function(_0x3b35bd){while(--_0x3b35bd){_0x6328e9['push'](_0x6328e9['shift']());}};_0x6d072f(++_0x318210);}(_0xac65,0x18e));var _0x5ac6=function(_0x552e6c,_0x171ac2){_0x552e6c=_0x552e6c-0x0;var _0x20520e=_0xac65[_0x552e6c];return _0x20520e;};'use strict';var multer=require('multer');var util=require(_0x5ac6('0x0'));var path=require(_0x5ac6('0x1'));var timeout=require(_0x5ac6('0x2'));var express=require('express');var router=express[_0x5ac6('0x3')]();var fs_extra=require(_0x5ac6('0x4'));var auth=require(_0x5ac6('0x5'));var interaction=require(_0x5ac6('0x6'));var config=require(_0x5ac6('0x7'));var controller=require('./chatInteraction.controller');router[_0x5ac6('0x8')]('/',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0xa')]);router[_0x5ac6('0x8')]('/describe',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0xb')]);router[_0x5ac6('0x8')](_0x5ac6('0xc'),auth[_0x5ac6('0xd')](),controller['show']);router[_0x5ac6('0x8')]('/:id/attachment_download',auth[_0x5ac6('0xd')](),controller[_0x5ac6('0xe')]);router[_0x5ac6('0x8')](_0x5ac6('0xf'),auth['isAuthenticated'](),controller[_0x5ac6('0x10')]);router[_0x5ac6('0x8')](_0x5ac6('0x11'),auth[_0x5ac6('0xd')](),controller['getMyMessages']);router['get'](_0x5ac6('0x12'),auth[_0x5ac6('0x9')](),controller[_0x5ac6('0x13')]);router[_0x5ac6('0x14')]('/',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0x15')]);router[_0x5ac6('0x14')]('/:id/vidaoo',auth[_0x5ac6('0x9')](),controller['createVidaooSession']);var upload=multer({'storage':multer[_0x5ac6('0x16')]({'destination':function(_0x2380ee,_0x1aa24e,_0x49a9c6){_0x49a9c6(null,path[_0x5ac6('0x17')](config[_0x5ac6('0x18')],_0x5ac6('0x19')));},'filename':function(_0x76620d,_0x510e6b,_0x41891c){_0x41891c(null,util[_0x5ac6('0x1a')](_0x5ac6('0x1b'),Date[_0x5ac6('0x1c')](),_0x510e6b[_0x5ac6('0x1d')][_0x5ac6('0x1e')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x5ac6('0x14')](_0x5ac6('0x1f'),upload[_0x5ac6('0x20')](_0x5ac6('0x21')),controller[_0x5ac6('0x22')]);router[_0x5ac6('0x14')](_0x5ac6('0xf'),auth[_0x5ac6('0xd')](),controller['addMessage']);router[_0x5ac6('0x14')]('/:id/tags',auth[_0x5ac6('0x9')](),interaction[_0x5ac6('0x23')](_0x5ac6('0x24'),_0x5ac6('0x25')),controller['addTags']);router[_0x5ac6('0x26')](_0x5ac6('0xc'),auth[_0x5ac6('0x9')](),interaction[_0x5ac6('0x23')](_0x5ac6('0x24'),_0x5ac6('0x27')),controller['update']);router[_0x5ac6('0x26')]('/:id/custom_update',controller['customUpdate']);router[_0x5ac6('0x26')](_0x5ac6('0x28'),auth[_0x5ac6('0xd')](),controller[_0x5ac6('0x29')]);router[_0x5ac6('0x26')]('/:id/close',controller['close']);router[_0x5ac6('0x2a')](_0x5ac6('0xc'),auth[_0x5ac6('0x9')](),interaction[_0x5ac6('0x23')]('chat',_0x5ac6('0x2b')),controller[_0x5ac6('0x2c')]);router[_0x5ac6('0x2a')](_0x5ac6('0x2d'),auth['isAuthenticated'](),controller[_0x5ac6('0x2e')]);module[_0x5ac6('0x2f')]=router;
\ No newline at end of file
+var _0x9a02=['attachmentDownload','/:id/messages','getMessages','/:id/my_messages','getMyMessages','/:id/download','download','post','/:id/vidaoo','createVidaooSession','diskStorage','join','root','format','%s-%s','now','originalname','/:id/attachment_upload','single','file','attachmentUpload','addMessage','chat','chatinteraction:addtags','put','tracked','chatinteraction:update','update','/:id/custom_update','customUpdate','/:id/abandon','abandon','/:id/close','close','delete','chatinteraction:destroy','destroy','/:id/tags','removeTags','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','isChatInteractionAuthorized','show','/:id/attachment_download'];(function(_0x1bb317,_0x33833e){var _0x1d9fb3=function(_0x2e9d25){while(--_0x2e9d25){_0x1bb317['push'](_0x1bb317['shift']());}};_0x1d9fb3(++_0x33833e);}(_0x9a02,0xdc));var _0x29a0=function(_0x15f11e,_0x35caa3){_0x15f11e=_0x15f11e-0x0;var _0x5eb0e6=_0x9a02[_0x15f11e];return _0x5eb0e6;};'use strict';var multer=require(_0x29a0('0x0'));var util=require(_0x29a0('0x1'));var path=require(_0x29a0('0x2'));var timeout=require(_0x29a0('0x3'));var express=require(_0x29a0('0x4'));var router=express[_0x29a0('0x5')]();var fs_extra=require(_0x29a0('0x6'));var auth=require(_0x29a0('0x7'));var interaction=require(_0x29a0('0x8'));var config=require(_0x29a0('0x9'));var controller=require(_0x29a0('0xa'));router[_0x29a0('0xb')]('/',auth[_0x29a0('0xc')](),controller[_0x29a0('0xd')]);router[_0x29a0('0xb')](_0x29a0('0xe'),auth['isAuthenticated'](),controller[_0x29a0('0xf')]);router[_0x29a0('0xb')](_0x29a0('0x10'),auth[_0x29a0('0x11')](),controller[_0x29a0('0x12')]);router[_0x29a0('0xb')](_0x29a0('0x13'),auth[_0x29a0('0x11')](),controller[_0x29a0('0x14')]);router[_0x29a0('0xb')](_0x29a0('0x15'),auth['isAuthenticated'](),controller[_0x29a0('0x16')]);router[_0x29a0('0xb')](_0x29a0('0x17'),auth[_0x29a0('0x11')](),controller[_0x29a0('0x18')]);router['get'](_0x29a0('0x19'),auth[_0x29a0('0xc')](),controller[_0x29a0('0x1a')]);router[_0x29a0('0x1b')]('/',auth[_0x29a0('0xc')](),controller['create']);router[_0x29a0('0x1b')](_0x29a0('0x1c'),auth[_0x29a0('0xc')](),controller[_0x29a0('0x1d')]);var upload=multer({'storage':multer[_0x29a0('0x1e')]({'destination':function(_0x4b51ee,_0x427e20,_0x3b6d23){_0x3b6d23(null,path[_0x29a0('0x1f')](config[_0x29a0('0x20')],'server/files/attachments/'));},'filename':function(_0x449ade,_0x2ccd93,_0x4d58d6){_0x4d58d6(null,util[_0x29a0('0x21')](_0x29a0('0x22'),Date[_0x29a0('0x23')](),_0x2ccd93[_0x29a0('0x24')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x29a0('0x1b')](_0x29a0('0x25'),upload[_0x29a0('0x26')](_0x29a0('0x27')),controller[_0x29a0('0x28')]);router[_0x29a0('0x1b')](_0x29a0('0x15'),auth['isChatInteractionAuthorized'](),controller[_0x29a0('0x29')]);router[_0x29a0('0x1b')]('/:id/tags',auth[_0x29a0('0xc')](),interaction['tracked'](_0x29a0('0x2a'),_0x29a0('0x2b')),controller['addTags']);router[_0x29a0('0x2c')](_0x29a0('0x10'),auth['isAuthenticated'](),interaction[_0x29a0('0x2d')](_0x29a0('0x2a'),_0x29a0('0x2e')),controller[_0x29a0('0x2f')]);router[_0x29a0('0x2c')](_0x29a0('0x30'),controller[_0x29a0('0x31')]);router['put'](_0x29a0('0x32'),auth[_0x29a0('0x11')](),controller[_0x29a0('0x33')]);router[_0x29a0('0x2c')](_0x29a0('0x34'),controller[_0x29a0('0x35')]);router[_0x29a0('0x36')](_0x29a0('0x10'),auth[_0x29a0('0xc')](),interaction['tracked']('chat',_0x29a0('0x37')),controller[_0x29a0('0x38')]);router[_0x29a0('0x36')](_0x29a0('0x39'),auth[_0x29a0('0xc')](),controller[_0x29a0('0x3a')]);module[_0x29a0('0x3b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde92=['sequelize','exports','TEXT','medium','BOOLEAN'];(function(_0x4bb4d9,_0x241891){var _0x59e4d4=function(_0x3cedb9){while(--_0x3cedb9){_0x4bb4d9['push'](_0x4bb4d9['shift']());}};_0x59e4d4(++_0x241891);}(_0xde92,0x78));var _0x2de9=function(_0x4a6979,_0x5f3d1a){_0x4a6979=_0x4a6979-0x0;var _0x226f93=_0xde92[_0x4a6979];return _0x226f93;};'use strict';var Sequelize=require(_0x2de9('0x0'));module[_0x2de9('0x1')]={'body':{'type':Sequelize[_0x2de9('0x2')](_0x2de9('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x2de9('0x4')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0x50a3=['sequelize','exports','TEXT','medium','BOOLEAN','INTEGER'];(function(_0x4c70c4,_0x963969){var _0x437865=function(_0x54e323){while(--_0x54e323){_0x4c70c4['push'](_0x4c70c4['shift']());}};_0x437865(++_0x963969);}(_0x50a3,0x186));var _0x350a=function(_0x4017b0,_0x4347db){_0x4017b0=_0x4017b0-0x0;var _0x5ed4f7=_0x50a3[_0x4017b0];return _0x5ed4f7;};'use strict';var Sequelize=require(_0x350a('0x0'));module[_0x350a('0x1')]={'body':{'type':Sequelize[_0x350a('0x2')](_0x350a('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x350a('0x4')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0x350a('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bf9=['push','read','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','redis','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filters','filter','where','type','VIRTUAL','merge','includeAll','findAll','show','params','include','options','find','catch','create','body','describe','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','agent','admin','user','fullname','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId'];(function(_0x4e902c,_0x259800){var _0x42dc51=function(_0x394027){while(--_0x394027){_0x4e902c['push'](_0x4e902c['shift']());}};_0x42dc51(++_0x259800);}(_0x0bf9,0x1cb));var _0x90bf=function(_0x3eb9d9,_0x1c5484){_0x3eb9d9=_0x3eb9d9-0x0;var _0x2e83d1=_0x0bf9[_0x3eb9d9];return _0x2e83d1;};'use strict';var emlformat=require(_0x90bf('0x0'));var rimraf=require(_0x90bf('0x1'));var zipdir=require(_0x90bf('0x2'));var jsonpatch=require(_0x90bf('0x3'));var rp=require(_0x90bf('0x4'));var moment=require(_0x90bf('0x5'));var BPromise=require(_0x90bf('0x6'));var Mustache=require(_0x90bf('0x7'));var util=require(_0x90bf('0x8'));var path=require(_0x90bf('0x9'));var sox=require(_0x90bf('0xa'));var csv=require(_0x90bf('0xb'));var ejs=require(_0x90bf('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x90bf('0xd'));var squel=require(_0x90bf('0xe'));var crypto=require(_0x90bf('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x90bf('0x10'));var toCsv=require(_0x90bf('0xb'));var querystring=require(_0x90bf('0x11'));var Papa=require(_0x90bf('0x12'));var Redis=require(_0x90bf('0x13'));var authService=require(_0x90bf('0x14'));var qs=require(_0x90bf('0x15'));var as=require(_0x90bf('0x16'));var hardwareService=require(_0x90bf('0x17'));var logger=require('../../config/logger')(_0x90bf('0x18'));var utils=require(_0x90bf('0x19'));var config=require(_0x90bf('0x1a'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x90bf('0x1b')]=_['defaults'](config[_0x90bf('0x1b')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x90bf('0x1b')]));require('./chatInternalMessage.socket')[_0x90bf('0x1c')](socket);function respondWithStatusCode(_0xdd1a2f,_0x179777){_0x179777=_0x179777||0xcc;return function(_0xc42ce1){if(_0xc42ce1){return _0xdd1a2f[_0x90bf('0x1d')](_0x179777);}return _0xdd1a2f[_0x90bf('0x1e')](_0x179777)['end']();};}function respondWithResult(_0x2abd1b,_0x565f72){_0x565f72=_0x565f72||0xc8;return function(_0x4403e0){if(_0x4403e0){return _0x2abd1b[_0x90bf('0x1e')](_0x565f72)[_0x90bf('0x1f')](_0x4403e0);}};}function respondWithFilteredResult(_0x497cdd,_0x158808){return function(_0x5e3aee){if(_0x5e3aee){var _0x519b25=typeof _0x158808[_0x90bf('0x20')]===_0x90bf('0x21')&&typeof _0x158808[_0x90bf('0x22')]===_0x90bf('0x21');var _0x414915=_0x5e3aee[_0x90bf('0x23')];var _0x328565=_0x519b25?0x0:_0x158808[_0x90bf('0x20')];var _0x51e09b=_0x519b25?_0x5e3aee['count']:_0x158808[_0x90bf('0x20')]+_0x158808[_0x90bf('0x22')];var _0x458d3f;if(_0x51e09b>=_0x414915){_0x51e09b=_0x414915;_0x458d3f=0xc8;}else{_0x458d3f=0xce;}_0x497cdd[_0x90bf('0x1e')](_0x458d3f);return _0x497cdd[_0x90bf('0x24')](_0x90bf('0x25'),_0x328565+'-'+_0x51e09b+'/'+_0x414915)[_0x90bf('0x1f')](_0x5e3aee);}return null;};}function patchUpdates(_0x30aa61){return function(_0x577545){try{jsonpatch[_0x90bf('0x26')](_0x577545,_0x30aa61,!![]);}catch(_0x4a39d1){return BPromise[_0x90bf('0x27')](_0x4a39d1);}return _0x577545[_0x90bf('0x28')]();};}function saveUpdates(_0xc39623,_0x39446d){return function(_0x22e23d){if(_0x22e23d){return _0x22e23d[_0x90bf('0x29')](_0xc39623)[_0x90bf('0x2a')](function(_0x2e63b5){return _0x2e63b5;});}return null;};}function removeEntity(_0x547f64,_0x2864f8){return function(_0x26e585){if(_0x26e585){return _0x26e585[_0x90bf('0x2b')]()[_0x90bf('0x2a')](function(){_0x547f64[_0x90bf('0x1e')](0xcc)[_0x90bf('0x2c')]();});}};}function handleEntityNotFound(_0x21623e,_0x2d9d6d){return function(_0x4430b8){if(!_0x4430b8){_0x21623e[_0x90bf('0x1d')](0x194);}return _0x4430b8;};}function handleError(_0x3136ff,_0x343853){_0x343853=_0x343853||0x1f4;return function(_0x56ac64){logger[_0x90bf('0x2d')](_0x56ac64[_0x90bf('0x2e')]);if(_0x56ac64['name']){delete _0x56ac64[_0x90bf('0x2f')];}_0x3136ff['status'](_0x343853)[_0x90bf('0x30')](_0x56ac64);};}exports[_0x90bf('0x31')]=function(_0x2073d0,_0x5e1a6f){var _0x12d90f={},_0x2e0ed1={},_0xe5eba6={'count':0x0,'rows':[]};var _0x2c0e44=_[_0x90bf('0x32')](db[_0x90bf('0x33')][_0x90bf('0x34')],function(_0x571fce){return{'name':_0x571fce['fieldName'],'type':_0x571fce['type']['key']};});_0x2e0ed1[_0x90bf('0x35')]=_[_0x90bf('0x32')](_0x2c0e44,_0x90bf('0x2f'));_0x2e0ed1['query']=_[_0x90bf('0x36')](_0x2073d0[_0x90bf('0x37')]);_0x2e0ed1['filters']=_[_0x90bf('0x38')](_0x2e0ed1[_0x90bf('0x35')],_0x2e0ed1[_0x90bf('0x37')]);_0x12d90f['attributes']=_[_0x90bf('0x38')](_0x2e0ed1['model'],qs[_0x90bf('0x39')](_0x2073d0[_0x90bf('0x37')][_0x90bf('0x39')]));_0x12d90f[_0x90bf('0x3a')]=_0x12d90f[_0x90bf('0x3a')][_0x90bf('0x3b')]?_0x12d90f[_0x90bf('0x3a')]:_0x2e0ed1['model'];if(!_0x2073d0['query'][_0x90bf('0x3c')](_0x90bf('0x3d'))){_0x12d90f[_0x90bf('0x22')]=qs[_0x90bf('0x22')](_0x2073d0[_0x90bf('0x37')][_0x90bf('0x22')]);_0x12d90f[_0x90bf('0x20')]=qs[_0x90bf('0x20')](_0x2073d0[_0x90bf('0x37')][_0x90bf('0x20')]);}_0x12d90f[_0x90bf('0x3e')]=qs['sort'](_0x2073d0['query'][_0x90bf('0x3f')]);_0x12d90f['where']=qs['filters'](_[_0x90bf('0x40')](_0x2073d0[_0x90bf('0x37')],_0x2e0ed1[_0x90bf('0x41')]),_0x2c0e44);if(_0x2073d0[_0x90bf('0x37')][_0x90bf('0x42')]){_0x12d90f['where']=_['merge'](_0x12d90f[_0x90bf('0x43')],{'$or':_[_0x90bf('0x32')](_0x2c0e44,function(_0x2fc344){if(_0x2fc344[_0x90bf('0x44')]!==_0x90bf('0x45')){var _0xeedd7f={};_0xeedd7f[_0x2fc344[_0x90bf('0x2f')]]={'$like':'%'+_0x2073d0['query'][_0x90bf('0x42')]+'%'};return _0xeedd7f;}})});}_0x12d90f=_[_0x90bf('0x46')]({},_0x12d90f,_0x2073d0['options']);var _0xd66a22={'where':_0x12d90f['where']};return db[_0x90bf('0x33')][_0x90bf('0x23')](_0xd66a22)[_0x90bf('0x2a')](function(_0x537cad){_0xe5eba6[_0x90bf('0x23')]=_0x537cad;if(_0x2073d0[_0x90bf('0x37')][_0x90bf('0x47')]){_0x12d90f['include']=[{'all':!![]}];}return db[_0x90bf('0x33')][_0x90bf('0x48')](_0x12d90f);})[_0x90bf('0x2a')](function(_0x1f9ebb){_0xe5eba6['rows']=_0x1f9ebb;return _0xe5eba6;})['then'](respondWithFilteredResult(_0x5e1a6f,_0x12d90f))['catch'](handleError(_0x5e1a6f,null));};exports[_0x90bf('0x49')]=function(_0x41091d,_0xc146eb){var _0x3c5922={'raw':!![],'where':{'id':_0x41091d[_0x90bf('0x4a')]['id']}},_0xd92b52={};_0xd92b52[_0x90bf('0x35')]=_[_0x90bf('0x36')](db[_0x90bf('0x33')][_0x90bf('0x34')]);_0xd92b52[_0x90bf('0x37')]=_['keys'](_0x41091d[_0x90bf('0x37')]);_0xd92b52[_0x90bf('0x41')]=_[_0x90bf('0x38')](_0xd92b52[_0x90bf('0x35')],_0xd92b52[_0x90bf('0x37')]);_0x3c5922[_0x90bf('0x3a')]=_['intersection'](_0xd92b52[_0x90bf('0x35')],qs[_0x90bf('0x39')](_0x41091d[_0x90bf('0x37')][_0x90bf('0x39')]));_0x3c5922[_0x90bf('0x3a')]=_0x3c5922[_0x90bf('0x3a')][_0x90bf('0x3b')]?_0x3c5922[_0x90bf('0x3a')]:_0xd92b52['model'];if(_0x41091d['query'][_0x90bf('0x47')]){_0x3c5922[_0x90bf('0x4b')]=[{'all':!![]}];}_0x3c5922=_[_0x90bf('0x46')]({},_0x3c5922,_0x41091d[_0x90bf('0x4c')]);return db[_0x90bf('0x33')][_0x90bf('0x4d')](_0x3c5922)['then'](handleEntityNotFound(_0xc146eb,null))[_0x90bf('0x2a')](respondWithResult(_0xc146eb,null))[_0x90bf('0x4e')](handleError(_0xc146eb,null));};exports[_0x90bf('0x4f')]=function(_0x507785,_0x3730a5){return db['ChatInternalMessage'][_0x90bf('0x4f')](_0x507785[_0x90bf('0x50')],{})[_0x90bf('0x2a')](respondWithResult(_0x3730a5,0xc9))[_0x90bf('0x4e')](handleError(_0x3730a5,null));};exports[_0x90bf('0x29')]=function(_0x208d14,_0x3b86ee){if(_0x208d14[_0x90bf('0x50')]['id']){delete _0x208d14[_0x90bf('0x50')]['id'];}return db[_0x90bf('0x33')][_0x90bf('0x4d')]({'where':{'id':_0x208d14[_0x90bf('0x4a')]['id']}})[_0x90bf('0x2a')](handleEntityNotFound(_0x3b86ee,null))[_0x90bf('0x2a')](saveUpdates(_0x208d14['body'],null))[_0x90bf('0x2a')](respondWithResult(_0x3b86ee,null))[_0x90bf('0x4e')](handleError(_0x3b86ee,null));};exports[_0x90bf('0x2b')]=function(_0x21a34d,_0x355f98){return db[_0x90bf('0x33')][_0x90bf('0x4d')]({'where':{'id':_0x21a34d[_0x90bf('0x4a')]['id']}})['then'](handleEntityNotFound(_0x355f98,null))[_0x90bf('0x2a')](removeEntity(_0x355f98,null))[_0x90bf('0x4e')](handleError(_0x355f98,null));};exports[_0x90bf('0x51')]=function(_0x760adc,_0x392bdf){return db[_0x90bf('0x33')]['describe']()[_0x90bf('0x2a')](respondWithResult(_0x392bdf,null))['catch'](handleError(_0x392bdf,null));};function wrapUser(_0x32e31b){return function(_0x80a957){var _0x545032=_0x32e31b['get']({'plain':!![]});_0x545032[_0x90bf('0x52')]=[];if(_0x80a957){_0x545032[_0x90bf('0x53')]=_0x80a957[_0x90bf('0x54')];_0x545032[_0x90bf('0x55')]=_0x80a957;}else{_0x545032[_0x90bf('0x53')]=moment(0x0)[_0x90bf('0x56')](_0x90bf('0x57'));_0x545032[_0x90bf('0x55')]={};}return _0x545032;};}exports[_0x90bf('0x58')]=function(_0x37f292,_0x4f7689,_0xe47e20){var _0x23fb5f=[];return db['User']['findAll']({'where':{'role':[_0x90bf('0x59'),_0x90bf('0x5a'),_0x90bf('0x5b')]},'attributes':['id',_0x90bf('0x5c'),_0x90bf('0x2f'),'role',_0x90bf('0x5d'),_0x90bf('0x5e'),_0x90bf('0x5f'),_0x90bf('0x60'),'allowmessenger',_0x90bf('0x61')],'order':qs[_0x90bf('0x3f')](_0x90bf('0x62')),'include':[{'model':db[_0x90bf('0x63')],'as':_0x90bf('0x64'),'attributes':['id',_0x90bf('0x2f'),_0x90bf('0x44')],'through':{'attributes':[]}}]})[_0x90bf('0x2a')](function(_0x13128c){if(_0x13128c){var _0x2aa9e8=_0x37f292[_0x90bf('0x5b')][_0x90bf('0x65')]({'plain':!![]});if(!_0x2aa9e8)throw new Error(_0x90bf('0x66'));if(_0x2aa9e8[_0x90bf('0x67')]===_0x90bf('0x5b')){return db[_0x90bf('0x68')][_0x90bf('0x4d')]({'where':{'name':_0x90bf('0x69'),'userProfileId':_0x2aa9e8[_0x90bf('0x6a')]},'raw':!![]})['then'](function(_0x49338f){if(_0x49338f){if(_0x49338f[_0x90bf('0x6b')]===0x0){return db[_0x90bf('0x6c')][_0x90bf('0x48')]({'where':{'sectionId':_0x49338f['id']},'raw':!![]})['then'](function(_0x26baeb){var _0x58e7f6=[];if(_[_0x90bf('0x6d')](_0x26baeb)){_0x58e7f6=_[_0x90bf('0x42')](_0x13128c,function(_0x3b7f4e){if(_0x3b7f4e[_0x90bf('0x67')]!=='agent'){return _0x3b7f4e;}});return _0x58e7f6;}else{for(var _0x5b0be0=0x0;_0x5b0be0<_0x13128c['length'];_0x5b0be0++){var _0x2d8f28=_0x13128c[_0x5b0be0];if(_0x2d8f28['role']===_0x90bf('0x59')){var _0x22142b=_[_0x90bf('0x4d')](_0x26baeb,function(_0xcf1439){return _0xcf1439[_0x90bf('0x6e')]===_0x2d8f28['id'];});if(_0x22142b)_0x58e7f6[_0x90bf('0x6f')](_0x2d8f28);}else{_0x58e7f6[_0x90bf('0x6f')](_0x2d8f28);}}return _0x58e7f6;}});}else{return _0x13128c;}}else{var _0x1c3195=_[_0x90bf('0x42')](_0x13128c,function(_0x18cb92){if(_0x18cb92[_0x90bf('0x67')]!==_0x90bf('0x59')){return _0x18cb92;}});return _0x1c3195;}});}else{return _0x13128c;}}})['then'](function(_0x2f5cd6){var _0x4a2339=[];if(_0x2f5cd6){_0x23fb5f=_0x2f5cd6;for(var _0x306974=0x0;_0x306974<_0x2f5cd6[_0x90bf('0x3b')];_0x306974+=0x1){_0x23fb5f[_0x306974][_0x90bf('0x52')]=[];_0x4a2339[_0x90bf('0x6f')](db[_0x90bf('0x33')][_0x90bf('0x4d')]({'where':{'FromId':[_0x37f292[_0x90bf('0x5b')]['id'],_0x2f5cd6[_0x306974]['id']],'ToId':[_0x37f292['user']['id'],_0x2f5cd6[_0x306974]['id']],'ChatGroupId':null},'attributes':['id',_0x90bf('0x54'),'FromId','ToId',_0x90bf('0x70'),_0x90bf('0x50')],'order':qs[_0x90bf('0x3f')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x90bf('0x2a')](wrapUser(_0x2f5cd6[_0x306974])));}return BPromise[_0x90bf('0x71')](_0x4a2339);}return[];})[_0x90bf('0x2a')](function(_0x58d315){return{'rows':_0x58d315,'count':_0x58d315[_0x90bf('0x3b')]};})[_0x90bf('0x2a')](respondWithResult(_0x4f7689,null))[_0x90bf('0x4e')](handleError(_0x4f7689,null));};
\ No newline at end of file
+var _0x7e6f=['request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../mysqldb','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','sendStatus','status','end','json','undefined','offset','count','limit','set','Content-Range','reject','save','destroy','then','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','sort','where','filters','pick','type','filter','merge','includeAll','findAll','catch','show','params','include','options','find','create','update','body','get','createdAt','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','User','agent','admin','user','fullname','role','userpic','online','lastLoginAt','showWebBar','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','messages','FromId','ToId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x17a3ad,_0x451db7){var _0x530be1=function(_0x687c48){while(--_0x687c48){_0x17a3ad['push'](_0x17a3ad['shift']());}};_0x530be1(++_0x451db7);}(_0x7e6f,0x6c));var _0xf7e6=function(_0x26082d,_0x2a3c96){_0x26082d=_0x26082d-0x0;var _0x8de8e2=_0x7e6f[_0x26082d];return _0x8de8e2;};'use strict';var emlformat=require(_0xf7e6('0x0'));var rimraf=require(_0xf7e6('0x1'));var zipdir=require(_0xf7e6('0x2'));var jsonpatch=require(_0xf7e6('0x3'));var rp=require(_0xf7e6('0x4'));var moment=require(_0xf7e6('0x5'));var BPromise=require(_0xf7e6('0x6'));var Mustache=require(_0xf7e6('0x7'));var util=require(_0xf7e6('0x8'));var path=require(_0xf7e6('0x9'));var sox=require(_0xf7e6('0xa'));var csv=require(_0xf7e6('0xb'));var ejs=require(_0xf7e6('0xc'));var fs=require('fs');var fs_extra=require(_0xf7e6('0xd'));var _=require(_0xf7e6('0xe'));var squel=require(_0xf7e6('0xf'));var crypto=require(_0xf7e6('0x10'));var jsforce=require(_0xf7e6('0x11'));var deskjs=require(_0xf7e6('0x12'));var toCsv=require('to-csv');var querystring=require(_0xf7e6('0x13'));var Papa=require('papaparse');var Redis=require(_0xf7e6('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xf7e6('0x15'));var as=require(_0xf7e6('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf7e6('0x17'))('api');var utils=require(_0xf7e6('0x18'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xf7e6('0x19'))['db'];config['redis']=_['defaults'](config[_0xf7e6('0x1a')],{'host':_0xf7e6('0x1b'),'port':0x18eb});var socket=require(_0xf7e6('0x1c'))(new Redis(config['redis']));require(_0xf7e6('0x1d'))['register'](socket);function respondWithStatusCode(_0x544792,_0x3f17aa){_0x3f17aa=_0x3f17aa||0xcc;return function(_0x36978f){if(_0x36978f){return _0x544792[_0xf7e6('0x1e')](_0x3f17aa);}return _0x544792[_0xf7e6('0x1f')](_0x3f17aa)[_0xf7e6('0x20')]();};}function respondWithResult(_0x3acf3a,_0x36cf88){_0x36cf88=_0x36cf88||0xc8;return function(_0x3d97db){if(_0x3d97db){return _0x3acf3a[_0xf7e6('0x1f')](_0x36cf88)[_0xf7e6('0x21')](_0x3d97db);}};}function respondWithFilteredResult(_0x17ac98,_0x56950f){return function(_0x28beed){if(_0x28beed){var _0x1ba2ae=typeof _0x56950f['offset']==='undefined'&&typeof _0x56950f['limit']===_0xf7e6('0x22');var _0x5a4e4c=_0x28beed['count'];var _0x28f0f0=_0x1ba2ae?0x0:_0x56950f[_0xf7e6('0x23')];var _0x10f809=_0x1ba2ae?_0x28beed[_0xf7e6('0x24')]:_0x56950f[_0xf7e6('0x23')]+_0x56950f[_0xf7e6('0x25')];var _0x27870b;if(_0x10f809>=_0x5a4e4c){_0x10f809=_0x5a4e4c;_0x27870b=0xc8;}else{_0x27870b=0xce;}_0x17ac98[_0xf7e6('0x1f')](_0x27870b);return _0x17ac98[_0xf7e6('0x26')](_0xf7e6('0x27'),_0x28f0f0+'-'+_0x10f809+'/'+_0x5a4e4c)[_0xf7e6('0x21')](_0x28beed);}return null;};}function patchUpdates(_0x544d0d){return function(_0x588c29){try{jsonpatch['apply'](_0x588c29,_0x544d0d,!![]);}catch(_0x4700be){return BPromise[_0xf7e6('0x28')](_0x4700be);}return _0x588c29[_0xf7e6('0x29')]();};}function saveUpdates(_0x460180,_0x5a450e){return function(_0x219b32){if(_0x219b32){return _0x219b32['update'](_0x460180)['then'](function(_0x2a21d1){return _0x2a21d1;});}return null;};}function removeEntity(_0x4cd11f,_0x494797){return function(_0x24436b){if(_0x24436b){return _0x24436b[_0xf7e6('0x2a')]()[_0xf7e6('0x2b')](function(){_0x4cd11f[_0xf7e6('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x461cdc,_0x1a2be0){return function(_0x64973c){if(!_0x64973c){_0x461cdc[_0xf7e6('0x1e')](0x194);}return _0x64973c;};}function handleError(_0x46218a,_0xf3afaa){_0xf3afaa=_0xf3afaa||0x1f4;return function(_0x160407){logger[_0xf7e6('0x2c')](_0x160407[_0xf7e6('0x2d')]);if(_0x160407[_0xf7e6('0x2e')]){delete _0x160407[_0xf7e6('0x2e')];}_0x46218a['status'](_0xf3afaa)[_0xf7e6('0x2f')](_0x160407);};}exports[_0xf7e6('0x30')]=function(_0x39c9a2,_0x59a268){var _0x2d3227={},_0x42baa6={},_0x3a5436={'count':0x0,'rows':[]};var _0x214600=_[_0xf7e6('0x31')](db[_0xf7e6('0x32')][_0xf7e6('0x33')],function(_0x57e073){return{'name':_0x57e073[_0xf7e6('0x34')],'type':_0x57e073['type'][_0xf7e6('0x35')]};});_0x42baa6[_0xf7e6('0x36')]=_[_0xf7e6('0x31')](_0x214600,_0xf7e6('0x2e'));_0x42baa6[_0xf7e6('0x37')]=_['keys'](_0x39c9a2['query']);_0x42baa6['filters']=_['intersection'](_0x42baa6[_0xf7e6('0x36')],_0x42baa6[_0xf7e6('0x37')]);_0x2d3227['attributes']=_[_0xf7e6('0x38')](_0x42baa6[_0xf7e6('0x36')],qs[_0xf7e6('0x39')](_0x39c9a2[_0xf7e6('0x37')]['fields']));_0x2d3227[_0xf7e6('0x3a')]=_0x2d3227[_0xf7e6('0x3a')][_0xf7e6('0x3b')]?_0x2d3227[_0xf7e6('0x3a')]:_0x42baa6[_0xf7e6('0x36')];if(!_0x39c9a2['query'][_0xf7e6('0x3c')]('nolimit')){_0x2d3227['limit']=qs[_0xf7e6('0x25')](_0x39c9a2[_0xf7e6('0x37')][_0xf7e6('0x25')]);_0x2d3227[_0xf7e6('0x23')]=qs[_0xf7e6('0x23')](_0x39c9a2['query'][_0xf7e6('0x23')]);}_0x2d3227['order']=qs[_0xf7e6('0x3d')](_0x39c9a2[_0xf7e6('0x37')]['sort']);_0x2d3227[_0xf7e6('0x3e')]=qs[_0xf7e6('0x3f')](_[_0xf7e6('0x40')](_0x39c9a2[_0xf7e6('0x37')],_0x42baa6['filters']),_0x214600);if(_0x39c9a2[_0xf7e6('0x37')]['filter']){_0x2d3227['where']=_['merge'](_0x2d3227[_0xf7e6('0x3e')],{'$or':_[_0xf7e6('0x31')](_0x214600,function(_0x18fea9){if(_0x18fea9[_0xf7e6('0x41')]!=='VIRTUAL'){var _0x5b42e6={};_0x5b42e6[_0x18fea9[_0xf7e6('0x2e')]]={'$like':'%'+_0x39c9a2[_0xf7e6('0x37')][_0xf7e6('0x42')]+'%'};return _0x5b42e6;}})});}_0x2d3227=_[_0xf7e6('0x43')]({},_0x2d3227,_0x39c9a2['options']);var _0x3a858a={'where':_0x2d3227[_0xf7e6('0x3e')]};return db[_0xf7e6('0x32')][_0xf7e6('0x24')](_0x3a858a)[_0xf7e6('0x2b')](function(_0x1e7a66){_0x3a5436[_0xf7e6('0x24')]=_0x1e7a66;if(_0x39c9a2[_0xf7e6('0x37')][_0xf7e6('0x44')]){_0x2d3227['include']=[{'all':!![]}];}return db[_0xf7e6('0x32')][_0xf7e6('0x45')](_0x2d3227);})['then'](function(_0x4fa862){_0x3a5436['rows']=_0x4fa862;return _0x3a5436;})[_0xf7e6('0x2b')](respondWithFilteredResult(_0x59a268,_0x2d3227))[_0xf7e6('0x46')](handleError(_0x59a268,null));};exports[_0xf7e6('0x47')]=function(_0x2527e6,_0x161b46){var _0x1f4a4d={'raw':!![],'where':{'id':_0x2527e6[_0xf7e6('0x48')]['id']}},_0x47da12={};_0x47da12[_0xf7e6('0x36')]=_['keys'](db[_0xf7e6('0x32')][_0xf7e6('0x33')]);_0x47da12[_0xf7e6('0x37')]=_['keys'](_0x2527e6['query']);_0x47da12[_0xf7e6('0x3f')]=_[_0xf7e6('0x38')](_0x47da12['model'],_0x47da12['query']);_0x1f4a4d[_0xf7e6('0x3a')]=_['intersection'](_0x47da12[_0xf7e6('0x36')],qs[_0xf7e6('0x39')](_0x2527e6[_0xf7e6('0x37')][_0xf7e6('0x39')]));_0x1f4a4d[_0xf7e6('0x3a')]=_0x1f4a4d[_0xf7e6('0x3a')][_0xf7e6('0x3b')]?_0x1f4a4d[_0xf7e6('0x3a')]:_0x47da12[_0xf7e6('0x36')];if(_0x2527e6[_0xf7e6('0x37')][_0xf7e6('0x44')]){_0x1f4a4d[_0xf7e6('0x49')]=[{'all':!![]}];}_0x1f4a4d=_[_0xf7e6('0x43')]({},_0x1f4a4d,_0x2527e6[_0xf7e6('0x4a')]);return db[_0xf7e6('0x32')][_0xf7e6('0x4b')](_0x1f4a4d)[_0xf7e6('0x2b')](handleEntityNotFound(_0x161b46,null))[_0xf7e6('0x2b')](respondWithResult(_0x161b46,null))['catch'](handleError(_0x161b46,null));};exports[_0xf7e6('0x4c')]=function(_0x37bcb5,_0xa650a6){return db['ChatInternalMessage']['create'](_0x37bcb5['body'],{})[_0xf7e6('0x2b')](respondWithResult(_0xa650a6,0xc9))[_0xf7e6('0x46')](handleError(_0xa650a6,null));};exports[_0xf7e6('0x4d')]=function(_0x48b08e,_0x1dde50){if(_0x48b08e[_0xf7e6('0x4e')]['id']){delete _0x48b08e[_0xf7e6('0x4e')]['id'];}return db[_0xf7e6('0x32')][_0xf7e6('0x4b')]({'where':{'id':_0x48b08e[_0xf7e6('0x48')]['id']}})[_0xf7e6('0x2b')](handleEntityNotFound(_0x1dde50,null))[_0xf7e6('0x2b')](saveUpdates(_0x48b08e['body'],null))['then'](respondWithResult(_0x1dde50,null))['catch'](handleError(_0x1dde50,null));};exports[_0xf7e6('0x2a')]=function(_0x2a0cdf,_0x596dfd){return db[_0xf7e6('0x32')][_0xf7e6('0x4b')]({'where':{'id':_0x2a0cdf['params']['id']}})['then'](handleEntityNotFound(_0x596dfd,null))['then'](removeEntity(_0x596dfd,null))[_0xf7e6('0x46')](handleError(_0x596dfd,null));};exports['describe']=function(_0x550054,_0x5143ca){return db[_0xf7e6('0x32')]['describe']()[_0xf7e6('0x2b')](respondWithResult(_0x5143ca,null))[_0xf7e6('0x46')](handleError(_0x5143ca,null));};function wrapUser(_0x43c5e3){return function(_0x27ffd4){var _0x14e5d8=_0x43c5e3[_0xf7e6('0x4f')]({'plain':!![]});_0x14e5d8['messages']=[];if(_0x27ffd4){_0x14e5d8['lastMessageAt']=_0x27ffd4[_0xf7e6('0x50')];_0x14e5d8['lastMessage']=_0x27ffd4;}else{_0x14e5d8[_0xf7e6('0x51')]=moment(0x0)[_0xf7e6('0x52')](_0xf7e6('0x53'));_0x14e5d8[_0xf7e6('0x54')]={};}return _0x14e5d8;};}exports[_0xf7e6('0x55')]=function(_0x9b9fa5,_0x3500ed,_0x2e6692){var _0x142fee=[];return db[_0xf7e6('0x56')][_0xf7e6('0x45')]({'where':{'role':[_0xf7e6('0x57'),_0xf7e6('0x58'),_0xf7e6('0x59')]},'attributes':['id',_0xf7e6('0x5a'),_0xf7e6('0x2e'),_0xf7e6('0x5b'),_0xf7e6('0x5c'),'internal',_0xf7e6('0x5d'),_0xf7e6('0x5e'),'allowmessenger',_0xf7e6('0x5f')],'order':qs[_0xf7e6('0x3d')]('-online'),'include':[{'model':db[_0xf7e6('0x60')],'as':_0xf7e6('0x61'),'attributes':['id',_0xf7e6('0x2e'),_0xf7e6('0x41')],'through':{'attributes':[]}}]})[_0xf7e6('0x2b')](function(_0x4c3f50){if(_0x4c3f50){var _0x393885=_0x9b9fa5['user'][_0xf7e6('0x4f')]({'plain':!![]});if(!_0x393885)throw new Error(_0xf7e6('0x62'));if(_0x393885['role']===_0xf7e6('0x59')){return db['UserProfileSection'][_0xf7e6('0x4b')]({'where':{'name':_0xf7e6('0x63'),'userProfileId':_0x393885[_0xf7e6('0x64')]},'raw':!![]})[_0xf7e6('0x2b')](function(_0x43f324){if(_0x43f324){if(_0x43f324[_0xf7e6('0x65')]===0x0){return db[_0xf7e6('0x66')][_0xf7e6('0x45')]({'where':{'sectionId':_0x43f324['id']},'raw':!![]})[_0xf7e6('0x2b')](function(_0x13e95f){var _0x2adef4=[];if(_[_0xf7e6('0x67')](_0x13e95f)){_0x2adef4=_['filter'](_0x4c3f50,function(_0x1b0a22){if(_0x1b0a22[_0xf7e6('0x5b')]!==_0xf7e6('0x57')){return _0x1b0a22;}});return _0x2adef4;}else{for(var _0x47132c=0x0;_0x47132c<_0x4c3f50[_0xf7e6('0x3b')];_0x47132c++){var _0x55346a=_0x4c3f50[_0x47132c];if(_0x55346a['role']===_0xf7e6('0x57')){var _0x573658=_[_0xf7e6('0x4b')](_0x13e95f,function(_0x39f5a8){return _0x39f5a8[_0xf7e6('0x68')]===_0x55346a['id'];});if(_0x573658)_0x2adef4[_0xf7e6('0x69')](_0x55346a);}else{_0x2adef4['push'](_0x55346a);}}return _0x2adef4;}});}else{return _0x4c3f50;}}else{var _0x7b8e4a=_[_0xf7e6('0x42')](_0x4c3f50,function(_0x218bc2){if(_0x218bc2[_0xf7e6('0x5b')]!==_0xf7e6('0x57')){return _0x218bc2;}});return _0x7b8e4a;}});}else{return _0x4c3f50;}}})['then'](function(_0xe3bb45){var _0x45cc54=[];if(_0xe3bb45){_0x142fee=_0xe3bb45;for(var _0x4abc46=0x0;_0x4abc46<_0xe3bb45['length'];_0x4abc46+=0x1){_0x142fee[_0x4abc46][_0xf7e6('0x6a')]=[];_0x45cc54[_0xf7e6('0x69')](db[_0xf7e6('0x32')]['find']({'where':{'FromId':[_0x9b9fa5[_0xf7e6('0x59')]['id'],_0xe3bb45[_0x4abc46]['id']],'ToId':[_0x9b9fa5[_0xf7e6('0x59')]['id'],_0xe3bb45[_0x4abc46]['id']],'ChatGroupId':null},'attributes':['id',_0xf7e6('0x50'),_0xf7e6('0x6b'),_0xf7e6('0x6c'),_0xf7e6('0x6d'),_0xf7e6('0x4e')],'order':qs[_0xf7e6('0x3d')](_0xf7e6('0x6e')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0xe3bb45[_0x4abc46])));}return BPromise[_0xf7e6('0x6f')](_0x45cc54);}return[];})['then'](function(_0x4be536){return{'rows':_0x4be536,'count':_0x4be536[_0xf7e6('0x3b')]};})[_0xf7e6('0x2b')](respondWithResult(_0x3500ed,null))['catch'](handleError(_0x3500ed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x72a1=['../../mysqldb','setMaxListeners','update','remove','emit','hasOwnProperty','exports'];(function(_0xce783e,_0x123455){var _0x2d798e=function(_0xdfd3f9){while(--_0xdfd3f9){_0xce783e['push'](_0xce783e['shift']());}};_0x2d798e(++_0x123455);}(_0x72a1,0x1ce));var _0x172a=function(_0xfff265,_0x41f693){_0xfff265=_0xfff265-0x0;var _0x55442d=_0x72a1[_0xfff265];return _0x55442d;};'use strict';var EventEmitter=require('events');var ChatInternalMessage=require(_0x172a('0x0'))['db']['ChatInternalMessage'];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0x172a('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x172a('0x2'),'afterDestroy':_0x172a('0x3')};function emitEvent(_0x123500){return function(_0x5bb037,_0x3598a9,_0x556535){ChatInternalMessageEvents[_0x172a('0x4')](_0x123500+':'+_0x5bb037['id'],_0x5bb037);ChatInternalMessageEvents['emit'](_0x123500,_0x5bb037);_0x556535(null);};}for(var e in events){if(events[_0x172a('0x5')](e)){var event=events[e];ChatInternalMessage['hook'](e,emitEvent(event));}}module[_0x172a('0x6')]=ChatInternalMessageEvents;
\ No newline at end of file
+var _0x24e4=['update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','ChatInternalMessage','setMaxListeners','save'];(function(_0x5c6f37,_0x5251e2){var _0x489ad2=function(_0x3b2642){while(--_0x3b2642){_0x5c6f37['push'](_0x5c6f37['shift']());}};_0x489ad2(++_0x5251e2);}(_0x24e4,0x10e));var _0x424e=function(_0x9307ea,_0x38968a){_0x9307ea=_0x9307ea-0x0;var _0x295554=_0x24e4[_0x9307ea];return _0x295554;};'use strict';var EventEmitter=require(_0x424e('0x0'));var ChatInternalMessage=require(_0x424e('0x1'))['db'][_0x424e('0x2')];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0x424e('0x3')](0x0);var events={'afterCreate':_0x424e('0x4'),'afterUpdate':_0x424e('0x5'),'afterDestroy':_0x424e('0x6')};function emitEvent(_0x57592d){return function(_0x3e2598,_0x26a982,_0x27f284){ChatInternalMessageEvents[_0x424e('0x7')](_0x57592d+':'+_0x3e2598['id'],_0x3e2598);ChatInternalMessageEvents[_0x424e('0x7')](_0x57592d,_0x3e2598);_0x27f284(null);};}for(var e in events){if(events[_0x424e('0x8')](e)){var event=events[e];ChatInternalMessage[_0x424e('0x9')](e,emitEvent(event));}}module[_0x424e('0xa')]=ChatInternalMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadeb=['./chatInternalMessage.attributes','define','chat_internal_messages','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x44ac5f,_0xbfa9f8){var _0x4624be=function(_0x377a3e){while(--_0x377a3e){_0x44ac5f['push'](_0x44ac5f['shift']());}};_0x4624be(++_0xbfa9f8);}(_0xadeb,0x14a));var _0xbade=function(_0x36613d,_0x802aeb){_0x36613d=_0x36613d-0x0;var _0x1c06fd=_0xadeb[_0x36613d];return _0x1c06fd;};'use strict';var _=require(_0xbade('0x0'));var util=require(_0xbade('0x1'));var logger=require(_0xbade('0x2'))(_0xbade('0x3'));var moment=require('moment');var BPromise=require(_0xbade('0x4'));var rp=require(_0xbade('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xbade('0x6'));var config=require(_0xbade('0x7'));var attributes=require(_0xbade('0x8'));module['exports']=function(_0x3d601b,_0x5e8050){return _0x3d601b[_0xbade('0x9')]('ChatInternalMessage',attributes,{'tableName':_0xbade('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xbade('0xb'),'collate':_0xbade('0xc')});};
\ No newline at end of file
+var _0x6c89=['./chatInternalMessage.attributes','exports','define','ChatInternalMessage','chat_internal_messages','utf8mb4','lodash','util','../../config/logger','api','moment','bluebird','path','../../config/environment'];(function(_0x4d45c1,_0x2beda1){var _0x244478=function(_0x11304c){while(--_0x11304c){_0x4d45c1['push'](_0x4d45c1['shift']());}};_0x244478(++_0x2beda1);}(_0x6c89,0x180));var _0x96c8=function(_0x2df62a,_0x19b422){_0x2df62a=_0x2df62a-0x0;var _0x2f49c6=_0x6c89[_0x2df62a];return _0x2f49c6;};'use strict';var _=require(_0x96c8('0x0'));var util=require(_0x96c8('0x1'));var logger=require(_0x96c8('0x2'))(_0x96c8('0x3'));var moment=require(_0x96c8('0x4'));var BPromise=require(_0x96c8('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x96c8('0x6'));var rimraf=require('rimraf');var config=require(_0x96c8('0x7'));var attributes=require(_0x96c8('0x8'));module[_0x96c8('0x9')]=function(_0x88b786,_0x12b24a){return _0x88b786[_0x96c8('0xa')](_0x96c8('0xb'),attributes,{'tableName':_0x96c8('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x96c8('0xd'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x415a=['info','request\x20sent','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','./chatInternalMessage.socket','register','request','then','ChatInternalMessage,\x20%s,\x20%s','debug','stringify','error','message'];(function(_0x3ecc74,_0x4db294){var _0xf9ad91=function(_0x7d3f6b){while(--_0x7d3f6b){_0x3ecc74['push'](_0x3ecc74['shift']());}};_0xf9ad91(++_0x4db294);}(_0x415a,0x1df));var _0xa415=function(_0x5c75af,_0x89653b){_0x5c75af=_0x5c75af-0x0;var _0x1e2052=_0x415a[_0x5c75af];return _0x1e2052;};'use strict';var _=require('lodash');var util=require(_0xa415('0x0'));var moment=require(_0xa415('0x1'));var BPromise=require(_0xa415('0x2'));var rs=require(_0xa415('0x3'));var fs=require('fs');var Redis=require(_0xa415('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xa415('0x5'))(_0xa415('0x6'));var config=require(_0xa415('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xa415('0x8')][_0xa415('0x9')]({'port':0x232a});config[_0xa415('0xa')]=_['defaults'](config[_0xa415('0xa')],{'host':_0xa415('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xa415('0xc'))[_0xa415('0xd')](socket);function respondWithRpcPromise(_0x18bb37,_0x477f73,_0x402ed3){return new BPromise(function(_0x558e45,_0x67852f){return client[_0xa415('0xe')](_0x18bb37,_0x402ed3)[_0xa415('0xf')](function(_0x1006fe){logger['info'](_0xa415('0x10'),_0x477f73,'request\x20sent');logger[_0xa415('0x11')]('ChatInternalMessage,\x20%s,\x20%s,\x20%s',_0x477f73,'request\x20sent',JSON[_0xa415('0x12')](_0x1006fe));if(_0x1006fe[_0xa415('0x13')]){if(_0x1006fe[_0xa415('0x13')]['code']===0x1f4){logger['error'](_0xa415('0x10'),_0x477f73,_0x1006fe['error'][_0xa415('0x14')]);return _0x67852f(_0x1006fe[_0xa415('0x13')]['message']);}logger[_0xa415('0x13')]('ChatInternalMessage,\x20%s,\x20%s',_0x477f73,_0x1006fe['error'][_0xa415('0x14')]);return _0x558e45(_0x1006fe[_0xa415('0x13')][_0xa415('0x14')]);}else{logger[_0xa415('0x15')](_0xa415('0x10'),_0x477f73,_0xa415('0x16'));_0x558e45(_0x1006fe[_0xa415('0x17')][_0xa415('0x14')]);}})[_0xa415('0x18')](function(_0x2e812d){logger[_0xa415('0x13')]('ChatInternalMessage,\x20%s,\x20%s',_0x477f73,_0x2e812d);_0x67852f(_0x2e812d);});});}
\ No newline at end of file
+var _0xb9e1=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','register','request','then','info','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatInternalMessage,\x20%s,\x20%s','message','catch','lodash'];(function(_0x5ec548,_0xf21387){var _0x4093fb=function(_0xa22522){while(--_0xa22522){_0x5ec548['push'](_0x5ec548['shift']());}};_0x4093fb(++_0xf21387);}(_0xb9e1,0xad));var _0x1b9e=function(_0x32c012,_0xe3c576){_0x32c012=_0x32c012-0x0;var _0x48562e=_0xb9e1[_0x32c012];return _0x48562e;};'use strict';var _=require(_0x1b9e('0x0'));var util=require(_0x1b9e('0x1'));var moment=require(_0x1b9e('0x2'));var BPromise=require(_0x1b9e('0x3'));var rs=require(_0x1b9e('0x4'));var fs=require('fs');var Redis=require(_0x1b9e('0x5'));var db=require(_0x1b9e('0x6'))['db'];var utils=require(_0x1b9e('0x7'));var logger=require('../../config/logger')(_0x1b9e('0x8'));var config=require(_0x1b9e('0x9'));var jayson=require(_0x1b9e('0xa'));var client=jayson[_0x1b9e('0xb')][_0x1b9e('0xc')]({'port':0x232a});config[_0x1b9e('0xd')]=_[_0x1b9e('0xe')](config[_0x1b9e('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0x1b9e('0xf'))(new Redis(config[_0x1b9e('0xd')]));require('./chatInternalMessage.socket')[_0x1b9e('0x10')](socket);function respondWithRpcPromise(_0x147f01,_0x4239a1,_0x109837){return new BPromise(function(_0x58b3aa,_0x443ec1){return client[_0x1b9e('0x11')](_0x147f01,_0x109837)[_0x1b9e('0x12')](function(_0x33f7e0){logger[_0x1b9e('0x13')]('ChatInternalMessage,\x20%s,\x20%s',_0x4239a1,_0x1b9e('0x14'));logger[_0x1b9e('0x15')](_0x1b9e('0x16'),_0x4239a1,_0x1b9e('0x14'),JSON[_0x1b9e('0x17')](_0x33f7e0));if(_0x33f7e0[_0x1b9e('0x18')]){if(_0x33f7e0[_0x1b9e('0x18')][_0x1b9e('0x19')]===0x1f4){logger['error'](_0x1b9e('0x1a'),_0x4239a1,_0x33f7e0[_0x1b9e('0x18')][_0x1b9e('0x1b')]);return _0x443ec1(_0x33f7e0[_0x1b9e('0x18')][_0x1b9e('0x1b')]);}logger[_0x1b9e('0x18')](_0x1b9e('0x1a'),_0x4239a1,_0x33f7e0[_0x1b9e('0x18')][_0x1b9e('0x1b')]);return _0x58b3aa(_0x33f7e0[_0x1b9e('0x18')][_0x1b9e('0x1b')]);}else{logger[_0x1b9e('0x13')](_0x1b9e('0x1a'),_0x4239a1,_0x1b9e('0x14'));_0x58b3aa(_0x33f7e0['result'][_0x1b9e('0x1b')]);}})[_0x1b9e('0x1c')](function(_0x508435){logger[_0x1b9e('0x18')](_0x1b9e('0x1a'),_0x4239a1,_0x508435);_0x443ec1(_0x508435);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c69=['length','save','update','emit','removeListener','register'];(function(_0x21c14a,_0xf9e665){var _0x57f3d9=function(_0x5ce5bf){while(--_0x5ce5bf){_0x21c14a['push'](_0x21c14a['shift']());}};_0x57f3d9(++_0xf9e665);}(_0x1c69,0x8b));var _0x91c6=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x1c69[_0x19950b];return _0x3c6b41;};'use strict';var ChatInternalMessageEvents=require('./chatInternalMessage.events');var events=[_0x91c6('0x0'),'remove',_0x91c6('0x1')];function createListener(_0x5dcefe,_0x37faeb){return function(_0x14a2e5){_0x37faeb[_0x91c6('0x2')](_0x5dcefe,_0x14a2e5);};}function removeListener(_0x5328a6,_0x4d41fe){return function(){ChatInternalMessageEvents[_0x91c6('0x3')](_0x5328a6,_0x4d41fe);};}exports[_0x91c6('0x4')]=function(_0x54f1b6){for(var _0x84be58=0x0,_0x250b37=events[_0x91c6('0x5')];_0x84be58<_0x250b37;_0x84be58++){var _0x5263ea=events[_0x84be58];var _0x271547=createListener('chatInternalMessage:'+_0x5263ea,_0x54f1b6);ChatInternalMessageEvents['on'](_0x5263ea,_0x271547);}};
\ No newline at end of file
+var _0x0f50=['remove','update','emit','removeListener','register','length','chatInternalMessage:','./chatInternalMessage.events','save'];(function(_0x225e61,_0xb3c102){var _0x41bdad=function(_0x318eac){while(--_0x318eac){_0x225e61['push'](_0x225e61['shift']());}};_0x41bdad(++_0xb3c102);}(_0x0f50,0x130));var _0x00f5=function(_0x3a6b8b,_0x40a1fc){_0x3a6b8b=_0x3a6b8b-0x0;var _0x32869e=_0x0f50[_0x3a6b8b];return _0x32869e;};'use strict';var ChatInternalMessageEvents=require(_0x00f5('0x0'));var events=[_0x00f5('0x1'),_0x00f5('0x2'),_0x00f5('0x3')];function createListener(_0x12b049,_0x1b2830){return function(_0x2aeea5){_0x1b2830[_0x00f5('0x4')](_0x12b049,_0x2aeea5);};}function removeListener(_0x51e050,_0x4a3b91){return function(){ChatInternalMessageEvents[_0x00f5('0x5')](_0x51e050,_0x4a3b91);};}exports[_0x00f5('0x6')]=function(_0x28bf80){for(var _0x280b85=0x0,_0x4a3233=events[_0x00f5('0x7')];_0x280b85<_0x4a3233;_0x280b85++){var _0xd3803=events[_0x280b85];var _0x1e07c4=createListener(_0x00f5('0x8')+_0xd3803,_0x28bf80);ChatInternalMessageEvents['on'](_0xd3803,_0x1e07c4);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc68=['/:id','show','post','put','update','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','isAuthenticated','get','/describe','describe','getUsers'];(function(_0x1501ed,_0x12ef91){var _0x503cdc=function(_0x412604){while(--_0x412604){_0x1501ed['push'](_0x1501ed['shift']());}};_0x503cdc(++_0x12ef91);}(_0xbc68,0x1ac));var _0x8bc6=function(_0x573b17,_0x18b1c0){_0x573b17=_0x573b17-0x0;var _0x347fcf=_0xbc68[_0x573b17];return _0x347fcf;};'use strict';var multer=require('multer');var util=require(_0x8bc6('0x0'));var path=require(_0x8bc6('0x1'));var timeout=require(_0x8bc6('0x2'));var express=require(_0x8bc6('0x3'));var router=express[_0x8bc6('0x4')]();var fs_extra=require(_0x8bc6('0x5'));var auth=require(_0x8bc6('0x6'));var interaction=require(_0x8bc6('0x7'));var config=require('../../config/environment');var controller=require('./chatInternalMessage.controller');router['get']('/',auth[_0x8bc6('0x8')](),controller['index']);router[_0x8bc6('0x9')](_0x8bc6('0xa'),auth['isAuthenticated'](),controller[_0x8bc6('0xb')]);router[_0x8bc6('0x9')]('/users',auth['isAuthenticated'](),controller[_0x8bc6('0xc')]);router[_0x8bc6('0x9')](_0x8bc6('0xd'),auth[_0x8bc6('0x8')](),controller[_0x8bc6('0xe')]);router[_0x8bc6('0xf')]('/',auth[_0x8bc6('0x8')](),controller['create']);router[_0x8bc6('0x10')](_0x8bc6('0xd'),controller[_0x8bc6('0x11')]);router[_0x8bc6('0x12')](_0x8bc6('0xd'),auth[_0x8bc6('0x8')](),controller[_0x8bc6('0x13')]);module[_0x8bc6('0x14')]=router;
\ No newline at end of file
+var _0x7278=['express','../../config/environment','./chatInternalMessage.controller','get','isAuthenticated','/describe','describe','getUsers','/:id','show','create','update','delete','destroy','exports','util','connect-timeout'];(function(_0x1fa746,_0x2b9b2f){var _0x51b214=function(_0x5c7df2){while(--_0x5c7df2){_0x1fa746['push'](_0x1fa746['shift']());}};_0x51b214(++_0x2b9b2f);}(_0x7278,0x1da));var _0x8727=function(_0x2f1dad,_0x1dfee5){_0x2f1dad=_0x2f1dad-0x0;var _0x64e3d6=_0x7278[_0x2f1dad];return _0x64e3d6;};'use strict';var multer=require('multer');var util=require(_0x8727('0x0'));var path=require('path');var timeout=require(_0x8727('0x1'));var express=require(_0x8727('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x8727('0x3'));var controller=require(_0x8727('0x4'));router[_0x8727('0x5')]('/',auth[_0x8727('0x6')](),controller['index']);router[_0x8727('0x5')](_0x8727('0x7'),auth[_0x8727('0x6')](),controller[_0x8727('0x8')]);router[_0x8727('0x5')]('/users',auth[_0x8727('0x6')](),controller[_0x8727('0x9')]);router['get'](_0x8727('0xa'),auth['isAuthenticated'](),controller[_0x8727('0xb')]);router['post']('/',auth[_0x8727('0x6')](),controller[_0x8727('0xc')]);router['put']('/:id',controller[_0x8727('0xd')]);router[_0x8727('0xe')](_0x8727('0xa'),auth[_0x8727('0x6')](),controller[_0x8727('0xf')]);module[_0x8727('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e63=['BOOLEAN','ENUM','out','DATE','STRING','sequelize','exports','TEXT'];(function(_0x3a8422,_0x635f01){var _0x21f8c7=function(_0x190c3f){while(--_0x190c3f){_0x3a8422['push'](_0x3a8422['shift']());}};_0x21f8c7(++_0x635f01);}(_0x9e63,0x65));var _0x39e6=function(_0x29b609,_0x19d388){_0x29b609=_0x29b609-0x0;var _0x54c952=_0x9e63[_0x29b609];return _0x54c952;};'use strict';var Sequelize=require(_0x39e6('0x0'));module[_0x39e6('0x1')]={'body':{'type':Sequelize[_0x39e6('0x2')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x39e6('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0x39e6('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x39e6('0x4')]('in',_0x39e6('0x5')),'defaultValue':_0x39e6('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0x39e6('0x6')]},'providerName':{'type':Sequelize[_0x39e6('0x7')]},'providerResponse':{'type':Sequelize[_0x39e6('0x2')]}};
\ No newline at end of file
+var _0xdd6e=['medium','BOOLEAN','ENUM','out','sequelize','exports','TEXT'];(function(_0x32d457,_0x1a39c9){var _0x338386=function(_0x199d7a){while(--_0x199d7a){_0x32d457['push'](_0x32d457['shift']());}};_0x338386(++_0x1a39c9);}(_0xdd6e,0xa5));var _0xedd6=function(_0x211782,_0x48fda7){_0x211782=_0x211782-0x0;var _0x2811ed=_0xdd6e[_0x211782];return _0x2811ed;};'use strict';var Sequelize=require(_0xedd6('0x0'));module[_0xedd6('0x1')]={'body':{'type':Sequelize[_0xedd6('0x2')](_0xedd6('0x3')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xedd6('0x5')]('in',_0xedd6('0x6')),'defaultValue':_0xedd6('0x6'),'allowNull':![]},'readAt':{'type':Sequelize['DATE']},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['interaction','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','contact','email','internal','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','parse','formData','chat-interactions','chat','ChatInteraction','RejectMessage','rejectMessage','Sequelize','QueryTypes','SELECT','fullname','rejectmessage','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatMessage.socket','register','jayson/promise','client','http','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','destroy','stack','name','send','map','ChatMessage','fieldName','type','keys','query','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','body','find','describe','../../config/logger','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','ChatInteractionId','isNil','read1stAt','format'];(function(_0x23103e,_0x242c79){var _0x414cc0=function(_0x3e6bfd){while(--_0x3e6bfd){_0x23103e['push'](_0x23103e['shift']());}};_0x414cc0(++_0x242c79);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];config[_0x0a9e('0x15')]=_[_0x0a9e('0x16')](config[_0x0a9e('0x15')],{'host':_0x0a9e('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x15')]));require(_0x0a9e('0x18'))[_0x0a9e('0x19')](socket);var jayson=require(_0x0a9e('0x1a'));var client=jayson[_0x0a9e('0x1b')][_0x0a9e('0x1c')]({'port':0x232c});var client9002=jayson['client'][_0x0a9e('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x5d0880,_0x1985b6,_0x519dfd,_0x16033c){return new BPromise(function(_0x12066b,_0x48f32d){var _0x225616=_0x16033c||client;return _0x225616['request'](_0x5d0880,_0x519dfd)[_0x0a9e('0x1d')](function(_0x478723){logger[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x1985b6,_0x0a9e('0x20'));logger[_0x0a9e('0x21')](_0x0a9e('0x22'),_0x1985b6,_0x0a9e('0x20'),JSON[_0x0a9e('0x23')](_0x478723));if(_0x478723[_0x0a9e('0x24')]){if(_0x478723[_0x0a9e('0x24')][_0x0a9e('0x25')]===0x1f4){logger['error'](_0x0a9e('0x1f'),_0x1985b6,_0x478723[_0x0a9e('0x24')]['message']);return _0x48f32d(_0x478723[_0x0a9e('0x24')]['message']);}logger['error'](_0x0a9e('0x1f'),_0x1985b6,_0x478723[_0x0a9e('0x24')][_0x0a9e('0x26')]);return _0x12066b(_0x478723[_0x0a9e('0x24')]['message']);}else{logger[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x1985b6,_0x0a9e('0x20'));_0x12066b(_0x478723[_0x0a9e('0x27')][_0x0a9e('0x26')]);}})[_0x0a9e('0x28')](function(_0x16b1ca){logger['error']('ChatMessage,\x20%s,\x20%s',_0x1985b6,_0x16b1ca);_0x48f32d(_0x16b1ca);});});}function respondWithStatusCode(_0x197ec0,_0x3a8e58){_0x3a8e58=_0x3a8e58||0xcc;return function(_0x40c424){if(_0x40c424){return _0x197ec0[_0x0a9e('0x29')](_0x3a8e58);}return _0x197ec0['status'](_0x3a8e58)[_0x0a9e('0x2a')]();};}function respondWithResult(_0x479bc4,_0x45a1e7){_0x45a1e7=_0x45a1e7||0xc8;return function(_0x5bfb33){if(_0x5bfb33){return _0x479bc4[_0x0a9e('0x2b')](_0x45a1e7)[_0x0a9e('0x2c')](_0x5bfb33);}};}function respondWithFilteredResult(_0x25fba9,_0x14433c){return function(_0x140511){if(_0x140511){var _0x1538a4=typeof _0x14433c[_0x0a9e('0x2d')]===_0x0a9e('0x2e')&&typeof _0x14433c['limit']===_0x0a9e('0x2e');var _0x468813=_0x140511[_0x0a9e('0x2f')];var _0x2ec755=_0x1538a4?0x0:_0x14433c['offset'];var _0x15b200=_0x1538a4?_0x140511[_0x0a9e('0x2f')]:_0x14433c[_0x0a9e('0x2d')]+_0x14433c[_0x0a9e('0x30')];var _0x58b06f;if(_0x15b200>=_0x468813){_0x15b200=_0x468813;_0x58b06f=0xc8;}else{_0x58b06f=0xce;}_0x25fba9[_0x0a9e('0x2b')](_0x58b06f);return _0x25fba9[_0x0a9e('0x31')](_0x0a9e('0x32'),_0x2ec755+'-'+_0x15b200+'/'+_0x468813)[_0x0a9e('0x2c')](_0x140511);}return null;};}function patchUpdates(_0x540530){return function(_0x426950){try{jsonpatch['apply'](_0x426950,_0x540530,!![]);}catch(_0x2407f9){return BPromise[_0x0a9e('0x33')](_0x2407f9);}return _0x426950[_0x0a9e('0x34')]();};}function saveUpdates(_0x33bdb7,_0x25ce3a){return function(_0x5180f1){if(_0x5180f1){return _0x5180f1[_0x0a9e('0x35')](_0x33bdb7)[_0x0a9e('0x1d')](function(_0x40cb85){return _0x40cb85;});}return null;};}function removeEntity(_0x2da5c0,_0x2b45ea){return function(_0x409319){if(_0x409319){return _0x409319[_0x0a9e('0x36')]()[_0x0a9e('0x1d')](function(){_0x2da5c0['status'](0xcc)[_0x0a9e('0x2a')]();});}};}function handleEntityNotFound(_0x5e7238,_0x2cc7a0){return function(_0x14b13f){if(!_0x14b13f){_0x5e7238[_0x0a9e('0x29')](0x194);}return _0x14b13f;};}function handleError(_0x3f3d41,_0x567193){_0x567193=_0x567193||0x1f4;return function(_0x191e91){logger[_0x0a9e('0x24')](_0x191e91[_0x0a9e('0x37')]);if(_0x191e91[_0x0a9e('0x38')]){delete _0x191e91['name'];}_0x3f3d41['status'](_0x567193)[_0x0a9e('0x39')](_0x191e91);};}exports['index']=function(_0x24936a,_0x3d9717){var _0x381c37={},_0x1ef87a={},_0x4f41ae={'count':0x0,'rows':[]};var _0x31916f=_[_0x0a9e('0x3a')](db[_0x0a9e('0x3b')]['rawAttributes'],function(_0x1dbf74){return{'name':_0x1dbf74[_0x0a9e('0x3c')],'type':_0x1dbf74[_0x0a9e('0x3d')]['key']};});_0x1ef87a['model']=_[_0x0a9e('0x3a')](_0x31916f,_0x0a9e('0x38'));_0x1ef87a['query']=_[_0x0a9e('0x3e')](_0x24936a[_0x0a9e('0x3f')]);_0x1ef87a[_0x0a9e('0x40')]=_[_0x0a9e('0x41')](_0x1ef87a['model'],_0x1ef87a['query']);_0x381c37[_0x0a9e('0x42')]=_[_0x0a9e('0x41')](_0x1ef87a['model'],qs[_0x0a9e('0x43')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x43')]));_0x381c37['attributes']=_0x381c37[_0x0a9e('0x42')][_0x0a9e('0x44')]?_0x381c37[_0x0a9e('0x42')]:_0x1ef87a[_0x0a9e('0x45')];if(!_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x46')](_0x0a9e('0x47'))){_0x381c37[_0x0a9e('0x30')]=qs[_0x0a9e('0x30')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x30')]);_0x381c37[_0x0a9e('0x2d')]=qs[_0x0a9e('0x2d')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x2d')]);}_0x381c37['order']=qs['sort'](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x48')]);_0x381c37[_0x0a9e('0x49')]=qs[_0x0a9e('0x40')](_[_0x0a9e('0x4a')](_0x24936a[_0x0a9e('0x3f')],_0x1ef87a[_0x0a9e('0x40')]),_0x31916f);if(_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4b')]){_0x381c37[_0x0a9e('0x49')]=_[_0x0a9e('0x4c')](_0x381c37[_0x0a9e('0x49')],{'$or':_['map'](_0x31916f,function(_0x117c99){if(_0x117c99[_0x0a9e('0x3d')]!==_0x0a9e('0x4d')){var _0xfbd5ad={};_0xfbd5ad[_0x117c99[_0x0a9e('0x38')]]={'$like':'%'+_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4b')]+'%'};return _0xfbd5ad;}})});}_0x381c37=_[_0x0a9e('0x4c')]({},_0x381c37,_0x24936a['options']);var _0x2e9d90={'where':_0x381c37['where']};return db[_0x0a9e('0x3b')][_0x0a9e('0x2f')](_0x2e9d90)[_0x0a9e('0x1d')](function(_0x562fb4){_0x4f41ae[_0x0a9e('0x2f')]=_0x562fb4;if(_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4e')]){_0x381c37[_0x0a9e('0x4f')]=[{'all':!![]}];}return db[_0x0a9e('0x3b')][_0x0a9e('0x50')](_0x381c37);})[_0x0a9e('0x1d')](function(_0x5bbcde){_0x4f41ae[_0x0a9e('0x51')]=_0x5bbcde;return _0x4f41ae;})[_0x0a9e('0x1d')](respondWithFilteredResult(_0x3d9717,_0x381c37))[_0x0a9e('0x28')](handleError(_0x3d9717,null));};exports[_0x0a9e('0x52')]=function(_0x409789,_0x992c77){var _0x6054ee={'raw':!![],'where':{'id':_0x409789[_0x0a9e('0x53')]['id']}},_0x19383e={};_0x19383e['model']=_[_0x0a9e('0x3e')](db[_0x0a9e('0x3b')]['rawAttributes']);_0x19383e['query']=_['keys'](_0x409789[_0x0a9e('0x3f')]);_0x19383e[_0x0a9e('0x40')]=_[_0x0a9e('0x41')](_0x19383e[_0x0a9e('0x45')],_0x19383e[_0x0a9e('0x3f')]);_0x6054ee[_0x0a9e('0x42')]=_[_0x0a9e('0x41')](_0x19383e[_0x0a9e('0x45')],qs['fields'](_0x409789['query']['fields']));_0x6054ee[_0x0a9e('0x42')]=_0x6054ee[_0x0a9e('0x42')][_0x0a9e('0x44')]?_0x6054ee['attributes']:_0x19383e[_0x0a9e('0x45')];if(_0x409789[_0x0a9e('0x3f')]['includeAll']){_0x6054ee['include']=[{'all':!![]}];}_0x6054ee=_[_0x0a9e('0x4c')]({},_0x6054ee,_0x409789['options']);return db[_0x0a9e('0x3b')]['find'](_0x6054ee)[_0x0a9e('0x1d')](handleEntityNotFound(_0x992c77,null))[_0x0a9e('0x1d')](respondWithResult(_0x992c77,null))[_0x0a9e('0x28')](handleError(_0x992c77,null));};exports['create']=function(_0x2f82da,_0x1bf38a){return db['ChatMessage']['create'](_0x2f82da[_0x0a9e('0x54')],{})[_0x0a9e('0x1d')](respondWithResult(_0x1bf38a,0xc9))['catch'](handleError(_0x1bf38a,null));};exports[_0x0a9e('0x35')]=function(_0x5ce9ac,_0x211ef9){if(_0x5ce9ac['body']['id']){delete _0x5ce9ac[_0x0a9e('0x54')]['id'];}return db['ChatMessage']['find']({'where':{'id':_0x5ce9ac['params']['id']}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x211ef9,null))['then'](saveUpdates(_0x5ce9ac[_0x0a9e('0x54')],null))[_0x0a9e('0x1d')](respondWithResult(_0x211ef9,null))[_0x0a9e('0x28')](handleError(_0x211ef9,null));};exports[_0x0a9e('0x36')]=function(_0x232830,_0x272738){return db[_0x0a9e('0x3b')][_0x0a9e('0x55')]({'where':{'id':_0x232830['params']['id']}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x272738,null))[_0x0a9e('0x1d')](removeEntity(_0x272738,null))[_0x0a9e('0x28')](handleError(_0x272738,null));};exports[_0x0a9e('0x56')]=function(_0xb83dfd,_0x156662){return db['ChatMessage'][_0x0a9e('0x56')]()[_0x0a9e('0x1d')](respondWithResult(_0x156662,null))['catch'](handleError(_0x156662,null));};var interaction_log=require(_0x0a9e('0x57'))('chat-interactions');exports[_0x0a9e('0x58')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee){var _0x273cb5={'agent':{},'channel':'chat'};if(_0x5ba1f9[_0x0a9e('0x54')]['id']){delete _0x5ba1f9[_0x0a9e('0x54')]['id'];}_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x59')]=!![];_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5a')]=moment()['format'](_0x0a9e('0x5b'));_0x5ba1f9['body'][_0x0a9e('0x5c')]=_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')]||_0x5ba1f9['user']['id'];_0x273cb5[_0x0a9e('0x5d')]['id']=_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')];return db[_0x0a9e('0x3b')]['find']({'where':{'id':_0x5ba1f9[_0x0a9e('0x53')]['id'],'UserId':null}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x4b3c1a,null))['then'](saveUpdates(_0x5ba1f9[_0x0a9e('0x54')],null))[_0x0a9e('0x1d')](function(_0x88dcbf){if(_0x88dcbf){_0x273cb5[_0x0a9e('0x26')]=_0x88dcbf[_0x0a9e('0x5e')]({'plain':!![]});return db['ChatInteraction'][_0x0a9e('0x55')]({'where':{'id':_0x88dcbf[_0x0a9e('0x5f')]}});}return null;})[_0x0a9e('0x1d')](handleEntityNotFound(_0x4b3c1a,null))['then'](function(_0x3528b7){if(_0x3528b7){return _0x3528b7['update']({'UserId':_0x5ba1f9['body'][_0x0a9e('0x5c')],'read1stAt':_[_0x0a9e('0x60')](_0x3528b7[_0x0a9e('0x61')])?moment()[_0x0a9e('0x62')](_0x0a9e('0x5b')):undefined});}return null;})[_0x0a9e('0x1d')](function(_0x387489){if(_0x387489){_0x273cb5[_0x0a9e('0x63')]=_0x387489[_0x0a9e('0x5e')]({'plain':!![]});interaction_log[_0x0a9e('0x1e')](_0x0a9e('0x64'),_0x5ba1f9[_0x0a9e('0x65')]['id'],_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x38')],_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x66')],_0x273cb5[_0x0a9e('0x63')]['id'],_0x5ba1f9[_0x0a9e('0x54')]?JSON['stringify'](_0x5ba1f9[_0x0a9e('0x54')]):_0x0a9e('0x67'));return respondWithRpcPromise(_0x0a9e('0x68'),'acceptMessage',_0x273cb5);}return null;})[_0x0a9e('0x1d')](function(_0x30944e){var _0x4b341d=_0x0a9e('0x69')+_0x30944e[_0x0a9e('0x26')][_0x0a9e('0x6a')];return db[_0x0a9e('0x6b')][_0x0a9e('0x3f')](_0x4b341d,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]})[_0x0a9e('0x1d')](function(_0x18bf5d){return _0x18bf5d;});})[_0x0a9e('0x1d')](function(_0x23a7d3){if(_0x23a7d3){_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x6c')]=_0x23a7d3[0x0];if(!_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')])return;return db['User'][_0x0a9e('0x55')]({'where':{'id':_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')],'role':'agent'},'attributes':['id',_0x0a9e('0x38'),'fullname',_0x0a9e('0x6d'),_0x0a9e('0x6e')],'raw':!![]});}return null;})['then'](function(_0x2ed01e){if(!_0x2ed01e)return null;_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x5d')]=_0x2ed01e;return _0x273cb5;})[_0x0a9e('0x1d')](function(_0x542ece){if(_0x542ece){if(_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x6f')]){_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x70')]=util['format'](_0x0a9e('0x71'),_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x38')]);_0x273cb5[_0x0a9e('0x26')]['channel']=_0x273cb5[_0x0a9e('0x72')];_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x73')]=_0x0a9e('0x58');return respondWithRpcPromise(_0x0a9e('0x74'),_0x0a9e('0x74'),{'event':_0x0a9e('0x75'),'message':_[_0x0a9e('0x4c')](_0x273cb5[_0x0a9e('0x26')],JSON[_0x0a9e('0x76')](_0x273cb5[_0x0a9e('0x63')][_0x0a9e('0x77')]))},client9002)[_0x0a9e('0x1d')](function(){return _0x273cb5;});}return _0x273cb5;}return null;})[_0x0a9e('0x1d')](respondWithResult(_0x4b3c1a,null))['catch'](handleError(_0x4b3c1a,null));};var interaction_log=require(_0x0a9e('0x57'))(_0x0a9e('0x78'));exports[_0x0a9e('0x33')]=function(_0x563627,_0x3736e0,_0x33dda0){var _0x8cea96={'agent':{},'channel':_0x0a9e('0x79')};if(_0x563627['body']['id']){delete _0x563627['body']['id'];}_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')]=_0x563627['body'][_0x0a9e('0x5c')]||_0x563627['user']['id'];_0x8cea96[_0x0a9e('0x5d')]['id']=_0x563627[_0x0a9e('0x54')]['UserId'];return db[_0x0a9e('0x3b')][_0x0a9e('0x55')]({'where':{'id':_0x563627[_0x0a9e('0x53')]['id'],'UserId':null}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x3736e0,null))[_0x0a9e('0x1d')](function(_0x1f42a0){if(_0x1f42a0){_0x8cea96[_0x0a9e('0x26')]=_0x1f42a0['get']({'plain':!![]});return db[_0x0a9e('0x7a')][_0x0a9e('0x55')]({'where':{'id':_0x1f42a0[_0x0a9e('0x5f')]}});}return null;})[_0x0a9e('0x1d')](handleEntityNotFound(_0x3736e0,null))['then'](function(_0xf51744){if(_0xf51744){_0x8cea96[_0x0a9e('0x63')]=_0xf51744['get']({'plain':!![]});interaction_log[_0x0a9e('0x1e')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x563627[_0x0a9e('0x65')]['id'],_0x563627[_0x0a9e('0x65')][_0x0a9e('0x38')],_0x563627[_0x0a9e('0x65')]['role'],_0x8cea96['interaction']['id'],_0x563627[_0x0a9e('0x54')]?JSON[_0x0a9e('0x23')](_0x563627[_0x0a9e('0x54')]):'null');return respondWithRpcPromise(_0x0a9e('0x7b'),_0x0a9e('0x7c'),_0x8cea96);}return null;})['then'](function(_0x4e46b2){var _0xf0a802='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4e46b2['message']['ContactId'];return db[_0x0a9e('0x6b')][_0x0a9e('0x3f')](_0xf0a802,{'type':db[_0x0a9e('0x7d')][_0x0a9e('0x7e')][_0x0a9e('0x7f')],'raw':!![]})[_0x0a9e('0x1d')](function(_0x5a8854){return _0x5a8854;});})[_0x0a9e('0x1d')](function(_0x5955f1){if(_0x5955f1){_0x8cea96[_0x0a9e('0x26')][_0x0a9e('0x6c')]=_0x5955f1[0x0];if(!_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')])return;return db['User'][_0x0a9e('0x55')]({'where':{'id':_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')],'role':'agent'},'attributes':['id',_0x0a9e('0x38'),_0x0a9e('0x80'),_0x0a9e('0x6d'),_0x0a9e('0x6e')],'raw':!![]});}return null;})[_0x0a9e('0x1d')](function(_0x1910bf){if(!_0x1910bf)return null;_0x8cea96[_0x0a9e('0x26')][_0x0a9e('0x5d')]=_0x1910bf;return _0x8cea96;})['then'](function(_0x2645d6){if(_0x2645d6){_0x2645d6[_0x0a9e('0x26')]['interface']=util[_0x0a9e('0x62')](_0x0a9e('0x71'),_0x563627[_0x0a9e('0x65')]['name']);_0x2645d6[_0x0a9e('0x26')]['channel']=_0x8cea96[_0x0a9e('0x72')];_0x2645d6[_0x0a9e('0x26')][_0x0a9e('0x73')]=_0x0a9e('0x33');respondWithRpcPromise(_0x0a9e('0x74'),_0x0a9e('0x74'),{'event':_0x0a9e('0x81'),'message':_[_0x0a9e('0x4c')](_0x8cea96['message'],JSON[_0x0a9e('0x76')](_0x8cea96[_0x0a9e('0x63')][_0x0a9e('0x77')]))},client9002);return _0x8cea96;}return null;})[_0x0a9e('0x1d')](respondWithResult(_0x3736e0,null))[_0x0a9e('0x28')](handleError(_0x3736e0,null));};
\ No newline at end of file
+var _0x3fc9=['ChatInteractionId','isNil','format','YYYY-MM-DD\x20HH:mm:ss','interaction','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','acceptMessage','sequelize','Sequelize','SELECT','agent','email','internal','manual','interface','channel','EventManager','acceptmessage','parse','formData','role','RejectMessage','rejectMessage','ContactId','contact','User','fullname','event','rejectmessage','eml-format','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','http','client','request','then','info','ChatMessage,\x20%s,\x20%s','debug','ChatMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','status','end','json','offset','limit','undefined','count','set','reject','save','update','destroy','stack','name','index','map','ChatMessage','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','VIRTUAL','filter','includeAll','include','findAll','show','params','length','options','create','body','describe','chat-interactions','accept','chat','read','readAt','UserId','user','find','get','ChatInteraction'];(function(_0x338f2a,_0x2cec43){var _0x427bae=function(_0x2fc62e){while(--_0x2fc62e){_0x338f2a['push'](_0x338f2a['shift']());}};_0x427bae(++_0x2cec43);}(_0x3fc9,0x1b0));var _0x93fc=function(_0xd816e2,_0x5edac2){_0xd816e2=_0xd816e2-0x0;var _0x1f5924=_0x3fc9[_0xd816e2];return _0x1f5924;};'use strict';var emlformat=require(_0x93fc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x93fc('0x1'));var jsonpatch=require(_0x93fc('0x2'));var rp=require(_0x93fc('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x93fc('0x4'));var path=require(_0x93fc('0x5'));var sox=require(_0x93fc('0x6'));var csv=require(_0x93fc('0x7'));var ejs=require(_0x93fc('0x8'));var fs=require('fs');var fs_extra=require(_0x93fc('0x9'));var _=require(_0x93fc('0xa'));var squel=require(_0x93fc('0xb'));var crypto=require(_0x93fc('0xc'));var jsforce=require(_0x93fc('0xd'));var deskjs=require(_0x93fc('0xe'));var toCsv=require('to-csv');var querystring=require(_0x93fc('0xf'));var Papa=require(_0x93fc('0x10'));var Redis=require(_0x93fc('0x11'));var authService=require(_0x93fc('0x12'));var qs=require(_0x93fc('0x13'));var as=require(_0x93fc('0x14'));var hardwareService=require(_0x93fc('0x15'));var logger=require(_0x93fc('0x16'))(_0x93fc('0x17'));var utils=require(_0x93fc('0x18'));var config=require(_0x93fc('0x19'));var licenseUtil=require(_0x93fc('0x1a'));var db=require('../../mysqldb')['db'];config[_0x93fc('0x1b')]=_[_0x93fc('0x1c')](config['redis'],{'host':_0x93fc('0x1d'),'port':0x18eb});var socket=require(_0x93fc('0x1e'))(new Redis(config[_0x93fc('0x1b')]));require('./chatMessage.socket')[_0x93fc('0x1f')](socket);var jayson=require(_0x93fc('0x20'));var client=jayson['client'][_0x93fc('0x21')]({'port':0x232c});var client9002=jayson[_0x93fc('0x22')]['http']({'port':0x232a});function respondWithRpcPromise(_0x14aea2,_0xc5a3a3,_0x5b218d,_0x3a8c87){return new BPromise(function(_0x2b7b40,_0x44864d){var _0x1d8240=_0x3a8c87||client;return _0x1d8240[_0x93fc('0x23')](_0x14aea2,_0x5b218d)[_0x93fc('0x24')](function(_0x20fbc1){logger[_0x93fc('0x25')](_0x93fc('0x26'),_0xc5a3a3,'request\x20sent');logger[_0x93fc('0x27')](_0x93fc('0x28'),_0xc5a3a3,_0x93fc('0x29'),JSON[_0x93fc('0x2a')](_0x20fbc1));if(_0x20fbc1[_0x93fc('0x2b')]){if(_0x20fbc1[_0x93fc('0x2b')]['code']===0x1f4){logger['error'](_0x93fc('0x26'),_0xc5a3a3,_0x20fbc1[_0x93fc('0x2b')][_0x93fc('0x2c')]);return _0x44864d(_0x20fbc1[_0x93fc('0x2b')]['message']);}logger[_0x93fc('0x2b')]('ChatMessage,\x20%s,\x20%s',_0xc5a3a3,_0x20fbc1[_0x93fc('0x2b')]['message']);return _0x2b7b40(_0x20fbc1['error'][_0x93fc('0x2c')]);}else{logger[_0x93fc('0x25')](_0x93fc('0x26'),_0xc5a3a3,_0x93fc('0x29'));_0x2b7b40(_0x20fbc1[_0x93fc('0x2d')][_0x93fc('0x2c')]);}})[_0x93fc('0x2e')](function(_0x471c69){logger[_0x93fc('0x2b')](_0x93fc('0x26'),_0xc5a3a3,_0x471c69);_0x44864d(_0x471c69);});});}function respondWithStatusCode(_0xf995a2,_0x963869){_0x963869=_0x963869||0xcc;return function(_0x2edb77){if(_0x2edb77){return _0xf995a2['sendStatus'](_0x963869);}return _0xf995a2[_0x93fc('0x2f')](_0x963869)[_0x93fc('0x30')]();};}function respondWithResult(_0x40b982,_0x3bf64f){_0x3bf64f=_0x3bf64f||0xc8;return function(_0x4f1735){if(_0x4f1735){return _0x40b982['status'](_0x3bf64f)[_0x93fc('0x31')](_0x4f1735);}};}function respondWithFilteredResult(_0x2f7c94,_0x363b17){return function(_0x272595){if(_0x272595){var _0x479ff8=typeof _0x363b17[_0x93fc('0x32')]==='undefined'&&typeof _0x363b17[_0x93fc('0x33')]===_0x93fc('0x34');var _0x1d39b8=_0x272595[_0x93fc('0x35')];var _0x449b1b=_0x479ff8?0x0:_0x363b17[_0x93fc('0x32')];var _0x4cd0b0=_0x479ff8?_0x272595[_0x93fc('0x35')]:_0x363b17[_0x93fc('0x32')]+_0x363b17[_0x93fc('0x33')];var _0x2722bb;if(_0x4cd0b0>=_0x1d39b8){_0x4cd0b0=_0x1d39b8;_0x2722bb=0xc8;}else{_0x2722bb=0xce;}_0x2f7c94['status'](_0x2722bb);return _0x2f7c94[_0x93fc('0x36')]('Content-Range',_0x449b1b+'-'+_0x4cd0b0+'/'+_0x1d39b8)[_0x93fc('0x31')](_0x272595);}return null;};}function patchUpdates(_0x50d7a4){return function(_0x51f86f){try{jsonpatch['apply'](_0x51f86f,_0x50d7a4,!![]);}catch(_0x590e69){return BPromise[_0x93fc('0x37')](_0x590e69);}return _0x51f86f[_0x93fc('0x38')]();};}function saveUpdates(_0x33830c,_0x2e8f61){return function(_0x501d20){if(_0x501d20){return _0x501d20[_0x93fc('0x39')](_0x33830c)['then'](function(_0x2b7aef){return _0x2b7aef;});}return null;};}function removeEntity(_0x1571f3,_0xe96526){return function(_0x1e6315){if(_0x1e6315){return _0x1e6315[_0x93fc('0x3a')]()[_0x93fc('0x24')](function(){_0x1571f3[_0x93fc('0x2f')](0xcc)[_0x93fc('0x30')]();});}};}function handleEntityNotFound(_0x2ab340,_0xffd3b8){return function(_0x44d519){if(!_0x44d519){_0x2ab340['sendStatus'](0x194);}return _0x44d519;};}function handleError(_0x592711,_0x561ae4){_0x561ae4=_0x561ae4||0x1f4;return function(_0x218230){logger[_0x93fc('0x2b')](_0x218230[_0x93fc('0x3b')]);if(_0x218230[_0x93fc('0x3c')]){delete _0x218230[_0x93fc('0x3c')];}_0x592711[_0x93fc('0x2f')](_0x561ae4)['send'](_0x218230);};}exports[_0x93fc('0x3d')]=function(_0x30dde6,_0x1c2021){var _0x311f1f={},_0x129859={},_0x532ccb={'count':0x0,'rows':[]};var _0x3e1ac6=_[_0x93fc('0x3e')](db[_0x93fc('0x3f')][_0x93fc('0x40')],function(_0x2d23a2){return{'name':_0x2d23a2[_0x93fc('0x41')],'type':_0x2d23a2[_0x93fc('0x42')][_0x93fc('0x43')]};});_0x129859[_0x93fc('0x44')]=_[_0x93fc('0x3e')](_0x3e1ac6,_0x93fc('0x3c'));_0x129859['query']=_[_0x93fc('0x45')](_0x30dde6[_0x93fc('0x46')]);_0x129859['filters']=_[_0x93fc('0x47')](_0x129859['model'],_0x129859[_0x93fc('0x46')]);_0x311f1f[_0x93fc('0x48')]=_[_0x93fc('0x47')](_0x129859['model'],qs['fields'](_0x30dde6[_0x93fc('0x46')][_0x93fc('0x49')]));_0x311f1f[_0x93fc('0x48')]=_0x311f1f[_0x93fc('0x48')]['length']?_0x311f1f[_0x93fc('0x48')]:_0x129859[_0x93fc('0x44')];if(!_0x30dde6['query'][_0x93fc('0x4a')](_0x93fc('0x4b'))){_0x311f1f[_0x93fc('0x33')]=qs[_0x93fc('0x33')](_0x30dde6[_0x93fc('0x46')][_0x93fc('0x33')]);_0x311f1f[_0x93fc('0x32')]=qs[_0x93fc('0x32')](_0x30dde6[_0x93fc('0x46')]['offset']);}_0x311f1f[_0x93fc('0x4c')]=qs[_0x93fc('0x4d')](_0x30dde6[_0x93fc('0x46')][_0x93fc('0x4d')]);_0x311f1f['where']=qs[_0x93fc('0x4e')](_[_0x93fc('0x4f')](_0x30dde6['query'],_0x129859[_0x93fc('0x4e')]),_0x3e1ac6);if(_0x30dde6[_0x93fc('0x46')]['filter']){_0x311f1f[_0x93fc('0x50')]=_[_0x93fc('0x51')](_0x311f1f['where'],{'$or':_[_0x93fc('0x3e')](_0x3e1ac6,function(_0x5cc4fc){if(_0x5cc4fc[_0x93fc('0x42')]!==_0x93fc('0x52')){var _0x3387a5={};_0x3387a5[_0x5cc4fc[_0x93fc('0x3c')]]={'$like':'%'+_0x30dde6[_0x93fc('0x46')][_0x93fc('0x53')]+'%'};return _0x3387a5;}})});}_0x311f1f=_['merge']({},_0x311f1f,_0x30dde6['options']);var _0x3c5413={'where':_0x311f1f[_0x93fc('0x50')]};return db[_0x93fc('0x3f')][_0x93fc('0x35')](_0x3c5413)[_0x93fc('0x24')](function(_0x393781){_0x532ccb[_0x93fc('0x35')]=_0x393781;if(_0x30dde6[_0x93fc('0x46')][_0x93fc('0x54')]){_0x311f1f[_0x93fc('0x55')]=[{'all':!![]}];}return db[_0x93fc('0x3f')][_0x93fc('0x56')](_0x311f1f);})[_0x93fc('0x24')](function(_0x3a8c1d){_0x532ccb['rows']=_0x3a8c1d;return _0x532ccb;})[_0x93fc('0x24')](respondWithFilteredResult(_0x1c2021,_0x311f1f))[_0x93fc('0x2e')](handleError(_0x1c2021,null));};exports[_0x93fc('0x57')]=function(_0x15ccdc,_0x13f370){var _0x24bc2f={'raw':!![],'where':{'id':_0x15ccdc[_0x93fc('0x58')]['id']}},_0x20673c={};_0x20673c[_0x93fc('0x44')]=_['keys'](db['ChatMessage']['rawAttributes']);_0x20673c[_0x93fc('0x46')]=_[_0x93fc('0x45')](_0x15ccdc[_0x93fc('0x46')]);_0x20673c[_0x93fc('0x4e')]=_['intersection'](_0x20673c[_0x93fc('0x44')],_0x20673c[_0x93fc('0x46')]);_0x24bc2f['attributes']=_[_0x93fc('0x47')](_0x20673c[_0x93fc('0x44')],qs[_0x93fc('0x49')](_0x15ccdc[_0x93fc('0x46')][_0x93fc('0x49')]));_0x24bc2f[_0x93fc('0x48')]=_0x24bc2f[_0x93fc('0x48')][_0x93fc('0x59')]?_0x24bc2f['attributes']:_0x20673c[_0x93fc('0x44')];if(_0x15ccdc['query'][_0x93fc('0x54')]){_0x24bc2f[_0x93fc('0x55')]=[{'all':!![]}];}_0x24bc2f=_['merge']({},_0x24bc2f,_0x15ccdc[_0x93fc('0x5a')]);return db[_0x93fc('0x3f')]['find'](_0x24bc2f)[_0x93fc('0x24')](handleEntityNotFound(_0x13f370,null))[_0x93fc('0x24')](respondWithResult(_0x13f370,null))['catch'](handleError(_0x13f370,null));};exports[_0x93fc('0x5b')]=function(_0x38a475,_0x484558){return db['ChatMessage'][_0x93fc('0x5b')](_0x38a475[_0x93fc('0x5c')],{})[_0x93fc('0x24')](respondWithResult(_0x484558,0xc9))[_0x93fc('0x2e')](handleError(_0x484558,null));};exports['update']=function(_0x64cc8a,_0x5d5ef7){if(_0x64cc8a[_0x93fc('0x5c')]['id']){delete _0x64cc8a[_0x93fc('0x5c')]['id'];}return db[_0x93fc('0x3f')]['find']({'where':{'id':_0x64cc8a[_0x93fc('0x58')]['id']}})[_0x93fc('0x24')](handleEntityNotFound(_0x5d5ef7,null))[_0x93fc('0x24')](saveUpdates(_0x64cc8a[_0x93fc('0x5c')],null))[_0x93fc('0x24')](respondWithResult(_0x5d5ef7,null))[_0x93fc('0x2e')](handleError(_0x5d5ef7,null));};exports[_0x93fc('0x3a')]=function(_0xd53620,_0x5296c3){return db[_0x93fc('0x3f')]['find']({'where':{'id':_0xd53620['params']['id']}})['then'](handleEntityNotFound(_0x5296c3,null))[_0x93fc('0x24')](removeEntity(_0x5296c3,null))[_0x93fc('0x2e')](handleError(_0x5296c3,null));};exports[_0x93fc('0x5d')]=function(_0x14a6fe,_0x3ecf04){return db[_0x93fc('0x3f')]['describe']()[_0x93fc('0x24')](respondWithResult(_0x3ecf04,null))['catch'](handleError(_0x3ecf04,null));};var interaction_log=require('../../config/logger')(_0x93fc('0x5e'));exports[_0x93fc('0x5f')]=function(_0x2cd011,_0x410b9f,_0x4c3acc){var _0x1e99e6={'agent':{},'channel':_0x93fc('0x60')};if(_0x2cd011[_0x93fc('0x5c')]['id']){delete _0x2cd011['body']['id'];}_0x2cd011[_0x93fc('0x5c')][_0x93fc('0x61')]=!![];_0x2cd011[_0x93fc('0x5c')][_0x93fc('0x62')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x2cd011[_0x93fc('0x5c')][_0x93fc('0x63')]=_0x2cd011['body']['UserId']||_0x2cd011[_0x93fc('0x64')]['id'];_0x1e99e6['agent']['id']=_0x2cd011[_0x93fc('0x5c')][_0x93fc('0x63')];return db['ChatMessage'][_0x93fc('0x65')]({'where':{'id':_0x2cd011[_0x93fc('0x58')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x410b9f,null))[_0x93fc('0x24')](saveUpdates(_0x2cd011[_0x93fc('0x5c')],null))['then'](function(_0x1e1713){if(_0x1e1713){_0x1e99e6[_0x93fc('0x2c')]=_0x1e1713[_0x93fc('0x66')]({'plain':!![]});return db[_0x93fc('0x67')]['find']({'where':{'id':_0x1e1713[_0x93fc('0x68')]}});}return null;})[_0x93fc('0x24')](handleEntityNotFound(_0x410b9f,null))[_0x93fc('0x24')](function(_0x5c1dac){if(_0x5c1dac){return _0x5c1dac[_0x93fc('0x39')]({'UserId':_0x2cd011[_0x93fc('0x5c')][_0x93fc('0x63')],'read1stAt':_[_0x93fc('0x69')](_0x5c1dac['read1stAt'])?moment()[_0x93fc('0x6a')](_0x93fc('0x6b')):undefined});}return null;})['then'](function(_0x1a28c3){if(_0x1a28c3){_0x1e99e6[_0x93fc('0x6c')]=_0x1a28c3[_0x93fc('0x66')]({'plain':!![]});interaction_log['info'](_0x93fc('0x6d'),_0x2cd011[_0x93fc('0x64')]['id'],_0x2cd011[_0x93fc('0x64')][_0x93fc('0x3c')],_0x2cd011[_0x93fc('0x64')]['role'],_0x1e99e6[_0x93fc('0x6c')]['id'],_0x2cd011['body']?JSON[_0x93fc('0x2a')](_0x2cd011[_0x93fc('0x5c')]):_0x93fc('0x6e'));return respondWithRpcPromise('AcceptMessage',_0x93fc('0x6f'),_0x1e99e6);}return null;})[_0x93fc('0x24')](function(_0xc11933){var _0x4d10bc='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0xc11933[_0x93fc('0x2c')]['ContactId'];return db[_0x93fc('0x70')]['query'](_0x4d10bc,{'type':db[_0x93fc('0x71')]['QueryTypes'][_0x93fc('0x72')],'raw':!![]})[_0x93fc('0x24')](function(_0x42f8ce){return _0x42f8ce;});})['then'](function(_0x11b101){if(_0x11b101){_0x1e99e6[_0x93fc('0x2c')]['contact']=_0x11b101[0x0];if(!_0x2cd011[_0x93fc('0x5c')][_0x93fc('0x63')])return;return db['User']['find']({'where':{'id':_0x2cd011['body'][_0x93fc('0x63')],'role':_0x93fc('0x73')},'attributes':['id',_0x93fc('0x3c'),'fullname',_0x93fc('0x74'),_0x93fc('0x75')],'raw':!![]});}return null;})[_0x93fc('0x24')](function(_0x5abf06){if(!_0x5abf06)return null;_0x1e99e6[_0x93fc('0x2c')]['agent']=_0x5abf06;return _0x1e99e6;})[_0x93fc('0x24')](function(_0x1d7a69){if(_0x1d7a69){if(_0x2cd011[_0x93fc('0x5c')][_0x93fc('0x76')]){_0x1e99e6['message'][_0x93fc('0x77')]=util[_0x93fc('0x6a')]('SIP/%s',_0x2cd011['user'][_0x93fc('0x3c')]);_0x1e99e6[_0x93fc('0x2c')][_0x93fc('0x78')]=_0x1e99e6[_0x93fc('0x78')];_0x1e99e6[_0x93fc('0x2c')]['motionChannel']=_0x1e99e6['channel'];_0x1e99e6['message']['event']=_0x93fc('0x5f');return respondWithRpcPromise(_0x93fc('0x79'),_0x93fc('0x79'),{'event':_0x93fc('0x7a'),'message':_[_0x93fc('0x51')](_0x1e99e6[_0x93fc('0x2c')],JSON[_0x93fc('0x7b')](_0x1e99e6[_0x93fc('0x6c')][_0x93fc('0x7c')]))},client9002)[_0x93fc('0x24')](function(){return _0x1e99e6;});}return _0x1e99e6;}return null;})['then'](respondWithResult(_0x410b9f,null))[_0x93fc('0x2e')](handleError(_0x410b9f,null));};var interaction_log=require(_0x93fc('0x16'))(_0x93fc('0x5e'));exports[_0x93fc('0x37')]=function(_0x16e616,_0x30942f,_0x106cb2){var _0x43149d={'agent':{},'channel':_0x93fc('0x60')};if(_0x16e616[_0x93fc('0x5c')]['id']){delete _0x16e616[_0x93fc('0x5c')]['id'];}_0x16e616[_0x93fc('0x5c')][_0x93fc('0x63')]=_0x16e616[_0x93fc('0x5c')][_0x93fc('0x63')]||_0x16e616[_0x93fc('0x64')]['id'];_0x43149d[_0x93fc('0x73')]['id']=_0x16e616[_0x93fc('0x5c')]['UserId'];return db['ChatMessage'][_0x93fc('0x65')]({'where':{'id':_0x16e616[_0x93fc('0x58')]['id'],'UserId':null}})[_0x93fc('0x24')](handleEntityNotFound(_0x30942f,null))['then'](function(_0xe40b38){if(_0xe40b38){_0x43149d[_0x93fc('0x2c')]=_0xe40b38[_0x93fc('0x66')]({'plain':!![]});return db[_0x93fc('0x67')][_0x93fc('0x65')]({'where':{'id':_0xe40b38[_0x93fc('0x68')]}});}return null;})[_0x93fc('0x24')](handleEntityNotFound(_0x30942f,null))[_0x93fc('0x24')](function(_0x80cbdf){if(_0x80cbdf){_0x43149d['interaction']=_0x80cbdf[_0x93fc('0x66')]({'plain':!![]});interaction_log[_0x93fc('0x25')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x16e616[_0x93fc('0x64')]['id'],_0x16e616[_0x93fc('0x64')][_0x93fc('0x3c')],_0x16e616[_0x93fc('0x64')][_0x93fc('0x7d')],_0x43149d['interaction']['id'],_0x16e616[_0x93fc('0x5c')]?JSON['stringify'](_0x16e616[_0x93fc('0x5c')]):_0x93fc('0x6e'));return respondWithRpcPromise(_0x93fc('0x7e'),_0x93fc('0x7f'),_0x43149d);}return null;})['then'](function(_0x4b3a38){var _0x4143b6='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4b3a38[_0x93fc('0x2c')][_0x93fc('0x80')];return db[_0x93fc('0x70')]['query'](_0x4143b6,{'type':db[_0x93fc('0x71')]['QueryTypes'][_0x93fc('0x72')],'raw':!![]})['then'](function(_0x5cbce5){return _0x5cbce5;});})['then'](function(_0x4219b9){if(_0x4219b9){_0x43149d[_0x93fc('0x2c')][_0x93fc('0x81')]=_0x4219b9[0x0];if(!_0x16e616[_0x93fc('0x5c')][_0x93fc('0x63')])return;return db[_0x93fc('0x82')][_0x93fc('0x65')]({'where':{'id':_0x16e616[_0x93fc('0x5c')][_0x93fc('0x63')],'role':_0x93fc('0x73')},'attributes':['id',_0x93fc('0x3c'),_0x93fc('0x83'),_0x93fc('0x74'),_0x93fc('0x75')],'raw':!![]});}return null;})['then'](function(_0x4cb7a6){if(!_0x4cb7a6)return null;_0x43149d[_0x93fc('0x2c')]['agent']=_0x4cb7a6;return _0x43149d;})[_0x93fc('0x24')](function(_0x34980a){if(_0x34980a){_0x34980a[_0x93fc('0x2c')]['interface']=util[_0x93fc('0x6a')]('SIP/%s',_0x16e616[_0x93fc('0x64')][_0x93fc('0x3c')]);_0x34980a[_0x93fc('0x2c')]['channel']=_0x43149d[_0x93fc('0x78')];_0x34980a[_0x93fc('0x2c')]['motionChannel']=_0x43149d[_0x93fc('0x78')];_0x34980a[_0x93fc('0x2c')][_0x93fc('0x84')]=_0x93fc('0x37');respondWithRpcPromise('EventManager',_0x93fc('0x79'),{'event':_0x93fc('0x85'),'message':_[_0x93fc('0x51')](_0x43149d['message'],JSON[_0x93fc('0x7b')](_0x43149d[_0x93fc('0x6c')][_0x93fc('0x7c')]))},client9002);return _0x43149d;}return null;})[_0x93fc('0x24')](respondWithResult(_0x30942f,null))['catch'](handleError(_0x30942f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd30=['ChatMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x400711,_0x152731){var _0x41f237=function(_0x5091bf){while(--_0x5091bf){_0x400711['push'](_0x400711['shift']());}};_0x41f237(++_0x152731);}(_0xbd30,0x1cc));var _0x0bd3=function(_0x42bdad,_0x12836c){_0x42bdad=_0x42bdad-0x0;var _0x122626=_0xbd30[_0x42bdad];return _0x122626;};'use strict';var EventEmitter=require(_0x0bd3('0x0'));var ChatMessage=require(_0x0bd3('0x1'))['db'][_0x0bd3('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0x0bd3('0x3')](0x0);var events={'afterCreate':_0x0bd3('0x4'),'afterUpdate':_0x0bd3('0x5'),'afterDestroy':_0x0bd3('0x6')};function emitEvent(_0x3698fd){return function(_0x144fda,_0x3263c4,_0x4720eb){ChatMessageEvents['emit'](_0x3698fd+':'+_0x144fda['id'],_0x144fda);ChatMessageEvents[_0x0bd3('0x7')](_0x3698fd,_0x144fda);_0x4720eb(null);};}for(var e in events){if(events[_0x0bd3('0x8')](e)){var event=events[e];ChatMessage[_0x0bd3('0x9')](e,emitEvent(event));}}module[_0x0bd3('0xa')]=ChatMessageEvents;
\ No newline at end of file
+var _0xd5b9=['ChatMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x377237,_0xb737bc){var _0x4eff1c=function(_0x1c022f){while(--_0x1c022f){_0x377237['push'](_0x377237['shift']());}};_0x4eff1c(++_0xb737bc);}(_0xd5b9,0xda));var _0x9d5b=function(_0x41cd0c,_0x59a279){_0x41cd0c=_0x41cd0c-0x0;var _0x598a9c=_0xd5b9[_0x41cd0c];return _0x598a9c;};'use strict';var EventEmitter=require(_0x9d5b('0x0'));var ChatMessage=require(_0x9d5b('0x1'))['db'][_0x9d5b('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0x9d5b('0x3')](0x0);var events={'afterCreate':_0x9d5b('0x4'),'afterUpdate':_0x9d5b('0x5'),'afterDestroy':_0x9d5b('0x6')};function emitEvent(_0x42959e){return function(_0x2069d0,_0x496c27,_0x1e5b58){ChatMessageEvents[_0x9d5b('0x7')](_0x42959e+':'+_0x2069d0['id'],_0x2069d0);ChatMessageEvents[_0x9d5b('0x7')](_0x42959e,_0x2069d0);_0x1e5b58(null);};}for(var e in events){if(events[_0x9d5b('0x8')](e)){var event=events[e];ChatMessage[_0x9d5b('0x9')](e,emitEvent(event));}}module[_0x9d5b('0xa')]=ChatMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32c3=['isNil','UserId','ChatInteraction','findOne','ChatInteractionId','then','update','createdAt','catch','error','utf8mb4_unicode_ci','lodash','api','moment','bluebird','request-promise','path','rimraf','./chatMessage.attributes','exports','define','ChatMessage','chat_messages','fti_chat_messages','FULLTEXT','models','direction','toLowerCase','out','secret'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x32c3,0xfb));var _0x332c=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x32c3[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x332c('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x332c('0x1'));var moment=require(_0x332c('0x2'));var BPromise=require(_0x332c('0x3'));var rp=require(_0x332c('0x4'));var fs=require('fs');var path=require(_0x332c('0x5'));var rimraf=require(_0x332c('0x6'));var config=require('../../config/environment');var attributes=require(_0x332c('0x7'));module[_0x332c('0x8')]=function(_0x4eb868,_0x536898){return _0x4eb868[_0x332c('0x9')](_0x332c('0xa'),attributes,{'tableName':_0x332c('0xb'),'paranoid':![],'indexes':[{'name':_0x332c('0xc'),'fields':['body'],'type':_0x332c('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3501e,_0x50f76e,_0x5b77ec){var _0x155686=_0x4eb868[_0x332c('0xe')];var _0xeec242=_0x3501e['get']({'plain':!![]});if(_0xeec242[_0x332c('0xf')][_0x332c('0x10')]()==='in'||_0xeec242[_0x332c('0xf')][_0x332c('0x10')]()===_0x332c('0x11')&&!_0xeec242[_0x332c('0x12')]&&!_[_0x332c('0x13')](_0xeec242[_0x332c('0x14')])){_0x155686[_0x332c('0x15')][_0x332c('0x16')]({'where':{'id':_0xeec242[_0x332c('0x17')]}})[_0x332c('0x18')](function(_0x3ab4fd){if(_0x3ab4fd){_0x3ab4fd[_0x332c('0x19')]({'lastMsgAt':_0xeec242[_0x332c('0x1a')],'lastMsgDirection':_0xeec242[_0x332c('0xf')]['toLowerCase']()});}})[_0x332c('0x1b')](function(_0x45ac94){console[_0x332c('0x1c')](_0x45ac94);});}_0x5b77ec();}},'charset':'utf8mb4','collate':_0x332c('0x1d')});};
\ No newline at end of file
+var _0x832e=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','ChatMessage','chat_messages','body','models','get','direction','toLowerCase','out','isNil','UserId','ChatInteraction','then','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger'];(function(_0x5add09,_0x189557){var _0x509669=function(_0x414fb2){while(--_0x414fb2){_0x5add09['push'](_0x5add09['shift']());}};_0x509669(++_0x189557);}(_0x832e,0x13c));var _0xe832=function(_0x2c39d5,_0x1392a4){_0x2c39d5=_0x2c39d5-0x0;var _0x565490=_0x832e[_0x2c39d5];return _0x565490;};'use strict';var _=require(_0xe832('0x0'));var util=require(_0xe832('0x1'));var logger=require(_0xe832('0x2'))(_0xe832('0x3'));var moment=require(_0xe832('0x4'));var BPromise=require(_0xe832('0x5'));var rp=require(_0xe832('0x6'));var fs=require('fs');var path=require(_0xe832('0x7'));var rimraf=require(_0xe832('0x8'));var config=require(_0xe832('0x9'));var attributes=require('./chatMessage.attributes');module[_0xe832('0xa')]=function(_0x3587e9,_0x5d2b24){return _0x3587e9[_0xe832('0xb')](_0xe832('0xc'),attributes,{'tableName':_0xe832('0xd'),'paranoid':![],'indexes':[{'name':'fti_chat_messages','fields':[_0xe832('0xe')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x18f9e8,_0x41f08d,_0x48007e){var _0x249205=_0x3587e9[_0xe832('0xf')];var _0x48b778=_0x18f9e8[_0xe832('0x10')]({'plain':!![]});if(_0x48b778[_0xe832('0x11')][_0xe832('0x12')]()==='in'||_0x48b778[_0xe832('0x11')][_0xe832('0x12')]()===_0xe832('0x13')&&!_0x48b778['secret']&&!_[_0xe832('0x14')](_0x48b778[_0xe832('0x15')])){_0x249205[_0xe832('0x16')]['findOne']({'where':{'id':_0x48b778['ChatInteractionId']}})[_0xe832('0x17')](function(_0x104bfa){if(_0x104bfa){_0x104bfa['update']({'lastMsgAt':_0x48b778[_0xe832('0x18')],'lastMsgDirection':_0x48b778[_0xe832('0x11')][_0xe832('0x12')]()});}})[_0xe832('0x19')](function(_0x26147a){console[_0xe832('0x1a')](_0x26147a);});}_0x48007e();}},'charset':_0xe832('0x1b'),'collate':_0xe832('0x1c')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae87=['socket.io-emitter','register','request','then','ChatMessage,\x20%s,\x20%s','request\x20sent','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','CreateChatMessage','ChatMessage','create','body','options','debug','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost'];(function(_0x13ea00,_0x12f610){var _0x1f7347=function(_0x34ae63){while(--_0x34ae63){_0x13ea00['push'](_0x13ea00['shift']());}};_0x1f7347(++_0x12f610);}(_0xae87,0x194));var _0x7ae8=function(_0x16051a,_0x5e4326){_0x16051a=_0x16051a-0x0;var _0x35d20d=_0xae87[_0x16051a];return _0x35d20d;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x7ae8('0x0'));var BPromise=require(_0x7ae8('0x1'));var rs=require(_0x7ae8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x7ae8('0x3'));var logger=require(_0x7ae8('0x4'))(_0x7ae8('0x5'));var config=require(_0x7ae8('0x6'));var jayson=require(_0x7ae8('0x7'));var client=jayson[_0x7ae8('0x8')][_0x7ae8('0x9')]({'port':0x232a});config['redis']=_['defaults'](config[_0x7ae8('0xa')],{'host':_0x7ae8('0xb'),'port':0x18eb});var socket=require(_0x7ae8('0xc'))(new Redis(config[_0x7ae8('0xa')]));require('./chatMessage.socket')[_0x7ae8('0xd')](socket);function respondWithRpcPromise(_0x50c0b6,_0x48913a,_0x4c7ee0){return new BPromise(function(_0x52b406,_0x515c7e){return client[_0x7ae8('0xe')](_0x50c0b6,_0x4c7ee0)[_0x7ae8('0xf')](function(_0x2011d6){logger['info'](_0x7ae8('0x10'),_0x48913a,_0x7ae8('0x11'));logger['debug'](_0x7ae8('0x12'),_0x48913a,_0x7ae8('0x11'),JSON[_0x7ae8('0x13')](_0x2011d6));if(_0x2011d6[_0x7ae8('0x14')]){if(_0x2011d6[_0x7ae8('0x14')][_0x7ae8('0x15')]===0x1f4){logger[_0x7ae8('0x14')](_0x7ae8('0x10'),_0x48913a,_0x2011d6['error'][_0x7ae8('0x16')]);return _0x515c7e(_0x2011d6[_0x7ae8('0x14')]['message']);}logger[_0x7ae8('0x14')]('ChatMessage,\x20%s,\x20%s',_0x48913a,_0x2011d6['error'][_0x7ae8('0x16')]);return _0x52b406(_0x2011d6[_0x7ae8('0x14')]['message']);}else{logger[_0x7ae8('0x17')](_0x7ae8('0x10'),_0x48913a,'request\x20sent');_0x52b406(_0x2011d6[_0x7ae8('0x18')][_0x7ae8('0x16')]);}})[_0x7ae8('0x19')](function(_0x52acc7){logger[_0x7ae8('0x14')](_0x7ae8('0x10'),_0x48913a,_0x52acc7);_0x515c7e(_0x52acc7);});});}exports[_0x7ae8('0x1a')]=function(_0x4e46e4){var _0x22912d=this;return new Promise(function(_0x17a0bc,_0xbe25b4){return db[_0x7ae8('0x1b')][_0x7ae8('0x1c')](_0x4e46e4[_0x7ae8('0x1d')],{'raw':_0x4e46e4['options']?_0x4e46e4[_0x7ae8('0x1e')]['raw']===undefined?!![]:![]:!![]})[_0x7ae8('0xf')](function(_0x47b4ff){logger[_0x7ae8('0x17')](_0x7ae8('0x1a'),_0x4e46e4);logger[_0x7ae8('0x1f')]('CreateChatMessage',_0x4e46e4,JSON[_0x7ae8('0x13')](_0x47b4ff));_0x17a0bc(_0x47b4ff);})[_0x7ae8('0x19')](function(_0x2038f2){logger[_0x7ae8('0x14')]('CreateChatMessage',_0x2038f2[_0x7ae8('0x16')],_0x4e46e4);_0xbe25b4(_0x22912d[_0x7ae8('0x14')](0x1f4,_0x2038f2[_0x7ae8('0x16')]));});});};
\ No newline at end of file
+var _0x0ab2=['error','code','message','result','catch','CreateChatMessage','ChatMessage','create','body','options','raw','stringify','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','redis','defaults','localhost','./chatMessage.socket','register','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s'];(function(_0x56117b,_0x22c9a9){var _0x4f1cee=function(_0x568cb8){while(--_0x568cb8){_0x56117b['push'](_0x56117b['shift']());}};_0x4f1cee(++_0x22c9a9);}(_0x0ab2,0xfa));var _0x20ab=function(_0x181b84,_0x42f8f1){_0x181b84=_0x181b84-0x0;var _0x3f773d=_0x0ab2[_0x181b84];return _0x3f773d;};'use strict';var _=require('lodash');var util=require(_0x20ab('0x0'));var moment=require(_0x20ab('0x1'));var BPromise=require(_0x20ab('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x20ab('0x3'));var db=require(_0x20ab('0x4'))['db'];var utils=require(_0x20ab('0x5'));var logger=require('../../config/logger')(_0x20ab('0x6'));var config=require('../../config/environment');var jayson=require(_0x20ab('0x7'));var client=jayson[_0x20ab('0x8')][_0x20ab('0x9')]({'port':0x232a});config[_0x20ab('0xa')]=_[_0x20ab('0xb')](config[_0x20ab('0xa')],{'host':_0x20ab('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x20ab('0xa')]));require(_0x20ab('0xd'))[_0x20ab('0xe')](socket);function respondWithRpcPromise(_0x9dcf25,_0x2585bf,_0x2442ca){return new BPromise(function(_0x4012d4,_0x32418b){return client[_0x20ab('0xf')](_0x9dcf25,_0x2442ca)[_0x20ab('0x10')](function(_0x2096ad){logger[_0x20ab('0x11')](_0x20ab('0x12'),_0x2585bf,_0x20ab('0x13'));logger[_0x20ab('0x14')](_0x20ab('0x15'),_0x2585bf,_0x20ab('0x13'),JSON['stringify'](_0x2096ad));if(_0x2096ad['error']){if(_0x2096ad[_0x20ab('0x16')][_0x20ab('0x17')]===0x1f4){logger[_0x20ab('0x16')](_0x20ab('0x12'),_0x2585bf,_0x2096ad[_0x20ab('0x16')][_0x20ab('0x18')]);return _0x32418b(_0x2096ad[_0x20ab('0x16')]['message']);}logger[_0x20ab('0x16')](_0x20ab('0x12'),_0x2585bf,_0x2096ad[_0x20ab('0x16')]['message']);return _0x4012d4(_0x2096ad['error']['message']);}else{logger[_0x20ab('0x11')](_0x20ab('0x12'),_0x2585bf,_0x20ab('0x13'));_0x4012d4(_0x2096ad[_0x20ab('0x19')][_0x20ab('0x18')]);}})[_0x20ab('0x1a')](function(_0x23e76a){logger['error'](_0x20ab('0x12'),_0x2585bf,_0x23e76a);_0x32418b(_0x23e76a);});});}exports[_0x20ab('0x1b')]=function(_0x3c7b9b){var _0x1fe175=this;return new Promise(function(_0x3930ec,_0x46b86e){return db[_0x20ab('0x1c')][_0x20ab('0x1d')](_0x3c7b9b[_0x20ab('0x1e')],{'raw':_0x3c7b9b['options']?_0x3c7b9b[_0x20ab('0x1f')][_0x20ab('0x20')]===undefined?!![]:![]:!![]})[_0x20ab('0x10')](function(_0x5883b3){logger[_0x20ab('0x11')](_0x20ab('0x1b'),_0x3c7b9b);logger['debug'](_0x20ab('0x1b'),_0x3c7b9b,JSON[_0x20ab('0x21')](_0x5883b3));_0x3930ec(_0x5883b3);})[_0x20ab('0x1a')](function(_0x18063b){logger[_0x20ab('0x16')]('CreateChatMessage',_0x18063b[_0x20ab('0x18')],_0x3c7b9b);_0x46b86e(_0x1fe175['error'](0x1f4,_0x18063b[_0x20ab('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37c5=['remove','update','emit','removeListener','chatMessage:','save'];(function(_0x242290,_0x53782e){var _0x5a530f=function(_0xa05208){while(--_0xa05208){_0x242290['push'](_0x242290['shift']());}};_0x5a530f(++_0x53782e);}(_0x37c5,0xa7));var _0x537c=function(_0x23f8e8,_0x2de8a5){_0x23f8e8=_0x23f8e8-0x0;var _0x195a5e=_0x37c5[_0x23f8e8];return _0x195a5e;};'use strict';var ChatMessageEvents=require('./chatMessage.events');var events=[_0x537c('0x0'),_0x537c('0x1'),_0x537c('0x2')];function createListener(_0x11f076,_0x1c5b5f){return function(_0x183b59){_0x1c5b5f[_0x537c('0x3')](_0x11f076,_0x183b59);};}function removeListener(_0x42bd15,_0x2c0854){return function(){ChatMessageEvents[_0x537c('0x4')](_0x42bd15,_0x2c0854);};}exports['register']=function(_0x42c86a){for(var _0x1156f4=0x0,_0x336920=events['length'];_0x1156f4<_0x336920;_0x1156f4++){var _0x36bf4a=events[_0x1156f4];var _0x67f986=createListener(_0x537c('0x5')+_0x36bf4a,_0x42c86a);ChatMessageEvents['on'](_0x36bf4a,_0x67f986);}};
\ No newline at end of file
+var _0x37a7=['chatMessage:','./chatMessage.events','save','removeListener','register'];(function(_0x4c912e,_0x27299d){var _0x2fa424=function(_0x4b0cfb){while(--_0x4b0cfb){_0x4c912e['push'](_0x4c912e['shift']());}};_0x2fa424(++_0x27299d);}(_0x37a7,0x6f));var _0x737a=function(_0x20993e,_0x110617){_0x20993e=_0x20993e-0x0;var _0x3f5292=_0x37a7[_0x20993e];return _0x3f5292;};'use strict';var ChatMessageEvents=require(_0x737a('0x0'));var events=[_0x737a('0x1'),'remove','update'];function createListener(_0x5a259b,_0x2d4b54){return function(_0xc5eaef){_0x2d4b54['emit'](_0x5a259b,_0xc5eaef);};}function removeListener(_0x524516,_0x4af128){return function(){ChatMessageEvents[_0x737a('0x2')](_0x524516,_0x4af128);};}exports[_0x737a('0x3')]=function(_0x7f4eed){for(var _0x11109c=0x0,_0x2f6800=events['length'];_0x11109c<_0x2f6800;_0x11109c++){var _0x244850=events[_0x11109c];var _0x249898=createListener(_0x737a('0x4')+_0x244850,_0x7f4eed);ChatMessageEvents['on'](_0x244850,_0x249898);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1dd9=['reject','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','./chatMessage.controller','index','/describe','isAuthenticated','describe','get','/:id','show','tracked','chat','chatmessage:create','create','put','update','/:id/accept'];(function(_0x128456,_0x46d3de){var _0x3d572f=function(_0x5c0f1d){while(--_0x5c0f1d){_0x128456['push'](_0x128456['shift']());}};_0x3d572f(++_0x46d3de);}(_0x1dd9,0x9a));var _0x91dd=function(_0x2085ce,_0x532817){_0x2085ce=_0x2085ce-0x0;var _0x24c343=_0x1dd9[_0x2085ce];return _0x24c343;};'use strict';var multer=require(_0x91dd('0x0'));var util=require(_0x91dd('0x1'));var path=require('path');var timeout=require(_0x91dd('0x2'));var express=require(_0x91dd('0x3'));var router=express[_0x91dd('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x91dd('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x91dd('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x91dd('0x7')]);router['get'](_0x91dd('0x8'),auth[_0x91dd('0x9')](),controller[_0x91dd('0xa')]);router[_0x91dd('0xb')](_0x91dd('0xc'),auth['isAuthenticated'](),controller[_0x91dd('0xd')]);router['post']('/',auth[_0x91dd('0x9')](),interaction[_0x91dd('0xe')](_0x91dd('0xf'),_0x91dd('0x10')),controller[_0x91dd('0x11')]);router[_0x91dd('0x12')](_0x91dd('0xc'),controller[_0x91dd('0x13')]);router[_0x91dd('0x12')](_0x91dd('0x14'),auth['isAuthenticated'](),controller['accept']);router[_0x91dd('0x12')]('/:id/reject',auth[_0x91dd('0x9')](),controller[_0x91dd('0x15')]);router[_0x91dd('0x16')]('/:id',auth[_0x91dd('0x9')](),controller[_0x91dd('0x17')]);module[_0x91dd('0x18')]=router;
\ No newline at end of file
+var _0x4fa8=['../../components/interaction/service','../../config/environment','./chatMessage.controller','get','index','describe','/:id','isAuthenticated','show','tracked','chat','create','put','/:id/accept','accept','/:id/reject','reject','delete','exports','multer','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x31e29a,_0x349c9b){var _0x32d892=function(_0x41cc86){while(--_0x41cc86){_0x31e29a['push'](_0x31e29a['shift']());}};_0x32d892(++_0x349c9b);}(_0x4fa8,0xa3));var _0x84fa=function(_0x5d3882,_0x528ff0){_0x5d3882=_0x5d3882-0x0;var _0x20b576=_0x4fa8[_0x5d3882];return _0x20b576;};'use strict';var multer=require(_0x84fa('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x84fa('0x1'));var express=require(_0x84fa('0x2'));var router=express['Router']();var fs_extra=require(_0x84fa('0x3'));var auth=require(_0x84fa('0x4'));var interaction=require(_0x84fa('0x5'));var config=require(_0x84fa('0x6'));var controller=require(_0x84fa('0x7'));router[_0x84fa('0x8')]('/',auth['isAuthenticated'](),controller[_0x84fa('0x9')]);router[_0x84fa('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x84fa('0xa')]);router['get'](_0x84fa('0xb'),auth[_0x84fa('0xc')](),controller[_0x84fa('0xd')]);router['post']('/',auth['isAuthenticated'](),interaction[_0x84fa('0xe')](_0x84fa('0xf'),'chatmessage:create'),controller[_0x84fa('0x10')]);router[_0x84fa('0x11')](_0x84fa('0xb'),controller['update']);router[_0x84fa('0x11')](_0x84fa('0x12'),auth[_0x84fa('0xc')](),controller[_0x84fa('0x13')]);router[_0x84fa('0x11')](_0x84fa('0x14'),auth[_0x84fa('0xc')](),controller[_0x84fa('0x15')]);router[_0x84fa('0x16')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x84fa('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda53=['medium','sequelize','exports'];(function(_0x50f025,_0x4f2721){var _0x1c1d40=function(_0x16336c){while(--_0x16336c){_0x50f025['push'](_0x50f025['shift']());}};_0x1c1d40(++_0x4f2721);}(_0xda53,0x79));var _0x3da5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xda53[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x3da5('0x0'));module[_0x3da5('0x1')]={'body':{'type':Sequelize['TEXT'](_0x3da5('0x2')),'allowNull':![]}};
\ No newline at end of file
+var _0x4f4e=['sequelize','TEXT'];(function(_0x5ce487,_0x555c4f){var _0x5e289b=function(_0x15ff89){while(--_0x15ff89){_0x5ce487['push'](_0x5ce487['shift']());}};_0x5e289b(++_0x555c4f);}(_0x4f4e,0x142));var _0xe4f4=function(_0x16938f,_0x35e57f){_0x16938f=_0x16938f-0x0;var _0x5c66e9=_0x4f4e[_0x16938f];return _0x5c66e9;};'use strict';var Sequelize=require(_0xe4f4('0x0'));module['exports']={'body':{'type':Sequelize[_0xe4f4('0x1')]('medium'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['filter','VIRTUAL','includeAll','include','findAll','rows','show','params','length','merge','options','find','catch','body','Attachment','join','server','attachments','offline-chat','basename','remove','describe','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','ChatOfflineMessage','fieldName','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7a54,0x106));var _0x47a5=function(_0x555264,_0x521c61){_0x555264=_0x555264-0x0;var _0x4f426c=_0x7a54[_0x555264];return _0x4f426c;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x29')]=function(_0x136b14,_0x16631f){var _0x361bfa={},_0x1127f8={},_0x11a4fa={'count':0x0,'rows':[]};var _0x3ad507=_['map'](db[_0x47a5('0x2a')]['rawAttributes'],function(_0x2ef875){return{'name':_0x2ef875[_0x47a5('0x2b')],'type':_0x2ef875[_0x47a5('0x2c')]['key']};});_0x1127f8[_0x47a5('0x2d')]=_[_0x47a5('0x2e')](_0x3ad507,_0x47a5('0x27'));_0x1127f8[_0x47a5('0x2f')]=_['keys'](_0x136b14['query']);_0x1127f8[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x1127f8['model'],_0x1127f8['query']);_0x361bfa[_0x47a5('0x32')]=_[_0x47a5('0x31')](_0x1127f8['model'],qs[_0x47a5('0x33')](_0x136b14['query'][_0x47a5('0x33')]));_0x361bfa[_0x47a5('0x32')]=_0x361bfa['attributes']['length']?_0x361bfa[_0x47a5('0x32')]:_0x1127f8['model'];if(!_0x136b14[_0x47a5('0x2f')][_0x47a5('0x34')](_0x47a5('0x35'))){_0x361bfa['limit']=qs[_0x47a5('0x1d')](_0x136b14['query']['limit']);_0x361bfa[_0x47a5('0x1a')]=qs['offset'](_0x136b14[_0x47a5('0x2f')]['offset']);}_0x361bfa[_0x47a5('0x36')]=qs[_0x47a5('0x37')](_0x136b14[_0x47a5('0x2f')][_0x47a5('0x37')]);_0x361bfa[_0x47a5('0x38')]=qs[_0x47a5('0x30')](_[_0x47a5('0x39')](_0x136b14[_0x47a5('0x2f')],_0x1127f8[_0x47a5('0x30')]),_0x3ad507);if(_0x136b14['query'][_0x47a5('0x3a')]){_0x361bfa[_0x47a5('0x38')]=_['merge'](_0x361bfa[_0x47a5('0x38')],{'$or':_[_0x47a5('0x2e')](_0x3ad507,function(_0x1d4348){if(_0x1d4348['type']!==_0x47a5('0x3b')){var _0x10f660={};_0x10f660[_0x1d4348['name']]={'$like':'%'+_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3a')]+'%'};return _0x10f660;}})});}_0x361bfa=_['merge']({},_0x361bfa,_0x136b14['options']);var _0x5ebd8c={'where':_0x361bfa[_0x47a5('0x38')]};return db['ChatOfflineMessage'][_0x47a5('0x1c')](_0x5ebd8c)[_0x47a5('0x23')](function(_0x301a85){_0x11a4fa[_0x47a5('0x1c')]=_0x301a85;if(_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x361bfa[_0x47a5('0x3d')]=[{'all':!![]}];}return db[_0x47a5('0x2a')][_0x47a5('0x3e')](_0x361bfa);})[_0x47a5('0x23')](function(_0x280500){_0x11a4fa[_0x47a5('0x3f')]=_0x280500;return _0x11a4fa;})[_0x47a5('0x23')](respondWithFilteredResult(_0x16631f,_0x361bfa))['catch'](handleError(_0x16631f,null));};exports[_0x47a5('0x40')]=function(_0x1c36fa,_0x331474){var _0x23bd8d={'raw':!![],'where':{'id':_0x1c36fa[_0x47a5('0x41')]['id']}},_0x586f4f={};_0x586f4f['model']=_['keys'](db['ChatOfflineMessage']['rawAttributes']);_0x586f4f[_0x47a5('0x2f')]=_['keys'](_0x1c36fa[_0x47a5('0x2f')]);_0x586f4f[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x586f4f['model'],_0x586f4f[_0x47a5('0x2f')]);_0x23bd8d[_0x47a5('0x32')]=_['intersection'](_0x586f4f['model'],qs[_0x47a5('0x33')](_0x1c36fa['query'][_0x47a5('0x33')]));_0x23bd8d[_0x47a5('0x32')]=_0x23bd8d[_0x47a5('0x32')][_0x47a5('0x42')]?_0x23bd8d[_0x47a5('0x32')]:_0x586f4f[_0x47a5('0x2d')];if(_0x1c36fa[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x23bd8d[_0x47a5('0x3d')]=[{'all':!![]}];}_0x23bd8d=_[_0x47a5('0x43')]({},_0x23bd8d,_0x1c36fa[_0x47a5('0x44')]);return db[_0x47a5('0x2a')][_0x47a5('0x45')](_0x23bd8d)[_0x47a5('0x23')](handleEntityNotFound(_0x331474,null))[_0x47a5('0x23')](respondWithResult(_0x331474,null))[_0x47a5('0x46')](handleError(_0x331474,null));};exports['create']=function(_0x2d38de,_0x23bb04){return db['ChatOfflineMessage']['create'](_0x2d38de[_0x47a5('0x47')],{})['then'](respondWithResult(_0x23bb04,0xc9))[_0x47a5('0x46')](handleError(_0x23bb04,null));};exports[_0x47a5('0x22')]=function(_0x54c35f,_0x4f62d3){if(_0x54c35f[_0x47a5('0x47')]['id']){delete _0x54c35f['body']['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x54c35f[_0x47a5('0x41')]['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x4f62d3,null))[_0x47a5('0x23')](saveUpdates(_0x54c35f[_0x47a5('0x47')],null))[_0x47a5('0x23')](respondWithResult(_0x4f62d3,null))['catch'](handleError(_0x4f62d3,null));};exports['destroy']=function(_0x2dd1db,_0x411230){return db[_0x47a5('0x48')][_0x47a5('0x3e')]({'where':{'ChatOfflineMessageId':_0x2dd1db[_0x47a5('0x41')]['id']},'raw':!![]})[_0x47a5('0x23')](function(_0x249de5){_0x249de5['forEach'](function(_0x45cca5){var _0x1c9a62=path[_0x47a5('0x49')](config['root'],_0x47a5('0x4a'),'files',_0x47a5('0x4b'),_0x47a5('0x4c'),_0x45cca5[_0x47a5('0x4d')]);var _0xf03bd5=fs['existsSync'](_0x1c9a62);if(_0xf03bd5)fs_extra[_0x47a5('0x4e')](_0x1c9a62);});})[_0x47a5('0x23')](function(){return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x2dd1db[_0x47a5('0x41')]['id']},'individualHooks':!![]});})[_0x47a5('0x23')](handleEntityNotFound(_0x411230,null))[_0x47a5('0x23')](removeEntity(_0x411230,null))['catch'](handleError(_0x411230,null));};exports[_0x47a5('0x4f')]=function(_0x43721b,_0x187d7e){return db[_0x47a5('0x2a')][_0x47a5('0x4f')]()[_0x47a5('0x23')](respondWithResult(_0x187d7e,null))['catch'](handleError(_0x187d7e,null));};
\ No newline at end of file
+var _0x9957=['sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','index','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','ChatOfflineMessage','findAll','rows','show','rawAttributes','includeAll','include','find','create','catch','body','params','Attachment','forEach','join','root','server','files','attachments','basename','existsSync','remove','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb'];(function(_0x56cdd4,_0x4b1455){var _0x110634=function(_0x40c0de){while(--_0x40c0de){_0x56cdd4['push'](_0x56cdd4['shift']());}};_0x110634(++_0x4b1455);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require(_0x7995('0x0'));var rimraf=require(_0x7995('0x1'));var zipdir=require(_0x7995('0x2'));var jsonpatch=require(_0x7995('0x3'));var rp=require('request-promise');var moment=require(_0x7995('0x4'));var BPromise=require(_0x7995('0x5'));var Mustache=require(_0x7995('0x6'));var util=require(_0x7995('0x7'));var path=require('path');var sox=require(_0x7995('0x8'));var csv=require(_0x7995('0x9'));var ejs=require(_0x7995('0xa'));var fs=require('fs');var fs_extra=require(_0x7995('0xb'));var _=require(_0x7995('0xc'));var squel=require(_0x7995('0xd'));var crypto=require('crypto');var jsforce=require(_0x7995('0xe'));var deskjs=require(_0x7995('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7995('0x10'));var Papa=require(_0x7995('0x11'));var Redis=require(_0x7995('0x12'));var authService=require(_0x7995('0x13'));var qs=require(_0x7995('0x14'));var as=require(_0x7995('0x15'));var hardwareService=require(_0x7995('0x16'));var logger=require('../../config/logger')(_0x7995('0x17'));var utils=require(_0x7995('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7995('0x19'));var db=require(_0x7995('0x1a'))['db'];function respondWithStatusCode(_0x19a27e,_0x385f00){_0x385f00=_0x385f00||0xcc;return function(_0x281576){if(_0x281576){return _0x19a27e[_0x7995('0x1b')](_0x385f00);}return _0x19a27e[_0x7995('0x1c')](_0x385f00)['end']();};}function respondWithResult(_0x58f5ad,_0x2b4e94){_0x2b4e94=_0x2b4e94||0xc8;return function(_0x2233dd){if(_0x2233dd){return _0x58f5ad[_0x7995('0x1c')](_0x2b4e94)[_0x7995('0x1d')](_0x2233dd);}};}function respondWithFilteredResult(_0x3f1d3e,_0x1a5310){return function(_0x2202ce){if(_0x2202ce){var _0x41cbf0=typeof _0x1a5310['offset']===_0x7995('0x1e')&&typeof _0x1a5310['limit']===_0x7995('0x1e');var _0x37f297=_0x2202ce[_0x7995('0x1f')];var _0x291317=_0x41cbf0?0x0:_0x1a5310[_0x7995('0x20')];var _0x37a7d4=_0x41cbf0?_0x2202ce['count']:_0x1a5310['offset']+_0x1a5310[_0x7995('0x21')];var _0x5e6f90;if(_0x37a7d4>=_0x37f297){_0x37a7d4=_0x37f297;_0x5e6f90=0xc8;}else{_0x5e6f90=0xce;}_0x3f1d3e['status'](_0x5e6f90);return _0x3f1d3e[_0x7995('0x22')](_0x7995('0x23'),_0x291317+'-'+_0x37a7d4+'/'+_0x37f297)['json'](_0x2202ce);}return null;};}function patchUpdates(_0x3a9b54){return function(_0x51f276){try{jsonpatch['apply'](_0x51f276,_0x3a9b54,!![]);}catch(_0x3e4c54){return BPromise[_0x7995('0x24')](_0x3e4c54);}return _0x51f276[_0x7995('0x25')]();};}function saveUpdates(_0x1a8568,_0x460924){return function(_0x1c278a){if(_0x1c278a){return _0x1c278a['update'](_0x1a8568)[_0x7995('0x26')](function(_0x46ee4b){return _0x46ee4b;});}return null;};}function removeEntity(_0x204507,_0x285437){return function(_0x563799){if(_0x563799){return _0x563799[_0x7995('0x27')]()[_0x7995('0x26')](function(){_0x204507[_0x7995('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39df42,_0x34e70c){return function(_0x401dc3){if(!_0x401dc3){_0x39df42[_0x7995('0x1b')](0x194);}return _0x401dc3;};}function handleError(_0x3a3fcf,_0x2a307e){_0x2a307e=_0x2a307e||0x1f4;return function(_0x56691a){logger[_0x7995('0x28')](_0x56691a['stack']);if(_0x56691a[_0x7995('0x29')]){delete _0x56691a[_0x7995('0x29')];}_0x3a3fcf[_0x7995('0x1c')](_0x2a307e)[_0x7995('0x2a')](_0x56691a);};}exports[_0x7995('0x2b')]=function(_0x4b6f99,_0x9b2a15){var _0x514445={},_0x456a28={},_0x3250e0={'count':0x0,'rows':[]};var _0x4253e5=_['map'](db['ChatOfflineMessage']['rawAttributes'],function(_0x3573be){return{'name':_0x3573be[_0x7995('0x2c')],'type':_0x3573be[_0x7995('0x2d')][_0x7995('0x2e')]};});_0x456a28[_0x7995('0x2f')]=_[_0x7995('0x30')](_0x4253e5,'name');_0x456a28['query']=_[_0x7995('0x31')](_0x4b6f99['query']);_0x456a28[_0x7995('0x32')]=_[_0x7995('0x33')](_0x456a28[_0x7995('0x2f')],_0x456a28[_0x7995('0x34')]);_0x514445[_0x7995('0x35')]=_['intersection'](_0x456a28[_0x7995('0x2f')],qs[_0x7995('0x36')](_0x4b6f99['query']['fields']));_0x514445['attributes']=_0x514445[_0x7995('0x35')][_0x7995('0x37')]?_0x514445['attributes']:_0x456a28[_0x7995('0x2f')];if(!_0x4b6f99['query'][_0x7995('0x38')](_0x7995('0x39'))){_0x514445[_0x7995('0x21')]=qs['limit'](_0x4b6f99['query'][_0x7995('0x21')]);_0x514445['offset']=qs['offset'](_0x4b6f99[_0x7995('0x34')][_0x7995('0x20')]);}_0x514445['order']=qs[_0x7995('0x3a')](_0x4b6f99[_0x7995('0x34')][_0x7995('0x3a')]);_0x514445[_0x7995('0x3b')]=qs[_0x7995('0x32')](_['pick'](_0x4b6f99[_0x7995('0x34')],_0x456a28[_0x7995('0x32')]),_0x4253e5);if(_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]){_0x514445['where']=_[_0x7995('0x3d')](_0x514445[_0x7995('0x3b')],{'$or':_[_0x7995('0x30')](_0x4253e5,function(_0xe5ea43){if(_0xe5ea43[_0x7995('0x2d')]!==_0x7995('0x3e')){var _0x5688a1={};_0x5688a1[_0xe5ea43[_0x7995('0x29')]]={'$like':'%'+_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]+'%'};return _0x5688a1;}})});}_0x514445=_[_0x7995('0x3d')]({},_0x514445,_0x4b6f99[_0x7995('0x3f')]);var _0x298fc2={'where':_0x514445[_0x7995('0x3b')]};return db[_0x7995('0x40')][_0x7995('0x1f')](_0x298fc2)[_0x7995('0x26')](function(_0x6fe77b){_0x3250e0[_0x7995('0x1f')]=_0x6fe77b;if(_0x4b6f99[_0x7995('0x34')]['includeAll']){_0x514445['include']=[{'all':!![]}];}return db[_0x7995('0x40')][_0x7995('0x41')](_0x514445);})['then'](function(_0x4b0855){_0x3250e0[_0x7995('0x42')]=_0x4b0855;return _0x3250e0;})['then'](respondWithFilteredResult(_0x9b2a15,_0x514445))['catch'](handleError(_0x9b2a15,null));};exports[_0x7995('0x43')]=function(_0x36e28b,_0x35c8ff){var _0x576b96={'raw':!![],'where':{'id':_0x36e28b['params']['id']}},_0x46ac4f={};_0x46ac4f[_0x7995('0x2f')]=_['keys'](db['ChatOfflineMessage'][_0x7995('0x44')]);_0x46ac4f[_0x7995('0x34')]=_[_0x7995('0x31')](_0x36e28b[_0x7995('0x34')]);_0x46ac4f['filters']=_[_0x7995('0x33')](_0x46ac4f[_0x7995('0x2f')],_0x46ac4f[_0x7995('0x34')]);_0x576b96[_0x7995('0x35')]=_['intersection'](_0x46ac4f['model'],qs[_0x7995('0x36')](_0x36e28b['query'][_0x7995('0x36')]));_0x576b96['attributes']=_0x576b96[_0x7995('0x35')]['length']?_0x576b96[_0x7995('0x35')]:_0x46ac4f[_0x7995('0x2f')];if(_0x36e28b['query'][_0x7995('0x45')]){_0x576b96[_0x7995('0x46')]=[{'all':!![]}];}_0x576b96=_[_0x7995('0x3d')]({},_0x576b96,_0x36e28b[_0x7995('0x3f')]);return db['ChatOfflineMessage'][_0x7995('0x47')](_0x576b96)[_0x7995('0x26')](handleEntityNotFound(_0x35c8ff,null))[_0x7995('0x26')](respondWithResult(_0x35c8ff,null))['catch'](handleError(_0x35c8ff,null));};exports[_0x7995('0x48')]=function(_0x44f516,_0x511567){return db[_0x7995('0x40')][_0x7995('0x48')](_0x44f516['body'],{})[_0x7995('0x26')](respondWithResult(_0x511567,0xc9))[_0x7995('0x49')](handleError(_0x511567,null));};exports['update']=function(_0x3d1dbb,_0x5843ba){if(_0x3d1dbb[_0x7995('0x4a')]['id']){delete _0x3d1dbb[_0x7995('0x4a')]['id'];}return db[_0x7995('0x40')][_0x7995('0x47')]({'where':{'id':_0x3d1dbb[_0x7995('0x4b')]['id']}})[_0x7995('0x26')](handleEntityNotFound(_0x5843ba,null))[_0x7995('0x26')](saveUpdates(_0x3d1dbb['body'],null))[_0x7995('0x26')](respondWithResult(_0x5843ba,null))[_0x7995('0x49')](handleError(_0x5843ba,null));};exports[_0x7995('0x27')]=function(_0x4ffc8a,_0x19da63){return db[_0x7995('0x4c')][_0x7995('0x41')]({'where':{'ChatOfflineMessageId':_0x4ffc8a['params']['id']},'raw':!![]})['then'](function(_0x5a592e){_0x5a592e[_0x7995('0x4d')](function(_0x1fd1ca){var _0x4cf5db=path[_0x7995('0x4e')](config[_0x7995('0x4f')],_0x7995('0x50'),_0x7995('0x51'),_0x7995('0x52'),'offline-chat',_0x1fd1ca[_0x7995('0x53')]);var _0x4ab09f=fs[_0x7995('0x54')](_0x4cf5db);if(_0x4ab09f)fs_extra[_0x7995('0x55')](_0x4cf5db);});})[_0x7995('0x26')](function(){return db['ChatOfflineMessage']['find']({'where':{'id':_0x4ffc8a['params']['id']},'individualHooks':!![]});})['then'](handleEntityNotFound(_0x19da63,null))[_0x7995('0x26')](removeEntity(_0x19da63,null))[_0x7995('0x49')](handleError(_0x19da63,null));};exports[_0x7995('0x56')]=function(_0x150261,_0x1d957e){return db[_0x7995('0x40')][_0x7995('0x56')]()[_0x7995('0x26')](respondWithResult(_0x1d957e,null))[_0x7995('0x49')](handleError(_0x1d957e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6af5=['../../config/environment','./chatOfflineMessage.attributes','exports','define','chat_offline_messages','utf8mb4','lodash','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0x1bb264,_0x2e0ab5){var _0x574634=function(_0x2d2fcd){while(--_0x2d2fcd){_0x1bb264['push'](_0x1bb264['shift']());}};_0x574634(++_0x2e0ab5);}(_0x6af5,0xe3));var _0x56af=function(_0x39096d,_0x51f8a0){_0x39096d=_0x39096d-0x0;var _0x13da4f=_0x6af5[_0x39096d];return _0x13da4f;};'use strict';var _=require(_0x56af('0x0'));var util=require('util');var logger=require(_0x56af('0x1'))(_0x56af('0x2'));var moment=require(_0x56af('0x3'));var BPromise=require(_0x56af('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x56af('0x5'));var rimraf=require(_0x56af('0x6'));var config=require(_0x56af('0x7'));var attributes=require(_0x56af('0x8'));module[_0x56af('0x9')]=function(_0x32cb98,_0x5efae7){return _0x32cb98[_0x56af('0xa')]('ChatOfflineMessage',attributes,{'tableName':_0x56af('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x56af('0xc'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x870d=['exports','ChatOfflineMessage','utf8mb4','utf8mb4_unicode_ci','../../config/logger','bluebird','path','rimraf','../../config/environment'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x870d,0x187));var _0xd870=function(_0x9c8969,_0x46765a){_0x9c8969=_0x9c8969-0x0;var _0xb29dbd=_0x870d[_0x9c8969];return _0xb29dbd;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xd870('0x0'))('api');var moment=require('moment');var BPromise=require(_0xd870('0x1'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd870('0x2'));var rimraf=require(_0xd870('0x3'));var config=require(_0xd870('0x4'));var attributes=require('./chatOfflineMessage.attributes');module[_0xd870('0x5')]=function(_0x1609d4,_0x17cafb){return _0x1609d4['define'](_0xd870('0x6'),attributes,{'tableName':'chat_offline_messages','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xd870('0x7'),'collate':_0xd870('0x8')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8994=['http','request','then','info','ChatOfflineMessage,\x20%s,\x20%s','debug','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client'];(function(_0x13b8f3,_0x442821){var _0x1a6d06=function(_0x5126f2){while(--_0x5126f2){_0x13b8f3['push'](_0x13b8f3['shift']());}};_0x1a6d06(++_0x442821);}(_0x8994,0xe6));var _0x4899=function(_0x1e4360,_0x930b9b){_0x1e4360=_0x1e4360-0x0;var _0x31e6b4=_0x8994[_0x1e4360];return _0x31e6b4;};'use strict';var _=require(_0x4899('0x0'));var util=require('util');var moment=require(_0x4899('0x1'));var BPromise=require(_0x4899('0x2'));var rs=require(_0x4899('0x3'));var fs=require('fs');var Redis=require(_0x4899('0x4'));var db=require(_0x4899('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x4899('0x6'))(_0x4899('0x7'));var config=require(_0x4899('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x4899('0x9')][_0x4899('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x38224a,_0x22c64d,_0x119a07){return new BPromise(function(_0x456939,_0x291a06){return client[_0x4899('0xb')](_0x38224a,_0x119a07)[_0x4899('0xc')](function(_0x2da57d){logger[_0x4899('0xd')](_0x4899('0xe'),_0x22c64d,'request\x20sent');logger[_0x4899('0xf')](_0x4899('0x10'),_0x22c64d,_0x4899('0x11'),JSON[_0x4899('0x12')](_0x2da57d));if(_0x2da57d['error']){if(_0x2da57d['error'][_0x4899('0x13')]===0x1f4){logger[_0x4899('0x14')](_0x4899('0xe'),_0x22c64d,_0x2da57d['error'][_0x4899('0x15')]);return _0x291a06(_0x2da57d[_0x4899('0x14')]['message']);}logger[_0x4899('0x14')]('ChatOfflineMessage,\x20%s,\x20%s',_0x22c64d,_0x2da57d['error'][_0x4899('0x15')]);return _0x456939(_0x2da57d[_0x4899('0x14')]['message']);}else{logger[_0x4899('0xd')](_0x4899('0xe'),_0x22c64d,_0x4899('0x11'));_0x456939(_0x2da57d[_0x4899('0x16')][_0x4899('0x15')]);}})[_0x4899('0x17')](function(_0x7d1782){logger[_0x4899('0x14')](_0x4899('0xe'),_0x22c64d,_0x7d1782);_0x291a06(_0x7d1782);});});}
\ No newline at end of file
+var _0x4fde=['../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','lodash','util','moment','bluebird','ioredis'];(function(_0x103989,_0x594901){var _0x2b1383=function(_0x26033f){while(--_0x26033f){_0x103989['push'](_0x103989['shift']());}};_0x2b1383(++_0x594901);}(_0x4fde,0x19f));var _0xe4fd=function(_0x3861f7,_0x995b22){_0x3861f7=_0x3861f7-0x0;var _0x50879f=_0x4fde[_0x3861f7];return _0x50879f;};'use strict';var _=require(_0xe4fd('0x0'));var util=require(_0xe4fd('0x1'));var moment=require(_0xe4fd('0x2'));var BPromise=require(_0xe4fd('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe4fd('0x4'));var db=require(_0xe4fd('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xe4fd('0x6'))(_0xe4fd('0x7'));var config=require(_0xe4fd('0x8'));var jayson=require(_0xe4fd('0x9'));var client=jayson[_0xe4fd('0xa')][_0xe4fd('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x439c7e,_0x26d781,_0x293acf){return new BPromise(function(_0x595e56,_0x32c847){return client['request'](_0x439c7e,_0x293acf)[_0xe4fd('0xc')](function(_0x49afd3){logger['info'](_0xe4fd('0xd'),_0x26d781,_0xe4fd('0xe'));logger['debug']('ChatOfflineMessage,\x20%s,\x20%s,\x20%s',_0x26d781,_0xe4fd('0xe'),JSON[_0xe4fd('0xf')](_0x49afd3));if(_0x49afd3[_0xe4fd('0x10')]){if(_0x49afd3['error'][_0xe4fd('0x11')]===0x1f4){logger[_0xe4fd('0x10')](_0xe4fd('0xd'),_0x26d781,_0x49afd3[_0xe4fd('0x10')][_0xe4fd('0x12')]);return _0x32c847(_0x49afd3[_0xe4fd('0x10')]['message']);}logger[_0xe4fd('0x10')](_0xe4fd('0xd'),_0x26d781,_0x49afd3[_0xe4fd('0x10')]['message']);return _0x595e56(_0x49afd3[_0xe4fd('0x10')][_0xe4fd('0x12')]);}else{logger['info']('ChatOfflineMessage,\x20%s,\x20%s',_0x26d781,_0xe4fd('0xe'));_0x595e56(_0x49afd3[_0xe4fd('0x13')][_0xe4fd('0x12')]);}})['catch'](function(_0x2c2adf){logger['error']('ChatOfflineMessage,\x20%s,\x20%s',_0x26d781,_0x2c2adf);_0x32c847(_0x2c2adf);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd08=['get','/:id','show','create','put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./chatOfflineMessage.controller','isAuthenticated','index'];(function(_0x18e521,_0x447311){var _0x289210=function(_0x396e80){while(--_0x396e80){_0x18e521['push'](_0x18e521['shift']());}};_0x289210(++_0x447311);}(_0xdd08,0x1c0));var _0x8dd0=function(_0x59e862,_0x477bf2){_0x59e862=_0x59e862-0x0;var _0x1a25ee=_0xdd08[_0x59e862];return _0x1a25ee;};'use strict';var multer=require(_0x8dd0('0x0'));var util=require(_0x8dd0('0x1'));var path=require(_0x8dd0('0x2'));var timeout=require(_0x8dd0('0x3'));var express=require(_0x8dd0('0x4'));var router=express[_0x8dd0('0x5')]();var fs_extra=require(_0x8dd0('0x6'));var auth=require(_0x8dd0('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x8dd0('0x8'));var controller=require(_0x8dd0('0x9'));router['get']('/',auth[_0x8dd0('0xa')](),controller[_0x8dd0('0xb')]);router[_0x8dd0('0xc')]('/describe',auth['isAuthenticated'](),controller['describe']);router[_0x8dd0('0xc')](_0x8dd0('0xd'),auth[_0x8dd0('0xa')](),controller[_0x8dd0('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x8dd0('0xf')]);router[_0x8dd0('0x10')]('/:id',auth[_0x8dd0('0xa')](),controller[_0x8dd0('0x11')]);router['delete'](_0x8dd0('0xd'),auth[_0x8dd0('0xa')](),controller[_0x8dd0('0x12')]);module[_0x8dd0('0x13')]=router;
\ No newline at end of file
+var _0xcc32=['multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','update','destroy','exports'];(function(_0x4eb517,_0x385479){var _0x30e9ed=function(_0x1825ef){while(--_0x1825ef){_0x4eb517['push'](_0x4eb517['shift']());}};_0x30e9ed(++_0x385479);}(_0xcc32,0x1a4));var _0x2cc3=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0xcc32[_0xfae23b];return _0x200640;};'use strict';var multer=require(_0x2cc3('0x0'));var util=require('util');var path=require(_0x2cc3('0x1'));var timeout=require(_0x2cc3('0x2'));var express=require(_0x2cc3('0x3'));var router=express[_0x2cc3('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x2cc3('0x5'));var interaction=require(_0x2cc3('0x6'));var config=require(_0x2cc3('0x7'));var controller=require('./chatOfflineMessage.controller');router[_0x2cc3('0x8')]('/',auth[_0x2cc3('0x9')](),controller[_0x2cc3('0xa')]);router[_0x2cc3('0x8')](_0x2cc3('0xb'),auth[_0x2cc3('0x9')](),controller[_0x2cc3('0xc')]);router['get'](_0x2cc3('0xd'),auth[_0x2cc3('0x9')](),controller[_0x2cc3('0xe')]);router[_0x2cc3('0xf')]('/',auth[_0x2cc3('0x9')](),controller[_0x2cc3('0x10')]);router[_0x2cc3('0x11')](_0x2cc3('0xd'),auth[_0x2cc3('0x9')](),controller[_0x2cc3('0x12')]);router['delete'](_0x2cc3('0xd'),auth[_0x2cc3('0x9')](),controller[_0x2cc3('0x13')]);module[_0x2cc3('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c42=['ENUM','timeout','mouseOver','exports','STRING'];(function(_0x36bc58,_0x27f03c){var _0x4a547e=function(_0x6326c6){while(--_0x6326c6){_0x36bc58['push'](_0x36bc58['shift']());}};_0x4a547e(++_0x27f03c);}(_0x2c42,0x17a));var _0x22c4=function(_0x4ec16b,_0x1946c8){_0x4ec16b=_0x4ec16b-0x0;var _0x432a1c=_0x2c42[_0x4ec16b];return _0x432a1c;};'use strict';var Sequelize=require('sequelize');module[_0x22c4('0x0')]={'name':{'type':Sequelize[_0x22c4('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x22c4('0x2')]('mouseOver',_0x22c4('0x3')),'defaultValue':_0x22c4('0x4')},'selector':{'type':Sequelize[_0x22c4('0x1')]},'timeout':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0xfd2d=['INTEGER','STRING','mouseOver','timeout'];(function(_0x462fe4,_0x394d3e){var _0x82b23a=function(_0x2c071f){while(--_0x2c071f){_0x462fe4['push'](_0x462fe4['shift']());}};_0x82b23a(++_0x394d3e);}(_0xfd2d,0x1bd));var _0xdfd2=function(_0x6935da,_0x3f8c67){_0x6935da=_0x6935da-0x0;var _0x51e54f=_0xfd2d[_0x6935da];return _0x51e54f;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xdfd2('0x0')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xdfd2('0x1'),_0xdfd2('0x2')),'defaultValue':'mouseOver'},'selector':{'type':Sequelize[_0xdfd2('0x0')]},'timeout':{'type':Sequelize[_0xdfd2('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe64a=['length','merge','options','ChatProactiveAction','find','catch','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','params','keys','query','filters','intersection','model','attributes','fields'];(function(_0x1165da,_0x1da017){var _0x1b4b78=function(_0x4bace6){while(--_0x4bace6){_0x1165da['push'](_0x1165da['shift']());}};_0x1b4b78(++_0x1da017);}(_0xe64a,0x1e0));var _0xae64=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xe64a[_0x4a9fb1];return _0x348672;};'use strict';var emlformat=require(_0xae64('0x0'));var rimraf=require(_0xae64('0x1'));var zipdir=require(_0xae64('0x2'));var jsonpatch=require(_0xae64('0x3'));var rp=require(_0xae64('0x4'));var moment=require(_0xae64('0x5'));var BPromise=require(_0xae64('0x6'));var Mustache=require(_0xae64('0x7'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xae64('0x8'));var fs=require('fs');var fs_extra=require(_0xae64('0x9'));var _=require(_0xae64('0xa'));var squel=require(_0xae64('0xb'));var crypto=require(_0xae64('0xc'));var jsforce=require(_0xae64('0xd'));var deskjs=require(_0xae64('0xe'));var toCsv=require(_0xae64('0xf'));var querystring=require(_0xae64('0x10'));var Papa=require(_0xae64('0x11'));var Redis=require(_0xae64('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xae64('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xae64('0x14'))(_0xae64('0x15'));var utils=require(_0xae64('0x16'));var config=require(_0xae64('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xae64('0x18'))['db'];function respondWithStatusCode(_0x58d0de,_0x59b60a){_0x59b60a=_0x59b60a||0xcc;return function(_0x345caf){if(_0x345caf){return _0x58d0de[_0xae64('0x19')](_0x59b60a);}return _0x58d0de[_0xae64('0x1a')](_0x59b60a)['end']();};}function respondWithResult(_0x1247b0,_0x760b31){_0x760b31=_0x760b31||0xc8;return function(_0x306804){if(_0x306804){return _0x1247b0[_0xae64('0x1a')](_0x760b31)[_0xae64('0x1b')](_0x306804);}};}function respondWithFilteredResult(_0x4c7d1c,_0x2950c5){return function(_0x37bc58){if(_0x37bc58){var _0x717724=typeof _0x2950c5[_0xae64('0x1c')]===_0xae64('0x1d')&&typeof _0x2950c5['limit']===_0xae64('0x1d');var _0x21c285=_0x37bc58[_0xae64('0x1e')];var _0x4613d9=_0x717724?0x0:_0x2950c5[_0xae64('0x1c')];var _0x227223=_0x717724?_0x37bc58[_0xae64('0x1e')]:_0x2950c5[_0xae64('0x1c')]+_0x2950c5['limit'];var _0x3cdd98;if(_0x227223>=_0x21c285){_0x227223=_0x21c285;_0x3cdd98=0xc8;}else{_0x3cdd98=0xce;}_0x4c7d1c[_0xae64('0x1a')](_0x3cdd98);return _0x4c7d1c[_0xae64('0x1f')](_0xae64('0x20'),_0x4613d9+'-'+_0x227223+'/'+_0x21c285)[_0xae64('0x1b')](_0x37bc58);}return null;};}function patchUpdates(_0x20ca7f){return function(_0x49bab9){try{jsonpatch[_0xae64('0x21')](_0x49bab9,_0x20ca7f,!![]);}catch(_0x4a4c4e){return BPromise[_0xae64('0x22')](_0x4a4c4e);}return _0x49bab9[_0xae64('0x23')]();};}function saveUpdates(_0x12d94d,_0x394afa){return function(_0x4406dc){if(_0x4406dc){return _0x4406dc[_0xae64('0x24')](_0x12d94d)[_0xae64('0x25')](function(_0x127ae2){return _0x127ae2;});}return null;};}function removeEntity(_0x24a35f,_0x2e6852){return function(_0x131225){if(_0x131225){return _0x131225[_0xae64('0x26')]()[_0xae64('0x25')](function(){_0x24a35f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x6eb56,_0xd5ecaf){return function(_0x22d91a){if(!_0x22d91a){_0x6eb56[_0xae64('0x19')](0x194);}return _0x22d91a;};}function handleError(_0x4d987f,_0x518969){_0x518969=_0x518969||0x1f4;return function(_0x562c2d){logger[_0xae64('0x27')](_0x562c2d[_0xae64('0x28')]);if(_0x562c2d['name']){delete _0x562c2d[_0xae64('0x29')];}_0x4d987f[_0xae64('0x1a')](_0x518969)[_0xae64('0x2a')](_0x562c2d);};}exports['show']=function(_0x3b946c,_0x562eb4){var _0x55f53d={'raw':!![],'where':{'id':_0x3b946c[_0xae64('0x2b')]['id']}},_0x5e4b2c={};_0x5e4b2c['model']=_[_0xae64('0x2c')](db['ChatProactiveAction']['rawAttributes']);_0x5e4b2c['query']=_[_0xae64('0x2c')](_0x3b946c[_0xae64('0x2d')]);_0x5e4b2c[_0xae64('0x2e')]=_[_0xae64('0x2f')](_0x5e4b2c[_0xae64('0x30')],_0x5e4b2c[_0xae64('0x2d')]);_0x55f53d[_0xae64('0x31')]=_[_0xae64('0x2f')](_0x5e4b2c[_0xae64('0x30')],qs['fields'](_0x3b946c[_0xae64('0x2d')][_0xae64('0x32')]));_0x55f53d[_0xae64('0x31')]=_0x55f53d[_0xae64('0x31')][_0xae64('0x33')]?_0x55f53d[_0xae64('0x31')]:_0x5e4b2c['model'];if(_0x3b946c[_0xae64('0x2d')]['includeAll']){_0x55f53d['include']=[{'all':!![]}];}_0x55f53d=_[_0xae64('0x34')]({},_0x55f53d,_0x3b946c[_0xae64('0x35')]);return db[_0xae64('0x36')][_0xae64('0x37')](_0x55f53d)[_0xae64('0x25')](handleEntityNotFound(_0x562eb4,null))[_0xae64('0x25')](respondWithResult(_0x562eb4,null))[_0xae64('0x38')](handleError(_0x562eb4,null));};exports['create']=function(_0xe53734,_0x4437e9){return db[_0xae64('0x36')][_0xae64('0x39')](_0xe53734[_0xae64('0x3a')],{})[_0xae64('0x25')](respondWithResult(_0x4437e9,0xc9))['catch'](handleError(_0x4437e9,null));};exports[_0xae64('0x24')]=function(_0x28269b,_0x3afc79){if(_0x28269b[_0xae64('0x3a')]['id']){delete _0x28269b['body']['id'];}return db[_0xae64('0x36')][_0xae64('0x37')]({'where':{'id':_0x28269b['params']['id']}})[_0xae64('0x25')](handleEntityNotFound(_0x3afc79,null))[_0xae64('0x25')](saveUpdates(_0x28269b['body'],null))[_0xae64('0x25')](respondWithResult(_0x3afc79,null))[_0xae64('0x38')](handleError(_0x3afc79,null));};exports[_0xae64('0x26')]=function(_0x19a5b7,_0x4c55b3){return db[_0xae64('0x36')][_0xae64('0x37')]({'where':{'id':_0x19a5b7[_0xae64('0x2b')]['id']}})[_0xae64('0x25')](handleEntityNotFound(_0x4c55b3,null))[_0xae64('0x25')](removeEntity(_0x4c55b3,null))[_0xae64('0x38')](handleError(_0x4c55b3,null));};
\ No newline at end of file
+var _0xf041=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','show','params','model','keys','ChatProactiveAction','rawAttributes','filters','intersection','query','fields','attributes','includeAll','include','merge','find','catch','create','body','destroy','zip-dir','fast-json-patch','request-promise','moment','mustache','path','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x21705d,_0x52a5bd){var _0xaa4309=function(_0x441e16){while(--_0x441e16){_0x21705d['push'](_0x21705d['shift']());}};_0xaa4309(++_0x52a5bd);}(_0xf041,0x15b));var _0x1f04=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf041[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1f04('0x0'));var jsonpatch=require(_0x1f04('0x1'));var rp=require(_0x1f04('0x2'));var moment=require(_0x1f04('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x1f04('0x4'));var util=require('util');var path=require(_0x1f04('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1f04('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1f04('0x7'));var squel=require(_0x1f04('0x8'));var crypto=require(_0x1f04('0x9'));var jsforce=require(_0x1f04('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x1f04('0xb'));var querystring=require(_0x1f04('0xc'));var Papa=require(_0x1f04('0xd'));var Redis=require(_0x1f04('0xe'));var authService=require(_0x1f04('0xf'));var qs=require(_0x1f04('0x10'));var as=require(_0x1f04('0x11'));var hardwareService=require(_0x1f04('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x1f04('0x13'));var config=require(_0x1f04('0x14'));var licenseUtil=require(_0x1f04('0x15'));var db=require(_0x1f04('0x16'))['db'];function respondWithStatusCode(_0x10e1da,_0x28edce){_0x28edce=_0x28edce||0xcc;return function(_0x1a9b46){if(_0x1a9b46){return _0x10e1da[_0x1f04('0x17')](_0x28edce);}return _0x10e1da[_0x1f04('0x18')](_0x28edce)[_0x1f04('0x19')]();};}function respondWithResult(_0x306c30,_0x4ebd86){_0x4ebd86=_0x4ebd86||0xc8;return function(_0x5bd64c){if(_0x5bd64c){return _0x306c30[_0x1f04('0x18')](_0x4ebd86)[_0x1f04('0x1a')](_0x5bd64c);}};}function respondWithFilteredResult(_0x24d37c,_0x57de82){return function(_0x255fc8){if(_0x255fc8){var _0x57b4e5=typeof _0x57de82[_0x1f04('0x1b')]===_0x1f04('0x1c')&&typeof _0x57de82[_0x1f04('0x1d')]===_0x1f04('0x1c');var _0x1b2be5=_0x255fc8[_0x1f04('0x1e')];var _0x573dd6=_0x57b4e5?0x0:_0x57de82['offset'];var _0x148d2a=_0x57b4e5?_0x255fc8[_0x1f04('0x1e')]:_0x57de82[_0x1f04('0x1b')]+_0x57de82[_0x1f04('0x1d')];var _0x246d2a;if(_0x148d2a>=_0x1b2be5){_0x148d2a=_0x1b2be5;_0x246d2a=0xc8;}else{_0x246d2a=0xce;}_0x24d37c[_0x1f04('0x18')](_0x246d2a);return _0x24d37c[_0x1f04('0x1f')](_0x1f04('0x20'),_0x573dd6+'-'+_0x148d2a+'/'+_0x1b2be5)['json'](_0x255fc8);}return null;};}function patchUpdates(_0x2d325e){return function(_0x3de665){try{jsonpatch[_0x1f04('0x21')](_0x3de665,_0x2d325e,!![]);}catch(_0x57e85d){return BPromise[_0x1f04('0x22')](_0x57e85d);}return _0x3de665[_0x1f04('0x23')]();};}function saveUpdates(_0x570578,_0xae5976){return function(_0x272707){if(_0x272707){return _0x272707[_0x1f04('0x24')](_0x570578)[_0x1f04('0x25')](function(_0x3f3c1c){return _0x3f3c1c;});}return null;};}function removeEntity(_0x162d4f,_0x33ada4){return function(_0x4735a2){if(_0x4735a2){return _0x4735a2['destroy']()['then'](function(){_0x162d4f[_0x1f04('0x18')](0xcc)[_0x1f04('0x19')]();});}};}function handleEntityNotFound(_0x151437,_0x34bfcb){return function(_0x35ae83){if(!_0x35ae83){_0x151437[_0x1f04('0x17')](0x194);}return _0x35ae83;};}function handleError(_0x1932cc,_0x410eb4){_0x410eb4=_0x410eb4||0x1f4;return function(_0xfb5efa){logger[_0x1f04('0x26')](_0xfb5efa[_0x1f04('0x27')]);if(_0xfb5efa[_0x1f04('0x28')]){delete _0xfb5efa[_0x1f04('0x28')];}_0x1932cc['status'](_0x410eb4)[_0x1f04('0x29')](_0xfb5efa);};}exports[_0x1f04('0x2a')]=function(_0x1d748c,_0x3121f9){var _0x22848d={'raw':!![],'where':{'id':_0x1d748c[_0x1f04('0x2b')]['id']}},_0x163adf={};_0x163adf[_0x1f04('0x2c')]=_[_0x1f04('0x2d')](db[_0x1f04('0x2e')][_0x1f04('0x2f')]);_0x163adf['query']=_[_0x1f04('0x2d')](_0x1d748c['query']);_0x163adf[_0x1f04('0x30')]=_[_0x1f04('0x31')](_0x163adf[_0x1f04('0x2c')],_0x163adf[_0x1f04('0x32')]);_0x22848d['attributes']=_[_0x1f04('0x31')](_0x163adf[_0x1f04('0x2c')],qs[_0x1f04('0x33')](_0x1d748c[_0x1f04('0x32')][_0x1f04('0x33')]));_0x22848d[_0x1f04('0x34')]=_0x22848d[_0x1f04('0x34')]['length']?_0x22848d[_0x1f04('0x34')]:_0x163adf['model'];if(_0x1d748c['query'][_0x1f04('0x35')]){_0x22848d[_0x1f04('0x36')]=[{'all':!![]}];}_0x22848d=_[_0x1f04('0x37')]({},_0x22848d,_0x1d748c['options']);return db[_0x1f04('0x2e')][_0x1f04('0x38')](_0x22848d)[_0x1f04('0x25')](handleEntityNotFound(_0x3121f9,null))['then'](respondWithResult(_0x3121f9,null))[_0x1f04('0x39')](handleError(_0x3121f9,null));};exports['create']=function(_0x2dfccd,_0x3a148d){return db[_0x1f04('0x2e')][_0x1f04('0x3a')](_0x2dfccd[_0x1f04('0x3b')],{})[_0x1f04('0x25')](respondWithResult(_0x3a148d,0xc9))[_0x1f04('0x39')](handleError(_0x3a148d,null));};exports[_0x1f04('0x24')]=function(_0x42415e,_0xbae334){if(_0x42415e[_0x1f04('0x3b')]['id']){delete _0x42415e[_0x1f04('0x3b')]['id'];}return db['ChatProactiveAction'][_0x1f04('0x38')]({'where':{'id':_0x42415e['params']['id']}})[_0x1f04('0x25')](handleEntityNotFound(_0xbae334,null))[_0x1f04('0x25')](saveUpdates(_0x42415e[_0x1f04('0x3b')],null))[_0x1f04('0x25')](respondWithResult(_0xbae334,null))[_0x1f04('0x39')](handleError(_0xbae334,null));};exports[_0x1f04('0x3c')]=function(_0x316f58,_0x2b550b){return db[_0x1f04('0x2e')][_0x1f04('0x38')]({'where':{'id':_0x316f58[_0x1f04('0x2b')]['id']}})['then'](handleEntityNotFound(_0x2b550b,null))[_0x1f04('0x25')](removeEntity(_0x2b550b,null))[_0x1f04('0x39')](handleError(_0x2b550b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe68=['define','ChatProactiveAction','chat_proactive_actions','lodash','util','../../config/logger','moment','bluebird','rimraf','../../config/environment','exports'];(function(_0x3e8322,_0x18e940){var _0x4b06e4=function(_0x2ffe48){while(--_0x2ffe48){_0x3e8322['push'](_0x3e8322['shift']());}};_0x4b06e4(++_0x18e940);}(_0xfe68,0x184));var _0x8fe6=function(_0x51b169,_0x5efbc2){_0x51b169=_0x51b169-0x0;var _0x12605a=_0xfe68[_0x51b169];return _0x12605a;};'use strict';var _=require(_0x8fe6('0x0'));var util=require(_0x8fe6('0x1'));var logger=require(_0x8fe6('0x2'))('api');var moment=require(_0x8fe6('0x3'));var BPromise=require(_0x8fe6('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x8fe6('0x5'));var config=require(_0x8fe6('0x6'));var attributes=require('./chatProactiveAction.attributes');module[_0x8fe6('0x7')]=function(_0x4a0b62,_0x9e6fca){return _0x4a0b62[_0x8fe6('0x8')](_0x8fe6('0x9'),attributes,{'tableName':_0x8fe6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xea5d=['../../config/logger','moment','../../config/environment','./chatProactiveAction.attributes','exports','ChatProactiveAction','chat_proactive_actions','lodash','util'];(function(_0x141bd4,_0x3259f7){var _0x332e6d=function(_0x395208){while(--_0x395208){_0x141bd4['push'](_0x141bd4['shift']());}};_0x332e6d(++_0x3259f7);}(_0xea5d,0x154));var _0xdea5=function(_0x31a2cf,_0x36c3b1){_0x31a2cf=_0x31a2cf-0x0;var _0x533d29=_0xea5d[_0x31a2cf];return _0x533d29;};'use strict';var _=require(_0xdea5('0x0'));var util=require(_0xdea5('0x1'));var logger=require(_0xdea5('0x2'))('api');var moment=require(_0xdea5('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xdea5('0x4'));var attributes=require(_0xdea5('0x5'));module[_0xdea5('0x6')]=function(_0x55a870,_0x41a506){return _0x55a870['define'](_0xdea5('0x7'),attributes,{'tableName':_0xdea5('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c9f=['error','code','message','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent'];(function(_0x46b599,_0x1d9ecd){var _0x179b0d=function(_0x445136){while(--_0x445136){_0x46b599['push'](_0x46b599['shift']());}};_0x179b0d(++_0x1d9ecd);}(_0x0c9f,0x14e));var _0xf0c9=function(_0x48d12a,_0xee0b67){_0x48d12a=_0x48d12a-0x0;var _0x2f7c08=_0x0c9f[_0x48d12a];return _0x2f7c08;};'use strict';var _=require(_0xf0c9('0x0'));var util=require(_0xf0c9('0x1'));var moment=require(_0xf0c9('0x2'));var BPromise=require(_0xf0c9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf0c9('0x4'));var db=require(_0xf0c9('0x5'))['db'];var utils=require(_0xf0c9('0x6'));var logger=require(_0xf0c9('0x7'))(_0xf0c9('0x8'));var config=require(_0xf0c9('0x9'));var jayson=require(_0xf0c9('0xa'));var client=jayson[_0xf0c9('0xb')][_0xf0c9('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x871d0e,_0x181091,_0x3c41cf){return new BPromise(function(_0x461028,_0x2666c2){return client[_0xf0c9('0xd')](_0x871d0e,_0x3c41cf)[_0xf0c9('0xe')](function(_0x29e593){logger[_0xf0c9('0xf')](_0xf0c9('0x10'),_0x181091,_0xf0c9('0x11'));logger['debug']('ChatProactiveAction,\x20%s,\x20%s,\x20%s',_0x181091,_0xf0c9('0x11'),JSON['stringify'](_0x29e593));if(_0x29e593[_0xf0c9('0x12')]){if(_0x29e593[_0xf0c9('0x12')][_0xf0c9('0x13')]===0x1f4){logger[_0xf0c9('0x12')](_0xf0c9('0x10'),_0x181091,_0x29e593['error'][_0xf0c9('0x14')]);return _0x2666c2(_0x29e593['error'][_0xf0c9('0x14')]);}logger[_0xf0c9('0x12')](_0xf0c9('0x10'),_0x181091,_0x29e593[_0xf0c9('0x12')][_0xf0c9('0x14')]);return _0x461028(_0x29e593['error'][_0xf0c9('0x14')]);}else{logger[_0xf0c9('0xf')]('ChatProactiveAction,\x20%s,\x20%s',_0x181091,_0xf0c9('0x11'));_0x461028(_0x29e593['result'][_0xf0c9('0x14')]);}})[_0xf0c9('0x15')](function(_0x2d2520){logger[_0xf0c9('0x12')]('ChatProactiveAction,\x20%s,\x20%s',_0x181091,_0x2d2520);_0x2666c2(_0x2d2520);});});}
\ No newline at end of file
+var _0xed17=['http','request','then','ChatProactiveAction,\x20%s,\x20%s','request\x20sent','ChatProactiveAction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0xed17,0x9e));var _0x7ed1=function(_0x454bd3,_0x3e4d94){_0x454bd3=_0x454bd3-0x0;var _0x4eb066=_0xed17[_0x454bd3];return _0x4eb066;};'use strict';var _=require(_0x7ed1('0x0'));var util=require('util');var moment=require(_0x7ed1('0x1'));var BPromise=require(_0x7ed1('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7ed1('0x3'));var db=require(_0x7ed1('0x4'))['db'];var utils=require(_0x7ed1('0x5'));var logger=require('../../config/logger')(_0x7ed1('0x6'));var config=require(_0x7ed1('0x7'));var jayson=require(_0x7ed1('0x8'));var client=jayson[_0x7ed1('0x9')][_0x7ed1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1aeb87,_0x213968,_0x4e630d){return new BPromise(function(_0x31ee46,_0x54d8a6){return client[_0x7ed1('0xb')](_0x1aeb87,_0x4e630d)[_0x7ed1('0xc')](function(_0x477404){logger['info'](_0x7ed1('0xd'),_0x213968,_0x7ed1('0xe'));logger['debug'](_0x7ed1('0xf'),_0x213968,'request\x20sent',JSON[_0x7ed1('0x10')](_0x477404));if(_0x477404[_0x7ed1('0x11')]){if(_0x477404[_0x7ed1('0x11')][_0x7ed1('0x12')]===0x1f4){logger['error'](_0x7ed1('0xd'),_0x213968,_0x477404[_0x7ed1('0x11')][_0x7ed1('0x13')]);return _0x54d8a6(_0x477404[_0x7ed1('0x11')]['message']);}logger[_0x7ed1('0x11')]('ChatProactiveAction,\x20%s,\x20%s',_0x213968,_0x477404[_0x7ed1('0x11')][_0x7ed1('0x13')]);return _0x31ee46(_0x477404[_0x7ed1('0x11')][_0x7ed1('0x13')]);}else{logger[_0x7ed1('0x14')]('ChatProactiveAction,\x20%s,\x20%s',_0x213968,_0x7ed1('0xe'));_0x31ee46(_0x477404['result'][_0x7ed1('0x13')]);}})['catch'](function(_0x2f8577){logger[_0x7ed1('0x11')](_0x7ed1('0xd'),_0x213968,_0x2f8577);_0x54d8a6(_0x2f8577);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8958=['show','post','put','update','delete','destroy','exports','util','fs-extra','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','/:id','isAuthenticated'];(function(_0x23f438,_0x2774cf){var _0x142c0e=function(_0xbabb0b){while(--_0xbabb0b){_0x23f438['push'](_0x23f438['shift']());}};_0x142c0e(++_0x2774cf);}(_0x8958,0x93));var _0x8895=function(_0x5e5f26,_0x39b5f6){_0x5e5f26=_0x5e5f26-0x0;var _0xd0be98=_0x8958[_0x5e5f26];return _0xd0be98;};'use strict';var multer=require('multer');var util=require(_0x8895('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x8895('0x1'));var auth=require('../../components/auth/service');var interaction=require(_0x8895('0x2'));var config=require(_0x8895('0x3'));var controller=require(_0x8895('0x4'));router['get'](_0x8895('0x5'),auth[_0x8895('0x6')](),controller[_0x8895('0x7')]);router[_0x8895('0x8')]('/',auth[_0x8895('0x6')](),controller['create']);router[_0x8895('0x9')](_0x8895('0x5'),auth[_0x8895('0x6')](),controller[_0x8895('0xa')]);router[_0x8895('0xb')](_0x8895('0x5'),auth[_0x8895('0x6')](),controller[_0x8895('0xc')]);module[_0x8895('0xd')]=router;
\ No newline at end of file
+var _0x814b=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','get','/:id','show','post','create','put','isAuthenticated','update','delete','destroy','exports','multer','util'];(function(_0x5e8965,_0x744744){var _0x5efd03=function(_0xc82aa1){while(--_0xc82aa1){_0x5e8965['push'](_0x5e8965['shift']());}};_0x5efd03(++_0x744744);}(_0x814b,0x1a2));var _0xb814=function(_0x243b59,_0x3f9495){_0x243b59=_0x243b59-0x0;var _0x3e1676=_0x814b[_0x243b59];return _0x3e1676;};'use strict';var multer=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var path=require(_0xb814('0x2'));var timeout=require(_0xb814('0x3'));var express=require(_0xb814('0x4'));var router=express[_0xb814('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xb814('0x6'));var interaction=require(_0xb814('0x7'));var config=require(_0xb814('0x8'));var controller=require(_0xb814('0x9'));router[_0xb814('0xa')](_0xb814('0xb'),auth['isAuthenticated'](),controller[_0xb814('0xc')]);router[_0xb814('0xd')]('/',auth['isAuthenticated'](),controller[_0xb814('0xe')]);router[_0xb814('0xf')](_0xb814('0xb'),auth[_0xb814('0x10')](),controller[_0xb814('0x11')]);router[_0xb814('0x12')](_0xb814('0xb'),auth[_0xb814('0x10')](),controller[_0xb814('0x13')]);module[_0xb814('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafa0=['rrmemory','beepall','roundrobin','sequelize','exports','STRING','name','ENUM'];(function(_0x41d67e,_0x336a28){var _0x100cb2=function(_0x3fd927){while(--_0x3fd927){_0x41d67e['push'](_0x41d67e['shift']());}};_0x100cb2(++_0x336a28);}(_0xafa0,0xd3));var _0x0afa=function(_0x114ab5,_0x24a819){_0x114ab5=_0x114ab5-0x0;var _0x47c2ea=_0xafa0[_0x114ab5];return _0x47c2ea;};'use strict';var Sequelize=require(_0x0afa('0x0'));module[_0x0afa('0x1')]={'name':{'type':Sequelize[_0x0afa('0x2')],'unique':_0x0afa('0x3'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x0afa('0x4')](_0x0afa('0x5'),_0x0afa('0x6'),_0x0afa('0x7'))}};
\ No newline at end of file
+var _0x8ee7=['INTEGER','rrmemory','sequelize','exports','STRING','name'];(function(_0x1c11cb,_0x5c6184){var _0x377395=function(_0x2174b1){while(--_0x2174b1){_0x1c11cb['push'](_0x1c11cb['shift']());}};_0x377395(++_0x5c6184);}(_0x8ee7,0x1b2));var _0x78ee=function(_0x54ac71,_0x1043f6){_0x54ac71=_0x54ac71-0x0;var _0xc11d8d=_0x8ee7[_0x54ac71];return _0xc11d8d;};'use strict';var Sequelize=require(_0x78ee('0x0'));module[_0x78ee('0x1')]={'name':{'type':Sequelize[_0x78ee('0x2')],'unique':_0x78ee('0x3'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x78ee('0x2')]},'timeout':{'type':Sequelize[_0x78ee('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x78ee('0x5'),'beepall','roundrobin')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94d1=['tq.TeamId','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','push','toString','QueryTypes','TeamId','includes','all','union','compact','value','isEmpty','addAgents','removeAgents','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','redis','defaults','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','request','then','info','ChatQueue,\x20%s,\x20%s','debug','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','get','ChatQueues','UserProfileResource','sendStatus','stack','name','send','map','ChatQueue','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','filter','where','VIRTUAL','includeAll','include','rows','params','merge','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','getMembers','findOne','UserChatQueue','hasOwnProperty','ChatQueueId','findAll','findAndCountAll','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','pick','ids','Team','User','interface','flatMap','Agents','sequelize','transaction','addTeams','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','field'];(function(_0x531437,_0x2a5c46){var _0x211541=function(_0x4c18cf){while(--_0x4c18cf){_0x531437['push'](_0x531437['shift']());}};_0x211541(++_0x2a5c46);}(_0x94d1,0xb0));var _0x194d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x94d1[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x194d('0x0'));var rimraf=require(_0x194d('0x1'));var zipdir=require(_0x194d('0x2'));var jsonpatch=require(_0x194d('0x3'));var rp=require(_0x194d('0x4'));var moment=require(_0x194d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x194d('0x6'));var util=require(_0x194d('0x7'));var path=require(_0x194d('0x8'));var sox=require(_0x194d('0x9'));var csv=require(_0x194d('0xa'));var ejs=require(_0x194d('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x194d('0xc'));var squel=require(_0x194d('0xd'));var crypto=require(_0x194d('0xe'));var jsforce=require(_0x194d('0xf'));var deskjs=require(_0x194d('0x10'));var toCsv=require(_0x194d('0xa'));var querystring=require(_0x194d('0x11'));var Papa=require(_0x194d('0x12'));var Redis=require(_0x194d('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x194d('0x14'));var as=require(_0x194d('0x15'));var hardwareService=require(_0x194d('0x16'));var logger=require(_0x194d('0x17'))(_0x194d('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x194d('0x19'))['db'];config[_0x194d('0x1a')]=_[_0x194d('0x1b')](config[_0x194d('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x194d('0x1c'))(new Redis(config['redis']));require(_0x194d('0x1d'))[_0x194d('0x1e')](socket);var jayson=require(_0x194d('0x1f'));var client=jayson[_0x194d('0x20')]['http']({'port':0x232a});function respondWithRpcPromise(_0x362425,_0x198dc6,_0x1de3cf,_0x573c38){return new BPromise(function(_0x30becd,_0x400f2e){var _0x3af8ae=_0x573c38||client;return _0x3af8ae[_0x194d('0x21')](_0x362425,_0x1de3cf)[_0x194d('0x22')](function(_0x31d39b){logger[_0x194d('0x23')](_0x194d('0x24'),_0x198dc6,'request\x20sent');logger[_0x194d('0x25')](_0x194d('0x26'),_0x198dc6,_0x194d('0x27'),JSON[_0x194d('0x28')](_0x31d39b));if(_0x31d39b[_0x194d('0x29')]){if(_0x31d39b[_0x194d('0x29')][_0x194d('0x2a')]===0x1f4){logger[_0x194d('0x29')](_0x194d('0x24'),_0x198dc6,_0x31d39b['error'][_0x194d('0x2b')]);return _0x400f2e(_0x31d39b[_0x194d('0x29')][_0x194d('0x2b')]);}logger['error']('ChatQueue,\x20%s,\x20%s',_0x198dc6,_0x31d39b[_0x194d('0x29')][_0x194d('0x2b')]);return _0x30becd(_0x31d39b[_0x194d('0x29')]['message']);}else{logger[_0x194d('0x23')](_0x194d('0x24'),_0x198dc6,_0x194d('0x27'));_0x30becd(_0x31d39b[_0x194d('0x2c')][_0x194d('0x2b')]);}})[_0x194d('0x2d')](function(_0x579c89){logger['error'](_0x194d('0x24'),_0x198dc6,_0x579c89);_0x400f2e(_0x579c89);});});}function respondWithStatusCode(_0x228e51,_0x19fd93){_0x19fd93=_0x19fd93||0xcc;return function(_0x1c31d6){if(_0x1c31d6){return _0x228e51['sendStatus'](_0x19fd93);}return _0x228e51[_0x194d('0x2e')](_0x19fd93)[_0x194d('0x2f')]();};}function respondWithResult(_0x351501,_0x47ae28){_0x47ae28=_0x47ae28||0xc8;return function(_0x4a2c0d){if(_0x4a2c0d){return _0x351501['status'](_0x47ae28)[_0x194d('0x30')](_0x4a2c0d);}};}function respondWithFilteredResult(_0x78f6b,_0x12f8ce){return function(_0x2d16c1){if(_0x2d16c1){var _0x1f8d51=typeof _0x12f8ce[_0x194d('0x31')]===_0x194d('0x32')&&typeof _0x12f8ce[_0x194d('0x33')]==='undefined';var _0xfed807=_0x2d16c1['count'];var _0x3ed476=_0x1f8d51?0x0:_0x12f8ce[_0x194d('0x31')];var _0x3d90ed=_0x1f8d51?_0x2d16c1[_0x194d('0x34')]:_0x12f8ce[_0x194d('0x31')]+_0x12f8ce['limit'];var _0x144612;if(_0x3d90ed>=_0xfed807){_0x3d90ed=_0xfed807;_0x144612=0xc8;}else{_0x144612=0xce;}_0x78f6b[_0x194d('0x2e')](_0x144612);return _0x78f6b[_0x194d('0x35')](_0x194d('0x36'),_0x3ed476+'-'+_0x3d90ed+'/'+_0xfed807)[_0x194d('0x30')](_0x2d16c1);}return null;};}function patchUpdates(_0x38883f){return function(_0x37b6af){try{jsonpatch[_0x194d('0x37')](_0x37b6af,_0x38883f,!![]);}catch(_0x11b56f){return BPromise[_0x194d('0x38')](_0x11b56f);}return _0x37b6af[_0x194d('0x39')]();};}function saveUpdates(_0x316b40,_0x3f2c31){return function(_0x4bdd69){if(_0x4bdd69){return _0x4bdd69['update'](_0x316b40)['then'](function(_0x383d45){return _0x383d45;});}return null;};}function removeEntity(_0x8d8550,_0x549bbd){return function(_0x585eca){if(_0x585eca){return _0x585eca[_0x194d('0x3a')]()[_0x194d('0x22')](function(){var _0x9e82a3=_0x585eca[_0x194d('0x3b')]({'plain':!![]});var _0x3f0e46=_0x194d('0x3c');return db[_0x194d('0x3d')][_0x194d('0x3a')]({'where':{'type':_0x3f0e46,'resourceId':_0x9e82a3['id']}})[_0x194d('0x22')](function(){return _0x585eca;});})[_0x194d('0x22')](function(){_0x8d8550[_0x194d('0x2e')](0xcc)[_0x194d('0x2f')]();});}};}function handleEntityNotFound(_0x8cb972,_0x447453){return function(_0x429756){if(!_0x429756){_0x8cb972[_0x194d('0x3e')](0x194);}return _0x429756;};}function handleError(_0x4d03c1,_0x19db02){_0x19db02=_0x19db02||0x1f4;return function(_0x2288cb){logger[_0x194d('0x29')](_0x2288cb[_0x194d('0x3f')]);if(_0x2288cb[_0x194d('0x40')]){delete _0x2288cb[_0x194d('0x40')];}_0x4d03c1[_0x194d('0x2e')](_0x19db02)[_0x194d('0x41')](_0x2288cb);};}exports['index']=function(_0x50d3c1,_0x399136){var _0x3d8830={},_0x5ed19b={},_0x1b1068={'count':0x0,'rows':[]};var _0x5c6506=_[_0x194d('0x42')](db[_0x194d('0x43')][_0x194d('0x44')],function(_0x84d897){return{'name':_0x84d897[_0x194d('0x45')],'type':_0x84d897[_0x194d('0x46')][_0x194d('0x47')]};});_0x5ed19b[_0x194d('0x48')]=_[_0x194d('0x42')](_0x5c6506,_0x194d('0x40'));_0x5ed19b[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x50d3c1[_0x194d('0x49')]);_0x5ed19b[_0x194d('0x4b')]=_[_0x194d('0x4c')](_0x5ed19b[_0x194d('0x48')],_0x5ed19b[_0x194d('0x49')]);_0x3d8830[_0x194d('0x4d')]=_[_0x194d('0x4c')](_0x5ed19b['model'],qs[_0x194d('0x4e')](_0x50d3c1['query'][_0x194d('0x4e')]));_0x3d8830['attributes']=_0x3d8830[_0x194d('0x4d')][_0x194d('0x4f')]?_0x3d8830[_0x194d('0x4d')]:_0x5ed19b[_0x194d('0x48')];if(!_0x50d3c1[_0x194d('0x49')]['hasOwnProperty'](_0x194d('0x50'))){_0x3d8830[_0x194d('0x33')]=qs[_0x194d('0x33')](_0x50d3c1['query']['limit']);_0x3d8830[_0x194d('0x31')]=qs[_0x194d('0x31')](_0x50d3c1[_0x194d('0x49')][_0x194d('0x31')]);}_0x3d8830[_0x194d('0x51')]=qs[_0x194d('0x52')](_0x50d3c1['query'][_0x194d('0x52')]);_0x3d8830['where']=qs[_0x194d('0x4b')](_['pick'](_0x50d3c1['query'],_0x5ed19b[_0x194d('0x4b')]),_0x5c6506);if(_0x50d3c1[_0x194d('0x49')][_0x194d('0x53')]){_0x3d8830[_0x194d('0x54')]=_['merge'](_0x3d8830['where'],{'$or':_['map'](_0x5c6506,function(_0x49fbc5){if(_0x49fbc5[_0x194d('0x46')]!==_0x194d('0x55')){var _0x157f23={};_0x157f23[_0x49fbc5[_0x194d('0x40')]]={'$like':'%'+_0x50d3c1['query'][_0x194d('0x53')]+'%'};return _0x157f23;}})});}_0x3d8830=_['merge']({},_0x3d8830,_0x50d3c1['options']);var _0x542290={'where':_0x3d8830[_0x194d('0x54')]};return db[_0x194d('0x43')]['count'](_0x542290)[_0x194d('0x22')](function(_0x1eccbb){_0x1b1068['count']=_0x1eccbb;if(_0x50d3c1[_0x194d('0x49')][_0x194d('0x56')]){_0x3d8830[_0x194d('0x57')]=[{'all':!![]}];}return db['ChatQueue']['findAll'](_0x3d8830);})[_0x194d('0x22')](function(_0xa178b6){_0x1b1068[_0x194d('0x58')]=_0xa178b6;return _0x1b1068;})[_0x194d('0x22')](respondWithFilteredResult(_0x399136,_0x3d8830))['catch'](handleError(_0x399136,null));};exports['show']=function(_0x51aee2,_0x20f4ac){var _0xf000f0={'raw':!![],'where':{'id':_0x51aee2[_0x194d('0x59')]['id']}},_0x906250={};_0x906250[_0x194d('0x48')]=_['keys'](db[_0x194d('0x43')][_0x194d('0x44')]);_0x906250[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x51aee2[_0x194d('0x49')]);_0x906250[_0x194d('0x4b')]=_['intersection'](_0x906250[_0x194d('0x48')],_0x906250['query']);_0xf000f0[_0x194d('0x4d')]=_[_0x194d('0x4c')](_0x906250[_0x194d('0x48')],qs[_0x194d('0x4e')](_0x51aee2['query']['fields']));_0xf000f0[_0x194d('0x4d')]=_0xf000f0[_0x194d('0x4d')]['length']?_0xf000f0[_0x194d('0x4d')]:_0x906250[_0x194d('0x48')];if(_0x51aee2['query'][_0x194d('0x56')]){_0xf000f0[_0x194d('0x57')]=[{'all':!![]}];}_0xf000f0=_[_0x194d('0x5a')]({},_0xf000f0,_0x51aee2[_0x194d('0x5b')]);return db['ChatQueue'][_0x194d('0x5c')](_0xf000f0)[_0x194d('0x22')](handleEntityNotFound(_0x20f4ac,null))[_0x194d('0x22')](respondWithResult(_0x20f4ac,null))[_0x194d('0x2d')](handleError(_0x20f4ac,null));};exports[_0x194d('0x5d')]=function(_0x215b2f,_0x1cfdf1){return db[_0x194d('0x43')][_0x194d('0x5d')](_0x215b2f[_0x194d('0x5e')],{})[_0x194d('0x22')](function(_0x24f186){var _0x26289f=_0x215b2f['user'][_0x194d('0x3b')]({'plain':!![]});if(!_0x26289f)throw new Error(_0x194d('0x5f'));if(_0x26289f[_0x194d('0x60')]===_0x194d('0x61')){var _0x14d52b=_0x24f186['get']({'plain':!![]});var _0x272c16=_0x194d('0x3c');return db[_0x194d('0x62')][_0x194d('0x5c')]({'where':{'name':_0x272c16,'userProfileId':_0x26289f['userProfileId']},'raw':!![]})['then'](function(_0x225882){if(_0x225882&&_0x225882[_0x194d('0x63')]===0x0){return db[_0x194d('0x3d')][_0x194d('0x5d')]({'name':_0x14d52b[_0x194d('0x40')],'resourceId':_0x14d52b['id'],'type':_0x225882[_0x194d('0x40')],'sectionId':_0x225882['id']},{})['then'](function(){return _0x24f186;});}else{return _0x24f186;}})[_0x194d('0x2d')](function(_0x473bf4){logger[_0x194d('0x29')](_0x194d('0x64'),_0x473bf4);throw _0x473bf4;});}return _0x24f186;})[_0x194d('0x22')](respondWithResult(_0x1cfdf1,0xc9))['catch'](handleError(_0x1cfdf1,null));};exports[_0x194d('0x65')]=function(_0x37686e,_0x2f4618){if(_0x37686e[_0x194d('0x5e')]['id']){delete _0x37686e[_0x194d('0x5e')]['id'];}return db[_0x194d('0x43')][_0x194d('0x5c')]({'where':{'id':_0x37686e['params']['id']}})['then'](handleEntityNotFound(_0x2f4618,null))[_0x194d('0x22')](saveUpdates(_0x37686e['body'],null))['then'](respondWithResult(_0x2f4618,null))[_0x194d('0x2d')](handleError(_0x2f4618,null));};exports[_0x194d('0x3a')]=function(_0x373043,_0x4407ad){return db[_0x194d('0x43')][_0x194d('0x5c')]({'where':{'id':_0x373043[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x4407ad,null))[_0x194d('0x22')](removeEntity(_0x4407ad,null))[_0x194d('0x2d')](handleError(_0x4407ad,null));};exports[_0x194d('0x66')]=function(_0x50d071,_0x3c4295){return db[_0x194d('0x43')][_0x194d('0x66')]()[_0x194d('0x22')](respondWithResult(_0x3c4295,null))[_0x194d('0x2d')](handleError(_0x3c4295,null));};exports[_0x194d('0x67')]=function(_0x47ec00,_0x2fb911,_0x9763fe){var _0x5c6b9b={'raw':!![],'where':{}},_0xce89dd={},_0x1870a3;return db[_0x194d('0x43')][_0x194d('0x68')]({'where':{'id':_0x47ec00[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x2fb911,null))['then'](function(_0x2c3676){if(_0x2c3676){_0x1870a3=_0x2c3676['get']({'plain':!![]});_0xce89dd['model']=_['keys'](db[_0x194d('0x69')][_0x194d('0x44')]);_0xce89dd[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x47ec00[_0x194d('0x49')]);_0xce89dd[_0x194d('0x4b')]=_['intersection'](_0xce89dd[_0x194d('0x48')],_0xce89dd[_0x194d('0x49')]);_0x5c6b9b[_0x194d('0x4d')]=_['intersection'](_0xce89dd[_0x194d('0x48')],qs[_0x194d('0x4e')](_0x47ec00[_0x194d('0x49')][_0x194d('0x4e')]));_0x5c6b9b[_0x194d('0x4d')]=_0x5c6b9b[_0x194d('0x4d')][_0x194d('0x4f')]?_0x5c6b9b[_0x194d('0x4d')]:_0xce89dd['model'];if(!_0x47ec00[_0x194d('0x49')][_0x194d('0x6a')](_0x194d('0x50'))){_0x5c6b9b[_0x194d('0x33')]=qs[_0x194d('0x33')](_0x47ec00[_0x194d('0x49')][_0x194d('0x33')]);_0x5c6b9b['offset']=qs[_0x194d('0x31')](_0x47ec00['query'][_0x194d('0x31')]);}_0x5c6b9b['order']=qs[_0x194d('0x52')](_0x47ec00[_0x194d('0x49')][_0x194d('0x52')]);_0x5c6b9b['where']=qs[_0x194d('0x4b')](_['pick'](_0x47ec00[_0x194d('0x49')],_0xce89dd[_0x194d('0x4b')]));_0x5c6b9b['where'][_0x194d('0x6b')]=_0x2c3676['id'];if(_0x47ec00['query'][_0x194d('0x53')]){_0x5c6b9b[_0x194d('0x54')]=_[_0x194d('0x5a')](_0x5c6b9b[_0x194d('0x54')],{'$or':_[_0x194d('0x42')](_0x5c6b9b['attributes'],function(_0x47aa3a){var _0x4cde44={};_0x4cde44[_0x47aa3a]={'$like':'%'+_0x47ec00[_0x194d('0x49')][_0x194d('0x53')]+'%'};return _0x4cde44;})});}_0x5c6b9b=_['merge']({},_0x5c6b9b,_0x47ec00[_0x194d('0x5b')]);return db['UserChatQueue'][_0x194d('0x6c')](_0x5c6b9b);}})[_0x194d('0x22')](function(_0x65618b){if(_0x65618b){return db['User'][_0x194d('0x6d')]({'where':{'id':_[_0x194d('0x42')](_0x65618b,'UserId'),'role':'agent'},'attributes':['id','name',_0x194d('0x6e'),_0x194d('0x6f'),_0x194d('0x70')]});}})[_0x194d('0x22')](function(_0x486363){if(_0x486363){return{'count':_0x486363[_0x194d('0x34')],'rows':_[_0x194d('0x42')](_0x486363[_0x194d('0x58')],function(_0x5a8bc7){return{'membername':_0x5a8bc7[_0x194d('0x40')],'UserId':_0x5a8bc7['id'],'queue_name':_0x1870a3[_0x194d('0x40')],'ChatQueueId':_0x1870a3['id'],'interface':util[_0x194d('0x71')](_0x194d('0x72'),_0x194d('0x73'),_0x5a8bc7[_0x194d('0x40')]),'penalty':0x0,'paused':_0x5a8bc7[_0x194d('0x6e')],'createdAt':_0x5a8bc7[_0x194d('0x70')],'updatedAt':_0x5a8bc7[_0x194d('0x6f')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x2fb911,_0x5c6b9b))[_0x194d('0x2d')](handleError(_0x2fb911,null));};exports[_0x194d('0x74')]=function(_0x22ea29,_0x3f1bd5,_0x23532){var _0x2f9256={};var _0x189d27={};var _0x453117;var _0x3f7193;return db[_0x194d('0x43')]['findOne']({'where':{'id':_0x22ea29[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x3f1bd5,null))[_0x194d('0x22')](function(_0x1891c3){if(_0x1891c3){_0x453117=_0x1891c3;_0x189d27[_0x194d('0x48')]=_[_0x194d('0x4a')](db['Team'][_0x194d('0x44')]);_0x189d27[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x22ea29[_0x194d('0x49')]);_0x189d27[_0x194d('0x4b')]=_['intersection'](_0x189d27[_0x194d('0x48')],_0x189d27[_0x194d('0x49')]);_0x2f9256['attributes']=_['intersection'](_0x189d27[_0x194d('0x48')],qs[_0x194d('0x4e')](_0x22ea29[_0x194d('0x49')][_0x194d('0x4e')]));_0x2f9256[_0x194d('0x4d')]=_0x2f9256['attributes']['length']?_0x2f9256[_0x194d('0x4d')]:_0x189d27['model'];_0x2f9256[_0x194d('0x51')]=qs['sort'](_0x22ea29[_0x194d('0x49')]['sort']);_0x2f9256[_0x194d('0x54')]=qs[_0x194d('0x4b')](_[_0x194d('0x75')](_0x22ea29[_0x194d('0x49')],_0x189d27[_0x194d('0x4b')]));if(_0x22ea29[_0x194d('0x49')][_0x194d('0x53')]){_0x2f9256['where']=_[_0x194d('0x5a')](_0x2f9256[_0x194d('0x54')],{'$or':_[_0x194d('0x42')](_0x2f9256[_0x194d('0x4d')],function(_0x3ba03d){var _0x5e9868={};_0x5e9868[_0x3ba03d]={'$like':'%'+_0x22ea29['query']['filter']+'%'};return _0x5e9868;})});}_0x2f9256=_[_0x194d('0x5a')]({},_0x2f9256,_0x22ea29['options']);return _0x453117['getTeams'](_0x2f9256);}})['then'](function(_0x229300){if(_0x229300){_0x3f7193=_0x229300[_0x194d('0x4f')];if(!_0x22ea29['query'][_0x194d('0x6a')](_0x194d('0x50'))){_0x2f9256['limit']=qs[_0x194d('0x33')](_0x22ea29[_0x194d('0x49')]['limit']);_0x2f9256[_0x194d('0x31')]=qs[_0x194d('0x31')](_0x22ea29[_0x194d('0x49')][_0x194d('0x31')]);}return _0x453117['getTeams'](_0x2f9256);}})[_0x194d('0x22')](function(_0x4f08d2){if(_0x4f08d2){return _0x4f08d2?{'count':_0x3f7193,'rows':_0x4f08d2}:null;}})[_0x194d('0x22')](respondWithResult(_0x3f1bd5,null))['catch'](handleError(_0x3f1bd5,null));};exports['addTeams']=function(_0x36e2f8,_0x4e3b96,_0x32c725){var _0x8dc251=_0x36e2f8[_0x194d('0x5e')][_0x194d('0x76')];return db[_0x194d('0x77')][_0x194d('0x6c')]({'where':{'id':_0x8dc251},'attributes':['id'],'include':[{'model':db[_0x194d('0x78')],'as':'Agents','attributes':['id',_0x194d('0x40'),'online','voicePause',_0x194d('0x79')],'raw':!![]}]})[_0x194d('0x22')](function(_0x57ec75){if(_0x57ec75){var _0x116b56=_[_0x194d('0x7a')](_0x57ec75,function(_0x182921){var _0xe75a93=_0x182921[_0x194d('0x3b')]({'plain':!![]});return _0xe75a93[_0x194d('0x7b')];});return db[_0x194d('0x43')]['find']({'where':{'id':_0x36e2f8[_0x194d('0x59')]['id']}})['then'](function(_0x52cd93){return db[_0x194d('0x7c')][_0x194d('0x7d')](function(_0x2219ce){return _0x52cd93[_0x194d('0x7e')](_0x8dc251,{'transaction':_0x2219ce})['then'](function(){return BPromise[_0x194d('0x7f')](_0x116b56,function(_0x2b7cbf){return db[_0x194d('0x69')][_0x194d('0x80')]({'where':{'UserId':_0x2b7cbf['id'],'ChatQueueId':_0x36e2f8[_0x194d('0x59')]['id']},'transaction':_0x2219ce});});})['then'](function(){_0x116b56[_0x194d('0x81')](function(_0x22e8c0){socket[_0x194d('0x82')](_0x194d('0x83'),{'UserId':_0x22e8c0['id'],'ChatQueueId':_0x52cd93['id']});});});});});}})[_0x194d('0x22')](respondWithStatusCode(_0x4e3b96,null))[_0x194d('0x2d')](handleError(_0x4e3b96,null));};exports[_0x194d('0x84')]=function(_0x10c249,_0x16b431,_0x34d9be){return db['Team'][_0x194d('0x6c')]({'where':{'id':_0x10c249['query'][_0x194d('0x76')]},'attributes':['id'],'include':[{'model':db[_0x194d('0x78')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x194d('0x22')](handleEntityNotFound(_0x16b431,null))[_0x194d('0x22')](function(_0x7be2a2){var _0x5977ae=_[_0x194d('0x42')](_0x7be2a2,'id');var _0x2039d1=[];var _0x28ebfb=[];var _0x5ef571=squel['select']();_0x5ef571[_0x194d('0x85')](_0x194d('0x86'))[_0x194d('0x87')]('team_has_chat_queues','tq')[_0x194d('0x88')](_0x194d('0x89'),'ut',_0x194d('0x8a'))[_0x194d('0x54')]('ChatQueueId\x20=\x20?',_0x10c249[_0x194d('0x59')]['id']);for(var _0x4c3835=0x0;_0x4c3835<_0x7be2a2['length'];_0x4c3835+=0x1){let _0x264edc=_0x7be2a2[_0x4c3835];for(var _0x150724=0x0;_0x150724<_0x264edc[_0x194d('0x7b')][_0x194d('0x4f')];_0x150724+=0x1){let _0xe58a52=_0x264edc[_0x194d('0x7b')][_0x150724];var _0x366a53=_0x5ef571[_0x194d('0x8b')]();_0x366a53[_0x194d('0x54')]('ut.UserId\x20=\x20?',_0xe58a52['id']);_0x28ebfb[_0x194d('0x8c')](db[_0x194d('0x7c')]['query'](_0x366a53[_0x194d('0x8d')](),{'type':db[_0x194d('0x7c')][_0x194d('0x8e')]['SELECT']})[_0x194d('0x22')](function(_0x53ee3b){if(_0x53ee3b[_0x194d('0x4f')]===0x1){return _0xe58a52['id'];}else{var _0x5f4e82=_['every'](_[_0x194d('0x42')](_0x53ee3b,_0x194d('0x8f')),function(_0x4b5d2b){return _[_0x194d('0x90')](_0x5977ae,_0x4b5d2b);});if(_0x5f4e82){return _0xe58a52['id'];}}}));}}return BPromise[_0x194d('0x91')](_0x28ebfb)['then'](function(_0x303f09){_0x2039d1=_(_0x2039d1)[_0x194d('0x92')](_0x303f09)[_0x194d('0x93')]()[_0x194d('0x94')]();return db[_0x194d('0x43')]['find']({'where':{'id':_0x10c249['params']['id']}})[_0x194d('0x22')](function(_0x1d3919){return db[_0x194d('0x7c')]['transaction'](function(_0x2daeb7){return _0x1d3919[_0x194d('0x84')](_0x10c249[_0x194d('0x49')][_0x194d('0x76')],{'transaction':_0x2daeb7})[_0x194d('0x22')](function(){if(!_[_0x194d('0x95')](_0x2039d1)){return _0x1d3919['removeAgents'](_0x2039d1,{'transaction':_0x2daeb7});}})['then'](function(){_0x2039d1[_0x194d('0x81')](function(_0x348f53){socket[_0x194d('0x82')]('userChatQueue:remove',{'UserId':_0x348f53,'ChatQueueId':_0x1d3919['id']});});});});});});})[_0x194d('0x22')](respondWithStatusCode(_0x16b431,null))['catch'](handleError(_0x16b431,null));};exports[_0x194d('0x96')]=function(_0x2c8574,_0x54055d,_0x678c10){return db[_0x194d('0x43')]['find']({'where':{'id':_0x2c8574[_0x194d('0x59')]['id']}})['then'](handleEntityNotFound(_0x54055d,null))[_0x194d('0x22')](function(_0x2ffc9c){if(_0x2ffc9c){return _0x2ffc9c[_0x194d('0x96')](_0x2c8574[_0x194d('0x5e')][_0x194d('0x76')],_['omit'](_0x2c8574[_0x194d('0x5e')],[_0x194d('0x76'),'id'])||{})['spread'](function(_0x31923d){for(var _0x29aad6=0x0;_0x29aad6<_0x2c8574['body'][_0x194d('0x76')][_0x194d('0x4f')];_0x29aad6+=0x1){socket[_0x194d('0x82')]('userChatQueue:save',{'UserId':Number(_0x2c8574[_0x194d('0x5e')][_0x194d('0x76')][_0x29aad6]),'ChatQueueId':Number(_0x2c8574['params']['id'])});}return _0x31923d;});}})[_0x194d('0x22')](respondWithResult(_0x54055d,null))[_0x194d('0x2d')](handleError(_0x54055d,null));};exports[_0x194d('0x97')]=function(_0x62d37b,_0x166a70,_0x55cf25){return db[_0x194d('0x43')][_0x194d('0x5c')]({'where':{'id':_0x62d37b[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x166a70,null))[_0x194d('0x22')](function(_0x113ad0){if(_0x113ad0){return _0x113ad0[_0x194d('0x97')](_0x62d37b[_0x194d('0x49')][_0x194d('0x76')])[_0x194d('0x22')](function(){if(_[_0x194d('0x98')](_0x62d37b[_0x194d('0x49')]['ids'])){for(var _0x5947e8=0x0;_0x5947e8<_0x62d37b[_0x194d('0x49')][_0x194d('0x76')][_0x194d('0x4f')];_0x5947e8+=0x1){socket[_0x194d('0x82')](_0x194d('0x99'),{'UserId':Number(_0x62d37b['query']['ids'][_0x5947e8]),'ChatQueueId':Number(_0x62d37b[_0x194d('0x59')]['id'])});}}else{socket[_0x194d('0x82')](_0x194d('0x99'),{'UserId':Number(_0x62d37b[_0x194d('0x49')][_0x194d('0x76')]),'ChatQueueId':Number(_0x62d37b[_0x194d('0x59')]['id'])});}});}})['then'](respondWithStatusCode(_0x166a70,null))[_0x194d('0x2d')](handleError(_0x166a70,null));};exports[_0x194d('0x9a')]=function(_0xb6ea39,_0x2976da,_0x522481){var _0x1c429a={};var _0x139b40={};var _0x3a2c36;var _0x150b63;return db['ChatQueue'][_0x194d('0x68')]({'where':{'id':_0xb6ea39[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x2976da,null))[_0x194d('0x22')](function(_0x2b3024){if(_0x2b3024){_0x3a2c36=_0x2b3024;_0x139b40['model']=_['keys'](db[_0x194d('0x78')]['rawAttributes']);_0x139b40[_0x194d('0x49')]=_['keys'](_0xb6ea39['query']);_0x139b40[_0x194d('0x4b')]=_[_0x194d('0x4c')](_0x139b40['model'],_0x139b40[_0x194d('0x49')]);_0x1c429a[_0x194d('0x4d')]=_[_0x194d('0x4c')](_0x139b40[_0x194d('0x48')],qs[_0x194d('0x4e')](_0xb6ea39['query'][_0x194d('0x4e')]));_0x1c429a[_0x194d('0x4d')]=_0x1c429a[_0x194d('0x4d')][_0x194d('0x4f')]?_0x1c429a[_0x194d('0x4d')]:_0x139b40[_0x194d('0x48')];_0x1c429a[_0x194d('0x51')]=qs[_0x194d('0x52')](_0xb6ea39[_0x194d('0x49')]['sort']);_0x1c429a[_0x194d('0x54')]=qs[_0x194d('0x4b')](_[_0x194d('0x75')](_0xb6ea39[_0x194d('0x49')],_0x139b40[_0x194d('0x4b')]));if(_0xb6ea39[_0x194d('0x49')]['filter']){_0x1c429a['where']=_[_0x194d('0x5a')](_0x1c429a[_0x194d('0x54')],{'$or':_[_0x194d('0x42')](_0x1c429a[_0x194d('0x4d')],function(_0x2c6247){var _0x350e7c={};_0x350e7c[_0x2c6247]={'$like':'%'+_0xb6ea39['query'][_0x194d('0x53')]+'%'};return _0x350e7c;})});}_0x1c429a=_['merge']({},_0x1c429a,_0xb6ea39[_0x194d('0x5b')]);return _0x3a2c36['getAgents'](_0x1c429a);}})[_0x194d('0x22')](function(_0xd42497){if(_0xd42497){_0x150b63=_0xd42497[_0x194d('0x4f')];if(!_0xb6ea39[_0x194d('0x49')][_0x194d('0x6a')](_0x194d('0x50'))){_0x1c429a[_0x194d('0x33')]=qs['limit'](_0xb6ea39[_0x194d('0x49')]['limit']);_0x1c429a[_0x194d('0x31')]=qs[_0x194d('0x31')](_0xb6ea39[_0x194d('0x49')][_0x194d('0x31')]);}return _0x3a2c36[_0x194d('0x9a')](_0x1c429a);}})['then'](function(_0x5b45da){if(_0x5b45da){return _0x5b45da?{'count':_0x150b63,'rows':_0x5b45da}:null;}})[_0x194d('0x22')](respondWithResult(_0x2976da,null))[_0x194d('0x2d')](handleError(_0x2976da,null));};
\ No newline at end of file
+var _0x76d3=['ChatQueue,\x20%s,\x20%s,\x20%s','error','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','destroy','ChatQueues','UserProfileResource','stack','name','send','index','rawAttributes','model','map','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','ChatQueue','includeAll','include','findAll','rows','show','params','keys','find','create','body','user','get','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','getMembers','findOne','UserChatQueue','ChatQueueId','findAndCountAll','UserId','agent','updatedAt','createdAt','format','%s/%s','SIP','chatPause','getTeams','Team','addTeams','ids','User','Agents','online','voicePause','interface','flatMap','sequelize','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','union','compact','transaction','userChatQueue:remove','addAgents','omit','removeAgents','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','./chatQueue.socket','register','jayson/promise','client','http','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x556d7a,_0x2cfa75){var _0x15968a=function(_0x2aa01a){while(--_0x2aa01a){_0x556d7a['push'](_0x556d7a['shift']());}};_0x15968a(++_0x2cfa75);}(_0x76d3,0x1a0));var _0x376d=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x76d3[_0x17d9e3];return _0x14192d;};'use strict';var emlformat=require(_0x376d('0x0'));var rimraf=require(_0x376d('0x1'));var zipdir=require(_0x376d('0x2'));var jsonpatch=require(_0x376d('0x3'));var rp=require(_0x376d('0x4'));var moment=require(_0x376d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x376d('0x6'));var util=require('util');var path=require(_0x376d('0x7'));var sox=require(_0x376d('0x8'));var csv=require(_0x376d('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x376d('0xa'));var _=require(_0x376d('0xb'));var squel=require(_0x376d('0xc'));var crypto=require(_0x376d('0xd'));var jsforce=require(_0x376d('0xe'));var deskjs=require(_0x376d('0xf'));var toCsv=require(_0x376d('0x9'));var querystring=require(_0x376d('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x376d('0x11'));var qs=require(_0x376d('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x376d('0x13'));var utils=require(_0x376d('0x14'));var config=require(_0x376d('0x15'));var licenseUtil=require(_0x376d('0x16'));var db=require('../../mysqldb')['db'];config[_0x376d('0x17')]=_[_0x376d('0x18')](config['redis'],{'host':_0x376d('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x376d('0x17')]));require(_0x376d('0x1a'))[_0x376d('0x1b')](socket);var jayson=require(_0x376d('0x1c'));var client=jayson[_0x376d('0x1d')][_0x376d('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x7197d2,_0x38070a,_0x5b61e5,_0x263b69){return new BPromise(function(_0x284349,_0x1a2ff9){var _0x270a74=_0x263b69||client;return _0x270a74[_0x376d('0x1f')](_0x7197d2,_0x5b61e5)[_0x376d('0x20')](function(_0x17c3e8){logger[_0x376d('0x21')](_0x376d('0x22'),_0x38070a,_0x376d('0x23'));logger[_0x376d('0x24')](_0x376d('0x25'),_0x38070a,_0x376d('0x23'),JSON['stringify'](_0x17c3e8));if(_0x17c3e8['error']){if(_0x17c3e8[_0x376d('0x26')]['code']===0x1f4){logger[_0x376d('0x26')](_0x376d('0x22'),_0x38070a,_0x17c3e8[_0x376d('0x26')][_0x376d('0x27')]);return _0x1a2ff9(_0x17c3e8[_0x376d('0x26')]['message']);}logger[_0x376d('0x26')](_0x376d('0x22'),_0x38070a,_0x17c3e8[_0x376d('0x26')][_0x376d('0x27')]);return _0x284349(_0x17c3e8[_0x376d('0x26')]['message']);}else{logger['info'](_0x376d('0x22'),_0x38070a,_0x376d('0x23'));_0x284349(_0x17c3e8[_0x376d('0x28')]['message']);}})[_0x376d('0x29')](function(_0x1d0cae){logger['error']('ChatQueue,\x20%s,\x20%s',_0x38070a,_0x1d0cae);_0x1a2ff9(_0x1d0cae);});});}function respondWithStatusCode(_0x1b0e1f,_0x586159){_0x586159=_0x586159||0xcc;return function(_0x141086){if(_0x141086){return _0x1b0e1f[_0x376d('0x2a')](_0x586159);}return _0x1b0e1f[_0x376d('0x2b')](_0x586159)[_0x376d('0x2c')]();};}function respondWithResult(_0x56e493,_0x4ad084){_0x4ad084=_0x4ad084||0xc8;return function(_0x5eeb18){if(_0x5eeb18){return _0x56e493[_0x376d('0x2b')](_0x4ad084)[_0x376d('0x2d')](_0x5eeb18);}};}function respondWithFilteredResult(_0x21d9c5,_0x1a7ae4){return function(_0x9ef77b){if(_0x9ef77b){var _0x2f8dd1=typeof _0x1a7ae4[_0x376d('0x2e')]===_0x376d('0x2f')&&typeof _0x1a7ae4[_0x376d('0x30')]===_0x376d('0x2f');var _0x109e2e=_0x9ef77b['count'];var _0x33c5c4=_0x2f8dd1?0x0:_0x1a7ae4[_0x376d('0x2e')];var _0x38a62d=_0x2f8dd1?_0x9ef77b[_0x376d('0x31')]:_0x1a7ae4[_0x376d('0x2e')]+_0x1a7ae4[_0x376d('0x30')];var _0x1eb09d;if(_0x38a62d>=_0x109e2e){_0x38a62d=_0x109e2e;_0x1eb09d=0xc8;}else{_0x1eb09d=0xce;}_0x21d9c5[_0x376d('0x2b')](_0x1eb09d);return _0x21d9c5[_0x376d('0x32')](_0x376d('0x33'),_0x33c5c4+'-'+_0x38a62d+'/'+_0x109e2e)[_0x376d('0x2d')](_0x9ef77b);}return null;};}function patchUpdates(_0x51ea6f){return function(_0x136ca8){try{jsonpatch['apply'](_0x136ca8,_0x51ea6f,!![]);}catch(_0x2c6500){return BPromise[_0x376d('0x34')](_0x2c6500);}return _0x136ca8[_0x376d('0x35')]();};}function saveUpdates(_0x57898e,_0x48f919){return function(_0x5b0fca){if(_0x5b0fca){return _0x5b0fca['update'](_0x57898e)[_0x376d('0x20')](function(_0x5667fb){return _0x5667fb;});}return null;};}function removeEntity(_0xae9530,_0x4f4a37){return function(_0x583022){if(_0x583022){return _0x583022[_0x376d('0x36')]()[_0x376d('0x20')](function(){var _0x5b0280=_0x583022['get']({'plain':!![]});var _0x4a3479=_0x376d('0x37');return db[_0x376d('0x38')][_0x376d('0x36')]({'where':{'type':_0x4a3479,'resourceId':_0x5b0280['id']}})[_0x376d('0x20')](function(){return _0x583022;});})['then'](function(){_0xae9530['status'](0xcc)[_0x376d('0x2c')]();});}};}function handleEntityNotFound(_0x107866,_0x21a0d0){return function(_0x3ec4bf){if(!_0x3ec4bf){_0x107866['sendStatus'](0x194);}return _0x3ec4bf;};}function handleError(_0x29b2a8,_0x36f29b){_0x36f29b=_0x36f29b||0x1f4;return function(_0x38988d){logger[_0x376d('0x26')](_0x38988d[_0x376d('0x39')]);if(_0x38988d['name']){delete _0x38988d[_0x376d('0x3a')];}_0x29b2a8['status'](_0x36f29b)[_0x376d('0x3b')](_0x38988d);};}exports[_0x376d('0x3c')]=function(_0x796d1,_0x3447b7){var _0x4761a4={},_0x1a5c48={},_0x5b5e66={'count':0x0,'rows':[]};var _0x2a9365=_['map'](db['ChatQueue'][_0x376d('0x3d')],function(_0x4ab90f){return{'name':_0x4ab90f['fieldName'],'type':_0x4ab90f['type']['key']};});_0x1a5c48[_0x376d('0x3e')]=_[_0x376d('0x3f')](_0x2a9365,_0x376d('0x3a'));_0x1a5c48[_0x376d('0x40')]=_['keys'](_0x796d1['query']);_0x1a5c48[_0x376d('0x41')]=_['intersection'](_0x1a5c48[_0x376d('0x3e')],_0x1a5c48['query']);_0x4761a4[_0x376d('0x42')]=_[_0x376d('0x43')](_0x1a5c48['model'],qs['fields'](_0x796d1['query'][_0x376d('0x44')]));_0x4761a4[_0x376d('0x42')]=_0x4761a4[_0x376d('0x42')][_0x376d('0x45')]?_0x4761a4[_0x376d('0x42')]:_0x1a5c48[_0x376d('0x3e')];if(!_0x796d1[_0x376d('0x40')][_0x376d('0x46')](_0x376d('0x47'))){_0x4761a4['limit']=qs[_0x376d('0x30')](_0x796d1[_0x376d('0x40')][_0x376d('0x30')]);_0x4761a4['offset']=qs[_0x376d('0x2e')](_0x796d1[_0x376d('0x40')]['offset']);}_0x4761a4[_0x376d('0x48')]=qs[_0x376d('0x49')](_0x796d1['query'][_0x376d('0x49')]);_0x4761a4[_0x376d('0x4a')]=qs[_0x376d('0x41')](_[_0x376d('0x4b')](_0x796d1[_0x376d('0x40')],_0x1a5c48[_0x376d('0x41')]),_0x2a9365);if(_0x796d1[_0x376d('0x40')]['filter']){_0x4761a4[_0x376d('0x4a')]=_[_0x376d('0x4c')](_0x4761a4[_0x376d('0x4a')],{'$or':_[_0x376d('0x3f')](_0x2a9365,function(_0x1c5b06){if(_0x1c5b06['type']!=='VIRTUAL'){var _0x584ce9={};_0x584ce9[_0x1c5b06[_0x376d('0x3a')]]={'$like':'%'+_0x796d1[_0x376d('0x40')][_0x376d('0x4d')]+'%'};return _0x584ce9;}})});}_0x4761a4=_[_0x376d('0x4c')]({},_0x4761a4,_0x796d1[_0x376d('0x4e')]);var _0x34dea8={'where':_0x4761a4[_0x376d('0x4a')]};return db[_0x376d('0x4f')][_0x376d('0x31')](_0x34dea8)['then'](function(_0x10fc96){_0x5b5e66[_0x376d('0x31')]=_0x10fc96;if(_0x796d1['query'][_0x376d('0x50')]){_0x4761a4[_0x376d('0x51')]=[{'all':!![]}];}return db[_0x376d('0x4f')][_0x376d('0x52')](_0x4761a4);})[_0x376d('0x20')](function(_0x133cb4){_0x5b5e66[_0x376d('0x53')]=_0x133cb4;return _0x5b5e66;})[_0x376d('0x20')](respondWithFilteredResult(_0x3447b7,_0x4761a4))[_0x376d('0x29')](handleError(_0x3447b7,null));};exports[_0x376d('0x54')]=function(_0x278392,_0x1c1c88){var _0x3e090c={'raw':!![],'where':{'id':_0x278392[_0x376d('0x55')]['id']}},_0x2e46f6={};_0x2e46f6[_0x376d('0x3e')]=_[_0x376d('0x56')](db[_0x376d('0x4f')][_0x376d('0x3d')]);_0x2e46f6[_0x376d('0x40')]=_[_0x376d('0x56')](_0x278392[_0x376d('0x40')]);_0x2e46f6['filters']=_[_0x376d('0x43')](_0x2e46f6[_0x376d('0x3e')],_0x2e46f6[_0x376d('0x40')]);_0x3e090c[_0x376d('0x42')]=_[_0x376d('0x43')](_0x2e46f6[_0x376d('0x3e')],qs[_0x376d('0x44')](_0x278392[_0x376d('0x40')][_0x376d('0x44')]));_0x3e090c[_0x376d('0x42')]=_0x3e090c['attributes'][_0x376d('0x45')]?_0x3e090c[_0x376d('0x42')]:_0x2e46f6[_0x376d('0x3e')];if(_0x278392['query']['includeAll']){_0x3e090c[_0x376d('0x51')]=[{'all':!![]}];}_0x3e090c=_['merge']({},_0x3e090c,_0x278392['options']);return db['ChatQueue'][_0x376d('0x57')](_0x3e090c)['then'](handleEntityNotFound(_0x1c1c88,null))['then'](respondWithResult(_0x1c1c88,null))['catch'](handleError(_0x1c1c88,null));};exports[_0x376d('0x58')]=function(_0x4538bb,_0xd41e93){return db[_0x376d('0x4f')]['create'](_0x4538bb[_0x376d('0x59')],{})[_0x376d('0x20')](function(_0x31c774){var _0x199ca6=_0x4538bb[_0x376d('0x5a')]['get']({'plain':!![]});if(!_0x199ca6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x199ca6['role']===_0x376d('0x5a')){var _0x2f6886=_0x31c774[_0x376d('0x5b')]({'plain':!![]});var _0x14220c=_0x376d('0x37');return db['UserProfileSection'][_0x376d('0x57')]({'where':{'name':_0x14220c,'userProfileId':_0x199ca6[_0x376d('0x5c')]},'raw':!![]})[_0x376d('0x20')](function(_0x2df3b5){if(_0x2df3b5&&_0x2df3b5[_0x376d('0x5d')]===0x0){return db[_0x376d('0x38')]['create']({'name':_0x2f6886[_0x376d('0x3a')],'resourceId':_0x2f6886['id'],'type':_0x2df3b5[_0x376d('0x3a')],'sectionId':_0x2df3b5['id']},{})['then'](function(){return _0x31c774;});}else{return _0x31c774;}})['catch'](function(_0x663fee){logger['error'](_0x376d('0x5e'),_0x663fee);throw _0x663fee;});}return _0x31c774;})[_0x376d('0x20')](respondWithResult(_0xd41e93,0xc9))[_0x376d('0x29')](handleError(_0xd41e93,null));};exports[_0x376d('0x5f')]=function(_0x18df1b,_0x1999bd){if(_0x18df1b['body']['id']){delete _0x18df1b[_0x376d('0x59')]['id'];}return db[_0x376d('0x4f')][_0x376d('0x57')]({'where':{'id':_0x18df1b[_0x376d('0x55')]['id']}})[_0x376d('0x20')](handleEntityNotFound(_0x1999bd,null))[_0x376d('0x20')](saveUpdates(_0x18df1b[_0x376d('0x59')],null))[_0x376d('0x20')](respondWithResult(_0x1999bd,null))[_0x376d('0x29')](handleError(_0x1999bd,null));};exports[_0x376d('0x36')]=function(_0x50f73c,_0x417b2e){return db[_0x376d('0x4f')][_0x376d('0x57')]({'where':{'id':_0x50f73c['params']['id']}})[_0x376d('0x20')](handleEntityNotFound(_0x417b2e,null))['then'](removeEntity(_0x417b2e,null))['catch'](handleError(_0x417b2e,null));};exports[_0x376d('0x60')]=function(_0x4ffd52,_0x293add){return db['ChatQueue'][_0x376d('0x60')]()[_0x376d('0x20')](respondWithResult(_0x293add,null))[_0x376d('0x29')](handleError(_0x293add,null));};exports[_0x376d('0x61')]=function(_0x3c5e7b,_0x4bae7b,_0xea0a0a){var _0x168991={'raw':!![],'where':{}},_0xf9182c={},_0x33dbf6;return db[_0x376d('0x4f')][_0x376d('0x62')]({'where':{'id':_0x3c5e7b['params']['id']}})[_0x376d('0x20')](handleEntityNotFound(_0x4bae7b,null))['then'](function(_0xba7e77){if(_0xba7e77){_0x33dbf6=_0xba7e77[_0x376d('0x5b')]({'plain':!![]});_0xf9182c[_0x376d('0x3e')]=_['keys'](db[_0x376d('0x63')][_0x376d('0x3d')]);_0xf9182c[_0x376d('0x40')]=_['keys'](_0x3c5e7b[_0x376d('0x40')]);_0xf9182c[_0x376d('0x41')]=_['intersection'](_0xf9182c[_0x376d('0x3e')],_0xf9182c[_0x376d('0x40')]);_0x168991[_0x376d('0x42')]=_['intersection'](_0xf9182c[_0x376d('0x3e')],qs[_0x376d('0x44')](_0x3c5e7b[_0x376d('0x40')][_0x376d('0x44')]));_0x168991[_0x376d('0x42')]=_0x168991['attributes'][_0x376d('0x45')]?_0x168991[_0x376d('0x42')]:_0xf9182c[_0x376d('0x3e')];if(!_0x3c5e7b[_0x376d('0x40')][_0x376d('0x46')](_0x376d('0x47'))){_0x168991[_0x376d('0x30')]=qs['limit'](_0x3c5e7b[_0x376d('0x40')]['limit']);_0x168991[_0x376d('0x2e')]=qs[_0x376d('0x2e')](_0x3c5e7b['query'][_0x376d('0x2e')]);}_0x168991['order']=qs[_0x376d('0x49')](_0x3c5e7b[_0x376d('0x40')]['sort']);_0x168991[_0x376d('0x4a')]=qs[_0x376d('0x41')](_[_0x376d('0x4b')](_0x3c5e7b['query'],_0xf9182c[_0x376d('0x41')]));_0x168991[_0x376d('0x4a')][_0x376d('0x64')]=_0xba7e77['id'];if(_0x3c5e7b[_0x376d('0x40')][_0x376d('0x4d')]){_0x168991[_0x376d('0x4a')]=_['merge'](_0x168991[_0x376d('0x4a')],{'$or':_[_0x376d('0x3f')](_0x168991['attributes'],function(_0x1075a0){var _0x4b51fe={};_0x4b51fe[_0x1075a0]={'$like':'%'+_0x3c5e7b[_0x376d('0x40')][_0x376d('0x4d')]+'%'};return _0x4b51fe;})});}_0x168991=_[_0x376d('0x4c')]({},_0x168991,_0x3c5e7b[_0x376d('0x4e')]);return db[_0x376d('0x63')][_0x376d('0x52')](_0x168991);}})[_0x376d('0x20')](function(_0x5376bd){if(_0x5376bd){return db['User'][_0x376d('0x65')]({'where':{'id':_[_0x376d('0x3f')](_0x5376bd,_0x376d('0x66')),'role':_0x376d('0x67')},'attributes':['id',_0x376d('0x3a'),'chatPause',_0x376d('0x68'),_0x376d('0x69')]});}})[_0x376d('0x20')](function(_0x4bd285){if(_0x4bd285){return{'count':_0x4bd285[_0x376d('0x31')],'rows':_[_0x376d('0x3f')](_0x4bd285['rows'],function(_0x170145){return{'membername':_0x170145[_0x376d('0x3a')],'UserId':_0x170145['id'],'queue_name':_0x33dbf6['name'],'ChatQueueId':_0x33dbf6['id'],'interface':util[_0x376d('0x6a')](_0x376d('0x6b'),_0x376d('0x6c'),_0x170145['name']),'penalty':0x0,'paused':_0x170145[_0x376d('0x6d')],'createdAt':_0x170145[_0x376d('0x69')],'updatedAt':_0x170145[_0x376d('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x4bae7b,_0x168991))[_0x376d('0x29')](handleError(_0x4bae7b,null));};exports[_0x376d('0x6e')]=function(_0x2fba07,_0x49faf5,_0x5a4c2e){var _0xfbce6d={};var _0x40bc30={};var _0x2dbef0;var _0x688c0f;return db[_0x376d('0x4f')][_0x376d('0x62')]({'where':{'id':_0x2fba07[_0x376d('0x55')]['id']}})[_0x376d('0x20')](handleEntityNotFound(_0x49faf5,null))['then'](function(_0x57a105){if(_0x57a105){_0x2dbef0=_0x57a105;_0x40bc30[_0x376d('0x3e')]=_[_0x376d('0x56')](db[_0x376d('0x6f')]['rawAttributes']);_0x40bc30['query']=_[_0x376d('0x56')](_0x2fba07['query']);_0x40bc30[_0x376d('0x41')]=_['intersection'](_0x40bc30[_0x376d('0x3e')],_0x40bc30[_0x376d('0x40')]);_0xfbce6d[_0x376d('0x42')]=_[_0x376d('0x43')](_0x40bc30[_0x376d('0x3e')],qs['fields'](_0x2fba07[_0x376d('0x40')][_0x376d('0x44')]));_0xfbce6d[_0x376d('0x42')]=_0xfbce6d[_0x376d('0x42')][_0x376d('0x45')]?_0xfbce6d[_0x376d('0x42')]:_0x40bc30[_0x376d('0x3e')];_0xfbce6d['order']=qs['sort'](_0x2fba07[_0x376d('0x40')][_0x376d('0x49')]);_0xfbce6d[_0x376d('0x4a')]=qs[_0x376d('0x41')](_['pick'](_0x2fba07[_0x376d('0x40')],_0x40bc30[_0x376d('0x41')]));if(_0x2fba07['query'][_0x376d('0x4d')]){_0xfbce6d['where']=_[_0x376d('0x4c')](_0xfbce6d[_0x376d('0x4a')],{'$or':_[_0x376d('0x3f')](_0xfbce6d['attributes'],function(_0x1cc204){var _0x4b2ae1={};_0x4b2ae1[_0x1cc204]={'$like':'%'+_0x2fba07[_0x376d('0x40')]['filter']+'%'};return _0x4b2ae1;})});}_0xfbce6d=_[_0x376d('0x4c')]({},_0xfbce6d,_0x2fba07[_0x376d('0x4e')]);return _0x2dbef0[_0x376d('0x6e')](_0xfbce6d);}})[_0x376d('0x20')](function(_0x35feed){if(_0x35feed){_0x688c0f=_0x35feed[_0x376d('0x45')];if(!_0x2fba07[_0x376d('0x40')][_0x376d('0x46')]('nolimit')){_0xfbce6d[_0x376d('0x30')]=qs['limit'](_0x2fba07['query'][_0x376d('0x30')]);_0xfbce6d['offset']=qs['offset'](_0x2fba07[_0x376d('0x40')][_0x376d('0x2e')]);}return _0x2dbef0[_0x376d('0x6e')](_0xfbce6d);}})['then'](function(_0x5b621e){if(_0x5b621e){return _0x5b621e?{'count':_0x688c0f,'rows':_0x5b621e}:null;}})[_0x376d('0x20')](respondWithResult(_0x49faf5,null))[_0x376d('0x29')](handleError(_0x49faf5,null));};exports[_0x376d('0x70')]=function(_0x54f601,_0x582de3,_0x22e9aa){var _0x58d844=_0x54f601[_0x376d('0x59')][_0x376d('0x71')];return db['Team'][_0x376d('0x52')]({'where':{'id':_0x58d844},'attributes':['id'],'include':[{'model':db[_0x376d('0x72')],'as':_0x376d('0x73'),'attributes':['id',_0x376d('0x3a'),_0x376d('0x74'),_0x376d('0x75'),_0x376d('0x76')],'raw':!![]}]})['then'](function(_0x291730){if(_0x291730){var _0xbe9b92=_[_0x376d('0x77')](_0x291730,function(_0x32df3e){var _0x119379=_0x32df3e[_0x376d('0x5b')]({'plain':!![]});return _0x119379[_0x376d('0x73')];});return db['ChatQueue']['find']({'where':{'id':_0x54f601[_0x376d('0x55')]['id']}})[_0x376d('0x20')](function(_0x31ee63){return db[_0x376d('0x78')]['transaction'](function(_0x17cb36){return _0x31ee63[_0x376d('0x70')](_0x58d844,{'transaction':_0x17cb36})['then'](function(){return BPromise['each'](_0xbe9b92,function(_0x2b92d5){return db['UserChatQueue'][_0x376d('0x79')]({'where':{'UserId':_0x2b92d5['id'],'ChatQueueId':_0x54f601[_0x376d('0x55')]['id']},'transaction':_0x17cb36});});})[_0x376d('0x20')](function(){_0xbe9b92[_0x376d('0x7a')](function(_0x53b63a){socket[_0x376d('0x7b')](_0x376d('0x7c'),{'UserId':_0x53b63a['id'],'ChatQueueId':_0x31ee63['id']});});});});});}})[_0x376d('0x20')](respondWithStatusCode(_0x582de3,null))[_0x376d('0x29')](handleError(_0x582de3,null));};exports[_0x376d('0x7d')]=function(_0x1d4148,_0xbca9b4,_0x39568c){return db[_0x376d('0x6f')]['findAll']({'where':{'id':_0x1d4148[_0x376d('0x40')][_0x376d('0x71')]},'attributes':['id'],'include':[{'model':db[_0x376d('0x72')],'as':_0x376d('0x73'),'attributes':['id'],'raw':!![]}]})[_0x376d('0x20')](handleEntityNotFound(_0xbca9b4,null))[_0x376d('0x20')](function(_0x4506dd){var _0x35bfc2=_[_0x376d('0x3f')](_0x4506dd,'id');var _0x4b292b=[];var _0x446cfd=[];var _0x9612c2=squel[_0x376d('0x7e')]();_0x9612c2[_0x376d('0x7f')](_0x376d('0x80'))[_0x376d('0x81')](_0x376d('0x82'),'tq')[_0x376d('0x83')](_0x376d('0x84'),'ut',_0x376d('0x85'))[_0x376d('0x4a')]('ChatQueueId\x20=\x20?',_0x1d4148[_0x376d('0x55')]['id']);for(var _0x470cce=0x0;_0x470cce<_0x4506dd[_0x376d('0x45')];_0x470cce+=0x1){let _0x26f696=_0x4506dd[_0x470cce];for(var _0x398eef=0x0;_0x398eef<_0x26f696[_0x376d('0x73')]['length'];_0x398eef+=0x1){let _0x15ca60=_0x26f696[_0x376d('0x73')][_0x398eef];var _0x5e4c77=_0x9612c2[_0x376d('0x86')]();_0x5e4c77[_0x376d('0x4a')](_0x376d('0x87'),_0x15ca60['id']);_0x446cfd[_0x376d('0x88')](db[_0x376d('0x78')]['query'](_0x5e4c77[_0x376d('0x89')](),{'type':db[_0x376d('0x78')][_0x376d('0x8a')][_0x376d('0x8b')]})[_0x376d('0x20')](function(_0x1d583c){if(_0x1d583c['length']===0x1){return _0x15ca60['id'];}else{var _0x51c37c=_[_0x376d('0x8c')](_[_0x376d('0x3f')](_0x1d583c,_0x376d('0x8d')),function(_0x24a695){return _[_0x376d('0x8e')](_0x35bfc2,_0x24a695);});if(_0x51c37c){return _0x15ca60['id'];}}}));}}return BPromise['all'](_0x446cfd)['then'](function(_0x2bd45a){_0x4b292b=_(_0x4b292b)[_0x376d('0x8f')](_0x2bd45a)[_0x376d('0x90')]()['value']();return db[_0x376d('0x4f')][_0x376d('0x57')]({'where':{'id':_0x1d4148[_0x376d('0x55')]['id']}})[_0x376d('0x20')](function(_0x192609){return db[_0x376d('0x78')][_0x376d('0x91')](function(_0x3c2652){return _0x192609['removeTeams'](_0x1d4148[_0x376d('0x40')][_0x376d('0x71')],{'transaction':_0x3c2652})[_0x376d('0x20')](function(){if(!_['isEmpty'](_0x4b292b)){return _0x192609['removeAgents'](_0x4b292b,{'transaction':_0x3c2652});}})[_0x376d('0x20')](function(){_0x4b292b[_0x376d('0x7a')](function(_0x269074){socket['emit'](_0x376d('0x92'),{'UserId':_0x269074,'ChatQueueId':_0x192609['id']});});});});});});})[_0x376d('0x20')](respondWithStatusCode(_0xbca9b4,null))[_0x376d('0x29')](handleError(_0xbca9b4,null));};exports[_0x376d('0x93')]=function(_0x443ba4,_0x119079,_0x1ed46d){return db['ChatQueue']['find']({'where':{'id':_0x443ba4[_0x376d('0x55')]['id']}})[_0x376d('0x20')](handleEntityNotFound(_0x119079,null))['then'](function(_0x6b6066){if(_0x6b6066){return _0x6b6066['addAgents'](_0x443ba4[_0x376d('0x59')][_0x376d('0x71')],_[_0x376d('0x94')](_0x443ba4[_0x376d('0x59')],[_0x376d('0x71'),'id'])||{})['spread'](function(_0x3c7e1f){for(var _0x1cc11b=0x0;_0x1cc11b<_0x443ba4[_0x376d('0x59')][_0x376d('0x71')][_0x376d('0x45')];_0x1cc11b+=0x1){socket[_0x376d('0x7b')](_0x376d('0x7c'),{'UserId':Number(_0x443ba4[_0x376d('0x59')][_0x376d('0x71')][_0x1cc11b]),'ChatQueueId':Number(_0x443ba4[_0x376d('0x55')]['id'])});}return _0x3c7e1f;});}})[_0x376d('0x20')](respondWithResult(_0x119079,null))['catch'](handleError(_0x119079,null));};exports[_0x376d('0x95')]=function(_0x2dfdb7,_0x1d6049,_0x370b1b){return db['ChatQueue'][_0x376d('0x57')]({'where':{'id':_0x2dfdb7[_0x376d('0x55')]['id']}})['then'](handleEntityNotFound(_0x1d6049,null))['then'](function(_0x109a60){if(_0x109a60){return _0x109a60[_0x376d('0x95')](_0x2dfdb7[_0x376d('0x40')][_0x376d('0x71')])[_0x376d('0x20')](function(){if(_['isArray'](_0x2dfdb7[_0x376d('0x40')][_0x376d('0x71')])){for(var _0x202786=0x0;_0x202786<_0x2dfdb7[_0x376d('0x40')][_0x376d('0x71')][_0x376d('0x45')];_0x202786+=0x1){socket['emit'](_0x376d('0x92'),{'UserId':Number(_0x2dfdb7['query']['ids'][_0x202786]),'ChatQueueId':Number(_0x2dfdb7['params']['id'])});}}else{socket[_0x376d('0x7b')](_0x376d('0x92'),{'UserId':Number(_0x2dfdb7[_0x376d('0x40')]['ids']),'ChatQueueId':Number(_0x2dfdb7['params']['id'])});}});}})[_0x376d('0x20')](respondWithStatusCode(_0x1d6049,null))['catch'](handleError(_0x1d6049,null));};exports[_0x376d('0x96')]=function(_0x18146b,_0x53886a,_0x4c0782){var _0x167b8a={};var _0x85916b={};var _0x3a30d2;var _0x1fbe32;return db[_0x376d('0x4f')][_0x376d('0x62')]({'where':{'id':_0x18146b[_0x376d('0x55')]['id']}})['then'](handleEntityNotFound(_0x53886a,null))['then'](function(_0x1b97cb){if(_0x1b97cb){_0x3a30d2=_0x1b97cb;_0x85916b[_0x376d('0x3e')]=_[_0x376d('0x56')](db[_0x376d('0x72')][_0x376d('0x3d')]);_0x85916b[_0x376d('0x40')]=_[_0x376d('0x56')](_0x18146b[_0x376d('0x40')]);_0x85916b[_0x376d('0x41')]=_[_0x376d('0x43')](_0x85916b[_0x376d('0x3e')],_0x85916b[_0x376d('0x40')]);_0x167b8a[_0x376d('0x42')]=_[_0x376d('0x43')](_0x85916b['model'],qs[_0x376d('0x44')](_0x18146b[_0x376d('0x40')][_0x376d('0x44')]));_0x167b8a['attributes']=_0x167b8a[_0x376d('0x42')][_0x376d('0x45')]?_0x167b8a[_0x376d('0x42')]:_0x85916b['model'];_0x167b8a[_0x376d('0x48')]=qs[_0x376d('0x49')](_0x18146b['query']['sort']);_0x167b8a[_0x376d('0x4a')]=qs['filters'](_['pick'](_0x18146b[_0x376d('0x40')],_0x85916b[_0x376d('0x41')]));if(_0x18146b[_0x376d('0x40')][_0x376d('0x4d')]){_0x167b8a[_0x376d('0x4a')]=_[_0x376d('0x4c')](_0x167b8a[_0x376d('0x4a')],{'$or':_[_0x376d('0x3f')](_0x167b8a[_0x376d('0x42')],function(_0x11814a){var _0x1770a1={};_0x1770a1[_0x11814a]={'$like':'%'+_0x18146b['query'][_0x376d('0x4d')]+'%'};return _0x1770a1;})});}_0x167b8a=_['merge']({},_0x167b8a,_0x18146b['options']);return _0x3a30d2[_0x376d('0x96')](_0x167b8a);}})[_0x376d('0x20')](function(_0x3aa2f4){if(_0x3aa2f4){_0x1fbe32=_0x3aa2f4['length'];if(!_0x18146b[_0x376d('0x40')][_0x376d('0x46')](_0x376d('0x47'))){_0x167b8a[_0x376d('0x30')]=qs[_0x376d('0x30')](_0x18146b['query'][_0x376d('0x30')]);_0x167b8a[_0x376d('0x2e')]=qs[_0x376d('0x2e')](_0x18146b[_0x376d('0x40')]['offset']);}return _0x3a30d2[_0x376d('0x96')](_0x167b8a);}})[_0x376d('0x20')](function(_0x575a78){if(_0x575a78){return _0x575a78?{'count':_0x1fbe32,'rows':_0x575a78}:null;}})[_0x376d('0x20')](respondWithResult(_0x53886a,null))['catch'](handleError(_0x53886a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf5b0=['events','../../mysqldb','ChatQueue','setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x1bfaea,_0x55ff33){var _0x2538e3=function(_0x5c5b2d){while(--_0x5c5b2d){_0x1bfaea['push'](_0x1bfaea['shift']());}};_0x2538e3(++_0x55ff33);}(_0xf5b0,0x10e));var _0x0f5b=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0xf5b0[_0x134c2e];return _0x2825db;};'use strict';var EventEmitter=require(_0x0f5b('0x0'));var ChatQueue=require(_0x0f5b('0x1'))['db'][_0x0f5b('0x2')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0x0f5b('0x3')](0x0);var events={'afterCreate':_0x0f5b('0x4'),'afterUpdate':'update','afterDestroy':_0x0f5b('0x5')};function emitEvent(_0x567e7f){return function(_0x3e7f6d,_0xf49b6a,_0x353dea){ChatQueueEvents[_0x0f5b('0x6')](_0x567e7f+':'+_0x3e7f6d['id'],_0x3e7f6d);ChatQueueEvents[_0x0f5b('0x6')](_0x567e7f,_0x3e7f6d);_0x353dea(null);};}for(var e in events){if(events[_0x0f5b('0x7')](e)){var event=events[e];ChatQueue[_0x0f5b('0x8')](e,emitEvent(event));}}module[_0x0f5b('0x9')]=ChatQueueEvents;
\ No newline at end of file
+var _0x3597=['hook','events','ChatQueue','setMaxListeners','save','update','remove','emit'];(function(_0x5326f3,_0xade490){var _0x394455=function(_0x52534c){while(--_0x52534c){_0x5326f3['push'](_0x5326f3['shift']());}};_0x394455(++_0xade490);}(_0x3597,0x91));var _0x7359=function(_0x347618,_0x58effb){_0x347618=_0x347618-0x0;var _0xa1223e=_0x3597[_0x347618];return _0xa1223e;};'use strict';var EventEmitter=require(_0x7359('0x0'));var ChatQueue=require('../../mysqldb')['db'][_0x7359('0x1')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0x7359('0x2')](0x0);var events={'afterCreate':_0x7359('0x3'),'afterUpdate':_0x7359('0x4'),'afterDestroy':_0x7359('0x5')};function emitEvent(_0x29cfd2){return function(_0x3ae497,_0x5e7e88,_0x2244cd){ChatQueueEvents[_0x7359('0x6')](_0x29cfd2+':'+_0x3ae497['id'],_0x3ae497);ChatQueueEvents[_0x7359('0x6')](_0x29cfd2,_0x3ae497);_0x2244cd(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatQueue[_0x7359('0x7')](e,emitEvent(event));}}module['exports']=ChatQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6817=['path','rimraf','../../config/environment','./chatQueue.attributes','define','ChatQueue','lodash','util','../../config/logger','moment','bluebird','request-promise'];(function(_0x1af711,_0x29e9a4){var _0x11b425=function(_0x355249){while(--_0x355249){_0x1af711['push'](_0x1af711['shift']());}};_0x11b425(++_0x29e9a4);}(_0x6817,0x126));var _0x7681=function(_0x4a1fbc,_0x1c75df){_0x4a1fbc=_0x4a1fbc-0x0;var _0x41404f=_0x6817[_0x4a1fbc];return _0x41404f;};'use strict';var _=require(_0x7681('0x0'));var util=require(_0x7681('0x1'));var logger=require(_0x7681('0x2'))('api');var moment=require(_0x7681('0x3'));var BPromise=require(_0x7681('0x4'));var rp=require(_0x7681('0x5'));var fs=require('fs');var path=require(_0x7681('0x6'));var rimraf=require(_0x7681('0x7'));var config=require(_0x7681('0x8'));var attributes=require(_0x7681('0x9'));module['exports']=function(_0x3977d7,_0x8e3258){return _0x3977d7[_0x7681('0xa')](_0x7681('0xb'),attributes,{'tableName':'chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb463=['rimraf','define','chat_queues','lodash','util','api','moment','bluebird','request-promise','path'];(function(_0x3cc28d,_0x586ed0){var _0x314327=function(_0x52f98d){while(--_0x52f98d){_0x3cc28d['push'](_0x3cc28d['shift']());}};_0x314327(++_0x586ed0);}(_0xb463,0x107));var _0x3b46=function(_0xdc6b85,_0x45fcf5){_0xdc6b85=_0xdc6b85-0x0;var _0x3839a0=_0xb463[_0xdc6b85];return _0x3839a0;};'use strict';var _=require(_0x3b46('0x0'));var util=require(_0x3b46('0x1'));var logger=require('../../config/logger')(_0x3b46('0x2'));var moment=require(_0x3b46('0x3'));var BPromise=require(_0x3b46('0x4'));var rp=require(_0x3b46('0x5'));var fs=require('fs');var path=require(_0x3b46('0x6'));var rimraf=require(_0x3b46('0x7'));var config=require('../../config/environment');var attributes=require('./chatQueue.attributes');module['exports']=function(_0x4cef72,_0x45c61b){return _0x4cef72[_0x3b46('0x8')]('ChatQueue',attributes,{'tableName':_0x3b46('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xceed=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','./chatQueue.socket','request','then','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','GetChatQueue','ChatQueue','findAll','options','where','attributes','limit','include','map','model','ShowChatQueue','find','raw','lodash','moment'];(function(_0x399993,_0x57a9aa){var _0x1d9f40=function(_0x5ed340){while(--_0x5ed340){_0x399993['push'](_0x399993['shift']());}};_0x1d9f40(++_0x57a9aa);}(_0xceed,0x76));var _0xdcee=function(_0x4b7b62,_0x4920a9){_0x4b7b62=_0x4b7b62-0x0;var _0x2280df=_0xceed[_0x4b7b62];return _0x2280df;};'use strict';var _=require(_0xdcee('0x0'));var util=require('util');var moment=require(_0xdcee('0x1'));var BPromise=require(_0xdcee('0x2'));var rs=require(_0xdcee('0x3'));var fs=require('fs');var Redis=require(_0xdcee('0x4'));var db=require(_0xdcee('0x5'))['db'];var utils=require(_0xdcee('0x6'));var logger=require(_0xdcee('0x7'))(_0xdcee('0x8'));var config=require(_0xdcee('0x9'));var jayson=require(_0xdcee('0xa'));var client=jayson['client'][_0xdcee('0xb')]({'port':0x232a});config[_0xdcee('0xc')]=_[_0xdcee('0xd')](config['redis'],{'host':_0xdcee('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xdcee('0xc')]));require(_0xdcee('0xf'))['register'](socket);function respondWithRpcPromise(_0x2f08d8,_0x36b071,_0x1a52bc){return new BPromise(function(_0x5e1d70,_0x51786c){return client[_0xdcee('0x10')](_0x2f08d8,_0x1a52bc)[_0xdcee('0x11')](function(_0xcad3d3){logger['info'](_0xdcee('0x12'),_0x36b071,_0xdcee('0x13'));logger[_0xdcee('0x14')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x36b071,'request\x20sent',JSON[_0xdcee('0x15')](_0xcad3d3));if(_0xcad3d3['error']){if(_0xcad3d3[_0xdcee('0x16')]['code']===0x1f4){logger[_0xdcee('0x16')](_0xdcee('0x12'),_0x36b071,_0xcad3d3[_0xdcee('0x16')]['message']);return _0x51786c(_0xcad3d3[_0xdcee('0x16')][_0xdcee('0x17')]);}logger[_0xdcee('0x16')](_0xdcee('0x12'),_0x36b071,_0xcad3d3[_0xdcee('0x16')][_0xdcee('0x17')]);return _0x5e1d70(_0xcad3d3[_0xdcee('0x16')]['message']);}else{logger[_0xdcee('0x18')](_0xdcee('0x12'),_0x36b071,_0xdcee('0x13'));_0x5e1d70(_0xcad3d3[_0xdcee('0x19')]['message']);}})[_0xdcee('0x1a')](function(_0x5bd104){logger[_0xdcee('0x16')](_0xdcee('0x12'),_0x36b071,_0x5bd104);_0x51786c(_0x5bd104);});});}exports[_0xdcee('0x1b')]=function(_0x593e00){var _0x1e6d83=this;return new Promise(function(_0x3a465b,_0x5d1fd7){return db[_0xdcee('0x1c')][_0xdcee('0x1d')]({'raw':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x1f')]||null:null,'attributes':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x20')]||null:null,'limit':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x21')]||null:null,'include':_0x593e00['options']?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x22')]?_['map'](_0x593e00[_0xdcee('0x1e')][_0xdcee('0x22')],function(_0x2b0ff7){return{'model':db[_0x2b0ff7['model']],'as':_0x2b0ff7['as'],'attributes':_0x2b0ff7[_0xdcee('0x20')],'include':_0x2b0ff7[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x2b0ff7['include'],function(_0x325495){return{'model':db[_0x325495[_0xdcee('0x24')]],'as':_0x325495['as'],'attributes':_0x325495[_0xdcee('0x20')],'include':_0x325495[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x325495[_0xdcee('0x22')],function(_0x5ee8b8){return{'model':db[_0x5ee8b8[_0xdcee('0x24')]],'as':_0x5ee8b8['as'],'attributes':_0x5ee8b8[_0xdcee('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1a5dd6){logger[_0xdcee('0x18')]('GetChatQueue',_0x593e00);logger[_0xdcee('0x14')](_0xdcee('0x1b'),_0x593e00,JSON[_0xdcee('0x15')](_0x1a5dd6));_0x3a465b(_0x1a5dd6);})[_0xdcee('0x1a')](function(_0x5565ab){logger[_0xdcee('0x16')](_0xdcee('0x1b'),_0x5565ab[_0xdcee('0x17')],_0x593e00);_0x5d1fd7(_0x1e6d83[_0xdcee('0x16')](0x1f4,_0x5565ab[_0xdcee('0x17')]));});});};exports[_0xdcee('0x25')]=function(_0x3f38ca){var _0x5abb5d=this;return new Promise(function(_0x45307b,_0x11a487){return db['ChatQueue'][_0xdcee('0x26')]({'raw':_0x3f38ca['options']?_0x3f38ca[_0xdcee('0x1e')][_0xdcee('0x27')]===undefined?!![]:![]:!![],'where':_0x3f38ca[_0xdcee('0x1e')]?_0x3f38ca[_0xdcee('0x1e')][_0xdcee('0x1f')]||null:null,'attributes':_0x3f38ca[_0xdcee('0x1e')]?_0x3f38ca['options'][_0xdcee('0x20')]||null:null,'include':_0x3f38ca[_0xdcee('0x1e')]?_0x3f38ca[_0xdcee('0x1e')][_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x3f38ca['options'][_0xdcee('0x22')],function(_0x46f5fe){return{'model':db[_0x46f5fe[_0xdcee('0x24')]],'as':_0x46f5fe['as'],'attributes':_0x46f5fe[_0xdcee('0x20')],'include':_0x46f5fe[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x46f5fe[_0xdcee('0x22')],function(_0x17900c){return{'model':db[_0x17900c['model']],'as':_0x17900c['as'],'attributes':_0x17900c[_0xdcee('0x20')],'include':_0x17900c[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x17900c[_0xdcee('0x22')],function(_0x1aafe4){return{'model':db[_0x1aafe4[_0xdcee('0x24')]],'as':_0x1aafe4['as'],'attributes':_0x1aafe4[_0xdcee('0x20')]};}):[]};}):[]};}):[]:[]})[_0xdcee('0x11')](function(_0x1316d9){logger['info']('ShowChatQueue',_0x3f38ca);logger[_0xdcee('0x14')](_0xdcee('0x25'),_0x3f38ca,JSON['stringify'](_0x1316d9));_0x45307b(_0x1316d9);})[_0xdcee('0x1a')](function(_0x50568f){logger['error'](_0xdcee('0x25'),_0x50568f['message'],_0x3f38ca);_0x11a487(_0x5abb5d[_0xdcee('0x16')](0x1f4,_0x50568f['message']));});});};
\ No newline at end of file
+var _0x83cd=['where','attributes','limit','include','map','model','info','ShowChatQueue','find','then','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','localhost','redis','register','request','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatQueue,\x20%s,\x20%s','message','result','catch','GetChatQueue','ChatQueue','options','raw'];(function(_0x18b8c8,_0x35ba24){var _0x1af76a=function(_0x48de23){while(--_0x48de23){_0x18b8c8['push'](_0x18b8c8['shift']());}};_0x1af76a(++_0x35ba24);}(_0x83cd,0x17b));var _0xd83c=function(_0x35cac3,_0xd80316){_0x35cac3=_0x35cac3-0x0;var _0x189ca4=_0x83cd[_0x35cac3];return _0x189ca4;};'use strict';var _=require(_0xd83c('0x0'));var util=require(_0xd83c('0x1'));var moment=require(_0xd83c('0x2'));var BPromise=require(_0xd83c('0x3'));var rs=require(_0xd83c('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd83c('0x5'))['db'];var utils=require(_0xd83c('0x6'));var logger=require(_0xd83c('0x7'))(_0xd83c('0x8'));var config=require('../../config/environment');var jayson=require(_0xd83c('0x9'));var client=jayson[_0xd83c('0xa')][_0xd83c('0xb')]({'port':0x232a});config['redis']=_[_0xd83c('0xc')](config['redis'],{'host':_0xd83c('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd83c('0xe')]));require('./chatQueue.socket')[_0xd83c('0xf')](socket);function respondWithRpcPromise(_0x34ec60,_0x1dfb1d,_0x1b717b){return new BPromise(function(_0x226c96,_0x415853){return client[_0xd83c('0x10')](_0x34ec60,_0x1b717b)['then'](function(_0x3f6e36){logger['info']('ChatQueue,\x20%s,\x20%s',_0x1dfb1d,_0xd83c('0x11'));logger[_0xd83c('0x12')](_0xd83c('0x13'),_0x1dfb1d,'request\x20sent',JSON[_0xd83c('0x14')](_0x3f6e36));if(_0x3f6e36[_0xd83c('0x15')]){if(_0x3f6e36[_0xd83c('0x15')][_0xd83c('0x16')]===0x1f4){logger[_0xd83c('0x15')](_0xd83c('0x17'),_0x1dfb1d,_0x3f6e36[_0xd83c('0x15')]['message']);return _0x415853(_0x3f6e36[_0xd83c('0x15')]['message']);}logger[_0xd83c('0x15')](_0xd83c('0x17'),_0x1dfb1d,_0x3f6e36[_0xd83c('0x15')][_0xd83c('0x18')]);return _0x226c96(_0x3f6e36['error'][_0xd83c('0x18')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x1dfb1d,_0xd83c('0x11'));_0x226c96(_0x3f6e36[_0xd83c('0x19')][_0xd83c('0x18')]);}})[_0xd83c('0x1a')](function(_0x2dbc60){logger[_0xd83c('0x15')](_0xd83c('0x17'),_0x1dfb1d,_0x2dbc60);_0x415853(_0x2dbc60);});});}exports[_0xd83c('0x1b')]=function(_0x1f95b8){var _0x24fa52=this;return new Promise(function(_0x45908d,_0x30d96c){return db[_0xd83c('0x1c')]['findAll']({'raw':_0x1f95b8[_0xd83c('0x1d')]?_0x1f95b8[_0xd83c('0x1d')][_0xd83c('0x1e')]===undefined?!![]:![]:!![],'where':_0x1f95b8[_0xd83c('0x1d')]?_0x1f95b8[_0xd83c('0x1d')][_0xd83c('0x1f')]||null:null,'attributes':_0x1f95b8[_0xd83c('0x1d')]?_0x1f95b8[_0xd83c('0x1d')][_0xd83c('0x20')]||null:null,'limit':_0x1f95b8[_0xd83c('0x1d')]?_0x1f95b8[_0xd83c('0x1d')][_0xd83c('0x21')]||null:null,'include':_0x1f95b8[_0xd83c('0x1d')]?_0x1f95b8[_0xd83c('0x1d')][_0xd83c('0x22')]?_[_0xd83c('0x23')](_0x1f95b8['options'][_0xd83c('0x22')],function(_0x5c9dc0){return{'model':db[_0x5c9dc0['model']],'as':_0x5c9dc0['as'],'attributes':_0x5c9dc0['attributes'],'include':_0x5c9dc0[_0xd83c('0x22')]?_['map'](_0x5c9dc0[_0xd83c('0x22')],function(_0x339ff9){return{'model':db[_0x339ff9['model']],'as':_0x339ff9['as'],'attributes':_0x339ff9[_0xd83c('0x20')],'include':_0x339ff9[_0xd83c('0x22')]?_[_0xd83c('0x23')](_0x339ff9['include'],function(_0x1e3f30){return{'model':db[_0x1e3f30[_0xd83c('0x24')]],'as':_0x1e3f30['as'],'attributes':_0x1e3f30[_0xd83c('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x34731d){logger[_0xd83c('0x25')](_0xd83c('0x1b'),_0x1f95b8);logger['debug'](_0xd83c('0x1b'),_0x1f95b8,JSON[_0xd83c('0x14')](_0x34731d));_0x45908d(_0x34731d);})[_0xd83c('0x1a')](function(_0xe04b9a){logger[_0xd83c('0x15')](_0xd83c('0x1b'),_0xe04b9a[_0xd83c('0x18')],_0x1f95b8);_0x30d96c(_0x24fa52['error'](0x1f4,_0xe04b9a[_0xd83c('0x18')]));});});};exports[_0xd83c('0x26')]=function(_0x173201){var _0x4e8e2a=this;return new Promise(function(_0x3467e5,_0x4f0da6){return db['ChatQueue'][_0xd83c('0x27')]({'raw':_0x173201[_0xd83c('0x1d')]?_0x173201[_0xd83c('0x1d')][_0xd83c('0x1e')]===undefined?!![]:![]:!![],'where':_0x173201[_0xd83c('0x1d')]?_0x173201[_0xd83c('0x1d')][_0xd83c('0x1f')]||null:null,'attributes':_0x173201[_0xd83c('0x1d')]?_0x173201[_0xd83c('0x1d')][_0xd83c('0x20')]||null:null,'include':_0x173201[_0xd83c('0x1d')]?_0x173201['options']['include']?_['map'](_0x173201[_0xd83c('0x1d')]['include'],function(_0x1a0cc0){return{'model':db[_0x1a0cc0[_0xd83c('0x24')]],'as':_0x1a0cc0['as'],'attributes':_0x1a0cc0['attributes'],'include':_0x1a0cc0[_0xd83c('0x22')]?_[_0xd83c('0x23')](_0x1a0cc0['include'],function(_0x4b7fe4){return{'model':db[_0x4b7fe4[_0xd83c('0x24')]],'as':_0x4b7fe4['as'],'attributes':_0x4b7fe4[_0xd83c('0x20')],'include':_0x4b7fe4['include']?_['map'](_0x4b7fe4['include'],function(_0x313094){return{'model':db[_0x313094[_0xd83c('0x24')]],'as':_0x313094['as'],'attributes':_0x313094[_0xd83c('0x20')]};}):[]};}):[]};}):[]:[]})[_0xd83c('0x28')](function(_0x329a02){logger[_0xd83c('0x25')](_0xd83c('0x26'),_0x173201);logger['debug']('ShowChatQueue',_0x173201,JSON[_0xd83c('0x14')](_0x329a02));_0x3467e5(_0x329a02);})[_0xd83c('0x1a')](function(_0x4814b9){logger['error'](_0xd83c('0x26'),_0x4814b9[_0xd83c('0x18')],_0x173201);_0x4f0da6(_0x4e8e2a[_0xd83c('0x15')](0x1f4,_0x4814b9[_0xd83c('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6aa7=['update','emit','length','chatQueue:','./chatQueue.events','remove'];(function(_0x2af47e,_0x1d2a86){var _0x5bca26=function(_0x4ba3db){while(--_0x4ba3db){_0x2af47e['push'](_0x2af47e['shift']());}};_0x5bca26(++_0x1d2a86);}(_0x6aa7,0x178));var _0x76aa=function(_0xe4ece7,_0x306cf4){_0xe4ece7=_0xe4ece7-0x0;var _0xcc27d2=_0x6aa7[_0xe4ece7];return _0xcc27d2;};'use strict';var ChatQueueEvents=require(_0x76aa('0x0'));var events=['save',_0x76aa('0x1'),_0x76aa('0x2')];function createListener(_0x25c818,_0x2db4fe){return function(_0x4f007e){_0x2db4fe[_0x76aa('0x3')](_0x25c818,_0x4f007e);};}function removeListener(_0xef15ef,_0x1d6e04){return function(){ChatQueueEvents['removeListener'](_0xef15ef,_0x1d6e04);};}exports['register']=function(_0x1aceaa){for(var _0x4d53f6=0x0,_0x32dee5=events[_0x76aa('0x4')];_0x4d53f6<_0x32dee5;_0x4d53f6++){var _0xa9b695=events[_0x4d53f6];var _0x56d6bc=createListener(_0x76aa('0x5')+_0xa9b695,_0x1aceaa);ChatQueueEvents['on'](_0xa9b695,_0x56d6bc);}};
\ No newline at end of file
+var _0x70e0=['chatQueue:','./chatQueue.events','save','remove','emit','removeListener'];(function(_0x1303b5,_0x5ce3f6){var _0x7cfdc3=function(_0x37b5a3){while(--_0x37b5a3){_0x1303b5['push'](_0x1303b5['shift']());}};_0x7cfdc3(++_0x5ce3f6);}(_0x70e0,0x17b));var _0x070e=function(_0x4d09d5,_0x4452b0){_0x4d09d5=_0x4d09d5-0x0;var _0xa2de33=_0x70e0[_0x4d09d5];return _0xa2de33;};'use strict';var ChatQueueEvents=require(_0x070e('0x0'));var events=[_0x070e('0x1'),_0x070e('0x2'),'update'];function createListener(_0x579b83,_0x16e651){return function(_0xee173){_0x16e651[_0x070e('0x3')](_0x579b83,_0xee173);};}function removeListener(_0x2593e5,_0x5c90fc){return function(){ChatQueueEvents[_0x070e('0x4')](_0x2593e5,_0x5c90fc);};}exports['register']=function(_0x46fe68){for(var _0x4b041d=0x0,_0x56e420=events['length'];_0x4b041d<_0x56e420;_0x4b041d++){var _0x35ab0c=events[_0x4b041d];var _0x1e11f0=createListener(_0x070e('0x5')+_0x35ab0c,_0x46fe68);ChatQueueEvents['on'](_0x35ab0c,_0x1e11f0);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['post','addAgents','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatQueue.controller','get','isAuthenticated','index','describe','/:id','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','addTeams'];(function(_0x3011ff,_0x36a939){var _0xd22e7e=function(_0x20f165){while(--_0x20f165){_0x3011ff['push'](_0x3011ff['shift']());}};_0xd22e7e(++_0x36a939);}(_0x55ca,0x126));var _0xa55c=function(_0x59befa,_0x4af99b){_0x59befa=_0x59befa-0x0;var _0x1dd63d=_0x55ca[_0x59befa];return _0x1dd63d;};'use strict';var multer=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa55c('0x2')]();var fs_extra=require(_0xa55c('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var controller=require(_0xa55c('0x6'));router[_0xa55c('0x7')]('/',auth[_0xa55c('0x8')](),controller[_0xa55c('0x9')]);router[_0xa55c('0x7')]('/describe',auth[_0xa55c('0x8')](),controller[_0xa55c('0xa')]);router['get'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller['show']);router['get'](_0xa55c('0xc'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xd')]);router[_0xa55c('0x7')](_0xa55c('0xe'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xf')]);router[_0xa55c('0x7')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller['getAgents']);router['post']('/',auth[_0xa55c('0x8')](),controller['create']);router['post']('/:id/teams',auth[_0xa55c('0x8')](),controller[_0xa55c('0x11')]);router[_0xa55c('0x12')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x13')]);router['put'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x14')]);router[_0xa55c('0x15')](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x16')]);router[_0xa55c('0x15')](_0xa55c('0xe'),auth['isAuthenticated'](),controller[_0xa55c('0x17')]);router[_0xa55c('0x15')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x18')]);module[_0xa55c('0x19')]=router;
\ No newline at end of file
+var _0x3e74=['../../config/environment','./chatQueue.controller','get','isAuthenticated','index','/describe','describe','/:id','show','getMembers','/:id/teams','getTeams','getAgents','post','addTeams','addAgents','put','delete','removeTeams','/:id/users','removeAgents','exports','multer','path','connect-timeout','express','../../components/auth/service'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x3e74,0x175));var _0x43e7=function(_0x3c59c8,_0x14c5e8){_0x3c59c8=_0x3c59c8-0x0;var _0x21f19f=_0x3e74[_0x3c59c8];return _0x21f19f;};'use strict';var multer=require(_0x43e7('0x0'));var util=require('util');var path=require(_0x43e7('0x1'));var timeout=require(_0x43e7('0x2'));var express=require(_0x43e7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x43e7('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x43e7('0x5'));var controller=require(_0x43e7('0x6'));router[_0x43e7('0x7')]('/',auth[_0x43e7('0x8')](),controller[_0x43e7('0x9')]);router['get'](_0x43e7('0xa'),auth[_0x43e7('0x8')](),controller[_0x43e7('0xb')]);router[_0x43e7('0x7')](_0x43e7('0xc'),auth['isAuthenticated'](),controller[_0x43e7('0xd')]);router['get']('/:id/members',auth[_0x43e7('0x8')](),controller[_0x43e7('0xe')]);router['get'](_0x43e7('0xf'),auth['isAuthenticated'](),controller[_0x43e7('0x10')]);router[_0x43e7('0x7')]('/:id/users',auth[_0x43e7('0x8')](),controller[_0x43e7('0x11')]);router[_0x43e7('0x12')]('/',auth[_0x43e7('0x8')](),controller['create']);router['post'](_0x43e7('0xf'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x13')]);router['post']('/:id/users',auth[_0x43e7('0x8')](),controller[_0x43e7('0x14')]);router[_0x43e7('0x15')](_0x43e7('0xc'),auth['isAuthenticated'](),controller['update']);router[_0x43e7('0x16')](_0x43e7('0xc'),auth[_0x43e7('0x8')](),controller['destroy']);router['delete'](_0x43e7('0xf'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x17')]);router[_0x43e7('0x16')](_0x43e7('0x18'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x19')]);module[_0x43e7('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8649=['exports','STRING','DATE'];(function(_0x103ff9,_0x576a4d){var _0x40693e=function(_0xd67bce){while(--_0xd67bce){_0x103ff9['push'](_0x103ff9['shift']());}};_0x40693e(++_0x576a4d);}(_0x8649,0x159));var _0x9864=function(_0x4d27d6,_0x147731){_0x4d27d6=_0x4d27d6-0x0;var _0x5b3484=_0x8649[_0x4d27d6];return _0x5b3484;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x9864('0x0')]={'uniqueid':{'type':Sequelize[_0x9864('0x1')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x9864('0x2')]},'leaveAt':{'type':Sequelize[_0x9864('0x2')]},'acceptAt':{'type':Sequelize[_0x9864('0x2')]},'exitAt':{'type':Sequelize[_0x9864('0x2')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xe68b=['sequelize','exports','STRING','DATE','moment'];(function(_0x4e9628,_0x250573){var _0x27bc8c=function(_0xb3b7ae){while(--_0xb3b7ae){_0x4e9628['push'](_0x4e9628['shift']());}};_0x27bc8c(++_0x250573);}(_0xe68b,0x6d));var _0xbe68=function(_0x7a81f7,_0x53385e){_0x7a81f7=_0x7a81f7-0x0;var _0x1b0169=_0xe68b[_0x7a81f7];return _0x1b0169;};'use strict';var moment=require(_0xbe68('0x0'));var Sequelize=require(_0xbe68('0x1'));module[_0xbe68('0x2')]={'uniqueid':{'type':Sequelize[_0xbe68('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0xbe68('0x3')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0xbe68('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0xbe68('0x4')]},'reason':{'type':Sequelize[_0xbe68('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3dba=['reject','save','update','then','destroy','end','error','name','send','index','map','ChatQueueReport','rawAttributes','fieldName','type','model','keys','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','filters','find','create','body','describe','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply'];(function(_0x5c84a6,_0x321f95){var _0xb8c5f0=function(_0x106d58){while(--_0x106d58){_0x5c84a6['push'](_0x5c84a6['shift']());}};_0xb8c5f0(++_0x321f95);}(_0x3dba,0x73));var _0xa3db=function(_0x1cdabe,_0x286194){_0x1cdabe=_0x1cdabe-0x0;var _0x3dcc9c=_0x3dba[_0x1cdabe];return _0x3dcc9c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa3db('0x0'));var rp=require(_0xa3db('0x1'));var moment=require('moment');var BPromise=require(_0xa3db('0x2'));var Mustache=require(_0xa3db('0x3'));var util=require(_0xa3db('0x4'));var path=require(_0xa3db('0x5'));var sox=require(_0xa3db('0x6'));var csv=require(_0xa3db('0x7'));var ejs=require(_0xa3db('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa3db('0x9'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa3db('0xa'));var Redis=require(_0xa3db('0xb'));var authService=require(_0xa3db('0xc'));var qs=require(_0xa3db('0xd'));var as=require(_0xa3db('0xe'));var hardwareService=require(_0xa3db('0xf'));var logger=require(_0xa3db('0x10'))(_0xa3db('0x11'));var utils=require(_0xa3db('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xa3db('0x13'));var db=require(_0xa3db('0x14'))['db'];function respondWithStatusCode(_0x56c636,_0x20f91f){_0x20f91f=_0x20f91f||0xcc;return function(_0x42f8e0){if(_0x42f8e0){return _0x56c636[_0xa3db('0x15')](_0x20f91f);}return _0x56c636['status'](_0x20f91f)['end']();};}function respondWithResult(_0x221695,_0x302c34){_0x302c34=_0x302c34||0xc8;return function(_0x4f323b){if(_0x4f323b){return _0x221695[_0xa3db('0x16')](_0x302c34)[_0xa3db('0x17')](_0x4f323b);}};}function respondWithFilteredResult(_0xb75bcc,_0x1d07c5){return function(_0xaa5756){if(_0xaa5756){var _0xd53611=typeof _0x1d07c5[_0xa3db('0x18')]===_0xa3db('0x19')&&typeof _0x1d07c5[_0xa3db('0x1a')]==='undefined';var _0x558581=_0xaa5756[_0xa3db('0x1b')];var _0x278c2a=_0xd53611?0x0:_0x1d07c5[_0xa3db('0x18')];var _0x3f5e3e=_0xd53611?_0xaa5756['count']:_0x1d07c5[_0xa3db('0x18')]+_0x1d07c5[_0xa3db('0x1a')];var _0x356f63;if(_0x3f5e3e>=_0x558581){_0x3f5e3e=_0x558581;_0x356f63=0xc8;}else{_0x356f63=0xce;}_0xb75bcc[_0xa3db('0x16')](_0x356f63);return _0xb75bcc[_0xa3db('0x1c')](_0xa3db('0x1d'),_0x278c2a+'-'+_0x3f5e3e+'/'+_0x558581)[_0xa3db('0x17')](_0xaa5756);}return null;};}function patchUpdates(_0x2c817c){return function(_0x1eee9e){try{jsonpatch[_0xa3db('0x1e')](_0x1eee9e,_0x2c817c,!![]);}catch(_0x2581e2){return BPromise[_0xa3db('0x1f')](_0x2581e2);}return _0x1eee9e[_0xa3db('0x20')]();};}function saveUpdates(_0x5de05c,_0x195f57){return function(_0x16bc03){if(_0x16bc03){return _0x16bc03[_0xa3db('0x21')](_0x5de05c)[_0xa3db('0x22')](function(_0x989eed){return _0x989eed;});}return null;};}function removeEntity(_0x55a7cf,_0x3eab0c){return function(_0x49bc1b){if(_0x49bc1b){return _0x49bc1b[_0xa3db('0x23')]()[_0xa3db('0x22')](function(){_0x55a7cf['status'](0xcc)[_0xa3db('0x24')]();});}};}function handleEntityNotFound(_0xe0be83,_0x415d61){return function(_0x5e71f2){if(!_0x5e71f2){_0xe0be83[_0xa3db('0x15')](0x194);}return _0x5e71f2;};}function handleError(_0x374d03,_0x34f314){_0x34f314=_0x34f314||0x1f4;return function(_0x1f0d0e){logger[_0xa3db('0x25')](_0x1f0d0e['stack']);if(_0x1f0d0e[_0xa3db('0x26')]){delete _0x1f0d0e[_0xa3db('0x26')];}_0x374d03[_0xa3db('0x16')](_0x34f314)[_0xa3db('0x27')](_0x1f0d0e);};}exports[_0xa3db('0x28')]=function(_0x2f8602,_0x2f08da){var _0x3416bc={},_0x19a858={},_0x2ecde3={'count':0x0,'rows':[]};var _0x52578a=_[_0xa3db('0x29')](db[_0xa3db('0x2a')][_0xa3db('0x2b')],function(_0x551010){return{'name':_0x551010[_0xa3db('0x2c')],'type':_0x551010[_0xa3db('0x2d')]['key']};});_0x19a858[_0xa3db('0x2e')]=_[_0xa3db('0x29')](_0x52578a,_0xa3db('0x26'));_0x19a858['query']=_[_0xa3db('0x2f')](_0x2f8602[_0xa3db('0x30')]);_0x19a858['filters']=_['intersection'](_0x19a858[_0xa3db('0x2e')],_0x19a858[_0xa3db('0x30')]);_0x3416bc[_0xa3db('0x31')]=_[_0xa3db('0x32')](_0x19a858[_0xa3db('0x2e')],qs[_0xa3db('0x33')](_0x2f8602[_0xa3db('0x30')][_0xa3db('0x33')]));_0x3416bc['attributes']=_0x3416bc[_0xa3db('0x31')]['length']?_0x3416bc[_0xa3db('0x31')]:_0x19a858[_0xa3db('0x2e')];if(!_0x2f8602[_0xa3db('0x30')][_0xa3db('0x34')](_0xa3db('0x35'))){_0x3416bc[_0xa3db('0x1a')]=qs[_0xa3db('0x1a')](_0x2f8602[_0xa3db('0x30')]['limit']);_0x3416bc[_0xa3db('0x18')]=qs[_0xa3db('0x18')](_0x2f8602[_0xa3db('0x30')]['offset']);}_0x3416bc[_0xa3db('0x36')]=qs[_0xa3db('0x37')](_0x2f8602[_0xa3db('0x30')][_0xa3db('0x37')]);_0x3416bc[_0xa3db('0x38')]=qs['filters'](_[_0xa3db('0x39')](_0x2f8602['query'],_0x19a858['filters']),_0x52578a);if(_0x2f8602[_0xa3db('0x30')][_0xa3db('0x3a')]){_0x3416bc[_0xa3db('0x38')]=_[_0xa3db('0x3b')](_0x3416bc[_0xa3db('0x38')],{'$or':_[_0xa3db('0x29')](_0x52578a,function(_0xa3b488){if(_0xa3b488[_0xa3db('0x2d')]!==_0xa3db('0x3c')){var _0x23c94b={};_0x23c94b[_0xa3b488[_0xa3db('0x26')]]={'$like':'%'+_0x2f8602[_0xa3db('0x30')]['filter']+'%'};return _0x23c94b;}})});}_0x3416bc=_[_0xa3db('0x3b')]({},_0x3416bc,_0x2f8602[_0xa3db('0x3d')]);var _0xe24bd1={'where':_0x3416bc[_0xa3db('0x38')]};return db[_0xa3db('0x2a')]['count'](_0xe24bd1)['then'](function(_0x414745){_0x2ecde3[_0xa3db('0x1b')]=_0x414745;if(_0x2f8602[_0xa3db('0x30')][_0xa3db('0x3e')]){_0x3416bc[_0xa3db('0x3f')]=[{'all':!![]}];}return db[_0xa3db('0x2a')][_0xa3db('0x40')](_0x3416bc);})[_0xa3db('0x22')](function(_0x57350f){_0x2ecde3['rows']=_0x57350f;return _0x2ecde3;})[_0xa3db('0x22')](respondWithFilteredResult(_0x2f08da,_0x3416bc))[_0xa3db('0x41')](handleError(_0x2f08da,null));};exports[_0xa3db('0x42')]=function(_0x4ef9d1,_0x4cf5e8){var _0x3d612d={'raw':!![],'where':{'id':_0x4ef9d1[_0xa3db('0x43')]['id']}},_0x47e625={};_0x47e625['model']=_[_0xa3db('0x2f')](db[_0xa3db('0x2a')][_0xa3db('0x2b')]);_0x47e625[_0xa3db('0x30')]=_[_0xa3db('0x2f')](_0x4ef9d1[_0xa3db('0x30')]);_0x47e625[_0xa3db('0x44')]=_['intersection'](_0x47e625[_0xa3db('0x2e')],_0x47e625[_0xa3db('0x30')]);_0x3d612d[_0xa3db('0x31')]=_[_0xa3db('0x32')](_0x47e625['model'],qs[_0xa3db('0x33')](_0x4ef9d1['query'][_0xa3db('0x33')]));_0x3d612d[_0xa3db('0x31')]=_0x3d612d['attributes']['length']?_0x3d612d[_0xa3db('0x31')]:_0x47e625['model'];if(_0x4ef9d1[_0xa3db('0x30')][_0xa3db('0x3e')]){_0x3d612d[_0xa3db('0x3f')]=[{'all':!![]}];}_0x3d612d=_[_0xa3db('0x3b')]({},_0x3d612d,_0x4ef9d1['options']);return db[_0xa3db('0x2a')][_0xa3db('0x45')](_0x3d612d)[_0xa3db('0x22')](handleEntityNotFound(_0x4cf5e8,null))[_0xa3db('0x22')](respondWithResult(_0x4cf5e8,null))[_0xa3db('0x41')](handleError(_0x4cf5e8,null));};exports[_0xa3db('0x46')]=function(_0x572bbf,_0x3cb6c0){return db[_0xa3db('0x2a')]['create'](_0x572bbf[_0xa3db('0x47')],{})['then'](respondWithResult(_0x3cb6c0,0xc9))[_0xa3db('0x41')](handleError(_0x3cb6c0,null));};exports[_0xa3db('0x21')]=function(_0x2207e9,_0x4b55a9){if(_0x2207e9[_0xa3db('0x47')]['id']){delete _0x2207e9[_0xa3db('0x47')]['id'];}return db[_0xa3db('0x2a')][_0xa3db('0x45')]({'where':{'id':_0x2207e9['params']['id']}})[_0xa3db('0x22')](handleEntityNotFound(_0x4b55a9,null))[_0xa3db('0x22')](saveUpdates(_0x2207e9[_0xa3db('0x47')],null))[_0xa3db('0x22')](respondWithResult(_0x4b55a9,null))[_0xa3db('0x41')](handleError(_0x4b55a9,null));};exports[_0xa3db('0x23')]=function(_0x40a45b,_0x3f2463){return db['ChatQueueReport']['find']({'where':{'id':_0x40a45b[_0xa3db('0x43')]['id']}})[_0xa3db('0x22')](handleEntityNotFound(_0x3f2463,null))[_0xa3db('0x22')](removeEntity(_0x3f2463,null))[_0xa3db('0x41')](handleError(_0x3f2463,null));};exports['describe']=function(_0x8d54e9,_0x40c6cd){return db[_0xa3db('0x2a')][_0xa3db('0x48')]()[_0xa3db('0x22')](respondWithResult(_0x40c6cd,null))['catch'](handleError(_0x40c6cd,null));};
\ No newline at end of file
+var _0x5078=['sort','where','filters','merge','filter','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','map','ChatQueueReport','rawAttributes','fieldName','type','key','keys','query','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order'];(function(_0x5ef0fe,_0xb5967a){var _0x3a18bb=function(_0x3b633e){while(--_0x3b633e){_0x5ef0fe['push'](_0x5ef0fe['shift']());}};_0x3a18bb(++_0xb5967a);}(_0x5078,0x148));var _0x8507=function(_0x2def85,_0x39b650){_0x2def85=_0x2def85-0x0;var _0x12ce04=_0x5078[_0x2def85];return _0x12ce04;};'use strict';var emlformat=require(_0x8507('0x0'));var rimraf=require(_0x8507('0x1'));var zipdir=require(_0x8507('0x2'));var jsonpatch=require(_0x8507('0x3'));var rp=require(_0x8507('0x4'));var moment=require(_0x8507('0x5'));var BPromise=require(_0x8507('0x6'));var Mustache=require(_0x8507('0x7'));var util=require(_0x8507('0x8'));var path=require(_0x8507('0x9'));var sox=require(_0x8507('0xa'));var csv=require(_0x8507('0xb'));var ejs=require(_0x8507('0xc'));var fs=require('fs');var fs_extra=require(_0x8507('0xd'));var _=require(_0x8507('0xe'));var squel=require(_0x8507('0xf'));var crypto=require('crypto');var jsforce=require(_0x8507('0x10'));var deskjs=require(_0x8507('0x11'));var toCsv=require(_0x8507('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x8507('0x12'));var authService=require(_0x8507('0x13'));var qs=require(_0x8507('0x14'));var as=require(_0x8507('0x15'));var hardwareService=require(_0x8507('0x16'));var logger=require(_0x8507('0x17'))(_0x8507('0x18'));var utils=require('../../config/utils');var config=require(_0x8507('0x19'));var licenseUtil=require(_0x8507('0x1a'));var db=require(_0x8507('0x1b'))['db'];function respondWithStatusCode(_0x31109f,_0x21a236){_0x21a236=_0x21a236||0xcc;return function(_0x5c41e2){if(_0x5c41e2){return _0x31109f['sendStatus'](_0x21a236);}return _0x31109f[_0x8507('0x1c')](_0x21a236)[_0x8507('0x1d')]();};}function respondWithResult(_0x1f5550,_0x3bafeb){_0x3bafeb=_0x3bafeb||0xc8;return function(_0x2ea0e1){if(_0x2ea0e1){return _0x1f5550[_0x8507('0x1c')](_0x3bafeb)['json'](_0x2ea0e1);}};}function respondWithFilteredResult(_0x4f5aa0,_0x58ff83){return function(_0x1ec9b8){if(_0x1ec9b8){var _0x3f1ed1=typeof _0x58ff83['offset']===_0x8507('0x1e')&&typeof _0x58ff83[_0x8507('0x1f')]===_0x8507('0x1e');var _0x412aee=_0x1ec9b8[_0x8507('0x20')];var _0x13b285=_0x3f1ed1?0x0:_0x58ff83[_0x8507('0x21')];var _0x36e387=_0x3f1ed1?_0x1ec9b8['count']:_0x58ff83['offset']+_0x58ff83[_0x8507('0x1f')];var _0xc556a4;if(_0x36e387>=_0x412aee){_0x36e387=_0x412aee;_0xc556a4=0xc8;}else{_0xc556a4=0xce;}_0x4f5aa0[_0x8507('0x1c')](_0xc556a4);return _0x4f5aa0[_0x8507('0x22')](_0x8507('0x23'),_0x13b285+'-'+_0x36e387+'/'+_0x412aee)['json'](_0x1ec9b8);}return null;};}function patchUpdates(_0x1b8dbf){return function(_0x16501a){try{jsonpatch[_0x8507('0x24')](_0x16501a,_0x1b8dbf,!![]);}catch(_0x192f1c){return BPromise[_0x8507('0x25')](_0x192f1c);}return _0x16501a[_0x8507('0x26')]();};}function saveUpdates(_0x42e5ff,_0x2dc900){return function(_0x539cf9){if(_0x539cf9){return _0x539cf9[_0x8507('0x27')](_0x42e5ff)[_0x8507('0x28')](function(_0x37fd9c){return _0x37fd9c;});}return null;};}function removeEntity(_0x40ad72,_0x873ec4){return function(_0x438001){if(_0x438001){return _0x438001[_0x8507('0x29')]()[_0x8507('0x28')](function(){_0x40ad72['status'](0xcc)[_0x8507('0x1d')]();});}};}function handleEntityNotFound(_0x24fc61,_0x188ae0){return function(_0x5a559e){if(!_0x5a559e){_0x24fc61[_0x8507('0x2a')](0x194);}return _0x5a559e;};}function handleError(_0x15c710,_0x404d73){_0x404d73=_0x404d73||0x1f4;return function(_0x160402){logger['error'](_0x160402[_0x8507('0x2b')]);if(_0x160402[_0x8507('0x2c')]){delete _0x160402[_0x8507('0x2c')];}_0x15c710[_0x8507('0x1c')](_0x404d73)[_0x8507('0x2d')](_0x160402);};}exports['index']=function(_0x23c6e1,_0xb01c06){var _0x232182={},_0x2ca452={},_0x25fe12={'count':0x0,'rows':[]};var _0x8b5a47=_[_0x8507('0x2e')](db[_0x8507('0x2f')][_0x8507('0x30')],function(_0x6e9a38){return{'name':_0x6e9a38[_0x8507('0x31')],'type':_0x6e9a38[_0x8507('0x32')][_0x8507('0x33')]};});_0x2ca452['model']=_['map'](_0x8b5a47,_0x8507('0x2c'));_0x2ca452['query']=_[_0x8507('0x34')](_0x23c6e1[_0x8507('0x35')]);_0x2ca452['filters']=_['intersection'](_0x2ca452['model'],_0x2ca452[_0x8507('0x35')]);_0x232182[_0x8507('0x36')]=_[_0x8507('0x37')](_0x2ca452[_0x8507('0x38')],qs[_0x8507('0x39')](_0x23c6e1[_0x8507('0x35')]['fields']));_0x232182['attributes']=_0x232182[_0x8507('0x36')][_0x8507('0x3a')]?_0x232182[_0x8507('0x36')]:_0x2ca452['model'];if(!_0x23c6e1['query'][_0x8507('0x3b')](_0x8507('0x3c'))){_0x232182['limit']=qs[_0x8507('0x1f')](_0x23c6e1[_0x8507('0x35')]['limit']);_0x232182['offset']=qs['offset'](_0x23c6e1[_0x8507('0x35')][_0x8507('0x21')]);}_0x232182[_0x8507('0x3d')]=qs[_0x8507('0x3e')](_0x23c6e1['query']['sort']);_0x232182[_0x8507('0x3f')]=qs[_0x8507('0x40')](_['pick'](_0x23c6e1[_0x8507('0x35')],_0x2ca452[_0x8507('0x40')]),_0x8b5a47);if(_0x23c6e1[_0x8507('0x35')]['filter']){_0x232182[_0x8507('0x3f')]=_[_0x8507('0x41')](_0x232182[_0x8507('0x3f')],{'$or':_[_0x8507('0x2e')](_0x8b5a47,function(_0x46e6dd){if(_0x46e6dd[_0x8507('0x32')]!=='VIRTUAL'){var _0x42e640={};_0x42e640[_0x46e6dd[_0x8507('0x2c')]]={'$like':'%'+_0x23c6e1['query'][_0x8507('0x42')]+'%'};return _0x42e640;}})});}_0x232182=_[_0x8507('0x41')]({},_0x232182,_0x23c6e1['options']);var _0x2297a8={'where':_0x232182['where']};return db[_0x8507('0x2f')][_0x8507('0x20')](_0x2297a8)['then'](function(_0x2d344e){_0x25fe12['count']=_0x2d344e;if(_0x23c6e1[_0x8507('0x35')][_0x8507('0x43')]){_0x232182[_0x8507('0x44')]=[{'all':!![]}];}return db[_0x8507('0x2f')][_0x8507('0x45')](_0x232182);})[_0x8507('0x28')](function(_0x54d8d3){_0x25fe12[_0x8507('0x46')]=_0x54d8d3;return _0x25fe12;})[_0x8507('0x28')](respondWithFilteredResult(_0xb01c06,_0x232182))[_0x8507('0x47')](handleError(_0xb01c06,null));};exports[_0x8507('0x48')]=function(_0x57083e,_0x260a98){var _0x2e49d0={'raw':!![],'where':{'id':_0x57083e[_0x8507('0x49')]['id']}},_0x55b156={};_0x55b156[_0x8507('0x38')]=_[_0x8507('0x34')](db['ChatQueueReport'][_0x8507('0x30')]);_0x55b156['query']=_[_0x8507('0x34')](_0x57083e[_0x8507('0x35')]);_0x55b156[_0x8507('0x40')]=_[_0x8507('0x37')](_0x55b156['model'],_0x55b156[_0x8507('0x35')]);_0x2e49d0[_0x8507('0x36')]=_[_0x8507('0x37')](_0x55b156[_0x8507('0x38')],qs['fields'](_0x57083e['query']['fields']));_0x2e49d0[_0x8507('0x36')]=_0x2e49d0[_0x8507('0x36')][_0x8507('0x3a')]?_0x2e49d0[_0x8507('0x36')]:_0x55b156[_0x8507('0x38')];if(_0x57083e[_0x8507('0x35')]['includeAll']){_0x2e49d0[_0x8507('0x44')]=[{'all':!![]}];}_0x2e49d0=_[_0x8507('0x41')]({},_0x2e49d0,_0x57083e['options']);return db[_0x8507('0x2f')][_0x8507('0x4a')](_0x2e49d0)[_0x8507('0x28')](handleEntityNotFound(_0x260a98,null))[_0x8507('0x28')](respondWithResult(_0x260a98,null))[_0x8507('0x47')](handleError(_0x260a98,null));};exports[_0x8507('0x4b')]=function(_0x4858b6,_0x5e119e){return db['ChatQueueReport'][_0x8507('0x4b')](_0x4858b6[_0x8507('0x4c')],{})[_0x8507('0x28')](respondWithResult(_0x5e119e,0xc9))[_0x8507('0x47')](handleError(_0x5e119e,null));};exports[_0x8507('0x27')]=function(_0x2c3a5d,_0x5bb3c4){if(_0x2c3a5d[_0x8507('0x4c')]['id']){delete _0x2c3a5d[_0x8507('0x4c')]['id'];}return db[_0x8507('0x2f')][_0x8507('0x4a')]({'where':{'id':_0x2c3a5d[_0x8507('0x49')]['id']}})[_0x8507('0x28')](handleEntityNotFound(_0x5bb3c4,null))['then'](saveUpdates(_0x2c3a5d['body'],null))[_0x8507('0x28')](respondWithResult(_0x5bb3c4,null))[_0x8507('0x47')](handleError(_0x5bb3c4,null));};exports[_0x8507('0x29')]=function(_0x75b763,_0x50465d){return db[_0x8507('0x2f')][_0x8507('0x4a')]({'where':{'id':_0x75b763['params']['id']}})[_0x8507('0x28')](handleEntityNotFound(_0x50465d,null))[_0x8507('0x28')](removeEntity(_0x50465d,null))['catch'](handleError(_0x50465d,null));};exports[_0x8507('0x4d')]=function(_0x109b91,_0x447978){return db[_0x8507('0x2f')][_0x8507('0x4d')]()[_0x8507('0x28')](respondWithResult(_0x447978,null))[_0x8507('0x47')](handleError(_0x447978,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['../../config/logger','moment','request-promise','rimraf','../../config/environment','./chatQueueReport.attributes','define','ChatQueueReport','uniqueid','lodash'];(function(_0x319e13,_0x5bd104){var _0x15b050=function(_0x4f9352){while(--_0x4f9352){_0x319e13['push'](_0x319e13['shift']());}};_0x15b050(++_0x5bd104);}(_0xb7e7,0x121));var _0x7b7e=function(_0x9fd887,_0x47f76c){_0x9fd887=_0x9fd887-0x0;var _0x1a54ab=_0xb7e7[_0x9fd887];return _0x1a54ab;};'use strict';var _=require(_0x7b7e('0x0'));var util=require('util');var logger=require(_0x7b7e('0x1'))('api');var moment=require(_0x7b7e('0x2'));var BPromise=require('bluebird');var rp=require(_0x7b7e('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7b7e('0x4'));var config=require(_0x7b7e('0x5'));var attributes=require(_0x7b7e('0x6'));module['exports']=function(_0x53ed64,_0x333fa4){return _0x53ed64[_0x7b7e('0x7')](_0x7b7e('0x8'),attributes,{'tableName':'report_chat_queue','paranoid':![],'indexes':[{'name':_0x7b7e('0x9'),'fields':[_0x7b7e('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb7e7=['../../config/logger','moment','request-promise','rimraf','../../config/environment','./chatQueueReport.attributes','define','ChatQueueReport','uniqueid','lodash'];(function(_0x565feb,_0x43a6f0){var _0x1f6808=function(_0x1e4aff){while(--_0x1e4aff){_0x565feb['push'](_0x565feb['shift']());}};_0x1f6808(++_0x43a6f0);}(_0xb7e7,0x121));var _0x7b7e=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0xb7e7[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0x7b7e('0x0'));var util=require('util');var logger=require(_0x7b7e('0x1'))('api');var moment=require(_0x7b7e('0x2'));var BPromise=require('bluebird');var rp=require(_0x7b7e('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7b7e('0x4'));var config=require(_0x7b7e('0x5'));var attributes=require(_0x7b7e('0x6'));module['exports']=function(_0x53ed64,_0x333fa4){return _0x53ed64[_0x7b7e('0x7')](_0x7b7e('0x8'),attributes,{'tableName':'report_chat_queue','paranoid':![],'indexes':[{'name':_0x7b7e('0x9'),'fields':[_0x7b7e('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb9a=['body','options','raw','stringify','catch','UpdateChatQueueReport','update','where','attributes','limit','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','CreateChatQueueReport','ChatQueueReport','create'];(function(_0x31afc5,_0x8f1388){var _0x62a19b=function(_0x5584fc){while(--_0x5584fc){_0x31afc5['push'](_0x31afc5['shift']());}};_0x62a19b(++_0x8f1388);}(_0xfb9a,0x1f4));var _0xafb9=function(_0x41d1fa,_0xa250bf){_0x41d1fa=_0x41d1fa-0x0;var _0x450b97=_0xfb9a[_0x41d1fa];return _0x450b97;};'use strict';var _=require(_0xafb9('0x0'));var util=require(_0xafb9('0x1'));var moment=require(_0xafb9('0x2'));var BPromise=require(_0xafb9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xafb9('0x4'));var db=require(_0xafb9('0x5'))['db'];var utils=require(_0xafb9('0x6'));var logger=require(_0xafb9('0x7'))(_0xafb9('0x8'));var config=require('../../config/environment');var jayson=require(_0xafb9('0x9'));var client=jayson[_0xafb9('0xa')][_0xafb9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2b6048,_0x4fde55,_0x5708c0){return new BPromise(function(_0x808783,_0x4716ac){return client[_0xafb9('0xc')](_0x2b6048,_0x5708c0)[_0xafb9('0xd')](function(_0x2e94a8){logger[_0xafb9('0xe')](_0xafb9('0xf'),_0x4fde55,_0xafb9('0x10'));logger[_0xafb9('0x11')]('ChatQueueReport,\x20%s,\x20%s,\x20%s',_0x4fde55,_0xafb9('0x10'),JSON['stringify'](_0x2e94a8));if(_0x2e94a8['error']){if(_0x2e94a8[_0xafb9('0x12')][_0xafb9('0x13')]===0x1f4){logger['error'](_0xafb9('0xf'),_0x4fde55,_0x2e94a8[_0xafb9('0x12')][_0xafb9('0x14')]);return _0x4716ac(_0x2e94a8['error'][_0xafb9('0x14')]);}logger[_0xafb9('0x12')](_0xafb9('0xf'),_0x4fde55,_0x2e94a8[_0xafb9('0x12')][_0xafb9('0x14')]);return _0x808783(_0x2e94a8[_0xafb9('0x12')]['message']);}else{logger[_0xafb9('0xe')]('ChatQueueReport,\x20%s,\x20%s',_0x4fde55,_0xafb9('0x10'));_0x808783(_0x2e94a8[_0xafb9('0x15')][_0xafb9('0x14')]);}})['catch'](function(_0x5ede7c){logger[_0xafb9('0x12')]('ChatQueueReport,\x20%s,\x20%s',_0x4fde55,_0x5ede7c);_0x4716ac(_0x5ede7c);});});}exports[_0xafb9('0x16')]=function(_0x5c024f){var _0x517a40=this;return new Promise(function(_0x4bca04,_0x148c6e){return db[_0xafb9('0x17')][_0xafb9('0x18')](_0x5c024f[_0xafb9('0x19')],{'raw':_0x5c024f[_0xafb9('0x1a')]?_0x5c024f[_0xafb9('0x1a')][_0xafb9('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x1ef589){logger[_0xafb9('0xe')](_0xafb9('0x16'),_0x5c024f);logger[_0xafb9('0x11')](_0xafb9('0x16'),_0x5c024f,JSON[_0xafb9('0x1c')](_0x1ef589));_0x4bca04(_0x1ef589);})[_0xafb9('0x1d')](function(_0x48179b){logger[_0xafb9('0x12')](_0xafb9('0x16'),_0x48179b['message'],_0x5c024f);_0x148c6e(_0x517a40['error'](0x1f4,_0x48179b[_0xafb9('0x14')]));});});};exports[_0xafb9('0x1e')]=function(_0x1c064e){var _0x275b97=this;return new Promise(function(_0x1ed44b,_0x4c39eb){return db[_0xafb9('0x17')][_0xafb9('0x1f')](_0x1c064e[_0xafb9('0x19')],{'raw':_0x1c064e[_0xafb9('0x1a')]?_0x1c064e[_0xafb9('0x1a')][_0xafb9('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1c064e[_0xafb9('0x1a')]?_0x1c064e[_0xafb9('0x1a')][_0xafb9('0x20')]||null:null,'attributes':_0x1c064e[_0xafb9('0x1a')]?_0x1c064e[_0xafb9('0x1a')][_0xafb9('0x21')]||null:null,'limit':_0x1c064e['options']?_0x1c064e['options'][_0xafb9('0x22')]||null:null})[_0xafb9('0xd')](function(_0x2a1d6c){logger[_0xafb9('0xe')](_0xafb9('0x1e'),_0x1c064e);logger['debug']('UpdateChatQueueReport',_0x1c064e,JSON[_0xafb9('0x1c')](_0x2a1d6c));_0x1ed44b(_0x2a1d6c);})[_0xafb9('0x1d')](function(_0x58ca87){logger[_0xafb9('0x12')]('UpdateChatQueueReport',_0x58ca87[_0xafb9('0x14')],_0x1c064e);_0x4c39eb(_0x275b97[_0xafb9('0x12')](0x1f4,_0x58ca87[_0xafb9('0x14')]));});});};
\ No newline at end of file
+var _0x1cfb=['bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','then','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','debug','ChatQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','CreateChatQueueReport','ChatQueueReport','create','body','options','update','raw','where','attributes','limit','UpdateChatQueueReport','lodash','moment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1cfb,0x7a));var _0xb1cf=function(_0x3b2a34,_0x55027c){_0x3b2a34=_0x3b2a34-0x0;var _0x3304cd=_0x1cfb[_0x3b2a34];return _0x3304cd;};'use strict';var _=require(_0xb1cf('0x0'));var util=require('util');var moment=require(_0xb1cf('0x1'));var BPromise=require(_0xb1cf('0x2'));var rs=require(_0xb1cf('0x3'));var fs=require('fs');var Redis=require(_0xb1cf('0x4'));var db=require(_0xb1cf('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xb1cf('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xb1cf('0x7'));var client=jayson[_0xb1cf('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3995e9,_0x1596ec,_0x229f6d){return new BPromise(function(_0x348741,_0xa8e6ef){return client['request'](_0x3995e9,_0x229f6d)[_0xb1cf('0x9')](function(_0x282d63){logger[_0xb1cf('0xa')](_0xb1cf('0xb'),_0x1596ec,_0xb1cf('0xc'));logger[_0xb1cf('0xd')](_0xb1cf('0xe'),_0x1596ec,'request\x20sent',JSON[_0xb1cf('0xf')](_0x282d63));if(_0x282d63[_0xb1cf('0x10')]){if(_0x282d63[_0xb1cf('0x10')]['code']===0x1f4){logger['error'](_0xb1cf('0xb'),_0x1596ec,_0x282d63['error'][_0xb1cf('0x11')]);return _0xa8e6ef(_0x282d63[_0xb1cf('0x10')][_0xb1cf('0x11')]);}logger[_0xb1cf('0x10')](_0xb1cf('0xb'),_0x1596ec,_0x282d63[_0xb1cf('0x10')]['message']);return _0x348741(_0x282d63[_0xb1cf('0x10')][_0xb1cf('0x11')]);}else{logger[_0xb1cf('0xa')](_0xb1cf('0xb'),_0x1596ec,'request\x20sent');_0x348741(_0x282d63[_0xb1cf('0x12')]['message']);}})[_0xb1cf('0x13')](function(_0x134adf){logger[_0xb1cf('0x10')](_0xb1cf('0xb'),_0x1596ec,_0x134adf);_0xa8e6ef(_0x134adf);});});}exports[_0xb1cf('0x14')]=function(_0x1d70e4){var _0x5c515c=this;return new Promise(function(_0x30b7e8,_0xbdc4d3){return db[_0xb1cf('0x15')][_0xb1cf('0x16')](_0x1d70e4[_0xb1cf('0x17')],{'raw':_0x1d70e4['options']?_0x1d70e4[_0xb1cf('0x18')]['raw']===undefined?!![]:![]:!![]})[_0xb1cf('0x9')](function(_0x2e6920){logger[_0xb1cf('0xa')](_0xb1cf('0x14'),_0x1d70e4);logger[_0xb1cf('0xd')](_0xb1cf('0x14'),_0x1d70e4,JSON[_0xb1cf('0xf')](_0x2e6920));_0x30b7e8(_0x2e6920);})['catch'](function(_0x4444f4){logger['error'](_0xb1cf('0x14'),_0x4444f4[_0xb1cf('0x11')],_0x1d70e4);_0xbdc4d3(_0x5c515c[_0xb1cf('0x10')](0x1f4,_0x4444f4[_0xb1cf('0x11')]));});});};exports['UpdateChatQueueReport']=function(_0x4fc1ec){var _0x1d48c4=this;return new Promise(function(_0xd755b,_0x380776){return db[_0xb1cf('0x15')][_0xb1cf('0x19')](_0x4fc1ec[_0xb1cf('0x17')],{'raw':_0x4fc1ec[_0xb1cf('0x18')]?_0x4fc1ec[_0xb1cf('0x18')][_0xb1cf('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4fc1ec[_0xb1cf('0x18')]?_0x4fc1ec[_0xb1cf('0x18')][_0xb1cf('0x1b')]||null:null,'attributes':_0x4fc1ec['options']?_0x4fc1ec[_0xb1cf('0x18')][_0xb1cf('0x1c')]||null:null,'limit':_0x4fc1ec['options']?_0x4fc1ec[_0xb1cf('0x18')][_0xb1cf('0x1d')]||null:null})[_0xb1cf('0x9')](function(_0x1409a9){logger[_0xb1cf('0xa')](_0xb1cf('0x1e'),_0x4fc1ec);logger['debug']('UpdateChatQueueReport',_0x4fc1ec,JSON['stringify'](_0x1409a9));_0xd755b(_0x1409a9);})[_0xb1cf('0x13')](function(_0x1cfd90){logger[_0xb1cf('0x10')](_0xb1cf('0x1e'),_0x1cfd90[_0xb1cf('0x11')],_0x4fc1ec);_0x380776(_0x1d48c4[_0xb1cf('0x10')](0x1f4,_0x1cfd90[_0xb1cf('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x453c=['../../config/environment','./chatQueueReport.controller','get','isAuthenticated','describe','/:id','create','put','delete','destroy','exports','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service'];(function(_0x358806,_0x322b66){var _0x19fdcb=function(_0xe01b8d){while(--_0xe01b8d){_0x358806['push'](_0x358806['shift']());}};_0x19fdcb(++_0x322b66);}(_0x453c,0xc6));var _0xc453=function(_0x16bb4b,_0x5fe431){_0x16bb4b=_0x16bb4b-0x0;var _0x8aeb84=_0x453c[_0x16bb4b];return _0x8aeb84;};'use strict';var multer=require(_0xc453('0x0'));var util=require(_0xc453('0x1'));var path=require('path');var timeout=require(_0xc453('0x2'));var express=require(_0xc453('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xc453('0x4'));var interaction=require(_0xc453('0x5'));var config=require(_0xc453('0x6'));var controller=require(_0xc453('0x7'));router[_0xc453('0x8')]('/',auth[_0xc453('0x9')](),controller['index']);router[_0xc453('0x8')]('/describe',auth['isAuthenticated'](),controller[_0xc453('0xa')]);router[_0xc453('0x8')](_0xc453('0xb'),auth['isAuthenticated'](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0xc453('0xc')]);router[_0xc453('0xd')](_0xc453('0xb'),auth[_0xc453('0x9')](),controller['update']);router[_0xc453('0xe')](_0xc453('0xb'),auth[_0xc453('0x9')](),controller[_0xc453('0xf')]);module[_0xc453('0x10')]=router;
\ No newline at end of file
+var _0x9d79=['./chatQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service'];(function(_0x353e0b,_0x4eb9b9){var _0x5b6b4d=function(_0x4a3f41){while(--_0x4a3f41){_0x353e0b['push'](_0x353e0b['shift']());}};_0x5b6b4d(++_0x4eb9b9);}(_0x9d79,0x1dc));var _0x99d7=function(_0x4d4334,_0x5d89cf){_0x4d4334=_0x4d4334-0x0;var _0x276ef6=_0x9d79[_0x4d4334];return _0x276ef6;};'use strict';var multer=require(_0x99d7('0x0'));var util=require(_0x99d7('0x1'));var path=require(_0x99d7('0x2'));var timeout=require(_0x99d7('0x3'));var express=require('express');var router=express[_0x99d7('0x4')]();var fs_extra=require(_0x99d7('0x5'));var auth=require(_0x99d7('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x99d7('0x7'));router[_0x99d7('0x8')]('/',auth[_0x99d7('0x9')](),controller[_0x99d7('0xa')]);router['get'](_0x99d7('0xb'),auth[_0x99d7('0x9')](),controller[_0x99d7('0xc')]);router['get'](_0x99d7('0xd'),auth['isAuthenticated'](),controller[_0x99d7('0xe')]);router[_0x99d7('0xf')]('/',auth[_0x99d7('0x9')](),controller[_0x99d7('0x10')]);router[_0x99d7('0x11')](_0x99d7('0xd'),auth['isAuthenticated'](),controller[_0x99d7('0x12')]);router[_0x99d7('0x13')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x99d7('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x5d6757,_0x2d4a36){var _0x350a89=function(_0x177e4f){while(--_0x177e4f){_0x5d6757['push'](_0x5d6757['shift']());}};_0x350a89(++_0x2d4a36);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x2867d8,_0xef3ee0){_0x2867d8=_0x2867d8-0x0;var _0x3b8176=_0xcb91[_0x2867d8];return _0x3b8176;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
+var _0xb43b=['DATE','NOW','moment','sequelize','STRING','ENUM','account','queue'];(function(_0x2984d0,_0x1a7211){var _0x2885f2=function(_0x42f3da){while(--_0x42f3da){_0x2984d0['push'](_0x2984d0['shift']());}};_0x2885f2(++_0x1a7211);}(_0xb43b,0x1b2));var _0xbb43=function(_0x56c17b,_0x300f31){_0x56c17b=_0x56c17b-0x0;var _0x2226ed=_0xb43b[_0x56c17b];return _0x2226ed;};'use strict';var moment=require(_0xbb43('0x0'));var Sequelize=require(_0xbb43('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0xbb43('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xbb43('0x3')](_0xbb43('0x4'),'agent',_0xbb43('0x5')),'allowNull':![],'defaultValue':_0xbb43('0x5')},'transferredAt':{'type':Sequelize[_0xbb43('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xbb43('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6db6=['rows','catch','length','find','create','body','params','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','offset','undefined','count','limit','set','Content-Range','json','apply','destroy','then','error','name','send','map','ChatTransferReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll'];(function(_0x4382bc,_0x231a2d){var _0x13c82a=function(_0x3723b0){while(--_0x3723b0){_0x4382bc['push'](_0x4382bc['shift']());}};_0x13c82a(++_0x231a2d);}(_0x6db6,0x1ca));var _0x66db=function(_0x418d4d,_0x1c7074){_0x418d4d=_0x418d4d-0x0;var _0x2bbf10=_0x6db6[_0x418d4d];return _0x2bbf10;};'use strict';var emlformat=require(_0x66db('0x0'));var rimraf=require(_0x66db('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x66db('0x2'));var moment=require(_0x66db('0x3'));var BPromise=require(_0x66db('0x4'));var Mustache=require(_0x66db('0x5'));var util=require(_0x66db('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x66db('0x7'));var ejs=require(_0x66db('0x8'));var fs=require('fs');var fs_extra=require(_0x66db('0x9'));var _=require(_0x66db('0xa'));var squel=require(_0x66db('0xb'));var crypto=require(_0x66db('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x66db('0xd'));var toCsv=require(_0x66db('0x7'));var querystring=require(_0x66db('0xe'));var Papa=require(_0x66db('0xf'));var Redis=require(_0x66db('0x10'));var authService=require(_0x66db('0x11'));var qs=require(_0x66db('0x12'));var as=require(_0x66db('0x13'));var hardwareService=require(_0x66db('0x14'));var logger=require(_0x66db('0x15'))(_0x66db('0x16'));var utils=require(_0x66db('0x17'));var config=require(_0x66db('0x18'));var licenseUtil=require(_0x66db('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x16afbf,_0x5c2293){_0x5c2293=_0x5c2293||0xcc;return function(_0x597f22){if(_0x597f22){return _0x16afbf[_0x66db('0x1a')](_0x5c2293);}return _0x16afbf['status'](_0x5c2293)[_0x66db('0x1b')]();};}function respondWithResult(_0x39ab12,_0x586bf6){_0x586bf6=_0x586bf6||0xc8;return function(_0xfd907c){if(_0xfd907c){return _0x39ab12[_0x66db('0x1c')](_0x586bf6)['json'](_0xfd907c);}};}function respondWithFilteredResult(_0x26117c,_0x41339a){return function(_0x504e5e){if(_0x504e5e){var _0x2f27d9=typeof _0x41339a[_0x66db('0x1d')]===_0x66db('0x1e')&&typeof _0x41339a['limit']==='undefined';var _0x47c0ec=_0x504e5e[_0x66db('0x1f')];var _0x5fc62e=_0x2f27d9?0x0:_0x41339a[_0x66db('0x1d')];var _0x5ebae1=_0x2f27d9?_0x504e5e[_0x66db('0x1f')]:_0x41339a[_0x66db('0x1d')]+_0x41339a[_0x66db('0x20')];var _0x502545;if(_0x5ebae1>=_0x47c0ec){_0x5ebae1=_0x47c0ec;_0x502545=0xc8;}else{_0x502545=0xce;}_0x26117c[_0x66db('0x1c')](_0x502545);return _0x26117c[_0x66db('0x21')](_0x66db('0x22'),_0x5fc62e+'-'+_0x5ebae1+'/'+_0x47c0ec)[_0x66db('0x23')](_0x504e5e);}return null;};}function patchUpdates(_0x1ac760){return function(_0x269721){try{jsonpatch[_0x66db('0x24')](_0x269721,_0x1ac760,!![]);}catch(_0x173c76){return BPromise['reject'](_0x173c76);}return _0x269721['save']();};}function saveUpdates(_0x1a53b6,_0x2a37a9){return function(_0x415713){if(_0x415713){return _0x415713['update'](_0x1a53b6)['then'](function(_0x41112c){return _0x41112c;});}return null;};}function removeEntity(_0xa3aecf,_0x41da45){return function(_0x1af656){if(_0x1af656){return _0x1af656[_0x66db('0x25')]()[_0x66db('0x26')](function(){_0xa3aecf[_0x66db('0x1c')](0xcc)[_0x66db('0x1b')]();});}};}function handleEntityNotFound(_0x5b0e3c,_0x742b06){return function(_0x4bb68b){if(!_0x4bb68b){_0x5b0e3c[_0x66db('0x1a')](0x194);}return _0x4bb68b;};}function handleError(_0x3e7465,_0xd47694){_0xd47694=_0xd47694||0x1f4;return function(_0xf447e8){logger[_0x66db('0x27')](_0xf447e8['stack']);if(_0xf447e8['name']){delete _0xf447e8[_0x66db('0x28')];}_0x3e7465['status'](_0xd47694)[_0x66db('0x29')](_0xf447e8);};}exports['index']=function(_0x466aba,_0x2315c){var _0x5cef62={},_0x300c06={},_0x2976bb={'count':0x0,'rows':[]};var _0x3da3b8=_[_0x66db('0x2a')](db[_0x66db('0x2b')][_0x66db('0x2c')],function(_0x65d5f6){return{'name':_0x65d5f6['fieldName'],'type':_0x65d5f6[_0x66db('0x2d')][_0x66db('0x2e')]};});_0x300c06[_0x66db('0x2f')]=_[_0x66db('0x2a')](_0x3da3b8,'name');_0x300c06[_0x66db('0x30')]=_[_0x66db('0x31')](_0x466aba['query']);_0x300c06[_0x66db('0x32')]=_[_0x66db('0x33')](_0x300c06[_0x66db('0x2f')],_0x300c06[_0x66db('0x30')]);_0x5cef62[_0x66db('0x34')]=_[_0x66db('0x33')](_0x300c06[_0x66db('0x2f')],qs['fields'](_0x466aba[_0x66db('0x30')][_0x66db('0x35')]));_0x5cef62[_0x66db('0x34')]=_0x5cef62[_0x66db('0x34')]['length']?_0x5cef62[_0x66db('0x34')]:_0x300c06['model'];if(!_0x466aba[_0x66db('0x30')][_0x66db('0x36')](_0x66db('0x37'))){_0x5cef62[_0x66db('0x20')]=qs['limit'](_0x466aba[_0x66db('0x30')][_0x66db('0x20')]);_0x5cef62[_0x66db('0x1d')]=qs[_0x66db('0x1d')](_0x466aba['query'][_0x66db('0x1d')]);}_0x5cef62[_0x66db('0x38')]=qs[_0x66db('0x39')](_0x466aba['query']['sort']);_0x5cef62['where']=qs[_0x66db('0x32')](_[_0x66db('0x3a')](_0x466aba['query'],_0x300c06['filters']),_0x3da3b8);if(_0x466aba[_0x66db('0x30')][_0x66db('0x3b')]){_0x5cef62[_0x66db('0x3c')]=_[_0x66db('0x3d')](_0x5cef62[_0x66db('0x3c')],{'$or':_[_0x66db('0x2a')](_0x3da3b8,function(_0x27858d){if(_0x27858d[_0x66db('0x2d')]!==_0x66db('0x3e')){var _0x12f351={};_0x12f351[_0x27858d['name']]={'$like':'%'+_0x466aba['query'][_0x66db('0x3b')]+'%'};return _0x12f351;}})});}_0x5cef62=_[_0x66db('0x3d')]({},_0x5cef62,_0x466aba[_0x66db('0x3f')]);var _0xa2b606={'where':_0x5cef62[_0x66db('0x3c')]};return db[_0x66db('0x2b')][_0x66db('0x1f')](_0xa2b606)[_0x66db('0x26')](function(_0xb1f02c){_0x2976bb[_0x66db('0x1f')]=_0xb1f02c;if(_0x466aba[_0x66db('0x30')][_0x66db('0x40')]){_0x5cef62[_0x66db('0x41')]=[{'all':!![]}];}return db['ChatTransferReport'][_0x66db('0x42')](_0x5cef62);})[_0x66db('0x26')](function(_0x5cfdd7){_0x2976bb[_0x66db('0x43')]=_0x5cfdd7;return _0x2976bb;})[_0x66db('0x26')](respondWithFilteredResult(_0x2315c,_0x5cef62))[_0x66db('0x44')](handleError(_0x2315c,null));};exports['show']=function(_0x50b127,_0x2a8f30){var _0x18d5a9={'raw':!![],'where':{'id':_0x50b127['params']['id']}},_0x566910={};_0x566910['model']=_[_0x66db('0x31')](db[_0x66db('0x2b')]['rawAttributes']);_0x566910[_0x66db('0x30')]=_['keys'](_0x50b127[_0x66db('0x30')]);_0x566910['filters']=_[_0x66db('0x33')](_0x566910['model'],_0x566910[_0x66db('0x30')]);_0x18d5a9[_0x66db('0x34')]=_[_0x66db('0x33')](_0x566910[_0x66db('0x2f')],qs[_0x66db('0x35')](_0x50b127[_0x66db('0x30')]['fields']));_0x18d5a9[_0x66db('0x34')]=_0x18d5a9[_0x66db('0x34')][_0x66db('0x45')]?_0x18d5a9['attributes']:_0x566910[_0x66db('0x2f')];if(_0x50b127[_0x66db('0x30')][_0x66db('0x40')]){_0x18d5a9[_0x66db('0x41')]=[{'all':!![]}];}_0x18d5a9=_['merge']({},_0x18d5a9,_0x50b127[_0x66db('0x3f')]);return db['ChatTransferReport'][_0x66db('0x46')](_0x18d5a9)['then'](handleEntityNotFound(_0x2a8f30,null))[_0x66db('0x26')](respondWithResult(_0x2a8f30,null))[_0x66db('0x44')](handleError(_0x2a8f30,null));};exports[_0x66db('0x47')]=function(_0x123cbc,_0x4229f4){return db[_0x66db('0x2b')][_0x66db('0x47')](_0x123cbc['body'],{})['then'](respondWithResult(_0x4229f4,0xc9))[_0x66db('0x44')](handleError(_0x4229f4,null));};exports['update']=function(_0x19be60,_0x5d0e67){if(_0x19be60[_0x66db('0x48')]['id']){delete _0x19be60[_0x66db('0x48')]['id'];}return db[_0x66db('0x2b')][_0x66db('0x46')]({'where':{'id':_0x19be60[_0x66db('0x49')]['id']}})[_0x66db('0x26')](handleEntityNotFound(_0x5d0e67,null))[_0x66db('0x26')](saveUpdates(_0x19be60[_0x66db('0x48')],null))[_0x66db('0x26')](respondWithResult(_0x5d0e67,null))[_0x66db('0x44')](handleError(_0x5d0e67,null));};exports[_0x66db('0x25')]=function(_0x136055,_0x11910d){return db['ChatTransferReport'][_0x66db('0x46')]({'where':{'id':_0x136055['params']['id']}})['then'](handleEntityNotFound(_0x11910d,null))[_0x66db('0x26')](removeEntity(_0x11910d,null))[_0x66db('0x44')](handleError(_0x11910d,null));};exports['describe']=function(_0x2b83ba,_0x1ed288){return db['ChatTransferReport'][_0x66db('0x4a')]()[_0x66db('0x26')](respondWithResult(_0x1ed288,null))[_0x66db('0x44')](handleError(_0x1ed288,null));};
\ No newline at end of file
+var _0x84d1=['zip-dir','fast-json-patch','mustache','util','path','sox','ejs','fs-extra','lodash','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','then','destroy','error','name','send','index','map','ChatTransferReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','include','findAll','rows','catch','show','params','includeAll','create','body','update','find','describe','eml-format','rimraf'];(function(_0x18f80d,_0x2d1b35){var _0x50bf4f=function(_0x5d6e34){while(--_0x5d6e34){_0x18f80d['push'](_0x18f80d['shift']());}};_0x50bf4f(++_0x2d1b35);}(_0x84d1,0xdc));var _0x184d=function(_0xf858e,_0x51b0f1){_0xf858e=_0xf858e-0x0;var _0x5344d8=_0x84d1[_0xf858e];return _0x5344d8;};'use strict';var emlformat=require(_0x184d('0x0'));var rimraf=require(_0x184d('0x1'));var zipdir=require(_0x184d('0x2'));var jsonpatch=require(_0x184d('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x184d('0x4'));var util=require(_0x184d('0x5'));var path=require(_0x184d('0x6'));var sox=require(_0x184d('0x7'));var csv=require('to-csv');var ejs=require(_0x184d('0x8'));var fs=require('fs');var fs_extra=require(_0x184d('0x9'));var _=require(_0x184d('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x184d('0xb'));var toCsv=require('to-csv');var querystring=require(_0x184d('0xc'));var Papa=require(_0x184d('0xd'));var Redis=require(_0x184d('0xe'));var authService=require(_0x184d('0xf'));var qs=require(_0x184d('0x10'));var as=require(_0x184d('0x11'));var hardwareService=require(_0x184d('0x12'));var logger=require(_0x184d('0x13'))(_0x184d('0x14'));var utils=require('../../config/utils');var config=require(_0x184d('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x184d('0x16'))['db'];function respondWithStatusCode(_0xe230c8,_0x100a03){_0x100a03=_0x100a03||0xcc;return function(_0x57d7ed){if(_0x57d7ed){return _0xe230c8[_0x184d('0x17')](_0x100a03);}return _0xe230c8[_0x184d('0x18')](_0x100a03)[_0x184d('0x19')]();};}function respondWithResult(_0x412303,_0x21d36f){_0x21d36f=_0x21d36f||0xc8;return function(_0x44e91f){if(_0x44e91f){return _0x412303[_0x184d('0x18')](_0x21d36f)[_0x184d('0x1a')](_0x44e91f);}};}function respondWithFilteredResult(_0x31237b,_0x2cc06d){return function(_0x134627){if(_0x134627){var _0x42d580=typeof _0x2cc06d[_0x184d('0x1b')]===_0x184d('0x1c')&&typeof _0x2cc06d[_0x184d('0x1d')]===_0x184d('0x1c');var _0x3039d2=_0x134627[_0x184d('0x1e')];var _0x5f3c68=_0x42d580?0x0:_0x2cc06d[_0x184d('0x1b')];var _0x5cc255=_0x42d580?_0x134627[_0x184d('0x1e')]:_0x2cc06d[_0x184d('0x1b')]+_0x2cc06d[_0x184d('0x1d')];var _0x154507;if(_0x5cc255>=_0x3039d2){_0x5cc255=_0x3039d2;_0x154507=0xc8;}else{_0x154507=0xce;}_0x31237b[_0x184d('0x18')](_0x154507);return _0x31237b[_0x184d('0x1f')](_0x184d('0x20'),_0x5f3c68+'-'+_0x5cc255+'/'+_0x3039d2)['json'](_0x134627);}return null;};}function patchUpdates(_0x431e65){return function(_0x1876af){try{jsonpatch[_0x184d('0x21')](_0x1876af,_0x431e65,!![]);}catch(_0x224767){return BPromise[_0x184d('0x22')](_0x224767);}return _0x1876af['save']();};}function saveUpdates(_0x51986e,_0x432163){return function(_0x4d436d){if(_0x4d436d){return _0x4d436d['update'](_0x51986e)[_0x184d('0x23')](function(_0x188b2d){return _0x188b2d;});}return null;};}function removeEntity(_0x1f223c,_0x1a3e43){return function(_0x44ec2e){if(_0x44ec2e){return _0x44ec2e[_0x184d('0x24')]()[_0x184d('0x23')](function(){_0x1f223c[_0x184d('0x18')](0xcc)[_0x184d('0x19')]();});}};}function handleEntityNotFound(_0x237ced,_0x29d3e0){return function(_0x272c3b){if(!_0x272c3b){_0x237ced[_0x184d('0x17')](0x194);}return _0x272c3b;};}function handleError(_0x417bb1,_0x52502b){_0x52502b=_0x52502b||0x1f4;return function(_0x24a665){logger[_0x184d('0x25')](_0x24a665['stack']);if(_0x24a665[_0x184d('0x26')]){delete _0x24a665['name'];}_0x417bb1['status'](_0x52502b)[_0x184d('0x27')](_0x24a665);};}exports[_0x184d('0x28')]=function(_0x82f248,_0x547fe4){var _0x2eb025={},_0xe7fa7e={},_0x330f23={'count':0x0,'rows':[]};var _0x39f611=_[_0x184d('0x29')](db[_0x184d('0x2a')][_0x184d('0x2b')],function(_0x20a48b){return{'name':_0x20a48b[_0x184d('0x2c')],'type':_0x20a48b[_0x184d('0x2d')]['key']};});_0xe7fa7e[_0x184d('0x2e')]=_[_0x184d('0x29')](_0x39f611,_0x184d('0x26'));_0xe7fa7e[_0x184d('0x2f')]=_[_0x184d('0x30')](_0x82f248[_0x184d('0x2f')]);_0xe7fa7e[_0x184d('0x31')]=_[_0x184d('0x32')](_0xe7fa7e[_0x184d('0x2e')],_0xe7fa7e[_0x184d('0x2f')]);_0x2eb025[_0x184d('0x33')]=_[_0x184d('0x32')](_0xe7fa7e[_0x184d('0x2e')],qs[_0x184d('0x34')](_0x82f248[_0x184d('0x2f')][_0x184d('0x34')]));_0x2eb025[_0x184d('0x33')]=_0x2eb025[_0x184d('0x33')][_0x184d('0x35')]?_0x2eb025[_0x184d('0x33')]:_0xe7fa7e['model'];if(!_0x82f248[_0x184d('0x2f')][_0x184d('0x36')](_0x184d('0x37'))){_0x2eb025[_0x184d('0x1d')]=qs[_0x184d('0x1d')](_0x82f248['query']['limit']);_0x2eb025[_0x184d('0x1b')]=qs[_0x184d('0x1b')](_0x82f248['query'][_0x184d('0x1b')]);}_0x2eb025[_0x184d('0x38')]=qs[_0x184d('0x39')](_0x82f248['query']['sort']);_0x2eb025[_0x184d('0x3a')]=qs[_0x184d('0x31')](_[_0x184d('0x3b')](_0x82f248[_0x184d('0x2f')],_0xe7fa7e[_0x184d('0x31')]),_0x39f611);if(_0x82f248[_0x184d('0x2f')][_0x184d('0x3c')]){_0x2eb025[_0x184d('0x3a')]=_[_0x184d('0x3d')](_0x2eb025[_0x184d('0x3a')],{'$or':_[_0x184d('0x29')](_0x39f611,function(_0x116ab7){if(_0x116ab7[_0x184d('0x2d')]!=='VIRTUAL'){var _0x2f9a99={};_0x2f9a99[_0x116ab7[_0x184d('0x26')]]={'$like':'%'+_0x82f248['query']['filter']+'%'};return _0x2f9a99;}})});}_0x2eb025=_[_0x184d('0x3d')]({},_0x2eb025,_0x82f248['options']);var _0xddf2ca={'where':_0x2eb025[_0x184d('0x3a')]};return db[_0x184d('0x2a')][_0x184d('0x1e')](_0xddf2ca)['then'](function(_0x222214){_0x330f23[_0x184d('0x1e')]=_0x222214;if(_0x82f248[_0x184d('0x2f')]['includeAll']){_0x2eb025[_0x184d('0x3e')]=[{'all':!![]}];}return db['ChatTransferReport'][_0x184d('0x3f')](_0x2eb025);})[_0x184d('0x23')](function(_0x1c4eef){_0x330f23[_0x184d('0x40')]=_0x1c4eef;return _0x330f23;})[_0x184d('0x23')](respondWithFilteredResult(_0x547fe4,_0x2eb025))[_0x184d('0x41')](handleError(_0x547fe4,null));};exports[_0x184d('0x42')]=function(_0x541214,_0x5422a3){var _0x35c523={'raw':!![],'where':{'id':_0x541214[_0x184d('0x43')]['id']}},_0x41f369={};_0x41f369[_0x184d('0x2e')]=_[_0x184d('0x30')](db['ChatTransferReport']['rawAttributes']);_0x41f369[_0x184d('0x2f')]=_[_0x184d('0x30')](_0x541214[_0x184d('0x2f')]);_0x41f369[_0x184d('0x31')]=_[_0x184d('0x32')](_0x41f369[_0x184d('0x2e')],_0x41f369[_0x184d('0x2f')]);_0x35c523[_0x184d('0x33')]=_[_0x184d('0x32')](_0x41f369[_0x184d('0x2e')],qs[_0x184d('0x34')](_0x541214['query'][_0x184d('0x34')]));_0x35c523['attributes']=_0x35c523[_0x184d('0x33')]['length']?_0x35c523[_0x184d('0x33')]:_0x41f369[_0x184d('0x2e')];if(_0x541214[_0x184d('0x2f')][_0x184d('0x44')]){_0x35c523[_0x184d('0x3e')]=[{'all':!![]}];}_0x35c523=_[_0x184d('0x3d')]({},_0x35c523,_0x541214['options']);return db['ChatTransferReport']['find'](_0x35c523)['then'](handleEntityNotFound(_0x5422a3,null))[_0x184d('0x23')](respondWithResult(_0x5422a3,null))[_0x184d('0x41')](handleError(_0x5422a3,null));};exports[_0x184d('0x45')]=function(_0x3787fd,_0x2c4132){return db[_0x184d('0x2a')][_0x184d('0x45')](_0x3787fd[_0x184d('0x46')],{})[_0x184d('0x23')](respondWithResult(_0x2c4132,0xc9))[_0x184d('0x41')](handleError(_0x2c4132,null));};exports[_0x184d('0x47')]=function(_0x4ac503,_0x19a3af){if(_0x4ac503[_0x184d('0x46')]['id']){delete _0x4ac503[_0x184d('0x46')]['id'];}return db[_0x184d('0x2a')][_0x184d('0x48')]({'where':{'id':_0x4ac503['params']['id']}})[_0x184d('0x23')](handleEntityNotFound(_0x19a3af,null))[_0x184d('0x23')](saveUpdates(_0x4ac503[_0x184d('0x46')],null))[_0x184d('0x23')](respondWithResult(_0x19a3af,null))[_0x184d('0x41')](handleError(_0x19a3af,null));};exports[_0x184d('0x24')]=function(_0x5ba753,_0x5ca14b){return db['ChatTransferReport'][_0x184d('0x48')]({'where':{'id':_0x5ba753[_0x184d('0x43')]['id']}})[_0x184d('0x23')](handleEntityNotFound(_0x5ca14b,null))[_0x184d('0x23')](removeEntity(_0x5ca14b,null))[_0x184d('0x41')](handleError(_0x5ca14b,null));};exports[_0x184d('0x49')]=function(_0x368ec5,_0x535748){return db['ChatTransferReport']['describe']()[_0x184d('0x23')](respondWithResult(_0x535748,null))['catch'](handleError(_0x535748,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9349=['exports','define','ChatTransferReport','report_chat_transfer','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./chatTransferReport.attributes'];(function(_0x2aa155,_0x5ae424){var _0x3e2718=function(_0x4eed3b){while(--_0x4eed3b){_0x2aa155['push'](_0x2aa155['shift']());}};_0x3e2718(++_0x5ae424);}(_0x9349,0x6e));var _0x9934=function(_0x18fc07,_0x5097c9){_0x18fc07=_0x18fc07-0x0;var _0x27d153=_0x9349[_0x18fc07];return _0x27d153;};'use strict';var _=require(_0x9934('0x0'));var util=require(_0x9934('0x1'));var logger=require(_0x9934('0x2'))(_0x9934('0x3'));var moment=require('moment');var BPromise=require(_0x9934('0x4'));var rp=require(_0x9934('0x5'));var fs=require('fs');var path=require(_0x9934('0x6'));var rimraf=require(_0x9934('0x7'));var config=require(_0x9934('0x8'));var attributes=require(_0x9934('0x9'));module[_0x9934('0xa')]=function(_0x1e39d7,_0x33575f){return _0x1e39d7[_0x9934('0xb')](_0x9934('0xc'),attributes,{'tableName':_0x9934('0xd'),'paranoid':![],'indexes':[{'name':_0x9934('0xe'),'fields':[_0x9934('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xa938=['uniqueid','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./chatTransferReport.attributes','exports','define','ChatTransferReport'];(function(_0x2b4ff7,_0x14ced6){var _0x1c865a=function(_0x35ed5){while(--_0x35ed5){_0x2b4ff7['push'](_0x2b4ff7['shift']());}};_0x1c865a(++_0x14ced6);}(_0xa938,0x1a5));var _0x8a93=function(_0x1ce792,_0x342e8c){_0x1ce792=_0x1ce792-0x0;var _0x330705=_0xa938[_0x1ce792];return _0x330705;};'use strict';var _=require(_0x8a93('0x0'));var util=require(_0x8a93('0x1'));var logger=require(_0x8a93('0x2'))(_0x8a93('0x3'));var moment=require(_0x8a93('0x4'));var BPromise=require(_0x8a93('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8a93('0x6'));var rimraf=require(_0x8a93('0x7'));var config=require(_0x8a93('0x8'));var attributes=require(_0x8a93('0x9'));module[_0x8a93('0xa')]=function(_0xa36308,_0x4b5dfa){return _0xa36308[_0x8a93('0xb')](_0x8a93('0xc'),attributes,{'tableName':'report_chat_transfer','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x8a93('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc5c0=['ChatTransferReport,\x20%s,\x20%s','message','result','catch','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x32b542,_0x4512fa){var _0x554d54=function(_0x35cdfc){while(--_0x35cdfc){_0x32b542['push'](_0x32b542['shift']());}};_0x554d54(++_0x4512fa);}(_0xc5c0,0x1a2));var _0x0c5c=function(_0x297360,_0x5e5c79){_0x297360=_0x297360-0x0;var _0x52e330=_0xc5c0[_0x297360];return _0x52e330;};'use strict';var _=require(_0x0c5c('0x0'));var util=require(_0x0c5c('0x1'));var moment=require('moment');var BPromise=require(_0x0c5c('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0c5c('0x3'));var db=require(_0x0c5c('0x4'))['db'];var utils=require(_0x0c5c('0x5'));var logger=require(_0x0c5c('0x6'))('rpc');var config=require(_0x0c5c('0x7'));var jayson=require(_0x0c5c('0x8'));var client=jayson[_0x0c5c('0x9')][_0x0c5c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x315573,_0x4f20c4,_0x48860b){return new BPromise(function(_0x53ce3c,_0x2841b2){return client[_0x0c5c('0xb')](_0x315573,_0x48860b)[_0x0c5c('0xc')](function(_0x20860c){logger[_0x0c5c('0xd')]('ChatTransferReport,\x20%s,\x20%s',_0x4f20c4,_0x0c5c('0xe'));logger[_0x0c5c('0xf')](_0x0c5c('0x10'),_0x4f20c4,_0x0c5c('0xe'),JSON[_0x0c5c('0x11')](_0x20860c));if(_0x20860c[_0x0c5c('0x12')]){if(_0x20860c[_0x0c5c('0x12')]['code']===0x1f4){logger[_0x0c5c('0x12')](_0x0c5c('0x13'),_0x4f20c4,_0x20860c[_0x0c5c('0x12')][_0x0c5c('0x14')]);return _0x2841b2(_0x20860c[_0x0c5c('0x12')]['message']);}logger[_0x0c5c('0x12')](_0x0c5c('0x13'),_0x4f20c4,_0x20860c[_0x0c5c('0x12')][_0x0c5c('0x14')]);return _0x53ce3c(_0x20860c['error']['message']);}else{logger[_0x0c5c('0xd')](_0x0c5c('0x13'),_0x4f20c4,_0x0c5c('0xe'));_0x53ce3c(_0x20860c[_0x0c5c('0x15')][_0x0c5c('0x14')]);}})[_0x0c5c('0x16')](function(_0x3efdc1){logger['error'](_0x0c5c('0x13'),_0x4f20c4,_0x3efdc1);_0x2841b2(_0x3efdc1);});});}
\ No newline at end of file
+var _0x488f=['result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ChatTransferReport,\x20%s,\x20%s','request\x20sent','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','error','code','message'];(function(_0x3ce856,_0x124bf3){var _0xb8c6e1=function(_0x287c07){while(--_0x287c07){_0x3ce856['push'](_0x3ce856['shift']());}};_0xb8c6e1(++_0x124bf3);}(_0x488f,0xb1));var _0xf488=function(_0x2bde3b,_0x400ce6){_0x2bde3b=_0x2bde3b-0x0;var _0x497aa8=_0x488f[_0x2bde3b];return _0x497aa8;};'use strict';var _=require(_0xf488('0x0'));var util=require(_0xf488('0x1'));var moment=require(_0xf488('0x2'));var BPromise=require(_0xf488('0x3'));var rs=require(_0xf488('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf488('0x5'))['db'];var utils=require(_0xf488('0x6'));var logger=require(_0xf488('0x7'))(_0xf488('0x8'));var config=require(_0xf488('0x9'));var jayson=require(_0xf488('0xa'));var client=jayson[_0xf488('0xb')][_0xf488('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x564870,_0x3594d0,_0x1eef39){return new BPromise(function(_0x46301f,_0x5830ca){return client[_0xf488('0xd')](_0x564870,_0x1eef39)[_0xf488('0xe')](function(_0x395014){logger[_0xf488('0xf')](_0xf488('0x10'),_0x3594d0,_0xf488('0x11'));logger[_0xf488('0x12')](_0xf488('0x13'),_0x3594d0,_0xf488('0x11'),JSON['stringify'](_0x395014));if(_0x395014[_0xf488('0x14')]){if(_0x395014[_0xf488('0x14')][_0xf488('0x15')]===0x1f4){logger[_0xf488('0x14')]('ChatTransferReport,\x20%s,\x20%s',_0x3594d0,_0x395014[_0xf488('0x14')][_0xf488('0x16')]);return _0x5830ca(_0x395014['error'][_0xf488('0x16')]);}logger[_0xf488('0x14')](_0xf488('0x10'),_0x3594d0,_0x395014[_0xf488('0x14')]['message']);return _0x46301f(_0x395014[_0xf488('0x14')][_0xf488('0x16')]);}else{logger[_0xf488('0xf')]('ChatTransferReport,\x20%s,\x20%s',_0x3594d0,_0xf488('0x11'));_0x46301f(_0x395014[_0xf488('0x17')][_0xf488('0x16')]);}})[_0xf488('0x18')](function(_0x4d3a4b){logger['error'](_0xf488('0x10'),_0x3594d0,_0x4d3a4b);_0x5830ca(_0x4d3a4b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa593=['show','post','create','put','update','delete','destroy','exports','util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatTransferReport.controller','get','isAuthenticated','/describe','/:id'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xa593,0xc6));var _0x3a59=function(_0x18904f,_0x1999b0){_0x18904f=_0x18904f-0x0;var _0x1fc705=_0xa593[_0x18904f];return _0x1fc705;};'use strict';var multer=require('multer');var util=require(_0x3a59('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x3a59('0x1'));var router=express[_0x3a59('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x3a59('0x3'));var interaction=require(_0x3a59('0x4'));var config=require(_0x3a59('0x5'));var controller=require(_0x3a59('0x6'));router[_0x3a59('0x7')]('/',auth[_0x3a59('0x8')](),controller['index']);router[_0x3a59('0x7')](_0x3a59('0x9'),auth[_0x3a59('0x8')](),controller['describe']);router[_0x3a59('0x7')](_0x3a59('0xa'),auth[_0x3a59('0x8')](),controller[_0x3a59('0xb')]);router[_0x3a59('0xc')]('/',auth['isAuthenticated'](),controller[_0x3a59('0xd')]);router[_0x3a59('0xe')](_0x3a59('0xa'),auth[_0x3a59('0x8')](),controller[_0x3a59('0xf')]);router[_0x3a59('0x10')]('/:id',auth[_0x3a59('0x8')](),controller[_0x3a59('0x11')]);module[_0x3a59('0x12')]=router;
\ No newline at end of file
+var _0x78f8=['./chatTransferReport.controller','get','/describe','isAuthenticated','describe','/:id','show','create','put','update','delete','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment'];(function(_0x50132a,_0x373543){var _0x241c77=function(_0x5c39a4){while(--_0x5c39a4){_0x50132a['push'](_0x50132a['shift']());}};_0x241c77(++_0x373543);}(_0x78f8,0x1c5));var _0x878f=function(_0x4d0f23,_0x1806a9){_0x4d0f23=_0x4d0f23-0x0;var _0x53337f=_0x78f8[_0x4d0f23];return _0x53337f;};'use strict';var multer=require(_0x878f('0x0'));var util=require(_0x878f('0x1'));var path=require('path');var timeout=require(_0x878f('0x2'));var express=require(_0x878f('0x3'));var router=express['Router']();var fs_extra=require(_0x878f('0x4'));var auth=require(_0x878f('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x878f('0x6'));var controller=require(_0x878f('0x7'));router[_0x878f('0x8')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x878f('0x9'),auth[_0x878f('0xa')](),controller[_0x878f('0xb')]);router[_0x878f('0x8')](_0x878f('0xc'),auth['isAuthenticated'](),controller[_0x878f('0xd')]);router['post']('/',auth[_0x878f('0xa')](),controller[_0x878f('0xe')]);router[_0x878f('0xf')]('/:id',auth[_0x878f('0xa')](),controller[_0x878f('0x10')]);router[_0x878f('0x11')](_0x878f('0xc'),auth['isAuthenticated'](),controller[_0x878f('0x12')]);module[_0x878f('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x923a=['#ffffff','INTEGER','BOOLEAN','ENUM','rounded','We\x20are\x20here!','Chat','Send','Contact\x20us','Powered\x20by\x20xCALLY','TEXT','Do\x20you\x20want\x20to\x20close\x20the\x20interaction?','Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Skip','Feedback','star','input','name','text','onlineForm','getDataValue','stringify','Comments','Leave\x20your\x20comments','offlineForm','parse','generate','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.','New\x20offline\x20message\x20from\x20websiteName','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','bottom_right','alternate','#fafafa','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','randomstring','exports','STRING','email','Agent'];(function(_0x4f25e6,_0x5e0cc2){var _0x106dc9=function(_0x1e6032){while(--_0x1e6032){_0x4f25e6['push'](_0x4f25e6['shift']());}};_0x106dc9(++_0x5e0cc2);}(_0x923a,0x108));var _0xa923=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x923a[_0x2be8c2];return _0x97f531;};'use strict';var Sequelize=require(_0xa923('0x0'));var rs=require(_0xa923('0x1'));module[_0xa923('0x2')]={'name':{'type':Sequelize[_0xa923('0x3')],'allowNull':![]},'address':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'unique':'address'},'description':{'type':Sequelize[_0xa923('0x3')]},'mapKey':{'type':Sequelize[_0xa923('0x3')],'defaultValue':'email'},'mapKeyOffline':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x4')},'key':{'type':Sequelize[_0xa923('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x5')},'customerAlias':{'type':Sequelize[_0xa923('0x3')],'defaultValue':'Me'},'color':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':'#011F6A','validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':'#011F6A','validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':_0xa923('0x6'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0xf},'remote':{'type':Sequelize[_0xa923('0x3')]},'animation':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0xa923('0x9')]('rounded','squared'),'defaultValue':_0xa923('0xa')},'header_online':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xb')},'start_chat_button':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xc')},'offline_chat_button':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0xd')},'header_offline':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xe')},'download_transcript':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'timeout':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xf')},'defaultWhiteLabel':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0xa923('0x10')]},'closingQuestion':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x11')},'formSubmitSuccessMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x12')},'formSubmitFailureMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x13')},'noteTitle':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x14')},'placeholderMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x15')},'closingMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x16')},'closingMessageButton':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xd')},'skipMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x17')},'conditionAgreement':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'enableRating':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x18')},'ratingType':{'type':Sequelize['ENUM']('star','thumb'),'defaultValue':_0xa923('0x19')},'ratingStarsNumber':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0xa923('0x10')],'defaultValue':function(){return JSON['stringify']({'items':[{'type':_0xa923('0x1a'),'variable':null,'config':{'placeholder':_0xa923('0x1b'),'type':_0xa923('0x1c'),'required':!![]},'props':{'title':_0xa923('0x1b'),'helpText':''}},{'type':_0xa923('0x1a'),'props':{'title':_0xa923('0x4'),'helpText':''},'config':{'required':!![],'placeholder':'email','type':_0xa923('0x4')},'variable':null}],'fromKey':0x1});},'get':function(){return this['getDataValue'](_0xa923('0x1d'))?JSON['parse'](this[_0xa923('0x1e')]('onlineForm')):{};},'set':function(_0x51f938){return this['setDataValue']('onlineForm',JSON[_0xa923('0x1f')](_0x51f938));}},'offlineForm':{'type':Sequelize[_0xa923('0x10')],'defaultValue':function(){return JSON['stringify']({'items':[{'type':'input','props':{'title':_0xa923('0x4'),'helpText':''},'config':{'required':!![],'placeholder':_0xa923('0x4'),'type':_0xa923('0x4')},'variable':null},{'type':'textarea','config':{'placeholder':'Comments'},'props':{'title':_0xa923('0x20'),'helpText':_0xa923('0x21')}}],'fromKey':0x0});},'get':function(){return this['getDataValue'](_0xa923('0x22'))?JSON[_0xa923('0x23')](this['getDataValue'](_0xa923('0x22'))):{};},'set':function(_0x88f162){return this['setDataValue'](_0xa923('0x22'),JSON['stringify'](_0x88f162));}},'token':{'type':Sequelize[_0xa923('0x3')],'defaultValue':function(){return rs[_0xa923('0x24')]();}},'autoclose':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize['STRING']},'forwardOffline':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0xa923('0x3')]},'waitingTitle':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x25')},'waitingMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x26')},'offlineMessageSubject':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x27')},'offlineMessageBody':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x28')},'enableUnmanagedNote':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize['STRING'],'defaultValue':'Your\x20request\x20has\x20not\x20been\x20processed.'},'skipUnmanaged':{'type':Sequelize[_0xa923('0x3')],'defaultValue':'Skip'},'sendUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0xd')},'enableCustomerAttachment':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0xa923('0x10')]},'showAgentAvatar':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'timezone':{'type':Sequelize[_0xa923('0x3')]},'notificationTemplate':{'type':Sequelize[_0xa923('0x10')],'defaultValue':function(){return _0xa923('0x29');}},'notificationSound':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x2a')},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x2b')},'verticalAlignment':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x2c')},'defaultTitle':{'type':Sequelize[_0xa923('0x3')]},'customerAvatar':{'type':Sequelize['TEXT']},'showCustomerAvatar':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':_0xa923('0x2d'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xa923('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x2e')},'systemAvatar':{'type':Sequelize[_0xa923('0x10')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0xa923('0x7')],'comment':_0xa923('0x2f')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0xa923('0x30'),'set':function(_0x14dd0){if(!_0x14dd0)this[_0xa923('0x31')](_0xa923('0x32'),null);this['setDataValue'](_0xa923('0x33'),_0x14dd0);}},'vidaooEscalation':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0xa923('0x3')]},'vidaooTopic':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xa923('0x34')},'vidaooNote':{'type':Sequelize[_0xa923('0x3')],'defaultValue':function(){return _0xa923('0x35');}},'vidaooMetadata':{'type':Sequelize[_0xa923('0x10')],'defaultValue':null},'openNewInteraction':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0xa923('0x10')]}};
\ No newline at end of file
+var _0x0581=['Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Thanks\x20you\x20for\x20your\x20time!','Skip','BOOLEAN','star','thumb','name','getDataValue','onlineForm','parse','setDataValue','stringify','textarea','Comments','Leave\x20your\x20comments','offlineForm','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Your\x20request\x20has\x20not\x20been\x20processed.','Send','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','alternate','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','Generated\x20by\x20XCALLY\x20Motion','sequelize','randomstring','STRING','address','email','Agent','#011F6A','#ffffff','INTEGER','ENUM','rounded','squared','We\x20are\x20here!','Chat','Contact\x20us','TEXT'];(function(_0x593564,_0x43583f){var _0x211a89=function(_0x40afd6){while(--_0x40afd6){_0x593564['push'](_0x593564['shift']());}};_0x211a89(++_0x43583f);}(_0x0581,0x18e));var _0x1058=function(_0x5db59c,_0x11cc79){_0x5db59c=_0x5db59c-0x0;var _0x2a1f41=_0x0581[_0x5db59c];return _0x2a1f41;};'use strict';var Sequelize=require(_0x1058('0x0'));var rs=require(_0x1058('0x1'));module['exports']={'name':{'type':Sequelize[_0x1058('0x2')],'allowNull':![]},'address':{'type':Sequelize[_0x1058('0x2')],'allowNull':![],'unique':_0x1058('0x3')},'description':{'type':Sequelize[_0x1058('0x2')]},'mapKey':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x4')},'mapKeyOffline':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x4')},'key':{'type':Sequelize[_0x1058('0x2')],'allowNull':![]},'agentAlias':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x5')},'customerAlias':{'type':Sequelize['STRING'],'defaultValue':'Me'},'color':{'type':Sequelize[_0x1058('0x2')],'allowNull':![],'defaultValue':_0x1058('0x6'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0x1058('0x2')],'allowNull':![],'defaultValue':_0x1058('0x6'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0x1058('0x2')],'allowNull':![],'defaultValue':_0x1058('0x7'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0x1058('0x8')],'defaultValue':0xf},'remote':{'type':Sequelize['STRING']},'animation':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0x1058('0x9')](_0x1058('0xa'),_0x1058('0xb')),'defaultValue':_0x1058('0xa')},'header_online':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0xc')},'start_chat_button':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0xd')},'offline_chat_button':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'Send'},'header_offline':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0xe')},'download_transcript':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'timeout':{'type':Sequelize[_0x1058('0x8')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'Powered\x20by\x20xCALLY'},'defaultWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0x1058('0xf')]},'closingQuestion':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'Do\x20you\x20want\x20to\x20close\x20the\x20interaction?'},'formSubmitSuccessMessage':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x10')},'formSubmitFailureMessage':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x11')},'noteTitle':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x12')},'placeholderMessage':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'Type\x20a\x20message'},'closingMessage':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x13')},'closingMessageButton':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'Send'},'skipMessageButton':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x14')},'conditionAgreement':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableRating':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableFeedback':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'Feedback'},'ratingType':{'type':Sequelize[_0x1058('0x9')](_0x1058('0x16'),_0x1058('0x17')),'defaultValue':_0x1058('0x16')},'ratingStarsNumber':{'type':Sequelize[_0x1058('0x8')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0x1058('0xf')],'defaultValue':function(){return JSON['stringify']({'items':[{'type':'input','variable':null,'config':{'placeholder':_0x1058('0x18'),'type':'text','required':!![]},'props':{'title':_0x1058('0x18'),'helpText':''}},{'type':'input','props':{'title':_0x1058('0x4'),'helpText':''},'config':{'required':!![],'placeholder':_0x1058('0x4'),'type':'email'},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0x1058('0x19')](_0x1058('0x1a'))?JSON[_0x1058('0x1b')](this[_0x1058('0x19')](_0x1058('0x1a'))):{};},'set':function(_0x485bb6){return this[_0x1058('0x1c')]('onlineForm',JSON['stringify'](_0x485bb6));}},'offlineForm':{'type':Sequelize['TEXT'],'defaultValue':function(){return JSON[_0x1058('0x1d')]({'items':[{'type':'input','props':{'title':_0x1058('0x4'),'helpText':''},'config':{'required':!![],'placeholder':_0x1058('0x4'),'type':_0x1058('0x4')},'variable':null},{'type':_0x1058('0x1e'),'config':{'placeholder':_0x1058('0x1f')},'props':{'title':_0x1058('0x1f'),'helpText':_0x1058('0x20')}}],'fromKey':0x0});},'get':function(){return this['getDataValue'](_0x1058('0x21'))?JSON[_0x1058('0x1b')](this[_0x1058('0x19')](_0x1058('0x21'))):{};},'set':function(_0x15e84b){return this[_0x1058('0x1c')](_0x1058('0x21'),JSON[_0x1058('0x1d')](_0x15e84b));}},'token':{'type':Sequelize[_0x1058('0x2')],'defaultValue':function(){return rs['generate']();}},'autoclose':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize['STRING']},'forwardOffline':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0x1058('0x2')]},'waitingTitle':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x22')},'waitingMessage':{'type':Sequelize['STRING'],'defaultValue':'Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.'},'offlineMessageSubject':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'New\x20offline\x20message\x20from\x20websiteName'},'offlineMessageBody':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x23')},'enableUnmanagedNote':{'type':Sequelize[_0x1058('0x15')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x24')},'skipUnmanaged':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x14')},'sendUnmanaged':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x25')},'enableCustomerAttachment':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0x1058('0xf')]},'showAgentAvatar':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'timezone':{'type':Sequelize[_0x1058('0x2')]},'notificationTemplate':{'type':Sequelize[_0x1058('0xf')],'defaultValue':function(){return _0x1058('0x26');}},'notificationSound':{'type':Sequelize[_0x1058('0x15')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize['STRING'],'defaultValue':'website_alias'},'waitForTheAssignedAgent':{'type':Sequelize[_0x1058('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0x1058('0x2')],'defaultValue':'bottom_right'},'verticalAlignment':{'type':Sequelize['INTEGER'],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x27')},'defaultTitle':{'type':Sequelize[_0x1058('0x2')]},'customerAvatar':{'type':Sequelize[_0x1058('0xf')]},'showCustomerAvatar':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0x1058('0x8')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'#fafafa','validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x1058('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0x1058('0x2')],'defaultValue':_0x1058('0x28')},'systemAvatar':{'type':Sequelize[_0x1058('0xf')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x1058('0x8')],'comment':_0x1058('0x29')},'mandatoryDisposition':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![],'comment':_0x1058('0x2a'),'set':function(_0x4d2806){if(!_0x4d2806)this[_0x1058('0x1c')](_0x1058('0x2b'),null);this[_0x1058('0x1c')](_0x1058('0x2c'),_0x4d2806);}},'vidaooEscalation':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize['STRING']},'vidaooTopic':{'type':Sequelize[_0x1058('0x2')],'allowNull':![],'defaultValue':_0x1058('0x2d')},'vidaooNote':{'type':Sequelize[_0x1058('0x2')],'defaultValue':function(){return'Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}';}},'vidaooMetadata':{'type':Sequelize[_0x1058('0xf')],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0x1058('0x15')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0x1058('0xf')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c59=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','params','describe','findOne','Disposition','ChatWebsiteId','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addLogo','sitepic','file','filename','addAvatar','addCustomerAvatar','customerAvatar','systemAvatar','getLogo','join','server/files/images/logos/default_logo.svg','../../config/license/util','getLicense','root','server/files/images/logos/','download','getAvatar','server/files/images/avatars/default_avatar.png','agentAvatar','existsSync','server/files/images/avatars/','getCustomerAvatar','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','isNil','getSystemAvatar','server/files/images/avatars/system_avatar.png','notify','headers','getResult','chat','Sequelize','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','from','ValidationError','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','List','CmContact','Contacts','DESC','Applications','applications','orderBy','asc','account','contact','cf-connecting-ip','x-forwarded-for','first','split','lastName','x-real-port','referer','browser','version','format','%s\x20%s','device','vendor','threadId','ChatInteraction','externalUrl','interaction','spread','firstName','messageId','created','push','close','*,*,*,*','AttachmentId','UserId','unshift','agent','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','offline','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKeyOffline','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','MailAccount','findOrCreate','server/files/templates/chatOfflineMessage.ejs','utf8','render','toPairs','ChatOfflineMessage','originalname','mimetype','files','attachments','offline-chat','basename','sequelize','transaction','bulkCreate','MailServerOut','Smtp','forwardOfflineAddress','service','host','port','secure','authentication','auth','pass','SendMail','\x22%s\x22\x20<%s>','email','offlineMessageSubject','MailAccountId','subjectOffline','mapValues','Chat','NotifyMailAccount','notifyMail','server','remove','addInteraction','omit','Contact','User','Owner','fullname','internal','Tag','Tags','color','tag','getSnippet','timezone','indexOf','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','interval','OFFLINE','inspect','No\x20timezone','Interval','Intervals','getProactiveActions','virtual','custom','increment','chatLicenseExceeded','all','some','readFileSync','remote','connection','remoteAddress','alignment','color_button','ChatApplication','findAndCountAll','getApplications','addProactiveActions','ChatProactiveAction','false','offlineForm','onlineForm','items','fromKey','getOfflineMessages','Attachment','Attachments','addAgents','emit','userChatWebsite:save','removeAgents','isArray','userChatWebsite:remove','getAgents','eml-format','zip-dir','request-promise','bluebird','ejs','lodash','squel','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','redis','defaults','localhost','./chatWebsite.socket','register','client','http','request','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','destroy','ChatWebsites','UserProfileResource','stack','name','send','Pause','mandatoryDispositionPause','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','ChatWebsite','includeAll','include','rows','show','create','body','user','get'];(function(_0x5d1d99,_0x10ca23){var _0x2957ec=function(_0x4f4ba){while(--_0x4f4ba){_0x5d1d99['push'](_0x5d1d99['shift']());}};_0x2957ec(++_0x10ca23);}(_0x0c59,0xcc));var _0x90c5=function(_0x872b02,_0x4f4458){_0x872b02=_0x872b02-0x0;var _0x1a6b24=_0x0c59[_0x872b02];return _0x1a6b24;};'use strict';var emlformat=require(_0x90c5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x90c5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x90c5('0x2'));var moment=require('moment');var BPromise=require(_0x90c5('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x90c5('0x4'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x90c5('0x5'));var squel=require(_0x90c5('0x6'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x90c5('0x7'));var toCsv=require(_0x90c5('0x8'));var querystring=require('querystring');var Papa=require(_0x90c5('0x9'));var Redis=require(_0x90c5('0xa'));var authService=require(_0x90c5('0xb'));var qs=require(_0x90c5('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x90c5('0xd'));var logger=require(_0x90c5('0xe'))('api');var utils=require(_0x90c5('0xf'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x90c5('0x10')]=_[_0x90c5('0x11')](config[_0x90c5('0x10')],{'host':_0x90c5('0x12'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x90c5('0x13'))[_0x90c5('0x14')](socket);var jayson=require('jayson/promise');var client=jayson[_0x90c5('0x15')][_0x90c5('0x16')]({'port':0x232c});var client9002=jayson[_0x90c5('0x15')][_0x90c5('0x16')]({'port':0x232a});var client9003=jayson[_0x90c5('0x15')][_0x90c5('0x16')]({'port':0x232b});var client9001=jayson[_0x90c5('0x15')]['http']({'port':0x2329});function respondWithRpcPromise(_0x50bd05,_0x387bc6,_0x10e3c3,_0x19a7db){return new BPromise(function(_0xed4ed2,_0x2e8964){var _0x179c4f=_0x19a7db||client;return _0x179c4f[_0x90c5('0x17')](_0x50bd05,_0x10e3c3)[_0x90c5('0x18')](function(_0x219181){logger[_0x90c5('0x19')](_0x90c5('0x1a'),_0x387bc6,_0x90c5('0x1b'));logger[_0x90c5('0x1c')](_0x90c5('0x1d'),_0x387bc6,_0x90c5('0x1b'),JSON[_0x90c5('0x1e')](_0x219181));if(_0x219181[_0x90c5('0x1f')]){if(_0x219181['error']['code']===0x1f4){logger[_0x90c5('0x1f')](_0x90c5('0x1a'),_0x387bc6,_0x219181[_0x90c5('0x1f')]['message']);return _0x2e8964(_0x219181['error'][_0x90c5('0x20')]);}logger[_0x90c5('0x1f')](_0x90c5('0x1a'),_0x387bc6,_0x219181[_0x90c5('0x1f')]['message']);return _0xed4ed2(_0x219181[_0x90c5('0x1f')][_0x90c5('0x20')]);}else{logger[_0x90c5('0x19')](_0x90c5('0x1a'),_0x387bc6,'request\x20sent');_0xed4ed2(_0x219181['result'][_0x90c5('0x20')]);}})[_0x90c5('0x21')](function(_0x8aaa0b){logger[_0x90c5('0x1f')](_0x90c5('0x1a'),_0x387bc6,_0x8aaa0b);_0x2e8964(_0x8aaa0b);});});}function respondWithStatusCode(_0x3a73c9,_0xfa8ad8){_0xfa8ad8=_0xfa8ad8||0xcc;return function(_0x51a6c1){if(_0x51a6c1){return _0x3a73c9[_0x90c5('0x22')](_0xfa8ad8);}return _0x3a73c9[_0x90c5('0x23')](_0xfa8ad8)[_0x90c5('0x24')]();};}function respondWithResult(_0x1edd38,_0x1fd828){_0x1fd828=_0x1fd828||0xc8;return function(_0x4efca5){if(_0x4efca5){return _0x1edd38['status'](_0x1fd828)[_0x90c5('0x25')](_0x4efca5);}};}function respondWithFilteredResult(_0x50ccc5,_0x42a0ca){return function(_0x100fae){if(_0x100fae){var _0x2ef42f=typeof _0x42a0ca[_0x90c5('0x26')]===_0x90c5('0x27')&&typeof _0x42a0ca[_0x90c5('0x28')]===_0x90c5('0x27');var _0x5e2e54=_0x100fae[_0x90c5('0x29')];var _0x3563e0=_0x2ef42f?0x0:_0x42a0ca[_0x90c5('0x26')];var _0x23fefa=_0x2ef42f?_0x100fae[_0x90c5('0x29')]:_0x42a0ca['offset']+_0x42a0ca[_0x90c5('0x28')];var _0x3a82ac;if(_0x23fefa>=_0x5e2e54){_0x23fefa=_0x5e2e54;_0x3a82ac=0xc8;}else{_0x3a82ac=0xce;}_0x50ccc5[_0x90c5('0x23')](_0x3a82ac);return _0x50ccc5[_0x90c5('0x2a')](_0x90c5('0x2b'),_0x3563e0+'-'+_0x23fefa+'/'+_0x5e2e54)[_0x90c5('0x25')](_0x100fae);}return null;};}function patchUpdates(_0x5640da){return function(_0x12a19e){try{jsonpatch['apply'](_0x12a19e,_0x5640da,!![]);}catch(_0x324762){return BPromise['reject'](_0x324762);}return _0x12a19e[_0x90c5('0x2c')]();};}function saveUpdates(_0x4a7e67,_0x53b44d){return function(_0x162065){if(_0x162065){return _0x162065[_0x90c5('0x2d')](_0x4a7e67)[_0x90c5('0x18')](function(_0x1d552b){return _0x1d552b;});}return null;};}function removeEntity(_0x5c2ab1,_0x9ac506){return function(_0x5a289f){if(_0x5a289f){return _0x5a289f[_0x90c5('0x2e')]()['then'](function(){var _0x326037=_0x5a289f['get']({'plain':!![]});var _0xd48d85=_0x90c5('0x2f');return db[_0x90c5('0x30')]['destroy']({'where':{'type':_0xd48d85,'resourceId':_0x326037['id']}})['then'](function(){return _0x5a289f;});})['then'](function(){_0x5c2ab1[_0x90c5('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42d36f,_0x475ea9){return function(_0x45f0fc){if(!_0x45f0fc){_0x42d36f[_0x90c5('0x22')](0x194);}return _0x45f0fc;};}function handleError(_0x7bbfb1,_0x464bbb){_0x464bbb=_0x464bbb||0x1f4;return function(_0x3052bd){logger[_0x90c5('0x1f')](_0x3052bd[_0x90c5('0x31')]);if(_0x3052bd['name']){delete _0x3052bd[_0x90c5('0x32')];}_0x7bbfb1[_0x90c5('0x23')](_0x464bbb)[_0x90c5('0x33')](_0x3052bd);};}exports['index']=function(_0x57ea63,_0x1daa9f){var _0x2422f6={'include':[{'model':db[_0x90c5('0x34')],'as':_0x90c5('0x35')}]},_0x183cd6={},_0x3381a7={'count':0x0,'rows':[]};var _0x1ea61c=_[_0x90c5('0x36')](db['ChatWebsite'][_0x90c5('0x37')],function(_0x1063fd){return{'name':_0x1063fd['fieldName'],'type':_0x1063fd[_0x90c5('0x38')]['key']};});_0x183cd6[_0x90c5('0x39')]=_[_0x90c5('0x36')](_0x1ea61c,_0x90c5('0x32'));_0x183cd6[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x57ea63['query']);_0x183cd6[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x183cd6[_0x90c5('0x39')],_0x183cd6[_0x90c5('0x3a')]);_0x2422f6[_0x90c5('0x3e')]=_['intersection'](_0x183cd6['model'],qs[_0x90c5('0x3f')](_0x57ea63['query'][_0x90c5('0x3f')]));_0x2422f6[_0x90c5('0x3e')]=_0x2422f6['attributes'][_0x90c5('0x40')]?_0x2422f6[_0x90c5('0x3e')]:_0x183cd6[_0x90c5('0x39')];if(!_0x57ea63['query'][_0x90c5('0x41')](_0x90c5('0x42'))){_0x2422f6[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x57ea63[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x2422f6[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x57ea63[_0x90c5('0x3a')]['offset']);}_0x2422f6[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x57ea63[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x2422f6[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x57ea63[_0x90c5('0x3a')],_0x183cd6[_0x90c5('0x3c')]),_0x1ea61c);if(_0x57ea63['query'][_0x90c5('0x47')]){_0x2422f6[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x2422f6[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x1ea61c,function(_0xbe981a){if(_0xbe981a['type']!=='VIRTUAL'){var _0x48825a={};_0x48825a[_0xbe981a['name']]={'$like':'%'+_0x57ea63['query'][_0x90c5('0x47')]+'%'};return _0x48825a;}})});}_0x2422f6=_[_0x90c5('0x48')]({},_0x2422f6,_0x57ea63[_0x90c5('0x49')]);var _0x5c2f77={'where':_0x2422f6[_0x90c5('0x45')]};return db[_0x90c5('0x4a')][_0x90c5('0x29')](_0x5c2f77)[_0x90c5('0x18')](function(_0x5b0225){_0x3381a7['count']=_0x5b0225;if(_0x57ea63[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x2422f6[_0x90c5('0x4c')]=[{'all':!![]}];}return db[_0x90c5('0x4a')]['findAll'](_0x2422f6);})[_0x90c5('0x18')](function(_0x491b3b){_0x3381a7[_0x90c5('0x4d')]=_0x491b3b;return _0x3381a7;})[_0x90c5('0x18')](respondWithFilteredResult(_0x1daa9f,_0x2422f6))['catch'](handleError(_0x1daa9f,null));};exports[_0x90c5('0x4e')]=function(_0xc2cd0f,_0x25f30e){var _0x5a43be={'raw':![],'where':{'id':_0xc2cd0f['params']['id']},'include':[{'model':db[_0x90c5('0x34')],'as':_0x90c5('0x35')}]},_0x1ffee1={};_0x1ffee1['model']=_[_0x90c5('0x3b')](db[_0x90c5('0x4a')][_0x90c5('0x37')]);_0x1ffee1[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0xc2cd0f[_0x90c5('0x3a')]);_0x1ffee1[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x1ffee1['model'],_0x1ffee1[_0x90c5('0x3a')]);_0x5a43be[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x1ffee1[_0x90c5('0x39')],qs['fields'](_0xc2cd0f['query'][_0x90c5('0x3f')]));_0x5a43be[_0x90c5('0x3e')]=_0x5a43be['attributes'][_0x90c5('0x40')]?_0x5a43be['attributes']:_0x1ffee1[_0x90c5('0x39')];if(_0xc2cd0f['query'][_0x90c5('0x4b')]){_0x5a43be[_0x90c5('0x4c')]=[{'all':!![]}];}_0x5a43be=_[_0x90c5('0x48')]({},_0x5a43be,_0xc2cd0f[_0x90c5('0x49')]);return db['ChatWebsite']['find'](_0x5a43be)[_0x90c5('0x18')](handleEntityNotFound(_0x25f30e,null))[_0x90c5('0x18')](respondWithResult(_0x25f30e,null))[_0x90c5('0x21')](handleError(_0x25f30e,null));};exports[_0x90c5('0x4f')]=function(_0x3ae09e,_0x28822c){return db['ChatWebsite'][_0x90c5('0x4f')](_0x3ae09e[_0x90c5('0x50')],{})[_0x90c5('0x18')](function(_0x4ae575){var _0x5a76c3=_0x3ae09e[_0x90c5('0x51')][_0x90c5('0x52')]({'plain':!![]});if(!_0x5a76c3)throw new Error(_0x90c5('0x53'));if(_0x5a76c3[_0x90c5('0x54')]===_0x90c5('0x51')){var _0x551e53=_0x4ae575[_0x90c5('0x52')]({'plain':!![]});var _0xe97b53=_0x90c5('0x2f');return db[_0x90c5('0x55')]['find']({'where':{'name':_0xe97b53,'userProfileId':_0x5a76c3[_0x90c5('0x56')]},'raw':!![]})[_0x90c5('0x18')](function(_0x50a7a8){if(_0x50a7a8&&_0x50a7a8[_0x90c5('0x57')]===0x0){return db[_0x90c5('0x30')][_0x90c5('0x4f')]({'name':_0x551e53['name'],'resourceId':_0x551e53['id'],'type':_0x50a7a8[_0x90c5('0x32')],'sectionId':_0x50a7a8['id']},{})[_0x90c5('0x18')](function(){return _0x4ae575;});}else{return _0x4ae575;}})[_0x90c5('0x21')](function(_0x2b8303){logger[_0x90c5('0x1f')](_0x90c5('0x58'),_0x2b8303);throw _0x2b8303;});}return _0x4ae575;})[_0x90c5('0x18')](respondWithResult(_0x28822c,0xc9))[_0x90c5('0x21')](handleError(_0x28822c,null));};exports[_0x90c5('0x2d')]=function(_0x2bfae1,_0x53ce9e){if(_0x2bfae1[_0x90c5('0x50')]['id']){delete _0x2bfae1['body']['id'];}return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x2bfae1['params']['id']},'include':[{'model':db[_0x90c5('0x34')],'as':'mandatoryDispositionPause'}]})['then'](handleEntityNotFound(_0x53ce9e,null))[_0x90c5('0x18')](saveUpdates(_0x2bfae1[_0x90c5('0x50')],null))[_0x90c5('0x18')](respondWithResult(_0x53ce9e,null))['catch'](handleError(_0x53ce9e,null));};exports['destroy']=function(_0x103d8c,_0x1181ea){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x103d8c[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1181ea,null))[_0x90c5('0x18')](removeEntity(_0x1181ea,null))[_0x90c5('0x21')](handleError(_0x1181ea,null));};exports['describe']=function(_0x26884a,_0x587c1a){return db[_0x90c5('0x4a')][_0x90c5('0x5b')]()[_0x90c5('0x18')](respondWithResult(_0x587c1a,null))[_0x90c5('0x21')](handleError(_0x587c1a,null));};exports['addDisposition']=function(_0x4e9ad2,_0x5c3f3b,_0x372883){if(_0x4e9ad2[_0x90c5('0x50')]['id']){delete _0x4e9ad2[_0x90c5('0x50')]['id'];}return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x4e9ad2[_0x90c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x5c3f3b,null))['then'](function(_0x13b3ac){if(_0x13b3ac){_0x4e9ad2[_0x90c5('0x50')]['ChatWebsiteId']=_0x13b3ac['id'];return db['Disposition']['create'](_0x4e9ad2['body']);}})['then'](respondWithResult(_0x5c3f3b,null))[_0x90c5('0x21')](handleError(_0x5c3f3b,null));};exports['getDispositions']=function(_0x15523f,_0x32471f,_0x53e8dd){var _0x28eeda={'raw':![],'where':{}};var _0x4af0ca={};var _0x4b1eb9={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x15523f[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x32471f,null))[_0x90c5('0x18')](function(_0x2f989e){if(_0x2f989e){_0x4af0ca[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db[_0x90c5('0x5d')][_0x90c5('0x37')]);_0x4af0ca[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x15523f[_0x90c5('0x3a')]);_0x4af0ca[_0x90c5('0x3c')]=_['intersection'](_0x4af0ca[_0x90c5('0x39')],_0x4af0ca[_0x90c5('0x3a')]);_0x28eeda[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x4af0ca[_0x90c5('0x39')],qs[_0x90c5('0x3f')](_0x15523f[_0x90c5('0x3a')][_0x90c5('0x3f')]));_0x28eeda['attributes']=_0x28eeda['attributes']['length']?_0x28eeda[_0x90c5('0x3e')]:_0x4af0ca[_0x90c5('0x39')];if(!_0x15523f[_0x90c5('0x3a')]['hasOwnProperty'](_0x90c5('0x42'))){_0x28eeda[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x15523f[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x28eeda['offset']=qs[_0x90c5('0x26')](_0x15523f[_0x90c5('0x3a')]['offset']);}_0x28eeda[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x15523f[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x28eeda[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x15523f[_0x90c5('0x3a')],_0x4af0ca[_0x90c5('0x3c')]));_0x28eeda[_0x90c5('0x45')][_0x90c5('0x5e')]=_0x2f989e['id'];if(_0x15523f[_0x90c5('0x3a')]['filter']){_0x28eeda[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x28eeda[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x28eeda[_0x90c5('0x3e')],function(_0xcb976a){var _0x522de9={};_0x522de9[_0xcb976a]={'$like':'%'+_0x15523f[_0x90c5('0x3a')][_0x90c5('0x47')]+'%'};return _0x522de9;})});}_0x28eeda=_[_0x90c5('0x48')]({},_0x28eeda,_0x15523f[_0x90c5('0x49')]);return db['Disposition']['count']({'where':_0x28eeda[_0x90c5('0x45')]})['then'](function(_0x24ae8a){_0x4b1eb9[_0x90c5('0x29')]=_0x24ae8a;if(_0x15523f[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x28eeda[_0x90c5('0x4c')]=[{'all':!![]}];}return db[_0x90c5('0x5d')][_0x90c5('0x5f')](_0x28eeda);})[_0x90c5('0x18')](function(_0x4c7e37){_0x4b1eb9[_0x90c5('0x4d')]=_0x4c7e37;return _0x4b1eb9;});}})[_0x90c5('0x18')](respondWithFilteredResult(_0x32471f,_0x28eeda))[_0x90c5('0x21')](handleError(_0x32471f,null));};exports[_0x90c5('0x60')]=function(_0x539c8a,_0x519abf,_0x231697){return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x539c8a['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x519abf,null))[_0x90c5('0x18')](function(_0xf43e67){if(_0xf43e67){return _0xf43e67[_0x90c5('0x60')](_0x539c8a[_0x90c5('0x3a')][_0x90c5('0x61')]);}})[_0x90c5('0x18')](respondWithStatusCode(_0x519abf,null))[_0x90c5('0x21')](handleError(_0x519abf,null));};exports[_0x90c5('0x62')]=function(_0x2097aa,_0x467e05,_0x19958f){if(_0x2097aa[_0x90c5('0x50')]['id']){delete _0x2097aa['body']['id'];}return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x2097aa[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x467e05,null))[_0x90c5('0x18')](function(_0x2bc0b6){if(_0x2bc0b6){_0x2097aa[_0x90c5('0x50')][_0x90c5('0x5e')]=_0x2bc0b6['id'];return db[_0x90c5('0x63')][_0x90c5('0x4f')](_0x2097aa[_0x90c5('0x50')]);}})[_0x90c5('0x18')](respondWithResult(_0x467e05,null))[_0x90c5('0x21')](handleError(_0x467e05,null));};exports[_0x90c5('0x64')]=function(_0x1e3a49,_0x18e131,_0x3c833a){var _0x4b90e0={'raw':![],'where':{}};var _0x48dd53={};var _0x91b241={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x1e3a49[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x18e131,null))['then'](function(_0x46a18d){if(_0x46a18d){_0x48dd53[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db['CannedAnswer'][_0x90c5('0x37')]);_0x48dd53[_0x90c5('0x3a')]=_['keys'](_0x1e3a49['query']);_0x48dd53[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x48dd53[_0x90c5('0x39')],_0x48dd53[_0x90c5('0x3a')]);_0x4b90e0[_0x90c5('0x3e')]=_['intersection'](_0x48dd53[_0x90c5('0x39')],qs[_0x90c5('0x3f')](_0x1e3a49['query'][_0x90c5('0x3f')]));_0x4b90e0[_0x90c5('0x3e')]=_0x4b90e0[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x4b90e0[_0x90c5('0x3e')]:_0x48dd53[_0x90c5('0x39')];if(!_0x1e3a49[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x4b90e0[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x1e3a49['query'][_0x90c5('0x28')]);_0x4b90e0[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x1e3a49[_0x90c5('0x3a')]['offset']);}_0x4b90e0[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x1e3a49[_0x90c5('0x3a')]['sort']);_0x4b90e0['where']=qs[_0x90c5('0x3c')](_['pick'](_0x1e3a49[_0x90c5('0x3a')],_0x48dd53['filters']));_0x4b90e0[_0x90c5('0x45')][_0x90c5('0x5e')]=_0x46a18d['id'];if(_0x1e3a49[_0x90c5('0x3a')]['filter']){_0x4b90e0[_0x90c5('0x45')]=_['merge'](_0x4b90e0[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x4b90e0['attributes'],function(_0x2a76bd){var _0x1ea6a1={};_0x1ea6a1[_0x2a76bd]={'$like':'%'+_0x1e3a49['query'][_0x90c5('0x47')]+'%'};return _0x1ea6a1;})});}_0x4b90e0=_['merge']({},_0x4b90e0,_0x1e3a49[_0x90c5('0x49')]);return db[_0x90c5('0x63')][_0x90c5('0x29')]({'where':_0x4b90e0[_0x90c5('0x45')]})['then'](function(_0x545530){_0x91b241[_0x90c5('0x29')]=_0x545530;if(_0x1e3a49[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x4b90e0[_0x90c5('0x4c')]=[{'all':!![]}];}return db['CannedAnswer'][_0x90c5('0x5f')](_0x4b90e0);})[_0x90c5('0x18')](function(_0x48a1cd){_0x91b241['rows']=_0x48a1cd;return _0x91b241;});}})[_0x90c5('0x18')](respondWithFilteredResult(_0x18e131,_0x4b90e0))[_0x90c5('0x21')](handleError(_0x18e131,null));};exports[_0x90c5('0x65')]=function(_0xe2d459,_0x2556ba,_0x57d80a){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0xe2d459['params']['id']}})['then'](handleEntityNotFound(_0x2556ba,null))[_0x90c5('0x18')](function(_0x4f16ab){if(_0x4f16ab){return _0x4f16ab[_0x90c5('0x65')](_0xe2d459[_0x90c5('0x3a')]['ids']);}})['then'](respondWithStatusCode(_0x2556ba,null))[_0x90c5('0x21')](handleError(_0x2556ba,null));};exports[_0x90c5('0x66')]=function(_0x49c69b,_0x5a524f,_0x27cce7){_0x49c69b[_0x90c5('0x50')][_0x90c5('0x67')]=_0x49c69b[_0x90c5('0x68')][_0x90c5('0x69')];return db['ChatWebsite'][_0x90c5('0x59')]({'where':{'id':_0x49c69b[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x5a524f,null))[_0x90c5('0x18')](saveUpdates(_0x49c69b[_0x90c5('0x50')],null))['then'](respondWithResult(_0x5a524f,null))['catch'](handleError(_0x5a524f,null));};exports[_0x90c5('0x6a')]=function(_0x5c160c,_0x469a4e,_0x4b3748){_0x5c160c['body']['agentAvatar']=_0x5c160c[_0x90c5('0x68')][_0x90c5('0x69')];return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x5c160c[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x469a4e,null))[_0x90c5('0x18')](saveUpdates(_0x5c160c[_0x90c5('0x50')],null))[_0x90c5('0x18')](respondWithResult(_0x469a4e,null))[_0x90c5('0x21')](handleError(_0x469a4e,null));};exports[_0x90c5('0x6b')]=function(_0x533728,_0xaef486,_0x46a968){_0x533728['body'][_0x90c5('0x6c')]=_0x533728['file'][_0x90c5('0x69')];return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x533728[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0xaef486,null))[_0x90c5('0x18')](saveUpdates(_0x533728['body'],null))[_0x90c5('0x18')](respondWithResult(_0xaef486,null))[_0x90c5('0x21')](handleError(_0xaef486,null));};exports['addSystemAvatar']=function(_0x5034e7,_0x1f5933,_0x52675a){_0x5034e7[_0x90c5('0x50')][_0x90c5('0x6d')]=_0x5034e7['file'][_0x90c5('0x69')];return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x5034e7[_0x90c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x1f5933,null))[_0x90c5('0x18')](saveUpdates(_0x5034e7[_0x90c5('0x50')],null))[_0x90c5('0x18')](respondWithResult(_0x1f5933,null))[_0x90c5('0x21')](handleError(_0x1f5933,null));};exports[_0x90c5('0x6e')]=function(_0x36e9d6,_0x11391b,_0x4919a2){var _0x4b3558=path[_0x90c5('0x6f')](config['root'],_0x90c5('0x70'));var _0x15d7be={'where':{'id':_0x36e9d6['params']['id']},'attributes':['id',_0x90c5('0x67')],'raw':!![]};var _0x3c7df1=![];return require(_0x90c5('0x71'))[_0x90c5('0x72')]()[_0x90c5('0x18')](function(_0x29dbb6){if(_0x29dbb6){_0x3c7df1=_0x29dbb6['custom'];}})[_0x90c5('0x18')](function(){return db[_0x90c5('0x4a')][_0x90c5('0x59')](_0x15d7be);})[_0x90c5('0x18')](handleEntityNotFound(_0x11391b,null))[_0x90c5('0x18')](function(_0x474522){if(_0x474522){if(!_['isNil'](_0x474522['sitepic'])){if(fs['existsSync'](path['join'](config[_0x90c5('0x73')],_0x90c5('0x74'),_0x474522['sitepic']))&&_0x3c7df1){_0x4b3558=path[_0x90c5('0x6f')](config['root'],'server/files/images/logos/',_0x474522[_0x90c5('0x67')]);}}return _0x11391b[_0x90c5('0x75')](_0x4b3558);}})[_0x90c5('0x21')](handleError(_0x11391b,null));};exports[_0x90c5('0x76')]=function(_0x3b23c9,_0x76d96f,_0x3555fd){var _0x5b5cea=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],_0x90c5('0x77'));var _0x59ee06={'where':{'id':_0x3b23c9[_0x90c5('0x5a')]['id']},'attributes':['id',_0x90c5('0x78')],'raw':!![]};return db['ChatWebsite'][_0x90c5('0x59')](_0x59ee06)[_0x90c5('0x18')](handleEntityNotFound(_0x76d96f,null))[_0x90c5('0x18')](function(_0x3723b8){if(_0x3723b8){if(!_['isNil'](_0x3723b8[_0x90c5('0x78')])){if(fs[_0x90c5('0x79')](path['join'](config[_0x90c5('0x73')],_0x90c5('0x7a'),_0x3723b8['agentAvatar']))){_0x5b5cea=path[_0x90c5('0x6f')](config['root'],_0x90c5('0x7a'),_0x3723b8[_0x90c5('0x78')]);}}return _0x76d96f[_0x90c5('0x75')](_0x5b5cea);}})[_0x90c5('0x21')](handleError(_0x76d96f,null));};exports[_0x90c5('0x7b')]=function(_0x2b58ed,_0x506a44,_0x392739){var _0x5d8a76=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],_0x90c5('0x7c'));var _0x471df8={'where':{'id':_0x2b58ed[_0x90c5('0x5a')]['id']},'attributes':['id',_0x90c5('0x6c'),_0x90c5('0x7d')],'raw':!![]};return db[_0x90c5('0x4a')][_0x90c5('0x59')](_0x471df8)['then'](handleEntityNotFound(_0x506a44,null))[_0x90c5('0x18')](function(_0x1a9f2a){if(_0x1a9f2a){if(!_[_0x90c5('0x7e')](_0x1a9f2a[_0x90c5('0x6c')])){if(fs[_0x90c5('0x79')](path['join'](config[_0x90c5('0x73')],'server/files/images/avatars/',_0x1a9f2a['customerAvatar']))&&_0x1a9f2a[_0x90c5('0x7d')]){_0x5d8a76=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],'server/files/images/avatars/',_0x1a9f2a[_0x90c5('0x6c')]);}}return _0x506a44[_0x90c5('0x75')](_0x5d8a76);}})[_0x90c5('0x21')](handleError(_0x506a44,null));};exports[_0x90c5('0x7f')]=function(_0x2a72d4,_0x569c74,_0x388945){var _0x2a3e8b=path['join'](config[_0x90c5('0x73')],_0x90c5('0x80'));var _0x6cbe1={'where':{'id':_0x2a72d4['params']['id']},'attributes':['id',_0x90c5('0x6d')],'raw':!![]};return db[_0x90c5('0x4a')][_0x90c5('0x59')](_0x6cbe1)[_0x90c5('0x18')](handleEntityNotFound(_0x569c74,null))[_0x90c5('0x18')](function(_0x1f8837){if(_0x1f8837){if(!_[_0x90c5('0x7e')](_0x1f8837[_0x90c5('0x6d')])){if(fs['existsSync'](path[_0x90c5('0x6f')](config[_0x90c5('0x73')],'server/files/images/avatars/',_0x1f8837[_0x90c5('0x6d')]))){_0x2a3e8b=path[_0x90c5('0x6f')](config['root'],_0x90c5('0x7a'),_0x1f8837[_0x90c5('0x6d')]);}}return _0x569c74[_0x90c5('0x75')](_0x2a3e8b);}})['catch'](handleError(_0x569c74,null));};exports[_0x90c5('0x81')]=function(_0x4ebd85,_0x235451,_0x2e90b1){var _0x6848dd=require('user-agent-parser');var _0x34d65e=new _0x6848dd();var _0x309b7b=_0x34d65e['setUA'](_0x4ebd85[_0x90c5('0x82')]['user-agent'])[_0x90c5('0x83')]();var _0x2e6e1d={'body':_0x4ebd85[_0x90c5('0x50')],'channel':_0x90c5('0x84')};var _0x331411=[];var _0x485202=[];var _0x4f0978={};var _0x284df9=![];return db['CmContact'][_0x90c5('0x5b')]()[_0x90c5('0x18')](function(_0x10ae1f){if(!_0x10ae1f){throw new db[(_0x90c5('0x85'))]['ValidationError'](_0x90c5('0x86'));}_0x331411=_[_0x90c5('0x87')](_[_0x90c5('0x3b')](_0x10ae1f),[_0x90c5('0x88'),_0x90c5('0x89')]);_0x485202=_[_0x90c5('0x87')](_[_0x90c5('0x3b')](_0x10ae1f),[_0x90c5('0x88'),'updatedAt',_0x90c5('0x8a'),_0x90c5('0x8b')]);if(_0x4ebd85[_0x90c5('0x50')]['id']){delete _0x4ebd85[_0x90c5('0x50')]['id'];}if(_[_0x90c5('0x7e')](_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8c')])){throw new db['Sequelize'][(_0x90c5('0x8d'))](_0x90c5('0x8e'));}if(_[_0x90c5('0x7e')](_0x4ebd85[_0x90c5('0x50')]['body'])||_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x50')]===''){throw new db['Sequelize'][(_0x90c5('0x8d'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x90c5('0x7e')](_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8f')])){throw new db[(_0x90c5('0x85'))]['ValidationError'](_0x90c5('0x90')+_0x485202);}if(!_[_0x90c5('0x91')](_0x485202,_0x4ebd85['body']['mapKey'])){throw new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x485202);}_0x4f0978[_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8f')]]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8c')];})['then'](function(){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x4ebd85['params']['id']},'include':[{'model':db['CmList'],'as':_0x90c5('0x92'),'include':[{'model':db[_0x90c5('0x93')],'as':_0x90c5('0x94'),'where':_0x4f0978,'limit':0x1,'order':[[_0x90c5('0x89'),_0x90c5('0x95')]]}]},{'model':db['ChatApplication'],'as':_0x90c5('0x96')}]});})['then'](handleEntityNotFound(_0x235451,null))['then'](function(_0x79122e){if(_0x79122e&&_0x79122e[_0x90c5('0x92')]){_0x2e6e1d['account']=_0x79122e;_0x2e6e1d[_0x90c5('0x97')]=_0x79122e[_0x90c5('0x96')];_0x2e6e1d['list']=_0x79122e[_0x90c5('0x92')];_0x2e6e1d[_0x90c5('0x97')]=_[_0x90c5('0x98')](_0x2e6e1d['applications'],['priority'],[_0x90c5('0x99')]);if(_0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x96')]){delete _0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x96')];}if(_0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x92')]&&_0x2e6e1d[_0x90c5('0x9a')]['List'][_0x90c5('0x94')][_0x90c5('0x40')]){return _0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x92')][_0x90c5('0x94')][0x0];}var _0x11c5ea=_[_0x90c5('0x11')](_0x4ebd85[_0x90c5('0x50')],{'firstName':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8c')],'ListId':_0x79122e[_0x90c5('0x8b')]});_0x11c5ea[_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8f')]]=_0x4ebd85[_0x90c5('0x50')]['from'];return db[_0x90c5('0x93')][_0x90c5('0x4f')](_0x11c5ea,{'fields':_0x331411,'raw':!![]});}})[_0x90c5('0x18')](handleEntityNotFound(_0x235451,null))[_0x90c5('0x18')](function(_0x45dc42){_0x2e6e1d[_0x90c5('0x9b')]=_0x45dc42;var _0x17d337=_0x4ebd85[_0x90c5('0x50')]['customerIp'];if(_0x4ebd85[_0x90c5('0x82')][_0x90c5('0x9c')]){_0x17d337=_0x4ebd85[_0x90c5('0x82')][_0x90c5('0x9c')];}else if(_0x4ebd85['headers'][_0x90c5('0x9d')]){_0x17d337=_[_0x90c5('0x9e')](_0x4ebd85[_0x90c5('0x82')][_0x90c5('0x9d')][_0x90c5('0x9f')](','));}if(_0x45dc42){var _0x3eb63f={'ContactId':_0x45dc42['id'],'ChatWebsiteId':_0x4ebd85[_0x90c5('0x5a')]['id'],'from':(_0x45dc42['firstName']||'')+'\x20'+(_0x45dc42[_0x90c5('0xa0')]||''),'customerIp':_0x17d337,'customerPort':_0x4ebd85[_0x90c5('0x82')][_0x90c5('0xa1')]?_0x4ebd85[_0x90c5('0x82')][_0x90c5('0xa1')]:null,'referer':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa2')],'browserName':_0x309b7b[_0x90c5('0xa3')]['name']&&_0x309b7b['browser'][_0x90c5('0xa4')]?util[_0x90c5('0xa5')](_0x90c5('0xa6'),_0x309b7b[_0x90c5('0xa3')][_0x90c5('0x32')],_0x309b7b['browser']['version']):'unknown','browserVersion':_0x309b7b[_0x90c5('0xa3')][_0x90c5('0xa4')]||'unknown','osName':util[_0x90c5('0xa5')]('%s\x20%s',_0x309b7b['os']['name'],_0x309b7b['os'][_0x90c5('0xa4')]),'osVersion':_0x309b7b['os'][_0x90c5('0xa4')],'deviceModel':_0x309b7b[_0x90c5('0xa7')][_0x90c5('0x39')]&&_0x309b7b['device'][_0x90c5('0xa8')]?util[_0x90c5('0xa5')]('%s\x20%s\x20%s',_0x309b7b[_0x90c5('0xa7')]['model'],_0x309b7b[_0x90c5('0xa7')][_0x90c5('0xa8')],_0x309b7b[_0x90c5('0xa7')][_0x90c5('0x38')]):null,'deviceVendor':_0x309b7b['device']['vendor'],'deviceType':_0x309b7b[_0x90c5('0xa7')][_0x90c5('0x38')],'formData':JSON[_0x90c5('0x1e')](_0x4ebd85[_0x90c5('0x50')])};var _0xdf8a9f={'ChatWebsiteId':_0x4ebd85[_0x90c5('0x5a')]['id'],'closed':![]};if(_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa9')]){_0xdf8a9f[_0x90c5('0xa9')]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa9')];return db[_0x90c5('0xaa')][_0x90c5('0x59')]({'where':_0xdf8a9f})['then'](function(_0x16eb7b){if(_0x16eb7b){return[_0x16eb7b,![]];}_0x3eb63f[_0x90c5('0xa9')]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa9')];_0x3eb63f['externalUrl']=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xab')];return db[_0x90c5('0xaa')]['create'](_0x3eb63f)[_0x90c5('0x18')](function(_0x5ecef7){return[_0x5ecef7,!![]];});});}_0xdf8a9f['ContactId']=_0x45dc42['id'];if(_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xac')]&&_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xac')]['id']){_0xdf8a9f['id']=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xac')]['id'];return db[_0x90c5('0xaa')][_0x90c5('0x59')]({'where':_0xdf8a9f})[_0x90c5('0x18')](function(_0x46b7d6){if(_0x46b7d6){return[_0x46b7d6,![]];}return db[_0x90c5('0xaa')][_0x90c5('0x4f')](_0x3eb63f)[_0x90c5('0x18')](function(_0x4be7cf){return[_0x4be7cf,!![]];});});}return db[_0x90c5('0xaa')][_0x90c5('0x4f')](_0x3eb63f)[_0x90c5('0x18')](function(_0x558d5a){return[_0x558d5a,!![]];});}})[_0x90c5('0xad')](function(_0x48895e,_0x343cb4){if(_0x48895e){_0x284df9=_0x343cb4;if(!_0x343cb4){var _0x94f209={'from':(_0x2e6e1d[_0x90c5('0x9b')][_0x90c5('0xae')]||'')+'\x20'+(_0x2e6e1d[_0x90c5('0x9b')][_0x90c5('0xa0')]||'')};if(_0x4ebd85[_0x90c5('0x50')]['threadId']&&_0x4ebd85[_0x90c5('0x50')]['messageId']&&_0x4ebd85['body']['threadId']!=_0x4ebd85[_0x90c5('0x50')]['messageId']){_0x94f209[_0x90c5('0xa9')]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xaf')];}return _0x48895e[_0x90c5('0x2d')](_0x94f209);}else{return _0x48895e;}}})['then'](function(_0x158a62){_0x2e6e1d[_0x90c5('0xac')]=_0x158a62[_0x90c5('0x52')]({'plain':!![]});_0x2e6e1d[_0x90c5('0xac')][_0x90c5('0xb0')]=_0x284df9;if(_0x2e6e1d[_0x90c5('0xac')][_0x90c5('0xb0')]){if(_0x2e6e1d[_0x90c5('0x9a')]['autoclose']){_0x2e6e1d[_0x90c5('0x97')][_0x90c5('0xb1')]({'id':0x0,'priority':_0x2e6e1d[_0x90c5('0x97')][_0x90c5('0x40')]+0x1,'app':_0x90c5('0xb2'),'appdata':'unmanaged','interval':_0x90c5('0xb3')});}}return db['ChatMessage'][_0x90c5('0x4f')]({'body':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x50')],'ChatWebsiteId':_0x4ebd85[_0x90c5('0x5a')]['id'],'ChatInteractionId':_0x158a62['id'],'direction':'in','ContactId':_0x2e6e1d['contact']['id'],'AttachmentId':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xb4')]});})[_0x90c5('0x18')](function(_0x16c953){_0x2e6e1d[_0x90c5('0x20')]=_0x16c953;if(_0x2e6e1d[_0x90c5('0xac')]['UserId']){return db['User'][_0x90c5('0x59')]({'attributes':['id','name'],'where':{'id':_0x2e6e1d[_0x90c5('0xac')][_0x90c5('0xb5')]}})[_0x90c5('0x18')](function(_0x433512){if(_0x433512){_0x2e6e1d[_0x90c5('0x97')][_0x90c5('0xb6')]({'id':0x0,'priority':0x0,'app':_0x90c5('0xb7'),'appdata':_0x433512[_0x90c5('0x32')]+','+(_0x2e6e1d['account'][_0x90c5('0xb8')]||0xa),'interval':_0x90c5('0xb3')});_0x2e6e1d[_0x90c5('0xb9')]=!![];}return respondWithRpcPromise(_0x90c5('0xba'),_0x90c5('0xbb'),_0x2e6e1d);});}return respondWithRpcPromise(_0x90c5('0xba'),_0x90c5('0xbb'),_0x2e6e1d);})[_0x90c5('0x18')](function(_0x51f274){respondWithRpcPromise(_0x90c5('0xbc'),_0x90c5('0xbc'),{'event':_0x90c5('0x81'),'message':_0x51f274},client9002);return _0x51f274;})[_0x90c5('0x18')](respondWithResult(_0x235451,null))[_0x90c5('0x21')](handleError(_0x235451,null));};exports[_0x90c5('0xbd')]=function(_0x212591,_0x303b09,_0xc3458){var _0x1a8173,_0x125c9d,_0x415b8e;var _0x2e58aa=[];var _0x5458bd=[];var _0x407b43={};var _0x383d63=_0x212591['files']||[];var _0x357041=[];var _0x1941ab;return db[_0x90c5('0x93')][_0x90c5('0x5b')]()[_0x90c5('0x18')](function(_0x5a6c29){if(!_0x5a6c29){throw new db[(_0x90c5('0x85'))]['ValidationError'](_0x90c5('0x86'));}_0x5458bd=_[_0x90c5('0x87')](_[_0x90c5('0x3b')](_0x5a6c29),[_0x90c5('0x88'),_0x90c5('0x89')]);_0x2e58aa=_[_0x90c5('0x87')](_['keys'](_0x5a6c29),[_0x90c5('0x88'),'updatedAt',_0x90c5('0x8a'),_0x90c5('0x8b')]);if(_0x212591[_0x90c5('0x50')]['id']){delete _0x212591[_0x90c5('0x50')]['id'];}if(_[_0x90c5('0x7e')](_0x212591[_0x90c5('0x50')]['from'])){throw _0x303b09[_0x90c5('0x23')](0x1f4)[_0x90c5('0x33')](new db[(_0x90c5('0x85'))]['ValidationError']('from\x20is\x20mandatory'));}if(_[_0x90c5('0x7e')](_0x212591[_0x90c5('0x50')][_0x90c5('0x50')])||_0x212591[_0x90c5('0x50')][_0x90c5('0x50')]===''){throw _0x303b09['status'](0x1f4)['send'](new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))](_0x90c5('0xbe')));}if(_[_0x90c5('0x7e')](_0x212591['body']['mapKeyOffline'])){throw _0x303b09[_0x90c5('0x23')](0x1f4)[_0x90c5('0x33')](new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))](_0x90c5('0xbf')+_0x2e58aa));}if(!_[_0x90c5('0x91')](_0x2e58aa,_0x212591[_0x90c5('0x50')][_0x90c5('0xc0')])){throw _0x303b09['status'](0x1f4)[_0x90c5('0x33')](new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))](_0x90c5('0xc1')+_0x2e58aa));}_0x407b43[_0x212591[_0x90c5('0x50')][_0x90c5('0xc0')]]=_0x212591[_0x90c5('0x50')][_0x90c5('0x8c')];})[_0x90c5('0x18')](function(){return db['ChatWebsite'][_0x90c5('0x59')]({'where':{'id':_0x212591[_0x90c5('0x5a')]['id']},'include':[{'model':db[_0x90c5('0xc2')],'as':_0x90c5('0x92')},{'model':db[_0x90c5('0xc3')],'as':'MailAccount'}]});})[_0x90c5('0x18')](handleEntityNotFound(_0x303b09,null))[_0x90c5('0x18')](function(_0x3c899b){if(_0x3c899b&&_0x3c899b[_0x90c5('0x92')]){_0x125c9d=_0x3c899b;var _0x4b45d0=_[_0x90c5('0x11')](_0x212591[_0x90c5('0x50')],{'firstName':_0x212591[_0x90c5('0x50')][_0x90c5('0x8c')],'phone':_0x212591[_0x90c5('0x50')][_0x90c5('0x8c')],'ListId':_0x3c899b[_0x90c5('0x8b')]});_0x4b45d0[_0x212591[_0x90c5('0x50')][_0x90c5('0xc0')]]=_0x212591[_0x90c5('0x50')]['from'];return db[_0x90c5('0x93')][_0x90c5('0xc4')]({'where':_0x407b43,'defaults':_0x4b45d0});}})[_0x90c5('0xad')](function(_0x528821){if(_0x528821){_0x415b8e=_0x528821;var _0xd7a571=fs['readFileSync'](path['join'](config[_0x90c5('0x73')],_0x90c5('0xc5')),_0x90c5('0xc6'));var _0x2fbf2f=ejs[_0x90c5('0xc7')](_0xd7a571,{'body':_[_0x90c5('0xc8')](_0x212591[_0x90c5('0x50')][_0x90c5('0x50')]),'bodyTitle':_0x125c9d['offlineMessageBody']});return db[_0x90c5('0xc9')][_0x90c5('0x4f')]({'body':_0x2fbf2f,'ContactId':_0x528821['id'],'ChatWebsiteId':_0x125c9d['id']});}})[_0x90c5('0x18')](function(_0xbdf8d){_0x1941ab=_0xbdf8d;if(_0x383d63[_0x90c5('0x40')]){var _0x5531a4=_0x383d63[_0x90c5('0x36')](function(_0x91605d){return{'name':_0x91605d[_0x90c5('0xca')],'basename':_0x91605d[_0x90c5('0x69')],'type':_0x91605d[_0x90c5('0xcb')],'ChatOfflineMessageId':_0xbdf8d['id']};});_0x357041=_0x5531a4[_0x90c5('0x36')](_0x325bfc=>{var _0x53553d={'filename':_0x325bfc['name'],'path':path['join'](config[_0x90c5('0x73')],'server',_0x90c5('0xcc'),_0x90c5('0xcd'),_0x90c5('0xce'),_0x325bfc[_0x90c5('0xcf')])};return _0x53553d;});if(!_0x125c9d['openNewInteraction']){return db[_0x90c5('0xd0')][_0x90c5('0xd1')](function(_0x19d4a6){return db['Attachment'][_0x90c5('0xd2')](_0x5531a4,{'transaction':_0x19d4a6});});}}})[_0x90c5('0x18')](function(){if(_0x1941ab){_0x1a8173=_0x1941ab;return db[_0x90c5('0xc3')][_0x90c5('0x5c')]({'where':{'active':!![]},'include':[{'model':db[_0x90c5('0xd3')],'as':_0x90c5('0xd4'),'raw':!![]}]});}})['then'](function(_0x1713b3){if(_0x1713b3&&_0x1713b3[_0x90c5('0xd4')]&&_0x125c9d['forwardOffline']&&_0x125c9d[_0x90c5('0xd5')]){var _0xdf29b4={'tls':{'rejectUnauthorized':![]}};if(_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xd6')]){_0xdf29b4['service']=_0x1713b3['Smtp'][_0x90c5('0xd6')];}else{_0xdf29b4[_0x90c5('0xd7')]=_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xd7')];_0xdf29b4[_0x90c5('0xd8')]=_0x1713b3[_0x90c5('0xd4')]['port'];_0xdf29b4[_0x90c5('0xd9')]=_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xd9')];}if(_0x1713b3['Smtp'][_0x90c5('0xda')]){_0xdf29b4[_0x90c5('0xdb')]={'user':_0x1713b3['Smtp'][_0x90c5('0x51')],'pass':_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xdc')]};}return respondWithRpcPromise(_0x90c5('0xdd'),'sendMail',{'account':_0xdf29b4,'message':{'from':util['format'](_0x90c5('0xde'),_0x1713b3[_0x90c5('0x32')],_0x1713b3[_0x90c5('0xdf')]||_0x1713b3[_0x90c5('0xd4')][_0x90c5('0x51')]),'to':_0x125c9d[_0x90c5('0xd5')],'subject':_0x125c9d[_0x90c5('0xe0')],'html':_0x1a8173[_0x90c5('0x50')],'attachments':_0x357041}},client9003)[_0x90c5('0x18')](function(){return _0x1a8173;})[_0x90c5('0x21')](function(_0x4f6d68){console[_0x90c5('0x1f')](_0x4f6d68);});}})[_0x90c5('0x18')](function(){if(_0x125c9d&&_0x125c9d['openNewInteraction']&&_0x125c9d[_0x90c5('0xe1')]){var _0x58c395=[];if(_0x383d63[_0x90c5('0x40')]){_0x58c395=_0x383d63[_0x90c5('0x36')](function(_0x1aa15c){return{'name':_0x1aa15c[_0x90c5('0xca')],'basename':_0x1aa15c[_0x90c5('0x69')],'type':_0x1aa15c[_0x90c5('0xcb')],'ChatOfflineMessageId':_0x1941ab['id']};});}var _0xbe8667;if(!_['isNil'](_0x125c9d[_0x90c5('0xe2')])){var _0x3c74b2=_[_0x90c5('0x36')](_0x212591[_0x90c5('0x50')],function(_0x337182){return _0x337182;});var _0xb0e416=_['toPairsIn'](_0x3c74b2)[0x0];var _0x6091e3=_[_0x90c5('0xe3')](_0xb0e416,function(_0x358f9f){return _0x358f9f;});_0xbe8667=_0x6091e3[0x1][_0x125c9d[_0x90c5('0xe2')]];}var _0x2aa4b0={'from':_0x415b8e[_0x90c5('0xdf')],'firstName':_0x415b8e['firstName'],'lastName':_0x415b8e[_0x90c5('0xa0')],'mapKey':_0x90c5('0xdf'),'message':{'from':_0x415b8e[_0x90c5('0xdf')],'to':_0x125c9d[_0x90c5('0xc3')]['email'],'cc':'','subject':_[_0x90c5('0x7e')](_0xbe8667)?_0x125c9d['offlineMessageSubject']:_0xbe8667,'messageId':'','sentAt':new Date(),'attach':_0x58c395[_0x90c5('0x40')],'attachments':_0x58c395,'originChannel':_0x90c5('0xe4'),'ChatWebsiteId':_0x125c9d['id'],'ChatOfflineMessageId':_0x1a8173['id'],'originTo':_0x125c9d[_0x90c5('0xc3')][_0x90c5('0xdf')]},'body':_0x1a8173['body']};var _0x37e578={'account':{'id':_0x125c9d['MailAccountId']},'body':_0x2aa4b0,'log':_0x90c5('0xe5')};return respondWithRpcPromise('NotifyMailAccount',_0x90c5('0xe6'),_0x37e578,client9001)[_0x90c5('0x18')](function(){return _0x1a8173;})[_0x90c5('0x21')](function(_0x62ff0f){console['error'](_0x62ff0f);});}return;})[_0x90c5('0x18')](function(){if(_0x1a8173){return _0x1a8173;}})['then'](respondWithResult(_0x303b09,null))[_0x90c5('0x21')](function(_0x3a7773){console[_0x90c5('0x1f')](_0x90c5('0x21'),_0x3a7773);for(var _0x33e193 of _0x383d63){var _0x42ad81=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],_0x90c5('0xe7'),'files',_0x90c5('0xcd'),'offline-chat',_0x33e193[_0x90c5('0x69')]);fs_extra[_0x90c5('0xe8')](_0x42ad81)['catch'](function(_0x1245b3){console[_0x90c5('0x1f')]('Could\x20not\x20remove\x20attachment\x20file',_0x42ad81,_0x1245b3);});}});};exports[_0x90c5('0xe9')]=function(_0x1f31e0,_0x1010f2,_0x15513b){return db['ChatInteraction'][_0x90c5('0x59')]({'where':{'id':_0x1f31e0[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1010f2,null))['then'](function(_0x90832a){if(_0x90832a){return _0x90832a[_0x90c5('0xe9')](_0x1f31e0[_0x90c5('0x50')][_0x90c5('0x61')],_[_0x90c5('0xea')](_0x1f31e0[_0x90c5('0x50')],['ids','id'])||{});}})[_0x90c5('0x18')](respondWithResult(_0x1010f2,null))['catch'](handleError(_0x1010f2,null));};exports['getInteractions']=function(_0x1c26d8,_0xa36c2f,_0x383965){var _0x283a1d={'raw':![],'where':{}};var _0x44817a={};var _0x5305f9={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')]['findOne']({'where':{'id':_0x1c26d8[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0xa36c2f,null))['then'](function(_0x34d641){if(_0x34d641){_0x44817a['model']=_[_0x90c5('0x3b')](db[_0x90c5('0xaa')][_0x90c5('0x37')]);_0x44817a[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x1c26d8[_0x90c5('0x3a')]);_0x44817a[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x44817a[_0x90c5('0x39')],_0x44817a[_0x90c5('0x3a')]);_0x283a1d[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x44817a['model'],qs[_0x90c5('0x3f')](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x3f')]));_0x283a1d['attributes']=_0x283a1d[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x283a1d[_0x90c5('0x3e')]:_0x44817a[_0x90c5('0x39')];if(!_0x1c26d8[_0x90c5('0x3a')]['hasOwnProperty'](_0x90c5('0x42'))){_0x283a1d[_0x90c5('0x28')]=qs['limit'](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x283a1d[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x26')]);}_0x283a1d[_0x90c5('0x43')]=qs['sort'](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x283a1d[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x1c26d8['query'],_0x44817a['filters']));_0x283a1d['where'][_0x90c5('0x5e')]=_0x34d641['id'];if(_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x283a1d[_0x90c5('0x45')]=_['merge'](_0x283a1d[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x283a1d[_0x90c5('0x3e')],function(_0x202049){var _0x11db65={};_0x11db65[_0x202049]={'$like':'%'+_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x47')]+'%'};return _0x11db65;})});}_0x283a1d=_[_0x90c5('0x48')]({},_0x283a1d,_0x1c26d8[_0x90c5('0x49')]);return db[_0x90c5('0xaa')]['count']({'where':_0x283a1d[_0x90c5('0x45')]})['then'](function(_0x2b063f){_0x5305f9['count']=_0x2b063f;if(_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x283a1d[_0x90c5('0x4c')]=[{'model':db[_0x90c5('0x93')],'as':_0x90c5('0xeb'),'required':![]},{'model':db[_0x90c5('0xec')],'as':_0x90c5('0xed'),'attributes':[_0x90c5('0x32'),_0x90c5('0xee'),_0x90c5('0xef')],'required':![]},{'model':db[_0x90c5('0xf0')],'as':_0x90c5('0xf1'),'attributes':['id',_0x90c5('0x32'),_0x90c5('0xf2')],'where':_0x1c26d8[_0x90c5('0x3a')]['tag']?{'id':_0x1c26d8[_0x90c5('0x3a')]['tag']}:undefined,'required':_0x1c26d8['query'][_0x90c5('0xf3')]?!![]:![]}];}return db[_0x90c5('0xaa')][_0x90c5('0x5f')](_0x283a1d);})[_0x90c5('0x18')](function(_0x434321){_0x5305f9[_0x90c5('0x4d')]=_0x434321;return _0x5305f9;});}})[_0x90c5('0x18')](respondWithFilteredResult(_0xa36c2f,_0x283a1d))[_0x90c5('0x21')](handleError(_0xa36c2f,null));};function iftimePromise(_0x935bd0,_0x4d5549){return respondWithRpcPromise('Command',_0x90c5('0xf4'),{'command':_0x4d5549[_0x90c5('0xf5')]?util[_0x90c5('0xa5')]('iftime\x20%s,%s',_0x935bd0['interval'],_0x4d5549[_0x90c5('0xf5')]):util[_0x90c5('0xa5')]('iftime\x20%s',_0x935bd0['interval'])},client9002)[_0x90c5('0x18')](function(_0x375c7f){var _0x1d8562=_0x375c7f&&_0x375c7f[_0x90c5('0xf6')]('true')>=0x0?!![]:![];logger[_0x90c5('0x19')](_0x90c5('0xf7'),_0x4d5549['id'],_0x935bd0['id'],_0x935bd0[_0x90c5('0xf8')],_0x1d8562?'ONLINE':_0x90c5('0xf9'),_0x4d5549[_0x90c5('0xf5')]?_0x4d5549['timezone']:'No\x20timezone');return _0x1d8562;})[_0x90c5('0x21')](function(_0x1dcb75){logger[_0x90c5('0x1f')](_0x90c5('0xf7'),_0x4d5549['id'],_0x935bd0['id'],_0x935bd0[_0x90c5('0xf8')],util[_0x90c5('0xfa')](_0x1dcb75,{'showHidden':![],'depth':null}),_0x4d5549['timezone']?_0x4d5549[_0x90c5('0xf5')]:_0x90c5('0xfb'));return![];});}exports['getSnippet']=function(_0x2c2fdb,_0x308b5d,_0x147659){var _0x2d95ec=0x0;var _0x2ca554=0x0;var _0x48511f=![];var _0x535a3c;var _0x149156;return db['ChatWebsite'][_0x90c5('0x59')]({'where':{'id':_0x2c2fdb['params']['id']},'include':[{'model':db[_0x90c5('0xfc')],'as':'Interval','include':[{'model':db[_0x90c5('0xfc')],'as':_0x90c5('0xfd'),'attributes':['id',_0x90c5('0xf8')],'raw':!![]}]}]})[_0x90c5('0x18')](handleEntityNotFound(_0x308b5d,null))[_0x90c5('0x18')](function(_0x271104){if(_0x271104){_0x535a3c=_0x271104;return _0x271104[_0x90c5('0xfe')]({'raw':!![]});}})[_0x90c5('0x18')](function(_0x52ff2e){if(_0x535a3c){if(_0x52ff2e){_0x149156=_0x52ff2e;}}return require(_0x90c5('0x71'))[_0x90c5('0x72')]();})[_0x90c5('0x18')](function(_0x2463a0){if(_0x2463a0){_0x2ca554=_0x2463a0[_0x90c5('0xff')];_0x48511f=_0x2463a0[_0x90c5('0x100')];}})['then'](function(){return db['ChatInteraction'][_0x90c5('0x29')]({'where':{'closed':![]}});})[_0x90c5('0x18')](function(_0x31e6f7){_0x2d95ec=_0x31e6f7;if(_0x2ca554&&_0x31e6f7>_0x2ca554){return db['License'][_0x90c5('0x5c')]({'where':{'id':0x1}})[_0x90c5('0x18')](function(_0x3c336c){if(_0x3c336c){_0x3c336c[_0x90c5('0x101')](_0x90c5('0x102'));}});}})[_0x90c5('0x18')](function(){if(_0x535a3c[_0x90c5('0xfc')]&&_0x535a3c[_0x90c5('0xfc')][_0x90c5('0xfd')]){var _0x3dd98a=[];for(var _0x1e74fb=0x0;_0x1e74fb<_0x535a3c[_0x90c5('0xfc')][_0x90c5('0xfd')]['length'];_0x1e74fb++){var _0x4a3527=_0x535a3c[_0x90c5('0xfc')][_0x90c5('0xfd')][_0x1e74fb][_0x90c5('0x52')]({'plain':!![]});_0x3dd98a[_0x90c5('0xb1')](iftimePromise(_0x4a3527,_0x535a3c));}return BPromise[_0x90c5('0x103')](_0x3dd98a)['then'](function(_0x451895){return _[_0x90c5('0x104')](_0x451895);});}else{return!![];}})['then'](function(_0x5f2365){var _0x2b185c=fs[_0x90c5('0x105')](path[_0x90c5('0x6f')](config[_0x90c5('0x73')],'server/files/chat/iframe.ejs'),_0x90c5('0xc6'));var _0x550ed7={'remote':_0x535a3c[_0x90c5('0x106')],'query':querystring[_0x90c5('0x1e')](_[_0x90c5('0x48')](_0x535a3c[_0x90c5('0x52')]({'plain':!![]}),{'customerIp':_0x2c2fdb[_0x90c5('0x82')][_0x90c5('0x9d')]||_0x2c2fdb['headers']['x-real-ip']||_0x2c2fdb[_0x90c5('0x107')][_0x90c5('0x108')]||_0x2c2fdb['ip'],'referer':_0x2c2fdb[_0x90c5('0x82')]['referer'],'openedInteractions':_0x2d95ec,'maxInteractions':_0x2ca554,'virtual':_0x48511f[_0x90c5('0xff')],'online':_0x5f2365,'custom':_0x48511f}))['replace'](/'/g,'\x5c\x27')};_0x308b5d['send'](ejs[_0x90c5('0xc7')](Mustache[_0x90c5('0xc7')](_0x2b185c,_0x550ed7),{'proactiveActions':_0x149156,'alignment':_0x535a3c[_0x90c5('0x109')],'verticalAlignment':_0x535a3c['verticalAlignment'],'div_color':_0x535a3c[_0x90c5('0xf2')],'text_color':_0x535a3c['textColor'],'button_color':_0x535a3c[_0x90c5('0x10a')],'background_color':_0x535a3c['backgroundColor']}));})[_0x90c5('0x21')](handleError(_0x308b5d,null));};exports['addApplications']=function(_0x59dd7d,_0x95f5ed,_0xfd8e1d){return db['ChatWebsite'][_0x90c5('0x5c')]({'where':{'id':_0x59dd7d[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x95f5ed,null))['then'](function(_0x2ab3ca){if(_0x2ab3ca){return db[_0x90c5('0xd0')][_0x90c5('0xd1')](function(_0x7ef7){return db[_0x90c5('0x10b')][_0x90c5('0x2e')]({'where':{'ChatWebsiteId':_0x59dd7d[_0x90c5('0x5a')]['id']},'transaction':_0x7ef7})[_0x90c5('0x18')](function(_0x92f583){var _0x2e6d38=_[_0x90c5('0x36')](_0x59dd7d[_0x90c5('0x50')],function(_0xfde59b){_0xfde59b[_0x90c5('0x5e')]=_0x59dd7d[_0x90c5('0x5a')]['id'];return _0xfde59b;});return db['ChatApplication'][_0x90c5('0xd2')](_0x2e6d38,{'transaction':_0x7ef7});});})[_0x90c5('0x18')](function(){return db[_0x90c5('0x10b')][_0x90c5('0x10c')]({'where':{'ChatWebsiteId':_0x59dd7d[_0x90c5('0x5a')]['id']},'order':'priority'});});}})[_0x90c5('0x18')](respondWithResult(_0x95f5ed,null))['catch'](handleError(_0x95f5ed,null));};exports[_0x90c5('0x10d')]=function(_0x3795b9,_0x373df7,_0x3d7eb8){var _0x1d44e0={};var _0x5c8a56={};var _0x1f65b7;var _0x2a8e1d;return db[_0x90c5('0x4a')]['findOne']({'where':{'id':_0x3795b9['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x373df7,null))[_0x90c5('0x18')](function(_0x605a70){if(_0x605a70){_0x1f65b7=_0x605a70;_0x5c8a56['model']=_['keys'](db['ChatApplication']['rawAttributes']);_0x5c8a56[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x3795b9[_0x90c5('0x3a')]);_0x5c8a56[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x5c8a56[_0x90c5('0x39')],_0x5c8a56[_0x90c5('0x3a')]);_0x1d44e0['attributes']=_[_0x90c5('0x3d')](_0x5c8a56[_0x90c5('0x39')],qs['fields'](_0x3795b9['query'][_0x90c5('0x3f')]));_0x1d44e0[_0x90c5('0x3e')]=_0x1d44e0[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x1d44e0[_0x90c5('0x3e')]:_0x5c8a56[_0x90c5('0x39')];_0x1d44e0['order']=qs['sort'](_0x3795b9['query'][_0x90c5('0x44')]);_0x1d44e0['where']=qs[_0x90c5('0x3c')](_['pick'](_0x3795b9[_0x90c5('0x3a')],_0x5c8a56[_0x90c5('0x3c')]));if(_0x3795b9[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x1d44e0[_0x90c5('0x45')]=_['merge'](_0x1d44e0[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x1d44e0[_0x90c5('0x3e')],function(_0x24f8fc){var _0xf143fd={};_0xf143fd[_0x24f8fc]={'$like':'%'+_0x3795b9[_0x90c5('0x3a')]['filter']+'%'};return _0xf143fd;})});}_0x1d44e0=_[_0x90c5('0x48')]({},_0x1d44e0,_0x3795b9['options']);return _0x1f65b7[_0x90c5('0x10d')](_0x1d44e0);}})[_0x90c5('0x18')](function(_0x49fdc8){if(_0x49fdc8){_0x2a8e1d=_0x49fdc8[_0x90c5('0x40')];if(!_0x3795b9[_0x90c5('0x3a')]['hasOwnProperty'](_0x90c5('0x42'))){_0x1d44e0['limit']=qs['limit'](_0x3795b9[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x1d44e0[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x3795b9[_0x90c5('0x3a')][_0x90c5('0x26')]);}return _0x1f65b7[_0x90c5('0x10d')](_0x1d44e0);}})[_0x90c5('0x18')](function(_0x59a1ab){if(_0x59a1ab){return _0x59a1ab?{'count':_0x2a8e1d,'rows':_0x59a1ab}:null;}})[_0x90c5('0x18')](respondWithResult(_0x373df7,null))[_0x90c5('0x21')](handleError(_0x373df7,null));};exports['addProactiveActions']=function(_0x1510c2,_0x2808f3,_0x48c87e){return db['chatProactiveAction'][_0x90c5('0x59')]({'where':{'id':_0x1510c2[_0x90c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x2808f3,null))[_0x90c5('0x18')](function(_0x172fe1){if(_0x172fe1){return _0x172fe1[_0x90c5('0x10e')](_0x1510c2[_0x90c5('0x50')][_0x90c5('0x61')],_[_0x90c5('0xea')](_0x1510c2[_0x90c5('0x50')],[_0x90c5('0x61'),'id'])||{});}})[_0x90c5('0x18')](respondWithResult(_0x2808f3,null))['catch'](handleError(_0x2808f3,null));};exports[_0x90c5('0xfe')]=function(_0x2ccb4b,_0x1a31be,_0x2cd904){var _0x4f186c={};var _0x4cee44={};var _0x54f3c0;var _0x48d28c;return db['ChatWebsite'][_0x90c5('0x5c')]({'where':{'id':_0x2ccb4b[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1a31be,null))[_0x90c5('0x18')](function(_0x2fa530){if(_0x2fa530){_0x54f3c0=_0x2fa530;_0x4cee44[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db[_0x90c5('0x10f')][_0x90c5('0x37')]);_0x4cee44[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x2ccb4b[_0x90c5('0x3a')]);_0x4cee44[_0x90c5('0x3c')]=_['intersection'](_0x4cee44[_0x90c5('0x39')],_0x4cee44[_0x90c5('0x3a')]);_0x4f186c[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x4cee44[_0x90c5('0x39')],qs[_0x90c5('0x3f')](_0x2ccb4b[_0x90c5('0x3a')]['fields']));_0x4f186c[_0x90c5('0x3e')]=_0x4f186c[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x4f186c[_0x90c5('0x3e')]:_0x4cee44[_0x90c5('0x39')];_0x4f186c[_0x90c5('0x43')]=qs['sort'](_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x4f186c['where']=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x2ccb4b[_0x90c5('0x3a')],_0x4cee44[_0x90c5('0x3c')]));if(_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x4f186c[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x4f186c[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x4f186c['attributes'],function(_0x54441b){var _0x5242d5={};_0x5242d5[_0x54441b]={'$like':'%'+_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x47')]+'%'};return _0x5242d5;})});}_0x4f186c=_[_0x90c5('0x48')]({},_0x4f186c,_0x2ccb4b[_0x90c5('0x49')]);return _0x54f3c0[_0x90c5('0xfe')](_0x4f186c);}})[_0x90c5('0x18')](function(_0x3a139e){if(_0x3a139e){_0x48d28c=_0x3a139e[_0x90c5('0x40')];if(!_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x4f186c[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x4f186c[_0x90c5('0x26')]=qs['offset'](_0x2ccb4b[_0x90c5('0x3a')]['offset']);}return _0x54f3c0[_0x90c5('0xfe')](_0x4f186c);}})[_0x90c5('0x18')](function(_0x233eb5){if(_0x233eb5){return _0x233eb5?{'count':_0x48d28c,'rows':_0x233eb5}:null;}})[_0x90c5('0x18')](respondWithResult(_0x1a31be,null))[_0x90c5('0x21')](handleError(_0x1a31be,null));};exports['getFields']=function(_0x1bbcaa,_0x369508,_0x540c74){var _0x53b13=_0x1bbcaa[_0x90c5('0x3a')]['online']===_0x90c5('0x110')?_0x90c5('0x111'):_0x90c5('0x112');return db['ChatWebsite'][_0x90c5('0x59')]({'attributes':['id',_0x53b13],'where':{'id':_0x1bbcaa['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x369508,null))[_0x90c5('0x18')](function(_0x52128b){if(_0x52128b){var _0x4a0f6a=_0x52128b[_0x53b13];var _0x8310c1=_0x4a0f6a&&_0x4a0f6a[_0x90c5('0x113')]?_0x4a0f6a[_0x90c5('0x113')]:[];_0x369508[_0x90c5('0x33')]({'fromKey':_['isNil'](_0x4a0f6a[_0x90c5('0x114')])?undefined:_0x4a0f6a[_0x90c5('0x114')],'count':_0x8310c1[_0x90c5('0x40')],'rows':_0x8310c1});}})[_0x90c5('0x21')](handleError(_0x369508,null));};exports[_0x90c5('0x115')]=function(_0x15537b,_0x4dd6d7,_0x28fb08){var _0x351d94={'raw':![],'where':{}};var _0x1d3a63={};var _0x238ffa={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x15537b[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x4dd6d7,null))[_0x90c5('0x18')](function(_0x43290c){if(_0x43290c){_0x1d3a63[_0x90c5('0x39')]=_['keys'](db[_0x90c5('0xc9')]['rawAttributes']);_0x1d3a63['query']=_[_0x90c5('0x3b')](_0x15537b[_0x90c5('0x3a')]);_0x1d3a63['filters']=_[_0x90c5('0x3d')](_0x1d3a63[_0x90c5('0x39')],_0x1d3a63['query']);_0x351d94[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x1d3a63['model'],qs[_0x90c5('0x3f')](_0x15537b[_0x90c5('0x3a')][_0x90c5('0x3f')]));_0x351d94[_0x90c5('0x3e')]=_0x351d94[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x351d94[_0x90c5('0x3e')]:_0x1d3a63['model'];if(!_0x15537b[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x351d94[_0x90c5('0x28')]=qs['limit'](_0x15537b['query']['limit']);_0x351d94[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x15537b[_0x90c5('0x3a')][_0x90c5('0x26')]);}_0x351d94[_0x90c5('0x43')]=qs['sort'](_0x15537b[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x351d94[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x15537b[_0x90c5('0x3a')],_0x1d3a63[_0x90c5('0x3c')]));_0x351d94[_0x90c5('0x45')][_0x90c5('0x5e')]=_0x43290c['id'];if(_0x15537b['query']['filter']){_0x351d94[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x351d94[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x351d94[_0x90c5('0x3e')],function(_0x386a3b){var _0x12e58f={};_0x12e58f[_0x386a3b]={'$like':'%'+_0x15537b['query']['filter']+'%'};return _0x12e58f;})});}_0x351d94=_[_0x90c5('0x48')]({},_0x351d94,_0x15537b[_0x90c5('0x49')]);return db[_0x90c5('0xc9')]['count']({'where':_0x351d94[_0x90c5('0x45')]})[_0x90c5('0x18')](function(_0x119088){_0x238ffa[_0x90c5('0x29')]=_0x119088;if(_0x15537b[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x351d94[_0x90c5('0x4c')]=[{'all':!![]}];}else{_0x351d94['include']=[{'model':db[_0x90c5('0x93')],'as':_0x90c5('0xeb'),'required':![]},{'model':db[_0x90c5('0x116')],'as':_0x90c5('0x117'),'required':![]}];}return db['ChatOfflineMessage'][_0x90c5('0x5f')](_0x351d94);})[_0x90c5('0x18')](function(_0x92f30){_0x238ffa[_0x90c5('0x4d')]=_0x92f30;return _0x238ffa;});}})['then'](respondWithFilteredResult(_0x4dd6d7,_0x351d94))[_0x90c5('0x21')](handleError(_0x4dd6d7,null));};exports[_0x90c5('0x118')]=function(_0x3dd5d8,_0x348b76,_0x44c321){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x3dd5d8['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x348b76,null))[_0x90c5('0x18')](function(_0xbf224c){if(_0xbf224c){return _0xbf224c['addAgents'](_0x3dd5d8[_0x90c5('0x50')][_0x90c5('0x61')],_[_0x90c5('0xea')](_0x3dd5d8[_0x90c5('0x50')],['ids','id'])||{})[_0x90c5('0xad')](function(_0x3005ef){for(var _0x3d664f=0x0;_0x3d664f<_0x3dd5d8[_0x90c5('0x50')][_0x90c5('0x61')][_0x90c5('0x40')];_0x3d664f+=0x1){socket[_0x90c5('0x119')](_0x90c5('0x11a'),{'UserId':Number(_0x3dd5d8[_0x90c5('0x50')][_0x90c5('0x61')][_0x3d664f]),'ChatWebsiteId':Number(_0x3dd5d8[_0x90c5('0x5a')]['id'])});}return _0x3005ef;});}})[_0x90c5('0x18')](respondWithResult(_0x348b76,null))['catch'](handleError(_0x348b76,null));};exports[_0x90c5('0x11b')]=function(_0xf7f4b5,_0x47d0ff,_0x4d2d99){return db[_0x90c5('0x4a')]['find']({'where':{'id':_0xf7f4b5[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x47d0ff,null))[_0x90c5('0x18')](function(_0x1188ee){if(_0x1188ee){return _0x1188ee[_0x90c5('0x11b')](_0xf7f4b5[_0x90c5('0x3a')]['ids'])[_0x90c5('0x18')](function(){if(_[_0x90c5('0x11c')](_0xf7f4b5[_0x90c5('0x3a')]['ids'])){for(var _0x452051=0x0;_0x452051<_0xf7f4b5[_0x90c5('0x3a')][_0x90c5('0x61')]['length'];_0x452051+=0x1){socket[_0x90c5('0x119')](_0x90c5('0x11d'),{'UserId':Number(_0xf7f4b5[_0x90c5('0x3a')]['ids'][_0x452051]),'ChatWebsiteId':Number(_0xf7f4b5[_0x90c5('0x5a')]['id'])});}}else{socket[_0x90c5('0x119')](_0x90c5('0x11d'),{'UserId':Number(_0xf7f4b5[_0x90c5('0x3a')][_0x90c5('0x61')]),'ChatWebsiteId':Number(_0xf7f4b5[_0x90c5('0x5a')]['id'])});}});}})[_0x90c5('0x18')](respondWithStatusCode(_0x47d0ff,null))[_0x90c5('0x21')](handleError(_0x47d0ff,null));};exports[_0x90c5('0x11e')]=function(_0x307785,_0x1bcf87,_0x2f24aa){var _0x444d6a={};var _0x4405d3={};var _0x18262e;var _0x40b54f;return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x307785[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1bcf87,null))['then'](function(_0x36effb){if(_0x36effb){_0x18262e=_0x36effb;_0x4405d3[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db[_0x90c5('0xec')][_0x90c5('0x37')]);_0x4405d3['query']=_['keys'](_0x307785[_0x90c5('0x3a')]);_0x4405d3[_0x90c5('0x3c')]=_['intersection'](_0x4405d3[_0x90c5('0x39')],_0x4405d3[_0x90c5('0x3a')]);_0x444d6a[_0x90c5('0x3e')]=_['intersection'](_0x4405d3['model'],qs[_0x90c5('0x3f')](_0x307785['query']['fields']));_0x444d6a['attributes']=_0x444d6a[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x444d6a[_0x90c5('0x3e')]:_0x4405d3[_0x90c5('0x39')];_0x444d6a[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x307785['query']['sort']);_0x444d6a['where']=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x307785[_0x90c5('0x3a')],_0x4405d3[_0x90c5('0x3c')]));if(_0x307785[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x444d6a[_0x90c5('0x45')]=_['merge'](_0x444d6a[_0x90c5('0x45')],{'$or':_['map'](_0x444d6a['attributes'],function(_0x1fc828){var _0x51d0b7={};_0x51d0b7[_0x1fc828]={'$like':'%'+_0x307785['query'][_0x90c5('0x47')]+'%'};return _0x51d0b7;})});}_0x444d6a=_[_0x90c5('0x48')]({},_0x444d6a,_0x307785['options']);return _0x18262e[_0x90c5('0x11e')](_0x444d6a);}})[_0x90c5('0x18')](function(_0x80ec67){if(_0x80ec67){_0x40b54f=_0x80ec67[_0x90c5('0x40')];if(!_0x307785[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x444d6a[_0x90c5('0x28')]=qs['limit'](_0x307785['query'][_0x90c5('0x28')]);_0x444d6a[_0x90c5('0x26')]=qs['offset'](_0x307785[_0x90c5('0x3a')][_0x90c5('0x26')]);}return _0x18262e[_0x90c5('0x11e')](_0x444d6a);}})[_0x90c5('0x18')](function(_0xf413b){if(_0xf413b){return _0xf413b?{'count':_0x40b54f,'rows':_0xf413b}:null;}})[_0x90c5('0x18')](respondWithResult(_0x1bcf87,null))['catch'](handleError(_0x1bcf87,null));};
\ No newline at end of file
+var _0x8e08=['VIRTUAL','include','findAll','rows','params','includeAll','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','ChatWebsiteId','getDispositions','findOne','Disposition','removeDispositions','ids','addAnswer','CannedAnswer','removeAnswers','filename','addAvatar','agentAvatar','file','addCustomerAvatar','customerAvatar','addSystemAvatar','systemAvatar','getLogo','join','root','server/files/images/logos/default_logo.svg','getLicense','custom','sitepic','existsSync','server/files/images/logos/','getAvatar','server/files/images/avatars/default_avatar.png','isNil','server/files/images/avatars/','download','getCustomerAvatar','showCustomerAvatar','server/files/images/avatars/system_avatar.png','notify','user-agent-parser','setUA','headers','user-agent','getResult','chat','Sequelize','difference','createdAt','updatedAt','from','from\x20is\x20mandatory','mapKey','ValidationError','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','List','CmContact','Contacts','DESC','ChatApplication','account','applications','list','priority','asc','contact','cf-connecting-ip','x-forwarded-for','first','firstName','lastName','x-real-port','referer','browser','%s\x20%s','version','unknown','device','vendor','format','threadId','ChatInteraction','externalUrl','interaction','spread','messageId','update','created','autoclose','push','unmanaged','*,*,*,*','AttachmentId','UserId','User','agent','forcedOwnership','Start','startRouting','EventManager','offline','files','no\x20available\x20attributes','CompanyId','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKeyOffline','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','MailAccount','findOrCreate','readFileSync','server/files/templates/chatOfflineMessage.ejs','utf8','render','toPairs','offlineMessageBody','originalname','mimetype','server','offline-chat','basename','sequelize','transaction','Attachment','MailServerOut','Smtp','forwardOfflineAddress','service','host','auth','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','email','offlineMessageSubject','openNewInteraction','MailAccountId','subjectOffline','toPairsIn','mapValues','Chat','NotifyMailAccount','notifyMail','attachments','remove','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','getInteractions','Owner','internal','Tag','Tags','tag','Command','getSnippet','timezone','iftime\x20%s,%s','iftime\x20%s','interval','indexOf','true','ONLINE','OFFLINE','No\x20timezone','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','inspect','Interval','Intervals','virtual','License','increment','all','server/files/chat/iframe.ejs','remote','replace','alignment','verticalAlignment','color','color_button','addApplications','bulkCreate','getApplications','addProactiveActions','chatProactiveAction','getProactiveActions','ChatProactiveAction','getFields','online','offlineForm','onlineForm','items','fromKey','getOfflineMessages','ChatOfflineMessage','Contact','Attachments','emit','removeAgents','userChatWebsite:remove','getAgents','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','defaults','redis','./chatWebsite.socket','register','client','http','request','then','info','ChatWebsite,\x20%s,\x20%s','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','sendStatus','status','end','json','offset','limit','undefined','count','set','save','get','ChatWebsites','UserProfileResource','destroy','stack','name','send','index','Pause','mandatoryDispositionPause','map','ChatWebsite','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge'];(function(_0xeefb2a,_0x516fb0){var _0x216b71=function(_0x2e5e0d){while(--_0x2e5e0d){_0xeefb2a['push'](_0xeefb2a['shift']());}};_0x216b71(++_0x516fb0);}(_0x8e08,0xda));var _0x88e0=function(_0x2f7ae2,_0x1bfe9c){_0x2f7ae2=_0x2f7ae2-0x0;var _0x5ea176=_0x8e08[_0x2f7ae2];return _0x5ea176;};'use strict';var emlformat=require(_0x88e0('0x0'));var rimraf=require(_0x88e0('0x1'));var zipdir=require(_0x88e0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x88e0('0x3'));var BPromise=require(_0x88e0('0x4'));var Mustache=require(_0x88e0('0x5'));var util=require('util');var path=require(_0x88e0('0x6'));var sox=require(_0x88e0('0x7'));var csv=require(_0x88e0('0x8'));var ejs=require(_0x88e0('0x9'));var fs=require('fs');var fs_extra=require(_0x88e0('0xa'));var _=require(_0x88e0('0xb'));var squel=require(_0x88e0('0xc'));var crypto=require(_0x88e0('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x88e0('0x8'));var querystring=require('querystring');var Papa=require(_0x88e0('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x88e0('0xf'));var as=require(_0x88e0('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x88e0('0x11'))(_0x88e0('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x88e0('0x13'));var db=require(_0x88e0('0x14'))['db'];config['redis']=_[_0x88e0('0x15')](config[_0x88e0('0x16')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x88e0('0x16')]));require(_0x88e0('0x17'))[_0x88e0('0x18')](socket);var jayson=require('jayson/promise');var client=jayson[_0x88e0('0x19')][_0x88e0('0x1a')]({'port':0x232c});var client9002=jayson[_0x88e0('0x19')][_0x88e0('0x1a')]({'port':0x232a});var client9003=jayson[_0x88e0('0x19')][_0x88e0('0x1a')]({'port':0x232b});var client9001=jayson[_0x88e0('0x19')]['http']({'port':0x2329});function respondWithRpcPromise(_0x28d7fe,_0x2a7926,_0x361199,_0x37e1af){return new BPromise(function(_0x240e25,_0x5ce781){var _0x357204=_0x37e1af||client;return _0x357204[_0x88e0('0x1b')](_0x28d7fe,_0x361199)[_0x88e0('0x1c')](function(_0x425428){logger[_0x88e0('0x1d')](_0x88e0('0x1e'),_0x2a7926,'request\x20sent');logger[_0x88e0('0x1f')](_0x88e0('0x20'),_0x2a7926,_0x88e0('0x21'),JSON[_0x88e0('0x22')](_0x425428));if(_0x425428[_0x88e0('0x23')]){if(_0x425428[_0x88e0('0x23')][_0x88e0('0x24')]===0x1f4){logger[_0x88e0('0x23')]('ChatWebsite,\x20%s,\x20%s',_0x2a7926,_0x425428[_0x88e0('0x23')][_0x88e0('0x25')]);return _0x5ce781(_0x425428[_0x88e0('0x23')][_0x88e0('0x25')]);}logger[_0x88e0('0x23')](_0x88e0('0x1e'),_0x2a7926,_0x425428['error'][_0x88e0('0x25')]);return _0x240e25(_0x425428[_0x88e0('0x23')][_0x88e0('0x25')]);}else{logger[_0x88e0('0x1d')](_0x88e0('0x1e'),_0x2a7926,_0x88e0('0x21'));_0x240e25(_0x425428['result'][_0x88e0('0x25')]);}})[_0x88e0('0x26')](function(_0x5e90ae){logger[_0x88e0('0x23')]('ChatWebsite,\x20%s,\x20%s',_0x2a7926,_0x5e90ae);_0x5ce781(_0x5e90ae);});});}function respondWithStatusCode(_0x4033c2,_0x5bc864){_0x5bc864=_0x5bc864||0xcc;return function(_0x5bd43f){if(_0x5bd43f){return _0x4033c2[_0x88e0('0x27')](_0x5bc864);}return _0x4033c2[_0x88e0('0x28')](_0x5bc864)[_0x88e0('0x29')]();};}function respondWithResult(_0x47a0d,_0x52231f){_0x52231f=_0x52231f||0xc8;return function(_0xd47cbb){if(_0xd47cbb){return _0x47a0d[_0x88e0('0x28')](_0x52231f)[_0x88e0('0x2a')](_0xd47cbb);}};}function respondWithFilteredResult(_0x3594be,_0x5e1896){return function(_0x69e38d){if(_0x69e38d){var _0x3dd6eb=typeof _0x5e1896[_0x88e0('0x2b')]==='undefined'&&typeof _0x5e1896[_0x88e0('0x2c')]===_0x88e0('0x2d');var _0x52dbef=_0x69e38d[_0x88e0('0x2e')];var _0x27d6c9=_0x3dd6eb?0x0:_0x5e1896[_0x88e0('0x2b')];var _0x6d68c1=_0x3dd6eb?_0x69e38d['count']:_0x5e1896[_0x88e0('0x2b')]+_0x5e1896[_0x88e0('0x2c')];var _0x36903c;if(_0x6d68c1>=_0x52dbef){_0x6d68c1=_0x52dbef;_0x36903c=0xc8;}else{_0x36903c=0xce;}_0x3594be[_0x88e0('0x28')](_0x36903c);return _0x3594be[_0x88e0('0x2f')]('Content-Range',_0x27d6c9+'-'+_0x6d68c1+'/'+_0x52dbef)['json'](_0x69e38d);}return null;};}function patchUpdates(_0x25324d){return function(_0x239ecc){try{jsonpatch['apply'](_0x239ecc,_0x25324d,!![]);}catch(_0x54fea4){return BPromise['reject'](_0x54fea4);}return _0x239ecc[_0x88e0('0x30')]();};}function saveUpdates(_0x56284a,_0x9fcfb7){return function(_0x2df9fa){if(_0x2df9fa){return _0x2df9fa['update'](_0x56284a)[_0x88e0('0x1c')](function(_0x297a83){return _0x297a83;});}return null;};}function removeEntity(_0x322103,_0x11c2e6){return function(_0x410906){if(_0x410906){return _0x410906['destroy']()['then'](function(){var _0x1ef552=_0x410906[_0x88e0('0x31')]({'plain':!![]});var _0x4dfffa=_0x88e0('0x32');return db[_0x88e0('0x33')][_0x88e0('0x34')]({'where':{'type':_0x4dfffa,'resourceId':_0x1ef552['id']}})[_0x88e0('0x1c')](function(){return _0x410906;});})['then'](function(){_0x322103[_0x88e0('0x28')](0xcc)[_0x88e0('0x29')]();});}};}function handleEntityNotFound(_0x3e4481,_0x4e3746){return function(_0x1a0c75){if(!_0x1a0c75){_0x3e4481[_0x88e0('0x27')](0x194);}return _0x1a0c75;};}function handleError(_0x515df3,_0x1fa2fd){_0x1fa2fd=_0x1fa2fd||0x1f4;return function(_0x4b2f2a){logger[_0x88e0('0x23')](_0x4b2f2a[_0x88e0('0x35')]);if(_0x4b2f2a[_0x88e0('0x36')]){delete _0x4b2f2a[_0x88e0('0x36')];}_0x515df3[_0x88e0('0x28')](_0x1fa2fd)[_0x88e0('0x37')](_0x4b2f2a);};}exports[_0x88e0('0x38')]=function(_0x29c36c,_0xfd7820){var _0x59e095={'include':[{'model':db[_0x88e0('0x39')],'as':_0x88e0('0x3a')}]},_0x54c67e={},_0xa6c8cf={'count':0x0,'rows':[]};var _0x468f43=_[_0x88e0('0x3b')](db[_0x88e0('0x3c')][_0x88e0('0x3d')],function(_0x546c30){return{'name':_0x546c30[_0x88e0('0x3e')],'type':_0x546c30[_0x88e0('0x3f')][_0x88e0('0x40')]};});_0x54c67e[_0x88e0('0x41')]=_[_0x88e0('0x3b')](_0x468f43,'name');_0x54c67e['query']=_[_0x88e0('0x42')](_0x29c36c[_0x88e0('0x43')]);_0x54c67e[_0x88e0('0x44')]=_[_0x88e0('0x45')](_0x54c67e['model'],_0x54c67e[_0x88e0('0x43')]);_0x59e095[_0x88e0('0x46')]=_[_0x88e0('0x45')](_0x54c67e[_0x88e0('0x41')],qs[_0x88e0('0x47')](_0x29c36c[_0x88e0('0x43')][_0x88e0('0x47')]));_0x59e095['attributes']=_0x59e095['attributes'][_0x88e0('0x48')]?_0x59e095[_0x88e0('0x46')]:_0x54c67e[_0x88e0('0x41')];if(!_0x29c36c[_0x88e0('0x43')][_0x88e0('0x49')](_0x88e0('0x4a'))){_0x59e095[_0x88e0('0x2c')]=qs[_0x88e0('0x2c')](_0x29c36c[_0x88e0('0x43')][_0x88e0('0x2c')]);_0x59e095[_0x88e0('0x2b')]=qs[_0x88e0('0x2b')](_0x29c36c[_0x88e0('0x43')][_0x88e0('0x2b')]);}_0x59e095[_0x88e0('0x4b')]=qs[_0x88e0('0x4c')](_0x29c36c[_0x88e0('0x43')]['sort']);_0x59e095['where']=qs[_0x88e0('0x44')](_[_0x88e0('0x4d')](_0x29c36c[_0x88e0('0x43')],_0x54c67e[_0x88e0('0x44')]),_0x468f43);if(_0x29c36c[_0x88e0('0x43')][_0x88e0('0x4e')]){_0x59e095[_0x88e0('0x4f')]=_[_0x88e0('0x50')](_0x59e095[_0x88e0('0x4f')],{'$or':_[_0x88e0('0x3b')](_0x468f43,function(_0x3a30b3){if(_0x3a30b3[_0x88e0('0x3f')]!==_0x88e0('0x51')){var _0x503e6c={};_0x503e6c[_0x3a30b3[_0x88e0('0x36')]]={'$like':'%'+_0x29c36c[_0x88e0('0x43')][_0x88e0('0x4e')]+'%'};return _0x503e6c;}})});}_0x59e095=_[_0x88e0('0x50')]({},_0x59e095,_0x29c36c['options']);var _0x1f11df={'where':_0x59e095[_0x88e0('0x4f')]};return db[_0x88e0('0x3c')][_0x88e0('0x2e')](_0x1f11df)[_0x88e0('0x1c')](function(_0x28d455){_0xa6c8cf[_0x88e0('0x2e')]=_0x28d455;if(_0x29c36c['query']['includeAll']){_0x59e095[_0x88e0('0x52')]=[{'all':!![]}];}return db[_0x88e0('0x3c')][_0x88e0('0x53')](_0x59e095);})[_0x88e0('0x1c')](function(_0x2095ce){_0xa6c8cf[_0x88e0('0x54')]=_0x2095ce;return _0xa6c8cf;})[_0x88e0('0x1c')](respondWithFilteredResult(_0xfd7820,_0x59e095))[_0x88e0('0x26')](handleError(_0xfd7820,null));};exports['show']=function(_0x391294,_0x406629){var _0x2f8028={'raw':![],'where':{'id':_0x391294[_0x88e0('0x55')]['id']},'include':[{'model':db[_0x88e0('0x39')],'as':'mandatoryDispositionPause'}]},_0x1caf35={};_0x1caf35['model']=_['keys'](db[_0x88e0('0x3c')][_0x88e0('0x3d')]);_0x1caf35['query']=_[_0x88e0('0x42')](_0x391294['query']);_0x1caf35[_0x88e0('0x44')]=_['intersection'](_0x1caf35[_0x88e0('0x41')],_0x1caf35['query']);_0x2f8028[_0x88e0('0x46')]=_[_0x88e0('0x45')](_0x1caf35['model'],qs[_0x88e0('0x47')](_0x391294[_0x88e0('0x43')][_0x88e0('0x47')]));_0x2f8028[_0x88e0('0x46')]=_0x2f8028[_0x88e0('0x46')][_0x88e0('0x48')]?_0x2f8028[_0x88e0('0x46')]:_0x1caf35[_0x88e0('0x41')];if(_0x391294[_0x88e0('0x43')][_0x88e0('0x56')]){_0x2f8028[_0x88e0('0x52')]=[{'all':!![]}];}_0x2f8028=_[_0x88e0('0x50')]({},_0x2f8028,_0x391294[_0x88e0('0x57')]);return db['ChatWebsite'][_0x88e0('0x58')](_0x2f8028)['then'](handleEntityNotFound(_0x406629,null))['then'](respondWithResult(_0x406629,null))['catch'](handleError(_0x406629,null));};exports[_0x88e0('0x59')]=function(_0x4a3c07,_0x34743b){return db[_0x88e0('0x3c')][_0x88e0('0x59')](_0x4a3c07['body'],{})[_0x88e0('0x1c')](function(_0xd7a545){var _0xa45959=_0x4a3c07[_0x88e0('0x5a')][_0x88e0('0x31')]({'plain':!![]});if(!_0xa45959)throw new Error(_0x88e0('0x5b'));if(_0xa45959[_0x88e0('0x5c')]==='user'){var _0x36432a=_0xd7a545[_0x88e0('0x31')]({'plain':!![]});var _0x54d4d9='ChatWebsites';return db[_0x88e0('0x5d')][_0x88e0('0x58')]({'where':{'name':_0x54d4d9,'userProfileId':_0xa45959[_0x88e0('0x5e')]},'raw':!![]})[_0x88e0('0x1c')](function(_0x2421f8){if(_0x2421f8&&_0x2421f8['autoAssociation']===0x0){return db[_0x88e0('0x33')][_0x88e0('0x59')]({'name':_0x36432a[_0x88e0('0x36')],'resourceId':_0x36432a['id'],'type':_0x2421f8[_0x88e0('0x36')],'sectionId':_0x2421f8['id']},{})[_0x88e0('0x1c')](function(){return _0xd7a545;});}else{return _0xd7a545;}})[_0x88e0('0x26')](function(_0x56971d){logger[_0x88e0('0x23')](_0x88e0('0x5f'),_0x56971d);throw _0x56971d;});}return _0xd7a545;})[_0x88e0('0x1c')](respondWithResult(_0x34743b,0xc9))[_0x88e0('0x26')](handleError(_0x34743b,null));};exports['update']=function(_0x32cd04,_0x18aeef){if(_0x32cd04['body']['id']){delete _0x32cd04['body']['id'];}return db[_0x88e0('0x3c')]['find']({'where':{'id':_0x32cd04[_0x88e0('0x55')]['id']},'include':[{'model':db[_0x88e0('0x39')],'as':_0x88e0('0x3a')}]})[_0x88e0('0x1c')](handleEntityNotFound(_0x18aeef,null))[_0x88e0('0x1c')](saveUpdates(_0x32cd04[_0x88e0('0x60')],null))['then'](respondWithResult(_0x18aeef,null))[_0x88e0('0x26')](handleError(_0x18aeef,null));};exports[_0x88e0('0x34')]=function(_0x5e8cd7,_0x4f290c){return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0x5e8cd7[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x4f290c,null))[_0x88e0('0x1c')](removeEntity(_0x4f290c,null))[_0x88e0('0x26')](handleError(_0x4f290c,null));};exports[_0x88e0('0x61')]=function(_0xfa0273,_0x14cac8){return db[_0x88e0('0x3c')]['describe']()[_0x88e0('0x1c')](respondWithResult(_0x14cac8,null))[_0x88e0('0x26')](handleError(_0x14cac8,null));};exports[_0x88e0('0x62')]=function(_0x194216,_0x2c1bea,_0x5e63e2){if(_0x194216[_0x88e0('0x60')]['id']){delete _0x194216[_0x88e0('0x60')]['id'];}return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0x194216[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x2c1bea,null))[_0x88e0('0x1c')](function(_0x2521af){if(_0x2521af){_0x194216[_0x88e0('0x60')][_0x88e0('0x63')]=_0x2521af['id'];return db['Disposition'][_0x88e0('0x59')](_0x194216['body']);}})[_0x88e0('0x1c')](respondWithResult(_0x2c1bea,null))['catch'](handleError(_0x2c1bea,null));};exports[_0x88e0('0x64')]=function(_0x12fdb7,_0x2a7b4f,_0x10b240){var _0x9f47b7={'raw':![],'where':{}};var _0x473e95={};var _0x554608={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x88e0('0x65')]({'where':{'id':_0x12fdb7[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x2a7b4f,null))[_0x88e0('0x1c')](function(_0x2e68aa){if(_0x2e68aa){_0x473e95[_0x88e0('0x41')]=_[_0x88e0('0x42')](db[_0x88e0('0x66')][_0x88e0('0x3d')]);_0x473e95[_0x88e0('0x43')]=_[_0x88e0('0x42')](_0x12fdb7[_0x88e0('0x43')]);_0x473e95[_0x88e0('0x44')]=_[_0x88e0('0x45')](_0x473e95[_0x88e0('0x41')],_0x473e95['query']);_0x9f47b7[_0x88e0('0x46')]=_['intersection'](_0x473e95[_0x88e0('0x41')],qs[_0x88e0('0x47')](_0x12fdb7[_0x88e0('0x43')][_0x88e0('0x47')]));_0x9f47b7['attributes']=_0x9f47b7[_0x88e0('0x46')][_0x88e0('0x48')]?_0x9f47b7[_0x88e0('0x46')]:_0x473e95['model'];if(!_0x12fdb7[_0x88e0('0x43')][_0x88e0('0x49')](_0x88e0('0x4a'))){_0x9f47b7['limit']=qs[_0x88e0('0x2c')](_0x12fdb7[_0x88e0('0x43')][_0x88e0('0x2c')]);_0x9f47b7['offset']=qs[_0x88e0('0x2b')](_0x12fdb7[_0x88e0('0x43')][_0x88e0('0x2b')]);}_0x9f47b7[_0x88e0('0x4b')]=qs[_0x88e0('0x4c')](_0x12fdb7['query'][_0x88e0('0x4c')]);_0x9f47b7[_0x88e0('0x4f')]=qs[_0x88e0('0x44')](_[_0x88e0('0x4d')](_0x12fdb7[_0x88e0('0x43')],_0x473e95[_0x88e0('0x44')]));_0x9f47b7['where'][_0x88e0('0x63')]=_0x2e68aa['id'];if(_0x12fdb7[_0x88e0('0x43')][_0x88e0('0x4e')]){_0x9f47b7['where']=_[_0x88e0('0x50')](_0x9f47b7[_0x88e0('0x4f')],{'$or':_[_0x88e0('0x3b')](_0x9f47b7[_0x88e0('0x46')],function(_0x2724ff){var _0x33514b={};_0x33514b[_0x2724ff]={'$like':'%'+_0x12fdb7[_0x88e0('0x43')][_0x88e0('0x4e')]+'%'};return _0x33514b;})});}_0x9f47b7=_[_0x88e0('0x50')]({},_0x9f47b7,_0x12fdb7['options']);return db[_0x88e0('0x66')][_0x88e0('0x2e')]({'where':_0x9f47b7[_0x88e0('0x4f')]})[_0x88e0('0x1c')](function(_0x468806){_0x554608[_0x88e0('0x2e')]=_0x468806;if(_0x12fdb7[_0x88e0('0x43')][_0x88e0('0x56')]){_0x9f47b7[_0x88e0('0x52')]=[{'all':!![]}];}return db[_0x88e0('0x66')][_0x88e0('0x53')](_0x9f47b7);})[_0x88e0('0x1c')](function(_0x24b56d){_0x554608[_0x88e0('0x54')]=_0x24b56d;return _0x554608;});}})[_0x88e0('0x1c')](respondWithFilteredResult(_0x2a7b4f,_0x9f47b7))[_0x88e0('0x26')](handleError(_0x2a7b4f,null));};exports[_0x88e0('0x67')]=function(_0xc1ae6a,_0x5ad482,_0x2dea60){return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0xc1ae6a[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x5ad482,null))[_0x88e0('0x1c')](function(_0x57d2c9){if(_0x57d2c9){return _0x57d2c9[_0x88e0('0x67')](_0xc1ae6a['query'][_0x88e0('0x68')]);}})['then'](respondWithStatusCode(_0x5ad482,null))[_0x88e0('0x26')](handleError(_0x5ad482,null));};exports[_0x88e0('0x69')]=function(_0x1b4a97,_0x35cf17,_0x16269c){if(_0x1b4a97[_0x88e0('0x60')]['id']){delete _0x1b4a97['body']['id'];}return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0x1b4a97[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x35cf17,null))['then'](function(_0x5e243f){if(_0x5e243f){_0x1b4a97[_0x88e0('0x60')][_0x88e0('0x63')]=_0x5e243f['id'];return db['CannedAnswer']['create'](_0x1b4a97[_0x88e0('0x60')]);}})[_0x88e0('0x1c')](respondWithResult(_0x35cf17,null))['catch'](handleError(_0x35cf17,null));};exports['getAnswers']=function(_0x6e2423,_0x13c655,_0x2e792f){var _0x4a38d3={'raw':![],'where':{}};var _0x1f6c5e={};var _0x1dabb1={'count':0x0,'rows':[]};return db[_0x88e0('0x3c')][_0x88e0('0x65')]({'where':{'id':_0x6e2423[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x13c655,null))[_0x88e0('0x1c')](function(_0x35c729){if(_0x35c729){_0x1f6c5e[_0x88e0('0x41')]=_[_0x88e0('0x42')](db[_0x88e0('0x6a')][_0x88e0('0x3d')]);_0x1f6c5e[_0x88e0('0x43')]=_[_0x88e0('0x42')](_0x6e2423[_0x88e0('0x43')]);_0x1f6c5e[_0x88e0('0x44')]=_[_0x88e0('0x45')](_0x1f6c5e[_0x88e0('0x41')],_0x1f6c5e[_0x88e0('0x43')]);_0x4a38d3[_0x88e0('0x46')]=_[_0x88e0('0x45')](_0x1f6c5e['model'],qs['fields'](_0x6e2423['query'][_0x88e0('0x47')]));_0x4a38d3[_0x88e0('0x46')]=_0x4a38d3['attributes'][_0x88e0('0x48')]?_0x4a38d3['attributes']:_0x1f6c5e[_0x88e0('0x41')];if(!_0x6e2423['query'][_0x88e0('0x49')](_0x88e0('0x4a'))){_0x4a38d3[_0x88e0('0x2c')]=qs['limit'](_0x6e2423[_0x88e0('0x43')][_0x88e0('0x2c')]);_0x4a38d3[_0x88e0('0x2b')]=qs['offset'](_0x6e2423['query'][_0x88e0('0x2b')]);}_0x4a38d3['order']=qs['sort'](_0x6e2423[_0x88e0('0x43')][_0x88e0('0x4c')]);_0x4a38d3[_0x88e0('0x4f')]=qs['filters'](_[_0x88e0('0x4d')](_0x6e2423['query'],_0x1f6c5e[_0x88e0('0x44')]));_0x4a38d3[_0x88e0('0x4f')][_0x88e0('0x63')]=_0x35c729['id'];if(_0x6e2423[_0x88e0('0x43')][_0x88e0('0x4e')]){_0x4a38d3[_0x88e0('0x4f')]=_[_0x88e0('0x50')](_0x4a38d3['where'],{'$or':_[_0x88e0('0x3b')](_0x4a38d3[_0x88e0('0x46')],function(_0x5be673){var _0x12643b={};_0x12643b[_0x5be673]={'$like':'%'+_0x6e2423[_0x88e0('0x43')][_0x88e0('0x4e')]+'%'};return _0x12643b;})});}_0x4a38d3=_[_0x88e0('0x50')]({},_0x4a38d3,_0x6e2423['options']);return db[_0x88e0('0x6a')][_0x88e0('0x2e')]({'where':_0x4a38d3[_0x88e0('0x4f')]})['then'](function(_0x762173){_0x1dabb1[_0x88e0('0x2e')]=_0x762173;if(_0x6e2423[_0x88e0('0x43')]['includeAll']){_0x4a38d3[_0x88e0('0x52')]=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x4a38d3);})[_0x88e0('0x1c')](function(_0x1bd821){_0x1dabb1[_0x88e0('0x54')]=_0x1bd821;return _0x1dabb1;});}})[_0x88e0('0x1c')](respondWithFilteredResult(_0x13c655,_0x4a38d3))[_0x88e0('0x26')](handleError(_0x13c655,null));};exports[_0x88e0('0x6b')]=function(_0x3f0f74,_0x12fced,_0x399b61){return db[_0x88e0('0x3c')]['find']({'where':{'id':_0x3f0f74[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x12fced,null))[_0x88e0('0x1c')](function(_0x4bc14c){if(_0x4bc14c){return _0x4bc14c[_0x88e0('0x6b')](_0x3f0f74[_0x88e0('0x43')][_0x88e0('0x68')]);}})[_0x88e0('0x1c')](respondWithStatusCode(_0x12fced,null))[_0x88e0('0x26')](handleError(_0x12fced,null));};exports['addLogo']=function(_0x4cc0f5,_0xf1f127,_0x5e6e21){_0x4cc0f5['body']['sitepic']=_0x4cc0f5['file'][_0x88e0('0x6c')];return db['ChatWebsite'][_0x88e0('0x58')]({'where':{'id':_0x4cc0f5[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0xf1f127,null))[_0x88e0('0x1c')](saveUpdates(_0x4cc0f5[_0x88e0('0x60')],null))[_0x88e0('0x1c')](respondWithResult(_0xf1f127,null))[_0x88e0('0x26')](handleError(_0xf1f127,null));};exports[_0x88e0('0x6d')]=function(_0x273f28,_0x3b9949,_0x40b3b5){_0x273f28['body'][_0x88e0('0x6e')]=_0x273f28[_0x88e0('0x6f')][_0x88e0('0x6c')];return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0x273f28[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x3b9949,null))[_0x88e0('0x1c')](saveUpdates(_0x273f28[_0x88e0('0x60')],null))['then'](respondWithResult(_0x3b9949,null))[_0x88e0('0x26')](handleError(_0x3b9949,null));};exports[_0x88e0('0x70')]=function(_0x8005d9,_0x4a846d,_0x357c77){_0x8005d9[_0x88e0('0x60')][_0x88e0('0x71')]=_0x8005d9[_0x88e0('0x6f')][_0x88e0('0x6c')];return db['ChatWebsite'][_0x88e0('0x58')]({'where':{'id':_0x8005d9[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x4a846d,null))[_0x88e0('0x1c')](saveUpdates(_0x8005d9[_0x88e0('0x60')],null))[_0x88e0('0x1c')](respondWithResult(_0x4a846d,null))[_0x88e0('0x26')](handleError(_0x4a846d,null));};exports[_0x88e0('0x72')]=function(_0x2860f9,_0x24b03c,_0x503444){_0x2860f9[_0x88e0('0x60')][_0x88e0('0x73')]=_0x2860f9[_0x88e0('0x6f')][_0x88e0('0x6c')];return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0x2860f9[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x24b03c,null))['then'](saveUpdates(_0x2860f9['body'],null))[_0x88e0('0x1c')](respondWithResult(_0x24b03c,null))['catch'](handleError(_0x24b03c,null));};exports[_0x88e0('0x74')]=function(_0x2f7b69,_0x3feeab,_0x1543df){var _0x521905=path[_0x88e0('0x75')](config[_0x88e0('0x76')],_0x88e0('0x77'));var _0xb69720={'where':{'id':_0x2f7b69[_0x88e0('0x55')]['id']},'attributes':['id','sitepic'],'raw':!![]};var _0x27e9b4=![];return require(_0x88e0('0x13'))[_0x88e0('0x78')]()[_0x88e0('0x1c')](function(_0x225b48){if(_0x225b48){_0x27e9b4=_0x225b48[_0x88e0('0x79')];}})[_0x88e0('0x1c')](function(){return db[_0x88e0('0x3c')][_0x88e0('0x58')](_0xb69720);})['then'](handleEntityNotFound(_0x3feeab,null))['then'](function(_0x1c3f74){if(_0x1c3f74){if(!_['isNil'](_0x1c3f74[_0x88e0('0x7a')])){if(fs[_0x88e0('0x7b')](path[_0x88e0('0x75')](config[_0x88e0('0x76')],'server/files/images/logos/',_0x1c3f74[_0x88e0('0x7a')]))&&_0x27e9b4){_0x521905=path[_0x88e0('0x75')](config['root'],_0x88e0('0x7c'),_0x1c3f74[_0x88e0('0x7a')]);}}return _0x3feeab['download'](_0x521905);}})[_0x88e0('0x26')](handleError(_0x3feeab,null));};exports[_0x88e0('0x7d')]=function(_0x104b14,_0x44921d,_0x503be5){var _0x150d5e=path[_0x88e0('0x75')](config[_0x88e0('0x76')],_0x88e0('0x7e'));var _0x314580={'where':{'id':_0x104b14['params']['id']},'attributes':['id','agentAvatar'],'raw':!![]};return db[_0x88e0('0x3c')]['find'](_0x314580)['then'](handleEntityNotFound(_0x44921d,null))[_0x88e0('0x1c')](function(_0x197894){if(_0x197894){if(!_[_0x88e0('0x7f')](_0x197894[_0x88e0('0x6e')])){if(fs[_0x88e0('0x7b')](path[_0x88e0('0x75')](config['root'],'server/files/images/avatars/',_0x197894[_0x88e0('0x6e')]))){_0x150d5e=path[_0x88e0('0x75')](config[_0x88e0('0x76')],_0x88e0('0x80'),_0x197894[_0x88e0('0x6e')]);}}return _0x44921d[_0x88e0('0x81')](_0x150d5e);}})[_0x88e0('0x26')](handleError(_0x44921d,null));};exports[_0x88e0('0x82')]=function(_0x43a087,_0x2dcbad,_0x43af63){var _0x3b0832=path[_0x88e0('0x75')](config[_0x88e0('0x76')],'server/files/images/avatars/customer_avatar.png');var _0x28ba95={'where':{'id':_0x43a087[_0x88e0('0x55')]['id']},'attributes':['id','customerAvatar','showCustomerAvatar'],'raw':!![]};return db['ChatWebsite'][_0x88e0('0x58')](_0x28ba95)['then'](handleEntityNotFound(_0x2dcbad,null))[_0x88e0('0x1c')](function(_0x380a8a){if(_0x380a8a){if(!_['isNil'](_0x380a8a[_0x88e0('0x71')])){if(fs[_0x88e0('0x7b')](path[_0x88e0('0x75')](config[_0x88e0('0x76')],_0x88e0('0x80'),_0x380a8a[_0x88e0('0x71')]))&&_0x380a8a[_0x88e0('0x83')]){_0x3b0832=path['join'](config['root'],_0x88e0('0x80'),_0x380a8a[_0x88e0('0x71')]);}}return _0x2dcbad[_0x88e0('0x81')](_0x3b0832);}})[_0x88e0('0x26')](handleError(_0x2dcbad,null));};exports['getSystemAvatar']=function(_0x2f4ff8,_0x100472,_0x1a013e){var _0x3c8fe9=path[_0x88e0('0x75')](config[_0x88e0('0x76')],_0x88e0('0x84'));var _0x364c6c={'where':{'id':_0x2f4ff8[_0x88e0('0x55')]['id']},'attributes':['id',_0x88e0('0x73')],'raw':!![]};return db[_0x88e0('0x3c')][_0x88e0('0x58')](_0x364c6c)[_0x88e0('0x1c')](handleEntityNotFound(_0x100472,null))['then'](function(_0x5f1caa){if(_0x5f1caa){if(!_[_0x88e0('0x7f')](_0x5f1caa['systemAvatar'])){if(fs['existsSync'](path['join'](config[_0x88e0('0x76')],_0x88e0('0x80'),_0x5f1caa['systemAvatar']))){_0x3c8fe9=path[_0x88e0('0x75')](config['root'],_0x88e0('0x80'),_0x5f1caa[_0x88e0('0x73')]);}}return _0x100472[_0x88e0('0x81')](_0x3c8fe9);}})[_0x88e0('0x26')](handleError(_0x100472,null));};exports[_0x88e0('0x85')]=function(_0x1709aa,_0x3aa580,_0x5a041b){var _0x54fae4=require(_0x88e0('0x86'));var _0x297672=new _0x54fae4();var _0x360c83=_0x297672[_0x88e0('0x87')](_0x1709aa[_0x88e0('0x88')][_0x88e0('0x89')])[_0x88e0('0x8a')]();var _0x1138fe={'body':_0x1709aa[_0x88e0('0x60')],'channel':_0x88e0('0x8b')};var _0x23dd20=[];var _0x4b958d=[];var _0x4dbe36={};var _0x1b63dd=![];return db['CmContact'][_0x88e0('0x61')]()[_0x88e0('0x1c')](function(_0x39da42){if(!_0x39da42){throw new db[(_0x88e0('0x8c'))]['ValidationError']('no\x20available\x20attributes');}_0x23dd20=_[_0x88e0('0x8d')](_[_0x88e0('0x42')](_0x39da42),[_0x88e0('0x8e'),'updatedAt']);_0x4b958d=_['difference'](_[_0x88e0('0x42')](_0x39da42),[_0x88e0('0x8e'),_0x88e0('0x8f'),'CompanyId','ListId']);if(_0x1709aa[_0x88e0('0x60')]['id']){delete _0x1709aa[_0x88e0('0x60')]['id'];}if(_['isNil'](_0x1709aa['body'][_0x88e0('0x90')])){throw new db['Sequelize']['ValidationError'](_0x88e0('0x91'));}if(_[_0x88e0('0x7f')](_0x1709aa[_0x88e0('0x60')]['body'])||_0x1709aa[_0x88e0('0x60')][_0x88e0('0x60')]===''){throw new db[(_0x88e0('0x8c'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x88e0('0x7f')](_0x1709aa[_0x88e0('0x60')][_0x88e0('0x92')])){throw new db[(_0x88e0('0x8c'))][(_0x88e0('0x93'))](_0x88e0('0x94')+_0x4b958d);}if(!_['includes'](_0x4b958d,_0x1709aa[_0x88e0('0x60')][_0x88e0('0x92')])){throw new db[(_0x88e0('0x8c'))]['ValidationError'](_0x88e0('0x95')+_0x4b958d);}_0x4dbe36[_0x1709aa[_0x88e0('0x60')][_0x88e0('0x92')]]=_0x1709aa['body']['from'];})[_0x88e0('0x1c')](function(){return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0x1709aa[_0x88e0('0x55')]['id']},'include':[{'model':db['CmList'],'as':_0x88e0('0x96'),'include':[{'model':db[_0x88e0('0x97')],'as':_0x88e0('0x98'),'where':_0x4dbe36,'limit':0x1,'order':[['updatedAt',_0x88e0('0x99')]]}]},{'model':db[_0x88e0('0x9a')],'as':'Applications'}]});})[_0x88e0('0x1c')](handleEntityNotFound(_0x3aa580,null))[_0x88e0('0x1c')](function(_0x1c2a1c){if(_0x1c2a1c&&_0x1c2a1c[_0x88e0('0x96')]){_0x1138fe[_0x88e0('0x9b')]=_0x1c2a1c;_0x1138fe[_0x88e0('0x9c')]=_0x1c2a1c['Applications'];_0x1138fe[_0x88e0('0x9d')]=_0x1c2a1c[_0x88e0('0x96')];_0x1138fe[_0x88e0('0x9c')]=_['orderBy'](_0x1138fe[_0x88e0('0x9c')],[_0x88e0('0x9e')],[_0x88e0('0x9f')]);if(_0x1138fe[_0x88e0('0x9b')]['Applications']){delete _0x1138fe[_0x88e0('0x9b')]['Applications'];}if(_0x1138fe[_0x88e0('0x9b')][_0x88e0('0x96')]&&_0x1138fe['account'][_0x88e0('0x96')][_0x88e0('0x98')][_0x88e0('0x48')]){return _0x1138fe[_0x88e0('0x9b')][_0x88e0('0x96')][_0x88e0('0x98')][0x0];}var _0x43fb6f=_[_0x88e0('0x15')](_0x1709aa[_0x88e0('0x60')],{'firstName':_0x1709aa[_0x88e0('0x60')][_0x88e0('0x90')],'ListId':_0x1c2a1c['ListId']});_0x43fb6f[_0x1709aa[_0x88e0('0x60')][_0x88e0('0x92')]]=_0x1709aa['body']['from'];return db[_0x88e0('0x97')]['create'](_0x43fb6f,{'fields':_0x23dd20,'raw':!![]});}})[_0x88e0('0x1c')](handleEntityNotFound(_0x3aa580,null))[_0x88e0('0x1c')](function(_0x3db7c7){_0x1138fe[_0x88e0('0xa0')]=_0x3db7c7;var _0x3661cf=_0x1709aa[_0x88e0('0x60')]['customerIp'];if(_0x1709aa[_0x88e0('0x88')][_0x88e0('0xa1')]){_0x3661cf=_0x1709aa[_0x88e0('0x88')][_0x88e0('0xa1')];}else if(_0x1709aa[_0x88e0('0x88')][_0x88e0('0xa2')]){_0x3661cf=_[_0x88e0('0xa3')](_0x1709aa[_0x88e0('0x88')][_0x88e0('0xa2')]['split'](','));}if(_0x3db7c7){var _0x5a85fd={'ContactId':_0x3db7c7['id'],'ChatWebsiteId':_0x1709aa['params']['id'],'from':(_0x3db7c7[_0x88e0('0xa4')]||'')+'\x20'+(_0x3db7c7[_0x88e0('0xa5')]||''),'customerIp':_0x3661cf,'customerPort':_0x1709aa['headers'][_0x88e0('0xa6')]?_0x1709aa['headers']['x-real-port']:null,'referer':_0x1709aa[_0x88e0('0x60')][_0x88e0('0xa7')],'browserName':_0x360c83[_0x88e0('0xa8')][_0x88e0('0x36')]&&_0x360c83[_0x88e0('0xa8')]['version']?util['format'](_0x88e0('0xa9'),_0x360c83[_0x88e0('0xa8')]['name'],_0x360c83['browser'][_0x88e0('0xaa')]):_0x88e0('0xab'),'browserVersion':_0x360c83['browser']['version']||_0x88e0('0xab'),'osName':util['format'](_0x88e0('0xa9'),_0x360c83['os'][_0x88e0('0x36')],_0x360c83['os'][_0x88e0('0xaa')]),'osVersion':_0x360c83['os']['version'],'deviceModel':_0x360c83[_0x88e0('0xac')]['model']&&_0x360c83['device'][_0x88e0('0xad')]?util[_0x88e0('0xae')]('%s\x20%s\x20%s',_0x360c83[_0x88e0('0xac')][_0x88e0('0x41')],_0x360c83[_0x88e0('0xac')][_0x88e0('0xad')],_0x360c83[_0x88e0('0xac')][_0x88e0('0x3f')]):null,'deviceVendor':_0x360c83[_0x88e0('0xac')][_0x88e0('0xad')],'deviceType':_0x360c83[_0x88e0('0xac')][_0x88e0('0x3f')],'formData':JSON[_0x88e0('0x22')](_0x1709aa[_0x88e0('0x60')])};var _0x481ca9={'ChatWebsiteId':_0x1709aa[_0x88e0('0x55')]['id'],'closed':![]};if(_0x1709aa['body']['threadId']){_0x481ca9[_0x88e0('0xaf')]=_0x1709aa[_0x88e0('0x60')][_0x88e0('0xaf')];return db[_0x88e0('0xb0')][_0x88e0('0x58')]({'where':_0x481ca9})['then'](function(_0x1e3562){if(_0x1e3562){return[_0x1e3562,![]];}_0x5a85fd[_0x88e0('0xaf')]=_0x1709aa[_0x88e0('0x60')][_0x88e0('0xaf')];_0x5a85fd[_0x88e0('0xb1')]=_0x1709aa[_0x88e0('0x60')][_0x88e0('0xb1')];return db[_0x88e0('0xb0')][_0x88e0('0x59')](_0x5a85fd)['then'](function(_0x2c7b85){return[_0x2c7b85,!![]];});});}_0x481ca9['ContactId']=_0x3db7c7['id'];if(_0x1709aa[_0x88e0('0x60')][_0x88e0('0xb2')]&&_0x1709aa['body'][_0x88e0('0xb2')]['id']){_0x481ca9['id']=_0x1709aa[_0x88e0('0x60')]['interaction']['id'];return db[_0x88e0('0xb0')][_0x88e0('0x58')]({'where':_0x481ca9})[_0x88e0('0x1c')](function(_0x18d8f3){if(_0x18d8f3){return[_0x18d8f3,![]];}return db['ChatInteraction'][_0x88e0('0x59')](_0x5a85fd)['then'](function(_0x1db363){return[_0x1db363,!![]];});});}return db[_0x88e0('0xb0')]['create'](_0x5a85fd)[_0x88e0('0x1c')](function(_0x3e1ffa){return[_0x3e1ffa,!![]];});}})[_0x88e0('0xb3')](function(_0x5b18ba,_0x227ac1){if(_0x5b18ba){_0x1b63dd=_0x227ac1;if(!_0x227ac1){var _0x50485f={'from':(_0x1138fe[_0x88e0('0xa0')][_0x88e0('0xa4')]||'')+'\x20'+(_0x1138fe[_0x88e0('0xa0')]['lastName']||'')};if(_0x1709aa['body']['threadId']&&_0x1709aa[_0x88e0('0x60')]['messageId']&&_0x1709aa[_0x88e0('0x60')][_0x88e0('0xaf')]!=_0x1709aa[_0x88e0('0x60')][_0x88e0('0xb4')]){_0x50485f[_0x88e0('0xaf')]=_0x1709aa[_0x88e0('0x60')][_0x88e0('0xb4')];}return _0x5b18ba[_0x88e0('0xb5')](_0x50485f);}else{return _0x5b18ba;}}})['then'](function(_0xe073e2){_0x1138fe[_0x88e0('0xb2')]=_0xe073e2[_0x88e0('0x31')]({'plain':!![]});_0x1138fe[_0x88e0('0xb2')]['created']=_0x1b63dd;if(_0x1138fe['interaction'][_0x88e0('0xb6')]){if(_0x1138fe[_0x88e0('0x9b')][_0x88e0('0xb7')]){_0x1138fe[_0x88e0('0x9c')][_0x88e0('0xb8')]({'id':0x0,'priority':_0x1138fe[_0x88e0('0x9c')]['length']+0x1,'app':'close','appdata':_0x88e0('0xb9'),'interval':_0x88e0('0xba')});}}return db['ChatMessage']['create']({'body':_0x1709aa[_0x88e0('0x60')][_0x88e0('0x60')],'ChatWebsiteId':_0x1709aa[_0x88e0('0x55')]['id'],'ChatInteractionId':_0xe073e2['id'],'direction':'in','ContactId':_0x1138fe[_0x88e0('0xa0')]['id'],'AttachmentId':_0x1709aa['body'][_0x88e0('0xbb')]});})['then'](function(_0x154a0b){_0x1138fe['message']=_0x154a0b;if(_0x1138fe['interaction'][_0x88e0('0xbc')]){return db[_0x88e0('0xbd')]['find']({'attributes':['id',_0x88e0('0x36')],'where':{'id':_0x1138fe[_0x88e0('0xb2')][_0x88e0('0xbc')]}})[_0x88e0('0x1c')](function(_0x4ace30){if(_0x4ace30){_0x1138fe['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0x88e0('0xbe'),'appdata':_0x4ace30['name']+','+(_0x1138fe[_0x88e0('0x9b')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});_0x1138fe[_0x88e0('0xbf')]=!![];}return respondWithRpcPromise(_0x88e0('0xc0'),_0x88e0('0xc1'),_0x1138fe);});}return respondWithRpcPromise(_0x88e0('0xc0'),_0x88e0('0xc1'),_0x1138fe);})[_0x88e0('0x1c')](function(_0xbc36e4){respondWithRpcPromise(_0x88e0('0xc2'),_0x88e0('0xc2'),{'event':'notify','message':_0xbc36e4},client9002);return _0xbc36e4;})['then'](respondWithResult(_0x3aa580,null))[_0x88e0('0x26')](handleError(_0x3aa580,null));};exports[_0x88e0('0xc3')]=function(_0x2e4829,_0x417ca3,_0xa83dd7){var _0x21159c,_0xb84371,_0x3e903f;var _0x133c45=[];var _0x37c834=[];var _0x482379={};var _0x55c0ed=_0x2e4829[_0x88e0('0xc4')]||[];var _0x1dc7e0=[];var _0x26e71b;return db[_0x88e0('0x97')][_0x88e0('0x61')]()['then'](function(_0x284a33){if(!_0x284a33){throw new db[(_0x88e0('0x8c'))][(_0x88e0('0x93'))](_0x88e0('0xc5'));}_0x37c834=_[_0x88e0('0x8d')](_[_0x88e0('0x42')](_0x284a33),[_0x88e0('0x8e'),'updatedAt']);_0x133c45=_['difference'](_[_0x88e0('0x42')](_0x284a33),[_0x88e0('0x8e'),'updatedAt',_0x88e0('0xc6'),'ListId']);if(_0x2e4829[_0x88e0('0x60')]['id']){delete _0x2e4829[_0x88e0('0x60')]['id'];}if(_[_0x88e0('0x7f')](_0x2e4829[_0x88e0('0x60')]['from'])){throw _0x417ca3[_0x88e0('0x28')](0x1f4)[_0x88e0('0x37')](new db[(_0x88e0('0x8c'))][(_0x88e0('0x93'))](_0x88e0('0x91')));}if(_[_0x88e0('0x7f')](_0x2e4829[_0x88e0('0x60')]['body'])||_0x2e4829[_0x88e0('0x60')][_0x88e0('0x60')]===''){throw _0x417ca3[_0x88e0('0x28')](0x1f4)[_0x88e0('0x37')](new db['Sequelize'][(_0x88e0('0x93'))](_0x88e0('0xc7')));}if(_[_0x88e0('0x7f')](_0x2e4829[_0x88e0('0x60')][_0x88e0('0xc8')])){throw _0x417ca3['status'](0x1f4)[_0x88e0('0x37')](new db[(_0x88e0('0x8c'))][(_0x88e0('0x93'))](_0x88e0('0xc9')+_0x133c45));}if(!_[_0x88e0('0xca')](_0x133c45,_0x2e4829[_0x88e0('0x60')]['mapKeyOffline'])){throw _0x417ca3['status'](0x1f4)['send'](new db['Sequelize']['ValidationError'](_0x88e0('0xcb')+_0x133c45));}_0x482379[_0x2e4829[_0x88e0('0x60')][_0x88e0('0xc8')]]=_0x2e4829[_0x88e0('0x60')][_0x88e0('0x90')];})[_0x88e0('0x1c')](function(){return db[_0x88e0('0x3c')]['find']({'where':{'id':_0x2e4829[_0x88e0('0x55')]['id']},'include':[{'model':db[_0x88e0('0xcc')],'as':'List'},{'model':db[_0x88e0('0xcd')],'as':_0x88e0('0xcd')}]});})[_0x88e0('0x1c')](handleEntityNotFound(_0x417ca3,null))[_0x88e0('0x1c')](function(_0x3409b0){if(_0x3409b0&&_0x3409b0['List']){_0xb84371=_0x3409b0;var _0x3937b5=_[_0x88e0('0x15')](_0x2e4829[_0x88e0('0x60')],{'firstName':_0x2e4829[_0x88e0('0x60')][_0x88e0('0x90')],'phone':_0x2e4829[_0x88e0('0x60')][_0x88e0('0x90')],'ListId':_0x3409b0['ListId']});_0x3937b5[_0x2e4829[_0x88e0('0x60')]['mapKeyOffline']]=_0x2e4829[_0x88e0('0x60')][_0x88e0('0x90')];return db[_0x88e0('0x97')][_0x88e0('0xce')]({'where':_0x482379,'defaults':_0x3937b5});}})['spread'](function(_0x3a9ddd){if(_0x3a9ddd){_0x3e903f=_0x3a9ddd;var _0x5ac2b3=fs[_0x88e0('0xcf')](path[_0x88e0('0x75')](config['root'],_0x88e0('0xd0')),_0x88e0('0xd1'));var _0x23de13=ejs[_0x88e0('0xd2')](_0x5ac2b3,{'body':_[_0x88e0('0xd3')](_0x2e4829[_0x88e0('0x60')][_0x88e0('0x60')]),'bodyTitle':_0xb84371[_0x88e0('0xd4')]});return db['ChatOfflineMessage'][_0x88e0('0x59')]({'body':_0x23de13,'ContactId':_0x3a9ddd['id'],'ChatWebsiteId':_0xb84371['id']});}})[_0x88e0('0x1c')](function(_0x31f83d){_0x26e71b=_0x31f83d;if(_0x55c0ed['length']){var _0x2e97b0=_0x55c0ed['map'](function(_0x2726ba){return{'name':_0x2726ba[_0x88e0('0xd5')],'basename':_0x2726ba[_0x88e0('0x6c')],'type':_0x2726ba[_0x88e0('0xd6')],'ChatOfflineMessageId':_0x31f83d['id']};});_0x1dc7e0=_0x2e97b0[_0x88e0('0x3b')](_0x4e97d6=>{var _0x229738={'filename':_0x4e97d6[_0x88e0('0x36')],'path':path['join'](config[_0x88e0('0x76')],_0x88e0('0xd7'),_0x88e0('0xc4'),'attachments',_0x88e0('0xd8'),_0x4e97d6[_0x88e0('0xd9')])};return _0x229738;});if(!_0xb84371['openNewInteraction']){return db[_0x88e0('0xda')][_0x88e0('0xdb')](function(_0x8229fb){return db[_0x88e0('0xdc')]['bulkCreate'](_0x2e97b0,{'transaction':_0x8229fb});});}}})['then'](function(){if(_0x26e71b){_0x21159c=_0x26e71b;return db[_0x88e0('0xcd')][_0x88e0('0x65')]({'where':{'active':!![]},'include':[{'model':db[_0x88e0('0xdd')],'as':_0x88e0('0xde'),'raw':!![]}]});}})[_0x88e0('0x1c')](function(_0x19c01d){if(_0x19c01d&&_0x19c01d[_0x88e0('0xde')]&&_0xb84371['forwardOffline']&&_0xb84371[_0x88e0('0xdf')]){var _0x523b50={'tls':{'rejectUnauthorized':![]}};if(_0x19c01d[_0x88e0('0xde')][_0x88e0('0xe0')]){_0x523b50[_0x88e0('0xe0')]=_0x19c01d[_0x88e0('0xde')][_0x88e0('0xe0')];}else{_0x523b50[_0x88e0('0xe1')]=_0x19c01d[_0x88e0('0xde')][_0x88e0('0xe1')];_0x523b50['port']=_0x19c01d[_0x88e0('0xde')]['port'];_0x523b50['secure']=_0x19c01d[_0x88e0('0xde')]['secure'];}if(_0x19c01d[_0x88e0('0xde')]['authentication']){_0x523b50[_0x88e0('0xe2')]={'user':_0x19c01d[_0x88e0('0xde')][_0x88e0('0x5a')],'pass':_0x19c01d[_0x88e0('0xde')][_0x88e0('0xe3')]};}return respondWithRpcPromise(_0x88e0('0xe4'),_0x88e0('0xe5'),{'account':_0x523b50,'message':{'from':util[_0x88e0('0xae')](_0x88e0('0xe6'),_0x19c01d[_0x88e0('0x36')],_0x19c01d[_0x88e0('0xe7')]||_0x19c01d[_0x88e0('0xde')][_0x88e0('0x5a')]),'to':_0xb84371[_0x88e0('0xdf')],'subject':_0xb84371[_0x88e0('0xe8')],'html':_0x21159c[_0x88e0('0x60')],'attachments':_0x1dc7e0}},client9003)[_0x88e0('0x1c')](function(){return _0x21159c;})[_0x88e0('0x26')](function(_0x4fa931){console['error'](_0x4fa931);});}})[_0x88e0('0x1c')](function(){if(_0xb84371&&_0xb84371[_0x88e0('0xe9')]&&_0xb84371[_0x88e0('0xea')]){var _0x546350=[];if(_0x55c0ed[_0x88e0('0x48')]){_0x546350=_0x55c0ed[_0x88e0('0x3b')](function(_0x5c5e36){return{'name':_0x5c5e36['originalname'],'basename':_0x5c5e36[_0x88e0('0x6c')],'type':_0x5c5e36[_0x88e0('0xd6')],'ChatOfflineMessageId':_0x26e71b['id']};});}var _0x5ab942;if(!_[_0x88e0('0x7f')](_0xb84371[_0x88e0('0xeb')])){var _0x5bd18a=_['map'](_0x2e4829['body'],function(_0x531f97){return _0x531f97;});var _0x4ebf39=_[_0x88e0('0xec')](_0x5bd18a)[0x0];var _0x3f6f38=_[_0x88e0('0xed')](_0x4ebf39,function(_0x34a12d){return _0x34a12d;});_0x5ab942=_0x3f6f38[0x1][_0xb84371[_0x88e0('0xeb')]];}var _0x48a952={'from':_0x3e903f[_0x88e0('0xe7')],'firstName':_0x3e903f[_0x88e0('0xa4')],'lastName':_0x3e903f['lastName'],'mapKey':_0x88e0('0xe7'),'message':{'from':_0x3e903f['email'],'to':_0xb84371[_0x88e0('0xcd')][_0x88e0('0xe7')],'cc':'','subject':_[_0x88e0('0x7f')](_0x5ab942)?_0xb84371[_0x88e0('0xe8')]:_0x5ab942,'messageId':'','sentAt':new Date(),'attach':_0x546350[_0x88e0('0x48')],'attachments':_0x546350,'originChannel':_0x88e0('0xee'),'ChatWebsiteId':_0xb84371['id'],'ChatOfflineMessageId':_0x21159c['id'],'originTo':_0xb84371[_0x88e0('0xcd')]['email']},'body':_0x21159c[_0x88e0('0x60')]};var _0x1e9a59={'account':{'id':_0xb84371['MailAccountId']},'body':_0x48a952,'log':_0x88e0('0xef')};return respondWithRpcPromise(_0x88e0('0xef'),_0x88e0('0xf0'),_0x1e9a59,client9001)['then'](function(){return _0x21159c;})[_0x88e0('0x26')](function(_0x141234){console[_0x88e0('0x23')](_0x141234);});}return;})['then'](function(){if(_0x21159c){return _0x21159c;}})[_0x88e0('0x1c')](respondWithResult(_0x417ca3,null))[_0x88e0('0x26')](function(_0x3344a4){console[_0x88e0('0x23')]('catch',_0x3344a4);for(var _0x395c4e of _0x55c0ed){var _0xa2fbda=path[_0x88e0('0x75')](config[_0x88e0('0x76')],_0x88e0('0xd7'),'files',_0x88e0('0xf1'),_0x88e0('0xd8'),_0x395c4e['filename']);fs_extra[_0x88e0('0xf2')](_0xa2fbda)[_0x88e0('0x26')](function(_0x1bae68){console[_0x88e0('0x23')](_0x88e0('0xf3'),_0xa2fbda,_0x1bae68);});}});};exports[_0x88e0('0xf4')]=function(_0x39392f,_0x2d13d4,_0x45b899){return db[_0x88e0('0xb0')][_0x88e0('0x58')]({'where':{'id':_0x39392f[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x2d13d4,null))[_0x88e0('0x1c')](function(_0x441486){if(_0x441486){return _0x441486[_0x88e0('0xf4')](_0x39392f['body'][_0x88e0('0x68')],_[_0x88e0('0xf5')](_0x39392f[_0x88e0('0x60')],['ids','id'])||{});}})['then'](respondWithResult(_0x2d13d4,null))[_0x88e0('0x26')](handleError(_0x2d13d4,null));};exports[_0x88e0('0xf6')]=function(_0x5e1c55,_0x29b346,_0x538585){var _0x51cc8c={'raw':![],'where':{}};var _0x16d127={};var _0x222a74={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x88e0('0x65')]({'where':{'id':_0x5e1c55[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x29b346,null))[_0x88e0('0x1c')](function(_0xed1fe3){if(_0xed1fe3){_0x16d127[_0x88e0('0x41')]=_[_0x88e0('0x42')](db[_0x88e0('0xb0')]['rawAttributes']);_0x16d127[_0x88e0('0x43')]=_[_0x88e0('0x42')](_0x5e1c55['query']);_0x16d127[_0x88e0('0x44')]=_[_0x88e0('0x45')](_0x16d127['model'],_0x16d127['query']);_0x51cc8c[_0x88e0('0x46')]=_[_0x88e0('0x45')](_0x16d127[_0x88e0('0x41')],qs[_0x88e0('0x47')](_0x5e1c55[_0x88e0('0x43')][_0x88e0('0x47')]));_0x51cc8c['attributes']=_0x51cc8c['attributes'][_0x88e0('0x48')]?_0x51cc8c[_0x88e0('0x46')]:_0x16d127[_0x88e0('0x41')];if(!_0x5e1c55[_0x88e0('0x43')][_0x88e0('0x49')](_0x88e0('0x4a'))){_0x51cc8c[_0x88e0('0x2c')]=qs['limit'](_0x5e1c55['query'][_0x88e0('0x2c')]);_0x51cc8c[_0x88e0('0x2b')]=qs[_0x88e0('0x2b')](_0x5e1c55[_0x88e0('0x43')][_0x88e0('0x2b')]);}_0x51cc8c[_0x88e0('0x4b')]=qs['sort'](_0x5e1c55['query'][_0x88e0('0x4c')]);_0x51cc8c[_0x88e0('0x4f')]=qs[_0x88e0('0x44')](_[_0x88e0('0x4d')](_0x5e1c55[_0x88e0('0x43')],_0x16d127[_0x88e0('0x44')]));_0x51cc8c['where']['ChatWebsiteId']=_0xed1fe3['id'];if(_0x5e1c55[_0x88e0('0x43')][_0x88e0('0x4e')]){_0x51cc8c[_0x88e0('0x4f')]=_[_0x88e0('0x50')](_0x51cc8c[_0x88e0('0x4f')],{'$or':_[_0x88e0('0x3b')](_0x51cc8c[_0x88e0('0x46')],function(_0x4121c2){var _0x26fd27={};_0x26fd27[_0x4121c2]={'$like':'%'+_0x5e1c55[_0x88e0('0x43')]['filter']+'%'};return _0x26fd27;})});}_0x51cc8c=_[_0x88e0('0x50')]({},_0x51cc8c,_0x5e1c55[_0x88e0('0x57')]);return db['ChatInteraction'][_0x88e0('0x2e')]({'where':_0x51cc8c[_0x88e0('0x4f')]})[_0x88e0('0x1c')](function(_0x3dd9ff){_0x222a74[_0x88e0('0x2e')]=_0x3dd9ff;if(_0x5e1c55[_0x88e0('0x43')][_0x88e0('0x56')]){_0x51cc8c[_0x88e0('0x52')]=[{'model':db[_0x88e0('0x97')],'as':'Contact','required':![]},{'model':db[_0x88e0('0xbd')],'as':_0x88e0('0xf7'),'attributes':[_0x88e0('0x36'),'fullname',_0x88e0('0xf8')],'required':![]},{'model':db[_0x88e0('0xf9')],'as':_0x88e0('0xfa'),'attributes':['id',_0x88e0('0x36'),'color'],'where':_0x5e1c55[_0x88e0('0x43')][_0x88e0('0xfb')]?{'id':_0x5e1c55[_0x88e0('0x43')][_0x88e0('0xfb')]}:undefined,'required':_0x5e1c55[_0x88e0('0x43')][_0x88e0('0xfb')]?!![]:![]}];}return db['ChatInteraction'][_0x88e0('0x53')](_0x51cc8c);})[_0x88e0('0x1c')](function(_0x289b40){_0x222a74[_0x88e0('0x54')]=_0x289b40;return _0x222a74;});}})[_0x88e0('0x1c')](respondWithFilteredResult(_0x29b346,_0x51cc8c))['catch'](handleError(_0x29b346,null));};function iftimePromise(_0x17cdf4,_0x94f46){return respondWithRpcPromise(_0x88e0('0xfc'),_0x88e0('0xfd'),{'command':_0x94f46[_0x88e0('0xfe')]?util[_0x88e0('0xae')](_0x88e0('0xff'),_0x17cdf4['interval'],_0x94f46[_0x88e0('0xfe')]):util['format'](_0x88e0('0x100'),_0x17cdf4[_0x88e0('0x101')])},client9002)[_0x88e0('0x1c')](function(_0x10ab86){var _0x1cef6a=_0x10ab86&&_0x10ab86[_0x88e0('0x102')](_0x88e0('0x103'))>=0x0?!![]:![];logger[_0x88e0('0x1d')]('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0x94f46['id'],_0x17cdf4['id'],_0x17cdf4['interval'],_0x1cef6a?_0x88e0('0x104'):_0x88e0('0x105'),_0x94f46[_0x88e0('0xfe')]?_0x94f46[_0x88e0('0xfe')]:_0x88e0('0x106'));return _0x1cef6a;})['catch'](function(_0x591e75){logger[_0x88e0('0x23')](_0x88e0('0x107'),_0x94f46['id'],_0x17cdf4['id'],_0x17cdf4[_0x88e0('0x101')],util[_0x88e0('0x108')](_0x591e75,{'showHidden':![],'depth':null}),_0x94f46[_0x88e0('0xfe')]?_0x94f46[_0x88e0('0xfe')]:'No\x20timezone');return![];});}exports[_0x88e0('0xfd')]=function(_0x22f63d,_0x138d81,_0x484c2d){var _0x3ae08e=0x0;var _0x276d90=0x0;var _0x5890f3=![];var _0x22fc2c;var _0x3e4c86;return db[_0x88e0('0x3c')]['find']({'where':{'id':_0x22f63d[_0x88e0('0x55')]['id']},'include':[{'model':db[_0x88e0('0x109')],'as':_0x88e0('0x109'),'include':[{'model':db['Interval'],'as':_0x88e0('0x10a'),'attributes':['id',_0x88e0('0x101')],'raw':!![]}]}]})['then'](handleEntityNotFound(_0x138d81,null))[_0x88e0('0x1c')](function(_0x5db528){if(_0x5db528){_0x22fc2c=_0x5db528;return _0x5db528['getProactiveActions']({'raw':!![]});}})[_0x88e0('0x1c')](function(_0x14a554){if(_0x22fc2c){if(_0x14a554){_0x3e4c86=_0x14a554;}}return require(_0x88e0('0x13'))[_0x88e0('0x78')]();})[_0x88e0('0x1c')](function(_0x5cd387){if(_0x5cd387){_0x276d90=_0x5cd387[_0x88e0('0x10b')];_0x5890f3=_0x5cd387['custom'];}})['then'](function(){return db[_0x88e0('0xb0')][_0x88e0('0x2e')]({'where':{'closed':![]}});})[_0x88e0('0x1c')](function(_0x5038dc){_0x3ae08e=_0x5038dc;if(_0x276d90&&_0x5038dc>_0x276d90){return db[_0x88e0('0x10c')]['findOne']({'where':{'id':0x1}})['then'](function(_0x9e9f8f){if(_0x9e9f8f){_0x9e9f8f[_0x88e0('0x10d')]('chatLicenseExceeded');}});}})[_0x88e0('0x1c')](function(){if(_0x22fc2c[_0x88e0('0x109')]&&_0x22fc2c[_0x88e0('0x109')][_0x88e0('0x10a')]){var _0x3a6419=[];for(var _0x4c22eb=0x0;_0x4c22eb<_0x22fc2c[_0x88e0('0x109')][_0x88e0('0x10a')][_0x88e0('0x48')];_0x4c22eb++){var _0x3596dd=_0x22fc2c[_0x88e0('0x109')][_0x88e0('0x10a')][_0x4c22eb][_0x88e0('0x31')]({'plain':!![]});_0x3a6419[_0x88e0('0xb8')](iftimePromise(_0x3596dd,_0x22fc2c));}return BPromise[_0x88e0('0x10e')](_0x3a6419)[_0x88e0('0x1c')](function(_0x2eb7e4){return _['some'](_0x2eb7e4);});}else{return!![];}})[_0x88e0('0x1c')](function(_0x428581){var _0x3748df=fs[_0x88e0('0xcf')](path[_0x88e0('0x75')](config['root'],_0x88e0('0x10f')),'utf8');var _0x58b8e0={'remote':_0x22fc2c[_0x88e0('0x110')],'query':querystring[_0x88e0('0x22')](_[_0x88e0('0x50')](_0x22fc2c[_0x88e0('0x31')]({'plain':!![]}),{'customerIp':_0x22f63d['headers'][_0x88e0('0xa2')]||_0x22f63d[_0x88e0('0x88')]['x-real-ip']||_0x22f63d['connection']['remoteAddress']||_0x22f63d['ip'],'referer':_0x22f63d[_0x88e0('0x88')]['referer'],'openedInteractions':_0x3ae08e,'maxInteractions':_0x276d90,'virtual':_0x5890f3['virtual'],'online':_0x428581,'custom':_0x5890f3}))[_0x88e0('0x111')](/'/g,'\x5c\x27')};_0x138d81[_0x88e0('0x37')](ejs[_0x88e0('0xd2')](Mustache[_0x88e0('0xd2')](_0x3748df,_0x58b8e0),{'proactiveActions':_0x3e4c86,'alignment':_0x22fc2c[_0x88e0('0x112')],'verticalAlignment':_0x22fc2c[_0x88e0('0x113')],'div_color':_0x22fc2c[_0x88e0('0x114')],'text_color':_0x22fc2c['textColor'],'button_color':_0x22fc2c[_0x88e0('0x115')],'background_color':_0x22fc2c['backgroundColor']}));})[_0x88e0('0x26')](handleError(_0x138d81,null));};exports[_0x88e0('0x116')]=function(_0x5d3cf6,_0x42c97d,_0x5c4216){return db['ChatWebsite'][_0x88e0('0x65')]({'where':{'id':_0x5d3cf6['params']['id']}})['then'](handleEntityNotFound(_0x42c97d,null))[_0x88e0('0x1c')](function(_0x579137){if(_0x579137){return db[_0x88e0('0xda')]['transaction'](function(_0x3f6f13){return db['ChatApplication'][_0x88e0('0x34')]({'where':{'ChatWebsiteId':_0x5d3cf6['params']['id']},'transaction':_0x3f6f13})[_0x88e0('0x1c')](function(_0x2fcb14){var _0x303b15=_[_0x88e0('0x3b')](_0x5d3cf6[_0x88e0('0x60')],function(_0x3e5354){_0x3e5354[_0x88e0('0x63')]=_0x5d3cf6[_0x88e0('0x55')]['id'];return _0x3e5354;});return db[_0x88e0('0x9a')][_0x88e0('0x117')](_0x303b15,{'transaction':_0x3f6f13});});})['then'](function(){return db[_0x88e0('0x9a')]['findAndCountAll']({'where':{'ChatWebsiteId':_0x5d3cf6[_0x88e0('0x55')]['id']},'order':'priority'});});}})[_0x88e0('0x1c')](respondWithResult(_0x42c97d,null))[_0x88e0('0x26')](handleError(_0x42c97d,null));};exports[_0x88e0('0x118')]=function(_0x4c104a,_0x1c02c7,_0x39bad4){var _0x213434={};var _0x56dd08={};var _0x948869;var _0x25105f;return db[_0x88e0('0x3c')]['findOne']({'where':{'id':_0x4c104a[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x1c02c7,null))[_0x88e0('0x1c')](function(_0x2a65bd){if(_0x2a65bd){_0x948869=_0x2a65bd;_0x56dd08['model']=_['keys'](db[_0x88e0('0x9a')][_0x88e0('0x3d')]);_0x56dd08[_0x88e0('0x43')]=_[_0x88e0('0x42')](_0x4c104a[_0x88e0('0x43')]);_0x56dd08[_0x88e0('0x44')]=_[_0x88e0('0x45')](_0x56dd08['model'],_0x56dd08[_0x88e0('0x43')]);_0x213434[_0x88e0('0x46')]=_['intersection'](_0x56dd08[_0x88e0('0x41')],qs[_0x88e0('0x47')](_0x4c104a[_0x88e0('0x43')]['fields']));_0x213434[_0x88e0('0x46')]=_0x213434[_0x88e0('0x46')][_0x88e0('0x48')]?_0x213434['attributes']:_0x56dd08[_0x88e0('0x41')];_0x213434[_0x88e0('0x4b')]=qs[_0x88e0('0x4c')](_0x4c104a[_0x88e0('0x43')][_0x88e0('0x4c')]);_0x213434[_0x88e0('0x4f')]=qs[_0x88e0('0x44')](_[_0x88e0('0x4d')](_0x4c104a[_0x88e0('0x43')],_0x56dd08[_0x88e0('0x44')]));if(_0x4c104a[_0x88e0('0x43')][_0x88e0('0x4e')]){_0x213434[_0x88e0('0x4f')]=_[_0x88e0('0x50')](_0x213434['where'],{'$or':_[_0x88e0('0x3b')](_0x213434[_0x88e0('0x46')],function(_0x568911){var _0x2e85ab={};_0x2e85ab[_0x568911]={'$like':'%'+_0x4c104a[_0x88e0('0x43')][_0x88e0('0x4e')]+'%'};return _0x2e85ab;})});}_0x213434=_[_0x88e0('0x50')]({},_0x213434,_0x4c104a[_0x88e0('0x57')]);return _0x948869['getApplications'](_0x213434);}})[_0x88e0('0x1c')](function(_0xfe5a2){if(_0xfe5a2){_0x25105f=_0xfe5a2['length'];if(!_0x4c104a['query'][_0x88e0('0x49')](_0x88e0('0x4a'))){_0x213434[_0x88e0('0x2c')]=qs[_0x88e0('0x2c')](_0x4c104a[_0x88e0('0x43')][_0x88e0('0x2c')]);_0x213434['offset']=qs['offset'](_0x4c104a['query'][_0x88e0('0x2b')]);}return _0x948869[_0x88e0('0x118')](_0x213434);}})['then'](function(_0x13de75){if(_0x13de75){return _0x13de75?{'count':_0x25105f,'rows':_0x13de75}:null;}})[_0x88e0('0x1c')](respondWithResult(_0x1c02c7,null))[_0x88e0('0x26')](handleError(_0x1c02c7,null));};exports[_0x88e0('0x119')]=function(_0x46746d,_0x15f42d,_0x2624e3){return db[_0x88e0('0x11a')]['find']({'where':{'id':_0x46746d[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x15f42d,null))[_0x88e0('0x1c')](function(_0x5df828){if(_0x5df828){return _0x5df828['addProactiveActions'](_0x46746d['body']['ids'],_[_0x88e0('0xf5')](_0x46746d[_0x88e0('0x60')],['ids','id'])||{});}})[_0x88e0('0x1c')](respondWithResult(_0x15f42d,null))[_0x88e0('0x26')](handleError(_0x15f42d,null));};exports[_0x88e0('0x11b')]=function(_0x244c57,_0x2020d4,_0x524b9b){var _0x3e5e3e={};var _0x4789f6={};var _0x1dbb44;var _0x1788c4;return db[_0x88e0('0x3c')][_0x88e0('0x65')]({'where':{'id':_0x244c57[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x2020d4,null))['then'](function(_0x4dc789){if(_0x4dc789){_0x1dbb44=_0x4dc789;_0x4789f6[_0x88e0('0x41')]=_[_0x88e0('0x42')](db[_0x88e0('0x11c')][_0x88e0('0x3d')]);_0x4789f6['query']=_[_0x88e0('0x42')](_0x244c57[_0x88e0('0x43')]);_0x4789f6[_0x88e0('0x44')]=_[_0x88e0('0x45')](_0x4789f6['model'],_0x4789f6[_0x88e0('0x43')]);_0x3e5e3e[_0x88e0('0x46')]=_[_0x88e0('0x45')](_0x4789f6[_0x88e0('0x41')],qs[_0x88e0('0x47')](_0x244c57[_0x88e0('0x43')][_0x88e0('0x47')]));_0x3e5e3e['attributes']=_0x3e5e3e[_0x88e0('0x46')][_0x88e0('0x48')]?_0x3e5e3e['attributes']:_0x4789f6['model'];_0x3e5e3e['order']=qs[_0x88e0('0x4c')](_0x244c57['query'][_0x88e0('0x4c')]);_0x3e5e3e[_0x88e0('0x4f')]=qs[_0x88e0('0x44')](_[_0x88e0('0x4d')](_0x244c57['query'],_0x4789f6[_0x88e0('0x44')]));if(_0x244c57['query']['filter']){_0x3e5e3e['where']=_['merge'](_0x3e5e3e['where'],{'$or':_[_0x88e0('0x3b')](_0x3e5e3e[_0x88e0('0x46')],function(_0x56d9e3){var _0xb7a26a={};_0xb7a26a[_0x56d9e3]={'$like':'%'+_0x244c57[_0x88e0('0x43')]['filter']+'%'};return _0xb7a26a;})});}_0x3e5e3e=_[_0x88e0('0x50')]({},_0x3e5e3e,_0x244c57[_0x88e0('0x57')]);return _0x1dbb44[_0x88e0('0x11b')](_0x3e5e3e);}})[_0x88e0('0x1c')](function(_0x30d22d){if(_0x30d22d){_0x1788c4=_0x30d22d[_0x88e0('0x48')];if(!_0x244c57[_0x88e0('0x43')][_0x88e0('0x49')](_0x88e0('0x4a'))){_0x3e5e3e[_0x88e0('0x2c')]=qs[_0x88e0('0x2c')](_0x244c57[_0x88e0('0x43')][_0x88e0('0x2c')]);_0x3e5e3e[_0x88e0('0x2b')]=qs[_0x88e0('0x2b')](_0x244c57['query']['offset']);}return _0x1dbb44[_0x88e0('0x11b')](_0x3e5e3e);}})[_0x88e0('0x1c')](function(_0x29bbb3){if(_0x29bbb3){return _0x29bbb3?{'count':_0x1788c4,'rows':_0x29bbb3}:null;}})['then'](respondWithResult(_0x2020d4,null))[_0x88e0('0x26')](handleError(_0x2020d4,null));};exports[_0x88e0('0x11d')]=function(_0x18bc80,_0x11a602,_0x32f70f){var _0x28fa67=_0x18bc80['query'][_0x88e0('0x11e')]==='false'?_0x88e0('0x11f'):_0x88e0('0x120');return db['ChatWebsite'][_0x88e0('0x58')]({'attributes':['id',_0x28fa67],'where':{'id':_0x18bc80['params']['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x11a602,null))[_0x88e0('0x1c')](function(_0x49f26b){if(_0x49f26b){var _0x5b745f=_0x49f26b[_0x28fa67];var _0x46ef73=_0x5b745f&&_0x5b745f[_0x88e0('0x121')]?_0x5b745f[_0x88e0('0x121')]:[];_0x11a602[_0x88e0('0x37')]({'fromKey':_['isNil'](_0x5b745f[_0x88e0('0x122')])?undefined:_0x5b745f[_0x88e0('0x122')],'count':_0x46ef73['length'],'rows':_0x46ef73});}})[_0x88e0('0x26')](handleError(_0x11a602,null));};exports[_0x88e0('0x123')]=function(_0x434ced,_0x367fb0,_0x31c6a6){var _0x1de694={'raw':![],'where':{}};var _0x4f3afa={};var _0x33540c={'count':0x0,'rows':[]};return db[_0x88e0('0x3c')][_0x88e0('0x65')]({'where':{'id':_0x434ced[_0x88e0('0x55')]['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x367fb0,null))[_0x88e0('0x1c')](function(_0x5dd555){if(_0x5dd555){_0x4f3afa['model']=_[_0x88e0('0x42')](db[_0x88e0('0x124')][_0x88e0('0x3d')]);_0x4f3afa[_0x88e0('0x43')]=_[_0x88e0('0x42')](_0x434ced[_0x88e0('0x43')]);_0x4f3afa['filters']=_[_0x88e0('0x45')](_0x4f3afa[_0x88e0('0x41')],_0x4f3afa[_0x88e0('0x43')]);_0x1de694[_0x88e0('0x46')]=_[_0x88e0('0x45')](_0x4f3afa[_0x88e0('0x41')],qs['fields'](_0x434ced['query'][_0x88e0('0x47')]));_0x1de694[_0x88e0('0x46')]=_0x1de694['attributes'][_0x88e0('0x48')]?_0x1de694[_0x88e0('0x46')]:_0x4f3afa[_0x88e0('0x41')];if(!_0x434ced['query']['hasOwnProperty'](_0x88e0('0x4a'))){_0x1de694[_0x88e0('0x2c')]=qs[_0x88e0('0x2c')](_0x434ced['query'][_0x88e0('0x2c')]);_0x1de694['offset']=qs['offset'](_0x434ced[_0x88e0('0x43')][_0x88e0('0x2b')]);}_0x1de694[_0x88e0('0x4b')]=qs[_0x88e0('0x4c')](_0x434ced[_0x88e0('0x43')][_0x88e0('0x4c')]);_0x1de694[_0x88e0('0x4f')]=qs['filters'](_[_0x88e0('0x4d')](_0x434ced['query'],_0x4f3afa[_0x88e0('0x44')]));_0x1de694[_0x88e0('0x4f')][_0x88e0('0x63')]=_0x5dd555['id'];if(_0x434ced[_0x88e0('0x43')][_0x88e0('0x4e')]){_0x1de694[_0x88e0('0x4f')]=_[_0x88e0('0x50')](_0x1de694[_0x88e0('0x4f')],{'$or':_[_0x88e0('0x3b')](_0x1de694[_0x88e0('0x46')],function(_0x583ab4){var _0x4f4802={};_0x4f4802[_0x583ab4]={'$like':'%'+_0x434ced[_0x88e0('0x43')][_0x88e0('0x4e')]+'%'};return _0x4f4802;})});}_0x1de694=_[_0x88e0('0x50')]({},_0x1de694,_0x434ced['options']);return db[_0x88e0('0x124')][_0x88e0('0x2e')]({'where':_0x1de694['where']})['then'](function(_0x510982){_0x33540c[_0x88e0('0x2e')]=_0x510982;if(_0x434ced[_0x88e0('0x43')][_0x88e0('0x56')]){_0x1de694[_0x88e0('0x52')]=[{'all':!![]}];}else{_0x1de694[_0x88e0('0x52')]=[{'model':db['CmContact'],'as':_0x88e0('0x125'),'required':![]},{'model':db[_0x88e0('0xdc')],'as':_0x88e0('0x126'),'required':![]}];}return db[_0x88e0('0x124')]['findAll'](_0x1de694);})['then'](function(_0x1f9331){_0x33540c[_0x88e0('0x54')]=_0x1f9331;return _0x33540c;});}})[_0x88e0('0x1c')](respondWithFilteredResult(_0x367fb0,_0x1de694))['catch'](handleError(_0x367fb0,null));};exports['addAgents']=function(_0x5bf7c6,_0x2e6415,_0x547465){return db['ChatWebsite'][_0x88e0('0x58')]({'where':{'id':_0x5bf7c6[_0x88e0('0x55')]['id']}})['then'](handleEntityNotFound(_0x2e6415,null))[_0x88e0('0x1c')](function(_0xed6927){if(_0xed6927){return _0xed6927['addAgents'](_0x5bf7c6['body'][_0x88e0('0x68')],_[_0x88e0('0xf5')](_0x5bf7c6[_0x88e0('0x60')],['ids','id'])||{})[_0x88e0('0xb3')](function(_0xf44331){for(var _0x55266c=0x0;_0x55266c<_0x5bf7c6[_0x88e0('0x60')][_0x88e0('0x68')][_0x88e0('0x48')];_0x55266c+=0x1){socket[_0x88e0('0x127')]('userChatWebsite:save',{'UserId':Number(_0x5bf7c6[_0x88e0('0x60')][_0x88e0('0x68')][_0x55266c]),'ChatWebsiteId':Number(_0x5bf7c6[_0x88e0('0x55')]['id'])});}return _0xf44331;});}})[_0x88e0('0x1c')](respondWithResult(_0x2e6415,null))[_0x88e0('0x26')](handleError(_0x2e6415,null));};exports[_0x88e0('0x128')]=function(_0x8db96f,_0x12665f,_0x48aa32){return db[_0x88e0('0x3c')][_0x88e0('0x58')]({'where':{'id':_0x8db96f['params']['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x12665f,null))['then'](function(_0x44cf85){if(_0x44cf85){return _0x44cf85[_0x88e0('0x128')](_0x8db96f['query'][_0x88e0('0x68')])['then'](function(){if(_['isArray'](_0x8db96f[_0x88e0('0x43')][_0x88e0('0x68')])){for(var _0x20cf29=0x0;_0x20cf29<_0x8db96f[_0x88e0('0x43')]['ids'][_0x88e0('0x48')];_0x20cf29+=0x1){socket[_0x88e0('0x127')]('userChatWebsite:remove',{'UserId':Number(_0x8db96f['query'][_0x88e0('0x68')][_0x20cf29]),'ChatWebsiteId':Number(_0x8db96f[_0x88e0('0x55')]['id'])});}}else{socket['emit'](_0x88e0('0x129'),{'UserId':Number(_0x8db96f[_0x88e0('0x43')][_0x88e0('0x68')]),'ChatWebsiteId':Number(_0x8db96f[_0x88e0('0x55')]['id'])});}});}})['then'](respondWithStatusCode(_0x12665f,null))[_0x88e0('0x26')](handleError(_0x12665f,null));};exports[_0x88e0('0x12a')]=function(_0x23a431,_0x375f23,_0x340bca){var _0x2040f2={};var _0xa158fc={};var _0x12f04a;var _0x25502c;return db['ChatWebsite']['findOne']({'where':{'id':_0x23a431['params']['id']}})[_0x88e0('0x1c')](handleEntityNotFound(_0x375f23,null))[_0x88e0('0x1c')](function(_0xc4b6f8){if(_0xc4b6f8){_0x12f04a=_0xc4b6f8;_0xa158fc[_0x88e0('0x41')]=_[_0x88e0('0x42')](db[_0x88e0('0xbd')]['rawAttributes']);_0xa158fc[_0x88e0('0x43')]=_['keys'](_0x23a431[_0x88e0('0x43')]);_0xa158fc[_0x88e0('0x44')]=_[_0x88e0('0x45')](_0xa158fc[_0x88e0('0x41')],_0xa158fc[_0x88e0('0x43')]);_0x2040f2[_0x88e0('0x46')]=_['intersection'](_0xa158fc[_0x88e0('0x41')],qs[_0x88e0('0x47')](_0x23a431[_0x88e0('0x43')][_0x88e0('0x47')]));_0x2040f2['attributes']=_0x2040f2['attributes']['length']?_0x2040f2['attributes']:_0xa158fc[_0x88e0('0x41')];_0x2040f2['order']=qs[_0x88e0('0x4c')](_0x23a431[_0x88e0('0x43')][_0x88e0('0x4c')]);_0x2040f2[_0x88e0('0x4f')]=qs['filters'](_[_0x88e0('0x4d')](_0x23a431[_0x88e0('0x43')],_0xa158fc[_0x88e0('0x44')]));if(_0x23a431[_0x88e0('0x43')][_0x88e0('0x4e')]){_0x2040f2['where']=_['merge'](_0x2040f2['where'],{'$or':_[_0x88e0('0x3b')](_0x2040f2[_0x88e0('0x46')],function(_0x15cc8f){var _0x5997be={};_0x5997be[_0x15cc8f]={'$like':'%'+_0x23a431[_0x88e0('0x43')][_0x88e0('0x4e')]+'%'};return _0x5997be;})});}_0x2040f2=_[_0x88e0('0x50')]({},_0x2040f2,_0x23a431[_0x88e0('0x57')]);return _0x12f04a['getAgents'](_0x2040f2);}})[_0x88e0('0x1c')](function(_0x5a5a8d){if(_0x5a5a8d){_0x25502c=_0x5a5a8d[_0x88e0('0x48')];if(!_0x23a431[_0x88e0('0x43')]['hasOwnProperty']('nolimit')){_0x2040f2[_0x88e0('0x2c')]=qs['limit'](_0x23a431[_0x88e0('0x43')][_0x88e0('0x2c')]);_0x2040f2[_0x88e0('0x2b')]=qs[_0x88e0('0x2b')](_0x23a431[_0x88e0('0x43')][_0x88e0('0x2b')]);}return _0x12f04a[_0x88e0('0x12a')](_0x2040f2);}})[_0x88e0('0x1c')](function(_0x5782af){if(_0x5782af){return _0x5782af?{'count':_0x25502c,'rows':_0x5782af}:null;}})[_0x88e0('0x1c')](respondWithResult(_0x375f23,null))[_0x88e0('0x26')](handleError(_0x375f23,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83d3=['hook','exports','events','../../mysqldb','ChatWebsite','setMaxListeners','save','remove','emit'];(function(_0x5147e7,_0x514475){var _0x36a96e=function(_0x51be9d){while(--_0x51be9d){_0x5147e7['push'](_0x5147e7['shift']());}};_0x36a96e(++_0x514475);}(_0x83d3,0x17c));var _0x383d=function(_0xf3c843,_0x8ff24e){_0xf3c843=_0xf3c843-0x0;var _0x3191c6=_0x83d3[_0xf3c843];return _0x3191c6;};'use strict';var EventEmitter=require(_0x383d('0x0'));var ChatWebsite=require(_0x383d('0x1'))['db'][_0x383d('0x2')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x383d('0x3')](0x0);var events={'afterCreate':_0x383d('0x4'),'afterUpdate':'update','afterDestroy':_0x383d('0x5')};function emitEvent(_0x1184a6){return function(_0x31cbfc,_0x202ffc,_0x52adf4){ChatWebsiteEvents[_0x383d('0x6')](_0x1184a6+':'+_0x31cbfc['id'],_0x31cbfc);ChatWebsiteEvents['emit'](_0x1184a6,_0x31cbfc);_0x52adf4(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatWebsite[_0x383d('0x7')](e,emitEvent(event));}}module[_0x383d('0x8')]=ChatWebsiteEvents;
\ No newline at end of file
+var _0x3b75=['events','../../mysqldb','ChatWebsite','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x11005e,_0x20c3d2){var _0x29338f=function(_0x3384e9){while(--_0x3384e9){_0x11005e['push'](_0x11005e['shift']());}};_0x29338f(++_0x20c3d2);}(_0x3b75,0x144));var _0x53b7=function(_0x4599b6,_0x40c254){_0x4599b6=_0x4599b6-0x0;var _0x2e014c=_0x3b75[_0x4599b6];return _0x2e014c;};'use strict';var EventEmitter=require(_0x53b7('0x0'));var ChatWebsite=require(_0x53b7('0x1'))['db'][_0x53b7('0x2')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x53b7('0x3')](0x0);var events={'afterCreate':_0x53b7('0x4'),'afterUpdate':_0x53b7('0x5'),'afterDestroy':_0x53b7('0x6')};function emitEvent(_0x145e6c){return function(_0x5a0a4a,_0x5c678a,_0xe75348){ChatWebsiteEvents[_0x53b7('0x7')](_0x145e6c+':'+_0x5a0a4a['id'],_0x5a0a4a);ChatWebsiteEvents[_0x53b7('0x7')](_0x145e6c,_0x5a0a4a);_0xe75348(null);};}for(var e in events){if(events[_0x53b7('0x8')](e)){var event=events[e];ChatWebsite['hook'](e,emitEvent(event));}}module['exports']=ChatWebsiteEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3b0=['chat_websites','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','./chatWebsite.attributes','ChatWebsite'];(function(_0x292aa1,_0x4e34b6){var _0x4e61f1=function(_0x3f4640){while(--_0x3f4640){_0x292aa1['push'](_0x292aa1['shift']());}};_0x4e61f1(++_0x4e34b6);}(_0xa3b0,0x1e1));var _0x0a3b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa3b0[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x0a3b('0x0'));var util=require('util');var logger=require(_0x0a3b('0x1'))('api');var moment=require(_0x0a3b('0x2'));var BPromise=require(_0x0a3b('0x3'));var rp=require(_0x0a3b('0x4'));var fs=require('fs');var path=require(_0x0a3b('0x5'));var rimraf=require(_0x0a3b('0x6'));var config=require('../../config/environment');var attributes=require(_0x0a3b('0x7'));module['exports']=function(_0x226437,_0x3b06c4){return _0x226437['define'](_0x0a3b('0x8'),attributes,{'tableName':_0x0a3b('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x993f=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./chatWebsite.attributes','exports','define','chat_websites','lodash'];(function(_0x28f172,_0xcaca0b){var _0x342ad6=function(_0x49ba72){while(--_0x49ba72){_0x28f172['push'](_0x28f172['shift']());}};_0x342ad6(++_0xcaca0b);}(_0x993f,0xb3));var _0xf993=function(_0x47027e,_0x2004b8){_0x47027e=_0x47027e-0x0;var _0x3ceead=_0x993f[_0x47027e];return _0x3ceead;};'use strict';var _=require(_0xf993('0x0'));var util=require('util');var logger=require(_0xf993('0x1'))(_0xf993('0x2'));var moment=require(_0xf993('0x3'));var BPromise=require(_0xf993('0x4'));var rp=require(_0xf993('0x5'));var fs=require('fs');var path=require(_0xf993('0x6'));var rimraf=require('rimraf');var config=require(_0xf993('0x7'));var attributes=require(_0xf993('0x8'));module[_0xf993('0x9')]=function(_0x1fe085,_0x45010e){return _0x1fe085[_0xf993('0xa')]('ChatWebsite',attributes,{'tableName':_0xf993('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc41=['code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./chatWebsite.socket','register','request','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x38a7ac,_0x45514b){var _0x53061a=function(_0x1d2469){while(--_0x1d2469){_0x38a7ac['push'](_0x38a7ac['shift']());}};_0x53061a(++_0x45514b);}(_0xcc41,0x160));var _0x1cc4=function(_0xc890e2,_0x18a3e1){_0xc890e2=_0xc890e2-0x0;var _0x581dff=_0xcc41[_0xc890e2];return _0x581dff;};'use strict';var _=require('lodash');var util=require(_0x1cc4('0x0'));var moment=require(_0x1cc4('0x1'));var BPromise=require(_0x1cc4('0x2'));var rs=require(_0x1cc4('0x3'));var fs=require('fs');var Redis=require(_0x1cc4('0x4'));var db=require(_0x1cc4('0x5'))['db'];var utils=require(_0x1cc4('0x6'));var logger=require(_0x1cc4('0x7'))('rpc');var config=require(_0x1cc4('0x8'));var jayson=require(_0x1cc4('0x9'));var client=jayson['client'][_0x1cc4('0xa')]({'port':0x232a});config['redis']=_['defaults'](config[_0x1cc4('0xb')],{'host':_0x1cc4('0xc'),'port':0x18eb});var socket=require(_0x1cc4('0xd'))(new Redis(config[_0x1cc4('0xb')]));require(_0x1cc4('0xe'))[_0x1cc4('0xf')](socket);function respondWithRpcPromise(_0x2605b9,_0x294493,_0x2e0bb8){return new BPromise(function(_0xe3a783,_0xe6ebb6){return client[_0x1cc4('0x10')](_0x2605b9,_0x2e0bb8)[_0x1cc4('0x11')](function(_0x40a7c2){logger[_0x1cc4('0x12')](_0x1cc4('0x13'),_0x294493,_0x1cc4('0x14'));logger[_0x1cc4('0x15')](_0x1cc4('0x16'),_0x294493,_0x1cc4('0x14'),JSON[_0x1cc4('0x17')](_0x40a7c2));if(_0x40a7c2[_0x1cc4('0x18')]){if(_0x40a7c2[_0x1cc4('0x18')][_0x1cc4('0x19')]===0x1f4){logger[_0x1cc4('0x18')]('ChatWebsite,\x20%s,\x20%s',_0x294493,_0x40a7c2['error'][_0x1cc4('0x1a')]);return _0xe6ebb6(_0x40a7c2['error']['message']);}logger[_0x1cc4('0x18')](_0x1cc4('0x13'),_0x294493,_0x40a7c2[_0x1cc4('0x18')][_0x1cc4('0x1a')]);return _0xe3a783(_0x40a7c2[_0x1cc4('0x18')][_0x1cc4('0x1a')]);}else{logger[_0x1cc4('0x12')](_0x1cc4('0x13'),_0x294493,_0x1cc4('0x14'));_0xe3a783(_0x40a7c2[_0x1cc4('0x1b')]['message']);}})[_0x1cc4('0x1c')](function(_0x2f5eec){logger[_0x1cc4('0x18')](_0x1cc4('0x13'),_0x294493,_0x2f5eec);_0xe6ebb6(_0x2f5eec);});});}
\ No newline at end of file
+var _0xe924=['redis','defaults','socket.io-emitter','./chatWebsite.socket','register','info','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatWebsite,\x20%s,\x20%s','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x31d646,_0x1d7f6b){var _0x3d1d20=function(_0x5bb86f){while(--_0x5bb86f){_0x31d646['push'](_0x31d646['shift']());}};_0x3d1d20(++_0x1d7f6b);}(_0xe924,0xf0));var _0x4e92=function(_0x4fa717,_0x4dcc12){_0x4fa717=_0x4fa717-0x0;var _0x18adbd=_0xe924[_0x4fa717];return _0x18adbd;};'use strict';var _=require(_0x4e92('0x0'));var util=require('util');var moment=require(_0x4e92('0x1'));var BPromise=require(_0x4e92('0x2'));var rs=require(_0x4e92('0x3'));var fs=require('fs');var Redis=require(_0x4e92('0x4'));var db=require(_0x4e92('0x5'))['db'];var utils=require(_0x4e92('0x6'));var logger=require(_0x4e92('0x7'))(_0x4e92('0x8'));var config=require(_0x4e92('0x9'));var jayson=require(_0x4e92('0xa'));var client=jayson[_0x4e92('0xb')]['http']({'port':0x232a});config[_0x4e92('0xc')]=_[_0x4e92('0xd')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x4e92('0xe'))(new Redis(config['redis']));require(_0x4e92('0xf'))[_0x4e92('0x10')](socket);function respondWithRpcPromise(_0x57b010,_0x24ad95,_0x12a2bc){return new BPromise(function(_0xe84d65,_0xe1e3b6){return client['request'](_0x57b010,_0x12a2bc)['then'](function(_0x570917){logger[_0x4e92('0x11')]('ChatWebsite,\x20%s,\x20%s',_0x24ad95,_0x4e92('0x12'));logger[_0x4e92('0x13')](_0x4e92('0x14'),_0x24ad95,_0x4e92('0x12'),JSON[_0x4e92('0x15')](_0x570917));if(_0x570917[_0x4e92('0x16')]){if(_0x570917[_0x4e92('0x16')][_0x4e92('0x17')]===0x1f4){logger[_0x4e92('0x16')](_0x4e92('0x18'),_0x24ad95,_0x570917[_0x4e92('0x16')][_0x4e92('0x19')]);return _0xe1e3b6(_0x570917[_0x4e92('0x16')][_0x4e92('0x19')]);}logger[_0x4e92('0x16')]('ChatWebsite,\x20%s,\x20%s',_0x24ad95,_0x570917['error']['message']);return _0xe84d65(_0x570917['error'][_0x4e92('0x19')]);}else{logger['info'](_0x4e92('0x18'),_0x24ad95,_0x4e92('0x12'));_0xe84d65(_0x570917[_0x4e92('0x1a')][_0x4e92('0x19')]);}})[_0x4e92('0x1b')](function(_0x3e9d77){logger['error'](_0x4e92('0x18'),_0x24ad95,_0x3e9d77);_0xe1e3b6(_0x3e9d77);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc428=['remove','update','emit','removeListener','length','./chatWebsite.events'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0xc428,0x77));var _0x8c42=function(_0x26c9d3,_0x129111){_0x26c9d3=_0x26c9d3-0x0;var _0x10f619=_0xc428[_0x26c9d3];return _0x10f619;};'use strict';var ChatWebsiteEvents=require(_0x8c42('0x0'));var events=['save',_0x8c42('0x1'),_0x8c42('0x2')];function createListener(_0x276fcc,_0x487534){return function(_0x584728){_0x487534[_0x8c42('0x3')](_0x276fcc,_0x584728);};}function removeListener(_0x1f40d,_0x4d1720){return function(){ChatWebsiteEvents[_0x8c42('0x4')](_0x1f40d,_0x4d1720);};}exports['register']=function(_0x54ac88){for(var _0x15c5a5=0x0,_0x398948=events[_0x8c42('0x5')];_0x15c5a5<_0x398948;_0x15c5a5++){var _0x13800a=events[_0x15c5a5];var _0x1ab4b3=createListener('chatWebsite:'+_0x13800a,_0x54ac88);ChatWebsiteEvents['on'](_0x13800a,_0x1ab4b3);}};
\ No newline at end of file
+var _0xc139=['removeListener','register','chatWebsite:','./chatWebsite.events','save','remove','update','emit'];(function(_0x32fdfc,_0x1c51a5){var _0x570fa2=function(_0x2de97c){while(--_0x2de97c){_0x32fdfc['push'](_0x32fdfc['shift']());}};_0x570fa2(++_0x1c51a5);}(_0xc139,0xcb));var _0x9c13=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc139[_0x3dd15e];return _0x231fd0;};'use strict';var ChatWebsiteEvents=require(_0x9c13('0x0'));var events=[_0x9c13('0x1'),_0x9c13('0x2'),_0x9c13('0x3')];function createListener(_0x2e8b17,_0x69a13c){return function(_0x1d0579){_0x69a13c[_0x9c13('0x4')](_0x2e8b17,_0x1d0579);};}function removeListener(_0xc0d642,_0x161413){return function(){ChatWebsiteEvents[_0x9c13('0x5')](_0xc0d642,_0x161413);};}exports[_0x9c13('0x6')]=function(_0x43a365){for(var _0x43a99b=0x0,_0x2175bb=events['length'];_0x43a99b<_0x2175bb;_0x43a99b++){var _0x3385c6=events[_0x43a99b];var _0x19ca6f=createListener(_0x9c13('0x7')+_0x3385c6,_0x43a365);ChatWebsiteEvents['on'](_0x3385c6,_0x19ca6f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x919a=['%s-%s','now','originalname','post','file','addLogo','server/files/images/avatars/','single','addAvatar','addCustomerAvatar','addSystemAvatar','/:id/notify','notify','server/files','attachments','offline-chat','ensureDir','replace','extname','/:id/offline','any','addInteraction','addApplications','/:id/proactive_actions','addProactiveActions','delete','removeDispositions','removeAnswers','removeAgents','util','path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatWebsite.controller','get','isAuthenticated','index','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/logo','/:id/avatar','getAvatar','/:id/customer_avatar','/:id/system_avatar','getSystemAvatar','/:id/interactions','getInteractions','/:id/snippet','getSnippet','/:id/applications','getApplications','getProactiveActions','/:id/offline_messages','/:id/users','getAgents','addDisposition','diskStorage','join','root','server/files/images/logos/','format'];(function(_0x1f6691,_0x3a3d46){var _0xf786b6=function(_0x2afbdb){while(--_0x2afbdb){_0x1f6691['push'](_0x1f6691['shift']());}};_0xf786b6(++_0x3a3d46);}(_0x919a,0x171));var _0xa919=function(_0x173441,_0x26b0d9){_0x173441=_0x173441-0x0;var _0x2423a8=_0x919a[_0x173441];return _0x2423a8;};'use strict';var multer=require('multer');var util=require(_0xa919('0x0'));var path=require(_0xa919('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0xa919('0x2'));var auth=require(_0xa919('0x3'));var interaction=require(_0xa919('0x4'));var config=require(_0xa919('0x5'));var controller=require(_0xa919('0x6'));router[_0xa919('0x7')]('/',auth[_0xa919('0x8')](),controller[_0xa919('0x9')]);router[_0xa919('0x7')]('/describe',auth['isAuthenticated'](),controller[_0xa919('0xa')]);router[_0xa919('0x7')](_0xa919('0xb'),auth['isAuthenticated'](),controller[_0xa919('0xc')]);router[_0xa919('0x7')](_0xa919('0xd'),auth[_0xa919('0x8')](),controller[_0xa919('0xe')]);router['get'](_0xa919('0xf'),auth[_0xa919('0x8')](),controller[_0xa919('0x10')]);router[_0xa919('0x7')](_0xa919('0x11'),controller['getLogo']);router['get'](_0xa919('0x12'),controller[_0xa919('0x13')]);router[_0xa919('0x7')](_0xa919('0x14'),controller['getCustomerAvatar']);router[_0xa919('0x7')](_0xa919('0x15'),controller[_0xa919('0x16')]);router[_0xa919('0x7')](_0xa919('0x17'),auth[_0xa919('0x8')](),controller[_0xa919('0x18')]);router['get'](_0xa919('0x19'),controller[_0xa919('0x1a')]);router[_0xa919('0x7')](_0xa919('0x1b'),auth['isAuthenticated'](),controller[_0xa919('0x1c')]);router[_0xa919('0x7')]('/:id/proactive_actions',auth[_0xa919('0x8')](),controller[_0xa919('0x1d')]);router[_0xa919('0x7')]('/:id/fields',controller['getFields']);router[_0xa919('0x7')](_0xa919('0x1e'),auth[_0xa919('0x8')](),controller['getOfflineMessages']);router['get'](_0xa919('0x1f'),auth['isAuthenticated'](),controller[_0xa919('0x20')]);router['post']('/',auth[_0xa919('0x8')](),controller['create']);router['post'](_0xa919('0xd'),auth['isAuthenticated'](),controller[_0xa919('0x21')]);router['post'](_0xa919('0xf'),auth['isAuthenticated'](),controller['addAnswer']);var upload=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x16537e,_0x24e8a0,_0x39b89d){_0x39b89d(null,path[_0xa919('0x23')](config[_0xa919('0x24')],_0xa919('0x25')));},'filename':function(_0x580edd,_0x3386b0,_0x227093){_0x227093(null,util[_0xa919('0x26')](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x3386b0[_0xa919('0x29')]));}})});router[_0xa919('0x2a')]('/:id/logo',upload['single'](_0xa919('0x2b')),controller[_0xa919('0x2c')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x27e676,_0x9e054,_0x2710cc){_0x2710cc(null,path[_0xa919('0x23')](config['root'],_0xa919('0x2d')));},'filename':function(_0x396eff,_0x2a384c,_0x95fdf7){_0x95fdf7(null,util['format'](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x2a384c[_0xa919('0x29')]));}})});router[_0xa919('0x2a')](_0xa919('0x12'),upload[_0xa919('0x2e')](_0xa919('0x2b')),controller[_0xa919('0x2f')]);var upload=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x372b3c,_0x46a0a2,_0x4b7928){_0x4b7928(null,path['join'](config[_0xa919('0x24')],_0xa919('0x2d')));},'filename':function(_0x3a6485,_0x461d4e,_0x18b8e6){_0x18b8e6(null,util['format'](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x461d4e[_0xa919('0x29')]));}})});router[_0xa919('0x2a')]('/:id/customer_avatar',upload['single']('file'),controller[_0xa919('0x30')]);var upload=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x57ace1,_0x363a63,_0x5b94b1){_0x5b94b1(null,path[_0xa919('0x23')](config[_0xa919('0x24')],_0xa919('0x2d')));},'filename':function(_0x111955,_0x4c13ae,_0x4a942f){_0x4a942f(null,util['format'](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x4c13ae[_0xa919('0x29')]));}})});router['post'](_0xa919('0x15'),upload['single'](_0xa919('0x2b')),controller[_0xa919('0x31')]);router['post'](_0xa919('0x32'),controller[_0xa919('0x33')]);const offlineUploadMulter=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x203361,_0x81dc44,_0x2bdac4){const _0x50c00b=path['join'](config[_0xa919('0x24')],_0xa919('0x34'),_0xa919('0x35'),_0xa919('0x36'));fs_extra[_0xa919('0x37')](_0x50c00b,function(){_0x2bdac4(null,_0x50c00b);});},'filename':function(_0x2148fa,_0x374873,_0x334110){const _0x2ba4c7=_0x374873[_0xa919('0x29')][_0xa919('0x38')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0xbfbb7f=path[_0xa919('0x39')](_0x2ba4c7);const _0x2eaf19=Date[_0xa919('0x28')]()+'-'+_0x2ba4c7[_0xa919('0x38')](_0xbfbb7f,'')+_0xbfbb7f;_0x334110(null,_0x2eaf19);}})});router['post'](_0xa919('0x3a'),offlineUploadMulter[_0xa919('0x3b')](),controller['offline']);router['post']('/:id/interactions',auth[_0xa919('0x8')](),controller[_0xa919('0x3c')]);router[_0xa919('0x2a')](_0xa919('0x1b'),auth[_0xa919('0x8')](),controller[_0xa919('0x3d')]);router['post'](_0xa919('0x3e'),auth['isAuthenticated'](),controller[_0xa919('0x3f')]);router[_0xa919('0x2a')](_0xa919('0x1f'),auth['isAuthenticated'](),controller['addAgents']);router['put'](_0xa919('0xb'),auth['isAuthenticated'](),controller['update']);router[_0xa919('0x40')](_0xa919('0xb'),auth['isAuthenticated'](),controller['destroy']);router[_0xa919('0x40')](_0xa919('0xd'),auth[_0xa919('0x8')](),controller[_0xa919('0x41')]);router[_0xa919('0x40')](_0xa919('0xf'),auth['isAuthenticated'](),controller[_0xa919('0x42')]);router[_0xa919('0x40')]('/:id/users',auth[_0xa919('0x8')](),controller[_0xa919('0x43')]);module['exports']=router;
\ No newline at end of file
+var _0x8f0a=['%s-%s','/:id/notify','notify','offline-chat','extname','replace','/:id/offline','any','offline','addApplications','addProactiveActions','/:id/users','addAgents','put','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','util','path','connect-timeout','express','Router','../../components/interaction/service','./chatWebsite.controller','index','get','/describe','isAuthenticated','/:id','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/logo','getLogo','getAvatar','/:id/customer_avatar','getCustomerAvatar','/:id/system_avatar','/:id/interactions','/:id/snippet','/:id/applications','getApplications','getProactiveActions','/:id/fields','getFields','getOfflineMessages','getAgents','post','create','addDisposition','addAnswer','diskStorage','root','server/files/images/logos/','now','originalname','single','file','addLogo','join','server/files/images/avatars/','/:id/avatar','format'];(function(_0x507403,_0x3f954d){var _0x1327c=function(_0x2aea1b){while(--_0x2aea1b){_0x507403['push'](_0x507403['shift']());}};_0x1327c(++_0x3f954d);}(_0x8f0a,0x120));var _0xa8f0=function(_0x1064bc,_0x206f12){_0x1064bc=_0x1064bc-0x0;var _0x5edc45=_0x8f0a[_0x1064bc];return _0x5edc45;};'use strict';var multer=require('multer');var util=require(_0xa8f0('0x0'));var path=require(_0xa8f0('0x1'));var timeout=require(_0xa8f0('0x2'));var express=require(_0xa8f0('0x3'));var router=express[_0xa8f0('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xa8f0('0x5'));var config=require('../../config/environment');var controller=require(_0xa8f0('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0xa8f0('0x7')]);router[_0xa8f0('0x8')](_0xa8f0('0x9'),auth[_0xa8f0('0xa')](),controller['describe']);router[_0xa8f0('0x8')](_0xa8f0('0xb'),auth[_0xa8f0('0xa')](),controller['show']);router['get'](_0xa8f0('0xc'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0xd')]);router[_0xa8f0('0x8')](_0xa8f0('0xe'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0xf')]);router[_0xa8f0('0x8')](_0xa8f0('0x10'),controller[_0xa8f0('0x11')]);router[_0xa8f0('0x8')]('/:id/avatar',controller[_0xa8f0('0x12')]);router['get'](_0xa8f0('0x13'),controller[_0xa8f0('0x14')]);router[_0xa8f0('0x8')](_0xa8f0('0x15'),controller['getSystemAvatar']);router['get'](_0xa8f0('0x16'),auth[_0xa8f0('0xa')](),controller['getInteractions']);router['get'](_0xa8f0('0x17'),controller['getSnippet']);router[_0xa8f0('0x8')](_0xa8f0('0x18'),auth['isAuthenticated'](),controller[_0xa8f0('0x19')]);router[_0xa8f0('0x8')]('/:id/proactive_actions',auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x1a')]);router['get'](_0xa8f0('0x1b'),controller[_0xa8f0('0x1c')]);router[_0xa8f0('0x8')]('/:id/offline_messages',auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x1d')]);router[_0xa8f0('0x8')]('/:id/users',auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x1e')]);router[_0xa8f0('0x1f')]('/',auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x20')]);router['post'](_0xa8f0('0xc'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x21')]);router[_0xa8f0('0x1f')](_0xa8f0('0xe'),auth['isAuthenticated'](),controller[_0xa8f0('0x22')]);var upload=multer({'storage':multer[_0xa8f0('0x23')]({'destination':function(_0x52c23f,_0x576613,_0x45acc8){_0x45acc8(null,path['join'](config[_0xa8f0('0x24')],_0xa8f0('0x25')));},'filename':function(_0x24303f,_0x2ef08f,_0x574dae){_0x574dae(null,util['format']('%s-%s',Date[_0xa8f0('0x26')](),_0x2ef08f[_0xa8f0('0x27')]));}})});router['post'](_0xa8f0('0x10'),upload[_0xa8f0('0x28')](_0xa8f0('0x29')),controller[_0xa8f0('0x2a')]);var upload=multer({'storage':multer[_0xa8f0('0x23')]({'destination':function(_0x2be6ca,_0x52bb67,_0x4dea36){_0x4dea36(null,path[_0xa8f0('0x2b')](config[_0xa8f0('0x24')],_0xa8f0('0x2c')));},'filename':function(_0x43d740,_0x5c8d97,_0x5af185){_0x5af185(null,util['format']('%s-%s',Date[_0xa8f0('0x26')](),_0x5c8d97['originalname']));}})});router[_0xa8f0('0x1f')](_0xa8f0('0x2d'),upload['single'](_0xa8f0('0x29')),controller['addAvatar']);var upload=multer({'storage':multer[_0xa8f0('0x23')]({'destination':function(_0xd8a69b,_0x4a8fc3,_0x4f4e2d){_0x4f4e2d(null,path[_0xa8f0('0x2b')](config[_0xa8f0('0x24')],_0xa8f0('0x2c')));},'filename':function(_0xee11f5,_0x30955a,_0x81486c){_0x81486c(null,util[_0xa8f0('0x2e')](_0xa8f0('0x2f'),Date[_0xa8f0('0x26')](),_0x30955a[_0xa8f0('0x27')]));}})});router[_0xa8f0('0x1f')](_0xa8f0('0x13'),upload[_0xa8f0('0x28')]('file'),controller['addCustomerAvatar']);var upload=multer({'storage':multer[_0xa8f0('0x23')]({'destination':function(_0x4b470f,_0x1a286a,_0x29694e){_0x29694e(null,path[_0xa8f0('0x2b')](config['root'],_0xa8f0('0x2c')));},'filename':function(_0x5d3eca,_0x1957e7,_0x25e723){_0x25e723(null,util[_0xa8f0('0x2e')]('%s-%s',Date[_0xa8f0('0x26')](),_0x1957e7['originalname']));}})});router[_0xa8f0('0x1f')](_0xa8f0('0x15'),upload[_0xa8f0('0x28')](_0xa8f0('0x29')),controller['addSystemAvatar']);router[_0xa8f0('0x1f')](_0xa8f0('0x30'),controller[_0xa8f0('0x31')]);const offlineUploadMulter=multer({'storage':multer[_0xa8f0('0x23')]({'destination':function(_0x22e789,_0x3d0350,_0x8a4719){const _0x3c9bda=path['join'](config['root'],'server/files','attachments',_0xa8f0('0x32'));fs_extra['ensureDir'](_0x3c9bda,function(){_0x8a4719(null,_0x3c9bda);});},'filename':function(_0x3392e6,_0x6af2a4,_0x116c82){const _0x1cc6c8=_0x6af2a4['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x46dee6=path[_0xa8f0('0x33')](_0x1cc6c8);const _0x11bb7f=Date[_0xa8f0('0x26')]()+'-'+_0x1cc6c8[_0xa8f0('0x34')](_0x46dee6,'')+_0x46dee6;_0x116c82(null,_0x11bb7f);}})});router['post'](_0xa8f0('0x35'),offlineUploadMulter[_0xa8f0('0x36')](),controller[_0xa8f0('0x37')]);router['post'](_0xa8f0('0x16'),auth[_0xa8f0('0xa')](),controller['addInteraction']);router[_0xa8f0('0x1f')](_0xa8f0('0x18'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x38')]);router[_0xa8f0('0x1f')]('/:id/proactive_actions',auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x39')]);router[_0xa8f0('0x1f')](_0xa8f0('0x3a'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x3b')]);router[_0xa8f0('0x3c')](_0xa8f0('0xb'),auth[_0xa8f0('0xa')](),controller['update']);router['delete'](_0xa8f0('0xb'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x3d')]);router[_0xa8f0('0x3e')](_0xa8f0('0xc'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x3f')]);router[_0xa8f0('0x3e')]('/:id/canned_answers',auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x40')]);router[_0xa8f0('0x3e')](_0xa8f0('0x3a'),auth[_0xa8f0('0xa')](),controller[_0xa8f0('0x41')]);module[_0xa8f0('0x42')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe626=['ENUM','Google','sequelize','exports','STRING'];(function(_0x315b01,_0x583ac1){var _0x37c9c4=function(_0x4eb7b5){while(--_0x4eb7b5){_0x315b01['push'](_0x315b01['shift']());}};_0x37c9c4(++_0x583ac1);}(_0xe626,0x9d));var _0x6e62=function(_0x2eebdd,_0x49fa7b){_0x2eebdd=_0x2eebdd-0x0;var _0xd1cbb4=_0xe626[_0x2eebdd];return _0xd1cbb4;};'use strict';var Sequelize=require(_0x6e62('0x0'));module[_0x6e62('0x1')]={'name':{'type':Sequelize[_0x6e62('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0x6e62('0x3')]('AmazonAWS',_0x6e62('0x4')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0x6e62('0x2')]},'data2':{'type':Sequelize[_0x6e62('0x2')]}};
\ No newline at end of file
+var _0x870d=['AmazonAWS','Google','exports','STRING','ENUM'];(function(_0x419fe4,_0x58b271){var _0x22837c=function(_0x4fc713){while(--_0x4fc713){_0x419fe4['push'](_0x419fe4['shift']());}};_0x22837c(++_0x58b271);}(_0x870d,0xde));var _0xd870=function(_0x1ddf90,_0x599744){_0x1ddf90=_0x1ddf90-0x0;var _0x131161=_0x870d[_0x1ddf90];return _0x131161;};'use strict';var Sequelize=require('sequelize');module[_0xd870('0x0')]={'name':{'type':Sequelize[_0xd870('0x1')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0xd870('0x2')](_0xd870('0x3'),_0xd870('0x4')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0xd870('0x1')]},'data2':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['update','catch','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','save','destroy','then','error','name','send','index','map','CloudProvider','rawAttributes','fieldName','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows','show','params','find','create','body'];(function(_0x168342,_0x62b1cd){var _0x5ebd02=function(_0x5619be){while(--_0x5619be){_0x168342['push'](_0x168342['shift']());}};_0x5ebd02(++_0x62b1cd);}(_0x5f66,0x1a0));var _0x65f6=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x5f66[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x65f6('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x65f6('0x1'));var rp=require(_0x65f6('0x2'));var moment=require(_0x65f6('0x3'));var BPromise=require(_0x65f6('0x4'));var Mustache=require(_0x65f6('0x5'));var util=require('util');var path=require(_0x65f6('0x6'));var sox=require('sox');var csv=require(_0x65f6('0x7'));var ejs=require(_0x65f6('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x65f6('0x9'));var crypto=require(_0x65f6('0xa'));var jsforce=require(_0x65f6('0xb'));var deskjs=require(_0x65f6('0xc'));var toCsv=require(_0x65f6('0x7'));var querystring=require(_0x65f6('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x65f6('0xe'));var qs=require(_0x65f6('0xf'));var as=require(_0x65f6('0x10'));var hardwareService=require(_0x65f6('0x11'));var logger=require('../../config/logger')(_0x65f6('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x65f6('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x419819,_0x4862a5){_0x4862a5=_0x4862a5||0xcc;return function(_0x2f964a){if(_0x2f964a){return _0x419819[_0x65f6('0x14')](_0x4862a5);}return _0x419819[_0x65f6('0x15')](_0x4862a5)[_0x65f6('0x16')]();};}function respondWithResult(_0x369f96,_0x1d29fd){_0x1d29fd=_0x1d29fd||0xc8;return function(_0x44144b){if(_0x44144b){return _0x369f96[_0x65f6('0x15')](_0x1d29fd)[_0x65f6('0x17')](_0x44144b);}};}function respondWithFilteredResult(_0x3440af,_0x59154e){return function(_0x19b9ff){if(_0x19b9ff){var _0x49a913=typeof _0x59154e['offset']===_0x65f6('0x18')&&typeof _0x59154e[_0x65f6('0x19')]===_0x65f6('0x18');var _0x1c955c=_0x19b9ff[_0x65f6('0x1a')];var _0x1f974c=_0x49a913?0x0:_0x59154e[_0x65f6('0x1b')];var _0x18380e=_0x49a913?_0x19b9ff['count']:_0x59154e['offset']+_0x59154e[_0x65f6('0x19')];var _0x5b4055;if(_0x18380e>=_0x1c955c){_0x18380e=_0x1c955c;_0x5b4055=0xc8;}else{_0x5b4055=0xce;}_0x3440af['status'](_0x5b4055);return _0x3440af['set'](_0x65f6('0x1c'),_0x1f974c+'-'+_0x18380e+'/'+_0x1c955c)[_0x65f6('0x17')](_0x19b9ff);}return null;};}function patchUpdates(_0x5114a4){return function(_0x39e19f){try{jsonpatch[_0x65f6('0x1d')](_0x39e19f,_0x5114a4,!![]);}catch(_0xbee6a4){return BPromise[_0x65f6('0x1e')](_0xbee6a4);}return _0x39e19f[_0x65f6('0x1f')]();};}function saveUpdates(_0xc139c2,_0x581374){return function(_0x197a49){if(_0x197a49){return _0x197a49['update'](_0xc139c2)['then'](function(_0x212247){return _0x212247;});}return null;};}function removeEntity(_0xd173f4,_0x524e42){return function(_0x1eeaaa){if(_0x1eeaaa){return _0x1eeaaa[_0x65f6('0x20')]()[_0x65f6('0x21')](function(){_0xd173f4[_0x65f6('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9d7bb0,_0x59ea32){return function(_0x20a161){if(!_0x20a161){_0x9d7bb0['sendStatus'](0x194);}return _0x20a161;};}function handleError(_0x5cb131,_0x4fde2f){_0x4fde2f=_0x4fde2f||0x1f4;return function(_0x29abdb){logger[_0x65f6('0x22')](_0x29abdb['stack']);if(_0x29abdb[_0x65f6('0x23')]){delete _0x29abdb[_0x65f6('0x23')];}_0x5cb131['status'](_0x4fde2f)[_0x65f6('0x24')](_0x29abdb);};}exports[_0x65f6('0x25')]=function(_0x28d0df,_0x559330){var _0x4ac04b={},_0x488d36={},_0x266cfe={'count':0x0,'rows':[]};var _0x3c032f=_[_0x65f6('0x26')](db[_0x65f6('0x27')][_0x65f6('0x28')],function(_0x14a387){return{'name':_0x14a387[_0x65f6('0x29')],'type':_0x14a387['type']['key']};});_0x488d36[_0x65f6('0x2a')]=_[_0x65f6('0x26')](_0x3c032f,'name');_0x488d36['query']=_[_0x65f6('0x2b')](_0x28d0df[_0x65f6('0x2c')]);_0x488d36[_0x65f6('0x2d')]=_[_0x65f6('0x2e')](_0x488d36[_0x65f6('0x2a')],_0x488d36[_0x65f6('0x2c')]);_0x4ac04b['attributes']=_[_0x65f6('0x2e')](_0x488d36[_0x65f6('0x2a')],qs[_0x65f6('0x2f')](_0x28d0df['query'][_0x65f6('0x2f')]));_0x4ac04b[_0x65f6('0x30')]=_0x4ac04b[_0x65f6('0x30')][_0x65f6('0x31')]?_0x4ac04b[_0x65f6('0x30')]:_0x488d36[_0x65f6('0x2a')];if(!_0x28d0df['query'][_0x65f6('0x32')](_0x65f6('0x33'))){_0x4ac04b['limit']=qs[_0x65f6('0x19')](_0x28d0df['query'][_0x65f6('0x19')]);_0x4ac04b['offset']=qs[_0x65f6('0x1b')](_0x28d0df[_0x65f6('0x2c')]['offset']);}_0x4ac04b[_0x65f6('0x34')]=qs[_0x65f6('0x35')](_0x28d0df[_0x65f6('0x2c')]['sort']);_0x4ac04b['where']=qs[_0x65f6('0x2d')](_['pick'](_0x28d0df[_0x65f6('0x2c')],_0x488d36['filters']),_0x3c032f);if(_0x28d0df[_0x65f6('0x2c')][_0x65f6('0x36')]){_0x4ac04b['where']=_[_0x65f6('0x37')](_0x4ac04b['where'],{'$or':_['map'](_0x3c032f,function(_0x71b16b){if(_0x71b16b[_0x65f6('0x38')]!==_0x65f6('0x39')){var _0x313be5={};_0x313be5[_0x71b16b[_0x65f6('0x23')]]={'$like':'%'+_0x28d0df[_0x65f6('0x2c')][_0x65f6('0x36')]+'%'};return _0x313be5;}})});}_0x4ac04b=_[_0x65f6('0x37')]({},_0x4ac04b,_0x28d0df['options']);var _0x3aa254={'where':_0x4ac04b['where']};return db[_0x65f6('0x27')][_0x65f6('0x1a')](_0x3aa254)[_0x65f6('0x21')](function(_0x2ea7f7){_0x266cfe['count']=_0x2ea7f7;if(_0x28d0df[_0x65f6('0x2c')][_0x65f6('0x3a')]){_0x4ac04b[_0x65f6('0x3b')]=[{'all':!![]}];}return db[_0x65f6('0x27')][_0x65f6('0x3c')](_0x4ac04b);})[_0x65f6('0x21')](function(_0xed4c96){_0x266cfe[_0x65f6('0x3d')]=_0xed4c96;return _0x266cfe;})[_0x65f6('0x21')](respondWithFilteredResult(_0x559330,_0x4ac04b))['catch'](handleError(_0x559330,null));};exports[_0x65f6('0x3e')]=function(_0x400ed2,_0x377ae5){var _0x181798={'raw':!![],'where':{'id':_0x400ed2[_0x65f6('0x3f')]['id']}},_0x83e2d9={};_0x83e2d9[_0x65f6('0x2a')]=_[_0x65f6('0x2b')](db[_0x65f6('0x27')][_0x65f6('0x28')]);_0x83e2d9[_0x65f6('0x2c')]=_[_0x65f6('0x2b')](_0x400ed2[_0x65f6('0x2c')]);_0x83e2d9[_0x65f6('0x2d')]=_[_0x65f6('0x2e')](_0x83e2d9[_0x65f6('0x2a')],_0x83e2d9['query']);_0x181798[_0x65f6('0x30')]=_[_0x65f6('0x2e')](_0x83e2d9[_0x65f6('0x2a')],qs[_0x65f6('0x2f')](_0x400ed2['query'][_0x65f6('0x2f')]));_0x181798[_0x65f6('0x30')]=_0x181798[_0x65f6('0x30')]['length']?_0x181798[_0x65f6('0x30')]:_0x83e2d9[_0x65f6('0x2a')];if(_0x400ed2[_0x65f6('0x2c')][_0x65f6('0x3a')]){_0x181798['include']=[{'all':!![]}];}_0x181798=_[_0x65f6('0x37')]({},_0x181798,_0x400ed2['options']);return db[_0x65f6('0x27')][_0x65f6('0x40')](_0x181798)['then'](handleEntityNotFound(_0x377ae5,null))[_0x65f6('0x21')](respondWithResult(_0x377ae5,null))['catch'](handleError(_0x377ae5,null));};exports[_0x65f6('0x41')]=function(_0x4d9b76,_0x2d1706){return db[_0x65f6('0x27')][_0x65f6('0x41')](_0x4d9b76[_0x65f6('0x42')],{})['then'](respondWithResult(_0x2d1706,0xc9))['catch'](handleError(_0x2d1706,null));};exports[_0x65f6('0x43')]=function(_0x15d3ba,_0x3b647a){if(_0x15d3ba[_0x65f6('0x42')]['id']){delete _0x15d3ba[_0x65f6('0x42')]['id'];}return db[_0x65f6('0x27')][_0x65f6('0x40')]({'where':{'id':_0x15d3ba[_0x65f6('0x3f')]['id']}})[_0x65f6('0x21')](handleEntityNotFound(_0x3b647a,null))['then'](saveUpdates(_0x15d3ba[_0x65f6('0x42')],null))[_0x65f6('0x21')](respondWithResult(_0x3b647a,null))[_0x65f6('0x44')](handleError(_0x3b647a,null));};exports['destroy']=function(_0x47e749,_0x42d453){return db['CloudProvider'][_0x65f6('0x40')]({'where':{'id':_0x47e749[_0x65f6('0x3f')]['id']}})['then'](handleEntityNotFound(_0x42d453,null))[_0x65f6('0x21')](removeEntity(_0x42d453,null))['catch'](handleError(_0x42d453,null));};
\ No newline at end of file
+var _0x0b0e=['hasOwnProperty','nolimit','order','sort','filters','filter','merge','where','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','include','find','create','body','params','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','undefined','offset','limit','set','json','apply','reject','save','then','destroy','error','stack','name','index','map','CloudProvider','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length'];(function(_0x1a37df,_0x3ed536){var _0x5a7d5f=function(_0x4dd8a1){while(--_0x4dd8a1){_0x1a37df['push'](_0x1a37df['shift']());}};_0x5a7d5f(++_0x3ed536);}(_0x0b0e,0x187));var _0xe0b0=function(_0x131205,_0x57575c){_0x131205=_0x131205-0x0;var _0x305300=_0x0b0e[_0x131205];return _0x305300;};'use strict';var emlformat=require(_0xe0b0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe0b0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe0b0('0x2'));var moment=require(_0xe0b0('0x3'));var BPromise=require(_0xe0b0('0x4'));var Mustache=require(_0xe0b0('0x5'));var util=require(_0xe0b0('0x6'));var path=require(_0xe0b0('0x7'));var sox=require(_0xe0b0('0x8'));var csv=require(_0xe0b0('0x9'));var ejs=require(_0xe0b0('0xa'));var fs=require('fs');var fs_extra=require(_0xe0b0('0xb'));var _=require(_0xe0b0('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe0b0('0xd'));var deskjs=require(_0xe0b0('0xe'));var toCsv=require(_0xe0b0('0x9'));var querystring=require(_0xe0b0('0xf'));var Papa=require('papaparse');var Redis=require(_0xe0b0('0x10'));var authService=require(_0xe0b0('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xe0b0('0x12'));var hardwareService=require(_0xe0b0('0x13'));var logger=require('../../config/logger')(_0xe0b0('0x14'));var utils=require(_0xe0b0('0x15'));var config=require(_0xe0b0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe0b0('0x17'))['db'];function respondWithStatusCode(_0x1c358a,_0x3cc19a){_0x3cc19a=_0x3cc19a||0xcc;return function(_0x45f914){if(_0x45f914){return _0x1c358a[_0xe0b0('0x18')](_0x3cc19a);}return _0x1c358a['status'](_0x3cc19a)[_0xe0b0('0x19')]();};}function respondWithResult(_0x154de6,_0x743318){_0x743318=_0x743318||0xc8;return function(_0x24babd){if(_0x24babd){return _0x154de6[_0xe0b0('0x1a')](_0x743318)['json'](_0x24babd);}};}function respondWithFilteredResult(_0x41a7e2,_0x5adb01){return function(_0x35cb40){if(_0x35cb40){var _0xadee6e=typeof _0x5adb01['offset']===_0xe0b0('0x1b')&&typeof _0x5adb01['limit']===_0xe0b0('0x1b');var _0x100204=_0x35cb40['count'];var _0x54a3eb=_0xadee6e?0x0:_0x5adb01[_0xe0b0('0x1c')];var _0x50a441=_0xadee6e?_0x35cb40['count']:_0x5adb01['offset']+_0x5adb01[_0xe0b0('0x1d')];var _0x50fa4a;if(_0x50a441>=_0x100204){_0x50a441=_0x100204;_0x50fa4a=0xc8;}else{_0x50fa4a=0xce;}_0x41a7e2['status'](_0x50fa4a);return _0x41a7e2[_0xe0b0('0x1e')]('Content-Range',_0x54a3eb+'-'+_0x50a441+'/'+_0x100204)[_0xe0b0('0x1f')](_0x35cb40);}return null;};}function patchUpdates(_0x5dba2f){return function(_0x2c84cc){try{jsonpatch[_0xe0b0('0x20')](_0x2c84cc,_0x5dba2f,!![]);}catch(_0x3e10b3){return BPromise[_0xe0b0('0x21')](_0x3e10b3);}return _0x2c84cc[_0xe0b0('0x22')]();};}function saveUpdates(_0x58b804,_0x4cae54){return function(_0x2fa820){if(_0x2fa820){return _0x2fa820['update'](_0x58b804)[_0xe0b0('0x23')](function(_0x31b5f8){return _0x31b5f8;});}return null;};}function removeEntity(_0x513e63,_0x170ad8){return function(_0x503883){if(_0x503883){return _0x503883[_0xe0b0('0x24')]()['then'](function(){_0x513e63[_0xe0b0('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e5c88,_0x4de537){return function(_0x4700cc){if(!_0x4700cc){_0x3e5c88['sendStatus'](0x194);}return _0x4700cc;};}function handleError(_0x3c221d,_0x5c5317){_0x5c5317=_0x5c5317||0x1f4;return function(_0x362aba){logger[_0xe0b0('0x25')](_0x362aba[_0xe0b0('0x26')]);if(_0x362aba[_0xe0b0('0x27')]){delete _0x362aba[_0xe0b0('0x27')];}_0x3c221d[_0xe0b0('0x1a')](_0x5c5317)['send'](_0x362aba);};}exports[_0xe0b0('0x28')]=function(_0x1b8aa8,_0x5b7a64){var _0x15e13b={},_0x419b1f={},_0x36d137={'count':0x0,'rows':[]};var _0x1d5759=_[_0xe0b0('0x29')](db[_0xe0b0('0x2a')][_0xe0b0('0x2b')],function(_0x4fb3b7){return{'name':_0x4fb3b7[_0xe0b0('0x2c')],'type':_0x4fb3b7[_0xe0b0('0x2d')]['key']};});_0x419b1f['model']=_[_0xe0b0('0x29')](_0x1d5759,_0xe0b0('0x27'));_0x419b1f[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x1b8aa8[_0xe0b0('0x2e')]);_0x419b1f['filters']=_[_0xe0b0('0x30')](_0x419b1f[_0xe0b0('0x31')],_0x419b1f[_0xe0b0('0x2e')]);_0x15e13b[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x419b1f['model'],qs[_0xe0b0('0x33')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x15e13b[_0xe0b0('0x32')]=_0x15e13b[_0xe0b0('0x32')][_0xe0b0('0x34')]?_0x15e13b[_0xe0b0('0x32')]:_0x419b1f[_0xe0b0('0x31')];if(!_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x35')](_0xe0b0('0x36'))){_0x15e13b[_0xe0b0('0x1d')]=qs[_0xe0b0('0x1d')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1d')]);_0x15e13b['offset']=qs[_0xe0b0('0x1c')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1c')]);}_0x15e13b[_0xe0b0('0x37')]=qs[_0xe0b0('0x38')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x38')]);_0x15e13b['where']=qs['filters'](_['pick'](_0x1b8aa8['query'],_0x419b1f[_0xe0b0('0x39')]),_0x1d5759);if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]){_0x15e13b['where']=_[_0xe0b0('0x3b')](_0x15e13b[_0xe0b0('0x3c')],{'$or':_[_0xe0b0('0x29')](_0x1d5759,function(_0x297c64){if(_0x297c64['type']!==_0xe0b0('0x3d')){var _0xfbb61d={};_0xfbb61d[_0x297c64[_0xe0b0('0x27')]]={'$like':'%'+_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]+'%'};return _0xfbb61d;}})});}_0x15e13b=_[_0xe0b0('0x3b')]({},_0x15e13b,_0x1b8aa8[_0xe0b0('0x3e')]);var _0x115a69={'where':_0x15e13b[_0xe0b0('0x3c')]};return db['CloudProvider'][_0xe0b0('0x3f')](_0x115a69)['then'](function(_0x34178d){_0x36d137[_0xe0b0('0x3f')]=_0x34178d;if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x15e13b['include']=[{'all':!![]}];}return db[_0xe0b0('0x2a')][_0xe0b0('0x41')](_0x15e13b);})[_0xe0b0('0x23')](function(_0x402a0e){_0x36d137[_0xe0b0('0x42')]=_0x402a0e;return _0x36d137;})[_0xe0b0('0x23')](respondWithFilteredResult(_0x5b7a64,_0x15e13b))[_0xe0b0('0x43')](handleError(_0x5b7a64,null));};exports[_0xe0b0('0x44')]=function(_0x52ffe4,_0x2aad80){var _0x309bbf={'raw':!![],'where':{'id':_0x52ffe4['params']['id']}},_0x528818={};_0x528818[_0xe0b0('0x31')]=_[_0xe0b0('0x2f')](db['CloudProvider'][_0xe0b0('0x2b')]);_0x528818[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x52ffe4[_0xe0b0('0x2e')]);_0x528818[_0xe0b0('0x39')]=_['intersection'](_0x528818['model'],_0x528818['query']);_0x309bbf[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x528818['model'],qs[_0xe0b0('0x33')](_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x309bbf[_0xe0b0('0x32')]=_0x309bbf[_0xe0b0('0x32')]['length']?_0x309bbf['attributes']:_0x528818[_0xe0b0('0x31')];if(_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x309bbf[_0xe0b0('0x45')]=[{'all':!![]}];}_0x309bbf=_[_0xe0b0('0x3b')]({},_0x309bbf,_0x52ffe4['options']);return db[_0xe0b0('0x2a')][_0xe0b0('0x46')](_0x309bbf)['then'](handleEntityNotFound(_0x2aad80,null))['then'](respondWithResult(_0x2aad80,null))['catch'](handleError(_0x2aad80,null));};exports[_0xe0b0('0x47')]=function(_0x2184d3,_0x2419ce){return db[_0xe0b0('0x2a')]['create'](_0x2184d3[_0xe0b0('0x48')],{})[_0xe0b0('0x23')](respondWithResult(_0x2419ce,0xc9))['catch'](handleError(_0x2419ce,null));};exports['update']=function(_0x2365be,_0x1bc6e0){if(_0x2365be['body']['id']){delete _0x2365be[_0xe0b0('0x48')]['id'];}return db[_0xe0b0('0x2a')]['find']({'where':{'id':_0x2365be['params']['id']}})[_0xe0b0('0x23')](handleEntityNotFound(_0x1bc6e0,null))['then'](saveUpdates(_0x2365be[_0xe0b0('0x48')],null))[_0xe0b0('0x23')](respondWithResult(_0x1bc6e0,null))[_0xe0b0('0x43')](handleError(_0x1bc6e0,null));};exports[_0xe0b0('0x24')]=function(_0x19ee71,_0xf9e694){return db['CloudProvider']['find']({'where':{'id':_0x19ee71[_0xe0b0('0x49')]['id']}})['then'](handleEntityNotFound(_0xf9e694,null))['then'](removeEntity(_0xf9e694,null))[_0xe0b0('0x43')](handleError(_0xf9e694,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7030=['bluebird','request-promise','path','rimraf','../../config/environment','./cloudProvider.attributes','exports','define','CloudProvider','cloud_providers','lodash','util','../../config/logger','api'];(function(_0x25e7ef,_0x3540d2){var _0x36920b=function(_0x312f88){while(--_0x312f88){_0x25e7ef['push'](_0x25e7ef['shift']());}};_0x36920b(++_0x3540d2);}(_0x7030,0x122));var _0x0703=function(_0x47db58,_0xa2085b){_0x47db58=_0x47db58-0x0;var _0x19b171=_0x7030[_0x47db58];return _0x19b171;};'use strict';var _=require(_0x0703('0x0'));var util=require(_0x0703('0x1'));var logger=require(_0x0703('0x2'))(_0x0703('0x3'));var moment=require('moment');var BPromise=require(_0x0703('0x4'));var rp=require(_0x0703('0x5'));var fs=require('fs');var path=require(_0x0703('0x6'));var rimraf=require(_0x0703('0x7'));var config=require(_0x0703('0x8'));var attributes=require(_0x0703('0x9'));module[_0x0703('0xa')]=function(_0x53be80,_0x2d95d7){return _0x53be80[_0x0703('0xb')](_0x0703('0xc'),attributes,{'tableName':_0x0703('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe2b3=['api','request-promise','rimraf','../../config/environment','./cloudProvider.attributes','define','CloudProvider','lodash','util','../../config/logger'];(function(_0x12fc8d,_0x19ee33){var _0x3f9d04=function(_0x52e51c){while(--_0x52e51c){_0x12fc8d['push'](_0x12fc8d['shift']());}};_0x3f9d04(++_0x19ee33);}(_0xe2b3,0xcf));var _0x3e2b=function(_0x200b1e,_0x8eb183){_0x200b1e=_0x200b1e-0x0;var _0x30908a=_0xe2b3[_0x200b1e];return _0x30908a;};'use strict';var _=require(_0x3e2b('0x0'));var util=require(_0x3e2b('0x1'));var logger=require(_0x3e2b('0x2'))(_0x3e2b('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x3e2b('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3e2b('0x5'));var config=require(_0x3e2b('0x6'));var attributes=require(_0x3e2b('0x7'));module['exports']=function(_0x1587c6,_0xff8275){return _0x1587c6[_0x3e2b('0x8')](_0x3e2b('0x9'),attributes,{'tableName':'cloud_providers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa329=['ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','info','CloudProvider,\x20%s,\x20%s','request\x20sent','debug','CloudProvider,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','bluebird'];(function(_0x4e6e6c,_0x5d7519){var _0x45cb5c=function(_0x3c95d8){while(--_0x3c95d8){_0x4e6e6c['push'](_0x4e6e6c['shift']());}};_0x45cb5c(++_0x5d7519);}(_0xa329,0x162));var _0x9a32=function(_0x31c343,_0x5d05a2){_0x31c343=_0x31c343-0x0;var _0x25946f=_0xa329[_0x31c343];return _0x25946f;};'use strict';var _=require(_0x9a32('0x0'));var util=require(_0x9a32('0x1'));var moment=require('moment');var BPromise=require(_0x9a32('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9a32('0x3'));var db=require(_0x9a32('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x9a32('0x5'));var config=require(_0x9a32('0x6'));var jayson=require(_0x9a32('0x7'));var client=jayson[_0x9a32('0x8')][_0x9a32('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x235b92,_0x4a8fba,_0x5b8b5e){return new BPromise(function(_0x4dc7f8,_0x344b35){return client[_0x9a32('0xa')](_0x235b92,_0x5b8b5e)['then'](function(_0x38f6cc){logger[_0x9a32('0xb')](_0x9a32('0xc'),_0x4a8fba,_0x9a32('0xd'));logger[_0x9a32('0xe')](_0x9a32('0xf'),_0x4a8fba,'request\x20sent',JSON[_0x9a32('0x10')](_0x38f6cc));if(_0x38f6cc[_0x9a32('0x11')]){if(_0x38f6cc['error']['code']===0x1f4){logger[_0x9a32('0x11')](_0x9a32('0xc'),_0x4a8fba,_0x38f6cc['error']['message']);return _0x344b35(_0x38f6cc[_0x9a32('0x11')][_0x9a32('0x12')]);}logger[_0x9a32('0x11')](_0x9a32('0xc'),_0x4a8fba,_0x38f6cc['error'][_0x9a32('0x12')]);return _0x4dc7f8(_0x38f6cc[_0x9a32('0x11')]['message']);}else{logger[_0x9a32('0xb')](_0x9a32('0xc'),_0x4a8fba,_0x9a32('0xd'));_0x4dc7f8(_0x38f6cc[_0x9a32('0x13')][_0x9a32('0x12')]);}})[_0x9a32('0x14')](function(_0x4fa645){logger[_0x9a32('0x11')](_0x9a32('0xc'),_0x4a8fba,_0x4fa645);_0x344b35(_0x4fa645);});});}
\ No newline at end of file
+var _0xa456=['message','result','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','then','info','CloudProvider,\x20%s,\x20%s','request\x20sent','debug','CloudProvider,\x20%s,\x20%s,\x20%s','error'];(function(_0x5bd4fc,_0x4fbd8c){var _0x14b56e=function(_0x361e5c){while(--_0x361e5c){_0x5bd4fc['push'](_0x5bd4fc['shift']());}};_0x14b56e(++_0x4fbd8c);}(_0xa456,0x142));var _0x6a45=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xa456[_0x4565bf];return _0x5610ba;};'use strict';var _=require(_0x6a45('0x0'));var util=require(_0x6a45('0x1'));var moment=require(_0x6a45('0x2'));var BPromise=require(_0x6a45('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6a45('0x4'));var db=require(_0x6a45('0x5'))['db'];var utils=require(_0x6a45('0x6'));var logger=require('../../config/logger')(_0x6a45('0x7'));var config=require(_0x6a45('0x8'));var jayson=require(_0x6a45('0x9'));var client=jayson[_0x6a45('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x25cf8d,_0x26bfc0,_0x214514){return new BPromise(function(_0x19e67c,_0x3deb09){return client['request'](_0x25cf8d,_0x214514)[_0x6a45('0xb')](function(_0x517040){logger[_0x6a45('0xc')](_0x6a45('0xd'),_0x26bfc0,_0x6a45('0xe'));logger[_0x6a45('0xf')](_0x6a45('0x10'),_0x26bfc0,'request\x20sent',JSON['stringify'](_0x517040));if(_0x517040[_0x6a45('0x11')]){if(_0x517040[_0x6a45('0x11')]['code']===0x1f4){logger['error']('CloudProvider,\x20%s,\x20%s',_0x26bfc0,_0x517040[_0x6a45('0x11')][_0x6a45('0x12')]);return _0x3deb09(_0x517040[_0x6a45('0x11')][_0x6a45('0x12')]);}logger[_0x6a45('0x11')]('CloudProvider,\x20%s,\x20%s',_0x26bfc0,_0x517040['error'][_0x6a45('0x12')]);return _0x19e67c(_0x517040[_0x6a45('0x11')]['message']);}else{logger[_0x6a45('0xc')](_0x6a45('0xd'),_0x26bfc0,_0x6a45('0xe'));_0x19e67c(_0x517040[_0x6a45('0x13')]['message']);}})['catch'](function(_0x49023f){logger[_0x6a45('0x11')](_0x6a45('0xd'),_0x26bfc0,_0x49023f);_0x3deb09(_0x49023f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa099=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','post','create','update','delete','destroy','exports','connect-timeout','express','Router'];(function(_0x34eb31,_0x8f0f70){var _0x254994=function(_0xbec9a3){while(--_0xbec9a3){_0x34eb31['push'](_0x34eb31['shift']());}};_0x254994(++_0x8f0f70);}(_0xa099,0x69));var _0x9a09=function(_0x55147f,_0x5a5ca6){_0x55147f=_0x55147f-0x0;var _0x3c8c24=_0xa099[_0x55147f];return _0x3c8c24;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x9a09('0x0'));var express=require(_0x9a09('0x1'));var router=express[_0x9a09('0x2')]();var fs_extra=require(_0x9a09('0x3'));var auth=require(_0x9a09('0x4'));var interaction=require(_0x9a09('0x5'));var config=require(_0x9a09('0x6'));var controller=require('./cloudProvider.controller');router[_0x9a09('0x7')]('/',auth[_0x9a09('0x8')](),controller[_0x9a09('0x9')]);router[_0x9a09('0x7')](_0x9a09('0xa'),auth[_0x9a09('0x8')](),controller[_0x9a09('0xb')]);router[_0x9a09('0xc')]('/',auth[_0x9a09('0x8')](),controller[_0x9a09('0xd')]);router['put'](_0x9a09('0xa'),auth['isAuthenticated'](),controller[_0x9a09('0xe')]);router[_0x9a09('0xf')](_0x9a09('0xa'),auth[_0x9a09('0x8')](),controller[_0x9a09('0x10')]);module[_0x9a09('0x11')]=router;
\ No newline at end of file
+var _0xf835=['/:id','isAuthenticated','post','create','put','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cloudProvider.controller','get','index'];(function(_0x42f009,_0x5e27b1){var _0x22a1e0=function(_0x297993){while(--_0x297993){_0x42f009['push'](_0x42f009['shift']());}};_0x22a1e0(++_0x5e27b1);}(_0xf835,0x183));var _0x5f83=function(_0x407b23,_0x28dc76){_0x407b23=_0x407b23-0x0;var _0x1742da=_0xf835[_0x407b23];return _0x1742da;};'use strict';var multer=require(_0x5f83('0x0'));var util=require(_0x5f83('0x1'));var path=require(_0x5f83('0x2'));var timeout=require('connect-timeout');var express=require(_0x5f83('0x3'));var router=express[_0x5f83('0x4')]();var fs_extra=require(_0x5f83('0x5'));var auth=require(_0x5f83('0x6'));var interaction=require(_0x5f83('0x7'));var config=require(_0x5f83('0x8'));var controller=require(_0x5f83('0x9'));router[_0x5f83('0xa')]('/',auth['isAuthenticated'](),controller[_0x5f83('0xb')]);router['get'](_0x5f83('0xc'),auth[_0x5f83('0xd')](),controller['show']);router[_0x5f83('0xe')]('/',auth['isAuthenticated'](),controller[_0x5f83('0xf')]);router[_0x5f83('0x10')](_0x5f83('0xc'),auth['isAuthenticated'](),controller[_0x5f83('0x11')]);router[_0x5f83('0x12')](_0x5f83('0xc'),auth[_0x5f83('0xd')](),controller[_0x5f83('0x13')]);module[_0x5f83('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf124=['exports','STRING','name','sequelize'];(function(_0x4a7da3,_0x5525c2){var _0x3ca27f=function(_0x4cc650){while(--_0x4cc650){_0x4a7da3['push'](_0x4a7da3['shift']());}};_0x3ca27f(++_0x5525c2);}(_0xf124,0x147));var _0x4f12=function(_0xe4d6c6,_0x3bdbf2){_0xe4d6c6=_0xe4d6c6-0x0;var _0x3a8935=_0xf124[_0xe4d6c6];return _0x3a8935;};'use strict';var Sequelize=require(_0x4f12('0x0'));module[_0x4f12('0x1')]={'name':{'type':Sequelize[_0x4f12('0x2')],'unique':_0x4f12('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x4f12('0x2')]},'companyId':{'type':Sequelize[_0x4f12('0x2')]},'website':{'type':Sequelize[_0x4f12('0x2')]},'phone':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0x4f12('0x2')]},'type':{'type':Sequelize['STRING']},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0x4f12('0x2')]},'email':{'type':Sequelize[_0x4f12('0x2')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0x4f12('0x2')]},'sStreet':{'type':Sequelize[_0x4f12('0x2')]},'sPostalCode':{'type':Sequelize[_0x4f12('0x2')]},'sCity':{'type':Sequelize[_0x4f12('0x2')]},'sCountry':{'type':Sequelize[_0x4f12('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x4f6e=['STRING','name','sequelize'];(function(_0x587afc,_0x5b3356){var _0x57705a=function(_0x3a0922){while(--_0x3a0922){_0x587afc['push'](_0x587afc['shift']());}};_0x57705a(++_0x5b3356);}(_0x4f6e,0x1e5));var _0xe4f6=function(_0x42c6f1,_0x338d7b){_0x42c6f1=_0x42c6f1-0x0;var _0x3c7398=_0x4f6e[_0x42c6f1];return _0x3c7398;};'use strict';var Sequelize=require(_0xe4f6('0x0'));module['exports']={'name':{'type':Sequelize[_0xe4f6('0x1')],'unique':_0xe4f6('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize['STRING']},'companyId':{'type':Sequelize['STRING']},'website':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0xe4f6('0x1')]},'fax':{'type':Sequelize[_0xe4f6('0x1')]},'type':{'type':Sequelize[_0xe4f6('0x1')]},'street':{'type':Sequelize[_0xe4f6('0x1')]},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0xe4f6('0x1')]},'country':{'type':Sequelize[_0xe4f6('0x1')]},'email':{'type':Sequelize[_0xe4f6('0x1')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0xe4f6('0x1')]},'sStreet':{'type':Sequelize['STRING']},'sPostalCode':{'type':Sequelize[_0xe4f6('0x1')]},'sCity':{'type':Sequelize[_0xe4f6('0x1')]},'sCountry':{'type':Sequelize[_0xe4f6('0x1')]},'description':{'type':Sequelize[_0xe4f6('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8272=['fields','nolimit','order','sort','filters','pick','filter','where','merge','map','options','includeAll','include','findAll','rows','catch','params','rawAttributes','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addContacts','CmContact','ids','omit','getContacts','findOne','hasOwnProperty','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Companies','UserProfileResource','end','error','name','index','CmCompany','model','keys','query','attributes','intersection'];(function(_0x528b9b,_0x490876){var _0x4368c9=function(_0x50b1be){while(--_0x50b1be){_0x528b9b['push'](_0x528b9b['shift']());}};_0x4368c9(++_0x490876);}(_0x8272,0x125));var _0x2827=function(_0xb706a,_0x1ece38){_0xb706a=_0xb706a-0x0;var _0x4851c8=_0x8272[_0xb706a];return _0x4851c8;};'use strict';var emlformat=require(_0x2827('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2827('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2827('0x2'));var moment=require('moment');var BPromise=require(_0x2827('0x3'));var Mustache=require(_0x2827('0x4'));var util=require(_0x2827('0x5'));var path=require(_0x2827('0x6'));var sox=require('sox');var csv=require(_0x2827('0x7'));var ejs=require(_0x2827('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2827('0x9'));var squel=require(_0x2827('0xa'));var crypto=require('crypto');var jsforce=require(_0x2827('0xb'));var deskjs=require(_0x2827('0xc'));var toCsv=require(_0x2827('0x7'));var querystring=require(_0x2827('0xd'));var Papa=require(_0x2827('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2827('0xf'));var as=require(_0x2827('0x10'));var hardwareService=require(_0x2827('0x11'));var logger=require(_0x2827('0x12'))(_0x2827('0x13'));var utils=require(_0x2827('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x2827('0x15'));var db=require(_0x2827('0x16'))['db'];function respondWithStatusCode(_0x59f5b6,_0x5241a8){_0x5241a8=_0x5241a8||0xcc;return function(_0x2fe23d){if(_0x2fe23d){return _0x59f5b6[_0x2827('0x17')](_0x5241a8);}return _0x59f5b6[_0x2827('0x18')](_0x5241a8)['end']();};}function respondWithResult(_0x46a496,_0x31b607){_0x31b607=_0x31b607||0xc8;return function(_0x1ed82d){if(_0x1ed82d){return _0x46a496[_0x2827('0x18')](_0x31b607)[_0x2827('0x19')](_0x1ed82d);}};}function respondWithFilteredResult(_0x32aecd,_0x596f19){return function(_0x4c4fb5){if(_0x4c4fb5){var _0x5d7b43=typeof _0x596f19[_0x2827('0x1a')]===_0x2827('0x1b')&&typeof _0x596f19[_0x2827('0x1c')]===_0x2827('0x1b');var _0xe0bb90=_0x4c4fb5[_0x2827('0x1d')];var _0x11c906=_0x5d7b43?0x0:_0x596f19[_0x2827('0x1a')];var _0x116d0a=_0x5d7b43?_0x4c4fb5[_0x2827('0x1d')]:_0x596f19[_0x2827('0x1a')]+_0x596f19[_0x2827('0x1c')];var _0x3c2f16;if(_0x116d0a>=_0xe0bb90){_0x116d0a=_0xe0bb90;_0x3c2f16=0xc8;}else{_0x3c2f16=0xce;}_0x32aecd[_0x2827('0x18')](_0x3c2f16);return _0x32aecd[_0x2827('0x1e')](_0x2827('0x1f'),_0x11c906+'-'+_0x116d0a+'/'+_0xe0bb90)[_0x2827('0x19')](_0x4c4fb5);}return null;};}function patchUpdates(_0x4f6e21){return function(_0x24ca37){try{jsonpatch[_0x2827('0x20')](_0x24ca37,_0x4f6e21,!![]);}catch(_0x350c4b){return BPromise[_0x2827('0x21')](_0x350c4b);}return _0x24ca37[_0x2827('0x22')]();};}function saveUpdates(_0x4e7547,_0x3bca2c){return function(_0x3ce993){if(_0x3ce993){return _0x3ce993[_0x2827('0x23')](_0x4e7547)['then'](function(_0x7a8b97){return _0x7a8b97;});}return null;};}function removeEntity(_0x580553,_0xe69877){return function(_0x3e2ad5){if(_0x3e2ad5){return _0x3e2ad5[_0x2827('0x24')]()[_0x2827('0x25')](function(){var _0x4c5fa1=_0x3e2ad5[_0x2827('0x26')]({'plain':!![]});var _0x263dfa=_0x2827('0x27');return db[_0x2827('0x28')][_0x2827('0x24')]({'where':{'type':_0x263dfa,'resourceId':_0x4c5fa1['id']}})[_0x2827('0x25')](function(){return _0x3e2ad5;});})[_0x2827('0x25')](function(){_0x580553['status'](0xcc)[_0x2827('0x29')]();});}};}function handleEntityNotFound(_0x145032,_0x195c0c){return function(_0x158e61){if(!_0x158e61){_0x145032[_0x2827('0x17')](0x194);}return _0x158e61;};}function handleError(_0x20a4d0,_0x2e8470){_0x2e8470=_0x2e8470||0x1f4;return function(_0x59f3c8){logger[_0x2827('0x2a')](_0x59f3c8['stack']);if(_0x59f3c8[_0x2827('0x2b')]){delete _0x59f3c8[_0x2827('0x2b')];}_0x20a4d0[_0x2827('0x18')](_0x2e8470)['send'](_0x59f3c8);};}exports[_0x2827('0x2c')]=function(_0x1ccad0,_0x31a048){var _0x4b218e={},_0x130df1={},_0x4c66b4={'count':0x0,'rows':[]};return db[_0x2827('0x2d')]['describe']()[_0x2827('0x25')](function(_0x262a5d){_0x130df1[_0x2827('0x2e')]=_[_0x2827('0x2f')](_0x262a5d);_0x130df1['query']=_[_0x2827('0x2f')](_0x1ccad0[_0x2827('0x30')]);_0x130df1['filters']=_['intersection'](_0x130df1['model'],_0x130df1[_0x2827('0x30')]);_0x4b218e[_0x2827('0x31')]=_[_0x2827('0x32')](_0x130df1['model'],qs[_0x2827('0x33')](_0x1ccad0[_0x2827('0x30')]['fields']));_0x4b218e[_0x2827('0x31')]=_0x4b218e['attributes']['length']?_0x4b218e['attributes']:_0x130df1[_0x2827('0x2e')];if(!_0x1ccad0[_0x2827('0x30')]['hasOwnProperty'](_0x2827('0x34'))){_0x4b218e[_0x2827('0x1c')]=qs[_0x2827('0x1c')](_0x1ccad0[_0x2827('0x30')][_0x2827('0x1c')]);_0x4b218e[_0x2827('0x1a')]=qs[_0x2827('0x1a')](_0x1ccad0[_0x2827('0x30')]['offset']);}_0x4b218e[_0x2827('0x35')]=qs['sort'](_0x1ccad0[_0x2827('0x30')][_0x2827('0x36')]);_0x4b218e['where']=qs[_0x2827('0x37')](_[_0x2827('0x38')](_0x1ccad0['query'],_0x130df1[_0x2827('0x37')]),_0x262a5d);if(_0x1ccad0[_0x2827('0x30')][_0x2827('0x39')]){_0x4b218e[_0x2827('0x3a')]=_[_0x2827('0x3b')](_0x4b218e[_0x2827('0x3a')],{'$or':_[_0x2827('0x3c')](_0x4b218e[_0x2827('0x31')],function(_0x501be1){var _0x3c0f84={};_0x3c0f84[_0x501be1]={'$like':'%'+_0x1ccad0[_0x2827('0x30')][_0x2827('0x39')]+'%'};return _0x3c0f84;})});}_0x4b218e=_['merge']({},_0x4b218e,_0x1ccad0[_0x2827('0x3d')]);var _0x3132e4={'where':_0x4b218e['where']};return db['CmCompany'][_0x2827('0x1d')](_0x3132e4)[_0x2827('0x25')](function(_0x3d52e5){_0x4c66b4[_0x2827('0x1d')]=_0x3d52e5;if(_0x1ccad0[_0x2827('0x30')][_0x2827('0x3e')]){_0x4b218e[_0x2827('0x3f')]=[{'all':!![]}];}return db['CmCompany'][_0x2827('0x40')](_0x4b218e);})[_0x2827('0x25')](function(_0x5417af){_0x4c66b4[_0x2827('0x41')]=_0x5417af;return _0x4c66b4;})['then'](respondWithFilteredResult(_0x31a048,_0x4b218e))[_0x2827('0x42')](handleError(_0x31a048,null));})['catch'](handleError(_0x31a048,null));};exports['show']=function(_0x5a4218,_0x88d010){var _0x1480c2={'raw':![],'where':{'id':_0x5a4218[_0x2827('0x43')]['id']}},_0xc76037={};_0xc76037['model']=_['keys'](db[_0x2827('0x2d')][_0x2827('0x44')]);_0xc76037[_0x2827('0x30')]=_['keys'](_0x5a4218[_0x2827('0x30')]);_0xc76037[_0x2827('0x37')]=_['intersection'](_0xc76037[_0x2827('0x2e')],_0xc76037[_0x2827('0x30')]);_0x1480c2['attributes']=_['intersection'](_0xc76037[_0x2827('0x2e')],qs['fields'](_0x5a4218[_0x2827('0x30')][_0x2827('0x33')]));_0x1480c2['attributes']=_0x1480c2[_0x2827('0x31')][_0x2827('0x45')]?_0x1480c2[_0x2827('0x31')]:_0xc76037[_0x2827('0x2e')];if(_0x5a4218['query'][_0x2827('0x3e')]){_0x1480c2[_0x2827('0x3f')]=[{'all':!![]}];}_0x1480c2=_[_0x2827('0x3b')]({},_0x1480c2,_0x5a4218[_0x2827('0x3d')]);return db[_0x2827('0x2d')][_0x2827('0x46')](_0x1480c2)[_0x2827('0x25')](handleEntityNotFound(_0x88d010,null))[_0x2827('0x25')](respondWithResult(_0x88d010,null))['catch'](handleError(_0x88d010,null));};exports[_0x2827('0x47')]=function(_0x26298c,_0x11f75d){return db['CmCompany'][_0x2827('0x47')](_0x26298c[_0x2827('0x48')],{})[_0x2827('0x25')](function(_0x1047b1){var _0x280330=_0x26298c[_0x2827('0x49')][_0x2827('0x26')]({'plain':!![]});if(!_0x280330)throw new Error(_0x2827('0x4a'));if(_0x280330[_0x2827('0x4b')]===_0x2827('0x49')){var _0x5dd6b7=_0x1047b1[_0x2827('0x26')]({'plain':!![]});var _0x22e598=_0x2827('0x27');return db[_0x2827('0x4c')][_0x2827('0x46')]({'where':{'name':_0x22e598,'userProfileId':_0x280330['userProfileId']},'raw':!![]})[_0x2827('0x25')](function(_0x4882aa){if(_0x4882aa&&_0x4882aa['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x5dd6b7['name'],'resourceId':_0x5dd6b7['id'],'type':_0x4882aa[_0x2827('0x2b')],'sectionId':_0x4882aa['id']},{})[_0x2827('0x25')](function(){return _0x1047b1;});}else{return _0x1047b1;}})[_0x2827('0x42')](function(_0x1cdb11){logger[_0x2827('0x2a')](_0x2827('0x4d'),_0x1cdb11);throw _0x1cdb11;});}return _0x1047b1;})['then'](respondWithResult(_0x11f75d,0xc9))['catch'](handleError(_0x11f75d,null));};exports[_0x2827('0x23')]=function(_0x521e9f,_0x312832){if(_0x521e9f[_0x2827('0x48')]['id']){delete _0x521e9f['body']['id'];}return db[_0x2827('0x2d')][_0x2827('0x46')]({'where':{'id':_0x521e9f['params']['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x312832,null))[_0x2827('0x25')](saveUpdates(_0x521e9f[_0x2827('0x48')],null))[_0x2827('0x25')](respondWithResult(_0x312832,null))[_0x2827('0x42')](handleError(_0x312832,null));};exports['destroy']=function(_0x3fd22e,_0x34ef61){return db[_0x2827('0x2d')][_0x2827('0x46')]({'where':{'id':_0x3fd22e[_0x2827('0x43')]['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x34ef61,null))[_0x2827('0x25')](removeEntity(_0x34ef61,null))[_0x2827('0x42')](handleError(_0x34ef61,null));};exports['describe']=function(_0x487c63,_0x2580ce){return db[_0x2827('0x2d')][_0x2827('0x4e')]()[_0x2827('0x25')](respondWithResult(_0x2580ce,null))['catch'](handleError(_0x2580ce,null));};exports[_0x2827('0x4f')]=function(_0x5588ab,_0x382fb2,_0x3393ed){return db[_0x2827('0x50')][_0x2827('0x46')]({'where':{'id':_0x5588ab['params']['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x382fb2,null))[_0x2827('0x25')](function(_0x2c6ab9){if(_0x2c6ab9){return _0x2c6ab9[_0x2827('0x4f')](_0x5588ab[_0x2827('0x48')][_0x2827('0x51')],_[_0x2827('0x52')](_0x5588ab[_0x2827('0x48')],[_0x2827('0x51'),'id'])||{});}})['then'](respondWithResult(_0x382fb2,null))[_0x2827('0x42')](handleError(_0x382fb2,null));};exports[_0x2827('0x53')]=function(_0x1a2666,_0x4d9437,_0x5b4ca9){var _0x26aae6={};var _0x37dfa1={};var _0x5c80c7;var _0x2b1f1c;return db[_0x2827('0x2d')][_0x2827('0x54')]({'where':{'id':_0x1a2666[_0x2827('0x43')]['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x4d9437,null))[_0x2827('0x25')](function(_0x4db630){if(_0x4db630){_0x5c80c7=_0x4db630;_0x37dfa1[_0x2827('0x2e')]=_['keys'](db['CmContact']['rawAttributes']);_0x37dfa1['query']=_[_0x2827('0x2f')](_0x1a2666['query']);_0x37dfa1['filters']=_[_0x2827('0x32')](_0x37dfa1['model'],_0x37dfa1['query']);_0x26aae6[_0x2827('0x31')]=_[_0x2827('0x32')](_0x37dfa1[_0x2827('0x2e')],qs[_0x2827('0x33')](_0x1a2666[_0x2827('0x30')][_0x2827('0x33')]));_0x26aae6['attributes']=_0x26aae6['attributes'][_0x2827('0x45')]?_0x26aae6[_0x2827('0x31')]:_0x37dfa1[_0x2827('0x2e')];_0x26aae6[_0x2827('0x35')]=qs[_0x2827('0x36')](_0x1a2666[_0x2827('0x30')][_0x2827('0x36')]);_0x26aae6[_0x2827('0x3a')]=qs[_0x2827('0x37')](_[_0x2827('0x38')](_0x1a2666['query'],_0x37dfa1[_0x2827('0x37')]));if(_0x1a2666['query'][_0x2827('0x39')]){_0x26aae6[_0x2827('0x3a')]=_[_0x2827('0x3b')](_0x26aae6[_0x2827('0x3a')],{'$or':_[_0x2827('0x3c')](_0x26aae6[_0x2827('0x31')],function(_0x929ee7){var _0x4a2a56={};_0x4a2a56[_0x929ee7]={'$like':'%'+_0x1a2666['query'][_0x2827('0x39')]+'%'};return _0x4a2a56;})});}_0x26aae6=_[_0x2827('0x3b')]({},_0x26aae6,_0x1a2666[_0x2827('0x3d')]);return _0x5c80c7[_0x2827('0x53')](_0x26aae6);}})['then'](function(_0x5dadaf){if(_0x5dadaf){_0x2b1f1c=_0x5dadaf['length'];if(!_0x1a2666[_0x2827('0x30')][_0x2827('0x55')](_0x2827('0x34'))){_0x26aae6[_0x2827('0x1c')]=qs[_0x2827('0x1c')](_0x1a2666[_0x2827('0x30')]['limit']);_0x26aae6[_0x2827('0x1a')]=qs['offset'](_0x1a2666['query'][_0x2827('0x1a')]);}return _0x5c80c7[_0x2827('0x53')](_0x26aae6);}})[_0x2827('0x25')](function(_0x10a741){if(_0x10a741){return _0x10a741?{'count':_0x2b1f1c,'rows':_0x10a741}:null;}})['then'](respondWithResult(_0x4d9437,null))[_0x2827('0x42')](handleError(_0x4d9437,null));};
\ No newline at end of file
+var _0xbe80=['crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','get','Companies','end','sendStatus','error','name','send','index','CmCompany','describe','model','query','keys','intersection','fields','attributes','hasOwnProperty','order','sort','where','filters','pick','filter','merge','map','options','includeAll','include','findAll','rows','show','params','rawAttributes','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','addContacts','CmContact','ids','getContacts','findOne','nolimit','eml-format','zip-dir','request-promise','moment','bluebird','util','path','to-csv','lodash'];(function(_0x8bc7a5,_0x55b149){var _0x45a6b7=function(_0xa38d2c){while(--_0xa38d2c){_0x8bc7a5['push'](_0x8bc7a5['shift']());}};_0x45a6b7(++_0x55b149);}(_0xbe80,0xa3));var _0x0be8=function(_0x58ec8b,_0x37baa2){_0x58ec8b=_0x58ec8b-0x0;var _0x358864=_0xbe80[_0x58ec8b];return _0x358864;};'use strict';var emlformat=require(_0x0be8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0be8('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0be8('0x2'));var moment=require(_0x0be8('0x3'));var BPromise=require(_0x0be8('0x4'));var Mustache=require('mustache');var util=require(_0x0be8('0x5'));var path=require(_0x0be8('0x6'));var sox=require('sox');var csv=require(_0x0be8('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0be8('0x8'));var squel=require('squel');var crypto=require(_0x0be8('0x9'));var jsforce=require(_0x0be8('0xa'));var deskjs=require(_0x0be8('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0be8('0xc'));var Redis=require(_0x0be8('0xd'));var authService=require(_0x0be8('0xe'));var qs=require(_0x0be8('0xf'));var as=require(_0x0be8('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0be8('0x11'))(_0x0be8('0x12'));var utils=require(_0x0be8('0x13'));var config=require(_0x0be8('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x0be8('0x15'))['db'];function respondWithStatusCode(_0x5ec139,_0x5335c5){_0x5335c5=_0x5335c5||0xcc;return function(_0x64e8dc){if(_0x64e8dc){return _0x5ec139['sendStatus'](_0x5335c5);}return _0x5ec139[_0x0be8('0x16')](_0x5335c5)['end']();};}function respondWithResult(_0x2bfa0b,_0x46f825){_0x46f825=_0x46f825||0xc8;return function(_0x44ceea){if(_0x44ceea){return _0x2bfa0b[_0x0be8('0x16')](_0x46f825)['json'](_0x44ceea);}};}function respondWithFilteredResult(_0x4b27a7,_0x3ece09){return function(_0x1efbe1){if(_0x1efbe1){var _0x37b211=typeof _0x3ece09[_0x0be8('0x17')]==='undefined'&&typeof _0x3ece09['limit']===_0x0be8('0x18');var _0x50f00f=_0x1efbe1[_0x0be8('0x19')];var _0x22ff6b=_0x37b211?0x0:_0x3ece09[_0x0be8('0x17')];var _0x3e6c3c=_0x37b211?_0x1efbe1['count']:_0x3ece09['offset']+_0x3ece09[_0x0be8('0x1a')];var _0x3281f2;if(_0x3e6c3c>=_0x50f00f){_0x3e6c3c=_0x50f00f;_0x3281f2=0xc8;}else{_0x3281f2=0xce;}_0x4b27a7[_0x0be8('0x16')](_0x3281f2);return _0x4b27a7[_0x0be8('0x1b')](_0x0be8('0x1c'),_0x22ff6b+'-'+_0x3e6c3c+'/'+_0x50f00f)['json'](_0x1efbe1);}return null;};}function patchUpdates(_0x5b9667){return function(_0x26a45c){try{jsonpatch[_0x0be8('0x1d')](_0x26a45c,_0x5b9667,!![]);}catch(_0x545940){return BPromise[_0x0be8('0x1e')](_0x545940);}return _0x26a45c[_0x0be8('0x1f')]();};}function saveUpdates(_0x263082,_0x47e8e7){return function(_0x4ce073){if(_0x4ce073){return _0x4ce073['update'](_0x263082)[_0x0be8('0x20')](function(_0x5b20ad){return _0x5b20ad;});}return null;};}function removeEntity(_0x48fa59,_0x7d5b2f){return function(_0x44783b){if(_0x44783b){return _0x44783b[_0x0be8('0x21')]()['then'](function(){var _0x51b8f0=_0x44783b[_0x0be8('0x22')]({'plain':!![]});var _0x58ab7c=_0x0be8('0x23');return db['UserProfileResource']['destroy']({'where':{'type':_0x58ab7c,'resourceId':_0x51b8f0['id']}})[_0x0be8('0x20')](function(){return _0x44783b;});})[_0x0be8('0x20')](function(){_0x48fa59[_0x0be8('0x16')](0xcc)[_0x0be8('0x24')]();});}};}function handleEntityNotFound(_0x33bee4,_0x27fc7d){return function(_0x4e8883){if(!_0x4e8883){_0x33bee4[_0x0be8('0x25')](0x194);}return _0x4e8883;};}function handleError(_0x5284bd,_0x5e4d77){_0x5e4d77=_0x5e4d77||0x1f4;return function(_0x381c96){logger[_0x0be8('0x26')](_0x381c96['stack']);if(_0x381c96[_0x0be8('0x27')]){delete _0x381c96[_0x0be8('0x27')];}_0x5284bd[_0x0be8('0x16')](_0x5e4d77)[_0x0be8('0x28')](_0x381c96);};}exports[_0x0be8('0x29')]=function(_0x19d827,_0x4925c2){var _0xb353fc={},_0x3494a6={},_0x42d1a2={'count':0x0,'rows':[]};return db[_0x0be8('0x2a')][_0x0be8('0x2b')]()[_0x0be8('0x20')](function(_0x11abde){_0x3494a6[_0x0be8('0x2c')]=_['keys'](_0x11abde);_0x3494a6[_0x0be8('0x2d')]=_[_0x0be8('0x2e')](_0x19d827[_0x0be8('0x2d')]);_0x3494a6['filters']=_[_0x0be8('0x2f')](_0x3494a6[_0x0be8('0x2c')],_0x3494a6[_0x0be8('0x2d')]);_0xb353fc['attributes']=_['intersection'](_0x3494a6[_0x0be8('0x2c')],qs[_0x0be8('0x30')](_0x19d827[_0x0be8('0x2d')][_0x0be8('0x30')]));_0xb353fc[_0x0be8('0x31')]=_0xb353fc[_0x0be8('0x31')]['length']?_0xb353fc['attributes']:_0x3494a6[_0x0be8('0x2c')];if(!_0x19d827[_0x0be8('0x2d')][_0x0be8('0x32')]('nolimit')){_0xb353fc['limit']=qs[_0x0be8('0x1a')](_0x19d827[_0x0be8('0x2d')][_0x0be8('0x1a')]);_0xb353fc[_0x0be8('0x17')]=qs[_0x0be8('0x17')](_0x19d827[_0x0be8('0x2d')][_0x0be8('0x17')]);}_0xb353fc[_0x0be8('0x33')]=qs[_0x0be8('0x34')](_0x19d827[_0x0be8('0x2d')][_0x0be8('0x34')]);_0xb353fc[_0x0be8('0x35')]=qs[_0x0be8('0x36')](_[_0x0be8('0x37')](_0x19d827[_0x0be8('0x2d')],_0x3494a6[_0x0be8('0x36')]),_0x11abde);if(_0x19d827[_0x0be8('0x2d')][_0x0be8('0x38')]){_0xb353fc[_0x0be8('0x35')]=_[_0x0be8('0x39')](_0xb353fc[_0x0be8('0x35')],{'$or':_[_0x0be8('0x3a')](_0xb353fc[_0x0be8('0x31')],function(_0x30284e){var _0x2724e7={};_0x2724e7[_0x30284e]={'$like':'%'+_0x19d827[_0x0be8('0x2d')][_0x0be8('0x38')]+'%'};return _0x2724e7;})});}_0xb353fc=_['merge']({},_0xb353fc,_0x19d827[_0x0be8('0x3b')]);var _0x5c1fff={'where':_0xb353fc[_0x0be8('0x35')]};return db['CmCompany']['count'](_0x5c1fff)[_0x0be8('0x20')](function(_0x95de65){_0x42d1a2['count']=_0x95de65;if(_0x19d827[_0x0be8('0x2d')][_0x0be8('0x3c')]){_0xb353fc[_0x0be8('0x3d')]=[{'all':!![]}];}return db[_0x0be8('0x2a')][_0x0be8('0x3e')](_0xb353fc);})['then'](function(_0x1139a1){_0x42d1a2[_0x0be8('0x3f')]=_0x1139a1;return _0x42d1a2;})[_0x0be8('0x20')](respondWithFilteredResult(_0x4925c2,_0xb353fc))['catch'](handleError(_0x4925c2,null));})['catch'](handleError(_0x4925c2,null));};exports[_0x0be8('0x40')]=function(_0x55861a,_0x434193){var _0x28498d={'raw':![],'where':{'id':_0x55861a[_0x0be8('0x41')]['id']}},_0x9eab86={};_0x9eab86[_0x0be8('0x2c')]=_[_0x0be8('0x2e')](db[_0x0be8('0x2a')][_0x0be8('0x42')]);_0x9eab86['query']=_[_0x0be8('0x2e')](_0x55861a[_0x0be8('0x2d')]);_0x9eab86[_0x0be8('0x36')]=_['intersection'](_0x9eab86['model'],_0x9eab86[_0x0be8('0x2d')]);_0x28498d[_0x0be8('0x31')]=_[_0x0be8('0x2f')](_0x9eab86[_0x0be8('0x2c')],qs[_0x0be8('0x30')](_0x55861a[_0x0be8('0x2d')][_0x0be8('0x30')]));_0x28498d[_0x0be8('0x31')]=_0x28498d['attributes']['length']?_0x28498d[_0x0be8('0x31')]:_0x9eab86['model'];if(_0x55861a[_0x0be8('0x2d')][_0x0be8('0x3c')]){_0x28498d[_0x0be8('0x3d')]=[{'all':!![]}];}_0x28498d=_['merge']({},_0x28498d,_0x55861a[_0x0be8('0x3b')]);return db[_0x0be8('0x2a')][_0x0be8('0x43')](_0x28498d)['then'](handleEntityNotFound(_0x434193,null))[_0x0be8('0x20')](respondWithResult(_0x434193,null))[_0x0be8('0x44')](handleError(_0x434193,null));};exports[_0x0be8('0x45')]=function(_0x51eae7,_0xdd6ead){return db[_0x0be8('0x2a')]['create'](_0x51eae7['body'],{})['then'](function(_0x410d92){var _0x14fd65=_0x51eae7[_0x0be8('0x46')][_0x0be8('0x22')]({'plain':!![]});if(!_0x14fd65)throw new Error(_0x0be8('0x47'));if(_0x14fd65[_0x0be8('0x48')]==='user'){var _0xcf131c=_0x410d92[_0x0be8('0x22')]({'plain':!![]});var _0x189d1f='Companies';return db[_0x0be8('0x49')][_0x0be8('0x43')]({'where':{'name':_0x189d1f,'userProfileId':_0x14fd65[_0x0be8('0x4a')]},'raw':!![]})['then'](function(_0x677716){if(_0x677716&&_0x677716[_0x0be8('0x4b')]===0x0){return db[_0x0be8('0x4c')][_0x0be8('0x45')]({'name':_0xcf131c[_0x0be8('0x27')],'resourceId':_0xcf131c['id'],'type':_0x677716['name'],'sectionId':_0x677716['id']},{})['then'](function(){return _0x410d92;});}else{return _0x410d92;}})['catch'](function(_0x299c37){logger[_0x0be8('0x26')](_0x0be8('0x4d'),_0x299c37);throw _0x299c37;});}return _0x410d92;})['then'](respondWithResult(_0xdd6ead,0xc9))[_0x0be8('0x44')](handleError(_0xdd6ead,null));};exports[_0x0be8('0x4e')]=function(_0xa8dc9c,_0x4979bf){if(_0xa8dc9c[_0x0be8('0x4f')]['id']){delete _0xa8dc9c[_0x0be8('0x4f')]['id'];}return db[_0x0be8('0x2a')]['find']({'where':{'id':_0xa8dc9c['params']['id']}})['then'](handleEntityNotFound(_0x4979bf,null))[_0x0be8('0x20')](saveUpdates(_0xa8dc9c['body'],null))[_0x0be8('0x20')](respondWithResult(_0x4979bf,null))[_0x0be8('0x44')](handleError(_0x4979bf,null));};exports['destroy']=function(_0x559c9a,_0x33b652){return db['CmCompany'][_0x0be8('0x43')]({'where':{'id':_0x559c9a[_0x0be8('0x41')]['id']}})['then'](handleEntityNotFound(_0x33b652,null))['then'](removeEntity(_0x33b652,null))[_0x0be8('0x44')](handleError(_0x33b652,null));};exports['describe']=function(_0x209467,_0x121365){return db['CmCompany'][_0x0be8('0x2b')]()[_0x0be8('0x20')](respondWithResult(_0x121365,null))[_0x0be8('0x44')](handleError(_0x121365,null));};exports[_0x0be8('0x50')]=function(_0x5eaa5b,_0x21bd78,_0x288da7){return db[_0x0be8('0x51')][_0x0be8('0x43')]({'where':{'id':_0x5eaa5b['params']['id']}})[_0x0be8('0x20')](handleEntityNotFound(_0x21bd78,null))[_0x0be8('0x20')](function(_0x1dfd10){if(_0x1dfd10){return _0x1dfd10[_0x0be8('0x50')](_0x5eaa5b[_0x0be8('0x4f')]['ids'],_['omit'](_0x5eaa5b['body'],[_0x0be8('0x52'),'id'])||{});}})[_0x0be8('0x20')](respondWithResult(_0x21bd78,null))[_0x0be8('0x44')](handleError(_0x21bd78,null));};exports[_0x0be8('0x53')]=function(_0x4cc89f,_0x105a2d,_0x34cf57){var _0x45992b={};var _0x529221={};var _0x151250;var _0x2c27ba;return db[_0x0be8('0x2a')][_0x0be8('0x54')]({'where':{'id':_0x4cc89f[_0x0be8('0x41')]['id']}})[_0x0be8('0x20')](handleEntityNotFound(_0x105a2d,null))[_0x0be8('0x20')](function(_0x2badd1){if(_0x2badd1){_0x151250=_0x2badd1;_0x529221[_0x0be8('0x2c')]=_['keys'](db[_0x0be8('0x51')][_0x0be8('0x42')]);_0x529221['query']=_[_0x0be8('0x2e')](_0x4cc89f[_0x0be8('0x2d')]);_0x529221[_0x0be8('0x36')]=_[_0x0be8('0x2f')](_0x529221[_0x0be8('0x2c')],_0x529221[_0x0be8('0x2d')]);_0x45992b['attributes']=_[_0x0be8('0x2f')](_0x529221[_0x0be8('0x2c')],qs[_0x0be8('0x30')](_0x4cc89f[_0x0be8('0x2d')][_0x0be8('0x30')]));_0x45992b[_0x0be8('0x31')]=_0x45992b[_0x0be8('0x31')]['length']?_0x45992b[_0x0be8('0x31')]:_0x529221[_0x0be8('0x2c')];_0x45992b[_0x0be8('0x33')]=qs[_0x0be8('0x34')](_0x4cc89f[_0x0be8('0x2d')][_0x0be8('0x34')]);_0x45992b['where']=qs[_0x0be8('0x36')](_['pick'](_0x4cc89f['query'],_0x529221['filters']));if(_0x4cc89f[_0x0be8('0x2d')]['filter']){_0x45992b[_0x0be8('0x35')]=_[_0x0be8('0x39')](_0x45992b[_0x0be8('0x35')],{'$or':_[_0x0be8('0x3a')](_0x45992b['attributes'],function(_0x2d1a93){var _0x279a20={};_0x279a20[_0x2d1a93]={'$like':'%'+_0x4cc89f[_0x0be8('0x2d')][_0x0be8('0x38')]+'%'};return _0x279a20;})});}_0x45992b=_[_0x0be8('0x39')]({},_0x45992b,_0x4cc89f[_0x0be8('0x3b')]);return _0x151250['getContacts'](_0x45992b);}})[_0x0be8('0x20')](function(_0x4bf49d){if(_0x4bf49d){_0x2c27ba=_0x4bf49d['length'];if(!_0x4cc89f[_0x0be8('0x2d')]['hasOwnProperty'](_0x0be8('0x55'))){_0x45992b[_0x0be8('0x1a')]=qs['limit'](_0x4cc89f[_0x0be8('0x2d')][_0x0be8('0x1a')]);_0x45992b['offset']=qs[_0x0be8('0x17')](_0x4cc89f[_0x0be8('0x2d')]['offset']);}return _0x151250[_0x0be8('0x53')](_0x45992b);}})[_0x0be8('0x20')](function(_0x4070aa){if(_0x4070aa){return _0x4070aa?{'count':_0x2c27ba,'rows':_0x4070aa}:null;}})[_0x0be8('0x20')](respondWithResult(_0x105a2d,null))[_0x0be8('0x44')](handleError(_0x105a2d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbab0=['bluebird','request-promise','path','rimraf','../../config/environment','./cmCompany.attributes','exports','define','CmCompany','cm_companies','util','moment'];(function(_0x1f8b2f,_0x524a30){var _0x156a05=function(_0xd824c7){while(--_0xd824c7){_0x1f8b2f['push'](_0x1f8b2f['shift']());}};_0x156a05(++_0x524a30);}(_0xbab0,0x6a));var _0x0bab=function(_0x47b118,_0x116c5d){_0x47b118=_0x47b118-0x0;var _0x17aacf=_0xbab0[_0x47b118];return _0x17aacf;};'use strict';var _=require('lodash');var util=require(_0x0bab('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x0bab('0x1'));var BPromise=require(_0x0bab('0x2'));var rp=require(_0x0bab('0x3'));var fs=require('fs');var path=require(_0x0bab('0x4'));var rimraf=require(_0x0bab('0x5'));var config=require(_0x0bab('0x6'));var attributes=require(_0x0bab('0x7'));module[_0x0bab('0x8')]=function(_0x1ffbe9,_0x4c9d2d){return _0x1ffbe9[_0x0bab('0x9')](_0x0bab('0xa'),attributes,{'tableName':_0x0bab('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb44c=['lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment','./cmCompany.attributes','define','CmCompany','cm_companies'];(function(_0x523adf,_0x3e1620){var _0x283870=function(_0xa0e816){while(--_0xa0e816){_0x523adf['push'](_0x523adf['shift']());}};_0x283870(++_0x3e1620);}(_0xb44c,0x6c));var _0xcb44=function(_0x1ae78f,_0x122ed2){_0x1ae78f=_0x1ae78f-0x0;var _0x5baf80=_0xb44c[_0x1ae78f];return _0x5baf80;};'use strict';var _=require(_0xcb44('0x0'));var util=require(_0xcb44('0x1'));var logger=require('../../config/logger')(_0xcb44('0x2'));var moment=require('moment');var BPromise=require(_0xcb44('0x3'));var rp=require(_0xcb44('0x4'));var fs=require('fs');var path=require(_0xcb44('0x5'));var rimraf=require(_0xcb44('0x6'));var config=require(_0xcb44('0x7'));var attributes=require(_0xcb44('0x8'));module['exports']=function(_0x40c1a8,_0x12fc2a){return _0x40c1a8[_0xcb44('0x9')](_0xcb44('0xa'),attributes,{'tableName':_0xcb44('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0944=['stringify','error','message','result','catch','lodash','bluebird','ioredis','rpc','../../config/environment','http','request','info','CmCompany,\x20%s,\x20%s','request\x20sent','CmCompany,\x20%s,\x20%s,\x20%s'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x0944,0xb5));var _0x4094=function(_0x4bb581,_0x6f7037){_0x4bb581=_0x4bb581-0x0;var _0x316bf5=_0x0944[_0x4bb581];return _0x316bf5;};'use strict';var _=require(_0x4094('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x4094('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4094('0x2'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x4094('0x3'));var config=require(_0x4094('0x4'));var jayson=require('jayson/promise');var client=jayson['client'][_0x4094('0x5')]({'port':0x232a});function respondWithRpcPromise(_0x3ef8b7,_0x42996f,_0x2b79c9){return new BPromise(function(_0x135516,_0x26b655){return client[_0x4094('0x6')](_0x3ef8b7,_0x2b79c9)['then'](function(_0x1bebc8){logger[_0x4094('0x7')](_0x4094('0x8'),_0x42996f,_0x4094('0x9'));logger['debug'](_0x4094('0xa'),_0x42996f,'request\x20sent',JSON[_0x4094('0xb')](_0x1bebc8));if(_0x1bebc8[_0x4094('0xc')]){if(_0x1bebc8[_0x4094('0xc')]['code']===0x1f4){logger[_0x4094('0xc')](_0x4094('0x8'),_0x42996f,_0x1bebc8[_0x4094('0xc')][_0x4094('0xd')]);return _0x26b655(_0x1bebc8['error'][_0x4094('0xd')]);}logger[_0x4094('0xc')](_0x4094('0x8'),_0x42996f,_0x1bebc8['error'][_0x4094('0xd')]);return _0x135516(_0x1bebc8[_0x4094('0xc')][_0x4094('0xd')]);}else{logger[_0x4094('0x7')](_0x4094('0x8'),_0x42996f,_0x4094('0x9'));_0x135516(_0x1bebc8[_0x4094('0xe')][_0x4094('0xd')]);}})[_0x4094('0xf')](function(_0x207ece){logger[_0x4094('0xc')](_0x4094('0x8'),_0x42996f,_0x207ece);_0x26b655(_0x207ece);});});}
\ No newline at end of file
+var _0xc3ec=['CmCompany,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','CmCompany,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xc3ec,0x13f));var _0xcc3e=function(_0x455616,_0x5c5d00){_0x455616=_0x455616-0x0;var _0x249090=_0xc3ec[_0x455616];return _0x249090;};'use strict';var _=require(_0xcc3e('0x0'));var util=require(_0xcc3e('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xcc3e('0x2'));var fs=require('fs');var Redis=require(_0xcc3e('0x3'));var db=require(_0xcc3e('0x4'))['db'];var utils=require(_0xcc3e('0x5'));var logger=require(_0xcc3e('0x6'))(_0xcc3e('0x7'));var config=require(_0xcc3e('0x8'));var jayson=require(_0xcc3e('0x9'));var client=jayson[_0xcc3e('0xa')][_0xcc3e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3cab51,_0x3987d4,_0x474cdf){return new BPromise(function(_0x153542,_0xb2445b){return client[_0xcc3e('0xc')](_0x3cab51,_0x474cdf)[_0xcc3e('0xd')](function(_0x388f8b){logger['info'](_0xcc3e('0xe'),_0x3987d4,_0xcc3e('0xf'));logger[_0xcc3e('0x10')](_0xcc3e('0x11'),_0x3987d4,'request\x20sent',JSON[_0xcc3e('0x12')](_0x388f8b));if(_0x388f8b['error']){if(_0x388f8b[_0xcc3e('0x13')][_0xcc3e('0x14')]===0x1f4){logger['error']('CmCompany,\x20%s,\x20%s',_0x3987d4,_0x388f8b[_0xcc3e('0x13')][_0xcc3e('0x15')]);return _0xb2445b(_0x388f8b['error'][_0xcc3e('0x15')]);}logger[_0xcc3e('0x13')](_0xcc3e('0xe'),_0x3987d4,_0x388f8b[_0xcc3e('0x13')][_0xcc3e('0x15')]);return _0x153542(_0x388f8b[_0xcc3e('0x13')][_0xcc3e('0x15')]);}else{logger[_0xcc3e('0x16')](_0xcc3e('0xe'),_0x3987d4,_0xcc3e('0xf'));_0x153542(_0x388f8b[_0xcc3e('0x17')][_0xcc3e('0x15')]);}})['catch'](function(_0x5d83a4){logger['error'](_0xcc3e('0xe'),_0x3987d4,_0x5d83a4);_0xb2445b(_0x5d83a4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc66b=['/:id/contacts','getContacts','post','addContacts','put','update','delete','destroy','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./cmCompany.controller','get','isAuthenticated','/describe','describe','/:id','show'];(function(_0x41d22a,_0x27af98){var _0x67fef0=function(_0x22a24c){while(--_0x22a24c){_0x41d22a['push'](_0x41d22a['shift']());}};_0x67fef0(++_0x27af98);}(_0xc66b,0x76));var _0xbc66=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0xc66b[_0x15bc81];return _0x59440e;};'use strict';var multer=require(_0xbc66('0x0'));var util=require(_0xbc66('0x1'));var path=require('path');var timeout=require(_0xbc66('0x2'));var express=require('express');var router=express[_0xbc66('0x3')]();var fs_extra=require(_0xbc66('0x4'));var auth=require(_0xbc66('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xbc66('0x6'));var controller=require(_0xbc66('0x7'));router[_0xbc66('0x8')]('/',auth[_0xbc66('0x9')](),controller['index']);router['get'](_0xbc66('0xa'),auth[_0xbc66('0x9')](),controller[_0xbc66('0xb')]);router['get'](_0xbc66('0xc'),auth[_0xbc66('0x9')](),controller[_0xbc66('0xd')]);router[_0xbc66('0x8')](_0xbc66('0xe'),auth[_0xbc66('0x9')](),controller[_0xbc66('0xf')]);router[_0xbc66('0x10')]('/',auth[_0xbc66('0x9')](),controller['create']);router[_0xbc66('0x10')](_0xbc66('0xe'),auth[_0xbc66('0x9')](),controller[_0xbc66('0x11')]);router[_0xbc66('0x12')]('/:id',auth['isAuthenticated'](),controller[_0xbc66('0x13')]);router[_0xbc66('0x14')]('/:id',auth['isAuthenticated'](),controller[_0xbc66('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0x9c4a=['./cmCompany.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/contacts','post','create','addContacts','update','delete','exports','util','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x26462c,_0xd20a35){var _0x509a42=function(_0x1b22c9){while(--_0x1b22c9){_0x26462c['push'](_0x26462c['shift']());}};_0x509a42(++_0xd20a35);}(_0x9c4a,0x1dd));var _0xa9c4=function(_0x136619,_0x31c9b2){_0x136619=_0x136619-0x0;var _0x38c4a5=_0x9c4a[_0x136619];return _0x38c4a5;};'use strict';var multer=require('multer');var util=require(_0xa9c4('0x0'));var path=require('path');var timeout=require(_0xa9c4('0x1'));var express=require(_0xa9c4('0x2'));var router=express['Router']();var fs_extra=require(_0xa9c4('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa9c4('0x4'));var config=require(_0xa9c4('0x5'));var controller=require(_0xa9c4('0x6'));router[_0xa9c4('0x7')]('/',auth[_0xa9c4('0x8')](),controller[_0xa9c4('0x9')]);router[_0xa9c4('0x7')](_0xa9c4('0xa'),auth[_0xa9c4('0x8')](),controller[_0xa9c4('0xb')]);router[_0xa9c4('0x7')](_0xa9c4('0xc'),auth[_0xa9c4('0x8')](),controller[_0xa9c4('0xd')]);router[_0xa9c4('0x7')](_0xa9c4('0xe'),auth[_0xa9c4('0x8')](),controller['getContacts']);router[_0xa9c4('0xf')]('/',auth[_0xa9c4('0x8')](),controller[_0xa9c4('0x10')]);router[_0xa9c4('0xf')](_0xa9c4('0xe'),auth[_0xa9c4('0x8')](),controller[_0xa9c4('0x11')]);router['put'](_0xa9c4('0xc'),auth[_0xa9c4('0x8')](),controller[_0xa9c4('0x12')]);router[_0xa9c4('0x13')](_0xa9c4('0xc'),auth[_0xa9c4('0x8')](),controller['destroy']);module[_0xa9c4('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd00=['NOW','lodash','sequelize','exports','STRING','TEXT','INTEGER','UNSIGNED'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xcd00,0xb1));var _0x0cd0=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xcd00[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x0cd0('0x0'));var Sequelize=require(_0x0cd0('0x1'));module[_0x0cd0('0x2')]={'firstName':{'type':Sequelize[_0x0cd0('0x3')],'allowNull':![]},'lastName':{'type':Sequelize[_0x0cd0('0x3')]},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize[_0x0cd0('0x3')]},'city':{'type':Sequelize[_0x0cd0('0x3')]},'country':{'type':Sequelize[_0x0cd0('0x3')]},'dateOfBirth':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x0cd0('0x4')]},'phone':{'type':Sequelize[_0x0cd0('0x3')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0x0cd0('0x3')]},'email':{'type':Sequelize['STRING']},'url':{'type':Sequelize[_0x0cd0('0x3')]},'facebook':{'type':Sequelize[_0x0cd0('0x3')]},'fb_data':{'type':Sequelize[_0x0cd0('0x3')]},'twitter':{'type':Sequelize[_0x0cd0('0x3')]},'skype':{'type':Sequelize[_0x0cd0('0x3')]},'teams':{'type':Sequelize[_0x0cd0('0x3')]},'viber':{'type':Sequelize[_0x0cd0('0x3')]},'line':{'type':Sequelize['STRING']},'wechat':{'type':Sequelize[_0x0cd0('0x3')]},'telegram':{'type':Sequelize[_0x0cd0('0x3')]},'UserId':{'type':Sequelize['INTEGER']},'priority':{'type':Sequelize[_0x0cd0('0x5')](0x2)[_0x0cd0('0x6')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':Sequelize[_0x0cd0('0x7')]}};
\ No newline at end of file
+var _0x4e1e=['exports','STRING','TEXT','INTEGER','DATE','NOW','lodash'];(function(_0x2a0183,_0x3fc93c){var _0x158c3a=function(_0x57a903){while(--_0x57a903){_0x2a0183['push'](_0x2a0183['shift']());}};_0x158c3a(++_0x3fc93c);}(_0x4e1e,0xfb));var _0xe4e1=function(_0x434804,_0x415f68){_0x434804=_0x434804-0x0;var _0x573fc8=_0x4e1e[_0x434804];return _0x573fc8;};'use strict';var _=require(_0xe4e1('0x0'));var Sequelize=require('sequelize');module[_0xe4e1('0x1')]={'firstName':{'type':Sequelize[_0xe4e1('0x2')],'allowNull':![]},'lastName':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0xe4e1('0x2')]},'postalCode':{'type':Sequelize[_0xe4e1('0x2')]},'city':{'type':Sequelize[_0xe4e1('0x2')]},'country':{'type':Sequelize[_0xe4e1('0x2')]},'dateOfBirth':{'type':Sequelize[_0xe4e1('0x2')]},'description':{'type':Sequelize[_0xe4e1('0x3')]},'phone':{'type':Sequelize[_0xe4e1('0x2')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0xe4e1('0x2')]},'email':{'type':Sequelize[_0xe4e1('0x2')]},'url':{'type':Sequelize['STRING']},'facebook':{'type':Sequelize['STRING']},'fb_data':{'type':Sequelize[_0xe4e1('0x2')]},'twitter':{'type':Sequelize['STRING']},'skype':{'type':Sequelize['STRING']},'teams':{'type':Sequelize[_0xe4e1('0x2')]},'viber':{'type':Sequelize[_0xe4e1('0x2')]},'line':{'type':Sequelize[_0xe4e1('0x2')]},'wechat':{'type':Sequelize['STRING']},'telegram':{'type':Sequelize[_0xe4e1('0x2')]},'UserId':{'type':Sequelize['INTEGER']},'priority':{'type':Sequelize[_0xe4e1('0x4')](0x2)['UNSIGNED'],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0xe4e1('0x5')],'defaultValue':Sequelize[_0xe4e1('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f77=['../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','sendStatus','status','end','json','limit','undefined','count','offset','set','apply','reject','save','update','then','error','stack','name','send','index','CmContact','describe','keys','length','startsWith','cf_','push','CmCustomField','findOne','trimStart','all','fieldType','type','model','query','intersection','attributes','fields','hasOwnProperty','sort','where','filters','pick','select','field','color','from','tools_tags','cm_contacts','left_join','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','cm_contact_has_tags','ct.CmContactId\x20=\x20c.id','c.deletedAt\x20IS\x20NULL','expr','search','parseSearch','sqlOperator','conditions','find','Tag','value','map','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','and','dateOfBirth','datetime','castTo','DATE','text','start','filter','Contact','ListId','c.ListId\x20IN\x20?','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','isArray','tag','replace','split','isNumeric','c.phone\x20LIKE\x20?','c.mobile\x20LIKE\x20?','c.fax\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','c.id','Sequelize','SELECT','clone','order','forEach','DESC','isEmpty','having','t.id\x20IN\x20?','resolve','user','role','agent','some','getLists','c.ListId\x20IS\x20NULL','sequelize','toString','keyBy','c.firstName','c.lastName','c.phone','c.fax','c.ListId','c.createdAt','c.deletedAt','c.CompanyId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','catch','destroy','params','tags','columnName','displayName','custom','merge','body','findAll','get','mergeWith','join','info','CmHopper','CmHopperBlack','create','ChatInteraction','ChatMessage','MailInteraction','SmsInteraction','SmsMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','CmHopperFinal','CmHopperHistory','ReportAgentPreview','FaxQueueReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappMessage','WhatsappQueueReport','each','duplicates','$or','findOrCreate','show','$and','omit','format','cf_%d','pickBy','setFields','values','phone','getTags','rawAttributes','options','setTags','ids','nolimit','includeAll','include','ContactId','getHopperFinals','getJscriptySessions','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','Incorrect\x20binding\x20parameters\x20passed!','zipObject','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','filename','chmodSync','0777','child_process','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','upload','createReadStream','file','parse','meta','binding','No\x20phone\x20column\x20specified','socket_timestamp','fork','../../components/import/cm/csv2','stringify','pid','exit','error\x20child\x20process','getJourney','mail','chat','sms','openchannel','-createdAt','channel','includes','toLowerCase','Invalid\x20channel','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20createdAt\x20filter','voice','destination','duration','note','createdAt','userSecondDisposition','userThirdDisposition','alias','VoiceCallReport','findAndCountAll','fullname','startCase','Website','Account','closedAt','disposition','secondDisposition','thirdDisposition','key','Owner','browserName','customerIp','customerPort','deviceModel','osName','ratingMessage','ratingType','ratingValue','Interaction','flatten','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service'];(function(_0x56fa66,_0x574504){var _0x1ba609=function(_0x22a11d){while(--_0x22a11d){_0x56fa66['push'](_0x56fa66['shift']());}};_0x1ba609(++_0x574504);}(_0x1f77,0x10d));var _0x71f7=function(_0x11cbf6,_0x161332){_0x11cbf6=_0x11cbf6-0x0;var _0x504fd2=_0x1f77[_0x11cbf6];return _0x504fd2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x71f7('0x0'));var zipdir=require(_0x71f7('0x1'));var jsonpatch=require(_0x71f7('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x71f7('0x3'));var Mustache=require(_0x71f7('0x4'));var util=require(_0x71f7('0x5'));var path=require(_0x71f7('0x6'));var sox=require(_0x71f7('0x7'));var csv=require(_0x71f7('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x71f7('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x71f7('0xa'));var deskjs=require(_0x71f7('0xb'));var toCsv=require(_0x71f7('0x8'));var querystring=require('querystring');var Papa=require(_0x71f7('0xc'));var Redis=require(_0x71f7('0xd'));var authService=require(_0x71f7('0xe'));var qs=require(_0x71f7('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x71f7('0x10'));var logger=require('../../config/logger')(_0x71f7('0x11'));var utils=require(_0x71f7('0x12'));var config=require(_0x71f7('0x13'));var licenseUtil=require(_0x71f7('0x14'));var db=require(_0x71f7('0x15'))['db'];config[_0x71f7('0x16')]=_[_0x71f7('0x17')](config[_0x71f7('0x16')],{'host':_0x71f7('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x71f7('0x16')]));require('./cmContact.socket')['register'](socket);function respondWithStatusCode(_0x6636bd,_0x48b4cb){_0x48b4cb=_0x48b4cb||0xcc;return function(_0x299f3c){if(_0x299f3c){return _0x6636bd[_0x71f7('0x19')](_0x48b4cb);}return _0x6636bd[_0x71f7('0x1a')](_0x48b4cb)[_0x71f7('0x1b')]();};}function respondWithResult(_0x396cf8,_0x30ea97){_0x30ea97=_0x30ea97||0xc8;return function(_0x17ef99){if(_0x17ef99){return _0x396cf8[_0x71f7('0x1a')](_0x30ea97)[_0x71f7('0x1c')](_0x17ef99);}};}function respondWithFilteredResult(_0x239cdd,_0x1a3e84){return function(_0xf2af6){if(_0xf2af6){var _0x4e1104=typeof _0x1a3e84['offset']==='undefined'&&typeof _0x1a3e84[_0x71f7('0x1d')]===_0x71f7('0x1e');var _0x1ac2d1=_0xf2af6[_0x71f7('0x1f')];var _0x1ca8a2=_0x4e1104?0x0:_0x1a3e84[_0x71f7('0x20')];var _0x150e17=_0x4e1104?_0xf2af6[_0x71f7('0x1f')]:_0x1a3e84['offset']+_0x1a3e84['limit'];var _0x2d38fa;if(_0x150e17>=_0x1ac2d1){_0x150e17=_0x1ac2d1;_0x2d38fa=0xc8;}else{_0x2d38fa=0xce;}_0x239cdd[_0x71f7('0x1a')](_0x2d38fa);return _0x239cdd[_0x71f7('0x21')]('Content-Range',_0x1ca8a2+'-'+_0x150e17+'/'+_0x1ac2d1)[_0x71f7('0x1c')](_0xf2af6);}return null;};}function patchUpdates(_0x43f12b){return function(_0x4db1a1){try{jsonpatch[_0x71f7('0x22')](_0x4db1a1,_0x43f12b,!![]);}catch(_0x4b8a85){return BPromise[_0x71f7('0x23')](_0x4b8a85);}return _0x4db1a1[_0x71f7('0x24')]();};}function saveUpdates(_0x464a34,_0x4d8c6d){return function(_0x44830f){if(_0x44830f){return _0x44830f[_0x71f7('0x25')](_0x464a34)[_0x71f7('0x26')](function(_0x546894){return _0x546894;});}return null;};}function removeEntity(_0xeb289b,_0x11ecec){return function(_0x218790){if(_0x218790){return _0x218790['destroy']()[_0x71f7('0x26')](function(){_0xeb289b[_0x71f7('0x1a')](0xcc)[_0x71f7('0x1b')]();});}};}function handleEntityNotFound(_0x1b5358,_0x2fb854){return function(_0x4f3660){if(!_0x4f3660){_0x1b5358[_0x71f7('0x19')](0x194);}return _0x4f3660;};}function handleError(_0x1d89f9,_0x3456eb){_0x3456eb=_0x3456eb||0x1f4;return function(_0x496a08){logger[_0x71f7('0x27')](_0x496a08[_0x71f7('0x28')]);if(_0x496a08[_0x71f7('0x29')]){delete _0x496a08['name'];}_0x1d89f9['status'](_0x3456eb)[_0x71f7('0x2a')](_0x496a08);};}exports[_0x71f7('0x2b')]=function(_0x5bcba7,_0x249905){var _0x5a5b6e={},_0x192341={},_0x45a716={'count':0x0,'rows':[]};return db[_0x71f7('0x2c')][_0x71f7('0x2d')]()['then'](function(_0x502fa9){var _0x510e8a=[];for(var _0x1ee965=0x0;_0x1ee965<Object[_0x71f7('0x2e')](_0x502fa9)[_0x71f7('0x2f')];_0x1ee965++){var _0xb76fd=Object['keys'](_0x502fa9)[_0x1ee965];if(_[_0x71f7('0x30')](_0xb76fd,_0x71f7('0x31'))){_0x510e8a[_0x71f7('0x32')](db[_0x71f7('0x33')][_0x71f7('0x34')]({'where':{'id':_[_0x71f7('0x35')](_0xb76fd,_0x71f7('0x31'))},'raw':!![]}));}}return BPromise[_0x71f7('0x36')](_0x510e8a)[_0x71f7('0x26')](function(_0x47057c){for(var _0x15773f=0x0;_0x15773f<_0x47057c['length'];_0x15773f++){if(_0x47057c[_0x15773f]){var _0x586c53=_0x71f7('0x31')+_0x47057c[_0x15773f]['id'];var _0x4486c5=_0x502fa9[_0x586c53];_0x4486c5[_0x71f7('0x37')]=_0x47057c[_0x15773f][_0x71f7('0x38')];}}return _0x502fa9;});})[_0x71f7('0x26')](function(_0x4b1f8d){_0x192341[_0x71f7('0x39')]=_['keys'](_0x4b1f8d);_0x192341[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x5bcba7[_0x71f7('0x3a')]);_0x192341['filters']=_[_0x71f7('0x3b')](_0x192341[_0x71f7('0x39')],_0x192341[_0x71f7('0x3a')]);_0x5a5b6e[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x192341[_0x71f7('0x39')],qs[_0x71f7('0x3d')](_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x3d')]));_0x5a5b6e[_0x71f7('0x3c')]=_0x5a5b6e[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0x5a5b6e[_0x71f7('0x3c')]:_0x192341[_0x71f7('0x39')];if(!_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x3e')]('nolimit')){_0x5a5b6e[_0x71f7('0x1d')]=qs['limit'](_0x5bcba7['query']['limit']);_0x5a5b6e[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x5bcba7[_0x71f7('0x3a')]['offset']);}_0x5a5b6e['order']=qs[_0x71f7('0x3f')](_0x5bcba7['query']['sort']);_0x5a5b6e[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0x5bcba7[_0x71f7('0x3a')],_0x192341['filters']),_0x4b1f8d);var _0x1cd426=[];var _0x2d37c8=squel[_0x71f7('0x43')]()['field']('id')[_0x71f7('0x44')](_0x71f7('0x29'))[_0x71f7('0x44')](_0x71f7('0x45'))[_0x71f7('0x46')](_0x71f7('0x47'));var _0xe25555=squel['select']()[_0x71f7('0x46')](_0x71f7('0x48'),'c')[_0x71f7('0x49')](_0x71f7('0x4a'),'uc',_0x71f7('0x4b'))['left_join'](_0x71f7('0x4c'),'ct',_0x71f7('0x4d'))[_0x71f7('0x49')]('tools_tags','t','t.id\x20=\x20ct.TagId')[_0x71f7('0x40')](_0x71f7('0x4e'));var _0x161e49=squel[_0x71f7('0x4f')]();var _0x5ec044=[];var _0x3c1e84=squel[_0x71f7('0x4f')]();var _0xfc3fca;if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x50')]){_0xfc3fca=as[_0x71f7('0x51')](_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x50')]);var _0x46fccc=_0xfc3fca[_0x71f7('0x52')];for(var _0x551002=0x0;_0x551002<_0xfc3fca[_0x71f7('0x53')][_0x71f7('0x2f')];_0x551002++){var _0x542757=_0xfc3fca[_0x71f7('0x53')][_0x551002];var _0x310848='c';var _0x2e418f=_(_0x4b1f8d)[_0x71f7('0x2e')]()[_0x71f7('0x54')](function(_0x257ff3){return _0x257ff3===_0x542757[_0x71f7('0x44')];});if(_0x2e418f)_0x2e418f=_0x4b1f8d[_0x542757[_0x71f7('0x44')]];if(!_0x2e418f){if(_0x542757[_0x71f7('0x44')]===_0x71f7('0x55')){var _0x2c9ee0=_0x542757[_0x71f7('0x56')]['split'](',')[_0x71f7('0x57')](function(_0x20b090){return Number(_0x20b090);});_0x2c9ee0['forEach'](function(_0x4f2bd5){_0x3c1e84['or'](_0x71f7('0x58'),'%,'+_0x4f2bd5+',%');});_0x5ec044=_[_0x71f7('0x59')](_0x5ec044,_0x2c9ee0);}else if(_0x542757['field']===_0x71f7('0x5a')){_0x161e49[_0x71f7('0x5b')]('uc.UserId\x20=\x20?',_0x542757[_0x71f7('0x56')]);}}else{if(_0x542757[_0x71f7('0x44')]===_0x71f7('0x5c')||_0x2e418f[_0x71f7('0x37')]===_0x71f7('0x5d'))_0x542757[_0x71f7('0x5e')]=_0x71f7('0x5f');var _0x3c6c84=as['buildExpression'](_0x310848,_0x2e418f['type'],_0x542757);_0x161e49[_0x46fccc](_0x3c6c84[_0x71f7('0x60')],_0x3c6c84[_0x71f7('0x56')][_0x71f7('0x61')],_0x3c6c84[_0x71f7('0x56')][_0x71f7('0x1b')]);}}}else{var _0x334e66=_(Object['keys'](_0x5bcba7[_0x71f7('0x3a')]))['map'](function(_0x74fd7d){return _0x4b1f8d[_0x71f7('0x3e')](_0x74fd7d)?_0x74fd7d:undefined;})[_0x71f7('0x62')](function(_0x1df3c2){return!_['isNil'](_0x1df3c2);})[_0x71f7('0x56')]();if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x63')])_0x334e66['push'](_0x71f7('0x63'));if(!_['isEmpty'](_0x334e66)){_0x334e66['forEach'](function(_0x4dfe37){if(_0x4dfe37===_0x71f7('0x64')){_0xe25555['where'](_0x71f7('0x65'),[]['concat'](_0x5bcba7[_0x71f7('0x3a')][_0x4dfe37]));}else if(_0x4dfe37===_0x71f7('0x63')){var _0x19ade6='%'+_0x5bcba7[_0x71f7('0x3a')][_0x4dfe37]+'%';_0xe25555[_0x71f7('0x40')](_0x71f7('0x66'),_0x19ade6);}else{_0xe25555[_0x71f7('0x40')]('c.'+_0x4dfe37+_0x71f7('0x67'),_0x5bcba7[_0x71f7('0x3a')][_0x4dfe37]);}});}if(_0x5bcba7[_0x71f7('0x3a')]['tag']){_0x5ec044=_[_0x71f7('0x68')](_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x69')])?_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x69')]:new Array(_0x5bcba7['query'][_0x71f7('0x69')]);_0x5ec044['forEach'](function(_0x485a24){_0x3c1e84['or'](_0x71f7('0x58'),'%,'+_0x485a24+',%');});}if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x62')]){var _0xfd41f1=_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x62')][_0x71f7('0x6a')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(_0xfd41f1[_0x71f7('0x6b')]('\x20')[_0x71f7('0x2f')]>0x1){_0x161e49['or']('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0xfd41f1),null);}else{if(qs[_0x71f7('0x6c')](_0xfd41f1)){_0x161e49['or']('c.id\x20LIKE\x20?',_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x6d'),_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x6e'),_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x6f'),_0xfd41f1+'%');}else if(qs[_0x71f7('0x70')](_0xfd41f1)){_0x161e49['or'](_0x71f7('0x71'),_0xfd41f1+'%');}else{_0x161e49['or'](_0x71f7('0x72'),'%'+_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x73'),'%'+_0xfd41f1+'%');_0x161e49['or']('c.email\x20LIKE\x20?','%'+_0xfd41f1+'%');}}}}_0xe25555[_0x71f7('0x40')](_0x161e49);_0xe25555['group'](_0x71f7('0x74'));var _0x4f494d={'type':db[_0x71f7('0x75')]['QueryTypes'][_0x71f7('0x76')],'raw':!![]};var _0x559a83=_0xe25555[_0x71f7('0x77')]()[_0x71f7('0x44')](_0x71f7('0x74'));if(_0x5a5b6e['order']){_0x5a5b6e[_0x71f7('0x78')][_0x71f7('0x79')](function(_0x18ac8d){_0xe25555[_0x71f7('0x78')]('c.'+_0x18ac8d[0x0],_0x18ac8d[0x1]===_0x71f7('0x7a')?![]:!![]);});}if(!_[_0x71f7('0x7b')](_0x5ec044)){_0xe25555[_0x71f7('0x7c')](_0x3c1e84);_0x559a83[_0x71f7('0x40')](_0x71f7('0x7d'),_0x5ec044);}BPromise[_0x71f7('0x7e')]()[_0x71f7('0x26')](function(){if(!_0xfc3fca)return;if(_0x5bcba7[_0x71f7('0x7f')][_0x71f7('0x80')]!==_0x71f7('0x81'))return;if(!_[_0x71f7('0x82')](_0xfc3fca[_0x71f7('0x53')],[_0x71f7('0x44'),_0x71f7('0x5a')])){return _0x5bcba7[_0x71f7('0x7f')][_0x71f7('0x83')]({'attributes':['id'],'raw':!![]})[_0x71f7('0x26')](function(_0x3682b8){if(_[_0x71f7('0x7b')](_0x3682b8)){_0x559a83[_0x71f7('0x40')](_0x71f7('0x84'));_0xe25555['where']('c.ListId\x20IS\x20NULL');}else{_0x559a83[_0x71f7('0x40')](_0x71f7('0x65'),_[_0x71f7('0x57')](_0x3682b8,'id'));_0xe25555[_0x71f7('0x40')](_0x71f7('0x65'),_['map'](_0x3682b8,'id'));}});}})[_0x71f7('0x26')](function(){if(_0x5bcba7[_0x71f7('0x7f')][_0x71f7('0x80')]===_0x71f7('0x81')&&!_0xfc3fca&&!_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x64')])return[];return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0x559a83[_0x71f7('0x86')](),_0x4f494d);})['then'](function(_0x471c3d){_0x45a716[_0x71f7('0x1f')]=_0x471c3d[_0x71f7('0x2f')];if(_0x45a716[_0x71f7('0x1f')]===0x0)return[];return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0x2d37c8[_0x71f7('0x86')](),_0x4f494d)[_0x71f7('0x26')](function(_0xa86ab2){_0x1cd426=_[_0x71f7('0x87')](_0xa86ab2,'id');_0x4f494d=_['merge'](_0x4f494d,{'model':db[_0x71f7('0x2c')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x3d')]){_0x5a5b6e['attributes'][_0x71f7('0x79')](function(_0x59774d){_0xe25555[_0x71f7('0x44')]('c.'+_0x59774d);});}else{_0xe25555[_0x71f7('0x44')](_0x71f7('0x74'));_0xe25555[_0x71f7('0x44')](_0x71f7('0x88'));_0xe25555['field'](_0x71f7('0x89'));_0xe25555['field'](_0x71f7('0x8a'));_0xe25555['field']('c.mobile');_0xe25555['field'](_0x71f7('0x8b'));_0xe25555[_0x71f7('0x44')]('c.email');_0xe25555[_0x71f7('0x44')](_0x71f7('0x8c'));_0xe25555['field'](_0x71f7('0x8d'));_0xe25555['field'](_0x71f7('0x8e'));_0xe25555[_0x71f7('0x44')](_0x71f7('0x8f'));_0xe25555[_0x71f7('0x44')](_0x71f7('0x90'),_0x71f7('0x91'));}if(_0x5a5b6e[_0x71f7('0x1d')])_0xe25555[_0x71f7('0x1d')](_0x5a5b6e['limit']);if(_0x5a5b6e['offset'])_0xe25555['offset'](_0x5a5b6e[_0x71f7('0x20')]);return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0xe25555[_0x71f7('0x86')](),_0x4f494d);});})[_0x71f7('0x26')](function(_0x366401){_0x366401[_0x71f7('0x79')](function(_0x4332fb){if(_0x4332fb[_0x71f7('0x91')]){_0x4332fb['Tags']=[];_0x4332fb[_0x71f7('0x91')]['split'](',')[_0x71f7('0x79')](function(_0x3eda68){_0x4332fb[_0x71f7('0x92')][_0x71f7('0x32')](_0x1cd426[_0x3eda68]);});}delete _0x4332fb[_0x71f7('0x91')];});_0x45a716[_0x71f7('0x93')]=_0x366401;return _0x45a716;})[_0x71f7('0x26')](respondWithFilteredResult(_0x249905,_0x5a5b6e));})[_0x71f7('0x94')](handleError(_0x249905,null));};exports[_0x71f7('0x95')]=function(_0x2589d8,_0x324bbf){return db[_0x71f7('0x2c')][_0x71f7('0x54')]({'where':{'id':_0x2589d8[_0x71f7('0x96')]['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x324bbf,null))['then'](removeEntity(_0x324bbf,null))['catch'](handleError(_0x324bbf,null));};exports[_0x71f7('0x2d')]=function(_0x200124,_0x57a5eb){return db[_0x71f7('0x2c')]['describe']()[_0x71f7('0x26')](function(_0x53440d){delete _0x53440d[_0x71f7('0x97')];for(var _0x1069c2=0x0;_0x1069c2<Object[_0x71f7('0x2e')](_0x53440d)[_0x71f7('0x2f')];_0x1069c2++){var _0x3e11aa=Object[_0x71f7('0x2e')](_0x53440d)[_0x1069c2];if(!_[_0x71f7('0x30')](_0x3e11aa,_0x71f7('0x31'))){_0x53440d[_0x3e11aa][_0x71f7('0x98')]=_0x3e11aa;_0x53440d[_0x3e11aa][_0x71f7('0x99')]=_0x3e11aa;}}return _0x53440d;})[_0x71f7('0x26')](function(_0x35ec8d){var _0x544b25={'where':{'$or':[{'ListId':_0x200124[_0x71f7('0x3a')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x71f7('0x33')]['findAll'](_0x544b25)['then'](function(_0x254b08){for(var _0x31bfe3=0x0;_0x31bfe3<_0x254b08[_0x71f7('0x2f')];_0x31bfe3++){var _0x125605=_0x71f7('0x31')+_0x254b08[_0x31bfe3]['id'];_0x35ec8d[_0x125605][_0x71f7('0x98')]=_0x125605;_0x35ec8d[_0x125605][_0x71f7('0x99')]=_0x254b08[_0x31bfe3]['alias'];_0x35ec8d[_0x125605][_0x71f7('0x9a')]={'type':_0x254b08[_0x31bfe3]['type'],'values':_0x254b08[_0x31bfe3]['values']};}Object[_0x71f7('0x2e')](_0x35ec8d)['forEach'](function(_0x3ec226){if(!_0x35ec8d[_0x3ec226][_0x71f7('0x3e')]('columnName')){delete _0x35ec8d[_0x3ec226];}});return _0x35ec8d;});})[_0x71f7('0x26')](respondWithResult(_0x57a5eb,null))[_0x71f7('0x94')](handleError(_0x57a5eb,null));};exports[_0x71f7('0x9b')]=function(_0x56b88a,_0x4cce93){var _0x554e89;var _0x44cf88;var _0x149540;if(_0x56b88a[_0x71f7('0x9c')]['id']){delete _0x56b88a[_0x71f7('0x9c')]['id'];}return db['CmContact'][_0x71f7('0x9d')]({'where':{'id':[_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a['body']['from']]}})[_0x71f7('0x26')](function(_0x4f102b){if(_0x4f102b){if(_0x4f102b[_0x71f7('0x2f')]!==0x2){return null;}_0x4f102b[0x0]=_0x4f102b[0x0]['get']({'plain':!![]});_0x4f102b[0x1]=_0x4f102b[0x1][_0x71f7('0x9e')]({'plain':!![]});delete _0x4f102b[0x0]['id'];delete _0x4f102b[0x1]['id'];return _[_0x71f7('0x9f')](_0x4f102b[0x0],_0x4f102b[0x1],function(_0x3d27a8,_0x46724f){if(Array[_0x71f7('0x68')](_0x46724f)&&!_0x46724f[_0x71f7('0x2f')]){return _0x3d27a8;}else if(!_0x46724f){return _0x3d27a8;}});}})[_0x71f7('0x26')](handleEntityNotFound(_0x4cce93,null))[_0x71f7('0x26')](function(_0x5bc310){if(_0x5bc310){if(_0x5bc310[_0x71f7('0x97')]&&_['isArray'](_0x5bc310[_0x71f7('0x97')])){_0x5bc310[_0x71f7('0x97')]=_0x5bc310[_0x71f7('0x97')][_0x71f7('0xa0')]();}logger[_0x71f7('0xa1')]('[CmContact][merge]\x20to\x20%s\x20from\x20%s',_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]);return db[_0x71f7('0xa2')]['destroy']({'where':{'ContactId':[_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]]}})['then'](function(_0x41f9a7){logger[_0x71f7('0xa1')]('[CmContact][merge][destroy][CmHopper],\x20%s',_0x41f9a7);return db[_0x71f7('0xa3')][_0x71f7('0x95')]({'where':{'ContactId':[_0x56b88a['body']['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]]}})['then'](function(_0x58342a){logger[_0x71f7('0xa1')]('[CmContact][merge][destroy][CmHopperBlack],\x20%s',_0x58342a);return db[_0x71f7('0x2c')][_0x71f7('0xa4')](_0x5bc310);});});}})[_0x71f7('0x26')](function(_0x198bc4){if(_0x198bc4){_0x554e89=_0x198bc4;_0x44cf88={'ContactId':_0x554e89['id']};_0x149540={'where':{'ContactId':[_0x56b88a['body']['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]]}};return db[_0x71f7('0xa5')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa6')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['ChatOfflineMessage'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa7')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['MailMessage']['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa7')]['update'](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db['MailMessage'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa8')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa9')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xaa')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xab')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xac')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db['OpenchannelMessage'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xad')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xae')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xaf')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['VoiceCallReport'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['ChatQueueReport'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb0')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb1')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xb2')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb3')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xb4')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db['WhatsappInteraction'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xb5')]['update'](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb6')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0x2c')]['destroy']({'where':{'id':[_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a[_0x71f7('0x9c')]['from']]}});}})['then'](function(){if(_0x554e89){return _0x554e89;}})[_0x71f7('0x26')](respondWithResult(_0x4cce93,null))[_0x71f7('0x94')](handleError(_0x4cce93,null));};exports[_0x71f7('0xa4')]=function(_0x45e198,_0x2c40bf){return db[_0x71f7('0x2c')]['describe']()[_0x71f7('0x26')](function(_0x24739b){if(_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]&&_[_0x71f7('0x68')](_0x45e198[_0x71f7('0x9c')]['tags'])){if(_0x45e198['body'][_0x71f7('0x97')][_0x71f7('0x2f')]){_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]=_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]['join'](';')+';';}else{_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]=null;}}else{_0x45e198['body']['tags']=null;}return db['CmContact'][_0x71f7('0xa4')](_0x45e198[_0x71f7('0x9c')],{'fields':_['keys'](_0x24739b),'raw':!![]});})['then'](respondWithResult(_0x2c40bf,0xc9))['catch'](handleError(_0x2c40bf,null));};exports['bulkCreate']=function(_0xfc3cd3,_0x3968f0){var _0x396ea9=[];var _0x17662b=0x0;var _0x423767=0x0;var _0x268cdc=0x0;return db[_0x71f7('0x2c')]['describe']()[_0x71f7('0x26')](function(_0x49dcb8){return BPromise[_0x71f7('0xb7')](_0xfc3cd3[_0x71f7('0x9c')],function(_0x32e386){var _0x5a8ce0={'where':{'$or':[]},'defaults':_0x32e386,'fields':_[_0x71f7('0x2e')](_0x49dcb8),'raw':!![]};if(_0x32e386[_0x71f7('0xb8')]){for(var _0x57e7b1=0x0;_0x57e7b1<_0x32e386[_0x71f7('0xb8')][_0x71f7('0x2f')];_0x57e7b1++){var _0x1fe7a4={};_0x1fe7a4[_0x32e386[_0x71f7('0xb8')][_0x57e7b1]]=_0x32e386[_0x32e386[_0x71f7('0xb8')][_0x57e7b1]];_0x5a8ce0[_0x71f7('0x40')][_0x71f7('0xb9')][_0x71f7('0x32')](_0x1fe7a4);}_0x5a8ce0[_0x71f7('0x40')][_0x71f7('0x64')]=_0x32e386['ListId'];}return db[_0x71f7('0x2c')][_0x71f7('0xba')](_0x5a8ce0)['spread'](function(_0x153e48,_0x533246){if(_0x533246){_0x17662b++;}else{_0x268cdc++;}})[_0x71f7('0x94')](function(_0x50807d){console[_0x71f7('0x27')](_0x50807d);_0x423767++;});});})[_0x71f7('0x26')](function(_0x289fd7){if(_0x289fd7){return{'success':_0x17662b,'failure':_0x423767,'duplicates':_0x268cdc};}})['then'](respondWithResult(_0x3968f0,0xc9))[_0x71f7('0x94')](handleError(_0x3968f0,null));};exports[_0x71f7('0xbb')]=function(_0x5c35c7,_0x2b66ae,_0x275d39){var _0x49b8c8;return db[_0x71f7('0x2c')][_0x71f7('0x2d')]()[_0x71f7('0x26')](function(_0x282904){return db['CmContact'][_0x71f7('0x54')]({'where':{'id':_0x5c35c7['params']['id']},'include':[{'model':db[_0x71f7('0x55')],'as':_0x71f7('0x92'),'attributes':['id',_0x71f7('0x29'),'color'],'required':_0x5c35c7[_0x71f7('0x3a')]['tag']?!![]:![]}],'attributes':_[_0x71f7('0x2e')](_0x282904)});})[_0x71f7('0x26')](function(_0x8508b2){_0x49b8c8=_0x8508b2[_0x71f7('0x9e')]({'plain':!![]});var _0x2053c2={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x8508b2&&_0x8508b2[_0x71f7('0x64')]){if(_0x8508b2[_0x71f7('0x64')]){_0x2053c2[_0x71f7('0x40')][_0x71f7('0xbc')][_0x71f7('0x32')]({'ListId':{'$ne':_0x8508b2[_0x71f7('0x64')]}});}}return db[_0x71f7('0x33')]['findAll'](_0x2053c2);})['then'](function(_0x588f99){return _[_0x71f7('0xbd')](_0x49b8c8,_[_0x71f7('0x57')](_0x588f99,function(_0x4d7d46){return util[_0x71f7('0xbe')](_0x71f7('0xbf'),_0x4d7d46['id']);}));})[_0x71f7('0x26')](handleEntityNotFound(_0x2b66ae,null))['then'](respondWithResult(_0x2b66ae,null))[_0x71f7('0x94')](handleError(_0x2b66ae,null));};exports['update']=function(_0x5102bd,_0x49c66c){var _0xae306f;if(_0x5102bd[_0x71f7('0x9c')]['id']){delete _0x5102bd[_0x71f7('0x9c')]['id'];}return db[_0x71f7('0x2c')]['find']({'where':{'id':_0x5102bd['params']['id']}})['then'](handleEntityNotFound(_0x49c66c,null))[_0x71f7('0x26')](saveUpdates(_0x5102bd[_0x71f7('0x9c')],null))[_0x71f7('0x26')](function(_0x1cf341){_0xae306f=_0x1cf341;var _0x45e628={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x1cf341&&_0x1cf341[_0x71f7('0x64')]){if(_0x1cf341['ListId']){_0x45e628['where'][_0x71f7('0xbc')][_0x71f7('0x32')]({'ListId':{'$ne':_0x1cf341[_0x71f7('0x64')]}});}}return db['CmCustomField'][_0x71f7('0x9d')](_0x45e628);})[_0x71f7('0x26')](function(_0x2c2879){if(_0x2c2879){return _[_0x71f7('0xbd')](_[_0x71f7('0xc0')](_0x5102bd[_0x71f7('0x9c')],function(_0x393412,_0x496468){return _[_0x71f7('0x30')](_0x496468,'cf_');}),_[_0x71f7('0x57')](_0x2c2879,function(_0x544b1d){return util[_0x71f7('0xbe')](_0x71f7('0xbf'),_0x544b1d['id']);}));}})[_0x71f7('0x26')](function(_0x2372c1){if(_0x2372c1&&!_[_0x71f7('0x7b')](_0x2372c1)){var _0x4da872=squel[_0x71f7('0x25')]()['table'](_0x71f7('0x48'))[_0x71f7('0xc1')](_0x2372c1)[_0x71f7('0x40')]('id\x20=\x20?',_0x5102bd['params']['id'])['toParam']();return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0x4da872['text'],{'replacements':_0x4da872[_0x71f7('0xc2')]});}})[_0x71f7('0x26')](function(){if(_0x5102bd['body'][_0x71f7('0xc3')]&&_0xae306f){return db[_0x71f7('0xa2')][_0x71f7('0x25')]({'phone':_0x5102bd[_0x71f7('0x9c')]['phone']},{'where':{'ContactId':_0xae306f['id']}});}})[_0x71f7('0x26')](function(){return _0xae306f;})[_0x71f7('0x26')](respondWithResult(_0x49c66c,null))[_0x71f7('0x94')](handleError(_0x49c66c,null));};exports[_0x71f7('0xc4')]=function(_0xb3f9d7,_0x3b72be,_0x3e4c7b){var _0x57133d={};var _0x114684={};var _0x3fe16d;var _0x1ff5f0;return db[_0x71f7('0x2c')][_0x71f7('0x34')]({'where':{'id':_0xb3f9d7[_0x71f7('0x96')]['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x3b72be,null))[_0x71f7('0x26')](function(_0x1059a6){if(_0x1059a6){_0x3fe16d=_0x1059a6;_0x114684[_0x71f7('0x39')]=_[_0x71f7('0x2e')](db[_0x71f7('0x55')][_0x71f7('0xc5')]);_0x114684['query']=_['keys'](_0xb3f9d7[_0x71f7('0x3a')]);_0x114684['filters']=_[_0x71f7('0x3b')](_0x114684['model'],_0x114684[_0x71f7('0x3a')]);_0x57133d[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x114684[_0x71f7('0x39')],qs['fields'](_0xb3f9d7['query']['fields']));_0x57133d[_0x71f7('0x3c')]=_0x57133d[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0x57133d[_0x71f7('0x3c')]:_0x114684['model'];_0x57133d[_0x71f7('0x78')]=qs[_0x71f7('0x3f')](_0xb3f9d7['query'][_0x71f7('0x3f')]);_0x57133d['where']=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0xb3f9d7['query'],_0x114684[_0x71f7('0x41')]));if(_0xb3f9d7['query'][_0x71f7('0x62')]){_0x57133d['where']=_['merge'](_0x57133d[_0x71f7('0x40')],{'$or':_[_0x71f7('0x57')](_0x57133d[_0x71f7('0x3c')],function(_0x40fd9f){var _0x9eb450={};_0x9eb450[_0x40fd9f]={'$like':'%'+_0xb3f9d7[_0x71f7('0x3a')]['filter']+'%'};return _0x9eb450;})});}_0x57133d=_[_0x71f7('0x9b')]({},_0x57133d,_0xb3f9d7[_0x71f7('0xc6')]);return _0x3fe16d[_0x71f7('0xc4')](_0x57133d);}})[_0x71f7('0x26')](function(_0x44350e){if(_0x44350e){_0x1ff5f0=_0x44350e[_0x71f7('0x2f')];if(!_0xb3f9d7[_0x71f7('0x3a')][_0x71f7('0x3e')]('nolimit')){_0x57133d[_0x71f7('0x1d')]=qs['limit'](_0xb3f9d7[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0x57133d[_0x71f7('0x20')]=qs['offset'](_0xb3f9d7[_0x71f7('0x3a')]['offset']);}return _0x3fe16d[_0x71f7('0xc4')](_0x57133d);}})[_0x71f7('0x26')](function(_0x267ee4){if(_0x267ee4){return _0x267ee4?{'count':_0x1ff5f0,'rows':_0x267ee4}:null;}})[_0x71f7('0x26')](respondWithResult(_0x3b72be,null))[_0x71f7('0x94')](handleError(_0x3b72be,null));};exports[_0x71f7('0xc7')]=function(_0x2f02a3,_0x242f27,_0x59385c){if(_0x2f02a3[_0x71f7('0x9c')]['id']){delete _0x2f02a3[_0x71f7('0x9c')]['id'];}return db['CmContact'][_0x71f7('0x34')]({'where':{'id':_0x2f02a3[_0x71f7('0x96')]['id']}})['then'](handleEntityNotFound(_0x242f27,null))[_0x71f7('0x26')](function(_0x1d5bcb){if(_0x1d5bcb){return _0x1d5bcb[_0x71f7('0xc7')](_0x2f02a3[_0x71f7('0x9c')][_0x71f7('0xc8')]||[]);}return null;})[_0x71f7('0x26')](respondWithResult(_0x242f27,null))[_0x71f7('0x94')](handleError(_0x242f27,null));};exports['getHoppers']=function(_0x2793f0,_0x147873,_0x4dde37){var _0xcd00b6={'raw':![],'where':{}};var _0x470ca1={};var _0x3412a2={'count':0x0,'rows':[]};return db[_0x71f7('0x2c')]['findOne']({'where':{'id':_0x2793f0[_0x71f7('0x96')]['id']}})['then'](handleEntityNotFound(_0x147873,null))[_0x71f7('0x26')](function(_0x59ece6){if(_0x59ece6){_0x470ca1[_0x71f7('0x39')]=_[_0x71f7('0x2e')](db[_0x71f7('0xa2')]['rawAttributes']);_0x470ca1[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x2793f0[_0x71f7('0x3a')]);_0x470ca1['filters']=_[_0x71f7('0x3b')](_0x470ca1[_0x71f7('0x39')],_0x470ca1[_0x71f7('0x3a')]);_0xcd00b6['attributes']=_['intersection'](_0x470ca1['model'],qs[_0x71f7('0x3d')](_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x3d')]));_0xcd00b6[_0x71f7('0x3c')]=_0xcd00b6[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0xcd00b6['attributes']:_0x470ca1[_0x71f7('0x39')];if(!_0x2793f0['query'][_0x71f7('0x3e')](_0x71f7('0xc9'))){_0xcd00b6[_0x71f7('0x1d')]=qs[_0x71f7('0x1d')](_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0xcd00b6[_0x71f7('0x20')]=qs['offset'](_0x2793f0[_0x71f7('0x3a')]['offset']);}_0xcd00b6['order']=qs[_0x71f7('0x3f')](_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x3f')]);_0xcd00b6[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_['pick'](_0x2793f0[_0x71f7('0x3a')],_0x470ca1[_0x71f7('0x41')]));_0xcd00b6[_0x71f7('0x40')]['ContactId']=_0x59ece6['id'];if(_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x62')]){_0xcd00b6[_0x71f7('0x40')]=_[_0x71f7('0x9b')](_0xcd00b6[_0x71f7('0x40')],{'$or':_[_0x71f7('0x57')](_0xcd00b6[_0x71f7('0x3c')],function(_0x30fa4b){var _0x10f281={};_0x10f281[_0x30fa4b]={'$like':'%'+_0x2793f0['query'][_0x71f7('0x62')]+'%'};return _0x10f281;})});}_0xcd00b6=_[_0x71f7('0x9b')]({},_0xcd00b6,_0x2793f0['options']);return db[_0x71f7('0xa2')][_0x71f7('0x1f')]({'where':_0xcd00b6[_0x71f7('0x40')]})[_0x71f7('0x26')](function(_0x431785){_0x3412a2['count']=_0x431785;if(_0x2793f0[_0x71f7('0x3a')][_0x71f7('0xca')]){_0xcd00b6[_0x71f7('0xcb')]=[{'all':!![]}];}return db[_0x71f7('0xa2')]['findAll'](_0xcd00b6);})['then'](function(_0x34f186){_0x3412a2['rows']=_0x34f186;return _0x3412a2;});}})['then'](respondWithFilteredResult(_0x147873,_0xcd00b6))[_0x71f7('0x94')](handleError(_0x147873,null));};exports['getHopperHistories']=function(_0x180ab7,_0x343b63,_0x4284e5){var _0x134bc1={'raw':!![],'where':{}};var _0x381a5f={};var _0x46636b={'count':0x0,'rows':[]};return db['CmContact'][_0x71f7('0x34')]({'where':{'id':_0x180ab7[_0x71f7('0x96')]['id']}})['then'](handleEntityNotFound(_0x343b63,null))[_0x71f7('0x26')](function(_0x2b69ea){if(_0x2b69ea){_0x381a5f['model']=_['keys'](db[_0x71f7('0xae')][_0x71f7('0xc5')]);_0x381a5f[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x180ab7['query']);_0x381a5f[_0x71f7('0x41')]=_['intersection'](_0x381a5f[_0x71f7('0x39')],_0x381a5f[_0x71f7('0x3a')]);_0x134bc1[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x381a5f[_0x71f7('0x39')],qs[_0x71f7('0x3d')](_0x180ab7['query'][_0x71f7('0x3d')]));_0x134bc1[_0x71f7('0x3c')]=_0x134bc1['attributes']['length']?_0x134bc1[_0x71f7('0x3c')]:_0x381a5f[_0x71f7('0x39')];if(!_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x3e')]('nolimit')){_0x134bc1[_0x71f7('0x1d')]=qs[_0x71f7('0x1d')](_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0x134bc1[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x20')]);}_0x134bc1[_0x71f7('0x78')]=qs[_0x71f7('0x3f')](_0x180ab7['query'][_0x71f7('0x3f')]);_0x134bc1[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0x180ab7[_0x71f7('0x3a')],_0x381a5f['filters']));_0x134bc1['where'][_0x71f7('0xcc')]=_0x2b69ea['id'];if(_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x62')]){_0x134bc1[_0x71f7('0x40')]=_[_0x71f7('0x9b')](_0x134bc1['where'],{'$or':_[_0x71f7('0x57')](_0x134bc1[_0x71f7('0x3c')],function(_0x38a2c0){var _0x16718b={};_0x16718b[_0x38a2c0]={'$like':'%'+_0x180ab7[_0x71f7('0x3a')]['filter']+'%'};return _0x16718b;})});}_0x134bc1=_[_0x71f7('0x9b')]({},_0x134bc1,_0x180ab7[_0x71f7('0xc6')]);return db[_0x71f7('0xae')][_0x71f7('0x1f')]({'where':_0x134bc1[_0x71f7('0x40')]})[_0x71f7('0x26')](function(_0xe93fa5){_0x46636b['count']=_0xe93fa5;if(_0x180ab7['query']['includeAll']){_0x134bc1[_0x71f7('0xcb')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x71f7('0x9d')](_0x134bc1);})[_0x71f7('0x26')](function(_0xb519c){_0x46636b['rows']=_0xb519c;return _0x46636b;});}})[_0x71f7('0x26')](respondWithFilteredResult(_0x343b63,_0x134bc1))[_0x71f7('0x94')](handleError(_0x343b63,null));};exports[_0x71f7('0xcd')]=function(_0x5b448f,_0x3e8cd5,_0x243f97){var _0x294f8f={'raw':!![],'where':{}};var _0x481a91={};var _0x4649e5={'count':0x0,'rows':[]};return db['CmContact']['findOne']({'where':{'id':_0x5b448f[_0x71f7('0x96')]['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x3e8cd5,null))['then'](function(_0x4d4720){if(_0x4d4720){_0x481a91[_0x71f7('0x39')]=_[_0x71f7('0x2e')](db[_0x71f7('0xad')][_0x71f7('0xc5')]);_0x481a91['query']=_[_0x71f7('0x2e')](_0x5b448f[_0x71f7('0x3a')]);_0x481a91['filters']=_[_0x71f7('0x3b')](_0x481a91[_0x71f7('0x39')],_0x481a91[_0x71f7('0x3a')]);_0x294f8f[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x481a91[_0x71f7('0x39')],qs['fields'](_0x5b448f[_0x71f7('0x3a')]['fields']));_0x294f8f['attributes']=_0x294f8f['attributes'][_0x71f7('0x2f')]?_0x294f8f[_0x71f7('0x3c')]:_0x481a91[_0x71f7('0x39')];if(!_0x5b448f[_0x71f7('0x3a')][_0x71f7('0x3e')](_0x71f7('0xc9'))){_0x294f8f['limit']=qs[_0x71f7('0x1d')](_0x5b448f[_0x71f7('0x3a')]['limit']);_0x294f8f[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x5b448f['query'][_0x71f7('0x20')]);}_0x294f8f[_0x71f7('0x78')]=qs[_0x71f7('0x3f')](_0x5b448f[_0x71f7('0x3a')][_0x71f7('0x3f')]);_0x294f8f[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0x5b448f['query'],_0x481a91[_0x71f7('0x41')]));_0x294f8f[_0x71f7('0x40')][_0x71f7('0xcc')]=_0x4d4720['id'];if(_0x5b448f['query'][_0x71f7('0x62')]){_0x294f8f[_0x71f7('0x40')]=_['merge'](_0x294f8f['where'],{'$or':_[_0x71f7('0x57')](_0x294f8f['attributes'],function(_0x3bc5d9){var _0x75cf86={};_0x75cf86[_0x3bc5d9]={'$like':'%'+_0x5b448f[_0x71f7('0x3a')][_0x71f7('0x62')]+'%'};return _0x75cf86;})});}_0x294f8f=_['merge']({},_0x294f8f,_0x5b448f['options']);return db[_0x71f7('0xad')][_0x71f7('0x1f')]({'where':_0x294f8f['where']})[_0x71f7('0x26')](function(_0x3adc19){_0x4649e5[_0x71f7('0x1f')]=_0x3adc19;if(_0x5b448f['query'][_0x71f7('0xca')]){_0x294f8f[_0x71f7('0xcb')]=[{'all':!![]}];}return db[_0x71f7('0xad')][_0x71f7('0x9d')](_0x294f8f);})[_0x71f7('0x26')](function(_0x548b99){_0x4649e5[_0x71f7('0x93')]=_0x548b99;return _0x4649e5;});}})['then'](respondWithFilteredResult(_0x3e8cd5,_0x294f8f))[_0x71f7('0x94')](handleError(_0x3e8cd5,null));};exports[_0x71f7('0xce')]=function(_0x1f943f,_0x246dd4,_0x40f948){var _0x3c8857={'raw':!![],'where':{}};var _0x2bea93={};var _0x188159={'count':0x0,'rows':[]};return db[_0x71f7('0x2c')][_0x71f7('0x34')]({'where':{'id':_0x1f943f['params']['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x246dd4,null))[_0x71f7('0x26')](function(_0x155353){if(_0x155353){_0x2bea93[_0x71f7('0x39')]=_['keys'](db[_0x71f7('0xb4')]['rawAttributes']);_0x2bea93[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x1f943f['query']);_0x2bea93['filters']=_[_0x71f7('0x3b')](_0x2bea93['model'],_0x2bea93[_0x71f7('0x3a')]);_0x3c8857['attributes']=_[_0x71f7('0x3b')](_0x2bea93['model'],qs[_0x71f7('0x3d')](_0x1f943f[_0x71f7('0x3a')]['fields']));_0x3c8857[_0x71f7('0x3c')]=_0x3c8857[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0x3c8857['attributes']:_0x2bea93['model'];if(!_0x1f943f[_0x71f7('0x3a')]['hasOwnProperty'](_0x71f7('0xc9'))){_0x3c8857[_0x71f7('0x1d')]=qs[_0x71f7('0x1d')](_0x1f943f[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0x3c8857['offset']=qs[_0x71f7('0x20')](_0x1f943f['query']['offset']);}_0x3c8857[_0x71f7('0x78')]=qs['sort'](_0x1f943f['query'][_0x71f7('0x3f')]);_0x3c8857[_0x71f7('0x40')]=qs['filters'](_[_0x71f7('0x42')](_0x1f943f[_0x71f7('0x3a')],_0x2bea93[_0x71f7('0x41')]));_0x3c8857[_0x71f7('0x40')]['ContactId']=_0x155353['id'];if(_0x1f943f[_0x71f7('0x3a')][_0x71f7('0x62')]){_0x3c8857['where']=_[_0x71f7('0x9b')](_0x3c8857['where'],{'$or':_[_0x71f7('0x57')](_0x3c8857[_0x71f7('0x3c')],function(_0x3f368d){var _0x182a63={};_0x182a63[_0x3f368d]={'$like':'%'+_0x1f943f[_0x71f7('0x3a')][_0x71f7('0x62')]+'%'};return _0x182a63;})});}_0x3c8857=_[_0x71f7('0x9b')]({},_0x3c8857,_0x1f943f[_0x71f7('0xc6')]);return db[_0x71f7('0xb4')]['count']({'where':_0x3c8857[_0x71f7('0x40')]})['then'](function(_0x44e807){_0x188159[_0x71f7('0x1f')]=_0x44e807;if(_0x1f943f['query'][_0x71f7('0xca')]){_0x3c8857[_0x71f7('0xcb')]=[{'all':!![]}];}return db[_0x71f7('0xb4')][_0x71f7('0x9d')](_0x3c8857);})[_0x71f7('0x26')](function(_0x4ffcfc){_0x188159[_0x71f7('0x93')]=_0x4ffcfc;return _0x188159;});}})[_0x71f7('0x26')](respondWithFilteredResult(_0x246dd4,_0x3c8857))[_0x71f7('0x94')](handleError(_0x246dd4,null));};exports['uploadCsv']=function(_0x57cb7f,_0x319410,_0x4e6662){try{if(!_0x57cb7f[_0x71f7('0x9c')]['ListId']){throw new Error(_0x71f7('0xcf'));}if(!_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xd0')]){throw new Error(_0x71f7('0xd1'));}if(!_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xd2')]){throw new Error(_0x71f7('0xd3'));}if(!_0x57cb7f[_0x71f7('0x9c')]['socket_timestamp']){throw new Error(_0x71f7('0xd4'));}var _0x2fc2d3=_0x57cb7f[_0x71f7('0x9c')]['binding_keys'][_0x71f7('0x6b')](',');var _0x2296a7=_0x57cb7f['body'][_0x71f7('0xd2')]['split'](',');if(!_0x2fc2d3[_0x71f7('0x2f')]||!_0x2296a7[_0x71f7('0x2f')]||_0x2fc2d3[_0x71f7('0x2f')]!==_0x2296a7[_0x71f7('0x2f')]){throw new Error(_0x71f7('0xd5'));}_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0x3d')]=_[_0x71f7('0xd6')](_0x2fc2d3,_0x2296a7);if(!_0x57cb7f['body']['fields'][_0x71f7('0xc3')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x57cb7f['body'][_0x71f7('0x3d')][_0x71f7('0xd7')]){throw new Error(_0x71f7('0xd8'));}var _0x46b0a6=path[_0x71f7('0xa0')](config[_0x71f7('0xd9')],_0x71f7('0xda'),_0x57cb7f['file'][_0x71f7('0xdb')]);fs[_0x71f7('0xdc')](_0x46b0a6,parseInt(_0x71f7('0xdd'),0x8));var _0x1e0f0d=require(_0x71f7('0xde'))['fork'](path[_0x71f7('0xa0')](__dirname,_0x71f7('0xdf')),[_0x46b0a6,_0x57cb7f[_0x71f7('0x9c')]['binding_keys'],_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xd2')],_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0x64')],_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xe0')],_0x57cb7f['body'][_0x71f7('0xb8')],_0x57cb7f[_0x71f7('0x9c')]['socket_timestamp']]);return _0x319410['status'](0xc8)[_0x71f7('0x1c')]({'message':_0x71f7('0xe1'),'pid':_0x1e0f0d['pid']});}catch(_0x22818b){return _0x319410[_0x71f7('0x1a')](0x1f4)[_0x71f7('0x2a')](_0x22818b);}};exports[_0x71f7('0xe2')]=function(_0x3f9555,_0x322bc2,_0x106ae7){var _0x164ea2=fs[_0x71f7('0xe3')](_0x3f9555[_0x71f7('0xe4')][_0x71f7('0x6')]);Papa[_0x71f7('0xe5')](_0x164ea2,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x4c957f){return _0x322bc2[_0x71f7('0x1a')](0xc8)[_0x71f7('0x1c')]({'file':_0x3f9555[_0x71f7('0xe4')],'fields':_0x4c957f[_0x71f7('0xe6')][_0x71f7('0x3d')]});}});};exports['import']=function(_0x244469,_0x17113a,_0x4bd679){return db[_0x71f7('0x5a')][_0x71f7('0x9d')]({'raw':!![],'attributes':['id'],'where':{'role':_0x71f7('0x81')}})[_0x71f7('0x26')](function(_0x203dd5){var _0x26b1a8=![];if(!_0x244469[_0x71f7('0x9c')][_0x71f7('0x64')]){throw new Error(_0x71f7('0xcf'));}if(!_0x244469[_0x71f7('0x9c')][_0x71f7('0xe7')][_0x71f7('0xc3')]){throw new Error(_0x71f7('0xe8'));}if(!_0x244469[_0x71f7('0x9c')][_0x71f7('0xe7')][_0x71f7('0xd7')]){throw new Error(_0x71f7('0xd8'));}if(!_0x244469['body'][_0x71f7('0xe9')]){throw new Error(_0x71f7('0xd4'));}var _0x4ff478=require(_0x71f7('0xde'))[_0x71f7('0xea')](path[_0x71f7('0xa0')](__dirname,_0x71f7('0xeb')),[_0x244469[_0x71f7('0x96')]['id'],JSON['stringify'](_0x244469[_0x71f7('0x9c')]),JSON[_0x71f7('0xec')](_0x203dd5)]);_0x4ff478['on']('message',function(_0x309426){_0x26b1a8=!![];return _0x17113a[_0x71f7('0x1a')](0xc8)[_0x71f7('0x1c')]({'message':'start\x20child\x20process\x20correctly!','pid':_0x4ff478[_0x71f7('0xed')]});});_0x4ff478['on'](_0x71f7('0xee'),function(_0x23c088){if(_0x23c088&&!_0x26b1a8){return _0x17113a['status'](0x1f4)[_0x71f7('0x1c')]({'message':_0x71f7('0xef'),'pid':_0x4ff478['pid']});}});})[_0x71f7('0x94')](handleError(_0x17113a,null));};exports[_0x71f7('0xf0')]=function(_0x1943ed,_0x28b083){var _0x37fc90=[_0x71f7('0xf1'),_0x71f7('0xf2'),_0x71f7('0xf3'),_0x71f7('0xf4'),'fax','whatsapp','voice'];var _0x598c85={'offset':0x0,'order':qs[_0x71f7('0x3f')](_0x71f7('0xf5'))},_0x244a89={'count':0x0,'rows':[]};Promise[_0x71f7('0x7e')]()[_0x71f7('0x26')](function(){if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xf6')]){if(!_[_0x71f7('0xf7')](_0x37fc90,_0x1943ed[_0x71f7('0x3a')]['channel'][_0x71f7('0xf8')]())){throw new Error(_0x71f7('0xf9'));}_0x37fc90=[_0x1943ed[_0x71f7('0x3a')]['channel']['toLowerCase']()];}if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]){try{var _0x60d9dd=JSON[_0x71f7('0xe5')](_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]);if(!moment(_0x60d9dd['from'])[_0x71f7('0xfb')]()){throw new Error(_0x71f7('0xfc'));}if(!moment(_0x60d9dd['to'])[_0x71f7('0xfb')]()){throw new Error('Invalid\x20date\x20for\x20range\x20to\x20filter');}}catch(_0x121690){throw new Error(_0x71f7('0xfd'));}}if(!_0x1943ed[_0x71f7('0x3a')][_0x71f7('0x3e')](_0x71f7('0xc9'))){_0x598c85[_0x71f7('0x1d')]=qs['limit'](_0x1943ed['query'][_0x71f7('0x1d')]||0xa);_0x598c85[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x1943ed[_0x71f7('0x3a')][_0x71f7('0x20')]);}var _0x299e3a=_0x37fc90[_0x71f7('0x57')](function(_0x5d580c){if(_0x5d580c===_0x71f7('0xfe')){var _0x1f4b72={'attributes':['id','uniqueid','type','source',_0x71f7('0xff'),'callerid','starttime','endtime',_0x71f7('0x100'),_0x71f7('0x101'),_0x71f7('0x102'),'userDisposition',_0x71f7('0x103'),_0x71f7('0x104'),'UserId'],'where':{'ContactId':_0x1943ed['params']['id']},'include':[{'model':db[_0x71f7('0x5a')],'as':_0x71f7('0x5a'),'attributes':['id',_0x71f7('0x29'),'fullname',_0x71f7('0x105')]}],'order':[['createdAt','DESC']]};if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]){_0x1f4b72['where']['createdAt']={'$gte':_0x60d9dd[_0x71f7('0x46')],'$lte':_0x60d9dd['to']};}return db[_0x71f7('0x106')][_0x71f7('0x107')](_0x1f4b72)['then'](function(_0x3f650a){_0x244a89[_0x71f7('0x1f')]+=_0x3f650a[_0x71f7('0x1f')];return _['map'](_0x3f650a[_0x71f7('0x93')],function(_0x3a28c5){var _0x19afac=_0x3a28c5[_0x71f7('0x9e')]({'plain':!![]});_0x19afac[_0x71f7('0xf6')]=_0x5d580c;if(_0x19afac[_0x71f7('0x5a')]){_0x19afac[_0x71f7('0x5a')]={'id':_0x19afac[_0x71f7('0x5a')]['id'],'name':_0x19afac['User'][_0x71f7('0x29')],'fullname':_0x19afac[_0x71f7('0x5a')][_0x71f7('0x108')],'alias':_0x19afac['User'][_0x71f7('0x105')]};}return _0x19afac;});});}else{var _0x2af604=_[_0x71f7('0x109')](_0x5d580c)+(_0x5d580c==='chat'?_0x71f7('0x10a'):_0x71f7('0x10b'));var _0x52fc4c={'attributes':['id','closed',_0x71f7('0x10c'),_0x71f7('0x102'),'note',_0x71f7('0x10d'),_0x71f7('0x10e'),_0x71f7('0x10f'),'UserId',_0x2af604+'Id'],'where':{'ContactId':_0x1943ed[_0x71f7('0x96')]['id']},'include':[{'model':db[_0x2af604],'as':_0x71f7('0x10b'),'attributes':['id','name',_0x71f7('0x110')]},{'model':db[_0x71f7('0x5a')],'as':_0x71f7('0x111'),'attributes':['id',_0x71f7('0x29'),'fullname']},{'model':db[_0x71f7('0x55')],'as':_0x71f7('0x92'),'attributes':['id','name',_0x71f7('0x45')],'through':{'attributes':[]}}],'order':[[_0x71f7('0x102'),_0x71f7('0x7a')]]};if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]){_0x52fc4c[_0x71f7('0x40')][_0x71f7('0x102')]={'$gte':_0x60d9dd['from'],'$lte':_0x60d9dd['to']};}switch(_0x5d580c){case _0x71f7('0xf2'):_0x52fc4c['attributes'][_0x71f7('0x32')](_0x71f7('0x112'),_0x71f7('0x113'),_0x71f7('0x114'),_0x71f7('0x115'),_0x71f7('0x116'),_0x71f7('0x117'),_0x71f7('0x118'),_0x71f7('0x119'),'referer');break;case _0x71f7('0xf1'):_0x52fc4c['attributes'][_0x71f7('0x32')]('subject','substatus');break;case'openchannel':_0x52fc4c['attributes']['push']('externalUrl','threadId');break;}return db[_[_0x71f7('0x109')](_0x5d580c)+_0x71f7('0x11a')]['findAndCountAll'](_0x52fc4c)[_0x71f7('0x26')](function(_0x4f851c){_0x244a89[_0x71f7('0x1f')]+=_0x4f851c[_0x71f7('0x1f')];return _[_0x71f7('0x57')](_0x4f851c[_0x71f7('0x93')],function(_0x1f0ced){var _0x48c833=_0x1f0ced[_0x71f7('0x9e')]({'plain':!![]});_0x48c833[_0x71f7('0xf6')]=_0x5d580c;if(_0x48c833['Owner']){_0x48c833[_0x71f7('0x111')]={'id':_0x48c833[_0x71f7('0x111')]['id'],'name':_0x48c833[_0x71f7('0x111')][_0x71f7('0x29')],'fullname':_0x48c833['Owner']['fullname']};}return _0x48c833;});});}});return Promise[_0x71f7('0x36')](_0x299e3a);})['then'](function(_0x4c2195){return _(_0x4c2195)[_0x71f7('0x11b')]()['sortBy'](_0x71f7('0x102'))['reverse']()[_0x71f7('0x56')]();})[_0x71f7('0x26')](function(_0x29af5c){_0x244a89['rows']=_0x598c85[_0x71f7('0x1d')]?_0x29af5c['slice'](_0x598c85[_0x71f7('0x20')],_0x598c85[_0x71f7('0x20')]+_0x598c85[_0x71f7('0x1d')]):_0x29af5c;return _0x244a89;})['then'](respondWithFilteredResult(_0x28b083,_0x598c85))['catch'](handleError(_0x28b083,null));};
\ No newline at end of file
+var _0x8efa=['color','format','cf_%d','$and','pickBy','cm_contacts','setFields','toParam','phone','getTags','findOne','rawAttributes','pick','options','setTags','ids','getHoppers','ContactId','includeAll','include','getHopperHistories','getHopperFinals','getJscriptySessions','binding_keys','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','Incorrect\x20binding\x20parameters\x20passed!','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','chmodSync','child_process','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','upload','createReadStream','parse','import','No\x20ListId\x20specified','fork','../../components/import/cm/csv2','stringify','pid','exit','error\x20child\x20process','mail','chat','sms','openchannel','fax','voice','-createdAt','channel','includes','Invalid\x20channel','toLowerCase','range','isValid','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','uniqueid','source','destination','starttime','endtime','duration','note','createdAt','userDisposition','userSecondDisposition','UserId','fullname','findAndCountAll','startCase','Website','closed','closedAt','secondDisposition','Account','key','Owner','browserName','customerIp','customerPort','deviceModel','ratingMessage','ratingType','ratingValue','subject','substatus','externalUrl','threadId','Interaction','sortBy','slice','moment','path','lodash','squel','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','register','json','offset','undefined','count','limit','set','Content-Range','update','then','status','end','sendStatus','error','stack','name','send','index','CmContact','describe','length','keys','startsWith','CmCustomField','all','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','select','field','from','left_join','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','tools_tags','t.id\x20=\x20ct.TagId','where','c.deletedAt\x20IS\x20NULL','expr','search','parseSearch','conditions','find','Tag','split','map','union','User','value','dateOfBirth','fieldType','castTo','DATE','buildExpression','type','start','filter','isNil','Contact','isEmpty','forEach','ListId','concat','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','replace','getFullTextValue','isNumeric','c.id\x20LIKE\x20?','c.phone\x20LIKE\x20?','c.mobile\x20LIKE\x20?','c.fax\x20LIKE\x20?','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','group','c.id','Sequelize','QueryTypes','clone','DESC','having','t.id\x20IN\x20?','role','user','agent','sequelize','toString','keyBy','merge','c.mobile','c.fax','c.email','c.ListId','c.createdAt','c.deletedAt','c.CompanyId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','push','rows','catch','destroy','params','tags','cf_','columnName','findAll','displayName','alias','custom','values','body','get','mergeWith','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','[CmContact][merge][destroy][CmHopper],\x20%s','CmHopperBlack','info','[CmContact][merge][destroy][CmHopperBlack],\x20%s','create','ChatInteraction','ChatMessage','ChatOfflineMessage','MailInteraction','MailMessage','SmsMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmHopperFinal','CmHopperHistory','VoiceCallReport','ChatQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappInteraction','WhatsappMessage','WhatsappQueueReport','bulkCreate','each','duplicates','$or','spread','show'];(function(_0x4a7631,_0x2c85b9){var _0x1a5a6f=function(_0x1ee3fd){while(--_0x1ee3fd){_0x4a7631['push'](_0x4a7631['shift']());}};_0x1a5a6f(++_0x2c85b9);}(_0x8efa,0x67));var _0xa8ef=function(_0x552291,_0x37ae2f){_0x552291=_0x552291-0x0;var _0x4985c2=_0x8efa[_0x552291];return _0x4985c2;};'use strict';var moment=require(_0xa8ef('0x0'));var BPromise=require('bluebird');var util=require('util');var path=require(_0xa8ef('0x1'));var fs=require('fs');var _=require(_0xa8ef('0x2'));var squel=require(_0xa8ef('0x3'));var Papa=require(_0xa8ef('0x4'));var Redis=require(_0xa8ef('0x5'));var qs=require('../../components/parsers/qs');var as=require(_0xa8ef('0x6'));var logger=require(_0xa8ef('0x7'))(_0xa8ef('0x8'));var config=require(_0xa8ef('0x9'));var db=require(_0xa8ef('0xa'))['db'];config[_0xa8ef('0xb')]=_['defaults'](config[_0xa8ef('0xb')],{'host':_0xa8ef('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa8ef('0xb')]));require('./cmContact.socket')[_0xa8ef('0xd')](socket);function respondWithResult(_0x59d198,_0x520cc9){_0x520cc9=_0x520cc9||0xc8;return function(_0x42a377){if(_0x42a377){return _0x59d198['status'](_0x520cc9)[_0xa8ef('0xe')](_0x42a377);}};}function respondWithFilteredResult(_0x4565ed,_0x2ceaa6){return function(_0x1ccda2){if(_0x1ccda2){var _0x7c2f41=typeof _0x2ceaa6[_0xa8ef('0xf')]===_0xa8ef('0x10')&&typeof _0x2ceaa6['limit']===_0xa8ef('0x10');var _0x1c825e=_0x1ccda2[_0xa8ef('0x11')];var _0x4576c9=_0x7c2f41?0x0:_0x2ceaa6[_0xa8ef('0xf')];var _0x34e6ff=_0x7c2f41?_0x1ccda2[_0xa8ef('0x11')]:_0x2ceaa6[_0xa8ef('0xf')]+_0x2ceaa6[_0xa8ef('0x12')];var _0x535193;if(_0x34e6ff>=_0x1c825e){_0x34e6ff=_0x1c825e;_0x535193=0xc8;}else{_0x535193=0xce;}_0x4565ed['status'](_0x535193);return _0x4565ed[_0xa8ef('0x13')](_0xa8ef('0x14'),_0x4576c9+'-'+_0x34e6ff+'/'+_0x1c825e)[_0xa8ef('0xe')](_0x1ccda2);}return null;};}function saveUpdates(_0x191526){return function(_0x58d4eb){if(_0x58d4eb){return _0x58d4eb[_0xa8ef('0x15')](_0x191526)[_0xa8ef('0x16')](function(_0x4f74c4){return _0x4f74c4;});}return null;};}function removeEntity(_0x35729e){return function(_0x5562f6){if(_0x5562f6){return _0x5562f6['destroy']()['then'](function(){_0x35729e[_0xa8ef('0x17')](0xcc)[_0xa8ef('0x18')]();});}};}function handleEntityNotFound(_0x297711){return function(_0xdfe9a2){if(!_0xdfe9a2){_0x297711[_0xa8ef('0x19')](0x194);}return _0xdfe9a2;};}function handleError(_0x5de257,_0x225132){_0x225132=_0x225132||0x1f4;return function(_0x2f0dee){logger[_0xa8ef('0x1a')](_0x2f0dee[_0xa8ef('0x1b')]);if(_0x2f0dee[_0xa8ef('0x1c')]){delete _0x2f0dee[_0xa8ef('0x1c')];}_0x5de257[_0xa8ef('0x17')](_0x225132)[_0xa8ef('0x1d')](_0x2f0dee);};}exports[_0xa8ef('0x1e')]=function(_0x3345be,_0x370af0){var _0x2e483={},_0x43041c={},_0x258951={'count':0x0,'rows':[]};return db[_0xa8ef('0x1f')][_0xa8ef('0x20')]()[_0xa8ef('0x16')](function(_0x4b36e2){var _0xdbad8d=[];for(var _0x504b0e=0x0;_0x504b0e<Object['keys'](_0x4b36e2)[_0xa8ef('0x21')];_0x504b0e++){var _0x2df769=Object[_0xa8ef('0x22')](_0x4b36e2)[_0x504b0e];if(_[_0xa8ef('0x23')](_0x2df769,'cf_')){_0xdbad8d['push'](db[_0xa8ef('0x24')]['findOne']({'where':{'id':_['trimStart'](_0x2df769,'cf_')},'raw':!![]}));}}return BPromise[_0xa8ef('0x25')](_0xdbad8d)['then'](function(_0x4d79b7){for(var _0x405b23=0x0;_0x405b23<_0x4d79b7[_0xa8ef('0x21')];_0x405b23++){if(_0x4d79b7[_0x405b23]){var _0x5e9e1d='cf_'+_0x4d79b7[_0x405b23]['id'];var _0x1e51a2=_0x4b36e2[_0x5e9e1d];_0x1e51a2['fieldType']=_0x4d79b7[_0x405b23]['type'];}}return _0x4b36e2;});})['then'](function(_0x44704e){_0x43041c[_0xa8ef('0x26')]=_['keys'](_0x44704e);_0x43041c[_0xa8ef('0x27')]=_[_0xa8ef('0x22')](_0x3345be['query']);_0x43041c[_0xa8ef('0x28')]=_['intersection'](_0x43041c[_0xa8ef('0x26')],_0x43041c[_0xa8ef('0x27')]);_0x2e483[_0xa8ef('0x29')]=_[_0xa8ef('0x2a')](_0x43041c['model'],qs[_0xa8ef('0x2b')](_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x2b')]));_0x2e483[_0xa8ef('0x29')]=_0x2e483[_0xa8ef('0x29')][_0xa8ef('0x21')]?_0x2e483['attributes']:_0x43041c['model'];if(!_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x2c')](_0xa8ef('0x2d'))){_0x2e483[_0xa8ef('0x12')]=qs[_0xa8ef('0x12')](_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x12')]);_0x2e483[_0xa8ef('0xf')]=qs[_0xa8ef('0xf')](_0x3345be[_0xa8ef('0x27')][_0xa8ef('0xf')]);}_0x2e483[_0xa8ef('0x2e')]=qs['sort'](_0x3345be['query'][_0xa8ef('0x2f')]);_0x2e483['where']=qs[_0xa8ef('0x28')](_['pick'](_0x3345be[_0xa8ef('0x27')],_0x43041c[_0xa8ef('0x28')]),_0x44704e);var _0x414030=[];var _0x1db17a=squel[_0xa8ef('0x30')]()[_0xa8ef('0x31')]('id')[_0xa8ef('0x31')](_0xa8ef('0x1c'))['field']('color')[_0xa8ef('0x32')]('tools_tags');var _0x447ce3=squel[_0xa8ef('0x30')]()[_0xa8ef('0x32')]('cm_contacts','c')[_0xa8ef('0x33')](_0xa8ef('0x34'),'uc',_0xa8ef('0x35'))['left_join']('cm_contact_has_tags','ct','ct.CmContactId\x20=\x20c.id')['left_join'](_0xa8ef('0x36'),'t',_0xa8ef('0x37'))[_0xa8ef('0x38')](_0xa8ef('0x39'));var _0x65c7d0=squel[_0xa8ef('0x3a')]();var _0x1aeb9d=[];var _0xbc5dec=squel['expr']();var _0xde2778;if(_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x3b')]){_0xde2778=as[_0xa8ef('0x3c')](_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x3b')]);var _0x373216=_0xde2778['sqlOperator'];for(var _0x4745e2=0x0;_0x4745e2<_0xde2778[_0xa8ef('0x3d')][_0xa8ef('0x21')];_0x4745e2++){var _0xcb84e2=_0xde2778[_0xa8ef('0x3d')][_0x4745e2];var _0x58c589='c';var _0x36aa8c=_(_0x44704e)[_0xa8ef('0x22')]()[_0xa8ef('0x3e')](function(_0x419d62){return _0x419d62===_0xcb84e2[_0xa8ef('0x31')];});if(_0x36aa8c)_0x36aa8c=_0x44704e[_0xcb84e2[_0xa8ef('0x31')]];if(!_0x36aa8c){if(_0xcb84e2['field']===_0xa8ef('0x3f')){var _0x1c51cb=_0xcb84e2['value'][_0xa8ef('0x40')](',')[_0xa8ef('0x41')](function(_0x13705c){return Number(_0x13705c);});_0x1c51cb['forEach'](function(_0x4f1f35){_0xbc5dec['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4f1f35+',%');});_0x1aeb9d=_[_0xa8ef('0x42')](_0x1aeb9d,_0x1c51cb);}else if(_0xcb84e2[_0xa8ef('0x31')]===_0xa8ef('0x43')){_0x65c7d0['and']('uc.UserId\x20=\x20?',_0xcb84e2[_0xa8ef('0x44')]);}}else{if(_0xcb84e2[_0xa8ef('0x31')]===_0xa8ef('0x45')||_0x36aa8c[_0xa8ef('0x46')]==='datetime')_0xcb84e2[_0xa8ef('0x47')]=_0xa8ef('0x48');var _0x3c1188=as[_0xa8ef('0x49')](_0x58c589,_0x36aa8c[_0xa8ef('0x4a')],_0xcb84e2);_0x65c7d0[_0x373216](_0x3c1188['text'],_0x3c1188[_0xa8ef('0x44')][_0xa8ef('0x4b')],_0x3c1188[_0xa8ef('0x44')]['end']);}}}else{var _0x48c6c0=_(Object['keys'](_0x3345be[_0xa8ef('0x27')]))[_0xa8ef('0x41')](function(_0x176bef){return _0x44704e[_0xa8ef('0x2c')](_0x176bef)?_0x176bef:undefined;})[_0xa8ef('0x4c')](function(_0x2ae5cb){return!_[_0xa8ef('0x4d')](_0x2ae5cb);})[_0xa8ef('0x44')]();if(_0x3345be['query']['Contact'])_0x48c6c0['push'](_0xa8ef('0x4e'));if(!_[_0xa8ef('0x4f')](_0x48c6c0)){_0x48c6c0[_0xa8ef('0x50')](function(_0x32bdf4){if(_0x32bdf4===_0xa8ef('0x51')){_0x447ce3['where']('c.ListId\x20IN\x20?',[][_0xa8ef('0x52')](_0x3345be[_0xa8ef('0x27')][_0x32bdf4]));}else if(_0x32bdf4===_0xa8ef('0x4e')){var _0x58c923='%'+_0x3345be[_0xa8ef('0x27')][_0x32bdf4]+'%';_0x447ce3[_0xa8ef('0x38')](_0xa8ef('0x53'),_0x58c923);}else{_0x447ce3[_0xa8ef('0x38')]('c.'+_0x32bdf4+_0xa8ef('0x54'),_0x3345be[_0xa8ef('0x27')][_0x32bdf4]);}});}if(_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x55')]){_0x1aeb9d=_[_0xa8ef('0x56')](_0x3345be[_0xa8ef('0x27')]['tag'])?_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x55')]:new Array(_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x55')]);_0x1aeb9d[_0xa8ef('0x50')](function(_0x374fb8){_0xbc5dec['or'](_0xa8ef('0x57'),'%,'+_0x374fb8+',%');});}if(_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x4c')]){var _0x559d8b=_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x4c')][_0xa8ef('0x58')]('\x5c','\x5c\x5c')[_0xa8ef('0x58')](/'/g,'\x27\x27');if(_0x559d8b[_0xa8ef('0x40')]('\x20')[_0xa8ef('0x21')]>0x1){_0x65c7d0['or']('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xa8ef('0x59')](_0x559d8b),null);}else{if(qs[_0xa8ef('0x5a')](_0x559d8b)){_0x65c7d0['or'](_0xa8ef('0x5b'),_0x559d8b+'%');_0x65c7d0['or'](_0xa8ef('0x5c'),_0x559d8b+'%');_0x65c7d0['or'](_0xa8ef('0x5d'),_0x559d8b+'%');_0x65c7d0['or'](_0xa8ef('0x5e'),_0x559d8b+'%');}else if(qs['isEmail'](_0x559d8b)){_0x65c7d0['or'](_0xa8ef('0x5f'),_0x559d8b+'%');}else{_0x65c7d0['or'](_0xa8ef('0x60'),'%'+_0x559d8b+'%');_0x65c7d0['or']('c.lastName\x20LIKE\x20?','%'+_0x559d8b+'%');_0x65c7d0['or'](_0xa8ef('0x5f'),'%'+_0x559d8b+'%');}}}}_0x447ce3[_0xa8ef('0x38')](_0x65c7d0);_0x447ce3[_0xa8ef('0x61')](_0xa8ef('0x62'));var _0x16816e={'type':db[_0xa8ef('0x63')][_0xa8ef('0x64')]['SELECT'],'raw':!![]};var _0x170726=_0x447ce3[_0xa8ef('0x65')]()[_0xa8ef('0x31')](_0xa8ef('0x62'));if(_0x2e483[_0xa8ef('0x2e')]){_0x2e483[_0xa8ef('0x2e')]['forEach'](function(_0x388b48){_0x447ce3[_0xa8ef('0x2e')]('c.'+_0x388b48[0x0],_0x388b48[0x1]===_0xa8ef('0x66')?![]:!![]);});}if(!_[_0xa8ef('0x4f')](_0x1aeb9d)){_0x447ce3[_0xa8ef('0x67')](_0xbc5dec);_0x170726[_0xa8ef('0x38')](_0xa8ef('0x68'),_0x1aeb9d);}BPromise['resolve']()['then'](function(){if(!_0xde2778)return;if(_0x3345be['user'][_0xa8ef('0x69')]!=='agent')return;if(!_['some'](_0xde2778[_0xa8ef('0x3d')],[_0xa8ef('0x31'),_0xa8ef('0x43')])){return _0x3345be[_0xa8ef('0x6a')]['getLists']({'attributes':['id'],'raw':!![]})[_0xa8ef('0x16')](function(_0x4dd273){if(_[_0xa8ef('0x4f')](_0x4dd273)){_0x170726[_0xa8ef('0x38')]('c.ListId\x20IS\x20NULL');_0x447ce3[_0xa8ef('0x38')]('c.ListId\x20IS\x20NULL');}else{_0x170726[_0xa8ef('0x38')]('c.ListId\x20IN\x20?',_[_0xa8ef('0x41')](_0x4dd273,'id'));_0x447ce3[_0xa8ef('0x38')]('c.ListId\x20IN\x20?',_['map'](_0x4dd273,'id'));}});}})[_0xa8ef('0x16')](function(){if(_0x3345be[_0xa8ef('0x6a')][_0xa8ef('0x69')]===_0xa8ef('0x6b')&&!_0xde2778&&!_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x51')])return[];return db[_0xa8ef('0x6c')][_0xa8ef('0x27')](_0x170726[_0xa8ef('0x6d')](),_0x16816e);})[_0xa8ef('0x16')](function(_0x906fad){_0x258951[_0xa8ef('0x11')]=_0x906fad[_0xa8ef('0x21')];if(_0x258951[_0xa8ef('0x11')]===0x0)return[];return db[_0xa8ef('0x6c')][_0xa8ef('0x27')](_0x1db17a['toString'](),_0x16816e)[_0xa8ef('0x16')](function(_0x313dd2){_0x414030=_[_0xa8ef('0x6e')](_0x313dd2,'id');_0x16816e=_[_0xa8ef('0x6f')](_0x16816e,{'model':db['CmContact'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x3345be[_0xa8ef('0x27')][_0xa8ef('0x2b')]){_0x2e483[_0xa8ef('0x29')][_0xa8ef('0x50')](function(_0x1f1645){_0x447ce3[_0xa8ef('0x31')]('c.'+_0x1f1645);});}else{_0x447ce3[_0xa8ef('0x31')](_0xa8ef('0x62'));_0x447ce3['field']('c.firstName');_0x447ce3[_0xa8ef('0x31')]('c.lastName');_0x447ce3['field']('c.phone');_0x447ce3[_0xa8ef('0x31')](_0xa8ef('0x70'));_0x447ce3[_0xa8ef('0x31')](_0xa8ef('0x71'));_0x447ce3['field'](_0xa8ef('0x72'));_0x447ce3[_0xa8ef('0x31')](_0xa8ef('0x73'));_0x447ce3[_0xa8ef('0x31')](_0xa8ef('0x74'));_0x447ce3[_0xa8ef('0x31')](_0xa8ef('0x75'));_0x447ce3[_0xa8ef('0x31')](_0xa8ef('0x76'));_0x447ce3['field'](_0xa8ef('0x77'),_0xa8ef('0x78'));}if(_0x2e483['limit'])_0x447ce3[_0xa8ef('0x12')](_0x2e483[_0xa8ef('0x12')]);if(_0x2e483['offset'])_0x447ce3[_0xa8ef('0xf')](_0x2e483[_0xa8ef('0xf')]);return db[_0xa8ef('0x6c')][_0xa8ef('0x27')](_0x447ce3[_0xa8ef('0x6d')](),_0x16816e);});})[_0xa8ef('0x16')](function(_0x27c454){_0x27c454[_0xa8ef('0x50')](function(_0x53a1fe){if(_0x53a1fe[_0xa8ef('0x78')]){_0x53a1fe['Tags']=[];_0x53a1fe['TagIds'][_0xa8ef('0x40')](',')['forEach'](function(_0xd23f1c){_0x53a1fe[_0xa8ef('0x79')][_0xa8ef('0x7a')](_0x414030[_0xd23f1c]);});}delete _0x53a1fe[_0xa8ef('0x78')];});_0x258951[_0xa8ef('0x7b')]=_0x27c454;return _0x258951;})[_0xa8ef('0x16')](respondWithFilteredResult(_0x370af0,_0x2e483));})[_0xa8ef('0x7c')](handleError(_0x370af0,null));};exports[_0xa8ef('0x7d')]=function(_0x586c29,_0x314700){return db['CmContact']['find']({'where':{'id':_0x586c29[_0xa8ef('0x7e')]['id']}})[_0xa8ef('0x16')](handleEntityNotFound(_0x314700,null))[_0xa8ef('0x16')](removeEntity(_0x314700,null))[_0xa8ef('0x7c')](handleError(_0x314700,null));};exports[_0xa8ef('0x20')]=function(_0x168346,_0x1dc205){return db[_0xa8ef('0x1f')][_0xa8ef('0x20')]()[_0xa8ef('0x16')](function(_0x5eb87d){delete _0x5eb87d[_0xa8ef('0x7f')];for(var _0x4f3fcb=0x0;_0x4f3fcb<Object[_0xa8ef('0x22')](_0x5eb87d)['length'];_0x4f3fcb++){var _0x583775=Object['keys'](_0x5eb87d)[_0x4f3fcb];if(!_['startsWith'](_0x583775,_0xa8ef('0x80'))){_0x5eb87d[_0x583775][_0xa8ef('0x81')]=_0x583775;_0x5eb87d[_0x583775]['displayName']=_0x583775;}}return _0x5eb87d;})['then'](function(_0x94cff9){var _0x3a6bc0={'where':Boolean(_0x168346[_0xa8ef('0x27')]['analytics'])===!![]?undefined:{'$or':[{'ListId':_0x168346['query']['id']},{'ListId':null}]},'raw':!![]};return db[_0xa8ef('0x24')][_0xa8ef('0x82')](_0x3a6bc0)[_0xa8ef('0x16')](function(_0x440d5a){for(var _0x362bec=0x0;_0x362bec<_0x440d5a[_0xa8ef('0x21')];_0x362bec++){var _0x5ac7d5=_0xa8ef('0x80')+_0x440d5a[_0x362bec]['id'];_0x94cff9[_0x5ac7d5][_0xa8ef('0x81')]=_0x5ac7d5;_0x94cff9[_0x5ac7d5][_0xa8ef('0x83')]=_0x440d5a[_0x362bec][_0xa8ef('0x84')];_0x94cff9[_0x5ac7d5][_0xa8ef('0x85')]={'type':_0x440d5a[_0x362bec][_0xa8ef('0x4a')],'values':_0x440d5a[_0x362bec][_0xa8ef('0x86')]};}Object['keys'](_0x94cff9)['forEach'](function(_0x4a716e){if(!_0x94cff9[_0x4a716e][_0xa8ef('0x2c')](_0xa8ef('0x81'))){delete _0x94cff9[_0x4a716e];}});return _0x94cff9;});})[_0xa8ef('0x16')](respondWithResult(_0x1dc205,null))[_0xa8ef('0x7c')](handleError(_0x1dc205,null));};exports['merge']=function(_0x169cf2,_0x6756ce){var _0x266d22;var _0x244cca;var _0x433178;if(_0x169cf2['body']['id']){delete _0x169cf2['body']['id'];}return db[_0xa8ef('0x1f')][_0xa8ef('0x82')]({'where':{'id':[_0x169cf2[_0xa8ef('0x87')]['to'],_0x169cf2[_0xa8ef('0x87')][_0xa8ef('0x32')]]}})[_0xa8ef('0x16')](function(_0x44214a){if(_0x44214a){if(_0x44214a['length']!==0x2){return null;}_0x44214a[0x0]=_0x44214a[0x0][_0xa8ef('0x88')]({'plain':!![]});_0x44214a[0x1]=_0x44214a[0x1][_0xa8ef('0x88')]({'plain':!![]});delete _0x44214a[0x0]['id'];delete _0x44214a[0x1]['id'];return _[_0xa8ef('0x89')](_0x44214a[0x0],_0x44214a[0x1],function(_0x88124a,_0x264a8c){if(Array[_0xa8ef('0x56')](_0x264a8c)&&!_0x264a8c['length']){return _0x88124a;}else if(!_0x264a8c){return _0x88124a;}});}})[_0xa8ef('0x16')](handleEntityNotFound(_0x6756ce,null))[_0xa8ef('0x16')](function(_0x5c6347){if(_0x5c6347){if(_0x5c6347[_0xa8ef('0x7f')]&&_[_0xa8ef('0x56')](_0x5c6347['tags'])){_0x5c6347[_0xa8ef('0x7f')]=_0x5c6347[_0xa8ef('0x7f')][_0xa8ef('0x8a')]();}logger['info'](_0xa8ef('0x8b'),_0x169cf2['body']['to'],_0x169cf2[_0xa8ef('0x87')][_0xa8ef('0x32')]);return db[_0xa8ef('0x8c')][_0xa8ef('0x7d')]({'where':{'ContactId':[_0x169cf2['body']['to'],_0x169cf2[_0xa8ef('0x87')][_0xa8ef('0x32')]]}})[_0xa8ef('0x16')](function(_0x20a9d3){logger['info'](_0xa8ef('0x8d'),_0x20a9d3);return db[_0xa8ef('0x8e')][_0xa8ef('0x7d')]({'where':{'ContactId':[_0x169cf2['body']['to'],_0x169cf2['body'][_0xa8ef('0x32')]]}})[_0xa8ef('0x16')](function(_0x467f4f){logger[_0xa8ef('0x8f')](_0xa8ef('0x90'),_0x467f4f);return db[_0xa8ef('0x1f')][_0xa8ef('0x91')](_0x5c6347);});});}})[_0xa8ef('0x16')](function(_0x46989d){if(_0x46989d){_0x266d22=_0x46989d;_0x244cca={'ContactId':_0x266d22['id']};_0x433178={'where':{'ContactId':[_0x169cf2['body']['to'],_0x169cf2['body'][_0xa8ef('0x32')]]}};return db[_0xa8ef('0x92')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db[_0xa8ef('0x93')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x94')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x95')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x96')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x95')]['update'](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x96')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db['SmsInteraction'][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x97')]['update'](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x98')]['update'](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db[_0xa8ef('0x99')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x9a')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x9b')]['update'](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x9c')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x9d')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db['ReportAgentPreview'][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0x9e')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db[_0xa8ef('0x9f')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db['FaxQueueReport'][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db['MailQueueReport'][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0xa0')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0xa1')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db[_0xa8ef('0xa2')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0xa3')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db[_0xa8ef('0xa4')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})[_0xa8ef('0x16')](function(){if(_0x266d22){return db[_0xa8ef('0xa5')][_0xa8ef('0x15')](_0x244cca,_0x433178);}})['then'](function(){if(_0x266d22){return db['CmContact'][_0xa8ef('0x7d')]({'where':{'id':[_0x169cf2[_0xa8ef('0x87')]['to'],_0x169cf2['body'][_0xa8ef('0x32')]]}});}})[_0xa8ef('0x16')](function(){if(_0x266d22){return _0x266d22;}})[_0xa8ef('0x16')](respondWithResult(_0x6756ce,null))[_0xa8ef('0x7c')](handleError(_0x6756ce,null));};exports[_0xa8ef('0x91')]=function(_0x4289b0,_0x10c746){return db[_0xa8ef('0x1f')][_0xa8ef('0x20')]()[_0xa8ef('0x16')](function(_0x269362){if(_0x4289b0['body'][_0xa8ef('0x7f')]&&_[_0xa8ef('0x56')](_0x4289b0[_0xa8ef('0x87')][_0xa8ef('0x7f')])){if(_0x4289b0['body']['tags'][_0xa8ef('0x21')]){_0x4289b0[_0xa8ef('0x87')][_0xa8ef('0x7f')]=_0x4289b0[_0xa8ef('0x87')]['tags'][_0xa8ef('0x8a')](';')+';';}else{_0x4289b0[_0xa8ef('0x87')]['tags']=null;}}else{_0x4289b0[_0xa8ef('0x87')][_0xa8ef('0x7f')]=null;}return db['CmContact'][_0xa8ef('0x91')](_0x4289b0[_0xa8ef('0x87')],{'fields':_[_0xa8ef('0x22')](_0x269362),'raw':!![]});})[_0xa8ef('0x16')](respondWithResult(_0x10c746,0xc9))[_0xa8ef('0x7c')](handleError(_0x10c746,null));};exports[_0xa8ef('0xa6')]=function(_0x558382,_0x5bcbb0){var _0x1c2c03=0x0;var _0x2f772a=0x0;var _0x1ecd05=0x0;return db['CmContact'][_0xa8ef('0x20')]()[_0xa8ef('0x16')](function(_0xdc553a){return BPromise[_0xa8ef('0xa7')](_0x558382[_0xa8ef('0x87')],function(_0x2677f7){var _0x2d579d={'where':{'$or':[]},'defaults':_0x2677f7,'fields':_[_0xa8ef('0x22')](_0xdc553a),'raw':!![]};if(_0x2677f7[_0xa8ef('0xa8')]){for(var _0xfc799a=0x0;_0xfc799a<_0x2677f7[_0xa8ef('0xa8')]['length'];_0xfc799a++){var _0x4c6835={};_0x4c6835[_0x2677f7[_0xa8ef('0xa8')][_0xfc799a]]=_0x2677f7[_0x2677f7['duplicates'][_0xfc799a]];_0x2d579d[_0xa8ef('0x38')][_0xa8ef('0xa9')][_0xa8ef('0x7a')](_0x4c6835);}_0x2d579d[_0xa8ef('0x38')][_0xa8ef('0x51')]=_0x2677f7[_0xa8ef('0x51')];}return db[_0xa8ef('0x1f')]['findOrCreate'](_0x2d579d)[_0xa8ef('0xaa')](function(_0x2f1e76,_0xa99770){if(_0xa99770){_0x1c2c03++;}else{_0x1ecd05++;}})[_0xa8ef('0x7c')](function(){_0x2f772a++;});});})[_0xa8ef('0x16')](function(_0x2af4a3){if(_0x2af4a3){return{'success':_0x1c2c03,'failure':_0x2f772a,'duplicates':_0x1ecd05};}})[_0xa8ef('0x16')](respondWithResult(_0x5bcbb0,0xc9))[_0xa8ef('0x7c')](handleError(_0x5bcbb0,null));};exports[_0xa8ef('0xab')]=function(_0x5257e7,_0x4b3927){var _0x1fc6c2;return db[_0xa8ef('0x1f')][_0xa8ef('0x20')]()['then'](function(_0x323dbd){return db[_0xa8ef('0x1f')][_0xa8ef('0x3e')]({'where':{'id':_0x5257e7[_0xa8ef('0x7e')]['id']},'include':[{'model':db[_0xa8ef('0x3f')],'as':_0xa8ef('0x79'),'attributes':['id',_0xa8ef('0x1c'),_0xa8ef('0xac')],'required':_0x5257e7[_0xa8ef('0x27')][_0xa8ef('0x55')]?!![]:![]}],'attributes':_['keys'](_0x323dbd)});})['then'](function(_0x527f23){if(!_[_0xa8ef('0x4d')](_0x527f23)){_0x1fc6c2=_0x527f23[_0xa8ef('0x88')]({'plain':!![]});var _0x2d275a={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x527f23&&_0x527f23[_0xa8ef('0x51')]){if(_0x527f23[_0xa8ef('0x51')]){_0x2d275a[_0xa8ef('0x38')]['$and'][_0xa8ef('0x7a')]({'ListId':{'$ne':_0x527f23[_0xa8ef('0x51')]}});}}return db[_0xa8ef('0x24')][_0xa8ef('0x82')](_0x2d275a);}})[_0xa8ef('0x16')](function(_0x203a86){if(!_[_0xa8ef('0x4d')](_0x203a86)){return _['omit'](_0x1fc6c2,_['map'](_0x203a86,function(_0x531bca){return util[_0xa8ef('0xad')](_0xa8ef('0xae'),_0x531bca['id']);}));}})[_0xa8ef('0x16')](handleEntityNotFound(_0x4b3927,null))[_0xa8ef('0x16')](respondWithResult(_0x4b3927,null))[_0xa8ef('0x7c')](handleError(_0x4b3927,null));};exports['update']=function(_0x44da1c,_0xb9f64d){var _0x5d6927;if(_0x44da1c[_0xa8ef('0x87')]['id']){delete _0x44da1c[_0xa8ef('0x87')]['id'];}return db[_0xa8ef('0x1f')][_0xa8ef('0x3e')]({'where':{'id':_0x44da1c[_0xa8ef('0x7e')]['id']}})['then'](handleEntityNotFound(_0xb9f64d,null))[_0xa8ef('0x16')](saveUpdates(_0x44da1c[_0xa8ef('0x87')],null))[_0xa8ef('0x16')](function(_0x5972fe){_0x5d6927=_0x5972fe;var _0x579ba1={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x5972fe&&_0x5972fe[_0xa8ef('0x51')]){if(_0x5972fe['ListId']){_0x579ba1['where'][_0xa8ef('0xaf')][_0xa8ef('0x7a')]({'ListId':{'$ne':_0x5972fe[_0xa8ef('0x51')]}});}}return db[_0xa8ef('0x24')]['findAll'](_0x579ba1);})['then'](function(_0x449e74){if(_0x449e74){return _['omit'](_[_0xa8ef('0xb0')](_0x44da1c['body'],function(_0x24cc89,_0x273f29){return _[_0xa8ef('0x23')](_0x273f29,_0xa8ef('0x80'));}),_[_0xa8ef('0x41')](_0x449e74,function(_0x34c155){return util[_0xa8ef('0xad')](_0xa8ef('0xae'),_0x34c155['id']);}));}})[_0xa8ef('0x16')](function(_0x4070c3){if(_0x4070c3&&!_[_0xa8ef('0x4f')](_0x4070c3)){var _0x122251=squel[_0xa8ef('0x15')]()['table'](_0xa8ef('0xb1'))[_0xa8ef('0xb2')](_0x4070c3)[_0xa8ef('0x38')]('id\x20=\x20?',_0x44da1c[_0xa8ef('0x7e')]['id'])[_0xa8ef('0xb3')]();return db[_0xa8ef('0x6c')][_0xa8ef('0x27')](_0x122251['text'],{'replacements':_0x122251['values']});}})[_0xa8ef('0x16')](function(){if(_0x44da1c['body']['phone']&&_0x5d6927){return db[_0xa8ef('0x8c')]['update']({'phone':_0x44da1c['body'][_0xa8ef('0xb4')]},{'where':{'ContactId':_0x5d6927['id']}});}})['then'](function(){return _0x5d6927;})['then'](respondWithResult(_0xb9f64d,null))[_0xa8ef('0x7c')](handleError(_0xb9f64d,null));};exports[_0xa8ef('0xb5')]=function(_0x5c88bd,_0x1c5d62){var _0x27cf1f={};var _0x509aa3={};var _0x175fae;var _0x5e7107;return db['CmContact'][_0xa8ef('0xb6')]({'where':{'id':_0x5c88bd[_0xa8ef('0x7e')]['id']}})['then'](handleEntityNotFound(_0x1c5d62,null))[_0xa8ef('0x16')](function(_0x21482e){if(_0x21482e){_0x175fae=_0x21482e;_0x509aa3[_0xa8ef('0x26')]=_[_0xa8ef('0x22')](db[_0xa8ef('0x3f')][_0xa8ef('0xb7')]);_0x509aa3[_0xa8ef('0x27')]=_['keys'](_0x5c88bd[_0xa8ef('0x27')]);_0x509aa3[_0xa8ef('0x28')]=_[_0xa8ef('0x2a')](_0x509aa3[_0xa8ef('0x26')],_0x509aa3['query']);_0x27cf1f['attributes']=_[_0xa8ef('0x2a')](_0x509aa3['model'],qs[_0xa8ef('0x2b')](_0x5c88bd[_0xa8ef('0x27')][_0xa8ef('0x2b')]));_0x27cf1f[_0xa8ef('0x29')]=_0x27cf1f[_0xa8ef('0x29')][_0xa8ef('0x21')]?_0x27cf1f[_0xa8ef('0x29')]:_0x509aa3[_0xa8ef('0x26')];_0x27cf1f[_0xa8ef('0x2e')]=qs['sort'](_0x5c88bd[_0xa8ef('0x27')][_0xa8ef('0x2f')]);_0x27cf1f[_0xa8ef('0x38')]=qs['filters'](_[_0xa8ef('0xb8')](_0x5c88bd['query'],_0x509aa3[_0xa8ef('0x28')]));if(_0x5c88bd['query'][_0xa8ef('0x4c')]){_0x27cf1f[_0xa8ef('0x38')]=_['merge'](_0x27cf1f[_0xa8ef('0x38')],{'$or':_[_0xa8ef('0x41')](_0x27cf1f['attributes'],function(_0x4032fd){var _0x202c2a={};_0x202c2a[_0x4032fd]={'$like':'%'+_0x5c88bd['query'][_0xa8ef('0x4c')]+'%'};return _0x202c2a;})});}_0x27cf1f=_['merge']({},_0x27cf1f,_0x5c88bd[_0xa8ef('0xb9')]);return _0x175fae[_0xa8ef('0xb5')](_0x27cf1f);}})[_0xa8ef('0x16')](function(_0x1df214){if(_0x1df214){_0x5e7107=_0x1df214[_0xa8ef('0x21')];if(!_0x5c88bd[_0xa8ef('0x27')]['hasOwnProperty']('nolimit')){_0x27cf1f['limit']=qs[_0xa8ef('0x12')](_0x5c88bd['query'][_0xa8ef('0x12')]);_0x27cf1f[_0xa8ef('0xf')]=qs[_0xa8ef('0xf')](_0x5c88bd[_0xa8ef('0x27')][_0xa8ef('0xf')]);}return _0x175fae[_0xa8ef('0xb5')](_0x27cf1f);}})[_0xa8ef('0x16')](function(_0x4fd786){if(_0x4fd786){return _0x4fd786?{'count':_0x5e7107,'rows':_0x4fd786}:null;}})[_0xa8ef('0x16')](respondWithResult(_0x1c5d62,null))['catch'](handleError(_0x1c5d62,null));};exports['setTags']=function(_0x15d2fd,_0x3245d8){if(_0x15d2fd['body']['id']){delete _0x15d2fd[_0xa8ef('0x87')]['id'];}return db[_0xa8ef('0x1f')][_0xa8ef('0xb6')]({'where':{'id':_0x15d2fd[_0xa8ef('0x7e')]['id']}})['then'](handleEntityNotFound(_0x3245d8,null))['then'](function(_0x375b21){if(_0x375b21){return _0x375b21[_0xa8ef('0xba')](_0x15d2fd['body'][_0xa8ef('0xbb')]||[]);}return null;})[_0xa8ef('0x16')](respondWithResult(_0x3245d8,null))['catch'](handleError(_0x3245d8,null));};exports[_0xa8ef('0xbc')]=function(_0x4a99ad,_0x478923){var _0x690526={'raw':![],'where':{}};var _0x1ab2b0={};var _0x454a35={'count':0x0,'rows':[]};return db[_0xa8ef('0x1f')][_0xa8ef('0xb6')]({'where':{'id':_0x4a99ad['params']['id']}})[_0xa8ef('0x16')](handleEntityNotFound(_0x478923,null))[_0xa8ef('0x16')](function(_0x2750f1){if(_0x2750f1){_0x1ab2b0['model']=_['keys'](db[_0xa8ef('0x8c')][_0xa8ef('0xb7')]);_0x1ab2b0[_0xa8ef('0x27')]=_[_0xa8ef('0x22')](_0x4a99ad['query']);_0x1ab2b0[_0xa8ef('0x28')]=_[_0xa8ef('0x2a')](_0x1ab2b0[_0xa8ef('0x26')],_0x1ab2b0['query']);_0x690526[_0xa8ef('0x29')]=_[_0xa8ef('0x2a')](_0x1ab2b0[_0xa8ef('0x26')],qs['fields'](_0x4a99ad[_0xa8ef('0x27')][_0xa8ef('0x2b')]));_0x690526['attributes']=_0x690526[_0xa8ef('0x29')][_0xa8ef('0x21')]?_0x690526[_0xa8ef('0x29')]:_0x1ab2b0[_0xa8ef('0x26')];if(!_0x4a99ad[_0xa8ef('0x27')][_0xa8ef('0x2c')](_0xa8ef('0x2d'))){_0x690526['limit']=qs['limit'](_0x4a99ad[_0xa8ef('0x27')][_0xa8ef('0x12')]);_0x690526['offset']=qs['offset'](_0x4a99ad['query']['offset']);}_0x690526[_0xa8ef('0x2e')]=qs[_0xa8ef('0x2f')](_0x4a99ad[_0xa8ef('0x27')][_0xa8ef('0x2f')]);_0x690526[_0xa8ef('0x38')]=qs[_0xa8ef('0x28')](_[_0xa8ef('0xb8')](_0x4a99ad[_0xa8ef('0x27')],_0x1ab2b0[_0xa8ef('0x28')]));_0x690526['where'][_0xa8ef('0xbd')]=_0x2750f1['id'];if(_0x4a99ad[_0xa8ef('0x27')][_0xa8ef('0x4c')]){_0x690526['where']=_[_0xa8ef('0x6f')](_0x690526[_0xa8ef('0x38')],{'$or':_['map'](_0x690526['attributes'],function(_0xe88a17){var _0x32bc72={};_0x32bc72[_0xe88a17]={'$like':'%'+_0x4a99ad[_0xa8ef('0x27')]['filter']+'%'};return _0x32bc72;})});}_0x690526=_[_0xa8ef('0x6f')]({},_0x690526,_0x4a99ad[_0xa8ef('0xb9')]);return db[_0xa8ef('0x8c')][_0xa8ef('0x11')]({'where':_0x690526[_0xa8ef('0x38')]})[_0xa8ef('0x16')](function(_0x4b1fb4){_0x454a35[_0xa8ef('0x11')]=_0x4b1fb4;if(_0x4a99ad[_0xa8ef('0x27')][_0xa8ef('0xbe')]){_0x690526[_0xa8ef('0xbf')]=[{'all':!![]}];}return db['CmHopper'][_0xa8ef('0x82')](_0x690526);})[_0xa8ef('0x16')](function(_0x586627){_0x454a35[_0xa8ef('0x7b')]=_0x586627;return _0x454a35;});}})[_0xa8ef('0x16')](respondWithFilteredResult(_0x478923,_0x690526))[_0xa8ef('0x7c')](handleError(_0x478923,null));};exports[_0xa8ef('0xc0')]=function(_0x49da07,_0x205c32){var _0x1c11e9={'raw':!![],'where':{}};var _0x58d922={};var _0x47131e={'count':0x0,'rows':[]};return db[_0xa8ef('0x1f')][_0xa8ef('0xb6')]({'where':{'id':_0x49da07[_0xa8ef('0x7e')]['id']}})[_0xa8ef('0x16')](handleEntityNotFound(_0x205c32,null))['then'](function(_0x29d7b0){if(_0x29d7b0){_0x58d922[_0xa8ef('0x26')]=_[_0xa8ef('0x22')](db['CmHopperHistory'][_0xa8ef('0xb7')]);_0x58d922[_0xa8ef('0x27')]=_['keys'](_0x49da07['query']);_0x58d922[_0xa8ef('0x28')]=_[_0xa8ef('0x2a')](_0x58d922['model'],_0x58d922[_0xa8ef('0x27')]);_0x1c11e9[_0xa8ef('0x29')]=_[_0xa8ef('0x2a')](_0x58d922[_0xa8ef('0x26')],qs[_0xa8ef('0x2b')](_0x49da07[_0xa8ef('0x27')][_0xa8ef('0x2b')]));_0x1c11e9[_0xa8ef('0x29')]=_0x1c11e9[_0xa8ef('0x29')][_0xa8ef('0x21')]?_0x1c11e9[_0xa8ef('0x29')]:_0x58d922[_0xa8ef('0x26')];if(!_0x49da07[_0xa8ef('0x27')][_0xa8ef('0x2c')](_0xa8ef('0x2d'))){_0x1c11e9[_0xa8ef('0x12')]=qs[_0xa8ef('0x12')](_0x49da07[_0xa8ef('0x27')][_0xa8ef('0x12')]);_0x1c11e9[_0xa8ef('0xf')]=qs[_0xa8ef('0xf')](_0x49da07[_0xa8ef('0x27')][_0xa8ef('0xf')]);}_0x1c11e9['order']=qs[_0xa8ef('0x2f')](_0x49da07[_0xa8ef('0x27')]['sort']);_0x1c11e9[_0xa8ef('0x38')]=qs[_0xa8ef('0x28')](_[_0xa8ef('0xb8')](_0x49da07[_0xa8ef('0x27')],_0x58d922[_0xa8ef('0x28')]));_0x1c11e9[_0xa8ef('0x38')]['ContactId']=_0x29d7b0['id'];if(_0x49da07[_0xa8ef('0x27')][_0xa8ef('0x4c')]){_0x1c11e9['where']=_[_0xa8ef('0x6f')](_0x1c11e9['where'],{'$or':_[_0xa8ef('0x41')](_0x1c11e9[_0xa8ef('0x29')],function(_0x4b0978){var _0x3847e9={};_0x3847e9[_0x4b0978]={'$like':'%'+_0x49da07[_0xa8ef('0x27')]['filter']+'%'};return _0x3847e9;})});}_0x1c11e9=_[_0xa8ef('0x6f')]({},_0x1c11e9,_0x49da07[_0xa8ef('0xb9')]);return db[_0xa8ef('0x9d')][_0xa8ef('0x11')]({'where':_0x1c11e9[_0xa8ef('0x38')]})['then'](function(_0x3a98b4){_0x47131e['count']=_0x3a98b4;if(_0x49da07['query'][_0xa8ef('0xbe')]){_0x1c11e9[_0xa8ef('0xbf')]=[{'all':!![]}];}return db['CmHopperHistory']['findAll'](_0x1c11e9);})['then'](function(_0x5515e0){_0x47131e['rows']=_0x5515e0;return _0x47131e;});}})[_0xa8ef('0x16')](respondWithFilteredResult(_0x205c32,_0x1c11e9))[_0xa8ef('0x7c')](handleError(_0x205c32,null));};exports[_0xa8ef('0xc1')]=function(_0x1e97ba,_0xb628db){var _0x1265db={'raw':!![],'where':{}};var _0x19ae96={};var _0x425d31={'count':0x0,'rows':[]};return db[_0xa8ef('0x1f')][_0xa8ef('0xb6')]({'where':{'id':_0x1e97ba['params']['id']}})[_0xa8ef('0x16')](handleEntityNotFound(_0xb628db,null))['then'](function(_0x11d129){if(_0x11d129){_0x19ae96[_0xa8ef('0x26')]=_[_0xa8ef('0x22')](db['CmHopperFinal'][_0xa8ef('0xb7')]);_0x19ae96[_0xa8ef('0x27')]=_['keys'](_0x1e97ba[_0xa8ef('0x27')]);_0x19ae96[_0xa8ef('0x28')]=_[_0xa8ef('0x2a')](_0x19ae96[_0xa8ef('0x26')],_0x19ae96[_0xa8ef('0x27')]);_0x1265db['attributes']=_[_0xa8ef('0x2a')](_0x19ae96['model'],qs['fields'](_0x1e97ba[_0xa8ef('0x27')][_0xa8ef('0x2b')]));_0x1265db[_0xa8ef('0x29')]=_0x1265db['attributes'][_0xa8ef('0x21')]?_0x1265db[_0xa8ef('0x29')]:_0x19ae96[_0xa8ef('0x26')];if(!_0x1e97ba[_0xa8ef('0x27')][_0xa8ef('0x2c')](_0xa8ef('0x2d'))){_0x1265db[_0xa8ef('0x12')]=qs[_0xa8ef('0x12')](_0x1e97ba[_0xa8ef('0x27')]['limit']);_0x1265db[_0xa8ef('0xf')]=qs[_0xa8ef('0xf')](_0x1e97ba[_0xa8ef('0x27')][_0xa8ef('0xf')]);}_0x1265db[_0xa8ef('0x2e')]=qs[_0xa8ef('0x2f')](_0x1e97ba[_0xa8ef('0x27')][_0xa8ef('0x2f')]);_0x1265db[_0xa8ef('0x38')]=qs[_0xa8ef('0x28')](_[_0xa8ef('0xb8')](_0x1e97ba['query'],_0x19ae96[_0xa8ef('0x28')]));_0x1265db['where'][_0xa8ef('0xbd')]=_0x11d129['id'];if(_0x1e97ba[_0xa8ef('0x27')][_0xa8ef('0x4c')]){_0x1265db[_0xa8ef('0x38')]=_['merge'](_0x1265db[_0xa8ef('0x38')],{'$or':_[_0xa8ef('0x41')](_0x1265db[_0xa8ef('0x29')],function(_0x135c9a){var _0x113184={};_0x113184[_0x135c9a]={'$like':'%'+_0x1e97ba[_0xa8ef('0x27')][_0xa8ef('0x4c')]+'%'};return _0x113184;})});}_0x1265db=_['merge']({},_0x1265db,_0x1e97ba[_0xa8ef('0xb9')]);return db[_0xa8ef('0x9c')][_0xa8ef('0x11')]({'where':_0x1265db[_0xa8ef('0x38')]})['then'](function(_0x39606b){_0x425d31['count']=_0x39606b;if(_0x1e97ba[_0xa8ef('0x27')][_0xa8ef('0xbe')]){_0x1265db[_0xa8ef('0xbf')]=[{'all':!![]}];}return db['CmHopperFinal'][_0xa8ef('0x82')](_0x1265db);})['then'](function(_0x59ed68){_0x425d31['rows']=_0x59ed68;return _0x425d31;});}})[_0xa8ef('0x16')](respondWithFilteredResult(_0xb628db,_0x1265db))[_0xa8ef('0x7c')](handleError(_0xb628db,null));};exports[_0xa8ef('0xc2')]=function(_0x85691a,_0x153b1e){var _0x2a5c16={'raw':!![],'where':{}};var _0x36e4e1={};var _0x138ad7={'count':0x0,'rows':[]};return db[_0xa8ef('0x1f')][_0xa8ef('0xb6')]({'where':{'id':_0x85691a['params']['id']}})[_0xa8ef('0x16')](handleEntityNotFound(_0x153b1e,null))[_0xa8ef('0x16')](function(_0x57df04){if(_0x57df04){_0x36e4e1['model']=_[_0xa8ef('0x22')](db[_0xa8ef('0xa2')][_0xa8ef('0xb7')]);_0x36e4e1[_0xa8ef('0x27')]=_['keys'](_0x85691a[_0xa8ef('0x27')]);_0x36e4e1[_0xa8ef('0x28')]=_['intersection'](_0x36e4e1['model'],_0x36e4e1[_0xa8ef('0x27')]);_0x2a5c16['attributes']=_[_0xa8ef('0x2a')](_0x36e4e1['model'],qs['fields'](_0x85691a[_0xa8ef('0x27')][_0xa8ef('0x2b')]));_0x2a5c16[_0xa8ef('0x29')]=_0x2a5c16['attributes'][_0xa8ef('0x21')]?_0x2a5c16['attributes']:_0x36e4e1[_0xa8ef('0x26')];if(!_0x85691a[_0xa8ef('0x27')]['hasOwnProperty']('nolimit')){_0x2a5c16[_0xa8ef('0x12')]=qs[_0xa8ef('0x12')](_0x85691a[_0xa8ef('0x27')][_0xa8ef('0x12')]);_0x2a5c16[_0xa8ef('0xf')]=qs[_0xa8ef('0xf')](_0x85691a[_0xa8ef('0x27')][_0xa8ef('0xf')]);}_0x2a5c16[_0xa8ef('0x2e')]=qs[_0xa8ef('0x2f')](_0x85691a[_0xa8ef('0x27')][_0xa8ef('0x2f')]);_0x2a5c16[_0xa8ef('0x38')]=qs[_0xa8ef('0x28')](_[_0xa8ef('0xb8')](_0x85691a[_0xa8ef('0x27')],_0x36e4e1[_0xa8ef('0x28')]));_0x2a5c16['where'][_0xa8ef('0xbd')]=_0x57df04['id'];if(_0x85691a[_0xa8ef('0x27')]['filter']){_0x2a5c16[_0xa8ef('0x38')]=_['merge'](_0x2a5c16[_0xa8ef('0x38')],{'$or':_['map'](_0x2a5c16[_0xa8ef('0x29')],function(_0x5b2732){var _0xca5d85={};_0xca5d85[_0x5b2732]={'$like':'%'+_0x85691a[_0xa8ef('0x27')][_0xa8ef('0x4c')]+'%'};return _0xca5d85;})});}_0x2a5c16=_[_0xa8ef('0x6f')]({},_0x2a5c16,_0x85691a[_0xa8ef('0xb9')]);return db[_0xa8ef('0xa2')][_0xa8ef('0x11')]({'where':_0x2a5c16[_0xa8ef('0x38')]})[_0xa8ef('0x16')](function(_0x85f301){_0x138ad7[_0xa8ef('0x11')]=_0x85f301;if(_0x85691a[_0xa8ef('0x27')][_0xa8ef('0xbe')]){_0x2a5c16[_0xa8ef('0xbf')]=[{'all':!![]}];}return db[_0xa8ef('0xa2')]['findAll'](_0x2a5c16);})[_0xa8ef('0x16')](function(_0x40cc57){_0x138ad7[_0xa8ef('0x7b')]=_0x40cc57;return _0x138ad7;});}})[_0xa8ef('0x16')](respondWithFilteredResult(_0x153b1e,_0x2a5c16))['catch'](handleError(_0x153b1e,null));};exports['uploadCsv']=function(_0x342f2a,_0x9fcb2e){try{if(!_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0x51')]){throw new Error('No\x20ListId\x20specified');}if(!_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0xc3')]){throw new Error(_0xa8ef('0xc4'));}if(!_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0xc5')]){throw new Error(_0xa8ef('0xc6'));}if(!_0x342f2a['body'][_0xa8ef('0xc7')]){throw new Error(_0xa8ef('0xc8'));}var _0x58ba43=_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0xc3')][_0xa8ef('0x40')](',');var _0x413369=_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0xc5')][_0xa8ef('0x40')](',');if(!_0x58ba43[_0xa8ef('0x21')]||!_0x413369[_0xa8ef('0x21')]||_0x58ba43['length']!==_0x413369[_0xa8ef('0x21')]){throw new Error(_0xa8ef('0xc9'));}_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0x2b')]=_['zipObject'](_0x58ba43,_0x413369);if(!_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0x2b')][_0xa8ef('0xb4')]){throw new Error(_0xa8ef('0xca'));}if(!_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0x2b')][_0xa8ef('0xcb')]){throw new Error(_0xa8ef('0xcc'));}var _0x2d34ab=path['join'](config[_0xa8ef('0xcd')],_0xa8ef('0xce'),_0x342f2a[_0xa8ef('0xcf')][_0xa8ef('0xd0')]);fs[_0xa8ef('0xd1')](_0x2d34ab,parseInt('0777',0x8));var _0x1b775a=require(_0xa8ef('0xd2'))['fork'](path[_0xa8ef('0x8a')](__dirname,_0xa8ef('0xd3')),[_0x2d34ab,_0x342f2a['body'][_0xa8ef('0xc3')],_0x342f2a['body'][_0xa8ef('0xc5')],_0x342f2a[_0xa8ef('0x87')]['ListId'],_0x342f2a['body'][_0xa8ef('0xd4')],_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0xa8')],_0x342f2a[_0xa8ef('0x87')][_0xa8ef('0xc7')]]);return _0x9fcb2e[_0xa8ef('0x17')](0xc8)[_0xa8ef('0xe')]({'message':_0xa8ef('0xd5'),'pid':_0x1b775a['pid']});}catch(_0x4c1f35){return _0x9fcb2e['status'](0x1f4)[_0xa8ef('0x1d')](_0x4c1f35);}};exports[_0xa8ef('0xd6')]=function(_0x18e9b5,_0x17342a){var _0xcf8f45=fs[_0xa8ef('0xd7')](_0x18e9b5['file'][_0xa8ef('0x1')]);Papa[_0xa8ef('0xd8')](_0xcf8f45,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x5f018b){return _0x17342a[_0xa8ef('0x17')](0xc8)[_0xa8ef('0xe')]({'file':_0x18e9b5['file'],'fields':_0x5f018b['meta'][_0xa8ef('0x2b')]});}});};exports[_0xa8ef('0xd9')]=function(_0x3c9605,_0x2cffbb){return db[_0xa8ef('0x43')][_0xa8ef('0x82')]({'raw':!![],'attributes':['id'],'where':{'role':_0xa8ef('0x6b')}})[_0xa8ef('0x16')](function(_0x2aa65a){var _0x51f6cf=![];if(!_0x3c9605[_0xa8ef('0x87')][_0xa8ef('0x51')]){throw new Error(_0xa8ef('0xda'));}if(!_0x3c9605['body']['binding'][_0xa8ef('0xb4')]){throw new Error(_0xa8ef('0xca'));}if(!_0x3c9605['body']['binding'][_0xa8ef('0xcb')]){throw new Error(_0xa8ef('0xcc'));}if(!_0x3c9605[_0xa8ef('0x87')][_0xa8ef('0xc7')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0xc0d37f=require('child_process')[_0xa8ef('0xdb')](path[_0xa8ef('0x8a')](__dirname,_0xa8ef('0xdc')),[_0x3c9605[_0xa8ef('0x7e')]['id'],JSON[_0xa8ef('0xdd')](_0x3c9605[_0xa8ef('0x87')]),JSON[_0xa8ef('0xdd')](_0x2aa65a)]);_0xc0d37f['on']('message',function(){_0x51f6cf=!![];return _0x2cffbb['status'](0xc8)[_0xa8ef('0xe')]({'message':'start\x20child\x20process\x20correctly!','pid':_0xc0d37f[_0xa8ef('0xde')]});});_0xc0d37f['on'](_0xa8ef('0xdf'),function(_0x1edfef){if(_0x1edfef&&!_0x51f6cf){return _0x2cffbb[_0xa8ef('0x17')](0x1f4)[_0xa8ef('0xe')]({'message':_0xa8ef('0xe0'),'pid':_0xc0d37f[_0xa8ef('0xde')]});}});})[_0xa8ef('0x7c')](handleError(_0x2cffbb,null));};exports['getJourney']=function(_0x48d9b6,_0x9b860f){var _0x146d9b=[_0xa8ef('0xe1'),_0xa8ef('0xe2'),_0xa8ef('0xe3'),_0xa8ef('0xe4'),_0xa8ef('0xe5'),'whatsapp',_0xa8ef('0xe6')];var _0x38244e={'offset':0x0,'order':qs['sort'](_0xa8ef('0xe7'))},_0x150cb8={'count':0x0,'rows':[]};Promise['resolve']()[_0xa8ef('0x16')](function(){if(_0x48d9b6[_0xa8ef('0x27')][_0xa8ef('0xe8')]){if(!_[_0xa8ef('0xe9')](_0x146d9b,_0x48d9b6[_0xa8ef('0x27')][_0xa8ef('0xe8')]['toLowerCase']())){throw new Error(_0xa8ef('0xea'));}_0x146d9b=[_0x48d9b6[_0xa8ef('0x27')][_0xa8ef('0xe8')][_0xa8ef('0xeb')]()];}if(_0x48d9b6[_0xa8ef('0x27')]['range']){try{var _0x35f9a7=JSON[_0xa8ef('0xd8')](_0x48d9b6['query'][_0xa8ef('0xec')]);if(!moment(_0x35f9a7[_0xa8ef('0x32')])['isValid']()){throw new Error('Invalid\x20date\x20for\x20range\x20from\x20filter');}if(!moment(_0x35f9a7['to'])[_0xa8ef('0xed')]()){throw new Error(_0xa8ef('0xee'));}}catch(_0x42db07){throw new Error(_0xa8ef('0xef'));}}if(!_0x48d9b6[_0xa8ef('0x27')]['hasOwnProperty'](_0xa8ef('0x2d'))){_0x38244e['limit']=qs[_0xa8ef('0x12')](_0x48d9b6[_0xa8ef('0x27')][_0xa8ef('0x12')]||0xa);_0x38244e['offset']=qs['offset'](_0x48d9b6[_0xa8ef('0x27')][_0xa8ef('0xf')]);}var _0xf5233b=_0x146d9b[_0xa8ef('0x41')](function(_0x51e466){if(_0x51e466===_0xa8ef('0xe6')){var _0xf0e2c5={'attributes':['id',_0xa8ef('0xf0'),_0xa8ef('0x4a'),_0xa8ef('0xf1'),_0xa8ef('0xf2'),'callerid',_0xa8ef('0xf3'),_0xa8ef('0xf4'),_0xa8ef('0xf5'),_0xa8ef('0xf6'),_0xa8ef('0xf7'),_0xa8ef('0xf8'),_0xa8ef('0xf9'),'userThirdDisposition',_0xa8ef('0xfa')],'where':{'ContactId':_0x48d9b6[_0xa8ef('0x7e')]['id']},'include':[{'model':db[_0xa8ef('0x43')],'as':_0xa8ef('0x43'),'attributes':['id',_0xa8ef('0x1c'),_0xa8ef('0xfb'),_0xa8ef('0x84')]}],'order':[[_0xa8ef('0xf7'),'DESC']]};if(_0x48d9b6[_0xa8ef('0x27')][_0xa8ef('0xec')]){_0xf0e2c5[_0xa8ef('0x38')][_0xa8ef('0xf7')]={'$gte':_0x35f9a7[_0xa8ef('0x32')],'$lte':_0x35f9a7['to']};}return db['VoiceCallReport'][_0xa8ef('0xfc')](_0xf0e2c5)[_0xa8ef('0x16')](function(_0x3917e0){_0x150cb8['count']+=_0x3917e0[_0xa8ef('0x11')];return _[_0xa8ef('0x41')](_0x3917e0['rows'],function(_0x2e0eca){var _0x318195=_0x2e0eca[_0xa8ef('0x88')]({'plain':!![]});_0x318195[_0xa8ef('0xe8')]=_0x51e466;if(_0x318195[_0xa8ef('0x43')]){_0x318195[_0xa8ef('0x43')]={'id':_0x318195['User']['id'],'name':_0x318195[_0xa8ef('0x43')][_0xa8ef('0x1c')],'fullname':_0x318195[_0xa8ef('0x43')][_0xa8ef('0xfb')],'alias':_0x318195[_0xa8ef('0x43')][_0xa8ef('0x84')]};}return _0x318195;});});}else{var _0x4fa4bc=_[_0xa8ef('0xfd')](_0x51e466)+(_0x51e466===_0xa8ef('0xe2')?_0xa8ef('0xfe'):'Account');var _0x29220f={'attributes':['id',_0xa8ef('0xff'),_0xa8ef('0x100'),'createdAt',_0xa8ef('0xf6'),'disposition',_0xa8ef('0x101'),'thirdDisposition',_0xa8ef('0xfa'),_0x4fa4bc+'Id'],'where':{'ContactId':_0x48d9b6[_0xa8ef('0x7e')]['id']},'include':[{'model':db[_0x4fa4bc],'as':_0xa8ef('0x102'),'attributes':['id',_0xa8ef('0x1c'),_0xa8ef('0x103')]},{'model':db['User'],'as':_0xa8ef('0x104'),'attributes':['id',_0xa8ef('0x1c'),_0xa8ef('0xfb')]},{'model':db[_0xa8ef('0x3f')],'as':'Tags','attributes':['id',_0xa8ef('0x1c'),_0xa8ef('0xac')],'through':{'attributes':[]}}],'order':[[_0xa8ef('0xf7'),_0xa8ef('0x66')]]};if(_0x48d9b6[_0xa8ef('0x27')]['range']){_0x29220f['where'][_0xa8ef('0xf7')]={'$gte':_0x35f9a7[_0xa8ef('0x32')],'$lte':_0x35f9a7['to']};}switch(_0x51e466){case _0xa8ef('0xe2'):_0x29220f[_0xa8ef('0x29')]['push'](_0xa8ef('0x105'),_0xa8ef('0x106'),_0xa8ef('0x107'),_0xa8ef('0x108'),'osName',_0xa8ef('0x109'),_0xa8ef('0x10a'),_0xa8ef('0x10b'),'referer');break;case _0xa8ef('0xe1'):_0x29220f[_0xa8ef('0x29')][_0xa8ef('0x7a')](_0xa8ef('0x10c'),_0xa8ef('0x10d'));break;case _0xa8ef('0xe4'):_0x29220f['attributes'][_0xa8ef('0x7a')](_0xa8ef('0x10e'),_0xa8ef('0x10f'));break;}return db[_[_0xa8ef('0xfd')](_0x51e466)+_0xa8ef('0x110')][_0xa8ef('0xfc')](_0x29220f)[_0xa8ef('0x16')](function(_0x20cd67){_0x150cb8[_0xa8ef('0x11')]+=_0x20cd67['count'];return _[_0xa8ef('0x41')](_0x20cd67[_0xa8ef('0x7b')],function(_0x5073cc){var _0x59b8f9=_0x5073cc['get']({'plain':!![]});_0x59b8f9[_0xa8ef('0xe8')]=_0x51e466;if(_0x59b8f9['Owner']){_0x59b8f9[_0xa8ef('0x104')]={'id':_0x59b8f9[_0xa8ef('0x104')]['id'],'name':_0x59b8f9['Owner'][_0xa8ef('0x1c')],'fullname':_0x59b8f9[_0xa8ef('0x104')]['fullname']};}return _0x59b8f9;});});}});return Promise[_0xa8ef('0x25')](_0xf5233b);})[_0xa8ef('0x16')](function(_0x3e339f){return _(_0x3e339f)['flatten']()[_0xa8ef('0x111')](_0xa8ef('0xf7'))['reverse']()[_0xa8ef('0x44')]();})[_0xa8ef('0x16')](function(_0x53fedc){_0x150cb8[_0xa8ef('0x7b')]=_0x38244e[_0xa8ef('0x12')]?_0x53fedc[_0xa8ef('0x112')](_0x38244e[_0xa8ef('0xf')],_0x38244e[_0xa8ef('0xf')]+_0x38244e[_0xa8ef('0x12')]):_0x53fedc;return _0x150cb8;})['then'](respondWithFilteredResult(_0x9b860f,_0x38244e))[_0xa8ef('0x7c')](handleError(_0x9b860f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0749=['remove','emit','hasOwnProperty','hook','../../mysqldb','CmContact','setMaxListeners','save','update'];(function(_0x260b48,_0x117977){var _0x3f730b=function(_0x7a1e53){while(--_0x7a1e53){_0x260b48['push'](_0x260b48['shift']());}};_0x3f730b(++_0x117977);}(_0x0749,0x16c));var _0x9074=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x0749[_0x21a9d9];return _0x46adce;};'use strict';var EventEmitter=require('events');var CmContact=require(_0x9074('0x0'))['db'][_0x9074('0x1')];var CmContactEvents=new EventEmitter();CmContactEvents[_0x9074('0x2')](0x0);var events={'afterCreate':_0x9074('0x3'),'afterUpdate':_0x9074('0x4'),'afterDestroy':_0x9074('0x5')};function emitEvent(_0xfa9edd){return function(_0x31b150,_0x1657e7,_0x1583e4){CmContactEvents[_0x9074('0x6')](_0xfa9edd+':'+_0x31b150['id'],_0x31b150);CmContactEvents['emit'](_0xfa9edd,_0x31b150);_0x1583e4(null);};}for(var e in events){if(events[_0x9074('0x7')](e)){var event=events[e];CmContact[_0x9074('0x8')](e,emitEvent(event));}}module['exports']=CmContactEvents;
\ No newline at end of file
+var _0xd4de=['remove','emit','hasOwnProperty','exports','events','../../mysqldb','CmContact','save'];(function(_0x279ff1,_0x70c6b){var _0x1511d5=function(_0x563845){while(--_0x563845){_0x279ff1['push'](_0x279ff1['shift']());}};_0x1511d5(++_0x70c6b);}(_0xd4de,0xdc));var _0xed4d=function(_0x119530,_0x1c3cfd){_0x119530=_0x119530-0x0;var _0x2ad4c2=_0xd4de[_0x119530];return _0x2ad4c2;};'use strict';var EventEmitter=require(_0xed4d('0x0'));var CmContact=require(_0xed4d('0x1'))['db'][_0xed4d('0x2')];var CmContactEvents=new EventEmitter();CmContactEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xed4d('0x3'),'afterUpdate':'update','afterDestroy':_0xed4d('0x4')};function emitEvent(_0x50932b){return function(_0x2deb53,_0x5c04a6,_0x3d7a02){CmContactEvents[_0xed4d('0x5')](_0x50932b+':'+_0x2deb53['id'],_0x2deb53);CmContactEvents[_0xed4d('0x5')](_0x50932b,_0x2deb53);_0x3d7a02(null);};}for(var e in events){if(events[_0xed4d('0x6')](e)){var event=events[e];CmContact['hook'](e,emitEvent(event));}}module[_0xed4d('0x7')]=CmContactEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4808=['always','CmList','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','onlyIfOpen','Campaign','isEmpty','destroy','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','moment','request-promise','path','rimraf','./cmContact.attributes','exports','CmContact','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','inspect','findOne','then','isNil','cmContact,\x20afterCreate\x20','CmHopper','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','ListId','catch','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','dialCheckDuplicateType','Lists','length'];(function(_0x185ce6,_0x80b049){var _0xb2b554=function(_0x132348){while(--_0x132348){_0x185ce6['push'](_0x185ce6['shift']());}};_0xb2b554(++_0x80b049);}(_0x4808,0x160));var _0x8480=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x4808[_0x1caf6a];return _0x1bf493;};'use strict';var _=require(_0x8480('0x0'));var util=require(_0x8480('0x1'));var logger=require(_0x8480('0x2'))('api');var moment=require(_0x8480('0x3'));var BPromise=require('bluebird');var rp=require(_0x8480('0x4'));var fs=require('fs');var path=require(_0x8480('0x5'));var rimraf=require(_0x8480('0x6'));var config=require('../../config/environment');var attributes=require(_0x8480('0x7'));module[_0x8480('0x8')]=function(_0x59f549,_0x211def){return _0x59f549['define'](_0x8480('0x9'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0x8480('0xa'),'fields':[_0x8480('0xa')]},{'name':_0x8480('0xb'),'fields':[_0x8480('0xc'),_0x8480('0xd'),'phone',_0x8480('0xe'),_0x8480('0xf'),_0x8480('0x10')],'type':_0x8480('0x11')}],'timestamps':!![],'charset':_0x8480('0x12'),'collate':_0x8480('0x13'),'hooks':{'afterCreate':function(_0x1bb2a5,_0x406d5f,_0xb49809){var _0x92e24e=_0x59f549[_0x8480('0x14')];var _0x2bdef2=_0x1bb2a5[_0x8480('0x15')]({'plain':!![]});function _0x17b3ae(){return function(_0x6c2c46){logger[_0x8480('0x16')](_0x8480('0x17'),_0x8480('0x18'),util[_0x8480('0x19')](_0x6c2c46,{'showHidden':![],'depth':null}));};}var _0x5ea74c=function(_0x1484b3){return new BPromise(function(_0x1284cd,_0x152e60){_0x92e24e['CmHopper'][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2[_0x8480('0xa')],'VoiceQueueId':_0x1484b3['id']}})[_0x8480('0x1b')](function(_0x35dd6a){if(!_[_0x8480('0x1c')](_0x35dd6a)){throw new Error(_0x8480('0x1d')+_0x2bdef2[_0x8480('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x1484b3['id']);}return _0x92e24e[_0x8480('0x1e')]['create']({'phone':_0x2bdef2['phone'],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2['ListId'],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2['priority']:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2['scheduledat']:moment()[_0x8480('0x21')](_0x8480('0x22')),'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2[_0x8480('0x23')]?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'VoiceQueueId':_0x1484b3['id']});})['catch'](function(_0x5480c3){_0x152e60(_0x5480c3);});});};var _0x37f38f=function(_0x26d795){return new BPromise(function(_0x3dd0f3,_0x40f05b){_0x92e24e['CmHopper'][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2['phone'],'VoiceQueueId':_0x26d795['id']}})['then'](function(_0x38c7fa){if(!_[_0x8480('0x1c')](_0x38c7fa)){throw new Error(_0x8480('0x1d')+_0x2bdef2['phone']+_0x8480('0x24')+_0x26d795['id']);}return _0x92e24e['CmHopperFinal'][_0x8480('0x1a')]({'where':{'calleridnum':_0x2bdef2[_0x8480('0xa')],'VoiceQueueId':_0x26d795['id']}});})['then'](function(_0x18edd5){if(!_[_0x8480('0x1c')](_0x18edd5)){throw new Error(_0x8480('0x25')+_0x2bdef2[_0x8480('0xa')]+_0x8480('0x26')+_0x26d795['id']);}return _0x92e24e['CmHopper'][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2['ListId'],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x2bdef2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2[_0x8480('0x23')]?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'VoiceQueueId':_0x26d795['id']});})['catch'](function(_0x475c80){_0x40f05b(_0x475c80);});});};function _0x551f55(){return function(_0xea820e){logger['error'](_0x8480('0x17'),_0x8480('0x18'),util[_0x8480('0x19')](_0xea820e,{'showHidden':![],'depth':null}));};}var _0x27ee42=function(_0x4495b1){return new BPromise(function(_0x377e30,_0x2a4218){_0x92e24e[_0x8480('0x1e')][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2[_0x8480('0xa')],'CampaignId':_0x4495b1['id']}})[_0x8480('0x1b')](function(_0xb27b3){if(!_[_0x8480('0x1c')](_0xb27b3)){throw new Error(_0x8480('0x1d')+_0x2bdef2[_0x8480('0xa')]+_0x8480('0x28')+_0x4495b1['id']);}return _0x92e24e[_0x8480('0x1e')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2['priority']:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()[_0x8480('0x21')](_0x8480('0x22')),'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2[_0x8480('0x23')]?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2[_0x8480('0x23')]?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'CampaignId':_0x4495b1['id']});})[_0x8480('0x2a')](function(_0x277eba){_0x2a4218(_0x277eba);});});};var _0x2168f7=function(_0x22c065){return new BPromise(function(_0x2d7d0c,_0x5cf36b){_0x92e24e['CmHopper'][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2['phone'],'CampaignId':_0x22c065['id']}})['then'](function(_0x4f1f43){if(!_[_0x8480('0x1c')](_0x4f1f43)){throw new Error(_0x8480('0x1d')+_0x2bdef2['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x22c065['id']);}return _0x92e24e[_0x8480('0x2b')][_0x8480('0x1a')]({'where':{'calleridnum':_0x2bdef2[_0x8480('0xa')],'CampaignId':_0x22c065['id']}});})[_0x8480('0x1b')](function(_0x425c9e){if(!_[_0x8480('0x1c')](_0x425c9e)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x2bdef2[_0x8480('0xa')]+_0x8480('0x2c')+_0x22c065['id']);}return _0x92e24e[_0x8480('0x1e')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()['format'](_0x8480('0x22')),'callback':_0x2bdef2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2['callbackUniqueid']?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'CampaignId':_0x22c065['id']});})[_0x8480('0x2a')](function(_0x57b6d0){_0x5cf36b(_0x57b6d0);});});};if(_0x2bdef2[_0x8480('0x29')]){_0x92e24e[_0x8480('0x2d')][_0x8480('0x2e')]({'where':{'type':'outbound'},'attributes':['id',_0x8480('0x2f')],'include':[{'model':_0x92e24e['CmList'],'as':_0x8480('0x30'),'where':{'id':_0x2bdef2[_0x8480('0x29')]}}]})[_0x8480('0x1b')](function(_0x49d30e){if(_0x49d30e){var _0x5ba3a0=[];for(var _0x6f580b=0x0,_0x39dcc1;_0x6f580b<_0x49d30e[_0x8480('0x31')];_0x6f580b+=0x1){_0x39dcc1=_0x49d30e[_0x6f580b][_0x8480('0x15')]({'plain':!![]});switch(_0x39dcc1['dialCheckDuplicateType']){case _0x8480('0x32'):_0x37f38f(_0x39dcc1)[_0x8480('0x2a')](_0x17b3ae());break;case'onlyIfOpen':_0x5ea74c(_0x39dcc1)[_0x8480('0x2a')](_0x17b3ae());break;default:_0x92e24e[_0x8480('0x1e')]['create']({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2['ListId'],'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2['scheduledat']:moment()[_0x8480('0x21')](_0x8480('0x22')),'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2['callbackUniqueid']:undefined,'callbackat':_0x2bdef2['callbackUniqueid']?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'VoiceQueueId':_0x39dcc1['id']})[_0x8480('0x2a')](_0x17b3ae());}}}})[_0x8480('0x1b')](function(){return _0x92e24e['VoiceQueue'][_0x8480('0x2e')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x92e24e[_0x8480('0x33')],'as':_0x8480('0x34'),'where':{'id':_0x2bdef2['ListId']}}]})['then'](function(_0x38ba09){if(_0x38ba09){var _0x4bad5f=[];for(var _0x5e7595=0x0,_0x21b02b;_0x5e7595<_0x38ba09[_0x8480('0x31')];_0x5e7595+=0x1){_0x21b02b=_0x38ba09[_0x5e7595][_0x8480('0x15')]({'plain':!![]});_0x92e24e[_0x8480('0x35')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'VoiceQueueId':_0x21b02b['id']})[_0x8480('0x2a')](function(_0x753b40){logger[_0x8480('0x16')](_0x8480('0x36'),_0x8480('0x18'),_0x753b40[_0x8480('0x37')]);});}}});})[_0x8480('0x1b')](function(){return _0x92e24e['Campaign'][_0x8480('0x2e')]({'attributes':['id',_0x8480('0x2f')],'include':[{'model':_0x92e24e[_0x8480('0x33')],'as':'Lists','where':{'id':_0x2bdef2['ListId']}}]})[_0x8480('0x1b')](function(_0x163d4b){if(_0x163d4b){var _0x6b1e12=[];for(var _0x32d873=0x0,_0x23cad8;_0x32d873<_0x163d4b[_0x8480('0x31')];_0x32d873+=0x1){_0x23cad8=_0x163d4b[_0x32d873]['get']({'plain':!![]});switch(_0x23cad8[_0x8480('0x2f')]){case _0x8480('0x32'):_0x2168f7(_0x23cad8)['catch'](_0x551f55());break;case _0x8480('0x38'):_0x27ee42(_0x23cad8)[_0x8480('0x2a')](_0x551f55());break;default:_0x92e24e[_0x8480('0x1e')][_0x8480('0x27')]({'phone':_0x2bdef2['phone'],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()[_0x8480('0x21')](_0x8480('0x22')),'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2[_0x8480('0x23')]?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2['callbackUniqueid']?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'CampaignId':_0x23cad8['id']})[_0x8480('0x2a')](_0x551f55());}}}});})['then'](function(){return _0x92e24e[_0x8480('0x39')]['findAll']({'attributes':['id'],'include':[{'model':_0x92e24e[_0x8480('0x33')],'as':_0x8480('0x34'),'where':{'id':_0x2bdef2[_0x8480('0x29')]}}]})[_0x8480('0x1b')](function(_0xb9228d){if(_0xb9228d){var _0x11f31d=[];for(var _0x5b944d=0x0,_0x4182c7;_0x5b944d<_0xb9228d['length'];_0x5b944d+=0x1){_0x4182c7=_0xb9228d[_0x5b944d][_0x8480('0x15')]({'plain':!![]});_0x92e24e[_0x8480('0x35')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'CampaignId':_0x4182c7['id']})[_0x8480('0x2a')](function(_0x9f7ee){logger['error']('cmContact,\x20%s,\x20%s','afterCreate',_0x9f7ee['message']);});}}});})[_0x8480('0x1b')](function(){_0xb49809();})['catch'](function(_0x559d89){logger[_0x8480('0x16')](_0x8480('0x36'),_0x8480('0x18'),_0x559d89[_0x8480('0x37')]);_0xb49809(_0x559d89);});}else{_0xb49809(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x3b6503,_0x1ac480,_0x338ffb){var _0x343e92=_0x59f549['models'];var _0x2d74e8=_0x3b6503[_0x8480('0x15')]({'plain':!![]});return _0x343e92[_0x8480('0x1e')][_0x8480('0x2e')]({'raw':!![],'where':{'ListId':_0x2d74e8[_0x8480('0x29')],'ContactId':_0x2d74e8['id']}})[_0x8480('0x1b')](function(_0x387380){if(!_[_0x8480('0x3a')](_0x387380)){var _0x24ff04=[];for(var _0x4c84e0=0x0;_0x4c84e0<_0x387380[_0x8480('0x31')];_0x4c84e0+=0x1){var _0x40323b=_0x343e92['CmHopper'][_0x8480('0x3b')]({'where':{'ListId':_0x387380[_0x4c84e0][_0x8480('0x29')],'ContactId':_0x387380[_0x4c84e0]['ContactId'],'VoiceQueueId':_0x387380[_0x4c84e0][_0x8480('0x3c')],'CampaignId':_0x387380[_0x4c84e0][_0x8480('0x3d')]}});_0x24ff04[_0x8480('0x3e')](_0x40323b);}return BPromise[_0x8480('0x3f')](_0x24ff04);}})['then'](function(_0x468787){logger[_0x8480('0x40')](_0x8480('0x41'),util['inspect'](_0x468787,{'showHidden':![],'depth':null}));_0x338ffb();})[_0x8480('0x2a')](function(_0x7f91cb){logger[_0x8480('0x16')](_0x8480('0x42'),util[_0x8480('0x19')](_0x7f91cb,{'showHidden':![],'depth':null}));_0x338ffb(_0x7f91cb);});}}});};
\ No newline at end of file
+var _0xf90c=['\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','onlyIfOpen','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','always','Campaign','message','isEmpty','destroy','VoiceQueueId','CampaignId','info','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','exports','define','cm_contacts','phone','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','CmHopperFinal','scheduledat','catch'];(function(_0x3933b3,_0x3d6b90){var _0x241a71=function(_0x33bda0){while(--_0x33bda0){_0x3933b3['push'](_0x3933b3['shift']());}};_0x241a71(++_0x3d6b90);}(_0xf90c,0x1a9));var _0xcf90=function(_0x4247a5,_0x6331b){_0x4247a5=_0x4247a5-0x0;var _0x190caf=_0xf90c[_0x4247a5];return _0x190caf;};'use strict';var _=require(_0xcf90('0x0'));var util=require(_0xcf90('0x1'));var logger=require(_0xcf90('0x2'))(_0xcf90('0x3'));var moment=require(_0xcf90('0x4'));var BPromise=require(_0xcf90('0x5'));var rp=require(_0xcf90('0x6'));var fs=require('fs');var path=require(_0xcf90('0x7'));var rimraf=require(_0xcf90('0x8'));var config=require(_0xcf90('0x9'));var attributes=require(_0xcf90('0xa'));module[_0xcf90('0xb')]=function(_0x311285,_0x4ee42f){return _0x311285[_0xcf90('0xc')]('CmContact',attributes,{'tableName':_0xcf90('0xd'),'paranoid':!![],'indexes':[{'name':_0xcf90('0xe'),'fields':[_0xcf90('0xe')]},{'name':'fti_cm_contacts','fields':[_0xcf90('0xf'),_0xcf90('0x10'),_0xcf90('0xe'),_0xcf90('0x11'),_0xcf90('0x12'),_0xcf90('0x13')],'type':_0xcf90('0x14')}],'timestamps':!![],'charset':_0xcf90('0x15'),'collate':_0xcf90('0x16'),'hooks':{'afterCreate':function(_0xb35d4c,_0x507d5e,_0x183aaf){var _0x382092=_0x311285[_0xcf90('0x17')];var _0x14a9aa=_0xb35d4c[_0xcf90('0x18')]({'plain':!![]});function _0x3abaf8(){return function(_0xbac037){logger[_0xcf90('0x19')](_0xcf90('0x1a'),_0xcf90('0x1b'),util[_0xcf90('0x1c')](_0xbac037,{'showHidden':![],'depth':null}));};}var _0x584ef9=function(_0x3da761){return new BPromise(function(_0x212b12,_0x1109b3){_0x382092[_0xcf90('0x1d')][_0xcf90('0x1e')]({'where':{'phone':_0x14a9aa[_0xcf90('0xe')],'VoiceQueueId':_0x3da761['id']}})[_0xcf90('0x1f')](function(_0x4c0698){if(!_[_0xcf90('0x20')](_0x4c0698)){throw new Error(_0xcf90('0x21')+_0x14a9aa['phone']+_0xcf90('0x22')+_0x3da761['id']);}return _0x382092[_0xcf90('0x1d')][_0xcf90('0x23')]({'phone':_0x14a9aa['phone'],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa[_0xcf90('0x24')],'priority':_0x14a9aa[_0xcf90('0x25')]?_0x14a9aa[_0xcf90('0x25')]:0x2,'scheduledat':_0x14a9aa['scheduledat']?_0x14a9aa['scheduledat']:moment()[_0xcf90('0x26')](_0xcf90('0x27')),'callback':_0x14a9aa['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x14a9aa['callbackUniqueid']?_0x14a9aa[_0xcf90('0x28')]:undefined,'callbackat':_0x14a9aa['callbackUniqueid']?moment()[_0xcf90('0x26')](_0xcf90('0x27')):undefined,'VoiceQueueId':_0x3da761['id']});})['catch'](function(_0x57dba9){_0x1109b3(_0x57dba9);});});};var _0x5d8a69=function(_0x52de6a){return new BPromise(function(_0x2a6ef6,_0x60646a){_0x382092['CmHopper'][_0xcf90('0x1e')]({'where':{'phone':_0x14a9aa[_0xcf90('0xe')],'VoiceQueueId':_0x52de6a['id']}})[_0xcf90('0x1f')](function(_0x3bae50){if(!_['isNil'](_0x3bae50)){throw new Error(_0xcf90('0x21')+_0x14a9aa[_0xcf90('0xe')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x52de6a['id']);}return _0x382092[_0xcf90('0x29')][_0xcf90('0x1e')]({'where':{'calleridnum':_0x14a9aa['phone'],'VoiceQueueId':_0x52de6a['id']}});})[_0xcf90('0x1f')](function(_0x23b540){if(!_['isNil'](_0x23b540)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x14a9aa['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x52de6a['id']);}return _0x382092[_0xcf90('0x1d')][_0xcf90('0x23')]({'phone':_0x14a9aa[_0xcf90('0xe')],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa[_0xcf90('0x24')],'priority':_0x14a9aa[_0xcf90('0x25')]?_0x14a9aa[_0xcf90('0x25')]:0x2,'scheduledat':_0x14a9aa[_0xcf90('0x2a')]?_0x14a9aa[_0xcf90('0x2a')]:moment()[_0xcf90('0x26')](_0xcf90('0x27')),'callback':_0x14a9aa[_0xcf90('0x28')]?!![]:![],'callbackuniqueid':_0x14a9aa['callbackUniqueid']?_0x14a9aa['callbackUniqueid']:undefined,'callbackat':_0x14a9aa['callbackUniqueid']?moment()[_0xcf90('0x26')](_0xcf90('0x27')):undefined,'VoiceQueueId':_0x52de6a['id']});})['catch'](function(_0x3028e6){_0x60646a(_0x3028e6);});});};function _0x1ccc83(){return function(_0x23f197){logger[_0xcf90('0x19')]('cmContact',_0xcf90('0x1b'),util['inspect'](_0x23f197,{'showHidden':![],'depth':null}));};}var _0x36447a=function(_0x442593){return new BPromise(function(_0xb2cca9,_0x50867c){_0x382092[_0xcf90('0x1d')][_0xcf90('0x1e')]({'where':{'phone':_0x14a9aa['phone'],'CampaignId':_0x442593['id']}})['then'](function(_0x1724af){if(!_[_0xcf90('0x20')](_0x1724af)){throw new Error('cmContact,\x20afterCreate\x20'+_0x14a9aa[_0xcf90('0xe')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x442593['id']);}return _0x382092['CmHopper']['create']({'phone':_0x14a9aa[_0xcf90('0xe')],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa[_0xcf90('0x24')],'priority':_0x14a9aa[_0xcf90('0x25')]?_0x14a9aa[_0xcf90('0x25')]:0x2,'scheduledat':_0x14a9aa[_0xcf90('0x2a')]?_0x14a9aa['scheduledat']:moment()[_0xcf90('0x26')](_0xcf90('0x27')),'callback':_0x14a9aa[_0xcf90('0x28')]?!![]:![],'callbackuniqueid':_0x14a9aa['callbackUniqueid']?_0x14a9aa[_0xcf90('0x28')]:undefined,'callbackat':_0x14a9aa[_0xcf90('0x28')]?moment()[_0xcf90('0x26')](_0xcf90('0x27')):undefined,'CampaignId':_0x442593['id']});})[_0xcf90('0x2b')](function(_0x25c996){_0x50867c(_0x25c996);});});};var _0x183e50=function(_0x262204){return new BPromise(function(_0x11619a,_0x2a0c93){_0x382092[_0xcf90('0x1d')][_0xcf90('0x1e')]({'where':{'phone':_0x14a9aa[_0xcf90('0xe')],'CampaignId':_0x262204['id']}})[_0xcf90('0x1f')](function(_0xe8e972){if(!_[_0xcf90('0x20')](_0xe8e972)){throw new Error(_0xcf90('0x21')+_0x14a9aa[_0xcf90('0xe')]+_0xcf90('0x2c')+_0x262204['id']);}return _0x382092['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x14a9aa[_0xcf90('0xe')],'CampaignId':_0x262204['id']}});})[_0xcf90('0x1f')](function(_0x3560ab){if(!_['isNil'](_0x3560ab)){throw new Error(_0xcf90('0x2d')+_0x14a9aa[_0xcf90('0xe')]+_0xcf90('0x2e')+_0x262204['id']);}return _0x382092['CmHopper']['create']({'phone':_0x14a9aa[_0xcf90('0xe')],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa[_0xcf90('0x24')],'priority':_0x14a9aa[_0xcf90('0x25')]?_0x14a9aa[_0xcf90('0x25')]:0x2,'scheduledat':_0x14a9aa[_0xcf90('0x2a')]?_0x14a9aa['scheduledat']:moment()[_0xcf90('0x26')](_0xcf90('0x27')),'callback':_0x14a9aa[_0xcf90('0x28')]?!![]:![],'callbackuniqueid':_0x14a9aa[_0xcf90('0x28')]?_0x14a9aa['callbackUniqueid']:undefined,'callbackat':_0x14a9aa[_0xcf90('0x28')]?moment()['format'](_0xcf90('0x27')):undefined,'CampaignId':_0x262204['id']});})['catch'](function(_0xf8ad84){_0x2a0c93(_0xf8ad84);});});};if(_0x14a9aa['ListId']){_0x382092[_0xcf90('0x2f')][_0xcf90('0x30')]({'where':{'type':_0xcf90('0x31')},'attributes':['id',_0xcf90('0x32')],'include':[{'model':_0x382092[_0xcf90('0x33')],'as':_0xcf90('0x34'),'where':{'id':_0x14a9aa['ListId']}}]})[_0xcf90('0x1f')](function(_0x52f72e){if(_0x52f72e){var _0x54f586=[];for(var _0x5f4abe=0x0,_0x17755c;_0x5f4abe<_0x52f72e[_0xcf90('0x35')];_0x5f4abe+=0x1){_0x17755c=_0x52f72e[_0x5f4abe]['get']({'plain':!![]});switch(_0x17755c[_0xcf90('0x32')]){case'always':_0x5d8a69(_0x17755c)[_0xcf90('0x2b')](_0x3abaf8());break;case _0xcf90('0x36'):_0x584ef9(_0x17755c)['catch'](_0x3abaf8());break;default:_0x382092[_0xcf90('0x1d')][_0xcf90('0x23')]({'phone':_0x14a9aa['phone'],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa[_0xcf90('0x24')],'scheduledat':_0x14a9aa[_0xcf90('0x2a')]?_0x14a9aa[_0xcf90('0x2a')]:moment()[_0xcf90('0x26')](_0xcf90('0x27')),'priority':_0x14a9aa[_0xcf90('0x25')]?_0x14a9aa['priority']:0x2,'callback':_0x14a9aa['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x14a9aa[_0xcf90('0x28')]?_0x14a9aa[_0xcf90('0x28')]:undefined,'callbackat':_0x14a9aa['callbackUniqueid']?moment()[_0xcf90('0x26')](_0xcf90('0x27')):undefined,'VoiceQueueId':_0x17755c['id']})['catch'](_0x3abaf8());}}}})[_0xcf90('0x1f')](function(){return _0x382092[_0xcf90('0x2f')][_0xcf90('0x30')]({'where':{'type':_0xcf90('0x31')},'attributes':['id'],'include':[{'model':_0x382092[_0xcf90('0x33')],'as':_0xcf90('0x37'),'where':{'id':_0x14a9aa[_0xcf90('0x24')]}}]})[_0xcf90('0x1f')](function(_0x2608b9){if(_0x2608b9){var _0x52c268=[];for(var _0x405d9c=0x0,_0x1f5c03;_0x405d9c<_0x2608b9[_0xcf90('0x35')];_0x405d9c+=0x1){_0x1f5c03=_0x2608b9[_0x405d9c]['get']({'plain':!![]});_0x382092[_0xcf90('0x38')][_0xcf90('0x23')]({'phone':_0x14a9aa['phone'],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa['ListId'],'VoiceQueueId':_0x1f5c03['id']})['catch'](function(_0x5e7fb1){logger[_0xcf90('0x19')](_0xcf90('0x39'),_0xcf90('0x1b'),_0x5e7fb1['message']);});}}});})[_0xcf90('0x1f')](function(){return _0x382092['Campaign'][_0xcf90('0x30')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x382092[_0xcf90('0x33')],'as':_0xcf90('0x34'),'where':{'id':_0x14a9aa[_0xcf90('0x24')]}}]})[_0xcf90('0x1f')](function(_0x1c5322){if(_0x1c5322){var _0x2e4f14=[];for(var _0x557288=0x0,_0x532b1e;_0x557288<_0x1c5322[_0xcf90('0x35')];_0x557288+=0x1){_0x532b1e=_0x1c5322[_0x557288][_0xcf90('0x18')]({'plain':!![]});switch(_0x532b1e['dialCheckDuplicateType']){case _0xcf90('0x3a'):_0x183e50(_0x532b1e)[_0xcf90('0x2b')](_0x1ccc83());break;case'onlyIfOpen':_0x36447a(_0x532b1e)[_0xcf90('0x2b')](_0x1ccc83());break;default:_0x382092[_0xcf90('0x1d')]['create']({'phone':_0x14a9aa[_0xcf90('0xe')],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa['ListId'],'scheduledat':_0x14a9aa[_0xcf90('0x2a')]?_0x14a9aa[_0xcf90('0x2a')]:moment()[_0xcf90('0x26')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x14a9aa[_0xcf90('0x25')]?_0x14a9aa[_0xcf90('0x25')]:0x2,'callback':_0x14a9aa['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x14a9aa[_0xcf90('0x28')]?_0x14a9aa[_0xcf90('0x28')]:undefined,'callbackat':_0x14a9aa[_0xcf90('0x28')]?moment()[_0xcf90('0x26')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x532b1e['id']})[_0xcf90('0x2b')](_0x1ccc83());}}}});})['then'](function(){return _0x382092[_0xcf90('0x3b')][_0xcf90('0x30')]({'attributes':['id'],'include':[{'model':_0x382092[_0xcf90('0x33')],'as':_0xcf90('0x37'),'where':{'id':_0x14a9aa[_0xcf90('0x24')]}}]})[_0xcf90('0x1f')](function(_0x58ed3b){if(_0x58ed3b){var _0x58212a=[];for(var _0x4a5a7a=0x0,_0x2faf5f;_0x4a5a7a<_0x58ed3b[_0xcf90('0x35')];_0x4a5a7a+=0x1){_0x2faf5f=_0x58ed3b[_0x4a5a7a]['get']({'plain':!![]});_0x382092[_0xcf90('0x38')][_0xcf90('0x23')]({'phone':_0x14a9aa[_0xcf90('0xe')],'ContactId':_0x14a9aa['id'],'ListId':_0x14a9aa['ListId'],'CampaignId':_0x2faf5f['id']})[_0xcf90('0x2b')](function(_0x492f6f){logger['error'](_0xcf90('0x39'),_0xcf90('0x1b'),_0x492f6f['message']);});}}});})['then'](function(){_0x183aaf();})['catch'](function(_0x50480f){logger['error']('cmContact,\x20%s,\x20%s',_0xcf90('0x1b'),_0x50480f[_0xcf90('0x3c')]);_0x183aaf(_0x50480f);});}else{_0x183aaf(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x17f07d,_0x2059a5,_0x3a7e74){var _0x37ed58=_0x311285['models'];var _0x23f903=_0x17f07d[_0xcf90('0x18')]({'plain':!![]});return _0x37ed58[_0xcf90('0x1d')][_0xcf90('0x30')]({'raw':!![],'where':{'ListId':_0x23f903[_0xcf90('0x24')],'ContactId':_0x23f903['id']}})[_0xcf90('0x1f')](function(_0x1bce43){if(!_[_0xcf90('0x3d')](_0x1bce43)){var _0x52cbb9=[];for(var _0x493394=0x0;_0x493394<_0x1bce43[_0xcf90('0x35')];_0x493394+=0x1){var _0x28c328=_0x37ed58[_0xcf90('0x1d')][_0xcf90('0x3e')]({'where':{'ListId':_0x1bce43[_0x493394]['ListId'],'ContactId':_0x1bce43[_0x493394]['ContactId'],'VoiceQueueId':_0x1bce43[_0x493394][_0xcf90('0x3f')],'CampaignId':_0x1bce43[_0x493394][_0xcf90('0x40')]}});_0x52cbb9['push'](_0x28c328);}return BPromise['all'](_0x52cbb9);}})[_0xcf90('0x1f')](function(_0x508b86){logger[_0xcf90('0x41')]('[CmContact][afterDestroy][Succesfull]',util[_0xcf90('0x1c')](_0x508b86,{'showHidden':![],'depth':null}));_0x3a7e74();})[_0xcf90('0x2b')](function(_0x579da5){logger['error'](_0xcf90('0x42'),util[_0xcf90('0x1c')](_0x579da5,{'showHidden':![],'depth':null}));_0x3a7e74(_0x579da5);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75a7=['model','attributes','stringify','CreateCmContact','create','body','keys','length','startsWith','update','table','set','id\x20=\x20?','toString','sequelize','query','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','register','request','then','info','CmContact,\x20%s,\x20%s','request\x20sent','debug','CmContact,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetCmContact','CmContact','findAll','options','raw','where','limit','map','include'];(function(_0x31150e,_0x4da817){var _0x3dd8d6=function(_0x4d7bb4){while(--_0x4d7bb4){_0x31150e['push'](_0x31150e['shift']());}};_0x3dd8d6(++_0x4da817);}(_0x75a7,0x16e));var _0x775a=function(_0x1ba9a6,_0x1de58a){_0x1ba9a6=_0x1ba9a6-0x0;var _0x96da81=_0x75a7[_0x1ba9a6];return _0x96da81;};'use strict';var _=require(_0x775a('0x0'));var util=require('util');var moment=require(_0x775a('0x1'));var BPromise=require(_0x775a('0x2'));var rs=require(_0x775a('0x3'));var fs=require('fs');var Redis=require('ioredis');var squel=require('squel');var db=require(_0x775a('0x4'))['db'];var utils=require(_0x775a('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x775a('0x6'));var jayson=require(_0x775a('0x7'));var client=jayson[_0x775a('0x8')]['http']({'port':0x232a});config[_0x775a('0x9')]=_[_0x775a('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x775a('0xb'))(new Redis(config[_0x775a('0x9')]));require('./cmContact.socket')[_0x775a('0xc')](socket);function respondWithRpcPromise(_0x2393e2,_0x118d0e,_0xf68181){return new BPromise(function(_0x4ea8c1,_0x5d6f8b){return client[_0x775a('0xd')](_0x2393e2,_0xf68181)[_0x775a('0xe')](function(_0x20e55a){logger[_0x775a('0xf')](_0x775a('0x10'),_0x118d0e,_0x775a('0x11'));logger[_0x775a('0x12')](_0x775a('0x13'),_0x118d0e,_0x775a('0x11'),JSON['stringify'](_0x20e55a));if(_0x20e55a[_0x775a('0x14')]){if(_0x20e55a[_0x775a('0x14')][_0x775a('0x15')]===0x1f4){logger[_0x775a('0x14')](_0x775a('0x10'),_0x118d0e,_0x20e55a[_0x775a('0x14')][_0x775a('0x16')]);return _0x5d6f8b(_0x20e55a[_0x775a('0x14')][_0x775a('0x16')]);}logger['error'](_0x775a('0x10'),_0x118d0e,_0x20e55a['error'][_0x775a('0x16')]);return _0x4ea8c1(_0x20e55a[_0x775a('0x14')]['message']);}else{logger['info']('CmContact,\x20%s,\x20%s',_0x118d0e,_0x775a('0x11'));_0x4ea8c1(_0x20e55a[_0x775a('0x17')][_0x775a('0x16')]);}})[_0x775a('0x18')](function(_0x5b1aae){logger['error'](_0x775a('0x10'),_0x118d0e,_0x5b1aae);_0x5d6f8b(_0x5b1aae);});});}exports[_0x775a('0x19')]=function(_0x23ff52){var _0x133e3f=this;return new Promise(function(_0x461116,_0x4c7d07){return db[_0x775a('0x1a')][_0x775a('0x1b')]({'raw':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')][_0x775a('0x1d')]===undefined?!![]:![]:!![],'where':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')][_0x775a('0x1e')]||null:null,'attributes':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')]['attributes']||null:null,'limit':_0x23ff52['options']?_0x23ff52[_0x775a('0x1c')][_0x775a('0x1f')]||null:null,'include':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')]['include']?_[_0x775a('0x20')](_0x23ff52[_0x775a('0x1c')][_0x775a('0x21')],function(_0x3f9fa0){return{'model':db[_0x3f9fa0[_0x775a('0x22')]],'as':_0x3f9fa0['as'],'attributes':_0x3f9fa0['attributes'],'include':_0x3f9fa0['include']?_[_0x775a('0x20')](_0x3f9fa0[_0x775a('0x21')],function(_0xbe4d9b){return{'model':db[_0xbe4d9b['model']],'as':_0xbe4d9b['as'],'attributes':_0xbe4d9b[_0x775a('0x23')],'include':_0xbe4d9b[_0x775a('0x21')]?_['map'](_0xbe4d9b['include'],function(_0x23da53){return{'model':db[_0x23da53[_0x775a('0x22')]],'as':_0x23da53['as'],'attributes':_0x23da53[_0x775a('0x23')]};}):[]};}):[]};}):[]:[]})[_0x775a('0xe')](function(_0x5dbeb7){logger[_0x775a('0xf')](_0x775a('0x19'),_0x23ff52);logger[_0x775a('0x12')]('GetCmContact',_0x23ff52,JSON[_0x775a('0x24')](_0x5dbeb7));_0x461116(_0x5dbeb7);})[_0x775a('0x18')](function(_0x4b5f7a){logger[_0x775a('0x14')]('GetCmContact',_0x4b5f7a[_0x775a('0x16')],_0x23ff52);_0x4c7d07(_0x133e3f[_0x775a('0x14')](0x1f4,_0x4b5f7a[_0x775a('0x16')]));});});};exports[_0x775a('0x25')]=function(_0x522441){var _0x2162b4=this;return new Promise(function(_0x206623,_0x3db597){return db[_0x775a('0x1a')][_0x775a('0x26')](_0x522441[_0x775a('0x27')],{'raw':_0x522441['options']?_0x522441[_0x775a('0x1c')]['raw']===undefined?!![]:![]:!![]})[_0x775a('0xe')](function(_0x347e89){var _0x4b8f6f;for(var _0x281726=0x0;_0x281726<Object[_0x775a('0x28')](_0x522441[_0x775a('0x27')])[_0x775a('0x29')];_0x281726++){var _0x3d90cc=Object[_0x775a('0x28')](_0x522441['body'])[_0x281726];if(_0x3d90cc[_0x775a('0x2a')]('cf_')){_0x4b8f6f=squel[_0x775a('0x2b')]()[_0x775a('0x2c')]('cm_contacts')[_0x775a('0x2d')](_0x3d90cc,_0x522441[_0x775a('0x27')][_0x3d90cc])[_0x775a('0x1e')](_0x775a('0x2e'),_0x347e89['id'])[_0x775a('0x2f')]();break;}}if(!_0x4b8f6f)return _0x347e89;return db[_0x775a('0x30')][_0x775a('0x31')](_0x4b8f6f)[_0x775a('0xe')](function(){return _0x347e89;});})['then'](function(_0x53d0fe){logger['info'](_0x775a('0x25'),_0x522441);logger[_0x775a('0x12')](_0x775a('0x25'),_0x522441,JSON[_0x775a('0x24')](_0x53d0fe));_0x206623(_0x53d0fe);})[_0x775a('0x18')](function(_0xacf22b){logger[_0x775a('0x14')](_0x775a('0x25'),_0xacf22b[_0x775a('0x16')],_0x522441);_0x3db597(_0x2162b4[_0x775a('0x14')](0x1f4,_0xacf22b['message']));});});};
\ No newline at end of file
+var _0xf136=['catch','GetCmContact','CmContact','findAll','options','raw','where','attributes','include','model','map','create','body','then','keys','length','startsWith','cf_','update','cm_contacts','toString','CreateCmContact','moment','bluebird','randomstring','ioredis','squel','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./cmContact.socket','register','request','info','CmContact,\x20%s,\x20%s','debug','CmContact,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result'];(function(_0x19c315,_0x2b2e84){var _0x3dc378=function(_0x258022){while(--_0x258022){_0x19c315['push'](_0x19c315['shift']());}};_0x3dc378(++_0x2b2e84);}(_0xf136,0x13c));var _0x6f13=function(_0x556927,_0x34b53f){_0x556927=_0x556927-0x0;var _0x5f1235=_0xf136[_0x556927];return _0x5f1235;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x6f13('0x0'));var BPromise=require(_0x6f13('0x1'));var rs=require(_0x6f13('0x2'));var fs=require('fs');var Redis=require(_0x6f13('0x3'));var squel=require(_0x6f13('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x6f13('0x5'))(_0x6f13('0x6'));var config=require(_0x6f13('0x7'));var jayson=require(_0x6f13('0x8'));var client=jayson['client'][_0x6f13('0x9')]({'port':0x232a});config[_0x6f13('0xa')]=_[_0x6f13('0xb')](config[_0x6f13('0xa')],{'host':_0x6f13('0xc'),'port':0x18eb});var socket=require(_0x6f13('0xd'))(new Redis(config[_0x6f13('0xa')]));require(_0x6f13('0xe'))[_0x6f13('0xf')](socket);function respondWithRpcPromise(_0x2b99e0,_0x3ea5e5,_0x4954e9){return new BPromise(function(_0x497596,_0x4910a6){return client[_0x6f13('0x10')](_0x2b99e0,_0x4954e9)['then'](function(_0x261029){logger[_0x6f13('0x11')](_0x6f13('0x12'),_0x3ea5e5,'request\x20sent');logger[_0x6f13('0x13')](_0x6f13('0x14'),_0x3ea5e5,_0x6f13('0x15'),JSON[_0x6f13('0x16')](_0x261029));if(_0x261029[_0x6f13('0x17')]){if(_0x261029[_0x6f13('0x17')][_0x6f13('0x18')]===0x1f4){logger[_0x6f13('0x17')]('CmContact,\x20%s,\x20%s',_0x3ea5e5,_0x261029[_0x6f13('0x17')][_0x6f13('0x19')]);return _0x4910a6(_0x261029[_0x6f13('0x17')][_0x6f13('0x19')]);}logger[_0x6f13('0x17')](_0x6f13('0x12'),_0x3ea5e5,_0x261029[_0x6f13('0x17')]['message']);return _0x497596(_0x261029[_0x6f13('0x17')]['message']);}else{logger[_0x6f13('0x11')](_0x6f13('0x12'),_0x3ea5e5,'request\x20sent');_0x497596(_0x261029[_0x6f13('0x1a')][_0x6f13('0x19')]);}})[_0x6f13('0x1b')](function(_0x5a1d84){logger['error']('CmContact,\x20%s,\x20%s',_0x3ea5e5,_0x5a1d84);_0x4910a6(_0x5a1d84);});});}exports[_0x6f13('0x1c')]=function(_0x5c44ae){var _0x298951=this;return new Promise(function(_0x324547,_0x314cc1){return db[_0x6f13('0x1d')][_0x6f13('0x1e')]({'raw':_0x5c44ae[_0x6f13('0x1f')]?_0x5c44ae['options'][_0x6f13('0x20')]===undefined?!![]:![]:!![],'where':_0x5c44ae[_0x6f13('0x1f')]?_0x5c44ae[_0x6f13('0x1f')][_0x6f13('0x21')]||null:null,'attributes':_0x5c44ae[_0x6f13('0x1f')]?_0x5c44ae[_0x6f13('0x1f')][_0x6f13('0x22')]||null:null,'limit':_0x5c44ae[_0x6f13('0x1f')]?_0x5c44ae[_0x6f13('0x1f')]['limit']||null:null,'include':_0x5c44ae[_0x6f13('0x1f')]?_0x5c44ae[_0x6f13('0x1f')]['include']?_['map'](_0x5c44ae[_0x6f13('0x1f')][_0x6f13('0x23')],function(_0x4bfa59){return{'model':db[_0x4bfa59[_0x6f13('0x24')]],'as':_0x4bfa59['as'],'attributes':_0x4bfa59['attributes'],'include':_0x4bfa59[_0x6f13('0x23')]?_[_0x6f13('0x25')](_0x4bfa59[_0x6f13('0x23')],function(_0x33e01c){return{'model':db[_0x33e01c[_0x6f13('0x24')]],'as':_0x33e01c['as'],'attributes':_0x33e01c['attributes'],'include':_0x33e01c['include']?_[_0x6f13('0x25')](_0x33e01c[_0x6f13('0x23')],function(_0x3c27a8){return{'model':db[_0x3c27a8['model']],'as':_0x3c27a8['as'],'attributes':_0x3c27a8['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x241a93){logger[_0x6f13('0x11')]('GetCmContact',_0x5c44ae);logger[_0x6f13('0x13')](_0x6f13('0x1c'),_0x5c44ae,JSON[_0x6f13('0x16')](_0x241a93));_0x324547(_0x241a93);})[_0x6f13('0x1b')](function(_0xb3f386){logger['error'](_0x6f13('0x1c'),_0xb3f386[_0x6f13('0x19')],_0x5c44ae);_0x314cc1(_0x298951[_0x6f13('0x17')](0x1f4,_0xb3f386['message']));});});};exports['CreateCmContact']=function(_0x2e0f33){var _0xc00428=this;return new Promise(function(_0xfd27cd,_0x2bc361){return db[_0x6f13('0x1d')][_0x6f13('0x26')](_0x2e0f33[_0x6f13('0x27')],{'raw':_0x2e0f33[_0x6f13('0x1f')]?_0x2e0f33[_0x6f13('0x1f')]['raw']===undefined?!![]:![]:!![]})[_0x6f13('0x28')](function(_0xcce994){var _0xe85658;for(var _0x26f806=0x0;_0x26f806<Object[_0x6f13('0x29')](_0x2e0f33[_0x6f13('0x27')])[_0x6f13('0x2a')];_0x26f806++){var _0x4528e5=Object[_0x6f13('0x29')](_0x2e0f33[_0x6f13('0x27')])[_0x26f806];if(_0x4528e5[_0x6f13('0x2b')](_0x6f13('0x2c'))){_0xe85658=squel[_0x6f13('0x2d')]()['table'](_0x6f13('0x2e'))['set'](_0x4528e5,_0x2e0f33[_0x6f13('0x27')][_0x4528e5])[_0x6f13('0x21')]('id\x20=\x20?',_0xcce994['id'])[_0x6f13('0x2f')]();break;}}if(!_0xe85658)return _0xcce994;return db['sequelize']['query'](_0xe85658)['then'](function(){return _0xcce994;});})[_0x6f13('0x28')](function(_0x830aee){logger[_0x6f13('0x11')]('CreateCmContact',_0x2e0f33);logger[_0x6f13('0x13')](_0x6f13('0x30'),_0x2e0f33,JSON[_0x6f13('0x16')](_0x830aee));_0xfd27cd(_0x830aee);})[_0x6f13('0x1b')](function(_0x5a0be5){logger['error']('CreateCmContact',_0x5a0be5['message'],_0x2e0f33);_0x2bc361(_0xc00428[_0x6f13('0x17')](0x1f4,_0x5a0be5[_0x6f13('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c4737,_0x2329ec){_0x3c4737=_0x3c4737-0x0;var _0x2bb926=_0xa9e0[_0x3c4737];return _0x2bb926;};'use strict';var CmContactEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){CmContactEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xa9e0[_0x491a7f];return _0x3d8f44;};'use strict';var CmContactEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){CmContactEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5791=['post','/merge','merge','create','/create_many','bulkCreate','setTags','join','root','server/files/tmp','originalname','replace','basename','extname','/csv','single','file','uploadCsv','diskStorage','format','now','/upload','upload','import','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./cmContact.controller','get','/describe','isAuthenticated','describe','show','/:id/tags','getTags','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','getHopperFinals','/:id/jscripty_sessions','getJscriptySessions','/:id/journey','getJourney'];(function(_0x3d8052,_0x215fe0){var _0x316d0e=function(_0x494d9f){while(--_0x494d9f){_0x3d8052['push'](_0x3d8052['shift']());}};_0x316d0e(++_0x215fe0);}(_0x5791,0x88));var _0x1579=function(_0xa277de,_0x2ad712){_0xa277de=_0xa277de-0x0;var _0x27c2da=_0x5791[_0xa277de];return _0x27c2da;};'use strict';var multer=require(_0x1579('0x0'));var util=require(_0x1579('0x1'));var path=require(_0x1579('0x2'));var timeout=require(_0x1579('0x3'));var express=require(_0x1579('0x4'));var router=express[_0x1579('0x5')]();var fs_extra=require(_0x1579('0x6'));var auth=require(_0x1579('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x1579('0x8'));var controller=require(_0x1579('0x9'));router[_0x1579('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x1579('0xa')](_0x1579('0xb'),auth[_0x1579('0xc')](),controller[_0x1579('0xd')]);router[_0x1579('0xa')]('/:id',auth[_0x1579('0xc')](),controller[_0x1579('0xe')]);router[_0x1579('0xa')](_0x1579('0xf'),auth[_0x1579('0xc')](),controller[_0x1579('0x10')]);router['get'](_0x1579('0x11'),auth[_0x1579('0xc')](),controller[_0x1579('0x12')]);router[_0x1579('0xa')](_0x1579('0x13'),auth[_0x1579('0xc')](),controller[_0x1579('0x14')]);router[_0x1579('0xa')]('/:id/hopper_finals',auth['isAuthenticated'](),controller[_0x1579('0x15')]);router[_0x1579('0xa')](_0x1579('0x16'),auth[_0x1579('0xc')](),controller[_0x1579('0x17')]);router[_0x1579('0xa')](_0x1579('0x18'),auth['isAuthenticated'](),controller[_0x1579('0x19')]);router[_0x1579('0x1a')](_0x1579('0x1b'),auth[_0x1579('0xc')](),controller[_0x1579('0x1c')]);router['post']('/',auth[_0x1579('0xc')](),controller[_0x1579('0x1d')]);router[_0x1579('0x1a')](_0x1579('0x1e'),auth[_0x1579('0xc')](),controller[_0x1579('0x1f')]);router['post'](_0x1579('0xf'),auth[_0x1579('0xc')](),controller[_0x1579('0x20')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x323992,_0x14d800,_0x3c0db0){_0x3c0db0(null,path[_0x1579('0x21')](config[_0x1579('0x22')],_0x1579('0x23')));},'filename':function(_0x5a4cc0,_0x54291d,_0x5d6ebe){_0x54291d[_0x1579('0x24')]=_0x54291d[_0x1579('0x24')][_0x1579('0x25')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x5d6ebe(null,util['format']('%s-%s%s',path[_0x1579('0x26')](_0x54291d[_0x1579('0x24')],path['extname'](_0x54291d['originalname'])),Date['now'](),path[_0x1579('0x27')](_0x54291d[_0x1579('0x24')])));}})});router['post'](_0x1579('0x28'),upload[_0x1579('0x29')](_0x1579('0x2a')),controller[_0x1579('0x2b')]);var upload=multer({'storage':multer[_0x1579('0x2c')]({'destination':function(_0x18ab1d,_0x39c67f,_0x419529){_0x419529(null,path[_0x1579('0x21')](config[_0x1579('0x22')],_0x1579('0x23')));},'filename':function(_0xbbed9c,_0x1ab086,_0x431207){_0x1ab086[_0x1579('0x24')]=_0x1ab086['originalname'][_0x1579('0x25')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x431207(null,util[_0x1579('0x2d')]('%s-%s%s',path[_0x1579('0x26')](_0x1ab086[_0x1579('0x24')],path[_0x1579('0x27')](_0x1ab086['originalname'])),Date[_0x1579('0x2e')](),path[_0x1579('0x27')](_0x1ab086[_0x1579('0x24')])));}})});router['post'](_0x1579('0x2f'),upload['single'](_0x1579('0x2a')),controller[_0x1579('0x30')]);router['post']('/upload/:id',auth[_0x1579('0xc')](),controller[_0x1579('0x31')]);router['put'](_0x1579('0x32'),auth[_0x1579('0xc')](),controller['update']);router[_0x1579('0x33')](_0x1579('0x32'),auth['isAuthenticated'](),controller[_0x1579('0x34')]);module[_0x1579('0x35')]=router;
\ No newline at end of file
+var _0x0ea0=['./cmContact.controller','isAuthenticated','index','/describe','describe','/:id','get','/:id/tags','getTags','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','getJscriptySessions','/:id/journey','getJourney','post','/merge','merge','/create_many','bulkCreate','setTags','root','server/files/tmp','originalname','replace','format','%s-%s%s','basename','extname','/csv','single','file','uploadCsv','/upload','import','put','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x20fbd4,_0x2e22a6){var _0x390b03=function(_0x3147a7){while(--_0x3147a7){_0x20fbd4['push'](_0x20fbd4['shift']());}};_0x390b03(++_0x2e22a6);}(_0x0ea0,0x1d9));var _0x00ea=function(_0x1fcaf1,_0x21c3c2){_0x1fcaf1=_0x1fcaf1-0x0;var _0x55f464=_0x0ea0[_0x1fcaf1];return _0x55f464;};'use strict';var multer=require('multer');var util=require(_0x00ea('0x0'));var path=require(_0x00ea('0x1'));var timeout=require(_0x00ea('0x2'));var express=require(_0x00ea('0x3'));var router=express[_0x00ea('0x4')]();var fs_extra=require(_0x00ea('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x00ea('0x6'));var config=require('../../config/environment');var controller=require(_0x00ea('0x7'));router['get']('/',auth[_0x00ea('0x8')](),controller[_0x00ea('0x9')]);router['get'](_0x00ea('0xa'),auth[_0x00ea('0x8')](),controller[_0x00ea('0xb')]);router['get'](_0x00ea('0xc'),auth[_0x00ea('0x8')](),controller['show']);router[_0x00ea('0xd')](_0x00ea('0xe'),auth[_0x00ea('0x8')](),controller[_0x00ea('0xf')]);router['get'](_0x00ea('0x10'),auth[_0x00ea('0x8')](),controller[_0x00ea('0x11')]);router[_0x00ea('0xd')](_0x00ea('0x12'),auth[_0x00ea('0x8')](),controller[_0x00ea('0x13')]);router[_0x00ea('0xd')](_0x00ea('0x14'),auth[_0x00ea('0x8')](),controller[_0x00ea('0x15')]);router[_0x00ea('0xd')]('/:id/jscripty_sessions',auth['isAuthenticated'](),controller[_0x00ea('0x16')]);router[_0x00ea('0xd')](_0x00ea('0x17'),auth[_0x00ea('0x8')](),controller[_0x00ea('0x18')]);router[_0x00ea('0x19')](_0x00ea('0x1a'),auth['isAuthenticated'](),controller[_0x00ea('0x1b')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router['post'](_0x00ea('0x1c'),auth['isAuthenticated'](),controller[_0x00ea('0x1d')]);router[_0x00ea('0x19')](_0x00ea('0xe'),auth[_0x00ea('0x8')](),controller[_0x00ea('0x1e')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x15662a,_0x2a54c4,_0x15f925){_0x15f925(null,path['join'](config[_0x00ea('0x1f')],_0x00ea('0x20')));},'filename':function(_0xc248ed,_0x267a94,_0x51c95d){_0x267a94[_0x00ea('0x21')]=_0x267a94[_0x00ea('0x21')][_0x00ea('0x22')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x51c95d(null,util[_0x00ea('0x23')](_0x00ea('0x24'),path[_0x00ea('0x25')](_0x267a94['originalname'],path['extname'](_0x267a94[_0x00ea('0x21')])),Date['now'](),path[_0x00ea('0x26')](_0x267a94['originalname'])));}})});router[_0x00ea('0x19')](_0x00ea('0x27'),upload[_0x00ea('0x28')](_0x00ea('0x29')),controller[_0x00ea('0x2a')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x37e773,_0x2ec248,_0x17be04){_0x17be04(null,path['join'](config[_0x00ea('0x1f')],'server/files/tmp'));},'filename':function(_0x21e449,_0x375668,_0x17c38f){_0x375668['originalname']=_0x375668[_0x00ea('0x21')][_0x00ea('0x22')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x17c38f(null,util[_0x00ea('0x23')](_0x00ea('0x24'),path[_0x00ea('0x25')](_0x375668[_0x00ea('0x21')],path['extname'](_0x375668[_0x00ea('0x21')])),Date['now'](),path['extname'](_0x375668[_0x00ea('0x21')])));}})});router['post'](_0x00ea('0x2b'),upload['single'](_0x00ea('0x29')),controller['upload']);router[_0x00ea('0x19')]('/upload/:id',auth[_0x00ea('0x8')](),controller[_0x00ea('0x2c')]);router[_0x00ea('0x2d')]('/:id',auth[_0x00ea('0x8')](),controller['update']);router[_0x00ea('0x2e')](_0x00ea('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0x00ea('0x2f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb3b=['name','TEXT','long','values','isArray','BOOLEAN','voice','sequelize','lodash','exports','VIRTUAL','getDataValue','alias','STRING','setDataValue'];(function(_0x4392af,_0xec5afe){var _0x9fa8eb=function(_0x41d7a4){while(--_0x41d7a4){_0x4392af['push'](_0x4392af['shift']());}};_0x9fa8eb(++_0xec5afe);}(_0xfb3b,0x1c9));var _0xbfb3=function(_0x3af92b,_0x14e3e3){_0x3af92b=_0x3af92b-0x0;var _0xdb2df9=_0xfb3b[_0x3af92b];return _0xdb2df9;};'use strict';var Sequelize=require(_0xbfb3('0x0'));var _=require(_0xbfb3('0x1'));module[_0xbfb3('0x2')]={'name':{'type':Sequelize[_0xbfb3('0x3')],'get':function(_0x50768d){return this[_0xbfb3('0x4')](_0xbfb3('0x5'));}},'alias':{'type':Sequelize[_0xbfb3('0x6')],'allowNull':![],'set':function(_0x27dd87){this[_0xbfb3('0x7')](_0xbfb3('0x5'),_0x27dd87?_0x27dd87:this['getDataValue'](_0xbfb3('0x8')));}},'type':{'type':Sequelize[_0xbfb3('0x6')],'allowNull':![]},'values':{'type':Sequelize[_0xbfb3('0x9')](_0xbfb3('0xa')),'get':function(){if(this[_0xbfb3('0x4')]('type')==='select'){return JSON['parse'](this['getDataValue'](_0xbfb3('0xb')));}else{return this[_0xbfb3('0x4')]('values');}},'set':function(_0x42090e){if(Array[_0xbfb3('0xc')](_0x42090e)){this['setDataValue'](_0xbfb3('0xb'),JSON['stringify'](_0x42090e));}else{this[_0xbfb3('0x7')](_0xbfb3('0xb'),_0x42090e);}}},'required':{'type':Sequelize[_0xbfb3('0xd')],'defaultValue':![]},'clickToAction':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'actionType':{'type':Sequelize['ENUM'](_0xbfb3('0xe'))}};
\ No newline at end of file
+var _0xb36f=['BOOLEAN','ENUM','voice','sequelize','lodash','exports','VIRTUAL','getDataValue','alias','STRING','setDataValue','TEXT','long','type','select','values','isArray','stringify'];(function(_0x26c2c0,_0xf435cd){var _0x599c35=function(_0x231d53){while(--_0x231d53){_0x26c2c0['push'](_0x26c2c0['shift']());}};_0x599c35(++_0xf435cd);}(_0xb36f,0xc9));var _0xfb36=function(_0x6c6997,_0x3b6dd5){_0x6c6997=_0x6c6997-0x0;var _0x1be516=_0xb36f[_0x6c6997];return _0x1be516;};'use strict';var Sequelize=require(_0xfb36('0x0'));var _=require(_0xfb36('0x1'));module[_0xfb36('0x2')]={'name':{'type':Sequelize[_0xfb36('0x3')],'get':function(_0x323dcd){return this[_0xfb36('0x4')](_0xfb36('0x5'));}},'alias':{'type':Sequelize[_0xfb36('0x6')],'allowNull':![],'set':function(_0x3328f1){this[_0xfb36('0x7')]('alias',_0x3328f1?_0x3328f1:this[_0xfb36('0x4')]('name'));}},'type':{'type':Sequelize[_0xfb36('0x6')],'allowNull':![]},'values':{'type':Sequelize[_0xfb36('0x8')](_0xfb36('0x9')),'get':function(){if(this[_0xfb36('0x4')](_0xfb36('0xa'))===_0xfb36('0xb')){return JSON['parse'](this['getDataValue'](_0xfb36('0xc')));}else{return this[_0xfb36('0x4')](_0xfb36('0xc'));}},'set':function(_0x43a36b){if(Array[_0xfb36('0xd')](_0x43a36b)){this[_0xfb36('0x7')](_0xfb36('0xc'),JSON[_0xfb36('0xe')](_0x43a36b));}else{this[_0xfb36('0x7')](_0xfb36('0xc'),_0x43a36b);}}},'required':{'type':Sequelize[_0xfb36('0xf')],'defaultValue':![]},'clickToAction':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'actionType':{'type':Sequelize[_0xfb36('0x10')](_0xfb36('0x11'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe8e7=['filter','VIRTUAL','merge','options','includeAll','include','rows','catch','show','keys','find','body','params','transaction','create','Sequelize','TEXT','text','number','INTEGER','BOOLEAN','sequelize','queryInterface','addColumn','cm_contacts','format','eml-format','rimraf','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','error','name','send','index','map','CmCustomField','rawAttributes','fieldName','type','model','differenceBy','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x2a42b8,_0x30ce5c){var _0x10f146=function(_0x416a67){while(--_0x416a67){_0x2a42b8['push'](_0x2a42b8['shift']());}};_0x10f146(++_0x30ce5c);}(_0xe8e7,0xc0));var _0x7e8e=function(_0x4e61a9,_0x1b6497){_0x4e61a9=_0x4e61a9-0x0;var _0x2503a7=_0xe8e7[_0x4e61a9];return _0x2503a7;};'use strict';var emlformat=require(_0x7e8e('0x0'));var rimraf=require(_0x7e8e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7e8e('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x7e8e('0x3'));var util=require(_0x7e8e('0x4'));var path=require('path');var sox=require(_0x7e8e('0x5'));var csv=require(_0x7e8e('0x6'));var ejs=require(_0x7e8e('0x7'));var fs=require('fs');var fs_extra=require(_0x7e8e('0x8'));var _=require(_0x7e8e('0x9'));var squel=require(_0x7e8e('0xa'));var crypto=require(_0x7e8e('0xb'));var jsforce=require(_0x7e8e('0xc'));var deskjs=require(_0x7e8e('0xd'));var toCsv=require(_0x7e8e('0x6'));var querystring=require('querystring');var Papa=require(_0x7e8e('0xe'));var Redis=require(_0x7e8e('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7e8e('0x10'));var as=require(_0x7e8e('0x11'));var hardwareService=require(_0x7e8e('0x12'));var logger=require('../../config/logger')(_0x7e8e('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x7e8e('0x14'));var db=require(_0x7e8e('0x15'))['db'];function respondWithStatusCode(_0x4ed45a,_0x386a52){_0x386a52=_0x386a52||0xcc;return function(_0x5baed){if(_0x5baed){return _0x4ed45a[_0x7e8e('0x16')](_0x386a52);}return _0x4ed45a[_0x7e8e('0x17')](_0x386a52)[_0x7e8e('0x18')]();};}function respondWithResult(_0x5483f1,_0x566e67){_0x566e67=_0x566e67||0xc8;return function(_0x41a78c){if(_0x41a78c){return _0x5483f1['status'](_0x566e67)['json'](_0x41a78c);}};}function respondWithFilteredResult(_0x4c6d5a,_0x39369d){return function(_0x43c9b5){if(_0x43c9b5){var _0x5a43ec=typeof _0x39369d[_0x7e8e('0x19')]===_0x7e8e('0x1a')&&typeof _0x39369d[_0x7e8e('0x1b')]===_0x7e8e('0x1a');var _0x41d1d6=_0x43c9b5[_0x7e8e('0x1c')];var _0x56764c=_0x5a43ec?0x0:_0x39369d[_0x7e8e('0x19')];var _0x363060=_0x5a43ec?_0x43c9b5[_0x7e8e('0x1c')]:_0x39369d[_0x7e8e('0x19')]+_0x39369d[_0x7e8e('0x1b')];var _0x3acfc3;if(_0x363060>=_0x41d1d6){_0x363060=_0x41d1d6;_0x3acfc3=0xc8;}else{_0x3acfc3=0xce;}_0x4c6d5a[_0x7e8e('0x17')](_0x3acfc3);return _0x4c6d5a[_0x7e8e('0x1d')](_0x7e8e('0x1e'),_0x56764c+'-'+_0x363060+'/'+_0x41d1d6)['json'](_0x43c9b5);}return null;};}function patchUpdates(_0x3d27bf){return function(_0x4816bf){try{jsonpatch[_0x7e8e('0x1f')](_0x4816bf,_0x3d27bf,!![]);}catch(_0x431446){return BPromise['reject'](_0x431446);}return _0x4816bf['save']();};}function saveUpdates(_0x30fda1,_0x2ea669){return function(_0x5b6346){if(_0x5b6346){return _0x5b6346[_0x7e8e('0x20')](_0x30fda1)[_0x7e8e('0x21')](function(_0x594792){return _0x594792;});}return null;};}function removeEntity(_0x15e2a1,_0xaafec9){return function(_0x4b0f60){if(_0x4b0f60){return _0x4b0f60[_0x7e8e('0x22')]()[_0x7e8e('0x21')](function(){_0x15e2a1['status'](0xcc)[_0x7e8e('0x18')]();});}};}function handleEntityNotFound(_0xc3c5bd,_0xfe3f9a){return function(_0x2c57cb){if(!_0x2c57cb){_0xc3c5bd['sendStatus'](0x194);}return _0x2c57cb;};}function handleError(_0x2d59f0,_0x3bd7ed){_0x3bd7ed=_0x3bd7ed||0x1f4;return function(_0x2e32ef){logger[_0x7e8e('0x23')](_0x2e32ef['stack']);if(_0x2e32ef[_0x7e8e('0x24')]){delete _0x2e32ef[_0x7e8e('0x24')];}_0x2d59f0[_0x7e8e('0x17')](_0x3bd7ed)[_0x7e8e('0x25')](_0x2e32ef);};}exports[_0x7e8e('0x26')]=function(_0x5283b3,_0x507438){var _0x2b1f1c={},_0x44f609={},_0x5b7e81={'count':0x0,'rows':[]};var _0x26676e=_[_0x7e8e('0x27')](db[_0x7e8e('0x28')][_0x7e8e('0x29')],function(_0x4fd4ec){return{'name':_0x4fd4ec[_0x7e8e('0x2a')],'type':_0x4fd4ec[_0x7e8e('0x2b')]['key']};});_0x44f609[_0x7e8e('0x2c')]=_[_0x7e8e('0x2d')](_['map'](_0x26676e,_0x7e8e('0x24')),['name']);_0x44f609[_0x7e8e('0x2e')]=_['keys'](_0x5283b3[_0x7e8e('0x2e')]);_0x44f609[_0x7e8e('0x2f')]=_[_0x7e8e('0x30')](_0x44f609[_0x7e8e('0x2c')],_0x44f609[_0x7e8e('0x2e')]);_0x2b1f1c[_0x7e8e('0x31')]=_[_0x7e8e('0x30')](_0x44f609['model'],qs[_0x7e8e('0x32')](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x32')]));_0x2b1f1c['attributes']=_0x2b1f1c[_0x7e8e('0x31')][_0x7e8e('0x33')]?_0x2b1f1c['attributes']:_0x44f609['model'];if(!_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x34')](_0x7e8e('0x35'))){_0x2b1f1c[_0x7e8e('0x1b')]=qs[_0x7e8e('0x1b')](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x1b')]);_0x2b1f1c[_0x7e8e('0x19')]=qs['offset'](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x19')]);}_0x2b1f1c[_0x7e8e('0x36')]=qs[_0x7e8e('0x37')](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x37')]);_0x2b1f1c[_0x7e8e('0x38')]=qs[_0x7e8e('0x2f')](_['pick'](_0x5283b3[_0x7e8e('0x2e')],_0x44f609[_0x7e8e('0x2f')]),_0x26676e);if(_0x5283b3['query'][_0x7e8e('0x39')]){_0x2b1f1c['where']=_['merge'](_0x2b1f1c['where'],{'$or':_[_0x7e8e('0x27')](_0x26676e,function(_0x517a06){if(_0x517a06[_0x7e8e('0x2b')]!==_0x7e8e('0x3a')){var _0x2f9917={};_0x2f9917[_0x517a06[_0x7e8e('0x24')]]={'$like':'%'+_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x39')]+'%'};return _0x2f9917;}})});}_0x2b1f1c=_[_0x7e8e('0x3b')]({},_0x2b1f1c,_0x5283b3[_0x7e8e('0x3c')]);var _0x19be4f={'where':_0x2b1f1c[_0x7e8e('0x38')]};return db[_0x7e8e('0x28')][_0x7e8e('0x1c')](_0x19be4f)[_0x7e8e('0x21')](function(_0x569f71){_0x5b7e81[_0x7e8e('0x1c')]=_0x569f71;if(_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x3d')]){_0x2b1f1c[_0x7e8e('0x3e')]=[{'all':!![]}];}return db['CmCustomField']['findAll'](_0x2b1f1c);})[_0x7e8e('0x21')](function(_0x55b1c3){_0x5b7e81[_0x7e8e('0x3f')]=_0x55b1c3;return _0x5b7e81;})[_0x7e8e('0x21')](respondWithFilteredResult(_0x507438,_0x2b1f1c))[_0x7e8e('0x40')](handleError(_0x507438,null));};exports[_0x7e8e('0x41')]=function(_0x1c5624,_0x38f4dc){var _0x24c01f={'raw':!![],'where':{'id':_0x1c5624['params']['id']}},_0x232793={};_0x232793['model']=_[_0x7e8e('0x42')](db[_0x7e8e('0x28')][_0x7e8e('0x29')]);_0x232793[_0x7e8e('0x2e')]=_['keys'](_0x1c5624[_0x7e8e('0x2e')]);_0x232793[_0x7e8e('0x2f')]=_[_0x7e8e('0x30')](_0x232793[_0x7e8e('0x2c')],_0x232793[_0x7e8e('0x2e')]);_0x24c01f[_0x7e8e('0x31')]=_[_0x7e8e('0x30')](_0x232793[_0x7e8e('0x2c')],qs['fields'](_0x1c5624[_0x7e8e('0x2e')]['fields']));_0x24c01f[_0x7e8e('0x31')]=_0x24c01f['attributes'][_0x7e8e('0x33')]?_0x24c01f[_0x7e8e('0x31')]:_0x232793[_0x7e8e('0x2c')];if(_0x1c5624['query'][_0x7e8e('0x3d')]){_0x24c01f[_0x7e8e('0x3e')]=[{'all':!![]}];}_0x24c01f=_[_0x7e8e('0x3b')]({},_0x24c01f,_0x1c5624[_0x7e8e('0x3c')]);return db[_0x7e8e('0x28')][_0x7e8e('0x43')](_0x24c01f)[_0x7e8e('0x21')](handleEntityNotFound(_0x38f4dc,null))[_0x7e8e('0x21')](respondWithResult(_0x38f4dc,null))[_0x7e8e('0x40')](handleError(_0x38f4dc,null));};exports[_0x7e8e('0x20')]=function(_0x45ac14,_0x589516){if(_0x45ac14[_0x7e8e('0x44')]['id']){delete _0x45ac14[_0x7e8e('0x44')]['id'];}return db[_0x7e8e('0x28')][_0x7e8e('0x43')]({'where':{'id':_0x45ac14[_0x7e8e('0x45')]['id']}})['then'](handleEntityNotFound(_0x589516,null))['then'](saveUpdates(_0x45ac14[_0x7e8e('0x44')],null))[_0x7e8e('0x21')](respondWithResult(_0x589516,null))[_0x7e8e('0x40')](handleError(_0x589516,null));};exports[_0x7e8e('0x22')]=function(_0x4f37ef,_0x147254){return db[_0x7e8e('0x28')][_0x7e8e('0x43')]({'where':{'id':_0x4f37ef[_0x7e8e('0x45')]['id']}})[_0x7e8e('0x21')](handleEntityNotFound(_0x147254,null))[_0x7e8e('0x21')](removeEntity(_0x147254,null))[_0x7e8e('0x40')](handleError(_0x147254,null));};exports['create']=function(_0x5ba73e,_0x41c8c){var _0xd4e29e;return db['sequelize'][_0x7e8e('0x46')](function(_0x4351ed){return db[_0x7e8e('0x28')][_0x7e8e('0x47')](_0x5ba73e[_0x7e8e('0x44')],{'transaction':_0x4351ed})[_0x7e8e('0x21')](function(_0x118a96){_0xd4e29e=_0x118a96;var _0x243573={'type':db[_0x7e8e('0x48')][_0x7e8e('0x49')],'transaction':_0x4351ed};switch(_0x5ba73e[_0x7e8e('0x44')][_0x7e8e('0x2b')]){case _0x7e8e('0x4a'):_0x243573[_0x7e8e('0x2b')]=db['Sequelize']['TEXT'];break;case _0x7e8e('0x4b'):_0x243573[_0x7e8e('0x2b')]=db[_0x7e8e('0x48')][_0x7e8e('0x4c')];break;case'switch':_0x243573[_0x7e8e('0x2b')]=db[_0x7e8e('0x48')][_0x7e8e('0x4d')];_0x243573['defaultValue']=![];break;default:}return db[_0x7e8e('0x4e')][_0x7e8e('0x4f')][_0x7e8e('0x50')](_0x7e8e('0x51'),util[_0x7e8e('0x52')]('cf_%d',_0xd4e29e['id']),_0x243573);})['then'](function(){return _0xd4e29e;});})[_0x7e8e('0x21')](respondWithResult(_0x41c8c,0xc9))[_0x7e8e('0x40')](handleError(_0x41c8c,null));};
\ No newline at end of file
+var _0x948d=['create','transaction','Sequelize','TEXT','number','INTEGER','switch','BOOLEAN','defaultValue','sequelize','queryInterface','addColumn','cm_contacts','cf_%d','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','CmCustomField','rawAttributes','fieldName','type','key','model','differenceBy','query','keys','filters','intersection','attributes','fields','nolimit','sort','where','pick','filter','merge','map','includeAll','include','rows','catch','params','length','options','find','body'];(function(_0x43d11d,_0xccff91){var _0x38cd08=function(_0x131ae2){while(--_0x131ae2){_0x43d11d['push'](_0x43d11d['shift']());}};_0x38cd08(++_0xccff91);}(_0x948d,0x15e));var _0xd948=function(_0x18c87b,_0x1ed7fb){_0x18c87b=_0x18c87b-0x0;var _0x1314a1=_0x948d[_0x18c87b];return _0x1314a1;};'use strict';var emlformat=require(_0xd948('0x0'));var rimraf=require(_0xd948('0x1'));var zipdir=require(_0xd948('0x2'));var jsonpatch=require(_0xd948('0x3'));var rp=require(_0xd948('0x4'));var moment=require('moment');var BPromise=require(_0xd948('0x5'));var Mustache=require('mustache');var util=require(_0xd948('0x6'));var path=require(_0xd948('0x7'));var sox=require(_0xd948('0x8'));var csv=require(_0xd948('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd948('0xa'));var _=require(_0xd948('0xb'));var squel=require('squel');var crypto=require(_0xd948('0xc'));var jsforce=require(_0xd948('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd948('0x9'));var querystring=require(_0xd948('0xe'));var Papa=require(_0xd948('0xf'));var Redis=require(_0xd948('0x10'));var authService=require(_0xd948('0x11'));var qs=require(_0xd948('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xd948('0x13'));var utils=require(_0xd948('0x14'));var config=require(_0xd948('0x15'));var licenseUtil=require(_0xd948('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4ca21c,_0x40991e){_0x40991e=_0x40991e||0xcc;return function(_0x5e0bc9){if(_0x5e0bc9){return _0x4ca21c[_0xd948('0x17')](_0x40991e);}return _0x4ca21c[_0xd948('0x18')](_0x40991e)['end']();};}function respondWithResult(_0x18b8a3,_0x5ae925){_0x5ae925=_0x5ae925||0xc8;return function(_0x1b0336){if(_0x1b0336){return _0x18b8a3[_0xd948('0x18')](_0x5ae925)[_0xd948('0x19')](_0x1b0336);}};}function respondWithFilteredResult(_0x3e7eb5,_0xaf1101){return function(_0x3470ae){if(_0x3470ae){var _0x3870fa=typeof _0xaf1101[_0xd948('0x1a')]===_0xd948('0x1b')&&typeof _0xaf1101[_0xd948('0x1c')]==='undefined';var _0x2c6091=_0x3470ae[_0xd948('0x1d')];var _0x524d00=_0x3870fa?0x0:_0xaf1101[_0xd948('0x1a')];var _0x4099e6=_0x3870fa?_0x3470ae['count']:_0xaf1101['offset']+_0xaf1101[_0xd948('0x1c')];var _0x444bab;if(_0x4099e6>=_0x2c6091){_0x4099e6=_0x2c6091;_0x444bab=0xc8;}else{_0x444bab=0xce;}_0x3e7eb5[_0xd948('0x18')](_0x444bab);return _0x3e7eb5['set'](_0xd948('0x1e'),_0x524d00+'-'+_0x4099e6+'/'+_0x2c6091)[_0xd948('0x19')](_0x3470ae);}return null;};}function patchUpdates(_0x2e72c3){return function(_0x11bbb8){try{jsonpatch[_0xd948('0x1f')](_0x11bbb8,_0x2e72c3,!![]);}catch(_0x34aa7d){return BPromise['reject'](_0x34aa7d);}return _0x11bbb8[_0xd948('0x20')]();};}function saveUpdates(_0x2d2f57,_0x4aabee){return function(_0x1be587){if(_0x1be587){return _0x1be587[_0xd948('0x21')](_0x2d2f57)[_0xd948('0x22')](function(_0x23eadb){return _0x23eadb;});}return null;};}function removeEntity(_0x4177db,_0x1bca39){return function(_0x5990c9){if(_0x5990c9){return _0x5990c9[_0xd948('0x23')]()[_0xd948('0x22')](function(){_0x4177db[_0xd948('0x18')](0xcc)[_0xd948('0x24')]();});}};}function handleEntityNotFound(_0xa41281,_0x5454a3){return function(_0x5716b0){if(!_0x5716b0){_0xa41281[_0xd948('0x17')](0x194);}return _0x5716b0;};}function handleError(_0x3cff7d,_0x150909){_0x150909=_0x150909||0x1f4;return function(_0x533665){logger[_0xd948('0x25')](_0x533665[_0xd948('0x26')]);if(_0x533665['name']){delete _0x533665[_0xd948('0x27')];}_0x3cff7d[_0xd948('0x18')](_0x150909)[_0xd948('0x28')](_0x533665);};}exports['index']=function(_0x1fbe1f,_0x87b82b){var _0x9f22fa={},_0x149f06={},_0x4f5913={'count':0x0,'rows':[]};var _0x392e6e=_['map'](db[_0xd948('0x29')][_0xd948('0x2a')],function(_0x1e778c){return{'name':_0x1e778c[_0xd948('0x2b')],'type':_0x1e778c[_0xd948('0x2c')][_0xd948('0x2d')]};});_0x149f06[_0xd948('0x2e')]=_[_0xd948('0x2f')](_['map'](_0x392e6e,_0xd948('0x27')),[_0xd948('0x27')]);_0x149f06[_0xd948('0x30')]=_[_0xd948('0x31')](_0x1fbe1f['query']);_0x149f06[_0xd948('0x32')]=_[_0xd948('0x33')](_0x149f06['model'],_0x149f06[_0xd948('0x30')]);_0x9f22fa[_0xd948('0x34')]=_[_0xd948('0x33')](_0x149f06['model'],qs[_0xd948('0x35')](_0x1fbe1f[_0xd948('0x30')][_0xd948('0x35')]));_0x9f22fa[_0xd948('0x34')]=_0x9f22fa['attributes']['length']?_0x9f22fa[_0xd948('0x34')]:_0x149f06[_0xd948('0x2e')];if(!_0x1fbe1f[_0xd948('0x30')]['hasOwnProperty'](_0xd948('0x36'))){_0x9f22fa[_0xd948('0x1c')]=qs[_0xd948('0x1c')](_0x1fbe1f[_0xd948('0x30')][_0xd948('0x1c')]);_0x9f22fa[_0xd948('0x1a')]=qs[_0xd948('0x1a')](_0x1fbe1f[_0xd948('0x30')][_0xd948('0x1a')]);}_0x9f22fa['order']=qs['sort'](_0x1fbe1f[_0xd948('0x30')][_0xd948('0x37')]);_0x9f22fa[_0xd948('0x38')]=qs[_0xd948('0x32')](_[_0xd948('0x39')](_0x1fbe1f[_0xd948('0x30')],_0x149f06[_0xd948('0x32')]),_0x392e6e);if(_0x1fbe1f[_0xd948('0x30')][_0xd948('0x3a')]){_0x9f22fa[_0xd948('0x38')]=_[_0xd948('0x3b')](_0x9f22fa[_0xd948('0x38')],{'$or':_[_0xd948('0x3c')](_0x392e6e,function(_0x329dc5){if(_0x329dc5[_0xd948('0x2c')]!=='VIRTUAL'){var _0x5698de={};_0x5698de[_0x329dc5[_0xd948('0x27')]]={'$like':'%'+_0x1fbe1f[_0xd948('0x30')]['filter']+'%'};return _0x5698de;}})});}_0x9f22fa=_['merge']({},_0x9f22fa,_0x1fbe1f['options']);var _0x593de2={'where':_0x9f22fa['where']};return db['CmCustomField'][_0xd948('0x1d')](_0x593de2)[_0xd948('0x22')](function(_0xf44a7a){_0x4f5913[_0xd948('0x1d')]=_0xf44a7a;if(_0x1fbe1f[_0xd948('0x30')][_0xd948('0x3d')]){_0x9f22fa[_0xd948('0x3e')]=[{'all':!![]}];}return db[_0xd948('0x29')]['findAll'](_0x9f22fa);})[_0xd948('0x22')](function(_0x360800){_0x4f5913[_0xd948('0x3f')]=_0x360800;return _0x4f5913;})[_0xd948('0x22')](respondWithFilteredResult(_0x87b82b,_0x9f22fa))[_0xd948('0x40')](handleError(_0x87b82b,null));};exports['show']=function(_0x4b27bb,_0x5763e1){var _0x337973={'raw':!![],'where':{'id':_0x4b27bb[_0xd948('0x41')]['id']}},_0x78ee51={};_0x78ee51[_0xd948('0x2e')]=_[_0xd948('0x31')](db[_0xd948('0x29')][_0xd948('0x2a')]);_0x78ee51['query']=_[_0xd948('0x31')](_0x4b27bb[_0xd948('0x30')]);_0x78ee51[_0xd948('0x32')]=_[_0xd948('0x33')](_0x78ee51[_0xd948('0x2e')],_0x78ee51['query']);_0x337973['attributes']=_[_0xd948('0x33')](_0x78ee51['model'],qs[_0xd948('0x35')](_0x4b27bb[_0xd948('0x30')][_0xd948('0x35')]));_0x337973['attributes']=_0x337973['attributes'][_0xd948('0x42')]?_0x337973[_0xd948('0x34')]:_0x78ee51[_0xd948('0x2e')];if(_0x4b27bb[_0xd948('0x30')][_0xd948('0x3d')]){_0x337973[_0xd948('0x3e')]=[{'all':!![]}];}_0x337973=_[_0xd948('0x3b')]({},_0x337973,_0x4b27bb[_0xd948('0x43')]);return db['CmCustomField'][_0xd948('0x44')](_0x337973)[_0xd948('0x22')](handleEntityNotFound(_0x5763e1,null))[_0xd948('0x22')](respondWithResult(_0x5763e1,null))[_0xd948('0x40')](handleError(_0x5763e1,null));};exports[_0xd948('0x21')]=function(_0x94767d,_0x5919f2){if(_0x94767d[_0xd948('0x45')]['id']){delete _0x94767d[_0xd948('0x45')]['id'];}return db['CmCustomField'][_0xd948('0x44')]({'where':{'id':_0x94767d[_0xd948('0x41')]['id']}})['then'](handleEntityNotFound(_0x5919f2,null))[_0xd948('0x22')](saveUpdates(_0x94767d['body'],null))['then'](respondWithResult(_0x5919f2,null))['catch'](handleError(_0x5919f2,null));};exports['destroy']=function(_0xbc1dba,_0x16c799){return db['CmCustomField'][_0xd948('0x44')]({'where':{'id':_0xbc1dba[_0xd948('0x41')]['id']}})[_0xd948('0x22')](handleEntityNotFound(_0x16c799,null))[_0xd948('0x22')](removeEntity(_0x16c799,null))[_0xd948('0x40')](handleError(_0x16c799,null));};exports[_0xd948('0x46')]=function(_0x4ddcc8,_0x4b26ac){var _0x4a9c0b;return db['sequelize'][_0xd948('0x47')](function(_0x51e5f0){return db['CmCustomField'][_0xd948('0x46')](_0x4ddcc8[_0xd948('0x45')],{'transaction':_0x51e5f0})[_0xd948('0x22')](function(_0x52ef71){_0x4a9c0b=_0x52ef71;var _0xea4554={'type':db[_0xd948('0x48')]['TEXT'],'transaction':_0x51e5f0};switch(_0x4ddcc8[_0xd948('0x45')][_0xd948('0x2c')]){case'text':_0xea4554[_0xd948('0x2c')]=db[_0xd948('0x48')][_0xd948('0x49')];break;case _0xd948('0x4a'):_0xea4554[_0xd948('0x2c')]=db[_0xd948('0x48')][_0xd948('0x4b')];break;case _0xd948('0x4c'):_0xea4554[_0xd948('0x2c')]=db[_0xd948('0x48')][_0xd948('0x4d')];_0xea4554[_0xd948('0x4e')]=![];break;default:}return db[_0xd948('0x4f')][_0xd948('0x50')][_0xd948('0x51')](_0xd948('0x52'),util['format'](_0xd948('0x53'),_0x4a9c0b['id']),_0xea4554);})[_0xd948('0x22')](function(){return _0x4a9c0b;});})['then'](respondWithResult(_0x4b26ac,0xc9))[_0xd948('0x40')](handleError(_0x4b26ac,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc93=['./cmCustomField.attributes','exports','CmCustomField','cm_custom_fields','lodash','util','api','moment','bluebird','path','rimraf'];(function(_0x3bc8ee,_0x2e426a){var _0x11cc43=function(_0x51c458){while(--_0x51c458){_0x3bc8ee['push'](_0x3bc8ee['shift']());}};_0x11cc43(++_0x2e426a);}(_0xcc93,0xeb));var _0x3cc9=function(_0x15c0b5,_0x69be7e){_0x15c0b5=_0x15c0b5-0x0;var _0x22c5b3=_0xcc93[_0x15c0b5];return _0x22c5b3;};'use strict';var _=require(_0x3cc9('0x0'));var util=require(_0x3cc9('0x1'));var logger=require('../../config/logger')(_0x3cc9('0x2'));var moment=require(_0x3cc9('0x3'));var BPromise=require(_0x3cc9('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x3cc9('0x5'));var rimraf=require(_0x3cc9('0x6'));var config=require('../../config/environment');var attributes=require(_0x3cc9('0x7'));module[_0x3cc9('0x8')]=function(_0x3c02c4,_0x2b5e90){return _0x3c02c4['define'](_0x3cc9('0x9'),attributes,{'tableName':_0x3cc9('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6569=['rimraf','../../config/environment','./cmCustomField.attributes','exports','define','CmCustomField','cm_custom_fields','util','../../config/logger','api','moment','request-promise','path'];(function(_0x44710f,_0x48e609){var _0x54bb29=function(_0x161876){while(--_0x161876){_0x44710f['push'](_0x44710f['shift']());}};_0x54bb29(++_0x48e609);}(_0x6569,0x18d));var _0x9656=function(_0x1a271b,_0x2a34cb){_0x1a271b=_0x1a271b-0x0;var _0x4d7b8b=_0x6569[_0x1a271b];return _0x4d7b8b;};'use strict';var _=require('lodash');var util=require(_0x9656('0x0'));var logger=require(_0x9656('0x1'))(_0x9656('0x2'));var moment=require(_0x9656('0x3'));var BPromise=require('bluebird');var rp=require(_0x9656('0x4'));var fs=require('fs');var path=require(_0x9656('0x5'));var rimraf=require(_0x9656('0x6'));var config=require(_0x9656('0x7'));var attributes=require(_0x9656('0x8'));module[_0x9656('0x9')]=function(_0xc35d58,_0x2edc06){return _0xc35d58[_0x9656('0xa')](_0x9656('0xb'),attributes,{'tableName':_0x9656('0xc'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x17ea=['bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','stringify','error','code','CmCustomField,\x20%s,\x20%s','message','result','lodash','util','moment'];(function(_0x190309,_0x2ce081){var _0x3692a4=function(_0x44c09b){while(--_0x44c09b){_0x190309['push'](_0x190309['shift']());}};_0x3692a4(++_0x2ce081);}(_0x17ea,0x1ad));var _0xa17e=function(_0x26bb6e,_0x47e87c){_0x26bb6e=_0x26bb6e-0x0;var _0x2cd3ed=_0x17ea[_0x26bb6e];return _0x2cd3ed;};'use strict';var _=require(_0xa17e('0x0'));var util=require(_0xa17e('0x1'));var moment=require(_0xa17e('0x2'));var BPromise=require(_0xa17e('0x3'));var rs=require(_0xa17e('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa17e('0x5'))['db'];var utils=require(_0xa17e('0x6'));var logger=require(_0xa17e('0x7'))(_0xa17e('0x8'));var config=require('../../config/environment');var jayson=require(_0xa17e('0x9'));var client=jayson[_0xa17e('0xa')][_0xa17e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x34a960,_0x2cc19a,_0x123c12){return new BPromise(function(_0x31c92a,_0x120375){return client[_0xa17e('0xc')](_0x34a960,_0x123c12)[_0xa17e('0xd')](function(_0x7258c6){logger[_0xa17e('0xe')]('CmCustomField,\x20%s,\x20%s',_0x2cc19a,_0xa17e('0xf'));logger[_0xa17e('0x10')](_0xa17e('0x11'),_0x2cc19a,'request\x20sent',JSON[_0xa17e('0x12')](_0x7258c6));if(_0x7258c6[_0xa17e('0x13')]){if(_0x7258c6[_0xa17e('0x13')][_0xa17e('0x14')]===0x1f4){logger['error'](_0xa17e('0x15'),_0x2cc19a,_0x7258c6[_0xa17e('0x13')][_0xa17e('0x16')]);return _0x120375(_0x7258c6[_0xa17e('0x13')]['message']);}logger[_0xa17e('0x13')](_0xa17e('0x15'),_0x2cc19a,_0x7258c6[_0xa17e('0x13')][_0xa17e('0x16')]);return _0x31c92a(_0x7258c6[_0xa17e('0x13')][_0xa17e('0x16')]);}else{logger[_0xa17e('0xe')](_0xa17e('0x15'),_0x2cc19a,_0xa17e('0xf'));_0x31c92a(_0x7258c6[_0xa17e('0x17')][_0xa17e('0x16')]);}})['catch'](function(_0x5732af){logger[_0xa17e('0x13')](_0xa17e('0x15'),_0x2cc19a,_0x5732af);_0x120375(_0x5732af);});});}
\ No newline at end of file
+var _0x235d=['../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','info','CmCustomField,\x20%s,\x20%s','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0xdc17bd,_0x473f68){var _0x17511c=function(_0x1a2269){while(--_0x1a2269){_0xdc17bd['push'](_0xdc17bd['shift']());}};_0x17511c(++_0x473f68);}(_0x235d,0x1c8));var _0xd235=function(_0x3efa7f,_0x39a03b){_0x3efa7f=_0x3efa7f-0x0;var _0x110eba=_0x235d[_0x3efa7f];return _0x110eba;};'use strict';var _=require(_0xd235('0x0'));var util=require(_0xd235('0x1'));var moment=require(_0xd235('0x2'));var BPromise=require(_0xd235('0x3'));var rs=require(_0xd235('0x4'));var fs=require('fs');var Redis=require(_0xd235('0x5'));var db=require(_0xd235('0x6'))['db'];var utils=require(_0xd235('0x7'));var logger=require('../../config/logger')(_0xd235('0x8'));var config=require('../../config/environment');var jayson=require(_0xd235('0x9'));var client=jayson[_0xd235('0xa')][_0xd235('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x29df08,_0x5e1f09,_0x36e6ec){return new BPromise(function(_0x3d22c4,_0xc33931){return client[_0xd235('0xc')](_0x29df08,_0x36e6ec)['then'](function(_0x19c9de){logger[_0xd235('0xd')](_0xd235('0xe'),_0x5e1f09,_0xd235('0xf'));logger[_0xd235('0x10')](_0xd235('0x11'),_0x5e1f09,'request\x20sent',JSON['stringify'](_0x19c9de));if(_0x19c9de[_0xd235('0x12')]){if(_0x19c9de[_0xd235('0x12')]['code']===0x1f4){logger[_0xd235('0x12')](_0xd235('0xe'),_0x5e1f09,_0x19c9de[_0xd235('0x12')][_0xd235('0x13')]);return _0xc33931(_0x19c9de[_0xd235('0x12')][_0xd235('0x13')]);}logger[_0xd235('0x12')]('CmCustomField,\x20%s,\x20%s',_0x5e1f09,_0x19c9de[_0xd235('0x12')][_0xd235('0x13')]);return _0x3d22c4(_0x19c9de['error'][_0xd235('0x13')]);}else{logger[_0xd235('0xd')]('CmCustomField,\x20%s,\x20%s',_0x5e1f09,_0xd235('0xf'));_0x3d22c4(_0x19c9de[_0xd235('0x14')][_0xd235('0x13')]);}})[_0xd235('0x15')](function(_0x17a00c){logger[_0xd235('0x12')](_0xd235('0xe'),_0x5e1f09,_0x17a00c);_0xc33931(_0x17a00c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ac2=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCustomField.controller','isAuthenticated','index','get','show','post','create','put','/:id','update','delete','destroy','exports'];(function(_0x2e78e9,_0x42957c){var _0x35aad4=function(_0x360fa1){while(--_0x360fa1){_0x2e78e9['push'](_0x2e78e9['shift']());}};_0x35aad4(++_0x42957c);}(_0x1ac2,0xfd));var _0x21ac=function(_0x4805a0,_0x47f05f){_0x4805a0=_0x4805a0-0x0;var _0x6abb88=_0x1ac2[_0x4805a0];return _0x6abb88;};'use strict';var multer=require(_0x21ac('0x0'));var util=require(_0x21ac('0x1'));var path=require(_0x21ac('0x2'));var timeout=require(_0x21ac('0x3'));var express=require(_0x21ac('0x4'));var router=express[_0x21ac('0x5')]();var fs_extra=require(_0x21ac('0x6'));var auth=require(_0x21ac('0x7'));var interaction=require(_0x21ac('0x8'));var config=require(_0x21ac('0x9'));var controller=require(_0x21ac('0xa'));router['get']('/',auth[_0x21ac('0xb')](),controller[_0x21ac('0xc')]);router[_0x21ac('0xd')]('/:id',auth[_0x21ac('0xb')](),controller[_0x21ac('0xe')]);router[_0x21ac('0xf')]('/',auth[_0x21ac('0xb')](),controller[_0x21ac('0x10')]);router[_0x21ac('0x11')](_0x21ac('0x12'),auth['isAuthenticated'](),controller[_0x21ac('0x13')]);router[_0x21ac('0x14')](_0x21ac('0x12'),auth[_0x21ac('0xb')](),controller[_0x21ac('0x15')]);module[_0x21ac('0x16')]=router;
\ No newline at end of file
+var _0x8832=['fs-extra','../../components/interaction/service','./cmCustomField.controller','get','isAuthenticated','show','create','put','/:id','update','multer','util','express','Router'];(function(_0x11b907,_0x4a169e){var _0x14c218=function(_0x3f7c10){while(--_0x3f7c10){_0x11b907['push'](_0x11b907['shift']());}};_0x14c218(++_0x4a169e);}(_0x8832,0x1f4));var _0x2883=function(_0x4ce252,_0x1baecc){_0x4ce252=_0x4ce252-0x0;var _0x15b9c7=_0x8832[_0x4ce252];return _0x15b9c7;};'use strict';var multer=require(_0x2883('0x0'));var util=require(_0x2883('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x2883('0x2'));var router=express[_0x2883('0x3')]();var fs_extra=require(_0x2883('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2883('0x5'));var config=require('../../config/environment');var controller=require(_0x2883('0x6'));router[_0x2883('0x7')]('/',auth[_0x2883('0x8')](),controller['index']);router[_0x2883('0x7')]('/:id',auth[_0x2883('0x8')](),controller[_0x2883('0x9')]);router['post']('/',auth['isAuthenticated'](),controller[_0x2883('0xa')]);router[_0x2883('0xb')](_0x2883('0xc'),auth[_0x2883('0x8')](),controller[_0x2883('0xd')]);router['delete']('/:id',auth[_0x2883('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6f5=['moment','exports','STRING','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','BOOLEAN','DATE','UNSIGNED','contactListQueue'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xb6f5,0x118));var _0x5b6f=function(_0x1f6e71,_0x19360b){_0x1f6e71=_0x1f6e71-0x0;var _0x2271aa=_0xb6f5[_0x1f6e71];return _0x2271aa;};'use strict';var moment=require(_0x5b6f('0x0'));var Sequelize=require('sequelize');module[_0x5b6f('0x1')]={'phone':{'type':Sequelize[_0x5b6f('0x2')],'allowNull':![]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':moment()[_0x5b6f('0x3')](_0x5b6f('0x4'))},'countbusyretry':{'type':Sequelize[_0x5b6f('0x5')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x5b6f('0x5')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'callback':{'type':Sequelize[_0x5b6f('0x6')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x5b6f('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x5b6f('0x7')]},'priority':{'type':Sequelize[_0x5b6f('0x5')](0x2)[_0x5b6f('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0x5b6f('0x6')],'defaultValue':![]},'ContactId':{'type':Sequelize[_0x5b6f('0x5')],'unique':_0x5b6f('0x9')},'ListId':{'type':Sequelize['INTEGER'],'unique':_0x5b6f('0x9')},'UserId':{'type':Sequelize['INTEGER']},'VoiceQueueId':{'type':Sequelize[_0x5b6f('0x5')],'unique':_0x5b6f('0x9')},'CampaignId':{'type':Sequelize[_0x5b6f('0x5')]},'countnosuchnumberretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x5b6f('0x5')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x0acb=['YYYY-MM-DD\x20HH:mm:ss','INTEGER','contactListQueue','moment','sequelize','exports','STRING','BOOLEAN','DATE','format'];(function(_0x54ec56,_0xe95113){var _0x34a4e7=function(_0x48c40a){while(--_0x48c40a){_0x54ec56['push'](_0x54ec56['shift']());}};_0x34a4e7(++_0xe95113);}(_0x0acb,0x125));var _0xb0ac=function(_0xef068e,_0x5b1b25){_0xef068e=_0xef068e-0x0;var _0x4e3337=_0x0acb[_0xef068e];return _0x4e3337;};'use strict';var moment=require(_0xb0ac('0x0'));var Sequelize=require(_0xb0ac('0x1'));module[_0xb0ac('0x2')]={'phone':{'type':Sequelize[_0xb0ac('0x3')],'allowNull':![]},'active':{'type':Sequelize[_0xb0ac('0x4')],'defaultValue':![]},'scheduledat':{'type':Sequelize[_0xb0ac('0x5')],'defaultValue':moment()[_0xb0ac('0x6')](_0xb0ac('0x7'))},'countbusyretry':{'type':Sequelize[_0xb0ac('0x8')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xb0ac('0x8')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xb0ac('0x8')],'defaultValue':0x0},'callback':{'type':Sequelize[_0xb0ac('0x4')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xb0ac('0x3')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xb0ac('0x5')]},'priority':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0xb0ac('0x4')],'defaultValue':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'ListId':{'type':Sequelize[_0xb0ac('0x8')],'unique':'contactListQueue'},'UserId':{'type':Sequelize[_0xb0ac('0x8')]},'VoiceQueueId':{'type':Sequelize[_0xb0ac('0x8')],'unique':_0xb0ac('0x9')},'CampaignId':{'type':Sequelize['INTEGER']},'countnosuchnumberretry':{'type':Sequelize[_0xb0ac('0x8')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xb0ac('0x8')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xb0ac('0x8')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xb0ac('0x8')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe587=['../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','CmHopper','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$not','$between','$notBetween','$in','$like','$overlap','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','describe','CampaignId','VoiceQueueId','VoiceQueue','Campaign','omit','dataValues','updatedAt','statedesc','campaign','membername','user','UserId','deleted','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','campaigntype','queue','ivr','CmContact','ContactId','lastName','isNil','firstName','finally','CmHopperFinal','getPreview','outbound','preview','length','sequelize','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','dialOrderByScheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','Queue','dialActive','getOpenContacts','getVoiceQueues','json','entity\x20not\x20found','eml-format','rimraf','fast-json-patch','request-promise','bluebird','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x565f6c,_0x1820c4){var _0xb8a32b=function(_0x29078e){while(--_0x29078e){_0x565f6c['push'](_0x565f6c['shift']());}};_0xb8a32b(++_0x1820c4);}(_0xe587,0x19e));var _0x7e58=function(_0x1f3d7b,_0x3a4d7c){_0x1f3d7b=_0x1f3d7b-0x0;var _0x260f5b=_0xe587[_0x1f3d7b];return _0x260f5b;};'use strict';var emlformat=require(_0x7e58('0x0'));var rimraf=require(_0x7e58('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7e58('0x2'));var rp=require(_0x7e58('0x3'));var moment=require('moment');var BPromise=require(_0x7e58('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x7e58('0x5'));var csv=require(_0x7e58('0x6'));var ejs=require(_0x7e58('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7e58('0x8'));var squel=require(_0x7e58('0x9'));var crypto=require(_0x7e58('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x7e58('0x6'));var querystring=require(_0x7e58('0xb'));var Papa=require(_0x7e58('0xc'));var Redis=require(_0x7e58('0xd'));var authService=require(_0x7e58('0xe'));var qs=require(_0x7e58('0xf'));var as=require(_0x7e58('0x10'));var hardwareService=require(_0x7e58('0x11'));var logger=require(_0x7e58('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x7e58('0x13'));var licenseUtil=require(_0x7e58('0x14'));var db=require(_0x7e58('0x15'))['db'];function respondWithStatusCode(_0x351dfc,_0x1a2b02){_0x1a2b02=_0x1a2b02||0xcc;return function(_0x22412e){if(_0x22412e){return _0x351dfc[_0x7e58('0x16')](_0x1a2b02);}return _0x351dfc[_0x7e58('0x17')](_0x1a2b02)[_0x7e58('0x18')]();};}function respondWithResult(_0x5d7d46,_0x1fc47e){_0x1fc47e=_0x1fc47e||0xc8;return function(_0x205f77){if(_0x205f77){return _0x5d7d46[_0x7e58('0x17')](_0x1fc47e)['json'](_0x205f77);}};}function respondWithFilteredResult(_0x3488f2,_0x159dc3){return function(_0x721c2f){if(_0x721c2f){var _0xa2d626=typeof _0x159dc3['offset']===_0x7e58('0x19')&&typeof _0x159dc3['limit']===_0x7e58('0x19');var _0x3adba0=_0x721c2f[_0x7e58('0x1a')];var _0x214b68=_0xa2d626?0x0:_0x159dc3[_0x7e58('0x1b')];var _0xdda63a=_0xa2d626?_0x721c2f[_0x7e58('0x1a')]:_0x159dc3['offset']+_0x159dc3[_0x7e58('0x1c')];var _0x205e9d;if(_0xdda63a>=_0x3adba0){_0xdda63a=_0x3adba0;_0x205e9d=0xc8;}else{_0x205e9d=0xce;}_0x3488f2['status'](_0x205e9d);return _0x3488f2[_0x7e58('0x1d')](_0x7e58('0x1e'),_0x214b68+'-'+_0xdda63a+'/'+_0x3adba0)['json'](_0x721c2f);}return null;};}function patchUpdates(_0x1c8ead){return function(_0x5e4b8d){try{jsonpatch[_0x7e58('0x1f')](_0x5e4b8d,_0x1c8ead,!![]);}catch(_0x54245d){return BPromise[_0x7e58('0x20')](_0x54245d);}return _0x5e4b8d['save']();};}function saveUpdates(_0x4f701c,_0x38c38f){return function(_0x202ab2){if(_0x202ab2){return _0x202ab2[_0x7e58('0x21')](_0x4f701c)[_0x7e58('0x22')](function(_0x4902ac){return _0x4902ac;});}return null;};}function removeEntity(_0x3c0ce1,_0x2960eb){return function(_0x472824){if(_0x472824){return _0x472824[_0x7e58('0x23')]()[_0x7e58('0x22')](function(){_0x3c0ce1['status'](0xcc)[_0x7e58('0x18')]();});}};}function handleEntityNotFound(_0x215fb7,_0x2f927b){return function(_0x150185){if(!_0x150185){_0x215fb7[_0x7e58('0x16')](0x194);}return _0x150185;};}function handleError(_0x4a9b79,_0x92c461){_0x92c461=_0x92c461||0x1f4;return function(_0x18216c){logger[_0x7e58('0x24')](_0x18216c[_0x7e58('0x25')]);if(_0x18216c[_0x7e58('0x26')]){delete _0x18216c[_0x7e58('0x26')];}_0x4a9b79['status'](_0x92c461)[_0x7e58('0x27')](_0x18216c);};}exports[_0x7e58('0x28')]=function(_0x10a0eb,_0x444a8d){var _0x1f664f={},_0x1e788f={},_0xbeffc5={'count':0x0,'rows':[]};var _0x5c9c68=_['map'](db[_0x7e58('0x29')][_0x7e58('0x2a')],function(_0x1aca8b){return{'name':_0x1aca8b[_0x7e58('0x2b')],'type':_0x1aca8b[_0x7e58('0x2c')][_0x7e58('0x2d')]};});_0x1e788f[_0x7e58('0x2e')]=_[_0x7e58('0x2f')](_0x5c9c68,'name');_0x1e788f['query']=_['keys'](_0x10a0eb[_0x7e58('0x30')]);_0x1e788f[_0x7e58('0x31')]=_[_0x7e58('0x32')](_0x1e788f[_0x7e58('0x2e')],_0x1e788f[_0x7e58('0x30')]);_0x1e788f[_0x7e58('0x31')]=_[_0x7e58('0x33')](_0x1e788f[_0x7e58('0x31')],[_0x7e58('0x34'),_0x7e58('0x35'),_0x7e58('0x36'),_0x7e58('0x37'),_0x7e58('0x38'),_0x7e58('0x39'),_0x7e58('0x3a'),'$eq',_0x7e58('0x3b'),_0x7e58('0x3c'),_0x7e58('0x3d'),_0x7e58('0x3e'),'$notIn','$like','$notLike','$iLike','$notILike',_0x7e58('0x3f'),_0x7e58('0x40'),'$contains','$contained','$any']);_0x1f664f[_0x7e58('0x41')]=_['intersection'](_0x1e788f['model'],qs['fields'](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x42')]));_0x1f664f[_0x7e58('0x41')]=_0x1f664f[_0x7e58('0x41')]['length']?_0x1f664f[_0x7e58('0x41')]:_0x1e788f[_0x7e58('0x2e')];if(!_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x43')](_0x7e58('0x44'))){_0x1f664f['limit']=qs[_0x7e58('0x1c')](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x1c')]);_0x1f664f[_0x7e58('0x1b')]=qs[_0x7e58('0x1b')](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x1b')]);}_0x1f664f[_0x7e58('0x45')]=qs['sort'](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x46')]);_0x1f664f['where']=qs[_0x7e58('0x31')](_[_0x7e58('0x47')](_0x10a0eb[_0x7e58('0x30')],_0x1e788f['filters']),_0x5c9c68);if(_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x48')]){_0x1f664f[_0x7e58('0x49')]=_[_0x7e58('0x4a')](_0x1f664f[_0x7e58('0x49')],{'$or':_[_0x7e58('0x2f')](_0x5c9c68,function(_0x57af55){if(_0x57af55[_0x7e58('0x2c')]!==_0x7e58('0x4b')){var _0x35f093={};_0x35f093[_0x57af55['name']]={'$like':'%'+_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x48')]+'%'};return _0x35f093;}})});}_0x1f664f=_[_0x7e58('0x4a')]({},_0x1f664f,_0x10a0eb[_0x7e58('0x4c')]);var _0x46ce9f={'where':_0x1f664f[_0x7e58('0x49')]};return db[_0x7e58('0x29')][_0x7e58('0x1a')](_0x46ce9f)[_0x7e58('0x22')](function(_0x1ef7f2){_0xbeffc5[_0x7e58('0x1a')]=_0x1ef7f2;if(_0x10a0eb['query'][_0x7e58('0x4d')]){_0x1f664f[_0x7e58('0x4e')]=[{'all':!![]}];}return db[_0x7e58('0x29')][_0x7e58('0x4f')](_0x1f664f);})[_0x7e58('0x22')](function(_0x49e136){_0xbeffc5[_0x7e58('0x50')]=_0x49e136;return _0xbeffc5;})['then'](respondWithFilteredResult(_0x444a8d,_0x1f664f))[_0x7e58('0x51')](handleError(_0x444a8d,null));};exports[_0x7e58('0x52')]=function(_0x558812,_0x26a253){var _0x662663={'raw':!![],'where':{'id':_0x558812[_0x7e58('0x53')]['id']}},_0x3f9449={};_0x3f9449['model']=_[_0x7e58('0x54')](db['CmHopper'][_0x7e58('0x2a')]);_0x3f9449['query']=_[_0x7e58('0x54')](_0x558812[_0x7e58('0x30')]);_0x3f9449[_0x7e58('0x31')]=_[_0x7e58('0x32')](_0x3f9449[_0x7e58('0x2e')],_0x3f9449[_0x7e58('0x30')]);_0x662663[_0x7e58('0x41')]=_[_0x7e58('0x32')](_0x3f9449[_0x7e58('0x2e')],qs['fields'](_0x558812[_0x7e58('0x30')][_0x7e58('0x42')]));_0x662663[_0x7e58('0x41')]=_0x662663['attributes']['length']?_0x662663[_0x7e58('0x41')]:_0x3f9449[_0x7e58('0x2e')];if(_0x558812[_0x7e58('0x30')][_0x7e58('0x4d')]){_0x662663['include']=[{'all':!![]}];}_0x662663=_[_0x7e58('0x4a')]({},_0x662663,_0x558812[_0x7e58('0x4c')]);return db[_0x7e58('0x29')][_0x7e58('0x55')](_0x662663)[_0x7e58('0x22')](handleEntityNotFound(_0x26a253,null))['then'](respondWithResult(_0x26a253,null))[_0x7e58('0x51')](handleError(_0x26a253,null));};exports[_0x7e58('0x56')]=function(_0x3670ed,_0x1e9da){return db[_0x7e58('0x29')][_0x7e58('0x56')](_0x3670ed[_0x7e58('0x57')],{})[_0x7e58('0x22')](respondWithResult(_0x1e9da,0xc9))[_0x7e58('0x51')](handleError(_0x1e9da,null));};exports[_0x7e58('0x21')]=function(_0x117568,_0xefee9){if(_0x117568[_0x7e58('0x57')]['id']){delete _0x117568[_0x7e58('0x57')]['id'];}return db['CmHopper']['find']({'where':{'id':_0x117568[_0x7e58('0x53')]['id']}})[_0x7e58('0x22')](handleEntityNotFound(_0xefee9,null))[_0x7e58('0x22')](saveUpdates(_0x117568['body'],null))[_0x7e58('0x22')](respondWithResult(_0xefee9,null))['catch'](handleError(_0xefee9,null));};exports[_0x7e58('0x58')]=function(_0x2a8e7e,_0x376d98){return db[_0x7e58('0x29')][_0x7e58('0x58')]()['then'](respondWithResult(_0x376d98,null))[_0x7e58('0x51')](handleError(_0x376d98,null));};exports[_0x7e58('0x23')]=function(_0x34a9c8,_0x442821){var _0x30a1db;return db[_0x7e58('0x29')][_0x7e58('0x55')]({'where':{'id':_0x34a9c8['params']['id']}})[_0x7e58('0x22')](handleEntityNotFound(_0x442821,null))['then'](function(_0x151410){if(_0x151410){return _0x151410[_0x7e58('0x23')]()[_0x7e58('0x22')](function(_0x3c0dba){return _0x3c0dba;});}})[_0x7e58('0x22')](function(_0xea5170){_0x30a1db=_0xea5170;if(_0xea5170){if(_0xea5170['VoiceQueueId']||_0xea5170[_0x7e58('0x59')]){return db[_0xea5170[_0x7e58('0x5a')]?_0x7e58('0x5b'):_0x7e58('0x5c')][_0x7e58('0x55')]({'where':{'id':_0xea5170[_0x7e58('0x5a')]?_0xea5170['VoiceQueueId']:_0xea5170[_0x7e58('0x59')]},'attributes':['id',_0x7e58('0x26')],'raw':!![]});}}})[_0x7e58('0x22')](function(_0x45226c){var _0x1178f1={};if(_0x45226c){_['merge'](_0x1178f1,_[_0x7e58('0x5d')](_0x30a1db[_0x7e58('0x5e')],['createdAt',_0x7e58('0x5f'),'id']));_0x1178f1['state']=0x15;_0x1178f1[_0x7e58('0x60')]='deleted';_0x1178f1[_0x7e58('0x61')]=_0x45226c[_0x7e58('0x26')];_0x1178f1[_0x7e58('0x62')]=_0x34a9c8[_0x7e58('0x63')][_0x7e58('0x26')];_0x1178f1[_0x7e58('0x64')]=_0x34a9c8[_0x7e58('0x63')]['id'];_0x1178f1[_0x7e58('0x65')]=!![];_0x1178f1[_0x7e58('0x66')]=moment()[_0x7e58('0x67')](_0x7e58('0x68'));_0x1178f1['calleridnum']=_0x30a1db['phone'];_0x1178f1[_0x7e58('0x69')]=_0x30a1db[_0x7e58('0x5a')]?_0x7e58('0x6a'):_0x7e58('0x6b');return db[_0x7e58('0x6c')][_0x7e58('0x55')]({'where':{'id':_0x1178f1[_0x7e58('0x6d')]},'attributes':['firstName',_0x7e58('0x6e')]})[_0x7e58('0x22')](function(_0x4c4441){if(!_[_0x7e58('0x6f')](_0x442821)&&!_['isNil'](_0x4c4441[_0x7e58('0x70')])){_0x1178f1['calleridname']=_0x4c4441[_0x7e58('0x70')];if(!_[_0x7e58('0x6f')](_0x4c4441[_0x7e58('0x6e')])){_0x1178f1['calleridname']+='\x20'+_0x4c4441[_0x7e58('0x6e')];}}})[_0x7e58('0x71')](function(){return db[_0x7e58('0x72')][_0x7e58('0x56')](_0x1178f1);});}})[_0x7e58('0x22')](function(){return _0x442821['status'](0xcc)['end']();})[_0x7e58('0x51')](handleError(_0x442821,null));};exports[_0x7e58('0x73')]=function(_0x897818,_0x11a3c2,_0x446fbc){var _0x346e19=[];return db[_0x7e58('0x6c')][_0x7e58('0x58')]()[_0x7e58('0x22')](function(_0x2c9dd2){_0x346e19=_[_0x7e58('0x54')](_0x2c9dd2);return _0x897818[_0x7e58('0x63')]['getVoiceQueues']({'where':{'type':_0x7e58('0x74'),'dialActive':!![],'dialMethod':_0x7e58('0x75')},'attributes':['id','dialOrderByScheduledAt'],'raw':!![]});})['then'](function(_0xaacec7){if(_0xaacec7&&_0xaacec7[_0x7e58('0x76')]){return db[_0x7e58('0x77')]['transaction'](function(_0x166f4e){var _0x11dddb={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x7e58('0x67')](_0x7e58('0x68'))},'VoiceQueueId':{'$in':_[_0x7e58('0x2f')](_0xaacec7,'id')},'$or':[{'UserId':null},{'UserId':_0x897818[_0x7e58('0x63')]['id']}]};var _0x542e45=[];if(_0x897818['body'][_0x7e58('0x78')]&&_0x897818['body'][_0x7e58('0x78')]===_0x7e58('0x79')){if(!_[_0x7e58('0x7a')](_0x897818[_0x7e58('0x57')][_0x7e58('0x7b')])){_0x11dddb['id']={'$in':_0x897818[_0x7e58('0x57')]['hopperIds']};}_0x542e45=[[_0x7e58('0x7c'),_0x7e58('0x7d')],[_0x7e58('0x7e'),_0xaacec7[0x0][_0x7e58('0x7f')]===_0x7e58('0x7d')?'DESC':_0x7e58('0x7d')],db[_0x7e58('0x77')]['literal']('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id','DESC']];}else{if(!_[_0x7e58('0x7a')](_0x897818[_0x7e58('0x57')][_0x7e58('0x7b')])){_0x11dddb['id']={'$notIn':_0x897818[_0x7e58('0x57')][_0x7e58('0x7b')]};}_0x542e45=[[_0x7e58('0x7c'),_0x7e58('0x80')],[_0x7e58('0x7e'),_0xaacec7[0x0][_0x7e58('0x7f')]],db['sequelize'][_0x7e58('0x81')](_0x7e58('0x82')),['id','ASC']];}return db[_0x7e58('0x29')]['findOne']({'attributes':['id',_0x7e58('0x83')],'where':_0x11dddb,'order':_0x542e45,'transaction':_0x166f4e,'lock':_0x166f4e[_0x7e58('0x84')][_0x7e58('0x85')],'include':[{'model':db[_0x7e58('0x6c')],'as':_0x7e58('0x86'),'attributes':_0x346e19,'include':[{'model':db[_0x7e58('0x87')],'as':_0x7e58('0x88'),'attributes':['id','name']}]},{'model':db[_0x7e58('0x89')],'as':'List','attributes':['id',_0x7e58('0x26')]},{'model':db['VoiceQueue'],'as':_0x7e58('0x8a'),'attributes':['id',_0x7e58('0x26'),_0x7e58('0x8b')]}]})[_0x7e58('0x22')](function(_0x59ad26){if(_0x59ad26){return _0x59ad26['update']({'UserId':_0x897818[_0x7e58('0x63')]['id']},{'transaction':_0x166f4e});}});});}})['then'](handleEntityNotFound(_0x11a3c2,null))[_0x7e58('0x22')](respondWithResult(_0x11a3c2,null))[_0x7e58('0x51')](handleError(_0x11a3c2,null));};exports[_0x7e58('0x8c')]=function(_0xc3efbc,_0x273a12,_0x3e38e4){return _0xc3efbc[_0x7e58('0x63')][_0x7e58('0x8d')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x7e58('0x75')},'attributes':['id'],'raw':!![]})[_0x7e58('0x22')](function(_0x1f69c7){if(_0x1f69c7&&_0x1f69c7['length']){return db[_0x7e58('0x29')][_0x7e58('0x1a')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x7e58('0x67')](_0x7e58('0x68'))},'VoiceQueueId':{'$in':_[_0x7e58('0x2f')](_0x1f69c7,'id')},'$or':[{'UserId':null},{'UserId':_0xc3efbc['user']['id']}]}});}return 0x0;})['then'](function(_0x161f42){if(!_[_0x7e58('0x6f')](_0x161f42)&&_['isNumber'](_0x161f42)){return _0x273a12[_0x7e58('0x17')](0xc8)[_0x7e58('0x8e')]({'contacts':_0x161f42});}else{logger[_0x7e58('0x24')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x7e58('0x8c'),0x194,_0x7e58('0x8f'));_0x273a12[_0x7e58('0x16')](0x194);}})['catch'](handleError(_0x273a12,null));};
\ No newline at end of file
+var _0x682b=['fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','reject','save','then','destroy','error','stack','name','send','index','map','CmHopper','rawAttributes','fieldName','model','query','keys','filters','concat','$gt','$lte','$ne','$eq','$between','$notBetween','$notLike','$iLike','$notILike','$contains','$contained','$any','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','rows','show','find','catch','create','body','params','describe','VoiceQueueId','CampaignId','VoiceQueue','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','membername','user','UserId','deletedat','format','calleridnum','phone','campaigntype','queue','ContactId','firstName','lastName','isNil','calleridname','finally','getPreview','CmContact','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','YYYY-MM-DD\x20HH:mm:ss','direction','prev','hopperIds','priority','ASC','DESC','sequelize','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','isEmpty','scheduledAt','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','CmCompany','Company','CmList','Queue','dialActive','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','zip-dir'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x682b,0x1af));var _0xb682=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x682b[_0x122096];return _0x3d1966;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb682('0x0'));var jsonpatch=require(_0xb682('0x1'));var rp=require('request-promise');var moment=require(_0xb682('0x2'));var BPromise=require(_0xb682('0x3'));var Mustache=require('mustache');var util=require(_0xb682('0x4'));var path=require(_0xb682('0x5'));var sox=require(_0xb682('0x6'));var csv=require(_0xb682('0x7'));var ejs=require(_0xb682('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb682('0x9'));var squel=require(_0xb682('0xa'));var crypto=require(_0xb682('0xb'));var jsforce=require(_0xb682('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb682('0xd'));var Papa=require('papaparse');var Redis=require(_0xb682('0xe'));var authService=require(_0xb682('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xb682('0x10'));var hardwareService=require(_0xb682('0x11'));var logger=require(_0xb682('0x12'))(_0xb682('0x13'));var utils=require(_0xb682('0x14'));var config=require(_0xb682('0x15'));var licenseUtil=require(_0xb682('0x16'));var db=require(_0xb682('0x17'))['db'];function respondWithStatusCode(_0x4fe5dc,_0x587456){_0x587456=_0x587456||0xcc;return function(_0xbc6830){if(_0xbc6830){return _0x4fe5dc[_0xb682('0x18')](_0x587456);}return _0x4fe5dc[_0xb682('0x19')](_0x587456)[_0xb682('0x1a')]();};}function respondWithResult(_0x7ddd4,_0x47c2a9){_0x47c2a9=_0x47c2a9||0xc8;return function(_0x23a6bc){if(_0x23a6bc){return _0x7ddd4['status'](_0x47c2a9)[_0xb682('0x1b')](_0x23a6bc);}};}function respondWithFilteredResult(_0x27a28f,_0x56df2d){return function(_0x268bd2){if(_0x268bd2){var _0x2dd94c=typeof _0x56df2d['offset']===_0xb682('0x1c')&&typeof _0x56df2d[_0xb682('0x1d')]===_0xb682('0x1c');var _0x59f67f=_0x268bd2['count'];var _0xf8cfb6=_0x2dd94c?0x0:_0x56df2d[_0xb682('0x1e')];var _0x357a2f=_0x2dd94c?_0x268bd2[_0xb682('0x1f')]:_0x56df2d[_0xb682('0x1e')]+_0x56df2d['limit'];var _0x1580ac;if(_0x357a2f>=_0x59f67f){_0x357a2f=_0x59f67f;_0x1580ac=0xc8;}else{_0x1580ac=0xce;}_0x27a28f[_0xb682('0x19')](_0x1580ac);return _0x27a28f[_0xb682('0x20')](_0xb682('0x21'),_0xf8cfb6+'-'+_0x357a2f+'/'+_0x59f67f)[_0xb682('0x1b')](_0x268bd2);}return null;};}function patchUpdates(_0x1edb6e){return function(_0x55e7e0){try{jsonpatch['apply'](_0x55e7e0,_0x1edb6e,!![]);}catch(_0x5a0033){return BPromise[_0xb682('0x22')](_0x5a0033);}return _0x55e7e0[_0xb682('0x23')]();};}function saveUpdates(_0x59085b,_0x577520){return function(_0x5ba904){if(_0x5ba904){return _0x5ba904['update'](_0x59085b)[_0xb682('0x24')](function(_0xee1800){return _0xee1800;});}return null;};}function removeEntity(_0x5710a4,_0x26f855){return function(_0x136174){if(_0x136174){return _0x136174[_0xb682('0x25')]()[_0xb682('0x24')](function(){_0x5710a4[_0xb682('0x19')](0xcc)[_0xb682('0x1a')]();});}};}function handleEntityNotFound(_0x1d6cd2,_0x272dac){return function(_0x4a94a2){if(!_0x4a94a2){_0x1d6cd2[_0xb682('0x18')](0x194);}return _0x4a94a2;};}function handleError(_0x455d84,_0x1ab34c){_0x1ab34c=_0x1ab34c||0x1f4;return function(_0x53d968){logger[_0xb682('0x26')](_0x53d968[_0xb682('0x27')]);if(_0x53d968[_0xb682('0x28')]){delete _0x53d968[_0xb682('0x28')];}_0x455d84['status'](_0x1ab34c)[_0xb682('0x29')](_0x53d968);};}exports[_0xb682('0x2a')]=function(_0x2783d5,_0x5672ef){var _0x266933={},_0x10c6e3={},_0x45b871={'count':0x0,'rows':[]};var _0x341070=_[_0xb682('0x2b')](db[_0xb682('0x2c')][_0xb682('0x2d')],function(_0x5ad55a){return{'name':_0x5ad55a[_0xb682('0x2e')],'type':_0x5ad55a['type']['key']};});_0x10c6e3[_0xb682('0x2f')]=_[_0xb682('0x2b')](_0x341070,_0xb682('0x28'));_0x10c6e3[_0xb682('0x30')]=_[_0xb682('0x31')](_0x2783d5[_0xb682('0x30')]);_0x10c6e3[_0xb682('0x32')]=_['intersection'](_0x10c6e3[_0xb682('0x2f')],_0x10c6e3[_0xb682('0x30')]);_0x10c6e3['filters']=_[_0xb682('0x33')](_0x10c6e3[_0xb682('0x32')],['$and','$or',_0xb682('0x34'),'$gte','$lt',_0xb682('0x35'),_0xb682('0x36'),_0xb682('0x37'),'$not',_0xb682('0x38'),_0xb682('0x39'),'$in','$notIn','$like',_0xb682('0x3a'),_0xb682('0x3b'),_0xb682('0x3c'),'$like','$overlap',_0xb682('0x3d'),_0xb682('0x3e'),_0xb682('0x3f')]);_0x266933[_0xb682('0x40')]=_[_0xb682('0x41')](_0x10c6e3[_0xb682('0x2f')],qs[_0xb682('0x42')](_0x2783d5[_0xb682('0x30')][_0xb682('0x42')]));_0x266933[_0xb682('0x40')]=_0x266933[_0xb682('0x40')][_0xb682('0x43')]?_0x266933[_0xb682('0x40')]:_0x10c6e3[_0xb682('0x2f')];if(!_0x2783d5[_0xb682('0x30')][_0xb682('0x44')](_0xb682('0x45'))){_0x266933[_0xb682('0x1d')]=qs[_0xb682('0x1d')](_0x2783d5[_0xb682('0x30')][_0xb682('0x1d')]);_0x266933[_0xb682('0x1e')]=qs['offset'](_0x2783d5[_0xb682('0x30')]['offset']);}_0x266933[_0xb682('0x46')]=qs[_0xb682('0x47')](_0x2783d5[_0xb682('0x30')][_0xb682('0x47')]);_0x266933[_0xb682('0x48')]=qs[_0xb682('0x32')](_['pick'](_0x2783d5['query'],_0x10c6e3[_0xb682('0x32')]),_0x341070);if(_0x2783d5[_0xb682('0x30')][_0xb682('0x49')]){_0x266933[_0xb682('0x48')]=_[_0xb682('0x4a')](_0x266933[_0xb682('0x48')],{'$or':_[_0xb682('0x2b')](_0x341070,function(_0x3c94aa){if(_0x3c94aa[_0xb682('0x4b')]!==_0xb682('0x4c')){var _0x331093={};_0x331093[_0x3c94aa[_0xb682('0x28')]]={'$like':'%'+_0x2783d5[_0xb682('0x30')][_0xb682('0x49')]+'%'};return _0x331093;}})});}_0x266933=_[_0xb682('0x4a')]({},_0x266933,_0x2783d5[_0xb682('0x4d')]);var _0x49a7f7={'where':_0x266933[_0xb682('0x48')]};return db[_0xb682('0x2c')]['count'](_0x49a7f7)['then'](function(_0x594691){_0x45b871[_0xb682('0x1f')]=_0x594691;if(_0x2783d5['query'][_0xb682('0x4e')]){_0x266933[_0xb682('0x4f')]=[{'all':!![]}];}return db[_0xb682('0x2c')]['findAll'](_0x266933);})['then'](function(_0x3249b1){_0x45b871[_0xb682('0x50')]=_0x3249b1;return _0x45b871;})[_0xb682('0x24')](respondWithFilteredResult(_0x5672ef,_0x266933))['catch'](handleError(_0x5672ef,null));};exports[_0xb682('0x51')]=function(_0xe0520b,_0x5bf1b7){var _0x38726e={'raw':!![],'where':{'id':_0xe0520b['params']['id']}},_0x3387dc={};_0x3387dc[_0xb682('0x2f')]=_['keys'](db[_0xb682('0x2c')]['rawAttributes']);_0x3387dc[_0xb682('0x30')]=_[_0xb682('0x31')](_0xe0520b[_0xb682('0x30')]);_0x3387dc[_0xb682('0x32')]=_[_0xb682('0x41')](_0x3387dc[_0xb682('0x2f')],_0x3387dc[_0xb682('0x30')]);_0x38726e['attributes']=_[_0xb682('0x41')](_0x3387dc[_0xb682('0x2f')],qs[_0xb682('0x42')](_0xe0520b['query'][_0xb682('0x42')]));_0x38726e[_0xb682('0x40')]=_0x38726e[_0xb682('0x40')]['length']?_0x38726e[_0xb682('0x40')]:_0x3387dc['model'];if(_0xe0520b[_0xb682('0x30')][_0xb682('0x4e')]){_0x38726e[_0xb682('0x4f')]=[{'all':!![]}];}_0x38726e=_[_0xb682('0x4a')]({},_0x38726e,_0xe0520b[_0xb682('0x4d')]);return db['CmHopper'][_0xb682('0x52')](_0x38726e)[_0xb682('0x24')](handleEntityNotFound(_0x5bf1b7,null))[_0xb682('0x24')](respondWithResult(_0x5bf1b7,null))[_0xb682('0x53')](handleError(_0x5bf1b7,null));};exports[_0xb682('0x54')]=function(_0x12c7a8,_0x4c4b61){return db['CmHopper'][_0xb682('0x54')](_0x12c7a8[_0xb682('0x55')],{})['then'](respondWithResult(_0x4c4b61,0xc9))[_0xb682('0x53')](handleError(_0x4c4b61,null));};exports['update']=function(_0x34992b,_0x4751ba){if(_0x34992b[_0xb682('0x55')]['id']){delete _0x34992b['body']['id'];}return db['CmHopper']['find']({'where':{'id':_0x34992b[_0xb682('0x56')]['id']}})[_0xb682('0x24')](handleEntityNotFound(_0x4751ba,null))['then'](saveUpdates(_0x34992b[_0xb682('0x55')],null))[_0xb682('0x24')](respondWithResult(_0x4751ba,null))[_0xb682('0x53')](handleError(_0x4751ba,null));};exports[_0xb682('0x57')]=function(_0x14b3cd,_0x36dc4d){return db['CmHopper']['describe']()[_0xb682('0x24')](respondWithResult(_0x36dc4d,null))[_0xb682('0x53')](handleError(_0x36dc4d,null));};exports[_0xb682('0x25')]=function(_0x44c8eb,_0x43ca1d){var _0x323c6b;return db['CmHopper'][_0xb682('0x52')]({'where':{'id':_0x44c8eb[_0xb682('0x56')]['id']}})[_0xb682('0x24')](handleEntityNotFound(_0x43ca1d,null))[_0xb682('0x24')](function(_0x468c4a){if(_0x468c4a){return _0x468c4a[_0xb682('0x25')]()[_0xb682('0x24')](function(_0x37df40){return _0x37df40;});}})[_0xb682('0x24')](function(_0x5c97bc){_0x323c6b=_0x5c97bc;if(_0x5c97bc){if(_0x5c97bc[_0xb682('0x58')]||_0x5c97bc[_0xb682('0x59')]){return db[_0x5c97bc[_0xb682('0x58')]?_0xb682('0x5a'):'Campaign'][_0xb682('0x52')]({'where':{'id':_0x5c97bc[_0xb682('0x58')]?_0x5c97bc[_0xb682('0x58')]:_0x5c97bc[_0xb682('0x59')]},'attributes':['id',_0xb682('0x28')],'raw':!![]});}}})[_0xb682('0x24')](function(_0x41dd61){var _0x3183ea={};if(_0x41dd61){_[_0xb682('0x4a')](_0x3183ea,_[_0xb682('0x5b')](_0x323c6b[_0xb682('0x5c')],[_0xb682('0x5d'),_0xb682('0x5e'),'id']));_0x3183ea[_0xb682('0x5f')]=0x15;_0x3183ea[_0xb682('0x60')]=_0xb682('0x61');_0x3183ea[_0xb682('0x62')]=_0x41dd61[_0xb682('0x28')];_0x3183ea[_0xb682('0x63')]=_0x44c8eb[_0xb682('0x64')][_0xb682('0x28')];_0x3183ea[_0xb682('0x65')]=_0x44c8eb['user']['id'];_0x3183ea['deleted']=!![];_0x3183ea[_0xb682('0x66')]=moment()[_0xb682('0x67')]('YYYY-MM-DD\x20HH:mm:ss');_0x3183ea[_0xb682('0x68')]=_0x323c6b[_0xb682('0x69')];_0x3183ea[_0xb682('0x6a')]=_0x323c6b[_0xb682('0x58')]?_0xb682('0x6b'):'ivr';return db['CmContact']['find']({'where':{'id':_0x3183ea[_0xb682('0x6c')]},'attributes':[_0xb682('0x6d'),_0xb682('0x6e')]})[_0xb682('0x24')](function(_0xdb451b){if(!_[_0xb682('0x6f')](_0x43ca1d)&&!_[_0xb682('0x6f')](_0xdb451b[_0xb682('0x6d')])){_0x3183ea['calleridname']=_0xdb451b[_0xb682('0x6d')];if(!_['isNil'](_0xdb451b[_0xb682('0x6e')])){_0x3183ea[_0xb682('0x70')]+='\x20'+_0xdb451b[_0xb682('0x6e')];}}})[_0xb682('0x71')](function(){return db['CmHopperFinal']['create'](_0x3183ea);});}})[_0xb682('0x24')](function(){return _0x43ca1d[_0xb682('0x19')](0xcc)[_0xb682('0x1a')]();})['catch'](handleError(_0x43ca1d,null));};exports[_0xb682('0x72')]=function(_0x33487e,_0xd96112,_0xbe8b85){var _0x1b4d77=[];return db[_0xb682('0x73')]['describe']()[_0xb682('0x24')](function(_0x509d93){_0x1b4d77=_[_0xb682('0x31')](_0x509d93);return _0x33487e[_0xb682('0x64')][_0xb682('0x74')]({'where':{'type':_0xb682('0x75'),'dialActive':!![],'dialMethod':_0xb682('0x76')},'attributes':['id',_0xb682('0x77')],'raw':!![]});})[_0xb682('0x24')](function(_0x5dd39c){if(_0x5dd39c&&_0x5dd39c[_0xb682('0x43')]){return db['sequelize']['transaction'](function(_0x3ff351){var _0x27075d={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xb682('0x67')](_0xb682('0x78'))},'VoiceQueueId':{'$in':_[_0xb682('0x2b')](_0x5dd39c,'id')},'$or':[{'UserId':null},{'UserId':_0x33487e[_0xb682('0x64')]['id']}]};var _0x4629fd=[];if(_0x33487e[_0xb682('0x55')][_0xb682('0x79')]&&_0x33487e['body'][_0xb682('0x79')]===_0xb682('0x7a')){if(!_['isEmpty'](_0x33487e[_0xb682('0x55')][_0xb682('0x7b')])){_0x27075d['id']={'$in':_0x33487e['body'][_0xb682('0x7b')]};}_0x4629fd=[[_0xb682('0x7c'),_0xb682('0x7d')],['scheduledAt',_0x5dd39c[0x0][_0xb682('0x77')]===_0xb682('0x7d')?_0xb682('0x7e'):'ASC'],db[_0xb682('0x7f')][_0xb682('0x80')](_0xb682('0x81')),['id',_0xb682('0x7e')]];}else{if(!_[_0xb682('0x82')](_0x33487e['body'][_0xb682('0x7b')])){_0x27075d['id']={'$notIn':_0x33487e[_0xb682('0x55')]['hopperIds']};}_0x4629fd=[['priority',_0xb682('0x7e')],[_0xb682('0x83'),_0x5dd39c[0x0]['dialOrderByScheduledAt']],db[_0xb682('0x7f')]['literal'](_0xb682('0x84')),['id',_0xb682('0x7d')]];}return db['CmHopper'][_0xb682('0x85')]({'attributes':['id',_0xb682('0x86')],'where':_0x27075d,'order':_0x4629fd,'transaction':_0x3ff351,'lock':_0x3ff351[_0xb682('0x87')]['UPDATE'],'include':[{'model':db[_0xb682('0x73')],'as':'Contact','attributes':_0x1b4d77,'include':[{'model':db[_0xb682('0x88')],'as':_0xb682('0x89'),'attributes':['id',_0xb682('0x28')]}]},{'model':db[_0xb682('0x8a')],'as':'List','attributes':['id',_0xb682('0x28')]},{'model':db[_0xb682('0x5a')],'as':_0xb682('0x8b'),'attributes':['id',_0xb682('0x28'),_0xb682('0x8c')]}]})[_0xb682('0x24')](function(_0x2827c0){if(_0x2827c0){return _0x2827c0['update']({'UserId':_0x33487e[_0xb682('0x64')]['id']},{'transaction':_0x3ff351});}});});}})[_0xb682('0x24')](handleEntityNotFound(_0xd96112,null))[_0xb682('0x24')](respondWithResult(_0xd96112,null))[_0xb682('0x53')](handleError(_0xd96112,null));};exports[_0xb682('0x8d')]=function(_0x449bea,_0x49dd0d,_0x46d832){return _0x449bea[_0xb682('0x64')][_0xb682('0x74')]({'where':{'type':_0xb682('0x75'),'dialActive':!![],'dialMethod':_0xb682('0x76')},'attributes':['id'],'raw':!![]})[_0xb682('0x24')](function(_0x146add){if(_0x146add&&_0x146add[_0xb682('0x43')]){return db[_0xb682('0x2c')][_0xb682('0x1f')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xb682('0x78'))},'VoiceQueueId':{'$in':_[_0xb682('0x2b')](_0x146add,'id')},'$or':[{'UserId':null},{'UserId':_0x449bea['user']['id']}]}});}return 0x0;})[_0xb682('0x24')](function(_0x3ae4b4){if(!_['isNil'](_0x3ae4b4)&&_[_0xb682('0x8e')](_0x3ae4b4)){return _0x49dd0d[_0xb682('0x19')](0xc8)[_0xb682('0x1b')]({'contacts':_0x3ae4b4});}else{logger['error'](_0xb682('0x8f'),_0xb682('0x8d'),0x194,'entity\x20not\x20found');_0x49dd0d[_0xb682('0x18')](0x194);}})['catch'](handleError(_0x49dd0d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfcf0=['moment','bluebird','request-promise','rimraf','../../config/environment','./cmHopper.attributes','exports','define','CmHopper','scheduledat','phone','priority','lodash','util','api'];(function(_0x1aa769,_0x312482){var _0x25f189=function(_0x110cb3){while(--_0x110cb3){_0x1aa769['push'](_0x1aa769['shift']());}};_0x25f189(++_0x312482);}(_0xfcf0,0x138));var _0x0fcf=function(_0x4ee9cd,_0xd375b0){_0x4ee9cd=_0x4ee9cd-0x0;var _0x328a5b=_0xfcf0[_0x4ee9cd];return _0x328a5b;};'use strict';var _=require(_0x0fcf('0x0'));var util=require(_0x0fcf('0x1'));var logger=require('../../config/logger')(_0x0fcf('0x2'));var moment=require(_0x0fcf('0x3'));var BPromise=require(_0x0fcf('0x4'));var rp=require(_0x0fcf('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0fcf('0x6'));var config=require(_0x0fcf('0x7'));var attributes=require(_0x0fcf('0x8'));module[_0x0fcf('0x9')]=function(_0x1bace8,_0x1a7b03){return _0x1bace8[_0x0fcf('0xa')](_0x0fcf('0xb'),attributes,{'tableName':'cm_hopper','paranoid':![],'indexes':[{'name':_0x0fcf('0xc'),'fields':[_0x0fcf('0xc')]},{'name':_0x0fcf('0xd'),'fields':['phone']},{'name':_0x0fcf('0xe'),'fields':[_0x0fcf('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xafc4=['priority','lodash','../../config/logger','moment','bluebird','request-promise','path','exports','define','CmHopper','cm_hopper','scheduledat','phone'];(function(_0x442f98,_0x31ec60){var _0x5e8c01=function(_0x3ca2a0){while(--_0x3ca2a0){_0x442f98['push'](_0x442f98['shift']());}};_0x5e8c01(++_0x31ec60);}(_0xafc4,0x69));var _0x4afc=function(_0x46cff9,_0x23d782){_0x46cff9=_0x46cff9-0x0;var _0x524120=_0xafc4[_0x46cff9];return _0x524120;};'use strict';var _=require(_0x4afc('0x0'));var util=require('util');var logger=require(_0x4afc('0x1'))('api');var moment=require(_0x4afc('0x2'));var BPromise=require(_0x4afc('0x3'));var rp=require(_0x4afc('0x4'));var fs=require('fs');var path=require(_0x4afc('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./cmHopper.attributes');module[_0x4afc('0x6')]=function(_0x471d45,_0x16953b){return _0x471d45[_0x4afc('0x7')](_0x4afc('0x8'),attributes,{'tableName':_0x4afc('0x9'),'paranoid':![],'indexes':[{'name':'scheduledat','fields':[_0x4afc('0xa')]},{'name':_0x4afc('0xb'),'fields':[_0x4afc('0xb')]},{'name':_0x4afc('0xc'),'fields':[_0x4afc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc97=['../../config/environment','jayson/promise','client','http','then','info','debug','CmHopper,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','CmHopper,\x20%s,\x20%s','message','result','catch','GetCmHopper','CmHopper','findAll','options','raw','where','attributes','map','include','model','ShowCmHopper','find','CreateCmHopper','create','body','update','limit','UpdateCmHopper','DestroyCmHopper','GetContactDialer','CmContact','describe','sequelize','transaction','order','LOCK','Contact','keys','User','Agent','name','voicePause','length','UserId','push','includes','all','MoveContactManagedDialer','destroy','COUNT','literal','`scheduledat`\x20>=\x20','\x22%s\x22','format','\x20,\x201,\x20null','contactsRescheduled','CountReScheduled','GetContactRecallMe','UPDATE','GetCmHopperPreview','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x4b90b7,_0x2b0ab0){var _0x36ac5f=function(_0x33662a){while(--_0x33662a){_0x4b90b7['push'](_0x4b90b7['shift']());}};_0x36ac5f(++_0x2b0ab0);}(_0xcc97,0x1b4));var _0x7cc9=function(_0x518045,_0x3077a2){_0x518045=_0x518045-0x0;var _0x1b7153=_0xcc97[_0x518045];return _0x1b7153;};'use strict';var _=require(_0x7cc9('0x0'));var util=require(_0x7cc9('0x1'));var moment=require(_0x7cc9('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7cc9('0x3'));var db=require(_0x7cc9('0x4'))['db'];var utils=require(_0x7cc9('0x5'));var logger=require(_0x7cc9('0x6'))(_0x7cc9('0x7'));var config=require(_0x7cc9('0x8'));var jayson=require(_0x7cc9('0x9'));var client=jayson[_0x7cc9('0xa')][_0x7cc9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x35f7b9,_0xe40ee8,_0x567bf7){return new BPromise(function(_0x15f201,_0x15327d){return client['request'](_0x35f7b9,_0x567bf7)[_0x7cc9('0xc')](function(_0x1bce9b){logger[_0x7cc9('0xd')]('CmHopper,\x20%s,\x20%s',_0xe40ee8,'request\x20sent');logger[_0x7cc9('0xe')](_0x7cc9('0xf'),_0xe40ee8,_0x7cc9('0x10'),JSON[_0x7cc9('0x11')](_0x1bce9b));if(_0x1bce9b[_0x7cc9('0x12')]){if(_0x1bce9b[_0x7cc9('0x12')][_0x7cc9('0x13')]===0x1f4){logger[_0x7cc9('0x12')](_0x7cc9('0x14'),_0xe40ee8,_0x1bce9b[_0x7cc9('0x12')][_0x7cc9('0x15')]);return _0x15327d(_0x1bce9b['error'][_0x7cc9('0x15')]);}logger[_0x7cc9('0x12')](_0x7cc9('0x14'),_0xe40ee8,_0x1bce9b[_0x7cc9('0x12')]['message']);return _0x15f201(_0x1bce9b[_0x7cc9('0x12')][_0x7cc9('0x15')]);}else{logger['info'](_0x7cc9('0x14'),_0xe40ee8,'request\x20sent');_0x15f201(_0x1bce9b[_0x7cc9('0x16')]['message']);}})[_0x7cc9('0x17')](function(_0x2c9ee7){logger[_0x7cc9('0x12')]('CmHopper,\x20%s,\x20%s',_0xe40ee8,_0x2c9ee7);_0x15327d(_0x2c9ee7);});});}exports[_0x7cc9('0x18')]=function(_0x474c48){var _0x3d1478=this;return new Promise(function(_0xe0ea31,_0x2f6e8b){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'raw':_0x474c48[_0x7cc9('0x1b')]?_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![],'where':_0x474c48[_0x7cc9('0x1b')]?_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x474c48[_0x7cc9('0x1b')]?_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0x474c48[_0x7cc9('0x1b')]?_0x474c48['options']['limit']||null:null,'include':_0x474c48['options']?_0x474c48['options']['include']?_[_0x7cc9('0x1f')](_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x20')],function(_0x4b353c){return{'model':db[_0x4b353c[_0x7cc9('0x21')]],'as':_0x4b353c['as'],'attributes':_0x4b353c[_0x7cc9('0x1e')],'include':_0x4b353c[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x4b353c[_0x7cc9('0x20')],function(_0x42f6b4){return{'model':db[_0x42f6b4['model']],'as':_0x42f6b4['as'],'attributes':_0x42f6b4[_0x7cc9('0x1e')],'include':_0x42f6b4['include']?_[_0x7cc9('0x1f')](_0x42f6b4[_0x7cc9('0x20')],function(_0x284c2a){return{'model':db[_0x284c2a[_0x7cc9('0x21')]],'as':_0x284c2a['as'],'attributes':_0x284c2a[_0x7cc9('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7cc9('0xc')](function(_0x5b5486){logger[_0x7cc9('0xd')](_0x7cc9('0x18'),_0x474c48);logger[_0x7cc9('0xe')](_0x7cc9('0x18'),_0x474c48,JSON['stringify'](_0x5b5486));_0xe0ea31(_0x5b5486);})[_0x7cc9('0x17')](function(_0x3b1a52){logger[_0x7cc9('0x12')](_0x7cc9('0x18'),_0x3b1a52[_0x7cc9('0x15')],_0x474c48);_0x2f6e8b(_0x3d1478[_0x7cc9('0x12')](0x1f4,_0x3b1a52[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x22')]=function(_0xa0d9fc){var _0x28b66c=this;return new Promise(function(_0x2255c4,_0x33822b){return db['CmHopper'][_0x7cc9('0x23')]({'raw':_0xa0d9fc[_0x7cc9('0x1b')]?_0xa0d9fc[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![],'where':_0xa0d9fc[_0x7cc9('0x1b')]?_0xa0d9fc[_0x7cc9('0x1b')]['where']||null:null,'attributes':_0xa0d9fc['options']?_0xa0d9fc['options'][_0x7cc9('0x1e')]||null:null,'include':_0xa0d9fc[_0x7cc9('0x1b')]?_0xa0d9fc[_0x7cc9('0x1b')][_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0xa0d9fc[_0x7cc9('0x1b')][_0x7cc9('0x20')],function(_0x54a910){return{'model':db[_0x54a910[_0x7cc9('0x21')]],'as':_0x54a910['as'],'attributes':_0x54a910[_0x7cc9('0x1e')],'include':_0x54a910[_0x7cc9('0x20')]?_['map'](_0x54a910[_0x7cc9('0x20')],function(_0x37bd3e){return{'model':db[_0x37bd3e['model']],'as':_0x37bd3e['as'],'attributes':_0x37bd3e[_0x7cc9('0x1e')],'include':_0x37bd3e['include']?_['map'](_0x37bd3e[_0x7cc9('0x20')],function(_0xe92346){return{'model':db[_0xe92346['model']],'as':_0xe92346['as'],'attributes':_0xe92346['attributes']};}):[]};}):[]};}):[]:[]})[_0x7cc9('0xc')](function(_0x36f90f){logger[_0x7cc9('0xd')](_0x7cc9('0x22'),_0xa0d9fc);logger['debug'](_0x7cc9('0x22'),_0xa0d9fc,JSON[_0x7cc9('0x11')](_0x36f90f));_0x2255c4(_0x36f90f);})[_0x7cc9('0x17')](function(_0x420a88){logger[_0x7cc9('0x12')]('ShowCmHopper',_0x420a88['message'],_0xa0d9fc);_0x33822b(_0x28b66c['error'](0x1f4,_0x420a88[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x24')]=function(_0x24ed84){var _0x126fff=this;return new Promise(function(_0x27ba74,_0xa782b4){return db[_0x7cc9('0x19')][_0x7cc9('0x25')](_0x24ed84[_0x7cc9('0x26')],{'raw':_0x24ed84[_0x7cc9('0x1b')]?_0x24ed84[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![]})[_0x7cc9('0xc')](function(_0x97f763){logger['info'](_0x7cc9('0x24'),_0x24ed84);logger[_0x7cc9('0xe')](_0x7cc9('0x24'),_0x24ed84,JSON[_0x7cc9('0x11')](_0x97f763));_0x27ba74(_0x97f763);})[_0x7cc9('0x17')](function(_0x4c9db9){logger[_0x7cc9('0x12')](_0x7cc9('0x24'),_0x4c9db9[_0x7cc9('0x15')],_0x24ed84);_0xa782b4(_0x126fff[_0x7cc9('0x12')](0x1f4,_0x4c9db9[_0x7cc9('0x15')]));});});};exports['UpdateCmHopper']=function(_0x1c1e80){var _0x55e1e8=this;return new Promise(function(_0x8c49b5,_0x3896c0){return db[_0x7cc9('0x19')][_0x7cc9('0x27')](_0x1c1e80[_0x7cc9('0x26')],{'raw':_0x1c1e80[_0x7cc9('0x1b')]?_0x1c1e80[_0x7cc9('0x1b')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1c1e80[_0x7cc9('0x1b')]?_0x1c1e80[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x1c1e80[_0x7cc9('0x1b')]?_0x1c1e80[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0x1c1e80['options']?_0x1c1e80[_0x7cc9('0x1b')][_0x7cc9('0x28')]||null:null})[_0x7cc9('0xc')](function(_0x5832f7){logger[_0x7cc9('0xd')](_0x7cc9('0x29'),_0x1c1e80);logger[_0x7cc9('0xe')]('UpdateCmHopper',_0x1c1e80,JSON[_0x7cc9('0x11')](_0x5832f7));_0x8c49b5(_0x5832f7);})[_0x7cc9('0x17')](function(_0x209fa8){logger[_0x7cc9('0x12')](_0x7cc9('0x29'),_0x209fa8[_0x7cc9('0x15')],_0x1c1e80);_0x3896c0(_0x55e1e8[_0x7cc9('0x12')](0x1f4,_0x209fa8[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x2a')]=function(_0x244c0d){var _0x52dda9=this;return new Promise(function(_0x681636,_0x259b91){return db[_0x7cc9('0x19')]['destroy']({'where':_0x244c0d[_0x7cc9('0x1b')]?_0x244c0d[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null})[_0x7cc9('0xc')](function(_0x5e8339){logger[_0x7cc9('0xd')](_0x7cc9('0x2a'),_0x244c0d);logger[_0x7cc9('0xe')](_0x7cc9('0x2a'),_0x244c0d,JSON[_0x7cc9('0x11')](_0x5e8339));_0x681636(_0x5e8339);})['catch'](function(_0x3aa1c4){logger[_0x7cc9('0x12')](_0x7cc9('0x2a'),_0x3aa1c4[_0x7cc9('0x15')],_0x244c0d);_0x259b91(_0x52dda9[_0x7cc9('0x12')](0x1f4,_0x3aa1c4[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x2b')]=function(_0xf0f5c2){var _0x397b57=this;return new Promise(function(_0x400248,_0x1b9f58){return db[_0x7cc9('0x2c')][_0x7cc9('0x2d')]()[_0x7cc9('0xc')](function(_0x1ddfd6){return db[_0x7cc9('0x2e')][_0x7cc9('0x2f')](function(_0x20fe07){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'where':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2['options']['where']||null:null,'attributes':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2[_0x7cc9('0x1b')][_0x7cc9('0x28')]||null:null,'order':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2[_0x7cc9('0x1b')][_0x7cc9('0x30')]||null:null,'transaction':_0x20fe07,'lock':_0x20fe07[_0x7cc9('0x31')]['UPDATE'],'include':[{'model':db[_0x7cc9('0x2c')],'as':_0x7cc9('0x32'),'attributes':_[_0x7cc9('0x33')](_0x1ddfd6)},{'model':db[_0x7cc9('0x34')],'as':_0x7cc9('0x35'),'attributes':['id',_0x7cc9('0x36'),_0x7cc9('0x37')]}]})[_0x7cc9('0xc')](function(_0x5d043a){var _0x1104a0=[];var _0x100732=[];for(var _0x60e46d=0x0;_0x60e46d<_0x5d043a[_0x7cc9('0x38')];_0x60e46d+=0x1){var _0x2cf9bc=_0x5d043a[_0x60e46d][_0x7cc9('0x39')];if(_0x2cf9bc===null){_0x1104a0[_0x7cc9('0x3a')](_0x5d043a[_0x60e46d][_0x7cc9('0x27')](_0xf0f5c2[_0x7cc9('0x26')],{'transaction':_0x20fe07}));}else if(!_0x100732[_0x7cc9('0x3b')](_0x2cf9bc)){_0x100732['push'](_0x2cf9bc);_0x1104a0['push'](_0x5d043a[_0x60e46d]['update'](_0xf0f5c2[_0x7cc9('0x26')],{'transaction':_0x20fe07}));}}return BPromise[_0x7cc9('0x3c')](_0x1104a0);});})[_0x7cc9('0xc')](function(_0x393708){logger[_0x7cc9('0xd')](_0x7cc9('0x2b'),_0xf0f5c2);logger[_0x7cc9('0xe')](_0x7cc9('0x2b'),_0xf0f5c2,JSON[_0x7cc9('0x11')](_0x393708));_0x400248(_0x393708);})['catch'](function(_0x5d4c6a){logger[_0x7cc9('0x12')]('GetContactDialer',_0x5d4c6a[_0x7cc9('0x15')],_0xf0f5c2);_0x1b9f58(_0x397b57[_0x7cc9('0x12')](0x1f4,_0x5d4c6a[_0x7cc9('0x15')]));});});});};exports[_0x7cc9('0x3d')]=function(_0x3ca4eb){var _0x3fe0af=this;return new Promise(function(_0xb34695,_0x3fa2bc){return db[_0x7cc9('0x2e')][_0x7cc9('0x2f')](function(_0x19702b){return db['CmHopperFinal']['create'](_0x3ca4eb[_0x7cc9('0x26')],{'raw':_0x3ca4eb[_0x7cc9('0x1b')]?_0x3ca4eb[_0x7cc9('0x1b')]['raw']===undefined?!![]:![]:!![],'transaction':_0x19702b})[_0x7cc9('0xc')](function(){return db[_0x7cc9('0x19')][_0x7cc9('0x3e')]({'where':_0x3ca4eb[_0x7cc9('0x1b')]?_0x3ca4eb[_0x7cc9('0x1b')]['where']||null:null,'transaction':_0x19702b});});})[_0x7cc9('0xc')](function(_0x5b168f){logger[_0x7cc9('0xd')]('MoveContactManagedDialer',_0x3ca4eb);logger['debug'](_0x7cc9('0x3d'),_0x3ca4eb,JSON[_0x7cc9('0x11')](_0x5b168f));_0xb34695(_0x5b168f);})[_0x7cc9('0x17')](function(_0x121cbd){logger[_0x7cc9('0x12')]('MoveContactManagedDialer',_0x121cbd['message'],_0x3ca4eb);_0x3fa2bc(_0x3fe0af['error'](0x1f4,_0x121cbd[_0x7cc9('0x15')]));});});};exports['CountReScheduled']=function(_0x356856){var _0x42999b=this;return new Promise(function(_0x3516b8,_0x56dd88){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'raw':_0x356856[_0x7cc9('0x1b')]?_0x356856[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![],'where':_0x356856[_0x7cc9('0x1b')]?_0x356856['options']['where']||null:null,'attributes':[[db['sequelize']['fn'](_0x7cc9('0x3f'),db[_0x7cc9('0x2e')]['fn']('IF',db[_0x7cc9('0x2e')][_0x7cc9('0x40')](_0x7cc9('0x41')+util['format'](_0x7cc9('0x42'),moment()[_0x7cc9('0x43')]('YYYY-MM-DD\x20HH:mm:ss'))+_0x7cc9('0x44')))),_0x7cc9('0x45')]]})[_0x7cc9('0xc')](function(_0x24ee58){logger[_0x7cc9('0xd')](_0x7cc9('0x46'),_0x356856);logger[_0x7cc9('0xe')](_0x7cc9('0x46'),_0x356856,JSON['stringify'](_0x24ee58));_0x3516b8(_0x24ee58);})[_0x7cc9('0x17')](function(_0x3a688a){logger[_0x7cc9('0x12')](_0x7cc9('0x46'),_0x3a688a[_0x7cc9('0x15')],_0x356856);_0x56dd88(_0x42999b[_0x7cc9('0x12')](0x1f4,_0x3a688a['message']));});});};exports[_0x7cc9('0x47')]=function(_0x2f7ede){var _0x2b3378=this;return new Promise(function(_0xa8d84,_0x188d46){return db['CmContact'][_0x7cc9('0x2d')]()[_0x7cc9('0xc')](function(_0xc941ca){return db[_0x7cc9('0x2e')]['transaction'](function(_0x42fddd){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'where':_0x2f7ede[_0x7cc9('0x1b')]?_0x2f7ede[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x2f7ede['options']?_0x2f7ede[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':0x1,'order':_0x2f7ede['options']?_0x2f7ede['options'][_0x7cc9('0x30')]||null:null,'group':db[_0x7cc9('0x19')][_0x7cc9('0x39')],'transaction':_0x42fddd,'lock':_0x42fddd[_0x7cc9('0x31')][_0x7cc9('0x48')],'include':_0x2f7ede[_0x7cc9('0x1b')]?_0x2f7ede[_0x7cc9('0x1b')]['include']?_['map'](_0x2f7ede['options'][_0x7cc9('0x20')],function(_0x156dde){return{'model':db[_0x156dde['model']],'as':_0x156dde['as'],'attributes':_0x156dde[_0x7cc9('0x1e')],'include':_0x156dde[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x156dde['include'],function(_0x579ff9){return{'model':db[_0x579ff9[_0x7cc9('0x21')]],'as':_0x579ff9['as'],'attributes':_0x579ff9['attributes'],'include':_0x579ff9[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x579ff9[_0x7cc9('0x20')],function(_0x4acbf5){return{'model':db[_0x4acbf5[_0x7cc9('0x21')]],'as':_0x4acbf5['as'],'attributes':_0x4acbf5[_0x7cc9('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7cc9('0xc')](function(_0x126724){var _0x98479c=[];for(var _0x3b06f6=0x0;_0x3b06f6<_0x126724['length'];_0x3b06f6+=0x1){_0x98479c[_0x7cc9('0x3a')](_0x126724[_0x3b06f6][_0x7cc9('0x27')](_0x2f7ede[_0x7cc9('0x26')],{'transaction':_0x42fddd}));}return BPromise[_0x7cc9('0x3c')](_0x98479c);});})[_0x7cc9('0xc')](function(_0x2cc5e5){logger['info']('GetContactRecallMe',_0x2f7ede);logger[_0x7cc9('0xe')](_0x7cc9('0x47'),_0x2f7ede,JSON[_0x7cc9('0x11')](_0x2cc5e5));_0xa8d84(_0x2cc5e5);})[_0x7cc9('0x17')](function(_0x873d8b){logger[_0x7cc9('0x12')](_0x7cc9('0x47'),_0x873d8b[_0x7cc9('0x15')],_0x2f7ede);_0x188d46(_0x2b3378['error'](0x1f4,_0x873d8b[_0x7cc9('0x15')]));});});});};exports[_0x7cc9('0x49')]=function(_0x10691b){var _0x23a289=this;return new Promise(function(_0x3a0151,_0x4c0182){db[_0x7cc9('0x2c')][_0x7cc9('0x2d')]()['then'](function(_0x48dd31){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'raw':_0x10691b[_0x7cc9('0x1b')]?_0x10691b[_0x7cc9('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x10691b[_0x7cc9('0x1b')]?_0x10691b[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x10691b[_0x7cc9('0x1b')]?_0x10691b[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0x10691b[_0x7cc9('0x1b')]?_0x10691b['options'][_0x7cc9('0x28')]||null:null,'include':_0x10691b['options']?_0x10691b['options'][_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x10691b[_0x7cc9('0x1b')]['include'],function(_0x12693d){return{'model':db[_0x12693d['model']],'as':_0x12693d['as'],'attributes':_0x12693d['as']==='Contact'?_[_0x7cc9('0x33')](_0x48dd31):_0x12693d[_0x7cc9('0x1e')],'include':_0x12693d[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x12693d[_0x7cc9('0x20')],function(_0x26f2fa){return{'model':db[_0x26f2fa[_0x7cc9('0x21')]],'as':_0x26f2fa['as'],'attributes':_0x26f2fa[_0x7cc9('0x1e')],'include':_0x26f2fa[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x26f2fa[_0x7cc9('0x20')],function(_0x338c71){return{'model':db[_0x338c71[_0x7cc9('0x21')]],'as':_0x338c71['as'],'attributes':_0x338c71[_0x7cc9('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x866251){logger[_0x7cc9('0xd')](_0x7cc9('0x18'),_0x10691b);logger[_0x7cc9('0xe')](_0x7cc9('0x18'),_0x10691b,JSON[_0x7cc9('0x11')](_0x866251));_0x3a0151(_0x866251);})[_0x7cc9('0x17')](function(_0x1f4dff){logger[_0x7cc9('0x12')]('GetCmHopper',_0x1f4dff[_0x7cc9('0x15')],_0x10691b);_0x4c0182(_0x23a289[_0x7cc9('0x12')](0x1f4,_0x1f4dff[_0x7cc9('0x15')]));});});});};
\ No newline at end of file
+var _0xea17=['raw','where','limit','include','model','attributes','map','GetCmHopper','stringify','find','ShowCmHopper','create','body','CreateCmHopper','UpdateCmHopper','update','DestroyCmHopper','GetContactDialer','CmContact','transaction','findAll','order','Contact','User','Agent','name','voicePause','length','UserId','includes','all','sequelize','CmHopperFinal','MoveContactManagedDialer','COUNT','literal','`scheduledat`\x20>=\x20','format','\x20,\x201,\x20null','contactsRescheduled','CountReScheduled','GetContactRecallMe','describe','LOCK','push','GetCmHopperPreview','keys','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','error','message','result','catch','CmHopper','options'];(function(_0x2feb53,_0x264ef7){var _0x5700ee=function(_0x700c98){while(--_0x700c98){_0x2feb53['push'](_0x2feb53['shift']());}};_0x5700ee(++_0x264ef7);}(_0xea17,0x14f));var _0x7ea1=function(_0x26b668,_0x336f8d){_0x26b668=_0x26b668-0x0;var _0x473231=_0xea17[_0x26b668];return _0x473231;};'use strict';var _=require(_0x7ea1('0x0'));var util=require(_0x7ea1('0x1'));var moment=require(_0x7ea1('0x2'));var BPromise=require(_0x7ea1('0x3'));var rs=require(_0x7ea1('0x4'));var fs=require('fs');var Redis=require(_0x7ea1('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x7ea1('0x6'));var logger=require(_0x7ea1('0x7'))(_0x7ea1('0x8'));var config=require(_0x7ea1('0x9'));var jayson=require(_0x7ea1('0xa'));var client=jayson[_0x7ea1('0xb')][_0x7ea1('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x378727,_0xadda97,_0x191caa){return new BPromise(function(_0x2c7188,_0x1c8fa7){return client[_0x7ea1('0xd')](_0x378727,_0x191caa)[_0x7ea1('0xe')](function(_0xb663af){logger[_0x7ea1('0xf')](_0x7ea1('0x10'),_0xadda97,_0x7ea1('0x11'));logger[_0x7ea1('0x12')]('CmHopper,\x20%s,\x20%s,\x20%s',_0xadda97,_0x7ea1('0x11'),JSON['stringify'](_0xb663af));if(_0xb663af['error']){if(_0xb663af[_0x7ea1('0x13')]['code']===0x1f4){logger[_0x7ea1('0x13')]('CmHopper,\x20%s,\x20%s',_0xadda97,_0xb663af[_0x7ea1('0x13')][_0x7ea1('0x14')]);return _0x1c8fa7(_0xb663af[_0x7ea1('0x13')]['message']);}logger['error'](_0x7ea1('0x10'),_0xadda97,_0xb663af[_0x7ea1('0x13')][_0x7ea1('0x14')]);return _0x2c7188(_0xb663af[_0x7ea1('0x13')][_0x7ea1('0x14')]);}else{logger['info'](_0x7ea1('0x10'),_0xadda97,_0x7ea1('0x11'));_0x2c7188(_0xb663af[_0x7ea1('0x15')][_0x7ea1('0x14')]);}})[_0x7ea1('0x16')](function(_0x1a5934){logger['error'](_0x7ea1('0x10'),_0xadda97,_0x1a5934);_0x1c8fa7(_0x1a5934);});});}exports['GetCmHopper']=function(_0x2807b5){var _0x26e446=this;return new Promise(function(_0x30df71,_0x2206e3){return db[_0x7ea1('0x17')]['findAll']({'raw':_0x2807b5[_0x7ea1('0x18')]?_0x2807b5[_0x7ea1('0x18')][_0x7ea1('0x19')]===undefined?!![]:![]:!![],'where':_0x2807b5[_0x7ea1('0x18')]?_0x2807b5['options'][_0x7ea1('0x1a')]||null:null,'attributes':_0x2807b5[_0x7ea1('0x18')]?_0x2807b5[_0x7ea1('0x18')]['attributes']||null:null,'limit':_0x2807b5[_0x7ea1('0x18')]?_0x2807b5[_0x7ea1('0x18')][_0x7ea1('0x1b')]||null:null,'include':_0x2807b5[_0x7ea1('0x18')]?_0x2807b5[_0x7ea1('0x18')][_0x7ea1('0x1c')]?_['map'](_0x2807b5[_0x7ea1('0x18')][_0x7ea1('0x1c')],function(_0x506bf2){return{'model':db[_0x506bf2[_0x7ea1('0x1d')]],'as':_0x506bf2['as'],'attributes':_0x506bf2[_0x7ea1('0x1e')],'include':_0x506bf2[_0x7ea1('0x1c')]?_['map'](_0x506bf2['include'],function(_0x363802){return{'model':db[_0x363802['model']],'as':_0x363802['as'],'attributes':_0x363802[_0x7ea1('0x1e')],'include':_0x363802[_0x7ea1('0x1c')]?_[_0x7ea1('0x1f')](_0x363802[_0x7ea1('0x1c')],function(_0x1ee0ae){return{'model':db[_0x1ee0ae['model']],'as':_0x1ee0ae['as'],'attributes':_0x1ee0ae['attributes']};}):[]};}):[]};}):[]:[]})[_0x7ea1('0xe')](function(_0x38ca27){logger[_0x7ea1('0xf')](_0x7ea1('0x20'),_0x2807b5);logger['debug'](_0x7ea1('0x20'),_0x2807b5,JSON[_0x7ea1('0x21')](_0x38ca27));_0x30df71(_0x38ca27);})['catch'](function(_0x2e5df9){logger['error'](_0x7ea1('0x20'),_0x2e5df9[_0x7ea1('0x14')],_0x2807b5);_0x2206e3(_0x26e446[_0x7ea1('0x13')](0x1f4,_0x2e5df9[_0x7ea1('0x14')]));});});};exports['ShowCmHopper']=function(_0x10e2a7){var _0x89e6a1=this;return new Promise(function(_0x56e412,_0x471c9b){return db['CmHopper'][_0x7ea1('0x22')]({'raw':_0x10e2a7[_0x7ea1('0x18')]?_0x10e2a7['options']['raw']===undefined?!![]:![]:!![],'where':_0x10e2a7[_0x7ea1('0x18')]?_0x10e2a7[_0x7ea1('0x18')][_0x7ea1('0x1a')]||null:null,'attributes':_0x10e2a7['options']?_0x10e2a7[_0x7ea1('0x18')]['attributes']||null:null,'include':_0x10e2a7[_0x7ea1('0x18')]?_0x10e2a7[_0x7ea1('0x18')][_0x7ea1('0x1c')]?_[_0x7ea1('0x1f')](_0x10e2a7['options'][_0x7ea1('0x1c')],function(_0x580a64){return{'model':db[_0x580a64[_0x7ea1('0x1d')]],'as':_0x580a64['as'],'attributes':_0x580a64[_0x7ea1('0x1e')],'include':_0x580a64['include']?_[_0x7ea1('0x1f')](_0x580a64[_0x7ea1('0x1c')],function(_0x14e188){return{'model':db[_0x14e188[_0x7ea1('0x1d')]],'as':_0x14e188['as'],'attributes':_0x14e188[_0x7ea1('0x1e')],'include':_0x14e188['include']?_[_0x7ea1('0x1f')](_0x14e188[_0x7ea1('0x1c')],function(_0x961817){return{'model':db[_0x961817[_0x7ea1('0x1d')]],'as':_0x961817['as'],'attributes':_0x961817[_0x7ea1('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7ea1('0xe')](function(_0x4f1d6f){logger['info']('ShowCmHopper',_0x10e2a7);logger[_0x7ea1('0x12')](_0x7ea1('0x23'),_0x10e2a7,JSON[_0x7ea1('0x21')](_0x4f1d6f));_0x56e412(_0x4f1d6f);})[_0x7ea1('0x16')](function(_0x1714bb){logger[_0x7ea1('0x13')]('ShowCmHopper',_0x1714bb[_0x7ea1('0x14')],_0x10e2a7);_0x471c9b(_0x89e6a1[_0x7ea1('0x13')](0x1f4,_0x1714bb[_0x7ea1('0x14')]));});});};exports['CreateCmHopper']=function(_0x51bf92){var _0x1eeec5=this;return new Promise(function(_0x4b2d4a,_0x40efb7){return db[_0x7ea1('0x17')][_0x7ea1('0x24')](_0x51bf92[_0x7ea1('0x25')],{'raw':_0x51bf92['options']?_0x51bf92[_0x7ea1('0x18')][_0x7ea1('0x19')]===undefined?!![]:![]:!![]})[_0x7ea1('0xe')](function(_0x19870e){logger['info'](_0x7ea1('0x26'),_0x51bf92);logger[_0x7ea1('0x12')](_0x7ea1('0x26'),_0x51bf92,JSON[_0x7ea1('0x21')](_0x19870e));_0x4b2d4a(_0x19870e);})[_0x7ea1('0x16')](function(_0x43ee5f){logger['error'](_0x7ea1('0x26'),_0x43ee5f[_0x7ea1('0x14')],_0x51bf92);_0x40efb7(_0x1eeec5[_0x7ea1('0x13')](0x1f4,_0x43ee5f['message']));});});};exports[_0x7ea1('0x27')]=function(_0x12f4c9){var _0x323c2f=this;return new Promise(function(_0x4c50d2,_0xcb5407){return db[_0x7ea1('0x17')][_0x7ea1('0x28')](_0x12f4c9[_0x7ea1('0x25')],{'raw':_0x12f4c9['options']?_0x12f4c9['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x12f4c9[_0x7ea1('0x18')]?_0x12f4c9[_0x7ea1('0x18')][_0x7ea1('0x1a')]||null:null,'attributes':_0x12f4c9[_0x7ea1('0x18')]?_0x12f4c9[_0x7ea1('0x18')][_0x7ea1('0x1e')]||null:null,'limit':_0x12f4c9[_0x7ea1('0x18')]?_0x12f4c9['options']['limit']||null:null})[_0x7ea1('0xe')](function(_0x10baf3){logger[_0x7ea1('0xf')](_0x7ea1('0x27'),_0x12f4c9);logger[_0x7ea1('0x12')](_0x7ea1('0x27'),_0x12f4c9,JSON[_0x7ea1('0x21')](_0x10baf3));_0x4c50d2(_0x10baf3);})['catch'](function(_0x20d447){logger[_0x7ea1('0x13')](_0x7ea1('0x27'),_0x20d447[_0x7ea1('0x14')],_0x12f4c9);_0xcb5407(_0x323c2f[_0x7ea1('0x13')](0x1f4,_0x20d447[_0x7ea1('0x14')]));});});};exports['DestroyCmHopper']=function(_0x4b34e5){var _0x62418f=this;return new Promise(function(_0x4b7f24,_0xe59219){return db[_0x7ea1('0x17')]['destroy']({'where':_0x4b34e5[_0x7ea1('0x18')]?_0x4b34e5[_0x7ea1('0x18')][_0x7ea1('0x1a')]||null:null})[_0x7ea1('0xe')](function(_0x4112b2){logger[_0x7ea1('0xf')]('DestroyCmHopper',_0x4b34e5);logger['debug'](_0x7ea1('0x29'),_0x4b34e5,JSON['stringify'](_0x4112b2));_0x4b7f24(_0x4112b2);})[_0x7ea1('0x16')](function(_0x384939){logger[_0x7ea1('0x13')]('DestroyCmHopper',_0x384939['message'],_0x4b34e5);_0xe59219(_0x62418f[_0x7ea1('0x13')](0x1f4,_0x384939[_0x7ea1('0x14')]));});});};exports[_0x7ea1('0x2a')]=function(_0x41969e){var _0x1de6e9=this;return new Promise(function(_0xd1289a,_0x53bed1){return db[_0x7ea1('0x2b')]['describe']()[_0x7ea1('0xe')](function(_0x4d97f8){return db['sequelize'][_0x7ea1('0x2c')](function(_0x17914e){return db['CmHopper'][_0x7ea1('0x2d')]({'where':_0x41969e[_0x7ea1('0x18')]?_0x41969e[_0x7ea1('0x18')][_0x7ea1('0x1a')]||null:null,'attributes':_0x41969e['options']?_0x41969e[_0x7ea1('0x18')][_0x7ea1('0x1e')]||null:null,'limit':_0x41969e['options']?_0x41969e[_0x7ea1('0x18')]['limit']||null:null,'order':_0x41969e[_0x7ea1('0x18')]?_0x41969e[_0x7ea1('0x18')][_0x7ea1('0x2e')]||null:null,'transaction':_0x17914e,'lock':_0x17914e['LOCK']['UPDATE'],'include':[{'model':db[_0x7ea1('0x2b')],'as':_0x7ea1('0x2f'),'attributes':_['keys'](_0x4d97f8)},{'model':db[_0x7ea1('0x30')],'as':_0x7ea1('0x31'),'attributes':['id',_0x7ea1('0x32'),_0x7ea1('0x33')]}]})['then'](function(_0x2b4258){var _0x2419fb=[];var _0x435dea=[];for(var _0x1f68e2=0x0;_0x1f68e2<_0x2b4258[_0x7ea1('0x34')];_0x1f68e2+=0x1){var _0x1401e1=_0x2b4258[_0x1f68e2][_0x7ea1('0x35')];if(_0x1401e1===null){_0x2419fb['push'](_0x2b4258[_0x1f68e2]['update'](_0x41969e[_0x7ea1('0x25')],{'transaction':_0x17914e}));}else if(!_0x435dea[_0x7ea1('0x36')](_0x1401e1)){_0x435dea['push'](_0x1401e1);_0x2419fb['push'](_0x2b4258[_0x1f68e2][_0x7ea1('0x28')](_0x41969e['body'],{'transaction':_0x17914e}));}}return BPromise[_0x7ea1('0x37')](_0x2419fb);});})[_0x7ea1('0xe')](function(_0x3d2572){logger[_0x7ea1('0xf')](_0x7ea1('0x2a'),_0x41969e);logger['debug']('GetContactDialer',_0x41969e,JSON[_0x7ea1('0x21')](_0x3d2572));_0xd1289a(_0x3d2572);})[_0x7ea1('0x16')](function(_0x2386fb){logger[_0x7ea1('0x13')](_0x7ea1('0x2a'),_0x2386fb[_0x7ea1('0x14')],_0x41969e);_0x53bed1(_0x1de6e9['error'](0x1f4,_0x2386fb[_0x7ea1('0x14')]));});});});};exports['MoveContactManagedDialer']=function(_0x55f658){var _0x21fecf=this;return new Promise(function(_0x346099,_0x591721){return db[_0x7ea1('0x38')][_0x7ea1('0x2c')](function(_0x428c75){return db[_0x7ea1('0x39')][_0x7ea1('0x24')](_0x55f658['body'],{'raw':_0x55f658[_0x7ea1('0x18')]?_0x55f658['options'][_0x7ea1('0x19')]===undefined?!![]:![]:!![],'transaction':_0x428c75})[_0x7ea1('0xe')](function(){return db[_0x7ea1('0x17')]['destroy']({'where':_0x55f658[_0x7ea1('0x18')]?_0x55f658[_0x7ea1('0x18')][_0x7ea1('0x1a')]||null:null,'transaction':_0x428c75});});})[_0x7ea1('0xe')](function(_0x69f4dc){logger[_0x7ea1('0xf')](_0x7ea1('0x3a'),_0x55f658);logger['debug']('MoveContactManagedDialer',_0x55f658,JSON[_0x7ea1('0x21')](_0x69f4dc));_0x346099(_0x69f4dc);})[_0x7ea1('0x16')](function(_0x4d2614){logger[_0x7ea1('0x13')]('MoveContactManagedDialer',_0x4d2614['message'],_0x55f658);_0x591721(_0x21fecf[_0x7ea1('0x13')](0x1f4,_0x4d2614[_0x7ea1('0x14')]));});});};exports['CountReScheduled']=function(_0x1cc904){var _0x2073eb=this;return new Promise(function(_0x10fba1,_0x4b3bad){return db['CmHopper'][_0x7ea1('0x2d')]({'raw':_0x1cc904[_0x7ea1('0x18')]?_0x1cc904['options']['raw']===undefined?!![]:![]:!![],'where':_0x1cc904[_0x7ea1('0x18')]?_0x1cc904[_0x7ea1('0x18')]['where']||null:null,'attributes':[[db[_0x7ea1('0x38')]['fn'](_0x7ea1('0x3b'),db['sequelize']['fn']('IF',db['sequelize'][_0x7ea1('0x3c')](_0x7ea1('0x3d')+util['format']('\x22%s\x22',moment()[_0x7ea1('0x3e')]('YYYY-MM-DD\x20HH:mm:ss'))+_0x7ea1('0x3f')))),_0x7ea1('0x40')]]})[_0x7ea1('0xe')](function(_0x3702f1){logger[_0x7ea1('0xf')](_0x7ea1('0x41'),_0x1cc904);logger[_0x7ea1('0x12')](_0x7ea1('0x41'),_0x1cc904,JSON[_0x7ea1('0x21')](_0x3702f1));_0x10fba1(_0x3702f1);})['catch'](function(_0x1480c2){logger['error']('CountReScheduled',_0x1480c2[_0x7ea1('0x14')],_0x1cc904);_0x4b3bad(_0x2073eb[_0x7ea1('0x13')](0x1f4,_0x1480c2[_0x7ea1('0x14')]));});});};exports[_0x7ea1('0x42')]=function(_0x2096d6){var _0x51c5ff=this;return new Promise(function(_0x2294b8,_0x2a66ce){return db[_0x7ea1('0x2b')][_0x7ea1('0x43')]()['then'](function(_0x1c619f){return db[_0x7ea1('0x38')]['transaction'](function(_0x3052a3){return db[_0x7ea1('0x17')][_0x7ea1('0x2d')]({'where':_0x2096d6['options']?_0x2096d6[_0x7ea1('0x18')][_0x7ea1('0x1a')]||null:null,'attributes':_0x2096d6[_0x7ea1('0x18')]?_0x2096d6[_0x7ea1('0x18')][_0x7ea1('0x1e')]||null:null,'limit':0x1,'order':_0x2096d6['options']?_0x2096d6[_0x7ea1('0x18')][_0x7ea1('0x2e')]||null:null,'group':db[_0x7ea1('0x17')]['UserId'],'transaction':_0x3052a3,'lock':_0x3052a3[_0x7ea1('0x44')]['UPDATE'],'include':_0x2096d6[_0x7ea1('0x18')]?_0x2096d6[_0x7ea1('0x18')]['include']?_[_0x7ea1('0x1f')](_0x2096d6[_0x7ea1('0x18')]['include'],function(_0xecdd3e){return{'model':db[_0xecdd3e[_0x7ea1('0x1d')]],'as':_0xecdd3e['as'],'attributes':_0xecdd3e[_0x7ea1('0x1e')],'include':_0xecdd3e[_0x7ea1('0x1c')]?_[_0x7ea1('0x1f')](_0xecdd3e[_0x7ea1('0x1c')],function(_0x105fc0){return{'model':db[_0x105fc0['model']],'as':_0x105fc0['as'],'attributes':_0x105fc0['attributes'],'include':_0x105fc0['include']?_['map'](_0x105fc0[_0x7ea1('0x1c')],function(_0x265bc9){return{'model':db[_0x265bc9[_0x7ea1('0x1d')]],'as':_0x265bc9['as'],'attributes':_0x265bc9[_0x7ea1('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7ea1('0xe')](function(_0x386be4){var _0xbd2cf1=[];for(var _0x44f3a8=0x0;_0x44f3a8<_0x386be4['length'];_0x44f3a8+=0x1){_0xbd2cf1[_0x7ea1('0x45')](_0x386be4[_0x44f3a8][_0x7ea1('0x28')](_0x2096d6[_0x7ea1('0x25')],{'transaction':_0x3052a3}));}return BPromise[_0x7ea1('0x37')](_0xbd2cf1);});})[_0x7ea1('0xe')](function(_0x39b867){logger[_0x7ea1('0xf')](_0x7ea1('0x42'),_0x2096d6);logger[_0x7ea1('0x12')](_0x7ea1('0x42'),_0x2096d6,JSON[_0x7ea1('0x21')](_0x39b867));_0x2294b8(_0x39b867);})['catch'](function(_0xe64ea2){logger['error'](_0x7ea1('0x42'),_0xe64ea2[_0x7ea1('0x14')],_0x2096d6);_0x2a66ce(_0x51c5ff[_0x7ea1('0x13')](0x1f4,_0xe64ea2['message']));});});});};exports[_0x7ea1('0x46')]=function(_0x48fc55){var _0x121464=this;return new Promise(function(_0xf332d4,_0x3dd9a2){db['CmContact'][_0x7ea1('0x43')]()[_0x7ea1('0xe')](function(_0xaa75b5){return db[_0x7ea1('0x17')][_0x7ea1('0x2d')]({'raw':_0x48fc55['options']?_0x48fc55[_0x7ea1('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x48fc55['options']?_0x48fc55[_0x7ea1('0x18')][_0x7ea1('0x1a')]||null:null,'attributes':_0x48fc55['options']?_0x48fc55[_0x7ea1('0x18')][_0x7ea1('0x1e')]||null:null,'limit':_0x48fc55['options']?_0x48fc55[_0x7ea1('0x18')][_0x7ea1('0x1b')]||null:null,'include':_0x48fc55['options']?_0x48fc55[_0x7ea1('0x18')][_0x7ea1('0x1c')]?_[_0x7ea1('0x1f')](_0x48fc55[_0x7ea1('0x18')][_0x7ea1('0x1c')],function(_0x2f307f){return{'model':db[_0x2f307f['model']],'as':_0x2f307f['as'],'attributes':_0x2f307f['as']===_0x7ea1('0x2f')?_[_0x7ea1('0x47')](_0xaa75b5):_0x2f307f[_0x7ea1('0x1e')],'include':_0x2f307f[_0x7ea1('0x1c')]?_[_0x7ea1('0x1f')](_0x2f307f[_0x7ea1('0x1c')],function(_0x348cef){return{'model':db[_0x348cef[_0x7ea1('0x1d')]],'as':_0x348cef['as'],'attributes':_0x348cef[_0x7ea1('0x1e')],'include':_0x348cef[_0x7ea1('0x1c')]?_[_0x7ea1('0x1f')](_0x348cef[_0x7ea1('0x1c')],function(_0x2bfd7c){return{'model':db[_0x2bfd7c[_0x7ea1('0x1d')]],'as':_0x2bfd7c['as'],'attributes':_0x2bfd7c[_0x7ea1('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7ea1('0xe')](function(_0x199d93){logger[_0x7ea1('0xf')](_0x7ea1('0x20'),_0x48fc55);logger[_0x7ea1('0x12')](_0x7ea1('0x20'),_0x48fc55,JSON[_0x7ea1('0x21')](_0x199d93));_0xf332d4(_0x199d93);})[_0x7ea1('0x16')](function(_0x1fef53){logger[_0x7ea1('0x13')]('GetCmHopper',_0x1fef53[_0x7ea1('0x14')],_0x48fc55);_0x3dd9a2(_0x121464[_0x7ea1('0x13')](0x1f4,_0x1fef53['message']));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde61=['/describe','describe','/opencontacts','getOpenContacts','/:id','post','create','/preview','getPreview','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./cmHopper.controller','get','isAuthenticated','index'];(function(_0x50700a,_0x3cfa24){var _0x93612c=function(_0x3bd5c0){while(--_0x3bd5c0){_0x50700a['push'](_0x50700a['shift']());}};_0x93612c(++_0x3cfa24);}(_0xde61,0x1cf));var _0x1de6=function(_0x1124e6,_0x5db98a){_0x1124e6=_0x1124e6-0x0;var _0x2c7735=_0xde61[_0x1124e6];return _0x2c7735;};'use strict';var multer=require(_0x1de6('0x0'));var util=require(_0x1de6('0x1'));var path=require(_0x1de6('0x2'));var timeout=require(_0x1de6('0x3'));var express=require(_0x1de6('0x4'));var router=express[_0x1de6('0x5')]();var fs_extra=require(_0x1de6('0x6'));var auth=require(_0x1de6('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x1de6('0x8'));router[_0x1de6('0x9')]('/',auth[_0x1de6('0xa')](),controller[_0x1de6('0xb')]);router[_0x1de6('0x9')](_0x1de6('0xc'),auth[_0x1de6('0xa')](),controller[_0x1de6('0xd')]);router[_0x1de6('0x9')](_0x1de6('0xe'),auth['isAuthenticated'](),controller[_0x1de6('0xf')]);router[_0x1de6('0x9')](_0x1de6('0x10'),auth['isAuthenticated'](),controller['show']);router[_0x1de6('0x11')]('/',auth[_0x1de6('0xa')](),controller[_0x1de6('0x12')]);router[_0x1de6('0x11')](_0x1de6('0x13'),auth[_0x1de6('0xa')](),controller[_0x1de6('0x14')]);router[_0x1de6('0x15')]('/:id',auth[_0x1de6('0xa')](),controller[_0x1de6('0x16')]);router[_0x1de6('0x17')](_0x1de6('0x10'),auth[_0x1de6('0xa')](),controller[_0x1de6('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0xc61f=['update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./cmHopper.controller','get','index','/describe','describe','getOpenContacts','/:id','isAuthenticated','show','post','create','/preview','getPreview','put'];(function(_0x1320fd,_0x2d576c){var _0x581e22=function(_0x15199f){while(--_0x15199f){_0x1320fd['push'](_0x1320fd['shift']());}};_0x581e22(++_0x2d576c);}(_0xc61f,0xf7));var _0xfc61=function(_0x2f58c4,_0x329d7d){_0x2f58c4=_0x2f58c4-0x0;var _0x11dbca=_0xc61f[_0x2f58c4];return _0x11dbca;};'use strict';var multer=require(_0xfc61('0x0'));var util=require(_0xfc61('0x1'));var path=require(_0xfc61('0x2'));var timeout=require(_0xfc61('0x3'));var express=require(_0xfc61('0x4'));var router=express[_0xfc61('0x5')]();var fs_extra=require(_0xfc61('0x6'));var auth=require(_0xfc61('0x7'));var interaction=require(_0xfc61('0x8'));var config=require('../../config/environment');var controller=require(_0xfc61('0x9'));router[_0xfc61('0xa')]('/',auth['isAuthenticated'](),controller[_0xfc61('0xb')]);router[_0xfc61('0xa')](_0xfc61('0xc'),auth['isAuthenticated'](),controller[_0xfc61('0xd')]);router[_0xfc61('0xa')]('/opencontacts',auth['isAuthenticated'](),controller[_0xfc61('0xe')]);router['get'](_0xfc61('0xf'),auth[_0xfc61('0x10')](),controller[_0xfc61('0x11')]);router[_0xfc61('0x12')]('/',auth['isAuthenticated'](),controller[_0xfc61('0x13')]);router[_0xfc61('0x12')](_0xfc61('0x14'),auth[_0xfc61('0x10')](),controller[_0xfc61('0x15')]);router[_0xfc61('0x16')](_0xfc61('0xf'),auth[_0xfc61('0x10')](),controller[_0xfc61('0x17')]);router[_0xfc61('0x18')](_0xfc61('0xf'),auth[_0xfc61('0x10')](),controller[_0xfc61('0x19')]);module[_0xfc61('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb36=['contactListQueue','sequelize','exports','STRING','INTEGER'];(function(_0x3df09e,_0x1caac4){var _0x16763b=function(_0x21ca24){while(--_0x21ca24){_0x3df09e['push'](_0x3df09e['shift']());}};_0x16763b(++_0x1caac4);}(_0xbb36,0x92));var _0x6bb3=function(_0x2283a8,_0x536cda){_0x2283a8=_0x2283a8-0x0;var _0x4a03c1=_0xbb36[_0x2283a8];return _0x4a03c1;};'use strict';var moment=require('moment');var Sequelize=require(_0x6bb3('0x0'));module[_0x6bb3('0x1')]={'phone':{'type':Sequelize[_0x6bb3('0x2')],'allowNull':![]},'ContactId':{'type':Sequelize[_0x6bb3('0x3')],'unique':_0x6bb3('0x4')},'ListId':{'type':Sequelize[_0x6bb3('0x3')],'unique':_0x6bb3('0x4')},'VoiceQueueId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'}};
\ No newline at end of file
+var _0x950a=['STRING','contactListQueue','INTEGER','moment','sequelize','exports'];(function(_0x292e9e,_0x3343c1){var _0x16412c=function(_0x429b0b){while(--_0x429b0b){_0x292e9e['push'](_0x292e9e['shift']());}};_0x16412c(++_0x3343c1);}(_0x950a,0x111));var _0xa950=function(_0x5b3996,_0x43bb21){_0x5b3996=_0x5b3996-0x0;var _0x46590c=_0x950a[_0x5b3996];return _0x46590c;};'use strict';var moment=require(_0xa950('0x0'));var Sequelize=require(_0xa950('0x1'));module[_0xa950('0x2')]={'phone':{'type':Sequelize[_0xa950('0x3')],'allowNull':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':_0xa950('0x4')},'ListId':{'type':Sequelize[_0xa950('0x5')],'unique':_0xa950('0x4')},'VoiceQueueId':{'type':Sequelize[_0xa950('0x5')],'unique':'contactListQueue'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf76d=['sendStatus','error','stack','name','send','map','CmHopperBlack','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','keys','length','include','options','update','body','find','describe','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then'];(function(_0x116c04,_0x4963da){var _0x9e011d=function(_0x143880){while(--_0x143880){_0x116c04['push'](_0x116c04['shift']());}};_0x9e011d(++_0x4963da);}(_0xf76d,0xc1));var _0xdf76=function(_0x133277,_0xb1d6b2){_0x133277=_0x133277-0x0;var _0x5b4a22=_0xf76d[_0x133277];return _0x5b4a22;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xdf76('0x0'));var zipdir=require(_0xdf76('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdf76('0x2'));var moment=require(_0xdf76('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xdf76('0x4'));var util=require(_0xdf76('0x5'));var path=require(_0xdf76('0x6'));var sox=require(_0xdf76('0x7'));var csv=require(_0xdf76('0x8'));var ejs=require(_0xdf76('0x9'));var fs=require('fs');var fs_extra=require(_0xdf76('0xa'));var _=require(_0xdf76('0xb'));var squel=require(_0xdf76('0xc'));var crypto=require(_0xdf76('0xd'));var jsforce=require(_0xdf76('0xe'));var deskjs=require(_0xdf76('0xf'));var toCsv=require(_0xdf76('0x8'));var querystring=require('querystring');var Papa=require(_0xdf76('0x10'));var Redis=require('ioredis');var authService=require(_0xdf76('0x11'));var qs=require(_0xdf76('0x12'));var as=require(_0xdf76('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdf76('0x14'))('api');var utils=require(_0xdf76('0x15'));var config=require(_0xdf76('0x16'));var licenseUtil=require(_0xdf76('0x17'));var db=require(_0xdf76('0x18'))['db'];function respondWithStatusCode(_0x1e89b1,_0x37287c){_0x37287c=_0x37287c||0xcc;return function(_0x15cf3d){if(_0x15cf3d){return _0x1e89b1['sendStatus'](_0x37287c);}return _0x1e89b1[_0xdf76('0x19')](_0x37287c)[_0xdf76('0x1a')]();};}function respondWithResult(_0x3c0fa2,_0x50e242){_0x50e242=_0x50e242||0xc8;return function(_0x5d2445){if(_0x5d2445){return _0x3c0fa2[_0xdf76('0x19')](_0x50e242)[_0xdf76('0x1b')](_0x5d2445);}};}function respondWithFilteredResult(_0x5b94d2,_0x3abe7f){return function(_0x1c7475){if(_0x1c7475){var _0x1fbafd=typeof _0x3abe7f[_0xdf76('0x1c')]===_0xdf76('0x1d')&&typeof _0x3abe7f['limit']===_0xdf76('0x1d');var _0x5d7a93=_0x1c7475[_0xdf76('0x1e')];var _0x5b30cb=_0x1fbafd?0x0:_0x3abe7f['offset'];var _0x4337f0=_0x1fbafd?_0x1c7475['count']:_0x3abe7f[_0xdf76('0x1c')]+_0x3abe7f[_0xdf76('0x1f')];var _0x114248;if(_0x4337f0>=_0x5d7a93){_0x4337f0=_0x5d7a93;_0x114248=0xc8;}else{_0x114248=0xce;}_0x5b94d2[_0xdf76('0x19')](_0x114248);return _0x5b94d2[_0xdf76('0x20')](_0xdf76('0x21'),_0x5b30cb+'-'+_0x4337f0+'/'+_0x5d7a93)[_0xdf76('0x1b')](_0x1c7475);}return null;};}function patchUpdates(_0x5bf9c6){return function(_0x22fdff){try{jsonpatch[_0xdf76('0x22')](_0x22fdff,_0x5bf9c6,!![]);}catch(_0x2b44e3){return BPromise[_0xdf76('0x23')](_0x2b44e3);}return _0x22fdff[_0xdf76('0x24')]();};}function saveUpdates(_0x299598,_0x42f73b){return function(_0x23339a){if(_0x23339a){return _0x23339a['update'](_0x299598)[_0xdf76('0x25')](function(_0x28c492){return _0x28c492;});}return null;};}function removeEntity(_0x341c42,_0x53749b){return function(_0x15ed6e){if(_0x15ed6e){return _0x15ed6e['destroy']()[_0xdf76('0x25')](function(){_0x341c42[_0xdf76('0x19')](0xcc)[_0xdf76('0x1a')]();});}};}function handleEntityNotFound(_0x19f253,_0x243b49){return function(_0x321816){if(!_0x321816){_0x19f253[_0xdf76('0x26')](0x194);}return _0x321816;};}function handleError(_0x358f00,_0x26681a){_0x26681a=_0x26681a||0x1f4;return function(_0x21190a){logger[_0xdf76('0x27')](_0x21190a[_0xdf76('0x28')]);if(_0x21190a[_0xdf76('0x29')]){delete _0x21190a[_0xdf76('0x29')];}_0x358f00[_0xdf76('0x19')](_0x26681a)[_0xdf76('0x2a')](_0x21190a);};}exports['index']=function(_0x51a3ff,_0x4eee01){var _0x3395f4={},_0x1819df={},_0x3b30cf={'count':0x0,'rows':[]};var _0x57c1d3=_[_0xdf76('0x2b')](db[_0xdf76('0x2c')][_0xdf76('0x2d')],function(_0x5be312){return{'name':_0x5be312[_0xdf76('0x2e')],'type':_0x5be312[_0xdf76('0x2f')]['key']};});_0x1819df[_0xdf76('0x30')]=_[_0xdf76('0x2b')](_0x57c1d3,_0xdf76('0x29'));_0x1819df[_0xdf76('0x31')]=_['keys'](_0x51a3ff[_0xdf76('0x31')]);_0x1819df[_0xdf76('0x32')]=_[_0xdf76('0x33')](_0x1819df['model'],_0x1819df[_0xdf76('0x31')]);_0x3395f4[_0xdf76('0x34')]=_[_0xdf76('0x33')](_0x1819df['model'],qs[_0xdf76('0x35')](_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x35')]));_0x3395f4['attributes']=_0x3395f4[_0xdf76('0x34')]['length']?_0x3395f4['attributes']:_0x1819df[_0xdf76('0x30')];if(!_0x51a3ff['query'][_0xdf76('0x36')](_0xdf76('0x37'))){_0x3395f4['limit']=qs[_0xdf76('0x1f')](_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x1f')]);_0x3395f4[_0xdf76('0x1c')]=qs[_0xdf76('0x1c')](_0x51a3ff[_0xdf76('0x31')]['offset']);}_0x3395f4[_0xdf76('0x38')]=qs[_0xdf76('0x39')](_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x39')]);_0x3395f4[_0xdf76('0x3a')]=qs['filters'](_[_0xdf76('0x3b')](_0x51a3ff[_0xdf76('0x31')],_0x1819df[_0xdf76('0x32')]),_0x57c1d3);if(_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x3c')]){_0x3395f4[_0xdf76('0x3a')]=_[_0xdf76('0x3d')](_0x3395f4[_0xdf76('0x3a')],{'$or':_[_0xdf76('0x2b')](_0x57c1d3,function(_0xfb6f3f){if(_0xfb6f3f[_0xdf76('0x2f')]!==_0xdf76('0x3e')){var _0x4d946b={};_0x4d946b[_0xfb6f3f[_0xdf76('0x29')]]={'$like':'%'+_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x3c')]+'%'};return _0x4d946b;}})});}_0x3395f4=_[_0xdf76('0x3d')]({},_0x3395f4,_0x51a3ff['options']);var _0x5a5a64={'where':_0x3395f4[_0xdf76('0x3a')]};return db['CmHopperBlack'][_0xdf76('0x1e')](_0x5a5a64)[_0xdf76('0x25')](function(_0xc9ce6e){_0x3b30cf[_0xdf76('0x1e')]=_0xc9ce6e;if(_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x3f')]){_0x3395f4['include']=[{'all':!![]}];}return db[_0xdf76('0x2c')][_0xdf76('0x40')](_0x3395f4);})[_0xdf76('0x25')](function(_0x412845){_0x3b30cf[_0xdf76('0x41')]=_0x412845;return _0x3b30cf;})[_0xdf76('0x25')](respondWithFilteredResult(_0x4eee01,_0x3395f4))[_0xdf76('0x42')](handleError(_0x4eee01,null));};exports[_0xdf76('0x43')]=function(_0x12c566,_0x2f6eab){var _0x550314={'raw':!![],'where':{'id':_0x12c566[_0xdf76('0x44')]['id']}},_0x4c2f22={};_0x4c2f22['model']=_[_0xdf76('0x45')](db[_0xdf76('0x2c')][_0xdf76('0x2d')]);_0x4c2f22[_0xdf76('0x31')]=_['keys'](_0x12c566[_0xdf76('0x31')]);_0x4c2f22[_0xdf76('0x32')]=_[_0xdf76('0x33')](_0x4c2f22[_0xdf76('0x30')],_0x4c2f22[_0xdf76('0x31')]);_0x550314[_0xdf76('0x34')]=_['intersection'](_0x4c2f22[_0xdf76('0x30')],qs[_0xdf76('0x35')](_0x12c566[_0xdf76('0x31')][_0xdf76('0x35')]));_0x550314[_0xdf76('0x34')]=_0x550314[_0xdf76('0x34')][_0xdf76('0x46')]?_0x550314['attributes']:_0x4c2f22[_0xdf76('0x30')];if(_0x12c566[_0xdf76('0x31')]['includeAll']){_0x550314[_0xdf76('0x47')]=[{'all':!![]}];}_0x550314=_[_0xdf76('0x3d')]({},_0x550314,_0x12c566[_0xdf76('0x48')]);return db[_0xdf76('0x2c')]['find'](_0x550314)[_0xdf76('0x25')](handleEntityNotFound(_0x2f6eab,null))[_0xdf76('0x25')](respondWithResult(_0x2f6eab,null))['catch'](handleError(_0x2f6eab,null));};exports[_0xdf76('0x49')]=function(_0x346dbb,_0x220756){if(_0x346dbb[_0xdf76('0x4a')]['id']){delete _0x346dbb[_0xdf76('0x4a')]['id'];}return db[_0xdf76('0x2c')][_0xdf76('0x4b')]({'where':{'id':_0x346dbb[_0xdf76('0x44')]['id']}})[_0xdf76('0x25')](handleEntityNotFound(_0x220756,null))['then'](saveUpdates(_0x346dbb[_0xdf76('0x4a')],null))[_0xdf76('0x25')](respondWithResult(_0x220756,null))[_0xdf76('0x42')](handleError(_0x220756,null));};exports['destroy']=function(_0x2ab193,_0x1f3458){return db[_0xdf76('0x2c')]['find']({'where':{'id':_0x2ab193[_0xdf76('0x44')]['id']}})[_0xdf76('0x25')](handleEntityNotFound(_0x1f3458,null))[_0xdf76('0x25')](removeEntity(_0x1f3458,null))[_0xdf76('0x42')](handleError(_0x1f3458,null));};exports[_0xdf76('0x4c')]=function(_0x36c684,_0x3272f8){return db[_0xdf76('0x2c')][_0xdf76('0x4c')]()[_0xdf76('0x25')](respondWithResult(_0x3272f8,null))[_0xdf76('0x42')](handleError(_0x3272f8,null));};
\ No newline at end of file
+var _0xc5e4=['zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','save','update','then','stack','name','send','index','map','CmHopperBlack','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','rows','catch','show','params','find','body','describe','rimraf'];(function(_0x2d69e1,_0x43f881){var _0x9b5140=function(_0x374b86){while(--_0x374b86){_0x2d69e1['push'](_0x2d69e1['shift']());}};_0x9b5140(++_0x43f881);}(_0xc5e4,0x117));var _0x4c5e=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xc5e4[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4c5e('0x0'));var zipdir=require(_0x4c5e('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4c5e('0x2'));var moment=require(_0x4c5e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x4c5e('0x4'));var util=require(_0x4c5e('0x5'));var path=require(_0x4c5e('0x6'));var sox=require(_0x4c5e('0x7'));var csv=require(_0x4c5e('0x8'));var ejs=require(_0x4c5e('0x9'));var fs=require('fs');var fs_extra=require(_0x4c5e('0xa'));var _=require(_0x4c5e('0xb'));var squel=require('squel');var crypto=require(_0x4c5e('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x4c5e('0xd'));var toCsv=require(_0x4c5e('0x8'));var querystring=require(_0x4c5e('0xe'));var Papa=require(_0x4c5e('0xf'));var Redis=require(_0x4c5e('0x10'));var authService=require(_0x4c5e('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x4c5e('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x4c5e('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x4c5e('0x14'));var db=require(_0x4c5e('0x15'))['db'];function respondWithStatusCode(_0x3485f0,_0x47b4b6){_0x47b4b6=_0x47b4b6||0xcc;return function(_0x4e3a89){if(_0x4e3a89){return _0x3485f0[_0x4c5e('0x16')](_0x47b4b6);}return _0x3485f0[_0x4c5e('0x17')](_0x47b4b6)[_0x4c5e('0x18')]();};}function respondWithResult(_0x7cac0e,_0x145be5){_0x145be5=_0x145be5||0xc8;return function(_0x2c1504){if(_0x2c1504){return _0x7cac0e[_0x4c5e('0x17')](_0x145be5)['json'](_0x2c1504);}};}function respondWithFilteredResult(_0x52c3d4,_0x4283cc){return function(_0x3bf3ac){if(_0x3bf3ac){var _0x39f45e=typeof _0x4283cc[_0x4c5e('0x19')]===_0x4c5e('0x1a')&&typeof _0x4283cc[_0x4c5e('0x1b')]===_0x4c5e('0x1a');var _0x16343f=_0x3bf3ac[_0x4c5e('0x1c')];var _0x25c4d6=_0x39f45e?0x0:_0x4283cc['offset'];var _0x6eefe=_0x39f45e?_0x3bf3ac[_0x4c5e('0x1c')]:_0x4283cc['offset']+_0x4283cc['limit'];var _0x4a679d;if(_0x6eefe>=_0x16343f){_0x6eefe=_0x16343f;_0x4a679d=0xc8;}else{_0x4a679d=0xce;}_0x52c3d4[_0x4c5e('0x17')](_0x4a679d);return _0x52c3d4[_0x4c5e('0x1d')]('Content-Range',_0x25c4d6+'-'+_0x6eefe+'/'+_0x16343f)[_0x4c5e('0x1e')](_0x3bf3ac);}return null;};}function patchUpdates(_0x5d4824){return function(_0x82f918){try{jsonpatch[_0x4c5e('0x1f')](_0x82f918,_0x5d4824,!![]);}catch(_0x6bf00c){return BPromise[_0x4c5e('0x20')](_0x6bf00c);}return _0x82f918[_0x4c5e('0x21')]();};}function saveUpdates(_0x237cc7,_0x3561c7){return function(_0x4a0728){if(_0x4a0728){return _0x4a0728[_0x4c5e('0x22')](_0x237cc7)[_0x4c5e('0x23')](function(_0x2293bb){return _0x2293bb;});}return null;};}function removeEntity(_0x35b4ab,_0x54438f){return function(_0x5b3327){if(_0x5b3327){return _0x5b3327['destroy']()['then'](function(){_0x35b4ab['status'](0xcc)[_0x4c5e('0x18')]();});}};}function handleEntityNotFound(_0x2e9c75,_0x3712ca){return function(_0x4cf766){if(!_0x4cf766){_0x2e9c75[_0x4c5e('0x16')](0x194);}return _0x4cf766;};}function handleError(_0xea2d,_0x913095){_0x913095=_0x913095||0x1f4;return function(_0x172346){logger['error'](_0x172346[_0x4c5e('0x24')]);if(_0x172346[_0x4c5e('0x25')]){delete _0x172346[_0x4c5e('0x25')];}_0xea2d[_0x4c5e('0x17')](_0x913095)[_0x4c5e('0x26')](_0x172346);};}exports[_0x4c5e('0x27')]=function(_0x47582e,_0x3228cb){var _0x47a7ee={},_0x39aa40={},_0x4de60b={'count':0x0,'rows':[]};var _0x57bccb=_[_0x4c5e('0x28')](db[_0x4c5e('0x29')]['rawAttributes'],function(_0x3b2954){return{'name':_0x3b2954[_0x4c5e('0x2a')],'type':_0x3b2954[_0x4c5e('0x2b')][_0x4c5e('0x2c')]};});_0x39aa40[_0x4c5e('0x2d')]=_['map'](_0x57bccb,'name');_0x39aa40[_0x4c5e('0x2e')]=_[_0x4c5e('0x2f')](_0x47582e['query']);_0x39aa40[_0x4c5e('0x30')]=_[_0x4c5e('0x31')](_0x39aa40[_0x4c5e('0x2d')],_0x39aa40[_0x4c5e('0x2e')]);_0x47a7ee[_0x4c5e('0x32')]=_[_0x4c5e('0x31')](_0x39aa40['model'],qs[_0x4c5e('0x33')](_0x47582e[_0x4c5e('0x2e')][_0x4c5e('0x33')]));_0x47a7ee[_0x4c5e('0x32')]=_0x47a7ee[_0x4c5e('0x32')][_0x4c5e('0x34')]?_0x47a7ee[_0x4c5e('0x32')]:_0x39aa40['model'];if(!_0x47582e[_0x4c5e('0x2e')][_0x4c5e('0x35')](_0x4c5e('0x36'))){_0x47a7ee[_0x4c5e('0x1b')]=qs[_0x4c5e('0x1b')](_0x47582e[_0x4c5e('0x2e')][_0x4c5e('0x1b')]);_0x47a7ee['offset']=qs[_0x4c5e('0x19')](_0x47582e[_0x4c5e('0x2e')][_0x4c5e('0x19')]);}_0x47a7ee[_0x4c5e('0x37')]=qs[_0x4c5e('0x38')](_0x47582e[_0x4c5e('0x2e')][_0x4c5e('0x38')]);_0x47a7ee[_0x4c5e('0x39')]=qs['filters'](_[_0x4c5e('0x3a')](_0x47582e[_0x4c5e('0x2e')],_0x39aa40[_0x4c5e('0x30')]),_0x57bccb);if(_0x47582e[_0x4c5e('0x2e')][_0x4c5e('0x3b')]){_0x47a7ee[_0x4c5e('0x39')]=_['merge'](_0x47a7ee[_0x4c5e('0x39')],{'$or':_[_0x4c5e('0x28')](_0x57bccb,function(_0x1822e8){if(_0x1822e8[_0x4c5e('0x2b')]!==_0x4c5e('0x3c')){var _0x117d72={};_0x117d72[_0x1822e8[_0x4c5e('0x25')]]={'$like':'%'+_0x47582e['query']['filter']+'%'};return _0x117d72;}})});}_0x47a7ee=_[_0x4c5e('0x3d')]({},_0x47a7ee,_0x47582e['options']);var _0x5e5dd3={'where':_0x47a7ee[_0x4c5e('0x39')]};return db['CmHopperBlack'][_0x4c5e('0x1c')](_0x5e5dd3)['then'](function(_0x4521f6){_0x4de60b[_0x4c5e('0x1c')]=_0x4521f6;if(_0x47582e[_0x4c5e('0x2e')][_0x4c5e('0x3e')]){_0x47a7ee['include']=[{'all':!![]}];}return db['CmHopperBlack']['findAll'](_0x47a7ee);})['then'](function(_0x15be39){_0x4de60b[_0x4c5e('0x3f')]=_0x15be39;return _0x4de60b;})[_0x4c5e('0x23')](respondWithFilteredResult(_0x3228cb,_0x47a7ee))[_0x4c5e('0x40')](handleError(_0x3228cb,null));};exports[_0x4c5e('0x41')]=function(_0x58a168,_0x537535){var _0xa75344={'raw':!![],'where':{'id':_0x58a168[_0x4c5e('0x42')]['id']}},_0x3a4723={};_0x3a4723['model']=_[_0x4c5e('0x2f')](db[_0x4c5e('0x29')]['rawAttributes']);_0x3a4723[_0x4c5e('0x2e')]=_['keys'](_0x58a168['query']);_0x3a4723[_0x4c5e('0x30')]=_[_0x4c5e('0x31')](_0x3a4723[_0x4c5e('0x2d')],_0x3a4723[_0x4c5e('0x2e')]);_0xa75344[_0x4c5e('0x32')]=_['intersection'](_0x3a4723[_0x4c5e('0x2d')],qs[_0x4c5e('0x33')](_0x58a168[_0x4c5e('0x2e')][_0x4c5e('0x33')]));_0xa75344[_0x4c5e('0x32')]=_0xa75344[_0x4c5e('0x32')][_0x4c5e('0x34')]?_0xa75344[_0x4c5e('0x32')]:_0x3a4723['model'];if(_0x58a168[_0x4c5e('0x2e')][_0x4c5e('0x3e')]){_0xa75344['include']=[{'all':!![]}];}_0xa75344=_['merge']({},_0xa75344,_0x58a168['options']);return db['CmHopperBlack'][_0x4c5e('0x43')](_0xa75344)[_0x4c5e('0x23')](handleEntityNotFound(_0x537535,null))[_0x4c5e('0x23')](respondWithResult(_0x537535,null))[_0x4c5e('0x40')](handleError(_0x537535,null));};exports['update']=function(_0x37d3bb,_0xf76d27){if(_0x37d3bb[_0x4c5e('0x44')]['id']){delete _0x37d3bb[_0x4c5e('0x44')]['id'];}return db['CmHopperBlack'][_0x4c5e('0x43')]({'where':{'id':_0x37d3bb[_0x4c5e('0x42')]['id']}})['then'](handleEntityNotFound(_0xf76d27,null))['then'](saveUpdates(_0x37d3bb[_0x4c5e('0x44')],null))[_0x4c5e('0x23')](respondWithResult(_0xf76d27,null))[_0x4c5e('0x40')](handleError(_0xf76d27,null));};exports['destroy']=function(_0x36bcc0,_0x346994){return db[_0x4c5e('0x29')][_0x4c5e('0x43')]({'where':{'id':_0x36bcc0['params']['id']}})['then'](handleEntityNotFound(_0x346994,null))[_0x4c5e('0x23')](removeEntity(_0x346994,null))[_0x4c5e('0x40')](handleError(_0x346994,null));};exports[_0x4c5e('0x45')]=function(_0xc0b36,_0x2df29c){return db['CmHopperBlack'][_0x4c5e('0x45')]()[_0x4c5e('0x23')](respondWithResult(_0x2df29c,null))[_0x4c5e('0x40')](handleError(_0x2df29c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22a4=['define','CmHopperBlack','cm_hopper_black','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports'];(function(_0x3c347d,_0x1915c3){var _0x5dfb86=function(_0x135872){while(--_0x135872){_0x3c347d['push'](_0x3c347d['shift']());}};_0x5dfb86(++_0x1915c3);}(_0x22a4,0x1f2));var _0x422a=function(_0x1b60db,_0x393e9c){_0x1b60db=_0x1b60db-0x0;var _0x261f63=_0x22a4[_0x1b60db];return _0x261f63;};'use strict';var _=require(_0x422a('0x0'));var util=require(_0x422a('0x1'));var logger=require(_0x422a('0x2'))(_0x422a('0x3'));var moment=require(_0x422a('0x4'));var BPromise=require(_0x422a('0x5'));var rp=require(_0x422a('0x6'));var fs=require('fs');var path=require(_0x422a('0x7'));var rimraf=require(_0x422a('0x8'));var config=require(_0x422a('0x9'));var attributes=require(_0x422a('0xa'));module[_0x422a('0xb')]=function(_0x192448,_0xf0726c){return _0x192448[_0x422a('0xc')](_0x422a('0xd'),attributes,{'tableName':_0x422a('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x402c=['../../config/logger','api','request-promise','rimraf','./cmHopperBlack.attributes','exports','define','CmHopperBlack','cm_hopper_black','lodash','util'];(function(_0xc2c0c9,_0x4a43d8){var _0x4ea574=function(_0xb3d281){while(--_0xb3d281){_0xc2c0c9['push'](_0xc2c0c9['shift']());}};_0x4ea574(++_0x4a43d8);}(_0x402c,0x132));var _0xc402=function(_0x174e6b,_0x124a26){_0x174e6b=_0x174e6b-0x0;var _0x10ab0e=_0x402c[_0x174e6b];return _0x10ab0e;};'use strict';var _=require(_0xc402('0x0'));var util=require(_0xc402('0x1'));var logger=require(_0xc402('0x2'))(_0xc402('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xc402('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc402('0x5'));var config=require('../../config/environment');var attributes=require(_0xc402('0x6'));module[_0xc402('0x7')]=function(_0x20d2be,_0x4aff70){return _0x20d2be[_0xc402('0x8')](_0xc402('0x9'),attributes,{'tableName':_0xc402('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f41=['code','message','result','catch','GetCmHopperBlack','findAll','options','raw','attributes','include','map','UpdateCmHopperBlack','CmHopperBlack','update','where','limit','then','stringify','DestroyCmHopperBlack','destroy','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','info','CmHopperBlack,\x20%s,\x20%s','debug','CmHopperBlack,\x20%s,\x20%s,\x20%s','request\x20sent','error'];(function(_0x14f3cc,_0x3b41ca){var _0x1932cb=function(_0x60f9ba){while(--_0x60f9ba){_0x14f3cc['push'](_0x14f3cc['shift']());}};_0x1932cb(++_0x3b41ca);}(_0x5f41,0xa8));var _0x15f4=function(_0x2d8f5e,_0x321dba){_0x2d8f5e=_0x2d8f5e-0x0;var _0x2856fc=_0x5f41[_0x2d8f5e];return _0x2856fc;};'use strict';var _=require(_0x15f4('0x0'));var util=require('util');var moment=require(_0x15f4('0x1'));var BPromise=require(_0x15f4('0x2'));var rs=require(_0x15f4('0x3'));var fs=require('fs');var Redis=require(_0x15f4('0x4'));var db=require(_0x15f4('0x5'))['db'];var utils=require(_0x15f4('0x6'));var logger=require(_0x15f4('0x7'))('rpc');var config=require(_0x15f4('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x15f4('0x9')][_0x15f4('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x434441,_0x582e01,_0x15bddd){return new BPromise(function(_0x55b43c,_0x255356){return client['request'](_0x434441,_0x15bddd)['then'](function(_0x4db308){logger[_0x15f4('0xb')](_0x15f4('0xc'),_0x582e01,'request\x20sent');logger[_0x15f4('0xd')](_0x15f4('0xe'),_0x582e01,_0x15f4('0xf'),JSON['stringify'](_0x4db308));if(_0x4db308[_0x15f4('0x10')]){if(_0x4db308[_0x15f4('0x10')][_0x15f4('0x11')]===0x1f4){logger['error'](_0x15f4('0xc'),_0x582e01,_0x4db308[_0x15f4('0x10')][_0x15f4('0x12')]);return _0x255356(_0x4db308[_0x15f4('0x10')][_0x15f4('0x12')]);}logger['error'](_0x15f4('0xc'),_0x582e01,_0x4db308['error'][_0x15f4('0x12')]);return _0x55b43c(_0x4db308[_0x15f4('0x10')][_0x15f4('0x12')]);}else{logger[_0x15f4('0xb')](_0x15f4('0xc'),_0x582e01,_0x15f4('0xf'));_0x55b43c(_0x4db308[_0x15f4('0x13')]['message']);}})[_0x15f4('0x14')](function(_0x4dcc7e){logger[_0x15f4('0x10')](_0x15f4('0xc'),_0x582e01,_0x4dcc7e);_0x255356(_0x4dcc7e);});});}exports[_0x15f4('0x15')]=function(_0x26fff9){var _0x22d82d=this;return new Promise(function(_0x1c31a6,_0x2d8bbc){return db['CmHopperBlack'][_0x15f4('0x16')]({'raw':_0x26fff9['options']?_0x26fff9[_0x15f4('0x17')][_0x15f4('0x18')]===undefined?!![]:![]:!![],'where':_0x26fff9['options']?_0x26fff9[_0x15f4('0x17')]['where']||null:null,'attributes':_0x26fff9['options']?_0x26fff9['options'][_0x15f4('0x19')]||null:null,'limit':_0x26fff9[_0x15f4('0x17')]?_0x26fff9[_0x15f4('0x17')]['limit']||null:null,'include':_0x26fff9[_0x15f4('0x17')]?_0x26fff9['options'][_0x15f4('0x1a')]?_['map'](_0x26fff9[_0x15f4('0x17')]['include'],function(_0x2df8c9){return{'model':db[_0x2df8c9['model']],'as':_0x2df8c9['as'],'attributes':_0x2df8c9[_0x15f4('0x19')],'include':_0x2df8c9['include']?_[_0x15f4('0x1b')](_0x2df8c9[_0x15f4('0x1a')],function(_0x578bd5){return{'model':db[_0x578bd5['model']],'as':_0x578bd5['as'],'attributes':_0x578bd5[_0x15f4('0x19')],'include':_0x578bd5['include']?_[_0x15f4('0x1b')](_0x578bd5['include'],function(_0x3b475a){return{'model':db[_0x3b475a['model']],'as':_0x3b475a['as'],'attributes':_0x3b475a[_0x15f4('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x170ed4){logger['info'](_0x15f4('0x15'),_0x26fff9);logger[_0x15f4('0xd')](_0x15f4('0x15'),_0x26fff9,JSON['stringify'](_0x170ed4));_0x1c31a6(_0x170ed4);})[_0x15f4('0x14')](function(_0x2a5f73){logger['error'](_0x15f4('0x15'),_0x2a5f73[_0x15f4('0x12')],_0x26fff9);_0x2d8bbc(_0x22d82d[_0x15f4('0x10')](0x1f4,_0x2a5f73['message']));});});};exports[_0x15f4('0x1c')]=function(_0x44e7b7){var _0x24a5ae=this;return new Promise(function(_0x348da0,_0x5419bd){return db[_0x15f4('0x1d')][_0x15f4('0x1e')](_0x44e7b7['body'],{'raw':_0x44e7b7['options']?_0x44e7b7['options'][_0x15f4('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x44e7b7[_0x15f4('0x17')]?_0x44e7b7['options'][_0x15f4('0x1f')]||null:null,'attributes':_0x44e7b7[_0x15f4('0x17')]?_0x44e7b7[_0x15f4('0x17')][_0x15f4('0x19')]||null:null,'limit':_0x44e7b7[_0x15f4('0x17')]?_0x44e7b7['options'][_0x15f4('0x20')]||null:null})[_0x15f4('0x21')](function(_0x5d490c){logger[_0x15f4('0xb')](_0x15f4('0x1c'),_0x44e7b7);logger[_0x15f4('0xd')](_0x15f4('0x1c'),_0x44e7b7,JSON[_0x15f4('0x22')](_0x5d490c));_0x348da0(_0x5d490c);})[_0x15f4('0x14')](function(_0x37300f){logger['error'](_0x15f4('0x1c'),_0x37300f[_0x15f4('0x12')],_0x44e7b7);_0x5419bd(_0x24a5ae[_0x15f4('0x10')](0x1f4,_0x37300f[_0x15f4('0x12')]));});});};exports[_0x15f4('0x23')]=function(_0xcd2657){var _0x36fcf1=this;return new Promise(function(_0x44f6fb,_0x510a0d){return db[_0x15f4('0x1d')][_0x15f4('0x24')]({'where':_0xcd2657[_0x15f4('0x17')]?_0xcd2657[_0x15f4('0x17')][_0x15f4('0x1f')]||null:null})['then'](function(_0x59e664){logger[_0x15f4('0xb')](_0x15f4('0x23'),_0xcd2657);logger[_0x15f4('0xd')](_0x15f4('0x23'),_0xcd2657,JSON[_0x15f4('0x22')](_0x59e664));_0x44f6fb(_0x59e664);})[_0x15f4('0x14')](function(_0x4e0bee){logger[_0x15f4('0x10')](_0x15f4('0x23'),_0x4e0bee[_0x15f4('0x12')],_0xcd2657);_0x510a0d(_0x36fcf1[_0x15f4('0x10')](0x1f4,_0x4e0bee['message']));});});};
\ No newline at end of file
+var _0x0ce9=['catch','DestroyCmHopperBlack','destroy','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','CmHopperBlack,\x20%s,\x20%s','request\x20sent','debug','CmHopperBlack,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','findAll','options','raw','where','attributes','limit','include','map','model','info','GetCmHopperBlack','CmHopperBlack','body','UpdateCmHopperBlack'];(function(_0x3c22f7,_0x1fb12a){var _0x537f59=function(_0x471688){while(--_0x471688){_0x3c22f7['push'](_0x3c22f7['shift']());}};_0x537f59(++_0x1fb12a);}(_0x0ce9,0xcb));var _0x90ce=function(_0x46d010,_0x5a3f0f){_0x46d010=_0x46d010-0x0;var _0x5bef57=_0x0ce9[_0x46d010];return _0x5bef57;};'use strict';var _=require(_0x90ce('0x0'));var util=require(_0x90ce('0x1'));var moment=require(_0x90ce('0x2'));var BPromise=require(_0x90ce('0x3'));var rs=require(_0x90ce('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x90ce('0x5'))['db'];var utils=require(_0x90ce('0x6'));var logger=require(_0x90ce('0x7'))(_0x90ce('0x8'));var config=require('../../config/environment');var jayson=require(_0x90ce('0x9'));var client=jayson[_0x90ce('0xa')][_0x90ce('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5f14b1,_0x58a15e,_0x44827a){return new BPromise(function(_0x310cac,_0x36cf7f){return client[_0x90ce('0xc')](_0x5f14b1,_0x44827a)[_0x90ce('0xd')](function(_0x35edcc){logger['info'](_0x90ce('0xe'),_0x58a15e,_0x90ce('0xf'));logger[_0x90ce('0x10')](_0x90ce('0x11'),_0x58a15e,_0x90ce('0xf'),JSON[_0x90ce('0x12')](_0x35edcc));if(_0x35edcc[_0x90ce('0x13')]){if(_0x35edcc['error'][_0x90ce('0x14')]===0x1f4){logger[_0x90ce('0x13')]('CmHopperBlack,\x20%s,\x20%s',_0x58a15e,_0x35edcc[_0x90ce('0x13')][_0x90ce('0x15')]);return _0x36cf7f(_0x35edcc[_0x90ce('0x13')][_0x90ce('0x15')]);}logger[_0x90ce('0x13')](_0x90ce('0xe'),_0x58a15e,_0x35edcc[_0x90ce('0x13')][_0x90ce('0x15')]);return _0x310cac(_0x35edcc[_0x90ce('0x13')][_0x90ce('0x15')]);}else{logger['info'](_0x90ce('0xe'),_0x58a15e,_0x90ce('0xf'));_0x310cac(_0x35edcc[_0x90ce('0x16')][_0x90ce('0x15')]);}})['catch'](function(_0x414794){logger['error'](_0x90ce('0xe'),_0x58a15e,_0x414794);_0x36cf7f(_0x414794);});});}exports['GetCmHopperBlack']=function(_0x577594){var _0x4da3cc=this;return new Promise(function(_0x2fb62e,_0x4120b7){return db['CmHopperBlack'][_0x90ce('0x17')]({'raw':_0x577594['options']?_0x577594[_0x90ce('0x18')][_0x90ce('0x19')]===undefined?!![]:![]:!![],'where':_0x577594[_0x90ce('0x18')]?_0x577594[_0x90ce('0x18')][_0x90ce('0x1a')]||null:null,'attributes':_0x577594[_0x90ce('0x18')]?_0x577594['options'][_0x90ce('0x1b')]||null:null,'limit':_0x577594['options']?_0x577594[_0x90ce('0x18')][_0x90ce('0x1c')]||null:null,'include':_0x577594[_0x90ce('0x18')]?_0x577594[_0x90ce('0x18')][_0x90ce('0x1d')]?_[_0x90ce('0x1e')](_0x577594[_0x90ce('0x18')][_0x90ce('0x1d')],function(_0xcc17d4){return{'model':db[_0xcc17d4['model']],'as':_0xcc17d4['as'],'attributes':_0xcc17d4['attributes'],'include':_0xcc17d4['include']?_[_0x90ce('0x1e')](_0xcc17d4[_0x90ce('0x1d')],function(_0x41799d){return{'model':db[_0x41799d['model']],'as':_0x41799d['as'],'attributes':_0x41799d[_0x90ce('0x1b')],'include':_0x41799d[_0x90ce('0x1d')]?_[_0x90ce('0x1e')](_0x41799d[_0x90ce('0x1d')],function(_0x12e3d1){return{'model':db[_0x12e3d1[_0x90ce('0x1f')]],'as':_0x12e3d1['as'],'attributes':_0x12e3d1['attributes']};}):[]};}):[]};}):[]:[]})[_0x90ce('0xd')](function(_0x3d0fa7){logger[_0x90ce('0x20')](_0x90ce('0x21'),_0x577594);logger[_0x90ce('0x10')](_0x90ce('0x21'),_0x577594,JSON[_0x90ce('0x12')](_0x3d0fa7));_0x2fb62e(_0x3d0fa7);})['catch'](function(_0x1ff966){logger[_0x90ce('0x13')](_0x90ce('0x21'),_0x1ff966['message'],_0x577594);_0x4120b7(_0x4da3cc[_0x90ce('0x13')](0x1f4,_0x1ff966[_0x90ce('0x15')]));});});};exports['UpdateCmHopperBlack']=function(_0x284ce2){var _0x477bc3=this;return new Promise(function(_0x3478e3,_0x28bd7b){return db[_0x90ce('0x22')]['update'](_0x284ce2[_0x90ce('0x23')],{'raw':_0x284ce2[_0x90ce('0x18')]?_0x284ce2[_0x90ce('0x18')][_0x90ce('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x284ce2['options']?_0x284ce2['options'][_0x90ce('0x1a')]||null:null,'attributes':_0x284ce2[_0x90ce('0x18')]?_0x284ce2['options'][_0x90ce('0x1b')]||null:null,'limit':_0x284ce2[_0x90ce('0x18')]?_0x284ce2[_0x90ce('0x18')][_0x90ce('0x1c')]||null:null})['then'](function(_0x150824){logger[_0x90ce('0x20')](_0x90ce('0x24'),_0x284ce2);logger[_0x90ce('0x10')](_0x90ce('0x24'),_0x284ce2,JSON[_0x90ce('0x12')](_0x150824));_0x3478e3(_0x150824);})[_0x90ce('0x25')](function(_0xcda637){logger['error'](_0x90ce('0x24'),_0xcda637['message'],_0x284ce2);_0x28bd7b(_0x477bc3[_0x90ce('0x13')](0x1f4,_0xcda637[_0x90ce('0x15')]));});});};exports[_0x90ce('0x26')]=function(_0x1b3d95){var _0x58f44d=this;return new Promise(function(_0x1b4773,_0x387917){return db[_0x90ce('0x22')][_0x90ce('0x27')]({'where':_0x1b3d95[_0x90ce('0x18')]?_0x1b3d95[_0x90ce('0x18')][_0x90ce('0x1a')]||null:null})['then'](function(_0x59527c){logger[_0x90ce('0x20')](_0x90ce('0x26'),_0x1b3d95);logger[_0x90ce('0x10')](_0x90ce('0x26'),_0x1b3d95,JSON['stringify'](_0x59527c));_0x1b4773(_0x59527c);})[_0x90ce('0x25')](function(_0x46736b){logger[_0x90ce('0x13')](_0x90ce('0x26'),_0x46736b['message'],_0x1b3d95);_0x387917(_0x58f44d[_0x90ce('0x13')](0x1f4,_0x46736b[_0x90ce('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1967=['../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','isAuthenticated','index','get','/describe','describe','/:id','show','put','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x96143,_0x3db1e7){var _0x4c0350=function(_0x3fa2cb){while(--_0x3fa2cb){_0x96143['push'](_0x96143['shift']());}};_0x4c0350(++_0x3db1e7);}(_0x1967,0x173));var _0x7196=function(_0x562b35,_0xab9158){_0x562b35=_0x562b35-0x0;var _0x57ac76=_0x1967[_0x562b35];return _0x57ac76;};'use strict';var multer=require('multer');var util=require(_0x7196('0x0'));var path=require(_0x7196('0x1'));var timeout=require(_0x7196('0x2'));var express=require(_0x7196('0x3'));var router=express[_0x7196('0x4')]();var fs_extra=require(_0x7196('0x5'));var auth=require(_0x7196('0x6'));var interaction=require(_0x7196('0x7'));var config=require(_0x7196('0x8'));var controller=require(_0x7196('0x9'));router['get']('/',auth[_0x7196('0xa')](),controller[_0x7196('0xb')]);router[_0x7196('0xc')](_0x7196('0xd'),auth[_0x7196('0xa')](),controller[_0x7196('0xe')]);router['get'](_0x7196('0xf'),auth[_0x7196('0xa')](),controller[_0x7196('0x10')]);router[_0x7196('0x11')](_0x7196('0xf'),auth['isAuthenticated'](),controller['update']);router[_0x7196('0x12')](_0x7196('0xf'),auth[_0x7196('0xa')](),controller[_0x7196('0x13')]);module[_0x7196('0x14')]=router;
\ No newline at end of file
+var _0xc2c7=['destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','describe','/:id','show','update','delete'];(function(_0x44d9ab,_0x76bc69){var _0x31485e=function(_0x1e44ce){while(--_0x1e44ce){_0x44d9ab['push'](_0x44d9ab['shift']());}};_0x31485e(++_0x76bc69);}(_0xc2c7,0x134));var _0x7c2c=function(_0x24d8a5,_0x90a072){_0x24d8a5=_0x24d8a5-0x0;var _0x851486=_0xc2c7[_0x24d8a5];return _0x851486;};'use strict';var multer=require('multer');var util=require(_0x7c2c('0x0'));var path=require(_0x7c2c('0x1'));var timeout=require(_0x7c2c('0x2'));var express=require(_0x7c2c('0x3'));var router=express[_0x7c2c('0x4')]();var fs_extra=require(_0x7c2c('0x5'));var auth=require(_0x7c2c('0x6'));var interaction=require(_0x7c2c('0x7'));var config=require('../../config/environment');var controller=require('./cmHopperBlack.controller');router[_0x7c2c('0x8')]('/',auth[_0x7c2c('0x9')](),controller[_0x7c2c('0xa')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0x7c2c('0xb')]);router[_0x7c2c('0x8')](_0x7c2c('0xc'),auth[_0x7c2c('0x9')](),controller[_0x7c2c('0xd')]);router['put'](_0x7c2c('0xc'),auth[_0x7c2c('0x9')](),controller[_0x7c2c('0xe')]);router[_0x7c2c('0xf')](_0x7c2c('0xc'),auth[_0x7c2c('0x9')](),controller[_0x7c2c('0x10')]);module[_0x7c2c('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6fa=['endtime','setDataValue','diff','seconds','BOOLEAN','sequelize','INTEGER','STRING','DATE','getDataValue'];(function(_0x1653bf,_0x43083b){var _0xe57166=function(_0x2cc1f0){while(--_0x2cc1f0){_0x1653bf['push'](_0x1653bf['shift']());}};_0xe57166(++_0x43083b);}(_0xc6fa,0x13b));var _0xac6f=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xc6fa[_0x173d7e];return _0x2220d6;};'use strict';var Sequelize=require(_0xac6f('0x0'));var moment=require('moment');module['exports']={'state':{'type':Sequelize[_0xac6f('0x1')](0x2)},'statedesc':{'type':Sequelize[_0xac6f('0x2')]},'scheduledat':{'type':Sequelize[_0xac6f('0x3')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xac6f('0x2')]},'originatecalleridnum':{'type':Sequelize[_0xac6f('0x2')]},'originatecalleridname':{'type':Sequelize[_0xac6f('0x2')]},'calleridnum':{'type':Sequelize[_0xac6f('0x2')]},'calleridname':{'type':Sequelize[_0xac6f('0x2')]},'starttime':{'type':Sequelize[_0xac6f('0x3')]},'responsetime':{'type':Sequelize[_0xac6f('0x3')]},'answertime':{'type':Sequelize[_0xac6f('0x3')]},'droptime':{'type':Sequelize[_0xac6f('0x3')]},'endtime':{'type':Sequelize['DATE']},'ringtime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xac6f('0x2')]},'campaign':{'type':Sequelize[_0xac6f('0x2')]},'campaigntype':{'type':Sequelize[_0xac6f('0x2')]},'membername':{'type':Sequelize[_0xac6f('0x2')]},'reason':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize[_0xac6f('0x2')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize['STRING']},'dispositionat':{'type':Sequelize[_0xac6f('0x3')],'set':function(_0x392ecd){var _0x182d54=this[_0xac6f('0x4')](_0xac6f('0x5'));if(_0x182d54&&_0x392ecd){this[_0xac6f('0x6')]('followuptime',moment(_0x392ecd)[_0xac6f('0x7')](moment(_0x182d54),_0xac6f('0x8')));}return this[_0xac6f('0x6')]('dispositionat',_0x392ecd);}},'amd':{'type':Sequelize[_0xac6f('0x9')],'defaultValue':![]},'fax':{'type':Sequelize[_0xac6f('0x9')],'defaultValue':![]},'blacklist':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduledat':{'type':Sequelize['DATE']},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xac6f('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xac6f('0x3')]},'deleted':{'type':Sequelize['STRING'],'defaultValue':null},'deletedat':{'type':Sequelize[_0xac6f('0x3')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0xac6f('0x3')]},'countnosuchnumberretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x0a85=['followuptime','dispositionat','BOOLEAN','sequelize','moment','exports','INTEGER','DATE','STRING','getDataValue','setDataValue'];(function(_0x27843a,_0x485e6e){var _0x51198f=function(_0x2f56f5){while(--_0x2f56f5){_0x27843a['push'](_0x27843a['shift']());}};_0x51198f(++_0x485e6e);}(_0x0a85,0x1f2));var _0x50a8=function(_0x3ef8f0,_0x3153d2){_0x3ef8f0=_0x3ef8f0-0x0;var _0x5c541b=_0x0a85[_0x3ef8f0];return _0x5c541b;};'use strict';var Sequelize=require(_0x50a8('0x0'));var moment=require(_0x50a8('0x1'));module[_0x50a8('0x2')]={'state':{'type':Sequelize[_0x50a8('0x3')](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0x50a8('0x4')]},'countbusyretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x50a8('0x5')]},'originatecalleridnum':{'type':Sequelize[_0x50a8('0x5')]},'originatecalleridname':{'type':Sequelize[_0x50a8('0x5')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x50a8('0x5')]},'starttime':{'type':Sequelize[_0x50a8('0x4')]},'responsetime':{'type':Sequelize[_0x50a8('0x4')]},'answertime':{'type':Sequelize['DATE']},'droptime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x50a8('0x4')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x50a8('0x5')]},'campaign':{'type':Sequelize[_0x50a8('0x5')]},'campaigntype':{'type':Sequelize[_0x50a8('0x5')]},'membername':{'type':Sequelize[_0x50a8('0x5')]},'reason':{'type':Sequelize[_0x50a8('0x5')]},'disposition':{'type':Sequelize[_0x50a8('0x5')]},'secondDisposition':{'type':Sequelize[_0x50a8('0x5')]},'thirdDisposition':{'type':Sequelize[_0x50a8('0x5')]},'dispositionat':{'type':Sequelize[_0x50a8('0x4')],'set':function(_0x24e7a1){var _0x1429e3=this[_0x50a8('0x6')]('endtime');if(_0x1429e3&&_0x24e7a1){this[_0x50a8('0x7')](_0x50a8('0x8'),moment(_0x24e7a1)['diff'](moment(_0x1429e3),'seconds'));}return this['setDataValue'](_0x50a8('0x9'),_0x24e7a1);}},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0x50a8('0xa')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x50a8('0xa')],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x50a8('0xa')],'defaultValue':![]},'rescheduledat':{'type':Sequelize['DATE']},'callback':{'type':Sequelize[_0x50a8('0xa')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x50a8('0x5')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x50a8('0x4')]},'deleted':{'type':Sequelize[_0x50a8('0x5')],'defaultValue':null},'deletedat':{'type':Sequelize[_0x50a8('0x4')]},'recallme':{'type':Sequelize[_0x50a8('0xa')],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x50a8('0x4')]},'countnosuchnumberretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x50a8('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2fe=['calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','cm_hopper','select','calleridnum','state\x20=\x204','group','scheduledAt','CampaignId','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','checkContactHopper','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','querystring','ioredis','../../components/auth/service','api','../../mysqldb','sendStatus','status','offset','limit','count','set','Content-Range','json','reject','save','update','then','destroy','end','name','send','index','map','CmHopperFinal','rawAttributes','type','key','keys','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','catch','show','find','body','uniqueid','params','countContactsQueueCampaignHopperFinal','findAll','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','fromQuery','phone','ContactId','ListId','VoiceQueueId','updatedAt','field','ANY_VALUE(calleridnum)','NOW()','createdAt','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','state'];(function(_0x367c59,_0xc00a22){var _0x49d5fe=function(_0x519e69){while(--_0x519e69){_0x367c59['push'](_0x367c59['shift']());}};_0x49d5fe(++_0xc00a22);}(_0xe2fe,0x86));var _0xee2f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe2fe[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xee2f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xee2f('0x1'));var rp=require('request-promise');var moment=require(_0xee2f('0x2'));var BPromise=require(_0xee2f('0x3'));var Mustache=require(_0xee2f('0x4'));var util=require(_0xee2f('0x5'));var path=require(_0xee2f('0x6'));var sox=require('sox');var csv=require(_0xee2f('0x7'));var ejs=require(_0xee2f('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xee2f('0x9'));var squel=require(_0xee2f('0xa'));var crypto=require('crypto');var jsforce=require(_0xee2f('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xee2f('0x7'));var querystring=require(_0xee2f('0xc'));var Papa=require('papaparse');var Redis=require(_0xee2f('0xd'));var authService=require(_0xee2f('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xee2f('0xf'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xee2f('0x10'))['db'];function respondWithStatusCode(_0x346dbc,_0xa13e7b){_0xa13e7b=_0xa13e7b||0xcc;return function(_0x100449){if(_0x100449){return _0x346dbc[_0xee2f('0x11')](_0xa13e7b);}return _0x346dbc[_0xee2f('0x12')](_0xa13e7b)['end']();};}function respondWithResult(_0x3861e6,_0x531c3a){_0x531c3a=_0x531c3a||0xc8;return function(_0x36db10){if(_0x36db10){return _0x3861e6[_0xee2f('0x12')](_0x531c3a)['json'](_0x36db10);}};}function respondWithFilteredResult(_0x445ba8,_0x145241){return function(_0x28b614){if(_0x28b614){var _0x1bbf7d=typeof _0x145241[_0xee2f('0x13')]==='undefined'&&typeof _0x145241[_0xee2f('0x14')]==='undefined';var _0x17d288=_0x28b614[_0xee2f('0x15')];var _0x502eb6=_0x1bbf7d?0x0:_0x145241['offset'];var _0x40b5bc=_0x1bbf7d?_0x28b614['count']:_0x145241[_0xee2f('0x13')]+_0x145241[_0xee2f('0x14')];var _0x28549d;if(_0x40b5bc>=_0x17d288){_0x40b5bc=_0x17d288;_0x28549d=0xc8;}else{_0x28549d=0xce;}_0x445ba8['status'](_0x28549d);return _0x445ba8[_0xee2f('0x16')](_0xee2f('0x17'),_0x502eb6+'-'+_0x40b5bc+'/'+_0x17d288)[_0xee2f('0x18')](_0x28b614);}return null;};}function patchUpdates(_0x21fdf4){return function(_0x3d892d){try{jsonpatch['apply'](_0x3d892d,_0x21fdf4,!![]);}catch(_0x5e73ad){return BPromise[_0xee2f('0x19')](_0x5e73ad);}return _0x3d892d[_0xee2f('0x1a')]();};}function saveUpdates(_0x1ea808,_0x203b2f){return function(_0x472e3b){if(_0x472e3b){return _0x472e3b[_0xee2f('0x1b')](_0x1ea808)[_0xee2f('0x1c')](function(_0x4d68d3){return _0x4d68d3;});}return null;};}function removeEntity(_0x250399,_0x2c47c5){return function(_0x15ceda){if(_0x15ceda){return _0x15ceda[_0xee2f('0x1d')]()[_0xee2f('0x1c')](function(){_0x250399[_0xee2f('0x12')](0xcc)[_0xee2f('0x1e')]();});}};}function handleEntityNotFound(_0x13013f,_0x382174){return function(_0x1e394f){if(!_0x1e394f){_0x13013f[_0xee2f('0x11')](0x194);}return _0x1e394f;};}function handleError(_0x168adc,_0x1c8454){_0x1c8454=_0x1c8454||0x1f4;return function(_0x45c4a0){logger['error'](_0x45c4a0['stack']);if(_0x45c4a0['name']){delete _0x45c4a0[_0xee2f('0x1f')];}_0x168adc[_0xee2f('0x12')](_0x1c8454)[_0xee2f('0x20')](_0x45c4a0);};}exports[_0xee2f('0x21')]=function(_0x892a4e,_0x3737fd){var _0x4d8398={},_0x3d3806={},_0x52e1fa={'count':0x0,'rows':[]};var _0x235697=_[_0xee2f('0x22')](db[_0xee2f('0x23')][_0xee2f('0x24')],function(_0x3ddbe3){return{'name':_0x3ddbe3['fieldName'],'type':_0x3ddbe3[_0xee2f('0x25')][_0xee2f('0x26')]};});_0x3d3806['model']=_['map'](_0x235697,_0xee2f('0x1f'));_0x3d3806['query']=_[_0xee2f('0x27')](_0x892a4e[_0xee2f('0x28')]);_0x3d3806['filters']=_[_0xee2f('0x29')](_0x3d3806['model'],_0x3d3806['query']);_0x4d8398['attributes']=_[_0xee2f('0x29')](_0x3d3806[_0xee2f('0x2a')],qs['fields'](_0x892a4e[_0xee2f('0x28')][_0xee2f('0x2b')]));_0x4d8398[_0xee2f('0x2c')]=_0x4d8398[_0xee2f('0x2c')][_0xee2f('0x2d')]?_0x4d8398['attributes']:_0x3d3806[_0xee2f('0x2a')];if(!_0x892a4e['query'][_0xee2f('0x2e')](_0xee2f('0x2f'))){_0x4d8398[_0xee2f('0x14')]=qs['limit'](_0x892a4e[_0xee2f('0x28')]['limit']);_0x4d8398[_0xee2f('0x13')]=qs['offset'](_0x892a4e[_0xee2f('0x28')][_0xee2f('0x13')]);}_0x4d8398[_0xee2f('0x30')]=qs[_0xee2f('0x31')](_0x892a4e[_0xee2f('0x28')][_0xee2f('0x31')]);_0x4d8398[_0xee2f('0x32')]=qs[_0xee2f('0x33')](_[_0xee2f('0x34')](_0x892a4e[_0xee2f('0x28')],_0x3d3806[_0xee2f('0x33')]),_0x235697);if(_0x892a4e['query'][_0xee2f('0x35')]){_0x4d8398['where']=_[_0xee2f('0x36')](_0x4d8398[_0xee2f('0x32')],{'$or':_[_0xee2f('0x22')](_0x235697,function(_0x2cbb89){if(_0x2cbb89[_0xee2f('0x25')]!==_0xee2f('0x37')){var _0x694950={};_0x694950[_0x2cbb89[_0xee2f('0x1f')]]={'$like':'%'+_0x892a4e['query']['filter']+'%'};return _0x694950;}})});}_0x4d8398=_['merge']({},_0x4d8398,_0x892a4e[_0xee2f('0x38')]);var _0x5483ae={'where':_0x4d8398[_0xee2f('0x32')]};return db['CmHopperFinal']['count'](_0x5483ae)['then'](function(_0x58e361){_0x52e1fa[_0xee2f('0x15')]=_0x58e361;if(_0x892a4e[_0xee2f('0x28')][_0xee2f('0x39')]){_0x4d8398[_0xee2f('0x3a')]=[{'all':!![]}];}return db['CmHopperFinal']['findAll'](_0x4d8398);})[_0xee2f('0x1c')](function(_0x5e12b7){_0x52e1fa['rows']=_0x5e12b7;return _0x52e1fa;})[_0xee2f('0x1c')](respondWithFilteredResult(_0x3737fd,_0x4d8398))[_0xee2f('0x3b')](handleError(_0x3737fd,null));};exports[_0xee2f('0x3c')]=function(_0x54130b,_0x3bc173){var _0x27c447={'raw':!![],'where':{'id':_0x54130b['params']['id']}},_0x19bd4d={};_0x19bd4d['model']=_[_0xee2f('0x27')](db[_0xee2f('0x23')][_0xee2f('0x24')]);_0x19bd4d[_0xee2f('0x28')]=_['keys'](_0x54130b[_0xee2f('0x28')]);_0x19bd4d[_0xee2f('0x33')]=_[_0xee2f('0x29')](_0x19bd4d[_0xee2f('0x2a')],_0x19bd4d[_0xee2f('0x28')]);_0x27c447[_0xee2f('0x2c')]=_[_0xee2f('0x29')](_0x19bd4d[_0xee2f('0x2a')],qs[_0xee2f('0x2b')](_0x54130b[_0xee2f('0x28')]['fields']));_0x27c447['attributes']=_0x27c447['attributes']['length']?_0x27c447[_0xee2f('0x2c')]:_0x19bd4d[_0xee2f('0x2a')];if(_0x54130b[_0xee2f('0x28')][_0xee2f('0x39')]){_0x27c447[_0xee2f('0x3a')]=[{'all':!![]}];}_0x27c447=_['merge']({},_0x27c447,_0x54130b[_0xee2f('0x38')]);return db[_0xee2f('0x23')][_0xee2f('0x3d')](_0x27c447)[_0xee2f('0x1c')](handleEntityNotFound(_0x3bc173,null))['then'](respondWithResult(_0x3bc173,null))['catch'](handleError(_0x3bc173,null));};exports['describe']=function(_0x1609f0,_0x54cc44){return db['CmHopperFinal']['describe']()['then'](respondWithResult(_0x54cc44,null))[_0xee2f('0x3b')](handleError(_0x54cc44,null));};exports[_0xee2f('0x1b')]=function(_0x32da72,_0x584383){if(_0x32da72[_0xee2f('0x3e')]['uniqueid']){delete _0x32da72[_0xee2f('0x3e')][_0xee2f('0x3f')];}return db[_0xee2f('0x23')][_0xee2f('0x3d')]({'where':{'uniqueid':_0x32da72[_0xee2f('0x40')]['id']}})['then'](handleEntityNotFound(_0x584383,null))['then'](saveUpdates(_0x32da72[_0xee2f('0x3e')],null))['then'](respondWithResult(_0x584383,null))[_0xee2f('0x3b')](handleError(_0x584383,null));};exports[_0xee2f('0x41')]=function(_0x1928f8,_0x88e683,_0x4fb3a0){return db['CmHopperFinal'][_0xee2f('0x42')]({'raw':![],'where':{'VoiceQueueId':_0x1928f8[_0xee2f('0x40')]['id']},'attributes':[[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x46')))),_0xee2f('0x47')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db['sequelize'][_0xee2f('0x45')](_0xee2f('0x48')))),_0xee2f('0x49')],[db[_0xee2f('0x43')]['fn']('COUNT',db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x4a')))),_0xee2f('0x4b')],[db['sequelize']['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db['sequelize'][_0xee2f('0x45')](_0xee2f('0x4c')))),_0xee2f('0x4d')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')]['literal'](_0xee2f('0x4e')))),_0xee2f('0x4f')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x50')))),_0xee2f('0x51')],[db['sequelize']['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x52')))),_0xee2f('0x53')],[db[_0xee2f('0x43')]['fn']('COUNT',db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x54')))),'answeringMachine']]})['then'](handleEntityNotFound(_0x88e683,null))['then'](respondWithResult(_0x88e683,null))['catch'](handleError(_0x88e683,null));};exports['countContactsIvrCampaignHopperFinal']=function(_0x8f90e6,_0x511e54,_0x2891ed){return db[_0xee2f('0x23')][_0xee2f('0x42')]({'raw':![],'where':{'CampaignId':_0x8f90e6[_0xee2f('0x40')]['id']},'attributes':[[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db['sequelize'][_0xee2f('0x45')]('`state`\x20=\x200,\x201,\x20null'))),_0xee2f('0x47')],[db['sequelize']['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x48')))),'noAnswerContacts'],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x4a')))),_0xee2f('0x4b')],[db['sequelize']['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x4c')))),_0xee2f('0x4d')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0xee2f('0x4f')],[db[_0xee2f('0x43')]['fn']('COUNT',db[_0xee2f('0x43')]['fn']('IF',db['sequelize'][_0xee2f('0x45')]('`state`\x20=\x2011\x20,\x201,\x20null'))),'abandonedContacts'],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')]('`state`\x20=\x2022,\x201,\x20null'))),_0xee2f('0x53')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')]('`state`\x20=\x2019,\x201,\x20null'))),_0xee2f('0x55')]]})[_0xee2f('0x1c')](handleEntityNotFound(_0x511e54,null))[_0xee2f('0x1c')](respondWithResult(_0x511e54,null))[_0xee2f('0x3b')](handleError(_0x511e54,null));};exports[_0xee2f('0x56')]=function(_0x2adcc6,_0x43b883,_0x97edb2){return db[_0xee2f('0x57')]['find']({'where':{'id':_0x2adcc6['params']['id']}})['then'](handleEntityNotFound(_0x43b883,null))[_0xee2f('0x1c')](function(_0x19ce25){var _0x4288eb;if(_0x19ce25){_0x4288eb=squel[_0xee2f('0x58')]()[_0xee2f('0x59')]('cm_hopper')[_0xee2f('0x5a')]([_0xee2f('0x5b'),'scheduledAt',_0xee2f('0x5c'),_0xee2f('0x5d'),_0xee2f('0x5e'),'createdAt',_0xee2f('0x5f')],squel['select']()[_0xee2f('0x60')](_0xee2f('0x61'),'phone')[_0xee2f('0x60')](_0xee2f('0x62'),'scheduledAt')['field']('ANY_VALUE(ContactId)',_0xee2f('0x5c'))['field']('ANY_VALUE(ListId)',_0xee2f('0x5d'))[_0xee2f('0x60')]('ANY_VALUE(VoiceQueueId)',_0xee2f('0x5e'))['field'](_0xee2f('0x62'),_0xee2f('0x63'))[_0xee2f('0x60')](_0xee2f('0x62'),_0xee2f('0x5f'))[_0xee2f('0x64')](_0xee2f('0x65'))['where'](_0xee2f('0x66'),_0x2adcc6[_0xee2f('0x40')]['id'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x68'),_0x2adcc6['body'][_0xee2f('0x69')][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x6a'))[_0xee2f('0x32')](_0xee2f('0x6b'),squel['select']()['field'](_0xee2f('0x5b'))[_0xee2f('0x64')](_0xee2f('0x6c'))[_0xee2f('0x32')](_0xee2f('0x66'),_0x2adcc6[_0xee2f('0x40')]['id'][_0xee2f('0x67')]()))['where']('calleridnum\x20NOT\x20IN\x20(?)',squel[_0xee2f('0x6d')]()[_0xee2f('0x60')](_0xee2f('0x6e'))[_0xee2f('0x64')](_0xee2f('0x65'))[_0xee2f('0x32')](_0xee2f('0x66'),_0x2adcc6[_0xee2f('0x40')]['id'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x6f')))[_0xee2f('0x70')]('ContactId'))['toString']();return db[_0xee2f('0x43')]['query'](_0x4288eb);}return[];})['then'](respondWithResult(_0x43b883,null))['catch'](handleError(_0x43b883,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x2ea31f,_0x277507,_0x500459){return db['Campaign'][_0xee2f('0x3d')]({'where':{'id':_0x2ea31f[_0xee2f('0x40')]['id']}})[_0xee2f('0x1c')](handleEntityNotFound(_0x277507,null))['then'](function(_0x4aeae5){var _0x2b6f0f;if(_0x4aeae5){_0x2b6f0f=squel[_0xee2f('0x58')]()[_0xee2f('0x59')]('cm_hopper')[_0xee2f('0x5a')](['phone',_0xee2f('0x71'),'ContactId',_0xee2f('0x5d'),_0xee2f('0x72'),_0xee2f('0x63'),'updatedAt'],squel['select']()[_0xee2f('0x60')](_0xee2f('0x61'),_0xee2f('0x5b'))['field'](_0xee2f('0x62'),_0xee2f('0x71'))[_0xee2f('0x60')](_0xee2f('0x73'),_0xee2f('0x5c'))[_0xee2f('0x60')](_0xee2f('0x74'),_0xee2f('0x5d'))[_0xee2f('0x60')](_0xee2f('0x75'),_0xee2f('0x72'))[_0xee2f('0x60')](_0xee2f('0x62'),_0xee2f('0x63'))['field'](_0xee2f('0x62'),_0xee2f('0x5f'))[_0xee2f('0x64')](_0xee2f('0x65'))[_0xee2f('0x32')](_0xee2f('0x76'),_0x2ea31f[_0xee2f('0x40')]['id'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x68'),_0x2ea31f[_0xee2f('0x3e')]['state'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x6a'))[_0xee2f('0x32')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0xee2f('0x6d')]()[_0xee2f('0x60')](_0xee2f('0x5b'))['from']('cm_hopper')[_0xee2f('0x32')]('CampaignId\x20=\x20?',_0x2ea31f['params']['id']['toString']()))[_0xee2f('0x32')](_0xee2f('0x6b'),squel[_0xee2f('0x6d')]()[_0xee2f('0x60')]('calleridnum')[_0xee2f('0x64')](_0xee2f('0x65'))[_0xee2f('0x32')]('CampaignId\x20=\x20?',_0x2ea31f[_0xee2f('0x40')]['id']['toString']())[_0xee2f('0x32')]('state\x20=\x204'))['group'](_0xee2f('0x5c')))['toString']();return db[_0xee2f('0x43')]['query'](_0x2b6f0f);}return[];})['then'](respondWithResult(_0x277507,null))[_0xee2f('0x3b')](handleError(_0x277507,null));};exports[_0xee2f('0x77')]=function(_0x4fed80,_0x2685ed,_0x34f882){return db['CmHopper']['findOne']({'where':{'VoiceQueueId':_0x4fed80[_0xee2f('0x3e')][_0xee2f('0x5e')],'CampaignId':_0x4fed80['body'][_0xee2f('0x72')],'ContactId':_0x4fed80[_0xee2f('0x3e')][_0xee2f('0x5c')]}})[_0xee2f('0x1c')](handleEntityNotFound(_0x2685ed,null))[_0xee2f('0x1c')](function(_0x4f20e9){if(_0x4f20e9){return _0x4f20e9;}return null;})['then'](respondWithResult(_0x2685ed,null))['catch'](handleError(_0x2685ed,null));};
\ No newline at end of file
+var _0xfdbd=['status','end','json','offset','undefined','count','limit','set','reject','save','update','destroy','then','error','stack','name','send','index','map','CmHopperFinal','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show','length','find','catch','describe','body','uniqueid','countContactsQueueCampaignHopperFinal','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','params','noAnswerContacts','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ContactId','ListId','VoiceQueueId','createdAt','updatedAt','field','ANY_VALUE(calleridnum)','NOW()','ANY_VALUE(ListId)','ANY_VALUE(VoiceQueueId)','from','cm_hopper_final','toString','state\x20=\x20?','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','select','calleridnum','VoiceQueueId\x20=\x20?','state\x20=\x204','group','moveContactsIvrCampaignHopperFinal','CampaignId','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','state','checkContactHopper','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x3bac3d,_0x338f17){var _0x90fbe9=function(_0x498e04){while(--_0x498e04){_0x3bac3d['push'](_0x3bac3d['shift']());}};_0x90fbe9(++_0x338f17);}(_0xfdbd,0xf0));var _0xdfdb=function(_0x272638,_0x42b993){_0x272638=_0x272638-0x0;var _0x19d027=_0xfdbd[_0x272638];return _0x19d027;};'use strict';var emlformat=require(_0xdfdb('0x0'));var rimraf=require(_0xdfdb('0x1'));var zipdir=require(_0xdfdb('0x2'));var jsonpatch=require(_0xdfdb('0x3'));var rp=require(_0xdfdb('0x4'));var moment=require(_0xdfdb('0x5'));var BPromise=require(_0xdfdb('0x6'));var Mustache=require(_0xdfdb('0x7'));var util=require(_0xdfdb('0x8'));var path=require('path');var sox=require(_0xdfdb('0x9'));var csv=require('to-csv');var ejs=require(_0xdfdb('0xa'));var fs=require('fs');var fs_extra=require(_0xdfdb('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xdfdb('0xc'));var deskjs=require(_0xdfdb('0xd'));var toCsv=require('to-csv');var querystring=require(_0xdfdb('0xe'));var Papa=require(_0xdfdb('0xf'));var Redis=require(_0xdfdb('0x10'));var authService=require(_0xdfdb('0x11'));var qs=require(_0xdfdb('0x12'));var as=require(_0xdfdb('0x13'));var hardwareService=require(_0xdfdb('0x14'));var logger=require('../../config/logger')(_0xdfdb('0x15'));var utils=require(_0xdfdb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xdfdb('0x17'));var db=require(_0xdfdb('0x18'))['db'];function respondWithStatusCode(_0x2bee3b,_0x1918c1){_0x1918c1=_0x1918c1||0xcc;return function(_0x2a95f1){if(_0x2a95f1){return _0x2bee3b[_0xdfdb('0x19')](_0x1918c1);}return _0x2bee3b[_0xdfdb('0x1a')](_0x1918c1)[_0xdfdb('0x1b')]();};}function respondWithResult(_0x51162f,_0x48a66a){_0x48a66a=_0x48a66a||0xc8;return function(_0x2c44dc){if(_0x2c44dc){return _0x51162f['status'](_0x48a66a)[_0xdfdb('0x1c')](_0x2c44dc);}};}function respondWithFilteredResult(_0x9f3039,_0x11a56a){return function(_0x40bc8a){if(_0x40bc8a){var _0x3bfd81=typeof _0x11a56a[_0xdfdb('0x1d')]==='undefined'&&typeof _0x11a56a['limit']===_0xdfdb('0x1e');var _0x8b9193=_0x40bc8a[_0xdfdb('0x1f')];var _0x55ab5a=_0x3bfd81?0x0:_0x11a56a[_0xdfdb('0x1d')];var _0xb677b1=_0x3bfd81?_0x40bc8a[_0xdfdb('0x1f')]:_0x11a56a[_0xdfdb('0x1d')]+_0x11a56a[_0xdfdb('0x20')];var _0x2294de;if(_0xb677b1>=_0x8b9193){_0xb677b1=_0x8b9193;_0x2294de=0xc8;}else{_0x2294de=0xce;}_0x9f3039[_0xdfdb('0x1a')](_0x2294de);return _0x9f3039[_0xdfdb('0x21')]('Content-Range',_0x55ab5a+'-'+_0xb677b1+'/'+_0x8b9193)[_0xdfdb('0x1c')](_0x40bc8a);}return null;};}function patchUpdates(_0xb7417c){return function(_0x172c63){try{jsonpatch['apply'](_0x172c63,_0xb7417c,!![]);}catch(_0x377112){return BPromise[_0xdfdb('0x22')](_0x377112);}return _0x172c63[_0xdfdb('0x23')]();};}function saveUpdates(_0x4d55e5,_0x280e53){return function(_0x789bd2){if(_0x789bd2){return _0x789bd2[_0xdfdb('0x24')](_0x4d55e5)['then'](function(_0x2a80c1){return _0x2a80c1;});}return null;};}function removeEntity(_0x526057,_0x2db1c1){return function(_0x145350){if(_0x145350){return _0x145350[_0xdfdb('0x25')]()[_0xdfdb('0x26')](function(){_0x526057['status'](0xcc)[_0xdfdb('0x1b')]();});}};}function handleEntityNotFound(_0x4363d8,_0x956843){return function(_0x400663){if(!_0x400663){_0x4363d8[_0xdfdb('0x19')](0x194);}return _0x400663;};}function handleError(_0x305954,_0x57d24f){_0x57d24f=_0x57d24f||0x1f4;return function(_0xec4d22){logger[_0xdfdb('0x27')](_0xec4d22[_0xdfdb('0x28')]);if(_0xec4d22['name']){delete _0xec4d22[_0xdfdb('0x29')];}_0x305954['status'](_0x57d24f)[_0xdfdb('0x2a')](_0xec4d22);};}exports[_0xdfdb('0x2b')]=function(_0x19c36f,_0x513fa0){var _0x5bc174={},_0x1c8ca8={},_0xc56435={'count':0x0,'rows':[]};var _0xedbb91=_[_0xdfdb('0x2c')](db[_0xdfdb('0x2d')][_0xdfdb('0x2e')],function(_0x5a9fc4){return{'name':_0x5a9fc4[_0xdfdb('0x2f')],'type':_0x5a9fc4[_0xdfdb('0x30')][_0xdfdb('0x31')]};});_0x1c8ca8[_0xdfdb('0x32')]=_[_0xdfdb('0x2c')](_0xedbb91,_0xdfdb('0x29'));_0x1c8ca8[_0xdfdb('0x33')]=_[_0xdfdb('0x34')](_0x19c36f[_0xdfdb('0x33')]);_0x1c8ca8[_0xdfdb('0x35')]=_[_0xdfdb('0x36')](_0x1c8ca8['model'],_0x1c8ca8['query']);_0x5bc174[_0xdfdb('0x37')]=_['intersection'](_0x1c8ca8[_0xdfdb('0x32')],qs[_0xdfdb('0x38')](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x38')]));_0x5bc174['attributes']=_0x5bc174[_0xdfdb('0x37')]['length']?_0x5bc174[_0xdfdb('0x37')]:_0x1c8ca8[_0xdfdb('0x32')];if(!_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x39')](_0xdfdb('0x3a'))){_0x5bc174[_0xdfdb('0x20')]=qs['limit'](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x20')]);_0x5bc174['offset']=qs[_0xdfdb('0x1d')](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x1d')]);}_0x5bc174[_0xdfdb('0x3b')]=qs[_0xdfdb('0x3c')](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x3c')]);_0x5bc174[_0xdfdb('0x3d')]=qs[_0xdfdb('0x35')](_[_0xdfdb('0x3e')](_0x19c36f[_0xdfdb('0x33')],_0x1c8ca8['filters']),_0xedbb91);if(_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x3f')]){_0x5bc174[_0xdfdb('0x3d')]=_[_0xdfdb('0x40')](_0x5bc174[_0xdfdb('0x3d')],{'$or':_[_0xdfdb('0x2c')](_0xedbb91,function(_0x3ec73a){if(_0x3ec73a[_0xdfdb('0x30')]!=='VIRTUAL'){var _0x55d707={};_0x55d707[_0x3ec73a[_0xdfdb('0x29')]]={'$like':'%'+_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x3f')]+'%'};return _0x55d707;}})});}_0x5bc174=_[_0xdfdb('0x40')]({},_0x5bc174,_0x19c36f[_0xdfdb('0x41')]);var _0x300884={'where':_0x5bc174[_0xdfdb('0x3d')]};return db[_0xdfdb('0x2d')][_0xdfdb('0x1f')](_0x300884)['then'](function(_0x175f57){_0xc56435[_0xdfdb('0x1f')]=_0x175f57;if(_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x42')]){_0x5bc174[_0xdfdb('0x43')]=[{'all':!![]}];}return db['CmHopperFinal'][_0xdfdb('0x44')](_0x5bc174);})[_0xdfdb('0x26')](function(_0x3e9f88){_0xc56435[_0xdfdb('0x45')]=_0x3e9f88;return _0xc56435;})[_0xdfdb('0x26')](respondWithFilteredResult(_0x513fa0,_0x5bc174))['catch'](handleError(_0x513fa0,null));};exports[_0xdfdb('0x46')]=function(_0xd2f8bd,_0xf0482a){var _0x5b4381={'raw':!![],'where':{'id':_0xd2f8bd['params']['id']}},_0x2b5139={};_0x2b5139[_0xdfdb('0x32')]=_['keys'](db[_0xdfdb('0x2d')][_0xdfdb('0x2e')]);_0x2b5139['query']=_[_0xdfdb('0x34')](_0xd2f8bd['query']);_0x2b5139[_0xdfdb('0x35')]=_[_0xdfdb('0x36')](_0x2b5139[_0xdfdb('0x32')],_0x2b5139[_0xdfdb('0x33')]);_0x5b4381[_0xdfdb('0x37')]=_['intersection'](_0x2b5139['model'],qs[_0xdfdb('0x38')](_0xd2f8bd[_0xdfdb('0x33')]['fields']));_0x5b4381[_0xdfdb('0x37')]=_0x5b4381['attributes'][_0xdfdb('0x47')]?_0x5b4381[_0xdfdb('0x37')]:_0x2b5139[_0xdfdb('0x32')];if(_0xd2f8bd[_0xdfdb('0x33')][_0xdfdb('0x42')]){_0x5b4381[_0xdfdb('0x43')]=[{'all':!![]}];}_0x5b4381=_[_0xdfdb('0x40')]({},_0x5b4381,_0xd2f8bd[_0xdfdb('0x41')]);return db[_0xdfdb('0x2d')][_0xdfdb('0x48')](_0x5b4381)[_0xdfdb('0x26')](handleEntityNotFound(_0xf0482a,null))[_0xdfdb('0x26')](respondWithResult(_0xf0482a,null))[_0xdfdb('0x49')](handleError(_0xf0482a,null));};exports[_0xdfdb('0x4a')]=function(_0x1c08fb,_0x273477){return db['CmHopperFinal']['describe']()[_0xdfdb('0x26')](respondWithResult(_0x273477,null))[_0xdfdb('0x49')](handleError(_0x273477,null));};exports[_0xdfdb('0x24')]=function(_0x4bbb88,_0x36149e){if(_0x4bbb88[_0xdfdb('0x4b')][_0xdfdb('0x4c')]){delete _0x4bbb88[_0xdfdb('0x4b')]['uniqueid'];}return db[_0xdfdb('0x2d')][_0xdfdb('0x48')]({'where':{'uniqueid':_0x4bbb88['params']['id']}})[_0xdfdb('0x26')](handleEntityNotFound(_0x36149e,null))[_0xdfdb('0x26')](saveUpdates(_0x4bbb88[_0xdfdb('0x4b')],null))[_0xdfdb('0x26')](respondWithResult(_0x36149e,null))[_0xdfdb('0x49')](handleError(_0x36149e,null));};exports[_0xdfdb('0x4d')]=function(_0x17dfdb,_0x1f5b88,_0x1da7af){return db['CmHopperFinal'][_0xdfdb('0x44')]({'raw':![],'where':{'VoiceQueueId':_0x17dfdb['params']['id']},'attributes':[[db[_0xdfdb('0x4e')]['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')](_0xdfdb('0x51')))),_0xdfdb('0x52')],[db['sequelize']['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')](_0xdfdb('0x53')))),'noAnswerContacts'],[db[_0xdfdb('0x4e')]['fn']('COUNT',db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')](_0xdfdb('0x54')))),_0xdfdb('0x55')],[db['sequelize']['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db['sequelize'][_0xdfdb('0x50')](_0xdfdb('0x56')))),_0xdfdb('0x57')],[db['sequelize']['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')](_0xdfdb('0x58')))),_0xdfdb('0x59')],[db['sequelize']['fn']('COUNT',db[_0xdfdb('0x4e')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x2011\x20,\x201,\x20null'))),_0xdfdb('0x5a')],[db[_0xdfdb('0x4e')]['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')](_0xdfdb('0x5b')))),_0xdfdb('0x5c')],[db[_0xdfdb('0x4e')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xdfdb('0x4e')]['literal'](_0xdfdb('0x5d')))),_0xdfdb('0x5e')]]})[_0xdfdb('0x26')](handleEntityNotFound(_0x1f5b88,null))['then'](respondWithResult(_0x1f5b88,null))[_0xdfdb('0x49')](handleError(_0x1f5b88,null));};exports[_0xdfdb('0x5f')]=function(_0x349cf7,_0x2f69a8,_0x424212){return db[_0xdfdb('0x2d')][_0xdfdb('0x44')]({'raw':![],'where':{'CampaignId':_0x349cf7[_0xdfdb('0x60')]['id']},'attributes':[[db['sequelize']['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db['sequelize'][_0xdfdb('0x50')](_0xdfdb('0x51')))),_0xdfdb('0x52')],[db[_0xdfdb('0x4e')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')]('`state`\x20=\x203,\x201,\x20null'))),_0xdfdb('0x61')],[db[_0xdfdb('0x4e')]['fn'](_0xdfdb('0x4f'),db['sequelize']['fn']('IF',db['sequelize'][_0xdfdb('0x50')](_0xdfdb('0x54')))),'busyContacts'],[db['sequelize']['fn'](_0xdfdb('0x4f'),db['sequelize']['fn']('IF',db['sequelize'][_0xdfdb('0x50')]('`state`\x20=\x208,\x201,\x20null'))),_0xdfdb('0x57')],[db[_0xdfdb('0x4e')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0xdfdb('0x59')],[db[_0xdfdb('0x4e')]['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')]['literal']('`state`\x20=\x2011\x20,\x201,\x20null'))),_0xdfdb('0x5a')],[db[_0xdfdb('0x4e')]['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')]('`state`\x20=\x2022,\x201,\x20null'))),_0xdfdb('0x5c')],[db[_0xdfdb('0x4e')]['fn'](_0xdfdb('0x4f'),db[_0xdfdb('0x4e')]['fn']('IF',db[_0xdfdb('0x4e')][_0xdfdb('0x50')](_0xdfdb('0x5d')))),_0xdfdb('0x5e')]]})[_0xdfdb('0x26')](handleEntityNotFound(_0x2f69a8,null))[_0xdfdb('0x26')](respondWithResult(_0x2f69a8,null))['catch'](handleError(_0x2f69a8,null));};exports[_0xdfdb('0x62')]=function(_0x198cfa,_0x2831d6,_0x45bfc0){return db[_0xdfdb('0x63')]['find']({'where':{'id':_0x198cfa[_0xdfdb('0x60')]['id']}})[_0xdfdb('0x26')](handleEntityNotFound(_0x2831d6,null))[_0xdfdb('0x26')](function(_0x1a31b9){var _0x4999c4;if(_0x1a31b9){_0x4999c4=squel[_0xdfdb('0x64')]()[_0xdfdb('0x65')](_0xdfdb('0x66'))[_0xdfdb('0x67')]([_0xdfdb('0x68'),_0xdfdb('0x69'),_0xdfdb('0x6a'),_0xdfdb('0x6b'),_0xdfdb('0x6c'),_0xdfdb('0x6d'),_0xdfdb('0x6e')],squel['select']()[_0xdfdb('0x6f')](_0xdfdb('0x70'),'phone')[_0xdfdb('0x6f')](_0xdfdb('0x71'),_0xdfdb('0x69'))['field']('ANY_VALUE(ContactId)','ContactId')[_0xdfdb('0x6f')](_0xdfdb('0x72'),_0xdfdb('0x6b'))[_0xdfdb('0x6f')](_0xdfdb('0x73'),_0xdfdb('0x6c'))[_0xdfdb('0x6f')]('NOW()',_0xdfdb('0x6d'))[_0xdfdb('0x6f')](_0xdfdb('0x71'),_0xdfdb('0x6e'))[_0xdfdb('0x74')](_0xdfdb('0x75'))[_0xdfdb('0x3d')]('VoiceQueueId\x20=\x20?',_0x198cfa[_0xdfdb('0x60')]['id'][_0xdfdb('0x76')]())[_0xdfdb('0x3d')](_0xdfdb('0x77'),_0x198cfa[_0xdfdb('0x4b')]['state'][_0xdfdb('0x76')]())['where'](_0xdfdb('0x78'))[_0xdfdb('0x3d')](_0xdfdb('0x79'),squel[_0xdfdb('0x7a')]()[_0xdfdb('0x6f')]('phone')[_0xdfdb('0x74')](_0xdfdb('0x66'))['where']('VoiceQueueId\x20=\x20?',_0x198cfa[_0xdfdb('0x60')]['id']['toString']()))['where'](_0xdfdb('0x79'),squel[_0xdfdb('0x7a')]()[_0xdfdb('0x6f')](_0xdfdb('0x7b'))[_0xdfdb('0x74')](_0xdfdb('0x75'))[_0xdfdb('0x3d')](_0xdfdb('0x7c'),_0x198cfa['params']['id'][_0xdfdb('0x76')]())['where'](_0xdfdb('0x7d')))[_0xdfdb('0x7e')](_0xdfdb('0x6a')))[_0xdfdb('0x76')]();return db[_0xdfdb('0x4e')]['query'](_0x4999c4);}return[];})[_0xdfdb('0x26')](respondWithResult(_0x2831d6,null))[_0xdfdb('0x49')](handleError(_0x2831d6,null));};exports[_0xdfdb('0x7f')]=function(_0x1b6445,_0x36241c,_0x4c833f){return db['Campaign'][_0xdfdb('0x48')]({'where':{'id':_0x1b6445[_0xdfdb('0x60')]['id']}})['then'](handleEntityNotFound(_0x36241c,null))[_0xdfdb('0x26')](function(_0x50d5d4){var _0x158454;if(_0x50d5d4){_0x158454=squel[_0xdfdb('0x64')]()[_0xdfdb('0x65')]('cm_hopper')[_0xdfdb('0x67')](['phone','scheduledAt',_0xdfdb('0x6a'),'ListId',_0xdfdb('0x80'),_0xdfdb('0x6d'),_0xdfdb('0x6e')],squel[_0xdfdb('0x7a')]()[_0xdfdb('0x6f')](_0xdfdb('0x70'),_0xdfdb('0x68'))[_0xdfdb('0x6f')](_0xdfdb('0x71'),_0xdfdb('0x69'))['field']('ANY_VALUE(ContactId)',_0xdfdb('0x6a'))['field']('ANY_VALUE(ListId)','ListId')['field'](_0xdfdb('0x81'),_0xdfdb('0x80'))[_0xdfdb('0x6f')](_0xdfdb('0x71'),_0xdfdb('0x6d'))[_0xdfdb('0x6f')](_0xdfdb('0x71'),_0xdfdb('0x6e'))[_0xdfdb('0x74')](_0xdfdb('0x75'))[_0xdfdb('0x3d')](_0xdfdb('0x82'),_0x1b6445[_0xdfdb('0x60')]['id']['toString']())['where'](_0xdfdb('0x77'),_0x1b6445[_0xdfdb('0x4b')][_0xdfdb('0x83')][_0xdfdb('0x76')]())[_0xdfdb('0x3d')](_0xdfdb('0x78'))[_0xdfdb('0x3d')](_0xdfdb('0x79'),squel[_0xdfdb('0x7a')]()['field'](_0xdfdb('0x68'))[_0xdfdb('0x74')](_0xdfdb('0x66'))[_0xdfdb('0x3d')](_0xdfdb('0x82'),_0x1b6445[_0xdfdb('0x60')]['id']['toString']()))[_0xdfdb('0x3d')](_0xdfdb('0x79'),squel[_0xdfdb('0x7a')]()[_0xdfdb('0x6f')](_0xdfdb('0x7b'))[_0xdfdb('0x74')]('cm_hopper_final')[_0xdfdb('0x3d')](_0xdfdb('0x82'),_0x1b6445[_0xdfdb('0x60')]['id']['toString']())['where'](_0xdfdb('0x7d')))['group']('ContactId'))[_0xdfdb('0x76')]();return db[_0xdfdb('0x4e')]['query'](_0x158454);}return[];})['then'](respondWithResult(_0x36241c,null))[_0xdfdb('0x49')](handleError(_0x36241c,null));};exports[_0xdfdb('0x84')]=function(_0x1f87d3,_0x1bc293,_0x36b01e){return db['CmHopper']['findOne']({'where':{'VoiceQueueId':_0x1f87d3[_0xdfdb('0x4b')]['VoiceQueueId'],'CampaignId':_0x1f87d3[_0xdfdb('0x4b')][_0xdfdb('0x80')],'ContactId':_0x1f87d3[_0xdfdb('0x4b')]['ContactId']}})[_0xdfdb('0x26')](handleEntityNotFound(_0x1bc293,null))[_0xdfdb('0x26')](function(_0x3e0208){if(_0x3e0208){return _0x3e0208;}return null;})[_0xdfdb('0x26')](respondWithResult(_0x1bc293,null))['catch'](handleError(_0x1bc293,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91b8=['lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmHopperFinal.attributes','exports','define','CmHopperFinal','cm_hopper_final','calleridnum','uniqueid'];(function(_0x18e847,_0xbb00e9){var _0x584225=function(_0x755ab){while(--_0x755ab){_0x18e847['push'](_0x18e847['shift']());}};_0x584225(++_0xbb00e9);}(_0x91b8,0x1c2));var _0x891b=function(_0x363564,_0x25bb72){_0x363564=_0x363564-0x0;var _0x578913=_0x91b8[_0x363564];return _0x578913;};'use strict';var _=require(_0x891b('0x0'));var util=require('util');var logger=require(_0x891b('0x1'))('api');var moment=require(_0x891b('0x2'));var BPromise=require(_0x891b('0x3'));var rp=require(_0x891b('0x4'));var fs=require('fs');var path=require(_0x891b('0x5'));var rimraf=require(_0x891b('0x6'));var config=require(_0x891b('0x7'));var attributes=require(_0x891b('0x8'));module[_0x891b('0x9')]=function(_0x2e6c2f,_0x55dcc0){return _0x2e6c2f[_0x891b('0xa')](_0x891b('0xb'),attributes,{'tableName':_0x891b('0xc'),'paranoid':![],'indexes':[{'name':_0x891b('0xd'),'fields':['calleridnum']},{'name':_0x891b('0xe'),'fields':[_0x891b('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6faf=['api','moment','request-promise','path','rimraf','../../config/environment','exports','define','CmHopperFinal','cm_hopper_final','calleridnum','uniqueid','lodash','util'];(function(_0x4a9531,_0x31f133){var _0x2967f4=function(_0x43ac20){while(--_0x43ac20){_0x4a9531['push'](_0x4a9531['shift']());}};_0x2967f4(++_0x31f133);}(_0x6faf,0xa6));var _0xf6fa=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x6faf[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0xf6fa('0x0'));var util=require(_0xf6fa('0x1'));var logger=require('../../config/logger')(_0xf6fa('0x2'));var moment=require(_0xf6fa('0x3'));var BPromise=require('bluebird');var rp=require(_0xf6fa('0x4'));var fs=require('fs');var path=require(_0xf6fa('0x5'));var rimraf=require(_0xf6fa('0x6'));var config=require(_0xf6fa('0x7'));var attributes=require('./cmHopperFinal.attributes');module[_0xf6fa('0x8')]=function(_0x6ebf13,_0x51681e){return _0x6ebf13[_0xf6fa('0x9')](_0xf6fa('0xa'),attributes,{'tableName':_0xf6fa('0xb'),'paranoid':![],'indexes':[{'name':_0xf6fa('0xc'),'fields':[_0xf6fa('0xc')]},{'name':_0xf6fa('0xd'),'fields':[_0xf6fa('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['debug','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','CmHopperFinal,\x20%s,\x20%s','CmHopperFinal,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','CreateCmHopperFinal','CmHopperFinal','create','options','raw'];(function(_0x4417d9,_0x27ad30){var _0x41b529=function(_0xcf3d0){while(--_0xcf3d0){_0x4417d9['push'](_0x4417d9['shift']());}};_0x41b529(++_0x27ad30);}(_0xb10b,0x12a));var _0xbb10=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0xb10b[_0x68c979];return _0x4f0001;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')](_0x378da8['body'],{'raw':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![]})[_0xbb10('0xc')](function(_0xdf237d){logger[_0xbb10('0xd')]('CreateCmHopperFinal',_0x378da8);logger[_0xbb10('0x1a')](_0xbb10('0x15'),_0x378da8,JSON['stringify'](_0xdf237d));_0x575cca(_0xdf237d);})['catch'](function(_0x8e2b97){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x8e2b97[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x8e2b97[_0xbb10('0x13')]));});});};
\ No newline at end of file
+var _0xb10b=['debug','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','CmHopperFinal,\x20%s,\x20%s','CmHopperFinal,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','CreateCmHopperFinal','CmHopperFinal','create','options','raw'];(function(_0x574976,_0x4e190c){var _0x4daf51=function(_0x3fc3de){while(--_0x3fc3de){_0x574976['push'](_0x574976['shift']());}};_0x4daf51(++_0x4e190c);}(_0xb10b,0x12a));var _0xbb10=function(_0x4efd3d,_0x2b9694){_0x4efd3d=_0x4efd3d-0x0;var _0x1293f2=_0xb10b[_0x4efd3d];return _0x1293f2;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')](_0x378da8['body'],{'raw':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![]})[_0xbb10('0xc')](function(_0xdf237d){logger[_0xbb10('0xd')]('CreateCmHopperFinal',_0x378da8);logger[_0xbb10('0x1a')](_0xbb10('0x15'),_0x378da8,JSON['stringify'](_0xdf237d));_0x575cca(_0xdf237d);})['catch'](function(_0x8e2b97){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x8e2b97[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x8e2b97[_0xbb10('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6d1=['path','connect-timeout','../../components/auth/service','../../config/environment','./cmHopperFinal.controller','isAuthenticated','/describe','get','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','/campaign/countAttributes/:id','countContactsIvrCampaignHopperFinal','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','checkContactHopper','/:id','update','multer','util'];(function(_0x5db211,_0x37f1e8){var _0x5a4c70=function(_0x3b65e3){while(--_0x3b65e3){_0x5db211['push'](_0x5db211['shift']());}};_0x5a4c70(++_0x37f1e8);}(_0xa6d1,0x1e1));var _0x1a6d=function(_0x556d5e,_0x851fec){_0x556d5e=_0x556d5e-0x0;var _0x5be0bd=_0xa6d1[_0x556d5e];return _0x5be0bd;};'use strict';var multer=require(_0x1a6d('0x0'));var util=require(_0x1a6d('0x1'));var path=require(_0x1a6d('0x2'));var timeout=require(_0x1a6d('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x1a6d('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x1a6d('0x5'));var controller=require(_0x1a6d('0x6'));router['get']('/',auth[_0x1a6d('0x7')](),controller['index']);router['get'](_0x1a6d('0x8'),auth[_0x1a6d('0x7')](),controller['describe']);router[_0x1a6d('0x9')]('/:id',auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xa')]);router[_0x1a6d('0x9')](_0x1a6d('0xb'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xc')]);router[_0x1a6d('0x9')](_0x1a6d('0xd'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xe')]);router['post']('/voice/queue/moveContacts/:id',auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xf')]);router['post'](_0x1a6d('0x10'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0x11')]);router['post']('/checkContactHopper',auth[_0x1a6d('0x7')](),controller[_0x1a6d('0x12')]);router['put'](_0x1a6d('0x13'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x2e98=['countContactsIvrCampaignHopperFinal','post','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','/checkContactHopper','checkContactHopper','exports','multer','util','path','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./cmHopperFinal.controller','index','get','/describe','isAuthenticated','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','/campaign/countAttributes/:id'];(function(_0x43d5d5,_0x40fae7){var _0x42871f=function(_0x1fcbe1){while(--_0x1fcbe1){_0x43d5d5['push'](_0x43d5d5['shift']());}};_0x42871f(++_0x40fae7);}(_0x2e98,0x110));var _0x82e9=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x2e98[_0x2641f9];return _0x585741;};'use strict';var multer=require(_0x82e9('0x0'));var util=require(_0x82e9('0x1'));var path=require(_0x82e9('0x2'));var timeout=require(_0x82e9('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x82e9('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x82e9('0x5'));var config=require(_0x82e9('0x6'));var controller=require(_0x82e9('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x82e9('0x8')]);router[_0x82e9('0x9')](_0x82e9('0xa'),auth[_0x82e9('0xb')](),controller['describe']);router[_0x82e9('0x9')]('/:id',auth[_0x82e9('0xb')](),controller[_0x82e9('0xc')]);router[_0x82e9('0x9')](_0x82e9('0xd'),auth[_0x82e9('0xb')](),controller[_0x82e9('0xe')]);router[_0x82e9('0x9')](_0x82e9('0xf'),auth[_0x82e9('0xb')](),controller[_0x82e9('0x10')]);router[_0x82e9('0x11')]('/voice/queue/moveContacts/:id',auth[_0x82e9('0xb')](),controller[_0x82e9('0x12')]);router[_0x82e9('0x11')](_0x82e9('0x13'),auth[_0x82e9('0xb')](),controller[_0x82e9('0x14')]);router['post'](_0x82e9('0x15'),auth[_0x82e9('0xb')](),controller[_0x82e9('0x16')]);router['put']('/:id',auth[_0x82e9('0xb')](),controller['update']);module[_0x82e9('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5f9=['STRING','DATE','BOOLEAN','sequelize','exports','INTEGER'];(function(_0x2d607b,_0x455193){var _0x5be31d=function(_0xd56691){while(--_0xd56691){_0x2d607b['push'](_0x2d607b['shift']());}};_0x5be31d(++_0x455193);}(_0xe5f9,0x1a1));var _0x9e5f=function(_0x2397e0,_0x577beb){_0x2397e0=_0x2397e0-0x0;var _0x18a24d=_0xe5f9[_0x2397e0];return _0x18a24d;};'use strict';var Sequelize=require(_0x9e5f('0x0'));module[_0x9e5f('0x1')]={'state':{'type':Sequelize[_0x9e5f('0x2')](0x2)},'statedesc':{'type':Sequelize[_0x9e5f('0x3')]},'scheduledat':{'type':Sequelize[_0x9e5f('0x4')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x9e5f('0x3')]},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize[_0x9e5f('0x3')]},'calleridnum':{'type':Sequelize[_0x9e5f('0x3')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x9e5f('0x4')]},'responsetime':{'type':Sequelize[_0x9e5f('0x4')]},'answertime':{'type':Sequelize[_0x9e5f('0x4')]},'droptime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x9e5f('0x4')]},'ringtime':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x9e5f('0x3')]},'campaign':{'type':Sequelize[_0x9e5f('0x3')]},'campaigntype':{'type':Sequelize[_0x9e5f('0x3')]},'membername':{'type':Sequelize[_0x9e5f('0x3')]},'reason':{'type':Sequelize[_0x9e5f('0x3')]},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0x9e5f('0x5')],'defaultValue':![]},'callback':{'type':Sequelize[_0x9e5f('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x9e5f('0x3')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x9e5f('0x4')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'editedat':{'type':Sequelize[_0x9e5f('0x4')]},'edited':{'type':Sequelize[_0x9e5f('0x5')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xb0bd=['DATE','INTEGER','BOOLEAN','exports','STRING'];(function(_0x4cbb8e,_0x1047c8){var _0x17846f=function(_0x29e1e0){while(--_0x29e1e0){_0x4cbb8e['push'](_0x4cbb8e['shift']());}};_0x17846f(++_0x1047c8);}(_0xb0bd,0x12a));var _0xdb0b=function(_0x1dace9,_0x1566ac){_0x1dace9=_0x1dace9-0x0;var _0xf44d3d=_0xb0bd[_0x1dace9];return _0xf44d3d;};'use strict';var Sequelize=require('sequelize');module[_0xdb0b('0x0')]={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0xdb0b('0x1')]},'scheduledat':{'type':Sequelize[_0xdb0b('0x2')]},'countbusyretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xdb0b('0x1')]},'originatecalleridnum':{'type':Sequelize[_0xdb0b('0x1')]},'originatecalleridname':{'type':Sequelize[_0xdb0b('0x1')]},'calleridnum':{'type':Sequelize[_0xdb0b('0x1')]},'calleridname':{'type':Sequelize[_0xdb0b('0x1')]},'starttime':{'type':Sequelize[_0xdb0b('0x2')]},'responsetime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize[_0xdb0b('0x2')]},'droptime':{'type':Sequelize[_0xdb0b('0x2')]},'endtime':{'type':Sequelize[_0xdb0b('0x2')]},'ringtime':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xdb0b('0x1')]},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0xdb0b('0x1')]},'membername':{'type':Sequelize[_0xdb0b('0x1')]},'reason':{'type':Sequelize[_0xdb0b('0x1')]},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0xdb0b('0x4')],'defaultValue':![]},'callback':{'type':Sequelize[_0xdb0b('0x4')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xdb0b('0x1')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xdb0b('0x2')]},'recallme':{'type':Sequelize[_0xdb0b('0x4')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xdb0b('0x2')]},'edited':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xdb0b('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6663=['update','then','destroy','error','stack','name','send','index','map','CmHopperHistory','rawAttributes','fieldName','type','key','query','filters','model','intersection','fields','attributes','length','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','keys','find','create','body','describe','uniqueid','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','Content-Range','json','apply','reject','save'];(function(_0x5302aa,_0x5d39a0){var _0x183a3a=function(_0x245d1d){while(--_0x245d1d){_0x5302aa['push'](_0x5302aa['shift']());}};_0x183a3a(++_0x5d39a0);}(_0x6663,0x1a3));var _0x3666=function(_0x9dfc10,_0x19c2d5){_0x9dfc10=_0x9dfc10-0x0;var _0x4f938a=_0x6663[_0x9dfc10];return _0x4f938a;};'use strict';var emlformat=require(_0x3666('0x0'));var rimraf=require(_0x3666('0x1'));var zipdir=require(_0x3666('0x2'));var jsonpatch=require(_0x3666('0x3'));var rp=require(_0x3666('0x4'));var moment=require(_0x3666('0x5'));var BPromise=require(_0x3666('0x6'));var Mustache=require(_0x3666('0x7'));var util=require(_0x3666('0x8'));var path=require(_0x3666('0x9'));var sox=require(_0x3666('0xa'));var csv=require(_0x3666('0xb'));var ejs=require(_0x3666('0xc'));var fs=require('fs');var fs_extra=require(_0x3666('0xd'));var _=require(_0x3666('0xe'));var squel=require(_0x3666('0xf'));var crypto=require('crypto');var jsforce=require(_0x3666('0x10'));var deskjs=require(_0x3666('0x11'));var toCsv=require(_0x3666('0xb'));var querystring=require(_0x3666('0x12'));var Papa=require(_0x3666('0x13'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3666('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3666('0x15'))(_0x3666('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x3666('0x17'));var db=require(_0x3666('0x18'))['db'];function respondWithStatusCode(_0x547d55,_0x51ef82){_0x51ef82=_0x51ef82||0xcc;return function(_0x67002e){if(_0x67002e){return _0x547d55[_0x3666('0x19')](_0x51ef82);}return _0x547d55[_0x3666('0x1a')](_0x51ef82)[_0x3666('0x1b')]();};}function respondWithResult(_0x20ede4,_0x2fbca6){_0x2fbca6=_0x2fbca6||0xc8;return function(_0x2114ee){if(_0x2114ee){return _0x20ede4[_0x3666('0x1a')](_0x2fbca6)['json'](_0x2114ee);}};}function respondWithFilteredResult(_0x415d1c,_0x146602){return function(_0x15f2d1){if(_0x15f2d1){var _0x16f0a6=typeof _0x146602[_0x3666('0x1c')]==='undefined'&&typeof _0x146602[_0x3666('0x1d')]===_0x3666('0x1e');var _0x138c76=_0x15f2d1['count'];var _0x2566e3=_0x16f0a6?0x0:_0x146602[_0x3666('0x1c')];var _0x3b2bb6=_0x16f0a6?_0x15f2d1[_0x3666('0x1f')]:_0x146602[_0x3666('0x1c')]+_0x146602[_0x3666('0x1d')];var _0x50ac28;if(_0x3b2bb6>=_0x138c76){_0x3b2bb6=_0x138c76;_0x50ac28=0xc8;}else{_0x50ac28=0xce;}_0x415d1c[_0x3666('0x1a')](_0x50ac28);return _0x415d1c['set'](_0x3666('0x20'),_0x2566e3+'-'+_0x3b2bb6+'/'+_0x138c76)[_0x3666('0x21')](_0x15f2d1);}return null;};}function patchUpdates(_0x22e47f){return function(_0x4f2d11){try{jsonpatch[_0x3666('0x22')](_0x4f2d11,_0x22e47f,!![]);}catch(_0x52e35d){return BPromise[_0x3666('0x23')](_0x52e35d);}return _0x4f2d11[_0x3666('0x24')]();};}function saveUpdates(_0x31e4c3,_0x5a027d){return function(_0x23a507){if(_0x23a507){return _0x23a507[_0x3666('0x25')](_0x31e4c3)[_0x3666('0x26')](function(_0x1646eb){return _0x1646eb;});}return null;};}function removeEntity(_0x3fa4ea,_0xdb16fc){return function(_0x348b1c){if(_0x348b1c){return _0x348b1c[_0x3666('0x27')]()[_0x3666('0x26')](function(){_0x3fa4ea[_0x3666('0x1a')](0xcc)[_0x3666('0x1b')]();});}};}function handleEntityNotFound(_0xee3e3c,_0x28f3e4){return function(_0x4d3cac){if(!_0x4d3cac){_0xee3e3c[_0x3666('0x19')](0x194);}return _0x4d3cac;};}function handleError(_0x56da3e,_0xd8f3f2){_0xd8f3f2=_0xd8f3f2||0x1f4;return function(_0x37022b){logger[_0x3666('0x28')](_0x37022b[_0x3666('0x29')]);if(_0x37022b[_0x3666('0x2a')]){delete _0x37022b[_0x3666('0x2a')];}_0x56da3e['status'](_0xd8f3f2)[_0x3666('0x2b')](_0x37022b);};}exports[_0x3666('0x2c')]=function(_0x42a593,_0x492861){var _0x561eea={},_0x55150f={},_0x4454a2={'count':0x0,'rows':[]};var _0x33e075=_[_0x3666('0x2d')](db[_0x3666('0x2e')][_0x3666('0x2f')],function(_0xe94104){return{'name':_0xe94104[_0x3666('0x30')],'type':_0xe94104[_0x3666('0x31')][_0x3666('0x32')]};});_0x55150f['model']=_[_0x3666('0x2d')](_0x33e075,_0x3666('0x2a'));_0x55150f['query']=_['keys'](_0x42a593[_0x3666('0x33')]);_0x55150f[_0x3666('0x34')]=_['intersection'](_0x55150f[_0x3666('0x35')],_0x55150f[_0x3666('0x33')]);_0x561eea['attributes']=_[_0x3666('0x36')](_0x55150f[_0x3666('0x35')],qs[_0x3666('0x37')](_0x42a593[_0x3666('0x33')][_0x3666('0x37')]));_0x561eea[_0x3666('0x38')]=_0x561eea[_0x3666('0x38')][_0x3666('0x39')]?_0x561eea[_0x3666('0x38')]:_0x55150f['model'];if(!_0x42a593[_0x3666('0x33')]['hasOwnProperty']('nolimit')){_0x561eea['limit']=qs[_0x3666('0x1d')](_0x42a593[_0x3666('0x33')]['limit']);_0x561eea[_0x3666('0x1c')]=qs[_0x3666('0x1c')](_0x42a593['query']['offset']);}_0x561eea['order']=qs[_0x3666('0x3a')](_0x42a593[_0x3666('0x33')][_0x3666('0x3a')]);_0x561eea[_0x3666('0x3b')]=qs[_0x3666('0x34')](_[_0x3666('0x3c')](_0x42a593[_0x3666('0x33')],_0x55150f[_0x3666('0x34')]),_0x33e075);if(_0x42a593[_0x3666('0x33')][_0x3666('0x3d')]){_0x561eea[_0x3666('0x3b')]=_['merge'](_0x561eea['where'],{'$or':_['map'](_0x33e075,function(_0x5a321b){if(_0x5a321b[_0x3666('0x31')]!==_0x3666('0x3e')){var _0x3ff743={};_0x3ff743[_0x5a321b[_0x3666('0x2a')]]={'$like':'%'+_0x42a593[_0x3666('0x33')]['filter']+'%'};return _0x3ff743;}})});}_0x561eea=_['merge']({},_0x561eea,_0x42a593[_0x3666('0x3f')]);var _0x5750ce={'where':_0x561eea[_0x3666('0x3b')]};return db[_0x3666('0x2e')][_0x3666('0x1f')](_0x5750ce)[_0x3666('0x26')](function(_0x1f951e){_0x4454a2['count']=_0x1f951e;if(_0x42a593[_0x3666('0x33')][_0x3666('0x40')]){_0x561eea[_0x3666('0x41')]=[{'all':!![]}];}return db[_0x3666('0x2e')][_0x3666('0x42')](_0x561eea);})['then'](function(_0x22fad0){_0x4454a2[_0x3666('0x43')]=_0x22fad0;return _0x4454a2;})[_0x3666('0x26')](respondWithFilteredResult(_0x492861,_0x561eea))[_0x3666('0x44')](handleError(_0x492861,null));};exports['show']=function(_0x2f2485,_0x212e55){var _0x538328={'raw':!![],'where':{'id':_0x2f2485[_0x3666('0x45')]['id']}},_0x27f653={};_0x27f653[_0x3666('0x35')]=_[_0x3666('0x46')](db[_0x3666('0x2e')][_0x3666('0x2f')]);_0x27f653[_0x3666('0x33')]=_[_0x3666('0x46')](_0x2f2485[_0x3666('0x33')]);_0x27f653[_0x3666('0x34')]=_[_0x3666('0x36')](_0x27f653[_0x3666('0x35')],_0x27f653['query']);_0x538328[_0x3666('0x38')]=_['intersection'](_0x27f653[_0x3666('0x35')],qs[_0x3666('0x37')](_0x2f2485[_0x3666('0x33')][_0x3666('0x37')]));_0x538328[_0x3666('0x38')]=_0x538328[_0x3666('0x38')][_0x3666('0x39')]?_0x538328[_0x3666('0x38')]:_0x27f653['model'];if(_0x2f2485[_0x3666('0x33')][_0x3666('0x40')]){_0x538328[_0x3666('0x41')]=[{'all':!![]}];}_0x538328=_['merge']({},_0x538328,_0x2f2485[_0x3666('0x3f')]);return db[_0x3666('0x2e')][_0x3666('0x47')](_0x538328)['then'](handleEntityNotFound(_0x212e55,null))['then'](respondWithResult(_0x212e55,null))[_0x3666('0x44')](handleError(_0x212e55,null));};exports['create']=function(_0x2c5bc6,_0x167e1e){return db[_0x3666('0x2e')][_0x3666('0x48')](_0x2c5bc6[_0x3666('0x49')],{})['then'](respondWithResult(_0x167e1e,0xc9))[_0x3666('0x44')](handleError(_0x167e1e,null));};exports[_0x3666('0x4a')]=function(_0x344f61,_0x552542){return db[_0x3666('0x2e')][_0x3666('0x4a')]()[_0x3666('0x26')](respondWithResult(_0x552542,null))[_0x3666('0x44')](handleError(_0x552542,null));};exports[_0x3666('0x25')]=function(_0x1f9990,_0x3256b8){if(_0x1f9990[_0x3666('0x49')][_0x3666('0x4b')]){delete _0x1f9990['body'][_0x3666('0x4b')];}return db['CmHopperHistory'][_0x3666('0x47')]({'where':{'uniqueid':_0x1f9990[_0x3666('0x45')]['id']}})[_0x3666('0x26')](handleEntityNotFound(_0x3256b8,null))[_0x3666('0x26')](saveUpdates(_0x1f9990[_0x3666('0x49')],null))[_0x3666('0x26')](respondWithResult(_0x3256b8,null))[_0x3666('0x44')](handleError(_0x3256b8,null));};
\ No newline at end of file
+var _0x9beb=['filters','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','params','find','create','body','describe','uniqueid','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','stack','name','send','map','CmHopperHistory','rawAttributes','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x1082d0,_0x1df9f5){var _0x288451=function(_0x6c422f){while(--_0x6c422f){_0x1082d0['push'](_0x1082d0['shift']());}};_0x288451(++_0x1df9f5);}(_0x9beb,0x1df));var _0xb9be=function(_0x591d7c,_0x11a111){_0x591d7c=_0x591d7c-0x0;var _0x502b96=_0x9beb[_0x591d7c];return _0x502b96;};'use strict';var emlformat=require(_0xb9be('0x0'));var rimraf=require(_0xb9be('0x1'));var zipdir=require(_0xb9be('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb9be('0x3'));var moment=require(_0xb9be('0x4'));var BPromise=require(_0xb9be('0x5'));var Mustache=require(_0xb9be('0x6'));var util=require(_0xb9be('0x7'));var path=require(_0xb9be('0x8'));var sox=require(_0xb9be('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb9be('0xa'));var _=require(_0xb9be('0xb'));var squel=require(_0xb9be('0xc'));var crypto=require(_0xb9be('0xd'));var jsforce=require(_0xb9be('0xe'));var deskjs=require(_0xb9be('0xf'));var toCsv=require(_0xb9be('0x10'));var querystring=require('querystring');var Papa=require(_0xb9be('0x11'));var Redis=require(_0xb9be('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xb9be('0x13'));var as=require(_0xb9be('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xb9be('0x15'));var config=require(_0xb9be('0x16'));var licenseUtil=require(_0xb9be('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x51cb23,_0x5b007d){_0x5b007d=_0x5b007d||0xcc;return function(_0x8d9215){if(_0x8d9215){return _0x51cb23[_0xb9be('0x18')](_0x5b007d);}return _0x51cb23[_0xb9be('0x19')](_0x5b007d)[_0xb9be('0x1a')]();};}function respondWithResult(_0x50f09c,_0x4e20a2){_0x4e20a2=_0x4e20a2||0xc8;return function(_0x2c105a){if(_0x2c105a){return _0x50f09c[_0xb9be('0x19')](_0x4e20a2)[_0xb9be('0x1b')](_0x2c105a);}};}function respondWithFilteredResult(_0x1ee5bd,_0x502a80){return function(_0x529c96){if(_0x529c96){var _0x391ba4=typeof _0x502a80['offset']==='undefined'&&typeof _0x502a80[_0xb9be('0x1c')]===_0xb9be('0x1d');var _0x288ce1=_0x529c96[_0xb9be('0x1e')];var _0x450356=_0x391ba4?0x0:_0x502a80[_0xb9be('0x1f')];var _0x215df3=_0x391ba4?_0x529c96[_0xb9be('0x1e')]:_0x502a80[_0xb9be('0x1f')]+_0x502a80[_0xb9be('0x1c')];var _0x4218c1;if(_0x215df3>=_0x288ce1){_0x215df3=_0x288ce1;_0x4218c1=0xc8;}else{_0x4218c1=0xce;}_0x1ee5bd['status'](_0x4218c1);return _0x1ee5bd[_0xb9be('0x20')](_0xb9be('0x21'),_0x450356+'-'+_0x215df3+'/'+_0x288ce1)[_0xb9be('0x1b')](_0x529c96);}return null;};}function patchUpdates(_0x6642df){return function(_0x1bdb57){try{jsonpatch[_0xb9be('0x22')](_0x1bdb57,_0x6642df,!![]);}catch(_0xce8ce2){return BPromise[_0xb9be('0x23')](_0xce8ce2);}return _0x1bdb57[_0xb9be('0x24')]();};}function saveUpdates(_0x296462,_0x10e733){return function(_0x1806fc){if(_0x1806fc){return _0x1806fc[_0xb9be('0x25')](_0x296462)['then'](function(_0x34613a){return _0x34613a;});}return null;};}function removeEntity(_0x376a64,_0xcf43a3){return function(_0x253638){if(_0x253638){return _0x253638[_0xb9be('0x26')]()[_0xb9be('0x27')](function(){_0x376a64[_0xb9be('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a3440,_0x30afe3){return function(_0x3bc945){if(!_0x3bc945){_0x1a3440['sendStatus'](0x194);}return _0x3bc945;};}function handleError(_0xe94b3,_0x553101){_0x553101=_0x553101||0x1f4;return function(_0x1c1821){logger['error'](_0x1c1821[_0xb9be('0x28')]);if(_0x1c1821[_0xb9be('0x29')]){delete _0x1c1821['name'];}_0xe94b3['status'](_0x553101)[_0xb9be('0x2a')](_0x1c1821);};}exports['index']=function(_0x19d594,_0x4c0e9c){var _0x1f0bd4={},_0x526995={},_0x3a42e6={'count':0x0,'rows':[]};var _0x276eeb=_[_0xb9be('0x2b')](db[_0xb9be('0x2c')][_0xb9be('0x2d')],function(_0x18a899){return{'name':_0x18a899['fieldName'],'type':_0x18a899[_0xb9be('0x2e')][_0xb9be('0x2f')]};});_0x526995[_0xb9be('0x30')]=_[_0xb9be('0x2b')](_0x276eeb,'name');_0x526995[_0xb9be('0x31')]=_[_0xb9be('0x32')](_0x19d594[_0xb9be('0x31')]);_0x526995['filters']=_['intersection'](_0x526995[_0xb9be('0x30')],_0x526995[_0xb9be('0x31')]);_0x1f0bd4['attributes']=_[_0xb9be('0x33')](_0x526995[_0xb9be('0x30')],qs['fields'](_0x19d594[_0xb9be('0x31')][_0xb9be('0x34')]));_0x1f0bd4[_0xb9be('0x35')]=_0x1f0bd4[_0xb9be('0x35')][_0xb9be('0x36')]?_0x1f0bd4[_0xb9be('0x35')]:_0x526995[_0xb9be('0x30')];if(!_0x19d594[_0xb9be('0x31')][_0xb9be('0x37')](_0xb9be('0x38'))){_0x1f0bd4['limit']=qs['limit'](_0x19d594[_0xb9be('0x31')][_0xb9be('0x1c')]);_0x1f0bd4[_0xb9be('0x1f')]=qs[_0xb9be('0x1f')](_0x19d594[_0xb9be('0x31')][_0xb9be('0x1f')]);}_0x1f0bd4[_0xb9be('0x39')]=qs[_0xb9be('0x3a')](_0x19d594['query']['sort']);_0x1f0bd4[_0xb9be('0x3b')]=qs[_0xb9be('0x3c')](_[_0xb9be('0x3d')](_0x19d594[_0xb9be('0x31')],_0x526995[_0xb9be('0x3c')]),_0x276eeb);if(_0x19d594[_0xb9be('0x31')]['filter']){_0x1f0bd4[_0xb9be('0x3b')]=_[_0xb9be('0x3e')](_0x1f0bd4[_0xb9be('0x3b')],{'$or':_[_0xb9be('0x2b')](_0x276eeb,function(_0x27e872){if(_0x27e872[_0xb9be('0x2e')]!==_0xb9be('0x3f')){var _0x284503={};_0x284503[_0x27e872[_0xb9be('0x29')]]={'$like':'%'+_0x19d594[_0xb9be('0x31')][_0xb9be('0x40')]+'%'};return _0x284503;}})});}_0x1f0bd4=_[_0xb9be('0x3e')]({},_0x1f0bd4,_0x19d594[_0xb9be('0x41')]);var _0x223cf1={'where':_0x1f0bd4[_0xb9be('0x3b')]};return db[_0xb9be('0x2c')][_0xb9be('0x1e')](_0x223cf1)[_0xb9be('0x27')](function(_0x2df755){_0x3a42e6['count']=_0x2df755;if(_0x19d594[_0xb9be('0x31')][_0xb9be('0x42')]){_0x1f0bd4[_0xb9be('0x43')]=[{'all':!![]}];}return db[_0xb9be('0x2c')][_0xb9be('0x44')](_0x1f0bd4);})[_0xb9be('0x27')](function(_0x3ce46a){_0x3a42e6[_0xb9be('0x45')]=_0x3ce46a;return _0x3a42e6;})['then'](respondWithFilteredResult(_0x4c0e9c,_0x1f0bd4))[_0xb9be('0x46')](handleError(_0x4c0e9c,null));};exports['show']=function(_0x366944,_0x35ec61){var _0x1f2c9f={'raw':!![],'where':{'id':_0x366944[_0xb9be('0x47')]['id']}},_0x298446={};_0x298446['model']=_['keys'](db[_0xb9be('0x2c')][_0xb9be('0x2d')]);_0x298446[_0xb9be('0x31')]=_[_0xb9be('0x32')](_0x366944[_0xb9be('0x31')]);_0x298446[_0xb9be('0x3c')]=_[_0xb9be('0x33')](_0x298446[_0xb9be('0x30')],_0x298446[_0xb9be('0x31')]);_0x1f2c9f[_0xb9be('0x35')]=_[_0xb9be('0x33')](_0x298446[_0xb9be('0x30')],qs[_0xb9be('0x34')](_0x366944[_0xb9be('0x31')][_0xb9be('0x34')]));_0x1f2c9f[_0xb9be('0x35')]=_0x1f2c9f[_0xb9be('0x35')][_0xb9be('0x36')]?_0x1f2c9f[_0xb9be('0x35')]:_0x298446[_0xb9be('0x30')];if(_0x366944[_0xb9be('0x31')][_0xb9be('0x42')]){_0x1f2c9f[_0xb9be('0x43')]=[{'all':!![]}];}_0x1f2c9f=_[_0xb9be('0x3e')]({},_0x1f2c9f,_0x366944[_0xb9be('0x41')]);return db[_0xb9be('0x2c')][_0xb9be('0x48')](_0x1f2c9f)['then'](handleEntityNotFound(_0x35ec61,null))[_0xb9be('0x27')](respondWithResult(_0x35ec61,null))[_0xb9be('0x46')](handleError(_0x35ec61,null));};exports[_0xb9be('0x49')]=function(_0x2cc9c0,_0x436176){return db[_0xb9be('0x2c')][_0xb9be('0x49')](_0x2cc9c0[_0xb9be('0x4a')],{})[_0xb9be('0x27')](respondWithResult(_0x436176,0xc9))[_0xb9be('0x46')](handleError(_0x436176,null));};exports[_0xb9be('0x4b')]=function(_0x3f3fc7,_0x295af0){return db[_0xb9be('0x2c')]['describe']()[_0xb9be('0x27')](respondWithResult(_0x295af0,null))[_0xb9be('0x46')](handleError(_0x295af0,null));};exports['update']=function(_0x234803,_0x711b26){if(_0x234803[_0xb9be('0x4a')][_0xb9be('0x4c')]){delete _0x234803[_0xb9be('0x4a')][_0xb9be('0x4c')];}return db['CmHopperHistory'][_0xb9be('0x48')]({'where':{'uniqueid':_0x234803[_0xb9be('0x47')]['id']}})[_0xb9be('0x27')](handleEntityNotFound(_0x711b26,null))[_0xb9be('0x27')](saveUpdates(_0x234803[_0xb9be('0x4a')],null))[_0xb9be('0x27')](respondWithResult(_0x711b26,null))[_0xb9be('0x46')](handleError(_0x711b26,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6333=['uniqueid','api','bluebird','request-promise','rimraf','./cmHopperHistory.attributes','exports','define','CmHopperHistory','cm_hopper_history'];(function(_0xb247e3,_0x1319d1){var _0x57fb7b=function(_0x23d2bb){while(--_0x23d2bb){_0xb247e3['push'](_0xb247e3['shift']());}};_0x57fb7b(++_0x1319d1);}(_0x6333,0x83));var _0x3633=function(_0x4b8031,_0x3f17ea){_0x4b8031=_0x4b8031-0x0;var _0xa8d3f4=_0x6333[_0x4b8031];return _0xa8d3f4;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x3633('0x0'));var moment=require('moment');var BPromise=require(_0x3633('0x1'));var rp=require(_0x3633('0x2'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3633('0x3'));var config=require('../../config/environment');var attributes=require(_0x3633('0x4'));module[_0x3633('0x5')]=function(_0x566b21,_0x547e6d){return _0x566b21[_0x3633('0x6')](_0x3633('0x7'),attributes,{'tableName':_0x3633('0x8'),'paranoid':![],'indexes':[{'name':'endtime','fields':['endtime']},{'name':_0x3633('0x9'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb4d9=['bluebird','path','rimraf','../../config/environment','./cmHopperHistory.attributes','exports','define','CmHopperHistory','cm_hopper_history','endtime','uniqueid','lodash','util','api','moment'];(function(_0x474bc0,_0x26989c){var _0x4b24cf=function(_0x4be866){while(--_0x4be866){_0x474bc0['push'](_0x474bc0['shift']());}};_0x4b24cf(++_0x26989c);}(_0xb4d9,0xce));var _0x9b4d=function(_0x5f3f88,_0x562baf){_0x5f3f88=_0x5f3f88-0x0;var _0xd08119=_0xb4d9[_0x5f3f88];return _0xd08119;};'use strict';var _=require(_0x9b4d('0x0'));var util=require(_0x9b4d('0x1'));var logger=require('../../config/logger')(_0x9b4d('0x2'));var moment=require(_0x9b4d('0x3'));var BPromise=require(_0x9b4d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9b4d('0x5'));var rimraf=require(_0x9b4d('0x6'));var config=require(_0x9b4d('0x7'));var attributes=require(_0x9b4d('0x8'));module[_0x9b4d('0x9')]=function(_0x125f8e,_0x16c6dd){return _0x125f8e[_0x9b4d('0xa')](_0x9b4d('0xb'),attributes,{'tableName':_0x9b4d('0xc'),'paranoid':![],'indexes':[{'name':_0x9b4d('0xd'),'fields':['endtime']},{'name':_0x9b4d('0xe'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9584=['outboundOriginateFailureCallsDay','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','GetCampaignHopperHistory','ivrTotalCallsDays','ivrAnswerCallsDay','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperHistory,\x20%s,\x20%s','request\x20sent','debug','CmHopperHistory,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','CreateCmHopperHistory','body','options','raw','AvgHandleTime','CmHopperHistory','findAll','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','literal','`state`\x20=\x204,\x201,\x20null','predictiveIntervalAnsweredCalls','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','AVG','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','catch','GetVoiceQueueHopperHistory','campaign','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','outboundAnswerCallsDay','`state`\x20=\x208,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundDropCallsDayCallersExit','`state`\x20=\x2012,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','`state`\x20=\x2014,\x201,\x20null'];(function(_0xbb750f,_0x541af3){var _0x470fa7=function(_0x400718){while(--_0x400718){_0xbb750f['push'](_0xbb750f['shift']());}};_0x470fa7(++_0x541af3);}(_0x9584,0x1b9));var _0x4958=function(_0x420562,_0x450486){_0x420562=_0x420562-0x0;var _0x15be52=_0x9584[_0x420562];return _0x15be52;};'use strict';var _=require(_0x4958('0x0'));var util=require(_0x4958('0x1'));var moment=require(_0x4958('0x2'));var BPromise=require('bluebird');var rs=require(_0x4958('0x3'));var fs=require('fs');var Redis=require(_0x4958('0x4'));var db=require(_0x4958('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x4958('0x6'))(_0x4958('0x7'));var config=require(_0x4958('0x8'));var jayson=require(_0x4958('0x9'));var client=jayson[_0x4958('0xa')][_0x4958('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x527644,_0x1dfabd,_0x152103){return new BPromise(function(_0x27c0ff,_0x276ec8){return client[_0x4958('0xc')](_0x527644,_0x152103)[_0x4958('0xd')](function(_0xf399d6){logger[_0x4958('0xe')](_0x4958('0xf'),_0x1dfabd,_0x4958('0x10'));logger[_0x4958('0x11')](_0x4958('0x12'),_0x1dfabd,'request\x20sent',JSON[_0x4958('0x13')](_0xf399d6));if(_0xf399d6[_0x4958('0x14')]){if(_0xf399d6['error'][_0x4958('0x15')]===0x1f4){logger[_0x4958('0x14')](_0x4958('0xf'),_0x1dfabd,_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);return _0x276ec8(_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);}logger[_0x4958('0x14')](_0x4958('0xf'),_0x1dfabd,_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);return _0x27c0ff(_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);}else{logger['info']('CmHopperHistory,\x20%s,\x20%s',_0x1dfabd,_0x4958('0x10'));_0x27c0ff(_0xf399d6[_0x4958('0x17')]['message']);}})['catch'](function(_0x442552){logger[_0x4958('0x14')]('CmHopperHistory,\x20%s,\x20%s',_0x1dfabd,_0x442552);_0x276ec8(_0x442552);});});}exports[_0x4958('0x18')]=function(_0x541eb2){var _0x1426b8=this;return new Promise(function(_0x416e96,_0x24be4c){return db['CmHopperHistory']['create'](_0x541eb2[_0x4958('0x19')],{'raw':_0x541eb2[_0x4958('0x1a')]?_0x541eb2['options'][_0x4958('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x258c09){logger[_0x4958('0xe')]('CreateCmHopperHistory',_0x541eb2);logger[_0x4958('0x11')](_0x4958('0x18'),_0x541eb2,JSON[_0x4958('0x13')](_0x258c09));_0x416e96(_0x258c09);})['catch'](function(_0xad7345){logger['error'](_0x4958('0x18'),_0xad7345[_0x4958('0x16')],_0x541eb2);_0x24be4c(_0x1426b8[_0x4958('0x14')](0x1f4,_0xad7345['message']));});});};exports[_0x4958('0x1c')]=function(_0x1356a1){var _0x48c9ac=this;return new Promise(function(_0xced4ea,_0x5e7df8){return db[_0x4958('0x1d')][_0x4958('0x1e')]({'raw':_0x1356a1[_0x4958('0x1a')]?_0x1356a1['options']['raw']===undefined?!![]:![]:!![],'where':_0x1356a1['options']?_0x1356a1[_0x4958('0x1a')][_0x4958('0x1f')]||null:null,'attributes':[[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')][_0x4958('0x22')]('id')),_0x4958('0x23')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')](_0x4958('0x25')))),_0x4958('0x26')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')](_0x4958('0x27')))),_0x4958('0x28')],[db[_0x4958('0x20')]['fn']('COUNT',db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x29')))),_0x4958('0x2a')],[db[_0x4958('0x20')]['fn'](_0x4958('0x2b'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal']('`state`\x20=\x204,\x20`holdtime`,\x20null'))),_0x4958('0x2c')],[db['sequelize']['fn'](_0x4958('0x2b'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x2d')))),_0x4958('0x2e')]]})[_0x4958('0xd')](function(_0xc4b81f){logger[_0x4958('0xe')](_0x4958('0x1c'),_0x1356a1);logger[_0x4958('0x11')]('AvgHandleTime',_0x1356a1,JSON[_0x4958('0x13')](_0xc4b81f));_0xced4ea(_0xc4b81f);})[_0x4958('0x2f')](function(_0x88ca0b){logger[_0x4958('0x14')](_0x4958('0x1c'),_0x88ca0b[_0x4958('0x16')],_0x1356a1);_0x5e7df8(_0x48c9ac[_0x4958('0x14')](0x1f4,_0x88ca0b[_0x4958('0x16')]));});});};exports[_0x4958('0x30')]=function(_0x512a2a){var _0x27527c=this;return new Promise(function(_0x5b3a99,_0x37d531){return db[_0x4958('0x1d')][_0x4958('0x1e')]({'raw':_0x512a2a[_0x4958('0x1a')]?_0x512a2a[_0x4958('0x1a')][_0x4958('0x1b')]===undefined?!![]:![]:!![],'where':_0x512a2a['options']?_0x512a2a[_0x4958('0x1a')][_0x4958('0x1f')]||null:null,'attributes':[[_0x4958('0x31'),'name'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x32')))),_0x4958('0x33')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')]('`state`\x20=\x203,\x201,\x20null'))),'outboundNoAnswerCallsDay'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x25')))),_0x4958('0x34')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')]('`state`\x20=\x205,\x201,\x20null'))),'outboundBusyCallsDay'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x35')))),_0x4958('0x36')],[db[_0x4958('0x20')]['fn']('COUNT',db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x37')))),_0x4958('0x38')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x39')))),_0x4958('0x3a')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x3b')))),_0x4958('0x3c')],[db['sequelize']['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x3d')))),'outboundBlacklistCallsDay'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db['sequelize']['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x3e')))),_0x4958('0x3f')],[db['sequelize']['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')]('`state`\x20=\x2018,\x201,\x20null'))),_0x4958('0x40')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x41')))),'outboundAnswerAgiCallsDay'],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db['sequelize'][_0x4958('0x24')](_0x4958('0x42')))),_0x4958('0x40')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db['sequelize']['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x43')))),_0x4958('0x44')]],'group':[_0x4958('0x31')]})[_0x4958('0xd')](function(_0x584a19){logger[_0x4958('0xe')](_0x4958('0x30'),_0x512a2a);logger[_0x4958('0x11')]('GetVoiceQueueHopperHistory',_0x512a2a,JSON[_0x4958('0x13')](_0x584a19));_0x5b3a99(_0x584a19);})[_0x4958('0x2f')](function(_0x48805d){logger[_0x4958('0x14')](_0x4958('0x30'),_0x48805d[_0x4958('0x16')],_0x512a2a);_0x37d531(_0x27527c[_0x4958('0x14')](0x1f4,_0x48805d[_0x4958('0x16')]));});});};exports[_0x4958('0x45')]=function(_0x757f86){var _0x226e23=this;return new Promise(function(_0x1bc6b9,_0x52b9b9){return db['CmHopperHistory'][_0x4958('0x1e')]({'raw':_0x757f86[_0x4958('0x1a')]?_0x757f86[_0x4958('0x1a')][_0x4958('0x1b')]===undefined?!![]:![]:!![],'where':_0x757f86[_0x4958('0x1a')]?_0x757f86[_0x4958('0x1a')]['where']||null:null,'attributes':[[_0x4958('0x31'),'name'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')][_0x4958('0x22')]('id')),_0x4958('0x46')],[db['sequelize']['fn']('COUNT',db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x25')))),_0x4958('0x47')]],'group':['campaign']})['then'](function(_0x37ba73){logger['info'](_0x4958('0x45'),_0x757f86);logger[_0x4958('0x11')](_0x4958('0x45'),_0x757f86,JSON[_0x4958('0x13')](_0x37ba73));_0x1bc6b9(_0x37ba73);})[_0x4958('0x2f')](function(_0x529a0c){logger[_0x4958('0x14')](_0x4958('0x45'),_0x529a0c[_0x4958('0x16')],_0x757f86);_0x52b9b9(_0x226e23[_0x4958('0x14')](0x1f4,_0x529a0c[_0x4958('0x16')]));});});};
\ No newline at end of file
+var _0xec81=['predictiveIntervalAnsweredCalls','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','AVG','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','GetVoiceQueueHopperHistory','name','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','outboundNoAnswerCallsDay','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundBusyCallsDay','`state`\x20=\x208,\x201,\x20null','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2011\x20,\x201,\x20null','outboundDropCallsDayCallersExit','`state`\x20=\x2012,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','`state`\x20=\x2018,\x201,\x20null','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','campaign','ivrTotalCallsDays','ivrAnswerCallsDay','GetCampaignHopperHistory','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','CmHopperHistory,\x20%s,\x20%s','request\x20sent','CmHopperHistory,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CmHopperHistory','create','body','options','raw','debug','CreateCmHopperHistory','AvgHandleTime','findAll','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','literal','`state`\x20=\x204,\x201,\x20null'];(function(_0x609988,_0x507944){var _0x159984=function(_0x39d9ce){while(--_0x39d9ce){_0x609988['push'](_0x609988['shift']());}};_0x159984(++_0x507944);}(_0xec81,0x71));var _0x1ec8=function(_0x344294,_0x5bd8c5){_0x344294=_0x344294-0x0;var _0x14a5e4=_0xec81[_0x344294];return _0x14a5e4;};'use strict';var _=require('lodash');var util=require(_0x1ec8('0x0'));var moment=require('moment');var BPromise=require(_0x1ec8('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1ec8('0x2'));var db=require(_0x1ec8('0x3'))['db'];var utils=require(_0x1ec8('0x4'));var logger=require(_0x1ec8('0x5'))(_0x1ec8('0x6'));var config=require(_0x1ec8('0x7'));var jayson=require(_0x1ec8('0x8'));var client=jayson[_0x1ec8('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x273c0a,_0x4091ba,_0x4cc35e){return new BPromise(function(_0x432173,_0x1ca077){return client['request'](_0x273c0a,_0x4cc35e)[_0x1ec8('0xa')](function(_0x2d9916){logger[_0x1ec8('0xb')](_0x1ec8('0xc'),_0x4091ba,_0x1ec8('0xd'));logger['debug'](_0x1ec8('0xe'),_0x4091ba,_0x1ec8('0xd'),JSON[_0x1ec8('0xf')](_0x2d9916));if(_0x2d9916[_0x1ec8('0x10')]){if(_0x2d9916[_0x1ec8('0x10')][_0x1ec8('0x11')]===0x1f4){logger[_0x1ec8('0x10')]('CmHopperHistory,\x20%s,\x20%s',_0x4091ba,_0x2d9916[_0x1ec8('0x10')][_0x1ec8('0x12')]);return _0x1ca077(_0x2d9916[_0x1ec8('0x10')][_0x1ec8('0x12')]);}logger[_0x1ec8('0x10')](_0x1ec8('0xc'),_0x4091ba,_0x2d9916['error'][_0x1ec8('0x12')]);return _0x432173(_0x2d9916[_0x1ec8('0x10')][_0x1ec8('0x12')]);}else{logger['info'](_0x1ec8('0xc'),_0x4091ba,_0x1ec8('0xd'));_0x432173(_0x2d9916[_0x1ec8('0x13')][_0x1ec8('0x12')]);}})[_0x1ec8('0x14')](function(_0x312adc){logger[_0x1ec8('0x10')](_0x1ec8('0xc'),_0x4091ba,_0x312adc);_0x1ca077(_0x312adc);});});}exports['CreateCmHopperHistory']=function(_0x35ba20){var _0x46c2ac=this;return new Promise(function(_0x11dcab,_0x138730){return db[_0x1ec8('0x15')][_0x1ec8('0x16')](_0x35ba20[_0x1ec8('0x17')],{'raw':_0x35ba20[_0x1ec8('0x18')]?_0x35ba20[_0x1ec8('0x18')][_0x1ec8('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x4e575d){logger[_0x1ec8('0xb')]('CreateCmHopperHistory',_0x35ba20);logger[_0x1ec8('0x1a')](_0x1ec8('0x1b'),_0x35ba20,JSON['stringify'](_0x4e575d));_0x11dcab(_0x4e575d);})[_0x1ec8('0x14')](function(_0x2d9621){logger[_0x1ec8('0x10')](_0x1ec8('0x1b'),_0x2d9621['message'],_0x35ba20);_0x138730(_0x46c2ac[_0x1ec8('0x10')](0x1f4,_0x2d9621[_0x1ec8('0x12')]));});});};exports[_0x1ec8('0x1c')]=function(_0x227d60){var _0x1880b9=this;return new Promise(function(_0x326b00,_0x18df32){return db[_0x1ec8('0x15')][_0x1ec8('0x1d')]({'raw':_0x227d60[_0x1ec8('0x18')]?_0x227d60[_0x1ec8('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x227d60[_0x1ec8('0x18')]?_0x227d60[_0x1ec8('0x18')][_0x1ec8('0x1e')]||null:null,'attributes':[[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db['sequelize'][_0x1ec8('0x21')]('id')),_0x1ec8('0x22')],[db[_0x1ec8('0x1f')]['fn']('COUNT',db[_0x1ec8('0x1f')]['fn']('IF',db['sequelize'][_0x1ec8('0x23')](_0x1ec8('0x24')))),_0x1ec8('0x25')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')]['literal'](_0x1ec8('0x26')))),_0x1ec8('0x27')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x28')))),_0x1ec8('0x29')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x2a'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x2b')))),_0x1ec8('0x2c')],[db['sequelize']['fn'](_0x1ec8('0x2a'),db[_0x1ec8('0x1f')]['fn']('IF',db['sequelize'][_0x1ec8('0x23')](_0x1ec8('0x2d')))),_0x1ec8('0x2e')]]})[_0x1ec8('0xa')](function(_0x283baa){logger[_0x1ec8('0xb')](_0x1ec8('0x1c'),_0x227d60);logger['debug'](_0x1ec8('0x1c'),_0x227d60,JSON['stringify'](_0x283baa));_0x326b00(_0x283baa);})[_0x1ec8('0x14')](function(_0x5df6ef){logger[_0x1ec8('0x10')]('AvgHandleTime',_0x5df6ef[_0x1ec8('0x12')],_0x227d60);_0x18df32(_0x1880b9[_0x1ec8('0x10')](0x1f4,_0x5df6ef[_0x1ec8('0x12')]));});});};exports[_0x1ec8('0x2f')]=function(_0x2a1d35){var _0x1fdded=this;return new Promise(function(_0x2f12d7,_0x5216fc){return db[_0x1ec8('0x15')]['findAll']({'raw':_0x2a1d35['options']?_0x2a1d35[_0x1ec8('0x18')][_0x1ec8('0x19')]===undefined?!![]:![]:!![],'where':_0x2a1d35[_0x1ec8('0x18')]?_0x2a1d35[_0x1ec8('0x18')][_0x1ec8('0x1e')]||null:null,'attributes':[['campaign',_0x1ec8('0x30')],[db['sequelize']['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db['sequelize'][_0x1ec8('0x23')](_0x1ec8('0x31')))),_0x1ec8('0x32')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')]('`state`\x20=\x203,\x201,\x20null'))),_0x1ec8('0x33')],[db[_0x1ec8('0x1f')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')]('`state`\x20=\x204,\x201,\x20null'))),_0x1ec8('0x34')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db['sequelize'][_0x1ec8('0x23')](_0x1ec8('0x35')))),_0x1ec8('0x36')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x37')))),'outboundCongestionCallsDay'],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db['sequelize']['fn']('IF',db[_0x1ec8('0x1f')]['literal'](_0x1ec8('0x38')))),'outboundDropCallsDayTimeout'],[db['sequelize']['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x39')))),_0x1ec8('0x3a')],[db['sequelize']['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db['sequelize'][_0x1ec8('0x23')](_0x1ec8('0x3b')))),_0x1ec8('0x3c')],[db['sequelize']['fn']('COUNT',db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x3d')))),_0x1ec8('0x3e')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x3f')))),_0x1ec8('0x40')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db['sequelize'][_0x1ec8('0x23')](_0x1ec8('0x41')))),_0x1ec8('0x42')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db['sequelize']['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x43')))),_0x1ec8('0x44')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db['sequelize'][_0x1ec8('0x23')]('`state`\x20=\x2020,\x201,\x20null'))),_0x1ec8('0x42')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')]['literal'](_0x1ec8('0x45')))),_0x1ec8('0x46')]],'group':[_0x1ec8('0x47')]})[_0x1ec8('0xa')](function(_0xf26e56){logger[_0x1ec8('0xb')](_0x1ec8('0x2f'),_0x2a1d35);logger[_0x1ec8('0x1a')]('GetVoiceQueueHopperHistory',_0x2a1d35,JSON[_0x1ec8('0xf')](_0xf26e56));_0x2f12d7(_0xf26e56);})[_0x1ec8('0x14')](function(_0x35919b){logger[_0x1ec8('0x10')](_0x1ec8('0x2f'),_0x35919b[_0x1ec8('0x12')],_0x2a1d35);_0x5216fc(_0x1fdded[_0x1ec8('0x10')](0x1f4,_0x35919b[_0x1ec8('0x12')]));});});};exports['GetCampaignHopperHistory']=function(_0xe3d9a2){var _0x50b737=this;return new Promise(function(_0x362ce4,_0x96184b){return db['CmHopperHistory'][_0x1ec8('0x1d')]({'raw':_0xe3d9a2[_0x1ec8('0x18')]?_0xe3d9a2['options'][_0x1ec8('0x19')]===undefined?!![]:![]:!![],'where':_0xe3d9a2[_0x1ec8('0x18')]?_0xe3d9a2[_0x1ec8('0x18')][_0x1ec8('0x1e')]||null:null,'attributes':[[_0x1ec8('0x47'),_0x1ec8('0x30')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['col']('id')),_0x1ec8('0x48')],[db[_0x1ec8('0x1f')]['fn'](_0x1ec8('0x20'),db[_0x1ec8('0x1f')]['fn']('IF',db[_0x1ec8('0x1f')][_0x1ec8('0x23')](_0x1ec8('0x24')))),_0x1ec8('0x49')]],'group':[_0x1ec8('0x47')]})[_0x1ec8('0xa')](function(_0x47e6d9){logger['info'](_0x1ec8('0x4a'),_0xe3d9a2);logger[_0x1ec8('0x1a')]('GetCampaignHopperHistory',_0xe3d9a2,JSON[_0x1ec8('0xf')](_0x47e6d9));_0x362ce4(_0x47e6d9);})[_0x1ec8('0x14')](function(_0x242f1a){logger[_0x1ec8('0x10')](_0x1ec8('0x4a'),_0x242f1a[_0x1ec8('0x12')],_0xe3d9a2);_0x96184b(_0x50b737[_0x1ec8('0x10')](0x1f4,_0x242f1a[_0x1ec8('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd99f=['/:id','show','post','create','put','update','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperHistory.controller','/describe','isAuthenticated','describe','get'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0xd99f,0x1d2));var _0xfd99=function(_0x2963e6,_0x411d0f){_0x2963e6=_0x2963e6-0x0;var _0x4c6b2d=_0xd99f[_0x2963e6];return _0x4c6b2d;};'use strict';var multer=require(_0xfd99('0x0'));var util=require('util');var path=require(_0xfd99('0x1'));var timeout=require(_0xfd99('0x2'));var express=require(_0xfd99('0x3'));var router=express[_0xfd99('0x4')]();var fs_extra=require(_0xfd99('0x5'));var auth=require(_0xfd99('0x6'));var interaction=require(_0xfd99('0x7'));var config=require(_0xfd99('0x8'));var controller=require(_0xfd99('0x9'));router['get']('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xfd99('0xa'),auth[_0xfd99('0xb')](),controller[_0xfd99('0xc')]);router[_0xfd99('0xd')](_0xfd99('0xe'),auth[_0xfd99('0xb')](),controller[_0xfd99('0xf')]);router[_0xfd99('0x10')]('/',auth[_0xfd99('0xb')](),controller[_0xfd99('0x11')]);router[_0xfd99('0x12')](_0xfd99('0xe'),auth['isAuthenticated'](),controller[_0xfd99('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x0dab=['fs-extra','../../components/auth/service','../../config/environment','./cmHopperHistory.controller','get','isAuthenticated','index','describe','show','create','put','exports','multer','util','path','connect-timeout','Router'];(function(_0x2b5eae,_0x55010d){var _0x5f3ac9=function(_0x397bfc){while(--_0x397bfc){_0x2b5eae['push'](_0x2b5eae['shift']());}};_0x5f3ac9(++_0x55010d);}(_0x0dab,0xc7));var _0xb0da=function(_0x1d7c77,_0x42aa27){_0x1d7c77=_0x1d7c77-0x0;var _0x38263e=_0x0dab[_0x1d7c77];return _0x38263e;};'use strict';var multer=require(_0xb0da('0x0'));var util=require(_0xb0da('0x1'));var path=require(_0xb0da('0x2'));var timeout=require(_0xb0da('0x3'));var express=require('express');var router=express[_0xb0da('0x4')]();var fs_extra=require(_0xb0da('0x5'));var auth=require(_0xb0da('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xb0da('0x7'));var controller=require(_0xb0da('0x8'));router[_0xb0da('0x9')]('/',auth[_0xb0da('0xa')](),controller[_0xb0da('0xb')]);router[_0xb0da('0x9')]('/describe',auth[_0xb0da('0xa')](),controller[_0xb0da('0xc')]);router[_0xb0da('0x9')]('/:id',auth[_0xb0da('0xa')](),controller[_0xb0da('0xd')]);router['post']('/',auth[_0xb0da('0xa')](),controller[_0xb0da('0xe')]);router[_0xb0da('0xf')]('/:id',auth[_0xb0da('0xa')](),controller['update']);module[_0xb0da('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa2b=['exports','STRING','name','sequelize'];(function(_0x3994be,_0x37d421){var _0x10aa6c=function(_0x267517){while(--_0x267517){_0x3994be['push'](_0x3994be['shift']());}};_0x10aa6c(++_0x37d421);}(_0xfa2b,0x1b7));var _0xbfa2=function(_0x1bcee7,_0x51c1c5){_0x1bcee7=_0x1bcee7-0x0;var _0x16b080=_0xfa2b[_0x1bcee7];return _0x16b080;};'use strict';var Sequelize=require(_0xbfa2('0x0'));module[_0xbfa2('0x1')]={'name':{'type':Sequelize[_0xbfa2('0x2')],'unique':_0xbfa2('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xbfa2('0x2')]},'dialPrefix':{'type':Sequelize[_0xbfa2('0x2')]}};
\ No newline at end of file
+var _0xe599=['name','sequelize','exports','STRING'];(function(_0x20fbd5,_0x548e19){var _0x1bf745=function(_0x1ff7c3){while(--_0x1ff7c3){_0x20fbd5['push'](_0x20fbd5['shift']());}};_0x1bf745(++_0x548e19);}(_0xe599,0x1e5));var _0x9e59=function(_0x3b4678,_0xee215e){_0x3b4678=_0x3b4678-0x0;var _0x4f322b=_0xe599[_0x3b4678];return _0x4f322b;};'use strict';var Sequelize=require(_0x9e59('0x0'));module[_0x9e59('0x1')]={'name':{'type':Sequelize[_0x9e59('0x2')],'unique':_0x9e59('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x9e59('0x2')]},'dialPrefix':{'type':Sequelize[_0x9e59('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96b3=['cf_%s','getCustomFields','addAgents','omit','spread','emit','userCmList:save','removeAgents','userCmList:remove','User','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./cmList.socket','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','update','destroy','then','get','Lists','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','CmList','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','ListId','findOne','Disposition','hasOwnProperty','removeDispositions','ids','addContacts','CmContact','tags','isArray','push','each','success','dataValues','errors','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','concat','format','cf_%d','raw','getContactsCsv','now','writeFileSync','setHeader','attachment;\x20filename=','list_%d_%s.csv','Content-type','/tmp/list_%d_%s.csv','sendStatus','addCustomField','transaction','Sequelize','TEXT','text','number','INTEGER','switch','BOOLEAN','defaultValue','sequelize','queryInterface','addColumn','cm_contacts'];(function(_0x5e894c,_0x3fb4da){var _0x78f9cf=function(_0x3d90d1){while(--_0x3d90d1){_0x5e894c['push'](_0x5e894c['shift']());}};_0x78f9cf(++_0x3fb4da);}(_0x96b3,0x131));var _0x396b=function(_0x31d5dd,_0x3ce582){_0x31d5dd=_0x31d5dd-0x0;var _0xd15820=_0x96b3[_0x31d5dd];return _0xd15820;};'use strict';var emlformat=require(_0x396b('0x0'));var rimraf=require(_0x396b('0x1'));var zipdir=require(_0x396b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x396b('0x3'));var moment=require(_0x396b('0x4'));var BPromise=require(_0x396b('0x5'));var Mustache=require(_0x396b('0x6'));var util=require(_0x396b('0x7'));var path=require(_0x396b('0x8'));var sox=require(_0x396b('0x9'));var csv=require(_0x396b('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x396b('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x396b('0xc'));var deskjs=require(_0x396b('0xd'));var toCsv=require(_0x396b('0xa'));var querystring=require(_0x396b('0xe'));var Papa=require('papaparse');var Redis=require(_0x396b('0xf'));var authService=require(_0x396b('0x10'));var qs=require(_0x396b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x396b('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x396b('0x13'));var config=require(_0x396b('0x14'));var licenseUtil=require(_0x396b('0x15'));var db=require(_0x396b('0x16'))['db'];config[_0x396b('0x17')]=_[_0x396b('0x18')](config[_0x396b('0x17')],{'host':_0x396b('0x19'),'port':0x18eb});var socket=require(_0x396b('0x1a'))(new Redis(config[_0x396b('0x17')]));require(_0x396b('0x1b'))['register'](socket);function respondWithStatusCode(_0xc586a,_0x157b63){_0x157b63=_0x157b63||0xcc;return function(_0x525d75){if(_0x525d75){return _0xc586a['sendStatus'](_0x157b63);}return _0xc586a[_0x396b('0x1c')](_0x157b63)[_0x396b('0x1d')]();};}function respondWithResult(_0x56404f,_0xe7932c){_0xe7932c=_0xe7932c||0xc8;return function(_0x1d0730){if(_0x1d0730){return _0x56404f[_0x396b('0x1c')](_0xe7932c)[_0x396b('0x1e')](_0x1d0730);}};}function respondWithFilteredResult(_0x3ac331,_0x1867cb){return function(_0x1cae7b){if(_0x1cae7b){var _0x55727a=typeof _0x1867cb[_0x396b('0x1f')]===_0x396b('0x20')&&typeof _0x1867cb['limit']===_0x396b('0x20');var _0x6455fd=_0x1cae7b[_0x396b('0x21')];var _0x2a2ba0=_0x55727a?0x0:_0x1867cb[_0x396b('0x1f')];var _0x5e9eb4=_0x55727a?_0x1cae7b[_0x396b('0x21')]:_0x1867cb['offset']+_0x1867cb[_0x396b('0x22')];var _0x2a936b;if(_0x5e9eb4>=_0x6455fd){_0x5e9eb4=_0x6455fd;_0x2a936b=0xc8;}else{_0x2a936b=0xce;}_0x3ac331[_0x396b('0x1c')](_0x2a936b);return _0x3ac331[_0x396b('0x23')](_0x396b('0x24'),_0x2a2ba0+'-'+_0x5e9eb4+'/'+_0x6455fd)[_0x396b('0x1e')](_0x1cae7b);}return null;};}function patchUpdates(_0x5e76cc){return function(_0x298797){try{jsonpatch['apply'](_0x298797,_0x5e76cc,!![]);}catch(_0x53c9de){return BPromise[_0x396b('0x25')](_0x53c9de);}return _0x298797['save']();};}function saveUpdates(_0x5cc4ef,_0x31654f){return function(_0x486671){if(_0x486671){return _0x486671[_0x396b('0x26')](_0x5cc4ef)['then'](function(_0x4d5a8b){return _0x4d5a8b;});}return null;};}function removeEntity(_0x1cdaad,_0xad062a){return function(_0x32eed9){if(_0x32eed9){return _0x32eed9[_0x396b('0x27')]()[_0x396b('0x28')](function(){var _0x1f3318=_0x32eed9[_0x396b('0x29')]({'plain':!![]});var _0x1f3fe1=_0x396b('0x2a');return db[_0x396b('0x2b')]['destroy']({'where':{'type':_0x1f3fe1,'resourceId':_0x1f3318['id']}})[_0x396b('0x28')](function(){return _0x32eed9;});})[_0x396b('0x28')](function(){_0x1cdaad[_0x396b('0x1c')](0xcc)[_0x396b('0x1d')]();});}};}function handleEntityNotFound(_0x184ec9,_0x30ff4b){return function(_0x4cb565){if(!_0x4cb565){_0x184ec9['sendStatus'](0x194);}return _0x4cb565;};}function handleError(_0x4395bc,_0x11447f){_0x11447f=_0x11447f||0x1f4;return function(_0x37543a){logger[_0x396b('0x2c')](_0x37543a[_0x396b('0x2d')]);if(_0x37543a['name']){delete _0x37543a[_0x396b('0x2e')];}_0x4395bc['status'](_0x11447f)[_0x396b('0x2f')](_0x37543a);};}exports[_0x396b('0x30')]=function(_0x586a3c,_0x20b7f6){var _0x4d0a4a={},_0x2c0d5c={},_0x209efe={'count':0x0,'rows':[]};var _0xd149ae=_[_0x396b('0x31')](db['CmList'][_0x396b('0x32')],function(_0x4bb0cf){return{'name':_0x4bb0cf['fieldName'],'type':_0x4bb0cf[_0x396b('0x33')][_0x396b('0x34')]};});_0x2c0d5c[_0x396b('0x35')]=_[_0x396b('0x31')](_0xd149ae,'name');_0x2c0d5c[_0x396b('0x36')]=_[_0x396b('0x37')](_0x586a3c[_0x396b('0x36')]);_0x2c0d5c[_0x396b('0x38')]=_['intersection'](_0x2c0d5c[_0x396b('0x35')],_0x2c0d5c['query']);_0x4d0a4a['attributes']=_[_0x396b('0x39')](_0x2c0d5c[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x586a3c[_0x396b('0x36')][_0x396b('0x3a')]));_0x4d0a4a['attributes']=_0x4d0a4a[_0x396b('0x3b')][_0x396b('0x3c')]?_0x4d0a4a[_0x396b('0x3b')]:_0x2c0d5c[_0x396b('0x35')];if(!_0x586a3c['query']['hasOwnProperty'](_0x396b('0x3d'))){_0x4d0a4a[_0x396b('0x22')]=qs[_0x396b('0x22')](_0x586a3c[_0x396b('0x36')]['limit']);_0x4d0a4a['offset']=qs[_0x396b('0x1f')](_0x586a3c[_0x396b('0x36')][_0x396b('0x1f')]);}_0x4d0a4a[_0x396b('0x3e')]=qs['sort'](_0x586a3c[_0x396b('0x36')][_0x396b('0x3f')]);_0x4d0a4a[_0x396b('0x40')]=qs['filters'](_[_0x396b('0x41')](_0x586a3c[_0x396b('0x36')],_0x2c0d5c[_0x396b('0x38')]),_0xd149ae);if(_0x586a3c[_0x396b('0x36')][_0x396b('0x42')]){_0x4d0a4a[_0x396b('0x40')]=_[_0x396b('0x43')](_0x4d0a4a[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0xd149ae,function(_0x519512){if(_0x519512['type']!==_0x396b('0x44')){var _0x35fa16={};_0x35fa16[_0x519512['name']]={'$like':'%'+_0x586a3c[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x35fa16;}})});}_0x4d0a4a=_[_0x396b('0x43')]({},_0x4d0a4a,_0x586a3c[_0x396b('0x45')]);var _0x50ff0c={'where':_0x4d0a4a[_0x396b('0x40')]};return db['CmList'][_0x396b('0x21')](_0x50ff0c)[_0x396b('0x28')](function(_0x1653da){_0x209efe['count']=_0x1653da;if(_0x586a3c[_0x396b('0x36')][_0x396b('0x46')]){_0x4d0a4a['include']=[{'all':!![]}];}return db['CmList'][_0x396b('0x47')](_0x4d0a4a);})['then'](function(_0x37806f){_0x209efe[_0x396b('0x48')]=_0x37806f;return _0x209efe;})[_0x396b('0x28')](respondWithFilteredResult(_0x20b7f6,_0x4d0a4a))[_0x396b('0x49')](handleError(_0x20b7f6,null));};exports[_0x396b('0x4a')]=function(_0x1fe205,_0x545c60){var _0x5e0b1f={'raw':![],'where':{'id':_0x1fe205[_0x396b('0x4b')]['id']}},_0x3256e6={};_0x3256e6[_0x396b('0x35')]=_[_0x396b('0x37')](db['CmList']['rawAttributes']);_0x3256e6[_0x396b('0x36')]=_[_0x396b('0x37')](_0x1fe205[_0x396b('0x36')]);_0x3256e6[_0x396b('0x38')]=_[_0x396b('0x39')](_0x3256e6[_0x396b('0x35')],_0x3256e6[_0x396b('0x36')]);_0x5e0b1f[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x3256e6[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x1fe205[_0x396b('0x36')][_0x396b('0x3a')]));_0x5e0b1f['attributes']=_0x5e0b1f[_0x396b('0x3b')]['length']?_0x5e0b1f[_0x396b('0x3b')]:_0x3256e6[_0x396b('0x35')];if(_0x1fe205[_0x396b('0x36')][_0x396b('0x46')]){_0x5e0b1f[_0x396b('0x4c')]=[{'all':!![]}];}_0x5e0b1f=_[_0x396b('0x43')]({},_0x5e0b1f,_0x1fe205['options']);return db[_0x396b('0x4d')][_0x396b('0x4e')](_0x5e0b1f)[_0x396b('0x28')](handleEntityNotFound(_0x545c60,null))[_0x396b('0x28')](respondWithResult(_0x545c60,null))['catch'](handleError(_0x545c60,null));};exports[_0x396b('0x4f')]=function(_0x455366,_0x5a3af7){return db[_0x396b('0x4d')][_0x396b('0x4f')](_0x455366['body'],{})[_0x396b('0x28')](function(_0x527ddc){var _0x556638=_0x455366[_0x396b('0x50')][_0x396b('0x29')]({'plain':!![]});if(!_0x556638)throw new Error(_0x396b('0x51'));if(_0x556638[_0x396b('0x52')]===_0x396b('0x50')){var _0x359876=_0x527ddc['get']({'plain':!![]});var _0xf5566b=_0x396b('0x2a');return db[_0x396b('0x53')][_0x396b('0x4e')]({'where':{'name':_0xf5566b,'userProfileId':_0x556638[_0x396b('0x54')]},'raw':!![]})['then'](function(_0x54d1c5){if(_0x54d1c5&&_0x54d1c5[_0x396b('0x55')]===0x0){return db[_0x396b('0x2b')][_0x396b('0x4f')]({'name':_0x359876[_0x396b('0x2e')],'resourceId':_0x359876['id'],'type':_0x54d1c5[_0x396b('0x2e')],'sectionId':_0x54d1c5['id']},{})[_0x396b('0x28')](function(){return _0x527ddc;});}else{return _0x527ddc;}})[_0x396b('0x49')](function(_0x271e6a){logger[_0x396b('0x2c')](_0x396b('0x56'),_0x271e6a);throw _0x271e6a;});}return _0x527ddc;})[_0x396b('0x28')](respondWithResult(_0x5a3af7,0xc9))[_0x396b('0x49')](handleError(_0x5a3af7,null));};exports['update']=function(_0x1349ac,_0x44cd38){if(_0x1349ac[_0x396b('0x57')]['id']){delete _0x1349ac['body']['id'];}return db['CmList'][_0x396b('0x4e')]({'where':{'id':_0x1349ac[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x44cd38,null))[_0x396b('0x28')](saveUpdates(_0x1349ac[_0x396b('0x57')],null))[_0x396b('0x28')](respondWithResult(_0x44cd38,null))[_0x396b('0x49')](handleError(_0x44cd38,null));};exports[_0x396b('0x27')]=function(_0x58cd88,_0x1c28d6){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x58cd88[_0x396b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1c28d6,null))[_0x396b('0x28')](removeEntity(_0x1c28d6,null))[_0x396b('0x49')](handleError(_0x1c28d6,null));};exports['describe']=function(_0x31d2d5,_0x4af987){return db[_0x396b('0x4d')][_0x396b('0x58')]()[_0x396b('0x28')](respondWithResult(_0x4af987,null))[_0x396b('0x49')](handleError(_0x4af987,null));};exports[_0x396b('0x59')]=function(_0x29aa3a,_0x5c984e,_0x470b08){if(_0x29aa3a[_0x396b('0x57')]['id']){delete _0x29aa3a[_0x396b('0x57')]['id'];}return db['CmList'][_0x396b('0x4e')]({'where':{'id':_0x29aa3a[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x5c984e,null))[_0x396b('0x28')](function(_0x117382){if(_0x117382){_0x29aa3a[_0x396b('0x57')][_0x396b('0x5a')]=_0x117382['id'];return db['Disposition'][_0x396b('0x4f')](_0x29aa3a['body']);}})[_0x396b('0x28')](respondWithResult(_0x5c984e,null))[_0x396b('0x49')](handleError(_0x5c984e,null));};exports['getDispositions']=function(_0x21c81c,_0x8a45eb,_0x2f4c55){var _0x21a7a8={'raw':![],'where':{}};var _0x194025={};var _0xd1e953={'count':0x0,'rows':[]};return db[_0x396b('0x4d')][_0x396b('0x5b')]({'where':{'id':_0x21c81c[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x8a45eb,null))['then'](function(_0x38825a){if(_0x38825a){_0x194025[_0x396b('0x35')]=_[_0x396b('0x37')](db[_0x396b('0x5c')][_0x396b('0x32')]);_0x194025['query']=_['keys'](_0x21c81c[_0x396b('0x36')]);_0x194025[_0x396b('0x38')]=_[_0x396b('0x39')](_0x194025[_0x396b('0x35')],_0x194025[_0x396b('0x36')]);_0x21a7a8[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x194025[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x21c81c[_0x396b('0x36')]['fields']));_0x21a7a8[_0x396b('0x3b')]=_0x21a7a8[_0x396b('0x3b')][_0x396b('0x3c')]?_0x21a7a8[_0x396b('0x3b')]:_0x194025[_0x396b('0x35')];if(!_0x21c81c[_0x396b('0x36')][_0x396b('0x5d')](_0x396b('0x3d'))){_0x21a7a8[_0x396b('0x22')]=qs[_0x396b('0x22')](_0x21c81c[_0x396b('0x36')][_0x396b('0x22')]);_0x21a7a8[_0x396b('0x1f')]=qs[_0x396b('0x1f')](_0x21c81c['query'][_0x396b('0x1f')]);}_0x21a7a8[_0x396b('0x3e')]=qs[_0x396b('0x3f')](_0x21c81c[_0x396b('0x36')][_0x396b('0x3f')]);_0x21a7a8[_0x396b('0x40')]=qs[_0x396b('0x38')](_['pick'](_0x21c81c[_0x396b('0x36')],_0x194025[_0x396b('0x38')]));_0x21a7a8[_0x396b('0x40')]['ListId']=_0x38825a['id'];if(_0x21c81c[_0x396b('0x36')][_0x396b('0x42')]){_0x21a7a8[_0x396b('0x40')]=_[_0x396b('0x43')](_0x21a7a8['where'],{'$or':_[_0x396b('0x31')](_0x21a7a8['attributes'],function(_0x3b22d6){var _0x5cf7df={};_0x5cf7df[_0x3b22d6]={'$like':'%'+_0x21c81c['query'][_0x396b('0x42')]+'%'};return _0x5cf7df;})});}_0x21a7a8=_['merge']({},_0x21a7a8,_0x21c81c[_0x396b('0x45')]);return db[_0x396b('0x5c')][_0x396b('0x21')]({'where':_0x21a7a8[_0x396b('0x40')]})[_0x396b('0x28')](function(_0x4704df){_0xd1e953[_0x396b('0x21')]=_0x4704df;if(_0x21c81c[_0x396b('0x36')][_0x396b('0x46')]){_0x21a7a8[_0x396b('0x4c')]=[{'all':!![]}];}return db['Disposition'][_0x396b('0x47')](_0x21a7a8);})['then'](function(_0x4ab0f8){_0xd1e953['rows']=_0x4ab0f8;return _0xd1e953;});}})['then'](respondWithFilteredResult(_0x8a45eb,_0x21a7a8))[_0x396b('0x49')](handleError(_0x8a45eb,null));};exports['removeDispositions']=function(_0x2c69bd,_0x361b89,_0x23ce9a){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x2c69bd[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x361b89,null))[_0x396b('0x28')](function(_0xca9026){if(_0xca9026){return _0xca9026[_0x396b('0x5e')](_0x2c69bd[_0x396b('0x36')][_0x396b('0x5f')]);}})[_0x396b('0x28')](respondWithStatusCode(_0x361b89,null))[_0x396b('0x49')](handleError(_0x361b89,null));};exports[_0x396b('0x60')]=function(_0xb39f0c,_0x2edbeb,_0x3bbb07){return db['CmList'][_0x396b('0x4e')]({'where':{'id':_0xb39f0c[_0x396b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2edbeb,null))[_0x396b('0x28')](function(_0x8f9ae8){if(_0x8f9ae8){var _0x3817a8=[];var _0x5c1017={'success':[],'errors':[]};return db[_0x396b('0x61')]['describe']()[_0x396b('0x28')](function(_0x757232){if(_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')]&&_['isArray'](_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')])){if(_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')][_0x396b('0x3c')]){_0xb39f0c[_0x396b('0x57')]['tags']=_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')]['join'](';')+';';}else{_0xb39f0c['body']['tags']=null;}}else{_0xb39f0c[_0x396b('0x57')]['tags']=null;}if(_0xb39f0c[_0x396b('0x57')]&&_[_0x396b('0x63')](_0xb39f0c[_0x396b('0x57')])){for(var _0x21ce40=0x0;_0x21ce40<_0xb39f0c[_0x396b('0x57')][_0x396b('0x3c')];_0x21ce40+=0x1){_0xb39f0c[_0x396b('0x57')][_0x21ce40][_0x396b('0x5a')]=_0xb39f0c[_0x396b('0x4b')]['id'];_0x3817a8[_0x396b('0x64')](_0xb39f0c[_0x396b('0x57')][_0x21ce40]);}return BPromise[_0x396b('0x65')](_0x3817a8,function(_0x1e5f58){return db[_0x396b('0x61')][_0x396b('0x4f')](_['omit'](_0x1e5f58,[_0x396b('0x5f'),'id'])||{},{'fields':_[_0x396b('0x37')](_0x757232),'raw':!![]})['then'](function(_0x1d6be8){_0x5c1017[_0x396b('0x66')]['push'](_0x1d6be8[_0x396b('0x67')]);})[_0x396b('0x49')](function(_0x1c4b36){_0x5c1017[_0x396b('0x68')][_0x396b('0x64')]({'data':_0x1e5f58,'error':_0x1c4b36['message']});});})[_0x396b('0x28')](function(_0x48a9e7){return _0x5c1017;})[_0x396b('0x49')](function(_0x283319){return _0x283319;});}else{_0x2edbeb['status'](0x190)[_0x396b('0x1e')]({'message':_0x396b('0x69')});}});}})[_0x396b('0x28')](respondWithResult(_0x2edbeb,null))['catch'](handleError(_0x2edbeb,null));};exports[_0x396b('0x6a')]=function(_0x57e4d9,_0x564a55,_0x570fb3){var _0x127e75;return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x57e4d9[_0x396b('0x4b')]['id']},'include':[{'model':db[_0x396b('0x6b')],'as':_0x396b('0x6c')}]})[_0x396b('0x28')](handleEntityNotFound(_0x564a55,null))[_0x396b('0x28')](function(_0x8c9c6a){if(_0x8c9c6a){_0x127e75=_0x8c9c6a;return db[_0x396b('0x61')]['rawAttributes'];}})['then'](function(_0x3df872){if(_0x3df872){var _0x1e8396={};var _0x21461f={};_0x21461f['model']=_[_0x396b('0x6d')](_[_0x396b('0x37')](_0x3df872),_[_0x396b('0x31')](_0x127e75[_0x396b('0x6c')],function(_0x39fa99){return util[_0x396b('0x6e')](_0x396b('0x6f'),_0x39fa99['id']);}));_0x21461f['query']=_['keys'](_0x57e4d9[_0x396b('0x36')]);_0x21461f[_0x396b('0x38')]=_[_0x396b('0x39')](_0x21461f[_0x396b('0x35')],_0x21461f[_0x396b('0x36')]);_0x1e8396[_0x396b('0x3b')]=_['intersection'](_0x21461f[_0x396b('0x35')],qs['fields'](_0x57e4d9[_0x396b('0x36')][_0x396b('0x3a')]));_0x1e8396[_0x396b('0x3b')]=_0x1e8396[_0x396b('0x3b')][_0x396b('0x3c')]?_0x1e8396[_0x396b('0x3b')]:_0x21461f[_0x396b('0x35')];if(!_0x57e4d9[_0x396b('0x36')][_0x396b('0x5d')](_0x396b('0x3d'))){_0x1e8396[_0x396b('0x22')]=qs['limit'](_0x57e4d9[_0x396b('0x36')][_0x396b('0x22')]);_0x1e8396[_0x396b('0x1f')]=qs[_0x396b('0x1f')](_0x57e4d9[_0x396b('0x36')][_0x396b('0x1f')]);}_0x1e8396[_0x396b('0x3e')]=qs[_0x396b('0x3f')](_0x57e4d9['query'][_0x396b('0x3f')]);_0x1e8396[_0x396b('0x40')]=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x57e4d9[_0x396b('0x36')],_0x21461f['filters']));_0x1e8396[_0x396b('0x70')]=!![];if(_0x57e4d9[_0x396b('0x36')][_0x396b('0x42')]){_0x1e8396[_0x396b('0x40')]=_[_0x396b('0x43')](_0x1e8396[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0x1e8396[_0x396b('0x3b')],function(_0x22f81a){var _0x452e3c={};_0x452e3c[_0x22f81a]={'$like':'%'+_0x57e4d9[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x452e3c;})});}_0x1e8396=_[_0x396b('0x43')]({},_0x1e8396,_0x57e4d9[_0x396b('0x45')]);return _0x127e75[_0x396b('0x6a')](_0x1e8396);}})[_0x396b('0x28')](respondWithResult(_0x564a55,null))['catch'](handleError(_0x564a55,null));};exports[_0x396b('0x71')]=function(_0x34db8b,_0x445585,_0x25f918){var _0x10e287;return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x34db8b[_0x396b('0x4b')]['id']},'include':[{'model':db[_0x396b('0x6b')],'as':'CustomFields'}]})[_0x396b('0x28')](handleEntityNotFound(_0x445585,null))[_0x396b('0x28')](function(_0x4e51a5){if(_0x4e51a5){_0x10e287=_0x4e51a5;return db[_0x396b('0x61')]['rawAttributes'];}})[_0x396b('0x28')](function(_0x502e92){if(_0x502e92){var _0x1dd69f={};var _0xff2e5e={};_0xff2e5e['model']=_[_0x396b('0x6d')](_[_0x396b('0x37')](_0x502e92),_[_0x396b('0x31')](_0x10e287['CustomFields'],function(_0x449817){return util['format'](_0x396b('0x6f'),_0x449817['id']);}));_0xff2e5e[_0x396b('0x36')]=_[_0x396b('0x37')](_0x34db8b[_0x396b('0x36')]);_0xff2e5e['filters']=_[_0x396b('0x39')](_0xff2e5e[_0x396b('0x35')],_0xff2e5e[_0x396b('0x36')]);_0x1dd69f[_0x396b('0x3b')]=_[_0x396b('0x39')](_0xff2e5e[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x34db8b[_0x396b('0x36')][_0x396b('0x3a')]));_0x1dd69f[_0x396b('0x3b')]=_0x1dd69f['attributes'][_0x396b('0x3c')]?_0x1dd69f[_0x396b('0x3b')]:_0xff2e5e[_0x396b('0x35')];if(!_0x34db8b['query'][_0x396b('0x5d')](_0x396b('0x3d'))){_0x1dd69f['limit']=qs['limit'](_0x34db8b['query'][_0x396b('0x22')]);_0x1dd69f[_0x396b('0x1f')]=qs['offset'](_0x34db8b[_0x396b('0x36')][_0x396b('0x1f')]);}_0x1dd69f[_0x396b('0x3e')]=qs['sort'](_0x34db8b['query'][_0x396b('0x3f')]);_0x1dd69f['where']=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x34db8b[_0x396b('0x36')],_0xff2e5e[_0x396b('0x38')]));_0x1dd69f[_0x396b('0x70')]=!![];if(_0x34db8b[_0x396b('0x36')]['filter']){_0x1dd69f['where']=_[_0x396b('0x43')](_0x1dd69f[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0x1dd69f[_0x396b('0x3b')],function(_0x59ceb2){var _0x12140b={};_0x12140b[_0x59ceb2]={'$like':'%'+_0x34db8b[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x12140b;})});}_0x1dd69f=_[_0x396b('0x43')]({},_0x1dd69f,_0x34db8b[_0x396b('0x45')]);return _0x10e287[_0x396b('0x6a')](_0x1dd69f);}})['then'](function(_0xda6db5){if(!_['isEmpty'](_0xda6db5)){var _0x35f389=toCsv(_0xda6db5);var _0x22c7b1=Date[_0x396b('0x72')]();fs[_0x396b('0x73')](util[_0x396b('0x6e')]('/tmp/list_%d_%s.csv',_0x10e287['id'],_0x22c7b1),_0x35f389);_0x445585[_0x396b('0x74')]('Content-disposition',_0x396b('0x75')+util[_0x396b('0x6e')](_0x396b('0x76'),_0x10e287['id'],_0x22c7b1));_0x445585[_0x396b('0x74')](_0x396b('0x77'),'text/csv');return _0x445585['download'](util[_0x396b('0x6e')](_0x396b('0x78'),_0x10e287['id'],_0x22c7b1));}else{return _0x445585[_0x396b('0x79')](0xcc);}})[_0x396b('0x49')](handleError(_0x445585,null));};exports[_0x396b('0x7a')]=function(_0x2e607a,_0x1061d3,_0xaf10ca){var _0x3ca36e;delete _0x2e607a[_0x396b('0x57')]['id'];return db[_0x396b('0x4d')][_0x396b('0x5b')]({'where':{'id':_0x2e607a[_0x396b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1061d3,null))[_0x396b('0x28')](function(_0xd132d2){if(_0xd132d2){return db['sequelize'][_0x396b('0x7b')](function(_0x15556f){return db['CmCustomField']['create'](_0x2e607a['body'],{'transaction':_0x15556f})[_0x396b('0x28')](function(_0x1dc5df){_0x3ca36e=_0x1dc5df;return _0xd132d2['addCustomFields'](_0x1dc5df,{'transaction':_0x15556f});})['then'](function(){var _0x4bdf98={'type':db[_0x396b('0x7c')][_0x396b('0x7d')],'transaction':_0x15556f};switch(_0x2e607a[_0x396b('0x57')][_0x396b('0x33')]){case _0x396b('0x7e'):_0x4bdf98[_0x396b('0x33')]=db[_0x396b('0x7c')][_0x396b('0x7d')];break;case _0x396b('0x7f'):_0x4bdf98[_0x396b('0x33')]=db[_0x396b('0x7c')][_0x396b('0x80')];break;case _0x396b('0x81'):_0x4bdf98[_0x396b('0x33')]=db['Sequelize'][_0x396b('0x82')];_0x4bdf98[_0x396b('0x83')]=![];break;default:}return db[_0x396b('0x84')][_0x396b('0x85')][_0x396b('0x86')](_0x396b('0x87'),util[_0x396b('0x6e')](_0x396b('0x88'),_0x3ca36e['id']),_0x4bdf98);})[_0x396b('0x28')](function(){return _0x3ca36e;});});}})[_0x396b('0x28')](respondWithResult(_0x1061d3,null))[_0x396b('0x49')](handleError(_0x1061d3,null));};exports[_0x396b('0x89')]=function(_0x49c6c5,_0x4549c6,_0x56bd0c){var _0x4dc5b8={};var _0x51b1f5={};var _0x56a940;var _0x600a95;return db[_0x396b('0x4d')][_0x396b('0x5b')]({'where':{'id':_0x49c6c5[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x4549c6,null))['then'](function(_0x4623e6){if(_0x4623e6){_0x56a940=_0x4623e6;_0x51b1f5['model']=_[_0x396b('0x37')](db['CmCustomField'][_0x396b('0x32')]);_0x51b1f5['query']=_[_0x396b('0x37')](_0x49c6c5['query']);_0x51b1f5[_0x396b('0x38')]=_[_0x396b('0x39')](_0x51b1f5[_0x396b('0x35')],_0x51b1f5[_0x396b('0x36')]);_0x4dc5b8[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x51b1f5['model'],qs['fields'](_0x49c6c5[_0x396b('0x36')][_0x396b('0x3a')]));_0x4dc5b8[_0x396b('0x3b')]=_0x4dc5b8[_0x396b('0x3b')]['length']?_0x4dc5b8[_0x396b('0x3b')]:_0x51b1f5[_0x396b('0x35')];_0x4dc5b8[_0x396b('0x3e')]=qs['sort'](_0x49c6c5['query'][_0x396b('0x3f')]);_0x4dc5b8[_0x396b('0x40')]=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x49c6c5[_0x396b('0x36')],_0x51b1f5[_0x396b('0x38')]));_0x4dc5b8[_0x396b('0x40')]=_['merge'](_0x4dc5b8['where'],{'$or':[{'ListId':_0x4623e6['id']},{'ListId':null}]});if(_0x49c6c5[_0x396b('0x36')][_0x396b('0x42')]){_0x4dc5b8[_0x396b('0x40')]=_[_0x396b('0x43')](_0x4dc5b8[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0x4dc5b8['attributes'],function(_0x1a18d8){var _0x1a09f6={};_0x1a09f6[_0x1a18d8]={'$like':'%'+_0x49c6c5[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x1a09f6;})});}_0x4dc5b8=_[_0x396b('0x43')]({},_0x4dc5b8,_0x49c6c5[_0x396b('0x45')]);return db[_0x396b('0x6b')]['findAndCountAll'](_0x4dc5b8);}})[_0x396b('0x28')](respondWithResult(_0x4549c6,null))['catch'](handleError(_0x4549c6,null));};exports[_0x396b('0x8a')]=function(_0x2f775a,_0x2749ea,_0x207c6a){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x2f775a['params']['id']}})['then'](handleEntityNotFound(_0x2749ea,null))['then'](function(_0xd63835){if(_0xd63835){return _0xd63835[_0x396b('0x8a')](_0x2f775a[_0x396b('0x57')][_0x396b('0x5f')],_[_0x396b('0x8b')](_0x2f775a['body'],[_0x396b('0x5f'),'id'])||{})[_0x396b('0x8c')](function(_0x1e883b){for(var _0x4ef0e0=0x0;_0x4ef0e0<_0x2f775a[_0x396b('0x57')][_0x396b('0x5f')][_0x396b('0x3c')];_0x4ef0e0+=0x1){socket[_0x396b('0x8d')](_0x396b('0x8e'),{'UserId':Number(_0x2f775a[_0x396b('0x57')][_0x396b('0x5f')][_0x4ef0e0]),'CmListId':Number(_0x2f775a[_0x396b('0x4b')]['id'])});}return _0x1e883b;});}})[_0x396b('0x28')](respondWithResult(_0x2749ea,null))['catch'](handleError(_0x2749ea,null));};exports[_0x396b('0x8f')]=function(_0x3d75e9,_0x1f8351,_0x40224a){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x3d75e9[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x1f8351,null))[_0x396b('0x28')](function(_0x49cab8){if(_0x49cab8){return _0x49cab8[_0x396b('0x8f')](_0x3d75e9[_0x396b('0x36')]['ids'])[_0x396b('0x28')](function(){if(_[_0x396b('0x63')](_0x3d75e9['query'][_0x396b('0x5f')])){for(var _0x2e9c29=0x0;_0x2e9c29<_0x3d75e9['query'][_0x396b('0x5f')]['length'];_0x2e9c29+=0x1){socket[_0x396b('0x8d')](_0x396b('0x90'),{'UserId':Number(_0x3d75e9[_0x396b('0x36')][_0x396b('0x5f')][_0x2e9c29]),'CmListId':Number(_0x3d75e9[_0x396b('0x4b')]['id'])});}}else{socket[_0x396b('0x8d')](_0x396b('0x90'),{'UserId':Number(_0x3d75e9[_0x396b('0x36')][_0x396b('0x5f')]),'CmListId':Number(_0x3d75e9[_0x396b('0x4b')]['id'])});}});}})['then'](respondWithStatusCode(_0x1f8351,null))['catch'](handleError(_0x1f8351,null));};exports['getAgents']=function(_0x1ae2a7,_0x3c563a,_0xd603a3){var _0x1f3434={};var _0x114a52={};var _0x2ec324;var _0x2b2311;return db['CmList'][_0x396b('0x5b')]({'where':{'id':_0x1ae2a7[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x3c563a,null))[_0x396b('0x28')](function(_0x3b2333){if(_0x3b2333){_0x2ec324=_0x3b2333;_0x114a52['model']=_[_0x396b('0x37')](db[_0x396b('0x91')][_0x396b('0x32')]);_0x114a52[_0x396b('0x36')]=_[_0x396b('0x37')](_0x1ae2a7[_0x396b('0x36')]);_0x114a52[_0x396b('0x38')]=_['intersection'](_0x114a52['model'],_0x114a52['query']);_0x1f3434[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x114a52[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x1ae2a7[_0x396b('0x36')][_0x396b('0x3a')]));_0x1f3434[_0x396b('0x3b')]=_0x1f3434[_0x396b('0x3b')][_0x396b('0x3c')]?_0x1f3434[_0x396b('0x3b')]:_0x114a52[_0x396b('0x35')];_0x1f3434[_0x396b('0x3e')]=qs[_0x396b('0x3f')](_0x1ae2a7['query']['sort']);_0x1f3434[_0x396b('0x40')]=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x1ae2a7['query'],_0x114a52[_0x396b('0x38')]));if(_0x1ae2a7[_0x396b('0x36')]['filter']){_0x1f3434[_0x396b('0x40')]=_[_0x396b('0x43')](_0x1f3434['where'],{'$or':_[_0x396b('0x31')](_0x1f3434[_0x396b('0x3b')],function(_0x150cf3){var _0x1cb39d={};_0x1cb39d[_0x150cf3]={'$like':'%'+_0x1ae2a7[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x1cb39d;})});}_0x1f3434=_[_0x396b('0x43')]({},_0x1f3434,_0x1ae2a7[_0x396b('0x45')]);return _0x2ec324[_0x396b('0x92')](_0x1f3434);}})[_0x396b('0x28')](function(_0x11dee4){if(_0x11dee4){_0x2b2311=_0x11dee4[_0x396b('0x3c')];if(!_0x1ae2a7[_0x396b('0x36')][_0x396b('0x5d')](_0x396b('0x3d'))){_0x1f3434[_0x396b('0x22')]=qs[_0x396b('0x22')](_0x1ae2a7[_0x396b('0x36')][_0x396b('0x22')]);_0x1f3434[_0x396b('0x1f')]=qs['offset'](_0x1ae2a7[_0x396b('0x36')][_0x396b('0x1f')]);}return _0x2ec324['getAgents'](_0x1f3434);}})[_0x396b('0x28')](function(_0x2f4ee3){if(_0x2f4ee3){return _0x2f4ee3?{'count':_0x2b2311,'rows':_0x2f4ee3}:null;}})[_0x396b('0x28')](respondWithResult(_0x3c563a,null))['catch'](handleError(_0x3c563a,null));};
\ No newline at end of file
+var _0x50ec=['includeAll','removeDispositions','ids','addContacts','tags','join','push','each','CmContact','omit','success','errors','message','Malformed\x20request\x20syntax','getContacts','CmCustomField','concat','CustomFields','format','cf_%d','getContactsCsv','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Content-type','text/csv','download','sequelize','transaction','Sequelize','text','TEXT','number','switch','defaultValue','addColumn','cm_contacts','cf_%s','getCustomFields','order','findAndCountAll','addAgents','spread','emit','userCmList:save','removeAgents','isArray','userCmList:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','Lists','UserProfileResource','destroy','error','stack','name','send','index','CmList','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','filter','where','merge','VIRTUAL','options','include','findAll','catch','params','keys','find','create','body','user','get','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','ListId','Disposition','getDispositions','findOne','pick'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x50ec,0xc9));var _0xc50e=function(_0x58f7ad,_0xc1732a){_0x58f7ad=_0x58f7ad-0x0;var _0x5c96bc=_0x50ec[_0x58f7ad];return _0x5c96bc;};'use strict';var emlformat=require(_0xc50e('0x0'));var rimraf=require(_0xc50e('0x1'));var zipdir=require(_0xc50e('0x2'));var jsonpatch=require(_0xc50e('0x3'));var rp=require(_0xc50e('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xc50e('0x5'));var util=require('util');var path=require(_0xc50e('0x6'));var sox=require(_0xc50e('0x7'));var csv=require(_0xc50e('0x8'));var ejs=require(_0xc50e('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc50e('0xa'));var squel=require(_0xc50e('0xb'));var crypto=require(_0xc50e('0xc'));var jsforce=require(_0xc50e('0xd'));var deskjs=require(_0xc50e('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc50e('0xf'));var Redis=require('ioredis');var authService=require(_0xc50e('0x10'));var qs=require(_0xc50e('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc50e('0x12'));var logger=require(_0xc50e('0x13'))(_0xc50e('0x14'));var utils=require(_0xc50e('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xc50e('0x16'));var db=require(_0xc50e('0x17'))['db'];config['redis']=_[_0xc50e('0x18')](config[_0xc50e('0x19')],{'host':_0xc50e('0x1a'),'port':0x18eb});var socket=require(_0xc50e('0x1b'))(new Redis(config[_0xc50e('0x19')]));require('./cmList.socket')[_0xc50e('0x1c')](socket);function respondWithStatusCode(_0x220f32,_0xf17caa){_0xf17caa=_0xf17caa||0xcc;return function(_0x15812d){if(_0x15812d){return _0x220f32[_0xc50e('0x1d')](_0xf17caa);}return _0x220f32[_0xc50e('0x1e')](_0xf17caa)[_0xc50e('0x1f')]();};}function respondWithResult(_0x3e19d9,_0x20172c){_0x20172c=_0x20172c||0xc8;return function(_0x40e9e9){if(_0x40e9e9){return _0x3e19d9['status'](_0x20172c)[_0xc50e('0x20')](_0x40e9e9);}};}function respondWithFilteredResult(_0x58d3ba,_0x3097b2){return function(_0x19bc4c){if(_0x19bc4c){var _0x19b32f=typeof _0x3097b2[_0xc50e('0x21')]===_0xc50e('0x22')&&typeof _0x3097b2['limit']==='undefined';var _0x1f358f=_0x19bc4c[_0xc50e('0x23')];var _0xee4c8f=_0x19b32f?0x0:_0x3097b2[_0xc50e('0x21')];var _0x5c8bc8=_0x19b32f?_0x19bc4c[_0xc50e('0x23')]:_0x3097b2['offset']+_0x3097b2['limit'];var _0x510f92;if(_0x5c8bc8>=_0x1f358f){_0x5c8bc8=_0x1f358f;_0x510f92=0xc8;}else{_0x510f92=0xce;}_0x58d3ba[_0xc50e('0x1e')](_0x510f92);return _0x58d3ba[_0xc50e('0x24')](_0xc50e('0x25'),_0xee4c8f+'-'+_0x5c8bc8+'/'+_0x1f358f)[_0xc50e('0x20')](_0x19bc4c);}return null;};}function patchUpdates(_0x108178){return function(_0x3f01dc){try{jsonpatch[_0xc50e('0x26')](_0x3f01dc,_0x108178,!![]);}catch(_0x24c5ab){return BPromise[_0xc50e('0x27')](_0x24c5ab);}return _0x3f01dc[_0xc50e('0x28')]();};}function saveUpdates(_0x1ec0e7,_0x33f9a7){return function(_0x4ac95a){if(_0x4ac95a){return _0x4ac95a[_0xc50e('0x29')](_0x1ec0e7)[_0xc50e('0x2a')](function(_0x18e52d){return _0x18e52d;});}return null;};}function removeEntity(_0x1659ae,_0x26022a){return function(_0x227040){if(_0x227040){return _0x227040['destroy']()[_0xc50e('0x2a')](function(){var _0x4f7e04=_0x227040['get']({'plain':!![]});var _0xccfd10=_0xc50e('0x2b');return db[_0xc50e('0x2c')][_0xc50e('0x2d')]({'where':{'type':_0xccfd10,'resourceId':_0x4f7e04['id']}})[_0xc50e('0x2a')](function(){return _0x227040;});})['then'](function(){_0x1659ae[_0xc50e('0x1e')](0xcc)[_0xc50e('0x1f')]();});}};}function handleEntityNotFound(_0x2dc769,_0x530d81){return function(_0x15e167){if(!_0x15e167){_0x2dc769[_0xc50e('0x1d')](0x194);}return _0x15e167;};}function handleError(_0x5ec8ab,_0x38f1b4){_0x38f1b4=_0x38f1b4||0x1f4;return function(_0x236846){logger[_0xc50e('0x2e')](_0x236846[_0xc50e('0x2f')]);if(_0x236846['name']){delete _0x236846[_0xc50e('0x30')];}_0x5ec8ab[_0xc50e('0x1e')](_0x38f1b4)[_0xc50e('0x31')](_0x236846);};}exports[_0xc50e('0x32')]=function(_0x360103,_0x55f4bf){var _0x58067d={},_0x56621c={},_0x37e34d={'count':0x0,'rows':[]};var _0x2019d6=_['map'](db[_0xc50e('0x33')][_0xc50e('0x34')],function(_0x43b658){return{'name':_0x43b658[_0xc50e('0x35')],'type':_0x43b658[_0xc50e('0x36')][_0xc50e('0x37')]};});_0x56621c[_0xc50e('0x38')]=_[_0xc50e('0x39')](_0x2019d6,'name');_0x56621c[_0xc50e('0x3a')]=_['keys'](_0x360103[_0xc50e('0x3a')]);_0x56621c[_0xc50e('0x3b')]=_[_0xc50e('0x3c')](_0x56621c['model'],_0x56621c[_0xc50e('0x3a')]);_0x58067d[_0xc50e('0x3d')]=_[_0xc50e('0x3c')](_0x56621c[_0xc50e('0x38')],qs[_0xc50e('0x3e')](_0x360103[_0xc50e('0x3a')][_0xc50e('0x3e')]));_0x58067d[_0xc50e('0x3d')]=_0x58067d[_0xc50e('0x3d')][_0xc50e('0x3f')]?_0x58067d[_0xc50e('0x3d')]:_0x56621c[_0xc50e('0x38')];if(!_0x360103[_0xc50e('0x3a')][_0xc50e('0x40')](_0xc50e('0x41'))){_0x58067d['limit']=qs[_0xc50e('0x42')](_0x360103[_0xc50e('0x3a')][_0xc50e('0x42')]);_0x58067d['offset']=qs[_0xc50e('0x21')](_0x360103['query'][_0xc50e('0x21')]);}_0x58067d['order']=qs[_0xc50e('0x43')](_0x360103[_0xc50e('0x3a')][_0xc50e('0x43')]);_0x58067d['where']=qs[_0xc50e('0x3b')](_['pick'](_0x360103[_0xc50e('0x3a')],_0x56621c[_0xc50e('0x3b')]),_0x2019d6);if(_0x360103[_0xc50e('0x3a')][_0xc50e('0x44')]){_0x58067d[_0xc50e('0x45')]=_[_0xc50e('0x46')](_0x58067d[_0xc50e('0x45')],{'$or':_[_0xc50e('0x39')](_0x2019d6,function(_0xea42e4){if(_0xea42e4[_0xc50e('0x36')]!==_0xc50e('0x47')){var _0x1269d3={};_0x1269d3[_0xea42e4[_0xc50e('0x30')]]={'$like':'%'+_0x360103['query'][_0xc50e('0x44')]+'%'};return _0x1269d3;}})});}_0x58067d=_[_0xc50e('0x46')]({},_0x58067d,_0x360103[_0xc50e('0x48')]);var _0x369b81={'where':_0x58067d[_0xc50e('0x45')]};return db[_0xc50e('0x33')][_0xc50e('0x23')](_0x369b81)['then'](function(_0x121ad0){_0x37e34d[_0xc50e('0x23')]=_0x121ad0;if(_0x360103[_0xc50e('0x3a')]['includeAll']){_0x58067d[_0xc50e('0x49')]=[{'all':!![]}];}return db['CmList'][_0xc50e('0x4a')](_0x58067d);})[_0xc50e('0x2a')](function(_0xaea724){_0x37e34d['rows']=_0xaea724;return _0x37e34d;})[_0xc50e('0x2a')](respondWithFilteredResult(_0x55f4bf,_0x58067d))[_0xc50e('0x4b')](handleError(_0x55f4bf,null));};exports['show']=function(_0x595f59,_0x4ceda5){var _0x2b7015={'raw':![],'where':{'id':_0x595f59[_0xc50e('0x4c')]['id']}},_0x1426ab={};_0x1426ab['model']=_[_0xc50e('0x4d')](db[_0xc50e('0x33')][_0xc50e('0x34')]);_0x1426ab['query']=_[_0xc50e('0x4d')](_0x595f59['query']);_0x1426ab[_0xc50e('0x3b')]=_[_0xc50e('0x3c')](_0x1426ab[_0xc50e('0x38')],_0x1426ab['query']);_0x2b7015[_0xc50e('0x3d')]=_[_0xc50e('0x3c')](_0x1426ab['model'],qs[_0xc50e('0x3e')](_0x595f59[_0xc50e('0x3a')]['fields']));_0x2b7015['attributes']=_0x2b7015[_0xc50e('0x3d')][_0xc50e('0x3f')]?_0x2b7015[_0xc50e('0x3d')]:_0x1426ab['model'];if(_0x595f59[_0xc50e('0x3a')]['includeAll']){_0x2b7015[_0xc50e('0x49')]=[{'all':!![]}];}_0x2b7015=_[_0xc50e('0x46')]({},_0x2b7015,_0x595f59[_0xc50e('0x48')]);return db[_0xc50e('0x33')][_0xc50e('0x4e')](_0x2b7015)[_0xc50e('0x2a')](handleEntityNotFound(_0x4ceda5,null))[_0xc50e('0x2a')](respondWithResult(_0x4ceda5,null))[_0xc50e('0x4b')](handleError(_0x4ceda5,null));};exports['create']=function(_0x35c0ae,_0x3d898b){return db[_0xc50e('0x33')][_0xc50e('0x4f')](_0x35c0ae[_0xc50e('0x50')],{})['then'](function(_0xdb89e0){var _0x2b57b1=_0x35c0ae[_0xc50e('0x51')][_0xc50e('0x52')]({'plain':!![]});if(!_0x2b57b1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2b57b1[_0xc50e('0x53')]===_0xc50e('0x51')){var _0x23bcfb=_0xdb89e0[_0xc50e('0x52')]({'plain':!![]});var _0x24417=_0xc50e('0x2b');return db[_0xc50e('0x54')][_0xc50e('0x4e')]({'where':{'name':_0x24417,'userProfileId':_0x2b57b1[_0xc50e('0x55')]},'raw':!![]})[_0xc50e('0x2a')](function(_0x257274){if(_0x257274&&_0x257274[_0xc50e('0x56')]===0x0){return db[_0xc50e('0x2c')][_0xc50e('0x4f')]({'name':_0x23bcfb[_0xc50e('0x30')],'resourceId':_0x23bcfb['id'],'type':_0x257274[_0xc50e('0x30')],'sectionId':_0x257274['id']},{})[_0xc50e('0x2a')](function(){return _0xdb89e0;});}else{return _0xdb89e0;}})[_0xc50e('0x4b')](function(_0x2a88b7){logger[_0xc50e('0x2e')](_0xc50e('0x57'),_0x2a88b7);throw _0x2a88b7;});}return _0xdb89e0;})[_0xc50e('0x2a')](respondWithResult(_0x3d898b,0xc9))[_0xc50e('0x4b')](handleError(_0x3d898b,null));};exports['update']=function(_0x19ad74,_0x12c389){if(_0x19ad74['body']['id']){delete _0x19ad74['body']['id'];}return db[_0xc50e('0x33')]['find']({'where':{'id':_0x19ad74['params']['id']}})[_0xc50e('0x2a')](handleEntityNotFound(_0x12c389,null))[_0xc50e('0x2a')](saveUpdates(_0x19ad74['body'],null))[_0xc50e('0x2a')](respondWithResult(_0x12c389,null))['catch'](handleError(_0x12c389,null));};exports['destroy']=function(_0x2d2165,_0x130ff2){return db[_0xc50e('0x33')]['find']({'where':{'id':_0x2d2165['params']['id']}})[_0xc50e('0x2a')](handleEntityNotFound(_0x130ff2,null))[_0xc50e('0x2a')](removeEntity(_0x130ff2,null))[_0xc50e('0x4b')](handleError(_0x130ff2,null));};exports[_0xc50e('0x58')]=function(_0x1c3057,_0xddd0e0){return db['CmList'][_0xc50e('0x58')]()['then'](respondWithResult(_0xddd0e0,null))[_0xc50e('0x4b')](handleError(_0xddd0e0,null));};exports[_0xc50e('0x59')]=function(_0x570c5b,_0x372782,_0x502a08){if(_0x570c5b['body']['id']){delete _0x570c5b[_0xc50e('0x50')]['id'];}return db['CmList']['find']({'where':{'id':_0x570c5b[_0xc50e('0x4c')]['id']}})['then'](handleEntityNotFound(_0x372782,null))[_0xc50e('0x2a')](function(_0x1bce5b){if(_0x1bce5b){_0x570c5b['body'][_0xc50e('0x5a')]=_0x1bce5b['id'];return db[_0xc50e('0x5b')][_0xc50e('0x4f')](_0x570c5b['body']);}})['then'](respondWithResult(_0x372782,null))[_0xc50e('0x4b')](handleError(_0x372782,null));};exports[_0xc50e('0x5c')]=function(_0x1897af,_0x3232d0,_0x4c737f){var _0x1fc1af={'raw':![],'where':{}};var _0x431ee1={};var _0x3b41b1={'count':0x0,'rows':[]};return db[_0xc50e('0x33')][_0xc50e('0x5d')]({'where':{'id':_0x1897af[_0xc50e('0x4c')]['id']}})[_0xc50e('0x2a')](handleEntityNotFound(_0x3232d0,null))[_0xc50e('0x2a')](function(_0x2d65f1){if(_0x2d65f1){_0x431ee1[_0xc50e('0x38')]=_['keys'](db[_0xc50e('0x5b')]['rawAttributes']);_0x431ee1[_0xc50e('0x3a')]=_['keys'](_0x1897af[_0xc50e('0x3a')]);_0x431ee1[_0xc50e('0x3b')]=_[_0xc50e('0x3c')](_0x431ee1['model'],_0x431ee1['query']);_0x1fc1af['attributes']=_['intersection'](_0x431ee1[_0xc50e('0x38')],qs['fields'](_0x1897af[_0xc50e('0x3a')][_0xc50e('0x3e')]));_0x1fc1af[_0xc50e('0x3d')]=_0x1fc1af[_0xc50e('0x3d')][_0xc50e('0x3f')]?_0x1fc1af[_0xc50e('0x3d')]:_0x431ee1[_0xc50e('0x38')];if(!_0x1897af[_0xc50e('0x3a')][_0xc50e('0x40')]('nolimit')){_0x1fc1af[_0xc50e('0x42')]=qs[_0xc50e('0x42')](_0x1897af[_0xc50e('0x3a')][_0xc50e('0x42')]);_0x1fc1af['offset']=qs[_0xc50e('0x21')](_0x1897af[_0xc50e('0x3a')][_0xc50e('0x21')]);}_0x1fc1af['order']=qs[_0xc50e('0x43')](_0x1897af[_0xc50e('0x3a')][_0xc50e('0x43')]);_0x1fc1af['where']=qs[_0xc50e('0x3b')](_[_0xc50e('0x5e')](_0x1897af[_0xc50e('0x3a')],_0x431ee1[_0xc50e('0x3b')]));_0x1fc1af[_0xc50e('0x45')][_0xc50e('0x5a')]=_0x2d65f1['id'];if(_0x1897af['query'][_0xc50e('0x44')]){_0x1fc1af[_0xc50e('0x45')]=_[_0xc50e('0x46')](_0x1fc1af[_0xc50e('0x45')],{'$or':_[_0xc50e('0x39')](_0x1fc1af[_0xc50e('0x3d')],function(_0x423df3){var _0x5958eb={};_0x5958eb[_0x423df3]={'$like':'%'+_0x1897af[_0xc50e('0x3a')]['filter']+'%'};return _0x5958eb;})});}_0x1fc1af=_[_0xc50e('0x46')]({},_0x1fc1af,_0x1897af['options']);return db[_0xc50e('0x5b')][_0xc50e('0x23')]({'where':_0x1fc1af['where']})[_0xc50e('0x2a')](function(_0x32bc0c){_0x3b41b1['count']=_0x32bc0c;if(_0x1897af[_0xc50e('0x3a')][_0xc50e('0x5f')]){_0x1fc1af[_0xc50e('0x49')]=[{'all':!![]}];}return db[_0xc50e('0x5b')][_0xc50e('0x4a')](_0x1fc1af);})[_0xc50e('0x2a')](function(_0xb3129b){_0x3b41b1['rows']=_0xb3129b;return _0x3b41b1;});}})[_0xc50e('0x2a')](respondWithFilteredResult(_0x3232d0,_0x1fc1af))[_0xc50e('0x4b')](handleError(_0x3232d0,null));};exports[_0xc50e('0x60')]=function(_0x2db9a1,_0x546f82,_0x21c160){return db[_0xc50e('0x33')][_0xc50e('0x4e')]({'where':{'id':_0x2db9a1[_0xc50e('0x4c')]['id']}})['then'](handleEntityNotFound(_0x546f82,null))['then'](function(_0x24b089){if(_0x24b089){return _0x24b089['removeDispositions'](_0x2db9a1[_0xc50e('0x3a')][_0xc50e('0x61')]);}})['then'](respondWithStatusCode(_0x546f82,null))['catch'](handleError(_0x546f82,null));};exports[_0xc50e('0x62')]=function(_0x5320b3,_0x21b513,_0x590bee){return db['CmList'][_0xc50e('0x4e')]({'where':{'id':_0x5320b3[_0xc50e('0x4c')]['id']}})[_0xc50e('0x2a')](handleEntityNotFound(_0x21b513,null))[_0xc50e('0x2a')](function(_0x491211){if(_0x491211){var _0x17893d=[];var _0x5151e9={'success':[],'errors':[]};return db['CmContact'][_0xc50e('0x58')]()[_0xc50e('0x2a')](function(_0x61fe9e){if(_0x5320b3[_0xc50e('0x50')][_0xc50e('0x63')]&&_['isArray'](_0x5320b3[_0xc50e('0x50')][_0xc50e('0x63')])){if(_0x5320b3[_0xc50e('0x50')][_0xc50e('0x63')][_0xc50e('0x3f')]){_0x5320b3['body'][_0xc50e('0x63')]=_0x5320b3['body']['tags'][_0xc50e('0x64')](';')+';';}else{_0x5320b3['body'][_0xc50e('0x63')]=null;}}else{_0x5320b3[_0xc50e('0x50')][_0xc50e('0x63')]=null;}if(_0x5320b3['body']&&_['isArray'](_0x5320b3[_0xc50e('0x50')])){for(var _0x3274f5=0x0;_0x3274f5<_0x5320b3[_0xc50e('0x50')][_0xc50e('0x3f')];_0x3274f5+=0x1){_0x5320b3[_0xc50e('0x50')][_0x3274f5][_0xc50e('0x5a')]=_0x5320b3[_0xc50e('0x4c')]['id'];_0x17893d[_0xc50e('0x65')](_0x5320b3['body'][_0x3274f5]);}return BPromise[_0xc50e('0x66')](_0x17893d,function(_0x41d221){return db[_0xc50e('0x67')]['create'](_[_0xc50e('0x68')](_0x41d221,[_0xc50e('0x61'),'id'])||{},{'fields':_[_0xc50e('0x4d')](_0x61fe9e),'raw':!![]})['then'](function(_0xc7532d){_0x5151e9[_0xc50e('0x69')][_0xc50e('0x65')](_0xc7532d['dataValues']);})[_0xc50e('0x4b')](function(_0x27db99){_0x5151e9[_0xc50e('0x6a')][_0xc50e('0x65')]({'data':_0x41d221,'error':_0x27db99[_0xc50e('0x6b')]});});})[_0xc50e('0x2a')](function(_0x4f1b87){return _0x5151e9;})['catch'](function(_0x49ff15){return _0x49ff15;});}else{_0x21b513[_0xc50e('0x1e')](0x190)['json']({'message':_0xc50e('0x6c')});}});}})[_0xc50e('0x2a')](respondWithResult(_0x21b513,null))[_0xc50e('0x4b')](handleError(_0x21b513,null));};exports[_0xc50e('0x6d')]=function(_0x4c0693,_0x152412,_0xedfb0a){var _0x12bc67;return db['CmList'][_0xc50e('0x4e')]({'where':{'id':_0x4c0693[_0xc50e('0x4c')]['id']},'include':[{'model':db[_0xc50e('0x6e')],'as':'CustomFields'}]})['then'](handleEntityNotFound(_0x152412,null))[_0xc50e('0x2a')](function(_0x4f6ad3){if(_0x4f6ad3){_0x12bc67=_0x4f6ad3;return db[_0xc50e('0x67')][_0xc50e('0x34')];}})[_0xc50e('0x2a')](function(_0x1692bb){if(_0x1692bb){var _0x2ed6cc={};var _0x4b2527={};_0x4b2527[_0xc50e('0x38')]=_[_0xc50e('0x6f')](_['keys'](_0x1692bb),_[_0xc50e('0x39')](_0x12bc67[_0xc50e('0x70')],function(_0x341e7e){return util[_0xc50e('0x71')](_0xc50e('0x72'),_0x341e7e['id']);}));_0x4b2527[_0xc50e('0x3a')]=_['keys'](_0x4c0693[_0xc50e('0x3a')]);_0x4b2527[_0xc50e('0x3b')]=_['intersection'](_0x4b2527[_0xc50e('0x38')],_0x4b2527[_0xc50e('0x3a')]);_0x2ed6cc[_0xc50e('0x3d')]=_[_0xc50e('0x3c')](_0x4b2527[_0xc50e('0x38')],qs['fields'](_0x4c0693[_0xc50e('0x3a')]['fields']));_0x2ed6cc[_0xc50e('0x3d')]=_0x2ed6cc['attributes'][_0xc50e('0x3f')]?_0x2ed6cc[_0xc50e('0x3d')]:_0x4b2527[_0xc50e('0x38')];if(!_0x4c0693[_0xc50e('0x3a')][_0xc50e('0x40')](_0xc50e('0x41'))){_0x2ed6cc[_0xc50e('0x42')]=qs[_0xc50e('0x42')](_0x4c0693['query'][_0xc50e('0x42')]);_0x2ed6cc[_0xc50e('0x21')]=qs[_0xc50e('0x21')](_0x4c0693[_0xc50e('0x3a')][_0xc50e('0x21')]);}_0x2ed6cc['order']=qs['sort'](_0x4c0693[_0xc50e('0x3a')][_0xc50e('0x43')]);_0x2ed6cc[_0xc50e('0x45')]=qs[_0xc50e('0x3b')](_['pick'](_0x4c0693[_0xc50e('0x3a')],_0x4b2527[_0xc50e('0x3b')]));_0x2ed6cc['raw']=!![];if(_0x4c0693[_0xc50e('0x3a')][_0xc50e('0x44')]){_0x2ed6cc[_0xc50e('0x45')]=_[_0xc50e('0x46')](_0x2ed6cc[_0xc50e('0x45')],{'$or':_[_0xc50e('0x39')](_0x2ed6cc[_0xc50e('0x3d')],function(_0x54de43){var _0x54d9cc={};_0x54d9cc[_0x54de43]={'$like':'%'+_0x4c0693[_0xc50e('0x3a')]['filter']+'%'};return _0x54d9cc;})});}_0x2ed6cc=_['merge']({},_0x2ed6cc,_0x4c0693[_0xc50e('0x48')]);return _0x12bc67[_0xc50e('0x6d')](_0x2ed6cc);}})[_0xc50e('0x2a')](respondWithResult(_0x152412,null))[_0xc50e('0x4b')](handleError(_0x152412,null));};exports[_0xc50e('0x73')]=function(_0x7605c7,_0x229cc1,_0x2b7433){var _0x20504f;return db[_0xc50e('0x33')][_0xc50e('0x4e')]({'where':{'id':_0x7605c7['params']['id']},'include':[{'model':db[_0xc50e('0x6e')],'as':_0xc50e('0x70')}]})[_0xc50e('0x2a')](handleEntityNotFound(_0x229cc1,null))[_0xc50e('0x2a')](function(_0x3bd2b5){if(_0x3bd2b5){_0x20504f=_0x3bd2b5;return db[_0xc50e('0x67')][_0xc50e('0x34')];}})[_0xc50e('0x2a')](function(_0x174ce8){if(_0x174ce8){var _0x1cc093={};var _0x3bbeb6={};_0x3bbeb6['model']=_[_0xc50e('0x6f')](_['keys'](_0x174ce8),_[_0xc50e('0x39')](_0x20504f[_0xc50e('0x70')],function(_0x24659b){return util[_0xc50e('0x71')](_0xc50e('0x72'),_0x24659b['id']);}));_0x3bbeb6[_0xc50e('0x3a')]=_[_0xc50e('0x4d')](_0x7605c7[_0xc50e('0x3a')]);_0x3bbeb6[_0xc50e('0x3b')]=_['intersection'](_0x3bbeb6[_0xc50e('0x38')],_0x3bbeb6[_0xc50e('0x3a')]);_0x1cc093[_0xc50e('0x3d')]=_[_0xc50e('0x3c')](_0x3bbeb6['model'],qs[_0xc50e('0x3e')](_0x7605c7['query'][_0xc50e('0x3e')]));_0x1cc093['attributes']=_0x1cc093[_0xc50e('0x3d')][_0xc50e('0x3f')]?_0x1cc093['attributes']:_0x3bbeb6[_0xc50e('0x38')];if(!_0x7605c7[_0xc50e('0x3a')]['hasOwnProperty'](_0xc50e('0x41'))){_0x1cc093[_0xc50e('0x42')]=qs[_0xc50e('0x42')](_0x7605c7[_0xc50e('0x3a')][_0xc50e('0x42')]);_0x1cc093[_0xc50e('0x21')]=qs[_0xc50e('0x21')](_0x7605c7[_0xc50e('0x3a')]['offset']);}_0x1cc093['order']=qs[_0xc50e('0x43')](_0x7605c7[_0xc50e('0x3a')][_0xc50e('0x43')]);_0x1cc093[_0xc50e('0x45')]=qs['filters'](_['pick'](_0x7605c7[_0xc50e('0x3a')],_0x3bbeb6['filters']));_0x1cc093['raw']=!![];if(_0x7605c7[_0xc50e('0x3a')][_0xc50e('0x44')]){_0x1cc093[_0xc50e('0x45')]=_[_0xc50e('0x46')](_0x1cc093[_0xc50e('0x45')],{'$or':_[_0xc50e('0x39')](_0x1cc093['attributes'],function(_0x3ac0b5){var _0x2b6d8a={};_0x2b6d8a[_0x3ac0b5]={'$like':'%'+_0x7605c7[_0xc50e('0x3a')][_0xc50e('0x44')]+'%'};return _0x2b6d8a;})});}_0x1cc093=_[_0xc50e('0x46')]({},_0x1cc093,_0x7605c7['options']);return _0x20504f[_0xc50e('0x6d')](_0x1cc093);}})[_0xc50e('0x2a')](function(_0x486811){if(!_[_0xc50e('0x74')](_0x486811)){var _0x2e87db=toCsv(_0x486811);var _0x1f104d=Date[_0xc50e('0x75')]();fs[_0xc50e('0x76')](util['format'](_0xc50e('0x77'),_0x20504f['id'],_0x1f104d),_0x2e87db);_0x229cc1[_0xc50e('0x78')](_0xc50e('0x79'),_0xc50e('0x7a')+util[_0xc50e('0x71')]('list_%d_%s.csv',_0x20504f['id'],_0x1f104d));_0x229cc1[_0xc50e('0x78')](_0xc50e('0x7b'),_0xc50e('0x7c'));return _0x229cc1[_0xc50e('0x7d')](util['format'](_0xc50e('0x77'),_0x20504f['id'],_0x1f104d));}else{return _0x229cc1[_0xc50e('0x1d')](0xcc);}})[_0xc50e('0x4b')](handleError(_0x229cc1,null));};exports['addCustomField']=function(_0x33a3eb,_0x46721f,_0x221b81){var _0x19c6b0;delete _0x33a3eb[_0xc50e('0x50')]['id'];return db[_0xc50e('0x33')][_0xc50e('0x5d')]({'where':{'id':_0x33a3eb[_0xc50e('0x4c')]['id']}})['then'](handleEntityNotFound(_0x46721f,null))[_0xc50e('0x2a')](function(_0x2da140){if(_0x2da140){return db[_0xc50e('0x7e')][_0xc50e('0x7f')](function(_0x58cc63){return db['CmCustomField'][_0xc50e('0x4f')](_0x33a3eb[_0xc50e('0x50')],{'transaction':_0x58cc63})[_0xc50e('0x2a')](function(_0x103071){_0x19c6b0=_0x103071;return _0x2da140['addCustomFields'](_0x103071,{'transaction':_0x58cc63});})['then'](function(){var _0x378fe3={'type':db[_0xc50e('0x80')]['TEXT'],'transaction':_0x58cc63};switch(_0x33a3eb[_0xc50e('0x50')][_0xc50e('0x36')]){case _0xc50e('0x81'):_0x378fe3[_0xc50e('0x36')]=db[_0xc50e('0x80')][_0xc50e('0x82')];break;case _0xc50e('0x83'):_0x378fe3[_0xc50e('0x36')]=db['Sequelize']['INTEGER'];break;case _0xc50e('0x84'):_0x378fe3[_0xc50e('0x36')]=db[_0xc50e('0x80')]['BOOLEAN'];_0x378fe3[_0xc50e('0x85')]=![];break;default:}return db['sequelize']['queryInterface'][_0xc50e('0x86')](_0xc50e('0x87'),util['format'](_0xc50e('0x88'),_0x19c6b0['id']),_0x378fe3);})[_0xc50e('0x2a')](function(){return _0x19c6b0;});});}})['then'](respondWithResult(_0x46721f,null))[_0xc50e('0x4b')](handleError(_0x46721f,null));};exports[_0xc50e('0x89')]=function(_0x25056c,_0xdc211e,_0x58682f){var _0x50d300={};var _0x32b716={};var _0x16afda;var _0xd7f665;return db[_0xc50e('0x33')][_0xc50e('0x5d')]({'where':{'id':_0x25056c[_0xc50e('0x4c')]['id']}})['then'](handleEntityNotFound(_0xdc211e,null))['then'](function(_0x4e3ca5){if(_0x4e3ca5){_0x16afda=_0x4e3ca5;_0x32b716['model']=_[_0xc50e('0x4d')](db[_0xc50e('0x6e')][_0xc50e('0x34')]);_0x32b716[_0xc50e('0x3a')]=_[_0xc50e('0x4d')](_0x25056c[_0xc50e('0x3a')]);_0x32b716[_0xc50e('0x3b')]=_[_0xc50e('0x3c')](_0x32b716['model'],_0x32b716[_0xc50e('0x3a')]);_0x50d300[_0xc50e('0x3d')]=_[_0xc50e('0x3c')](_0x32b716[_0xc50e('0x38')],qs[_0xc50e('0x3e')](_0x25056c['query'][_0xc50e('0x3e')]));_0x50d300[_0xc50e('0x3d')]=_0x50d300[_0xc50e('0x3d')][_0xc50e('0x3f')]?_0x50d300[_0xc50e('0x3d')]:_0x32b716[_0xc50e('0x38')];_0x50d300[_0xc50e('0x8a')]=qs[_0xc50e('0x43')](_0x25056c['query']['sort']);_0x50d300['where']=qs['filters'](_[_0xc50e('0x5e')](_0x25056c[_0xc50e('0x3a')],_0x32b716['filters']));_0x50d300[_0xc50e('0x45')]=_[_0xc50e('0x46')](_0x50d300[_0xc50e('0x45')],{'$or':[{'ListId':_0x4e3ca5['id']},{'ListId':null}]});if(_0x25056c[_0xc50e('0x3a')]['filter']){_0x50d300[_0xc50e('0x45')]=_[_0xc50e('0x46')](_0x50d300[_0xc50e('0x45')],{'$or':_[_0xc50e('0x39')](_0x50d300['attributes'],function(_0xcbbbdd){var _0x3fdc5c={};_0x3fdc5c[_0xcbbbdd]={'$like':'%'+_0x25056c[_0xc50e('0x3a')][_0xc50e('0x44')]+'%'};return _0x3fdc5c;})});}_0x50d300=_[_0xc50e('0x46')]({},_0x50d300,_0x25056c[_0xc50e('0x48')]);return db[_0xc50e('0x6e')][_0xc50e('0x8b')](_0x50d300);}})[_0xc50e('0x2a')](respondWithResult(_0xdc211e,null))[_0xc50e('0x4b')](handleError(_0xdc211e,null));};exports[_0xc50e('0x8c')]=function(_0x2f3454,_0x2d8bbc,_0x589f36){return db[_0xc50e('0x33')][_0xc50e('0x4e')]({'where':{'id':_0x2f3454[_0xc50e('0x4c')]['id']}})[_0xc50e('0x2a')](handleEntityNotFound(_0x2d8bbc,null))[_0xc50e('0x2a')](function(_0x2b610e){if(_0x2b610e){return _0x2b610e[_0xc50e('0x8c')](_0x2f3454[_0xc50e('0x50')]['ids'],_[_0xc50e('0x68')](_0x2f3454[_0xc50e('0x50')],[_0xc50e('0x61'),'id'])||{})[_0xc50e('0x8d')](function(_0x290f95){for(var _0x35482a=0x0;_0x35482a<_0x2f3454[_0xc50e('0x50')]['ids'][_0xc50e('0x3f')];_0x35482a+=0x1){socket[_0xc50e('0x8e')](_0xc50e('0x8f'),{'UserId':Number(_0x2f3454[_0xc50e('0x50')][_0xc50e('0x61')][_0x35482a]),'CmListId':Number(_0x2f3454[_0xc50e('0x4c')]['id'])});}return _0x290f95;});}})[_0xc50e('0x2a')](respondWithResult(_0x2d8bbc,null))[_0xc50e('0x4b')](handleError(_0x2d8bbc,null));};exports['removeAgents']=function(_0x4e9818,_0x4e00b7,_0x4d43d4){return db['CmList']['find']({'where':{'id':_0x4e9818['params']['id']}})[_0xc50e('0x2a')](handleEntityNotFound(_0x4e00b7,null))[_0xc50e('0x2a')](function(_0x1aea31){if(_0x1aea31){return _0x1aea31[_0xc50e('0x90')](_0x4e9818[_0xc50e('0x3a')][_0xc50e('0x61')])[_0xc50e('0x2a')](function(){if(_[_0xc50e('0x91')](_0x4e9818['query'][_0xc50e('0x61')])){for(var _0x17cd27=0x0;_0x17cd27<_0x4e9818['query'][_0xc50e('0x61')][_0xc50e('0x3f')];_0x17cd27+=0x1){socket[_0xc50e('0x8e')](_0xc50e('0x92'),{'UserId':Number(_0x4e9818[_0xc50e('0x3a')][_0xc50e('0x61')][_0x17cd27]),'CmListId':Number(_0x4e9818[_0xc50e('0x4c')]['id'])});}}else{socket['emit'](_0xc50e('0x92'),{'UserId':Number(_0x4e9818['query'][_0xc50e('0x61')]),'CmListId':Number(_0x4e9818[_0xc50e('0x4c')]['id'])});}});}})[_0xc50e('0x2a')](respondWithStatusCode(_0x4e00b7,null))[_0xc50e('0x4b')](handleError(_0x4e00b7,null));};exports[_0xc50e('0x93')]=function(_0x5d90b5,_0x2f2cec,_0x17d685){var _0x311b74={};var _0x2a14e6={};var _0x52ab31;var _0x357d93;return db[_0xc50e('0x33')][_0xc50e('0x5d')]({'where':{'id':_0x5d90b5[_0xc50e('0x4c')]['id']}})[_0xc50e('0x2a')](handleEntityNotFound(_0x2f2cec,null))['then'](function(_0x448f97){if(_0x448f97){_0x52ab31=_0x448f97;_0x2a14e6[_0xc50e('0x38')]=_[_0xc50e('0x4d')](db['User'][_0xc50e('0x34')]);_0x2a14e6[_0xc50e('0x3a')]=_[_0xc50e('0x4d')](_0x5d90b5[_0xc50e('0x3a')]);_0x2a14e6[_0xc50e('0x3b')]=_[_0xc50e('0x3c')](_0x2a14e6[_0xc50e('0x38')],_0x2a14e6[_0xc50e('0x3a')]);_0x311b74[_0xc50e('0x3d')]=_[_0xc50e('0x3c')](_0x2a14e6[_0xc50e('0x38')],qs['fields'](_0x5d90b5[_0xc50e('0x3a')][_0xc50e('0x3e')]));_0x311b74[_0xc50e('0x3d')]=_0x311b74[_0xc50e('0x3d')]['length']?_0x311b74[_0xc50e('0x3d')]:_0x2a14e6[_0xc50e('0x38')];_0x311b74[_0xc50e('0x8a')]=qs[_0xc50e('0x43')](_0x5d90b5[_0xc50e('0x3a')][_0xc50e('0x43')]);_0x311b74[_0xc50e('0x45')]=qs[_0xc50e('0x3b')](_['pick'](_0x5d90b5[_0xc50e('0x3a')],_0x2a14e6[_0xc50e('0x3b')]));if(_0x5d90b5[_0xc50e('0x3a')][_0xc50e('0x44')]){_0x311b74[_0xc50e('0x45')]=_['merge'](_0x311b74[_0xc50e('0x45')],{'$or':_['map'](_0x311b74[_0xc50e('0x3d')],function(_0x55585a){var _0x44d601={};_0x44d601[_0x55585a]={'$like':'%'+_0x5d90b5['query'][_0xc50e('0x44')]+'%'};return _0x44d601;})});}_0x311b74=_[_0xc50e('0x46')]({},_0x311b74,_0x5d90b5[_0xc50e('0x48')]);return _0x52ab31[_0xc50e('0x93')](_0x311b74);}})[_0xc50e('0x2a')](function(_0x5e571d){if(_0x5e571d){_0x357d93=_0x5e571d[_0xc50e('0x3f')];if(!_0x5d90b5[_0xc50e('0x3a')][_0xc50e('0x40')]('nolimit')){_0x311b74[_0xc50e('0x42')]=qs['limit'](_0x5d90b5[_0xc50e('0x3a')][_0xc50e('0x42')]);_0x311b74[_0xc50e('0x21')]=qs[_0xc50e('0x21')](_0x5d90b5['query'][_0xc50e('0x21')]);}return _0x52ab31['getAgents'](_0x311b74);}})[_0xc50e('0x2a')](function(_0x1e775c){if(_0x1e775c){return _0x1e775c?{'count':_0x357d93,'rows':_0x1e775c}:null;}})[_0xc50e('0x2a')](respondWithResult(_0x2f2cec,null))[_0xc50e('0x4b')](handleError(_0x2f2cec,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['exports','events','setMaxListeners','save','update','remove','emit','hook'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x326f,0xd1));var _0xf326=function(_0x1ff795,_0x2d4cc7){_0x1ff795=_0x1ff795-0x0;var _0x584765=_0x326f[_0x1ff795];return _0x584765;};'use strict';var EventEmitter=require(_0xf326('0x0'));var CmList=require('../../mysqldb')['db']['CmList'];var CmListEvents=new EventEmitter();CmListEvents[_0xf326('0x1')](0x0);var events={'afterCreate':_0xf326('0x2'),'afterUpdate':_0xf326('0x3'),'afterDestroy':_0xf326('0x4')};function emitEvent(_0x27e8d7){return function(_0x120a26,_0x9445c6,_0xf1c243){CmListEvents[_0xf326('0x5')](_0x27e8d7+':'+_0x120a26['id'],_0x120a26);CmListEvents[_0xf326('0x5')](_0x27e8d7,_0x120a26);_0xf1c243(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];CmList[_0xf326('0x6')](e,emitEvent(event));}}module[_0xf326('0x7')]=CmListEvents;
\ No newline at end of file
+var _0x3e74=['hasOwnProperty','exports','events','CmList','setMaxListeners','save','emit'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x3e74,0x175));var _0x43e7=function(_0x346e06,_0x2593e8){_0x346e06=_0x346e06-0x0;var _0x49bc9c=_0x3e74[_0x346e06];return _0x49bc9c;};'use strict';var EventEmitter=require(_0x43e7('0x0'));var CmList=require('../../mysqldb')['db'][_0x43e7('0x1')];var CmListEvents=new EventEmitter();CmListEvents[_0x43e7('0x2')](0x0);var events={'afterCreate':_0x43e7('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0xc58479){return function(_0x4f9bbe,_0x128b0f,_0xe838b4){CmListEvents[_0x43e7('0x4')](_0xc58479+':'+_0x4f9bbe['id'],_0x4f9bbe);CmListEvents[_0x43e7('0x4')](_0xc58479,_0x4f9bbe);_0xe838b4(null);};}for(var e in events){if(events[_0x43e7('0x5')](e)){var event=events[e];CmList['hook'](e,emitEvent(event));}}module[_0x43e7('0x6')]=CmListEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb43b=['rimraf','../../config/environment','./cmList.attributes','CmList','cm_lists','lodash','util','api','moment','bluebird','path'];(function(_0x5107f5,_0x51024c){var _0x42d16d=function(_0x25fddf){while(--_0x25fddf){_0x5107f5['push'](_0x5107f5['shift']());}};_0x42d16d(++_0x51024c);}(_0xb43b,0x1b2));var _0xbb43=function(_0x361508,_0x167c09){_0x361508=_0x361508-0x0;var _0x2fdf65=_0xb43b[_0x361508];return _0x2fdf65;};'use strict';var _=require(_0xbb43('0x0'));var util=require(_0xbb43('0x1'));var logger=require('../../config/logger')(_0xbb43('0x2'));var moment=require(_0xbb43('0x3'));var BPromise=require(_0xbb43('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbb43('0x5'));var rimraf=require(_0xbb43('0x6'));var config=require(_0xbb43('0x7'));var attributes=require(_0xbb43('0x8'));module['exports']=function(_0x491fb9,_0x378df5){return _0x491fb9['define'](_0xbb43('0x9'),attributes,{'tableName':_0xbb43('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe5b5=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmList.attributes','exports','define','CmList','cm_lists','lodash'];(function(_0x51674a,_0x2ca337){var _0x4a1f4e=function(_0x5ad4a5){while(--_0x5ad4a5){_0x51674a['push'](_0x51674a['shift']());}};_0x4a1f4e(++_0x2ca337);}(_0xe5b5,0x12b));var _0x5e5b=function(_0x4e6ae6,_0x49dba6){_0x4e6ae6=_0x4e6ae6-0x0;var _0x23c108=_0xe5b5[_0x4e6ae6];return _0x23c108;};'use strict';var _=require(_0x5e5b('0x0'));var util=require(_0x5e5b('0x1'));var logger=require(_0x5e5b('0x2'))(_0x5e5b('0x3'));var moment=require(_0x5e5b('0x4'));var BPromise=require(_0x5e5b('0x5'));var rp=require(_0x5e5b('0x6'));var fs=require('fs');var path=require(_0x5e5b('0x7'));var rimraf=require(_0x5e5b('0x8'));var config=require(_0x5e5b('0x9'));var attributes=require(_0x5e5b('0xa'));module[_0x5e5b('0xb')]=function(_0xf1fbe2,_0x11e0e0){return _0xf1fbe2[_0x5e5b('0xc')](_0x5e5b('0xd'),attributes,{'tableName':_0x5e5b('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe15c=['client','http','defaults','redis','./cmList.socket','register','request','then','info','CmList,\x20%s,\x20%s','debug','CmList,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise'];(function(_0x382e58,_0x3060d9){var _0x34ef18=function(_0x176a0e){while(--_0x176a0e){_0x382e58['push'](_0x382e58['shift']());}};_0x34ef18(++_0x3060d9);}(_0xe15c,0x7a));var _0xce15=function(_0x4d01e3,_0xcf3f6e){_0x4d01e3=_0x4d01e3-0x0;var _0x49a8bb=_0xe15c[_0x4d01e3];return _0x49a8bb;};'use strict';var _=require(_0xce15('0x0'));var util=require('util');var moment=require(_0xce15('0x1'));var BPromise=require(_0xce15('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xce15('0x3'));var db=require(_0xce15('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xce15('0x5'));var config=require(_0xce15('0x6'));var jayson=require(_0xce15('0x7'));var client=jayson[_0xce15('0x8')][_0xce15('0x9')]({'port':0x232a});config['redis']=_[_0xce15('0xa')](config[_0xce15('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xce15('0xb')]));require(_0xce15('0xc'))[_0xce15('0xd')](socket);function respondWithRpcPromise(_0x3ee92f,_0x675a9e,_0x101540){return new BPromise(function(_0x49ba05,_0x32ca3c){return client[_0xce15('0xe')](_0x3ee92f,_0x101540)[_0xce15('0xf')](function(_0x1c2eb1){logger[_0xce15('0x10')](_0xce15('0x11'),_0x675a9e,'request\x20sent');logger[_0xce15('0x12')](_0xce15('0x13'),_0x675a9e,_0xce15('0x14'),JSON[_0xce15('0x15')](_0x1c2eb1));if(_0x1c2eb1[_0xce15('0x16')]){if(_0x1c2eb1[_0xce15('0x16')]['code']===0x1f4){logger[_0xce15('0x16')](_0xce15('0x11'),_0x675a9e,_0x1c2eb1[_0xce15('0x16')]['message']);return _0x32ca3c(_0x1c2eb1['error']['message']);}logger[_0xce15('0x16')](_0xce15('0x11'),_0x675a9e,_0x1c2eb1[_0xce15('0x16')][_0xce15('0x17')]);return _0x49ba05(_0x1c2eb1[_0xce15('0x16')][_0xce15('0x17')]);}else{logger[_0xce15('0x10')](_0xce15('0x11'),_0x675a9e,'request\x20sent');_0x49ba05(_0x1c2eb1[_0xce15('0x18')]['message']);}})[_0xce15('0x19')](function(_0x38c9e2){logger['error'](_0xce15('0x11'),_0x675a9e,_0x38c9e2);_0x32ca3c(_0x38c9e2);});});}
\ No newline at end of file
+var _0x80fc=['then','info','CmList,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','http','defaults','redis','localhost','socket.io-emitter','./cmList.socket','request'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x80fc,0xcf));var _0xc80f=function(_0x18531f,_0x22cff4){_0x18531f=_0x18531f-0x0;var _0x5e0bc8=_0x80fc[_0x18531f];return _0x5e0bc8;};'use strict';var _=require(_0xc80f('0x0'));var util=require(_0xc80f('0x1'));var moment=require(_0xc80f('0x2'));var BPromise=require(_0xc80f('0x3'));var rs=require(_0xc80f('0x4'));var fs=require('fs');var Redis=require(_0xc80f('0x5'));var db=require(_0xc80f('0x6'))['db'];var utils=require(_0xc80f('0x7'));var logger=require('../../config/logger')(_0xc80f('0x8'));var config=require('../../config/environment');var jayson=require(_0xc80f('0x9'));var client=jayson['client'][_0xc80f('0xa')]({'port':0x232a});config['redis']=_[_0xc80f('0xb')](config[_0xc80f('0xc')],{'host':_0xc80f('0xd'),'port':0x18eb});var socket=require(_0xc80f('0xe'))(new Redis(config[_0xc80f('0xc')]));require(_0xc80f('0xf'))['register'](socket);function respondWithRpcPromise(_0x5aef87,_0x8f1a00,_0xc18298){return new BPromise(function(_0x46f6f8,_0x5d80a8){return client[_0xc80f('0x10')](_0x5aef87,_0xc18298)[_0xc80f('0x11')](function(_0x568055){logger[_0xc80f('0x12')](_0xc80f('0x13'),_0x8f1a00,_0xc80f('0x14'));logger[_0xc80f('0x15')]('CmList,\x20%s,\x20%s,\x20%s',_0x8f1a00,_0xc80f('0x14'),JSON[_0xc80f('0x16')](_0x568055));if(_0x568055['error']){if(_0x568055[_0xc80f('0x17')][_0xc80f('0x18')]===0x1f4){logger[_0xc80f('0x17')]('CmList,\x20%s,\x20%s',_0x8f1a00,_0x568055[_0xc80f('0x17')]['message']);return _0x5d80a8(_0x568055[_0xc80f('0x17')][_0xc80f('0x19')]);}logger[_0xc80f('0x17')](_0xc80f('0x13'),_0x8f1a00,_0x568055[_0xc80f('0x17')][_0xc80f('0x19')]);return _0x46f6f8(_0x568055[_0xc80f('0x17')][_0xc80f('0x19')]);}else{logger[_0xc80f('0x12')](_0xc80f('0x13'),_0x8f1a00,_0xc80f('0x14'));_0x46f6f8(_0x568055[_0xc80f('0x1a')]['message']);}})[_0xc80f('0x1b')](function(_0x217b2e){logger['error'](_0xc80f('0x13'),_0x8f1a00,_0x217b2e);_0x5d80a8(_0x217b2e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe6c=['save','emit','removeListener','register','length','cmList:','./cmList.events'];(function(_0x26a818,_0x40708a){var _0x5d8ca0=function(_0x3cc7ed){while(--_0x3cc7ed){_0x26a818['push'](_0x26a818['shift']());}};_0x5d8ca0(++_0x40708a);}(_0xfe6c,0x7d));var _0xcfe6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfe6c[_0x3dd15e];return _0x231fd0;};'use strict';var CmListEvents=require(_0xcfe6('0x0'));var events=[_0xcfe6('0x1'),'remove','update'];function createListener(_0x333a8,_0x2a5d04){return function(_0x555be){_0x2a5d04[_0xcfe6('0x2')](_0x333a8,_0x555be);};}function removeListener(_0x5ecc70,_0x49d3d9){return function(){CmListEvents[_0xcfe6('0x3')](_0x5ecc70,_0x49d3d9);};}exports[_0xcfe6('0x4')]=function(_0x34d362){for(var _0x5485d1=0x0,_0x2b1c6c=events[_0xcfe6('0x5')];_0x5485d1<_0x2b1c6c;_0x5485d1++){var _0x236535=events[_0x5485d1];var _0x1d66b1=createListener(_0xcfe6('0x6')+_0x236535,_0x34d362);CmListEvents['on'](_0x236535,_0x1d66b1);}};
\ No newline at end of file
+var _0xec65=['length','cmList:','save','update','register'];(function(_0x30bd4d,_0x50eb60){var _0x306915=function(_0x5ae782){while(--_0x5ae782){_0x30bd4d['push'](_0x30bd4d['shift']());}};_0x306915(++_0x50eb60);}(_0xec65,0x101));var _0x5ec6=function(_0x5bf420,_0x2d068d){_0x5bf420=_0x5bf420-0x0;var _0x1c5255=_0xec65[_0x5bf420];return _0x1c5255;};'use strict';var CmListEvents=require('./cmList.events');var events=[_0x5ec6('0x0'),'remove',_0x5ec6('0x1')];function createListener(_0x57a015,_0x510096){return function(_0x4f9aaa){_0x510096['emit'](_0x57a015,_0x4f9aaa);};}function removeListener(_0xf8873f,_0x49f147){return function(){CmListEvents['removeListener'](_0xf8873f,_0x49f147);};}exports[_0x5ec6('0x2')]=function(_0x2048d6){for(var _0x179082=0x0,_0x12b179=events[_0x5ec6('0x3')];_0x179082<_0x12b179;_0x179082++){var _0x2bfa25=events[_0x179082];var _0x270708=createListener(_0x5ec6('0x4')+_0x2bfa25,_0x2048d6);CmListEvents['on'](_0x2bfa25,_0x270708);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fc6=['multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/dispositions','getContacts','getContactsCsv','/:id/fields','getCustomFields','getAgents','post','create','addDisposition','/:id/contacts','addContacts','/:id/users','addAgents','update','delete','destroy','removeDispositions','removeAgents','exports'];(function(_0x67f95e,_0x3ca797){var _0x538f5a=function(_0xc919e9){while(--_0xc919e9){_0x67f95e['push'](_0x67f95e['shift']());}};_0x538f5a(++_0x3ca797);}(_0x4fc6,0x9b));var _0x64fc=function(_0x516326,_0xb3c8bd){_0x516326=_0x516326-0x0;var _0x33ac9b=_0x4fc6[_0x516326];return _0x33ac9b;};'use strict';var multer=require(_0x64fc('0x0'));var util=require(_0x64fc('0x1'));var path=require(_0x64fc('0x2'));var timeout=require(_0x64fc('0x3'));var express=require(_0x64fc('0x4'));var router=express['Router']();var fs_extra=require(_0x64fc('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x64fc('0x6'));var config=require(_0x64fc('0x7'));var controller=require('./cmList.controller');router[_0x64fc('0x8')]('/',auth[_0x64fc('0x9')](),controller['index']);router[_0x64fc('0x8')]('/describe',auth[_0x64fc('0x9')](),controller['describe']);router[_0x64fc('0x8')](_0x64fc('0xa'),auth[_0x64fc('0x9')](),controller[_0x64fc('0xb')]);router[_0x64fc('0x8')](_0x64fc('0xc'),auth[_0x64fc('0x9')](),controller['getDispositions']);router['get']('/:id/contacts',auth[_0x64fc('0x9')](),controller[_0x64fc('0xd')]);router['get']('/:id/contacts/csv',auth[_0x64fc('0x9')](),controller[_0x64fc('0xe')]);router[_0x64fc('0x8')](_0x64fc('0xf'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x10')]);router[_0x64fc('0x8')]('/:id/users',auth['isAuthenticated'](),controller[_0x64fc('0x11')]);router[_0x64fc('0x12')]('/',auth[_0x64fc('0x9')](),controller[_0x64fc('0x13')]);router[_0x64fc('0x12')](_0x64fc('0xc'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x14')]);router[_0x64fc('0x12')](_0x64fc('0x15'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x16')]);router[_0x64fc('0x12')](_0x64fc('0xf'),auth['isAuthenticated'](),controller['addCustomField']);router[_0x64fc('0x12')](_0x64fc('0x17'),auth['isAuthenticated'](),controller[_0x64fc('0x18')]);router['put'](_0x64fc('0xa'),auth['isAuthenticated'](),controller[_0x64fc('0x19')]);router[_0x64fc('0x1a')](_0x64fc('0xa'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x1b')]);router[_0x64fc('0x1a')](_0x64fc('0xc'),auth['isAuthenticated'](),controller[_0x64fc('0x1c')]);router['delete'](_0x64fc('0x17'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x1d')]);module[_0x64fc('0x1e')]=router;
\ No newline at end of file
+var _0x89b2=['put','/:id','update','delete','destroy','removeDispositions','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmList.controller','get','index','isAuthenticated','show','/:id/dispositions','/:id/contacts/csv','getCustomFields','/:id/users','getAgents','post','create','addDisposition','addContacts','/:id/fields','addAgents'];(function(_0x489041,_0x777609){var _0xdad2ff=function(_0x516b5a){while(--_0x516b5a){_0x489041['push'](_0x489041['shift']());}};_0xdad2ff(++_0x777609);}(_0x89b2,0xc6));var _0x289b=function(_0x1cfc39,_0x15adef){_0x1cfc39=_0x1cfc39-0x0;var _0x1ae59b=_0x89b2[_0x1cfc39];return _0x1ae59b;};'use strict';var multer=require(_0x289b('0x0'));var util=require(_0x289b('0x1'));var path=require(_0x289b('0x2'));var timeout=require(_0x289b('0x3'));var express=require(_0x289b('0x4'));var router=express[_0x289b('0x5')]();var fs_extra=require(_0x289b('0x6'));var auth=require(_0x289b('0x7'));var interaction=require(_0x289b('0x8'));var config=require(_0x289b('0x9'));var controller=require(_0x289b('0xa'));router[_0x289b('0xb')]('/',auth['isAuthenticated'](),controller[_0x289b('0xc')]);router['get']('/describe',auth[_0x289b('0xd')](),controller['describe']);router['get']('/:id',auth[_0x289b('0xd')](),controller[_0x289b('0xe')]);router[_0x289b('0xb')](_0x289b('0xf'),auth[_0x289b('0xd')](),controller['getDispositions']);router[_0x289b('0xb')]('/:id/contacts',auth[_0x289b('0xd')](),controller['getContacts']);router['get'](_0x289b('0x10'),auth[_0x289b('0xd')](),controller['getContactsCsv']);router[_0x289b('0xb')]('/:id/fields',auth[_0x289b('0xd')](),controller[_0x289b('0x11')]);router[_0x289b('0xb')](_0x289b('0x12'),auth[_0x289b('0xd')](),controller[_0x289b('0x13')]);router[_0x289b('0x14')]('/',auth[_0x289b('0xd')](),controller[_0x289b('0x15')]);router[_0x289b('0x14')](_0x289b('0xf'),auth[_0x289b('0xd')](),controller[_0x289b('0x16')]);router[_0x289b('0x14')]('/:id/contacts',auth[_0x289b('0xd')](),controller[_0x289b('0x17')]);router[_0x289b('0x14')](_0x289b('0x18'),auth[_0x289b('0xd')](),controller['addCustomField']);router[_0x289b('0x14')](_0x289b('0x12'),auth['isAuthenticated'](),controller[_0x289b('0x19')]);router[_0x289b('0x1a')](_0x289b('0x1b'),auth[_0x289b('0xd')](),controller[_0x289b('0x1c')]);router[_0x289b('0x1d')](_0x289b('0x1b'),auth[_0x289b('0xd')](),controller[_0x289b('0x1e')]);router[_0x289b('0x1d')](_0x289b('0xf'),auth[_0x289b('0xd')](),controller[_0x289b('0x1f')]);router[_0x289b('0x1d')]('/:id/users',auth[_0x289b('0xd')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x330d=['VIRTUAL','field','STRING'];(function(_0x5c0c24,_0x20c6bc){var _0x881d50=function(_0x2c26ed){while(--_0x2c26ed){_0x5c0c24['push'](_0x5c0c24['shift']());}};_0x881d50(++_0x20c6bc);}(_0x330d,0x1f2));var _0xd330=function(_0x3740fe,_0x6c543c){_0x3740fe=_0x3740fe-0x0;var _0x55492b=_0x330d[_0x3740fe];return _0x55492b;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xd330('0x0')],'get':function(_0x3847be){return this['getDataValue'](_0xd330('0x1'));}},'field':{'type':Sequelize[_0xd330('0x2')],'allowNull':![]},'operator':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize[_0xd330('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xfd3a=['exports','VIRTUAL','getDataValue','field','STRING'];(function(_0x259a3e,_0x4a62a1){var _0x5745f4=function(_0x68385f){while(--_0x68385f){_0x259a3e['push'](_0x259a3e['shift']());}};_0x5745f4(++_0x4a62a1);}(_0xfd3a,0x1a9));var _0xafd3=function(_0x3a36e4,_0x420a62){_0x3a36e4=_0x3a36e4-0x0;var _0x3e3628=_0xfd3a[_0x3a36e4];return _0x3e3628;};'use strict';var Sequelize=require('sequelize');module[_0xafd3('0x0')]={'name':{'type':Sequelize[_0xafd3('0x1')],'get':function(_0x743326){return this[_0xafd3('0x2')](_0xafd3('0x3'));}},'field':{'type':Sequelize[_0xafd3('0x4')],'allowNull':![]},'operator':{'type':Sequelize[_0xafd3('0x4')],'allowNull':![]},'value':{'type':Sequelize[_0xafd3('0x4')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','body','Condition','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path'];(function(_0x3a7747,_0x1d8a77){var _0x19b393=function(_0x59baf1){while(--_0x59baf1){_0x3a7747['push'](_0x3a7747['shift']());}};_0x19b393(++_0x1d8a77);}(_0x7a54,0x106));var _0x47a5=function(_0x474c9e,_0x8f751f){_0x474c9e=_0x474c9e-0x0;var _0x1ce83d=_0x7a54[_0x474c9e];return _0x1ce83d;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x22')]=function(_0x136b14,_0x16631f){if(_0x136b14[_0x47a5('0x29')]['id']){delete _0x136b14[_0x47a5('0x29')]['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x136b14['params']['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x16631f,null))['then'](saveUpdates(_0x136b14[_0x47a5('0x29')],null))[_0x47a5('0x23')](respondWithResult(_0x16631f,null))[_0x47a5('0x2c')](handleError(_0x16631f,null));};exports['destroy']=function(_0x256650,_0x625952){return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x256650['params']['id']}})['then'](handleEntityNotFound(_0x625952,null))[_0x47a5('0x23')](removeEntity(_0x625952,null))[_0x47a5('0x2c')](handleError(_0x625952,null));};
\ No newline at end of file
+var _0x9957=['eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','update','body','Condition','find','catch','params'];(function(_0xf0aae3,_0x5a7100){var _0x5963ba=function(_0x1c135f){while(--_0x1c135f){_0xf0aae3['push'](_0xf0aae3['shift']());}};_0x5963ba(++_0x5a7100);}(_0x9957,0x93));var _0x7995=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x9957[_0x618414];return _0x21c19a;};'use strict';var emlformat=require(_0x7995('0x0'));var rimraf=require(_0x7995('0x1'));var zipdir=require(_0x7995('0x2'));var jsonpatch=require(_0x7995('0x3'));var rp=require('request-promise');var moment=require(_0x7995('0x4'));var BPromise=require(_0x7995('0x5'));var Mustache=require(_0x7995('0x6'));var util=require(_0x7995('0x7'));var path=require('path');var sox=require(_0x7995('0x8'));var csv=require(_0x7995('0x9'));var ejs=require(_0x7995('0xa'));var fs=require('fs');var fs_extra=require(_0x7995('0xb'));var _=require(_0x7995('0xc'));var squel=require(_0x7995('0xd'));var crypto=require('crypto');var jsforce=require(_0x7995('0xe'));var deskjs=require(_0x7995('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7995('0x10'));var Papa=require(_0x7995('0x11'));var Redis=require(_0x7995('0x12'));var authService=require(_0x7995('0x13'));var qs=require(_0x7995('0x14'));var as=require(_0x7995('0x15'));var hardwareService=require(_0x7995('0x16'));var logger=require('../../config/logger')(_0x7995('0x17'));var utils=require(_0x7995('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7995('0x19'));var db=require(_0x7995('0x1a'))['db'];function respondWithStatusCode(_0x19a27e,_0x385f00){_0x385f00=_0x385f00||0xcc;return function(_0x281576){if(_0x281576){return _0x19a27e[_0x7995('0x1b')](_0x385f00);}return _0x19a27e[_0x7995('0x1c')](_0x385f00)['end']();};}function respondWithResult(_0x58f5ad,_0x2b4e94){_0x2b4e94=_0x2b4e94||0xc8;return function(_0x2233dd){if(_0x2233dd){return _0x58f5ad[_0x7995('0x1c')](_0x2b4e94)[_0x7995('0x1d')](_0x2233dd);}};}function respondWithFilteredResult(_0x3f1d3e,_0x1a5310){return function(_0x2202ce){if(_0x2202ce){var _0x41cbf0=typeof _0x1a5310['offset']===_0x7995('0x1e')&&typeof _0x1a5310['limit']===_0x7995('0x1e');var _0x37f297=_0x2202ce[_0x7995('0x1f')];var _0x291317=_0x41cbf0?0x0:_0x1a5310[_0x7995('0x20')];var _0x37a7d4=_0x41cbf0?_0x2202ce['count']:_0x1a5310['offset']+_0x1a5310[_0x7995('0x21')];var _0x5e6f90;if(_0x37a7d4>=_0x37f297){_0x37a7d4=_0x37f297;_0x5e6f90=0xc8;}else{_0x5e6f90=0xce;}_0x3f1d3e['status'](_0x5e6f90);return _0x3f1d3e[_0x7995('0x22')](_0x7995('0x23'),_0x291317+'-'+_0x37a7d4+'/'+_0x37f297)['json'](_0x2202ce);}return null;};}function patchUpdates(_0x3a9b54){return function(_0x51f276){try{jsonpatch['apply'](_0x51f276,_0x3a9b54,!![]);}catch(_0x3e4c54){return BPromise[_0x7995('0x24')](_0x3e4c54);}return _0x51f276[_0x7995('0x25')]();};}function saveUpdates(_0x1a8568,_0x460924){return function(_0x1c278a){if(_0x1c278a){return _0x1c278a['update'](_0x1a8568)[_0x7995('0x26')](function(_0x46ee4b){return _0x46ee4b;});}return null;};}function removeEntity(_0x204507,_0x285437){return function(_0x563799){if(_0x563799){return _0x563799[_0x7995('0x27')]()[_0x7995('0x26')](function(){_0x204507[_0x7995('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39df42,_0x34e70c){return function(_0x401dc3){if(!_0x401dc3){_0x39df42[_0x7995('0x1b')](0x194);}return _0x401dc3;};}function handleError(_0x3a3fcf,_0x2a307e){_0x2a307e=_0x2a307e||0x1f4;return function(_0x56691a){logger[_0x7995('0x28')](_0x56691a['stack']);if(_0x56691a[_0x7995('0x29')]){delete _0x56691a[_0x7995('0x29')];}_0x3a3fcf[_0x7995('0x1c')](_0x2a307e)[_0x7995('0x2a')](_0x56691a);};}exports[_0x7995('0x2b')]=function(_0x4b6f99,_0x9b2a15){if(_0x4b6f99['body']['id']){delete _0x4b6f99[_0x7995('0x2c')]['id'];}return db[_0x7995('0x2d')][_0x7995('0x2e')]({'where':{'id':_0x4b6f99['params']['id']}})['then'](handleEntityNotFound(_0x9b2a15,null))['then'](saveUpdates(_0x4b6f99[_0x7995('0x2c')],null))[_0x7995('0x26')](respondWithResult(_0x9b2a15,null))[_0x7995('0x2f')](handleError(_0x9b2a15,null));};exports[_0x7995('0x27')]=function(_0x2e3493,_0x1ca460){return db['Condition']['find']({'where':{'id':_0x2e3493[_0x7995('0x30')]['id']}})['then'](handleEntityNotFound(_0x1ca460,null))[_0x7995('0x26')](removeEntity(_0x1ca460,null))[_0x7995('0x2f')](handleError(_0x1ca460,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf463=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./condition.attributes','exports','define','Condition','tools_conditions','lodash'];(function(_0x49c057,_0xc808ed){var _0xd8f0e6=function(_0x5b9042){while(--_0x5b9042){_0x49c057['push'](_0x49c057['shift']());}};_0xd8f0e6(++_0xc808ed);}(_0xf463,0x109));var _0x3f46=function(_0x1c18c2,_0x16a0e2){_0x1c18c2=_0x1c18c2-0x0;var _0x4fa682=_0xf463[_0x1c18c2];return _0x4fa682;};'use strict';var _=require(_0x3f46('0x0'));var util=require(_0x3f46('0x1'));var logger=require(_0x3f46('0x2'))(_0x3f46('0x3'));var moment=require(_0x3f46('0x4'));var BPromise=require(_0x3f46('0x5'));var rp=require(_0x3f46('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3f46('0x7'));var config=require(_0x3f46('0x8'));var attributes=require(_0x3f46('0x9'));module[_0x3f46('0xa')]=function(_0x57bb85,_0x21928c){return _0x57bb85[_0x3f46('0xb')](_0x3f46('0xc'),attributes,{'tableName':_0x3f46('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5cd9=['../../config/environment','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0x5a776b,_0x46f785){var _0xbbef59=function(_0x38313e){while(--_0x38313e){_0x5a776b['push'](_0x5a776b['shift']());}};_0xbbef59(++_0x46f785);}(_0x5cd9,0xeb));var _0x95cd=function(_0x53f52c,_0x2444e3){_0x53f52c=_0x53f52c-0x0;var _0x5899a3=_0x5cd9[_0x53f52c];return _0x5899a3;};'use strict';var _=require(_0x95cd('0x0'));var util=require(_0x95cd('0x1'));var logger=require(_0x95cd('0x2'))(_0x95cd('0x3'));var moment=require(_0x95cd('0x4'));var BPromise=require(_0x95cd('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x95cd('0x6'));var rimraf=require(_0x95cd('0x7'));var config=require(_0x95cd('0x8'));var attributes=require('./condition.attributes');module['exports']=function(_0x357a9c,_0x4f75fa){return _0x357a9c['define']('Condition',attributes,{'tableName':'tools_conditions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21fe=['../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','Condition,\x20%s,\x20%s','Condition,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x1d1854,_0x4a83b1){var _0x5b2acb=function(_0x29ae13){while(--_0x29ae13){_0x1d1854['push'](_0x1d1854['shift']());}};_0x5b2acb(++_0x4a83b1);}(_0x21fe,0x191));var _0xe21f=function(_0x310640,_0xc57d29){_0x310640=_0x310640-0x0;var _0x22204d=_0x21fe[_0x310640];return _0x22204d;};'use strict';var _=require(_0xe21f('0x0'));var util=require(_0xe21f('0x1'));var moment=require(_0xe21f('0x2'));var BPromise=require(_0xe21f('0x3'));var rs=require(_0xe21f('0x4'));var fs=require('fs');var Redis=require(_0xe21f('0x5'));var db=require(_0xe21f('0x6'))['db'];var utils=require(_0xe21f('0x7'));var logger=require(_0xe21f('0x8'))(_0xe21f('0x9'));var config=require('../../config/environment');var jayson=require(_0xe21f('0xa'));var client=jayson[_0xe21f('0xb')][_0xe21f('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x59ab88,_0x19d27f,_0xb120d){return new BPromise(function(_0x54085a,_0x8b6d1){return client['request'](_0x59ab88,_0xb120d)[_0xe21f('0xd')](function(_0x2f79a9){logger[_0xe21f('0xe')](_0xe21f('0xf'),_0x19d27f,'request\x20sent');logger['debug'](_0xe21f('0x10'),_0x19d27f,_0xe21f('0x11'),JSON[_0xe21f('0x12')](_0x2f79a9));if(_0x2f79a9[_0xe21f('0x13')]){if(_0x2f79a9['error'][_0xe21f('0x14')]===0x1f4){logger['error'](_0xe21f('0xf'),_0x19d27f,_0x2f79a9['error'][_0xe21f('0x15')]);return _0x8b6d1(_0x2f79a9[_0xe21f('0x13')][_0xe21f('0x15')]);}logger[_0xe21f('0x13')]('Condition,\x20%s,\x20%s',_0x19d27f,_0x2f79a9[_0xe21f('0x13')]['message']);return _0x54085a(_0x2f79a9[_0xe21f('0x13')][_0xe21f('0x15')]);}else{logger[_0xe21f('0xe')](_0xe21f('0xf'),_0x19d27f,_0xe21f('0x11'));_0x54085a(_0x2f79a9[_0xe21f('0x16')][_0xe21f('0x15')]);}})[_0xe21f('0x17')](function(_0x23276e){logger[_0xe21f('0x13')]('Condition,\x20%s,\x20%s',_0x19d27f,_0x23276e);_0x8b6d1(_0x23276e);});});}
\ No newline at end of file
+var _0x093c=['error','code','message','request\x20sent','result','catch','lodash','util','moment','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','Condition,\x20%s,\x20%s','debug','stringify'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x093c,0x74));var _0xc093=function(_0x23276e,_0x575e65){_0x23276e=_0x23276e-0x0;var _0x3fe3be=_0x093c[_0x23276e];return _0x3fe3be;};'use strict';var _=require(_0xc093('0x0'));var util=require(_0xc093('0x1'));var moment=require(_0xc093('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc093('0x3'))['db'];var utils=require(_0xc093('0x4'));var logger=require(_0xc093('0x5'))(_0xc093('0x6'));var config=require(_0xc093('0x7'));var jayson=require(_0xc093('0x8'));var client=jayson[_0xc093('0x9')][_0xc093('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x437dc5,_0x1259a3,_0x402cc1){return new BPromise(function(_0x31332e,_0x21a8ac){return client['request'](_0x437dc5,_0x402cc1)[_0xc093('0xb')](function(_0xf44c14){logger[_0xc093('0xc')](_0xc093('0xd'),_0x1259a3,'request\x20sent');logger[_0xc093('0xe')]('Condition,\x20%s,\x20%s,\x20%s',_0x1259a3,'request\x20sent',JSON[_0xc093('0xf')](_0xf44c14));if(_0xf44c14[_0xc093('0x10')]){if(_0xf44c14[_0xc093('0x10')][_0xc093('0x11')]===0x1f4){logger[_0xc093('0x10')](_0xc093('0xd'),_0x1259a3,_0xf44c14[_0xc093('0x10')][_0xc093('0x12')]);return _0x21a8ac(_0xf44c14[_0xc093('0x10')][_0xc093('0x12')]);}logger[_0xc093('0x10')]('Condition,\x20%s,\x20%s',_0x1259a3,_0xf44c14[_0xc093('0x10')][_0xc093('0x12')]);return _0x31332e(_0xf44c14['error'][_0xc093('0x12')]);}else{logger[_0xc093('0xc')]('Condition,\x20%s,\x20%s',_0x1259a3,_0xc093('0x13'));_0x31332e(_0xf44c14[_0xc093('0x14')][_0xc093('0x12')]);}})[_0xc093('0x15')](function(_0x142f5d){logger[_0xc093('0x10')](_0xc093('0xd'),_0x1259a3,_0x142f5d);_0x21a8ac(_0x142f5d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x833d=['multer','path','express','Router','fs-extra','../../components/auth/service','./condition.controller','/:id','isAuthenticated','update','delete','exports'];(function(_0xdc3aa0,_0x1fcecc){var _0x4f014f=function(_0x396cd9){while(--_0x396cd9){_0xdc3aa0['push'](_0xdc3aa0['shift']());}};_0x4f014f(++_0x1fcecc);}(_0x833d,0x1ec));var _0xd833=function(_0x397342,_0x39f297){_0x397342=_0x397342-0x0;var _0x197051=_0x833d[_0x397342];return _0x197051;};'use strict';var multer=require(_0xd833('0x0'));var util=require('util');var path=require(_0xd833('0x1'));var timeout=require('connect-timeout');var express=require(_0xd833('0x2'));var router=express[_0xd833('0x3')]();var fs_extra=require(_0xd833('0x4'));var auth=require(_0xd833('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xd833('0x6'));router['put'](_0xd833('0x7'),auth[_0xd833('0x8')](),controller[_0xd833('0x9')]);router[_0xd833('0xa')](_0xd833('0x7'),auth[_0xd833('0x8')](),controller['destroy']);module[_0xd833('0xb')]=router;
\ No newline at end of file
+var _0x82ec=['/:id','isAuthenticated','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./condition.controller','put'];(function(_0x1b82d8,_0xee3528){var _0x18fa95=function(_0x2d1fe3){while(--_0x2d1fe3){_0x1b82d8['push'](_0x1b82d8['shift']());}};_0x18fa95(++_0xee3528);}(_0x82ec,0x106));var _0xc82e=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x82ec[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0xc82e('0x0'));var util=require(_0xc82e('0x1'));var path=require(_0xc82e('0x2'));var timeout=require(_0xc82e('0x3'));var express=require(_0xc82e('0x4'));var router=express[_0xc82e('0x5')]();var fs_extra=require(_0xc82e('0x6'));var auth=require(_0xc82e('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xc82e('0x8'));router[_0xc82e('0x9')](_0xc82e('0xa'),auth[_0xc82e('0xb')](),controller[_0xc82e('0xc')]);router[_0xc82e('0xd')](_0xc82e('0xa'),auth[_0xc82e('0xb')](),controller[_0xc82e('0xe')]);module[_0xc82e('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['name','sequelize','STRING'];(function(_0xe44a82,_0x1e998d){var _0x2d79da=function(_0x188168){while(--_0x188168){_0xe44a82['push'](_0xe44a82['shift']());}};_0x2d79da(++_0x1e998d);}(_0xb10b,0x12a));var _0xbb10=function(_0x3855fd,_0x26003f){_0x3855fd=_0x3855fd-0x0;var _0x226a53=_0xb10b[_0x3855fd];return _0x226a53;};'use strict';var Sequelize=require(_0xbb10('0x0'));module['exports']={'name':{'type':Sequelize[_0xbb10('0x1')],'allowNull':![],'unique':_0xbb10('0x2')},'description':{'type':Sequelize[_0xbb10('0x1')]}};
\ No newline at end of file
+var _0x757a=['exports','STRING'];(function(_0x334fb8,_0x43a9d3){var _0x5d2f00=function(_0x5ec163){while(--_0x5ec163){_0x334fb8['push'](_0x334fb8['shift']());}};_0x5d2f00(++_0x43a9d3);}(_0x757a,0xde));var _0xa757=function(_0x3cc270,_0x4ea951){_0x3cc270=_0x3cc270-0x0;var _0x2386d1=_0x757a[_0x3cc270];return _0x2386d1;};'use strict';var Sequelize=require('sequelize');module[_0xa757('0x0')]={'name':{'type':Sequelize[_0xa757('0x1')],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa955=['offset','set','reject','save','update','then','destroy','get','CustomDashboards','UserProfileResource','error','name','send','index','map','Dashboard','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','count','includeAll','include','rows','catch','show','params','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','user','UserProfileSection','autoAssociation','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','HH:mm:ss','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','DashboardItem','getItems','findOne','nolimit','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./dashboard.socket','sendStatus','status','end','json','limit','undefined'];(function(_0x6da693,_0x224a0a){var _0x3e4d68=function(_0x20a6f6){while(--_0x20a6f6){_0x6da693['push'](_0x6da693['shift']());}};_0x3e4d68(++_0x224a0a);}(_0xa955,0x1b8));var _0x5a95=function(_0x3ef3c4,_0x50db3f){_0x3ef3c4=_0x3ef3c4-0x0;var _0x51b9e5=_0xa955[_0x3ef3c4];return _0x51b9e5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5a95('0x0'));var zipdir=require(_0x5a95('0x1'));var jsonpatch=require(_0x5a95('0x2'));var rp=require(_0x5a95('0x3'));var moment=require(_0x5a95('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5a95('0x5'));var util=require(_0x5a95('0x6'));var path=require('path');var sox=require(_0x5a95('0x7'));var csv=require(_0x5a95('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5a95('0x9'));var _=require(_0x5a95('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5a95('0xb'));var deskjs=require(_0x5a95('0xc'));var toCsv=require('to-csv');var querystring=require(_0x5a95('0xd'));var Papa=require(_0x5a95('0xe'));var Redis=require('ioredis');var authService=require(_0x5a95('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x5a95('0x10'));var hardwareService=require(_0x5a95('0x11'));var logger=require(_0x5a95('0x12'))('api');var utils=require(_0x5a95('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x5a95('0x14'));var db=require('../../mysqldb')['db'];config[_0x5a95('0x15')]=_[_0x5a95('0x16')](config['redis'],{'host':_0x5a95('0x17'),'port':0x18eb});var socket=require(_0x5a95('0x18'))(new Redis(config[_0x5a95('0x15')]));require(_0x5a95('0x19'))['register'](socket);function respondWithStatusCode(_0x274bf3,_0x3c10a9){_0x3c10a9=_0x3c10a9||0xcc;return function(_0x314e40){if(_0x314e40){return _0x274bf3[_0x5a95('0x1a')](_0x3c10a9);}return _0x274bf3[_0x5a95('0x1b')](_0x3c10a9)[_0x5a95('0x1c')]();};}function respondWithResult(_0x2ce291,_0x351093){_0x351093=_0x351093||0xc8;return function(_0x45ce87){if(_0x45ce87){return _0x2ce291[_0x5a95('0x1b')](_0x351093)[_0x5a95('0x1d')](_0x45ce87);}};}function respondWithFilteredResult(_0x308d14,_0x1472bf){return function(_0x3ce787){if(_0x3ce787){var _0x12f154=typeof _0x1472bf['offset']==='undefined'&&typeof _0x1472bf[_0x5a95('0x1e')]===_0x5a95('0x1f');var _0x66a408=_0x3ce787['count'];var _0x574e78=_0x12f154?0x0:_0x1472bf[_0x5a95('0x20')];var _0x1c880b=_0x12f154?_0x3ce787['count']:_0x1472bf[_0x5a95('0x20')]+_0x1472bf['limit'];var _0x13f48d;if(_0x1c880b>=_0x66a408){_0x1c880b=_0x66a408;_0x13f48d=0xc8;}else{_0x13f48d=0xce;}_0x308d14['status'](_0x13f48d);return _0x308d14[_0x5a95('0x21')]('Content-Range',_0x574e78+'-'+_0x1c880b+'/'+_0x66a408)[_0x5a95('0x1d')](_0x3ce787);}return null;};}function patchUpdates(_0x352d0e){return function(_0x2adcba){try{jsonpatch['apply'](_0x2adcba,_0x352d0e,!![]);}catch(_0x3a3a6e){return BPromise[_0x5a95('0x22')](_0x3a3a6e);}return _0x2adcba[_0x5a95('0x23')]();};}function saveUpdates(_0x4cb32c,_0x3727c6){return function(_0xb4651){if(_0xb4651){return _0xb4651[_0x5a95('0x24')](_0x4cb32c)[_0x5a95('0x25')](function(_0x1ff691){return _0x1ff691;});}return null;};}function removeEntity(_0x2f2e1a,_0x25e0d8){return function(_0x1a3aff){if(_0x1a3aff){return _0x1a3aff[_0x5a95('0x26')]()['then'](function(){var _0x3e1318=_0x1a3aff[_0x5a95('0x27')]({'plain':!![]});var _0xfcb89e=_0x5a95('0x28');return db[_0x5a95('0x29')]['destroy']({'where':{'type':_0xfcb89e,'resourceId':_0x3e1318['id']}})[_0x5a95('0x25')](function(){return _0x1a3aff;});})[_0x5a95('0x25')](function(){_0x2f2e1a[_0x5a95('0x1b')](0xcc)[_0x5a95('0x1c')]();});}};}function handleEntityNotFound(_0x239980,_0x3b4c6a){return function(_0x5c0da6){if(!_0x5c0da6){_0x239980[_0x5a95('0x1a')](0x194);}return _0x5c0da6;};}function handleError(_0x136232,_0x2ff10b){_0x2ff10b=_0x2ff10b||0x1f4;return function(_0x28fa34){logger[_0x5a95('0x2a')](_0x28fa34['stack']);if(_0x28fa34[_0x5a95('0x2b')]){delete _0x28fa34[_0x5a95('0x2b')];}_0x136232[_0x5a95('0x1b')](_0x2ff10b)[_0x5a95('0x2c')](_0x28fa34);};}exports[_0x5a95('0x2d')]=function(_0x4b6fcf,_0x1f51a7){var _0x32b77e={},_0x268944={},_0x3aeb54={'count':0x0,'rows':[]};var _0x4adf4b=_[_0x5a95('0x2e')](db[_0x5a95('0x2f')][_0x5a95('0x30')],function(_0x426fa6){return{'name':_0x426fa6[_0x5a95('0x31')],'type':_0x426fa6[_0x5a95('0x32')]['key']};});_0x268944[_0x5a95('0x33')]=_[_0x5a95('0x2e')](_0x4adf4b,_0x5a95('0x2b'));_0x268944[_0x5a95('0x34')]=_[_0x5a95('0x35')](_0x4b6fcf[_0x5a95('0x34')]);_0x268944[_0x5a95('0x36')]=_[_0x5a95('0x37')](_0x268944[_0x5a95('0x33')],_0x268944[_0x5a95('0x34')]);_0x32b77e[_0x5a95('0x38')]=_['intersection'](_0x268944[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x39')]));_0x32b77e['attributes']=_0x32b77e[_0x5a95('0x38')][_0x5a95('0x3a')]?_0x32b77e[_0x5a95('0x38')]:_0x268944[_0x5a95('0x33')];if(!_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3b')]('nolimit')){_0x32b77e[_0x5a95('0x1e')]=qs[_0x5a95('0x1e')](_0x4b6fcf['query'][_0x5a95('0x1e')]);_0x32b77e['offset']=qs[_0x5a95('0x20')](_0x4b6fcf['query'][_0x5a95('0x20')]);}_0x32b77e[_0x5a95('0x3c')]=qs['sort'](_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3d')]);_0x32b77e['where']=qs[_0x5a95('0x36')](_[_0x5a95('0x3e')](_0x4b6fcf['query'],_0x268944[_0x5a95('0x36')]),_0x4adf4b);if(_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3f')]){_0x32b77e[_0x5a95('0x40')]=_[_0x5a95('0x41')](_0x32b77e[_0x5a95('0x40')],{'$or':_[_0x5a95('0x2e')](_0x4adf4b,function(_0x5e41e7){if(_0x5e41e7[_0x5a95('0x32')]!==_0x5a95('0x42')){var _0x1727d1={};_0x1727d1[_0x5e41e7[_0x5a95('0x2b')]]={'$like':'%'+_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3f')]+'%'};return _0x1727d1;}})});}_0x32b77e=_[_0x5a95('0x41')]({},_0x32b77e,_0x4b6fcf['options']);var _0x57c82f={'where':_0x32b77e[_0x5a95('0x40')]};return db[_0x5a95('0x2f')][_0x5a95('0x43')](_0x57c82f)[_0x5a95('0x25')](function(_0x85a111){_0x3aeb54[_0x5a95('0x43')]=_0x85a111;if(_0x4b6fcf['query'][_0x5a95('0x44')]){_0x32b77e[_0x5a95('0x45')]=[{'all':!![]}];}return db[_0x5a95('0x2f')]['findAll'](_0x32b77e);})['then'](function(_0x3326f9){_0x3aeb54[_0x5a95('0x46')]=_0x3326f9;return _0x3aeb54;})['then'](respondWithFilteredResult(_0x1f51a7,_0x32b77e))[_0x5a95('0x47')](handleError(_0x1f51a7,null));};exports[_0x5a95('0x48')]=function(_0x4f7264,_0x11b804){var _0x1a1b8c={'raw':![],'where':{'id':_0x4f7264[_0x5a95('0x49')]['id']}},_0x3bf58b={};_0x3bf58b[_0x5a95('0x33')]=_['keys'](db[_0x5a95('0x2f')][_0x5a95('0x30')]);_0x3bf58b['query']=_['keys'](_0x4f7264[_0x5a95('0x34')]);_0x3bf58b[_0x5a95('0x36')]=_[_0x5a95('0x37')](_0x3bf58b['model'],_0x3bf58b[_0x5a95('0x34')]);_0x1a1b8c[_0x5a95('0x38')]=_[_0x5a95('0x37')](_0x3bf58b[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x4f7264[_0x5a95('0x34')][_0x5a95('0x39')]));_0x1a1b8c[_0x5a95('0x38')]=_0x1a1b8c['attributes']['length']?_0x1a1b8c[_0x5a95('0x38')]:_0x3bf58b['model'];if(_0x4f7264[_0x5a95('0x34')][_0x5a95('0x44')]){_0x1a1b8c[_0x5a95('0x45')]=[{'all':!![]}];}_0x1a1b8c=_[_0x5a95('0x41')]({},_0x1a1b8c,_0x4f7264[_0x5a95('0x4a')]);return db['Dashboard'][_0x5a95('0x4b')](_0x1a1b8c)[_0x5a95('0x25')](handleEntityNotFound(_0x11b804,null))['then'](respondWithResult(_0x11b804,null))[_0x5a95('0x47')](handleError(_0x11b804,null));};exports[_0x5a95('0x4c')]=function(_0xf239e7,_0xc0368c){return db[_0x5a95('0x2f')][_0x5a95('0x4c')](_0xf239e7[_0x5a95('0x4d')],{})[_0x5a95('0x25')](function(_0x56e78c){var _0x150b7f=_0xf239e7['user'][_0x5a95('0x27')]({'plain':!![]});if(!_0x150b7f)throw new Error(_0x5a95('0x4e'));if(_0x150b7f[_0x5a95('0x4f')]==='user'){var _0x111044=_0x56e78c[_0x5a95('0x27')]({'plain':!![]});var _0x3bf2b7='CustomDashboards';return db['UserProfileSection']['find']({'where':{'name':_0x3bf2b7,'userProfileId':_0x150b7f[_0x5a95('0x50')]},'raw':!![]})['then'](function(_0x18146e){if(_0x18146e&&_0x18146e['autoAssociation']===0x0){return db[_0x5a95('0x29')][_0x5a95('0x4c')]({'name':_0x111044[_0x5a95('0x2b')],'resourceId':_0x111044['id'],'type':_0x18146e[_0x5a95('0x2b')],'sectionId':_0x18146e['id']},{})[_0x5a95('0x25')](function(){return _0x56e78c;});}else{return _0x56e78c;}})[_0x5a95('0x47')](function(_0x2f90f7){logger[_0x5a95('0x2a')](_0x5a95('0x51'),_0x2f90f7);throw _0x2f90f7;});}return _0x56e78c;})['then'](respondWithResult(_0xc0368c,0xc9))['catch'](handleError(_0xc0368c,null));};exports[_0x5a95('0x52')]=function(_0x3c37cf,_0xa2d3a2){var _0x32d796={'where':{'id':_0x3c37cf[_0x5a95('0x49')]['id']}},_0x39956c={};_0x39956c['model']=_[_0x5a95('0x35')](db[_0x5a95('0x2f')]['rawAttributes']);_0x32d796[_0x5a95('0x38')]=_['intersection'](_0x39956c[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x3c37cf['query'][_0x5a95('0x39')]));_0x32d796[_0x5a95('0x38')]=_0x32d796[_0x5a95('0x38')]['length']?_0x32d796[_0x5a95('0x38')]:_0x39956c[_0x5a95('0x33')];if(_0x3c37cf[_0x5a95('0x34')][_0x5a95('0x44')]){_0x32d796[_0x5a95('0x45')]=[{'all':!![]}];}_0x32d796=_[_0x5a95('0x41')]({},_0x32d796,_0x3c37cf[_0x5a95('0x4a')]);return db[_0x5a95('0x2f')][_0x5a95('0x4b')](_0x32d796)[_0x5a95('0x25')](handleEntityNotFound(_0xa2d3a2,null))['then'](function(_0x5d99ad){if(_0x5d99ad){var _0x5b66ab=_0x5d99ad[_0x5a95('0x27')]({'plain':!![]});_0x5b66ab=qs[_0x5a95('0x53')](_0x5b66ab,['id',_0x5a95('0x54'),'updatedAt']);_0x3c37cf[_0x5a95('0x4d')]=_[_0x5a95('0x53')](_0x3c37cf['body'],['id','createdAt',_0x5a95('0x55')]);return db[_0x5a95('0x2f')][_0x5a95('0x4c')](_[_0x5a95('0x41')](_0x5b66ab,_0x3c37cf['body']),{'include':_0x3c37cf[_0x5a95('0x34')][_0x5a95('0x44')]?[{'all':!![]}]:undefined})[_0x5a95('0x25')](function(_0x5f1bda){var _0x44ac02=_0x3c37cf[_0x5a95('0x56')][_0x5a95('0x27')]({'plain':!![]});if(!_0x44ac02)throw new Error(_0x5a95('0x4e'));if(_0x44ac02[_0x5a95('0x4f')]===_0x5a95('0x56')){var _0x14360e=_0x5f1bda[_0x5a95('0x27')]({'plain':!![]});var _0x4e0e49='CustomDashboards';return db[_0x5a95('0x57')][_0x5a95('0x4b')]({'where':{'name':_0x4e0e49,'userProfileId':_0x44ac02['userProfileId']},'raw':!![]})['then'](function(_0x351e10){if(_0x351e10&&_0x351e10[_0x5a95('0x58')]===0x0){return db[_0x5a95('0x29')][_0x5a95('0x4c')]({'name':_0x14360e[_0x5a95('0x2b')],'resourceId':_0x14360e['id'],'type':_0x351e10[_0x5a95('0x2b')],'sectionId':_0x351e10['id']},{})[_0x5a95('0x25')](function(){return _0x5f1bda;});}else{return _0x5f1bda;}})['catch'](function(_0x353658){logger[_0x5a95('0x2a')](_0x5a95('0x51'),_0x353658);throw _0x353658;});}return _0x5f1bda;});}})[_0x5a95('0x25')](respondWithResult(_0xa2d3a2,0xc9))[_0x5a95('0x47')](handleError(_0xa2d3a2,null));};exports[_0x5a95('0x24')]=function(_0x2914d0,_0x257241){if(_0x2914d0[_0x5a95('0x4d')]['id']){delete _0x2914d0[_0x5a95('0x4d')]['id'];}return db['Dashboard'][_0x5a95('0x4b')]({'where':{'id':_0x2914d0[_0x5a95('0x49')]['id']}})['then'](handleEntityNotFound(_0x257241,null))['then'](saveUpdates(_0x2914d0['body'],null))[_0x5a95('0x25')](respondWithResult(_0x257241,null))['catch'](handleError(_0x257241,null));};exports[_0x5a95('0x26')]=function(_0x4af19c,_0xa96170){return db[_0x5a95('0x2f')][_0x5a95('0x4b')]({'where':{'id':_0x4af19c['params']['id']}})[_0x5a95('0x25')](handleEntityNotFound(_0xa96170,null))[_0x5a95('0x25')](removeEntity(_0xa96170,null))[_0x5a95('0x47')](handleError(_0xa96170,null));};function widgetAttributes(_0x466630){try{switch(_0x466630[_0x5a95('0x32')]){case _0x5a95('0x59'):return[{'name':_0x5a95('0x5a'),'value':_0x466630[_0x5a95('0x5a')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x0]?_0x466630['attrs'][0x0][_0x5a95('0x5c')]:undefined)||_0x5a95('0x5d')}];case _0x5a95('0x5e'):return[{'name':_0x5a95('0x5f'),'value':_0x466630[_0x5a95('0x5f')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||''}];case'clock':return[{'name':_0x5a95('0x60'),'value':_0x466630['attrHourFormat']||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||_0x5a95('0x61')},{'name':'attrTimezone','value':_0x466630['attrTimezone']||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x1]?_0x466630[_0x5a95('0x5b')][0x1]['value']:undefined)||_0x5a95('0x62')},{'name':_0x5a95('0x63'),'value':_0x466630[_0x5a95('0x63')]||(_0x466630['attrs']&&_0x466630[_0x5a95('0x5b')][0x2]?_0x466630[_0x5a95('0x5b')][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':_0x5a95('0x64'),'value':_0x466630[_0x5a95('0x64')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x0]?_0x466630[_0x5a95('0x5b')][0x0]['value']:undefined)||_0x5a95('0x65')},{'name':_0x5a95('0x66'),'value':_0x466630['attrVoiceQueues']||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x1]?_0x466630['attrs'][0x1][_0x5a95('0x5c')]:undefined)||[]},{'name':'attrFontSize','value':_0x466630[_0x5a95('0x63')]||(_0x466630['attrs']&&_0x466630['attrs'][0x2]?_0x466630[_0x5a95('0x5b')][0x2]['value']:undefined)||0x14}];case _0x5a95('0x67'):case'pie-chart':return[{'name':'attrSerie1','value':_0x466630[_0x5a95('0x68')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||_0x5a95('0x65')},{'name':_0x5a95('0x69'),'value':_0x466630['attrSerie2']||(_0x466630['attrs']&&_0x466630[_0x5a95('0x5b')][0x1]?_0x466630[_0x5a95('0x5b')][0x1][_0x5a95('0x5c')]:undefined)||null},{'name':_0x5a95('0x6a'),'value':_0x466630['attrSerie3']||(_0x466630['attrs']&&_0x466630[_0x5a95('0x5b')][0x2]?_0x466630[_0x5a95('0x5b')][0x2][_0x5a95('0x5c')]:undefined)||null},{'name':_0x5a95('0x66'),'value':_0x466630['attrVoiceQueues']||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x3]?_0x466630['attrs'][0x3][_0x5a95('0x5c')]:undefined)||[]}];case _0x5a95('0x6b'):return[{'name':_0x5a95('0x6c'),'type':_0x466630['reportType']||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630['attrs'][0x0]['type']:undefined)||null,'value':_0x466630[_0x5a95('0x6c')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||null},{'name':_0x5a95('0x6d'),'value':_0x466630[_0x5a95('0x6d')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x1]?_0x466630[_0x5a95('0x5b')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0xc8422){logger['error'](_0x5a95('0x6e'),JSON[_0x5a95('0x6f')](_0xc8422));return[];}}exports[_0x5a95('0x70')]=function(_0x2c4072,_0x3cb89d,_0x4f5e73){if(_0x2c4072[_0x5a95('0x4d')]['id']){delete _0x2c4072[_0x5a95('0x4d')]['id'];}return db['Dashboard'][_0x5a95('0x4b')]({'where':{'id':_0x2c4072[_0x5a95('0x49')]['id']}})[_0x5a95('0x25')](handleEntityNotFound(_0x3cb89d,null))[_0x5a95('0x25')](function(_0x5217cc){if(_0x5217cc){_0x2c4072[_0x5a95('0x4d')][_0x5a95('0x71')]=_0x5217cc['id'];_0x2c4072[_0x5a95('0x4d')][_0x5a95('0x5b')]=widgetAttributes(_0x2c4072[_0x5a95('0x4d')]);return db[_0x5a95('0x72')][_0x5a95('0x4c')](_0x2c4072[_0x5a95('0x4d')]);}})[_0x5a95('0x25')](respondWithResult(_0x3cb89d,null))[_0x5a95('0x47')](handleError(_0x3cb89d,null));};exports[_0x5a95('0x73')]=function(_0x1544c4,_0x292e73,_0x38f343){var _0x3941c9={};var _0x3a71ff={};var _0x5890bd;var _0x46d610;return db[_0x5a95('0x2f')][_0x5a95('0x74')]({'where':{'id':_0x1544c4[_0x5a95('0x49')]['id']}})['then'](handleEntityNotFound(_0x292e73,null))[_0x5a95('0x25')](function(_0x2165eb){if(_0x2165eb){_0x5890bd=_0x2165eb;_0x3a71ff[_0x5a95('0x33')]=_[_0x5a95('0x35')](db[_0x5a95('0x72')][_0x5a95('0x30')]);_0x3a71ff[_0x5a95('0x34')]=_[_0x5a95('0x35')](_0x1544c4[_0x5a95('0x34')]);_0x3a71ff[_0x5a95('0x36')]=_[_0x5a95('0x37')](_0x3a71ff[_0x5a95('0x33')],_0x3a71ff[_0x5a95('0x34')]);_0x3941c9['attributes']=_[_0x5a95('0x37')](_0x3a71ff[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x1544c4[_0x5a95('0x34')][_0x5a95('0x39')]));_0x3941c9[_0x5a95('0x38')]=_0x3941c9['attributes']['length']?_0x3941c9['attributes']:_0x3a71ff[_0x5a95('0x33')];_0x3941c9[_0x5a95('0x3c')]=qs[_0x5a95('0x3d')](_0x1544c4[_0x5a95('0x34')]['sort']);_0x3941c9[_0x5a95('0x40')]=qs['filters'](_['pick'](_0x1544c4[_0x5a95('0x34')],_0x3a71ff[_0x5a95('0x36')]));if(_0x1544c4[_0x5a95('0x34')][_0x5a95('0x3f')]){_0x3941c9[_0x5a95('0x40')]=_[_0x5a95('0x41')](_0x3941c9[_0x5a95('0x40')],{'$or':_[_0x5a95('0x2e')](_0x3941c9['attributes'],function(_0x479460){var _0x50a89e={};_0x50a89e[_0x479460]={'$like':'%'+_0x1544c4[_0x5a95('0x34')][_0x5a95('0x3f')]+'%'};return _0x50a89e;})});}_0x3941c9=_[_0x5a95('0x41')]({},_0x3941c9,_0x1544c4[_0x5a95('0x4a')]);return _0x5890bd[_0x5a95('0x73')](_0x3941c9);}})[_0x5a95('0x25')](function(_0x3e5f1d){if(_0x3e5f1d){_0x46d610=_0x3e5f1d[_0x5a95('0x3a')];if(!_0x1544c4['query']['hasOwnProperty'](_0x5a95('0x75'))){_0x3941c9['limit']=qs['limit'](_0x1544c4['query'][_0x5a95('0x1e')]);_0x3941c9[_0x5a95('0x20')]=qs['offset'](_0x1544c4[_0x5a95('0x34')][_0x5a95('0x20')]);}return _0x5890bd['getItems'](_0x3941c9);}})[_0x5a95('0x25')](function(_0x4afc97){if(_0x4afc97){return _0x4afc97?{'count':_0x46d610,'rows':_0x4afc97}:null;}})[_0x5a95('0x25')](respondWithResult(_0x292e73,null))[_0x5a95('0x47')](handleError(_0x292e73,null));};
\ No newline at end of file
+var _0xde27=['model','attributes','fields','length','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','includeAll','include','rows','show','params','intersection','merge','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','options','omit','createdAt','body','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrSerie1','attrSerie2','attrSerie3','attrReport','attrRefresh','stringify','DashboardItem','getItems','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','status','json','offset','undefined','limit','count','set','Content-Range','reject','update','destroy','then','get','CustomDashboards','UserProfileResource','end','sendStatus','error','name','send','index','map','Dashboard','rawAttributes','fieldName','type','key','query','keys'];(function(_0x292423,_0x1759b7){var _0x2801cb=function(_0x23c821){while(--_0x23c821){_0x292423['push'](_0x292423['shift']());}};_0x2801cb(++_0x1759b7);}(_0xde27,0x18d));var _0x7de2=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xde27[_0x4a9fb1];return _0x348672;};'use strict';var emlformat=require(_0x7de2('0x0'));var rimraf=require(_0x7de2('0x1'));var zipdir=require(_0x7de2('0x2'));var jsonpatch=require(_0x7de2('0x3'));var rp=require(_0x7de2('0x4'));var moment=require(_0x7de2('0x5'));var BPromise=require(_0x7de2('0x6'));var Mustache=require(_0x7de2('0x7'));var util=require(_0x7de2('0x8'));var path=require('path');var sox=require(_0x7de2('0x9'));var csv=require(_0x7de2('0xa'));var ejs=require(_0x7de2('0xb'));var fs=require('fs');var fs_extra=require(_0x7de2('0xc'));var _=require(_0x7de2('0xd'));var squel=require(_0x7de2('0xe'));var crypto=require(_0x7de2('0xf'));var jsforce=require(_0x7de2('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x7de2('0xa'));var querystring=require(_0x7de2('0x11'));var Papa=require(_0x7de2('0x12'));var Redis=require('ioredis');var authService=require(_0x7de2('0x13'));var qs=require(_0x7de2('0x14'));var as=require(_0x7de2('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7de2('0x16'));var utils=require('../../config/utils');var config=require(_0x7de2('0x17'));var licenseUtil=require(_0x7de2('0x18'));var db=require('../../mysqldb')['db'];config[_0x7de2('0x19')]=_[_0x7de2('0x1a')](config['redis'],{'host':_0x7de2('0x1b'),'port':0x18eb});var socket=require(_0x7de2('0x1c'))(new Redis(config[_0x7de2('0x19')]));require('./dashboard.socket')[_0x7de2('0x1d')](socket);function respondWithStatusCode(_0x4b85ab,_0x30a7b7){_0x30a7b7=_0x30a7b7||0xcc;return function(_0x2ae7dc){if(_0x2ae7dc){return _0x4b85ab['sendStatus'](_0x30a7b7);}return _0x4b85ab[_0x7de2('0x1e')](_0x30a7b7)['end']();};}function respondWithResult(_0x2d3013,_0x3b8304){_0x3b8304=_0x3b8304||0xc8;return function(_0x476b18){if(_0x476b18){return _0x2d3013['status'](_0x3b8304)[_0x7de2('0x1f')](_0x476b18);}};}function respondWithFilteredResult(_0x1dc440,_0x8d450f){return function(_0x2726f5){if(_0x2726f5){var _0x1b6dd0=typeof _0x8d450f[_0x7de2('0x20')]===_0x7de2('0x21')&&typeof _0x8d450f[_0x7de2('0x22')]===_0x7de2('0x21');var _0xba4280=_0x2726f5[_0x7de2('0x23')];var _0x315458=_0x1b6dd0?0x0:_0x8d450f[_0x7de2('0x20')];var _0x5232cf=_0x1b6dd0?_0x2726f5[_0x7de2('0x23')]:_0x8d450f['offset']+_0x8d450f['limit'];var _0x4111ce;if(_0x5232cf>=_0xba4280){_0x5232cf=_0xba4280;_0x4111ce=0xc8;}else{_0x4111ce=0xce;}_0x1dc440['status'](_0x4111ce);return _0x1dc440[_0x7de2('0x24')](_0x7de2('0x25'),_0x315458+'-'+_0x5232cf+'/'+_0xba4280)[_0x7de2('0x1f')](_0x2726f5);}return null;};}function patchUpdates(_0x19bec1){return function(_0x278398){try{jsonpatch['apply'](_0x278398,_0x19bec1,!![]);}catch(_0x7c4df6){return BPromise[_0x7de2('0x26')](_0x7c4df6);}return _0x278398['save']();};}function saveUpdates(_0x41470a,_0x5e3f7f){return function(_0x23a08f){if(_0x23a08f){return _0x23a08f[_0x7de2('0x27')](_0x41470a)['then'](function(_0x5134be){return _0x5134be;});}return null;};}function removeEntity(_0x5b97f4,_0x473eea){return function(_0x1ea268){if(_0x1ea268){return _0x1ea268[_0x7de2('0x28')]()[_0x7de2('0x29')](function(){var _0x5a7419=_0x1ea268[_0x7de2('0x2a')]({'plain':!![]});var _0xb52d64=_0x7de2('0x2b');return db[_0x7de2('0x2c')][_0x7de2('0x28')]({'where':{'type':_0xb52d64,'resourceId':_0x5a7419['id']}})[_0x7de2('0x29')](function(){return _0x1ea268;});})[_0x7de2('0x29')](function(){_0x5b97f4[_0x7de2('0x1e')](0xcc)[_0x7de2('0x2d')]();});}};}function handleEntityNotFound(_0x3248cf,_0x48e54b){return function(_0x54480b){if(!_0x54480b){_0x3248cf[_0x7de2('0x2e')](0x194);}return _0x54480b;};}function handleError(_0x54dd25,_0x51e4e5){_0x51e4e5=_0x51e4e5||0x1f4;return function(_0x2c0c59){logger[_0x7de2('0x2f')](_0x2c0c59['stack']);if(_0x2c0c59[_0x7de2('0x30')]){delete _0x2c0c59['name'];}_0x54dd25[_0x7de2('0x1e')](_0x51e4e5)[_0x7de2('0x31')](_0x2c0c59);};}exports[_0x7de2('0x32')]=function(_0x2e3e30,_0x3e949c){var _0x460462={},_0x4b322f={},_0x1254bf={'count':0x0,'rows':[]};var _0x218276=_[_0x7de2('0x33')](db[_0x7de2('0x34')][_0x7de2('0x35')],function(_0x478ee5){return{'name':_0x478ee5[_0x7de2('0x36')],'type':_0x478ee5[_0x7de2('0x37')][_0x7de2('0x38')]};});_0x4b322f['model']=_[_0x7de2('0x33')](_0x218276,_0x7de2('0x30'));_0x4b322f[_0x7de2('0x39')]=_[_0x7de2('0x3a')](_0x2e3e30[_0x7de2('0x39')]);_0x4b322f['filters']=_['intersection'](_0x4b322f[_0x7de2('0x3b')],_0x4b322f[_0x7de2('0x39')]);_0x460462[_0x7de2('0x3c')]=_['intersection'](_0x4b322f['model'],qs['fields'](_0x2e3e30[_0x7de2('0x39')][_0x7de2('0x3d')]));_0x460462[_0x7de2('0x3c')]=_0x460462[_0x7de2('0x3c')][_0x7de2('0x3e')]?_0x460462[_0x7de2('0x3c')]:_0x4b322f[_0x7de2('0x3b')];if(!_0x2e3e30[_0x7de2('0x39')]['hasOwnProperty'](_0x7de2('0x3f'))){_0x460462[_0x7de2('0x22')]=qs[_0x7de2('0x22')](_0x2e3e30[_0x7de2('0x39')][_0x7de2('0x22')]);_0x460462[_0x7de2('0x20')]=qs['offset'](_0x2e3e30[_0x7de2('0x39')][_0x7de2('0x20')]);}_0x460462[_0x7de2('0x40')]=qs['sort'](_0x2e3e30[_0x7de2('0x39')][_0x7de2('0x41')]);_0x460462['where']=qs[_0x7de2('0x42')](_[_0x7de2('0x43')](_0x2e3e30[_0x7de2('0x39')],_0x4b322f['filters']),_0x218276);if(_0x2e3e30[_0x7de2('0x39')][_0x7de2('0x44')]){_0x460462[_0x7de2('0x45')]=_['merge'](_0x460462[_0x7de2('0x45')],{'$or':_['map'](_0x218276,function(_0x203635){if(_0x203635[_0x7de2('0x37')]!==_0x7de2('0x46')){var _0x3f00cd={};_0x3f00cd[_0x203635[_0x7de2('0x30')]]={'$like':'%'+_0x2e3e30['query'][_0x7de2('0x44')]+'%'};return _0x3f00cd;}})});}_0x460462=_['merge']({},_0x460462,_0x2e3e30['options']);var _0x2760ff={'where':_0x460462[_0x7de2('0x45')]};return db[_0x7de2('0x34')][_0x7de2('0x23')](_0x2760ff)['then'](function(_0x33d162){_0x1254bf[_0x7de2('0x23')]=_0x33d162;if(_0x2e3e30[_0x7de2('0x39')][_0x7de2('0x47')]){_0x460462[_0x7de2('0x48')]=[{'all':!![]}];}return db['Dashboard']['findAll'](_0x460462);})['then'](function(_0x222387){_0x1254bf[_0x7de2('0x49')]=_0x222387;return _0x1254bf;})[_0x7de2('0x29')](respondWithFilteredResult(_0x3e949c,_0x460462))['catch'](handleError(_0x3e949c,null));};exports[_0x7de2('0x4a')]=function(_0x10853d,_0x331b9e){var _0x4209dc={'raw':![],'where':{'id':_0x10853d[_0x7de2('0x4b')]['id']}},_0x50aad4={};_0x50aad4['model']=_[_0x7de2('0x3a')](db[_0x7de2('0x34')][_0x7de2('0x35')]);_0x50aad4['query']=_[_0x7de2('0x3a')](_0x10853d['query']);_0x50aad4[_0x7de2('0x42')]=_[_0x7de2('0x4c')](_0x50aad4['model'],_0x50aad4['query']);_0x4209dc['attributes']=_[_0x7de2('0x4c')](_0x50aad4[_0x7de2('0x3b')],qs['fields'](_0x10853d[_0x7de2('0x39')]['fields']));_0x4209dc[_0x7de2('0x3c')]=_0x4209dc[_0x7de2('0x3c')]['length']?_0x4209dc[_0x7de2('0x3c')]:_0x50aad4['model'];if(_0x10853d[_0x7de2('0x39')][_0x7de2('0x47')]){_0x4209dc[_0x7de2('0x48')]=[{'all':!![]}];}_0x4209dc=_[_0x7de2('0x4d')]({},_0x4209dc,_0x10853d['options']);return db[_0x7de2('0x34')][_0x7de2('0x4e')](_0x4209dc)[_0x7de2('0x29')](handleEntityNotFound(_0x331b9e,null))[_0x7de2('0x29')](respondWithResult(_0x331b9e,null))[_0x7de2('0x4f')](handleError(_0x331b9e,null));};exports[_0x7de2('0x50')]=function(_0x2758e5,_0x53f461){return db[_0x7de2('0x34')]['create'](_0x2758e5['body'],{})['then'](function(_0x321a23){var _0x33b510=_0x2758e5[_0x7de2('0x51')][_0x7de2('0x2a')]({'plain':!![]});if(!_0x33b510)throw new Error(_0x7de2('0x52'));if(_0x33b510[_0x7de2('0x53')]==='user'){var _0x10a292=_0x321a23[_0x7de2('0x2a')]({'plain':!![]});var _0x45be36=_0x7de2('0x2b');return db[_0x7de2('0x54')][_0x7de2('0x4e')]({'where':{'name':_0x45be36,'userProfileId':_0x33b510[_0x7de2('0x55')]},'raw':!![]})['then'](function(_0x1d4ff3){if(_0x1d4ff3&&_0x1d4ff3['autoAssociation']===0x0){return db[_0x7de2('0x2c')][_0x7de2('0x50')]({'name':_0x10a292[_0x7de2('0x30')],'resourceId':_0x10a292['id'],'type':_0x1d4ff3[_0x7de2('0x30')],'sectionId':_0x1d4ff3['id']},{})[_0x7de2('0x29')](function(){return _0x321a23;});}else{return _0x321a23;}})[_0x7de2('0x4f')](function(_0xebc284){logger[_0x7de2('0x2f')](_0x7de2('0x56'),_0xebc284);throw _0xebc284;});}return _0x321a23;})[_0x7de2('0x29')](respondWithResult(_0x53f461,0xc9))[_0x7de2('0x4f')](handleError(_0x53f461,null));};exports['clone']=function(_0x370071,_0x1b01dd){var _0x24f2b2={'where':{'id':_0x370071['params']['id']}},_0x292a1b={};_0x292a1b['model']=_[_0x7de2('0x3a')](db['Dashboard'][_0x7de2('0x35')]);_0x24f2b2[_0x7de2('0x3c')]=_[_0x7de2('0x4c')](_0x292a1b[_0x7de2('0x3b')],qs[_0x7de2('0x3d')](_0x370071[_0x7de2('0x39')][_0x7de2('0x3d')]));_0x24f2b2['attributes']=_0x24f2b2[_0x7de2('0x3c')]['length']?_0x24f2b2['attributes']:_0x292a1b[_0x7de2('0x3b')];if(_0x370071[_0x7de2('0x39')][_0x7de2('0x47')]){_0x24f2b2[_0x7de2('0x48')]=[{'all':!![]}];}_0x24f2b2=_[_0x7de2('0x4d')]({},_0x24f2b2,_0x370071[_0x7de2('0x57')]);return db[_0x7de2('0x34')][_0x7de2('0x4e')](_0x24f2b2)[_0x7de2('0x29')](handleEntityNotFound(_0x1b01dd,null))['then'](function(_0x4a30e1){if(_0x4a30e1){var _0x49ebb6=_0x4a30e1[_0x7de2('0x2a')]({'plain':!![]});_0x49ebb6=qs[_0x7de2('0x58')](_0x49ebb6,['id',_0x7de2('0x59'),'updatedAt']);_0x370071['body']=_[_0x7de2('0x58')](_0x370071[_0x7de2('0x5a')],['id',_0x7de2('0x59'),'updatedAt']);return db[_0x7de2('0x34')][_0x7de2('0x50')](_[_0x7de2('0x4d')](_0x49ebb6,_0x370071[_0x7de2('0x5a')]),{'include':_0x370071[_0x7de2('0x39')][_0x7de2('0x47')]?[{'all':!![]}]:undefined})[_0x7de2('0x29')](function(_0x21a915){var _0x288b46=_0x370071[_0x7de2('0x51')]['get']({'plain':!![]});if(!_0x288b46)throw new Error(_0x7de2('0x52'));if(_0x288b46[_0x7de2('0x53')]===_0x7de2('0x51')){var _0x4d1a90=_0x21a915['get']({'plain':!![]});var _0x4d6348=_0x7de2('0x2b');return db['UserProfileSection'][_0x7de2('0x4e')]({'where':{'name':_0x4d6348,'userProfileId':_0x288b46['userProfileId']},'raw':!![]})[_0x7de2('0x29')](function(_0xc7b592){if(_0xc7b592&&_0xc7b592['autoAssociation']===0x0){return db[_0x7de2('0x2c')][_0x7de2('0x50')]({'name':_0x4d1a90[_0x7de2('0x30')],'resourceId':_0x4d1a90['id'],'type':_0xc7b592[_0x7de2('0x30')],'sectionId':_0xc7b592['id']},{})[_0x7de2('0x29')](function(){return _0x21a915;});}else{return _0x21a915;}})['catch'](function(_0x2a0fff){logger[_0x7de2('0x2f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2a0fff);throw _0x2a0fff;});}return _0x21a915;});}})[_0x7de2('0x29')](respondWithResult(_0x1b01dd,0xc9))['catch'](handleError(_0x1b01dd,null));};exports[_0x7de2('0x27')]=function(_0x4ff129,_0x2b8904){if(_0x4ff129[_0x7de2('0x5a')]['id']){delete _0x4ff129[_0x7de2('0x5a')]['id'];}return db[_0x7de2('0x34')][_0x7de2('0x4e')]({'where':{'id':_0x4ff129['params']['id']}})[_0x7de2('0x29')](handleEntityNotFound(_0x2b8904,null))['then'](saveUpdates(_0x4ff129[_0x7de2('0x5a')],null))[_0x7de2('0x29')](respondWithResult(_0x2b8904,null))[_0x7de2('0x4f')](handleError(_0x2b8904,null));};exports['destroy']=function(_0x20e09b,_0x114997){return db['Dashboard'][_0x7de2('0x4e')]({'where':{'id':_0x20e09b[_0x7de2('0x4b')]['id']}})[_0x7de2('0x29')](handleEntityNotFound(_0x114997,null))[_0x7de2('0x29')](removeEntity(_0x114997,null))[_0x7de2('0x4f')](handleError(_0x114997,null));};function widgetAttributes(_0x17f624){try{switch(_0x17f624[_0x7de2('0x37')]){case'iframe':return[{'name':_0x7de2('0x5b'),'value':_0x17f624[_0x7de2('0x5b')]||(_0x17f624['attrs']&&_0x17f624['attrs'][0x0]?_0x17f624[_0x7de2('0x5c')][0x0]['value']:undefined)||_0x7de2('0x5d')}];case _0x7de2('0x5e'):return[{'name':_0x7de2('0x5f'),'value':_0x17f624[_0x7de2('0x5f')]||(_0x17f624['attrs']&&_0x17f624[_0x7de2('0x5c')][0x0]?_0x17f624[_0x7de2('0x5c')][0x0][_0x7de2('0x60')]:undefined)||''}];case _0x7de2('0x61'):return[{'name':_0x7de2('0x62'),'value':_0x17f624[_0x7de2('0x62')]||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624['attrs'][0x0]?_0x17f624['attrs'][0x0]['value']:undefined)||'HH:mm:ss'},{'name':_0x7de2('0x63'),'value':_0x17f624[_0x7de2('0x63')]||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624[_0x7de2('0x5c')][0x1]?_0x17f624[_0x7de2('0x5c')][0x1][_0x7de2('0x60')]:undefined)||_0x7de2('0x64')},{'name':_0x7de2('0x65'),'value':_0x17f624[_0x7de2('0x65')]||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624[_0x7de2('0x5c')][0x2]?_0x17f624['attrs'][0x2][_0x7de2('0x60')]:undefined)||0xc}];case _0x7de2('0x66'):return[{'name':_0x7de2('0x67'),'value':_0x17f624[_0x7de2('0x67')]||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624[_0x7de2('0x5c')][0x0]?_0x17f624[_0x7de2('0x5c')][0x0][_0x7de2('0x60')]:undefined)||_0x7de2('0x68')},{'name':_0x7de2('0x69'),'value':_0x17f624['attrVoiceQueues']||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624['attrs'][0x1]?_0x17f624[_0x7de2('0x5c')][0x1][_0x7de2('0x60')]:undefined)||[]},{'name':_0x7de2('0x65'),'value':_0x17f624[_0x7de2('0x65')]||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624['attrs'][0x2]?_0x17f624['attrs'][0x2]['value']:undefined)||0x14}];case'multibar-chart':case'pie-chart':return[{'name':'attrSerie1','value':_0x17f624[_0x7de2('0x6a')]||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624[_0x7de2('0x5c')][0x0]?_0x17f624['attrs'][0x0][_0x7de2('0x60')]:undefined)||_0x7de2('0x68')},{'name':'attrSerie2','value':_0x17f624[_0x7de2('0x6b')]||(_0x17f624['attrs']&&_0x17f624[_0x7de2('0x5c')][0x1]?_0x17f624[_0x7de2('0x5c')][0x1][_0x7de2('0x60')]:undefined)||null},{'name':_0x7de2('0x6c'),'value':_0x17f624['attrSerie3']||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624['attrs'][0x2]?_0x17f624[_0x7de2('0x5c')][0x2][_0x7de2('0x60')]:undefined)||null},{'name':_0x7de2('0x69'),'value':_0x17f624['attrVoiceQueues']||(_0x17f624[_0x7de2('0x5c')]&&_0x17f624[_0x7de2('0x5c')][0x3]?_0x17f624[_0x7de2('0x5c')][0x3][_0x7de2('0x60')]:undefined)||[]}];case'web-report':return[{'name':_0x7de2('0x6d'),'type':_0x17f624['reportType']||(_0x17f624['attrs']&&_0x17f624[_0x7de2('0x5c')][0x0]?_0x17f624['attrs'][0x0][_0x7de2('0x37')]:undefined)||null,'value':_0x17f624['attrReport']||(_0x17f624['attrs']&&_0x17f624[_0x7de2('0x5c')][0x0]?_0x17f624[_0x7de2('0x5c')][0x0][_0x7de2('0x60')]:undefined)||null},{'name':_0x7de2('0x6e'),'value':_0x17f624[_0x7de2('0x6e')]||(_0x17f624['attrs']&&_0x17f624[_0x7de2('0x5c')][0x1]?_0x17f624[_0x7de2('0x5c')][0x1][_0x7de2('0x60')]:undefined)||0x0}];default:return[];}}catch(_0x462623){logger['error']('widgetAttributes:\x20%s',JSON[_0x7de2('0x6f')](_0x462623));return[];}}exports['addItem']=function(_0x495678,_0x32a784,_0x24027e){if(_0x495678[_0x7de2('0x5a')]['id']){delete _0x495678['body']['id'];}return db[_0x7de2('0x34')][_0x7de2('0x4e')]({'where':{'id':_0x495678[_0x7de2('0x4b')]['id']}})['then'](handleEntityNotFound(_0x32a784,null))[_0x7de2('0x29')](function(_0x41d6e8){if(_0x41d6e8){_0x495678[_0x7de2('0x5a')]['DashboardId']=_0x41d6e8['id'];_0x495678[_0x7de2('0x5a')][_0x7de2('0x5c')]=widgetAttributes(_0x495678[_0x7de2('0x5a')]);return db[_0x7de2('0x70')][_0x7de2('0x50')](_0x495678[_0x7de2('0x5a')]);}})[_0x7de2('0x29')](respondWithResult(_0x32a784,null))[_0x7de2('0x4f')](handleError(_0x32a784,null));};exports[_0x7de2('0x71')]=function(_0xdbab15,_0x14ff51,_0xfd977b){var _0x201774={};var _0x18e74c={};var _0x1aa57c;var _0x165ee1;return db[_0x7de2('0x34')]['findOne']({'where':{'id':_0xdbab15[_0x7de2('0x4b')]['id']}})['then'](handleEntityNotFound(_0x14ff51,null))[_0x7de2('0x29')](function(_0x7f84f8){if(_0x7f84f8){_0x1aa57c=_0x7f84f8;_0x18e74c['model']=_[_0x7de2('0x3a')](db['DashboardItem']['rawAttributes']);_0x18e74c[_0x7de2('0x39')]=_['keys'](_0xdbab15[_0x7de2('0x39')]);_0x18e74c[_0x7de2('0x42')]=_['intersection'](_0x18e74c['model'],_0x18e74c[_0x7de2('0x39')]);_0x201774[_0x7de2('0x3c')]=_[_0x7de2('0x4c')](_0x18e74c['model'],qs[_0x7de2('0x3d')](_0xdbab15['query'][_0x7de2('0x3d')]));_0x201774[_0x7de2('0x3c')]=_0x201774[_0x7de2('0x3c')][_0x7de2('0x3e')]?_0x201774[_0x7de2('0x3c')]:_0x18e74c['model'];_0x201774[_0x7de2('0x40')]=qs['sort'](_0xdbab15[_0x7de2('0x39')]['sort']);_0x201774[_0x7de2('0x45')]=qs[_0x7de2('0x42')](_[_0x7de2('0x43')](_0xdbab15['query'],_0x18e74c['filters']));if(_0xdbab15[_0x7de2('0x39')][_0x7de2('0x44')]){_0x201774[_0x7de2('0x45')]=_[_0x7de2('0x4d')](_0x201774[_0x7de2('0x45')],{'$or':_[_0x7de2('0x33')](_0x201774[_0x7de2('0x3c')],function(_0x1b03c0){var _0x12aa15={};_0x12aa15[_0x1b03c0]={'$like':'%'+_0xdbab15['query']['filter']+'%'};return _0x12aa15;})});}_0x201774=_[_0x7de2('0x4d')]({},_0x201774,_0xdbab15[_0x7de2('0x57')]);return _0x1aa57c['getItems'](_0x201774);}})[_0x7de2('0x29')](function(_0x36f539){if(_0x36f539){_0x165ee1=_0x36f539['length'];if(!_0xdbab15['query']['hasOwnProperty'](_0x7de2('0x3f'))){_0x201774[_0x7de2('0x22')]=qs[_0x7de2('0x22')](_0xdbab15[_0x7de2('0x39')][_0x7de2('0x22')]);_0x201774['offset']=qs[_0x7de2('0x20')](_0xdbab15[_0x7de2('0x39')][_0x7de2('0x20')]);}return _0x1aa57c[_0x7de2('0x71')](_0x201774);}})[_0x7de2('0x29')](function(_0x592750){if(_0x592750){return _0x592750?{'count':_0x165ee1,'rows':_0x592750}:null;}})[_0x7de2('0x29')](respondWithResult(_0x14ff51,null))[_0x7de2('0x4f')](handleError(_0x14ff51,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa53e=['remove','emit','hasOwnProperty','hook','exports','events','Dashboard','setMaxListeners','update'];(function(_0x3e4e5c,_0x4d2966){var _0x46f0bf=function(_0x2d1982){while(--_0x2d1982){_0x3e4e5c['push'](_0x3e4e5c['shift']());}};_0x46f0bf(++_0x4d2966);}(_0xa53e,0xe6));var _0xea53=function(_0x3497e1,_0x3698f7){_0x3497e1=_0x3497e1-0x0;var _0x3d324e=_0xa53e[_0x3497e1];return _0x3d324e;};'use strict';var EventEmitter=require(_0xea53('0x0'));var Dashboard=require('../../mysqldb')['db'][_0xea53('0x1')];var DashboardEvents=new EventEmitter();DashboardEvents[_0xea53('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xea53('0x3'),'afterDestroy':_0xea53('0x4')};function emitEvent(_0x5b3251){return function(_0x2b11f7,_0x5b46b6,_0x33a6e4){DashboardEvents[_0xea53('0x5')](_0x5b3251+':'+_0x2b11f7['id'],_0x2b11f7);DashboardEvents['emit'](_0x5b3251,_0x2b11f7);_0x33a6e4(null);};}for(var e in events){if(events[_0xea53('0x6')](e)){var event=events[e];Dashboard[_0xea53('0x7')](e,emitEvent(event));}}module[_0xea53('0x8')]=DashboardEvents;
\ No newline at end of file
+var _0x8745=['hook','exports','events','../../mysqldb','setMaxListeners','save','remove','emit','hasOwnProperty'];(function(_0x5a43ab,_0x15a9e0){var _0x293a82=function(_0xc439f4){while(--_0xc439f4){_0x5a43ab['push'](_0x5a43ab['shift']());}};_0x293a82(++_0x15a9e0);}(_0x8745,0xc8));var _0x5874=function(_0x1eaa32,_0x12552){_0x1eaa32=_0x1eaa32-0x0;var _0x4946a7=_0x8745[_0x1eaa32];return _0x4946a7;};'use strict';var EventEmitter=require(_0x5874('0x0'));var Dashboard=require(_0x5874('0x1'))['db']['Dashboard'];var DashboardEvents=new EventEmitter();DashboardEvents[_0x5874('0x2')](0x0);var events={'afterCreate':_0x5874('0x3'),'afterUpdate':'update','afterDestroy':_0x5874('0x4')};function emitEvent(_0x45a081){return function(_0x5a00e9,_0x57ac9,_0x3fa522){DashboardEvents[_0x5874('0x5')](_0x45a081+':'+_0x5a00e9['id'],_0x5a00e9);DashboardEvents[_0x5874('0x5')](_0x45a081,_0x5a00e9);_0x3fa522(null);};}for(var e in events){if(events[_0x5874('0x6')](e)){var event=events[e];Dashboard[_0x5874('0x7')](e,emitEvent(event));}}module[_0x5874('0x8')]=DashboardEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf306=['request-promise','path','../../config/environment','./dashboard.attributes','define','Dashboard','dashboards','lodash','util','api','bluebird'];(function(_0x33d810,_0x4f799f){var _0x4d2266=function(_0x3f3b97){while(--_0x3f3b97){_0x33d810['push'](_0x33d810['shift']());}};_0x4d2266(++_0x4f799f);}(_0xf306,0x75));var _0x6f30=function(_0x2c6760,_0x487080){_0x2c6760=_0x2c6760-0x0;var _0x704576=_0xf306[_0x2c6760];return _0x704576;};'use strict';var _=require(_0x6f30('0x0'));var util=require(_0x6f30('0x1'));var logger=require('../../config/logger')(_0x6f30('0x2'));var moment=require('moment');var BPromise=require(_0x6f30('0x3'));var rp=require(_0x6f30('0x4'));var fs=require('fs');var path=require(_0x6f30('0x5'));var rimraf=require('rimraf');var config=require(_0x6f30('0x6'));var attributes=require(_0x6f30('0x7'));module['exports']=function(_0x5bde3f,_0x45db78){return _0x5bde3f[_0x6f30('0x8')](_0x6f30('0x9'),attributes,{'tableName':_0x6f30('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x773a=['define','Dashboard','dashboards','moment','bluebird','path','rimraf','../../config/environment','exports'];(function(_0x1fed9d,_0x13b386){var _0x55e74a=function(_0x391311){while(--_0x391311){_0x1fed9d['push'](_0x1fed9d['shift']());}};_0x55e74a(++_0x13b386);}(_0x773a,0x1e0));var _0xa773=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x773a[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xa773('0x0'));var BPromise=require(_0xa773('0x1'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa773('0x2'));var rimraf=require(_0xa773('0x3'));var config=require(_0xa773('0x4'));var attributes=require('./dashboard.attributes');module[_0xa773('0x5')]=function(_0x3cbebe,_0x3bf711){return _0x3cbebe[_0xa773('0x6')](_0xa773('0x7'),attributes,{'tableName':_0xa773('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7004=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./dashboard.socket','request','then','info','Dashboard,\x20%s,\x20%s','debug','Dashboard,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','catch','lodash'];(function(_0x50b7a0,_0x2987bb){var _0x1270d9=function(_0x5979c7){while(--_0x5979c7){_0x50b7a0['push'](_0x50b7a0['shift']());}};_0x1270d9(++_0x2987bb);}(_0x7004,0x16b));var _0x4700=function(_0x3cdbc7,_0x2a7cb3){_0x3cdbc7=_0x3cdbc7-0x0;var _0x422d20=_0x7004[_0x3cdbc7];return _0x422d20;};'use strict';var _=require(_0x4700('0x0'));var util=require(_0x4700('0x1'));var moment=require(_0x4700('0x2'));var BPromise=require('bluebird');var rs=require(_0x4700('0x3'));var fs=require('fs');var Redis=require(_0x4700('0x4'));var db=require(_0x4700('0x5'))['db'];var utils=require(_0x4700('0x6'));var logger=require(_0x4700('0x7'))('rpc');var config=require(_0x4700('0x8'));var jayson=require(_0x4700('0x9'));var client=jayson[_0x4700('0xa')][_0x4700('0xb')]({'port':0x232a});config[_0x4700('0xc')]=_[_0x4700('0xd')](config[_0x4700('0xc')],{'host':_0x4700('0xe'),'port':0x18eb});var socket=require(_0x4700('0xf'))(new Redis(config[_0x4700('0xc')]));require(_0x4700('0x10'))['register'](socket);function respondWithRpcPromise(_0x3d0e37,_0x3add7b,_0x4b7d68){return new BPromise(function(_0x177410,_0x486b0){return client[_0x4700('0x11')](_0x3d0e37,_0x4b7d68)[_0x4700('0x12')](function(_0x1c951a){logger[_0x4700('0x13')](_0x4700('0x14'),_0x3add7b,'request\x20sent');logger[_0x4700('0x15')](_0x4700('0x16'),_0x3add7b,'request\x20sent',JSON[_0x4700('0x17')](_0x1c951a));if(_0x1c951a[_0x4700('0x18')]){if(_0x1c951a['error']['code']===0x1f4){logger[_0x4700('0x18')](_0x4700('0x14'),_0x3add7b,_0x1c951a[_0x4700('0x18')][_0x4700('0x19')]);return _0x486b0(_0x1c951a[_0x4700('0x18')]['message']);}logger['error'](_0x4700('0x14'),_0x3add7b,_0x1c951a['error'][_0x4700('0x19')]);return _0x177410(_0x1c951a[_0x4700('0x18')]['message']);}else{logger[_0x4700('0x13')]('Dashboard,\x20%s,\x20%s',_0x3add7b,_0x4700('0x1a'));_0x177410(_0x1c951a['result'][_0x4700('0x19')]);}})[_0x4700('0x1b')](function(_0x3d0b9a){logger['error'](_0x4700('0x14'),_0x3add7b,_0x3d0b9a);_0x486b0(_0x3d0b9a);});});}
\ No newline at end of file
+var _0x2443=['redis','defaults','localhost','socket.io-emitter','register','request','Dashboard,\x20%s,\x20%s','request\x20sent','debug','Dashboard,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x19a49f,_0x444d74){var _0x5351ae=function(_0x58b1ed){while(--_0x58b1ed){_0x19a49f['push'](_0x19a49f['shift']());}};_0x5351ae(++_0x444d74);}(_0x2443,0xce));var _0x3244=function(_0x52453b,_0x8b259b){_0x52453b=_0x52453b-0x0;var _0xa97239=_0x2443[_0x52453b];return _0xa97239;};'use strict';var _=require(_0x3244('0x0'));var util=require(_0x3244('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x3244('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3244('0x3'))['db'];var utils=require(_0x3244('0x4'));var logger=require(_0x3244('0x5'))(_0x3244('0x6'));var config=require('../../config/environment');var jayson=require(_0x3244('0x7'));var client=jayson[_0x3244('0x8')][_0x3244('0x9')]({'port':0x232a});config[_0x3244('0xa')]=_[_0x3244('0xb')](config[_0x3244('0xa')],{'host':_0x3244('0xc'),'port':0x18eb});var socket=require(_0x3244('0xd'))(new Redis(config['redis']));require('./dashboard.socket')[_0x3244('0xe')](socket);function respondWithRpcPromise(_0x47ff89,_0x5ce57f,_0x30b67f){return new BPromise(function(_0x251534,_0x5f5da1){return client[_0x3244('0xf')](_0x47ff89,_0x30b67f)['then'](function(_0x1d3c94){logger['info'](_0x3244('0x10'),_0x5ce57f,_0x3244('0x11'));logger[_0x3244('0x12')](_0x3244('0x13'),_0x5ce57f,_0x3244('0x11'),JSON[_0x3244('0x14')](_0x1d3c94));if(_0x1d3c94[_0x3244('0x15')]){if(_0x1d3c94[_0x3244('0x15')][_0x3244('0x16')]===0x1f4){logger['error']('Dashboard,\x20%s,\x20%s',_0x5ce57f,_0x1d3c94[_0x3244('0x15')]['message']);return _0x5f5da1(_0x1d3c94[_0x3244('0x15')][_0x3244('0x17')]);}logger[_0x3244('0x15')](_0x3244('0x10'),_0x5ce57f,_0x1d3c94['error'][_0x3244('0x17')]);return _0x251534(_0x1d3c94[_0x3244('0x15')][_0x3244('0x17')]);}else{logger[_0x3244('0x18')](_0x3244('0x10'),_0x5ce57f,_0x3244('0x11'));_0x251534(_0x1d3c94[_0x3244('0x19')][_0x3244('0x17')]);}})[_0x3244('0x1a')](function(_0x51c5cf){logger[_0x3244('0x15')](_0x3244('0x10'),_0x5ce57f,_0x51c5cf);_0x5f5da1(_0x51c5cf);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d78=['removeListener','dashboard:','./dashboard.events','save','update','emit'];(function(_0x674cee,_0x6c3ec){var _0x101fae=function(_0x4ae680){while(--_0x4ae680){_0x674cee['push'](_0x674cee['shift']());}};_0x101fae(++_0x6c3ec);}(_0x6d78,0x1d0));var _0x86d7=function(_0x814371,_0x341583){_0x814371=_0x814371-0x0;var _0x2fd4b4=_0x6d78[_0x814371];return _0x2fd4b4;};'use strict';var DashboardEvents=require(_0x86d7('0x0'));var events=[_0x86d7('0x1'),'remove',_0x86d7('0x2')];function createListener(_0x478fcc,_0x2d1271){return function(_0x5c9dc5){_0x2d1271[_0x86d7('0x3')](_0x478fcc,_0x5c9dc5);};}function removeListener(_0x2ebbae,_0x751dda){return function(){DashboardEvents[_0x86d7('0x4')](_0x2ebbae,_0x751dda);};}exports['register']=function(_0x5d6c7f){for(var _0x29ac39=0x0,_0x3a876c=events['length'];_0x29ac39<_0x3a876c;_0x29ac39++){var _0x1403ee=events[_0x29ac39];var _0x2c0929=createListener(_0x86d7('0x5')+_0x1403ee,_0x5d6c7f);DashboardEvents['on'](_0x1403ee,_0x2c0929);}};
\ No newline at end of file
+var _0x8a8d=['update','emit','register','length','remove'];(function(_0x454aae,_0x4604b6){var _0x58db87=function(_0x2394f8){while(--_0x2394f8){_0x454aae['push'](_0x454aae['shift']());}};_0x58db87(++_0x4604b6);}(_0x8a8d,0x1b7));var _0xd8a8=function(_0x2ca41b,_0x2315bd){_0x2ca41b=_0x2ca41b-0x0;var _0xd68a72=_0x8a8d[_0x2ca41b];return _0xd68a72;};'use strict';var DashboardEvents=require('./dashboard.events');var events=['save',_0xd8a8('0x0'),_0xd8a8('0x1')];function createListener(_0x801ec1,_0xc5fba9){return function(_0x139c1d){_0xc5fba9[_0xd8a8('0x2')](_0x801ec1,_0x139c1d);};}function removeListener(_0x4f2895,_0x19c8c2){return function(){DashboardEvents['removeListener'](_0x4f2895,_0x19c8c2);};}exports[_0xd8a8('0x3')]=function(_0x357e2e){for(var _0x2b11a3=0x0,_0xd15283=events[_0xd8a8('0x4')];_0x2b11a3<_0xd15283;_0x2b11a3++){var _0x18893b=events[_0x2b11a3];var _0x5c5b94=createListener('dashboard:'+_0x18893b,_0x357e2e);DashboardEvents['on'](_0x18893b,_0x5c5b94);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fa4=['exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','index','isAuthenticated','show','getItems','post','create','/:id/clone','clone','/:id/items','put','update','delete','/:id'];(function(_0x51dd2c,_0x2a2345){var _0x41c678=function(_0xa14c31){while(--_0xa14c31){_0x51dd2c['push'](_0x51dd2c['shift']());}};_0x41c678(++_0x2a2345);}(_0x1fa4,0x94));var _0x41fa=function(_0x1fd842,_0x4180ee){_0x1fd842=_0x1fd842-0x0;var _0x2dffaa=_0x1fa4[_0x1fd842];return _0x2dffaa;};'use strict';var multer=require('multer');var util=require(_0x41fa('0x0'));var path=require(_0x41fa('0x1'));var timeout=require(_0x41fa('0x2'));var express=require(_0x41fa('0x3'));var router=express[_0x41fa('0x4')]();var fs_extra=require(_0x41fa('0x5'));var auth=require(_0x41fa('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./dashboard.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x41fa('0x7')]);router['get']('/:id',auth[_0x41fa('0x8')](),controller[_0x41fa('0x9')]);router['get']('/:id/items',auth['isAuthenticated'](),controller[_0x41fa('0xa')]);router[_0x41fa('0xb')]('/',auth[_0x41fa('0x8')](),controller[_0x41fa('0xc')]);router[_0x41fa('0xb')](_0x41fa('0xd'),auth[_0x41fa('0x8')](),controller[_0x41fa('0xe')]);router[_0x41fa('0xb')](_0x41fa('0xf'),auth[_0x41fa('0x8')](),controller['addItem']);router[_0x41fa('0x10')]('/:id',auth[_0x41fa('0x8')](),controller[_0x41fa('0x11')]);router[_0x41fa('0x12')](_0x41fa('0x13'),auth[_0x41fa('0x8')](),controller['destroy']);module[_0x41fa('0x14')]=router;
\ No newline at end of file
+var _0x02df=['multer','util','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/items','getItems','post','create','/:id/clone','clone','addItem','update','delete','destroy','exports'];(function(_0xbf6baf,_0x5c899){var _0x20dafd=function(_0x282793){while(--_0x282793){_0xbf6baf['push'](_0xbf6baf['shift']());}};_0x20dafd(++_0x5c899);}(_0x02df,0x142));var _0xf02d=function(_0x42239e,_0x2810f0){_0x42239e=_0x42239e-0x0;var _0x144cc3=_0x02df[_0x42239e];return _0x144cc3;};'use strict';var multer=require(_0xf02d('0x0'));var util=require(_0xf02d('0x1'));var path=require('path');var timeout=require(_0xf02d('0x2'));var express=require(_0xf02d('0x3'));var router=express['Router']();var fs_extra=require(_0xf02d('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xf02d('0x5'));var config=require(_0xf02d('0x6'));var controller=require('./dashboard.controller');router[_0xf02d('0x7')]('/',auth[_0xf02d('0x8')](),controller[_0xf02d('0x9')]);router[_0xf02d('0x7')](_0xf02d('0xa'),auth[_0xf02d('0x8')](),controller[_0xf02d('0xb')]);router[_0xf02d('0x7')](_0xf02d('0xc'),auth[_0xf02d('0x8')](),controller[_0xf02d('0xd')]);router[_0xf02d('0xe')]('/',auth['isAuthenticated'](),controller[_0xf02d('0xf')]);router['post'](_0xf02d('0x10'),auth[_0xf02d('0x8')](),controller[_0xf02d('0x11')]);router[_0xf02d('0xe')]('/:id/items',auth[_0xf02d('0x8')](),controller[_0xf02d('0x12')]);router['put']('/:id',auth[_0xf02d('0x8')](),controller[_0xf02d('0x13')]);router[_0xf02d('0x14')](_0xf02d('0xa'),auth['isAuthenticated'](),controller[_0xf02d('0x15')]);module[_0xf02d('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d58=['attrs','stringify','INTEGER','#2196f3','STRING','TEXT','parse','getDataValue','setDataValue'];(function(_0x491cc6,_0x52943c){var _0x4c163d=function(_0x3af3a2){while(--_0x3af3a2){_0x491cc6['push'](_0x491cc6['shift']());}};_0x4c163d(++_0x52943c);}(_0x5d58,0x187));var _0x85d5=function(_0x323bd3,_0x3aecd3){_0x323bd3=_0x323bd3-0x0;var _0x53314e=_0x5d58[_0x323bd3];return _0x53314e;};'use strict';var Sequelize=require('sequelize');var squel=require('squel');var _=require('lodash');module['exports']={'title':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x85d5('0x0')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x85d5('0x1')]('long'),'get':function(){try{return JSON[_0x85d5('0x2')](this[_0x85d5('0x3')]('attrs'));}catch(_0x1eb211){return[];}},'set':function(_0x2d457a){try{this[_0x85d5('0x4')](_0x85d5('0x5'),JSON['stringify'](_0x2d457a));}catch(_0x98c963){this[_0x85d5('0x4')]('attrs',JSON[_0x85d5('0x6')]([]));}}},'sizeX':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x85d5('0x7')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x85d5('0x7')]},'col':{'type':Sequelize[_0x85d5('0x7')]},'background':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'#ffffff','validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x85d5('0x8'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x85d5('0x0')]},'titleFontSize':{'type':Sequelize[_0x85d5('0x7')],'defaultValue':0xc}};
\ No newline at end of file
+var _0x7096=['setDataValue','stringify','INTEGER','#ffffff','squel','exports','STRING','TEXT','long','parse','getDataValue','attrs'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7096,0x10c));var _0x6709=function(_0x550d12,_0x5384bd){_0x550d12=_0x550d12-0x0;var _0x12103d=_0x7096[_0x550d12];return _0x12103d;};'use strict';var Sequelize=require('sequelize');var squel=require(_0x6709('0x0'));var _=require('lodash');module[_0x6709('0x1')]={'title':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x6709('0x2')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x6709('0x3')](_0x6709('0x4')),'get':function(){try{return JSON[_0x6709('0x5')](this[_0x6709('0x6')](_0x6709('0x7')));}catch(_0xb8fe6d){return[];}},'set':function(_0x9d630f){try{this[_0x6709('0x8')](_0x6709('0x7'),JSON[_0x6709('0x9')](_0x9d630f));}catch(_0x985814){this[_0x6709('0x8')]('attrs',JSON['stringify']([]));}}},'sizeX':{'type':Sequelize[_0x6709('0xa')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x6709('0xa')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x6709('0xa')]},'col':{'type':Sequelize[_0x6709('0xa')]},'background':{'type':Sequelize[_0x6709('0x2')],'allowNull':![],'defaultValue':_0x6709('0xb'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'#2196f3','validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x6709('0x2')]},'titleFontSize':{'type':Sequelize[_0x6709('0xa')],'defaultValue':0xc}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e6b=['util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./dashboardItem.socket','register','sendStatus','status','end','undefined','limit','count','offset','set','json','apply','save','update','then','error','stack','name','send','show','model','rawAttributes','query','keys','filters','fields','attributes','length','include','merge','options','DashboardItem','find','destroy','params','catch','type','attrUrl','attrs','attrPath','clock','attrHourFormat','value','HH:mm:ss','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','zip-dir','request-promise','moment'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x4e6b,0x1be));var _0xb4e6=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x4e6b[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require(_0xb4e6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb4e6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb4e6('0x2'));var moment=require(_0xb4e6('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb4e6('0x4'));var path=require(_0xb4e6('0x5'));var sox=require(_0xb4e6('0x6'));var csv=require(_0xb4e6('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb4e6('0x8'));var _=require(_0xb4e6('0x9'));var squel=require(_0xb4e6('0xa'));var crypto=require(_0xb4e6('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xb4e6('0xc'));var toCsv=require(_0xb4e6('0x7'));var querystring=require(_0xb4e6('0xd'));var Papa=require(_0xb4e6('0xe'));var Redis=require(_0xb4e6('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xb4e6('0x10'));var as=require(_0xb4e6('0x11'));var hardwareService=require(_0xb4e6('0x12'));var logger=require(_0xb4e6('0x13'))(_0xb4e6('0x14'));var utils=require(_0xb4e6('0x15'));var config=require(_0xb4e6('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xb4e6('0x17'))['db'];config[_0xb4e6('0x18')]=_[_0xb4e6('0x19')](config[_0xb4e6('0x18')],{'host':_0xb4e6('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xb4e6('0x1b'))[_0xb4e6('0x1c')](socket);function respondWithStatusCode(_0x1d485e,_0xf253b0){_0xf253b0=_0xf253b0||0xcc;return function(_0x546b45){if(_0x546b45){return _0x1d485e[_0xb4e6('0x1d')](_0xf253b0);}return _0x1d485e[_0xb4e6('0x1e')](_0xf253b0)[_0xb4e6('0x1f')]();};}function respondWithResult(_0xe5ea7e,_0x2e30fb){_0x2e30fb=_0x2e30fb||0xc8;return function(_0x417202){if(_0x417202){return _0xe5ea7e[_0xb4e6('0x1e')](_0x2e30fb)['json'](_0x417202);}};}function respondWithFilteredResult(_0x87d268,_0x30af29){return function(_0x2b461d){if(_0x2b461d){var _0x2a58c0=typeof _0x30af29['offset']===_0xb4e6('0x20')&&typeof _0x30af29[_0xb4e6('0x21')]===_0xb4e6('0x20');var _0x2fbf12=_0x2b461d[_0xb4e6('0x22')];var _0x3a4859=_0x2a58c0?0x0:_0x30af29[_0xb4e6('0x23')];var _0x3d5a0b=_0x2a58c0?_0x2b461d[_0xb4e6('0x22')]:_0x30af29[_0xb4e6('0x23')]+_0x30af29[_0xb4e6('0x21')];var _0x223fbf;if(_0x3d5a0b>=_0x2fbf12){_0x3d5a0b=_0x2fbf12;_0x223fbf=0xc8;}else{_0x223fbf=0xce;}_0x87d268['status'](_0x223fbf);return _0x87d268[_0xb4e6('0x24')]('Content-Range',_0x3a4859+'-'+_0x3d5a0b+'/'+_0x2fbf12)[_0xb4e6('0x25')](_0x2b461d);}return null;};}function patchUpdates(_0x424f7d){return function(_0x44c3b4){try{jsonpatch[_0xb4e6('0x26')](_0x44c3b4,_0x424f7d,!![]);}catch(_0x5d0480){return BPromise['reject'](_0x5d0480);}return _0x44c3b4[_0xb4e6('0x27')]();};}function saveUpdates(_0x46a24b,_0x20edae){return function(_0x24ddd1){if(_0x24ddd1){return _0x24ddd1[_0xb4e6('0x28')](_0x46a24b)[_0xb4e6('0x29')](function(_0x30ae59){return _0x30ae59;});}return null;};}function removeEntity(_0x383889,_0x567181){return function(_0x6d98b4){if(_0x6d98b4){return _0x6d98b4['destroy']()[_0xb4e6('0x29')](function(){_0x383889[_0xb4e6('0x1e')](0xcc)[_0xb4e6('0x1f')]();});}};}function handleEntityNotFound(_0x1e10f9,_0x10be99){return function(_0x57f920){if(!_0x57f920){_0x1e10f9[_0xb4e6('0x1d')](0x194);}return _0x57f920;};}function handleError(_0x4c2686,_0x50f909){_0x50f909=_0x50f909||0x1f4;return function(_0x1dcfe3){logger[_0xb4e6('0x2a')](_0x1dcfe3[_0xb4e6('0x2b')]);if(_0x1dcfe3[_0xb4e6('0x2c')]){delete _0x1dcfe3['name'];}_0x4c2686[_0xb4e6('0x1e')](_0x50f909)[_0xb4e6('0x2d')](_0x1dcfe3);};}exports[_0xb4e6('0x2e')]=function(_0x7fb52d,_0x400cb9){var _0xb67e02={'raw':![],'where':{'id':_0x7fb52d['params']['id']}},_0x34e544={};_0x34e544[_0xb4e6('0x2f')]=_['keys'](db['DashboardItem'][_0xb4e6('0x30')]);_0x34e544[_0xb4e6('0x31')]=_[_0xb4e6('0x32')](_0x7fb52d[_0xb4e6('0x31')]);_0x34e544[_0xb4e6('0x33')]=_['intersection'](_0x34e544['model'],_0x34e544[_0xb4e6('0x31')]);_0xb67e02['attributes']=_['intersection'](_0x34e544[_0xb4e6('0x2f')],qs[_0xb4e6('0x34')](_0x7fb52d[_0xb4e6('0x31')]['fields']));_0xb67e02[_0xb4e6('0x35')]=_0xb67e02[_0xb4e6('0x35')][_0xb4e6('0x36')]?_0xb67e02[_0xb4e6('0x35')]:_0x34e544['model'];if(_0x7fb52d[_0xb4e6('0x31')]['includeAll']){_0xb67e02[_0xb4e6('0x37')]=[{'all':!![]}];}_0xb67e02=_[_0xb4e6('0x38')]({},_0xb67e02,_0x7fb52d[_0xb4e6('0x39')]);return db[_0xb4e6('0x3a')][_0xb4e6('0x3b')](_0xb67e02)[_0xb4e6('0x29')](handleEntityNotFound(_0x400cb9,null))['then'](respondWithResult(_0x400cb9,null))['catch'](handleError(_0x400cb9,null));};exports[_0xb4e6('0x3c')]=function(_0x547de2,_0x16dc05){return db[_0xb4e6('0x3a')][_0xb4e6('0x3b')]({'where':{'id':_0x547de2[_0xb4e6('0x3d')]['id']}})[_0xb4e6('0x29')](handleEntityNotFound(_0x16dc05,null))[_0xb4e6('0x29')](removeEntity(_0x16dc05,null))[_0xb4e6('0x3e')](handleError(_0x16dc05,null));};function widgetAttributes(_0x656755){try{switch(_0x656755[_0xb4e6('0x3f')]){case'iframe':return[{'name':_0xb4e6('0x40'),'value':_0x656755[_0xb4e6('0x40')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755['attrs'][0x0]['value']:undefined)||'https://'}];case'custom':return[{'name':_0xb4e6('0x42'),'value':_0x656755[_0xb4e6('0x42')]||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0]['value']:undefined)||''}];case _0xb4e6('0x43'):return[{'name':_0xb4e6('0x44'),'value':_0x656755['attrHourFormat']||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||_0xb4e6('0x46')},{'name':'attrTimezone','value':_0x656755['attrTimezone']||(_0x656755[_0xb4e6('0x41')]&&_0x656755['attrs'][0x1]?_0x656755[_0xb4e6('0x41')][0x1]['value']:undefined)||_0xb4e6('0x47')},{'name':_0xb4e6('0x48'),'value':_0x656755[_0xb4e6('0x48')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x2]?_0x656755[_0xb4e6('0x41')][0x2]['value']:undefined)||0xc}];case _0xb4e6('0x49'):return[{'name':_0xb4e6('0x4a'),'value':_0x656755[_0xb4e6('0x4a')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||_0xb4e6('0x4b')},{'name':_0xb4e6('0x4c'),'value':_0x656755['attrVoiceQueues']||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x1]?_0x656755[_0xb4e6('0x41')][0x1][_0xb4e6('0x45')]:undefined)||[]},{'name':'attrFontSize','value':_0x656755[_0xb4e6('0x48')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x2]?_0x656755['attrs'][0x2][_0xb4e6('0x45')]:undefined)||0x14}];case _0xb4e6('0x4d'):case _0xb4e6('0x4e'):return[{'name':_0xb4e6('0x4f'),'value':_0x656755[_0xb4e6('0x4f')]||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||_0xb4e6('0x4b')},{'name':_0xb4e6('0x50'),'value':_0x656755[_0xb4e6('0x50')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755['attrs'][0x1]?_0x656755[_0xb4e6('0x41')][0x1][_0xb4e6('0x45')]:undefined)||null},{'name':_0xb4e6('0x51'),'value':_0x656755[_0xb4e6('0x51')]||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x2]?_0x656755[_0xb4e6('0x41')][0x2]['value']:undefined)||null},{'name':_0xb4e6('0x4c'),'value':_0x656755[_0xb4e6('0x4c')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x3]?_0x656755[_0xb4e6('0x41')][0x3][_0xb4e6('0x45')]:undefined)||[]}];case _0xb4e6('0x52'):return[{'name':_0xb4e6('0x53'),'type':_0x656755[_0xb4e6('0x54')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0]['type']:undefined)||null,'value':_0x656755['attrReport']||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||null},{'name':_0xb4e6('0x55'),'value':_0x656755[_0xb4e6('0x55')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x1]?_0x656755[_0xb4e6('0x41')][0x1][_0xb4e6('0x45')]:undefined)||0x0}];default:return[];}}catch(_0x5c6a53){logger[_0xb4e6('0x2a')](_0xb4e6('0x56'),JSON[_0xb4e6('0x57')](_0x5c6a53));return[];}}exports[_0xb4e6('0x58')]=function(_0x86247a,_0x481b24){if(_0x86247a[_0xb4e6('0x59')]){_0x86247a[_0xb4e6('0x59')]['attrs']=widgetAttributes(_0x86247a['body']);}return db[_0xb4e6('0x3a')]['create'](_0x86247a[_0xb4e6('0x59')],{})[_0xb4e6('0x29')](respondWithResult(_0x481b24,0xc9))['catch'](handleError(_0x481b24,null));};exports[_0xb4e6('0x28')]=function(_0x33c6dc,_0x42e5ff){if(_0x33c6dc[_0xb4e6('0x59')]['id']){delete _0x33c6dc[_0xb4e6('0x59')]['id'];}_0x33c6dc['body'][_0xb4e6('0x41')]=widgetAttributes(_0x33c6dc[_0xb4e6('0x59')]);return db['DashboardItem'][_0xb4e6('0x3b')]({'where':{'id':_0x33c6dc[_0xb4e6('0x3d')]['id']}})[_0xb4e6('0x29')](handleEntityNotFound(_0x42e5ff,null))['then'](saveUpdates(_0x33c6dc[_0xb4e6('0x59')],null))[_0xb4e6('0x29')](respondWithResult(_0x42e5ff,null))[_0xb4e6('0x3e')](handleError(_0x42e5ff,null));};
\ No newline at end of file
+var _0x9406=['then','error','stack','name','send','show','model','keys','DashboardItem','rawAttributes','query','intersection','fields','attributes','length','includeAll','include','merge','options','find','catch','params','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','save','update'];(function(_0x6da648,_0x3f2c45){var _0x12819e=function(_0x56180f){while(--_0x56180f){_0x6da648['push'](_0x6da648['shift']());}};_0x12819e(++_0x3f2c45);}(_0x9406,0x14b));var _0x6940=function(_0x56dd7c,_0x3a82fd){_0x56dd7c=_0x56dd7c-0x0;var _0x475cdb=_0x9406[_0x56dd7c];return _0x475cdb;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6940('0x0'));var jsonpatch=require(_0x6940('0x1'));var rp=require('request-promise');var moment=require(_0x6940('0x2'));var BPromise=require(_0x6940('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x6940('0x4'));var sox=require(_0x6940('0x5'));var csv=require(_0x6940('0x6'));var ejs=require(_0x6940('0x7'));var fs=require('fs');var fs_extra=require(_0x6940('0x8'));var _=require(_0x6940('0x9'));var squel=require(_0x6940('0xa'));var crypto=require(_0x6940('0xb'));var jsforce=require(_0x6940('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x6940('0x6'));var querystring=require(_0x6940('0xd'));var Papa=require(_0x6940('0xe'));var Redis=require(_0x6940('0xf'));var authService=require(_0x6940('0x10'));var qs=require(_0x6940('0x11'));var as=require(_0x6940('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6940('0x13'))(_0x6940('0x14'));var utils=require(_0x6940('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x6940('0x16'));var db=require('../../mysqldb')['db'];config[_0x6940('0x17')]=_[_0x6940('0x18')](config[_0x6940('0x17')],{'host':_0x6940('0x19'),'port':0x18eb});var socket=require(_0x6940('0x1a'))(new Redis(config[_0x6940('0x17')]));require(_0x6940('0x1b'))[_0x6940('0x1c')](socket);function respondWithStatusCode(_0x38dd40,_0x4298bb){_0x4298bb=_0x4298bb||0xcc;return function(_0x3068a1){if(_0x3068a1){return _0x38dd40[_0x6940('0x1d')](_0x4298bb);}return _0x38dd40[_0x6940('0x1e')](_0x4298bb)[_0x6940('0x1f')]();};}function respondWithResult(_0x5e1f6b,_0x381776){_0x381776=_0x381776||0xc8;return function(_0x3cc4e0){if(_0x3cc4e0){return _0x5e1f6b['status'](_0x381776)['json'](_0x3cc4e0);}};}function respondWithFilteredResult(_0x5d8bb1,_0x306a4a){return function(_0x7e0eb7){if(_0x7e0eb7){var _0x3dbeaa=typeof _0x306a4a[_0x6940('0x20')]===_0x6940('0x21')&&typeof _0x306a4a[_0x6940('0x22')]===_0x6940('0x21');var _0x3c352e=_0x7e0eb7[_0x6940('0x23')];var _0x21be64=_0x3dbeaa?0x0:_0x306a4a['offset'];var _0x1ed5c6=_0x3dbeaa?_0x7e0eb7[_0x6940('0x23')]:_0x306a4a[_0x6940('0x20')]+_0x306a4a['limit'];var _0x276851;if(_0x1ed5c6>=_0x3c352e){_0x1ed5c6=_0x3c352e;_0x276851=0xc8;}else{_0x276851=0xce;}_0x5d8bb1[_0x6940('0x1e')](_0x276851);return _0x5d8bb1[_0x6940('0x24')]('Content-Range',_0x21be64+'-'+_0x1ed5c6+'/'+_0x3c352e)[_0x6940('0x25')](_0x7e0eb7);}return null;};}function patchUpdates(_0x5c3f2e){return function(_0x220575){try{jsonpatch[_0x6940('0x26')](_0x220575,_0x5c3f2e,!![]);}catch(_0x23f1c4){return BPromise['reject'](_0x23f1c4);}return _0x220575[_0x6940('0x27')]();};}function saveUpdates(_0x4fccae,_0x5bc0d3){return function(_0x2b08ed){if(_0x2b08ed){return _0x2b08ed[_0x6940('0x28')](_0x4fccae)[_0x6940('0x29')](function(_0x413845){return _0x413845;});}return null;};}function removeEntity(_0x4d21da,_0x2c56d1){return function(_0x2c25c6){if(_0x2c25c6){return _0x2c25c6['destroy']()[_0x6940('0x29')](function(){_0x4d21da['status'](0xcc)[_0x6940('0x1f')]();});}};}function handleEntityNotFound(_0x43d80a,_0x26bf88){return function(_0x1e6753){if(!_0x1e6753){_0x43d80a[_0x6940('0x1d')](0x194);}return _0x1e6753;};}function handleError(_0x128bf2,_0x33a4e0){_0x33a4e0=_0x33a4e0||0x1f4;return function(_0x2bac98){logger[_0x6940('0x2a')](_0x2bac98[_0x6940('0x2b')]);if(_0x2bac98[_0x6940('0x2c')]){delete _0x2bac98[_0x6940('0x2c')];}_0x128bf2['status'](_0x33a4e0)[_0x6940('0x2d')](_0x2bac98);};}exports[_0x6940('0x2e')]=function(_0x711f15,_0x34ea18){var _0x216c9a={'raw':![],'where':{'id':_0x711f15['params']['id']}},_0x27bfb4={};_0x27bfb4[_0x6940('0x2f')]=_[_0x6940('0x30')](db[_0x6940('0x31')][_0x6940('0x32')]);_0x27bfb4[_0x6940('0x33')]=_[_0x6940('0x30')](_0x711f15[_0x6940('0x33')]);_0x27bfb4['filters']=_[_0x6940('0x34')](_0x27bfb4['model'],_0x27bfb4['query']);_0x216c9a['attributes']=_[_0x6940('0x34')](_0x27bfb4[_0x6940('0x2f')],qs[_0x6940('0x35')](_0x711f15[_0x6940('0x33')][_0x6940('0x35')]));_0x216c9a[_0x6940('0x36')]=_0x216c9a['attributes'][_0x6940('0x37')]?_0x216c9a[_0x6940('0x36')]:_0x27bfb4[_0x6940('0x2f')];if(_0x711f15[_0x6940('0x33')][_0x6940('0x38')]){_0x216c9a[_0x6940('0x39')]=[{'all':!![]}];}_0x216c9a=_[_0x6940('0x3a')]({},_0x216c9a,_0x711f15[_0x6940('0x3b')]);return db[_0x6940('0x31')][_0x6940('0x3c')](_0x216c9a)[_0x6940('0x29')](handleEntityNotFound(_0x34ea18,null))['then'](respondWithResult(_0x34ea18,null))[_0x6940('0x3d')](handleError(_0x34ea18,null));};exports['destroy']=function(_0x7b5763,_0x2ead3f){return db[_0x6940('0x31')]['find']({'where':{'id':_0x7b5763[_0x6940('0x3e')]['id']}})[_0x6940('0x29')](handleEntityNotFound(_0x2ead3f,null))[_0x6940('0x29')](removeEntity(_0x2ead3f,null))['catch'](handleError(_0x2ead3f,null));};function widgetAttributes(_0x2b5bd8){try{switch(_0x2b5bd8[_0x6940('0x3f')]){case _0x6940('0x40'):return[{'name':_0x6940('0x41'),'value':_0x2b5bd8[_0x6940('0x41')]||(_0x2b5bd8['attrs']&&_0x2b5bd8[_0x6940('0x42')][0x0]?_0x2b5bd8[_0x6940('0x42')][0x0][_0x6940('0x43')]:undefined)||_0x6940('0x44')}];case _0x6940('0x45'):return[{'name':_0x6940('0x46'),'value':_0x2b5bd8[_0x6940('0x46')]||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8[_0x6940('0x42')][0x0]?_0x2b5bd8[_0x6940('0x42')][0x0]['value']:undefined)||''}];case _0x6940('0x47'):return[{'name':_0x6940('0x48'),'value':_0x2b5bd8[_0x6940('0x48')]||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8['attrs'][0x0]?_0x2b5bd8[_0x6940('0x42')][0x0]['value']:undefined)||'HH:mm:ss'},{'name':_0x6940('0x49'),'value':_0x2b5bd8[_0x6940('0x49')]||(_0x2b5bd8['attrs']&&_0x2b5bd8[_0x6940('0x42')][0x1]?_0x2b5bd8['attrs'][0x1][_0x6940('0x43')]:undefined)||_0x6940('0x4a')},{'name':_0x6940('0x4b'),'value':_0x2b5bd8[_0x6940('0x4b')]||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8['attrs'][0x2]?_0x2b5bd8[_0x6940('0x42')][0x2][_0x6940('0x43')]:undefined)||0xc}];case _0x6940('0x4c'):return[{'name':_0x6940('0x4d'),'value':_0x2b5bd8['attrMetric']||(_0x2b5bd8['attrs']&&_0x2b5bd8[_0x6940('0x42')][0x0]?_0x2b5bd8[_0x6940('0x42')][0x0]['value']:undefined)||_0x6940('0x4e')},{'name':_0x6940('0x4f'),'value':_0x2b5bd8['attrVoiceQueues']||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8['attrs'][0x1]?_0x2b5bd8[_0x6940('0x42')][0x1]['value']:undefined)||[]},{'name':'attrFontSize','value':_0x2b5bd8[_0x6940('0x4b')]||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8[_0x6940('0x42')][0x2]?_0x2b5bd8[_0x6940('0x42')][0x2][_0x6940('0x43')]:undefined)||0x14}];case _0x6940('0x50'):case _0x6940('0x51'):return[{'name':_0x6940('0x52'),'value':_0x2b5bd8[_0x6940('0x52')]||(_0x2b5bd8['attrs']&&_0x2b5bd8[_0x6940('0x42')][0x0]?_0x2b5bd8[_0x6940('0x42')][0x0]['value']:undefined)||'total'},{'name':_0x6940('0x53'),'value':_0x2b5bd8[_0x6940('0x53')]||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8[_0x6940('0x42')][0x1]?_0x2b5bd8[_0x6940('0x42')][0x1][_0x6940('0x43')]:undefined)||null},{'name':_0x6940('0x54'),'value':_0x2b5bd8['attrSerie3']||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8[_0x6940('0x42')][0x2]?_0x2b5bd8['attrs'][0x2]['value']:undefined)||null},{'name':_0x6940('0x4f'),'value':_0x2b5bd8[_0x6940('0x4f')]||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8[_0x6940('0x42')][0x3]?_0x2b5bd8['attrs'][0x3][_0x6940('0x43')]:undefined)||[]}];case _0x6940('0x55'):return[{'name':_0x6940('0x56'),'type':_0x2b5bd8[_0x6940('0x57')]||(_0x2b5bd8[_0x6940('0x42')]&&_0x2b5bd8[_0x6940('0x42')][0x0]?_0x2b5bd8[_0x6940('0x42')][0x0][_0x6940('0x3f')]:undefined)||null,'value':_0x2b5bd8['attrReport']||(_0x2b5bd8['attrs']&&_0x2b5bd8['attrs'][0x0]?_0x2b5bd8['attrs'][0x0][_0x6940('0x43')]:undefined)||null},{'name':_0x6940('0x58'),'value':_0x2b5bd8['attrRefresh']||(_0x2b5bd8['attrs']&&_0x2b5bd8[_0x6940('0x42')][0x1]?_0x2b5bd8[_0x6940('0x42')][0x1][_0x6940('0x43')]:undefined)||0x0}];default:return[];}}catch(_0x590853){logger['error'](_0x6940('0x59'),JSON[_0x6940('0x5a')](_0x590853));return[];}}exports['create']=function(_0x17b6b7,_0x4d59a2){if(_0x17b6b7['body']){_0x17b6b7['body']['attrs']=widgetAttributes(_0x17b6b7[_0x6940('0x5b')]);}return db[_0x6940('0x31')][_0x6940('0x5c')](_0x17b6b7[_0x6940('0x5b')],{})['then'](respondWithResult(_0x4d59a2,0xc9))[_0x6940('0x3d')](handleError(_0x4d59a2,null));};exports[_0x6940('0x28')]=function(_0x28113e,_0x21ac12){if(_0x28113e[_0x6940('0x5b')]['id']){delete _0x28113e[_0x6940('0x5b')]['id'];}_0x28113e['body'][_0x6940('0x42')]=widgetAttributes(_0x28113e[_0x6940('0x5b')]);return db['DashboardItem'][_0x6940('0x3c')]({'where':{'id':_0x28113e[_0x6940('0x3e')]['id']}})['then'](handleEntityNotFound(_0x21ac12,null))['then'](saveUpdates(_0x28113e[_0x6940('0x5b')],null))['then'](respondWithResult(_0x21ac12,null))[_0x6940('0x3d')](handleError(_0x21ac12,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7733=['exports','../../mysqldb','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x5e7014,_0x2c7864){var _0x2dc25a=function(_0x254fdb){while(--_0x254fdb){_0x5e7014['push'](_0x5e7014['shift']());}};_0x2dc25a(++_0x2c7864);}(_0x7733,0x1d9));var _0x3773=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0x7733[_0x1cc8fe];return _0x230054;};'use strict';var EventEmitter=require('events');var DashboardItem=require(_0x3773('0x0'))['db']['DashboardItem'];var DashboardItemEvents=new EventEmitter();DashboardItemEvents[_0x3773('0x1')](0x0);var events={'afterCreate':_0x3773('0x2'),'afterUpdate':_0x3773('0x3'),'afterDestroy':_0x3773('0x4')};function emitEvent(_0x1c6301){return function(_0x22000c,_0x915037,_0x287776){DashboardItemEvents[_0x3773('0x5')](_0x1c6301+':'+_0x22000c['id'],_0x22000c);DashboardItemEvents[_0x3773('0x5')](_0x1c6301,_0x22000c);_0x287776(null);};}for(var e in events){if(events[_0x3773('0x6')](e)){var event=events[e];DashboardItem['hook'](e,emitEvent(event));}}module[_0x3773('0x7')]=DashboardItemEvents;
\ No newline at end of file
+var _0x9d76=['../../mysqldb','DashboardItem','update','emit','hook','events'];(function(_0x5067db,_0xf8d2f2){var _0x2771e4=function(_0x3d5cb2){while(--_0x3d5cb2){_0x5067db['push'](_0x5067db['shift']());}};_0x2771e4(++_0xf8d2f2);}(_0x9d76,0x95));var _0x69d7=function(_0x1a9e08,_0x3fbbeb){_0x1a9e08=_0x1a9e08-0x0;var _0x12aa58=_0x9d76[_0x1a9e08];return _0x12aa58;};'use strict';var EventEmitter=require(_0x69d7('0x0'));var DashboardItem=require(_0x69d7('0x1'))['db'][_0x69d7('0x2')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x69d7('0x3'),'afterDestroy':'remove'};function emitEvent(_0x242c63){return function(_0x4763bc,_0x3ebc44,_0x1e7a66){DashboardItemEvents[_0x69d7('0x4')](_0x242c63+':'+_0x4763bc['id'],_0x4763bc);DashboardItemEvents['emit'](_0x242c63,_0x4763bc);_0x1e7a66(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];DashboardItem[_0x69d7('0x5')](e,emitEvent(event));}}module['exports']=DashboardItemEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5eb0=['util','../../config/logger','api','moment','request-promise','path','../../config/environment','./dashboardItem.attributes','exports','define','DashboardItem','dashboard_items','lodash'];(function(_0x182baf,_0x1375fb){var _0x4d10f1=function(_0x1e0dde){while(--_0x1e0dde){_0x182baf['push'](_0x182baf['shift']());}};_0x4d10f1(++_0x1375fb);}(_0x5eb0,0x1c6));var _0x05eb=function(_0x1d215f,_0x32f914){_0x1d215f=_0x1d215f-0x0;var _0x4498ef=_0x5eb0[_0x1d215f];return _0x4498ef;};'use strict';var _=require(_0x05eb('0x0'));var util=require(_0x05eb('0x1'));var logger=require(_0x05eb('0x2'))(_0x05eb('0x3'));var moment=require(_0x05eb('0x4'));var BPromise=require('bluebird');var rp=require(_0x05eb('0x5'));var fs=require('fs');var path=require(_0x05eb('0x6'));var rimraf=require('rimraf');var config=require(_0x05eb('0x7'));var attributes=require(_0x05eb('0x8'));module[_0x05eb('0x9')]=function(_0xcd64fb,_0x3ee1e9){return _0xcd64fb[_0x05eb('0xa')](_0x05eb('0xb'),attributes,{'tableName':_0x05eb('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeba1=['path','rimraf','../../config/environment','./dashboardItem.attributes','define','dashboard_items','lodash','util','moment','request-promise'];(function(_0x268483,_0x1f09fe){var _0xffcd2a=function(_0x4e39c7){while(--_0x4e39c7){_0x268483['push'](_0x268483['shift']());}};_0xffcd2a(++_0x1f09fe);}(_0xeba1,0x182));var _0x1eba=function(_0x45226b,_0x5cab97){_0x45226b=_0x45226b-0x0;var _0x38d5e2=_0xeba1[_0x45226b];return _0x38d5e2;};'use strict';var _=require(_0x1eba('0x0'));var util=require(_0x1eba('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x1eba('0x2'));var BPromise=require('bluebird');var rp=require(_0x1eba('0x3'));var fs=require('fs');var path=require(_0x1eba('0x4'));var rimraf=require(_0x1eba('0x5'));var config=require(_0x1eba('0x6'));var attributes=require(_0x1eba('0x7'));module['exports']=function(_0x1a071a,_0xe55f2c){return _0x1a071a[_0x1eba('0x8')]('DashboardItem',attributes,{'tableName':_0x1eba('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5498=['jayson/promise','client','http','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','request','info','DashboardItem,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x57173b,_0x270748){var _0x5927bd=function(_0x39ac8b){while(--_0x39ac8b){_0x57173b['push'](_0x57173b['shift']());}};_0x5927bd(++_0x270748);}(_0x5498,0x1d2));var _0x8549=function(_0x11a582,_0x4103ce){_0x11a582=_0x11a582-0x0;var _0x354f1b=_0x5498[_0x11a582];return _0x354f1b;};'use strict';var _=require(_0x8549('0x0'));var util=require('util');var moment=require(_0x8549('0x1'));var BPromise=require(_0x8549('0x2'));var rs=require(_0x8549('0x3'));var fs=require('fs');var Redis=require(_0x8549('0x4'));var db=require(_0x8549('0x5'))['db'];var utils=require(_0x8549('0x6'));var logger=require(_0x8549('0x7'))('rpc');var config=require(_0x8549('0x8'));var jayson=require(_0x8549('0x9'));var client=jayson[_0x8549('0xa')][_0x8549('0xb')]({'port':0x232a});config[_0x8549('0xc')]=_['defaults'](config[_0x8549('0xc')],{'host':_0x8549('0xd'),'port':0x18eb});var socket=require(_0x8549('0xe'))(new Redis(config['redis']));require(_0x8549('0xf'))[_0x8549('0x10')](socket);function respondWithRpcPromise(_0x1fe83f,_0x3be82a,_0x171aca){return new BPromise(function(_0x23bc27,_0x44ba1e){return client[_0x8549('0x11')](_0x1fe83f,_0x171aca)['then'](function(_0x868629){logger[_0x8549('0x12')](_0x8549('0x13'),_0x3be82a,_0x8549('0x14'));logger[_0x8549('0x15')]('DashboardItem,\x20%s,\x20%s,\x20%s',_0x3be82a,_0x8549('0x14'),JSON[_0x8549('0x16')](_0x868629));if(_0x868629[_0x8549('0x17')]){if(_0x868629[_0x8549('0x17')]['code']===0x1f4){logger[_0x8549('0x17')](_0x8549('0x13'),_0x3be82a,_0x868629[_0x8549('0x17')]['message']);return _0x44ba1e(_0x868629[_0x8549('0x17')][_0x8549('0x18')]);}logger[_0x8549('0x17')](_0x8549('0x13'),_0x3be82a,_0x868629['error'][_0x8549('0x18')]);return _0x23bc27(_0x868629[_0x8549('0x17')][_0x8549('0x18')]);}else{logger['info'](_0x8549('0x13'),_0x3be82a,'request\x20sent');_0x23bc27(_0x868629['result'][_0x8549('0x18')]);}})['catch'](function(_0x270341){logger['error'](_0x8549('0x13'),_0x3be82a,_0x270341);_0x44ba1e(_0x270341);});});}
\ No newline at end of file
+var _0x041f=['catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','register','request','then','DashboardItem,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','DashboardItem,\x20%s,\x20%s','message','info','result'];(function(_0x34b821,_0x504e55){var _0x5e00a0=function(_0x242892){while(--_0x242892){_0x34b821['push'](_0x34b821['shift']());}};_0x5e00a0(++_0x504e55);}(_0x041f,0x1dd));var _0xf041=function(_0x3e0f2b,_0x234ab3){_0x3e0f2b=_0x3e0f2b-0x0;var _0x2eb674=_0x041f[_0x3e0f2b];return _0x2eb674;};'use strict';var _=require(_0xf041('0x0'));var util=require(_0xf041('0x1'));var moment=require('moment');var BPromise=require(_0xf041('0x2'));var rs=require(_0xf041('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf041('0x4'))['db'];var utils=require(_0xf041('0x5'));var logger=require(_0xf041('0x6'))(_0xf041('0x7'));var config=require('../../config/environment');var jayson=require(_0xf041('0x8'));var client=jayson[_0xf041('0x9')][_0xf041('0xa')]({'port':0x232a});config['redis']=_[_0xf041('0xb')](config[_0xf041('0xc')],{'host':_0xf041('0xd'),'port':0x18eb});var socket=require(_0xf041('0xe'))(new Redis(config['redis']));require('./dashboardItem.socket')[_0xf041('0xf')](socket);function respondWithRpcPromise(_0x54065f,_0x51141b,_0x3c6285){return new BPromise(function(_0x148dcc,_0x4151d9){return client[_0xf041('0x10')](_0x54065f,_0x3c6285)[_0xf041('0x11')](function(_0xc708f4){logger['info']('DashboardItem,\x20%s,\x20%s',_0x51141b,'request\x20sent');logger['debug'](_0xf041('0x12'),_0x51141b,_0xf041('0x13'),JSON[_0xf041('0x14')](_0xc708f4));if(_0xc708f4[_0xf041('0x15')]){if(_0xc708f4[_0xf041('0x15')][_0xf041('0x16')]===0x1f4){logger['error'](_0xf041('0x17'),_0x51141b,_0xc708f4[_0xf041('0x15')][_0xf041('0x18')]);return _0x4151d9(_0xc708f4[_0xf041('0x15')][_0xf041('0x18')]);}logger[_0xf041('0x15')]('DashboardItem,\x20%s,\x20%s',_0x51141b,_0xc708f4[_0xf041('0x15')]['message']);return _0x148dcc(_0xc708f4[_0xf041('0x15')][_0xf041('0x18')]);}else{logger[_0xf041('0x19')]('DashboardItem,\x20%s,\x20%s',_0x51141b,_0xf041('0x13'));_0x148dcc(_0xc708f4[_0xf041('0x1a')][_0xf041('0x18')]);}})[_0xf041('0x1b')](function(_0x3a837b){logger[_0xf041('0x15')](_0xf041('0x17'),_0x51141b,_0x3a837b);_0x4151d9(_0x3a837b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ce8=['register','dashboardItem:','./dashboardItem.events','save','remove','update','emit'];(function(_0x895a50,_0x5216fd){var _0x396026=function(_0x440361){while(--_0x440361){_0x895a50['push'](_0x895a50['shift']());}};_0x396026(++_0x5216fd);}(_0x2ce8,0x1d7));var _0x82ce=function(_0x46adcd,_0x15c37b){_0x46adcd=_0x46adcd-0x0;var _0x2f9454=_0x2ce8[_0x46adcd];return _0x2f9454;};'use strict';var DashboardItemEvents=require(_0x82ce('0x0'));var events=[_0x82ce('0x1'),_0x82ce('0x2'),_0x82ce('0x3')];function createListener(_0x8afcc3,_0x1aa659){return function(_0xd9f4c6){_0x1aa659[_0x82ce('0x4')](_0x8afcc3,_0xd9f4c6);};}function removeListener(_0x470b8a,_0x143459){return function(){DashboardItemEvents['removeListener'](_0x470b8a,_0x143459);};}exports[_0x82ce('0x5')]=function(_0x2a46d6){for(var _0x2a81da=0x0,_0x3063a4=events['length'];_0x2a81da<_0x3063a4;_0x2a81da++){var _0x543e7b=events[_0x2a81da];var _0x5e43f8=createListener(_0x82ce('0x6')+_0x543e7b,_0x2a46d6);DashboardItemEvents['on'](_0x543e7b,_0x5e43f8);}};
\ No newline at end of file
+var _0x6d67=['length','dashboardItem:','./dashboardItem.events','save','remove','update','removeListener','register'];(function(_0x9d527c,_0x18a99e){var _0x12af1e=function(_0x4ed025){while(--_0x4ed025){_0x9d527c['push'](_0x9d527c['shift']());}};_0x12af1e(++_0x18a99e);}(_0x6d67,0xe2));var _0x76d6=function(_0x40289b,_0x4b64cb){_0x40289b=_0x40289b-0x0;var _0x1935a0=_0x6d67[_0x40289b];return _0x1935a0;};'use strict';var DashboardItemEvents=require(_0x76d6('0x0'));var events=[_0x76d6('0x1'),_0x76d6('0x2'),_0x76d6('0x3')];function createListener(_0x5b5bfb,_0xbe0a0a){return function(_0x9892c0){_0xbe0a0a['emit'](_0x5b5bfb,_0x9892c0);};}function removeListener(_0x21f282,_0x1e0790){return function(){DashboardItemEvents[_0x76d6('0x4')](_0x21f282,_0x1e0790);};}exports[_0x76d6('0x5')]=function(_0xeb6328){for(var _0x3ef8b=0x0,_0x17b0ab=events[_0x76d6('0x6')];_0x3ef8b<_0x17b0ab;_0x3ef8b++){var _0x46b15a=events[_0x3ef8b];var _0x5b710a=createListener(_0x76d6('0x7')+_0x46b15a,_0xeb6328);DashboardItemEvents['on'](_0x46b15a,_0x5b710a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bf7=['delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../config/environment','./dashboardItem.controller','/:id','isAuthenticated','show','post','create','put'];(function(_0x160248,_0x2a57e6){var _0x4e589d=function(_0x1ba722){while(--_0x1ba722){_0x160248['push'](_0x160248['shift']());}};_0x4e589d(++_0x2a57e6);}(_0x7bf7,0x9c));var _0x77bf=function(_0x5326f4,_0x304215){_0x5326f4=_0x5326f4-0x0;var _0x25b800=_0x7bf7[_0x5326f4];return _0x25b800;};'use strict';var multer=require(_0x77bf('0x0'));var util=require(_0x77bf('0x1'));var path=require(_0x77bf('0x2'));var timeout=require('connect-timeout');var express=require(_0x77bf('0x3'));var router=express[_0x77bf('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x77bf('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x77bf('0x6'));var controller=require(_0x77bf('0x7'));router['get'](_0x77bf('0x8'),auth[_0x77bf('0x9')](),controller[_0x77bf('0xa')]);router[_0x77bf('0xb')]('/',auth[_0x77bf('0x9')](),controller[_0x77bf('0xc')]);router[_0x77bf('0xd')](_0x77bf('0x8'),auth[_0x77bf('0x9')](),controller['update']);router[_0x77bf('0xe')](_0x77bf('0x8'),auth[_0x77bf('0x9')](),controller[_0x77bf('0xf')]);module[_0x77bf('0x10')]=router;
\ No newline at end of file
+var _0xaeae=['../../components/interaction/service','./dashboardItem.controller','get','/:id','isAuthenticated','show','create','put','update','delete','exports','multer','util','path','express','../../components/auth/service'];(function(_0x4e324f,_0x4f0cfc){var _0x4e6076=function(_0x4b8227){while(--_0x4b8227){_0x4e324f['push'](_0x4e324f['shift']());}};_0x4e6076(++_0x4f0cfc);}(_0xaeae,0x1bb));var _0xeaea=function(_0x36db3f,_0x5e7b52){_0x36db3f=_0x36db3f-0x0;var _0x1421ac=_0xaeae[_0x36db3f];return _0x1421ac;};'use strict';var multer=require(_0xeaea('0x0'));var util=require(_0xeaea('0x1'));var path=require(_0xeaea('0x2'));var timeout=require('connect-timeout');var express=require(_0xeaea('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xeaea('0x4'));var interaction=require(_0xeaea('0x5'));var config=require('../../config/environment');var controller=require(_0xeaea('0x6'));router[_0xeaea('0x7')](_0xeaea('0x8'),auth[_0xeaea('0x9')](),controller[_0xeaea('0xa')]);router['post']('/',auth[_0xeaea('0x9')](),controller[_0xeaea('0xb')]);router[_0xeaea('0xc')]('/:id',auth[_0xeaea('0x9')](),controller[_0xeaea('0xd')]);router[_0xeaea('0xe')](_0xeaea('0x8'),auth[_0xeaea('0x9')](),controller['destroy']);module[_0xeaea('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb863=['exports','STRING','first','second','third','sequelize'];(function(_0x27caa0,_0x1b7824){var _0x4b9490=function(_0x2c91b1){while(--_0x2c91b1){_0x27caa0['push'](_0x27caa0['shift']());}};_0x4b9490(++_0x1b7824);}(_0xb863,0xd7));var _0x3b86=function(_0x51020b,_0x38c2c7){_0x51020b=_0x51020b-0x0;var _0x371e47=_0xb863[_0x51020b];return _0x371e47;};'use strict';var Sequelize=require(_0x3b86('0x0'));module[_0x3b86('0x1')]={'name':{'type':Sequelize[_0x3b86('0x2')],'allowNull':![]},'level':{'type':Sequelize['ENUM'](_0x3b86('0x3'),_0x3b86('0x4'),_0x3b86('0x5')),'allowNull':![],'defaultValue':_0x3b86('0x3')},'description':{'type':Sequelize[_0x3b86('0x2')]}};
\ No newline at end of file
+var _0x386a=['first','second','third','exports','STRING','ENUM'];(function(_0x42d35d,_0x33e6fc){var _0x445dbc=function(_0x45fb03){while(--_0x45fb03){_0x42d35d['push'](_0x42d35d['shift']());}};_0x445dbc(++_0x33e6fc);}(_0x386a,0xdb));var _0xa386=function(_0x348945,_0xf3789a){_0x348945=_0x348945-0x0;var _0x9255dd=_0x386a[_0x348945];return _0x9255dd;};'use strict';var Sequelize=require('sequelize');module[_0xa386('0x0')]={'name':{'type':Sequelize[_0xa386('0x1')],'allowNull':![]},'level':{'type':Sequelize[_0xa386('0x2')](_0xa386('0x3'),_0xa386('0x4'),_0xa386('0x5')),'allowNull':![],'defaultValue':_0xa386('0x3')},'description':{'type':Sequelize[_0xa386('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7553=['nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','rows','catch','show','params','keys','include','find','create','body','role','user','Dispositions','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','sendStatus','stack','name','send','map','Disposition','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty'];(function(_0x448f8,_0x2aa1d7){var _0xa73126=function(_0x1fcafa){while(--_0x1fcafa){_0x448f8['push'](_0x448f8['shift']());}};_0xa73126(++_0x2aa1d7);}(_0x7553,0x1c3));var _0x3755=function(_0x2b3b3a,_0x3226e0){_0x2b3b3a=_0x2b3b3a-0x0;var _0x4b1b2c=_0x7553[_0x2b3b3a];return _0x4b1b2c;};'use strict';var emlformat=require(_0x3755('0x0'));var rimraf=require(_0x3755('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3755('0x2'));var rp=require(_0x3755('0x3'));var moment=require(_0x3755('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3755('0x5'));var util=require(_0x3755('0x6'));var path=require(_0x3755('0x7'));var sox=require(_0x3755('0x8'));var csv=require(_0x3755('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3755('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x3755('0xb'));var jsforce=require(_0x3755('0xc'));var deskjs=require(_0x3755('0xd'));var toCsv=require(_0x3755('0x9'));var querystring=require(_0x3755('0xe'));var Papa=require(_0x3755('0xf'));var Redis=require('ioredis');var authService=require(_0x3755('0x10'));var qs=require(_0x3755('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x3755('0x12'))(_0x3755('0x13'));var utils=require(_0x3755('0x14'));var config=require(_0x3755('0x15'));var licenseUtil=require(_0x3755('0x16'));var db=require(_0x3755('0x17'))['db'];function respondWithStatusCode(_0x2e0005,_0x3e69ff){_0x3e69ff=_0x3e69ff||0xcc;return function(_0x39cde9){if(_0x39cde9){return _0x2e0005['sendStatus'](_0x3e69ff);}return _0x2e0005[_0x3755('0x18')](_0x3e69ff)[_0x3755('0x19')]();};}function respondWithResult(_0x126684,_0xd297e4){_0xd297e4=_0xd297e4||0xc8;return function(_0xa40ac6){if(_0xa40ac6){return _0x126684[_0x3755('0x18')](_0xd297e4)[_0x3755('0x1a')](_0xa40ac6);}};}function respondWithFilteredResult(_0x5d5434,_0x22d117){return function(_0x3af2c8){if(_0x3af2c8){var _0x345d42=typeof _0x22d117[_0x3755('0x1b')]===_0x3755('0x1c')&&typeof _0x22d117[_0x3755('0x1d')]===_0x3755('0x1c');var _0x59f87c=_0x3af2c8[_0x3755('0x1e')];var _0x515d23=_0x345d42?0x0:_0x22d117[_0x3755('0x1b')];var _0x2fa887=_0x345d42?_0x3af2c8[_0x3755('0x1e')]:_0x22d117[_0x3755('0x1b')]+_0x22d117[_0x3755('0x1d')];var _0x27a01b;if(_0x2fa887>=_0x59f87c){_0x2fa887=_0x59f87c;_0x27a01b=0xc8;}else{_0x27a01b=0xce;}_0x5d5434[_0x3755('0x18')](_0x27a01b);return _0x5d5434[_0x3755('0x1f')](_0x3755('0x20'),_0x515d23+'-'+_0x2fa887+'/'+_0x59f87c)['json'](_0x3af2c8);}return null;};}function patchUpdates(_0x4cfcc0){return function(_0x303083){try{jsonpatch[_0x3755('0x21')](_0x303083,_0x4cfcc0,!![]);}catch(_0x5d1dbf){return BPromise[_0x3755('0x22')](_0x5d1dbf);}return _0x303083[_0x3755('0x23')]();};}function saveUpdates(_0x122f6f,_0x579bb7){return function(_0x200447){if(_0x200447){return _0x200447[_0x3755('0x24')](_0x122f6f)[_0x3755('0x25')](function(_0x7f247c){return _0x7f247c;});}return null;};}function removeEntity(_0x37f6cc,_0x1f9422){return function(_0xd9d87c){if(_0xd9d87c){return _0xd9d87c[_0x3755('0x26')]()[_0x3755('0x25')](function(){var _0x1d7b64=_0xd9d87c[_0x3755('0x27')]({'plain':!![]});var _0x4db043='Dispositions';return db[_0x3755('0x28')]['destroy']({'where':{'type':_0x4db043,'resourceId':_0x1d7b64['id']}})[_0x3755('0x25')](function(){return _0xd9d87c;});})[_0x3755('0x25')](function(){_0x37f6cc['status'](0xcc)[_0x3755('0x19')]();});}};}function handleEntityNotFound(_0x579236,_0x269dea){return function(_0xcd003c){if(!_0xcd003c){_0x579236[_0x3755('0x29')](0x194);}return _0xcd003c;};}function handleError(_0x4dd8a5,_0x55b284){_0x55b284=_0x55b284||0x1f4;return function(_0x2bd847){logger['error'](_0x2bd847[_0x3755('0x2a')]);if(_0x2bd847['name']){delete _0x2bd847[_0x3755('0x2b')];}_0x4dd8a5[_0x3755('0x18')](_0x55b284)[_0x3755('0x2c')](_0x2bd847);};}exports['index']=function(_0x274f3e,_0x6fa9c7){var _0x19695c={},_0x167252={},_0x1be5de={'count':0x0,'rows':[]};var _0x5577fb=_[_0x3755('0x2d')](db[_0x3755('0x2e')][_0x3755('0x2f')],function(_0x3e25c1){return{'name':_0x3e25c1[_0x3755('0x30')],'type':_0x3e25c1[_0x3755('0x31')][_0x3755('0x32')]};});_0x167252['model']=_[_0x3755('0x2d')](_0x5577fb,_0x3755('0x2b'));_0x167252[_0x3755('0x33')]=_['keys'](_0x274f3e['query']);_0x167252[_0x3755('0x34')]=_[_0x3755('0x35')](_0x167252[_0x3755('0x36')],_0x167252['query']);_0x19695c[_0x3755('0x37')]=_[_0x3755('0x35')](_0x167252['model'],qs[_0x3755('0x38')](_0x274f3e[_0x3755('0x33')]['fields']));_0x19695c['attributes']=_0x19695c[_0x3755('0x37')][_0x3755('0x39')]?_0x19695c['attributes']:_0x167252['model'];if(!_0x274f3e[_0x3755('0x33')][_0x3755('0x3a')](_0x3755('0x3b'))){_0x19695c[_0x3755('0x1d')]=qs[_0x3755('0x1d')](_0x274f3e[_0x3755('0x33')][_0x3755('0x1d')]);_0x19695c['offset']=qs[_0x3755('0x1b')](_0x274f3e['query'][_0x3755('0x1b')]);}_0x19695c['order']=qs[_0x3755('0x3c')](_0x274f3e[_0x3755('0x33')][_0x3755('0x3c')]);_0x19695c[_0x3755('0x3d')]=qs[_0x3755('0x34')](_[_0x3755('0x3e')](_0x274f3e['query'],_0x167252[_0x3755('0x34')]),_0x5577fb);if(_0x274f3e[_0x3755('0x33')]['filter']){_0x19695c[_0x3755('0x3d')]=_[_0x3755('0x3f')](_0x19695c['where'],{'$or':_[_0x3755('0x2d')](_0x5577fb,function(_0x34f243){if(_0x34f243[_0x3755('0x31')]!==_0x3755('0x40')){var _0x1df617={};_0x1df617[_0x34f243[_0x3755('0x2b')]]={'$like':'%'+_0x274f3e[_0x3755('0x33')][_0x3755('0x41')]+'%'};return _0x1df617;}})});}_0x19695c=_[_0x3755('0x3f')]({},_0x19695c,_0x274f3e[_0x3755('0x42')]);var _0x266aae={'where':_0x19695c[_0x3755('0x3d')]};return db['Disposition'][_0x3755('0x1e')](_0x266aae)[_0x3755('0x25')](function(_0x274de2){_0x1be5de[_0x3755('0x1e')]=_0x274de2;if(_0x274f3e['query'][_0x3755('0x43')]){_0x19695c['include']=[{'all':!![]}];}return db[_0x3755('0x2e')]['findAll'](_0x19695c);})[_0x3755('0x25')](function(_0x1a9eec){_0x1be5de[_0x3755('0x44')]=_0x1a9eec;return _0x1be5de;})[_0x3755('0x25')](respondWithFilteredResult(_0x6fa9c7,_0x19695c))[_0x3755('0x45')](handleError(_0x6fa9c7,null));};exports[_0x3755('0x46')]=function(_0x4a6f05,_0x3028ad){var _0x3585b3={'raw':!![],'where':{'id':_0x4a6f05[_0x3755('0x47')]['id']}},_0x25e294={};_0x25e294[_0x3755('0x36')]=_['keys'](db['Disposition'][_0x3755('0x2f')]);_0x25e294[_0x3755('0x33')]=_[_0x3755('0x48')](_0x4a6f05['query']);_0x25e294[_0x3755('0x34')]=_[_0x3755('0x35')](_0x25e294[_0x3755('0x36')],_0x25e294[_0x3755('0x33')]);_0x3585b3['attributes']=_[_0x3755('0x35')](_0x25e294[_0x3755('0x36')],qs['fields'](_0x4a6f05[_0x3755('0x33')][_0x3755('0x38')]));_0x3585b3['attributes']=_0x3585b3[_0x3755('0x37')]['length']?_0x3585b3[_0x3755('0x37')]:_0x25e294[_0x3755('0x36')];if(_0x4a6f05[_0x3755('0x33')]['includeAll']){_0x3585b3[_0x3755('0x49')]=[{'all':!![]}];}_0x3585b3=_['merge']({},_0x3585b3,_0x4a6f05[_0x3755('0x42')]);return db[_0x3755('0x2e')][_0x3755('0x4a')](_0x3585b3)[_0x3755('0x25')](handleEntityNotFound(_0x3028ad,null))[_0x3755('0x25')](respondWithResult(_0x3028ad,null))['catch'](handleError(_0x3028ad,null));};exports[_0x3755('0x4b')]=function(_0x5ebee4,_0x4f4378){return db['Disposition'][_0x3755('0x4b')](_0x5ebee4[_0x3755('0x4c')],{})['then'](function(_0x19bf46){var _0x509788=_0x5ebee4['user'][_0x3755('0x27')]({'plain':!![]});if(!_0x509788)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x509788[_0x3755('0x4d')]===_0x3755('0x4e')){var _0x19edc0=_0x19bf46[_0x3755('0x27')]({'plain':!![]});var _0x53ee84=_0x3755('0x4f');return db[_0x3755('0x50')]['find']({'where':{'name':_0x53ee84,'userProfileId':_0x509788[_0x3755('0x51')]},'raw':!![]})['then'](function(_0x20934e){if(_0x20934e&&_0x20934e[_0x3755('0x52')]===0x0){return db[_0x3755('0x28')][_0x3755('0x4b')]({'name':_0x19edc0[_0x3755('0x2b')],'resourceId':_0x19edc0['id'],'type':_0x20934e[_0x3755('0x2b')],'sectionId':_0x20934e['id']},{})[_0x3755('0x25')](function(){return _0x19bf46;});}else{return _0x19bf46;}})[_0x3755('0x45')](function(_0x8ef676){logger[_0x3755('0x53')](_0x3755('0x54'),_0x8ef676);throw _0x8ef676;});}return _0x19bf46;})[_0x3755('0x25')](respondWithResult(_0x4f4378,0xc9))[_0x3755('0x45')](handleError(_0x4f4378,null));};exports['update']=function(_0x1db651,_0x216c76){if(_0x1db651[_0x3755('0x4c')]['id']){delete _0x1db651[_0x3755('0x4c')]['id'];}return db[_0x3755('0x2e')]['find']({'where':{'id':_0x1db651[_0x3755('0x47')]['id']}})[_0x3755('0x25')](handleEntityNotFound(_0x216c76,null))['then'](saveUpdates(_0x1db651[_0x3755('0x4c')],null))[_0x3755('0x25')](respondWithResult(_0x216c76,null))['catch'](handleError(_0x216c76,null));};exports[_0x3755('0x26')]=function(_0x37ecd6,_0x259d91){return db[_0x3755('0x2e')][_0x3755('0x4a')]({'where':{'id':_0x37ecd6[_0x3755('0x47')]['id']}})[_0x3755('0x25')](handleEntityNotFound(_0x259d91,null))[_0x3755('0x25')](removeEntity(_0x259d91,null))[_0x3755('0x45')](handleError(_0x259d91,null));};
\ No newline at end of file
+var _0xdc9e=['Dispositions','sendStatus','error','stack','name','map','Disposition','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','rows','show','include','find','catch','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','userProfileId','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','rimraf','zip-dir','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','status','end','json','offset','undefined','count','limit','apply','reject','update','then','destroy'];(function(_0x114064,_0x4041b7){var _0x1fe3b7=function(_0x26b6a1){while(--_0x26b6a1){_0x114064['push'](_0x114064['shift']());}};_0x1fe3b7(++_0x4041b7);}(_0xdc9e,0x76));var _0xedc9=function(_0x4b512c,_0x593aaf){_0x4b512c=_0x4b512c-0x0;var _0x5b1f79=_0xdc9e[_0x4b512c];return _0x5b1f79;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xedc9('0x0'));var zipdir=require(_0xedc9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xedc9('0x2'));var BPromise=require(_0xedc9('0x3'));var Mustache=require(_0xedc9('0x4'));var util=require('util');var path=require('path');var sox=require(_0xedc9('0x5'));var csv=require(_0xedc9('0x6'));var ejs=require(_0xedc9('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xedc9('0x8'));var squel=require(_0xedc9('0x9'));var crypto=require(_0xedc9('0xa'));var jsforce=require(_0xedc9('0xb'));var deskjs=require(_0xedc9('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xedc9('0xd'));var Redis=require(_0xedc9('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xedc9('0xf'));var logger=require(_0xedc9('0x10'))(_0xedc9('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5447c6,_0x5c4002){_0x5c4002=_0x5c4002||0xcc;return function(_0x3d1e11){if(_0x3d1e11){return _0x5447c6['sendStatus'](_0x5c4002);}return _0x5447c6[_0xedc9('0x12')](_0x5c4002)[_0xedc9('0x13')]();};}function respondWithResult(_0x197659,_0x58c271){_0x58c271=_0x58c271||0xc8;return function(_0x23d94a){if(_0x23d94a){return _0x197659['status'](_0x58c271)[_0xedc9('0x14')](_0x23d94a);}};}function respondWithFilteredResult(_0x2063aa,_0x21b876){return function(_0x238665){if(_0x238665){var _0x201317=typeof _0x21b876[_0xedc9('0x15')]===_0xedc9('0x16')&&typeof _0x21b876['limit']===_0xedc9('0x16');var _0x579de1=_0x238665[_0xedc9('0x17')];var _0x4a5011=_0x201317?0x0:_0x21b876[_0xedc9('0x15')];var _0x2135ce=_0x201317?_0x238665[_0xedc9('0x17')]:_0x21b876[_0xedc9('0x15')]+_0x21b876[_0xedc9('0x18')];var _0x116315;if(_0x2135ce>=_0x579de1){_0x2135ce=_0x579de1;_0x116315=0xc8;}else{_0x116315=0xce;}_0x2063aa[_0xedc9('0x12')](_0x116315);return _0x2063aa['set']('Content-Range',_0x4a5011+'-'+_0x2135ce+'/'+_0x579de1)[_0xedc9('0x14')](_0x238665);}return null;};}function patchUpdates(_0x5eab5f){return function(_0x475860){try{jsonpatch[_0xedc9('0x19')](_0x475860,_0x5eab5f,!![]);}catch(_0x22f2fe){return BPromise[_0xedc9('0x1a')](_0x22f2fe);}return _0x475860['save']();};}function saveUpdates(_0x5cecce,_0x52babf){return function(_0x5502aa){if(_0x5502aa){return _0x5502aa[_0xedc9('0x1b')](_0x5cecce)[_0xedc9('0x1c')](function(_0x5d7485){return _0x5d7485;});}return null;};}function removeEntity(_0x3c2e96,_0x2b53b9){return function(_0x534176){if(_0x534176){return _0x534176[_0xedc9('0x1d')]()[_0xedc9('0x1c')](function(){var _0x3fa329=_0x534176['get']({'plain':!![]});var _0xf2c370=_0xedc9('0x1e');return db['UserProfileResource'][_0xedc9('0x1d')]({'where':{'type':_0xf2c370,'resourceId':_0x3fa329['id']}})[_0xedc9('0x1c')](function(){return _0x534176;});})[_0xedc9('0x1c')](function(){_0x3c2e96[_0xedc9('0x12')](0xcc)[_0xedc9('0x13')]();});}};}function handleEntityNotFound(_0x27ed9d,_0x3094ca){return function(_0x543e01){if(!_0x543e01){_0x27ed9d[_0xedc9('0x1f')](0x194);}return _0x543e01;};}function handleError(_0x3eb2a5,_0xf8648d){_0xf8648d=_0xf8648d||0x1f4;return function(_0xf04948){logger[_0xedc9('0x20')](_0xf04948[_0xedc9('0x21')]);if(_0xf04948[_0xedc9('0x22')]){delete _0xf04948[_0xedc9('0x22')];}_0x3eb2a5['status'](_0xf8648d)['send'](_0xf04948);};}exports['index']=function(_0x15633f,_0x5916d7){var _0x11ee21={},_0x31a4e2={},_0x963053={'count':0x0,'rows':[]};var _0x142916=_[_0xedc9('0x23')](db[_0xedc9('0x24')][_0xedc9('0x25')],function(_0x280d4c){return{'name':_0x280d4c[_0xedc9('0x26')],'type':_0x280d4c[_0xedc9('0x27')][_0xedc9('0x28')]};});_0x31a4e2[_0xedc9('0x29')]=_[_0xedc9('0x23')](_0x142916,_0xedc9('0x22'));_0x31a4e2[_0xedc9('0x2a')]=_[_0xedc9('0x2b')](_0x15633f[_0xedc9('0x2a')]);_0x31a4e2[_0xedc9('0x2c')]=_[_0xedc9('0x2d')](_0x31a4e2['model'],_0x31a4e2[_0xedc9('0x2a')]);_0x11ee21[_0xedc9('0x2e')]=_[_0xedc9('0x2d')](_0x31a4e2[_0xedc9('0x29')],qs[_0xedc9('0x2f')](_0x15633f['query'][_0xedc9('0x2f')]));_0x11ee21[_0xedc9('0x2e')]=_0x11ee21['attributes'][_0xedc9('0x30')]?_0x11ee21[_0xedc9('0x2e')]:_0x31a4e2['model'];if(!_0x15633f[_0xedc9('0x2a')][_0xedc9('0x31')](_0xedc9('0x32'))){_0x11ee21['limit']=qs[_0xedc9('0x18')](_0x15633f[_0xedc9('0x2a')][_0xedc9('0x18')]);_0x11ee21['offset']=qs['offset'](_0x15633f[_0xedc9('0x2a')][_0xedc9('0x15')]);}_0x11ee21[_0xedc9('0x33')]=qs[_0xedc9('0x34')](_0x15633f['query'][_0xedc9('0x34')]);_0x11ee21[_0xedc9('0x35')]=qs['filters'](_[_0xedc9('0x36')](_0x15633f[_0xedc9('0x2a')],_0x31a4e2['filters']),_0x142916);if(_0x15633f['query'][_0xedc9('0x37')]){_0x11ee21[_0xedc9('0x35')]=_[_0xedc9('0x38')](_0x11ee21[_0xedc9('0x35')],{'$or':_[_0xedc9('0x23')](_0x142916,function(_0x4c37cb){if(_0x4c37cb[_0xedc9('0x27')]!==_0xedc9('0x39')){var _0x13bb41={};_0x13bb41[_0x4c37cb['name']]={'$like':'%'+_0x15633f['query'][_0xedc9('0x37')]+'%'};return _0x13bb41;}})});}_0x11ee21=_['merge']({},_0x11ee21,_0x15633f[_0xedc9('0x3a')]);var _0x5a8cbb={'where':_0x11ee21[_0xedc9('0x35')]};return db[_0xedc9('0x24')]['count'](_0x5a8cbb)[_0xedc9('0x1c')](function(_0x4f2038){_0x963053[_0xedc9('0x17')]=_0x4f2038;if(_0x15633f[_0xedc9('0x2a')][_0xedc9('0x3b')]){_0x11ee21['include']=[{'all':!![]}];}return db['Disposition']['findAll'](_0x11ee21);})[_0xedc9('0x1c')](function(_0x57e7f9){_0x963053[_0xedc9('0x3c')]=_0x57e7f9;return _0x963053;})[_0xedc9('0x1c')](respondWithFilteredResult(_0x5916d7,_0x11ee21))['catch'](handleError(_0x5916d7,null));};exports[_0xedc9('0x3d')]=function(_0x41222e,_0x628bf9){var _0x425d5e={'raw':!![],'where':{'id':_0x41222e['params']['id']}},_0x341cb0={};_0x341cb0[_0xedc9('0x29')]=_['keys'](db['Disposition'][_0xedc9('0x25')]);_0x341cb0[_0xedc9('0x2a')]=_[_0xedc9('0x2b')](_0x41222e[_0xedc9('0x2a')]);_0x341cb0[_0xedc9('0x2c')]=_['intersection'](_0x341cb0[_0xedc9('0x29')],_0x341cb0[_0xedc9('0x2a')]);_0x425d5e['attributes']=_[_0xedc9('0x2d')](_0x341cb0[_0xedc9('0x29')],qs[_0xedc9('0x2f')](_0x41222e[_0xedc9('0x2a')][_0xedc9('0x2f')]));_0x425d5e['attributes']=_0x425d5e[_0xedc9('0x2e')][_0xedc9('0x30')]?_0x425d5e['attributes']:_0x341cb0[_0xedc9('0x29')];if(_0x41222e[_0xedc9('0x2a')][_0xedc9('0x3b')]){_0x425d5e[_0xedc9('0x3e')]=[{'all':!![]}];}_0x425d5e=_[_0xedc9('0x38')]({},_0x425d5e,_0x41222e[_0xedc9('0x3a')]);return db[_0xedc9('0x24')][_0xedc9('0x3f')](_0x425d5e)[_0xedc9('0x1c')](handleEntityNotFound(_0x628bf9,null))[_0xedc9('0x1c')](respondWithResult(_0x628bf9,null))[_0xedc9('0x40')](handleError(_0x628bf9,null));};exports['create']=function(_0x5b3db2,_0x4856e1){return db[_0xedc9('0x24')]['create'](_0x5b3db2[_0xedc9('0x41')],{})[_0xedc9('0x1c')](function(_0x450caa){var _0x9deaa=_0x5b3db2['user']['get']({'plain':!![]});if(!_0x9deaa)throw new Error(_0xedc9('0x42'));if(_0x9deaa['role']==='user'){var _0x43b475=_0x450caa[_0xedc9('0x43')]({'plain':!![]});var _0x35af1a=_0xedc9('0x1e');return db['UserProfileSection']['find']({'where':{'name':_0x35af1a,'userProfileId':_0x9deaa[_0xedc9('0x44')]},'raw':!![]})['then'](function(_0x375dd4){if(_0x375dd4&&_0x375dd4[_0xedc9('0x45')]===0x0){return db[_0xedc9('0x46')][_0xedc9('0x47')]({'name':_0x43b475[_0xedc9('0x22')],'resourceId':_0x43b475['id'],'type':_0x375dd4[_0xedc9('0x22')],'sectionId':_0x375dd4['id']},{})[_0xedc9('0x1c')](function(){return _0x450caa;});}else{return _0x450caa;}})[_0xedc9('0x40')](function(_0x11da7f){logger['error'](_0xedc9('0x48'),_0x11da7f);throw _0x11da7f;});}return _0x450caa;})['then'](respondWithResult(_0x4856e1,0xc9))[_0xedc9('0x40')](handleError(_0x4856e1,null));};exports[_0xedc9('0x1b')]=function(_0x1a163d,_0x2274d0){if(_0x1a163d[_0xedc9('0x41')]['id']){delete _0x1a163d[_0xedc9('0x41')]['id'];}return db['Disposition']['find']({'where':{'id':_0x1a163d[_0xedc9('0x49')]['id']}})['then'](handleEntityNotFound(_0x2274d0,null))[_0xedc9('0x1c')](saveUpdates(_0x1a163d[_0xedc9('0x41')],null))['then'](respondWithResult(_0x2274d0,null))['catch'](handleError(_0x2274d0,null));};exports[_0xedc9('0x1d')]=function(_0x4c079e,_0x1003f2){return db[_0xedc9('0x24')]['find']({'where':{'id':_0x4c079e[_0xedc9('0x49')]['id']}})[_0xedc9('0x1c')](handleEntityNotFound(_0x1003f2,null))[_0xedc9('0x1c')](removeEntity(_0x1003f2,null))[_0xedc9('0x40')](handleError(_0x1003f2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15d3=['util','api','bluebird','request-promise','../../config/environment','./disposition.attributes','exports','define','Disposition','name_voice','name','ListId','name_chat','ChatWebsiteId','name_mail','MailAccountId','name_sms','SmsAccountId','name_fax','name_whatsapp','WhatsappAccountId','lodash'];(function(_0x3f03ca,_0x32ebfd){var _0x1cf6e3=function(_0x45b702){while(--_0x45b702){_0x3f03ca['push'](_0x3f03ca['shift']());}};_0x1cf6e3(++_0x32ebfd);}(_0x15d3,0x1e3));var _0x315d=function(_0x5dff5b,_0x4615bf){_0x5dff5b=_0x5dff5b-0x0;var _0x5939af=_0x15d3[_0x5dff5b];return _0x5939af;};'use strict';var _=require(_0x315d('0x0'));var util=require(_0x315d('0x1'));var logger=require('../../config/logger')(_0x315d('0x2'));var moment=require('moment');var BPromise=require(_0x315d('0x3'));var rp=require(_0x315d('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x315d('0x5'));var attributes=require(_0x315d('0x6'));module[_0x315d('0x7')]=function(_0x47855c,_0x5807a1){return _0x47855c[_0x315d('0x8')](_0x315d('0x9'),attributes,{'tableName':'tools_dispositions','paranoid':![],'indexes':[{'unique':!![],'name':_0x315d('0xa'),'fields':[_0x315d('0xb'),_0x315d('0xc')]},{'unique':!![],'name':_0x315d('0xd'),'fields':[_0x315d('0xb'),_0x315d('0xe')]},{'unique':!![],'name':_0x315d('0xf'),'fields':[_0x315d('0xb'),_0x315d('0x10')]},{'unique':!![],'name':_0x315d('0x11'),'fields':['name',_0x315d('0x12')]},{'unique':!![],'name':_0x315d('0x13'),'fields':[_0x315d('0xb'),'FaxAccountId']},{'unique':!![],'name':'name_openchannel','fields':[_0x315d('0xb'),'OpenchannelAccountId']},{'unique':!![],'name':_0x315d('0x14'),'fields':[_0x315d('0xb'),_0x315d('0x15')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a7f=['name_chat','ChatWebsiteId','name_mail','MailAccountId','name_sms','FaxAccountId','name_openchannel','OpenchannelAccountId','name_whatsapp','WhatsappAccountId','util','../../config/logger','api','moment','request-promise','path','../../config/environment','./disposition.attributes','exports','define','Disposition','tools_dispositions','name_voice','name','ListId'];(function(_0x382e89,_0x4768c0){var _0x3a1318=function(_0x79e1ce){while(--_0x79e1ce){_0x382e89['push'](_0x382e89['shift']());}};_0x3a1318(++_0x4768c0);}(_0x7a7f,0x11d));var _0xf7a7=function(_0x2bb317,_0x46afd9){_0x2bb317=_0x2bb317-0x0;var _0x16fc1a=_0x7a7f[_0x2bb317];return _0x16fc1a;};'use strict';var _=require('lodash');var util=require(_0xf7a7('0x0'));var logger=require(_0xf7a7('0x1'))(_0xf7a7('0x2'));var moment=require(_0xf7a7('0x3'));var BPromise=require('bluebird');var rp=require(_0xf7a7('0x4'));var fs=require('fs');var path=require(_0xf7a7('0x5'));var rimraf=require('rimraf');var config=require(_0xf7a7('0x6'));var attributes=require(_0xf7a7('0x7'));module[_0xf7a7('0x8')]=function(_0x30e02f,_0x1ca3cc){return _0x30e02f[_0xf7a7('0x9')](_0xf7a7('0xa'),attributes,{'tableName':_0xf7a7('0xb'),'paranoid':![],'indexes':[{'unique':!![],'name':_0xf7a7('0xc'),'fields':[_0xf7a7('0xd'),_0xf7a7('0xe')]},{'unique':!![],'name':_0xf7a7('0xf'),'fields':[_0xf7a7('0xd'),_0xf7a7('0x10')]},{'unique':!![],'name':_0xf7a7('0x11'),'fields':[_0xf7a7('0xd'),_0xf7a7('0x12')]},{'unique':!![],'name':_0xf7a7('0x13'),'fields':[_0xf7a7('0xd'),'SmsAccountId']},{'unique':!![],'name':'name_fax','fields':[_0xf7a7('0xd'),_0xf7a7('0x14')]},{'unique':!![],'name':_0xf7a7('0x15'),'fields':['name',_0xf7a7('0x16')]},{'unique':!![],'name':_0xf7a7('0x17'),'fields':[_0xf7a7('0xd'),_0xf7a7('0x18')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x5a3d43,_0x2b1974){var _0x19f08d=function(_0x9026d4){while(--_0x9026d4){_0x5a3d43['push'](_0x5a3d43['shift']());}};_0x19f08d(++_0x2b1974);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1c546c,_0x5c57cb){_0x1c546c=_0x1c546c-0x0;var _0x2cc384=_0xa9e0[_0x1c546c];return _0x2cc384;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x105fee,_0x135db3){var _0x9aaf31=function(_0x3e401a){while(--_0x3e401a){_0x105fee['push'](_0x105fee['shift']());}};_0x9aaf31(++_0x135db3);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2cfb58,_0x3d9412){_0x2cfb58=_0x2cfb58-0x0;var _0xd99951=_0xa9e0[_0x2cfb58];return _0xd99951;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2a1=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./disposition.controller','get','isAuthenticated','show','post','create','put','/:id','update','delete','destroy','exports','multer','path','connect-timeout','express'];(function(_0x2dae92,_0x41cb9e){var _0x4c3c07=function(_0x3b6f6d){while(--_0x3b6f6d){_0x2dae92['push'](_0x2dae92['shift']());}};_0x4c3c07(++_0x41cb9e);}(_0xc2a1,0x65));var _0x1c2a=function(_0x43379c,_0x271d36){_0x43379c=_0x43379c-0x0;var _0x495648=_0xc2a1[_0x43379c];return _0x495648;};'use strict';var multer=require(_0x1c2a('0x0'));var util=require('util');var path=require(_0x1c2a('0x1'));var timeout=require(_0x1c2a('0x2'));var express=require(_0x1c2a('0x3'));var router=express[_0x1c2a('0x4')]();var fs_extra=require(_0x1c2a('0x5'));var auth=require(_0x1c2a('0x6'));var interaction=require(_0x1c2a('0x7'));var config=require(_0x1c2a('0x8'));var controller=require(_0x1c2a('0x9'));router[_0x1c2a('0xa')]('/',auth[_0x1c2a('0xb')](),controller['index']);router[_0x1c2a('0xa')]('/:id',auth[_0x1c2a('0xb')](),controller[_0x1c2a('0xc')]);router[_0x1c2a('0xd')]('/',auth['isAuthenticated'](),controller[_0x1c2a('0xe')]);router[_0x1c2a('0xf')](_0x1c2a('0x10'),auth[_0x1c2a('0xb')](),controller[_0x1c2a('0x11')]);router[_0x1c2a('0x12')](_0x1c2a('0x10'),auth[_0x1c2a('0xb')](),controller[_0x1c2a('0x13')]);module[_0x1c2a('0x14')]=router;
\ No newline at end of file
+var _0x1ec8=['get','isAuthenticated','index','/:id','show','create','put','delete','destroy','exports','multer','util','connect-timeout','express','fs-extra'];(function(_0x1ad9d3,_0x20772b){var _0x5a52cb=function(_0x5d999c){while(--_0x5d999c){_0x1ad9d3['push'](_0x1ad9d3['shift']());}};_0x5a52cb(++_0x20772b);}(_0x1ec8,0x82));var _0x81ec=function(_0x2c5b06,_0xe46b96){_0x2c5b06=_0x2c5b06-0x0;var _0x7c621c=_0x1ec8[_0x2c5b06];return _0x7c621c;};'use strict';var multer=require(_0x81ec('0x0'));var util=require(_0x81ec('0x1'));var path=require('path');var timeout=require(_0x81ec('0x2'));var express=require(_0x81ec('0x3'));var router=express['Router']();var fs_extra=require(_0x81ec('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./disposition.controller');router[_0x81ec('0x5')]('/',auth[_0x81ec('0x6')](),controller[_0x81ec('0x7')]);router[_0x81ec('0x5')](_0x81ec('0x8'),auth[_0x81ec('0x6')](),controller[_0x81ec('0x9')]);router['post']('/',auth[_0x81ec('0x6')](),controller[_0x81ec('0xa')]);router[_0x81ec('0xb')](_0x81ec('0x8'),auth[_0x81ec('0x6')](),controller['update']);router[_0x81ec('0xc')](_0x81ec('0x8'),auth[_0x81ec('0x6')](),controller[_0x81ec('0xd')]);module[_0x81ec('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd6a=['14400','v17,v27,v29','INTEGER','SIP','IAX','DADHI','KHOMP','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','ENUM','yes','localstationid','2400','4800','7200','12000'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0xdd6a,0x1d1));var _0xadd6=function(_0x24124d,_0x26ae83){_0x24124d=_0x24124d-0x0;var _0x56df41=_0xdd6a[_0x24124d];return _0x56df41;};'use strict';var Sequelize=require(_0xadd6('0x0'));module[_0xadd6('0x1')]={'name':{'type':Sequelize[_0xadd6('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']},'ecm':{'type':Sequelize[_0xadd6('0x3')]('yes','no'),'defaultValue':_0xadd6('0x4')},'headerinfo':{'type':Sequelize['STRING'],'defaultValue':'xCALLY\x20Motion\x20Fax'},'localstationid':{'type':Sequelize[_0xadd6('0x2')],'unique':_0xadd6('0x5')},'minrate':{'type':Sequelize[_0xadd6('0x3')](_0xadd6('0x6'),_0xadd6('0x7'),_0xadd6('0x8'),'9600',_0xadd6('0x9'),'14400'),'defaultValue':_0xadd6('0x7')},'maxrate':{'type':Sequelize[_0xadd6('0x3')]('2400',_0xadd6('0x7'),_0xadd6('0x8'),'9600',_0xadd6('0x9'),'14400'),'defaultValue':_0xadd6('0xa')},'modem':{'type':Sequelize[_0xadd6('0x2')],'defaultValue':_0xadd6('0xb')},'gateway':{'type':Sequelize['STRING'],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0xadd6('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0xadd6('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0xadd6('0x3')](_0xadd6('0xd'),_0xadd6('0xe'),_0xadd6('0xf'),_0xadd6('0x10')),'defaultValue':_0xadd6('0xd')},'key':{'type':Sequelize[_0xadd6('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xadd6('0x11')],'defaultValue':function(){return _0xadd6('0x12');}},'notificationSound':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xadd6('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xadd6('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xadd6('0xc')],'allowNull':!![],'defaultValue':null,'comment':_0xadd6('0x14')},'mandatoryDisposition':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':![],'comment':_0xadd6('0x15'),'set':function(_0x522bb5){if(!_0x522bb5)this[_0xadd6('0x16')](_0xadd6('0x17'),null);this[_0xadd6('0x16')](_0xadd6('0x18'),_0x522bb5);}}};
\ No newline at end of file
+var _0x5f5f=['localstationid','ENUM','2400','4800','7200','9600','14400','12000','v17,v27,v29','SIP','IAX','DADHI','KHOMP','TEXT','BOOLEAN','INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDisposition','sequelize','exports','STRING','yes','xCALLY\x20Motion\x20Fax'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5f5f,0x1c3));var _0xf5f5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5f5f[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xf5f5('0x0'));module[_0xf5f5('0x1')]={'name':{'type':Sequelize[_0xf5f5('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xf5f5('0x2')]},'ecm':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0xf5f5('0x3')},'headerinfo':{'type':Sequelize[_0xf5f5('0x2')],'defaultValue':_0xf5f5('0x4')},'localstationid':{'type':Sequelize['STRING'],'unique':_0xf5f5('0x5')},'minrate':{'type':Sequelize[_0xf5f5('0x6')](_0xf5f5('0x7'),_0xf5f5('0x8'),_0xf5f5('0x9'),_0xf5f5('0xa'),'12000',_0xf5f5('0xb')),'defaultValue':_0xf5f5('0x8')},'maxrate':{'type':Sequelize[_0xf5f5('0x6')](_0xf5f5('0x7'),_0xf5f5('0x8'),_0xf5f5('0x9'),_0xf5f5('0xa'),_0xf5f5('0xc'),_0xf5f5('0xb')),'defaultValue':_0xf5f5('0xb')},'modem':{'type':Sequelize['STRING'],'defaultValue':_0xf5f5('0xd')},'gateway':{'type':Sequelize[_0xf5f5('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0xf5f5('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize['INTEGER'],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0xf5f5('0x6')](_0xf5f5('0xe'),_0xf5f5('0xf'),_0xf5f5('0x10'),_0xf5f5('0x11')),'defaultValue':_0xf5f5('0xe')},'key':{'type':Sequelize[_0xf5f5('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xf5f5('0x12')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xf5f5('0x13')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xf5f5('0x14')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xf5f5('0x13')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xf5f5('0x14')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xf5f5('0x13')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xf5f5('0x14')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xf5f5('0x14')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0xf5f5('0x15'),'set':function(_0x5d5c21){if(!_0x5d5c21)this['setDataValue']('mandatoryDispositionPauseId',null);this[_0xf5f5('0x16')](_0xf5f5('0x17'),_0x5d5c21);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0feb=['ecm','gateway','faxdetect','headerinfo','maxrate','minrate','modem','FAXOPT(','Set','Wait','/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d','ReceiveFax','addAccountApplications','transaction','VoiceExtension','tech','updatedAt','TrunkId','ListId','findById','getMessages','FaxMessage','$gte','format','YYYY-MM-DD\x20HH:mm:ss','List','Contacts','attachments','server/files/attachments','basename','CheckAfterSend','isNil','from','fax','CmContact','List\x20not\x20found','Send\x20Fax\x20failed','out','filename','spread','ContactId','Messages','dataValues','SendFax','SendFaxRpc,\x20%s','addAgents','ids','emit','removeAgents','isArray','userFaxAccount:remove','getAgents','User','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','client','http','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','sendStatus','status','end','json','offset','undefined','count','Content-Range','apply','reject','update','destroy','get','FaxAccounts','UserProfileResource','stack','name','send','index','mandatoryDispositionPause','map','rawAttributes','fieldName','type','key','model','filters','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','filter','options','FaxAccount','includeAll','include','findAll','rows','catch','show','params','Pause','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','FaxAccountId','getDispositions','findOne','keys','Disposition','removeDispositions','addAnswer','CannedAnswer','removeAnswers','addInteraction','FaxInteraction','omit','getInteractions','fullname','internal','Tag','Tags','tag','addApplications','sequelize','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','context','from-voip-provider','localstationid','app','description','Fax\x20Extension','appdata','push'];(function(_0xc2554e,_0x3d9ddc){var _0x5a4d8c=function(_0x5acd00){while(--_0x5acd00){_0xc2554e['push'](_0xc2554e['shift']());}};_0x5a4d8c(++_0x3d9ddc);}(_0x0feb,0xf3));var _0xb0fe=function(_0x2c7843,_0x32a073){_0x2c7843=_0x2c7843-0x0;var _0x196c0b=_0x0feb[_0x2c7843];return _0x196c0b;};'use strict';var emlformat=require(_0xb0fe('0x0'));var rimraf=require(_0xb0fe('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb0fe('0x2'));var rp=require(_0xb0fe('0x3'));var moment=require(_0xb0fe('0x4'));var BPromise=require(_0xb0fe('0x5'));var Mustache=require(_0xb0fe('0x6'));var util=require(_0xb0fe('0x7'));var path=require(_0xb0fe('0x8'));var sox=require(_0xb0fe('0x9'));var csv=require(_0xb0fe('0xa'));var ejs=require(_0xb0fe('0xb'));var fs=require('fs');var fs_extra=require(_0xb0fe('0xc'));var _=require(_0xb0fe('0xd'));var squel=require(_0xb0fe('0xe'));var crypto=require(_0xb0fe('0xf'));var jsforce=require(_0xb0fe('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb0fe('0x11'));var Redis=require(_0xb0fe('0x12'));var authService=require(_0xb0fe('0x13'));var qs=require(_0xb0fe('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb0fe('0x15'));var logger=require('../../config/logger')(_0xb0fe('0x16'));var utils=require('../../config/utils');var config=require(_0xb0fe('0x17'));var licenseUtil=require(_0xb0fe('0x18'));var db=require(_0xb0fe('0x19'))['db'];config[_0xb0fe('0x1a')]=_[_0xb0fe('0x1b')](config[_0xb0fe('0x1a')],{'host':_0xb0fe('0x1c'),'port':0x18eb});var socket=require(_0xb0fe('0x1d'))(new Redis(config[_0xb0fe('0x1a')]));require(_0xb0fe('0x1e'))[_0xb0fe('0x1f')](socket);var jayson=require('jayson/promise');var client=jayson[_0xb0fe('0x20')][_0xb0fe('0x21')]({'port':0x232c});var client9002=jayson[_0xb0fe('0x20')]['http']({'port':0x232a});function respondWithRpcPromise(_0x37c206,_0x24e263,_0x4e8b58,_0x14d822){return new BPromise(function(_0x25f4ce,_0xceb7e0){var _0x385c69=_0x14d822||client;return _0x385c69['request'](_0x37c206,_0x4e8b58)[_0xb0fe('0x22')](function(_0x4aef4f){logger[_0xb0fe('0x23')](_0xb0fe('0x24'),_0x24e263,_0xb0fe('0x25'));logger['debug'](_0xb0fe('0x26'),_0x24e263,_0xb0fe('0x25'),JSON['stringify'](_0x4aef4f));if(_0x4aef4f[_0xb0fe('0x27')]){if(_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x28')]===0x1f4){logger[_0xb0fe('0x27')](_0xb0fe('0x24'),_0x24e263,_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x29')]);return _0xceb7e0(_0x4aef4f['error'][_0xb0fe('0x29')]);}logger[_0xb0fe('0x27')](_0xb0fe('0x24'),_0x24e263,_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x29')]);return _0x25f4ce(_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x29')]);}else{logger[_0xb0fe('0x23')](_0xb0fe('0x24'),_0x24e263,_0xb0fe('0x25'));_0x25f4ce(_0x4aef4f[_0xb0fe('0x2a')][_0xb0fe('0x29')]);}})['catch'](function(_0x381553){logger[_0xb0fe('0x27')](_0xb0fe('0x24'),_0x24e263,_0x381553);_0xceb7e0(_0x381553);});});}function respondWithStatusCode(_0x8c0f1f,_0x44abb6){_0x44abb6=_0x44abb6||0xcc;return function(_0x10a94b){if(_0x10a94b){return _0x8c0f1f[_0xb0fe('0x2b')](_0x44abb6);}return _0x8c0f1f[_0xb0fe('0x2c')](_0x44abb6)[_0xb0fe('0x2d')]();};}function respondWithResult(_0x1f00a8,_0x1bf997){_0x1bf997=_0x1bf997||0xc8;return function(_0x48b386){if(_0x48b386){return _0x1f00a8[_0xb0fe('0x2c')](_0x1bf997)[_0xb0fe('0x2e')](_0x48b386);}};}function respondWithFilteredResult(_0x5374ee,_0x35c56d){return function(_0x11187d){if(_0x11187d){var _0x2d1f24=typeof _0x35c56d[_0xb0fe('0x2f')]===_0xb0fe('0x30')&&typeof _0x35c56d['limit']===_0xb0fe('0x30');var _0x59ea7e=_0x11187d[_0xb0fe('0x31')];var _0xdfa74=_0x2d1f24?0x0:_0x35c56d['offset'];var _0x2ad867=_0x2d1f24?_0x11187d[_0xb0fe('0x31')]:_0x35c56d[_0xb0fe('0x2f')]+_0x35c56d['limit'];var _0x1a82eb;if(_0x2ad867>=_0x59ea7e){_0x2ad867=_0x59ea7e;_0x1a82eb=0xc8;}else{_0x1a82eb=0xce;}_0x5374ee[_0xb0fe('0x2c')](_0x1a82eb);return _0x5374ee['set'](_0xb0fe('0x32'),_0xdfa74+'-'+_0x2ad867+'/'+_0x59ea7e)[_0xb0fe('0x2e')](_0x11187d);}return null;};}function patchUpdates(_0x364c4d){return function(_0x3c51be){try{jsonpatch[_0xb0fe('0x33')](_0x3c51be,_0x364c4d,!![]);}catch(_0x1a96c8){return BPromise[_0xb0fe('0x34')](_0x1a96c8);}return _0x3c51be['save']();};}function saveUpdates(_0x433eb9,_0x1713e5){return function(_0x54b33f){if(_0x54b33f){return _0x54b33f[_0xb0fe('0x35')](_0x433eb9)['then'](function(_0x203cef){return _0x203cef;});}return null;};}function removeEntity(_0x22c464,_0x26adf4){return function(_0x261f70){if(_0x261f70){return _0x261f70[_0xb0fe('0x36')]()[_0xb0fe('0x22')](function(){var _0xb56351=_0x261f70[_0xb0fe('0x37')]({'plain':!![]});var _0xb25a8d=_0xb0fe('0x38');return db[_0xb0fe('0x39')][_0xb0fe('0x36')]({'where':{'type':_0xb25a8d,'resourceId':_0xb56351['id']}})[_0xb0fe('0x22')](function(){return _0x261f70;});})[_0xb0fe('0x22')](function(){_0x22c464[_0xb0fe('0x2c')](0xcc)[_0xb0fe('0x2d')]();});}};}function handleEntityNotFound(_0x1a9126,_0x11d43c){return function(_0x3c972e){if(!_0x3c972e){_0x1a9126[_0xb0fe('0x2b')](0x194);}return _0x3c972e;};}function handleError(_0x2fc79d,_0x54fd6f){_0x54fd6f=_0x54fd6f||0x1f4;return function(_0x398589){logger[_0xb0fe('0x27')](_0x398589[_0xb0fe('0x3a')]);if(_0x398589[_0xb0fe('0x3b')]){delete _0x398589[_0xb0fe('0x3b')];}_0x2fc79d[_0xb0fe('0x2c')](_0x54fd6f)[_0xb0fe('0x3c')](_0x398589);};}exports[_0xb0fe('0x3d')]=function(_0x5e3260,_0x46f1d9){var _0x26008e={'include':[{'model':db['Pause'],'as':_0xb0fe('0x3e')}]},_0x4a8914={},_0x3475ba={'count':0x0,'rows':[]};var _0x186580=_[_0xb0fe('0x3f')](db['FaxAccount'][_0xb0fe('0x40')],function(_0x36cc9b){return{'name':_0x36cc9b[_0xb0fe('0x41')],'type':_0x36cc9b[_0xb0fe('0x42')][_0xb0fe('0x43')]};});_0x4a8914[_0xb0fe('0x44')]=_['map'](_0x186580,_0xb0fe('0x3b'));_0x4a8914['query']=_['keys'](_0x5e3260['query']);_0x4a8914[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x4a8914[_0xb0fe('0x44')],_0x4a8914[_0xb0fe('0x47')]);_0x26008e['attributes']=_['intersection'](_0x4a8914['model'],qs[_0xb0fe('0x48')](_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x26008e[_0xb0fe('0x49')]=_0x26008e[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x26008e[_0xb0fe('0x49')]:_0x4a8914[_0xb0fe('0x44')];if(!_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x4b')](_0xb0fe('0x4c'))){_0x26008e[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x4d')]);_0x26008e['offset']=qs['offset'](_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}_0x26008e[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x5e3260['query'][_0xb0fe('0x4f')]);_0x26008e[_0xb0fe('0x50')]=qs['filters'](_[_0xb0fe('0x51')](_0x5e3260[_0xb0fe('0x47')],_0x4a8914[_0xb0fe('0x45')]),_0x186580);if(_0x5e3260[_0xb0fe('0x47')]['filter']){_0x26008e[_0xb0fe('0x50')]=_[_0xb0fe('0x52')](_0x26008e[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x186580,function(_0x10d734){if(_0x10d734[_0xb0fe('0x42')]!==_0xb0fe('0x53')){var _0x51bc86={};_0x51bc86[_0x10d734[_0xb0fe('0x3b')]]={'$like':'%'+_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x51bc86;}})});}_0x26008e=_['merge']({},_0x26008e,_0x5e3260[_0xb0fe('0x55')]);var _0xe9d3e7={'where':_0x26008e[_0xb0fe('0x50')]};return db[_0xb0fe('0x56')]['count'](_0xe9d3e7)['then'](function(_0x49cd73){_0x3475ba['count']=_0x49cd73;if(_0x5e3260['query'][_0xb0fe('0x57')]){_0x26008e[_0xb0fe('0x58')]=[{'all':!![]}];}return db[_0xb0fe('0x56')][_0xb0fe('0x59')](_0x26008e);})[_0xb0fe('0x22')](function(_0x47f02d){_0x3475ba[_0xb0fe('0x5a')]=_0x47f02d;return _0x3475ba;})['then'](respondWithFilteredResult(_0x46f1d9,_0x26008e))[_0xb0fe('0x5b')](handleError(_0x46f1d9,null));};exports[_0xb0fe('0x5c')]=function(_0x3d3454,_0x5f4600){var _0x119df3={'raw':![],'where':{'id':_0x3d3454[_0xb0fe('0x5d')]['id']},'include':[{'model':db[_0xb0fe('0x5e')],'as':_0xb0fe('0x3e')}]},_0x244f7f={};_0x244f7f[_0xb0fe('0x44')]=_['keys'](db[_0xb0fe('0x56')][_0xb0fe('0x40')]);_0x244f7f[_0xb0fe('0x47')]=_['keys'](_0x3d3454[_0xb0fe('0x47')]);_0x244f7f[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x244f7f[_0xb0fe('0x44')],_0x244f7f['query']);_0x119df3['attributes']=_['intersection'](_0x244f7f['model'],qs[_0xb0fe('0x48')](_0x3d3454[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x119df3[_0xb0fe('0x49')]=_0x119df3[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x119df3[_0xb0fe('0x49')]:_0x244f7f['model'];if(_0x3d3454[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x119df3[_0xb0fe('0x58')]=[{'all':!![]}];}_0x119df3=_[_0xb0fe('0x52')]({},_0x119df3,_0x3d3454[_0xb0fe('0x55')]);return db['FaxAccount'][_0xb0fe('0x5f')](_0x119df3)[_0xb0fe('0x22')](handleEntityNotFound(_0x5f4600,null))[_0xb0fe('0x22')](respondWithResult(_0x5f4600,null))[_0xb0fe('0x5b')](handleError(_0x5f4600,null));};exports[_0xb0fe('0x60')]=function(_0x21d845,_0x38f3ea){return db[_0xb0fe('0x56')][_0xb0fe('0x60')](_0x21d845[_0xb0fe('0x61')],{})[_0xb0fe('0x22')](function(_0x520743){var _0x1feb22=_0x21d845['user'][_0xb0fe('0x37')]({'plain':!![]});if(!_0x1feb22)throw new Error(_0xb0fe('0x62'));if(_0x1feb22[_0xb0fe('0x63')]===_0xb0fe('0x64')){var _0x1405be=_0x520743[_0xb0fe('0x37')]({'plain':!![]});var _0x240a9a=_0xb0fe('0x38');return db['UserProfileSection'][_0xb0fe('0x5f')]({'where':{'name':_0x240a9a,'userProfileId':_0x1feb22['userProfileId']},'raw':!![]})[_0xb0fe('0x22')](function(_0x49cfb8){if(_0x49cfb8&&_0x49cfb8['autoAssociation']===0x0){return db[_0xb0fe('0x39')][_0xb0fe('0x60')]({'name':_0x1405be[_0xb0fe('0x3b')],'resourceId':_0x1405be['id'],'type':_0x49cfb8[_0xb0fe('0x3b')],'sectionId':_0x49cfb8['id']},{})['then'](function(){return _0x520743;});}else{return _0x520743;}})[_0xb0fe('0x5b')](function(_0x3df793){logger['error'](_0xb0fe('0x65'),_0x3df793);throw _0x3df793;});}return _0x520743;})[_0xb0fe('0x22')](respondWithResult(_0x38f3ea,0xc9))[_0xb0fe('0x5b')](handleError(_0x38f3ea,null));};exports['update']=function(_0x55a984,_0x1de21c){if(_0x55a984[_0xb0fe('0x61')]['id']){delete _0x55a984[_0xb0fe('0x61')]['id'];}return db['FaxAccount'][_0xb0fe('0x5f')]({'where':{'id':_0x55a984['params']['id']},'include':[{'model':db[_0xb0fe('0x5e')],'as':'mandatoryDispositionPause'}]})[_0xb0fe('0x22')](handleEntityNotFound(_0x1de21c,null))[_0xb0fe('0x22')](saveUpdates(_0x55a984[_0xb0fe('0x61')],null))[_0xb0fe('0x22')](respondWithResult(_0x1de21c,null))[_0xb0fe('0x5b')](handleError(_0x1de21c,null));};exports[_0xb0fe('0x36')]=function(_0x7124bb,_0x5a9afa){return db['FaxAccount'][_0xb0fe('0x5f')]({'where':{'id':_0x7124bb[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x5a9afa,null))[_0xb0fe('0x22')](removeEntity(_0x5a9afa,null))[_0xb0fe('0x5b')](handleError(_0x5a9afa,null));};exports[_0xb0fe('0x66')]=function(_0x1d00e1,_0x4ad3d2){return db['FaxAccount'][_0xb0fe('0x66')]()[_0xb0fe('0x22')](respondWithResult(_0x4ad3d2,null))[_0xb0fe('0x5b')](handleError(_0x4ad3d2,null));};exports[_0xb0fe('0x67')]=function(_0x3c301e,_0x243963,_0x144a9a){if(_0x3c301e[_0xb0fe('0x61')]['id']){delete _0x3c301e[_0xb0fe('0x61')]['id'];}return db[_0xb0fe('0x56')]['find']({'where':{'id':_0x3c301e['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x243963,null))['then'](function(_0x45edd8){if(_0x45edd8){_0x3c301e[_0xb0fe('0x61')][_0xb0fe('0x68')]=_0x45edd8['id'];return db['Disposition'][_0xb0fe('0x60')](_0x3c301e[_0xb0fe('0x61')]);}})['then'](respondWithResult(_0x243963,null))['catch'](handleError(_0x243963,null));};exports[_0xb0fe('0x69')]=function(_0x6618b,_0x272cc7,_0x69c73){var _0x1c73d3={'raw':![],'where':{}};var _0x100822={};var _0x5e2d62={'count':0x0,'rows':[]};return db[_0xb0fe('0x56')][_0xb0fe('0x6a')]({'where':{'id':_0x6618b[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x272cc7,null))[_0xb0fe('0x22')](function(_0x1f820d){if(_0x1f820d){_0x100822['model']=_[_0xb0fe('0x6b')](db[_0xb0fe('0x6c')][_0xb0fe('0x40')]);_0x100822['query']=_[_0xb0fe('0x6b')](_0x6618b[_0xb0fe('0x47')]);_0x100822[_0xb0fe('0x45')]=_['intersection'](_0x100822['model'],_0x100822['query']);_0x1c73d3[_0xb0fe('0x49')]=_['intersection'](_0x100822['model'],qs['fields'](_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x1c73d3[_0xb0fe('0x49')]=_0x1c73d3['attributes'][_0xb0fe('0x4a')]?_0x1c73d3['attributes']:_0x100822[_0xb0fe('0x44')];if(!_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x4b')](_0xb0fe('0x4c'))){_0x1c73d3[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x6618b[_0xb0fe('0x47')]['limit']);_0x1c73d3[_0xb0fe('0x2f')]=qs[_0xb0fe('0x2f')](_0x6618b[_0xb0fe('0x47')]['offset']);}_0x1c73d3[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x1c73d3['where']=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x6618b['query'],_0x100822['filters']));_0x1c73d3['where'][_0xb0fe('0x68')]=_0x1f820d['id'];if(_0x6618b[_0xb0fe('0x47')]['filter']){_0x1c73d3[_0xb0fe('0x50')]=_[_0xb0fe('0x52')](_0x1c73d3[_0xb0fe('0x50')],{'$or':_['map'](_0x1c73d3['attributes'],function(_0x4a739a){var _0x3f983b={};_0x3f983b[_0x4a739a]={'$like':'%'+_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x3f983b;})});}_0x1c73d3=_[_0xb0fe('0x52')]({},_0x1c73d3,_0x6618b[_0xb0fe('0x55')]);return db[_0xb0fe('0x6c')][_0xb0fe('0x31')]({'where':_0x1c73d3[_0xb0fe('0x50')]})[_0xb0fe('0x22')](function(_0x1e2ae3){_0x5e2d62[_0xb0fe('0x31')]=_0x1e2ae3;if(_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x1c73d3[_0xb0fe('0x58')]=[{'all':!![]}];}return db[_0xb0fe('0x6c')]['findAll'](_0x1c73d3);})[_0xb0fe('0x22')](function(_0x3c19a4){_0x5e2d62[_0xb0fe('0x5a')]=_0x3c19a4;return _0x5e2d62;});}})[_0xb0fe('0x22')](respondWithFilteredResult(_0x272cc7,_0x1c73d3))[_0xb0fe('0x5b')](handleError(_0x272cc7,null));};exports[_0xb0fe('0x6d')]=function(_0x2821b3,_0x4e8bbe,_0x591e6b){return db[_0xb0fe('0x56')]['find']({'where':{'id':_0x2821b3[_0xb0fe('0x5d')]['id']}})['then'](handleEntityNotFound(_0x4e8bbe,null))[_0xb0fe('0x22')](function(_0x533fd4){if(_0x533fd4){return _0x533fd4['removeDispositions'](_0x2821b3['query']['ids']);}})[_0xb0fe('0x22')](respondWithStatusCode(_0x4e8bbe,null))[_0xb0fe('0x5b')](handleError(_0x4e8bbe,null));};exports[_0xb0fe('0x6e')]=function(_0x1e3327,_0x35824b,_0x1f4f08){if(_0x1e3327[_0xb0fe('0x61')]['id']){delete _0x1e3327['body']['id'];}return db['FaxAccount']['find']({'where':{'id':_0x1e3327['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x35824b,null))[_0xb0fe('0x22')](function(_0x6e3ede){if(_0x6e3ede){_0x1e3327['body'][_0xb0fe('0x68')]=_0x6e3ede['id'];return db['CannedAnswer'][_0xb0fe('0x60')](_0x1e3327[_0xb0fe('0x61')]);}})[_0xb0fe('0x22')](respondWithResult(_0x35824b,null))[_0xb0fe('0x5b')](handleError(_0x35824b,null));};exports['getAnswers']=function(_0x4c237d,_0x5ba976,_0x4ea112){var _0x43aae1={'raw':![],'where':{}};var _0x2a7aa7={};var _0x89a8ab={'count':0x0,'rows':[]};return db['FaxAccount'][_0xb0fe('0x6a')]({'where':{'id':_0x4c237d[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x5ba976,null))['then'](function(_0x74f000){if(_0x74f000){_0x2a7aa7[_0xb0fe('0x44')]=_['keys'](db['CannedAnswer'][_0xb0fe('0x40')]);_0x2a7aa7[_0xb0fe('0x47')]=_[_0xb0fe('0x6b')](_0x4c237d['query']);_0x2a7aa7['filters']=_[_0xb0fe('0x46')](_0x2a7aa7['model'],_0x2a7aa7[_0xb0fe('0x47')]);_0x43aae1[_0xb0fe('0x49')]=_[_0xb0fe('0x46')](_0x2a7aa7['model'],qs[_0xb0fe('0x48')](_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x43aae1['attributes']=_0x43aae1[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x43aae1['attributes']:_0x2a7aa7[_0xb0fe('0x44')];if(!_0x4c237d['query']['hasOwnProperty']('nolimit')){_0x43aae1['limit']=qs[_0xb0fe('0x4d')](_0x4c237d['query']['limit']);_0x43aae1[_0xb0fe('0x2f')]=qs[_0xb0fe('0x2f')](_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}_0x43aae1[_0xb0fe('0x4e')]=qs['sort'](_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x43aae1[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x4c237d[_0xb0fe('0x47')],_0x2a7aa7[_0xb0fe('0x45')]));_0x43aae1[_0xb0fe('0x50')][_0xb0fe('0x68')]=_0x74f000['id'];if(_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x43aae1[_0xb0fe('0x50')]=_['merge'](_0x43aae1['where'],{'$or':_[_0xb0fe('0x3f')](_0x43aae1['attributes'],function(_0x23f4d0){var _0x278318={};_0x278318[_0x23f4d0]={'$like':'%'+_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x278318;})});}_0x43aae1=_[_0xb0fe('0x52')]({},_0x43aae1,_0x4c237d[_0xb0fe('0x55')]);return db[_0xb0fe('0x6f')][_0xb0fe('0x31')]({'where':_0x43aae1['where']})[_0xb0fe('0x22')](function(_0x5cf026){_0x89a8ab[_0xb0fe('0x31')]=_0x5cf026;if(_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x43aae1[_0xb0fe('0x58')]=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x43aae1);})[_0xb0fe('0x22')](function(_0x11624a){_0x89a8ab[_0xb0fe('0x5a')]=_0x11624a;return _0x89a8ab;});}})['then'](respondWithFilteredResult(_0x5ba976,_0x43aae1))[_0xb0fe('0x5b')](handleError(_0x5ba976,null));};exports[_0xb0fe('0x70')]=function(_0x27acc6,_0x521594,_0x1587a4){return db[_0xb0fe('0x56')][_0xb0fe('0x5f')]({'where':{'id':_0x27acc6['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x521594,null))[_0xb0fe('0x22')](function(_0x31f72f){if(_0x31f72f){return _0x31f72f['removeAnswers'](_0x27acc6[_0xb0fe('0x47')]['ids']);}})['then'](respondWithStatusCode(_0x521594,null))['catch'](handleError(_0x521594,null));};exports[_0xb0fe('0x71')]=function(_0x706c16,_0x142aec,_0x4c50e1){return db[_0xb0fe('0x72')][_0xb0fe('0x5f')]({'where':{'id':_0x706c16[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x142aec,null))['then'](function(_0x57bbbc){if(_0x57bbbc){return _0x57bbbc[_0xb0fe('0x71')](_0x706c16['body']['ids'],_[_0xb0fe('0x73')](_0x706c16['body'],['ids','id'])||{});}})[_0xb0fe('0x22')](respondWithResult(_0x142aec,null))['catch'](handleError(_0x142aec,null));};exports[_0xb0fe('0x74')]=function(_0x45f2f7,_0x4e411f,_0x246f54){var _0x2a958e={'raw':![],'where':{}};var _0x44054c={};var _0x4c656f={'count':0x0,'rows':[]};return db[_0xb0fe('0x56')][_0xb0fe('0x6a')]({'where':{'id':_0x45f2f7['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x4e411f,null))[_0xb0fe('0x22')](function(_0x25f3b1){if(_0x25f3b1){_0x44054c[_0xb0fe('0x44')]=_[_0xb0fe('0x6b')](db[_0xb0fe('0x72')][_0xb0fe('0x40')]);_0x44054c[_0xb0fe('0x47')]=_[_0xb0fe('0x6b')](_0x45f2f7[_0xb0fe('0x47')]);_0x44054c[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x44054c[_0xb0fe('0x44')],_0x44054c[_0xb0fe('0x47')]);_0x2a958e['attributes']=_[_0xb0fe('0x46')](_0x44054c['model'],qs['fields'](_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x2a958e[_0xb0fe('0x49')]=_0x2a958e[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x2a958e[_0xb0fe('0x49')]:_0x44054c[_0xb0fe('0x44')];if(!_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x4b')](_0xb0fe('0x4c'))){_0x2a958e['limit']=qs['limit'](_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x4d')]);_0x2a958e[_0xb0fe('0x2f')]=qs['offset'](_0x45f2f7['query']['offset']);}_0x2a958e[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x45f2f7['query']['sort']);_0x2a958e[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_['pick'](_0x45f2f7[_0xb0fe('0x47')],_0x44054c[_0xb0fe('0x45')]));_0x2a958e['where'][_0xb0fe('0x68')]=_0x25f3b1['id'];if(_0x45f2f7[_0xb0fe('0x47')]['filter']){_0x2a958e['where']=_[_0xb0fe('0x52')](_0x2a958e[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x2a958e[_0xb0fe('0x49')],function(_0x579a76){var _0x4bbb20={};_0x4bbb20[_0x579a76]={'$like':'%'+_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x4bbb20;})});}_0x2a958e=_[_0xb0fe('0x52')]({},_0x2a958e,_0x45f2f7[_0xb0fe('0x55')]);return db[_0xb0fe('0x72')][_0xb0fe('0x31')]({'where':_0x2a958e[_0xb0fe('0x50')]})[_0xb0fe('0x22')](function(_0x149f88){_0x4c656f[_0xb0fe('0x31')]=_0x149f88;if(_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x2a958e[_0xb0fe('0x58')]=[{'model':db['CmContact'],'as':'Contact','required':![]},{'model':db['User'],'as':'Owner','attributes':['name',_0xb0fe('0x75'),_0xb0fe('0x76')],'required':![]},{'model':db[_0xb0fe('0x77')],'as':_0xb0fe('0x78'),'attributes':['id',_0xb0fe('0x3b'),'color'],'where':_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x79')]?{'id':_0x45f2f7[_0xb0fe('0x47')]['tag']}:undefined,'required':_0x45f2f7['query'][_0xb0fe('0x79')]?!![]:![]}];}return db[_0xb0fe('0x72')][_0xb0fe('0x59')](_0x2a958e);})[_0xb0fe('0x22')](function(_0x520c57){_0x4c656f[_0xb0fe('0x5a')]=_0x520c57;return _0x4c656f;});}})['then'](respondWithFilteredResult(_0x4e411f,_0x2a958e))[_0xb0fe('0x5b')](handleError(_0x4e411f,null));};exports[_0xb0fe('0x7a')]=function(_0xf342e2,_0x2e6d4b,_0xa23d5){return db['FaxAccount']['findOne']({'where':{'id':_0xf342e2[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x2e6d4b,null))[_0xb0fe('0x22')](function(_0x3da90f){if(_0x3da90f){return db[_0xb0fe('0x7b')]['transaction'](function(_0x5e0615){return db[_0xb0fe('0x7c')][_0xb0fe('0x36')]({'where':{'FaxAccountId':_0xf342e2[_0xb0fe('0x5d')]['id']},'transaction':_0x5e0615})[_0xb0fe('0x22')](function(_0x66ba64){var _0x36b520=_['map'](_0xf342e2[_0xb0fe('0x61')],function(_0x398ebf){_0x398ebf[_0xb0fe('0x68')]=_0xf342e2['params']['id'];return _0x398ebf;});return db[_0xb0fe('0x7c')][_0xb0fe('0x7d')](_0x36b520,{'transaction':_0x5e0615});});})[_0xb0fe('0x22')](function(){return db['FaxApplication'][_0xb0fe('0x7e')]({'where':{'FaxAccountId':_0xf342e2[_0xb0fe('0x5d')]['id']},'order':_0xb0fe('0x7f')});});}})[_0xb0fe('0x22')](respondWithResult(_0x2e6d4b,null))['catch'](handleError(_0x2e6d4b,null));};exports[_0xb0fe('0x80')]=function(_0x2e3d19,_0x44b27f,_0x1e067b){var _0x170736={};var _0x21694f={};var _0x4b014c;var _0x55234b;return db['FaxAccount']['findOne']({'where':{'id':_0x2e3d19['params']['id']}})['then'](handleEntityNotFound(_0x44b27f,null))[_0xb0fe('0x22')](function(_0x5473cb){if(_0x5473cb){_0x4b014c=_0x5473cb;_0x21694f['model']=_['keys'](db['FaxApplication'][_0xb0fe('0x40')]);_0x21694f[_0xb0fe('0x47')]=_['keys'](_0x2e3d19[_0xb0fe('0x47')]);_0x21694f['filters']=_[_0xb0fe('0x46')](_0x21694f[_0xb0fe('0x44')],_0x21694f[_0xb0fe('0x47')]);_0x170736[_0xb0fe('0x49')]=_[_0xb0fe('0x46')](_0x21694f['model'],qs[_0xb0fe('0x48')](_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x170736[_0xb0fe('0x49')]=_0x170736['attributes']['length']?_0x170736[_0xb0fe('0x49')]:_0x21694f[_0xb0fe('0x44')];_0x170736[_0xb0fe('0x4e')]=qs['sort'](_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x170736[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x2e3d19[_0xb0fe('0x47')],_0x21694f[_0xb0fe('0x45')]));if(_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x170736[_0xb0fe('0x50')]=_['merge'](_0x170736[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x170736[_0xb0fe('0x49')],function(_0x1d998d){var _0x7e23a9={};_0x7e23a9[_0x1d998d]={'$like':'%'+_0x2e3d19[_0xb0fe('0x47')]['filter']+'%'};return _0x7e23a9;})});}_0x170736=_[_0xb0fe('0x52')]({},_0x170736,_0x2e3d19['options']);return _0x4b014c[_0xb0fe('0x80')](_0x170736);}})[_0xb0fe('0x22')](function(_0x16727b){if(_0x16727b){_0x55234b=_0x16727b[_0xb0fe('0x4a')];if(!_0x2e3d19[_0xb0fe('0x47')]['hasOwnProperty']('nolimit')){_0x170736['limit']=qs[_0xb0fe('0x4d')](_0x2e3d19['query'][_0xb0fe('0x4d')]);_0x170736['offset']=qs[_0xb0fe('0x2f')](_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}return _0x4b014c['getApplications'](_0x170736);}})[_0xb0fe('0x22')](function(_0x3a9593){if(_0x3a9593){return _0x3a9593?{'count':_0x55234b,'rows':_0x3a9593}:null;}})[_0xb0fe('0x22')](respondWithResult(_0x44b27f,null))['catch'](handleError(_0x44b27f,null));};function Extension(_0x44414e,_0x3ed991,_0x1a12e7,_0x49ea9a){this[_0xb0fe('0x81')]=_0xb0fe('0x82');this['exten']=_0x44414e[_0xb0fe('0x83')];this[_0xb0fe('0x84')]=_0x49ea9a;this[_0xb0fe('0x42')]='system';this[_0xb0fe('0x85')]=_0xb0fe('0x86');this[_0xb0fe('0x68')]=_0x44414e['id'];this['priority']=_0x3ed991;this[_0xb0fe('0x87')]=_0x1a12e7;}function createExtensionsReciveFax(_0x1b1ca2){var _0x1c31e3=0x1;var _0x1e67ec=[];_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,'','Answer'));_0x1c31e3+=0x1;_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,'CDR(type)=inbound-fax','Set'));_0x1c31e3+=0x1;for(var _0x164a47 in _0x1b1ca2){if(_0x1b1ca2[_0xb0fe('0x4b')](_0x164a47)&&(_0x164a47===_0xb0fe('0x89')||_0x164a47===_0xb0fe('0x83')||_0x164a47===_0xb0fe('0x8a')||_0x164a47===_0xb0fe('0x8b')||_0x164a47===_0xb0fe('0x8c')||_0x164a47===_0xb0fe('0x8d')||_0x164a47===_0xb0fe('0x8e')||_0x164a47===_0xb0fe('0x8f')||_0x164a47==='t38timeout')){_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,_0xb0fe('0x90')+_0x164a47+')='+_0x1b1ca2[_0x164a47],_0xb0fe('0x91')));_0x1c31e3+=0x1;}}_0x1e67ec['push'](new Extension(_0x1b1ca2,_0x1c31e3,'6',_0xb0fe('0x92')));_0x1c31e3+=0x1;_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,_0xb0fe('0x93'),_0xb0fe('0x94')));_0x1c31e3=0x0;return _0x1e67ec;}exports[_0xb0fe('0x95')]=function(_0x49a709,_0x376ba9,_0xbbb7ea){var _0x581cde;return db[_0xb0fe('0x7b')][_0xb0fe('0x96')](function(_0x553afd){return db['FaxAccount'][_0xb0fe('0x60')](_0x49a709[_0xb0fe('0x61')],{'transaction':_0x553afd})[_0xb0fe('0x22')](function(_0x1cfdcf){_0x581cde=_0x1cfdcf[_0xb0fe('0x37')]({'plain':!![]});return db['VoiceExtension']['bulkCreate'](createExtensionsReciveFax(_0x581cde),{'transaction':_0x553afd});});})[_0xb0fe('0x22')](function(){return _0x581cde;})[_0xb0fe('0x22')](respondWithResult(_0x376ba9,null))[_0xb0fe('0x5b')](handleError(_0x376ba9,null));};exports['updateAccountApplications']=function(_0x5e2bb6,_0x50d23d,_0x518805){var _0x51ec37;return db[_0xb0fe('0x7b')][_0xb0fe('0x96')](function(_0x5c8890){return db[_0xb0fe('0x56')]['update'](_0x5e2bb6[_0xb0fe('0x61')],{'where':{'id':_0x5e2bb6['body']['id']},'transaction':_0x5c8890})[_0xb0fe('0x22')](function(_0x79887c){return db['VoiceExtension']['destroy']({'where':{'FaxAccountId':_0x5e2bb6[_0xb0fe('0x61')]['id']},'transaction':_0x5c8890})[_0xb0fe('0x22')](function(_0x3f41ac){return db[_0xb0fe('0x97')]['bulkCreate'](createExtensionsReciveFax(_[_0xb0fe('0x73')](_0x5e2bb6[_0xb0fe('0x61')],[_0xb0fe('0x98'),_0xb0fe('0x43'),'createdAt',_0xb0fe('0x99'),_0xb0fe('0x9a'),_0xb0fe('0x9b')])),{'transaction':_0x5c8890});});});})['then'](function(){return db[_0xb0fe('0x56')][_0xb0fe('0x9c')](_0x5e2bb6['body']['id']);})[_0xb0fe('0x22')](respondWithResult(_0x50d23d,null))[_0xb0fe('0x5b')](handleError(_0x50d23d,null));};exports[_0xb0fe('0x9d')]=function(_0x3f784c,_0x2d410a,_0x2f17e9){var _0x1d369b={'raw':!![],'where':{}};var _0x13ac1f={};var _0x150abf={'count':0x0,'rows':[]};return db[_0xb0fe('0x56')]['findOne']({'where':{'id':_0x3f784c[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x2d410a,null))[_0xb0fe('0x22')](function(_0x2798af){if(_0x2798af){_0x13ac1f['model']=_[_0xb0fe('0x6b')](db[_0xb0fe('0x9e')][_0xb0fe('0x40')]);_0x13ac1f['query']=_[_0xb0fe('0x6b')](_0x3f784c[_0xb0fe('0x47')]);_0x13ac1f[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x13ac1f[_0xb0fe('0x44')],_0x13ac1f[_0xb0fe('0x47')]);_0x1d369b[_0xb0fe('0x49')]=_[_0xb0fe('0x46')](_0x13ac1f[_0xb0fe('0x44')],qs[_0xb0fe('0x48')](_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x1d369b[_0xb0fe('0x49')]=_0x1d369b['attributes'][_0xb0fe('0x4a')]?_0x1d369b[_0xb0fe('0x49')]:_0x13ac1f[_0xb0fe('0x44')];if(!_0x3f784c[_0xb0fe('0x47')]['hasOwnProperty'](_0xb0fe('0x4c'))){_0x1d369b[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x3f784c[_0xb0fe('0x47')]['limit']);_0x1d369b[_0xb0fe('0x2f')]=qs[_0xb0fe('0x2f')](_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}_0x1d369b[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x1d369b[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_['pick'](_0x3f784c[_0xb0fe('0x47')],_0x13ac1f[_0xb0fe('0x45')]));_0x1d369b[_0xb0fe('0x50')][_0xb0fe('0x68')]=_0x2798af['id'];if(_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x1d369b[_0xb0fe('0x50')]=_['merge'](_0x1d369b[_0xb0fe('0x50')],{'$or':_['map'](_0x1d369b[_0xb0fe('0x49')],function(_0x50548e){var _0x1b3d84={};_0x1b3d84[_0x50548e]={'$like':'%'+_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x1b3d84;})});}if(_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x9f')]){var _0xe89bca=_0x3f784c['query'][_0xb0fe('0x9f')]['split'](',');var _0x554fa2={};_0x554fa2[_0xe89bca[0x0]]={'$gte':moment(_0xe89bca[0x1])[_0xb0fe('0xa0')](_0xb0fe('0xa1'))};_0x1d369b[_0xb0fe('0x50')]=_['merge'](_0x1d369b[_0xb0fe('0x50')],_0x554fa2);}_0x1d369b=_[_0xb0fe('0x52')]({},_0x1d369b,_0x3f784c['options']);return db['FaxMessage'][_0xb0fe('0x31')]({'where':_0x1d369b[_0xb0fe('0x50')]})[_0xb0fe('0x22')](function(_0x4a9ce7){_0x150abf[_0xb0fe('0x31')]=_0x4a9ce7;if(_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x1d369b[_0xb0fe('0x58')]=[{'all':!![]}];}return db[_0xb0fe('0x9e')][_0xb0fe('0x59')](_0x1d369b);})[_0xb0fe('0x22')](function(_0x3dd437){_0x150abf[_0xb0fe('0x5a')]=_0x3dd437;return _0x150abf;});}})[_0xb0fe('0x22')](respondWithFilteredResult(_0x2d410a,_0x1d369b))['catch'](handleError(_0x2d410a,null));};exports['send']=function(_0xd81912,_0x3961e4,_0x502434){var _0x1cee65,_0x14b5fc={},_0x209350;if(_0xd81912['body']['to']){_0x209350=_0xd81912[_0xb0fe('0x61')]['to'][0x0];}return db[_0xb0fe('0x56')][_0xb0fe('0x5f')]({'where':{'id':_0xd81912[_0xb0fe('0x5d')]['id']},'include':[{'model':db['CmList'],'as':_0xb0fe('0xa2'),'include':[{'model':db['CmContact'],'as':_0xb0fe('0xa3'),'where':{'fax':_0x209350},'limit':0x1,'order':[[_0xb0fe('0x99'),'DESC']]}]}]})[_0xb0fe('0x22')](handleEntityNotFound(_0x3961e4,null))[_0xb0fe('0x22')](function(_0x410f18){_0x1cee65=_0x410f18;if(_0xd81912[_0xb0fe('0x61')]['attachments']&&_0xd81912[_0xb0fe('0x61')]['attachments'][_0xb0fe('0x4a')]){for(var _0x58f8c9=0x0;_0x58f8c9<_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][_0xb0fe('0x4a')];_0x58f8c9+=0x1){_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][_0x58f8c9]={'filename':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][_0x58f8c9][_0xb0fe('0x3b')],'id':_0xd81912[_0xb0fe('0x61')]['attachments'][_0x58f8c9]['id'],'path':path['join'](config['root'],_0xb0fe('0xa5'),_0xd81912['body'][_0xb0fe('0xa4')][_0x58f8c9][_0xb0fe('0xa6')])};}}return respondWithRpcPromise(_0xb0fe('0xa7'),_0xb0fe('0xa7'),{'FaxAccountId':_[_0xb0fe('0xa8')](_0xd81912[_0xb0fe('0x5d')]['id'])?undefined:_0xd81912[_0xb0fe('0x5d')]['id'],'path':_[_0xb0fe('0xa8')](_0xd81912['body'][_0xb0fe('0xa4')][0x0]['path'])?undefined:_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0x8')],'fax':_['isNil'](_0xd81912[_0xb0fe('0x61')]['to'][0x0])?undefined:_0xd81912['body']['to'][0x0]},client9002);})[_0xb0fe('0x22')](function(){if(_0x1cee65){if(_['isNil'](_0xd81912['body']['from'])){_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa9')]=util[_0xb0fe('0xa0')]('\x22%s\x22\x20<%s>',_0x1cee65[_0xb0fe('0x3b')],_0x1cee65[_0xb0fe('0xaa')]);}if(_0x1cee65[_0xb0fe('0xa2')]){if(_0x1cee65[_0xb0fe('0xa2')][_0xb0fe('0xa3')][_0xb0fe('0x4a')]){return _0x1cee65[_0xb0fe('0xa2')][_0xb0fe('0xa3')][0x0];}else{return db[_0xb0fe('0xab')][_0xb0fe('0x60')](_['defaults'](_0xd81912[_0xb0fe('0x61')],{'firstName':_0xd81912[_0xb0fe('0x61')]['to'][0x0],'phone':_0xd81912[_0xb0fe('0x61')]['to'][0x0],'fax':_0xd81912[_0xb0fe('0x61')]['to'][0x0],'ListId':_0x1cee65[_0xb0fe('0x9b')]}));}}else{throw new Error(_0xb0fe('0xac'));}}else{throw new Error(_0xb0fe('0xad'));}})[_0xb0fe('0x22')](function(_0x3d0587){if(_0x3d0587){return db['FaxInteraction'][_0xb0fe('0x5f')]({'where':{'ContactId':_0x3d0587['id'],'closed':![],'FaxAccountId':_0x1cee65['id']}})[_0xb0fe('0x22')](function(_0x4a3312){if(_0x4a3312){return[_0x4a3312,![]];}return db['FaxInteraction'][_0xb0fe('0x60')]({'UserId':_0xd81912['user']['id'],'ContactId':_0x3d0587['id'],'FaxAccountId':_0x1cee65['id'],'fax':_0xd81912['body']['to'][0x0],'firstMsgDirection':_0xb0fe('0xae'),'Messages':[_['merge'](_0xd81912[_0xb0fe('0x61')],{'read':![],'body':_0xd81912['body'][_0xb0fe('0xa4')][0x0][_0xb0fe('0xaf')],'FaxAccountId':_0x1cee65['id'],'UserId':_0xd81912[_0xb0fe('0x64')]['id'],'ContactId':_0x3d0587['id'],'AttachmentId':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0]['id']})]},{'include':[{'model':db['FaxMessage'],'as':'Messages'}]})[_0xb0fe('0x22')](function(_0x4d6fc8){return[_0x4d6fc8,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xb0fe('0xb0')](function(_0x3d1864,_0x42fa26){if(_0x42fa26){return _0x3d1864;}return db[_0xb0fe('0x9e')][_0xb0fe('0x60')]({'direction':'out','read':![],'body':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0xaf')],'FaxAccountId':_0x1cee65['id'],'FaxInteractionId':_0x3d1864['id'],'UserId':_0xd81912[_0xb0fe('0x64')]['id'],'ContactId':_0x3d1864[_0xb0fe('0xb1')],'AttachmentId':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0]['id']})[_0xb0fe('0x22')](function(_0x4c7b25){_0x3d1864['dataValues'][_0xb0fe('0xb2')]=[];_0x3d1864[_0xb0fe('0xb3')][_0xb0fe('0xb2')]['push'](_0x4c7b25[_0xb0fe('0xb3')]);return _0x3d1864;});})[_0xb0fe('0x22')](function(_0x43e8fd){respondWithRpcPromise(_0xb0fe('0xb4'),_0xb0fe('0xb4'),{'FaxAccountId':_[_0xb0fe('0xa8')](_0xd81912[_0xb0fe('0x5d')]['id'])?undefined:_0xd81912[_0xb0fe('0x5d')]['id'],'path':_['isNil'](_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0x8')])?undefined:_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0x8')],'fax':_[_0xb0fe('0xa8')](_0xd81912[_0xb0fe('0x61')]['to'][0x0])?undefined:_0xd81912[_0xb0fe('0x61')]['to'][0x0],'AttachmentId':_0xd81912[_0xb0fe('0x61')]['attachments'][0x0]['id']},client9002)['then'](function(_0x2c97a1){logger[_0xb0fe('0x23')](_0xb0fe('0xb5'),_0x2c97a1);})[_0xb0fe('0x5b')](function(_0x2e16bf){logger[_0xb0fe('0x23')](_0xb0fe('0xb5'),_0x2e16bf);});return _0x43e8fd;})[_0xb0fe('0x22')](respondWithResult(_0x3961e4,null))['catch'](handleError(_0x3961e4,null));};exports[_0xb0fe('0xb6')]=function(_0x54e5cf,_0x5c1ba3,_0x31ca0d){return db[_0xb0fe('0x56')]['find']({'where':{'id':_0x54e5cf[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x5c1ba3,null))[_0xb0fe('0x22')](function(_0x38f9dc){if(_0x38f9dc){return _0x38f9dc[_0xb0fe('0xb6')](_0x54e5cf[_0xb0fe('0x61')][_0xb0fe('0xb7')],_[_0xb0fe('0x73')](_0x54e5cf[_0xb0fe('0x61')],[_0xb0fe('0xb7'),'id'])||{})[_0xb0fe('0xb0')](function(_0x563bd9){for(var _0x455aab=0x0;_0x455aab<_0x54e5cf[_0xb0fe('0x61')][_0xb0fe('0xb7')][_0xb0fe('0x4a')];_0x455aab+=0x1){socket[_0xb0fe('0xb8')]('userFaxAccount:save',{'UserId':Number(_0x54e5cf['body']['ids'][_0x455aab]),'FaxAccountId':Number(_0x54e5cf[_0xb0fe('0x5d')]['id'])});}return _0x563bd9;});}})[_0xb0fe('0x22')](respondWithResult(_0x5c1ba3,null))['catch'](handleError(_0x5c1ba3,null));};exports['removeAgents']=function(_0x5a9d3a,_0x56406c,_0x4e9290){return db[_0xb0fe('0x56')][_0xb0fe('0x5f')]({'where':{'id':_0x5a9d3a[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x56406c,null))[_0xb0fe('0x22')](function(_0x1b4ac7){if(_0x1b4ac7){return _0x1b4ac7[_0xb0fe('0xb9')](_0x5a9d3a[_0xb0fe('0x47')][_0xb0fe('0xb7')])[_0xb0fe('0x22')](function(){if(_[_0xb0fe('0xba')](_0x5a9d3a['query']['ids'])){for(var _0x50fba0=0x0;_0x50fba0<_0x5a9d3a[_0xb0fe('0x47')][_0xb0fe('0xb7')][_0xb0fe('0x4a')];_0x50fba0+=0x1){socket[_0xb0fe('0xb8')](_0xb0fe('0xbb'),{'UserId':Number(_0x5a9d3a[_0xb0fe('0x47')]['ids'][_0x50fba0]),'FaxAccountId':Number(_0x5a9d3a[_0xb0fe('0x5d')]['id'])});}}else{socket[_0xb0fe('0xb8')]('userFaxAccount:remove',{'UserId':Number(_0x5a9d3a[_0xb0fe('0x47')][_0xb0fe('0xb7')]),'FaxAccountId':Number(_0x5a9d3a[_0xb0fe('0x5d')]['id'])});}});}})[_0xb0fe('0x22')](respondWithStatusCode(_0x56406c,null))[_0xb0fe('0x5b')](handleError(_0x56406c,null));};exports[_0xb0fe('0xbc')]=function(_0x2230a8,_0x4299ed,_0x2a18be){var _0x1f7500={};var _0x22d737={};var _0x375b31;var _0x565cb6;return db[_0xb0fe('0x56')][_0xb0fe('0x6a')]({'where':{'id':_0x2230a8[_0xb0fe('0x5d')]['id']}})['then'](handleEntityNotFound(_0x4299ed,null))[_0xb0fe('0x22')](function(_0x29555d){if(_0x29555d){_0x375b31=_0x29555d;_0x22d737['model']=_[_0xb0fe('0x6b')](db[_0xb0fe('0xbd')][_0xb0fe('0x40')]);_0x22d737[_0xb0fe('0x47')]=_[_0xb0fe('0x6b')](_0x2230a8['query']);_0x22d737[_0xb0fe('0x45')]=_['intersection'](_0x22d737[_0xb0fe('0x44')],_0x22d737[_0xb0fe('0x47')]);_0x1f7500['attributes']=_[_0xb0fe('0x46')](_0x22d737[_0xb0fe('0x44')],qs[_0xb0fe('0x48')](_0x2230a8['query'][_0xb0fe('0x48')]));_0x1f7500['attributes']=_0x1f7500[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x1f7500[_0xb0fe('0x49')]:_0x22d737[_0xb0fe('0x44')];_0x1f7500[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x1f7500[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x2230a8[_0xb0fe('0x47')],_0x22d737[_0xb0fe('0x45')]));if(_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x1f7500[_0xb0fe('0x50')]=_['merge'](_0x1f7500[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x1f7500[_0xb0fe('0x49')],function(_0x29af46){var _0x2b0c61={};_0x2b0c61[_0x29af46]={'$like':'%'+_0x2230a8['query'][_0xb0fe('0x54')]+'%'};return _0x2b0c61;})});}_0x1f7500=_[_0xb0fe('0x52')]({},_0x1f7500,_0x2230a8[_0xb0fe('0x55')]);return _0x375b31[_0xb0fe('0xbc')](_0x1f7500);}})['then'](function(_0x50a70c){if(_0x50a70c){_0x565cb6=_0x50a70c[_0xb0fe('0x4a')];if(!_0x2230a8['query'][_0xb0fe('0x4b')]('nolimit')){_0x1f7500[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x4d')]);_0x1f7500['offset']=qs['offset'](_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}return _0x375b31['getAgents'](_0x1f7500);}})[_0xb0fe('0x22')](function(_0x3d9d6a){if(_0x3d9d6a){return _0x3d9d6a?{'count':_0x565cb6,'rows':_0x3d9d6a}:null;}})['then'](respondWithResult(_0x4299ed,null))[_0xb0fe('0x5b')](handleError(_0x4299ed,null));};
\ No newline at end of file
+var _0x027c=['message','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','get','UserProfileResource','stack','name','send','index','Pause','mandatoryDispositionPause','map','FaxAccount','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','options','includeAll','include','rows','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','FaxAccounts','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','FaxAccountId','Disposition','getDispositions','merge','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addInteraction','FaxInteraction','omit','getInteractions','findOne','CmContact','Contact','User','Owner','internal','Tag','color','tag','addApplications','sequelize','transaction','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','context','from-voip-provider','exten','localstationid','app','type','system','description','appdata','push','Answer','Set','ecm','gateway','faxdetect','headerinfo','maxrate','minrate','modem','FAXOPT(','Wait','ReceiveFax','addAccountApplications','VoiceExtension','tech','createdAt','updatedAt','TrunkId','ListId','findById','FaxMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','CmList','List','DESC','attachments','root','server/files/attachments','basename','CheckAfterSend','isNil','from','\x22%s\x22\x20<%s>','fax','Contacts','Send\x20Fax\x20failed','out','filename','dataValues','Messages','SendFax','info','SendFaxRpc,\x20%s','addAgents','spread','userFaxAccount:save','removeAgents','isArray','emit','userFaxAccount:remove','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./faxAccount.socket','register','client','request','then','FaxAccount,\x20%s,\x20%s','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','error','code'];(function(_0x22d7ae,_0x588bec){var _0x4155da=function(_0x3a3787){while(--_0x3a3787){_0x22d7ae['push'](_0x22d7ae['shift']());}};_0x4155da(++_0x588bec);}(_0x027c,0x9d));var _0xc027=function(_0x440d35,_0x343f7a){_0x440d35=_0x440d35-0x0;var _0x355cd6=_0x027c[_0x440d35];return _0x355cd6;};'use strict';var emlformat=require(_0xc027('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc027('0x1'));var jsonpatch=require(_0xc027('0x2'));var rp=require(_0xc027('0x3'));var moment=require(_0xc027('0x4'));var BPromise=require(_0xc027('0x5'));var Mustache=require(_0xc027('0x6'));var util=require(_0xc027('0x7'));var path=require(_0xc027('0x8'));var sox=require(_0xc027('0x9'));var csv=require(_0xc027('0xa'));var ejs=require(_0xc027('0xb'));var fs=require('fs');var fs_extra=require(_0xc027('0xc'));var _=require(_0xc027('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xc027('0xa'));var querystring=require(_0xc027('0xe'));var Papa=require(_0xc027('0xf'));var Redis=require(_0xc027('0x10'));var authService=require(_0xc027('0x11'));var qs=require(_0xc027('0x12'));var as=require(_0xc027('0x13'));var hardwareService=require(_0xc027('0x14'));var logger=require(_0xc027('0x15'))(_0xc027('0x16'));var utils=require(_0xc027('0x17'));var config=require(_0xc027('0x18'));var licenseUtil=require(_0xc027('0x19'));var db=require('../../mysqldb')['db'];config[_0xc027('0x1a')]=_[_0xc027('0x1b')](config[_0xc027('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0xc027('0x1c'))(new Redis(config[_0xc027('0x1a')]));require(_0xc027('0x1d'))[_0xc027('0x1e')](socket);var jayson=require('jayson/promise');var client=jayson[_0xc027('0x1f')]['http']({'port':0x232c});var client9002=jayson[_0xc027('0x1f')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1e1b98,_0x1c8fcb,_0x316ff1,_0x3a001e){return new BPromise(function(_0x220214,_0x1050cf){var _0x32d2c4=_0x3a001e||client;return _0x32d2c4[_0xc027('0x20')](_0x1e1b98,_0x316ff1)[_0xc027('0x21')](function(_0xcc12ac){logger['info'](_0xc027('0x22'),_0x1c8fcb,_0xc027('0x23'));logger['debug'](_0xc027('0x24'),_0x1c8fcb,_0xc027('0x23'),JSON['stringify'](_0xcc12ac));if(_0xcc12ac[_0xc027('0x25')]){if(_0xcc12ac[_0xc027('0x25')][_0xc027('0x26')]===0x1f4){logger[_0xc027('0x25')](_0xc027('0x22'),_0x1c8fcb,_0xcc12ac[_0xc027('0x25')]['message']);return _0x1050cf(_0xcc12ac[_0xc027('0x25')]['message']);}logger[_0xc027('0x25')](_0xc027('0x22'),_0x1c8fcb,_0xcc12ac[_0xc027('0x25')]['message']);return _0x220214(_0xcc12ac[_0xc027('0x25')]['message']);}else{logger['info'](_0xc027('0x22'),_0x1c8fcb,_0xc027('0x23'));_0x220214(_0xcc12ac['result'][_0xc027('0x27')]);}})[_0xc027('0x28')](function(_0x1a483b){logger[_0xc027('0x25')](_0xc027('0x22'),_0x1c8fcb,_0x1a483b);_0x1050cf(_0x1a483b);});});}function respondWithStatusCode(_0x39f479,_0x4912e6){_0x4912e6=_0x4912e6||0xcc;return function(_0x16e750){if(_0x16e750){return _0x39f479[_0xc027('0x29')](_0x4912e6);}return _0x39f479[_0xc027('0x2a')](_0x4912e6)[_0xc027('0x2b')]();};}function respondWithResult(_0x3dd21a,_0x2277cf){_0x2277cf=_0x2277cf||0xc8;return function(_0x52feaa){if(_0x52feaa){return _0x3dd21a[_0xc027('0x2a')](_0x2277cf)[_0xc027('0x2c')](_0x52feaa);}};}function respondWithFilteredResult(_0x22c28c,_0x37c143){return function(_0x89d553){if(_0x89d553){var _0x58cc7c=typeof _0x37c143[_0xc027('0x2d')]===_0xc027('0x2e')&&typeof _0x37c143[_0xc027('0x2f')]===_0xc027('0x2e');var _0x428b27=_0x89d553[_0xc027('0x30')];var _0x542ff1=_0x58cc7c?0x0:_0x37c143[_0xc027('0x2d')];var _0xdf0e61=_0x58cc7c?_0x89d553[_0xc027('0x30')]:_0x37c143[_0xc027('0x2d')]+_0x37c143['limit'];var _0x41677b;if(_0xdf0e61>=_0x428b27){_0xdf0e61=_0x428b27;_0x41677b=0xc8;}else{_0x41677b=0xce;}_0x22c28c[_0xc027('0x2a')](_0x41677b);return _0x22c28c['set'](_0xc027('0x31'),_0x542ff1+'-'+_0xdf0e61+'/'+_0x428b27)['json'](_0x89d553);}return null;};}function patchUpdates(_0x4b403f){return function(_0x394c98){try{jsonpatch[_0xc027('0x32')](_0x394c98,_0x4b403f,!![]);}catch(_0x3d96a4){return BPromise[_0xc027('0x33')](_0x3d96a4);}return _0x394c98[_0xc027('0x34')]();};}function saveUpdates(_0xc80f88,_0x1ff84a){return function(_0x1847b8){if(_0x1847b8){return _0x1847b8[_0xc027('0x35')](_0xc80f88)['then'](function(_0x5c6610){return _0x5c6610;});}return null;};}function removeEntity(_0x3aa0be,_0x49cb5b){return function(_0x2595f3){if(_0x2595f3){return _0x2595f3[_0xc027('0x36')]()['then'](function(){var _0x39f33b=_0x2595f3[_0xc027('0x37')]({'plain':!![]});var _0x4a59ac='FaxAccounts';return db[_0xc027('0x38')][_0xc027('0x36')]({'where':{'type':_0x4a59ac,'resourceId':_0x39f33b['id']}})[_0xc027('0x21')](function(){return _0x2595f3;});})[_0xc027('0x21')](function(){_0x3aa0be['status'](0xcc)[_0xc027('0x2b')]();});}};}function handleEntityNotFound(_0x275bf4,_0x257c2e){return function(_0x43c714){if(!_0x43c714){_0x275bf4[_0xc027('0x29')](0x194);}return _0x43c714;};}function handleError(_0x49f500,_0x56a1c0){_0x56a1c0=_0x56a1c0||0x1f4;return function(_0xa6f3c2){logger[_0xc027('0x25')](_0xa6f3c2[_0xc027('0x39')]);if(_0xa6f3c2[_0xc027('0x3a')]){delete _0xa6f3c2[_0xc027('0x3a')];}_0x49f500[_0xc027('0x2a')](_0x56a1c0)[_0xc027('0x3b')](_0xa6f3c2);};}exports[_0xc027('0x3c')]=function(_0x3a791f,_0x4f794a){var _0x283711={'include':[{'model':db[_0xc027('0x3d')],'as':_0xc027('0x3e')}]},_0xac18c={},_0x357b3e={'count':0x0,'rows':[]};var _0x398ecf=_[_0xc027('0x3f')](db[_0xc027('0x40')][_0xc027('0x41')],function(_0x7aefed){return{'name':_0x7aefed[_0xc027('0x42')],'type':_0x7aefed['type'][_0xc027('0x43')]};});_0xac18c[_0xc027('0x44')]=_[_0xc027('0x3f')](_0x398ecf,_0xc027('0x3a'));_0xac18c['query']=_[_0xc027('0x45')](_0x3a791f[_0xc027('0x46')]);_0xac18c[_0xc027('0x47')]=_[_0xc027('0x48')](_0xac18c[_0xc027('0x44')],_0xac18c[_0xc027('0x46')]);_0x283711[_0xc027('0x49')]=_[_0xc027('0x48')](_0xac18c[_0xc027('0x44')],qs['fields'](_0x3a791f[_0xc027('0x46')][_0xc027('0x4a')]));_0x283711['attributes']=_0x283711[_0xc027('0x49')][_0xc027('0x4b')]?_0x283711[_0xc027('0x49')]:_0xac18c[_0xc027('0x44')];if(!_0x3a791f[_0xc027('0x46')][_0xc027('0x4c')](_0xc027('0x4d'))){_0x283711[_0xc027('0x2f')]=qs['limit'](_0x3a791f[_0xc027('0x46')][_0xc027('0x2f')]);_0x283711[_0xc027('0x2d')]=qs[_0xc027('0x2d')](_0x3a791f[_0xc027('0x46')]['offset']);}_0x283711[_0xc027('0x4e')]=qs[_0xc027('0x4f')](_0x3a791f[_0xc027('0x46')]['sort']);_0x283711['where']=qs[_0xc027('0x47')](_[_0xc027('0x50')](_0x3a791f[_0xc027('0x46')],_0xac18c[_0xc027('0x47')]),_0x398ecf);if(_0x3a791f['query'][_0xc027('0x51')]){_0x283711[_0xc027('0x52')]=_['merge'](_0x283711['where'],{'$or':_[_0xc027('0x3f')](_0x398ecf,function(_0x16a2a1){if(_0x16a2a1['type']!=='VIRTUAL'){var _0x3f3173={};_0x3f3173[_0x16a2a1[_0xc027('0x3a')]]={'$like':'%'+_0x3a791f['query'][_0xc027('0x51')]+'%'};return _0x3f3173;}})});}_0x283711=_['merge']({},_0x283711,_0x3a791f[_0xc027('0x53')]);var _0x558c99={'where':_0x283711[_0xc027('0x52')]};return db[_0xc027('0x40')]['count'](_0x558c99)[_0xc027('0x21')](function(_0x24e21a){_0x357b3e[_0xc027('0x30')]=_0x24e21a;if(_0x3a791f[_0xc027('0x46')][_0xc027('0x54')]){_0x283711[_0xc027('0x55')]=[{'all':!![]}];}return db[_0xc027('0x40')]['findAll'](_0x283711);})['then'](function(_0x4a5e97){_0x357b3e[_0xc027('0x56')]=_0x4a5e97;return _0x357b3e;})[_0xc027('0x21')](respondWithFilteredResult(_0x4f794a,_0x283711))[_0xc027('0x28')](handleError(_0x4f794a,null));};exports[_0xc027('0x57')]=function(_0x637239,_0x1960b0){var _0x4be2b3={'raw':![],'where':{'id':_0x637239[_0xc027('0x58')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x5c918a={};_0x5c918a[_0xc027('0x44')]=_[_0xc027('0x45')](db[_0xc027('0x40')][_0xc027('0x41')]);_0x5c918a[_0xc027('0x46')]=_[_0xc027('0x45')](_0x637239[_0xc027('0x46')]);_0x5c918a[_0xc027('0x47')]=_[_0xc027('0x48')](_0x5c918a[_0xc027('0x44')],_0x5c918a[_0xc027('0x46')]);_0x4be2b3[_0xc027('0x49')]=_['intersection'](_0x5c918a[_0xc027('0x44')],qs['fields'](_0x637239['query'][_0xc027('0x4a')]));_0x4be2b3[_0xc027('0x49')]=_0x4be2b3[_0xc027('0x49')][_0xc027('0x4b')]?_0x4be2b3[_0xc027('0x49')]:_0x5c918a[_0xc027('0x44')];if(_0x637239[_0xc027('0x46')][_0xc027('0x54')]){_0x4be2b3[_0xc027('0x55')]=[{'all':!![]}];}_0x4be2b3=_['merge']({},_0x4be2b3,_0x637239[_0xc027('0x53')]);return db[_0xc027('0x40')][_0xc027('0x59')](_0x4be2b3)[_0xc027('0x21')](handleEntityNotFound(_0x1960b0,null))[_0xc027('0x21')](respondWithResult(_0x1960b0,null))['catch'](handleError(_0x1960b0,null));};exports[_0xc027('0x5a')]=function(_0x1bbc3f,_0x346fcb){return db[_0xc027('0x40')][_0xc027('0x5a')](_0x1bbc3f[_0xc027('0x5b')],{})['then'](function(_0x1231a2){var _0xe987bb=_0x1bbc3f['user'][_0xc027('0x37')]({'plain':!![]});if(!_0xe987bb)throw new Error(_0xc027('0x5c'));if(_0xe987bb[_0xc027('0x5d')]===_0xc027('0x5e')){var _0x549c3d=_0x1231a2[_0xc027('0x37')]({'plain':!![]});var _0x1bf6b6=_0xc027('0x5f');return db[_0xc027('0x60')][_0xc027('0x59')]({'where':{'name':_0x1bf6b6,'userProfileId':_0xe987bb['userProfileId']},'raw':!![]})[_0xc027('0x21')](function(_0x58cc5c){if(_0x58cc5c&&_0x58cc5c[_0xc027('0x61')]===0x0){return db[_0xc027('0x38')][_0xc027('0x5a')]({'name':_0x549c3d[_0xc027('0x3a')],'resourceId':_0x549c3d['id'],'type':_0x58cc5c['name'],'sectionId':_0x58cc5c['id']},{})[_0xc027('0x21')](function(){return _0x1231a2;});}else{return _0x1231a2;}})['catch'](function(_0x596396){logger[_0xc027('0x25')](_0xc027('0x62'),_0x596396);throw _0x596396;});}return _0x1231a2;})[_0xc027('0x21')](respondWithResult(_0x346fcb,0xc9))[_0xc027('0x28')](handleError(_0x346fcb,null));};exports[_0xc027('0x35')]=function(_0x3d3afd,_0x1638c4){if(_0x3d3afd[_0xc027('0x5b')]['id']){delete _0x3d3afd[_0xc027('0x5b')]['id'];}return db[_0xc027('0x40')][_0xc027('0x59')]({'where':{'id':_0x3d3afd[_0xc027('0x58')]['id']},'include':[{'model':db[_0xc027('0x3d')],'as':_0xc027('0x3e')}]})[_0xc027('0x21')](handleEntityNotFound(_0x1638c4,null))[_0xc027('0x21')](saveUpdates(_0x3d3afd['body'],null))[_0xc027('0x21')](respondWithResult(_0x1638c4,null))['catch'](handleError(_0x1638c4,null));};exports['destroy']=function(_0x49755e,_0x2e1007){return db['FaxAccount'][_0xc027('0x59')]({'where':{'id':_0x49755e[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x2e1007,null))['then'](removeEntity(_0x2e1007,null))[_0xc027('0x28')](handleError(_0x2e1007,null));};exports[_0xc027('0x63')]=function(_0xd5d365,_0xa150af){return db['FaxAccount'][_0xc027('0x63')]()['then'](respondWithResult(_0xa150af,null))[_0xc027('0x28')](handleError(_0xa150af,null));};exports['addDisposition']=function(_0x15622c,_0xa6af6,_0x4ba7fb){if(_0x15622c[_0xc027('0x5b')]['id']){delete _0x15622c['body']['id'];}return db[_0xc027('0x40')]['find']({'where':{'id':_0x15622c['params']['id']}})[_0xc027('0x21')](handleEntityNotFound(_0xa6af6,null))['then'](function(_0x1dd9a6){if(_0x1dd9a6){_0x15622c[_0xc027('0x5b')][_0xc027('0x64')]=_0x1dd9a6['id'];return db[_0xc027('0x65')][_0xc027('0x5a')](_0x15622c[_0xc027('0x5b')]);}})[_0xc027('0x21')](respondWithResult(_0xa6af6,null))['catch'](handleError(_0xa6af6,null));};exports[_0xc027('0x66')]=function(_0x871829,_0x440da2,_0x18c109){var _0x32e878={'raw':![],'where':{}};var _0x2a4135={};var _0x117b94={'count':0x0,'rows':[]};return db[_0xc027('0x40')]['findOne']({'where':{'id':_0x871829[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x440da2,null))[_0xc027('0x21')](function(_0x4c80d3){if(_0x4c80d3){_0x2a4135[_0xc027('0x44')]=_[_0xc027('0x45')](db[_0xc027('0x65')][_0xc027('0x41')]);_0x2a4135[_0xc027('0x46')]=_[_0xc027('0x45')](_0x871829[_0xc027('0x46')]);_0x2a4135[_0xc027('0x47')]=_[_0xc027('0x48')](_0x2a4135['model'],_0x2a4135[_0xc027('0x46')]);_0x32e878[_0xc027('0x49')]=_['intersection'](_0x2a4135[_0xc027('0x44')],qs[_0xc027('0x4a')](_0x871829[_0xc027('0x46')]['fields']));_0x32e878[_0xc027('0x49')]=_0x32e878[_0xc027('0x49')][_0xc027('0x4b')]?_0x32e878[_0xc027('0x49')]:_0x2a4135['model'];if(!_0x871829['query']['hasOwnProperty'](_0xc027('0x4d'))){_0x32e878[_0xc027('0x2f')]=qs[_0xc027('0x2f')](_0x871829['query'][_0xc027('0x2f')]);_0x32e878[_0xc027('0x2d')]=qs[_0xc027('0x2d')](_0x871829[_0xc027('0x46')][_0xc027('0x2d')]);}_0x32e878[_0xc027('0x4e')]=qs[_0xc027('0x4f')](_0x871829['query'][_0xc027('0x4f')]);_0x32e878[_0xc027('0x52')]=qs[_0xc027('0x47')](_[_0xc027('0x50')](_0x871829[_0xc027('0x46')],_0x2a4135[_0xc027('0x47')]));_0x32e878[_0xc027('0x52')]['FaxAccountId']=_0x4c80d3['id'];if(_0x871829[_0xc027('0x46')][_0xc027('0x51')]){_0x32e878[_0xc027('0x52')]=_[_0xc027('0x67')](_0x32e878[_0xc027('0x52')],{'$or':_['map'](_0x32e878[_0xc027('0x49')],function(_0xdb4db0){var _0x1e18f6={};_0x1e18f6[_0xdb4db0]={'$like':'%'+_0x871829[_0xc027('0x46')][_0xc027('0x51')]+'%'};return _0x1e18f6;})});}_0x32e878=_[_0xc027('0x67')]({},_0x32e878,_0x871829[_0xc027('0x53')]);return db[_0xc027('0x65')][_0xc027('0x30')]({'where':_0x32e878[_0xc027('0x52')]})[_0xc027('0x21')](function(_0x452ae6){_0x117b94[_0xc027('0x30')]=_0x452ae6;if(_0x871829[_0xc027('0x46')][_0xc027('0x54')]){_0x32e878[_0xc027('0x55')]=[{'all':!![]}];}return db['Disposition'][_0xc027('0x68')](_0x32e878);})[_0xc027('0x21')](function(_0x1a42f6){_0x117b94[_0xc027('0x56')]=_0x1a42f6;return _0x117b94;});}})[_0xc027('0x21')](respondWithFilteredResult(_0x440da2,_0x32e878))[_0xc027('0x28')](handleError(_0x440da2,null));};exports[_0xc027('0x69')]=function(_0x4dc9ba,_0x2e80a0,_0xf0d43){return db['FaxAccount'][_0xc027('0x59')]({'where':{'id':_0x4dc9ba[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x2e80a0,null))[_0xc027('0x21')](function(_0x405b99){if(_0x405b99){return _0x405b99[_0xc027('0x69')](_0x4dc9ba[_0xc027('0x46')][_0xc027('0x6a')]);}})['then'](respondWithStatusCode(_0x2e80a0,null))[_0xc027('0x28')](handleError(_0x2e80a0,null));};exports[_0xc027('0x6b')]=function(_0x14e469,_0xd3abe8,_0xff0049){if(_0x14e469[_0xc027('0x5b')]['id']){delete _0x14e469[_0xc027('0x5b')]['id'];}return db[_0xc027('0x40')][_0xc027('0x59')]({'where':{'id':_0x14e469['params']['id']}})[_0xc027('0x21')](handleEntityNotFound(_0xd3abe8,null))['then'](function(_0x90d03c){if(_0x90d03c){_0x14e469[_0xc027('0x5b')][_0xc027('0x64')]=_0x90d03c['id'];return db[_0xc027('0x6c')]['create'](_0x14e469[_0xc027('0x5b')]);}})['then'](respondWithResult(_0xd3abe8,null))[_0xc027('0x28')](handleError(_0xd3abe8,null));};exports[_0xc027('0x6d')]=function(_0x15244e,_0x4c20ed,_0x1d5ba6){var _0xedf792={'raw':![],'where':{}};var _0x3f01e3={};var _0x22a3f3={'count':0x0,'rows':[]};return db[_0xc027('0x40')]['findOne']({'where':{'id':_0x15244e[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x4c20ed,null))['then'](function(_0x4fa2b4){if(_0x4fa2b4){_0x3f01e3[_0xc027('0x44')]=_[_0xc027('0x45')](db[_0xc027('0x6c')]['rawAttributes']);_0x3f01e3[_0xc027('0x46')]=_[_0xc027('0x45')](_0x15244e['query']);_0x3f01e3['filters']=_['intersection'](_0x3f01e3['model'],_0x3f01e3[_0xc027('0x46')]);_0xedf792[_0xc027('0x49')]=_[_0xc027('0x48')](_0x3f01e3[_0xc027('0x44')],qs[_0xc027('0x4a')](_0x15244e[_0xc027('0x46')]['fields']));_0xedf792['attributes']=_0xedf792[_0xc027('0x49')][_0xc027('0x4b')]?_0xedf792[_0xc027('0x49')]:_0x3f01e3[_0xc027('0x44')];if(!_0x15244e[_0xc027('0x46')][_0xc027('0x4c')]('nolimit')){_0xedf792['limit']=qs['limit'](_0x15244e[_0xc027('0x46')]['limit']);_0xedf792[_0xc027('0x2d')]=qs['offset'](_0x15244e[_0xc027('0x46')][_0xc027('0x2d')]);}_0xedf792[_0xc027('0x4e')]=qs[_0xc027('0x4f')](_0x15244e[_0xc027('0x46')][_0xc027('0x4f')]);_0xedf792[_0xc027('0x52')]=qs['filters'](_['pick'](_0x15244e[_0xc027('0x46')],_0x3f01e3['filters']));_0xedf792['where']['FaxAccountId']=_0x4fa2b4['id'];if(_0x15244e[_0xc027('0x46')][_0xc027('0x51')]){_0xedf792[_0xc027('0x52')]=_[_0xc027('0x67')](_0xedf792[_0xc027('0x52')],{'$or':_[_0xc027('0x3f')](_0xedf792[_0xc027('0x49')],function(_0x4eece2){var _0x43ebb4={};_0x43ebb4[_0x4eece2]={'$like':'%'+_0x15244e['query'][_0xc027('0x51')]+'%'};return _0x43ebb4;})});}_0xedf792=_['merge']({},_0xedf792,_0x15244e['options']);return db[_0xc027('0x6c')]['count']({'where':_0xedf792[_0xc027('0x52')]})['then'](function(_0x37ddd3){_0x22a3f3[_0xc027('0x30')]=_0x37ddd3;if(_0x15244e[_0xc027('0x46')]['includeAll']){_0xedf792['include']=[{'all':!![]}];}return db[_0xc027('0x6c')][_0xc027('0x68')](_0xedf792);})[_0xc027('0x21')](function(_0x5cf5d1){_0x22a3f3[_0xc027('0x56')]=_0x5cf5d1;return _0x22a3f3;});}})['then'](respondWithFilteredResult(_0x4c20ed,_0xedf792))[_0xc027('0x28')](handleError(_0x4c20ed,null));};exports[_0xc027('0x6e')]=function(_0x44d1a4,_0x1fb1ed,_0x4e5033){return db[_0xc027('0x40')][_0xc027('0x59')]({'where':{'id':_0x44d1a4[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x1fb1ed,null))['then'](function(_0x4ef54d){if(_0x4ef54d){return _0x4ef54d[_0xc027('0x6e')](_0x44d1a4[_0xc027('0x46')][_0xc027('0x6a')]);}})[_0xc027('0x21')](respondWithStatusCode(_0x1fb1ed,null))['catch'](handleError(_0x1fb1ed,null));};exports[_0xc027('0x6f')]=function(_0x4fd8ba,_0x5ea7db,_0x4ae513){return db[_0xc027('0x70')]['find']({'where':{'id':_0x4fd8ba[_0xc027('0x58')]['id']}})['then'](handleEntityNotFound(_0x5ea7db,null))[_0xc027('0x21')](function(_0x22240e){if(_0x22240e){return _0x22240e[_0xc027('0x6f')](_0x4fd8ba[_0xc027('0x5b')][_0xc027('0x6a')],_[_0xc027('0x71')](_0x4fd8ba[_0xc027('0x5b')],['ids','id'])||{});}})['then'](respondWithResult(_0x5ea7db,null))[_0xc027('0x28')](handleError(_0x5ea7db,null));};exports[_0xc027('0x72')]=function(_0x4f4303,_0x415c49,_0x20b673){var _0x29a38b={'raw':![],'where':{}};var _0x3a95bc={};var _0x425f7e={'count':0x0,'rows':[]};return db[_0xc027('0x40')][_0xc027('0x73')]({'where':{'id':_0x4f4303['params']['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x415c49,null))['then'](function(_0x14cde1){if(_0x14cde1){_0x3a95bc['model']=_['keys'](db[_0xc027('0x70')][_0xc027('0x41')]);_0x3a95bc[_0xc027('0x46')]=_[_0xc027('0x45')](_0x4f4303[_0xc027('0x46')]);_0x3a95bc[_0xc027('0x47')]=_[_0xc027('0x48')](_0x3a95bc[_0xc027('0x44')],_0x3a95bc[_0xc027('0x46')]);_0x29a38b['attributes']=_[_0xc027('0x48')](_0x3a95bc[_0xc027('0x44')],qs[_0xc027('0x4a')](_0x4f4303['query'][_0xc027('0x4a')]));_0x29a38b[_0xc027('0x49')]=_0x29a38b[_0xc027('0x49')][_0xc027('0x4b')]?_0x29a38b[_0xc027('0x49')]:_0x3a95bc[_0xc027('0x44')];if(!_0x4f4303[_0xc027('0x46')]['hasOwnProperty'](_0xc027('0x4d'))){_0x29a38b[_0xc027('0x2f')]=qs['limit'](_0x4f4303[_0xc027('0x46')][_0xc027('0x2f')]);_0x29a38b[_0xc027('0x2d')]=qs[_0xc027('0x2d')](_0x4f4303[_0xc027('0x46')][_0xc027('0x2d')]);}_0x29a38b[_0xc027('0x4e')]=qs[_0xc027('0x4f')](_0x4f4303[_0xc027('0x46')][_0xc027('0x4f')]);_0x29a38b[_0xc027('0x52')]=qs[_0xc027('0x47')](_[_0xc027('0x50')](_0x4f4303[_0xc027('0x46')],_0x3a95bc[_0xc027('0x47')]));_0x29a38b[_0xc027('0x52')][_0xc027('0x64')]=_0x14cde1['id'];if(_0x4f4303['query'][_0xc027('0x51')]){_0x29a38b[_0xc027('0x52')]=_[_0xc027('0x67')](_0x29a38b[_0xc027('0x52')],{'$or':_['map'](_0x29a38b[_0xc027('0x49')],function(_0x4a9624){var _0x206b13={};_0x206b13[_0x4a9624]={'$like':'%'+_0x4f4303[_0xc027('0x46')][_0xc027('0x51')]+'%'};return _0x206b13;})});}_0x29a38b=_[_0xc027('0x67')]({},_0x29a38b,_0x4f4303[_0xc027('0x53')]);return db[_0xc027('0x70')][_0xc027('0x30')]({'where':_0x29a38b[_0xc027('0x52')]})[_0xc027('0x21')](function(_0x1a6398){_0x425f7e[_0xc027('0x30')]=_0x1a6398;if(_0x4f4303[_0xc027('0x46')][_0xc027('0x54')]){_0x29a38b['include']=[{'model':db[_0xc027('0x74')],'as':_0xc027('0x75'),'required':![]},{'model':db[_0xc027('0x76')],'as':_0xc027('0x77'),'attributes':[_0xc027('0x3a'),'fullname',_0xc027('0x78')],'required':![]},{'model':db[_0xc027('0x79')],'as':'Tags','attributes':['id',_0xc027('0x3a'),_0xc027('0x7a')],'where':_0x4f4303[_0xc027('0x46')][_0xc027('0x7b')]?{'id':_0x4f4303[_0xc027('0x46')][_0xc027('0x7b')]}:undefined,'required':_0x4f4303[_0xc027('0x46')][_0xc027('0x7b')]?!![]:![]}];}return db[_0xc027('0x70')][_0xc027('0x68')](_0x29a38b);})['then'](function(_0xa1a186){_0x425f7e[_0xc027('0x56')]=_0xa1a186;return _0x425f7e;});}})[_0xc027('0x21')](respondWithFilteredResult(_0x415c49,_0x29a38b))['catch'](handleError(_0x415c49,null));};exports[_0xc027('0x7c')]=function(_0x30b0d0,_0x3eccdf,_0x415e73){return db['FaxAccount'][_0xc027('0x73')]({'where':{'id':_0x30b0d0[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x3eccdf,null))[_0xc027('0x21')](function(_0x2b724d){if(_0x2b724d){return db[_0xc027('0x7d')][_0xc027('0x7e')](function(_0x56b629){return db['FaxApplication'][_0xc027('0x36')]({'where':{'FaxAccountId':_0x30b0d0[_0xc027('0x58')]['id']},'transaction':_0x56b629})[_0xc027('0x21')](function(_0xbd1b34){var _0x4d843c=_[_0xc027('0x3f')](_0x30b0d0[_0xc027('0x5b')],function(_0x12d754){_0x12d754[_0xc027('0x64')]=_0x30b0d0['params']['id'];return _0x12d754;});return db[_0xc027('0x7f')][_0xc027('0x80')](_0x4d843c,{'transaction':_0x56b629});});})[_0xc027('0x21')](function(){return db[_0xc027('0x7f')][_0xc027('0x81')]({'where':{'FaxAccountId':_0x30b0d0[_0xc027('0x58')]['id']},'order':_0xc027('0x82')});});}})['then'](respondWithResult(_0x3eccdf,null))[_0xc027('0x28')](handleError(_0x3eccdf,null));};exports['getApplications']=function(_0x4c3743,_0x2b3fe6,_0x47ea2d){var _0xbd9d76={};var _0x755e93={};var _0x120e8c;var _0x45496a;return db[_0xc027('0x40')]['findOne']({'where':{'id':_0x4c3743[_0xc027('0x58')]['id']}})['then'](handleEntityNotFound(_0x2b3fe6,null))[_0xc027('0x21')](function(_0x429e76){if(_0x429e76){_0x120e8c=_0x429e76;_0x755e93[_0xc027('0x44')]=_[_0xc027('0x45')](db[_0xc027('0x7f')]['rawAttributes']);_0x755e93[_0xc027('0x46')]=_[_0xc027('0x45')](_0x4c3743[_0xc027('0x46')]);_0x755e93[_0xc027('0x47')]=_[_0xc027('0x48')](_0x755e93[_0xc027('0x44')],_0x755e93[_0xc027('0x46')]);_0xbd9d76['attributes']=_[_0xc027('0x48')](_0x755e93[_0xc027('0x44')],qs[_0xc027('0x4a')](_0x4c3743[_0xc027('0x46')]['fields']));_0xbd9d76['attributes']=_0xbd9d76[_0xc027('0x49')][_0xc027('0x4b')]?_0xbd9d76['attributes']:_0x755e93[_0xc027('0x44')];_0xbd9d76[_0xc027('0x4e')]=qs[_0xc027('0x4f')](_0x4c3743[_0xc027('0x46')][_0xc027('0x4f')]);_0xbd9d76['where']=qs['filters'](_[_0xc027('0x50')](_0x4c3743[_0xc027('0x46')],_0x755e93['filters']));if(_0x4c3743[_0xc027('0x46')][_0xc027('0x51')]){_0xbd9d76[_0xc027('0x52')]=_[_0xc027('0x67')](_0xbd9d76[_0xc027('0x52')],{'$or':_[_0xc027('0x3f')](_0xbd9d76['attributes'],function(_0x1f65cc){var _0x339dcc={};_0x339dcc[_0x1f65cc]={'$like':'%'+_0x4c3743[_0xc027('0x46')]['filter']+'%'};return _0x339dcc;})});}_0xbd9d76=_[_0xc027('0x67')]({},_0xbd9d76,_0x4c3743[_0xc027('0x53')]);return _0x120e8c[_0xc027('0x83')](_0xbd9d76);}})['then'](function(_0x249533){if(_0x249533){_0x45496a=_0x249533['length'];if(!_0x4c3743[_0xc027('0x46')][_0xc027('0x4c')]('nolimit')){_0xbd9d76['limit']=qs[_0xc027('0x2f')](_0x4c3743[_0xc027('0x46')][_0xc027('0x2f')]);_0xbd9d76[_0xc027('0x2d')]=qs[_0xc027('0x2d')](_0x4c3743[_0xc027('0x46')][_0xc027('0x2d')]);}return _0x120e8c['getApplications'](_0xbd9d76);}})[_0xc027('0x21')](function(_0x129c73){if(_0x129c73){return _0x129c73?{'count':_0x45496a,'rows':_0x129c73}:null;}})[_0xc027('0x21')](respondWithResult(_0x2b3fe6,null))[_0xc027('0x28')](handleError(_0x2b3fe6,null));};function Extension(_0x108d56,_0x2f3602,_0x10d9e8,_0x3a183e){this[_0xc027('0x84')]=_0xc027('0x85');this[_0xc027('0x86')]=_0x108d56[_0xc027('0x87')];this[_0xc027('0x88')]=_0x3a183e;this[_0xc027('0x89')]=_0xc027('0x8a');this[_0xc027('0x8b')]='Fax\x20Extension';this['FaxAccountId']=_0x108d56['id'];this[_0xc027('0x82')]=_0x2f3602;this[_0xc027('0x8c')]=_0x10d9e8;}function createExtensionsReciveFax(_0x6ce269){var _0x1f6dac=0x1;var _0x5c2224=[];_0x5c2224[_0xc027('0x8d')](new Extension(_0x6ce269,_0x1f6dac,'',_0xc027('0x8e')));_0x1f6dac+=0x1;_0x5c2224[_0xc027('0x8d')](new Extension(_0x6ce269,_0x1f6dac,'CDR(type)=inbound-fax',_0xc027('0x8f')));_0x1f6dac+=0x1;for(var _0x286f80 in _0x6ce269){if(_0x6ce269[_0xc027('0x4c')](_0x286f80)&&(_0x286f80===_0xc027('0x90')||_0x286f80===_0xc027('0x87')||_0x286f80===_0xc027('0x91')||_0x286f80===_0xc027('0x92')||_0x286f80===_0xc027('0x93')||_0x286f80===_0xc027('0x94')||_0x286f80===_0xc027('0x95')||_0x286f80===_0xc027('0x96')||_0x286f80==='t38timeout')){_0x5c2224[_0xc027('0x8d')](new Extension(_0x6ce269,_0x1f6dac,_0xc027('0x97')+_0x286f80+')='+_0x6ce269[_0x286f80],_0xc027('0x8f')));_0x1f6dac+=0x1;}}_0x5c2224[_0xc027('0x8d')](new Extension(_0x6ce269,_0x1f6dac,'6',_0xc027('0x98')));_0x1f6dac+=0x1;_0x5c2224[_0xc027('0x8d')](new Extension(_0x6ce269,_0x1f6dac,'/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d',_0xc027('0x99')));_0x1f6dac=0x0;return _0x5c2224;}exports[_0xc027('0x9a')]=function(_0x333f5f,_0x43441f,_0x5c4883){var _0x389f36;return db[_0xc027('0x7d')][_0xc027('0x7e')](function(_0x2eaee0){return db[_0xc027('0x40')][_0xc027('0x5a')](_0x333f5f[_0xc027('0x5b')],{'transaction':_0x2eaee0})['then'](function(_0x489201){_0x389f36=_0x489201['get']({'plain':!![]});return db[_0xc027('0x9b')]['bulkCreate'](createExtensionsReciveFax(_0x389f36),{'transaction':_0x2eaee0});});})['then'](function(){return _0x389f36;})[_0xc027('0x21')](respondWithResult(_0x43441f,null))[_0xc027('0x28')](handleError(_0x43441f,null));};exports['updateAccountApplications']=function(_0x58a28e,_0x5da0db,_0x3667d6){var _0xa33423;return db[_0xc027('0x7d')][_0xc027('0x7e')](function(_0x457e38){return db[_0xc027('0x40')][_0xc027('0x35')](_0x58a28e[_0xc027('0x5b')],{'where':{'id':_0x58a28e['body']['id']},'transaction':_0x457e38})[_0xc027('0x21')](function(_0xbf0b1e){return db[_0xc027('0x9b')][_0xc027('0x36')]({'where':{'FaxAccountId':_0x58a28e[_0xc027('0x5b')]['id']},'transaction':_0x457e38})['then'](function(_0x152c54){return db[_0xc027('0x9b')][_0xc027('0x80')](createExtensionsReciveFax(_[_0xc027('0x71')](_0x58a28e[_0xc027('0x5b')],[_0xc027('0x9c'),_0xc027('0x43'),_0xc027('0x9d'),_0xc027('0x9e'),_0xc027('0x9f'),_0xc027('0xa0')])),{'transaction':_0x457e38});});});})['then'](function(){return db[_0xc027('0x40')][_0xc027('0xa1')](_0x58a28e[_0xc027('0x5b')]['id']);})[_0xc027('0x21')](respondWithResult(_0x5da0db,null))['catch'](handleError(_0x5da0db,null));};exports['getMessages']=function(_0x543675,_0x5a461c,_0x3576c5){var _0x1687dc={'raw':!![],'where':{}};var _0x4aeaf9={};var _0x99f41d={'count':0x0,'rows':[]};return db[_0xc027('0x40')]['findOne']({'where':{'id':_0x543675[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x5a461c,null))[_0xc027('0x21')](function(_0x3dce1c){if(_0x3dce1c){_0x4aeaf9[_0xc027('0x44')]=_[_0xc027('0x45')](db[_0xc027('0xa2')][_0xc027('0x41')]);_0x4aeaf9[_0xc027('0x46')]=_['keys'](_0x543675[_0xc027('0x46')]);_0x4aeaf9[_0xc027('0x47')]=_[_0xc027('0x48')](_0x4aeaf9[_0xc027('0x44')],_0x4aeaf9[_0xc027('0x46')]);_0x1687dc[_0xc027('0x49')]=_[_0xc027('0x48')](_0x4aeaf9['model'],qs[_0xc027('0x4a')](_0x543675[_0xc027('0x46')]['fields']));_0x1687dc[_0xc027('0x49')]=_0x1687dc[_0xc027('0x49')][_0xc027('0x4b')]?_0x1687dc[_0xc027('0x49')]:_0x4aeaf9['model'];if(!_0x543675['query'][_0xc027('0x4c')](_0xc027('0x4d'))){_0x1687dc['limit']=qs[_0xc027('0x2f')](_0x543675[_0xc027('0x46')][_0xc027('0x2f')]);_0x1687dc['offset']=qs[_0xc027('0x2d')](_0x543675[_0xc027('0x46')]['offset']);}_0x1687dc[_0xc027('0x4e')]=qs[_0xc027('0x4f')](_0x543675[_0xc027('0x46')][_0xc027('0x4f')]);_0x1687dc[_0xc027('0x52')]=qs[_0xc027('0x47')](_[_0xc027('0x50')](_0x543675['query'],_0x4aeaf9['filters']));_0x1687dc[_0xc027('0x52')][_0xc027('0x64')]=_0x3dce1c['id'];if(_0x543675['query'][_0xc027('0x51')]){_0x1687dc[_0xc027('0x52')]=_[_0xc027('0x67')](_0x1687dc[_0xc027('0x52')],{'$or':_[_0xc027('0x3f')](_0x1687dc[_0xc027('0x49')],function(_0x38a9a7){var _0x27a38d={};_0x27a38d[_0x38a9a7]={'$like':'%'+_0x543675[_0xc027('0x46')][_0xc027('0x51')]+'%'};return _0x27a38d;})});}if(_0x543675[_0xc027('0x46')][_0xc027('0xa3')]){var _0x35ec50=_0x543675[_0xc027('0x46')][_0xc027('0xa3')][_0xc027('0xa4')](',');var _0x156688={};_0x156688[_0x35ec50[0x0]]={'$gte':moment(_0x35ec50[0x1])[_0xc027('0xa5')](_0xc027('0xa6'))};_0x1687dc[_0xc027('0x52')]=_['merge'](_0x1687dc['where'],_0x156688);}_0x1687dc=_[_0xc027('0x67')]({},_0x1687dc,_0x543675[_0xc027('0x53')]);return db[_0xc027('0xa2')][_0xc027('0x30')]({'where':_0x1687dc['where']})[_0xc027('0x21')](function(_0x436383){_0x99f41d[_0xc027('0x30')]=_0x436383;if(_0x543675[_0xc027('0x46')]['includeAll']){_0x1687dc[_0xc027('0x55')]=[{'all':!![]}];}return db[_0xc027('0xa2')][_0xc027('0x68')](_0x1687dc);})[_0xc027('0x21')](function(_0x14e80d){_0x99f41d[_0xc027('0x56')]=_0x14e80d;return _0x99f41d;});}})[_0xc027('0x21')](respondWithFilteredResult(_0x5a461c,_0x1687dc))[_0xc027('0x28')](handleError(_0x5a461c,null));};exports[_0xc027('0x3b')]=function(_0x2db7be,_0x5c6acf,_0x27a4fb){var _0x104c5b,_0x5b07f6={},_0x29c9e8;if(_0x2db7be[_0xc027('0x5b')]['to']){_0x29c9e8=_0x2db7be[_0xc027('0x5b')]['to'][0x0];}return db[_0xc027('0x40')][_0xc027('0x59')]({'where':{'id':_0x2db7be['params']['id']},'include':[{'model':db[_0xc027('0xa7')],'as':_0xc027('0xa8'),'include':[{'model':db[_0xc027('0x74')],'as':'Contacts','where':{'fax':_0x29c9e8},'limit':0x1,'order':[[_0xc027('0x9e'),_0xc027('0xa9')]]}]}]})[_0xc027('0x21')](handleEntityNotFound(_0x5c6acf,null))['then'](function(_0x405412){_0x104c5b=_0x405412;if(_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')]&&_0x2db7be[_0xc027('0x5b')]['attachments'][_0xc027('0x4b')]){for(var _0x2c599a=0x0;_0x2c599a<_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][_0xc027('0x4b')];_0x2c599a+=0x1){_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][_0x2c599a]={'filename':_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][_0x2c599a][_0xc027('0x3a')],'id':_0x2db7be['body'][_0xc027('0xaa')][_0x2c599a]['id'],'path':path['join'](config[_0xc027('0xab')],_0xc027('0xac'),_0x2db7be['body'][_0xc027('0xaa')][_0x2c599a][_0xc027('0xad')])};}}return respondWithRpcPromise(_0xc027('0xae'),_0xc027('0xae'),{'FaxAccountId':_[_0xc027('0xaf')](_0x2db7be[_0xc027('0x58')]['id'])?undefined:_0x2db7be[_0xc027('0x58')]['id'],'path':_[_0xc027('0xaf')](_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0][_0xc027('0x8')])?undefined:_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0][_0xc027('0x8')],'fax':_[_0xc027('0xaf')](_0x2db7be[_0xc027('0x5b')]['to'][0x0])?undefined:_0x2db7be['body']['to'][0x0]},client9002);})[_0xc027('0x21')](function(){if(_0x104c5b){if(_[_0xc027('0xaf')](_0x2db7be[_0xc027('0x5b')][_0xc027('0xb0')])){_0x2db7be['body'][_0xc027('0xb0')]=util[_0xc027('0xa5')](_0xc027('0xb1'),_0x104c5b[_0xc027('0x3a')],_0x104c5b[_0xc027('0xb2')]);}if(_0x104c5b[_0xc027('0xa8')]){if(_0x104c5b[_0xc027('0xa8')][_0xc027('0xb3')][_0xc027('0x4b')]){return _0x104c5b[_0xc027('0xa8')][_0xc027('0xb3')][0x0];}else{return db[_0xc027('0x74')][_0xc027('0x5a')](_[_0xc027('0x1b')](_0x2db7be['body'],{'firstName':_0x2db7be['body']['to'][0x0],'phone':_0x2db7be[_0xc027('0x5b')]['to'][0x0],'fax':_0x2db7be[_0xc027('0x5b')]['to'][0x0],'ListId':_0x104c5b[_0xc027('0xa0')]}));}}else{throw new Error('List\x20not\x20found');}}else{throw new Error(_0xc027('0xb4'));}})[_0xc027('0x21')](function(_0x3278f9){if(_0x3278f9){return db[_0xc027('0x70')][_0xc027('0x59')]({'where':{'ContactId':_0x3278f9['id'],'closed':![],'FaxAccountId':_0x104c5b['id']}})['then'](function(_0x32e438){if(_0x32e438){return[_0x32e438,![]];}return db[_0xc027('0x70')][_0xc027('0x5a')]({'UserId':_0x2db7be[_0xc027('0x5e')]['id'],'ContactId':_0x3278f9['id'],'FaxAccountId':_0x104c5b['id'],'fax':_0x2db7be[_0xc027('0x5b')]['to'][0x0],'firstMsgDirection':_0xc027('0xb5'),'Messages':[_[_0xc027('0x67')](_0x2db7be[_0xc027('0x5b')],{'read':![],'body':_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0][_0xc027('0xb6')],'FaxAccountId':_0x104c5b['id'],'UserId':_0x2db7be['user']['id'],'ContactId':_0x3278f9['id'],'AttachmentId':_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0]['id']})]},{'include':[{'model':db[_0xc027('0xa2')],'as':'Messages'}]})[_0xc027('0x21')](function(_0xf3e562){return[_0xf3e562,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x355506,_0x341507){if(_0x341507){return _0x355506;}return db['FaxMessage']['create']({'direction':_0xc027('0xb5'),'read':![],'body':_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0][_0xc027('0xb6')],'FaxAccountId':_0x104c5b['id'],'FaxInteractionId':_0x355506['id'],'UserId':_0x2db7be[_0xc027('0x5e')]['id'],'ContactId':_0x355506['ContactId'],'AttachmentId':_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0]['id']})['then'](function(_0x5a9d5d){_0x355506[_0xc027('0xb7')][_0xc027('0xb8')]=[];_0x355506[_0xc027('0xb7')][_0xc027('0xb8')][_0xc027('0x8d')](_0x5a9d5d[_0xc027('0xb7')]);return _0x355506;});})[_0xc027('0x21')](function(_0x54c1f0){respondWithRpcPromise(_0xc027('0xb9'),_0xc027('0xb9'),{'FaxAccountId':_[_0xc027('0xaf')](_0x2db7be[_0xc027('0x58')]['id'])?undefined:_0x2db7be['params']['id'],'path':_[_0xc027('0xaf')](_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0]['path'])?undefined:_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0][_0xc027('0x8')],'fax':_[_0xc027('0xaf')](_0x2db7be[_0xc027('0x5b')]['to'][0x0])?undefined:_0x2db7be[_0xc027('0x5b')]['to'][0x0],'AttachmentId':_0x2db7be[_0xc027('0x5b')][_0xc027('0xaa')][0x0]['id']},client9002)[_0xc027('0x21')](function(_0x2f0479){logger[_0xc027('0xba')](_0xc027('0xbb'),_0x2f0479);})[_0xc027('0x28')](function(_0x2d6665){logger[_0xc027('0xba')](_0xc027('0xbb'),_0x2d6665);});return _0x54c1f0;})[_0xc027('0x21')](respondWithResult(_0x5c6acf,null))[_0xc027('0x28')](handleError(_0x5c6acf,null));};exports[_0xc027('0xbc')]=function(_0x4a2ce4,_0x3476b7,_0x235072){return db[_0xc027('0x40')][_0xc027('0x59')]({'where':{'id':_0x4a2ce4['params']['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x3476b7,null))[_0xc027('0x21')](function(_0x3ef325){if(_0x3ef325){return _0x3ef325[_0xc027('0xbc')](_0x4a2ce4[_0xc027('0x5b')][_0xc027('0x6a')],_['omit'](_0x4a2ce4[_0xc027('0x5b')],[_0xc027('0x6a'),'id'])||{})[_0xc027('0xbd')](function(_0x282a50){for(var _0x2d57ed=0x0;_0x2d57ed<_0x4a2ce4['body'][_0xc027('0x6a')][_0xc027('0x4b')];_0x2d57ed+=0x1){socket['emit'](_0xc027('0xbe'),{'UserId':Number(_0x4a2ce4[_0xc027('0x5b')][_0xc027('0x6a')][_0x2d57ed]),'FaxAccountId':Number(_0x4a2ce4['params']['id'])});}return _0x282a50;});}})[_0xc027('0x21')](respondWithResult(_0x3476b7,null))[_0xc027('0x28')](handleError(_0x3476b7,null));};exports[_0xc027('0xbf')]=function(_0x199827,_0x233eca,_0x21eb29){return db[_0xc027('0x40')][_0xc027('0x59')]({'where':{'id':_0x199827['params']['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x233eca,null))[_0xc027('0x21')](function(_0x408cd6){if(_0x408cd6){return _0x408cd6[_0xc027('0xbf')](_0x199827[_0xc027('0x46')]['ids'])[_0xc027('0x21')](function(){if(_[_0xc027('0xc0')](_0x199827[_0xc027('0x46')][_0xc027('0x6a')])){for(var _0x3d046=0x0;_0x3d046<_0x199827[_0xc027('0x46')][_0xc027('0x6a')][_0xc027('0x4b')];_0x3d046+=0x1){socket[_0xc027('0xc1')](_0xc027('0xc2'),{'UserId':Number(_0x199827[_0xc027('0x46')][_0xc027('0x6a')][_0x3d046]),'FaxAccountId':Number(_0x199827[_0xc027('0x58')]['id'])});}}else{socket[_0xc027('0xc1')]('userFaxAccount:remove',{'UserId':Number(_0x199827[_0xc027('0x46')]['ids']),'FaxAccountId':Number(_0x199827[_0xc027('0x58')]['id'])});}});}})[_0xc027('0x21')](respondWithStatusCode(_0x233eca,null))[_0xc027('0x28')](handleError(_0x233eca,null));};exports[_0xc027('0xc3')]=function(_0x9030e1,_0x1fdfcd,_0x276291){var _0x10ee9f={};var _0x2ab85f={};var _0x564271;var _0xadfcca;return db[_0xc027('0x40')][_0xc027('0x73')]({'where':{'id':_0x9030e1[_0xc027('0x58')]['id']}})[_0xc027('0x21')](handleEntityNotFound(_0x1fdfcd,null))['then'](function(_0x394550){if(_0x394550){_0x564271=_0x394550;_0x2ab85f[_0xc027('0x44')]=_['keys'](db[_0xc027('0x76')][_0xc027('0x41')]);_0x2ab85f['query']=_[_0xc027('0x45')](_0x9030e1[_0xc027('0x46')]);_0x2ab85f[_0xc027('0x47')]=_[_0xc027('0x48')](_0x2ab85f[_0xc027('0x44')],_0x2ab85f[_0xc027('0x46')]);_0x10ee9f[_0xc027('0x49')]=_[_0xc027('0x48')](_0x2ab85f[_0xc027('0x44')],qs['fields'](_0x9030e1['query'][_0xc027('0x4a')]));_0x10ee9f[_0xc027('0x49')]=_0x10ee9f[_0xc027('0x49')][_0xc027('0x4b')]?_0x10ee9f[_0xc027('0x49')]:_0x2ab85f[_0xc027('0x44')];_0x10ee9f['order']=qs[_0xc027('0x4f')](_0x9030e1[_0xc027('0x46')][_0xc027('0x4f')]);_0x10ee9f['where']=qs[_0xc027('0x47')](_[_0xc027('0x50')](_0x9030e1[_0xc027('0x46')],_0x2ab85f['filters']));if(_0x9030e1[_0xc027('0x46')][_0xc027('0x51')]){_0x10ee9f['where']=_[_0xc027('0x67')](_0x10ee9f[_0xc027('0x52')],{'$or':_[_0xc027('0x3f')](_0x10ee9f['attributes'],function(_0x393039){var _0x2cf3bc={};_0x2cf3bc[_0x393039]={'$like':'%'+_0x9030e1[_0xc027('0x46')]['filter']+'%'};return _0x2cf3bc;})});}_0x10ee9f=_[_0xc027('0x67')]({},_0x10ee9f,_0x9030e1[_0xc027('0x53')]);return _0x564271[_0xc027('0xc3')](_0x10ee9f);}})[_0xc027('0x21')](function(_0x317318){if(_0x317318){_0xadfcca=_0x317318[_0xc027('0x4b')];if(!_0x9030e1[_0xc027('0x46')]['hasOwnProperty']('nolimit')){_0x10ee9f['limit']=qs[_0xc027('0x2f')](_0x9030e1['query']['limit']);_0x10ee9f[_0xc027('0x2d')]=qs['offset'](_0x9030e1[_0xc027('0x46')][_0xc027('0x2d')]);}return _0x564271[_0xc027('0xc3')](_0x10ee9f);}})['then'](function(_0x5ac99b){if(_0x5ac99b){return _0x5ac99b?{'count':_0xadfcca,'rows':_0x5ac99b}:null;}})['then'](respondWithResult(_0x1fdfcd,null))[_0xc027('0x28')](handleError(_0x1fdfcd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc224=['../../mysqldb','FaxAccount','save','update','remove','emit','exports','events'];(function(_0x4f5f54,_0x51db7a){var _0x40ad0c=function(_0x10db02){while(--_0x10db02){_0x4f5f54['push'](_0x4f5f54['shift']());}};_0x40ad0c(++_0x51db7a);}(_0xc224,0x1af));var _0x4c22=function(_0x3e633f,_0x2b177d){_0x3e633f=_0x3e633f-0x0;var _0x2ab9c3=_0xc224[_0x3e633f];return _0x2ab9c3;};'use strict';var EventEmitter=require(_0x4c22('0x0'));var FaxAccount=require(_0x4c22('0x1'))['db'][_0x4c22('0x2')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x4c22('0x3'),'afterUpdate':_0x4c22('0x4'),'afterDestroy':_0x4c22('0x5')};function emitEvent(_0x26bfaf){return function(_0x369842,_0x313fb9,_0x2bb39d){FaxAccountEvents[_0x4c22('0x6')](_0x26bfaf+':'+_0x369842['id'],_0x369842);FaxAccountEvents['emit'](_0x26bfaf,_0x369842);_0x2bb39d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxAccount['hook'](e,emitEvent(event));}}module[_0x4c22('0x7')]=FaxAccountEvents;
\ No newline at end of file
+var _0x5b17=['update','remove','emit','exports','events','../../mysqldb','FaxAccount','setMaxListeners','save'];(function(_0x438994,_0x45f7f5){var _0x4d6d84=function(_0x1a3196){while(--_0x1a3196){_0x438994['push'](_0x438994['shift']());}};_0x4d6d84(++_0x45f7f5);}(_0x5b17,0x94));var _0x75b1=function(_0x1bd40d,_0x4b8cd6){_0x1bd40d=_0x1bd40d-0x0;var _0x21676c=_0x5b17[_0x1bd40d];return _0x21676c;};'use strict';var EventEmitter=require(_0x75b1('0x0'));var FaxAccount=require(_0x75b1('0x1'))['db'][_0x75b1('0x2')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x75b1('0x3')](0x0);var events={'afterCreate':_0x75b1('0x4'),'afterUpdate':_0x75b1('0x5'),'afterDestroy':_0x75b1('0x6')};function emitEvent(_0x1439da){return function(_0xe4ed7a,_0x1a7c87,_0x3e2d61){FaxAccountEvents[_0x75b1('0x7')](_0x1439da+':'+_0xe4ed7a['id'],_0xe4ed7a);FaxAccountEvents['emit'](_0x1439da,_0xe4ed7a);_0x3e2d61(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxAccount['hook'](e,emitEvent(event));}}module[_0x75b1('0x8')]=FaxAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2aa=['FaxAccount','fax_accounts','lodash','util','../../config/logger','api','request-promise','path','../../config/environment','./faxAccount.attributes'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe2aa,0x1ce));var _0xae2a=function(_0x17a404,_0x2cb1e5){_0x17a404=_0x17a404-0x0;var _0x2b175b=_0xe2aa[_0x17a404];return _0x2b175b;};'use strict';var _=require(_0xae2a('0x0'));var util=require(_0xae2a('0x1'));var logger=require(_0xae2a('0x2'))(_0xae2a('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xae2a('0x4'));var fs=require('fs');var path=require(_0xae2a('0x5'));var rimraf=require('rimraf');var config=require(_0xae2a('0x6'));var attributes=require(_0xae2a('0x7'));module['exports']=function(_0x5c9da4,_0x5396e){return _0x5c9da4['define'](_0xae2a('0x8'),attributes,{'tableName':_0xae2a('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb00d=['../../config/environment','FaxAccount','fax_accounts','lodash','../../config/logger','api','bluebird','request-promise','path','rimraf'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xb00d,0x1d9));var _0xdb00=function(_0x377a6e,_0x59b99d){_0x377a6e=_0x377a6e-0x0;var _0x37f751=_0xb00d[_0x377a6e];return _0x37f751;};'use strict';var _=require(_0xdb00('0x0'));var util=require('util');var logger=require(_0xdb00('0x1'))(_0xdb00('0x2'));var moment=require('moment');var BPromise=require(_0xdb00('0x3'));var rp=require(_0xdb00('0x4'));var fs=require('fs');var path=require(_0xdb00('0x5'));var rimraf=require(_0xdb00('0x6'));var config=require(_0xdb00('0x7'));var attributes=require('./faxAccount.attributes');module['exports']=function(_0x45a091,_0x3eff70){return _0x45a091['define'](_0xdb00('0x8'),attributes,{'tableName':_0xdb00('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68ae=['http','redis','defaults','socket.io-emitter','./faxAccount.socket','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','where','attributes','limit','include','model','map','fax','CmContact','describe','ValidationError','no\x20available\x20attributes','keys','updatedAt','ListId','body','isNil','from','Sequelize','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','account','CmList','Contacts','DESC','FaxApplication','Applications','List','get','applications','list','orderBy','priority','asc','length','create','contact','FaxInteraction','find','Contact\x20not\x20found','spread','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','UserId','User','name','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x11a208,_0x3359dd){var _0x50ee7a=function(_0x32fe4f){while(--_0x32fe4f){_0x11a208['push'](_0x11a208['shift']());}};_0x50ee7a(++_0x3359dd);}(_0x68ae,0x154));var _0xe68a=function(_0xf72fcc,_0x26331){_0xf72fcc=_0xf72fcc-0x0;var _0x1f8b4a=_0x68ae[_0xf72fcc];return _0x1f8b4a;};'use strict';var _=require(_0xe68a('0x0'));var util=require(_0xe68a('0x1'));var moment=require(_0xe68a('0x2'));var BPromise=require(_0xe68a('0x3'));var rs=require(_0xe68a('0x4'));var fs=require('fs');var Redis=require(_0xe68a('0x5'));var db=require(_0xe68a('0x6'))['db'];var utils=require(_0xe68a('0x7'));var logger=require(_0xe68a('0x8'))('rpc');var config=require(_0xe68a('0x9'));var jayson=require(_0xe68a('0xa'));var client=jayson[_0xe68a('0xb')][_0xe68a('0xc')]({'port':0x232c});config[_0xe68a('0xd')]=_[_0xe68a('0xe')](config[_0xe68a('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0xe68a('0xf'))(new Redis(config['redis']));require(_0xe68a('0x10'))['register'](socket);function respondWithRpcPromise(_0x194835,_0x1fe563,_0x130180){return new BPromise(function(_0x23f6a8,_0x3d8003){return client[_0xe68a('0x11')](_0x194835,_0x130180)[_0xe68a('0x12')](function(_0x5e4e81){logger[_0xe68a('0x13')](_0xe68a('0x14'),_0x1fe563,_0xe68a('0x15'));logger[_0xe68a('0x16')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x1fe563,'request\x20sent',JSON[_0xe68a('0x17')](_0x5e4e81));if(_0x5e4e81[_0xe68a('0x18')]){if(_0x5e4e81[_0xe68a('0x18')][_0xe68a('0x19')]===0x1f4){logger[_0xe68a('0x18')](_0xe68a('0x14'),_0x1fe563,_0x5e4e81[_0xe68a('0x18')][_0xe68a('0x1a')]);return _0x3d8003(_0x5e4e81['error'][_0xe68a('0x1a')]);}logger[_0xe68a('0x18')](_0xe68a('0x14'),_0x1fe563,_0x5e4e81[_0xe68a('0x18')]['message']);return _0x23f6a8(_0x5e4e81['error']['message']);}else{logger[_0xe68a('0x13')](_0xe68a('0x14'),_0x1fe563,_0xe68a('0x15'));_0x23f6a8(_0x5e4e81[_0xe68a('0x1b')][_0xe68a('0x1a')]);}})[_0xe68a('0x1c')](function(_0x5e09e6){logger[_0xe68a('0x18')](_0xe68a('0x14'),_0x1fe563,_0x5e09e6);_0x3d8003(_0x5e09e6);});});}exports[_0xe68a('0x1d')]=function(_0x541b45){var _0x222091=this;return new Promise(function(_0x141930,_0x4f6ce6){return db[_0xe68a('0x1e')][_0xe68a('0x1f')]({'raw':_0x541b45[_0xe68a('0x20')]?_0x541b45[_0xe68a('0x20')]['raw']===undefined?!![]:![]:!![],'where':_0x541b45['options']?_0x541b45['options'][_0xe68a('0x21')]||null:null,'attributes':_0x541b45[_0xe68a('0x20')]?_0x541b45[_0xe68a('0x20')][_0xe68a('0x22')]||null:null,'limit':_0x541b45[_0xe68a('0x20')]?_0x541b45[_0xe68a('0x20')][_0xe68a('0x23')]||null:null,'include':_0x541b45[_0xe68a('0x20')]?_0x541b45['options']['include']?_['map'](_0x541b45[_0xe68a('0x20')][_0xe68a('0x24')],function(_0x42e186){return{'model':db[_0x42e186[_0xe68a('0x25')]],'as':_0x42e186['as'],'attributes':_0x42e186[_0xe68a('0x22')],'include':_0x42e186[_0xe68a('0x24')]?_[_0xe68a('0x26')](_0x42e186[_0xe68a('0x24')],function(_0x30e61c){return{'model':db[_0x30e61c[_0xe68a('0x25')]],'as':_0x30e61c['as'],'attributes':_0x30e61c[_0xe68a('0x22')],'include':_0x30e61c['include']?_['map'](_0x30e61c[_0xe68a('0x24')],function(_0x4d4c40){return{'model':db[_0x4d4c40[_0xe68a('0x25')]],'as':_0x4d4c40['as'],'attributes':_0x4d4c40[_0xe68a('0x22')]};}):[]};}):[]};}):[]:[]})[_0xe68a('0x12')](function(_0x4be5a6){logger[_0xe68a('0x13')]('GetFaxAccount',_0x541b45);logger['debug'](_0xe68a('0x1d'),_0x541b45,JSON['stringify'](_0x4be5a6));_0x141930(_0x4be5a6);})[_0xe68a('0x1c')](function(_0x9c0b44){logger['error']('GetFaxAccount',_0x9c0b44[_0xe68a('0x1a')],_0x541b45);_0x4f6ce6(_0x222091[_0xe68a('0x18')](0x1f4,_0x9c0b44['message']));});});};exports['NotifyFaxAccount']=function(_0x51ab41,_0x6f3d1c,_0x4d7944){var _0x130230=this;return new Promise(function(_0x59cc48,_0x23993a){var _0x22da8d={'body':_0x51ab41['body'],'channel':_0xe68a('0x27')};var _0x2d1fa4=[];var _0x54833f=[];var _0x48b07b={};return db[_0xe68a('0x28')][_0xe68a('0x29')]()[_0xe68a('0x12')](function(_0x1023a2){if(!_0x1023a2){throw new db['Sequelize'][(_0xe68a('0x2a'))](_0xe68a('0x2b'));}_0x2d1fa4=_['difference'](_[_0xe68a('0x2c')](_0x1023a2),['createdAt','updatedAt']);_0x54833f=_['difference'](_['keys'](_0x1023a2),['createdAt',_0xe68a('0x2d'),'CompanyId',_0xe68a('0x2e')]);if(_0x51ab41[_0xe68a('0x2f')]['id']){delete _0x51ab41[_0xe68a('0x2f')]['id'];}if(_[_0xe68a('0x30')](_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')])){throw new db[(_0xe68a('0x32'))][(_0xe68a('0x2a'))]('from\x20is\x20mandatory');}if(_['isNil'](_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x2f')])||_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x2f')]===''){throw new db[(_0xe68a('0x32'))][(_0xe68a('0x2a'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x33')])){throw new db['Sequelize'][(_0xe68a('0x2a'))](_0xe68a('0x34')+_0x54833f);}if(!_[_0xe68a('0x35')](_0x54833f,_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x33')])){throw new db[(_0xe68a('0x32'))][(_0xe68a('0x2a'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x54833f);}_0x48b07b[_0x51ab41['body'][_0xe68a('0x33')]]=_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')];})['then'](function(){return db['FaxAccount']['find']({'where':{'id':_0x51ab41[_0xe68a('0x36')]['id']},'include':[{'model':db[_0xe68a('0x37')],'as':'List','include':[{'model':db[_0xe68a('0x28')],'as':_0xe68a('0x38'),'where':_0x48b07b,'limit':0x1,'order':[[_0xe68a('0x2d'),_0xe68a('0x39')]]}]},{'model':db[_0xe68a('0x3a')],'as':_0xe68a('0x3b')}]});})[_0xe68a('0x12')](function(_0x57ae21){if(_0x57ae21&&_0x57ae21[_0xe68a('0x3c')]){var _0x38301d=_0x57ae21[_0xe68a('0x3d')]({'plain':!![]});_0x22da8d[_0xe68a('0x36')]=_0x38301d;_0x22da8d[_0xe68a('0x3e')]=_0x38301d[_0xe68a('0x3b')];_0x22da8d[_0xe68a('0x3f')]=_0x38301d[_0xe68a('0x3c')];_0x22da8d[_0xe68a('0x3e')]=_[_0xe68a('0x40')](_0x22da8d[_0xe68a('0x3e')],[_0xe68a('0x41')],[_0xe68a('0x42')]);if(_0x22da8d[_0xe68a('0x36')]['Applications']){delete _0x22da8d['account'][_0xe68a('0x3b')];}if(_0x22da8d[_0xe68a('0x36')]['List']&&_0x22da8d['account'][_0xe68a('0x3c')][_0xe68a('0x38')][_0xe68a('0x43')]){return _0x22da8d[_0xe68a('0x36')]['List'][_0xe68a('0x38')][0x0];}var _0x3f7cb1=_['defaults'](_0x51ab41[_0xe68a('0x2f')],{'firstName':_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')],'ListId':_0x38301d[_0xe68a('0x2e')]});_0x3f7cb1[_0x51ab41[_0xe68a('0x2f')]['mapKey']]=_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')];return db[_0xe68a('0x28')][_0xe68a('0x44')](_0x3f7cb1,{'fields':_0x2d1fa4,'raw':!![]});}})[_0xe68a('0x12')](function(_0x264b32){_0x22da8d[_0xe68a('0x45')]=_0x264b32;if(_0x264b32){var _0x5ee31a={'ContactId':_0x264b32['id'],'FaxAccountId':_0x51ab41[_0xe68a('0x36')]['id'],'fax':_0x264b32[_0xe68a('0x27')]};return db[_0xe68a('0x46')][_0xe68a('0x47')]({'where':{'ContactId':_0x264b32['id'],'closed':![],'FaxAccountId':_0x51ab41[_0xe68a('0x36')]['id']}})[_0xe68a('0x12')](function(_0x55251e){if(_0x55251e){return[_0x55251e,![]];}return db['FaxInteraction'][_0xe68a('0x44')](_0x5ee31a)[_0xe68a('0x12')](function(_0x54f87f){return[_0x54f87f,!![]];});});}else{throw new Error(_0xe68a('0x48'));}})[_0xe68a('0x49')](function(_0x3be9f8,_0x5c4cc9){var _0x6326b2=_0x3be9f8['get']({'plain':!![]});if(_0x5c4cc9){if(_0x22da8d[_0xe68a('0x36')]['autoclose']){_0x22da8d['applications']['push']({'id':0x0,'priority':_0x22da8d[_0xe68a('0x3e')][_0xe68a('0x43')]+0x1,'app':_0xe68a('0x4a'),'appdata':_0xe68a('0x4b'),'interval':_0xe68a('0x4c')});}_0x6326b2[_0xe68a('0x4d')]=!![];}else{_0x6326b2[_0xe68a('0x4d')]=![];}_0x22da8d[_0xe68a('0x4e')]=_0x6326b2;return db[_0xe68a('0x4f')][_0xe68a('0x44')]({'body':_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x2f')],'FaxAccountId':_0x51ab41[_0xe68a('0x36')]['id'],'FaxInteractionId':_0x3be9f8['id'],'direction':'in','ContactId':_0x3be9f8['ContactId'],'AttachmentId':_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x50')]});})[_0xe68a('0x12')](function(_0x4effcf){_0x22da8d[_0xe68a('0x1a')]=_0x4effcf;if(_0x22da8d[_0xe68a('0x4e')][_0xe68a('0x51')]){return db[_0xe68a('0x52')]['find']({'attributes':['id',_0xe68a('0x53')],'where':{'id':_0x22da8d['interaction'][_0xe68a('0x51')]}})[_0xe68a('0x12')](function(_0x3e7a4f){if(_0x3e7a4f){_0x22da8d['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0xe68a('0x54'),'appdata':_0x3e7a4f[_0xe68a('0x53')]+','+(_0x22da8d['account'][_0xe68a('0x55')]||0xa),'interval':_0xe68a('0x4c')});}return respondWithRpcPromise(_0xe68a('0x56'),_0xe68a('0x57'),_0x22da8d);});}return respondWithRpcPromise(_0xe68a('0x56'),'startRouting',_0x22da8d);})[_0xe68a('0x12')](function(_0x3a1be8){_0x59cc48(_0x3a1be8);})[_0xe68a('0x1c')](function(_0x1c09f5){_0x23993a(_0x130230[_0xe68a('0x18')](0x1f4,_0x1c09f5[_0xe68a('0x1a')]));});});};
\ No newline at end of file
+var _0xd410=['User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./faxAccount.socket','register','request','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','limit','include','map','model','then','stringify','NotifyFaxAccount','CmContact','describe','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','CompanyId','ListId','body','isNil','from','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','find','CmList','List','Contacts','updatedAt','FaxApplication','Applications','get','account','list','applications','orderBy','length','defaults','contact','fax','FaxInteraction','create','Contact\x20not\x20found','autoclose','push','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','UserId'];(function(_0x587fb5,_0x59cb3b){var _0x551105=function(_0x5bbef4){while(--_0x5bbef4){_0x587fb5['push'](_0x587fb5['shift']());}};_0x551105(++_0x59cb3b);}(_0xd410,0x16f));var _0x0d41=function(_0x30ae5e,_0x391fc4){_0x30ae5e=_0x30ae5e-0x0;var _0x1f2e93=_0xd410[_0x30ae5e];return _0x1f2e93;};'use strict';var _=require(_0x0d41('0x0'));var util=require(_0x0d41('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x0d41('0x2'));var fs=require('fs');var Redis=require(_0x0d41('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0d41('0x4'));var logger=require(_0x0d41('0x5'))(_0x0d41('0x6'));var config=require(_0x0d41('0x7'));var jayson=require(_0x0d41('0x8'));var client=jayson[_0x0d41('0x9')][_0x0d41('0xa')]({'port':0x232c});config['redis']=_['defaults'](config[_0x0d41('0xb')],{'host':_0x0d41('0xc'),'port':0x18eb});var socket=require(_0x0d41('0xd'))(new Redis(config[_0x0d41('0xb')]));require(_0x0d41('0xe'))[_0x0d41('0xf')](socket);function respondWithRpcPromise(_0x530118,_0x44c3a1,_0x107d72){return new BPromise(function(_0x20f0c8,_0x44aebc){return client[_0x0d41('0x10')](_0x530118,_0x107d72)['then'](function(_0x379314){logger['info'](_0x0d41('0x11'),_0x44c3a1,'request\x20sent');logger[_0x0d41('0x12')](_0x0d41('0x13'),_0x44c3a1,_0x0d41('0x14'),JSON['stringify'](_0x379314));if(_0x379314[_0x0d41('0x15')]){if(_0x379314[_0x0d41('0x15')]['code']===0x1f4){logger['error'](_0x0d41('0x11'),_0x44c3a1,_0x379314[_0x0d41('0x15')]['message']);return _0x44aebc(_0x379314[_0x0d41('0x15')][_0x0d41('0x16')]);}logger['error'](_0x0d41('0x11'),_0x44c3a1,_0x379314['error'][_0x0d41('0x16')]);return _0x20f0c8(_0x379314[_0x0d41('0x15')][_0x0d41('0x16')]);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0x44c3a1,_0x0d41('0x14'));_0x20f0c8(_0x379314[_0x0d41('0x17')][_0x0d41('0x16')]);}})[_0x0d41('0x18')](function(_0x4a5126){logger[_0x0d41('0x15')](_0x0d41('0x11'),_0x44c3a1,_0x4a5126);_0x44aebc(_0x4a5126);});});}exports[_0x0d41('0x19')]=function(_0x121dc1){var _0x45bb9b=this;return new Promise(function(_0x31a57c,_0x1d0d6c){return db[_0x0d41('0x1a')][_0x0d41('0x1b')]({'raw':_0x121dc1[_0x0d41('0x1c')]?_0x121dc1[_0x0d41('0x1c')][_0x0d41('0x1d')]===undefined?!![]:![]:!![],'where':_0x121dc1[_0x0d41('0x1c')]?_0x121dc1[_0x0d41('0x1c')][_0x0d41('0x1e')]||null:null,'attributes':_0x121dc1['options']?_0x121dc1['options'][_0x0d41('0x1f')]||null:null,'limit':_0x121dc1[_0x0d41('0x1c')]?_0x121dc1['options'][_0x0d41('0x20')]||null:null,'include':_0x121dc1[_0x0d41('0x1c')]?_0x121dc1[_0x0d41('0x1c')][_0x0d41('0x21')]?_[_0x0d41('0x22')](_0x121dc1['options'][_0x0d41('0x21')],function(_0x579b10){return{'model':db[_0x579b10[_0x0d41('0x23')]],'as':_0x579b10['as'],'attributes':_0x579b10[_0x0d41('0x1f')],'include':_0x579b10[_0x0d41('0x21')]?_[_0x0d41('0x22')](_0x579b10['include'],function(_0x3176e4){return{'model':db[_0x3176e4[_0x0d41('0x23')]],'as':_0x3176e4['as'],'attributes':_0x3176e4[_0x0d41('0x1f')],'include':_0x3176e4[_0x0d41('0x21')]?_[_0x0d41('0x22')](_0x3176e4[_0x0d41('0x21')],function(_0x5c6b9c){return{'model':db[_0x5c6b9c[_0x0d41('0x23')]],'as':_0x5c6b9c['as'],'attributes':_0x5c6b9c[_0x0d41('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x0d41('0x24')](function(_0x49f875){logger['info']('GetFaxAccount',_0x121dc1);logger['debug'](_0x0d41('0x19'),_0x121dc1,JSON[_0x0d41('0x25')](_0x49f875));_0x31a57c(_0x49f875);})[_0x0d41('0x18')](function(_0x3098e9){logger[_0x0d41('0x15')](_0x0d41('0x19'),_0x3098e9[_0x0d41('0x16')],_0x121dc1);_0x1d0d6c(_0x45bb9b['error'](0x1f4,_0x3098e9[_0x0d41('0x16')]));});});};exports[_0x0d41('0x26')]=function(_0x3c64ce,_0x16bf7f,_0x26cc40){var _0xa59afb=this;return new Promise(function(_0xe868b3,_0x2e730b){var _0x336eaf={'body':_0x3c64ce['body'],'channel':'fax'};var _0x4eafff=[];var _0x4062be=[];var _0x776ac2={};return db[_0x0d41('0x27')][_0x0d41('0x28')]()[_0x0d41('0x24')](function(_0x46a037){if(!_0x46a037){throw new db['Sequelize'][(_0x0d41('0x29'))](_0x0d41('0x2a'));}_0x4eafff=_[_0x0d41('0x2b')](_[_0x0d41('0x2c')](_0x46a037),[_0x0d41('0x2d'),'updatedAt']);_0x4062be=_[_0x0d41('0x2b')](_[_0x0d41('0x2c')](_0x46a037),['createdAt','updatedAt',_0x0d41('0x2e'),_0x0d41('0x2f')]);if(_0x3c64ce['body']['id']){delete _0x3c64ce[_0x0d41('0x30')]['id'];}if(_[_0x0d41('0x31')](_0x3c64ce['body'][_0x0d41('0x32')])){throw new db[(_0x0d41('0x33'))][(_0x0d41('0x29'))]('from\x20is\x20mandatory');}if(_[_0x0d41('0x31')](_0x3c64ce['body'][_0x0d41('0x30')])||_0x3c64ce[_0x0d41('0x30')][_0x0d41('0x30')]===''){throw new db['Sequelize'][(_0x0d41('0x29'))](_0x0d41('0x34'));}if(_[_0x0d41('0x31')](_0x3c64ce[_0x0d41('0x30')][_0x0d41('0x35')])){throw new db[(_0x0d41('0x33'))][(_0x0d41('0x29'))](_0x0d41('0x36')+_0x4062be);}if(!_['includes'](_0x4062be,_0x3c64ce[_0x0d41('0x30')]['mapKey'])){throw new db[(_0x0d41('0x33'))][(_0x0d41('0x29'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4062be);}_0x776ac2[_0x3c64ce['body']['mapKey']]=_0x3c64ce['body']['from'];})[_0x0d41('0x24')](function(){return db[_0x0d41('0x1a')][_0x0d41('0x37')]({'where':{'id':_0x3c64ce['account']['id']},'include':[{'model':db[_0x0d41('0x38')],'as':_0x0d41('0x39'),'include':[{'model':db[_0x0d41('0x27')],'as':_0x0d41('0x3a'),'where':_0x776ac2,'limit':0x1,'order':[[_0x0d41('0x3b'),'DESC']]}]},{'model':db[_0x0d41('0x3c')],'as':_0x0d41('0x3d')}]});})[_0x0d41('0x24')](function(_0x347fb1){if(_0x347fb1&&_0x347fb1[_0x0d41('0x39')]){var _0x5cf265=_0x347fb1[_0x0d41('0x3e')]({'plain':!![]});_0x336eaf[_0x0d41('0x3f')]=_0x5cf265;_0x336eaf['applications']=_0x5cf265['Applications'];_0x336eaf[_0x0d41('0x40')]=_0x5cf265[_0x0d41('0x39')];_0x336eaf[_0x0d41('0x41')]=_[_0x0d41('0x42')](_0x336eaf[_0x0d41('0x41')],['priority'],['asc']);if(_0x336eaf[_0x0d41('0x3f')][_0x0d41('0x3d')]){delete _0x336eaf[_0x0d41('0x3f')][_0x0d41('0x3d')];}if(_0x336eaf[_0x0d41('0x3f')][_0x0d41('0x39')]&&_0x336eaf[_0x0d41('0x3f')][_0x0d41('0x39')][_0x0d41('0x3a')][_0x0d41('0x43')]){return _0x336eaf[_0x0d41('0x3f')][_0x0d41('0x39')][_0x0d41('0x3a')][0x0];}var _0x54a2c2=_[_0x0d41('0x44')](_0x3c64ce['body'],{'firstName':_0x3c64ce[_0x0d41('0x30')][_0x0d41('0x32')],'ListId':_0x5cf265[_0x0d41('0x2f')]});_0x54a2c2[_0x3c64ce[_0x0d41('0x30')][_0x0d41('0x35')]]=_0x3c64ce[_0x0d41('0x30')]['from'];return db[_0x0d41('0x27')]['create'](_0x54a2c2,{'fields':_0x4eafff,'raw':!![]});}})['then'](function(_0x3d2d57){_0x336eaf[_0x0d41('0x45')]=_0x3d2d57;if(_0x3d2d57){var _0x546a96={'ContactId':_0x3d2d57['id'],'FaxAccountId':_0x3c64ce[_0x0d41('0x3f')]['id'],'fax':_0x3d2d57[_0x0d41('0x46')]};return db[_0x0d41('0x47')][_0x0d41('0x37')]({'where':{'ContactId':_0x3d2d57['id'],'closed':![],'FaxAccountId':_0x3c64ce[_0x0d41('0x3f')]['id']}})[_0x0d41('0x24')](function(_0x24168b){if(_0x24168b){return[_0x24168b,![]];}return db[_0x0d41('0x47')][_0x0d41('0x48')](_0x546a96)[_0x0d41('0x24')](function(_0x13a5be){return[_0x13a5be,!![]];});});}else{throw new Error(_0x0d41('0x49'));}})['spread'](function(_0x49b166,_0x17369a){var _0x4262da=_0x49b166['get']({'plain':!![]});if(_0x17369a){if(_0x336eaf[_0x0d41('0x3f')][_0x0d41('0x4a')]){_0x336eaf[_0x0d41('0x41')][_0x0d41('0x4b')]({'id':0x0,'priority':_0x336eaf[_0x0d41('0x41')][_0x0d41('0x43')]+0x1,'app':'close','appdata':_0x0d41('0x4c'),'interval':_0x0d41('0x4d')});}_0x4262da['created']=!![];}else{_0x4262da[_0x0d41('0x4e')]=![];}_0x336eaf[_0x0d41('0x4f')]=_0x4262da;return db[_0x0d41('0x50')]['create']({'body':_0x3c64ce['body'][_0x0d41('0x30')],'FaxAccountId':_0x3c64ce[_0x0d41('0x3f')]['id'],'FaxInteractionId':_0x49b166['id'],'direction':'in','ContactId':_0x49b166['ContactId'],'AttachmentId':_0x3c64ce[_0x0d41('0x30')][_0x0d41('0x51')]});})['then'](function(_0x30d536){_0x336eaf['message']=_0x30d536;if(_0x336eaf['interaction'][_0x0d41('0x52')]){return db[_0x0d41('0x53')]['find']({'attributes':['id',_0x0d41('0x54')],'where':{'id':_0x336eaf[_0x0d41('0x4f')][_0x0d41('0x52')]}})[_0x0d41('0x24')](function(_0x5ebe98){if(_0x5ebe98){_0x336eaf['applications'][_0x0d41('0x55')]({'id':0x0,'priority':0x0,'app':_0x0d41('0x56'),'appdata':_0x5ebe98[_0x0d41('0x54')]+','+(_0x336eaf[_0x0d41('0x3f')][_0x0d41('0x57')]||0xa),'interval':_0x0d41('0x4d')});}return respondWithRpcPromise(_0x0d41('0x58'),_0x0d41('0x59'),_0x336eaf);});}return respondWithRpcPromise(_0x0d41('0x58'),_0x0d41('0x59'),_0x336eaf);})[_0x0d41('0x24')](function(_0x22884d){_0xe868b3(_0x22884d);})[_0x0d41('0x18')](function(_0x34cbc8){_0x2e730b(_0xa59afb['error'](0x1f4,_0x34cbc8['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38be=['remove','update','emit','removeListener','length','./faxAccount.events','save'];(function(_0x2504a1,_0x3241b5){var _0x1f712c=function(_0x3dc56d){while(--_0x3dc56d){_0x2504a1['push'](_0x2504a1['shift']());}};_0x1f712c(++_0x3241b5);}(_0x38be,0x9f));var _0xe38b=function(_0x144cee,_0x34fd0d){_0x144cee=_0x144cee-0x0;var _0x1dadd8=_0x38be[_0x144cee];return _0x1dadd8;};'use strict';var FaxAccountEvents=require(_0xe38b('0x0'));var events=[_0xe38b('0x1'),_0xe38b('0x2'),_0xe38b('0x3')];function createListener(_0x3c53fb,_0x2c353c){return function(_0x2c08e7){_0x2c353c[_0xe38b('0x4')](_0x3c53fb,_0x2c08e7);};}function removeListener(_0x528036,_0xa0151b){return function(){FaxAccountEvents[_0xe38b('0x5')](_0x528036,_0xa0151b);};}exports['register']=function(_0x36e20c){for(var _0x42815f=0x0,_0x54b30=events[_0xe38b('0x6')];_0x42815f<_0x54b30;_0x42815f++){var _0x6a2f1f=events[_0x42815f];var _0x29b14e=createListener('faxAccount:'+_0x6a2f1f,_0x36e20c);FaxAccountEvents['on'](_0x6a2f1f,_0x29b14e);}};
\ No newline at end of file
+var _0x9afa=['removeListener','register','length','faxAccount:','update','emit'];(function(_0x3328bb,_0x3df503){var _0x138b4b=function(_0x55ba9c){while(--_0x55ba9c){_0x3328bb['push'](_0x3328bb['shift']());}};_0x138b4b(++_0x3df503);}(_0x9afa,0x16c));var _0xa9af=function(_0x52ba82,_0x151813){_0x52ba82=_0x52ba82-0x0;var _0x312d8b=_0x9afa[_0x52ba82];return _0x312d8b;};'use strict';var FaxAccountEvents=require('./faxAccount.events');var events=['save','remove',_0xa9af('0x0')];function createListener(_0x562ff9,_0x72ae66){return function(_0x24389b){_0x72ae66[_0xa9af('0x1')](_0x562ff9,_0x24389b);};}function removeListener(_0x5e039f,_0x3a594d){return function(){FaxAccountEvents[_0xa9af('0x2')](_0x5e039f,_0x3a594d);};}exports[_0xa9af('0x3')]=function(_0x162f11){for(var _0x15e69e=0x0,_0x12bed9=events[_0xa9af('0x4')];_0x15e69e<_0x12bed9;_0x15e69e++){var _0x10858a=events[_0x15e69e];var _0x29ac6d=createListener(_0xa9af('0x5')+_0x10858a,_0x162f11);FaxAccountEvents['on'](_0x10858a,_0x29ac6d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x3a07d4,_0xa80b88){var _0x2c352=function(_0x27926b){while(--_0x27926b){_0x3a07d4['push'](_0x3a07d4['shift']());}};_0x2c352(++_0xa80b88);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0xa9e0[_0x5c351c];return _0x26f3b3;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x10a212,_0x579d85){var _0x23c82b=function(_0x412ea9){while(--_0x412ea9){_0x10a212['push'](_0x10a212['shift']());}};_0x23c82b(++_0x579d85);}(_0xa9e0,0x123));var _0x0a9e=function(_0x47a7d0,_0x4e182d){_0x47a7d0=_0x47a7d0-0x0;var _0xb9bd08=_0xa9e0[_0x47a7d0];return _0xb9bd08;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60f6=['sequelize','exports','INTEGER','STRING','TEXT','*,*,*,*'];(function(_0x43d2b5,_0x5fa59b){var _0x3fd8c8=function(_0x2e1caa){while(--_0x2e1caa){_0x43d2b5['push'](_0x43d2b5['shift']());}};_0x3fd8c8(++_0x5fa59b);}(_0x60f6,0x1ec));var _0x660f=function(_0x55e44a,_0x55bcd4){_0x55e44a=_0x55e44a-0x0;var _0x424bf2=_0x60f6[_0x55e44a];return _0x424bf2;};'use strict';var Sequelize=require(_0x660f('0x0'));module[_0x660f('0x1')]={'priority':{'type':Sequelize[_0x660f('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x660f('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x660f('0x4')]()},'description':{'type':Sequelize[_0x660f('0x3')]},'interval':{'type':Sequelize[_0x660f('0x3')],'defaultValue':_0x660f('0x5')}};
\ No newline at end of file
+var _0x120a=['STRING','noop','TEXT','*,*,*,*'];(function(_0x154192,_0x2d360f){var _0x3c2792=function(_0x2e257b){while(--_0x2e257b){_0x154192['push'](_0x154192['shift']());}};_0x3c2792(++_0x2d360f);}(_0x120a,0xa4));var _0xa120=function(_0xd5fd5c,_0x3e2a66){_0xd5fd5c=_0xd5fd5c-0x0;var _0x3b0663=_0x120a[_0xd5fd5c];return _0x3b0663;};'use strict';var Sequelize=require('sequelize');module['exports']={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0xa120('0x0')],'allowNull':![],'defaultValue':_0xa120('0x1')},'appdata':{'type':Sequelize[_0xa120('0x2')]()},'description':{'type':Sequelize[_0xa120('0x0')]},'interval':{'type':Sequelize[_0xa120('0x0')],'defaultValue':_0xa120('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe846=['type','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','params','include','options','find','create','body','update','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','count','offset','limit','Content-Range','reject','save','then','destroy','sendStatus','stack','name','send','index','map','FaxApplication','rawAttributes','fieldName'];(function(_0x263883,_0x16fab3){var _0x1c458f=function(_0x56c625){while(--_0x56c625){_0x263883['push'](_0x263883['shift']());}};_0x1c458f(++_0x16fab3);}(_0xe846,0x136));var _0x6e84=function(_0x39cf44,_0x5c062d){_0x39cf44=_0x39cf44-0x0;var _0x58f9c8=_0xe846[_0x39cf44];return _0x58f9c8;};'use strict';var emlformat=require(_0x6e84('0x0'));var rimraf=require(_0x6e84('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6e84('0x2'));var rp=require('request-promise');var moment=require(_0x6e84('0x3'));var BPromise=require(_0x6e84('0x4'));var Mustache=require(_0x6e84('0x5'));var util=require(_0x6e84('0x6'));var path=require(_0x6e84('0x7'));var sox=require(_0x6e84('0x8'));var csv=require('to-csv');var ejs=require(_0x6e84('0x9'));var fs=require('fs');var fs_extra=require(_0x6e84('0xa'));var _=require(_0x6e84('0xb'));var squel=require('squel');var crypto=require(_0x6e84('0xc'));var jsforce=require(_0x6e84('0xd'));var deskjs=require(_0x6e84('0xe'));var toCsv=require(_0x6e84('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x6e84('0x10'));var authService=require(_0x6e84('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x6e84('0x12'));var hardwareService=require(_0x6e84('0x13'));var logger=require(_0x6e84('0x14'))(_0x6e84('0x15'));var utils=require('../../config/utils');var config=require(_0x6e84('0x16'));var licenseUtil=require(_0x6e84('0x17'));var db=require(_0x6e84('0x18'))['db'];function respondWithStatusCode(_0x295b54,_0x6437ff){_0x6437ff=_0x6437ff||0xcc;return function(_0x4f0f47){if(_0x4f0f47){return _0x295b54['sendStatus'](_0x6437ff);}return _0x295b54[_0x6e84('0x19')](_0x6437ff)['end']();};}function respondWithResult(_0x10f32a,_0x1c5a7b){_0x1c5a7b=_0x1c5a7b||0xc8;return function(_0x50a74a){if(_0x50a74a){return _0x10f32a[_0x6e84('0x19')](_0x1c5a7b)[_0x6e84('0x1a')](_0x50a74a);}};}function respondWithFilteredResult(_0x5b7b95,_0x1c831c){return function(_0x58fe8f){if(_0x58fe8f){var _0x31d7af=typeof _0x1c831c['offset']===_0x6e84('0x1b')&&typeof _0x1c831c['limit']===_0x6e84('0x1b');var _0x2c89d8=_0x58fe8f[_0x6e84('0x1c')];var _0x2719f4=_0x31d7af?0x0:_0x1c831c[_0x6e84('0x1d')];var _0x4e83b5=_0x31d7af?_0x58fe8f['count']:_0x1c831c[_0x6e84('0x1d')]+_0x1c831c[_0x6e84('0x1e')];var _0x43bdee;if(_0x4e83b5>=_0x2c89d8){_0x4e83b5=_0x2c89d8;_0x43bdee=0xc8;}else{_0x43bdee=0xce;}_0x5b7b95[_0x6e84('0x19')](_0x43bdee);return _0x5b7b95['set'](_0x6e84('0x1f'),_0x2719f4+'-'+_0x4e83b5+'/'+_0x2c89d8)[_0x6e84('0x1a')](_0x58fe8f);}return null;};}function patchUpdates(_0x35b48b){return function(_0x5cbf6e){try{jsonpatch['apply'](_0x5cbf6e,_0x35b48b,!![]);}catch(_0x517a87){return BPromise[_0x6e84('0x20')](_0x517a87);}return _0x5cbf6e[_0x6e84('0x21')]();};}function saveUpdates(_0x4b450c,_0x2d0df5){return function(_0x48ffbc){if(_0x48ffbc){return _0x48ffbc['update'](_0x4b450c)[_0x6e84('0x22')](function(_0x2938cc){return _0x2938cc;});}return null;};}function removeEntity(_0xd09b80,_0x5881a9){return function(_0x16b7f2){if(_0x16b7f2){return _0x16b7f2[_0x6e84('0x23')]()[_0x6e84('0x22')](function(){_0xd09b80[_0x6e84('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57cf8c,_0x56b356){return function(_0x40c8c8){if(!_0x40c8c8){_0x57cf8c[_0x6e84('0x24')](0x194);}return _0x40c8c8;};}function handleError(_0x4d8958,_0x2ecf0c){_0x2ecf0c=_0x2ecf0c||0x1f4;return function(_0x254c9d){logger['error'](_0x254c9d[_0x6e84('0x25')]);if(_0x254c9d['name']){delete _0x254c9d[_0x6e84('0x26')];}_0x4d8958[_0x6e84('0x19')](_0x2ecf0c)[_0x6e84('0x27')](_0x254c9d);};}exports[_0x6e84('0x28')]=function(_0x5b5d91,_0x55205d){var _0x4ff476={},_0x39de9c={},_0x449377={'count':0x0,'rows':[]};var _0x123f83=_[_0x6e84('0x29')](db[_0x6e84('0x2a')][_0x6e84('0x2b')],function(_0x13c580){return{'name':_0x13c580[_0x6e84('0x2c')],'type':_0x13c580[_0x6e84('0x2d')]['key']};});_0x39de9c[_0x6e84('0x2e')]=_['map'](_0x123f83,_0x6e84('0x26'));_0x39de9c[_0x6e84('0x2f')]=_[_0x6e84('0x30')](_0x5b5d91[_0x6e84('0x2f')]);_0x39de9c[_0x6e84('0x31')]=_[_0x6e84('0x32')](_0x39de9c['model'],_0x39de9c[_0x6e84('0x2f')]);_0x4ff476[_0x6e84('0x33')]=_[_0x6e84('0x32')](_0x39de9c['model'],qs[_0x6e84('0x34')](_0x5b5d91[_0x6e84('0x2f')]['fields']));_0x4ff476[_0x6e84('0x33')]=_0x4ff476[_0x6e84('0x33')][_0x6e84('0x35')]?_0x4ff476['attributes']:_0x39de9c[_0x6e84('0x2e')];if(!_0x5b5d91['query']['hasOwnProperty']('nolimit')){_0x4ff476['limit']=qs[_0x6e84('0x1e')](_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x1e')]);_0x4ff476[_0x6e84('0x1d')]=qs[_0x6e84('0x1d')](_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x1d')]);}_0x4ff476[_0x6e84('0x36')]=qs[_0x6e84('0x37')](_0x5b5d91['query']['sort']);_0x4ff476[_0x6e84('0x38')]=qs[_0x6e84('0x31')](_['pick'](_0x5b5d91[_0x6e84('0x2f')],_0x39de9c[_0x6e84('0x31')]),_0x123f83);if(_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x39')]){_0x4ff476['where']=_[_0x6e84('0x3a')](_0x4ff476[_0x6e84('0x38')],{'$or':_[_0x6e84('0x29')](_0x123f83,function(_0x1a9156){if(_0x1a9156[_0x6e84('0x2d')]!==_0x6e84('0x3b')){var _0x58b7f9={};_0x58b7f9[_0x1a9156['name']]={'$like':'%'+_0x5b5d91['query']['filter']+'%'};return _0x58b7f9;}})});}_0x4ff476=_[_0x6e84('0x3a')]({},_0x4ff476,_0x5b5d91['options']);var _0xe5d78f={'where':_0x4ff476[_0x6e84('0x38')]};return db[_0x6e84('0x2a')]['count'](_0xe5d78f)[_0x6e84('0x22')](function(_0x3c7552){_0x449377[_0x6e84('0x1c')]=_0x3c7552;if(_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x3c')]){_0x4ff476['include']=[{'all':!![]}];}return db[_0x6e84('0x2a')][_0x6e84('0x3d')](_0x4ff476);})[_0x6e84('0x22')](function(_0x1395e6){_0x449377[_0x6e84('0x3e')]=_0x1395e6;return _0x449377;})[_0x6e84('0x22')](respondWithFilteredResult(_0x55205d,_0x4ff476))[_0x6e84('0x3f')](handleError(_0x55205d,null));};exports['show']=function(_0xff3819,_0x46ca02){var _0x585aad={'raw':!![],'where':{'id':_0xff3819[_0x6e84('0x40')]['id']}},_0x5607c9={};_0x5607c9['model']=_['keys'](db[_0x6e84('0x2a')][_0x6e84('0x2b')]);_0x5607c9[_0x6e84('0x2f')]=_['keys'](_0xff3819['query']);_0x5607c9[_0x6e84('0x31')]=_[_0x6e84('0x32')](_0x5607c9['model'],_0x5607c9[_0x6e84('0x2f')]);_0x585aad[_0x6e84('0x33')]=_['intersection'](_0x5607c9[_0x6e84('0x2e')],qs[_0x6e84('0x34')](_0xff3819[_0x6e84('0x2f')]['fields']));_0x585aad[_0x6e84('0x33')]=_0x585aad[_0x6e84('0x33')]['length']?_0x585aad[_0x6e84('0x33')]:_0x5607c9['model'];if(_0xff3819['query'][_0x6e84('0x3c')]){_0x585aad[_0x6e84('0x41')]=[{'all':!![]}];}_0x585aad=_[_0x6e84('0x3a')]({},_0x585aad,_0xff3819[_0x6e84('0x42')]);return db['FaxApplication'][_0x6e84('0x43')](_0x585aad)[_0x6e84('0x22')](handleEntityNotFound(_0x46ca02,null))['then'](respondWithResult(_0x46ca02,null))[_0x6e84('0x3f')](handleError(_0x46ca02,null));};exports[_0x6e84('0x44')]=function(_0x2c309c,_0x48cdbc){return db[_0x6e84('0x2a')][_0x6e84('0x44')](_0x2c309c[_0x6e84('0x45')],{})[_0x6e84('0x22')](respondWithResult(_0x48cdbc,0xc9))[_0x6e84('0x3f')](handleError(_0x48cdbc,null));};exports[_0x6e84('0x46')]=function(_0x3a6b01,_0x411334){if(_0x3a6b01[_0x6e84('0x45')]['id']){delete _0x3a6b01[_0x6e84('0x45')]['id'];}return db[_0x6e84('0x2a')][_0x6e84('0x43')]({'where':{'id':_0x3a6b01['params']['id']}})['then'](handleEntityNotFound(_0x411334,null))[_0x6e84('0x22')](saveUpdates(_0x3a6b01[_0x6e84('0x45')],null))[_0x6e84('0x22')](respondWithResult(_0x411334,null))['catch'](handleError(_0x411334,null));};exports['destroy']=function(_0x3339f2,_0x51b4a4){return db[_0x6e84('0x2a')]['find']({'where':{'id':_0x3339f2[_0x6e84('0x40')]['id']}})[_0x6e84('0x22')](handleEntityNotFound(_0x51b4a4,null))['then'](removeEntity(_0x51b4a4,null))['catch'](handleError(_0x51b4a4,null));};
\ No newline at end of file
+var _0x1d4a=['api','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','undefined','count','limit','set','apply','reject','save','update','then','destroy','end','name','send','index','FaxApplication','rawAttributes','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x403c00,_0x14a828){var _0x57985c=function(_0xdd59e8){while(--_0xdd59e8){_0x403c00['push'](_0x403c00['shift']());}};_0x57985c(++_0x14a828);}(_0x1d4a,0x1ec));var _0xa1d4=function(_0x46363f,_0x37c62e){_0x46363f=_0x46363f-0x0;var _0x5bc670=_0x1d4a[_0x46363f];return _0x5bc670;};'use strict';var emlformat=require(_0xa1d4('0x0'));var rimraf=require(_0xa1d4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa1d4('0x2'));var rp=require('request-promise');var moment=require(_0xa1d4('0x3'));var BPromise=require(_0xa1d4('0x4'));var Mustache=require(_0xa1d4('0x5'));var util=require(_0xa1d4('0x6'));var path=require(_0xa1d4('0x7'));var sox=require(_0xa1d4('0x8'));var csv=require(_0xa1d4('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa1d4('0xa'));var _=require(_0xa1d4('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa1d4('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa1d4('0x9'));var querystring=require(_0xa1d4('0xd'));var Papa=require(_0xa1d4('0xe'));var Redis=require('ioredis');var authService=require(_0xa1d4('0xf'));var qs=require(_0xa1d4('0x10'));var as=require(_0xa1d4('0x11'));var hardwareService=require(_0xa1d4('0x12'));var logger=require('../../config/logger')(_0xa1d4('0x13'));var utils=require(_0xa1d4('0x14'));var config=require(_0xa1d4('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xa1d4('0x16'))['db'];function respondWithStatusCode(_0x3f2535,_0x47deea){_0x47deea=_0x47deea||0xcc;return function(_0xf5d282){if(_0xf5d282){return _0x3f2535['sendStatus'](_0x47deea);}return _0x3f2535['status'](_0x47deea)['end']();};}function respondWithResult(_0x2ad5fd,_0x418c84){_0x418c84=_0x418c84||0xc8;return function(_0x341c6d){if(_0x341c6d){return _0x2ad5fd[_0xa1d4('0x17')](_0x418c84)[_0xa1d4('0x18')](_0x341c6d);}};}function respondWithFilteredResult(_0x6849b3,_0x2e6395){return function(_0x2d1641){if(_0x2d1641){var _0x5fa5df=typeof _0x2e6395[_0xa1d4('0x19')]===_0xa1d4('0x1a')&&typeof _0x2e6395['limit']===_0xa1d4('0x1a');var _0x122b1f=_0x2d1641[_0xa1d4('0x1b')];var _0x2cae39=_0x5fa5df?0x0:_0x2e6395[_0xa1d4('0x19')];var _0x4d5f44=_0x5fa5df?_0x2d1641[_0xa1d4('0x1b')]:_0x2e6395[_0xa1d4('0x19')]+_0x2e6395[_0xa1d4('0x1c')];var _0x5c5db0;if(_0x4d5f44>=_0x122b1f){_0x4d5f44=_0x122b1f;_0x5c5db0=0xc8;}else{_0x5c5db0=0xce;}_0x6849b3[_0xa1d4('0x17')](_0x5c5db0);return _0x6849b3[_0xa1d4('0x1d')]('Content-Range',_0x2cae39+'-'+_0x4d5f44+'/'+_0x122b1f)[_0xa1d4('0x18')](_0x2d1641);}return null;};}function patchUpdates(_0x22e1e4){return function(_0xefecbd){try{jsonpatch[_0xa1d4('0x1e')](_0xefecbd,_0x22e1e4,!![]);}catch(_0x337d00){return BPromise[_0xa1d4('0x1f')](_0x337d00);}return _0xefecbd[_0xa1d4('0x20')]();};}function saveUpdates(_0x1cc419,_0x1f6fdf){return function(_0x27861e){if(_0x27861e){return _0x27861e[_0xa1d4('0x21')](_0x1cc419)[_0xa1d4('0x22')](function(_0x5d7d14){return _0x5d7d14;});}return null;};}function removeEntity(_0x417978,_0x4317d3){return function(_0x1880d9){if(_0x1880d9){return _0x1880d9[_0xa1d4('0x23')]()['then'](function(){_0x417978[_0xa1d4('0x17')](0xcc)[_0xa1d4('0x24')]();});}};}function handleEntityNotFound(_0x1c54df,_0x4fa2be){return function(_0x5b5877){if(!_0x5b5877){_0x1c54df['sendStatus'](0x194);}return _0x5b5877;};}function handleError(_0x993611,_0x4f5476){_0x4f5476=_0x4f5476||0x1f4;return function(_0xd11e08){logger['error'](_0xd11e08['stack']);if(_0xd11e08[_0xa1d4('0x25')]){delete _0xd11e08[_0xa1d4('0x25')];}_0x993611[_0xa1d4('0x17')](_0x4f5476)[_0xa1d4('0x26')](_0xd11e08);};}exports[_0xa1d4('0x27')]=function(_0x1a0bbc,_0x4b8b9d){var _0xd75d34={},_0x2ef769={},_0x45e1ac={'count':0x0,'rows':[]};var _0x8d3999=_['map'](db[_0xa1d4('0x28')][_0xa1d4('0x29')],function(_0x275d5c){return{'name':_0x275d5c['fieldName'],'type':_0x275d5c[_0xa1d4('0x2a')][_0xa1d4('0x2b')]};});_0x2ef769[_0xa1d4('0x2c')]=_[_0xa1d4('0x2d')](_0x8d3999,'name');_0x2ef769[_0xa1d4('0x2e')]=_[_0xa1d4('0x2f')](_0x1a0bbc['query']);_0x2ef769[_0xa1d4('0x30')]=_[_0xa1d4('0x31')](_0x2ef769[_0xa1d4('0x2c')],_0x2ef769['query']);_0xd75d34[_0xa1d4('0x32')]=_['intersection'](_0x2ef769['model'],qs['fields'](_0x1a0bbc[_0xa1d4('0x2e')][_0xa1d4('0x33')]));_0xd75d34[_0xa1d4('0x32')]=_0xd75d34['attributes'][_0xa1d4('0x34')]?_0xd75d34['attributes']:_0x2ef769[_0xa1d4('0x2c')];if(!_0x1a0bbc[_0xa1d4('0x2e')][_0xa1d4('0x35')](_0xa1d4('0x36'))){_0xd75d34[_0xa1d4('0x1c')]=qs[_0xa1d4('0x1c')](_0x1a0bbc['query'][_0xa1d4('0x1c')]);_0xd75d34[_0xa1d4('0x19')]=qs[_0xa1d4('0x19')](_0x1a0bbc[_0xa1d4('0x2e')]['offset']);}_0xd75d34[_0xa1d4('0x37')]=qs[_0xa1d4('0x38')](_0x1a0bbc['query']['sort']);_0xd75d34['where']=qs[_0xa1d4('0x30')](_[_0xa1d4('0x39')](_0x1a0bbc[_0xa1d4('0x2e')],_0x2ef769[_0xa1d4('0x30')]),_0x8d3999);if(_0x1a0bbc[_0xa1d4('0x2e')][_0xa1d4('0x3a')]){_0xd75d34[_0xa1d4('0x3b')]=_['merge'](_0xd75d34[_0xa1d4('0x3b')],{'$or':_[_0xa1d4('0x2d')](_0x8d3999,function(_0x4eebee){if(_0x4eebee[_0xa1d4('0x2a')]!==_0xa1d4('0x3c')){var _0x301f3d={};_0x301f3d[_0x4eebee[_0xa1d4('0x25')]]={'$like':'%'+_0x1a0bbc['query'][_0xa1d4('0x3a')]+'%'};return _0x301f3d;}})});}_0xd75d34=_[_0xa1d4('0x3d')]({},_0xd75d34,_0x1a0bbc[_0xa1d4('0x3e')]);var _0x5a55fe={'where':_0xd75d34[_0xa1d4('0x3b')]};return db[_0xa1d4('0x28')]['count'](_0x5a55fe)[_0xa1d4('0x22')](function(_0x10189c){_0x45e1ac['count']=_0x10189c;if(_0x1a0bbc[_0xa1d4('0x2e')][_0xa1d4('0x3f')]){_0xd75d34[_0xa1d4('0x40')]=[{'all':!![]}];}return db[_0xa1d4('0x28')][_0xa1d4('0x41')](_0xd75d34);})[_0xa1d4('0x22')](function(_0x5d714c){_0x45e1ac[_0xa1d4('0x42')]=_0x5d714c;return _0x45e1ac;})[_0xa1d4('0x22')](respondWithFilteredResult(_0x4b8b9d,_0xd75d34))[_0xa1d4('0x43')](handleError(_0x4b8b9d,null));};exports[_0xa1d4('0x44')]=function(_0x500dc2,_0x52e1ff){var _0x10b53c={'raw':!![],'where':{'id':_0x500dc2[_0xa1d4('0x45')]['id']}},_0x4318ad={};_0x4318ad[_0xa1d4('0x2c')]=_[_0xa1d4('0x2f')](db[_0xa1d4('0x28')][_0xa1d4('0x29')]);_0x4318ad[_0xa1d4('0x2e')]=_[_0xa1d4('0x2f')](_0x500dc2['query']);_0x4318ad['filters']=_['intersection'](_0x4318ad[_0xa1d4('0x2c')],_0x4318ad[_0xa1d4('0x2e')]);_0x10b53c[_0xa1d4('0x32')]=_['intersection'](_0x4318ad['model'],qs[_0xa1d4('0x33')](_0x500dc2[_0xa1d4('0x2e')][_0xa1d4('0x33')]));_0x10b53c['attributes']=_0x10b53c['attributes'][_0xa1d4('0x34')]?_0x10b53c[_0xa1d4('0x32')]:_0x4318ad[_0xa1d4('0x2c')];if(_0x500dc2[_0xa1d4('0x2e')][_0xa1d4('0x3f')]){_0x10b53c['include']=[{'all':!![]}];}_0x10b53c=_['merge']({},_0x10b53c,_0x500dc2[_0xa1d4('0x3e')]);return db['FaxApplication'][_0xa1d4('0x46')](_0x10b53c)[_0xa1d4('0x22')](handleEntityNotFound(_0x52e1ff,null))['then'](respondWithResult(_0x52e1ff,null))[_0xa1d4('0x43')](handleError(_0x52e1ff,null));};exports[_0xa1d4('0x47')]=function(_0x53d896,_0x4697fe){return db[_0xa1d4('0x28')][_0xa1d4('0x47')](_0x53d896[_0xa1d4('0x48')],{})['then'](respondWithResult(_0x4697fe,0xc9))[_0xa1d4('0x43')](handleError(_0x4697fe,null));};exports['update']=function(_0x5a3946,_0x49be16){if(_0x5a3946[_0xa1d4('0x48')]['id']){delete _0x5a3946[_0xa1d4('0x48')]['id'];}return db[_0xa1d4('0x28')][_0xa1d4('0x46')]({'where':{'id':_0x5a3946['params']['id']}})[_0xa1d4('0x22')](handleEntityNotFound(_0x49be16,null))[_0xa1d4('0x22')](saveUpdates(_0x5a3946['body'],null))[_0xa1d4('0x22')](respondWithResult(_0x49be16,null))[_0xa1d4('0x43')](handleError(_0x49be16,null));};exports[_0xa1d4('0x23')]=function(_0x565ec5,_0x1f01e0){return db[_0xa1d4('0x28')][_0xa1d4('0x46')]({'where':{'id':_0x565ec5[_0xa1d4('0x45')]['id']}})['then'](handleEntityNotFound(_0x1f01e0,null))[_0xa1d4('0x22')](removeEntity(_0x1f01e0,null))[_0xa1d4('0x43')](handleError(_0x1f01e0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73c7=['./faxApplication.attributes','exports','define','FaxApplication','fax_applications','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0xd04a8b,_0x5b3b3d){var _0x1c0a13=function(_0x50f695){while(--_0x50f695){_0xd04a8b['push'](_0xd04a8b['shift']());}};_0x1c0a13(++_0x5b3b3d);}(_0x73c7,0x1cc));var _0x773c=function(_0x2cfc8c,_0x5472df){_0x2cfc8c=_0x2cfc8c-0x0;var _0x1de813=_0x73c7[_0x2cfc8c];return _0x1de813;};'use strict';var _=require(_0x773c('0x0'));var util=require('util');var logger=require(_0x773c('0x1'))('api');var moment=require(_0x773c('0x2'));var BPromise=require(_0x773c('0x3'));var rp=require(_0x773c('0x4'));var fs=require('fs');var path=require(_0x773c('0x5'));var rimraf=require(_0x773c('0x6'));var config=require(_0x773c('0x7'));var attributes=require(_0x773c('0x8'));module[_0x773c('0x9')]=function(_0x31610f,_0x419112){return _0x31610f[_0x773c('0xa')](_0x773c('0xb'),attributes,{'tableName':_0x773c('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xef3f=['utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./faxApplication.attributes','exports','FaxApplication','fax_applications'];(function(_0x2d8a6f,_0x2d711a){var _0x1a6f81=function(_0x800727){while(--_0x800727){_0x2d8a6f['push'](_0x2d8a6f['shift']());}};_0x1a6f81(++_0x2d711a);}(_0xef3f,0x1f1));var _0xfef3=function(_0x452097,_0x1b2f4e){_0x452097=_0x452097-0x0;var _0x885e43=_0xef3f[_0x452097];return _0x885e43;};'use strict';var _=require(_0xfef3('0x0'));var util=require(_0xfef3('0x1'));var logger=require(_0xfef3('0x2'))(_0xfef3('0x3'));var moment=require(_0xfef3('0x4'));var BPromise=require(_0xfef3('0x5'));var rp=require(_0xfef3('0x6'));var fs=require('fs');var path=require(_0xfef3('0x7'));var rimraf=require(_0xfef3('0x8'));var config=require('../../config/environment');var attributes=require(_0xfef3('0x9'));module[_0xfef3('0xa')]=function(_0x2e0120,_0x1cea4b){return _0x2e0120['define'](_0xfef3('0xb'),attributes,{'tableName':_0xfef3('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xfef3('0xd'),'collate':_0xfef3('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36ea=['then','info','FaxApplication,\x20%s,\x20%s','request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','UpdateFaxApplication','FaxApplication','body','options','raw','where','attributes','catch','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x4bca3e,_0x2278a7){var _0x1a7bca=function(_0xab9a78){while(--_0xab9a78){_0x4bca3e['push'](_0x4bca3e['shift']());}};_0x1a7bca(++_0x2278a7);}(_0x36ea,0xc1));var _0xa36e=function(_0x3cf4d3,_0x48065e){_0x3cf4d3=_0x3cf4d3-0x0;var _0x4e547b=_0x36ea[_0x3cf4d3];return _0x4e547b;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xa36e('0x0'));var BPromise=require('bluebird');var rs=require(_0xa36e('0x1'));var fs=require('fs');var Redis=require(_0xa36e('0x2'));var db=require(_0xa36e('0x3'))['db'];var utils=require(_0xa36e('0x4'));var logger=require(_0xa36e('0x5'))(_0xa36e('0x6'));var config=require(_0xa36e('0x7'));var jayson=require(_0xa36e('0x8'));var client=jayson['client'][_0xa36e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1bb55b,_0x48c51c,_0x2c10b6){return new BPromise(function(_0x37cc5d,_0x361bfc){return client['request'](_0x1bb55b,_0x2c10b6)[_0xa36e('0xa')](function(_0x2bf81c){logger[_0xa36e('0xb')](_0xa36e('0xc'),_0x48c51c,_0xa36e('0xd'));logger[_0xa36e('0xe')](_0xa36e('0xf'),_0x48c51c,_0xa36e('0xd'),JSON[_0xa36e('0x10')](_0x2bf81c));if(_0x2bf81c[_0xa36e('0x11')]){if(_0x2bf81c['error'][_0xa36e('0x12')]===0x1f4){logger[_0xa36e('0x11')]('FaxApplication,\x20%s,\x20%s',_0x48c51c,_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);return _0x361bfc(_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);}logger[_0xa36e('0x11')](_0xa36e('0xc'),_0x48c51c,_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);return _0x37cc5d(_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);}else{logger['info'](_0xa36e('0xc'),_0x48c51c,'request\x20sent');_0x37cc5d(_0x2bf81c[_0xa36e('0x14')][_0xa36e('0x13')]);}})['catch'](function(_0xf15a9c){logger[_0xa36e('0x11')](_0xa36e('0xc'),_0x48c51c,_0xf15a9c);_0x361bfc(_0xf15a9c);});});}exports[_0xa36e('0x15')]=function(_0x53f628){var _0x4d79c8=this;return new Promise(function(_0x269507,_0x81d40e){return db[_0xa36e('0x16')]['update'](_0x53f628[_0xa36e('0x17')],{'raw':_0x53f628[_0xa36e('0x18')]?_0x53f628[_0xa36e('0x18')][_0xa36e('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x53f628[_0xa36e('0x18')]?_0x53f628['options'][_0xa36e('0x1a')]||null:null,'attributes':_0x53f628[_0xa36e('0x18')]?_0x53f628[_0xa36e('0x18')][_0xa36e('0x1b')]||null:null,'limit':_0x53f628[_0xa36e('0x18')]?_0x53f628[_0xa36e('0x18')]['limit']||null:null})[_0xa36e('0xa')](function(_0xe874be){logger[_0xa36e('0xb')]('UpdateFaxApplication',_0x53f628);logger[_0xa36e('0xe')](_0xa36e('0x15'),_0x53f628,JSON['stringify'](_0xe874be));_0x269507(_0xe874be);})[_0xa36e('0x1c')](function(_0x310827){logger['error'](_0xa36e('0x15'),_0x310827[_0xa36e('0x13')],_0x53f628);_0x81d40e(_0x4d79c8[_0xa36e('0x11')](0x1f4,_0x310827[_0xa36e('0x13')]));});});};
\ No newline at end of file
+var _0x8e0c=['code','message','FaxApplication,\x20%s,\x20%s','request\x20sent','catch','FaxApplication','update','body','options','raw','attributes','limit','UpdateFaxApplication','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','info','debug','FaxApplication,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x3a4c07,_0x18440c){var _0x5a4943=function(_0x4afb24){while(--_0x4afb24){_0x3a4c07['push'](_0x3a4c07['shift']());}};_0x5a4943(++_0x18440c);}(_0x8e0c,0xe5));var _0xc8e0=function(_0x5bccad,_0x3dd8d8){_0x5bccad=_0x5bccad-0x0;var _0x3f53fc=_0x8e0c[_0x5bccad];return _0x3f53fc;};'use strict';var _=require(_0xc8e0('0x0'));var util=require('util');var moment=require(_0xc8e0('0x1'));var BPromise=require(_0xc8e0('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc8e0('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xc8e0('0x4'));var logger=require(_0xc8e0('0x5'))('rpc');var config=require(_0xc8e0('0x6'));var jayson=require(_0xc8e0('0x7'));var client=jayson[_0xc8e0('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x11397f,_0x1ff073,_0x15c5a4){return new BPromise(function(_0x3cc631,_0x1c2fcf){return client['request'](_0x11397f,_0x15c5a4)['then'](function(_0x1475fb){logger[_0xc8e0('0x9')]('FaxApplication,\x20%s,\x20%s',_0x1ff073,'request\x20sent');logger[_0xc8e0('0xa')](_0xc8e0('0xb'),_0x1ff073,'request\x20sent',JSON[_0xc8e0('0xc')](_0x1475fb));if(_0x1475fb[_0xc8e0('0xd')]){if(_0x1475fb[_0xc8e0('0xd')][_0xc8e0('0xe')]===0x1f4){logger['error']('FaxApplication,\x20%s,\x20%s',_0x1ff073,_0x1475fb[_0xc8e0('0xd')][_0xc8e0('0xf')]);return _0x1c2fcf(_0x1475fb[_0xc8e0('0xd')][_0xc8e0('0xf')]);}logger[_0xc8e0('0xd')](_0xc8e0('0x10'),_0x1ff073,_0x1475fb[_0xc8e0('0xd')][_0xc8e0('0xf')]);return _0x3cc631(_0x1475fb[_0xc8e0('0xd')]['message']);}else{logger[_0xc8e0('0x9')](_0xc8e0('0x10'),_0x1ff073,_0xc8e0('0x11'));_0x3cc631(_0x1475fb['result']['message']);}})[_0xc8e0('0x12')](function(_0x35df36){logger[_0xc8e0('0xd')](_0xc8e0('0x10'),_0x1ff073,_0x35df36);_0x1c2fcf(_0x35df36);});});}exports['UpdateFaxApplication']=function(_0x1d2b30){var _0x57fe01=this;return new Promise(function(_0x6fca73,_0x173465){return db[_0xc8e0('0x13')][_0xc8e0('0x14')](_0x1d2b30[_0xc8e0('0x15')],{'raw':_0x1d2b30[_0xc8e0('0x16')]?_0x1d2b30['options'][_0xc8e0('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1d2b30[_0xc8e0('0x16')]?_0x1d2b30[_0xc8e0('0x16')]['where']||null:null,'attributes':_0x1d2b30[_0xc8e0('0x16')]?_0x1d2b30[_0xc8e0('0x16')][_0xc8e0('0x18')]||null:null,'limit':_0x1d2b30[_0xc8e0('0x16')]?_0x1d2b30[_0xc8e0('0x16')][_0xc8e0('0x19')]||null:null})['then'](function(_0x4486bf){logger[_0xc8e0('0x9')](_0xc8e0('0x1a'),_0x1d2b30);logger[_0xc8e0('0xa')](_0xc8e0('0x1a'),_0x1d2b30,JSON[_0xc8e0('0xc')](_0x4486bf));_0x6fca73(_0x4486bf);})[_0xc8e0('0x12')](function(_0x4e3310){logger[_0xc8e0('0xd')](_0xc8e0('0x1a'),_0x4e3310[_0xc8e0('0xf')],_0x1d2b30);_0x173465(_0x57fe01[_0xc8e0('0xd')](0x1f4,_0x4e3310[_0xc8e0('0xf')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['update','delete','destroy','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','show','create','put','/:id'];(function(_0x3e6acb,_0x461bca){var _0x4ecc81=function(_0x331442){while(--_0x331442){_0x3e6acb['push'](_0x3e6acb['shift']());}};_0x4ecc81(++_0x461bca);}(_0xd8b0,0xad));var _0x0d8b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xd8b0[_0x122ef9];return _0x42fba0;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./faxApplication.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/:id',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['post']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xb')]);router[_0x0d8b('0xc')](_0x0d8b('0xd'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xd'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xd4a2=['../../components/auth/service','../../config/environment','./faxApplication.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','multer','connect-timeout','Router'];(function(_0x2f509b,_0x29434e){var _0x3d8be2=function(_0x2858b2){while(--_0x2858b2){_0x2f509b['push'](_0x2f509b['shift']());}};_0x3d8be2(++_0x29434e);}(_0xd4a2,0x173));var _0x2d4a=function(_0x179cec,_0x63b238){_0x179cec=_0x179cec-0x0;var _0xdeb550=_0xd4a2[_0x179cec];return _0xdeb550;};'use strict';var multer=require(_0x2d4a('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x2d4a('0x1'));var express=require('express');var router=express[_0x2d4a('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x2d4a('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x2d4a('0x4'));var controller=require(_0x2d4a('0x5'));router[_0x2d4a('0x6')]('/',auth[_0x2d4a('0x7')](),controller[_0x2d4a('0x8')]);router['get'](_0x2d4a('0x9'),auth[_0x2d4a('0x7')](),controller[_0x2d4a('0xa')]);router[_0x2d4a('0xb')]('/',auth[_0x2d4a('0x7')](),controller[_0x2d4a('0xc')]);router[_0x2d4a('0xd')](_0x2d4a('0x9'),auth[_0x2d4a('0x7')](),controller[_0x2d4a('0xe')]);router[_0x2d4a('0xf')](_0x2d4a('0x9'),auth['isAuthenticated'](),controller['destroy']);module[_0x2d4a('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7225=['ENUM','out','sequelize','exports','BOOLEAN','DATE','STRING'];(function(_0x159c2f,_0xd39d20){var _0x591f68=function(_0x161ba6){while(--_0x161ba6){_0x159c2f['push'](_0x159c2f['shift']());}};_0x591f68(++_0xd39d20);}(_0x7225,0x128));var _0x5722=function(_0x4e1965,_0x2aaa2c){_0x4e1965=_0x4e1965-0x0;var _0x1cd467=_0x7225[_0x4e1965];return _0x1cd467;};'use strict';var Sequelize=require(_0x5722('0x0'));module[_0x5722('0x1')]={'closed':{'type':Sequelize[_0x5722('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x5722('0x3')]},'disposition':{'type':Sequelize[_0x5722('0x4')]},'secondDisposition':{'type':Sequelize[_0x5722('0x4')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x5722('0x3')]},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize[_0x5722('0x5')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x5722('0x5')]('in',_0x5722('0x6')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0x53cd=['out','sequelize','exports','DATE','STRING','ENUM'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0x53cd,0xf7));var _0xd53c=function(_0x3620c5,_0x1735c9){_0x3620c5=_0x3620c5-0x0;var _0x5d9008=_0x53cd[_0x3620c5];return _0x5d9008;};'use strict';var Sequelize=require(_0xd53c('0x0'));module[_0xd53c('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xd53c('0x2')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0xd53c('0x3')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0xd53c('0x2')]},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize[_0xd53c('0x4')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xd53c('0x2')]},'lastMsgDirection':{'type':Sequelize[_0xd53c('0x4')]('in',_0xd53c('0x5')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb18=['CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','operator','UserId','body','some','isEmpty','i.FaxAccountId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','FaxAccountId','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','sequelize','ui.FaxInteractionId\x20IN\x20?','groupBy','FaxInteractionId','all','rows','show','params','rawAttributes','includeAll','include','options','catch','create','describe','addMessage','FaxMessage','ids','omit','getMessages','findAll','addTags','setTags','spread','emit','faxInteractionTags:save','removeTags','download','join','root','server','attachments','format','transcript-%d-%s.zip','Attachment','Messages','mkdirSync','basename','existsSync','createReadStream','log','unlinkSync','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','Users','map','fullname','TagIds','Tags','split','forEach','push','index','FaxInteraction','fieldName','key','query','keys','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','select','field','color','u.fullname','ui.FaxInteractionId','from','user_has_fax_interactions','left_join','u.id\x20=\x20ui.UserId','fax_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','o.id\x20=\x20i.UserId','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20=\x200','Contact','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','type','text','start','Tag'];(function(_0x200c8c,_0x313891){var _0x308a71=function(_0x9ea5df){while(--_0x9ea5df){_0x200c8c['push'](_0x200c8c['shift']());}};_0x308a71(++_0x313891);}(_0xdb18,0x146));var _0x8db1=function(_0xc0b246,_0x3163ef){_0xc0b246=_0xc0b246-0x0;var _0x54eb21=_0xdb18[_0xc0b246];return _0x54eb21;};'use strict';var emlformat=require(_0x8db1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8db1('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8db1('0x2'));var moment=require(_0x8db1('0x3'));var BPromise=require(_0x8db1('0x4'));var Mustache=require(_0x8db1('0x5'));var util=require(_0x8db1('0x6'));var path=require(_0x8db1('0x7'));var sox=require(_0x8db1('0x8'));var csv=require('to-csv');var ejs=require(_0x8db1('0x9'));var fs=require('fs');var fs_extra=require(_0x8db1('0xa'));var _=require('lodash');var squel=require(_0x8db1('0xb'));var crypto=require(_0x8db1('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x8db1('0xd'));var toCsv=require('to-csv');var querystring=require(_0x8db1('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8db1('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x8db1('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8db1('0x11'))(_0x8db1('0x12'));var utils=require(_0x8db1('0x13'));var config=require(_0x8db1('0x14'));var licenseUtil=require(_0x8db1('0x15'));var db=require(_0x8db1('0x16'))['db'];config[_0x8db1('0x17')]=_[_0x8db1('0x18')](config[_0x8db1('0x17')],{'host':_0x8db1('0x19'),'port':0x18eb});var socket=require(_0x8db1('0x1a'))(new Redis(config['redis']));require('./faxInteraction.socket')[_0x8db1('0x1b')](socket);function respondWithStatusCode(_0x5b8d69,_0x18b619){_0x18b619=_0x18b619||0xcc;return function(_0x3e103d){if(_0x3e103d){return _0x5b8d69[_0x8db1('0x1c')](_0x18b619);}return _0x5b8d69[_0x8db1('0x1d')](_0x18b619)[_0x8db1('0x1e')]();};}function respondWithResult(_0x42afd6,_0x91761e){_0x91761e=_0x91761e||0xc8;return function(_0x5367c0){if(_0x5367c0){return _0x42afd6[_0x8db1('0x1d')](_0x91761e)[_0x8db1('0x1f')](_0x5367c0);}};}function respondWithFilteredResult(_0x389756,_0x235aeb){return function(_0x1917d6){if(_0x1917d6){var _0x4dfb49=typeof _0x235aeb['offset']===_0x8db1('0x20')&&typeof _0x235aeb[_0x8db1('0x21')]==='undefined';var _0x5d7ff3=_0x1917d6['count'];var _0x5c1e11=_0x4dfb49?0x0:_0x235aeb[_0x8db1('0x22')];var _0x210bf5=_0x4dfb49?_0x1917d6[_0x8db1('0x23')]:_0x235aeb[_0x8db1('0x22')]+_0x235aeb['limit'];var _0x8a2549;if(_0x210bf5>=_0x5d7ff3){_0x210bf5=_0x5d7ff3;_0x8a2549=0xc8;}else{_0x8a2549=0xce;}_0x389756[_0x8db1('0x1d')](_0x8a2549);return _0x389756[_0x8db1('0x24')](_0x8db1('0x25'),_0x5c1e11+'-'+_0x210bf5+'/'+_0x5d7ff3)['json'](_0x1917d6);}return null;};}function patchUpdates(_0x37a9b9){return function(_0x5bc489){try{jsonpatch[_0x8db1('0x26')](_0x5bc489,_0x37a9b9,!![]);}catch(_0x389b5c){return BPromise[_0x8db1('0x27')](_0x389b5c);}return _0x5bc489[_0x8db1('0x28')]();};}function saveUpdates(_0x546bcf,_0x44f58e){return function(_0x584782){if(_0x584782){return _0x584782[_0x8db1('0x29')](_0x546bcf)[_0x8db1('0x2a')](function(_0x149132){return _0x149132;});}return null;};}function removeEntity(_0x16fccf,_0x57f029){return function(_0x824a49){if(_0x824a49){return _0x824a49[_0x8db1('0x2b')]()['then'](function(){_0x16fccf[_0x8db1('0x1d')](0xcc)[_0x8db1('0x1e')]();});}};}function handleEntityNotFound(_0x144d21,_0x1e4f0c){return function(_0x1d7d32){if(!_0x1d7d32){_0x144d21[_0x8db1('0x1c')](0x194);}return _0x1d7d32;};}function handleError(_0x16e4b9,_0x2b27e8){_0x2b27e8=_0x2b27e8||0x1f4;return function(_0x47818b){logger[_0x8db1('0x2c')](_0x47818b[_0x8db1('0x2d')]);if(_0x47818b[_0x8db1('0x2e')]){delete _0x47818b[_0x8db1('0x2e')];}_0x16e4b9[_0x8db1('0x1d')](_0x2b27e8)[_0x8db1('0x2f')](_0x47818b);};}function getInteractionUsers(_0x50bf1d,_0x5cfa54){return new BPromise(function(_0x4af41a,_0x2c582d){try{if(_0x5cfa54[_0x50bf1d['id']]){_0x50bf1d[_0x8db1('0x30')]=_[_0x8db1('0x31')](_0x5cfa54[_0x50bf1d['id']],function(_0x3f92a1){return{'id':_0x3f92a1['id'],'fullname':_0x3f92a1[_0x8db1('0x32')]};});}}catch(_0x5f2317){_0x2c582d(_0x5f2317);}_0x4af41a(_0x50bf1d);});}function getInteractionTags(_0x3e0ecf,_0x42d5a1){return new BPromise(function(_0x1371f3,_0x45375f){try{if(_0x3e0ecf[_0x8db1('0x33')]){_0x3e0ecf[_0x8db1('0x34')]=[];_0x3e0ecf[_0x8db1('0x33')][_0x8db1('0x35')](',')[_0x8db1('0x36')](function(_0x326b0b){_0x3e0ecf[_0x8db1('0x34')][_0x8db1('0x37')](_0x42d5a1[_0x326b0b]);});}delete _0x3e0ecf[_0x8db1('0x33')];}catch(_0x384175){_0x45375f(_0x384175);}_0x1371f3(_0x3e0ecf);});}function updateFaxInteraction(_0x29a581,_0x3a214d,_0x3f5b01){return new BPromise(function(_0x55cef7,_0x5d9f8b){return getInteractionUsers(_0x29a581,_0x3f5b01)[_0x8db1('0x2a')](function(_0x58b859){return getInteractionTags(_0x58b859,_0x3a214d);})['then'](function(_0x532ad0){_0x55cef7(_0x532ad0);})['catch'](function(_0x5115a5){_0x5d9f8b(_0x5115a5);});});}exports[_0x8db1('0x38')]=function(_0x19c352,_0x9fffcf){var _0x162cde={},_0x75cd85={},_0x3f3c46={'count':0x0,'rows':[]};var _0x33032d=_[_0x8db1('0x31')](db[_0x8db1('0x39')]['rawAttributes'],function(_0x34481f){return{'name':_0x34481f[_0x8db1('0x3a')],'type':_0x34481f['type'][_0x8db1('0x3b')]};});_0x75cd85['model']=_['map'](_0x33032d,'name');_0x75cd85[_0x8db1('0x3c')]=_[_0x8db1('0x3d')](_0x19c352[_0x8db1('0x3c')]);_0x75cd85['filters']=_[_0x8db1('0x3e')](_0x75cd85['model'],_0x75cd85[_0x8db1('0x3c')]);_0x162cde['attributes']=_['intersection'](_0x75cd85[_0x8db1('0x3f')],qs[_0x8db1('0x40')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x40')]));_0x162cde[_0x8db1('0x41')]=_0x162cde[_0x8db1('0x41')]['length']?_0x162cde[_0x8db1('0x41')]:_0x75cd85['model'];if(!_0x19c352[_0x8db1('0x3c')][_0x8db1('0x42')](_0x8db1('0x43'))){_0x162cde['limit']=qs[_0x8db1('0x21')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x21')]);_0x162cde[_0x8db1('0x22')]=qs[_0x8db1('0x22')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x22')]);}_0x162cde[_0x8db1('0x44')]=qs[_0x8db1('0x45')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x45')]);_0x162cde[_0x8db1('0x46')]=qs[_0x8db1('0x47')](_[_0x8db1('0x48')](_0x19c352['query'],_0x75cd85['filters']),_0x33032d);var _0x2a22d3=[];var _0x4bc72d=squel[_0x8db1('0x49')]()[_0x8db1('0x4a')]('id')['field'](_0x8db1('0x2e'))[_0x8db1('0x4a')](_0x8db1('0x4b'))['from']('tools_tags');var _0x3e65b9=squel[_0x8db1('0x49')]()['field']('u.id')['field'](_0x8db1('0x4c'))[_0x8db1('0x4a')](_0x8db1('0x4d'))[_0x8db1('0x4e')](_0x8db1('0x4f'),'ui')[_0x8db1('0x50')]('users','u',_0x8db1('0x51'));var _0x3d7c63=squel[_0x8db1('0x49')]()[_0x8db1('0x4e')](_0x8db1('0x52'),'i')['left_join'](_0x8db1('0x53'),'c',_0x8db1('0x54'))[_0x8db1('0x50')](_0x8db1('0x55'),'o',_0x8db1('0x56'))[_0x8db1('0x50')]('fax_accounts','a',_0x8db1('0x57'))['left_join'](_0x8db1('0x58'),'me',_0x8db1('0x59'))[_0x8db1('0x50')](_0x8db1('0x5a'),'it','it.FaxInteractionId\x20=\x20i.id')[_0x8db1('0x50')](_0x8db1('0x5b'),'t',_0x8db1('0x5c'));var _0x833e71=squel[_0x8db1('0x5d')]();var _0x1bc715=[];var _0xe02064=squel['expr']();var _0x385d31;if(_0x19c352['query'][_0x8db1('0x5e')]){_0x385d31=as[_0x8db1('0x5f')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x5e')]);var _0x1b2f77=_0x385d31[_0x8db1('0x60')];for(var _0x4f4fb5=0x0;_0x4f4fb5<_0x385d31[_0x8db1('0x61')][_0x8db1('0x62')];_0x4f4fb5++){var _0x4fb3b6=_0x385d31[_0x8db1('0x61')][_0x4f4fb5];var _0x52019b='i';var _0x2620c3=_[_0x8db1('0x63')](_0x33032d,[_0x8db1('0x2e'),_0x4fb3b6[_0x8db1('0x4a')]]);if(!_0x2620c3){switch(_0x4fb3b6[_0x8db1('0x4a')]){case _0x8db1('0x64'):if(_0x4fb3b6[_0x8db1('0x65')]==0x1){_0x3d7c63[_0x8db1('0x66')]('`'+_0x4fb3b6[_0x8db1('0x4a')]+_0x8db1('0x67'));}else{_0x3d7c63[_0x8db1('0x66')]('`'+_0x4fb3b6['field']+'`\x20>\x200');}break;case _0x8db1('0x68'):if(_0x4fb3b6['operator']===_0x8db1('0x69')){if(_0x4fb3b6[_0x8db1('0x65')][_0x8db1('0x35')]('\x20')[_0x8db1('0x62')]>0x1){_0x833e71[_0x1b2f77](_0x8db1('0x6a'),qs[_0x8db1('0x6b')](_0x4fb3b6[_0x8db1('0x65')]),null);}else{var _0x29437f='%'+_0x4fb3b6[_0x8db1('0x65')]+'%';_0x833e71[_0x1b2f77]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x29437f,_0x29437f,_0x29437f);}}else{_0x2620c3=_[_0x8db1('0x63')](_0x33032d,[_0x8db1('0x2e'),_0x8db1('0x6c')]);_0x4fb3b6[_0x8db1('0x4a')]='ContactId';_0x270a16=as[_0x8db1('0x6d')](_0x52019b,_0x2620c3[_0x8db1('0x6e')],_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x70')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x1e')]);}break;case _0x8db1('0x71'):var _0x3737e4=_0x4fb3b6[_0x8db1('0x65')][_0x8db1('0x35')](',')[_0x8db1('0x31')](function(_0x2ed466){return Number(_0x2ed466);});_0x3737e4[_0x8db1('0x36')](function(_0x1b987b){_0xe02064['or'](_0x8db1('0x72'),'%,'+_0x1b987b+',%');});_0x1bc715=_['union'](_0x1bc715,_0x3737e4);break;case'User':if(_0x4fb3b6[_0x8db1('0x73')]==='$substring'){_0x833e71[_0x1b2f77]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x4fb3b6[_0x8db1('0x65')]+'%',null);}else{_0x2620c3=_[_0x8db1('0x63')](_0x33032d,['name','UserId']);_0x4fb3b6[_0x8db1('0x4a')]=_0x8db1('0x74');_0x270a16=as['buildExpression'](_0x52019b,_0x2620c3[_0x8db1('0x6e')],_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x70')],_0x270a16['value'][_0x8db1('0x1e')]);}break;case _0x8db1('0x75'):_0x270a16=as[_0x8db1('0x6d')]('me',null,_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16['value'][_0x8db1('0x70')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x1e')]);break;}}else{var _0x270a16=as[_0x8db1('0x6d')](_0x52019b,_0x2620c3[_0x8db1('0x6e')],_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x70')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x1e')]);}}}else{var _0x5a24d4=_(_0x19c352[_0x8db1('0x3c')])[_0x8db1('0x3d')]()[_0x8db1('0x31')](function(_0x442634){return _[_0x8db1('0x76')](_0x33032d,[_0x8db1('0x2e'),_0x442634])?_0x442634:undefined;})['compact']()[_0x8db1('0x65')]();if(!_[_0x8db1('0x77')](_0x5a24d4)){_0x5a24d4[_0x8db1('0x36')](function(_0x284c72){if(_0x284c72==='FaxAccountId'){_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x78'),[][_0x8db1('0x79')](_0x19c352[_0x8db1('0x3c')][_0x284c72]));}else if(_0x284c72===_0x8db1('0x7a')){var _0x2b7b14=JSON['parse'](_0x19c352['query'][_0x284c72])[_0x8db1('0x7b')];var _0x4a1cc4=JSON[_0x8db1('0x7c')](_0x19c352['query'][_0x284c72])[_0x8db1('0x7d')];_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x7e'),_0x2b7b14,_0x4a1cc4);}else{if(_0x19c352[_0x8db1('0x3c')][_0x284c72]===_0x8db1('0x7f')){_0x3d7c63[_0x8db1('0x46')]('i.'+_0x284c72+'\x20IS\x20NULL');}else{_0x3d7c63[_0x8db1('0x46')]('i.'+_0x284c72+_0x8db1('0x80'),_0x19c352[_0x8db1('0x3c')][_0x284c72]);}}});}if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x81')]){if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x81')]==0x1){_0x3d7c63['having'](_0x8db1('0x82'));}else{_0x3d7c63[_0x8db1('0x66')](_0x8db1('0x83'));}}if(_0x19c352['query']['tag']){_0x1bc715=_[_0x8db1('0x84')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x85')])?_0x19c352[_0x8db1('0x3c')][_0x8db1('0x85')]:new Array(_0x19c352[_0x8db1('0x3c')]['tag']);_0x1bc715[_0x8db1('0x36')](function(_0x3d515b){_0xe02064['or'](_0x8db1('0x72'),'%,'+_0x3d515b+',%');});}if(_0x19c352['query'][_0x8db1('0x86')]){var _0x32b74a=_0x19c352['query']['filter'][_0x8db1('0x87')]('\x5c','\x5c\x5c')[_0x8db1('0x87')](/'/g,'\x27\x27');if(qs[_0x8db1('0x88')](_0x32b74a)){_0x833e71['or'](_0x8db1('0x89'),_0x32b74a+'%')['or'](_0x8db1('0x8a'),_0x32b74a+'%');}_0x833e71['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x32b74a+'%');}}_0x3d7c63[_0x8db1('0x46')](_0x833e71);_0x3d7c63[_0x8db1('0x8b')](_0x8db1('0x8c'));var _0x324b1c={'type':db[_0x8db1('0x8d')][_0x8db1('0x8e')][_0x8db1('0x8f')],'raw':!![]};var _0x253caa=_0x3d7c63[_0x8db1('0x90')]();_0x253caa['field'](_0x8db1('0x8c'));_0x253caa['field'](_0x8db1('0x91'),_0x8db1('0x64'));if(_0x162cde[_0x8db1('0x44')]){_0x162cde[_0x8db1('0x44')][_0x8db1('0x36')](function(_0x2ceb47){var _0x54fe58=_0x2ceb47[0x0]==='contactName'?_0x2ceb47[0x0]:'i.'+_0x2ceb47[0x0];_0x3d7c63[_0x8db1('0x44')](_0x54fe58,_0x2ceb47[0x1]===_0x8db1('0x92')?![]:!![]);});}if(!_['isEmpty'](_0x1bc715)){_0x3d7c63[_0x8db1('0x66')](_0xe02064);_0x253caa[_0x8db1('0x46')](_0x8db1('0x93'),_0x1bc715);}BPromise[_0x8db1('0x94')]()[_0x8db1('0x2a')](function(){if(!_0x385d31){if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x95')])return;_0x253caa['where'](_0x8db1('0x96'));_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x96'));return;}if(_0x19c352[_0x8db1('0x97')][_0x8db1('0x98')]!==_0x8db1('0x99'))return;return _0x19c352['user'][_0x8db1('0x9a')]({'attributes':['id'],'raw':!![]})[_0x8db1('0x2a')](function(_0x1500a5){if(_['isEmpty'](_0x1500a5)){_0x253caa['where'](_0x8db1('0x9b'));_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x9b'));}else{_0x253caa[_0x8db1('0x46')](_0x8db1('0x78'),_[_0x8db1('0x31')](_0x1500a5,'id'));_0x3d7c63['where'](_0x8db1('0x78'),_[_0x8db1('0x31')](_0x1500a5,'id'));}});})[_0x8db1('0x2a')](function(){if(_0x19c352[_0x8db1('0x97')][_0x8db1('0x98')]===_0x8db1('0x99')&&!_0x385d31&&!_0x19c352[_0x8db1('0x3c')][_0x8db1('0x95')])return[];return db['sequelize'][_0x8db1('0x3c')](_0x253caa[_0x8db1('0x9c')](),_0x324b1c);})['then'](function(_0x2e0445){_0x3f3c46[_0x8db1('0x23')]=_0x2e0445[_0x8db1('0x62')];if(_0x3f3c46['count']===0x0)return[];return db['sequelize'][_0x8db1('0x3c')](_0x4bc72d[_0x8db1('0x9c')](),_0x324b1c)[_0x8db1('0x2a')](function(_0x2d716d){_0x2a22d3=_[_0x8db1('0x9d')](_0x2d716d,'id');_0x324b1c=_[_0x8db1('0x9e')](_0x324b1c,{'model':db[_0x8db1('0x39')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x40')]){_0x162cde[_0x8db1('0x41')][_0x8db1('0x36')](function(_0x33b084){_0x3d7c63['field']('i.'+_0x33b084);});}else{_0x3d7c63['field'](_0x8db1('0x91'),_0x8db1('0x64'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0x9f'),_0x8db1('0xa0'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa1'),_0x8db1('0xa2'));_0x3d7c63[_0x8db1('0x4a')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa3'));_0x3d7c63['field'](_0x8db1('0xa4'),'Contact.firstName');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa5'),_0x8db1('0xa6'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa7'),_0x8db1('0xa8'));_0x3d7c63['field'](_0x8db1('0xa9'),'Contact.phone');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xaa'),_0x8db1('0xab'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xac'),_0x8db1('0xad'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xae'),'Owner.fullname');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xaf'),_0x8db1('0xb0'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xb1'),'TagIds');}if(_0x162cde[_0x8db1('0x21')])_0x3d7c63['limit'](_0x162cde[_0x8db1('0x21')]);if(_0x162cde[_0x8db1('0x22')])_0x3d7c63[_0x8db1('0x22')](_0x162cde[_0x8db1('0x22')]);return db[_0x8db1('0xb2')]['query'](_0x3d7c63[_0x8db1('0x9c')](),_0x324b1c);})[_0x8db1('0x2a')](function(_0x407f26){if(_0x407f26[_0x8db1('0x62')]>0x0)_0x3e65b9['where'](_0x8db1('0xb3'),_[_0x8db1('0x31')](_0x407f26,'id'));return db[_0x8db1('0xb2')][_0x8db1('0x3c')](_0x3e65b9['toString'](),_0x324b1c)[_0x8db1('0x2a')](function(_0x24af94){var _0x91d661=_[_0x8db1('0xb4')](_0x24af94,_0x8db1('0xb5'));var _0x2516a6=[];_0x407f26[_0x8db1('0x36')](function(_0x93b9d7){_0x2516a6['push'](updateFaxInteraction(_0x93b9d7,_0x2a22d3,_0x91d661));});return BPromise[_0x8db1('0xb6')](_0x2516a6);});});})[_0x8db1('0x2a')](function(_0x4617d5){_0x3f3c46[_0x8db1('0xb7')]=_0x4617d5;return _0x3f3c46;})[_0x8db1('0x2a')](respondWithFilteredResult(_0x9fffcf,_0x162cde))['catch'](handleError(_0x9fffcf,null));};exports[_0x8db1('0xb8')]=function(_0x3a1bf0,_0x4f4e76){var _0x281ad6={'raw':![],'where':{'id':_0x3a1bf0[_0x8db1('0xb9')]['id']}},_0x108242={};_0x108242[_0x8db1('0x3f')]=_['keys'](db[_0x8db1('0x39')][_0x8db1('0xba')]);_0x108242[_0x8db1('0x3c')]=_[_0x8db1('0x3d')](_0x3a1bf0[_0x8db1('0x3c')]);_0x108242[_0x8db1('0x47')]=_[_0x8db1('0x3e')](_0x108242[_0x8db1('0x3f')],_0x108242[_0x8db1('0x3c')]);_0x281ad6[_0x8db1('0x41')]=_[_0x8db1('0x3e')](_0x108242[_0x8db1('0x3f')],qs[_0x8db1('0x40')](_0x3a1bf0[_0x8db1('0x3c')]['fields']));_0x281ad6[_0x8db1('0x41')]=_0x281ad6[_0x8db1('0x41')]['length']?_0x281ad6[_0x8db1('0x41')]:_0x108242[_0x8db1('0x3f')];if(_0x3a1bf0[_0x8db1('0x3c')][_0x8db1('0xbb')]){_0x281ad6[_0x8db1('0xbc')]=[{'all':!![]}];}_0x281ad6=_[_0x8db1('0x9e')]({},_0x281ad6,_0x3a1bf0[_0x8db1('0xbd')]);return db[_0x8db1('0x39')][_0x8db1('0x63')](_0x281ad6)['then'](handleEntityNotFound(_0x4f4e76,null))[_0x8db1('0x2a')](respondWithResult(_0x4f4e76,null))[_0x8db1('0xbe')](handleError(_0x4f4e76,null));};exports[_0x8db1('0xbf')]=function(_0x10a449,_0x1c40e9){return db['FaxInteraction'][_0x8db1('0xbf')](_0x10a449[_0x8db1('0x75')],{})[_0x8db1('0x2a')](respondWithResult(_0x1c40e9,0xc9))[_0x8db1('0xbe')](handleError(_0x1c40e9,null));};exports['update']=function(_0x4aed82,_0x3a09ae){if(_0x4aed82[_0x8db1('0x75')]['id']){delete _0x4aed82[_0x8db1('0x75')]['id'];}return db['FaxInteraction']['find']({'where':{'id':_0x4aed82[_0x8db1('0xb9')]['id']}})['then'](handleEntityNotFound(_0x3a09ae,null))['then'](saveUpdates(_0x4aed82['body'],null))[_0x8db1('0x2a')](respondWithResult(_0x3a09ae,null))[_0x8db1('0xbe')](handleError(_0x3a09ae,null));};exports[_0x8db1('0x2b')]=function(_0x396c06,_0x42bace){return db[_0x8db1('0x39')][_0x8db1('0x63')]({'where':{'id':_0x396c06[_0x8db1('0xb9')]['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x42bace,null))['then'](removeEntity(_0x42bace,null))[_0x8db1('0xbe')](handleError(_0x42bace,null));};exports[_0x8db1('0xc0')]=function(_0x24f6d9,_0x1c4008){return db[_0x8db1('0x39')][_0x8db1('0xc0')]()[_0x8db1('0x2a')](respondWithResult(_0x1c4008,null))[_0x8db1('0xbe')](handleError(_0x1c4008,null));};exports[_0x8db1('0xc1')]=function(_0x46151f,_0x438a96,_0x4cf192){return db[_0x8db1('0xc2')][_0x8db1('0x63')]({'where':{'id':_0x46151f['params']['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x438a96,null))['then'](function(_0x330192){if(_0x330192){return _0x330192[_0x8db1('0xc1')](_0x46151f[_0x8db1('0x75')][_0x8db1('0xc3')],_[_0x8db1('0xc4')](_0x46151f['body'],[_0x8db1('0xc3'),'id'])||{});}})[_0x8db1('0x2a')](respondWithResult(_0x438a96,null))[_0x8db1('0xbe')](handleError(_0x438a96,null));};exports[_0x8db1('0xc5')]=function(_0x5ddf1d,_0x14d5a9,_0x51a98f){var _0x45a2e1={'raw':![],'where':{}};var _0x416280={};var _0x2acabb={'count':0x0,'rows':[]};return db[_0x8db1('0x39')]['findOne']({'where':{'id':_0x5ddf1d['params']['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x14d5a9,null))[_0x8db1('0x2a')](function(_0x5eb6e5){if(_0x5eb6e5){_0x416280[_0x8db1('0x3f')]=_['keys'](db[_0x8db1('0xc2')][_0x8db1('0xba')]);_0x416280['query']=_[_0x8db1('0x3d')](_0x5ddf1d[_0x8db1('0x3c')]);_0x416280['filters']=_[_0x8db1('0x3e')](_0x416280[_0x8db1('0x3f')],_0x416280[_0x8db1('0x3c')]);_0x45a2e1[_0x8db1('0x41')]=_[_0x8db1('0x3e')](_0x416280[_0x8db1('0x3f')],qs[_0x8db1('0x40')](_0x5ddf1d[_0x8db1('0x3c')]['fields']));_0x45a2e1[_0x8db1('0x41')]=_0x45a2e1['attributes']['length']?_0x45a2e1['attributes']:_0x416280[_0x8db1('0x3f')];if(!_0x5ddf1d['query'][_0x8db1('0x42')]('nolimit')){_0x45a2e1[_0x8db1('0x21')]=qs[_0x8db1('0x21')](_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0x21')]);_0x45a2e1[_0x8db1('0x22')]=qs[_0x8db1('0x22')](_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0x22')]);}_0x45a2e1[_0x8db1('0x44')]=qs['sort'](_0x5ddf1d['query'][_0x8db1('0x45')]);_0x45a2e1[_0x8db1('0x46')]=qs[_0x8db1('0x47')](_[_0x8db1('0x48')](_0x5ddf1d[_0x8db1('0x3c')],_0x416280['filters']));_0x45a2e1[_0x8db1('0x46')]['FaxInteractionId']=_0x5eb6e5['id'];if(_0x5ddf1d[_0x8db1('0x3c')]['filter']){_0x45a2e1[_0x8db1('0x46')]=_['merge'](_0x45a2e1[_0x8db1('0x46')],{'$or':_['map'](_0x45a2e1['attributes'],function(_0x1a3ad5){var _0x3a7647={};_0x3a7647[_0x1a3ad5]={'$like':'%'+_0x5ddf1d['query'][_0x8db1('0x86')]+'%'};return _0x3a7647;})});}if(_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0x7b')]){var _0x2411b3=_0x5ddf1d[_0x8db1('0x3c')]['$gte'][_0x8db1('0x35')](',');var _0x57dfe0={};_0x57dfe0[_0x2411b3[0x0]]={'$gte':moment(_0x2411b3[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x45a2e1['where']=_['merge'](_0x45a2e1[_0x8db1('0x46')],_0x57dfe0);}_0x45a2e1=_[_0x8db1('0x9e')]({},_0x45a2e1,_0x5ddf1d[_0x8db1('0xbd')]);return db['FaxMessage'][_0x8db1('0x23')]({'where':_0x45a2e1[_0x8db1('0x46')]})[_0x8db1('0x2a')](function(_0x33668c){_0x2acabb[_0x8db1('0x23')]=_0x33668c;if(_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0xbb')]){_0x45a2e1[_0x8db1('0xbc')]=[{'all':!![]}];}return db[_0x8db1('0xc2')][_0x8db1('0xc6')](_0x45a2e1);})[_0x8db1('0x2a')](function(_0x22115f){_0x2acabb[_0x8db1('0xb7')]=_0x22115f;return _0x2acabb;});}})[_0x8db1('0x2a')](respondWithFilteredResult(_0x14d5a9,_0x45a2e1))[_0x8db1('0xbe')](handleError(_0x14d5a9,null));};exports[_0x8db1('0xc7')]=function(_0x195d99,_0x327865,_0x4500b7){return db[_0x8db1('0x39')]['find']({'where':{'id':_0x195d99[_0x8db1('0xb9')]['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x327865,null))[_0x8db1('0x2a')](function(_0x2d9547){if(_0x2d9547){return _0x2d9547[_0x8db1('0xc8')](_0x195d99[_0x8db1('0x75')]['ids'],_['omit'](_0x195d99['body'],[_0x8db1('0xc3'),'id'])||{})[_0x8db1('0xc9')](function(){return db['Tag'][_0x8db1('0xc6')]({'attributes':['id',_0x8db1('0x2e'),_0x8db1('0x4b')],'where':{'id':_0x195d99['body']['ids']}});})[_0x8db1('0x2a')](function(_0x2b842d){socket[_0x8db1('0xca')](_0x8db1('0xcb'),{'id':Number(_0x195d99[_0x8db1('0xb9')]['id']),'tags':_0x2b842d||[]});return{'id':Number(_0x195d99[_0x8db1('0xb9')]['id']),'tags':_0x2b842d||[]};});}})[_0x8db1('0x2a')](respondWithResult(_0x327865,null))['catch'](handleError(_0x327865,null));};exports[_0x8db1('0xcc')]=function(_0x2ffb00,_0x5cb986,_0x58fb52){return db[_0x8db1('0x39')][_0x8db1('0x63')]({'where':{'id':_0x2ffb00['params']['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x5cb986,null))[_0x8db1('0x2a')](function(_0x2ad611){if(_0x2ad611){return _0x2ad611[_0x8db1('0xcc')](_0x2ffb00[_0x8db1('0x3c')][_0x8db1('0xc3')]);}})['then'](respondWithStatusCode(_0x5cb986,null))[_0x8db1('0xbe')](handleError(_0x5cb986,null));};exports[_0x8db1('0xcd')]=function(_0x3ce737,_0x43ebe9){var _0x32d9bf=moment()['unix']()[_0x8db1('0x9c')]();var _0x5b7c47=path[_0x8db1('0xce')](config[_0x8db1('0xcf')],_0x8db1('0xd0'),'files','tmp');var _0x427567=path[_0x8db1('0xce')](config[_0x8db1('0xcf')],'server','files',_0x8db1('0xd1'));var _0xcfb82e=path['join'](_0x5b7c47,_0x32d9bf);var _0x1ce7d1=util[_0x8db1('0xd2')](_0x8db1('0xd3'),_0x3ce737[_0x8db1('0xb9')]['id'],_0x32d9bf);var _0x56621a=path['join'](_0x5b7c47,_0x1ce7d1);var _0x2e6f67=[];_0x2e6f67[_0x8db1('0x37')]({'model':db[_0x8db1('0xd4')],'as':'Attachment','raw':!![]});var _0x2bbcd2=[{'model':db[_0x8db1('0xc2')],'as':'Messages','attributes':['id',_0x8db1('0x75'),_0x8db1('0x7a')],'include':_0x2e6f67}];return db[_0x8db1('0x39')]['find']({'where':{'id':_0x3ce737[_0x8db1('0xb9')]['id']},'include':_0x2bbcd2})[_0x8db1('0x2a')](handleEntityNotFound(_0x43ebe9,null))[_0x8db1('0x2a')](function(_0x4bbeb5){if(_0x4bbeb5&&_0x4bbeb5[_0x8db1('0xd5')]){var _0x56c7f0=_0x4bbeb5['get']({'plain':!![]});fs[_0x8db1('0xd6')](_0xcfb82e);for(var _0x3fd09a=0x0;_0x3fd09a<_0x56c7f0['Messages'][_0x8db1('0x62')];_0x3fd09a++){var _0x2f923=_0x56c7f0['Messages'][_0x3fd09a]['Attachment'];if(_0x2f923){var _0x27d4da=path[_0x8db1('0xce')](_0x427567,_0x2f923[_0x8db1('0xd7')]);if(fs[_0x8db1('0xd8')](_0x27d4da)){fs[_0x8db1('0xd9')](_0x27d4da)['pipe'](fs['createWriteStream'](path['join'](_0xcfb82e,_0x2f923[_0x8db1('0xd7')])));}}}return BPromise[_0x8db1('0x94')]()[_0x8db1('0x2a')](function(){return new BPromise(function(_0x7ced6a,_0x2ca99e){zipdir(_0xcfb82e,{'saveTo':_0x56621a},function(_0xade00f,_0x17ef71){if(_0xade00f)return _0x2ca99e(_0xade00f);return _0x7ced6a(_0x17ef71);});})[_0x8db1('0x2a')](function(){return new BPromise(function(_0x33533d,_0x387f36){rimraf(_0xcfb82e,function(_0x56bd4f){if(_0x56bd4f)_0x387f36(_0x56bd4f);return _0x33533d();});});})[_0x8db1('0x2a')](function(){return _0x43ebe9['download'](_0x56621a,_0x1ce7d1,function(_0x12c843){if(_0x12c843){console[_0x8db1('0xda')]('err',_0x12c843);}else{fs[_0x8db1('0xdb')](_0x56621a);}});});});}else{return _0x43ebe9[_0x8db1('0x1c')](0xc8);}})[_0x8db1('0xbe')](handleError(_0x43ebe9,null));};
\ No newline at end of file
+var _0x3e95=['find','value','having','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','type','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','text','compact','isEmpty','FaxAccountId','i.FaxAccountId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','contactName','DESC','t.id\x20IN\x20?','resolve','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','sequelize','merge','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.phone','Contact.phone','c.mobile','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.FaxInteractionId\x20IN\x20?','toString','groupBy','FaxInteractionId','all','catch','show','params','rawAttributes','intersection','includeAll','options','create','body','describe','addMessage','FaxMessage','ids','omit','getMessages','findOne','format','include','findAll','setTags','emit','removeTags','download','unix','root','server','join','files','attachments','transcript-%d-%s.zip','Messages','get','Attachment','basename','createReadStream','createWriteStream','log','unlinkSync','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','save','destroy','then','error','stack','name','send','map','TagIds','Tags','split','forEach','push','index','FaxInteraction','fieldName','key','model','query','keys','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','select','field','color','from','tools_tags','u.id','u.fullname','ui.FaxInteractionId','user_has_fax_interactions','left_join','users','fax_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','conditions'];(function(_0x9b7f7d,_0x1337b1){var _0x3e43fe=function(_0xb58267){while(--_0xb58267){_0x9b7f7d['push'](_0x9b7f7d['shift']());}};_0x3e43fe(++_0x1337b1);}(_0x3e95,0x147));var _0x53e9=function(_0x162a92,_0x170f35){_0x162a92=_0x162a92-0x0;var _0x41277b=_0x3e95[_0x162a92];return _0x41277b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x53e9('0x0'));var jsonpatch=require(_0x53e9('0x1'));var rp=require(_0x53e9('0x2'));var moment=require(_0x53e9('0x3'));var BPromise=require(_0x53e9('0x4'));var Mustache=require(_0x53e9('0x5'));var util=require(_0x53e9('0x6'));var path=require('path');var sox=require(_0x53e9('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x53e9('0x8'));var _=require(_0x53e9('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x53e9('0xa'));var toCsv=require('to-csv');var querystring=require(_0x53e9('0xb'));var Papa=require(_0x53e9('0xc'));var Redis=require(_0x53e9('0xd'));var authService=require(_0x53e9('0xe'));var qs=require(_0x53e9('0xf'));var as=require(_0x53e9('0x10'));var hardwareService=require(_0x53e9('0x11'));var logger=require(_0x53e9('0x12'))(_0x53e9('0x13'));var utils=require(_0x53e9('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x53e9('0x15'))['db'];config[_0x53e9('0x16')]=_[_0x53e9('0x17')](config[_0x53e9('0x16')],{'host':_0x53e9('0x18'),'port':0x18eb});var socket=require(_0x53e9('0x19'))(new Redis(config[_0x53e9('0x16')]));require('./faxInteraction.socket')['register'](socket);function respondWithStatusCode(_0x11396a,_0x127f4e){_0x127f4e=_0x127f4e||0xcc;return function(_0xdc4666){if(_0xdc4666){return _0x11396a[_0x53e9('0x1a')](_0x127f4e);}return _0x11396a[_0x53e9('0x1b')](_0x127f4e)[_0x53e9('0x1c')]();};}function respondWithResult(_0x33034e,_0x53db4d){_0x53db4d=_0x53db4d||0xc8;return function(_0x1e77cf){if(_0x1e77cf){return _0x33034e[_0x53e9('0x1b')](_0x53db4d)['json'](_0x1e77cf);}};}function respondWithFilteredResult(_0x2c901a,_0x40b167){return function(_0x51be5d){if(_0x51be5d){var _0xed171=typeof _0x40b167[_0x53e9('0x1d')]===_0x53e9('0x1e')&&typeof _0x40b167[_0x53e9('0x1f')]===_0x53e9('0x1e');var _0x5c454d=_0x51be5d[_0x53e9('0x20')];var _0x324f90=_0xed171?0x0:_0x40b167[_0x53e9('0x1d')];var _0x27540c=_0xed171?_0x51be5d[_0x53e9('0x20')]:_0x40b167[_0x53e9('0x1d')]+_0x40b167[_0x53e9('0x1f')];var _0x460a23;if(_0x27540c>=_0x5c454d){_0x27540c=_0x5c454d;_0x460a23=0xc8;}else{_0x460a23=0xce;}_0x2c901a[_0x53e9('0x1b')](_0x460a23);return _0x2c901a['set'](_0x53e9('0x21'),_0x324f90+'-'+_0x27540c+'/'+_0x5c454d)[_0x53e9('0x22')](_0x51be5d);}return null;};}function patchUpdates(_0x4e125f){return function(_0x409a1e){try{jsonpatch['apply'](_0x409a1e,_0x4e125f,!![]);}catch(_0x24cdf7){return BPromise['reject'](_0x24cdf7);}return _0x409a1e[_0x53e9('0x23')]();};}function saveUpdates(_0x1d9fff,_0x3d16b8){return function(_0x19df94){if(_0x19df94){return _0x19df94['update'](_0x1d9fff)['then'](function(_0x496595){return _0x496595;});}return null;};}function removeEntity(_0x480d1f,_0x58fb40){return function(_0x444359){if(_0x444359){return _0x444359[_0x53e9('0x24')]()[_0x53e9('0x25')](function(){_0x480d1f[_0x53e9('0x1b')](0xcc)[_0x53e9('0x1c')]();});}};}function handleEntityNotFound(_0x573bfd,_0x3ac45f){return function(_0xeaaf98){if(!_0xeaaf98){_0x573bfd[_0x53e9('0x1a')](0x194);}return _0xeaaf98;};}function handleError(_0x3a31bf,_0x46bf46){_0x46bf46=_0x46bf46||0x1f4;return function(_0x5ce43f){logger[_0x53e9('0x26')](_0x5ce43f[_0x53e9('0x27')]);if(_0x5ce43f['name']){delete _0x5ce43f[_0x53e9('0x28')];}_0x3a31bf['status'](_0x46bf46)[_0x53e9('0x29')](_0x5ce43f);};}function getInteractionUsers(_0x1da5ed,_0x4c88ee){return new BPromise(function(_0x23001a,_0x24ed56){try{if(_0x4c88ee[_0x1da5ed['id']]){_0x1da5ed['Users']=_[_0x53e9('0x2a')](_0x4c88ee[_0x1da5ed['id']],function(_0x56ba5e){return{'id':_0x56ba5e['id'],'fullname':_0x56ba5e['fullname']};});}}catch(_0x5146b6){_0x24ed56(_0x5146b6);}_0x23001a(_0x1da5ed);});}function getInteractionTags(_0x5e5871,_0x3407ad){return new BPromise(function(_0x3cf1fd,_0x458567){try{if(_0x5e5871[_0x53e9('0x2b')]){_0x5e5871[_0x53e9('0x2c')]=[];_0x5e5871[_0x53e9('0x2b')][_0x53e9('0x2d')](',')[_0x53e9('0x2e')](function(_0x55c11c){_0x5e5871[_0x53e9('0x2c')][_0x53e9('0x2f')](_0x3407ad[_0x55c11c]);});}delete _0x5e5871['TagIds'];}catch(_0x216373){_0x458567(_0x216373);}_0x3cf1fd(_0x5e5871);});}function updateFaxInteraction(_0x1606a2,_0x35ccf6,_0x351b42){return new BPromise(function(_0x2c7fb9,_0x41afff){return getInteractionUsers(_0x1606a2,_0x351b42)[_0x53e9('0x25')](function(_0x5601c6){return getInteractionTags(_0x5601c6,_0x35ccf6);})[_0x53e9('0x25')](function(_0x99c99f){_0x2c7fb9(_0x99c99f);})['catch'](function(_0x3a801f){_0x41afff(_0x3a801f);});});}exports[_0x53e9('0x30')]=function(_0x31848f,_0x40417e){var _0x18ae79={},_0x2b7db3={},_0x26a331={'count':0x0,'rows':[]};var _0x1ab63c=_[_0x53e9('0x2a')](db[_0x53e9('0x31')]['rawAttributes'],function(_0x2764c1){return{'name':_0x2764c1[_0x53e9('0x32')],'type':_0x2764c1['type'][_0x53e9('0x33')]};});_0x2b7db3[_0x53e9('0x34')]=_['map'](_0x1ab63c,_0x53e9('0x28'));_0x2b7db3[_0x53e9('0x35')]=_[_0x53e9('0x36')](_0x31848f[_0x53e9('0x35')]);_0x2b7db3['filters']=_['intersection'](_0x2b7db3[_0x53e9('0x34')],_0x2b7db3['query']);_0x18ae79['attributes']=_['intersection'](_0x2b7db3[_0x53e9('0x34')],qs[_0x53e9('0x37')](_0x31848f[_0x53e9('0x35')]['fields']));_0x18ae79[_0x53e9('0x38')]=_0x18ae79[_0x53e9('0x38')][_0x53e9('0x39')]?_0x18ae79[_0x53e9('0x38')]:_0x2b7db3[_0x53e9('0x34')];if(!_0x31848f[_0x53e9('0x35')][_0x53e9('0x3a')](_0x53e9('0x3b'))){_0x18ae79[_0x53e9('0x1f')]=qs['limit'](_0x31848f[_0x53e9('0x35')][_0x53e9('0x1f')]);_0x18ae79[_0x53e9('0x1d')]=qs['offset'](_0x31848f[_0x53e9('0x35')]['offset']);}_0x18ae79[_0x53e9('0x3c')]=qs[_0x53e9('0x3d')](_0x31848f[_0x53e9('0x35')]['sort']);_0x18ae79[_0x53e9('0x3e')]=qs[_0x53e9('0x3f')](_[_0x53e9('0x40')](_0x31848f['query'],_0x2b7db3[_0x53e9('0x3f')]),_0x1ab63c);var _0xd37e67=[];var _0x2c4c0d=squel[_0x53e9('0x41')]()[_0x53e9('0x42')]('id')[_0x53e9('0x42')]('name')[_0x53e9('0x42')](_0x53e9('0x43'))[_0x53e9('0x44')](_0x53e9('0x45'));var _0x527558=squel[_0x53e9('0x41')]()['field'](_0x53e9('0x46'))['field'](_0x53e9('0x47'))[_0x53e9('0x42')](_0x53e9('0x48'))[_0x53e9('0x44')](_0x53e9('0x49'),'ui')[_0x53e9('0x4a')](_0x53e9('0x4b'),'u','u.id\x20=\x20ui.UserId');var _0x42afc3=squel['select']()['from'](_0x53e9('0x4c'),'i')[_0x53e9('0x4a')](_0x53e9('0x4d'),'c',_0x53e9('0x4e'))[_0x53e9('0x4a')]('users','o',_0x53e9('0x4f'))[_0x53e9('0x4a')]('fax_accounts','a','a.id\x20=\x20i.FaxAccountId')[_0x53e9('0x4a')](_0x53e9('0x50'),'me',_0x53e9('0x51'))[_0x53e9('0x4a')](_0x53e9('0x52'),'it',_0x53e9('0x53'))[_0x53e9('0x4a')](_0x53e9('0x45'),'t',_0x53e9('0x54'));var _0x1f2eb9=squel[_0x53e9('0x55')]();var _0x41e576=[];var _0x4b831d=squel[_0x53e9('0x55')]();var _0xaeb1f3;if(_0x31848f[_0x53e9('0x35')][_0x53e9('0x56')]){_0xaeb1f3=as[_0x53e9('0x57')](_0x31848f[_0x53e9('0x35')][_0x53e9('0x56')]);var _0x3351f2=_0xaeb1f3['sqlOperator'];for(var _0x55e516=0x0;_0x55e516<_0xaeb1f3[_0x53e9('0x58')][_0x53e9('0x39')];_0x55e516++){var _0x363517=_0xaeb1f3[_0x53e9('0x58')][_0x55e516];var _0x353fe0='i';var _0x1c7b54=_[_0x53e9('0x59')](_0x1ab63c,['name',_0x363517['field']]);if(!_0x1c7b54){switch(_0x363517[_0x53e9('0x42')]){case'unreadMessages':if(_0x363517[_0x53e9('0x5a')]==0x1){_0x42afc3[_0x53e9('0x5b')]('`'+_0x363517[_0x53e9('0x42')]+'`\x20=\x200');}else{_0x42afc3[_0x53e9('0x5b')]('`'+_0x363517['field']+_0x53e9('0x5c'));}break;case _0x53e9('0x5d'):if(_0x363517[_0x53e9('0x5e')]===_0x53e9('0x5f')){if(_0x363517[_0x53e9('0x5a')][_0x53e9('0x2d')]('\x20')[_0x53e9('0x39')]>0x1){_0x1f2eb9[_0x3351f2](_0x53e9('0x60'),qs[_0x53e9('0x61')](_0x363517['value']),null);}else{var _0x38f0e2='%'+_0x363517[_0x53e9('0x5a')]+'%';_0x1f2eb9[_0x3351f2]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x38f0e2,_0x38f0e2,_0x38f0e2);}}else{_0x1c7b54=_[_0x53e9('0x59')](_0x1ab63c,['name',_0x53e9('0x62')]);_0x363517[_0x53e9('0x42')]='ContactId';_0x3f279e=as['buildExpression'](_0x353fe0,_0x1c7b54[_0x53e9('0x63')],_0x363517);_0x1f2eb9[_0x3351f2](_0x3f279e['text'],_0x3f279e[_0x53e9('0x5a')][_0x53e9('0x64')],_0x3f279e[_0x53e9('0x5a')]['end']);}break;case _0x53e9('0x65'):var _0x5e9929=_0x363517['value']['split'](',')[_0x53e9('0x2a')](function(_0x16e5e1){return Number(_0x16e5e1);});_0x5e9929[_0x53e9('0x2e')](function(_0x465e27){_0x4b831d['or'](_0x53e9('0x66'),'%,'+_0x465e27+',%');});_0x41e576=_['union'](_0x41e576,_0x5e9929);break;case _0x53e9('0x67'):if(_0x363517[_0x53e9('0x5e')]===_0x53e9('0x5f')){_0x1f2eb9[_0x3351f2](_0x53e9('0x68'),'%'+_0x363517[_0x53e9('0x5a')]+'%',null);}else{_0x1c7b54=_[_0x53e9('0x59')](_0x1ab63c,[_0x53e9('0x28'),'UserId']);_0x363517[_0x53e9('0x42')]=_0x53e9('0x69');_0x3f279e=as[_0x53e9('0x6a')](_0x353fe0,_0x1c7b54[_0x53e9('0x63')],_0x363517);_0x1f2eb9[_0x3351f2](_0x3f279e[_0x53e9('0x6b')],_0x3f279e[_0x53e9('0x5a')][_0x53e9('0x64')],_0x3f279e[_0x53e9('0x5a')][_0x53e9('0x1c')]);}break;case'body':_0x3f279e=as[_0x53e9('0x6a')]('me',null,_0x363517);_0x1f2eb9[_0x3351f2](_0x3f279e[_0x53e9('0x6b')],_0x3f279e['value'][_0x53e9('0x64')],_0x3f279e[_0x53e9('0x5a')][_0x53e9('0x1c')]);break;}}else{var _0x3f279e=as[_0x53e9('0x6a')](_0x353fe0,_0x1c7b54[_0x53e9('0x63')],_0x363517);_0x1f2eb9[_0x3351f2](_0x3f279e[_0x53e9('0x6b')],_0x3f279e[_0x53e9('0x5a')][_0x53e9('0x64')],_0x3f279e[_0x53e9('0x5a')]['end']);}}}else{var _0xb7342d=_(_0x31848f[_0x53e9('0x35')])[_0x53e9('0x36')]()[_0x53e9('0x2a')](function(_0x1fec79){return _['some'](_0x1ab63c,[_0x53e9('0x28'),_0x1fec79])?_0x1fec79:undefined;})[_0x53e9('0x6c')]()['value']();if(!_[_0x53e9('0x6d')](_0xb7342d)){_0xb7342d[_0x53e9('0x2e')](function(_0x482f9){if(_0x482f9===_0x53e9('0x6e')){_0x42afc3[_0x53e9('0x3e')](_0x53e9('0x6f'),[][_0x53e9('0x70')](_0x31848f[_0x53e9('0x35')][_0x482f9]));}else if(_0x482f9===_0x53e9('0x71')){var _0x1c6f85=JSON['parse'](_0x31848f[_0x53e9('0x35')][_0x482f9])[_0x53e9('0x72')];var _0x72917f=JSON[_0x53e9('0x73')](_0x31848f[_0x53e9('0x35')][_0x482f9])[_0x53e9('0x74')];_0x42afc3[_0x53e9('0x3e')](_0x53e9('0x75'),_0x1c6f85,_0x72917f);}else{if(_0x31848f[_0x53e9('0x35')][_0x482f9]==='null'){_0x42afc3[_0x53e9('0x3e')]('i.'+_0x482f9+_0x53e9('0x76'));}else{_0x42afc3[_0x53e9('0x3e')]('i.'+_0x482f9+_0x53e9('0x77'),_0x31848f[_0x53e9('0x35')][_0x482f9]);}}});}if(_0x31848f[_0x53e9('0x35')][_0x53e9('0x78')]){if(_0x31848f[_0x53e9('0x35')][_0x53e9('0x78')]==0x1){_0x42afc3[_0x53e9('0x5b')](_0x53e9('0x79'));}else{_0x42afc3[_0x53e9('0x5b')](_0x53e9('0x7a'));}}if(_0x31848f[_0x53e9('0x35')][_0x53e9('0x7b')]){_0x41e576=_[_0x53e9('0x7c')](_0x31848f[_0x53e9('0x35')][_0x53e9('0x7b')])?_0x31848f['query']['tag']:new Array(_0x31848f['query'][_0x53e9('0x7b')]);_0x41e576[_0x53e9('0x2e')](function(_0x376052){_0x4b831d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x376052+',%');});}if(_0x31848f[_0x53e9('0x35')][_0x53e9('0x7d')]){var _0x42fc8c=_0x31848f[_0x53e9('0x35')]['filter'][_0x53e9('0x7e')]('\x5c','\x5c\x5c')[_0x53e9('0x7e')](/'/g,'\x27\x27');if(qs[_0x53e9('0x7f')](_0x42fc8c)){_0x1f2eb9['or'](_0x53e9('0x80'),_0x42fc8c+'%')['or'](_0x53e9('0x81'),_0x42fc8c+'%');}_0x1f2eb9['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x42fc8c+'%');}}_0x42afc3[_0x53e9('0x3e')](_0x1f2eb9);_0x42afc3[_0x53e9('0x82')](_0x53e9('0x83'));var _0x16efbb={'type':db['Sequelize'][_0x53e9('0x84')][_0x53e9('0x85')],'raw':!![]};var _0x3a2fd6=_0x42afc3[_0x53e9('0x86')]();_0x3a2fd6[_0x53e9('0x42')](_0x53e9('0x83'));_0x3a2fd6[_0x53e9('0x42')](_0x53e9('0x87'),_0x53e9('0x88'));if(_0x18ae79[_0x53e9('0x3c')]){_0x18ae79[_0x53e9('0x3c')][_0x53e9('0x2e')](function(_0x2b89b2){var _0x5e4302=_0x2b89b2[0x0]===_0x53e9('0x89')?_0x2b89b2[0x0]:'i.'+_0x2b89b2[0x0];_0x42afc3[_0x53e9('0x3c')](_0x5e4302,_0x2b89b2[0x1]===_0x53e9('0x8a')?![]:!![]);});}if(!_[_0x53e9('0x6d')](_0x41e576)){_0x42afc3[_0x53e9('0x5b')](_0x4b831d);_0x3a2fd6[_0x53e9('0x3e')](_0x53e9('0x8b'),_0x41e576);}BPromise[_0x53e9('0x8c')]()['then'](function(){if(!_0xaeb1f3){if(_0x31848f['query'][_0x53e9('0x6e')])return;_0x3a2fd6[_0x53e9('0x3e')](_0x53e9('0x8d'));_0x42afc3[_0x53e9('0x3e')](_0x53e9('0x8d'));return;}if(_0x31848f[_0x53e9('0x8e')][_0x53e9('0x8f')]!==_0x53e9('0x90'))return;return _0x31848f[_0x53e9('0x8e')][_0x53e9('0x91')]({'attributes':['id'],'raw':!![]})['then'](function(_0x21b8ca){if(_[_0x53e9('0x6d')](_0x21b8ca)){_0x3a2fd6['where'](_0x53e9('0x92'));_0x42afc3['where'](_0x53e9('0x92'));}else{_0x3a2fd6[_0x53e9('0x3e')]('i.FaxAccountId\x20IN\x20?',_['map'](_0x21b8ca,'id'));_0x42afc3[_0x53e9('0x3e')](_0x53e9('0x6f'),_[_0x53e9('0x2a')](_0x21b8ca,'id'));}});})['then'](function(){if(_0x31848f[_0x53e9('0x8e')][_0x53e9('0x8f')]===_0x53e9('0x90')&&!_0xaeb1f3&&!_0x31848f[_0x53e9('0x35')][_0x53e9('0x6e')])return[];return db[_0x53e9('0x93')]['query'](_0x3a2fd6['toString'](),_0x16efbb);})[_0x53e9('0x25')](function(_0xb39da6){_0x26a331[_0x53e9('0x20')]=_0xb39da6[_0x53e9('0x39')];if(_0x26a331[_0x53e9('0x20')]===0x0)return[];return db[_0x53e9('0x93')][_0x53e9('0x35')](_0x2c4c0d['toString'](),_0x16efbb)[_0x53e9('0x25')](function(_0x3eac1f){_0xd37e67=_['keyBy'](_0x3eac1f,'id');_0x16efbb=_[_0x53e9('0x94')](_0x16efbb,{'model':db[_0x53e9('0x31')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x31848f['query']['fields']){_0x18ae79[_0x53e9('0x38')][_0x53e9('0x2e')](function(_0x43c1ab){_0x42afc3[_0x53e9('0x42')]('i.'+_0x43c1ab);});}else{_0x42afc3[_0x53e9('0x42')](_0x53e9('0x87'),'unreadMessages');_0x42afc3['field']('a.key','Account.key');_0x42afc3[_0x53e9('0x42')]('a.mandatoryDisposition',_0x53e9('0x95'));_0x42afc3[_0x53e9('0x42')](_0x53e9('0x96'),_0x53e9('0x89'));_0x42afc3['field'](_0x53e9('0x97'));_0x42afc3['field'](_0x53e9('0x98'),_0x53e9('0x99'));_0x42afc3[_0x53e9('0x42')](_0x53e9('0x9a'),_0x53e9('0x9b'));_0x42afc3['field']('c.email','Contact.email');_0x42afc3[_0x53e9('0x42')](_0x53e9('0x9c'),_0x53e9('0x9d'));_0x42afc3[_0x53e9('0x42')](_0x53e9('0x9e'),_0x53e9('0x9f'));_0x42afc3[_0x53e9('0x42')]('c.fax',_0x53e9('0xa0'));_0x42afc3[_0x53e9('0x42')](_0x53e9('0xa1'),_0x53e9('0xa2'));_0x42afc3[_0x53e9('0x42')]('o.internal',_0x53e9('0xa3'));_0x42afc3[_0x53e9('0x42')](_0x53e9('0xa4'),_0x53e9('0x2b'));}if(_0x18ae79['limit'])_0x42afc3['limit'](_0x18ae79[_0x53e9('0x1f')]);if(_0x18ae79['offset'])_0x42afc3[_0x53e9('0x1d')](_0x18ae79['offset']);return db[_0x53e9('0x93')][_0x53e9('0x35')](_0x42afc3['toString'](),_0x16efbb);})[_0x53e9('0x25')](function(_0x2b4211){if(_0x2b4211[_0x53e9('0x39')]>0x0)_0x527558[_0x53e9('0x3e')](_0x53e9('0xa5'),_['map'](_0x2b4211,'id'));return db[_0x53e9('0x93')][_0x53e9('0x35')](_0x527558[_0x53e9('0xa6')](),_0x16efbb)[_0x53e9('0x25')](function(_0x19743e){var _0x1cbe46=_[_0x53e9('0xa7')](_0x19743e,_0x53e9('0xa8'));var _0x2ff6e8=[];_0x2b4211['forEach'](function(_0x22f2ed){_0x2ff6e8[_0x53e9('0x2f')](updateFaxInteraction(_0x22f2ed,_0xd37e67,_0x1cbe46));});return BPromise[_0x53e9('0xa9')](_0x2ff6e8);});});})[_0x53e9('0x25')](function(_0x522e64){_0x26a331['rows']=_0x522e64;return _0x26a331;})[_0x53e9('0x25')](respondWithFilteredResult(_0x40417e,_0x18ae79))[_0x53e9('0xaa')](handleError(_0x40417e,null));};exports[_0x53e9('0xab')]=function(_0x595e02,_0x509fd1){var _0x2de9a5={'raw':![],'where':{'id':_0x595e02[_0x53e9('0xac')]['id']}},_0x1fe27d={};_0x1fe27d[_0x53e9('0x34')]=_[_0x53e9('0x36')](db[_0x53e9('0x31')][_0x53e9('0xad')]);_0x1fe27d['query']=_[_0x53e9('0x36')](_0x595e02[_0x53e9('0x35')]);_0x1fe27d[_0x53e9('0x3f')]=_['intersection'](_0x1fe27d[_0x53e9('0x34')],_0x1fe27d[_0x53e9('0x35')]);_0x2de9a5[_0x53e9('0x38')]=_[_0x53e9('0xae')](_0x1fe27d[_0x53e9('0x34')],qs[_0x53e9('0x37')](_0x595e02[_0x53e9('0x35')][_0x53e9('0x37')]));_0x2de9a5['attributes']=_0x2de9a5[_0x53e9('0x38')][_0x53e9('0x39')]?_0x2de9a5[_0x53e9('0x38')]:_0x1fe27d['model'];if(_0x595e02['query'][_0x53e9('0xaf')]){_0x2de9a5['include']=[{'all':!![]}];}_0x2de9a5=_[_0x53e9('0x94')]({},_0x2de9a5,_0x595e02[_0x53e9('0xb0')]);return db[_0x53e9('0x31')][_0x53e9('0x59')](_0x2de9a5)[_0x53e9('0x25')](handleEntityNotFound(_0x509fd1,null))[_0x53e9('0x25')](respondWithResult(_0x509fd1,null))[_0x53e9('0xaa')](handleError(_0x509fd1,null));};exports[_0x53e9('0xb1')]=function(_0x21387a,_0x1a09c2){return db[_0x53e9('0x31')][_0x53e9('0xb1')](_0x21387a[_0x53e9('0xb2')],{})['then'](respondWithResult(_0x1a09c2,0xc9))[_0x53e9('0xaa')](handleError(_0x1a09c2,null));};exports['update']=function(_0x37b633,_0x4eccb7){if(_0x37b633[_0x53e9('0xb2')]['id']){delete _0x37b633[_0x53e9('0xb2')]['id'];}return db[_0x53e9('0x31')][_0x53e9('0x59')]({'where':{'id':_0x37b633['params']['id']}})[_0x53e9('0x25')](handleEntityNotFound(_0x4eccb7,null))[_0x53e9('0x25')](saveUpdates(_0x37b633[_0x53e9('0xb2')],null))[_0x53e9('0x25')](respondWithResult(_0x4eccb7,null))[_0x53e9('0xaa')](handleError(_0x4eccb7,null));};exports[_0x53e9('0x24')]=function(_0x259883,_0x2e347a){return db[_0x53e9('0x31')][_0x53e9('0x59')]({'where':{'id':_0x259883[_0x53e9('0xac')]['id']}})[_0x53e9('0x25')](handleEntityNotFound(_0x2e347a,null))[_0x53e9('0x25')](removeEntity(_0x2e347a,null))[_0x53e9('0xaa')](handleError(_0x2e347a,null));};exports[_0x53e9('0xb3')]=function(_0x215816,_0x10a721){return db[_0x53e9('0x31')][_0x53e9('0xb3')]()['then'](respondWithResult(_0x10a721,null))['catch'](handleError(_0x10a721,null));};exports[_0x53e9('0xb4')]=function(_0xbf0d60,_0x1a9e13,_0x58d04c){return db[_0x53e9('0xb5')][_0x53e9('0x59')]({'where':{'id':_0xbf0d60[_0x53e9('0xac')]['id']}})[_0x53e9('0x25')](handleEntityNotFound(_0x1a9e13,null))[_0x53e9('0x25')](function(_0x405568){if(_0x405568){return _0x405568['addMessage'](_0xbf0d60[_0x53e9('0xb2')][_0x53e9('0xb6')],_[_0x53e9('0xb7')](_0xbf0d60['body'],[_0x53e9('0xb6'),'id'])||{});}})[_0x53e9('0x25')](respondWithResult(_0x1a9e13,null))[_0x53e9('0xaa')](handleError(_0x1a9e13,null));};exports[_0x53e9('0xb8')]=function(_0x2d7ae0,_0x3de7b9,_0x512a40){var _0x1b6832={'raw':![],'where':{}};var _0x55b126={};var _0x35f9c5={'count':0x0,'rows':[]};return db[_0x53e9('0x31')][_0x53e9('0xb9')]({'where':{'id':_0x2d7ae0['params']['id']}})[_0x53e9('0x25')](handleEntityNotFound(_0x3de7b9,null))[_0x53e9('0x25')](function(_0x55221e){if(_0x55221e){_0x55b126[_0x53e9('0x34')]=_[_0x53e9('0x36')](db[_0x53e9('0xb5')][_0x53e9('0xad')]);_0x55b126[_0x53e9('0x35')]=_[_0x53e9('0x36')](_0x2d7ae0[_0x53e9('0x35')]);_0x55b126[_0x53e9('0x3f')]=_[_0x53e9('0xae')](_0x55b126[_0x53e9('0x34')],_0x55b126[_0x53e9('0x35')]);_0x1b6832['attributes']=_[_0x53e9('0xae')](_0x55b126[_0x53e9('0x34')],qs[_0x53e9('0x37')](_0x2d7ae0[_0x53e9('0x35')]['fields']));_0x1b6832[_0x53e9('0x38')]=_0x1b6832[_0x53e9('0x38')]['length']?_0x1b6832[_0x53e9('0x38')]:_0x55b126['model'];if(!_0x2d7ae0[_0x53e9('0x35')]['hasOwnProperty'](_0x53e9('0x3b'))){_0x1b6832[_0x53e9('0x1f')]=qs[_0x53e9('0x1f')](_0x2d7ae0[_0x53e9('0x35')]['limit']);_0x1b6832[_0x53e9('0x1d')]=qs[_0x53e9('0x1d')](_0x2d7ae0[_0x53e9('0x35')][_0x53e9('0x1d')]);}_0x1b6832[_0x53e9('0x3c')]=qs['sort'](_0x2d7ae0['query'][_0x53e9('0x3d')]);_0x1b6832[_0x53e9('0x3e')]=qs[_0x53e9('0x3f')](_[_0x53e9('0x40')](_0x2d7ae0[_0x53e9('0x35')],_0x55b126['filters']));_0x1b6832['where'][_0x53e9('0xa8')]=_0x55221e['id'];if(_0x2d7ae0[_0x53e9('0x35')][_0x53e9('0x7d')]){_0x1b6832[_0x53e9('0x3e')]=_[_0x53e9('0x94')](_0x1b6832[_0x53e9('0x3e')],{'$or':_['map'](_0x1b6832[_0x53e9('0x38')],function(_0x211f45){var _0x3e4cd6={};_0x3e4cd6[_0x211f45]={'$like':'%'+_0x2d7ae0[_0x53e9('0x35')][_0x53e9('0x7d')]+'%'};return _0x3e4cd6;})});}if(_0x2d7ae0[_0x53e9('0x35')][_0x53e9('0x72')]){var _0x4c57a8=_0x2d7ae0[_0x53e9('0x35')][_0x53e9('0x72')][_0x53e9('0x2d')](',');var _0x10343f={};_0x10343f[_0x4c57a8[0x0]]={'$gte':moment(_0x4c57a8[0x1])[_0x53e9('0xba')]('YYYY-MM-DD\x20HH:mm:ss')};_0x1b6832['where']=_[_0x53e9('0x94')](_0x1b6832[_0x53e9('0x3e')],_0x10343f);}_0x1b6832=_[_0x53e9('0x94')]({},_0x1b6832,_0x2d7ae0['options']);return db[_0x53e9('0xb5')][_0x53e9('0x20')]({'where':_0x1b6832[_0x53e9('0x3e')]})[_0x53e9('0x25')](function(_0xb3a5f0){_0x35f9c5[_0x53e9('0x20')]=_0xb3a5f0;if(_0x2d7ae0[_0x53e9('0x35')][_0x53e9('0xaf')]){_0x1b6832[_0x53e9('0xbb')]=[{'all':!![]}];}return db[_0x53e9('0xb5')][_0x53e9('0xbc')](_0x1b6832);})['then'](function(_0x4b19b8){_0x35f9c5['rows']=_0x4b19b8;return _0x35f9c5;});}})[_0x53e9('0x25')](respondWithFilteredResult(_0x3de7b9,_0x1b6832))[_0x53e9('0xaa')](handleError(_0x3de7b9,null));};exports['addTags']=function(_0x42a0e4,_0x291902,_0x320f96){return db[_0x53e9('0x31')][_0x53e9('0x59')]({'where':{'id':_0x42a0e4['params']['id']}})[_0x53e9('0x25')](handleEntityNotFound(_0x291902,null))[_0x53e9('0x25')](function(_0xf28f5d){if(_0xf28f5d){return _0xf28f5d[_0x53e9('0xbd')](_0x42a0e4[_0x53e9('0xb2')][_0x53e9('0xb6')],_[_0x53e9('0xb7')](_0x42a0e4[_0x53e9('0xb2')],['ids','id'])||{})['spread'](function(){return db[_0x53e9('0x65')][_0x53e9('0xbc')]({'attributes':['id',_0x53e9('0x28'),_0x53e9('0x43')],'where':{'id':_0x42a0e4[_0x53e9('0xb2')][_0x53e9('0xb6')]}});})[_0x53e9('0x25')](function(_0x1b7a6){socket[_0x53e9('0xbe')]('faxInteractionTags:save',{'id':Number(_0x42a0e4[_0x53e9('0xac')]['id']),'tags':_0x1b7a6||[]});return{'id':Number(_0x42a0e4[_0x53e9('0xac')]['id']),'tags':_0x1b7a6||[]};});}})['then'](respondWithResult(_0x291902,null))['catch'](handleError(_0x291902,null));};exports[_0x53e9('0xbf')]=function(_0x3923ca,_0x49b873,_0x5587d7){return db['FaxInteraction'][_0x53e9('0x59')]({'where':{'id':_0x3923ca[_0x53e9('0xac')]['id']}})[_0x53e9('0x25')](handleEntityNotFound(_0x49b873,null))['then'](function(_0x416d21){if(_0x416d21){return _0x416d21[_0x53e9('0xbf')](_0x3923ca[_0x53e9('0x35')][_0x53e9('0xb6')]);}})[_0x53e9('0x25')](respondWithStatusCode(_0x49b873,null))[_0x53e9('0xaa')](handleError(_0x49b873,null));};exports[_0x53e9('0xc0')]=function(_0x1ed991,_0x3dde59){var _0x12b248=moment()[_0x53e9('0xc1')]()[_0x53e9('0xa6')]();var _0xb5685e=path['join'](config[_0x53e9('0xc2')],_0x53e9('0xc3'),'files','tmp');var _0xc923a8=path[_0x53e9('0xc4')](config[_0x53e9('0xc2')],_0x53e9('0xc3'),_0x53e9('0xc5'),_0x53e9('0xc6'));var _0x4688c4=path['join'](_0xb5685e,_0x12b248);var _0x3660fa=util[_0x53e9('0xba')](_0x53e9('0xc7'),_0x1ed991['params']['id'],_0x12b248);var _0x388720=path[_0x53e9('0xc4')](_0xb5685e,_0x3660fa);var _0x223cb1=[];_0x223cb1[_0x53e9('0x2f')]({'model':db['Attachment'],'as':'Attachment','raw':!![]});var _0x515aaf=[{'model':db[_0x53e9('0xb5')],'as':_0x53e9('0xc8'),'attributes':['id',_0x53e9('0xb2'),_0x53e9('0x71')],'include':_0x223cb1}];return db[_0x53e9('0x31')][_0x53e9('0x59')]({'where':{'id':_0x1ed991[_0x53e9('0xac')]['id']},'include':_0x515aaf})['then'](handleEntityNotFound(_0x3dde59,null))[_0x53e9('0x25')](function(_0x419b14){if(_0x419b14&&_0x419b14[_0x53e9('0xc8')]){var _0x3a0d4f=_0x419b14[_0x53e9('0xc9')]({'plain':!![]});fs['mkdirSync'](_0x4688c4);for(var _0x2abfe8=0x0;_0x2abfe8<_0x3a0d4f[_0x53e9('0xc8')][_0x53e9('0x39')];_0x2abfe8++){var _0x25cde9=_0x3a0d4f['Messages'][_0x2abfe8][_0x53e9('0xca')];if(_0x25cde9){var _0x2e62c6=path[_0x53e9('0xc4')](_0xc923a8,_0x25cde9[_0x53e9('0xcb')]);if(fs['existsSync'](_0x2e62c6)){fs[_0x53e9('0xcc')](_0x2e62c6)['pipe'](fs[_0x53e9('0xcd')](path[_0x53e9('0xc4')](_0x4688c4,_0x25cde9[_0x53e9('0xcb')])));}}}return BPromise[_0x53e9('0x8c')]()[_0x53e9('0x25')](function(){return new BPromise(function(_0x3c69b5,_0x1d5db1){zipdir(_0x4688c4,{'saveTo':_0x388720},function(_0x574000,_0x4b9c95){if(_0x574000)return _0x1d5db1(_0x574000);return _0x3c69b5(_0x4b9c95);});})[_0x53e9('0x25')](function(){return new BPromise(function(_0x5d42f7,_0x5a5b77){rimraf(_0x4688c4,function(_0x39421b){if(_0x39421b)_0x5a5b77(_0x39421b);return _0x5d42f7();});});})[_0x53e9('0x25')](function(){return _0x3dde59[_0x53e9('0xc0')](_0x388720,_0x3660fa,function(_0xe5aafd){if(_0xe5aafd){console[_0x53e9('0xce')]('err',_0xe5aafd);}else{fs[_0x53e9('0xcf')](_0x388720);}});});});}else{return _0x3dde59['sendStatus'](0xc8);}})['catch'](handleError(_0x3dde59,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcba8=['update','remove','then','Users','map','findAll','unreadMessages','length','catch','hook','exports','events','../../mysqldb','FaxInteraction','FaxMessage','setMaxListeners','save'];(function(_0x409ab1,_0x344c1f){var _0x3ef292=function(_0x23fe1a){while(--_0x23fe1a){_0x409ab1['push'](_0x409ab1['shift']());}};_0x3ef292(++_0x344c1f);}(_0xcba8,0xa4));var _0x8cba=function(_0x3d819d,_0x5ad081){_0x3d819d=_0x3d819d-0x0;var _0x26733b=_0xcba8[_0x3d819d];return _0x26733b;};'use strict';var EventEmitter=require(_0x8cba('0x0'));var FaxInteraction=require(_0x8cba('0x1'))['db'][_0x8cba('0x2')];var FaxMessage=require(_0x8cba('0x1'))['db'][_0x8cba('0x3')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x8cba('0x4')](0x0);var events={'afterCreate':_0x8cba('0x5'),'afterUpdate':_0x8cba('0x6'),'afterDestroy':_0x8cba('0x7')};function emitEvent(_0x3134dc){return function(_0x3a48c8,_0x2738b3,_0x4a50cb){_0x3a48c8['getUsers']({'attributes':['id'],'raw':!![]})[_0x8cba('0x8')](function(_0x125114){_0x3a48c8['setDataValue'](_0x8cba('0x9'),_0x125114[_0x8cba('0xa')](function(_0x3b7782){return{'id':_0x3b7782['id']};}));return FaxMessage[_0x8cba('0xb')]({'where':{'FaxInteractionId':_0x3a48c8['id'],'direction':'in','read':![]},'raw':!![]});})[_0x8cba('0x8')](function(_0x404890){_0x3a48c8['setDataValue'](_0x8cba('0xc'),_0x404890[_0x8cba('0xd')]);FaxInteractionEvents['emit'](_0x3134dc+':'+_0x3a48c8['id'],_0x3a48c8);FaxInteractionEvents['emit'](_0x3134dc,_0x3a48c8);_0x4a50cb(null);})[_0x8cba('0xe')](_0x4a50cb(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxInteraction[_0x8cba('0xf')](e,emitEvent(event));}}module[_0x8cba('0x10')]=FaxInteractionEvents;
\ No newline at end of file
+var _0x5114=['FaxInteraction','setMaxListeners','save','remove','getUsers','then','setDataValue','findAll','emit','hook','../../mysqldb'];(function(_0x4025df,_0x5bdc3a){var _0x3caeca=function(_0x394f34){while(--_0x394f34){_0x4025df['push'](_0x4025df['shift']());}};_0x3caeca(++_0x5bdc3a);}(_0x5114,0x196));var _0x4511=function(_0x452db4,_0x58e348){_0x452db4=_0x452db4-0x0;var _0x2a5672=_0x5114[_0x452db4];return _0x2a5672;};'use strict';var EventEmitter=require('events');var FaxInteraction=require(_0x4511('0x0'))['db'][_0x4511('0x1')];var FaxMessage=require('../../mysqldb')['db']['FaxMessage'];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x4511('0x2')](0x0);var events={'afterCreate':_0x4511('0x3'),'afterUpdate':'update','afterDestroy':_0x4511('0x4')};function emitEvent(_0x50d993){return function(_0x24e5a1,_0x5f2c7a,_0x20f5a2){_0x24e5a1[_0x4511('0x5')]({'attributes':['id'],'raw':!![]})[_0x4511('0x6')](function(_0x79df72){_0x24e5a1[_0x4511('0x7')]('Users',_0x79df72['map'](function(_0x4808e2){return{'id':_0x4808e2['id']};}));return FaxMessage[_0x4511('0x8')]({'where':{'FaxInteractionId':_0x24e5a1['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x49e003){_0x24e5a1[_0x4511('0x7')]('unreadMessages',_0x49e003['length']);FaxInteractionEvents['emit'](_0x50d993+':'+_0x24e5a1['id'],_0x24e5a1);FaxInteractionEvents[_0x4511('0x9')](_0x50d993,_0x24e5a1);_0x20f5a2(null);})['catch'](_0x20f5a2(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxInteraction[_0x4511('0xa')](e,emitEvent(event));}}module['exports']=FaxInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb79=['./faxInteraction.attributes','define','FaxInteraction','fax_interactions','changed','closed','closedAt','format','lodash','util','../../config/logger','bluebird','path','../../config/environment'];(function(_0x12f688,_0x585c25){var _0x59c3de=function(_0x4ac301){while(--_0x4ac301){_0x12f688['push'](_0x12f688['shift']());}};_0x59c3de(++_0x585c25);}(_0xdb79,0x1e4));var _0x9db7=function(_0x2aec52,_0x59d962){_0x2aec52=_0x2aec52-0x0;var _0x3b8835=_0xdb79[_0x2aec52];return _0x3b8835;};'use strict';var _=require(_0x9db7('0x0'));var util=require(_0x9db7('0x1'));var logger=require(_0x9db7('0x2'))('api');var moment=require('moment');var BPromise=require(_0x9db7('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9db7('0x4'));var rimraf=require('rimraf');var config=require(_0x9db7('0x5'));var attributes=require(_0x9db7('0x6'));module['exports']=function(_0x5386b3,_0x5f06c0){return _0x5386b3[_0x9db7('0x7')](_0x9db7('0x8'),attributes,{'tableName':_0x9db7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x596e0a,_0x2f180c,_0x20c001){if(_0x596e0a[_0x9db7('0xa')](_0x9db7('0xb'))){_0x596e0a[_0x9db7('0xc')]=moment()[_0x9db7('0xd')]('YYYY-MM-DD\x20HH:mm:ss');}_0x20c001(null,_0x596e0a);}}});};
\ No newline at end of file
+var _0x9ed7=['changed','closedAt','lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./faxInteraction.attributes','exports','define','FaxInteraction','fax_interactions'];(function(_0x394b87,_0x44a2d5){var _0x70b84a=function(_0xea1834){while(--_0xea1834){_0x394b87['push'](_0x394b87['shift']());}};_0x70b84a(++_0x44a2d5);}(_0x9ed7,0x1a6));var _0x79ed=function(_0x430459,_0x58519c){_0x430459=_0x430459-0x0;var _0x3a2439=_0x9ed7[_0x430459];return _0x3a2439;};'use strict';var _=require(_0x79ed('0x0'));var util=require(_0x79ed('0x1'));var logger=require(_0x79ed('0x2'))('api');var moment=require(_0x79ed('0x3'));var BPromise=require('bluebird');var rp=require(_0x79ed('0x4'));var fs=require('fs');var path=require(_0x79ed('0x5'));var rimraf=require(_0x79ed('0x6'));var config=require(_0x79ed('0x7'));var attributes=require(_0x79ed('0x8'));module[_0x79ed('0x9')]=function(_0x434250,_0x516d0c){return _0x434250[_0x79ed('0xa')](_0x79ed('0xb'),attributes,{'tableName':_0x79ed('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x45d4fc,_0x1fb41e,_0x2cfb84){if(_0x45d4fc[_0x79ed('0xd')]('closed')){_0x45d4fc[_0x79ed('0xe')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}_0x2cfb84(null,_0x45d4fc);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb755=['FaxInteraction,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','UpdateFaxInteraction','update','body','options','raw','where','limit','then','debug','stringify','AddTagsToFaxInteraction','FaxInteraction','find','addTags','ids','omit','AddTags','lodash','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','request','info','FaxInteraction,\x20%s,\x20%s','request\x20sent'];(function(_0x688df,_0x3cc215){var _0x266fef=function(_0x439d3f){while(--_0x439d3f){_0x688df['push'](_0x688df['shift']());}};_0x266fef(++_0x3cc215);}(_0xb755,0x6b));var _0x5b75=function(_0x248adc,_0x41970c){_0x248adc=_0x248adc-0x0;var _0x4b1cb9=_0xb755[_0x248adc];return _0x4b1cb9;};'use strict';var _=require(_0x5b75('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5b75('0x1'));var rs=require(_0x5b75('0x2'));var fs=require('fs');var Redis=require(_0x5b75('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5b75('0x4'));var logger=require(_0x5b75('0x5'))(_0x5b75('0x6'));var config=require(_0x5b75('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5b75('0x8')][_0x5b75('0x9')]({'port':0x232a});config[_0x5b75('0xa')]=_[_0x5b75('0xb')](config[_0x5b75('0xa')],{'host':_0x5b75('0xc'),'port':0x18eb});var socket=require(_0x5b75('0xd'))(new Redis(config[_0x5b75('0xa')]));require(_0x5b75('0xe'))['register'](socket);function respondWithRpcPromise(_0x14ca51,_0x5e10e3,_0x3ef94d){return new BPromise(function(_0x402c52,_0xc2be52){return client[_0x5b75('0xf')](_0x14ca51,_0x3ef94d)['then'](function(_0x11ace4){logger[_0x5b75('0x10')](_0x5b75('0x11'),_0x5e10e3,_0x5b75('0x12'));logger['debug'](_0x5b75('0x13'),_0x5e10e3,'request\x20sent',JSON['stringify'](_0x11ace4));if(_0x11ace4['error']){if(_0x11ace4['error'][_0x5b75('0x14')]===0x1f4){logger[_0x5b75('0x15')](_0x5b75('0x11'),_0x5e10e3,_0x11ace4[_0x5b75('0x15')][_0x5b75('0x16')]);return _0xc2be52(_0x11ace4['error']['message']);}logger[_0x5b75('0x15')](_0x5b75('0x11'),_0x5e10e3,_0x11ace4['error'][_0x5b75('0x16')]);return _0x402c52(_0x11ace4[_0x5b75('0x15')]['message']);}else{logger['info'](_0x5b75('0x11'),_0x5e10e3,'request\x20sent');_0x402c52(_0x11ace4[_0x5b75('0x17')][_0x5b75('0x16')]);}})[_0x5b75('0x18')](function(_0x1569ce){logger['error'](_0x5b75('0x11'),_0x5e10e3,_0x1569ce);_0xc2be52(_0x1569ce);});});}exports[_0x5b75('0x19')]=function(_0x5d71f9){var _0x1d4983=this;return new Promise(function(_0x865dd2,_0x17fada){return db['FaxInteraction'][_0x5b75('0x1a')](_0x5d71f9[_0x5b75('0x1b')],{'raw':_0x5d71f9['options']?_0x5d71f9[_0x5b75('0x1c')][_0x5b75('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5d71f9[_0x5b75('0x1c')]?_0x5d71f9[_0x5b75('0x1c')][_0x5b75('0x1e')]||null:null,'attributes':_0x5d71f9[_0x5b75('0x1c')]?_0x5d71f9[_0x5b75('0x1c')]['attributes']||null:null,'limit':_0x5d71f9[_0x5b75('0x1c')]?_0x5d71f9[_0x5b75('0x1c')][_0x5b75('0x1f')]||null:null})[_0x5b75('0x20')](function(_0x45f26b){logger[_0x5b75('0x10')](_0x5b75('0x19'),_0x5d71f9);logger[_0x5b75('0x21')](_0x5b75('0x19'),_0x5d71f9,JSON[_0x5b75('0x22')](_0x45f26b));_0x865dd2(_0x45f26b);})[_0x5b75('0x18')](function(_0x4c433c){logger[_0x5b75('0x15')](_0x5b75('0x19'),_0x4c433c[_0x5b75('0x16')],_0x5d71f9);_0x17fada(_0x1d4983['error'](0x1f4,_0x4c433c[_0x5b75('0x16')]));});});};exports[_0x5b75('0x23')]=function(_0x5b41a3){return new Promise(function(_0x4192cb,_0xd3cd42){return db[_0x5b75('0x24')][_0x5b75('0x25')]({'where':_0x5b41a3[_0x5b75('0x1c')]?_0x5b41a3['options'][_0x5b75('0x1e')]||null:null})['then'](function(_0x3b3474){if(_0x3b3474){return _0x3b3474[_0x5b75('0x26')](_0x5b41a3[_0x5b75('0x1b')][_0x5b75('0x27')],_[_0x5b75('0x28')](_0x5b41a3[_0x5b75('0x1b')],[_0x5b75('0x27'),'id'])||{});}})['spread'](function(_0xb2f882){logger[_0x5b75('0x10')](_0x5b75('0x29'),_0x5b41a3);logger['debug'](_0x5b75('0x29'),_0x5b41a3,JSON['stringify'](_0xb2f882));_0x4192cb(_0xb2f882);})['catch'](function(_0x3acacf){logger[_0x5b75('0x15')](_0x5b75('0x29'),_0x3acacf['message'],_0x5b41a3);_0xd3cd42(_this[_0x5b75('0x15')](0x1f4,_0x3acacf['message']));});});};
\ No newline at end of file
+var _0xdcb6=['FaxInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch','UpdateFaxInteraction','FaxInteraction','update','body','options','raw','where','limit','debug','stringify','AddTagsToFaxInteraction','find','omit','ids','spread','AddTags','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','request','then','info','FaxInteraction,\x20%s,\x20%s'];(function(_0x23801c,_0x57c290){var _0x31b776=function(_0x77c6e0){while(--_0x77c6e0){_0x23801c['push'](_0x23801c['shift']());}};_0x31b776(++_0x57c290);}(_0xdcb6,0x94));var _0x6dcb=function(_0x5bd426,_0x4878e5){_0x5bd426=_0x5bd426-0x0;var _0x23a7eb=_0xdcb6[_0x5bd426];return _0x23a7eb;};'use strict';var _=require(_0x6dcb('0x0'));var util=require('util');var moment=require(_0x6dcb('0x1'));var BPromise=require('bluebird');var rs=require(_0x6dcb('0x2'));var fs=require('fs');var Redis=require(_0x6dcb('0x3'));var db=require(_0x6dcb('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x6dcb('0x5'))(_0x6dcb('0x6'));var config=require(_0x6dcb('0x7'));var jayson=require(_0x6dcb('0x8'));var client=jayson['client'][_0x6dcb('0x9')]({'port':0x232a});config[_0x6dcb('0xa')]=_[_0x6dcb('0xb')](config['redis'],{'host':_0x6dcb('0xc'),'port':0x18eb});var socket=require(_0x6dcb('0xd'))(new Redis(config['redis']));require(_0x6dcb('0xe'))[_0x6dcb('0xf')](socket);function respondWithRpcPromise(_0x4b7d4f,_0x267118,_0x3d82f6){return new BPromise(function(_0x4dd6fe,_0x3b5883){return client[_0x6dcb('0x10')](_0x4b7d4f,_0x3d82f6)[_0x6dcb('0x11')](function(_0x5a29fc){logger[_0x6dcb('0x12')](_0x6dcb('0x13'),_0x267118,'request\x20sent');logger['debug'](_0x6dcb('0x14'),_0x267118,_0x6dcb('0x15'),JSON['stringify'](_0x5a29fc));if(_0x5a29fc[_0x6dcb('0x16')]){if(_0x5a29fc[_0x6dcb('0x16')]['code']===0x1f4){logger[_0x6dcb('0x16')](_0x6dcb('0x13'),_0x267118,_0x5a29fc[_0x6dcb('0x16')]['message']);return _0x3b5883(_0x5a29fc[_0x6dcb('0x16')][_0x6dcb('0x17')]);}logger['error'](_0x6dcb('0x13'),_0x267118,_0x5a29fc[_0x6dcb('0x16')][_0x6dcb('0x17')]);return _0x4dd6fe(_0x5a29fc['error']['message']);}else{logger[_0x6dcb('0x12')](_0x6dcb('0x13'),_0x267118,_0x6dcb('0x15'));_0x4dd6fe(_0x5a29fc[_0x6dcb('0x18')][_0x6dcb('0x17')]);}})[_0x6dcb('0x19')](function(_0xa233b1){logger['error'](_0x6dcb('0x13'),_0x267118,_0xa233b1);_0x3b5883(_0xa233b1);});});}exports[_0x6dcb('0x1a')]=function(_0x2418e7){var _0x134041=this;return new Promise(function(_0x2b999b,_0x207c56){return db[_0x6dcb('0x1b')][_0x6dcb('0x1c')](_0x2418e7[_0x6dcb('0x1d')],{'raw':_0x2418e7[_0x6dcb('0x1e')]?_0x2418e7[_0x6dcb('0x1e')][_0x6dcb('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2418e7[_0x6dcb('0x1e')]?_0x2418e7[_0x6dcb('0x1e')][_0x6dcb('0x20')]||null:null,'attributes':_0x2418e7[_0x6dcb('0x1e')]?_0x2418e7[_0x6dcb('0x1e')]['attributes']||null:null,'limit':_0x2418e7['options']?_0x2418e7[_0x6dcb('0x1e')][_0x6dcb('0x21')]||null:null})[_0x6dcb('0x11')](function(_0x4bfdf9){logger['info'](_0x6dcb('0x1a'),_0x2418e7);logger[_0x6dcb('0x22')](_0x6dcb('0x1a'),_0x2418e7,JSON[_0x6dcb('0x23')](_0x4bfdf9));_0x2b999b(_0x4bfdf9);})[_0x6dcb('0x19')](function(_0x2a7310){logger[_0x6dcb('0x16')](_0x6dcb('0x1a'),_0x2a7310[_0x6dcb('0x17')],_0x2418e7);_0x207c56(_0x134041['error'](0x1f4,_0x2a7310[_0x6dcb('0x17')]));});});};exports[_0x6dcb('0x24')]=function(_0x329131){return new Promise(function(_0x25ccba,_0x2b22de){return db[_0x6dcb('0x1b')][_0x6dcb('0x25')]({'where':_0x329131[_0x6dcb('0x1e')]?_0x329131[_0x6dcb('0x1e')]['where']||null:null})['then'](function(_0x3a8cc6){if(_0x3a8cc6){return _0x3a8cc6['addTags'](_0x329131[_0x6dcb('0x1d')]['ids'],_[_0x6dcb('0x26')](_0x329131[_0x6dcb('0x1d')],[_0x6dcb('0x27'),'id'])||{});}})[_0x6dcb('0x28')](function(_0x2df8dc){logger['info'](_0x6dcb('0x29'),_0x329131);logger['debug'](_0x6dcb('0x29'),_0x329131,JSON[_0x6dcb('0x23')](_0x2df8dc));_0x25ccba(_0x2df8dc);})[_0x6dcb('0x19')](function(_0x3ecdbd){logger['error'](_0x6dcb('0x29'),_0x3ecdbd['message'],_0x329131);_0x2b22de(_this['error'](0x1f4,_0x3ecdbd[_0x6dcb('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3bc=['removeListener','register','length','faxInteraction:','./faxInteraction.events','save','remove','update','emit'];(function(_0x3ac8a5,_0x583f67){var _0x135fa3=function(_0x291753){while(--_0x291753){_0x3ac8a5['push'](_0x3ac8a5['shift']());}};_0x135fa3(++_0x583f67);}(_0xb3bc,0x1d8));var _0xcb3b=function(_0x344319,_0x3a8433){_0x344319=_0x344319-0x0;var _0x58d0ec=_0xb3bc[_0x344319];return _0x58d0ec;};'use strict';var FaxInteractionEvents=require(_0xcb3b('0x0'));var events=[_0xcb3b('0x1'),_0xcb3b('0x2'),_0xcb3b('0x3')];function createListener(_0x12dd09,_0x3e11b8){return function(_0x499682){_0x3e11b8[_0xcb3b('0x4')](_0x12dd09,_0x499682);};}function removeListener(_0x3c0d07,_0xfb3f01){return function(){FaxInteractionEvents[_0xcb3b('0x5')](_0x3c0d07,_0xfb3f01);};}exports[_0xcb3b('0x6')]=function(_0x1a8b39){for(var _0x5da87c=0x0,_0x4fc245=events[_0xcb3b('0x7')];_0x5da87c<_0x4fc245;_0x5da87c++){var _0x359811=events[_0x5da87c];var _0x200550=createListener(_0xcb3b('0x8')+_0x359811,_0x1a8b39);FaxInteractionEvents['on'](_0x359811,_0x200550);}};
\ No newline at end of file
+var _0xbaa7=['remove','removeListener','length','faxInteraction:','./faxInteraction.events'];(function(_0x28a5ad,_0x520afa){var _0x176b8a=function(_0x3d71b){while(--_0x3d71b){_0x28a5ad['push'](_0x28a5ad['shift']());}};_0x176b8a(++_0x520afa);}(_0xbaa7,0xe5));var _0x7baa=function(_0x543084,_0x4337f5){_0x543084=_0x543084-0x0;var _0x306a57=_0xbaa7[_0x543084];return _0x306a57;};'use strict';var FaxInteractionEvents=require(_0x7baa('0x0'));var events=['save',_0x7baa('0x1'),'update'];function createListener(_0x5a4045,_0x49f6b4){return function(_0x215b39){_0x49f6b4['emit'](_0x5a4045,_0x215b39);};}function removeListener(_0x4d4569,_0x30b0cb){return function(){FaxInteractionEvents[_0x7baa('0x2')](_0x4d4569,_0x30b0cb);};}exports['register']=function(_0x3a08a3){for(var _0x13c023=0x0,_0x2a8282=events[_0x7baa('0x3')];_0x13c023<_0x2a8282;_0x13c023++){var _0x28b43a=events[_0x13c023];var _0x4f6e12=createListener(_0x7baa('0x4')+_0x28b43a,_0x3a08a3);FaxInteractionEvents['on'](_0x28b43a,_0x4f6e12);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb115=['/:id/tags','fax','faxinteraction:addtags','addTags','put','tracked','update','delete','faxinteraction:destroy','destroy','removeTags','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','download','post'];(function(_0x10c9e8,_0x5182c7){var _0x481f8e=function(_0x3060cd){while(--_0x3060cd){_0x10c9e8['push'](_0x10c9e8['shift']());}};_0x481f8e(++_0x5182c7);}(_0xb115,0x177));var _0x5b11=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0xb115[_0x199572];return _0x13cfa3;};'use strict';var multer=require(_0x5b11('0x0'));var util=require(_0x5b11('0x1'));var path=require(_0x5b11('0x2'));var timeout=require(_0x5b11('0x3'));var express=require(_0x5b11('0x4'));var router=express[_0x5b11('0x5')]();var fs_extra=require(_0x5b11('0x6'));var auth=require(_0x5b11('0x7'));var interaction=require(_0x5b11('0x8'));var config=require(_0x5b11('0x9'));var controller=require('./faxInteraction.controller');router[_0x5b11('0xa')]('/',auth[_0x5b11('0xb')](),controller[_0x5b11('0xc')]);router[_0x5b11('0xa')](_0x5b11('0xd'),auth[_0x5b11('0xb')](),controller[_0x5b11('0xe')]);router[_0x5b11('0xa')](_0x5b11('0xf'),auth[_0x5b11('0xb')](),controller[_0x5b11('0x10')]);router[_0x5b11('0xa')](_0x5b11('0x11'),auth[_0x5b11('0xb')](),controller[_0x5b11('0x12')]);router[_0x5b11('0xa')]('/:id/download',auth[_0x5b11('0xb')](),controller[_0x5b11('0x13')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x5b11('0x14')](_0x5b11('0x11'),auth['isAuthenticated'](),controller['addMessage']);router['post'](_0x5b11('0x15'),auth[_0x5b11('0xb')](),interaction['tracked'](_0x5b11('0x16'),_0x5b11('0x17')),controller[_0x5b11('0x18')]);router[_0x5b11('0x19')]('/:id',auth[_0x5b11('0xb')](),interaction[_0x5b11('0x1a')](_0x5b11('0x16'),'faxinteraction:update'),controller[_0x5b11('0x1b')]);router[_0x5b11('0x1c')]('/:id',auth[_0x5b11('0xb')](),interaction['tracked'](_0x5b11('0x16'),_0x5b11('0x1d')),controller[_0x5b11('0x1e')]);router[_0x5b11('0x1c')](_0x5b11('0x15'),auth[_0x5b11('0xb')](),controller[_0x5b11('0x1f')]);module[_0x5b11('0x20')]=router;
\ No newline at end of file
+var _0x4435=['util','path','connect-timeout','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','/:id/download','post','create','addMessage','/:id/tags','tracked','faxinteraction:addtags','addTags','put','faxinteraction:update','update','delete','fax','faxinteraction:destroy','removeTags','exports','multer'];(function(_0x125856,_0x171bdf){var _0x1e42ec=function(_0x4bf960){while(--_0x4bf960){_0x125856['push'](_0x125856['shift']());}};_0x1e42ec(++_0x171bdf);}(_0x4435,0x1ef));var _0x5443=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0x4435[_0x1694f5];return _0x5b4321;};'use strict';var multer=require(_0x5443('0x0'));var util=require(_0x5443('0x1'));var path=require(_0x5443('0x2'));var timeout=require(_0x5443('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x5443('0x4'));var interaction=require(_0x5443('0x5'));var config=require('../../config/environment');var controller=require('./faxInteraction.controller');router[_0x5443('0x6')]('/',auth[_0x5443('0x7')](),controller[_0x5443('0x8')]);router[_0x5443('0x6')](_0x5443('0x9'),auth[_0x5443('0x7')](),controller[_0x5443('0xa')]);router[_0x5443('0x6')](_0x5443('0xb'),auth[_0x5443('0x7')](),controller[_0x5443('0xc')]);router[_0x5443('0x6')](_0x5443('0xd'),auth[_0x5443('0x7')](),controller[_0x5443('0xe')]);router['get'](_0x5443('0xf'),auth[_0x5443('0x7')](),controller['download']);router[_0x5443('0x10')]('/',auth[_0x5443('0x7')](),controller[_0x5443('0x11')]);router[_0x5443('0x10')](_0x5443('0xd'),auth[_0x5443('0x7')](),controller[_0x5443('0x12')]);router[_0x5443('0x10')](_0x5443('0x13'),auth[_0x5443('0x7')](),interaction[_0x5443('0x14')]('fax',_0x5443('0x15')),controller[_0x5443('0x16')]);router[_0x5443('0x17')](_0x5443('0xb'),auth[_0x5443('0x7')](),interaction[_0x5443('0x14')]('fax',_0x5443('0x18')),controller[_0x5443('0x19')]);router[_0x5443('0x1a')]('/:id',auth['isAuthenticated'](),interaction[_0x5443('0x14')](_0x5443('0x1b'),_0x5443('0x1c')),controller['destroy']);router[_0x5443('0x1a')]('/:id/tags',auth['isAuthenticated'](),controller[_0x5443('0x1d')]);module[_0x5443('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc73=['TEXT','ENUM','out','exports'];(function(_0x2d8f6c,_0x44db4c){var _0x3a00f6=function(_0x1b16ea){while(--_0x1b16ea){_0x2d8f6c['push'](_0x2d8f6c['shift']());}};_0x3a00f6(++_0x44db4c);}(_0xcc73,0x1cb));var _0x3cc7=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xcc73[_0x3947c9];return _0x2e7871;};'use strict';var Sequelize=require('sequelize');module[_0x3cc7('0x0')]={'body':{'type':Sequelize[_0x3cc7('0x1')]('medium'),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x3cc7('0x2')]('in','out'),'defaultValue':_0x3cc7('0x3'),'allowNull':![]},'failMessage':{'type':Sequelize['TEXT'],'defaultValue':null},'readAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
+var _0xdab2=['sequelize','exports','medium','BOOLEAN','ENUM','out','TEXT','DATE'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xdab2,0x130));var _0x2dab=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xdab2[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x2dab('0x0'));module[_0x2dab('0x1')]={'body':{'type':Sequelize['TEXT'](_0x2dab('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x2dab('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x2dab('0x4')]('in',_0x2dab('0x5')),'defaultValue':'out','allowNull':![]},'failMessage':{'type':Sequelize[_0x2dab('0x6')],'defaultValue':null},'readAt':{'type':Sequelize[_0x2dab('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed47=['format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','manual','interface','SIP/%s','channel','EventManager','acceptmessage','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','ContactId','event','create','CmContact','findOne','Attachment','AttachmentId','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','download','join','root','server','files','attachments','basename','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','http','client','request','then','info','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','destroy','stack','name','send','index','map','FaxMessage','rawAttributes','fieldName','type','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','find','update','body','describe','../../config/logger','fax-interactions','accept','fax','read','readAt'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xed47,0xc4));var _0x7ed4=function(_0x245ff8,_0x2e81f8){_0x245ff8=_0x245ff8-0x0;var _0x5a4faa=_0xed47[_0x245ff8];return _0x5a4faa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7ed4('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7ed4('0x1'));var moment=require('moment');var BPromise=require(_0x7ed4('0x2'));var Mustache=require(_0x7ed4('0x3'));var util=require(_0x7ed4('0x4'));var path=require(_0x7ed4('0x5'));var sox=require(_0x7ed4('0x6'));var csv=require('to-csv');var ejs=require(_0x7ed4('0x7'));var fs=require('fs');var fs_extra=require(_0x7ed4('0x8'));var _=require('lodash');var squel=require(_0x7ed4('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x7ed4('0xa'));var Papa=require('papaparse');var Redis=require(_0x7ed4('0xb'));var authService=require(_0x7ed4('0xc'));var qs=require(_0x7ed4('0xd'));var as=require(_0x7ed4('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7ed4('0xf'));var utils=require(_0x7ed4('0x10'));var config=require(_0x7ed4('0x11'));var licenseUtil=require(_0x7ed4('0x12'));var db=require(_0x7ed4('0x13'))['db'];config[_0x7ed4('0x14')]=_[_0x7ed4('0x15')](config[_0x7ed4('0x14')],{'host':_0x7ed4('0x16'),'port':0x18eb});var socket=require(_0x7ed4('0x17'))(new Redis(config[_0x7ed4('0x14')]));require('./faxMessage.socket')[_0x7ed4('0x18')](socket);var jayson=require(_0x7ed4('0x19'));var client=jayson['client'][_0x7ed4('0x1a')]({'port':0x232c});var client9002=jayson[_0x7ed4('0x1b')][_0x7ed4('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x563974,_0x39594e,_0x5aa718,_0x3db8e4){return new BPromise(function(_0x5a14cf,_0x2a8891){var _0x1bea72=_0x3db8e4||client;return _0x1bea72[_0x7ed4('0x1c')](_0x563974,_0x5aa718)[_0x7ed4('0x1d')](function(_0x625c59){logger[_0x7ed4('0x1e')]('FaxMessage,\x20%s,\x20%s',_0x39594e,_0x7ed4('0x1f'));logger[_0x7ed4('0x20')](_0x7ed4('0x21'),_0x39594e,_0x7ed4('0x1f'),JSON[_0x7ed4('0x22')](_0x625c59));if(_0x625c59[_0x7ed4('0x23')]){if(_0x625c59['error'][_0x7ed4('0x24')]===0x1f4){logger[_0x7ed4('0x23')](_0x7ed4('0x25'),_0x39594e,_0x625c59['error'][_0x7ed4('0x26')]);return _0x2a8891(_0x625c59[_0x7ed4('0x23')][_0x7ed4('0x26')]);}logger[_0x7ed4('0x23')]('FaxMessage,\x20%s,\x20%s',_0x39594e,_0x625c59[_0x7ed4('0x23')][_0x7ed4('0x26')]);return _0x5a14cf(_0x625c59[_0x7ed4('0x23')][_0x7ed4('0x26')]);}else{logger[_0x7ed4('0x1e')]('FaxMessage,\x20%s,\x20%s',_0x39594e,'request\x20sent');_0x5a14cf(_0x625c59[_0x7ed4('0x27')]['message']);}})[_0x7ed4('0x28')](function(_0x3b5bdb){logger[_0x7ed4('0x23')]('FaxMessage,\x20%s,\x20%s',_0x39594e,_0x3b5bdb);_0x2a8891(_0x3b5bdb);});});}function respondWithStatusCode(_0x274dce,_0x256342){_0x256342=_0x256342||0xcc;return function(_0x5983e4){if(_0x5983e4){return _0x274dce[_0x7ed4('0x29')](_0x256342);}return _0x274dce[_0x7ed4('0x2a')](_0x256342)[_0x7ed4('0x2b')]();};}function respondWithResult(_0x2da246,_0x2d19da){_0x2d19da=_0x2d19da||0xc8;return function(_0x42ef0e){if(_0x42ef0e){return _0x2da246[_0x7ed4('0x2a')](_0x2d19da)[_0x7ed4('0x2c')](_0x42ef0e);}};}function respondWithFilteredResult(_0x28bd1d,_0xa3fe18){return function(_0x288163){if(_0x288163){var _0x5aae91=typeof _0xa3fe18[_0x7ed4('0x2d')]===_0x7ed4('0x2e')&&typeof _0xa3fe18[_0x7ed4('0x2f')]==='undefined';var _0x3bc3d3=_0x288163[_0x7ed4('0x30')];var _0x233de2=_0x5aae91?0x0:_0xa3fe18[_0x7ed4('0x2d')];var _0xf9cb4=_0x5aae91?_0x288163['count']:_0xa3fe18[_0x7ed4('0x2d')]+_0xa3fe18['limit'];var _0x511c68;if(_0xf9cb4>=_0x3bc3d3){_0xf9cb4=_0x3bc3d3;_0x511c68=0xc8;}else{_0x511c68=0xce;}_0x28bd1d[_0x7ed4('0x2a')](_0x511c68);return _0x28bd1d['set'](_0x7ed4('0x31'),_0x233de2+'-'+_0xf9cb4+'/'+_0x3bc3d3)['json'](_0x288163);}return null;};}function patchUpdates(_0x5e0974){return function(_0x28adef){try{jsonpatch[_0x7ed4('0x32')](_0x28adef,_0x5e0974,!![]);}catch(_0x5ccf7f){return BPromise[_0x7ed4('0x33')](_0x5ccf7f);}return _0x28adef[_0x7ed4('0x34')]();};}function saveUpdates(_0x3acdee,_0x48f559){return function(_0x36f0ef){if(_0x36f0ef){return _0x36f0ef['update'](_0x3acdee)[_0x7ed4('0x1d')](function(_0x2d49b4){return _0x2d49b4;});}return null;};}function removeEntity(_0x20a3a5,_0x4418bd){return function(_0x4a0cfb){if(_0x4a0cfb){return _0x4a0cfb[_0x7ed4('0x35')]()[_0x7ed4('0x1d')](function(){_0x20a3a5[_0x7ed4('0x2a')](0xcc)[_0x7ed4('0x2b')]();});}};}function handleEntityNotFound(_0x240aa1,_0x3ce845){return function(_0x38b0a1){if(!_0x38b0a1){_0x240aa1['sendStatus'](0x194);}return _0x38b0a1;};}function handleError(_0x1d2eeb,_0x7a9efd){_0x7a9efd=_0x7a9efd||0x1f4;return function(_0x449dba){logger[_0x7ed4('0x23')](_0x449dba[_0x7ed4('0x36')]);if(_0x449dba['name']){delete _0x449dba[_0x7ed4('0x37')];}_0x1d2eeb[_0x7ed4('0x2a')](_0x7a9efd)[_0x7ed4('0x38')](_0x449dba);};}exports[_0x7ed4('0x39')]=function(_0x2699a3,_0x4378a0){var _0x164ba4={},_0x586893={},_0x4d8e1e={'count':0x0,'rows':[]};var _0x4f7df9=_[_0x7ed4('0x3a')](db[_0x7ed4('0x3b')][_0x7ed4('0x3c')],function(_0x2de445){return{'name':_0x2de445[_0x7ed4('0x3d')],'type':_0x2de445[_0x7ed4('0x3e')]['key']};});_0x586893[_0x7ed4('0x3f')]=_['map'](_0x4f7df9,_0x7ed4('0x37'));_0x586893[_0x7ed4('0x40')]=_[_0x7ed4('0x41')](_0x2699a3[_0x7ed4('0x40')]);_0x586893['filters']=_['intersection'](_0x586893[_0x7ed4('0x3f')],_0x586893[_0x7ed4('0x40')]);_0x164ba4[_0x7ed4('0x42')]=_[_0x7ed4('0x43')](_0x586893[_0x7ed4('0x3f')],qs[_0x7ed4('0x44')](_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x44')]));_0x164ba4[_0x7ed4('0x42')]=_0x164ba4[_0x7ed4('0x42')][_0x7ed4('0x45')]?_0x164ba4[_0x7ed4('0x42')]:_0x586893[_0x7ed4('0x3f')];if(!_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x46')]('nolimit')){_0x164ba4['limit']=qs['limit'](_0x2699a3[_0x7ed4('0x40')]['limit']);_0x164ba4[_0x7ed4('0x2d')]=qs[_0x7ed4('0x2d')](_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x2d')]);}_0x164ba4[_0x7ed4('0x47')]=qs[_0x7ed4('0x48')](_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x48')]);_0x164ba4[_0x7ed4('0x49')]=qs[_0x7ed4('0x4a')](_[_0x7ed4('0x4b')](_0x2699a3[_0x7ed4('0x40')],_0x586893[_0x7ed4('0x4a')]),_0x4f7df9);if(_0x2699a3['query'][_0x7ed4('0x4c')]){_0x164ba4[_0x7ed4('0x49')]=_['merge'](_0x164ba4[_0x7ed4('0x49')],{'$or':_['map'](_0x4f7df9,function(_0x56e2fd){if(_0x56e2fd['type']!==_0x7ed4('0x4d')){var _0x214f16={};_0x214f16[_0x56e2fd[_0x7ed4('0x37')]]={'$like':'%'+_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x4c')]+'%'};return _0x214f16;}})});}_0x164ba4=_[_0x7ed4('0x4e')]({},_0x164ba4,_0x2699a3[_0x7ed4('0x4f')]);var _0x2f16a4={'where':_0x164ba4[_0x7ed4('0x49')]};return db['FaxMessage'][_0x7ed4('0x30')](_0x2f16a4)['then'](function(_0x86d87d){_0x4d8e1e[_0x7ed4('0x30')]=_0x86d87d;if(_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x50')]){_0x164ba4[_0x7ed4('0x51')]=[{'all':!![]}];}return db[_0x7ed4('0x3b')][_0x7ed4('0x52')](_0x164ba4);})[_0x7ed4('0x1d')](function(_0x1665b9){_0x4d8e1e[_0x7ed4('0x53')]=_0x1665b9;return _0x4d8e1e;})[_0x7ed4('0x1d')](respondWithFilteredResult(_0x4378a0,_0x164ba4))[_0x7ed4('0x28')](handleError(_0x4378a0,null));};exports[_0x7ed4('0x54')]=function(_0x2b206e,_0x52a4ab){var _0x5d7ead={'raw':!![],'where':{'id':_0x2b206e[_0x7ed4('0x55')]['id']}},_0x5d3761={};_0x5d3761['model']=_[_0x7ed4('0x41')](db[_0x7ed4('0x3b')][_0x7ed4('0x3c')]);_0x5d3761[_0x7ed4('0x40')]=_[_0x7ed4('0x41')](_0x2b206e['query']);_0x5d3761[_0x7ed4('0x4a')]=_['intersection'](_0x5d3761[_0x7ed4('0x3f')],_0x5d3761['query']);_0x5d7ead['attributes']=_[_0x7ed4('0x43')](_0x5d3761[_0x7ed4('0x3f')],qs[_0x7ed4('0x44')](_0x2b206e[_0x7ed4('0x40')][_0x7ed4('0x44')]));_0x5d7ead[_0x7ed4('0x42')]=_0x5d7ead[_0x7ed4('0x42')]['length']?_0x5d7ead[_0x7ed4('0x42')]:_0x5d3761[_0x7ed4('0x3f')];if(_0x2b206e[_0x7ed4('0x40')][_0x7ed4('0x50')]){_0x5d7ead[_0x7ed4('0x51')]=[{'all':!![]}];}_0x5d7ead=_[_0x7ed4('0x4e')]({},_0x5d7ead,_0x2b206e[_0x7ed4('0x4f')]);return db['FaxMessage'][_0x7ed4('0x56')](_0x5d7ead)[_0x7ed4('0x1d')](handleEntityNotFound(_0x52a4ab,null))[_0x7ed4('0x1d')](respondWithResult(_0x52a4ab,null))[_0x7ed4('0x28')](handleError(_0x52a4ab,null));};exports[_0x7ed4('0x57')]=function(_0x46cb08,_0x3a71ad){if(_0x46cb08[_0x7ed4('0x58')]['id']){delete _0x46cb08[_0x7ed4('0x58')]['id'];}return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x46cb08[_0x7ed4('0x55')]['id']}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x3a71ad,null))['then'](saveUpdates(_0x46cb08[_0x7ed4('0x58')],null))[_0x7ed4('0x1d')](respondWithResult(_0x3a71ad,null))[_0x7ed4('0x28')](handleError(_0x3a71ad,null));};exports[_0x7ed4('0x35')]=function(_0x7d21f2,_0x4dcfa7){return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x7d21f2['params']['id']}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x4dcfa7,null))[_0x7ed4('0x1d')](removeEntity(_0x4dcfa7,null))[_0x7ed4('0x28')](handleError(_0x4dcfa7,null));};exports[_0x7ed4('0x59')]=function(_0x3fdfd9,_0x826aac){return db[_0x7ed4('0x3b')][_0x7ed4('0x59')]()[_0x7ed4('0x1d')](respondWithResult(_0x826aac,null))[_0x7ed4('0x28')](handleError(_0x826aac,null));};var interaction_log=require(_0x7ed4('0x5a'))(_0x7ed4('0x5b'));exports[_0x7ed4('0x5c')]=function(_0x27d22b,_0x2452f2,_0x294ca2){var _0x20c824={'agent':{},'channel':_0x7ed4('0x5d')};if(_0x27d22b[_0x7ed4('0x58')]['id']){delete _0x27d22b[_0x7ed4('0x58')]['id'];}_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x5e')]=!![];_0x27d22b['body'][_0x7ed4('0x5f')]=moment()[_0x7ed4('0x60')](_0x7ed4('0x61'));_0x27d22b['body'][_0x7ed4('0x62')]=_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')]||_0x27d22b['user']['id'];_0x20c824[_0x7ed4('0x63')]['id']=_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')];return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x27d22b[_0x7ed4('0x55')]['id'],'UserId':null}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x2452f2,null))[_0x7ed4('0x1d')](saveUpdates(_0x27d22b[_0x7ed4('0x58')],null))['then'](function(_0x38053d){if(_0x38053d){_0x20c824['message']=_0x38053d[_0x7ed4('0x64')]({'plain':!![]});return db[_0x7ed4('0x65')][_0x7ed4('0x56')]({'where':{'id':_0x38053d[_0x7ed4('0x66')]}});}return null;})[_0x7ed4('0x1d')](handleEntityNotFound(_0x2452f2,null))['then'](function(_0x58f58c){if(_0x58f58c){return _0x58f58c[_0x7ed4('0x57')]({'UserId':_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')],'read1stAt':_[_0x7ed4('0x67')](_0x58f58c[_0x7ed4('0x68')])?moment()[_0x7ed4('0x60')](_0x7ed4('0x61')):undefined});}return null;})[_0x7ed4('0x1d')](function(_0xf61817){if(_0xf61817){_0x20c824[_0x7ed4('0x69')]=_0xf61817[_0x7ed4('0x64')]({'plain':!![]});interaction_log[_0x7ed4('0x1e')](_0x7ed4('0x6a'),_0x27d22b[_0x7ed4('0x6b')]['id'],_0x27d22b[_0x7ed4('0x6b')][_0x7ed4('0x37')],_0x27d22b[_0x7ed4('0x6b')]['role'],_0x20c824[_0x7ed4('0x69')]['id'],_0x27d22b[_0x7ed4('0x58')]?JSON['stringify'](_0x27d22b['body']):_0x7ed4('0x6c'));return respondWithRpcPromise(_0x7ed4('0x6d'),_0x7ed4('0x6e'),_0x20c824);}return null;})[_0x7ed4('0x1d')](function(_0x55496e){var _0xd7f73c=_0x7ed4('0x6f')+_0x55496e['message']['ContactId'];return db[_0x7ed4('0x70')][_0x7ed4('0x40')](_0xd7f73c,{'type':db[_0x7ed4('0x71')][_0x7ed4('0x72')][_0x7ed4('0x73')],'raw':!![]})[_0x7ed4('0x1d')](function(_0x15e267){return _0x15e267;});})[_0x7ed4('0x1d')](function(_0x165c45){if(_0x165c45){_0x20c824['message'][_0x7ed4('0x74')]=_0x165c45[0x0];if(!_0x27d22b['body'][_0x7ed4('0x62')])return;return db[_0x7ed4('0x75')][_0x7ed4('0x56')]({'where':{'id':_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')],'role':_0x7ed4('0x63')},'attributes':['id',_0x7ed4('0x37'),_0x7ed4('0x76'),_0x7ed4('0x77'),'internal'],'raw':!![]});}return null;})[_0x7ed4('0x1d')](function(_0xcaf9b7){if(!_0xcaf9b7)return null;_0x20c824[_0x7ed4('0x26')]['agent']=_0xcaf9b7;return _0x20c824;})[_0x7ed4('0x1d')](function(_0x3e0466){if(_0x3e0466){if(_0x27d22b['body'][_0x7ed4('0x78')]){_0x20c824[_0x7ed4('0x26')][_0x7ed4('0x79')]=util[_0x7ed4('0x60')](_0x7ed4('0x7a'),_0x27d22b[_0x7ed4('0x6b')]['name']);_0x20c824[_0x7ed4('0x26')]['channel']=_0x20c824[_0x7ed4('0x7b')];_0x20c824[_0x7ed4('0x26')]['event']=_0x7ed4('0x5c');return respondWithRpcPromise(_0x7ed4('0x7c'),_0x7ed4('0x7c'),{'event':_0x7ed4('0x7d'),'message':_0x20c824[_0x7ed4('0x26')]},client9002)[_0x7ed4('0x1d')](function(){return _0x20c824;});}return _0x20c824;}return null;})['then'](respondWithResult(_0x2452f2,null))[_0x7ed4('0x28')](handleError(_0x2452f2,null));};var interaction_log=require(_0x7ed4('0x5a'))(_0x7ed4('0x5b'));exports[_0x7ed4('0x33')]=function(_0x110b32,_0x8148aa,_0x1c85d9){var _0xe0b5c1={'agent':{},'channel':'fax'};if(_0x110b32[_0x7ed4('0x58')]['id']){delete _0x110b32[_0x7ed4('0x58')]['id'];}_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')]=_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')]||_0x110b32[_0x7ed4('0x6b')]['id'];_0xe0b5c1[_0x7ed4('0x63')]['id']=_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')];return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x110b32['params']['id'],'UserId':null}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x8148aa,null))['then'](function(_0x51f1dc){if(_0x51f1dc){_0xe0b5c1[_0x7ed4('0x26')]=_0x51f1dc[_0x7ed4('0x64')]({'plain':!![]});return db[_0x7ed4('0x65')][_0x7ed4('0x56')]({'where':{'id':_0x51f1dc['FaxInteractionId']}});}return null;})[_0x7ed4('0x1d')](handleEntityNotFound(_0x8148aa,null))[_0x7ed4('0x1d')](function(_0x1c9f15){if(_0x1c9f15){_0xe0b5c1['interaction']=_0x1c9f15[_0x7ed4('0x64')]({'plain':!![]});interaction_log['info'](_0x7ed4('0x7e'),_0x110b32[_0x7ed4('0x6b')]['id'],_0x110b32['user'][_0x7ed4('0x37')],_0x110b32[_0x7ed4('0x6b')]['role'],_0xe0b5c1[_0x7ed4('0x69')]['id'],_0x110b32[_0x7ed4('0x58')]?JSON[_0x7ed4('0x22')](_0x110b32[_0x7ed4('0x58')]):_0x7ed4('0x6c'));return respondWithRpcPromise(_0x7ed4('0x7f'),_0x7ed4('0x80'),_0xe0b5c1);}return null;})['then'](function(_0x59dcf1){var _0x36451b='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x59dcf1[_0x7ed4('0x26')][_0x7ed4('0x81')];return db[_0x7ed4('0x70')][_0x7ed4('0x40')](_0x36451b,{'type':db[_0x7ed4('0x71')]['QueryTypes']['SELECT'],'raw':!![]})['then'](function(_0x146311){return _0x146311;});})[_0x7ed4('0x1d')](function(_0x145fbb){if(_0x145fbb){_0xe0b5c1[_0x7ed4('0x26')][_0x7ed4('0x74')]=_0x145fbb[0x0];if(!_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')])return;return db['User'][_0x7ed4('0x56')]({'where':{'id':_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')],'role':_0x7ed4('0x63')},'attributes':['id',_0x7ed4('0x37'),_0x7ed4('0x76'),_0x7ed4('0x77'),'internal'],'raw':!![]});}return null;})[_0x7ed4('0x1d')](function(_0x593e1b){if(!_0x593e1b)return null;_0xe0b5c1['message']['agent']=_0x593e1b;return _0xe0b5c1;})[_0x7ed4('0x1d')](function(_0x4946ce){if(_0x4946ce){_0x4946ce[_0x7ed4('0x26')]['interface']=util[_0x7ed4('0x60')]('SIP/%s',_0x110b32[_0x7ed4('0x6b')][_0x7ed4('0x37')]);_0x4946ce[_0x7ed4('0x26')][_0x7ed4('0x7b')]=_0xe0b5c1[_0x7ed4('0x7b')];_0x4946ce[_0x7ed4('0x26')][_0x7ed4('0x82')]='reject';respondWithRpcPromise(_0x7ed4('0x7c'),_0x7ed4('0x7c'),{'event':'rejectmessage','message':_0x4946ce[_0x7ed4('0x26')]},client9002);return _0xe0b5c1;}return null;})['then'](respondWithResult(_0x8148aa,null))['catch'](handleError(_0x8148aa,null));};exports[_0x7ed4('0x83')]=function(_0x525e2f,_0x3765b8){var _0x13f124;return db[_0x7ed4('0x3b')]['create'](_0x525e2f[_0x7ed4('0x58')],{})[_0x7ed4('0x1d')](function(_0x124441){_0x13f124=_0x124441;return db[_0x7ed4('0x84')][_0x7ed4('0x85')]({'where':{'id':_0x13f124[_0x7ed4('0x81')]}});})[_0x7ed4('0x1d')](function(_0x50808a){if(_[_0x7ed4('0x67')](_0x50808a)){return;}else{_0x13f124[_0x7ed4('0x5d')]=_0x50808a[_0x7ed4('0x5d')];return db[_0x7ed4('0x86')]['findOne']({'where':{'id':_0x13f124[_0x7ed4('0x87')]}});}})[_0x7ed4('0x1d')](function(_0x4efd99){return respondWithRpcPromise(_0x7ed4('0x88'),'SendFax',{'FaxAccountId':_['isNil'](_0x525e2f[_0x7ed4('0x58')])?undefined:_0x525e2f[_0x7ed4('0x58')][_0x7ed4('0x89')],'path':_[_0x7ed4('0x67')](_0x4efd99)?undefined:util[_0x7ed4('0x60')](_0x7ed4('0x8a'),_0x4efd99['basename']),'fax':_[_0x7ed4('0x67')](_0x13f124[_0x7ed4('0x5d')])?undefined:_0x13f124[_0x7ed4('0x5d')],'AttachmentId':_0x13f124[_0x7ed4('0x87')]},client9002);})[_0x7ed4('0x1d')](respondWithResult(_0x3765b8,0xc9))[_0x7ed4('0x28')](handleError(_0x3765b8,null));};exports[_0x7ed4('0x8b')]=function(_0x3649a9,_0x3257cc){var _0x3b2148=path[_0x7ed4('0x8c')](config[_0x7ed4('0x8d')],_0x7ed4('0x8e'),_0x7ed4('0x8f'),_0x7ed4('0x90'));return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x3649a9[_0x7ed4('0x55')]['id']},'include':[{'model':db[_0x7ed4('0x86')],'as':'Attachment'}]})[_0x7ed4('0x1d')](handleEntityNotFound(_0x3257cc,null))[_0x7ed4('0x1d')](function(_0x51757b){if(_0x51757b){return _0x3257cc['download'](path[_0x7ed4('0x8c')](_0x3b2148,_0x51757b[_0x7ed4('0x86')][_0x7ed4('0x91')]));}})['catch'](handleError(_0x3257cc,null));};
\ No newline at end of file
+var _0xdd8e=['merge','VIRTUAL','options','includeAll','include','findAll','show','params','find','body','fax-interactions','accept','fax','read','readAt','YYYY-MM-DD\x20HH:mm:ss','user','agent','UserId','get','FaxInteractionId','isNil','read1stAt','format','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','SELECT','contact','User','internal','manual','SIP/%s','channel','motionChannel','event','EventManager','FaxInteraction','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','fullname','email','rejectmessage','CmContact','Attachment','findOne','AttachmentId','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','basename','join','server','download','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./faxMessage.socket','register','jayson/promise','http','client','request','then','info','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','result','catch','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','sendStatus','stack','send','index','map','FaxMessage','rawAttributes','fieldName','type','key','model','name','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','filter','where'];(function(_0x403115,_0x2d6d03){var _0x596ef3=function(_0x145d97){while(--_0x145d97){_0x403115['push'](_0x403115['shift']());}};_0x596ef3(++_0x2d6d03);}(_0xdd8e,0x1f4));var _0xedd8=function(_0x170522,_0x273df0){_0x170522=_0x170522-0x0;var _0x2a0a7b=_0xdd8e[_0x170522];return _0x2a0a7b;};'use strict';var emlformat=require(_0xedd8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xedd8('0x1'));var jsonpatch=require(_0xedd8('0x2'));var rp=require(_0xedd8('0x3'));var moment=require(_0xedd8('0x4'));var BPromise=require(_0xedd8('0x5'));var Mustache=require(_0xedd8('0x6'));var util=require(_0xedd8('0x7'));var path=require(_0xedd8('0x8'));var sox=require(_0xedd8('0x9'));var csv=require(_0xedd8('0xa'));var ejs=require(_0xedd8('0xb'));var fs=require('fs');var fs_extra=require(_0xedd8('0xc'));var _=require(_0xedd8('0xd'));var squel=require(_0xedd8('0xe'));var crypto=require('crypto');var jsforce=require(_0xedd8('0xf'));var deskjs=require(_0xedd8('0x10'));var toCsv=require(_0xedd8('0xa'));var querystring=require('querystring');var Papa=require(_0xedd8('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xedd8('0x12'));var as=require(_0xedd8('0x13'));var hardwareService=require(_0xedd8('0x14'));var logger=require(_0xedd8('0x15'))(_0xedd8('0x16'));var utils=require(_0xedd8('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xedd8('0x18'));var db=require(_0xedd8('0x19'))['db'];config['redis']=_[_0xedd8('0x1a')](config[_0xedd8('0x1b')],{'host':_0xedd8('0x1c'),'port':0x18eb});var socket=require(_0xedd8('0x1d'))(new Redis(config['redis']));require(_0xedd8('0x1e'))[_0xedd8('0x1f')](socket);var jayson=require(_0xedd8('0x20'));var client=jayson['client'][_0xedd8('0x21')]({'port':0x232c});var client9002=jayson[_0xedd8('0x22')][_0xedd8('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x40238a,_0x191fdc,_0x6692db,_0x4fe4f8){return new BPromise(function(_0xb47137,_0x44970c){var _0x4211d0=_0x4fe4f8||client;return _0x4211d0[_0xedd8('0x23')](_0x40238a,_0x6692db)[_0xedd8('0x24')](function(_0x39386b){logger[_0xedd8('0x25')]('FaxMessage,\x20%s,\x20%s',_0x191fdc,_0xedd8('0x26'));logger[_0xedd8('0x27')](_0xedd8('0x28'),_0x191fdc,'request\x20sent',JSON[_0xedd8('0x29')](_0x39386b));if(_0x39386b[_0xedd8('0x2a')]){if(_0x39386b[_0xedd8('0x2a')][_0xedd8('0x2b')]===0x1f4){logger[_0xedd8('0x2a')](_0xedd8('0x2c'),_0x191fdc,_0x39386b['error'][_0xedd8('0x2d')]);return _0x44970c(_0x39386b[_0xedd8('0x2a')][_0xedd8('0x2d')]);}logger['error'](_0xedd8('0x2c'),_0x191fdc,_0x39386b['error'][_0xedd8('0x2d')]);return _0xb47137(_0x39386b[_0xedd8('0x2a')][_0xedd8('0x2d')]);}else{logger[_0xedd8('0x25')](_0xedd8('0x2c'),_0x191fdc,'request\x20sent');_0xb47137(_0x39386b[_0xedd8('0x2e')]['message']);}})[_0xedd8('0x2f')](function(_0x4d316a){logger[_0xedd8('0x2a')](_0xedd8('0x2c'),_0x191fdc,_0x4d316a);_0x44970c(_0x4d316a);});});}function respondWithStatusCode(_0xebeb34,_0x40610e){_0x40610e=_0x40610e||0xcc;return function(_0x298048){if(_0x298048){return _0xebeb34['sendStatus'](_0x40610e);}return _0xebeb34['status'](_0x40610e)[_0xedd8('0x30')]();};}function respondWithResult(_0x4e5839,_0x4856e9){_0x4856e9=_0x4856e9||0xc8;return function(_0x57263a){if(_0x57263a){return _0x4e5839[_0xedd8('0x31')](_0x4856e9)[_0xedd8('0x32')](_0x57263a);}};}function respondWithFilteredResult(_0xa38bb5,_0x3e9d6a){return function(_0x142620){if(_0x142620){var _0x382389=typeof _0x3e9d6a[_0xedd8('0x33')]===_0xedd8('0x34')&&typeof _0x3e9d6a[_0xedd8('0x35')]===_0xedd8('0x34');var _0x4c33dd=_0x142620[_0xedd8('0x36')];var _0x48a7db=_0x382389?0x0:_0x3e9d6a[_0xedd8('0x33')];var _0x498cf0=_0x382389?_0x142620['count']:_0x3e9d6a[_0xedd8('0x33')]+_0x3e9d6a[_0xedd8('0x35')];var _0x5603bb;if(_0x498cf0>=_0x4c33dd){_0x498cf0=_0x4c33dd;_0x5603bb=0xc8;}else{_0x5603bb=0xce;}_0xa38bb5[_0xedd8('0x31')](_0x5603bb);return _0xa38bb5[_0xedd8('0x37')](_0xedd8('0x38'),_0x48a7db+'-'+_0x498cf0+'/'+_0x4c33dd)[_0xedd8('0x32')](_0x142620);}return null;};}function patchUpdates(_0x130448){return function(_0x362b4a){try{jsonpatch['apply'](_0x362b4a,_0x130448,!![]);}catch(_0x4639f2){return BPromise[_0xedd8('0x39')](_0x4639f2);}return _0x362b4a[_0xedd8('0x3a')]();};}function saveUpdates(_0x5efc41,_0x47b8cd){return function(_0x41961c){if(_0x41961c){return _0x41961c[_0xedd8('0x3b')](_0x5efc41)[_0xedd8('0x24')](function(_0x240f35){return _0x240f35;});}return null;};}function removeEntity(_0x568574,_0x523ca2){return function(_0x215892){if(_0x215892){return _0x215892['destroy']()[_0xedd8('0x24')](function(){_0x568574[_0xedd8('0x31')](0xcc)[_0xedd8('0x30')]();});}};}function handleEntityNotFound(_0x11669a,_0x41f1be){return function(_0x5c2bf7){if(!_0x5c2bf7){_0x11669a[_0xedd8('0x3c')](0x194);}return _0x5c2bf7;};}function handleError(_0x14c41b,_0x5e4964){_0x5e4964=_0x5e4964||0x1f4;return function(_0x1f39c1){logger[_0xedd8('0x2a')](_0x1f39c1[_0xedd8('0x3d')]);if(_0x1f39c1['name']){delete _0x1f39c1['name'];}_0x14c41b['status'](_0x5e4964)[_0xedd8('0x3e')](_0x1f39c1);};}exports[_0xedd8('0x3f')]=function(_0x222d64,_0x311968){var _0x247b7c={},_0x4be1c7={},_0x41343a={'count':0x0,'rows':[]};var _0x3acedb=_[_0xedd8('0x40')](db[_0xedd8('0x41')][_0xedd8('0x42')],function(_0x38ace5){return{'name':_0x38ace5[_0xedd8('0x43')],'type':_0x38ace5[_0xedd8('0x44')][_0xedd8('0x45')]};});_0x4be1c7[_0xedd8('0x46')]=_[_0xedd8('0x40')](_0x3acedb,_0xedd8('0x47'));_0x4be1c7[_0xedd8('0x48')]=_[_0xedd8('0x49')](_0x222d64[_0xedd8('0x48')]);_0x4be1c7[_0xedd8('0x4a')]=_['intersection'](_0x4be1c7[_0xedd8('0x46')],_0x4be1c7[_0xedd8('0x48')]);_0x247b7c[_0xedd8('0x4b')]=_[_0xedd8('0x4c')](_0x4be1c7[_0xedd8('0x46')],qs[_0xedd8('0x4d')](_0x222d64[_0xedd8('0x48')]['fields']));_0x247b7c[_0xedd8('0x4b')]=_0x247b7c[_0xedd8('0x4b')][_0xedd8('0x4e')]?_0x247b7c[_0xedd8('0x4b')]:_0x4be1c7[_0xedd8('0x46')];if(!_0x222d64[_0xedd8('0x48')]['hasOwnProperty'](_0xedd8('0x4f'))){_0x247b7c['limit']=qs[_0xedd8('0x35')](_0x222d64[_0xedd8('0x48')][_0xedd8('0x35')]);_0x247b7c[_0xedd8('0x33')]=qs[_0xedd8('0x33')](_0x222d64[_0xedd8('0x48')][_0xedd8('0x33')]);}_0x247b7c[_0xedd8('0x50')]=qs[_0xedd8('0x51')](_0x222d64['query'][_0xedd8('0x51')]);_0x247b7c['where']=qs[_0xedd8('0x4a')](_['pick'](_0x222d64['query'],_0x4be1c7[_0xedd8('0x4a')]),_0x3acedb);if(_0x222d64[_0xedd8('0x48')][_0xedd8('0x52')]){_0x247b7c[_0xedd8('0x53')]=_[_0xedd8('0x54')](_0x247b7c[_0xedd8('0x53')],{'$or':_['map'](_0x3acedb,function(_0x25b821){if(_0x25b821[_0xedd8('0x44')]!==_0xedd8('0x55')){var _0x43f751={};_0x43f751[_0x25b821[_0xedd8('0x47')]]={'$like':'%'+_0x222d64[_0xedd8('0x48')][_0xedd8('0x52')]+'%'};return _0x43f751;}})});}_0x247b7c=_[_0xedd8('0x54')]({},_0x247b7c,_0x222d64[_0xedd8('0x56')]);var _0x534fd4={'where':_0x247b7c['where']};return db[_0xedd8('0x41')][_0xedd8('0x36')](_0x534fd4)['then'](function(_0x5c1f66){_0x41343a['count']=_0x5c1f66;if(_0x222d64[_0xedd8('0x48')][_0xedd8('0x57')]){_0x247b7c[_0xedd8('0x58')]=[{'all':!![]}];}return db[_0xedd8('0x41')][_0xedd8('0x59')](_0x247b7c);})[_0xedd8('0x24')](function(_0xf61774){_0x41343a['rows']=_0xf61774;return _0x41343a;})[_0xedd8('0x24')](respondWithFilteredResult(_0x311968,_0x247b7c))[_0xedd8('0x2f')](handleError(_0x311968,null));};exports[_0xedd8('0x5a')]=function(_0x2603ae,_0x581dfc){var _0x5aea6f={'raw':!![],'where':{'id':_0x2603ae[_0xedd8('0x5b')]['id']}},_0x276374={};_0x276374[_0xedd8('0x46')]=_['keys'](db[_0xedd8('0x41')]['rawAttributes']);_0x276374[_0xedd8('0x48')]=_[_0xedd8('0x49')](_0x2603ae[_0xedd8('0x48')]);_0x276374[_0xedd8('0x4a')]=_[_0xedd8('0x4c')](_0x276374[_0xedd8('0x46')],_0x276374[_0xedd8('0x48')]);_0x5aea6f[_0xedd8('0x4b')]=_['intersection'](_0x276374['model'],qs[_0xedd8('0x4d')](_0x2603ae[_0xedd8('0x48')][_0xedd8('0x4d')]));_0x5aea6f[_0xedd8('0x4b')]=_0x5aea6f[_0xedd8('0x4b')][_0xedd8('0x4e')]?_0x5aea6f['attributes']:_0x276374['model'];if(_0x2603ae['query'][_0xedd8('0x57')]){_0x5aea6f[_0xedd8('0x58')]=[{'all':!![]}];}_0x5aea6f=_[_0xedd8('0x54')]({},_0x5aea6f,_0x2603ae[_0xedd8('0x56')]);return db[_0xedd8('0x41')][_0xedd8('0x5c')](_0x5aea6f)[_0xedd8('0x24')](handleEntityNotFound(_0x581dfc,null))['then'](respondWithResult(_0x581dfc,null))[_0xedd8('0x2f')](handleError(_0x581dfc,null));};exports[_0xedd8('0x3b')]=function(_0x2bf950,_0x1e8f63){if(_0x2bf950[_0xedd8('0x5d')]['id']){delete _0x2bf950['body']['id'];}return db[_0xedd8('0x41')][_0xedd8('0x5c')]({'where':{'id':_0x2bf950[_0xedd8('0x5b')]['id']}})[_0xedd8('0x24')](handleEntityNotFound(_0x1e8f63,null))[_0xedd8('0x24')](saveUpdates(_0x2bf950[_0xedd8('0x5d')],null))[_0xedd8('0x24')](respondWithResult(_0x1e8f63,null))[_0xedd8('0x2f')](handleError(_0x1e8f63,null));};exports['destroy']=function(_0x3cc716,_0x3de324){return db[_0xedd8('0x41')][_0xedd8('0x5c')]({'where':{'id':_0x3cc716[_0xedd8('0x5b')]['id']}})[_0xedd8('0x24')](handleEntityNotFound(_0x3de324,null))[_0xedd8('0x24')](removeEntity(_0x3de324,null))[_0xedd8('0x2f')](handleError(_0x3de324,null));};exports['describe']=function(_0x339e1c,_0x200e81){return db[_0xedd8('0x41')]['describe']()['then'](respondWithResult(_0x200e81,null))[_0xedd8('0x2f')](handleError(_0x200e81,null));};var interaction_log=require('../../config/logger')(_0xedd8('0x5e'));exports[_0xedd8('0x5f')]=function(_0x4e9aa6,_0x81f72e,_0x453b3a){var _0x4f6920={'agent':{},'channel':_0xedd8('0x60')};if(_0x4e9aa6[_0xedd8('0x5d')]['id']){delete _0x4e9aa6[_0xedd8('0x5d')]['id'];}_0x4e9aa6[_0xedd8('0x5d')][_0xedd8('0x61')]=!![];_0x4e9aa6[_0xedd8('0x5d')][_0xedd8('0x62')]=moment()['format'](_0xedd8('0x63'));_0x4e9aa6[_0xedd8('0x5d')]['UserId']=_0x4e9aa6[_0xedd8('0x5d')]['UserId']||_0x4e9aa6[_0xedd8('0x64')]['id'];_0x4f6920[_0xedd8('0x65')]['id']=_0x4e9aa6['body'][_0xedd8('0x66')];return db['FaxMessage'][_0xedd8('0x5c')]({'where':{'id':_0x4e9aa6[_0xedd8('0x5b')]['id'],'UserId':null}})[_0xedd8('0x24')](handleEntityNotFound(_0x81f72e,null))[_0xedd8('0x24')](saveUpdates(_0x4e9aa6['body'],null))[_0xedd8('0x24')](function(_0x5e568e){if(_0x5e568e){_0x4f6920[_0xedd8('0x2d')]=_0x5e568e[_0xedd8('0x67')]({'plain':!![]});return db['FaxInteraction']['find']({'where':{'id':_0x5e568e[_0xedd8('0x68')]}});}return null;})[_0xedd8('0x24')](handleEntityNotFound(_0x81f72e,null))[_0xedd8('0x24')](function(_0x42728d){if(_0x42728d){return _0x42728d['update']({'UserId':_0x4e9aa6[_0xedd8('0x5d')][_0xedd8('0x66')],'read1stAt':_[_0xedd8('0x69')](_0x42728d[_0xedd8('0x6a')])?moment()[_0xedd8('0x6b')](_0xedd8('0x63')):undefined});}return null;})[_0xedd8('0x24')](function(_0x752a19){if(_0x752a19){_0x4f6920[_0xedd8('0x6c')]=_0x752a19[_0xedd8('0x67')]({'plain':!![]});interaction_log[_0xedd8('0x25')](_0xedd8('0x6d'),_0x4e9aa6[_0xedd8('0x64')]['id'],_0x4e9aa6[_0xedd8('0x64')]['name'],_0x4e9aa6[_0xedd8('0x64')][_0xedd8('0x6e')],_0x4f6920[_0xedd8('0x6c')]['id'],_0x4e9aa6[_0xedd8('0x5d')]?JSON[_0xedd8('0x29')](_0x4e9aa6['body']):_0xedd8('0x6f'));return respondWithRpcPromise(_0xedd8('0x70'),_0xedd8('0x71'),_0x4f6920);}return null;})[_0xedd8('0x24')](function(_0x58aa2d){var _0xfe39f=_0xedd8('0x72')+_0x58aa2d[_0xedd8('0x2d')][_0xedd8('0x73')];return db[_0xedd8('0x74')]['query'](_0xfe39f,{'type':db[_0xedd8('0x75')]['QueryTypes'][_0xedd8('0x76')],'raw':!![]})['then'](function(_0xcb2700){return _0xcb2700;});})['then'](function(_0x47a122){if(_0x47a122){_0x4f6920[_0xedd8('0x2d')][_0xedd8('0x77')]=_0x47a122[0x0];if(!_0x4e9aa6[_0xedd8('0x5d')][_0xedd8('0x66')])return;return db[_0xedd8('0x78')][_0xedd8('0x5c')]({'where':{'id':_0x4e9aa6[_0xedd8('0x5d')]['UserId'],'role':_0xedd8('0x65')},'attributes':['id',_0xedd8('0x47'),'fullname','email',_0xedd8('0x79')],'raw':!![]});}return null;})[_0xedd8('0x24')](function(_0x2379b8){if(!_0x2379b8)return null;_0x4f6920[_0xedd8('0x2d')]['agent']=_0x2379b8;return _0x4f6920;})['then'](function(_0x35f1f9){if(_0x35f1f9){if(_0x4e9aa6[_0xedd8('0x5d')][_0xedd8('0x7a')]){_0x4f6920['message']['interface']=util['format'](_0xedd8('0x7b'),_0x4e9aa6[_0xedd8('0x64')][_0xedd8('0x47')]);_0x4f6920['message'][_0xedd8('0x7c')]=_0x4f6920[_0xedd8('0x7c')];_0x4f6920[_0xedd8('0x2d')][_0xedd8('0x7d')]=_0x4f6920[_0xedd8('0x7c')];_0x4f6920['message'][_0xedd8('0x7e')]='accept';return respondWithRpcPromise('EventManager',_0xedd8('0x7f'),{'event':'acceptmessage','message':_0x4f6920[_0xedd8('0x2d')]},client9002)['then'](function(){return _0x4f6920;});}return _0x4f6920;}return null;})[_0xedd8('0x24')](respondWithResult(_0x81f72e,null))[_0xedd8('0x2f')](handleError(_0x81f72e,null));};var interaction_log=require(_0xedd8('0x15'))(_0xedd8('0x5e'));exports[_0xedd8('0x39')]=function(_0x23a8e2,_0x861800,_0x3e2246){var _0x25eba5={'agent':{},'channel':_0xedd8('0x60')};if(_0x23a8e2[_0xedd8('0x5d')]['id']){delete _0x23a8e2[_0xedd8('0x5d')]['id'];}_0x23a8e2[_0xedd8('0x5d')][_0xedd8('0x66')]=_0x23a8e2['body']['UserId']||_0x23a8e2[_0xedd8('0x64')]['id'];_0x25eba5['agent']['id']=_0x23a8e2[_0xedd8('0x5d')][_0xedd8('0x66')];return db['FaxMessage']['find']({'where':{'id':_0x23a8e2[_0xedd8('0x5b')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x861800,null))['then'](function(_0xfb8800){if(_0xfb8800){_0x25eba5[_0xedd8('0x2d')]=_0xfb8800[_0xedd8('0x67')]({'plain':!![]});return db[_0xedd8('0x80')]['find']({'where':{'id':_0xfb8800[_0xedd8('0x68')]}});}return null;})['then'](handleEntityNotFound(_0x861800,null))[_0xedd8('0x24')](function(_0x5dd0c8){if(_0x5dd0c8){_0x25eba5['interaction']=_0x5dd0c8[_0xedd8('0x67')]({'plain':!![]});interaction_log['info'](_0xedd8('0x81'),_0x23a8e2['user']['id'],_0x23a8e2[_0xedd8('0x64')][_0xedd8('0x47')],_0x23a8e2['user']['role'],_0x25eba5[_0xedd8('0x6c')]['id'],_0x23a8e2['body']?JSON[_0xedd8('0x29')](_0x23a8e2[_0xedd8('0x5d')]):_0xedd8('0x6f'));return respondWithRpcPromise(_0xedd8('0x82'),_0xedd8('0x83'),_0x25eba5);}return null;})['then'](function(_0x51a2dc){var _0x2c9e31=_0xedd8('0x72')+_0x51a2dc[_0xedd8('0x2d')][_0xedd8('0x73')];return db['sequelize'][_0xedd8('0x48')](_0x2c9e31,{'type':db[_0xedd8('0x75')]['QueryTypes'][_0xedd8('0x76')],'raw':!![]})[_0xedd8('0x24')](function(_0xc2d2ab){return _0xc2d2ab;});})[_0xedd8('0x24')](function(_0x9cce11){if(_0x9cce11){_0x25eba5[_0xedd8('0x2d')][_0xedd8('0x77')]=_0x9cce11[0x0];if(!_0x23a8e2['body']['UserId'])return;return db['User'][_0xedd8('0x5c')]({'where':{'id':_0x23a8e2[_0xedd8('0x5d')][_0xedd8('0x66')],'role':_0xedd8('0x65')},'attributes':['id',_0xedd8('0x47'),_0xedd8('0x84'),_0xedd8('0x85'),'internal'],'raw':!![]});}return null;})['then'](function(_0x58fb0d){if(!_0x58fb0d)return null;_0x25eba5[_0xedd8('0x2d')]['agent']=_0x58fb0d;return _0x25eba5;})['then'](function(_0x239bd3){if(_0x239bd3){_0x239bd3[_0xedd8('0x2d')]['interface']=util[_0xedd8('0x6b')](_0xedd8('0x7b'),_0x23a8e2[_0xedd8('0x64')][_0xedd8('0x47')]);_0x239bd3[_0xedd8('0x2d')]['channel']=_0x25eba5[_0xedd8('0x7c')];_0x239bd3[_0xedd8('0x2d')][_0xedd8('0x7d')]=_0x25eba5['channel'];_0x239bd3[_0xedd8('0x2d')][_0xedd8('0x7e')]=_0xedd8('0x39');respondWithRpcPromise('EventManager','EventManager',{'event':_0xedd8('0x86'),'message':_0x239bd3['message']},client9002);return _0x25eba5;}return null;})[_0xedd8('0x24')](respondWithResult(_0x861800,null))[_0xedd8('0x2f')](handleError(_0x861800,null));};exports['create']=function(_0x258b11,_0x420227){var _0x48ff7a;return db[_0xedd8('0x41')]['create'](_0x258b11['body'],{})[_0xedd8('0x24')](function(_0x5df4f3){_0x48ff7a=_0x5df4f3;return db[_0xedd8('0x87')]['findOne']({'where':{'id':_0x48ff7a['ContactId']}});})[_0xedd8('0x24')](function(_0x31a171){if(_[_0xedd8('0x69')](_0x31a171)){return;}else{_0x48ff7a['fax']=_0x31a171[_0xedd8('0x60')];return db[_0xedd8('0x88')][_0xedd8('0x89')]({'where':{'id':_0x48ff7a[_0xedd8('0x8a')]}});}})[_0xedd8('0x24')](function(_0xb6686a){return respondWithRpcPromise(_0xedd8('0x8b'),_0xedd8('0x8b'),{'FaxAccountId':_[_0xedd8('0x69')](_0x258b11[_0xedd8('0x5d')])?undefined:_0x258b11[_0xedd8('0x5d')][_0xedd8('0x8c')],'path':_[_0xedd8('0x69')](_0xb6686a)?undefined:util[_0xedd8('0x6b')](_0xedd8('0x8d'),_0xb6686a[_0xedd8('0x8e')]),'fax':_[_0xedd8('0x69')](_0x48ff7a[_0xedd8('0x60')])?undefined:_0x48ff7a[_0xedd8('0x60')],'AttachmentId':_0x48ff7a[_0xedd8('0x8a')]},client9002);})[_0xedd8('0x24')](respondWithResult(_0x420227,0xc9))[_0xedd8('0x2f')](handleError(_0x420227,null));};exports['download']=function(_0x4a11ba,_0x4f53c2){var _0x46da9c=path[_0xedd8('0x8f')](config['root'],_0xedd8('0x90'),'files','attachments');return db[_0xedd8('0x41')][_0xedd8('0x5c')]({'where':{'id':_0x4a11ba[_0xedd8('0x5b')]['id']},'include':[{'model':db[_0xedd8('0x88')],'as':'Attachment'}]})['then'](handleEntityNotFound(_0x4f53c2,null))[_0xedd8('0x24')](function(_0x3de0e5){if(_0x3de0e5){return _0x4f53c2[_0xedd8('0x91')](path['join'](_0x46da9c,_0x3de0e5[_0xedd8('0x88')][_0xedd8('0x8e')]));}})[_0xedd8('0x2f')](handleError(_0x4f53c2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d37=['FaxMessage','save','update','remove','emit','hasOwnProperty','exports','events','../../mysqldb'];(function(_0x137fdf,_0x4bd2bc){var _0x2cd3db=function(_0x31bf48){while(--_0x31bf48){_0x137fdf['push'](_0x137fdf['shift']());}};_0x2cd3db(++_0x4bd2bc);}(_0x7d37,0x1db));var _0x77d3=function(_0x3e8690,_0x58abb3){_0x3e8690=_0x3e8690-0x0;var _0x57f3dc=_0x7d37[_0x3e8690];return _0x57f3dc;};'use strict';var EventEmitter=require(_0x77d3('0x0'));var FaxMessage=require(_0x77d3('0x1'))['db'][_0x77d3('0x2')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x77d3('0x3'),'afterUpdate':_0x77d3('0x4'),'afterDestroy':_0x77d3('0x5')};function emitEvent(_0x52c909){return function(_0x293f20,_0x2ae533,_0x59773d){FaxMessageEvents[_0x77d3('0x6')](_0x52c909+':'+_0x293f20['id'],_0x293f20);FaxMessageEvents['emit'](_0x52c909,_0x293f20);_0x59773d(null);};}for(var e in events){if(events[_0x77d3('0x7')](e)){var event=events[e];FaxMessage['hook'](e,emitEvent(event));}}module[_0x77d3('0x8')]=FaxMessageEvents;
\ No newline at end of file
+var _0xee55=['events','FaxMessage','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xee55,0x1a0));var _0x5ee5=function(_0x5b3950,_0x4e5556){_0x5b3950=_0x5b3950-0x0;var _0x41e436=_0xee55[_0x5b3950];return _0x41e436;};'use strict';var EventEmitter=require(_0x5ee5('0x0'));var FaxMessage=require('../../mysqldb')['db'][_0x5ee5('0x1')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x5ee5('0x2'),'afterUpdate':'update','afterDestroy':_0x5ee5('0x3')};function emitEvent(_0x2fc0fd){return function(_0x4e5f9b,_0x394334,_0x119392){FaxMessageEvents[_0x5ee5('0x4')](_0x2fc0fd+':'+_0x4e5f9b['id'],_0x4e5f9b);FaxMessageEvents[_0x5ee5('0x4')](_0x2fc0fd,_0x4e5f9b);_0x119392(null);};}for(var e in events){if(events[_0x5ee5('0x5')](e)){var event=events[e];FaxMessage[_0x5ee5('0x6')](e,emitEvent(event));}}module[_0x5ee5('0x7')]=FaxMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4563=['bluebird','request-promise','path','rimraf','../../config/environment','./faxMessage.attributes','exports','define','FaxMessage','fax_messages','FULLTEXT','models','direction','toLowerCase','out','secret','isNil','UserId','FaxInteraction','then','update','createdAt','catch','error','utf8mb4','util','api'];(function(_0x2556e0,_0x404e15){var _0x438201=function(_0x24b87c){while(--_0x24b87c){_0x2556e0['push'](_0x2556e0['shift']());}};_0x438201(++_0x404e15);}(_0x4563,0x10c));var _0x3456=function(_0x5eb70e,_0x10ff1e){_0x5eb70e=_0x5eb70e-0x0;var _0x1f2af4=_0x4563[_0x5eb70e];return _0x1f2af4;};'use strict';var _=require('lodash');var util=require(_0x3456('0x0'));var logger=require('../../config/logger')(_0x3456('0x1'));var moment=require('moment');var BPromise=require(_0x3456('0x2'));var rp=require(_0x3456('0x3'));var fs=require('fs');var path=require(_0x3456('0x4'));var rimraf=require(_0x3456('0x5'));var config=require(_0x3456('0x6'));var attributes=require(_0x3456('0x7'));module[_0x3456('0x8')]=function(_0x57922f,_0x5a1dfe){return _0x57922f[_0x3456('0x9')](_0x3456('0xa'),attributes,{'tableName':_0x3456('0xb'),'paranoid':![],'indexes':[{'name':'fti_fax_messages','fields':['body'],'type':_0x3456('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3a15d4,_0x40ccf9,_0x24a878){var _0x2e1e59=_0x57922f[_0x3456('0xd')];var _0xeb044a=_0x3a15d4['get']({'plain':!![]});if(_0xeb044a[_0x3456('0xe')][_0x3456('0xf')]()==='in'||_0xeb044a[_0x3456('0xe')][_0x3456('0xf')]()===_0x3456('0x10')&&!_0xeb044a[_0x3456('0x11')]&&!_[_0x3456('0x12')](_0xeb044a[_0x3456('0x13')])){_0x2e1e59[_0x3456('0x14')]['findOne']({'where':{'id':_0xeb044a['FaxInteractionId']}})[_0x3456('0x15')](function(_0x5f004f){if(_0x5f004f){_0x5f004f[_0x3456('0x16')]({'lastMsgAt':_0xeb044a[_0x3456('0x17')],'lastMsgDirection':_0xeb044a[_0x3456('0xe')]['toLowerCase']()});}})[_0x3456('0x18')](function(_0x1268a4){console[_0x3456('0x19')](_0x1268a4);});}_0x24a878();}},'charset':_0x3456('0x1a'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x7d63=['FaxMessage','fax_messages','models','get','toLowerCase','out','secret','isNil','UserId','findOne','FaxInteractionId','then','update','direction','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','path','rimraf','./faxMessage.attributes','exports','define'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7d63,0xce));var _0x37d6=function(_0x3f0b30,_0x159bc8){_0x3f0b30=_0x3f0b30-0x0;var _0x2748a5=_0x7d63[_0x3f0b30];return _0x2748a5;};'use strict';var _=require(_0x37d6('0x0'));var util=require(_0x37d6('0x1'));var logger=require(_0x37d6('0x2'))('api');var moment=require(_0x37d6('0x3'));var BPromise=require(_0x37d6('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x37d6('0x5'));var rimraf=require(_0x37d6('0x6'));var config=require('../../config/environment');var attributes=require(_0x37d6('0x7'));module[_0x37d6('0x8')]=function(_0x23372f,_0x3df48){return _0x23372f[_0x37d6('0x9')](_0x37d6('0xa'),attributes,{'tableName':_0x37d6('0xb'),'paranoid':![],'indexes':[{'name':'fti_fax_messages','fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x56b96c,_0x7f51ca,_0x216fd3){var _0x271de0=_0x23372f[_0x37d6('0xc')];var _0x1edf5e=_0x56b96c[_0x37d6('0xd')]({'plain':!![]});if(_0x1edf5e['direction'][_0x37d6('0xe')]()==='in'||_0x1edf5e['direction']['toLowerCase']()===_0x37d6('0xf')&&!_0x1edf5e[_0x37d6('0x10')]&&!_[_0x37d6('0x11')](_0x1edf5e[_0x37d6('0x12')])){_0x271de0['FaxInteraction'][_0x37d6('0x13')]({'where':{'id':_0x1edf5e[_0x37d6('0x14')]}})[_0x37d6('0x15')](function(_0x8e987c){if(_0x8e987c){_0x8e987c[_0x37d6('0x16')]({'lastMsgAt':_0x1edf5e['createdAt'],'lastMsgDirection':_0x1edf5e[_0x37d6('0x17')][_0x37d6('0xe')]()});}})[_0x37d6('0x18')](function(_0x5a3819){console['error'](_0x5a3819);});}_0x216fd3();}},'charset':_0x37d6('0x19'),'collate':_0x37d6('0x1a')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['create','body','raw','CreateFaxMessage','catch','FaxMessage','update','options','where','attributes','limit','UpdateFaxMessage','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','localhost','socket.io-emitter','redis','./faxMessage.socket','request','then','info','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x5b3433,_0x173186){var _0x5be594=function(_0x3d45e5){while(--_0x3d45e5){_0x5b3433['push'](_0x5b3433['shift']());}};_0x5be594(++_0x173186);}(_0xedd9,0xfc));var _0x9edd=function(_0x4abd8b,_0x43e4c8){_0x4abd8b=_0x4abd8b-0x0;var _0x4e3bb6=_0xedd9[_0x4abd8b];return _0x4e3bb6;};'use strict';var _=require('lodash');var util=require(_0x9edd('0x0'));var moment=require(_0x9edd('0x1'));var BPromise=require(_0x9edd('0x2'));var rs=require(_0x9edd('0x3'));var fs=require('fs');var Redis=require(_0x9edd('0x4'));var db=require(_0x9edd('0x5'))['db'];var utils=require(_0x9edd('0x6'));var logger=require(_0x9edd('0x7'))('rpc');var config=require(_0x9edd('0x8'));var jayson=require(_0x9edd('0x9'));var client=jayson[_0x9edd('0xa')][_0x9edd('0xb')]({'port':0x232a});config['redis']=_[_0x9edd('0xc')](config['redis'],{'host':_0x9edd('0xd'),'port':0x18eb});var socket=require(_0x9edd('0xe'))(new Redis(config[_0x9edd('0xf')]));require(_0x9edd('0x10'))['register'](socket);function respondWithRpcPromise(_0x494a24,_0x5d2f90,_0x2076fc){return new BPromise(function(_0x138767,_0x523026){return client[_0x9edd('0x11')](_0x494a24,_0x2076fc)[_0x9edd('0x12')](function(_0x5b6c00){logger[_0x9edd('0x13')](_0x9edd('0x14'),_0x5d2f90,_0x9edd('0x15'));logger[_0x9edd('0x16')](_0x9edd('0x17'),_0x5d2f90,_0x9edd('0x15'),JSON[_0x9edd('0x18')](_0x5b6c00));if(_0x5b6c00[_0x9edd('0x19')]){if(_0x5b6c00['error'][_0x9edd('0x1a')]===0x1f4){logger[_0x9edd('0x19')](_0x9edd('0x14'),_0x5d2f90,_0x5b6c00[_0x9edd('0x19')][_0x9edd('0x1b')]);return _0x523026(_0x5b6c00[_0x9edd('0x19')][_0x9edd('0x1b')]);}logger[_0x9edd('0x19')]('FaxMessage,\x20%s,\x20%s',_0x5d2f90,_0x5b6c00[_0x9edd('0x19')][_0x9edd('0x1b')]);return _0x138767(_0x5b6c00[_0x9edd('0x19')]['message']);}else{logger[_0x9edd('0x13')](_0x9edd('0x14'),_0x5d2f90,_0x9edd('0x15'));_0x138767(_0x5b6c00['result'][_0x9edd('0x1b')]);}})['catch'](function(_0x2cdcef){logger[_0x9edd('0x19')]('FaxMessage,\x20%s,\x20%s',_0x5d2f90,_0x2cdcef);_0x523026(_0x2cdcef);});});}exports['CreateFaxMessage']=function(_0x45c3ab){var _0x50338f=this;return new Promise(function(_0x27a95a,_0x54a03f){return db['FaxMessage'][_0x9edd('0x1c')](_0x45c3ab[_0x9edd('0x1d')],{'raw':_0x45c3ab['options']?_0x45c3ab['options'][_0x9edd('0x1e')]===undefined?!![]:![]:!![]})[_0x9edd('0x12')](function(_0x477878){logger['info'](_0x9edd('0x1f'),_0x45c3ab);logger[_0x9edd('0x16')](_0x9edd('0x1f'),_0x45c3ab,JSON[_0x9edd('0x18')](_0x477878));_0x27a95a(_0x477878);})[_0x9edd('0x20')](function(_0x4c75d2){logger[_0x9edd('0x19')](_0x9edd('0x1f'),_0x4c75d2[_0x9edd('0x1b')],_0x45c3ab);_0x54a03f(_0x50338f[_0x9edd('0x19')](0x1f4,_0x4c75d2[_0x9edd('0x1b')]));});});};exports['UpdateFaxMessage']=function(_0x4b3d1b){var _0x3276ee=this;return new Promise(function(_0xfeca7b,_0x8d67aa){return db[_0x9edd('0x21')][_0x9edd('0x22')](_0x4b3d1b['body'],{'raw':_0x4b3d1b['options']?_0x4b3d1b[_0x9edd('0x23')][_0x9edd('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b3d1b[_0x9edd('0x23')]?_0x4b3d1b['options'][_0x9edd('0x24')]||null:null,'attributes':_0x4b3d1b[_0x9edd('0x23')]?_0x4b3d1b[_0x9edd('0x23')][_0x9edd('0x25')]||null:null,'limit':_0x4b3d1b['options']?_0x4b3d1b[_0x9edd('0x23')][_0x9edd('0x26')]||null:null})[_0x9edd('0x12')](function(_0x12c1bc){logger[_0x9edd('0x13')](_0x9edd('0x27'),_0x4b3d1b);logger[_0x9edd('0x16')](_0x9edd('0x27'),_0x4b3d1b,JSON[_0x9edd('0x18')](_0x12c1bc));_0xfeca7b(_0x12c1bc);})[_0x9edd('0x20')](function(_0x4fd03f){logger[_0x9edd('0x19')](_0x9edd('0x27'),_0x4fd03f[_0x9edd('0x1b')],_0x4b3d1b);_0x8d67aa(_0x3276ee[_0x9edd('0x19')](0x1f4,_0x4fd03f['message']));});});};
\ No newline at end of file
+var _0x008c=['randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','register','request','info','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','error','message','catch','options','raw','then','CreateFaxMessage','attributes','limit','UpdateFaxMessage','stringify','lodash','util','moment','bluebird'];(function(_0x16d7af,_0x485d45){var _0x4697cf=function(_0x173039){while(--_0x173039){_0x16d7af['push'](_0x16d7af['shift']());}};_0x4697cf(++_0x485d45);}(_0x008c,0x188));var _0xc008=function(_0x44c79f,_0x21f727){_0x44c79f=_0x44c79f-0x0;var _0x4089ef=_0x008c[_0x44c79f];return _0x4089ef;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var moment=require(_0xc008('0x2'));var BPromise=require(_0xc008('0x3'));var rs=require(_0xc008('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc008('0x5'))['db'];var utils=require(_0xc008('0x6'));var logger=require(_0xc008('0x7'))(_0xc008('0x8'));var config=require(_0xc008('0x9'));var jayson=require(_0xc008('0xa'));var client=jayson[_0xc008('0xb')][_0xc008('0xc')]({'port':0x232a});config[_0xc008('0xd')]=_['defaults'](config[_0xc008('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0xc008('0xe'))(new Redis(config['redis']));require('./faxMessage.socket')[_0xc008('0xf')](socket);function respondWithRpcPromise(_0x7231b4,_0x57c46d,_0x51ba7d){return new BPromise(function(_0x543eb8,_0x1eacfa){return client[_0xc008('0x10')](_0x7231b4,_0x51ba7d)['then'](function(_0xae2dab){logger[_0xc008('0x11')](_0xc008('0x12'),_0x57c46d,_0xc008('0x13'));logger[_0xc008('0x14')](_0xc008('0x15'),_0x57c46d,_0xc008('0x13'),JSON['stringify'](_0xae2dab));if(_0xae2dab['error']){if(_0xae2dab[_0xc008('0x16')]['code']===0x1f4){logger[_0xc008('0x16')](_0xc008('0x12'),_0x57c46d,_0xae2dab[_0xc008('0x16')][_0xc008('0x17')]);return _0x1eacfa(_0xae2dab[_0xc008('0x16')]['message']);}logger['error']('FaxMessage,\x20%s,\x20%s',_0x57c46d,_0xae2dab[_0xc008('0x16')][_0xc008('0x17')]);return _0x543eb8(_0xae2dab[_0xc008('0x16')][_0xc008('0x17')]);}else{logger['info']('FaxMessage,\x20%s,\x20%s',_0x57c46d,'request\x20sent');_0x543eb8(_0xae2dab['result'][_0xc008('0x17')]);}})[_0xc008('0x18')](function(_0x501137){logger[_0xc008('0x16')]('FaxMessage,\x20%s,\x20%s',_0x57c46d,_0x501137);_0x1eacfa(_0x501137);});});}exports['CreateFaxMessage']=function(_0x543e5d){var _0x50261c=this;return new Promise(function(_0x5754a0,_0x4b9726){return db['FaxMessage']['create'](_0x543e5d['body'],{'raw':_0x543e5d['options']?_0x543e5d[_0xc008('0x19')][_0xc008('0x1a')]===undefined?!![]:![]:!![]})[_0xc008('0x1b')](function(_0x415af3){logger[_0xc008('0x11')](_0xc008('0x1c'),_0x543e5d);logger['debug'](_0xc008('0x1c'),_0x543e5d,JSON['stringify'](_0x415af3));_0x5754a0(_0x415af3);})['catch'](function(_0x218599){logger[_0xc008('0x16')](_0xc008('0x1c'),_0x218599[_0xc008('0x17')],_0x543e5d);_0x4b9726(_0x50261c['error'](0x1f4,_0x218599['message']));});});};exports['UpdateFaxMessage']=function(_0x3f7b07){var _0x15dade=this;return new Promise(function(_0x92c582,_0x2e31c2){return db['FaxMessage']['update'](_0x3f7b07['body'],{'raw':_0x3f7b07['options']?_0x3f7b07['options'][_0xc008('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3f7b07[_0xc008('0x19')]?_0x3f7b07[_0xc008('0x19')]['where']||null:null,'attributes':_0x3f7b07[_0xc008('0x19')]?_0x3f7b07[_0xc008('0x19')][_0xc008('0x1d')]||null:null,'limit':_0x3f7b07[_0xc008('0x19')]?_0x3f7b07['options'][_0xc008('0x1e')]||null:null})[_0xc008('0x1b')](function(_0x53ed35){logger['info']('UpdateFaxMessage',_0x3f7b07);logger[_0xc008('0x14')](_0xc008('0x1f'),_0x3f7b07,JSON[_0xc008('0x20')](_0x53ed35));_0x92c582(_0x53ed35);})[_0xc008('0x18')](function(_0x1de04b){logger[_0xc008('0x16')](_0xc008('0x1f'),_0x1de04b[_0xc008('0x17')],_0x3f7b07);_0x2e31c2(_0x15dade[_0xc008('0x16')](0x1f4,_0x1de04b[_0xc008('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56bb=['save','remove','update','register','length','faxMessage:'];(function(_0x389f28,_0x544f6d){var _0x4dda5c=function(_0x522771){while(--_0x522771){_0x389f28['push'](_0x389f28['shift']());}};_0x4dda5c(++_0x544f6d);}(_0x56bb,0x180));var _0xb56b=function(_0x45f5e7,_0x45d85d){_0x45f5e7=_0x45f5e7-0x0;var _0xaf6270=_0x56bb[_0x45f5e7];return _0xaf6270;};'use strict';var FaxMessageEvents=require('./faxMessage.events');var events=[_0xb56b('0x0'),_0xb56b('0x1'),_0xb56b('0x2')];function createListener(_0x538626,_0x2d3762){return function(_0x585ed5){_0x2d3762['emit'](_0x538626,_0x585ed5);};}function removeListener(_0x3328a6,_0xd14d20){return function(){FaxMessageEvents['removeListener'](_0x3328a6,_0xd14d20);};}exports[_0xb56b('0x3')]=function(_0x1f5fef){for(var _0x36b536=0x0,_0x234828=events[_0xb56b('0x4')];_0x36b536<_0x234828;_0x36b536++){var _0x574e54=events[_0x36b536];var _0x2921a7=createListener(_0xb56b('0x5')+_0x574e54,_0x1f5fef);FaxMessageEvents['on'](_0x574e54,_0x2921a7);}};
\ No newline at end of file
+var _0x7a67=['save','remove','update','emit','removeListener','register','length','faxMessage:','./faxMessage.events'];(function(_0x1149d4,_0x142918){var _0x41db59=function(_0x2394ed){while(--_0x2394ed){_0x1149d4['push'](_0x1149d4['shift']());}};_0x41db59(++_0x142918);}(_0x7a67,0x86));var _0x77a6=function(_0x2809eb,_0x4fe985){_0x2809eb=_0x2809eb-0x0;var _0x227578=_0x7a67[_0x2809eb];return _0x227578;};'use strict';var FaxMessageEvents=require(_0x77a6('0x0'));var events=[_0x77a6('0x1'),_0x77a6('0x2'),_0x77a6('0x3')];function createListener(_0x2c3791,_0x170718){return function(_0x4ab464){_0x170718[_0x77a6('0x4')](_0x2c3791,_0x4ab464);};}function removeListener(_0x26ad2d,_0x86d8b2){return function(){FaxMessageEvents[_0x77a6('0x5')](_0x26ad2d,_0x86d8b2);};}exports[_0x77a6('0x6')]=function(_0x450552){for(var _0x2d04ac=0x0,_0x1d9c6f=events[_0x77a6('0x7')];_0x2d04ac<_0x1d9c6f;_0x2d04ac++){var _0x13d8f1=events[_0x2d04ac];var _0x12a115=createListener(_0x77a6('0x8')+_0x13d8f1,_0x450552);FaxMessageEvents['on'](_0x13d8f1,_0x12a115);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa571=['download','post','tracked','fax','put','/:id/accept','accept','/:id/reject','reject','delete','multer','util','path','connect-timeout','Router','fs-extra','../../config/environment','get','isAuthenticated','index','/describe','/:id','/:id/download'];(function(_0x25c1a3,_0x48fb2b){var _0x3f7013=function(_0x2ff79d){while(--_0x2ff79d){_0x25c1a3['push'](_0x25c1a3['shift']());}};_0x3f7013(++_0x48fb2b);}(_0xa571,0x107));var _0x1a57=function(_0x37c556,_0x11edc6){_0x37c556=_0x37c556-0x0;var _0x4fc871=_0xa571[_0x37c556];return _0x4fc871;};'use strict';var multer=require(_0x1a57('0x0'));var util=require(_0x1a57('0x1'));var path=require(_0x1a57('0x2'));var timeout=require(_0x1a57('0x3'));var express=require('express');var router=express[_0x1a57('0x4')]();var fs_extra=require(_0x1a57('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x1a57('0x6'));var controller=require('./faxMessage.controller');router[_0x1a57('0x7')]('/',auth[_0x1a57('0x8')](),controller[_0x1a57('0x9')]);router[_0x1a57('0x7')](_0x1a57('0xa'),auth[_0x1a57('0x8')](),controller['describe']);router[_0x1a57('0x7')](_0x1a57('0xb'),auth[_0x1a57('0x8')](),controller['show']);router[_0x1a57('0x7')](_0x1a57('0xc'),auth[_0x1a57('0x8')](),controller[_0x1a57('0xd')]);router[_0x1a57('0xe')]('/',auth[_0x1a57('0x8')](),interaction[_0x1a57('0xf')](_0x1a57('0x10'),'faxmessage:create'),controller['create']);router[_0x1a57('0x11')](_0x1a57('0xb'),auth[_0x1a57('0x8')](),controller['update']);router[_0x1a57('0x11')](_0x1a57('0x12'),auth['isAuthenticated'](),controller[_0x1a57('0x13')]);router['put'](_0x1a57('0x14'),auth[_0x1a57('0x8')](),controller[_0x1a57('0x15')]);router[_0x1a57('0x16')]('/:id',auth[_0x1a57('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x96cc=['/:id/download','post','tracked','faxmessage:create','create','put','update','/:id/accept','/:id/reject','reject','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxMessage.controller','get','isAuthenticated','/describe','describe','/:id'];(function(_0x59ee82,_0x2fff12){var _0x4bf76a=function(_0x20c061){while(--_0x20c061){_0x59ee82['push'](_0x59ee82['shift']());}};_0x4bf76a(++_0x2fff12);}(_0x96cc,0x16c));var _0xc96c=function(_0xe4aa53,_0x5ba7cf){_0xe4aa53=_0xe4aa53-0x0;var _0x406c91=_0x96cc[_0xe4aa53];return _0x406c91;};'use strict';var multer=require(_0xc96c('0x0'));var util=require('util');var path=require(_0xc96c('0x1'));var timeout=require('connect-timeout');var express=require(_0xc96c('0x2'));var router=express[_0xc96c('0x3')]();var fs_extra=require(_0xc96c('0x4'));var auth=require(_0xc96c('0x5'));var interaction=require(_0xc96c('0x6'));var config=require(_0xc96c('0x7'));var controller=require(_0xc96c('0x8'));router[_0xc96c('0x9')]('/',auth[_0xc96c('0xa')](),controller['index']);router[_0xc96c('0x9')](_0xc96c('0xb'),auth[_0xc96c('0xa')](),controller[_0xc96c('0xc')]);router[_0xc96c('0x9')](_0xc96c('0xd'),auth[_0xc96c('0xa')](),controller['show']);router[_0xc96c('0x9')](_0xc96c('0xe'),auth[_0xc96c('0xa')](),controller['download']);router[_0xc96c('0xf')]('/',auth['isAuthenticated'](),interaction[_0xc96c('0x10')]('fax',_0xc96c('0x11')),controller[_0xc96c('0x12')]);router[_0xc96c('0x13')](_0xc96c('0xd'),auth['isAuthenticated'](),controller[_0xc96c('0x14')]);router[_0xc96c('0x13')](_0xc96c('0x15'),auth[_0xc96c('0xa')](),controller['accept']);router[_0xc96c('0x13')](_0xc96c('0x16'),auth[_0xc96c('0xa')](),controller[_0xc96c('0x17')]);router[_0xc96c('0x18')](_0xc96c('0xd'),auth[_0xc96c('0xa')](),controller[_0xc96c('0x19')]);module[_0xc96c('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4405=['roundrobin','INTEGER','sequelize','exports','STRING','name'];(function(_0x56aa53,_0x40a526){var _0x3e4a5c=function(_0x1ce3c2){while(--_0x1ce3c2){_0x56aa53['push'](_0x56aa53['shift']());}};_0x3e4a5c(++_0x40a526);}(_0x4405,0xce));var _0x5440=function(_0x15c614,_0x30cfd6){_0x15c614=_0x15c614-0x0;var _0x1155ca=_0x4405[_0x15c614];return _0x1155ca;};'use strict';var Sequelize=require(_0x5440('0x0'));module[_0x5440('0x1')]={'name':{'type':Sequelize[_0x5440('0x2')],'unique':_0x5440('0x3'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x5440('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM']('rrmemory','beepall',_0x5440('0x4')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x5440('0x5')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xd916=['rrmemory','INTEGER','sequelize','exports','STRING','name','ENUM'];(function(_0x2525f1,_0x47034f){var _0x13c1b5=function(_0x2beb2e){while(--_0x2beb2e){_0x2525f1['push'](_0x2525f1['shift']());}};_0x13c1b5(++_0x47034f);}(_0xd916,0x18a));var _0x6d91=function(_0x24e943,_0x4c428f){_0x24e943=_0x24e943-0x0;var _0x25027b=_0xd916[_0x24e943];return _0x25027b;};'use strict';var Sequelize=require(_0x6d91('0x0'));module[_0x6d91('0x1')]={'name':{'type':Sequelize[_0x6d91('0x2')],'unique':_0x6d91('0x3'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x6d91('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x6d91('0x4')](_0x6d91('0x5'),'beepall','roundrobin'),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x6d91('0x6')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3593=['merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserFaxQueue','FaxQueueId','User','findAndCountAll','UserId','agent','faxPause','updatedAt','createdAt','format','SIP','Team','getTeams','ids','Agents','online','voicePause','interface','flatMap','transaction','addTeams','each','emit','userFaxQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_fax_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','FaxQueueId\x20=\x20?','push','toString','sequelize','QueryTypes','SELECT','every','TeamId','includes','union','compact','value','removeAgents','forEach','userFaxQueue:remove','addAgents','omit','spread','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','socket.io-emitter','./faxQueue.socket','register','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','FaxQueues','UserProfileResource','error','name','index','FaxQueue','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter'];(function(_0x4abc5d,_0x39ec35){var _0x9fc7b0=function(_0x42d5c3){while(--_0x42d5c3){_0x4abc5d['push'](_0x4abc5d['shift']());}};_0x9fc7b0(++_0x39ec35);}(_0x3593,0xe0));var _0x3359=function(_0x5d8980,_0x32b503){_0x5d8980=_0x5d8980-0x0;var _0xc9fdd8=_0x3593[_0x5d8980];return _0xc9fdd8;};'use strict';var emlformat=require(_0x3359('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3359('0x1'));var jsonpatch=require(_0x3359('0x2'));var rp=require(_0x3359('0x3'));var moment=require(_0x3359('0x4'));var BPromise=require(_0x3359('0x5'));var Mustache=require(_0x3359('0x6'));var util=require(_0x3359('0x7'));var path=require(_0x3359('0x8'));var sox=require('sox');var csv=require(_0x3359('0x9'));var ejs=require(_0x3359('0xa'));var fs=require('fs');var fs_extra=require(_0x3359('0xb'));var _=require(_0x3359('0xc'));var squel=require(_0x3359('0xd'));var crypto=require(_0x3359('0xe'));var jsforce=require(_0x3359('0xf'));var deskjs=require(_0x3359('0x10'));var toCsv=require(_0x3359('0x9'));var querystring=require(_0x3359('0x11'));var Papa=require(_0x3359('0x12'));var Redis=require(_0x3359('0x13'));var authService=require(_0x3359('0x14'));var qs=require(_0x3359('0x15'));var as=require(_0x3359('0x16'));var hardwareService=require(_0x3359('0x17'));var logger=require(_0x3359('0x18'))(_0x3359('0x19'));var utils=require(_0x3359('0x1a'));var config=require('../../config/environment');var licenseUtil=require(_0x3359('0x1b'));var db=require('../../mysqldb')['db'];config[_0x3359('0x1c')]=_[_0x3359('0x1d')](config[_0x3359('0x1c')],{'host':'localhost','port':0x18eb});var socket=require(_0x3359('0x1e'))(new Redis(config[_0x3359('0x1c')]));require(_0x3359('0x1f'))[_0x3359('0x20')](socket);function respondWithStatusCode(_0x54fd47,_0x176cff){_0x176cff=_0x176cff||0xcc;return function(_0x488cad){if(_0x488cad){return _0x54fd47[_0x3359('0x21')](_0x176cff);}return _0x54fd47[_0x3359('0x22')](_0x176cff)[_0x3359('0x23')]();};}function respondWithResult(_0x59863e,_0x53f9df){_0x53f9df=_0x53f9df||0xc8;return function(_0x46c8cb){if(_0x46c8cb){return _0x59863e[_0x3359('0x22')](_0x53f9df)['json'](_0x46c8cb);}};}function respondWithFilteredResult(_0x1f05cc,_0x520dd8){return function(_0x264b20){if(_0x264b20){var _0x362863=typeof _0x520dd8['offset']===_0x3359('0x24')&&typeof _0x520dd8['limit']===_0x3359('0x24');var _0x5aa99b=_0x264b20[_0x3359('0x25')];var _0x288d1=_0x362863?0x0:_0x520dd8[_0x3359('0x26')];var _0x3c9d6f=_0x362863?_0x264b20[_0x3359('0x25')]:_0x520dd8[_0x3359('0x26')]+_0x520dd8[_0x3359('0x27')];var _0x31a408;if(_0x3c9d6f>=_0x5aa99b){_0x3c9d6f=_0x5aa99b;_0x31a408=0xc8;}else{_0x31a408=0xce;}_0x1f05cc[_0x3359('0x22')](_0x31a408);return _0x1f05cc[_0x3359('0x28')](_0x3359('0x29'),_0x288d1+'-'+_0x3c9d6f+'/'+_0x5aa99b)[_0x3359('0x2a')](_0x264b20);}return null;};}function patchUpdates(_0x326950){return function(_0x3adf97){try{jsonpatch[_0x3359('0x2b')](_0x3adf97,_0x326950,!![]);}catch(_0x38e342){return BPromise[_0x3359('0x2c')](_0x38e342);}return _0x3adf97[_0x3359('0x2d')]();};}function saveUpdates(_0x33bcbb,_0x114b5f){return function(_0x30bbce){if(_0x30bbce){return _0x30bbce[_0x3359('0x2e')](_0x33bcbb)[_0x3359('0x2f')](function(_0xd87b69){return _0xd87b69;});}return null;};}function removeEntity(_0x42fa2a,_0x487631){return function(_0x337c3c){if(_0x337c3c){return _0x337c3c[_0x3359('0x30')]()[_0x3359('0x2f')](function(){var _0x1a7239=_0x337c3c['get']({'plain':!![]});var _0x4af784=_0x3359('0x31');return db[_0x3359('0x32')][_0x3359('0x30')]({'where':{'type':_0x4af784,'resourceId':_0x1a7239['id']}})[_0x3359('0x2f')](function(){return _0x337c3c;});})['then'](function(){_0x42fa2a[_0x3359('0x22')](0xcc)[_0x3359('0x23')]();});}};}function handleEntityNotFound(_0x40ea8d,_0x1adb4f){return function(_0x2a241d){if(!_0x2a241d){_0x40ea8d[_0x3359('0x21')](0x194);}return _0x2a241d;};}function handleError(_0x4aee5c,_0x45217b){_0x45217b=_0x45217b||0x1f4;return function(_0x3025ba){logger[_0x3359('0x33')](_0x3025ba['stack']);if(_0x3025ba[_0x3359('0x34')]){delete _0x3025ba['name'];}_0x4aee5c[_0x3359('0x22')](_0x45217b)['send'](_0x3025ba);};}exports[_0x3359('0x35')]=function(_0x14234c,_0x4891e0){var _0xe3367b={},_0x3e95f3={},_0x3c1021={'count':0x0,'rows':[]};var _0x2b2024=_['map'](db[_0x3359('0x36')][_0x3359('0x37')],function(_0x240e6d){return{'name':_0x240e6d[_0x3359('0x38')],'type':_0x240e6d[_0x3359('0x39')][_0x3359('0x3a')]};});_0x3e95f3[_0x3359('0x3b')]=_[_0x3359('0x3c')](_0x2b2024,_0x3359('0x34'));_0x3e95f3['query']=_[_0x3359('0x3d')](_0x14234c[_0x3359('0x3e')]);_0x3e95f3[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x3e95f3['model'],_0x3e95f3[_0x3359('0x3e')]);_0xe3367b[_0x3359('0x41')]=_[_0x3359('0x40')](_0x3e95f3[_0x3359('0x3b')],qs[_0x3359('0x42')](_0x14234c[_0x3359('0x3e')]['fields']));_0xe3367b['attributes']=_0xe3367b[_0x3359('0x41')]['length']?_0xe3367b[_0x3359('0x41')]:_0x3e95f3[_0x3359('0x3b')];if(!_0x14234c[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0xe3367b['limit']=qs[_0x3359('0x27')](_0x14234c[_0x3359('0x3e')][_0x3359('0x27')]);_0xe3367b[_0x3359('0x26')]=qs[_0x3359('0x26')](_0x14234c[_0x3359('0x3e')][_0x3359('0x26')]);}_0xe3367b[_0x3359('0x45')]=qs[_0x3359('0x46')](_0x14234c[_0x3359('0x3e')]['sort']);_0xe3367b[_0x3359('0x47')]=qs[_0x3359('0x3f')](_[_0x3359('0x48')](_0x14234c[_0x3359('0x3e')],_0x3e95f3[_0x3359('0x3f')]),_0x2b2024);if(_0x14234c[_0x3359('0x3e')][_0x3359('0x49')]){_0xe3367b[_0x3359('0x47')]=_[_0x3359('0x4a')](_0xe3367b[_0x3359('0x47')],{'$or':_[_0x3359('0x3c')](_0x2b2024,function(_0x7f9a82){if(_0x7f9a82[_0x3359('0x39')]!==_0x3359('0x4b')){var _0x53df2f={};_0x53df2f[_0x7f9a82[_0x3359('0x34')]]={'$like':'%'+_0x14234c[_0x3359('0x3e')][_0x3359('0x49')]+'%'};return _0x53df2f;}})});}_0xe3367b=_[_0x3359('0x4a')]({},_0xe3367b,_0x14234c[_0x3359('0x4c')]);var _0x596a8c={'where':_0xe3367b[_0x3359('0x47')]};return db[_0x3359('0x36')]['count'](_0x596a8c)['then'](function(_0x3316ea){_0x3c1021[_0x3359('0x25')]=_0x3316ea;if(_0x14234c['query'][_0x3359('0x4d')]){_0xe3367b[_0x3359('0x4e')]=[{'all':!![]}];}return db[_0x3359('0x36')][_0x3359('0x4f')](_0xe3367b);})[_0x3359('0x2f')](function(_0x3fc839){_0x3c1021[_0x3359('0x50')]=_0x3fc839;return _0x3c1021;})[_0x3359('0x2f')](respondWithFilteredResult(_0x4891e0,_0xe3367b))['catch'](handleError(_0x4891e0,null));};exports[_0x3359('0x51')]=function(_0x455bfc,_0x33f7ca){var _0x9f533={'raw':!![],'where':{'id':_0x455bfc[_0x3359('0x52')]['id']}},_0x45ba9e={};_0x45ba9e[_0x3359('0x3b')]=_[_0x3359('0x3d')](db[_0x3359('0x36')][_0x3359('0x37')]);_0x45ba9e['query']=_[_0x3359('0x3d')](_0x455bfc[_0x3359('0x3e')]);_0x45ba9e[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x45ba9e[_0x3359('0x3b')],_0x45ba9e[_0x3359('0x3e')]);_0x9f533[_0x3359('0x41')]=_[_0x3359('0x40')](_0x45ba9e['model'],qs['fields'](_0x455bfc[_0x3359('0x3e')][_0x3359('0x42')]));_0x9f533[_0x3359('0x41')]=_0x9f533[_0x3359('0x41')][_0x3359('0x53')]?_0x9f533['attributes']:_0x45ba9e[_0x3359('0x3b')];if(_0x455bfc[_0x3359('0x3e')][_0x3359('0x4d')]){_0x9f533[_0x3359('0x4e')]=[{'all':!![]}];}_0x9f533=_[_0x3359('0x4a')]({},_0x9f533,_0x455bfc[_0x3359('0x4c')]);return db[_0x3359('0x36')][_0x3359('0x54')](_0x9f533)[_0x3359('0x2f')](handleEntityNotFound(_0x33f7ca,null))[_0x3359('0x2f')](respondWithResult(_0x33f7ca,null))['catch'](handleError(_0x33f7ca,null));};exports[_0x3359('0x55')]=function(_0x545889,_0x5a3ff7){return db[_0x3359('0x36')][_0x3359('0x55')](_0x545889[_0x3359('0x56')],{})[_0x3359('0x2f')](function(_0x25724f){var _0x18eb11=_0x545889[_0x3359('0x57')]['get']({'plain':!![]});if(!_0x18eb11)throw new Error(_0x3359('0x58'));if(_0x18eb11['role']===_0x3359('0x57')){var _0x12d321=_0x25724f[_0x3359('0x59')]({'plain':!![]});var _0x4acbfe=_0x3359('0x31');return db[_0x3359('0x5a')][_0x3359('0x54')]({'where':{'name':_0x4acbfe,'userProfileId':_0x18eb11[_0x3359('0x5b')]},'raw':!![]})[_0x3359('0x2f')](function(_0x524821){if(_0x524821&&_0x524821[_0x3359('0x5c')]===0x0){return db['UserProfileResource']['create']({'name':_0x12d321['name'],'resourceId':_0x12d321['id'],'type':_0x524821[_0x3359('0x34')],'sectionId':_0x524821['id']},{})['then'](function(){return _0x25724f;});}else{return _0x25724f;}})[_0x3359('0x5d')](function(_0x3fc955){logger[_0x3359('0x33')](_0x3359('0x5e'),_0x3fc955);throw _0x3fc955;});}return _0x25724f;})[_0x3359('0x2f')](respondWithResult(_0x5a3ff7,0xc9))[_0x3359('0x5d')](handleError(_0x5a3ff7,null));};exports[_0x3359('0x2e')]=function(_0x751f1d,_0x4586f0){if(_0x751f1d[_0x3359('0x56')]['id']){delete _0x751f1d[_0x3359('0x56')]['id'];}return db['FaxQueue'][_0x3359('0x54')]({'where':{'id':_0x751f1d['params']['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x4586f0,null))[_0x3359('0x2f')](saveUpdates(_0x751f1d[_0x3359('0x56')],null))[_0x3359('0x2f')](respondWithResult(_0x4586f0,null))[_0x3359('0x5d')](handleError(_0x4586f0,null));};exports[_0x3359('0x30')]=function(_0x110409,_0x4dd286){return db['FaxQueue'][_0x3359('0x54')]({'where':{'id':_0x110409[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x4dd286,null))[_0x3359('0x2f')](removeEntity(_0x4dd286,null))[_0x3359('0x5d')](handleError(_0x4dd286,null));};exports[_0x3359('0x5f')]=function(_0x5a4b37,_0x107676){return db['FaxQueue'][_0x3359('0x5f')]()['then'](respondWithResult(_0x107676,null))[_0x3359('0x5d')](handleError(_0x107676,null));};exports[_0x3359('0x60')]=function(_0x543860,_0x296f58,_0x30db0a){var _0x351ff7={'raw':!![],'where':{}},_0x57c87e={},_0x3a7013;return db['FaxQueue'][_0x3359('0x61')]({'where':{'id':_0x543860['params']['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x296f58,null))['then'](function(_0x444150){if(_0x444150){_0x3a7013=_0x444150[_0x3359('0x59')]({'plain':!![]});_0x57c87e['model']=_[_0x3359('0x3d')](db[_0x3359('0x62')][_0x3359('0x37')]);_0x57c87e['query']=_[_0x3359('0x3d')](_0x543860[_0x3359('0x3e')]);_0x57c87e['filters']=_[_0x3359('0x40')](_0x57c87e[_0x3359('0x3b')],_0x57c87e[_0x3359('0x3e')]);_0x351ff7['attributes']=_[_0x3359('0x40')](_0x57c87e[_0x3359('0x3b')],qs['fields'](_0x543860[_0x3359('0x3e')][_0x3359('0x42')]));_0x351ff7[_0x3359('0x41')]=_0x351ff7['attributes'][_0x3359('0x53')]?_0x351ff7[_0x3359('0x41')]:_0x57c87e['model'];if(!_0x543860[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0x351ff7[_0x3359('0x27')]=qs['limit'](_0x543860[_0x3359('0x3e')][_0x3359('0x27')]);_0x351ff7[_0x3359('0x26')]=qs[_0x3359('0x26')](_0x543860['query'][_0x3359('0x26')]);}_0x351ff7[_0x3359('0x45')]=qs[_0x3359('0x46')](_0x543860[_0x3359('0x3e')][_0x3359('0x46')]);_0x351ff7['where']=qs['filters'](_[_0x3359('0x48')](_0x543860[_0x3359('0x3e')],_0x57c87e[_0x3359('0x3f')]));_0x351ff7[_0x3359('0x47')][_0x3359('0x63')]=_0x444150['id'];if(_0x543860[_0x3359('0x3e')][_0x3359('0x49')]){_0x351ff7[_0x3359('0x47')]=_[_0x3359('0x4a')](_0x351ff7[_0x3359('0x47')],{'$or':_[_0x3359('0x3c')](_0x351ff7[_0x3359('0x41')],function(_0x198b2e){var _0x497d4d={};_0x497d4d[_0x198b2e]={'$like':'%'+_0x543860[_0x3359('0x3e')][_0x3359('0x49')]+'%'};return _0x497d4d;})});}_0x351ff7=_['merge']({},_0x351ff7,_0x543860[_0x3359('0x4c')]);return db['UserFaxQueue'][_0x3359('0x4f')](_0x351ff7);}})[_0x3359('0x2f')](function(_0x5b76e0){if(_0x5b76e0){return db[_0x3359('0x64')][_0x3359('0x65')]({'where':{'id':_[_0x3359('0x3c')](_0x5b76e0,_0x3359('0x66')),'role':_0x3359('0x67')},'attributes':['id',_0x3359('0x34'),_0x3359('0x68'),_0x3359('0x69'),_0x3359('0x6a')]});}})['then'](function(_0x4fd4b4){if(_0x4fd4b4){return{'count':_0x4fd4b4['count'],'rows':_[_0x3359('0x3c')](_0x4fd4b4[_0x3359('0x50')],function(_0x3b8d11){return{'membername':_0x3b8d11[_0x3359('0x34')],'UserId':_0x3b8d11['id'],'queue_name':_0x3a7013[_0x3359('0x34')],'FaxQueueId':_0x3a7013['id'],'interface':util[_0x3359('0x6b')]('%s/%s',_0x3359('0x6c'),_0x3b8d11['name']),'penalty':0x0,'paused':_0x3b8d11[_0x3359('0x68')],'createdAt':_0x3b8d11[_0x3359('0x6a')],'updatedAt':_0x3b8d11[_0x3359('0x69')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x3359('0x2f')](respondWithFilteredResult(_0x296f58,_0x351ff7))[_0x3359('0x5d')](handleError(_0x296f58,null));};exports['getTeams']=function(_0x165d45,_0x18c40a,_0x9d55d3){var _0x19b381={};var _0x402d4c={};var _0x2c2307;var _0x46a066;return db['FaxQueue']['findOne']({'where':{'id':_0x165d45[_0x3359('0x52')]['id']}})['then'](handleEntityNotFound(_0x18c40a,null))[_0x3359('0x2f')](function(_0x42d9f1){if(_0x42d9f1){_0x2c2307=_0x42d9f1;_0x402d4c['model']=_[_0x3359('0x3d')](db[_0x3359('0x6d')][_0x3359('0x37')]);_0x402d4c[_0x3359('0x3e')]=_[_0x3359('0x3d')](_0x165d45[_0x3359('0x3e')]);_0x402d4c[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x402d4c[_0x3359('0x3b')],_0x402d4c['query']);_0x19b381['attributes']=_[_0x3359('0x40')](_0x402d4c['model'],qs['fields'](_0x165d45[_0x3359('0x3e')][_0x3359('0x42')]));_0x19b381[_0x3359('0x41')]=_0x19b381['attributes']['length']?_0x19b381[_0x3359('0x41')]:_0x402d4c[_0x3359('0x3b')];_0x19b381[_0x3359('0x45')]=qs[_0x3359('0x46')](_0x165d45[_0x3359('0x3e')][_0x3359('0x46')]);_0x19b381['where']=qs[_0x3359('0x3f')](_[_0x3359('0x48')](_0x165d45[_0x3359('0x3e')],_0x402d4c[_0x3359('0x3f')]));if(_0x165d45['query'][_0x3359('0x49')]){_0x19b381[_0x3359('0x47')]=_[_0x3359('0x4a')](_0x19b381[_0x3359('0x47')],{'$or':_[_0x3359('0x3c')](_0x19b381[_0x3359('0x41')],function(_0x8135c){var _0x2e0cd9={};_0x2e0cd9[_0x8135c]={'$like':'%'+_0x165d45[_0x3359('0x3e')][_0x3359('0x49')]+'%'};return _0x2e0cd9;})});}_0x19b381=_[_0x3359('0x4a')]({},_0x19b381,_0x165d45[_0x3359('0x4c')]);return _0x2c2307[_0x3359('0x6e')](_0x19b381);}})[_0x3359('0x2f')](function(_0x4fa690){if(_0x4fa690){_0x46a066=_0x4fa690['length'];if(!_0x165d45[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0x19b381['limit']=qs[_0x3359('0x27')](_0x165d45[_0x3359('0x3e')][_0x3359('0x27')]);_0x19b381[_0x3359('0x26')]=qs['offset'](_0x165d45[_0x3359('0x3e')][_0x3359('0x26')]);}return _0x2c2307[_0x3359('0x6e')](_0x19b381);}})[_0x3359('0x2f')](function(_0x3fde1c){if(_0x3fde1c){return _0x3fde1c?{'count':_0x46a066,'rows':_0x3fde1c}:null;}})['then'](respondWithResult(_0x18c40a,null))[_0x3359('0x5d')](handleError(_0x18c40a,null));};exports['addTeams']=function(_0x5a0051,_0x3f0621,_0x1282d0){var _0xfb485a=_0x5a0051['body'][_0x3359('0x6f')];return db[_0x3359('0x6d')]['findAll']({'where':{'id':_0xfb485a},'attributes':['id'],'include':[{'model':db[_0x3359('0x64')],'as':_0x3359('0x70'),'attributes':['id',_0x3359('0x34'),_0x3359('0x71'),_0x3359('0x72'),_0x3359('0x73')],'raw':!![]}]})[_0x3359('0x2f')](function(_0x5819c7){if(_0x5819c7){var _0x26efbd=_[_0x3359('0x74')](_0x5819c7,function(_0x57744c){var _0x4a0431=_0x57744c['get']({'plain':!![]});return _0x4a0431[_0x3359('0x70')];});return db['FaxQueue']['find']({'where':{'id':_0x5a0051['params']['id']}})['then'](function(_0x144eeb){return db['sequelize'][_0x3359('0x75')](function(_0xab8f05){return _0x144eeb[_0x3359('0x76')](_0xfb485a,{'transaction':_0xab8f05})[_0x3359('0x2f')](function(){return BPromise[_0x3359('0x77')](_0x26efbd,function(_0x586f98){return db[_0x3359('0x62')]['findOrCreate']({'where':{'UserId':_0x586f98['id'],'FaxQueueId':_0x5a0051[_0x3359('0x52')]['id']},'transaction':_0xab8f05});});})[_0x3359('0x2f')](function(){_0x26efbd['forEach'](function(_0x535083){socket[_0x3359('0x78')](_0x3359('0x79'),{'UserId':_0x535083['id'],'FaxQueueId':_0x144eeb['id']});});});});});}})['then'](respondWithStatusCode(_0x3f0621,null))['catch'](handleError(_0x3f0621,null));};exports[_0x3359('0x7a')]=function(_0x1e1d37,_0x20f5b8,_0x2276a5){return db[_0x3359('0x6d')][_0x3359('0x4f')]({'where':{'id':_0x1e1d37[_0x3359('0x3e')][_0x3359('0x6f')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x3359('0x70'),'attributes':['id'],'raw':!![]}]})[_0x3359('0x2f')](handleEntityNotFound(_0x20f5b8,null))['then'](function(_0x21aaf7){var _0x3d2048=_['map'](_0x21aaf7,'id');var _0x7d592f=[];var _0x4156fa=[];var _0xe0ceb5=squel[_0x3359('0x7b')]();_0xe0ceb5[_0x3359('0x7c')](_0x3359('0x7d'))[_0x3359('0x7e')](_0x3359('0x7f'),'tq')['join'](_0x3359('0x80'),'ut',_0x3359('0x81'))['where'](_0x3359('0x82'),_0x1e1d37['params']['id']);for(var _0x23f5c5=0x0;_0x23f5c5<_0x21aaf7[_0x3359('0x53')];_0x23f5c5+=0x1){let _0x55023b=_0x21aaf7[_0x23f5c5];for(var _0x23c5ea=0x0;_0x23c5ea<_0x55023b['Agents'][_0x3359('0x53')];_0x23c5ea+=0x1){let _0x4f2efe=_0x55023b['Agents'][_0x23c5ea];var _0x5538a8=_0xe0ceb5['clone']();_0x5538a8[_0x3359('0x47')]('ut.UserId\x20=\x20?',_0x4f2efe['id']);_0x4156fa[_0x3359('0x83')](db['sequelize'][_0x3359('0x3e')](_0x5538a8[_0x3359('0x84')](),{'type':db[_0x3359('0x85')][_0x3359('0x86')][_0x3359('0x87')]})[_0x3359('0x2f')](function(_0x11bcc4){if(_0x11bcc4[_0x3359('0x53')]===0x1){return _0x4f2efe['id'];}else{var _0x9444c=_[_0x3359('0x88')](_[_0x3359('0x3c')](_0x11bcc4,_0x3359('0x89')),function(_0x26f42c){return _[_0x3359('0x8a')](_0x3d2048,_0x26f42c);});if(_0x9444c){return _0x4f2efe['id'];}}}));}}return BPromise['all'](_0x4156fa)[_0x3359('0x2f')](function(_0x3d90e0){_0x7d592f=_(_0x7d592f)[_0x3359('0x8b')](_0x3d90e0)[_0x3359('0x8c')]()[_0x3359('0x8d')]();return db[_0x3359('0x36')][_0x3359('0x54')]({'where':{'id':_0x1e1d37[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](function(_0x32f8f0){return db[_0x3359('0x85')][_0x3359('0x75')](function(_0x258c52){return _0x32f8f0['removeTeams'](_0x1e1d37[_0x3359('0x3e')][_0x3359('0x6f')],{'transaction':_0x258c52})[_0x3359('0x2f')](function(){if(!_['isEmpty'](_0x7d592f)){return _0x32f8f0[_0x3359('0x8e')](_0x7d592f,{'transaction':_0x258c52});}})['then'](function(){_0x7d592f[_0x3359('0x8f')](function(_0x4b042e){socket[_0x3359('0x78')](_0x3359('0x90'),{'UserId':_0x4b042e,'FaxQueueId':_0x32f8f0['id']});});});});});});})[_0x3359('0x2f')](respondWithStatusCode(_0x20f5b8,null))[_0x3359('0x5d')](handleError(_0x20f5b8,null));};exports[_0x3359('0x91')]=function(_0x503bcf,_0x1cd3b8,_0x3dcb99){return db['FaxQueue'][_0x3359('0x54')]({'where':{'id':_0x503bcf[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x1cd3b8,null))[_0x3359('0x2f')](function(_0x5c49b0){if(_0x5c49b0){return _0x5c49b0[_0x3359('0x91')](_0x503bcf['body'][_0x3359('0x6f')],_[_0x3359('0x92')](_0x503bcf[_0x3359('0x56')],['ids','id'])||{})[_0x3359('0x93')](function(_0x240fdb){for(var _0x435c15=0x0;_0x435c15<_0x503bcf[_0x3359('0x56')][_0x3359('0x6f')][_0x3359('0x53')];_0x435c15+=0x1){socket[_0x3359('0x78')](_0x3359('0x79'),{'UserId':Number(_0x503bcf['body']['ids'][_0x435c15]),'FaxQueueId':Number(_0x503bcf[_0x3359('0x52')]['id'])});}return _0x240fdb;});}})[_0x3359('0x2f')](respondWithResult(_0x1cd3b8,null))[_0x3359('0x5d')](handleError(_0x1cd3b8,null));};exports[_0x3359('0x8e')]=function(_0x2d85cd,_0x2facc9,_0x599fba){return db[_0x3359('0x36')][_0x3359('0x54')]({'where':{'id':_0x2d85cd[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x2facc9,null))[_0x3359('0x2f')](function(_0xef765f){if(_0xef765f){return _0xef765f['removeAgents'](_0x2d85cd['query'][_0x3359('0x6f')])[_0x3359('0x2f')](function(){if(_['isArray'](_0x2d85cd[_0x3359('0x3e')]['ids'])){for(var _0x4f3dd4=0x0;_0x4f3dd4<_0x2d85cd[_0x3359('0x3e')]['ids'][_0x3359('0x53')];_0x4f3dd4+=0x1){socket['emit'](_0x3359('0x90'),{'UserId':Number(_0x2d85cd[_0x3359('0x3e')][_0x3359('0x6f')][_0x4f3dd4]),'FaxQueueId':Number(_0x2d85cd['params']['id'])});}}else{socket[_0x3359('0x78')](_0x3359('0x90'),{'UserId':Number(_0x2d85cd[_0x3359('0x3e')][_0x3359('0x6f')]),'FaxQueueId':Number(_0x2d85cd[_0x3359('0x52')]['id'])});}});}})['then'](respondWithStatusCode(_0x2facc9,null))[_0x3359('0x5d')](handleError(_0x2facc9,null));};exports[_0x3359('0x94')]=function(_0x502115,_0x4980c9,_0x18e4fa){var _0x29aae4={};var _0x8638e={};var _0xf0321e;var _0x445df9;return db[_0x3359('0x36')][_0x3359('0x61')]({'where':{'id':_0x502115[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x4980c9,null))['then'](function(_0x5b0836){if(_0x5b0836){_0xf0321e=_0x5b0836;_0x8638e[_0x3359('0x3b')]=_[_0x3359('0x3d')](db[_0x3359('0x64')][_0x3359('0x37')]);_0x8638e[_0x3359('0x3e')]=_[_0x3359('0x3d')](_0x502115[_0x3359('0x3e')]);_0x8638e[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x8638e[_0x3359('0x3b')],_0x8638e[_0x3359('0x3e')]);_0x29aae4[_0x3359('0x41')]=_['intersection'](_0x8638e[_0x3359('0x3b')],qs[_0x3359('0x42')](_0x502115[_0x3359('0x3e')][_0x3359('0x42')]));_0x29aae4[_0x3359('0x41')]=_0x29aae4[_0x3359('0x41')][_0x3359('0x53')]?_0x29aae4[_0x3359('0x41')]:_0x8638e['model'];_0x29aae4['order']=qs[_0x3359('0x46')](_0x502115[_0x3359('0x3e')][_0x3359('0x46')]);_0x29aae4[_0x3359('0x47')]=qs['filters'](_[_0x3359('0x48')](_0x502115['query'],_0x8638e[_0x3359('0x3f')]));if(_0x502115[_0x3359('0x3e')][_0x3359('0x49')]){_0x29aae4[_0x3359('0x47')]=_[_0x3359('0x4a')](_0x29aae4[_0x3359('0x47')],{'$or':_['map'](_0x29aae4['attributes'],function(_0x287ebd){var _0x419a28={};_0x419a28[_0x287ebd]={'$like':'%'+_0x502115['query']['filter']+'%'};return _0x419a28;})});}_0x29aae4=_[_0x3359('0x4a')]({},_0x29aae4,_0x502115[_0x3359('0x4c')]);return _0xf0321e['getAgents'](_0x29aae4);}})[_0x3359('0x2f')](function(_0x35f964){if(_0x35f964){_0x445df9=_0x35f964[_0x3359('0x53')];if(!_0x502115[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0x29aae4[_0x3359('0x27')]=qs[_0x3359('0x27')](_0x502115[_0x3359('0x3e')][_0x3359('0x27')]);_0x29aae4[_0x3359('0x26')]=qs[_0x3359('0x26')](_0x502115[_0x3359('0x3e')][_0x3359('0x26')]);}return _0xf0321e['getAgents'](_0x29aae4);}})[_0x3359('0x2f')](function(_0x423744){if(_0x423744){return _0x423744?{'count':_0x445df9,'rows':_0x423744}:null;}})[_0x3359('0x2f')](respondWithResult(_0x4980c9,null))[_0x3359('0x5d')](handleError(_0x4980c9,null));};
\ No newline at end of file
+var _0x8f6e=['field','team_has_fax_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','FaxQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','includes','compact','value','isEmpty','forEach','emit','userFaxQueue:remove','addAgents','omit','spread','userFaxQueue:save','removeAgents','isArray','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./faxQueue.socket','sendStatus','status','end','json','offset','undefined','count','apply','reject','save','then','destroy','get','FaxQueues','error','stack','name','send','map','FaxQueue','rawAttributes','fieldName','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','pick','filter','where','merge','type','includeAll','findAll','rows','catch','show','params','include','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','describe','getMembers','findOne','UserFaxQueue','FaxQueueId','findAndCountAll','UserId','agent','updatedAt','createdAt','%s/%s','SIP','faxPause','getTeams','Team','sort','addTeams','ids','Agents','online','interface','flatMap','sequelize','transaction','each','findOrCreate','removeTeams','User','select'];(function(_0x38a7ac,_0x45514b){var _0x53061a=function(_0x1d2469){while(--_0x1d2469){_0x38a7ac['push'](_0x38a7ac['shift']());}};_0x53061a(++_0x45514b);}(_0x8f6e,0x1c1));var _0xe8f6=function(_0xbf99dd,_0x255ca3){_0xbf99dd=_0xbf99dd-0x0;var _0x3f173d=_0x8f6e[_0xbf99dd];return _0x3f173d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe8f6('0x0'));var zipdir=require(_0xe8f6('0x1'));var jsonpatch=require(_0xe8f6('0x2'));var rp=require(_0xe8f6('0x3'));var moment=require('moment');var BPromise=require(_0xe8f6('0x4'));var Mustache=require(_0xe8f6('0x5'));var util=require(_0xe8f6('0x6'));var path=require(_0xe8f6('0x7'));var sox=require(_0xe8f6('0x8'));var csv=require('to-csv');var ejs=require(_0xe8f6('0x9'));var fs=require('fs');var fs_extra=require(_0xe8f6('0xa'));var _=require('lodash');var squel=require(_0xe8f6('0xb'));var crypto=require(_0xe8f6('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe8f6('0xd'));var toCsv=require(_0xe8f6('0xe'));var querystring=require('querystring');var Papa=require(_0xe8f6('0xf'));var Redis=require(_0xe8f6('0x10'));var authService=require(_0xe8f6('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe8f6('0x12'));var logger=require(_0xe8f6('0x13'))('api');var utils=require(_0xe8f6('0x14'));var config=require(_0xe8f6('0x15'));var licenseUtil=require(_0xe8f6('0x16'));var db=require(_0xe8f6('0x17'))['db'];config['redis']=_[_0xe8f6('0x18')](config[_0xe8f6('0x19')],{'host':_0xe8f6('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe8f6('0x19')]));require(_0xe8f6('0x1b'))['register'](socket);function respondWithStatusCode(_0x120f56,_0x39d078){_0x39d078=_0x39d078||0xcc;return function(_0x38bcb2){if(_0x38bcb2){return _0x120f56[_0xe8f6('0x1c')](_0x39d078);}return _0x120f56[_0xe8f6('0x1d')](_0x39d078)[_0xe8f6('0x1e')]();};}function respondWithResult(_0x48343b,_0x51c142){_0x51c142=_0x51c142||0xc8;return function(_0x331386){if(_0x331386){return _0x48343b[_0xe8f6('0x1d')](_0x51c142)[_0xe8f6('0x1f')](_0x331386);}};}function respondWithFilteredResult(_0x58aa34,_0x44870e){return function(_0x492c99){if(_0x492c99){var _0x141ff2=typeof _0x44870e[_0xe8f6('0x20')]===_0xe8f6('0x21')&&typeof _0x44870e['limit']===_0xe8f6('0x21');var _0x16c380=_0x492c99[_0xe8f6('0x22')];var _0x7d005b=_0x141ff2?0x0:_0x44870e[_0xe8f6('0x20')];var _0x497238=_0x141ff2?_0x492c99[_0xe8f6('0x22')]:_0x44870e['offset']+_0x44870e['limit'];var _0x43ba98;if(_0x497238>=_0x16c380){_0x497238=_0x16c380;_0x43ba98=0xc8;}else{_0x43ba98=0xce;}_0x58aa34['status'](_0x43ba98);return _0x58aa34['set']('Content-Range',_0x7d005b+'-'+_0x497238+'/'+_0x16c380)[_0xe8f6('0x1f')](_0x492c99);}return null;};}function patchUpdates(_0x2bd37d){return function(_0x52e141){try{jsonpatch[_0xe8f6('0x23')](_0x52e141,_0x2bd37d,!![]);}catch(_0x24135b){return BPromise[_0xe8f6('0x24')](_0x24135b);}return _0x52e141[_0xe8f6('0x25')]();};}function saveUpdates(_0x9be28a,_0xec569d){return function(_0x2f4fc2){if(_0x2f4fc2){return _0x2f4fc2['update'](_0x9be28a)[_0xe8f6('0x26')](function(_0x476054){return _0x476054;});}return null;};}function removeEntity(_0x39d975,_0x19d276){return function(_0x1bf36a){if(_0x1bf36a){return _0x1bf36a[_0xe8f6('0x27')]()[_0xe8f6('0x26')](function(){var _0x44ba8c=_0x1bf36a[_0xe8f6('0x28')]({'plain':!![]});var _0x4979c9=_0xe8f6('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0x4979c9,'resourceId':_0x44ba8c['id']}})[_0xe8f6('0x26')](function(){return _0x1bf36a;});})['then'](function(){_0x39d975[_0xe8f6('0x1d')](0xcc)[_0xe8f6('0x1e')]();});}};}function handleEntityNotFound(_0x482d74,_0x15798e){return function(_0x53db08){if(!_0x53db08){_0x482d74['sendStatus'](0x194);}return _0x53db08;};}function handleError(_0xc1b8c2,_0x1fbe68){_0x1fbe68=_0x1fbe68||0x1f4;return function(_0x12779e){logger[_0xe8f6('0x2a')](_0x12779e[_0xe8f6('0x2b')]);if(_0x12779e[_0xe8f6('0x2c')]){delete _0x12779e['name'];}_0xc1b8c2[_0xe8f6('0x1d')](_0x1fbe68)[_0xe8f6('0x2d')](_0x12779e);};}exports['index']=function(_0x5e4b27,_0x1e4e69){var _0x3e9cf0={},_0x55d278={},_0x4b2f85={'count':0x0,'rows':[]};var _0x444e4c=_[_0xe8f6('0x2e')](db[_0xe8f6('0x2f')][_0xe8f6('0x30')],function(_0xf9db68){return{'name':_0xf9db68[_0xe8f6('0x31')],'type':_0xf9db68['type']['key']};});_0x55d278['model']=_[_0xe8f6('0x2e')](_0x444e4c,_0xe8f6('0x2c'));_0x55d278['query']=_[_0xe8f6('0x32')](_0x5e4b27[_0xe8f6('0x33')]);_0x55d278[_0xe8f6('0x34')]=_[_0xe8f6('0x35')](_0x55d278[_0xe8f6('0x36')],_0x55d278[_0xe8f6('0x33')]);_0x3e9cf0[_0xe8f6('0x37')]=_[_0xe8f6('0x35')](_0x55d278[_0xe8f6('0x36')],qs[_0xe8f6('0x38')](_0x5e4b27[_0xe8f6('0x33')][_0xe8f6('0x38')]));_0x3e9cf0[_0xe8f6('0x37')]=_0x3e9cf0[_0xe8f6('0x37')][_0xe8f6('0x39')]?_0x3e9cf0[_0xe8f6('0x37')]:_0x55d278[_0xe8f6('0x36')];if(!_0x5e4b27[_0xe8f6('0x33')][_0xe8f6('0x3a')](_0xe8f6('0x3b'))){_0x3e9cf0[_0xe8f6('0x3c')]=qs[_0xe8f6('0x3c')](_0x5e4b27[_0xe8f6('0x33')][_0xe8f6('0x3c')]);_0x3e9cf0[_0xe8f6('0x20')]=qs[_0xe8f6('0x20')](_0x5e4b27[_0xe8f6('0x33')][_0xe8f6('0x20')]);}_0x3e9cf0[_0xe8f6('0x3d')]=qs['sort'](_0x5e4b27[_0xe8f6('0x33')]['sort']);_0x3e9cf0['where']=qs[_0xe8f6('0x34')](_[_0xe8f6('0x3e')](_0x5e4b27['query'],_0x55d278[_0xe8f6('0x34')]),_0x444e4c);if(_0x5e4b27[_0xe8f6('0x33')][_0xe8f6('0x3f')]){_0x3e9cf0[_0xe8f6('0x40')]=_[_0xe8f6('0x41')](_0x3e9cf0[_0xe8f6('0x40')],{'$or':_[_0xe8f6('0x2e')](_0x444e4c,function(_0xb6d184){if(_0xb6d184[_0xe8f6('0x42')]!=='VIRTUAL'){var _0x2697a0={};_0x2697a0[_0xb6d184[_0xe8f6('0x2c')]]={'$like':'%'+_0x5e4b27[_0xe8f6('0x33')]['filter']+'%'};return _0x2697a0;}})});}_0x3e9cf0=_[_0xe8f6('0x41')]({},_0x3e9cf0,_0x5e4b27['options']);var _0x568d20={'where':_0x3e9cf0[_0xe8f6('0x40')]};return db[_0xe8f6('0x2f')][_0xe8f6('0x22')](_0x568d20)['then'](function(_0x22fd43){_0x4b2f85[_0xe8f6('0x22')]=_0x22fd43;if(_0x5e4b27[_0xe8f6('0x33')][_0xe8f6('0x43')]){_0x3e9cf0['include']=[{'all':!![]}];}return db[_0xe8f6('0x2f')][_0xe8f6('0x44')](_0x3e9cf0);})['then'](function(_0x535af0){_0x4b2f85[_0xe8f6('0x45')]=_0x535af0;return _0x4b2f85;})[_0xe8f6('0x26')](respondWithFilteredResult(_0x1e4e69,_0x3e9cf0))[_0xe8f6('0x46')](handleError(_0x1e4e69,null));};exports[_0xe8f6('0x47')]=function(_0x1755a7,_0x2ce566){var _0x1be90f={'raw':!![],'where':{'id':_0x1755a7[_0xe8f6('0x48')]['id']}},_0x2b07ab={};_0x2b07ab[_0xe8f6('0x36')]=_[_0xe8f6('0x32')](db[_0xe8f6('0x2f')][_0xe8f6('0x30')]);_0x2b07ab[_0xe8f6('0x33')]=_[_0xe8f6('0x32')](_0x1755a7[_0xe8f6('0x33')]);_0x2b07ab[_0xe8f6('0x34')]=_[_0xe8f6('0x35')](_0x2b07ab[_0xe8f6('0x36')],_0x2b07ab[_0xe8f6('0x33')]);_0x1be90f[_0xe8f6('0x37')]=_['intersection'](_0x2b07ab[_0xe8f6('0x36')],qs[_0xe8f6('0x38')](_0x1755a7[_0xe8f6('0x33')][_0xe8f6('0x38')]));_0x1be90f[_0xe8f6('0x37')]=_0x1be90f[_0xe8f6('0x37')]['length']?_0x1be90f[_0xe8f6('0x37')]:_0x2b07ab['model'];if(_0x1755a7[_0xe8f6('0x33')][_0xe8f6('0x43')]){_0x1be90f[_0xe8f6('0x49')]=[{'all':!![]}];}_0x1be90f=_[_0xe8f6('0x41')]({},_0x1be90f,_0x1755a7[_0xe8f6('0x4a')]);return db[_0xe8f6('0x2f')]['find'](_0x1be90f)[_0xe8f6('0x26')](handleEntityNotFound(_0x2ce566,null))[_0xe8f6('0x26')](respondWithResult(_0x2ce566,null))[_0xe8f6('0x46')](handleError(_0x2ce566,null));};exports[_0xe8f6('0x4b')]=function(_0x3917f6,_0x402a95){return db[_0xe8f6('0x2f')][_0xe8f6('0x4b')](_0x3917f6[_0xe8f6('0x4c')],{})[_0xe8f6('0x26')](function(_0x3c3f1f){var _0x111b92=_0x3917f6[_0xe8f6('0x4d')][_0xe8f6('0x28')]({'plain':!![]});if(!_0x111b92)throw new Error(_0xe8f6('0x4e'));if(_0x111b92[_0xe8f6('0x4f')]==='user'){var _0x1ce772=_0x3c3f1f['get']({'plain':!![]});var _0x62be7f=_0xe8f6('0x29');return db[_0xe8f6('0x50')]['find']({'where':{'name':_0x62be7f,'userProfileId':_0x111b92[_0xe8f6('0x51')]},'raw':!![]})[_0xe8f6('0x26')](function(_0x5643dd){if(_0x5643dd&&_0x5643dd[_0xe8f6('0x52')]===0x0){return db['UserProfileResource'][_0xe8f6('0x4b')]({'name':_0x1ce772[_0xe8f6('0x2c')],'resourceId':_0x1ce772['id'],'type':_0x5643dd[_0xe8f6('0x2c')],'sectionId':_0x5643dd['id']},{})['then'](function(){return _0x3c3f1f;});}else{return _0x3c3f1f;}})['catch'](function(_0x1a7954){logger[_0xe8f6('0x2a')](_0xe8f6('0x53'),_0x1a7954);throw _0x1a7954;});}return _0x3c3f1f;})[_0xe8f6('0x26')](respondWithResult(_0x402a95,0xc9))[_0xe8f6('0x46')](handleError(_0x402a95,null));};exports[_0xe8f6('0x54')]=function(_0x1ed8e2,_0x271cbc){if(_0x1ed8e2['body']['id']){delete _0x1ed8e2[_0xe8f6('0x4c')]['id'];}return db['FaxQueue'][_0xe8f6('0x55')]({'where':{'id':_0x1ed8e2['params']['id']}})[_0xe8f6('0x26')](handleEntityNotFound(_0x271cbc,null))[_0xe8f6('0x26')](saveUpdates(_0x1ed8e2['body'],null))[_0xe8f6('0x26')](respondWithResult(_0x271cbc,null))[_0xe8f6('0x46')](handleError(_0x271cbc,null));};exports[_0xe8f6('0x27')]=function(_0x37d8c1,_0x42324e){return db[_0xe8f6('0x2f')]['find']({'where':{'id':_0x37d8c1[_0xe8f6('0x48')]['id']}})[_0xe8f6('0x26')](handleEntityNotFound(_0x42324e,null))[_0xe8f6('0x26')](removeEntity(_0x42324e,null))[_0xe8f6('0x46')](handleError(_0x42324e,null));};exports[_0xe8f6('0x56')]=function(_0x14478a,_0x3b1d9c){return db['FaxQueue'][_0xe8f6('0x56')]()['then'](respondWithResult(_0x3b1d9c,null))[_0xe8f6('0x46')](handleError(_0x3b1d9c,null));};exports[_0xe8f6('0x57')]=function(_0x46dc1a,_0x2c0f81,_0x309354){var _0x23c155={'raw':!![],'where':{}},_0x86463d={},_0x4ef076;return db[_0xe8f6('0x2f')][_0xe8f6('0x58')]({'where':{'id':_0x46dc1a[_0xe8f6('0x48')]['id']}})[_0xe8f6('0x26')](handleEntityNotFound(_0x2c0f81,null))[_0xe8f6('0x26')](function(_0x24b218){if(_0x24b218){_0x4ef076=_0x24b218[_0xe8f6('0x28')]({'plain':!![]});_0x86463d[_0xe8f6('0x36')]=_['keys'](db[_0xe8f6('0x59')][_0xe8f6('0x30')]);_0x86463d['query']=_[_0xe8f6('0x32')](_0x46dc1a[_0xe8f6('0x33')]);_0x86463d[_0xe8f6('0x34')]=_['intersection'](_0x86463d[_0xe8f6('0x36')],_0x86463d[_0xe8f6('0x33')]);_0x23c155[_0xe8f6('0x37')]=_['intersection'](_0x86463d[_0xe8f6('0x36')],qs['fields'](_0x46dc1a[_0xe8f6('0x33')][_0xe8f6('0x38')]));_0x23c155[_0xe8f6('0x37')]=_0x23c155[_0xe8f6('0x37')][_0xe8f6('0x39')]?_0x23c155['attributes']:_0x86463d['model'];if(!_0x46dc1a[_0xe8f6('0x33')][_0xe8f6('0x3a')](_0xe8f6('0x3b'))){_0x23c155['limit']=qs[_0xe8f6('0x3c')](_0x46dc1a[_0xe8f6('0x33')][_0xe8f6('0x3c')]);_0x23c155[_0xe8f6('0x20')]=qs[_0xe8f6('0x20')](_0x46dc1a[_0xe8f6('0x33')][_0xe8f6('0x20')]);}_0x23c155[_0xe8f6('0x3d')]=qs['sort'](_0x46dc1a[_0xe8f6('0x33')]['sort']);_0x23c155[_0xe8f6('0x40')]=qs[_0xe8f6('0x34')](_[_0xe8f6('0x3e')](_0x46dc1a['query'],_0x86463d[_0xe8f6('0x34')]));_0x23c155['where'][_0xe8f6('0x5a')]=_0x24b218['id'];if(_0x46dc1a[_0xe8f6('0x33')]['filter']){_0x23c155[_0xe8f6('0x40')]=_['merge'](_0x23c155['where'],{'$or':_[_0xe8f6('0x2e')](_0x23c155[_0xe8f6('0x37')],function(_0x38b724){var _0x120046={};_0x120046[_0x38b724]={'$like':'%'+_0x46dc1a[_0xe8f6('0x33')][_0xe8f6('0x3f')]+'%'};return _0x120046;})});}_0x23c155=_[_0xe8f6('0x41')]({},_0x23c155,_0x46dc1a[_0xe8f6('0x4a')]);return db[_0xe8f6('0x59')][_0xe8f6('0x44')](_0x23c155);}})['then'](function(_0x3d7cec){if(_0x3d7cec){return db['User'][_0xe8f6('0x5b')]({'where':{'id':_[_0xe8f6('0x2e')](_0x3d7cec,_0xe8f6('0x5c')),'role':_0xe8f6('0x5d')},'attributes':['id',_0xe8f6('0x2c'),'faxPause',_0xe8f6('0x5e'),_0xe8f6('0x5f')]});}})[_0xe8f6('0x26')](function(_0x3a6131){if(_0x3a6131){return{'count':_0x3a6131['count'],'rows':_['map'](_0x3a6131[_0xe8f6('0x45')],function(_0x2cde0b){return{'membername':_0x2cde0b[_0xe8f6('0x2c')],'UserId':_0x2cde0b['id'],'queue_name':_0x4ef076['name'],'FaxQueueId':_0x4ef076['id'],'interface':util['format'](_0xe8f6('0x60'),_0xe8f6('0x61'),_0x2cde0b[_0xe8f6('0x2c')]),'penalty':0x0,'paused':_0x2cde0b[_0xe8f6('0x62')],'createdAt':_0x2cde0b['createdAt'],'updatedAt':_0x2cde0b['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xe8f6('0x26')](respondWithFilteredResult(_0x2c0f81,_0x23c155))['catch'](handleError(_0x2c0f81,null));};exports[_0xe8f6('0x63')]=function(_0x41d94e,_0x1b9f98,_0x1298ef){var _0x10c8e3={};var _0x100971={};var _0x311a2d;var _0x5ddf24;return db[_0xe8f6('0x2f')][_0xe8f6('0x58')]({'where':{'id':_0x41d94e[_0xe8f6('0x48')]['id']}})['then'](handleEntityNotFound(_0x1b9f98,null))['then'](function(_0x56a02e){if(_0x56a02e){_0x311a2d=_0x56a02e;_0x100971[_0xe8f6('0x36')]=_[_0xe8f6('0x32')](db[_0xe8f6('0x64')][_0xe8f6('0x30')]);_0x100971[_0xe8f6('0x33')]=_[_0xe8f6('0x32')](_0x41d94e['query']);_0x100971['filters']=_[_0xe8f6('0x35')](_0x100971[_0xe8f6('0x36')],_0x100971[_0xe8f6('0x33')]);_0x10c8e3[_0xe8f6('0x37')]=_[_0xe8f6('0x35')](_0x100971[_0xe8f6('0x36')],qs[_0xe8f6('0x38')](_0x41d94e[_0xe8f6('0x33')][_0xe8f6('0x38')]));_0x10c8e3['attributes']=_0x10c8e3[_0xe8f6('0x37')][_0xe8f6('0x39')]?_0x10c8e3['attributes']:_0x100971[_0xe8f6('0x36')];_0x10c8e3['order']=qs[_0xe8f6('0x65')](_0x41d94e[_0xe8f6('0x33')][_0xe8f6('0x65')]);_0x10c8e3[_0xe8f6('0x40')]=qs[_0xe8f6('0x34')](_[_0xe8f6('0x3e')](_0x41d94e[_0xe8f6('0x33')],_0x100971[_0xe8f6('0x34')]));if(_0x41d94e[_0xe8f6('0x33')][_0xe8f6('0x3f')]){_0x10c8e3[_0xe8f6('0x40')]=_['merge'](_0x10c8e3[_0xe8f6('0x40')],{'$or':_['map'](_0x10c8e3['attributes'],function(_0x315964){var _0x13c283={};_0x13c283[_0x315964]={'$like':'%'+_0x41d94e['query'][_0xe8f6('0x3f')]+'%'};return _0x13c283;})});}_0x10c8e3=_[_0xe8f6('0x41')]({},_0x10c8e3,_0x41d94e[_0xe8f6('0x4a')]);return _0x311a2d[_0xe8f6('0x63')](_0x10c8e3);}})[_0xe8f6('0x26')](function(_0x56fde9){if(_0x56fde9){_0x5ddf24=_0x56fde9['length'];if(!_0x41d94e['query'][_0xe8f6('0x3a')](_0xe8f6('0x3b'))){_0x10c8e3[_0xe8f6('0x3c')]=qs[_0xe8f6('0x3c')](_0x41d94e[_0xe8f6('0x33')][_0xe8f6('0x3c')]);_0x10c8e3['offset']=qs[_0xe8f6('0x20')](_0x41d94e[_0xe8f6('0x33')][_0xe8f6('0x20')]);}return _0x311a2d['getTeams'](_0x10c8e3);}})[_0xe8f6('0x26')](function(_0x68382a){if(_0x68382a){return _0x68382a?{'count':_0x5ddf24,'rows':_0x68382a}:null;}})[_0xe8f6('0x26')](respondWithResult(_0x1b9f98,null))[_0xe8f6('0x46')](handleError(_0x1b9f98,null));};exports[_0xe8f6('0x66')]=function(_0x1a6d0e,_0x30ff19,_0x550e7f){var _0x2a4597=_0x1a6d0e[_0xe8f6('0x4c')][_0xe8f6('0x67')];return db['Team'][_0xe8f6('0x44')]({'where':{'id':_0x2a4597},'attributes':['id'],'include':[{'model':db['User'],'as':_0xe8f6('0x68'),'attributes':['id',_0xe8f6('0x2c'),_0xe8f6('0x69'),'voicePause',_0xe8f6('0x6a')],'raw':!![]}]})[_0xe8f6('0x26')](function(_0x3e687f){if(_0x3e687f){var _0x38d48c=_[_0xe8f6('0x6b')](_0x3e687f,function(_0x21de25){var _0x26fec3=_0x21de25[_0xe8f6('0x28')]({'plain':!![]});return _0x26fec3[_0xe8f6('0x68')];});return db[_0xe8f6('0x2f')][_0xe8f6('0x55')]({'where':{'id':_0x1a6d0e[_0xe8f6('0x48')]['id']}})[_0xe8f6('0x26')](function(_0x2db424){return db[_0xe8f6('0x6c')][_0xe8f6('0x6d')](function(_0x27c5cf){return _0x2db424[_0xe8f6('0x66')](_0x2a4597,{'transaction':_0x27c5cf})[_0xe8f6('0x26')](function(){return BPromise[_0xe8f6('0x6e')](_0x38d48c,function(_0x2ec4dd){return db[_0xe8f6('0x59')][_0xe8f6('0x6f')]({'where':{'UserId':_0x2ec4dd['id'],'FaxQueueId':_0x1a6d0e[_0xe8f6('0x48')]['id']},'transaction':_0x27c5cf});});})[_0xe8f6('0x26')](function(){_0x38d48c['forEach'](function(_0x536a82){socket['emit']('userFaxQueue:save',{'UserId':_0x536a82['id'],'FaxQueueId':_0x2db424['id']});});});});});}})[_0xe8f6('0x26')](respondWithStatusCode(_0x30ff19,null))[_0xe8f6('0x46')](handleError(_0x30ff19,null));};exports[_0xe8f6('0x70')]=function(_0x8cf28a,_0x54e19a,_0x4dbaee){return db['Team'][_0xe8f6('0x44')]({'where':{'id':_0x8cf28a[_0xe8f6('0x33')][_0xe8f6('0x67')]},'attributes':['id'],'include':[{'model':db[_0xe8f6('0x71')],'as':_0xe8f6('0x68'),'attributes':['id'],'raw':!![]}]})[_0xe8f6('0x26')](handleEntityNotFound(_0x54e19a,null))[_0xe8f6('0x26')](function(_0x25688c){var _0x1c2ea8=_['map'](_0x25688c,'id');var _0x376f73=[];var _0x5b6960=[];var _0x1d6821=squel[_0xe8f6('0x72')]();_0x1d6821[_0xe8f6('0x73')]('tq.TeamId')['from'](_0xe8f6('0x74'),'tq')[_0xe8f6('0x75')](_0xe8f6('0x76'),'ut',_0xe8f6('0x77'))[_0xe8f6('0x40')](_0xe8f6('0x78'),_0x8cf28a[_0xe8f6('0x48')]['id']);for(var _0x1390d6=0x0;_0x1390d6<_0x25688c[_0xe8f6('0x39')];_0x1390d6+=0x1){let _0x37df83=_0x25688c[_0x1390d6];for(var _0x200794=0x0;_0x200794<_0x37df83[_0xe8f6('0x68')][_0xe8f6('0x39')];_0x200794+=0x1){let _0xe5091a=_0x37df83[_0xe8f6('0x68')][_0x200794];var _0x228611=_0x1d6821[_0xe8f6('0x79')]();_0x228611['where'](_0xe8f6('0x7a'),_0xe5091a['id']);_0x5b6960[_0xe8f6('0x7b')](db[_0xe8f6('0x6c')][_0xe8f6('0x33')](_0x228611[_0xe8f6('0x7c')](),{'type':db[_0xe8f6('0x6c')][_0xe8f6('0x7d')]['SELECT']})[_0xe8f6('0x26')](function(_0x225731){if(_0x225731['length']===0x1){return _0xe5091a['id'];}else{var _0x409c46=_[_0xe8f6('0x7e')](_[_0xe8f6('0x2e')](_0x225731,'TeamId'),function(_0x5091d4){return _[_0xe8f6('0x7f')](_0x1c2ea8,_0x5091d4);});if(_0x409c46){return _0xe5091a['id'];}}}));}}return BPromise['all'](_0x5b6960)[_0xe8f6('0x26')](function(_0x293dd6){_0x376f73=_(_0x376f73)['union'](_0x293dd6)[_0xe8f6('0x80')]()[_0xe8f6('0x81')]();return db[_0xe8f6('0x2f')][_0xe8f6('0x55')]({'where':{'id':_0x8cf28a['params']['id']}})['then'](function(_0x34ed41){return db[_0xe8f6('0x6c')][_0xe8f6('0x6d')](function(_0x82b262){return _0x34ed41[_0xe8f6('0x70')](_0x8cf28a[_0xe8f6('0x33')]['ids'],{'transaction':_0x82b262})[_0xe8f6('0x26')](function(){if(!_[_0xe8f6('0x82')](_0x376f73)){return _0x34ed41['removeAgents'](_0x376f73,{'transaction':_0x82b262});}})[_0xe8f6('0x26')](function(){_0x376f73[_0xe8f6('0x83')](function(_0x1a1563){socket[_0xe8f6('0x84')](_0xe8f6('0x85'),{'UserId':_0x1a1563,'FaxQueueId':_0x34ed41['id']});});});});});});})[_0xe8f6('0x26')](respondWithStatusCode(_0x54e19a,null))[_0xe8f6('0x46')](handleError(_0x54e19a,null));};exports[_0xe8f6('0x86')]=function(_0x321ecb,_0x358f1b,_0x4495c8){return db[_0xe8f6('0x2f')][_0xe8f6('0x55')]({'where':{'id':_0x321ecb[_0xe8f6('0x48')]['id']}})[_0xe8f6('0x26')](handleEntityNotFound(_0x358f1b,null))[_0xe8f6('0x26')](function(_0x12ec11){if(_0x12ec11){return _0x12ec11[_0xe8f6('0x86')](_0x321ecb[_0xe8f6('0x4c')][_0xe8f6('0x67')],_[_0xe8f6('0x87')](_0x321ecb['body'],['ids','id'])||{})[_0xe8f6('0x88')](function(_0xf7a2fa){for(var _0x25a561=0x0;_0x25a561<_0x321ecb[_0xe8f6('0x4c')][_0xe8f6('0x67')][_0xe8f6('0x39')];_0x25a561+=0x1){socket['emit'](_0xe8f6('0x89'),{'UserId':Number(_0x321ecb[_0xe8f6('0x4c')]['ids'][_0x25a561]),'FaxQueueId':Number(_0x321ecb[_0xe8f6('0x48')]['id'])});}return _0xf7a2fa;});}})[_0xe8f6('0x26')](respondWithResult(_0x358f1b,null))[_0xe8f6('0x46')](handleError(_0x358f1b,null));};exports[_0xe8f6('0x8a')]=function(_0x41890b,_0x435b90,_0x261601){return db[_0xe8f6('0x2f')][_0xe8f6('0x55')]({'where':{'id':_0x41890b[_0xe8f6('0x48')]['id']}})[_0xe8f6('0x26')](handleEntityNotFound(_0x435b90,null))[_0xe8f6('0x26')](function(_0x5dfe8f){if(_0x5dfe8f){return _0x5dfe8f[_0xe8f6('0x8a')](_0x41890b['query'][_0xe8f6('0x67')])['then'](function(){if(_[_0xe8f6('0x8b')](_0x41890b[_0xe8f6('0x33')][_0xe8f6('0x67')])){for(var _0x311162=0x0;_0x311162<_0x41890b['query']['ids']['length'];_0x311162+=0x1){socket[_0xe8f6('0x84')]('userFaxQueue:remove',{'UserId':Number(_0x41890b[_0xe8f6('0x33')][_0xe8f6('0x67')][_0x311162]),'FaxQueueId':Number(_0x41890b[_0xe8f6('0x48')]['id'])});}}else{socket['emit']('userFaxQueue:remove',{'UserId':Number(_0x41890b[_0xe8f6('0x33')]['ids']),'FaxQueueId':Number(_0x41890b[_0xe8f6('0x48')]['id'])});}});}})[_0xe8f6('0x26')](respondWithStatusCode(_0x435b90,null))[_0xe8f6('0x46')](handleError(_0x435b90,null));};exports[_0xe8f6('0x8c')]=function(_0x1ea5ce,_0xb5f08a,_0x3242e6){var _0x2fd4a5={};var _0x3261fc={};var _0x54993f;var _0x134624;return db[_0xe8f6('0x2f')]['findOne']({'where':{'id':_0x1ea5ce[_0xe8f6('0x48')]['id']}})[_0xe8f6('0x26')](handleEntityNotFound(_0xb5f08a,null))['then'](function(_0x3c76b3){if(_0x3c76b3){_0x54993f=_0x3c76b3;_0x3261fc[_0xe8f6('0x36')]=_[_0xe8f6('0x32')](db['User'][_0xe8f6('0x30')]);_0x3261fc[_0xe8f6('0x33')]=_[_0xe8f6('0x32')](_0x1ea5ce[_0xe8f6('0x33')]);_0x3261fc[_0xe8f6('0x34')]=_[_0xe8f6('0x35')](_0x3261fc[_0xe8f6('0x36')],_0x3261fc[_0xe8f6('0x33')]);_0x2fd4a5[_0xe8f6('0x37')]=_[_0xe8f6('0x35')](_0x3261fc[_0xe8f6('0x36')],qs[_0xe8f6('0x38')](_0x1ea5ce[_0xe8f6('0x33')]['fields']));_0x2fd4a5['attributes']=_0x2fd4a5['attributes'][_0xe8f6('0x39')]?_0x2fd4a5['attributes']:_0x3261fc[_0xe8f6('0x36')];_0x2fd4a5[_0xe8f6('0x3d')]=qs[_0xe8f6('0x65')](_0x1ea5ce[_0xe8f6('0x33')][_0xe8f6('0x65')]);_0x2fd4a5[_0xe8f6('0x40')]=qs['filters'](_[_0xe8f6('0x3e')](_0x1ea5ce['query'],_0x3261fc[_0xe8f6('0x34')]));if(_0x1ea5ce['query'][_0xe8f6('0x3f')]){_0x2fd4a5[_0xe8f6('0x40')]=_['merge'](_0x2fd4a5[_0xe8f6('0x40')],{'$or':_[_0xe8f6('0x2e')](_0x2fd4a5[_0xe8f6('0x37')],function(_0x14cce7){var _0x3d64e8={};_0x3d64e8[_0x14cce7]={'$like':'%'+_0x1ea5ce[_0xe8f6('0x33')][_0xe8f6('0x3f')]+'%'};return _0x3d64e8;})});}_0x2fd4a5=_[_0xe8f6('0x41')]({},_0x2fd4a5,_0x1ea5ce['options']);return _0x54993f[_0xe8f6('0x8c')](_0x2fd4a5);}})[_0xe8f6('0x26')](function(_0x11c649){if(_0x11c649){_0x134624=_0x11c649[_0xe8f6('0x39')];if(!_0x1ea5ce[_0xe8f6('0x33')][_0xe8f6('0x3a')]('nolimit')){_0x2fd4a5[_0xe8f6('0x3c')]=qs[_0xe8f6('0x3c')](_0x1ea5ce[_0xe8f6('0x33')][_0xe8f6('0x3c')]);_0x2fd4a5[_0xe8f6('0x20')]=qs[_0xe8f6('0x20')](_0x1ea5ce['query'][_0xe8f6('0x20')]);}return _0x54993f[_0xe8f6('0x8c')](_0x2fd4a5);}})[_0xe8f6('0x26')](function(_0x3e3fac){if(_0x3e3fac){return _0x3e3fac?{'count':_0x134624,'rows':_0x3e3fac}:null;}})[_0xe8f6('0x26')](respondWithResult(_0xb5f08a,null))[_0xe8f6('0x46')](handleError(_0xb5f08a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d0b=['events','../../mysqldb','FaxQueue','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x3f288d,_0x3c7a97){var _0x5e8468=function(_0xb0189c){while(--_0xb0189c){_0x3f288d['push'](_0x3f288d['shift']());}};_0x5e8468(++_0x3c7a97);}(_0x8d0b,0x171));var _0xb8d0=function(_0x3457b4,_0x4cd8f9){_0x3457b4=_0x3457b4-0x0;var _0xaa8fa9=_0x8d0b[_0x3457b4];return _0xaa8fa9;};'use strict';var EventEmitter=require(_0xb8d0('0x0'));var FaxQueue=require(_0xb8d0('0x1'))['db'][_0xb8d0('0x2')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb8d0('0x3'),'afterUpdate':'update','afterDestroy':_0xb8d0('0x4')};function emitEvent(_0x57c24c){return function(_0x561aba,_0x396f41,_0x3aea31){FaxQueueEvents[_0xb8d0('0x5')](_0x57c24c+':'+_0x561aba['id'],_0x561aba);FaxQueueEvents[_0xb8d0('0x5')](_0x57c24c,_0x561aba);_0x3aea31(null);};}for(var e in events){if(events[_0xb8d0('0x6')](e)){var event=events[e];FaxQueue[_0xb8d0('0x7')](e,emitEvent(event));}}module[_0xb8d0('0x8')]=FaxQueueEvents;
\ No newline at end of file
+var _0x1861=['hasOwnProperty','hook','exports','events','../../mysqldb','FaxQueue','setMaxListeners','save','remove','emit'];(function(_0x5aa992,_0x559ebb){var _0x2e2d59=function(_0x1e2e35){while(--_0x1e2e35){_0x5aa992['push'](_0x5aa992['shift']());}};_0x2e2d59(++_0x559ebb);}(_0x1861,0xa3));var _0x1186=function(_0x397e92,_0x8684c5){_0x397e92=_0x397e92-0x0;var _0x5888a2=_0x1861[_0x397e92];return _0x5888a2;};'use strict';var EventEmitter=require(_0x1186('0x0'));var FaxQueue=require(_0x1186('0x1'))['db'][_0x1186('0x2')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents[_0x1186('0x3')](0x0);var events={'afterCreate':_0x1186('0x4'),'afterUpdate':'update','afterDestroy':_0x1186('0x5')};function emitEvent(_0x4d058b){return function(_0xf0f1f2,_0xba0c7e,_0x47a1a2){FaxQueueEvents[_0x1186('0x6')](_0x4d058b+':'+_0xf0f1f2['id'],_0xf0f1f2);FaxQueueEvents[_0x1186('0x6')](_0x4d058b,_0xf0f1f2);_0x47a1a2(null);};}for(var e in events){if(events[_0x1186('0x7')](e)){var event=events[e];FaxQueue[_0x1186('0x8')](e,emitEvent(event));}}module[_0x1186('0x9')]=FaxQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x295c=['lodash','api','moment','request-promise','./faxQueue.attributes','exports','define','FaxQueue','fax_queues'];(function(_0x18918f,_0x13f594){var _0x10abe3=function(_0x29344e){while(--_0x29344e){_0x18918f['push'](_0x18918f['shift']());}};_0x10abe3(++_0x13f594);}(_0x295c,0xa2));var _0xc295=function(_0x2d67ad,_0xc318fe){_0x2d67ad=_0x2d67ad-0x0;var _0xa7e29d=_0x295c[_0x2d67ad];return _0xa7e29d;};'use strict';var _=require(_0xc295('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xc295('0x1'));var moment=require(_0xc295('0x2'));var BPromise=require('bluebird');var rp=require(_0xc295('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xc295('0x4'));module[_0xc295('0x5')]=function(_0x21c76a,_0x524ed1){return _0x21c76a[_0xc295('0x6')](_0xc295('0x7'),attributes,{'tableName':_0xc295('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3708=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueue.attributes','exports','define','fax_queues','util','../../config/logger'];(function(_0xe559ad,_0xe65503){var _0x37703a=function(_0x27a796){while(--_0x27a796){_0xe559ad['push'](_0xe559ad['shift']());}};_0x37703a(++_0xe65503);}(_0x3708,0xa7));var _0x8370=function(_0x2f5f7a,_0x4b53f3){_0x2f5f7a=_0x2f5f7a-0x0;var _0xf5e2=_0x3708[_0x2f5f7a];return _0xf5e2;};'use strict';var _=require('lodash');var util=require(_0x8370('0x0'));var logger=require(_0x8370('0x1'))(_0x8370('0x2'));var moment=require(_0x8370('0x3'));var BPromise=require(_0x8370('0x4'));var rp=require(_0x8370('0x5'));var fs=require('fs');var path=require(_0x8370('0x6'));var rimraf=require(_0x8370('0x7'));var config=require(_0x8370('0x8'));var attributes=require(_0x8370('0x9'));module[_0x8370('0xa')]=function(_0x8007bd,_0x549658){return _0x8007bd[_0x8370('0xb')]('FaxQueue',attributes,{'tableName':_0x8370('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f82=['ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','defaults','localhost','redis','register','then','info','FaxQueue,\x20%s,\x20%s','request\x20sent','debug','FaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetFaxQueue','findAll','options','raw','where','attributes','limit','include','model','map','ShowFaxQueue','find','lodash','util','moment','randomstring'];(function(_0x4c7d8b,_0x572388){var _0x187158=function(_0x5e956d){while(--_0x5e956d){_0x4c7d8b['push'](_0x4c7d8b['shift']());}};_0x187158(++_0x572388);}(_0x3f82,0x1d0));var _0x23f8=function(_0x49f52a,_0x2e5094){_0x49f52a=_0x49f52a-0x0;var _0x53493b=_0x3f82[_0x49f52a];return _0x53493b;};'use strict';var _=require(_0x23f8('0x0'));var util=require(_0x23f8('0x1'));var moment=require(_0x23f8('0x2'));var BPromise=require('bluebird');var rs=require(_0x23f8('0x3'));var fs=require('fs');var Redis=require(_0x23f8('0x4'));var db=require(_0x23f8('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x23f8('0x6'));var config=require(_0x23f8('0x7'));var jayson=require(_0x23f8('0x8'));var client=jayson[_0x23f8('0x9')][_0x23f8('0xa')]({'port':0x232a});config['redis']=_[_0x23f8('0xb')](config['redis'],{'host':_0x23f8('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x23f8('0xd')]));require('./faxQueue.socket')[_0x23f8('0xe')](socket);function respondWithRpcPromise(_0x4fad17,_0x1e9174,_0x5e5210){return new BPromise(function(_0x3b05b1,_0xb9fc02){return client['request'](_0x4fad17,_0x5e5210)[_0x23f8('0xf')](function(_0x242e5b){logger[_0x23f8('0x10')](_0x23f8('0x11'),_0x1e9174,_0x23f8('0x12'));logger[_0x23f8('0x13')](_0x23f8('0x14'),_0x1e9174,_0x23f8('0x12'),JSON[_0x23f8('0x15')](_0x242e5b));if(_0x242e5b[_0x23f8('0x16')]){if(_0x242e5b[_0x23f8('0x16')][_0x23f8('0x17')]===0x1f4){logger[_0x23f8('0x16')](_0x23f8('0x11'),_0x1e9174,_0x242e5b[_0x23f8('0x16')][_0x23f8('0x18')]);return _0xb9fc02(_0x242e5b['error'][_0x23f8('0x18')]);}logger[_0x23f8('0x16')]('FaxQueue,\x20%s,\x20%s',_0x1e9174,_0x242e5b[_0x23f8('0x16')][_0x23f8('0x18')]);return _0x3b05b1(_0x242e5b[_0x23f8('0x16')]['message']);}else{logger[_0x23f8('0x10')](_0x23f8('0x11'),_0x1e9174,_0x23f8('0x12'));_0x3b05b1(_0x242e5b[_0x23f8('0x19')][_0x23f8('0x18')]);}})[_0x23f8('0x1a')](function(_0x86e29f){logger[_0x23f8('0x16')](_0x23f8('0x11'),_0x1e9174,_0x86e29f);_0xb9fc02(_0x86e29f);});});}exports[_0x23f8('0x1b')]=function(_0x4b2c4e){var _0x57beb6=this;return new Promise(function(_0x2f987c,_0x5cae97){return db['FaxQueue'][_0x23f8('0x1c')]({'raw':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x1e')]===undefined?!![]:![]:!![],'where':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x1f')]||null:null,'attributes':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x20')]||null:null,'limit':_0x4b2c4e['options']?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x21')]||null:null,'include':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x22')]?_['map'](_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x22')],function(_0x54edde){return{'model':db[_0x54edde[_0x23f8('0x23')]],'as':_0x54edde['as'],'attributes':_0x54edde['attributes'],'include':_0x54edde[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x54edde[_0x23f8('0x22')],function(_0x54e382){return{'model':db[_0x54e382['model']],'as':_0x54e382['as'],'attributes':_0x54e382[_0x23f8('0x20')],'include':_0x54e382[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x54e382[_0x23f8('0x22')],function(_0x53c8d1){return{'model':db[_0x53c8d1[_0x23f8('0x23')]],'as':_0x53c8d1['as'],'attributes':_0x53c8d1[_0x23f8('0x20')]};}):[]};}):[]};}):[]:[]})[_0x23f8('0xf')](function(_0x41b300){logger[_0x23f8('0x10')](_0x23f8('0x1b'),_0x4b2c4e);logger[_0x23f8('0x13')](_0x23f8('0x1b'),_0x4b2c4e,JSON['stringify'](_0x41b300));_0x2f987c(_0x41b300);})[_0x23f8('0x1a')](function(_0x389d36){logger[_0x23f8('0x16')](_0x23f8('0x1b'),_0x389d36[_0x23f8('0x18')],_0x4b2c4e);_0x5cae97(_0x57beb6[_0x23f8('0x16')](0x1f4,_0x389d36[_0x23f8('0x18')]));});});};exports[_0x23f8('0x25')]=function(_0x53f97c){var _0x3458d6=this;return new Promise(function(_0x52c5d6,_0x53ee0b){return db['FaxQueue'][_0x23f8('0x26')]({'raw':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x1e')]===undefined?!![]:![]:!![],'where':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')]['where']||null:null,'attributes':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x20')]||null:null,'include':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x22')],function(_0x18184e){return{'model':db[_0x18184e[_0x23f8('0x23')]],'as':_0x18184e['as'],'attributes':_0x18184e[_0x23f8('0x20')],'include':_0x18184e[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x18184e[_0x23f8('0x22')],function(_0x43fed5){return{'model':db[_0x43fed5['model']],'as':_0x43fed5['as'],'attributes':_0x43fed5[_0x23f8('0x20')],'include':_0x43fed5[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x43fed5[_0x23f8('0x22')],function(_0x220754){return{'model':db[_0x220754[_0x23f8('0x23')]],'as':_0x220754['as'],'attributes':_0x220754['attributes']};}):[]};}):[]};}):[]:[]})[_0x23f8('0xf')](function(_0x53b112){logger[_0x23f8('0x10')](_0x23f8('0x25'),_0x53f97c);logger[_0x23f8('0x13')](_0x23f8('0x25'),_0x53f97c,JSON[_0x23f8('0x15')](_0x53b112));_0x52c5d6(_0x53b112);})['catch'](function(_0xf412c9){logger['error']('ShowFaxQueue',_0xf412c9[_0x23f8('0x18')],_0x53f97c);_0x53ee0b(_0x3458d6[_0x23f8('0x16')](0x1f4,_0xf412c9[_0x23f8('0x18')]));});});};
\ No newline at end of file
+var _0xc9a2=['register','then','info','FaxQueue,\x20%s,\x20%s','request\x20sent','FaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','GetFaxQueue','findAll','options','raw','where','attributes','limit','include','map','ShowFaxQueue','model','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','redis','defaults','localhost','socket.io-emitter'];(function(_0x141e6d,_0x50ad37){var _0x987993=function(_0x49c0b7){while(--_0x49c0b7){_0x141e6d['push'](_0x141e6d['shift']());}};_0x987993(++_0x50ad37);}(_0xc9a2,0x146));var _0x2c9a=function(_0x8f2a60,_0x349317){_0x8f2a60=_0x8f2a60-0x0;var _0x3d3f4d=_0xc9a2[_0x8f2a60];return _0x3d3f4d;};'use strict';var _=require(_0x2c9a('0x0'));var util=require(_0x2c9a('0x1'));var moment=require(_0x2c9a('0x2'));var BPromise=require(_0x2c9a('0x3'));var rs=require(_0x2c9a('0x4'));var fs=require('fs');var Redis=require(_0x2c9a('0x5'));var db=require(_0x2c9a('0x6'))['db'];var utils=require(_0x2c9a('0x7'));var logger=require(_0x2c9a('0x8'))(_0x2c9a('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x2c9a('0xa')][_0x2c9a('0xb')]({'port':0x232a});config[_0x2c9a('0xc')]=_[_0x2c9a('0xd')](config[_0x2c9a('0xc')],{'host':_0x2c9a('0xe'),'port':0x18eb});var socket=require(_0x2c9a('0xf'))(new Redis(config[_0x2c9a('0xc')]));require('./faxQueue.socket')[_0x2c9a('0x10')](socket);function respondWithRpcPromise(_0x4da251,_0x30797a,_0x4382f9){return new BPromise(function(_0x4f9cea,_0x463b8f){return client['request'](_0x4da251,_0x4382f9)[_0x2c9a('0x11')](function(_0x3b92da){logger[_0x2c9a('0x12')](_0x2c9a('0x13'),_0x30797a,_0x2c9a('0x14'));logger['debug'](_0x2c9a('0x15'),_0x30797a,_0x2c9a('0x14'),JSON[_0x2c9a('0x16')](_0x3b92da));if(_0x3b92da['error']){if(_0x3b92da['error']['code']===0x1f4){logger[_0x2c9a('0x17')]('FaxQueue,\x20%s,\x20%s',_0x30797a,_0x3b92da[_0x2c9a('0x17')][_0x2c9a('0x18')]);return _0x463b8f(_0x3b92da[_0x2c9a('0x17')][_0x2c9a('0x18')]);}logger[_0x2c9a('0x17')]('FaxQueue,\x20%s,\x20%s',_0x30797a,_0x3b92da[_0x2c9a('0x17')][_0x2c9a('0x18')]);return _0x4f9cea(_0x3b92da[_0x2c9a('0x17')]['message']);}else{logger[_0x2c9a('0x12')](_0x2c9a('0x13'),_0x30797a,_0x2c9a('0x14'));_0x4f9cea(_0x3b92da['result']['message']);}})[_0x2c9a('0x19')](function(_0x4e8fce){logger[_0x2c9a('0x17')](_0x2c9a('0x13'),_0x30797a,_0x4e8fce);_0x463b8f(_0x4e8fce);});});}exports[_0x2c9a('0x1a')]=function(_0x1c3d47){var _0x5956a0=this;return new Promise(function(_0x5ea75e,_0xeb4d0d){return db['FaxQueue'][_0x2c9a('0x1b')]({'raw':_0x1c3d47['options']?_0x1c3d47[_0x2c9a('0x1c')][_0x2c9a('0x1d')]===undefined?!![]:![]:!![],'where':_0x1c3d47[_0x2c9a('0x1c')]?_0x1c3d47[_0x2c9a('0x1c')][_0x2c9a('0x1e')]||null:null,'attributes':_0x1c3d47[_0x2c9a('0x1c')]?_0x1c3d47[_0x2c9a('0x1c')][_0x2c9a('0x1f')]||null:null,'limit':_0x1c3d47[_0x2c9a('0x1c')]?_0x1c3d47[_0x2c9a('0x1c')][_0x2c9a('0x20')]||null:null,'include':_0x1c3d47[_0x2c9a('0x1c')]?_0x1c3d47[_0x2c9a('0x1c')][_0x2c9a('0x21')]?_[_0x2c9a('0x22')](_0x1c3d47[_0x2c9a('0x1c')]['include'],function(_0x897933){return{'model':db[_0x897933['model']],'as':_0x897933['as'],'attributes':_0x897933[_0x2c9a('0x1f')],'include':_0x897933[_0x2c9a('0x21')]?_[_0x2c9a('0x22')](_0x897933['include'],function(_0x48ca11){return{'model':db[_0x48ca11['model']],'as':_0x48ca11['as'],'attributes':_0x48ca11[_0x2c9a('0x1f')],'include':_0x48ca11[_0x2c9a('0x21')]?_['map'](_0x48ca11[_0x2c9a('0x21')],function(_0x2a3d30){return{'model':db[_0x2a3d30['model']],'as':_0x2a3d30['as'],'attributes':_0x2a3d30['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x28aa4f){logger[_0x2c9a('0x12')](_0x2c9a('0x1a'),_0x1c3d47);logger['debug'](_0x2c9a('0x1a'),_0x1c3d47,JSON[_0x2c9a('0x16')](_0x28aa4f));_0x5ea75e(_0x28aa4f);})['catch'](function(_0x31d725){logger[_0x2c9a('0x17')](_0x2c9a('0x1a'),_0x31d725['message'],_0x1c3d47);_0xeb4d0d(_0x5956a0['error'](0x1f4,_0x31d725[_0x2c9a('0x18')]));});});};exports[_0x2c9a('0x23')]=function(_0x2668c2){var _0x2fc17e=this;return new Promise(function(_0x1e3e98,_0x38f3ba){return db['FaxQueue']['find']({'raw':_0x2668c2[_0x2c9a('0x1c')]?_0x2668c2[_0x2c9a('0x1c')][_0x2c9a('0x1d')]===undefined?!![]:![]:!![],'where':_0x2668c2['options']?_0x2668c2[_0x2c9a('0x1c')][_0x2c9a('0x1e')]||null:null,'attributes':_0x2668c2[_0x2c9a('0x1c')]?_0x2668c2[_0x2c9a('0x1c')]['attributes']||null:null,'include':_0x2668c2[_0x2c9a('0x1c')]?_0x2668c2[_0x2c9a('0x1c')][_0x2c9a('0x21')]?_[_0x2c9a('0x22')](_0x2668c2['options'][_0x2c9a('0x21')],function(_0x255c57){return{'model':db[_0x255c57['model']],'as':_0x255c57['as'],'attributes':_0x255c57[_0x2c9a('0x1f')],'include':_0x255c57[_0x2c9a('0x21')]?_[_0x2c9a('0x22')](_0x255c57[_0x2c9a('0x21')],function(_0x41a8bb){return{'model':db[_0x41a8bb[_0x2c9a('0x24')]],'as':_0x41a8bb['as'],'attributes':_0x41a8bb[_0x2c9a('0x1f')],'include':_0x41a8bb[_0x2c9a('0x21')]?_[_0x2c9a('0x22')](_0x41a8bb[_0x2c9a('0x21')],function(_0x2d6661){return{'model':db[_0x2d6661[_0x2c9a('0x24')]],'as':_0x2d6661['as'],'attributes':_0x2d6661[_0x2c9a('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x2c9a('0x11')](function(_0x179485){logger['info'](_0x2c9a('0x23'),_0x2668c2);logger[_0x2c9a('0x25')]('ShowFaxQueue',_0x2668c2,JSON[_0x2c9a('0x16')](_0x179485));_0x1e3e98(_0x179485);})[_0x2c9a('0x19')](function(_0x190a11){logger[_0x2c9a('0x17')](_0x2c9a('0x23'),_0x190a11['message'],_0x2668c2);_0x38f3ba(_0x2fc17e['error'](0x1f4,_0x190a11[_0x2c9a('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a39=['emit','removeListener','register','length','faxQueue:','./faxQueue.events','save','remove','update'];(function(_0x124f2b,_0x368684){var _0x50cffc=function(_0x3b6712){while(--_0x3b6712){_0x124f2b['push'](_0x124f2b['shift']());}};_0x50cffc(++_0x368684);}(_0x6a39,0x140));var _0x96a3=function(_0x14612f,_0x1c3389){_0x14612f=_0x14612f-0x0;var _0x3c41ad=_0x6a39[_0x14612f];return _0x3c41ad;};'use strict';var FaxQueueEvents=require(_0x96a3('0x0'));var events=[_0x96a3('0x1'),_0x96a3('0x2'),_0x96a3('0x3')];function createListener(_0x1314a0,_0x2b9318){return function(_0x5b0682){_0x2b9318[_0x96a3('0x4')](_0x1314a0,_0x5b0682);};}function removeListener(_0x2c27de,_0x37804f){return function(){FaxQueueEvents[_0x96a3('0x5')](_0x2c27de,_0x37804f);};}exports[_0x96a3('0x6')]=function(_0x21f936){for(var _0x2174a1=0x0,_0x19dfa2=events[_0x96a3('0x7')];_0x2174a1<_0x19dfa2;_0x2174a1++){var _0x33520a=events[_0x2174a1];var _0x5478ce=createListener(_0x96a3('0x8')+_0x33520a,_0x21f936);FaxQueueEvents['on'](_0x33520a,_0x5478ce);}};
\ No newline at end of file
+var _0xa969=['emit','removeListener','length','faxQueue:','./faxQueue.events','save','remove','update'];(function(_0xd17b,_0xdccac5){var _0x584c05=function(_0x13e480){while(--_0x13e480){_0xd17b['push'](_0xd17b['shift']());}};_0x584c05(++_0xdccac5);}(_0xa969,0x114));var _0x9a96=function(_0x1c510a,_0x1413a9){_0x1c510a=_0x1c510a-0x0;var _0x23cedd=_0xa969[_0x1c510a];return _0x23cedd;};'use strict';var FaxQueueEvents=require(_0x9a96('0x0'));var events=[_0x9a96('0x1'),_0x9a96('0x2'),_0x9a96('0x3')];function createListener(_0x325b70,_0x4342b1){return function(_0x4d92bf){_0x4342b1[_0x9a96('0x4')](_0x325b70,_0x4d92bf);};}function removeListener(_0x230174,_0x110c58){return function(){FaxQueueEvents[_0x9a96('0x5')](_0x230174,_0x110c58);};}exports['register']=function(_0x23e3a9){for(var _0x1c43a3=0x0,_0x5511b2=events[_0x9a96('0x6')];_0x1c43a3<_0x5511b2;_0x1c43a3++){var _0xfc56d8=events[_0x1c43a3];var _0x706334=createListener(_0x9a96('0x7')+_0xfc56d8,_0x23e3a9);FaxQueueEvents['on'](_0xfc56d8,_0x706334);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc46=['destroy','removeTeams','removeAgents','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addAgents','put','/:id','update','delete'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0xfc46,0x9a));var _0x6fc4=function(_0x1460f6,_0x59051a){_0x1460f6=_0x1460f6-0x0;var _0x46ce94=_0xfc46[_0x1460f6];return _0x46ce94;};'use strict';var multer=require(_0x6fc4('0x0'));var util=require('util');var path=require(_0x6fc4('0x1'));var timeout=require(_0x6fc4('0x2'));var express=require(_0x6fc4('0x3'));var router=express['Router']();var fs_extra=require(_0x6fc4('0x4'));var auth=require(_0x6fc4('0x5'));var interaction=require(_0x6fc4('0x6'));var config=require(_0x6fc4('0x7'));var controller=require('./faxQueue.controller');router[_0x6fc4('0x8')]('/',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0xa')]);router[_0x6fc4('0x8')](_0x6fc4('0xb'),auth[_0x6fc4('0x9')](),controller['describe']);router[_0x6fc4('0x8')]('/:id',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0xc')]);router['get'](_0x6fc4('0xd'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0xe')]);router[_0x6fc4('0x8')](_0x6fc4('0xf'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x10')]);router[_0x6fc4('0x8')](_0x6fc4('0x11'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x12')]);router[_0x6fc4('0x13')]('/',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x14')]);router[_0x6fc4('0x13')](_0x6fc4('0xf'),auth[_0x6fc4('0x9')](),controller['addTeams']);router['post'](_0x6fc4('0x11'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x15')]);router[_0x6fc4('0x16')](_0x6fc4('0x17'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x18')]);router[_0x6fc4('0x19')](_0x6fc4('0x17'),auth['isAuthenticated'](),controller[_0x6fc4('0x1a')]);router[_0x6fc4('0x19')]('/:id/teams',auth['isAuthenticated'](),controller[_0x6fc4('0x1b')]);router[_0x6fc4('0x19')]('/:id/users',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x1c')]);module[_0x6fc4('0x1d')]=router;
\ No newline at end of file
+var _0xe944=['/:id/teams','getTeams','/:id/users','create','post','addAgents','put','update','delete','destroy','removeTeams','exports','multer','connect-timeout','fs-extra','../../config/environment','./faxQueue.controller','get','isAuthenticated','/describe','describe','/:id','show','/:id/members'];(function(_0x55b493,_0x1bf69b){var _0x532b6f=function(_0x55bc15){while(--_0x55bc15){_0x55b493['push'](_0x55b493['shift']());}};_0x532b6f(++_0x1bf69b);}(_0xe944,0x174));var _0x4e94=function(_0xfc4317,_0x20eadc){_0xfc4317=_0xfc4317-0x0;var _0xba0892=_0xe944[_0xfc4317];return _0xba0892;};'use strict';var multer=require(_0x4e94('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x4e94('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x4e94('0x2'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x4e94('0x3'));var controller=require(_0x4e94('0x4'));router[_0x4e94('0x5')]('/',auth[_0x4e94('0x6')](),controller['index']);router[_0x4e94('0x5')](_0x4e94('0x7'),auth[_0x4e94('0x6')](),controller[_0x4e94('0x8')]);router['get'](_0x4e94('0x9'),auth['isAuthenticated'](),controller[_0x4e94('0xa')]);router[_0x4e94('0x5')](_0x4e94('0xb'),auth[_0x4e94('0x6')](),controller['getMembers']);router[_0x4e94('0x5')](_0x4e94('0xc'),auth[_0x4e94('0x6')](),controller[_0x4e94('0xd')]);router[_0x4e94('0x5')](_0x4e94('0xe'),auth[_0x4e94('0x6')](),controller['getAgents']);router['post']('/',auth[_0x4e94('0x6')](),controller[_0x4e94('0xf')]);router[_0x4e94('0x10')](_0x4e94('0xc'),auth[_0x4e94('0x6')](),controller['addTeams']);router[_0x4e94('0x10')](_0x4e94('0xe'),auth[_0x4e94('0x6')](),controller[_0x4e94('0x11')]);router[_0x4e94('0x12')](_0x4e94('0x9'),auth[_0x4e94('0x6')](),controller[_0x4e94('0x13')]);router[_0x4e94('0x14')](_0x4e94('0x9'),auth[_0x4e94('0x6')](),controller[_0x4e94('0x15')]);router['delete']('/:id/teams',auth[_0x4e94('0x6')](),controller[_0x4e94('0x16')]);router[_0x4e94('0x14')](_0x4e94('0xe'),auth[_0x4e94('0x6')](),controller['removeAgents']);module[_0x4e94('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78e7=['DATE','moment','sequelize','exports','STRING'];(function(_0xcfdbbb,_0x493fd6){var _0x4088c3=function(_0x283e2d){while(--_0x283e2d){_0xcfdbbb['push'](_0xcfdbbb['shift']());}};_0x4088c3(++_0x493fd6);}(_0x78e7,0xb0));var _0x778e=function(_0x3a24d8,_0x4bd4ae){_0x3a24d8=_0x3a24d8-0x0;var _0x5dc808=_0x78e7[_0x3a24d8];return _0x5dc808;};'use strict';var moment=require(_0x778e('0x0'));var Sequelize=require(_0x778e('0x1'));module[_0x778e('0x2')]={'uniqueid':{'type':Sequelize[_0x778e('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x778e('0x3')]},'joinAt':{'type':Sequelize[_0x778e('0x4')]},'leaveAt':{'type':Sequelize[_0x778e('0x4')]},'acceptAt':{'type':Sequelize[_0x778e('0x4')]},'exitAt':{'type':Sequelize[_0x778e('0x4')]},'reason':{'type':Sequelize[_0x778e('0x3')]}};
\ No newline at end of file
+var _0x41e5=['exports','DATE','STRING','sequelize'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x41e5,0x193));var _0x541e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x41e5[_0x3dd15e];return _0x231fd0;};'use strict';var moment=require('moment');var Sequelize=require(_0x541e('0x0'));module[_0x541e('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x541e('0x2')]},'leaveAt':{'type':Sequelize[_0x541e('0x2')]},'acceptAt':{'type':Sequelize[_0x541e('0x2')]},'exitAt':{'type':Sequelize[_0x541e('0x2')]},'reason':{'type':Sequelize[_0x541e('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3df4=['destroy','sendStatus','error','stack','name','send','index','FaxQueueReport','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','options','then','includeAll','include','findAll','rows','catch','show','find','create','body','params','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','limit','count','set','reject','save','update'];(function(_0x590851,_0x496bee){var _0x3b0115=function(_0x5140cc){while(--_0x5140cc){_0x590851['push'](_0x590851['shift']());}};_0x3b0115(++_0x496bee);}(_0x3df4,0x102));var _0x43df=function(_0x39bbb5,_0x3f12f1){_0x39bbb5=_0x39bbb5-0x0;var _0x571127=_0x3df4[_0x39bbb5];return _0x571127;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x43df('0x0'));var jsonpatch=require(_0x43df('0x1'));var rp=require(_0x43df('0x2'));var moment=require(_0x43df('0x3'));var BPromise=require(_0x43df('0x4'));var Mustache=require(_0x43df('0x5'));var util=require(_0x43df('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x43df('0x7'));var ejs=require(_0x43df('0x8'));var fs=require('fs');var fs_extra=require(_0x43df('0x9'));var _=require(_0x43df('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x43df('0xb'));var deskjs=require(_0x43df('0xc'));var toCsv=require(_0x43df('0x7'));var querystring=require(_0x43df('0xd'));var Papa=require('papaparse');var Redis=require(_0x43df('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x43df('0xf'));var as=require(_0x43df('0x10'));var hardwareService=require(_0x43df('0x11'));var logger=require(_0x43df('0x12'))(_0x43df('0x13'));var utils=require(_0x43df('0x14'));var config=require(_0x43df('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x43df('0x16'))['db'];function respondWithStatusCode(_0x1140a9,_0x592a64){_0x592a64=_0x592a64||0xcc;return function(_0x14df5c){if(_0x14df5c){return _0x1140a9['sendStatus'](_0x592a64);}return _0x1140a9[_0x43df('0x17')](_0x592a64)[_0x43df('0x18')]();};}function respondWithResult(_0x4c4105,_0x3cbca1){_0x3cbca1=_0x3cbca1||0xc8;return function(_0x549159){if(_0x549159){return _0x4c4105['status'](_0x3cbca1)[_0x43df('0x19')](_0x549159);}};}function respondWithFilteredResult(_0x3748f2,_0x5c00d9){return function(_0x24f026){if(_0x24f026){var _0x592c70=typeof _0x5c00d9[_0x43df('0x1a')]===_0x43df('0x1b')&&typeof _0x5c00d9[_0x43df('0x1c')]===_0x43df('0x1b');var _0x2126fd=_0x24f026[_0x43df('0x1d')];var _0x571404=_0x592c70?0x0:_0x5c00d9[_0x43df('0x1a')];var _0x334fae=_0x592c70?_0x24f026[_0x43df('0x1d')]:_0x5c00d9[_0x43df('0x1a')]+_0x5c00d9['limit'];var _0x22314c;if(_0x334fae>=_0x2126fd){_0x334fae=_0x2126fd;_0x22314c=0xc8;}else{_0x22314c=0xce;}_0x3748f2[_0x43df('0x17')](_0x22314c);return _0x3748f2[_0x43df('0x1e')]('Content-Range',_0x571404+'-'+_0x334fae+'/'+_0x2126fd)['json'](_0x24f026);}return null;};}function patchUpdates(_0x4303c5){return function(_0x18e382){try{jsonpatch['apply'](_0x18e382,_0x4303c5,!![]);}catch(_0x3b51b2){return BPromise[_0x43df('0x1f')](_0x3b51b2);}return _0x18e382[_0x43df('0x20')]();};}function saveUpdates(_0x5c1cfc,_0x3b44d8){return function(_0x493e2c){if(_0x493e2c){return _0x493e2c[_0x43df('0x21')](_0x5c1cfc)['then'](function(_0xa975dc){return _0xa975dc;});}return null;};}function removeEntity(_0x37ecf9,_0xbb793b){return function(_0x4d05c9){if(_0x4d05c9){return _0x4d05c9[_0x43df('0x22')]()['then'](function(){_0x37ecf9[_0x43df('0x17')](0xcc)[_0x43df('0x18')]();});}};}function handleEntityNotFound(_0xda44f3,_0x143123){return function(_0x84521){if(!_0x84521){_0xda44f3[_0x43df('0x23')](0x194);}return _0x84521;};}function handleError(_0x1a09be,_0x33e1e2){_0x33e1e2=_0x33e1e2||0x1f4;return function(_0xb2578b){logger[_0x43df('0x24')](_0xb2578b[_0x43df('0x25')]);if(_0xb2578b['name']){delete _0xb2578b[_0x43df('0x26')];}_0x1a09be[_0x43df('0x17')](_0x33e1e2)[_0x43df('0x27')](_0xb2578b);};}exports[_0x43df('0x28')]=function(_0x250fda,_0x290dae){var _0x461ec2={},_0xcc74c7={},_0x1eed39={'count':0x0,'rows':[]};var _0x597cde=_['map'](db[_0x43df('0x29')][_0x43df('0x2a')],function(_0x257a57){return{'name':_0x257a57[_0x43df('0x2b')],'type':_0x257a57[_0x43df('0x2c')]['key']};});_0xcc74c7[_0x43df('0x2d')]=_[_0x43df('0x2e')](_0x597cde,_0x43df('0x26'));_0xcc74c7[_0x43df('0x2f')]=_[_0x43df('0x30')](_0x250fda[_0x43df('0x2f')]);_0xcc74c7[_0x43df('0x31')]=_[_0x43df('0x32')](_0xcc74c7[_0x43df('0x2d')],_0xcc74c7[_0x43df('0x2f')]);_0x461ec2[_0x43df('0x33')]=_[_0x43df('0x32')](_0xcc74c7[_0x43df('0x2d')],qs[_0x43df('0x34')](_0x250fda['query']['fields']));_0x461ec2[_0x43df('0x33')]=_0x461ec2['attributes'][_0x43df('0x35')]?_0x461ec2[_0x43df('0x33')]:_0xcc74c7[_0x43df('0x2d')];if(!_0x250fda[_0x43df('0x2f')]['hasOwnProperty'](_0x43df('0x36'))){_0x461ec2[_0x43df('0x1c')]=qs[_0x43df('0x1c')](_0x250fda['query'][_0x43df('0x1c')]);_0x461ec2[_0x43df('0x1a')]=qs[_0x43df('0x1a')](_0x250fda[_0x43df('0x2f')]['offset']);}_0x461ec2[_0x43df('0x37')]=qs[_0x43df('0x38')](_0x250fda[_0x43df('0x2f')][_0x43df('0x38')]);_0x461ec2[_0x43df('0x39')]=qs[_0x43df('0x31')](_['pick'](_0x250fda['query'],_0xcc74c7[_0x43df('0x31')]),_0x597cde);if(_0x250fda['query']['filter']){_0x461ec2['where']=_['merge'](_0x461ec2[_0x43df('0x39')],{'$or':_[_0x43df('0x2e')](_0x597cde,function(_0x2b6412){if(_0x2b6412[_0x43df('0x2c')]!=='VIRTUAL'){var _0x3d8aad={};_0x3d8aad[_0x2b6412[_0x43df('0x26')]]={'$like':'%'+_0x250fda['query'][_0x43df('0x3a')]+'%'};return _0x3d8aad;}})});}_0x461ec2=_[_0x43df('0x3b')]({},_0x461ec2,_0x250fda[_0x43df('0x3c')]);var _0x347dfa={'where':_0x461ec2[_0x43df('0x39')]};return db[_0x43df('0x29')]['count'](_0x347dfa)[_0x43df('0x3d')](function(_0x50fda5){_0x1eed39['count']=_0x50fda5;if(_0x250fda[_0x43df('0x2f')][_0x43df('0x3e')]){_0x461ec2[_0x43df('0x3f')]=[{'all':!![]}];}return db[_0x43df('0x29')][_0x43df('0x40')](_0x461ec2);})[_0x43df('0x3d')](function(_0x50a37d){_0x1eed39[_0x43df('0x41')]=_0x50a37d;return _0x1eed39;})[_0x43df('0x3d')](respondWithFilteredResult(_0x290dae,_0x461ec2))[_0x43df('0x42')](handleError(_0x290dae,null));};exports[_0x43df('0x43')]=function(_0x2ea908,_0x29e2df){var _0x4d5c10={'raw':!![],'where':{'id':_0x2ea908['params']['id']}},_0xe946a4={};_0xe946a4[_0x43df('0x2d')]=_[_0x43df('0x30')](db['FaxQueueReport'][_0x43df('0x2a')]);_0xe946a4[_0x43df('0x2f')]=_[_0x43df('0x30')](_0x2ea908[_0x43df('0x2f')]);_0xe946a4[_0x43df('0x31')]=_[_0x43df('0x32')](_0xe946a4[_0x43df('0x2d')],_0xe946a4[_0x43df('0x2f')]);_0x4d5c10[_0x43df('0x33')]=_[_0x43df('0x32')](_0xe946a4['model'],qs[_0x43df('0x34')](_0x2ea908['query']['fields']));_0x4d5c10[_0x43df('0x33')]=_0x4d5c10[_0x43df('0x33')][_0x43df('0x35')]?_0x4d5c10['attributes']:_0xe946a4[_0x43df('0x2d')];if(_0x2ea908[_0x43df('0x2f')][_0x43df('0x3e')]){_0x4d5c10[_0x43df('0x3f')]=[{'all':!![]}];}_0x4d5c10=_[_0x43df('0x3b')]({},_0x4d5c10,_0x2ea908[_0x43df('0x3c')]);return db[_0x43df('0x29')][_0x43df('0x44')](_0x4d5c10)[_0x43df('0x3d')](handleEntityNotFound(_0x29e2df,null))[_0x43df('0x3d')](respondWithResult(_0x29e2df,null))[_0x43df('0x42')](handleError(_0x29e2df,null));};exports['create']=function(_0x22c6bd,_0x4c0b20){return db[_0x43df('0x29')][_0x43df('0x45')](_0x22c6bd['body'],{})[_0x43df('0x3d')](respondWithResult(_0x4c0b20,0xc9))['catch'](handleError(_0x4c0b20,null));};exports[_0x43df('0x21')]=function(_0x5f323b,_0x258ae7){if(_0x5f323b[_0x43df('0x46')]['id']){delete _0x5f323b[_0x43df('0x46')]['id'];}return db[_0x43df('0x29')]['find']({'where':{'id':_0x5f323b[_0x43df('0x47')]['id']}})[_0x43df('0x3d')](handleEntityNotFound(_0x258ae7,null))[_0x43df('0x3d')](saveUpdates(_0x5f323b['body'],null))['then'](respondWithResult(_0x258ae7,null))[_0x43df('0x42')](handleError(_0x258ae7,null));};exports[_0x43df('0x22')]=function(_0x35b1c2,_0x4fdd9c){return db[_0x43df('0x29')][_0x43df('0x44')]({'where':{'id':_0x35b1c2[_0x43df('0x47')]['id']}})[_0x43df('0x3d')](handleEntityNotFound(_0x4fdd9c,null))[_0x43df('0x3d')](removeEntity(_0x4fdd9c,null))[_0x43df('0x42')](handleError(_0x4fdd9c,null));};exports[_0x43df('0x48')]=function(_0x38a63c,_0x3448fa){return db['FaxQueueReport'][_0x43df('0x48')]()[_0x43df('0x3d')](respondWithResult(_0x3448fa,null))[_0x43df('0x42')](handleError(_0x3448fa,null));};
\ No newline at end of file
+var _0xffdc=['json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','index','rawAttributes','fieldName','key','model','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','filter','merge','map','type','options','includeAll','include','FaxQueueReport','findAll','catch','params','keys','find','create','body','describe','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status'];(function(_0x353313,_0x5c3686){var _0x4cb750=function(_0x17ac7e){while(--_0x17ac7e){_0x353313['push'](_0x353313['shift']());}};_0x4cb750(++_0x5c3686);}(_0xffdc,0x7f));var _0xcffd=function(_0x816ac,_0x2d6822){_0x816ac=_0x816ac-0x0;var _0xb6d4f=_0xffdc[_0x816ac];return _0xb6d4f;};'use strict';var emlformat=require(_0xcffd('0x0'));var rimraf=require(_0xcffd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcffd('0x2'));var rp=require(_0xcffd('0x3'));var moment=require('moment');var BPromise=require(_0xcffd('0x4'));var Mustache=require(_0xcffd('0x5'));var util=require(_0xcffd('0x6'));var path=require(_0xcffd('0x7'));var sox=require(_0xcffd('0x8'));var csv=require('to-csv');var ejs=require(_0xcffd('0x9'));var fs=require('fs');var fs_extra=require(_0xcffd('0xa'));var _=require(_0xcffd('0xb'));var squel=require(_0xcffd('0xc'));var crypto=require(_0xcffd('0xd'));var jsforce=require(_0xcffd('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xcffd('0xf'));var querystring=require(_0xcffd('0x10'));var Papa=require('papaparse');var Redis=require(_0xcffd('0x11'));var authService=require(_0xcffd('0x12'));var qs=require(_0xcffd('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcffd('0x14'));var logger=require(_0xcffd('0x15'))(_0xcffd('0x16'));var utils=require(_0xcffd('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xcffd('0x18'))['db'];function respondWithStatusCode(_0x187ca8,_0x1340b0){_0x1340b0=_0x1340b0||0xcc;return function(_0x4ec693){if(_0x4ec693){return _0x187ca8[_0xcffd('0x19')](_0x1340b0);}return _0x187ca8['status'](_0x1340b0)['end']();};}function respondWithResult(_0x765795,_0x20e134){_0x20e134=_0x20e134||0xc8;return function(_0x4edde4){if(_0x4edde4){return _0x765795[_0xcffd('0x1a')](_0x20e134)[_0xcffd('0x1b')](_0x4edde4);}};}function respondWithFilteredResult(_0x3d1e6e,_0x32f579){return function(_0x4ec386){if(_0x4ec386){var _0x4921d1=typeof _0x32f579[_0xcffd('0x1c')]===_0xcffd('0x1d')&&typeof _0x32f579[_0xcffd('0x1e')]===_0xcffd('0x1d');var _0x867e85=_0x4ec386['count'];var _0x4216c4=_0x4921d1?0x0:_0x32f579['offset'];var _0x18e9e1=_0x4921d1?_0x4ec386[_0xcffd('0x1f')]:_0x32f579[_0xcffd('0x1c')]+_0x32f579[_0xcffd('0x1e')];var _0x33a27e;if(_0x18e9e1>=_0x867e85){_0x18e9e1=_0x867e85;_0x33a27e=0xc8;}else{_0x33a27e=0xce;}_0x3d1e6e[_0xcffd('0x1a')](_0x33a27e);return _0x3d1e6e[_0xcffd('0x20')](_0xcffd('0x21'),_0x4216c4+'-'+_0x18e9e1+'/'+_0x867e85)['json'](_0x4ec386);}return null;};}function patchUpdates(_0x73d51a){return function(_0x1f36f4){try{jsonpatch[_0xcffd('0x22')](_0x1f36f4,_0x73d51a,!![]);}catch(_0x4029a7){return BPromise[_0xcffd('0x23')](_0x4029a7);}return _0x1f36f4[_0xcffd('0x24')]();};}function saveUpdates(_0x1ad69f,_0x5d2d3c){return function(_0x52fc51){if(_0x52fc51){return _0x52fc51[_0xcffd('0x25')](_0x1ad69f)[_0xcffd('0x26')](function(_0x44f901){return _0x44f901;});}return null;};}function removeEntity(_0x3935ff,_0x3c3839){return function(_0x345a4d){if(_0x345a4d){return _0x345a4d[_0xcffd('0x27')]()[_0xcffd('0x26')](function(){_0x3935ff[_0xcffd('0x1a')](0xcc)[_0xcffd('0x28')]();});}};}function handleEntityNotFound(_0x37185d,_0x1f232a){return function(_0x544ae7){if(!_0x544ae7){_0x37185d[_0xcffd('0x19')](0x194);}return _0x544ae7;};}function handleError(_0x2b5044,_0x2c66a7){_0x2c66a7=_0x2c66a7||0x1f4;return function(_0x547bdb){logger[_0xcffd('0x29')](_0x547bdb[_0xcffd('0x2a')]);if(_0x547bdb[_0xcffd('0x2b')]){delete _0x547bdb['name'];}_0x2b5044['status'](_0x2c66a7)[_0xcffd('0x2c')](_0x547bdb);};}exports[_0xcffd('0x2d')]=function(_0x4b1c7d,_0x3cb0dd){var _0x6641e={},_0x5a97cf={},_0x3f46ea={'count':0x0,'rows':[]};var _0x3ab051=_['map'](db['FaxQueueReport'][_0xcffd('0x2e')],function(_0x1c40fb){return{'name':_0x1c40fb[_0xcffd('0x2f')],'type':_0x1c40fb['type'][_0xcffd('0x30')]};});_0x5a97cf[_0xcffd('0x31')]=_['map'](_0x3ab051,_0xcffd('0x2b'));_0x5a97cf[_0xcffd('0x32')]=_['keys'](_0x4b1c7d[_0xcffd('0x32')]);_0x5a97cf['filters']=_[_0xcffd('0x33')](_0x5a97cf[_0xcffd('0x31')],_0x5a97cf['query']);_0x6641e[_0xcffd('0x34')]=_['intersection'](_0x5a97cf['model'],qs[_0xcffd('0x35')](_0x4b1c7d[_0xcffd('0x32')][_0xcffd('0x35')]));_0x6641e['attributes']=_0x6641e['attributes'][_0xcffd('0x36')]?_0x6641e[_0xcffd('0x34')]:_0x5a97cf['model'];if(!_0x4b1c7d['query'][_0xcffd('0x37')]('nolimit')){_0x6641e[_0xcffd('0x1e')]=qs[_0xcffd('0x1e')](_0x4b1c7d[_0xcffd('0x32')][_0xcffd('0x1e')]);_0x6641e[_0xcffd('0x1c')]=qs[_0xcffd('0x1c')](_0x4b1c7d['query'][_0xcffd('0x1c')]);}_0x6641e[_0xcffd('0x38')]=qs[_0xcffd('0x39')](_0x4b1c7d[_0xcffd('0x32')][_0xcffd('0x39')]);_0x6641e[_0xcffd('0x3a')]=qs['filters'](_[_0xcffd('0x3b')](_0x4b1c7d['query'],_0x5a97cf[_0xcffd('0x3c')]),_0x3ab051);if(_0x4b1c7d['query'][_0xcffd('0x3d')]){_0x6641e[_0xcffd('0x3a')]=_[_0xcffd('0x3e')](_0x6641e[_0xcffd('0x3a')],{'$or':_[_0xcffd('0x3f')](_0x3ab051,function(_0x345bcb){if(_0x345bcb[_0xcffd('0x40')]!=='VIRTUAL'){var _0x1d4960={};_0x1d4960[_0x345bcb[_0xcffd('0x2b')]]={'$like':'%'+_0x4b1c7d[_0xcffd('0x32')]['filter']+'%'};return _0x1d4960;}})});}_0x6641e=_[_0xcffd('0x3e')]({},_0x6641e,_0x4b1c7d[_0xcffd('0x41')]);var _0x464d82={'where':_0x6641e['where']};return db['FaxQueueReport']['count'](_0x464d82)[_0xcffd('0x26')](function(_0x214d4f){_0x3f46ea[_0xcffd('0x1f')]=_0x214d4f;if(_0x4b1c7d['query'][_0xcffd('0x42')]){_0x6641e[_0xcffd('0x43')]=[{'all':!![]}];}return db[_0xcffd('0x44')][_0xcffd('0x45')](_0x6641e);})[_0xcffd('0x26')](function(_0x10c868){_0x3f46ea['rows']=_0x10c868;return _0x3f46ea;})[_0xcffd('0x26')](respondWithFilteredResult(_0x3cb0dd,_0x6641e))[_0xcffd('0x46')](handleError(_0x3cb0dd,null));};exports['show']=function(_0x454735,_0x587a53){var _0x5cb0a9={'raw':!![],'where':{'id':_0x454735[_0xcffd('0x47')]['id']}},_0x23e8fc={};_0x23e8fc[_0xcffd('0x31')]=_[_0xcffd('0x48')](db[_0xcffd('0x44')][_0xcffd('0x2e')]);_0x23e8fc[_0xcffd('0x32')]=_[_0xcffd('0x48')](_0x454735[_0xcffd('0x32')]);_0x23e8fc[_0xcffd('0x3c')]=_['intersection'](_0x23e8fc[_0xcffd('0x31')],_0x23e8fc[_0xcffd('0x32')]);_0x5cb0a9['attributes']=_['intersection'](_0x23e8fc[_0xcffd('0x31')],qs[_0xcffd('0x35')](_0x454735[_0xcffd('0x32')][_0xcffd('0x35')]));_0x5cb0a9[_0xcffd('0x34')]=_0x5cb0a9['attributes']['length']?_0x5cb0a9['attributes']:_0x23e8fc[_0xcffd('0x31')];if(_0x454735[_0xcffd('0x32')][_0xcffd('0x42')]){_0x5cb0a9[_0xcffd('0x43')]=[{'all':!![]}];}_0x5cb0a9=_[_0xcffd('0x3e')]({},_0x5cb0a9,_0x454735[_0xcffd('0x41')]);return db[_0xcffd('0x44')][_0xcffd('0x49')](_0x5cb0a9)[_0xcffd('0x26')](handleEntityNotFound(_0x587a53,null))[_0xcffd('0x26')](respondWithResult(_0x587a53,null))[_0xcffd('0x46')](handleError(_0x587a53,null));};exports[_0xcffd('0x4a')]=function(_0x207d2a,_0x3f23c1){return db['FaxQueueReport'][_0xcffd('0x4a')](_0x207d2a['body'],{})['then'](respondWithResult(_0x3f23c1,0xc9))[_0xcffd('0x46')](handleError(_0x3f23c1,null));};exports['update']=function(_0x6e3701,_0x42b396){if(_0x6e3701['body']['id']){delete _0x6e3701[_0xcffd('0x4b')]['id'];}return db[_0xcffd('0x44')][_0xcffd('0x49')]({'where':{'id':_0x6e3701[_0xcffd('0x47')]['id']}})[_0xcffd('0x26')](handleEntityNotFound(_0x42b396,null))['then'](saveUpdates(_0x6e3701[_0xcffd('0x4b')],null))[_0xcffd('0x26')](respondWithResult(_0x42b396,null))[_0xcffd('0x46')](handleError(_0x42b396,null));};exports[_0xcffd('0x27')]=function(_0x16f8fe,_0x2cc53f){return db[_0xcffd('0x44')]['find']({'where':{'id':_0x16f8fe['params']['id']}})['then'](handleEntityNotFound(_0x2cc53f,null))['then'](removeEntity(_0x2cc53f,null))['catch'](handleError(_0x2cc53f,null));};exports[_0xcffd('0x4c')]=function(_0x5076ca,_0x53b879){return db[_0xcffd('0x44')][_0xcffd('0x4c')]()[_0xcffd('0x26')](respondWithResult(_0x53b879,null))[_0xcffd('0x46')](handleError(_0x53b879,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fab=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','FaxQueueReport','report_fax_queue','uniqueid','lodash','util','api'];(function(_0x4fd004,_0x203dae){var _0x580073=function(_0x3014a9){while(--_0x3014a9){_0x4fd004['push'](_0x4fd004['shift']());}};_0x580073(++_0x203dae);}(_0x5fab,0x177));var _0xb5fa=function(_0x185334,_0x4630ac){_0x185334=_0x185334-0x0;var _0xf2e59a=_0x5fab[_0x185334];return _0xf2e59a;};'use strict';var _=require(_0xb5fa('0x0'));var util=require(_0xb5fa('0x1'));var logger=require('../../config/logger')(_0xb5fa('0x2'));var moment=require(_0xb5fa('0x3'));var BPromise=require(_0xb5fa('0x4'));var rp=require(_0xb5fa('0x5'));var fs=require('fs');var path=require(_0xb5fa('0x6'));var rimraf=require(_0xb5fa('0x7'));var config=require(_0xb5fa('0x8'));var attributes=require(_0xb5fa('0x9'));module[_0xb5fa('0xa')]=function(_0x44df89,_0x4a0249){return _0x44df89['define'](_0xb5fa('0xb'),attributes,{'tableName':_0xb5fa('0xc'),'paranoid':![],'indexes':[{'name':_0xb5fa('0xd'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fab=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','FaxQueueReport','report_fax_queue','uniqueid','lodash','util','api'];(function(_0x4d0e59,_0x210d87){var _0x3be34a=function(_0x2ea258){while(--_0x2ea258){_0x4d0e59['push'](_0x4d0e59['shift']());}};_0x3be34a(++_0x210d87);}(_0x5fab,0x177));var _0xb5fa=function(_0x4f8ef6,_0x31607b){_0x4f8ef6=_0x4f8ef6-0x0;var _0x4f6880=_0x5fab[_0x4f8ef6];return _0x4f6880;};'use strict';var _=require(_0xb5fa('0x0'));var util=require(_0xb5fa('0x1'));var logger=require('../../config/logger')(_0xb5fa('0x2'));var moment=require(_0xb5fa('0x3'));var BPromise=require(_0xb5fa('0x4'));var rp=require(_0xb5fa('0x5'));var fs=require('fs');var path=require(_0xb5fa('0x6'));var rimraf=require(_0xb5fa('0x7'));var config=require(_0xb5fa('0x8'));var attributes=require(_0xb5fa('0x9'));module[_0xb5fa('0xa')]=function(_0x44df89,_0x4a0249){return _0x44df89['define'](_0xb5fa('0xb'),attributes,{'tableName':_0xb5fa('0xc'),'paranoid':![],'indexes':[{'name':_0xb5fa('0xd'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f5e=['../../config/environment','jayson/promise','client','request','then','info','FaxQueueReport,\x20%s,\x20%s','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','CreateFaxQueueReport','create','body','options','raw','UpdateFaxQueueReport','FaxQueueReport','update','where','attributes','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x3f5e,0xf9));var _0xe3f5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3f5e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xe3f5('0x0'));var util=require(_0xe3f5('0x1'));var moment=require(_0xe3f5('0x2'));var BPromise=require('bluebird');var rs=require(_0xe3f5('0x3'));var fs=require('fs');var Redis=require(_0xe3f5('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xe3f5('0x5'))(_0xe3f5('0x6'));var config=require(_0xe3f5('0x7'));var jayson=require(_0xe3f5('0x8'));var client=jayson[_0xe3f5('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x504381,_0xb4417,_0x1e672e){return new BPromise(function(_0x5d75f3,_0x228953){return client[_0xe3f5('0xa')](_0x504381,_0x1e672e)[_0xe3f5('0xb')](function(_0x436372){logger[_0xe3f5('0xc')](_0xe3f5('0xd'),_0xb4417,'request\x20sent');logger[_0xe3f5('0xe')](_0xe3f5('0xf'),_0xb4417,_0xe3f5('0x10'),JSON[_0xe3f5('0x11')](_0x436372));if(_0x436372[_0xe3f5('0x12')]){if(_0x436372[_0xe3f5('0x12')][_0xe3f5('0x13')]===0x1f4){logger['error']('FaxQueueReport,\x20%s,\x20%s',_0xb4417,_0x436372['error'][_0xe3f5('0x14')]);return _0x228953(_0x436372[_0xe3f5('0x12')][_0xe3f5('0x14')]);}logger[_0xe3f5('0x12')](_0xe3f5('0xd'),_0xb4417,_0x436372['error']['message']);return _0x5d75f3(_0x436372[_0xe3f5('0x12')][_0xe3f5('0x14')]);}else{logger[_0xe3f5('0xc')](_0xe3f5('0xd'),_0xb4417,_0xe3f5('0x10'));_0x5d75f3(_0x436372['result'][_0xe3f5('0x14')]);}})[_0xe3f5('0x15')](function(_0x2bb69c){logger[_0xe3f5('0x12')](_0xe3f5('0xd'),_0xb4417,_0x2bb69c);_0x228953(_0x2bb69c);});});}exports[_0xe3f5('0x16')]=function(_0x200169){var _0x13ffd6=this;return new Promise(function(_0x3cabcd,_0x3dbc33){return db['FaxQueueReport'][_0xe3f5('0x17')](_0x200169[_0xe3f5('0x18')],{'raw':_0x200169['options']?_0x200169[_0xe3f5('0x19')][_0xe3f5('0x1a')]===undefined?!![]:![]:!![]})[_0xe3f5('0xb')](function(_0x11a99e){logger[_0xe3f5('0xc')]('CreateFaxQueueReport',_0x200169);logger[_0xe3f5('0xe')]('CreateFaxQueueReport',_0x200169,JSON[_0xe3f5('0x11')](_0x11a99e));_0x3cabcd(_0x11a99e);})[_0xe3f5('0x15')](function(_0x1bd5b1){logger[_0xe3f5('0x12')](_0xe3f5('0x16'),_0x1bd5b1[_0xe3f5('0x14')],_0x200169);_0x3dbc33(_0x13ffd6['error'](0x1f4,_0x1bd5b1[_0xe3f5('0x14')]));});});};exports[_0xe3f5('0x1b')]=function(_0x2d0263){var _0x4f3c44=this;return new Promise(function(_0x1b3bd0,_0x223cfe){return db[_0xe3f5('0x1c')][_0xe3f5('0x1d')](_0x2d0263[_0xe3f5('0x18')],{'raw':_0x2d0263['options']?_0x2d0263[_0xe3f5('0x19')][_0xe3f5('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2d0263[_0xe3f5('0x19')]?_0x2d0263[_0xe3f5('0x19')][_0xe3f5('0x1e')]||null:null,'attributes':_0x2d0263['options']?_0x2d0263[_0xe3f5('0x19')][_0xe3f5('0x1f')]||null:null,'limit':_0x2d0263[_0xe3f5('0x19')]?_0x2d0263['options']['limit']||null:null})[_0xe3f5('0xb')](function(_0x1b872f){logger[_0xe3f5('0xc')](_0xe3f5('0x1b'),_0x2d0263);logger[_0xe3f5('0xe')](_0xe3f5('0x1b'),_0x2d0263,JSON[_0xe3f5('0x11')](_0x1b872f));_0x1b3bd0(_0x1b872f);})[_0xe3f5('0x15')](function(_0x45767f){logger['error'](_0xe3f5('0x1b'),_0x45767f['message'],_0x2d0263);_0x223cfe(_0x4f3c44[_0xe3f5('0x12')](0x1f4,_0x45767f[_0xe3f5('0x14')]));});});};
\ No newline at end of file
+var _0x44e8=['../../config/utils','../../config/logger','rpc','jayson/promise','http','request','info','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','body','options','raw','then','CreateFaxQueueReport','FaxQueueReport','update','limit','UpdateFaxQueueReport','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x52402d,_0x189832){var _0x4c1ca7=function(_0x5e77a6){while(--_0x5e77a6){_0x52402d['push'](_0x52402d['shift']());}};_0x4c1ca7(++_0x189832);}(_0x44e8,0x72));var _0x844e=function(_0x5eb0cc,_0x1afe5f){_0x5eb0cc=_0x5eb0cc-0x0;var _0xcfb3b9=_0x44e8[_0x5eb0cc];return _0xcfb3b9;};'use strict';var _=require(_0x844e('0x0'));var util=require('util');var moment=require(_0x844e('0x1'));var BPromise=require(_0x844e('0x2'));var rs=require(_0x844e('0x3'));var fs=require('fs');var Redis=require(_0x844e('0x4'));var db=require(_0x844e('0x5'))['db'];var utils=require(_0x844e('0x6'));var logger=require(_0x844e('0x7'))(_0x844e('0x8'));var config=require('../../config/environment');var jayson=require(_0x844e('0x9'));var client=jayson['client'][_0x844e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x28cf7c,_0x28397f,_0x337df9){return new BPromise(function(_0x147aa4,_0x8d8af8){return client[_0x844e('0xb')](_0x28cf7c,_0x337df9)['then'](function(_0x121d22){logger[_0x844e('0xc')](_0x844e('0xd'),_0x28397f,_0x844e('0xe'));logger[_0x844e('0xf')](_0x844e('0x10'),_0x28397f,_0x844e('0xe'),JSON[_0x844e('0x11')](_0x121d22));if(_0x121d22[_0x844e('0x12')]){if(_0x121d22[_0x844e('0x12')]['code']===0x1f4){logger[_0x844e('0x12')](_0x844e('0xd'),_0x28397f,_0x121d22[_0x844e('0x12')]['message']);return _0x8d8af8(_0x121d22[_0x844e('0x12')][_0x844e('0x13')]);}logger[_0x844e('0x12')](_0x844e('0xd'),_0x28397f,_0x121d22[_0x844e('0x12')][_0x844e('0x13')]);return _0x147aa4(_0x121d22[_0x844e('0x12')]['message']);}else{logger['info'](_0x844e('0xd'),_0x28397f,_0x844e('0xe'));_0x147aa4(_0x121d22['result'][_0x844e('0x13')]);}})[_0x844e('0x14')](function(_0x204532){logger[_0x844e('0x12')](_0x844e('0xd'),_0x28397f,_0x204532);_0x8d8af8(_0x204532);});});}exports['CreateFaxQueueReport']=function(_0x20428b){var _0x2d6857=this;return new Promise(function(_0x2ba31f,_0x31a9df){return db['FaxQueueReport']['create'](_0x20428b[_0x844e('0x15')],{'raw':_0x20428b['options']?_0x20428b[_0x844e('0x16')][_0x844e('0x17')]===undefined?!![]:![]:!![]})[_0x844e('0x18')](function(_0x5e91bb){logger[_0x844e('0xc')](_0x844e('0x19'),_0x20428b);logger[_0x844e('0xf')](_0x844e('0x19'),_0x20428b,JSON[_0x844e('0x11')](_0x5e91bb));_0x2ba31f(_0x5e91bb);})[_0x844e('0x14')](function(_0x40e79c){logger[_0x844e('0x12')](_0x844e('0x19'),_0x40e79c[_0x844e('0x13')],_0x20428b);_0x31a9df(_0x2d6857[_0x844e('0x12')](0x1f4,_0x40e79c[_0x844e('0x13')]));});});};exports['UpdateFaxQueueReport']=function(_0x299841){var _0x4d79a0=this;return new Promise(function(_0x5673ea,_0x3b0d6c){return db[_0x844e('0x1a')][_0x844e('0x1b')](_0x299841[_0x844e('0x15')],{'raw':_0x299841['options']?_0x299841[_0x844e('0x16')][_0x844e('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x299841[_0x844e('0x16')]?_0x299841[_0x844e('0x16')]['where']||null:null,'attributes':_0x299841[_0x844e('0x16')]?_0x299841[_0x844e('0x16')]['attributes']||null:null,'limit':_0x299841[_0x844e('0x16')]?_0x299841[_0x844e('0x16')][_0x844e('0x1c')]||null:null})[_0x844e('0x18')](function(_0x4ac2a4){logger[_0x844e('0xc')](_0x844e('0x1d'),_0x299841);logger[_0x844e('0xf')]('UpdateFaxQueueReport',_0x299841,JSON[_0x844e('0x11')](_0x4ac2a4));_0x5673ea(_0x4ac2a4);})[_0x844e('0x14')](function(_0x44a347){logger[_0x844e('0x12')]('UpdateFaxQueueReport',_0x44a347[_0x844e('0x13')],_0x299841);_0x3b0d6c(_0x4d79a0[_0x844e('0x12')](0x1f4,_0x44a347[_0x844e('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2578=['isAuthenticated','show','create','put','update','destroy','exports','multer','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','get','index','/describe','/:id'];(function(_0x326256,_0x5671bb){var _0x5c9209=function(_0x189f64){while(--_0x189f64){_0x326256['push'](_0x326256['shift']());}};_0x5c9209(++_0x5671bb);}(_0x2578,0x73));var _0x8257=function(_0x5c9de5,_0x4b958e){_0x5c9de5=_0x5c9de5-0x0;var _0x1edd6c=_0x2578[_0x5c9de5];return _0x1edd6c;};'use strict';var multer=require(_0x8257('0x0'));var util=require(_0x8257('0x1'));var path=require(_0x8257('0x2'));var timeout=require(_0x8257('0x3'));var express=require('express');var router=express[_0x8257('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x8257('0x5'));var config=require(_0x8257('0x6'));var controller=require('./faxQueueReport.controller');router[_0x8257('0x7')]('/',auth['isAuthenticated'](),controller[_0x8257('0x8')]);router['get'](_0x8257('0x9'),auth['isAuthenticated'](),controller['describe']);router[_0x8257('0x7')](_0x8257('0xa'),auth[_0x8257('0xb')](),controller[_0x8257('0xc')]);router['post']('/',auth[_0x8257('0xb')](),controller[_0x8257('0xd')]);router[_0x8257('0xe')](_0x8257('0xa'),auth[_0x8257('0xb')](),controller[_0x8257('0xf')]);router['delete'](_0x8257('0xa'),auth[_0x8257('0xb')](),controller[_0x8257('0x10')]);module[_0x8257('0x11')]=router;
\ No newline at end of file
+var _0x1c40=['/:id','show','update','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./faxQueueReport.controller','isAuthenticated','index','get','/describe','describe'];(function(_0x57c8a5,_0x5ed185){var _0x76df13=function(_0xda49f1){while(--_0xda49f1){_0x57c8a5['push'](_0x57c8a5['shift']());}};_0x76df13(++_0x5ed185);}(_0x1c40,0x17f));var _0x01c4=function(_0x1ac6ec,_0x1f81fc){_0x1ac6ec=_0x1ac6ec-0x0;var _0x48a489=_0x1c40[_0x1ac6ec];return _0x48a489;};'use strict';var multer=require(_0x01c4('0x0'));var util=require(_0x01c4('0x1'));var path=require('path');var timeout=require(_0x01c4('0x2'));var express=require(_0x01c4('0x3'));var router=express[_0x01c4('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x01c4('0x5'));var interaction=require(_0x01c4('0x6'));var config=require('../../config/environment');var controller=require(_0x01c4('0x7'));router['get']('/',auth[_0x01c4('0x8')](),controller[_0x01c4('0x9')]);router[_0x01c4('0xa')](_0x01c4('0xb'),auth['isAuthenticated'](),controller[_0x01c4('0xc')]);router[_0x01c4('0xa')](_0x01c4('0xd'),auth[_0x01c4('0x8')](),controller[_0x01c4('0xe')]);router['post']('/',auth[_0x01c4('0x8')](),controller['create']);router['put'](_0x01c4('0xd'),auth['isAuthenticated'](),controller[_0x01c4('0xf')]);router['delete']('/:id',auth[_0x01c4('0x8')](),controller[_0x01c4('0x10')]);module[_0x01c4('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9bde=['NOW','sequelize','STRING','account','agent','queue','DATE'];(function(_0x4d7379,_0x4b4e63){var _0x46d7cf=function(_0x53f5f0){while(--_0x53f5f0){_0x4d7379['push'](_0x4d7379['shift']());}};_0x46d7cf(++_0x4b4e63);}(_0x9bde,0xe1));var _0xe9bd=function(_0x8f1087,_0x2bf8a3){_0x8f1087=_0x8f1087-0x0;var _0x32abb7=_0x9bde[_0x8f1087];return _0x32abb7;};'use strict';var moment=require('moment');var Sequelize=require(_0xe9bd('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0xe9bd('0x1')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xe9bd('0x2'),_0xe9bd('0x3'),_0xe9bd('0x4')),'allowNull':![],'defaultValue':_0xe9bd('0x4')},'transferredAt':{'type':Sequelize[_0xe9bd('0x5')],'allowNull':![],'defaultValue':Sequelize[_0xe9bd('0x6')]}};
\ No newline at end of file
+var _0xf3cd=['exports','STRING','ENUM','account','queue','DATE','moment','sequelize'];(function(_0x3888d6,_0x2ccd33){var _0x1ab2c6=function(_0x1b4494){while(--_0x1b4494){_0x3888d6['push'](_0x3888d6['shift']());}};_0x1ab2c6(++_0x2ccd33);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x220dbb,_0x99328d){_0x220dbb=_0x220dbb-0x0;var _0x2b77de=_0xf3cd[_0x220dbb];return _0x2b77de;};'use strict';var moment=require(_0xdf3c('0x0'));var Sequelize=require(_0xdf3c('0x1'));module[_0xdf3c('0x2')]={'uniqueid':{'type':Sequelize[_0xdf3c('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xdf3c('0x4')](_0xdf3c('0x5'),'agent',_0xdf3c('0x6')),'allowNull':![],'defaultValue':_0xdf3c('0x6')},'transferredAt':{'type':Sequelize[_0xdf3c('0x7')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x242b=['params','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','end','error','stack','name','send','index','map','FaxTransferReport','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show'];(function(_0x261522,_0x1adc1f){var _0x98a25a=function(_0x1b0f9c){while(--_0x1b0f9c){_0x261522['push'](_0x261522['shift']());}};_0x98a25a(++_0x1adc1f);}(_0x242b,0x1bb));var _0xb242=function(_0x48b31b,_0x2ae165){_0x48b31b=_0x48b31b-0x0;var _0x565432=_0x242b[_0x48b31b];return _0x565432;};'use strict';var emlformat=require(_0xb242('0x0'));var rimraf=require(_0xb242('0x1'));var zipdir=require(_0xb242('0x2'));var jsonpatch=require(_0xb242('0x3'));var rp=require(_0xb242('0x4'));var moment=require(_0xb242('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xb242('0x6'));var util=require(_0xb242('0x7'));var path=require(_0xb242('0x8'));var sox=require('sox');var csv=require(_0xb242('0x9'));var ejs=require(_0xb242('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb242('0xb'));var crypto=require(_0xb242('0xc'));var jsforce=require(_0xb242('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xb242('0x9'));var querystring=require(_0xb242('0xe'));var Papa=require(_0xb242('0xf'));var Redis=require('ioredis');var authService=require(_0xb242('0x10'));var qs=require(_0xb242('0x11'));var as=require(_0xb242('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb242('0x13'));var utils=require(_0xb242('0x14'));var config=require(_0xb242('0x15'));var licenseUtil=require(_0xb242('0x16'));var db=require(_0xb242('0x17'))['db'];function respondWithStatusCode(_0x5c852a,_0xe9e701){_0xe9e701=_0xe9e701||0xcc;return function(_0x3d641a){if(_0x3d641a){return _0x5c852a[_0xb242('0x18')](_0xe9e701);}return _0x5c852a[_0xb242('0x19')](_0xe9e701)['end']();};}function respondWithResult(_0x3af713,_0x538a59){_0x538a59=_0x538a59||0xc8;return function(_0x10f32f){if(_0x10f32f){return _0x3af713[_0xb242('0x19')](_0x538a59)[_0xb242('0x1a')](_0x10f32f);}};}function respondWithFilteredResult(_0x240128,_0x36d209){return function(_0x19722){if(_0x19722){var _0x34aa45=typeof _0x36d209[_0xb242('0x1b')]===_0xb242('0x1c')&&typeof _0x36d209[_0xb242('0x1d')]===_0xb242('0x1c');var _0x352b8d=_0x19722[_0xb242('0x1e')];var _0x140e2e=_0x34aa45?0x0:_0x36d209[_0xb242('0x1b')];var _0x18152c=_0x34aa45?_0x19722[_0xb242('0x1e')]:_0x36d209[_0xb242('0x1b')]+_0x36d209[_0xb242('0x1d')];var _0x713f9b;if(_0x18152c>=_0x352b8d){_0x18152c=_0x352b8d;_0x713f9b=0xc8;}else{_0x713f9b=0xce;}_0x240128[_0xb242('0x19')](_0x713f9b);return _0x240128[_0xb242('0x1f')](_0xb242('0x20'),_0x140e2e+'-'+_0x18152c+'/'+_0x352b8d)[_0xb242('0x1a')](_0x19722);}return null;};}function patchUpdates(_0x44129f){return function(_0x164745){try{jsonpatch['apply'](_0x164745,_0x44129f,!![]);}catch(_0x1a5284){return BPromise[_0xb242('0x21')](_0x1a5284);}return _0x164745['save']();};}function saveUpdates(_0x1afdff,_0x43010a){return function(_0x462cdf){if(_0x462cdf){return _0x462cdf[_0xb242('0x22')](_0x1afdff)[_0xb242('0x23')](function(_0x3223f1){return _0x3223f1;});}return null;};}function removeEntity(_0x457254,_0x2958b5){return function(_0x4b7b8e){if(_0x4b7b8e){return _0x4b7b8e['destroy']()[_0xb242('0x23')](function(){_0x457254[_0xb242('0x19')](0xcc)[_0xb242('0x24')]();});}};}function handleEntityNotFound(_0x3818b0,_0x3756ee){return function(_0x1c4c65){if(!_0x1c4c65){_0x3818b0[_0xb242('0x18')](0x194);}return _0x1c4c65;};}function handleError(_0x504fad,_0x4d0457){_0x4d0457=_0x4d0457||0x1f4;return function(_0x5a4bf8){logger[_0xb242('0x25')](_0x5a4bf8[_0xb242('0x26')]);if(_0x5a4bf8[_0xb242('0x27')]){delete _0x5a4bf8[_0xb242('0x27')];}_0x504fad[_0xb242('0x19')](_0x4d0457)[_0xb242('0x28')](_0x5a4bf8);};}exports[_0xb242('0x29')]=function(_0x1ab36a,_0x2a6f3d){var _0x4332d9={},_0x370c15={},_0x50dcf={'count':0x0,'rows':[]};var _0x56023e=_[_0xb242('0x2a')](db[_0xb242('0x2b')]['rawAttributes'],function(_0x550e1a){return{'name':_0x550e1a['fieldName'],'type':_0x550e1a[_0xb242('0x2c')][_0xb242('0x2d')]};});_0x370c15[_0xb242('0x2e')]=_[_0xb242('0x2a')](_0x56023e,_0xb242('0x27'));_0x370c15['query']=_[_0xb242('0x2f')](_0x1ab36a[_0xb242('0x30')]);_0x370c15[_0xb242('0x31')]=_[_0xb242('0x32')](_0x370c15[_0xb242('0x2e')],_0x370c15[_0xb242('0x30')]);_0x4332d9[_0xb242('0x33')]=_[_0xb242('0x32')](_0x370c15[_0xb242('0x2e')],qs[_0xb242('0x34')](_0x1ab36a[_0xb242('0x30')]['fields']));_0x4332d9['attributes']=_0x4332d9[_0xb242('0x33')][_0xb242('0x35')]?_0x4332d9[_0xb242('0x33')]:_0x370c15['model'];if(!_0x1ab36a['query'][_0xb242('0x36')](_0xb242('0x37'))){_0x4332d9[_0xb242('0x1d')]=qs['limit'](_0x1ab36a[_0xb242('0x30')][_0xb242('0x1d')]);_0x4332d9[_0xb242('0x1b')]=qs[_0xb242('0x1b')](_0x1ab36a[_0xb242('0x30')][_0xb242('0x1b')]);}_0x4332d9[_0xb242('0x38')]=qs[_0xb242('0x39')](_0x1ab36a[_0xb242('0x30')][_0xb242('0x39')]);_0x4332d9[_0xb242('0x3a')]=qs[_0xb242('0x31')](_['pick'](_0x1ab36a[_0xb242('0x30')],_0x370c15[_0xb242('0x31')]),_0x56023e);if(_0x1ab36a[_0xb242('0x30')]['filter']){_0x4332d9[_0xb242('0x3a')]=_[_0xb242('0x3b')](_0x4332d9[_0xb242('0x3a')],{'$or':_[_0xb242('0x2a')](_0x56023e,function(_0x578719){if(_0x578719[_0xb242('0x2c')]!==_0xb242('0x3c')){var _0x12697f={};_0x12697f[_0x578719['name']]={'$like':'%'+_0x1ab36a[_0xb242('0x30')][_0xb242('0x3d')]+'%'};return _0x12697f;}})});}_0x4332d9=_['merge']({},_0x4332d9,_0x1ab36a[_0xb242('0x3e')]);var _0x1d713d={'where':_0x4332d9['where']};return db['FaxTransferReport']['count'](_0x1d713d)['then'](function(_0x422699){_0x50dcf['count']=_0x422699;if(_0x1ab36a[_0xb242('0x30')][_0xb242('0x3f')]){_0x4332d9[_0xb242('0x40')]=[{'all':!![]}];}return db[_0xb242('0x2b')][_0xb242('0x41')](_0x4332d9);})['then'](function(_0xefac2a){_0x50dcf['rows']=_0xefac2a;return _0x50dcf;})['then'](respondWithFilteredResult(_0x2a6f3d,_0x4332d9))[_0xb242('0x42')](handleError(_0x2a6f3d,null));};exports[_0xb242('0x43')]=function(_0x59ebda,_0x254366){var _0x5bb05c={'raw':!![],'where':{'id':_0x59ebda[_0xb242('0x44')]['id']}},_0x19d5f6={};_0x19d5f6[_0xb242('0x2e')]=_[_0xb242('0x2f')](db[_0xb242('0x2b')]['rawAttributes']);_0x19d5f6[_0xb242('0x30')]=_[_0xb242('0x2f')](_0x59ebda[_0xb242('0x30')]);_0x19d5f6[_0xb242('0x31')]=_[_0xb242('0x32')](_0x19d5f6[_0xb242('0x2e')],_0x19d5f6[_0xb242('0x30')]);_0x5bb05c[_0xb242('0x33')]=_['intersection'](_0x19d5f6[_0xb242('0x2e')],qs[_0xb242('0x34')](_0x59ebda['query'][_0xb242('0x34')]));_0x5bb05c[_0xb242('0x33')]=_0x5bb05c[_0xb242('0x33')][_0xb242('0x35')]?_0x5bb05c['attributes']:_0x19d5f6[_0xb242('0x2e')];if(_0x59ebda['query']['includeAll']){_0x5bb05c['include']=[{'all':!![]}];}_0x5bb05c=_[_0xb242('0x3b')]({},_0x5bb05c,_0x59ebda['options']);return db[_0xb242('0x2b')][_0xb242('0x45')](_0x5bb05c)[_0xb242('0x23')](handleEntityNotFound(_0x254366,null))['then'](respondWithResult(_0x254366,null))[_0xb242('0x42')](handleError(_0x254366,null));};exports['create']=function(_0x2385de,_0x1b3ab0){return db[_0xb242('0x2b')][_0xb242('0x46')](_0x2385de[_0xb242('0x47')],{})[_0xb242('0x23')](respondWithResult(_0x1b3ab0,0xc9))[_0xb242('0x42')](handleError(_0x1b3ab0,null));};exports[_0xb242('0x22')]=function(_0x29be69,_0x571443){if(_0x29be69[_0xb242('0x47')]['id']){delete _0x29be69['body']['id'];}return db[_0xb242('0x2b')][_0xb242('0x45')]({'where':{'id':_0x29be69[_0xb242('0x44')]['id']}})[_0xb242('0x23')](handleEntityNotFound(_0x571443,null))[_0xb242('0x23')](saveUpdates(_0x29be69[_0xb242('0x47')],null))[_0xb242('0x23')](respondWithResult(_0x571443,null))[_0xb242('0x42')](handleError(_0x571443,null));};exports['destroy']=function(_0x1b9073,_0x5be739){return db[_0xb242('0x2b')][_0xb242('0x45')]({'where':{'id':_0x1b9073[_0xb242('0x44')]['id']}})[_0xb242('0x23')](handleEntityNotFound(_0x5be739,null))[_0xb242('0x23')](removeEntity(_0x5be739,null))[_0xb242('0x42')](handleError(_0x5be739,null));};exports['describe']=function(_0x22ef52,_0x39dc5e){return db[_0xb242('0x2b')][_0xb242('0x48')]()[_0xb242('0x23')](respondWithResult(_0x39dc5e,null))['catch'](handleError(_0x39dc5e,null));};
\ No newline at end of file
+var _0x2aa8=['show','params','options','find','catch','body','destroy','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','sendStatus','error','stack','name','send','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','map','VIRTUAL','filter','FaxTransferReport','includeAll','include','findAll','rows'];(function(_0x5b5947,_0x11623c){var _0x7623e0=function(_0x40d10e){while(--_0x40d10e){_0x5b5947['push'](_0x5b5947['shift']());}};_0x7623e0(++_0x11623c);}(_0x2aa8,0x1ca));var _0x82aa=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x2aa8[_0x59ee6f];return _0x4c0979;};'use strict';var emlformat=require(_0x82aa('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x82aa('0x1'));var jsonpatch=require(_0x82aa('0x2'));var rp=require(_0x82aa('0x3'));var moment=require(_0x82aa('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x82aa('0x5'));var util=require(_0x82aa('0x6'));var path=require(_0x82aa('0x7'));var sox=require(_0x82aa('0x8'));var csv=require(_0x82aa('0x9'));var ejs=require(_0x82aa('0xa'));var fs=require('fs');var fs_extra=require(_0x82aa('0xb'));var _=require('lodash');var squel=require(_0x82aa('0xc'));var crypto=require(_0x82aa('0xd'));var jsforce=require(_0x82aa('0xe'));var deskjs=require(_0x82aa('0xf'));var toCsv=require(_0x82aa('0x9'));var querystring=require(_0x82aa('0x10'));var Papa=require('papaparse');var Redis=require(_0x82aa('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x82aa('0x12'));var as=require(_0x82aa('0x13'));var hardwareService=require(_0x82aa('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x82aa('0x15'));var db=require(_0x82aa('0x16'))['db'];function respondWithStatusCode(_0x71e209,_0xd12f2e){_0xd12f2e=_0xd12f2e||0xcc;return function(_0x41201d){if(_0x41201d){return _0x71e209['sendStatus'](_0xd12f2e);}return _0x71e209[_0x82aa('0x17')](_0xd12f2e)[_0x82aa('0x18')]();};}function respondWithResult(_0x1ef907,_0x35fe9a){_0x35fe9a=_0x35fe9a||0xc8;return function(_0x14a6a0){if(_0x14a6a0){return _0x1ef907['status'](_0x35fe9a)['json'](_0x14a6a0);}};}function respondWithFilteredResult(_0x5d926c,_0x53ddcc){return function(_0x5478aa){if(_0x5478aa){var _0x4f9943=typeof _0x53ddcc[_0x82aa('0x19')]===_0x82aa('0x1a')&&typeof _0x53ddcc[_0x82aa('0x1b')]===_0x82aa('0x1a');var _0x468ddd=_0x5478aa[_0x82aa('0x1c')];var _0x3443c1=_0x4f9943?0x0:_0x53ddcc['offset'];var _0x1e12d6=_0x4f9943?_0x5478aa[_0x82aa('0x1c')]:_0x53ddcc[_0x82aa('0x19')]+_0x53ddcc[_0x82aa('0x1b')];var _0x3302cf;if(_0x1e12d6>=_0x468ddd){_0x1e12d6=_0x468ddd;_0x3302cf=0xc8;}else{_0x3302cf=0xce;}_0x5d926c[_0x82aa('0x17')](_0x3302cf);return _0x5d926c[_0x82aa('0x1d')](_0x82aa('0x1e'),_0x3443c1+'-'+_0x1e12d6+'/'+_0x468ddd)['json'](_0x5478aa);}return null;};}function patchUpdates(_0x55719b){return function(_0x20f0d5){try{jsonpatch[_0x82aa('0x1f')](_0x20f0d5,_0x55719b,!![]);}catch(_0x48e171){return BPromise[_0x82aa('0x20')](_0x48e171);}return _0x20f0d5['save']();};}function saveUpdates(_0x25aa88,_0x358e7c){return function(_0x1b9a3e){if(_0x1b9a3e){return _0x1b9a3e[_0x82aa('0x21')](_0x25aa88)[_0x82aa('0x22')](function(_0x59b3e3){return _0x59b3e3;});}return null;};}function removeEntity(_0x40cd6f,_0x50c15f){return function(_0x48032f){if(_0x48032f){return _0x48032f['destroy']()['then'](function(){_0x40cd6f[_0x82aa('0x17')](0xcc)[_0x82aa('0x18')]();});}};}function handleEntityNotFound(_0x19b5f3,_0x57e26e){return function(_0x490893){if(!_0x490893){_0x19b5f3[_0x82aa('0x23')](0x194);}return _0x490893;};}function handleError(_0x9e6843,_0x446c50){_0x446c50=_0x446c50||0x1f4;return function(_0x3378aa){logger[_0x82aa('0x24')](_0x3378aa[_0x82aa('0x25')]);if(_0x3378aa[_0x82aa('0x26')]){delete _0x3378aa[_0x82aa('0x26')];}_0x9e6843[_0x82aa('0x17')](_0x446c50)[_0x82aa('0x27')](_0x3378aa);};}exports['index']=function(_0x2aa575,_0x5dab6c){var _0x4ae4de={},_0x5d492f={},_0x2d4dd8={'count':0x0,'rows':[]};var _0x274e4f=_['map'](db['FaxTransferReport'][_0x82aa('0x28')],function(_0x598dc5){return{'name':_0x598dc5[_0x82aa('0x29')],'type':_0x598dc5[_0x82aa('0x2a')][_0x82aa('0x2b')]};});_0x5d492f['model']=_['map'](_0x274e4f,'name');_0x5d492f[_0x82aa('0x2c')]=_[_0x82aa('0x2d')](_0x2aa575[_0x82aa('0x2c')]);_0x5d492f[_0x82aa('0x2e')]=_[_0x82aa('0x2f')](_0x5d492f[_0x82aa('0x30')],_0x5d492f[_0x82aa('0x2c')]);_0x4ae4de[_0x82aa('0x31')]=_['intersection'](_0x5d492f['model'],qs[_0x82aa('0x32')](_0x2aa575[_0x82aa('0x2c')]['fields']));_0x4ae4de['attributes']=_0x4ae4de[_0x82aa('0x31')][_0x82aa('0x33')]?_0x4ae4de[_0x82aa('0x31')]:_0x5d492f[_0x82aa('0x30')];if(!_0x2aa575['query'][_0x82aa('0x34')](_0x82aa('0x35'))){_0x4ae4de[_0x82aa('0x1b')]=qs['limit'](_0x2aa575['query'][_0x82aa('0x1b')]);_0x4ae4de[_0x82aa('0x19')]=qs['offset'](_0x2aa575['query']['offset']);}_0x4ae4de[_0x82aa('0x36')]=qs[_0x82aa('0x37')](_0x2aa575['query'][_0x82aa('0x37')]);_0x4ae4de[_0x82aa('0x38')]=qs[_0x82aa('0x2e')](_[_0x82aa('0x39')](_0x2aa575[_0x82aa('0x2c')],_0x5d492f[_0x82aa('0x2e')]),_0x274e4f);if(_0x2aa575[_0x82aa('0x2c')]['filter']){_0x4ae4de['where']=_[_0x82aa('0x3a')](_0x4ae4de[_0x82aa('0x38')],{'$or':_[_0x82aa('0x3b')](_0x274e4f,function(_0x21ccc2){if(_0x21ccc2[_0x82aa('0x2a')]!==_0x82aa('0x3c')){var _0x431c34={};_0x431c34[_0x21ccc2[_0x82aa('0x26')]]={'$like':'%'+_0x2aa575[_0x82aa('0x2c')][_0x82aa('0x3d')]+'%'};return _0x431c34;}})});}_0x4ae4de=_[_0x82aa('0x3a')]({},_0x4ae4de,_0x2aa575['options']);var _0xb133d0={'where':_0x4ae4de[_0x82aa('0x38')]};return db[_0x82aa('0x3e')][_0x82aa('0x1c')](_0xb133d0)['then'](function(_0x4c697f){_0x2d4dd8[_0x82aa('0x1c')]=_0x4c697f;if(_0x2aa575[_0x82aa('0x2c')][_0x82aa('0x3f')]){_0x4ae4de[_0x82aa('0x40')]=[{'all':!![]}];}return db[_0x82aa('0x3e')][_0x82aa('0x41')](_0x4ae4de);})[_0x82aa('0x22')](function(_0x5d8537){_0x2d4dd8[_0x82aa('0x42')]=_0x5d8537;return _0x2d4dd8;})[_0x82aa('0x22')](respondWithFilteredResult(_0x5dab6c,_0x4ae4de))['catch'](handleError(_0x5dab6c,null));};exports[_0x82aa('0x43')]=function(_0x3eba60,_0x10a40b){var _0x5896ef={'raw':!![],'where':{'id':_0x3eba60[_0x82aa('0x44')]['id']}},_0x4299e4={};_0x4299e4[_0x82aa('0x30')]=_[_0x82aa('0x2d')](db[_0x82aa('0x3e')][_0x82aa('0x28')]);_0x4299e4[_0x82aa('0x2c')]=_[_0x82aa('0x2d')](_0x3eba60[_0x82aa('0x2c')]);_0x4299e4[_0x82aa('0x2e')]=_[_0x82aa('0x2f')](_0x4299e4[_0x82aa('0x30')],_0x4299e4[_0x82aa('0x2c')]);_0x5896ef[_0x82aa('0x31')]=_[_0x82aa('0x2f')](_0x4299e4[_0x82aa('0x30')],qs[_0x82aa('0x32')](_0x3eba60[_0x82aa('0x2c')][_0x82aa('0x32')]));_0x5896ef[_0x82aa('0x31')]=_0x5896ef[_0x82aa('0x31')][_0x82aa('0x33')]?_0x5896ef[_0x82aa('0x31')]:_0x4299e4[_0x82aa('0x30')];if(_0x3eba60[_0x82aa('0x2c')]['includeAll']){_0x5896ef[_0x82aa('0x40')]=[{'all':!![]}];}_0x5896ef=_[_0x82aa('0x3a')]({},_0x5896ef,_0x3eba60[_0x82aa('0x45')]);return db[_0x82aa('0x3e')][_0x82aa('0x46')](_0x5896ef)['then'](handleEntityNotFound(_0x10a40b,null))['then'](respondWithResult(_0x10a40b,null))[_0x82aa('0x47')](handleError(_0x10a40b,null));};exports['create']=function(_0x4523d7,_0x516dfc){return db['FaxTransferReport']['create'](_0x4523d7[_0x82aa('0x48')],{})['then'](respondWithResult(_0x516dfc,0xc9))['catch'](handleError(_0x516dfc,null));};exports[_0x82aa('0x21')]=function(_0x444865,_0x47fe4d){if(_0x444865[_0x82aa('0x48')]['id']){delete _0x444865[_0x82aa('0x48')]['id'];}return db[_0x82aa('0x3e')][_0x82aa('0x46')]({'where':{'id':_0x444865[_0x82aa('0x44')]['id']}})['then'](handleEntityNotFound(_0x47fe4d,null))[_0x82aa('0x22')](saveUpdates(_0x444865[_0x82aa('0x48')],null))[_0x82aa('0x22')](respondWithResult(_0x47fe4d,null))[_0x82aa('0x47')](handleError(_0x47fe4d,null));};exports[_0x82aa('0x49')]=function(_0x468338,_0x3d483a){return db[_0x82aa('0x3e')][_0x82aa('0x46')]({'where':{'id':_0x468338[_0x82aa('0x44')]['id']}})[_0x82aa('0x22')](handleEntityNotFound(_0x3d483a,null))['then'](removeEntity(_0x3d483a,null))['catch'](handleError(_0x3d483a,null));};exports[_0x82aa('0x4a')]=function(_0x1b2353,_0x4d96f9){return db[_0x82aa('0x3e')][_0x82aa('0x4a')]()['then'](respondWithResult(_0x4d96f9,null))[_0x82aa('0x47')](handleError(_0x4d96f9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdca2=['uniqueid','lodash','../../config/logger','moment','request-promise','path','../../config/environment','exports','FaxTransferReport'];(function(_0xa1f655,_0x5056af){var _0x11aaaa=function(_0x353928){while(--_0x353928){_0xa1f655['push'](_0xa1f655['shift']());}};_0x11aaaa(++_0x5056af);}(_0xdca2,0xfd));var _0x2dca=function(_0xaa1b3e,_0x47d976){_0xaa1b3e=_0xaa1b3e-0x0;var _0x454d7d=_0xdca2[_0xaa1b3e];return _0x454d7d;};'use strict';var _=require(_0x2dca('0x0'));var util=require('util');var logger=require(_0x2dca('0x1'))('api');var moment=require(_0x2dca('0x2'));var BPromise=require('bluebird');var rp=require(_0x2dca('0x3'));var fs=require('fs');var path=require(_0x2dca('0x4'));var rimraf=require('rimraf');var config=require(_0x2dca('0x5'));var attributes=require('./faxTransferReport.attributes');module[_0x2dca('0x6')]=function(_0x473b0b,_0x53e2ac){return _0x473b0b['define'](_0x2dca('0x7'),attributes,{'tableName':'report_fax_transfer','paranoid':![],'indexes':[{'name':_0x2dca('0x8'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xd94d=['define','report_fax_transfer','uniqueid','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./faxTransferReport.attributes','exports'];(function(_0x582f98,_0x1cc3ab){var _0x5ebca2=function(_0x30ddcf){while(--_0x30ddcf){_0x582f98['push'](_0x582f98['shift']());}};_0x5ebca2(++_0x1cc3ab);}(_0xd94d,0x16f));var _0xdd94=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xd94d[_0x2641f9];return _0x585741;};'use strict';var _=require('lodash');var util=require(_0xdd94('0x0'));var logger=require(_0xdd94('0x1'))(_0xdd94('0x2'));var moment=require('moment');var BPromise=require(_0xdd94('0x3'));var rp=require(_0xdd94('0x4'));var fs=require('fs');var path=require(_0xdd94('0x5'));var rimraf=require(_0xdd94('0x6'));var config=require(_0xdd94('0x7'));var attributes=require(_0xdd94('0x8'));module[_0xdd94('0x9')]=function(_0x580c88,_0x1fd8a8){return _0x580c88[_0xdd94('0xa')]('FaxTransferReport',attributes,{'tableName':_0xdd94('0xb'),'paranoid':![],'indexes':[{'name':_0xdd94('0xc'),'fields':[_0xdd94('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadc5=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','then','info','FaxTransferReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','lodash'];(function(_0x4eda24,_0x407afa){var _0x5300cf=function(_0x3b3e6f){while(--_0x3b3e6f){_0x4eda24['push'](_0x4eda24['shift']());}};_0x5300cf(++_0x407afa);}(_0xadc5,0x1b7));var _0x5adc=function(_0x5149c9,_0x5e7788){_0x5149c9=_0x5149c9-0x0;var _0x4d50e9=_0xadc5[_0x5149c9];return _0x4d50e9;};'use strict';var _=require(_0x5adc('0x0'));var util=require(_0x5adc('0x1'));var moment=require(_0x5adc('0x2'));var BPromise=require('bluebird');var rs=require(_0x5adc('0x3'));var fs=require('fs');var Redis=require(_0x5adc('0x4'));var db=require(_0x5adc('0x5'))['db'];var utils=require(_0x5adc('0x6'));var logger=require(_0x5adc('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x5adc('0x8'));var client=jayson['client'][_0x5adc('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2fb2b6,_0x479898,_0x547374){return new BPromise(function(_0x4d905d,_0x31d2f8){return client['request'](_0x2fb2b6,_0x547374)[_0x5adc('0xa')](function(_0x1b7c39){logger[_0x5adc('0xb')](_0x5adc('0xc'),_0x479898,_0x5adc('0xd'));logger[_0x5adc('0xe')]('FaxTransferReport,\x20%s,\x20%s,\x20%s',_0x479898,_0x5adc('0xd'),JSON[_0x5adc('0xf')](_0x1b7c39));if(_0x1b7c39[_0x5adc('0x10')]){if(_0x1b7c39[_0x5adc('0x10')]['code']===0x1f4){logger[_0x5adc('0x10')]('FaxTransferReport,\x20%s,\x20%s',_0x479898,_0x1b7c39[_0x5adc('0x10')]['message']);return _0x31d2f8(_0x1b7c39[_0x5adc('0x10')]['message']);}logger[_0x5adc('0x10')](_0x5adc('0xc'),_0x479898,_0x1b7c39['error'][_0x5adc('0x11')]);return _0x4d905d(_0x1b7c39['error'][_0x5adc('0x11')]);}else{logger[_0x5adc('0xb')](_0x5adc('0xc'),_0x479898,_0x5adc('0xd'));_0x4d905d(_0x1b7c39[_0x5adc('0x12')][_0x5adc('0x11')]);}})[_0x5adc('0x13')](function(_0x1b0aeb){logger['error'](_0x5adc('0xc'),_0x479898,_0x1b0aeb);_0x31d2f8(_0x1b0aeb);});});}
\ No newline at end of file
+var _0xc1f6=['FaxTransferReport,\x20%s,\x20%s','request\x20sent','debug','FaxTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','info','result','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xc1f6,0x1d7));var _0x6c1f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc1f6[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x6c1f('0x0'));var util=require(_0x6c1f('0x1'));var moment=require('moment');var BPromise=require(_0x6c1f('0x2'));var rs=require(_0x6c1f('0x3'));var fs=require('fs');var Redis=require(_0x6c1f('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x6c1f('0x5'));var logger=require(_0x6c1f('0x6'))(_0x6c1f('0x7'));var config=require(_0x6c1f('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x6c1f('0x9')][_0x6c1f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2fbf2d,_0x203593,_0x59f7d2){return new BPromise(function(_0x1fdae2,_0x36d0dd){return client['request'](_0x2fbf2d,_0x59f7d2)[_0x6c1f('0xb')](function(_0x3fc486){logger['info'](_0x6c1f('0xc'),_0x203593,_0x6c1f('0xd'));logger[_0x6c1f('0xe')](_0x6c1f('0xf'),_0x203593,_0x6c1f('0xd'),JSON[_0x6c1f('0x10')](_0x3fc486));if(_0x3fc486[_0x6c1f('0x11')]){if(_0x3fc486[_0x6c1f('0x11')][_0x6c1f('0x12')]===0x1f4){logger[_0x6c1f('0x11')](_0x6c1f('0xc'),_0x203593,_0x3fc486[_0x6c1f('0x11')]['message']);return _0x36d0dd(_0x3fc486[_0x6c1f('0x11')]['message']);}logger[_0x6c1f('0x11')](_0x6c1f('0xc'),_0x203593,_0x3fc486[_0x6c1f('0x11')]['message']);return _0x1fdae2(_0x3fc486[_0x6c1f('0x11')]['message']);}else{logger[_0x6c1f('0x13')](_0x6c1f('0xc'),_0x203593,_0x6c1f('0xd'));_0x1fdae2(_0x3fc486[_0x6c1f('0x14')]['message']);}})['catch'](function(_0x1cab20){logger[_0x6c1f('0x11')](_0x6c1f('0xc'),_0x203593,_0x1cab20);_0x36d0dd(_0x1cab20);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x033e=['express','../../components/auth/service','../../config/environment','./faxTransferReport.controller','get','isAuthenticated','index','describe','/:id','show','post','create','update','delete','destroy','multer','path','connect-timeout'];(function(_0x4521e3,_0x10a8a4){var _0x46a272=function(_0x2f4c64){while(--_0x2f4c64){_0x4521e3['push'](_0x4521e3['shift']());}};_0x46a272(++_0x10a8a4);}(_0x033e,0xf9));var _0xe033=function(_0x34df55,_0x35e243){_0x34df55=_0x34df55-0x0;var _0x211a92=_0x033e[_0x34df55];return _0x211a92;};'use strict';var multer=require(_0xe033('0x0'));var util=require('util');var path=require(_0xe033('0x1'));var timeout=require(_0xe033('0x2'));var express=require(_0xe033('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xe033('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xe033('0x5'));var controller=require(_0xe033('0x6'));router[_0xe033('0x7')]('/',auth[_0xe033('0x8')](),controller[_0xe033('0x9')]);router['get']('/describe',auth[_0xe033('0x8')](),controller[_0xe033('0xa')]);router[_0xe033('0x7')](_0xe033('0xb'),auth[_0xe033('0x8')](),controller[_0xe033('0xc')]);router[_0xe033('0xd')]('/',auth[_0xe033('0x8')](),controller[_0xe033('0xe')]);router['put'](_0xe033('0xb'),auth[_0xe033('0x8')](),controller[_0xe033('0xf')]);router[_0xe033('0x10')](_0xe033('0xb'),auth[_0xe033('0x8')](),controller[_0xe033('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x7af2=['get','/describe','isAuthenticated','describe','/:id','post','create','put','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','index'];(function(_0x56c9d4,_0x2bebe4){var _0x564df7=function(_0x19c2bc){while(--_0x19c2bc){_0x56c9d4['push'](_0x56c9d4['shift']());}};_0x564df7(++_0x2bebe4);}(_0x7af2,0x1d7));var _0x27af=function(_0x9b3589,_0x4726ef){_0x9b3589=_0x9b3589-0x0;var _0x1cb999=_0x7af2[_0x9b3589];return _0x1cb999;};'use strict';var multer=require(_0x27af('0x0'));var util=require(_0x27af('0x1'));var path=require(_0x27af('0x2'));var timeout=require(_0x27af('0x3'));var express=require(_0x27af('0x4'));var router=express[_0x27af('0x5')]();var fs_extra=require(_0x27af('0x6'));var auth=require(_0x27af('0x7'));var interaction=require(_0x27af('0x8'));var config=require(_0x27af('0x9'));var controller=require(_0x27af('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x27af('0xb')]);router[_0x27af('0xc')](_0x27af('0xd'),auth[_0x27af('0xe')](),controller[_0x27af('0xf')]);router[_0x27af('0xc')](_0x27af('0x10'),auth[_0x27af('0xe')](),controller['show']);router[_0x27af('0x11')]('/',auth[_0x27af('0xe')](),controller[_0x27af('0x12')]);router[_0x27af('0x13')](_0x27af('0x10'),auth[_0x27af('0xe')](),controller['update']);router[_0x27af('0x14')]('/:id',auth[_0x27af('0xe')](),controller[_0x27af('0x15')]);module[_0x27af('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1bc=['index','show','/:id/configurations','getConfigurations','/:id/fields','getFields','create','addConfiguration','put','/:id','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated'];(function(_0x33fc8d,_0x358809){var _0x28d830=function(_0x4897d3){while(--_0x4897d3){_0x33fc8d['push'](_0x33fc8d['shift']());}};_0x28d830(++_0x358809);}(_0xa1bc,0x138));var _0xca1b=function(_0x48ad42,_0x5e073d){_0x48ad42=_0x48ad42-0x0;var _0x8b8b2a=_0xa1bc[_0x48ad42];return _0x8b8b2a;};'use strict';var multer=require(_0xca1b('0x0'));var util=require('util');var path=require(_0xca1b('0x1'));var timeout=require(_0xca1b('0x2'));var express=require(_0xca1b('0x3'));var router=express[_0xca1b('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xca1b('0x5'));var config=require(_0xca1b('0x6'));var controller=require(_0xca1b('0x7'));router[_0xca1b('0x8')]('/',auth[_0xca1b('0x9')](),controller[_0xca1b('0xa')]);router['get']('/:id',auth[_0xca1b('0x9')](),controller[_0xca1b('0xb')]);router[_0xca1b('0x8')](_0xca1b('0xc'),auth[_0xca1b('0x9')](),controller[_0xca1b('0xd')]);router[_0xca1b('0x8')](_0xca1b('0xe'),auth[_0xca1b('0x9')](),controller[_0xca1b('0xf')]);router['post']('/',auth[_0xca1b('0x9')](),controller[_0xca1b('0x10')]);router['post'](_0xca1b('0xc'),auth[_0xca1b('0x9')](),controller[_0xca1b('0x11')]);router[_0xca1b('0x12')](_0xca1b('0x13'),auth[_0xca1b('0x9')](),controller['update']);router[_0xca1b('0x14')](_0xca1b('0x13'),auth[_0xca1b('0x9')](),controller[_0xca1b('0x15')]);module[_0xca1b('0x16')]=router;
\ No newline at end of file
+var _0x6dbd=['/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','/:id','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./intDeskAccount.controller','get','isAuthenticated','index','show'];(function(_0x22e3f0,_0x51f702){var _0x327a3e=function(_0x4c7e81){while(--_0x4c7e81){_0x22e3f0['push'](_0x22e3f0['shift']());}};_0x327a3e(++_0x51f702);}(_0x6dbd,0x17a));var _0xd6db=function(_0x25e607,_0x12ebef){_0x25e607=_0x25e607-0x0;var _0x2d355f=_0x6dbd[_0x25e607];return _0x2d355f;};'use strict';var multer=require(_0xd6db('0x0'));var util=require(_0xd6db('0x1'));var path=require(_0xd6db('0x2'));var timeout=require(_0xd6db('0x3'));var express=require(_0xd6db('0x4'));var router=express[_0xd6db('0x5')]();var fs_extra=require(_0xd6db('0x6'));var auth=require(_0xd6db('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xd6db('0x8'));router[_0xd6db('0x9')]('/',auth[_0xd6db('0xa')](),controller[_0xd6db('0xb')]);router[_0xd6db('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xd6db('0xc')]);router[_0xd6db('0x9')](_0xd6db('0xd'),auth[_0xd6db('0xa')](),controller[_0xd6db('0xe')]);router['get']('/:id/fields',auth[_0xd6db('0xa')](),controller[_0xd6db('0xf')]);router[_0xd6db('0x10')]('/',auth[_0xd6db('0xa')](),controller[_0xd6db('0x11')]);router['post'](_0xd6db('0xd'),auth['isAuthenticated'](),controller[_0xd6db('0x12')]);router['put'](_0xd6db('0x13'),auth[_0xd6db('0xa')](),controller[_0xd6db('0x14')]);router['delete']('/:id',auth[_0xd6db('0xa')](),controller[_0xd6db('0x15')]);module[_0xd6db('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87c0=['sequelize','exports','STRING','basic','ENUM','integrationTab'];(function(_0x815c23,_0x577e3a){var _0x357aa1=function(_0x289b7a){while(--_0x289b7a){_0x815c23['push'](_0x815c23['shift']());}};_0x357aa1(++_0x577e3a);}(_0x87c0,0x132));var _0x087c=function(_0x22b68a,_0x2bffc3){_0x22b68a=_0x22b68a-0x0;var _0x1ac67a=_0x87c0[_0x22b68a];return _0x1ac67a;};'use strict';var Sequelize=require(_0x087c('0x0'));module[_0x087c('0x1')]={'name':{'type':Sequelize[_0x087c('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x087c('0x2')]},'remoteUri':{'type':Sequelize[_0x087c('0x2')]},'authType':{'type':Sequelize['ENUM'](_0x087c('0x3')),'defaultValue':_0x087c('0x3')},'password':{'type':Sequelize['STRING']},'consumerKey':{'type':Sequelize[_0x087c('0x2')]},'consumerSecret':{'type':Sequelize[_0x087c('0x2')]},'token':{'type':Sequelize[_0x087c('0x2')]},'tokenSecret':{'type':Sequelize[_0x087c('0x2')]},'serverUrl':{'type':Sequelize[_0x087c('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x087c('0x4')](_0x087c('0x5'),'newTab'),'defaultValue':'integrationTab'}};
\ No newline at end of file
+var _0x499c=['exports','STRING','ENUM','basic','integrationTab','newTab'];(function(_0x277e1e,_0x36aab5){var _0x49245e=function(_0x576be5){while(--_0x576be5){_0x277e1e['push'](_0x277e1e['shift']());}};_0x49245e(++_0x36aab5);}(_0x499c,0x150));var _0xc499=function(_0x4c5e32,_0xe3678){_0x4c5e32=_0x4c5e32-0x0;var _0x59cf38=_0x499c[_0x4c5e32];return _0x59cf38;};'use strict';var Sequelize=require('sequelize');module[_0xc499('0x0')]={'name':{'type':Sequelize[_0xc499('0x1')]},'description':{'type':Sequelize[_0xc499('0x1')]},'username':{'type':Sequelize[_0xc499('0x1')]},'remoteUri':{'type':Sequelize[_0xc499('0x1')]},'authType':{'type':Sequelize[_0xc499('0x2')](_0xc499('0x3')),'defaultValue':_0xc499('0x3')},'password':{'type':Sequelize[_0xc499('0x1')]},'consumerKey':{'type':Sequelize[_0xc499('0x1')]},'consumerSecret':{'type':Sequelize[_0xc499('0x1')]},'token':{'type':Sequelize['STRING']},'tokenSecret':{'type':Sequelize[_0xc499('0x1')]},'serverUrl':{'type':Sequelize[_0xc499('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0xc499('0x2')](_0xc499('0x4'),_0xc499('0x5')),'defaultValue':_0xc499('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fbb=['path','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','body','find','findOne','DeskConfiguration','pick','getConfigurations','nolimit','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','remoteUri','substring','lastIndexOf','GET','format','application/json','headers','toString','base64','concat','_embedded','entries','active','label','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util'];(function(_0x2067ae,_0x2297d9){var _0x15d9e7=function(_0x224ebf){while(--_0x224ebf){_0x2067ae['push'](_0x2067ae['shift']());}};_0x15d9e7(++_0x2297d9);}(_0x5fbb,0x6e));var _0xb5fb=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x5fbb[_0x17d9e3];return _0x14192d;};'use strict';var emlformat=require(_0xb5fb('0x0'));var rimraf=require(_0xb5fb('0x1'));var zipdir=require(_0xb5fb('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb5fb('0x3'));var moment=require(_0xb5fb('0x4'));var BPromise=require(_0xb5fb('0x5'));var Mustache=require(_0xb5fb('0x6'));var util=require(_0xb5fb('0x7'));var path=require(_0xb5fb('0x8'));var sox=require(_0xb5fb('0x9'));var csv=require(_0xb5fb('0xa'));var ejs=require(_0xb5fb('0xb'));var fs=require('fs');var fs_extra=require(_0xb5fb('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xb5fb('0xd'));var jsforce=require(_0xb5fb('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb5fb('0xa'));var querystring=require(_0xb5fb('0xf'));var Papa=require(_0xb5fb('0x10'));var Redis=require(_0xb5fb('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xb5fb('0x12'));var as=require(_0xb5fb('0x13'));var hardwareService=require(_0xb5fb('0x14'));var logger=require(_0xb5fb('0x15'))(_0xb5fb('0x16'));var utils=require(_0xb5fb('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xb5fb('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0xb5fb('0x19'));function respondWithStatusCode(_0x3b1e35,_0x48eef6){_0x48eef6=_0x48eef6||0xcc;return function(_0x417a40){if(_0x417a40){return _0x3b1e35[_0xb5fb('0x1a')](_0x48eef6);}return _0x3b1e35[_0xb5fb('0x1b')](_0x48eef6)[_0xb5fb('0x1c')]();};}function respondWithResult(_0x502b42,_0xc55346){_0xc55346=_0xc55346||0xc8;return function(_0x2c06c4){if(_0x2c06c4){return _0x502b42[_0xb5fb('0x1b')](_0xc55346)[_0xb5fb('0x1d')](_0x2c06c4);}};}function respondWithFilteredResult(_0x95ce7d,_0x4ae846){return function(_0x1ef122){if(_0x1ef122){var _0x50a0ec=typeof _0x4ae846[_0xb5fb('0x1e')]===_0xb5fb('0x1f')&&typeof _0x4ae846[_0xb5fb('0x20')]===_0xb5fb('0x1f');var _0x5a7682=_0x1ef122[_0xb5fb('0x21')];var _0xffc628=_0x50a0ec?0x0:_0x4ae846['offset'];var _0x446f96=_0x50a0ec?_0x1ef122[_0xb5fb('0x21')]:_0x4ae846[_0xb5fb('0x1e')]+_0x4ae846[_0xb5fb('0x20')];var _0x15e8f2;if(_0x446f96>=_0x5a7682){_0x446f96=_0x5a7682;_0x15e8f2=0xc8;}else{_0x15e8f2=0xce;}_0x95ce7d[_0xb5fb('0x1b')](_0x15e8f2);return _0x95ce7d[_0xb5fb('0x22')](_0xb5fb('0x23'),_0xffc628+'-'+_0x446f96+'/'+_0x5a7682)['json'](_0x1ef122);}return null;};}function patchUpdates(_0x451bd9){return function(_0x4d7d8a){try{jsonpatch[_0xb5fb('0x24')](_0x4d7d8a,_0x451bd9,!![]);}catch(_0xa7c343){return BPromise[_0xb5fb('0x25')](_0xa7c343);}return _0x4d7d8a[_0xb5fb('0x26')]();};}function saveUpdates(_0x5ccd50,_0xb07d){return function(_0x4c7d8b){if(_0x4c7d8b){return _0x4c7d8b[_0xb5fb('0x27')](_0x5ccd50)['then'](function(_0x3204a2){return _0x3204a2;});}return null;};}function removeEntity(_0x3a451c,_0x1cdaaa){return function(_0x3770fd){if(_0x3770fd){return _0x3770fd[_0xb5fb('0x28')]()[_0xb5fb('0x29')](function(){_0x3a451c[_0xb5fb('0x1b')](0xcc)[_0xb5fb('0x1c')]();});}};}function handleEntityNotFound(_0x48c51d,_0x3bc7b5){return function(_0x38fc88){if(!_0x38fc88){_0x48c51d[_0xb5fb('0x1a')](0x194);}return _0x38fc88;};}function handleError(_0x540221,_0x17cb37){_0x17cb37=_0x17cb37||0x1f4;return function(_0x459583){logger[_0xb5fb('0x2a')](_0x459583[_0xb5fb('0x2b')]);if(_0x459583['name']){delete _0x459583['name'];}_0x540221[_0xb5fb('0x1b')](_0x17cb37)[_0xb5fb('0x2c')](_0x459583);};}exports[_0xb5fb('0x2d')]=function(_0x19f131,_0x2fac95){var _0x5d36ae={},_0x348fc8={},_0x193e2a={'count':0x0,'rows':[]};var _0x41e2ea=_[_0xb5fb('0x2e')](db[_0xb5fb('0x2f')][_0xb5fb('0x30')],function(_0x1f5539){return{'name':_0x1f5539[_0xb5fb('0x31')],'type':_0x1f5539[_0xb5fb('0x32')][_0xb5fb('0x33')]};});_0x348fc8[_0xb5fb('0x34')]=_[_0xb5fb('0x2e')](_0x41e2ea,_0xb5fb('0x35'));_0x348fc8[_0xb5fb('0x36')]=_[_0xb5fb('0x37')](_0x19f131[_0xb5fb('0x36')]);_0x348fc8[_0xb5fb('0x38')]=_[_0xb5fb('0x39')](_0x348fc8['model'],_0x348fc8[_0xb5fb('0x36')]);_0x5d36ae['attributes']=_[_0xb5fb('0x39')](_0x348fc8[_0xb5fb('0x34')],qs[_0xb5fb('0x3a')](_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x3a')]));_0x5d36ae[_0xb5fb('0x3b')]=_0x5d36ae[_0xb5fb('0x3b')][_0xb5fb('0x3c')]?_0x5d36ae[_0xb5fb('0x3b')]:_0x348fc8[_0xb5fb('0x34')];if(!_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x3d')]('nolimit')){_0x5d36ae[_0xb5fb('0x20')]=qs['limit'](_0x19f131[_0xb5fb('0x36')]['limit']);_0x5d36ae[_0xb5fb('0x1e')]=qs[_0xb5fb('0x1e')](_0x19f131[_0xb5fb('0x36')]['offset']);}_0x5d36ae[_0xb5fb('0x3e')]=qs[_0xb5fb('0x3f')](_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x3f')]);_0x5d36ae[_0xb5fb('0x40')]=qs[_0xb5fb('0x38')](_['pick'](_0x19f131['query'],_0x348fc8[_0xb5fb('0x38')]),_0x41e2ea);if(_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x41')]){_0x5d36ae[_0xb5fb('0x40')]=_[_0xb5fb('0x42')](_0x5d36ae['where'],{'$or':_[_0xb5fb('0x2e')](_0x41e2ea,function(_0x14aaac){if(_0x14aaac[_0xb5fb('0x32')]!==_0xb5fb('0x43')){var _0x16b2d8={};_0x16b2d8[_0x14aaac[_0xb5fb('0x35')]]={'$like':'%'+_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x41')]+'%'};return _0x16b2d8;}})});}_0x5d36ae=_[_0xb5fb('0x42')]({},_0x5d36ae,_0x19f131[_0xb5fb('0x44')]);var _0x2b7dd4={'where':_0x5d36ae[_0xb5fb('0x40')]};return db[_0xb5fb('0x2f')]['count'](_0x2b7dd4)[_0xb5fb('0x29')](function(_0x7572b4){_0x193e2a[_0xb5fb('0x21')]=_0x7572b4;if(_0x19f131[_0xb5fb('0x36')]['includeAll']){_0x5d36ae[_0xb5fb('0x45')]=[{'all':!![]}];}return db[_0xb5fb('0x2f')][_0xb5fb('0x46')](_0x5d36ae);})[_0xb5fb('0x29')](function(_0x11addd){_0x193e2a[_0xb5fb('0x47')]=_0x11addd;return _0x193e2a;})[_0xb5fb('0x29')](respondWithFilteredResult(_0x2fac95,_0x5d36ae))[_0xb5fb('0x48')](handleError(_0x2fac95,null));};exports[_0xb5fb('0x49')]=function(_0x546cbf,_0x35cd81){var _0x558a94={'raw':![],'where':{'id':_0x546cbf[_0xb5fb('0x4a')]['id']}},_0x20bb41={};_0x20bb41[_0xb5fb('0x34')]=_['keys'](db[_0xb5fb('0x2f')][_0xb5fb('0x30')]);_0x20bb41['query']=_['keys'](_0x546cbf[_0xb5fb('0x36')]);_0x20bb41[_0xb5fb('0x38')]=_[_0xb5fb('0x39')](_0x20bb41['model'],_0x20bb41['query']);_0x558a94[_0xb5fb('0x3b')]=_[_0xb5fb('0x39')](_0x20bb41[_0xb5fb('0x34')],qs[_0xb5fb('0x3a')](_0x546cbf[_0xb5fb('0x36')][_0xb5fb('0x3a')]));_0x558a94[_0xb5fb('0x3b')]=_0x558a94[_0xb5fb('0x3b')][_0xb5fb('0x3c')]?_0x558a94[_0xb5fb('0x3b')]:_0x20bb41[_0xb5fb('0x34')];if(_0x546cbf[_0xb5fb('0x36')][_0xb5fb('0x4b')]){_0x558a94[_0xb5fb('0x45')]=[{'all':!![]}];}_0x558a94=_['merge']({},_0x558a94,_0x546cbf[_0xb5fb('0x44')]);return db[_0xb5fb('0x2f')]['find'](_0x558a94)['then'](handleEntityNotFound(_0x35cd81,null))['then'](respondWithResult(_0x35cd81,null))[_0xb5fb('0x48')](handleError(_0x35cd81,null));};exports['create']=function(_0x14d410,_0x5ab1c4){return db[_0xb5fb('0x2f')]['create'](_0x14d410[_0xb5fb('0x4c')],{})[_0xb5fb('0x29')](respondWithResult(_0x5ab1c4,0xc9))[_0xb5fb('0x48')](handleError(_0x5ab1c4,null));};exports['update']=function(_0x1a80e0,_0x3d7c2e){if(_0x1a80e0[_0xb5fb('0x4c')]['id']){delete _0x1a80e0[_0xb5fb('0x4c')]['id'];}return db['DeskAccount'][_0xb5fb('0x4d')]({'where':{'id':_0x1a80e0['params']['id']}})[_0xb5fb('0x29')](handleEntityNotFound(_0x3d7c2e,null))[_0xb5fb('0x29')](saveUpdates(_0x1a80e0[_0xb5fb('0x4c')],null))['then'](respondWithResult(_0x3d7c2e,null))[_0xb5fb('0x48')](handleError(_0x3d7c2e,null));};exports['destroy']=function(_0x3f90a3,_0x5b5189){return db[_0xb5fb('0x2f')][_0xb5fb('0x4d')]({'where':{'id':_0x3f90a3['params']['id']}})[_0xb5fb('0x29')](handleEntityNotFound(_0x5b5189,null))[_0xb5fb('0x29')](removeEntity(_0x5b5189,null))[_0xb5fb('0x48')](handleError(_0x5b5189,null));};exports['getConfigurations']=function(_0x22dca1,_0x5e77f2,_0x1bba18){var _0x4b3ecb={};var _0x429085={};var _0x407f66;var _0x5159ec;return db[_0xb5fb('0x2f')][_0xb5fb('0x4e')]({'where':{'id':_0x22dca1[_0xb5fb('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5e77f2,null))[_0xb5fb('0x29')](function(_0x3852eb){if(_0x3852eb){_0x407f66=_0x3852eb;_0x429085[_0xb5fb('0x34')]=_[_0xb5fb('0x37')](db[_0xb5fb('0x4f')][_0xb5fb('0x30')]);_0x429085[_0xb5fb('0x36')]=_[_0xb5fb('0x37')](_0x22dca1[_0xb5fb('0x36')]);_0x429085[_0xb5fb('0x38')]=_[_0xb5fb('0x39')](_0x429085[_0xb5fb('0x34')],_0x429085[_0xb5fb('0x36')]);_0x4b3ecb[_0xb5fb('0x3b')]=_['intersection'](_0x429085['model'],qs[_0xb5fb('0x3a')](_0x22dca1[_0xb5fb('0x36')]['fields']));_0x4b3ecb[_0xb5fb('0x3b')]=_0x4b3ecb[_0xb5fb('0x3b')][_0xb5fb('0x3c')]?_0x4b3ecb[_0xb5fb('0x3b')]:_0x429085[_0xb5fb('0x34')];_0x4b3ecb['order']=qs[_0xb5fb('0x3f')](_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x3f')]);_0x4b3ecb['where']=qs[_0xb5fb('0x38')](_[_0xb5fb('0x50')](_0x22dca1[_0xb5fb('0x36')],_0x429085[_0xb5fb('0x38')]));if(_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x41')]){_0x4b3ecb[_0xb5fb('0x40')]=_[_0xb5fb('0x42')](_0x4b3ecb[_0xb5fb('0x40')],{'$or':_['map'](_0x4b3ecb['attributes'],function(_0x3965c9){var _0x16953e={};_0x16953e[_0x3965c9]={'$like':'%'+_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x41')]+'%'};return _0x16953e;})});}_0x4b3ecb=_['merge']({},_0x4b3ecb,_0x22dca1[_0xb5fb('0x44')]);return _0x407f66[_0xb5fb('0x51')](_0x4b3ecb);}})['then'](function(_0x1e7c4c){if(_0x1e7c4c){_0x5159ec=_0x1e7c4c['length'];if(!_0x22dca1['query']['hasOwnProperty'](_0xb5fb('0x52'))){_0x4b3ecb[_0xb5fb('0x20')]=qs[_0xb5fb('0x20')](_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x20')]);_0x4b3ecb[_0xb5fb('0x1e')]=qs[_0xb5fb('0x1e')](_0x22dca1['query'][_0xb5fb('0x1e')]);}return _0x407f66[_0xb5fb('0x51')](_0x4b3ecb);}})[_0xb5fb('0x29')](function(_0x1375da){if(_0x1375da){return _0x1375da?{'count':_0x5159ec,'rows':_0x1375da}:null;}})['then'](respondWithResult(_0x5e77f2,null))[_0xb5fb('0x48')](handleError(_0x5e77f2,null));};exports['addConfiguration']=function(_0x4a098c,_0x5209c5,_0x19acc4){if(_0x4a098c[_0xb5fb('0x4c')]['id']){delete _0x4a098c[_0xb5fb('0x4c')]['id'];}return db[_0xb5fb('0x2f')][_0xb5fb('0x4e')]({'where':{'id':_0x4a098c['params']['id']}})[_0xb5fb('0x29')](handleEntityNotFound(_0x5209c5,null))[_0xb5fb('0x29')](function(_0x5d01ee){if(_0x5d01ee){_0x4a098c['body'][_0xb5fb('0x53')]=_0x5d01ee['id'];_0x4a098c[_0xb5fb('0x4c')][_0xb5fb('0x54')]=integrations[_0xb5fb('0x55')](_0x4a098c[_0xb5fb('0x4c')][_0xb5fb('0x56')],_0x4a098c['body']['type']);_0x4a098c[_0xb5fb('0x4c')][_0xb5fb('0x57')]=integrations[_0xb5fb('0x58')](_0x4a098c['body'][_0xb5fb('0x56')],_0x4a098c['body'][_0xb5fb('0x32')]);return db[_0xb5fb('0x4f')]['create'](_0x4a098c['body'],{'include':[{'model':db[_0xb5fb('0x59')],'as':'Subjects'},{'model':db['DeskField'],'as':_0xb5fb('0x57')}]});}return null;})[_0xb5fb('0x29')](respondWithResult(_0x5209c5,null))[_0xb5fb('0x48')](handleError(_0x5209c5,null));};exports[_0xb5fb('0x5a')]=function(_0x4b2e67,_0x5dd22d,_0x42d180){var _0x30eb6c=[{'name':_0xb5fb('0x5b'),'label':_0xb5fb('0x5b'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0xdc6b0e='';return db[_0xb5fb('0x2f')][_0xb5fb('0x4e')]({'where':{'id':_0x4b2e67[_0xb5fb('0x4a')]['id']},'attributes':['id','remoteUri',_0xb5fb('0x5c'),_0xb5fb('0x5d'),_0xb5fb('0x5e'),_0xb5fb('0x5f'),_0xb5fb('0x60'),_0xb5fb('0x61'),_0xb5fb('0x62')]})[_0xb5fb('0x29')](handleEntityNotFound(_0x5dd22d,null))['then'](function(_0x3efcdc){if(_0x3efcdc){_0xdc6b0e=_0x3efcdc[_0xb5fb('0x63')];var _0x6bf192=_0xdc6b0e['slice'](-0x1);if(_0x6bf192==='/'){_0xdc6b0e=_0xdc6b0e[_0xb5fb('0x64')](0x0,_0xdc6b0e[_0xb5fb('0x65')](_0x6bf192));}var _0x27bbc3={'method':_0xb5fb('0x66'),'uri':util[_0xb5fb('0x67')]('%s/custom_fields',_0xdc6b0e),'headers':{'Content-Type':_0xb5fb('0x68'),'Accept':_0xb5fb('0x68')},'json':!![]};if(_0x3efcdc[_0xb5fb('0x5c')]==='basic'){_0x27bbc3[_0xb5fb('0x69')]['Authorization']=util[_0xb5fb('0x67')]('Basic\x20%s',new Buffer(util[_0xb5fb('0x67')]('%s:%s',_0x3efcdc[_0xb5fb('0x5d')],_0x3efcdc[_0xb5fb('0x5e')]))[_0xb5fb('0x6a')](_0xb5fb('0x6b')));}return rp(_0x27bbc3)[_0xb5fb('0x29')](function(_0x1bf05b){return _0x30eb6c[_0xb5fb('0x6c')](_[_0xb5fb('0x2e')](_0x1bf05b[_0xb5fb('0x6d')][_0xb5fb('0x6e')],function(_0x51df93){return{'id':_0x51df93[_0xb5fb('0x35')],'name':_0x51df93[_0xb5fb('0x35')],'type':_0x51df93[_0xb5fb('0x32')],'active':_0x51df93[_0xb5fb('0x6f')],'label':_0x51df93[_0xb5fb('0x70')],'custom':!![]};}));});}})[_0xb5fb('0x29')](function(_0x5ce4e6){return{'count':_0x5ce4e6['length'],'rows':_0x5ce4e6};})[_0xb5fb('0x29')](respondWithResult(_0x5dd22d,null))[_0xb5fb('0x48')](function(_0x1ca061){var _0x471733=_0x4b2e67[_0xb5fb('0x36')]['test']?0x1f4:_0x1ca061['statusCode']||0x1f4;logger[_0xb5fb('0x2a')](_0xb5fb('0x71'),_0xb5fb('0x5a'),_0x471733,JSON[_0xb5fb('0x72')](_0x1ca061));delete _0x1ca061['name'];if(_0x471733===0x191){_0x471733=0x190;}_0x5dd22d['status'](_0x471733)['send'](_0x4b2e67[_0xb5fb('0x36')][_0xb5fb('0x73')]?{'message':_0xb5fb('0x74'),'statusCode':_0x1ca061[_0xb5fb('0x75')]}:_0x1ca061);});};
\ No newline at end of file
+var _0x5579=['ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','DeskAccount','rawAttributes','fieldName','type','key','model','map','keys','query','filters','attributes','intersection','fields','hasOwnProperty','sort','pick','filter','merge','VIRTUAL','where','includeAll','findAll','rows','catch','show','params','length','include','options','find','create','body','destroy','getConfigurations','findOne','nolimit','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','DeskField','getFields','remoteUri','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','lastIndexOf','format','%s/custom_fields','application/json','basic','Authorization','Basic\x20%s','%s:%s','toString','base64','concat','entries','active','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv'];(function(_0x58b835,_0x48d03c){var _0x27198b=function(_0x999001){while(--_0x999001){_0x58b835['push'](_0x58b835['shift']());}};_0x27198b(++_0x48d03c);}(_0x5579,0x14f));var _0x9557=function(_0xccba9c,_0x2b2f02){_0xccba9c=_0xccba9c-0x0;var _0xedbf08=_0x5579[_0xccba9c];return _0xedbf08;};'use strict';var emlformat=require(_0x9557('0x0'));var rimraf=require(_0x9557('0x1'));var zipdir=require(_0x9557('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9557('0x3'));var moment=require(_0x9557('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9557('0x5'));var util=require(_0x9557('0x6'));var path=require(_0x9557('0x7'));var sox=require(_0x9557('0x8'));var csv=require(_0x9557('0x9'));var ejs=require(_0x9557('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9557('0xb'));var crypto=require(_0x9557('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9557('0xd'));var toCsv=require(_0x9557('0x9'));var querystring=require(_0x9557('0xe'));var Papa=require(_0x9557('0xf'));var Redis=require(_0x9557('0x10'));var authService=require(_0x9557('0x11'));var qs=require(_0x9557('0x12'));var as=require(_0x9557('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x9557('0x14'));var utils=require(_0x9557('0x15'));var config=require(_0x9557('0x16'));var licenseUtil=require(_0x9557('0x17'));var db=require(_0x9557('0x18'))['db'];var integrations=require(_0x9557('0x19'));function respondWithStatusCode(_0x3e629c,_0x1764a6){_0x1764a6=_0x1764a6||0xcc;return function(_0x340267){if(_0x340267){return _0x3e629c[_0x9557('0x1a')](_0x1764a6);}return _0x3e629c[_0x9557('0x1b')](_0x1764a6)[_0x9557('0x1c')]();};}function respondWithResult(_0x496f27,_0x4224bc){_0x4224bc=_0x4224bc||0xc8;return function(_0x30280f){if(_0x30280f){return _0x496f27['status'](_0x4224bc)[_0x9557('0x1d')](_0x30280f);}};}function respondWithFilteredResult(_0xa7cd18,_0x4ef61d){return function(_0x8afcdf){if(_0x8afcdf){var _0x28a5b5=typeof _0x4ef61d['offset']===_0x9557('0x1e')&&typeof _0x4ef61d[_0x9557('0x1f')]==='undefined';var _0x47d031=_0x8afcdf[_0x9557('0x20')];var _0x55e16e=_0x28a5b5?0x0:_0x4ef61d[_0x9557('0x21')];var _0x194854=_0x28a5b5?_0x8afcdf[_0x9557('0x20')]:_0x4ef61d[_0x9557('0x21')]+_0x4ef61d['limit'];var _0x4e7457;if(_0x194854>=_0x47d031){_0x194854=_0x47d031;_0x4e7457=0xc8;}else{_0x4e7457=0xce;}_0xa7cd18[_0x9557('0x1b')](_0x4e7457);return _0xa7cd18[_0x9557('0x22')](_0x9557('0x23'),_0x55e16e+'-'+_0x194854+'/'+_0x47d031)['json'](_0x8afcdf);}return null;};}function patchUpdates(_0x49f425){return function(_0x38ea24){try{jsonpatch[_0x9557('0x24')](_0x38ea24,_0x49f425,!![]);}catch(_0x33a56c){return BPromise[_0x9557('0x25')](_0x33a56c);}return _0x38ea24[_0x9557('0x26')]();};}function saveUpdates(_0x4154bc,_0x3c5dea){return function(_0x442f05){if(_0x442f05){return _0x442f05[_0x9557('0x27')](_0x4154bc)[_0x9557('0x28')](function(_0xc2c3ac){return _0xc2c3ac;});}return null;};}function removeEntity(_0x1cc79f,_0xcd43a1){return function(_0x51691c){if(_0x51691c){return _0x51691c['destroy']()[_0x9557('0x28')](function(){_0x1cc79f[_0x9557('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1cf529,_0x504e5e){return function(_0x4f1d04){if(!_0x4f1d04){_0x1cf529[_0x9557('0x1a')](0x194);}return _0x4f1d04;};}function handleError(_0x12c431,_0xf85e3c){_0xf85e3c=_0xf85e3c||0x1f4;return function(_0x338f60){logger[_0x9557('0x29')](_0x338f60[_0x9557('0x2a')]);if(_0x338f60[_0x9557('0x2b')]){delete _0x338f60[_0x9557('0x2b')];}_0x12c431[_0x9557('0x1b')](_0xf85e3c)[_0x9557('0x2c')](_0x338f60);};}exports[_0x9557('0x2d')]=function(_0x17f77c,_0x59dde1){var _0x7f2dfa={},_0x37bcd1={},_0x15e4b4={'count':0x0,'rows':[]};var _0x450a94=_['map'](db[_0x9557('0x2e')][_0x9557('0x2f')],function(_0x39b93f){return{'name':_0x39b93f[_0x9557('0x30')],'type':_0x39b93f[_0x9557('0x31')][_0x9557('0x32')]};});_0x37bcd1[_0x9557('0x33')]=_[_0x9557('0x34')](_0x450a94,'name');_0x37bcd1['query']=_[_0x9557('0x35')](_0x17f77c[_0x9557('0x36')]);_0x37bcd1[_0x9557('0x37')]=_['intersection'](_0x37bcd1['model'],_0x37bcd1[_0x9557('0x36')]);_0x7f2dfa[_0x9557('0x38')]=_[_0x9557('0x39')](_0x37bcd1[_0x9557('0x33')],qs['fields'](_0x17f77c[_0x9557('0x36')][_0x9557('0x3a')]));_0x7f2dfa[_0x9557('0x38')]=_0x7f2dfa[_0x9557('0x38')]['length']?_0x7f2dfa['attributes']:_0x37bcd1[_0x9557('0x33')];if(!_0x17f77c[_0x9557('0x36')][_0x9557('0x3b')]('nolimit')){_0x7f2dfa[_0x9557('0x1f')]=qs[_0x9557('0x1f')](_0x17f77c['query'][_0x9557('0x1f')]);_0x7f2dfa['offset']=qs['offset'](_0x17f77c[_0x9557('0x36')][_0x9557('0x21')]);}_0x7f2dfa['order']=qs[_0x9557('0x3c')](_0x17f77c[_0x9557('0x36')]['sort']);_0x7f2dfa['where']=qs[_0x9557('0x37')](_[_0x9557('0x3d')](_0x17f77c[_0x9557('0x36')],_0x37bcd1[_0x9557('0x37')]),_0x450a94);if(_0x17f77c['query'][_0x9557('0x3e')]){_0x7f2dfa['where']=_[_0x9557('0x3f')](_0x7f2dfa['where'],{'$or':_[_0x9557('0x34')](_0x450a94,function(_0xa9d4d7){if(_0xa9d4d7[_0x9557('0x31')]!==_0x9557('0x40')){var _0x2c33cd={};_0x2c33cd[_0xa9d4d7['name']]={'$like':'%'+_0x17f77c['query'][_0x9557('0x3e')]+'%'};return _0x2c33cd;}})});}_0x7f2dfa=_[_0x9557('0x3f')]({},_0x7f2dfa,_0x17f77c['options']);var _0x2d1e6e={'where':_0x7f2dfa[_0x9557('0x41')]};return db[_0x9557('0x2e')][_0x9557('0x20')](_0x2d1e6e)[_0x9557('0x28')](function(_0x16cf2d){_0x15e4b4[_0x9557('0x20')]=_0x16cf2d;if(_0x17f77c[_0x9557('0x36')][_0x9557('0x42')]){_0x7f2dfa['include']=[{'all':!![]}];}return db[_0x9557('0x2e')][_0x9557('0x43')](_0x7f2dfa);})[_0x9557('0x28')](function(_0x202896){_0x15e4b4[_0x9557('0x44')]=_0x202896;return _0x15e4b4;})[_0x9557('0x28')](respondWithFilteredResult(_0x59dde1,_0x7f2dfa))[_0x9557('0x45')](handleError(_0x59dde1,null));};exports[_0x9557('0x46')]=function(_0x358274,_0x2808d8){var _0x500d44={'raw':![],'where':{'id':_0x358274[_0x9557('0x47')]['id']}},_0x4fa876={};_0x4fa876[_0x9557('0x33')]=_['keys'](db[_0x9557('0x2e')][_0x9557('0x2f')]);_0x4fa876[_0x9557('0x36')]=_[_0x9557('0x35')](_0x358274[_0x9557('0x36')]);_0x4fa876[_0x9557('0x37')]=_[_0x9557('0x39')](_0x4fa876['model'],_0x4fa876[_0x9557('0x36')]);_0x500d44['attributes']=_[_0x9557('0x39')](_0x4fa876['model'],qs[_0x9557('0x3a')](_0x358274[_0x9557('0x36')]['fields']));_0x500d44[_0x9557('0x38')]=_0x500d44[_0x9557('0x38')][_0x9557('0x48')]?_0x500d44['attributes']:_0x4fa876[_0x9557('0x33')];if(_0x358274[_0x9557('0x36')][_0x9557('0x42')]){_0x500d44[_0x9557('0x49')]=[{'all':!![]}];}_0x500d44=_[_0x9557('0x3f')]({},_0x500d44,_0x358274[_0x9557('0x4a')]);return db[_0x9557('0x2e')][_0x9557('0x4b')](_0x500d44)[_0x9557('0x28')](handleEntityNotFound(_0x2808d8,null))[_0x9557('0x28')](respondWithResult(_0x2808d8,null))[_0x9557('0x45')](handleError(_0x2808d8,null));};exports[_0x9557('0x4c')]=function(_0x2ee90a,_0x408a73){return db[_0x9557('0x2e')][_0x9557('0x4c')](_0x2ee90a[_0x9557('0x4d')],{})[_0x9557('0x28')](respondWithResult(_0x408a73,0xc9))[_0x9557('0x45')](handleError(_0x408a73,null));};exports[_0x9557('0x27')]=function(_0x3cdfbe,_0x23911c){if(_0x3cdfbe['body']['id']){delete _0x3cdfbe['body']['id'];}return db[_0x9557('0x2e')][_0x9557('0x4b')]({'where':{'id':_0x3cdfbe[_0x9557('0x47')]['id']}})['then'](handleEntityNotFound(_0x23911c,null))[_0x9557('0x28')](saveUpdates(_0x3cdfbe[_0x9557('0x4d')],null))[_0x9557('0x28')](respondWithResult(_0x23911c,null))[_0x9557('0x45')](handleError(_0x23911c,null));};exports[_0x9557('0x4e')]=function(_0x72d95a,_0x1eed24){return db[_0x9557('0x2e')][_0x9557('0x4b')]({'where':{'id':_0x72d95a[_0x9557('0x47')]['id']}})[_0x9557('0x28')](handleEntityNotFound(_0x1eed24,null))[_0x9557('0x28')](removeEntity(_0x1eed24,null))[_0x9557('0x45')](handleError(_0x1eed24,null));};exports[_0x9557('0x4f')]=function(_0x35a4dc,_0x354428,_0x554fd7){var _0x2b2cc3={};var _0x1b4d88={};var _0x451d60;var _0x596e85;return db['DeskAccount'][_0x9557('0x50')]({'where':{'id':_0x35a4dc[_0x9557('0x47')]['id']}})[_0x9557('0x28')](handleEntityNotFound(_0x354428,null))[_0x9557('0x28')](function(_0x43f155){if(_0x43f155){_0x451d60=_0x43f155;_0x1b4d88[_0x9557('0x33')]=_[_0x9557('0x35')](db['DeskConfiguration'][_0x9557('0x2f')]);_0x1b4d88['query']=_[_0x9557('0x35')](_0x35a4dc[_0x9557('0x36')]);_0x1b4d88[_0x9557('0x37')]=_[_0x9557('0x39')](_0x1b4d88[_0x9557('0x33')],_0x1b4d88[_0x9557('0x36')]);_0x2b2cc3[_0x9557('0x38')]=_[_0x9557('0x39')](_0x1b4d88['model'],qs[_0x9557('0x3a')](_0x35a4dc[_0x9557('0x36')]['fields']));_0x2b2cc3['attributes']=_0x2b2cc3[_0x9557('0x38')][_0x9557('0x48')]?_0x2b2cc3[_0x9557('0x38')]:_0x1b4d88['model'];_0x2b2cc3['order']=qs[_0x9557('0x3c')](_0x35a4dc[_0x9557('0x36')][_0x9557('0x3c')]);_0x2b2cc3[_0x9557('0x41')]=qs[_0x9557('0x37')](_['pick'](_0x35a4dc[_0x9557('0x36')],_0x1b4d88[_0x9557('0x37')]));if(_0x35a4dc['query'][_0x9557('0x3e')]){_0x2b2cc3[_0x9557('0x41')]=_['merge'](_0x2b2cc3['where'],{'$or':_[_0x9557('0x34')](_0x2b2cc3['attributes'],function(_0x300b2f){var _0x3a8ba4={};_0x3a8ba4[_0x300b2f]={'$like':'%'+_0x35a4dc[_0x9557('0x36')][_0x9557('0x3e')]+'%'};return _0x3a8ba4;})});}_0x2b2cc3=_['merge']({},_0x2b2cc3,_0x35a4dc[_0x9557('0x4a')]);return _0x451d60['getConfigurations'](_0x2b2cc3);}})[_0x9557('0x28')](function(_0x29a4b4){if(_0x29a4b4){_0x596e85=_0x29a4b4[_0x9557('0x48')];if(!_0x35a4dc[_0x9557('0x36')]['hasOwnProperty'](_0x9557('0x51'))){_0x2b2cc3['limit']=qs[_0x9557('0x1f')](_0x35a4dc[_0x9557('0x36')][_0x9557('0x1f')]);_0x2b2cc3[_0x9557('0x21')]=qs[_0x9557('0x21')](_0x35a4dc['query'][_0x9557('0x21')]);}return _0x451d60['getConfigurations'](_0x2b2cc3);}})['then'](function(_0x5dbf05){if(_0x5dbf05){return _0x5dbf05?{'count':_0x596e85,'rows':_0x5dbf05}:null;}})[_0x9557('0x28')](respondWithResult(_0x354428,null))[_0x9557('0x45')](handleError(_0x354428,null));};exports[_0x9557('0x52')]=function(_0x4ac41e,_0x46a5fd,_0x1bf4f2){if(_0x4ac41e[_0x9557('0x4d')]['id']){delete _0x4ac41e[_0x9557('0x4d')]['id'];}return db[_0x9557('0x2e')][_0x9557('0x50')]({'where':{'id':_0x4ac41e[_0x9557('0x47')]['id']}})[_0x9557('0x28')](handleEntityNotFound(_0x46a5fd,null))[_0x9557('0x28')](function(_0x914a3c){if(_0x914a3c){_0x4ac41e[_0x9557('0x4d')][_0x9557('0x53')]=_0x914a3c['id'];_0x4ac41e['body'][_0x9557('0x54')]=integrations[_0x9557('0x55')](_0x4ac41e[_0x9557('0x4d')]['channel'],_0x4ac41e['body'][_0x9557('0x31')]);_0x4ac41e[_0x9557('0x4d')][_0x9557('0x56')]=integrations[_0x9557('0x57')](_0x4ac41e[_0x9557('0x4d')][_0x9557('0x58')],_0x4ac41e[_0x9557('0x4d')][_0x9557('0x31')]);return db['DeskConfiguration'][_0x9557('0x4c')](_0x4ac41e['body'],{'include':[{'model':db['DeskField'],'as':_0x9557('0x54')},{'model':db[_0x9557('0x59')],'as':_0x9557('0x56')}]});}return null;})[_0x9557('0x28')](respondWithResult(_0x46a5fd,null))['catch'](handleError(_0x46a5fd,null));};exports[_0x9557('0x5a')]=function(_0x2de01b,_0xb1256e,_0x4e63bd){var _0x571bb0=[{'name':'priority','label':'priority','custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x2d6ecb='';return db[_0x9557('0x2e')]['findOne']({'where':{'id':_0x2de01b[_0x9557('0x47')]['id']},'attributes':['id',_0x9557('0x5b'),_0x9557('0x5c'),_0x9557('0x5d'),_0x9557('0x5e'),_0x9557('0x5f'),_0x9557('0x60'),_0x9557('0x61'),_0x9557('0x62')]})[_0x9557('0x28')](handleEntityNotFound(_0xb1256e,null))[_0x9557('0x28')](function(_0x11c3d6){if(_0x11c3d6){_0x2d6ecb=_0x11c3d6[_0x9557('0x5b')];var _0x4228a5=_0x2d6ecb['slice'](-0x1);if(_0x4228a5==='/'){_0x2d6ecb=_0x2d6ecb['substring'](0x0,_0x2d6ecb[_0x9557('0x63')](_0x4228a5));}var _0x1319ad={'method':'GET','uri':util[_0x9557('0x64')](_0x9557('0x65'),_0x2d6ecb),'headers':{'Content-Type':_0x9557('0x66'),'Accept':_0x9557('0x66')},'json':!![]};if(_0x11c3d6[_0x9557('0x5c')]===_0x9557('0x67')){_0x1319ad['headers'][_0x9557('0x68')]=util[_0x9557('0x64')](_0x9557('0x69'),new Buffer(util[_0x9557('0x64')](_0x9557('0x6a'),_0x11c3d6[_0x9557('0x5d')],_0x11c3d6['password']))[_0x9557('0x6b')](_0x9557('0x6c')));}return rp(_0x1319ad)[_0x9557('0x28')](function(_0x3b6868){return _0x571bb0[_0x9557('0x6d')](_[_0x9557('0x34')](_0x3b6868['_embedded'][_0x9557('0x6e')],function(_0x42b195){return{'id':_0x42b195[_0x9557('0x2b')],'name':_0x42b195[_0x9557('0x2b')],'type':_0x42b195[_0x9557('0x31')],'active':_0x42b195[_0x9557('0x6f')],'label':_0x42b195['label'],'custom':!![]};}));});}})[_0x9557('0x28')](function(_0x40608a){return{'count':_0x40608a[_0x9557('0x48')],'rows':_0x40608a};})[_0x9557('0x28')](respondWithResult(_0xb1256e,null))[_0x9557('0x45')](function(_0x1d909f){var _0xdabdd1=_0x2de01b[_0x9557('0x36')][_0x9557('0x70')]?0x1f4:_0x1d909f[_0x9557('0x71')]||0x1f4;logger[_0x9557('0x29')](_0x9557('0x72'),'getFields',_0xdabdd1,JSON['stringify'](_0x1d909f));delete _0x1d909f['name'];if(_0xdabdd1===0x191){_0xdabdd1=0x190;}_0xb1256e[_0x9557('0x1b')](_0xdabdd1)[_0x9557('0x2c')](_0x2de01b[_0x9557('0x36')][_0x9557('0x70')]?{'message':'Wrong\x20credentials','statusCode':_0x1d909f[_0x9557('0x71')]}:_0x1d909f);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ca1=['../../config/logger','moment','bluebird','request-promise','path','../../config/environment','./intDeskAccount.attributes','../../components/integrations/configuration','exports','define','DeskAccount','int_desk_accounts','lodash','util'];(function(_0x4e9310,_0x5296e4){var _0x346b79=function(_0x2b0d41){while(--_0x2b0d41){_0x4e9310['push'](_0x4e9310['shift']());}};_0x346b79(++_0x5296e4);}(_0x2ca1,0x1a2));var _0x12ca=function(_0x149083,_0x4047b6){_0x149083=_0x149083-0x0;var _0x4dc74e=_0x2ca1[_0x149083];return _0x4dc74e;};'use strict';var _=require(_0x12ca('0x0'));var util=require(_0x12ca('0x1'));var logger=require(_0x12ca('0x2'))('api');var moment=require(_0x12ca('0x3'));var BPromise=require(_0x12ca('0x4'));var rp=require(_0x12ca('0x5'));var fs=require('fs');var path=require(_0x12ca('0x6'));var rimraf=require('rimraf');var config=require(_0x12ca('0x7'));var attributes=require(_0x12ca('0x8'));var integrations=require(_0x12ca('0x9'));module[_0x12ca('0xa')]=function(_0x24f631,_0x5e89e9){return _0x24f631[_0x12ca('0xb')](_0x12ca('0xc'),attributes,{'tableName':_0x12ca('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd749=['bluebird','request-promise','path','./intDeskAccount.attributes','../../components/integrations/configuration','DeskAccount','int_desk_accounts','lodash','util','../../config/logger','api','moment'];(function(_0x405b46,_0x418896){var _0x28afd0=function(_0x340c0f){while(--_0x340c0f){_0x405b46['push'](_0x405b46['shift']());}};_0x28afd0(++_0x418896);}(_0xd749,0x193));var _0x9d74=function(_0x31fb71,_0x46a109){_0x31fb71=_0x31fb71-0x0;var _0x19e7d0=_0xd749[_0x31fb71];return _0x19e7d0;};'use strict';var _=require(_0x9d74('0x0'));var util=require(_0x9d74('0x1'));var logger=require(_0x9d74('0x2'))(_0x9d74('0x3'));var moment=require(_0x9d74('0x4'));var BPromise=require(_0x9d74('0x5'));var rp=require(_0x9d74('0x6'));var fs=require('fs');var path=require(_0x9d74('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x9d74('0x8'));var integrations=require(_0x9d74('0x9'));module['exports']=function(_0x1e9e5f,_0x1a9c33){return _0x1e9e5f['define'](_0x9d74('0xa'),attributes,{'tableName':_0x9d74('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0d9=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','DeskAccount,\x20%s,\x20%s','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','DeskAccount','findAll','options','raw','where','limit','include','map','model','attributes','GetDeskAccount','ShowDeskAccount','find','lodash','moment','bluebird','ioredis'];(function(_0xe8aea6,_0x3ea7d8){var _0x502b83=function(_0x4979d0){while(--_0x4979d0){_0xe8aea6['push'](_0xe8aea6['shift']());}};_0x502b83(++_0x3ea7d8);}(_0xf0d9,0xb5));var _0x9f0d=function(_0x35425b,_0x45eb59){_0x35425b=_0x35425b-0x0;var _0x41c2b4=_0xf0d9[_0x35425b];return _0x41c2b4;};'use strict';var _=require(_0x9f0d('0x0'));var util=require('util');var moment=require(_0x9f0d('0x1'));var BPromise=require(_0x9f0d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9f0d('0x3'));var db=require(_0x9f0d('0x4'))['db'];var utils=require(_0x9f0d('0x5'));var logger=require(_0x9f0d('0x6'))(_0x9f0d('0x7'));var config=require(_0x9f0d('0x8'));var jayson=require(_0x9f0d('0x9'));var client=jayson[_0x9f0d('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5e06bb,_0x2dbffe,_0x53a10a){return new BPromise(function(_0x296c46,_0x4bc2f5){return client[_0x9f0d('0xb')](_0x5e06bb,_0x53a10a)[_0x9f0d('0xc')](function(_0x4964b1){logger[_0x9f0d('0xd')](_0x9f0d('0xe'),_0x2dbffe,'request\x20sent');logger[_0x9f0d('0xf')](_0x9f0d('0x10'),_0x2dbffe,'request\x20sent',JSON[_0x9f0d('0x11')](_0x4964b1));if(_0x4964b1['error']){if(_0x4964b1[_0x9f0d('0x12')][_0x9f0d('0x13')]===0x1f4){logger[_0x9f0d('0x12')](_0x9f0d('0xe'),_0x2dbffe,_0x4964b1[_0x9f0d('0x12')]['message']);return _0x4bc2f5(_0x4964b1['error'][_0x9f0d('0x14')]);}logger[_0x9f0d('0x12')](_0x9f0d('0xe'),_0x2dbffe,_0x4964b1[_0x9f0d('0x12')][_0x9f0d('0x14')]);return _0x296c46(_0x4964b1[_0x9f0d('0x12')][_0x9f0d('0x14')]);}else{logger[_0x9f0d('0xd')](_0x9f0d('0xe'),_0x2dbffe,_0x9f0d('0x15'));_0x296c46(_0x4964b1[_0x9f0d('0x16')][_0x9f0d('0x14')]);}})[_0x9f0d('0x17')](function(_0x38eff2){logger['error'](_0x9f0d('0xe'),_0x2dbffe,_0x38eff2);_0x4bc2f5(_0x38eff2);});});}exports['GetDeskAccount']=function(_0x2ecd11){var _0x5ecb31=this;return new Promise(function(_0x3ca35f,_0x33fe99){return db[_0x9f0d('0x18')][_0x9f0d('0x19')]({'raw':_0x2ecd11['options']?_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1b')]===undefined?!![]:![]:!![],'where':_0x2ecd11[_0x9f0d('0x1a')]?_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1c')]||null:null,'attributes':_0x2ecd11['options']?_0x2ecd11[_0x9f0d('0x1a')]['attributes']||null:null,'limit':_0x2ecd11[_0x9f0d('0x1a')]?_0x2ecd11['options'][_0x9f0d('0x1d')]||null:null,'include':_0x2ecd11[_0x9f0d('0x1a')]?_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1e')],function(_0x480419){return{'model':db[_0x480419[_0x9f0d('0x20')]],'as':_0x480419['as'],'attributes':_0x480419[_0x9f0d('0x21')],'include':_0x480419[_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x480419[_0x9f0d('0x1e')],function(_0x75adad){return{'model':db[_0x75adad[_0x9f0d('0x20')]],'as':_0x75adad['as'],'attributes':_0x75adad[_0x9f0d('0x21')],'include':_0x75adad[_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x75adad['include'],function(_0x3db3c8){return{'model':db[_0x3db3c8['model']],'as':_0x3db3c8['as'],'attributes':_0x3db3c8[_0x9f0d('0x21')]};}):[]};}):[]};}):[]:[]})[_0x9f0d('0xc')](function(_0x325ad5){logger[_0x9f0d('0xd')](_0x9f0d('0x22'),_0x2ecd11);logger[_0x9f0d('0xf')](_0x9f0d('0x22'),_0x2ecd11,JSON[_0x9f0d('0x11')](_0x325ad5));_0x3ca35f(_0x325ad5);})[_0x9f0d('0x17')](function(_0xcc37a){logger[_0x9f0d('0x12')](_0x9f0d('0x22'),_0xcc37a[_0x9f0d('0x14')],_0x2ecd11);_0x33fe99(_0x5ecb31['error'](0x1f4,_0xcc37a['message']));});});};exports[_0x9f0d('0x23')]=function(_0x24380b){var _0x5d8220=this;return new Promise(function(_0x13ac12,_0xf3868b){return db['DeskAccount'][_0x9f0d('0x24')]({'raw':_0x24380b[_0x9f0d('0x1a')]?_0x24380b['options'][_0x9f0d('0x1b')]===undefined?!![]:![]:!![],'where':_0x24380b[_0x9f0d('0x1a')]?_0x24380b[_0x9f0d('0x1a')]['where']||null:null,'attributes':_0x24380b['options']?_0x24380b[_0x9f0d('0x1a')][_0x9f0d('0x21')]||null:null,'include':_0x24380b[_0x9f0d('0x1a')]?_0x24380b['options'][_0x9f0d('0x1e')]?_['map'](_0x24380b[_0x9f0d('0x1a')][_0x9f0d('0x1e')],function(_0x3d8182){return{'model':db[_0x3d8182[_0x9f0d('0x20')]],'as':_0x3d8182['as'],'attributes':_0x3d8182['attributes'],'include':_0x3d8182[_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x3d8182[_0x9f0d('0x1e')],function(_0x504585){return{'model':db[_0x504585[_0x9f0d('0x20')]],'as':_0x504585['as'],'attributes':_0x504585['attributes'],'include':_0x504585[_0x9f0d('0x1e')]?_['map'](_0x504585[_0x9f0d('0x1e')],function(_0x334cb4){return{'model':db[_0x334cb4['model']],'as':_0x334cb4['as'],'attributes':_0x334cb4[_0x9f0d('0x21')]};}):[]};}):[]};}):[]:[]})[_0x9f0d('0xc')](function(_0x2ab703){logger['info'](_0x9f0d('0x23'),_0x24380b);logger[_0x9f0d('0xf')]('ShowDeskAccount',_0x24380b,JSON[_0x9f0d('0x11')](_0x2ab703));_0x13ac12(_0x2ab703);})[_0x9f0d('0x17')](function(_0x2dbeb9){logger[_0x9f0d('0x12')](_0x9f0d('0x23'),_0x2dbeb9[_0x9f0d('0x14')],_0x24380b);_0xf3868b(_0x5d8220[_0x9f0d('0x12')](0x1f4,_0x2dbeb9[_0x9f0d('0x14')]));});});};
\ No newline at end of file
+var _0xb6b6=['DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetDeskAccount','DeskAccount','options','raw','where','attributes','limit','include','map','model','catch','ShowDeskAccount','find','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug'];(function(_0xb91b72,_0x2ee525){var _0x262c79=function(_0x394fb5){while(--_0x394fb5){_0xb91b72['push'](_0xb91b72['shift']());}};_0x262c79(++_0x2ee525);}(_0xb6b6,0x160));var _0x6b6b=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0xb6b6[_0x4b055c];return _0x4b62bb;};'use strict';var _=require(_0x6b6b('0x0'));var util=require(_0x6b6b('0x1'));var moment=require(_0x6b6b('0x2'));var BPromise=require(_0x6b6b('0x3'));var rs=require(_0x6b6b('0x4'));var fs=require('fs');var Redis=require(_0x6b6b('0x5'));var db=require(_0x6b6b('0x6'))['db'];var utils=require(_0x6b6b('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x6b6b('0x8'));var jayson=require(_0x6b6b('0x9'));var client=jayson[_0x6b6b('0xa')][_0x6b6b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x18c36d,_0x4293c8,_0x3ac19d){return new BPromise(function(_0x5881c5,_0x3d4abc){return client[_0x6b6b('0xc')](_0x18c36d,_0x3ac19d)[_0x6b6b('0xd')](function(_0x32ebb1){logger[_0x6b6b('0xe')](_0x6b6b('0xf'),_0x4293c8,_0x6b6b('0x10'));logger[_0x6b6b('0x11')](_0x6b6b('0x12'),_0x4293c8,'request\x20sent',JSON[_0x6b6b('0x13')](_0x32ebb1));if(_0x32ebb1[_0x6b6b('0x14')]){if(_0x32ebb1['error'][_0x6b6b('0x15')]===0x1f4){logger[_0x6b6b('0x14')](_0x6b6b('0xf'),_0x4293c8,_0x32ebb1[_0x6b6b('0x14')][_0x6b6b('0x16')]);return _0x3d4abc(_0x32ebb1['error'][_0x6b6b('0x16')]);}logger[_0x6b6b('0x14')](_0x6b6b('0xf'),_0x4293c8,_0x32ebb1[_0x6b6b('0x14')]['message']);return _0x5881c5(_0x32ebb1[_0x6b6b('0x14')]['message']);}else{logger['info'](_0x6b6b('0xf'),_0x4293c8,_0x6b6b('0x10'));_0x5881c5(_0x32ebb1[_0x6b6b('0x17')]['message']);}})['catch'](function(_0xa79189){logger[_0x6b6b('0x14')](_0x6b6b('0xf'),_0x4293c8,_0xa79189);_0x3d4abc(_0xa79189);});});}exports[_0x6b6b('0x18')]=function(_0x33edbd){var _0x22316c=this;return new Promise(function(_0x527839,_0x356eab){return db[_0x6b6b('0x19')]['findAll']({'raw':_0x33edbd[_0x6b6b('0x1a')]?_0x33edbd[_0x6b6b('0x1a')][_0x6b6b('0x1b')]===undefined?!![]:![]:!![],'where':_0x33edbd[_0x6b6b('0x1a')]?_0x33edbd['options'][_0x6b6b('0x1c')]||null:null,'attributes':_0x33edbd[_0x6b6b('0x1a')]?_0x33edbd[_0x6b6b('0x1a')][_0x6b6b('0x1d')]||null:null,'limit':_0x33edbd[_0x6b6b('0x1a')]?_0x33edbd[_0x6b6b('0x1a')][_0x6b6b('0x1e')]||null:null,'include':_0x33edbd[_0x6b6b('0x1a')]?_0x33edbd[_0x6b6b('0x1a')][_0x6b6b('0x1f')]?_[_0x6b6b('0x20')](_0x33edbd[_0x6b6b('0x1a')][_0x6b6b('0x1f')],function(_0x1bc805){return{'model':db[_0x1bc805[_0x6b6b('0x21')]],'as':_0x1bc805['as'],'attributes':_0x1bc805[_0x6b6b('0x1d')],'include':_0x1bc805[_0x6b6b('0x1f')]?_[_0x6b6b('0x20')](_0x1bc805[_0x6b6b('0x1f')],function(_0xb4a7a4){return{'model':db[_0xb4a7a4[_0x6b6b('0x21')]],'as':_0xb4a7a4['as'],'attributes':_0xb4a7a4[_0x6b6b('0x1d')],'include':_0xb4a7a4['include']?_[_0x6b6b('0x20')](_0xb4a7a4[_0x6b6b('0x1f')],function(_0x233398){return{'model':db[_0x233398[_0x6b6b('0x21')]],'as':_0x233398['as'],'attributes':_0x233398['attributes']};}):[]};}):[]};}):[]:[]})[_0x6b6b('0xd')](function(_0xdf9198){logger[_0x6b6b('0xe')]('GetDeskAccount',_0x33edbd);logger['debug'](_0x6b6b('0x18'),_0x33edbd,JSON[_0x6b6b('0x13')](_0xdf9198));_0x527839(_0xdf9198);})[_0x6b6b('0x22')](function(_0x562a20){logger['error'](_0x6b6b('0x18'),_0x562a20[_0x6b6b('0x16')],_0x33edbd);_0x356eab(_0x22316c[_0x6b6b('0x14')](0x1f4,_0x562a20[_0x6b6b('0x16')]));});});};exports[_0x6b6b('0x23')]=function(_0x148d42){var _0xe521ee=this;return new Promise(function(_0x278995,_0x2c8814){return db[_0x6b6b('0x19')][_0x6b6b('0x24')]({'raw':_0x148d42[_0x6b6b('0x1a')]?_0x148d42[_0x6b6b('0x1a')][_0x6b6b('0x1b')]===undefined?!![]:![]:!![],'where':_0x148d42[_0x6b6b('0x1a')]?_0x148d42['options'][_0x6b6b('0x1c')]||null:null,'attributes':_0x148d42[_0x6b6b('0x1a')]?_0x148d42[_0x6b6b('0x1a')][_0x6b6b('0x1d')]||null:null,'include':_0x148d42['options']?_0x148d42[_0x6b6b('0x1a')][_0x6b6b('0x1f')]?_[_0x6b6b('0x20')](_0x148d42[_0x6b6b('0x1a')]['include'],function(_0x3a977e){return{'model':db[_0x3a977e[_0x6b6b('0x21')]],'as':_0x3a977e['as'],'attributes':_0x3a977e[_0x6b6b('0x1d')],'include':_0x3a977e[_0x6b6b('0x1f')]?_[_0x6b6b('0x20')](_0x3a977e[_0x6b6b('0x1f')],function(_0xbac782){return{'model':db[_0xbac782[_0x6b6b('0x21')]],'as':_0xbac782['as'],'attributes':_0xbac782[_0x6b6b('0x1d')],'include':_0xbac782[_0x6b6b('0x1f')]?_[_0x6b6b('0x20')](_0xbac782[_0x6b6b('0x1f')],function(_0xdb720c){return{'model':db[_0xdb720c[_0x6b6b('0x21')]],'as':_0xdb720c['as'],'attributes':_0xdb720c[_0x6b6b('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x6b6b('0xd')](function(_0x1261ad){logger[_0x6b6b('0xe')](_0x6b6b('0x23'),_0x148d42);logger[_0x6b6b('0x11')]('ShowDeskAccount',_0x148d42,JSON[_0x6b6b('0x13')](_0x1261ad));_0x278995(_0x1261ad);})[_0x6b6b('0x22')](function(_0x8cf696){logger[_0x6b6b('0x14')](_0x6b6b('0x23'),_0x8cf696[_0x6b6b('0x16')],_0x148d42);_0x2c8814(_0xe521ee[_0x6b6b('0x14')](0x1f4,_0x8cf696['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['show','/:id/fields','getFields','getSubjects','/:id/descriptions','getDescriptions','getTags','post','/:id/tags','setTags','update','delete','exports','multer','path','connect-timeout','express','../../components/auth/service','../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','/:id'];(function(_0xe00582,_0x167cdb){var _0x500d76=function(_0x524b1f){while(--_0x524b1f){_0xe00582['push'](_0xe00582['shift']());}};_0x500d76(++_0x167cdb);}(_0x3e74,0x175));var _0x43e7=function(_0x9d98f1,_0x4beda6){_0x9d98f1=_0x9d98f1-0x0;var _0x584af3=_0x3e74[_0x9d98f1];return _0x584af3;};'use strict';var multer=require(_0x43e7('0x0'));var util=require('util');var path=require(_0x43e7('0x1'));var timeout=require(_0x43e7('0x2'));var express=require(_0x43e7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x43e7('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x43e7('0x5'));var controller=require(_0x43e7('0x6'));router[_0x43e7('0x7')]('/',auth[_0x43e7('0x8')](),controller[_0x43e7('0x9')]);router['get'](_0x43e7('0xa'),auth[_0x43e7('0x8')](),controller[_0x43e7('0xb')]);router[_0x43e7('0x7')](_0x43e7('0xc'),auth['isAuthenticated'](),controller[_0x43e7('0xd')]);router['get']('/:id/subjects',auth[_0x43e7('0x8')](),controller[_0x43e7('0xe')]);router['get'](_0x43e7('0xf'),auth['isAuthenticated'](),controller[_0x43e7('0x10')]);router[_0x43e7('0x7')]('/:id/tags',auth[_0x43e7('0x8')](),controller[_0x43e7('0x11')]);router[_0x43e7('0x12')]('/',auth[_0x43e7('0x8')](),controller['create']);router['post'](_0x43e7('0x13'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x14')]);router['put']('/:id',auth[_0x43e7('0x8')](),controller[_0x43e7('0x15')]);router[_0x43e7('0x16')](_0x43e7('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x43e7('0x17')]=router;
\ No newline at end of file
+var _0x9c44=['destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./intDeskConfiguration.controller','isAuthenticated','index','get','/:id','/:id/fields','getFields','getSubjects','/:id/descriptions','/:id/tags','post','setTags','put','update'];(function(_0x23c968,_0x3d0f22){var _0x433799=function(_0x512a9c){while(--_0x512a9c){_0x23c968['push'](_0x23c968['shift']());}};_0x433799(++_0x3d0f22);}(_0x9c44,0x178));var _0x49c4=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9c44[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x49c4('0x6'));router['get']('/',auth[_0x49c4('0x7')](),controller[_0x49c4('0x8')]);router[_0x49c4('0x9')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller['show']);router[_0x49c4('0x9')](_0x49c4('0xb'),auth[_0x49c4('0x7')](),controller[_0x49c4('0xc')]);router['get']('/:id/subjects',auth[_0x49c4('0x7')](),controller[_0x49c4('0xd')]);router['get'](_0x49c4('0xe'),auth[_0x49c4('0x7')](),controller['getDescriptions']);router['get'](_0x49c4('0xf'),auth[_0x49c4('0x7')](),controller['getTags']);router[_0x49c4('0x10')]('/',auth[_0x49c4('0x7')](),controller['create']);router[_0x49c4('0x10')](_0x49c4('0xf'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x11')]);router[_0x49c4('0x12')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x13')]);router['delete'](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x14')]);module[_0x49c4('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x261e=['exports','STRING','sequelize'];(function(_0x2e0b31,_0x155ff2){var _0x424fef=function(_0x219d27){while(--_0x219d27){_0x2e0b31['push'](_0x2e0b31['shift']());}};_0x424fef(++_0x155ff2);}(_0x261e,0x1ca));var _0xe261=function(_0x3cd431,_0x4cf65d){_0x3cd431=_0x3cd431-0x0;var _0x522f3c=_0x261e[_0x3cd431];return _0x522f3c;};'use strict';var Sequelize=require(_0xe261('0x0'));module[_0xe261('0x1')]={'name':{'type':Sequelize[_0xe261('0x2')]},'description':{'type':Sequelize[_0xe261('0x2')]}};
\ No newline at end of file
+var _0x904d=['STRING','sequelize','exports'];(function(_0x9d35cb,_0xa66f14){var _0x7c1125=function(_0x20e724){while(--_0x20e724){_0x9d35cb['push'](_0x9d35cb['shift']());}};_0x7c1125(++_0xa66f14);}(_0x904d,0x157));var _0xd904=function(_0xaaf2e2,_0x19d28a){_0xaaf2e2=_0xaaf2e2-0x0;var _0x28bc36=_0x904d[_0xaaf2e2];return _0x28bc36;};'use strict';var Sequelize=require(_0xd904('0x0'));module[_0xd904('0x1')]={'name':{'type':Sequelize[_0xd904('0x2')]},'description':{'type':Sequelize[_0xd904('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b90=['update','getFields','findOne','DeskField','getSubjects','getDescriptions','getTags','setTags','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','save','then','destroy','error','name','send','map','DeskConfiguration','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','find','create','body'];(function(_0x3de8a4,_0x289a5c){var _0x4635cf=function(_0x2bddb8){while(--_0x2bddb8){_0x3de8a4['push'](_0x3de8a4['shift']());}};_0x4635cf(++_0x289a5c);}(_0x5b90,0x19d));var _0x05b9=function(_0x29215d,_0x39143f){_0x29215d=_0x29215d-0x0;var _0x265037=_0x5b90[_0x29215d];return _0x265037;};'use strict';var emlformat=require(_0x05b9('0x0'));var rimraf=require(_0x05b9('0x1'));var zipdir=require(_0x05b9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x05b9('0x3'));var moment=require('moment');var BPromise=require(_0x05b9('0x4'));var Mustache=require(_0x05b9('0x5'));var util=require(_0x05b9('0x6'));var path=require('path');var sox=require(_0x05b9('0x7'));var csv=require(_0x05b9('0x8'));var ejs=require(_0x05b9('0x9'));var fs=require('fs');var fs_extra=require(_0x05b9('0xa'));var _=require('lodash');var squel=require(_0x05b9('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x05b9('0xc'));var Papa=require(_0x05b9('0xd'));var Redis=require(_0x05b9('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x05b9('0xf'));var as=require(_0x05b9('0x10'));var hardwareService=require(_0x05b9('0x11'));var logger=require('../../config/logger')(_0x05b9('0x12'));var utils=require(_0x05b9('0x13'));var config=require(_0x05b9('0x14'));var licenseUtil=require(_0x05b9('0x15'));var db=require(_0x05b9('0x16'))['db'];function respondWithStatusCode(_0x2bcbe6,_0x5e6c88){_0x5e6c88=_0x5e6c88||0xcc;return function(_0x3b8eb9){if(_0x3b8eb9){return _0x2bcbe6[_0x05b9('0x17')](_0x5e6c88);}return _0x2bcbe6['status'](_0x5e6c88)[_0x05b9('0x18')]();};}function respondWithResult(_0x1474b7,_0x51fda3){_0x51fda3=_0x51fda3||0xc8;return function(_0x59be2f){if(_0x59be2f){return _0x1474b7[_0x05b9('0x19')](_0x51fda3)[_0x05b9('0x1a')](_0x59be2f);}};}function respondWithFilteredResult(_0x5f4587,_0x2eb8bc){return function(_0x52f50e){if(_0x52f50e){var _0x13888f=typeof _0x2eb8bc['offset']===_0x05b9('0x1b')&&typeof _0x2eb8bc[_0x05b9('0x1c')]===_0x05b9('0x1b');var _0x5a8ec1=_0x52f50e[_0x05b9('0x1d')];var _0x51c823=_0x13888f?0x0:_0x2eb8bc[_0x05b9('0x1e')];var _0x3ed59d=_0x13888f?_0x52f50e[_0x05b9('0x1d')]:_0x2eb8bc[_0x05b9('0x1e')]+_0x2eb8bc[_0x05b9('0x1c')];var _0x4e85ae;if(_0x3ed59d>=_0x5a8ec1){_0x3ed59d=_0x5a8ec1;_0x4e85ae=0xc8;}else{_0x4e85ae=0xce;}_0x5f4587[_0x05b9('0x19')](_0x4e85ae);return _0x5f4587[_0x05b9('0x1f')](_0x05b9('0x20'),_0x51c823+'-'+_0x3ed59d+'/'+_0x5a8ec1)[_0x05b9('0x1a')](_0x52f50e);}return null;};}function patchUpdates(_0x5319c9){return function(_0x543cc5){try{jsonpatch[_0x05b9('0x21')](_0x543cc5,_0x5319c9,!![]);}catch(_0x53c623){return BPromise['reject'](_0x53c623);}return _0x543cc5[_0x05b9('0x22')]();};}function saveUpdates(_0x169057,_0xcdef42){return function(_0x2c6189){if(_0x2c6189){return _0x2c6189['update'](_0x169057)[_0x05b9('0x23')](function(_0x4e36e5){return _0x4e36e5;});}return null;};}function removeEntity(_0x15319,_0x386b0f){return function(_0x5b3133){if(_0x5b3133){return _0x5b3133[_0x05b9('0x24')]()[_0x05b9('0x23')](function(){_0x15319[_0x05b9('0x19')](0xcc)[_0x05b9('0x18')]();});}};}function handleEntityNotFound(_0x3d058f,_0x1ff9f7){return function(_0x5166d8){if(!_0x5166d8){_0x3d058f[_0x05b9('0x17')](0x194);}return _0x5166d8;};}function handleError(_0x13277b,_0x29def4){_0x29def4=_0x29def4||0x1f4;return function(_0x12862b){logger[_0x05b9('0x25')](_0x12862b['stack']);if(_0x12862b[_0x05b9('0x26')]){delete _0x12862b[_0x05b9('0x26')];}_0x13277b[_0x05b9('0x19')](_0x29def4)[_0x05b9('0x27')](_0x12862b);};}exports['index']=function(_0x590ac1,_0x48e23a){var _0x4c089a={},_0x3aa1b4={},_0x553f2d={'count':0x0,'rows':[]};var _0x5f08f3=_[_0x05b9('0x28')](db[_0x05b9('0x29')]['rawAttributes'],function(_0x95edcf){return{'name':_0x95edcf[_0x05b9('0x2a')],'type':_0x95edcf[_0x05b9('0x2b')][_0x05b9('0x2c')]};});_0x3aa1b4[_0x05b9('0x2d')]=_[_0x05b9('0x28')](_0x5f08f3,'name');_0x3aa1b4[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x590ac1[_0x05b9('0x2e')]);_0x3aa1b4['filters']=_[_0x05b9('0x30')](_0x3aa1b4[_0x05b9('0x2d')],_0x3aa1b4['query']);_0x4c089a['attributes']=_[_0x05b9('0x30')](_0x3aa1b4[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x590ac1[_0x05b9('0x2e')]['fields']));_0x4c089a['attributes']=_0x4c089a[_0x05b9('0x32')][_0x05b9('0x33')]?_0x4c089a[_0x05b9('0x32')]:_0x3aa1b4[_0x05b9('0x2d')];if(!_0x590ac1[_0x05b9('0x2e')][_0x05b9('0x34')](_0x05b9('0x35'))){_0x4c089a[_0x05b9('0x1c')]=qs['limit'](_0x590ac1['query'][_0x05b9('0x1c')]);_0x4c089a[_0x05b9('0x1e')]=qs[_0x05b9('0x1e')](_0x590ac1[_0x05b9('0x2e')]['offset']);}_0x4c089a[_0x05b9('0x36')]=qs[_0x05b9('0x37')](_0x590ac1[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x4c089a[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_[_0x05b9('0x3a')](_0x590ac1['query'],_0x3aa1b4[_0x05b9('0x39')]),_0x5f08f3);if(_0x590ac1['query'][_0x05b9('0x3b')]){_0x4c089a[_0x05b9('0x38')]=_[_0x05b9('0x3c')](_0x4c089a[_0x05b9('0x38')],{'$or':_['map'](_0x5f08f3,function(_0x1957ac){if(_0x1957ac[_0x05b9('0x2b')]!==_0x05b9('0x3d')){var _0x4911fa={};_0x4911fa[_0x1957ac['name']]={'$like':'%'+_0x590ac1['query']['filter']+'%'};return _0x4911fa;}})});}_0x4c089a=_['merge']({},_0x4c089a,_0x590ac1[_0x05b9('0x3e')]);var _0xf3655b={'where':_0x4c089a[_0x05b9('0x38')]};return db['DeskConfiguration']['count'](_0xf3655b)[_0x05b9('0x23')](function(_0x43a5ce){_0x553f2d[_0x05b9('0x1d')]=_0x43a5ce;if(_0x590ac1[_0x05b9('0x2e')][_0x05b9('0x3f')]){_0x4c089a[_0x05b9('0x40')]=[{'all':!![]}];}return db[_0x05b9('0x29')]['findAll'](_0x4c089a);})[_0x05b9('0x23')](function(_0x2e94d4){_0x553f2d[_0x05b9('0x41')]=_0x2e94d4;return _0x553f2d;})[_0x05b9('0x23')](respondWithFilteredResult(_0x48e23a,_0x4c089a))[_0x05b9('0x42')](handleError(_0x48e23a,null));};exports[_0x05b9('0x43')]=function(_0x2076c6,_0x12164f){var _0x2ab79a={'raw':![],'where':{'id':_0x2076c6[_0x05b9('0x44')]['id']}},_0x53a869={};_0x53a869[_0x05b9('0x2d')]=_[_0x05b9('0x2f')](db[_0x05b9('0x29')][_0x05b9('0x45')]);_0x53a869[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x2076c6[_0x05b9('0x2e')]);_0x53a869[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x53a869[_0x05b9('0x2d')],_0x53a869[_0x05b9('0x2e')]);_0x2ab79a[_0x05b9('0x32')]=_[_0x05b9('0x30')](_0x53a869[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x2076c6[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x2ab79a[_0x05b9('0x32')]=_0x2ab79a[_0x05b9('0x32')][_0x05b9('0x33')]?_0x2ab79a[_0x05b9('0x32')]:_0x53a869[_0x05b9('0x2d')];if(_0x2076c6[_0x05b9('0x2e')][_0x05b9('0x3f')]){_0x2ab79a[_0x05b9('0x40')]=[{'all':!![]}];}_0x2ab79a=_[_0x05b9('0x3c')]({},_0x2ab79a,_0x2076c6[_0x05b9('0x3e')]);return db['DeskConfiguration'][_0x05b9('0x46')](_0x2ab79a)[_0x05b9('0x23')](handleEntityNotFound(_0x12164f,null))[_0x05b9('0x23')](respondWithResult(_0x12164f,null))[_0x05b9('0x42')](handleError(_0x12164f,null));};exports[_0x05b9('0x47')]=function(_0x589316,_0x4c9f9b){return db[_0x05b9('0x29')]['create'](_0x589316[_0x05b9('0x48')],{})[_0x05b9('0x23')](respondWithResult(_0x4c9f9b,0xc9))[_0x05b9('0x42')](handleError(_0x4c9f9b,null));};exports[_0x05b9('0x49')]=function(_0xf6dbb5,_0x22ef88){if(_0xf6dbb5[_0x05b9('0x48')]['id']){delete _0xf6dbb5[_0x05b9('0x48')]['id'];}return db[_0x05b9('0x29')][_0x05b9('0x46')]({'where':{'id':_0xf6dbb5['params']['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x22ef88,null))[_0x05b9('0x23')](saveUpdates(_0xf6dbb5[_0x05b9('0x48')],null))[_0x05b9('0x23')](respondWithResult(_0x22ef88,null))[_0x05b9('0x42')](handleError(_0x22ef88,null));};exports[_0x05b9('0x24')]=function(_0x389748,_0x4ea6d9){return db[_0x05b9('0x29')][_0x05b9('0x46')]({'where':{'id':_0x389748[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x4ea6d9,null))[_0x05b9('0x23')](removeEntity(_0x4ea6d9,null))['catch'](handleError(_0x4ea6d9,null));};exports['getFields']=function(_0x3ebb2d,_0x3cac8f,_0x5b1cd7){var _0x1516eb={};var _0x29dae6={};var _0x46d66f;var _0x347576;return db['DeskConfiguration']['findOne']({'where':{'id':_0x3ebb2d[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x3cac8f,null))[_0x05b9('0x23')](function(_0x30a574){if(_0x30a574){_0x46d66f=_0x30a574;_0x29dae6[_0x05b9('0x2d')]=_[_0x05b9('0x2f')](db['DeskField'][_0x05b9('0x45')]);_0x29dae6[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x3ebb2d[_0x05b9('0x2e')]);_0x29dae6[_0x05b9('0x39')]=_['intersection'](_0x29dae6[_0x05b9('0x2d')],_0x29dae6['query']);_0x1516eb[_0x05b9('0x32')]=_[_0x05b9('0x30')](_0x29dae6[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x1516eb[_0x05b9('0x32')]=_0x1516eb[_0x05b9('0x32')][_0x05b9('0x33')]?_0x1516eb[_0x05b9('0x32')]:_0x29dae6[_0x05b9('0x2d')];_0x1516eb[_0x05b9('0x36')]=qs[_0x05b9('0x37')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x1516eb[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_[_0x05b9('0x3a')](_0x3ebb2d['query'],_0x29dae6['filters']));if(_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x1516eb['where']=_[_0x05b9('0x3c')](_0x1516eb[_0x05b9('0x38')],{'$or':_[_0x05b9('0x28')](_0x1516eb[_0x05b9('0x32')],function(_0x52d2d0){var _0x4e9950={};_0x4e9950[_0x52d2d0]={'$like':'%'+_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x3b')]+'%'};return _0x4e9950;})});}_0x1516eb=_['merge']({},_0x1516eb,_0x3ebb2d[_0x05b9('0x3e')]);return _0x46d66f[_0x05b9('0x4a')](_0x1516eb);}})[_0x05b9('0x23')](function(_0x290e88){if(_0x290e88){_0x347576=_0x290e88['length'];if(!_0x3ebb2d['query'][_0x05b9('0x34')](_0x05b9('0x35'))){_0x1516eb[_0x05b9('0x1c')]=qs[_0x05b9('0x1c')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x1c')]);_0x1516eb[_0x05b9('0x1e')]=qs[_0x05b9('0x1e')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x46d66f['getFields'](_0x1516eb);}})[_0x05b9('0x23')](function(_0x572081){if(_0x572081){return _0x572081?{'count':_0x347576,'rows':_0x572081}:null;}})[_0x05b9('0x23')](respondWithResult(_0x3cac8f,null))[_0x05b9('0x42')](handleError(_0x3cac8f,null));};exports['getSubjects']=function(_0x3b106a,_0x25cbd8,_0x35b2da){var _0x5ef590={};var _0x29b036={};var _0x46e55d;var _0x28206e;return db['DeskConfiguration'][_0x05b9('0x4b')]({'where':{'id':_0x3b106a['params']['id']}})['then'](handleEntityNotFound(_0x25cbd8,null))[_0x05b9('0x23')](function(_0x32a8cf){if(_0x32a8cf){_0x46e55d=_0x32a8cf;_0x29b036['model']=_[_0x05b9('0x2f')](db[_0x05b9('0x4c')]['rawAttributes']);_0x29b036[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x3b106a[_0x05b9('0x2e')]);_0x29b036[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x29b036[_0x05b9('0x2d')],_0x29b036[_0x05b9('0x2e')]);_0x5ef590[_0x05b9('0x32')]=_['intersection'](_0x29b036[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x5ef590[_0x05b9('0x32')]=_0x5ef590[_0x05b9('0x32')][_0x05b9('0x33')]?_0x5ef590[_0x05b9('0x32')]:_0x29b036['model'];_0x5ef590['order']=qs['sort'](_0x3b106a['query'][_0x05b9('0x37')]);_0x5ef590[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_[_0x05b9('0x3a')](_0x3b106a['query'],_0x29b036[_0x05b9('0x39')]));if(_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x5ef590['where']=_['merge'](_0x5ef590['where'],{'$or':_[_0x05b9('0x28')](_0x5ef590['attributes'],function(_0x60687d){var _0xed10ee={};_0xed10ee[_0x60687d]={'$like':'%'+_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x3b')]+'%'};return _0xed10ee;})});}_0x5ef590=_[_0x05b9('0x3c')]({},_0x5ef590,_0x3b106a['options']);return _0x46e55d['getSubjects'](_0x5ef590);}})['then'](function(_0x1104c6){if(_0x1104c6){_0x28206e=_0x1104c6[_0x05b9('0x33')];if(!_0x3b106a[_0x05b9('0x2e')]['hasOwnProperty'](_0x05b9('0x35'))){_0x5ef590[_0x05b9('0x1c')]=qs[_0x05b9('0x1c')](_0x3b106a[_0x05b9('0x2e')]['limit']);_0x5ef590['offset']=qs[_0x05b9('0x1e')](_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x46e55d[_0x05b9('0x4d')](_0x5ef590);}})[_0x05b9('0x23')](function(_0x265856){if(_0x265856){return _0x265856?{'count':_0x28206e,'rows':_0x265856}:null;}})[_0x05b9('0x23')](respondWithResult(_0x25cbd8,null))[_0x05b9('0x42')](handleError(_0x25cbd8,null));};exports[_0x05b9('0x4e')]=function(_0x445bdf,_0x279ed8,_0x4d2569){var _0x591d2b={};var _0x7985df={};var _0x201110;var _0xe29fda;return db[_0x05b9('0x29')]['findOne']({'where':{'id':_0x445bdf[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x279ed8,null))['then'](function(_0x1cb6b8){if(_0x1cb6b8){_0x201110=_0x1cb6b8;_0x7985df[_0x05b9('0x2d')]=_[_0x05b9('0x2f')](db['DeskField']['rawAttributes']);_0x7985df[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x445bdf[_0x05b9('0x2e')]);_0x7985df[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x7985df[_0x05b9('0x2d')],_0x7985df[_0x05b9('0x2e')]);_0x591d2b['attributes']=_['intersection'](_0x7985df['model'],qs['fields'](_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x591d2b[_0x05b9('0x32')]=_0x591d2b['attributes']['length']?_0x591d2b['attributes']:_0x7985df[_0x05b9('0x2d')];_0x591d2b[_0x05b9('0x36')]=qs[_0x05b9('0x37')](_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x591d2b[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_['pick'](_0x445bdf[_0x05b9('0x2e')],_0x7985df[_0x05b9('0x39')]));if(_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x591d2b[_0x05b9('0x38')]=_[_0x05b9('0x3c')](_0x591d2b[_0x05b9('0x38')],{'$or':_[_0x05b9('0x28')](_0x591d2b['attributes'],function(_0x1691a0){var _0x554d84={};_0x554d84[_0x1691a0]={'$like':'%'+_0x445bdf[_0x05b9('0x2e')]['filter']+'%'};return _0x554d84;})});}_0x591d2b=_[_0x05b9('0x3c')]({},_0x591d2b,_0x445bdf['options']);return _0x201110[_0x05b9('0x4e')](_0x591d2b);}})['then'](function(_0x3701f6){if(_0x3701f6){_0xe29fda=_0x3701f6[_0x05b9('0x33')];if(!_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x34')](_0x05b9('0x35'))){_0x591d2b['limit']=qs[_0x05b9('0x1c')](_0x445bdf['query']['limit']);_0x591d2b['offset']=qs['offset'](_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x201110[_0x05b9('0x4e')](_0x591d2b);}})['then'](function(_0x4e9944){if(_0x4e9944){return _0x4e9944?{'count':_0xe29fda,'rows':_0x4e9944}:null;}})[_0x05b9('0x23')](respondWithResult(_0x279ed8,null))[_0x05b9('0x42')](handleError(_0x279ed8,null));};exports[_0x05b9('0x4f')]=function(_0x250aae,_0x3b6b8e,_0x564656){var _0x10a7d8={};var _0x44d65d={};var _0x1c6806;var _0x48b379;return db[_0x05b9('0x29')][_0x05b9('0x4b')]({'where':{'id':_0x250aae[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x3b6b8e,null))[_0x05b9('0x23')](function(_0x49a297){if(_0x49a297){_0x1c6806=_0x49a297;_0x44d65d['model']=_['keys'](db['Tag']['rawAttributes']);_0x44d65d[_0x05b9('0x2e')]=_['keys'](_0x250aae['query']);_0x44d65d[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x44d65d[_0x05b9('0x2d')],_0x44d65d[_0x05b9('0x2e')]);_0x10a7d8['attributes']=_[_0x05b9('0x30')](_0x44d65d[_0x05b9('0x2d')],qs['fields'](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x10a7d8['attributes']=_0x10a7d8[_0x05b9('0x32')]['length']?_0x10a7d8['attributes']:_0x44d65d[_0x05b9('0x2d')];_0x10a7d8['order']=qs[_0x05b9('0x37')](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x10a7d8[_0x05b9('0x38')]=qs['filters'](_[_0x05b9('0x3a')](_0x250aae[_0x05b9('0x2e')],_0x44d65d[_0x05b9('0x39')]));if(_0x250aae[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x10a7d8[_0x05b9('0x38')]=_[_0x05b9('0x3c')](_0x10a7d8[_0x05b9('0x38')],{'$or':_['map'](_0x10a7d8[_0x05b9('0x32')],function(_0x548ec2){var _0x766aaa={};_0x766aaa[_0x548ec2]={'$like':'%'+_0x250aae[_0x05b9('0x2e')][_0x05b9('0x3b')]+'%'};return _0x766aaa;})});}_0x10a7d8=_['merge']({},_0x10a7d8,_0x250aae[_0x05b9('0x3e')]);return _0x1c6806[_0x05b9('0x4f')](_0x10a7d8);}})[_0x05b9('0x23')](function(_0x23bb03){if(_0x23bb03){_0x48b379=_0x23bb03[_0x05b9('0x33')];if(!_0x250aae[_0x05b9('0x2e')][_0x05b9('0x34')](_0x05b9('0x35'))){_0x10a7d8['limit']=qs['limit'](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x1c')]);_0x10a7d8[_0x05b9('0x1e')]=qs[_0x05b9('0x1e')](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x1c6806[_0x05b9('0x4f')](_0x10a7d8);}})[_0x05b9('0x23')](function(_0x14a3b4){if(_0x14a3b4){return _0x14a3b4?{'count':_0x48b379,'rows':_0x14a3b4}:null;}})[_0x05b9('0x23')](respondWithResult(_0x3b6b8e,null))[_0x05b9('0x42')](handleError(_0x3b6b8e,null));};exports['setTags']=function(_0x5d54f6,_0x247d99,_0x1be97b){if(_0x5d54f6['body']['id']){delete _0x5d54f6['body']['id'];}return db[_0x05b9('0x29')]['findOne']({'where':{'id':_0x5d54f6[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x247d99,null))[_0x05b9('0x23')](function(_0x1e0730){if(_0x1e0730){return _0x1e0730[_0x05b9('0x50')](_0x5d54f6['body']['ids']||[]);}return null;})[_0x05b9('0x23')](respondWithResult(_0x247d99,null))[_0x05b9('0x42')](handleError(_0x247d99,null));};
\ No newline at end of file
+var _0x9ad5=['getFields','getSubjects','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','json','offset','undefined','limit','count','status','set','apply','reject','save','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','options','includeAll','findAll','catch','show','params','include','DeskConfiguration','find','create','body','findOne','DeskField'];(function(_0x4353f3,_0x466f1e){var _0x372301=function(_0x33c2de){while(--_0x33c2de){_0x4353f3['push'](_0x4353f3['shift']());}};_0x372301(++_0x466f1e);}(_0x9ad5,0x1f3));var _0x59ad=function(_0x5c52e9,_0x71e1aa){_0x5c52e9=_0x5c52e9-0x0;var _0x1cbf09=_0x9ad5[_0x5c52e9];return _0x1cbf09;};'use strict';var emlformat=require(_0x59ad('0x0'));var rimraf=require(_0x59ad('0x1'));var zipdir=require(_0x59ad('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x59ad('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x59ad('0x4'));var util=require(_0x59ad('0x5'));var path=require(_0x59ad('0x6'));var sox=require(_0x59ad('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x59ad('0x8'));var squel=require(_0x59ad('0x9'));var crypto=require(_0x59ad('0xa'));var jsforce=require(_0x59ad('0xb'));var deskjs=require(_0x59ad('0xc'));var toCsv=require('to-csv');var querystring=require(_0x59ad('0xd'));var Papa=require(_0x59ad('0xe'));var Redis=require(_0x59ad('0xf'));var authService=require(_0x59ad('0x10'));var qs=require(_0x59ad('0x11'));var as=require(_0x59ad('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x59ad('0x13'))('api');var utils=require(_0x59ad('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x59ad('0x15'))['db'];function respondWithStatusCode(_0x4dc217,_0x21a212){_0x21a212=_0x21a212||0xcc;return function(_0x41d182){if(_0x41d182){return _0x4dc217[_0x59ad('0x16')](_0x21a212);}return _0x4dc217['status'](_0x21a212)[_0x59ad('0x17')]();};}function respondWithResult(_0x444d18,_0x23c5b2){_0x23c5b2=_0x23c5b2||0xc8;return function(_0x370802){if(_0x370802){return _0x444d18['status'](_0x23c5b2)[_0x59ad('0x18')](_0x370802);}};}function respondWithFilteredResult(_0x16ed7d,_0x56df14){return function(_0x44f35c){if(_0x44f35c){var _0x127f88=typeof _0x56df14[_0x59ad('0x19')]===_0x59ad('0x1a')&&typeof _0x56df14[_0x59ad('0x1b')]===_0x59ad('0x1a');var _0x28beea=_0x44f35c[_0x59ad('0x1c')];var _0x44c946=_0x127f88?0x0:_0x56df14[_0x59ad('0x19')];var _0x58ad08=_0x127f88?_0x44f35c[_0x59ad('0x1c')]:_0x56df14['offset']+_0x56df14[_0x59ad('0x1b')];var _0x547c6a;if(_0x58ad08>=_0x28beea){_0x58ad08=_0x28beea;_0x547c6a=0xc8;}else{_0x547c6a=0xce;}_0x16ed7d[_0x59ad('0x1d')](_0x547c6a);return _0x16ed7d[_0x59ad('0x1e')]('Content-Range',_0x44c946+'-'+_0x58ad08+'/'+_0x28beea)[_0x59ad('0x18')](_0x44f35c);}return null;};}function patchUpdates(_0x1a11ba){return function(_0x331bd0){try{jsonpatch[_0x59ad('0x1f')](_0x331bd0,_0x1a11ba,!![]);}catch(_0x3fb222){return BPromise[_0x59ad('0x20')](_0x3fb222);}return _0x331bd0[_0x59ad('0x21')]();};}function saveUpdates(_0x17d1d2,_0x484dc7){return function(_0xcefa60){if(_0xcefa60){return _0xcefa60['update'](_0x17d1d2)[_0x59ad('0x22')](function(_0x2a0369){return _0x2a0369;});}return null;};}function removeEntity(_0x55f934,_0x3a08a6){return function(_0x377fff){if(_0x377fff){return _0x377fff[_0x59ad('0x23')]()['then'](function(){_0x55f934[_0x59ad('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x11ba7a,_0x319ef2){return function(_0x2d56a8){if(!_0x2d56a8){_0x11ba7a['sendStatus'](0x194);}return _0x2d56a8;};}function handleError(_0x51cd82,_0x3bfca8){_0x3bfca8=_0x3bfca8||0x1f4;return function(_0x2d8d62){logger[_0x59ad('0x24')](_0x2d8d62[_0x59ad('0x25')]);if(_0x2d8d62[_0x59ad('0x26')]){delete _0x2d8d62[_0x59ad('0x26')];}_0x51cd82['status'](_0x3bfca8)[_0x59ad('0x27')](_0x2d8d62);};}exports[_0x59ad('0x28')]=function(_0x3087db,_0x4fd4a4){var _0x27da3d={},_0x1e3420={},_0x5ed3f1={'count':0x0,'rows':[]};var _0x1ffefc=_[_0x59ad('0x29')](db['DeskConfiguration'][_0x59ad('0x2a')],function(_0xd8ea1a){return{'name':_0xd8ea1a[_0x59ad('0x2b')],'type':_0xd8ea1a[_0x59ad('0x2c')][_0x59ad('0x2d')]};});_0x1e3420['model']=_[_0x59ad('0x29')](_0x1ffefc,_0x59ad('0x26'));_0x1e3420[_0x59ad('0x2e')]=_[_0x59ad('0x2f')](_0x3087db['query']);_0x1e3420['filters']=_[_0x59ad('0x30')](_0x1e3420[_0x59ad('0x31')],_0x1e3420[_0x59ad('0x2e')]);_0x27da3d['attributes']=_['intersection'](_0x1e3420[_0x59ad('0x31')],qs[_0x59ad('0x32')](_0x3087db[_0x59ad('0x2e')]['fields']));_0x27da3d[_0x59ad('0x33')]=_0x27da3d[_0x59ad('0x33')][_0x59ad('0x34')]?_0x27da3d['attributes']:_0x1e3420[_0x59ad('0x31')];if(!_0x3087db['query'][_0x59ad('0x35')](_0x59ad('0x36'))){_0x27da3d[_0x59ad('0x1b')]=qs[_0x59ad('0x1b')](_0x3087db['query'][_0x59ad('0x1b')]);_0x27da3d[_0x59ad('0x19')]=qs[_0x59ad('0x19')](_0x3087db[_0x59ad('0x2e')]['offset']);}_0x27da3d[_0x59ad('0x37')]=qs['sort'](_0x3087db['query'][_0x59ad('0x38')]);_0x27da3d[_0x59ad('0x39')]=qs['filters'](_[_0x59ad('0x3a')](_0x3087db['query'],_0x1e3420[_0x59ad('0x3b')]),_0x1ffefc);if(_0x3087db[_0x59ad('0x2e')][_0x59ad('0x3c')]){_0x27da3d[_0x59ad('0x39')]=_[_0x59ad('0x3d')](_0x27da3d[_0x59ad('0x39')],{'$or':_['map'](_0x1ffefc,function(_0x5c3309){if(_0x5c3309[_0x59ad('0x2c')]!=='VIRTUAL'){var _0x3c60e7={};_0x3c60e7[_0x5c3309[_0x59ad('0x26')]]={'$like':'%'+_0x3087db[_0x59ad('0x2e')][_0x59ad('0x3c')]+'%'};return _0x3c60e7;}})});}_0x27da3d=_['merge']({},_0x27da3d,_0x3087db[_0x59ad('0x3e')]);var _0x200dee={'where':_0x27da3d['where']};return db['DeskConfiguration'][_0x59ad('0x1c')](_0x200dee)[_0x59ad('0x22')](function(_0x347f3a){_0x5ed3f1[_0x59ad('0x1c')]=_0x347f3a;if(_0x3087db[_0x59ad('0x2e')][_0x59ad('0x3f')]){_0x27da3d['include']=[{'all':!![]}];}return db['DeskConfiguration'][_0x59ad('0x40')](_0x27da3d);})[_0x59ad('0x22')](function(_0x53c540){_0x5ed3f1['rows']=_0x53c540;return _0x5ed3f1;})[_0x59ad('0x22')](respondWithFilteredResult(_0x4fd4a4,_0x27da3d))[_0x59ad('0x41')](handleError(_0x4fd4a4,null));};exports[_0x59ad('0x42')]=function(_0xecbc2c,_0x3f19d6){var _0x2e9c2c={'raw':![],'where':{'id':_0xecbc2c[_0x59ad('0x43')]['id']}},_0xa670f4={};_0xa670f4['model']=_['keys'](db['DeskConfiguration'][_0x59ad('0x2a')]);_0xa670f4['query']=_['keys'](_0xecbc2c[_0x59ad('0x2e')]);_0xa670f4[_0x59ad('0x3b')]=_['intersection'](_0xa670f4[_0x59ad('0x31')],_0xa670f4[_0x59ad('0x2e')]);_0x2e9c2c[_0x59ad('0x33')]=_['intersection'](_0xa670f4[_0x59ad('0x31')],qs[_0x59ad('0x32')](_0xecbc2c['query']['fields']));_0x2e9c2c[_0x59ad('0x33')]=_0x2e9c2c['attributes'][_0x59ad('0x34')]?_0x2e9c2c[_0x59ad('0x33')]:_0xa670f4[_0x59ad('0x31')];if(_0xecbc2c['query']['includeAll']){_0x2e9c2c[_0x59ad('0x44')]=[{'all':!![]}];}_0x2e9c2c=_[_0x59ad('0x3d')]({},_0x2e9c2c,_0xecbc2c['options']);return db[_0x59ad('0x45')][_0x59ad('0x46')](_0x2e9c2c)[_0x59ad('0x22')](handleEntityNotFound(_0x3f19d6,null))[_0x59ad('0x22')](respondWithResult(_0x3f19d6,null))[_0x59ad('0x41')](handleError(_0x3f19d6,null));};exports[_0x59ad('0x47')]=function(_0x42b8d5,_0xf6cfd1){return db[_0x59ad('0x45')][_0x59ad('0x47')](_0x42b8d5[_0x59ad('0x48')],{})[_0x59ad('0x22')](respondWithResult(_0xf6cfd1,0xc9))['catch'](handleError(_0xf6cfd1,null));};exports['update']=function(_0x5c06a6,_0x2f1e7d){if(_0x5c06a6[_0x59ad('0x48')]['id']){delete _0x5c06a6[_0x59ad('0x48')]['id'];}return db[_0x59ad('0x45')]['find']({'where':{'id':_0x5c06a6['params']['id']}})[_0x59ad('0x22')](handleEntityNotFound(_0x2f1e7d,null))[_0x59ad('0x22')](saveUpdates(_0x5c06a6['body'],null))['then'](respondWithResult(_0x2f1e7d,null))['catch'](handleError(_0x2f1e7d,null));};exports[_0x59ad('0x23')]=function(_0x43b746,_0x5aaf12){return db['DeskConfiguration'][_0x59ad('0x46')]({'where':{'id':_0x43b746[_0x59ad('0x43')]['id']}})[_0x59ad('0x22')](handleEntityNotFound(_0x5aaf12,null))[_0x59ad('0x22')](removeEntity(_0x5aaf12,null))[_0x59ad('0x41')](handleError(_0x5aaf12,null));};exports['getFields']=function(_0xa1182,_0x4cb03c,_0x360a26){var _0x24dcc9={};var _0x43894b={};var _0xabe1e8;var _0x3f4671;return db[_0x59ad('0x45')][_0x59ad('0x49')]({'where':{'id':_0xa1182[_0x59ad('0x43')]['id']}})[_0x59ad('0x22')](handleEntityNotFound(_0x4cb03c,null))['then'](function(_0x3c687d){if(_0x3c687d){_0xabe1e8=_0x3c687d;_0x43894b['model']=_['keys'](db[_0x59ad('0x4a')][_0x59ad('0x2a')]);_0x43894b['query']=_[_0x59ad('0x2f')](_0xa1182['query']);_0x43894b[_0x59ad('0x3b')]=_[_0x59ad('0x30')](_0x43894b[_0x59ad('0x31')],_0x43894b[_0x59ad('0x2e')]);_0x24dcc9[_0x59ad('0x33')]=_['intersection'](_0x43894b['model'],qs[_0x59ad('0x32')](_0xa1182[_0x59ad('0x2e')]['fields']));_0x24dcc9['attributes']=_0x24dcc9[_0x59ad('0x33')]['length']?_0x24dcc9[_0x59ad('0x33')]:_0x43894b['model'];_0x24dcc9[_0x59ad('0x37')]=qs['sort'](_0xa1182['query'][_0x59ad('0x38')]);_0x24dcc9[_0x59ad('0x39')]=qs[_0x59ad('0x3b')](_[_0x59ad('0x3a')](_0xa1182[_0x59ad('0x2e')],_0x43894b['filters']));if(_0xa1182[_0x59ad('0x2e')]['filter']){_0x24dcc9[_0x59ad('0x39')]=_['merge'](_0x24dcc9[_0x59ad('0x39')],{'$or':_[_0x59ad('0x29')](_0x24dcc9['attributes'],function(_0x3ad063){var _0x27adab={};_0x27adab[_0x3ad063]={'$like':'%'+_0xa1182[_0x59ad('0x2e')][_0x59ad('0x3c')]+'%'};return _0x27adab;})});}_0x24dcc9=_[_0x59ad('0x3d')]({},_0x24dcc9,_0xa1182['options']);return _0xabe1e8[_0x59ad('0x4b')](_0x24dcc9);}})['then'](function(_0x3214d2){if(_0x3214d2){_0x3f4671=_0x3214d2['length'];if(!_0xa1182[_0x59ad('0x2e')]['hasOwnProperty'](_0x59ad('0x36'))){_0x24dcc9[_0x59ad('0x1b')]=qs[_0x59ad('0x1b')](_0xa1182[_0x59ad('0x2e')][_0x59ad('0x1b')]);_0x24dcc9['offset']=qs['offset'](_0xa1182[_0x59ad('0x2e')]['offset']);}return _0xabe1e8[_0x59ad('0x4b')](_0x24dcc9);}})[_0x59ad('0x22')](function(_0x478804){if(_0x478804){return _0x478804?{'count':_0x3f4671,'rows':_0x478804}:null;}})[_0x59ad('0x22')](respondWithResult(_0x4cb03c,null))[_0x59ad('0x41')](handleError(_0x4cb03c,null));};exports['getSubjects']=function(_0x488b3b,_0x39e263,_0x438491){var _0x591436={};var _0x5d3122={};var _0x1e1f7e;var _0x8345c6;return db[_0x59ad('0x45')][_0x59ad('0x49')]({'where':{'id':_0x488b3b[_0x59ad('0x43')]['id']}})[_0x59ad('0x22')](handleEntityNotFound(_0x39e263,null))['then'](function(_0x2de367){if(_0x2de367){_0x1e1f7e=_0x2de367;_0x5d3122[_0x59ad('0x31')]=_['keys'](db[_0x59ad('0x4a')][_0x59ad('0x2a')]);_0x5d3122[_0x59ad('0x2e')]=_[_0x59ad('0x2f')](_0x488b3b[_0x59ad('0x2e')]);_0x5d3122[_0x59ad('0x3b')]=_[_0x59ad('0x30')](_0x5d3122['model'],_0x5d3122[_0x59ad('0x2e')]);_0x591436[_0x59ad('0x33')]=_[_0x59ad('0x30')](_0x5d3122[_0x59ad('0x31')],qs[_0x59ad('0x32')](_0x488b3b[_0x59ad('0x2e')][_0x59ad('0x32')]));_0x591436[_0x59ad('0x33')]=_0x591436[_0x59ad('0x33')][_0x59ad('0x34')]?_0x591436['attributes']:_0x5d3122['model'];_0x591436[_0x59ad('0x37')]=qs[_0x59ad('0x38')](_0x488b3b[_0x59ad('0x2e')][_0x59ad('0x38')]);_0x591436['where']=qs[_0x59ad('0x3b')](_['pick'](_0x488b3b['query'],_0x5d3122[_0x59ad('0x3b')]));if(_0x488b3b[_0x59ad('0x2e')][_0x59ad('0x3c')]){_0x591436[_0x59ad('0x39')]=_[_0x59ad('0x3d')](_0x591436['where'],{'$or':_[_0x59ad('0x29')](_0x591436[_0x59ad('0x33')],function(_0x175886){var _0x59813f={};_0x59813f[_0x175886]={'$like':'%'+_0x488b3b[_0x59ad('0x2e')][_0x59ad('0x3c')]+'%'};return _0x59813f;})});}_0x591436=_[_0x59ad('0x3d')]({},_0x591436,_0x488b3b[_0x59ad('0x3e')]);return _0x1e1f7e['getSubjects'](_0x591436);}})['then'](function(_0x3d0ad4){if(_0x3d0ad4){_0x8345c6=_0x3d0ad4[_0x59ad('0x34')];if(!_0x488b3b['query'][_0x59ad('0x35')](_0x59ad('0x36'))){_0x591436[_0x59ad('0x1b')]=qs['limit'](_0x488b3b['query']['limit']);_0x591436[_0x59ad('0x19')]=qs[_0x59ad('0x19')](_0x488b3b[_0x59ad('0x2e')][_0x59ad('0x19')]);}return _0x1e1f7e[_0x59ad('0x4c')](_0x591436);}})[_0x59ad('0x22')](function(_0x5775a9){if(_0x5775a9){return _0x5775a9?{'count':_0x8345c6,'rows':_0x5775a9}:null;}})['then'](respondWithResult(_0x39e263,null))[_0x59ad('0x41')](handleError(_0x39e263,null));};exports['getDescriptions']=function(_0x23b976,_0x4d5dfa,_0x5e7995){var _0x292e23={};var _0x3269a6={};var _0x25bcb1;var _0x3955c7;return db[_0x59ad('0x45')][_0x59ad('0x49')]({'where':{'id':_0x23b976[_0x59ad('0x43')]['id']}})[_0x59ad('0x22')](handleEntityNotFound(_0x4d5dfa,null))[_0x59ad('0x22')](function(_0x4d7934){if(_0x4d7934){_0x25bcb1=_0x4d7934;_0x3269a6[_0x59ad('0x31')]=_[_0x59ad('0x2f')](db[_0x59ad('0x4a')]['rawAttributes']);_0x3269a6[_0x59ad('0x2e')]=_[_0x59ad('0x2f')](_0x23b976['query']);_0x3269a6[_0x59ad('0x3b')]=_['intersection'](_0x3269a6[_0x59ad('0x31')],_0x3269a6['query']);_0x292e23[_0x59ad('0x33')]=_[_0x59ad('0x30')](_0x3269a6[_0x59ad('0x31')],qs['fields'](_0x23b976[_0x59ad('0x2e')][_0x59ad('0x32')]));_0x292e23[_0x59ad('0x33')]=_0x292e23['attributes'][_0x59ad('0x34')]?_0x292e23[_0x59ad('0x33')]:_0x3269a6[_0x59ad('0x31')];_0x292e23['order']=qs[_0x59ad('0x38')](_0x23b976[_0x59ad('0x2e')][_0x59ad('0x38')]);_0x292e23['where']=qs['filters'](_[_0x59ad('0x3a')](_0x23b976[_0x59ad('0x2e')],_0x3269a6['filters']));if(_0x23b976[_0x59ad('0x2e')][_0x59ad('0x3c')]){_0x292e23[_0x59ad('0x39')]=_[_0x59ad('0x3d')](_0x292e23[_0x59ad('0x39')],{'$or':_[_0x59ad('0x29')](_0x292e23[_0x59ad('0x33')],function(_0x89586f){var _0x4dd51a={};_0x4dd51a[_0x89586f]={'$like':'%'+_0x23b976[_0x59ad('0x2e')][_0x59ad('0x3c')]+'%'};return _0x4dd51a;})});}_0x292e23=_[_0x59ad('0x3d')]({},_0x292e23,_0x23b976['options']);return _0x25bcb1[_0x59ad('0x4d')](_0x292e23);}})['then'](function(_0x56be96){if(_0x56be96){_0x3955c7=_0x56be96[_0x59ad('0x34')];if(!_0x23b976[_0x59ad('0x2e')][_0x59ad('0x35')]('nolimit')){_0x292e23[_0x59ad('0x1b')]=qs['limit'](_0x23b976['query'][_0x59ad('0x1b')]);_0x292e23['offset']=qs[_0x59ad('0x19')](_0x23b976[_0x59ad('0x2e')]['offset']);}return _0x25bcb1[_0x59ad('0x4d')](_0x292e23);}})[_0x59ad('0x22')](function(_0x489f70){if(_0x489f70){return _0x489f70?{'count':_0x3955c7,'rows':_0x489f70}:null;}})['then'](respondWithResult(_0x4d5dfa,null))['catch'](handleError(_0x4d5dfa,null));};exports[_0x59ad('0x4e')]=function(_0x5efb1d,_0x48dd66,_0x41ffb6){var _0x22268f={};var _0x21b86e={};var _0x3b3a85;var _0x2faa68;return db['DeskConfiguration'][_0x59ad('0x49')]({'where':{'id':_0x5efb1d['params']['id']}})[_0x59ad('0x22')](handleEntityNotFound(_0x48dd66,null))['then'](function(_0x5da2b0){if(_0x5da2b0){_0x3b3a85=_0x5da2b0;_0x21b86e['model']=_[_0x59ad('0x2f')](db[_0x59ad('0x4f')][_0x59ad('0x2a')]);_0x21b86e[_0x59ad('0x2e')]=_[_0x59ad('0x2f')](_0x5efb1d[_0x59ad('0x2e')]);_0x21b86e['filters']=_[_0x59ad('0x30')](_0x21b86e['model'],_0x21b86e['query']);_0x22268f['attributes']=_[_0x59ad('0x30')](_0x21b86e[_0x59ad('0x31')],qs[_0x59ad('0x32')](_0x5efb1d[_0x59ad('0x2e')][_0x59ad('0x32')]));_0x22268f[_0x59ad('0x33')]=_0x22268f[_0x59ad('0x33')]['length']?_0x22268f[_0x59ad('0x33')]:_0x21b86e[_0x59ad('0x31')];_0x22268f[_0x59ad('0x37')]=qs[_0x59ad('0x38')](_0x5efb1d[_0x59ad('0x2e')]['sort']);_0x22268f['where']=qs[_0x59ad('0x3b')](_[_0x59ad('0x3a')](_0x5efb1d[_0x59ad('0x2e')],_0x21b86e[_0x59ad('0x3b')]));if(_0x5efb1d['query'][_0x59ad('0x3c')]){_0x22268f[_0x59ad('0x39')]=_[_0x59ad('0x3d')](_0x22268f[_0x59ad('0x39')],{'$or':_['map'](_0x22268f[_0x59ad('0x33')],function(_0x4ae53f){var _0x437728={};_0x437728[_0x4ae53f]={'$like':'%'+_0x5efb1d['query'][_0x59ad('0x3c')]+'%'};return _0x437728;})});}_0x22268f=_[_0x59ad('0x3d')]({},_0x22268f,_0x5efb1d['options']);return _0x3b3a85[_0x59ad('0x4e')](_0x22268f);}})['then'](function(_0x477e29){if(_0x477e29){_0x2faa68=_0x477e29[_0x59ad('0x34')];if(!_0x5efb1d[_0x59ad('0x2e')][_0x59ad('0x35')](_0x59ad('0x36'))){_0x22268f[_0x59ad('0x1b')]=qs['limit'](_0x5efb1d[_0x59ad('0x2e')]['limit']);_0x22268f[_0x59ad('0x19')]=qs[_0x59ad('0x19')](_0x5efb1d[_0x59ad('0x2e')]['offset']);}return _0x3b3a85[_0x59ad('0x4e')](_0x22268f);}})[_0x59ad('0x22')](function(_0x1c86c9){if(_0x1c86c9){return _0x1c86c9?{'count':_0x2faa68,'rows':_0x1c86c9}:null;}})['then'](respondWithResult(_0x48dd66,null))[_0x59ad('0x41')](handleError(_0x48dd66,null));};exports[_0x59ad('0x50')]=function(_0x7d606d,_0x2c59d5,_0x3515f4){if(_0x7d606d[_0x59ad('0x48')]['id']){delete _0x7d606d['body']['id'];}return db[_0x59ad('0x45')][_0x59ad('0x49')]({'where':{'id':_0x7d606d[_0x59ad('0x43')]['id']}})[_0x59ad('0x22')](handleEntityNotFound(_0x2c59d5,null))[_0x59ad('0x22')](function(_0x23f2c5){if(_0x23f2c5){return _0x23f2c5[_0x59ad('0x50')](_0x7d606d[_0x59ad('0x48')][_0x59ad('0x51')]||[]);}return null;})['then'](respondWithResult(_0x2c59d5,null))[_0x59ad('0x41')](handleError(_0x2c59d5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c0c=['define','DeskConfiguration','int_desk_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x8c0c,0x11b));var _0xc8c0=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x8c0c[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0xc8c0('0x0'));var util=require(_0xc8c0('0x1'));var logger=require(_0xc8c0('0x2'))(_0xc8c0('0x3'));var moment=require(_0xc8c0('0x4'));var BPromise=require(_0xc8c0('0x5'));var rp=require(_0xc8c0('0x6'));var fs=require('fs');var path=require(_0xc8c0('0x7'));var rimraf=require(_0xc8c0('0x8'));var config=require(_0xc8c0('0x9'));var attributes=require('./intDeskConfiguration.attributes');module[_0xc8c0('0xa')]=function(_0x20d616,_0x3f117e){return _0x20d616[_0xc8c0('0xb')](_0xc8c0('0xc'),attributes,{'tableName':_0xc8c0('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd458=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','int_desk_configurations','lodash','util','../../config/logger'];(function(_0x367288,_0x2f9772){var _0x2581af=function(_0x3b9b9e){while(--_0x3b9b9e){_0x367288['push'](_0x367288['shift']());}};_0x2581af(++_0x2f9772);}(_0xd458,0x1b9));var _0x8d45=function(_0x2db972,_0x31e8eb){_0x2db972=_0x2db972-0x0;var _0x5a13b0=_0xd458[_0x2db972];return _0x5a13b0;};'use strict';var _=require(_0x8d45('0x0'));var util=require(_0x8d45('0x1'));var logger=require(_0x8d45('0x2'))(_0x8d45('0x3'));var moment=require(_0x8d45('0x4'));var BPromise=require(_0x8d45('0x5'));var rp=require(_0x8d45('0x6'));var fs=require('fs');var path=require(_0x8d45('0x7'));var rimraf=require(_0x8d45('0x8'));var config=require(_0x8d45('0x9'));var attributes=require('./intDeskConfiguration.attributes');module[_0x8d45('0xa')]=function(_0xd5f443,_0xb43ce7){return _0xd5f443['define']('DeskConfiguration',attributes,{'tableName':_0x8d45('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ebd=['../../config/logger','rpc','../../config/environment','http','request','then','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils'];(function(_0x2adaf2,_0x511aad){var _0x4f5ff9=function(_0x3a5285){while(--_0x3a5285){_0x2adaf2['push'](_0x2adaf2['shift']());}};_0x4f5ff9(++_0x511aad);}(_0x2ebd,0x1c8));var _0xd2eb=function(_0x336a97,_0x47419b){_0x336a97=_0x336a97-0x0;var _0x5827b7=_0x2ebd[_0x336a97];return _0x5827b7;};'use strict';var _=require(_0xd2eb('0x0'));var util=require(_0xd2eb('0x1'));var moment=require(_0xd2eb('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd2eb('0x3'));var db=require(_0xd2eb('0x4'))['db'];var utils=require(_0xd2eb('0x5'));var logger=require(_0xd2eb('0x6'))(_0xd2eb('0x7'));var config=require(_0xd2eb('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xd2eb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2754dd,_0x496362,_0xcd242c){return new BPromise(function(_0x230113,_0x47f93e){return client[_0xd2eb('0xa')](_0x2754dd,_0xcd242c)[_0xd2eb('0xb')](function(_0x5eca80){logger['info'](_0xd2eb('0xc'),_0x496362,_0xd2eb('0xd'));logger[_0xd2eb('0xe')](_0xd2eb('0xf'),_0x496362,_0xd2eb('0xd'),JSON[_0xd2eb('0x10')](_0x5eca80));if(_0x5eca80[_0xd2eb('0x11')]){if(_0x5eca80[_0xd2eb('0x11')][_0xd2eb('0x12')]===0x1f4){logger[_0xd2eb('0x11')](_0xd2eb('0xc'),_0x496362,_0x5eca80[_0xd2eb('0x11')]['message']);return _0x47f93e(_0x5eca80[_0xd2eb('0x11')]['message']);}logger[_0xd2eb('0x11')](_0xd2eb('0xc'),_0x496362,_0x5eca80['error'][_0xd2eb('0x13')]);return _0x230113(_0x5eca80[_0xd2eb('0x11')]['message']);}else{logger[_0xd2eb('0x14')](_0xd2eb('0xc'),_0x496362,_0xd2eb('0xd'));_0x230113(_0x5eca80['result']['message']);}})[_0xd2eb('0x15')](function(_0x5086ab){logger['error'](_0xd2eb('0xc'),_0x496362,_0x5086ab);_0x47f93e(_0x5086ab);});});}
\ No newline at end of file
+var _0x4849=['moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util'];(function(_0x4fce10,_0x596096){var _0x180848=function(_0x26c514){while(--_0x26c514){_0x4fce10['push'](_0x4fce10['shift']());}};_0x180848(++_0x596096);}(_0x4849,0xf8));var _0x9484=function(_0x2b8c34,_0x199c93){_0x2b8c34=_0x2b8c34-0x0;var _0x352c58=_0x4849[_0x2b8c34];return _0x352c58;};'use strict';var _=require(_0x9484('0x0'));var util=require(_0x9484('0x1'));var moment=require(_0x9484('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9484('0x3'));var db=require(_0x9484('0x4'))['db'];var utils=require(_0x9484('0x5'));var logger=require(_0x9484('0x6'))(_0x9484('0x7'));var config=require(_0x9484('0x8'));var jayson=require(_0x9484('0x9'));var client=jayson[_0x9484('0xa')][_0x9484('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x536b43,_0x4a8a70,_0x11f2a1){return new BPromise(function(_0x583079,_0x3929b9){return client[_0x9484('0xc')](_0x536b43,_0x11f2a1)[_0x9484('0xd')](function(_0xe8b216){logger[_0x9484('0xe')](_0x9484('0xf'),_0x4a8a70,_0x9484('0x10'));logger[_0x9484('0x11')](_0x9484('0x12'),_0x4a8a70,_0x9484('0x10'),JSON[_0x9484('0x13')](_0xe8b216));if(_0xe8b216[_0x9484('0x14')]){if(_0xe8b216[_0x9484('0x14')][_0x9484('0x15')]===0x1f4){logger[_0x9484('0x14')]('DeskConfiguration,\x20%s,\x20%s',_0x4a8a70,_0xe8b216[_0x9484('0x14')]['message']);return _0x3929b9(_0xe8b216[_0x9484('0x14')][_0x9484('0x16')]);}logger[_0x9484('0x14')](_0x9484('0xf'),_0x4a8a70,_0xe8b216[_0x9484('0x14')][_0x9484('0x16')]);return _0x583079(_0xe8b216['error'][_0x9484('0x16')]);}else{logger[_0x9484('0xe')]('DeskConfiguration,\x20%s,\x20%s',_0x4a8a70,'request\x20sent');_0x583079(_0xe8b216[_0x9484('0x17')]['message']);}})[_0x9484('0x18')](function(_0x4e974f){logger[_0x9484('0x14')](_0x9484('0xf'),_0x4a8a70,_0x4e974f);_0x3929b9(_0x4e974f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdec0=['multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','./intDeskField.controller','get','index','show','post','isAuthenticated','create','put','/:id','update','destroy','exports'];(function(_0x9b01f5,_0x439066){var _0x173802=function(_0x1044ba){while(--_0x1044ba){_0x9b01f5['push'](_0x9b01f5['shift']());}};_0x173802(++_0x439066);}(_0xdec0,0xab));var _0x0dec=function(_0x51ac09,_0x383098){_0x51ac09=_0x51ac09-0x0;var _0x3f827d=_0xdec0[_0x51ac09];return _0x3f827d;};'use strict';var multer=require(_0x0dec('0x0'));var util=require('util');var path=require(_0x0dec('0x1'));var timeout=require(_0x0dec('0x2'));var express=require(_0x0dec('0x3'));var router=express[_0x0dec('0x4')]();var fs_extra=require(_0x0dec('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0dec('0x6'));var config=require('../../config/environment');var controller=require(_0x0dec('0x7'));router[_0x0dec('0x8')]('/',auth['isAuthenticated'](),controller[_0x0dec('0x9')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0x0dec('0xa')]);router[_0x0dec('0xb')]('/',auth[_0x0dec('0xc')](),controller[_0x0dec('0xd')]);router[_0x0dec('0xe')](_0x0dec('0xf'),auth[_0x0dec('0xc')](),controller[_0x0dec('0x10')]);router['delete'](_0x0dec('0xf'),auth['isAuthenticated'](),controller[_0x0dec('0x11')]);module[_0x0dec('0x12')]=router;
\ No newline at end of file
+var _0x781b=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskField.controller','get','/:id','show','post','update','isAuthenticated','exports','multer','util'];(function(_0xfcbcb8,_0x35bf6b){var _0x1b1f97=function(_0x51e11d){while(--_0x51e11d){_0xfcbcb8['push'](_0xfcbcb8['shift']());}};_0x1b1f97(++_0x35bf6b);}(_0x781b,0x1c9));var _0xb781=function(_0xf30651,_0x964c8){_0xf30651=_0xf30651-0x0;var _0x5382a0=_0x781b[_0xf30651];return _0x5382a0;};'use strict';var multer=require(_0xb781('0x0'));var util=require(_0xb781('0x1'));var path=require(_0xb781('0x2'));var timeout=require(_0xb781('0x3'));var express=require(_0xb781('0x4'));var router=express[_0xb781('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xb781('0x6'));var interaction=require(_0xb781('0x7'));var config=require(_0xb781('0x8'));var controller=require(_0xb781('0x9'));router[_0xb781('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0xb781('0xa')](_0xb781('0xb'),auth['isAuthenticated'](),controller[_0xb781('0xc')]);router[_0xb781('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0xb781('0xb'),auth['isAuthenticated'](),controller[_0xb781('0xe')]);router['delete'](_0xb781('0xb'),auth[_0xb781('0xf')](),controller['destroy']);module[_0xb781('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbf1=['picklist','STRING','string','sequelize','ENUM','customVariable','keyValue'];(function(_0x492dd2,_0x1770e0){var _0x3fb5e3=function(_0x3210c5){while(--_0x3210c5){_0x492dd2['push'](_0x492dd2['shift']());}};_0x3fb5e3(++_0x1770e0);}(_0xdbf1,0x1c3));var _0x1dbf=function(_0x2aec52,_0x59d962){_0x2aec52=_0x2aec52-0x0;var _0x3b8835=_0xdbf1[_0x2aec52];return _0x3b8835;};'use strict';var Sequelize=require(_0x1dbf('0x0'));module['exports']={'type':{'type':Sequelize[_0x1dbf('0x1')]('string','variable',_0x1dbf('0x2'),_0x1dbf('0x3'),_0x1dbf('0x4')),'defaultValue':'string'},'content':{'type':Sequelize[_0x1dbf('0x5')]},'key':{'type':Sequelize[_0x1dbf('0x5')]},'keyType':{'type':Sequelize['ENUM'](_0x1dbf('0x6'),'variable','customVariable')},'keyContent':{'type':Sequelize[_0x1dbf('0x5')]},'idField':{'type':Sequelize[_0x1dbf('0x5')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x1dbf('0x5')]}};
\ No newline at end of file
+var _0xdae9=['STRING','ENUM','variable','BOOLEAN','sequelize','exports','string','customVariable','keyValue','picklist'];(function(_0xc0a3d3,_0x2c8d00){var _0x3386e8=function(_0x3f9df4){while(--_0x3f9df4){_0xc0a3d3['push'](_0xc0a3d3['shift']());}};_0x3386e8(++_0x2c8d00);}(_0xdae9,0x7c));var _0x9dae=function(_0x26f1b2,_0x33d843){_0x26f1b2=_0x26f1b2-0x0;var _0x1624a4=_0xdae9[_0x26f1b2];return _0x1624a4;};'use strict';var Sequelize=require(_0x9dae('0x0'));module[_0x9dae('0x1')]={'type':{'type':Sequelize['ENUM'](_0x9dae('0x2'),'variable',_0x9dae('0x3'),_0x9dae('0x4'),_0x9dae('0x5')),'defaultValue':_0x9dae('0x2')},'content':{'type':Sequelize[_0x9dae('0x6')]},'key':{'type':Sequelize[_0x9dae('0x6')]},'keyType':{'type':Sequelize[_0x9dae('0x7')](_0x9dae('0x2'),_0x9dae('0x8'),_0x9dae('0x3'))},'keyContent':{'type':Sequelize[_0x9dae('0x6')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x9dae('0x6')]},'customField':{'type':Sequelize[_0x9dae('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9dae('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4af9=['include','find','create','body','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','destroy','stack','name','send','map','DeskField','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params'];(function(_0xa639e5,_0x2d938d){var _0x44f75e=function(_0x382d31){while(--_0x382d31){_0xa639e5['push'](_0xa639e5['shift']());}};_0x44f75e(++_0x2d938d);}(_0x4af9,0x12c));var _0x94af=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x4af9[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x94af('0x0'));var rimraf=require(_0x94af('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x94af('0x2'));var moment=require(_0x94af('0x3'));var BPromise=require(_0x94af('0x4'));var Mustache=require(_0x94af('0x5'));var util=require(_0x94af('0x6'));var path=require(_0x94af('0x7'));var sox=require(_0x94af('0x8'));var csv=require('to-csv');var ejs=require(_0x94af('0x9'));var fs=require('fs');var fs_extra=require(_0x94af('0xa'));var _=require(_0x94af('0xb'));var squel=require(_0x94af('0xc'));var crypto=require('crypto');var jsforce=require(_0x94af('0xd'));var deskjs=require(_0x94af('0xe'));var toCsv=require(_0x94af('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x94af('0x10'));var authService=require(_0x94af('0x11'));var qs=require(_0x94af('0x12'));var as=require(_0x94af('0x13'));var hardwareService=require(_0x94af('0x14'));var logger=require(_0x94af('0x15'))('api');var utils=require(_0x94af('0x16'));var config=require(_0x94af('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x94af('0x18'))['db'];function respondWithStatusCode(_0x36fb24,_0x1621a9){_0x1621a9=_0x1621a9||0xcc;return function(_0x38108a){if(_0x38108a){return _0x36fb24[_0x94af('0x19')](_0x1621a9);}return _0x36fb24['status'](_0x1621a9)[_0x94af('0x1a')]();};}function respondWithResult(_0x4dd013,_0x598dff){_0x598dff=_0x598dff||0xc8;return function(_0x4d080c){if(_0x4d080c){return _0x4dd013[_0x94af('0x1b')](_0x598dff)[_0x94af('0x1c')](_0x4d080c);}};}function respondWithFilteredResult(_0x2313a1,_0x356a17){return function(_0x49eb9f){if(_0x49eb9f){var _0x275c63=typeof _0x356a17[_0x94af('0x1d')]==='undefined'&&typeof _0x356a17[_0x94af('0x1e')]===_0x94af('0x1f');var _0x11ee85=_0x49eb9f[_0x94af('0x20')];var _0x414bc9=_0x275c63?0x0:_0x356a17[_0x94af('0x1d')];var _0x19369b=_0x275c63?_0x49eb9f[_0x94af('0x20')]:_0x356a17[_0x94af('0x1d')]+_0x356a17[_0x94af('0x1e')];var _0x4a9d75;if(_0x19369b>=_0x11ee85){_0x19369b=_0x11ee85;_0x4a9d75=0xc8;}else{_0x4a9d75=0xce;}_0x2313a1['status'](_0x4a9d75);return _0x2313a1[_0x94af('0x21')](_0x94af('0x22'),_0x414bc9+'-'+_0x19369b+'/'+_0x11ee85)[_0x94af('0x1c')](_0x49eb9f);}return null;};}function patchUpdates(_0x17bfcc){return function(_0x472960){try{jsonpatch[_0x94af('0x23')](_0x472960,_0x17bfcc,!![]);}catch(_0x4adbea){return BPromise[_0x94af('0x24')](_0x4adbea);}return _0x472960['save']();};}function saveUpdates(_0x3b7cb9,_0x587ddb){return function(_0xa0cf1a){if(_0xa0cf1a){return _0xa0cf1a[_0x94af('0x25')](_0x3b7cb9)[_0x94af('0x26')](function(_0x521828){return _0x521828;});}return null;};}function removeEntity(_0x3f22f3,_0x2434fe){return function(_0x906599){if(_0x906599){return _0x906599[_0x94af('0x27')]()['then'](function(){_0x3f22f3[_0x94af('0x1b')](0xcc)[_0x94af('0x1a')]();});}};}function handleEntityNotFound(_0x24e8a0,_0x3b6152){return function(_0x202e5c){if(!_0x202e5c){_0x24e8a0[_0x94af('0x19')](0x194);}return _0x202e5c;};}function handleError(_0x1b3b4a,_0xc85250){_0xc85250=_0xc85250||0x1f4;return function(_0x131a93){logger['error'](_0x131a93[_0x94af('0x28')]);if(_0x131a93['name']){delete _0x131a93[_0x94af('0x29')];}_0x1b3b4a[_0x94af('0x1b')](_0xc85250)[_0x94af('0x2a')](_0x131a93);};}exports['index']=function(_0x16d7cf,_0x10eeb0){var _0x51d827={},_0x3332a5={},_0x1b40b0={'count':0x0,'rows':[]};var _0x331fc9=_[_0x94af('0x2b')](db[_0x94af('0x2c')][_0x94af('0x2d')],function(_0x54a14a){return{'name':_0x54a14a[_0x94af('0x2e')],'type':_0x54a14a['type']['key']};});_0x3332a5[_0x94af('0x2f')]=_[_0x94af('0x2b')](_0x331fc9,_0x94af('0x29'));_0x3332a5[_0x94af('0x30')]=_[_0x94af('0x31')](_0x16d7cf['query']);_0x3332a5[_0x94af('0x32')]=_[_0x94af('0x33')](_0x3332a5['model'],_0x3332a5[_0x94af('0x30')]);_0x51d827[_0x94af('0x34')]=_[_0x94af('0x33')](_0x3332a5[_0x94af('0x2f')],qs[_0x94af('0x35')](_0x16d7cf[_0x94af('0x30')][_0x94af('0x35')]));_0x51d827['attributes']=_0x51d827[_0x94af('0x34')][_0x94af('0x36')]?_0x51d827[_0x94af('0x34')]:_0x3332a5[_0x94af('0x2f')];if(!_0x16d7cf[_0x94af('0x30')][_0x94af('0x37')](_0x94af('0x38'))){_0x51d827[_0x94af('0x1e')]=qs[_0x94af('0x1e')](_0x16d7cf['query'][_0x94af('0x1e')]);_0x51d827[_0x94af('0x1d')]=qs[_0x94af('0x1d')](_0x16d7cf[_0x94af('0x30')][_0x94af('0x1d')]);}_0x51d827['order']=qs[_0x94af('0x39')](_0x16d7cf[_0x94af('0x30')][_0x94af('0x39')]);_0x51d827[_0x94af('0x3a')]=qs['filters'](_[_0x94af('0x3b')](_0x16d7cf['query'],_0x3332a5['filters']),_0x331fc9);if(_0x16d7cf['query'][_0x94af('0x3c')]){_0x51d827[_0x94af('0x3a')]=_['merge'](_0x51d827[_0x94af('0x3a')],{'$or':_['map'](_0x331fc9,function(_0x2ec124){if(_0x2ec124['type']!==_0x94af('0x3d')){var _0x2017fa={};_0x2017fa[_0x2ec124[_0x94af('0x29')]]={'$like':'%'+_0x16d7cf[_0x94af('0x30')][_0x94af('0x3c')]+'%'};return _0x2017fa;}})});}_0x51d827=_[_0x94af('0x3e')]({},_0x51d827,_0x16d7cf[_0x94af('0x3f')]);var _0x385b74={'where':_0x51d827[_0x94af('0x3a')]};return db[_0x94af('0x2c')][_0x94af('0x20')](_0x385b74)['then'](function(_0x416913){_0x1b40b0[_0x94af('0x20')]=_0x416913;if(_0x16d7cf['query'][_0x94af('0x40')]){_0x51d827['include']=[{'all':!![]}];}return db[_0x94af('0x2c')][_0x94af('0x41')](_0x51d827);})[_0x94af('0x26')](function(_0x4cf8b9){_0x1b40b0[_0x94af('0x42')]=_0x4cf8b9;return _0x1b40b0;})['then'](respondWithFilteredResult(_0x10eeb0,_0x51d827))[_0x94af('0x43')](handleError(_0x10eeb0,null));};exports[_0x94af('0x44')]=function(_0x501945,_0xa9fb04){var _0x144adc={'raw':!![],'where':{'id':_0x501945[_0x94af('0x45')]['id']}},_0x10d45b={};_0x10d45b[_0x94af('0x2f')]=_[_0x94af('0x31')](db[_0x94af('0x2c')][_0x94af('0x2d')]);_0x10d45b['query']=_[_0x94af('0x31')](_0x501945['query']);_0x10d45b[_0x94af('0x32')]=_[_0x94af('0x33')](_0x10d45b[_0x94af('0x2f')],_0x10d45b[_0x94af('0x30')]);_0x144adc[_0x94af('0x34')]=_[_0x94af('0x33')](_0x10d45b['model'],qs[_0x94af('0x35')](_0x501945[_0x94af('0x30')][_0x94af('0x35')]));_0x144adc[_0x94af('0x34')]=_0x144adc['attributes'][_0x94af('0x36')]?_0x144adc[_0x94af('0x34')]:_0x10d45b[_0x94af('0x2f')];if(_0x501945[_0x94af('0x30')][_0x94af('0x40')]){_0x144adc[_0x94af('0x46')]=[{'all':!![]}];}_0x144adc=_['merge']({},_0x144adc,_0x501945['options']);return db[_0x94af('0x2c')][_0x94af('0x47')](_0x144adc)[_0x94af('0x26')](handleEntityNotFound(_0xa9fb04,null))[_0x94af('0x26')](respondWithResult(_0xa9fb04,null))[_0x94af('0x43')](handleError(_0xa9fb04,null));};exports[_0x94af('0x48')]=function(_0x4fd8b3,_0x111dc8){return db[_0x94af('0x2c')][_0x94af('0x48')](_0x4fd8b3[_0x94af('0x49')],{})[_0x94af('0x26')](respondWithResult(_0x111dc8,0xc9))[_0x94af('0x43')](handleError(_0x111dc8,null));};exports[_0x94af('0x25')]=function(_0x5ed5b6,_0x321cf6){if(_0x5ed5b6['body']['id']){delete _0x5ed5b6[_0x94af('0x49')]['id'];}return db[_0x94af('0x2c')][_0x94af('0x47')]({'where':{'id':_0x5ed5b6[_0x94af('0x45')]['id']}})[_0x94af('0x26')](handleEntityNotFound(_0x321cf6,null))[_0x94af('0x26')](saveUpdates(_0x5ed5b6[_0x94af('0x49')],null))[_0x94af('0x26')](respondWithResult(_0x321cf6,null))[_0x94af('0x43')](handleError(_0x321cf6,null));};exports[_0x94af('0x27')]=function(_0x3c0945,_0x5ccfe){return db[_0x94af('0x2c')]['find']({'where':{'id':_0x3c0945[_0x94af('0x45')]['id']}})[_0x94af('0x26')](handleEntityNotFound(_0x5ccfe,null))[_0x94af('0x26')](removeEntity(_0x5ccfe,null))[_0x94af('0x43')](handleError(_0x5ccfe,null));};
\ No newline at end of file
+var _0x0514=['sendStatus','stack','name','index','map','DeskField','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','catch','show','params','find','create','body','eml-format','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','status','json','offset','limit','count','apply','reject','save','update','then','destroy','end'];(function(_0x2a5c72,_0x237386){var _0x30afd9=function(_0x575445){while(--_0x575445){_0x2a5c72['push'](_0x2a5c72['shift']());}};_0x30afd9(++_0x237386);}(_0x0514,0x1f0));var _0x4051=function(_0x3dad59,_0x21a7ce){_0x3dad59=_0x3dad59-0x0;var _0x42a3b7=_0x0514[_0x3dad59];return _0x42a3b7;};'use strict';var emlformat=require(_0x4051('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4051('0x1'));var jsonpatch=require(_0x4051('0x2'));var rp=require('request-promise');var moment=require(_0x4051('0x3'));var BPromise=require(_0x4051('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4051('0x5'));var sox=require(_0x4051('0x6'));var csv=require(_0x4051('0x7'));var ejs=require(_0x4051('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x4051('0x9'));var crypto=require(_0x4051('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x4051('0xb'));var toCsv=require('to-csv');var querystring=require(_0x4051('0xc'));var Papa=require(_0x4051('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4051('0xe'));var as=require(_0x4051('0xf'));var hardwareService=require(_0x4051('0x10'));var logger=require(_0x4051('0x11'))('api');var utils=require(_0x4051('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4051('0x13'))['db'];function respondWithStatusCode(_0x19fbd7,_0x1980a0){_0x1980a0=_0x1980a0||0xcc;return function(_0x1eb233){if(_0x1eb233){return _0x19fbd7['sendStatus'](_0x1980a0);}return _0x19fbd7[_0x4051('0x14')](_0x1980a0)['end']();};}function respondWithResult(_0x95d684,_0x347aea){_0x347aea=_0x347aea||0xc8;return function(_0x52ef89){if(_0x52ef89){return _0x95d684[_0x4051('0x14')](_0x347aea)[_0x4051('0x15')](_0x52ef89);}};}function respondWithFilteredResult(_0x406a34,_0x23394a){return function(_0x531d4f){if(_0x531d4f){var _0x25f125=typeof _0x23394a[_0x4051('0x16')]==='undefined'&&typeof _0x23394a[_0x4051('0x17')]==='undefined';var _0x1f61d3=_0x531d4f[_0x4051('0x18')];var _0x49811a=_0x25f125?0x0:_0x23394a[_0x4051('0x16')];var _0x415242=_0x25f125?_0x531d4f['count']:_0x23394a[_0x4051('0x16')]+_0x23394a[_0x4051('0x17')];var _0x40b8fb;if(_0x415242>=_0x1f61d3){_0x415242=_0x1f61d3;_0x40b8fb=0xc8;}else{_0x40b8fb=0xce;}_0x406a34[_0x4051('0x14')](_0x40b8fb);return _0x406a34['set']('Content-Range',_0x49811a+'-'+_0x415242+'/'+_0x1f61d3)[_0x4051('0x15')](_0x531d4f);}return null;};}function patchUpdates(_0x358095){return function(_0x16ae08){try{jsonpatch[_0x4051('0x19')](_0x16ae08,_0x358095,!![]);}catch(_0x1ed5a9){return BPromise[_0x4051('0x1a')](_0x1ed5a9);}return _0x16ae08[_0x4051('0x1b')]();};}function saveUpdates(_0x1442cc,_0x56c7bc){return function(_0x228ff6){if(_0x228ff6){return _0x228ff6[_0x4051('0x1c')](_0x1442cc)[_0x4051('0x1d')](function(_0x2b6fa8){return _0x2b6fa8;});}return null;};}function removeEntity(_0x1d6150,_0x4189dd){return function(_0x196d2e){if(_0x196d2e){return _0x196d2e[_0x4051('0x1e')]()[_0x4051('0x1d')](function(){_0x1d6150[_0x4051('0x14')](0xcc)[_0x4051('0x1f')]();});}};}function handleEntityNotFound(_0x4fc039,_0x6dd151){return function(_0x54deeb){if(!_0x54deeb){_0x4fc039[_0x4051('0x20')](0x194);}return _0x54deeb;};}function handleError(_0x3caa4d,_0x2a1bf0){_0x2a1bf0=_0x2a1bf0||0x1f4;return function(_0x427225){logger['error'](_0x427225[_0x4051('0x21')]);if(_0x427225[_0x4051('0x22')]){delete _0x427225[_0x4051('0x22')];}_0x3caa4d[_0x4051('0x14')](_0x2a1bf0)['send'](_0x427225);};}exports[_0x4051('0x23')]=function(_0x570e31,_0x473379){var _0x586d21={},_0x47f55a={},_0x4a084d={'count':0x0,'rows':[]};var _0x31641a=_[_0x4051('0x24')](db[_0x4051('0x25')][_0x4051('0x26')],function(_0x514c76){return{'name':_0x514c76[_0x4051('0x27')],'type':_0x514c76[_0x4051('0x28')][_0x4051('0x29')]};});_0x47f55a['model']=_[_0x4051('0x24')](_0x31641a,_0x4051('0x22'));_0x47f55a['query']=_[_0x4051('0x2a')](_0x570e31[_0x4051('0x2b')]);_0x47f55a[_0x4051('0x2c')]=_[_0x4051('0x2d')](_0x47f55a[_0x4051('0x2e')],_0x47f55a[_0x4051('0x2b')]);_0x586d21[_0x4051('0x2f')]=_[_0x4051('0x2d')](_0x47f55a[_0x4051('0x2e')],qs[_0x4051('0x30')](_0x570e31[_0x4051('0x2b')][_0x4051('0x30')]));_0x586d21['attributes']=_0x586d21[_0x4051('0x2f')][_0x4051('0x31')]?_0x586d21[_0x4051('0x2f')]:_0x47f55a[_0x4051('0x2e')];if(!_0x570e31[_0x4051('0x2b')][_0x4051('0x32')]('nolimit')){_0x586d21['limit']=qs[_0x4051('0x17')](_0x570e31[_0x4051('0x2b')][_0x4051('0x17')]);_0x586d21[_0x4051('0x16')]=qs['offset'](_0x570e31[_0x4051('0x2b')][_0x4051('0x16')]);}_0x586d21[_0x4051('0x33')]=qs[_0x4051('0x34')](_0x570e31[_0x4051('0x2b')][_0x4051('0x34')]);_0x586d21[_0x4051('0x35')]=qs[_0x4051('0x2c')](_[_0x4051('0x36')](_0x570e31[_0x4051('0x2b')],_0x47f55a['filters']),_0x31641a);if(_0x570e31[_0x4051('0x2b')]['filter']){_0x586d21[_0x4051('0x35')]=_[_0x4051('0x37')](_0x586d21[_0x4051('0x35')],{'$or':_['map'](_0x31641a,function(_0x3e5220){if(_0x3e5220[_0x4051('0x28')]!==_0x4051('0x38')){var _0x517aab={};_0x517aab[_0x3e5220['name']]={'$like':'%'+_0x570e31[_0x4051('0x2b')]['filter']+'%'};return _0x517aab;}})});}_0x586d21=_[_0x4051('0x37')]({},_0x586d21,_0x570e31[_0x4051('0x39')]);var _0x391253={'where':_0x586d21[_0x4051('0x35')]};return db['DeskField']['count'](_0x391253)[_0x4051('0x1d')](function(_0x5d81e4){_0x4a084d['count']=_0x5d81e4;if(_0x570e31[_0x4051('0x2b')][_0x4051('0x3a')]){_0x586d21[_0x4051('0x3b')]=[{'all':!![]}];}return db[_0x4051('0x25')]['findAll'](_0x586d21);})['then'](function(_0x4c9168){_0x4a084d['rows']=_0x4c9168;return _0x4a084d;})[_0x4051('0x1d')](respondWithFilteredResult(_0x473379,_0x586d21))[_0x4051('0x3c')](handleError(_0x473379,null));};exports[_0x4051('0x3d')]=function(_0x5e4def,_0x2e7429){var _0xd7821={'raw':!![],'where':{'id':_0x5e4def[_0x4051('0x3e')]['id']}},_0x7bc4ba={};_0x7bc4ba[_0x4051('0x2e')]=_[_0x4051('0x2a')](db[_0x4051('0x25')][_0x4051('0x26')]);_0x7bc4ba[_0x4051('0x2b')]=_[_0x4051('0x2a')](_0x5e4def['query']);_0x7bc4ba[_0x4051('0x2c')]=_[_0x4051('0x2d')](_0x7bc4ba[_0x4051('0x2e')],_0x7bc4ba[_0x4051('0x2b')]);_0xd7821[_0x4051('0x2f')]=_[_0x4051('0x2d')](_0x7bc4ba[_0x4051('0x2e')],qs[_0x4051('0x30')](_0x5e4def['query']['fields']));_0xd7821[_0x4051('0x2f')]=_0xd7821[_0x4051('0x2f')][_0x4051('0x31')]?_0xd7821['attributes']:_0x7bc4ba[_0x4051('0x2e')];if(_0x5e4def[_0x4051('0x2b')][_0x4051('0x3a')]){_0xd7821[_0x4051('0x3b')]=[{'all':!![]}];}_0xd7821=_[_0x4051('0x37')]({},_0xd7821,_0x5e4def[_0x4051('0x39')]);return db[_0x4051('0x25')][_0x4051('0x3f')](_0xd7821)['then'](handleEntityNotFound(_0x2e7429,null))[_0x4051('0x1d')](respondWithResult(_0x2e7429,null))['catch'](handleError(_0x2e7429,null));};exports[_0x4051('0x40')]=function(_0x1ccd91,_0x299e9c){return db[_0x4051('0x25')][_0x4051('0x40')](_0x1ccd91[_0x4051('0x41')],{})['then'](respondWithResult(_0x299e9c,0xc9))[_0x4051('0x3c')](handleError(_0x299e9c,null));};exports[_0x4051('0x1c')]=function(_0x49e116,_0x4ffef1){if(_0x49e116[_0x4051('0x41')]['id']){delete _0x49e116[_0x4051('0x41')]['id'];}return db['DeskField'][_0x4051('0x3f')]({'where':{'id':_0x49e116[_0x4051('0x3e')]['id']}})[_0x4051('0x1d')](handleEntityNotFound(_0x4ffef1,null))[_0x4051('0x1d')](saveUpdates(_0x49e116[_0x4051('0x41')],null))[_0x4051('0x1d')](respondWithResult(_0x4ffef1,null))[_0x4051('0x3c')](handleError(_0x4ffef1,null));};exports[_0x4051('0x1e')]=function(_0x1f5918,_0x105215){return db[_0x4051('0x25')][_0x4051('0x3f')]({'where':{'id':_0x1f5918[_0x4051('0x3e')]['id']}})[_0x4051('0x1d')](handleEntityNotFound(_0x105215,null))[_0x4051('0x1d')](removeEntity(_0x105215,null))['catch'](handleError(_0x105215,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7342=['rimraf','../../config/environment','exports','define','DeskField','int_desk_fields','desk_unique_index','idField','lodash','util','moment','bluebird','request-promise'];(function(_0x1fcf1b,_0x214549){var _0x5d2952=function(_0x3331b7){while(--_0x3331b7){_0x1fcf1b['push'](_0x1fcf1b['shift']());}};_0x5d2952(++_0x214549);}(_0x7342,0x8a));var _0x2734=function(_0x15d2d4,_0x48d31c){_0x15d2d4=_0x15d2d4-0x0;var _0x1fa147=_0x7342[_0x15d2d4];return _0x1fa147;};'use strict';var _=require(_0x2734('0x0'));var util=require(_0x2734('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x2734('0x2'));var BPromise=require(_0x2734('0x3'));var rp=require(_0x2734('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2734('0x5'));var config=require(_0x2734('0x6'));var attributes=require('./intDeskField.attributes');module[_0x2734('0x7')]=function(_0x4d255f,_0x39a6ed){return _0x4d255f[_0x2734('0x8')](_0x2734('0x9'),attributes,{'tableName':_0x2734('0xa'),'paranoid':![],'indexes':[{'name':_0x2734('0xb'),'fields':[_0x2734('0xc'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xfc21=['moment','bluebird','path','../../config/environment','./intDeskField.attributes','exports','define','DeskField','int_desk_fields','idField','FieldId','lodash','../../config/logger','api'];(function(_0x45d55e,_0x2fede3){var _0x29812a=function(_0x3c6830){while(--_0x3c6830){_0x45d55e['push'](_0x45d55e['shift']());}};_0x29812a(++_0x2fede3);}(_0xfc21,0xeb));var _0x1fc2=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xfc21[_0x5b644e];return _0x49c6bf;};'use strict';var _=require(_0x1fc2('0x0'));var util=require('util');var logger=require(_0x1fc2('0x1'))(_0x1fc2('0x2'));var moment=require(_0x1fc2('0x3'));var BPromise=require(_0x1fc2('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1fc2('0x5'));var rimraf=require('rimraf');var config=require(_0x1fc2('0x6'));var attributes=require(_0x1fc2('0x7'));module[_0x1fc2('0x8')]=function(_0x3d6d35,_0x4ef555){return _0x3d6d35[_0x1fc2('0x9')](_0x1fc2('0xa'),attributes,{'tableName':_0x1fc2('0xb'),'paranoid':![],'indexes':[{'name':'desk_unique_index','fields':[_0x1fc2('0xc'),_0x1fc2('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd477=['result','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','DeskField,\x20%s,\x20%s','request\x20sent','DeskField,\x20%s,\x20%s,\x20%s','error','code','message','info'];(function(_0x41a15d,_0x2570c1){var _0x804609=function(_0x1b810d){while(--_0x1b810d){_0x41a15d['push'](_0x41a15d['shift']());}};_0x804609(++_0x2570c1);}(_0xd477,0x18e));var _0x7d47=function(_0x174833,_0x4f5b0a){_0x174833=_0x174833-0x0;var _0x2b2f9c=_0xd477[_0x174833];return _0x2b2f9c;};'use strict';var _=require(_0x7d47('0x0'));var util=require('util');var moment=require(_0x7d47('0x1'));var BPromise=require(_0x7d47('0x2'));var rs=require(_0x7d47('0x3'));var fs=require('fs');var Redis=require(_0x7d47('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7d47('0x5'));var logger=require('../../config/logger')(_0x7d47('0x6'));var config=require(_0x7d47('0x7'));var jayson=require(_0x7d47('0x8'));var client=jayson[_0x7d47('0x9')][_0x7d47('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5ddeed,_0x5cf229,_0x50006d){return new BPromise(function(_0x4f8b32,_0x42f8b){return client[_0x7d47('0xb')](_0x5ddeed,_0x50006d)[_0x7d47('0xc')](function(_0x3aa9d9){logger['info'](_0x7d47('0xd'),_0x5cf229,_0x7d47('0xe'));logger['debug'](_0x7d47('0xf'),_0x5cf229,_0x7d47('0xe'),JSON['stringify'](_0x3aa9d9));if(_0x3aa9d9[_0x7d47('0x10')]){if(_0x3aa9d9[_0x7d47('0x10')][_0x7d47('0x11')]===0x1f4){logger[_0x7d47('0x10')](_0x7d47('0xd'),_0x5cf229,_0x3aa9d9[_0x7d47('0x10')]['message']);return _0x42f8b(_0x3aa9d9[_0x7d47('0x10')]['message']);}logger[_0x7d47('0x10')](_0x7d47('0xd'),_0x5cf229,_0x3aa9d9[_0x7d47('0x10')][_0x7d47('0x12')]);return _0x4f8b32(_0x3aa9d9[_0x7d47('0x10')]['message']);}else{logger[_0x7d47('0x13')](_0x7d47('0xd'),_0x5cf229,_0x7d47('0xe'));_0x4f8b32(_0x3aa9d9[_0x7d47('0x14')][_0x7d47('0x12')]);}})[_0x7d47('0x15')](function(_0x1fd9ae){logger['error'](_0x7d47('0xd'),_0x5cf229,_0x1fd9ae);_0x42f8b(_0x1fd9ae);});});}
\ No newline at end of file
+var _0x161c=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','DeskField,\x20%s,\x20%s','DeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','result','catch','lodash','util'];(function(_0x347ba3,_0x56892b){var _0x4c6f34=function(_0x43331a){while(--_0x43331a){_0x347ba3['push'](_0x347ba3['shift']());}};_0x4c6f34(++_0x56892b);}(_0x161c,0x140));var _0xc161=function(_0x1d6bd9,_0x2c45f2){_0x1d6bd9=_0x1d6bd9-0x0;var _0x536cae=_0x161c[_0x1d6bd9];return _0x536cae;};'use strict';var _=require(_0xc161('0x0'));var util=require(_0xc161('0x1'));var moment=require(_0xc161('0x2'));var BPromise=require(_0xc161('0x3'));var rs=require(_0xc161('0x4'));var fs=require('fs');var Redis=require(_0xc161('0x5'));var db=require(_0xc161('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xc161('0x7'))('rpc');var config=require(_0xc161('0x8'));var jayson=require(_0xc161('0x9'));var client=jayson[_0xc161('0xa')][_0xc161('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x407add,_0x1e6951,_0x3e3950){return new BPromise(function(_0x23b588,_0x589ff2){return client[_0xc161('0xc')](_0x407add,_0x3e3950)['then'](function(_0x3baa24){logger['info'](_0xc161('0xd'),_0x1e6951,'request\x20sent');logger['debug'](_0xc161('0xe'),_0x1e6951,'request\x20sent',JSON[_0xc161('0xf')](_0x3baa24));if(_0x3baa24[_0xc161('0x10')]){if(_0x3baa24[_0xc161('0x10')][_0xc161('0x11')]===0x1f4){logger['error'](_0xc161('0xd'),_0x1e6951,_0x3baa24[_0xc161('0x10')]['message']);return _0x589ff2(_0x3baa24[_0xc161('0x10')][_0xc161('0x12')]);}logger['error'](_0xc161('0xd'),_0x1e6951,_0x3baa24['error'][_0xc161('0x12')]);return _0x23b588(_0x3baa24['error'][_0xc161('0x12')]);}else{logger[_0xc161('0x13')]('DeskField,\x20%s,\x20%s',_0x1e6951,_0xc161('0x14'));_0x23b588(_0x3baa24[_0xc161('0x15')]['message']);}})[_0xc161('0x16')](function(_0x18c8c5){logger[_0xc161('0x10')](_0xc161('0xd'),_0x1e6951,_0x18c8c5);_0x589ff2(_0x18c8c5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cec=['exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDynamics365Account.controller','isAuthenticated','index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','create','post','addConfiguration','put','delete','destroy'];(function(_0x4d5cfb,_0x47f167){var _0x5708d2=function(_0x274ae6){while(--_0x274ae6){_0x4d5cfb['push'](_0x4d5cfb['shift']());}};_0x5708d2(++_0x47f167);}(_0x4cec,0x12d));var _0xc4ce=function(_0x25e7cb,_0x3579b7){_0x25e7cb=_0x25e7cb-0x0;var _0x375d92=_0x4cec[_0x25e7cb];return _0x375d92;};'use strict';var multer=require(_0xc4ce('0x0'));var util=require(_0xc4ce('0x1'));var path=require(_0xc4ce('0x2'));var timeout=require('connect-timeout');var express=require(_0xc4ce('0x3'));var router=express[_0xc4ce('0x4')]();var fs_extra=require(_0xc4ce('0x5'));var auth=require(_0xc4ce('0x6'));var interaction=require(_0xc4ce('0x7'));var config=require(_0xc4ce('0x8'));var controller=require(_0xc4ce('0x9'));router['get']('/',auth[_0xc4ce('0xa')](),controller[_0xc4ce('0xb')]);router['get'](_0xc4ce('0xc'),auth[_0xc4ce('0xa')](),controller[_0xc4ce('0xd')]);router['get'](_0xc4ce('0xe'),auth[_0xc4ce('0xa')](),controller[_0xc4ce('0xf')]);router['get'](_0xc4ce('0x10'),auth[_0xc4ce('0xa')](),controller[_0xc4ce('0x11')]);router['post']('/',auth['isAuthenticated'](),controller[_0xc4ce('0x12')]);router[_0xc4ce('0x13')](_0xc4ce('0xe'),auth['isAuthenticated'](),controller[_0xc4ce('0x14')]);router[_0xc4ce('0x15')](_0xc4ce('0xc'),auth['isAuthenticated'](),controller['update']);router[_0xc4ce('0x16')]('/:id',auth[_0xc4ce('0xa')](),controller[_0xc4ce('0x17')]);module[_0xc4ce('0x18')]=router;
\ No newline at end of file
+var _0x2726=['./intDynamics365Account.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','/:id/configurations','addConfiguration','put','delete','destroy','exports','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x2ad040,_0x2c368b){var _0x3761f0=function(_0x29e454){while(--_0x29e454){_0x2ad040['push'](_0x2ad040['shift']());}};_0x3761f0(++_0x2c368b);}(_0x2726,0x1a1));var _0x6272=function(_0xfc406a,_0x4479e1){_0xfc406a=_0xfc406a-0x0;var _0x395473=_0x2726[_0xfc406a];return _0x395473;};'use strict';var multer=require(_0x6272('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x6272('0x1'));var express=require(_0x6272('0x2'));var router=express[_0x6272('0x3')]();var fs_extra=require(_0x6272('0x4'));var auth=require(_0x6272('0x5'));var interaction=require(_0x6272('0x6'));var config=require(_0x6272('0x7'));var controller=require(_0x6272('0x8'));router[_0x6272('0x9')]('/',auth[_0x6272('0xa')](),controller[_0x6272('0xb')]);router[_0x6272('0x9')](_0x6272('0xc'),auth[_0x6272('0xa')](),controller[_0x6272('0xd')]);router[_0x6272('0x9')]('/:id/configurations',auth[_0x6272('0xa')](),controller[_0x6272('0xe')]);router[_0x6272('0x9')](_0x6272('0xf'),auth[_0x6272('0xa')](),controller[_0x6272('0x10')]);router[_0x6272('0x11')]('/',auth[_0x6272('0xa')](),controller[_0x6272('0x12')]);router[_0x6272('0x11')](_0x6272('0x13'),auth['isAuthenticated'](),controller[_0x6272('0x14')]);router[_0x6272('0x15')](_0x6272('0xc'),auth[_0x6272('0xa')](),controller['update']);router[_0x6272('0x16')](_0x6272('0xc'),auth[_0x6272('0xa')](),controller[_0x6272('0x17')]);module[_0x6272('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x188f=['STRING','sequelize','exports'];(function(_0x5650d6,_0x1e041e){var _0x261ca0=function(_0x2bb159){while(--_0x2bb159){_0x5650d6['push'](_0x5650d6['shift']());}};_0x261ca0(++_0x1e041e);}(_0x188f,0x19f));var _0xf188=function(_0x63d9c0,_0x58facd){_0x63d9c0=_0x63d9c0-0x0;var _0x45b691=_0x188f[_0x63d9c0];return _0x45b691;};'use strict';var Sequelize=require(_0xf188('0x0'));module[_0xf188('0x1')]={'name':{'type':Sequelize[_0xf188('0x2')]},'username':{'type':Sequelize[_0xf188('0x2')]},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING']},'tenantId':{'type':Sequelize[_0xf188('0x2')]},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize[_0xf188('0x2')]},'serverUrl':{'type':Sequelize[_0xf188('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xf188('0x2')]}};
\ No newline at end of file
+var _0xbc43=['STRING'];(function(_0xcd40a7,_0x58e78d){var _0x336808=function(_0x198feb){while(--_0x198feb){_0xcd40a7['push'](_0xcd40a7['shift']());}};_0x336808(++_0x58e78d);}(_0xbc43,0x1a9));var _0x3bc4=function(_0x598631,_0x8e971c){_0x598631=_0x598631-0x0;var _0xd17e1=_0xbc43[_0x598631];return _0xd17e1;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x3bc4('0x0')]},'username':{'type':Sequelize[_0x3bc4('0x0')]},'password':{'type':Sequelize[_0x3bc4('0x0')]},'remoteUri':{'type':Sequelize[_0x3bc4('0x0')]},'tenantId':{'type':Sequelize[_0x3bc4('0x0')]},'clientId':{'type':Sequelize[_0x3bc4('0x0')]},'clientSecret':{'type':Sequelize[_0x3bc4('0x0')]},'serverUrl':{'type':Sequelize[_0x3bc4('0x0')],'allowNull':![]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99c9=['customeridname','customeridtype','customeridyominame','emailaddress','entitlementidname','entityimage_timestamp','entityimage_url','escalatedon','exchangerate','firstresponsebykpiidname','followupby','influencescore','kbarticleidname','lastonholdtime','masteridname','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedon','modifiedonbehalfbyname','msdyn_incidenttypename','msdyn_iotalertname','numberofchildincidents','overriddencreatedon','owneridtype','owneridyominame','parentcaseidname','primarycontactidname','primarycontactidyominame','prioritycodename','productidname','productserialnumber','responsiblecontactidname','responsiblecontactidyominame','sentimentvalue','slainvokedidname','slaname','socialprofileidname','statecode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','traversedpath','versionnumber','concat','username','remoteUri','tenantId','clientId','clientSecret','slice','substring','lastIndexOf','format','%s/api/data/v9.0/','POST','https://login.microsoftonline.com/','/oauth2/token','password','access_token','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','remove','includes','LogicalName','@odata.type','PicklistAttributeMetadata','push','MetadataId','all','forEach','isNil','DoubleAttributeMetadata','BigIntAttributeMetadata','MemoAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','test','statusCode','Wrong\x20credentials',')/Attributes(','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','Label','UserLocalizedLabel','Value','DisplayName',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','OptionSet','TrueOption','true','FalseOption','false',')/Microsoft.Dynamics.CRM.','?$select=DisplayName,LogicalName','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','json','undefined','limit','count','offset','status','set','Content-Range','reject','save','update','then','destroy','error','stack','name','index','map','Dynamics365Account','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','filters','find','create','body','params','getConfigurations','findOne','Dynamics365Configuration','order','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','Dynamics365Field','getFields','incident','Incident','title','description','customerid','ownerid','caseorigincode','phonenumber','regardingobjectid','accountidname','accountidyominame','actualserviceunits','contactidname','contactidyominame','contractdetailidname','createdbyexternalpartyname','createdbyname','createdbyyominame','createdon','createdonbehalfbyname'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x99c9,0x13c));var _0x999c=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x99c9[_0x4a9fb1];return _0x348672;};'use strict';var emlformat=require(_0x999c('0x0'));var rimraf=require(_0x999c('0x1'));var zipdir=require(_0x999c('0x2'));var jsonpatch=require(_0x999c('0x3'));var rp=require(_0x999c('0x4'));var moment=require(_0x999c('0x5'));var BPromise=require(_0x999c('0x6'));var Mustache=require('mustache');var util=require(_0x999c('0x7'));var path=require(_0x999c('0x8'));var sox=require(_0x999c('0x9'));var csv=require(_0x999c('0xa'));var ejs=require(_0x999c('0xb'));var fs=require('fs');var fs_extra=require(_0x999c('0xc'));var _=require(_0x999c('0xd'));var squel=require(_0x999c('0xe'));var crypto=require(_0x999c('0xf'));var jsforce=require(_0x999c('0x10'));var deskjs=require(_0x999c('0x11'));var toCsv=require(_0x999c('0xa'));var querystring=require(_0x999c('0x12'));var Papa=require(_0x999c('0x13'));var Redis=require('ioredis');var authService=require(_0x999c('0x14'));var qs=require(_0x999c('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x999c('0x16'));var logger=require(_0x999c('0x17'))(_0x999c('0x18'));var utils=require(_0x999c('0x19'));var config=require(_0x999c('0x1a'));var licenseUtil=require(_0x999c('0x1b'));var db=require(_0x999c('0x1c'))['db'];var integrations=require(_0x999c('0x1d'));function respondWithStatusCode(_0x2e5f7e,_0x44a5bc){_0x44a5bc=_0x44a5bc||0xcc;return function(_0x5b11ff){if(_0x5b11ff){return _0x2e5f7e[_0x999c('0x1e')](_0x44a5bc);}return _0x2e5f7e['status'](_0x44a5bc)[_0x999c('0x1f')]();};}function respondWithResult(_0xd14862,_0x4f2916){_0x4f2916=_0x4f2916||0xc8;return function(_0x54a2fa){if(_0x54a2fa){return _0xd14862['status'](_0x4f2916)[_0x999c('0x20')](_0x54a2fa);}};}function respondWithFilteredResult(_0xb3e981,_0x203a73){return function(_0x116f08){if(_0x116f08){var _0x2a6667=typeof _0x203a73['offset']===_0x999c('0x21')&&typeof _0x203a73[_0x999c('0x22')]===_0x999c('0x21');var _0xc05363=_0x116f08[_0x999c('0x23')];var _0x500048=_0x2a6667?0x0:_0x203a73[_0x999c('0x24')];var _0x3fb85e=_0x2a6667?_0x116f08[_0x999c('0x23')]:_0x203a73[_0x999c('0x24')]+_0x203a73[_0x999c('0x22')];var _0x52337e;if(_0x3fb85e>=_0xc05363){_0x3fb85e=_0xc05363;_0x52337e=0xc8;}else{_0x52337e=0xce;}_0xb3e981[_0x999c('0x25')](_0x52337e);return _0xb3e981[_0x999c('0x26')](_0x999c('0x27'),_0x500048+'-'+_0x3fb85e+'/'+_0xc05363)[_0x999c('0x20')](_0x116f08);}return null;};}function patchUpdates(_0xceb421){return function(_0x1219d6){try{jsonpatch['apply'](_0x1219d6,_0xceb421,!![]);}catch(_0x345b45){return BPromise[_0x999c('0x28')](_0x345b45);}return _0x1219d6[_0x999c('0x29')]();};}function saveUpdates(_0x2bcfc9,_0x1c6e55){return function(_0xd1b8bc){if(_0xd1b8bc){return _0xd1b8bc[_0x999c('0x2a')](_0x2bcfc9)[_0x999c('0x2b')](function(_0x4002d2){return _0x4002d2;});}return null;};}function removeEntity(_0x281720,_0x2cfd83){return function(_0x53a319){if(_0x53a319){return _0x53a319[_0x999c('0x2c')]()[_0x999c('0x2b')](function(){_0x281720[_0x999c('0x25')](0xcc)[_0x999c('0x1f')]();});}};}function handleEntityNotFound(_0x2256fd,_0x15d102){return function(_0x575897){if(!_0x575897){_0x2256fd[_0x999c('0x1e')](0x194);}return _0x575897;};}function handleError(_0x43293f,_0x1c866f){_0x1c866f=_0x1c866f||0x1f4;return function(_0x5c7fd4){logger[_0x999c('0x2d')](_0x5c7fd4[_0x999c('0x2e')]);if(_0x5c7fd4['name']){delete _0x5c7fd4[_0x999c('0x2f')];}_0x43293f['status'](_0x1c866f)['send'](_0x5c7fd4);};}exports[_0x999c('0x30')]=function(_0x42cb25,_0x457df3){var _0x2de6d5={},_0x3737e9={},_0x42c2e8={'count':0x0,'rows':[]};var _0x22cb67=_[_0x999c('0x31')](db[_0x999c('0x32')][_0x999c('0x33')],function(_0x532bae){return{'name':_0x532bae[_0x999c('0x34')],'type':_0x532bae[_0x999c('0x35')][_0x999c('0x36')]};});_0x3737e9[_0x999c('0x37')]=_[_0x999c('0x31')](_0x22cb67,_0x999c('0x2f'));_0x3737e9[_0x999c('0x38')]=_[_0x999c('0x39')](_0x42cb25['query']);_0x3737e9['filters']=_[_0x999c('0x3a')](_0x3737e9[_0x999c('0x37')],_0x3737e9[_0x999c('0x38')]);_0x2de6d5[_0x999c('0x3b')]=_['intersection'](_0x3737e9[_0x999c('0x37')],qs[_0x999c('0x3c')](_0x42cb25[_0x999c('0x38')][_0x999c('0x3c')]));_0x2de6d5['attributes']=_0x2de6d5['attributes'][_0x999c('0x3d')]?_0x2de6d5[_0x999c('0x3b')]:_0x3737e9[_0x999c('0x37')];if(!_0x42cb25[_0x999c('0x38')][_0x999c('0x3e')](_0x999c('0x3f'))){_0x2de6d5[_0x999c('0x22')]=qs['limit'](_0x42cb25['query']['limit']);_0x2de6d5[_0x999c('0x24')]=qs[_0x999c('0x24')](_0x42cb25['query']['offset']);}_0x2de6d5['order']=qs[_0x999c('0x40')](_0x42cb25[_0x999c('0x38')][_0x999c('0x40')]);_0x2de6d5[_0x999c('0x41')]=qs['filters'](_[_0x999c('0x42')](_0x42cb25[_0x999c('0x38')],_0x3737e9['filters']),_0x22cb67);if(_0x42cb25['query'][_0x999c('0x43')]){_0x2de6d5['where']=_[_0x999c('0x44')](_0x2de6d5['where'],{'$or':_[_0x999c('0x31')](_0x22cb67,function(_0x21850d){if(_0x21850d[_0x999c('0x35')]!==_0x999c('0x45')){var _0x59029b={};_0x59029b[_0x21850d['name']]={'$like':'%'+_0x42cb25[_0x999c('0x38')][_0x999c('0x43')]+'%'};return _0x59029b;}})});}_0x2de6d5=_[_0x999c('0x44')]({},_0x2de6d5,_0x42cb25[_0x999c('0x46')]);var _0x5e21b6={'where':_0x2de6d5[_0x999c('0x41')]};return db[_0x999c('0x32')][_0x999c('0x23')](_0x5e21b6)[_0x999c('0x2b')](function(_0x576360){_0x42c2e8[_0x999c('0x23')]=_0x576360;if(_0x42cb25['query'][_0x999c('0x47')]){_0x2de6d5[_0x999c('0x48')]=[{'all':!![]}];}return db['Dynamics365Account'][_0x999c('0x49')](_0x2de6d5);})[_0x999c('0x2b')](function(_0x383517){_0x42c2e8[_0x999c('0x4a')]=_0x383517;return _0x42c2e8;})[_0x999c('0x2b')](respondWithFilteredResult(_0x457df3,_0x2de6d5))[_0x999c('0x4b')](handleError(_0x457df3,null));};exports[_0x999c('0x4c')]=function(_0x3edf69,_0x4ef478){var _0x563e11={'raw':![],'where':{'id':_0x3edf69['params']['id']}},_0x499095={};_0x499095[_0x999c('0x37')]=_[_0x999c('0x39')](db[_0x999c('0x32')][_0x999c('0x33')]);_0x499095[_0x999c('0x38')]=_['keys'](_0x3edf69[_0x999c('0x38')]);_0x499095[_0x999c('0x4d')]=_[_0x999c('0x3a')](_0x499095[_0x999c('0x37')],_0x499095[_0x999c('0x38')]);_0x563e11['attributes']=_[_0x999c('0x3a')](_0x499095[_0x999c('0x37')],qs[_0x999c('0x3c')](_0x3edf69[_0x999c('0x38')][_0x999c('0x3c')]));_0x563e11[_0x999c('0x3b')]=_0x563e11[_0x999c('0x3b')][_0x999c('0x3d')]?_0x563e11[_0x999c('0x3b')]:_0x499095['model'];if(_0x3edf69['query'][_0x999c('0x47')]){_0x563e11[_0x999c('0x48')]=[{'all':!![]}];}_0x563e11=_[_0x999c('0x44')]({},_0x563e11,_0x3edf69[_0x999c('0x46')]);return db[_0x999c('0x32')][_0x999c('0x4e')](_0x563e11)[_0x999c('0x2b')](handleEntityNotFound(_0x4ef478,null))[_0x999c('0x2b')](respondWithResult(_0x4ef478,null))[_0x999c('0x4b')](handleError(_0x4ef478,null));};exports[_0x999c('0x4f')]=function(_0x3457d6,_0x4ca662){return db[_0x999c('0x32')][_0x999c('0x4f')](_0x3457d6[_0x999c('0x50')],{})[_0x999c('0x2b')](respondWithResult(_0x4ca662,0xc9))[_0x999c('0x4b')](handleError(_0x4ca662,null));};exports[_0x999c('0x2a')]=function(_0x11f3bf,_0x396e2c){if(_0x11f3bf['body']['id']){delete _0x11f3bf[_0x999c('0x50')]['id'];}return db[_0x999c('0x32')][_0x999c('0x4e')]({'where':{'id':_0x11f3bf[_0x999c('0x51')]['id']}})[_0x999c('0x2b')](handleEntityNotFound(_0x396e2c,null))[_0x999c('0x2b')](saveUpdates(_0x11f3bf[_0x999c('0x50')],null))['then'](respondWithResult(_0x396e2c,null))['catch'](handleError(_0x396e2c,null));};exports[_0x999c('0x2c')]=function(_0x3f134a,_0x37fb36){return db[_0x999c('0x32')][_0x999c('0x4e')]({'where':{'id':_0x3f134a['params']['id']}})[_0x999c('0x2b')](handleEntityNotFound(_0x37fb36,null))[_0x999c('0x2b')](removeEntity(_0x37fb36,null))[_0x999c('0x4b')](handleError(_0x37fb36,null));};exports[_0x999c('0x52')]=function(_0x5c066e,_0x19314a,_0x53cf5c){var _0x123192={};var _0x1129e9={};var _0x243913;var _0x1590ea;return db[_0x999c('0x32')][_0x999c('0x53')]({'where':{'id':_0x5c066e[_0x999c('0x51')]['id']}})['then'](handleEntityNotFound(_0x19314a,null))[_0x999c('0x2b')](function(_0x68f8f4){if(_0x68f8f4){_0x243913=_0x68f8f4;_0x1129e9[_0x999c('0x37')]=_['keys'](db[_0x999c('0x54')][_0x999c('0x33')]);_0x1129e9[_0x999c('0x38')]=_['keys'](_0x5c066e[_0x999c('0x38')]);_0x1129e9['filters']=_[_0x999c('0x3a')](_0x1129e9[_0x999c('0x37')],_0x1129e9[_0x999c('0x38')]);_0x123192[_0x999c('0x3b')]=_['intersection'](_0x1129e9[_0x999c('0x37')],qs['fields'](_0x5c066e['query'][_0x999c('0x3c')]));_0x123192[_0x999c('0x3b')]=_0x123192['attributes'][_0x999c('0x3d')]?_0x123192['attributes']:_0x1129e9[_0x999c('0x37')];_0x123192[_0x999c('0x55')]=qs['sort'](_0x5c066e[_0x999c('0x38')][_0x999c('0x40')]);_0x123192[_0x999c('0x41')]=qs[_0x999c('0x4d')](_[_0x999c('0x42')](_0x5c066e[_0x999c('0x38')],_0x1129e9[_0x999c('0x4d')]));if(_0x5c066e[_0x999c('0x38')][_0x999c('0x43')]){_0x123192['where']=_[_0x999c('0x44')](_0x123192[_0x999c('0x41')],{'$or':_[_0x999c('0x31')](_0x123192[_0x999c('0x3b')],function(_0x171e60){var _0x3c652b={};_0x3c652b[_0x171e60]={'$like':'%'+_0x5c066e['query']['filter']+'%'};return _0x3c652b;})});}_0x123192=_['merge']({},_0x123192,_0x5c066e['options']);return _0x243913[_0x999c('0x52')](_0x123192);}})[_0x999c('0x2b')](function(_0x36fd71){if(_0x36fd71){_0x1590ea=_0x36fd71['length'];if(!_0x5c066e[_0x999c('0x38')]['hasOwnProperty'](_0x999c('0x3f'))){_0x123192['limit']=qs[_0x999c('0x22')](_0x5c066e[_0x999c('0x38')][_0x999c('0x22')]);_0x123192[_0x999c('0x24')]=qs[_0x999c('0x24')](_0x5c066e['query'][_0x999c('0x24')]);}return _0x243913[_0x999c('0x52')](_0x123192);}})[_0x999c('0x2b')](function(_0x27f9af){if(_0x27f9af){return _0x27f9af?{'count':_0x1590ea,'rows':_0x27f9af}:null;}})[_0x999c('0x2b')](respondWithResult(_0x19314a,null))[_0x999c('0x4b')](handleError(_0x19314a,null));};exports[_0x999c('0x56')]=function(_0x4d4c33,_0x30f93c,_0x1092ba){if(_0x4d4c33[_0x999c('0x50')]['id']){delete _0x4d4c33[_0x999c('0x50')]['id'];}return db[_0x999c('0x32')][_0x999c('0x53')]({'where':{'id':_0x4d4c33[_0x999c('0x51')]['id']}})['then'](handleEntityNotFound(_0x30f93c,null))[_0x999c('0x2b')](function(_0xd2d105){if(_0xd2d105){_0x4d4c33['body']['AccountId']=_0xd2d105['id'];_0x4d4c33[_0x999c('0x50')][_0x999c('0x57')]=integrations[_0x999c('0x58')](_0x4d4c33['body'][_0x999c('0x59')],_0x4d4c33[_0x999c('0x50')][_0x999c('0x35')]);_0x4d4c33[_0x999c('0x50')][_0x999c('0x5a')]=integrations[_0x999c('0x5b')](_0x4d4c33['body'][_0x999c('0x59')],_0x4d4c33['body'][_0x999c('0x35')]);return db[_0x999c('0x54')][_0x999c('0x4f')](_0x4d4c33[_0x999c('0x50')],{'include':[{'model':db[_0x999c('0x5c')],'as':_0x999c('0x57')},{'model':db[_0x999c('0x5c')],'as':_0x999c('0x5a')}]});}return null;})[_0x999c('0x2b')](respondWithResult(_0x30f93c,null))[_0x999c('0x4b')](handleError(_0x30f93c,null));};exports[_0x999c('0x5d')]=function(_0x3905f1,_0xb1178c,_0x524931){var _0xd748e1=_0x3905f1[_0x999c('0x38')]['ticketType'];var _0x1066c8=_0xd748e1===_0x999c('0x5e')?_0x999c('0x5f'):'PhoneCall';var _0x2e0a60='';var _0xd83bc6='';var _0x2275e1='';var _0x1f30d8='';var _0x1e46f2='';var _0x5d4d9b='';var _0x42e688='';var _0x212050='';var _0x240a1c=[_0x999c('0x60'),_0x999c('0x61'),_0x999c('0x62'),_0x999c('0x63'),_0x999c('0x64'),'subject',_0x999c('0x65'),_0x999c('0x66'),'directioncode','phonecall_activity_parties'];var _0x2ac0be=[_0x999c('0x67'),_0x999c('0x68'),_0x999c('0x69'),'billedserviceunits',_0x999c('0x6a'),_0x999c('0x6b'),_0x999c('0x6c'),'contractidname',_0x999c('0x6d'),'createdbyexternalpartyyominame',_0x999c('0x6e'),_0x999c('0x6f'),_0x999c('0x70'),_0x999c('0x71'),'createdonbehalfbyyominame',_0x999c('0x72'),_0x999c('0x73'),_0x999c('0x74'),_0x999c('0x75'),_0x999c('0x76'),_0x999c('0x77'),_0x999c('0x78'),_0x999c('0x79'),_0x999c('0x7a'),_0x999c('0x7b'),_0x999c('0x7c'),'importsequencenumber',_0x999c('0x7d'),_0x999c('0x7e'),_0x999c('0x7f'),_0x999c('0x80'),_0x999c('0x81'),_0x999c('0x82'),'modifiedbyname','modifiedbyyominame',_0x999c('0x83'),_0x999c('0x84'),'modifiedonbehalfbyyominame',_0x999c('0x85'),_0x999c('0x86'),_0x999c('0x87'),'onholdtime',_0x999c('0x88'),'owneridname',_0x999c('0x89'),_0x999c('0x8a'),_0x999c('0x8b'),_0x999c('0x8c'),_0x999c('0x8d'),_0x999c('0x8e'),_0x999c('0x8f'),_0x999c('0x90'),'resolveby','resolvebykpiidname','responseby',_0x999c('0x91'),_0x999c('0x92'),_0x999c('0x93'),_0x999c('0x94'),_0x999c('0x95'),_0x999c('0x96'),_0x999c('0x97'),'statuscode',_0x999c('0x98'),_0x999c('0x99'),_0x999c('0x9a'),_0x999c('0x9b'),_0x999c('0x9c'),'utcconversiontimezonecode',_0x999c('0x9d')];var _0x4d74da=_0x240a1c[_0x999c('0x9e')](_0x2ac0be);return db['Dynamics365Account']['findOne']({'where':{'id':_0x3905f1['params']['id']},'attributes':['id',_0x999c('0x9f'),'password',_0x999c('0xa0'),_0x999c('0xa1'),_0x999c('0xa2'),_0x999c('0xa3')]})[_0x999c('0x2b')](handleEntityNotFound(_0xb1178c,null))[_0x999c('0x2b')](function(_0x34f209){if(_0x34f209){_0x212050=_0x34f209[_0x999c('0xa0')];var _0x11c03d=_0x212050[_0x999c('0xa4')](-0x1);if(_0x11c03d==='/'){_0x212050=_0x212050[_0x999c('0xa5')](0x0,_0x212050[_0x999c('0xa6')](_0x11c03d));}_0x42e688=util[_0x999c('0xa7')](_0x999c('0xa8'),_0x212050);var _0x56d9d5={'method':_0x999c('0xa9'),'uri':_0x999c('0xaa')+_0x34f209['tenantId']+_0x999c('0xab'),'form':{'client_id':_0x34f209['clientId'],'resource':_0x212050,'username':_0x34f209[_0x999c('0x9f')],'password':_0x34f209['password'],'grant_type':_0x999c('0xac'),'client_secret':_0x34f209['clientSecret']},'json':!![]};return rp(_0x56d9d5);}})[_0x999c('0x2b')](function(_0xdd8806){_0x5d4d9b=_0xdd8806[_0x999c('0xad')];var _0x599283={'method':_0x999c('0xae'),'uri':encodeURI(_0x42e688+_0x999c('0xaf')+_0x1066c8+'\x27'),'headers':{'Authorization':_0x999c('0xb0')+_0x5d4d9b,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x599283);})['then'](function(_0x3ceb51){var _0x3626c7=_0x3ceb51['value'][0x0];var _0x488b0a=_0x3626c7['MetadataId'];var _0x5569b9={'method':'GET','uri':_0x42e688+_0x999c('0xb2')+_0x488b0a+_0x999c('0xb3'),'headers':{'Authorization':_0x999c('0xb0')+_0x5d4d9b,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x5569b9);})[_0x999c('0x2b')](function(_0xc64e76){_0x2e0a60=_0xc64e76;_0xd83bc6=_0x2e0a60['Attributes'];_0xd83bc6=_[_0x999c('0xb4')](_0xd83bc6,function(_0x51e5ad){return!_0x4d74da[_0x999c('0xb5')](_0x51e5ad[_0x999c('0xb6')]);});var _0x41b2a7=[];var _0x27add6=[];_0xd83bc6['forEach'](function(_0x4208ab){if(_0x4208ab['@odata.type']){var _0x5e2064=_0x4208ab[_0x999c('0xb7')][_0x999c('0xa5')](_0x4208ab[_0x999c('0xb7')][_0x999c('0xa6')]('.')+0x1);if(_0x5e2064===_0x999c('0xb8')){_0x41b2a7[_0x999c('0xb9')](getSelectList(_0x42e688,_0xd748e1,_0x27add6,_0x2e0a60[_0x999c('0xba')],_0x4208ab[_0x999c('0xba')],_0x5d4d9b));}}});return Promise[_0x999c('0xbb')](_0x41b2a7);})['then'](function(_0x5490f4){_0x2275e1=_0x5490f4[0x0];var _0x3718c2=[];var _0x53809e=[];_0xd83bc6[_0x999c('0xbc')](function(_0x42ef9c){if(!_[_0x999c('0xbd')](_0x42ef9c['@odata.type'])){var _0x28f767=_0x42ef9c[_0x999c('0xb7')][_0x999c('0xa5')](_0x42ef9c[_0x999c('0xb7')]['lastIndexOf']('.')+0x1);if(_0x28f767==='BooleanAttributeMetadata'){_0x3718c2['push'](getBooleanList(_0x42e688,_0xd748e1,_0x53809e,_0x2e0a60[_0x999c('0xba')],_0x42ef9c[_0x999c('0xba')],_0x5d4d9b));}}});return Promise[_0x999c('0xbb')](_0x3718c2);})[_0x999c('0x2b')](function(_0x45315c){_0x1f30d8=_0x45315c[0x0];var _0x123a8f=[];var _0x7ac5e2=[];_0xd83bc6[_0x999c('0xbc')](function(_0x30f80f){if(_0x30f80f['@odata.type']){var _0x32acce=_0x30f80f[_0x999c('0xb7')]['substring'](_0x30f80f[_0x999c('0xb7')][_0x999c('0xa6')]('.')+0x1);if(_0x32acce==='StringAttributeMetadata'||_0x32acce===_0x999c('0xbe')||_0x32acce===_0x999c('0xbf')||_0x32acce==='IntegerAttributeMetadata'||_0x32acce===_0x999c('0xc0')||_0x32acce===_0x999c('0xc1')||_0x32acce===_0x999c('0xc2')||_0x32acce===_0x999c('0xc3')||_0x32acce===_0x999c('0xc4')||_0x32acce===_0x999c('0xc5')){_0x123a8f[_0x999c('0xb9')](getInputList(_0x42e688,_0xd748e1,_0x32acce,_0x7ac5e2,_0x2e0a60['MetadataId'],_0x30f80f['MetadataId'],_0x5d4d9b));}}});return Promise[_0x999c('0xbb')](_0x123a8f);})[_0x999c('0x2b')](function(_0x42e843){_0x1e46f2=_0x42e843[0x0];var _0x350c00=_0x2275e1[_0x999c('0x9e')](_0x1f30d8)['concat'](_0x1e46f2);var _0x5bce18={'count':_0x350c00[_0x999c('0x3d')],'rows':_0x350c00};return _0x5bce18;})[_0x999c('0x2b')](respondWithResult(_0xb1178c,null))['catch'](function(_0x352c27){var _0x5127ae=_0x3905f1[_0x999c('0x38')][_0x999c('0xc6')]?0x1f4:_0x352c27[_0x999c('0xc7')]||0x1f4;logger[_0x999c('0x2d')](_0x352c27['stack']);delete _0x352c27['name'];if(_0x5127ae===0x191){_0x5127ae=0x190;}_0xb1178c[_0x999c('0x25')](_0x5127ae)['send'](_0x3905f1[_0x999c('0x38')]['test']?{'message':_0x999c('0xc8'),'statusCode':_0x352c27['statusCode']}:_0x352c27);});};function getSelectList(_0x5d9747,_0x4a263c,_0x1225ff,_0x3031ee,_0xf9edc2,_0x44b467){var _0x2a00f6={'method':_0x999c('0xae'),'uri':_0x5d9747+'EntityDefinitions('+_0x3031ee+_0x999c('0xc9')+_0xf9edc2+')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?'+_0x999c('0xca'),'headers':{'Authorization':_0x999c('0xb0')+_0x44b467,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x2a00f6)[_0x999c('0x2b')](function(_0x22f496){var _0xbb90d7=[];var _0x1f68dd=_0x22f496['OptionSet']['Options'];_0x1f68dd[_0x999c('0xbc')](function(_0x269707){_0xbb90d7[_0x999c('0xb9')]({'name':_0x269707[_0x999c('0xcb')][_0x999c('0xcc')][_0x999c('0xcb')],'value':String(_0x269707[_0x999c('0xcd')])});});var _0x259047={'id':_0x4a263c+'_'+_0x22f496['LogicalName'],'name':_0x22f496[_0x999c('0xce')][_0x999c('0xcc')][_0x999c('0xcb')],'custom':![],'options':_0xbb90d7};_0x1225ff[_0x999c('0xb9')](_0x259047);return _0x1225ff;});}function getBooleanList(_0x2c252c,_0xaefb8a,_0x478518,_0x38974e,_0x5b19f4,_0x203905){var _0x2c833e={'method':_0x999c('0xae'),'uri':_0x2c252c+_0x999c('0xb2')+_0x38974e+_0x999c('0xc9')+_0x5b19f4+_0x999c('0xcf'),'headers':{'Authorization':_0x999c('0xb0')+_0x203905,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x2c833e)['then'](function(_0xa77743){var _0x413838=[];_0x413838['push']({'name':_0xa77743[_0x999c('0xd0')][_0x999c('0xd1')][_0x999c('0xcb')]['UserLocalizedLabel'][_0x999c('0xcb')],'value':_0x999c('0xd2')},{'name':_0xa77743['OptionSet'][_0x999c('0xd3')]['Label']['UserLocalizedLabel']['Label'],'value':_0x999c('0xd4')});var _0x1d2fcd={'id':_0xaefb8a+'_'+_0xa77743[_0x999c('0xb6')],'name':_0xa77743[_0x999c('0xce')]['UserLocalizedLabel'][_0x999c('0xcb')],'custom':![],'options':_0x413838};_0x478518['push'](_0x1d2fcd);return _0x478518;});}function getInputList(_0x2f457f,_0x3370e5,_0xce0a24,_0x20e708,_0x73f91,_0x3e12fc,_0x2cc2c6){var _0x5ca3bb={'method':_0x999c('0xae'),'uri':_0x2f457f+_0x999c('0xb2')+_0x73f91+_0x999c('0xc9')+_0x3e12fc+_0x999c('0xd5')+_0xce0a24+_0x999c('0xd6'),'headers':{'Authorization':_0x999c('0xb0')+_0x2cc2c6,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x5ca3bb)[_0x999c('0x2b')](function(_0x3e81f1){var _0x49ea1d={'id':_0x3370e5+'_'+_0x3e81f1['LogicalName'],'name':_0x3e81f1[_0x999c('0xce')]['UserLocalizedLabel']?_0x3e81f1['DisplayName'][_0x999c('0xcc')][_0x999c('0xcb')]:_0x3e81f1[_0x999c('0xb6')],'custom':![],'options':[]};_0x20e708[_0x999c('0xb9')](_0x49ea1d);return _0x20e708;});}
\ No newline at end of file
+var _0xb458=['timezoneruleversionnumber','transactioncurrencyidname','traversedpath','utcconversiontimezonecode','concat','username','remoteUri','clientId','clientSecret','slice','substring','lastIndexOf','format','POST','/oauth2/token','password','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','value','MetadataId','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','includes','LogicalName','forEach','@odata.type','PicklistAttributeMetadata','all','isNil','push','StringAttributeMetadata','DoubleAttributeMetadata','IntegerAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','StateAttributeMetadata','test','statusCode','Wrong\x20credentials',')/Attributes(','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','OptionSet','Options','Label','UserLocalizedLabel','Value','DisplayName',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','TrueOption','true','FalseOption','false',')/Microsoft.Dynamics.CRM.','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','error','stack','name','send','index','Dynamics365Account','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','pick','filter','where','VIRTUAL','merge','options','include','findAll','rows','catch','show','length','includeAll','find','create','body','params','getConfigurations','Dynamics365Configuration','findOne','AccountId','Subjects','channel','Dynamics365Field','Descriptions','getFields','ticketType','incident','Incident','PhoneCall','title','description','customerid','caseorigincode','subject','phonenumber','regardingobjectid','directioncode','phonecall_activity_parties','accountidname','actualserviceunits','billedserviceunits','contactidname','contactidyominame','contractdetailidname','contractidname','createdbyexternalpartyname','createdbyexternalpartyyominame','createdbyname','createdbyyominame','createdon','customeridname','customeridtype','customeridyominame','emailaddress','entitlementidname','entityimage_timestamp','entityimage_url','escalatedon','exchangerate','importsequencenumber','influencescore','kbarticleidname','lastonholdtime','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedbyname','modifiedbyyominame','modifiedon','modifiedonbehalfbyname','msdyn_iotalertname','owneridname','owneridtype','owneridyominame','parentcaseidname','primarycontactidname','primarycontactidyominame','prioritycodename','productidname','productserialnumber','resolveby','resolvebykpiidname','responseby','responsiblecontactidname','responsiblecontactidyominame','sentimentvalue','slaname','socialprofileidname','statecode','statuscode','subjectidname','ticketnumber'];(function(_0x105172,_0x484800){var _0x453676=function(_0x110994){while(--_0x110994){_0x105172['push'](_0x105172['shift']());}};_0x453676(++_0x484800);}(_0xb458,0x103));var _0x8b45=function(_0x4bd385,_0x3a3e0a){_0x4bd385=_0x4bd385-0x0;var _0x3bbd36=_0xb458[_0x4bd385];return _0x3bbd36;};'use strict';var emlformat=require(_0x8b45('0x0'));var rimraf=require(_0x8b45('0x1'));var zipdir=require(_0x8b45('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x8b45('0x3'));var BPromise=require(_0x8b45('0x4'));var Mustache=require(_0x8b45('0x5'));var util=require(_0x8b45('0x6'));var path=require('path');var sox=require(_0x8b45('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8b45('0x8'));var _=require(_0x8b45('0x9'));var squel=require(_0x8b45('0xa'));var crypto=require(_0x8b45('0xb'));var jsforce=require(_0x8b45('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x8b45('0xd'));var querystring=require(_0x8b45('0xe'));var Papa=require(_0x8b45('0xf'));var Redis=require(_0x8b45('0x10'));var authService=require(_0x8b45('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x8b45('0x12'));var hardwareService=require(_0x8b45('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x8b45('0x14'));var db=require(_0x8b45('0x15'))['db'];var integrations=require(_0x8b45('0x16'));function respondWithStatusCode(_0x52c4db,_0x30d38c){_0x30d38c=_0x30d38c||0xcc;return function(_0x455ecf){if(_0x455ecf){return _0x52c4db[_0x8b45('0x17')](_0x30d38c);}return _0x52c4db[_0x8b45('0x18')](_0x30d38c)[_0x8b45('0x19')]();};}function respondWithResult(_0x2ad2ae,_0x5f0b20){_0x5f0b20=_0x5f0b20||0xc8;return function(_0x5a14c1){if(_0x5a14c1){return _0x2ad2ae[_0x8b45('0x18')](_0x5f0b20)[_0x8b45('0x1a')](_0x5a14c1);}};}function respondWithFilteredResult(_0x445170,_0x39c1d1){return function(_0x4781d7){if(_0x4781d7){var _0x27ebb3=typeof _0x39c1d1[_0x8b45('0x1b')]===_0x8b45('0x1c')&&typeof _0x39c1d1[_0x8b45('0x1d')]===_0x8b45('0x1c');var _0x287a3b=_0x4781d7[_0x8b45('0x1e')];var _0x1ed5ca=_0x27ebb3?0x0:_0x39c1d1[_0x8b45('0x1b')];var _0x1623d8=_0x27ebb3?_0x4781d7[_0x8b45('0x1e')]:_0x39c1d1[_0x8b45('0x1b')]+_0x39c1d1[_0x8b45('0x1d')];var _0x51f39a;if(_0x1623d8>=_0x287a3b){_0x1623d8=_0x287a3b;_0x51f39a=0xc8;}else{_0x51f39a=0xce;}_0x445170[_0x8b45('0x18')](_0x51f39a);return _0x445170[_0x8b45('0x1f')](_0x8b45('0x20'),_0x1ed5ca+'-'+_0x1623d8+'/'+_0x287a3b)[_0x8b45('0x1a')](_0x4781d7);}return null;};}function patchUpdates(_0x3e1438){return function(_0x23eae6){try{jsonpatch[_0x8b45('0x21')](_0x23eae6,_0x3e1438,!![]);}catch(_0x32b917){return BPromise['reject'](_0x32b917);}return _0x23eae6['save']();};}function saveUpdates(_0x41154a,_0x580e17){return function(_0x1952fc){if(_0x1952fc){return _0x1952fc[_0x8b45('0x22')](_0x41154a)[_0x8b45('0x23')](function(_0x45e2db){return _0x45e2db;});}return null;};}function removeEntity(_0x165570,_0x2b8526){return function(_0x32b12b){if(_0x32b12b){return _0x32b12b['destroy']()['then'](function(){_0x165570[_0x8b45('0x18')](0xcc)[_0x8b45('0x19')]();});}};}function handleEntityNotFound(_0x500044,_0x5723a2){return function(_0x129c35){if(!_0x129c35){_0x500044[_0x8b45('0x17')](0x194);}return _0x129c35;};}function handleError(_0x2ca2d9,_0x2f37bc){_0x2f37bc=_0x2f37bc||0x1f4;return function(_0x4e84cc){logger[_0x8b45('0x24')](_0x4e84cc[_0x8b45('0x25')]);if(_0x4e84cc[_0x8b45('0x26')]){delete _0x4e84cc[_0x8b45('0x26')];}_0x2ca2d9[_0x8b45('0x18')](_0x2f37bc)[_0x8b45('0x27')](_0x4e84cc);};}exports[_0x8b45('0x28')]=function(_0x234f62,_0x1733a7){var _0xf21bd1={},_0x339c73={},_0x1ba2d4={'count':0x0,'rows':[]};var _0x5b6151=_['map'](db[_0x8b45('0x29')][_0x8b45('0x2a')],function(_0x34eb03){return{'name':_0x34eb03[_0x8b45('0x2b')],'type':_0x34eb03[_0x8b45('0x2c')][_0x8b45('0x2d')]};});_0x339c73[_0x8b45('0x2e')]=_[_0x8b45('0x2f')](_0x5b6151,'name');_0x339c73[_0x8b45('0x30')]=_[_0x8b45('0x31')](_0x234f62[_0x8b45('0x30')]);_0x339c73[_0x8b45('0x32')]=_[_0x8b45('0x33')](_0x339c73['model'],_0x339c73[_0x8b45('0x30')]);_0xf21bd1['attributes']=_['intersection'](_0x339c73[_0x8b45('0x2e')],qs[_0x8b45('0x34')](_0x234f62[_0x8b45('0x30')][_0x8b45('0x34')]));_0xf21bd1[_0x8b45('0x35')]=_0xf21bd1[_0x8b45('0x35')]['length']?_0xf21bd1[_0x8b45('0x35')]:_0x339c73[_0x8b45('0x2e')];if(!_0x234f62[_0x8b45('0x30')][_0x8b45('0x36')]('nolimit')){_0xf21bd1[_0x8b45('0x1d')]=qs[_0x8b45('0x1d')](_0x234f62[_0x8b45('0x30')]['limit']);_0xf21bd1[_0x8b45('0x1b')]=qs[_0x8b45('0x1b')](_0x234f62[_0x8b45('0x30')]['offset']);}_0xf21bd1[_0x8b45('0x37')]=qs[_0x8b45('0x38')](_0x234f62[_0x8b45('0x30')][_0x8b45('0x38')]);_0xf21bd1['where']=qs[_0x8b45('0x32')](_[_0x8b45('0x39')](_0x234f62[_0x8b45('0x30')],_0x339c73[_0x8b45('0x32')]),_0x5b6151);if(_0x234f62[_0x8b45('0x30')][_0x8b45('0x3a')]){_0xf21bd1['where']=_['merge'](_0xf21bd1[_0x8b45('0x3b')],{'$or':_[_0x8b45('0x2f')](_0x5b6151,function(_0x41d6b5){if(_0x41d6b5[_0x8b45('0x2c')]!==_0x8b45('0x3c')){var _0x4c4dbc={};_0x4c4dbc[_0x41d6b5[_0x8b45('0x26')]]={'$like':'%'+_0x234f62['query'][_0x8b45('0x3a')]+'%'};return _0x4c4dbc;}})});}_0xf21bd1=_[_0x8b45('0x3d')]({},_0xf21bd1,_0x234f62[_0x8b45('0x3e')]);var _0x280bb0={'where':_0xf21bd1[_0x8b45('0x3b')]};return db[_0x8b45('0x29')][_0x8b45('0x1e')](_0x280bb0)[_0x8b45('0x23')](function(_0x23631e){_0x1ba2d4[_0x8b45('0x1e')]=_0x23631e;if(_0x234f62[_0x8b45('0x30')]['includeAll']){_0xf21bd1[_0x8b45('0x3f')]=[{'all':!![]}];}return db['Dynamics365Account'][_0x8b45('0x40')](_0xf21bd1);})['then'](function(_0x412c53){_0x1ba2d4[_0x8b45('0x41')]=_0x412c53;return _0x1ba2d4;})[_0x8b45('0x23')](respondWithFilteredResult(_0x1733a7,_0xf21bd1))[_0x8b45('0x42')](handleError(_0x1733a7,null));};exports[_0x8b45('0x43')]=function(_0x2770bc,_0x58e663){var _0x6fbca4={'raw':![],'where':{'id':_0x2770bc['params']['id']}},_0x5916c7={};_0x5916c7[_0x8b45('0x2e')]=_[_0x8b45('0x31')](db[_0x8b45('0x29')]['rawAttributes']);_0x5916c7[_0x8b45('0x30')]=_['keys'](_0x2770bc[_0x8b45('0x30')]);_0x5916c7[_0x8b45('0x32')]=_[_0x8b45('0x33')](_0x5916c7[_0x8b45('0x2e')],_0x5916c7[_0x8b45('0x30')]);_0x6fbca4[_0x8b45('0x35')]=_['intersection'](_0x5916c7[_0x8b45('0x2e')],qs[_0x8b45('0x34')](_0x2770bc[_0x8b45('0x30')][_0x8b45('0x34')]));_0x6fbca4[_0x8b45('0x35')]=_0x6fbca4[_0x8b45('0x35')][_0x8b45('0x44')]?_0x6fbca4[_0x8b45('0x35')]:_0x5916c7[_0x8b45('0x2e')];if(_0x2770bc[_0x8b45('0x30')][_0x8b45('0x45')]){_0x6fbca4[_0x8b45('0x3f')]=[{'all':!![]}];}_0x6fbca4=_[_0x8b45('0x3d')]({},_0x6fbca4,_0x2770bc[_0x8b45('0x3e')]);return db[_0x8b45('0x29')][_0x8b45('0x46')](_0x6fbca4)['then'](handleEntityNotFound(_0x58e663,null))['then'](respondWithResult(_0x58e663,null))['catch'](handleError(_0x58e663,null));};exports[_0x8b45('0x47')]=function(_0x214e28,_0x3a1621){return db[_0x8b45('0x29')][_0x8b45('0x47')](_0x214e28[_0x8b45('0x48')],{})[_0x8b45('0x23')](respondWithResult(_0x3a1621,0xc9))[_0x8b45('0x42')](handleError(_0x3a1621,null));};exports['update']=function(_0x102d01,_0x5d5be2){if(_0x102d01[_0x8b45('0x48')]['id']){delete _0x102d01[_0x8b45('0x48')]['id'];}return db[_0x8b45('0x29')][_0x8b45('0x46')]({'where':{'id':_0x102d01['params']['id']}})[_0x8b45('0x23')](handleEntityNotFound(_0x5d5be2,null))[_0x8b45('0x23')](saveUpdates(_0x102d01['body'],null))[_0x8b45('0x23')](respondWithResult(_0x5d5be2,null))[_0x8b45('0x42')](handleError(_0x5d5be2,null));};exports['destroy']=function(_0xceb596,_0x5758c){return db[_0x8b45('0x29')][_0x8b45('0x46')]({'where':{'id':_0xceb596[_0x8b45('0x49')]['id']}})[_0x8b45('0x23')](handleEntityNotFound(_0x5758c,null))['then'](removeEntity(_0x5758c,null))['catch'](handleError(_0x5758c,null));};exports[_0x8b45('0x4a')]=function(_0x2a2e59,_0x2d5b31,_0x5496cf){var _0x216bf1={};var _0x11d1a5={};var _0x20a68b;var _0x3e8a7d;return db[_0x8b45('0x29')]['findOne']({'where':{'id':_0x2a2e59[_0x8b45('0x49')]['id']}})[_0x8b45('0x23')](handleEntityNotFound(_0x2d5b31,null))['then'](function(_0x422da0){if(_0x422da0){_0x20a68b=_0x422da0;_0x11d1a5['model']=_[_0x8b45('0x31')](db[_0x8b45('0x4b')][_0x8b45('0x2a')]);_0x11d1a5[_0x8b45('0x30')]=_['keys'](_0x2a2e59[_0x8b45('0x30')]);_0x11d1a5[_0x8b45('0x32')]=_[_0x8b45('0x33')](_0x11d1a5[_0x8b45('0x2e')],_0x11d1a5[_0x8b45('0x30')]);_0x216bf1[_0x8b45('0x35')]=_[_0x8b45('0x33')](_0x11d1a5[_0x8b45('0x2e')],qs[_0x8b45('0x34')](_0x2a2e59[_0x8b45('0x30')][_0x8b45('0x34')]));_0x216bf1[_0x8b45('0x35')]=_0x216bf1[_0x8b45('0x35')][_0x8b45('0x44')]?_0x216bf1[_0x8b45('0x35')]:_0x11d1a5['model'];_0x216bf1[_0x8b45('0x37')]=qs[_0x8b45('0x38')](_0x2a2e59[_0x8b45('0x30')]['sort']);_0x216bf1[_0x8b45('0x3b')]=qs[_0x8b45('0x32')](_[_0x8b45('0x39')](_0x2a2e59[_0x8b45('0x30')],_0x11d1a5['filters']));if(_0x2a2e59[_0x8b45('0x30')][_0x8b45('0x3a')]){_0x216bf1[_0x8b45('0x3b')]=_[_0x8b45('0x3d')](_0x216bf1['where'],{'$or':_[_0x8b45('0x2f')](_0x216bf1[_0x8b45('0x35')],function(_0x417778){var _0x27503f={};_0x27503f[_0x417778]={'$like':'%'+_0x2a2e59[_0x8b45('0x30')]['filter']+'%'};return _0x27503f;})});}_0x216bf1=_[_0x8b45('0x3d')]({},_0x216bf1,_0x2a2e59['options']);return _0x20a68b[_0x8b45('0x4a')](_0x216bf1);}})[_0x8b45('0x23')](function(_0x19152b){if(_0x19152b){_0x3e8a7d=_0x19152b[_0x8b45('0x44')];if(!_0x2a2e59[_0x8b45('0x30')][_0x8b45('0x36')]('nolimit')){_0x216bf1['limit']=qs[_0x8b45('0x1d')](_0x2a2e59[_0x8b45('0x30')]['limit']);_0x216bf1[_0x8b45('0x1b')]=qs[_0x8b45('0x1b')](_0x2a2e59[_0x8b45('0x30')]['offset']);}return _0x20a68b['getConfigurations'](_0x216bf1);}})[_0x8b45('0x23')](function(_0x8e5a41){if(_0x8e5a41){return _0x8e5a41?{'count':_0x3e8a7d,'rows':_0x8e5a41}:null;}})['then'](respondWithResult(_0x2d5b31,null))[_0x8b45('0x42')](handleError(_0x2d5b31,null));};exports['addConfiguration']=function(_0xf1ab37,_0x560c51,_0x4c53ff){if(_0xf1ab37[_0x8b45('0x48')]['id']){delete _0xf1ab37[_0x8b45('0x48')]['id'];}return db['Dynamics365Account'][_0x8b45('0x4c')]({'where':{'id':_0xf1ab37[_0x8b45('0x49')]['id']}})[_0x8b45('0x23')](handleEntityNotFound(_0x560c51,null))[_0x8b45('0x23')](function(_0x299b10){if(_0x299b10){_0xf1ab37['body'][_0x8b45('0x4d')]=_0x299b10['id'];_0xf1ab37[_0x8b45('0x48')][_0x8b45('0x4e')]=integrations['getSubjects'](_0xf1ab37['body'][_0x8b45('0x4f')],_0xf1ab37['body'][_0x8b45('0x2c')]);_0xf1ab37['body']['Descriptions']=integrations['getDescriptions'](_0xf1ab37[_0x8b45('0x48')]['channel'],_0xf1ab37[_0x8b45('0x48')][_0x8b45('0x2c')]);return db['Dynamics365Configuration'][_0x8b45('0x47')](_0xf1ab37[_0x8b45('0x48')],{'include':[{'model':db['Dynamics365Field'],'as':_0x8b45('0x4e')},{'model':db[_0x8b45('0x50')],'as':_0x8b45('0x51')}]});}return null;})[_0x8b45('0x23')](respondWithResult(_0x560c51,null))[_0x8b45('0x42')](handleError(_0x560c51,null));};exports[_0x8b45('0x52')]=function(_0x256492,_0x35048c,_0x71338f){var _0x103d80=_0x256492[_0x8b45('0x30')][_0x8b45('0x53')];var _0x4a11ac=_0x103d80===_0x8b45('0x54')?_0x8b45('0x55'):_0x8b45('0x56');var _0x8d9143='';var _0x441e1b='';var _0x304e7d='';var _0x2f3e49='';var _0x3d3216='';var _0x243632='';var _0x1542db='';var _0x183c34='';var _0x3cbe3a=[_0x8b45('0x57'),_0x8b45('0x58'),_0x8b45('0x59'),'ownerid',_0x8b45('0x5a'),_0x8b45('0x5b'),_0x8b45('0x5c'),_0x8b45('0x5d'),_0x8b45('0x5e'),_0x8b45('0x5f')];var _0x1ebbca=[_0x8b45('0x60'),'accountidyominame',_0x8b45('0x61'),_0x8b45('0x62'),_0x8b45('0x63'),_0x8b45('0x64'),_0x8b45('0x65'),_0x8b45('0x66'),_0x8b45('0x67'),_0x8b45('0x68'),_0x8b45('0x69'),_0x8b45('0x6a'),_0x8b45('0x6b'),'createdonbehalfbyname','createdonbehalfbyyominame',_0x8b45('0x6c'),_0x8b45('0x6d'),_0x8b45('0x6e'),_0x8b45('0x6f'),_0x8b45('0x70'),_0x8b45('0x71'),_0x8b45('0x72'),_0x8b45('0x73'),_0x8b45('0x74'),'firstresponsebykpiidname','followupby',_0x8b45('0x75'),_0x8b45('0x76'),_0x8b45('0x77'),_0x8b45('0x78'),'masteridname',_0x8b45('0x79'),_0x8b45('0x7a'),_0x8b45('0x7b'),_0x8b45('0x7c'),_0x8b45('0x7d'),_0x8b45('0x7e'),'modifiedonbehalfbyyominame','msdyn_incidenttypename',_0x8b45('0x7f'),'numberofchildincidents','onholdtime','overriddencreatedon',_0x8b45('0x80'),_0x8b45('0x81'),_0x8b45('0x82'),_0x8b45('0x83'),_0x8b45('0x84'),_0x8b45('0x85'),_0x8b45('0x86'),_0x8b45('0x87'),_0x8b45('0x88'),_0x8b45('0x89'),_0x8b45('0x8a'),_0x8b45('0x8b'),_0x8b45('0x8c'),_0x8b45('0x8d'),_0x8b45('0x8e'),'slainvokedidname',_0x8b45('0x8f'),_0x8b45('0x90'),_0x8b45('0x91'),_0x8b45('0x92'),_0x8b45('0x93'),_0x8b45('0x94'),_0x8b45('0x95'),_0x8b45('0x96'),_0x8b45('0x97'),_0x8b45('0x98'),'versionnumber'];var _0x30d005=_0x3cbe3a[_0x8b45('0x99')](_0x1ebbca);return db[_0x8b45('0x29')][_0x8b45('0x4c')]({'where':{'id':_0x256492['params']['id']},'attributes':['id',_0x8b45('0x9a'),'password',_0x8b45('0x9b'),'tenantId',_0x8b45('0x9c'),_0x8b45('0x9d')]})[_0x8b45('0x23')](handleEntityNotFound(_0x35048c,null))[_0x8b45('0x23')](function(_0x16bb83){if(_0x16bb83){_0x183c34=_0x16bb83[_0x8b45('0x9b')];var _0x51d6c4=_0x183c34[_0x8b45('0x9e')](-0x1);if(_0x51d6c4==='/'){_0x183c34=_0x183c34[_0x8b45('0x9f')](0x0,_0x183c34[_0x8b45('0xa0')](_0x51d6c4));}_0x1542db=util[_0x8b45('0xa1')]('%s/api/data/v9.0/',_0x183c34);var _0x2f9dd2={'method':_0x8b45('0xa2'),'uri':'https://login.microsoftonline.com/'+_0x16bb83['tenantId']+_0x8b45('0xa3'),'form':{'client_id':_0x16bb83[_0x8b45('0x9c')],'resource':_0x183c34,'username':_0x16bb83[_0x8b45('0x9a')],'password':_0x16bb83['password'],'grant_type':_0x8b45('0xa4'),'client_secret':_0x16bb83['clientSecret']},'json':!![]};return rp(_0x2f9dd2);}})[_0x8b45('0x23')](function(_0x2628ab){_0x243632=_0x2628ab['access_token'];var _0x5576d6={'method':_0x8b45('0xa5'),'uri':encodeURI(_0x1542db+_0x8b45('0xa6')+_0x4a11ac+'\x27'),'headers':{'Authorization':_0x8b45('0xa7')+_0x243632,'If-None-Match':null,'OData-Version':_0x8b45('0xa8')},'json':!![]};return rp(_0x5576d6);})['then'](function(_0x11d053){var _0x29760d=_0x11d053[_0x8b45('0xa9')][0x0];var _0x1d475c=_0x29760d[_0x8b45('0xaa')];var _0x1abe69={'method':'GET','uri':_0x1542db+_0x8b45('0xab')+_0x1d475c+_0x8b45('0xac'),'headers':{'Authorization':'Bearer\x20'+_0x243632,'If-None-Match':null,'OData-Version':_0x8b45('0xa8')},'json':!![]};return rp(_0x1abe69);})[_0x8b45('0x23')](function(_0x569f98){_0x8d9143=_0x569f98;_0x441e1b=_0x8d9143['Attributes'];_0x441e1b=_['remove'](_0x441e1b,function(_0x186aa2){return!_0x30d005[_0x8b45('0xad')](_0x186aa2[_0x8b45('0xae')]);});var _0x20591f=[];var _0x37e0bb=[];_0x441e1b[_0x8b45('0xaf')](function(_0xd4b4eb){if(_0xd4b4eb['@odata.type']){var _0x292d83=_0xd4b4eb[_0x8b45('0xb0')][_0x8b45('0x9f')](_0xd4b4eb[_0x8b45('0xb0')][_0x8b45('0xa0')]('.')+0x1);if(_0x292d83===_0x8b45('0xb1')){_0x20591f['push'](getSelectList(_0x1542db,_0x103d80,_0x37e0bb,_0x8d9143[_0x8b45('0xaa')],_0xd4b4eb[_0x8b45('0xaa')],_0x243632));}}});return Promise[_0x8b45('0xb2')](_0x20591f);})[_0x8b45('0x23')](function(_0x224b7a){_0x304e7d=_0x224b7a[0x0];var _0x4c3bc9=[];var _0x5588b5=[];_0x441e1b[_0x8b45('0xaf')](function(_0x44b07c){if(!_[_0x8b45('0xb3')](_0x44b07c[_0x8b45('0xb0')])){var _0x2a5cad=_0x44b07c['@odata.type'][_0x8b45('0x9f')](_0x44b07c['@odata.type'][_0x8b45('0xa0')]('.')+0x1);if(_0x2a5cad==='BooleanAttributeMetadata'){_0x4c3bc9[_0x8b45('0xb4')](getBooleanList(_0x1542db,_0x103d80,_0x5588b5,_0x8d9143[_0x8b45('0xaa')],_0x44b07c[_0x8b45('0xaa')],_0x243632));}}});return Promise[_0x8b45('0xb2')](_0x4c3bc9);})[_0x8b45('0x23')](function(_0x2b8492){_0x2f3e49=_0x2b8492[0x0];var _0x19cea1=[];var _0x46f88=[];_0x441e1b[_0x8b45('0xaf')](function(_0xfff1e){if(_0xfff1e[_0x8b45('0xb0')]){var _0x2f136d=_0xfff1e[_0x8b45('0xb0')][_0x8b45('0x9f')](_0xfff1e['@odata.type'][_0x8b45('0xa0')]('.')+0x1);if(_0x2f136d===_0x8b45('0xb5')||_0x2f136d===_0x8b45('0xb6')||_0x2f136d==='BigIntAttributeMetadata'||_0x2f136d===_0x8b45('0xb7')||_0x2f136d==='MemoAttributeMetadata'||_0x2f136d===_0x8b45('0xb8')||_0x2f136d===_0x8b45('0xb9')||_0x2f136d==='EntityNameAttributeMetadata'||_0x2f136d===_0x8b45('0xba')||_0x2f136d==='DecimalAttributeMetadata'){_0x19cea1[_0x8b45('0xb4')](getInputList(_0x1542db,_0x103d80,_0x2f136d,_0x46f88,_0x8d9143[_0x8b45('0xaa')],_0xfff1e[_0x8b45('0xaa')],_0x243632));}}});return Promise[_0x8b45('0xb2')](_0x19cea1);})[_0x8b45('0x23')](function(_0x3f920f){_0x3d3216=_0x3f920f[0x0];var _0x56fe89=_0x304e7d['concat'](_0x2f3e49)[_0x8b45('0x99')](_0x3d3216);var _0x2bbc85={'count':_0x56fe89['length'],'rows':_0x56fe89};return _0x2bbc85;})['then'](respondWithResult(_0x35048c,null))['catch'](function(_0x430b95){var _0x56f008=_0x256492[_0x8b45('0x30')][_0x8b45('0xbb')]?0x1f4:_0x430b95[_0x8b45('0xbc')]||0x1f4;logger[_0x8b45('0x24')](_0x430b95['stack']);delete _0x430b95[_0x8b45('0x26')];if(_0x56f008===0x191){_0x56f008=0x190;}_0x35048c[_0x8b45('0x18')](_0x56f008)[_0x8b45('0x27')](_0x256492[_0x8b45('0x30')][_0x8b45('0xbb')]?{'message':_0x8b45('0xbd'),'statusCode':_0x430b95[_0x8b45('0xbc')]}:_0x430b95);});};function getSelectList(_0x21181c,_0x51dbbe,_0x4b3083,_0x548e7c,_0x1e5f31,_0x4c6a87){var _0x4b8a95={'method':'GET','uri':_0x21181c+_0x8b45('0xab')+_0x548e7c+_0x8b45('0xbe')+_0x1e5f31+')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?'+_0x8b45('0xbf'),'headers':{'Authorization':_0x8b45('0xa7')+_0x4c6a87,'If-None-Match':null,'OData-Version':_0x8b45('0xa8')},'json':!![]};return rp(_0x4b8a95)[_0x8b45('0x23')](function(_0x123610){var _0x3609ff=[];var _0x1eaabf=_0x123610[_0x8b45('0xc0')][_0x8b45('0xc1')];_0x1eaabf['forEach'](function(_0x29bb81){_0x3609ff[_0x8b45('0xb4')]({'name':_0x29bb81[_0x8b45('0xc2')][_0x8b45('0xc3')]['Label'],'value':String(_0x29bb81[_0x8b45('0xc4')])});});var _0xa0481e={'id':_0x51dbbe+'_'+_0x123610[_0x8b45('0xae')],'name':_0x123610[_0x8b45('0xc5')][_0x8b45('0xc3')]['Label'],'custom':![],'options':_0x3609ff};_0x4b3083[_0x8b45('0xb4')](_0xa0481e);return _0x4b3083;});}function getBooleanList(_0x4e7193,_0x48192,_0x224c5c,_0x5c5f2f,_0x574d49,_0x4c13c3){var _0x5efb66={'method':_0x8b45('0xa5'),'uri':_0x4e7193+'EntityDefinitions('+_0x5c5f2f+_0x8b45('0xbe')+_0x574d49+_0x8b45('0xc6'),'headers':{'Authorization':_0x8b45('0xa7')+_0x4c13c3,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x5efb66)[_0x8b45('0x23')](function(_0x5f3acf){var _0x425a72=[];_0x425a72[_0x8b45('0xb4')]({'name':_0x5f3acf[_0x8b45('0xc0')][_0x8b45('0xc7')][_0x8b45('0xc2')][_0x8b45('0xc3')][_0x8b45('0xc2')],'value':_0x8b45('0xc8')},{'name':_0x5f3acf[_0x8b45('0xc0')][_0x8b45('0xc9')][_0x8b45('0xc2')][_0x8b45('0xc3')][_0x8b45('0xc2')],'value':_0x8b45('0xca')});var _0x31f4c1={'id':_0x48192+'_'+_0x5f3acf['LogicalName'],'name':_0x5f3acf[_0x8b45('0xc5')][_0x8b45('0xc3')]['Label'],'custom':![],'options':_0x425a72};_0x224c5c['push'](_0x31f4c1);return _0x224c5c;});}function getInputList(_0x3c6b45,_0x519af6,_0xa55c42,_0x140ede,_0x10dfef,_0x3b2bb6,_0x3f1aa6){var _0x3ac89b={'method':_0x8b45('0xa5'),'uri':_0x3c6b45+'EntityDefinitions('+_0x10dfef+_0x8b45('0xbe')+_0x3b2bb6+_0x8b45('0xcb')+_0xa55c42+'?$select=DisplayName,LogicalName','headers':{'Authorization':_0x8b45('0xa7')+_0x3f1aa6,'If-None-Match':null,'OData-Version':_0x8b45('0xa8')},'json':!![]};return rp(_0x3ac89b)[_0x8b45('0x23')](function(_0x37357e){var _0x33e7ee={'id':_0x519af6+'_'+_0x37357e[_0x8b45('0xae')],'name':_0x37357e[_0x8b45('0xc5')][_0x8b45('0xc3')]?_0x37357e[_0x8b45('0xc5')][_0x8b45('0xc3')][_0x8b45('0xc2')]:_0x37357e[_0x8b45('0xae')],'custom':![],'options':[]};_0x140ede[_0x8b45('0xb4')](_0x33e7ee);return _0x140ede;});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['rimraf','./intDynamics365Account.attributes','../../components/integrations/configuration','Dynamics365Account','int_dynamics365_accounts','../../config/logger','api','moment','bluebird','path'];(function(_0x38ef52,_0x1d9c59){var _0x2403bb=function(_0x35037d){while(--_0x35037d){_0x38ef52['push'](_0x38ef52['shift']());}};_0x2403bb(++_0x1d9c59);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0xcb91[_0x11005e];return _0x29338f;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1cb9('0x0'))(_0x1cb9('0x1'));var moment=require(_0x1cb9('0x2'));var BPromise=require(_0x1cb9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cb9('0x4'));var rimraf=require(_0x1cb9('0x5'));var config=require('../../config/environment');var attributes=require(_0x1cb9('0x6'));var integrations=require(_0x1cb9('0x7'));module['exports']=function(_0x226b69,_0x3f7deb){return _0x226b69['define'](_0x1cb9('0x8'),attributes,{'tableName':_0x1cb9('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbaf0=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intDynamics365Account.attributes','../../components/integrations/configuration','exports','define','Dynamics365Account','util'];(function(_0x4e9d32,_0x40109f){var _0x31247e=function(_0x5a582b){while(--_0x5a582b){_0x4e9d32['push'](_0x4e9d32['shift']());}};_0x31247e(++_0x40109f);}(_0xbaf0,0x12a));var _0x0baf=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xbaf0[_0x1facfa];return _0x9ec701;};'use strict';var _=require('lodash');var util=require(_0x0baf('0x0'));var logger=require(_0x0baf('0x1'))(_0x0baf('0x2'));var moment=require(_0x0baf('0x3'));var BPromise=require(_0x0baf('0x4'));var rp=require(_0x0baf('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var attributes=require(_0x0baf('0x8'));var integrations=require(_0x0baf('0x9'));module[_0x0baf('0xa')]=function(_0x335e24,_0x1a10b1){return _0x335e24[_0x0baf('0xb')](_0x0baf('0xc'),attributes,{'tableName':'int_dynamics365_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae39=['moment','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','debug','Dynamics365Account,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Dynamics365Account,\x20%s,\x20%s','catch','GetDynamics365Account','Dynamics365Account','findAll','options','raw','where','limit','include','model','attributes','map','info','ShowDynamics365Account','find'];(function(_0x130719,_0x2a7018){var _0x159865=function(_0x3a4d06){while(--_0x3a4d06){_0x130719['push'](_0x130719['shift']());}};_0x159865(++_0x2a7018);}(_0xae39,0x176));var _0x9ae3=function(_0x273c39,_0x1052e6){_0x273c39=_0x273c39-0x0;var _0x46d6b5=_0xae39[_0x273c39];return _0x46d6b5;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9ae3('0x0'));var BPromise=require(_0x9ae3('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9ae3('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x9ae3('0x3'));var logger=require(_0x9ae3('0x4'))('rpc');var config=require(_0x9ae3('0x5'));var jayson=require(_0x9ae3('0x6'));var client=jayson[_0x9ae3('0x7')][_0x9ae3('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x13be61,_0x111c2a,_0x405faf){return new BPromise(function(_0x135a1e,_0x2e4cdc){return client[_0x9ae3('0x9')](_0x13be61,_0x405faf)[_0x9ae3('0xa')](function(_0x52201a){logger['info']('Dynamics365Account,\x20%s,\x20%s',_0x111c2a,_0x9ae3('0xb'));logger[_0x9ae3('0xc')](_0x9ae3('0xd'),_0x111c2a,_0x9ae3('0xb'),JSON[_0x9ae3('0xe')](_0x52201a));if(_0x52201a[_0x9ae3('0xf')]){if(_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x10')]===0x1f4){logger[_0x9ae3('0xf')]('Dynamics365Account,\x20%s,\x20%s',_0x111c2a,_0x52201a[_0x9ae3('0xf')]['message']);return _0x2e4cdc(_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x11')]);}logger[_0x9ae3('0xf')](_0x9ae3('0x12'),_0x111c2a,_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x11')]);return _0x135a1e(_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x11')]);}else{logger['info'](_0x9ae3('0x12'),_0x111c2a,_0x9ae3('0xb'));_0x135a1e(_0x52201a['result']['message']);}})[_0x9ae3('0x13')](function(_0x472a56){logger[_0x9ae3('0xf')]('Dynamics365Account,\x20%s,\x20%s',_0x111c2a,_0x472a56);_0x2e4cdc(_0x472a56);});});}exports[_0x9ae3('0x14')]=function(_0x2b5c6d){var _0x147986=this;return new Promise(function(_0x398283,_0x529c0d){return db[_0x9ae3('0x15')][_0x9ae3('0x16')]({'raw':_0x2b5c6d['options']?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x18')]===undefined?!![]:![]:!![],'where':_0x2b5c6d[_0x9ae3('0x17')]?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x19')]||null:null,'attributes':_0x2b5c6d['options']?_0x2b5c6d[_0x9ae3('0x17')]['attributes']||null:null,'limit':_0x2b5c6d[_0x9ae3('0x17')]?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x1a')]||null:null,'include':_0x2b5c6d[_0x9ae3('0x17')]?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x1b')]?_['map'](_0x2b5c6d['options']['include'],function(_0x51f83f){return{'model':db[_0x51f83f[_0x9ae3('0x1c')]],'as':_0x51f83f['as'],'attributes':_0x51f83f[_0x9ae3('0x1d')],'include':_0x51f83f['include']?_[_0x9ae3('0x1e')](_0x51f83f[_0x9ae3('0x1b')],function(_0x3cf0dc){return{'model':db[_0x3cf0dc[_0x9ae3('0x1c')]],'as':_0x3cf0dc['as'],'attributes':_0x3cf0dc[_0x9ae3('0x1d')],'include':_0x3cf0dc[_0x9ae3('0x1b')]?_[_0x9ae3('0x1e')](_0x3cf0dc[_0x9ae3('0x1b')],function(_0x3eb1ab){return{'model':db[_0x3eb1ab[_0x9ae3('0x1c')]],'as':_0x3eb1ab['as'],'attributes':_0x3eb1ab['attributes']};}):[]};}):[]};}):[]:[]})[_0x9ae3('0xa')](function(_0x67daa7){logger[_0x9ae3('0x1f')](_0x9ae3('0x14'),_0x2b5c6d);logger[_0x9ae3('0xc')]('GetDynamics365Account',_0x2b5c6d,JSON[_0x9ae3('0xe')](_0x67daa7));_0x398283(_0x67daa7);})[_0x9ae3('0x13')](function(_0x41c2be){logger['error']('GetDynamics365Account',_0x41c2be['message'],_0x2b5c6d);_0x529c0d(_0x147986['error'](0x1f4,_0x41c2be[_0x9ae3('0x11')]));});});};exports[_0x9ae3('0x20')]=function(_0x145c79){var _0x1f1a97=this;return new Promise(function(_0x236d00,_0xbf0eb8){return db[_0x9ae3('0x15')][_0x9ae3('0x21')]({'raw':_0x145c79[_0x9ae3('0x17')]?_0x145c79['options'][_0x9ae3('0x18')]===undefined?!![]:![]:!![],'where':_0x145c79[_0x9ae3('0x17')]?_0x145c79['options'][_0x9ae3('0x19')]||null:null,'attributes':_0x145c79[_0x9ae3('0x17')]?_0x145c79['options'][_0x9ae3('0x1d')]||null:null,'include':_0x145c79[_0x9ae3('0x17')]?_0x145c79[_0x9ae3('0x17')]['include']?_[_0x9ae3('0x1e')](_0x145c79['options']['include'],function(_0x13233a){return{'model':db[_0x13233a['model']],'as':_0x13233a['as'],'attributes':_0x13233a[_0x9ae3('0x1d')],'include':_0x13233a[_0x9ae3('0x1b')]?_[_0x9ae3('0x1e')](_0x13233a[_0x9ae3('0x1b')],function(_0x583083){return{'model':db[_0x583083['model']],'as':_0x583083['as'],'attributes':_0x583083[_0x9ae3('0x1d')],'include':_0x583083[_0x9ae3('0x1b')]?_[_0x9ae3('0x1e')](_0x583083[_0x9ae3('0x1b')],function(_0x19538b){return{'model':db[_0x19538b[_0x9ae3('0x1c')]],'as':_0x19538b['as'],'attributes':_0x19538b[_0x9ae3('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x9ae3('0xa')](function(_0x5c1a27){logger[_0x9ae3('0x1f')](_0x9ae3('0x20'),_0x145c79);logger[_0x9ae3('0xc')]('ShowDynamics365Account',_0x145c79,JSON[_0x9ae3('0xe')](_0x5c1a27));_0x236d00(_0x5c1a27);})[_0x9ae3('0x13')](function(_0x3899b3){logger[_0x9ae3('0xf')](_0x9ae3('0x20'),_0x3899b3['message'],_0x145c79);_0xbf0eb8(_0x1f1a97[_0x9ae3('0xf')](0x1f4,_0x3899b3['message']));});});};
\ No newline at end of file
+var _0xca5c=['http','request','then','info','Dynamics365Account,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Account,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetDynamics365Account','Dynamics365Account','findAll','options','raw','where','include','map','model','attributes','find','ShowDynamics365Account','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client'];(function(_0x4a53d,_0x58a95e){var _0x27410e=function(_0x38fc90){while(--_0x38fc90){_0x4a53d['push'](_0x4a53d['shift']());}};_0x27410e(++_0x58a95e);}(_0xca5c,0xcd));var _0xcca5=function(_0x1f5887,_0x2fa1f1){_0x1f5887=_0x1f5887-0x0;var _0x21774b=_0xca5c[_0x1f5887];return _0x21774b;};'use strict';var _=require(_0xcca5('0x0'));var util=require(_0xcca5('0x1'));var moment=require(_0xcca5('0x2'));var BPromise=require(_0xcca5('0x3'));var rs=require(_0xcca5('0x4'));var fs=require('fs');var Redis=require(_0xcca5('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xcca5('0x6'));var logger=require(_0xcca5('0x7'))(_0xcca5('0x8'));var config=require('../../config/environment');var jayson=require(_0xcca5('0x9'));var client=jayson[_0xcca5('0xa')][_0xcca5('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xd0671b,_0x223ca0,_0xfc0920){return new BPromise(function(_0x13388c,_0x4dc474){return client[_0xcca5('0xc')](_0xd0671b,_0xfc0920)[_0xcca5('0xd')](function(_0x5e7081){logger[_0xcca5('0xe')](_0xcca5('0xf'),_0x223ca0,_0xcca5('0x10'));logger[_0xcca5('0x11')](_0xcca5('0x12'),_0x223ca0,_0xcca5('0x10'),JSON[_0xcca5('0x13')](_0x5e7081));if(_0x5e7081[_0xcca5('0x14')]){if(_0x5e7081['error'][_0xcca5('0x15')]===0x1f4){logger[_0xcca5('0x14')](_0xcca5('0xf'),_0x223ca0,_0x5e7081[_0xcca5('0x14')][_0xcca5('0x16')]);return _0x4dc474(_0x5e7081[_0xcca5('0x14')][_0xcca5('0x16')]);}logger[_0xcca5('0x14')]('Dynamics365Account,\x20%s,\x20%s',_0x223ca0,_0x5e7081[_0xcca5('0x14')][_0xcca5('0x16')]);return _0x13388c(_0x5e7081[_0xcca5('0x14')]['message']);}else{logger[_0xcca5('0xe')](_0xcca5('0xf'),_0x223ca0,'request\x20sent');_0x13388c(_0x5e7081['result']['message']);}})[_0xcca5('0x17')](function(_0x224f5d){logger['error'](_0xcca5('0xf'),_0x223ca0,_0x224f5d);_0x4dc474(_0x224f5d);});});}exports[_0xcca5('0x18')]=function(_0x4a45e3){var _0x5a7c6c=this;return new Promise(function(_0x310431,_0x1e01c1){return db[_0xcca5('0x19')][_0xcca5('0x1a')]({'raw':_0x4a45e3[_0xcca5('0x1b')]?_0x4a45e3[_0xcca5('0x1b')][_0xcca5('0x1c')]===undefined?!![]:![]:!![],'where':_0x4a45e3[_0xcca5('0x1b')]?_0x4a45e3[_0xcca5('0x1b')][_0xcca5('0x1d')]||null:null,'attributes':_0x4a45e3[_0xcca5('0x1b')]?_0x4a45e3[_0xcca5('0x1b')]['attributes']||null:null,'limit':_0x4a45e3['options']?_0x4a45e3['options']['limit']||null:null,'include':_0x4a45e3[_0xcca5('0x1b')]?_0x4a45e3[_0xcca5('0x1b')][_0xcca5('0x1e')]?_[_0xcca5('0x1f')](_0x4a45e3['options'][_0xcca5('0x1e')],function(_0x5bdc11){return{'model':db[_0x5bdc11[_0xcca5('0x20')]],'as':_0x5bdc11['as'],'attributes':_0x5bdc11[_0xcca5('0x21')],'include':_0x5bdc11[_0xcca5('0x1e')]?_[_0xcca5('0x1f')](_0x5bdc11[_0xcca5('0x1e')],function(_0xb7039e){return{'model':db[_0xb7039e[_0xcca5('0x20')]],'as':_0xb7039e['as'],'attributes':_0xb7039e['attributes'],'include':_0xb7039e[_0xcca5('0x1e')]?_['map'](_0xb7039e[_0xcca5('0x1e')],function(_0x498daf){return{'model':db[_0x498daf[_0xcca5('0x20')]],'as':_0x498daf['as'],'attributes':_0x498daf[_0xcca5('0x21')]};}):[]};}):[]};}):[]:[]})[_0xcca5('0xd')](function(_0x21a68f){logger[_0xcca5('0xe')](_0xcca5('0x18'),_0x4a45e3);logger['debug'](_0xcca5('0x18'),_0x4a45e3,JSON[_0xcca5('0x13')](_0x21a68f));_0x310431(_0x21a68f);})['catch'](function(_0x292b58){logger[_0xcca5('0x14')]('GetDynamics365Account',_0x292b58['message'],_0x4a45e3);_0x1e01c1(_0x5a7c6c['error'](0x1f4,_0x292b58[_0xcca5('0x16')]));});});};exports['ShowDynamics365Account']=function(_0xbf4ed1){var _0x47f98b=this;return new Promise(function(_0xa06863,_0x2d6428){return db['Dynamics365Account'][_0xcca5('0x22')]({'raw':_0xbf4ed1[_0xcca5('0x1b')]?_0xbf4ed1[_0xcca5('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0xbf4ed1[_0xcca5('0x1b')]?_0xbf4ed1[_0xcca5('0x1b')][_0xcca5('0x1d')]||null:null,'attributes':_0xbf4ed1['options']?_0xbf4ed1[_0xcca5('0x1b')][_0xcca5('0x21')]||null:null,'include':_0xbf4ed1[_0xcca5('0x1b')]?_0xbf4ed1[_0xcca5('0x1b')][_0xcca5('0x1e')]?_[_0xcca5('0x1f')](_0xbf4ed1[_0xcca5('0x1b')]['include'],function(_0x30a6fc){return{'model':db[_0x30a6fc['model']],'as':_0x30a6fc['as'],'attributes':_0x30a6fc[_0xcca5('0x21')],'include':_0x30a6fc[_0xcca5('0x1e')]?_['map'](_0x30a6fc[_0xcca5('0x1e')],function(_0x577735){return{'model':db[_0x577735[_0xcca5('0x20')]],'as':_0x577735['as'],'attributes':_0x577735[_0xcca5('0x21')],'include':_0x577735['include']?_[_0xcca5('0x1f')](_0x577735[_0xcca5('0x1e')],function(_0x5e869c){return{'model':db[_0x5e869c[_0xcca5('0x20')]],'as':_0x5e869c['as'],'attributes':_0x5e869c[_0xcca5('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x54555b){logger[_0xcca5('0xe')](_0xcca5('0x23'),_0xbf4ed1);logger[_0xcca5('0x11')](_0xcca5('0x23'),_0xbf4ed1,JSON['stringify'](_0x54555b));_0xa06863(_0x54555b);})[_0xcca5('0x17')](function(_0x1b56fe){logger[_0xcca5('0x14')](_0xcca5('0x23'),_0x1b56fe[_0xcca5('0x16')],_0xbf4ed1);_0x2d6428(_0x47f98b[_0xcca5('0x14')](0x1f4,_0x1b56fe['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c3f=['Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','show','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','/:id','exports','multer','util','express'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8c3f,0xc5));var _0xf8c3=function(_0x36f320,_0x1fb8bc){_0x36f320=_0x36f320-0x0;var _0x47ccad=_0x8c3f[_0x36f320];return _0x47ccad;};'use strict';var multer=require(_0xf8c3('0x0'));var util=require(_0xf8c3('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xf8c3('0x2'));var router=express[_0xf8c3('0x3')]();var fs_extra=require(_0xf8c3('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xf8c3('0x5'));var config=require('../../config/environment');var controller=require('./intDynamics365Configuration.controller');router[_0xf8c3('0x6')]('/',auth[_0xf8c3('0x7')](),controller[_0xf8c3('0x8')]);router['get']('/:id',auth[_0xf8c3('0x7')](),controller[_0xf8c3('0x9')]);router[_0xf8c3('0x6')]('/:id/fields',auth[_0xf8c3('0x7')](),controller[_0xf8c3('0xa')]);router['get'](_0xf8c3('0xb'),auth[_0xf8c3('0x7')](),controller[_0xf8c3('0xc')]);router[_0xf8c3('0x6')](_0xf8c3('0xd'),auth[_0xf8c3('0x7')](),controller[_0xf8c3('0xe')]);router[_0xf8c3('0xf')]('/',auth['isAuthenticated'](),controller[_0xf8c3('0x10')]);router[_0xf8c3('0x11')](_0xf8c3('0x12'),auth[_0xf8c3('0x7')](),controller['update']);router['delete'](_0xf8c3('0x12'),auth['isAuthenticated'](),controller['destroy']);module[_0xf8c3('0x13')]=router;
\ No newline at end of file
+var _0x3bd3=['/:id/fields','getFields','getSubjects','/:id/descriptions','getDescriptions','post','create','put','/:id','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intDynamics365Configuration.controller','get','isAuthenticated','index','show'];(function(_0x39fe0b,_0x4eaa8c){var _0x476970=function(_0x332d37){while(--_0x332d37){_0x39fe0b['push'](_0x39fe0b['shift']());}};_0x476970(++_0x4eaa8c);}(_0x3bd3,0x110));var _0x33bd=function(_0x4675e8,_0x54edc6){_0x4675e8=_0x4675e8-0x0;var _0x5875d0=_0x3bd3[_0x4675e8];return _0x5875d0;};'use strict';var multer=require(_0x33bd('0x0'));var util=require(_0x33bd('0x1'));var path=require(_0x33bd('0x2'));var timeout=require(_0x33bd('0x3'));var express=require(_0x33bd('0x4'));var router=express[_0x33bd('0x5')]();var fs_extra=require(_0x33bd('0x6'));var auth=require(_0x33bd('0x7'));var interaction=require(_0x33bd('0x8'));var config=require('../../config/environment');var controller=require(_0x33bd('0x9'));router[_0x33bd('0xa')]('/',auth[_0x33bd('0xb')](),controller[_0x33bd('0xc')]);router['get']('/:id',auth[_0x33bd('0xb')](),controller[_0x33bd('0xd')]);router[_0x33bd('0xa')](_0x33bd('0xe'),auth[_0x33bd('0xb')](),controller[_0x33bd('0xf')]);router[_0x33bd('0xa')]('/:id/subjects',auth[_0x33bd('0xb')](),controller[_0x33bd('0x10')]);router['get'](_0x33bd('0x11'),auth[_0x33bd('0xb')](),controller[_0x33bd('0x12')]);router[_0x33bd('0x13')]('/',auth[_0x33bd('0xb')](),controller[_0x33bd('0x14')]);router[_0x33bd('0x15')](_0x33bd('0x16'),auth[_0x33bd('0xb')](),controller[_0x33bd('0x17')]);router[_0x33bd('0x18')](_0x33bd('0x16'),auth['isAuthenticated'](),controller[_0x33bd('0x19')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa2a2=['ENUM','phonecall','sequelize','STRING'];(function(_0x10841c,_0x389f1f){var _0x59e4a5=function(_0x55d789){while(--_0x55d789){_0x10841c['push'](_0x10841c['shift']());}};_0x59e4a5(++_0x389f1f);}(_0xa2a2,0x9a));var _0x2a2a=function(_0x21eafa,_0x9326cd){_0x21eafa=_0x21eafa-0x0;var _0x2a418c=_0xa2a2[_0x21eafa];return _0x2a418c;};'use strict';var Sequelize=require(_0x2a2a('0x0'));module['exports']={'name':{'type':Sequelize[_0x2a2a('0x1')]},'description':{'type':Sequelize[_0x2a2a('0x1')]},'ticketType':{'type':Sequelize[_0x2a2a('0x2')]('incident',_0x2a2a('0x3')),'defaultValue':'incident'}};
\ No newline at end of file
+var _0x0a2e=['STRING','ENUM','incident','phonecall','sequelize','exports'];(function(_0x20589d,_0x55d5bf){var _0x422de9=function(_0x44cbbb){while(--_0x44cbbb){_0x20589d['push'](_0x20589d['shift']());}};_0x422de9(++_0x55d5bf);}(_0x0a2e,0x124));var _0xe0a2=function(_0x5834bc,_0x3d4801){_0x5834bc=_0x5834bc-0x0;var _0x3e183a=_0x0a2e[_0x5834bc];return _0x3e183a;};'use strict';var Sequelize=require(_0xe0a2('0x0'));module[_0xe0a2('0x1')]={'name':{'type':Sequelize[_0xe0a2('0x2')]},'description':{'type':Sequelize['STRING']},'ticketType':{'type':Sequelize[_0xe0a2('0x3')](_0xe0a2('0x4'),_0xe0a2('0x5')),'defaultValue':_0xe0a2('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7928=['zip-dir','fast-json-patch','request-promise','bluebird','path','to-csv','fs-extra','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','map','Dynamics365Configuration','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','options','includeAll','include','rows','catch','show','params','rawAttributes','length','find','create','body','update','getFields','findOne','Dynamics365Field','getSubjects','getDescriptions','eml-format','rimraf'];(function(_0x238030,_0x3f8d2b){var _0x259ba1=function(_0x164e8d){while(--_0x164e8d){_0x238030['push'](_0x238030['shift']());}};_0x259ba1(++_0x3f8d2b);}(_0x7928,0x170));var _0x8792=function(_0x31d71a,_0x3f9cb7){_0x31d71a=_0x31d71a-0x0;var _0x29338e=_0x7928[_0x31d71a];return _0x29338e;};'use strict';var emlformat=require(_0x8792('0x0'));var rimraf=require(_0x8792('0x1'));var zipdir=require(_0x8792('0x2'));var jsonpatch=require(_0x8792('0x3'));var rp=require(_0x8792('0x4'));var moment=require('moment');var BPromise=require(_0x8792('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x8792('0x6'));var sox=require('sox');var csv=require(_0x8792('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8792('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8792('0x9'));var deskjs=require(_0x8792('0xa'));var toCsv=require(_0x8792('0x7'));var querystring=require(_0x8792('0xb'));var Papa=require(_0x8792('0xc'));var Redis=require(_0x8792('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x8792('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x8792('0xf'))('api');var utils=require(_0x8792('0x10'));var config=require(_0x8792('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x8792('0x12'))['db'];function respondWithStatusCode(_0x1f3da4,_0x4ebe57){_0x4ebe57=_0x4ebe57||0xcc;return function(_0x2bd66b){if(_0x2bd66b){return _0x1f3da4[_0x8792('0x13')](_0x4ebe57);}return _0x1f3da4[_0x8792('0x14')](_0x4ebe57)[_0x8792('0x15')]();};}function respondWithResult(_0x1439b2,_0x417a63){_0x417a63=_0x417a63||0xc8;return function(_0x578dbf){if(_0x578dbf){return _0x1439b2[_0x8792('0x14')](_0x417a63)[_0x8792('0x16')](_0x578dbf);}};}function respondWithFilteredResult(_0x2f92ac,_0x498e7a){return function(_0x1b2f0a){if(_0x1b2f0a){var _0x4002e4=typeof _0x498e7a[_0x8792('0x17')]===_0x8792('0x18')&&typeof _0x498e7a[_0x8792('0x19')]==='undefined';var _0x4d3719=_0x1b2f0a[_0x8792('0x1a')];var _0x569e0c=_0x4002e4?0x0:_0x498e7a[_0x8792('0x17')];var _0x5ec5fe=_0x4002e4?_0x1b2f0a['count']:_0x498e7a[_0x8792('0x17')]+_0x498e7a[_0x8792('0x19')];var _0x2f9c9d;if(_0x5ec5fe>=_0x4d3719){_0x5ec5fe=_0x4d3719;_0x2f9c9d=0xc8;}else{_0x2f9c9d=0xce;}_0x2f92ac['status'](_0x2f9c9d);return _0x2f92ac[_0x8792('0x1b')](_0x8792('0x1c'),_0x569e0c+'-'+_0x5ec5fe+'/'+_0x4d3719)['json'](_0x1b2f0a);}return null;};}function patchUpdates(_0x431e9b){return function(_0x1d534f){try{jsonpatch[_0x8792('0x1d')](_0x1d534f,_0x431e9b,!![]);}catch(_0x59170b){return BPromise[_0x8792('0x1e')](_0x59170b);}return _0x1d534f[_0x8792('0x1f')]();};}function saveUpdates(_0x463df4,_0x370258){return function(_0x51f0dc){if(_0x51f0dc){return _0x51f0dc['update'](_0x463df4)[_0x8792('0x20')](function(_0x589e64){return _0x589e64;});}return null;};}function removeEntity(_0x5a47cb,_0x5226b4){return function(_0x2e7225){if(_0x2e7225){return _0x2e7225[_0x8792('0x21')]()[_0x8792('0x20')](function(){_0x5a47cb[_0x8792('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4072ed,_0x208b35){return function(_0x186cd9){if(!_0x186cd9){_0x4072ed['sendStatus'](0x194);}return _0x186cd9;};}function handleError(_0x4d55ba,_0x3264a5){_0x3264a5=_0x3264a5||0x1f4;return function(_0x1e632b){logger[_0x8792('0x22')](_0x1e632b[_0x8792('0x23')]);if(_0x1e632b['name']){delete _0x1e632b[_0x8792('0x24')];}_0x4d55ba[_0x8792('0x14')](_0x3264a5)[_0x8792('0x25')](_0x1e632b);};}exports['index']=function(_0x2406d0,_0x42b4e1){var _0x293564={},_0x2b00bf={},_0x21e253={'count':0x0,'rows':[]};var _0x36bff2=_[_0x8792('0x26')](db[_0x8792('0x27')]['rawAttributes'],function(_0x57d79c){return{'name':_0x57d79c['fieldName'],'type':_0x57d79c['type'][_0x8792('0x28')]};});_0x2b00bf[_0x8792('0x29')]=_[_0x8792('0x26')](_0x36bff2,_0x8792('0x24'));_0x2b00bf[_0x8792('0x2a')]=_[_0x8792('0x2b')](_0x2406d0[_0x8792('0x2a')]);_0x2b00bf[_0x8792('0x2c')]=_['intersection'](_0x2b00bf[_0x8792('0x29')],_0x2b00bf['query']);_0x293564[_0x8792('0x2d')]=_[_0x8792('0x2e')](_0x2b00bf[_0x8792('0x29')],qs[_0x8792('0x2f')](_0x2406d0[_0x8792('0x2a')][_0x8792('0x2f')]));_0x293564[_0x8792('0x2d')]=_0x293564[_0x8792('0x2d')]['length']?_0x293564['attributes']:_0x2b00bf[_0x8792('0x29')];if(!_0x2406d0[_0x8792('0x2a')][_0x8792('0x30')](_0x8792('0x31'))){_0x293564[_0x8792('0x19')]=qs[_0x8792('0x19')](_0x2406d0['query'][_0x8792('0x19')]);_0x293564[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x2406d0['query'][_0x8792('0x17')]);}_0x293564[_0x8792('0x32')]=qs[_0x8792('0x33')](_0x2406d0[_0x8792('0x2a')]['sort']);_0x293564['where']=qs['filters'](_[_0x8792('0x34')](_0x2406d0['query'],_0x2b00bf['filters']),_0x36bff2);if(_0x2406d0[_0x8792('0x2a')][_0x8792('0x35')]){_0x293564['where']=_[_0x8792('0x36')](_0x293564[_0x8792('0x37')],{'$or':_['map'](_0x36bff2,function(_0x12a35f){if(_0x12a35f['type']!=='VIRTUAL'){var _0x140f87={};_0x140f87[_0x12a35f[_0x8792('0x24')]]={'$like':'%'+_0x2406d0[_0x8792('0x2a')][_0x8792('0x35')]+'%'};return _0x140f87;}})});}_0x293564=_[_0x8792('0x36')]({},_0x293564,_0x2406d0[_0x8792('0x38')]);var _0x348a96={'where':_0x293564['where']};return db[_0x8792('0x27')][_0x8792('0x1a')](_0x348a96)['then'](function(_0x428e4c){_0x21e253[_0x8792('0x1a')]=_0x428e4c;if(_0x2406d0[_0x8792('0x2a')][_0x8792('0x39')]){_0x293564[_0x8792('0x3a')]=[{'all':!![]}];}return db[_0x8792('0x27')]['findAll'](_0x293564);})['then'](function(_0x1510d0){_0x21e253[_0x8792('0x3b')]=_0x1510d0;return _0x21e253;})['then'](respondWithFilteredResult(_0x42b4e1,_0x293564))[_0x8792('0x3c')](handleError(_0x42b4e1,null));};exports[_0x8792('0x3d')]=function(_0x298201,_0xe6bbab){var _0x25fa35={'raw':![],'where':{'id':_0x298201[_0x8792('0x3e')]['id']}},_0x408f30={};_0x408f30[_0x8792('0x29')]=_[_0x8792('0x2b')](db[_0x8792('0x27')][_0x8792('0x3f')]);_0x408f30[_0x8792('0x2a')]=_[_0x8792('0x2b')](_0x298201[_0x8792('0x2a')]);_0x408f30[_0x8792('0x2c')]=_['intersection'](_0x408f30[_0x8792('0x29')],_0x408f30[_0x8792('0x2a')]);_0x25fa35[_0x8792('0x2d')]=_['intersection'](_0x408f30['model'],qs[_0x8792('0x2f')](_0x298201[_0x8792('0x2a')][_0x8792('0x2f')]));_0x25fa35[_0x8792('0x2d')]=_0x25fa35[_0x8792('0x2d')][_0x8792('0x40')]?_0x25fa35[_0x8792('0x2d')]:_0x408f30['model'];if(_0x298201['query'][_0x8792('0x39')]){_0x25fa35[_0x8792('0x3a')]=[{'all':!![]}];}_0x25fa35=_[_0x8792('0x36')]({},_0x25fa35,_0x298201[_0x8792('0x38')]);return db['Dynamics365Configuration'][_0x8792('0x41')](_0x25fa35)[_0x8792('0x20')](handleEntityNotFound(_0xe6bbab,null))[_0x8792('0x20')](respondWithResult(_0xe6bbab,null))['catch'](handleError(_0xe6bbab,null));};exports[_0x8792('0x42')]=function(_0x5cad4a,_0x156853){return db[_0x8792('0x27')]['create'](_0x5cad4a[_0x8792('0x43')],{})[_0x8792('0x20')](respondWithResult(_0x156853,0xc9))[_0x8792('0x3c')](handleError(_0x156853,null));};exports[_0x8792('0x44')]=function(_0x25b5aa,_0x268498){if(_0x25b5aa[_0x8792('0x43')]['id']){delete _0x25b5aa[_0x8792('0x43')]['id'];}return db[_0x8792('0x27')]['find']({'where':{'id':_0x25b5aa[_0x8792('0x3e')]['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x268498,null))[_0x8792('0x20')](saveUpdates(_0x25b5aa[_0x8792('0x43')],null))[_0x8792('0x20')](respondWithResult(_0x268498,null))[_0x8792('0x3c')](handleError(_0x268498,null));};exports['destroy']=function(_0x2ee258,_0x466c41){return db[_0x8792('0x27')][_0x8792('0x41')]({'where':{'id':_0x2ee258['params']['id']}})['then'](handleEntityNotFound(_0x466c41,null))[_0x8792('0x20')](removeEntity(_0x466c41,null))['catch'](handleError(_0x466c41,null));};exports[_0x8792('0x45')]=function(_0x240aee,_0x59c4b9,_0x551c2d){var _0x21b828={};var _0x4cf6f5={};var _0x3fe9ad;var _0x256a93;return db['Dynamics365Configuration'][_0x8792('0x46')]({'where':{'id':_0x240aee['params']['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x59c4b9,null))['then'](function(_0x28a4eb){if(_0x28a4eb){_0x3fe9ad=_0x28a4eb;_0x4cf6f5[_0x8792('0x29')]=_['keys'](db[_0x8792('0x47')][_0x8792('0x3f')]);_0x4cf6f5['query']=_[_0x8792('0x2b')](_0x240aee[_0x8792('0x2a')]);_0x4cf6f5['filters']=_[_0x8792('0x2e')](_0x4cf6f5[_0x8792('0x29')],_0x4cf6f5[_0x8792('0x2a')]);_0x21b828[_0x8792('0x2d')]=_['intersection'](_0x4cf6f5['model'],qs[_0x8792('0x2f')](_0x240aee[_0x8792('0x2a')][_0x8792('0x2f')]));_0x21b828[_0x8792('0x2d')]=_0x21b828[_0x8792('0x2d')]['length']?_0x21b828[_0x8792('0x2d')]:_0x4cf6f5['model'];_0x21b828['order']=qs[_0x8792('0x33')](_0x240aee[_0x8792('0x2a')]['sort']);_0x21b828[_0x8792('0x37')]=qs[_0x8792('0x2c')](_[_0x8792('0x34')](_0x240aee[_0x8792('0x2a')],_0x4cf6f5[_0x8792('0x2c')]));if(_0x240aee[_0x8792('0x2a')][_0x8792('0x35')]){_0x21b828[_0x8792('0x37')]=_['merge'](_0x21b828[_0x8792('0x37')],{'$or':_[_0x8792('0x26')](_0x21b828['attributes'],function(_0x5086ec){var _0x1e3f38={};_0x1e3f38[_0x5086ec]={'$like':'%'+_0x240aee['query'][_0x8792('0x35')]+'%'};return _0x1e3f38;})});}_0x21b828=_[_0x8792('0x36')]({},_0x21b828,_0x240aee['options']);return _0x3fe9ad[_0x8792('0x45')](_0x21b828);}})[_0x8792('0x20')](function(_0x51ac00){if(_0x51ac00){_0x256a93=_0x51ac00[_0x8792('0x40')];if(!_0x240aee[_0x8792('0x2a')][_0x8792('0x30')](_0x8792('0x31'))){_0x21b828['limit']=qs[_0x8792('0x19')](_0x240aee[_0x8792('0x2a')]['limit']);_0x21b828[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x240aee['query'][_0x8792('0x17')]);}return _0x3fe9ad[_0x8792('0x45')](_0x21b828);}})[_0x8792('0x20')](function(_0x491a30){if(_0x491a30){return _0x491a30?{'count':_0x256a93,'rows':_0x491a30}:null;}})['then'](respondWithResult(_0x59c4b9,null))[_0x8792('0x3c')](handleError(_0x59c4b9,null));};exports[_0x8792('0x48')]=function(_0x1c7fbe,_0x2b1e16,_0x244da1){var _0xa17145={};var _0x3334cc={};var _0x1bcfed;var _0x3a8ae7;return db[_0x8792('0x27')][_0x8792('0x46')]({'where':{'id':_0x1c7fbe[_0x8792('0x3e')]['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x2b1e16,null))[_0x8792('0x20')](function(_0x58ede5){if(_0x58ede5){_0x1bcfed=_0x58ede5;_0x3334cc[_0x8792('0x29')]=_['keys'](db['Dynamics365Field'][_0x8792('0x3f')]);_0x3334cc['query']=_[_0x8792('0x2b')](_0x1c7fbe[_0x8792('0x2a')]);_0x3334cc['filters']=_[_0x8792('0x2e')](_0x3334cc[_0x8792('0x29')],_0x3334cc[_0x8792('0x2a')]);_0xa17145[_0x8792('0x2d')]=_[_0x8792('0x2e')](_0x3334cc[_0x8792('0x29')],qs['fields'](_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x2f')]));_0xa17145[_0x8792('0x2d')]=_0xa17145[_0x8792('0x2d')]['length']?_0xa17145['attributes']:_0x3334cc[_0x8792('0x29')];_0xa17145[_0x8792('0x32')]=qs[_0x8792('0x33')](_0x1c7fbe[_0x8792('0x2a')]['sort']);_0xa17145['where']=qs[_0x8792('0x2c')](_[_0x8792('0x34')](_0x1c7fbe['query'],_0x3334cc['filters']));if(_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x35')]){_0xa17145[_0x8792('0x37')]=_[_0x8792('0x36')](_0xa17145[_0x8792('0x37')],{'$or':_['map'](_0xa17145['attributes'],function(_0x3551c0){var _0x5a5d65={};_0x5a5d65[_0x3551c0]={'$like':'%'+_0x1c7fbe['query'][_0x8792('0x35')]+'%'};return _0x5a5d65;})});}_0xa17145=_['merge']({},_0xa17145,_0x1c7fbe['options']);return _0x1bcfed[_0x8792('0x48')](_0xa17145);}})['then'](function(_0x27f727){if(_0x27f727){_0x3a8ae7=_0x27f727[_0x8792('0x40')];if(!_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x30')](_0x8792('0x31'))){_0xa17145[_0x8792('0x19')]=qs['limit'](_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x19')]);_0xa17145[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x17')]);}return _0x1bcfed[_0x8792('0x48')](_0xa17145);}})[_0x8792('0x20')](function(_0x5df574){if(_0x5df574){return _0x5df574?{'count':_0x3a8ae7,'rows':_0x5df574}:null;}})['then'](respondWithResult(_0x2b1e16,null))[_0x8792('0x3c')](handleError(_0x2b1e16,null));};exports[_0x8792('0x49')]=function(_0x48d085,_0x242b58,_0x3122b0){var _0x12192b={};var _0x47dc4e={};var _0x2d87bd;var _0x58948a;return db[_0x8792('0x27')]['findOne']({'where':{'id':_0x48d085[_0x8792('0x3e')]['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x242b58,null))[_0x8792('0x20')](function(_0x30e11d){if(_0x30e11d){_0x2d87bd=_0x30e11d;_0x47dc4e[_0x8792('0x29')]=_[_0x8792('0x2b')](db[_0x8792('0x47')][_0x8792('0x3f')]);_0x47dc4e['query']=_[_0x8792('0x2b')](_0x48d085['query']);_0x47dc4e[_0x8792('0x2c')]=_[_0x8792('0x2e')](_0x47dc4e['model'],_0x47dc4e[_0x8792('0x2a')]);_0x12192b['attributes']=_['intersection'](_0x47dc4e[_0x8792('0x29')],qs[_0x8792('0x2f')](_0x48d085[_0x8792('0x2a')][_0x8792('0x2f')]));_0x12192b[_0x8792('0x2d')]=_0x12192b['attributes'][_0x8792('0x40')]?_0x12192b['attributes']:_0x47dc4e[_0x8792('0x29')];_0x12192b['order']=qs['sort'](_0x48d085[_0x8792('0x2a')][_0x8792('0x33')]);_0x12192b[_0x8792('0x37')]=qs[_0x8792('0x2c')](_[_0x8792('0x34')](_0x48d085[_0x8792('0x2a')],_0x47dc4e[_0x8792('0x2c')]));if(_0x48d085[_0x8792('0x2a')][_0x8792('0x35')]){_0x12192b[_0x8792('0x37')]=_[_0x8792('0x36')](_0x12192b[_0x8792('0x37')],{'$or':_[_0x8792('0x26')](_0x12192b[_0x8792('0x2d')],function(_0x4d3951){var _0x1a39fe={};_0x1a39fe[_0x4d3951]={'$like':'%'+_0x48d085[_0x8792('0x2a')][_0x8792('0x35')]+'%'};return _0x1a39fe;})});}_0x12192b=_[_0x8792('0x36')]({},_0x12192b,_0x48d085['options']);return _0x2d87bd['getDescriptions'](_0x12192b);}})[_0x8792('0x20')](function(_0x484dd0){if(_0x484dd0){_0x58948a=_0x484dd0[_0x8792('0x40')];if(!_0x48d085['query'][_0x8792('0x30')]('nolimit')){_0x12192b[_0x8792('0x19')]=qs[_0x8792('0x19')](_0x48d085[_0x8792('0x2a')]['limit']);_0x12192b[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x48d085[_0x8792('0x2a')]['offset']);}return _0x2d87bd['getDescriptions'](_0x12192b);}})[_0x8792('0x20')](function(_0x28e0a2){if(_0x28e0a2){return _0x28e0a2?{'count':_0x58948a,'rows':_0x28e0a2}:null;}})['then'](respondWithResult(_0x242b58,null))[_0x8792('0x3c')](handleError(_0x242b58,null));};
\ No newline at end of file
+var _0x00f4=['crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','reject','update','then','destroy','error','stack','name','send','map','Dynamics365Configuration','rawAttributes','type','key','query','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','pick','filters','filter','where','merge','options','includeAll','include','findAll','catch','params','keys','fields','create','body','find','getFields','findOne','Dynamics365Field','order','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel'];(function(_0x1c156e,_0x3263a6){var _0x58fc22=function(_0x42f1eb){while(--_0x42f1eb){_0x1c156e['push'](_0x1c156e['shift']());}};_0x58fc22(++_0x3263a6);}(_0x00f4,0x1c7));var _0x400f=function(_0x41ed07,_0x49eea5){_0x41ed07=_0x41ed07-0x0;var _0x306029=_0x00f4[_0x41ed07];return _0x306029;};'use strict';var emlformat=require(_0x400f('0x0'));var rimraf=require(_0x400f('0x1'));var zipdir=require(_0x400f('0x2'));var jsonpatch=require(_0x400f('0x3'));var rp=require('request-promise');var moment=require(_0x400f('0x4'));var BPromise=require(_0x400f('0x5'));var Mustache=require(_0x400f('0x6'));var util=require(_0x400f('0x7'));var path=require(_0x400f('0x8'));var sox=require(_0x400f('0x9'));var csv=require(_0x400f('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x400f('0xb'));var squel=require(_0x400f('0xc'));var crypto=require(_0x400f('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x400f('0xe'));var toCsv=require(_0x400f('0xa'));var querystring=require(_0x400f('0xf'));var Papa=require(_0x400f('0x10'));var Redis=require(_0x400f('0x11'));var authService=require(_0x400f('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x400f('0x13'));var hardwareService=require(_0x400f('0x14'));var logger=require('../../config/logger')(_0x400f('0x15'));var utils=require(_0x400f('0x16'));var config=require(_0x400f('0x17'));var licenseUtil=require(_0x400f('0x18'));var db=require(_0x400f('0x19'))['db'];function respondWithStatusCode(_0x1f1c5d,_0x4370ab){_0x4370ab=_0x4370ab||0xcc;return function(_0x23bb2f){if(_0x23bb2f){return _0x1f1c5d[_0x400f('0x1a')](_0x4370ab);}return _0x1f1c5d[_0x400f('0x1b')](_0x4370ab)[_0x400f('0x1c')]();};}function respondWithResult(_0x256170,_0x2f7120){_0x2f7120=_0x2f7120||0xc8;return function(_0x52a885){if(_0x52a885){return _0x256170[_0x400f('0x1b')](_0x2f7120)['json'](_0x52a885);}};}function respondWithFilteredResult(_0x12502e,_0x340b27){return function(_0x3db567){if(_0x3db567){var _0x15c4a2=typeof _0x340b27[_0x400f('0x1d')]===_0x400f('0x1e')&&typeof _0x340b27[_0x400f('0x1f')]===_0x400f('0x1e');var _0x392adb=_0x3db567['count'];var _0x48d155=_0x15c4a2?0x0:_0x340b27[_0x400f('0x1d')];var _0x4237fe=_0x15c4a2?_0x3db567[_0x400f('0x20')]:_0x340b27[_0x400f('0x1d')]+_0x340b27[_0x400f('0x1f')];var _0x55b0c9;if(_0x4237fe>=_0x392adb){_0x4237fe=_0x392adb;_0x55b0c9=0xc8;}else{_0x55b0c9=0xce;}_0x12502e[_0x400f('0x1b')](_0x55b0c9);return _0x12502e[_0x400f('0x21')]('Content-Range',_0x48d155+'-'+_0x4237fe+'/'+_0x392adb)[_0x400f('0x22')](_0x3db567);}return null;};}function patchUpdates(_0x3e83cc){return function(_0x461e03){try{jsonpatch['apply'](_0x461e03,_0x3e83cc,!![]);}catch(_0x14ff7c){return BPromise[_0x400f('0x23')](_0x14ff7c);}return _0x461e03['save']();};}function saveUpdates(_0x3ca236,_0x448021){return function(_0x424700){if(_0x424700){return _0x424700[_0x400f('0x24')](_0x3ca236)[_0x400f('0x25')](function(_0x46f373){return _0x46f373;});}return null;};}function removeEntity(_0x3a6389,_0x4be5cc){return function(_0x29ca35){if(_0x29ca35){return _0x29ca35[_0x400f('0x26')]()[_0x400f('0x25')](function(){_0x3a6389['status'](0xcc)[_0x400f('0x1c')]();});}};}function handleEntityNotFound(_0x196726,_0x431a41){return function(_0x453b71){if(!_0x453b71){_0x196726[_0x400f('0x1a')](0x194);}return _0x453b71;};}function handleError(_0x542c14,_0x4e05ab){_0x4e05ab=_0x4e05ab||0x1f4;return function(_0x258297){logger[_0x400f('0x27')](_0x258297[_0x400f('0x28')]);if(_0x258297[_0x400f('0x29')]){delete _0x258297[_0x400f('0x29')];}_0x542c14[_0x400f('0x1b')](_0x4e05ab)[_0x400f('0x2a')](_0x258297);};}exports['index']=function(_0x46faaa,_0x502771){var _0x53a7ad={},_0x5bce0d={},_0x1378db={'count':0x0,'rows':[]};var _0x2c5adb=_[_0x400f('0x2b')](db[_0x400f('0x2c')][_0x400f('0x2d')],function(_0x5215ba){return{'name':_0x5215ba['fieldName'],'type':_0x5215ba[_0x400f('0x2e')][_0x400f('0x2f')]};});_0x5bce0d['model']=_['map'](_0x2c5adb,_0x400f('0x29'));_0x5bce0d[_0x400f('0x30')]=_['keys'](_0x46faaa[_0x400f('0x30')]);_0x5bce0d['filters']=_[_0x400f('0x31')](_0x5bce0d[_0x400f('0x32')],_0x5bce0d['query']);_0x53a7ad[_0x400f('0x33')]=_[_0x400f('0x31')](_0x5bce0d[_0x400f('0x32')],qs['fields'](_0x46faaa[_0x400f('0x30')]['fields']));_0x53a7ad[_0x400f('0x33')]=_0x53a7ad[_0x400f('0x33')][_0x400f('0x34')]?_0x53a7ad['attributes']:_0x5bce0d[_0x400f('0x32')];if(!_0x46faaa[_0x400f('0x30')][_0x400f('0x35')](_0x400f('0x36'))){_0x53a7ad['limit']=qs['limit'](_0x46faaa[_0x400f('0x30')][_0x400f('0x1f')]);_0x53a7ad[_0x400f('0x1d')]=qs[_0x400f('0x1d')](_0x46faaa['query']['offset']);}_0x53a7ad['order']=qs[_0x400f('0x37')](_0x46faaa[_0x400f('0x30')]['sort']);_0x53a7ad['where']=qs['filters'](_[_0x400f('0x38')](_0x46faaa[_0x400f('0x30')],_0x5bce0d[_0x400f('0x39')]),_0x2c5adb);if(_0x46faaa['query'][_0x400f('0x3a')]){_0x53a7ad[_0x400f('0x3b')]=_[_0x400f('0x3c')](_0x53a7ad[_0x400f('0x3b')],{'$or':_['map'](_0x2c5adb,function(_0xb123ef){if(_0xb123ef['type']!=='VIRTUAL'){var _0x31d78e={};_0x31d78e[_0xb123ef[_0x400f('0x29')]]={'$like':'%'+_0x46faaa[_0x400f('0x30')][_0x400f('0x3a')]+'%'};return _0x31d78e;}})});}_0x53a7ad=_[_0x400f('0x3c')]({},_0x53a7ad,_0x46faaa[_0x400f('0x3d')]);var _0x410f58={'where':_0x53a7ad['where']};return db[_0x400f('0x2c')]['count'](_0x410f58)['then'](function(_0x4a2822){_0x1378db[_0x400f('0x20')]=_0x4a2822;if(_0x46faaa['query'][_0x400f('0x3e')]){_0x53a7ad[_0x400f('0x3f')]=[{'all':!![]}];}return db[_0x400f('0x2c')][_0x400f('0x40')](_0x53a7ad);})[_0x400f('0x25')](function(_0x4f0b1c){_0x1378db['rows']=_0x4f0b1c;return _0x1378db;})[_0x400f('0x25')](respondWithFilteredResult(_0x502771,_0x53a7ad))[_0x400f('0x41')](handleError(_0x502771,null));};exports['show']=function(_0x29a9a7,_0x53815){var _0x1b2749={'raw':![],'where':{'id':_0x29a9a7[_0x400f('0x42')]['id']}},_0x5e3210={};_0x5e3210['model']=_['keys'](db['Dynamics365Configuration'][_0x400f('0x2d')]);_0x5e3210[_0x400f('0x30')]=_[_0x400f('0x43')](_0x29a9a7[_0x400f('0x30')]);_0x5e3210[_0x400f('0x39')]=_['intersection'](_0x5e3210[_0x400f('0x32')],_0x5e3210[_0x400f('0x30')]);_0x1b2749[_0x400f('0x33')]=_['intersection'](_0x5e3210[_0x400f('0x32')],qs['fields'](_0x29a9a7[_0x400f('0x30')][_0x400f('0x44')]));_0x1b2749[_0x400f('0x33')]=_0x1b2749[_0x400f('0x33')][_0x400f('0x34')]?_0x1b2749['attributes']:_0x5e3210[_0x400f('0x32')];if(_0x29a9a7[_0x400f('0x30')][_0x400f('0x3e')]){_0x1b2749[_0x400f('0x3f')]=[{'all':!![]}];}_0x1b2749=_['merge']({},_0x1b2749,_0x29a9a7['options']);return db['Dynamics365Configuration']['find'](_0x1b2749)[_0x400f('0x25')](handleEntityNotFound(_0x53815,null))[_0x400f('0x25')](respondWithResult(_0x53815,null))['catch'](handleError(_0x53815,null));};exports[_0x400f('0x45')]=function(_0x4387ae,_0x106627){return db['Dynamics365Configuration'][_0x400f('0x45')](_0x4387ae[_0x400f('0x46')],{})[_0x400f('0x25')](respondWithResult(_0x106627,0xc9))[_0x400f('0x41')](handleError(_0x106627,null));};exports[_0x400f('0x24')]=function(_0x28d8b6,_0x357c22){if(_0x28d8b6[_0x400f('0x46')]['id']){delete _0x28d8b6[_0x400f('0x46')]['id'];}return db['Dynamics365Configuration'][_0x400f('0x47')]({'where':{'id':_0x28d8b6[_0x400f('0x42')]['id']}})[_0x400f('0x25')](handleEntityNotFound(_0x357c22,null))['then'](saveUpdates(_0x28d8b6[_0x400f('0x46')],null))[_0x400f('0x25')](respondWithResult(_0x357c22,null))[_0x400f('0x41')](handleError(_0x357c22,null));};exports['destroy']=function(_0x19d7f1,_0x48755f){return db[_0x400f('0x2c')][_0x400f('0x47')]({'where':{'id':_0x19d7f1[_0x400f('0x42')]['id']}})['then'](handleEntityNotFound(_0x48755f,null))[_0x400f('0x25')](removeEntity(_0x48755f,null))[_0x400f('0x41')](handleError(_0x48755f,null));};exports[_0x400f('0x48')]=function(_0x517998,_0x105d2e,_0x3f7af8){var _0x142c02={};var _0x2f9ad3={};var _0x43562f;var _0x1a3199;return db[_0x400f('0x2c')][_0x400f('0x49')]({'where':{'id':_0x517998[_0x400f('0x42')]['id']}})[_0x400f('0x25')](handleEntityNotFound(_0x105d2e,null))[_0x400f('0x25')](function(_0x240b52){if(_0x240b52){_0x43562f=_0x240b52;_0x2f9ad3[_0x400f('0x32')]=_[_0x400f('0x43')](db[_0x400f('0x4a')][_0x400f('0x2d')]);_0x2f9ad3[_0x400f('0x30')]=_[_0x400f('0x43')](_0x517998['query']);_0x2f9ad3[_0x400f('0x39')]=_['intersection'](_0x2f9ad3[_0x400f('0x32')],_0x2f9ad3[_0x400f('0x30')]);_0x142c02[_0x400f('0x33')]=_[_0x400f('0x31')](_0x2f9ad3[_0x400f('0x32')],qs['fields'](_0x517998[_0x400f('0x30')][_0x400f('0x44')]));_0x142c02[_0x400f('0x33')]=_0x142c02[_0x400f('0x33')][_0x400f('0x34')]?_0x142c02['attributes']:_0x2f9ad3[_0x400f('0x32')];_0x142c02[_0x400f('0x4b')]=qs['sort'](_0x517998[_0x400f('0x30')][_0x400f('0x37')]);_0x142c02['where']=qs[_0x400f('0x39')](_[_0x400f('0x38')](_0x517998[_0x400f('0x30')],_0x2f9ad3[_0x400f('0x39')]));if(_0x517998[_0x400f('0x30')]['filter']){_0x142c02[_0x400f('0x3b')]=_['merge'](_0x142c02[_0x400f('0x3b')],{'$or':_['map'](_0x142c02[_0x400f('0x33')],function(_0x29a002){var _0x3b0255={};_0x3b0255[_0x29a002]={'$like':'%'+_0x517998[_0x400f('0x30')][_0x400f('0x3a')]+'%'};return _0x3b0255;})});}_0x142c02=_['merge']({},_0x142c02,_0x517998[_0x400f('0x3d')]);return _0x43562f['getFields'](_0x142c02);}})[_0x400f('0x25')](function(_0x4dbb0a){if(_0x4dbb0a){_0x1a3199=_0x4dbb0a[_0x400f('0x34')];if(!_0x517998['query'][_0x400f('0x35')]('nolimit')){_0x142c02['limit']=qs['limit'](_0x517998[_0x400f('0x30')][_0x400f('0x1f')]);_0x142c02[_0x400f('0x1d')]=qs[_0x400f('0x1d')](_0x517998[_0x400f('0x30')][_0x400f('0x1d')]);}return _0x43562f[_0x400f('0x48')](_0x142c02);}})[_0x400f('0x25')](function(_0x40d368){if(_0x40d368){return _0x40d368?{'count':_0x1a3199,'rows':_0x40d368}:null;}})[_0x400f('0x25')](respondWithResult(_0x105d2e,null))[_0x400f('0x41')](handleError(_0x105d2e,null));};exports[_0x400f('0x4c')]=function(_0x556a1c,_0x46dcf4,_0xa54540){var _0x22ee50={};var _0x3e5739={};var _0x45c8be;var _0x3e9de8;return db[_0x400f('0x2c')][_0x400f('0x49')]({'where':{'id':_0x556a1c[_0x400f('0x42')]['id']}})[_0x400f('0x25')](handleEntityNotFound(_0x46dcf4,null))[_0x400f('0x25')](function(_0x1c879f){if(_0x1c879f){_0x45c8be=_0x1c879f;_0x3e5739[_0x400f('0x32')]=_[_0x400f('0x43')](db[_0x400f('0x4a')][_0x400f('0x2d')]);_0x3e5739[_0x400f('0x30')]=_[_0x400f('0x43')](_0x556a1c['query']);_0x3e5739[_0x400f('0x39')]=_['intersection'](_0x3e5739[_0x400f('0x32')],_0x3e5739[_0x400f('0x30')]);_0x22ee50[_0x400f('0x33')]=_[_0x400f('0x31')](_0x3e5739[_0x400f('0x32')],qs[_0x400f('0x44')](_0x556a1c[_0x400f('0x30')][_0x400f('0x44')]));_0x22ee50[_0x400f('0x33')]=_0x22ee50['attributes'][_0x400f('0x34')]?_0x22ee50[_0x400f('0x33')]:_0x3e5739['model'];_0x22ee50[_0x400f('0x4b')]=qs[_0x400f('0x37')](_0x556a1c[_0x400f('0x30')][_0x400f('0x37')]);_0x22ee50['where']=qs[_0x400f('0x39')](_[_0x400f('0x38')](_0x556a1c[_0x400f('0x30')],_0x3e5739['filters']));if(_0x556a1c['query'][_0x400f('0x3a')]){_0x22ee50[_0x400f('0x3b')]=_['merge'](_0x22ee50[_0x400f('0x3b')],{'$or':_['map'](_0x22ee50['attributes'],function(_0xb96d80){var _0x355529={};_0x355529[_0xb96d80]={'$like':'%'+_0x556a1c[_0x400f('0x30')]['filter']+'%'};return _0x355529;})});}_0x22ee50=_[_0x400f('0x3c')]({},_0x22ee50,_0x556a1c['options']);return _0x45c8be[_0x400f('0x4c')](_0x22ee50);}})[_0x400f('0x25')](function(_0x134007){if(_0x134007){_0x3e9de8=_0x134007[_0x400f('0x34')];if(!_0x556a1c['query'][_0x400f('0x35')](_0x400f('0x36'))){_0x22ee50[_0x400f('0x1f')]=qs[_0x400f('0x1f')](_0x556a1c['query'][_0x400f('0x1f')]);_0x22ee50[_0x400f('0x1d')]=qs[_0x400f('0x1d')](_0x556a1c[_0x400f('0x30')][_0x400f('0x1d')]);}return _0x45c8be['getSubjects'](_0x22ee50);}})['then'](function(_0x2430b5){if(_0x2430b5){return _0x2430b5?{'count':_0x3e9de8,'rows':_0x2430b5}:null;}})[_0x400f('0x25')](respondWithResult(_0x46dcf4,null))['catch'](handleError(_0x46dcf4,null));};exports['getDescriptions']=function(_0x582970,_0x245690,_0x4c22bb){var _0x3aa1be={};var _0x19dd27={};var _0x1afbd4;var _0x3944cd;return db[_0x400f('0x2c')][_0x400f('0x49')]({'where':{'id':_0x582970[_0x400f('0x42')]['id']}})[_0x400f('0x25')](handleEntityNotFound(_0x245690,null))[_0x400f('0x25')](function(_0x3716ac){if(_0x3716ac){_0x1afbd4=_0x3716ac;_0x19dd27[_0x400f('0x32')]=_[_0x400f('0x43')](db['Dynamics365Field'][_0x400f('0x2d')]);_0x19dd27['query']=_[_0x400f('0x43')](_0x582970[_0x400f('0x30')]);_0x19dd27[_0x400f('0x39')]=_[_0x400f('0x31')](_0x19dd27[_0x400f('0x32')],_0x19dd27[_0x400f('0x30')]);_0x3aa1be[_0x400f('0x33')]=_[_0x400f('0x31')](_0x19dd27[_0x400f('0x32')],qs[_0x400f('0x44')](_0x582970['query'][_0x400f('0x44')]));_0x3aa1be[_0x400f('0x33')]=_0x3aa1be[_0x400f('0x33')][_0x400f('0x34')]?_0x3aa1be[_0x400f('0x33')]:_0x19dd27['model'];_0x3aa1be[_0x400f('0x4b')]=qs['sort'](_0x582970[_0x400f('0x30')][_0x400f('0x37')]);_0x3aa1be['where']=qs[_0x400f('0x39')](_['pick'](_0x582970[_0x400f('0x30')],_0x19dd27[_0x400f('0x39')]));if(_0x582970[_0x400f('0x30')][_0x400f('0x3a')]){_0x3aa1be[_0x400f('0x3b')]=_[_0x400f('0x3c')](_0x3aa1be[_0x400f('0x3b')],{'$or':_[_0x400f('0x2b')](_0x3aa1be[_0x400f('0x33')],function(_0x181a5f){var _0x48810e={};_0x48810e[_0x181a5f]={'$like':'%'+_0x582970[_0x400f('0x30')][_0x400f('0x3a')]+'%'};return _0x48810e;})});}_0x3aa1be=_['merge']({},_0x3aa1be,_0x582970[_0x400f('0x3d')]);return _0x1afbd4[_0x400f('0x4d')](_0x3aa1be);}})[_0x400f('0x25')](function(_0x714093){if(_0x714093){_0x3944cd=_0x714093[_0x400f('0x34')];if(!_0x582970[_0x400f('0x30')]['hasOwnProperty'](_0x400f('0x36'))){_0x3aa1be[_0x400f('0x1f')]=qs['limit'](_0x582970[_0x400f('0x30')]['limit']);_0x3aa1be[_0x400f('0x1d')]=qs[_0x400f('0x1d')](_0x582970[_0x400f('0x30')][_0x400f('0x1d')]);}return _0x1afbd4[_0x400f('0x4d')](_0x3aa1be);}})[_0x400f('0x25')](function(_0x27fa2c){if(_0x27fa2c){return _0x27fa2c?{'count':_0x3944cd,'rows':_0x27fa2c}:null;}})[_0x400f('0x25')](respondWithResult(_0x245690,null))['catch'](handleError(_0x245690,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b84=['moment','path','rimraf','../../config/environment','Dynamics365Configuration','lodash','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4b84,0x1cc));var _0x44b8=function(_0x2714ec,_0x36daa4){_0x2714ec=_0x2714ec-0x0;var _0x2608e5=_0x4b84[_0x2714ec];return _0x2608e5;};'use strict';var _=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x44b8('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x44b8('0x3'));var rimraf=require(_0x44b8('0x4'));var config=require(_0x44b8('0x5'));var attributes=require('./intDynamics365Configuration.attributes');module['exports']=function(_0x55f25d,_0x996a8b){return _0x55f25d['define'](_0x44b8('0x6'),attributes,{'tableName':'int_dynamics365_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf109=['Dynamics365Configuration','int_dynamics365_configurations','lodash','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./intDynamics365Configuration.attributes','exports','define'];(function(_0x1eb7f3,_0x540872){var _0x570dcd=function(_0x47374d){while(--_0x47374d){_0x1eb7f3['push'](_0x1eb7f3['shift']());}};_0x570dcd(++_0x540872);}(_0xf109,0xce));var _0x9f10=function(_0x2235bf,_0x3a06a7){_0x2235bf=_0x2235bf-0x0;var _0x4c3a64=_0xf109[_0x2235bf];return _0x4c3a64;};'use strict';var _=require(_0x9f10('0x0'));var util=require(_0x9f10('0x1'));var logger=require(_0x9f10('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x9f10('0x3'));var fs=require('fs');var path=require(_0x9f10('0x4'));var rimraf=require(_0x9f10('0x5'));var config=require(_0x9f10('0x6'));var attributes=require(_0x9f10('0x7'));module[_0x9f10('0x8')]=function(_0x408fe8,_0xd3137b){return _0x408fe8[_0x9f10('0x9')](_0x9f10('0xa'),attributes,{'tableName':_0x9f10('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b0e=['catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','request','info','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','Dynamics365Configuration,\x20%s,\x20%s','message'];(function(_0x45bf86,_0x75586e){var _0x1f02b7=function(_0x1ea8a3){while(--_0x1ea8a3){_0x45bf86['push'](_0x45bf86['shift']());}};_0x1f02b7(++_0x75586e);}(_0x9b0e,0x131));var _0xe9b0=function(_0x3c28db,_0x98e337){_0x3c28db=_0x3c28db-0x0;var _0x248e3d=_0x9b0e[_0x3c28db];return _0x248e3d;};'use strict';var _=require(_0xe9b0('0x0'));var util=require(_0xe9b0('0x1'));var moment=require(_0xe9b0('0x2'));var BPromise=require('bluebird');var rs=require(_0xe9b0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe9b0('0x4'))['db'];var utils=require(_0xe9b0('0x5'));var logger=require(_0xe9b0('0x6'))(_0xe9b0('0x7'));var config=require(_0xe9b0('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xb06dd2,_0x4ae4ea,_0x20d5ce){return new BPromise(function(_0x360c1f,_0x367ec8){return client[_0xe9b0('0x9')](_0xb06dd2,_0x20d5ce)['then'](function(_0x4fdab9){logger[_0xe9b0('0xa')]('Dynamics365Configuration,\x20%s,\x20%s',_0x4ae4ea,'request\x20sent');logger[_0xe9b0('0xb')](_0xe9b0('0xc'),_0x4ae4ea,_0xe9b0('0xd'),JSON[_0xe9b0('0xe')](_0x4fdab9));if(_0x4fdab9[_0xe9b0('0xf')]){if(_0x4fdab9[_0xe9b0('0xf')]['code']===0x1f4){logger[_0xe9b0('0xf')](_0xe9b0('0x10'),_0x4ae4ea,_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);return _0x367ec8(_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);}logger[_0xe9b0('0xf')]('Dynamics365Configuration,\x20%s,\x20%s',_0x4ae4ea,_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);return _0x360c1f(_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);}else{logger['info'](_0xe9b0('0x10'),_0x4ae4ea,_0xe9b0('0xd'));_0x360c1f(_0x4fdab9['result'][_0xe9b0('0x11')]);}})[_0xe9b0('0x12')](function(_0x59778d){logger[_0xe9b0('0xf')](_0xe9b0('0x10'),_0x4ae4ea,_0x59778d);_0x367ec8(_0x59778d);});});}
\ No newline at end of file
+var _0xcf17=['Dynamics365Configuration,\x20%s,\x20%s','message','result','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','request','then','info','request\x20sent','debug','stringify','error','code'];(function(_0x116546,_0x427c25){var _0x18c601=function(_0x4f4813){while(--_0x4f4813){_0x116546['push'](_0x116546['shift']());}};_0x18c601(++_0x427c25);}(_0xcf17,0x190));var _0x7cf1=function(_0x43ae2d,_0x194fac){_0x43ae2d=_0x43ae2d-0x0;var _0x25e6a2=_0xcf17[_0x43ae2d];return _0x25e6a2;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x7cf1('0x0'));var BPromise=require(_0x7cf1('0x1'));var rs=require(_0x7cf1('0x2'));var fs=require('fs');var Redis=require(_0x7cf1('0x3'));var db=require(_0x7cf1('0x4'))['db'];var utils=require(_0x7cf1('0x5'));var logger=require(_0x7cf1('0x6'))(_0x7cf1('0x7'));var config=require('../../config/environment');var jayson=require(_0x7cf1('0x8'));var client=jayson['client'][_0x7cf1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x59651d,_0x2dcc42,_0x57bbe9){return new BPromise(function(_0x58192e,_0x3e3429){return client[_0x7cf1('0xa')](_0x59651d,_0x57bbe9)[_0x7cf1('0xb')](function(_0x53dff8){logger[_0x7cf1('0xc')]('Dynamics365Configuration,\x20%s,\x20%s',_0x2dcc42,_0x7cf1('0xd'));logger[_0x7cf1('0xe')]('Dynamics365Configuration,\x20%s,\x20%s,\x20%s',_0x2dcc42,_0x7cf1('0xd'),JSON[_0x7cf1('0xf')](_0x53dff8));if(_0x53dff8[_0x7cf1('0x10')]){if(_0x53dff8[_0x7cf1('0x10')][_0x7cf1('0x11')]===0x1f4){logger[_0x7cf1('0x10')](_0x7cf1('0x12'),_0x2dcc42,_0x53dff8[_0x7cf1('0x10')][_0x7cf1('0x13')]);return _0x3e3429(_0x53dff8[_0x7cf1('0x10')][_0x7cf1('0x13')]);}logger['error'](_0x7cf1('0x12'),_0x2dcc42,_0x53dff8[_0x7cf1('0x10')][_0x7cf1('0x13')]);return _0x58192e(_0x53dff8['error'][_0x7cf1('0x13')]);}else{logger[_0x7cf1('0xc')](_0x7cf1('0x12'),_0x2dcc42,'request\x20sent');_0x58192e(_0x53dff8[_0x7cf1('0x14')][_0x7cf1('0x13')]);}})[_0x7cf1('0x15')](function(_0x35aa33){logger['error']('Dynamics365Configuration,\x20%s,\x20%s',_0x2dcc42,_0x35aa33);_0x3e3429(_0x35aa33);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d45=['../../components/interaction/service','../../config/environment','isAuthenticated','get','/:id','show','put','destroy','exports','util','path','Router','fs-extra'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7d45,0x100));var _0x57d4=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x7d45[_0x2c91e9];return _0x13f0ff;};'use strict';var multer=require('multer');var util=require(_0x57d4('0x0'));var path=require(_0x57d4('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x57d4('0x2')]();var fs_extra=require(_0x57d4('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x57d4('0x4'));var config=require(_0x57d4('0x5'));var controller=require('./intDynamics365Field.controller');router['get']('/',auth[_0x57d4('0x6')](),controller['index']);router[_0x57d4('0x7')](_0x57d4('0x8'),auth['isAuthenticated'](),controller[_0x57d4('0x9')]);router['post']('/',auth[_0x57d4('0x6')](),controller['create']);router[_0x57d4('0xa')](_0x57d4('0x8'),auth[_0x57d4('0x6')](),controller['update']);router['delete'](_0x57d4('0x8'),auth[_0x57d4('0x6')](),controller[_0x57d4('0xb')]);module[_0x57d4('0xc')]=router;
\ No newline at end of file
+var _0xe714=['../../components/interaction/service','get','index','/:id','isAuthenticated','post','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xe714,0x7a));var _0x4e71=function(_0x380c29,_0x588586){_0x380c29=_0x380c29-0x0;var _0x36a503=_0xe714[_0x380c29];return _0x36a503;};'use strict';var multer=require(_0x4e71('0x0'));var util=require(_0x4e71('0x1'));var path=require(_0x4e71('0x2'));var timeout=require(_0x4e71('0x3'));var express=require(_0x4e71('0x4'));var router=express[_0x4e71('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x4e71('0x6'));var config=require('../../config/environment');var controller=require('./intDynamics365Field.controller');router[_0x4e71('0x7')]('/',auth['isAuthenticated'](),controller[_0x4e71('0x8')]);router[_0x4e71('0x7')](_0x4e71('0x9'),auth[_0x4e71('0xa')](),controller['show']);router[_0x4e71('0xb')]('/',auth[_0x4e71('0xa')](),controller['create']);router[_0x4e71('0xc')](_0x4e71('0x9'),auth[_0x4e71('0xa')](),controller[_0x4e71('0xd')]);router[_0x4e71('0xe')](_0x4e71('0x9'),auth[_0x4e71('0xa')](),controller[_0x4e71('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e60=['keyValue','picklist','STRING','BOOLEAN','sequelize','exports','ENUM','string','variable','customVariable'];(function(_0x3670ec,_0x3d154a){var _0x495314=function(_0x23ffd8){while(--_0x23ffd8){_0x3670ec['push'](_0x3670ec['shift']());}};_0x495314(++_0x3d154a);}(_0x2e60,0x90));var _0x02e6=function(_0x199b37,_0x1f79a6){_0x199b37=_0x199b37-0x0;var _0x174835=_0x2e60[_0x199b37];return _0x174835;};'use strict';var Sequelize=require(_0x02e6('0x0'));module[_0x02e6('0x1')]={'type':{'type':Sequelize[_0x02e6('0x2')](_0x02e6('0x3'),_0x02e6('0x4'),_0x02e6('0x5'),_0x02e6('0x6'),_0x02e6('0x7')),'defaultValue':_0x02e6('0x3')},'content':{'type':Sequelize[_0x02e6('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x02e6('0x2')]('string','variable','customVariable')},'keyContent':{'type':Sequelize[_0x02e6('0x8')]},'idField':{'type':Sequelize[_0x02e6('0x8')]},'nameField':{'type':Sequelize[_0x02e6('0x8')]},'customField':{'type':Sequelize[_0x02e6('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x02e6('0x8')]}};
\ No newline at end of file
+var _0x4c95=['keyValue','STRING','BOOLEAN','sequelize','exports','ENUM','string','variable','customVariable'];(function(_0x140202,_0x4245c7){var _0x3037c2=function(_0x525d19){while(--_0x525d19){_0x140202['push'](_0x140202['shift']());}};_0x3037c2(++_0x4245c7);}(_0x4c95,0xc9));var _0x54c9=function(_0x43e01b,_0x54a614){_0x43e01b=_0x43e01b-0x0;var _0x25a296=_0x4c95[_0x43e01b];return _0x25a296;};'use strict';var Sequelize=require(_0x54c9('0x0'));module[_0x54c9('0x1')]={'type':{'type':Sequelize[_0x54c9('0x2')](_0x54c9('0x3'),_0x54c9('0x4'),_0x54c9('0x5'),_0x54c9('0x6'),'picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x54c9('0x7')]},'key':{'type':Sequelize[_0x54c9('0x7')]},'keyType':{'type':Sequelize[_0x54c9('0x2')](_0x54c9('0x3'),_0x54c9('0x4'),_0x54c9('0x5'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x54c9('0x7')]},'nameField':{'type':Sequelize[_0x54c9('0x7')]},'customField':{'type':Sequelize[_0x54c9('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x54c9('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ce2=['pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','rawAttributes','attributes','include','find','create','Dynamics365Field','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','stack','name','index','map','fieldName','type','key','model','query','keys','intersection','fields','length','hasOwnProperty','order','sort','where','filters'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6ce2,0x1d4));var _0x26ce=function(_0x55e08b,_0x421620){_0x55e08b=_0x55e08b-0x0;var _0xd1a7ff=_0x6ce2[_0x55e08b];return _0xd1a7ff;};'use strict';var emlformat=require(_0x26ce('0x0'));var rimraf=require(_0x26ce('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x26ce('0x2'));var rp=require(_0x26ce('0x3'));var moment=require(_0x26ce('0x4'));var BPromise=require(_0x26ce('0x5'));var Mustache=require(_0x26ce('0x6'));var util=require('util');var path=require(_0x26ce('0x7'));var sox=require(_0x26ce('0x8'));var csv=require(_0x26ce('0x9'));var ejs=require(_0x26ce('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x26ce('0xb'));var squel=require(_0x26ce('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x26ce('0xd'));var toCsv=require(_0x26ce('0x9'));var querystring=require(_0x26ce('0xe'));var Papa=require(_0x26ce('0xf'));var Redis=require(_0x26ce('0x10'));var authService=require(_0x26ce('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x26ce('0x12'));var hardwareService=require(_0x26ce('0x13'));var logger=require(_0x26ce('0x14'))(_0x26ce('0x15'));var utils=require(_0x26ce('0x16'));var config=require(_0x26ce('0x17'));var licenseUtil=require(_0x26ce('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4ded89,_0x4e8c86){_0x4e8c86=_0x4e8c86||0xcc;return function(_0x33b748){if(_0x33b748){return _0x4ded89['sendStatus'](_0x4e8c86);}return _0x4ded89[_0x26ce('0x19')](_0x4e8c86)[_0x26ce('0x1a')]();};}function respondWithResult(_0xd4a3f7,_0x51f5cb){_0x51f5cb=_0x51f5cb||0xc8;return function(_0x328a69){if(_0x328a69){return _0xd4a3f7[_0x26ce('0x19')](_0x51f5cb)['json'](_0x328a69);}};}function respondWithFilteredResult(_0x38881b,_0x4a9c9f){return function(_0x54de38){if(_0x54de38){var _0x4728b7=typeof _0x4a9c9f[_0x26ce('0x1b')]==='undefined'&&typeof _0x4a9c9f[_0x26ce('0x1c')]==='undefined';var _0x3fbd67=_0x54de38[_0x26ce('0x1d')];var _0x393777=_0x4728b7?0x0:_0x4a9c9f[_0x26ce('0x1b')];var _0x2e3127=_0x4728b7?_0x54de38[_0x26ce('0x1d')]:_0x4a9c9f[_0x26ce('0x1b')]+_0x4a9c9f[_0x26ce('0x1c')];var _0x3336b2;if(_0x2e3127>=_0x3fbd67){_0x2e3127=_0x3fbd67;_0x3336b2=0xc8;}else{_0x3336b2=0xce;}_0x38881b['status'](_0x3336b2);return _0x38881b['set'](_0x26ce('0x1e'),_0x393777+'-'+_0x2e3127+'/'+_0x3fbd67)[_0x26ce('0x1f')](_0x54de38);}return null;};}function patchUpdates(_0x182efc){return function(_0x5c098d){try{jsonpatch[_0x26ce('0x20')](_0x5c098d,_0x182efc,!![]);}catch(_0x43a8f9){return BPromise[_0x26ce('0x21')](_0x43a8f9);}return _0x5c098d[_0x26ce('0x22')]();};}function saveUpdates(_0x42f2af,_0x2e2877){return function(_0x2c9592){if(_0x2c9592){return _0x2c9592[_0x26ce('0x23')](_0x42f2af)[_0x26ce('0x24')](function(_0x3e7a4f){return _0x3e7a4f;});}return null;};}function removeEntity(_0x2615fe,_0x4c7b4f){return function(_0x33416f){if(_0x33416f){return _0x33416f[_0x26ce('0x25')]()[_0x26ce('0x24')](function(){_0x2615fe[_0x26ce('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39569f,_0x182762){return function(_0x2568cd){if(!_0x2568cd){_0x39569f[_0x26ce('0x26')](0x194);}return _0x2568cd;};}function handleError(_0x21f62f,_0x439cf9){_0x439cf9=_0x439cf9||0x1f4;return function(_0x5f336b){logger['error'](_0x5f336b[_0x26ce('0x27')]);if(_0x5f336b[_0x26ce('0x28')]){delete _0x5f336b['name'];}_0x21f62f['status'](_0x439cf9)['send'](_0x5f336b);};}exports[_0x26ce('0x29')]=function(_0x5158da,_0x240b6b){var _0xc61d53={},_0x2f37b9={},_0x37ea02={'count':0x0,'rows':[]};var _0x31af86=_[_0x26ce('0x2a')](db['Dynamics365Field']['rawAttributes'],function(_0x579ec2){return{'name':_0x579ec2[_0x26ce('0x2b')],'type':_0x579ec2[_0x26ce('0x2c')][_0x26ce('0x2d')]};});_0x2f37b9[_0x26ce('0x2e')]=_['map'](_0x31af86,_0x26ce('0x28'));_0x2f37b9[_0x26ce('0x2f')]=_[_0x26ce('0x30')](_0x5158da[_0x26ce('0x2f')]);_0x2f37b9['filters']=_[_0x26ce('0x31')](_0x2f37b9[_0x26ce('0x2e')],_0x2f37b9[_0x26ce('0x2f')]);_0xc61d53['attributes']=_[_0x26ce('0x31')](_0x2f37b9['model'],qs[_0x26ce('0x32')](_0x5158da[_0x26ce('0x2f')]['fields']));_0xc61d53['attributes']=_0xc61d53['attributes'][_0x26ce('0x33')]?_0xc61d53['attributes']:_0x2f37b9[_0x26ce('0x2e')];if(!_0x5158da['query'][_0x26ce('0x34')]('nolimit')){_0xc61d53['limit']=qs['limit'](_0x5158da[_0x26ce('0x2f')][_0x26ce('0x1c')]);_0xc61d53[_0x26ce('0x1b')]=qs[_0x26ce('0x1b')](_0x5158da[_0x26ce('0x2f')][_0x26ce('0x1b')]);}_0xc61d53[_0x26ce('0x35')]=qs['sort'](_0x5158da['query'][_0x26ce('0x36')]);_0xc61d53[_0x26ce('0x37')]=qs[_0x26ce('0x38')](_[_0x26ce('0x39')](_0x5158da[_0x26ce('0x2f')],_0x2f37b9[_0x26ce('0x38')]),_0x31af86);if(_0x5158da[_0x26ce('0x2f')][_0x26ce('0x3a')]){_0xc61d53[_0x26ce('0x37')]=_[_0x26ce('0x3b')](_0xc61d53[_0x26ce('0x37')],{'$or':_['map'](_0x31af86,function(_0x34c0fe){if(_0x34c0fe[_0x26ce('0x2c')]!==_0x26ce('0x3c')){var _0x20052f={};_0x20052f[_0x34c0fe[_0x26ce('0x28')]]={'$like':'%'+_0x5158da[_0x26ce('0x2f')][_0x26ce('0x3a')]+'%'};return _0x20052f;}})});}_0xc61d53=_[_0x26ce('0x3b')]({},_0xc61d53,_0x5158da[_0x26ce('0x3d')]);var _0x1a7a3f={'where':_0xc61d53['where']};return db['Dynamics365Field'][_0x26ce('0x1d')](_0x1a7a3f)[_0x26ce('0x24')](function(_0x150875){_0x37ea02[_0x26ce('0x1d')]=_0x150875;if(_0x5158da[_0x26ce('0x2f')][_0x26ce('0x3e')]){_0xc61d53['include']=[{'all':!![]}];}return db['Dynamics365Field'][_0x26ce('0x3f')](_0xc61d53);})[_0x26ce('0x24')](function(_0x42c7fb){_0x37ea02[_0x26ce('0x40')]=_0x42c7fb;return _0x37ea02;})['then'](respondWithFilteredResult(_0x240b6b,_0xc61d53))[_0x26ce('0x41')](handleError(_0x240b6b,null));};exports[_0x26ce('0x42')]=function(_0x31c5b5,_0x3114c4){var _0x1a8d96={'raw':!![],'where':{'id':_0x31c5b5[_0x26ce('0x43')]['id']}},_0x44c4a1={};_0x44c4a1['model']=_[_0x26ce('0x30')](db['Dynamics365Field'][_0x26ce('0x44')]);_0x44c4a1[_0x26ce('0x2f')]=_[_0x26ce('0x30')](_0x31c5b5['query']);_0x44c4a1[_0x26ce('0x38')]=_[_0x26ce('0x31')](_0x44c4a1[_0x26ce('0x2e')],_0x44c4a1[_0x26ce('0x2f')]);_0x1a8d96[_0x26ce('0x45')]=_['intersection'](_0x44c4a1[_0x26ce('0x2e')],qs['fields'](_0x31c5b5[_0x26ce('0x2f')]['fields']));_0x1a8d96['attributes']=_0x1a8d96['attributes'][_0x26ce('0x33')]?_0x1a8d96[_0x26ce('0x45')]:_0x44c4a1[_0x26ce('0x2e')];if(_0x31c5b5[_0x26ce('0x2f')][_0x26ce('0x3e')]){_0x1a8d96[_0x26ce('0x46')]=[{'all':!![]}];}_0x1a8d96=_[_0x26ce('0x3b')]({},_0x1a8d96,_0x31c5b5[_0x26ce('0x3d')]);return db['Dynamics365Field'][_0x26ce('0x47')](_0x1a8d96)['then'](handleEntityNotFound(_0x3114c4,null))[_0x26ce('0x24')](respondWithResult(_0x3114c4,null))[_0x26ce('0x41')](handleError(_0x3114c4,null));};exports[_0x26ce('0x48')]=function(_0x357fd9,_0x41e55e){return db[_0x26ce('0x49')][_0x26ce('0x48')](_0x357fd9[_0x26ce('0x4a')],{})[_0x26ce('0x24')](respondWithResult(_0x41e55e,0xc9))[_0x26ce('0x41')](handleError(_0x41e55e,null));};exports[_0x26ce('0x23')]=function(_0x80dc80,_0x404d58){if(_0x80dc80['body']['id']){delete _0x80dc80[_0x26ce('0x4a')]['id'];}return db['Dynamics365Field'][_0x26ce('0x47')]({'where':{'id':_0x80dc80[_0x26ce('0x43')]['id']}})[_0x26ce('0x24')](handleEntityNotFound(_0x404d58,null))[_0x26ce('0x24')](saveUpdates(_0x80dc80[_0x26ce('0x4a')],null))['then'](respondWithResult(_0x404d58,null))[_0x26ce('0x41')](handleError(_0x404d58,null));};exports['destroy']=function(_0x537c60,_0x546720){return db[_0x26ce('0x49')][_0x26ce('0x47')]({'where':{'id':_0x537c60[_0x26ce('0x43')]['id']}})[_0x26ce('0x24')](handleEntityNotFound(_0x546720,null))['then'](removeEntity(_0x546720,null))[_0x26ce('0x41')](handleError(_0x546720,null));};
\ No newline at end of file
+var _0x7e53=['util','path','sox','to-csv','ejs','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','index','map','Dynamics365Field','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','params','find','create','body','eml-format','rimraf','zip-dir','moment','bluebird'];(function(_0x531dcc,_0x35bd71){var _0x4416dd=function(_0x2b3eee){while(--_0x2b3eee){_0x531dcc['push'](_0x531dcc['shift']());}};_0x4416dd(++_0x35bd71);}(_0x7e53,0x1b7));var _0x37e5=function(_0x344ac0,_0x165060){_0x344ac0=_0x344ac0-0x0;var _0x123342=_0x7e53[_0x344ac0];return _0x123342;};'use strict';var emlformat=require(_0x37e5('0x0'));var rimraf=require(_0x37e5('0x1'));var zipdir=require(_0x37e5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x37e5('0x3'));var BPromise=require(_0x37e5('0x4'));var Mustache=require('mustache');var util=require(_0x37e5('0x5'));var path=require(_0x37e5('0x6'));var sox=require(_0x37e5('0x7'));var csv=require(_0x37e5('0x8'));var ejs=require(_0x37e5('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x37e5('0xa'));var jsforce=require(_0x37e5('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x37e5('0xc'));var Papa=require(_0x37e5('0xd'));var Redis=require(_0x37e5('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x37e5('0xf'));var as=require(_0x37e5('0x10'));var hardwareService=require(_0x37e5('0x11'));var logger=require('../../config/logger')(_0x37e5('0x12'));var utils=require(_0x37e5('0x13'));var config=require(_0x37e5('0x14'));var licenseUtil=require(_0x37e5('0x15'));var db=require(_0x37e5('0x16'))['db'];function respondWithStatusCode(_0x182875,_0x33469f){_0x33469f=_0x33469f||0xcc;return function(_0x3c9988){if(_0x3c9988){return _0x182875['sendStatus'](_0x33469f);}return _0x182875[_0x37e5('0x17')](_0x33469f)[_0x37e5('0x18')]();};}function respondWithResult(_0x5dbb5a,_0x29fb2a){_0x29fb2a=_0x29fb2a||0xc8;return function(_0x40735f){if(_0x40735f){return _0x5dbb5a[_0x37e5('0x17')](_0x29fb2a)['json'](_0x40735f);}};}function respondWithFilteredResult(_0x54b38e,_0x5369c1){return function(_0x8ba126){if(_0x8ba126){var _0x553284=typeof _0x5369c1[_0x37e5('0x19')]===_0x37e5('0x1a')&&typeof _0x5369c1[_0x37e5('0x1b')]===_0x37e5('0x1a');var _0x32bf85=_0x8ba126[_0x37e5('0x1c')];var _0x32e974=_0x553284?0x0:_0x5369c1[_0x37e5('0x19')];var _0x15bdee=_0x553284?_0x8ba126['count']:_0x5369c1[_0x37e5('0x19')]+_0x5369c1[_0x37e5('0x1b')];var _0x4b5ab8;if(_0x15bdee>=_0x32bf85){_0x15bdee=_0x32bf85;_0x4b5ab8=0xc8;}else{_0x4b5ab8=0xce;}_0x54b38e['status'](_0x4b5ab8);return _0x54b38e[_0x37e5('0x1d')](_0x37e5('0x1e'),_0x32e974+'-'+_0x15bdee+'/'+_0x32bf85)[_0x37e5('0x1f')](_0x8ba126);}return null;};}function patchUpdates(_0x116efe){return function(_0x51834e){try{jsonpatch[_0x37e5('0x20')](_0x51834e,_0x116efe,!![]);}catch(_0x5c4daf){return BPromise[_0x37e5('0x21')](_0x5c4daf);}return _0x51834e[_0x37e5('0x22')]();};}function saveUpdates(_0x3e7e67,_0x4da53d){return function(_0x581d05){if(_0x581d05){return _0x581d05[_0x37e5('0x23')](_0x3e7e67)[_0x37e5('0x24')](function(_0x3c146a){return _0x3c146a;});}return null;};}function removeEntity(_0x247514,_0x7793c1){return function(_0x42d9ac){if(_0x42d9ac){return _0x42d9ac[_0x37e5('0x25')]()[_0x37e5('0x24')](function(){_0x247514[_0x37e5('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x571b98,_0xa8d3d){return function(_0x4322a8){if(!_0x4322a8){_0x571b98[_0x37e5('0x26')](0x194);}return _0x4322a8;};}function handleError(_0x357533,_0x3f1e5f){_0x3f1e5f=_0x3f1e5f||0x1f4;return function(_0x4f09c2){logger[_0x37e5('0x27')](_0x4f09c2[_0x37e5('0x28')]);if(_0x4f09c2[_0x37e5('0x29')]){delete _0x4f09c2[_0x37e5('0x29')];}_0x357533[_0x37e5('0x17')](_0x3f1e5f)['send'](_0x4f09c2);};}exports[_0x37e5('0x2a')]=function(_0x80a7ed,_0x10a4d0){var _0x4c90a1={},_0x3957f3={},_0x5a2752={'count':0x0,'rows':[]};var _0x14915e=_[_0x37e5('0x2b')](db[_0x37e5('0x2c')][_0x37e5('0x2d')],function(_0x1a8055){return{'name':_0x1a8055[_0x37e5('0x2e')],'type':_0x1a8055[_0x37e5('0x2f')][_0x37e5('0x30')]};});_0x3957f3[_0x37e5('0x31')]=_[_0x37e5('0x2b')](_0x14915e,_0x37e5('0x29'));_0x3957f3['query']=_[_0x37e5('0x32')](_0x80a7ed[_0x37e5('0x33')]);_0x3957f3[_0x37e5('0x34')]=_[_0x37e5('0x35')](_0x3957f3[_0x37e5('0x31')],_0x3957f3[_0x37e5('0x33')]);_0x4c90a1[_0x37e5('0x36')]=_[_0x37e5('0x35')](_0x3957f3[_0x37e5('0x31')],qs[_0x37e5('0x37')](_0x80a7ed[_0x37e5('0x33')]['fields']));_0x4c90a1['attributes']=_0x4c90a1[_0x37e5('0x36')][_0x37e5('0x38')]?_0x4c90a1[_0x37e5('0x36')]:_0x3957f3[_0x37e5('0x31')];if(!_0x80a7ed[_0x37e5('0x33')][_0x37e5('0x39')]('nolimit')){_0x4c90a1['limit']=qs[_0x37e5('0x1b')](_0x80a7ed[_0x37e5('0x33')][_0x37e5('0x1b')]);_0x4c90a1['offset']=qs[_0x37e5('0x19')](_0x80a7ed['query'][_0x37e5('0x19')]);}_0x4c90a1[_0x37e5('0x3a')]=qs[_0x37e5('0x3b')](_0x80a7ed[_0x37e5('0x33')][_0x37e5('0x3b')]);_0x4c90a1['where']=qs[_0x37e5('0x34')](_[_0x37e5('0x3c')](_0x80a7ed['query'],_0x3957f3[_0x37e5('0x34')]),_0x14915e);if(_0x80a7ed[_0x37e5('0x33')][_0x37e5('0x3d')]){_0x4c90a1[_0x37e5('0x3e')]=_[_0x37e5('0x3f')](_0x4c90a1[_0x37e5('0x3e')],{'$or':_[_0x37e5('0x2b')](_0x14915e,function(_0x125ce3){if(_0x125ce3['type']!==_0x37e5('0x40')){var _0x5d47bb={};_0x5d47bb[_0x125ce3[_0x37e5('0x29')]]={'$like':'%'+_0x80a7ed[_0x37e5('0x33')]['filter']+'%'};return _0x5d47bb;}})});}_0x4c90a1=_[_0x37e5('0x3f')]({},_0x4c90a1,_0x80a7ed[_0x37e5('0x41')]);var _0x439f20={'where':_0x4c90a1[_0x37e5('0x3e')]};return db[_0x37e5('0x2c')]['count'](_0x439f20)['then'](function(_0x4d1807){_0x5a2752['count']=_0x4d1807;if(_0x80a7ed['query'][_0x37e5('0x42')]){_0x4c90a1[_0x37e5('0x43')]=[{'all':!![]}];}return db[_0x37e5('0x2c')]['findAll'](_0x4c90a1);})[_0x37e5('0x24')](function(_0x1cd372){_0x5a2752[_0x37e5('0x44')]=_0x1cd372;return _0x5a2752;})['then'](respondWithFilteredResult(_0x10a4d0,_0x4c90a1))[_0x37e5('0x45')](handleError(_0x10a4d0,null));};exports['show']=function(_0x240fff,_0x10d188){var _0x11e377={'raw':!![],'where':{'id':_0x240fff[_0x37e5('0x46')]['id']}},_0x782c27={};_0x782c27[_0x37e5('0x31')]=_[_0x37e5('0x32')](db[_0x37e5('0x2c')]['rawAttributes']);_0x782c27['query']=_[_0x37e5('0x32')](_0x240fff[_0x37e5('0x33')]);_0x782c27[_0x37e5('0x34')]=_['intersection'](_0x782c27[_0x37e5('0x31')],_0x782c27[_0x37e5('0x33')]);_0x11e377['attributes']=_[_0x37e5('0x35')](_0x782c27[_0x37e5('0x31')],qs[_0x37e5('0x37')](_0x240fff[_0x37e5('0x33')][_0x37e5('0x37')]));_0x11e377[_0x37e5('0x36')]=_0x11e377[_0x37e5('0x36')][_0x37e5('0x38')]?_0x11e377['attributes']:_0x782c27[_0x37e5('0x31')];if(_0x240fff['query'][_0x37e5('0x42')]){_0x11e377[_0x37e5('0x43')]=[{'all':!![]}];}_0x11e377=_[_0x37e5('0x3f')]({},_0x11e377,_0x240fff[_0x37e5('0x41')]);return db[_0x37e5('0x2c')][_0x37e5('0x47')](_0x11e377)['then'](handleEntityNotFound(_0x10d188,null))[_0x37e5('0x24')](respondWithResult(_0x10d188,null))[_0x37e5('0x45')](handleError(_0x10d188,null));};exports[_0x37e5('0x48')]=function(_0x484f6a,_0x650dcd){return db[_0x37e5('0x2c')]['create'](_0x484f6a[_0x37e5('0x49')],{})[_0x37e5('0x24')](respondWithResult(_0x650dcd,0xc9))[_0x37e5('0x45')](handleError(_0x650dcd,null));};exports[_0x37e5('0x23')]=function(_0x524c21,_0x50f43c){if(_0x524c21['body']['id']){delete _0x524c21[_0x37e5('0x49')]['id'];}return db[_0x37e5('0x2c')][_0x37e5('0x47')]({'where':{'id':_0x524c21[_0x37e5('0x46')]['id']}})[_0x37e5('0x24')](handleEntityNotFound(_0x50f43c,null))[_0x37e5('0x24')](saveUpdates(_0x524c21[_0x37e5('0x49')],null))[_0x37e5('0x24')](respondWithResult(_0x50f43c,null))[_0x37e5('0x45')](handleError(_0x50f43c,null));};exports['destroy']=function(_0x2af9b5,_0x3f284e){return db[_0x37e5('0x2c')]['find']({'where':{'id':_0x2af9b5['params']['id']}})[_0x37e5('0x24')](handleEntityNotFound(_0x3f284e,null))[_0x37e5('0x24')](removeEntity(_0x3f284e,null))['catch'](handleError(_0x3f284e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04d0=['rimraf','exports','define','int_dynamics365_fields','dynamics365_unique_index','idField','FieldId','util','api','moment','bluebird','request-promise','path'];(function(_0x56303d,_0x53bf3b){var _0x1cec90=function(_0x3b329a){while(--_0x3b329a){_0x56303d['push'](_0x56303d['shift']());}};_0x1cec90(++_0x53bf3b);}(_0x04d0,0x19a));var _0x004d=function(_0x282d2f,_0x4fc227){_0x282d2f=_0x282d2f-0x0;var _0x222f69=_0x04d0[_0x282d2f];return _0x222f69;};'use strict';var _=require('lodash');var util=require(_0x004d('0x0'));var logger=require('../../config/logger')(_0x004d('0x1'));var moment=require(_0x004d('0x2'));var BPromise=require(_0x004d('0x3'));var rp=require(_0x004d('0x4'));var fs=require('fs');var path=require(_0x004d('0x5'));var rimraf=require(_0x004d('0x6'));var config=require('../../config/environment');var attributes=require('./intDynamics365Field.attributes');module[_0x004d('0x7')]=function(_0x12fba3,_0x9d3869){return _0x12fba3[_0x004d('0x8')]('Dynamics365Field',attributes,{'tableName':_0x004d('0x9'),'paranoid':![],'indexes':[{'name':_0x004d('0xa'),'fields':[_0x004d('0xb'),_0x004d('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc6cb=['util','../../config/logger','moment','path','rimraf','../../config/environment','./intDynamics365Field.attributes','exports','Dynamics365Field','int_dynamics365_fields','FieldId','lodash'];(function(_0x107f10,_0x5529f2){var _0x811cab=function(_0xc160ea){while(--_0xc160ea){_0x107f10['push'](_0x107f10['shift']());}};_0x811cab(++_0x5529f2);}(_0xc6cb,0x77));var _0xbc6c=function(_0xcb2409,_0x401674){_0xcb2409=_0xcb2409-0x0;var _0x30e960=_0xc6cb[_0xcb2409];return _0x30e960;};'use strict';var _=require(_0xbc6c('0x0'));var util=require(_0xbc6c('0x1'));var logger=require(_0xbc6c('0x2'))('api');var moment=require(_0xbc6c('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xbc6c('0x4'));var rimraf=require(_0xbc6c('0x5'));var config=require(_0xbc6c('0x6'));var attributes=require(_0xbc6c('0x7'));module[_0xbc6c('0x8')]=function(_0x348c17,_0x2ccc47){return _0x348c17['define'](_0xbc6c('0x9'),attributes,{'tableName':_0xbc6c('0xa'),'paranoid':![],'indexes':[{'name':'dynamics365_unique_index','fields':['idField',_0xbc6c('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8155=['ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','bluebird'];(function(_0x491cbe,_0x45c8ba){var _0x59449d=function(_0x21b463){while(--_0x21b463){_0x491cbe['push'](_0x491cbe['shift']());}};_0x59449d(++_0x45c8ba);}(_0x8155,0x173));var _0x5815=function(_0x482e4f,_0x3147f0){_0x482e4f=_0x482e4f-0x0;var _0x185640=_0x8155[_0x482e4f];return _0x185640;};'use strict';var _=require(_0x5815('0x0'));var util=require(_0x5815('0x1'));var moment=require('moment');var BPromise=require(_0x5815('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5815('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5815('0x4'));var logger=require(_0x5815('0x5'))(_0x5815('0x6'));var config=require(_0x5815('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5815('0x8')][_0x5815('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x42ba87,_0x18af42,_0x56a863){return new BPromise(function(_0x195596,_0x30f108){return client[_0x5815('0xa')](_0x42ba87,_0x56a863)['then'](function(_0x374daf){logger[_0x5815('0xb')](_0x5815('0xc'),_0x18af42,_0x5815('0xd'));logger[_0x5815('0xe')](_0x5815('0xf'),_0x18af42,_0x5815('0xd'),JSON[_0x5815('0x10')](_0x374daf));if(_0x374daf['error']){if(_0x374daf[_0x5815('0x11')][_0x5815('0x12')]===0x1f4){logger[_0x5815('0x11')](_0x5815('0xc'),_0x18af42,_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);return _0x30f108(_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);}logger[_0x5815('0x11')](_0x5815('0xc'),_0x18af42,_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);return _0x195596(_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);}else{logger[_0x5815('0xb')]('Dynamics365Field,\x20%s,\x20%s',_0x18af42,'request\x20sent');_0x195596(_0x374daf[_0x5815('0x14')]['message']);}})[_0x5815('0x15')](function(_0x4bce02){logger[_0x5815('0x11')](_0x5815('0xc'),_0x18af42,_0x4bce02);_0x30f108(_0x4bce02);});});}
\ No newline at end of file
+var _0xcf58=['rpc','jayson/promise','client','http','request','then','info','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','stringify','error','code','message','lodash','bluebird','ioredis','../../mysqldb','../../config/logger'];(function(_0x56b440,_0x41f1e2){var _0x2548b4=function(_0x5e3687){while(--_0x5e3687){_0x56b440['push'](_0x56b440['shift']());}};_0x2548b4(++_0x41f1e2);}(_0xcf58,0x127));var _0x8cf5=function(_0x48af1e,_0x33b850){_0x48af1e=_0x48af1e-0x0;var _0x104d5f=_0xcf58[_0x48af1e];return _0x104d5f;};'use strict';var _=require(_0x8cf5('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x8cf5('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8cf5('0x2'));var db=require(_0x8cf5('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x8cf5('0x4'))(_0x8cf5('0x5'));var config=require('../../config/environment');var jayson=require(_0x8cf5('0x6'));var client=jayson[_0x8cf5('0x7')][_0x8cf5('0x8')]({'port':0x232a});function respondWithRpcPromise(_0xdf3d39,_0x549152,_0x16baf3){return new BPromise(function(_0x4cd575,_0x402037){return client[_0x8cf5('0x9')](_0xdf3d39,_0x16baf3)[_0x8cf5('0xa')](function(_0x42f47d){logger[_0x8cf5('0xb')](_0x8cf5('0xc'),_0x549152,_0x8cf5('0xd'));logger[_0x8cf5('0xe')](_0x8cf5('0xf'),_0x549152,_0x8cf5('0xd'),JSON[_0x8cf5('0x10')](_0x42f47d));if(_0x42f47d[_0x8cf5('0x11')]){if(_0x42f47d[_0x8cf5('0x11')][_0x8cf5('0x12')]===0x1f4){logger[_0x8cf5('0x11')]('Dynamics365Field,\x20%s,\x20%s',_0x549152,_0x42f47d[_0x8cf5('0x11')][_0x8cf5('0x13')]);return _0x402037(_0x42f47d[_0x8cf5('0x11')][_0x8cf5('0x13')]);}logger[_0x8cf5('0x11')](_0x8cf5('0xc'),_0x549152,_0x42f47d[_0x8cf5('0x11')][_0x8cf5('0x13')]);return _0x4cd575(_0x42f47d['error'][_0x8cf5('0x13')]);}else{logger[_0x8cf5('0xb')](_0x8cf5('0xc'),_0x549152,_0x8cf5('0xd'));_0x4cd575(_0x42f47d['result'][_0x8cf5('0x13')]);}})['catch'](function(_0x155fa7){logger['error'](_0x8cf5('0xc'),_0x549152,_0x155fa7);_0x402037(_0x155fa7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdbf=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskAccount.controller','get','isAuthenticated','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','update','delete','exports','util','path','connect-timeout'];(function(_0x2074db,_0x10b81b){var _0x27324c=function(_0x5c3d5c){while(--_0x5c3d5c){_0x2074db['push'](_0x2074db['shift']());}};_0x27324c(++_0x10b81b);}(_0xfdbf,0x75));var _0xffdb=function(_0x56f7e2,_0x145392){_0x56f7e2=_0x56f7e2-0x0;var _0x36240b=_0xfdbf[_0x56f7e2];return _0x36240b;};'use strict';var multer=require('multer');var util=require(_0xffdb('0x0'));var path=require(_0xffdb('0x1'));var timeout=require(_0xffdb('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xffdb('0x3'));var auth=require(_0xffdb('0x4'));var interaction=require(_0xffdb('0x5'));var config=require(_0xffdb('0x6'));var controller=require(_0xffdb('0x7'));router[_0xffdb('0x8')]('/',auth[_0xffdb('0x9')](),controller['index']);router[_0xffdb('0x8')](_0xffdb('0xa'),auth[_0xffdb('0x9')](),controller['show']);router[_0xffdb('0x8')](_0xffdb('0xb'),auth['isAuthenticated'](),controller[_0xffdb('0xc')]);router[_0xffdb('0x8')](_0xffdb('0xd'),auth['isAuthenticated'](),controller[_0xffdb('0xe')]);router[_0xffdb('0xf')]('/',auth[_0xffdb('0x9')](),controller['create']);router[_0xffdb('0xf')](_0xffdb('0xb'),auth[_0xffdb('0x9')](),controller[_0xffdb('0x10')]);router['put'](_0xffdb('0xa'),auth[_0xffdb('0x9')](),controller[_0xffdb('0x11')]);router[_0xffdb('0x12')](_0xffdb('0xa'),auth[_0xffdb('0x9')](),controller['destroy']);module[_0xffdb('0x13')]=router;
\ No newline at end of file
+var _0x5d5c=['isAuthenticated','index','/:id','/:id/configurations','getConfigurations','get','getFields','post','create','addConfiguration','put','delete','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intFreshdeskAccount.controller'];(function(_0x1223bb,_0x3f2f16){var _0x18a315=function(_0x4cfc01){while(--_0x4cfc01){_0x1223bb['push'](_0x1223bb['shift']());}};_0x18a315(++_0x3f2f16);}(_0x5d5c,0x12b));var _0xc5d5=function(_0x1c406b,_0x556cbd){_0x1c406b=_0x1c406b-0x0;var _0x7e56ff=_0x5d5c[_0x1c406b];return _0x7e56ff;};'use strict';var multer=require(_0xc5d5('0x0'));var util=require(_0xc5d5('0x1'));var path=require('path');var timeout=require(_0xc5d5('0x2'));var express=require(_0xc5d5('0x3'));var router=express[_0xc5d5('0x4')]();var fs_extra=require(_0xc5d5('0x5'));var auth=require(_0xc5d5('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xc5d5('0x7'));var controller=require(_0xc5d5('0x8'));router['get']('/',auth[_0xc5d5('0x9')](),controller[_0xc5d5('0xa')]);router['get'](_0xc5d5('0xb'),auth[_0xc5d5('0x9')](),controller['show']);router['get'](_0xc5d5('0xc'),auth[_0xc5d5('0x9')](),controller[_0xc5d5('0xd')]);router[_0xc5d5('0xe')]('/:id/fields',auth[_0xc5d5('0x9')](),controller[_0xc5d5('0xf')]);router[_0xc5d5('0x10')]('/',auth[_0xc5d5('0x9')](),controller[_0xc5d5('0x11')]);router['post'](_0xc5d5('0xc'),auth['isAuthenticated'](),controller[_0xc5d5('0x12')]);router[_0xc5d5('0x13')]('/:id',auth[_0xc5d5('0x9')](),controller['update']);router[_0xc5d5('0x14')](_0xc5d5('0xb'),auth[_0xc5d5('0x9')](),controller['destroy']);module[_0xc5d5('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda2d=['exports','STRING','username'];(function(_0x248604,_0x635589){var _0x5f227b=function(_0x6fd61f){while(--_0x6fd61f){_0x248604['push'](_0x248604['shift']());}};_0x5f227b(++_0x635589);}(_0xda2d,0x102));var _0xdda2=function(_0x59eba9,_0x5b492b){_0x59eba9=_0x59eba9-0x0;var _0x367c38=_0xda2d[_0x59eba9];return _0x367c38;};'use strict';var Sequelize=require('sequelize');module[_0xdda2('0x0')]={'name':{'type':Sequelize[_0xdda2('0x1')]},'description':{'type':Sequelize[_0xdda2('0x1')]},'username':{'type':Sequelize[_0xdda2('0x1')],'unique':_0xdda2('0x2')},'apiKey':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING'],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0xdda2('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0x0424=['username','STRING'];(function(_0x1af577,_0x1bd440){var _0x18ec4f=function(_0x4c9f95){while(--_0x4c9f95){_0x1af577['push'](_0x1af577['shift']());}};_0x18ec4f(++_0x1bd440);}(_0x0424,0x159));var _0x4042=function(_0x4a4a43,_0x115ccf){_0x4a4a43=_0x4a4a43-0x0;var _0x5893a6=_0x0424[_0x4a4a43];return _0x5893a6;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x4042('0x0')]},'description':{'type':Sequelize[_0x4042('0x0')]},'username':{'type':Sequelize[_0x4042('0x0')],'unique':_0x4042('0x1')},'apiKey':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x4042('0x0')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa68c=['includeAll','findAll','rows','catch','params','include','create','body','destroy','getConfigurations','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskConfiguration','FreshdeskField','remoteUri','GET','format','%s/%s','Basic\x20%s','%s:X','apiKey','toString','base64','requester','subject','agent','priority','source','ticket_type','group','company','remove','default','custom_text','label','choices','capitalize','test','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','offset','undefined','limit','count','status','Content-Range','json','reject','save','update','then','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options'];(function(_0xf0bcac,_0x531755){var _0x4e4c65=function(_0x35a77a){while(--_0x35a77a){_0xf0bcac['push'](_0xf0bcac['shift']());}};_0x4e4c65(++_0x531755);}(_0xa68c,0x187));var _0xca68=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xa68c[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0xca68('0x0'));var rimraf=require(_0xca68('0x1'));var zipdir=require(_0xca68('0x2'));var jsonpatch=require(_0xca68('0x3'));var rp=require(_0xca68('0x4'));var moment=require(_0xca68('0x5'));var BPromise=require(_0xca68('0x6'));var Mustache=require(_0xca68('0x7'));var util=require(_0xca68('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xca68('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xca68('0xa'));var _=require(_0xca68('0xb'));var squel=require(_0xca68('0xc'));var crypto=require(_0xca68('0xd'));var jsforce=require(_0xca68('0xe'));var deskjs=require(_0xca68('0xf'));var toCsv=require(_0xca68('0x9'));var querystring=require(_0xca68('0x10'));var Papa=require(_0xca68('0x11'));var Redis=require(_0xca68('0x12'));var authService=require(_0xca68('0x13'));var qs=require(_0xca68('0x14'));var as=require(_0xca68('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xca68('0x16'));var utils=require(_0xca68('0x17'));var config=require(_0xca68('0x18'));var licenseUtil=require(_0xca68('0x19'));var db=require(_0xca68('0x1a'))['db'];var integrations=require(_0xca68('0x1b'));function respondWithStatusCode(_0x4cc845,_0x221af9){_0x221af9=_0x221af9||0xcc;return function(_0x109996){if(_0x109996){return _0x4cc845[_0xca68('0x1c')](_0x221af9);}return _0x4cc845['status'](_0x221af9)[_0xca68('0x1d')]();};}function respondWithResult(_0x4944db,_0x1eee82){_0x1eee82=_0x1eee82||0xc8;return function(_0x1d5ef1){if(_0x1d5ef1){return _0x4944db['status'](_0x1eee82)['json'](_0x1d5ef1);}};}function respondWithFilteredResult(_0x2cb440,_0x252712){return function(_0x38d443){if(_0x38d443){var _0xce1268=typeof _0x252712[_0xca68('0x1e')]===_0xca68('0x1f')&&typeof _0x252712[_0xca68('0x20')]===_0xca68('0x1f');var _0x180edb=_0x38d443[_0xca68('0x21')];var _0x9221a5=_0xce1268?0x0:_0x252712[_0xca68('0x1e')];var _0x30e34f=_0xce1268?_0x38d443[_0xca68('0x21')]:_0x252712[_0xca68('0x1e')]+_0x252712[_0xca68('0x20')];var _0x5d5ac3;if(_0x30e34f>=_0x180edb){_0x30e34f=_0x180edb;_0x5d5ac3=0xc8;}else{_0x5d5ac3=0xce;}_0x2cb440[_0xca68('0x22')](_0x5d5ac3);return _0x2cb440['set'](_0xca68('0x23'),_0x9221a5+'-'+_0x30e34f+'/'+_0x180edb)[_0xca68('0x24')](_0x38d443);}return null;};}function patchUpdates(_0x27b1a2){return function(_0x4aeac7){try{jsonpatch['apply'](_0x4aeac7,_0x27b1a2,!![]);}catch(_0x58855b){return BPromise[_0xca68('0x25')](_0x58855b);}return _0x4aeac7[_0xca68('0x26')]();};}function saveUpdates(_0x39f8ee,_0x441a4e){return function(_0x1efd64){if(_0x1efd64){return _0x1efd64[_0xca68('0x27')](_0x39f8ee)[_0xca68('0x28')](function(_0x5d1891){return _0x5d1891;});}return null;};}function removeEntity(_0x1b2f41,_0x26628c){return function(_0x17f0c7){if(_0x17f0c7){return _0x17f0c7['destroy']()['then'](function(){_0x1b2f41[_0xca68('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5d8279,_0x28b801){return function(_0x55af0b){if(!_0x55af0b){_0x5d8279[_0xca68('0x1c')](0x194);}return _0x55af0b;};}function handleError(_0x1ca374,_0x2ebfe0){_0x2ebfe0=_0x2ebfe0||0x1f4;return function(_0x4f059c){logger[_0xca68('0x29')](_0x4f059c[_0xca68('0x2a')]);if(_0x4f059c[_0xca68('0x2b')]){delete _0x4f059c[_0xca68('0x2b')];}_0x1ca374[_0xca68('0x22')](_0x2ebfe0)[_0xca68('0x2c')](_0x4f059c);};}exports[_0xca68('0x2d')]=function(_0x141aa2,_0x553469){var _0x51bd6f={},_0x44b5f3={},_0x5e0f3b={'count':0x0,'rows':[]};var _0x3b01df=_[_0xca68('0x2e')](db[_0xca68('0x2f')][_0xca68('0x30')],function(_0x438cf4){return{'name':_0x438cf4[_0xca68('0x31')],'type':_0x438cf4[_0xca68('0x32')]['key']};});_0x44b5f3[_0xca68('0x33')]=_[_0xca68('0x2e')](_0x3b01df,_0xca68('0x2b'));_0x44b5f3[_0xca68('0x34')]=_[_0xca68('0x35')](_0x141aa2[_0xca68('0x34')]);_0x44b5f3[_0xca68('0x36')]=_['intersection'](_0x44b5f3['model'],_0x44b5f3[_0xca68('0x34')]);_0x51bd6f[_0xca68('0x37')]=_[_0xca68('0x38')](_0x44b5f3[_0xca68('0x33')],qs[_0xca68('0x39')](_0x141aa2['query']['fields']));_0x51bd6f[_0xca68('0x37')]=_0x51bd6f[_0xca68('0x37')][_0xca68('0x3a')]?_0x51bd6f[_0xca68('0x37')]:_0x44b5f3[_0xca68('0x33')];if(!_0x141aa2[_0xca68('0x34')][_0xca68('0x3b')](_0xca68('0x3c'))){_0x51bd6f[_0xca68('0x20')]=qs[_0xca68('0x20')](_0x141aa2[_0xca68('0x34')]['limit']);_0x51bd6f[_0xca68('0x1e')]=qs[_0xca68('0x1e')](_0x141aa2[_0xca68('0x34')][_0xca68('0x1e')]);}_0x51bd6f[_0xca68('0x3d')]=qs[_0xca68('0x3e')](_0x141aa2['query'][_0xca68('0x3e')]);_0x51bd6f[_0xca68('0x3f')]=qs['filters'](_[_0xca68('0x40')](_0x141aa2['query'],_0x44b5f3[_0xca68('0x36')]),_0x3b01df);if(_0x141aa2[_0xca68('0x34')]['filter']){_0x51bd6f[_0xca68('0x3f')]=_[_0xca68('0x41')](_0x51bd6f[_0xca68('0x3f')],{'$or':_[_0xca68('0x2e')](_0x3b01df,function(_0x3132b0){if(_0x3132b0['type']!==_0xca68('0x42')){var _0x1ab056={};_0x1ab056[_0x3132b0['name']]={'$like':'%'+_0x141aa2[_0xca68('0x34')][_0xca68('0x43')]+'%'};return _0x1ab056;}})});}_0x51bd6f=_[_0xca68('0x41')]({},_0x51bd6f,_0x141aa2[_0xca68('0x44')]);var _0xc49648={'where':_0x51bd6f[_0xca68('0x3f')]};return db['FreshdeskAccount']['count'](_0xc49648)['then'](function(_0x802506){_0x5e0f3b['count']=_0x802506;if(_0x141aa2[_0xca68('0x34')][_0xca68('0x45')]){_0x51bd6f['include']=[{'all':!![]}];}return db[_0xca68('0x2f')][_0xca68('0x46')](_0x51bd6f);})[_0xca68('0x28')](function(_0x449f97){_0x5e0f3b[_0xca68('0x47')]=_0x449f97;return _0x5e0f3b;})[_0xca68('0x28')](respondWithFilteredResult(_0x553469,_0x51bd6f))[_0xca68('0x48')](handleError(_0x553469,null));};exports['show']=function(_0x5f105c,_0x3269aa){var _0xd1f72={'raw':![],'where':{'id':_0x5f105c[_0xca68('0x49')]['id']}},_0x512e2e={};_0x512e2e[_0xca68('0x33')]=_[_0xca68('0x35')](db['FreshdeskAccount'][_0xca68('0x30')]);_0x512e2e[_0xca68('0x34')]=_[_0xca68('0x35')](_0x5f105c['query']);_0x512e2e[_0xca68('0x36')]=_[_0xca68('0x38')](_0x512e2e[_0xca68('0x33')],_0x512e2e[_0xca68('0x34')]);_0xd1f72[_0xca68('0x37')]=_[_0xca68('0x38')](_0x512e2e['model'],qs[_0xca68('0x39')](_0x5f105c['query'][_0xca68('0x39')]));_0xd1f72['attributes']=_0xd1f72[_0xca68('0x37')][_0xca68('0x3a')]?_0xd1f72[_0xca68('0x37')]:_0x512e2e['model'];if(_0x5f105c[_0xca68('0x34')][_0xca68('0x45')]){_0xd1f72[_0xca68('0x4a')]=[{'all':!![]}];}_0xd1f72=_['merge']({},_0xd1f72,_0x5f105c[_0xca68('0x44')]);return db[_0xca68('0x2f')]['find'](_0xd1f72)['then'](handleEntityNotFound(_0x3269aa,null))['then'](respondWithResult(_0x3269aa,null))['catch'](handleError(_0x3269aa,null));};exports[_0xca68('0x4b')]=function(_0x1f3f96,_0x31219e){return db['FreshdeskAccount']['create'](_0x1f3f96[_0xca68('0x4c')],{})[_0xca68('0x28')](respondWithResult(_0x31219e,0xc9))[_0xca68('0x48')](handleError(_0x31219e,null));};exports[_0xca68('0x27')]=function(_0x40cef9,_0x20c6ea){if(_0x40cef9[_0xca68('0x4c')]['id']){delete _0x40cef9[_0xca68('0x4c')]['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x40cef9[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x20c6ea,null))['then'](saveUpdates(_0x40cef9['body'],null))[_0xca68('0x28')](respondWithResult(_0x20c6ea,null))['catch'](handleError(_0x20c6ea,null));};exports[_0xca68('0x4d')]=function(_0x4670ed,_0x5b2cff){return db['FreshdeskAccount']['find']({'where':{'id':_0x4670ed[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x5b2cff,null))['then'](removeEntity(_0x5b2cff,null))[_0xca68('0x48')](handleError(_0x5b2cff,null));};exports[_0xca68('0x4e')]=function(_0x134736,_0x1c4d0a,_0x1b8867){var _0x414c62={};var _0x3713c6={};var _0xb13cd;var _0x10a31f;return db[_0xca68('0x2f')]['findOne']({'where':{'id':_0x134736[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x1c4d0a,null))[_0xca68('0x28')](function(_0x2fa868){if(_0x2fa868){_0xb13cd=_0x2fa868;_0x3713c6[_0xca68('0x33')]=_[_0xca68('0x35')](db['FreshdeskConfiguration'][_0xca68('0x30')]);_0x3713c6[_0xca68('0x34')]=_[_0xca68('0x35')](_0x134736[_0xca68('0x34')]);_0x3713c6[_0xca68('0x36')]=_[_0xca68('0x38')](_0x3713c6['model'],_0x3713c6[_0xca68('0x34')]);_0x414c62[_0xca68('0x37')]=_['intersection'](_0x3713c6['model'],qs[_0xca68('0x39')](_0x134736[_0xca68('0x34')]['fields']));_0x414c62[_0xca68('0x37')]=_0x414c62[_0xca68('0x37')][_0xca68('0x3a')]?_0x414c62['attributes']:_0x3713c6['model'];_0x414c62[_0xca68('0x3d')]=qs[_0xca68('0x3e')](_0x134736['query'][_0xca68('0x3e')]);_0x414c62[_0xca68('0x3f')]=qs[_0xca68('0x36')](_[_0xca68('0x40')](_0x134736['query'],_0x3713c6['filters']));if(_0x134736[_0xca68('0x34')]['filter']){_0x414c62['where']=_['merge'](_0x414c62[_0xca68('0x3f')],{'$or':_[_0xca68('0x2e')](_0x414c62[_0xca68('0x37')],function(_0x35b592){var _0xc00d0d={};_0xc00d0d[_0x35b592]={'$like':'%'+_0x134736[_0xca68('0x34')][_0xca68('0x43')]+'%'};return _0xc00d0d;})});}_0x414c62=_['merge']({},_0x414c62,_0x134736[_0xca68('0x44')]);return _0xb13cd['getConfigurations'](_0x414c62);}})[_0xca68('0x28')](function(_0x12070f){if(_0x12070f){_0x10a31f=_0x12070f[_0xca68('0x3a')];if(!_0x134736[_0xca68('0x34')][_0xca68('0x3b')]('nolimit')){_0x414c62[_0xca68('0x20')]=qs['limit'](_0x134736[_0xca68('0x34')][_0xca68('0x20')]);_0x414c62[_0xca68('0x1e')]=qs['offset'](_0x134736['query'][_0xca68('0x1e')]);}return _0xb13cd[_0xca68('0x4e')](_0x414c62);}})[_0xca68('0x28')](function(_0x29afac){if(_0x29afac){return _0x29afac?{'count':_0x10a31f,'rows':_0x29afac}:null;}})[_0xca68('0x28')](respondWithResult(_0x1c4d0a,null))['catch'](handleError(_0x1c4d0a,null));};exports[_0xca68('0x4f')]=function(_0x11a4c7,_0x43a6a0,_0x705a0e){if(_0x11a4c7[_0xca68('0x4c')]['id']){delete _0x11a4c7[_0xca68('0x4c')]['id'];}return db[_0xca68('0x2f')][_0xca68('0x50')]({'where':{'id':_0x11a4c7[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x43a6a0,null))['then'](function(_0x21f50e){if(_0x21f50e){_0x11a4c7[_0xca68('0x4c')][_0xca68('0x51')]=_0x21f50e['id'];_0x11a4c7['body'][_0xca68('0x52')]=integrations[_0xca68('0x53')](_0x11a4c7[_0xca68('0x4c')][_0xca68('0x54')],_0x11a4c7['body'][_0xca68('0x32')]);_0x11a4c7[_0xca68('0x4c')][_0xca68('0x55')]=integrations[_0xca68('0x56')](_0x11a4c7['body'][_0xca68('0x54')],_0x11a4c7[_0xca68('0x4c')][_0xca68('0x32')]);return db[_0xca68('0x57')]['create'](_0x11a4c7[_0xca68('0x4c')],{'include':[{'model':db[_0xca68('0x58')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':_0xca68('0x55')}]});}return null;})[_0xca68('0x28')](respondWithResult(_0x43a6a0,null))[_0xca68('0x48')](handleError(_0x43a6a0,null));};exports['getFields']=function(_0x25ce17,_0x48678f,_0x411fe5){var _0x195a2f='';return db['FreshdeskAccount']['findOne']({'where':{'id':_0x25ce17[_0xca68('0x49')]['id']},'attributes':['id',_0xca68('0x59'),'apiKey']})[_0xca68('0x28')](handleEntityNotFound(_0x48678f,null))[_0xca68('0x28')](function(_0x645396){if(_0x645396){_0x195a2f=_0x645396[_0xca68('0x59')];var _0x200803=_0x195a2f['slice'](-0x1);if(_0x200803==='/'){_0x195a2f=_0x195a2f['substring'](0x0,_0x195a2f['lastIndexOf'](_0x200803));}return rp({'method':_0xca68('0x5a'),'uri':util[_0xca68('0x5b')](_0xca68('0x5c'),_0x195a2f,'api/v2/ticket_fields'),'headers':{'Authorization':util['format'](_0xca68('0x5d'),new Buffer(util['format'](_0xca68('0x5e'),_0x645396[_0xca68('0x5f')]))[_0xca68('0x60')](_0xca68('0x61')))},'json':!![]});}})[_0xca68('0x28')](function(_0x1ffa11){if(_0x1ffa11){var _0x280fcb=[_0xca68('0x62'),_0xca68('0x63'),_0xca68('0x64'),'description','status',_0xca68('0x65'),'group',_0xca68('0x66'),_0xca68('0x67'),_0xca68('0x68'),_0xca68('0x69')];_[_0xca68('0x6a')](_0x1ffa11,function(_0x2c0651){return _0x280fcb['includes'](_0x2c0651[_0xca68('0x2b')])||!_0x2c0651[_0xca68('0x6b')]&&_0x2c0651[_0xca68('0x32')]!==_0xca68('0x6c')&&_0x2c0651[_0xca68('0x32')]!=='custom_dropdown';});return{'count':_0x1ffa11[_0xca68('0x3a')],'rows':_[_0xca68('0x2e')](_0x1ffa11,function(_0x5bfb2a){return{'id':_0x5bfb2a['name'],'name':_0x5bfb2a[_0xca68('0x6d')],'custom':!_0x5bfb2a[_0xca68('0x6b')],'options':_0x5bfb2a[_0xca68('0x6e')]?_[_0xca68('0x2e')](_0x5bfb2a[_0xca68('0x6e')],function(_0x2b4679){return{'name':_[_0xca68('0x6f')](_0x2b4679),'value':_0x2b4679};}):[]};})};}})[_0xca68('0x28')](respondWithResult(_0x48678f,null))['catch'](function(_0x342093){var _0x4b515d=_0x25ce17[_0xca68('0x34')][_0xca68('0x70')]?0x1f4:_0x342093['statusCode']||0x1f4;logger[_0xca68('0x29')](_0xca68('0x71'),'getFields',_0x4b515d,JSON[_0xca68('0x72')](_0x342093));delete _0x342093['name'];if(_0x4b515d===0x191){_0x4b515d=0x190;}_0x48678f[_0xca68('0x22')](_0x4b515d)['send'](_0x25ce17['query'][_0xca68('0x70')]?{'message':'Wrong\x20credentials','statusCode':_0x342093['statusCode']}:_0x342093);});};
\ No newline at end of file
+var _0xcd31=['choices','capitalize','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','json','count','offset','limit','status','set','apply','save','destroy','then','name','send','index','FreshdeskAccount','rawAttributes','fieldName','type','model','map','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','filters','pick','merge','VIRTUAL','filter','includeAll','show','include','options','find','create','body','catch','params','getConfigurations','length','order','addConfiguration','findOne','AccountId','getSubjects','channel','Descriptions','getDescriptions','FreshdeskConfiguration','FreshdeskField','Subjects','getFields','remoteUri','slice','lastIndexOf','GET','format','%s/%s','Basic\x20%s','%s:X','apiKey','base64','requester','agent','description','priority','source','ticket_type','group','company','includes','default','custom_text','custom_dropdown','label'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xcd31,0x15d));var _0x1cd3=function(_0x188856,_0x180b4d){_0x188856=_0x188856-0x0;var _0x57fa26=_0xcd31[_0x188856];return _0x57fa26;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1cd3('0x0'));var zipdir=require(_0x1cd3('0x1'));var jsonpatch=require(_0x1cd3('0x2'));var rp=require('request-promise');var moment=require(_0x1cd3('0x3'));var BPromise=require(_0x1cd3('0x4'));var Mustache=require(_0x1cd3('0x5'));var util=require(_0x1cd3('0x6'));var path=require(_0x1cd3('0x7'));var sox=require(_0x1cd3('0x8'));var csv=require('to-csv');var ejs=require(_0x1cd3('0x9'));var fs=require('fs');var fs_extra=require(_0x1cd3('0xa'));var _=require(_0x1cd3('0xb'));var squel=require('squel');var crypto=require(_0x1cd3('0xc'));var jsforce=require(_0x1cd3('0xd'));var deskjs=require(_0x1cd3('0xe'));var toCsv=require('to-csv');var querystring=require(_0x1cd3('0xf'));var Papa=require(_0x1cd3('0x10'));var Redis=require(_0x1cd3('0x11'));var authService=require(_0x1cd3('0x12'));var qs=require(_0x1cd3('0x13'));var as=require(_0x1cd3('0x14'));var hardwareService=require(_0x1cd3('0x15'));var logger=require('../../config/logger')(_0x1cd3('0x16'));var utils=require(_0x1cd3('0x17'));var config=require(_0x1cd3('0x18'));var licenseUtil=require(_0x1cd3('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0x1cd3('0x1a'));function respondWithStatusCode(_0x4c9c6d,_0x41016f){_0x41016f=_0x41016f||0xcc;return function(_0x35a9ae){if(_0x35a9ae){return _0x4c9c6d[_0x1cd3('0x1b')](_0x41016f);}return _0x4c9c6d['status'](_0x41016f)['end']();};}function respondWithResult(_0x1a874c,_0x1def57){_0x1def57=_0x1def57||0xc8;return function(_0x41585f){if(_0x41585f){return _0x1a874c['status'](_0x1def57)[_0x1cd3('0x1c')](_0x41585f);}};}function respondWithFilteredResult(_0x40cbbf,_0x5a2b84){return function(_0x418da3){if(_0x418da3){var _0x576d7a=typeof _0x5a2b84['offset']==='undefined'&&typeof _0x5a2b84['limit']==='undefined';var _0x5acebb=_0x418da3[_0x1cd3('0x1d')];var _0x40a85e=_0x576d7a?0x0:_0x5a2b84[_0x1cd3('0x1e')];var _0xc3f461=_0x576d7a?_0x418da3[_0x1cd3('0x1d')]:_0x5a2b84[_0x1cd3('0x1e')]+_0x5a2b84[_0x1cd3('0x1f')];var _0x2d4f05;if(_0xc3f461>=_0x5acebb){_0xc3f461=_0x5acebb;_0x2d4f05=0xc8;}else{_0x2d4f05=0xce;}_0x40cbbf[_0x1cd3('0x20')](_0x2d4f05);return _0x40cbbf[_0x1cd3('0x21')]('Content-Range',_0x40a85e+'-'+_0xc3f461+'/'+_0x5acebb)[_0x1cd3('0x1c')](_0x418da3);}return null;};}function patchUpdates(_0x2368b3){return function(_0x58f10e){try{jsonpatch[_0x1cd3('0x22')](_0x58f10e,_0x2368b3,!![]);}catch(_0x1ec1b4){return BPromise['reject'](_0x1ec1b4);}return _0x58f10e[_0x1cd3('0x23')]();};}function saveUpdates(_0x159d22,_0x330741){return function(_0x2d5e9a){if(_0x2d5e9a){return _0x2d5e9a['update'](_0x159d22)['then'](function(_0x29ff8c){return _0x29ff8c;});}return null;};}function removeEntity(_0x1a6dad,_0x49c7b1){return function(_0x578cab){if(_0x578cab){return _0x578cab[_0x1cd3('0x24')]()[_0x1cd3('0x25')](function(){_0x1a6dad['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x34b15f,_0x1589fa){return function(_0x5ca367){if(!_0x5ca367){_0x34b15f['sendStatus'](0x194);}return _0x5ca367;};}function handleError(_0x1c86f6,_0xc311a9){_0xc311a9=_0xc311a9||0x1f4;return function(_0x3161d4){logger['error'](_0x3161d4['stack']);if(_0x3161d4[_0x1cd3('0x26')]){delete _0x3161d4['name'];}_0x1c86f6[_0x1cd3('0x20')](_0xc311a9)[_0x1cd3('0x27')](_0x3161d4);};}exports[_0x1cd3('0x28')]=function(_0x4b7c0b,_0xae9d0c){var _0x53979a={},_0x47578c={},_0x3e3afb={'count':0x0,'rows':[]};var _0x1eb3c8=_['map'](db[_0x1cd3('0x29')][_0x1cd3('0x2a')],function(_0x3d4963){return{'name':_0x3d4963[_0x1cd3('0x2b')],'type':_0x3d4963[_0x1cd3('0x2c')]['key']};});_0x47578c[_0x1cd3('0x2d')]=_[_0x1cd3('0x2e')](_0x1eb3c8,_0x1cd3('0x26'));_0x47578c[_0x1cd3('0x2f')]=_[_0x1cd3('0x30')](_0x4b7c0b[_0x1cd3('0x2f')]);_0x47578c['filters']=_[_0x1cd3('0x31')](_0x47578c[_0x1cd3('0x2d')],_0x47578c['query']);_0x53979a['attributes']=_[_0x1cd3('0x31')](_0x47578c[_0x1cd3('0x2d')],qs[_0x1cd3('0x32')](_0x4b7c0b[_0x1cd3('0x2f')][_0x1cd3('0x32')]));_0x53979a['attributes']=_0x53979a[_0x1cd3('0x33')]['length']?_0x53979a['attributes']:_0x47578c[_0x1cd3('0x2d')];if(!_0x4b7c0b[_0x1cd3('0x2f')][_0x1cd3('0x34')](_0x1cd3('0x35'))){_0x53979a['limit']=qs[_0x1cd3('0x1f')](_0x4b7c0b['query'][_0x1cd3('0x1f')]);_0x53979a[_0x1cd3('0x1e')]=qs[_0x1cd3('0x1e')](_0x4b7c0b[_0x1cd3('0x2f')]['offset']);}_0x53979a['order']=qs[_0x1cd3('0x36')](_0x4b7c0b['query'][_0x1cd3('0x36')]);_0x53979a[_0x1cd3('0x37')]=qs[_0x1cd3('0x38')](_[_0x1cd3('0x39')](_0x4b7c0b[_0x1cd3('0x2f')],_0x47578c['filters']),_0x1eb3c8);if(_0x4b7c0b['query']['filter']){_0x53979a['where']=_[_0x1cd3('0x3a')](_0x53979a['where'],{'$or':_[_0x1cd3('0x2e')](_0x1eb3c8,function(_0x4bd829){if(_0x4bd829[_0x1cd3('0x2c')]!==_0x1cd3('0x3b')){var _0x50c574={};_0x50c574[_0x4bd829[_0x1cd3('0x26')]]={'$like':'%'+_0x4b7c0b[_0x1cd3('0x2f')][_0x1cd3('0x3c')]+'%'};return _0x50c574;}})});}_0x53979a=_['merge']({},_0x53979a,_0x4b7c0b['options']);var _0x2d4fa7={'where':_0x53979a[_0x1cd3('0x37')]};return db[_0x1cd3('0x29')][_0x1cd3('0x1d')](_0x2d4fa7)[_0x1cd3('0x25')](function(_0x2fd106){_0x3e3afb[_0x1cd3('0x1d')]=_0x2fd106;if(_0x4b7c0b[_0x1cd3('0x2f')][_0x1cd3('0x3d')]){_0x53979a['include']=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x53979a);})[_0x1cd3('0x25')](function(_0x1da815){_0x3e3afb['rows']=_0x1da815;return _0x3e3afb;})[_0x1cd3('0x25')](respondWithFilteredResult(_0xae9d0c,_0x53979a))['catch'](handleError(_0xae9d0c,null));};exports[_0x1cd3('0x3e')]=function(_0x2f6a00,_0x2109a2){var _0x326f08={'raw':![],'where':{'id':_0x2f6a00['params']['id']}},_0x48f5ee={};_0x48f5ee['model']=_[_0x1cd3('0x30')](db['FreshdeskAccount']['rawAttributes']);_0x48f5ee[_0x1cd3('0x2f')]=_['keys'](_0x2f6a00[_0x1cd3('0x2f')]);_0x48f5ee[_0x1cd3('0x38')]=_[_0x1cd3('0x31')](_0x48f5ee[_0x1cd3('0x2d')],_0x48f5ee[_0x1cd3('0x2f')]);_0x326f08[_0x1cd3('0x33')]=_[_0x1cd3('0x31')](_0x48f5ee[_0x1cd3('0x2d')],qs['fields'](_0x2f6a00[_0x1cd3('0x2f')][_0x1cd3('0x32')]));_0x326f08[_0x1cd3('0x33')]=_0x326f08['attributes']['length']?_0x326f08[_0x1cd3('0x33')]:_0x48f5ee[_0x1cd3('0x2d')];if(_0x2f6a00[_0x1cd3('0x2f')][_0x1cd3('0x3d')]){_0x326f08[_0x1cd3('0x3f')]=[{'all':!![]}];}_0x326f08=_[_0x1cd3('0x3a')]({},_0x326f08,_0x2f6a00[_0x1cd3('0x40')]);return db['FreshdeskAccount'][_0x1cd3('0x41')](_0x326f08)[_0x1cd3('0x25')](handleEntityNotFound(_0x2109a2,null))[_0x1cd3('0x25')](respondWithResult(_0x2109a2,null))['catch'](handleError(_0x2109a2,null));};exports['create']=function(_0x2605c5,_0x105ddc){return db[_0x1cd3('0x29')][_0x1cd3('0x42')](_0x2605c5[_0x1cd3('0x43')],{})['then'](respondWithResult(_0x105ddc,0xc9))['catch'](handleError(_0x105ddc,null));};exports['update']=function(_0x3cde0b,_0x16f16c){if(_0x3cde0b[_0x1cd3('0x43')]['id']){delete _0x3cde0b[_0x1cd3('0x43')]['id'];}return db[_0x1cd3('0x29')]['find']({'where':{'id':_0x3cde0b['params']['id']}})[_0x1cd3('0x25')](handleEntityNotFound(_0x16f16c,null))[_0x1cd3('0x25')](saveUpdates(_0x3cde0b['body'],null))[_0x1cd3('0x25')](respondWithResult(_0x16f16c,null))[_0x1cd3('0x44')](handleError(_0x16f16c,null));};exports[_0x1cd3('0x24')]=function(_0x5c7d9c,_0x4ddfba){return db[_0x1cd3('0x29')]['find']({'where':{'id':_0x5c7d9c[_0x1cd3('0x45')]['id']}})[_0x1cd3('0x25')](handleEntityNotFound(_0x4ddfba,null))[_0x1cd3('0x25')](removeEntity(_0x4ddfba,null))[_0x1cd3('0x44')](handleError(_0x4ddfba,null));};exports[_0x1cd3('0x46')]=function(_0xfaecf0,_0x361bb2,_0x2a2a30){var _0x5734f0={};var _0x251822={};var _0xa261fc;var _0xbd4ea2;return db[_0x1cd3('0x29')]['findOne']({'where':{'id':_0xfaecf0[_0x1cd3('0x45')]['id']}})[_0x1cd3('0x25')](handleEntityNotFound(_0x361bb2,null))[_0x1cd3('0x25')](function(_0x4a493a){if(_0x4a493a){_0xa261fc=_0x4a493a;_0x251822['model']=_[_0x1cd3('0x30')](db['FreshdeskConfiguration'][_0x1cd3('0x2a')]);_0x251822[_0x1cd3('0x2f')]=_[_0x1cd3('0x30')](_0xfaecf0[_0x1cd3('0x2f')]);_0x251822['filters']=_[_0x1cd3('0x31')](_0x251822[_0x1cd3('0x2d')],_0x251822[_0x1cd3('0x2f')]);_0x5734f0[_0x1cd3('0x33')]=_['intersection'](_0x251822[_0x1cd3('0x2d')],qs[_0x1cd3('0x32')](_0xfaecf0['query']['fields']));_0x5734f0[_0x1cd3('0x33')]=_0x5734f0['attributes'][_0x1cd3('0x47')]?_0x5734f0[_0x1cd3('0x33')]:_0x251822[_0x1cd3('0x2d')];_0x5734f0[_0x1cd3('0x48')]=qs[_0x1cd3('0x36')](_0xfaecf0[_0x1cd3('0x2f')][_0x1cd3('0x36')]);_0x5734f0['where']=qs[_0x1cd3('0x38')](_[_0x1cd3('0x39')](_0xfaecf0[_0x1cd3('0x2f')],_0x251822[_0x1cd3('0x38')]));if(_0xfaecf0[_0x1cd3('0x2f')][_0x1cd3('0x3c')]){_0x5734f0[_0x1cd3('0x37')]=_[_0x1cd3('0x3a')](_0x5734f0[_0x1cd3('0x37')],{'$or':_[_0x1cd3('0x2e')](_0x5734f0[_0x1cd3('0x33')],function(_0x1c01e2){var _0x3d7bca={};_0x3d7bca[_0x1c01e2]={'$like':'%'+_0xfaecf0['query'][_0x1cd3('0x3c')]+'%'};return _0x3d7bca;})});}_0x5734f0=_['merge']({},_0x5734f0,_0xfaecf0[_0x1cd3('0x40')]);return _0xa261fc[_0x1cd3('0x46')](_0x5734f0);}})[_0x1cd3('0x25')](function(_0x4ee36a){if(_0x4ee36a){_0xbd4ea2=_0x4ee36a[_0x1cd3('0x47')];if(!_0xfaecf0[_0x1cd3('0x2f')][_0x1cd3('0x34')](_0x1cd3('0x35'))){_0x5734f0[_0x1cd3('0x1f')]=qs[_0x1cd3('0x1f')](_0xfaecf0[_0x1cd3('0x2f')][_0x1cd3('0x1f')]);_0x5734f0[_0x1cd3('0x1e')]=qs['offset'](_0xfaecf0[_0x1cd3('0x2f')][_0x1cd3('0x1e')]);}return _0xa261fc[_0x1cd3('0x46')](_0x5734f0);}})[_0x1cd3('0x25')](function(_0x512838){if(_0x512838){return _0x512838?{'count':_0xbd4ea2,'rows':_0x512838}:null;}})[_0x1cd3('0x25')](respondWithResult(_0x361bb2,null))[_0x1cd3('0x44')](handleError(_0x361bb2,null));};exports[_0x1cd3('0x49')]=function(_0x3b6033,_0x1541c9,_0x1ffff6){if(_0x3b6033['body']['id']){delete _0x3b6033[_0x1cd3('0x43')]['id'];}return db[_0x1cd3('0x29')][_0x1cd3('0x4a')]({'where':{'id':_0x3b6033[_0x1cd3('0x45')]['id']}})[_0x1cd3('0x25')](handleEntityNotFound(_0x1541c9,null))[_0x1cd3('0x25')](function(_0x332bd2){if(_0x332bd2){_0x3b6033[_0x1cd3('0x43')][_0x1cd3('0x4b')]=_0x332bd2['id'];_0x3b6033[_0x1cd3('0x43')]['Subjects']=integrations[_0x1cd3('0x4c')](_0x3b6033[_0x1cd3('0x43')][_0x1cd3('0x4d')],_0x3b6033[_0x1cd3('0x43')][_0x1cd3('0x2c')]);_0x3b6033[_0x1cd3('0x43')][_0x1cd3('0x4e')]=integrations[_0x1cd3('0x4f')](_0x3b6033[_0x1cd3('0x43')]['channel'],_0x3b6033[_0x1cd3('0x43')]['type']);return db[_0x1cd3('0x50')][_0x1cd3('0x42')](_0x3b6033['body'],{'include':[{'model':db[_0x1cd3('0x51')],'as':_0x1cd3('0x52')},{'model':db[_0x1cd3('0x51')],'as':'Descriptions'}]});}return null;})[_0x1cd3('0x25')](respondWithResult(_0x1541c9,null))[_0x1cd3('0x44')](handleError(_0x1541c9,null));};exports[_0x1cd3('0x53')]=function(_0x106a18,_0x2b9996,_0x48ef45){var _0x4affb2='';return db[_0x1cd3('0x29')][_0x1cd3('0x4a')]({'where':{'id':_0x106a18['params']['id']},'attributes':['id',_0x1cd3('0x54'),'apiKey']})[_0x1cd3('0x25')](handleEntityNotFound(_0x2b9996,null))['then'](function(_0x5ad6e1){if(_0x5ad6e1){_0x4affb2=_0x5ad6e1[_0x1cd3('0x54')];var _0x5d76b4=_0x4affb2[_0x1cd3('0x55')](-0x1);if(_0x5d76b4==='/'){_0x4affb2=_0x4affb2['substring'](0x0,_0x4affb2[_0x1cd3('0x56')](_0x5d76b4));}return rp({'method':_0x1cd3('0x57'),'uri':util[_0x1cd3('0x58')](_0x1cd3('0x59'),_0x4affb2,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0x1cd3('0x58')](_0x1cd3('0x5a'),new Buffer(util['format'](_0x1cd3('0x5b'),_0x5ad6e1[_0x1cd3('0x5c')]))['toString'](_0x1cd3('0x5d')))},'json':!![]});}})[_0x1cd3('0x25')](function(_0x4b0f5a){if(_0x4b0f5a){var _0x5061c8=[_0x1cd3('0x5e'),'subject',_0x1cd3('0x5f'),_0x1cd3('0x60'),_0x1cd3('0x20'),_0x1cd3('0x61'),'group',_0x1cd3('0x62'),_0x1cd3('0x63'),_0x1cd3('0x64'),_0x1cd3('0x65')];_['remove'](_0x4b0f5a,function(_0x3f5f8f){return _0x5061c8[_0x1cd3('0x66')](_0x3f5f8f[_0x1cd3('0x26')])||!_0x3f5f8f[_0x1cd3('0x67')]&&_0x3f5f8f['type']!==_0x1cd3('0x68')&&_0x3f5f8f['type']!==_0x1cd3('0x69');});return{'count':_0x4b0f5a[_0x1cd3('0x47')],'rows':_[_0x1cd3('0x2e')](_0x4b0f5a,function(_0x5656cc){return{'id':_0x5656cc[_0x1cd3('0x26')],'name':_0x5656cc[_0x1cd3('0x6a')],'custom':!_0x5656cc[_0x1cd3('0x67')],'options':_0x5656cc[_0x1cd3('0x6b')]?_[_0x1cd3('0x2e')](_0x5656cc[_0x1cd3('0x6b')],function(_0x22e41e){return{'name':_[_0x1cd3('0x6c')](_0x22e41e),'value':_0x22e41e};}):[]};})};}})[_0x1cd3('0x25')](respondWithResult(_0x2b9996,null))[_0x1cd3('0x44')](function(_0x480aec){var _0x1022f7=_0x106a18[_0x1cd3('0x2f')]['test']?0x1f4:_0x480aec[_0x1cd3('0x6d')]||0x1f4;logger[_0x1cd3('0x6e')](_0x1cd3('0x6f'),_0x1cd3('0x53'),_0x1022f7,JSON[_0x1cd3('0x70')](_0x480aec));delete _0x480aec[_0x1cd3('0x26')];if(_0x1022f7===0x191){_0x1022f7=0x190;}_0x2b9996[_0x1cd3('0x20')](_0x1022f7)[_0x1cd3('0x27')](_0x106a18[_0x1cd3('0x2f')]['test']?{'message':_0x1cd3('0x71'),'statusCode':_0x480aec['statusCode']}:_0x480aec);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf0d=['util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./intFreshdeskAccount.attributes','exports','FreshdeskAccount','int_freshdesk_accounts','lodash'];(function(_0x5dd3b6,_0x348976){var _0x2a6e1c=function(_0x55cb14){while(--_0x55cb14){_0x5dd3b6['push'](_0x5dd3b6['shift']());}};_0x2a6e1c(++_0x348976);}(_0xbf0d,0x1a3));var _0xdbf0=function(_0x11860f,_0x5cad68){_0x11860f=_0x11860f-0x0;var _0x35cb3d=_0xbf0d[_0x11860f];return _0x35cb3d;};'use strict';var _=require(_0xdbf0('0x0'));var util=require(_0xdbf0('0x1'));var logger=require(_0xdbf0('0x2'))('api');var moment=require(_0xdbf0('0x3'));var BPromise=require(_0xdbf0('0x4'));var rp=require(_0xdbf0('0x5'));var fs=require('fs');var path=require(_0xdbf0('0x6'));var rimraf=require(_0xdbf0('0x7'));var config=require('../../config/environment');var attributes=require(_0xdbf0('0x8'));var integrations=require('../../components/integrations/configuration');module[_0xdbf0('0x9')]=function(_0x13cdb0,_0x30b0c4){return _0x13cdb0['define'](_0xdbf0('0xa'),attributes,{'tableName':_0xdbf0('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8bd5=['util','api','moment','request-promise','rimraf','../../config/environment','./intFreshdeskAccount.attributes','../../components/integrations/configuration','define','lodash'];(function(_0x24aca2,_0x5c8395){var _0x2a188e=function(_0x3305cf){while(--_0x3305cf){_0x24aca2['push'](_0x24aca2['shift']());}};_0x2a188e(++_0x5c8395);}(_0x8bd5,0xb3));var _0x58bd=function(_0x3f7a9f,_0x125d99){_0x3f7a9f=_0x3f7a9f-0x0;var _0x438204=_0x8bd5[_0x3f7a9f];return _0x438204;};'use strict';var _=require(_0x58bd('0x0'));var util=require(_0x58bd('0x1'));var logger=require('../../config/logger')(_0x58bd('0x2'));var moment=require(_0x58bd('0x3'));var BPromise=require('bluebird');var rp=require(_0x58bd('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x58bd('0x5'));var config=require(_0x58bd('0x6'));var attributes=require(_0x58bd('0x7'));var integrations=require(_0x58bd('0x8'));module['exports']=function(_0x4cc8f6,_0x23343c){return _0x4cc8f6[_0x58bd('0x9')]('FreshdeskAccount',attributes,{'tableName':'int_freshdesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xefe5=['request','then','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','GetFreshdeskAccount','options','raw','attributes','map','include','model','debug','ShowFreshdeskAccount','FreshdeskAccount','where','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xefe5,0xf6));var _0x5efe=function(_0x2e8080,_0x4390ee){_0x2e8080=_0x2e8080-0x0;var _0x3d7ad7=_0xefe5[_0x2e8080];return _0x3d7ad7;};'use strict';var _=require(_0x5efe('0x0'));var util=require('util');var moment=require(_0x5efe('0x1'));var BPromise=require(_0x5efe('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5efe('0x3'));var db=require(_0x5efe('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x5efe('0x5'))('rpc');var config=require(_0x5efe('0x6'));var jayson=require(_0x5efe('0x7'));var client=jayson[_0x5efe('0x8')][_0x5efe('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x289ee0,_0x49e8db,_0x2c2c58){return new BPromise(function(_0x2df49e,_0x3430ae){return client[_0x5efe('0xa')](_0x289ee0,_0x2c2c58)[_0x5efe('0xb')](function(_0x2d1c9a){logger[_0x5efe('0xc')](_0x5efe('0xd'),_0x49e8db,_0x5efe('0xe'));logger['debug'](_0x5efe('0xf'),_0x49e8db,_0x5efe('0xe'),JSON[_0x5efe('0x10')](_0x2d1c9a));if(_0x2d1c9a[_0x5efe('0x11')]){if(_0x2d1c9a['error']['code']===0x1f4){logger['error'](_0x5efe('0xd'),_0x49e8db,_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);return _0x3430ae(_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);}logger[_0x5efe('0x11')](_0x5efe('0xd'),_0x49e8db,_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);return _0x2df49e(_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);}else{logger['info'](_0x5efe('0xd'),_0x49e8db,_0x5efe('0xe'));_0x2df49e(_0x2d1c9a[_0x5efe('0x13')][_0x5efe('0x12')]);}})['catch'](function(_0xf1c770){logger[_0x5efe('0x11')]('FreshdeskAccount,\x20%s,\x20%s',_0x49e8db,_0xf1c770);_0x3430ae(_0xf1c770);});});}exports[_0x5efe('0x14')]=function(_0x1c9d47){var _0x4ef776=this;return new Promise(function(_0x50351d,_0x1df564){return db['FreshdeskAccount']['findAll']({'raw':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47[_0x5efe('0x15')][_0x5efe('0x16')]===undefined?!![]:![]:!![],'where':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47['options']['where']||null:null,'attributes':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47[_0x5efe('0x15')][_0x5efe('0x17')]||null:null,'limit':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47[_0x5efe('0x15')]['limit']||null:null,'include':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47['options']['include']?_[_0x5efe('0x18')](_0x1c9d47['options'][_0x5efe('0x19')],function(_0x3e035c){return{'model':db[_0x3e035c[_0x5efe('0x1a')]],'as':_0x3e035c['as'],'attributes':_0x3e035c['attributes'],'include':_0x3e035c[_0x5efe('0x19')]?_['map'](_0x3e035c[_0x5efe('0x19')],function(_0x1a2754){return{'model':db[_0x1a2754[_0x5efe('0x1a')]],'as':_0x1a2754['as'],'attributes':_0x1a2754[_0x5efe('0x17')],'include':_0x1a2754[_0x5efe('0x19')]?_[_0x5efe('0x18')](_0x1a2754[_0x5efe('0x19')],function(_0x42dc9c){return{'model':db[_0x42dc9c['model']],'as':_0x42dc9c['as'],'attributes':_0x42dc9c[_0x5efe('0x17')]};}):[]};}):[]};}):[]:[]})[_0x5efe('0xb')](function(_0x56407f){logger[_0x5efe('0xc')](_0x5efe('0x14'),_0x1c9d47);logger[_0x5efe('0x1b')]('GetFreshdeskAccount',_0x1c9d47,JSON[_0x5efe('0x10')](_0x56407f));_0x50351d(_0x56407f);})['catch'](function(_0x23e796){logger['error'](_0x5efe('0x14'),_0x23e796[_0x5efe('0x12')],_0x1c9d47);_0x1df564(_0x4ef776[_0x5efe('0x11')](0x1f4,_0x23e796[_0x5efe('0x12')]));});});};exports[_0x5efe('0x1c')]=function(_0x4fcabf){var _0x560002=this;return new Promise(function(_0x41e113,_0x521b55){return db[_0x5efe('0x1d')]['find']({'raw':_0x4fcabf[_0x5efe('0x15')]?_0x4fcabf[_0x5efe('0x15')][_0x5efe('0x16')]===undefined?!![]:![]:!![],'where':_0x4fcabf[_0x5efe('0x15')]?_0x4fcabf[_0x5efe('0x15')][_0x5efe('0x1e')]||null:null,'attributes':_0x4fcabf['options']?_0x4fcabf[_0x5efe('0x15')]['attributes']||null:null,'include':_0x4fcabf[_0x5efe('0x15')]?_0x4fcabf[_0x5efe('0x15')]['include']?_[_0x5efe('0x18')](_0x4fcabf[_0x5efe('0x15')][_0x5efe('0x19')],function(_0x4ecb43){return{'model':db[_0x4ecb43['model']],'as':_0x4ecb43['as'],'attributes':_0x4ecb43[_0x5efe('0x17')],'include':_0x4ecb43[_0x5efe('0x19')]?_['map'](_0x4ecb43[_0x5efe('0x19')],function(_0xf00299){return{'model':db[_0xf00299[_0x5efe('0x1a')]],'as':_0xf00299['as'],'attributes':_0xf00299['attributes'],'include':_0xf00299[_0x5efe('0x19')]?_[_0x5efe('0x18')](_0xf00299[_0x5efe('0x19')],function(_0x5f1d33){return{'model':db[_0x5f1d33[_0x5efe('0x1a')]],'as':_0x5f1d33['as'],'attributes':_0x5f1d33['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x29648d){logger[_0x5efe('0xc')](_0x5efe('0x1c'),_0x4fcabf);logger[_0x5efe('0x1b')](_0x5efe('0x1c'),_0x4fcabf,JSON[_0x5efe('0x10')](_0x29648d));_0x41e113(_0x29648d);})[_0x5efe('0x1f')](function(_0x1a6fdb){logger['error']('ShowFreshdeskAccount',_0x1a6fdb[_0x5efe('0x12')],_0x4fcabf);_0x521b55(_0x560002[_0x5efe('0x11')](0x1f4,_0x1a6fdb[_0x5efe('0x12')]));});});};
\ No newline at end of file
+var _0xbf9a=['http','request','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetFreshdeskAccount','FreshdeskAccount','findAll','options','raw','where','attributes','include','map','model','then','ShowFreshdeskAccount','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc'];(function(_0x28d4cf,_0x4a5507){var _0x1600ab=function(_0x14f79a){while(--_0x14f79a){_0x28d4cf['push'](_0x28d4cf['shift']());}};_0x1600ab(++_0x4a5507);}(_0xbf9a,0x18c));var _0xabf9=function(_0x1b64dd,_0x2cf769){_0x1b64dd=_0x1b64dd-0x0;var _0xeb464c=_0xbf9a[_0x1b64dd];return _0xeb464c;};'use strict';var _=require('lodash');var util=require(_0xabf9('0x0'));var moment=require(_0xabf9('0x1'));var BPromise=require(_0xabf9('0x2'));var rs=require(_0xabf9('0x3'));var fs=require('fs');var Redis=require(_0xabf9('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xabf9('0x5'))(_0xabf9('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xabf9('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x20dec2,_0x2e124e,_0x592056){return new BPromise(function(_0x4ef890,_0x105b49){return client[_0xabf9('0x8')](_0x20dec2,_0x592056)['then'](function(_0x361c9e){logger[_0xabf9('0x9')](_0xabf9('0xa'),_0x2e124e,_0xabf9('0xb'));logger[_0xabf9('0xc')](_0xabf9('0xd'),_0x2e124e,'request\x20sent',JSON[_0xabf9('0xe')](_0x361c9e));if(_0x361c9e[_0xabf9('0xf')]){if(_0x361c9e[_0xabf9('0xf')]['code']===0x1f4){logger[_0xabf9('0xf')](_0xabf9('0xa'),_0x2e124e,_0x361c9e[_0xabf9('0xf')][_0xabf9('0x10')]);return _0x105b49(_0x361c9e[_0xabf9('0xf')][_0xabf9('0x10')]);}logger[_0xabf9('0xf')](_0xabf9('0xa'),_0x2e124e,_0x361c9e[_0xabf9('0xf')][_0xabf9('0x10')]);return _0x4ef890(_0x361c9e[_0xabf9('0xf')][_0xabf9('0x10')]);}else{logger[_0xabf9('0x9')](_0xabf9('0xa'),_0x2e124e,_0xabf9('0xb'));_0x4ef890(_0x361c9e[_0xabf9('0x11')][_0xabf9('0x10')]);}})[_0xabf9('0x12')](function(_0x1b9f8a){logger[_0xabf9('0xf')](_0xabf9('0xa'),_0x2e124e,_0x1b9f8a);_0x105b49(_0x1b9f8a);});});}exports[_0xabf9('0x13')]=function(_0x2b8bc8){var _0x36694d=this;return new Promise(function(_0x1531d4,_0x262a2d){return db[_0xabf9('0x14')][_0xabf9('0x15')]({'raw':_0x2b8bc8[_0xabf9('0x16')]?_0x2b8bc8['options'][_0xabf9('0x17')]===undefined?!![]:![]:!![],'where':_0x2b8bc8[_0xabf9('0x16')]?_0x2b8bc8['options'][_0xabf9('0x18')]||null:null,'attributes':_0x2b8bc8[_0xabf9('0x16')]?_0x2b8bc8[_0xabf9('0x16')][_0xabf9('0x19')]||null:null,'limit':_0x2b8bc8[_0xabf9('0x16')]?_0x2b8bc8[_0xabf9('0x16')]['limit']||null:null,'include':_0x2b8bc8['options']?_0x2b8bc8['options'][_0xabf9('0x1a')]?_[_0xabf9('0x1b')](_0x2b8bc8[_0xabf9('0x16')]['include'],function(_0x469867){return{'model':db[_0x469867[_0xabf9('0x1c')]],'as':_0x469867['as'],'attributes':_0x469867[_0xabf9('0x19')],'include':_0x469867[_0xabf9('0x1a')]?_[_0xabf9('0x1b')](_0x469867[_0xabf9('0x1a')],function(_0x5c48d4){return{'model':db[_0x5c48d4[_0xabf9('0x1c')]],'as':_0x5c48d4['as'],'attributes':_0x5c48d4[_0xabf9('0x19')],'include':_0x5c48d4[_0xabf9('0x1a')]?_['map'](_0x5c48d4['include'],function(_0x481069){return{'model':db[_0x481069['model']],'as':_0x481069['as'],'attributes':_0x481069[_0xabf9('0x19')]};}):[]};}):[]};}):[]:[]})[_0xabf9('0x1d')](function(_0x1bac1b){logger[_0xabf9('0x9')](_0xabf9('0x13'),_0x2b8bc8);logger['debug']('GetFreshdeskAccount',_0x2b8bc8,JSON[_0xabf9('0xe')](_0x1bac1b));_0x1531d4(_0x1bac1b);})['catch'](function(_0x12acc2){logger[_0xabf9('0xf')](_0xabf9('0x13'),_0x12acc2[_0xabf9('0x10')],_0x2b8bc8);_0x262a2d(_0x36694d[_0xabf9('0xf')](0x1f4,_0x12acc2['message']));});});};exports[_0xabf9('0x1e')]=function(_0x590de3){var _0x5c3066=this;return new Promise(function(_0xb77daa,_0xbbfcd7){return db['FreshdeskAccount']['find']({'raw':_0x590de3[_0xabf9('0x16')]?_0x590de3[_0xabf9('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0x590de3[_0xabf9('0x16')]?_0x590de3[_0xabf9('0x16')][_0xabf9('0x18')]||null:null,'attributes':_0x590de3[_0xabf9('0x16')]?_0x590de3[_0xabf9('0x16')][_0xabf9('0x19')]||null:null,'include':_0x590de3[_0xabf9('0x16')]?_0x590de3[_0xabf9('0x16')][_0xabf9('0x1a')]?_[_0xabf9('0x1b')](_0x590de3[_0xabf9('0x16')][_0xabf9('0x1a')],function(_0x475cd1){return{'model':db[_0x475cd1['model']],'as':_0x475cd1['as'],'attributes':_0x475cd1[_0xabf9('0x19')],'include':_0x475cd1[_0xabf9('0x1a')]?_[_0xabf9('0x1b')](_0x475cd1['include'],function(_0x22e3bc){return{'model':db[_0x22e3bc['model']],'as':_0x22e3bc['as'],'attributes':_0x22e3bc[_0xabf9('0x19')],'include':_0x22e3bc[_0xabf9('0x1a')]?_['map'](_0x22e3bc['include'],function(_0x2adf13){return{'model':db[_0x2adf13[_0xabf9('0x1c')]],'as':_0x2adf13['as'],'attributes':_0x2adf13[_0xabf9('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3b8d59){logger[_0xabf9('0x9')](_0xabf9('0x1e'),_0x590de3);logger['debug'](_0xabf9('0x1e'),_0x590de3,JSON['stringify'](_0x3b8d59));_0xb77daa(_0x3b8d59);})[_0xabf9('0x12')](function(_0x3f2f9f){logger[_0xabf9('0xf')](_0xabf9('0x1e'),_0x3f2f9f[_0xabf9('0x10')],_0x590de3);_0xbbfcd7(_0x5c3066[_0xabf9('0xf')](0x1f4,_0x3f2f9f[_0xabf9('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a25=['/:id/tags','setTags','put','delete','destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','getTags','post','create'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x3a25,0x9c));var _0x53a2=function(_0x489740,_0x41d98c){_0x489740=_0x489740-0x0;var _0xb3c9f9=_0x3a25[_0x489740];return _0xb3c9f9;};'use strict';var multer=require(_0x53a2('0x0'));var util=require(_0x53a2('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x53a2('0x2')]();var fs_extra=require(_0x53a2('0x3'));var auth=require(_0x53a2('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x53a2('0x5'));var controller=require('./intFreshdeskConfiguration.controller');router[_0x53a2('0x6')]('/',auth[_0x53a2('0x7')](),controller[_0x53a2('0x8')]);router[_0x53a2('0x6')](_0x53a2('0x9'),auth[_0x53a2('0x7')](),controller[_0x53a2('0xa')]);router[_0x53a2('0x6')](_0x53a2('0xb'),auth[_0x53a2('0x7')](),controller[_0x53a2('0xc')]);router[_0x53a2('0x6')](_0x53a2('0xd'),auth[_0x53a2('0x7')](),controller['getSubjects']);router[_0x53a2('0x6')](_0x53a2('0xe'),auth['isAuthenticated'](),controller[_0x53a2('0xf')]);router[_0x53a2('0x6')]('/:id/tags',auth[_0x53a2('0x7')](),controller[_0x53a2('0x10')]);router[_0x53a2('0x11')]('/',auth['isAuthenticated'](),controller[_0x53a2('0x12')]);router[_0x53a2('0x11')](_0x53a2('0x13'),auth[_0x53a2('0x7')](),controller[_0x53a2('0x14')]);router[_0x53a2('0x15')](_0x53a2('0x9'),auth[_0x53a2('0x7')](),controller['update']);router[_0x53a2('0x16')](_0x53a2('0x9'),auth['isAuthenticated'](),controller[_0x53a2('0x17')]);module[_0x53a2('0x18')]=router;
\ No newline at end of file
+var _0xb1cf=['/:id/subjects','/:id/descriptions','getDescriptions','/:id/tags','getTags','create','put','update','delete','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','/:id','show','/:id/fields'];(function(_0x27a76e,_0x1f6502){var _0x34940b=function(_0x36d2f6){while(--_0x36d2f6){_0x27a76e['push'](_0x27a76e['shift']());}};_0x34940b(++_0x1f6502);}(_0xb1cf,0x1d9));var _0xfb1c=function(_0x2bddf9,_0x22c873){_0x2bddf9=_0x2bddf9-0x0;var _0x3f3ae9=_0xb1cf[_0x2bddf9];return _0x3f3ae9;};'use strict';var multer=require(_0xfb1c('0x0'));var util=require(_0xfb1c('0x1'));var path=require(_0xfb1c('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xfb1c('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xfb1c('0x4'));var interaction=require(_0xfb1c('0x5'));var config=require('../../config/environment');var controller=require('./intFreshdeskConfiguration.controller');router[_0xfb1c('0x6')]('/',auth[_0xfb1c('0x7')](),controller['index']);router[_0xfb1c('0x6')](_0xfb1c('0x8'),auth['isAuthenticated'](),controller[_0xfb1c('0x9')]);router[_0xfb1c('0x6')](_0xfb1c('0xa'),auth['isAuthenticated'](),controller['getFields']);router[_0xfb1c('0x6')](_0xfb1c('0xb'),auth[_0xfb1c('0x7')](),controller['getSubjects']);router['get'](_0xfb1c('0xc'),auth[_0xfb1c('0x7')](),controller[_0xfb1c('0xd')]);router[_0xfb1c('0x6')](_0xfb1c('0xe'),auth['isAuthenticated'](),controller[_0xfb1c('0xf')]);router['post']('/',auth[_0xfb1c('0x7')](),controller[_0xfb1c('0x10')]);router['post'](_0xfb1c('0xe'),auth[_0xfb1c('0x7')](),controller['setTags']);router[_0xfb1c('0x11')](_0xfb1c('0x8'),auth[_0xfb1c('0x7')](),controller[_0xfb1c('0x12')]);router[_0xfb1c('0x13')](_0xfb1c('0x8'),auth[_0xfb1c('0x7')](),controller[_0xfb1c('0x14')]);module[_0xfb1c('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1742=['sequelize','STRING'];(function(_0x57272c,_0x2be9e2){var _0xc45fb=function(_0x18175d){while(--_0x18175d){_0x57272c['push'](_0x57272c['shift']());}};_0xc45fb(++_0x2be9e2);}(_0x1742,0x1c2));var _0x2174=function(_0x267678,_0x233201){_0x267678=_0x267678-0x0;var _0x394d48=_0x1742[_0x267678];return _0x394d48;};'use strict';var Sequelize=require(_0x2174('0x0'));module['exports']={'name':{'type':Sequelize[_0x2174('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6227=['STRING'];(function(_0xe81ed0,_0x6c7cd4){var _0x3a52db=function(_0x348e2b){while(--_0x348e2b){_0xe81ed0['push'](_0xe81ed0['shift']());}};_0x3a52db(++_0x6c7cd4);}(_0x6227,0x169));var _0x7622=function(_0x19e464,_0x26b550){_0x19e464=_0x19e464-0x0;var _0x35b913=_0x6227[_0x19e464];return _0x35b913;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x7622('0x0')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64f2=['findOne','getFields','getSubjects','FreshdeskField','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','then','destroy','error','stack','name','send','index','map','FreshdeskConfiguration','fieldName','key','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','type','VIRTUAL','include','findAll','rows','catch','show','keys','rawAttributes','options','create','body','find','params'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x64f2,0xaf));var _0x264f=function(_0x223494,_0x4152e5){_0x223494=_0x223494-0x0;var _0x565fd3=_0x64f2[_0x223494];return _0x565fd3;};'use strict';var emlformat=require(_0x264f('0x0'));var rimraf=require(_0x264f('0x1'));var zipdir=require(_0x264f('0x2'));var jsonpatch=require(_0x264f('0x3'));var rp=require(_0x264f('0x4'));var moment=require(_0x264f('0x5'));var BPromise=require(_0x264f('0x6'));var Mustache=require(_0x264f('0x7'));var util=require(_0x264f('0x8'));var path=require(_0x264f('0x9'));var sox=require('sox');var csv=require(_0x264f('0xa'));var ejs=require(_0x264f('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x264f('0xc'));var squel=require(_0x264f('0xd'));var crypto=require('crypto');var jsforce=require(_0x264f('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x264f('0xa'));var querystring=require(_0x264f('0xf'));var Papa=require(_0x264f('0x10'));var Redis=require('ioredis');var authService=require(_0x264f('0x11'));var qs=require(_0x264f('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x264f('0x13'));var logger=require(_0x264f('0x14'))('api');var utils=require(_0x264f('0x15'));var config=require(_0x264f('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x517a77,_0x228862){_0x228862=_0x228862||0xcc;return function(_0x3a080a){if(_0x3a080a){return _0x517a77[_0x264f('0x17')](_0x228862);}return _0x517a77[_0x264f('0x18')](_0x228862)[_0x264f('0x19')]();};}function respondWithResult(_0x4081d5,_0x446a47){_0x446a47=_0x446a47||0xc8;return function(_0x3e2652){if(_0x3e2652){return _0x4081d5[_0x264f('0x18')](_0x446a47)[_0x264f('0x1a')](_0x3e2652);}};}function respondWithFilteredResult(_0x46e1b1,_0x16c4d6){return function(_0x24a535){if(_0x24a535){var _0x34875c=typeof _0x16c4d6['offset']===_0x264f('0x1b')&&typeof _0x16c4d6[_0x264f('0x1c')]===_0x264f('0x1b');var _0x5c090a=_0x24a535[_0x264f('0x1d')];var _0x18adb7=_0x34875c?0x0:_0x16c4d6[_0x264f('0x1e')];var _0x439cb1=_0x34875c?_0x24a535[_0x264f('0x1d')]:_0x16c4d6['offset']+_0x16c4d6[_0x264f('0x1c')];var _0x1f52a9;if(_0x439cb1>=_0x5c090a){_0x439cb1=_0x5c090a;_0x1f52a9=0xc8;}else{_0x1f52a9=0xce;}_0x46e1b1[_0x264f('0x18')](_0x1f52a9);return _0x46e1b1[_0x264f('0x1f')](_0x264f('0x20'),_0x18adb7+'-'+_0x439cb1+'/'+_0x5c090a)[_0x264f('0x1a')](_0x24a535);}return null;};}function patchUpdates(_0x30083b){return function(_0x2d87ac){try{jsonpatch[_0x264f('0x21')](_0x2d87ac,_0x30083b,!![]);}catch(_0x4a37e8){return BPromise['reject'](_0x4a37e8);}return _0x2d87ac['save']();};}function saveUpdates(_0x568a56,_0xe06b3b){return function(_0x551a40){if(_0x551a40){return _0x551a40['update'](_0x568a56)[_0x264f('0x22')](function(_0x149a4b){return _0x149a4b;});}return null;};}function removeEntity(_0x333d81,_0x158c16){return function(_0x3f2dae){if(_0x3f2dae){return _0x3f2dae[_0x264f('0x23')]()['then'](function(){_0x333d81[_0x264f('0x18')](0xcc)[_0x264f('0x19')]();});}};}function handleEntityNotFound(_0x1ad5e0,_0x20a591){return function(_0x514d82){if(!_0x514d82){_0x1ad5e0[_0x264f('0x17')](0x194);}return _0x514d82;};}function handleError(_0x1086e1,_0x4af87d){_0x4af87d=_0x4af87d||0x1f4;return function(_0x24519a){logger[_0x264f('0x24')](_0x24519a[_0x264f('0x25')]);if(_0x24519a[_0x264f('0x26')]){delete _0x24519a[_0x264f('0x26')];}_0x1086e1[_0x264f('0x18')](_0x4af87d)[_0x264f('0x27')](_0x24519a);};}exports[_0x264f('0x28')]=function(_0x323b56,_0x1ca125){var _0x3c27f6={},_0x51cdee={},_0x549101={'count':0x0,'rows':[]};var _0x3c67e4=_[_0x264f('0x29')](db[_0x264f('0x2a')]['rawAttributes'],function(_0xf3df3c){return{'name':_0xf3df3c[_0x264f('0x2b')],'type':_0xf3df3c['type'][_0x264f('0x2c')]};});_0x51cdee['model']=_['map'](_0x3c67e4,_0x264f('0x26'));_0x51cdee[_0x264f('0x2d')]=_['keys'](_0x323b56['query']);_0x51cdee['filters']=_['intersection'](_0x51cdee['model'],_0x51cdee['query']);_0x3c27f6['attributes']=_[_0x264f('0x2e')](_0x51cdee[_0x264f('0x2f')],qs[_0x264f('0x30')](_0x323b56['query'][_0x264f('0x30')]));_0x3c27f6[_0x264f('0x31')]=_0x3c27f6['attributes'][_0x264f('0x32')]?_0x3c27f6[_0x264f('0x31')]:_0x51cdee[_0x264f('0x2f')];if(!_0x323b56[_0x264f('0x2d')][_0x264f('0x33')](_0x264f('0x34'))){_0x3c27f6[_0x264f('0x1c')]=qs[_0x264f('0x1c')](_0x323b56[_0x264f('0x2d')][_0x264f('0x1c')]);_0x3c27f6[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x323b56['query'][_0x264f('0x1e')]);}_0x3c27f6[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x323b56[_0x264f('0x2d')][_0x264f('0x36')]);_0x3c27f6['where']=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x323b56[_0x264f('0x2d')],_0x51cdee[_0x264f('0x37')]),_0x3c67e4);if(_0x323b56[_0x264f('0x2d')][_0x264f('0x39')]){_0x3c27f6[_0x264f('0x3a')]=_[_0x264f('0x3b')](_0x3c27f6[_0x264f('0x3a')],{'$or':_[_0x264f('0x29')](_0x3c67e4,function(_0x4123cb){if(_0x4123cb[_0x264f('0x3c')]!==_0x264f('0x3d')){var _0x5a309d={};_0x5a309d[_0x4123cb[_0x264f('0x26')]]={'$like':'%'+_0x323b56['query'][_0x264f('0x39')]+'%'};return _0x5a309d;}})});}_0x3c27f6=_[_0x264f('0x3b')]({},_0x3c27f6,_0x323b56['options']);var _0x152aa2={'where':_0x3c27f6[_0x264f('0x3a')]};return db[_0x264f('0x2a')][_0x264f('0x1d')](_0x152aa2)[_0x264f('0x22')](function(_0xd09363){_0x549101[_0x264f('0x1d')]=_0xd09363;if(_0x323b56[_0x264f('0x2d')]['includeAll']){_0x3c27f6[_0x264f('0x3e')]=[{'all':!![]}];}return db[_0x264f('0x2a')][_0x264f('0x3f')](_0x3c27f6);})['then'](function(_0x414a84){_0x549101[_0x264f('0x40')]=_0x414a84;return _0x549101;})[_0x264f('0x22')](respondWithFilteredResult(_0x1ca125,_0x3c27f6))[_0x264f('0x41')](handleError(_0x1ca125,null));};exports[_0x264f('0x42')]=function(_0x5ab554,_0x5c2f1e){var _0x417efa={'raw':![],'where':{'id':_0x5ab554['params']['id']}},_0x11ec33={};_0x11ec33[_0x264f('0x2f')]=_[_0x264f('0x43')](db[_0x264f('0x2a')][_0x264f('0x44')]);_0x11ec33[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x5ab554['query']);_0x11ec33['filters']=_[_0x264f('0x2e')](_0x11ec33[_0x264f('0x2f')],_0x11ec33[_0x264f('0x2d')]);_0x417efa[_0x264f('0x31')]=_[_0x264f('0x2e')](_0x11ec33['model'],qs['fields'](_0x5ab554[_0x264f('0x2d')][_0x264f('0x30')]));_0x417efa['attributes']=_0x417efa[_0x264f('0x31')][_0x264f('0x32')]?_0x417efa[_0x264f('0x31')]:_0x11ec33['model'];if(_0x5ab554[_0x264f('0x2d')]['includeAll']){_0x417efa['include']=[{'all':!![]}];}_0x417efa=_[_0x264f('0x3b')]({},_0x417efa,_0x5ab554[_0x264f('0x45')]);return db[_0x264f('0x2a')]['find'](_0x417efa)[_0x264f('0x22')](handleEntityNotFound(_0x5c2f1e,null))[_0x264f('0x22')](respondWithResult(_0x5c2f1e,null))[_0x264f('0x41')](handleError(_0x5c2f1e,null));};exports[_0x264f('0x46')]=function(_0x47a25d,_0x347584){return db[_0x264f('0x2a')][_0x264f('0x46')](_0x47a25d[_0x264f('0x47')],{})[_0x264f('0x22')](respondWithResult(_0x347584,0xc9))[_0x264f('0x41')](handleError(_0x347584,null));};exports['update']=function(_0x11bdaa,_0x4819df){if(_0x11bdaa[_0x264f('0x47')]['id']){delete _0x11bdaa[_0x264f('0x47')]['id'];}return db[_0x264f('0x2a')][_0x264f('0x48')]({'where':{'id':_0x11bdaa[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x4819df,null))[_0x264f('0x22')](saveUpdates(_0x11bdaa[_0x264f('0x47')],null))[_0x264f('0x22')](respondWithResult(_0x4819df,null))[_0x264f('0x41')](handleError(_0x4819df,null));};exports[_0x264f('0x23')]=function(_0x3a2a43,_0x5bcfa9){return db[_0x264f('0x2a')][_0x264f('0x48')]({'where':{'id':_0x3a2a43['params']['id']}})['then'](handleEntityNotFound(_0x5bcfa9,null))[_0x264f('0x22')](removeEntity(_0x5bcfa9,null))['catch'](handleError(_0x5bcfa9,null));};exports['getFields']=function(_0x429fda,_0x54eaee,_0x354ed7){var _0x3a0061={};var _0x540e1b={};var _0x104151;var _0x26b84c;return db[_0x264f('0x2a')][_0x264f('0x4a')]({'where':{'id':_0x429fda[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x54eaee,null))[_0x264f('0x22')](function(_0x4b3808){if(_0x4b3808){_0x104151=_0x4b3808;_0x540e1b[_0x264f('0x2f')]=_[_0x264f('0x43')](db['FreshdeskField'][_0x264f('0x44')]);_0x540e1b[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x429fda[_0x264f('0x2d')]);_0x540e1b[_0x264f('0x37')]=_[_0x264f('0x2e')](_0x540e1b[_0x264f('0x2f')],_0x540e1b[_0x264f('0x2d')]);_0x3a0061[_0x264f('0x31')]=_['intersection'](_0x540e1b['model'],qs[_0x264f('0x30')](_0x429fda[_0x264f('0x2d')][_0x264f('0x30')]));_0x3a0061[_0x264f('0x31')]=_0x3a0061[_0x264f('0x31')][_0x264f('0x32')]?_0x3a0061[_0x264f('0x31')]:_0x540e1b[_0x264f('0x2f')];_0x3a0061[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x429fda['query'][_0x264f('0x36')]);_0x3a0061[_0x264f('0x3a')]=qs['filters'](_[_0x264f('0x38')](_0x429fda[_0x264f('0x2d')],_0x540e1b[_0x264f('0x37')]));if(_0x429fda['query'][_0x264f('0x39')]){_0x3a0061['where']=_[_0x264f('0x3b')](_0x3a0061[_0x264f('0x3a')],{'$or':_[_0x264f('0x29')](_0x3a0061[_0x264f('0x31')],function(_0x41d0d3){var _0x12072f={};_0x12072f[_0x41d0d3]={'$like':'%'+_0x429fda[_0x264f('0x2d')][_0x264f('0x39')]+'%'};return _0x12072f;})});}_0x3a0061=_[_0x264f('0x3b')]({},_0x3a0061,_0x429fda['options']);return _0x104151['getFields'](_0x3a0061);}})[_0x264f('0x22')](function(_0x3c2536){if(_0x3c2536){_0x26b84c=_0x3c2536['length'];if(!_0x429fda[_0x264f('0x2d')]['hasOwnProperty'](_0x264f('0x34'))){_0x3a0061['limit']=qs[_0x264f('0x1c')](_0x429fda['query'][_0x264f('0x1c')]);_0x3a0061[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x429fda[_0x264f('0x2d')][_0x264f('0x1e')]);}return _0x104151[_0x264f('0x4b')](_0x3a0061);}})[_0x264f('0x22')](function(_0x43a17e){if(_0x43a17e){return _0x43a17e?{'count':_0x26b84c,'rows':_0x43a17e}:null;}})['then'](respondWithResult(_0x54eaee,null))[_0x264f('0x41')](handleError(_0x54eaee,null));};exports[_0x264f('0x4c')]=function(_0x534b4f,_0x281c80,_0x1d23af){var _0xbfbd45={};var _0x354af0={};var _0x5591e0;var _0x349243;return db['FreshdeskConfiguration'][_0x264f('0x4a')]({'where':{'id':_0x534b4f[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x281c80,null))[_0x264f('0x22')](function(_0x2cebee){if(_0x2cebee){_0x5591e0=_0x2cebee;_0x354af0[_0x264f('0x2f')]=_[_0x264f('0x43')](db[_0x264f('0x4d')][_0x264f('0x44')]);_0x354af0[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x534b4f[_0x264f('0x2d')]);_0x354af0['filters']=_[_0x264f('0x2e')](_0x354af0[_0x264f('0x2f')],_0x354af0['query']);_0xbfbd45[_0x264f('0x31')]=_[_0x264f('0x2e')](_0x354af0['model'],qs[_0x264f('0x30')](_0x534b4f[_0x264f('0x2d')][_0x264f('0x30')]));_0xbfbd45[_0x264f('0x31')]=_0xbfbd45['attributes'][_0x264f('0x32')]?_0xbfbd45['attributes']:_0x354af0[_0x264f('0x2f')];_0xbfbd45[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x534b4f[_0x264f('0x2d')][_0x264f('0x36')]);_0xbfbd45[_0x264f('0x3a')]=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x534b4f[_0x264f('0x2d')],_0x354af0['filters']));if(_0x534b4f[_0x264f('0x2d')][_0x264f('0x39')]){_0xbfbd45[_0x264f('0x3a')]=_[_0x264f('0x3b')](_0xbfbd45[_0x264f('0x3a')],{'$or':_[_0x264f('0x29')](_0xbfbd45[_0x264f('0x31')],function(_0x4f71f0){var _0x1d1589={};_0x1d1589[_0x4f71f0]={'$like':'%'+_0x534b4f[_0x264f('0x2d')][_0x264f('0x39')]+'%'};return _0x1d1589;})});}_0xbfbd45=_[_0x264f('0x3b')]({},_0xbfbd45,_0x534b4f[_0x264f('0x45')]);return _0x5591e0['getSubjects'](_0xbfbd45);}})[_0x264f('0x22')](function(_0x43a0d6){if(_0x43a0d6){_0x349243=_0x43a0d6[_0x264f('0x32')];if(!_0x534b4f[_0x264f('0x2d')]['hasOwnProperty'](_0x264f('0x34'))){_0xbfbd45[_0x264f('0x1c')]=qs['limit'](_0x534b4f[_0x264f('0x2d')][_0x264f('0x1c')]);_0xbfbd45[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x534b4f['query'][_0x264f('0x1e')]);}return _0x5591e0[_0x264f('0x4c')](_0xbfbd45);}})['then'](function(_0x55a229){if(_0x55a229){return _0x55a229?{'count':_0x349243,'rows':_0x55a229}:null;}})[_0x264f('0x22')](respondWithResult(_0x281c80,null))[_0x264f('0x41')](handleError(_0x281c80,null));};exports[_0x264f('0x4e')]=function(_0x271926,_0x2cb62c,_0x281dd5){var _0x126324={};var _0x58917a={};var _0x2d4bbc;var _0x27d47a;return db['FreshdeskConfiguration'][_0x264f('0x4a')]({'where':{'id':_0x271926[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x2cb62c,null))[_0x264f('0x22')](function(_0x5c75ce){if(_0x5c75ce){_0x2d4bbc=_0x5c75ce;_0x58917a[_0x264f('0x2f')]=_[_0x264f('0x43')](db[_0x264f('0x4d')]['rawAttributes']);_0x58917a[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x271926[_0x264f('0x2d')]);_0x58917a[_0x264f('0x37')]=_[_0x264f('0x2e')](_0x58917a['model'],_0x58917a[_0x264f('0x2d')]);_0x126324[_0x264f('0x31')]=_[_0x264f('0x2e')](_0x58917a[_0x264f('0x2f')],qs[_0x264f('0x30')](_0x271926[_0x264f('0x2d')][_0x264f('0x30')]));_0x126324['attributes']=_0x126324['attributes'][_0x264f('0x32')]?_0x126324[_0x264f('0x31')]:_0x58917a[_0x264f('0x2f')];_0x126324[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x271926[_0x264f('0x2d')][_0x264f('0x36')]);_0x126324[_0x264f('0x3a')]=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x271926[_0x264f('0x2d')],_0x58917a[_0x264f('0x37')]));if(_0x271926[_0x264f('0x2d')][_0x264f('0x39')]){_0x126324[_0x264f('0x3a')]=_['merge'](_0x126324[_0x264f('0x3a')],{'$or':_['map'](_0x126324[_0x264f('0x31')],function(_0x1e8fc7){var _0x4314ad={};_0x4314ad[_0x1e8fc7]={'$like':'%'+_0x271926[_0x264f('0x2d')]['filter']+'%'};return _0x4314ad;})});}_0x126324=_['merge']({},_0x126324,_0x271926['options']);return _0x2d4bbc['getDescriptions'](_0x126324);}})[_0x264f('0x22')](function(_0x2b8554){if(_0x2b8554){_0x27d47a=_0x2b8554[_0x264f('0x32')];if(!_0x271926['query'][_0x264f('0x33')](_0x264f('0x34'))){_0x126324['limit']=qs['limit'](_0x271926[_0x264f('0x2d')][_0x264f('0x1c')]);_0x126324[_0x264f('0x1e')]=qs['offset'](_0x271926['query'][_0x264f('0x1e')]);}return _0x2d4bbc[_0x264f('0x4e')](_0x126324);}})['then'](function(_0x262503){if(_0x262503){return _0x262503?{'count':_0x27d47a,'rows':_0x262503}:null;}})[_0x264f('0x22')](respondWithResult(_0x2cb62c,null))['catch'](handleError(_0x2cb62c,null));};exports[_0x264f('0x4f')]=function(_0x15e884,_0x46555b,_0x25ec06){var _0x2b99a4={};var _0x4f3060={};var _0x2389f9;var _0x47a8bd;return db[_0x264f('0x2a')][_0x264f('0x4a')]({'where':{'id':_0x15e884['params']['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x46555b,null))[_0x264f('0x22')](function(_0x4d134b){if(_0x4d134b){_0x2389f9=_0x4d134b;_0x4f3060['model']=_[_0x264f('0x43')](db[_0x264f('0x50')][_0x264f('0x44')]);_0x4f3060[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x15e884[_0x264f('0x2d')]);_0x4f3060['filters']=_[_0x264f('0x2e')](_0x4f3060[_0x264f('0x2f')],_0x4f3060[_0x264f('0x2d')]);_0x2b99a4['attributes']=_[_0x264f('0x2e')](_0x4f3060[_0x264f('0x2f')],qs[_0x264f('0x30')](_0x15e884[_0x264f('0x2d')]['fields']));_0x2b99a4['attributes']=_0x2b99a4[_0x264f('0x31')][_0x264f('0x32')]?_0x2b99a4[_0x264f('0x31')]:_0x4f3060[_0x264f('0x2f')];_0x2b99a4['order']=qs['sort'](_0x15e884[_0x264f('0x2d')][_0x264f('0x36')]);_0x2b99a4[_0x264f('0x3a')]=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x15e884[_0x264f('0x2d')],_0x4f3060['filters']));if(_0x15e884[_0x264f('0x2d')][_0x264f('0x39')]){_0x2b99a4[_0x264f('0x3a')]=_[_0x264f('0x3b')](_0x2b99a4[_0x264f('0x3a')],{'$or':_['map'](_0x2b99a4[_0x264f('0x31')],function(_0x2132fd){var _0x1f16a3={};_0x1f16a3[_0x2132fd]={'$like':'%'+_0x15e884[_0x264f('0x2d')][_0x264f('0x39')]+'%'};return _0x1f16a3;})});}_0x2b99a4=_[_0x264f('0x3b')]({},_0x2b99a4,_0x15e884[_0x264f('0x45')]);return _0x2389f9[_0x264f('0x4f')](_0x2b99a4);}})[_0x264f('0x22')](function(_0x1ba844){if(_0x1ba844){_0x47a8bd=_0x1ba844[_0x264f('0x32')];if(!_0x15e884[_0x264f('0x2d')][_0x264f('0x33')](_0x264f('0x34'))){_0x2b99a4[_0x264f('0x1c')]=qs[_0x264f('0x1c')](_0x15e884[_0x264f('0x2d')][_0x264f('0x1c')]);_0x2b99a4[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x15e884[_0x264f('0x2d')][_0x264f('0x1e')]);}return _0x2389f9['getTags'](_0x2b99a4);}})['then'](function(_0x3ef9d4){if(_0x3ef9d4){return _0x3ef9d4?{'count':_0x47a8bd,'rows':_0x3ef9d4}:null;}})['then'](respondWithResult(_0x46555b,null))[_0x264f('0x41')](handleError(_0x46555b,null));};exports['setTags']=function(_0xf11bf5,_0x2f4c07,_0x59b300){if(_0xf11bf5[_0x264f('0x47')]['id']){delete _0xf11bf5[_0x264f('0x47')]['id'];}return db['FreshdeskConfiguration']['findOne']({'where':{'id':_0xf11bf5[_0x264f('0x49')]['id']}})['then'](handleEntityNotFound(_0x2f4c07,null))[_0x264f('0x22')](function(_0x1352ce){if(_0x1352ce){return _0x1352ce[_0x264f('0x51')](_0xf11bf5[_0x264f('0x47')][_0x264f('0x52')]||[]);}return null;})[_0x264f('0x22')](respondWithResult(_0x2f4c07,null))[_0x264f('0x41')](handleError(_0x2f4c07,null));};
\ No newline at end of file
+var _0xd529=['keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','includeAll','include','findAll','catch','params','options','create','body','find','destroy','getFields','findOne','FreshdeskField','length','getSubjects','filter','getDescriptions','getTags','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','to-csv','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','sendStatus','error','name','send','map','FreshdeskConfiguration','rawAttributes','fieldName','type','model'];(function(_0x192551,_0x160221){var _0x533857=function(_0x5047d3){while(--_0x5047d3){_0x192551['push'](_0x192551['shift']());}};_0x533857(++_0x160221);}(_0xd529,0x73));var _0x9d52=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xd529[_0x42cae2];return _0x5f256f;};'use strict';var emlformat=require(_0x9d52('0x0'));var rimraf=require(_0x9d52('0x1'));var zipdir=require(_0x9d52('0x2'));var jsonpatch=require(_0x9d52('0x3'));var rp=require(_0x9d52('0x4'));var moment=require(_0x9d52('0x5'));var BPromise=require(_0x9d52('0x6'));var Mustache=require(_0x9d52('0x7'));var util=require(_0x9d52('0x8'));var path=require(_0x9d52('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x9d52('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9d52('0xb'));var squel=require(_0x9d52('0xc'));var crypto=require(_0x9d52('0xd'));var jsforce=require(_0x9d52('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x9d52('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9d52('0x10'));var authService=require(_0x9d52('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9d52('0x12'));var logger=require(_0x9d52('0x13'))(_0x9d52('0x14'));var utils=require('../../config/utils');var config=require(_0x9d52('0x15'));var licenseUtil=require(_0x9d52('0x16'));var db=require(_0x9d52('0x17'))['db'];function respondWithStatusCode(_0x1cb1a7,_0x20ebe1){_0x20ebe1=_0x20ebe1||0xcc;return function(_0x1fc596){if(_0x1fc596){return _0x1cb1a7['sendStatus'](_0x20ebe1);}return _0x1cb1a7[_0x9d52('0x18')](_0x20ebe1)[_0x9d52('0x19')]();};}function respondWithResult(_0x5a3d08,_0x2c4271){_0x2c4271=_0x2c4271||0xc8;return function(_0x30fb87){if(_0x30fb87){return _0x5a3d08[_0x9d52('0x18')](_0x2c4271)[_0x9d52('0x1a')](_0x30fb87);}};}function respondWithFilteredResult(_0x1320d5,_0x10e637){return function(_0x547177){if(_0x547177){var _0x134616=typeof _0x10e637[_0x9d52('0x1b')]===_0x9d52('0x1c')&&typeof _0x10e637[_0x9d52('0x1d')]===_0x9d52('0x1c');var _0xbbe0ca=_0x547177[_0x9d52('0x1e')];var _0x33086b=_0x134616?0x0:_0x10e637[_0x9d52('0x1b')];var _0x358fd2=_0x134616?_0x547177[_0x9d52('0x1e')]:_0x10e637[_0x9d52('0x1b')]+_0x10e637[_0x9d52('0x1d')];var _0x1dd63c;if(_0x358fd2>=_0xbbe0ca){_0x358fd2=_0xbbe0ca;_0x1dd63c=0xc8;}else{_0x1dd63c=0xce;}_0x1320d5[_0x9d52('0x18')](_0x1dd63c);return _0x1320d5['set'](_0x9d52('0x1f'),_0x33086b+'-'+_0x358fd2+'/'+_0xbbe0ca)['json'](_0x547177);}return null;};}function patchUpdates(_0x37d0d3){return function(_0x4e4dce){try{jsonpatch[_0x9d52('0x20')](_0x4e4dce,_0x37d0d3,!![]);}catch(_0x260437){return BPromise[_0x9d52('0x21')](_0x260437);}return _0x4e4dce[_0x9d52('0x22')]();};}function saveUpdates(_0x2c2768,_0x3eaa66){return function(_0x33adaf){if(_0x33adaf){return _0x33adaf[_0x9d52('0x23')](_0x2c2768)[_0x9d52('0x24')](function(_0xd95935){return _0xd95935;});}return null;};}function removeEntity(_0x4e5535,_0x21726d){return function(_0x5eb18e){if(_0x5eb18e){return _0x5eb18e['destroy']()['then'](function(){_0x4e5535[_0x9d52('0x18')](0xcc)[_0x9d52('0x19')]();});}};}function handleEntityNotFound(_0x2f696e,_0x323bc4){return function(_0x27d933){if(!_0x27d933){_0x2f696e[_0x9d52('0x25')](0x194);}return _0x27d933;};}function handleError(_0x29307c,_0x258547){_0x258547=_0x258547||0x1f4;return function(_0xcfa20f){logger[_0x9d52('0x26')](_0xcfa20f['stack']);if(_0xcfa20f[_0x9d52('0x27')]){delete _0xcfa20f['name'];}_0x29307c['status'](_0x258547)[_0x9d52('0x28')](_0xcfa20f);};}exports['index']=function(_0x28be9b,_0xdb43d1){var _0x3d48f0={},_0x16d572={},_0x4fcd3a={'count':0x0,'rows':[]};var _0x74b0ef=_[_0x9d52('0x29')](db[_0x9d52('0x2a')][_0x9d52('0x2b')],function(_0x35542e){return{'name':_0x35542e[_0x9d52('0x2c')],'type':_0x35542e[_0x9d52('0x2d')]['key']};});_0x16d572[_0x9d52('0x2e')]=_[_0x9d52('0x29')](_0x74b0ef,'name');_0x16d572['query']=_[_0x9d52('0x2f')](_0x28be9b[_0x9d52('0x30')]);_0x16d572['filters']=_[_0x9d52('0x31')](_0x16d572['model'],_0x16d572[_0x9d52('0x30')]);_0x3d48f0[_0x9d52('0x32')]=_[_0x9d52('0x31')](_0x16d572[_0x9d52('0x2e')],qs[_0x9d52('0x33')](_0x28be9b[_0x9d52('0x30')][_0x9d52('0x33')]));_0x3d48f0[_0x9d52('0x32')]=_0x3d48f0[_0x9d52('0x32')]['length']?_0x3d48f0[_0x9d52('0x32')]:_0x16d572[_0x9d52('0x2e')];if(!_0x28be9b[_0x9d52('0x30')][_0x9d52('0x34')](_0x9d52('0x35'))){_0x3d48f0[_0x9d52('0x1d')]=qs['limit'](_0x28be9b[_0x9d52('0x30')]['limit']);_0x3d48f0['offset']=qs[_0x9d52('0x1b')](_0x28be9b[_0x9d52('0x30')]['offset']);}_0x3d48f0[_0x9d52('0x36')]=qs[_0x9d52('0x37')](_0x28be9b[_0x9d52('0x30')][_0x9d52('0x37')]);_0x3d48f0[_0x9d52('0x38')]=qs[_0x9d52('0x39')](_[_0x9d52('0x3a')](_0x28be9b[_0x9d52('0x30')],_0x16d572[_0x9d52('0x39')]),_0x74b0ef);if(_0x28be9b[_0x9d52('0x30')]['filter']){_0x3d48f0[_0x9d52('0x38')]=_[_0x9d52('0x3b')](_0x3d48f0['where'],{'$or':_[_0x9d52('0x29')](_0x74b0ef,function(_0x5c9dd0){if(_0x5c9dd0['type']!==_0x9d52('0x3c')){var _0x59d390={};_0x59d390[_0x5c9dd0[_0x9d52('0x27')]]={'$like':'%'+_0x28be9b[_0x9d52('0x30')]['filter']+'%'};return _0x59d390;}})});}_0x3d48f0=_[_0x9d52('0x3b')]({},_0x3d48f0,_0x28be9b['options']);var _0x2ee5b2={'where':_0x3d48f0[_0x9d52('0x38')]};return db[_0x9d52('0x2a')][_0x9d52('0x1e')](_0x2ee5b2)[_0x9d52('0x24')](function(_0x4c18cb){_0x4fcd3a[_0x9d52('0x1e')]=_0x4c18cb;if(_0x28be9b[_0x9d52('0x30')][_0x9d52('0x3d')]){_0x3d48f0[_0x9d52('0x3e')]=[{'all':!![]}];}return db[_0x9d52('0x2a')][_0x9d52('0x3f')](_0x3d48f0);})[_0x9d52('0x24')](function(_0x37f8bc){_0x4fcd3a['rows']=_0x37f8bc;return _0x4fcd3a;})[_0x9d52('0x24')](respondWithFilteredResult(_0xdb43d1,_0x3d48f0))[_0x9d52('0x40')](handleError(_0xdb43d1,null));};exports['show']=function(_0x38c570,_0x2d4568){var _0x30c5c9={'raw':![],'where':{'id':_0x38c570[_0x9d52('0x41')]['id']}},_0x5baee9={};_0x5baee9[_0x9d52('0x2e')]=_[_0x9d52('0x2f')](db['FreshdeskConfiguration'][_0x9d52('0x2b')]);_0x5baee9[_0x9d52('0x30')]=_[_0x9d52('0x2f')](_0x38c570[_0x9d52('0x30')]);_0x5baee9[_0x9d52('0x39')]=_[_0x9d52('0x31')](_0x5baee9[_0x9d52('0x2e')],_0x5baee9[_0x9d52('0x30')]);_0x30c5c9[_0x9d52('0x32')]=_['intersection'](_0x5baee9['model'],qs[_0x9d52('0x33')](_0x38c570[_0x9d52('0x30')][_0x9d52('0x33')]));_0x30c5c9['attributes']=_0x30c5c9[_0x9d52('0x32')]['length']?_0x30c5c9['attributes']:_0x5baee9[_0x9d52('0x2e')];if(_0x38c570[_0x9d52('0x30')][_0x9d52('0x3d')]){_0x30c5c9[_0x9d52('0x3e')]=[{'all':!![]}];}_0x30c5c9=_['merge']({},_0x30c5c9,_0x38c570[_0x9d52('0x42')]);return db[_0x9d52('0x2a')]['find'](_0x30c5c9)['then'](handleEntityNotFound(_0x2d4568,null))[_0x9d52('0x24')](respondWithResult(_0x2d4568,null))[_0x9d52('0x40')](handleError(_0x2d4568,null));};exports[_0x9d52('0x43')]=function(_0x4eb973,_0x32a5dd){return db[_0x9d52('0x2a')]['create'](_0x4eb973[_0x9d52('0x44')],{})['then'](respondWithResult(_0x32a5dd,0xc9))[_0x9d52('0x40')](handleError(_0x32a5dd,null));};exports[_0x9d52('0x23')]=function(_0x15925e,_0x50c566){if(_0x15925e[_0x9d52('0x44')]['id']){delete _0x15925e['body']['id'];}return db['FreshdeskConfiguration'][_0x9d52('0x45')]({'where':{'id':_0x15925e[_0x9d52('0x41')]['id']}})['then'](handleEntityNotFound(_0x50c566,null))[_0x9d52('0x24')](saveUpdates(_0x15925e[_0x9d52('0x44')],null))[_0x9d52('0x24')](respondWithResult(_0x50c566,null))[_0x9d52('0x40')](handleError(_0x50c566,null));};exports[_0x9d52('0x46')]=function(_0x288817,_0xdbe695){return db[_0x9d52('0x2a')][_0x9d52('0x45')]({'where':{'id':_0x288817['params']['id']}})[_0x9d52('0x24')](handleEntityNotFound(_0xdbe695,null))[_0x9d52('0x24')](removeEntity(_0xdbe695,null))[_0x9d52('0x40')](handleError(_0xdbe695,null));};exports[_0x9d52('0x47')]=function(_0x4aac9e,_0x4ce00c,_0xc9e11d){var _0xb0d0d5={};var _0x16ff23={};var _0x5cc4aa;var _0xbc96d9;return db[_0x9d52('0x2a')][_0x9d52('0x48')]({'where':{'id':_0x4aac9e['params']['id']}})[_0x9d52('0x24')](handleEntityNotFound(_0x4ce00c,null))[_0x9d52('0x24')](function(_0x5d8d52){if(_0x5d8d52){_0x5cc4aa=_0x5d8d52;_0x16ff23[_0x9d52('0x2e')]=_['keys'](db[_0x9d52('0x49')]['rawAttributes']);_0x16ff23[_0x9d52('0x30')]=_[_0x9d52('0x2f')](_0x4aac9e[_0x9d52('0x30')]);_0x16ff23[_0x9d52('0x39')]=_['intersection'](_0x16ff23['model'],_0x16ff23[_0x9d52('0x30')]);_0xb0d0d5['attributes']=_[_0x9d52('0x31')](_0x16ff23['model'],qs[_0x9d52('0x33')](_0x4aac9e[_0x9d52('0x30')][_0x9d52('0x33')]));_0xb0d0d5[_0x9d52('0x32')]=_0xb0d0d5[_0x9d52('0x32')][_0x9d52('0x4a')]?_0xb0d0d5[_0x9d52('0x32')]:_0x16ff23[_0x9d52('0x2e')];_0xb0d0d5[_0x9d52('0x36')]=qs[_0x9d52('0x37')](_0x4aac9e[_0x9d52('0x30')][_0x9d52('0x37')]);_0xb0d0d5[_0x9d52('0x38')]=qs[_0x9d52('0x39')](_[_0x9d52('0x3a')](_0x4aac9e[_0x9d52('0x30')],_0x16ff23[_0x9d52('0x39')]));if(_0x4aac9e[_0x9d52('0x30')]['filter']){_0xb0d0d5[_0x9d52('0x38')]=_[_0x9d52('0x3b')](_0xb0d0d5[_0x9d52('0x38')],{'$or':_[_0x9d52('0x29')](_0xb0d0d5[_0x9d52('0x32')],function(_0x448dad){var _0x4c89e2={};_0x4c89e2[_0x448dad]={'$like':'%'+_0x4aac9e[_0x9d52('0x30')]['filter']+'%'};return _0x4c89e2;})});}_0xb0d0d5=_['merge']({},_0xb0d0d5,_0x4aac9e[_0x9d52('0x42')]);return _0x5cc4aa['getFields'](_0xb0d0d5);}})['then'](function(_0x310ff5){if(_0x310ff5){_0xbc96d9=_0x310ff5[_0x9d52('0x4a')];if(!_0x4aac9e[_0x9d52('0x30')][_0x9d52('0x34')](_0x9d52('0x35'))){_0xb0d0d5[_0x9d52('0x1d')]=qs['limit'](_0x4aac9e['query'][_0x9d52('0x1d')]);_0xb0d0d5[_0x9d52('0x1b')]=qs[_0x9d52('0x1b')](_0x4aac9e[_0x9d52('0x30')][_0x9d52('0x1b')]);}return _0x5cc4aa[_0x9d52('0x47')](_0xb0d0d5);}})['then'](function(_0x926814){if(_0x926814){return _0x926814?{'count':_0xbc96d9,'rows':_0x926814}:null;}})[_0x9d52('0x24')](respondWithResult(_0x4ce00c,null))[_0x9d52('0x40')](handleError(_0x4ce00c,null));};exports[_0x9d52('0x4b')]=function(_0x231a24,_0x3097e8,_0x13c992){var _0x47b153={};var _0x1f9605={};var _0x376e99;var _0x265fae;return db[_0x9d52('0x2a')][_0x9d52('0x48')]({'where':{'id':_0x231a24[_0x9d52('0x41')]['id']}})[_0x9d52('0x24')](handleEntityNotFound(_0x3097e8,null))[_0x9d52('0x24')](function(_0x14f03f){if(_0x14f03f){_0x376e99=_0x14f03f;_0x1f9605['model']=_[_0x9d52('0x2f')](db[_0x9d52('0x49')]['rawAttributes']);_0x1f9605['query']=_[_0x9d52('0x2f')](_0x231a24['query']);_0x1f9605['filters']=_[_0x9d52('0x31')](_0x1f9605['model'],_0x1f9605[_0x9d52('0x30')]);_0x47b153[_0x9d52('0x32')]=_['intersection'](_0x1f9605[_0x9d52('0x2e')],qs[_0x9d52('0x33')](_0x231a24[_0x9d52('0x30')][_0x9d52('0x33')]));_0x47b153['attributes']=_0x47b153[_0x9d52('0x32')][_0x9d52('0x4a')]?_0x47b153[_0x9d52('0x32')]:_0x1f9605[_0x9d52('0x2e')];_0x47b153[_0x9d52('0x36')]=qs['sort'](_0x231a24['query'][_0x9d52('0x37')]);_0x47b153[_0x9d52('0x38')]=qs[_0x9d52('0x39')](_[_0x9d52('0x3a')](_0x231a24[_0x9d52('0x30')],_0x1f9605[_0x9d52('0x39')]));if(_0x231a24[_0x9d52('0x30')][_0x9d52('0x4c')]){_0x47b153[_0x9d52('0x38')]=_[_0x9d52('0x3b')](_0x47b153[_0x9d52('0x38')],{'$or':_['map'](_0x47b153[_0x9d52('0x32')],function(_0x631e90){var _0xd7a1e9={};_0xd7a1e9[_0x631e90]={'$like':'%'+_0x231a24[_0x9d52('0x30')]['filter']+'%'};return _0xd7a1e9;})});}_0x47b153=_[_0x9d52('0x3b')]({},_0x47b153,_0x231a24[_0x9d52('0x42')]);return _0x376e99['getSubjects'](_0x47b153);}})[_0x9d52('0x24')](function(_0x8a0cce){if(_0x8a0cce){_0x265fae=_0x8a0cce[_0x9d52('0x4a')];if(!_0x231a24['query'][_0x9d52('0x34')](_0x9d52('0x35'))){_0x47b153[_0x9d52('0x1d')]=qs[_0x9d52('0x1d')](_0x231a24['query'][_0x9d52('0x1d')]);_0x47b153['offset']=qs[_0x9d52('0x1b')](_0x231a24[_0x9d52('0x30')]['offset']);}return _0x376e99[_0x9d52('0x4b')](_0x47b153);}})[_0x9d52('0x24')](function(_0x1c4d30){if(_0x1c4d30){return _0x1c4d30?{'count':_0x265fae,'rows':_0x1c4d30}:null;}})[_0x9d52('0x24')](respondWithResult(_0x3097e8,null))[_0x9d52('0x40')](handleError(_0x3097e8,null));};exports[_0x9d52('0x4d')]=function(_0x18d2b1,_0x5b28ed,_0x23f7fc){var _0xf4a815={};var _0x4e2dc7={};var _0x3bf517;var _0x46351a;return db[_0x9d52('0x2a')]['findOne']({'where':{'id':_0x18d2b1[_0x9d52('0x41')]['id']}})[_0x9d52('0x24')](handleEntityNotFound(_0x5b28ed,null))['then'](function(_0x45705e){if(_0x45705e){_0x3bf517=_0x45705e;_0x4e2dc7[_0x9d52('0x2e')]=_[_0x9d52('0x2f')](db['FreshdeskField'][_0x9d52('0x2b')]);_0x4e2dc7['query']=_['keys'](_0x18d2b1[_0x9d52('0x30')]);_0x4e2dc7[_0x9d52('0x39')]=_[_0x9d52('0x31')](_0x4e2dc7[_0x9d52('0x2e')],_0x4e2dc7[_0x9d52('0x30')]);_0xf4a815['attributes']=_[_0x9d52('0x31')](_0x4e2dc7[_0x9d52('0x2e')],qs[_0x9d52('0x33')](_0x18d2b1['query'][_0x9d52('0x33')]));_0xf4a815['attributes']=_0xf4a815[_0x9d52('0x32')]['length']?_0xf4a815[_0x9d52('0x32')]:_0x4e2dc7['model'];_0xf4a815[_0x9d52('0x36')]=qs[_0x9d52('0x37')](_0x18d2b1[_0x9d52('0x30')][_0x9d52('0x37')]);_0xf4a815['where']=qs[_0x9d52('0x39')](_['pick'](_0x18d2b1[_0x9d52('0x30')],_0x4e2dc7['filters']));if(_0x18d2b1[_0x9d52('0x30')][_0x9d52('0x4c')]){_0xf4a815[_0x9d52('0x38')]=_[_0x9d52('0x3b')](_0xf4a815[_0x9d52('0x38')],{'$or':_[_0x9d52('0x29')](_0xf4a815['attributes'],function(_0x3b1235){var _0x306e69={};_0x306e69[_0x3b1235]={'$like':'%'+_0x18d2b1[_0x9d52('0x30')][_0x9d52('0x4c')]+'%'};return _0x306e69;})});}_0xf4a815=_[_0x9d52('0x3b')]({},_0xf4a815,_0x18d2b1[_0x9d52('0x42')]);return _0x3bf517[_0x9d52('0x4d')](_0xf4a815);}})[_0x9d52('0x24')](function(_0x4e4326){if(_0x4e4326){_0x46351a=_0x4e4326[_0x9d52('0x4a')];if(!_0x18d2b1['query'][_0x9d52('0x34')]('nolimit')){_0xf4a815[_0x9d52('0x1d')]=qs['limit'](_0x18d2b1[_0x9d52('0x30')][_0x9d52('0x1d')]);_0xf4a815[_0x9d52('0x1b')]=qs[_0x9d52('0x1b')](_0x18d2b1['query'][_0x9d52('0x1b')]);}return _0x3bf517[_0x9d52('0x4d')](_0xf4a815);}})[_0x9d52('0x24')](function(_0xc08d7f){if(_0xc08d7f){return _0xc08d7f?{'count':_0x46351a,'rows':_0xc08d7f}:null;}})[_0x9d52('0x24')](respondWithResult(_0x5b28ed,null))[_0x9d52('0x40')](handleError(_0x5b28ed,null));};exports[_0x9d52('0x4e')]=function(_0x305b7c,_0x556b02,_0x1b79dc){var _0x34b538={};var _0x29ea4c={};var _0x585787;var _0x3f364c;return db[_0x9d52('0x2a')]['findOne']({'where':{'id':_0x305b7c[_0x9d52('0x41')]['id']}})[_0x9d52('0x24')](handleEntityNotFound(_0x556b02,null))[_0x9d52('0x24')](function(_0x590958){if(_0x590958){_0x585787=_0x590958;_0x29ea4c[_0x9d52('0x2e')]=_['keys'](db['Tag']['rawAttributes']);_0x29ea4c[_0x9d52('0x30')]=_[_0x9d52('0x2f')](_0x305b7c[_0x9d52('0x30')]);_0x29ea4c[_0x9d52('0x39')]=_[_0x9d52('0x31')](_0x29ea4c[_0x9d52('0x2e')],_0x29ea4c[_0x9d52('0x30')]);_0x34b538[_0x9d52('0x32')]=_[_0x9d52('0x31')](_0x29ea4c[_0x9d52('0x2e')],qs[_0x9d52('0x33')](_0x305b7c[_0x9d52('0x30')]['fields']));_0x34b538[_0x9d52('0x32')]=_0x34b538['attributes'][_0x9d52('0x4a')]?_0x34b538[_0x9d52('0x32')]:_0x29ea4c['model'];_0x34b538[_0x9d52('0x36')]=qs[_0x9d52('0x37')](_0x305b7c[_0x9d52('0x30')]['sort']);_0x34b538[_0x9d52('0x38')]=qs['filters'](_[_0x9d52('0x3a')](_0x305b7c[_0x9d52('0x30')],_0x29ea4c[_0x9d52('0x39')]));if(_0x305b7c[_0x9d52('0x30')][_0x9d52('0x4c')]){_0x34b538[_0x9d52('0x38')]=_[_0x9d52('0x3b')](_0x34b538['where'],{'$or':_[_0x9d52('0x29')](_0x34b538[_0x9d52('0x32')],function(_0x454505){var _0x1ecc08={};_0x1ecc08[_0x454505]={'$like':'%'+_0x305b7c[_0x9d52('0x30')]['filter']+'%'};return _0x1ecc08;})});}_0x34b538=_['merge']({},_0x34b538,_0x305b7c['options']);return _0x585787[_0x9d52('0x4e')](_0x34b538);}})['then'](function(_0x11f63e){if(_0x11f63e){_0x3f364c=_0x11f63e['length'];if(!_0x305b7c[_0x9d52('0x30')][_0x9d52('0x34')]('nolimit')){_0x34b538[_0x9d52('0x1d')]=qs['limit'](_0x305b7c[_0x9d52('0x30')][_0x9d52('0x1d')]);_0x34b538[_0x9d52('0x1b')]=qs[_0x9d52('0x1b')](_0x305b7c['query'][_0x9d52('0x1b')]);}return _0x585787[_0x9d52('0x4e')](_0x34b538);}})['then'](function(_0x4e5949){if(_0x4e5949){return _0x4e5949?{'count':_0x3f364c,'rows':_0x4e5949}:null;}})[_0x9d52('0x24')](respondWithResult(_0x556b02,null))[_0x9d52('0x40')](handleError(_0x556b02,null));};exports[_0x9d52('0x4f')]=function(_0x1fedd3,_0x188e50,_0x43375f){if(_0x1fedd3[_0x9d52('0x44')]['id']){delete _0x1fedd3[_0x9d52('0x44')]['id'];}return db[_0x9d52('0x2a')][_0x9d52('0x48')]({'where':{'id':_0x1fedd3['params']['id']}})[_0x9d52('0x24')](handleEntityNotFound(_0x188e50,null))[_0x9d52('0x24')](function(_0x27f72e){if(_0x27f72e){return _0x27f72e[_0x9d52('0x4f')](_0x1fedd3[_0x9d52('0x44')][_0x9d52('0x50')]||[]);}return null;})[_0x9d52('0x24')](respondWithResult(_0x188e50,null))['catch'](handleError(_0x188e50,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27c6=['int_freshdesk_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','./intFreshdeskConfiguration.attributes','exports','FreshdeskConfiguration'];(function(_0x24711d,_0xbbca94){var _0x3c31e9=function(_0x1a096e){while(--_0x1a096e){_0x24711d['push'](_0x24711d['shift']());}};_0x3c31e9(++_0xbbca94);}(_0x27c6,0xe5));var _0x627c=function(_0x53042a,_0x36cc4d){_0x53042a=_0x53042a-0x0;var _0x321b5f=_0x27c6[_0x53042a];return _0x321b5f;};'use strict';var _=require(_0x627c('0x0'));var util=require(_0x627c('0x1'));var logger=require(_0x627c('0x2'))(_0x627c('0x3'));var moment=require(_0x627c('0x4'));var BPromise=require(_0x627c('0x5'));var rp=require(_0x627c('0x6'));var fs=require('fs');var path=require(_0x627c('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x627c('0x8'));module[_0x627c('0x9')]=function(_0x4b8f7c,_0x3dd01b){return _0x4b8f7c['define'](_0x627c('0xa'),attributes,{'tableName':_0x627c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x89f0=['int_freshdesk_configurations','util','moment','bluebird','request-promise','rimraf','../../config/environment','exports','FreshdeskConfiguration'];(function(_0x555618,_0x1e6fac){var _0xc740a0=function(_0x398480){while(--_0x398480){_0x555618['push'](_0x555618['shift']());}};_0xc740a0(++_0x1e6fac);}(_0x89f0,0x1cc));var _0x089f=function(_0x4522d2,_0x4d384e){_0x4522d2=_0x4522d2-0x0;var _0x22a06f=_0x89f0[_0x4522d2];return _0x22a06f;};'use strict';var _=require('lodash');var util=require(_0x089f('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x089f('0x1'));var BPromise=require(_0x089f('0x2'));var rp=require(_0x089f('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x089f('0x4'));var config=require(_0x089f('0x5'));var attributes=require('./intFreshdeskConfiguration.attributes');module[_0x089f('0x6')]=function(_0x10dcb3,_0x228bba){return _0x10dcb3['define'](_0x089f('0x7'),attributes,{'tableName':_0x089f('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04be=['FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','client','request','then','info'];(function(_0x28d31d,_0x57a4e6){var _0x2df7c1=function(_0x52601d){while(--_0x52601d){_0x28d31d['push'](_0x28d31d['shift']());}};_0x2df7c1(++_0x57a4e6);}(_0x04be,0x163));var _0xe04b=function(_0x3154d8,_0x27d25e){_0x3154d8=_0x3154d8-0x0;var _0x46ec84=_0x04be[_0x3154d8];return _0x46ec84;};'use strict';var _=require(_0xe04b('0x0'));var util=require(_0xe04b('0x1'));var moment=require(_0xe04b('0x2'));var BPromise=require(_0xe04b('0x3'));var rs=require(_0xe04b('0x4'));var fs=require('fs');var Redis=require(_0xe04b('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xe04b('0x6'));var logger=require(_0xe04b('0x7'))('rpc');var config=require(_0xe04b('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xe04b('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x37bde4,_0x1e5e84,_0x29821b){return new BPromise(function(_0x5b1559,_0x629876){return client[_0xe04b('0xa')](_0x37bde4,_0x29821b)[_0xe04b('0xb')](function(_0x5a0cb8){logger[_0xe04b('0xc')](_0xe04b('0xd'),_0x1e5e84,_0xe04b('0xe'));logger[_0xe04b('0xf')](_0xe04b('0x10'),_0x1e5e84,_0xe04b('0xe'),JSON[_0xe04b('0x11')](_0x5a0cb8));if(_0x5a0cb8[_0xe04b('0x12')]){if(_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x13')]===0x1f4){logger[_0xe04b('0x12')](_0xe04b('0xd'),_0x1e5e84,_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);return _0x629876(_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);}logger['error'](_0xe04b('0xd'),_0x1e5e84,_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);return _0x5b1559(_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);}else{logger[_0xe04b('0xc')](_0xe04b('0xd'),_0x1e5e84,_0xe04b('0xe'));_0x5b1559(_0x5a0cb8[_0xe04b('0x15')][_0xe04b('0x14')]);}})[_0xe04b('0x16')](function(_0x4b0c7f){logger['error'](_0xe04b('0xd'),_0x1e5e84,_0x4b0c7f);_0x629876(_0x4b0c7f);});});}
\ No newline at end of file
+var _0x75eb=['message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','then','info','FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0x75eb,0x18a));var _0xb75e=function(_0x2925aa,_0x124902){_0x2925aa=_0x2925aa-0x0;var _0x4edce7=_0x75eb[_0x2925aa];return _0x4edce7;};'use strict';var _=require(_0xb75e('0x0'));var util=require(_0xb75e('0x1'));var moment=require(_0xb75e('0x2'));var BPromise=require(_0xb75e('0x3'));var rs=require(_0xb75e('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb75e('0x5'))['db'];var utils=require(_0xb75e('0x6'));var logger=require('../../config/logger')(_0xb75e('0x7'));var config=require(_0xb75e('0x8'));var jayson=require(_0xb75e('0x9'));var client=jayson[_0xb75e('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4a93dd,_0x3a2a46,_0x191fd4){return new BPromise(function(_0x421664,_0x49dac6){return client['request'](_0x4a93dd,_0x191fd4)[_0xb75e('0xb')](function(_0x512e8f){logger[_0xb75e('0xc')](_0xb75e('0xd'),_0x3a2a46,_0xb75e('0xe'));logger[_0xb75e('0xf')](_0xb75e('0x10'),_0x3a2a46,_0xb75e('0xe'),JSON[_0xb75e('0x11')](_0x512e8f));if(_0x512e8f[_0xb75e('0x12')]){if(_0x512e8f[_0xb75e('0x12')][_0xb75e('0x13')]===0x1f4){logger[_0xb75e('0x12')](_0xb75e('0xd'),_0x3a2a46,_0x512e8f['error']['message']);return _0x49dac6(_0x512e8f[_0xb75e('0x12')]['message']);}logger[_0xb75e('0x12')](_0xb75e('0xd'),_0x3a2a46,_0x512e8f[_0xb75e('0x12')][_0xb75e('0x14')]);return _0x421664(_0x512e8f[_0xb75e('0x12')][_0xb75e('0x14')]);}else{logger[_0xb75e('0xc')](_0xb75e('0xd'),_0x3a2a46,_0xb75e('0xe'));_0x421664(_0x512e8f[_0xb75e('0x15')][_0xb75e('0x14')]);}})[_0xb75e('0x16')](function(_0x2badbf){logger['error'](_0xb75e('0xd'),_0x3a2a46,_0x2badbf);_0x49dac6(_0x2badbf);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x639c=['delete','destroy','exports','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','post','create','put','update'];(function(_0x334fe1,_0x1494b4){var _0x2e20bd=function(_0x3169e7){while(--_0x3169e7){_0x334fe1['push'](_0x334fe1['shift']());}};_0x2e20bd(++_0x1494b4);}(_0x639c,0x9c));var _0xc639=function(_0x283fe6,_0x12604c){_0x283fe6=_0x283fe6-0x0;var _0xd8998=_0x639c[_0x283fe6];return _0xd8998;};'use strict';var multer=require('multer');var util=require(_0xc639('0x0'));var path=require(_0xc639('0x1'));var timeout=require(_0xc639('0x2'));var express=require('express');var router=express[_0xc639('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xc639('0x4'));var config=require(_0xc639('0x5'));var controller=require('./intFreshdeskField.controller');router[_0xc639('0x6')]('/',auth[_0xc639('0x7')](),controller['index']);router['get'](_0xc639('0x8'),auth[_0xc639('0x7')](),controller[_0xc639('0x9')]);router[_0xc639('0xa')]('/',auth[_0xc639('0x7')](),controller[_0xc639('0xb')]);router[_0xc639('0xc')]('/:id',auth[_0xc639('0x7')](),controller[_0xc639('0xd')]);router[_0xc639('0xe')](_0xc639('0x8'),auth['isAuthenticated'](),controller[_0xc639('0xf')]);module[_0xc639('0x10')]=router;
\ No newline at end of file
+var _0xaaa0=['../../config/environment','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5922f7,_0x23885e){var _0x145529=function(_0x34bd66){while(--_0x34bd66){_0x5922f7['push'](_0x5922f7['shift']());}};_0x145529(++_0x23885e);}(_0xaaa0,0x162));var _0x0aaa=function(_0x588bd,_0xbb456d){_0x588bd=_0x588bd-0x0;var _0x398ad0=_0xaaa0[_0x588bd];return _0x398ad0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x0aaa('0x0'));var timeout=require(_0x0aaa('0x1'));var express=require(_0x0aaa('0x2'));var router=express['Router']();var fs_extra=require(_0x0aaa('0x3'));var auth=require(_0x0aaa('0x4'));var interaction=require(_0x0aaa('0x5'));var config=require(_0x0aaa('0x6'));var controller=require('./intFreshdeskField.controller');router[_0x0aaa('0x7')]('/',auth[_0x0aaa('0x8')](),controller[_0x0aaa('0x9')]);router[_0x0aaa('0x7')](_0x0aaa('0xa'),auth['isAuthenticated'](),controller[_0x0aaa('0xb')]);router[_0x0aaa('0xc')]('/',auth[_0x0aaa('0x8')](),controller[_0x0aaa('0xd')]);router[_0x0aaa('0xe')]('/:id',auth[_0x0aaa('0x8')](),controller[_0x0aaa('0xf')]);router[_0x0aaa('0x10')](_0x0aaa('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x0aaa('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcbb6=['picklist','string','STRING','BOOLEAN','sequelize','exports','ENUM','variable','customVariable'];(function(_0x410197,_0x458037){var _0x5e614a=function(_0x5d4538){while(--_0x5d4538){_0x410197['push'](_0x410197['shift']());}};_0x5e614a(++_0x458037);}(_0xcbb6,0x109));var _0x6cbb=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xcbb6[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require(_0x6cbb('0x0'));module[_0x6cbb('0x1')]={'type':{'type':Sequelize[_0x6cbb('0x2')]('string',_0x6cbb('0x3'),_0x6cbb('0x4'),'keyValue',_0x6cbb('0x5')),'defaultValue':_0x6cbb('0x6')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x6cbb('0x7')]},'keyType':{'type':Sequelize['ENUM'](_0x6cbb('0x6'),_0x6cbb('0x3'),_0x6cbb('0x4'))},'keyContent':{'type':Sequelize[_0x6cbb('0x7')]},'idField':{'type':Sequelize[_0x6cbb('0x7')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x6cbb('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x6cbb('0x7')]}};
\ No newline at end of file
+var _0x06df=['string','variable','customVariable','keyValue','picklist','STRING','sequelize','ENUM'];(function(_0x1a0fb5,_0x55eb61){var _0x1bdb87=function(_0x321f0f){while(--_0x321f0f){_0x1a0fb5['push'](_0x1a0fb5['shift']());}};_0x1bdb87(++_0x55eb61);}(_0x06df,0x12e));var _0xf06d=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x06df[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require(_0xf06d('0x0'));module['exports']={'type':{'type':Sequelize[_0xf06d('0x1')](_0xf06d('0x2'),_0xf06d('0x3'),_0xf06d('0x4'),_0xf06d('0x5'),_0xf06d('0x6')),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xf06d('0x1')](_0xf06d('0x2'),_0xf06d('0x3'),_0xf06d('0x4'))},'keyContent':{'type':Sequelize[_0xf06d('0x7')]},'idField':{'type':Sequelize[_0xf06d('0x7')]},'nameField':{'type':Sequelize[_0xf06d('0x7')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf290=['body','update','destroy','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','then','error','send','index','map','rawAttributes','type','key','model','keys','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','merge','name','filter','FreshdeskField','includeAll','findAll','catch','show','params','include','options','find','create'];(function(_0x314e2e,_0x25ddeb){var _0x1067aa=function(_0x4f834a){while(--_0x4f834a){_0x314e2e['push'](_0x314e2e['shift']());}};_0x1067aa(++_0x25ddeb);}(_0xf290,0xde));var _0x0f29=function(_0x38af48,_0x400460){_0x38af48=_0x38af48-0x0;var _0x445384=_0xf290[_0x38af48];return _0x445384;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0f29('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0f29('0x1'));var rp=require('request-promise');var moment=require(_0x0f29('0x2'));var BPromise=require(_0x0f29('0x3'));var Mustache=require(_0x0f29('0x4'));var util=require(_0x0f29('0x5'));var path=require(_0x0f29('0x6'));var sox=require('sox');var csv=require(_0x0f29('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0f29('0x8'));var _=require(_0x0f29('0x9'));var squel=require(_0x0f29('0xa'));var crypto=require(_0x0f29('0xb'));var jsforce=require(_0x0f29('0xc'));var deskjs=require(_0x0f29('0xd'));var toCsv=require(_0x0f29('0x7'));var querystring=require(_0x0f29('0xe'));var Papa=require(_0x0f29('0xf'));var Redis=require(_0x0f29('0x10'));var authService=require(_0x0f29('0x11'));var qs=require(_0x0f29('0x12'));var as=require(_0x0f29('0x13'));var hardwareService=require(_0x0f29('0x14'));var logger=require(_0x0f29('0x15'))('api');var utils=require(_0x0f29('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0f29('0x17'));var db=require(_0x0f29('0x18'))['db'];function respondWithStatusCode(_0x26bbec,_0x222c42){_0x222c42=_0x222c42||0xcc;return function(_0x195424){if(_0x195424){return _0x26bbec[_0x0f29('0x19')](_0x222c42);}return _0x26bbec['status'](_0x222c42)[_0x0f29('0x1a')]();};}function respondWithResult(_0x39961f,_0x2bb7b8){_0x2bb7b8=_0x2bb7b8||0xc8;return function(_0x368984){if(_0x368984){return _0x39961f[_0x0f29('0x1b')](_0x2bb7b8)[_0x0f29('0x1c')](_0x368984);}};}function respondWithFilteredResult(_0x1c518,_0x69df36){return function(_0x547404){if(_0x547404){var _0x4ac37d=typeof _0x69df36[_0x0f29('0x1d')]===_0x0f29('0x1e')&&typeof _0x69df36[_0x0f29('0x1f')]===_0x0f29('0x1e');var _0x4b3f0b=_0x547404[_0x0f29('0x20')];var _0x5d72a5=_0x4ac37d?0x0:_0x69df36[_0x0f29('0x1d')];var _0x4ca5e8=_0x4ac37d?_0x547404['count']:_0x69df36['offset']+_0x69df36[_0x0f29('0x1f')];var _0x8fc03f;if(_0x4ca5e8>=_0x4b3f0b){_0x4ca5e8=_0x4b3f0b;_0x8fc03f=0xc8;}else{_0x8fc03f=0xce;}_0x1c518[_0x0f29('0x1b')](_0x8fc03f);return _0x1c518[_0x0f29('0x21')](_0x0f29('0x22'),_0x5d72a5+'-'+_0x4ca5e8+'/'+_0x4b3f0b)[_0x0f29('0x1c')](_0x547404);}return null;};}function patchUpdates(_0x150271){return function(_0x4888b6){try{jsonpatch[_0x0f29('0x23')](_0x4888b6,_0x150271,!![]);}catch(_0x5a5a03){return BPromise['reject'](_0x5a5a03);}return _0x4888b6['save']();};}function saveUpdates(_0x5d94b9,_0x38a1ce){return function(_0x4a9dd8){if(_0x4a9dd8){return _0x4a9dd8['update'](_0x5d94b9)[_0x0f29('0x24')](function(_0x1840e0){return _0x1840e0;});}return null;};}function removeEntity(_0x346db8,_0x3402dc){return function(_0x29ca73){if(_0x29ca73){return _0x29ca73['destroy']()[_0x0f29('0x24')](function(){_0x346db8['status'](0xcc)[_0x0f29('0x1a')]();});}};}function handleEntityNotFound(_0x26f46f,_0x23c09e){return function(_0x28cfaa){if(!_0x28cfaa){_0x26f46f['sendStatus'](0x194);}return _0x28cfaa;};}function handleError(_0x13a2c7,_0x540d72){_0x540d72=_0x540d72||0x1f4;return function(_0x58b201){logger[_0x0f29('0x25')](_0x58b201['stack']);if(_0x58b201['name']){delete _0x58b201['name'];}_0x13a2c7['status'](_0x540d72)[_0x0f29('0x26')](_0x58b201);};}exports[_0x0f29('0x27')]=function(_0x4cc5a0,_0x1fc4fd){var _0x2ab528={},_0x274c9d={},_0x51e7dc={'count':0x0,'rows':[]};var _0x56e729=_[_0x0f29('0x28')](db['FreshdeskField'][_0x0f29('0x29')],function(_0x561c31){return{'name':_0x561c31['fieldName'],'type':_0x561c31[_0x0f29('0x2a')][_0x0f29('0x2b')]};});_0x274c9d[_0x0f29('0x2c')]=_[_0x0f29('0x28')](_0x56e729,'name');_0x274c9d['query']=_[_0x0f29('0x2d')](_0x4cc5a0['query']);_0x274c9d['filters']=_[_0x0f29('0x2e')](_0x274c9d['model'],_0x274c9d[_0x0f29('0x2f')]);_0x2ab528['attributes']=_['intersection'](_0x274c9d[_0x0f29('0x2c')],qs[_0x0f29('0x30')](_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x30')]));_0x2ab528[_0x0f29('0x31')]=_0x2ab528['attributes'][_0x0f29('0x32')]?_0x2ab528['attributes']:_0x274c9d[_0x0f29('0x2c')];if(!_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x33')](_0x0f29('0x34'))){_0x2ab528['limit']=qs[_0x0f29('0x1f')](_0x4cc5a0[_0x0f29('0x2f')]['limit']);_0x2ab528[_0x0f29('0x1d')]=qs[_0x0f29('0x1d')](_0x4cc5a0['query']['offset']);}_0x2ab528[_0x0f29('0x35')]=qs[_0x0f29('0x36')](_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x36')]);_0x2ab528[_0x0f29('0x37')]=qs[_0x0f29('0x38')](_['pick'](_0x4cc5a0[_0x0f29('0x2f')],_0x274c9d['filters']),_0x56e729);if(_0x4cc5a0[_0x0f29('0x2f')]['filter']){_0x2ab528[_0x0f29('0x37')]=_[_0x0f29('0x39')](_0x2ab528[_0x0f29('0x37')],{'$or':_['map'](_0x56e729,function(_0x5f0d26){if(_0x5f0d26[_0x0f29('0x2a')]!=='VIRTUAL'){var _0x312c07={};_0x312c07[_0x5f0d26[_0x0f29('0x3a')]]={'$like':'%'+_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x3b')]+'%'};return _0x312c07;}})});}_0x2ab528=_[_0x0f29('0x39')]({},_0x2ab528,_0x4cc5a0['options']);var _0x13c05c={'where':_0x2ab528[_0x0f29('0x37')]};return db[_0x0f29('0x3c')][_0x0f29('0x20')](_0x13c05c)[_0x0f29('0x24')](function(_0x4043d9){_0x51e7dc[_0x0f29('0x20')]=_0x4043d9;if(_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x3d')]){_0x2ab528['include']=[{'all':!![]}];}return db[_0x0f29('0x3c')][_0x0f29('0x3e')](_0x2ab528);})[_0x0f29('0x24')](function(_0x11b1dc){_0x51e7dc['rows']=_0x11b1dc;return _0x51e7dc;})[_0x0f29('0x24')](respondWithFilteredResult(_0x1fc4fd,_0x2ab528))[_0x0f29('0x3f')](handleError(_0x1fc4fd,null));};exports[_0x0f29('0x40')]=function(_0x5c2282,_0x185493){var _0x56062d={'raw':!![],'where':{'id':_0x5c2282[_0x0f29('0x41')]['id']}},_0x410c59={};_0x410c59[_0x0f29('0x2c')]=_['keys'](db[_0x0f29('0x3c')][_0x0f29('0x29')]);_0x410c59[_0x0f29('0x2f')]=_[_0x0f29('0x2d')](_0x5c2282[_0x0f29('0x2f')]);_0x410c59[_0x0f29('0x38')]=_[_0x0f29('0x2e')](_0x410c59[_0x0f29('0x2c')],_0x410c59['query']);_0x56062d['attributes']=_['intersection'](_0x410c59[_0x0f29('0x2c')],qs[_0x0f29('0x30')](_0x5c2282[_0x0f29('0x2f')][_0x0f29('0x30')]));_0x56062d[_0x0f29('0x31')]=_0x56062d[_0x0f29('0x31')]['length']?_0x56062d[_0x0f29('0x31')]:_0x410c59['model'];if(_0x5c2282[_0x0f29('0x2f')]['includeAll']){_0x56062d[_0x0f29('0x42')]=[{'all':!![]}];}_0x56062d=_[_0x0f29('0x39')]({},_0x56062d,_0x5c2282[_0x0f29('0x43')]);return db[_0x0f29('0x3c')][_0x0f29('0x44')](_0x56062d)['then'](handleEntityNotFound(_0x185493,null))[_0x0f29('0x24')](respondWithResult(_0x185493,null))[_0x0f29('0x3f')](handleError(_0x185493,null));};exports[_0x0f29('0x45')]=function(_0x5a05b6,_0x14b747){return db['FreshdeskField']['create'](_0x5a05b6[_0x0f29('0x46')],{})[_0x0f29('0x24')](respondWithResult(_0x14b747,0xc9))[_0x0f29('0x3f')](handleError(_0x14b747,null));};exports[_0x0f29('0x47')]=function(_0x20aa53,_0x335435){if(_0x20aa53['body']['id']){delete _0x20aa53[_0x0f29('0x46')]['id'];}return db[_0x0f29('0x3c')][_0x0f29('0x44')]({'where':{'id':_0x20aa53[_0x0f29('0x41')]['id']}})[_0x0f29('0x24')](handleEntityNotFound(_0x335435,null))[_0x0f29('0x24')](saveUpdates(_0x20aa53[_0x0f29('0x46')],null))[_0x0f29('0x24')](respondWithResult(_0x335435,null))[_0x0f29('0x3f')](handleError(_0x335435,null));};exports[_0x0f29('0x48')]=function(_0x5cd4a9,_0x5e4479){return db[_0x0f29('0x3c')][_0x0f29('0x44')]({'where':{'id':_0x5cd4a9[_0x0f29('0x41')]['id']}})[_0x0f29('0x24')](handleEntityNotFound(_0x5e4479,null))['then'](removeEntity(_0x5e4479,null))[_0x0f29('0x3f')](handleError(_0x5e4479,null));};
\ No newline at end of file
+var _0xe3d4=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','reject','save','destroy','error','name','index','FreshdeskField','rawAttributes','type','key','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','map','VIRTUAL','options','then','includeAll','include','findAll','catch','show','params','keys','find','create','update','body','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x494fdb,_0x4acedc){var _0x5d4b96=function(_0x435edd){while(--_0x435edd){_0x494fdb['push'](_0x494fdb['shift']());}};_0x5d4b96(++_0x4acedc);}(_0xe3d4,0xc6));var _0x4e3d=function(_0x1bafb1,_0x3f4d43){_0x1bafb1=_0x1bafb1-0x0;var _0x1e9aa9=_0xe3d4[_0x1bafb1];return _0x1e9aa9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4e3d('0x0'));var zipdir=require(_0x4e3d('0x1'));var jsonpatch=require(_0x4e3d('0x2'));var rp=require('request-promise');var moment=require(_0x4e3d('0x3'));var BPromise=require(_0x4e3d('0x4'));var Mustache=require('mustache');var util=require(_0x4e3d('0x5'));var path=require('path');var sox=require(_0x4e3d('0x6'));var csv=require(_0x4e3d('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4e3d('0x8'));var _=require(_0x4e3d('0x9'));var squel=require('squel');var crypto=require(_0x4e3d('0xa'));var jsforce=require(_0x4e3d('0xb'));var deskjs=require(_0x4e3d('0xc'));var toCsv=require(_0x4e3d('0x7'));var querystring=require(_0x4e3d('0xd'));var Papa=require(_0x4e3d('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4e3d('0xf'));var as=require(_0x4e3d('0x10'));var hardwareService=require(_0x4e3d('0x11'));var logger=require(_0x4e3d('0x12'))(_0x4e3d('0x13'));var utils=require(_0x4e3d('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x4e3d('0x15'));var db=require(_0x4e3d('0x16'))['db'];function respondWithStatusCode(_0x2fc5f6,_0x30b359){_0x30b359=_0x30b359||0xcc;return function(_0x3556ec){if(_0x3556ec){return _0x2fc5f6[_0x4e3d('0x17')](_0x30b359);}return _0x2fc5f6[_0x4e3d('0x18')](_0x30b359)[_0x4e3d('0x19')]();};}function respondWithResult(_0x54debc,_0x44022b){_0x44022b=_0x44022b||0xc8;return function(_0x4325b4){if(_0x4325b4){return _0x54debc[_0x4e3d('0x18')](_0x44022b)['json'](_0x4325b4);}};}function respondWithFilteredResult(_0x3708be,_0x438973){return function(_0x46bf2b){if(_0x46bf2b){var _0xc20768=typeof _0x438973[_0x4e3d('0x1a')]===_0x4e3d('0x1b')&&typeof _0x438973[_0x4e3d('0x1c')]===_0x4e3d('0x1b');var _0x554ba6=_0x46bf2b[_0x4e3d('0x1d')];var _0x5129d5=_0xc20768?0x0:_0x438973['offset'];var _0x19010b=_0xc20768?_0x46bf2b['count']:_0x438973['offset']+_0x438973[_0x4e3d('0x1c')];var _0x2e37ad;if(_0x19010b>=_0x554ba6){_0x19010b=_0x554ba6;_0x2e37ad=0xc8;}else{_0x2e37ad=0xce;}_0x3708be[_0x4e3d('0x18')](_0x2e37ad);return _0x3708be[_0x4e3d('0x1e')]('Content-Range',_0x5129d5+'-'+_0x19010b+'/'+_0x554ba6)[_0x4e3d('0x1f')](_0x46bf2b);}return null;};}function patchUpdates(_0x552ca7){return function(_0x20c533){try{jsonpatch['apply'](_0x20c533,_0x552ca7,!![]);}catch(_0x170f88){return BPromise[_0x4e3d('0x20')](_0x170f88);}return _0x20c533[_0x4e3d('0x21')]();};}function saveUpdates(_0x534185,_0x224c05){return function(_0x2c8186){if(_0x2c8186){return _0x2c8186['update'](_0x534185)['then'](function(_0x18271a){return _0x18271a;});}return null;};}function removeEntity(_0x7a0b3c,_0x35a31b){return function(_0x49301f){if(_0x49301f){return _0x49301f[_0x4e3d('0x22')]()['then'](function(){_0x7a0b3c[_0x4e3d('0x18')](0xcc)[_0x4e3d('0x19')]();});}};}function handleEntityNotFound(_0x43bc1b,_0x50d9db){return function(_0x2434ea){if(!_0x2434ea){_0x43bc1b[_0x4e3d('0x17')](0x194);}return _0x2434ea;};}function handleError(_0x5b1a18,_0x192cb4){_0x192cb4=_0x192cb4||0x1f4;return function(_0x21d7e4){logger[_0x4e3d('0x23')](_0x21d7e4['stack']);if(_0x21d7e4[_0x4e3d('0x24')]){delete _0x21d7e4['name'];}_0x5b1a18[_0x4e3d('0x18')](_0x192cb4)['send'](_0x21d7e4);};}exports[_0x4e3d('0x25')]=function(_0x2d1991,_0x17c0f4){var _0x4dfc6b={},_0x2c5935={},_0x9133f9={'count':0x0,'rows':[]};var _0x492788=_['map'](db[_0x4e3d('0x26')][_0x4e3d('0x27')],function(_0x36621d){return{'name':_0x36621d['fieldName'],'type':_0x36621d[_0x4e3d('0x28')][_0x4e3d('0x29')]};});_0x2c5935['model']=_['map'](_0x492788,_0x4e3d('0x24'));_0x2c5935[_0x4e3d('0x2a')]=_['keys'](_0x2d1991[_0x4e3d('0x2a')]);_0x2c5935['filters']=_[_0x4e3d('0x2b')](_0x2c5935[_0x4e3d('0x2c')],_0x2c5935['query']);_0x4dfc6b[_0x4e3d('0x2d')]=_[_0x4e3d('0x2b')](_0x2c5935[_0x4e3d('0x2c')],qs['fields'](_0x2d1991[_0x4e3d('0x2a')][_0x4e3d('0x2e')]));_0x4dfc6b['attributes']=_0x4dfc6b[_0x4e3d('0x2d')][_0x4e3d('0x2f')]?_0x4dfc6b['attributes']:_0x2c5935[_0x4e3d('0x2c')];if(!_0x2d1991[_0x4e3d('0x2a')][_0x4e3d('0x30')](_0x4e3d('0x31'))){_0x4dfc6b[_0x4e3d('0x1c')]=qs[_0x4e3d('0x1c')](_0x2d1991[_0x4e3d('0x2a')][_0x4e3d('0x1c')]);_0x4dfc6b[_0x4e3d('0x1a')]=qs[_0x4e3d('0x1a')](_0x2d1991[_0x4e3d('0x2a')]['offset']);}_0x4dfc6b[_0x4e3d('0x32')]=qs[_0x4e3d('0x33')](_0x2d1991[_0x4e3d('0x2a')][_0x4e3d('0x33')]);_0x4dfc6b[_0x4e3d('0x34')]=qs[_0x4e3d('0x35')](_['pick'](_0x2d1991[_0x4e3d('0x2a')],_0x2c5935[_0x4e3d('0x35')]),_0x492788);if(_0x2d1991[_0x4e3d('0x2a')][_0x4e3d('0x36')]){_0x4dfc6b[_0x4e3d('0x34')]=_[_0x4e3d('0x37')](_0x4dfc6b[_0x4e3d('0x34')],{'$or':_[_0x4e3d('0x38')](_0x492788,function(_0x5ba9b5){if(_0x5ba9b5[_0x4e3d('0x28')]!==_0x4e3d('0x39')){var _0xdd79a0={};_0xdd79a0[_0x5ba9b5[_0x4e3d('0x24')]]={'$like':'%'+_0x2d1991[_0x4e3d('0x2a')][_0x4e3d('0x36')]+'%'};return _0xdd79a0;}})});}_0x4dfc6b=_['merge']({},_0x4dfc6b,_0x2d1991[_0x4e3d('0x3a')]);var _0x4e8745={'where':_0x4dfc6b[_0x4e3d('0x34')]};return db[_0x4e3d('0x26')][_0x4e3d('0x1d')](_0x4e8745)[_0x4e3d('0x3b')](function(_0x279e69){_0x9133f9[_0x4e3d('0x1d')]=_0x279e69;if(_0x2d1991['query'][_0x4e3d('0x3c')]){_0x4dfc6b[_0x4e3d('0x3d')]=[{'all':!![]}];}return db[_0x4e3d('0x26')][_0x4e3d('0x3e')](_0x4dfc6b);})[_0x4e3d('0x3b')](function(_0x4e1b89){_0x9133f9['rows']=_0x4e1b89;return _0x9133f9;})[_0x4e3d('0x3b')](respondWithFilteredResult(_0x17c0f4,_0x4dfc6b))[_0x4e3d('0x3f')](handleError(_0x17c0f4,null));};exports[_0x4e3d('0x40')]=function(_0x4f1c27,_0x36a36c){var _0x334275={'raw':!![],'where':{'id':_0x4f1c27[_0x4e3d('0x41')]['id']}},_0x572134={};_0x572134['model']=_[_0x4e3d('0x42')](db[_0x4e3d('0x26')][_0x4e3d('0x27')]);_0x572134['query']=_[_0x4e3d('0x42')](_0x4f1c27['query']);_0x572134[_0x4e3d('0x35')]=_[_0x4e3d('0x2b')](_0x572134[_0x4e3d('0x2c')],_0x572134['query']);_0x334275[_0x4e3d('0x2d')]=_[_0x4e3d('0x2b')](_0x572134[_0x4e3d('0x2c')],qs[_0x4e3d('0x2e')](_0x4f1c27[_0x4e3d('0x2a')][_0x4e3d('0x2e')]));_0x334275[_0x4e3d('0x2d')]=_0x334275[_0x4e3d('0x2d')][_0x4e3d('0x2f')]?_0x334275[_0x4e3d('0x2d')]:_0x572134['model'];if(_0x4f1c27[_0x4e3d('0x2a')][_0x4e3d('0x3c')]){_0x334275[_0x4e3d('0x3d')]=[{'all':!![]}];}_0x334275=_[_0x4e3d('0x37')]({},_0x334275,_0x4f1c27[_0x4e3d('0x3a')]);return db[_0x4e3d('0x26')][_0x4e3d('0x43')](_0x334275)[_0x4e3d('0x3b')](handleEntityNotFound(_0x36a36c,null))[_0x4e3d('0x3b')](respondWithResult(_0x36a36c,null))[_0x4e3d('0x3f')](handleError(_0x36a36c,null));};exports[_0x4e3d('0x44')]=function(_0x63bcae,_0x4fba01){return db['FreshdeskField'][_0x4e3d('0x44')](_0x63bcae['body'],{})[_0x4e3d('0x3b')](respondWithResult(_0x4fba01,0xc9))[_0x4e3d('0x3f')](handleError(_0x4fba01,null));};exports[_0x4e3d('0x45')]=function(_0x229b3f,_0x403fa7){if(_0x229b3f['body']['id']){delete _0x229b3f[_0x4e3d('0x46')]['id'];}return db[_0x4e3d('0x26')]['find']({'where':{'id':_0x229b3f['params']['id']}})['then'](handleEntityNotFound(_0x403fa7,null))['then'](saveUpdates(_0x229b3f[_0x4e3d('0x46')],null))[_0x4e3d('0x3b')](respondWithResult(_0x403fa7,null))[_0x4e3d('0x3f')](handleError(_0x403fa7,null));};exports[_0x4e3d('0x22')]=function(_0x1eeaf1,_0x2c59ec){return db[_0x4e3d('0x26')]['find']({'where':{'id':_0x1eeaf1[_0x4e3d('0x41')]['id']}})[_0x4e3d('0x3b')](handleEntityNotFound(_0x2c59ec,null))[_0x4e3d('0x3b')](removeEntity(_0x2c59ec,null))[_0x4e3d('0x3f')](handleError(_0x2c59ec,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7df=['moment','bluebird','path','../../config/environment','./intFreshdeskField.attributes','FreshdeskField','int_freshdesk_fields','freshdesk_unique_index','idField','FieldId','lodash','../../config/logger','api'];(function(_0x216d45,_0x4989fe){var _0xbaac0b=function(_0x308a41){while(--_0x308a41){_0x216d45['push'](_0x216d45['shift']());}};_0xbaac0b(++_0x4989fe);}(_0xf7df,0x10e));var _0xff7d=function(_0x1ed498,_0x5c19c9){_0x1ed498=_0x1ed498-0x0;var _0x5d8415=_0xf7df[_0x1ed498];return _0x5d8415;};'use strict';var _=require(_0xff7d('0x0'));var util=require('util');var logger=require(_0xff7d('0x1'))(_0xff7d('0x2'));var moment=require(_0xff7d('0x3'));var BPromise=require(_0xff7d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xff7d('0x5'));var rimraf=require('rimraf');var config=require(_0xff7d('0x6'));var attributes=require(_0xff7d('0x7'));module['exports']=function(_0x758bfb,_0x54644b){return _0x758bfb['define'](_0xff7d('0x8'),attributes,{'tableName':_0xff7d('0x9'),'paranoid':![],'indexes':[{'name':_0xff7d('0xa'),'fields':[_0xff7d('0xb'),_0xff7d('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xf774=['path','rimraf','../../config/environment','./intFreshdeskField.attributes','define','FreshdeskField','int_freshdesk_fields','idField','lodash','util','../../config/logger','api','moment','request-promise'];(function(_0x36b275,_0x156f00){var _0x4bfc22=function(_0x135409){while(--_0x135409){_0x36b275['push'](_0x36b275['shift']());}};_0x4bfc22(++_0x156f00);}(_0xf774,0x1e4));var _0x4f77=function(_0x3da485,_0x349bfb){_0x3da485=_0x3da485-0x0;var _0x17e6e5=_0xf774[_0x3da485];return _0x17e6e5;};'use strict';var _=require(_0x4f77('0x0'));var util=require(_0x4f77('0x1'));var logger=require(_0x4f77('0x2'))(_0x4f77('0x3'));var moment=require(_0x4f77('0x4'));var BPromise=require('bluebird');var rp=require(_0x4f77('0x5'));var fs=require('fs');var path=require(_0x4f77('0x6'));var rimraf=require(_0x4f77('0x7'));var config=require(_0x4f77('0x8'));var attributes=require(_0x4f77('0x9'));module['exports']=function(_0xb2d307,_0x167797){return _0xb2d307[_0x4f77('0xa')](_0x4f77('0xb'),attributes,{'tableName':_0x4f77('0xc'),'paranoid':![],'indexes':[{'name':'freshdesk_unique_index','fields':[_0x4f77('0xd'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b33=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','FreshdeskField,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x2c138f,_0x2fedd8){var _0x30063d=function(_0x29b439){while(--_0x29b439){_0x2c138f['push'](_0x2c138f['shift']());}};_0x30063d(++_0x2fedd8);}(_0x5b33,0xe0));var _0x35b3=function(_0x1e9912,_0x50f826){_0x1e9912=_0x1e9912-0x0;var _0x193d70=_0x5b33[_0x1e9912];return _0x193d70;};'use strict';var _=require(_0x35b3('0x0'));var util=require(_0x35b3('0x1'));var moment=require('moment');var BPromise=require(_0x35b3('0x2'));var rs=require(_0x35b3('0x3'));var fs=require('fs');var Redis=require(_0x35b3('0x4'));var db=require(_0x35b3('0x5'))['db'];var utils=require(_0x35b3('0x6'));var logger=require(_0x35b3('0x7'))(_0x35b3('0x8'));var config=require(_0x35b3('0x9'));var jayson=require(_0x35b3('0xa'));var client=jayson[_0x35b3('0xb')][_0x35b3('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1e8bf0,_0x39f66b,_0x4b7430){return new BPromise(function(_0x585626,_0x534cdc){return client[_0x35b3('0xd')](_0x1e8bf0,_0x4b7430)[_0x35b3('0xe')](function(_0x404e79){logger[_0x35b3('0xf')](_0x35b3('0x10'),_0x39f66b,_0x35b3('0x11'));logger['debug']('FreshdeskField,\x20%s,\x20%s,\x20%s',_0x39f66b,'request\x20sent',JSON[_0x35b3('0x12')](_0x404e79));if(_0x404e79[_0x35b3('0x13')]){if(_0x404e79['error'][_0x35b3('0x14')]===0x1f4){logger['error'](_0x35b3('0x10'),_0x39f66b,_0x404e79[_0x35b3('0x13')][_0x35b3('0x15')]);return _0x534cdc(_0x404e79[_0x35b3('0x13')][_0x35b3('0x15')]);}logger[_0x35b3('0x13')]('FreshdeskField,\x20%s,\x20%s',_0x39f66b,_0x404e79[_0x35b3('0x13')][_0x35b3('0x15')]);return _0x585626(_0x404e79[_0x35b3('0x13')]['message']);}else{logger['info'](_0x35b3('0x10'),_0x39f66b,_0x35b3('0x11'));_0x585626(_0x404e79[_0x35b3('0x16')][_0x35b3('0x15')]);}})['catch'](function(_0x2bd4b1){logger[_0x35b3('0x13')]('FreshdeskField,\x20%s,\x20%s',_0x39f66b,_0x2bd4b1);_0x534cdc(_0x2bd4b1);});});}
\ No newline at end of file
+var _0x1d5a=['jayson/promise','client','http','info','FreshdeskField,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','catch','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x1d5a,0x13b));var _0xa1d5=function(_0xe2b483,_0x4739ef){_0xe2b483=_0xe2b483-0x0;var _0x3ba818=_0x1d5a[_0xe2b483];return _0x3ba818;};'use strict';var _=require(_0xa1d5('0x0'));var util=require(_0xa1d5('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xa1d5('0x2'));var fs=require('fs');var Redis=require(_0xa1d5('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xa1d5('0x4'));var logger=require(_0xa1d5('0x5'))(_0xa1d5('0x6'));var config=require(_0xa1d5('0x7'));var jayson=require(_0xa1d5('0x8'));var client=jayson[_0xa1d5('0x9')][_0xa1d5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1c4104,_0x50b594,_0x5671bf){return new BPromise(function(_0xf28035,_0x81c5ea){return client['request'](_0x1c4104,_0x5671bf)['then'](function(_0x36d00c){logger[_0xa1d5('0xb')](_0xa1d5('0xc'),_0x50b594,'request\x20sent');logger[_0xa1d5('0xd')]('FreshdeskField,\x20%s,\x20%s,\x20%s',_0x50b594,_0xa1d5('0xe'),JSON[_0xa1d5('0xf')](_0x36d00c));if(_0x36d00c[_0xa1d5('0x10')]){if(_0x36d00c[_0xa1d5('0x10')]['code']===0x1f4){logger[_0xa1d5('0x10')](_0xa1d5('0xc'),_0x50b594,_0x36d00c['error'][_0xa1d5('0x11')]);return _0x81c5ea(_0x36d00c[_0xa1d5('0x10')][_0xa1d5('0x11')]);}logger[_0xa1d5('0x10')](_0xa1d5('0xc'),_0x50b594,_0x36d00c[_0xa1d5('0x10')]['message']);return _0xf28035(_0x36d00c[_0xa1d5('0x10')]['message']);}else{logger['info'](_0xa1d5('0xc'),_0x50b594,'request\x20sent');_0xf28035(_0x36d00c['result'][_0xa1d5('0x11')]);}})[_0xa1d5('0x12')](function(_0x55d505){logger['error'](_0xa1d5('0xc'),_0x50b594,_0x55d505);_0x81c5ea(_0x55d505);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84a0=['isAuthenticated','index','get','/:id','/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','put','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../config/environment','./intFreshsalesAccount.controller'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x84a0,0x66));var _0x084a=function(_0x2d531d,_0x3623e8){_0x2d531d=_0x2d531d-0x0;var _0x1defe3=_0x84a0[_0x2d531d];return _0x1defe3;};'use strict';var multer=require(_0x084a('0x0'));var util=require(_0x084a('0x1'));var path=require(_0x084a('0x2'));var timeout=require(_0x084a('0x3'));var express=require('express');var router=express[_0x084a('0x4')]();var fs_extra=require(_0x084a('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x084a('0x6'));var controller=require(_0x084a('0x7'));router['get']('/',auth[_0x084a('0x8')](),controller[_0x084a('0x9')]);router[_0x084a('0xa')](_0x084a('0xb'),auth[_0x084a('0x8')](),controller['show']);router[_0x084a('0xa')](_0x084a('0xc'),auth[_0x084a('0x8')](),controller[_0x084a('0xd')]);router[_0x084a('0xa')]('/:id/fields',auth['isAuthenticated'](),controller[_0x084a('0xe')]);router[_0x084a('0xf')]('/',auth[_0x084a('0x8')](),controller[_0x084a('0x10')]);router[_0x084a('0xf')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x084a('0x11')]);router[_0x084a('0x12')](_0x084a('0xb'),auth[_0x084a('0x8')](),controller[_0x084a('0x13')]);router[_0x084a('0x14')](_0x084a('0xb'),auth[_0x084a('0x8')](),controller['destroy']);module[_0x084a('0x15')]=router;
\ No newline at end of file
+var _0xa75b=['post','create','/:id/configurations','addConfiguration','put','delete','destroy','exports','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesAccount.controller','get','isAuthenticated','index','/:id','getConfigurations','/:id/fields','getFields'];(function(_0xdf8bc2,_0x46f9ed){var _0x3f2cf6=function(_0x67cc9f){while(--_0x67cc9f){_0xdf8bc2['push'](_0xdf8bc2['shift']());}};_0x3f2cf6(++_0x46f9ed);}(_0xa75b,0x170));var _0xba75=function(_0x545e35,_0x5bc8d4){_0x545e35=_0x545e35-0x0;var _0x2f5bc5=_0xa75b[_0x545e35];return _0x2f5bc5;};'use strict';var multer=require(_0xba75('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xba75('0x1'));var express=require(_0xba75('0x2'));var router=express[_0xba75('0x3')]();var fs_extra=require(_0xba75('0x4'));var auth=require(_0xba75('0x5'));var interaction=require(_0xba75('0x6'));var config=require(_0xba75('0x7'));var controller=require(_0xba75('0x8'));router[_0xba75('0x9')]('/',auth[_0xba75('0xa')](),controller[_0xba75('0xb')]);router[_0xba75('0x9')](_0xba75('0xc'),auth['isAuthenticated'](),controller['show']);router[_0xba75('0x9')]('/:id/configurations',auth['isAuthenticated'](),controller[_0xba75('0xd')]);router['get'](_0xba75('0xe'),auth[_0xba75('0xa')](),controller[_0xba75('0xf')]);router[_0xba75('0x10')]('/',auth[_0xba75('0xa')](),controller[_0xba75('0x11')]);router[_0xba75('0x10')](_0xba75('0x12'),auth[_0xba75('0xa')](),controller[_0xba75('0x13')]);router[_0xba75('0x14')](_0xba75('0xc'),auth['isAuthenticated'](),controller['update']);router[_0xba75('0x15')]('/:id',auth[_0xba75('0xa')](),controller[_0xba75('0x16')]);module[_0xba75('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x958a=['sequelize','exports','STRING','username'];(function(_0x22b68a,_0x2bffc3){var _0x1ac67a=function(_0x25f9d5){while(--_0x25f9d5){_0x22b68a['push'](_0x22b68a['shift']());}};_0x1ac67a(++_0x2bffc3);}(_0x958a,0x128));var _0xa958=function(_0x12522f,_0x4fd8e5){_0x12522f=_0x12522f-0x0;var _0x2dea82=_0x958a[_0x12522f];return _0x2dea82;};'use strict';var Sequelize=require(_0xa958('0x0'));module[_0xa958('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xa958('0x2')]},'username':{'type':Sequelize[_0xa958('0x2')],'unique':_0xa958('0x3')},'apiKey':{'type':Sequelize[_0xa958('0x2')]},'remoteUri':{'type':Sequelize[_0xa958('0x2')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0xa958('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xcf2f=['exports','STRING','remoteUri','sequelize'];(function(_0x3375bf,_0x2602d5){var _0x1fa537=function(_0x2c660d){while(--_0x2c660d){_0x3375bf['push'](_0x3375bf['shift']());}};_0x1fa537(++_0x2602d5);}(_0xcf2f,0xa7));var _0xfcf2=function(_0x5d4398,_0x26461e){_0x5d4398=_0x5d4398-0x0;var _0x485af4=_0xcf2f[_0x5d4398];return _0x485af4;};'use strict';var Sequelize=require(_0xfcf2('0x0'));module[_0xfcf2('0x1')]={'name':{'type':Sequelize[_0xfcf2('0x2')]},'description':{'type':Sequelize[_0xfcf2('0x2')]},'username':{'type':Sequelize[_0xfcf2('0x2')],'unique':'username'},'apiKey':{'type':Sequelize[_0xfcf2('0x2')]},'remoteUri':{'type':Sequelize[_0xfcf2('0x2')],'unique':_0xfcf2('0x3')},'serverUrl':{'type':Sequelize[_0xfcf2('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28a6=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','reject','save','destroy','then','error','name','send','index','map','FreshsalesAccount','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','type','merge','options','findAll','rows','show','params','rawAttributes','includeAll','include','catch','create','body','update','find','findOne','order','getConfigurations','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshsalesField','Descriptions','username','apiKey','remoteUri','slice','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','getFields,\x20%s,\x20%s,\x20%s','getFields','test','statusCode','eml-format','rimraf','fast-json-patch','request-promise','bluebird','path','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x28a6,0xb8));var _0x628a=function(_0x4697fa,_0x21c841){_0x4697fa=_0x4697fa-0x0;var _0x390950=_0x28a6[_0x4697fa];return _0x390950;};'use strict';var emlformat=require(_0x628a('0x0'));var rimraf=require(_0x628a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x628a('0x2'));var rp=require(_0x628a('0x3'));var moment=require('moment');var BPromise=require(_0x628a('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x628a('0x5'));var sox=require(_0x628a('0x6'));var csv=require(_0x628a('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x628a('0x8'));var _=require(_0x628a('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x628a('0xa'));var deskjs=require(_0x628a('0xb'));var toCsv=require(_0x628a('0x7'));var querystring=require(_0x628a('0xc'));var Papa=require(_0x628a('0xd'));var Redis=require('ioredis');var authService=require(_0x628a('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x628a('0xf'));var hardwareService=require(_0x628a('0x10'));var logger=require(_0x628a('0x11'))(_0x628a('0x12'));var utils=require(_0x628a('0x13'));var config=require(_0x628a('0x14'));var licenseUtil=require(_0x628a('0x15'));var db=require(_0x628a('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x508cb6,_0x38c50a){_0x38c50a=_0x38c50a||0xcc;return function(_0x10b21c){if(_0x10b21c){return _0x508cb6[_0x628a('0x17')](_0x38c50a);}return _0x508cb6[_0x628a('0x18')](_0x38c50a)[_0x628a('0x19')]();};}function respondWithResult(_0x40700c,_0x476721){_0x476721=_0x476721||0xc8;return function(_0x5defd5){if(_0x5defd5){return _0x40700c[_0x628a('0x18')](_0x476721)['json'](_0x5defd5);}};}function respondWithFilteredResult(_0x4f0345,_0x4a962c){return function(_0x1cb7f3){if(_0x1cb7f3){var _0x3ecc8f=typeof _0x4a962c[_0x628a('0x1a')]===_0x628a('0x1b')&&typeof _0x4a962c[_0x628a('0x1c')]===_0x628a('0x1b');var _0x188c1c=_0x1cb7f3[_0x628a('0x1d')];var _0x4aa9d7=_0x3ecc8f?0x0:_0x4a962c['offset'];var _0x56ef52=_0x3ecc8f?_0x1cb7f3[_0x628a('0x1d')]:_0x4a962c['offset']+_0x4a962c[_0x628a('0x1c')];var _0xc67ffb;if(_0x56ef52>=_0x188c1c){_0x56ef52=_0x188c1c;_0xc67ffb=0xc8;}else{_0xc67ffb=0xce;}_0x4f0345[_0x628a('0x18')](_0xc67ffb);return _0x4f0345[_0x628a('0x1e')]('Content-Range',_0x4aa9d7+'-'+_0x56ef52+'/'+_0x188c1c)[_0x628a('0x1f')](_0x1cb7f3);}return null;};}function patchUpdates(_0x2f4433){return function(_0x3a2f38){try{jsonpatch['apply'](_0x3a2f38,_0x2f4433,!![]);}catch(_0x270cc7){return BPromise[_0x628a('0x20')](_0x270cc7);}return _0x3a2f38[_0x628a('0x21')]();};}function saveUpdates(_0x3122be,_0x2b13ca){return function(_0x3983ac){if(_0x3983ac){return _0x3983ac['update'](_0x3122be)['then'](function(_0x1f6798){return _0x1f6798;});}return null;};}function removeEntity(_0x584a89,_0xc02d1a){return function(_0x3edb98){if(_0x3edb98){return _0x3edb98[_0x628a('0x22')]()[_0x628a('0x23')](function(){_0x584a89[_0x628a('0x18')](0xcc)[_0x628a('0x19')]();});}};}function handleEntityNotFound(_0x2e241b,_0x354d6a){return function(_0x2a637d){if(!_0x2a637d){_0x2e241b['sendStatus'](0x194);}return _0x2a637d;};}function handleError(_0x52277d,_0x3aa49c){_0x3aa49c=_0x3aa49c||0x1f4;return function(_0x573acb){logger[_0x628a('0x24')](_0x573acb['stack']);if(_0x573acb[_0x628a('0x25')]){delete _0x573acb[_0x628a('0x25')];}_0x52277d[_0x628a('0x18')](_0x3aa49c)[_0x628a('0x26')](_0x573acb);};}exports[_0x628a('0x27')]=function(_0x2ab530,_0x1590fe){var _0xff36f7={},_0x234b38={},_0x1b760f={'count':0x0,'rows':[]};var _0x5c8903=_[_0x628a('0x28')](db[_0x628a('0x29')]['rawAttributes'],function(_0x254758){return{'name':_0x254758[_0x628a('0x2a')],'type':_0x254758['type'][_0x628a('0x2b')]};});_0x234b38[_0x628a('0x2c')]=_[_0x628a('0x28')](_0x5c8903,_0x628a('0x25'));_0x234b38[_0x628a('0x2d')]=_[_0x628a('0x2e')](_0x2ab530[_0x628a('0x2d')]);_0x234b38[_0x628a('0x2f')]=_[_0x628a('0x30')](_0x234b38[_0x628a('0x2c')],_0x234b38[_0x628a('0x2d')]);_0xff36f7[_0x628a('0x31')]=_[_0x628a('0x30')](_0x234b38[_0x628a('0x2c')],qs[_0x628a('0x32')](_0x2ab530['query'][_0x628a('0x32')]));_0xff36f7[_0x628a('0x31')]=_0xff36f7[_0x628a('0x31')][_0x628a('0x33')]?_0xff36f7[_0x628a('0x31')]:_0x234b38['model'];if(!_0x2ab530[_0x628a('0x2d')][_0x628a('0x34')](_0x628a('0x35'))){_0xff36f7[_0x628a('0x1c')]=qs[_0x628a('0x1c')](_0x2ab530[_0x628a('0x2d')]['limit']);_0xff36f7['offset']=qs[_0x628a('0x1a')](_0x2ab530[_0x628a('0x2d')][_0x628a('0x1a')]);}_0xff36f7['order']=qs[_0x628a('0x36')](_0x2ab530[_0x628a('0x2d')][_0x628a('0x36')]);_0xff36f7[_0x628a('0x37')]=qs['filters'](_[_0x628a('0x38')](_0x2ab530[_0x628a('0x2d')],_0x234b38[_0x628a('0x2f')]),_0x5c8903);if(_0x2ab530[_0x628a('0x2d')][_0x628a('0x39')]){_0xff36f7['where']=_['merge'](_0xff36f7[_0x628a('0x37')],{'$or':_['map'](_0x5c8903,function(_0x2ff4ee){if(_0x2ff4ee[_0x628a('0x3a')]!=='VIRTUAL'){var _0xc15d95={};_0xc15d95[_0x2ff4ee[_0x628a('0x25')]]={'$like':'%'+_0x2ab530['query'][_0x628a('0x39')]+'%'};return _0xc15d95;}})});}_0xff36f7=_[_0x628a('0x3b')]({},_0xff36f7,_0x2ab530[_0x628a('0x3c')]);var _0x3f3930={'where':_0xff36f7['where']};return db['FreshsalesAccount']['count'](_0x3f3930)[_0x628a('0x23')](function(_0x11d8fc){_0x1b760f[_0x628a('0x1d')]=_0x11d8fc;if(_0x2ab530[_0x628a('0x2d')]['includeAll']){_0xff36f7['include']=[{'all':!![]}];}return db[_0x628a('0x29')][_0x628a('0x3d')](_0xff36f7);})[_0x628a('0x23')](function(_0x36ab18){_0x1b760f[_0x628a('0x3e')]=_0x36ab18;return _0x1b760f;})[_0x628a('0x23')](respondWithFilteredResult(_0x1590fe,_0xff36f7))['catch'](handleError(_0x1590fe,null));};exports[_0x628a('0x3f')]=function(_0x4e6f5d,_0x200bf6){var _0x4eafbc={'raw':![],'where':{'id':_0x4e6f5d[_0x628a('0x40')]['id']}},_0x46ed50={};_0x46ed50['model']=_[_0x628a('0x2e')](db['FreshsalesAccount'][_0x628a('0x41')]);_0x46ed50[_0x628a('0x2d')]=_['keys'](_0x4e6f5d['query']);_0x46ed50[_0x628a('0x2f')]=_[_0x628a('0x30')](_0x46ed50[_0x628a('0x2c')],_0x46ed50[_0x628a('0x2d')]);_0x4eafbc[_0x628a('0x31')]=_[_0x628a('0x30')](_0x46ed50[_0x628a('0x2c')],qs[_0x628a('0x32')](_0x4e6f5d[_0x628a('0x2d')]['fields']));_0x4eafbc['attributes']=_0x4eafbc['attributes'][_0x628a('0x33')]?_0x4eafbc[_0x628a('0x31')]:_0x46ed50[_0x628a('0x2c')];if(_0x4e6f5d[_0x628a('0x2d')][_0x628a('0x42')]){_0x4eafbc[_0x628a('0x43')]=[{'all':!![]}];}_0x4eafbc=_[_0x628a('0x3b')]({},_0x4eafbc,_0x4e6f5d['options']);return db['FreshsalesAccount']['find'](_0x4eafbc)[_0x628a('0x23')](handleEntityNotFound(_0x200bf6,null))['then'](respondWithResult(_0x200bf6,null))[_0x628a('0x44')](handleError(_0x200bf6,null));};exports[_0x628a('0x45')]=function(_0x2e856f,_0x207591){return db[_0x628a('0x29')][_0x628a('0x45')](_0x2e856f[_0x628a('0x46')],{})['then'](respondWithResult(_0x207591,0xc9))['catch'](handleError(_0x207591,null));};exports[_0x628a('0x47')]=function(_0xe77cfd,_0x5f0a08){if(_0xe77cfd[_0x628a('0x46')]['id']){delete _0xe77cfd[_0x628a('0x46')]['id'];}return db[_0x628a('0x29')][_0x628a('0x48')]({'where':{'id':_0xe77cfd[_0x628a('0x40')]['id']}})[_0x628a('0x23')](handleEntityNotFound(_0x5f0a08,null))[_0x628a('0x23')](saveUpdates(_0xe77cfd['body'],null))[_0x628a('0x23')](respondWithResult(_0x5f0a08,null))[_0x628a('0x44')](handleError(_0x5f0a08,null));};exports[_0x628a('0x22')]=function(_0x280c9f,_0x2007b1){return db[_0x628a('0x29')][_0x628a('0x48')]({'where':{'id':_0x280c9f[_0x628a('0x40')]['id']}})[_0x628a('0x23')](handleEntityNotFound(_0x2007b1,null))[_0x628a('0x23')](removeEntity(_0x2007b1,null))['catch'](handleError(_0x2007b1,null));};exports['getConfigurations']=function(_0x11685f,_0x413816,_0xe488e3){var _0x431a02={};var _0x10ac4d={};var _0x5020ec;var _0x3daaaf;return db[_0x628a('0x29')][_0x628a('0x49')]({'where':{'id':_0x11685f[_0x628a('0x40')]['id']}})['then'](handleEntityNotFound(_0x413816,null))['then'](function(_0x45ff95){if(_0x45ff95){_0x5020ec=_0x45ff95;_0x10ac4d[_0x628a('0x2c')]=_[_0x628a('0x2e')](db['FreshsalesConfiguration'][_0x628a('0x41')]);_0x10ac4d[_0x628a('0x2d')]=_[_0x628a('0x2e')](_0x11685f[_0x628a('0x2d')]);_0x10ac4d['filters']=_['intersection'](_0x10ac4d['model'],_0x10ac4d['query']);_0x431a02[_0x628a('0x31')]=_[_0x628a('0x30')](_0x10ac4d[_0x628a('0x2c')],qs[_0x628a('0x32')](_0x11685f[_0x628a('0x2d')][_0x628a('0x32')]));_0x431a02['attributes']=_0x431a02['attributes']['length']?_0x431a02[_0x628a('0x31')]:_0x10ac4d['model'];_0x431a02[_0x628a('0x4a')]=qs[_0x628a('0x36')](_0x11685f[_0x628a('0x2d')][_0x628a('0x36')]);_0x431a02[_0x628a('0x37')]=qs[_0x628a('0x2f')](_[_0x628a('0x38')](_0x11685f[_0x628a('0x2d')],_0x10ac4d['filters']));if(_0x11685f[_0x628a('0x2d')][_0x628a('0x39')]){_0x431a02['where']=_[_0x628a('0x3b')](_0x431a02[_0x628a('0x37')],{'$or':_[_0x628a('0x28')](_0x431a02[_0x628a('0x31')],function(_0x38aeec){var _0x3811e9={};_0x3811e9[_0x38aeec]={'$like':'%'+_0x11685f['query'][_0x628a('0x39')]+'%'};return _0x3811e9;})});}_0x431a02=_[_0x628a('0x3b')]({},_0x431a02,_0x11685f[_0x628a('0x3c')]);return _0x5020ec['getConfigurations'](_0x431a02);}})[_0x628a('0x23')](function(_0x53a340){if(_0x53a340){_0x3daaaf=_0x53a340[_0x628a('0x33')];if(!_0x11685f[_0x628a('0x2d')][_0x628a('0x34')](_0x628a('0x35'))){_0x431a02[_0x628a('0x1c')]=qs[_0x628a('0x1c')](_0x11685f[_0x628a('0x2d')][_0x628a('0x1c')]);_0x431a02['offset']=qs['offset'](_0x11685f[_0x628a('0x2d')][_0x628a('0x1a')]);}return _0x5020ec[_0x628a('0x4b')](_0x431a02);}})['then'](function(_0x5e95af){if(_0x5e95af){return _0x5e95af?{'count':_0x3daaaf,'rows':_0x5e95af}:null;}})[_0x628a('0x23')](respondWithResult(_0x413816,null))['catch'](handleError(_0x413816,null));};exports['addConfiguration']=function(_0x187c9a,_0x45c106,_0x44c88d){if(_0x187c9a[_0x628a('0x46')]['id']){delete _0x187c9a[_0x628a('0x46')]['id'];}return db[_0x628a('0x29')][_0x628a('0x49')]({'where':{'id':_0x187c9a[_0x628a('0x40')]['id']}})[_0x628a('0x23')](handleEntityNotFound(_0x45c106,null))[_0x628a('0x23')](function(_0x257b6e){if(_0x257b6e){_0x187c9a[_0x628a('0x46')][_0x628a('0x4c')]=_0x257b6e['id'];_0x187c9a[_0x628a('0x46')][_0x628a('0x4d')]=integrations[_0x628a('0x4e')](_0x187c9a[_0x628a('0x46')][_0x628a('0x4f')],_0x187c9a['body']['type']);_0x187c9a[_0x628a('0x46')]['Descriptions']=integrations[_0x628a('0x50')](_0x187c9a[_0x628a('0x46')][_0x628a('0x4f')],_0x187c9a['body']['type']);return db['FreshsalesConfiguration'][_0x628a('0x45')](_0x187c9a[_0x628a('0x46')],{'include':[{'model':db[_0x628a('0x51')],'as':'Subjects'},{'model':db[_0x628a('0x51')],'as':_0x628a('0x52')}]});}return null;})[_0x628a('0x23')](respondWithResult(_0x45c106,null))[_0x628a('0x44')](handleError(_0x45c106,null));};exports['getFields']=function(_0x6e99b,_0xe99edd,_0x166f01){var _0xc809e8='';var _0x2d3cbc='';return db[_0x628a('0x29')][_0x628a('0x49')]({'where':{'id':_0x6e99b[_0x628a('0x40')]['id']},'attributes':['id',_0x628a('0x53'),'remoteUri',_0x628a('0x54')]})['then'](handleEntityNotFound(_0xe99edd,null))['then'](function(_0x491bfc){if(_0x491bfc){_0x2d3cbc=_0x491bfc['username'];_0xc809e8=_0x491bfc[_0x628a('0x55')];var _0x427117=_0x491bfc[_0x628a('0x55')][_0x628a('0x56')](-0x1);if(_0x427117==='/'){_0xc809e8=_0xc809e8['substring'](0x0,_0xc809e8[_0x628a('0x57')](_0x427117));}return rp({'method':_0x628a('0x58'),'uri':util[_0x628a('0x59')](_0x628a('0x5a'),_0xc809e8,_0x628a('0x5b')),'headers':{'Authorization':_0x628a('0x5c')+_0x491bfc[_0x628a('0x54')]},'json':!![]});}})['then'](function(_0xec3ad1){if(_0xec3ad1){var _0xf3b74e=_0xec3ad1[_0x628a('0x5d')];var _0x26f865=![];var _0x8f056a=null;for(_0x8f056a=0x0;_0x8f056a<_0xf3b74e[_0x628a('0x33')];_0x8f056a++){if(_0xf3b74e[_0x8f056a][_0x628a('0x5e')]===_0x2d3cbc){_0x26f865=!![];}}if(_0x26f865){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x628a('0x5f')});}}})[_0x628a('0x23')](respondWithResult(_0xe99edd,null))[_0x628a('0x44')](function(_0x2531cd){var _0x5047df=_0x6e99b[_0x628a('0x2d')]['test']?0x1f4:_0x2531cd['statusCode']||0x1f4;logger['error'](_0x628a('0x60'),_0x628a('0x61'),_0x5047df,JSON['stringify'](_0x2531cd));delete _0x2531cd[_0x628a('0x25')];if(_0x5047df===0x191){_0x5047df=0x190;}_0xe99edd[_0x628a('0x18')](_0x5047df)[_0x628a('0x26')](_0x6e99b[_0x628a('0x2d')][_0x628a('0x62')]?{'message':'Wrong\x20credentials','statusCode':_0x2531cd[_0x628a('0x63')]}:_0x2531cd);});};
\ No newline at end of file
+var _0x1127=['/api/selector/owners','Token\x20token=','apiKey','users','email','Requested\x20Resource\x20not\x20Found','test','getFields,\x20%s,\x20%s,\x20%s','stringify','statusCode','eml-format','rimraf','zip-dir','request-promise','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','limit','count','apply','reject','save','update','destroy','end','error','stack','name','send','index','FreshsalesAccount','rawAttributes','fieldName','type','key','map','query','filters','intersection','model','attributes','fields','length','nolimit','order','where','pick','filter','merge','VIRTUAL','options','then','includeAll','findAll','rows','catch','show','params','keys','find','create','body','getConfigurations','findOne','FreshsalesConfiguration','sort','hasOwnProperty','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','slice','substring','lastIndexOf','format','%s%s'];(function(_0x3213b4,_0x3cddd0){var _0xa97785=function(_0x3c9282){while(--_0x3c9282){_0x3213b4['push'](_0x3213b4['shift']());}};_0xa97785(++_0x3cddd0);}(_0x1127,0x13c));var _0x7112=function(_0x2594dc,_0x33b3d0){_0x2594dc=_0x2594dc-0x0;var _0x4c4506=_0x1127[_0x2594dc];return _0x4c4506;};'use strict';var emlformat=require(_0x7112('0x0'));var rimraf=require(_0x7112('0x1'));var zipdir=require(_0x7112('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7112('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x7112('0x4'));var sox=require(_0x7112('0x5'));var csv=require(_0x7112('0x6'));var ejs=require(_0x7112('0x7'));var fs=require('fs');var fs_extra=require(_0x7112('0x8'));var _=require(_0x7112('0x9'));var squel=require(_0x7112('0xa'));var crypto=require(_0x7112('0xb'));var jsforce=require(_0x7112('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x7112('0x6'));var querystring=require(_0x7112('0xd'));var Papa=require(_0x7112('0xe'));var Redis=require('ioredis');var authService=require(_0x7112('0xf'));var qs=require(_0x7112('0x10'));var as=require(_0x7112('0x11'));var hardwareService=require(_0x7112('0x12'));var logger=require(_0x7112('0x13'))('api');var utils=require(_0x7112('0x14'));var config=require(_0x7112('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x7112('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x2bcca4,_0xfefd2e){_0xfefd2e=_0xfefd2e||0xcc;return function(_0x556073){if(_0x556073){return _0x2bcca4[_0x7112('0x17')](_0xfefd2e);}return _0x2bcca4[_0x7112('0x18')](_0xfefd2e)['end']();};}function respondWithResult(_0x1006d8,_0x261d2c){_0x261d2c=_0x261d2c||0xc8;return function(_0x5a4496){if(_0x5a4496){return _0x1006d8[_0x7112('0x18')](_0x261d2c)['json'](_0x5a4496);}};}function respondWithFilteredResult(_0x575b06,_0x5d0d26){return function(_0x35871e){if(_0x35871e){var _0x354407=typeof _0x5d0d26[_0x7112('0x19')]===_0x7112('0x1a')&&typeof _0x5d0d26[_0x7112('0x1b')]===_0x7112('0x1a');var _0x2558e8=_0x35871e[_0x7112('0x1c')];var _0xb583f2=_0x354407?0x0:_0x5d0d26[_0x7112('0x19')];var _0x510a6e=_0x354407?_0x35871e['count']:_0x5d0d26['offset']+_0x5d0d26[_0x7112('0x1b')];var _0x4cdf56;if(_0x510a6e>=_0x2558e8){_0x510a6e=_0x2558e8;_0x4cdf56=0xc8;}else{_0x4cdf56=0xce;}_0x575b06[_0x7112('0x18')](_0x4cdf56);return _0x575b06['set']('Content-Range',_0xb583f2+'-'+_0x510a6e+'/'+_0x2558e8)['json'](_0x35871e);}return null;};}function patchUpdates(_0x97116c){return function(_0x1e4e4a){try{jsonpatch[_0x7112('0x1d')](_0x1e4e4a,_0x97116c,!![]);}catch(_0x311bdf){return BPromise[_0x7112('0x1e')](_0x311bdf);}return _0x1e4e4a[_0x7112('0x1f')]();};}function saveUpdates(_0x13f422,_0x2d2479){return function(_0x544bd1){if(_0x544bd1){return _0x544bd1[_0x7112('0x20')](_0x13f422)['then'](function(_0x2098fa){return _0x2098fa;});}return null;};}function removeEntity(_0x327bd6,_0x372844){return function(_0x5d5257){if(_0x5d5257){return _0x5d5257[_0x7112('0x21')]()['then'](function(){_0x327bd6[_0x7112('0x18')](0xcc)[_0x7112('0x22')]();});}};}function handleEntityNotFound(_0x2b2440,_0x1d7e1d){return function(_0x36777d){if(!_0x36777d){_0x2b2440[_0x7112('0x17')](0x194);}return _0x36777d;};}function handleError(_0x3af642,_0x15150b){_0x15150b=_0x15150b||0x1f4;return function(_0x278f11){logger[_0x7112('0x23')](_0x278f11[_0x7112('0x24')]);if(_0x278f11[_0x7112('0x25')]){delete _0x278f11[_0x7112('0x25')];}_0x3af642[_0x7112('0x18')](_0x15150b)[_0x7112('0x26')](_0x278f11);};}exports[_0x7112('0x27')]=function(_0x11a40f,_0x3a5604){var _0x40e064={},_0x3f8ff3={},_0x2639fc={'count':0x0,'rows':[]};var _0x57502c=_['map'](db[_0x7112('0x28')][_0x7112('0x29')],function(_0x2991e5){return{'name':_0x2991e5[_0x7112('0x2a')],'type':_0x2991e5[_0x7112('0x2b')][_0x7112('0x2c')]};});_0x3f8ff3['model']=_[_0x7112('0x2d')](_0x57502c,'name');_0x3f8ff3['query']=_['keys'](_0x11a40f[_0x7112('0x2e')]);_0x3f8ff3[_0x7112('0x2f')]=_[_0x7112('0x30')](_0x3f8ff3[_0x7112('0x31')],_0x3f8ff3[_0x7112('0x2e')]);_0x40e064[_0x7112('0x32')]=_[_0x7112('0x30')](_0x3f8ff3[_0x7112('0x31')],qs[_0x7112('0x33')](_0x11a40f[_0x7112('0x2e')][_0x7112('0x33')]));_0x40e064[_0x7112('0x32')]=_0x40e064[_0x7112('0x32')][_0x7112('0x34')]?_0x40e064[_0x7112('0x32')]:_0x3f8ff3[_0x7112('0x31')];if(!_0x11a40f[_0x7112('0x2e')]['hasOwnProperty'](_0x7112('0x35'))){_0x40e064[_0x7112('0x1b')]=qs[_0x7112('0x1b')](_0x11a40f[_0x7112('0x2e')][_0x7112('0x1b')]);_0x40e064[_0x7112('0x19')]=qs[_0x7112('0x19')](_0x11a40f[_0x7112('0x2e')][_0x7112('0x19')]);}_0x40e064[_0x7112('0x36')]=qs['sort'](_0x11a40f[_0x7112('0x2e')]['sort']);_0x40e064[_0x7112('0x37')]=qs[_0x7112('0x2f')](_[_0x7112('0x38')](_0x11a40f[_0x7112('0x2e')],_0x3f8ff3['filters']),_0x57502c);if(_0x11a40f[_0x7112('0x2e')][_0x7112('0x39')]){_0x40e064[_0x7112('0x37')]=_[_0x7112('0x3a')](_0x40e064['where'],{'$or':_[_0x7112('0x2d')](_0x57502c,function(_0x539c6b){if(_0x539c6b['type']!==_0x7112('0x3b')){var _0x2987dd={};_0x2987dd[_0x539c6b[_0x7112('0x25')]]={'$like':'%'+_0x11a40f['query'][_0x7112('0x39')]+'%'};return _0x2987dd;}})});}_0x40e064=_['merge']({},_0x40e064,_0x11a40f[_0x7112('0x3c')]);var _0x37d6f0={'where':_0x40e064[_0x7112('0x37')]};return db[_0x7112('0x28')][_0x7112('0x1c')](_0x37d6f0)[_0x7112('0x3d')](function(_0x1d0fe7){_0x2639fc[_0x7112('0x1c')]=_0x1d0fe7;if(_0x11a40f[_0x7112('0x2e')][_0x7112('0x3e')]){_0x40e064['include']=[{'all':!![]}];}return db[_0x7112('0x28')][_0x7112('0x3f')](_0x40e064);})[_0x7112('0x3d')](function(_0x51e22f){_0x2639fc[_0x7112('0x40')]=_0x51e22f;return _0x2639fc;})[_0x7112('0x3d')](respondWithFilteredResult(_0x3a5604,_0x40e064))[_0x7112('0x41')](handleError(_0x3a5604,null));};exports[_0x7112('0x42')]=function(_0x2b3959,_0x113f48){var _0x1dc471={'raw':![],'where':{'id':_0x2b3959[_0x7112('0x43')]['id']}},_0xa17bea={};_0xa17bea[_0x7112('0x31')]=_[_0x7112('0x44')](db[_0x7112('0x28')][_0x7112('0x29')]);_0xa17bea[_0x7112('0x2e')]=_[_0x7112('0x44')](_0x2b3959[_0x7112('0x2e')]);_0xa17bea[_0x7112('0x2f')]=_[_0x7112('0x30')](_0xa17bea[_0x7112('0x31')],_0xa17bea[_0x7112('0x2e')]);_0x1dc471[_0x7112('0x32')]=_[_0x7112('0x30')](_0xa17bea[_0x7112('0x31')],qs[_0x7112('0x33')](_0x2b3959['query'][_0x7112('0x33')]));_0x1dc471[_0x7112('0x32')]=_0x1dc471[_0x7112('0x32')][_0x7112('0x34')]?_0x1dc471['attributes']:_0xa17bea['model'];if(_0x2b3959['query'][_0x7112('0x3e')]){_0x1dc471['include']=[{'all':!![]}];}_0x1dc471=_[_0x7112('0x3a')]({},_0x1dc471,_0x2b3959['options']);return db[_0x7112('0x28')][_0x7112('0x45')](_0x1dc471)['then'](handleEntityNotFound(_0x113f48,null))[_0x7112('0x3d')](respondWithResult(_0x113f48,null))['catch'](handleError(_0x113f48,null));};exports[_0x7112('0x46')]=function(_0x56257c,_0x52cef8){return db[_0x7112('0x28')][_0x7112('0x46')](_0x56257c[_0x7112('0x47')],{})[_0x7112('0x3d')](respondWithResult(_0x52cef8,0xc9))[_0x7112('0x41')](handleError(_0x52cef8,null));};exports['update']=function(_0x1a5275,_0x1ddd5d){if(_0x1a5275['body']['id']){delete _0x1a5275[_0x7112('0x47')]['id'];}return db[_0x7112('0x28')][_0x7112('0x45')]({'where':{'id':_0x1a5275[_0x7112('0x43')]['id']}})[_0x7112('0x3d')](handleEntityNotFound(_0x1ddd5d,null))[_0x7112('0x3d')](saveUpdates(_0x1a5275[_0x7112('0x47')],null))[_0x7112('0x3d')](respondWithResult(_0x1ddd5d,null))[_0x7112('0x41')](handleError(_0x1ddd5d,null));};exports[_0x7112('0x21')]=function(_0x11dafa,_0x528b82){return db[_0x7112('0x28')]['find']({'where':{'id':_0x11dafa['params']['id']}})[_0x7112('0x3d')](handleEntityNotFound(_0x528b82,null))[_0x7112('0x3d')](removeEntity(_0x528b82,null))[_0x7112('0x41')](handleError(_0x528b82,null));};exports[_0x7112('0x48')]=function(_0x137c83,_0xc85e60,_0x447683){var _0x270655={};var _0x489e48={};var _0xaec4af;var _0x37f3f9;return db[_0x7112('0x28')][_0x7112('0x49')]({'where':{'id':_0x137c83[_0x7112('0x43')]['id']}})['then'](handleEntityNotFound(_0xc85e60,null))[_0x7112('0x3d')](function(_0x39867b){if(_0x39867b){_0xaec4af=_0x39867b;_0x489e48['model']=_['keys'](db[_0x7112('0x4a')][_0x7112('0x29')]);_0x489e48['query']=_[_0x7112('0x44')](_0x137c83[_0x7112('0x2e')]);_0x489e48[_0x7112('0x2f')]=_[_0x7112('0x30')](_0x489e48[_0x7112('0x31')],_0x489e48[_0x7112('0x2e')]);_0x270655[_0x7112('0x32')]=_['intersection'](_0x489e48['model'],qs[_0x7112('0x33')](_0x137c83['query'][_0x7112('0x33')]));_0x270655[_0x7112('0x32')]=_0x270655['attributes'][_0x7112('0x34')]?_0x270655[_0x7112('0x32')]:_0x489e48[_0x7112('0x31')];_0x270655[_0x7112('0x36')]=qs['sort'](_0x137c83['query'][_0x7112('0x4b')]);_0x270655[_0x7112('0x37')]=qs[_0x7112('0x2f')](_[_0x7112('0x38')](_0x137c83['query'],_0x489e48['filters']));if(_0x137c83[_0x7112('0x2e')]['filter']){_0x270655[_0x7112('0x37')]=_[_0x7112('0x3a')](_0x270655['where'],{'$or':_[_0x7112('0x2d')](_0x270655[_0x7112('0x32')],function(_0x3182ed){var _0x42f8a4={};_0x42f8a4[_0x3182ed]={'$like':'%'+_0x137c83[_0x7112('0x2e')][_0x7112('0x39')]+'%'};return _0x42f8a4;})});}_0x270655=_[_0x7112('0x3a')]({},_0x270655,_0x137c83['options']);return _0xaec4af[_0x7112('0x48')](_0x270655);}})[_0x7112('0x3d')](function(_0x2cd5c8){if(_0x2cd5c8){_0x37f3f9=_0x2cd5c8[_0x7112('0x34')];if(!_0x137c83[_0x7112('0x2e')][_0x7112('0x4c')](_0x7112('0x35'))){_0x270655[_0x7112('0x1b')]=qs[_0x7112('0x1b')](_0x137c83[_0x7112('0x2e')][_0x7112('0x1b')]);_0x270655[_0x7112('0x19')]=qs[_0x7112('0x19')](_0x137c83[_0x7112('0x2e')][_0x7112('0x19')]);}return _0xaec4af['getConfigurations'](_0x270655);}})[_0x7112('0x3d')](function(_0x5ee5c4){if(_0x5ee5c4){return _0x5ee5c4?{'count':_0x37f3f9,'rows':_0x5ee5c4}:null;}})['then'](respondWithResult(_0xc85e60,null))[_0x7112('0x41')](handleError(_0xc85e60,null));};exports[_0x7112('0x4d')]=function(_0x367659,_0x5d2405,_0x1b983d){if(_0x367659[_0x7112('0x47')]['id']){delete _0x367659[_0x7112('0x47')]['id'];}return db[_0x7112('0x28')][_0x7112('0x49')]({'where':{'id':_0x367659[_0x7112('0x43')]['id']}})[_0x7112('0x3d')](handleEntityNotFound(_0x5d2405,null))[_0x7112('0x3d')](function(_0x35fac0){if(_0x35fac0){_0x367659[_0x7112('0x47')]['AccountId']=_0x35fac0['id'];_0x367659['body'][_0x7112('0x4e')]=integrations[_0x7112('0x4f')](_0x367659[_0x7112('0x47')][_0x7112('0x50')],_0x367659[_0x7112('0x47')]['type']);_0x367659[_0x7112('0x47')][_0x7112('0x51')]=integrations[_0x7112('0x52')](_0x367659[_0x7112('0x47')][_0x7112('0x50')],_0x367659[_0x7112('0x47')][_0x7112('0x2b')]);return db[_0x7112('0x4a')]['create'](_0x367659[_0x7112('0x47')],{'include':[{'model':db[_0x7112('0x53')],'as':'Subjects'},{'model':db[_0x7112('0x53')],'as':_0x7112('0x51')}]});}return null;})[_0x7112('0x3d')](respondWithResult(_0x5d2405,null))['catch'](handleError(_0x5d2405,null));};exports[_0x7112('0x54')]=function(_0x6e9051,_0x4662c2,_0x3d0c3f){var _0x29ec8d='';var _0x393a07='';return db['FreshsalesAccount'][_0x7112('0x49')]({'where':{'id':_0x6e9051[_0x7112('0x43')]['id']},'attributes':['id',_0x7112('0x55'),_0x7112('0x56'),'apiKey']})['then'](handleEntityNotFound(_0x4662c2,null))[_0x7112('0x3d')](function(_0x4d702a){if(_0x4d702a){_0x393a07=_0x4d702a[_0x7112('0x55')];_0x29ec8d=_0x4d702a[_0x7112('0x56')];var _0x298973=_0x4d702a[_0x7112('0x56')][_0x7112('0x57')](-0x1);if(_0x298973==='/'){_0x29ec8d=_0x29ec8d[_0x7112('0x58')](0x0,_0x29ec8d[_0x7112('0x59')](_0x298973));}return rp({'method':'GET','uri':util[_0x7112('0x5a')](_0x7112('0x5b'),_0x29ec8d,_0x7112('0x5c')),'headers':{'Authorization':_0x7112('0x5d')+_0x4d702a[_0x7112('0x5e')]},'json':!![]});}})[_0x7112('0x3d')](function(_0x5deb02){if(_0x5deb02){var _0x4fa62a=_0x5deb02[_0x7112('0x5f')];var _0x135078=![];var _0x589a6a=null;for(_0x589a6a=0x0;_0x589a6a<_0x4fa62a[_0x7112('0x34')];_0x589a6a++){if(_0x4fa62a[_0x589a6a][_0x7112('0x60')]===_0x393a07){_0x135078=!![];}}if(_0x135078){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x7112('0x61')});}}})[_0x7112('0x3d')](respondWithResult(_0x4662c2,null))[_0x7112('0x41')](function(_0x39dc49){var _0x539dee=_0x6e9051['query'][_0x7112('0x62')]?0x1f4:_0x39dc49['statusCode']||0x1f4;logger[_0x7112('0x23')](_0x7112('0x63'),'getFields',_0x539dee,JSON[_0x7112('0x64')](_0x39dc49));delete _0x39dc49[_0x7112('0x25')];if(_0x539dee===0x191){_0x539dee=0x190;}_0x4662c2[_0x7112('0x18')](_0x539dee)['send'](_0x6e9051['query'][_0x7112('0x62')]?{'message':'Wrong\x20credentials','statusCode':_0x39dc49[_0x7112('0x65')]}:_0x39dc49);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2272=['request-promise','path','rimraf','../../components/integrations/configuration','exports','define','FreshsalesAccount','int_freshsales_accounts','lodash','util','../../config/logger','api','moment'];(function(_0x17fc3d,_0x5516dd){var _0x3eba04=function(_0x19808e){while(--_0x19808e){_0x17fc3d['push'](_0x17fc3d['shift']());}};_0x3eba04(++_0x5516dd);}(_0x2272,0xd8));var _0x2227=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x2272[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x2227('0x0'));var util=require(_0x2227('0x1'));var logger=require(_0x2227('0x2'))(_0x2227('0x3'));var moment=require(_0x2227('0x4'));var BPromise=require('bluebird');var rp=require(_0x2227('0x5'));var fs=require('fs');var path=require(_0x2227('0x6'));var rimraf=require(_0x2227('0x7'));var config=require('../../config/environment');var attributes=require('./intFreshsalesAccount.attributes');var integrations=require(_0x2227('0x8'));module[_0x2227('0x9')]=function(_0xb33647,_0x2591db){return _0xb33647[_0x2227('0xa')](_0x2227('0xb'),attributes,{'tableName':_0x2227('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x82c4=['define','FreshsalesAccount','int_freshsales_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','./intFreshsalesAccount.attributes','exports'];(function(_0x3e8553,_0x3dcc10){var _0x22e21b=function(_0xd011b1){while(--_0xd011b1){_0x3e8553['push'](_0x3e8553['shift']());}};_0x22e21b(++_0x3dcc10);}(_0x82c4,0x1ca));var _0x482c=function(_0x322318,_0x276d64){_0x322318=_0x322318-0x0;var _0x59ce6f=_0x82c4[_0x322318];return _0x59ce6f;};'use strict';var _=require(_0x482c('0x0'));var util=require(_0x482c('0x1'));var logger=require(_0x482c('0x2'))(_0x482c('0x3'));var moment=require(_0x482c('0x4'));var BPromise=require(_0x482c('0x5'));var rp=require(_0x482c('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x482c('0x7'));var config=require('../../config/environment');var attributes=require(_0x482c('0x8'));var integrations=require('../../components/integrations/configuration');module[_0x482c('0x9')]=function(_0x5d7c76,_0xfdb92){return _0x5d7c76[_0x482c('0xa')](_0x482c('0xb'),attributes,{'tableName':_0x482c('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d11=['debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','FreshsalesAccount','findAll','options','attributes','limit','map','include','model','GetFreshsalesAccount','ShowFreshsalesAccount','find','raw','where','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','FreshsalesAccount,\x20%s,\x20%s'];(function(_0x16360c,_0x37c098){var _0x17dd2d=function(_0x32b306){while(--_0x32b306){_0x16360c['push'](_0x16360c['shift']());}};_0x17dd2d(++_0x37c098);}(_0x6d11,0xbf));var _0x16d1=function(_0x548ccb,_0x1fab15){_0x548ccb=_0x548ccb-0x0;var _0x2f7701=_0x6d11[_0x548ccb];return _0x2f7701;};'use strict';var _=require(_0x16d1('0x0'));var util=require(_0x16d1('0x1'));var moment=require(_0x16d1('0x2'));var BPromise=require('bluebird');var rs=require(_0x16d1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x16d1('0x4'))['db'];var utils=require(_0x16d1('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x16d1('0x6'));var jayson=require(_0x16d1('0x7'));var client=jayson[_0x16d1('0x8')][_0x16d1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1009dc,_0x150217,_0x19390d){return new BPromise(function(_0x5d0e3f,_0x58a7a2){return client['request'](_0x1009dc,_0x19390d)[_0x16d1('0xa')](function(_0xcfbb15){logger[_0x16d1('0xb')](_0x16d1('0xc'),_0x150217,'request\x20sent');logger[_0x16d1('0xd')](_0x16d1('0xe'),_0x150217,_0x16d1('0xf'),JSON[_0x16d1('0x10')](_0xcfbb15));if(_0xcfbb15[_0x16d1('0x11')]){if(_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x12')]===0x1f4){logger[_0x16d1('0x11')]('FreshsalesAccount,\x20%s,\x20%s',_0x150217,_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);return _0x58a7a2(_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);}logger[_0x16d1('0x11')]('FreshsalesAccount,\x20%s,\x20%s',_0x150217,_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);return _0x5d0e3f(_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);}else{logger[_0x16d1('0xb')](_0x16d1('0xc'),_0x150217,_0x16d1('0xf'));_0x5d0e3f(_0xcfbb15['result'][_0x16d1('0x13')]);}})[_0x16d1('0x14')](function(_0x555b2d){logger['error'](_0x16d1('0xc'),_0x150217,_0x555b2d);_0x58a7a2(_0x555b2d);});});}exports['GetFreshsalesAccount']=function(_0x46a25e){var _0x4aeff0=this;return new Promise(function(_0x1da1b8,_0x4fe22d){return db[_0x16d1('0x15')][_0x16d1('0x16')]({'raw':_0x46a25e['options']?_0x46a25e['options']['raw']===undefined?!![]:![]:!![],'where':_0x46a25e['options']?_0x46a25e[_0x16d1('0x17')]['where']||null:null,'attributes':_0x46a25e[_0x16d1('0x17')]?_0x46a25e[_0x16d1('0x17')][_0x16d1('0x18')]||null:null,'limit':_0x46a25e[_0x16d1('0x17')]?_0x46a25e['options'][_0x16d1('0x19')]||null:null,'include':_0x46a25e[_0x16d1('0x17')]?_0x46a25e[_0x16d1('0x17')]['include']?_[_0x16d1('0x1a')](_0x46a25e[_0x16d1('0x17')][_0x16d1('0x1b')],function(_0x47cad4){return{'model':db[_0x47cad4[_0x16d1('0x1c')]],'as':_0x47cad4['as'],'attributes':_0x47cad4[_0x16d1('0x18')],'include':_0x47cad4[_0x16d1('0x1b')]?_[_0x16d1('0x1a')](_0x47cad4[_0x16d1('0x1b')],function(_0x335c24){return{'model':db[_0x335c24[_0x16d1('0x1c')]],'as':_0x335c24['as'],'attributes':_0x335c24[_0x16d1('0x18')],'include':_0x335c24[_0x16d1('0x1b')]?_[_0x16d1('0x1a')](_0x335c24[_0x16d1('0x1b')],function(_0x2b8403){return{'model':db[_0x2b8403['model']],'as':_0x2b8403['as'],'attributes':_0x2b8403[_0x16d1('0x18')]};}):[]};}):[]};}):[]:[]})[_0x16d1('0xa')](function(_0x4257f1){logger['info'](_0x16d1('0x1d'),_0x46a25e);logger[_0x16d1('0xd')](_0x16d1('0x1d'),_0x46a25e,JSON[_0x16d1('0x10')](_0x4257f1));_0x1da1b8(_0x4257f1);})[_0x16d1('0x14')](function(_0x462e5b){logger[_0x16d1('0x11')]('GetFreshsalesAccount',_0x462e5b[_0x16d1('0x13')],_0x46a25e);_0x4fe22d(_0x4aeff0[_0x16d1('0x11')](0x1f4,_0x462e5b[_0x16d1('0x13')]));});});};exports[_0x16d1('0x1e')]=function(_0x55c021){var _0x4b27f6=this;return new Promise(function(_0x2f16ee,_0x4ab3d4){return db[_0x16d1('0x15')][_0x16d1('0x1f')]({'raw':_0x55c021[_0x16d1('0x17')]?_0x55c021[_0x16d1('0x17')][_0x16d1('0x20')]===undefined?!![]:![]:!![],'where':_0x55c021[_0x16d1('0x17')]?_0x55c021[_0x16d1('0x17')][_0x16d1('0x21')]||null:null,'attributes':_0x55c021[_0x16d1('0x17')]?_0x55c021[_0x16d1('0x17')][_0x16d1('0x18')]||null:null,'include':_0x55c021[_0x16d1('0x17')]?_0x55c021['options'][_0x16d1('0x1b')]?_['map'](_0x55c021[_0x16d1('0x17')][_0x16d1('0x1b')],function(_0x2b9126){return{'model':db[_0x2b9126[_0x16d1('0x1c')]],'as':_0x2b9126['as'],'attributes':_0x2b9126[_0x16d1('0x18')],'include':_0x2b9126[_0x16d1('0x1b')]?_['map'](_0x2b9126['include'],function(_0x58d72d){return{'model':db[_0x58d72d[_0x16d1('0x1c')]],'as':_0x58d72d['as'],'attributes':_0x58d72d[_0x16d1('0x18')],'include':_0x58d72d[_0x16d1('0x1b')]?_[_0x16d1('0x1a')](_0x58d72d['include'],function(_0x885454){return{'model':db[_0x885454[_0x16d1('0x1c')]],'as':_0x885454['as'],'attributes':_0x885454['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x508ed7){logger[_0x16d1('0xb')](_0x16d1('0x1e'),_0x55c021);logger[_0x16d1('0xd')]('ShowFreshsalesAccount',_0x55c021,JSON[_0x16d1('0x10')](_0x508ed7));_0x2f16ee(_0x508ed7);})[_0x16d1('0x14')](function(_0x2928ad){logger[_0x16d1('0x11')](_0x16d1('0x1e'),_0x2928ad[_0x16d1('0x13')],_0x55c021);_0x4ab3d4(_0x4b27f6[_0x16d1('0x11')](0x1f4,_0x2928ad['message']));});});};
\ No newline at end of file
+var _0x0424=['info','result','catch','GetFreshsalesAccount','FreshsalesAccount','options','raw','where','attributes','limit','include','model','map','ShowFreshsalesAccount','find','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x52fe20,_0x3814d2){var _0x5ec4f5=function(_0xc16bc2){while(--_0xc16bc2){_0x52fe20['push'](_0x52fe20['shift']());}};_0x5ec4f5(++_0x3814d2);}(_0x0424,0x159));var _0x4042=function(_0x2a0346,_0x2c1300){_0x2a0346=_0x2a0346-0x0;var _0x1f5232=_0x0424[_0x2a0346];return _0x1f5232;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x4042('0x0'));var BPromise=require(_0x4042('0x1'));var rs=require(_0x4042('0x2'));var fs=require('fs');var Redis=require(_0x4042('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x4042('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x4042('0x5'));var jayson=require(_0x4042('0x6'));var client=jayson[_0x4042('0x7')][_0x4042('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3abaf1,_0xa5310f,_0x10ec07){return new BPromise(function(_0x5d11bf,_0x509772){return client[_0x4042('0x9')](_0x3abaf1,_0x10ec07)[_0x4042('0xa')](function(_0x103e4a){logger['info'](_0x4042('0xb'),_0xa5310f,_0x4042('0xc'));logger[_0x4042('0xd')](_0x4042('0xe'),_0xa5310f,_0x4042('0xc'),JSON[_0x4042('0xf')](_0x103e4a));if(_0x103e4a[_0x4042('0x10')]){if(_0x103e4a[_0x4042('0x10')]['code']===0x1f4){logger[_0x4042('0x10')](_0x4042('0xb'),_0xa5310f,_0x103e4a['error'][_0x4042('0x11')]);return _0x509772(_0x103e4a[_0x4042('0x10')][_0x4042('0x11')]);}logger[_0x4042('0x10')](_0x4042('0xb'),_0xa5310f,_0x103e4a[_0x4042('0x10')][_0x4042('0x11')]);return _0x5d11bf(_0x103e4a['error'][_0x4042('0x11')]);}else{logger[_0x4042('0x12')]('FreshsalesAccount,\x20%s,\x20%s',_0xa5310f,_0x4042('0xc'));_0x5d11bf(_0x103e4a[_0x4042('0x13')][_0x4042('0x11')]);}})[_0x4042('0x14')](function(_0x31e765){logger[_0x4042('0x10')](_0x4042('0xb'),_0xa5310f,_0x31e765);_0x509772(_0x31e765);});});}exports[_0x4042('0x15')]=function(_0x466077){var _0x4b02d4=this;return new Promise(function(_0xe5c1ec,_0x4fe024){return db[_0x4042('0x16')]['findAll']({'raw':_0x466077[_0x4042('0x17')]?_0x466077[_0x4042('0x17')][_0x4042('0x18')]===undefined?!![]:![]:!![],'where':_0x466077[_0x4042('0x17')]?_0x466077['options'][_0x4042('0x19')]||null:null,'attributes':_0x466077[_0x4042('0x17')]?_0x466077[_0x4042('0x17')][_0x4042('0x1a')]||null:null,'limit':_0x466077['options']?_0x466077[_0x4042('0x17')][_0x4042('0x1b')]||null:null,'include':_0x466077[_0x4042('0x17')]?_0x466077[_0x4042('0x17')][_0x4042('0x1c')]?_['map'](_0x466077[_0x4042('0x17')][_0x4042('0x1c')],function(_0x519f2c){return{'model':db[_0x519f2c[_0x4042('0x1d')]],'as':_0x519f2c['as'],'attributes':_0x519f2c['attributes'],'include':_0x519f2c[_0x4042('0x1c')]?_[_0x4042('0x1e')](_0x519f2c[_0x4042('0x1c')],function(_0x5d5c6d){return{'model':db[_0x5d5c6d[_0x4042('0x1d')]],'as':_0x5d5c6d['as'],'attributes':_0x5d5c6d[_0x4042('0x1a')],'include':_0x5d5c6d[_0x4042('0x1c')]?_[_0x4042('0x1e')](_0x5d5c6d[_0x4042('0x1c')],function(_0x52e575){return{'model':db[_0x52e575['model']],'as':_0x52e575['as'],'attributes':_0x52e575[_0x4042('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x4042('0xa')](function(_0x26542c){logger[_0x4042('0x12')](_0x4042('0x15'),_0x466077);logger[_0x4042('0xd')]('GetFreshsalesAccount',_0x466077,JSON[_0x4042('0xf')](_0x26542c));_0xe5c1ec(_0x26542c);})[_0x4042('0x14')](function(_0x4a6a6e){logger[_0x4042('0x10')](_0x4042('0x15'),_0x4a6a6e[_0x4042('0x11')],_0x466077);_0x4fe024(_0x4b02d4['error'](0x1f4,_0x4a6a6e['message']));});});};exports[_0x4042('0x1f')]=function(_0x43bd1c){var _0x59773f=this;return new Promise(function(_0x3e9304,_0xc42d70){return db[_0x4042('0x16')][_0x4042('0x20')]({'raw':_0x43bd1c[_0x4042('0x17')]?_0x43bd1c[_0x4042('0x17')][_0x4042('0x18')]===undefined?!![]:![]:!![],'where':_0x43bd1c[_0x4042('0x17')]?_0x43bd1c[_0x4042('0x17')]['where']||null:null,'attributes':_0x43bd1c[_0x4042('0x17')]?_0x43bd1c[_0x4042('0x17')]['attributes']||null:null,'include':_0x43bd1c[_0x4042('0x17')]?_0x43bd1c[_0x4042('0x17')]['include']?_[_0x4042('0x1e')](_0x43bd1c[_0x4042('0x17')][_0x4042('0x1c')],function(_0xaa7c99){return{'model':db[_0xaa7c99[_0x4042('0x1d')]],'as':_0xaa7c99['as'],'attributes':_0xaa7c99[_0x4042('0x1a')],'include':_0xaa7c99[_0x4042('0x1c')]?_[_0x4042('0x1e')](_0xaa7c99[_0x4042('0x1c')],function(_0x37195b){return{'model':db[_0x37195b[_0x4042('0x1d')]],'as':_0x37195b['as'],'attributes':_0x37195b[_0x4042('0x1a')],'include':_0x37195b[_0x4042('0x1c')]?_[_0x4042('0x1e')](_0x37195b[_0x4042('0x1c')],function(_0x2b5f5e){return{'model':db[_0x2b5f5e[_0x4042('0x1d')]],'as':_0x2b5f5e['as'],'attributes':_0x2b5f5e[_0x4042('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x4042('0xa')](function(_0x26b7b0){logger[_0x4042('0x12')]('ShowFreshsalesAccount',_0x43bd1c);logger[_0x4042('0xd')](_0x4042('0x1f'),_0x43bd1c,JSON[_0x4042('0xf')](_0x26b7b0));_0x3e9304(_0x26b7b0);})[_0x4042('0x14')](function(_0x588932){logger[_0x4042('0x10')](_0x4042('0x1f'),_0x588932[_0x4042('0x11')],_0x43bd1c);_0xc42d70(_0x59773f[_0x4042('0x10')](0x1f4,_0x588932[_0x4042('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf90=['get','isAuthenticated','/:id','show','/:id/subjects','/:id/descriptions','getDescriptions','/:id/fields','getFields','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','./intFreshsalesConfiguration.controller'];(function(_0x397df8,_0x3bee11){var _0x4ead11=function(_0x3753c8){while(--_0x3753c8){_0x397df8['push'](_0x397df8['shift']());}};_0x4ead11(++_0x3bee11);}(_0xbf90,0xb8));var _0x0bf9=function(_0x4e9ecb,_0x4019ba){_0x4e9ecb=_0x4e9ecb-0x0;var _0x45188a=_0xbf90[_0x4e9ecb];return _0x45188a;};'use strict';var multer=require(_0x0bf9('0x0'));var util=require(_0x0bf9('0x1'));var path=require(_0x0bf9('0x2'));var timeout=require(_0x0bf9('0x3'));var express=require('express');var router=express[_0x0bf9('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x0bf9('0x5'));var config=require(_0x0bf9('0x6'));var controller=require(_0x0bf9('0x7'));router[_0x0bf9('0x8')]('/',auth[_0x0bf9('0x9')](),controller['index']);router[_0x0bf9('0x8')](_0x0bf9('0xa'),auth['isAuthenticated'](),controller[_0x0bf9('0xb')]);router[_0x0bf9('0x8')](_0x0bf9('0xc'),auth[_0x0bf9('0x9')](),controller['getSubjects']);router[_0x0bf9('0x8')](_0x0bf9('0xd'),auth['isAuthenticated'](),controller[_0x0bf9('0xe')]);router[_0x0bf9('0x8')](_0x0bf9('0xf'),auth[_0x0bf9('0x9')](),controller[_0x0bf9('0x10')]);router[_0x0bf9('0x11')]('/',auth['isAuthenticated'](),controller[_0x0bf9('0x12')]);router[_0x0bf9('0x13')](_0x0bf9('0xa'),auth['isAuthenticated'](),controller[_0x0bf9('0x14')]);router[_0x0bf9('0x15')]('/:id',auth['isAuthenticated'](),controller[_0x0bf9('0x16')]);module[_0x0bf9('0x17')]=router;
\ No newline at end of file
+var _0x2cdf=['/:id/fields','getFields','post','create','put','/:id','update','delete','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/:id/subjects','isAuthenticated','getDescriptions'];(function(_0x4a8426,_0x563a62){var _0x56ea6f=function(_0x3c98eb){while(--_0x3c98eb){_0x4a8426['push'](_0x4a8426['shift']());}};_0x56ea6f(++_0x563a62);}(_0x2cdf,0xb0));var _0xf2cd=function(_0x24f31b,_0x44b8f3){_0x24f31b=_0x24f31b-0x0;var _0x488401=_0x2cdf[_0x24f31b];return _0x488401;};'use strict';var multer=require(_0xf2cd('0x0'));var util=require('util');var path=require(_0xf2cd('0x1'));var timeout=require(_0xf2cd('0x2'));var express=require(_0xf2cd('0x3'));var router=express[_0xf2cd('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xf2cd('0x5'));var interaction=require(_0xf2cd('0x6'));var config=require(_0xf2cd('0x7'));var controller=require('./intFreshsalesConfiguration.controller');router[_0xf2cd('0x8')]('/',auth['isAuthenticated'](),controller[_0xf2cd('0x9')]);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0xf2cd('0x8')](_0xf2cd('0xa'),auth[_0xf2cd('0xb')](),controller['getSubjects']);router[_0xf2cd('0x8')]('/:id/descriptions',auth[_0xf2cd('0xb')](),controller[_0xf2cd('0xc')]);router['get'](_0xf2cd('0xd'),auth[_0xf2cd('0xb')](),controller[_0xf2cd('0xe')]);router[_0xf2cd('0xf')]('/',auth[_0xf2cd('0xb')](),controller[_0xf2cd('0x10')]);router[_0xf2cd('0x11')](_0xf2cd('0x12'),auth[_0xf2cd('0xb')](),controller[_0xf2cd('0x13')]);router[_0xf2cd('0x14')](_0xf2cd('0x12'),auth[_0xf2cd('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe338=['STRING','exports'];(function(_0x2936dd,_0x552dfc){var _0x34ee21=function(_0x4c7367){while(--_0x4c7367){_0x2936dd['push'](_0x2936dd['shift']());}};_0x34ee21(++_0x552dfc);}(_0xe338,0x137));var _0x8e33=function(_0x4fc2fc,_0x5d3a71){_0x4fc2fc=_0x4fc2fc-0x0;var _0x1c701f=_0xe338[_0x4fc2fc];return _0x1c701f;};'use strict';var Sequelize=require('sequelize');module[_0x8e33('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x8e33('0x1')]}};
\ No newline at end of file
+var _0xfa41=['STRING','sequelize','exports'];(function(_0x1749b8,_0x54b96f){var _0x98994f=function(_0x2b9db1){while(--_0x2b9db1){_0x1749b8['push'](_0x1749b8['shift']());}};_0x98994f(++_0x54b96f);}(_0xfa41,0x106));var _0x1fa4=function(_0x2c1101,_0x1909d9){_0x2c1101=_0x2c1101-0x0;var _0x56f52f=_0xfa41[_0x2c1101];return _0x56f52f;};'use strict';var Sequelize=require(_0x1fa4('0x0'));module[_0x1fa4('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x1fa4('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5988=['zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','status','end','limit','undefined','count','offset','set','Content-Range','json','reject','save','update','destroy','then','sendStatus','error','stack','name','map','FreshsalesConfiguration','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','keys','includeAll','options','find','create','body','getSubjects','findOne','rawAttributes','getDescriptions','FreshsalesField','getFields','order','eml-format'];(function(_0x504d9a,_0x187673){var _0x35fe3f=function(_0x3efde3){while(--_0x3efde3){_0x504d9a['push'](_0x504d9a['shift']());}};_0x35fe3f(++_0x187673);}(_0x5988,0x13b));var _0x8598=function(_0x432fca,_0xb0b1b5){_0x432fca=_0x432fca-0x0;var _0x3adba4=_0x5988[_0x432fca];return _0x3adba4;};'use strict';var emlformat=require(_0x8598('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8598('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8598('0x2'));var moment=require('moment');var BPromise=require(_0x8598('0x3'));var Mustache=require(_0x8598('0x4'));var util=require(_0x8598('0x5'));var path=require(_0x8598('0x6'));var sox=require(_0x8598('0x7'));var csv=require(_0x8598('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8598('0x9'));var _=require(_0x8598('0xa'));var squel=require(_0x8598('0xb'));var crypto=require(_0x8598('0xc'));var jsforce=require(_0x8598('0xd'));var deskjs=require(_0x8598('0xe'));var toCsv=require(_0x8598('0x8'));var querystring=require(_0x8598('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8598('0x10'));var qs=require(_0x8598('0x11'));var as=require(_0x8598('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8598('0x13'))(_0x8598('0x14'));var utils=require('../../config/utils');var config=require(_0x8598('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x8598('0x16'))['db'];function respondWithStatusCode(_0x26c9d3,_0x5dcccb){_0x5dcccb=_0x5dcccb||0xcc;return function(_0x3f34b3){if(_0x3f34b3){return _0x26c9d3['sendStatus'](_0x5dcccb);}return _0x26c9d3[_0x8598('0x17')](_0x5dcccb)[_0x8598('0x18')]();};}function respondWithResult(_0x3177e8,_0x21b6d5){_0x21b6d5=_0x21b6d5||0xc8;return function(_0x4ddb3b){if(_0x4ddb3b){return _0x3177e8[_0x8598('0x17')](_0x21b6d5)['json'](_0x4ddb3b);}};}function respondWithFilteredResult(_0x37f1d8,_0x3bb36a){return function(_0x236093){if(_0x236093){var _0x374b4d=typeof _0x3bb36a['offset']==='undefined'&&typeof _0x3bb36a[_0x8598('0x19')]===_0x8598('0x1a');var _0x19d646=_0x236093[_0x8598('0x1b')];var _0x32a66c=_0x374b4d?0x0:_0x3bb36a[_0x8598('0x1c')];var _0x3b99a8=_0x374b4d?_0x236093[_0x8598('0x1b')]:_0x3bb36a[_0x8598('0x1c')]+_0x3bb36a[_0x8598('0x19')];var _0x3bfd3b;if(_0x3b99a8>=_0x19d646){_0x3b99a8=_0x19d646;_0x3bfd3b=0xc8;}else{_0x3bfd3b=0xce;}_0x37f1d8[_0x8598('0x17')](_0x3bfd3b);return _0x37f1d8[_0x8598('0x1d')](_0x8598('0x1e'),_0x32a66c+'-'+_0x3b99a8+'/'+_0x19d646)[_0x8598('0x1f')](_0x236093);}return null;};}function patchUpdates(_0x5dc91c){return function(_0x21667b){try{jsonpatch['apply'](_0x21667b,_0x5dc91c,!![]);}catch(_0x54ffdd){return BPromise[_0x8598('0x20')](_0x54ffdd);}return _0x21667b[_0x8598('0x21')]();};}function saveUpdates(_0x5d9ace,_0x56e191){return function(_0x20a0d0){if(_0x20a0d0){return _0x20a0d0[_0x8598('0x22')](_0x5d9ace)['then'](function(_0x25d50a){return _0x25d50a;});}return null;};}function removeEntity(_0x14663d,_0x5d4cfa){return function(_0x494aa7){if(_0x494aa7){return _0x494aa7[_0x8598('0x23')]()[_0x8598('0x24')](function(){_0x14663d[_0x8598('0x17')](0xcc)[_0x8598('0x18')]();});}};}function handleEntityNotFound(_0x20f2ae,_0x3e30d5){return function(_0x4d9d93){if(!_0x4d9d93){_0x20f2ae[_0x8598('0x25')](0x194);}return _0x4d9d93;};}function handleError(_0x127a23,_0x2b327b){_0x2b327b=_0x2b327b||0x1f4;return function(_0x58394b){logger[_0x8598('0x26')](_0x58394b[_0x8598('0x27')]);if(_0x58394b[_0x8598('0x28')]){delete _0x58394b['name'];}_0x127a23[_0x8598('0x17')](_0x2b327b)['send'](_0x58394b);};}exports['index']=function(_0x39dde2,_0x328691){var _0x29bb89={},_0x2234ed={},_0x185928={'count':0x0,'rows':[]};var _0x5f4836=_[_0x8598('0x29')](db[_0x8598('0x2a')]['rawAttributes'],function(_0x138aa0){return{'name':_0x138aa0['fieldName'],'type':_0x138aa0[_0x8598('0x2b')][_0x8598('0x2c')]};});_0x2234ed[_0x8598('0x2d')]=_[_0x8598('0x29')](_0x5f4836,_0x8598('0x28'));_0x2234ed[_0x8598('0x2e')]=_['keys'](_0x39dde2[_0x8598('0x2e')]);_0x2234ed[_0x8598('0x2f')]=_[_0x8598('0x30')](_0x2234ed['model'],_0x2234ed['query']);_0x29bb89[_0x8598('0x31')]=_[_0x8598('0x30')](_0x2234ed[_0x8598('0x2d')],qs[_0x8598('0x32')](_0x39dde2['query'][_0x8598('0x32')]));_0x29bb89['attributes']=_0x29bb89[_0x8598('0x31')][_0x8598('0x33')]?_0x29bb89[_0x8598('0x31')]:_0x2234ed[_0x8598('0x2d')];if(!_0x39dde2['query'][_0x8598('0x34')](_0x8598('0x35'))){_0x29bb89[_0x8598('0x19')]=qs[_0x8598('0x19')](_0x39dde2[_0x8598('0x2e')][_0x8598('0x19')]);_0x29bb89[_0x8598('0x1c')]=qs['offset'](_0x39dde2[_0x8598('0x2e')]['offset']);}_0x29bb89['order']=qs[_0x8598('0x36')](_0x39dde2[_0x8598('0x2e')][_0x8598('0x36')]);_0x29bb89[_0x8598('0x37')]=qs['filters'](_[_0x8598('0x38')](_0x39dde2['query'],_0x2234ed[_0x8598('0x2f')]),_0x5f4836);if(_0x39dde2[_0x8598('0x2e')][_0x8598('0x39')]){_0x29bb89[_0x8598('0x37')]=_[_0x8598('0x3a')](_0x29bb89[_0x8598('0x37')],{'$or':_[_0x8598('0x29')](_0x5f4836,function(_0x1c5057){if(_0x1c5057[_0x8598('0x2b')]!==_0x8598('0x3b')){var _0x24aa44={};_0x24aa44[_0x1c5057[_0x8598('0x28')]]={'$like':'%'+_0x39dde2['query']['filter']+'%'};return _0x24aa44;}})});}_0x29bb89=_['merge']({},_0x29bb89,_0x39dde2['options']);var _0x5a6314={'where':_0x29bb89['where']};return db[_0x8598('0x2a')][_0x8598('0x1b')](_0x5a6314)[_0x8598('0x24')](function(_0x41c44c){_0x185928['count']=_0x41c44c;if(_0x39dde2[_0x8598('0x2e')]['includeAll']){_0x29bb89[_0x8598('0x3c')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0x8598('0x3d')](_0x29bb89);})[_0x8598('0x24')](function(_0x328e5c){_0x185928[_0x8598('0x3e')]=_0x328e5c;return _0x185928;})[_0x8598('0x24')](respondWithFilteredResult(_0x328691,_0x29bb89))[_0x8598('0x3f')](handleError(_0x328691,null));};exports[_0x8598('0x40')]=function(_0x462f32,_0x35133a){var _0x5ad4b5={'raw':![],'where':{'id':_0x462f32[_0x8598('0x41')]['id']}},_0x3d250a={};_0x3d250a[_0x8598('0x2d')]=_[_0x8598('0x42')](db[_0x8598('0x2a')]['rawAttributes']);_0x3d250a['query']=_['keys'](_0x462f32[_0x8598('0x2e')]);_0x3d250a[_0x8598('0x2f')]=_[_0x8598('0x30')](_0x3d250a['model'],_0x3d250a[_0x8598('0x2e')]);_0x5ad4b5[_0x8598('0x31')]=_[_0x8598('0x30')](_0x3d250a[_0x8598('0x2d')],qs[_0x8598('0x32')](_0x462f32[_0x8598('0x2e')][_0x8598('0x32')]));_0x5ad4b5['attributes']=_0x5ad4b5[_0x8598('0x31')][_0x8598('0x33')]?_0x5ad4b5['attributes']:_0x3d250a[_0x8598('0x2d')];if(_0x462f32['query'][_0x8598('0x43')]){_0x5ad4b5[_0x8598('0x3c')]=[{'all':!![]}];}_0x5ad4b5=_[_0x8598('0x3a')]({},_0x5ad4b5,_0x462f32[_0x8598('0x44')]);return db[_0x8598('0x2a')][_0x8598('0x45')](_0x5ad4b5)[_0x8598('0x24')](handleEntityNotFound(_0x35133a,null))[_0x8598('0x24')](respondWithResult(_0x35133a,null))[_0x8598('0x3f')](handleError(_0x35133a,null));};exports[_0x8598('0x46')]=function(_0x28dd63,_0x5c4655){return db['FreshsalesConfiguration'][_0x8598('0x46')](_0x28dd63[_0x8598('0x47')],{})[_0x8598('0x24')](respondWithResult(_0x5c4655,0xc9))[_0x8598('0x3f')](handleError(_0x5c4655,null));};exports[_0x8598('0x22')]=function(_0x51cef2,_0x4d89a0){if(_0x51cef2['body']['id']){delete _0x51cef2[_0x8598('0x47')]['id'];}return db[_0x8598('0x2a')][_0x8598('0x45')]({'where':{'id':_0x51cef2[_0x8598('0x41')]['id']}})['then'](handleEntityNotFound(_0x4d89a0,null))[_0x8598('0x24')](saveUpdates(_0x51cef2[_0x8598('0x47')],null))['then'](respondWithResult(_0x4d89a0,null))[_0x8598('0x3f')](handleError(_0x4d89a0,null));};exports[_0x8598('0x23')]=function(_0x5a12dc,_0x5cd235){return db['FreshsalesConfiguration'][_0x8598('0x45')]({'where':{'id':_0x5a12dc['params']['id']}})[_0x8598('0x24')](handleEntityNotFound(_0x5cd235,null))['then'](removeEntity(_0x5cd235,null))['catch'](handleError(_0x5cd235,null));};exports[_0x8598('0x48')]=function(_0x5541aa,_0x10f00a,_0x2cf86d){var _0x472bec={};var _0x27781d={};var _0x4a6d69;var _0x2fa394;return db[_0x8598('0x2a')][_0x8598('0x49')]({'where':{'id':_0x5541aa[_0x8598('0x41')]['id']}})[_0x8598('0x24')](handleEntityNotFound(_0x10f00a,null))[_0x8598('0x24')](function(_0x3fc879){if(_0x3fc879){_0x4a6d69=_0x3fc879;_0x27781d['model']=_[_0x8598('0x42')](db['FreshsalesField'][_0x8598('0x4a')]);_0x27781d[_0x8598('0x2e')]=_[_0x8598('0x42')](_0x5541aa[_0x8598('0x2e')]);_0x27781d[_0x8598('0x2f')]=_[_0x8598('0x30')](_0x27781d['model'],_0x27781d[_0x8598('0x2e')]);_0x472bec[_0x8598('0x31')]=_['intersection'](_0x27781d['model'],qs['fields'](_0x5541aa[_0x8598('0x2e')]['fields']));_0x472bec[_0x8598('0x31')]=_0x472bec[_0x8598('0x31')][_0x8598('0x33')]?_0x472bec[_0x8598('0x31')]:_0x27781d[_0x8598('0x2d')];_0x472bec['order']=qs[_0x8598('0x36')](_0x5541aa[_0x8598('0x2e')][_0x8598('0x36')]);_0x472bec[_0x8598('0x37')]=qs[_0x8598('0x2f')](_[_0x8598('0x38')](_0x5541aa[_0x8598('0x2e')],_0x27781d[_0x8598('0x2f')]));if(_0x5541aa[_0x8598('0x2e')]['filter']){_0x472bec[_0x8598('0x37')]=_[_0x8598('0x3a')](_0x472bec[_0x8598('0x37')],{'$or':_[_0x8598('0x29')](_0x472bec['attributes'],function(_0x49dace){var _0x1a0478={};_0x1a0478[_0x49dace]={'$like':'%'+_0x5541aa[_0x8598('0x2e')][_0x8598('0x39')]+'%'};return _0x1a0478;})});}_0x472bec=_[_0x8598('0x3a')]({},_0x472bec,_0x5541aa['options']);return _0x4a6d69[_0x8598('0x48')](_0x472bec);}})[_0x8598('0x24')](function(_0x163971){if(_0x163971){_0x2fa394=_0x163971['length'];if(!_0x5541aa[_0x8598('0x2e')][_0x8598('0x34')]('nolimit')){_0x472bec[_0x8598('0x19')]=qs[_0x8598('0x19')](_0x5541aa[_0x8598('0x2e')][_0x8598('0x19')]);_0x472bec[_0x8598('0x1c')]=qs['offset'](_0x5541aa[_0x8598('0x2e')][_0x8598('0x1c')]);}return _0x4a6d69[_0x8598('0x48')](_0x472bec);}})[_0x8598('0x24')](function(_0xba86ee){if(_0xba86ee){return _0xba86ee?{'count':_0x2fa394,'rows':_0xba86ee}:null;}})['then'](respondWithResult(_0x10f00a,null))['catch'](handleError(_0x10f00a,null));};exports[_0x8598('0x4b')]=function(_0x1fc770,_0x26df2a,_0x4ef52c){var _0x566c10={};var _0x2f2ba2={};var _0x3a8b49;var _0x1738c1;return db[_0x8598('0x2a')][_0x8598('0x49')]({'where':{'id':_0x1fc770[_0x8598('0x41')]['id']}})['then'](handleEntityNotFound(_0x26df2a,null))['then'](function(_0x41f289){if(_0x41f289){_0x3a8b49=_0x41f289;_0x2f2ba2[_0x8598('0x2d')]=_[_0x8598('0x42')](db[_0x8598('0x4c')][_0x8598('0x4a')]);_0x2f2ba2[_0x8598('0x2e')]=_[_0x8598('0x42')](_0x1fc770[_0x8598('0x2e')]);_0x2f2ba2['filters']=_['intersection'](_0x2f2ba2[_0x8598('0x2d')],_0x2f2ba2[_0x8598('0x2e')]);_0x566c10[_0x8598('0x31')]=_[_0x8598('0x30')](_0x2f2ba2['model'],qs[_0x8598('0x32')](_0x1fc770[_0x8598('0x2e')]['fields']));_0x566c10[_0x8598('0x31')]=_0x566c10[_0x8598('0x31')][_0x8598('0x33')]?_0x566c10['attributes']:_0x2f2ba2[_0x8598('0x2d')];_0x566c10['order']=qs[_0x8598('0x36')](_0x1fc770[_0x8598('0x2e')][_0x8598('0x36')]);_0x566c10['where']=qs['filters'](_['pick'](_0x1fc770[_0x8598('0x2e')],_0x2f2ba2['filters']));if(_0x1fc770[_0x8598('0x2e')][_0x8598('0x39')]){_0x566c10[_0x8598('0x37')]=_[_0x8598('0x3a')](_0x566c10[_0x8598('0x37')],{'$or':_[_0x8598('0x29')](_0x566c10[_0x8598('0x31')],function(_0x20a83d){var _0x46dceb={};_0x46dceb[_0x20a83d]={'$like':'%'+_0x1fc770[_0x8598('0x2e')][_0x8598('0x39')]+'%'};return _0x46dceb;})});}_0x566c10=_[_0x8598('0x3a')]({},_0x566c10,_0x1fc770[_0x8598('0x44')]);return _0x3a8b49[_0x8598('0x4b')](_0x566c10);}})['then'](function(_0x559d1b){if(_0x559d1b){_0x1738c1=_0x559d1b[_0x8598('0x33')];if(!_0x1fc770['query']['hasOwnProperty'](_0x8598('0x35'))){_0x566c10[_0x8598('0x19')]=qs[_0x8598('0x19')](_0x1fc770[_0x8598('0x2e')]['limit']);_0x566c10['offset']=qs['offset'](_0x1fc770['query'][_0x8598('0x1c')]);}return _0x3a8b49[_0x8598('0x4b')](_0x566c10);}})[_0x8598('0x24')](function(_0x3cf6cd){if(_0x3cf6cd){return _0x3cf6cd?{'count':_0x1738c1,'rows':_0x3cf6cd}:null;}})['then'](respondWithResult(_0x26df2a,null))[_0x8598('0x3f')](handleError(_0x26df2a,null));};exports[_0x8598('0x4d')]=function(_0x5c63db,_0x59680c,_0x1b1e38){var _0x45f0c9={};var _0x3e2e29={};var _0x5a8d6b;var _0x15232b;return db[_0x8598('0x2a')][_0x8598('0x49')]({'where':{'id':_0x5c63db[_0x8598('0x41')]['id']}})[_0x8598('0x24')](handleEntityNotFound(_0x59680c,null))[_0x8598('0x24')](function(_0x4f2506){if(_0x4f2506){_0x5a8d6b=_0x4f2506;_0x3e2e29[_0x8598('0x2d')]=_[_0x8598('0x42')](db[_0x8598('0x4c')][_0x8598('0x4a')]);_0x3e2e29[_0x8598('0x2e')]=_[_0x8598('0x42')](_0x5c63db['query']);_0x3e2e29['filters']=_['intersection'](_0x3e2e29[_0x8598('0x2d')],_0x3e2e29[_0x8598('0x2e')]);_0x45f0c9[_0x8598('0x31')]=_[_0x8598('0x30')](_0x3e2e29[_0x8598('0x2d')],qs['fields'](_0x5c63db['query'][_0x8598('0x32')]));_0x45f0c9['attributes']=_0x45f0c9[_0x8598('0x31')]['length']?_0x45f0c9[_0x8598('0x31')]:_0x3e2e29['model'];_0x45f0c9[_0x8598('0x4e')]=qs[_0x8598('0x36')](_0x5c63db['query'][_0x8598('0x36')]);_0x45f0c9[_0x8598('0x37')]=qs[_0x8598('0x2f')](_[_0x8598('0x38')](_0x5c63db[_0x8598('0x2e')],_0x3e2e29[_0x8598('0x2f')]));if(_0x5c63db[_0x8598('0x2e')][_0x8598('0x39')]){_0x45f0c9['where']=_[_0x8598('0x3a')](_0x45f0c9['where'],{'$or':_[_0x8598('0x29')](_0x45f0c9['attributes'],function(_0x3c597f){var _0x14fafb={};_0x14fafb[_0x3c597f]={'$like':'%'+_0x5c63db['query'][_0x8598('0x39')]+'%'};return _0x14fafb;})});}_0x45f0c9=_[_0x8598('0x3a')]({},_0x45f0c9,_0x5c63db['options']);return _0x5a8d6b[_0x8598('0x4d')](_0x45f0c9);}})[_0x8598('0x24')](function(_0x129b0b){if(_0x129b0b){_0x15232b=_0x129b0b[_0x8598('0x33')];if(!_0x5c63db['query']['hasOwnProperty']('nolimit')){_0x45f0c9['limit']=qs[_0x8598('0x19')](_0x5c63db[_0x8598('0x2e')]['limit']);_0x45f0c9[_0x8598('0x1c')]=qs[_0x8598('0x1c')](_0x5c63db['query'][_0x8598('0x1c')]);}return _0x5a8d6b[_0x8598('0x4d')](_0x45f0c9);}})[_0x8598('0x24')](function(_0x4b00c0){if(_0x4b00c0){return _0x4b00c0?{'count':_0x15232b,'rows':_0x4b00c0}:null;}})[_0x8598('0x24')](respondWithResult(_0x59680c,null))[_0x8598('0x3f')](handleError(_0x59680c,null));};
\ No newline at end of file
+var _0x9999=['../../config/license/hardware','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','stack','name','send','map','FreshsalesConfiguration','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','include','rows','catch','show','params','keys','create','body','find','getSubjects','findOne','FreshsalesField','pick','length','getDescriptions','getFields','rimraf','zip-dir','request-promise','moment','mustache','util','path','to-csv','ejs','lodash','squel','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x386c55,_0x57b978){var _0x23652b=function(_0x534904){while(--_0x534904){_0x386c55['push'](_0x386c55['shift']());}};_0x23652b(++_0x57b978);}(_0x9999,0x166));var _0x9999=function(_0xefc8af,_0x15a547){_0xefc8af=_0xefc8af-0x0;var _0x573ec3=_0x9999[_0xefc8af];return _0x573ec3;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9999('0x0'));var zipdir=require(_0x9999('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9999('0x2'));var moment=require(_0x9999('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x9999('0x4'));var util=require(_0x9999('0x5'));var path=require(_0x9999('0x6'));var sox=require('sox');var csv=require(_0x9999('0x7'));var ejs=require(_0x9999('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9999('0x9'));var squel=require(_0x9999('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x9999('0x7'));var querystring=require(_0x9999('0xb'));var Papa=require(_0x9999('0xc'));var Redis=require(_0x9999('0xd'));var authService=require(_0x9999('0xe'));var qs=require(_0x9999('0xf'));var as=require(_0x9999('0x10'));var hardwareService=require(_0x9999('0x11'));var logger=require('../../config/logger')(_0x9999('0x12'));var utils=require(_0x9999('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x9999('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x279056,_0x426172){_0x426172=_0x426172||0xcc;return function(_0x1a9151){if(_0x1a9151){return _0x279056[_0x9999('0x15')](_0x426172);}return _0x279056[_0x9999('0x16')](_0x426172)[_0x9999('0x17')]();};}function respondWithResult(_0x3a7caf,_0x584a12){_0x584a12=_0x584a12||0xc8;return function(_0x88bc49){if(_0x88bc49){return _0x3a7caf[_0x9999('0x16')](_0x584a12)[_0x9999('0x18')](_0x88bc49);}};}function respondWithFilteredResult(_0x36ab41,_0x2559a7){return function(_0xbee23){if(_0xbee23){var _0x2a8f83=typeof _0x2559a7[_0x9999('0x19')]===_0x9999('0x1a')&&typeof _0x2559a7[_0x9999('0x1b')]==='undefined';var _0x5cf5fd=_0xbee23[_0x9999('0x1c')];var _0x5456fe=_0x2a8f83?0x0:_0x2559a7[_0x9999('0x19')];var _0x5dfc85=_0x2a8f83?_0xbee23[_0x9999('0x1c')]:_0x2559a7[_0x9999('0x19')]+_0x2559a7[_0x9999('0x1b')];var _0x5e678f;if(_0x5dfc85>=_0x5cf5fd){_0x5dfc85=_0x5cf5fd;_0x5e678f=0xc8;}else{_0x5e678f=0xce;}_0x36ab41['status'](_0x5e678f);return _0x36ab41[_0x9999('0x1d')](_0x9999('0x1e'),_0x5456fe+'-'+_0x5dfc85+'/'+_0x5cf5fd)[_0x9999('0x18')](_0xbee23);}return null;};}function patchUpdates(_0x8d4001){return function(_0x4dc0f3){try{jsonpatch['apply'](_0x4dc0f3,_0x8d4001,!![]);}catch(_0x1d8ea4){return BPromise[_0x9999('0x1f')](_0x1d8ea4);}return _0x4dc0f3[_0x9999('0x20')]();};}function saveUpdates(_0x4482a9,_0x16d20e){return function(_0xea1d4c){if(_0xea1d4c){return _0xea1d4c[_0x9999('0x21')](_0x4482a9)[_0x9999('0x22')](function(_0x4d5837){return _0x4d5837;});}return null;};}function removeEntity(_0x4539a9,_0x3581ba){return function(_0x5eb245){if(_0x5eb245){return _0x5eb245[_0x9999('0x23')]()[_0x9999('0x22')](function(){_0x4539a9[_0x9999('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x59acad,_0x204358){return function(_0x1e5b14){if(!_0x1e5b14){_0x59acad[_0x9999('0x15')](0x194);}return _0x1e5b14;};}function handleError(_0x3aeb0b,_0x49dce6){_0x49dce6=_0x49dce6||0x1f4;return function(_0xedc803){logger['error'](_0xedc803[_0x9999('0x24')]);if(_0xedc803[_0x9999('0x25')]){delete _0xedc803[_0x9999('0x25')];}_0x3aeb0b['status'](_0x49dce6)[_0x9999('0x26')](_0xedc803);};}exports['index']=function(_0x514b12,_0x1ed48b){var _0x17276c={},_0x38c4e1={},_0x34d59f={'count':0x0,'rows':[]};var _0x555180=_[_0x9999('0x27')](db[_0x9999('0x28')][_0x9999('0x29')],function(_0x52e42a){return{'name':_0x52e42a['fieldName'],'type':_0x52e42a[_0x9999('0x2a')][_0x9999('0x2b')]};});_0x38c4e1[_0x9999('0x2c')]=_[_0x9999('0x27')](_0x555180,'name');_0x38c4e1[_0x9999('0x2d')]=_['keys'](_0x514b12[_0x9999('0x2d')]);_0x38c4e1[_0x9999('0x2e')]=_[_0x9999('0x2f')](_0x38c4e1[_0x9999('0x2c')],_0x38c4e1[_0x9999('0x2d')]);_0x17276c[_0x9999('0x30')]=_[_0x9999('0x2f')](_0x38c4e1['model'],qs[_0x9999('0x31')](_0x514b12[_0x9999('0x2d')]['fields']));_0x17276c[_0x9999('0x30')]=_0x17276c['attributes']['length']?_0x17276c[_0x9999('0x30')]:_0x38c4e1[_0x9999('0x2c')];if(!_0x514b12[_0x9999('0x2d')][_0x9999('0x32')](_0x9999('0x33'))){_0x17276c[_0x9999('0x1b')]=qs['limit'](_0x514b12[_0x9999('0x2d')][_0x9999('0x1b')]);_0x17276c[_0x9999('0x19')]=qs[_0x9999('0x19')](_0x514b12[_0x9999('0x2d')][_0x9999('0x19')]);}_0x17276c[_0x9999('0x34')]=qs[_0x9999('0x35')](_0x514b12[_0x9999('0x2d')][_0x9999('0x35')]);_0x17276c[_0x9999('0x36')]=qs['filters'](_['pick'](_0x514b12['query'],_0x38c4e1['filters']),_0x555180);if(_0x514b12['query']['filter']){_0x17276c[_0x9999('0x36')]=_[_0x9999('0x37')](_0x17276c['where'],{'$or':_[_0x9999('0x27')](_0x555180,function(_0x566930){if(_0x566930['type']!==_0x9999('0x38')){var _0x1ca4c5={};_0x1ca4c5[_0x566930['name']]={'$like':'%'+_0x514b12[_0x9999('0x2d')][_0x9999('0x39')]+'%'};return _0x1ca4c5;}})});}_0x17276c=_['merge']({},_0x17276c,_0x514b12[_0x9999('0x3a')]);var _0x5c67da={'where':_0x17276c[_0x9999('0x36')]};return db[_0x9999('0x28')]['count'](_0x5c67da)['then'](function(_0x32146d){_0x34d59f[_0x9999('0x1c')]=_0x32146d;if(_0x514b12[_0x9999('0x2d')]['includeAll']){_0x17276c[_0x9999('0x3b')]=[{'all':!![]}];}return db[_0x9999('0x28')]['findAll'](_0x17276c);})[_0x9999('0x22')](function(_0x33dfca){_0x34d59f[_0x9999('0x3c')]=_0x33dfca;return _0x34d59f;})[_0x9999('0x22')](respondWithFilteredResult(_0x1ed48b,_0x17276c))[_0x9999('0x3d')](handleError(_0x1ed48b,null));};exports[_0x9999('0x3e')]=function(_0x5075d3,_0x360346){var _0x35bbd9={'raw':![],'where':{'id':_0x5075d3[_0x9999('0x3f')]['id']}},_0x345a75={};_0x345a75[_0x9999('0x2c')]=_[_0x9999('0x40')](db[_0x9999('0x28')][_0x9999('0x29')]);_0x345a75['query']=_[_0x9999('0x40')](_0x5075d3[_0x9999('0x2d')]);_0x345a75['filters']=_[_0x9999('0x2f')](_0x345a75[_0x9999('0x2c')],_0x345a75[_0x9999('0x2d')]);_0x35bbd9[_0x9999('0x30')]=_['intersection'](_0x345a75['model'],qs[_0x9999('0x31')](_0x5075d3[_0x9999('0x2d')][_0x9999('0x31')]));_0x35bbd9[_0x9999('0x30')]=_0x35bbd9[_0x9999('0x30')]['length']?_0x35bbd9[_0x9999('0x30')]:_0x345a75[_0x9999('0x2c')];if(_0x5075d3[_0x9999('0x2d')]['includeAll']){_0x35bbd9[_0x9999('0x3b')]=[{'all':!![]}];}_0x35bbd9=_[_0x9999('0x37')]({},_0x35bbd9,_0x5075d3[_0x9999('0x3a')]);return db[_0x9999('0x28')]['find'](_0x35bbd9)[_0x9999('0x22')](handleEntityNotFound(_0x360346,null))[_0x9999('0x22')](respondWithResult(_0x360346,null))[_0x9999('0x3d')](handleError(_0x360346,null));};exports[_0x9999('0x41')]=function(_0x5a364e,_0x39ee86){return db[_0x9999('0x28')]['create'](_0x5a364e[_0x9999('0x42')],{})[_0x9999('0x22')](respondWithResult(_0x39ee86,0xc9))[_0x9999('0x3d')](handleError(_0x39ee86,null));};exports[_0x9999('0x21')]=function(_0x2ec7d3,_0x5a68be){if(_0x2ec7d3[_0x9999('0x42')]['id']){delete _0x2ec7d3['body']['id'];}return db[_0x9999('0x28')][_0x9999('0x43')]({'where':{'id':_0x2ec7d3[_0x9999('0x3f')]['id']}})[_0x9999('0x22')](handleEntityNotFound(_0x5a68be,null))[_0x9999('0x22')](saveUpdates(_0x2ec7d3[_0x9999('0x42')],null))[_0x9999('0x22')](respondWithResult(_0x5a68be,null))[_0x9999('0x3d')](handleError(_0x5a68be,null));};exports[_0x9999('0x23')]=function(_0x7b1a75,_0xd58dd6){return db[_0x9999('0x28')][_0x9999('0x43')]({'where':{'id':_0x7b1a75[_0x9999('0x3f')]['id']}})[_0x9999('0x22')](handleEntityNotFound(_0xd58dd6,null))[_0x9999('0x22')](removeEntity(_0xd58dd6,null))[_0x9999('0x3d')](handleError(_0xd58dd6,null));};exports[_0x9999('0x44')]=function(_0x115ceb,_0x59a617,_0x5ecb30){var _0x536dab={};var _0x2e224a={};var _0x3d8ed2;var _0x55cd7c;return db[_0x9999('0x28')][_0x9999('0x45')]({'where':{'id':_0x115ceb[_0x9999('0x3f')]['id']}})[_0x9999('0x22')](handleEntityNotFound(_0x59a617,null))['then'](function(_0x188f26){if(_0x188f26){_0x3d8ed2=_0x188f26;_0x2e224a[_0x9999('0x2c')]=_[_0x9999('0x40')](db[_0x9999('0x46')]['rawAttributes']);_0x2e224a['query']=_[_0x9999('0x40')](_0x115ceb[_0x9999('0x2d')]);_0x2e224a[_0x9999('0x2e')]=_[_0x9999('0x2f')](_0x2e224a['model'],_0x2e224a['query']);_0x536dab[_0x9999('0x30')]=_[_0x9999('0x2f')](_0x2e224a[_0x9999('0x2c')],qs[_0x9999('0x31')](_0x115ceb[_0x9999('0x2d')][_0x9999('0x31')]));_0x536dab[_0x9999('0x30')]=_0x536dab[_0x9999('0x30')]['length']?_0x536dab['attributes']:_0x2e224a[_0x9999('0x2c')];_0x536dab['order']=qs[_0x9999('0x35')](_0x115ceb['query'][_0x9999('0x35')]);_0x536dab[_0x9999('0x36')]=qs[_0x9999('0x2e')](_[_0x9999('0x47')](_0x115ceb[_0x9999('0x2d')],_0x2e224a[_0x9999('0x2e')]));if(_0x115ceb[_0x9999('0x2d')]['filter']){_0x536dab[_0x9999('0x36')]=_['merge'](_0x536dab[_0x9999('0x36')],{'$or':_[_0x9999('0x27')](_0x536dab['attributes'],function(_0x3703f3){var _0x3a30b1={};_0x3a30b1[_0x3703f3]={'$like':'%'+_0x115ceb[_0x9999('0x2d')]['filter']+'%'};return _0x3a30b1;})});}_0x536dab=_['merge']({},_0x536dab,_0x115ceb[_0x9999('0x3a')]);return _0x3d8ed2[_0x9999('0x44')](_0x536dab);}})[_0x9999('0x22')](function(_0x5b2295){if(_0x5b2295){_0x55cd7c=_0x5b2295[_0x9999('0x48')];if(!_0x115ceb['query']['hasOwnProperty']('nolimit')){_0x536dab[_0x9999('0x1b')]=qs['limit'](_0x115ceb[_0x9999('0x2d')][_0x9999('0x1b')]);_0x536dab[_0x9999('0x19')]=qs['offset'](_0x115ceb['query']['offset']);}return _0x3d8ed2['getSubjects'](_0x536dab);}})[_0x9999('0x22')](function(_0x19b1c7){if(_0x19b1c7){return _0x19b1c7?{'count':_0x55cd7c,'rows':_0x19b1c7}:null;}})['then'](respondWithResult(_0x59a617,null))[_0x9999('0x3d')](handleError(_0x59a617,null));};exports[_0x9999('0x49')]=function(_0x366572,_0xb1be,_0x16f65f){var _0x7657b={};var _0x4f9f8d={};var _0x2cdf57;var _0x55272a;return db[_0x9999('0x28')][_0x9999('0x45')]({'where':{'id':_0x366572[_0x9999('0x3f')]['id']}})[_0x9999('0x22')](handleEntityNotFound(_0xb1be,null))[_0x9999('0x22')](function(_0x272862){if(_0x272862){_0x2cdf57=_0x272862;_0x4f9f8d[_0x9999('0x2c')]=_[_0x9999('0x40')](db[_0x9999('0x46')][_0x9999('0x29')]);_0x4f9f8d['query']=_[_0x9999('0x40')](_0x366572[_0x9999('0x2d')]);_0x4f9f8d[_0x9999('0x2e')]=_[_0x9999('0x2f')](_0x4f9f8d[_0x9999('0x2c')],_0x4f9f8d[_0x9999('0x2d')]);_0x7657b[_0x9999('0x30')]=_[_0x9999('0x2f')](_0x4f9f8d['model'],qs['fields'](_0x366572[_0x9999('0x2d')][_0x9999('0x31')]));_0x7657b[_0x9999('0x30')]=_0x7657b[_0x9999('0x30')][_0x9999('0x48')]?_0x7657b[_0x9999('0x30')]:_0x4f9f8d['model'];_0x7657b['order']=qs[_0x9999('0x35')](_0x366572['query'][_0x9999('0x35')]);_0x7657b[_0x9999('0x36')]=qs['filters'](_[_0x9999('0x47')](_0x366572[_0x9999('0x2d')],_0x4f9f8d['filters']));if(_0x366572[_0x9999('0x2d')][_0x9999('0x39')]){_0x7657b[_0x9999('0x36')]=_[_0x9999('0x37')](_0x7657b['where'],{'$or':_['map'](_0x7657b[_0x9999('0x30')],function(_0x2a3036){var _0xf60e55={};_0xf60e55[_0x2a3036]={'$like':'%'+_0x366572['query'][_0x9999('0x39')]+'%'};return _0xf60e55;})});}_0x7657b=_[_0x9999('0x37')]({},_0x7657b,_0x366572['options']);return _0x2cdf57['getDescriptions'](_0x7657b);}})['then'](function(_0x43b2c0){if(_0x43b2c0){_0x55272a=_0x43b2c0[_0x9999('0x48')];if(!_0x366572[_0x9999('0x2d')]['hasOwnProperty'](_0x9999('0x33'))){_0x7657b['limit']=qs[_0x9999('0x1b')](_0x366572['query'][_0x9999('0x1b')]);_0x7657b['offset']=qs[_0x9999('0x19')](_0x366572[_0x9999('0x2d')][_0x9999('0x19')]);}return _0x2cdf57[_0x9999('0x49')](_0x7657b);}})[_0x9999('0x22')](function(_0x366b61){if(_0x366b61){return _0x366b61?{'count':_0x55272a,'rows':_0x366b61}:null;}})[_0x9999('0x22')](respondWithResult(_0xb1be,null))[_0x9999('0x3d')](handleError(_0xb1be,null));};exports[_0x9999('0x4a')]=function(_0x5574ea,_0x24732e,_0x36eed7){var _0x89e800={};var _0x4c9b24={};var _0x27f5c1;var _0x32004d;return db[_0x9999('0x28')][_0x9999('0x45')]({'where':{'id':_0x5574ea[_0x9999('0x3f')]['id']}})[_0x9999('0x22')](handleEntityNotFound(_0x24732e,null))[_0x9999('0x22')](function(_0x46f48b){if(_0x46f48b){_0x27f5c1=_0x46f48b;_0x4c9b24['model']=_[_0x9999('0x40')](db['FreshsalesField'][_0x9999('0x29')]);_0x4c9b24['query']=_[_0x9999('0x40')](_0x5574ea[_0x9999('0x2d')]);_0x4c9b24['filters']=_[_0x9999('0x2f')](_0x4c9b24[_0x9999('0x2c')],_0x4c9b24['query']);_0x89e800['attributes']=_[_0x9999('0x2f')](_0x4c9b24[_0x9999('0x2c')],qs['fields'](_0x5574ea['query'][_0x9999('0x31')]));_0x89e800[_0x9999('0x30')]=_0x89e800[_0x9999('0x30')][_0x9999('0x48')]?_0x89e800[_0x9999('0x30')]:_0x4c9b24['model'];_0x89e800[_0x9999('0x34')]=qs[_0x9999('0x35')](_0x5574ea[_0x9999('0x2d')][_0x9999('0x35')]);_0x89e800[_0x9999('0x36')]=qs[_0x9999('0x2e')](_[_0x9999('0x47')](_0x5574ea[_0x9999('0x2d')],_0x4c9b24[_0x9999('0x2e')]));if(_0x5574ea[_0x9999('0x2d')][_0x9999('0x39')]){_0x89e800[_0x9999('0x36')]=_['merge'](_0x89e800[_0x9999('0x36')],{'$or':_[_0x9999('0x27')](_0x89e800[_0x9999('0x30')],function(_0x48132d){var _0x3be804={};_0x3be804[_0x48132d]={'$like':'%'+_0x5574ea['query'][_0x9999('0x39')]+'%'};return _0x3be804;})});}_0x89e800=_[_0x9999('0x37')]({},_0x89e800,_0x5574ea[_0x9999('0x3a')]);return _0x27f5c1['getFields'](_0x89e800);}})[_0x9999('0x22')](function(_0x2dfab7){if(_0x2dfab7){_0x32004d=_0x2dfab7[_0x9999('0x48')];if(!_0x5574ea['query'][_0x9999('0x32')](_0x9999('0x33'))){_0x89e800['limit']=qs[_0x9999('0x1b')](_0x5574ea[_0x9999('0x2d')][_0x9999('0x1b')]);_0x89e800[_0x9999('0x19')]=qs[_0x9999('0x19')](_0x5574ea[_0x9999('0x2d')][_0x9999('0x19')]);}return _0x27f5c1['getFields'](_0x89e800);}})[_0x9999('0x22')](function(_0x55956d){if(_0x55956d){return _0x55956d?{'count':_0x32004d,'rows':_0x55956d}:null;}})[_0x9999('0x22')](respondWithResult(_0x24732e,null))['catch'](handleError(_0x24732e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a85=['path','rimraf','../../config/environment','./intFreshsalesConfiguration.attributes','exports','int_freshsales_configurations','lodash','api','moment','bluebird','request-promise'];(function(_0x32b5da,_0x45d994){var _0x1304ab=function(_0x30b6e6){while(--_0x30b6e6){_0x32b5da['push'](_0x32b5da['shift']());}};_0x1304ab(++_0x45d994);}(_0x2a85,0x1ea));var _0x52a8=function(_0x290ef7,_0xa522f1){_0x290ef7=_0x290ef7-0x0;var _0xd88752=_0x2a85[_0x290ef7];return _0xd88752;};'use strict';var _=require(_0x52a8('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x52a8('0x1'));var moment=require(_0x52a8('0x2'));var BPromise=require(_0x52a8('0x3'));var rp=require(_0x52a8('0x4'));var fs=require('fs');var path=require(_0x52a8('0x5'));var rimraf=require(_0x52a8('0x6'));var config=require(_0x52a8('0x7'));var attributes=require(_0x52a8('0x8'));module[_0x52a8('0x9')]=function(_0x2f295c,_0x18dbcc){return _0x2f295c['define']('FreshsalesConfiguration',attributes,{'tableName':_0x52a8('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xaa58=['rimraf','../../config/environment','./intFreshsalesConfiguration.attributes','define','FreshsalesConfiguration','int_freshsales_configurations','lodash','util','../../config/logger','api','moment','request-promise','path'];(function(_0x4b47cf,_0x1133c5){var _0x58a228=function(_0x47d340){while(--_0x47d340){_0x4b47cf['push'](_0x4b47cf['shift']());}};_0x58a228(++_0x1133c5);}(_0xaa58,0x131));var _0x8aa5=function(_0x37a604,_0x253974){_0x37a604=_0x37a604-0x0;var _0xa9486b=_0xaa58[_0x37a604];return _0xa9486b;};'use strict';var _=require(_0x8aa5('0x0'));var util=require(_0x8aa5('0x1'));var logger=require(_0x8aa5('0x2'))(_0x8aa5('0x3'));var moment=require(_0x8aa5('0x4'));var BPromise=require('bluebird');var rp=require(_0x8aa5('0x5'));var fs=require('fs');var path=require(_0x8aa5('0x6'));var rimraf=require(_0x8aa5('0x7'));var config=require(_0x8aa5('0x8'));var attributes=require(_0x8aa5('0x9'));module['exports']=function(_0x113354,_0x3fc1c0){return _0x113354[_0x8aa5('0xa')](_0x8aa5('0xb'),attributes,{'tableName':_0x8aa5('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4326=['FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','stringify','code','error','message','FreshsalesConfiguration,\x20%s,\x20%s','result','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','request\x20sent','debug'];(function(_0x550c34,_0x380a97){var _0x35900a=function(_0x2c4bac){while(--_0x2c4bac){_0x550c34['push'](_0x550c34['shift']());}};_0x35900a(++_0x380a97);}(_0x4326,0x14a));var _0x6432=function(_0x5cf3ad,_0x24a692){_0x5cf3ad=_0x5cf3ad-0x0;var _0x516957=_0x4326[_0x5cf3ad];return _0x516957;};'use strict';var _=require(_0x6432('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6432('0x1'));var rs=require(_0x6432('0x2'));var fs=require('fs');var Redis=require(_0x6432('0x3'));var db=require(_0x6432('0x4'))['db'];var utils=require(_0x6432('0x5'));var logger=require(_0x6432('0x6'))(_0x6432('0x7'));var config=require(_0x6432('0x8'));var jayson=require(_0x6432('0x9'));var client=jayson['client'][_0x6432('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x305ed0,_0x31f314,_0x46be72){return new BPromise(function(_0x5065fd,_0x33fce4){return client[_0x6432('0xb')](_0x305ed0,_0x46be72)['then'](function(_0x2ff633){logger[_0x6432('0xc')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x31f314,_0x6432('0xd'));logger[_0x6432('0xe')](_0x6432('0xf'),_0x31f314,_0x6432('0xd'),JSON[_0x6432('0x10')](_0x2ff633));if(_0x2ff633['error']){if(_0x2ff633['error'][_0x6432('0x11')]===0x1f4){logger[_0x6432('0x12')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x31f314,_0x2ff633[_0x6432('0x12')]['message']);return _0x33fce4(_0x2ff633['error'][_0x6432('0x13')]);}logger[_0x6432('0x12')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x31f314,_0x2ff633[_0x6432('0x12')]['message']);return _0x5065fd(_0x2ff633[_0x6432('0x12')][_0x6432('0x13')]);}else{logger[_0x6432('0xc')](_0x6432('0x14'),_0x31f314,_0x6432('0xd'));_0x5065fd(_0x2ff633[_0x6432('0x15')][_0x6432('0x13')]);}})[_0x6432('0x16')](function(_0x1438f6){logger[_0x6432('0x12')](_0x6432('0x14'),_0x31f314,_0x1438f6);_0x33fce4(_0x1438f6);});});}
\ No newline at end of file
+var _0x03d3=['../../config/utils','rpc','../../config/environment','client','http','request','info','FreshsalesConfiguration,\x20%s,\x20%s','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','code','error','message','request\x20sent','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x33e7a6,_0x61b668){var _0x267a33=function(_0x21718f){while(--_0x21718f){_0x33e7a6['push'](_0x33e7a6['shift']());}};_0x267a33(++_0x61b668);}(_0x03d3,0x14a));var _0x303d=function(_0x3904de,_0x2f6c7d){_0x3904de=_0x3904de-0x0;var _0x169a57=_0x03d3[_0x3904de];return _0x169a57;};'use strict';var _=require(_0x303d('0x0'));var util=require('util');var moment=require(_0x303d('0x1'));var BPromise=require(_0x303d('0x2'));var rs=require(_0x303d('0x3'));var fs=require('fs');var Redis=require(_0x303d('0x4'));var db=require(_0x303d('0x5'))['db'];var utils=require(_0x303d('0x6'));var logger=require('../../config/logger')(_0x303d('0x7'));var config=require(_0x303d('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x303d('0x9')][_0x303d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x427009,_0x596f7a,_0x2fb3aa){return new BPromise(function(_0x299ee2,_0x506f36){return client[_0x303d('0xb')](_0x427009,_0x2fb3aa)['then'](function(_0x9c5ca3){logger[_0x303d('0xc')](_0x303d('0xd'),_0x596f7a,'request\x20sent');logger['debug'](_0x303d('0xe'),_0x596f7a,'request\x20sent',JSON['stringify'](_0x9c5ca3));if(_0x9c5ca3['error']){if(_0x9c5ca3['error'][_0x303d('0xf')]===0x1f4){logger[_0x303d('0x10')](_0x303d('0xd'),_0x596f7a,_0x9c5ca3['error'][_0x303d('0x11')]);return _0x506f36(_0x9c5ca3[_0x303d('0x10')][_0x303d('0x11')]);}logger['error']('FreshsalesConfiguration,\x20%s,\x20%s',_0x596f7a,_0x9c5ca3[_0x303d('0x10')][_0x303d('0x11')]);return _0x299ee2(_0x9c5ca3['error'][_0x303d('0x11')]);}else{logger['info'](_0x303d('0xd'),_0x596f7a,_0x303d('0x12'));_0x299ee2(_0x9c5ca3[_0x303d('0x13')]['message']);}})[_0x303d('0x14')](function(_0x4d8f94){logger['error']('FreshsalesConfiguration,\x20%s,\x20%s',_0x596f7a,_0x4d8f94);_0x506f36(_0x4d8f94);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7cf=['destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','index','/:id','show','post','put','delete'];(function(_0x37f2b6,_0x4a55e8){var _0x5a9cde=function(_0xb14d09){while(--_0xb14d09){_0x37f2b6['push'](_0x37f2b6['shift']());}};_0x5a9cde(++_0x4a55e8);}(_0xb7cf,0xca));var _0xfb7c=function(_0x135ebc,_0x123430){_0x135ebc=_0x135ebc-0x0;var _0x210162=_0xb7cf[_0x135ebc];return _0x210162;};'use strict';var multer=require(_0xfb7c('0x0'));var util=require(_0xfb7c('0x1'));var path=require(_0xfb7c('0x2'));var timeout=require(_0xfb7c('0x3'));var express=require(_0xfb7c('0x4'));var router=express['Router']();var fs_extra=require(_0xfb7c('0x5'));var auth=require(_0xfb7c('0x6'));var interaction=require(_0xfb7c('0x7'));var config=require(_0xfb7c('0x8'));var controller=require(_0xfb7c('0x9'));router[_0xfb7c('0xa')]('/',auth[_0xfb7c('0xb')](),controller[_0xfb7c('0xc')]);router[_0xfb7c('0xa')](_0xfb7c('0xd'),auth[_0xfb7c('0xb')](),controller[_0xfb7c('0xe')]);router[_0xfb7c('0xf')]('/',auth[_0xfb7c('0xb')](),controller['create']);router[_0xfb7c('0x10')](_0xfb7c('0xd'),auth[_0xfb7c('0xb')](),controller['update']);router[_0xfb7c('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xfb7c('0x12')]);module[_0xfb7c('0x13')]=router;
\ No newline at end of file
+var _0xf109=['index','/:id','post','create','put','update','delete','exports','multer','util','path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated'];(function(_0x42ffeb,_0x5595ab){var _0x3fd983=function(_0x3cba5c){while(--_0x3cba5c){_0x42ffeb['push'](_0x42ffeb['shift']());}};_0x3fd983(++_0x5595ab);}(_0xf109,0xce));var _0x9f10=function(_0x4c445a,_0x4ee80f){_0x4c445a=_0x4c445a-0x0;var _0x2f611c=_0xf109[_0x4c445a];return _0x2f611c;};'use strict';var multer=require(_0x9f10('0x0'));var util=require(_0x9f10('0x1'));var path=require(_0x9f10('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x9f10('0x3'));var auth=require(_0x9f10('0x4'));var interaction=require(_0x9f10('0x5'));var config=require(_0x9f10('0x6'));var controller=require(_0x9f10('0x7'));router[_0x9f10('0x8')]('/',auth[_0x9f10('0x9')](),controller[_0x9f10('0xa')]);router[_0x9f10('0x8')](_0x9f10('0xb'),auth[_0x9f10('0x9')](),controller['show']);router[_0x9f10('0xc')]('/',auth[_0x9f10('0x9')](),controller[_0x9f10('0xd')]);router[_0x9f10('0xe')](_0x9f10('0xb'),auth['isAuthenticated'](),controller[_0x9f10('0xf')]);router[_0x9f10('0x10')](_0x9f10('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0x9f10('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcddb=['string','variable','customVariable','ENUM','STRING','sequelize','exports'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xcddb,0x163));var _0xbcdd=function(_0x8b6a49,_0x39f608){_0x8b6a49=_0x8b6a49-0x0;var _0x1f4abf=_0xcddb[_0x8b6a49];return _0x1f4abf;};'use strict';var Sequelize=require(_0xbcdd('0x0'));module[_0xbcdd('0x1')]={'type':{'type':Sequelize['ENUM'](_0xbcdd('0x2'),_0xbcdd('0x3'),_0xbcdd('0x4'),'keyValue','picklist'),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xbcdd('0x5')](_0xbcdd('0x2'),_0xbcdd('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0xbcdd('0x6')]},'idField':{'type':Sequelize[_0xbcdd('0x6')]},'nameField':{'type':Sequelize[_0xbcdd('0x6')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xbcdd('0x6')]}};
\ No newline at end of file
+var _0xdcef=['variable','customVariable','keyValue','picklist','STRING','BOOLEAN','sequelize','exports','ENUM','string'];(function(_0x16f81e,_0x40c335){var _0x27f1c4=function(_0x5367cf){while(--_0x5367cf){_0x16f81e['push'](_0x16f81e['shift']());}};_0x27f1c4(++_0x40c335);}(_0xdcef,0x16e));var _0xfdce=function(_0x2dac64,_0x482934){_0x2dac64=_0x2dac64-0x0;var _0x5392e3=_0xdcef[_0x2dac64];return _0x5392e3;};'use strict';var Sequelize=require(_0xfdce('0x0'));module[_0xfdce('0x1')]={'type':{'type':Sequelize[_0xfdce('0x2')](_0xfdce('0x3'),_0xfdce('0x4'),_0xfdce('0x5'),_0xfdce('0x6'),_0xfdce('0x7')),'defaultValue':_0xfdce('0x3')},'content':{'type':Sequelize[_0xfdce('0x8')]},'key':{'type':Sequelize[_0xfdce('0x8')]},'keyType':{'type':Sequelize['ENUM']('string',_0xfdce('0x4'),'customVariable')},'keyContent':{'type':Sequelize[_0xfdce('0x8')]},'idField':{'type':Sequelize[_0xfdce('0x8')]},'nameField':{'type':Sequelize[_0xfdce('0x8')]},'customField':{'type':Sequelize[_0xfdce('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xfdce('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb54f=['include','findAll','rows','show','merge','find','catch','create','body','params','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','offset','undefined','limit','Content-Range','json','apply','reject','save','update','then','end','error','stack','name','index','map','FreshsalesField','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','options','count','includeAll'];(function(_0x1d7037,_0x57dd95){var _0x4d6568=function(_0x5c64c5){while(--_0x5c64c5){_0x1d7037['push'](_0x1d7037['shift']());}};_0x4d6568(++_0x57dd95);}(_0xb54f,0x1d8));var _0xfb54=function(_0x108def,_0x20e7ce){_0x108def=_0x108def-0x0;var _0x570832=_0xb54f[_0x108def];return _0x570832;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfb54('0x0'));var zipdir=require(_0xfb54('0x1'));var jsonpatch=require(_0xfb54('0x2'));var rp=require(_0xfb54('0x3'));var moment=require(_0xfb54('0x4'));var BPromise=require(_0xfb54('0x5'));var Mustache=require(_0xfb54('0x6'));var util=require('util');var path=require('path');var sox=require(_0xfb54('0x7'));var csv=require(_0xfb54('0x8'));var ejs=require(_0xfb54('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfb54('0xa'));var squel=require(_0xfb54('0xb'));var crypto=require(_0xfb54('0xc'));var jsforce=require(_0xfb54('0xd'));var deskjs=require(_0xfb54('0xe'));var toCsv=require('to-csv');var querystring=require(_0xfb54('0xf'));var Papa=require(_0xfb54('0x10'));var Redis=require(_0xfb54('0x11'));var authService=require(_0xfb54('0x12'));var qs=require(_0xfb54('0x13'));var as=require(_0xfb54('0x14'));var hardwareService=require(_0xfb54('0x15'));var logger=require(_0xfb54('0x16'))('api');var utils=require(_0xfb54('0x17'));var config=require(_0xfb54('0x18'));var licenseUtil=require(_0xfb54('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb18ed4,_0x144ff2){_0x144ff2=_0x144ff2||0xcc;return function(_0x406ada){if(_0x406ada){return _0xb18ed4[_0xfb54('0x1a')](_0x144ff2);}return _0xb18ed4['status'](_0x144ff2)['end']();};}function respondWithResult(_0x39387e,_0xc350c4){_0xc350c4=_0xc350c4||0xc8;return function(_0x4733c7){if(_0x4733c7){return _0x39387e[_0xfb54('0x1b')](_0xc350c4)['json'](_0x4733c7);}};}function respondWithFilteredResult(_0x17fd4a,_0xd50fac){return function(_0x5d49fe){if(_0x5d49fe){var _0x3a74fb=typeof _0xd50fac[_0xfb54('0x1c')]===_0xfb54('0x1d')&&typeof _0xd50fac['limit']==='undefined';var _0x11a026=_0x5d49fe['count'];var _0x29b83d=_0x3a74fb?0x0:_0xd50fac[_0xfb54('0x1c')];var _0x23a0ce=_0x3a74fb?_0x5d49fe['count']:_0xd50fac[_0xfb54('0x1c')]+_0xd50fac[_0xfb54('0x1e')];var _0x44101c;if(_0x23a0ce>=_0x11a026){_0x23a0ce=_0x11a026;_0x44101c=0xc8;}else{_0x44101c=0xce;}_0x17fd4a[_0xfb54('0x1b')](_0x44101c);return _0x17fd4a['set'](_0xfb54('0x1f'),_0x29b83d+'-'+_0x23a0ce+'/'+_0x11a026)[_0xfb54('0x20')](_0x5d49fe);}return null;};}function patchUpdates(_0x1370f2){return function(_0x151635){try{jsonpatch[_0xfb54('0x21')](_0x151635,_0x1370f2,!![]);}catch(_0x5a394a){return BPromise[_0xfb54('0x22')](_0x5a394a);}return _0x151635[_0xfb54('0x23')]();};}function saveUpdates(_0x2428d6,_0xcfab2f){return function(_0x42de1b){if(_0x42de1b){return _0x42de1b[_0xfb54('0x24')](_0x2428d6)[_0xfb54('0x25')](function(_0x49d306){return _0x49d306;});}return null;};}function removeEntity(_0x587a51,_0xb7f7fe){return function(_0x2e975f){if(_0x2e975f){return _0x2e975f['destroy']()[_0xfb54('0x25')](function(){_0x587a51['status'](0xcc)[_0xfb54('0x26')]();});}};}function handleEntityNotFound(_0x25f7be,_0x532ce9){return function(_0x43e6f5){if(!_0x43e6f5){_0x25f7be[_0xfb54('0x1a')](0x194);}return _0x43e6f5;};}function handleError(_0x40396b,_0x307965){_0x307965=_0x307965||0x1f4;return function(_0x49840a){logger[_0xfb54('0x27')](_0x49840a[_0xfb54('0x28')]);if(_0x49840a['name']){delete _0x49840a[_0xfb54('0x29')];}_0x40396b[_0xfb54('0x1b')](_0x307965)['send'](_0x49840a);};}exports[_0xfb54('0x2a')]=function(_0x4fd70a,_0x22fcad){var _0x5bc3ea={},_0x164834={},_0x1332d2={'count':0x0,'rows':[]};var _0x241ff3=_[_0xfb54('0x2b')](db[_0xfb54('0x2c')][_0xfb54('0x2d')],function(_0x1db98c){return{'name':_0x1db98c[_0xfb54('0x2e')],'type':_0x1db98c[_0xfb54('0x2f')][_0xfb54('0x30')]};});_0x164834[_0xfb54('0x31')]=_[_0xfb54('0x2b')](_0x241ff3,_0xfb54('0x29'));_0x164834[_0xfb54('0x32')]=_[_0xfb54('0x33')](_0x4fd70a[_0xfb54('0x32')]);_0x164834[_0xfb54('0x34')]=_[_0xfb54('0x35')](_0x164834['model'],_0x164834[_0xfb54('0x32')]);_0x5bc3ea[_0xfb54('0x36')]=_[_0xfb54('0x35')](_0x164834['model'],qs[_0xfb54('0x37')](_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x37')]));_0x5bc3ea['attributes']=_0x5bc3ea[_0xfb54('0x36')][_0xfb54('0x38')]?_0x5bc3ea[_0xfb54('0x36')]:_0x164834[_0xfb54('0x31')];if(!_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x39')](_0xfb54('0x3a'))){_0x5bc3ea['limit']=qs[_0xfb54('0x1e')](_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x1e')]);_0x5bc3ea[_0xfb54('0x1c')]=qs[_0xfb54('0x1c')](_0x4fd70a[_0xfb54('0x32')]['offset']);}_0x5bc3ea[_0xfb54('0x3b')]=qs[_0xfb54('0x3c')](_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x3c')]);_0x5bc3ea[_0xfb54('0x3d')]=qs[_0xfb54('0x34')](_['pick'](_0x4fd70a[_0xfb54('0x32')],_0x164834[_0xfb54('0x34')]),_0x241ff3);if(_0x4fd70a[_0xfb54('0x32')]['filter']){_0x5bc3ea[_0xfb54('0x3d')]=_['merge'](_0x5bc3ea[_0xfb54('0x3d')],{'$or':_[_0xfb54('0x2b')](_0x241ff3,function(_0x2fbacc){if(_0x2fbacc['type']!==_0xfb54('0x3e')){var _0x2e3e1b={};_0x2e3e1b[_0x2fbacc[_0xfb54('0x29')]]={'$like':'%'+_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x3f')]+'%'};return _0x2e3e1b;}})});}_0x5bc3ea=_['merge']({},_0x5bc3ea,_0x4fd70a[_0xfb54('0x40')]);var _0x140fdc={'where':_0x5bc3ea[_0xfb54('0x3d')]};return db[_0xfb54('0x2c')][_0xfb54('0x41')](_0x140fdc)['then'](function(_0xbd8c65){_0x1332d2['count']=_0xbd8c65;if(_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x42')]){_0x5bc3ea[_0xfb54('0x43')]=[{'all':!![]}];}return db['FreshsalesField'][_0xfb54('0x44')](_0x5bc3ea);})[_0xfb54('0x25')](function(_0x299cc7){_0x1332d2[_0xfb54('0x45')]=_0x299cc7;return _0x1332d2;})[_0xfb54('0x25')](respondWithFilteredResult(_0x22fcad,_0x5bc3ea))['catch'](handleError(_0x22fcad,null));};exports[_0xfb54('0x46')]=function(_0x22c842,_0x356fe2){var _0x59f3dc={'raw':!![],'where':{'id':_0x22c842['params']['id']}},_0x42ac00={};_0x42ac00['model']=_[_0xfb54('0x33')](db['FreshsalesField']['rawAttributes']);_0x42ac00[_0xfb54('0x32')]=_[_0xfb54('0x33')](_0x22c842[_0xfb54('0x32')]);_0x42ac00[_0xfb54('0x34')]=_['intersection'](_0x42ac00[_0xfb54('0x31')],_0x42ac00[_0xfb54('0x32')]);_0x59f3dc[_0xfb54('0x36')]=_[_0xfb54('0x35')](_0x42ac00[_0xfb54('0x31')],qs['fields'](_0x22c842[_0xfb54('0x32')][_0xfb54('0x37')]));_0x59f3dc[_0xfb54('0x36')]=_0x59f3dc['attributes'][_0xfb54('0x38')]?_0x59f3dc[_0xfb54('0x36')]:_0x42ac00[_0xfb54('0x31')];if(_0x22c842['query']['includeAll']){_0x59f3dc[_0xfb54('0x43')]=[{'all':!![]}];}_0x59f3dc=_[_0xfb54('0x47')]({},_0x59f3dc,_0x22c842[_0xfb54('0x40')]);return db['FreshsalesField'][_0xfb54('0x48')](_0x59f3dc)['then'](handleEntityNotFound(_0x356fe2,null))[_0xfb54('0x25')](respondWithResult(_0x356fe2,null))[_0xfb54('0x49')](handleError(_0x356fe2,null));};exports[_0xfb54('0x4a')]=function(_0x4a54b2,_0x3adc36){return db[_0xfb54('0x2c')][_0xfb54('0x4a')](_0x4a54b2[_0xfb54('0x4b')],{})[_0xfb54('0x25')](respondWithResult(_0x3adc36,0xc9))[_0xfb54('0x49')](handleError(_0x3adc36,null));};exports[_0xfb54('0x24')]=function(_0x1d2bc0,_0x4850ba){if(_0x1d2bc0['body']['id']){delete _0x1d2bc0['body']['id'];}return db[_0xfb54('0x2c')][_0xfb54('0x48')]({'where':{'id':_0x1d2bc0[_0xfb54('0x4c')]['id']}})[_0xfb54('0x25')](handleEntityNotFound(_0x4850ba,null))[_0xfb54('0x25')](saveUpdates(_0x1d2bc0['body'],null))['then'](respondWithResult(_0x4850ba,null))[_0xfb54('0x49')](handleError(_0x4850ba,null));};exports['destroy']=function(_0x903ad5,_0x36d11c){return db[_0xfb54('0x2c')][_0xfb54('0x48')]({'where':{'id':_0x903ad5[_0xfb54('0x4c')]['id']}})['then'](handleEntityNotFound(_0x36d11c,null))[_0xfb54('0x25')](removeEntity(_0x36d11c,null))[_0xfb54('0x49')](handleError(_0x36d11c,null));};
\ No newline at end of file
+var _0x6b24=['merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','save','update','then','destroy','error','stack','name','send','FreshsalesField','rawAttributes','type','model','map','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','filters','pick','filter','where'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x6b24,0x1ab));var _0x46b2=function(_0x5c4a87,_0x35cd28){_0x5c4a87=_0x5c4a87-0x0;var _0x1a8c55=_0x6b24[_0x5c4a87];return _0x1a8c55;};'use strict';var emlformat=require(_0x46b2('0x0'));var rimraf=require(_0x46b2('0x1'));var zipdir=require(_0x46b2('0x2'));var jsonpatch=require(_0x46b2('0x3'));var rp=require(_0x46b2('0x4'));var moment=require(_0x46b2('0x5'));var BPromise=require(_0x46b2('0x6'));var Mustache=require(_0x46b2('0x7'));var util=require(_0x46b2('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x46b2('0x9'));var ejs=require(_0x46b2('0xa'));var fs=require('fs');var fs_extra=require(_0x46b2('0xb'));var _=require('lodash');var squel=require(_0x46b2('0xc'));var crypto=require(_0x46b2('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x46b2('0x9'));var querystring=require('querystring');var Papa=require(_0x46b2('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x46b2('0xf'));var as=require(_0x46b2('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x46b2('0x11'))('api');var utils=require(_0x46b2('0x12'));var config=require(_0x46b2('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x46b2('0x14'))['db'];function respondWithStatusCode(_0x5d8e30,_0x57a261){_0x57a261=_0x57a261||0xcc;return function(_0x4c7a35){if(_0x4c7a35){return _0x5d8e30[_0x46b2('0x15')](_0x57a261);}return _0x5d8e30[_0x46b2('0x16')](_0x57a261)[_0x46b2('0x17')]();};}function respondWithResult(_0x134471,_0x5a74c8){_0x5a74c8=_0x5a74c8||0xc8;return function(_0x3aa957){if(_0x3aa957){return _0x134471['status'](_0x5a74c8)[_0x46b2('0x18')](_0x3aa957);}};}function respondWithFilteredResult(_0x3d503b,_0x30525a){return function(_0x28a87c){if(_0x28a87c){var _0x265ebe=typeof _0x30525a[_0x46b2('0x19')]===_0x46b2('0x1a')&&typeof _0x30525a[_0x46b2('0x1b')]===_0x46b2('0x1a');var _0x46ea93=_0x28a87c[_0x46b2('0x1c')];var _0x5b5812=_0x265ebe?0x0:_0x30525a[_0x46b2('0x19')];var _0x4d5fbe=_0x265ebe?_0x28a87c[_0x46b2('0x1c')]:_0x30525a['offset']+_0x30525a[_0x46b2('0x1b')];var _0x27ecb7;if(_0x4d5fbe>=_0x46ea93){_0x4d5fbe=_0x46ea93;_0x27ecb7=0xc8;}else{_0x27ecb7=0xce;}_0x3d503b[_0x46b2('0x16')](_0x27ecb7);return _0x3d503b['set'](_0x46b2('0x1d'),_0x5b5812+'-'+_0x4d5fbe+'/'+_0x46ea93)[_0x46b2('0x18')](_0x28a87c);}return null;};}function patchUpdates(_0x50beee){return function(_0x4db33d){try{jsonpatch['apply'](_0x4db33d,_0x50beee,!![]);}catch(_0x475a3b){return BPromise['reject'](_0x475a3b);}return _0x4db33d[_0x46b2('0x1e')]();};}function saveUpdates(_0x5be615,_0x2e14d0){return function(_0x3ad2b0){if(_0x3ad2b0){return _0x3ad2b0[_0x46b2('0x1f')](_0x5be615)[_0x46b2('0x20')](function(_0xf1ae92){return _0xf1ae92;});}return null;};}function removeEntity(_0x12e683,_0x269038){return function(_0x33a39f){if(_0x33a39f){return _0x33a39f[_0x46b2('0x21')]()[_0x46b2('0x20')](function(){_0x12e683[_0x46b2('0x16')](0xcc)[_0x46b2('0x17')]();});}};}function handleEntityNotFound(_0x40bc7b,_0x262dd7){return function(_0x55ba53){if(!_0x55ba53){_0x40bc7b[_0x46b2('0x15')](0x194);}return _0x55ba53;};}function handleError(_0x45b335,_0x265f2d){_0x265f2d=_0x265f2d||0x1f4;return function(_0x1cf816){logger[_0x46b2('0x22')](_0x1cf816[_0x46b2('0x23')]);if(_0x1cf816[_0x46b2('0x24')]){delete _0x1cf816['name'];}_0x45b335[_0x46b2('0x16')](_0x265f2d)[_0x46b2('0x25')](_0x1cf816);};}exports['index']=function(_0x46da4a,_0x2f51db){var _0x2b0d02={},_0x39c392={},_0x2e34d4={'count':0x0,'rows':[]};var _0x412ed2=_['map'](db[_0x46b2('0x26')][_0x46b2('0x27')],function(_0x4fc4a0){return{'name':_0x4fc4a0['fieldName'],'type':_0x4fc4a0[_0x46b2('0x28')]['key']};});_0x39c392[_0x46b2('0x29')]=_[_0x46b2('0x2a')](_0x412ed2,_0x46b2('0x24'));_0x39c392[_0x46b2('0x2b')]=_[_0x46b2('0x2c')](_0x46da4a[_0x46b2('0x2b')]);_0x39c392['filters']=_['intersection'](_0x39c392[_0x46b2('0x29')],_0x39c392[_0x46b2('0x2b')]);_0x2b0d02[_0x46b2('0x2d')]=_[_0x46b2('0x2e')](_0x39c392[_0x46b2('0x29')],qs[_0x46b2('0x2f')](_0x46da4a['query'][_0x46b2('0x2f')]));_0x2b0d02[_0x46b2('0x2d')]=_0x2b0d02[_0x46b2('0x2d')][_0x46b2('0x30')]?_0x2b0d02[_0x46b2('0x2d')]:_0x39c392[_0x46b2('0x29')];if(!_0x46da4a[_0x46b2('0x2b')][_0x46b2('0x31')](_0x46b2('0x32'))){_0x2b0d02['limit']=qs['limit'](_0x46da4a[_0x46b2('0x2b')][_0x46b2('0x1b')]);_0x2b0d02[_0x46b2('0x19')]=qs['offset'](_0x46da4a[_0x46b2('0x2b')][_0x46b2('0x19')]);}_0x2b0d02['order']=qs[_0x46b2('0x33')](_0x46da4a[_0x46b2('0x2b')][_0x46b2('0x33')]);_0x2b0d02['where']=qs[_0x46b2('0x34')](_[_0x46b2('0x35')](_0x46da4a[_0x46b2('0x2b')],_0x39c392[_0x46b2('0x34')]),_0x412ed2);if(_0x46da4a[_0x46b2('0x2b')][_0x46b2('0x36')]){_0x2b0d02[_0x46b2('0x37')]=_[_0x46b2('0x38')](_0x2b0d02[_0x46b2('0x37')],{'$or':_[_0x46b2('0x2a')](_0x412ed2,function(_0x52c3e1){if(_0x52c3e1[_0x46b2('0x28')]!==_0x46b2('0x39')){var _0xb7095d={};_0xb7095d[_0x52c3e1[_0x46b2('0x24')]]={'$like':'%'+_0x46da4a[_0x46b2('0x2b')][_0x46b2('0x36')]+'%'};return _0xb7095d;}})});}_0x2b0d02=_[_0x46b2('0x38')]({},_0x2b0d02,_0x46da4a[_0x46b2('0x3a')]);var _0x4f4dae={'where':_0x2b0d02[_0x46b2('0x37')]};return db[_0x46b2('0x26')][_0x46b2('0x1c')](_0x4f4dae)[_0x46b2('0x20')](function(_0x268cf7){_0x2e34d4[_0x46b2('0x1c')]=_0x268cf7;if(_0x46da4a['query'][_0x46b2('0x3b')]){_0x2b0d02[_0x46b2('0x3c')]=[{'all':!![]}];}return db[_0x46b2('0x26')][_0x46b2('0x3d')](_0x2b0d02);})['then'](function(_0x172200){_0x2e34d4[_0x46b2('0x3e')]=_0x172200;return _0x2e34d4;})[_0x46b2('0x20')](respondWithFilteredResult(_0x2f51db,_0x2b0d02))['catch'](handleError(_0x2f51db,null));};exports[_0x46b2('0x3f')]=function(_0x1c7639,_0xc8c3f1){var _0x13f6b1={'raw':!![],'where':{'id':_0x1c7639[_0x46b2('0x40')]['id']}},_0x20ca3f={};_0x20ca3f[_0x46b2('0x29')]=_[_0x46b2('0x2c')](db[_0x46b2('0x26')][_0x46b2('0x27')]);_0x20ca3f[_0x46b2('0x2b')]=_['keys'](_0x1c7639[_0x46b2('0x2b')]);_0x20ca3f['filters']=_[_0x46b2('0x2e')](_0x20ca3f[_0x46b2('0x29')],_0x20ca3f[_0x46b2('0x2b')]);_0x13f6b1[_0x46b2('0x2d')]=_['intersection'](_0x20ca3f[_0x46b2('0x29')],qs[_0x46b2('0x2f')](_0x1c7639['query'][_0x46b2('0x2f')]));_0x13f6b1[_0x46b2('0x2d')]=_0x13f6b1[_0x46b2('0x2d')][_0x46b2('0x30')]?_0x13f6b1['attributes']:_0x20ca3f[_0x46b2('0x29')];if(_0x1c7639[_0x46b2('0x2b')]['includeAll']){_0x13f6b1[_0x46b2('0x3c')]=[{'all':!![]}];}_0x13f6b1=_[_0x46b2('0x38')]({},_0x13f6b1,_0x1c7639[_0x46b2('0x3a')]);return db[_0x46b2('0x26')][_0x46b2('0x41')](_0x13f6b1)[_0x46b2('0x20')](handleEntityNotFound(_0xc8c3f1,null))[_0x46b2('0x20')](respondWithResult(_0xc8c3f1,null))[_0x46b2('0x42')](handleError(_0xc8c3f1,null));};exports[_0x46b2('0x43')]=function(_0x298a7d,_0xfc1f94){return db[_0x46b2('0x26')]['create'](_0x298a7d[_0x46b2('0x44')],{})['then'](respondWithResult(_0xfc1f94,0xc9))['catch'](handleError(_0xfc1f94,null));};exports['update']=function(_0x44d74f,_0x1797ff){if(_0x44d74f[_0x46b2('0x44')]['id']){delete _0x44d74f[_0x46b2('0x44')]['id'];}return db[_0x46b2('0x26')][_0x46b2('0x41')]({'where':{'id':_0x44d74f[_0x46b2('0x40')]['id']}})[_0x46b2('0x20')](handleEntityNotFound(_0x1797ff,null))[_0x46b2('0x20')](saveUpdates(_0x44d74f['body'],null))[_0x46b2('0x20')](respondWithResult(_0x1797ff,null))[_0x46b2('0x42')](handleError(_0x1797ff,null));};exports['destroy']=function(_0x3e4ffd,_0x1d8a69){return db[_0x46b2('0x26')][_0x46b2('0x41')]({'where':{'id':_0x3e4ffd['params']['id']}})[_0x46b2('0x20')](handleEntityNotFound(_0x1d8a69,null))[_0x46b2('0x20')](removeEntity(_0x1d8a69,null))[_0x46b2('0x42')](handleError(_0x1d8a69,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6582=['FreshsalesField','int_freshsales_fields','freshsales_unique_index','FieldId','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','define'];(function(_0x39a07f,_0x5a5988){var _0x231c9e=function(_0x2cbeea){while(--_0x2cbeea){_0x39a07f['push'](_0x39a07f['shift']());}};_0x231c9e(++_0x5a5988);}(_0x6582,0x108));var _0x2658=function(_0xc889e1,_0x438415){_0xc889e1=_0xc889e1-0x0;var _0x17ab9e=_0x6582[_0xc889e1];return _0x17ab9e;};'use strict';var _=require(_0x2658('0x0'));var util=require(_0x2658('0x1'));var logger=require(_0x2658('0x2'))(_0x2658('0x3'));var moment=require(_0x2658('0x4'));var BPromise=require('bluebird');var rp=require(_0x2658('0x5'));var fs=require('fs');var path=require(_0x2658('0x6'));var rimraf=require(_0x2658('0x7'));var config=require('../../config/environment');var attributes=require('./intFreshsalesField.attributes');module['exports']=function(_0x2ef520,_0x1702bd){return _0x2ef520[_0x2658('0x8')](_0x2658('0x9'),attributes,{'tableName':_0x2658('0xa'),'paranoid':![],'indexes':[{'name':_0x2658('0xb'),'fields':['idField',_0x2658('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xdeb3=['FieldId','util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./intFreshsalesField.attributes','define','int_freshsales_fields','freshsales_unique_index','idField'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xdeb3,0xb7));var _0x3deb=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xdeb3[_0x3ab51d];return _0x29a04e;};'use strict';var _=require('lodash');var util=require(_0x3deb('0x0'));var logger=require(_0x3deb('0x1'))(_0x3deb('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x3deb('0x3'));var fs=require('fs');var path=require(_0x3deb('0x4'));var rimraf=require(_0x3deb('0x5'));var config=require(_0x3deb('0x6'));var attributes=require(_0x3deb('0x7'));module['exports']=function(_0x193700,_0x47d2d4){return _0x193700[_0x3deb('0x8')]('FreshsalesField',attributes,{'tableName':_0x3deb('0x9'),'paranoid':![],'indexes':[{'name':_0x3deb('0xa'),'fields':[_0x3deb('0xb'),_0x3deb('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46ed=['FreshsalesField,\x20%s,\x20%s','debug','FreshsalesField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x4e9628,_0x250573){var _0x27bc8c=function(_0xb3b7ae){while(--_0xb3b7ae){_0x4e9628['push'](_0x4e9628['shift']());}};_0x27bc8c(++_0x250573);}(_0x46ed,0x168));var _0xd46e=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0x46ed[_0x46e363];return _0x3fb059;};'use strict';var _=require(_0xd46e('0x0'));var util=require(_0xd46e('0x1'));var moment=require('moment');var BPromise=require(_0xd46e('0x2'));var rs=require(_0xd46e('0x3'));var fs=require('fs');var Redis=require(_0xd46e('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd46e('0x5'));var logger=require(_0xd46e('0x6'))('rpc');var config=require(_0xd46e('0x7'));var jayson=require(_0xd46e('0x8'));var client=jayson[_0xd46e('0x9')][_0xd46e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x45e680,_0x855f24,_0x437ea0){return new BPromise(function(_0x144687,_0x31259b){return client[_0xd46e('0xb')](_0x45e680,_0x437ea0)[_0xd46e('0xc')](function(_0x59c88d){logger[_0xd46e('0xd')](_0xd46e('0xe'),_0x855f24,'request\x20sent');logger[_0xd46e('0xf')](_0xd46e('0x10'),_0x855f24,_0xd46e('0x11'),JSON[_0xd46e('0x12')](_0x59c88d));if(_0x59c88d[_0xd46e('0x13')]){if(_0x59c88d[_0xd46e('0x13')]['code']===0x1f4){logger[_0xd46e('0x13')]('FreshsalesField,\x20%s,\x20%s',_0x855f24,_0x59c88d['error'][_0xd46e('0x14')]);return _0x31259b(_0x59c88d[_0xd46e('0x13')]['message']);}logger['error'](_0xd46e('0xe'),_0x855f24,_0x59c88d[_0xd46e('0x13')][_0xd46e('0x14')]);return _0x144687(_0x59c88d[_0xd46e('0x13')]['message']);}else{logger[_0xd46e('0xd')](_0xd46e('0xe'),_0x855f24,_0xd46e('0x11'));_0x144687(_0x59c88d[_0xd46e('0x15')][_0xd46e('0x14')]);}})['catch'](function(_0x1d50a5){logger[_0xd46e('0x13')](_0xd46e('0xe'),_0x855f24,_0x1d50a5);_0x31259b(_0x1d50a5);});});}
\ No newline at end of file
+var _0xba34=['../../config/environment','jayson/promise','client','http','request','then','info','FreshsalesField,\x20%s,\x20%s','request\x20sent','debug','FreshsalesField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc'];(function(_0x26cae5,_0x1dce79){var _0x294db7=function(_0x4c7d0b){while(--_0x4c7d0b){_0x26cae5['push'](_0x26cae5['shift']());}};_0x294db7(++_0x1dce79);}(_0xba34,0x119));var _0x4ba3=function(_0x1cc1de,_0x956593){_0x1cc1de=_0x1cc1de-0x0;var _0x3ca7fe=_0xba34[_0x1cc1de];return _0x3ca7fe;};'use strict';var _=require(_0x4ba3('0x0'));var util=require(_0x4ba3('0x1'));var moment=require(_0x4ba3('0x2'));var BPromise=require(_0x4ba3('0x3'));var rs=require(_0x4ba3('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x4ba3('0x5'))(_0x4ba3('0x6'));var config=require(_0x4ba3('0x7'));var jayson=require(_0x4ba3('0x8'));var client=jayson[_0x4ba3('0x9')][_0x4ba3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe5f99a,_0x585f2d,_0x6254fb){return new BPromise(function(_0x368eee,_0x2df7f3){return client[_0x4ba3('0xb')](_0xe5f99a,_0x6254fb)[_0x4ba3('0xc')](function(_0xcf1ec3){logger[_0x4ba3('0xd')](_0x4ba3('0xe'),_0x585f2d,_0x4ba3('0xf'));logger[_0x4ba3('0x10')](_0x4ba3('0x11'),_0x585f2d,'request\x20sent',JSON[_0x4ba3('0x12')](_0xcf1ec3));if(_0xcf1ec3[_0x4ba3('0x13')]){if(_0xcf1ec3['error'][_0x4ba3('0x14')]===0x1f4){logger['error'](_0x4ba3('0xe'),_0x585f2d,_0xcf1ec3['error'][_0x4ba3('0x15')]);return _0x2df7f3(_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);}logger[_0x4ba3('0x13')](_0x4ba3('0xe'),_0x585f2d,_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);return _0x368eee(_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);}else{logger[_0x4ba3('0xd')](_0x4ba3('0xe'),_0x585f2d,_0x4ba3('0xf'));_0x368eee(_0xcf1ec3[_0x4ba3('0x16')][_0x4ba3('0x15')]);}})[_0x4ba3('0x17')](function(_0x1b7776){logger['error'](_0x4ba3('0xe'),_0x585f2d,_0x1b7776);_0x2df7f3(_0x1b7776);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSalesforceAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0xe153cb,_0x465fe4){var _0xcab4a5=function(_0x5741d2){while(--_0x5741d2){_0xe153cb['push'](_0xe153cb['shift']());}};_0xcab4a5(++_0x465fe4);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
+var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSalesforceAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x5a1a69,_0xa479b5){var _0x404ea1=function(_0x5bd8a0){while(--_0x5bd8a0){_0x5a1a69['push'](_0x5a1a69['shift']());}};_0x404ea1(++_0xa479b5);}(_0x9957,0x93));var _0x7995=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x9957[_0x1ac595];return _0x455fff;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67b1=['ENUM','integrationTab','newTab','exports','STRING'];(function(_0x4b1c10,_0xadb4b4){var _0x166069=function(_0x536c7c){while(--_0x536c7c){_0x4b1c10['push'](_0x4b1c10['shift']());}};_0x166069(++_0xadb4b4);}(_0x67b1,0xfd));var _0x167b=function(_0x480bc8,_0x1fac40){_0x480bc8=_0x480bc8-0x0;var _0x28c245=_0x67b1[_0x480bc8];return _0x28c245;};'use strict';var Sequelize=require('sequelize');module[_0x167b('0x0')]={'name':{'type':Sequelize[_0x167b('0x1')]},'description':{'type':Sequelize[_0x167b('0x1')]},'username':{'type':Sequelize[_0x167b('0x1')],'unique':'username'},'remoteUri':{'type':Sequelize[_0x167b('0x1')]},'password':{'type':Sequelize[_0x167b('0x1')]},'clientId':{'type':Sequelize[_0x167b('0x1')]},'clientSecret':{'type':Sequelize[_0x167b('0x1')]},'securityToken':{'type':Sequelize[_0x167b('0x1')]},'serverUrl':{'type':Sequelize[_0x167b('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x167b('0x2')](_0x167b('0x3'),_0x167b('0x4')),'defaultValue':_0x167b('0x3')}};
\ No newline at end of file
+var _0x44c2=['integrationTab','sequelize','exports','STRING','username'];(function(_0x4c7b20,_0x361515){var _0x4872bd=function(_0x358e19){while(--_0x358e19){_0x4c7b20['push'](_0x4c7b20['shift']());}};_0x4872bd(++_0x361515);}(_0x44c2,0x100));var _0x244c=function(_0x5bb4e8,_0x44b756){_0x5bb4e8=_0x5bb4e8-0x0;var _0x2a86f2=_0x44c2[_0x5bb4e8];return _0x2a86f2;};'use strict';var Sequelize=require(_0x244c('0x0'));module[_0x244c('0x1')]={'name':{'type':Sequelize[_0x244c('0x2')]},'description':{'type':Sequelize[_0x244c('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x244c('0x3')},'remoteUri':{'type':Sequelize[_0x244c('0x2')]},'password':{'type':Sequelize[_0x244c('0x2')]},'clientId':{'type':Sequelize[_0x244c('0x2')]},'clientSecret':{'type':Sequelize[_0x244c('0x2')]},'securityToken':{'type':Sequelize[_0x244c('0x2')]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x244c('0x4'),'newTab'),'defaultValue':_0x244c('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc004=['AccountId','Subjects','getSubjects','channel','getDescriptions','SalesforceConfiguration','SalesforceField','getFields','Task','findOne','clientId','clientSecret','password','remoteUri','slice','login','concat','securityToken','ticketType','sobject','describe','OwnerId','ActivityDate','IsRecurrence','Subject','Description','string','int','picklist','textarea','phone','remove','includes','label','custom','picklistValues','True','False','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','SalesforceAccount','includeAll','include','findAll','rows','catch','length','options','find','create','body','params','getConfigurations','hasOwnProperty','addConfiguration'];(function(_0x369151,_0x179f72){var _0x4292d5=function(_0x330422){while(--_0x330422){_0x369151['push'](_0x369151['shift']());}};_0x4292d5(++_0x179f72);}(_0xc004,0x195));var _0x4c00=function(_0x57171b,_0xfe67c6){_0x57171b=_0x57171b-0x0;var _0x33a2c8=_0xc004[_0x57171b];return _0x33a2c8;};'use strict';var emlformat=require(_0x4c00('0x0'));var rimraf=require(_0x4c00('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4c00('0x2'));var rp=require(_0x4c00('0x3'));var moment=require(_0x4c00('0x4'));var BPromise=require(_0x4c00('0x5'));var Mustache=require(_0x4c00('0x6'));var util=require(_0x4c00('0x7'));var path=require(_0x4c00('0x8'));var sox=require(_0x4c00('0x9'));var csv=require(_0x4c00('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4c00('0xb'));var _=require(_0x4c00('0xc'));var squel=require(_0x4c00('0xd'));var crypto=require(_0x4c00('0xe'));var jsforce=require(_0x4c00('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x4c00('0xa'));var querystring=require('querystring');var Papa=require(_0x4c00('0x10'));var Redis=require(_0x4c00('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x4c00('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4c00('0x13'));var logger=require(_0x4c00('0x14'))('api');var utils=require(_0x4c00('0x15'));var config=require(_0x4c00('0x16'));var licenseUtil=require(_0x4c00('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x4c00('0x18'));function respondWithStatusCode(_0x9ebe4e,_0x1f8087){_0x1f8087=_0x1f8087||0xcc;return function(_0x2fbfb4){if(_0x2fbfb4){return _0x9ebe4e[_0x4c00('0x19')](_0x1f8087);}return _0x9ebe4e[_0x4c00('0x1a')](_0x1f8087)[_0x4c00('0x1b')]();};}function respondWithResult(_0x21a32e,_0x452a7c){_0x452a7c=_0x452a7c||0xc8;return function(_0x3acd99){if(_0x3acd99){return _0x21a32e[_0x4c00('0x1a')](_0x452a7c)[_0x4c00('0x1c')](_0x3acd99);}};}function respondWithFilteredResult(_0x4e520d,_0x2d037a){return function(_0x27a2be){if(_0x27a2be){var _0x209461=typeof _0x2d037a[_0x4c00('0x1d')]===_0x4c00('0x1e')&&typeof _0x2d037a[_0x4c00('0x1f')]===_0x4c00('0x1e');var _0x5270b1=_0x27a2be[_0x4c00('0x20')];var _0x3c071f=_0x209461?0x0:_0x2d037a[_0x4c00('0x1d')];var _0x44c3eb=_0x209461?_0x27a2be[_0x4c00('0x20')]:_0x2d037a[_0x4c00('0x1d')]+_0x2d037a[_0x4c00('0x1f')];var _0x429ea2;if(_0x44c3eb>=_0x5270b1){_0x44c3eb=_0x5270b1;_0x429ea2=0xc8;}else{_0x429ea2=0xce;}_0x4e520d[_0x4c00('0x1a')](_0x429ea2);return _0x4e520d[_0x4c00('0x21')](_0x4c00('0x22'),_0x3c071f+'-'+_0x44c3eb+'/'+_0x5270b1)[_0x4c00('0x1c')](_0x27a2be);}return null;};}function patchUpdates(_0x49346b){return function(_0x4e8203){try{jsonpatch[_0x4c00('0x23')](_0x4e8203,_0x49346b,!![]);}catch(_0xbc2409){return BPromise['reject'](_0xbc2409);}return _0x4e8203[_0x4c00('0x24')]();};}function saveUpdates(_0x17cbf7,_0x1926d8){return function(_0x20dc00){if(_0x20dc00){return _0x20dc00[_0x4c00('0x25')](_0x17cbf7)['then'](function(_0x1c3eaf){return _0x1c3eaf;});}return null;};}function removeEntity(_0x7c3005,_0x11884e){return function(_0x5c7482){if(_0x5c7482){return _0x5c7482[_0x4c00('0x26')]()[_0x4c00('0x27')](function(){_0x7c3005[_0x4c00('0x1a')](0xcc)[_0x4c00('0x1b')]();});}};}function handleEntityNotFound(_0x2992d9,_0x26e34c){return function(_0x5ce4b){if(!_0x5ce4b){_0x2992d9['sendStatus'](0x194);}return _0x5ce4b;};}function handleError(_0x44850a,_0x21b4cb){_0x21b4cb=_0x21b4cb||0x1f4;return function(_0x1c3e70){logger[_0x4c00('0x28')](_0x1c3e70[_0x4c00('0x29')]);if(_0x1c3e70[_0x4c00('0x2a')]){delete _0x1c3e70[_0x4c00('0x2a')];}_0x44850a[_0x4c00('0x1a')](_0x21b4cb)[_0x4c00('0x2b')](_0x1c3e70);};}exports[_0x4c00('0x2c')]=function(_0x3f6d5d,_0x13a538){var _0x420539={},_0x531ec4={},_0x5485f0={'count':0x0,'rows':[]};var _0x2b64b1=_[_0x4c00('0x2d')](db['SalesforceAccount'][_0x4c00('0x2e')],function(_0x38d4b0){return{'name':_0x38d4b0[_0x4c00('0x2f')],'type':_0x38d4b0[_0x4c00('0x30')][_0x4c00('0x31')]};});_0x531ec4[_0x4c00('0x32')]=_['map'](_0x2b64b1,_0x4c00('0x2a'));_0x531ec4['query']=_[_0x4c00('0x33')](_0x3f6d5d[_0x4c00('0x34')]);_0x531ec4[_0x4c00('0x35')]=_[_0x4c00('0x36')](_0x531ec4[_0x4c00('0x32')],_0x531ec4[_0x4c00('0x34')]);_0x420539['attributes']=_[_0x4c00('0x36')](_0x531ec4[_0x4c00('0x32')],qs[_0x4c00('0x37')](_0x3f6d5d[_0x4c00('0x34')]['fields']));_0x420539[_0x4c00('0x38')]=_0x420539[_0x4c00('0x38')]['length']?_0x420539[_0x4c00('0x38')]:_0x531ec4[_0x4c00('0x32')];if(!_0x3f6d5d[_0x4c00('0x34')]['hasOwnProperty'](_0x4c00('0x39'))){_0x420539[_0x4c00('0x1f')]=qs['limit'](_0x3f6d5d[_0x4c00('0x34')]['limit']);_0x420539[_0x4c00('0x1d')]=qs[_0x4c00('0x1d')](_0x3f6d5d[_0x4c00('0x34')][_0x4c00('0x1d')]);}_0x420539[_0x4c00('0x3a')]=qs['sort'](_0x3f6d5d[_0x4c00('0x34')][_0x4c00('0x3b')]);_0x420539[_0x4c00('0x3c')]=qs[_0x4c00('0x35')](_[_0x4c00('0x3d')](_0x3f6d5d[_0x4c00('0x34')],_0x531ec4[_0x4c00('0x35')]),_0x2b64b1);if(_0x3f6d5d['query'][_0x4c00('0x3e')]){_0x420539[_0x4c00('0x3c')]=_['merge'](_0x420539[_0x4c00('0x3c')],{'$or':_['map'](_0x2b64b1,function(_0x3ae15d){if(_0x3ae15d[_0x4c00('0x30')]!=='VIRTUAL'){var _0x5574af={};_0x5574af[_0x3ae15d[_0x4c00('0x2a')]]={'$like':'%'+_0x3f6d5d['query']['filter']+'%'};return _0x5574af;}})});}_0x420539=_[_0x4c00('0x3f')]({},_0x420539,_0x3f6d5d['options']);var _0xb9360={'where':_0x420539[_0x4c00('0x3c')]};return db[_0x4c00('0x40')]['count'](_0xb9360)[_0x4c00('0x27')](function(_0x1441e0){_0x5485f0[_0x4c00('0x20')]=_0x1441e0;if(_0x3f6d5d[_0x4c00('0x34')][_0x4c00('0x41')]){_0x420539[_0x4c00('0x42')]=[{'all':!![]}];}return db[_0x4c00('0x40')][_0x4c00('0x43')](_0x420539);})[_0x4c00('0x27')](function(_0xb39ab6){_0x5485f0[_0x4c00('0x44')]=_0xb39ab6;return _0x5485f0;})[_0x4c00('0x27')](respondWithFilteredResult(_0x13a538,_0x420539))[_0x4c00('0x45')](handleError(_0x13a538,null));};exports['show']=function(_0x72b7f8,_0x47e8bc){var _0x399d4a={'raw':![],'where':{'id':_0x72b7f8['params']['id']}},_0x10e739={};_0x10e739[_0x4c00('0x32')]=_[_0x4c00('0x33')](db[_0x4c00('0x40')][_0x4c00('0x2e')]);_0x10e739['query']=_[_0x4c00('0x33')](_0x72b7f8[_0x4c00('0x34')]);_0x10e739[_0x4c00('0x35')]=_[_0x4c00('0x36')](_0x10e739[_0x4c00('0x32')],_0x10e739[_0x4c00('0x34')]);_0x399d4a[_0x4c00('0x38')]=_[_0x4c00('0x36')](_0x10e739['model'],qs[_0x4c00('0x37')](_0x72b7f8['query'][_0x4c00('0x37')]));_0x399d4a[_0x4c00('0x38')]=_0x399d4a[_0x4c00('0x38')][_0x4c00('0x46')]?_0x399d4a[_0x4c00('0x38')]:_0x10e739[_0x4c00('0x32')];if(_0x72b7f8[_0x4c00('0x34')]['includeAll']){_0x399d4a['include']=[{'all':!![]}];}_0x399d4a=_[_0x4c00('0x3f')]({},_0x399d4a,_0x72b7f8[_0x4c00('0x47')]);return db[_0x4c00('0x40')][_0x4c00('0x48')](_0x399d4a)[_0x4c00('0x27')](handleEntityNotFound(_0x47e8bc,null))['then'](respondWithResult(_0x47e8bc,null))['catch'](handleError(_0x47e8bc,null));};exports[_0x4c00('0x49')]=function(_0x126f93,_0x556da2){return db[_0x4c00('0x40')][_0x4c00('0x49')](_0x126f93[_0x4c00('0x4a')],{})[_0x4c00('0x27')](respondWithResult(_0x556da2,0xc9))[_0x4c00('0x45')](handleError(_0x556da2,null));};exports['update']=function(_0x5da889,_0x1677d8){if(_0x5da889[_0x4c00('0x4a')]['id']){delete _0x5da889['body']['id'];}return db['SalesforceAccount'][_0x4c00('0x48')]({'where':{'id':_0x5da889[_0x4c00('0x4b')]['id']}})[_0x4c00('0x27')](handleEntityNotFound(_0x1677d8,null))[_0x4c00('0x27')](saveUpdates(_0x5da889[_0x4c00('0x4a')],null))[_0x4c00('0x27')](respondWithResult(_0x1677d8,null))['catch'](handleError(_0x1677d8,null));};exports[_0x4c00('0x26')]=function(_0x235d5a,_0x5b79ed){return db[_0x4c00('0x40')][_0x4c00('0x48')]({'where':{'id':_0x235d5a[_0x4c00('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5b79ed,null))[_0x4c00('0x27')](removeEntity(_0x5b79ed,null))[_0x4c00('0x45')](handleError(_0x5b79ed,null));};exports[_0x4c00('0x4c')]=function(_0x4b32e3,_0xded424,_0x41ad7d){var _0x5ebe34={};var _0x202f55={};var _0x1a4a44;var _0x4503c1;return db['SalesforceAccount']['findOne']({'where':{'id':_0x4b32e3[_0x4c00('0x4b')]['id']}})[_0x4c00('0x27')](handleEntityNotFound(_0xded424,null))['then'](function(_0x36130c){if(_0x36130c){_0x1a4a44=_0x36130c;_0x202f55['model']=_['keys'](db['SalesforceConfiguration']['rawAttributes']);_0x202f55[_0x4c00('0x34')]=_[_0x4c00('0x33')](_0x4b32e3[_0x4c00('0x34')]);_0x202f55[_0x4c00('0x35')]=_[_0x4c00('0x36')](_0x202f55[_0x4c00('0x32')],_0x202f55[_0x4c00('0x34')]);_0x5ebe34[_0x4c00('0x38')]=_[_0x4c00('0x36')](_0x202f55[_0x4c00('0x32')],qs[_0x4c00('0x37')](_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x37')]));_0x5ebe34[_0x4c00('0x38')]=_0x5ebe34[_0x4c00('0x38')][_0x4c00('0x46')]?_0x5ebe34['attributes']:_0x202f55[_0x4c00('0x32')];_0x5ebe34[_0x4c00('0x3a')]=qs[_0x4c00('0x3b')](_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x3b')]);_0x5ebe34[_0x4c00('0x3c')]=qs[_0x4c00('0x35')](_[_0x4c00('0x3d')](_0x4b32e3['query'],_0x202f55[_0x4c00('0x35')]));if(_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x3e')]){_0x5ebe34[_0x4c00('0x3c')]=_[_0x4c00('0x3f')](_0x5ebe34[_0x4c00('0x3c')],{'$or':_['map'](_0x5ebe34[_0x4c00('0x38')],function(_0x453f10){var _0x45b371={};_0x45b371[_0x453f10]={'$like':'%'+_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x3e')]+'%'};return _0x45b371;})});}_0x5ebe34=_[_0x4c00('0x3f')]({},_0x5ebe34,_0x4b32e3[_0x4c00('0x47')]);return _0x1a4a44['getConfigurations'](_0x5ebe34);}})[_0x4c00('0x27')](function(_0x5281e0){if(_0x5281e0){_0x4503c1=_0x5281e0['length'];if(!_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x4d')](_0x4c00('0x39'))){_0x5ebe34['limit']=qs[_0x4c00('0x1f')](_0x4b32e3[_0x4c00('0x34')]['limit']);_0x5ebe34[_0x4c00('0x1d')]=qs[_0x4c00('0x1d')](_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x1d')]);}return _0x1a4a44['getConfigurations'](_0x5ebe34);}})[_0x4c00('0x27')](function(_0x136cdf){if(_0x136cdf){return _0x136cdf?{'count':_0x4503c1,'rows':_0x136cdf}:null;}})[_0x4c00('0x27')](respondWithResult(_0xded424,null))['catch'](handleError(_0xded424,null));};exports[_0x4c00('0x4e')]=function(_0x2b4543,_0x56099f,_0x122ba7){if(_0x2b4543[_0x4c00('0x4a')]['id']){delete _0x2b4543[_0x4c00('0x4a')]['id'];}return db['SalesforceAccount']['findOne']({'where':{'id':_0x2b4543[_0x4c00('0x4b')]['id']}})[_0x4c00('0x27')](handleEntityNotFound(_0x56099f,null))[_0x4c00('0x27')](function(_0x2b6dc6){if(_0x2b6dc6){_0x2b4543['body'][_0x4c00('0x4f')]=_0x2b6dc6['id'];_0x2b4543[_0x4c00('0x4a')][_0x4c00('0x50')]=integrations[_0x4c00('0x51')](_0x2b4543[_0x4c00('0x4a')][_0x4c00('0x52')],_0x2b4543['body']['type']);_0x2b4543[_0x4c00('0x4a')]['Descriptions']=integrations[_0x4c00('0x53')](_0x2b4543['body'][_0x4c00('0x52')],_0x2b4543[_0x4c00('0x4a')][_0x4c00('0x30')]);return db[_0x4c00('0x54')][_0x4c00('0x49')](_0x2b4543[_0x4c00('0x4a')],{'include':[{'model':db[_0x4c00('0x55')],'as':_0x4c00('0x50')},{'model':db[_0x4c00('0x55')],'as':'Descriptions'}]});}return null;})[_0x4c00('0x27')](respondWithResult(_0x56099f,null))[_0x4c00('0x45')](handleError(_0x56099f,null));};exports[_0x4c00('0x56')]=function(_0x1d692c,_0x3fda76,_0x4ef44a){var _0x36945e;var _0x84a82b='';var _0x49be5f=_0x4c00('0x57');return db[_0x4c00('0x40')][_0x4c00('0x58')]({'where':{'id':_0x1d692c[_0x4c00('0x4b')]['id']},'attributes':['id','remoteUri',_0x4c00('0x59'),_0x4c00('0x5a'),'username',_0x4c00('0x5b'),'securityToken']})[_0x4c00('0x27')](handleEntityNotFound(_0x3fda76,null))['then'](function(_0x48ac85){if(_0x48ac85){_0x84a82b=_0x48ac85[_0x4c00('0x5c')];var _0x1cfa74=_0x84a82b[_0x4c00('0x5d')](-0x1);if(_0x1cfa74==='/'){_0x84a82b=_0x84a82b['substring'](0x0,_0x84a82b['lastIndexOf'](_0x1cfa74));}_0x36945e=new jsforce['Connection']({'oauth2':{'loginUrl':_0x84a82b,'clientId':_0x48ac85[_0x4c00('0x59')],'clientSecret':_0x48ac85[_0x4c00('0x5a')]}});return _0x36945e[_0x4c00('0x5e')](_0x48ac85['username'],_0x48ac85[_0x4c00('0x5b')][_0x4c00('0x5f')](_0x48ac85[_0x4c00('0x60')]));}})[_0x4c00('0x27')](function(_0x58e086){if(_0x58e086){if(!_['isNil'](_0x1d692c['query'][_0x4c00('0x61')])){_0x49be5f=_0x1d692c[_0x4c00('0x34')]['ticketType'];}return _0x36945e[_0x4c00('0x62')](_0x49be5f)[_0x4c00('0x63')]();}})['then'](function(_0x43b442){var _0x2777e7=[_0x4c00('0x64'),_0x4c00('0x65'),'IsReminderSet',_0x4c00('0x66'),_0x4c00('0x67'),_0x4c00('0x68')];var _0xe1f47f=[_0x4c00('0x69'),_0x4c00('0x6a'),_0x4c00('0x6b'),'boolean','email',_0x4c00('0x6c'),_0x4c00('0x6d')];if(_0x43b442){_[_0x4c00('0x6e')](_0x43b442['fields'],function(_0x33b44a){return _0x2777e7[_0x4c00('0x6f')](_0x33b44a[_0x4c00('0x2a')])||!_0xe1f47f[_0x4c00('0x6f')](_0x33b44a['type']);});return{'count':_0x43b442[_0x4c00('0x37')]['length'],'rows':_[_0x4c00('0x2d')](_0x43b442[_0x4c00('0x37')],function(_0x7c8be8){return{'id':_0x7c8be8[_0x4c00('0x2a')],'name':_0x7c8be8[_0x4c00('0x70')],'custom':_0x7c8be8[_0x4c00('0x71')],'options':_0x7c8be8[_0x4c00('0x72')][_0x4c00('0x46')]>0x0?_[_0x4c00('0x2d')](_0x7c8be8[_0x4c00('0x72')],function(_0x3fa9fe){return{'name':_0x3fa9fe[_0x4c00('0x70')],'value':_0x3fa9fe['value']};}):_0x7c8be8[_0x4c00('0x30')]=='boolean'?[{'name':_0x4c00('0x73'),'value':'true'},{'name':_0x4c00('0x74'),'value':'false'}]:[]};})};}})[_0x4c00('0x27')](respondWithResult(_0x3fda76,null))[_0x4c00('0x45')](function(_0x5be6d8){var _0x5aa196=_0x1d692c['query'][_0x4c00('0x75')]?0x1f4:_0x5be6d8[_0x4c00('0x76')]||0x1f4;logger[_0x4c00('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0x4c00('0x56'),_0x5aa196,JSON[_0x4c00('0x77')](_0x5be6d8));delete _0x5be6d8[_0x4c00('0x2a')];if(_0x5aa196===0x191){_0x5aa196=0x190;}_0x3fda76['status'](_0x5aa196)[_0x4c00('0x2b')](_0x1d692c[_0x4c00('0x34')][_0x4c00('0x75')]?{'message':_0x4c00('0x78'),'statusCode':_0x5be6d8[_0x4c00('0x76')]}:_0x5be6d8);});};
\ No newline at end of file
+var _0x446d=['undefined','count','status','Content-Range','apply','save','then','destroy','end','error','stack','name','send','index','SalesforceAccount','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','update','getConfigurations','findOne','keys','SalesforceConfiguration','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SalesforceField','getFields','Task','remoteUri','clientId','clientSecret','password','securityToken','slice','lastIndexOf','Connection','login','username','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','Subject','Description','string','int','picklist','boolean','email','textarea','phone','remove','includes','picklistValues','label','value','true','False','false','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','json','offset'];(function(_0x603816,_0x36c7df){var _0x4d5f6a=function(_0x14b33f){while(--_0x14b33f){_0x603816['push'](_0x603816['shift']());}};_0x4d5f6a(++_0x36c7df);}(_0x446d,0xe5));var _0xd446=function(_0x22f963,_0x4bb343){_0x22f963=_0x22f963-0x0;var _0x3ef3ee=_0x446d[_0x22f963];return _0x3ef3ee;};'use strict';var emlformat=require(_0xd446('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd446('0x1'));var jsonpatch=require(_0xd446('0x2'));var rp=require(_0xd446('0x3'));var moment=require(_0xd446('0x4'));var BPromise=require(_0xd446('0x5'));var Mustache=require(_0xd446('0x6'));var util=require(_0xd446('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd446('0x8'));var squel=require('squel');var crypto=require(_0xd446('0x9'));var jsforce=require(_0xd446('0xa'));var deskjs=require(_0xd446('0xb'));var toCsv=require(_0xd446('0xc'));var querystring=require(_0xd446('0xd'));var Papa=require(_0xd446('0xe'));var Redis=require('ioredis');var authService=require(_0xd446('0xf'));var qs=require(_0xd446('0x10'));var as=require(_0xd446('0x11'));var hardwareService=require(_0xd446('0x12'));var logger=require('../../config/logger')(_0xd446('0x13'));var utils=require(_0xd446('0x14'));var config=require(_0xd446('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xd446('0x16'))['db'];var integrations=require(_0xd446('0x17'));function respondWithStatusCode(_0x526cfc,_0x2e390c){_0x2e390c=_0x2e390c||0xcc;return function(_0x574481){if(_0x574481){return _0x526cfc[_0xd446('0x18')](_0x2e390c);}return _0x526cfc['status'](_0x2e390c)['end']();};}function respondWithResult(_0x291049,_0xb98cb0){_0xb98cb0=_0xb98cb0||0xc8;return function(_0x441e99){if(_0x441e99){return _0x291049['status'](_0xb98cb0)[_0xd446('0x19')](_0x441e99);}};}function respondWithFilteredResult(_0x5b96e4,_0x4c6225){return function(_0xf8d129){if(_0xf8d129){var _0x3d7dbc=typeof _0x4c6225[_0xd446('0x1a')]===_0xd446('0x1b')&&typeof _0x4c6225['limit']===_0xd446('0x1b');var _0x297ebc=_0xf8d129['count'];var _0x1b6db3=_0x3d7dbc?0x0:_0x4c6225[_0xd446('0x1a')];var _0x5af30a=_0x3d7dbc?_0xf8d129[_0xd446('0x1c')]:_0x4c6225[_0xd446('0x1a')]+_0x4c6225['limit'];var _0x2287c5;if(_0x5af30a>=_0x297ebc){_0x5af30a=_0x297ebc;_0x2287c5=0xc8;}else{_0x2287c5=0xce;}_0x5b96e4[_0xd446('0x1d')](_0x2287c5);return _0x5b96e4['set'](_0xd446('0x1e'),_0x1b6db3+'-'+_0x5af30a+'/'+_0x297ebc)['json'](_0xf8d129);}return null;};}function patchUpdates(_0x1fb7c3){return function(_0x565db9){try{jsonpatch[_0xd446('0x1f')](_0x565db9,_0x1fb7c3,!![]);}catch(_0x5449c6){return BPromise['reject'](_0x5449c6);}return _0x565db9[_0xd446('0x20')]();};}function saveUpdates(_0x5bed51,_0x41e3e5){return function(_0x446c0b){if(_0x446c0b){return _0x446c0b['update'](_0x5bed51)[_0xd446('0x21')](function(_0x3bcee2){return _0x3bcee2;});}return null;};}function removeEntity(_0x3d2c02,_0x33847a){return function(_0x5945d6){if(_0x5945d6){return _0x5945d6[_0xd446('0x22')]()['then'](function(){_0x3d2c02[_0xd446('0x1d')](0xcc)[_0xd446('0x23')]();});}};}function handleEntityNotFound(_0x5549d5,_0x510282){return function(_0x46630b){if(!_0x46630b){_0x5549d5[_0xd446('0x18')](0x194);}return _0x46630b;};}function handleError(_0x197390,_0x26132c){_0x26132c=_0x26132c||0x1f4;return function(_0x4beb5f){logger[_0xd446('0x24')](_0x4beb5f[_0xd446('0x25')]);if(_0x4beb5f['name']){delete _0x4beb5f[_0xd446('0x26')];}_0x197390[_0xd446('0x1d')](_0x26132c)[_0xd446('0x27')](_0x4beb5f);};}exports[_0xd446('0x28')]=function(_0x717454,_0x57753a){var _0x89d756={},_0x48f3d7={},_0x5d048c={'count':0x0,'rows':[]};var _0x354ea4=_['map'](db[_0xd446('0x29')][_0xd446('0x2a')],function(_0x19e0f8){return{'name':_0x19e0f8[_0xd446('0x2b')],'type':_0x19e0f8[_0xd446('0x2c')][_0xd446('0x2d')]};});_0x48f3d7[_0xd446('0x2e')]=_[_0xd446('0x2f')](_0x354ea4,_0xd446('0x26'));_0x48f3d7['query']=_['keys'](_0x717454[_0xd446('0x30')]);_0x48f3d7[_0xd446('0x31')]=_[_0xd446('0x32')](_0x48f3d7[_0xd446('0x2e')],_0x48f3d7['query']);_0x89d756['attributes']=_[_0xd446('0x32')](_0x48f3d7['model'],qs[_0xd446('0x33')](_0x717454[_0xd446('0x30')]['fields']));_0x89d756[_0xd446('0x34')]=_0x89d756[_0xd446('0x34')][_0xd446('0x35')]?_0x89d756[_0xd446('0x34')]:_0x48f3d7['model'];if(!_0x717454[_0xd446('0x30')][_0xd446('0x36')](_0xd446('0x37'))){_0x89d756[_0xd446('0x38')]=qs['limit'](_0x717454[_0xd446('0x30')][_0xd446('0x38')]);_0x89d756[_0xd446('0x1a')]=qs[_0xd446('0x1a')](_0x717454['query'][_0xd446('0x1a')]);}_0x89d756[_0xd446('0x39')]=qs[_0xd446('0x3a')](_0x717454[_0xd446('0x30')]['sort']);_0x89d756[_0xd446('0x3b')]=qs[_0xd446('0x31')](_['pick'](_0x717454[_0xd446('0x30')],_0x48f3d7[_0xd446('0x31')]),_0x354ea4);if(_0x717454[_0xd446('0x30')][_0xd446('0x3c')]){_0x89d756[_0xd446('0x3b')]=_[_0xd446('0x3d')](_0x89d756[_0xd446('0x3b')],{'$or':_['map'](_0x354ea4,function(_0x456a9e){if(_0x456a9e[_0xd446('0x2c')]!==_0xd446('0x3e')){var _0x1c99ce={};_0x1c99ce[_0x456a9e[_0xd446('0x26')]]={'$like':'%'+_0x717454['query'][_0xd446('0x3c')]+'%'};return _0x1c99ce;}})});}_0x89d756=_['merge']({},_0x89d756,_0x717454['options']);var _0x8fae78={'where':_0x89d756[_0xd446('0x3b')]};return db[_0xd446('0x29')][_0xd446('0x1c')](_0x8fae78)['then'](function(_0x1af5c7){_0x5d048c[_0xd446('0x1c')]=_0x1af5c7;if(_0x717454[_0xd446('0x30')][_0xd446('0x3f')]){_0x89d756[_0xd446('0x40')]=[{'all':!![]}];}return db[_0xd446('0x29')][_0xd446('0x41')](_0x89d756);})[_0xd446('0x21')](function(_0x54c85c){_0x5d048c[_0xd446('0x42')]=_0x54c85c;return _0x5d048c;})[_0xd446('0x21')](respondWithFilteredResult(_0x57753a,_0x89d756))[_0xd446('0x43')](handleError(_0x57753a,null));};exports[_0xd446('0x44')]=function(_0x26f836,_0x5125de){var _0x2d1941={'raw':![],'where':{'id':_0x26f836[_0xd446('0x45')]['id']}},_0x20330f={};_0x20330f[_0xd446('0x2e')]=_['keys'](db[_0xd446('0x29')]['rawAttributes']);_0x20330f['query']=_['keys'](_0x26f836[_0xd446('0x30')]);_0x20330f[_0xd446('0x31')]=_[_0xd446('0x32')](_0x20330f[_0xd446('0x2e')],_0x20330f[_0xd446('0x30')]);_0x2d1941[_0xd446('0x34')]=_[_0xd446('0x32')](_0x20330f[_0xd446('0x2e')],qs[_0xd446('0x33')](_0x26f836[_0xd446('0x30')][_0xd446('0x33')]));_0x2d1941[_0xd446('0x34')]=_0x2d1941[_0xd446('0x34')][_0xd446('0x35')]?_0x2d1941[_0xd446('0x34')]:_0x20330f[_0xd446('0x2e')];if(_0x26f836['query'][_0xd446('0x3f')]){_0x2d1941[_0xd446('0x40')]=[{'all':!![]}];}_0x2d1941=_[_0xd446('0x3d')]({},_0x2d1941,_0x26f836[_0xd446('0x46')]);return db[_0xd446('0x29')][_0xd446('0x47')](_0x2d1941)['then'](handleEntityNotFound(_0x5125de,null))[_0xd446('0x21')](respondWithResult(_0x5125de,null))[_0xd446('0x43')](handleError(_0x5125de,null));};exports[_0xd446('0x48')]=function(_0x4785aa,_0x5b539c){return db[_0xd446('0x29')][_0xd446('0x48')](_0x4785aa[_0xd446('0x49')],{})[_0xd446('0x21')](respondWithResult(_0x5b539c,0xc9))[_0xd446('0x43')](handleError(_0x5b539c,null));};exports[_0xd446('0x4a')]=function(_0x54b767,_0x5b1153){if(_0x54b767['body']['id']){delete _0x54b767[_0xd446('0x49')]['id'];}return db[_0xd446('0x29')][_0xd446('0x47')]({'where':{'id':_0x54b767[_0xd446('0x45')]['id']}})[_0xd446('0x21')](handleEntityNotFound(_0x5b1153,null))['then'](saveUpdates(_0x54b767['body'],null))[_0xd446('0x21')](respondWithResult(_0x5b1153,null))[_0xd446('0x43')](handleError(_0x5b1153,null));};exports[_0xd446('0x22')]=function(_0x4301dd,_0x475411){return db['SalesforceAccount'][_0xd446('0x47')]({'where':{'id':_0x4301dd[_0xd446('0x45')]['id']}})[_0xd446('0x21')](handleEntityNotFound(_0x475411,null))[_0xd446('0x21')](removeEntity(_0x475411,null))[_0xd446('0x43')](handleError(_0x475411,null));};exports[_0xd446('0x4b')]=function(_0x1c7e53,_0x3bb361,_0x31c4ca){var _0x31d7fc={};var _0xee2a6a={};var _0x9d867a;var _0x3477a1;return db[_0xd446('0x29')][_0xd446('0x4c')]({'where':{'id':_0x1c7e53['params']['id']}})[_0xd446('0x21')](handleEntityNotFound(_0x3bb361,null))[_0xd446('0x21')](function(_0x554d46){if(_0x554d46){_0x9d867a=_0x554d46;_0xee2a6a[_0xd446('0x2e')]=_[_0xd446('0x4d')](db[_0xd446('0x4e')]['rawAttributes']);_0xee2a6a['query']=_['keys'](_0x1c7e53[_0xd446('0x30')]);_0xee2a6a['filters']=_['intersection'](_0xee2a6a[_0xd446('0x2e')],_0xee2a6a['query']);_0x31d7fc['attributes']=_['intersection'](_0xee2a6a[_0xd446('0x2e')],qs[_0xd446('0x33')](_0x1c7e53[_0xd446('0x30')][_0xd446('0x33')]));_0x31d7fc[_0xd446('0x34')]=_0x31d7fc[_0xd446('0x34')]['length']?_0x31d7fc['attributes']:_0xee2a6a[_0xd446('0x2e')];_0x31d7fc[_0xd446('0x39')]=qs[_0xd446('0x3a')](_0x1c7e53[_0xd446('0x30')][_0xd446('0x3a')]);_0x31d7fc[_0xd446('0x3b')]=qs['filters'](_[_0xd446('0x4f')](_0x1c7e53[_0xd446('0x30')],_0xee2a6a[_0xd446('0x31')]));if(_0x1c7e53['query'][_0xd446('0x3c')]){_0x31d7fc['where']=_[_0xd446('0x3d')](_0x31d7fc[_0xd446('0x3b')],{'$or':_[_0xd446('0x2f')](_0x31d7fc[_0xd446('0x34')],function(_0x3cf1ad){var _0x3e52d1={};_0x3e52d1[_0x3cf1ad]={'$like':'%'+_0x1c7e53[_0xd446('0x30')]['filter']+'%'};return _0x3e52d1;})});}_0x31d7fc=_[_0xd446('0x3d')]({},_0x31d7fc,_0x1c7e53[_0xd446('0x46')]);return _0x9d867a[_0xd446('0x4b')](_0x31d7fc);}})[_0xd446('0x21')](function(_0x2c3a88){if(_0x2c3a88){_0x3477a1=_0x2c3a88[_0xd446('0x35')];if(!_0x1c7e53[_0xd446('0x30')][_0xd446('0x36')](_0xd446('0x37'))){_0x31d7fc[_0xd446('0x38')]=qs[_0xd446('0x38')](_0x1c7e53[_0xd446('0x30')]['limit']);_0x31d7fc[_0xd446('0x1a')]=qs[_0xd446('0x1a')](_0x1c7e53['query'][_0xd446('0x1a')]);}return _0x9d867a[_0xd446('0x4b')](_0x31d7fc);}})[_0xd446('0x21')](function(_0x57d6fc){if(_0x57d6fc){return _0x57d6fc?{'count':_0x3477a1,'rows':_0x57d6fc}:null;}})[_0xd446('0x21')](respondWithResult(_0x3bb361,null))['catch'](handleError(_0x3bb361,null));};exports[_0xd446('0x50')]=function(_0x1a7838,_0x47aa49,_0x1fbc64){if(_0x1a7838[_0xd446('0x49')]['id']){delete _0x1a7838['body']['id'];}return db[_0xd446('0x29')]['findOne']({'where':{'id':_0x1a7838[_0xd446('0x45')]['id']}})[_0xd446('0x21')](handleEntityNotFound(_0x47aa49,null))[_0xd446('0x21')](function(_0xba7b6b){if(_0xba7b6b){_0x1a7838[_0xd446('0x49')][_0xd446('0x51')]=_0xba7b6b['id'];_0x1a7838[_0xd446('0x49')][_0xd446('0x52')]=integrations[_0xd446('0x53')](_0x1a7838['body'][_0xd446('0x54')],_0x1a7838[_0xd446('0x49')]['type']);_0x1a7838[_0xd446('0x49')][_0xd446('0x55')]=integrations[_0xd446('0x56')](_0x1a7838['body'][_0xd446('0x54')],_0x1a7838[_0xd446('0x49')][_0xd446('0x2c')]);return db[_0xd446('0x4e')][_0xd446('0x48')](_0x1a7838['body'],{'include':[{'model':db[_0xd446('0x57')],'as':_0xd446('0x52')},{'model':db['SalesforceField'],'as':_0xd446('0x55')}]});}return null;})[_0xd446('0x21')](respondWithResult(_0x47aa49,null))[_0xd446('0x43')](handleError(_0x47aa49,null));};exports[_0xd446('0x58')]=function(_0x198a3c,_0x1ab56a,_0x5c0279){var _0x51b9a3;var _0x325b75='';var _0x463b77=_0xd446('0x59');return db[_0xd446('0x29')]['findOne']({'where':{'id':_0x198a3c[_0xd446('0x45')]['id']},'attributes':['id',_0xd446('0x5a'),_0xd446('0x5b'),_0xd446('0x5c'),'username',_0xd446('0x5d'),_0xd446('0x5e')]})['then'](handleEntityNotFound(_0x1ab56a,null))[_0xd446('0x21')](function(_0x3f870b){if(_0x3f870b){_0x325b75=_0x3f870b[_0xd446('0x5a')];var _0x39ed64=_0x325b75[_0xd446('0x5f')](-0x1);if(_0x39ed64==='/'){_0x325b75=_0x325b75['substring'](0x0,_0x325b75[_0xd446('0x60')](_0x39ed64));}_0x51b9a3=new jsforce[(_0xd446('0x61'))]({'oauth2':{'loginUrl':_0x325b75,'clientId':_0x3f870b[_0xd446('0x5b')],'clientSecret':_0x3f870b[_0xd446('0x5c')]}});return _0x51b9a3[_0xd446('0x62')](_0x3f870b[_0xd446('0x63')],_0x3f870b[_0xd446('0x5d')]['concat'](_0x3f870b['securityToken']));}})[_0xd446('0x21')](function(_0x5b64e4){if(_0x5b64e4){if(!_[_0xd446('0x64')](_0x198a3c['query'][_0xd446('0x65')])){_0x463b77=_0x198a3c[_0xd446('0x30')][_0xd446('0x65')];}return _0x51b9a3[_0xd446('0x66')](_0x463b77)[_0xd446('0x67')]();}})[_0xd446('0x21')](function(_0x48a65a){var _0x54eb54=[_0xd446('0x68'),_0xd446('0x69'),'IsReminderSet','IsRecurrence',_0xd446('0x6a'),_0xd446('0x6b')];var _0x51e5d1=[_0xd446('0x6c'),_0xd446('0x6d'),_0xd446('0x6e'),_0xd446('0x6f'),_0xd446('0x70'),_0xd446('0x71'),_0xd446('0x72')];if(_0x48a65a){_[_0xd446('0x73')](_0x48a65a['fields'],function(_0x12b366){return _0x54eb54['includes'](_0x12b366['name'])||!_0x51e5d1[_0xd446('0x74')](_0x12b366[_0xd446('0x2c')]);});return{'count':_0x48a65a[_0xd446('0x33')][_0xd446('0x35')],'rows':_['map'](_0x48a65a[_0xd446('0x33')],function(_0x2a43b7){return{'id':_0x2a43b7[_0xd446('0x26')],'name':_0x2a43b7['label'],'custom':_0x2a43b7['custom'],'options':_0x2a43b7[_0xd446('0x75')]['length']>0x0?_[_0xd446('0x2f')](_0x2a43b7[_0xd446('0x75')],function(_0x2cdef0){return{'name':_0x2cdef0[_0xd446('0x76')],'value':_0x2cdef0[_0xd446('0x77')]};}):_0x2a43b7[_0xd446('0x2c')]==_0xd446('0x6f')?[{'name':'True','value':_0xd446('0x78')},{'name':_0xd446('0x79'),'value':_0xd446('0x7a')}]:[]};})};}})[_0xd446('0x21')](respondWithResult(_0x1ab56a,null))[_0xd446('0x43')](function(_0x727b35){var _0x57254f=_0x198a3c['query']['test']?0x1f4:_0x727b35[_0xd446('0x7b')]||0x1f4;logger[_0xd446('0x24')](_0xd446('0x7c'),_0xd446('0x58'),_0x57254f,JSON[_0xd446('0x7d')](_0x727b35));delete _0x727b35[_0xd446('0x26')];if(_0x57254f===0x191){_0x57254f=0x190;}_0x1ab56a[_0xd446('0x1d')](_0x57254f)[_0xd446('0x27')](_0x198a3c[_0xd446('0x30')][_0xd446('0x7e')]?{'message':_0xd446('0x7f'),'statusCode':_0x727b35['statusCode']}:_0x727b35);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2874=['./intSalesforceAccount.attributes','../../components/integrations/configuration','exports','define','SalesforceAccount','int_salesforce_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0xba2dbe,_0x1e1d6a){var _0x32e67a=function(_0x14424c){while(--_0x14424c){_0xba2dbe['push'](_0xba2dbe['shift']());}};_0x32e67a(++_0x1e1d6a);}(_0x2874,0x150));var _0x4287=function(_0x4cc492,_0x162c85){_0x4cc492=_0x4cc492-0x0;var _0x1f36b9=_0x2874[_0x4cc492];return _0x1f36b9;};'use strict';var _=require(_0x4287('0x0'));var util=require(_0x4287('0x1'));var logger=require(_0x4287('0x2'))(_0x4287('0x3'));var moment=require(_0x4287('0x4'));var BPromise=require(_0x4287('0x5'));var rp=require(_0x4287('0x6'));var fs=require('fs');var path=require(_0x4287('0x7'));var rimraf=require(_0x4287('0x8'));var config=require('../../config/environment');var attributes=require(_0x4287('0x9'));var integrations=require(_0x4287('0xa'));module[_0x4287('0xb')]=function(_0x562394,_0x420926){return _0x562394[_0x4287('0xc')](_0x4287('0xd'),attributes,{'tableName':_0x4287('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x36f1=['path','rimraf','../../config/environment','./intSalesforceAccount.attributes','../../components/integrations/configuration','SalesforceAccount','int_salesforce_accounts','lodash','util','../../config/logger','moment','bluebird'];(function(_0x1da527,_0x2dc953){var _0x40fc7c=function(_0x9949f5){while(--_0x9949f5){_0x1da527['push'](_0x1da527['shift']());}};_0x40fc7c(++_0x2dc953);}(_0x36f1,0x19f));var _0x136f=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x36f1[_0x5b644e];return _0x49c6bf;};'use strict';var _=require(_0x136f('0x0'));var util=require(_0x136f('0x1'));var logger=require(_0x136f('0x2'))('api');var moment=require(_0x136f('0x3'));var BPromise=require(_0x136f('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x136f('0x5'));var rimraf=require(_0x136f('0x6'));var config=require(_0x136f('0x7'));var attributes=require(_0x136f('0x8'));var integrations=require(_0x136f('0x9'));module['exports']=function(_0x11b000,_0x4b9772){return _0x11b000['define'](_0x136f('0xa'),attributes,{'tableName':_0x136f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff01=['stringify','error','code','message','result','raw','options','attributes','limit','include','map','model','GetSalesforceAccount','catch','SalesforceAccount','find','where','ShowSalesforceAccount','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','http','request','then','info','SalesforceAccount,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x27c35b,_0x2e39d9){var _0x2228b2=function(_0x481b05){while(--_0x481b05){_0x27c35b['push'](_0x27c35b['shift']());}};_0x2228b2(++_0x2e39d9);}(_0xff01,0xb7));var _0x1ff0=function(_0x1d9fb6,_0xcd7b7b){_0x1d9fb6=_0x1d9fb6-0x0;var _0x15c84c=_0xff01[_0x1d9fb6];return _0x15c84c;};'use strict';var _=require(_0x1ff0('0x0'));var util=require(_0x1ff0('0x1'));var moment=require('moment');var BPromise=require(_0x1ff0('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1ff0('0x3'));var db=require(_0x1ff0('0x4'))['db'];var utils=require(_0x1ff0('0x5'));var logger=require('../../config/logger')(_0x1ff0('0x6'));var config=require('../../config/environment');var jayson=require(_0x1ff0('0x7'));var client=jayson['client'][_0x1ff0('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x47ca4c,_0x5e47d6,_0x389e37){return new BPromise(function(_0xb44d65,_0x4e5b21){return client[_0x1ff0('0x9')](_0x47ca4c,_0x389e37)[_0x1ff0('0xa')](function(_0x45dfea){logger[_0x1ff0('0xb')](_0x1ff0('0xc'),_0x5e47d6,'request\x20sent');logger[_0x1ff0('0xd')]('SalesforceAccount,\x20%s,\x20%s,\x20%s',_0x5e47d6,_0x1ff0('0xe'),JSON[_0x1ff0('0xf')](_0x45dfea));if(_0x45dfea[_0x1ff0('0x10')]){if(_0x45dfea[_0x1ff0('0x10')][_0x1ff0('0x11')]===0x1f4){logger[_0x1ff0('0x10')](_0x1ff0('0xc'),_0x5e47d6,_0x45dfea[_0x1ff0('0x10')][_0x1ff0('0x12')]);return _0x4e5b21(_0x45dfea[_0x1ff0('0x10')]['message']);}logger[_0x1ff0('0x10')](_0x1ff0('0xc'),_0x5e47d6,_0x45dfea[_0x1ff0('0x10')][_0x1ff0('0x12')]);return _0xb44d65(_0x45dfea['error'][_0x1ff0('0x12')]);}else{logger[_0x1ff0('0xb')]('SalesforceAccount,\x20%s,\x20%s',_0x5e47d6,_0x1ff0('0xe'));_0xb44d65(_0x45dfea[_0x1ff0('0x13')][_0x1ff0('0x12')]);}})['catch'](function(_0x564940){logger[_0x1ff0('0x10')](_0x1ff0('0xc'),_0x5e47d6,_0x564940);_0x4e5b21(_0x564940);});});}exports['GetSalesforceAccount']=function(_0x1efb08){var _0x3b0b40=this;return new Promise(function(_0x2b3199,_0x12ed82){return db['SalesforceAccount']['findAll']({'raw':_0x1efb08['options']?_0x1efb08['options'][_0x1ff0('0x14')]===undefined?!![]:![]:!![],'where':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')]['where']||null:null,'attributes':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')][_0x1ff0('0x16')]||null:null,'limit':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')][_0x1ff0('0x17')]||null:null,'include':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')][_0x1ff0('0x18')]?_[_0x1ff0('0x19')](_0x1efb08[_0x1ff0('0x15')]['include'],function(_0x45391b){return{'model':db[_0x45391b['model']],'as':_0x45391b['as'],'attributes':_0x45391b[_0x1ff0('0x16')],'include':_0x45391b['include']?_[_0x1ff0('0x19')](_0x45391b[_0x1ff0('0x18')],function(_0x3c9e6e){return{'model':db[_0x3c9e6e[_0x1ff0('0x1a')]],'as':_0x3c9e6e['as'],'attributes':_0x3c9e6e[_0x1ff0('0x16')],'include':_0x3c9e6e['include']?_[_0x1ff0('0x19')](_0x3c9e6e[_0x1ff0('0x18')],function(_0x38a2e2){return{'model':db[_0x38a2e2['model']],'as':_0x38a2e2['as'],'attributes':_0x38a2e2[_0x1ff0('0x16')]};}):[]};}):[]};}):[]:[]})[_0x1ff0('0xa')](function(_0x29fdb2){logger[_0x1ff0('0xb')](_0x1ff0('0x1b'),_0x1efb08);logger['debug'](_0x1ff0('0x1b'),_0x1efb08,JSON[_0x1ff0('0xf')](_0x29fdb2));_0x2b3199(_0x29fdb2);})[_0x1ff0('0x1c')](function(_0x16a084){logger['error'](_0x1ff0('0x1b'),_0x16a084['message'],_0x1efb08);_0x12ed82(_0x3b0b40[_0x1ff0('0x10')](0x1f4,_0x16a084[_0x1ff0('0x12')]));});});};exports['ShowSalesforceAccount']=function(_0x5a3069){var _0x5de363=this;return new Promise(function(_0x49218f,_0x1e0881){return db[_0x1ff0('0x1d')][_0x1ff0('0x1e')]({'raw':_0x5a3069['options']?_0x5a3069[_0x1ff0('0x15')][_0x1ff0('0x14')]===undefined?!![]:![]:!![],'where':_0x5a3069['options']?_0x5a3069[_0x1ff0('0x15')][_0x1ff0('0x1f')]||null:null,'attributes':_0x5a3069[_0x1ff0('0x15')]?_0x5a3069[_0x1ff0('0x15')]['attributes']||null:null,'include':_0x5a3069[_0x1ff0('0x15')]?_0x5a3069['options'][_0x1ff0('0x18')]?_[_0x1ff0('0x19')](_0x5a3069[_0x1ff0('0x15')][_0x1ff0('0x18')],function(_0x23539f){return{'model':db[_0x23539f[_0x1ff0('0x1a')]],'as':_0x23539f['as'],'attributes':_0x23539f[_0x1ff0('0x16')],'include':_0x23539f[_0x1ff0('0x18')]?_['map'](_0x23539f[_0x1ff0('0x18')],function(_0x5566fe){return{'model':db[_0x5566fe[_0x1ff0('0x1a')]],'as':_0x5566fe['as'],'attributes':_0x5566fe[_0x1ff0('0x16')],'include':_0x5566fe[_0x1ff0('0x18')]?_['map'](_0x5566fe['include'],function(_0x1523cf){return{'model':db[_0x1523cf['model']],'as':_0x1523cf['as'],'attributes':_0x1523cf[_0x1ff0('0x16')]};}):[]};}):[]};}):[]:[]})[_0x1ff0('0xa')](function(_0x518cb1){logger[_0x1ff0('0xb')](_0x1ff0('0x20'),_0x5a3069);logger[_0x1ff0('0xd')](_0x1ff0('0x20'),_0x5a3069,JSON[_0x1ff0('0xf')](_0x518cb1));_0x49218f(_0x518cb1);})[_0x1ff0('0x1c')](function(_0x5c272f){logger[_0x1ff0('0x10')](_0x1ff0('0x20'),_0x5c272f[_0x1ff0('0x12')],_0x5a3069);_0x1e0881(_0x5de363['error'](0x1f4,_0x5c272f['message']));});});};
\ No newline at end of file
+var _0x2daa=['SalesforceAccount,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','SalesforceAccount','findAll','options','raw','attributes','limit','include','map','model','GetSalesforceAccount','stringify','ShowSalesforceAccount','find','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','jayson/promise','http','request','then','info','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x3fb247,_0x2eecfc){var _0x588f8b=function(_0x4d818e){while(--_0x4d818e){_0x3fb247['push'](_0x3fb247['shift']());}};_0x588f8b(++_0x2eecfc);}(_0x2daa,0x167));var _0xa2da=function(_0x383dbb,_0x17d41b){_0x383dbb=_0x383dbb-0x0;var _0x6e8bde=_0x2daa[_0x383dbb];return _0x6e8bde;};'use strict';var _=require('lodash');var util=require(_0xa2da('0x0'));var moment=require(_0xa2da('0x1'));var BPromise=require(_0xa2da('0x2'));var rs=require(_0xa2da('0x3'));var fs=require('fs');var Redis=require(_0xa2da('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xa2da('0x5'));var logger=require('../../config/logger')(_0xa2da('0x6'));var config=require('../../config/environment');var jayson=require(_0xa2da('0x7'));var client=jayson['client'][_0xa2da('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x426e0e,_0x1f181e,_0x10744c){return new BPromise(function(_0x11d880,_0x314e4a){return client[_0xa2da('0x9')](_0x426e0e,_0x10744c)[_0xa2da('0xa')](function(_0x1cbc24){logger[_0xa2da('0xb')](_0xa2da('0xc'),_0x1f181e,_0xa2da('0xd'));logger[_0xa2da('0xe')](_0xa2da('0xf'),_0x1f181e,'request\x20sent',JSON['stringify'](_0x1cbc24));if(_0x1cbc24['error']){if(_0x1cbc24['error'][_0xa2da('0x10')]===0x1f4){logger['error']('SalesforceAccount,\x20%s,\x20%s',_0x1f181e,_0x1cbc24[_0xa2da('0x11')][_0xa2da('0x12')]);return _0x314e4a(_0x1cbc24['error'][_0xa2da('0x12')]);}logger[_0xa2da('0x11')](_0xa2da('0xc'),_0x1f181e,_0x1cbc24[_0xa2da('0x11')][_0xa2da('0x12')]);return _0x11d880(_0x1cbc24['error']['message']);}else{logger[_0xa2da('0xb')](_0xa2da('0xc'),_0x1f181e,_0xa2da('0xd'));_0x11d880(_0x1cbc24[_0xa2da('0x13')][_0xa2da('0x12')]);}})[_0xa2da('0x14')](function(_0x4ee507){logger[_0xa2da('0x11')]('SalesforceAccount,\x20%s,\x20%s',_0x1f181e,_0x4ee507);_0x314e4a(_0x4ee507);});});}exports['GetSalesforceAccount']=function(_0x4d1c3c){var _0x1d0dee=this;return new Promise(function(_0x5ea47a,_0x750d05){return db[_0xa2da('0x15')][_0xa2da('0x16')]({'raw':_0x4d1c3c[_0xa2da('0x17')]?_0x4d1c3c[_0xa2da('0x17')][_0xa2da('0x18')]===undefined?!![]:![]:!![],'where':_0x4d1c3c[_0xa2da('0x17')]?_0x4d1c3c[_0xa2da('0x17')]['where']||null:null,'attributes':_0x4d1c3c[_0xa2da('0x17')]?_0x4d1c3c['options'][_0xa2da('0x19')]||null:null,'limit':_0x4d1c3c['options']?_0x4d1c3c[_0xa2da('0x17')][_0xa2da('0x1a')]||null:null,'include':_0x4d1c3c[_0xa2da('0x17')]?_0x4d1c3c['options'][_0xa2da('0x1b')]?_[_0xa2da('0x1c')](_0x4d1c3c['options'][_0xa2da('0x1b')],function(_0x3e1052){return{'model':db[_0x3e1052[_0xa2da('0x1d')]],'as':_0x3e1052['as'],'attributes':_0x3e1052[_0xa2da('0x19')],'include':_0x3e1052[_0xa2da('0x1b')]?_[_0xa2da('0x1c')](_0x3e1052[_0xa2da('0x1b')],function(_0x29cc79){return{'model':db[_0x29cc79[_0xa2da('0x1d')]],'as':_0x29cc79['as'],'attributes':_0x29cc79[_0xa2da('0x19')],'include':_0x29cc79[_0xa2da('0x1b')]?_[_0xa2da('0x1c')](_0x29cc79[_0xa2da('0x1b')],function(_0x1c243b){return{'model':db[_0x1c243b[_0xa2da('0x1d')]],'as':_0x1c243b['as'],'attributes':_0x1c243b[_0xa2da('0x19')]};}):[]};}):[]};}):[]:[]})[_0xa2da('0xa')](function(_0x3334cc){logger['info'](_0xa2da('0x1e'),_0x4d1c3c);logger['debug']('GetSalesforceAccount',_0x4d1c3c,JSON[_0xa2da('0x1f')](_0x3334cc));_0x5ea47a(_0x3334cc);})[_0xa2da('0x14')](function(_0x2a6529){logger[_0xa2da('0x11')](_0xa2da('0x1e'),_0x2a6529[_0xa2da('0x12')],_0x4d1c3c);_0x750d05(_0x1d0dee[_0xa2da('0x11')](0x1f4,_0x2a6529[_0xa2da('0x12')]));});});};exports[_0xa2da('0x20')]=function(_0x172766){var _0x3de772=this;return new Promise(function(_0x155f63,_0x4e17b1){return db[_0xa2da('0x15')][_0xa2da('0x21')]({'raw':_0x172766[_0xa2da('0x17')]?_0x172766[_0xa2da('0x17')][_0xa2da('0x18')]===undefined?!![]:![]:!![],'where':_0x172766['options']?_0x172766[_0xa2da('0x17')]['where']||null:null,'attributes':_0x172766[_0xa2da('0x17')]?_0x172766[_0xa2da('0x17')][_0xa2da('0x19')]||null:null,'include':_0x172766[_0xa2da('0x17')]?_0x172766['options'][_0xa2da('0x1b')]?_[_0xa2da('0x1c')](_0x172766[_0xa2da('0x17')][_0xa2da('0x1b')],function(_0x143d64){return{'model':db[_0x143d64[_0xa2da('0x1d')]],'as':_0x143d64['as'],'attributes':_0x143d64[_0xa2da('0x19')],'include':_0x143d64[_0xa2da('0x1b')]?_[_0xa2da('0x1c')](_0x143d64['include'],function(_0x590705){return{'model':db[_0x590705[_0xa2da('0x1d')]],'as':_0x590705['as'],'attributes':_0x590705[_0xa2da('0x19')],'include':_0x590705[_0xa2da('0x1b')]?_[_0xa2da('0x1c')](_0x590705[_0xa2da('0x1b')],function(_0x4f1319){return{'model':db[_0x4f1319[_0xa2da('0x1d')]],'as':_0x4f1319['as'],'attributes':_0x4f1319['attributes']};}):[]};}):[]};}):[]:[]})[_0xa2da('0xa')](function(_0x742252){logger[_0xa2da('0xb')]('ShowSalesforceAccount',_0x172766);logger[_0xa2da('0xe')](_0xa2da('0x20'),_0x172766,JSON[_0xa2da('0x1f')](_0x742252));_0x155f63(_0x742252);})[_0xa2da('0x14')](function(_0x4ee34a){logger[_0xa2da('0x11')](_0xa2da('0x20'),_0x4ee34a['message'],_0x172766);_0x4e17b1(_0x3de772[_0xa2da('0x11')](0x1f4,_0x4ee34a[_0xa2da('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./intSalesforceConfiguration.controller','get','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','put','update','exports','multer','util','path'];(function(_0x4557ee,_0x23f2f6){var _0x446902=function(_0x3b70dc){while(--_0x3b70dc){_0x4557ee['push'](_0x4557ee['shift']());}};_0x446902(++_0x23f2f6);}(_0x2ef3,0xba));var _0x32ef=function(_0x30f48f,_0x8767c2){_0x30f48f=_0x30f48f-0x0;var _0x32cc90=_0x2ef3[_0x30f48f];return _0x32cc90;};'use strict';var multer=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var path=require(_0x32ef('0x2'));var timeout=require(_0x32ef('0x3'));var express=require(_0x32ef('0x4'));var router=express[_0x32ef('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x32ef('0x6'));var interaction=require(_0x32ef('0x7'));var config=require('../../config/environment');var controller=require(_0x32ef('0x8'));router[_0x32ef('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x32ef('0x9')](_0x32ef('0xa'),auth[_0x32ef('0xb')](),controller[_0x32ef('0xc')]);router[_0x32ef('0x9')](_0x32ef('0xd'),auth[_0x32ef('0xb')](),controller[_0x32ef('0xe')]);router[_0x32ef('0x9')](_0x32ef('0xf'),auth['isAuthenticated'](),controller['getSubjects']);router[_0x32ef('0x9')](_0x32ef('0x10'),auth[_0x32ef('0xb')](),controller[_0x32ef('0x11')]);router['post']('/',auth[_0x32ef('0xb')](),controller['create']);router[_0x32ef('0x12')]('/:id',auth[_0x32ef('0xb')](),controller[_0x32ef('0x13')]);router['delete']('/:id',auth[_0x32ef('0xb')](),controller['destroy']);module[_0x32ef('0x14')]=router;
\ No newline at end of file
+var _0x0b0e=['post','create','put','/:id','update','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceConfiguration.controller','get','isAuthenticated','index','show','/:id/fields','/:id/subjects','getSubjects','getDescriptions'];(function(_0x47b58b,_0x41a189){var _0x46bebe=function(_0x22bbfa){while(--_0x22bbfa){_0x47b58b['push'](_0x47b58b['shift']());}};_0x46bebe(++_0x41a189);}(_0x0b0e,0x187));var _0xe0b0=function(_0x1faaa1,_0x1568dd){_0x1faaa1=_0x1faaa1-0x0;var _0x994ec=_0x0b0e[_0x1faaa1];return _0x994ec;};'use strict';var multer=require(_0xe0b0('0x0'));var util=require('util');var path=require(_0xe0b0('0x1'));var timeout=require('connect-timeout');var express=require(_0xe0b0('0x2'));var router=express[_0xe0b0('0x3')]();var fs_extra=require(_0xe0b0('0x4'));var auth=require(_0xe0b0('0x5'));var interaction=require(_0xe0b0('0x6'));var config=require(_0xe0b0('0x7'));var controller=require(_0xe0b0('0x8'));router[_0xe0b0('0x9')]('/',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0xb')]);router[_0xe0b0('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xe0b0('0xc')]);router[_0xe0b0('0x9')](_0xe0b0('0xd'),auth[_0xe0b0('0xa')](),controller['getFields']);router[_0xe0b0('0x9')](_0xe0b0('0xe'),auth['isAuthenticated'](),controller[_0xe0b0('0xf')]);router[_0xe0b0('0x9')]('/:id/descriptions',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x10')]);router[_0xe0b0('0x11')]('/',auth['isAuthenticated'](),controller[_0xe0b0('0x12')]);router[_0xe0b0('0x13')](_0xe0b0('0x14'),auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x15')]);router['delete'](_0xe0b0('0x14'),auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x16')]);module[_0xe0b0('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95f8=['lead','account_contact_lead','sequelize','STRING','ENUM','Task','Case','contact_lead','contact'];(function(_0x737a1f,_0x235fef){var _0x16eba1=function(_0x292aa8){while(--_0x292aa8){_0x737a1f['push'](_0x737a1f['shift']());}};_0x16eba1(++_0x235fef);}(_0x95f8,0x1a9));var _0x895f=function(_0xcf15d7,_0x405a21){_0xcf15d7=_0xcf15d7-0x0;var _0x299737=_0x95f8[_0xcf15d7];return _0x299737;};'use strict';var Sequelize=require(_0x895f('0x0'));module['exports']={'name':{'type':Sequelize[_0x895f('0x1')]},'description':{'type':Sequelize[_0x895f('0x1')]},'ticketType':{'type':Sequelize[_0x895f('0x2')](_0x895f('0x3'),_0x895f('0x4')),'defaultValue':'Task'},'moduleSearch':{'type':Sequelize[_0x895f('0x2')](_0x895f('0x5'),_0x895f('0x6'),_0x895f('0x7'),_0x895f('0x8'),'account'),'defaultValue':_0x895f('0x5')},'moduleCreate':{'type':Sequelize[_0x895f('0x2')]('nothing',_0x895f('0x6'),_0x895f('0x7'),'account'),'defaultValue':'lead'},'leadId':{'type':Sequelize[_0x895f('0x1')]},'additionalSearchAccount':{'type':Sequelize['STRING']},'additionalSearchContact':{'type':Sequelize[_0x895f('0x1')]},'additionalSearchLead':{'type':Sequelize[_0x895f('0x1')]}};
\ No newline at end of file
+var _0xfc90=['contact_lead','contact','account_contact_lead','account','lead','STRING','ENUM','Case','Task'];(function(_0x5ecfa8,_0x4a1de2){var _0x4d8897=function(_0x28653d){while(--_0x28653d){_0x5ecfa8['push'](_0x5ecfa8['shift']());}};_0x4d8897(++_0x4a1de2);}(_0xfc90,0xf8));var _0x0fc9=function(_0x4f7deb,_0x1b3e20){_0x4f7deb=_0x4f7deb-0x0;var _0x5c93f9=_0xfc90[_0x4f7deb];return _0x5c93f9;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x0fc9('0x0')]},'ticketType':{'type':Sequelize[_0x0fc9('0x1')]('Task',_0x0fc9('0x2')),'defaultValue':_0x0fc9('0x3')},'moduleSearch':{'type':Sequelize[_0x0fc9('0x1')](_0x0fc9('0x4'),_0x0fc9('0x5'),'lead',_0x0fc9('0x6'),_0x0fc9('0x7')),'defaultValue':_0x0fc9('0x4')},'moduleCreate':{'type':Sequelize[_0x0fc9('0x1')]('nothing',_0x0fc9('0x5'),_0x0fc9('0x8'),'account'),'defaultValue':_0x0fc9('0x8')},'leadId':{'type':Sequelize[_0x0fc9('0x0')]},'additionalSearchAccount':{'type':Sequelize[_0x0fc9('0x0')]},'additionalSearchContact':{'type':Sequelize['STRING']},'additionalSearchLead':{'type':Sequelize[_0x0fc9('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf958=['desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','limit','count','status','Content-Range','apply','save','update','destroy','then','stack','name','send','index','map','SalesforceConfiguration','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','options','includeAll','include','findAll','rows','show','params','merge','catch','create','body','findOne','rawAttributes','getFields','getSubjects','getDescriptions','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce'];(function(_0x40a825,_0x3bac79){var _0x273a54=function(_0x5628d8){while(--_0x5628d8){_0x40a825['push'](_0x40a825['shift']());}};_0x273a54(++_0x3bac79);}(_0xf958,0x1c0));var _0x8f95=function(_0x37f503,_0xace073){_0x37f503=_0x37f503-0x0;var _0x1f2afe=_0xf958[_0x37f503];return _0x1f2afe;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x8f95('0x0'));var rp=require(_0x8f95('0x1'));var moment=require(_0x8f95('0x2'));var BPromise=require(_0x8f95('0x3'));var Mustache=require(_0x8f95('0x4'));var util=require(_0x8f95('0x5'));var path=require('path');var sox=require(_0x8f95('0x6'));var csv=require(_0x8f95('0x7'));var ejs=require(_0x8f95('0x8'));var fs=require('fs');var fs_extra=require(_0x8f95('0x9'));var _=require(_0x8f95('0xa'));var squel=require(_0x8f95('0xb'));var crypto=require(_0x8f95('0xc'));var jsforce=require(_0x8f95('0xd'));var deskjs=require(_0x8f95('0xe'));var toCsv=require(_0x8f95('0x7'));var querystring=require('querystring');var Papa=require(_0x8f95('0xf'));var Redis=require('ioredis');var authService=require(_0x8f95('0x10'));var qs=require(_0x8f95('0x11'));var as=require(_0x8f95('0x12'));var hardwareService=require(_0x8f95('0x13'));var logger=require('../../config/logger')(_0x8f95('0x14'));var utils=require(_0x8f95('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x8f95('0x16'));var db=require(_0x8f95('0x17'))['db'];function respondWithStatusCode(_0x4089ce,_0x360523){_0x360523=_0x360523||0xcc;return function(_0x53897e){if(_0x53897e){return _0x4089ce[_0x8f95('0x18')](_0x360523);}return _0x4089ce['status'](_0x360523)[_0x8f95('0x19')]();};}function respondWithResult(_0x5e7b50,_0x19d0fc){_0x19d0fc=_0x19d0fc||0xc8;return function(_0x3c665f){if(_0x3c665f){return _0x5e7b50['status'](_0x19d0fc)[_0x8f95('0x1a')](_0x3c665f);}};}function respondWithFilteredResult(_0x4af84f,_0x2051ca){return function(_0x5c675a){if(_0x5c675a){var _0x2ff25d=typeof _0x2051ca[_0x8f95('0x1b')]===_0x8f95('0x1c')&&typeof _0x2051ca[_0x8f95('0x1d')]==='undefined';var _0x242b26=_0x5c675a[_0x8f95('0x1e')];var _0x7b64bf=_0x2ff25d?0x0:_0x2051ca[_0x8f95('0x1b')];var _0x4dacb1=_0x2ff25d?_0x5c675a[_0x8f95('0x1e')]:_0x2051ca[_0x8f95('0x1b')]+_0x2051ca['limit'];var _0x18e43d;if(_0x4dacb1>=_0x242b26){_0x4dacb1=_0x242b26;_0x18e43d=0xc8;}else{_0x18e43d=0xce;}_0x4af84f[_0x8f95('0x1f')](_0x18e43d);return _0x4af84f['set'](_0x8f95('0x20'),_0x7b64bf+'-'+_0x4dacb1+'/'+_0x242b26)[_0x8f95('0x1a')](_0x5c675a);}return null;};}function patchUpdates(_0x78e30a){return function(_0x353c14){try{jsonpatch[_0x8f95('0x21')](_0x353c14,_0x78e30a,!![]);}catch(_0x19899a){return BPromise['reject'](_0x19899a);}return _0x353c14[_0x8f95('0x22')]();};}function saveUpdates(_0xc99d55,_0x4535b1){return function(_0xc6d696){if(_0xc6d696){return _0xc6d696[_0x8f95('0x23')](_0xc99d55)['then'](function(_0x315c18){return _0x315c18;});}return null;};}function removeEntity(_0xf14011,_0x3f083d){return function(_0x180b27){if(_0x180b27){return _0x180b27[_0x8f95('0x24')]()[_0x8f95('0x25')](function(){_0xf14011[_0x8f95('0x1f')](0xcc)[_0x8f95('0x19')]();});}};}function handleEntityNotFound(_0x5afc6a,_0x345b33){return function(_0x2edf2c){if(!_0x2edf2c){_0x5afc6a['sendStatus'](0x194);}return _0x2edf2c;};}function handleError(_0x8a0fbc,_0x568a6a){_0x568a6a=_0x568a6a||0x1f4;return function(_0x2df6bd){logger['error'](_0x2df6bd[_0x8f95('0x26')]);if(_0x2df6bd[_0x8f95('0x27')]){delete _0x2df6bd[_0x8f95('0x27')];}_0x8a0fbc[_0x8f95('0x1f')](_0x568a6a)[_0x8f95('0x28')](_0x2df6bd);};}exports[_0x8f95('0x29')]=function(_0x4941d1,_0x401c4d){var _0xdff317={},_0x3062d8={},_0x52d63b={'count':0x0,'rows':[]};var _0x1f5209=_[_0x8f95('0x2a')](db[_0x8f95('0x2b')]['rawAttributes'],function(_0x5ef363){return{'name':_0x5ef363['fieldName'],'type':_0x5ef363[_0x8f95('0x2c')][_0x8f95('0x2d')]};});_0x3062d8['model']=_[_0x8f95('0x2a')](_0x1f5209,'name');_0x3062d8[_0x8f95('0x2e')]=_[_0x8f95('0x2f')](_0x4941d1[_0x8f95('0x2e')]);_0x3062d8[_0x8f95('0x30')]=_[_0x8f95('0x31')](_0x3062d8[_0x8f95('0x32')],_0x3062d8[_0x8f95('0x2e')]);_0xdff317[_0x8f95('0x33')]=_['intersection'](_0x3062d8[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x34')]));_0xdff317[_0x8f95('0x33')]=_0xdff317['attributes'][_0x8f95('0x35')]?_0xdff317['attributes']:_0x3062d8[_0x8f95('0x32')];if(!_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x36')](_0x8f95('0x37'))){_0xdff317['limit']=qs[_0x8f95('0x1d')](_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x1d')]);_0xdff317['offset']=qs['offset'](_0x4941d1['query']['offset']);}_0xdff317[_0x8f95('0x38')]=qs['sort'](_0x4941d1['query'][_0x8f95('0x39')]);_0xdff317['where']=qs[_0x8f95('0x30')](_[_0x8f95('0x3a')](_0x4941d1['query'],_0x3062d8[_0x8f95('0x30')]),_0x1f5209);if(_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0xdff317[_0x8f95('0x3c')]=_['merge'](_0xdff317[_0x8f95('0x3c')],{'$or':_['map'](_0x1f5209,function(_0x1f7122){if(_0x1f7122[_0x8f95('0x2c')]!=='VIRTUAL'){var _0x2b230d={};_0x2b230d[_0x1f7122[_0x8f95('0x27')]]={'$like':'%'+_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x3b')]+'%'};return _0x2b230d;}})});}_0xdff317=_['merge']({},_0xdff317,_0x4941d1[_0x8f95('0x3d')]);var _0x53d79f={'where':_0xdff317[_0x8f95('0x3c')]};return db[_0x8f95('0x2b')][_0x8f95('0x1e')](_0x53d79f)[_0x8f95('0x25')](function(_0xa10690){_0x52d63b[_0x8f95('0x1e')]=_0xa10690;if(_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x3e')]){_0xdff317[_0x8f95('0x3f')]=[{'all':!![]}];}return db[_0x8f95('0x2b')][_0x8f95('0x40')](_0xdff317);})[_0x8f95('0x25')](function(_0x2b1fff){_0x52d63b[_0x8f95('0x41')]=_0x2b1fff;return _0x52d63b;})[_0x8f95('0x25')](respondWithFilteredResult(_0x401c4d,_0xdff317))['catch'](handleError(_0x401c4d,null));};exports[_0x8f95('0x42')]=function(_0xfd87f5,_0x4e43d6){var _0x2aa35c={'raw':![],'where':{'id':_0xfd87f5[_0x8f95('0x43')]['id']}},_0x5ba117={};_0x5ba117[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db[_0x8f95('0x2b')]['rawAttributes']);_0x5ba117['query']=_[_0x8f95('0x2f')](_0xfd87f5[_0x8f95('0x2e')]);_0x5ba117['filters']=_[_0x8f95('0x31')](_0x5ba117[_0x8f95('0x32')],_0x5ba117[_0x8f95('0x2e')]);_0x2aa35c[_0x8f95('0x33')]=_[_0x8f95('0x31')](_0x5ba117[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0xfd87f5[_0x8f95('0x2e')][_0x8f95('0x34')]));_0x2aa35c[_0x8f95('0x33')]=_0x2aa35c[_0x8f95('0x33')][_0x8f95('0x35')]?_0x2aa35c[_0x8f95('0x33')]:_0x5ba117['model'];if(_0xfd87f5[_0x8f95('0x2e')][_0x8f95('0x3e')]){_0x2aa35c[_0x8f95('0x3f')]=[{'all':!![]}];}_0x2aa35c=_[_0x8f95('0x44')]({},_0x2aa35c,_0xfd87f5[_0x8f95('0x3d')]);return db[_0x8f95('0x2b')]['find'](_0x2aa35c)['then'](handleEntityNotFound(_0x4e43d6,null))['then'](respondWithResult(_0x4e43d6,null))[_0x8f95('0x45')](handleError(_0x4e43d6,null));};exports[_0x8f95('0x46')]=function(_0x96d618,_0x24d419){return db[_0x8f95('0x2b')][_0x8f95('0x46')](_0x96d618[_0x8f95('0x47')],{})['then'](respondWithResult(_0x24d419,0xc9))[_0x8f95('0x45')](handleError(_0x24d419,null));};exports['update']=function(_0xfa045d,_0x19b1f1){if(_0xfa045d[_0x8f95('0x47')]['id']){delete _0xfa045d[_0x8f95('0x47')]['id'];}return db[_0x8f95('0x2b')]['find']({'where':{'id':_0xfa045d[_0x8f95('0x43')]['id']}})['then'](handleEntityNotFound(_0x19b1f1,null))[_0x8f95('0x25')](saveUpdates(_0xfa045d['body'],null))[_0x8f95('0x25')](respondWithResult(_0x19b1f1,null))['catch'](handleError(_0x19b1f1,null));};exports[_0x8f95('0x24')]=function(_0x426aa4,_0x4b8cd9){return db[_0x8f95('0x2b')]['find']({'where':{'id':_0x426aa4[_0x8f95('0x43')]['id']}})[_0x8f95('0x25')](handleEntityNotFound(_0x4b8cd9,null))['then'](removeEntity(_0x4b8cd9,null))[_0x8f95('0x45')](handleError(_0x4b8cd9,null));};exports['getFields']=function(_0x587a11,_0x24b618,_0xaa0945){var _0xe2a725={};var _0x1036ba={};var _0xf1a662;var _0x3e87f3;return db[_0x8f95('0x2b')][_0x8f95('0x48')]({'where':{'id':_0x587a11['params']['id']}})[_0x8f95('0x25')](handleEntityNotFound(_0x24b618,null))[_0x8f95('0x25')](function(_0x41eacd){if(_0x41eacd){_0xf1a662=_0x41eacd;_0x1036ba[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db['SalesforceField'][_0x8f95('0x49')]);_0x1036ba[_0x8f95('0x2e')]=_[_0x8f95('0x2f')](_0x587a11[_0x8f95('0x2e')]);_0x1036ba['filters']=_['intersection'](_0x1036ba[_0x8f95('0x32')],_0x1036ba[_0x8f95('0x2e')]);_0xe2a725['attributes']=_['intersection'](_0x1036ba[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x587a11[_0x8f95('0x2e')]['fields']));_0xe2a725[_0x8f95('0x33')]=_0xe2a725['attributes'][_0x8f95('0x35')]?_0xe2a725[_0x8f95('0x33')]:_0x1036ba[_0x8f95('0x32')];_0xe2a725['order']=qs['sort'](_0x587a11[_0x8f95('0x2e')][_0x8f95('0x39')]);_0xe2a725[_0x8f95('0x3c')]=qs[_0x8f95('0x30')](_['pick'](_0x587a11[_0x8f95('0x2e')],_0x1036ba['filters']));if(_0x587a11[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0xe2a725[_0x8f95('0x3c')]=_[_0x8f95('0x44')](_0xe2a725['where'],{'$or':_[_0x8f95('0x2a')](_0xe2a725['attributes'],function(_0x338c85){var _0x2280c5={};_0x2280c5[_0x338c85]={'$like':'%'+_0x587a11[_0x8f95('0x2e')][_0x8f95('0x3b')]+'%'};return _0x2280c5;})});}_0xe2a725=_[_0x8f95('0x44')]({},_0xe2a725,_0x587a11[_0x8f95('0x3d')]);return _0xf1a662[_0x8f95('0x4a')](_0xe2a725);}})[_0x8f95('0x25')](function(_0x5a5b62){if(_0x5a5b62){_0x3e87f3=_0x5a5b62[_0x8f95('0x35')];if(!_0x587a11[_0x8f95('0x2e')]['hasOwnProperty'](_0x8f95('0x37'))){_0xe2a725['limit']=qs[_0x8f95('0x1d')](_0x587a11['query'][_0x8f95('0x1d')]);_0xe2a725['offset']=qs['offset'](_0x587a11[_0x8f95('0x2e')][_0x8f95('0x1b')]);}return _0xf1a662[_0x8f95('0x4a')](_0xe2a725);}})[_0x8f95('0x25')](function(_0x2b01f2){if(_0x2b01f2){return _0x2b01f2?{'count':_0x3e87f3,'rows':_0x2b01f2}:null;}})[_0x8f95('0x25')](respondWithResult(_0x24b618,null))[_0x8f95('0x45')](handleError(_0x24b618,null));};exports[_0x8f95('0x4b')]=function(_0x45e5a9,_0x12f043,_0x505228){var _0x2f9ab6={};var _0x32e1dd={};var _0x5609d9;var _0x245ee8;return db[_0x8f95('0x2b')][_0x8f95('0x48')]({'where':{'id':_0x45e5a9[_0x8f95('0x43')]['id']}})['then'](handleEntityNotFound(_0x12f043,null))[_0x8f95('0x25')](function(_0x42300c){if(_0x42300c){_0x5609d9=_0x42300c;_0x32e1dd[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db['SalesforceField'][_0x8f95('0x49')]);_0x32e1dd[_0x8f95('0x2e')]=_['keys'](_0x45e5a9[_0x8f95('0x2e')]);_0x32e1dd[_0x8f95('0x30')]=_[_0x8f95('0x31')](_0x32e1dd[_0x8f95('0x32')],_0x32e1dd[_0x8f95('0x2e')]);_0x2f9ab6[_0x8f95('0x33')]=_[_0x8f95('0x31')](_0x32e1dd[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x34')]));_0x2f9ab6[_0x8f95('0x33')]=_0x2f9ab6[_0x8f95('0x33')][_0x8f95('0x35')]?_0x2f9ab6[_0x8f95('0x33')]:_0x32e1dd[_0x8f95('0x32')];_0x2f9ab6[_0x8f95('0x38')]=qs['sort'](_0x45e5a9[_0x8f95('0x2e')]['sort']);_0x2f9ab6[_0x8f95('0x3c')]=qs[_0x8f95('0x30')](_['pick'](_0x45e5a9[_0x8f95('0x2e')],_0x32e1dd['filters']));if(_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0x2f9ab6[_0x8f95('0x3c')]=_[_0x8f95('0x44')](_0x2f9ab6[_0x8f95('0x3c')],{'$or':_['map'](_0x2f9ab6['attributes'],function(_0x3ad945){var _0xbb9ee={};_0xbb9ee[_0x3ad945]={'$like':'%'+_0x45e5a9[_0x8f95('0x2e')]['filter']+'%'};return _0xbb9ee;})});}_0x2f9ab6=_[_0x8f95('0x44')]({},_0x2f9ab6,_0x45e5a9[_0x8f95('0x3d')]);return _0x5609d9[_0x8f95('0x4b')](_0x2f9ab6);}})['then'](function(_0x1fe057){if(_0x1fe057){_0x245ee8=_0x1fe057[_0x8f95('0x35')];if(!_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x36')](_0x8f95('0x37'))){_0x2f9ab6['limit']=qs[_0x8f95('0x1d')](_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x1d')]);_0x2f9ab6['offset']=qs['offset'](_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x1b')]);}return _0x5609d9[_0x8f95('0x4b')](_0x2f9ab6);}})[_0x8f95('0x25')](function(_0x2f5339){if(_0x2f5339){return _0x2f5339?{'count':_0x245ee8,'rows':_0x2f5339}:null;}})['then'](respondWithResult(_0x12f043,null))[_0x8f95('0x45')](handleError(_0x12f043,null));};exports[_0x8f95('0x4c')]=function(_0x5a48e8,_0x38cc05,_0x2f5b23){var _0x4d5cee={};var _0x16ad60={};var _0x3e8292;var _0x3df8b3;return db[_0x8f95('0x2b')][_0x8f95('0x48')]({'where':{'id':_0x5a48e8[_0x8f95('0x43')]['id']}})['then'](handleEntityNotFound(_0x38cc05,null))[_0x8f95('0x25')](function(_0x40875d){if(_0x40875d){_0x3e8292=_0x40875d;_0x16ad60[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db['SalesforceField'][_0x8f95('0x49')]);_0x16ad60[_0x8f95('0x2e')]=_['keys'](_0x5a48e8['query']);_0x16ad60[_0x8f95('0x30')]=_[_0x8f95('0x31')](_0x16ad60[_0x8f95('0x32')],_0x16ad60[_0x8f95('0x2e')]);_0x4d5cee[_0x8f95('0x33')]=_[_0x8f95('0x31')](_0x16ad60[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x5a48e8['query'][_0x8f95('0x34')]));_0x4d5cee['attributes']=_0x4d5cee[_0x8f95('0x33')][_0x8f95('0x35')]?_0x4d5cee['attributes']:_0x16ad60[_0x8f95('0x32')];_0x4d5cee[_0x8f95('0x38')]=qs['sort'](_0x5a48e8[_0x8f95('0x2e')]['sort']);_0x4d5cee[_0x8f95('0x3c')]=qs[_0x8f95('0x30')](_['pick'](_0x5a48e8[_0x8f95('0x2e')],_0x16ad60[_0x8f95('0x30')]));if(_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0x4d5cee['where']=_[_0x8f95('0x44')](_0x4d5cee[_0x8f95('0x3c')],{'$or':_['map'](_0x4d5cee[_0x8f95('0x33')],function(_0x444ffd){var _0x453a61={};_0x453a61[_0x444ffd]={'$like':'%'+_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x3b')]+'%'};return _0x453a61;})});}_0x4d5cee=_[_0x8f95('0x44')]({},_0x4d5cee,_0x5a48e8['options']);return _0x3e8292['getDescriptions'](_0x4d5cee);}})[_0x8f95('0x25')](function(_0xa0954d){if(_0xa0954d){_0x3df8b3=_0xa0954d[_0x8f95('0x35')];if(!_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x36')](_0x8f95('0x37'))){_0x4d5cee[_0x8f95('0x1d')]=qs['limit'](_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x1d')]);_0x4d5cee[_0x8f95('0x1b')]=qs[_0x8f95('0x1b')](_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x1b')]);}return _0x3e8292[_0x8f95('0x4c')](_0x4d5cee);}})[_0x8f95('0x25')](function(_0x434a63){if(_0x434a63){return _0x434a63?{'count':_0x3df8b3,'rows':_0x434a63}:null;}})[_0x8f95('0x25')](respondWithResult(_0x38cc05,null))[_0x8f95('0x45')](handleError(_0x38cc05,null));};
\ No newline at end of file
+var _0xb592=['index','map','SalesforceConfiguration','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','include','then','rows','catch','show','params','options','create','body','find','findOne','SalesforceField','getFields','getSubjects','getDescriptions','eml-format','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','destroy','sendStatus','error','name'];(function(_0x2b577c,_0x12ba5f){var _0x442701=function(_0x28fdfe){while(--_0x28fdfe){_0x2b577c['push'](_0x2b577c['shift']());}};_0x442701(++_0x12ba5f);}(_0xb592,0x10b));var _0x2b59=function(_0x44650b,_0x5af069){_0x44650b=_0x44650b-0x0;var _0x13b205=_0xb592[_0x44650b];return _0x13b205;};'use strict';var emlformat=require(_0x2b59('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2b59('0x1'));var rp=require('request-promise');var moment=require(_0x2b59('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x2b59('0x3'));var util=require(_0x2b59('0x4'));var path=require(_0x2b59('0x5'));var sox=require(_0x2b59('0x6'));var csv=require(_0x2b59('0x7'));var ejs=require(_0x2b59('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x2b59('0x9'));var crypto=require('crypto');var jsforce=require(_0x2b59('0xa'));var deskjs=require(_0x2b59('0xb'));var toCsv=require(_0x2b59('0x7'));var querystring=require(_0x2b59('0xc'));var Papa=require('papaparse');var Redis=require(_0x2b59('0xd'));var authService=require(_0x2b59('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x2b59('0xf'));var hardwareService=require(_0x2b59('0x10'));var logger=require(_0x2b59('0x11'))(_0x2b59('0x12'));var utils=require(_0x2b59('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x2b59('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x18653d,_0x3af1e2){_0x3af1e2=_0x3af1e2||0xcc;return function(_0x2bbf39){if(_0x2bbf39){return _0x18653d['sendStatus'](_0x3af1e2);}return _0x18653d[_0x2b59('0x15')](_0x3af1e2)[_0x2b59('0x16')]();};}function respondWithResult(_0x11c59b,_0x1b56cb){_0x1b56cb=_0x1b56cb||0xc8;return function(_0x1b548c){if(_0x1b548c){return _0x11c59b[_0x2b59('0x15')](_0x1b56cb)['json'](_0x1b548c);}};}function respondWithFilteredResult(_0x355bba,_0x18ee0a){return function(_0x42d5e8){if(_0x42d5e8){var _0x47a6c5=typeof _0x18ee0a[_0x2b59('0x17')]===_0x2b59('0x18')&&typeof _0x18ee0a[_0x2b59('0x19')]===_0x2b59('0x18');var _0x3e1e2f=_0x42d5e8['count'];var _0x22ca4f=_0x47a6c5?0x0:_0x18ee0a[_0x2b59('0x17')];var _0x118d81=_0x47a6c5?_0x42d5e8[_0x2b59('0x1a')]:_0x18ee0a[_0x2b59('0x17')]+_0x18ee0a[_0x2b59('0x19')];var _0x1cfc0e;if(_0x118d81>=_0x3e1e2f){_0x118d81=_0x3e1e2f;_0x1cfc0e=0xc8;}else{_0x1cfc0e=0xce;}_0x355bba[_0x2b59('0x15')](_0x1cfc0e);return _0x355bba[_0x2b59('0x1b')](_0x2b59('0x1c'),_0x22ca4f+'-'+_0x118d81+'/'+_0x3e1e2f)[_0x2b59('0x1d')](_0x42d5e8);}return null;};}function patchUpdates(_0x6d4661){return function(_0x4f202d){try{jsonpatch[_0x2b59('0x1e')](_0x4f202d,_0x6d4661,!![]);}catch(_0x33870b){return BPromise[_0x2b59('0x1f')](_0x33870b);}return _0x4f202d['save']();};}function saveUpdates(_0x17cf0d,_0x2c1808){return function(_0x41637e){if(_0x41637e){return _0x41637e[_0x2b59('0x20')](_0x17cf0d)['then'](function(_0x40427d){return _0x40427d;});}return null;};}function removeEntity(_0x1071f2,_0x59190d){return function(_0x5bd71a){if(_0x5bd71a){return _0x5bd71a[_0x2b59('0x21')]()['then'](function(){_0x1071f2[_0x2b59('0x15')](0xcc)[_0x2b59('0x16')]();});}};}function handleEntityNotFound(_0x47158e,_0x50fa24){return function(_0x1f0879){if(!_0x1f0879){_0x47158e[_0x2b59('0x22')](0x194);}return _0x1f0879;};}function handleError(_0x3fdaa9,_0x31e18f){_0x31e18f=_0x31e18f||0x1f4;return function(_0xf2991e){logger[_0x2b59('0x23')](_0xf2991e['stack']);if(_0xf2991e['name']){delete _0xf2991e[_0x2b59('0x24')];}_0x3fdaa9[_0x2b59('0x15')](_0x31e18f)['send'](_0xf2991e);};}exports[_0x2b59('0x25')]=function(_0x2a4870,_0x3d4982){var _0x2b1b6a={},_0x399294={},_0x2bae18={'count':0x0,'rows':[]};var _0x2a3c77=_[_0x2b59('0x26')](db[_0x2b59('0x27')][_0x2b59('0x28')],function(_0x9d35f){return{'name':_0x9d35f[_0x2b59('0x29')],'type':_0x9d35f[_0x2b59('0x2a')]['key']};});_0x399294[_0x2b59('0x2b')]=_['map'](_0x2a3c77,_0x2b59('0x24'));_0x399294[_0x2b59('0x2c')]=_[_0x2b59('0x2d')](_0x2a4870[_0x2b59('0x2c')]);_0x399294[_0x2b59('0x2e')]=_[_0x2b59('0x2f')](_0x399294['model'],_0x399294['query']);_0x2b1b6a['attributes']=_['intersection'](_0x399294[_0x2b59('0x2b')],qs[_0x2b59('0x30')](_0x2a4870[_0x2b59('0x2c')][_0x2b59('0x30')]));_0x2b1b6a[_0x2b59('0x31')]=_0x2b1b6a[_0x2b59('0x31')][_0x2b59('0x32')]?_0x2b1b6a[_0x2b59('0x31')]:_0x399294[_0x2b59('0x2b')];if(!_0x2a4870[_0x2b59('0x2c')][_0x2b59('0x33')](_0x2b59('0x34'))){_0x2b1b6a[_0x2b59('0x19')]=qs[_0x2b59('0x19')](_0x2a4870['query'][_0x2b59('0x19')]);_0x2b1b6a[_0x2b59('0x17')]=qs[_0x2b59('0x17')](_0x2a4870[_0x2b59('0x2c')][_0x2b59('0x17')]);}_0x2b1b6a[_0x2b59('0x35')]=qs['sort'](_0x2a4870[_0x2b59('0x2c')][_0x2b59('0x36')]);_0x2b1b6a[_0x2b59('0x37')]=qs[_0x2b59('0x2e')](_[_0x2b59('0x38')](_0x2a4870[_0x2b59('0x2c')],_0x399294[_0x2b59('0x2e')]),_0x2a3c77);if(_0x2a4870[_0x2b59('0x2c')]['filter']){_0x2b1b6a[_0x2b59('0x37')]=_[_0x2b59('0x39')](_0x2b1b6a[_0x2b59('0x37')],{'$or':_[_0x2b59('0x26')](_0x2a3c77,function(_0x11d534){if(_0x11d534[_0x2b59('0x2a')]!==_0x2b59('0x3a')){var _0x58051c={};_0x58051c[_0x11d534[_0x2b59('0x24')]]={'$like':'%'+_0x2a4870['query'][_0x2b59('0x3b')]+'%'};return _0x58051c;}})});}_0x2b1b6a=_['merge']({},_0x2b1b6a,_0x2a4870['options']);var _0x4cd319={'where':_0x2b1b6a['where']};return db['SalesforceConfiguration']['count'](_0x4cd319)['then'](function(_0x2392aa){_0x2bae18[_0x2b59('0x1a')]=_0x2392aa;if(_0x2a4870['query'][_0x2b59('0x3c')]){_0x2b1b6a[_0x2b59('0x3d')]=[{'all':!![]}];}return db[_0x2b59('0x27')]['findAll'](_0x2b1b6a);})[_0x2b59('0x3e')](function(_0x2a022e){_0x2bae18[_0x2b59('0x3f')]=_0x2a022e;return _0x2bae18;})['then'](respondWithFilteredResult(_0x3d4982,_0x2b1b6a))[_0x2b59('0x40')](handleError(_0x3d4982,null));};exports[_0x2b59('0x41')]=function(_0x3922bc,_0x5bf852){var _0x306fee={'raw':![],'where':{'id':_0x3922bc[_0x2b59('0x42')]['id']}},_0x4f1f86={};_0x4f1f86[_0x2b59('0x2b')]=_[_0x2b59('0x2d')](db[_0x2b59('0x27')][_0x2b59('0x28')]);_0x4f1f86[_0x2b59('0x2c')]=_['keys'](_0x3922bc[_0x2b59('0x2c')]);_0x4f1f86[_0x2b59('0x2e')]=_[_0x2b59('0x2f')](_0x4f1f86[_0x2b59('0x2b')],_0x4f1f86['query']);_0x306fee[_0x2b59('0x31')]=_[_0x2b59('0x2f')](_0x4f1f86[_0x2b59('0x2b')],qs[_0x2b59('0x30')](_0x3922bc[_0x2b59('0x2c')]['fields']));_0x306fee[_0x2b59('0x31')]=_0x306fee[_0x2b59('0x31')][_0x2b59('0x32')]?_0x306fee[_0x2b59('0x31')]:_0x4f1f86[_0x2b59('0x2b')];if(_0x3922bc[_0x2b59('0x2c')][_0x2b59('0x3c')]){_0x306fee['include']=[{'all':!![]}];}_0x306fee=_[_0x2b59('0x39')]({},_0x306fee,_0x3922bc[_0x2b59('0x43')]);return db[_0x2b59('0x27')]['find'](_0x306fee)[_0x2b59('0x3e')](handleEntityNotFound(_0x5bf852,null))[_0x2b59('0x3e')](respondWithResult(_0x5bf852,null))[_0x2b59('0x40')](handleError(_0x5bf852,null));};exports['create']=function(_0x2f73fb,_0x194b1b){return db[_0x2b59('0x27')][_0x2b59('0x44')](_0x2f73fb[_0x2b59('0x45')],{})[_0x2b59('0x3e')](respondWithResult(_0x194b1b,0xc9))[_0x2b59('0x40')](handleError(_0x194b1b,null));};exports[_0x2b59('0x20')]=function(_0x440055,_0x40e469){if(_0x440055['body']['id']){delete _0x440055[_0x2b59('0x45')]['id'];}return db[_0x2b59('0x27')][_0x2b59('0x46')]({'where':{'id':_0x440055[_0x2b59('0x42')]['id']}})[_0x2b59('0x3e')](handleEntityNotFound(_0x40e469,null))[_0x2b59('0x3e')](saveUpdates(_0x440055[_0x2b59('0x45')],null))[_0x2b59('0x3e')](respondWithResult(_0x40e469,null))[_0x2b59('0x40')](handleError(_0x40e469,null));};exports[_0x2b59('0x21')]=function(_0x1e8138,_0x16f6b8){return db['SalesforceConfiguration'][_0x2b59('0x46')]({'where':{'id':_0x1e8138[_0x2b59('0x42')]['id']}})[_0x2b59('0x3e')](handleEntityNotFound(_0x16f6b8,null))['then'](removeEntity(_0x16f6b8,null))[_0x2b59('0x40')](handleError(_0x16f6b8,null));};exports['getFields']=function(_0x3415d8,_0x69b534,_0x57d60f){var _0x260cc9={};var _0x25ccd7={};var _0x3559d8;var _0x5e6b46;return db[_0x2b59('0x27')][_0x2b59('0x47')]({'where':{'id':_0x3415d8[_0x2b59('0x42')]['id']}})[_0x2b59('0x3e')](handleEntityNotFound(_0x69b534,null))['then'](function(_0x3f836d){if(_0x3f836d){_0x3559d8=_0x3f836d;_0x25ccd7[_0x2b59('0x2b')]=_[_0x2b59('0x2d')](db[_0x2b59('0x48')][_0x2b59('0x28')]);_0x25ccd7[_0x2b59('0x2c')]=_[_0x2b59('0x2d')](_0x3415d8['query']);_0x25ccd7[_0x2b59('0x2e')]=_['intersection'](_0x25ccd7[_0x2b59('0x2b')],_0x25ccd7[_0x2b59('0x2c')]);_0x260cc9[_0x2b59('0x31')]=_[_0x2b59('0x2f')](_0x25ccd7['model'],qs[_0x2b59('0x30')](_0x3415d8[_0x2b59('0x2c')][_0x2b59('0x30')]));_0x260cc9[_0x2b59('0x31')]=_0x260cc9[_0x2b59('0x31')]['length']?_0x260cc9['attributes']:_0x25ccd7[_0x2b59('0x2b')];_0x260cc9[_0x2b59('0x35')]=qs[_0x2b59('0x36')](_0x3415d8[_0x2b59('0x2c')][_0x2b59('0x36')]);_0x260cc9[_0x2b59('0x37')]=qs[_0x2b59('0x2e')](_[_0x2b59('0x38')](_0x3415d8[_0x2b59('0x2c')],_0x25ccd7[_0x2b59('0x2e')]));if(_0x3415d8['query']['filter']){_0x260cc9[_0x2b59('0x37')]=_[_0x2b59('0x39')](_0x260cc9[_0x2b59('0x37')],{'$or':_[_0x2b59('0x26')](_0x260cc9[_0x2b59('0x31')],function(_0x523717){var _0x15bcb7={};_0x15bcb7[_0x523717]={'$like':'%'+_0x3415d8[_0x2b59('0x2c')][_0x2b59('0x3b')]+'%'};return _0x15bcb7;})});}_0x260cc9=_['merge']({},_0x260cc9,_0x3415d8[_0x2b59('0x43')]);return _0x3559d8[_0x2b59('0x49')](_0x260cc9);}})[_0x2b59('0x3e')](function(_0xcdc13c){if(_0xcdc13c){_0x5e6b46=_0xcdc13c[_0x2b59('0x32')];if(!_0x3415d8['query'][_0x2b59('0x33')](_0x2b59('0x34'))){_0x260cc9[_0x2b59('0x19')]=qs['limit'](_0x3415d8[_0x2b59('0x2c')][_0x2b59('0x19')]);_0x260cc9[_0x2b59('0x17')]=qs[_0x2b59('0x17')](_0x3415d8[_0x2b59('0x2c')]['offset']);}return _0x3559d8['getFields'](_0x260cc9);}})[_0x2b59('0x3e')](function(_0x21f4a6){if(_0x21f4a6){return _0x21f4a6?{'count':_0x5e6b46,'rows':_0x21f4a6}:null;}})[_0x2b59('0x3e')](respondWithResult(_0x69b534,null))['catch'](handleError(_0x69b534,null));};exports[_0x2b59('0x4a')]=function(_0x2733e6,_0x1c9a60,_0x1d9718){var _0x107a91={};var _0x2713c7={};var _0x3b6db9;var _0x11fe1a;return db['SalesforceConfiguration'][_0x2b59('0x47')]({'where':{'id':_0x2733e6[_0x2b59('0x42')]['id']}})[_0x2b59('0x3e')](handleEntityNotFound(_0x1c9a60,null))['then'](function(_0x284829){if(_0x284829){_0x3b6db9=_0x284829;_0x2713c7[_0x2b59('0x2b')]=_[_0x2b59('0x2d')](db[_0x2b59('0x48')]['rawAttributes']);_0x2713c7[_0x2b59('0x2c')]=_[_0x2b59('0x2d')](_0x2733e6[_0x2b59('0x2c')]);_0x2713c7['filters']=_[_0x2b59('0x2f')](_0x2713c7[_0x2b59('0x2b')],_0x2713c7['query']);_0x107a91[_0x2b59('0x31')]=_['intersection'](_0x2713c7[_0x2b59('0x2b')],qs['fields'](_0x2733e6[_0x2b59('0x2c')][_0x2b59('0x30')]));_0x107a91['attributes']=_0x107a91[_0x2b59('0x31')][_0x2b59('0x32')]?_0x107a91[_0x2b59('0x31')]:_0x2713c7[_0x2b59('0x2b')];_0x107a91[_0x2b59('0x35')]=qs['sort'](_0x2733e6[_0x2b59('0x2c')][_0x2b59('0x36')]);_0x107a91[_0x2b59('0x37')]=qs[_0x2b59('0x2e')](_['pick'](_0x2733e6[_0x2b59('0x2c')],_0x2713c7[_0x2b59('0x2e')]));if(_0x2733e6['query']['filter']){_0x107a91[_0x2b59('0x37')]=_[_0x2b59('0x39')](_0x107a91[_0x2b59('0x37')],{'$or':_['map'](_0x107a91[_0x2b59('0x31')],function(_0x54711a){var _0x3bf128={};_0x3bf128[_0x54711a]={'$like':'%'+_0x2733e6[_0x2b59('0x2c')][_0x2b59('0x3b')]+'%'};return _0x3bf128;})});}_0x107a91=_[_0x2b59('0x39')]({},_0x107a91,_0x2733e6[_0x2b59('0x43')]);return _0x3b6db9[_0x2b59('0x4a')](_0x107a91);}})[_0x2b59('0x3e')](function(_0x20fffc){if(_0x20fffc){_0x11fe1a=_0x20fffc[_0x2b59('0x32')];if(!_0x2733e6[_0x2b59('0x2c')][_0x2b59('0x33')](_0x2b59('0x34'))){_0x107a91[_0x2b59('0x19')]=qs[_0x2b59('0x19')](_0x2733e6['query'][_0x2b59('0x19')]);_0x107a91['offset']=qs[_0x2b59('0x17')](_0x2733e6[_0x2b59('0x2c')][_0x2b59('0x17')]);}return _0x3b6db9[_0x2b59('0x4a')](_0x107a91);}})[_0x2b59('0x3e')](function(_0x20818f){if(_0x20818f){return _0x20818f?{'count':_0x11fe1a,'rows':_0x20818f}:null;}})[_0x2b59('0x3e')](respondWithResult(_0x1c9a60,null))[_0x2b59('0x40')](handleError(_0x1c9a60,null));};exports['getDescriptions']=function(_0x27a42a,_0x330118,_0x46a104){var _0x865ff5={};var _0x3dcd86={};var _0x52bc0f;var _0x3d2a26;return db[_0x2b59('0x27')]['findOne']({'where':{'id':_0x27a42a['params']['id']}})['then'](handleEntityNotFound(_0x330118,null))[_0x2b59('0x3e')](function(_0x3d5ab1){if(_0x3d5ab1){_0x52bc0f=_0x3d5ab1;_0x3dcd86[_0x2b59('0x2b')]=_['keys'](db[_0x2b59('0x48')][_0x2b59('0x28')]);_0x3dcd86[_0x2b59('0x2c')]=_[_0x2b59('0x2d')](_0x27a42a[_0x2b59('0x2c')]);_0x3dcd86['filters']=_[_0x2b59('0x2f')](_0x3dcd86[_0x2b59('0x2b')],_0x3dcd86[_0x2b59('0x2c')]);_0x865ff5[_0x2b59('0x31')]=_[_0x2b59('0x2f')](_0x3dcd86['model'],qs[_0x2b59('0x30')](_0x27a42a[_0x2b59('0x2c')]['fields']));_0x865ff5[_0x2b59('0x31')]=_0x865ff5[_0x2b59('0x31')]['length']?_0x865ff5[_0x2b59('0x31')]:_0x3dcd86[_0x2b59('0x2b')];_0x865ff5[_0x2b59('0x35')]=qs[_0x2b59('0x36')](_0x27a42a[_0x2b59('0x2c')]['sort']);_0x865ff5[_0x2b59('0x37')]=qs[_0x2b59('0x2e')](_[_0x2b59('0x38')](_0x27a42a[_0x2b59('0x2c')],_0x3dcd86['filters']));if(_0x27a42a[_0x2b59('0x2c')][_0x2b59('0x3b')]){_0x865ff5[_0x2b59('0x37')]=_[_0x2b59('0x39')](_0x865ff5[_0x2b59('0x37')],{'$or':_['map'](_0x865ff5[_0x2b59('0x31')],function(_0xbb322b){var _0x1e3afc={};_0x1e3afc[_0xbb322b]={'$like':'%'+_0x27a42a['query'][_0x2b59('0x3b')]+'%'};return _0x1e3afc;})});}_0x865ff5=_[_0x2b59('0x39')]({},_0x865ff5,_0x27a42a[_0x2b59('0x43')]);return _0x52bc0f['getDescriptions'](_0x865ff5);}})['then'](function(_0x3e2d7b){if(_0x3e2d7b){_0x3d2a26=_0x3e2d7b[_0x2b59('0x32')];if(!_0x27a42a[_0x2b59('0x2c')]['hasOwnProperty'](_0x2b59('0x34'))){_0x865ff5[_0x2b59('0x19')]=qs['limit'](_0x27a42a[_0x2b59('0x2c')][_0x2b59('0x19')]);_0x865ff5[_0x2b59('0x17')]=qs[_0x2b59('0x17')](_0x27a42a[_0x2b59('0x2c')][_0x2b59('0x17')]);}return _0x52bc0f[_0x2b59('0x4b')](_0x865ff5);}})[_0x2b59('0x3e')](function(_0x1bdb65){if(_0x1bdb65){return _0x1bdb65?{'count':_0x3d2a26,'rows':_0x1bdb65}:null;}})[_0x2b59('0x3e')](respondWithResult(_0x330118,null))['catch'](handleError(_0x330118,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d74=['./intSalesforceConfiguration.attributes','exports','define','SalesforceConfiguration','int_salesforce_configurations','lodash','util','moment','request-promise','path','rimraf'];(function(_0x3d53ce,_0x37f563){var _0x510f50=function(_0x28ec63){while(--_0x28ec63){_0x3d53ce['push'](_0x3d53ce['shift']());}};_0x510f50(++_0x37f563);}(_0x3d74,0x7e));var _0x43d7=function(_0x11c59d,_0x79cb4e){_0x11c59d=_0x11c59d-0x0;var _0x2d76f2=_0x3d74[_0x11c59d];return _0x2d76f2;};'use strict';var _=require(_0x43d7('0x0'));var util=require(_0x43d7('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x43d7('0x2'));var BPromise=require('bluebird');var rp=require(_0x43d7('0x3'));var fs=require('fs');var path=require(_0x43d7('0x4'));var rimraf=require(_0x43d7('0x5'));var config=require('../../config/environment');var attributes=require(_0x43d7('0x6'));module[_0x43d7('0x7')]=function(_0x948a79,_0x430329){return _0x948a79[_0x43d7('0x8')](_0x43d7('0x9'),attributes,{'tableName':_0x43d7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x99d7=['SalesforceConfiguration','lodash','../../config/logger','bluebird','request-promise','../../config/environment','./intSalesforceConfiguration.attributes','exports'];(function(_0x45aa18,_0x412fc5){var _0x26119d=function(_0x68dcc6){while(--_0x68dcc6){_0x45aa18['push'](_0x45aa18['shift']());}};_0x26119d(++_0x412fc5);}(_0x99d7,0x129));var _0x799d=function(_0x5bfaa1,_0x1aeaf2){_0x5bfaa1=_0x5bfaa1-0x0;var _0x2a4846=_0x99d7[_0x5bfaa1];return _0x2a4846;};'use strict';var _=require(_0x799d('0x0'));var util=require('util');var logger=require(_0x799d('0x1'))('api');var moment=require('moment');var BPromise=require(_0x799d('0x2'));var rp=require(_0x799d('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x799d('0x4'));var attributes=require(_0x799d('0x5'));module[_0x799d('0x6')]=function(_0x31e504,_0x15002a){return _0x31e504['define'](_0x799d('0x7'),attributes,{'tableName':'int_salesforce_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0223=['error','code','SalesforceConfiguration,\x20%s,\x20%s','message','result','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then','info','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x139f22,_0x370a75){var _0xf1ba93=function(_0x4a6986){while(--_0x4a6986){_0x139f22['push'](_0x139f22['shift']());}};_0xf1ba93(++_0x370a75);}(_0x0223,0x147));var _0x3022=function(_0x2cdd4d,_0x394c2f){_0x2cdd4d=_0x2cdd4d-0x0;var _0x55cbc8=_0x0223[_0x2cdd4d];return _0x55cbc8;};'use strict';var _=require(_0x3022('0x0'));var util=require(_0x3022('0x1'));var moment=require(_0x3022('0x2'));var BPromise=require('bluebird');var rs=require(_0x3022('0x3'));var fs=require('fs');var Redis=require(_0x3022('0x4'));var db=require(_0x3022('0x5'))['db'];var utils=require(_0x3022('0x6'));var logger=require('../../config/logger')(_0x3022('0x7'));var config=require(_0x3022('0x8'));var jayson=require(_0x3022('0x9'));var client=jayson['client'][_0x3022('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x143bad,_0x518a7e,_0x5d2bf7){return new BPromise(function(_0x1f3745,_0x2c0a91){return client[_0x3022('0xb')](_0x143bad,_0x5d2bf7)[_0x3022('0xc')](function(_0x3958c8){logger[_0x3022('0xd')]('SalesforceConfiguration,\x20%s,\x20%s',_0x518a7e,'request\x20sent');logger[_0x3022('0xe')](_0x3022('0xf'),_0x518a7e,_0x3022('0x10'),JSON[_0x3022('0x11')](_0x3958c8));if(_0x3958c8[_0x3022('0x12')]){if(_0x3958c8[_0x3022('0x12')][_0x3022('0x13')]===0x1f4){logger[_0x3022('0x12')](_0x3022('0x14'),_0x518a7e,_0x3958c8[_0x3022('0x12')]['message']);return _0x2c0a91(_0x3958c8[_0x3022('0x12')]['message']);}logger['error']('SalesforceConfiguration,\x20%s,\x20%s',_0x518a7e,_0x3958c8[_0x3022('0x12')][_0x3022('0x15')]);return _0x1f3745(_0x3958c8[_0x3022('0x12')]['message']);}else{logger['info'](_0x3022('0x14'),_0x518a7e,_0x3022('0x10'));_0x1f3745(_0x3958c8[_0x3022('0x16')]['message']);}})['catch'](function(_0x30588a){logger['error'](_0x3022('0x14'),_0x518a7e,_0x30588a);_0x2c0a91(_0x30588a);});});}
\ No newline at end of file
+var _0xd1ee=['result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x5207b3,_0x50a1ef){var _0x59babd=function(_0x2aeeff){while(--_0x2aeeff){_0x5207b3['push'](_0x5207b3['shift']());}};_0x59babd(++_0x50a1ef);}(_0xd1ee,0x1ca));var _0xed1e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd1ee[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xed1e('0x0'));var util=require(_0xed1e('0x1'));var moment=require(_0xed1e('0x2'));var BPromise=require('bluebird');var rs=require(_0xed1e('0x3'));var fs=require('fs');var Redis=require(_0xed1e('0x4'));var db=require(_0xed1e('0x5'))['db'];var utils=require(_0xed1e('0x6'));var logger=require(_0xed1e('0x7'))(_0xed1e('0x8'));var config=require(_0xed1e('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xed1e('0xa')][_0xed1e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x434333,_0x56467d,_0x2d8864){return new BPromise(function(_0xce411,_0x2683c6){return client[_0xed1e('0xc')](_0x434333,_0x2d8864)[_0xed1e('0xd')](function(_0x1381b6){logger['info'](_0xed1e('0xe'),_0x56467d,_0xed1e('0xf'));logger[_0xed1e('0x10')](_0xed1e('0x11'),_0x56467d,_0xed1e('0xf'),JSON[_0xed1e('0x12')](_0x1381b6));if(_0x1381b6[_0xed1e('0x13')]){if(_0x1381b6['error'][_0xed1e('0x14')]===0x1f4){logger['error'](_0xed1e('0xe'),_0x56467d,_0x1381b6[_0xed1e('0x13')][_0xed1e('0x15')]);return _0x2683c6(_0x1381b6[_0xed1e('0x13')][_0xed1e('0x15')]);}logger[_0xed1e('0x13')](_0xed1e('0xe'),_0x56467d,_0x1381b6[_0xed1e('0x13')][_0xed1e('0x15')]);return _0xce411(_0x1381b6[_0xed1e('0x13')][_0xed1e('0x15')]);}else{logger['info'](_0xed1e('0xe'),_0x56467d,'request\x20sent');_0xce411(_0x1381b6[_0xed1e('0x16')][_0xed1e('0x15')]);}})[_0xed1e('0x17')](function(_0x1d20d5){logger[_0xed1e('0x13')]('SalesforceConfiguration,\x20%s,\x20%s',_0x56467d,_0x1d20d5);_0x2683c6(_0x1d20d5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0339=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','show','post','create','put','/:id','delete','destroy','multer','util','path'];(function(_0x1bd5c2,_0x5052b8){var _0x33676d=function(_0x540c7f){while(--_0x540c7f){_0x1bd5c2['push'](_0x1bd5c2['shift']());}};_0x33676d(++_0x5052b8);}(_0x0339,0x151));var _0x9033=function(_0x342f8f,_0x1cd71b){_0x342f8f=_0x342f8f-0x0;var _0x448983=_0x0339[_0x342f8f];return _0x448983;};'use strict';var multer=require(_0x9033('0x0'));var util=require(_0x9033('0x1'));var path=require(_0x9033('0x2'));var timeout=require(_0x9033('0x3'));var express=require(_0x9033('0x4'));var router=express[_0x9033('0x5')]();var fs_extra=require(_0x9033('0x6'));var auth=require(_0x9033('0x7'));var interaction=require(_0x9033('0x8'));var config=require(_0x9033('0x9'));var controller=require('./intSalesforceField.controller');router[_0x9033('0xa')]('/',auth[_0x9033('0xb')](),controller[_0x9033('0xc')]);router[_0x9033('0xa')]('/:id',auth[_0x9033('0xb')](),controller[_0x9033('0xd')]);router[_0x9033('0xe')]('/',auth[_0x9033('0xb')](),controller[_0x9033('0xf')]);router[_0x9033('0x10')](_0x9033('0x11'),auth[_0x9033('0xb')](),controller['update']);router[_0x9033('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x9033('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x80b2=['/:id','show','post','create','put','delete','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index'];(function(_0x57532c,_0x2c75cf){var _0x5cb9a6=function(_0x3a4dea){while(--_0x3a4dea){_0x57532c['push'](_0x57532c['shift']());}};_0x5cb9a6(++_0x2c75cf);}(_0x80b2,0x137));var _0x280b=function(_0x5dbac8,_0x2a86b3){_0x5dbac8=_0x5dbac8-0x0;var _0x4f5535=_0x80b2[_0x5dbac8];return _0x4f5535;};'use strict';var multer=require(_0x280b('0x0'));var util=require(_0x280b('0x1'));var path=require(_0x280b('0x2'));var timeout=require('connect-timeout');var express=require(_0x280b('0x3'));var router=express[_0x280b('0x4')]();var fs_extra=require(_0x280b('0x5'));var auth=require(_0x280b('0x6'));var interaction=require(_0x280b('0x7'));var config=require(_0x280b('0x8'));var controller=require('./intSalesforceField.controller');router[_0x280b('0x9')]('/',auth[_0x280b('0xa')](),controller[_0x280b('0xb')]);router[_0x280b('0x9')](_0x280b('0xc'),auth[_0x280b('0xa')](),controller[_0x280b('0xd')]);router[_0x280b('0xe')]('/',auth[_0x280b('0xa')](),controller[_0x280b('0xf')]);router[_0x280b('0x10')](_0x280b('0xc'),auth[_0x280b('0xa')](),controller['update']);router[_0x280b('0x11')](_0x280b('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0x280b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc445=['sequelize','exports','customVariable','keyValue','picklist','string','STRING','ENUM','variable'];(function(_0x96ad7d,_0x1017ba){var _0x32d63a=function(_0xb47ad9){while(--_0xb47ad9){_0x96ad7d['push'](_0x96ad7d['shift']());}};_0x32d63a(++_0x1017ba);}(_0xc445,0x1dd));var _0x5c44=function(_0xfd495c,_0x4a3c1a){_0xfd495c=_0xfd495c-0x0;var _0x561dd8=_0xc445[_0xfd495c];return _0x561dd8;};'use strict';var Sequelize=require(_0x5c44('0x0'));module[_0x5c44('0x1')]={'type':{'type':Sequelize['ENUM']('string','variable',_0x5c44('0x2'),_0x5c44('0x3'),_0x5c44('0x4')),'defaultValue':_0x5c44('0x5')},'content':{'type':Sequelize[_0x5c44('0x6')]},'key':{'type':Sequelize[_0x5c44('0x6')]},'keyType':{'type':Sequelize[_0x5c44('0x7')](_0x5c44('0x5'),_0x5c44('0x8'),_0x5c44('0x2'))},'keyContent':{'type':Sequelize[_0x5c44('0x6')]},'idField':{'type':Sequelize[_0x5c44('0x6')]},'variableName':{'type':Sequelize[_0x5c44('0x6')]}};
\ No newline at end of file
+var _0x4d89=['variable','customVariable','keyValue','picklist','STRING','sequelize','string'];(function(_0x5d25ac,_0x3f57f5){var _0x1c7b34=function(_0x41a6da){while(--_0x41a6da){_0x5d25ac['push'](_0x5d25ac['shift']());}};_0x1c7b34(++_0x3f57f5);}(_0x4d89,0x108));var _0x94d8=function(_0x58c7b5,_0x2cb0cf){_0x58c7b5=_0x58c7b5-0x0;var _0x2a7da1=_0x4d89[_0x58c7b5];return _0x2a7da1;};'use strict';var Sequelize=require(_0x94d8('0x0'));module['exports']={'type':{'type':Sequelize['ENUM'](_0x94d8('0x1'),_0x94d8('0x2'),_0x94d8('0x3'),_0x94d8('0x4'),_0x94d8('0x5')),'defaultValue':_0x94d8('0x1')},'content':{'type':Sequelize[_0x94d8('0x6')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize['ENUM'](_0x94d8('0x1'),_0x94d8('0x2'),_0x94d8('0x3'))},'keyContent':{'type':Sequelize[_0x94d8('0x6')]},'idField':{'type':Sequelize[_0x94d8('0x6')]},'variableName':{'type':Sequelize[_0x94d8('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4175=['map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','SalesforceField','rawAttributes','fieldName','model'];(function(_0x20481c,_0x57f1a3){var _0x312c66=function(_0x122b47){while(--_0x122b47){_0x20481c['push'](_0x20481c['shift']());}};_0x312c66(++_0x57f1a3);}(_0x4175,0x161));var _0x5417=function(_0x2f7475,_0x29a27e){_0x2f7475=_0x2f7475-0x0;var _0xda5df=_0x4175[_0x2f7475];return _0xda5df;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5417('0x0'));var zipdir=require(_0x5417('0x1'));var jsonpatch=require(_0x5417('0x2'));var rp=require(_0x5417('0x3'));var moment=require(_0x5417('0x4'));var BPromise=require(_0x5417('0x5'));var Mustache=require(_0x5417('0x6'));var util=require(_0x5417('0x7'));var path=require(_0x5417('0x8'));var sox=require('sox');var csv=require(_0x5417('0x9'));var ejs=require(_0x5417('0xa'));var fs=require('fs');var fs_extra=require(_0x5417('0xb'));var _=require(_0x5417('0xc'));var squel=require(_0x5417('0xd'));var crypto=require(_0x5417('0xe'));var jsforce=require(_0x5417('0xf'));var deskjs=require(_0x5417('0x10'));var toCsv=require('to-csv');var querystring=require(_0x5417('0x11'));var Papa=require(_0x5417('0x12'));var Redis=require(_0x5417('0x13'));var authService=require(_0x5417('0x14'));var qs=require(_0x5417('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5417('0x16'))(_0x5417('0x17'));var utils=require(_0x5417('0x18'));var config=require(_0x5417('0x19'));var licenseUtil=require(_0x5417('0x1a'));var db=require(_0x5417('0x1b'))['db'];function respondWithStatusCode(_0x26a282,_0x265010){_0x265010=_0x265010||0xcc;return function(_0x52f994){if(_0x52f994){return _0x26a282['sendStatus'](_0x265010);}return _0x26a282[_0x5417('0x1c')](_0x265010)[_0x5417('0x1d')]();};}function respondWithResult(_0x371b32,_0x4655aa){_0x4655aa=_0x4655aa||0xc8;return function(_0x34dd6b){if(_0x34dd6b){return _0x371b32[_0x5417('0x1c')](_0x4655aa)['json'](_0x34dd6b);}};}function respondWithFilteredResult(_0x3a93b6,_0x2ee27f){return function(_0x3a4229){if(_0x3a4229){var _0x2cdff2=typeof _0x2ee27f[_0x5417('0x1e')]===_0x5417('0x1f')&&typeof _0x2ee27f[_0x5417('0x20')]===_0x5417('0x1f');var _0x5eeeae=_0x3a4229[_0x5417('0x21')];var _0x495807=_0x2cdff2?0x0:_0x2ee27f[_0x5417('0x1e')];var _0x57762c=_0x2cdff2?_0x3a4229[_0x5417('0x21')]:_0x2ee27f[_0x5417('0x1e')]+_0x2ee27f[_0x5417('0x20')];var _0x284d64;if(_0x57762c>=_0x5eeeae){_0x57762c=_0x5eeeae;_0x284d64=0xc8;}else{_0x284d64=0xce;}_0x3a93b6[_0x5417('0x1c')](_0x284d64);return _0x3a93b6[_0x5417('0x22')](_0x5417('0x23'),_0x495807+'-'+_0x57762c+'/'+_0x5eeeae)[_0x5417('0x24')](_0x3a4229);}return null;};}function patchUpdates(_0x5e8930){return function(_0x422696){try{jsonpatch[_0x5417('0x25')](_0x422696,_0x5e8930,!![]);}catch(_0x4a0184){return BPromise[_0x5417('0x26')](_0x4a0184);}return _0x422696[_0x5417('0x27')]();};}function saveUpdates(_0x3b1f89,_0x14d73b){return function(_0x58252c){if(_0x58252c){return _0x58252c[_0x5417('0x28')](_0x3b1f89)[_0x5417('0x29')](function(_0x4095d9){return _0x4095d9;});}return null;};}function removeEntity(_0x4f9849,_0x3c6e41){return function(_0x309763){if(_0x309763){return _0x309763[_0x5417('0x2a')]()[_0x5417('0x29')](function(){_0x4f9849[_0x5417('0x1c')](0xcc)[_0x5417('0x1d')]();});}};}function handleEntityNotFound(_0x39be12,_0x5f166e){return function(_0x15bf3a){if(!_0x15bf3a){_0x39be12[_0x5417('0x2b')](0x194);}return _0x15bf3a;};}function handleError(_0x259bad,_0x5430d7){_0x5430d7=_0x5430d7||0x1f4;return function(_0x26cea3){logger[_0x5417('0x2c')](_0x26cea3[_0x5417('0x2d')]);if(_0x26cea3[_0x5417('0x2e')]){delete _0x26cea3[_0x5417('0x2e')];}_0x259bad[_0x5417('0x1c')](_0x5430d7)[_0x5417('0x2f')](_0x26cea3);};}exports['index']=function(_0x2d6390,_0x2ac632){var _0xd184ee={},_0x3eb145={},_0x45153b={'count':0x0,'rows':[]};var _0x4a5650=_['map'](db[_0x5417('0x30')][_0x5417('0x31')],function(_0x1d83a5){return{'name':_0x1d83a5[_0x5417('0x32')],'type':_0x1d83a5['type']['key']};});_0x3eb145[_0x5417('0x33')]=_[_0x5417('0x34')](_0x4a5650,_0x5417('0x2e'));_0x3eb145[_0x5417('0x35')]=_[_0x5417('0x36')](_0x2d6390['query']);_0x3eb145[_0x5417('0x37')]=_[_0x5417('0x38')](_0x3eb145['model'],_0x3eb145[_0x5417('0x35')]);_0xd184ee[_0x5417('0x39')]=_['intersection'](_0x3eb145['model'],qs['fields'](_0x2d6390[_0x5417('0x35')][_0x5417('0x3a')]));_0xd184ee[_0x5417('0x39')]=_0xd184ee[_0x5417('0x39')][_0x5417('0x3b')]?_0xd184ee[_0x5417('0x39')]:_0x3eb145['model'];if(!_0x2d6390[_0x5417('0x35')][_0x5417('0x3c')](_0x5417('0x3d'))){_0xd184ee['limit']=qs[_0x5417('0x20')](_0x2d6390[_0x5417('0x35')][_0x5417('0x20')]);_0xd184ee[_0x5417('0x1e')]=qs[_0x5417('0x1e')](_0x2d6390[_0x5417('0x35')][_0x5417('0x1e')]);}_0xd184ee[_0x5417('0x3e')]=qs[_0x5417('0x3f')](_0x2d6390[_0x5417('0x35')][_0x5417('0x3f')]);_0xd184ee[_0x5417('0x40')]=qs[_0x5417('0x37')](_[_0x5417('0x41')](_0x2d6390[_0x5417('0x35')],_0x3eb145[_0x5417('0x37')]),_0x4a5650);if(_0x2d6390[_0x5417('0x35')][_0x5417('0x42')]){_0xd184ee[_0x5417('0x40')]=_[_0x5417('0x43')](_0xd184ee['where'],{'$or':_[_0x5417('0x34')](_0x4a5650,function(_0x5d38d3){if(_0x5d38d3[_0x5417('0x44')]!==_0x5417('0x45')){var _0xf286a3={};_0xf286a3[_0x5d38d3[_0x5417('0x2e')]]={'$like':'%'+_0x2d6390[_0x5417('0x35')][_0x5417('0x42')]+'%'};return _0xf286a3;}})});}_0xd184ee=_[_0x5417('0x43')]({},_0xd184ee,_0x2d6390[_0x5417('0x46')]);var _0xa127f1={'where':_0xd184ee['where']};return db[_0x5417('0x30')]['count'](_0xa127f1)[_0x5417('0x29')](function(_0x442d4b){_0x45153b[_0x5417('0x21')]=_0x442d4b;if(_0x2d6390['query'][_0x5417('0x47')]){_0xd184ee[_0x5417('0x48')]=[{'all':!![]}];}return db[_0x5417('0x30')][_0x5417('0x49')](_0xd184ee);})['then'](function(_0x2ee2f5){_0x45153b[_0x5417('0x4a')]=_0x2ee2f5;return _0x45153b;})[_0x5417('0x29')](respondWithFilteredResult(_0x2ac632,_0xd184ee))[_0x5417('0x4b')](handleError(_0x2ac632,null));};exports[_0x5417('0x4c')]=function(_0x2cc629,_0x7c0dd5){var _0xc3d947={'raw':!![],'where':{'id':_0x2cc629[_0x5417('0x4d')]['id']}},_0x38c89e={};_0x38c89e['model']=_[_0x5417('0x36')](db[_0x5417('0x30')][_0x5417('0x31')]);_0x38c89e[_0x5417('0x35')]=_['keys'](_0x2cc629[_0x5417('0x35')]);_0x38c89e[_0x5417('0x37')]=_[_0x5417('0x38')](_0x38c89e[_0x5417('0x33')],_0x38c89e['query']);_0xc3d947[_0x5417('0x39')]=_[_0x5417('0x38')](_0x38c89e['model'],qs['fields'](_0x2cc629[_0x5417('0x35')]['fields']));_0xc3d947['attributes']=_0xc3d947[_0x5417('0x39')]['length']?_0xc3d947[_0x5417('0x39')]:_0x38c89e[_0x5417('0x33')];if(_0x2cc629[_0x5417('0x35')][_0x5417('0x47')]){_0xc3d947[_0x5417('0x48')]=[{'all':!![]}];}_0xc3d947=_[_0x5417('0x43')]({},_0xc3d947,_0x2cc629[_0x5417('0x46')]);return db[_0x5417('0x30')][_0x5417('0x4e')](_0xc3d947)['then'](handleEntityNotFound(_0x7c0dd5,null))[_0x5417('0x29')](respondWithResult(_0x7c0dd5,null))[_0x5417('0x4b')](handleError(_0x7c0dd5,null));};exports[_0x5417('0x4f')]=function(_0x1b2bd7,_0x5a767f){return db[_0x5417('0x30')]['create'](_0x1b2bd7[_0x5417('0x50')],{})['then'](respondWithResult(_0x5a767f,0xc9))['catch'](handleError(_0x5a767f,null));};exports[_0x5417('0x28')]=function(_0x2970e2,_0x4fe0d7){if(_0x2970e2[_0x5417('0x50')]['id']){delete _0x2970e2[_0x5417('0x50')]['id'];}return db[_0x5417('0x30')][_0x5417('0x4e')]({'where':{'id':_0x2970e2[_0x5417('0x4d')]['id']}})['then'](handleEntityNotFound(_0x4fe0d7,null))[_0x5417('0x29')](saveUpdates(_0x2970e2[_0x5417('0x50')],null))['then'](respondWithResult(_0x4fe0d7,null))[_0x5417('0x4b')](handleError(_0x4fe0d7,null));};exports[_0x5417('0x2a')]=function(_0x1fcce8,_0x16289e){return db[_0x5417('0x30')][_0x5417('0x4e')]({'where':{'id':_0x1fcce8[_0x5417('0x4d')]['id']}})[_0x5417('0x29')](handleEntityNotFound(_0x16289e,null))[_0x5417('0x29')](removeEntity(_0x16289e,null))['catch'](handleError(_0x16289e,null));};
\ No newline at end of file
+var _0xc2fb=['fieldName','type','model','query','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','include','findAll','catch','show','params','keys','rawAttributes','fields','length','options','find','body','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','error','name','index','map','SalesforceField'];(function(_0x2da69c,_0x4f12bf){var _0x546d6c=function(_0x4b233a){while(--_0x4b233a){_0x2da69c['push'](_0x2da69c['shift']());}};_0x546d6c(++_0x4f12bf);}(_0xc2fb,0x1d8));var _0xbc2f=function(_0x436c8c,_0x6b37b){_0x436c8c=_0x436c8c-0x0;var _0x5f5739=_0xc2fb[_0x436c8c];return _0x5f5739;};'use strict';var emlformat=require(_0xbc2f('0x0'));var rimraf=require(_0xbc2f('0x1'));var zipdir=require(_0xbc2f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xbc2f('0x3'));var moment=require(_0xbc2f('0x4'));var BPromise=require(_0xbc2f('0x5'));var Mustache=require('mustache');var util=require(_0xbc2f('0x6'));var path=require(_0xbc2f('0x7'));var sox=require(_0xbc2f('0x8'));var csv=require(_0xbc2f('0x9'));var ejs=require(_0xbc2f('0xa'));var fs=require('fs');var fs_extra=require(_0xbc2f('0xb'));var _=require(_0xbc2f('0xc'));var squel=require('squel');var crypto=require(_0xbc2f('0xd'));var jsforce=require(_0xbc2f('0xe'));var deskjs=require(_0xbc2f('0xf'));var toCsv=require(_0xbc2f('0x9'));var querystring=require(_0xbc2f('0x10'));var Papa=require(_0xbc2f('0x11'));var Redis=require('ioredis');var authService=require(_0xbc2f('0x12'));var qs=require(_0xbc2f('0x13'));var as=require(_0xbc2f('0x14'));var hardwareService=require(_0xbc2f('0x15'));var logger=require(_0xbc2f('0x16'))('api');var utils=require(_0xbc2f('0x17'));var config=require(_0xbc2f('0x18'));var licenseUtil=require(_0xbc2f('0x19'));var db=require(_0xbc2f('0x1a'))['db'];function respondWithStatusCode(_0x19d1cf,_0x3635d3){_0x3635d3=_0x3635d3||0xcc;return function(_0x1185df){if(_0x1185df){return _0x19d1cf[_0xbc2f('0x1b')](_0x3635d3);}return _0x19d1cf[_0xbc2f('0x1c')](_0x3635d3)[_0xbc2f('0x1d')]();};}function respondWithResult(_0x307cbc,_0x4d73e3){_0x4d73e3=_0x4d73e3||0xc8;return function(_0x4be97c){if(_0x4be97c){return _0x307cbc[_0xbc2f('0x1c')](_0x4d73e3)[_0xbc2f('0x1e')](_0x4be97c);}};}function respondWithFilteredResult(_0x336140,_0x37910c){return function(_0x4f4466){if(_0x4f4466){var _0x5efe0f=typeof _0x37910c[_0xbc2f('0x1f')]===_0xbc2f('0x20')&&typeof _0x37910c[_0xbc2f('0x21')]==='undefined';var _0x17a0b7=_0x4f4466[_0xbc2f('0x22')];var _0x4e731d=_0x5efe0f?0x0:_0x37910c['offset'];var _0x2a7db2=_0x5efe0f?_0x4f4466[_0xbc2f('0x22')]:_0x37910c['offset']+_0x37910c[_0xbc2f('0x21')];var _0x28eb3e;if(_0x2a7db2>=_0x17a0b7){_0x2a7db2=_0x17a0b7;_0x28eb3e=0xc8;}else{_0x28eb3e=0xce;}_0x336140[_0xbc2f('0x1c')](_0x28eb3e);return _0x336140[_0xbc2f('0x23')](_0xbc2f('0x24'),_0x4e731d+'-'+_0x2a7db2+'/'+_0x17a0b7)[_0xbc2f('0x1e')](_0x4f4466);}return null;};}function patchUpdates(_0x45afdd){return function(_0x14aad3){try{jsonpatch['apply'](_0x14aad3,_0x45afdd,!![]);}catch(_0x11df90){return BPromise[_0xbc2f('0x25')](_0x11df90);}return _0x14aad3['save']();};}function saveUpdates(_0x1523dd,_0x3e7635){return function(_0x4bf959){if(_0x4bf959){return _0x4bf959[_0xbc2f('0x26')](_0x1523dd)[_0xbc2f('0x27')](function(_0x26de67){return _0x26de67;});}return null;};}function removeEntity(_0x25a198,_0x45ef12){return function(_0x2f6e87){if(_0x2f6e87){return _0x2f6e87[_0xbc2f('0x28')]()['then'](function(){_0x25a198[_0xbc2f('0x1c')](0xcc)[_0xbc2f('0x1d')]();});}};}function handleEntityNotFound(_0x187613,_0x45b148){return function(_0x5b1fe5){if(!_0x5b1fe5){_0x187613['sendStatus'](0x194);}return _0x5b1fe5;};}function handleError(_0x3a0d05,_0x5bed89){_0x5bed89=_0x5bed89||0x1f4;return function(_0x5959b8){logger[_0xbc2f('0x29')](_0x5959b8['stack']);if(_0x5959b8[_0xbc2f('0x2a')]){delete _0x5959b8[_0xbc2f('0x2a')];}_0x3a0d05[_0xbc2f('0x1c')](_0x5bed89)['send'](_0x5959b8);};}exports[_0xbc2f('0x2b')]=function(_0x26ecd4,_0x258e3a){var _0x464fde={},_0x42ecc4={},_0x53b4c6={'count':0x0,'rows':[]};var _0xab03a3=_[_0xbc2f('0x2c')](db[_0xbc2f('0x2d')]['rawAttributes'],function(_0x349453){return{'name':_0x349453[_0xbc2f('0x2e')],'type':_0x349453[_0xbc2f('0x2f')]['key']};});_0x42ecc4[_0xbc2f('0x30')]=_['map'](_0xab03a3,_0xbc2f('0x2a'));_0x42ecc4[_0xbc2f('0x31')]=_['keys'](_0x26ecd4[_0xbc2f('0x31')]);_0x42ecc4[_0xbc2f('0x32')]=_['intersection'](_0x42ecc4[_0xbc2f('0x30')],_0x42ecc4[_0xbc2f('0x31')]);_0x464fde['attributes']=_[_0xbc2f('0x33')](_0x42ecc4[_0xbc2f('0x30')],qs['fields'](_0x26ecd4[_0xbc2f('0x31')]['fields']));_0x464fde['attributes']=_0x464fde[_0xbc2f('0x34')]['length']?_0x464fde[_0xbc2f('0x34')]:_0x42ecc4['model'];if(!_0x26ecd4[_0xbc2f('0x31')][_0xbc2f('0x35')](_0xbc2f('0x36'))){_0x464fde[_0xbc2f('0x21')]=qs[_0xbc2f('0x21')](_0x26ecd4['query']['limit']);_0x464fde[_0xbc2f('0x1f')]=qs[_0xbc2f('0x1f')](_0x26ecd4[_0xbc2f('0x31')]['offset']);}_0x464fde[_0xbc2f('0x37')]=qs[_0xbc2f('0x38')](_0x26ecd4['query']['sort']);_0x464fde[_0xbc2f('0x39')]=qs['filters'](_[_0xbc2f('0x3a')](_0x26ecd4[_0xbc2f('0x31')],_0x42ecc4[_0xbc2f('0x32')]),_0xab03a3);if(_0x26ecd4[_0xbc2f('0x31')][_0xbc2f('0x3b')]){_0x464fde[_0xbc2f('0x39')]=_[_0xbc2f('0x3c')](_0x464fde[_0xbc2f('0x39')],{'$or':_[_0xbc2f('0x2c')](_0xab03a3,function(_0xd9cfbc){if(_0xd9cfbc[_0xbc2f('0x2f')]!=='VIRTUAL'){var _0x453d4e={};_0x453d4e[_0xd9cfbc[_0xbc2f('0x2a')]]={'$like':'%'+_0x26ecd4[_0xbc2f('0x31')][_0xbc2f('0x3b')]+'%'};return _0x453d4e;}})});}_0x464fde=_[_0xbc2f('0x3c')]({},_0x464fde,_0x26ecd4['options']);var _0x37e730={'where':_0x464fde[_0xbc2f('0x39')]};return db[_0xbc2f('0x2d')][_0xbc2f('0x22')](_0x37e730)['then'](function(_0x25346a){_0x53b4c6['count']=_0x25346a;if(_0x26ecd4[_0xbc2f('0x31')][_0xbc2f('0x3d')]){_0x464fde[_0xbc2f('0x3e')]=[{'all':!![]}];}return db['SalesforceField'][_0xbc2f('0x3f')](_0x464fde);})[_0xbc2f('0x27')](function(_0x9ba21a){_0x53b4c6['rows']=_0x9ba21a;return _0x53b4c6;})[_0xbc2f('0x27')](respondWithFilteredResult(_0x258e3a,_0x464fde))[_0xbc2f('0x40')](handleError(_0x258e3a,null));};exports[_0xbc2f('0x41')]=function(_0xb8b718,_0x3e31ec){var _0x4ac011={'raw':!![],'where':{'id':_0xb8b718[_0xbc2f('0x42')]['id']}},_0x60ac57={};_0x60ac57['model']=_[_0xbc2f('0x43')](db[_0xbc2f('0x2d')][_0xbc2f('0x44')]);_0x60ac57[_0xbc2f('0x31')]=_[_0xbc2f('0x43')](_0xb8b718[_0xbc2f('0x31')]);_0x60ac57[_0xbc2f('0x32')]=_[_0xbc2f('0x33')](_0x60ac57[_0xbc2f('0x30')],_0x60ac57['query']);_0x4ac011[_0xbc2f('0x34')]=_['intersection'](_0x60ac57[_0xbc2f('0x30')],qs[_0xbc2f('0x45')](_0xb8b718[_0xbc2f('0x31')][_0xbc2f('0x45')]));_0x4ac011[_0xbc2f('0x34')]=_0x4ac011[_0xbc2f('0x34')][_0xbc2f('0x46')]?_0x4ac011['attributes']:_0x60ac57[_0xbc2f('0x30')];if(_0xb8b718[_0xbc2f('0x31')]['includeAll']){_0x4ac011['include']=[{'all':!![]}];}_0x4ac011=_[_0xbc2f('0x3c')]({},_0x4ac011,_0xb8b718[_0xbc2f('0x47')]);return db[_0xbc2f('0x2d')][_0xbc2f('0x48')](_0x4ac011)[_0xbc2f('0x27')](handleEntityNotFound(_0x3e31ec,null))[_0xbc2f('0x27')](respondWithResult(_0x3e31ec,null))[_0xbc2f('0x40')](handleError(_0x3e31ec,null));};exports['create']=function(_0x288c02,_0x2b9a09){return db[_0xbc2f('0x2d')]['create'](_0x288c02[_0xbc2f('0x49')],{})[_0xbc2f('0x27')](respondWithResult(_0x2b9a09,0xc9))[_0xbc2f('0x40')](handleError(_0x2b9a09,null));};exports['update']=function(_0x57767b,_0x391ec0){if(_0x57767b['body']['id']){delete _0x57767b[_0xbc2f('0x49')]['id'];}return db[_0xbc2f('0x2d')]['find']({'where':{'id':_0x57767b['params']['id']}})[_0xbc2f('0x27')](handleEntityNotFound(_0x391ec0,null))[_0xbc2f('0x27')](saveUpdates(_0x57767b[_0xbc2f('0x49')],null))[_0xbc2f('0x27')](respondWithResult(_0x391ec0,null))[_0xbc2f('0x40')](handleError(_0x391ec0,null));};exports[_0xbc2f('0x28')]=function(_0x430714,_0x5dea11){return db['SalesforceField']['find']({'where':{'id':_0x430714['params']['id']}})[_0xbc2f('0x27')](handleEntityNotFound(_0x5dea11,null))[_0xbc2f('0x27')](removeEntity(_0x5dea11,null))[_0xbc2f('0x40')](handleError(_0x5dea11,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x275f=['./intSalesforceField.attributes','SalesforceField','salesforce_unique_index','idField','FieldId','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf'];(function(_0x412b2a,_0x11fb8a){var _0x5872e3=function(_0x202191){while(--_0x202191){_0x412b2a['push'](_0x412b2a['shift']());}};_0x5872e3(++_0x11fb8a);}(_0x275f,0x16d));var _0xf275=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0x275f[_0x5783f4];return _0x28e380;};'use strict';var _=require(_0xf275('0x0'));var util=require(_0xf275('0x1'));var logger=require(_0xf275('0x2'))(_0xf275('0x3'));var moment=require('moment');var BPromise=require(_0xf275('0x4'));var rp=require(_0xf275('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf275('0x6'));var config=require('../../config/environment');var attributes=require(_0xf275('0x7'));module['exports']=function(_0x50fef7,_0x827f8a){return _0x50fef7['define'](_0xf275('0x8'),attributes,{'tableName':'int_salesforce_fields','paranoid':![],'indexes':[{'name':_0xf275('0x9'),'fields':[_0xf275('0xa'),_0xf275('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5e69=['rimraf','../../config/environment','./intSalesforceField.attributes','define','SalesforceField','int_salesforce_fields','idField','util','../../config/logger','api','moment','request-promise'];(function(_0x11e03f,_0x20b967){var _0x5666fe=function(_0x19ce63){while(--_0x19ce63){_0x11e03f['push'](_0x11e03f['shift']());}};_0x5666fe(++_0x20b967);}(_0x5e69,0x1c3));var _0x95e6=function(_0x17e4ac,_0x315ed6){_0x17e4ac=_0x17e4ac-0x0;var _0x7a9a6a=_0x5e69[_0x17e4ac];return _0x7a9a6a;};'use strict';var _=require('lodash');var util=require(_0x95e6('0x0'));var logger=require(_0x95e6('0x1'))(_0x95e6('0x2'));var moment=require(_0x95e6('0x3'));var BPromise=require('bluebird');var rp=require(_0x95e6('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x95e6('0x5'));var config=require(_0x95e6('0x6'));var attributes=require(_0x95e6('0x7'));module['exports']=function(_0x2d0fb3,_0x47cdec){return _0x2d0fb3[_0x95e6('0x8')](_0x95e6('0x9'),attributes,{'tableName':_0x95e6('0xa'),'paranoid':![],'indexes':[{'name':'salesforce_unique_index','fields':[_0x95e6('0xb'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcdc3=['../../config/logger','../../config/environment','jayson/promise','client','request','info','SalesforceField,\x20%s,\x20%s','request\x20sent','debug','SalesforceField,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash','util','randomstring','../../mysqldb','../../config/utils'];(function(_0x98ac1f,_0x2effb0){var _0x1579d1=function(_0x54b8d7){while(--_0x54b8d7){_0x98ac1f['push'](_0x98ac1f['shift']());}};_0x1579d1(++_0x2effb0);}(_0xcdc3,0xcc));var _0x3cdc=function(_0x2c7618,_0x26be9c){_0x2c7618=_0x2c7618-0x0;var _0x5ce3f0=_0xcdc3[_0x2c7618];return _0x5ce3f0;};'use strict';var _=require(_0x3cdc('0x0'));var util=require(_0x3cdc('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x3cdc('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3cdc('0x3'))['db'];var utils=require(_0x3cdc('0x4'));var logger=require(_0x3cdc('0x5'))('rpc');var config=require(_0x3cdc('0x6'));var jayson=require(_0x3cdc('0x7'));var client=jayson[_0x3cdc('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x37815c,_0x27426e,_0x81e09f){return new BPromise(function(_0x4c24bb,_0x46aa7a){return client[_0x3cdc('0x9')](_0x37815c,_0x81e09f)['then'](function(_0x2145fd){logger[_0x3cdc('0xa')](_0x3cdc('0xb'),_0x27426e,_0x3cdc('0xc'));logger[_0x3cdc('0xd')](_0x3cdc('0xe'),_0x27426e,_0x3cdc('0xc'),JSON['stringify'](_0x2145fd));if(_0x2145fd[_0x3cdc('0xf')]){if(_0x2145fd['error'][_0x3cdc('0x10')]===0x1f4){logger[_0x3cdc('0xf')](_0x3cdc('0xb'),_0x27426e,_0x2145fd[_0x3cdc('0xf')][_0x3cdc('0x11')]);return _0x46aa7a(_0x2145fd[_0x3cdc('0xf')][_0x3cdc('0x11')]);}logger[_0x3cdc('0xf')]('SalesforceField,\x20%s,\x20%s',_0x27426e,_0x2145fd['error'][_0x3cdc('0x11')]);return _0x4c24bb(_0x2145fd[_0x3cdc('0xf')][_0x3cdc('0x11')]);}else{logger[_0x3cdc('0xa')]('SalesforceField,\x20%s,\x20%s',_0x27426e,_0x3cdc('0xc'));_0x4c24bb(_0x2145fd['result'][_0x3cdc('0x11')]);}})[_0x3cdc('0x12')](function(_0x36bf1d){logger['error']('SalesforceField,\x20%s,\x20%s',_0x27426e,_0x36bf1d);_0x46aa7a(_0x36bf1d);});});}
\ No newline at end of file
+var _0x49ba=['../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','request\x20sent','debug','SalesforceField,\x20%s,\x20%s,\x20%s','error','code','SalesforceField,\x20%s,\x20%s','message','result','catch','util','bluebird','randomstring','ioredis'];(function(_0x3e7804,_0x121853){var _0x56efda=function(_0x1996f3){while(--_0x1996f3){_0x3e7804['push'](_0x3e7804['shift']());}};_0x56efda(++_0x121853);}(_0x49ba,0x130));var _0xa49b=function(_0x450a2f,_0x4ce6ce){_0x450a2f=_0x450a2f-0x0;var _0x98eebb=_0x49ba[_0x450a2f];return _0x98eebb;};'use strict';var _=require('lodash');var util=require(_0xa49b('0x0'));var moment=require('moment');var BPromise=require(_0xa49b('0x1'));var rs=require(_0xa49b('0x2'));var fs=require('fs');var Redis=require(_0xa49b('0x3'));var db=require(_0xa49b('0x4'))['db'];var utils=require(_0xa49b('0x5'));var logger=require(_0xa49b('0x6'))(_0xa49b('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xa49b('0x8')][_0xa49b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29971c,_0xe97f2a,_0x3c3145){return new BPromise(function(_0x565232,_0x4cae69){return client[_0xa49b('0xa')](_0x29971c,_0x3c3145)[_0xa49b('0xb')](function(_0x15e50f){logger[_0xa49b('0xc')]('SalesforceField,\x20%s,\x20%s',_0xe97f2a,_0xa49b('0xd'));logger[_0xa49b('0xe')](_0xa49b('0xf'),_0xe97f2a,'request\x20sent',JSON['stringify'](_0x15e50f));if(_0x15e50f[_0xa49b('0x10')]){if(_0x15e50f['error'][_0xa49b('0x11')]===0x1f4){logger[_0xa49b('0x10')](_0xa49b('0x12'),_0xe97f2a,_0x15e50f[_0xa49b('0x10')]['message']);return _0x4cae69(_0x15e50f[_0xa49b('0x10')][_0xa49b('0x13')]);}logger[_0xa49b('0x10')](_0xa49b('0x12'),_0xe97f2a,_0x15e50f['error'][_0xa49b('0x13')]);return _0x565232(_0x15e50f[_0xa49b('0x10')][_0xa49b('0x13')]);}else{logger[_0xa49b('0xc')](_0xa49b('0x12'),_0xe97f2a,_0xa49b('0xd'));_0x565232(_0x15e50f[_0xa49b('0x14')]['message']);}})[_0xa49b('0x15')](function(_0xaedb13){logger[_0xa49b('0x10')]('SalesforceField,\x20%s,\x20%s',_0xe97f2a,_0xaedb13);_0x4cae69(_0xaedb13);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe563=['../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x3eca5a,_0x20d490){var _0x15470e=function(_0x219cc6){while(--_0x219cc6){_0x3eca5a['push'](_0x3eca5a['shift']());}};_0x15470e(++_0x20d490);}(_0xe563,0x125));var _0x3e56=function(_0x43163b,_0x130529){_0x43163b=_0x43163b-0x0;var _0x412eaa=_0xe563[_0x43163b];return _0x412eaa;};'use strict';var multer=require(_0x3e56('0x0'));var util=require(_0x3e56('0x1'));var path=require(_0x3e56('0x2'));var timeout=require(_0x3e56('0x3'));var express=require(_0x3e56('0x4'));var router=express[_0x3e56('0x5')]();var fs_extra=require(_0x3e56('0x6'));var auth=require(_0x3e56('0x7'));var interaction=require(_0x3e56('0x8'));var config=require(_0x3e56('0x9'));var controller=require('./intServicenowAccount.controller');router[_0x3e56('0xa')]('/',auth['isAuthenticated'](),controller[_0x3e56('0xb')]);router[_0x3e56('0xa')](_0x3e56('0xc'),auth[_0x3e56('0xd')](),controller[_0x3e56('0xe')]);router[_0x3e56('0xa')](_0x3e56('0xf'),auth[_0x3e56('0xd')](),controller[_0x3e56('0x10')]);router[_0x3e56('0xa')](_0x3e56('0x11'),auth['isAuthenticated'](),controller[_0x3e56('0x12')]);router[_0x3e56('0x13')]('/',auth[_0x3e56('0xd')](),controller[_0x3e56('0x14')]);router[_0x3e56('0x13')](_0x3e56('0xf'),auth[_0x3e56('0xd')](),controller[_0x3e56('0x15')]);router[_0x3e56('0x16')](_0x3e56('0xc'),auth[_0x3e56('0xd')](),controller[_0x3e56('0x17')]);router['delete'](_0x3e56('0xc'),auth[_0x3e56('0xd')](),controller['destroy']);module[_0x3e56('0x18')]=router;
\ No newline at end of file
+var _0x4560=['/:id','isAuthenticated','/:id/configurations','/:id/fields','getFields','create','addConfiguration','put','update','delete','destroy','exports','multer','util','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowAccount.controller','get'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x4560,0x1d4));var _0x0456=function(_0xd0aa32,_0xa9fdad){_0xd0aa32=_0xd0aa32-0x0;var _0x11d737=_0x4560[_0xd0aa32];return _0x11d737;};'use strict';var multer=require(_0x0456('0x0'));var util=require(_0x0456('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x0456('0x2'));var interaction=require(_0x0456('0x3'));var config=require(_0x0456('0x4'));var controller=require(_0x0456('0x5'));router[_0x0456('0x6')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x0456('0x7'),auth[_0x0456('0x8')](),controller['show']);router[_0x0456('0x6')](_0x0456('0x9'),auth[_0x0456('0x8')](),controller['getConfigurations']);router[_0x0456('0x6')](_0x0456('0xa'),auth['isAuthenticated'](),controller[_0x0456('0xb')]);router['post']('/',auth[_0x0456('0x8')](),controller[_0x0456('0xc')]);router['post']('/:id/configurations',auth['isAuthenticated'](),controller[_0x0456('0xd')]);router[_0x0456('0xe')](_0x0456('0x7'),auth[_0x0456('0x8')](),controller[_0x0456('0xf')]);router[_0x0456('0x10')](_0x0456('0x7'),auth[_0x0456('0x8')](),controller[_0x0456('0x11')]);module[_0x0456('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3284=['STRING','username','remoteUri','exports'];(function(_0x50f112,_0xd38e53){var _0x4ecf28=function(_0x62b75){while(--_0x62b75){_0x50f112['push'](_0x50f112['shift']());}};_0x4ecf28(++_0xd38e53);}(_0x3284,0x18b));var _0x4328=function(_0x1fb4ff,_0x172d25){_0x1fb4ff=_0x1fb4ff-0x0;var _0x3f2d20=_0x3284[_0x1fb4ff];return _0x3f2d20;};'use strict';var Sequelize=require('sequelize');module[_0x4328('0x0')]={'name':{'type':Sequelize[_0x4328('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x4328('0x1')],'unique':_0x4328('0x2')},'password':{'type':Sequelize[_0x4328('0x1')]},'email':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x4328('0x1')],'unique':_0x4328('0x3')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0x7979=['sequelize','STRING'];(function(_0x1c0b6c,_0x430167){var _0x1a13c5=function(_0x529a91){while(--_0x529a91){_0x1c0b6c['push'](_0x1c0b6c['shift']());}};_0x1a13c5(++_0x430167);}(_0x7979,0x10a));var _0x9797=function(_0x212c94,_0x4f23df){_0x212c94=_0x212c94-0x0;var _0x27ec9f=_0x7979[_0x212c94];return _0x27ec9f;};'use strict';var Sequelize=require(_0x9797('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x9797('0x1')]},'username':{'type':Sequelize[_0x9797('0x1')],'unique':'username'},'password':{'type':Sequelize[_0x9797('0x1')]},'email':{'type':Sequelize[_0x9797('0x1')]},'remoteUri':{'type':Sequelize[_0x9797('0x1')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0x9797('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5100=['error','index','ServicenowAccount','rawAttributes','fieldName','type','key','map','name','query','filters','attributes','intersection','model','fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','keys','length','catch','create','body','find','getConfigurations','findOne','ServicenowConfiguration','pick','addConfiguration','Subjects','channel','Descriptions','getDescriptions','ServicenowField','getFields','made_sla','hold_reason','knowledge','notify','incident_state','severity','watch_list','sys_updated_on','approval_history','resolved_by','opened_by','sys_domain','state','sys_created_by','calendar_stc','cmdb_ci','delivery_plan','impact','active','work_notes_list','business_service','priority','sys_domain_path','rfc','time_worked','expected_start','business_duration','work_end','reopened_time','resolved_at','caller_id','subcategory','work_notes','short_description','close_code','correlation_display','delivery_task','work_start','business_stc','additional_assignee_list','description','calendar_duration','sys_class_name','close_notes','closed_by','follow_up','parent_incident','sys_id','contact_type','reopened_by','urgency','reassignment_count','assigned_to','comments','sla_due','approval','comments_and_work_notes','due_date','sys_mod_count','reopen_count','sys_tags','escalation','upon_approval','location','category','username','password','email','remoteUri','serverUrl','substring','lastIndexOf','%s/api/now/doc/table/schema/','GET','incident?sysparm_display_value=all','result','log','assign','remove','includes','forEach','internalType','label','TCL:\x20_object','TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom','push','all','concat','stack','send','test','Wrong\x20credentials','statusCode','boolean','True','False','false','sys_choice?sysparm_query=name=incident^element=','inactive','value','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','save','update','then','destroy'];(function(_0x41880a,_0x49770d){var _0x594a48=function(_0x16e25c){while(--_0x16e25c){_0x41880a['push'](_0x41880a['shift']());}};_0x594a48(++_0x49770d);}(_0x5100,0x93));var _0x0510=function(_0x4f7ab4,_0x19372c){_0x4f7ab4=_0x4f7ab4-0x0;var _0x4225e0=_0x5100[_0x4f7ab4];return _0x4225e0;};'use strict';var emlformat=require(_0x0510('0x0'));var rimraf=require(_0x0510('0x1'));var zipdir=require(_0x0510('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0510('0x3'));var moment=require(_0x0510('0x4'));var BPromise=require(_0x0510('0x5'));var Mustache=require(_0x0510('0x6'));var util=require(_0x0510('0x7'));var path=require(_0x0510('0x8'));var sox=require(_0x0510('0x9'));var csv=require('to-csv');var ejs=require(_0x0510('0xa'));var fs=require('fs');var fs_extra=require(_0x0510('0xb'));var _=require(_0x0510('0xc'));var squel=require(_0x0510('0xd'));var crypto=require('crypto');var jsforce=require(_0x0510('0xe'));var deskjs=require(_0x0510('0xf'));var toCsv=require(_0x0510('0x10'));var querystring=require(_0x0510('0x11'));var Papa=require(_0x0510('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x0510('0x13'));var as=require(_0x0510('0x14'));var hardwareService=require(_0x0510('0x15'));var logger=require(_0x0510('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x0510('0x17'));var licenseUtil=require(_0x0510('0x18'));var db=require(_0x0510('0x19'))['db'];var integrations=require(_0x0510('0x1a'));function respondWithStatusCode(_0x1c9c96,_0x237fac){_0x237fac=_0x237fac||0xcc;return function(_0x47c7e7){if(_0x47c7e7){return _0x1c9c96[_0x0510('0x1b')](_0x237fac);}return _0x1c9c96[_0x0510('0x1c')](_0x237fac)[_0x0510('0x1d')]();};}function respondWithResult(_0x6713ba,_0x34c247){_0x34c247=_0x34c247||0xc8;return function(_0x5ebc94){if(_0x5ebc94){return _0x6713ba[_0x0510('0x1c')](_0x34c247)[_0x0510('0x1e')](_0x5ebc94);}};}function respondWithFilteredResult(_0x2db09a,_0x286a3f){return function(_0x5e45c3){if(_0x5e45c3){var _0x5761c3=typeof _0x286a3f[_0x0510('0x1f')]==='undefined'&&typeof _0x286a3f['limit']===_0x0510('0x20');var _0x420524=_0x5e45c3[_0x0510('0x21')];var _0xc2149=_0x5761c3?0x0:_0x286a3f[_0x0510('0x1f')];var _0x5497e8=_0x5761c3?_0x5e45c3[_0x0510('0x21')]:_0x286a3f['offset']+_0x286a3f[_0x0510('0x22')];var _0x29871f;if(_0x5497e8>=_0x420524){_0x5497e8=_0x420524;_0x29871f=0xc8;}else{_0x29871f=0xce;}_0x2db09a[_0x0510('0x1c')](_0x29871f);return _0x2db09a[_0x0510('0x23')]('Content-Range',_0xc2149+'-'+_0x5497e8+'/'+_0x420524)[_0x0510('0x1e')](_0x5e45c3);}return null;};}function patchUpdates(_0x27a7b4){return function(_0x1ab584){try{jsonpatch[_0x0510('0x24')](_0x1ab584,_0x27a7b4,!![]);}catch(_0x2ae4ad){return BPromise['reject'](_0x2ae4ad);}return _0x1ab584[_0x0510('0x25')]();};}function saveUpdates(_0x1852ef,_0x388661){return function(_0x30dd54){if(_0x30dd54){return _0x30dd54[_0x0510('0x26')](_0x1852ef)[_0x0510('0x27')](function(_0x432876){return _0x432876;});}return null;};}function removeEntity(_0x345048,_0x59e47c){return function(_0x524e90){if(_0x524e90){return _0x524e90[_0x0510('0x28')]()[_0x0510('0x27')](function(){_0x345048[_0x0510('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x396bb4,_0x296c2c){return function(_0x2c7505){if(!_0x2c7505){_0x396bb4[_0x0510('0x1b')](0x194);}return _0x2c7505;};}function handleError(_0x523caf,_0x3ec7fb){_0x3ec7fb=_0x3ec7fb||0x1f4;return function(_0x114b17){logger[_0x0510('0x29')](_0x114b17['stack']);if(_0x114b17['name']){delete _0x114b17['name'];}_0x523caf[_0x0510('0x1c')](_0x3ec7fb)['send'](_0x114b17);};}exports[_0x0510('0x2a')]=function(_0x33fd14,_0x389620){var _0x2450dc={},_0x515853={},_0x4406aa={'count':0x0,'rows':[]};var _0x172caf=_['map'](db[_0x0510('0x2b')][_0x0510('0x2c')],function(_0x26c5fb){return{'name':_0x26c5fb[_0x0510('0x2d')],'type':_0x26c5fb[_0x0510('0x2e')][_0x0510('0x2f')]};});_0x515853['model']=_[_0x0510('0x30')](_0x172caf,_0x0510('0x31'));_0x515853[_0x0510('0x32')]=_['keys'](_0x33fd14[_0x0510('0x32')]);_0x515853[_0x0510('0x33')]=_['intersection'](_0x515853['model'],_0x515853[_0x0510('0x32')]);_0x2450dc[_0x0510('0x34')]=_[_0x0510('0x35')](_0x515853[_0x0510('0x36')],qs[_0x0510('0x37')](_0x33fd14[_0x0510('0x32')][_0x0510('0x37')]));_0x2450dc[_0x0510('0x34')]=_0x2450dc['attributes']['length']?_0x2450dc[_0x0510('0x34')]:_0x515853[_0x0510('0x36')];if(!_0x33fd14[_0x0510('0x32')][_0x0510('0x38')](_0x0510('0x39'))){_0x2450dc[_0x0510('0x22')]=qs['limit'](_0x33fd14['query'][_0x0510('0x22')]);_0x2450dc[_0x0510('0x1f')]=qs[_0x0510('0x1f')](_0x33fd14[_0x0510('0x32')][_0x0510('0x1f')]);}_0x2450dc[_0x0510('0x3a')]=qs['sort'](_0x33fd14['query'][_0x0510('0x3b')]);_0x2450dc[_0x0510('0x3c')]=qs[_0x0510('0x33')](_['pick'](_0x33fd14[_0x0510('0x32')],_0x515853[_0x0510('0x33')]),_0x172caf);if(_0x33fd14[_0x0510('0x32')]['filter']){_0x2450dc[_0x0510('0x3c')]=_[_0x0510('0x3d')](_0x2450dc[_0x0510('0x3c')],{'$or':_[_0x0510('0x30')](_0x172caf,function(_0x512781){if(_0x512781[_0x0510('0x2e')]!==_0x0510('0x3e')){var _0x18d803={};_0x18d803[_0x512781[_0x0510('0x31')]]={'$like':'%'+_0x33fd14['query'][_0x0510('0x3f')]+'%'};return _0x18d803;}})});}_0x2450dc=_['merge']({},_0x2450dc,_0x33fd14[_0x0510('0x40')]);var _0x484e6b={'where':_0x2450dc[_0x0510('0x3c')]};return db[_0x0510('0x2b')]['count'](_0x484e6b)['then'](function(_0x3c2541){_0x4406aa[_0x0510('0x21')]=_0x3c2541;if(_0x33fd14[_0x0510('0x32')][_0x0510('0x41')]){_0x2450dc[_0x0510('0x42')]=[{'all':!![]}];}return db['ServicenowAccount'][_0x0510('0x43')](_0x2450dc);})[_0x0510('0x27')](function(_0xf6f2e8){_0x4406aa[_0x0510('0x44')]=_0xf6f2e8;return _0x4406aa;})[_0x0510('0x27')](respondWithFilteredResult(_0x389620,_0x2450dc))['catch'](handleError(_0x389620,null));};exports[_0x0510('0x45')]=function(_0x2536ff,_0x55ca11){var _0x52a9f0={'raw':![],'where':{'id':_0x2536ff[_0x0510('0x46')]['id']}},_0x231de0={};_0x231de0['model']=_['keys'](db[_0x0510('0x2b')][_0x0510('0x2c')]);_0x231de0['query']=_[_0x0510('0x47')](_0x2536ff[_0x0510('0x32')]);_0x231de0['filters']=_[_0x0510('0x35')](_0x231de0['model'],_0x231de0[_0x0510('0x32')]);_0x52a9f0[_0x0510('0x34')]=_[_0x0510('0x35')](_0x231de0[_0x0510('0x36')],qs[_0x0510('0x37')](_0x2536ff[_0x0510('0x32')][_0x0510('0x37')]));_0x52a9f0[_0x0510('0x34')]=_0x52a9f0[_0x0510('0x34')][_0x0510('0x48')]?_0x52a9f0[_0x0510('0x34')]:_0x231de0[_0x0510('0x36')];if(_0x2536ff[_0x0510('0x32')][_0x0510('0x41')]){_0x52a9f0[_0x0510('0x42')]=[{'all':!![]}];}_0x52a9f0=_['merge']({},_0x52a9f0,_0x2536ff[_0x0510('0x40')]);return db[_0x0510('0x2b')]['find'](_0x52a9f0)['then'](handleEntityNotFound(_0x55ca11,null))[_0x0510('0x27')](respondWithResult(_0x55ca11,null))[_0x0510('0x49')](handleError(_0x55ca11,null));};exports[_0x0510('0x4a')]=function(_0x4d0f9a,_0xd1fbc0){return db[_0x0510('0x2b')][_0x0510('0x4a')](_0x4d0f9a['body'],{})[_0x0510('0x27')](respondWithResult(_0xd1fbc0,0xc9))[_0x0510('0x49')](handleError(_0xd1fbc0,null));};exports[_0x0510('0x26')]=function(_0x39d2b6,_0x2a80b5){if(_0x39d2b6[_0x0510('0x4b')]['id']){delete _0x39d2b6[_0x0510('0x4b')]['id'];}return db[_0x0510('0x2b')][_0x0510('0x4c')]({'where':{'id':_0x39d2b6[_0x0510('0x46')]['id']}})[_0x0510('0x27')](handleEntityNotFound(_0x2a80b5,null))[_0x0510('0x27')](saveUpdates(_0x39d2b6['body'],null))[_0x0510('0x27')](respondWithResult(_0x2a80b5,null))[_0x0510('0x49')](handleError(_0x2a80b5,null));};exports['destroy']=function(_0x4fc7b0,_0x114967){return db[_0x0510('0x2b')]['find']({'where':{'id':_0x4fc7b0[_0x0510('0x46')]['id']}})[_0x0510('0x27')](handleEntityNotFound(_0x114967,null))[_0x0510('0x27')](removeEntity(_0x114967,null))[_0x0510('0x49')](handleError(_0x114967,null));};exports[_0x0510('0x4d')]=function(_0xa70161,_0xcc837c,_0x4a70b6){var _0x4135b9={};var _0x2f2e5c={};var _0x5ae0b9;var _0x4c7fe9;return db[_0x0510('0x2b')][_0x0510('0x4e')]({'where':{'id':_0xa70161['params']['id']}})['then'](handleEntityNotFound(_0xcc837c,null))[_0x0510('0x27')](function(_0x1a4ffd){if(_0x1a4ffd){_0x5ae0b9=_0x1a4ffd;_0x2f2e5c[_0x0510('0x36')]=_[_0x0510('0x47')](db[_0x0510('0x4f')][_0x0510('0x2c')]);_0x2f2e5c[_0x0510('0x32')]=_[_0x0510('0x47')](_0xa70161[_0x0510('0x32')]);_0x2f2e5c[_0x0510('0x33')]=_[_0x0510('0x35')](_0x2f2e5c[_0x0510('0x36')],_0x2f2e5c[_0x0510('0x32')]);_0x4135b9['attributes']=_[_0x0510('0x35')](_0x2f2e5c[_0x0510('0x36')],qs[_0x0510('0x37')](_0xa70161[_0x0510('0x32')][_0x0510('0x37')]));_0x4135b9['attributes']=_0x4135b9[_0x0510('0x34')][_0x0510('0x48')]?_0x4135b9[_0x0510('0x34')]:_0x2f2e5c[_0x0510('0x36')];_0x4135b9[_0x0510('0x3a')]=qs[_0x0510('0x3b')](_0xa70161[_0x0510('0x32')][_0x0510('0x3b')]);_0x4135b9[_0x0510('0x3c')]=qs[_0x0510('0x33')](_[_0x0510('0x50')](_0xa70161[_0x0510('0x32')],_0x2f2e5c[_0x0510('0x33')]));if(_0xa70161[_0x0510('0x32')][_0x0510('0x3f')]){_0x4135b9['where']=_[_0x0510('0x3d')](_0x4135b9['where'],{'$or':_[_0x0510('0x30')](_0x4135b9['attributes'],function(_0x1dfdc7){var _0xf5d3e5={};_0xf5d3e5[_0x1dfdc7]={'$like':'%'+_0xa70161[_0x0510('0x32')][_0x0510('0x3f')]+'%'};return _0xf5d3e5;})});}_0x4135b9=_[_0x0510('0x3d')]({},_0x4135b9,_0xa70161[_0x0510('0x40')]);return _0x5ae0b9[_0x0510('0x4d')](_0x4135b9);}})[_0x0510('0x27')](function(_0xdff880){if(_0xdff880){_0x4c7fe9=_0xdff880['length'];if(!_0xa70161[_0x0510('0x32')][_0x0510('0x38')](_0x0510('0x39'))){_0x4135b9['limit']=qs[_0x0510('0x22')](_0xa70161[_0x0510('0x32')]['limit']);_0x4135b9[_0x0510('0x1f')]=qs[_0x0510('0x1f')](_0xa70161[_0x0510('0x32')][_0x0510('0x1f')]);}return _0x5ae0b9[_0x0510('0x4d')](_0x4135b9);}})['then'](function(_0x238b92){if(_0x238b92){return _0x238b92?{'count':_0x4c7fe9,'rows':_0x238b92}:null;}})[_0x0510('0x27')](respondWithResult(_0xcc837c,null))['catch'](handleError(_0xcc837c,null));};exports[_0x0510('0x51')]=function(_0xd781cd,_0x3cd097,_0x2595a7){if(_0xd781cd[_0x0510('0x4b')]['id']){delete _0xd781cd[_0x0510('0x4b')]['id'];}return db[_0x0510('0x2b')][_0x0510('0x4e')]({'where':{'id':_0xd781cd[_0x0510('0x46')]['id']}})[_0x0510('0x27')](handleEntityNotFound(_0x3cd097,null))[_0x0510('0x27')](function(_0x2eeb21){if(_0x2eeb21){_0xd781cd['body']['AccountId']=_0x2eeb21['id'];_0xd781cd[_0x0510('0x4b')][_0x0510('0x52')]=integrations['getSubjects'](_0xd781cd[_0x0510('0x4b')][_0x0510('0x53')],_0xd781cd[_0x0510('0x4b')][_0x0510('0x2e')]);_0xd781cd[_0x0510('0x4b')][_0x0510('0x54')]=integrations[_0x0510('0x55')](_0xd781cd[_0x0510('0x4b')]['channel'],_0xd781cd[_0x0510('0x4b')]['type']);return db[_0x0510('0x4f')]['create'](_0xd781cd['body'],{'include':[{'model':db[_0x0510('0x56')],'as':_0x0510('0x52')},{'model':db[_0x0510('0x56')],'as':'Descriptions'}]});}return null;})[_0x0510('0x27')](respondWithResult(_0x3cd097,null))[_0x0510('0x49')](handleError(_0x3cd097,null));};exports[_0x0510('0x57')]=function(_0x3780f9,_0xa765f2,_0x400942){var _0x5a93e2=[_0x0510('0x58'),_0x0510('0x59'),_0x0510('0x5a'),'subcategory','close_code',_0x0510('0x5b'),_0x0510('0x5c'),_0x0510('0x5d'),'category'];var _0x3c7f74=['parent','made_sla','caused_by',_0x0510('0x5e'),'upon_reject',_0x0510('0x5f'),'child_incidents',_0x0510('0x59'),_0x0510('0x60'),'number',_0x0510('0x61'),'sys_updated_by',_0x0510('0x62'),'user_input','sys_created_on',_0x0510('0x63'),_0x0510('0x64'),_0x0510('0x65'),'knowledge',_0x0510('0x3a'),_0x0510('0x66'),'closed_at',_0x0510('0x67'),_0x0510('0x68'),_0x0510('0x69'),_0x0510('0x6a'),_0x0510('0x6b'),_0x0510('0x6c'),_0x0510('0x6d'),_0x0510('0x6e'),_0x0510('0x6f'),_0x0510('0x70'),_0x0510('0x71'),'opened_at',_0x0510('0x72'),'group_list',_0x0510('0x73'),_0x0510('0x74'),_0x0510('0x75'),_0x0510('0x76'),'approval_set',_0x0510('0x77'),_0x0510('0x78'),_0x0510('0x79'),_0x0510('0x7a'),_0x0510('0x7b'),_0x0510('0x7c'),_0x0510('0x7d'),'assignment_group',_0x0510('0x7e'),_0x0510('0x7f'),_0x0510('0x80'),_0x0510('0x81'),_0x0510('0x5b'),_0x0510('0x82'),_0x0510('0x83'),_0x0510('0x84'),_0x0510('0x85'),_0x0510('0x86'),_0x0510('0x87'),_0x0510('0x88'),_0x0510('0x89'),'incident_state',_0x0510('0x8a'),'problem_id','company',_0x0510('0x8b'),'activity_due',_0x0510('0x8c'),_0x0510('0x5d'),_0x0510('0x8d'),_0x0510('0x8e'),_0x0510('0x8f'),_0x0510('0x90'),_0x0510('0x91'),_0x0510('0x92'),_0x0510('0x93'),_0x0510('0x94'),_0x0510('0x95'),_0x0510('0x96'),'correlation_id',_0x0510('0x97'),_0x0510('0x98')];var _0x8f1bbe='';var _0x2cd480='';var _0x44c5f0=[];var _0xbee7c='';var _0xd478f4='';var _0x50b242=[];var _0x5062aa='';var _0x499d41='';var _0xafb5b7={};var _0xc95403='';return db['ServicenowAccount'][_0x0510('0x4e')]({'where':{'id':_0x3780f9[_0x0510('0x46')]['id']},'attributes':['id',_0x0510('0x99'),_0x0510('0x9a'),_0x0510('0x9b'),_0x0510('0x9c'),_0x0510('0x9d')]})[_0x0510('0x27')](handleEntityNotFound(_0xa765f2,null))['then'](function(_0x53a399){if(_0x53a399){_0xc95403=_0x53a399[_0x0510('0x9c')];var _0x4f340a=_0xc95403['slice'](-0x1);if(_0x4f340a==='/'){_0xc95403=_0xc95403[_0x0510('0x9e')](0x0,_0xc95403[_0x0510('0x9f')](_0x4f340a));}_0x499d41=util['format'](_0x0510('0xa0'),_0xc95403);_0x5062aa=util['format']('%s/api/now/table/',_0xc95403);_0xafb5b7={'user':_0x53a399['username'],'pass':_0x53a399['password']};var _0x39f086={'method':_0x0510('0xa1'),'uri':_0x499d41+_0x0510('0xa2'),'auth':_0xafb5b7,'json':!![]};return rp(_0x39f086);}})[_0x0510('0x27')](function(_0x19480d){if(_0x19480d[_0x0510('0xa3')][_0x0510('0x48')]>0x0){_0x8f1bbe=_0x19480d[_0x0510('0xa3')];}console[_0x0510('0xa4')]('incident\x20table\x20objects',_0x8f1bbe);_0x50b242=[];_0x2cd480=Object[_0x0510('0xa5')]([],_0x8f1bbe);_[_0x0510('0xa6')](_0x2cd480,function(_0x10d08e){return!_0x5a93e2[_0x0510('0xa7')](_0x10d08e[_0x0510('0x31')]);});_0x2cd480[_0x0510('0xa8')](function(_0x29862b){var _0x5e2495=createFieldObject(_0x5062aa,_0xafb5b7,_0x29862b[_0x0510('0xa9')],_0x29862b[_0x0510('0x31')],_0x29862b[_0x0510('0xaa')],![]);_0x50b242['push'](_0x5e2495);});return Promise['all'](_0x50b242);})[_0x0510('0x27')](function(_0x544540){_0x44c5f0=_0x544540;_0xbee7c=Object[_0x0510('0xa5')]([],_0x8f1bbe);console[_0x0510('0xa4')](_0x0510('0xab'),_0x8f1bbe);_[_0x0510('0xa6')](_0xbee7c,function(_0x15acf6){return _0x3c7f74[_0x0510('0xa7')](_0x15acf6[_0x0510('0x31')]);});console[_0x0510('0xa4')](_0x0510('0xac'),_0xbee7c);_0x50b242=[];_0xbee7c[_0x0510('0xa8')](function(_0x217ced){var _0x26dca8=createFieldObject(_0x5062aa,_0xafb5b7,_0x217ced[_0x0510('0xa9')],_0x217ced[_0x0510('0x31')],_0x217ced[_0x0510('0xaa')],!![]);_0x50b242[_0x0510('0xad')](_0x26dca8);});return Promise[_0x0510('0xae')](_0x50b242);})[_0x0510('0x27')](function(_0x1c131a){_0xd478f4=_0x1c131a;var _0x5a930b=_0x44c5f0[_0x0510('0xaf')](_0xd478f4);return{'count':_0x5a930b['length'],'rows':_0x5a930b};})[_0x0510('0x27')](respondWithResult(_0xa765f2,null))[_0x0510('0x49')](function(_0x1cfb34){console[_0x0510('0xa4')]('ServiceNow\x20error:\x20'+_0x1cfb34);var _0x2ff1cc=_0x3780f9['query']['test']?0x1f4:_0x1cfb34['statusCode']||0x1f4;logger[_0x0510('0x29')](_0x1cfb34[_0x0510('0xb0')]);delete _0x1cfb34['name'];if(_0x2ff1cc===0x191){_0x2ff1cc=0x190;}_0xa765f2[_0x0510('0x1c')](_0x2ff1cc)[_0x0510('0xb1')](_0x3780f9[_0x0510('0x32')][_0x0510('0xb2')]?{'message':_0x0510('0xb3'),'statusCode':_0x1cfb34[_0x0510('0xb4')]}:_0x1cfb34);});};function createFieldObject(_0x2694f8,_0x113b57,_0x3ab6e6,_0x41c97a,_0x282662,_0x99c57b){return new Promise(function(_0x335d7a,_0x129746){var _0x2a3172={'id':_0x41c97a,'name':_0x282662,'custom':_0x99c57b};if(_0x3ab6e6===_0x0510('0xb5')){_0x2a3172[_0x0510('0x40')]=[{'name':_0x0510('0xb6'),'value':'true'},{'name':_0x0510('0xb7'),'value':_0x0510('0xb8')}];_0x335d7a(_0x2a3172);}else{var _0x5bb6c9={'method':'GET','uri':_0x2694f8+_0x0510('0xb9')+_0x41c97a,'auth':_0x113b57,'json':!![]};return rp(_0x5bb6c9)[_0x0510('0x27')](function(_0x165d94){var _0x1241d0=[];if(_0x165d94['result'][_0x0510('0x48')]>0x0){_0x165d94[_0x0510('0xa3')]['forEach'](function(_0x1da73b){if(_0x1da73b[_0x0510('0xba')]===_0x0510('0xb8')){var _0x2b4b5a={'name':_0x1da73b[_0x0510('0xaa')],'value':_0x1da73b[_0x0510('0xbb')]};_0x1241d0['push'](_0x2b4b5a);}});}_0x2a3172['options']=_0x1241d0;if(_0x2a3172[_0x0510('0x40')]['length']>0x0){_0x335d7a(_0x2a3172);}else{if(_0x99c57b==![]){_0x335d7a();}else{_0x335d7a(_0x2a3172);}}});}});}
\ No newline at end of file
+var _0xf3b8=['length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','catch','show','params','intersection','include','find','create','body','update','destroy','getConfigurations','nolimit','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','ServicenowConfiguration','ServicenowField','getFields','made_sla','knowledge','subcategory','notify','incident_state','severity','category','parent','caused_by','watch_list','upon_reject','sys_updated_on','child_incidents','hold_reason','approval_history','number','sys_updated_by','user_input','sys_domain','state','sys_created_by','calendar_stc','closed_at','cmdb_ci','impact','active','work_notes_list','business_service','priority','sys_domain_path','rfc','time_worked','opened_at','business_duration','group_list','work_end','reopened_time','resolved_at','work_notes','short_description','close_code','delivery_task','assignment_group','business_stc','additional_assignee_list','description','calendar_duration','sys_class_name','close_notes','closed_by','follow_up','parent_incident','sys_id','contact_type','reopened_by','urgency','company','assigned_to','comments','sla_due','due_date','sys_mod_count','reopen_count','sys_tags','upon_approval','correlation_id','location','password','remoteUri','serverUrl','slice','substring','%s/api/now/doc/table/schema/','format','username','GET','incident?sysparm_display_value=all','result','log','incident\x20table\x20objects','forEach','internalType','label','push','all','assign','TCL:\x20_object','remove','includes','ServiceNow\x20error:\x20','test','Wrong\x20credentials','statusCode','True','true','false','sys_choice?sysparm_query=name=incident^element=','inactive','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','then','error','stack','name','send','map','ServicenowAccount','rawAttributes','fieldName','key','query','keys','filters','model','attributes','fields'];(function(_0x415d4d,_0x106e24){var _0x41ad03=function(_0x581680){while(--_0x581680){_0x415d4d['push'](_0x415d4d['shift']());}};_0x41ad03(++_0x106e24);}(_0xf3b8,0x13d));var _0x8f3b=function(_0x4ae625,_0xf396d0){_0x4ae625=_0x4ae625-0x0;var _0x31accf=_0xf3b8[_0x4ae625];return _0x31accf;};'use strict';var emlformat=require(_0x8f3b('0x0'));var rimraf=require(_0x8f3b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8f3b('0x2'));var rp=require('request-promise');var moment=require(_0x8f3b('0x3'));var BPromise=require(_0x8f3b('0x4'));var Mustache=require(_0x8f3b('0x5'));var util=require('util');var path=require(_0x8f3b('0x6'));var sox=require(_0x8f3b('0x7'));var csv=require(_0x8f3b('0x8'));var ejs=require(_0x8f3b('0x9'));var fs=require('fs');var fs_extra=require(_0x8f3b('0xa'));var _=require(_0x8f3b('0xb'));var squel=require(_0x8f3b('0xc'));var crypto=require(_0x8f3b('0xd'));var jsforce=require(_0x8f3b('0xe'));var deskjs=require(_0x8f3b('0xf'));var toCsv=require(_0x8f3b('0x8'));var querystring=require(_0x8f3b('0x10'));var Papa=require(_0x8f3b('0x11'));var Redis=require(_0x8f3b('0x12'));var authService=require(_0x8f3b('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x8f3b('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8f3b('0x15'));var utils=require(_0x8f3b('0x16'));var config=require(_0x8f3b('0x17'));var licenseUtil=require(_0x8f3b('0x18'));var db=require(_0x8f3b('0x19'))['db'];var integrations=require(_0x8f3b('0x1a'));function respondWithStatusCode(_0x27429b,_0x36a007){_0x36a007=_0x36a007||0xcc;return function(_0x4f88e4){if(_0x4f88e4){return _0x27429b[_0x8f3b('0x1b')](_0x36a007);}return _0x27429b[_0x8f3b('0x1c')](_0x36a007)[_0x8f3b('0x1d')]();};}function respondWithResult(_0x42e6dc,_0x3fee7d){_0x3fee7d=_0x3fee7d||0xc8;return function(_0x132773){if(_0x132773){return _0x42e6dc[_0x8f3b('0x1c')](_0x3fee7d)[_0x8f3b('0x1e')](_0x132773);}};}function respondWithFilteredResult(_0x425876,_0x284448){return function(_0x470fc1){if(_0x470fc1){var _0x49f37a=typeof _0x284448['offset']===_0x8f3b('0x1f')&&typeof _0x284448[_0x8f3b('0x20')]===_0x8f3b('0x1f');var _0x3d7bfe=_0x470fc1[_0x8f3b('0x21')];var _0x21ce2c=_0x49f37a?0x0:_0x284448[_0x8f3b('0x22')];var _0x49bf19=_0x49f37a?_0x470fc1[_0x8f3b('0x21')]:_0x284448[_0x8f3b('0x22')]+_0x284448[_0x8f3b('0x20')];var _0x3e35b5;if(_0x49bf19>=_0x3d7bfe){_0x49bf19=_0x3d7bfe;_0x3e35b5=0xc8;}else{_0x3e35b5=0xce;}_0x425876[_0x8f3b('0x1c')](_0x3e35b5);return _0x425876['set'](_0x8f3b('0x23'),_0x21ce2c+'-'+_0x49bf19+'/'+_0x3d7bfe)[_0x8f3b('0x1e')](_0x470fc1);}return null;};}function patchUpdates(_0x3e2bfb){return function(_0x3a090d){try{jsonpatch[_0x8f3b('0x24')](_0x3a090d,_0x3e2bfb,!![]);}catch(_0x2a4782){return BPromise['reject'](_0x2a4782);}return _0x3a090d['save']();};}function saveUpdates(_0x229926,_0x12baf8){return function(_0x274ad3){if(_0x274ad3){return _0x274ad3['update'](_0x229926)['then'](function(_0x107cf5){return _0x107cf5;});}return null;};}function removeEntity(_0x5d5ace,_0x17a5e9){return function(_0x57dce4){if(_0x57dce4){return _0x57dce4['destroy']()[_0x8f3b('0x25')](function(){_0x5d5ace[_0x8f3b('0x1c')](0xcc)[_0x8f3b('0x1d')]();});}};}function handleEntityNotFound(_0x568dc2,_0x485577){return function(_0x475bd1){if(!_0x475bd1){_0x568dc2['sendStatus'](0x194);}return _0x475bd1;};}function handleError(_0x14cd06,_0x586965){_0x586965=_0x586965||0x1f4;return function(_0x15e6ac){logger[_0x8f3b('0x26')](_0x15e6ac[_0x8f3b('0x27')]);if(_0x15e6ac['name']){delete _0x15e6ac[_0x8f3b('0x28')];}_0x14cd06['status'](_0x586965)[_0x8f3b('0x29')](_0x15e6ac);};}exports['index']=function(_0x220059,_0x2993a3){var _0x299319={},_0x117cad={},_0x33ebeb={'count':0x0,'rows':[]};var _0x40da6c=_[_0x8f3b('0x2a')](db[_0x8f3b('0x2b')][_0x8f3b('0x2c')],function(_0x1f4432){return{'name':_0x1f4432[_0x8f3b('0x2d')],'type':_0x1f4432['type'][_0x8f3b('0x2e')]};});_0x117cad['model']=_['map'](_0x40da6c,'name');_0x117cad[_0x8f3b('0x2f')]=_[_0x8f3b('0x30')](_0x220059[_0x8f3b('0x2f')]);_0x117cad[_0x8f3b('0x31')]=_['intersection'](_0x117cad[_0x8f3b('0x32')],_0x117cad[_0x8f3b('0x2f')]);_0x299319[_0x8f3b('0x33')]=_['intersection'](_0x117cad[_0x8f3b('0x32')],qs[_0x8f3b('0x34')](_0x220059[_0x8f3b('0x2f')][_0x8f3b('0x34')]));_0x299319[_0x8f3b('0x33')]=_0x299319['attributes'][_0x8f3b('0x35')]?_0x299319[_0x8f3b('0x33')]:_0x117cad[_0x8f3b('0x32')];if(!_0x220059[_0x8f3b('0x2f')][_0x8f3b('0x36')]('nolimit')){_0x299319[_0x8f3b('0x20')]=qs[_0x8f3b('0x20')](_0x220059['query'][_0x8f3b('0x20')]);_0x299319[_0x8f3b('0x22')]=qs['offset'](_0x220059['query'][_0x8f3b('0x22')]);}_0x299319[_0x8f3b('0x37')]=qs['sort'](_0x220059[_0x8f3b('0x2f')][_0x8f3b('0x38')]);_0x299319[_0x8f3b('0x39')]=qs['filters'](_[_0x8f3b('0x3a')](_0x220059[_0x8f3b('0x2f')],_0x117cad[_0x8f3b('0x31')]),_0x40da6c);if(_0x220059['query'][_0x8f3b('0x3b')]){_0x299319['where']=_[_0x8f3b('0x3c')](_0x299319[_0x8f3b('0x39')],{'$or':_[_0x8f3b('0x2a')](_0x40da6c,function(_0x55492c){if(_0x55492c[_0x8f3b('0x3d')]!==_0x8f3b('0x3e')){var _0xe1d75f={};_0xe1d75f[_0x55492c[_0x8f3b('0x28')]]={'$like':'%'+_0x220059['query'][_0x8f3b('0x3b')]+'%'};return _0xe1d75f;}})});}_0x299319=_['merge']({},_0x299319,_0x220059[_0x8f3b('0x3f')]);var _0x2a83d4={'where':_0x299319[_0x8f3b('0x39')]};return db[_0x8f3b('0x2b')][_0x8f3b('0x21')](_0x2a83d4)[_0x8f3b('0x25')](function(_0x24226a){_0x33ebeb['count']=_0x24226a;if(_0x220059['query'][_0x8f3b('0x40')]){_0x299319['include']=[{'all':!![]}];}return db[_0x8f3b('0x2b')]['findAll'](_0x299319);})[_0x8f3b('0x25')](function(_0x2ef389){_0x33ebeb['rows']=_0x2ef389;return _0x33ebeb;})[_0x8f3b('0x25')](respondWithFilteredResult(_0x2993a3,_0x299319))[_0x8f3b('0x41')](handleError(_0x2993a3,null));};exports[_0x8f3b('0x42')]=function(_0x115382,_0x172fd9){var _0x495dc9={'raw':![],'where':{'id':_0x115382[_0x8f3b('0x43')]['id']}},_0x581258={};_0x581258[_0x8f3b('0x32')]=_[_0x8f3b('0x30')](db[_0x8f3b('0x2b')][_0x8f3b('0x2c')]);_0x581258[_0x8f3b('0x2f')]=_[_0x8f3b('0x30')](_0x115382[_0x8f3b('0x2f')]);_0x581258[_0x8f3b('0x31')]=_[_0x8f3b('0x44')](_0x581258['model'],_0x581258[_0x8f3b('0x2f')]);_0x495dc9[_0x8f3b('0x33')]=_[_0x8f3b('0x44')](_0x581258['model'],qs['fields'](_0x115382[_0x8f3b('0x2f')]['fields']));_0x495dc9['attributes']=_0x495dc9['attributes'][_0x8f3b('0x35')]?_0x495dc9[_0x8f3b('0x33')]:_0x581258[_0x8f3b('0x32')];if(_0x115382['query']['includeAll']){_0x495dc9[_0x8f3b('0x45')]=[{'all':!![]}];}_0x495dc9=_[_0x8f3b('0x3c')]({},_0x495dc9,_0x115382[_0x8f3b('0x3f')]);return db[_0x8f3b('0x2b')][_0x8f3b('0x46')](_0x495dc9)['then'](handleEntityNotFound(_0x172fd9,null))[_0x8f3b('0x25')](respondWithResult(_0x172fd9,null))[_0x8f3b('0x41')](handleError(_0x172fd9,null));};exports[_0x8f3b('0x47')]=function(_0x4d8e73,_0xc7e920){return db['ServicenowAccount'][_0x8f3b('0x47')](_0x4d8e73[_0x8f3b('0x48')],{})[_0x8f3b('0x25')](respondWithResult(_0xc7e920,0xc9))['catch'](handleError(_0xc7e920,null));};exports[_0x8f3b('0x49')]=function(_0x11f460,_0x324526){if(_0x11f460[_0x8f3b('0x48')]['id']){delete _0x11f460[_0x8f3b('0x48')]['id'];}return db[_0x8f3b('0x2b')][_0x8f3b('0x46')]({'where':{'id':_0x11f460[_0x8f3b('0x43')]['id']}})[_0x8f3b('0x25')](handleEntityNotFound(_0x324526,null))[_0x8f3b('0x25')](saveUpdates(_0x11f460[_0x8f3b('0x48')],null))[_0x8f3b('0x25')](respondWithResult(_0x324526,null))['catch'](handleError(_0x324526,null));};exports[_0x8f3b('0x4a')]=function(_0x30957c,_0x2ede8a){return db[_0x8f3b('0x2b')][_0x8f3b('0x46')]({'where':{'id':_0x30957c[_0x8f3b('0x43')]['id']}})[_0x8f3b('0x25')](handleEntityNotFound(_0x2ede8a,null))[_0x8f3b('0x25')](removeEntity(_0x2ede8a,null))[_0x8f3b('0x41')](handleError(_0x2ede8a,null));};exports[_0x8f3b('0x4b')]=function(_0x5eec3e,_0x2db7e8,_0x415ad6){var _0x532757={};var _0x4d7bd={};var _0x385309;var _0x137055;return db[_0x8f3b('0x2b')]['findOne']({'where':{'id':_0x5eec3e[_0x8f3b('0x43')]['id']}})['then'](handleEntityNotFound(_0x2db7e8,null))[_0x8f3b('0x25')](function(_0x2568e8){if(_0x2568e8){_0x385309=_0x2568e8;_0x4d7bd[_0x8f3b('0x32')]=_[_0x8f3b('0x30')](db['ServicenowConfiguration'][_0x8f3b('0x2c')]);_0x4d7bd['query']=_[_0x8f3b('0x30')](_0x5eec3e[_0x8f3b('0x2f')]);_0x4d7bd[_0x8f3b('0x31')]=_['intersection'](_0x4d7bd[_0x8f3b('0x32')],_0x4d7bd['query']);_0x532757[_0x8f3b('0x33')]=_[_0x8f3b('0x44')](_0x4d7bd[_0x8f3b('0x32')],qs[_0x8f3b('0x34')](_0x5eec3e[_0x8f3b('0x2f')][_0x8f3b('0x34')]));_0x532757[_0x8f3b('0x33')]=_0x532757[_0x8f3b('0x33')][_0x8f3b('0x35')]?_0x532757['attributes']:_0x4d7bd['model'];_0x532757[_0x8f3b('0x37')]=qs[_0x8f3b('0x38')](_0x5eec3e[_0x8f3b('0x2f')][_0x8f3b('0x38')]);_0x532757[_0x8f3b('0x39')]=qs[_0x8f3b('0x31')](_[_0x8f3b('0x3a')](_0x5eec3e[_0x8f3b('0x2f')],_0x4d7bd['filters']));if(_0x5eec3e['query'][_0x8f3b('0x3b')]){_0x532757['where']=_[_0x8f3b('0x3c')](_0x532757[_0x8f3b('0x39')],{'$or':_[_0x8f3b('0x2a')](_0x532757['attributes'],function(_0x46adda){var _0x563bfe={};_0x563bfe[_0x46adda]={'$like':'%'+_0x5eec3e['query']['filter']+'%'};return _0x563bfe;})});}_0x532757=_[_0x8f3b('0x3c')]({},_0x532757,_0x5eec3e[_0x8f3b('0x3f')]);return _0x385309[_0x8f3b('0x4b')](_0x532757);}})['then'](function(_0x55b4ec){if(_0x55b4ec){_0x137055=_0x55b4ec[_0x8f3b('0x35')];if(!_0x5eec3e['query']['hasOwnProperty'](_0x8f3b('0x4c'))){_0x532757[_0x8f3b('0x20')]=qs[_0x8f3b('0x20')](_0x5eec3e[_0x8f3b('0x2f')]['limit']);_0x532757[_0x8f3b('0x22')]=qs[_0x8f3b('0x22')](_0x5eec3e[_0x8f3b('0x2f')][_0x8f3b('0x22')]);}return _0x385309[_0x8f3b('0x4b')](_0x532757);}})[_0x8f3b('0x25')](function(_0x3522d0){if(_0x3522d0){return _0x3522d0?{'count':_0x137055,'rows':_0x3522d0}:null;}})[_0x8f3b('0x25')](respondWithResult(_0x2db7e8,null))[_0x8f3b('0x41')](handleError(_0x2db7e8,null));};exports[_0x8f3b('0x4d')]=function(_0x4f34e8,_0x1237ca,_0xac6e17){if(_0x4f34e8[_0x8f3b('0x48')]['id']){delete _0x4f34e8[_0x8f3b('0x48')]['id'];}return db[_0x8f3b('0x2b')][_0x8f3b('0x4e')]({'where':{'id':_0x4f34e8[_0x8f3b('0x43')]['id']}})[_0x8f3b('0x25')](handleEntityNotFound(_0x1237ca,null))[_0x8f3b('0x25')](function(_0x169937){if(_0x169937){_0x4f34e8[_0x8f3b('0x48')][_0x8f3b('0x4f')]=_0x169937['id'];_0x4f34e8[_0x8f3b('0x48')][_0x8f3b('0x50')]=integrations[_0x8f3b('0x51')](_0x4f34e8[_0x8f3b('0x48')][_0x8f3b('0x52')],_0x4f34e8['body'][_0x8f3b('0x3d')]);_0x4f34e8['body'][_0x8f3b('0x53')]=integrations['getDescriptions'](_0x4f34e8['body'][_0x8f3b('0x52')],_0x4f34e8[_0x8f3b('0x48')]['type']);return db[_0x8f3b('0x54')][_0x8f3b('0x47')](_0x4f34e8['body'],{'include':[{'model':db[_0x8f3b('0x55')],'as':_0x8f3b('0x50')},{'model':db[_0x8f3b('0x55')],'as':_0x8f3b('0x53')}]});}return null;})[_0x8f3b('0x25')](respondWithResult(_0x1237ca,null))[_0x8f3b('0x41')](handleError(_0x1237ca,null));};exports[_0x8f3b('0x56')]=function(_0x4b727b,_0x29afd1,_0x29f85f){var _0x4542f5=[_0x8f3b('0x57'),'hold_reason',_0x8f3b('0x58'),_0x8f3b('0x59'),'close_code',_0x8f3b('0x5a'),_0x8f3b('0x5b'),_0x8f3b('0x5c'),_0x8f3b('0x5d')];var _0x5ea6d5=[_0x8f3b('0x5e'),_0x8f3b('0x57'),_0x8f3b('0x5f'),_0x8f3b('0x60'),_0x8f3b('0x61'),_0x8f3b('0x62'),_0x8f3b('0x63'),_0x8f3b('0x64'),_0x8f3b('0x65'),_0x8f3b('0x66'),'resolved_by',_0x8f3b('0x67'),'opened_by',_0x8f3b('0x68'),'sys_created_on',_0x8f3b('0x69'),_0x8f3b('0x6a'),_0x8f3b('0x6b'),'knowledge','order',_0x8f3b('0x6c'),_0x8f3b('0x6d'),_0x8f3b('0x6e'),'delivery_plan',_0x8f3b('0x6f'),_0x8f3b('0x70'),_0x8f3b('0x71'),_0x8f3b('0x72'),_0x8f3b('0x73'),_0x8f3b('0x74'),_0x8f3b('0x75'),_0x8f3b('0x76'),'expected_start',_0x8f3b('0x77'),_0x8f3b('0x78'),_0x8f3b('0x79'),_0x8f3b('0x7a'),_0x8f3b('0x7b'),_0x8f3b('0x7c'),'caller_id','approval_set',_0x8f3b('0x59'),_0x8f3b('0x7d'),_0x8f3b('0x7e'),_0x8f3b('0x7f'),'correlation_display',_0x8f3b('0x80'),'work_start',_0x8f3b('0x81'),_0x8f3b('0x82'),_0x8f3b('0x83'),_0x8f3b('0x84'),_0x8f3b('0x85'),_0x8f3b('0x5a'),_0x8f3b('0x86'),_0x8f3b('0x87'),_0x8f3b('0x88'),_0x8f3b('0x89'),_0x8f3b('0x8a'),_0x8f3b('0x8b'),_0x8f3b('0x8c'),_0x8f3b('0x8d'),_0x8f3b('0x5b'),_0x8f3b('0x8e'),'problem_id',_0x8f3b('0x8f'),'reassignment_count','activity_due',_0x8f3b('0x90'),_0x8f3b('0x5c'),_0x8f3b('0x91'),_0x8f3b('0x92'),'approval','comments_and_work_notes',_0x8f3b('0x93'),_0x8f3b('0x94'),_0x8f3b('0x95'),_0x8f3b('0x96'),'escalation',_0x8f3b('0x97'),_0x8f3b('0x98'),_0x8f3b('0x99'),_0x8f3b('0x5d')];var _0x17ab6d='';var _0xb96865='';var _0x2c163c=[];var _0x356a59='';var _0x559a56='';var _0x319e2b=[];var _0x246528='';var _0x3227b7='';var _0x575448={};var _0x2e388e='';return db['ServicenowAccount']['findOne']({'where':{'id':_0x4b727b['params']['id']},'attributes':['id','username',_0x8f3b('0x9a'),'email',_0x8f3b('0x9b'),_0x8f3b('0x9c')]})[_0x8f3b('0x25')](handleEntityNotFound(_0x29afd1,null))[_0x8f3b('0x25')](function(_0x355bed){if(_0x355bed){_0x2e388e=_0x355bed[_0x8f3b('0x9b')];var _0x1bc840=_0x2e388e[_0x8f3b('0x9d')](-0x1);if(_0x1bc840==='/'){_0x2e388e=_0x2e388e[_0x8f3b('0x9e')](0x0,_0x2e388e['lastIndexOf'](_0x1bc840));}_0x3227b7=util['format'](_0x8f3b('0x9f'),_0x2e388e);_0x246528=util[_0x8f3b('0xa0')]('%s/api/now/table/',_0x2e388e);_0x575448={'user':_0x355bed[_0x8f3b('0xa1')],'pass':_0x355bed[_0x8f3b('0x9a')]};var _0x120749={'method':_0x8f3b('0xa2'),'uri':_0x3227b7+_0x8f3b('0xa3'),'auth':_0x575448,'json':!![]};return rp(_0x120749);}})[_0x8f3b('0x25')](function(_0x412b1a){if(_0x412b1a[_0x8f3b('0xa4')]['length']>0x0){_0x17ab6d=_0x412b1a[_0x8f3b('0xa4')];}console[_0x8f3b('0xa5')](_0x8f3b('0xa6'),_0x17ab6d);_0x319e2b=[];_0xb96865=Object['assign']([],_0x17ab6d);_['remove'](_0xb96865,function(_0x4b15fb){return!_0x4542f5['includes'](_0x4b15fb[_0x8f3b('0x28')]);});_0xb96865[_0x8f3b('0xa7')](function(_0x27ef2d){var _0x4d9989=createFieldObject(_0x246528,_0x575448,_0x27ef2d[_0x8f3b('0xa8')],_0x27ef2d[_0x8f3b('0x28')],_0x27ef2d[_0x8f3b('0xa9')],![]);_0x319e2b[_0x8f3b('0xaa')](_0x4d9989);});return Promise[_0x8f3b('0xab')](_0x319e2b);})[_0x8f3b('0x25')](function(_0x1adcbe){_0x2c163c=_0x1adcbe;_0x356a59=Object[_0x8f3b('0xac')]([],_0x17ab6d);console['log'](_0x8f3b('0xad'),_0x17ab6d);_[_0x8f3b('0xae')](_0x356a59,function(_0x101d4f){return _0x5ea6d5[_0x8f3b('0xaf')](_0x101d4f[_0x8f3b('0x28')]);});console[_0x8f3b('0xa5')]('TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom',_0x356a59);_0x319e2b=[];_0x356a59[_0x8f3b('0xa7')](function(_0x933975){var _0x170de4=createFieldObject(_0x246528,_0x575448,_0x933975[_0x8f3b('0xa8')],_0x933975[_0x8f3b('0x28')],_0x933975['label'],!![]);_0x319e2b[_0x8f3b('0xaa')](_0x170de4);});return Promise[_0x8f3b('0xab')](_0x319e2b);})['then'](function(_0x5d01dd){_0x559a56=_0x5d01dd;var _0x4d224a=_0x2c163c['concat'](_0x559a56);return{'count':_0x4d224a[_0x8f3b('0x35')],'rows':_0x4d224a};})[_0x8f3b('0x25')](respondWithResult(_0x29afd1,null))[_0x8f3b('0x41')](function(_0x180f2a){console[_0x8f3b('0xa5')](_0x8f3b('0xb0')+_0x180f2a);var _0x1280b6=_0x4b727b[_0x8f3b('0x2f')][_0x8f3b('0xb1')]?0x1f4:_0x180f2a['statusCode']||0x1f4;logger['error'](_0x180f2a[_0x8f3b('0x27')]);delete _0x180f2a[_0x8f3b('0x28')];if(_0x1280b6===0x191){_0x1280b6=0x190;}_0x29afd1['status'](_0x1280b6)[_0x8f3b('0x29')](_0x4b727b[_0x8f3b('0x2f')][_0x8f3b('0xb1')]?{'message':_0x8f3b('0xb2'),'statusCode':_0x180f2a[_0x8f3b('0xb3')]}:_0x180f2a);});};function createFieldObject(_0x1c57f4,_0x5ef640,_0xb6ec98,_0x302efc,_0xcda1f,_0x2823cf){return new Promise(function(_0xae4e03,_0x3fb259){var _0x3d7aa8={'id':_0x302efc,'name':_0xcda1f,'custom':_0x2823cf};if(_0xb6ec98==='boolean'){_0x3d7aa8[_0x8f3b('0x3f')]=[{'name':_0x8f3b('0xb4'),'value':_0x8f3b('0xb5')},{'name':'False','value':_0x8f3b('0xb6')}];_0xae4e03(_0x3d7aa8);}else{var _0xebc8e4={'method':_0x8f3b('0xa2'),'uri':_0x1c57f4+_0x8f3b('0xb7')+_0x302efc,'auth':_0x5ef640,'json':!![]};return rp(_0xebc8e4)['then'](function(_0x3edcdb){var _0x1832ae=[];if(_0x3edcdb[_0x8f3b('0xa4')][_0x8f3b('0x35')]>0x0){_0x3edcdb[_0x8f3b('0xa4')]['forEach'](function(_0x355344){if(_0x355344[_0x8f3b('0xb8')]===_0x8f3b('0xb6')){var _0x5d169={'name':_0x355344[_0x8f3b('0xa9')],'value':_0x355344['value']};_0x1832ae[_0x8f3b('0xaa')](_0x5d169);}});}_0x3d7aa8[_0x8f3b('0x3f')]=_0x1832ae;if(_0x3d7aa8[_0x8f3b('0x3f')][_0x8f3b('0x35')]>0x0){_0xae4e03(_0x3d7aa8);}else{if(_0x2823cf==![]){_0xae4e03();}else{_0xae4e03(_0x3d7aa8);}}});}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d17=['lodash','util','moment','bluebird','request-promise','rimraf','../../config/environment','./intServicenowAccount.attributes','../../components/integrations/configuration','define','ServicenowAccount','int_servicenow_accounts'];(function(_0x56a515,_0x4328f0){var _0x1543f8=function(_0x575a71){while(--_0x575a71){_0x56a515['push'](_0x56a515['shift']());}};_0x1543f8(++_0x4328f0);}(_0x5d17,0x114));var _0x75d1=function(_0x5018bd,_0x24b200){_0x5018bd=_0x5018bd-0x0;var _0x5cb7c7=_0x5d17[_0x5018bd];return _0x5cb7c7;};'use strict';var _=require(_0x75d1('0x0'));var util=require(_0x75d1('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x75d1('0x2'));var BPromise=require(_0x75d1('0x3'));var rp=require(_0x75d1('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x75d1('0x5'));var config=require(_0x75d1('0x6'));var attributes=require(_0x75d1('0x7'));var integrations=require(_0x75d1('0x8'));module['exports']=function(_0x458681,_0x116a51){return _0x458681[_0x75d1('0x9')](_0x75d1('0xa'),attributes,{'tableName':_0x75d1('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfdbd=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./intServicenowAccount.attributes','exports','int_servicenow_accounts'];(function(_0x500bf5,_0x4f5a26){var _0x1d254f=function(_0x17e9ef){while(--_0x17e9ef){_0x500bf5['push'](_0x500bf5['shift']());}};_0x1d254f(++_0x4f5a26);}(_0xfdbd,0xf0));var _0xdfdb=function(_0x3ca7a9,_0x4fc0c7){_0x3ca7a9=_0x3ca7a9-0x0;var _0x399428=_0xfdbd[_0x3ca7a9];return _0x399428;};'use strict';var _=require(_0xdfdb('0x0'));var util=require(_0xdfdb('0x1'));var logger=require(_0xdfdb('0x2'))(_0xdfdb('0x3'));var moment=require(_0xdfdb('0x4'));var BPromise=require(_0xdfdb('0x5'));var rp=require(_0xdfdb('0x6'));var fs=require('fs');var path=require(_0xdfdb('0x7'));var rimraf=require(_0xdfdb('0x8'));var config=require('../../config/environment');var attributes=require(_0xdfdb('0x9'));var integrations=require('../../components/integrations/configuration');module[_0xdfdb('0xa')]=function(_0x41bd5e,_0x489f19){return _0x41bd5e['define']('ServicenowAccount',attributes,{'tableName':_0xdfdb('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1592=['ServicenowAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','result','GetServicenowAccount','ServicenowAccount','findAll','options','raw','where','attributes','include','map','model','catch','ShowServicenowAccount','find','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','http','request','then'];(function(_0x8e9386,_0x3cc60f){var _0x4abf26=function(_0x59de5a){while(--_0x59de5a){_0x8e9386['push'](_0x8e9386['shift']());}};_0x4abf26(++_0x3cc60f);}(_0x1592,0x18c));var _0x2159=function(_0x1d406d,_0x5b76e7){_0x1d406d=_0x1d406d-0x0;var _0x3e8f22=_0x1592[_0x1d406d];return _0x3e8f22;};'use strict';var _=require(_0x2159('0x0'));var util=require(_0x2159('0x1'));var moment=require(_0x2159('0x2'));var BPromise=require(_0x2159('0x3'));var rs=require(_0x2159('0x4'));var fs=require('fs');var Redis=require(_0x2159('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x2159('0x6'))(_0x2159('0x7'));var config=require(_0x2159('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x2159('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x49f193,_0x57759d,_0x25666c){return new BPromise(function(_0x21b441,_0x2b3f93){return client[_0x2159('0xa')](_0x49f193,_0x25666c)[_0x2159('0xb')](function(_0x364ae2){logger['info'](_0x2159('0xc'),_0x57759d,'request\x20sent');logger[_0x2159('0xd')]('ServicenowAccount,\x20%s,\x20%s,\x20%s',_0x57759d,_0x2159('0xe'),JSON[_0x2159('0xf')](_0x364ae2));if(_0x364ae2[_0x2159('0x10')]){if(_0x364ae2['error'][_0x2159('0x11')]===0x1f4){logger['error'](_0x2159('0xc'),_0x57759d,_0x364ae2[_0x2159('0x10')]['message']);return _0x2b3f93(_0x364ae2[_0x2159('0x10')]['message']);}logger[_0x2159('0x10')](_0x2159('0xc'),_0x57759d,_0x364ae2[_0x2159('0x10')]['message']);return _0x21b441(_0x364ae2[_0x2159('0x10')][_0x2159('0x12')]);}else{logger[_0x2159('0x13')](_0x2159('0xc'),_0x57759d,_0x2159('0xe'));_0x21b441(_0x364ae2[_0x2159('0x14')][_0x2159('0x12')]);}})['catch'](function(_0x5e5b3b){logger[_0x2159('0x10')]('ServicenowAccount,\x20%s,\x20%s',_0x57759d,_0x5e5b3b);_0x2b3f93(_0x5e5b3b);});});}exports[_0x2159('0x15')]=function(_0x1d10f8){var _0x1322a7=this;return new Promise(function(_0x310f1c,_0x165cde){return db[_0x2159('0x16')][_0x2159('0x17')]({'raw':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8[_0x2159('0x18')][_0x2159('0x19')]===undefined?!![]:![]:!![],'where':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8[_0x2159('0x18')][_0x2159('0x1a')]||null:null,'attributes':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8[_0x2159('0x18')][_0x2159('0x1b')]||null:null,'limit':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8['options']['limit']||null:null,'include':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8['options'][_0x2159('0x1c')]?_[_0x2159('0x1d')](_0x1d10f8[_0x2159('0x18')][_0x2159('0x1c')],function(_0x1a8597){return{'model':db[_0x1a8597[_0x2159('0x1e')]],'as':_0x1a8597['as'],'attributes':_0x1a8597[_0x2159('0x1b')],'include':_0x1a8597[_0x2159('0x1c')]?_['map'](_0x1a8597[_0x2159('0x1c')],function(_0x2acb6e){return{'model':db[_0x2acb6e[_0x2159('0x1e')]],'as':_0x2acb6e['as'],'attributes':_0x2acb6e['attributes'],'include':_0x2acb6e[_0x2159('0x1c')]?_[_0x2159('0x1d')](_0x2acb6e['include'],function(_0x19da5a){return{'model':db[_0x19da5a['model']],'as':_0x19da5a['as'],'attributes':_0x19da5a[_0x2159('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x2159('0xb')](function(_0x3d0892){logger[_0x2159('0x13')]('GetServicenowAccount',_0x1d10f8);logger[_0x2159('0xd')]('GetServicenowAccount',_0x1d10f8,JSON['stringify'](_0x3d0892));_0x310f1c(_0x3d0892);})[_0x2159('0x1f')](function(_0x576f65){logger['error'](_0x2159('0x15'),_0x576f65['message'],_0x1d10f8);_0x165cde(_0x1322a7[_0x2159('0x10')](0x1f4,_0x576f65[_0x2159('0x12')]));});});};exports[_0x2159('0x20')]=function(_0x4dedde){var _0x1ac78d=this;return new Promise(function(_0xb0fccf,_0x562b89){return db[_0x2159('0x16')][_0x2159('0x21')]({'raw':_0x4dedde[_0x2159('0x18')]?_0x4dedde[_0x2159('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x4dedde[_0x2159('0x18')]?_0x4dedde['options'][_0x2159('0x1a')]||null:null,'attributes':_0x4dedde[_0x2159('0x18')]?_0x4dedde[_0x2159('0x18')][_0x2159('0x1b')]||null:null,'include':_0x4dedde[_0x2159('0x18')]?_0x4dedde[_0x2159('0x18')][_0x2159('0x1c')]?_[_0x2159('0x1d')](_0x4dedde[_0x2159('0x18')][_0x2159('0x1c')],function(_0x29842d){return{'model':db[_0x29842d['model']],'as':_0x29842d['as'],'attributes':_0x29842d['attributes'],'include':_0x29842d['include']?_[_0x2159('0x1d')](_0x29842d[_0x2159('0x1c')],function(_0x57437d){return{'model':db[_0x57437d['model']],'as':_0x57437d['as'],'attributes':_0x57437d['attributes'],'include':_0x57437d['include']?_[_0x2159('0x1d')](_0x57437d['include'],function(_0x209cee){return{'model':db[_0x209cee[_0x2159('0x1e')]],'as':_0x209cee['as'],'attributes':_0x209cee[_0x2159('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3175d7){logger[_0x2159('0x13')](_0x2159('0x20'),_0x4dedde);logger['debug']('ShowServicenowAccount',_0x4dedde,JSON['stringify'](_0x3175d7));_0xb0fccf(_0x3175d7);})[_0x2159('0x1f')](function(_0x3acf8c){logger[_0x2159('0x10')](_0x2159('0x20'),_0x3acf8c[_0x2159('0x12')],_0x4dedde);_0x562b89(_0x1ac78d['error'](0x1f4,_0x3acf8c[_0x2159('0x12')]));});});};
\ No newline at end of file
+var _0xb9d8=['stringify','error','code','message','info','result','catch','GetServicenowAccount','ServicenowAccount','findAll','options','raw','where','attributes','limit','include','map','model','find','ShowServicenowAccount','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','ServicenowAccount,\x20%s,\x20%s','request\x20sent','debug','ServicenowAccount,\x20%s,\x20%s,\x20%s'];(function(_0x63eb47,_0x52c242){var _0x26cefe=function(_0x2e2e11){while(--_0x2e2e11){_0x63eb47['push'](_0x63eb47['shift']());}};_0x26cefe(++_0x52c242);}(_0xb9d8,0x125));var _0x8b9d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb9d8[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x8b9d('0x0'));var util=require(_0x8b9d('0x1'));var moment=require(_0x8b9d('0x2'));var BPromise=require(_0x8b9d('0x3'));var rs=require(_0x8b9d('0x4'));var fs=require('fs');var Redis=require(_0x8b9d('0x5'));var db=require(_0x8b9d('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x8b9d('0x7'))(_0x8b9d('0x8'));var config=require(_0x8b9d('0x9'));var jayson=require(_0x8b9d('0xa'));var client=jayson[_0x8b9d('0xb')][_0x8b9d('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3954da,_0x1d24f4,_0x2688e4){return new BPromise(function(_0x25f2a3,_0x2f6924){return client[_0x8b9d('0xd')](_0x3954da,_0x2688e4)[_0x8b9d('0xe')](function(_0x223167){logger['info'](_0x8b9d('0xf'),_0x1d24f4,_0x8b9d('0x10'));logger[_0x8b9d('0x11')](_0x8b9d('0x12'),_0x1d24f4,_0x8b9d('0x10'),JSON[_0x8b9d('0x13')](_0x223167));if(_0x223167[_0x8b9d('0x14')]){if(_0x223167[_0x8b9d('0x14')][_0x8b9d('0x15')]===0x1f4){logger[_0x8b9d('0x14')]('ServicenowAccount,\x20%s,\x20%s',_0x1d24f4,_0x223167[_0x8b9d('0x14')][_0x8b9d('0x16')]);return _0x2f6924(_0x223167['error'][_0x8b9d('0x16')]);}logger['error']('ServicenowAccount,\x20%s,\x20%s',_0x1d24f4,_0x223167[_0x8b9d('0x14')][_0x8b9d('0x16')]);return _0x25f2a3(_0x223167[_0x8b9d('0x14')][_0x8b9d('0x16')]);}else{logger[_0x8b9d('0x17')](_0x8b9d('0xf'),_0x1d24f4,_0x8b9d('0x10'));_0x25f2a3(_0x223167[_0x8b9d('0x18')][_0x8b9d('0x16')]);}})[_0x8b9d('0x19')](function(_0x7494f5){logger[_0x8b9d('0x14')]('ServicenowAccount,\x20%s,\x20%s',_0x1d24f4,_0x7494f5);_0x2f6924(_0x7494f5);});});}exports[_0x8b9d('0x1a')]=function(_0x85d33f){var _0x36d1d3=this;return new Promise(function(_0x6b3898,_0x28de2d){return db[_0x8b9d('0x1b')][_0x8b9d('0x1c')]({'raw':_0x85d33f[_0x8b9d('0x1d')]?_0x85d33f[_0x8b9d('0x1d')][_0x8b9d('0x1e')]===undefined?!![]:![]:!![],'where':_0x85d33f[_0x8b9d('0x1d')]?_0x85d33f['options'][_0x8b9d('0x1f')]||null:null,'attributes':_0x85d33f['options']?_0x85d33f[_0x8b9d('0x1d')][_0x8b9d('0x20')]||null:null,'limit':_0x85d33f['options']?_0x85d33f[_0x8b9d('0x1d')][_0x8b9d('0x21')]||null:null,'include':_0x85d33f[_0x8b9d('0x1d')]?_0x85d33f['options'][_0x8b9d('0x22')]?_[_0x8b9d('0x23')](_0x85d33f[_0x8b9d('0x1d')][_0x8b9d('0x22')],function(_0x269f43){return{'model':db[_0x269f43[_0x8b9d('0x24')]],'as':_0x269f43['as'],'attributes':_0x269f43[_0x8b9d('0x20')],'include':_0x269f43['include']?_[_0x8b9d('0x23')](_0x269f43[_0x8b9d('0x22')],function(_0x47ee30){return{'model':db[_0x47ee30['model']],'as':_0x47ee30['as'],'attributes':_0x47ee30[_0x8b9d('0x20')],'include':_0x47ee30['include']?_['map'](_0x47ee30[_0x8b9d('0x22')],function(_0x10fed3){return{'model':db[_0x10fed3['model']],'as':_0x10fed3['as'],'attributes':_0x10fed3[_0x8b9d('0x20')]};}):[]};}):[]};}):[]:[]})[_0x8b9d('0xe')](function(_0x3fd1a7){logger[_0x8b9d('0x17')](_0x8b9d('0x1a'),_0x85d33f);logger[_0x8b9d('0x11')](_0x8b9d('0x1a'),_0x85d33f,JSON[_0x8b9d('0x13')](_0x3fd1a7));_0x6b3898(_0x3fd1a7);})[_0x8b9d('0x19')](function(_0x374ff4){logger['error'](_0x8b9d('0x1a'),_0x374ff4[_0x8b9d('0x16')],_0x85d33f);_0x28de2d(_0x36d1d3[_0x8b9d('0x14')](0x1f4,_0x374ff4['message']));});});};exports['ShowServicenowAccount']=function(_0x5a7480){var _0x15667b=this;return new Promise(function(_0x38bd80,_0x2a8b21){return db['ServicenowAccount'][_0x8b9d('0x25')]({'raw':_0x5a7480[_0x8b9d('0x1d')]?_0x5a7480['options'][_0x8b9d('0x1e')]===undefined?!![]:![]:!![],'where':_0x5a7480[_0x8b9d('0x1d')]?_0x5a7480[_0x8b9d('0x1d')][_0x8b9d('0x1f')]||null:null,'attributes':_0x5a7480['options']?_0x5a7480[_0x8b9d('0x1d')][_0x8b9d('0x20')]||null:null,'include':_0x5a7480[_0x8b9d('0x1d')]?_0x5a7480[_0x8b9d('0x1d')][_0x8b9d('0x22')]?_[_0x8b9d('0x23')](_0x5a7480[_0x8b9d('0x1d')][_0x8b9d('0x22')],function(_0x339e1b){return{'model':db[_0x339e1b[_0x8b9d('0x24')]],'as':_0x339e1b['as'],'attributes':_0x339e1b['attributes'],'include':_0x339e1b[_0x8b9d('0x22')]?_[_0x8b9d('0x23')](_0x339e1b[_0x8b9d('0x22')],function(_0x85d921){return{'model':db[_0x85d921[_0x8b9d('0x24')]],'as':_0x85d921['as'],'attributes':_0x85d921['attributes'],'include':_0x85d921['include']?_[_0x8b9d('0x23')](_0x85d921['include'],function(_0xcffee5){return{'model':db[_0xcffee5[_0x8b9d('0x24')]],'as':_0xcffee5['as'],'attributes':_0xcffee5[_0x8b9d('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x582d27){logger[_0x8b9d('0x17')](_0x8b9d('0x26'),_0x5a7480);logger['debug'](_0x8b9d('0x26'),_0x5a7480,JSON[_0x8b9d('0x13')](_0x582d27));_0x38bd80(_0x582d27);})['catch'](function(_0x310fa5){logger[_0x8b9d('0x14')](_0x8b9d('0x26'),_0x310fa5[_0x8b9d('0x16')],_0x5a7480);_0x2a8b21(_0x15667b[_0x8b9d('0x14')](0x1f4,_0x310fa5[_0x8b9d('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76ee=['../../components/interaction/service','../../config/environment','./intServicenowConfiguration.controller','get','isAuthenticated','/:id','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','update','delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0xf0bc07,_0x510ebf){var _0x1c50c2=function(_0x2e2bdf){while(--_0x2e2bdf){_0xf0bc07['push'](_0xf0bc07['shift']());}};_0x1c50c2(++_0x510ebf);}(_0x76ee,0x191));var _0xe76e=function(_0xb65c36,_0x57219b){_0xb65c36=_0xb65c36-0x0;var _0x4edc3a=_0x76ee[_0xb65c36];return _0x4edc3a;};'use strict';var multer=require('multer');var util=require(_0xe76e('0x0'));var path=require(_0xe76e('0x1'));var timeout=require(_0xe76e('0x2'));var express=require(_0xe76e('0x3'));var router=express[_0xe76e('0x4')]();var fs_extra=require(_0xe76e('0x5'));var auth=require(_0xe76e('0x6'));var interaction=require(_0xe76e('0x7'));var config=require(_0xe76e('0x8'));var controller=require(_0xe76e('0x9'));router[_0xe76e('0xa')]('/',auth[_0xe76e('0xb')](),controller['index']);router[_0xe76e('0xa')](_0xe76e('0xc'),auth[_0xe76e('0xb')](),controller[_0xe76e('0xd')]);router[_0xe76e('0xa')](_0xe76e('0xe'),auth['isAuthenticated'](),controller['getFields']);router[_0xe76e('0xa')](_0xe76e('0xf'),auth[_0xe76e('0xb')](),controller[_0xe76e('0x10')]);router[_0xe76e('0xa')](_0xe76e('0x11'),auth[_0xe76e('0xb')](),controller[_0xe76e('0x12')]);router[_0xe76e('0x13')]('/',auth[_0xe76e('0xb')](),controller[_0xe76e('0x14')]);router['put'](_0xe76e('0xc'),auth[_0xe76e('0xb')](),controller[_0xe76e('0x15')]);router[_0xe76e('0x16')]('/:id',auth[_0xe76e('0xb')](),controller[_0xe76e('0x17')]);module['exports']=router;
\ No newline at end of file
+var _0x7a5e=['multer','util','path','connect-timeout','Router','../../config/environment','./intServicenowConfiguration.controller','get','show','getFields','/:id/subjects','/:id/descriptions','isAuthenticated','getDescriptions','put','/:id','update','delete','destroy','exports'];(function(_0x45c95c,_0xa0b806){var _0x52239b=function(_0x87c9da){while(--_0x87c9da){_0x45c95c['push'](_0x45c95c['shift']());}};_0x52239b(++_0xa0b806);}(_0x7a5e,0xf0));var _0xe7a5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7a5e[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xe7a5('0x0'));var util=require(_0xe7a5('0x1'));var path=require(_0xe7a5('0x2'));var timeout=require(_0xe7a5('0x3'));var express=require('express');var router=express[_0xe7a5('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xe7a5('0x5'));var controller=require(_0xe7a5('0x6'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xe7a5('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xe7a5('0x8')]);router[_0xe7a5('0x7')]('/:id/fields',auth['isAuthenticated'](),controller[_0xe7a5('0x9')]);router[_0xe7a5('0x7')](_0xe7a5('0xa'),auth['isAuthenticated'](),controller['getSubjects']);router[_0xe7a5('0x7')](_0xe7a5('0xb'),auth[_0xe7a5('0xc')](),controller[_0xe7a5('0xd')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0xe7a5('0xe')](_0xe7a5('0xf'),auth[_0xe7a5('0xc')](),controller[_0xe7a5('0x10')]);router[_0xe7a5('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xe7a5('0x12')]);module[_0xe7a5('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x683b=['STRING','sequelize','exports'];(function(_0x2df580,_0x5f4dad){var _0x4b5186=function(_0x5181bc){while(--_0x5181bc){_0x2df580['push'](_0x2df580['shift']());}};_0x4b5186(++_0x5f4dad);}(_0x683b,0x1de));var _0xb683=function(_0x3c6bc1,_0x40b3c7){_0x3c6bc1=_0x3c6bc1-0x0;var _0x215adf=_0x683b[_0x3c6bc1];return _0x215adf;};'use strict';var Sequelize=require(_0xb683('0x0'));module[_0xb683('0x1')]={'name':{'type':Sequelize[_0xb683('0x2')]},'description':{'type':Sequelize[_0xb683('0x2')]}};
\ No newline at end of file
+var _0xe09b=['exports','STRING'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0xe09b,0x15e));var _0xbe09=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe09b[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module[_0xbe09('0x0')]={'name':{'type':Sequelize[_0xbe09('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6a9=['body','find','findOne','getFields','getSubjects','ServicenowField','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','end','stack','name','send','index','map','ServicenowConfiguration','rawAttributes','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','catch','create'];(function(_0x140a03,_0x5cf435){var _0x4aa378=function(_0x885aa3){while(--_0x885aa3){_0x140a03['push'](_0x140a03['shift']());}};_0x4aa378(++_0x5cf435);}(_0xb6a9,0xf4));var _0x9b6a=function(_0x3c4737,_0x2329ec){_0x3c4737=_0x3c4737-0x0;var _0x2bb926=_0xb6a9[_0x3c4737];return _0x2bb926;};'use strict';var emlformat=require(_0x9b6a('0x0'));var rimraf=require(_0x9b6a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9b6a('0x2'));var rp=require(_0x9b6a('0x3'));var moment=require('moment');var BPromise=require(_0x9b6a('0x4'));var Mustache=require(_0x9b6a('0x5'));var util=require(_0x9b6a('0x6'));var path=require(_0x9b6a('0x7'));var sox=require('sox');var csv=require(_0x9b6a('0x8'));var ejs=require(_0x9b6a('0x9'));var fs=require('fs');var fs_extra=require(_0x9b6a('0xa'));var _=require(_0x9b6a('0xb'));var squel=require(_0x9b6a('0xc'));var crypto=require(_0x9b6a('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x9b6a('0xe'));var toCsv=require(_0x9b6a('0x8'));var querystring=require(_0x9b6a('0xf'));var Papa=require(_0x9b6a('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9b6a('0x11'));var as=require(_0x9b6a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9b6a('0x13'))(_0x9b6a('0x14'));var utils=require(_0x9b6a('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9b6a('0x16'))['db'];function respondWithStatusCode(_0x4326aa,_0x51b12d){_0x51b12d=_0x51b12d||0xcc;return function(_0x4e0f38){if(_0x4e0f38){return _0x4326aa[_0x9b6a('0x17')](_0x51b12d);}return _0x4326aa[_0x9b6a('0x18')](_0x51b12d)['end']();};}function respondWithResult(_0x494a32,_0x2075b7){_0x2075b7=_0x2075b7||0xc8;return function(_0xed60e7){if(_0xed60e7){return _0x494a32[_0x9b6a('0x18')](_0x2075b7)[_0x9b6a('0x19')](_0xed60e7);}};}function respondWithFilteredResult(_0x2bfae4,_0x4c45c4){return function(_0x4e4066){if(_0x4e4066){var _0x479b2b=typeof _0x4c45c4[_0x9b6a('0x1a')]===_0x9b6a('0x1b')&&typeof _0x4c45c4[_0x9b6a('0x1c')]===_0x9b6a('0x1b');var _0x2ee185=_0x4e4066[_0x9b6a('0x1d')];var _0x35c28c=_0x479b2b?0x0:_0x4c45c4[_0x9b6a('0x1a')];var _0x71435b=_0x479b2b?_0x4e4066['count']:_0x4c45c4[_0x9b6a('0x1a')]+_0x4c45c4['limit'];var _0x4db42d;if(_0x71435b>=_0x2ee185){_0x71435b=_0x2ee185;_0x4db42d=0xc8;}else{_0x4db42d=0xce;}_0x2bfae4[_0x9b6a('0x18')](_0x4db42d);return _0x2bfae4[_0x9b6a('0x1e')](_0x9b6a('0x1f'),_0x35c28c+'-'+_0x71435b+'/'+_0x2ee185)[_0x9b6a('0x19')](_0x4e4066);}return null;};}function patchUpdates(_0x4cc64d){return function(_0x2adecb){try{jsonpatch[_0x9b6a('0x20')](_0x2adecb,_0x4cc64d,!![]);}catch(_0xebdcd4){return BPromise[_0x9b6a('0x21')](_0xebdcd4);}return _0x2adecb[_0x9b6a('0x22')]();};}function saveUpdates(_0x136d9e,_0x4ebbfe){return function(_0x336758){if(_0x336758){return _0x336758[_0x9b6a('0x23')](_0x136d9e)[_0x9b6a('0x24')](function(_0x144c6f){return _0x144c6f;});}return null;};}function removeEntity(_0x37e832,_0x34ca6c){return function(_0x275f3e){if(_0x275f3e){return _0x275f3e['destroy']()['then'](function(){_0x37e832['status'](0xcc)[_0x9b6a('0x25')]();});}};}function handleEntityNotFound(_0x14b646,_0x3ceff8){return function(_0x2bdb74){if(!_0x2bdb74){_0x14b646[_0x9b6a('0x17')](0x194);}return _0x2bdb74;};}function handleError(_0x35fb3d,_0x431e11){_0x431e11=_0x431e11||0x1f4;return function(_0x42b269){logger['error'](_0x42b269[_0x9b6a('0x26')]);if(_0x42b269[_0x9b6a('0x27')]){delete _0x42b269['name'];}_0x35fb3d[_0x9b6a('0x18')](_0x431e11)[_0x9b6a('0x28')](_0x42b269);};}exports[_0x9b6a('0x29')]=function(_0x2be696,_0x509368){var _0x434bc3={},_0x37f6d9={},_0x48dad1={'count':0x0,'rows':[]};var _0x257eb9=_[_0x9b6a('0x2a')](db[_0x9b6a('0x2b')][_0x9b6a('0x2c')],function(_0x21dd1c){return{'name':_0x21dd1c['fieldName'],'type':_0x21dd1c[_0x9b6a('0x2d')][_0x9b6a('0x2e')]};});_0x37f6d9['model']=_[_0x9b6a('0x2a')](_0x257eb9,_0x9b6a('0x27'));_0x37f6d9[_0x9b6a('0x2f')]=_[_0x9b6a('0x30')](_0x2be696[_0x9b6a('0x2f')]);_0x37f6d9[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x37f6d9['model'],_0x37f6d9[_0x9b6a('0x2f')]);_0x434bc3[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x37f6d9[_0x9b6a('0x34')],qs[_0x9b6a('0x35')](_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x35')]));_0x434bc3[_0x9b6a('0x33')]=_0x434bc3[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x434bc3[_0x9b6a('0x33')]:_0x37f6d9[_0x9b6a('0x34')];if(!_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x37')](_0x9b6a('0x38'))){_0x434bc3['limit']=qs[_0x9b6a('0x1c')](_0x2be696[_0x9b6a('0x2f')]['limit']);_0x434bc3[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x1a')]);}_0x434bc3[_0x9b6a('0x39')]=qs['sort'](_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x3a')]);_0x434bc3[_0x9b6a('0x3b')]=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x2be696[_0x9b6a('0x2f')],_0x37f6d9['filters']),_0x257eb9);if(_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x3d')]){_0x434bc3['where']=_[_0x9b6a('0x3e')](_0x434bc3[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x257eb9,function(_0x5ad6ec){if(_0x5ad6ec[_0x9b6a('0x2d')]!==_0x9b6a('0x3f')){var _0x4154c3={};_0x4154c3[_0x5ad6ec[_0x9b6a('0x27')]]={'$like':'%'+_0x2be696['query'][_0x9b6a('0x3d')]+'%'};return _0x4154c3;}})});}_0x434bc3=_[_0x9b6a('0x3e')]({},_0x434bc3,_0x2be696[_0x9b6a('0x40')]);var _0xb5467e={'where':_0x434bc3[_0x9b6a('0x3b')]};return db[_0x9b6a('0x2b')][_0x9b6a('0x1d')](_0xb5467e)['then'](function(_0x7d7e30){_0x48dad1[_0x9b6a('0x1d')]=_0x7d7e30;if(_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x41')]){_0x434bc3[_0x9b6a('0x42')]=[{'all':!![]}];}return db[_0x9b6a('0x2b')][_0x9b6a('0x43')](_0x434bc3);})['then'](function(_0x69b1ea){_0x48dad1['rows']=_0x69b1ea;return _0x48dad1;})[_0x9b6a('0x24')](respondWithFilteredResult(_0x509368,_0x434bc3))['catch'](handleError(_0x509368,null));};exports[_0x9b6a('0x44')]=function(_0x439de6,_0x18599c){var _0x6c79bd={'raw':![],'where':{'id':_0x439de6[_0x9b6a('0x45')]['id']}},_0x325e64={};_0x325e64[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db['ServicenowConfiguration'][_0x9b6a('0x2c')]);_0x325e64['query']=_[_0x9b6a('0x30')](_0x439de6['query']);_0x325e64[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x325e64['model'],_0x325e64[_0x9b6a('0x2f')]);_0x6c79bd[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x325e64[_0x9b6a('0x34')],qs[_0x9b6a('0x35')](_0x439de6['query'][_0x9b6a('0x35')]));_0x6c79bd[_0x9b6a('0x33')]=_0x6c79bd[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x6c79bd['attributes']:_0x325e64[_0x9b6a('0x34')];if(_0x439de6[_0x9b6a('0x2f')][_0x9b6a('0x41')]){_0x6c79bd[_0x9b6a('0x42')]=[{'all':!![]}];}_0x6c79bd=_[_0x9b6a('0x3e')]({},_0x6c79bd,_0x439de6[_0x9b6a('0x40')]);return db['ServicenowConfiguration']['find'](_0x6c79bd)[_0x9b6a('0x24')](handleEntityNotFound(_0x18599c,null))['then'](respondWithResult(_0x18599c,null))[_0x9b6a('0x46')](handleError(_0x18599c,null));};exports[_0x9b6a('0x47')]=function(_0xdcd3c5,_0x435c6c){return db[_0x9b6a('0x2b')][_0x9b6a('0x47')](_0xdcd3c5[_0x9b6a('0x48')],{})[_0x9b6a('0x24')](respondWithResult(_0x435c6c,0xc9))[_0x9b6a('0x46')](handleError(_0x435c6c,null));};exports[_0x9b6a('0x23')]=function(_0x4a23bf,_0x3aa6ef){if(_0x4a23bf[_0x9b6a('0x48')]['id']){delete _0x4a23bf[_0x9b6a('0x48')]['id'];}return db[_0x9b6a('0x2b')][_0x9b6a('0x49')]({'where':{'id':_0x4a23bf['params']['id']}})['then'](handleEntityNotFound(_0x3aa6ef,null))[_0x9b6a('0x24')](saveUpdates(_0x4a23bf[_0x9b6a('0x48')],null))['then'](respondWithResult(_0x3aa6ef,null))['catch'](handleError(_0x3aa6ef,null));};exports['destroy']=function(_0x84aedd,_0x3870e7){return db[_0x9b6a('0x2b')]['find']({'where':{'id':_0x84aedd['params']['id']}})['then'](handleEntityNotFound(_0x3870e7,null))[_0x9b6a('0x24')](removeEntity(_0x3870e7,null))[_0x9b6a('0x46')](handleError(_0x3870e7,null));};exports['getFields']=function(_0x42e862,_0x500b3e,_0x3f0c77){var _0x41bb3e={};var _0x6e32fa={};var _0x27d0ef;var _0x5840be;return db[_0x9b6a('0x2b')][_0x9b6a('0x4a')]({'where':{'id':_0x42e862[_0x9b6a('0x45')]['id']}})[_0x9b6a('0x24')](handleEntityNotFound(_0x500b3e,null))[_0x9b6a('0x24')](function(_0x459d92){if(_0x459d92){_0x27d0ef=_0x459d92;_0x6e32fa[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db['ServicenowField'][_0x9b6a('0x2c')]);_0x6e32fa[_0x9b6a('0x2f')]=_['keys'](_0x42e862[_0x9b6a('0x2f')]);_0x6e32fa['filters']=_[_0x9b6a('0x32')](_0x6e32fa[_0x9b6a('0x34')],_0x6e32fa[_0x9b6a('0x2f')]);_0x41bb3e[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x6e32fa['model'],qs[_0x9b6a('0x35')](_0x42e862[_0x9b6a('0x2f')][_0x9b6a('0x35')]));_0x41bb3e[_0x9b6a('0x33')]=_0x41bb3e[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x41bb3e[_0x9b6a('0x33')]:_0x6e32fa[_0x9b6a('0x34')];_0x41bb3e['order']=qs[_0x9b6a('0x3a')](_0x42e862[_0x9b6a('0x2f')][_0x9b6a('0x3a')]);_0x41bb3e[_0x9b6a('0x3b')]=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x42e862[_0x9b6a('0x2f')],_0x6e32fa[_0x9b6a('0x31')]));if(_0x42e862[_0x9b6a('0x2f')]['filter']){_0x41bb3e[_0x9b6a('0x3b')]=_[_0x9b6a('0x3e')](_0x41bb3e[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x41bb3e[_0x9b6a('0x33')],function(_0xbf4f7c){var _0x1685eb={};_0x1685eb[_0xbf4f7c]={'$like':'%'+_0x42e862['query'][_0x9b6a('0x3d')]+'%'};return _0x1685eb;})});}_0x41bb3e=_['merge']({},_0x41bb3e,_0x42e862[_0x9b6a('0x40')]);return _0x27d0ef['getFields'](_0x41bb3e);}})[_0x9b6a('0x24')](function(_0xd0b0da){if(_0xd0b0da){_0x5840be=_0xd0b0da['length'];if(!_0x42e862[_0x9b6a('0x2f')][_0x9b6a('0x37')](_0x9b6a('0x38'))){_0x41bb3e['limit']=qs[_0x9b6a('0x1c')](_0x42e862['query']['limit']);_0x41bb3e[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x42e862[_0x9b6a('0x2f')]['offset']);}return _0x27d0ef[_0x9b6a('0x4b')](_0x41bb3e);}})['then'](function(_0x13c901){if(_0x13c901){return _0x13c901?{'count':_0x5840be,'rows':_0x13c901}:null;}})[_0x9b6a('0x24')](respondWithResult(_0x500b3e,null))[_0x9b6a('0x46')](handleError(_0x500b3e,null));};exports[_0x9b6a('0x4c')]=function(_0x205fbe,_0x5eeee4,_0x4b61d6){var _0x4c5d9c={};var _0x15cc9a={};var _0x996188;var _0x1a5177;return db[_0x9b6a('0x2b')][_0x9b6a('0x4a')]({'where':{'id':_0x205fbe[_0x9b6a('0x45')]['id']}})[_0x9b6a('0x24')](handleEntityNotFound(_0x5eeee4,null))[_0x9b6a('0x24')](function(_0x5baf95){if(_0x5baf95){_0x996188=_0x5baf95;_0x15cc9a[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db[_0x9b6a('0x4d')][_0x9b6a('0x2c')]);_0x15cc9a[_0x9b6a('0x2f')]=_[_0x9b6a('0x30')](_0x205fbe['query']);_0x15cc9a[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x15cc9a['model'],_0x15cc9a[_0x9b6a('0x2f')]);_0x4c5d9c[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x15cc9a['model'],qs[_0x9b6a('0x35')](_0x205fbe[_0x9b6a('0x2f')][_0x9b6a('0x35')]));_0x4c5d9c['attributes']=_0x4c5d9c[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x4c5d9c[_0x9b6a('0x33')]:_0x15cc9a[_0x9b6a('0x34')];_0x4c5d9c[_0x9b6a('0x39')]=qs[_0x9b6a('0x3a')](_0x205fbe['query'][_0x9b6a('0x3a')]);_0x4c5d9c[_0x9b6a('0x3b')]=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x205fbe[_0x9b6a('0x2f')],_0x15cc9a[_0x9b6a('0x31')]));if(_0x205fbe['query'][_0x9b6a('0x3d')]){_0x4c5d9c[_0x9b6a('0x3b')]=_[_0x9b6a('0x3e')](_0x4c5d9c[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x4c5d9c[_0x9b6a('0x33')],function(_0x405098){var _0xd1b354={};_0xd1b354[_0x405098]={'$like':'%'+_0x205fbe[_0x9b6a('0x2f')][_0x9b6a('0x3d')]+'%'};return _0xd1b354;})});}_0x4c5d9c=_['merge']({},_0x4c5d9c,_0x205fbe[_0x9b6a('0x40')]);return _0x996188[_0x9b6a('0x4c')](_0x4c5d9c);}})[_0x9b6a('0x24')](function(_0x4cfc14){if(_0x4cfc14){_0x1a5177=_0x4cfc14[_0x9b6a('0x36')];if(!_0x205fbe[_0x9b6a('0x2f')]['hasOwnProperty'](_0x9b6a('0x38'))){_0x4c5d9c[_0x9b6a('0x1c')]=qs['limit'](_0x205fbe['query'][_0x9b6a('0x1c')]);_0x4c5d9c[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x205fbe[_0x9b6a('0x2f')]['offset']);}return _0x996188['getSubjects'](_0x4c5d9c);}})[_0x9b6a('0x24')](function(_0x1bda74){if(_0x1bda74){return _0x1bda74?{'count':_0x1a5177,'rows':_0x1bda74}:null;}})[_0x9b6a('0x24')](respondWithResult(_0x5eeee4,null))[_0x9b6a('0x46')](handleError(_0x5eeee4,null));};exports[_0x9b6a('0x4e')]=function(_0x560000,_0x3a37b3,_0x43f6c4){var _0x2f0c7b={};var _0x362dcb={};var _0x55f884;var _0x31a4ee;return db[_0x9b6a('0x2b')][_0x9b6a('0x4a')]({'where':{'id':_0x560000[_0x9b6a('0x45')]['id']}})[_0x9b6a('0x24')](handleEntityNotFound(_0x3a37b3,null))[_0x9b6a('0x24')](function(_0x333128){if(_0x333128){_0x55f884=_0x333128;_0x362dcb[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db['ServicenowField']['rawAttributes']);_0x362dcb[_0x9b6a('0x2f')]=_[_0x9b6a('0x30')](_0x560000[_0x9b6a('0x2f')]);_0x362dcb[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x362dcb[_0x9b6a('0x34')],_0x362dcb[_0x9b6a('0x2f')]);_0x2f0c7b['attributes']=_['intersection'](_0x362dcb[_0x9b6a('0x34')],qs['fields'](_0x560000[_0x9b6a('0x2f')]['fields']));_0x2f0c7b[_0x9b6a('0x33')]=_0x2f0c7b[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x2f0c7b[_0x9b6a('0x33')]:_0x362dcb[_0x9b6a('0x34')];_0x2f0c7b[_0x9b6a('0x39')]=qs[_0x9b6a('0x3a')](_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x3a')]);_0x2f0c7b['where']=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x560000['query'],_0x362dcb[_0x9b6a('0x31')]));if(_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x3d')]){_0x2f0c7b[_0x9b6a('0x3b')]=_[_0x9b6a('0x3e')](_0x2f0c7b[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x2f0c7b[_0x9b6a('0x33')],function(_0x1cabfa){var _0x4393e0={};_0x4393e0[_0x1cabfa]={'$like':'%'+_0x560000[_0x9b6a('0x2f')]['filter']+'%'};return _0x4393e0;})});}_0x2f0c7b=_[_0x9b6a('0x3e')]({},_0x2f0c7b,_0x560000[_0x9b6a('0x40')]);return _0x55f884[_0x9b6a('0x4e')](_0x2f0c7b);}})[_0x9b6a('0x24')](function(_0x40ed8b){if(_0x40ed8b){_0x31a4ee=_0x40ed8b[_0x9b6a('0x36')];if(!_0x560000[_0x9b6a('0x2f')]['hasOwnProperty'](_0x9b6a('0x38'))){_0x2f0c7b['limit']=qs[_0x9b6a('0x1c')](_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x1c')]);_0x2f0c7b[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x1a')]);}return _0x55f884[_0x9b6a('0x4e')](_0x2f0c7b);}})[_0x9b6a('0x24')](function(_0x495c0c){if(_0x495c0c){return _0x495c0c?{'count':_0x31a4ee,'rows':_0x495c0c}:null;}})[_0x9b6a('0x24')](respondWithResult(_0x3a37b3,null))[_0x9b6a('0x46')](handleError(_0x3a37b3,null));};
\ No newline at end of file
+var _0x5475=['fields','includeAll','options','find','create','body','params','ServicenowField','hasOwnProperty','getFields','getSubjects','findOne','order','getDescriptions','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','ejs','fs-extra','lodash','squel','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','name','send','index','map','rawAttributes','fieldName','key','query','filters','intersection','attributes','length','model','sort','where','pick','filter','type','VIRTUAL','merge','include','ServicenowConfiguration','rows','catch','show','keys'];(function(_0x310504,_0x26ad95){var _0x5b36d0=function(_0x253f28){while(--_0x253f28){_0x310504['push'](_0x310504['shift']());}};_0x5b36d0(++_0x26ad95);}(_0x5475,0x1ae));var _0x5547=function(_0x2283dc,_0x2fcfc5){_0x2283dc=_0x2283dc-0x0;var _0x16db90=_0x5475[_0x2283dc];return _0x16db90;};'use strict';var emlformat=require(_0x5547('0x0'));var rimraf=require(_0x5547('0x1'));var zipdir=require(_0x5547('0x2'));var jsonpatch=require(_0x5547('0x3'));var rp=require(_0x5547('0x4'));var moment=require('moment');var BPromise=require(_0x5547('0x5'));var Mustache=require(_0x5547('0x6'));var util=require(_0x5547('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x5547('0x8'));var fs=require('fs');var fs_extra=require(_0x5547('0x9'));var _=require(_0x5547('0xa'));var squel=require(_0x5547('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x5547('0xc'));var querystring=require(_0x5547('0xd'));var Papa=require(_0x5547('0xe'));var Redis=require(_0x5547('0xf'));var authService=require(_0x5547('0x10'));var qs=require(_0x5547('0x11'));var as=require(_0x5547('0x12'));var hardwareService=require(_0x5547('0x13'));var logger=require(_0x5547('0x14'))(_0x5547('0x15'));var utils=require(_0x5547('0x16'));var config=require(_0x5547('0x17'));var licenseUtil=require(_0x5547('0x18'));var db=require(_0x5547('0x19'))['db'];function respondWithStatusCode(_0x25d450,_0x386019){_0x386019=_0x386019||0xcc;return function(_0x384b65){if(_0x384b65){return _0x25d450[_0x5547('0x1a')](_0x386019);}return _0x25d450[_0x5547('0x1b')](_0x386019)[_0x5547('0x1c')]();};}function respondWithResult(_0x11692a,_0x32ba77){_0x32ba77=_0x32ba77||0xc8;return function(_0x3efa8d){if(_0x3efa8d){return _0x11692a[_0x5547('0x1b')](_0x32ba77)[_0x5547('0x1d')](_0x3efa8d);}};}function respondWithFilteredResult(_0x5bda5e,_0x935ec2){return function(_0x2ba22c){if(_0x2ba22c){var _0x430e40=typeof _0x935ec2[_0x5547('0x1e')]===_0x5547('0x1f')&&typeof _0x935ec2[_0x5547('0x20')]==='undefined';var _0x2a30da=_0x2ba22c[_0x5547('0x21')];var _0x2dca08=_0x430e40?0x0:_0x935ec2[_0x5547('0x1e')];var _0x416225=_0x430e40?_0x2ba22c[_0x5547('0x21')]:_0x935ec2[_0x5547('0x1e')]+_0x935ec2['limit'];var _0x580ad4;if(_0x416225>=_0x2a30da){_0x416225=_0x2a30da;_0x580ad4=0xc8;}else{_0x580ad4=0xce;}_0x5bda5e[_0x5547('0x1b')](_0x580ad4);return _0x5bda5e[_0x5547('0x22')](_0x5547('0x23'),_0x2dca08+'-'+_0x416225+'/'+_0x2a30da)['json'](_0x2ba22c);}return null;};}function patchUpdates(_0x219019){return function(_0x398b2c){try{jsonpatch[_0x5547('0x24')](_0x398b2c,_0x219019,!![]);}catch(_0x4b1a10){return BPromise[_0x5547('0x25')](_0x4b1a10);}return _0x398b2c[_0x5547('0x26')]();};}function saveUpdates(_0x559bcd,_0x443bdf){return function(_0x1d062c){if(_0x1d062c){return _0x1d062c[_0x5547('0x27')](_0x559bcd)[_0x5547('0x28')](function(_0x40c43d){return _0x40c43d;});}return null;};}function removeEntity(_0x5e9499,_0x4fbf1f){return function(_0x5691a7){if(_0x5691a7){return _0x5691a7[_0x5547('0x29')]()[_0x5547('0x28')](function(){_0x5e9499[_0x5547('0x1b')](0xcc)[_0x5547('0x1c')]();});}};}function handleEntityNotFound(_0xbe2063,_0x40a157){return function(_0x1aa924){if(!_0x1aa924){_0xbe2063[_0x5547('0x1a')](0x194);}return _0x1aa924;};}function handleError(_0x56685a,_0x2a4d2f){_0x2a4d2f=_0x2a4d2f||0x1f4;return function(_0x4abc6e){logger['error'](_0x4abc6e['stack']);if(_0x4abc6e[_0x5547('0x2a')]){delete _0x4abc6e[_0x5547('0x2a')];}_0x56685a[_0x5547('0x1b')](_0x2a4d2f)[_0x5547('0x2b')](_0x4abc6e);};}exports[_0x5547('0x2c')]=function(_0x38220b,_0x2dc617){var _0x37a1a5={},_0x339522={},_0x3912f0={'count':0x0,'rows':[]};var _0x1df6da=_[_0x5547('0x2d')](db['ServicenowConfiguration'][_0x5547('0x2e')],function(_0x4557c3){return{'name':_0x4557c3[_0x5547('0x2f')],'type':_0x4557c3['type'][_0x5547('0x30')]};});_0x339522['model']=_['map'](_0x1df6da,_0x5547('0x2a'));_0x339522[_0x5547('0x31')]=_['keys'](_0x38220b[_0x5547('0x31')]);_0x339522[_0x5547('0x32')]=_[_0x5547('0x33')](_0x339522['model'],_0x339522['query']);_0x37a1a5[_0x5547('0x34')]=_['intersection'](_0x339522['model'],qs['fields'](_0x38220b['query']['fields']));_0x37a1a5['attributes']=_0x37a1a5[_0x5547('0x34')][_0x5547('0x35')]?_0x37a1a5['attributes']:_0x339522[_0x5547('0x36')];if(!_0x38220b[_0x5547('0x31')]['hasOwnProperty']('nolimit')){_0x37a1a5['limit']=qs[_0x5547('0x20')](_0x38220b['query']['limit']);_0x37a1a5[_0x5547('0x1e')]=qs[_0x5547('0x1e')](_0x38220b[_0x5547('0x31')][_0x5547('0x1e')]);}_0x37a1a5['order']=qs[_0x5547('0x37')](_0x38220b[_0x5547('0x31')][_0x5547('0x37')]);_0x37a1a5[_0x5547('0x38')]=qs['filters'](_[_0x5547('0x39')](_0x38220b[_0x5547('0x31')],_0x339522[_0x5547('0x32')]),_0x1df6da);if(_0x38220b['query'][_0x5547('0x3a')]){_0x37a1a5[_0x5547('0x38')]=_['merge'](_0x37a1a5[_0x5547('0x38')],{'$or':_[_0x5547('0x2d')](_0x1df6da,function(_0x23a239){if(_0x23a239[_0x5547('0x3b')]!==_0x5547('0x3c')){var _0x33eff0={};_0x33eff0[_0x23a239[_0x5547('0x2a')]]={'$like':'%'+_0x38220b[_0x5547('0x31')]['filter']+'%'};return _0x33eff0;}})});}_0x37a1a5=_[_0x5547('0x3d')]({},_0x37a1a5,_0x38220b['options']);var _0x745d84={'where':_0x37a1a5[_0x5547('0x38')]};return db['ServicenowConfiguration'][_0x5547('0x21')](_0x745d84)[_0x5547('0x28')](function(_0x1d2184){_0x3912f0[_0x5547('0x21')]=_0x1d2184;if(_0x38220b[_0x5547('0x31')]['includeAll']){_0x37a1a5[_0x5547('0x3e')]=[{'all':!![]}];}return db[_0x5547('0x3f')]['findAll'](_0x37a1a5);})[_0x5547('0x28')](function(_0x42a298){_0x3912f0[_0x5547('0x40')]=_0x42a298;return _0x3912f0;})[_0x5547('0x28')](respondWithFilteredResult(_0x2dc617,_0x37a1a5))[_0x5547('0x41')](handleError(_0x2dc617,null));};exports[_0x5547('0x42')]=function(_0x57c400,_0x4460d9){var _0x37eba9={'raw':![],'where':{'id':_0x57c400['params']['id']}},_0xc34d6f={};_0xc34d6f['model']=_[_0x5547('0x43')](db[_0x5547('0x3f')][_0x5547('0x2e')]);_0xc34d6f[_0x5547('0x31')]=_[_0x5547('0x43')](_0x57c400['query']);_0xc34d6f[_0x5547('0x32')]=_[_0x5547('0x33')](_0xc34d6f[_0x5547('0x36')],_0xc34d6f['query']);_0x37eba9['attributes']=_[_0x5547('0x33')](_0xc34d6f[_0x5547('0x36')],qs['fields'](_0x57c400['query'][_0x5547('0x44')]));_0x37eba9['attributes']=_0x37eba9[_0x5547('0x34')][_0x5547('0x35')]?_0x37eba9['attributes']:_0xc34d6f[_0x5547('0x36')];if(_0x57c400[_0x5547('0x31')][_0x5547('0x45')]){_0x37eba9[_0x5547('0x3e')]=[{'all':!![]}];}_0x37eba9=_[_0x5547('0x3d')]({},_0x37eba9,_0x57c400[_0x5547('0x46')]);return db[_0x5547('0x3f')][_0x5547('0x47')](_0x37eba9)[_0x5547('0x28')](handleEntityNotFound(_0x4460d9,null))['then'](respondWithResult(_0x4460d9,null))[_0x5547('0x41')](handleError(_0x4460d9,null));};exports['create']=function(_0x7eb798,_0x387ea9){return db[_0x5547('0x3f')][_0x5547('0x48')](_0x7eb798[_0x5547('0x49')],{})[_0x5547('0x28')](respondWithResult(_0x387ea9,0xc9))[_0x5547('0x41')](handleError(_0x387ea9,null));};exports[_0x5547('0x27')]=function(_0x48b454,_0x229124){if(_0x48b454['body']['id']){delete _0x48b454[_0x5547('0x49')]['id'];}return db[_0x5547('0x3f')][_0x5547('0x47')]({'where':{'id':_0x48b454[_0x5547('0x4a')]['id']}})[_0x5547('0x28')](handleEntityNotFound(_0x229124,null))['then'](saveUpdates(_0x48b454[_0x5547('0x49')],null))[_0x5547('0x28')](respondWithResult(_0x229124,null))[_0x5547('0x41')](handleError(_0x229124,null));};exports[_0x5547('0x29')]=function(_0x38413a,_0x2d7f4a){return db['ServicenowConfiguration'][_0x5547('0x47')]({'where':{'id':_0x38413a['params']['id']}})['then'](handleEntityNotFound(_0x2d7f4a,null))[_0x5547('0x28')](removeEntity(_0x2d7f4a,null))[_0x5547('0x41')](handleError(_0x2d7f4a,null));};exports['getFields']=function(_0x16108a,_0x1d8b1a,_0x18be88){var _0x3755ce={};var _0x3d508d={};var _0x48eab7;var _0x5ca052;return db['ServicenowConfiguration']['findOne']({'where':{'id':_0x16108a['params']['id']}})[_0x5547('0x28')](handleEntityNotFound(_0x1d8b1a,null))['then'](function(_0x4e3d63){if(_0x4e3d63){_0x48eab7=_0x4e3d63;_0x3d508d[_0x5547('0x36')]=_[_0x5547('0x43')](db[_0x5547('0x4b')]['rawAttributes']);_0x3d508d[_0x5547('0x31')]=_['keys'](_0x16108a[_0x5547('0x31')]);_0x3d508d[_0x5547('0x32')]=_['intersection'](_0x3d508d[_0x5547('0x36')],_0x3d508d[_0x5547('0x31')]);_0x3755ce[_0x5547('0x34')]=_[_0x5547('0x33')](_0x3d508d[_0x5547('0x36')],qs[_0x5547('0x44')](_0x16108a[_0x5547('0x31')][_0x5547('0x44')]));_0x3755ce[_0x5547('0x34')]=_0x3755ce['attributes']['length']?_0x3755ce[_0x5547('0x34')]:_0x3d508d['model'];_0x3755ce['order']=qs[_0x5547('0x37')](_0x16108a[_0x5547('0x31')][_0x5547('0x37')]);_0x3755ce['where']=qs[_0x5547('0x32')](_[_0x5547('0x39')](_0x16108a['query'],_0x3d508d[_0x5547('0x32')]));if(_0x16108a[_0x5547('0x31')][_0x5547('0x3a')]){_0x3755ce[_0x5547('0x38')]=_[_0x5547('0x3d')](_0x3755ce[_0x5547('0x38')],{'$or':_[_0x5547('0x2d')](_0x3755ce[_0x5547('0x34')],function(_0x151e1d){var _0x130e26={};_0x130e26[_0x151e1d]={'$like':'%'+_0x16108a[_0x5547('0x31')]['filter']+'%'};return _0x130e26;})});}_0x3755ce=_[_0x5547('0x3d')]({},_0x3755ce,_0x16108a[_0x5547('0x46')]);return _0x48eab7['getFields'](_0x3755ce);}})[_0x5547('0x28')](function(_0x46f369){if(_0x46f369){_0x5ca052=_0x46f369['length'];if(!_0x16108a['query'][_0x5547('0x4c')]('nolimit')){_0x3755ce[_0x5547('0x20')]=qs[_0x5547('0x20')](_0x16108a[_0x5547('0x31')]['limit']);_0x3755ce[_0x5547('0x1e')]=qs[_0x5547('0x1e')](_0x16108a[_0x5547('0x31')][_0x5547('0x1e')]);}return _0x48eab7[_0x5547('0x4d')](_0x3755ce);}})[_0x5547('0x28')](function(_0x4751c9){if(_0x4751c9){return _0x4751c9?{'count':_0x5ca052,'rows':_0x4751c9}:null;}})[_0x5547('0x28')](respondWithResult(_0x1d8b1a,null))[_0x5547('0x41')](handleError(_0x1d8b1a,null));};exports[_0x5547('0x4e')]=function(_0x42dc98,_0x2401d0,_0x537e7a){var _0x2519f7={};var _0xbae87b={};var _0x2f9921;var _0x5d2d8f;return db[_0x5547('0x3f')][_0x5547('0x4f')]({'where':{'id':_0x42dc98[_0x5547('0x4a')]['id']}})[_0x5547('0x28')](handleEntityNotFound(_0x2401d0,null))[_0x5547('0x28')](function(_0x821a0a){if(_0x821a0a){_0x2f9921=_0x821a0a;_0xbae87b['model']=_[_0x5547('0x43')](db[_0x5547('0x4b')][_0x5547('0x2e')]);_0xbae87b[_0x5547('0x31')]=_[_0x5547('0x43')](_0x42dc98[_0x5547('0x31')]);_0xbae87b[_0x5547('0x32')]=_['intersection'](_0xbae87b[_0x5547('0x36')],_0xbae87b['query']);_0x2519f7[_0x5547('0x34')]=_[_0x5547('0x33')](_0xbae87b[_0x5547('0x36')],qs[_0x5547('0x44')](_0x42dc98[_0x5547('0x31')][_0x5547('0x44')]));_0x2519f7['attributes']=_0x2519f7[_0x5547('0x34')][_0x5547('0x35')]?_0x2519f7[_0x5547('0x34')]:_0xbae87b[_0x5547('0x36')];_0x2519f7[_0x5547('0x50')]=qs[_0x5547('0x37')](_0x42dc98[_0x5547('0x31')][_0x5547('0x37')]);_0x2519f7[_0x5547('0x38')]=qs[_0x5547('0x32')](_[_0x5547('0x39')](_0x42dc98[_0x5547('0x31')],_0xbae87b['filters']));if(_0x42dc98[_0x5547('0x31')][_0x5547('0x3a')]){_0x2519f7[_0x5547('0x38')]=_[_0x5547('0x3d')](_0x2519f7[_0x5547('0x38')],{'$or':_['map'](_0x2519f7[_0x5547('0x34')],function(_0x52718d){var _0x58bf95={};_0x58bf95[_0x52718d]={'$like':'%'+_0x42dc98[_0x5547('0x31')]['filter']+'%'};return _0x58bf95;})});}_0x2519f7=_[_0x5547('0x3d')]({},_0x2519f7,_0x42dc98['options']);return _0x2f9921[_0x5547('0x4e')](_0x2519f7);}})[_0x5547('0x28')](function(_0x25aacc){if(_0x25aacc){_0x5d2d8f=_0x25aacc[_0x5547('0x35')];if(!_0x42dc98['query'][_0x5547('0x4c')]('nolimit')){_0x2519f7[_0x5547('0x20')]=qs['limit'](_0x42dc98[_0x5547('0x31')]['limit']);_0x2519f7[_0x5547('0x1e')]=qs[_0x5547('0x1e')](_0x42dc98['query']['offset']);}return _0x2f9921[_0x5547('0x4e')](_0x2519f7);}})[_0x5547('0x28')](function(_0xd753ad){if(_0xd753ad){return _0xd753ad?{'count':_0x5d2d8f,'rows':_0xd753ad}:null;}})[_0x5547('0x28')](respondWithResult(_0x2401d0,null))[_0x5547('0x41')](handleError(_0x2401d0,null));};exports[_0x5547('0x51')]=function(_0x290e70,_0x320100,_0x2a2c87){var _0x1177b6={};var _0x3bdae8={};var _0x349335;var _0x17fa5d;return db[_0x5547('0x3f')][_0x5547('0x4f')]({'where':{'id':_0x290e70[_0x5547('0x4a')]['id']}})[_0x5547('0x28')](handleEntityNotFound(_0x320100,null))['then'](function(_0x1b6855){if(_0x1b6855){_0x349335=_0x1b6855;_0x3bdae8['model']=_['keys'](db[_0x5547('0x4b')][_0x5547('0x2e')]);_0x3bdae8[_0x5547('0x31')]=_[_0x5547('0x43')](_0x290e70[_0x5547('0x31')]);_0x3bdae8[_0x5547('0x32')]=_[_0x5547('0x33')](_0x3bdae8['model'],_0x3bdae8[_0x5547('0x31')]);_0x1177b6[_0x5547('0x34')]=_[_0x5547('0x33')](_0x3bdae8['model'],qs[_0x5547('0x44')](_0x290e70['query'][_0x5547('0x44')]));_0x1177b6[_0x5547('0x34')]=_0x1177b6['attributes'][_0x5547('0x35')]?_0x1177b6[_0x5547('0x34')]:_0x3bdae8[_0x5547('0x36')];_0x1177b6[_0x5547('0x50')]=qs['sort'](_0x290e70[_0x5547('0x31')][_0x5547('0x37')]);_0x1177b6[_0x5547('0x38')]=qs[_0x5547('0x32')](_[_0x5547('0x39')](_0x290e70[_0x5547('0x31')],_0x3bdae8[_0x5547('0x32')]));if(_0x290e70[_0x5547('0x31')][_0x5547('0x3a')]){_0x1177b6[_0x5547('0x38')]=_[_0x5547('0x3d')](_0x1177b6['where'],{'$or':_['map'](_0x1177b6[_0x5547('0x34')],function(_0x3512a3){var _0x531bca={};_0x531bca[_0x3512a3]={'$like':'%'+_0x290e70['query'][_0x5547('0x3a')]+'%'};return _0x531bca;})});}_0x1177b6=_[_0x5547('0x3d')]({},_0x1177b6,_0x290e70[_0x5547('0x46')]);return _0x349335[_0x5547('0x51')](_0x1177b6);}})['then'](function(_0x3bfdac){if(_0x3bfdac){_0x17fa5d=_0x3bfdac[_0x5547('0x35')];if(!_0x290e70[_0x5547('0x31')][_0x5547('0x4c')](_0x5547('0x52'))){_0x1177b6[_0x5547('0x20')]=qs['limit'](_0x290e70[_0x5547('0x31')][_0x5547('0x20')]);_0x1177b6[_0x5547('0x1e')]=qs[_0x5547('0x1e')](_0x290e70[_0x5547('0x31')][_0x5547('0x1e')]);}return _0x349335[_0x5547('0x51')](_0x1177b6);}})[_0x5547('0x28')](function(_0x5aae29){if(_0x5aae29){return _0x5aae29?{'count':_0x17fa5d,'rows':_0x5aae29}:null;}})[_0x5547('0x28')](respondWithResult(_0x320100,null))[_0x5547('0x41')](handleError(_0x320100,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2af=['../../config/environment','./intServicenowConfiguration.attributes','exports','ServicenowConfiguration','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0x32c63d,_0x4fe648){var _0x55da14=function(_0x35fefd){while(--_0x35fefd){_0x32c63d['push'](_0x32c63d['shift']());}};_0x55da14(++_0x4fe648);}(_0xc2af,0x1bc));var _0xfc2a=function(_0x40a933,_0x18c2db){_0x40a933=_0x40a933-0x0;var _0x417358=_0xc2af[_0x40a933];return _0x417358;};'use strict';var _=require(_0xfc2a('0x0'));var util=require('util');var logger=require(_0xfc2a('0x1'))('api');var moment=require(_0xfc2a('0x2'));var BPromise=require(_0xfc2a('0x3'));var rp=require(_0xfc2a('0x4'));var fs=require('fs');var path=require(_0xfc2a('0x5'));var rimraf=require(_0xfc2a('0x6'));var config=require(_0xfc2a('0x7'));var attributes=require(_0xfc2a('0x8'));module[_0xfc2a('0x9')]=function(_0x4e2d6b,_0x40f855){return _0x4e2d6b['define'](_0xfc2a('0xa'),attributes,{'tableName':'int_servicenow_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7427=['api','bluebird','request-promise','rimraf','../../config/environment','./intServicenowConfiguration.attributes','exports','ServicenowConfiguration','int_servicenow_configurations','lodash','util','../../config/logger'];(function(_0x25bca6,_0xe415ea){var _0x3f8d02=function(_0x3e581b){while(--_0x3e581b){_0x25bca6['push'](_0x25bca6['shift']());}};_0x3f8d02(++_0xe415ea);}(_0x7427,0x111));var _0x7742=function(_0x51fe5f,_0x1d8632){_0x51fe5f=_0x51fe5f-0x0;var _0x4abce9=_0x7427[_0x51fe5f];return _0x4abce9;};'use strict';var _=require(_0x7742('0x0'));var util=require(_0x7742('0x1'));var logger=require(_0x7742('0x2'))(_0x7742('0x3'));var moment=require('moment');var BPromise=require(_0x7742('0x4'));var rp=require(_0x7742('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7742('0x6'));var config=require(_0x7742('0x7'));var attributes=require(_0x7742('0x8'));module[_0x7742('0x9')]=function(_0x360d59,_0x57fa9a){return _0x360d59['define'](_0x7742('0xa'),attributes,{'tableName':_0x7742('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x862a=['result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','debug','error','code','message'];(function(_0x5cd675,_0x352cca){var _0x2379b0=function(_0x2e510b){while(--_0x2e510b){_0x5cd675['push'](_0x5cd675['shift']());}};_0x2379b0(++_0x352cca);}(_0x862a,0x178));var _0xa862=function(_0x566168,_0x4c39af){_0x566168=_0x566168-0x0;var _0x4e1f7a=_0x862a[_0x566168];return _0x4e1f7a;};'use strict';var _=require(_0xa862('0x0'));var util=require('util');var moment=require(_0xa862('0x1'));var BPromise=require(_0xa862('0x2'));var rs=require(_0xa862('0x3'));var fs=require('fs');var Redis=require(_0xa862('0x4'));var db=require(_0xa862('0x5'))['db'];var utils=require(_0xa862('0x6'));var logger=require(_0xa862('0x7'))(_0xa862('0x8'));var config=require(_0xa862('0x9'));var jayson=require(_0xa862('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x194ee8,_0x25ca98,_0x9f1fe7){return new BPromise(function(_0xd1fd1d,_0x5d9c1b){return client[_0xa862('0xb')](_0x194ee8,_0x9f1fe7)[_0xa862('0xc')](function(_0x3447ca){logger[_0xa862('0xd')](_0xa862('0xe'),_0x25ca98,_0xa862('0xf'));logger[_0xa862('0x10')]('ServicenowConfiguration,\x20%s,\x20%s,\x20%s',_0x25ca98,_0xa862('0xf'),JSON['stringify'](_0x3447ca));if(_0x3447ca[_0xa862('0x11')]){if(_0x3447ca[_0xa862('0x11')][_0xa862('0x12')]===0x1f4){logger[_0xa862('0x11')]('ServicenowConfiguration,\x20%s,\x20%s',_0x25ca98,_0x3447ca[_0xa862('0x11')][_0xa862('0x13')]);return _0x5d9c1b(_0x3447ca[_0xa862('0x11')][_0xa862('0x13')]);}logger[_0xa862('0x11')](_0xa862('0xe'),_0x25ca98,_0x3447ca['error']['message']);return _0xd1fd1d(_0x3447ca[_0xa862('0x11')]['message']);}else{logger[_0xa862('0xd')]('ServicenowConfiguration,\x20%s,\x20%s',_0x25ca98,_0xa862('0xf'));_0xd1fd1d(_0x3447ca[_0xa862('0x14')]['message']);}})[_0xa862('0x15')](function(_0x2765e4){logger[_0xa862('0x11')](_0xa862('0xe'),_0x25ca98,_0x2765e4);_0x5d9c1b(_0x2765e4);});});}
\ No newline at end of file
+var _0x9767=['request\x20sent','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','ServicenowConfiguration,\x20%s,\x20%s','message','result','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info'];(function(_0x4e6d97,_0x7871e8){var _0x2dc8bd=function(_0x12b6cb){while(--_0x12b6cb){_0x4e6d97['push'](_0x4e6d97['shift']());}};_0x2dc8bd(++_0x7871e8);}(_0x9767,0xb9));var _0x7976=function(_0x4bfcec,_0x56aeee){_0x4bfcec=_0x4bfcec-0x0;var _0x1f5793=_0x9767[_0x4bfcec];return _0x1f5793;};'use strict';var _=require(_0x7976('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x7976('0x1'));var rs=require(_0x7976('0x2'));var fs=require('fs');var Redis=require(_0x7976('0x3'));var db=require(_0x7976('0x4'))['db'];var utils=require(_0x7976('0x5'));var logger=require(_0x7976('0x6'))(_0x7976('0x7'));var config=require(_0x7976('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x7976('0x9')][_0x7976('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x11fd25,_0x454eb9,_0x1a8dc6){return new BPromise(function(_0x24bb6b,_0x357e5f){return client[_0x7976('0xb')](_0x11fd25,_0x1a8dc6)['then'](function(_0xaa9292){logger[_0x7976('0xc')]('ServicenowConfiguration,\x20%s,\x20%s',_0x454eb9,_0x7976('0xd'));logger['debug'](_0x7976('0xe'),_0x454eb9,_0x7976('0xd'),JSON[_0x7976('0xf')](_0xaa9292));if(_0xaa9292[_0x7976('0x10')]){if(_0xaa9292[_0x7976('0x10')][_0x7976('0x11')]===0x1f4){logger['error'](_0x7976('0x12'),_0x454eb9,_0xaa9292[_0x7976('0x10')][_0x7976('0x13')]);return _0x357e5f(_0xaa9292[_0x7976('0x10')][_0x7976('0x13')]);}logger[_0x7976('0x10')](_0x7976('0x12'),_0x454eb9,_0xaa9292[_0x7976('0x10')][_0x7976('0x13')]);return _0x24bb6b(_0xaa9292[_0x7976('0x10')][_0x7976('0x13')]);}else{logger[_0x7976('0xc')](_0x7976('0x12'),_0x454eb9,_0x7976('0xd'));_0x24bb6b(_0xaa9292[_0x7976('0x14')]['message']);}})[_0x7976('0x15')](function(_0x296b95){logger[_0x7976('0x10')]('ServicenowConfiguration,\x20%s,\x20%s',_0x454eb9,_0x296b95);_0x357e5f(_0x296b95);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc49=['create','put','update','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowField.controller','get','index','/:id','isAuthenticated','show'];(function(_0x1dc547,_0xb43d47){var _0x35ada9=function(_0x447a0c){while(--_0x447a0c){_0x1dc547['push'](_0x1dc547['shift']());}};_0x35ada9(++_0xb43d47);}(_0xcc49,0xcc));var _0x9cc4=function(_0x343090,_0x433a80){_0x343090=_0x343090-0x0;var _0x3ff3e8=_0xcc49[_0x343090];return _0x3ff3e8;};'use strict';var multer=require(_0x9cc4('0x0'));var util=require(_0x9cc4('0x1'));var path=require(_0x9cc4('0x2'));var timeout=require(_0x9cc4('0x3'));var express=require(_0x9cc4('0x4'));var router=express[_0x9cc4('0x5')]();var fs_extra=require(_0x9cc4('0x6'));var auth=require(_0x9cc4('0x7'));var interaction=require(_0x9cc4('0x8'));var config=require(_0x9cc4('0x9'));var controller=require(_0x9cc4('0xa'));router[_0x9cc4('0xb')]('/',auth['isAuthenticated'](),controller[_0x9cc4('0xc')]);router[_0x9cc4('0xb')](_0x9cc4('0xd'),auth[_0x9cc4('0xe')](),controller[_0x9cc4('0xf')]);router['post']('/',auth[_0x9cc4('0xe')](),controller[_0x9cc4('0x10')]);router[_0x9cc4('0x11')]('/:id',auth[_0x9cc4('0xe')](),controller[_0x9cc4('0x12')]);router['delete'](_0x9cc4('0xd'),auth['isAuthenticated'](),controller['destroy']);module[_0x9cc4('0x13')]=router;
\ No newline at end of file
+var _0x1e64=['exports','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./intServicenowField.controller','get','isAuthenticated','/:id','show','post','create','put','update','delete','destroy'];(function(_0x4eabf4,_0x4f0134){var _0x130318=function(_0x566cf3){while(--_0x566cf3){_0x4eabf4['push'](_0x4eabf4['shift']());}};_0x130318(++_0x4f0134);}(_0x1e64,0x18d));var _0x41e6=function(_0x12e71e,_0x3d9790){_0x12e71e=_0x12e71e-0x0;var _0x5a83af=_0x1e64[_0x12e71e];return _0x5a83af;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x41e6('0x0'));var timeout=require(_0x41e6('0x1'));var express=require('express');var router=express[_0x41e6('0x2')]();var fs_extra=require(_0x41e6('0x3'));var auth=require(_0x41e6('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x41e6('0x5'));var controller=require(_0x41e6('0x6'));router[_0x41e6('0x7')]('/',auth[_0x41e6('0x8')](),controller['index']);router['get'](_0x41e6('0x9'),auth[_0x41e6('0x8')](),controller[_0x41e6('0xa')]);router[_0x41e6('0xb')]('/',auth[_0x41e6('0x8')](),controller[_0x41e6('0xc')]);router[_0x41e6('0xd')](_0x41e6('0x9'),auth[_0x41e6('0x8')](),controller[_0x41e6('0xe')]);router[_0x41e6('0xf')]('/:id',auth[_0x41e6('0x8')](),controller[_0x41e6('0x10')]);module[_0x41e6('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ae2=['exports','ENUM','variable','customVariable','keyValue','picklist','string','STRING','sequelize'];(function(_0x263c9d,_0x1365fb){var _0x30ac93=function(_0x22cdfe){while(--_0x22cdfe){_0x263c9d['push'](_0x263c9d['shift']());}};_0x30ac93(++_0x1365fb);}(_0x0ae2,0xce));var _0x20ae=function(_0x3b16e1,_0x3bda3e){_0x3b16e1=_0x3b16e1-0x0;var _0x311d1b=_0x0ae2[_0x3b16e1];return _0x311d1b;};'use strict';var Sequelize=require(_0x20ae('0x0'));module[_0x20ae('0x1')]={'type':{'type':Sequelize[_0x20ae('0x2')]('string',_0x20ae('0x3'),_0x20ae('0x4'),_0x20ae('0x5'),_0x20ae('0x6')),'defaultValue':_0x20ae('0x7')},'content':{'type':Sequelize[_0x20ae('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x20ae('0x2')](_0x20ae('0x7'),_0x20ae('0x3'),_0x20ae('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x20ae('0x8')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x20ae('0x8')]}};
\ No newline at end of file
+var _0x9c03=['customVariable','keyValue','STRING','BOOLEAN','sequelize','exports','ENUM','string','variable'];(function(_0x54a9e3,_0x4a3813){var _0x247cce=function(_0x50aa49){while(--_0x50aa49){_0x54a9e3['push'](_0x54a9e3['shift']());}};_0x247cce(++_0x4a3813);}(_0x9c03,0x112));var _0x39c0=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x9c03[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require(_0x39c0('0x0'));module[_0x39c0('0x1')]={'type':{'type':Sequelize[_0x39c0('0x2')](_0x39c0('0x3'),_0x39c0('0x4'),_0x39c0('0x5'),_0x39c0('0x6'),'picklist'),'defaultValue':_0x39c0('0x3')},'content':{'type':Sequelize[_0x39c0('0x7')]},'key':{'type':Sequelize[_0x39c0('0x7')]},'keyType':{'type':Sequelize['ENUM'](_0x39c0('0x3'),_0x39c0('0x4'),_0x39c0('0x5'))},'keyContent':{'type':Sequelize[_0x39c0('0x7')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x39c0('0x7')]},'customField':{'type':Sequelize[_0x39c0('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x39c0('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6da0=['rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','end','undefined','limit','count','offset','set','apply','update','then','stack','name','send','index','ServicenowField','rawAttributes','fieldName','type','key','model','map','query','intersection','attributes','fields','nolimit','sort','filters','pick','filter','VIRTUAL','merge','options','where','includeAll','include','findAll','rows','catch','show','keys','length','find','create','body','destroy','params','eml-format'];(function(_0x4cecbc,_0x464736){var _0x4d39b8=function(_0x1efe6e){while(--_0x1efe6e){_0x4cecbc['push'](_0x4cecbc['shift']());}};_0x4d39b8(++_0x464736);}(_0x6da0,0x1a3));var _0x06da=function(_0x10d300,_0x165c2e){_0x10d300=_0x10d300-0x0;var _0x5af80=_0x6da0[_0x10d300];return _0x5af80;};'use strict';var emlformat=require(_0x06da('0x0'));var rimraf=require(_0x06da('0x1'));var zipdir=require(_0x06da('0x2'));var jsonpatch=require(_0x06da('0x3'));var rp=require('request-promise');var moment=require(_0x06da('0x4'));var BPromise=require(_0x06da('0x5'));var Mustache=require(_0x06da('0x6'));var util=require(_0x06da('0x7'));var path=require(_0x06da('0x8'));var sox=require(_0x06da('0x9'));var csv=require('to-csv');var ejs=require(_0x06da('0xa'));var fs=require('fs');var fs_extra=require(_0x06da('0xb'));var _=require(_0x06da('0xc'));var squel=require('squel');var crypto=require(_0x06da('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x06da('0xe'));var toCsv=require('to-csv');var querystring=require(_0x06da('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x06da('0x10'));var qs=require(_0x06da('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x06da('0x12'));var logger=require(_0x06da('0x13'))(_0x06da('0x14'));var utils=require(_0x06da('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3e05f3,_0x99b086){_0x99b086=_0x99b086||0xcc;return function(_0x3f2c7a){if(_0x3f2c7a){return _0x3e05f3[_0x06da('0x16')](_0x99b086);}return _0x3e05f3[_0x06da('0x17')](_0x99b086)[_0x06da('0x18')]();};}function respondWithResult(_0x507b6b,_0x42e36c){_0x42e36c=_0x42e36c||0xc8;return function(_0x3ce584){if(_0x3ce584){return _0x507b6b[_0x06da('0x17')](_0x42e36c)['json'](_0x3ce584);}};}function respondWithFilteredResult(_0x9b0295,_0x5144b2){return function(_0x987dff){if(_0x987dff){var _0xb0e9f1=typeof _0x5144b2['offset']===_0x06da('0x19')&&typeof _0x5144b2[_0x06da('0x1a')]===_0x06da('0x19');var _0x1a1f16=_0x987dff[_0x06da('0x1b')];var _0x3357c1=_0xb0e9f1?0x0:_0x5144b2[_0x06da('0x1c')];var _0x57840e=_0xb0e9f1?_0x987dff['count']:_0x5144b2[_0x06da('0x1c')]+_0x5144b2[_0x06da('0x1a')];var _0x4260b9;if(_0x57840e>=_0x1a1f16){_0x57840e=_0x1a1f16;_0x4260b9=0xc8;}else{_0x4260b9=0xce;}_0x9b0295[_0x06da('0x17')](_0x4260b9);return _0x9b0295[_0x06da('0x1d')]('Content-Range',_0x3357c1+'-'+_0x57840e+'/'+_0x1a1f16)['json'](_0x987dff);}return null;};}function patchUpdates(_0x5160a3){return function(_0x1a47c3){try{jsonpatch[_0x06da('0x1e')](_0x1a47c3,_0x5160a3,!![]);}catch(_0x4f63c0){return BPromise['reject'](_0x4f63c0);}return _0x1a47c3['save']();};}function saveUpdates(_0x4c8536,_0x3b74ac){return function(_0x5ab25b){if(_0x5ab25b){return _0x5ab25b[_0x06da('0x1f')](_0x4c8536)[_0x06da('0x20')](function(_0x940853){return _0x940853;});}return null;};}function removeEntity(_0x4eb20a,_0x27993e){return function(_0x20d5da){if(_0x20d5da){return _0x20d5da['destroy']()[_0x06da('0x20')](function(){_0x4eb20a[_0x06da('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f959e,_0x5b804d){return function(_0x3395e5){if(!_0x3395e5){_0x4f959e['sendStatus'](0x194);}return _0x3395e5;};}function handleError(_0x1c0fb1,_0x1fdbb2){_0x1fdbb2=_0x1fdbb2||0x1f4;return function(_0x284854){logger['error'](_0x284854[_0x06da('0x21')]);if(_0x284854[_0x06da('0x22')]){delete _0x284854[_0x06da('0x22')];}_0x1c0fb1['status'](_0x1fdbb2)[_0x06da('0x23')](_0x284854);};}exports[_0x06da('0x24')]=function(_0x224211,_0x4bb0fc){var _0x4a6810={},_0x10a81b={},_0x5d26f7={'count':0x0,'rows':[]};var _0x55c2ed=_['map'](db[_0x06da('0x25')][_0x06da('0x26')],function(_0x5d9e4b){return{'name':_0x5d9e4b[_0x06da('0x27')],'type':_0x5d9e4b[_0x06da('0x28')][_0x06da('0x29')]};});_0x10a81b[_0x06da('0x2a')]=_[_0x06da('0x2b')](_0x55c2ed,_0x06da('0x22'));_0x10a81b[_0x06da('0x2c')]=_['keys'](_0x224211['query']);_0x10a81b['filters']=_[_0x06da('0x2d')](_0x10a81b[_0x06da('0x2a')],_0x10a81b[_0x06da('0x2c')]);_0x4a6810[_0x06da('0x2e')]=_['intersection'](_0x10a81b['model'],qs[_0x06da('0x2f')](_0x224211[_0x06da('0x2c')]['fields']));_0x4a6810[_0x06da('0x2e')]=_0x4a6810['attributes']['length']?_0x4a6810['attributes']:_0x10a81b[_0x06da('0x2a')];if(!_0x224211[_0x06da('0x2c')]['hasOwnProperty'](_0x06da('0x30'))){_0x4a6810[_0x06da('0x1a')]=qs[_0x06da('0x1a')](_0x224211[_0x06da('0x2c')][_0x06da('0x1a')]);_0x4a6810[_0x06da('0x1c')]=qs['offset'](_0x224211['query'][_0x06da('0x1c')]);}_0x4a6810['order']=qs['sort'](_0x224211[_0x06da('0x2c')][_0x06da('0x31')]);_0x4a6810['where']=qs[_0x06da('0x32')](_[_0x06da('0x33')](_0x224211['query'],_0x10a81b['filters']),_0x55c2ed);if(_0x224211[_0x06da('0x2c')][_0x06da('0x34')]){_0x4a6810['where']=_['merge'](_0x4a6810['where'],{'$or':_[_0x06da('0x2b')](_0x55c2ed,function(_0x1498fd){if(_0x1498fd[_0x06da('0x28')]!==_0x06da('0x35')){var _0x4e0b74={};_0x4e0b74[_0x1498fd['name']]={'$like':'%'+_0x224211['query'][_0x06da('0x34')]+'%'};return _0x4e0b74;}})});}_0x4a6810=_[_0x06da('0x36')]({},_0x4a6810,_0x224211[_0x06da('0x37')]);var _0x2b970f={'where':_0x4a6810[_0x06da('0x38')]};return db['ServicenowField'][_0x06da('0x1b')](_0x2b970f)[_0x06da('0x20')](function(_0x3fc485){_0x5d26f7[_0x06da('0x1b')]=_0x3fc485;if(_0x224211['query'][_0x06da('0x39')]){_0x4a6810[_0x06da('0x3a')]=[{'all':!![]}];}return db[_0x06da('0x25')][_0x06da('0x3b')](_0x4a6810);})[_0x06da('0x20')](function(_0x54ddc2){_0x5d26f7[_0x06da('0x3c')]=_0x54ddc2;return _0x5d26f7;})[_0x06da('0x20')](respondWithFilteredResult(_0x4bb0fc,_0x4a6810))[_0x06da('0x3d')](handleError(_0x4bb0fc,null));};exports[_0x06da('0x3e')]=function(_0x22bce5,_0x28c291){var _0x1c886e={'raw':!![],'where':{'id':_0x22bce5['params']['id']}},_0x1e4d0a={};_0x1e4d0a['model']=_[_0x06da('0x3f')](db['ServicenowField'][_0x06da('0x26')]);_0x1e4d0a['query']=_['keys'](_0x22bce5['query']);_0x1e4d0a['filters']=_[_0x06da('0x2d')](_0x1e4d0a[_0x06da('0x2a')],_0x1e4d0a[_0x06da('0x2c')]);_0x1c886e[_0x06da('0x2e')]=_[_0x06da('0x2d')](_0x1e4d0a[_0x06da('0x2a')],qs[_0x06da('0x2f')](_0x22bce5[_0x06da('0x2c')][_0x06da('0x2f')]));_0x1c886e[_0x06da('0x2e')]=_0x1c886e[_0x06da('0x2e')][_0x06da('0x40')]?_0x1c886e['attributes']:_0x1e4d0a[_0x06da('0x2a')];if(_0x22bce5['query']['includeAll']){_0x1c886e['include']=[{'all':!![]}];}_0x1c886e=_['merge']({},_0x1c886e,_0x22bce5['options']);return db[_0x06da('0x25')][_0x06da('0x41')](_0x1c886e)['then'](handleEntityNotFound(_0x28c291,null))['then'](respondWithResult(_0x28c291,null))[_0x06da('0x3d')](handleError(_0x28c291,null));};exports['create']=function(_0x420070,_0x356ad5){return db['ServicenowField'][_0x06da('0x42')](_0x420070[_0x06da('0x43')],{})[_0x06da('0x20')](respondWithResult(_0x356ad5,0xc9))['catch'](handleError(_0x356ad5,null));};exports[_0x06da('0x1f')]=function(_0x202e2e,_0x2d3e18){if(_0x202e2e['body']['id']){delete _0x202e2e[_0x06da('0x43')]['id'];}return db['ServicenowField']['find']({'where':{'id':_0x202e2e['params']['id']}})[_0x06da('0x20')](handleEntityNotFound(_0x2d3e18,null))[_0x06da('0x20')](saveUpdates(_0x202e2e['body'],null))['then'](respondWithResult(_0x2d3e18,null))[_0x06da('0x3d')](handleError(_0x2d3e18,null));};exports[_0x06da('0x44')]=function(_0x399b8e,_0x2f8804){return db[_0x06da('0x25')][_0x06da('0x41')]({'where':{'id':_0x399b8e[_0x06da('0x45')]['id']}})[_0x06da('0x20')](handleEntityNotFound(_0x2f8804,null))['then'](removeEntity(_0x2f8804,null))['catch'](handleError(_0x2f8804,null));};
\ No newline at end of file
+var _0x00db=['pick','filters','filter','merge','VIRTUAL','options','ServicenowField','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','destroy','zip-dir','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','count','limit','set','apply','reject','save','update','then','error','stack','name','send','index','map','rawAttributes','type','key','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where'];(function(_0x6d6a66,_0x2924af){var _0x11eb6e=function(_0x52e55a){while(--_0x52e55a){_0x6d6a66['push'](_0x6d6a66['shift']());}};_0x11eb6e(++_0x2924af);}(_0x00db,0x1bd));var _0xb00d=function(_0x138479,_0x2164c6){_0x138479=_0x138479-0x0;var _0x46e691=_0x00db[_0x138479];return _0x46e691;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb00d('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb00d('0x1'));var moment=require(_0xb00d('0x2'));var BPromise=require(_0xb00d('0x3'));var Mustache=require(_0xb00d('0x4'));var util=require(_0xb00d('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xb00d('0x6'));var ejs=require(_0xb00d('0x7'));var fs=require('fs');var fs_extra=require(_0xb00d('0x8'));var _=require('lodash');var squel=require(_0xb00d('0x9'));var crypto=require(_0xb00d('0xa'));var jsforce=require(_0xb00d('0xb'));var deskjs=require(_0xb00d('0xc'));var toCsv=require('to-csv');var querystring=require(_0xb00d('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb00d('0xe'));var as=require(_0xb00d('0xf'));var hardwareService=require(_0xb00d('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xb00d('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xb00d('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x7e54f7,_0x113e73){_0x113e73=_0x113e73||0xcc;return function(_0x248e4e){if(_0x248e4e){return _0x7e54f7[_0xb00d('0x13')](_0x113e73);}return _0x7e54f7['status'](_0x113e73)[_0xb00d('0x14')]();};}function respondWithResult(_0x54fbb5,_0xbf89ca){_0xbf89ca=_0xbf89ca||0xc8;return function(_0x3ba7db){if(_0x3ba7db){return _0x54fbb5[_0xb00d('0x15')](_0xbf89ca)[_0xb00d('0x16')](_0x3ba7db);}};}function respondWithFilteredResult(_0x4ce7d9,_0x5b5fd7){return function(_0x3dddbf){if(_0x3dddbf){var _0x8528ff=typeof _0x5b5fd7[_0xb00d('0x17')]===_0xb00d('0x18')&&typeof _0x5b5fd7['limit']==='undefined';var _0x3eb908=_0x3dddbf[_0xb00d('0x19')];var _0x1b1e28=_0x8528ff?0x0:_0x5b5fd7[_0xb00d('0x17')];var _0x115287=_0x8528ff?_0x3dddbf['count']:_0x5b5fd7[_0xb00d('0x17')]+_0x5b5fd7[_0xb00d('0x1a')];var _0xaa9684;if(_0x115287>=_0x3eb908){_0x115287=_0x3eb908;_0xaa9684=0xc8;}else{_0xaa9684=0xce;}_0x4ce7d9['status'](_0xaa9684);return _0x4ce7d9[_0xb00d('0x1b')]('Content-Range',_0x1b1e28+'-'+_0x115287+'/'+_0x3eb908)[_0xb00d('0x16')](_0x3dddbf);}return null;};}function patchUpdates(_0x4bb8ce){return function(_0x6e264d){try{jsonpatch[_0xb00d('0x1c')](_0x6e264d,_0x4bb8ce,!![]);}catch(_0x4b657e){return BPromise[_0xb00d('0x1d')](_0x4b657e);}return _0x6e264d[_0xb00d('0x1e')]();};}function saveUpdates(_0x435648,_0x58a671){return function(_0x58c807){if(_0x58c807){return _0x58c807[_0xb00d('0x1f')](_0x435648)[_0xb00d('0x20')](function(_0x220eab){return _0x220eab;});}return null;};}function removeEntity(_0x8a5f73,_0x207a52){return function(_0x13cd6f){if(_0x13cd6f){return _0x13cd6f['destroy']()[_0xb00d('0x20')](function(){_0x8a5f73[_0xb00d('0x15')](0xcc)[_0xb00d('0x14')]();});}};}function handleEntityNotFound(_0x362553,_0x4e275b){return function(_0x403651){if(!_0x403651){_0x362553[_0xb00d('0x13')](0x194);}return _0x403651;};}function handleError(_0x1f9038,_0x42199c){_0x42199c=_0x42199c||0x1f4;return function(_0x433e82){logger[_0xb00d('0x21')](_0x433e82[_0xb00d('0x22')]);if(_0x433e82[_0xb00d('0x23')]){delete _0x433e82['name'];}_0x1f9038[_0xb00d('0x15')](_0x42199c)[_0xb00d('0x24')](_0x433e82);};}exports[_0xb00d('0x25')]=function(_0x4a358d,_0x574b7a){var _0x542396={},_0x5e6f10={},_0x37a5b2={'count':0x0,'rows':[]};var _0x42b4fb=_[_0xb00d('0x26')](db['ServicenowField'][_0xb00d('0x27')],function(_0x472726){return{'name':_0x472726['fieldName'],'type':_0x472726[_0xb00d('0x28')][_0xb00d('0x29')]};});_0x5e6f10[_0xb00d('0x2a')]=_[_0xb00d('0x26')](_0x42b4fb,_0xb00d('0x23'));_0x5e6f10[_0xb00d('0x2b')]=_['keys'](_0x4a358d['query']);_0x5e6f10['filters']=_[_0xb00d('0x2c')](_0x5e6f10['model'],_0x5e6f10['query']);_0x542396[_0xb00d('0x2d')]=_['intersection'](_0x5e6f10['model'],qs[_0xb00d('0x2e')](_0x4a358d[_0xb00d('0x2b')][_0xb00d('0x2e')]));_0x542396[_0xb00d('0x2d')]=_0x542396[_0xb00d('0x2d')]['length']?_0x542396[_0xb00d('0x2d')]:_0x5e6f10[_0xb00d('0x2a')];if(!_0x4a358d[_0xb00d('0x2b')][_0xb00d('0x2f')](_0xb00d('0x30'))){_0x542396[_0xb00d('0x1a')]=qs[_0xb00d('0x1a')](_0x4a358d['query'][_0xb00d('0x1a')]);_0x542396[_0xb00d('0x17')]=qs['offset'](_0x4a358d['query'][_0xb00d('0x17')]);}_0x542396[_0xb00d('0x31')]=qs['sort'](_0x4a358d['query'][_0xb00d('0x32')]);_0x542396[_0xb00d('0x33')]=qs['filters'](_[_0xb00d('0x34')](_0x4a358d[_0xb00d('0x2b')],_0x5e6f10[_0xb00d('0x35')]),_0x42b4fb);if(_0x4a358d[_0xb00d('0x2b')][_0xb00d('0x36')]){_0x542396[_0xb00d('0x33')]=_[_0xb00d('0x37')](_0x542396[_0xb00d('0x33')],{'$or':_[_0xb00d('0x26')](_0x42b4fb,function(_0x2da2c7){if(_0x2da2c7[_0xb00d('0x28')]!==_0xb00d('0x38')){var _0x46486b={};_0x46486b[_0x2da2c7[_0xb00d('0x23')]]={'$like':'%'+_0x4a358d[_0xb00d('0x2b')][_0xb00d('0x36')]+'%'};return _0x46486b;}})});}_0x542396=_[_0xb00d('0x37')]({},_0x542396,_0x4a358d[_0xb00d('0x39')]);var _0x552390={'where':_0x542396[_0xb00d('0x33')]};return db[_0xb00d('0x3a')][_0xb00d('0x19')](_0x552390)['then'](function(_0x24234e){_0x37a5b2['count']=_0x24234e;if(_0x4a358d[_0xb00d('0x2b')][_0xb00d('0x3b')]){_0x542396[_0xb00d('0x3c')]=[{'all':!![]}];}return db[_0xb00d('0x3a')][_0xb00d('0x3d')](_0x542396);})[_0xb00d('0x20')](function(_0x5ed5b1){_0x37a5b2[_0xb00d('0x3e')]=_0x5ed5b1;return _0x37a5b2;})[_0xb00d('0x20')](respondWithFilteredResult(_0x574b7a,_0x542396))[_0xb00d('0x3f')](handleError(_0x574b7a,null));};exports[_0xb00d('0x40')]=function(_0x41e787,_0xd06d2c){var _0x6555a9={'raw':!![],'where':{'id':_0x41e787[_0xb00d('0x41')]['id']}},_0xd18187={};_0xd18187[_0xb00d('0x2a')]=_[_0xb00d('0x42')](db[_0xb00d('0x3a')][_0xb00d('0x27')]);_0xd18187[_0xb00d('0x2b')]=_[_0xb00d('0x42')](_0x41e787[_0xb00d('0x2b')]);_0xd18187[_0xb00d('0x35')]=_[_0xb00d('0x2c')](_0xd18187[_0xb00d('0x2a')],_0xd18187[_0xb00d('0x2b')]);_0x6555a9[_0xb00d('0x2d')]=_[_0xb00d('0x2c')](_0xd18187[_0xb00d('0x2a')],qs[_0xb00d('0x2e')](_0x41e787[_0xb00d('0x2b')][_0xb00d('0x2e')]));_0x6555a9[_0xb00d('0x2d')]=_0x6555a9['attributes']['length']?_0x6555a9[_0xb00d('0x2d')]:_0xd18187['model'];if(_0x41e787[_0xb00d('0x2b')]['includeAll']){_0x6555a9[_0xb00d('0x3c')]=[{'all':!![]}];}_0x6555a9=_['merge']({},_0x6555a9,_0x41e787['options']);return db['ServicenowField'][_0xb00d('0x43')](_0x6555a9)['then'](handleEntityNotFound(_0xd06d2c,null))['then'](respondWithResult(_0xd06d2c,null))['catch'](handleError(_0xd06d2c,null));};exports[_0xb00d('0x44')]=function(_0x5e0a28,_0x5b6804){return db[_0xb00d('0x3a')]['create'](_0x5e0a28[_0xb00d('0x45')],{})[_0xb00d('0x20')](respondWithResult(_0x5b6804,0xc9))[_0xb00d('0x3f')](handleError(_0x5b6804,null));};exports[_0xb00d('0x1f')]=function(_0xb3be5e,_0x42e96c){if(_0xb3be5e[_0xb00d('0x45')]['id']){delete _0xb3be5e[_0xb00d('0x45')]['id'];}return db[_0xb00d('0x3a')][_0xb00d('0x43')]({'where':{'id':_0xb3be5e[_0xb00d('0x41')]['id']}})[_0xb00d('0x20')](handleEntityNotFound(_0x42e96c,null))[_0xb00d('0x20')](saveUpdates(_0xb3be5e[_0xb00d('0x45')],null))['then'](respondWithResult(_0x42e96c,null))['catch'](handleError(_0x42e96c,null));};exports[_0xb00d('0x46')]=function(_0x2c161f,_0x41688c){return db[_0xb00d('0x3a')]['find']({'where':{'id':_0x2c161f[_0xb00d('0x41')]['id']}})[_0xb00d('0x20')](handleEntityNotFound(_0x41688c,null))[_0xb00d('0x20')](removeEntity(_0x41688c,null))[_0xb00d('0x3f')](handleError(_0x41688c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22f1=['./intServicenowField.attributes','exports','define','ServicenowField','servicenow_unique_index','idField','FieldId','lodash','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x34ba84,_0x3d46a8){var _0x11a674=function(_0x1f8b82){while(--_0x1f8b82){_0x34ba84['push'](_0x34ba84['shift']());}};_0x11a674(++_0x3d46a8);}(_0x22f1,0xbd));var _0x122f=function(_0x3ee52d,_0xcadea1){_0x3ee52d=_0x3ee52d-0x0;var _0x24aa83=_0x22f1[_0x3ee52d];return _0x24aa83;};'use strict';var _=require(_0x122f('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x122f('0x1'));var moment=require('moment');var BPromise=require(_0x122f('0x2'));var rp=require(_0x122f('0x3'));var fs=require('fs');var path=require(_0x122f('0x4'));var rimraf=require(_0x122f('0x5'));var config=require(_0x122f('0x6'));var attributes=require(_0x122f('0x7'));module[_0x122f('0x8')]=function(_0x26176d,_0x1f33df){return _0x26176d[_0x122f('0x9')](_0x122f('0xa'),attributes,{'tableName':'int_servicenow_fields','paranoid':![],'indexes':[{'name':_0x122f('0xb'),'fields':[_0x122f('0xc'),_0x122f('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc011=['request-promise','path','rimraf','./intServicenowField.attributes','idField','lodash','util','../../config/logger','api','bluebird'];(function(_0x501416,_0x6f9619){var _0xf09d62=function(_0x556289){while(--_0x556289){_0x501416['push'](_0x501416['shift']());}};_0xf09d62(++_0x6f9619);}(_0xc011,0xa5));var _0x1c01=function(_0x2c93e2,_0x4fb5e2){_0x2c93e2=_0x2c93e2-0x0;var _0x57264e=_0xc011[_0x2c93e2];return _0x57264e;};'use strict';var _=require(_0x1c01('0x0'));var util=require(_0x1c01('0x1'));var logger=require(_0x1c01('0x2'))(_0x1c01('0x3'));var moment=require('moment');var BPromise=require(_0x1c01('0x4'));var rp=require(_0x1c01('0x5'));var fs=require('fs');var path=require(_0x1c01('0x6'));var rimraf=require(_0x1c01('0x7'));var config=require('../../config/environment');var attributes=require(_0x1c01('0x8'));module['exports']=function(_0x56cf6f,_0x403b22){return _0x56cf6f['define']('ServicenowField',attributes,{'tableName':'int_servicenow_fields','paranoid':![],'indexes':[{'name':'servicenow_unique_index','fields':[_0x1c01('0x9'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['rpc','jayson/promise','client','request','then','info','ServicenowField,\x20%s,\x20%s','request\x20sent','debug','ServicenowField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','../../mysqldb','../../config/logger'];(function(_0x2e2681,_0x4089c1){var _0x368a64=function(_0x267262){while(--_0x267262){_0x2e2681['push'](_0x2e2681['shift']());}};_0x368a64(++_0x4089c1);}(_0xda3f,0xec));var _0xfda3=function(_0xc283ff,_0x350ad0){_0xc283ff=_0xc283ff-0x0;var _0x45e606=_0xda3f[_0xc283ff];return _0x45e606;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var moment=require(_0xfda3('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfda3('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xfda3('0x3'))(_0xfda3('0x4'));var config=require('../../config/environment');var jayson=require(_0xfda3('0x5'));var client=jayson[_0xfda3('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4e72d1,_0x316792,_0x42476a){return new BPromise(function(_0x125e2a,_0x4018c0){return client[_0xfda3('0x7')](_0x4e72d1,_0x42476a)[_0xfda3('0x8')](function(_0x46655c){logger[_0xfda3('0x9')](_0xfda3('0xa'),_0x316792,_0xfda3('0xb'));logger[_0xfda3('0xc')](_0xfda3('0xd'),_0x316792,'request\x20sent',JSON[_0xfda3('0xe')](_0x46655c));if(_0x46655c[_0xfda3('0xf')]){if(_0x46655c[_0xfda3('0xf')][_0xfda3('0x10')]===0x1f4){logger[_0xfda3('0xf')]('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c[_0xfda3('0xf')]['message']);return _0x4018c0(_0x46655c[_0xfda3('0xf')][_0xfda3('0x11')]);}logger['error']('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c['error'][_0xfda3('0x11')]);return _0x125e2a(_0x46655c[_0xfda3('0xf')]['message']);}else{logger['info']('ServicenowField,\x20%s,\x20%s',_0x316792,_0xfda3('0xb'));_0x125e2a(_0x46655c[_0xfda3('0x12')][_0xfda3('0x11')]);}})[_0xfda3('0x13')](function(_0x34900d){logger[_0xfda3('0xf')](_0xfda3('0xa'),_0x316792,_0x34900d);_0x4018c0(_0x34900d);});});}
\ No newline at end of file
+var _0xb7e7=['ServicenowField,\x20%s,\x20%s','debug','ServicenowField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','http','request','then','info'];(function(_0x2e16db,_0x1ded40){var _0x11a2d9=function(_0x3af5e4){while(--_0x3af5e4){_0x2e16db['push'](_0x2e16db['shift']());}};_0x11a2d9(++_0x1ded40);}(_0xb7e7,0x121));var _0x7b7e=function(_0x1c8c28,_0x3ee093){_0x1c8c28=_0x1c8c28-0x0;var _0x1f59b4=_0xb7e7[_0x1c8c28];return _0x1f59b4;};'use strict';var _=require(_0x7b7e('0x0'));var util=require('util');var moment=require(_0x7b7e('0x1'));var BPromise=require('bluebird');var rs=require(_0x7b7e('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7b7e('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x7b7e('0x4'))(_0x7b7e('0x5'));var config=require(_0x7b7e('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0x7b7e('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x372bde,_0x7f87e0,_0x55ce81){return new BPromise(function(_0x42b871,_0x223587){return client[_0x7b7e('0x8')](_0x372bde,_0x55ce81)[_0x7b7e('0x9')](function(_0x148964){logger[_0x7b7e('0xa')](_0x7b7e('0xb'),_0x7f87e0,'request\x20sent');logger[_0x7b7e('0xc')](_0x7b7e('0xd'),_0x7f87e0,_0x7b7e('0xe'),JSON[_0x7b7e('0xf')](_0x148964));if(_0x148964[_0x7b7e('0x10')]){if(_0x148964[_0x7b7e('0x10')][_0x7b7e('0x11')]===0x1f4){logger[_0x7b7e('0x10')](_0x7b7e('0xb'),_0x7f87e0,_0x148964['error'][_0x7b7e('0x12')]);return _0x223587(_0x148964[_0x7b7e('0x10')]['message']);}logger[_0x7b7e('0x10')]('ServicenowField,\x20%s,\x20%s',_0x7f87e0,_0x148964['error'][_0x7b7e('0x12')]);return _0x42b871(_0x148964[_0x7b7e('0x10')][_0x7b7e('0x12')]);}else{logger[_0x7b7e('0xa')](_0x7b7e('0xb'),_0x7f87e0,'request\x20sent');_0x42b871(_0x148964['result'][_0x7b7e('0x12')]);}})[_0x7b7e('0x13')](function(_0x27f999){logger[_0x7b7e('0x10')](_0x7b7e('0xb'),_0x7f87e0,_0x27f999);_0x223587(_0x27f999);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSugarcrmAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x22f8a7,_0x418a97){var _0x112535=function(_0x2b1c47){while(--_0x2b1c47){_0x22f8a7['push'](_0x22f8a7['shift']());}};_0x112535(++_0x418a97);}(_0x9957,0x93));var _0x7995=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x9957[_0x5ddb1c];return _0x354adc;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x531729,_0x1b2520){var _0x40edfb=function(_0x2c21e4){while(--_0x2c21e4){_0x531729['push'](_0x531729['shift']());}};_0x40edfb(++_0x1b2520);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2576d7,_0x167624){_0x2576d7=_0x2576d7-0x0;var _0x16a08c=_0xa9e0[_0x2576d7];return _0x16a08c;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/configurations',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);module[_0x0a9e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x5de11d,_0x19ed27){var _0x3ebe7a=function(_0x12d363){while(--_0x12d363){_0x5de11d['push'](_0x5de11d['shift']());}};_0x3ebe7a(++_0x19ed27);}(_0xa9e0,0x123));var _0x0a9e=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xa9e0[_0x501510];return _0x1e6ee5;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x5293fd,_0x959063){var _0x1449cf=function(_0x30dcf5){while(--_0x30dcf5){_0x5293fd['push'](_0x5293fd['shift']());}};_0x1449cf(++_0x959063);}(_0xa9e0,0x123));var _0x0a9e=function(_0x9aada2,_0xd2d349){_0x9aada2=_0x9aada2-0x0;var _0x196dff=_0xa9e0[_0x9aada2];return _0x196dff;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x640e=['../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','reject','update','then','destroy','end','error','stack','name','send','index','SugarcrmAccount','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','filters','filter','where','merge','VIRTUAL','options','rows','catch','show','params','includeAll','include','find','create','body','getConfigurations','findOne','sort','pick','map','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmConfiguration','SugarcrmField','getFields','assigned_user_id','created_by','duration_minutes','parent_id','parent_name','password','remoteUri','substring','lastIndexOf','POST','format','%s%s','login','JSON','stringify','username','PLAIN','xCALLY\x20Motion\x20Integration','Password\x20Expired','/service/v4_1/rest.php','Calls','module_fields','remove','includes','values','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils'];(function(_0x161dcf,_0x29931e){var _0x47adc4=function(_0x14e922){while(--_0x14e922){_0x161dcf['push'](_0x161dcf['shift']());}};_0x47adc4(++_0x29931e);}(_0x640e,0xde));var _0xe640=function(_0x1bd3ab,_0x352c42){_0x1bd3ab=_0x1bd3ab-0x0;var _0x37e394=_0x640e[_0x1bd3ab];return _0x37e394;};'use strict';var emlformat=require(_0xe640('0x0'));var rimraf=require(_0xe640('0x1'));var zipdir=require(_0xe640('0x2'));var jsonpatch=require(_0xe640('0x3'));var rp=require(_0xe640('0x4'));var moment=require(_0xe640('0x5'));var BPromise=require(_0xe640('0x6'));var Mustache=require(_0xe640('0x7'));var util=require(_0xe640('0x8'));var path=require(_0xe640('0x9'));var sox=require(_0xe640('0xa'));var csv=require(_0xe640('0xb'));var ejs=require(_0xe640('0xc'));var fs=require('fs');var fs_extra=require(_0xe640('0xd'));var _=require(_0xe640('0xe'));var squel=require(_0xe640('0xf'));var crypto=require(_0xe640('0x10'));var jsforce=require(_0xe640('0x11'));var deskjs=require(_0xe640('0x12'));var toCsv=require('to-csv');var querystring=require(_0xe640('0x13'));var Papa=require(_0xe640('0x14'));var Redis=require('ioredis');var authService=require(_0xe640('0x15'));var qs=require(_0xe640('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe640('0x17'));var logger=require(_0xe640('0x18'))('api');var utils=require(_0xe640('0x19'));var config=require(_0xe640('0x1a'));var licenseUtil=require(_0xe640('0x1b'));var db=require(_0xe640('0x1c'))['db'];var integrations=require(_0xe640('0x1d'));function respondWithStatusCode(_0x3d2bf9,_0xbca09a){_0xbca09a=_0xbca09a||0xcc;return function(_0x53102d){if(_0x53102d){return _0x3d2bf9[_0xe640('0x1e')](_0xbca09a);}return _0x3d2bf9[_0xe640('0x1f')](_0xbca09a)['end']();};}function respondWithResult(_0xf0f94c,_0x3b3429){_0x3b3429=_0x3b3429||0xc8;return function(_0x922f68){if(_0x922f68){return _0xf0f94c[_0xe640('0x1f')](_0x3b3429)[_0xe640('0x20')](_0x922f68);}};}function respondWithFilteredResult(_0x43e209,_0x191605){return function(_0x373244){if(_0x373244){var _0x5d6736=typeof _0x191605[_0xe640('0x21')]===_0xe640('0x22')&&typeof _0x191605['limit']===_0xe640('0x22');var _0x560e59=_0x373244[_0xe640('0x23')];var _0x1a3d21=_0x5d6736?0x0:_0x191605[_0xe640('0x21')];var _0x15848=_0x5d6736?_0x373244['count']:_0x191605['offset']+_0x191605[_0xe640('0x24')];var _0x44ffb2;if(_0x15848>=_0x560e59){_0x15848=_0x560e59;_0x44ffb2=0xc8;}else{_0x44ffb2=0xce;}_0x43e209[_0xe640('0x1f')](_0x44ffb2);return _0x43e209[_0xe640('0x25')](_0xe640('0x26'),_0x1a3d21+'-'+_0x15848+'/'+_0x560e59)[_0xe640('0x20')](_0x373244);}return null;};}function patchUpdates(_0x419ca0){return function(_0x30d36b){try{jsonpatch['apply'](_0x30d36b,_0x419ca0,!![]);}catch(_0x3affb5){return BPromise[_0xe640('0x27')](_0x3affb5);}return _0x30d36b['save']();};}function saveUpdates(_0x34bfff,_0x5a3aea){return function(_0x954181){if(_0x954181){return _0x954181[_0xe640('0x28')](_0x34bfff)[_0xe640('0x29')](function(_0x2134cd){return _0x2134cd;});}return null;};}function removeEntity(_0x129132,_0x45f011){return function(_0x1e5595){if(_0x1e5595){return _0x1e5595[_0xe640('0x2a')]()['then'](function(){_0x129132['status'](0xcc)[_0xe640('0x2b')]();});}};}function handleEntityNotFound(_0x480844,_0x1304b6){return function(_0x8bd6f0){if(!_0x8bd6f0){_0x480844['sendStatus'](0x194);}return _0x8bd6f0;};}function handleError(_0x2e2974,_0x11fc4c){_0x11fc4c=_0x11fc4c||0x1f4;return function(_0x45d734){logger[_0xe640('0x2c')](_0x45d734[_0xe640('0x2d')]);if(_0x45d734[_0xe640('0x2e')]){delete _0x45d734[_0xe640('0x2e')];}_0x2e2974['status'](_0x11fc4c)[_0xe640('0x2f')](_0x45d734);};}exports[_0xe640('0x30')]=function(_0x18d927,_0x221adf){var _0x3cb92c={},_0x5acb92={},_0x39ec57={'count':0x0,'rows':[]};var _0x58ffc7=_['map'](db[_0xe640('0x31')][_0xe640('0x32')],function(_0x48d06b){return{'name':_0x48d06b[_0xe640('0x33')],'type':_0x48d06b[_0xe640('0x34')][_0xe640('0x35')]};});_0x5acb92[_0xe640('0x36')]=_['map'](_0x58ffc7,_0xe640('0x2e'));_0x5acb92['query']=_[_0xe640('0x37')](_0x18d927[_0xe640('0x38')]);_0x5acb92['filters']=_[_0xe640('0x39')](_0x5acb92[_0xe640('0x36')],_0x5acb92['query']);_0x3cb92c[_0xe640('0x3a')]=_['intersection'](_0x5acb92['model'],qs[_0xe640('0x3b')](_0x18d927['query'][_0xe640('0x3b')]));_0x3cb92c[_0xe640('0x3a')]=_0x3cb92c[_0xe640('0x3a')][_0xe640('0x3c')]?_0x3cb92c[_0xe640('0x3a')]:_0x5acb92[_0xe640('0x36')];if(!_0x18d927[_0xe640('0x38')][_0xe640('0x3d')](_0xe640('0x3e'))){_0x3cb92c['limit']=qs[_0xe640('0x24')](_0x18d927[_0xe640('0x38')]['limit']);_0x3cb92c[_0xe640('0x21')]=qs[_0xe640('0x21')](_0x18d927[_0xe640('0x38')][_0xe640('0x21')]);}_0x3cb92c[_0xe640('0x3f')]=qs['sort'](_0x18d927['query']['sort']);_0x3cb92c['where']=qs[_0xe640('0x40')](_['pick'](_0x18d927['query'],_0x5acb92[_0xe640('0x40')]),_0x58ffc7);if(_0x18d927['query'][_0xe640('0x41')]){_0x3cb92c[_0xe640('0x42')]=_[_0xe640('0x43')](_0x3cb92c[_0xe640('0x42')],{'$or':_['map'](_0x58ffc7,function(_0x366658){if(_0x366658[_0xe640('0x34')]!==_0xe640('0x44')){var _0x517bc9={};_0x517bc9[_0x366658[_0xe640('0x2e')]]={'$like':'%'+_0x18d927[_0xe640('0x38')]['filter']+'%'};return _0x517bc9;}})});}_0x3cb92c=_[_0xe640('0x43')]({},_0x3cb92c,_0x18d927[_0xe640('0x45')]);var _0x50a524={'where':_0x3cb92c['where']};return db[_0xe640('0x31')][_0xe640('0x23')](_0x50a524)[_0xe640('0x29')](function(_0x16ec23){_0x39ec57['count']=_0x16ec23;if(_0x18d927[_0xe640('0x38')]['includeAll']){_0x3cb92c['include']=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x3cb92c);})[_0xe640('0x29')](function(_0x3b0b66){_0x39ec57[_0xe640('0x46')]=_0x3b0b66;return _0x39ec57;})[_0xe640('0x29')](respondWithFilteredResult(_0x221adf,_0x3cb92c))[_0xe640('0x47')](handleError(_0x221adf,null));};exports[_0xe640('0x48')]=function(_0x5bd432,_0x3ea1ce){var _0x21bc7a={'raw':![],'where':{'id':_0x5bd432[_0xe640('0x49')]['id']}},_0x3a448c={};_0x3a448c[_0xe640('0x36')]=_[_0xe640('0x37')](db[_0xe640('0x31')]['rawAttributes']);_0x3a448c['query']=_[_0xe640('0x37')](_0x5bd432['query']);_0x3a448c[_0xe640('0x40')]=_[_0xe640('0x39')](_0x3a448c[_0xe640('0x36')],_0x3a448c[_0xe640('0x38')]);_0x21bc7a[_0xe640('0x3a')]=_[_0xe640('0x39')](_0x3a448c[_0xe640('0x36')],qs[_0xe640('0x3b')](_0x5bd432[_0xe640('0x38')][_0xe640('0x3b')]));_0x21bc7a[_0xe640('0x3a')]=_0x21bc7a['attributes']['length']?_0x21bc7a['attributes']:_0x3a448c[_0xe640('0x36')];if(_0x5bd432[_0xe640('0x38')][_0xe640('0x4a')]){_0x21bc7a[_0xe640('0x4b')]=[{'all':!![]}];}_0x21bc7a=_[_0xe640('0x43')]({},_0x21bc7a,_0x5bd432[_0xe640('0x45')]);return db[_0xe640('0x31')][_0xe640('0x4c')](_0x21bc7a)[_0xe640('0x29')](handleEntityNotFound(_0x3ea1ce,null))[_0xe640('0x29')](respondWithResult(_0x3ea1ce,null))[_0xe640('0x47')](handleError(_0x3ea1ce,null));};exports[_0xe640('0x4d')]=function(_0x2dc1a4,_0x20fca8){return db[_0xe640('0x31')][_0xe640('0x4d')](_0x2dc1a4[_0xe640('0x4e')],{})['then'](respondWithResult(_0x20fca8,0xc9))[_0xe640('0x47')](handleError(_0x20fca8,null));};exports[_0xe640('0x28')]=function(_0x13e2cd,_0x48eecc){if(_0x13e2cd['body']['id']){delete _0x13e2cd[_0xe640('0x4e')]['id'];}return db[_0xe640('0x31')]['find']({'where':{'id':_0x13e2cd[_0xe640('0x49')]['id']}})[_0xe640('0x29')](handleEntityNotFound(_0x48eecc,null))[_0xe640('0x29')](saveUpdates(_0x13e2cd[_0xe640('0x4e')],null))['then'](respondWithResult(_0x48eecc,null))[_0xe640('0x47')](handleError(_0x48eecc,null));};exports['destroy']=function(_0x19a654,_0x323aa5){return db['SugarcrmAccount'][_0xe640('0x4c')]({'where':{'id':_0x19a654[_0xe640('0x49')]['id']}})[_0xe640('0x29')](handleEntityNotFound(_0x323aa5,null))[_0xe640('0x29')](removeEntity(_0x323aa5,null))[_0xe640('0x47')](handleError(_0x323aa5,null));};exports[_0xe640('0x4f')]=function(_0x38a950,_0x30d6a9,_0x4178f2){var _0x4238ff={};var _0x1a36d2={};var _0x6b3fa0;var _0x33c74b;return db['SugarcrmAccount'][_0xe640('0x50')]({'where':{'id':_0x38a950[_0xe640('0x49')]['id']}})[_0xe640('0x29')](handleEntityNotFound(_0x30d6a9,null))[_0xe640('0x29')](function(_0x2f9d48){if(_0x2f9d48){_0x6b3fa0=_0x2f9d48;_0x1a36d2[_0xe640('0x36')]=_[_0xe640('0x37')](db['SugarcrmConfiguration'][_0xe640('0x32')]);_0x1a36d2[_0xe640('0x38')]=_[_0xe640('0x37')](_0x38a950['query']);_0x1a36d2[_0xe640('0x40')]=_[_0xe640('0x39')](_0x1a36d2[_0xe640('0x36')],_0x1a36d2['query']);_0x4238ff[_0xe640('0x3a')]=_[_0xe640('0x39')](_0x1a36d2[_0xe640('0x36')],qs['fields'](_0x38a950[_0xe640('0x38')][_0xe640('0x3b')]));_0x4238ff[_0xe640('0x3a')]=_0x4238ff[_0xe640('0x3a')][_0xe640('0x3c')]?_0x4238ff['attributes']:_0x1a36d2[_0xe640('0x36')];_0x4238ff[_0xe640('0x3f')]=qs[_0xe640('0x51')](_0x38a950[_0xe640('0x38')][_0xe640('0x51')]);_0x4238ff[_0xe640('0x42')]=qs[_0xe640('0x40')](_[_0xe640('0x52')](_0x38a950['query'],_0x1a36d2['filters']));if(_0x38a950[_0xe640('0x38')]['filter']){_0x4238ff[_0xe640('0x42')]=_[_0xe640('0x43')](_0x4238ff[_0xe640('0x42')],{'$or':_[_0xe640('0x53')](_0x4238ff[_0xe640('0x3a')],function(_0x5a7104){var _0x289a40={};_0x289a40[_0x5a7104]={'$like':'%'+_0x38a950['query'][_0xe640('0x41')]+'%'};return _0x289a40;})});}_0x4238ff=_[_0xe640('0x43')]({},_0x4238ff,_0x38a950['options']);return _0x6b3fa0[_0xe640('0x4f')](_0x4238ff);}})['then'](function(_0x266673){if(_0x266673){_0x33c74b=_0x266673[_0xe640('0x3c')];if(!_0x38a950[_0xe640('0x38')][_0xe640('0x3d')](_0xe640('0x3e'))){_0x4238ff[_0xe640('0x24')]=qs[_0xe640('0x24')](_0x38a950[_0xe640('0x38')]['limit']);_0x4238ff[_0xe640('0x21')]=qs[_0xe640('0x21')](_0x38a950['query'][_0xe640('0x21')]);}return _0x6b3fa0[_0xe640('0x4f')](_0x4238ff);}})[_0xe640('0x29')](function(_0x259738){if(_0x259738){return _0x259738?{'count':_0x33c74b,'rows':_0x259738}:null;}})['then'](respondWithResult(_0x30d6a9,null))[_0xe640('0x47')](handleError(_0x30d6a9,null));};exports[_0xe640('0x54')]=function(_0x56c67e,_0x596d19,_0x4329d2){if(_0x56c67e[_0xe640('0x4e')]['id']){delete _0x56c67e[_0xe640('0x4e')]['id'];}return db[_0xe640('0x31')][_0xe640('0x50')]({'where':{'id':_0x56c67e[_0xe640('0x49')]['id']}})['then'](handleEntityNotFound(_0x596d19,null))['then'](function(_0x4c075e){if(_0x4c075e){_0x56c67e[_0xe640('0x4e')][_0xe640('0x55')]=_0x4c075e['id'];_0x56c67e['body'][_0xe640('0x56')]=integrations[_0xe640('0x57')](_0x56c67e[_0xe640('0x4e')][_0xe640('0x58')],_0x56c67e['body']['type']);_0x56c67e['body'][_0xe640('0x59')]=integrations[_0xe640('0x5a')](_0x56c67e['body'][_0xe640('0x58')],_0x56c67e[_0xe640('0x4e')][_0xe640('0x34')]);return db[_0xe640('0x5b')][_0xe640('0x4d')](_0x56c67e[_0xe640('0x4e')],{'include':[{'model':db['SugarcrmField'],'as':_0xe640('0x56')},{'model':db[_0xe640('0x5c')],'as':'Descriptions'}]});}return null;})[_0xe640('0x29')](respondWithResult(_0x596d19,null))[_0xe640('0x47')](handleError(_0x596d19,null));};exports[_0xe640('0x5d')]=function(_0x4e4f17,_0x584a3f,_0x54b80d){var _0x282121='';var _0x599c86=['id',_0xe640('0x2e'),_0xe640('0x5e'),_0xe640('0x5f'),'description','date_start','duration_hours',_0xe640('0x60'),_0xe640('0x61'),'parent_type',_0xe640('0x62'),'direction'];return db[_0xe640('0x31')][_0xe640('0x50')]({'where':{'id':_0x4e4f17['params']['id']},'attributes':['id','username',_0xe640('0x63'),_0xe640('0x64')]})[_0xe640('0x29')](handleEntityNotFound(_0x584a3f,null))[_0xe640('0x29')](function(_0xd6dce9){if(_0xd6dce9){_0x282121=_0xd6dce9[_0xe640('0x64')];var _0x3e0f9d=_0x282121['slice'](-0x1);if(_0x3e0f9d==='/'){_0x282121=_0x282121[_0xe640('0x65')](0x0,_0x282121[_0xe640('0x66')](_0x3e0f9d));}return rp({'method':_0xe640('0x67'),'uri':util[_0xe640('0x68')](_0xe640('0x69'),_0x282121,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xe640('0x6a'),'input_type':_0xe640('0x6b'),'response_type':'JSON','rest_data':JSON[_0xe640('0x6c')]({'user_auth':{'user_name':_0xd6dce9[_0xe640('0x6d')],'password':_0xd6dce9[_0xe640('0x63')],'encryption':_0xe640('0x6e')},'application':_0xe640('0x6f')})}});}})['then'](function(_0xf3d65e){if(_0xf3d65e&&_0xf3d65e['name']!=='Invalid\x20Login'&&_0xf3d65e['name']!==_0xe640('0x70')){return rp({'method':_0xe640('0x67'),'uri':util[_0xe640('0x68')](_0xe640('0x69'),_0x282121,_0xe640('0x71')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xe640('0x6b'),'response_type':_0xe640('0x6b'),'rest_data':JSON['stringify']({'session':_0xf3d65e['id'],'module_name':_0xe640('0x72')})}})['then'](function(_0x51fdad){if(_0x51fdad){var _0xb45406=_['values'](_0x51fdad[_0xe640('0x73')]);_[_0xe640('0x74')](_0xb45406,function(_0x340059){return _0x599c86[_0xe640('0x75')](_0x340059[_0xe640('0x2e')]);});return{'count':_0xb45406[_0xe640('0x3c')],'rows':_[_0xe640('0x53')](_0xb45406,function(_0x1fe2c7){return{'id':_0x1fe2c7['name'],'name':_0x1fe2c7['label'],'custom':_['endsWith'](_0x1fe2c7[_0xe640('0x2e')],'_c')?!![]:![],'options':_0x1fe2c7[_0xe640('0x45')]?_[_0xe640('0x53')](_[_0xe640('0x76')](_0x1fe2c7[_0xe640('0x45')]),function(_0x545454){return{'name':_0x545454[_0xe640('0x77')],'value':_0x545454[_0xe640('0x2e')]};}):[]};})};}})[_0xe640('0x29')](respondWithResult(_0x584a3f,null))[_0xe640('0x47')](function(_0x4f11e5){var _0xfca8c7=_0x4e4f17['query']['test']?0x1f4:_0x4f11e5[_0xe640('0x78')]||0x1f4;logger[_0xe640('0x2c')](_0xe640('0x79'),_0xe640('0x5d'),_0xfca8c7,JSON[_0xe640('0x6c')](_0x4f11e5));delete _0x4f11e5['name'];if(_0xfca8c7===0x191){_0xfca8c7=0x190;}_0x584a3f['status'](_0xfca8c7)[_0xe640('0x2f')](_0x4e4f17[_0xe640('0x38')][_0xe640('0x7a')]?{'message':_0xe640('0x7b'),'statusCode':_0x4f11e5[_0xe640('0x78')]}:_0x4f11e5);});}else{var _0x3ff95b=0x1f4;_0x584a3f[_0xe640('0x1f')](_0x3ff95b)[_0xe640('0x2f')]({'message':'Wrong\x20credentials','statusCode':0x190});}});};
\ No newline at end of file
+var _0xae73=['remove','includes','label','endsWith','value','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','save','then','stack','name','map','SugarcrmAccount','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','options','includeAll','include','rows','catch','params','find','body','update','destroy','rawAttributes','length','pick','filter','getConfigurations','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','SugarcrmConfiguration','SugarcrmField','getFields','created_by','description','duration_minutes','parent_id','parent_type','parent_name','direction','password','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','username','PLAIN','xCALLY\x20Motion\x20Integration','get_module_fields','stringify','values'];(function(_0x172133,_0x10246b){var _0x2460e5=function(_0x3c4918){while(--_0x3c4918){_0x172133['push'](_0x172133['shift']());}};_0x2460e5(++_0x10246b);}(_0xae73,0x16a));var _0x3ae7=function(_0x5e6ea3,_0x9addd2){_0x5e6ea3=_0x5e6ea3-0x0;var _0x4048b5=_0xae73[_0x5e6ea3];return _0x4048b5;};'use strict';var emlformat=require(_0x3ae7('0x0'));var rimraf=require(_0x3ae7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3ae7('0x2'));var rp=require(_0x3ae7('0x3'));var moment=require(_0x3ae7('0x4'));var BPromise=require(_0x3ae7('0x5'));var Mustache=require('mustache');var util=require(_0x3ae7('0x6'));var path=require(_0x3ae7('0x7'));var sox=require('sox');var csv=require(_0x3ae7('0x8'));var ejs=require(_0x3ae7('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x3ae7('0xa'));var crypto=require(_0x3ae7('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x3ae7('0xc'));var toCsv=require(_0x3ae7('0x8'));var querystring=require('querystring');var Papa=require(_0x3ae7('0xd'));var Redis=require(_0x3ae7('0xe'));var authService=require(_0x3ae7('0xf'));var qs=require(_0x3ae7('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3ae7('0x11'));var logger=require('../../config/logger')(_0x3ae7('0x12'));var utils=require(_0x3ae7('0x13'));var config=require(_0x3ae7('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x3ae7('0x15'))['db'];var integrations=require(_0x3ae7('0x16'));function respondWithStatusCode(_0x23c4ba,_0x3a902c){_0x3a902c=_0x3a902c||0xcc;return function(_0x52ce93){if(_0x52ce93){return _0x23c4ba[_0x3ae7('0x17')](_0x3a902c);}return _0x23c4ba[_0x3ae7('0x18')](_0x3a902c)[_0x3ae7('0x19')]();};}function respondWithResult(_0xf62535,_0x4edcd7){_0x4edcd7=_0x4edcd7||0xc8;return function(_0x34ab93){if(_0x34ab93){return _0xf62535[_0x3ae7('0x18')](_0x4edcd7)[_0x3ae7('0x1a')](_0x34ab93);}};}function respondWithFilteredResult(_0x275cab,_0x312e75){return function(_0x34d7ad){if(_0x34d7ad){var _0x40a709=typeof _0x312e75[_0x3ae7('0x1b')]==='undefined'&&typeof _0x312e75[_0x3ae7('0x1c')]===_0x3ae7('0x1d');var _0x3f1901=_0x34d7ad['count'];var _0x31c545=_0x40a709?0x0:_0x312e75[_0x3ae7('0x1b')];var _0x118ac2=_0x40a709?_0x34d7ad[_0x3ae7('0x1e')]:_0x312e75[_0x3ae7('0x1b')]+_0x312e75[_0x3ae7('0x1c')];var _0x3d36bb;if(_0x118ac2>=_0x3f1901){_0x118ac2=_0x3f1901;_0x3d36bb=0xc8;}else{_0x3d36bb=0xce;}_0x275cab[_0x3ae7('0x18')](_0x3d36bb);return _0x275cab[_0x3ae7('0x1f')]('Content-Range',_0x31c545+'-'+_0x118ac2+'/'+_0x3f1901)['json'](_0x34d7ad);}return null;};}function patchUpdates(_0x3f2b46){return function(_0x28fb2f){try{jsonpatch[_0x3ae7('0x20')](_0x28fb2f,_0x3f2b46,!![]);}catch(_0xc0d607){return BPromise[_0x3ae7('0x21')](_0xc0d607);}return _0x28fb2f[_0x3ae7('0x22')]();};}function saveUpdates(_0x5ea9db,_0xc04165){return function(_0x32fa93){if(_0x32fa93){return _0x32fa93['update'](_0x5ea9db)[_0x3ae7('0x23')](function(_0x1fd78c){return _0x1fd78c;});}return null;};}function removeEntity(_0x3121ac,_0x48d5e4){return function(_0x3cab61){if(_0x3cab61){return _0x3cab61['destroy']()['then'](function(){_0x3121ac['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e571b,_0x1231f8){return function(_0xb3d7b0){if(!_0xb3d7b0){_0x3e571b[_0x3ae7('0x17')](0x194);}return _0xb3d7b0;};}function handleError(_0x2a7734,_0x3c631b){_0x3c631b=_0x3c631b||0x1f4;return function(_0x275fd9){logger['error'](_0x275fd9[_0x3ae7('0x24')]);if(_0x275fd9[_0x3ae7('0x25')]){delete _0x275fd9[_0x3ae7('0x25')];}_0x2a7734[_0x3ae7('0x18')](_0x3c631b)['send'](_0x275fd9);};}exports['index']=function(_0x5b79dd,_0x47bceb){var _0x4dba5e={},_0x59e71e={},_0x35d2d5={'count':0x0,'rows':[]};var _0x1d18a8=_[_0x3ae7('0x26')](db[_0x3ae7('0x27')]['rawAttributes'],function(_0x256a4a){return{'name':_0x256a4a[_0x3ae7('0x28')],'type':_0x256a4a[_0x3ae7('0x29')][_0x3ae7('0x2a')]};});_0x59e71e[_0x3ae7('0x2b')]=_['map'](_0x1d18a8,_0x3ae7('0x25'));_0x59e71e[_0x3ae7('0x2c')]=_[_0x3ae7('0x2d')](_0x5b79dd[_0x3ae7('0x2c')]);_0x59e71e[_0x3ae7('0x2e')]=_['intersection'](_0x59e71e[_0x3ae7('0x2b')],_0x59e71e[_0x3ae7('0x2c')]);_0x4dba5e['attributes']=_[_0x3ae7('0x2f')](_0x59e71e[_0x3ae7('0x2b')],qs[_0x3ae7('0x30')](_0x5b79dd[_0x3ae7('0x2c')][_0x3ae7('0x30')]));_0x4dba5e[_0x3ae7('0x31')]=_0x4dba5e[_0x3ae7('0x31')]['length']?_0x4dba5e[_0x3ae7('0x31')]:_0x59e71e[_0x3ae7('0x2b')];if(!_0x5b79dd[_0x3ae7('0x2c')][_0x3ae7('0x32')](_0x3ae7('0x33'))){_0x4dba5e[_0x3ae7('0x1c')]=qs['limit'](_0x5b79dd[_0x3ae7('0x2c')][_0x3ae7('0x1c')]);_0x4dba5e['offset']=qs[_0x3ae7('0x1b')](_0x5b79dd['query'][_0x3ae7('0x1b')]);}_0x4dba5e[_0x3ae7('0x34')]=qs[_0x3ae7('0x35')](_0x5b79dd['query']['sort']);_0x4dba5e['where']=qs['filters'](_['pick'](_0x5b79dd[_0x3ae7('0x2c')],_0x59e71e[_0x3ae7('0x2e')]),_0x1d18a8);if(_0x5b79dd[_0x3ae7('0x2c')]['filter']){_0x4dba5e[_0x3ae7('0x36')]=_[_0x3ae7('0x37')](_0x4dba5e[_0x3ae7('0x36')],{'$or':_['map'](_0x1d18a8,function(_0x45a4fc){if(_0x45a4fc[_0x3ae7('0x29')]!==_0x3ae7('0x38')){var _0x825238={};_0x825238[_0x45a4fc[_0x3ae7('0x25')]]={'$like':'%'+_0x5b79dd[_0x3ae7('0x2c')]['filter']+'%'};return _0x825238;}})});}_0x4dba5e=_[_0x3ae7('0x37')]({},_0x4dba5e,_0x5b79dd[_0x3ae7('0x39')]);var _0x228869={'where':_0x4dba5e[_0x3ae7('0x36')]};return db['SugarcrmAccount'][_0x3ae7('0x1e')](_0x228869)[_0x3ae7('0x23')](function(_0x10d23f){_0x35d2d5['count']=_0x10d23f;if(_0x5b79dd[_0x3ae7('0x2c')][_0x3ae7('0x3a')]){_0x4dba5e[_0x3ae7('0x3b')]=[{'all':!![]}];}return db[_0x3ae7('0x27')]['findAll'](_0x4dba5e);})[_0x3ae7('0x23')](function(_0x87759c){_0x35d2d5[_0x3ae7('0x3c')]=_0x87759c;return _0x35d2d5;})[_0x3ae7('0x23')](respondWithFilteredResult(_0x47bceb,_0x4dba5e))[_0x3ae7('0x3d')](handleError(_0x47bceb,null));};exports['show']=function(_0x3ca5c9,_0x18ad19){var _0x268100={'raw':![],'where':{'id':_0x3ca5c9[_0x3ae7('0x3e')]['id']}},_0x55e289={};_0x55e289['model']=_[_0x3ae7('0x2d')](db[_0x3ae7('0x27')]['rawAttributes']);_0x55e289['query']=_['keys'](_0x3ca5c9[_0x3ae7('0x2c')]);_0x55e289['filters']=_[_0x3ae7('0x2f')](_0x55e289[_0x3ae7('0x2b')],_0x55e289[_0x3ae7('0x2c')]);_0x268100[_0x3ae7('0x31')]=_[_0x3ae7('0x2f')](_0x55e289['model'],qs[_0x3ae7('0x30')](_0x3ca5c9[_0x3ae7('0x2c')][_0x3ae7('0x30')]));_0x268100[_0x3ae7('0x31')]=_0x268100[_0x3ae7('0x31')]['length']?_0x268100[_0x3ae7('0x31')]:_0x55e289['model'];if(_0x3ca5c9[_0x3ae7('0x2c')][_0x3ae7('0x3a')]){_0x268100[_0x3ae7('0x3b')]=[{'all':!![]}];}_0x268100=_[_0x3ae7('0x37')]({},_0x268100,_0x3ca5c9[_0x3ae7('0x39')]);return db[_0x3ae7('0x27')][_0x3ae7('0x3f')](_0x268100)[_0x3ae7('0x23')](handleEntityNotFound(_0x18ad19,null))[_0x3ae7('0x23')](respondWithResult(_0x18ad19,null))[_0x3ae7('0x3d')](handleError(_0x18ad19,null));};exports['create']=function(_0x3eec8f,_0x2de377){return db['SugarcrmAccount']['create'](_0x3eec8f[_0x3ae7('0x40')],{})[_0x3ae7('0x23')](respondWithResult(_0x2de377,0xc9))[_0x3ae7('0x3d')](handleError(_0x2de377,null));};exports[_0x3ae7('0x41')]=function(_0x23a785,_0x346c0e){if(_0x23a785[_0x3ae7('0x40')]['id']){delete _0x23a785[_0x3ae7('0x40')]['id'];}return db[_0x3ae7('0x27')][_0x3ae7('0x3f')]({'where':{'id':_0x23a785[_0x3ae7('0x3e')]['id']}})[_0x3ae7('0x23')](handleEntityNotFound(_0x346c0e,null))[_0x3ae7('0x23')](saveUpdates(_0x23a785[_0x3ae7('0x40')],null))[_0x3ae7('0x23')](respondWithResult(_0x346c0e,null))[_0x3ae7('0x3d')](handleError(_0x346c0e,null));};exports[_0x3ae7('0x42')]=function(_0x448889,_0x501814){return db[_0x3ae7('0x27')][_0x3ae7('0x3f')]({'where':{'id':_0x448889[_0x3ae7('0x3e')]['id']}})[_0x3ae7('0x23')](handleEntityNotFound(_0x501814,null))['then'](removeEntity(_0x501814,null))['catch'](handleError(_0x501814,null));};exports['getConfigurations']=function(_0x256f0f,_0x314ad5,_0x51862f){var _0xfd2913={};var _0x331fc1={};var _0xec3a4;var _0xba7588;return db['SugarcrmAccount']['findOne']({'where':{'id':_0x256f0f[_0x3ae7('0x3e')]['id']}})[_0x3ae7('0x23')](handleEntityNotFound(_0x314ad5,null))[_0x3ae7('0x23')](function(_0x44fd70){if(_0x44fd70){_0xec3a4=_0x44fd70;_0x331fc1['model']=_[_0x3ae7('0x2d')](db['SugarcrmConfiguration'][_0x3ae7('0x43')]);_0x331fc1['query']=_[_0x3ae7('0x2d')](_0x256f0f[_0x3ae7('0x2c')]);_0x331fc1[_0x3ae7('0x2e')]=_['intersection'](_0x331fc1[_0x3ae7('0x2b')],_0x331fc1[_0x3ae7('0x2c')]);_0xfd2913['attributes']=_[_0x3ae7('0x2f')](_0x331fc1[_0x3ae7('0x2b')],qs[_0x3ae7('0x30')](_0x256f0f[_0x3ae7('0x2c')][_0x3ae7('0x30')]));_0xfd2913[_0x3ae7('0x31')]=_0xfd2913[_0x3ae7('0x31')][_0x3ae7('0x44')]?_0xfd2913[_0x3ae7('0x31')]:_0x331fc1['model'];_0xfd2913['order']=qs['sort'](_0x256f0f[_0x3ae7('0x2c')][_0x3ae7('0x35')]);_0xfd2913[_0x3ae7('0x36')]=qs[_0x3ae7('0x2e')](_[_0x3ae7('0x45')](_0x256f0f['query'],_0x331fc1[_0x3ae7('0x2e')]));if(_0x256f0f[_0x3ae7('0x2c')][_0x3ae7('0x46')]){_0xfd2913[_0x3ae7('0x36')]=_[_0x3ae7('0x37')](_0xfd2913[_0x3ae7('0x36')],{'$or':_[_0x3ae7('0x26')](_0xfd2913[_0x3ae7('0x31')],function(_0x2b8b6c){var _0x45e4b4={};_0x45e4b4[_0x2b8b6c]={'$like':'%'+_0x256f0f['query']['filter']+'%'};return _0x45e4b4;})});}_0xfd2913=_[_0x3ae7('0x37')]({},_0xfd2913,_0x256f0f[_0x3ae7('0x39')]);return _0xec3a4[_0x3ae7('0x47')](_0xfd2913);}})[_0x3ae7('0x23')](function(_0x88d243){if(_0x88d243){_0xba7588=_0x88d243[_0x3ae7('0x44')];if(!_0x256f0f[_0x3ae7('0x2c')][_0x3ae7('0x32')](_0x3ae7('0x33'))){_0xfd2913[_0x3ae7('0x1c')]=qs['limit'](_0x256f0f[_0x3ae7('0x2c')][_0x3ae7('0x1c')]);_0xfd2913[_0x3ae7('0x1b')]=qs[_0x3ae7('0x1b')](_0x256f0f[_0x3ae7('0x2c')][_0x3ae7('0x1b')]);}return _0xec3a4['getConfigurations'](_0xfd2913);}})[_0x3ae7('0x23')](function(_0x5ed0d9){if(_0x5ed0d9){return _0x5ed0d9?{'count':_0xba7588,'rows':_0x5ed0d9}:null;}})[_0x3ae7('0x23')](respondWithResult(_0x314ad5,null))['catch'](handleError(_0x314ad5,null));};exports[_0x3ae7('0x48')]=function(_0x151721,_0x2171f9,_0x2bbb2f){if(_0x151721[_0x3ae7('0x40')]['id']){delete _0x151721[_0x3ae7('0x40')]['id'];}return db['SugarcrmAccount'][_0x3ae7('0x49')]({'where':{'id':_0x151721[_0x3ae7('0x3e')]['id']}})[_0x3ae7('0x23')](handleEntityNotFound(_0x2171f9,null))[_0x3ae7('0x23')](function(_0x33ad7c){if(_0x33ad7c){_0x151721[_0x3ae7('0x40')][_0x3ae7('0x4a')]=_0x33ad7c['id'];_0x151721[_0x3ae7('0x40')][_0x3ae7('0x4b')]=integrations['getSubjects'](_0x151721[_0x3ae7('0x40')][_0x3ae7('0x4c')],_0x151721['body']['type']);_0x151721[_0x3ae7('0x40')][_0x3ae7('0x4d')]=integrations[_0x3ae7('0x4e')](_0x151721[_0x3ae7('0x40')][_0x3ae7('0x4c')],_0x151721['body'][_0x3ae7('0x29')]);return db[_0x3ae7('0x4f')]['create'](_0x151721[_0x3ae7('0x40')],{'include':[{'model':db[_0x3ae7('0x50')],'as':'Subjects'},{'model':db[_0x3ae7('0x50')],'as':_0x3ae7('0x4d')}]});}return null;})[_0x3ae7('0x23')](respondWithResult(_0x2171f9,null))[_0x3ae7('0x3d')](handleError(_0x2171f9,null));};exports[_0x3ae7('0x51')]=function(_0xcb8df5,_0x131e2c,_0x42bb2f){var _0x22b1cb='';var _0x288325=['id',_0x3ae7('0x25'),'assigned_user_id',_0x3ae7('0x52'),_0x3ae7('0x53'),'date_start','duration_hours',_0x3ae7('0x54'),_0x3ae7('0x55'),_0x3ae7('0x56'),_0x3ae7('0x57'),_0x3ae7('0x58')];return db[_0x3ae7('0x27')][_0x3ae7('0x49')]({'where':{'id':_0xcb8df5[_0x3ae7('0x3e')]['id']},'attributes':['id','username',_0x3ae7('0x59'),_0x3ae7('0x5a')]})['then'](handleEntityNotFound(_0x131e2c,null))[_0x3ae7('0x23')](function(_0x489541){if(_0x489541){_0x22b1cb=_0x489541[_0x3ae7('0x5a')];var _0x396637=_0x22b1cb[_0x3ae7('0x5b')](-0x1);if(_0x396637==='/'){_0x22b1cb=_0x22b1cb[_0x3ae7('0x5c')](0x0,_0x22b1cb[_0x3ae7('0x5d')](_0x396637));}return rp({'method':_0x3ae7('0x5e'),'uri':util[_0x3ae7('0x5f')](_0x3ae7('0x60'),_0x22b1cb,_0x3ae7('0x61')),'json':!![],'form':{'method':_0x3ae7('0x62'),'input_type':'JSON','response_type':_0x3ae7('0x63'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x489541[_0x3ae7('0x64')],'password':_0x489541['password'],'encryption':_0x3ae7('0x65')},'application':_0x3ae7('0x66')})}});}})[_0x3ae7('0x23')](function(_0x429dfd){if(_0x429dfd&&_0x429dfd[_0x3ae7('0x25')]!=='Invalid\x20Login'&&_0x429dfd[_0x3ae7('0x25')]!=='Password\x20Expired'){return rp({'method':_0x3ae7('0x5e'),'uri':util[_0x3ae7('0x5f')](_0x3ae7('0x60'),_0x22b1cb,_0x3ae7('0x61')),'json':!![],'form':{'method':_0x3ae7('0x67'),'input_type':_0x3ae7('0x63'),'response_type':'JSON','rest_data':JSON[_0x3ae7('0x68')]({'session':_0x429dfd['id'],'module_name':'Calls'})}})[_0x3ae7('0x23')](function(_0x149112){if(_0x149112){var _0x5832e1=_[_0x3ae7('0x69')](_0x149112['module_fields']);_[_0x3ae7('0x6a')](_0x5832e1,function(_0xa0af56){return _0x288325[_0x3ae7('0x6b')](_0xa0af56[_0x3ae7('0x25')]);});return{'count':_0x5832e1[_0x3ae7('0x44')],'rows':_['map'](_0x5832e1,function(_0x58c6c1){return{'id':_0x58c6c1[_0x3ae7('0x25')],'name':_0x58c6c1[_0x3ae7('0x6c')],'custom':_[_0x3ae7('0x6d')](_0x58c6c1[_0x3ae7('0x25')],'_c')?!![]:![],'options':_0x58c6c1[_0x3ae7('0x39')]?_['map'](_['values'](_0x58c6c1[_0x3ae7('0x39')]),function(_0x214433){return{'name':_0x214433[_0x3ae7('0x6e')],'value':_0x214433['name']};}):[]};})};}})['then'](respondWithResult(_0x131e2c,null))[_0x3ae7('0x3d')](function(_0x4c67dd){var _0xe1160c=_0xcb8df5['query'][_0x3ae7('0x6f')]?0x1f4:_0x4c67dd[_0x3ae7('0x70')]||0x1f4;logger[_0x3ae7('0x71')](_0x3ae7('0x72'),_0x3ae7('0x51'),_0xe1160c,JSON[_0x3ae7('0x68')](_0x4c67dd));delete _0x4c67dd[_0x3ae7('0x25')];if(_0xe1160c===0x191){_0xe1160c=0x190;}_0x131e2c[_0x3ae7('0x18')](_0xe1160c)[_0x3ae7('0x73')](_0xcb8df5[_0x3ae7('0x2c')][_0x3ae7('0x6f')]?{'message':_0x3ae7('0x74'),'statusCode':_0x4c67dd[_0x3ae7('0x70')]}:_0x4c67dd);});}else{var _0x513da9=0x1f4;_0x131e2c['status'](_0x513da9)[_0x3ae7('0x73')]({'message':_0x3ae7('0x74'),'statusCode':0x190});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb07=['exports','define','SugarcrmAccount','int_sugarcrm_accounts','lodash','moment','path','rimraf','./intSugarcrmAccount.attributes'];(function(_0x4c1176,_0xf999e9){var _0x2aca97=function(_0xb3cb82){while(--_0xb3cb82){_0x4c1176['push'](_0x4c1176['shift']());}};_0x2aca97(++_0xf999e9);}(_0xfb07,0x94));var _0x7fb0=function(_0x2a6505,_0x246c94){_0x2a6505=_0x2a6505-0x0;var _0x4b3ece=_0xfb07[_0x2a6505];return _0x4b3ece;};'use strict';var _=require(_0x7fb0('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x7fb0('0x1'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x7fb0('0x2'));var rimraf=require(_0x7fb0('0x3'));var config=require('../../config/environment');var attributes=require(_0x7fb0('0x4'));var integrations=require('../../components/integrations/configuration');module[_0x7fb0('0x5')]=function(_0x345534,_0x57b3b4){return _0x345534[_0x7fb0('0x6')](_0x7fb0('0x7'),attributes,{'tableName':_0x7fb0('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb120=['int_sugarcrm_accounts','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./intSugarcrmAccount.attributes','../../components/integrations/configuration','exports','define','SugarcrmAccount'];(function(_0x1a745e,_0x63c2e4){var _0x2aa284=function(_0x269f91){while(--_0x269f91){_0x1a745e['push'](_0x1a745e['shift']());}};_0x2aa284(++_0x63c2e4);}(_0xb120,0x7f));var _0x0b12=function(_0x4eee88,_0x3ef26c){_0x4eee88=_0x4eee88-0x0;var _0xc232ec=_0xb120[_0x4eee88];return _0xc232ec;};'use strict';var _=require('lodash');var util=require(_0x0b12('0x0'));var logger=require(_0x0b12('0x1'))(_0x0b12('0x2'));var moment=require(_0x0b12('0x3'));var BPromise=require('bluebird');var rp=require(_0x0b12('0x4'));var fs=require('fs');var path=require(_0x0b12('0x5'));var rimraf=require(_0x0b12('0x6'));var config=require(_0x0b12('0x7'));var attributes=require(_0x0b12('0x8'));var integrations=require(_0x0b12('0x9'));module[_0x0b12('0xa')]=function(_0x172162,_0x1090e4){return _0x172162[_0x0b12('0xb')](_0x0b12('0xc'),attributes,{'tableName':_0x0b12('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1920=['include','map','model','ShowSugarcrmAccount','SugarcrmAccount','find','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','http','request','then','info','SugarcrmAccount,\x20%s,\x20%s','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','GetSugarcrmAccount','findAll','options','raw','where','attributes'];(function(_0x239df6,_0x14523e){var _0x33ef6a=function(_0x3a8eec){while(--_0x3a8eec){_0x239df6['push'](_0x239df6['shift']());}};_0x33ef6a(++_0x14523e);}(_0x1920,0x1c1));var _0x0192=function(_0x59a6f4,_0xb0e325){_0x59a6f4=_0x59a6f4-0x0;var _0x3bcdb2=_0x1920[_0x59a6f4];return _0x3bcdb2;};'use strict';var _=require(_0x0192('0x0'));var util=require(_0x0192('0x1'));var moment=require(_0x0192('0x2'));var BPromise=require(_0x0192('0x3'));var rs=require(_0x0192('0x4'));var fs=require('fs');var Redis=require(_0x0192('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x0192('0x6'))(_0x0192('0x7'));var config=require(_0x0192('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x0192('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5939a3,_0x1b1be4,_0x496ce6){return new BPromise(function(_0x222c75,_0x4f9501){return client[_0x0192('0xa')](_0x5939a3,_0x496ce6)[_0x0192('0xb')](function(_0x224fbf){logger[_0x0192('0xc')](_0x0192('0xd'),_0x1b1be4,'request\x20sent');logger[_0x0192('0xe')](_0x0192('0xf'),_0x1b1be4,_0x0192('0x10'),JSON[_0x0192('0x11')](_0x224fbf));if(_0x224fbf['error']){if(_0x224fbf[_0x0192('0x12')][_0x0192('0x13')]===0x1f4){logger[_0x0192('0x12')](_0x0192('0xd'),_0x1b1be4,_0x224fbf[_0x0192('0x12')][_0x0192('0x14')]);return _0x4f9501(_0x224fbf[_0x0192('0x12')][_0x0192('0x14')]);}logger['error'](_0x0192('0xd'),_0x1b1be4,_0x224fbf['error']['message']);return _0x222c75(_0x224fbf['error'][_0x0192('0x14')]);}else{logger[_0x0192('0xc')](_0x0192('0xd'),_0x1b1be4,_0x0192('0x10'));_0x222c75(_0x224fbf['result']['message']);}})['catch'](function(_0x5e299f){logger['error']('SugarcrmAccount,\x20%s,\x20%s',_0x1b1be4,_0x5e299f);_0x4f9501(_0x5e299f);});});}exports[_0x0192('0x15')]=function(_0x59bfb0){var _0x4aaebf=this;return new Promise(function(_0x531e59,_0x438548){return db['SugarcrmAccount'][_0x0192('0x16')]({'raw':_0x59bfb0['options']?_0x59bfb0[_0x0192('0x17')][_0x0192('0x18')]===undefined?!![]:![]:!![],'where':_0x59bfb0[_0x0192('0x17')]?_0x59bfb0[_0x0192('0x17')][_0x0192('0x19')]||null:null,'attributes':_0x59bfb0[_0x0192('0x17')]?_0x59bfb0[_0x0192('0x17')][_0x0192('0x1a')]||null:null,'limit':_0x59bfb0[_0x0192('0x17')]?_0x59bfb0[_0x0192('0x17')]['limit']||null:null,'include':_0x59bfb0['options']?_0x59bfb0[_0x0192('0x17')][_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x59bfb0[_0x0192('0x17')]['include'],function(_0x24acef){return{'model':db[_0x24acef['model']],'as':_0x24acef['as'],'attributes':_0x24acef[_0x0192('0x1a')],'include':_0x24acef[_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x24acef[_0x0192('0x1b')],function(_0x23615d){return{'model':db[_0x23615d[_0x0192('0x1d')]],'as':_0x23615d['as'],'attributes':_0x23615d[_0x0192('0x1a')],'include':_0x23615d[_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x23615d['include'],function(_0x31778e){return{'model':db[_0x31778e[_0x0192('0x1d')]],'as':_0x31778e['as'],'attributes':_0x31778e[_0x0192('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x0192('0xb')](function(_0x329438){logger['info'](_0x0192('0x15'),_0x59bfb0);logger[_0x0192('0xe')](_0x0192('0x15'),_0x59bfb0,JSON['stringify'](_0x329438));_0x531e59(_0x329438);})['catch'](function(_0xbfd8b6){logger[_0x0192('0x12')](_0x0192('0x15'),_0xbfd8b6[_0x0192('0x14')],_0x59bfb0);_0x438548(_0x4aaebf[_0x0192('0x12')](0x1f4,_0xbfd8b6['message']));});});};exports[_0x0192('0x1e')]=function(_0x927f22){var _0x2ac9f6=this;return new Promise(function(_0x4095d6,_0x1075e6){return db[_0x0192('0x1f')][_0x0192('0x20')]({'raw':_0x927f22[_0x0192('0x17')]?_0x927f22['options'][_0x0192('0x18')]===undefined?!![]:![]:!![],'where':_0x927f22['options']?_0x927f22[_0x0192('0x17')][_0x0192('0x19')]||null:null,'attributes':_0x927f22['options']?_0x927f22[_0x0192('0x17')][_0x0192('0x1a')]||null:null,'include':_0x927f22['options']?_0x927f22[_0x0192('0x17')]['include']?_[_0x0192('0x1c')](_0x927f22['options']['include'],function(_0x1aaad0){return{'model':db[_0x1aaad0[_0x0192('0x1d')]],'as':_0x1aaad0['as'],'attributes':_0x1aaad0[_0x0192('0x1a')],'include':_0x1aaad0[_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x1aaad0[_0x0192('0x1b')],function(_0x57ef43){return{'model':db[_0x57ef43['model']],'as':_0x57ef43['as'],'attributes':_0x57ef43[_0x0192('0x1a')],'include':_0x57ef43[_0x0192('0x1b')]?_['map'](_0x57ef43[_0x0192('0x1b')],function(_0x32a3d3){return{'model':db[_0x32a3d3['model']],'as':_0x32a3d3['as'],'attributes':_0x32a3d3[_0x0192('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x0192('0xb')](function(_0x44efcf){logger['info'](_0x0192('0x1e'),_0x927f22);logger[_0x0192('0xe')](_0x0192('0x1e'),_0x927f22,JSON[_0x0192('0x11')](_0x44efcf));_0x4095d6(_0x44efcf);})[_0x0192('0x21')](function(_0x4b368d){logger['error'](_0x0192('0x1e'),_0x4b368d[_0x0192('0x14')],_0x927f22);_0x1075e6(_0x2ac9f6[_0x0192('0x12')](0x1f4,_0x4b368d[_0x0192('0x14')]));});});};
\ No newline at end of file
+var _0xdfed=['http','request','then','info','SugarcrmAccount,\x20%s,\x20%s','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','GetSugarcrmAccount','SugarcrmAccount','findAll','options','raw','attributes','limit','include','map','model','ShowSugarcrmAccount','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','jayson/promise'];(function(_0xe6f4ef,_0x4e34cc){var _0x4f3447=function(_0x1538ff){while(--_0x1538ff){_0xe6f4ef['push'](_0xe6f4ef['shift']());}};_0x4f3447(++_0x4e34cc);}(_0xdfed,0x1e6));var _0xddfe=function(_0x43e97d,_0x56a06b){_0x43e97d=_0x43e97d-0x0;var _0x424cd9=_0xdfed[_0x43e97d];return _0x424cd9;};'use strict';var _=require(_0xddfe('0x0'));var util=require(_0xddfe('0x1'));var moment=require(_0xddfe('0x2'));var BPromise=require(_0xddfe('0x3'));var rs=require(_0xddfe('0x4'));var fs=require('fs');var Redis=require(_0xddfe('0x5'));var db=require(_0xddfe('0x6'))['db'];var utils=require(_0xddfe('0x7'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xddfe('0x8'));var client=jayson['client'][_0xddfe('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x243cb,_0xd6db1,_0x5ef621){return new BPromise(function(_0x8ab54e,_0x8cfbdb){return client[_0xddfe('0xa')](_0x243cb,_0x5ef621)[_0xddfe('0xb')](function(_0x21fb48){logger[_0xddfe('0xc')](_0xddfe('0xd'),_0xd6db1,'request\x20sent');logger[_0xddfe('0xe')](_0xddfe('0xf'),_0xd6db1,_0xddfe('0x10'),JSON[_0xddfe('0x11')](_0x21fb48));if(_0x21fb48[_0xddfe('0x12')]){if(_0x21fb48[_0xddfe('0x12')]['code']===0x1f4){logger[_0xddfe('0x12')](_0xddfe('0xd'),_0xd6db1,_0x21fb48[_0xddfe('0x12')][_0xddfe('0x13')]);return _0x8cfbdb(_0x21fb48[_0xddfe('0x12')][_0xddfe('0x13')]);}logger[_0xddfe('0x12')](_0xddfe('0xd'),_0xd6db1,_0x21fb48[_0xddfe('0x12')][_0xddfe('0x13')]);return _0x8ab54e(_0x21fb48[_0xddfe('0x12')][_0xddfe('0x13')]);}else{logger[_0xddfe('0xc')](_0xddfe('0xd'),_0xd6db1,'request\x20sent');_0x8ab54e(_0x21fb48[_0xddfe('0x14')][_0xddfe('0x13')]);}})['catch'](function(_0x37a61f){logger['error'](_0xddfe('0xd'),_0xd6db1,_0x37a61f);_0x8cfbdb(_0x37a61f);});});}exports[_0xddfe('0x15')]=function(_0x57204d){var _0x46b465=this;return new Promise(function(_0x178184,_0x4e5d75){return db[_0xddfe('0x16')][_0xddfe('0x17')]({'raw':_0x57204d[_0xddfe('0x18')]?_0x57204d[_0xddfe('0x18')][_0xddfe('0x19')]===undefined?!![]:![]:!![],'where':_0x57204d['options']?_0x57204d[_0xddfe('0x18')]['where']||null:null,'attributes':_0x57204d[_0xddfe('0x18')]?_0x57204d['options'][_0xddfe('0x1a')]||null:null,'limit':_0x57204d['options']?_0x57204d['options'][_0xddfe('0x1b')]||null:null,'include':_0x57204d[_0xddfe('0x18')]?_0x57204d['options'][_0xddfe('0x1c')]?_[_0xddfe('0x1d')](_0x57204d[_0xddfe('0x18')]['include'],function(_0x2ea377){return{'model':db[_0x2ea377[_0xddfe('0x1e')]],'as':_0x2ea377['as'],'attributes':_0x2ea377[_0xddfe('0x1a')],'include':_0x2ea377['include']?_['map'](_0x2ea377[_0xddfe('0x1c')],function(_0x146032){return{'model':db[_0x146032['model']],'as':_0x146032['as'],'attributes':_0x146032[_0xddfe('0x1a')],'include':_0x146032[_0xddfe('0x1c')]?_['map'](_0x146032[_0xddfe('0x1c')],function(_0x5b66b4){return{'model':db[_0x5b66b4[_0xddfe('0x1e')]],'as':_0x5b66b4['as'],'attributes':_0x5b66b4[_0xddfe('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x497e7a){logger['info'](_0xddfe('0x15'),_0x57204d);logger[_0xddfe('0xe')](_0xddfe('0x15'),_0x57204d,JSON['stringify'](_0x497e7a));_0x178184(_0x497e7a);})['catch'](function(_0x24c00a){logger[_0xddfe('0x12')](_0xddfe('0x15'),_0x24c00a[_0xddfe('0x13')],_0x57204d);_0x4e5d75(_0x46b465[_0xddfe('0x12')](0x1f4,_0x24c00a[_0xddfe('0x13')]));});});};exports[_0xddfe('0x1f')]=function(_0x51d085){var _0x4058a0=this;return new Promise(function(_0x1e0ed3,_0x4cb403){return db[_0xddfe('0x16')]['find']({'raw':_0x51d085[_0xddfe('0x18')]?_0x51d085['options'][_0xddfe('0x19')]===undefined?!![]:![]:!![],'where':_0x51d085[_0xddfe('0x18')]?_0x51d085[_0xddfe('0x18')]['where']||null:null,'attributes':_0x51d085[_0xddfe('0x18')]?_0x51d085[_0xddfe('0x18')][_0xddfe('0x1a')]||null:null,'include':_0x51d085[_0xddfe('0x18')]?_0x51d085['options'][_0xddfe('0x1c')]?_[_0xddfe('0x1d')](_0x51d085['options'][_0xddfe('0x1c')],function(_0x29be19){return{'model':db[_0x29be19[_0xddfe('0x1e')]],'as':_0x29be19['as'],'attributes':_0x29be19[_0xddfe('0x1a')],'include':_0x29be19[_0xddfe('0x1c')]?_['map'](_0x29be19[_0xddfe('0x1c')],function(_0xced9e1){return{'model':db[_0xced9e1[_0xddfe('0x1e')]],'as':_0xced9e1['as'],'attributes':_0xced9e1[_0xddfe('0x1a')],'include':_0xced9e1['include']?_['map'](_0xced9e1[_0xddfe('0x1c')],function(_0x1ef50e){return{'model':db[_0x1ef50e[_0xddfe('0x1e')]],'as':_0x1ef50e['as'],'attributes':_0x1ef50e[_0xddfe('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2476dc){logger[_0xddfe('0xc')](_0xddfe('0x1f'),_0x51d085);logger[_0xddfe('0xe')](_0xddfe('0x1f'),_0x51d085,JSON[_0xddfe('0x11')](_0x2476dc));_0x1e0ed3(_0x2476dc);})[_0xddfe('0x20')](function(_0x4f8a56){logger['error'](_0xddfe('0x1f'),_0x4f8a56['message'],_0x51d085);_0x4cb403(_0x4058a0[_0xddfe('0x12')](0x1f4,_0x4f8a56[_0xddfe('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fb5=['destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','get','/:id','show','/:id/fields','isAuthenticated','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','update','delete'];(function(_0x55c00d,_0x520cb6){var _0x254a8f=function(_0x2b3378){while(--_0x2b3378){_0x55c00d['push'](_0x55c00d['shift']());}};_0x254a8f(++_0x520cb6);}(_0x8fb5,0xbf));var _0x58fb=function(_0x3213b4,_0x3cddd0){_0x3213b4=_0x3213b4-0x0;var _0xa97785=_0x8fb5[_0x3213b4];return _0xa97785;};'use strict';var multer=require(_0x58fb('0x0'));var util=require(_0x58fb('0x1'));var path=require('path');var timeout=require(_0x58fb('0x2'));var express=require(_0x58fb('0x3'));var router=express[_0x58fb('0x4')]();var fs_extra=require(_0x58fb('0x5'));var auth=require(_0x58fb('0x6'));var interaction=require(_0x58fb('0x7'));var config=require(_0x58fb('0x8'));var controller=require(_0x58fb('0x9'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x58fb('0xa')](_0x58fb('0xb'),auth['isAuthenticated'](),controller[_0x58fb('0xc')]);router[_0x58fb('0xa')](_0x58fb('0xd'),auth[_0x58fb('0xe')](),controller[_0x58fb('0xf')]);router[_0x58fb('0xa')](_0x58fb('0x10'),auth[_0x58fb('0xe')](),controller[_0x58fb('0x11')]);router[_0x58fb('0xa')](_0x58fb('0x12'),auth[_0x58fb('0xe')](),controller[_0x58fb('0x13')]);router[_0x58fb('0x14')]('/',auth[_0x58fb('0xe')](),controller[_0x58fb('0x15')]);router[_0x58fb('0x16')](_0x58fb('0xb'),auth[_0x58fb('0xe')](),controller[_0x58fb('0x17')]);router[_0x58fb('0x18')]('/:id',auth[_0x58fb('0xe')](),controller[_0x58fb('0x19')]);module[_0x58fb('0x1a')]=router;
\ No newline at end of file
+var _0x8fd7=['/:id/descriptions','getDescriptions','post','create','delete','exports','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','/:id/subjects'];(function(_0x481df5,_0x216652){var _0x32726e=function(_0x2133f4){while(--_0x2133f4){_0x481df5['push'](_0x481df5['shift']());}};_0x32726e(++_0x216652);}(_0x8fd7,0x1e9));var _0x78fd=function(_0x3425d1,_0xa61924){_0x3425d1=_0x3425d1-0x0;var _0x20d42f=_0x8fd7[_0x3425d1];return _0x20d42f;};'use strict';var multer=require('multer');var util=require(_0x78fd('0x0'));var path=require(_0x78fd('0x1'));var timeout=require(_0x78fd('0x2'));var express=require('express');var router=express[_0x78fd('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x78fd('0x4'));var interaction=require(_0x78fd('0x5'));var config=require(_0x78fd('0x6'));var controller=require(_0x78fd('0x7'));router[_0x78fd('0x8')]('/',auth[_0x78fd('0x9')](),controller[_0x78fd('0xa')]);router[_0x78fd('0x8')](_0x78fd('0xb'),auth[_0x78fd('0x9')](),controller[_0x78fd('0xc')]);router['get'](_0x78fd('0xd'),auth[_0x78fd('0x9')](),controller['getFields']);router[_0x78fd('0x8')](_0x78fd('0xe'),auth[_0x78fd('0x9')](),controller['getSubjects']);router[_0x78fd('0x8')](_0x78fd('0xf'),auth['isAuthenticated'](),controller[_0x78fd('0x10')]);router[_0x78fd('0x11')]('/',auth[_0x78fd('0x9')](),controller[_0x78fd('0x12')]);router['put'](_0x78fd('0xb'),auth[_0x78fd('0x9')](),controller['update']);router[_0x78fd('0x13')](_0x78fd('0xb'),auth[_0x78fd('0x9')](),controller['destroy']);module[_0x78fd('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0157=['STRING','sequelize','exports'];(function(_0x47b493,_0x32457d){var _0x9da44d=function(_0x125d86){while(--_0x125d86){_0x47b493['push'](_0x47b493['shift']());}};_0x9da44d(++_0x32457d);}(_0x0157,0x1f3));var _0x7015=function(_0x45f1f5,_0x3824ab){_0x45f1f5=_0x45f1f5-0x0;var _0x45060b=_0x0157[_0x45f1f5];return _0x45060b;};'use strict';var Sequelize=require(_0x7015('0x0'));module[_0x7015('0x1')]={'name':{'type':Sequelize[_0x7015('0x2')]},'description':{'type':Sequelize[_0x7015('0x2')]}};
\ No newline at end of file
+var _0x6325=['exports','STRING','sequelize'];(function(_0x352d6b,_0xfd0e0b){var _0x3e6e56=function(_0x508c37){while(--_0x508c37){_0x352d6b['push'](_0x352d6b['shift']());}};_0x3e6e56(++_0xfd0e0b);}(_0x6325,0x1c1));var _0x5632=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6325[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x5632('0x0'));module[_0x5632('0x1')]={'name':{'type':Sequelize[_0x5632('0x2')]},'description':{'type':Sequelize[_0x5632('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ed7=['fields','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','includeAll','include','catch','show','params','options','find','create','body','getFields','length','hasOwnProperty','SugarcrmField','getSubjects','getDescriptions','findOne','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','end','name','map','SugarcrmConfiguration','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x4ed7,0x13d));var _0x74ed=function(_0x38af48,_0x400460){_0x38af48=_0x38af48-0x0;var _0x445384=_0x4ed7[_0x38af48];return _0x445384;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x74ed('0x0'));var zipdir=require(_0x74ed('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x74ed('0x2'));var moment=require(_0x74ed('0x3'));var BPromise=require(_0x74ed('0x4'));var Mustache=require(_0x74ed('0x5'));var util=require('util');var path=require(_0x74ed('0x6'));var sox=require(_0x74ed('0x7'));var csv=require('to-csv');var ejs=require(_0x74ed('0x8'));var fs=require('fs');var fs_extra=require(_0x74ed('0x9'));var _=require('lodash');var squel=require(_0x74ed('0xa'));var crypto=require(_0x74ed('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x74ed('0xc'));var toCsv=require(_0x74ed('0xd'));var querystring=require('querystring');var Papa=require(_0x74ed('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x74ed('0xf'));var as=require(_0x74ed('0x10'));var hardwareService=require(_0x74ed('0x11'));var logger=require(_0x74ed('0x12'))(_0x74ed('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x446fb7,_0x111ad5){_0x111ad5=_0x111ad5||0xcc;return function(_0x43fe07){if(_0x43fe07){return _0x446fb7[_0x74ed('0x14')](_0x111ad5);}return _0x446fb7['status'](_0x111ad5)['end']();};}function respondWithResult(_0x1add06,_0x4df5fa){_0x4df5fa=_0x4df5fa||0xc8;return function(_0xa945a1){if(_0xa945a1){return _0x1add06[_0x74ed('0x15')](_0x4df5fa)[_0x74ed('0x16')](_0xa945a1);}};}function respondWithFilteredResult(_0x299e0c,_0xb31aa0){return function(_0x30e2ce){if(_0x30e2ce){var _0x8210fb=typeof _0xb31aa0[_0x74ed('0x17')]===_0x74ed('0x18')&&typeof _0xb31aa0['limit']===_0x74ed('0x18');var _0x1b7a5b=_0x30e2ce[_0x74ed('0x19')];var _0xac8449=_0x8210fb?0x0:_0xb31aa0[_0x74ed('0x17')];var _0x222e16=_0x8210fb?_0x30e2ce[_0x74ed('0x19')]:_0xb31aa0[_0x74ed('0x17')]+_0xb31aa0[_0x74ed('0x1a')];var _0x5c9def;if(_0x222e16>=_0x1b7a5b){_0x222e16=_0x1b7a5b;_0x5c9def=0xc8;}else{_0x5c9def=0xce;}_0x299e0c[_0x74ed('0x15')](_0x5c9def);return _0x299e0c[_0x74ed('0x1b')](_0x74ed('0x1c'),_0xac8449+'-'+_0x222e16+'/'+_0x1b7a5b)[_0x74ed('0x16')](_0x30e2ce);}return null;};}function patchUpdates(_0x43ec93){return function(_0x42f847){try{jsonpatch[_0x74ed('0x1d')](_0x42f847,_0x43ec93,!![]);}catch(_0x41606c){return BPromise[_0x74ed('0x1e')](_0x41606c);}return _0x42f847[_0x74ed('0x1f')]();};}function saveUpdates(_0x5465fb,_0x215fcd){return function(_0x4862e6){if(_0x4862e6){return _0x4862e6[_0x74ed('0x20')](_0x5465fb)['then'](function(_0x5ba07e){return _0x5ba07e;});}return null;};}function removeEntity(_0x1a9a83,_0x55732f){return function(_0x5379dc){if(_0x5379dc){return _0x5379dc[_0x74ed('0x21')]()[_0x74ed('0x22')](function(){_0x1a9a83['status'](0xcc)[_0x74ed('0x23')]();});}};}function handleEntityNotFound(_0x1a75b9,_0x36387a){return function(_0x203201){if(!_0x203201){_0x1a75b9['sendStatus'](0x194);}return _0x203201;};}function handleError(_0x5ec780,_0x290475){_0x290475=_0x290475||0x1f4;return function(_0x3b44c3){logger['error'](_0x3b44c3['stack']);if(_0x3b44c3[_0x74ed('0x24')]){delete _0x3b44c3[_0x74ed('0x24')];}_0x5ec780['status'](_0x290475)['send'](_0x3b44c3);};}exports['index']=function(_0x52b76e,_0x420190){var _0x1fef08={},_0x113d29={},_0x4bda7e={'count':0x0,'rows':[]};var _0x50640c=_[_0x74ed('0x25')](db[_0x74ed('0x26')][_0x74ed('0x27')],function(_0x153ae8){return{'name':_0x153ae8[_0x74ed('0x28')],'type':_0x153ae8['type'][_0x74ed('0x29')]};});_0x113d29[_0x74ed('0x2a')]=_[_0x74ed('0x25')](_0x50640c,_0x74ed('0x24'));_0x113d29['query']=_[_0x74ed('0x2b')](_0x52b76e[_0x74ed('0x2c')]);_0x113d29[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0x113d29[_0x74ed('0x2a')],_0x113d29[_0x74ed('0x2c')]);_0x1fef08[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0x113d29[_0x74ed('0x2a')],qs[_0x74ed('0x30')](_0x52b76e[_0x74ed('0x2c')][_0x74ed('0x30')]));_0x1fef08[_0x74ed('0x2f')]=_0x1fef08[_0x74ed('0x2f')]['length']?_0x1fef08[_0x74ed('0x2f')]:_0x113d29[_0x74ed('0x2a')];if(!_0x52b76e[_0x74ed('0x2c')]['hasOwnProperty'](_0x74ed('0x31'))){_0x1fef08[_0x74ed('0x1a')]=qs[_0x74ed('0x1a')](_0x52b76e[_0x74ed('0x2c')][_0x74ed('0x1a')]);_0x1fef08['offset']=qs[_0x74ed('0x17')](_0x52b76e[_0x74ed('0x2c')]['offset']);}_0x1fef08[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x52b76e['query'][_0x74ed('0x33')]);_0x1fef08['where']=qs[_0x74ed('0x2d')](_[_0x74ed('0x34')](_0x52b76e[_0x74ed('0x2c')],_0x113d29[_0x74ed('0x2d')]),_0x50640c);if(_0x52b76e['query'][_0x74ed('0x35')]){_0x1fef08['where']=_[_0x74ed('0x36')](_0x1fef08[_0x74ed('0x37')],{'$or':_['map'](_0x50640c,function(_0x38a9f8){if(_0x38a9f8['type']!==_0x74ed('0x38')){var _0x202b54={};_0x202b54[_0x38a9f8['name']]={'$like':'%'+_0x52b76e['query'][_0x74ed('0x35')]+'%'};return _0x202b54;}})});}_0x1fef08=_[_0x74ed('0x36')]({},_0x1fef08,_0x52b76e['options']);var _0x209c1d={'where':_0x1fef08[_0x74ed('0x37')]};return db[_0x74ed('0x26')][_0x74ed('0x19')](_0x209c1d)[_0x74ed('0x22')](function(_0x581ebd){_0x4bda7e[_0x74ed('0x19')]=_0x581ebd;if(_0x52b76e[_0x74ed('0x2c')][_0x74ed('0x39')]){_0x1fef08[_0x74ed('0x3a')]=[{'all':!![]}];}return db[_0x74ed('0x26')]['findAll'](_0x1fef08);})[_0x74ed('0x22')](function(_0x50420d){_0x4bda7e['rows']=_0x50420d;return _0x4bda7e;})['then'](respondWithFilteredResult(_0x420190,_0x1fef08))[_0x74ed('0x3b')](handleError(_0x420190,null));};exports[_0x74ed('0x3c')]=function(_0x54b67b,_0x4ff3bc){var _0x4a408f={'raw':![],'where':{'id':_0x54b67b[_0x74ed('0x3d')]['id']}},_0x4231bc={};_0x4231bc[_0x74ed('0x2a')]=_[_0x74ed('0x2b')](db[_0x74ed('0x26')][_0x74ed('0x27')]);_0x4231bc['query']=_['keys'](_0x54b67b[_0x74ed('0x2c')]);_0x4231bc[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0x4231bc['model'],_0x4231bc[_0x74ed('0x2c')]);_0x4a408f[_0x74ed('0x2f')]=_['intersection'](_0x4231bc[_0x74ed('0x2a')],qs[_0x74ed('0x30')](_0x54b67b[_0x74ed('0x2c')]['fields']));_0x4a408f[_0x74ed('0x2f')]=_0x4a408f[_0x74ed('0x2f')]['length']?_0x4a408f['attributes']:_0x4231bc[_0x74ed('0x2a')];if(_0x54b67b[_0x74ed('0x2c')][_0x74ed('0x39')]){_0x4a408f[_0x74ed('0x3a')]=[{'all':!![]}];}_0x4a408f=_['merge']({},_0x4a408f,_0x54b67b[_0x74ed('0x3e')]);return db[_0x74ed('0x26')][_0x74ed('0x3f')](_0x4a408f)[_0x74ed('0x22')](handleEntityNotFound(_0x4ff3bc,null))[_0x74ed('0x22')](respondWithResult(_0x4ff3bc,null))[_0x74ed('0x3b')](handleError(_0x4ff3bc,null));};exports[_0x74ed('0x40')]=function(_0x319ac7,_0x14c091){return db[_0x74ed('0x26')]['create'](_0x319ac7[_0x74ed('0x41')],{})[_0x74ed('0x22')](respondWithResult(_0x14c091,0xc9))[_0x74ed('0x3b')](handleError(_0x14c091,null));};exports[_0x74ed('0x20')]=function(_0x5ce46d,_0x825851){if(_0x5ce46d[_0x74ed('0x41')]['id']){delete _0x5ce46d[_0x74ed('0x41')]['id'];}return db['SugarcrmConfiguration'][_0x74ed('0x3f')]({'where':{'id':_0x5ce46d[_0x74ed('0x3d')]['id']}})[_0x74ed('0x22')](handleEntityNotFound(_0x825851,null))['then'](saveUpdates(_0x5ce46d['body'],null))[_0x74ed('0x22')](respondWithResult(_0x825851,null))[_0x74ed('0x3b')](handleError(_0x825851,null));};exports[_0x74ed('0x21')]=function(_0x3ac963,_0x8af152){return db[_0x74ed('0x26')][_0x74ed('0x3f')]({'where':{'id':_0x3ac963['params']['id']}})[_0x74ed('0x22')](handleEntityNotFound(_0x8af152,null))[_0x74ed('0x22')](removeEntity(_0x8af152,null))[_0x74ed('0x3b')](handleError(_0x8af152,null));};exports[_0x74ed('0x42')]=function(_0x118b5f,_0x45b520,_0x44024e){var _0x6ec112={};var _0xfefb82={};var _0x5026b3;var _0x4b4900;return db[_0x74ed('0x26')]['findOne']({'where':{'id':_0x118b5f['params']['id']}})['then'](handleEntityNotFound(_0x45b520,null))[_0x74ed('0x22')](function(_0x49878c){if(_0x49878c){_0x5026b3=_0x49878c;_0xfefb82[_0x74ed('0x2a')]=_[_0x74ed('0x2b')](db['SugarcrmField']['rawAttributes']);_0xfefb82[_0x74ed('0x2c')]=_[_0x74ed('0x2b')](_0x118b5f[_0x74ed('0x2c')]);_0xfefb82[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0xfefb82[_0x74ed('0x2a')],_0xfefb82[_0x74ed('0x2c')]);_0x6ec112[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0xfefb82['model'],qs[_0x74ed('0x30')](_0x118b5f[_0x74ed('0x2c')]['fields']));_0x6ec112[_0x74ed('0x2f')]=_0x6ec112['attributes']['length']?_0x6ec112[_0x74ed('0x2f')]:_0xfefb82[_0x74ed('0x2a')];_0x6ec112[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x118b5f['query'][_0x74ed('0x33')]);_0x6ec112[_0x74ed('0x37')]=qs[_0x74ed('0x2d')](_['pick'](_0x118b5f[_0x74ed('0x2c')],_0xfefb82[_0x74ed('0x2d')]));if(_0x118b5f[_0x74ed('0x2c')]['filter']){_0x6ec112[_0x74ed('0x37')]=_[_0x74ed('0x36')](_0x6ec112['where'],{'$or':_[_0x74ed('0x25')](_0x6ec112[_0x74ed('0x2f')],function(_0xf96bff){var _0x257e2a={};_0x257e2a[_0xf96bff]={'$like':'%'+_0x118b5f[_0x74ed('0x2c')][_0x74ed('0x35')]+'%'};return _0x257e2a;})});}_0x6ec112=_[_0x74ed('0x36')]({},_0x6ec112,_0x118b5f[_0x74ed('0x3e')]);return _0x5026b3[_0x74ed('0x42')](_0x6ec112);}})[_0x74ed('0x22')](function(_0x3329b3){if(_0x3329b3){_0x4b4900=_0x3329b3[_0x74ed('0x43')];if(!_0x118b5f[_0x74ed('0x2c')][_0x74ed('0x44')]('nolimit')){_0x6ec112['limit']=qs[_0x74ed('0x1a')](_0x118b5f[_0x74ed('0x2c')]['limit']);_0x6ec112[_0x74ed('0x17')]=qs[_0x74ed('0x17')](_0x118b5f[_0x74ed('0x2c')][_0x74ed('0x17')]);}return _0x5026b3['getFields'](_0x6ec112);}})[_0x74ed('0x22')](function(_0x11afd1){if(_0x11afd1){return _0x11afd1?{'count':_0x4b4900,'rows':_0x11afd1}:null;}})[_0x74ed('0x22')](respondWithResult(_0x45b520,null))[_0x74ed('0x3b')](handleError(_0x45b520,null));};exports['getSubjects']=function(_0x30cf41,_0x472ccc,_0x4d689f){var _0x5e0dbe={};var _0x20ccb3={};var _0x3cf824;var _0x218fec;return db[_0x74ed('0x26')]['findOne']({'where':{'id':_0x30cf41[_0x74ed('0x3d')]['id']}})['then'](handleEntityNotFound(_0x472ccc,null))['then'](function(_0x344a69){if(_0x344a69){_0x3cf824=_0x344a69;_0x20ccb3[_0x74ed('0x2a')]=_[_0x74ed('0x2b')](db[_0x74ed('0x45')][_0x74ed('0x27')]);_0x20ccb3[_0x74ed('0x2c')]=_[_0x74ed('0x2b')](_0x30cf41[_0x74ed('0x2c')]);_0x20ccb3[_0x74ed('0x2d')]=_['intersection'](_0x20ccb3['model'],_0x20ccb3[_0x74ed('0x2c')]);_0x5e0dbe[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0x20ccb3['model'],qs[_0x74ed('0x30')](_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x30')]));_0x5e0dbe['attributes']=_0x5e0dbe['attributes']['length']?_0x5e0dbe[_0x74ed('0x2f')]:_0x20ccb3[_0x74ed('0x2a')];_0x5e0dbe[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x30cf41[_0x74ed('0x2c')]['sort']);_0x5e0dbe[_0x74ed('0x37')]=qs[_0x74ed('0x2d')](_[_0x74ed('0x34')](_0x30cf41[_0x74ed('0x2c')],_0x20ccb3[_0x74ed('0x2d')]));if(_0x30cf41[_0x74ed('0x2c')]['filter']){_0x5e0dbe[_0x74ed('0x37')]=_[_0x74ed('0x36')](_0x5e0dbe[_0x74ed('0x37')],{'$or':_[_0x74ed('0x25')](_0x5e0dbe[_0x74ed('0x2f')],function(_0xaec6ab){var _0x28a1d1={};_0x28a1d1[_0xaec6ab]={'$like':'%'+_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x35')]+'%'};return _0x28a1d1;})});}_0x5e0dbe=_[_0x74ed('0x36')]({},_0x5e0dbe,_0x30cf41[_0x74ed('0x3e')]);return _0x3cf824[_0x74ed('0x46')](_0x5e0dbe);}})[_0x74ed('0x22')](function(_0x3d8b0b){if(_0x3d8b0b){_0x218fec=_0x3d8b0b['length'];if(!_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x44')](_0x74ed('0x31'))){_0x5e0dbe[_0x74ed('0x1a')]=qs[_0x74ed('0x1a')](_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x1a')]);_0x5e0dbe[_0x74ed('0x17')]=qs[_0x74ed('0x17')](_0x30cf41[_0x74ed('0x2c')]['offset']);}return _0x3cf824['getSubjects'](_0x5e0dbe);}})['then'](function(_0x118a37){if(_0x118a37){return _0x118a37?{'count':_0x218fec,'rows':_0x118a37}:null;}})[_0x74ed('0x22')](respondWithResult(_0x472ccc,null))[_0x74ed('0x3b')](handleError(_0x472ccc,null));};exports[_0x74ed('0x47')]=function(_0x15abfa,_0x2de3c1,_0x4cb8b0){var _0x4b584c={};var _0x5ad5b3={};var _0x362b4a;var _0x1a3213;return db[_0x74ed('0x26')][_0x74ed('0x48')]({'where':{'id':_0x15abfa[_0x74ed('0x3d')]['id']}})[_0x74ed('0x22')](handleEntityNotFound(_0x2de3c1,null))[_0x74ed('0x22')](function(_0x9cd5eb){if(_0x9cd5eb){_0x362b4a=_0x9cd5eb;_0x5ad5b3[_0x74ed('0x2a')]=_['keys'](db[_0x74ed('0x45')][_0x74ed('0x27')]);_0x5ad5b3['query']=_[_0x74ed('0x2b')](_0x15abfa[_0x74ed('0x2c')]);_0x5ad5b3[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0x5ad5b3[_0x74ed('0x2a')],_0x5ad5b3[_0x74ed('0x2c')]);_0x4b584c[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0x5ad5b3['model'],qs[_0x74ed('0x30')](_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x30')]));_0x4b584c[_0x74ed('0x2f')]=_0x4b584c['attributes']['length']?_0x4b584c[_0x74ed('0x2f')]:_0x5ad5b3[_0x74ed('0x2a')];_0x4b584c[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x33')]);_0x4b584c[_0x74ed('0x37')]=qs[_0x74ed('0x2d')](_[_0x74ed('0x34')](_0x15abfa['query'],_0x5ad5b3[_0x74ed('0x2d')]));if(_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x35')]){_0x4b584c[_0x74ed('0x37')]=_[_0x74ed('0x36')](_0x4b584c[_0x74ed('0x37')],{'$or':_['map'](_0x4b584c[_0x74ed('0x2f')],function(_0x610a8b){var _0x2ca9d9={};_0x2ca9d9[_0x610a8b]={'$like':'%'+_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x35')]+'%'};return _0x2ca9d9;})});}_0x4b584c=_[_0x74ed('0x36')]({},_0x4b584c,_0x15abfa[_0x74ed('0x3e')]);return _0x362b4a[_0x74ed('0x47')](_0x4b584c);}})['then'](function(_0x5293cf){if(_0x5293cf){_0x1a3213=_0x5293cf['length'];if(!_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x44')]('nolimit')){_0x4b584c[_0x74ed('0x1a')]=qs[_0x74ed('0x1a')](_0x15abfa[_0x74ed('0x2c')]['limit']);_0x4b584c[_0x74ed('0x17')]=qs[_0x74ed('0x17')](_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x17')]);}return _0x362b4a[_0x74ed('0x47')](_0x4b584c);}})['then'](function(_0x606a7f){if(_0x606a7f){return _0x606a7f?{'count':_0x1a3213,'rows':_0x606a7f}:null;}})[_0x74ed('0x22')](respondWithResult(_0x2de3c1,null))[_0x74ed('0x3b')](handleError(_0x2de3c1,null));};
\ No newline at end of file
+var _0x6d4a=['length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','SugarcrmConfiguration','includeAll','include','findAll','rows','catch','show','params','rawAttributes','keys','find','create','body','getFields','findOne','SugarcrmField','options','getSubjects','getDescriptions','rimraf','zip-dir','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','then','destroy','end','error','name','send','index','map','fieldName','type','model','query','filters','intersection','attributes','fields'];(function(_0x49ee13,_0x325af9){var _0x183e6a=function(_0x1162b0){while(--_0x1162b0){_0x49ee13['push'](_0x49ee13['shift']());}};_0x183e6a(++_0x325af9);}(_0x6d4a,0x161));var _0xa6d4=function(_0x3d4c21,_0x8011e0){_0x3d4c21=_0x3d4c21-0x0;var _0x63247d=_0x6d4a[_0x3d4c21];return _0x63247d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa6d4('0x0'));var zipdir=require(_0xa6d4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa6d4('0x2'));var Mustache=require(_0xa6d4('0x3'));var util=require(_0xa6d4('0x4'));var path=require(_0xa6d4('0x5'));var sox=require(_0xa6d4('0x6'));var csv=require('to-csv');var ejs=require(_0xa6d4('0x7'));var fs=require('fs');var fs_extra=require(_0xa6d4('0x8'));var _=require(_0xa6d4('0x9'));var squel=require(_0xa6d4('0xa'));var crypto=require(_0xa6d4('0xb'));var jsforce=require(_0xa6d4('0xc'));var deskjs=require(_0xa6d4('0xd'));var toCsv=require(_0xa6d4('0xe'));var querystring=require(_0xa6d4('0xf'));var Papa=require(_0xa6d4('0x10'));var Redis=require(_0xa6d4('0x11'));var authService=require(_0xa6d4('0x12'));var qs=require(_0xa6d4('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa6d4('0x14'));var logger=require(_0xa6d4('0x15'))(_0xa6d4('0x16'));var utils=require(_0xa6d4('0x17'));var config=require(_0xa6d4('0x18'));var licenseUtil=require(_0xa6d4('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x55d8cf,_0x1a03c){_0x1a03c=_0x1a03c||0xcc;return function(_0x324cc9){if(_0x324cc9){return _0x55d8cf[_0xa6d4('0x1a')](_0x1a03c);}return _0x55d8cf[_0xa6d4('0x1b')](_0x1a03c)['end']();};}function respondWithResult(_0x4a1cca,_0x156e0f){_0x156e0f=_0x156e0f||0xc8;return function(_0x454317){if(_0x454317){return _0x4a1cca[_0xa6d4('0x1b')](_0x156e0f)[_0xa6d4('0x1c')](_0x454317);}};}function respondWithFilteredResult(_0x10dfd1,_0x561b48){return function(_0x4f7322){if(_0x4f7322){var _0x250ff7=typeof _0x561b48[_0xa6d4('0x1d')]===_0xa6d4('0x1e')&&typeof _0x561b48[_0xa6d4('0x1f')]===_0xa6d4('0x1e');var _0x4f26b3=_0x4f7322[_0xa6d4('0x20')];var _0x329570=_0x250ff7?0x0:_0x561b48['offset'];var _0x3d600f=_0x250ff7?_0x4f7322['count']:_0x561b48[_0xa6d4('0x1d')]+_0x561b48['limit'];var _0x455140;if(_0x3d600f>=_0x4f26b3){_0x3d600f=_0x4f26b3;_0x455140=0xc8;}else{_0x455140=0xce;}_0x10dfd1[_0xa6d4('0x1b')](_0x455140);return _0x10dfd1[_0xa6d4('0x21')]('Content-Range',_0x329570+'-'+_0x3d600f+'/'+_0x4f26b3)[_0xa6d4('0x1c')](_0x4f7322);}return null;};}function patchUpdates(_0x4d2d95){return function(_0x45b487){try{jsonpatch[_0xa6d4('0x22')](_0x45b487,_0x4d2d95,!![]);}catch(_0x3ef380){return BPromise[_0xa6d4('0x23')](_0x3ef380);}return _0x45b487['save']();};}function saveUpdates(_0x1ea72a,_0x2dce7d){return function(_0x3a0624){if(_0x3a0624){return _0x3a0624['update'](_0x1ea72a)[_0xa6d4('0x24')](function(_0x3eff3d){return _0x3eff3d;});}return null;};}function removeEntity(_0x386d83,_0x2fec1a){return function(_0x35c57f){if(_0x35c57f){return _0x35c57f[_0xa6d4('0x25')]()[_0xa6d4('0x24')](function(){_0x386d83[_0xa6d4('0x1b')](0xcc)[_0xa6d4('0x26')]();});}};}function handleEntityNotFound(_0x1f79b3,_0x3ab422){return function(_0x3cad69){if(!_0x3cad69){_0x1f79b3[_0xa6d4('0x1a')](0x194);}return _0x3cad69;};}function handleError(_0x2d940c,_0x44be8f){_0x44be8f=_0x44be8f||0x1f4;return function(_0xbdda6f){logger[_0xa6d4('0x27')](_0xbdda6f['stack']);if(_0xbdda6f[_0xa6d4('0x28')]){delete _0xbdda6f[_0xa6d4('0x28')];}_0x2d940c[_0xa6d4('0x1b')](_0x44be8f)[_0xa6d4('0x29')](_0xbdda6f);};}exports[_0xa6d4('0x2a')]=function(_0x1e7d69,_0x5cc289){var _0x3d831c={},_0x9ece25={},_0x67d09a={'count':0x0,'rows':[]};var _0x1209a7=_[_0xa6d4('0x2b')](db['SugarcrmConfiguration']['rawAttributes'],function(_0x118a07){return{'name':_0x118a07[_0xa6d4('0x2c')],'type':_0x118a07[_0xa6d4('0x2d')]['key']};});_0x9ece25[_0xa6d4('0x2e')]=_[_0xa6d4('0x2b')](_0x1209a7,_0xa6d4('0x28'));_0x9ece25['query']=_['keys'](_0x1e7d69[_0xa6d4('0x2f')]);_0x9ece25[_0xa6d4('0x30')]=_[_0xa6d4('0x31')](_0x9ece25[_0xa6d4('0x2e')],_0x9ece25[_0xa6d4('0x2f')]);_0x3d831c[_0xa6d4('0x32')]=_['intersection'](_0x9ece25[_0xa6d4('0x2e')],qs[_0xa6d4('0x33')](_0x1e7d69[_0xa6d4('0x2f')][_0xa6d4('0x33')]));_0x3d831c['attributes']=_0x3d831c[_0xa6d4('0x32')][_0xa6d4('0x34')]?_0x3d831c['attributes']:_0x9ece25[_0xa6d4('0x2e')];if(!_0x1e7d69[_0xa6d4('0x2f')][_0xa6d4('0x35')](_0xa6d4('0x36'))){_0x3d831c[_0xa6d4('0x1f')]=qs['limit'](_0x1e7d69[_0xa6d4('0x2f')]['limit']);_0x3d831c[_0xa6d4('0x1d')]=qs[_0xa6d4('0x1d')](_0x1e7d69['query']['offset']);}_0x3d831c[_0xa6d4('0x37')]=qs[_0xa6d4('0x38')](_0x1e7d69[_0xa6d4('0x2f')][_0xa6d4('0x38')]);_0x3d831c[_0xa6d4('0x39')]=qs[_0xa6d4('0x30')](_[_0xa6d4('0x3a')](_0x1e7d69[_0xa6d4('0x2f')],_0x9ece25[_0xa6d4('0x30')]),_0x1209a7);if(_0x1e7d69[_0xa6d4('0x2f')][_0xa6d4('0x3b')]){_0x3d831c[_0xa6d4('0x39')]=_[_0xa6d4('0x3c')](_0x3d831c[_0xa6d4('0x39')],{'$or':_[_0xa6d4('0x2b')](_0x1209a7,function(_0x17ea14){if(_0x17ea14[_0xa6d4('0x2d')]!==_0xa6d4('0x3d')){var _0x4b1e63={};_0x4b1e63[_0x17ea14['name']]={'$like':'%'+_0x1e7d69[_0xa6d4('0x2f')][_0xa6d4('0x3b')]+'%'};return _0x4b1e63;}})});}_0x3d831c=_[_0xa6d4('0x3c')]({},_0x3d831c,_0x1e7d69['options']);var _0x369a19={'where':_0x3d831c[_0xa6d4('0x39')]};return db[_0xa6d4('0x3e')][_0xa6d4('0x20')](_0x369a19)[_0xa6d4('0x24')](function(_0x10a85){_0x67d09a['count']=_0x10a85;if(_0x1e7d69[_0xa6d4('0x2f')][_0xa6d4('0x3f')]){_0x3d831c[_0xa6d4('0x40')]=[{'all':!![]}];}return db[_0xa6d4('0x3e')][_0xa6d4('0x41')](_0x3d831c);})['then'](function(_0x316f3b){_0x67d09a[_0xa6d4('0x42')]=_0x316f3b;return _0x67d09a;})['then'](respondWithFilteredResult(_0x5cc289,_0x3d831c))[_0xa6d4('0x43')](handleError(_0x5cc289,null));};exports[_0xa6d4('0x44')]=function(_0x355c21,_0x592599){var _0x832ee8={'raw':![],'where':{'id':_0x355c21[_0xa6d4('0x45')]['id']}},_0x2b1465={};_0x2b1465['model']=_['keys'](db[_0xa6d4('0x3e')][_0xa6d4('0x46')]);_0x2b1465[_0xa6d4('0x2f')]=_[_0xa6d4('0x47')](_0x355c21[_0xa6d4('0x2f')]);_0x2b1465[_0xa6d4('0x30')]=_['intersection'](_0x2b1465[_0xa6d4('0x2e')],_0x2b1465[_0xa6d4('0x2f')]);_0x832ee8[_0xa6d4('0x32')]=_[_0xa6d4('0x31')](_0x2b1465[_0xa6d4('0x2e')],qs[_0xa6d4('0x33')](_0x355c21['query'][_0xa6d4('0x33')]));_0x832ee8['attributes']=_0x832ee8[_0xa6d4('0x32')][_0xa6d4('0x34')]?_0x832ee8[_0xa6d4('0x32')]:_0x2b1465[_0xa6d4('0x2e')];if(_0x355c21[_0xa6d4('0x2f')][_0xa6d4('0x3f')]){_0x832ee8['include']=[{'all':!![]}];}_0x832ee8=_[_0xa6d4('0x3c')]({},_0x832ee8,_0x355c21['options']);return db[_0xa6d4('0x3e')][_0xa6d4('0x48')](_0x832ee8)[_0xa6d4('0x24')](handleEntityNotFound(_0x592599,null))[_0xa6d4('0x24')](respondWithResult(_0x592599,null))['catch'](handleError(_0x592599,null));};exports['create']=function(_0x3c5c8f,_0x2cdd7f){return db[_0xa6d4('0x3e')][_0xa6d4('0x49')](_0x3c5c8f['body'],{})[_0xa6d4('0x24')](respondWithResult(_0x2cdd7f,0xc9))['catch'](handleError(_0x2cdd7f,null));};exports['update']=function(_0x30df5b,_0x312b2c){if(_0x30df5b[_0xa6d4('0x4a')]['id']){delete _0x30df5b['body']['id'];}return db[_0xa6d4('0x3e')][_0xa6d4('0x48')]({'where':{'id':_0x30df5b[_0xa6d4('0x45')]['id']}})[_0xa6d4('0x24')](handleEntityNotFound(_0x312b2c,null))[_0xa6d4('0x24')](saveUpdates(_0x30df5b[_0xa6d4('0x4a')],null))[_0xa6d4('0x24')](respondWithResult(_0x312b2c,null))['catch'](handleError(_0x312b2c,null));};exports[_0xa6d4('0x25')]=function(_0x436bf0,_0x51ebd2){return db[_0xa6d4('0x3e')][_0xa6d4('0x48')]({'where':{'id':_0x436bf0['params']['id']}})[_0xa6d4('0x24')](handleEntityNotFound(_0x51ebd2,null))[_0xa6d4('0x24')](removeEntity(_0x51ebd2,null))[_0xa6d4('0x43')](handleError(_0x51ebd2,null));};exports[_0xa6d4('0x4b')]=function(_0x348e3e,_0x52e48e,_0x43f563){var _0x6139d2={};var _0x425633={};var _0x39b683;var _0x303b0d;return db[_0xa6d4('0x3e')][_0xa6d4('0x4c')]({'where':{'id':_0x348e3e['params']['id']}})[_0xa6d4('0x24')](handleEntityNotFound(_0x52e48e,null))['then'](function(_0x445f1f){if(_0x445f1f){_0x39b683=_0x445f1f;_0x425633[_0xa6d4('0x2e')]=_['keys'](db[_0xa6d4('0x4d')]['rawAttributes']);_0x425633['query']=_[_0xa6d4('0x47')](_0x348e3e[_0xa6d4('0x2f')]);_0x425633[_0xa6d4('0x30')]=_[_0xa6d4('0x31')](_0x425633['model'],_0x425633[_0xa6d4('0x2f')]);_0x6139d2[_0xa6d4('0x32')]=_[_0xa6d4('0x31')](_0x425633[_0xa6d4('0x2e')],qs['fields'](_0x348e3e[_0xa6d4('0x2f')][_0xa6d4('0x33')]));_0x6139d2[_0xa6d4('0x32')]=_0x6139d2[_0xa6d4('0x32')][_0xa6d4('0x34')]?_0x6139d2[_0xa6d4('0x32')]:_0x425633['model'];_0x6139d2[_0xa6d4('0x37')]=qs[_0xa6d4('0x38')](_0x348e3e[_0xa6d4('0x2f')][_0xa6d4('0x38')]);_0x6139d2[_0xa6d4('0x39')]=qs[_0xa6d4('0x30')](_['pick'](_0x348e3e['query'],_0x425633[_0xa6d4('0x30')]));if(_0x348e3e['query'][_0xa6d4('0x3b')]){_0x6139d2[_0xa6d4('0x39')]=_[_0xa6d4('0x3c')](_0x6139d2['where'],{'$or':_[_0xa6d4('0x2b')](_0x6139d2[_0xa6d4('0x32')],function(_0x2f8a6f){var _0x1d96bb={};_0x1d96bb[_0x2f8a6f]={'$like':'%'+_0x348e3e[_0xa6d4('0x2f')][_0xa6d4('0x3b')]+'%'};return _0x1d96bb;})});}_0x6139d2=_[_0xa6d4('0x3c')]({},_0x6139d2,_0x348e3e[_0xa6d4('0x4e')]);return _0x39b683[_0xa6d4('0x4b')](_0x6139d2);}})[_0xa6d4('0x24')](function(_0x3eddde){if(_0x3eddde){_0x303b0d=_0x3eddde[_0xa6d4('0x34')];if(!_0x348e3e[_0xa6d4('0x2f')]['hasOwnProperty']('nolimit')){_0x6139d2[_0xa6d4('0x1f')]=qs[_0xa6d4('0x1f')](_0x348e3e[_0xa6d4('0x2f')][_0xa6d4('0x1f')]);_0x6139d2[_0xa6d4('0x1d')]=qs['offset'](_0x348e3e[_0xa6d4('0x2f')][_0xa6d4('0x1d')]);}return _0x39b683[_0xa6d4('0x4b')](_0x6139d2);}})[_0xa6d4('0x24')](function(_0x37a055){if(_0x37a055){return _0x37a055?{'count':_0x303b0d,'rows':_0x37a055}:null;}})[_0xa6d4('0x24')](respondWithResult(_0x52e48e,null))[_0xa6d4('0x43')](handleError(_0x52e48e,null));};exports[_0xa6d4('0x4f')]=function(_0x484d55,_0x377c58,_0x5139b6){var _0x3317f6={};var _0x113a63={};var _0xfc7fd;var _0x2b3070;return db[_0xa6d4('0x3e')][_0xa6d4('0x4c')]({'where':{'id':_0x484d55[_0xa6d4('0x45')]['id']}})['then'](handleEntityNotFound(_0x377c58,null))[_0xa6d4('0x24')](function(_0x299e2d){if(_0x299e2d){_0xfc7fd=_0x299e2d;_0x113a63[_0xa6d4('0x2e')]=_[_0xa6d4('0x47')](db[_0xa6d4('0x4d')][_0xa6d4('0x46')]);_0x113a63[_0xa6d4('0x2f')]=_[_0xa6d4('0x47')](_0x484d55[_0xa6d4('0x2f')]);_0x113a63[_0xa6d4('0x30')]=_[_0xa6d4('0x31')](_0x113a63['model'],_0x113a63['query']);_0x3317f6[_0xa6d4('0x32')]=_['intersection'](_0x113a63[_0xa6d4('0x2e')],qs['fields'](_0x484d55[_0xa6d4('0x2f')][_0xa6d4('0x33')]));_0x3317f6[_0xa6d4('0x32')]=_0x3317f6[_0xa6d4('0x32')]['length']?_0x3317f6[_0xa6d4('0x32')]:_0x113a63['model'];_0x3317f6[_0xa6d4('0x37')]=qs[_0xa6d4('0x38')](_0x484d55[_0xa6d4('0x2f')][_0xa6d4('0x38')]);_0x3317f6[_0xa6d4('0x39')]=qs['filters'](_[_0xa6d4('0x3a')](_0x484d55['query'],_0x113a63['filters']));if(_0x484d55[_0xa6d4('0x2f')][_0xa6d4('0x3b')]){_0x3317f6[_0xa6d4('0x39')]=_['merge'](_0x3317f6[_0xa6d4('0x39')],{'$or':_['map'](_0x3317f6[_0xa6d4('0x32')],function(_0x26a3bb){var _0x3a59f9={};_0x3a59f9[_0x26a3bb]={'$like':'%'+_0x484d55['query']['filter']+'%'};return _0x3a59f9;})});}_0x3317f6=_['merge']({},_0x3317f6,_0x484d55['options']);return _0xfc7fd[_0xa6d4('0x4f')](_0x3317f6);}})[_0xa6d4('0x24')](function(_0x59fde9){if(_0x59fde9){_0x2b3070=_0x59fde9['length'];if(!_0x484d55[_0xa6d4('0x2f')]['hasOwnProperty'](_0xa6d4('0x36'))){_0x3317f6[_0xa6d4('0x1f')]=qs[_0xa6d4('0x1f')](_0x484d55[_0xa6d4('0x2f')][_0xa6d4('0x1f')]);_0x3317f6['offset']=qs[_0xa6d4('0x1d')](_0x484d55['query'][_0xa6d4('0x1d')]);}return _0xfc7fd[_0xa6d4('0x4f')](_0x3317f6);}})[_0xa6d4('0x24')](function(_0x59ef2a){if(_0x59ef2a){return _0x59ef2a?{'count':_0x2b3070,'rows':_0x59ef2a}:null;}})['then'](respondWithResult(_0x377c58,null))[_0xa6d4('0x43')](handleError(_0x377c58,null));};exports[_0xa6d4('0x50')]=function(_0x5b319c,_0x2bed31,_0x1a76d5){var _0x213730={};var _0x21f6d5={};var _0x2edc04;var _0xce7c8b;return db[_0xa6d4('0x3e')][_0xa6d4('0x4c')]({'where':{'id':_0x5b319c[_0xa6d4('0x45')]['id']}})['then'](handleEntityNotFound(_0x2bed31,null))[_0xa6d4('0x24')](function(_0x3871ed){if(_0x3871ed){_0x2edc04=_0x3871ed;_0x21f6d5[_0xa6d4('0x2e')]=_[_0xa6d4('0x47')](db[_0xa6d4('0x4d')][_0xa6d4('0x46')]);_0x21f6d5[_0xa6d4('0x2f')]=_[_0xa6d4('0x47')](_0x5b319c['query']);_0x21f6d5[_0xa6d4('0x30')]=_[_0xa6d4('0x31')](_0x21f6d5[_0xa6d4('0x2e')],_0x21f6d5[_0xa6d4('0x2f')]);_0x213730['attributes']=_['intersection'](_0x21f6d5[_0xa6d4('0x2e')],qs[_0xa6d4('0x33')](_0x5b319c['query']['fields']));_0x213730[_0xa6d4('0x32')]=_0x213730[_0xa6d4('0x32')][_0xa6d4('0x34')]?_0x213730[_0xa6d4('0x32')]:_0x21f6d5['model'];_0x213730[_0xa6d4('0x37')]=qs[_0xa6d4('0x38')](_0x5b319c[_0xa6d4('0x2f')][_0xa6d4('0x38')]);_0x213730[_0xa6d4('0x39')]=qs['filters'](_['pick'](_0x5b319c['query'],_0x21f6d5[_0xa6d4('0x30')]));if(_0x5b319c[_0xa6d4('0x2f')][_0xa6d4('0x3b')]){_0x213730[_0xa6d4('0x39')]=_[_0xa6d4('0x3c')](_0x213730['where'],{'$or':_[_0xa6d4('0x2b')](_0x213730[_0xa6d4('0x32')],function(_0xdbf061){var _0x15de25={};_0x15de25[_0xdbf061]={'$like':'%'+_0x5b319c[_0xa6d4('0x2f')][_0xa6d4('0x3b')]+'%'};return _0x15de25;})});}_0x213730=_['merge']({},_0x213730,_0x5b319c[_0xa6d4('0x4e')]);return _0x2edc04[_0xa6d4('0x50')](_0x213730);}})[_0xa6d4('0x24')](function(_0x110be5){if(_0x110be5){_0xce7c8b=_0x110be5[_0xa6d4('0x34')];if(!_0x5b319c[_0xa6d4('0x2f')][_0xa6d4('0x35')](_0xa6d4('0x36'))){_0x213730[_0xa6d4('0x1f')]=qs[_0xa6d4('0x1f')](_0x5b319c[_0xa6d4('0x2f')]['limit']);_0x213730[_0xa6d4('0x1d')]=qs['offset'](_0x5b319c['query']['offset']);}return _0x2edc04[_0xa6d4('0x50')](_0x213730);}})['then'](function(_0x4a6e89){if(_0x4a6e89){return _0x4a6e89?{'count':_0xce7c8b,'rows':_0x4a6e89}:null;}})['then'](respondWithResult(_0x2bed31,null))[_0xa6d4('0x43')](handleError(_0x2bed31,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffb3=['../../config/environment','exports','SugarcrmConfiguration','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x2d1cf6,_0x3864fe){var _0x3d4d16=function(_0x4ab393){while(--_0x4ab393){_0x2d1cf6['push'](_0x2d1cf6['shift']());}};_0x3d4d16(++_0x3864fe);}(_0xffb3,0x183));var _0x3ffb=function(_0x30fff5,_0x795b0){_0x30fff5=_0x30fff5-0x0;var _0x4b027d=_0xffb3[_0x30fff5];return _0x4b027d;};'use strict';var _=require(_0x3ffb('0x0'));var util=require(_0x3ffb('0x1'));var logger=require(_0x3ffb('0x2'))(_0x3ffb('0x3'));var moment=require(_0x3ffb('0x4'));var BPromise=require(_0x3ffb('0x5'));var rp=require(_0x3ffb('0x6'));var fs=require('fs');var path=require(_0x3ffb('0x7'));var rimraf=require(_0x3ffb('0x8'));var config=require(_0x3ffb('0x9'));var attributes=require('./intSugarcrmConfiguration.attributes');module[_0x3ffb('0xa')]=function(_0x2c98f7,_0x26d5e8){return _0x2c98f7['define'](_0x3ffb('0xb'),attributes,{'tableName':'int_sugarcrm_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x116d=['util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./intSugarcrmConfiguration.attributes','exports','define','int_sugarcrm_configurations','lodash'];(function(_0x4c3593,_0x4ea381){var _0x1172d1=function(_0x434b93){while(--_0x434b93){_0x4c3593['push'](_0x4c3593['shift']());}};_0x1172d1(++_0x4ea381);}(_0x116d,0x178));var _0xd116=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x116d[_0x53ccf2];return _0x5a2964;};'use strict';var _=require(_0xd116('0x0'));var util=require(_0xd116('0x1'));var logger=require(_0xd116('0x2'))(_0xd116('0x3'));var moment=require(_0xd116('0x4'));var BPromise=require('bluebird');var rp=require(_0xd116('0x5'));var fs=require('fs');var path=require(_0xd116('0x6'));var rimraf=require(_0xd116('0x7'));var config=require(_0xd116('0x8'));var attributes=require(_0xd116('0x9'));module[_0xd116('0xa')]=function(_0x44e97b,_0x403776){return _0x44e97b[_0xd116('0xb')]('SugarcrmConfiguration',attributes,{'tableName':_0xd116('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44e6=['bluebird','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise','client','http','request','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','lodash','util','moment'];(function(_0x4c4780,_0x5115f6){var _0x33be3a=function(_0x578360){while(--_0x578360){_0x4c4780['push'](_0x4c4780['shift']());}};_0x33be3a(++_0x5115f6);}(_0x44e6,0xc5));var _0x644e=function(_0x5ce775,_0x11aeae){_0x5ce775=_0x5ce775-0x0;var _0x25fcf6=_0x44e6[_0x5ce775];return _0x25fcf6;};'use strict';var _=require(_0x644e('0x0'));var util=require(_0x644e('0x1'));var moment=require(_0x644e('0x2'));var BPromise=require(_0x644e('0x3'));var rs=require(_0x644e('0x4'));var fs=require('fs');var Redis=require(_0x644e('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x644e('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x644e('0x7'));var jayson=require(_0x644e('0x8'));var client=jayson[_0x644e('0x9')][_0x644e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1866eb,_0x2c0b65,_0x10b6da){return new BPromise(function(_0x19b9bf,_0x58a9d9){return client[_0x644e('0xb')](_0x1866eb,_0x10b6da)['then'](function(_0x5cbd1f){logger[_0x644e('0xc')](_0x644e('0xd'),_0x2c0b65,_0x644e('0xe'));logger[_0x644e('0xf')](_0x644e('0x10'),_0x2c0b65,_0x644e('0xe'),JSON[_0x644e('0x11')](_0x5cbd1f));if(_0x5cbd1f[_0x644e('0x12')]){if(_0x5cbd1f[_0x644e('0x12')]['code']===0x1f4){logger['error'](_0x644e('0xd'),_0x2c0b65,_0x5cbd1f[_0x644e('0x12')][_0x644e('0x13')]);return _0x58a9d9(_0x5cbd1f[_0x644e('0x12')][_0x644e('0x13')]);}logger[_0x644e('0x12')](_0x644e('0xd'),_0x2c0b65,_0x5cbd1f[_0x644e('0x12')]['message']);return _0x19b9bf(_0x5cbd1f[_0x644e('0x12')][_0x644e('0x13')]);}else{logger['info'](_0x644e('0xd'),_0x2c0b65,_0x644e('0xe'));_0x19b9bf(_0x5cbd1f['result'][_0x644e('0x13')]);}})['catch'](function(_0x394a8e){logger[_0x644e('0x12')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x2c0b65,_0x394a8e);_0x58a9d9(_0x394a8e);});});}
\ No newline at end of file
+var _0x6b2f=['request\x20sent','debug','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','SugarcrmConfiguration,\x20%s,\x20%s'];(function(_0x16bc52,_0x17b5bc){var _0xe2049b=function(_0x2c5b83){while(--_0x2c5b83){_0x16bc52['push'](_0x16bc52['shift']());}};_0xe2049b(++_0x17b5bc);}(_0x6b2f,0x167));var _0xf6b2=function(_0x257bec,_0x230628){_0x257bec=_0x257bec-0x0;var _0x208e8d=_0x6b2f[_0x257bec];return _0x208e8d;};'use strict';var _=require(_0xf6b2('0x0'));var util=require(_0xf6b2('0x1'));var moment=require(_0xf6b2('0x2'));var BPromise=require(_0xf6b2('0x3'));var rs=require(_0xf6b2('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf6b2('0x5'))['db'];var utils=require(_0xf6b2('0x6'));var logger=require(_0xf6b2('0x7'))(_0xf6b2('0x8'));var config=require(_0xf6b2('0x9'));var jayson=require(_0xf6b2('0xa'));var client=jayson[_0xf6b2('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1c88a8,_0x187972,_0x4e02f0){return new BPromise(function(_0xd2259d,_0x2d9844){return client[_0xf6b2('0xc')](_0x1c88a8,_0x4e02f0)['then'](function(_0x12f35d){logger[_0xf6b2('0xd')](_0xf6b2('0xe'),_0x187972,_0xf6b2('0xf'));logger[_0xf6b2('0x10')]('SugarcrmConfiguration,\x20%s,\x20%s,\x20%s',_0x187972,'request\x20sent',JSON[_0xf6b2('0x11')](_0x12f35d));if(_0x12f35d[_0xf6b2('0x12')]){if(_0x12f35d[_0xf6b2('0x12')][_0xf6b2('0x13')]===0x1f4){logger[_0xf6b2('0x12')](_0xf6b2('0xe'),_0x187972,_0x12f35d[_0xf6b2('0x12')][_0xf6b2('0x14')]);return _0x2d9844(_0x12f35d[_0xf6b2('0x12')][_0xf6b2('0x14')]);}logger['error'](_0xf6b2('0xe'),_0x187972,_0x12f35d[_0xf6b2('0x12')][_0xf6b2('0x14')]);return _0xd2259d(_0x12f35d[_0xf6b2('0x12')]['message']);}else{logger[_0xf6b2('0xd')](_0xf6b2('0xe'),_0x187972,_0xf6b2('0xf'));_0xd2259d(_0x12f35d[_0xf6b2('0x15')]['message']);}})['catch'](function(_0x526f29){logger[_0xf6b2('0x12')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x187972,_0x526f29);_0x2d9844(_0x526f29);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4c9=['multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','index','isAuthenticated','show','post','create','put','update','/:id','destroy','exports'];(function(_0x29b609,_0x19d388){var _0x54c952=function(_0xb3c38d){while(--_0xb3c38d){_0x29b609['push'](_0x29b609['shift']());}};_0x54c952(++_0x19d388);}(_0xb4c9,0xab));var _0x9b4c=function(_0x32cdfc,_0x466ff5){_0x32cdfc=_0x32cdfc-0x0;var _0x5bfc2f=_0xb4c9[_0x32cdfc];return _0x5bfc2f;};'use strict';var multer=require(_0x9b4c('0x0'));var util=require('util');var path=require(_0x9b4c('0x1'));var timeout=require(_0x9b4c('0x2'));var express=require(_0x9b4c('0x3'));var router=express[_0x9b4c('0x4')]();var fs_extra=require(_0x9b4c('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x9b4c('0x6'));var config=require(_0x9b4c('0x7'));var controller=require(_0x9b4c('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x9b4c('0x9')]);router['get']('/:id',auth[_0x9b4c('0xa')](),controller[_0x9b4c('0xb')]);router[_0x9b4c('0xc')]('/',auth['isAuthenticated'](),controller[_0x9b4c('0xd')]);router[_0x9b4c('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x9b4c('0xf')]);router['delete'](_0x9b4c('0x10'),auth[_0x9b4c('0xa')](),controller[_0x9b4c('0x11')]);module[_0x9b4c('0x12')]=router;
\ No newline at end of file
+var _0xdf01=['show','create','put','isAuthenticated','update','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','index','/:id'];(function(_0x20845e,_0x211e78){var _0x28cf2b=function(_0x31d613){while(--_0x31d613){_0x20845e['push'](_0x20845e['shift']());}};_0x28cf2b(++_0x211e78);}(_0xdf01,0x184));var _0x1df0=function(_0x2d8e9f,_0x3a0c91){_0x2d8e9f=_0x2d8e9f-0x0;var _0x274b08=_0xdf01[_0x2d8e9f];return _0x274b08;};'use strict';var multer=require('multer');var util=require(_0x1df0('0x0'));var path=require(_0x1df0('0x1'));var timeout=require(_0x1df0('0x2'));var express=require(_0x1df0('0x3'));var router=express[_0x1df0('0x4')]();var fs_extra=require(_0x1df0('0x5'));var auth=require(_0x1df0('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x1df0('0x7'));var controller=require('./intSugarcrmField.controller');router[_0x1df0('0x8')]('/',auth['isAuthenticated'](),controller[_0x1df0('0x9')]);router[_0x1df0('0x8')](_0x1df0('0xa'),auth['isAuthenticated'](),controller[_0x1df0('0xb')]);router['post']('/',auth['isAuthenticated'](),controller[_0x1df0('0xc')]);router[_0x1df0('0xd')]('/:id',auth[_0x1df0('0xe')](),controller[_0x1df0('0xf')]);router[_0x1df0('0x10')](_0x1df0('0xa'),auth[_0x1df0('0xe')](),controller[_0x1df0('0x11')]);module[_0x1df0('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x08be=['keyValue','string','STRING','BOOLEAN','ENUM','variable','customVariable'];(function(_0x29a11c,_0x370f91){var _0x1f6132=function(_0x15a371){while(--_0x15a371){_0x29a11c['push'](_0x29a11c['shift']());}};_0x1f6132(++_0x370f91);}(_0x08be,0x131));var _0xe08b=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x08be[_0x3b380d];return _0x54502b;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0xe08b('0x0')]('string',_0xe08b('0x1'),_0xe08b('0x2'),_0xe08b('0x3'),'picklist'),'defaultValue':_0xe08b('0x4')},'content':{'type':Sequelize[_0xe08b('0x5')]},'key':{'type':Sequelize[_0xe08b('0x5')]},'keyType':{'type':Sequelize['ENUM'](_0xe08b('0x4'),_0xe08b('0x1'),'customVariable')},'keyContent':{'type':Sequelize[_0xe08b('0x5')]},'idField':{'type':Sequelize[_0xe08b('0x5')]},'nameField':{'type':Sequelize[_0xe08b('0x5')]},'customField':{'type':Sequelize[_0xe08b('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xe08b('0x5')]}};
\ No newline at end of file
+var _0xa056=['variable','keyValue','picklist','string','STRING','ENUM','BOOLEAN','sequelize','exports'];(function(_0xa4c85,_0x2b52a7){var _0x172c1f=function(_0x149473){while(--_0x149473){_0xa4c85['push'](_0xa4c85['shift']());}};_0x172c1f(++_0x2b52a7);}(_0xa056,0x1d2));var _0x6a05=function(_0x4cba78,_0x4ba41e){_0x4cba78=_0x4cba78-0x0;var _0x9f8761=_0xa056[_0x4cba78];return _0x9f8761;};'use strict';var Sequelize=require(_0x6a05('0x0'));module[_0x6a05('0x1')]={'type':{'type':Sequelize['ENUM']('string',_0x6a05('0x2'),'customVariable',_0x6a05('0x3'),_0x6a05('0x4')),'defaultValue':_0x6a05('0x5')},'content':{'type':Sequelize[_0x6a05('0x6')]},'key':{'type':Sequelize[_0x6a05('0x6')]},'keyType':{'type':Sequelize[_0x6a05('0x7')](_0x6a05('0x5'),_0x6a05('0x2'),'customVariable')},'keyContent':{'type':Sequelize[_0x6a05('0x6')]},'idField':{'type':Sequelize[_0x6a05('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x6a05('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x6a05('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x167a=['includeAll','include','findAll','rows','show','params','length','options','find','catch','create','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','apply','reject','save','update','then','destroy','error','stack','send','map','SugarcrmField','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','name'];(function(_0x4d1014,_0x3ee430){var _0x5b752c=function(_0x14f399){while(--_0x14f399){_0x4d1014['push'](_0x4d1014['shift']());}};_0x5b752c(++_0x3ee430);}(_0x167a,0x1bc));var _0xa167=function(_0x5b1fea,_0x5d1052){_0x5b1fea=_0x5b1fea-0x0;var _0x3b7134=_0x167a[_0x5b1fea];return _0x3b7134;};'use strict';var emlformat=require(_0xa167('0x0'));var rimraf=require(_0xa167('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa167('0x2'));var rp=require('request-promise');var moment=require(_0xa167('0x3'));var BPromise=require(_0xa167('0x4'));var Mustache=require(_0xa167('0x5'));var util=require(_0xa167('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xa167('0x7'));var ejs=require(_0xa167('0x8'));var fs=require('fs');var fs_extra=require(_0xa167('0x9'));var _=require('lodash');var squel=require(_0xa167('0xa'));var crypto=require(_0xa167('0xb'));var jsforce=require(_0xa167('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa167('0x7'));var querystring=require('querystring');var Papa=require(_0xa167('0xd'));var Redis=require(_0xa167('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xa167('0xf'));var as=require(_0xa167('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa167('0x11'));var utils=require(_0xa167('0x12'));var config=require(_0xa167('0x13'));var licenseUtil=require(_0xa167('0x14'));var db=require(_0xa167('0x15'))['db'];function respondWithStatusCode(_0x15f03c,_0x4dc1c2){_0x4dc1c2=_0x4dc1c2||0xcc;return function(_0x540a63){if(_0x540a63){return _0x15f03c[_0xa167('0x16')](_0x4dc1c2);}return _0x15f03c[_0xa167('0x17')](_0x4dc1c2)[_0xa167('0x18')]();};}function respondWithResult(_0x31e1b5,_0x43c2a){_0x43c2a=_0x43c2a||0xc8;return function(_0x14d75d){if(_0x14d75d){return _0x31e1b5[_0xa167('0x17')](_0x43c2a)[_0xa167('0x19')](_0x14d75d);}};}function respondWithFilteredResult(_0x557949,_0x5dd0b1){return function(_0x370b2d){if(_0x370b2d){var _0x250e8f=typeof _0x5dd0b1[_0xa167('0x1a')]==='undefined'&&typeof _0x5dd0b1[_0xa167('0x1b')]==='undefined';var _0x5cc3be=_0x370b2d[_0xa167('0x1c')];var _0xd0fb74=_0x250e8f?0x0:_0x5dd0b1['offset'];var _0x3e23e0=_0x250e8f?_0x370b2d['count']:_0x5dd0b1[_0xa167('0x1a')]+_0x5dd0b1[_0xa167('0x1b')];var _0x409f94;if(_0x3e23e0>=_0x5cc3be){_0x3e23e0=_0x5cc3be;_0x409f94=0xc8;}else{_0x409f94=0xce;}_0x557949['status'](_0x409f94);return _0x557949[_0xa167('0x1d')]('Content-Range',_0xd0fb74+'-'+_0x3e23e0+'/'+_0x5cc3be)[_0xa167('0x19')](_0x370b2d);}return null;};}function patchUpdates(_0x281157){return function(_0x9a9147){try{jsonpatch[_0xa167('0x1e')](_0x9a9147,_0x281157,!![]);}catch(_0x57140e){return BPromise[_0xa167('0x1f')](_0x57140e);}return _0x9a9147[_0xa167('0x20')]();};}function saveUpdates(_0x325612,_0x104b7a){return function(_0x1db5af){if(_0x1db5af){return _0x1db5af[_0xa167('0x21')](_0x325612)[_0xa167('0x22')](function(_0x1374c1){return _0x1374c1;});}return null;};}function removeEntity(_0xfdb9e,_0x4a986b){return function(_0x3c2235){if(_0x3c2235){return _0x3c2235[_0xa167('0x23')]()[_0xa167('0x22')](function(){_0xfdb9e['status'](0xcc)[_0xa167('0x18')]();});}};}function handleEntityNotFound(_0xdc0e3f,_0x3f388f){return function(_0x51f91c){if(!_0x51f91c){_0xdc0e3f['sendStatus'](0x194);}return _0x51f91c;};}function handleError(_0x3319f1,_0x137371){_0x137371=_0x137371||0x1f4;return function(_0x315b63){logger[_0xa167('0x24')](_0x315b63[_0xa167('0x25')]);if(_0x315b63['name']){delete _0x315b63['name'];}_0x3319f1['status'](_0x137371)[_0xa167('0x26')](_0x315b63);};}exports['index']=function(_0x215730,_0x24f1eb){var _0x4b6e3a={},_0x2e2981={},_0xf18c71={'count':0x0,'rows':[]};var _0x1281dc=_[_0xa167('0x27')](db[_0xa167('0x28')][_0xa167('0x29')],function(_0xfd729e){return{'name':_0xfd729e['fieldName'],'type':_0xfd729e[_0xa167('0x2a')]['key']};});_0x2e2981[_0xa167('0x2b')]=_['map'](_0x1281dc,'name');_0x2e2981[_0xa167('0x2c')]=_[_0xa167('0x2d')](_0x215730['query']);_0x2e2981[_0xa167('0x2e')]=_[_0xa167('0x2f')](_0x2e2981[_0xa167('0x2b')],_0x2e2981[_0xa167('0x2c')]);_0x4b6e3a['attributes']=_['intersection'](_0x2e2981[_0xa167('0x2b')],qs[_0xa167('0x30')](_0x215730[_0xa167('0x2c')][_0xa167('0x30')]));_0x4b6e3a['attributes']=_0x4b6e3a[_0xa167('0x31')]['length']?_0x4b6e3a[_0xa167('0x31')]:_0x2e2981[_0xa167('0x2b')];if(!_0x215730['query'][_0xa167('0x32')](_0xa167('0x33'))){_0x4b6e3a[_0xa167('0x1b')]=qs[_0xa167('0x1b')](_0x215730['query'][_0xa167('0x1b')]);_0x4b6e3a[_0xa167('0x1a')]=qs[_0xa167('0x1a')](_0x215730[_0xa167('0x2c')][_0xa167('0x1a')]);}_0x4b6e3a[_0xa167('0x34')]=qs[_0xa167('0x35')](_0x215730[_0xa167('0x2c')][_0xa167('0x35')]);_0x4b6e3a[_0xa167('0x36')]=qs['filters'](_[_0xa167('0x37')](_0x215730[_0xa167('0x2c')],_0x2e2981[_0xa167('0x2e')]),_0x1281dc);if(_0x215730[_0xa167('0x2c')][_0xa167('0x38')]){_0x4b6e3a[_0xa167('0x36')]=_[_0xa167('0x39')](_0x4b6e3a[_0xa167('0x36')],{'$or':_[_0xa167('0x27')](_0x1281dc,function(_0x325022){if(_0x325022[_0xa167('0x2a')]!==_0xa167('0x3a')){var _0x48f9a4={};_0x48f9a4[_0x325022[_0xa167('0x3b')]]={'$like':'%'+_0x215730[_0xa167('0x2c')][_0xa167('0x38')]+'%'};return _0x48f9a4;}})});}_0x4b6e3a=_[_0xa167('0x39')]({},_0x4b6e3a,_0x215730['options']);var _0x3a2efa={'where':_0x4b6e3a[_0xa167('0x36')]};return db[_0xa167('0x28')][_0xa167('0x1c')](_0x3a2efa)['then'](function(_0x4e6637){_0xf18c71['count']=_0x4e6637;if(_0x215730[_0xa167('0x2c')][_0xa167('0x3c')]){_0x4b6e3a[_0xa167('0x3d')]=[{'all':!![]}];}return db[_0xa167('0x28')][_0xa167('0x3e')](_0x4b6e3a);})[_0xa167('0x22')](function(_0x55d725){_0xf18c71[_0xa167('0x3f')]=_0x55d725;return _0xf18c71;})['then'](respondWithFilteredResult(_0x24f1eb,_0x4b6e3a))['catch'](handleError(_0x24f1eb,null));};exports[_0xa167('0x40')]=function(_0x150352,_0x348009){var _0x2aef63={'raw':!![],'where':{'id':_0x150352[_0xa167('0x41')]['id']}},_0x207079={};_0x207079['model']=_[_0xa167('0x2d')](db[_0xa167('0x28')][_0xa167('0x29')]);_0x207079['query']=_[_0xa167('0x2d')](_0x150352[_0xa167('0x2c')]);_0x207079[_0xa167('0x2e')]=_[_0xa167('0x2f')](_0x207079[_0xa167('0x2b')],_0x207079[_0xa167('0x2c')]);_0x2aef63[_0xa167('0x31')]=_[_0xa167('0x2f')](_0x207079[_0xa167('0x2b')],qs[_0xa167('0x30')](_0x150352[_0xa167('0x2c')]['fields']));_0x2aef63['attributes']=_0x2aef63['attributes'][_0xa167('0x42')]?_0x2aef63[_0xa167('0x31')]:_0x207079['model'];if(_0x150352[_0xa167('0x2c')][_0xa167('0x3c')]){_0x2aef63[_0xa167('0x3d')]=[{'all':!![]}];}_0x2aef63=_[_0xa167('0x39')]({},_0x2aef63,_0x150352[_0xa167('0x43')]);return db[_0xa167('0x28')][_0xa167('0x44')](_0x2aef63)[_0xa167('0x22')](handleEntityNotFound(_0x348009,null))[_0xa167('0x22')](respondWithResult(_0x348009,null))[_0xa167('0x45')](handleError(_0x348009,null));};exports[_0xa167('0x46')]=function(_0x14b747,_0x5f1287){return db[_0xa167('0x28')][_0xa167('0x46')](_0x14b747[_0xa167('0x47')],{})[_0xa167('0x22')](respondWithResult(_0x5f1287,0xc9))[_0xa167('0x45')](handleError(_0x5f1287,null));};exports[_0xa167('0x21')]=function(_0x490edb,_0x3e9c3f){if(_0x490edb['body']['id']){delete _0x490edb[_0xa167('0x47')]['id'];}return db['SugarcrmField']['find']({'where':{'id':_0x490edb[_0xa167('0x41')]['id']}})[_0xa167('0x22')](handleEntityNotFound(_0x3e9c3f,null))[_0xa167('0x22')](saveUpdates(_0x490edb[_0xa167('0x47')],null))['then'](respondWithResult(_0x3e9c3f,null))[_0xa167('0x45')](handleError(_0x3e9c3f,null));};exports['destroy']=function(_0x32c324,_0x5ea20c){return db['SugarcrmField'][_0xa167('0x44')]({'where':{'id':_0x32c324[_0xa167('0x41')]['id']}})[_0xa167('0x22')](handleEntityNotFound(_0x5ea20c,null))['then'](removeEntity(_0x5ea20c,null))[_0xa167('0x45')](handleError(_0x5ea20c,null));};
\ No newline at end of file
+var _0x6ec6=['filter','map','VIRTUAL','merge','includeAll','include','findAll','catch','show','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','offset','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','SugarcrmField','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','limit','order','sort','where','pick'];(function(_0x2bb1c2,_0x4471c9){var _0x468612=function(_0xc05f67){while(--_0xc05f67){_0x2bb1c2['push'](_0x2bb1c2['shift']());}};_0x468612(++_0x4471c9);}(_0x6ec6,0x189));var _0x66ec=function(_0x43a1b8,_0x1c90c8){_0x43a1b8=_0x43a1b8-0x0;var _0x324ecc=_0x6ec6[_0x43a1b8];return _0x324ecc;};'use strict';var emlformat=require(_0x66ec('0x0'));var rimraf=require(_0x66ec('0x1'));var zipdir=require(_0x66ec('0x2'));var jsonpatch=require(_0x66ec('0x3'));var rp=require(_0x66ec('0x4'));var moment=require(_0x66ec('0x5'));var BPromise=require(_0x66ec('0x6'));var Mustache=require(_0x66ec('0x7'));var util=require(_0x66ec('0x8'));var path=require(_0x66ec('0x9'));var sox=require(_0x66ec('0xa'));var csv=require(_0x66ec('0xb'));var ejs=require(_0x66ec('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x66ec('0xd'));var squel=require(_0x66ec('0xe'));var crypto=require('crypto');var jsforce=require(_0x66ec('0xf'));var deskjs=require(_0x66ec('0x10'));var toCsv=require(_0x66ec('0xb'));var querystring=require(_0x66ec('0x11'));var Papa=require(_0x66ec('0x12'));var Redis=require(_0x66ec('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x66ec('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x66ec('0x15'));var logger=require(_0x66ec('0x16'))(_0x66ec('0x17'));var utils=require(_0x66ec('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x66ec('0x19'));var db=require(_0x66ec('0x1a'))['db'];function respondWithStatusCode(_0x332a2e,_0x483524){_0x483524=_0x483524||0xcc;return function(_0x362474){if(_0x362474){return _0x332a2e[_0x66ec('0x1b')](_0x483524);}return _0x332a2e[_0x66ec('0x1c')](_0x483524)[_0x66ec('0x1d')]();};}function respondWithResult(_0x2c095b,_0x15e63a){_0x15e63a=_0x15e63a||0xc8;return function(_0x2dfde6){if(_0x2dfde6){return _0x2c095b['status'](_0x15e63a)[_0x66ec('0x1e')](_0x2dfde6);}};}function respondWithFilteredResult(_0x484d9f,_0x44c562){return function(_0xe6a86){if(_0xe6a86){var _0x1c18ba=typeof _0x44c562['offset']===_0x66ec('0x1f')&&typeof _0x44c562['limit']===_0x66ec('0x1f');var _0x2e15f4=_0xe6a86['count'];var _0x3aaa29=_0x1c18ba?0x0:_0x44c562[_0x66ec('0x20')];var _0x2c8f0f=_0x1c18ba?_0xe6a86[_0x66ec('0x21')]:_0x44c562[_0x66ec('0x20')]+_0x44c562['limit'];var _0x5c6da5;if(_0x2c8f0f>=_0x2e15f4){_0x2c8f0f=_0x2e15f4;_0x5c6da5=0xc8;}else{_0x5c6da5=0xce;}_0x484d9f[_0x66ec('0x1c')](_0x5c6da5);return _0x484d9f[_0x66ec('0x22')](_0x66ec('0x23'),_0x3aaa29+'-'+_0x2c8f0f+'/'+_0x2e15f4)[_0x66ec('0x1e')](_0xe6a86);}return null;};}function patchUpdates(_0x2b4c14){return function(_0x915006){try{jsonpatch[_0x66ec('0x24')](_0x915006,_0x2b4c14,!![]);}catch(_0x3868bd){return BPromise[_0x66ec('0x25')](_0x3868bd);}return _0x915006[_0x66ec('0x26')]();};}function saveUpdates(_0x26e238,_0x4852ab){return function(_0x5004dc){if(_0x5004dc){return _0x5004dc[_0x66ec('0x27')](_0x26e238)['then'](function(_0x12d62a){return _0x12d62a;});}return null;};}function removeEntity(_0x7bc600,_0x569a77){return function(_0xb49e9f){if(_0xb49e9f){return _0xb49e9f[_0x66ec('0x28')]()[_0x66ec('0x29')](function(){_0x7bc600[_0x66ec('0x1c')](0xcc)[_0x66ec('0x1d')]();});}};}function handleEntityNotFound(_0x2735d3,_0x54a522){return function(_0x15658b){if(!_0x15658b){_0x2735d3[_0x66ec('0x1b')](0x194);}return _0x15658b;};}function handleError(_0x548b5f,_0x431f45){_0x431f45=_0x431f45||0x1f4;return function(_0xdd067c){logger[_0x66ec('0x2a')](_0xdd067c[_0x66ec('0x2b')]);if(_0xdd067c[_0x66ec('0x2c')]){delete _0xdd067c[_0x66ec('0x2c')];}_0x548b5f[_0x66ec('0x1c')](_0x431f45)[_0x66ec('0x2d')](_0xdd067c);};}exports['index']=function(_0x22b2ff,_0xc10eb){var _0x1dded3={},_0x3ebdfb={},_0x47ff3d={'count':0x0,'rows':[]};var _0x1b09b0=_['map'](db[_0x66ec('0x2e')]['rawAttributes'],function(_0x1a2eb5){return{'name':_0x1a2eb5['fieldName'],'type':_0x1a2eb5[_0x66ec('0x2f')][_0x66ec('0x30')]};});_0x3ebdfb[_0x66ec('0x31')]=_['map'](_0x1b09b0,'name');_0x3ebdfb[_0x66ec('0x32')]=_[_0x66ec('0x33')](_0x22b2ff['query']);_0x3ebdfb[_0x66ec('0x34')]=_['intersection'](_0x3ebdfb[_0x66ec('0x31')],_0x3ebdfb['query']);_0x1dded3[_0x66ec('0x35')]=_[_0x66ec('0x36')](_0x3ebdfb[_0x66ec('0x31')],qs[_0x66ec('0x37')](_0x22b2ff['query'][_0x66ec('0x37')]));_0x1dded3[_0x66ec('0x35')]=_0x1dded3[_0x66ec('0x35')][_0x66ec('0x38')]?_0x1dded3[_0x66ec('0x35')]:_0x3ebdfb[_0x66ec('0x31')];if(!_0x22b2ff[_0x66ec('0x32')][_0x66ec('0x39')]('nolimit')){_0x1dded3[_0x66ec('0x3a')]=qs[_0x66ec('0x3a')](_0x22b2ff[_0x66ec('0x32')]['limit']);_0x1dded3[_0x66ec('0x20')]=qs[_0x66ec('0x20')](_0x22b2ff['query']['offset']);}_0x1dded3[_0x66ec('0x3b')]=qs[_0x66ec('0x3c')](_0x22b2ff['query'][_0x66ec('0x3c')]);_0x1dded3[_0x66ec('0x3d')]=qs[_0x66ec('0x34')](_[_0x66ec('0x3e')](_0x22b2ff[_0x66ec('0x32')],_0x3ebdfb[_0x66ec('0x34')]),_0x1b09b0);if(_0x22b2ff[_0x66ec('0x32')][_0x66ec('0x3f')]){_0x1dded3[_0x66ec('0x3d')]=_['merge'](_0x1dded3[_0x66ec('0x3d')],{'$or':_[_0x66ec('0x40')](_0x1b09b0,function(_0x536038){if(_0x536038[_0x66ec('0x2f')]!==_0x66ec('0x41')){var _0x12dbed={};_0x12dbed[_0x536038[_0x66ec('0x2c')]]={'$like':'%'+_0x22b2ff[_0x66ec('0x32')][_0x66ec('0x3f')]+'%'};return _0x12dbed;}})});}_0x1dded3=_[_0x66ec('0x42')]({},_0x1dded3,_0x22b2ff['options']);var _0x322946={'where':_0x1dded3[_0x66ec('0x3d')]};return db[_0x66ec('0x2e')][_0x66ec('0x21')](_0x322946)[_0x66ec('0x29')](function(_0x47a1bf){_0x47ff3d[_0x66ec('0x21')]=_0x47a1bf;if(_0x22b2ff[_0x66ec('0x32')][_0x66ec('0x43')]){_0x1dded3[_0x66ec('0x44')]=[{'all':!![]}];}return db['SugarcrmField'][_0x66ec('0x45')](_0x1dded3);})['then'](function(_0x10b8f6){_0x47ff3d['rows']=_0x10b8f6;return _0x47ff3d;})[_0x66ec('0x29')](respondWithFilteredResult(_0xc10eb,_0x1dded3))[_0x66ec('0x46')](handleError(_0xc10eb,null));};exports[_0x66ec('0x47')]=function(_0x43b263,_0x5549a9){var _0x45e574={'raw':!![],'where':{'id':_0x43b263['params']['id']}},_0x4e2553={};_0x4e2553[_0x66ec('0x31')]=_[_0x66ec('0x33')](db[_0x66ec('0x2e')]['rawAttributes']);_0x4e2553[_0x66ec('0x32')]=_[_0x66ec('0x33')](_0x43b263[_0x66ec('0x32')]);_0x4e2553[_0x66ec('0x34')]=_[_0x66ec('0x36')](_0x4e2553['model'],_0x4e2553[_0x66ec('0x32')]);_0x45e574[_0x66ec('0x35')]=_[_0x66ec('0x36')](_0x4e2553[_0x66ec('0x31')],qs[_0x66ec('0x37')](_0x43b263['query'][_0x66ec('0x37')]));_0x45e574[_0x66ec('0x35')]=_0x45e574[_0x66ec('0x35')][_0x66ec('0x38')]?_0x45e574[_0x66ec('0x35')]:_0x4e2553[_0x66ec('0x31')];if(_0x43b263[_0x66ec('0x32')][_0x66ec('0x43')]){_0x45e574[_0x66ec('0x44')]=[{'all':!![]}];}_0x45e574=_[_0x66ec('0x42')]({},_0x45e574,_0x43b263['options']);return db[_0x66ec('0x2e')][_0x66ec('0x48')](_0x45e574)[_0x66ec('0x29')](handleEntityNotFound(_0x5549a9,null))[_0x66ec('0x29')](respondWithResult(_0x5549a9,null))[_0x66ec('0x46')](handleError(_0x5549a9,null));};exports[_0x66ec('0x49')]=function(_0x1f1aff,_0x1ef772){return db['SugarcrmField'][_0x66ec('0x49')](_0x1f1aff['body'],{})['then'](respondWithResult(_0x1ef772,0xc9))[_0x66ec('0x46')](handleError(_0x1ef772,null));};exports[_0x66ec('0x27')]=function(_0x485294,_0x3aa98a){if(_0x485294[_0x66ec('0x4a')]['id']){delete _0x485294[_0x66ec('0x4a')]['id'];}return db[_0x66ec('0x2e')][_0x66ec('0x48')]({'where':{'id':_0x485294[_0x66ec('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3aa98a,null))['then'](saveUpdates(_0x485294[_0x66ec('0x4a')],null))[_0x66ec('0x29')](respondWithResult(_0x3aa98a,null))[_0x66ec('0x46')](handleError(_0x3aa98a,null));};exports[_0x66ec('0x28')]=function(_0x16a51a,_0x1a90a1){return db[_0x66ec('0x2e')][_0x66ec('0x48')]({'where':{'id':_0x16a51a['params']['id']}})[_0x66ec('0x29')](handleEntityNotFound(_0x1a90a1,null))[_0x66ec('0x29')](removeEntity(_0x1a90a1,null))[_0x66ec('0x46')](handleError(_0x1a90a1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76c6=['util','../../config/logger','api','path','./intSugarcrmField.attributes','exports','define','SugarcrmField','idField','FieldId','lodash'];(function(_0x59c788,_0x38a28d){var _0x2ac818=function(_0x254268){while(--_0x254268){_0x59c788['push'](_0x59c788['shift']());}};_0x2ac818(++_0x38a28d);}(_0x76c6,0x1cd));var _0x676c=function(_0x48120f,_0x1da1b8){_0x48120f=_0x48120f-0x0;var _0x39a62e=_0x76c6[_0x48120f];return _0x39a62e;};'use strict';var _=require(_0x676c('0x0'));var util=require(_0x676c('0x1'));var logger=require(_0x676c('0x2'))(_0x676c('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x676c('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x676c('0x5'));module[_0x676c('0x6')]=function(_0x1110be,_0x5a9ec5){return _0x1110be[_0x676c('0x7')](_0x676c('0x8'),attributes,{'tableName':'int_sugarcrm_fields','paranoid':![],'indexes':[{'name':'sugarcrm_unique_index','fields':[_0x676c('0x9'),_0x676c('0xa')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb111=['moment','bluebird','request-promise','path','rimraf','../../config/environment','define','SugarcrmField','sugarcrm_unique_index','idField','FieldId','../../config/logger','api'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xb111,0xb4));var _0x1b11=function(_0xc376e1,_0x1a2b83){_0xc376e1=_0xc376e1-0x0;var _0x63e01c=_0xb111[_0xc376e1];return _0x63e01c;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1b11('0x0'))(_0x1b11('0x1'));var moment=require(_0x1b11('0x2'));var BPromise=require(_0x1b11('0x3'));var rp=require(_0x1b11('0x4'));var fs=require('fs');var path=require(_0x1b11('0x5'));var rimraf=require(_0x1b11('0x6'));var config=require(_0x1b11('0x7'));var attributes=require('./intSugarcrmField.attributes');module['exports']=function(_0x2c8314,_0x3f552c){return _0x2c8314[_0x1b11('0x8')](_0x1b11('0x9'),attributes,{'tableName':'int_sugarcrm_fields','paranoid':![],'indexes':[{'name':_0x1b11('0xa'),'fields':[_0x1b11('0xb'),_0x1b11('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x10ac=['jayson/promise','client','http','request','then','info','SugarcrmField,\x20%s,\x20%s','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x761d36,_0x290d6d){var _0x15d81a=function(_0x2b9f6f){while(--_0x2b9f6f){_0x761d36['push'](_0x761d36['shift']());}};_0x15d81a(++_0x290d6d);}(_0x10ac,0x92));var _0xc10a=function(_0x500419,_0x549162){_0x500419=_0x500419-0x0;var _0x241c1a=_0x10ac[_0x500419];return _0x241c1a;};'use strict';var _=require(_0xc10a('0x0'));var util=require(_0xc10a('0x1'));var moment=require(_0xc10a('0x2'));var BPromise=require(_0xc10a('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc10a('0x4'));var db=require(_0xc10a('0x5'))['db'];var utils=require(_0xc10a('0x6'));var logger=require(_0xc10a('0x7'))(_0xc10a('0x8'));var config=require(_0xc10a('0x9'));var jayson=require(_0xc10a('0xa'));var client=jayson[_0xc10a('0xb')][_0xc10a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x49dacd,_0x1d687d,_0x435f8d){return new BPromise(function(_0x321e72,_0x3e3f39){return client[_0xc10a('0xd')](_0x49dacd,_0x435f8d)[_0xc10a('0xe')](function(_0x4e4bab){logger[_0xc10a('0xf')](_0xc10a('0x10'),_0x1d687d,'request\x20sent');logger[_0xc10a('0x11')](_0xc10a('0x12'),_0x1d687d,'request\x20sent',JSON[_0xc10a('0x13')](_0x4e4bab));if(_0x4e4bab[_0xc10a('0x14')]){if(_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x15')]===0x1f4){logger[_0xc10a('0x14')](_0xc10a('0x10'),_0x1d687d,_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);return _0x3e3f39(_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);}logger['error'](_0xc10a('0x10'),_0x1d687d,_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);return _0x321e72(_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);}else{logger[_0xc10a('0xf')](_0xc10a('0x10'),_0x1d687d,_0xc10a('0x17'));_0x321e72(_0x4e4bab[_0xc10a('0x18')]['message']);}})[_0xc10a('0x19')](function(_0x582348){logger[_0xc10a('0x14')](_0xc10a('0x10'),_0x1d687d,_0x582348);_0x3e3f39(_0x582348);});});}
\ No newline at end of file
+var _0x4272=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SugarcrmField,\x20%s,\x20%s','request\x20sent','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','error','code','message','result'];(function(_0x521929,_0x479be5){var _0x632436=function(_0x288290){while(--_0x288290){_0x521929['push'](_0x521929['shift']());}};_0x632436(++_0x479be5);}(_0x4272,0xc1));var _0x2427=function(_0x509017,_0x484c73){_0x509017=_0x509017-0x0;var _0x4abfd7=_0x4272[_0x509017];return _0x4abfd7;};'use strict';var _=require(_0x2427('0x0'));var util=require(_0x2427('0x1'));var moment=require(_0x2427('0x2'));var BPromise=require(_0x2427('0x3'));var rs=require(_0x2427('0x4'));var fs=require('fs');var Redis=require(_0x2427('0x5'));var db=require(_0x2427('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x2427('0x7'));var config=require(_0x2427('0x8'));var jayson=require(_0x2427('0x9'));var client=jayson[_0x2427('0xa')][_0x2427('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x455798,_0x408071,_0x149694){return new BPromise(function(_0x1da27d,_0x48151e){return client[_0x2427('0xc')](_0x455798,_0x149694)[_0x2427('0xd')](function(_0x482b7f){logger[_0x2427('0xe')](_0x2427('0xf'),_0x408071,_0x2427('0x10'));logger[_0x2427('0x11')](_0x2427('0x12'),_0x408071,_0x2427('0x10'),JSON['stringify'](_0x482b7f));if(_0x482b7f[_0x2427('0x13')]){if(_0x482b7f['error'][_0x2427('0x14')]===0x1f4){logger[_0x2427('0x13')](_0x2427('0xf'),_0x408071,_0x482b7f['error'][_0x2427('0x15')]);return _0x48151e(_0x482b7f['error'][_0x2427('0x15')]);}logger['error'](_0x2427('0xf'),_0x408071,_0x482b7f['error'][_0x2427('0x15')]);return _0x1da27d(_0x482b7f['error'][_0x2427('0x15')]);}else{logger[_0x2427('0xe')](_0x2427('0xf'),_0x408071,_0x2427('0x10'));_0x1da27d(_0x482b7f[_0x2427('0x16')][_0x2427('0x15')]);}})[_0x2427('0x17')](function(_0x241275){logger['error'](_0x2427('0xf'),_0x408071,_0x241275);_0x48151e(_0x241275);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb903=['../../components/interaction/service','../../config/environment','./intVtigerAccount.controller','get','index','isAuthenticated','show','/:id/configurations','post','addConfiguration','put','/:id','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service'];(function(_0x213b27,_0x3a531a){var _0x2c04ee=function(_0x538d00){while(--_0x538d00){_0x213b27['push'](_0x213b27['shift']());}};_0x2c04ee(++_0x3a531a);}(_0xb903,0x185));var _0x3b90=function(_0x5ee662,_0x2840b2){_0x5ee662=_0x5ee662-0x0;var _0x3f7e74=_0xb903[_0x5ee662];return _0x3f7e74;};'use strict';var multer=require(_0x3b90('0x0'));var util=require(_0x3b90('0x1'));var path=require(_0x3b90('0x2'));var timeout=require(_0x3b90('0x3'));var express=require('express');var router=express[_0x3b90('0x4')]();var fs_extra=require(_0x3b90('0x5'));var auth=require(_0x3b90('0x6'));var interaction=require(_0x3b90('0x7'));var config=require(_0x3b90('0x8'));var controller=require(_0x3b90('0x9'));router[_0x3b90('0xa')]('/',auth['isAuthenticated'](),controller[_0x3b90('0xb')]);router['get']('/:id',auth[_0x3b90('0xc')](),controller[_0x3b90('0xd')]);router[_0x3b90('0xa')](_0x3b90('0xe'),auth['isAuthenticated'](),controller['getConfigurations']);router['get']('/:id/fields',auth['isAuthenticated'](),controller['getFields']);router[_0x3b90('0xf')]('/',auth[_0x3b90('0xc')](),controller['create']);router[_0x3b90('0xf')](_0x3b90('0xe'),auth['isAuthenticated'](),controller[_0x3b90('0x10')]);router[_0x3b90('0x11')](_0x3b90('0x12'),auth['isAuthenticated'](),controller['update']);router[_0x3b90('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x3b90('0x14')]);module[_0x3b90('0x15')]=router;
\ No newline at end of file
+var _0x884d=['../../config/environment','./intVtigerAccount.controller','get','isAuthenticated','/:id','show','/:id/configurations','/:id/fields','getFields','post','create','addConfiguration','update','destroy','multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x65c50e,_0x1aa926){var _0x4573e7=function(_0x5bc049){while(--_0x5bc049){_0x65c50e['push'](_0x65c50e['shift']());}};_0x4573e7(++_0x1aa926);}(_0x884d,0x1b2));var _0xd884=function(_0x46d568,_0x4fcab6){_0x46d568=_0x46d568-0x0;var _0x8c2b7e=_0x884d[_0x46d568];return _0x8c2b7e;};'use strict';var multer=require(_0xd884('0x0'));var util=require(_0xd884('0x1'));var path=require(_0xd884('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xd884('0x3')]();var fs_extra=require(_0xd884('0x4'));var auth=require(_0xd884('0x5'));var interaction=require(_0xd884('0x6'));var config=require(_0xd884('0x7'));var controller=require(_0xd884('0x8'));router[_0xd884('0x9')]('/',auth[_0xd884('0xa')](),controller['index']);router[_0xd884('0x9')](_0xd884('0xb'),auth[_0xd884('0xa')](),controller[_0xd884('0xc')]);router['get'](_0xd884('0xd'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0xd884('0x9')](_0xd884('0xe'),auth['isAuthenticated'](),controller[_0xd884('0xf')]);router[_0xd884('0x10')]('/',auth[_0xd884('0xa')](),controller[_0xd884('0x11')]);router[_0xd884('0x10')](_0xd884('0xd'),auth[_0xd884('0xa')](),controller[_0xd884('0x12')]);router['put'](_0xd884('0xb'),auth[_0xd884('0xa')](),controller[_0xd884('0x13')]);router['delete']('/:id',auth[_0xd884('0xa')](),controller[_0xd884('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9326=['STRING','sequelize','exports'];(function(_0x5309a1,_0x41c7a6){var _0xb4751b=function(_0x500f80){while(--_0x500f80){_0x5309a1['push'](_0x5309a1['shift']());}};_0xb4751b(++_0x41c7a6);}(_0x9326,0x15d));var _0x6932=function(_0x4394b6,_0x12357f){_0x4394b6=_0x4394b6-0x0;var _0x360244=_0x9326[_0x4394b6];return _0x360244;};'use strict';var Sequelize=require(_0x6932('0x0'));module[_0x6932('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0x6932('0x2')]},'username':{'type':Sequelize[_0x6932('0x2')],'allowNull':![]},'moduleName':{'type':Sequelize[_0x6932('0x2')],'allowNull':![],'defaultValue':'HelpDesk'},'remoteUri':{'type':Sequelize[_0x6932('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'accessKey':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0xdf34=['exports','STRING','HelpDesk','sequelize'];(function(_0x183a81,_0x53ccf0){var _0x477568=function(_0x3ef8d0){while(--_0x3ef8d0){_0x183a81['push'](_0x183a81['shift']());}};_0x477568(++_0x53ccf0);}(_0xdf34,0xf3));var _0x4df3=function(_0xf592b5,_0x218a78){_0xf592b5=_0xf592b5-0x0;var _0x43fd4a=_0xdf34[_0xf592b5];return _0x43fd4a;};'use strict';var Sequelize=require(_0x4df3('0x0'));module[_0x4df3('0x1')]={'name':{'type':Sequelize[_0x4df3('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x4df3('0x2')]},'username':{'type':Sequelize[_0x4df3('0x2')],'allowNull':![]},'moduleName':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x4df3('0x3')},'remoteUri':{'type':Sequelize[_0x4df3('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x4df3('0x2')],'allowNull':![]},'accessKey':{'type':Sequelize[_0x4df3('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a3f=['format','%s/webservice.php','GET','getchallenge','success','login','result','token','describe','sessionName','autogenerated','reference','owner','includes','remove','editable','false','label','startsWith','picklist','picklistValues','value','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','desk.js','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','update','destroy','then','error','stack','name','send','index','map','VtigerAccount','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','pick','where','VIRTUAL','filter','merge','options','includeAll','include','findAll','catch','show','params','find','create','body','getConfigurations','findOne','VtigerConfiguration','hasOwnProperty','addConfiguration','AccountId','getSubjects','Descriptions','getDescriptions','channel','Subjects','VtigerField','md5','getFields','username','description','moduleName','remoteUri','accessKey','substring','lastIndexOf'];(function(_0x3275fb,_0x19f753){var _0x1323d4=function(_0x71d716){while(--_0x71d716){_0x3275fb['push'](_0x3275fb['shift']());}};_0x1323d4(++_0x19f753);}(_0x6a3f,0x180));var _0xf6a3=function(_0x112363,_0x424990){_0x112363=_0x112363-0x0;var _0x10bbaa=_0x6a3f[_0x112363];return _0x10bbaa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf6a3('0x0'));var zipdir=require(_0xf6a3('0x1'));var jsonpatch=require(_0xf6a3('0x2'));var rp=require(_0xf6a3('0x3'));var moment=require('moment');var BPromise=require(_0xf6a3('0x4'));var Mustache=require(_0xf6a3('0x5'));var util=require('util');var path=require(_0xf6a3('0x6'));var sox=require('sox');var csv=require(_0xf6a3('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf6a3('0x8'));var _=require(_0xf6a3('0x9'));var squel=require(_0xf6a3('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf6a3('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xf6a3('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf6a3('0xd'));var logger=require(_0xf6a3('0xe'))(_0xf6a3('0xf'));var utils=require(_0xf6a3('0x10'));var config=require(_0xf6a3('0x11'));var licenseUtil=require(_0xf6a3('0x12'));var db=require(_0xf6a3('0x13'))['db'];var integrations=require(_0xf6a3('0x14'));function respondWithStatusCode(_0x58b175,_0x563a2c){_0x563a2c=_0x563a2c||0xcc;return function(_0x37ea14){if(_0x37ea14){return _0x58b175[_0xf6a3('0x15')](_0x563a2c);}return _0x58b175[_0xf6a3('0x16')](_0x563a2c)[_0xf6a3('0x17')]();};}function respondWithResult(_0x4d2879,_0x363ad9){_0x363ad9=_0x363ad9||0xc8;return function(_0x55c801){if(_0x55c801){return _0x4d2879[_0xf6a3('0x16')](_0x363ad9)['json'](_0x55c801);}};}function respondWithFilteredResult(_0x515219,_0xc41a21){return function(_0x521526){if(_0x521526){var _0x4e27d3=typeof _0xc41a21[_0xf6a3('0x18')]===_0xf6a3('0x19')&&typeof _0xc41a21[_0xf6a3('0x1a')]===_0xf6a3('0x19');var _0x4d1f30=_0x521526[_0xf6a3('0x1b')];var _0x2a9420=_0x4e27d3?0x0:_0xc41a21['offset'];var _0x210c92=_0x4e27d3?_0x521526['count']:_0xc41a21[_0xf6a3('0x18')]+_0xc41a21[_0xf6a3('0x1a')];var _0xa10048;if(_0x210c92>=_0x4d1f30){_0x210c92=_0x4d1f30;_0xa10048=0xc8;}else{_0xa10048=0xce;}_0x515219[_0xf6a3('0x16')](_0xa10048);return _0x515219[_0xf6a3('0x1c')]('Content-Range',_0x2a9420+'-'+_0x210c92+'/'+_0x4d1f30)[_0xf6a3('0x1d')](_0x521526);}return null;};}function patchUpdates(_0x11ab17){return function(_0x1f9b41){try{jsonpatch[_0xf6a3('0x1e')](_0x1f9b41,_0x11ab17,!![]);}catch(_0x3b42ba){return BPromise[_0xf6a3('0x1f')](_0x3b42ba);}return _0x1f9b41['save']();};}function saveUpdates(_0x37086c,_0x25bdf0){return function(_0x4e957b){if(_0x4e957b){return _0x4e957b[_0xf6a3('0x20')](_0x37086c)['then'](function(_0xcff8bd){return _0xcff8bd;});}return null;};}function removeEntity(_0x2dff4d,_0x21f6ea){return function(_0x2e8dc8){if(_0x2e8dc8){return _0x2e8dc8[_0xf6a3('0x21')]()[_0xf6a3('0x22')](function(){_0x2dff4d['status'](0xcc)[_0xf6a3('0x17')]();});}};}function handleEntityNotFound(_0x35f323,_0x5671f9){return function(_0x5e63d1){if(!_0x5e63d1){_0x35f323[_0xf6a3('0x15')](0x194);}return _0x5e63d1;};}function handleError(_0x301f8c,_0x98569c){_0x98569c=_0x98569c||0x1f4;return function(_0x4d5ced){logger[_0xf6a3('0x23')](_0x4d5ced[_0xf6a3('0x24')]);if(_0x4d5ced[_0xf6a3('0x25')]){delete _0x4d5ced[_0xf6a3('0x25')];}_0x301f8c[_0xf6a3('0x16')](_0x98569c)[_0xf6a3('0x26')](_0x4d5ced);};}exports[_0xf6a3('0x27')]=function(_0x5d7566,_0x56e4ce){var _0x52bee9={},_0x130313={},_0x391bd6={'count':0x0,'rows':[]};var _0xe2348d=_[_0xf6a3('0x28')](db[_0xf6a3('0x29')][_0xf6a3('0x2a')],function(_0x4a489d){return{'name':_0x4a489d[_0xf6a3('0x2b')],'type':_0x4a489d[_0xf6a3('0x2c')]['key']};});_0x130313['model']=_[_0xf6a3('0x28')](_0xe2348d,_0xf6a3('0x25'));_0x130313[_0xf6a3('0x2d')]=_[_0xf6a3('0x2e')](_0x5d7566[_0xf6a3('0x2d')]);_0x130313[_0xf6a3('0x2f')]=_[_0xf6a3('0x30')](_0x130313[_0xf6a3('0x31')],_0x130313[_0xf6a3('0x2d')]);_0x52bee9[_0xf6a3('0x32')]=_[_0xf6a3('0x30')](_0x130313[_0xf6a3('0x31')],qs[_0xf6a3('0x33')](_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x33')]));_0x52bee9['attributes']=_0x52bee9[_0xf6a3('0x32')][_0xf6a3('0x34')]?_0x52bee9[_0xf6a3('0x32')]:_0x130313[_0xf6a3('0x31')];if(!_0x5d7566[_0xf6a3('0x2d')]['hasOwnProperty'](_0xf6a3('0x35'))){_0x52bee9[_0xf6a3('0x1a')]=qs[_0xf6a3('0x1a')](_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x1a')]);_0x52bee9[_0xf6a3('0x18')]=qs[_0xf6a3('0x18')](_0x5d7566['query'][_0xf6a3('0x18')]);}_0x52bee9[_0xf6a3('0x36')]=qs['sort'](_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x37')]);_0x52bee9['where']=qs[_0xf6a3('0x2f')](_[_0xf6a3('0x38')](_0x5d7566[_0xf6a3('0x2d')],_0x130313[_0xf6a3('0x2f')]),_0xe2348d);if(_0x5d7566['query']['filter']){_0x52bee9[_0xf6a3('0x39')]=_['merge'](_0x52bee9[_0xf6a3('0x39')],{'$or':_[_0xf6a3('0x28')](_0xe2348d,function(_0x4b9386){if(_0x4b9386['type']!==_0xf6a3('0x3a')){var _0x41a4b8={};_0x41a4b8[_0x4b9386[_0xf6a3('0x25')]]={'$like':'%'+_0x5d7566['query'][_0xf6a3('0x3b')]+'%'};return _0x41a4b8;}})});}_0x52bee9=_[_0xf6a3('0x3c')]({},_0x52bee9,_0x5d7566[_0xf6a3('0x3d')]);var _0x2b8bf5={'where':_0x52bee9['where']};return db[_0xf6a3('0x29')][_0xf6a3('0x1b')](_0x2b8bf5)[_0xf6a3('0x22')](function(_0x4a2e78){_0x391bd6[_0xf6a3('0x1b')]=_0x4a2e78;if(_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x3e')]){_0x52bee9[_0xf6a3('0x3f')]=[{'all':!![]}];}return db[_0xf6a3('0x29')][_0xf6a3('0x40')](_0x52bee9);})[_0xf6a3('0x22')](function(_0x41d31a){_0x391bd6['rows']=_0x41d31a;return _0x391bd6;})['then'](respondWithFilteredResult(_0x56e4ce,_0x52bee9))[_0xf6a3('0x41')](handleError(_0x56e4ce,null));};exports[_0xf6a3('0x42')]=function(_0x5a74f0,_0x437451){var _0x1a0735={'raw':![],'where':{'id':_0x5a74f0[_0xf6a3('0x43')]['id']}},_0x10610f={};_0x10610f[_0xf6a3('0x31')]=_['keys'](db[_0xf6a3('0x29')][_0xf6a3('0x2a')]);_0x10610f[_0xf6a3('0x2d')]=_[_0xf6a3('0x2e')](_0x5a74f0[_0xf6a3('0x2d')]);_0x10610f['filters']=_[_0xf6a3('0x30')](_0x10610f[_0xf6a3('0x31')],_0x10610f[_0xf6a3('0x2d')]);_0x1a0735['attributes']=_[_0xf6a3('0x30')](_0x10610f[_0xf6a3('0x31')],qs['fields'](_0x5a74f0[_0xf6a3('0x2d')]['fields']));_0x1a0735[_0xf6a3('0x32')]=_0x1a0735['attributes']['length']?_0x1a0735[_0xf6a3('0x32')]:_0x10610f['model'];if(_0x5a74f0[_0xf6a3('0x2d')][_0xf6a3('0x3e')]){_0x1a0735[_0xf6a3('0x3f')]=[{'all':!![]}];}_0x1a0735=_['merge']({},_0x1a0735,_0x5a74f0[_0xf6a3('0x3d')]);return db['VtigerAccount'][_0xf6a3('0x44')](_0x1a0735)[_0xf6a3('0x22')](handleEntityNotFound(_0x437451,null))[_0xf6a3('0x22')](respondWithResult(_0x437451,null))[_0xf6a3('0x41')](handleError(_0x437451,null));};exports['create']=function(_0x40458a,_0x5e3cfc){return db[_0xf6a3('0x29')][_0xf6a3('0x45')](_0x40458a[_0xf6a3('0x46')],{})[_0xf6a3('0x22')](respondWithResult(_0x5e3cfc,0xc9))['catch'](handleError(_0x5e3cfc,null));};exports[_0xf6a3('0x20')]=function(_0x862a75,_0x12f1c2){if(_0x862a75['body']['id']){delete _0x862a75['body']['id'];}return db[_0xf6a3('0x29')][_0xf6a3('0x44')]({'where':{'id':_0x862a75[_0xf6a3('0x43')]['id']}})[_0xf6a3('0x22')](handleEntityNotFound(_0x12f1c2,null))[_0xf6a3('0x22')](saveUpdates(_0x862a75[_0xf6a3('0x46')],null))[_0xf6a3('0x22')](respondWithResult(_0x12f1c2,null))[_0xf6a3('0x41')](handleError(_0x12f1c2,null));};exports['destroy']=function(_0x922514,_0x53d2bc){return db[_0xf6a3('0x29')][_0xf6a3('0x44')]({'where':{'id':_0x922514[_0xf6a3('0x43')]['id']}})[_0xf6a3('0x22')](handleEntityNotFound(_0x53d2bc,null))[_0xf6a3('0x22')](removeEntity(_0x53d2bc,null))['catch'](handleError(_0x53d2bc,null));};exports[_0xf6a3('0x47')]=function(_0x558f6a,_0x2ea058,_0x1adf88){var _0x3855bd={};var _0x290c94={};var _0x4b0774;var _0x39c411;return db[_0xf6a3('0x29')][_0xf6a3('0x48')]({'where':{'id':_0x558f6a['params']['id']}})['then'](handleEntityNotFound(_0x2ea058,null))['then'](function(_0x16a883){if(_0x16a883){_0x4b0774=_0x16a883;_0x290c94[_0xf6a3('0x31')]=_[_0xf6a3('0x2e')](db[_0xf6a3('0x49')][_0xf6a3('0x2a')]);_0x290c94[_0xf6a3('0x2d')]=_[_0xf6a3('0x2e')](_0x558f6a[_0xf6a3('0x2d')]);_0x290c94[_0xf6a3('0x2f')]=_[_0xf6a3('0x30')](_0x290c94[_0xf6a3('0x31')],_0x290c94[_0xf6a3('0x2d')]);_0x3855bd[_0xf6a3('0x32')]=_[_0xf6a3('0x30')](_0x290c94['model'],qs[_0xf6a3('0x33')](_0x558f6a['query'][_0xf6a3('0x33')]));_0x3855bd[_0xf6a3('0x32')]=_0x3855bd[_0xf6a3('0x32')][_0xf6a3('0x34')]?_0x3855bd[_0xf6a3('0x32')]:_0x290c94[_0xf6a3('0x31')];_0x3855bd[_0xf6a3('0x36')]=qs[_0xf6a3('0x37')](_0x558f6a['query'][_0xf6a3('0x37')]);_0x3855bd[_0xf6a3('0x39')]=qs['filters'](_[_0xf6a3('0x38')](_0x558f6a[_0xf6a3('0x2d')],_0x290c94['filters']));if(_0x558f6a['query'][_0xf6a3('0x3b')]){_0x3855bd[_0xf6a3('0x39')]=_[_0xf6a3('0x3c')](_0x3855bd[_0xf6a3('0x39')],{'$or':_[_0xf6a3('0x28')](_0x3855bd[_0xf6a3('0x32')],function(_0x390d48){var _0x4ab3ef={};_0x4ab3ef[_0x390d48]={'$like':'%'+_0x558f6a[_0xf6a3('0x2d')][_0xf6a3('0x3b')]+'%'};return _0x4ab3ef;})});}_0x3855bd=_[_0xf6a3('0x3c')]({},_0x3855bd,_0x558f6a['options']);return _0x4b0774[_0xf6a3('0x47')](_0x3855bd);}})[_0xf6a3('0x22')](function(_0x241a77){if(_0x241a77){_0x39c411=_0x241a77[_0xf6a3('0x34')];if(!_0x558f6a[_0xf6a3('0x2d')][_0xf6a3('0x4a')](_0xf6a3('0x35'))){_0x3855bd[_0xf6a3('0x1a')]=qs['limit'](_0x558f6a[_0xf6a3('0x2d')][_0xf6a3('0x1a')]);_0x3855bd[_0xf6a3('0x18')]=qs[_0xf6a3('0x18')](_0x558f6a[_0xf6a3('0x2d')]['offset']);}return _0x4b0774[_0xf6a3('0x47')](_0x3855bd);}})[_0xf6a3('0x22')](function(_0x7cf1f7){if(_0x7cf1f7){return _0x7cf1f7?{'count':_0x39c411,'rows':_0x7cf1f7}:null;}})[_0xf6a3('0x22')](respondWithResult(_0x2ea058,null))[_0xf6a3('0x41')](handleError(_0x2ea058,null));};exports[_0xf6a3('0x4b')]=function(_0x2dd1be,_0x189197,_0x46cb83){if(_0x2dd1be[_0xf6a3('0x46')]['id']){delete _0x2dd1be[_0xf6a3('0x46')]['id'];}return db[_0xf6a3('0x29')]['findOne']({'where':{'id':_0x2dd1be['params']['id']}})['then'](handleEntityNotFound(_0x189197,null))[_0xf6a3('0x22')](function(_0x5644d5){if(_0x5644d5){_0x2dd1be['body'][_0xf6a3('0x4c')]=_0x5644d5['id'];_0x2dd1be[_0xf6a3('0x46')]['Subjects']=integrations[_0xf6a3('0x4d')](_0x2dd1be['body']['channel'],_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x2c')]);_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x4e')]=integrations[_0xf6a3('0x4f')](_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x50')],_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x2c')]);return db['VtigerConfiguration'][_0xf6a3('0x45')](_0x2dd1be[_0xf6a3('0x46')],{'include':[{'model':db['VtigerField'],'as':_0xf6a3('0x51')},{'model':db[_0xf6a3('0x52')],'as':_0xf6a3('0x4e')}]});}return null;})[_0xf6a3('0x22')](respondWithResult(_0x189197,null))['catch'](handleError(_0x189197,null));};var md5=require(_0xf6a3('0x53'));exports[_0xf6a3('0x54')]=function(_0x190cd8,_0x5a0027,_0x5ec303){var _0xd477a2=null;var _0x186d89=null;var _0x5e9e48=null;var _0x36f764=null;var _0x2447ce='';return db[_0xf6a3('0x29')][_0xf6a3('0x48')]({'where':{'id':_0x190cd8['params']['id']},'attributes':['id',_0xf6a3('0x25'),_0xf6a3('0x55'),_0xf6a3('0x56'),_0xf6a3('0x57'),_0xf6a3('0x58'),'serverUrl',_0xf6a3('0x59')]})[_0xf6a3('0x22')](handleEntityNotFound(_0x5a0027,null))[_0xf6a3('0x22')](function(_0x2de69e){if(_0x2de69e){_0xd477a2=_0x2de69e[_0xf6a3('0x55')];_0x186d89=_0x2de69e[_0xf6a3('0x59')];_0x5e9e48=_0x2de69e[_0xf6a3('0x57')];_0x2447ce=_0x2de69e[_0xf6a3('0x58')];var _0x151691=_0x2447ce['slice'](-0x1);if(_0x151691==='/'){_0x2447ce=_0x2447ce[_0xf6a3('0x5a')](0x0,_0x2447ce[_0xf6a3('0x5b')](_0x151691));}_0x36f764=util[_0xf6a3('0x5c')](_0xf6a3('0x5d'),_0x2447ce);var _0x493019={'method':_0xf6a3('0x5e'),'uri':_0x36f764,'qs':{'operation':_0xf6a3('0x5f'),'username':_0x2de69e['username']},'json':!![]};return rp(_0x493019);}})[_0xf6a3('0x22')](function(_0x5f3ccc){if(_0x5f3ccc[_0xf6a3('0x60')]){var _0x40a753={'method':'POST','uri':_0x36f764,'form':{'operation':_0xf6a3('0x61'),'username':_0xd477a2,'accessKey':md5(_0x5f3ccc[_0xf6a3('0x62')][_0xf6a3('0x63')]+_0x186d89)},'json':!![]};return rp(_0x40a753);}})[_0xf6a3('0x22')](function(_0x1c2823){if(_0x1c2823['success']){var _0x1b2476={'method':'GET','uri':_0x36f764,'qs':{'operation':_0xf6a3('0x64'),'username':_0xd477a2,'sessionName':_0x1c2823[_0xf6a3('0x62')][_0xf6a3('0x65')],'elementType':_0x5e9e48},'json':!![]};return rp(_0x1b2476);}})['then'](function(_0x1ab5e7){if(_0x1ab5e7['success']){var _0x2cc758=[_0xf6a3('0x66'),_0xf6a3('0x67'),_0xf6a3('0x68')];_['remove'](_0x1ab5e7[_0xf6a3('0x62')]['fields'],function(_0x3df18c){return _0x2cc758[_0xf6a3('0x69')](_0x3df18c[_0xf6a3('0x2c')][_0xf6a3('0x25')]);});_[_0xf6a3('0x6a')](_0x1ab5e7[_0xf6a3('0x62')][_0xf6a3('0x33')],function(_0x10f2fe){return _0x10f2fe[_0xf6a3('0x6b')]===_0xf6a3('0x6c');});return{'count':_0x1ab5e7[_0xf6a3('0x62')]['fields']['length'],'rows':_[_0xf6a3('0x28')](_0x1ab5e7[_0xf6a3('0x62')][_0xf6a3('0x33')],function(_0x40ed51){return{'id':_0x40ed51[_0xf6a3('0x25')],'name':_0x40ed51[_0xf6a3('0x6d')],'custom':_[_0xf6a3('0x6e')](_0x40ed51[_0xf6a3('0x25')],'cf_')?!![]:![],'options':_0x40ed51[_0xf6a3('0x2c')][_0xf6a3('0x25')]===_0xf6a3('0x6f')&&_0x40ed51[_0xf6a3('0x2c')][_0xf6a3('0x70')][_0xf6a3('0x34')]>0x0?_[_0xf6a3('0x28')](_0x40ed51['type'][_0xf6a3('0x70')],function(_0x4f0d90){return{'name':_0x4f0d90[_0xf6a3('0x6d')],'value':_0x4f0d90[_0xf6a3('0x71')]};}):[]};})};}})[_0xf6a3('0x22')](respondWithResult(_0x5a0027,null))['catch'](function(_0x5ba70f){console['log'](_0xf6a3('0x72')+_0x5ba70f);var _0x31e7c4=_0x190cd8['query'][_0xf6a3('0x73')]?0x1f4:_0x5ba70f[_0xf6a3('0x74')]||0x1f4;logger['error'](_0xf6a3('0x75'),_0xf6a3('0x54'),_0x31e7c4,JSON[_0xf6a3('0x76')](_0x5ba70f));delete _0x5ba70f[_0xf6a3('0x25')];if(_0x31e7c4===0x191){_0x31e7c4=0x190;}_0x5a0027[_0xf6a3('0x16')](_0x31e7c4)[_0xf6a3('0x26')](_0x190cd8[_0xf6a3('0x2d')][_0xf6a3('0x73')]?{'message':'Wrong\x20credentials','statusCode':_0x5ba70f[_0xf6a3('0x74')]}:_0x5ba70f);});};
\ No newline at end of file
+var _0x796d=['status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','stack','name','send','index','map','VtigerAccount','rawAttributes','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','pick','filter','merge','type','VIRTUAL','where','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','findOne','VtigerConfiguration','sort','getConfigurations','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerField','md5','getFields','username','description','moduleName','remoteUri','accessKey','slice','substring','format','%s/webservice.php','getchallenge','success','POST','login','result','GET','describe','autogenerated','owner','remove','includes','editable','false','label','startsWith','cf_','picklist','picklistValues','value','log','test','error','getFields,\x20%s,\x20%s,\x20%s','eml-format','fast-json-patch','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus'];(function(_0x13f1b8,_0xa90172){var _0x3bb9cd=function(_0x5326d7){while(--_0x5326d7){_0x13f1b8['push'](_0x13f1b8['shift']());}};_0x3bb9cd(++_0xa90172);}(_0x796d,0x148));var _0xd796=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0x796d[_0x47e7cb];return _0x2a8874;};'use strict';var emlformat=require(_0xd796('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xd796('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd796('0x2'));var Mustache=require(_0xd796('0x3'));var util=require(_0xd796('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0xd796('0x5'));var ejs=require(_0xd796('0x6'));var fs=require('fs');var fs_extra=require(_0xd796('0x7'));var _=require(_0xd796('0x8'));var squel=require(_0xd796('0x9'));var crypto=require(_0xd796('0xa'));var jsforce=require(_0xd796('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xd796('0x5'));var querystring=require('querystring');var Papa=require(_0xd796('0xc'));var Redis=require(_0xd796('0xd'));var authService=require(_0xd796('0xe'));var qs=require(_0xd796('0xf'));var as=require(_0xd796('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xd796('0x11'));var utils=require(_0xd796('0x12'));var config=require(_0xd796('0x13'));var licenseUtil=require(_0xd796('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0xd796('0x15'));function respondWithStatusCode(_0x51b98c,_0x29f42b){_0x29f42b=_0x29f42b||0xcc;return function(_0x3dae85){if(_0x3dae85){return _0x51b98c[_0xd796('0x16')](_0x29f42b);}return _0x51b98c[_0xd796('0x17')](_0x29f42b)[_0xd796('0x18')]();};}function respondWithResult(_0x1762de,_0xb3c0c4){_0xb3c0c4=_0xb3c0c4||0xc8;return function(_0x5c3090){if(_0x5c3090){return _0x1762de[_0xd796('0x17')](_0xb3c0c4)[_0xd796('0x19')](_0x5c3090);}};}function respondWithFilteredResult(_0x5b0a12,_0x5a5d4f){return function(_0x4a1315){if(_0x4a1315){var _0x583cf2=typeof _0x5a5d4f['offset']===_0xd796('0x1a')&&typeof _0x5a5d4f[_0xd796('0x1b')]===_0xd796('0x1a');var _0x2cb332=_0x4a1315[_0xd796('0x1c')];var _0x47a38a=_0x583cf2?0x0:_0x5a5d4f[_0xd796('0x1d')];var _0x3b6468=_0x583cf2?_0x4a1315[_0xd796('0x1c')]:_0x5a5d4f[_0xd796('0x1d')]+_0x5a5d4f['limit'];var _0x336eda;if(_0x3b6468>=_0x2cb332){_0x3b6468=_0x2cb332;_0x336eda=0xc8;}else{_0x336eda=0xce;}_0x5b0a12[_0xd796('0x17')](_0x336eda);return _0x5b0a12[_0xd796('0x1e')](_0xd796('0x1f'),_0x47a38a+'-'+_0x3b6468+'/'+_0x2cb332)[_0xd796('0x19')](_0x4a1315);}return null;};}function patchUpdates(_0x4f94ee){return function(_0x18b10a){try{jsonpatch[_0xd796('0x20')](_0x18b10a,_0x4f94ee,!![]);}catch(_0x2436c3){return BPromise[_0xd796('0x21')](_0x2436c3);}return _0x18b10a['save']();};}function saveUpdates(_0x349f96,_0x22ba91){return function(_0x5a769c){if(_0x5a769c){return _0x5a769c[_0xd796('0x22')](_0x349f96)[_0xd796('0x23')](function(_0x57ca8b){return _0x57ca8b;});}return null;};}function removeEntity(_0x52df3b,_0x62a05f){return function(_0x5502c8){if(_0x5502c8){return _0x5502c8[_0xd796('0x24')]()[_0xd796('0x23')](function(){_0x52df3b[_0xd796('0x17')](0xcc)[_0xd796('0x18')]();});}};}function handleEntityNotFound(_0xba05b2,_0x117a4f){return function(_0x520519){if(!_0x520519){_0xba05b2[_0xd796('0x16')](0x194);}return _0x520519;};}function handleError(_0x35dcd4,_0x3030db){_0x3030db=_0x3030db||0x1f4;return function(_0x65c7eb){logger['error'](_0x65c7eb[_0xd796('0x25')]);if(_0x65c7eb['name']){delete _0x65c7eb[_0xd796('0x26')];}_0x35dcd4['status'](_0x3030db)[_0xd796('0x27')](_0x65c7eb);};}exports[_0xd796('0x28')]=function(_0x3e29f1,_0x6107b2){var _0x5b1cfb={},_0x1cd46b={},_0x23edd3={'count':0x0,'rows':[]};var _0x38047f=_[_0xd796('0x29')](db[_0xd796('0x2a')][_0xd796('0x2b')],function(_0x12d059){return{'name':_0x12d059['fieldName'],'type':_0x12d059['type'][_0xd796('0x2c')]};});_0x1cd46b['model']=_[_0xd796('0x29')](_0x38047f,_0xd796('0x26'));_0x1cd46b[_0xd796('0x2d')]=_[_0xd796('0x2e')](_0x3e29f1[_0xd796('0x2d')]);_0x1cd46b[_0xd796('0x2f')]=_[_0xd796('0x30')](_0x1cd46b[_0xd796('0x31')],_0x1cd46b['query']);_0x5b1cfb[_0xd796('0x32')]=_[_0xd796('0x30')](_0x1cd46b['model'],qs['fields'](_0x3e29f1[_0xd796('0x2d')][_0xd796('0x33')]));_0x5b1cfb[_0xd796('0x32')]=_0x5b1cfb[_0xd796('0x32')][_0xd796('0x34')]?_0x5b1cfb[_0xd796('0x32')]:_0x1cd46b['model'];if(!_0x3e29f1[_0xd796('0x2d')][_0xd796('0x35')]('nolimit')){_0x5b1cfb['limit']=qs[_0xd796('0x1b')](_0x3e29f1[_0xd796('0x2d')]['limit']);_0x5b1cfb[_0xd796('0x1d')]=qs[_0xd796('0x1d')](_0x3e29f1[_0xd796('0x2d')][_0xd796('0x1d')]);}_0x5b1cfb[_0xd796('0x36')]=qs['sort'](_0x3e29f1[_0xd796('0x2d')]['sort']);_0x5b1cfb['where']=qs[_0xd796('0x2f')](_[_0xd796('0x37')](_0x3e29f1[_0xd796('0x2d')],_0x1cd46b['filters']),_0x38047f);if(_0x3e29f1[_0xd796('0x2d')][_0xd796('0x38')]){_0x5b1cfb['where']=_[_0xd796('0x39')](_0x5b1cfb['where'],{'$or':_[_0xd796('0x29')](_0x38047f,function(_0x17b6dd){if(_0x17b6dd[_0xd796('0x3a')]!==_0xd796('0x3b')){var _0x7f9c2={};_0x7f9c2[_0x17b6dd[_0xd796('0x26')]]={'$like':'%'+_0x3e29f1['query'][_0xd796('0x38')]+'%'};return _0x7f9c2;}})});}_0x5b1cfb=_[_0xd796('0x39')]({},_0x5b1cfb,_0x3e29f1['options']);var _0x3e3bd9={'where':_0x5b1cfb[_0xd796('0x3c')]};return db[_0xd796('0x2a')][_0xd796('0x1c')](_0x3e3bd9)[_0xd796('0x23')](function(_0x38c11d){_0x23edd3[_0xd796('0x1c')]=_0x38c11d;if(_0x3e29f1['query'][_0xd796('0x3d')]){_0x5b1cfb[_0xd796('0x3e')]=[{'all':!![]}];}return db[_0xd796('0x2a')][_0xd796('0x3f')](_0x5b1cfb);})['then'](function(_0x2218a1){_0x23edd3[_0xd796('0x40')]=_0x2218a1;return _0x23edd3;})['then'](respondWithFilteredResult(_0x6107b2,_0x5b1cfb))[_0xd796('0x41')](handleError(_0x6107b2,null));};exports[_0xd796('0x42')]=function(_0x128286,_0x2fccd2){var _0x3d1b3c={'raw':![],'where':{'id':_0x128286[_0xd796('0x43')]['id']}},_0x39148c={};_0x39148c[_0xd796('0x31')]=_[_0xd796('0x2e')](db[_0xd796('0x2a')][_0xd796('0x2b')]);_0x39148c['query']=_[_0xd796('0x2e')](_0x128286[_0xd796('0x2d')]);_0x39148c[_0xd796('0x2f')]=_[_0xd796('0x30')](_0x39148c[_0xd796('0x31')],_0x39148c[_0xd796('0x2d')]);_0x3d1b3c[_0xd796('0x32')]=_[_0xd796('0x30')](_0x39148c['model'],qs[_0xd796('0x33')](_0x128286['query'][_0xd796('0x33')]));_0x3d1b3c['attributes']=_0x3d1b3c[_0xd796('0x32')][_0xd796('0x34')]?_0x3d1b3c[_0xd796('0x32')]:_0x39148c[_0xd796('0x31')];if(_0x128286[_0xd796('0x2d')][_0xd796('0x3d')]){_0x3d1b3c[_0xd796('0x3e')]=[{'all':!![]}];}_0x3d1b3c=_[_0xd796('0x39')]({},_0x3d1b3c,_0x128286[_0xd796('0x44')]);return db['VtigerAccount'][_0xd796('0x45')](_0x3d1b3c)[_0xd796('0x23')](handleEntityNotFound(_0x2fccd2,null))[_0xd796('0x23')](respondWithResult(_0x2fccd2,null))['catch'](handleError(_0x2fccd2,null));};exports['create']=function(_0x1e8991,_0x1744eb){return db['VtigerAccount'][_0xd796('0x46')](_0x1e8991[_0xd796('0x47')],{})[_0xd796('0x23')](respondWithResult(_0x1744eb,0xc9))['catch'](handleError(_0x1744eb,null));};exports['update']=function(_0x39947d,_0x488934){if(_0x39947d[_0xd796('0x47')]['id']){delete _0x39947d[_0xd796('0x47')]['id'];}return db[_0xd796('0x2a')]['find']({'where':{'id':_0x39947d['params']['id']}})[_0xd796('0x23')](handleEntityNotFound(_0x488934,null))[_0xd796('0x23')](saveUpdates(_0x39947d['body'],null))['then'](respondWithResult(_0x488934,null))[_0xd796('0x41')](handleError(_0x488934,null));};exports['destroy']=function(_0x27ff74,_0x11faec){return db[_0xd796('0x2a')][_0xd796('0x45')]({'where':{'id':_0x27ff74[_0xd796('0x43')]['id']}})['then'](handleEntityNotFound(_0x11faec,null))[_0xd796('0x23')](removeEntity(_0x11faec,null))['catch'](handleError(_0x11faec,null));};exports['getConfigurations']=function(_0x426679,_0x58c08a,_0x484b10){var _0x2df234={};var _0xc30ab4={};var _0x43b333;var _0x9e5f2c;return db[_0xd796('0x2a')][_0xd796('0x48')]({'where':{'id':_0x426679[_0xd796('0x43')]['id']}})[_0xd796('0x23')](handleEntityNotFound(_0x58c08a,null))[_0xd796('0x23')](function(_0x295204){if(_0x295204){_0x43b333=_0x295204;_0xc30ab4[_0xd796('0x31')]=_['keys'](db[_0xd796('0x49')][_0xd796('0x2b')]);_0xc30ab4[_0xd796('0x2d')]=_[_0xd796('0x2e')](_0x426679[_0xd796('0x2d')]);_0xc30ab4['filters']=_[_0xd796('0x30')](_0xc30ab4[_0xd796('0x31')],_0xc30ab4[_0xd796('0x2d')]);_0x2df234[_0xd796('0x32')]=_['intersection'](_0xc30ab4[_0xd796('0x31')],qs[_0xd796('0x33')](_0x426679[_0xd796('0x2d')][_0xd796('0x33')]));_0x2df234[_0xd796('0x32')]=_0x2df234[_0xd796('0x32')][_0xd796('0x34')]?_0x2df234[_0xd796('0x32')]:_0xc30ab4[_0xd796('0x31')];_0x2df234[_0xd796('0x36')]=qs[_0xd796('0x4a')](_0x426679[_0xd796('0x2d')][_0xd796('0x4a')]);_0x2df234[_0xd796('0x3c')]=qs[_0xd796('0x2f')](_[_0xd796('0x37')](_0x426679['query'],_0xc30ab4[_0xd796('0x2f')]));if(_0x426679[_0xd796('0x2d')]['filter']){_0x2df234[_0xd796('0x3c')]=_['merge'](_0x2df234[_0xd796('0x3c')],{'$or':_[_0xd796('0x29')](_0x2df234[_0xd796('0x32')],function(_0x40fd3b){var _0x4d6b37={};_0x4d6b37[_0x40fd3b]={'$like':'%'+_0x426679[_0xd796('0x2d')][_0xd796('0x38')]+'%'};return _0x4d6b37;})});}_0x2df234=_[_0xd796('0x39')]({},_0x2df234,_0x426679[_0xd796('0x44')]);return _0x43b333[_0xd796('0x4b')](_0x2df234);}})['then'](function(_0x532fb0){if(_0x532fb0){_0x9e5f2c=_0x532fb0['length'];if(!_0x426679[_0xd796('0x2d')][_0xd796('0x35')]('nolimit')){_0x2df234[_0xd796('0x1b')]=qs['limit'](_0x426679[_0xd796('0x2d')][_0xd796('0x1b')]);_0x2df234[_0xd796('0x1d')]=qs[_0xd796('0x1d')](_0x426679['query'][_0xd796('0x1d')]);}return _0x43b333[_0xd796('0x4b')](_0x2df234);}})[_0xd796('0x23')](function(_0x1d7146){if(_0x1d7146){return _0x1d7146?{'count':_0x9e5f2c,'rows':_0x1d7146}:null;}})[_0xd796('0x23')](respondWithResult(_0x58c08a,null))[_0xd796('0x41')](handleError(_0x58c08a,null));};exports['addConfiguration']=function(_0x27a431,_0x4ed672,_0x7e9aab){if(_0x27a431['body']['id']){delete _0x27a431[_0xd796('0x47')]['id'];}return db[_0xd796('0x2a')]['findOne']({'where':{'id':_0x27a431[_0xd796('0x43')]['id']}})[_0xd796('0x23')](handleEntityNotFound(_0x4ed672,null))[_0xd796('0x23')](function(_0x44bcfc){if(_0x44bcfc){_0x27a431['body'][_0xd796('0x4c')]=_0x44bcfc['id'];_0x27a431[_0xd796('0x47')][_0xd796('0x4d')]=integrations[_0xd796('0x4e')](_0x27a431[_0xd796('0x47')][_0xd796('0x4f')],_0x27a431['body'][_0xd796('0x3a')]);_0x27a431[_0xd796('0x47')][_0xd796('0x50')]=integrations[_0xd796('0x51')](_0x27a431[_0xd796('0x47')]['channel'],_0x27a431[_0xd796('0x47')][_0xd796('0x3a')]);return db[_0xd796('0x49')][_0xd796('0x46')](_0x27a431[_0xd796('0x47')],{'include':[{'model':db[_0xd796('0x52')],'as':_0xd796('0x4d')},{'model':db[_0xd796('0x52')],'as':'Descriptions'}]});}return null;})[_0xd796('0x23')](respondWithResult(_0x4ed672,null))[_0xd796('0x41')](handleError(_0x4ed672,null));};var md5=require(_0xd796('0x53'));exports[_0xd796('0x54')]=function(_0x49d167,_0x24dfb7,_0xb77b50){var _0x542925=null;var _0x298e67=null;var _0x2747f1=null;var _0x3a7494=null;var _0x8152b3='';return db[_0xd796('0x2a')]['findOne']({'where':{'id':_0x49d167[_0xd796('0x43')]['id']},'attributes':['id',_0xd796('0x26'),_0xd796('0x55'),_0xd796('0x56'),_0xd796('0x57'),_0xd796('0x58'),'serverUrl',_0xd796('0x59')]})['then'](handleEntityNotFound(_0x24dfb7,null))[_0xd796('0x23')](function(_0x10bf3a){if(_0x10bf3a){_0x542925=_0x10bf3a['username'];_0x298e67=_0x10bf3a[_0xd796('0x59')];_0x2747f1=_0x10bf3a[_0xd796('0x57')];_0x8152b3=_0x10bf3a[_0xd796('0x58')];var _0x4f62af=_0x8152b3[_0xd796('0x5a')](-0x1);if(_0x4f62af==='/'){_0x8152b3=_0x8152b3[_0xd796('0x5b')](0x0,_0x8152b3['lastIndexOf'](_0x4f62af));}_0x3a7494=util[_0xd796('0x5c')](_0xd796('0x5d'),_0x8152b3);var _0x287cdb={'method':'GET','uri':_0x3a7494,'qs':{'operation':_0xd796('0x5e'),'username':_0x10bf3a['username']},'json':!![]};return rp(_0x287cdb);}})[_0xd796('0x23')](function(_0x33a72d){if(_0x33a72d[_0xd796('0x5f')]){var _0x15f035={'method':_0xd796('0x60'),'uri':_0x3a7494,'form':{'operation':_0xd796('0x61'),'username':_0x542925,'accessKey':md5(_0x33a72d[_0xd796('0x62')]['token']+_0x298e67)},'json':!![]};return rp(_0x15f035);}})[_0xd796('0x23')](function(_0x526971){if(_0x526971['success']){var _0x4d8e57={'method':_0xd796('0x63'),'uri':_0x3a7494,'qs':{'operation':_0xd796('0x64'),'username':_0x542925,'sessionName':_0x526971[_0xd796('0x62')]['sessionName'],'elementType':_0x2747f1},'json':!![]};return rp(_0x4d8e57);}})[_0xd796('0x23')](function(_0x5e5939){if(_0x5e5939[_0xd796('0x5f')]){var _0x1f02ed=[_0xd796('0x65'),'reference',_0xd796('0x66')];_[_0xd796('0x67')](_0x5e5939[_0xd796('0x62')][_0xd796('0x33')],function(_0x345bd8){return _0x1f02ed[_0xd796('0x68')](_0x345bd8[_0xd796('0x3a')]['name']);});_[_0xd796('0x67')](_0x5e5939['result']['fields'],function(_0x7c0cb8){return _0x7c0cb8[_0xd796('0x69')]===_0xd796('0x6a');});return{'count':_0x5e5939['result'][_0xd796('0x33')][_0xd796('0x34')],'rows':_[_0xd796('0x29')](_0x5e5939[_0xd796('0x62')][_0xd796('0x33')],function(_0x4800f1){return{'id':_0x4800f1[_0xd796('0x26')],'name':_0x4800f1[_0xd796('0x6b')],'custom':_[_0xd796('0x6c')](_0x4800f1['name'],_0xd796('0x6d'))?!![]:![],'options':_0x4800f1[_0xd796('0x3a')][_0xd796('0x26')]===_0xd796('0x6e')&&_0x4800f1[_0xd796('0x3a')][_0xd796('0x6f')][_0xd796('0x34')]>0x0?_['map'](_0x4800f1[_0xd796('0x3a')][_0xd796('0x6f')],function(_0x2ca668){return{'name':_0x2ca668['label'],'value':_0x2ca668[_0xd796('0x70')]};}):[]};})};}})['then'](respondWithResult(_0x24dfb7,null))[_0xd796('0x41')](function(_0x59139c){console[_0xd796('0x71')]('vTiger\x20error:\x20'+_0x59139c);var _0x1a8b23=_0x49d167[_0xd796('0x2d')][_0xd796('0x72')]?0x1f4:_0x59139c['statusCode']||0x1f4;logger[_0xd796('0x73')](_0xd796('0x74'),_0xd796('0x54'),_0x1a8b23,JSON['stringify'](_0x59139c));delete _0x59139c[_0xd796('0x26')];if(_0x1a8b23===0x191){_0x1a8b23=0x190;}_0x24dfb7['status'](_0x1a8b23)[_0xd796('0x27')](_0x49d167['query'][_0xd796('0x72')]?{'message':'Wrong\x20credentials','statusCode':_0x59139c['statusCode']}:_0x59139c);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb212=['bluebird','request-promise','path','../../config/environment','./intVtigerAccount.attributes','../../components/integrations/configuration','exports','int_vtiger_accounts','lodash','util','../../config/logger','moment'];(function(_0x4f680e,_0x4e0780){var _0x1d3b6a=function(_0xf695ae){while(--_0xf695ae){_0x4f680e['push'](_0x4f680e['shift']());}};_0x1d3b6a(++_0x4e0780);}(_0xb212,0x17c));var _0x2b21=function(_0x3b031a,_0x4f6b74){_0x3b031a=_0x3b031a-0x0;var _0x8fc0e4=_0xb212[_0x3b031a];return _0x8fc0e4;};'use strict';var _=require(_0x2b21('0x0'));var util=require(_0x2b21('0x1'));var logger=require(_0x2b21('0x2'))('api');var moment=require(_0x2b21('0x3'));var BPromise=require(_0x2b21('0x4'));var rp=require(_0x2b21('0x5'));var fs=require('fs');var path=require(_0x2b21('0x6'));var rimraf=require('rimraf');var config=require(_0x2b21('0x7'));var attributes=require(_0x2b21('0x8'));var integrations=require(_0x2b21('0x9'));module[_0x2b21('0xa')]=function(_0x3b7301,_0x47a2ea){return _0x3b7301['define']('VtigerAccount',attributes,{'tableName':_0x2b21('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3a24=['../../components/integrations/configuration','exports','define','VtigerAccount','int_vtiger_accounts','lodash','util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','./intVtigerAccount.attributes'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x3a24,0x1ef));var _0x43a2=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x3a24[_0x13d07a];return _0x5ee0ee;};'use strict';var _=require(_0x43a2('0x0'));var util=require(_0x43a2('0x1'));var logger=require(_0x43a2('0x2'))(_0x43a2('0x3'));var moment=require('moment');var BPromise=require(_0x43a2('0x4'));var rp=require(_0x43a2('0x5'));var fs=require('fs');var path=require(_0x43a2('0x6'));var rimraf=require('rimraf');var config=require(_0x43a2('0x7'));var attributes=require(_0x43a2('0x8'));var integrations=require(_0x43a2('0x9'));module[_0x43a2('0xa')]=function(_0x518378,_0x280e8e){return _0x518378[_0x43a2('0xb')](_0x43a2('0xc'),attributes,{'tableName':_0x43a2('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0102=['util','moment','bluebird','randomstring','../../config/environment','jayson/promise','client','http','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetVtigerAccount','findAll','options','raw','where','attributes','include','model','map','find','ShowVtigerAccount'];(function(_0x4420b6,_0x5e5d0c){var _0x4e4151=function(_0x883a32){while(--_0x883a32){_0x4420b6['push'](_0x4420b6['shift']());}};_0x4e4151(++_0x5e5d0c);}(_0x0102,0x186));var _0x2010=function(_0x2ddc9d,_0x220f1f){_0x2ddc9d=_0x2ddc9d-0x0;var _0x375126=_0x0102[_0x2ddc9d];return _0x375126;};'use strict';var _=require('lodash');var util=require(_0x2010('0x0'));var moment=require(_0x2010('0x1'));var BPromise=require(_0x2010('0x2'));var rs=require(_0x2010('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x2010('0x4'));var jayson=require(_0x2010('0x5'));var client=jayson[_0x2010('0x6')][_0x2010('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x4eeb67,_0x453fc0,_0x495d98){return new BPromise(function(_0x4728c0,_0x160e41){return client['request'](_0x4eeb67,_0x495d98)[_0x2010('0x8')](function(_0x3c2d98){logger[_0x2010('0x9')](_0x2010('0xa'),_0x453fc0,_0x2010('0xb'));logger[_0x2010('0xc')](_0x2010('0xd'),_0x453fc0,_0x2010('0xb'),JSON[_0x2010('0xe')](_0x3c2d98));if(_0x3c2d98[_0x2010('0xf')]){if(_0x3c2d98[_0x2010('0xf')][_0x2010('0x10')]===0x1f4){logger[_0x2010('0xf')](_0x2010('0xa'),_0x453fc0,_0x3c2d98[_0x2010('0xf')][_0x2010('0x11')]);return _0x160e41(_0x3c2d98['error']['message']);}logger[_0x2010('0xf')](_0x2010('0xa'),_0x453fc0,_0x3c2d98[_0x2010('0xf')][_0x2010('0x11')]);return _0x4728c0(_0x3c2d98[_0x2010('0xf')][_0x2010('0x11')]);}else{logger['info'](_0x2010('0xa'),_0x453fc0,_0x2010('0xb'));_0x4728c0(_0x3c2d98['result'][_0x2010('0x11')]);}})[_0x2010('0x12')](function(_0x410889){logger[_0x2010('0xf')](_0x2010('0xa'),_0x453fc0,_0x410889);_0x160e41(_0x410889);});});}exports[_0x2010('0x13')]=function(_0x83cd35){var _0x1476c0=this;return new Promise(function(_0x309477,_0x569de2){return db['VtigerAccount'][_0x2010('0x14')]({'raw':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')][_0x2010('0x16')]===undefined?!![]:![]:!![],'where':_0x83cd35['options']?_0x83cd35['options'][_0x2010('0x17')]||null:null,'attributes':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')][_0x2010('0x18')]||null:null,'limit':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')]['limit']||null:null,'include':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')]['include']?_['map'](_0x83cd35['options'][_0x2010('0x19')],function(_0x574719){return{'model':db[_0x574719[_0x2010('0x1a')]],'as':_0x574719['as'],'attributes':_0x574719['attributes'],'include':_0x574719['include']?_[_0x2010('0x1b')](_0x574719[_0x2010('0x19')],function(_0x52b4fe){return{'model':db[_0x52b4fe[_0x2010('0x1a')]],'as':_0x52b4fe['as'],'attributes':_0x52b4fe['attributes'],'include':_0x52b4fe[_0x2010('0x19')]?_[_0x2010('0x1b')](_0x52b4fe[_0x2010('0x19')],function(_0x3dcea4){return{'model':db[_0x3dcea4[_0x2010('0x1a')]],'as':_0x3dcea4['as'],'attributes':_0x3dcea4[_0x2010('0x18')]};}):[]};}):[]};}):[]:[]})[_0x2010('0x8')](function(_0x3eb4dc){logger[_0x2010('0x9')](_0x2010('0x13'),_0x83cd35);logger[_0x2010('0xc')](_0x2010('0x13'),_0x83cd35,JSON['stringify'](_0x3eb4dc));_0x309477(_0x3eb4dc);})[_0x2010('0x12')](function(_0x52fe5e){logger[_0x2010('0xf')](_0x2010('0x13'),_0x52fe5e[_0x2010('0x11')],_0x83cd35);_0x569de2(_0x1476c0[_0x2010('0xf')](0x1f4,_0x52fe5e['message']));});});};exports['ShowVtigerAccount']=function(_0x136d5f){var _0x48d9f2=this;return new Promise(function(_0x2839f2,_0x1d5d7a){return db['VtigerAccount'][_0x2010('0x1c')]({'raw':_0x136d5f[_0x2010('0x15')]?_0x136d5f[_0x2010('0x15')][_0x2010('0x16')]===undefined?!![]:![]:!![],'where':_0x136d5f[_0x2010('0x15')]?_0x136d5f['options'][_0x2010('0x17')]||null:null,'attributes':_0x136d5f[_0x2010('0x15')]?_0x136d5f[_0x2010('0x15')]['attributes']||null:null,'include':_0x136d5f['options']?_0x136d5f[_0x2010('0x15')][_0x2010('0x19')]?_[_0x2010('0x1b')](_0x136d5f['options']['include'],function(_0xac64e1){return{'model':db[_0xac64e1[_0x2010('0x1a')]],'as':_0xac64e1['as'],'attributes':_0xac64e1[_0x2010('0x18')],'include':_0xac64e1[_0x2010('0x19')]?_[_0x2010('0x1b')](_0xac64e1['include'],function(_0x569e13){return{'model':db[_0x569e13['model']],'as':_0x569e13['as'],'attributes':_0x569e13[_0x2010('0x18')],'include':_0x569e13[_0x2010('0x19')]?_[_0x2010('0x1b')](_0x569e13['include'],function(_0x1f7f49){return{'model':db[_0x1f7f49[_0x2010('0x1a')]],'as':_0x1f7f49['as'],'attributes':_0x1f7f49[_0x2010('0x18')]};}):[]};}):[]};}):[]:[]})[_0x2010('0x8')](function(_0x4f5106){logger[_0x2010('0x9')](_0x2010('0x1d'),_0x136d5f);logger[_0x2010('0xc')]('ShowVtigerAccount',_0x136d5f,JSON[_0x2010('0xe')](_0x4f5106));_0x2839f2(_0x4f5106);})['catch'](function(_0x13f88a){logger[_0x2010('0xf')](_0x2010('0x1d'),_0x13f88a[_0x2010('0x11')],_0x136d5f);_0x1d5d7a(_0x48d9f2[_0x2010('0xf')](0x1f4,_0x13f88a[_0x2010('0x11')]));});});};
\ No newline at end of file
+var _0x91a7=['VtigerAccount,\x20%s,\x20%s','catch','GetVtigerAccount','options','raw','where','attributes','limit','include','map','model','ShowVtigerAccount','VtigerAccount','find','util','moment','bluebird','ioredis','../../config/utils','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','stringify','error','code','message'];(function(_0x65834e,_0x5e8872){var _0x26a46f=function(_0x44bbed){while(--_0x44bbed){_0x65834e['push'](_0x65834e['shift']());}};_0x26a46f(++_0x5e8872);}(_0x91a7,0xe7));var _0x791a=function(_0xf62717,_0x3f7c11){_0xf62717=_0xf62717-0x0;var _0x9f6b9d=_0x91a7[_0xf62717];return _0x9f6b9d;};'use strict';var _=require('lodash');var util=require(_0x791a('0x0'));var moment=require(_0x791a('0x1'));var BPromise=require(_0x791a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x791a('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x791a('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x791a('0x5'));var jayson=require(_0x791a('0x6'));var client=jayson['client'][_0x791a('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5db6db,_0x33baac,_0x159e24){return new BPromise(function(_0x5aa10a,_0x1a32b4){return client[_0x791a('0x8')](_0x5db6db,_0x159e24)[_0x791a('0x9')](function(_0x80ff65){logger[_0x791a('0xa')]('VtigerAccount,\x20%s,\x20%s',_0x33baac,_0x791a('0xb'));logger[_0x791a('0xc')]('VtigerAccount,\x20%s,\x20%s,\x20%s',_0x33baac,_0x791a('0xb'),JSON[_0x791a('0xd')](_0x80ff65));if(_0x80ff65[_0x791a('0xe')]){if(_0x80ff65[_0x791a('0xe')][_0x791a('0xf')]===0x1f4){logger[_0x791a('0xe')]('VtigerAccount,\x20%s,\x20%s',_0x33baac,_0x80ff65['error'][_0x791a('0x10')]);return _0x1a32b4(_0x80ff65[_0x791a('0xe')]['message']);}logger[_0x791a('0xe')](_0x791a('0x11'),_0x33baac,_0x80ff65['error'][_0x791a('0x10')]);return _0x5aa10a(_0x80ff65[_0x791a('0xe')][_0x791a('0x10')]);}else{logger[_0x791a('0xa')]('VtigerAccount,\x20%s,\x20%s',_0x33baac,_0x791a('0xb'));_0x5aa10a(_0x80ff65['result'][_0x791a('0x10')]);}})[_0x791a('0x12')](function(_0x49ae3e){logger[_0x791a('0xe')]('VtigerAccount,\x20%s,\x20%s',_0x33baac,_0x49ae3e);_0x1a32b4(_0x49ae3e);});});}exports[_0x791a('0x13')]=function(_0x52941d){var _0x4a84ee=this;return new Promise(function(_0x588d00,_0x40f0d3){return db['VtigerAccount']['findAll']({'raw':_0x52941d[_0x791a('0x14')]?_0x52941d[_0x791a('0x14')][_0x791a('0x15')]===undefined?!![]:![]:!![],'where':_0x52941d[_0x791a('0x14')]?_0x52941d['options'][_0x791a('0x16')]||null:null,'attributes':_0x52941d[_0x791a('0x14')]?_0x52941d[_0x791a('0x14')][_0x791a('0x17')]||null:null,'limit':_0x52941d['options']?_0x52941d[_0x791a('0x14')][_0x791a('0x18')]||null:null,'include':_0x52941d[_0x791a('0x14')]?_0x52941d[_0x791a('0x14')][_0x791a('0x19')]?_[_0x791a('0x1a')](_0x52941d[_0x791a('0x14')][_0x791a('0x19')],function(_0x323c6a){return{'model':db[_0x323c6a[_0x791a('0x1b')]],'as':_0x323c6a['as'],'attributes':_0x323c6a[_0x791a('0x17')],'include':_0x323c6a['include']?_[_0x791a('0x1a')](_0x323c6a[_0x791a('0x19')],function(_0x380329){return{'model':db[_0x380329[_0x791a('0x1b')]],'as':_0x380329['as'],'attributes':_0x380329['attributes'],'include':_0x380329[_0x791a('0x19')]?_[_0x791a('0x1a')](_0x380329['include'],function(_0xdfa84f){return{'model':db[_0xdfa84f[_0x791a('0x1b')]],'as':_0xdfa84f['as'],'attributes':_0xdfa84f[_0x791a('0x17')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x29194d){logger[_0x791a('0xa')](_0x791a('0x13'),_0x52941d);logger[_0x791a('0xc')](_0x791a('0x13'),_0x52941d,JSON[_0x791a('0xd')](_0x29194d));_0x588d00(_0x29194d);})[_0x791a('0x12')](function(_0x889534){logger['error'](_0x791a('0x13'),_0x889534[_0x791a('0x10')],_0x52941d);_0x40f0d3(_0x4a84ee[_0x791a('0xe')](0x1f4,_0x889534['message']));});});};exports[_0x791a('0x1c')]=function(_0x5df656){var _0xc59f5e=this;return new Promise(function(_0x2e4ec8,_0xcde862){return db[_0x791a('0x1d')][_0x791a('0x1e')]({'raw':_0x5df656[_0x791a('0x14')]?_0x5df656[_0x791a('0x14')]['raw']===undefined?!![]:![]:!![],'where':_0x5df656[_0x791a('0x14')]?_0x5df656[_0x791a('0x14')][_0x791a('0x16')]||null:null,'attributes':_0x5df656[_0x791a('0x14')]?_0x5df656[_0x791a('0x14')]['attributes']||null:null,'include':_0x5df656[_0x791a('0x14')]?_0x5df656[_0x791a('0x14')][_0x791a('0x19')]?_[_0x791a('0x1a')](_0x5df656[_0x791a('0x14')]['include'],function(_0x305836){return{'model':db[_0x305836[_0x791a('0x1b')]],'as':_0x305836['as'],'attributes':_0x305836[_0x791a('0x17')],'include':_0x305836[_0x791a('0x19')]?_[_0x791a('0x1a')](_0x305836['include'],function(_0xd5609){return{'model':db[_0xd5609['model']],'as':_0xd5609['as'],'attributes':_0xd5609[_0x791a('0x17')],'include':_0xd5609['include']?_['map'](_0xd5609[_0x791a('0x19')],function(_0x404530){return{'model':db[_0x404530[_0x791a('0x1b')]],'as':_0x404530['as'],'attributes':_0x404530[_0x791a('0x17')]};}):[]};}):[]};}):[]:[]})[_0x791a('0x9')](function(_0x3f46be){logger[_0x791a('0xa')]('ShowVtigerAccount',_0x5df656);logger[_0x791a('0xc')]('ShowVtigerAccount',_0x5df656,JSON[_0x791a('0xd')](_0x3f46be));_0x2e4ec8(_0x3f46be);})['catch'](function(_0x25e8cc){logger[_0x791a('0xe')]('ShowVtigerAccount',_0x25e8cc[_0x791a('0x10')],_0x5df656);_0xcde862(_0xc59f5e[_0x791a('0xe')](0x1f4,_0x25e8cc['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a36=['/:id','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','get'];(function(_0x2ef61c,_0x385952){var _0xe78068=function(_0x294b35){while(--_0x294b35){_0x2ef61c['push'](_0x2ef61c['shift']());}};_0xe78068(++_0x385952);}(_0x4a36,0x1e9));var _0x64a3=function(_0x1afce8,_0x118f37){_0x1afce8=_0x1afce8-0x0;var _0x4cc4bd=_0x4a36[_0x1afce8];return _0x4cc4bd;};'use strict';var multer=require(_0x64a3('0x0'));var util=require(_0x64a3('0x1'));var path=require(_0x64a3('0x2'));var timeout=require(_0x64a3('0x3'));var express=require(_0x64a3('0x4'));var router=express[_0x64a3('0x5')]();var fs_extra=require(_0x64a3('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x64a3('0x7'));var config=require(_0x64a3('0x8'));var controller=require('./intVtigerConfiguration.controller');router['get']('/',auth[_0x64a3('0x9')](),controller['index']);router[_0x64a3('0xa')](_0x64a3('0xb'),auth['isAuthenticated'](),controller[_0x64a3('0xc')]);router['get'](_0x64a3('0xd'),auth[_0x64a3('0x9')](),controller['getFields']);router['get'](_0x64a3('0xe'),auth[_0x64a3('0x9')](),controller[_0x64a3('0xf')]);router[_0x64a3('0xa')](_0x64a3('0x10'),auth['isAuthenticated'](),controller[_0x64a3('0x11')]);router[_0x64a3('0x12')]('/',auth[_0x64a3('0x9')](),controller[_0x64a3('0x13')]);router[_0x64a3('0x14')](_0x64a3('0xb'),auth['isAuthenticated'](),controller[_0x64a3('0x15')]);router[_0x64a3('0x16')](_0x64a3('0xb'),auth['isAuthenticated'](),controller[_0x64a3('0x17')]);module[_0x64a3('0x18')]=router;
\ No newline at end of file
+var _0x9800=['/:id','show','/:id/fields','getFields','getSubjects','/:id/descriptions','post','put','update','delete','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index'];(function(_0x3f4a9b,_0x31386f){var _0x54ea77=function(_0x197e56){while(--_0x197e56){_0x3f4a9b['push'](_0x3f4a9b['shift']());}};_0x54ea77(++_0x31386f);}(_0x9800,0x164));var _0x0980=function(_0xa6d7da,_0x3042fd){_0xa6d7da=_0xa6d7da-0x0;var _0x4f6754=_0x9800[_0xa6d7da];return _0x4f6754;};'use strict';var multer=require(_0x0980('0x0'));var util=require(_0x0980('0x1'));var path=require(_0x0980('0x2'));var timeout=require('connect-timeout');var express=require(_0x0980('0x3'));var router=express[_0x0980('0x4')]();var fs_extra=require(_0x0980('0x5'));var auth=require(_0x0980('0x6'));var interaction=require(_0x0980('0x7'));var config=require(_0x0980('0x8'));var controller=require('./intVtigerConfiguration.controller');router[_0x0980('0x9')]('/',auth[_0x0980('0xa')](),controller[_0x0980('0xb')]);router[_0x0980('0x9')](_0x0980('0xc'),auth['isAuthenticated'](),controller[_0x0980('0xd')]);router[_0x0980('0x9')](_0x0980('0xe'),auth['isAuthenticated'](),controller[_0x0980('0xf')]);router['get']('/:id/subjects',auth[_0x0980('0xa')](),controller[_0x0980('0x10')]);router[_0x0980('0x9')](_0x0980('0x11'),auth[_0x0980('0xa')](),controller['getDescriptions']);router[_0x0980('0x12')]('/',auth[_0x0980('0xa')](),controller['create']);router[_0x0980('0x13')]('/:id',auth[_0x0980('0xa')](),controller[_0x0980('0x14')]);router[_0x0980('0x15')](_0x0980('0xc'),auth[_0x0980('0xa')](),controller['destroy']);module[_0x0980('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b03=['sequelize','exports','STRING'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x2b03,0x1d1));var _0x32b0=function(_0xbc65c,_0x502016){_0xbc65c=_0xbc65c-0x0;var _0x24f297=_0x2b03[_0xbc65c];return _0x24f297;};'use strict';var Sequelize=require(_0x32b0('0x0'));module[_0x32b0('0x1')]={'name':{'type':Sequelize[_0x32b0('0x2')]},'description':{'type':Sequelize[_0x32b0('0x2')]}};
\ No newline at end of file
+var _0xc041=['sequelize','STRING'];(function(_0x57fa5c,_0x22d1e7){var _0x270ebe=function(_0xf97a43){while(--_0xf97a43){_0x57fa5c['push'](_0x57fa5c['shift']());}};_0x270ebe(++_0x22d1e7);}(_0xc041,0x82));var _0x1c04=function(_0x536128,_0x205e2b){_0x536128=_0x536128-0x0;var _0x19eb75=_0xc041[_0x536128];return _0x19eb75;};'use strict';var Sequelize=require(_0x1c04('0x0'));module['exports']={'name':{'type':Sequelize[_0x1c04('0x1')]},'description':{'type':Sequelize[_0x1c04('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95c0=['query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','VtigerConfiguration','include','findAll','rows','catch','show','includeAll','options','find','create','body','params','destroy','getFields','findOne','getSubjects','VtigerField','getDescriptions','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','sendStatus','stack','name','send','rawAttributes','fieldName','model','map'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x95c0,0x74));var _0x095c=function(_0x4887b7,_0x4367f5){_0x4887b7=_0x4887b7-0x0;var _0x541e58=_0x95c0[_0x4887b7];return _0x541e58;};'use strict';var emlformat=require(_0x095c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x095c('0x1'));var jsonpatch=require(_0x095c('0x2'));var rp=require('request-promise');var moment=require(_0x095c('0x3'));var BPromise=require(_0x095c('0x4'));var Mustache=require(_0x095c('0x5'));var util=require(_0x095c('0x6'));var path=require('path');var sox=require(_0x095c('0x7'));var csv=require(_0x095c('0x8'));var ejs=require(_0x095c('0x9'));var fs=require('fs');var fs_extra=require(_0x095c('0xa'));var _=require(_0x095c('0xb'));var squel=require(_0x095c('0xc'));var crypto=require('crypto');var jsforce=require(_0x095c('0xd'));var deskjs=require(_0x095c('0xe'));var toCsv=require(_0x095c('0x8'));var querystring=require(_0x095c('0xf'));var Papa=require('papaparse');var Redis=require(_0x095c('0x10'));var authService=require(_0x095c('0x11'));var qs=require(_0x095c('0x12'));var as=require(_0x095c('0x13'));var hardwareService=require(_0x095c('0x14'));var logger=require(_0x095c('0x15'))(_0x095c('0x16'));var utils=require(_0x095c('0x17'));var config=require(_0x095c('0x18'));var licenseUtil=require(_0x095c('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2f8a67,_0x693c7f){_0x693c7f=_0x693c7f||0xcc;return function(_0x195452){if(_0x195452){return _0x2f8a67['sendStatus'](_0x693c7f);}return _0x2f8a67[_0x095c('0x1a')](_0x693c7f)['end']();};}function respondWithResult(_0x523149,_0x5d9c77){_0x5d9c77=_0x5d9c77||0xc8;return function(_0x477b30){if(_0x477b30){return _0x523149[_0x095c('0x1a')](_0x5d9c77)[_0x095c('0x1b')](_0x477b30);}};}function respondWithFilteredResult(_0x261cc6,_0x407c3c){return function(_0x1cee95){if(_0x1cee95){var _0x173479=typeof _0x407c3c['offset']===_0x095c('0x1c')&&typeof _0x407c3c[_0x095c('0x1d')]===_0x095c('0x1c');var _0x14e8a9=_0x1cee95[_0x095c('0x1e')];var _0x439ca5=_0x173479?0x0:_0x407c3c[_0x095c('0x1f')];var _0x4d1b02=_0x173479?_0x1cee95[_0x095c('0x1e')]:_0x407c3c[_0x095c('0x1f')]+_0x407c3c['limit'];var _0xf0da18;if(_0x4d1b02>=_0x14e8a9){_0x4d1b02=_0x14e8a9;_0xf0da18=0xc8;}else{_0xf0da18=0xce;}_0x261cc6[_0x095c('0x1a')](_0xf0da18);return _0x261cc6['set'](_0x095c('0x20'),_0x439ca5+'-'+_0x4d1b02+'/'+_0x14e8a9)[_0x095c('0x1b')](_0x1cee95);}return null;};}function patchUpdates(_0x25766){return function(_0x14043f){try{jsonpatch[_0x095c('0x21')](_0x14043f,_0x25766,!![]);}catch(_0x4ddd57){return BPromise[_0x095c('0x22')](_0x4ddd57);}return _0x14043f[_0x095c('0x23')]();};}function saveUpdates(_0x2feece,_0xcb35a7){return function(_0x59588a){if(_0x59588a){return _0x59588a[_0x095c('0x24')](_0x2feece)[_0x095c('0x25')](function(_0x468b0e){return _0x468b0e;});}return null;};}function removeEntity(_0x2c34ad,_0x396115){return function(_0x50c340){if(_0x50c340){return _0x50c340['destroy']()[_0x095c('0x25')](function(){_0x2c34ad['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2f88cd,_0x27123a){return function(_0x2d1a4d){if(!_0x2d1a4d){_0x2f88cd[_0x095c('0x26')](0x194);}return _0x2d1a4d;};}function handleError(_0x1d84ef,_0x1189d7){_0x1189d7=_0x1189d7||0x1f4;return function(_0x21283c){logger['error'](_0x21283c[_0x095c('0x27')]);if(_0x21283c[_0x095c('0x28')]){delete _0x21283c[_0x095c('0x28')];}_0x1d84ef[_0x095c('0x1a')](_0x1189d7)[_0x095c('0x29')](_0x21283c);};}exports['index']=function(_0x393daa,_0x563af1){var _0x45bff1={},_0x3e613e={},_0xe92955={'count':0x0,'rows':[]};var _0x528b87=_['map'](db['VtigerConfiguration'][_0x095c('0x2a')],function(_0x337124){return{'name':_0x337124[_0x095c('0x2b')],'type':_0x337124['type']['key']};});_0x3e613e[_0x095c('0x2c')]=_[_0x095c('0x2d')](_0x528b87,'name');_0x3e613e[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x393daa[_0x095c('0x2e')]);_0x3e613e[_0x095c('0x30')]=_[_0x095c('0x31')](_0x3e613e[_0x095c('0x2c')],_0x3e613e[_0x095c('0x2e')]);_0x45bff1['attributes']=_[_0x095c('0x31')](_0x3e613e[_0x095c('0x2c')],qs[_0x095c('0x32')](_0x393daa[_0x095c('0x2e')][_0x095c('0x32')]));_0x45bff1[_0x095c('0x33')]=_0x45bff1[_0x095c('0x33')][_0x095c('0x34')]?_0x45bff1[_0x095c('0x33')]:_0x3e613e['model'];if(!_0x393daa[_0x095c('0x2e')][_0x095c('0x35')](_0x095c('0x36'))){_0x45bff1[_0x095c('0x1d')]=qs[_0x095c('0x1d')](_0x393daa[_0x095c('0x2e')][_0x095c('0x1d')]);_0x45bff1[_0x095c('0x1f')]=qs[_0x095c('0x1f')](_0x393daa['query'][_0x095c('0x1f')]);}_0x45bff1[_0x095c('0x37')]=qs[_0x095c('0x38')](_0x393daa[_0x095c('0x2e')][_0x095c('0x38')]);_0x45bff1[_0x095c('0x39')]=qs[_0x095c('0x30')](_[_0x095c('0x3a')](_0x393daa[_0x095c('0x2e')],_0x3e613e[_0x095c('0x30')]),_0x528b87);if(_0x393daa[_0x095c('0x2e')][_0x095c('0x3b')]){_0x45bff1['where']=_['merge'](_0x45bff1['where'],{'$or':_[_0x095c('0x2d')](_0x528b87,function(_0x1b89ed){if(_0x1b89ed[_0x095c('0x3c')]!==_0x095c('0x3d')){var _0x128a50={};_0x128a50[_0x1b89ed[_0x095c('0x28')]]={'$like':'%'+_0x393daa[_0x095c('0x2e')]['filter']+'%'};return _0x128a50;}})});}_0x45bff1=_[_0x095c('0x3e')]({},_0x45bff1,_0x393daa['options']);var _0x573ac6={'where':_0x45bff1[_0x095c('0x39')]};return db[_0x095c('0x3f')][_0x095c('0x1e')](_0x573ac6)[_0x095c('0x25')](function(_0x1da462){_0xe92955['count']=_0x1da462;if(_0x393daa[_0x095c('0x2e')]['includeAll']){_0x45bff1[_0x095c('0x40')]=[{'all':!![]}];}return db[_0x095c('0x3f')][_0x095c('0x41')](_0x45bff1);})[_0x095c('0x25')](function(_0x1aa34a){_0xe92955[_0x095c('0x42')]=_0x1aa34a;return _0xe92955;})[_0x095c('0x25')](respondWithFilteredResult(_0x563af1,_0x45bff1))[_0x095c('0x43')](handleError(_0x563af1,null));};exports[_0x095c('0x44')]=function(_0x1b6035,_0x2efc9c){var _0x522e39={'raw':![],'where':{'id':_0x1b6035['params']['id']}},_0x408206={};_0x408206[_0x095c('0x2c')]=_[_0x095c('0x2f')](db[_0x095c('0x3f')][_0x095c('0x2a')]);_0x408206[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x1b6035['query']);_0x408206[_0x095c('0x30')]=_[_0x095c('0x31')](_0x408206[_0x095c('0x2c')],_0x408206[_0x095c('0x2e')]);_0x522e39[_0x095c('0x33')]=_[_0x095c('0x31')](_0x408206['model'],qs[_0x095c('0x32')](_0x1b6035[_0x095c('0x2e')][_0x095c('0x32')]));_0x522e39[_0x095c('0x33')]=_0x522e39[_0x095c('0x33')][_0x095c('0x34')]?_0x522e39[_0x095c('0x33')]:_0x408206['model'];if(_0x1b6035[_0x095c('0x2e')][_0x095c('0x45')]){_0x522e39[_0x095c('0x40')]=[{'all':!![]}];}_0x522e39=_[_0x095c('0x3e')]({},_0x522e39,_0x1b6035[_0x095c('0x46')]);return db['VtigerConfiguration'][_0x095c('0x47')](_0x522e39)['then'](handleEntityNotFound(_0x2efc9c,null))[_0x095c('0x25')](respondWithResult(_0x2efc9c,null))[_0x095c('0x43')](handleError(_0x2efc9c,null));};exports[_0x095c('0x48')]=function(_0x461eca,_0x5f23f8){return db['VtigerConfiguration'][_0x095c('0x48')](_0x461eca[_0x095c('0x49')],{})[_0x095c('0x25')](respondWithResult(_0x5f23f8,0xc9))['catch'](handleError(_0x5f23f8,null));};exports[_0x095c('0x24')]=function(_0x13094e,_0x335c2b){if(_0x13094e[_0x095c('0x49')]['id']){delete _0x13094e[_0x095c('0x49')]['id'];}return db[_0x095c('0x3f')]['find']({'where':{'id':_0x13094e[_0x095c('0x4a')]['id']}})[_0x095c('0x25')](handleEntityNotFound(_0x335c2b,null))[_0x095c('0x25')](saveUpdates(_0x13094e[_0x095c('0x49')],null))[_0x095c('0x25')](respondWithResult(_0x335c2b,null))[_0x095c('0x43')](handleError(_0x335c2b,null));};exports[_0x095c('0x4b')]=function(_0x158ffd,_0x359cca){return db['VtigerConfiguration'][_0x095c('0x47')]({'where':{'id':_0x158ffd['params']['id']}})[_0x095c('0x25')](handleEntityNotFound(_0x359cca,null))[_0x095c('0x25')](removeEntity(_0x359cca,null))[_0x095c('0x43')](handleError(_0x359cca,null));};exports[_0x095c('0x4c')]=function(_0x5dacdc,_0xbedbb9,_0x4f21ec){var _0x484020={};var _0x51d750={};var _0x33caf1;var _0x13f6c3;return db['VtigerConfiguration'][_0x095c('0x4d')]({'where':{'id':_0x5dacdc[_0x095c('0x4a')]['id']}})[_0x095c('0x25')](handleEntityNotFound(_0xbedbb9,null))[_0x095c('0x25')](function(_0x3bee7b){if(_0x3bee7b){_0x33caf1=_0x3bee7b;_0x51d750[_0x095c('0x2c')]=_[_0x095c('0x2f')](db['VtigerField'][_0x095c('0x2a')]);_0x51d750[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x5dacdc[_0x095c('0x2e')]);_0x51d750['filters']=_[_0x095c('0x31')](_0x51d750[_0x095c('0x2c')],_0x51d750[_0x095c('0x2e')]);_0x484020['attributes']=_[_0x095c('0x31')](_0x51d750[_0x095c('0x2c')],qs['fields'](_0x5dacdc['query'][_0x095c('0x32')]));_0x484020[_0x095c('0x33')]=_0x484020['attributes'][_0x095c('0x34')]?_0x484020[_0x095c('0x33')]:_0x51d750['model'];_0x484020[_0x095c('0x37')]=qs[_0x095c('0x38')](_0x5dacdc['query'][_0x095c('0x38')]);_0x484020[_0x095c('0x39')]=qs[_0x095c('0x30')](_['pick'](_0x5dacdc[_0x095c('0x2e')],_0x51d750[_0x095c('0x30')]));if(_0x5dacdc[_0x095c('0x2e')]['filter']){_0x484020[_0x095c('0x39')]=_[_0x095c('0x3e')](_0x484020['where'],{'$or':_[_0x095c('0x2d')](_0x484020[_0x095c('0x33')],function(_0x33a94a){var _0x2583a2={};_0x2583a2[_0x33a94a]={'$like':'%'+_0x5dacdc['query'][_0x095c('0x3b')]+'%'};return _0x2583a2;})});}_0x484020=_[_0x095c('0x3e')]({},_0x484020,_0x5dacdc['options']);return _0x33caf1[_0x095c('0x4c')](_0x484020);}})[_0x095c('0x25')](function(_0x1dfd55){if(_0x1dfd55){_0x13f6c3=_0x1dfd55['length'];if(!_0x5dacdc['query']['hasOwnProperty'](_0x095c('0x36'))){_0x484020[_0x095c('0x1d')]=qs['limit'](_0x5dacdc[_0x095c('0x2e')][_0x095c('0x1d')]);_0x484020[_0x095c('0x1f')]=qs[_0x095c('0x1f')](_0x5dacdc[_0x095c('0x2e')][_0x095c('0x1f')]);}return _0x33caf1[_0x095c('0x4c')](_0x484020);}})['then'](function(_0x1a3825){if(_0x1a3825){return _0x1a3825?{'count':_0x13f6c3,'rows':_0x1a3825}:null;}})[_0x095c('0x25')](respondWithResult(_0xbedbb9,null))[_0x095c('0x43')](handleError(_0xbedbb9,null));};exports[_0x095c('0x4e')]=function(_0x47528f,_0x2e632e,_0x4e5916){var _0x1c9ca2={};var _0x3cd051={};var _0x225f28;var _0x49e560;return db[_0x095c('0x3f')]['findOne']({'where':{'id':_0x47528f[_0x095c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2e632e,null))['then'](function(_0x5fb709){if(_0x5fb709){_0x225f28=_0x5fb709;_0x3cd051[_0x095c('0x2c')]=_[_0x095c('0x2f')](db[_0x095c('0x4f')]['rawAttributes']);_0x3cd051[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x47528f[_0x095c('0x2e')]);_0x3cd051[_0x095c('0x30')]=_[_0x095c('0x31')](_0x3cd051[_0x095c('0x2c')],_0x3cd051[_0x095c('0x2e')]);_0x1c9ca2[_0x095c('0x33')]=_[_0x095c('0x31')](_0x3cd051['model'],qs[_0x095c('0x32')](_0x47528f[_0x095c('0x2e')][_0x095c('0x32')]));_0x1c9ca2[_0x095c('0x33')]=_0x1c9ca2[_0x095c('0x33')]['length']?_0x1c9ca2[_0x095c('0x33')]:_0x3cd051[_0x095c('0x2c')];_0x1c9ca2[_0x095c('0x37')]=qs['sort'](_0x47528f[_0x095c('0x2e')][_0x095c('0x38')]);_0x1c9ca2['where']=qs[_0x095c('0x30')](_['pick'](_0x47528f[_0x095c('0x2e')],_0x3cd051['filters']));if(_0x47528f['query'][_0x095c('0x3b')]){_0x1c9ca2[_0x095c('0x39')]=_[_0x095c('0x3e')](_0x1c9ca2[_0x095c('0x39')],{'$or':_['map'](_0x1c9ca2[_0x095c('0x33')],function(_0x5925d3){var _0x37af7b={};_0x37af7b[_0x5925d3]={'$like':'%'+_0x47528f[_0x095c('0x2e')][_0x095c('0x3b')]+'%'};return _0x37af7b;})});}_0x1c9ca2=_[_0x095c('0x3e')]({},_0x1c9ca2,_0x47528f['options']);return _0x225f28['getSubjects'](_0x1c9ca2);}})[_0x095c('0x25')](function(_0x2ccfae){if(_0x2ccfae){_0x49e560=_0x2ccfae[_0x095c('0x34')];if(!_0x47528f[_0x095c('0x2e')]['hasOwnProperty']('nolimit')){_0x1c9ca2[_0x095c('0x1d')]=qs[_0x095c('0x1d')](_0x47528f['query']['limit']);_0x1c9ca2[_0x095c('0x1f')]=qs[_0x095c('0x1f')](_0x47528f[_0x095c('0x2e')][_0x095c('0x1f')]);}return _0x225f28[_0x095c('0x4e')](_0x1c9ca2);}})['then'](function(_0xd20b30){if(_0xd20b30){return _0xd20b30?{'count':_0x49e560,'rows':_0xd20b30}:null;}})[_0x095c('0x25')](respondWithResult(_0x2e632e,null))['catch'](handleError(_0x2e632e,null));};exports[_0x095c('0x50')]=function(_0x1ae6c9,_0x136fc7,_0x1c5602){var _0x4cec4c={};var _0x1d9745={};var _0x23e17e;var _0x55a494;return db[_0x095c('0x3f')]['findOne']({'where':{'id':_0x1ae6c9['params']['id']}})['then'](handleEntityNotFound(_0x136fc7,null))[_0x095c('0x25')](function(_0x1aa961){if(_0x1aa961){_0x23e17e=_0x1aa961;_0x1d9745['model']=_[_0x095c('0x2f')](db[_0x095c('0x4f')][_0x095c('0x2a')]);_0x1d9745[_0x095c('0x2e')]=_['keys'](_0x1ae6c9[_0x095c('0x2e')]);_0x1d9745['filters']=_[_0x095c('0x31')](_0x1d9745[_0x095c('0x2c')],_0x1d9745[_0x095c('0x2e')]);_0x4cec4c['attributes']=_[_0x095c('0x31')](_0x1d9745[_0x095c('0x2c')],qs['fields'](_0x1ae6c9[_0x095c('0x2e')]['fields']));_0x4cec4c[_0x095c('0x33')]=_0x4cec4c[_0x095c('0x33')][_0x095c('0x34')]?_0x4cec4c[_0x095c('0x33')]:_0x1d9745[_0x095c('0x2c')];_0x4cec4c['order']=qs[_0x095c('0x38')](_0x1ae6c9['query']['sort']);_0x4cec4c['where']=qs['filters'](_[_0x095c('0x3a')](_0x1ae6c9[_0x095c('0x2e')],_0x1d9745[_0x095c('0x30')]));if(_0x1ae6c9['query'][_0x095c('0x3b')]){_0x4cec4c['where']=_[_0x095c('0x3e')](_0x4cec4c['where'],{'$or':_[_0x095c('0x2d')](_0x4cec4c[_0x095c('0x33')],function(_0x5957be){var _0x5f08b3={};_0x5f08b3[_0x5957be]={'$like':'%'+_0x1ae6c9['query'][_0x095c('0x3b')]+'%'};return _0x5f08b3;})});}_0x4cec4c=_[_0x095c('0x3e')]({},_0x4cec4c,_0x1ae6c9[_0x095c('0x46')]);return _0x23e17e['getDescriptions'](_0x4cec4c);}})[_0x095c('0x25')](function(_0x7d21cc){if(_0x7d21cc){_0x55a494=_0x7d21cc[_0x095c('0x34')];if(!_0x1ae6c9[_0x095c('0x2e')][_0x095c('0x35')](_0x095c('0x36'))){_0x4cec4c[_0x095c('0x1d')]=qs['limit'](_0x1ae6c9[_0x095c('0x2e')][_0x095c('0x1d')]);_0x4cec4c['offset']=qs[_0x095c('0x1f')](_0x1ae6c9[_0x095c('0x2e')]['offset']);}return _0x23e17e[_0x095c('0x50')](_0x4cec4c);}})['then'](function(_0x5b9ea0){if(_0x5b9ea0){return _0x5b9ea0?{'count':_0x55a494,'rows':_0x5b9ea0}:null;}})[_0x095c('0x25')](respondWithResult(_0x136fc7,null))[_0x095c('0x43')](handleError(_0x136fc7,null));};
\ No newline at end of file
+var _0xabf2=['squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','json','apply','reject','save','update','then','error','name','index','map','VtigerConfiguration','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','find','create','body','getFields','VtigerField','getSubjects','getDescriptions','findOne','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xabf2,0xe6));var _0x2abf=function(_0x1839b8,_0x576781){_0x1839b8=_0x1839b8-0x0;var _0x2e1b33=_0xabf2[_0x1839b8];return _0x2e1b33;};'use strict';var emlformat=require(_0x2abf('0x0'));var rimraf=require(_0x2abf('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2abf('0x2'));var rp=require(_0x2abf('0x3'));var moment=require(_0x2abf('0x4'));var BPromise=require(_0x2abf('0x5'));var Mustache=require(_0x2abf('0x6'));var util=require(_0x2abf('0x7'));var path=require('path');var sox=require(_0x2abf('0x8'));var csv=require(_0x2abf('0x9'));var ejs=require(_0x2abf('0xa'));var fs=require('fs');var fs_extra=require(_0x2abf('0xb'));var _=require(_0x2abf('0xc'));var squel=require(_0x2abf('0xd'));var crypto=require(_0x2abf('0xe'));var jsforce=require(_0x2abf('0xf'));var deskjs=require(_0x2abf('0x10'));var toCsv=require(_0x2abf('0x9'));var querystring=require('querystring');var Papa=require(_0x2abf('0x11'));var Redis=require(_0x2abf('0x12'));var authService=require(_0x2abf('0x13'));var qs=require(_0x2abf('0x14'));var as=require(_0x2abf('0x15'));var hardwareService=require(_0x2abf('0x16'));var logger=require(_0x2abf('0x17'))('api');var utils=require(_0x2abf('0x18'));var config=require(_0x2abf('0x19'));var licenseUtil=require(_0x2abf('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x23f8fe,_0x3e2ed4){_0x3e2ed4=_0x3e2ed4||0xcc;return function(_0x10aa3a){if(_0x10aa3a){return _0x23f8fe[_0x2abf('0x1b')](_0x3e2ed4);}return _0x23f8fe[_0x2abf('0x1c')](_0x3e2ed4)[_0x2abf('0x1d')]();};}function respondWithResult(_0x5376ff,_0x597c2d){_0x597c2d=_0x597c2d||0xc8;return function(_0x21af97){if(_0x21af97){return _0x5376ff[_0x2abf('0x1c')](_0x597c2d)['json'](_0x21af97);}};}function respondWithFilteredResult(_0x293712,_0x74a4f3){return function(_0x1b4339){if(_0x1b4339){var _0xfdc5e1=typeof _0x74a4f3[_0x2abf('0x1e')]===_0x2abf('0x1f')&&typeof _0x74a4f3[_0x2abf('0x20')]==='undefined';var _0x1c574b=_0x1b4339['count'];var _0x1b29f9=_0xfdc5e1?0x0:_0x74a4f3[_0x2abf('0x1e')];var _0x3daec1=_0xfdc5e1?_0x1b4339[_0x2abf('0x21')]:_0x74a4f3[_0x2abf('0x1e')]+_0x74a4f3[_0x2abf('0x20')];var _0x4a23a9;if(_0x3daec1>=_0x1c574b){_0x3daec1=_0x1c574b;_0x4a23a9=0xc8;}else{_0x4a23a9=0xce;}_0x293712['status'](_0x4a23a9);return _0x293712['set']('Content-Range',_0x1b29f9+'-'+_0x3daec1+'/'+_0x1c574b)[_0x2abf('0x22')](_0x1b4339);}return null;};}function patchUpdates(_0xf0a587){return function(_0x103f4e){try{jsonpatch[_0x2abf('0x23')](_0x103f4e,_0xf0a587,!![]);}catch(_0x561768){return BPromise[_0x2abf('0x24')](_0x561768);}return _0x103f4e[_0x2abf('0x25')]();};}function saveUpdates(_0x32e69f,_0x28496d){return function(_0x53b909){if(_0x53b909){return _0x53b909[_0x2abf('0x26')](_0x32e69f)[_0x2abf('0x27')](function(_0x140bcd){return _0x140bcd;});}return null;};}function removeEntity(_0x3019d4,_0x7998bb){return function(_0x5981be){if(_0x5981be){return _0x5981be['destroy']()['then'](function(){_0x3019d4[_0x2abf('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4dd21b,_0x79e77a){return function(_0xd5c483){if(!_0xd5c483){_0x4dd21b['sendStatus'](0x194);}return _0xd5c483;};}function handleError(_0x9ec52b,_0x45ae91){_0x45ae91=_0x45ae91||0x1f4;return function(_0x58cfe1){logger[_0x2abf('0x28')](_0x58cfe1['stack']);if(_0x58cfe1[_0x2abf('0x29')]){delete _0x58cfe1['name'];}_0x9ec52b[_0x2abf('0x1c')](_0x45ae91)['send'](_0x58cfe1);};}exports[_0x2abf('0x2a')]=function(_0x589cdd,_0x4f95f0){var _0x2d94a0={},_0x4ae6d7={},_0x30590e={'count':0x0,'rows':[]};var _0x4f6162=_[_0x2abf('0x2b')](db[_0x2abf('0x2c')]['rawAttributes'],function(_0x3d15ee){return{'name':_0x3d15ee[_0x2abf('0x2d')],'type':_0x3d15ee[_0x2abf('0x2e')][_0x2abf('0x2f')]};});_0x4ae6d7['model']=_['map'](_0x4f6162,_0x2abf('0x29'));_0x4ae6d7[_0x2abf('0x30')]=_[_0x2abf('0x31')](_0x589cdd[_0x2abf('0x30')]);_0x4ae6d7[_0x2abf('0x32')]=_[_0x2abf('0x33')](_0x4ae6d7[_0x2abf('0x34')],_0x4ae6d7[_0x2abf('0x30')]);_0x2d94a0[_0x2abf('0x35')]=_[_0x2abf('0x33')](_0x4ae6d7[_0x2abf('0x34')],qs[_0x2abf('0x36')](_0x589cdd[_0x2abf('0x30')][_0x2abf('0x36')]));_0x2d94a0[_0x2abf('0x35')]=_0x2d94a0[_0x2abf('0x35')][_0x2abf('0x37')]?_0x2d94a0[_0x2abf('0x35')]:_0x4ae6d7[_0x2abf('0x34')];if(!_0x589cdd[_0x2abf('0x30')][_0x2abf('0x38')](_0x2abf('0x39'))){_0x2d94a0[_0x2abf('0x20')]=qs[_0x2abf('0x20')](_0x589cdd[_0x2abf('0x30')][_0x2abf('0x20')]);_0x2d94a0[_0x2abf('0x1e')]=qs['offset'](_0x589cdd[_0x2abf('0x30')][_0x2abf('0x1e')]);}_0x2d94a0[_0x2abf('0x3a')]=qs[_0x2abf('0x3b')](_0x589cdd[_0x2abf('0x30')]['sort']);_0x2d94a0[_0x2abf('0x3c')]=qs[_0x2abf('0x32')](_[_0x2abf('0x3d')](_0x589cdd['query'],_0x4ae6d7['filters']),_0x4f6162);if(_0x589cdd[_0x2abf('0x30')][_0x2abf('0x3e')]){_0x2d94a0[_0x2abf('0x3c')]=_[_0x2abf('0x3f')](_0x2d94a0[_0x2abf('0x3c')],{'$or':_['map'](_0x4f6162,function(_0x36cc55){if(_0x36cc55[_0x2abf('0x2e')]!==_0x2abf('0x40')){var _0x301df6={};_0x301df6[_0x36cc55[_0x2abf('0x29')]]={'$like':'%'+_0x589cdd[_0x2abf('0x30')][_0x2abf('0x3e')]+'%'};return _0x301df6;}})});}_0x2d94a0=_[_0x2abf('0x3f')]({},_0x2d94a0,_0x589cdd[_0x2abf('0x41')]);var _0x525ef4={'where':_0x2d94a0[_0x2abf('0x3c')]};return db[_0x2abf('0x2c')]['count'](_0x525ef4)[_0x2abf('0x27')](function(_0x23dbf9){_0x30590e['count']=_0x23dbf9;if(_0x589cdd[_0x2abf('0x30')][_0x2abf('0x42')]){_0x2d94a0[_0x2abf('0x43')]=[{'all':!![]}];}return db[_0x2abf('0x2c')]['findAll'](_0x2d94a0);})[_0x2abf('0x27')](function(_0x2599e8){_0x30590e[_0x2abf('0x44')]=_0x2599e8;return _0x30590e;})[_0x2abf('0x27')](respondWithFilteredResult(_0x4f95f0,_0x2d94a0))[_0x2abf('0x45')](handleError(_0x4f95f0,null));};exports[_0x2abf('0x46')]=function(_0x5319cd,_0x1d49a8){var _0x4257a4={'raw':![],'where':{'id':_0x5319cd[_0x2abf('0x47')]['id']}},_0x209aa3={};_0x209aa3[_0x2abf('0x34')]=_[_0x2abf('0x31')](db[_0x2abf('0x2c')][_0x2abf('0x48')]);_0x209aa3[_0x2abf('0x30')]=_[_0x2abf('0x31')](_0x5319cd[_0x2abf('0x30')]);_0x209aa3[_0x2abf('0x32')]=_[_0x2abf('0x33')](_0x209aa3[_0x2abf('0x34')],_0x209aa3['query']);_0x4257a4['attributes']=_[_0x2abf('0x33')](_0x209aa3[_0x2abf('0x34')],qs[_0x2abf('0x36')](_0x5319cd['query']['fields']));_0x4257a4[_0x2abf('0x35')]=_0x4257a4[_0x2abf('0x35')]['length']?_0x4257a4['attributes']:_0x209aa3[_0x2abf('0x34')];if(_0x5319cd[_0x2abf('0x30')][_0x2abf('0x42')]){_0x4257a4[_0x2abf('0x43')]=[{'all':!![]}];}_0x4257a4=_['merge']({},_0x4257a4,_0x5319cd[_0x2abf('0x41')]);return db[_0x2abf('0x2c')][_0x2abf('0x49')](_0x4257a4)[_0x2abf('0x27')](handleEntityNotFound(_0x1d49a8,null))['then'](respondWithResult(_0x1d49a8,null))['catch'](handleError(_0x1d49a8,null));};exports['create']=function(_0x294f18,_0x1d200d){return db[_0x2abf('0x2c')][_0x2abf('0x4a')](_0x294f18[_0x2abf('0x4b')],{})[_0x2abf('0x27')](respondWithResult(_0x1d200d,0xc9))['catch'](handleError(_0x1d200d,null));};exports[_0x2abf('0x26')]=function(_0x18bf74,_0x2cda36){if(_0x18bf74[_0x2abf('0x4b')]['id']){delete _0x18bf74[_0x2abf('0x4b')]['id'];}return db[_0x2abf('0x2c')][_0x2abf('0x49')]({'where':{'id':_0x18bf74['params']['id']}})[_0x2abf('0x27')](handleEntityNotFound(_0x2cda36,null))['then'](saveUpdates(_0x18bf74[_0x2abf('0x4b')],null))['then'](respondWithResult(_0x2cda36,null))[_0x2abf('0x45')](handleError(_0x2cda36,null));};exports['destroy']=function(_0xfa459d,_0x42d7e4){return db[_0x2abf('0x2c')][_0x2abf('0x49')]({'where':{'id':_0xfa459d[_0x2abf('0x47')]['id']}})[_0x2abf('0x27')](handleEntityNotFound(_0x42d7e4,null))[_0x2abf('0x27')](removeEntity(_0x42d7e4,null))[_0x2abf('0x45')](handleError(_0x42d7e4,null));};exports[_0x2abf('0x4c')]=function(_0x42be06,_0x5b8711,_0x18c7cf){var _0x12621f={};var _0x40b327={};var _0x556443;var _0x332414;return db[_0x2abf('0x2c')]['findOne']({'where':{'id':_0x42be06[_0x2abf('0x47')]['id']}})[_0x2abf('0x27')](handleEntityNotFound(_0x5b8711,null))[_0x2abf('0x27')](function(_0x41bb81){if(_0x41bb81){_0x556443=_0x41bb81;_0x40b327['model']=_[_0x2abf('0x31')](db[_0x2abf('0x4d')][_0x2abf('0x48')]);_0x40b327['query']=_[_0x2abf('0x31')](_0x42be06[_0x2abf('0x30')]);_0x40b327['filters']=_[_0x2abf('0x33')](_0x40b327[_0x2abf('0x34')],_0x40b327[_0x2abf('0x30')]);_0x12621f['attributes']=_[_0x2abf('0x33')](_0x40b327[_0x2abf('0x34')],qs['fields'](_0x42be06[_0x2abf('0x30')]['fields']));_0x12621f['attributes']=_0x12621f['attributes'][_0x2abf('0x37')]?_0x12621f['attributes']:_0x40b327[_0x2abf('0x34')];_0x12621f[_0x2abf('0x3a')]=qs[_0x2abf('0x3b')](_0x42be06[_0x2abf('0x30')][_0x2abf('0x3b')]);_0x12621f[_0x2abf('0x3c')]=qs[_0x2abf('0x32')](_['pick'](_0x42be06['query'],_0x40b327['filters']));if(_0x42be06[_0x2abf('0x30')][_0x2abf('0x3e')]){_0x12621f[_0x2abf('0x3c')]=_[_0x2abf('0x3f')](_0x12621f[_0x2abf('0x3c')],{'$or':_[_0x2abf('0x2b')](_0x12621f['attributes'],function(_0x1076a6){var _0x1f0a05={};_0x1f0a05[_0x1076a6]={'$like':'%'+_0x42be06[_0x2abf('0x30')][_0x2abf('0x3e')]+'%'};return _0x1f0a05;})});}_0x12621f=_[_0x2abf('0x3f')]({},_0x12621f,_0x42be06[_0x2abf('0x41')]);return _0x556443[_0x2abf('0x4c')](_0x12621f);}})['then'](function(_0x27d775){if(_0x27d775){_0x332414=_0x27d775[_0x2abf('0x37')];if(!_0x42be06[_0x2abf('0x30')][_0x2abf('0x38')](_0x2abf('0x39'))){_0x12621f['limit']=qs[_0x2abf('0x20')](_0x42be06[_0x2abf('0x30')][_0x2abf('0x20')]);_0x12621f[_0x2abf('0x1e')]=qs[_0x2abf('0x1e')](_0x42be06['query']['offset']);}return _0x556443[_0x2abf('0x4c')](_0x12621f);}})[_0x2abf('0x27')](function(_0x3bae9e){if(_0x3bae9e){return _0x3bae9e?{'count':_0x332414,'rows':_0x3bae9e}:null;}})['then'](respondWithResult(_0x5b8711,null))[_0x2abf('0x45')](handleError(_0x5b8711,null));};exports[_0x2abf('0x4e')]=function(_0x1cdffd,_0x3f3074,_0x345131){var _0x108d0d={};var _0x949fc1={};var _0x1f151e;var _0x57e97c;return db[_0x2abf('0x2c')]['findOne']({'where':{'id':_0x1cdffd[_0x2abf('0x47')]['id']}})[_0x2abf('0x27')](handleEntityNotFound(_0x3f3074,null))[_0x2abf('0x27')](function(_0x5422ae){if(_0x5422ae){_0x1f151e=_0x5422ae;_0x949fc1[_0x2abf('0x34')]=_[_0x2abf('0x31')](db[_0x2abf('0x4d')][_0x2abf('0x48')]);_0x949fc1[_0x2abf('0x30')]=_['keys'](_0x1cdffd['query']);_0x949fc1[_0x2abf('0x32')]=_[_0x2abf('0x33')](_0x949fc1[_0x2abf('0x34')],_0x949fc1[_0x2abf('0x30')]);_0x108d0d[_0x2abf('0x35')]=_[_0x2abf('0x33')](_0x949fc1['model'],qs[_0x2abf('0x36')](_0x1cdffd[_0x2abf('0x30')][_0x2abf('0x36')]));_0x108d0d['attributes']=_0x108d0d['attributes'][_0x2abf('0x37')]?_0x108d0d['attributes']:_0x949fc1['model'];_0x108d0d['order']=qs['sort'](_0x1cdffd[_0x2abf('0x30')][_0x2abf('0x3b')]);_0x108d0d[_0x2abf('0x3c')]=qs['filters'](_[_0x2abf('0x3d')](_0x1cdffd[_0x2abf('0x30')],_0x949fc1['filters']));if(_0x1cdffd[_0x2abf('0x30')][_0x2abf('0x3e')]){_0x108d0d[_0x2abf('0x3c')]=_[_0x2abf('0x3f')](_0x108d0d[_0x2abf('0x3c')],{'$or':_[_0x2abf('0x2b')](_0x108d0d[_0x2abf('0x35')],function(_0x585ac1){var _0x537950={};_0x537950[_0x585ac1]={'$like':'%'+_0x1cdffd[_0x2abf('0x30')][_0x2abf('0x3e')]+'%'};return _0x537950;})});}_0x108d0d=_[_0x2abf('0x3f')]({},_0x108d0d,_0x1cdffd[_0x2abf('0x41')]);return _0x1f151e['getSubjects'](_0x108d0d);}})['then'](function(_0x4f7039){if(_0x4f7039){_0x57e97c=_0x4f7039['length'];if(!_0x1cdffd['query'][_0x2abf('0x38')](_0x2abf('0x39'))){_0x108d0d[_0x2abf('0x20')]=qs[_0x2abf('0x20')](_0x1cdffd[_0x2abf('0x30')][_0x2abf('0x20')]);_0x108d0d['offset']=qs[_0x2abf('0x1e')](_0x1cdffd[_0x2abf('0x30')][_0x2abf('0x1e')]);}return _0x1f151e[_0x2abf('0x4e')](_0x108d0d);}})[_0x2abf('0x27')](function(_0x341b89){if(_0x341b89){return _0x341b89?{'count':_0x57e97c,'rows':_0x341b89}:null;}})[_0x2abf('0x27')](respondWithResult(_0x3f3074,null))['catch'](handleError(_0x3f3074,null));};exports[_0x2abf('0x4f')]=function(_0x1e0659,_0x86ef4b,_0xb7069e){var _0x59713d={};var _0x52dc94={};var _0x9b66af;var _0x66d037;return db[_0x2abf('0x2c')][_0x2abf('0x50')]({'where':{'id':_0x1e0659['params']['id']}})[_0x2abf('0x27')](handleEntityNotFound(_0x86ef4b,null))[_0x2abf('0x27')](function(_0x1ef4dc){if(_0x1ef4dc){_0x9b66af=_0x1ef4dc;_0x52dc94[_0x2abf('0x34')]=_['keys'](db[_0x2abf('0x4d')][_0x2abf('0x48')]);_0x52dc94[_0x2abf('0x30')]=_[_0x2abf('0x31')](_0x1e0659[_0x2abf('0x30')]);_0x52dc94[_0x2abf('0x32')]=_['intersection'](_0x52dc94[_0x2abf('0x34')],_0x52dc94[_0x2abf('0x30')]);_0x59713d[_0x2abf('0x35')]=_[_0x2abf('0x33')](_0x52dc94[_0x2abf('0x34')],qs[_0x2abf('0x36')](_0x1e0659[_0x2abf('0x30')][_0x2abf('0x36')]));_0x59713d[_0x2abf('0x35')]=_0x59713d[_0x2abf('0x35')][_0x2abf('0x37')]?_0x59713d[_0x2abf('0x35')]:_0x52dc94['model'];_0x59713d[_0x2abf('0x3a')]=qs[_0x2abf('0x3b')](_0x1e0659['query']['sort']);_0x59713d[_0x2abf('0x3c')]=qs[_0x2abf('0x32')](_[_0x2abf('0x3d')](_0x1e0659[_0x2abf('0x30')],_0x52dc94['filters']));if(_0x1e0659[_0x2abf('0x30')][_0x2abf('0x3e')]){_0x59713d[_0x2abf('0x3c')]=_['merge'](_0x59713d[_0x2abf('0x3c')],{'$or':_[_0x2abf('0x2b')](_0x59713d[_0x2abf('0x35')],function(_0x181f48){var _0x21a5de={};_0x21a5de[_0x181f48]={'$like':'%'+_0x1e0659[_0x2abf('0x30')][_0x2abf('0x3e')]+'%'};return _0x21a5de;})});}_0x59713d=_[_0x2abf('0x3f')]({},_0x59713d,_0x1e0659['options']);return _0x9b66af[_0x2abf('0x4f')](_0x59713d);}})['then'](function(_0xfc78f8){if(_0xfc78f8){_0x66d037=_0xfc78f8[_0x2abf('0x37')];if(!_0x1e0659[_0x2abf('0x30')][_0x2abf('0x38')]('nolimit')){_0x59713d[_0x2abf('0x20')]=qs[_0x2abf('0x20')](_0x1e0659[_0x2abf('0x30')][_0x2abf('0x20')]);_0x59713d[_0x2abf('0x1e')]=qs[_0x2abf('0x1e')](_0x1e0659[_0x2abf('0x30')]['offset']);}return _0x9b66af[_0x2abf('0x4f')](_0x59713d);}})[_0x2abf('0x27')](function(_0x16a282){if(_0x16a282){return _0x16a282?{'count':_0x66d037,'rows':_0x16a282}:null;}})[_0x2abf('0x27')](respondWithResult(_0x86ef4b,null))[_0x2abf('0x45')](handleError(_0x86ef4b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb4c=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerConfiguration.attributes','exports','VtigerConfiguration','int_vtiger_configurations'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xcb4c,0x6c));var _0xccb4=function(_0x4e3882,_0x29c9eb){_0x4e3882=_0x4e3882-0x0;var _0x342f63=_0xcb4c[_0x4e3882];return _0x342f63;};'use strict';var _=require('lodash');var util=require(_0xccb4('0x0'));var logger=require(_0xccb4('0x1'))(_0xccb4('0x2'));var moment=require('moment');var BPromise=require(_0xccb4('0x3'));var rp=require(_0xccb4('0x4'));var fs=require('fs');var path=require(_0xccb4('0x5'));var rimraf=require(_0xccb4('0x6'));var config=require(_0xccb4('0x7'));var attributes=require(_0xccb4('0x8'));module[_0xccb4('0x9')]=function(_0x1eb8f1,_0x220291){return _0x1eb8f1['define'](_0xccb4('0xa'),attributes,{'tableName':_0xccb4('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2b54=['../../config/environment','./intVtigerConfiguration.attributes','define','VtigerConfiguration','int_vtiger_configurations','lodash','util','api','moment','rimraf'];(function(_0x1db347,_0x50526b){var _0x4ec95f=function(_0x311de3){while(--_0x311de3){_0x1db347['push'](_0x1db347['shift']());}};_0x4ec95f(++_0x50526b);}(_0x2b54,0xcd));var _0x42b5=function(_0x271e60,_0x3b3af3){_0x271e60=_0x271e60-0x0;var _0x3c81f7=_0x2b54[_0x271e60];return _0x3c81f7;};'use strict';var _=require(_0x42b5('0x0'));var util=require(_0x42b5('0x1'));var logger=require('../../config/logger')(_0x42b5('0x2'));var moment=require(_0x42b5('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x42b5('0x4'));var config=require(_0x42b5('0x5'));var attributes=require(_0x42b5('0x6'));module['exports']=function(_0x2ef088,_0x2accd5){return _0x2ef088[_0x42b5('0x7')](_0x42b5('0x8'),attributes,{'tableName':_0x42b5('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c0a=['jayson/promise','client','request','then','request\x20sent','debug','stringify','error','code','VtigerConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x1c71cd,_0x4b696a){var _0x505500=function(_0x56300b){while(--_0x56300b){_0x1c71cd['push'](_0x1c71cd['shift']());}};_0x505500(++_0x4b696a);}(_0x3c0a,0x7b));var _0xa3c0=function(_0x4d9c13,_0x3f2a20){_0x4d9c13=_0x4d9c13-0x0;var _0x22c62a=_0x3c0a[_0x4d9c13];return _0x22c62a;};'use strict';var _=require(_0xa3c0('0x0'));var util=require(_0xa3c0('0x1'));var moment=require(_0xa3c0('0x2'));var BPromise=require(_0xa3c0('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa3c0('0x4'))['db'];var utils=require(_0xa3c0('0x5'));var logger=require(_0xa3c0('0x6'))(_0xa3c0('0x7'));var config=require(_0xa3c0('0x8'));var jayson=require(_0xa3c0('0x9'));var client=jayson[_0xa3c0('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0xf0fed0,_0x5d4e9e,_0x3b02ef){return new BPromise(function(_0x36fd8f,_0xb8625b){return client[_0xa3c0('0xb')](_0xf0fed0,_0x3b02ef)[_0xa3c0('0xc')](function(_0x3117ec){logger['info']('VtigerConfiguration,\x20%s,\x20%s',_0x5d4e9e,_0xa3c0('0xd'));logger[_0xa3c0('0xe')]('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x5d4e9e,_0xa3c0('0xd'),JSON[_0xa3c0('0xf')](_0x3117ec));if(_0x3117ec[_0xa3c0('0x10')]){if(_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x11')]===0x1f4){logger[_0xa3c0('0x10')](_0xa3c0('0x12'),_0x5d4e9e,_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x13')]);return _0xb8625b(_0x3117ec['error'][_0xa3c0('0x13')]);}logger[_0xa3c0('0x10')](_0xa3c0('0x12'),_0x5d4e9e,_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x13')]);return _0x36fd8f(_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x13')]);}else{logger['info'](_0xa3c0('0x12'),_0x5d4e9e,'request\x20sent');_0x36fd8f(_0x3117ec[_0xa3c0('0x14')][_0xa3c0('0x13')]);}})[_0xa3c0('0x15')](function(_0x506325){logger[_0xa3c0('0x10')](_0xa3c0('0x12'),_0x5d4e9e,_0x506325);_0xb8625b(_0x506325);});});}
\ No newline at end of file
+var _0xa164=['stringify','error','code','message','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','VtigerConfiguration,\x20%s,\x20%s','request\x20sent','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s'];(function(_0x4b4f24,_0x5654a8){var _0x1c13d4=function(_0x4940bf){while(--_0x4940bf){_0x4b4f24['push'](_0x4b4f24['shift']());}};_0x1c13d4(++_0x5654a8);}(_0xa164,0x13e));var _0x4a16=function(_0x7750c9,_0x205ccc){_0x7750c9=_0x7750c9-0x0;var _0x57f2c0=_0xa164[_0x7750c9];return _0x57f2c0;};'use strict';var _=require(_0x4a16('0x0'));var util=require(_0x4a16('0x1'));var moment=require('moment');var BPromise=require(_0x4a16('0x2'));var rs=require(_0x4a16('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4a16('0x4'))['db'];var utils=require(_0x4a16('0x5'));var logger=require(_0x4a16('0x6'))(_0x4a16('0x7'));var config=require(_0x4a16('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x4a16('0x9')][_0x4a16('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x48c2a9,_0x49eab4,_0x115359){return new BPromise(function(_0x3c55b5,_0x43be5e){return client[_0x4a16('0xb')](_0x48c2a9,_0x115359)[_0x4a16('0xc')](function(_0x2c076f){logger[_0x4a16('0xd')](_0x4a16('0xe'),_0x49eab4,_0x4a16('0xf'));logger[_0x4a16('0x10')](_0x4a16('0x11'),_0x49eab4,_0x4a16('0xf'),JSON[_0x4a16('0x12')](_0x2c076f));if(_0x2c076f[_0x4a16('0x13')]){if(_0x2c076f[_0x4a16('0x13')][_0x4a16('0x14')]===0x1f4){logger[_0x4a16('0x13')](_0x4a16('0xe'),_0x49eab4,_0x2c076f[_0x4a16('0x13')][_0x4a16('0x15')]);return _0x43be5e(_0x2c076f[_0x4a16('0x13')]['message']);}logger[_0x4a16('0x13')](_0x4a16('0xe'),_0x49eab4,_0x2c076f[_0x4a16('0x13')][_0x4a16('0x15')]);return _0x3c55b5(_0x2c076f[_0x4a16('0x13')][_0x4a16('0x15')]);}else{logger[_0x4a16('0xd')](_0x4a16('0xe'),_0x49eab4,_0x4a16('0xf'));_0x3c55b5(_0x2c076f[_0x4a16('0x16')][_0x4a16('0x15')]);}})[_0x4a16('0x17')](function(_0x5a43b4){logger[_0x4a16('0x13')](_0x4a16('0xe'),_0x49eab4,_0x5a43b4);_0x43be5e(_0x5a43b4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedc7=['isAuthenticated','index','get','/:id','show','post','create','update','delete','destroy','exports','multer','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x395857,_0x58c3f1){var _0x3307b8=function(_0x4fb969){while(--_0x4fb969){_0x395857['push'](_0x395857['shift']());}};_0x3307b8(++_0x58c3f1);}(_0xedc7,0x14f));var _0x7edc=function(_0x43e798,_0x123053){_0x43e798=_0x43e798-0x0;var _0xe748d9=_0xedc7[_0x43e798];return _0xe748d9;};'use strict';var multer=require(_0x7edc('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x7edc('0x1'));var express=require(_0x7edc('0x2'));var router=express[_0x7edc('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x7edc('0x4'));var interaction=require(_0x7edc('0x5'));var config=require(_0x7edc('0x6'));var controller=require('./intVtigerField.controller');router['get']('/',auth[_0x7edc('0x7')](),controller[_0x7edc('0x8')]);router[_0x7edc('0x9')](_0x7edc('0xa'),auth[_0x7edc('0x7')](),controller[_0x7edc('0xb')]);router[_0x7edc('0xc')]('/',auth[_0x7edc('0x7')](),controller[_0x7edc('0xd')]);router['put'](_0x7edc('0xa'),auth[_0x7edc('0x7')](),controller[_0x7edc('0xe')]);router[_0x7edc('0xf')]('/:id',auth[_0x7edc('0x7')](),controller[_0x7edc('0x10')]);module[_0x7edc('0x11')]=router;
\ No newline at end of file
+var _0x2895=['update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./intVtigerField.controller','get','isAuthenticated','index','show','/:id'];(function(_0x5aac98,_0x5457f2){var _0x348643=function(_0x29bdb6){while(--_0x29bdb6){_0x5aac98['push'](_0x5aac98['shift']());}};_0x348643(++_0x5457f2);}(_0x2895,0x1ce));var _0x5289=function(_0x2ca103,_0x55400c){_0x2ca103=_0x2ca103-0x0;var _0x2e6cc2=_0x2895[_0x2ca103];return _0x2e6cc2;};'use strict';var multer=require(_0x5289('0x0'));var util=require(_0x5289('0x1'));var path=require(_0x5289('0x2'));var timeout=require(_0x5289('0x3'));var express=require(_0x5289('0x4'));var router=express[_0x5289('0x5')]();var fs_extra=require(_0x5289('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x5289('0x7'));var controller=require(_0x5289('0x8'));router[_0x5289('0x9')]('/',auth[_0x5289('0xa')](),controller[_0x5289('0xb')]);router[_0x5289('0x9')]('/:id',auth[_0x5289('0xa')](),controller[_0x5289('0xc')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x5289('0xd'),auth['isAuthenticated'](),controller[_0x5289('0xe')]);router[_0x5289('0xf')](_0x5289('0xd'),auth['isAuthenticated'](),controller['destroy']);module[_0x5289('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca5d=['picklist','STRING','BOOLEAN','sequelize','string','variable','customVariable'];(function(_0x39270a,_0x5e0175){var _0x188416=function(_0x59e66f){while(--_0x59e66f){_0x39270a['push'](_0x39270a['shift']());}};_0x188416(++_0x5e0175);}(_0xca5d,0x11b));var _0xdca5=function(_0x4766b1,_0x3f1371){_0x4766b1=_0x4766b1-0x0;var _0x6b9995=_0xca5d[_0x4766b1];return _0x6b9995;};'use strict';var Sequelize=require(_0xdca5('0x0'));module['exports']={'type':{'type':Sequelize['ENUM'](_0xdca5('0x1'),_0xdca5('0x2'),_0xdca5('0x3'),'keyValue',_0xdca5('0x4')),'defaultValue':_0xdca5('0x1')},'content':{'type':Sequelize[_0xdca5('0x5')]},'key':{'type':Sequelize[_0xdca5('0x5')]},'keyType':{'type':Sequelize['ENUM']('string','variable',_0xdca5('0x3'))},'keyContent':{'type':Sequelize[_0xdca5('0x5')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xdca5('0x5')]},'customField':{'type':Sequelize[_0xdca5('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xc6d3=['STRING','BOOLEAN','sequelize','exports','ENUM','variable','customVariable','keyValue','picklist','string'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0xc6d3,0x70));var _0x3c6d=function(_0x2d663c,_0x4b8eee){_0x2d663c=_0x2d663c-0x0;var _0x5af4dd=_0xc6d3[_0x2d663c];return _0x5af4dd;};'use strict';var Sequelize=require(_0x3c6d('0x0'));module[_0x3c6d('0x1')]={'type':{'type':Sequelize[_0x3c6d('0x2')]('string',_0x3c6d('0x3'),_0x3c6d('0x4'),_0x3c6d('0x5'),_0x3c6d('0x6')),'defaultValue':_0x3c6d('0x7')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x3c6d('0x8')]},'keyType':{'type':Sequelize['ENUM'](_0x3c6d('0x7'),_0x3c6d('0x3'),'customVariable')},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x3c6d('0x8')]},'customField':{'type':Sequelize[_0x3c6d('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x3c6d('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe04e=['json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','VtigerField','includeAll','include','rows','catch','show','params','length','find','create','body','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x3062e2,_0x2f673e){var _0x5c241a=function(_0x102633){while(--_0x102633){_0x3062e2['push'](_0x3062e2['shift']());}};_0x5c241a(++_0x2f673e);}(_0xe04e,0x1a2));var _0xee04=function(_0x5ba707,_0x5d9ece){_0x5ba707=_0x5ba707-0x0;var _0x45ba62=_0xe04e[_0x5ba707];return _0x45ba62;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xee04('0x0'));var rp=require(_0xee04('0x1'));var moment=require(_0xee04('0x2'));var BPromise=require(_0xee04('0x3'));var Mustache=require('mustache');var util=require(_0xee04('0x4'));var path=require(_0xee04('0x5'));var sox=require('sox');var csv=require(_0xee04('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xee04('0x7'));var squel=require(_0xee04('0x8'));var crypto=require(_0xee04('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xee04('0xa'));var toCsv=require(_0xee04('0x6'));var querystring=require(_0xee04('0xb'));var Papa=require(_0xee04('0xc'));var Redis=require(_0xee04('0xd'));var authService=require(_0xee04('0xe'));var qs=require(_0xee04('0xf'));var as=require(_0xee04('0x10'));var hardwareService=require(_0xee04('0x11'));var logger=require(_0xee04('0x12'))('api');var utils=require(_0xee04('0x13'));var config=require(_0xee04('0x14'));var licenseUtil=require(_0xee04('0x15'));var db=require(_0xee04('0x16'))['db'];function respondWithStatusCode(_0x45d212,_0x35caf8){_0x35caf8=_0x35caf8||0xcc;return function(_0x4f1bbb){if(_0x4f1bbb){return _0x45d212[_0xee04('0x17')](_0x35caf8);}return _0x45d212[_0xee04('0x18')](_0x35caf8)[_0xee04('0x19')]();};}function respondWithResult(_0x10ed8a,_0x49955e){_0x49955e=_0x49955e||0xc8;return function(_0x19cff2){if(_0x19cff2){return _0x10ed8a[_0xee04('0x18')](_0x49955e)[_0xee04('0x1a')](_0x19cff2);}};}function respondWithFilteredResult(_0x143a7a,_0x58eda4){return function(_0x34e0f6){if(_0x34e0f6){var _0x31862e=typeof _0x58eda4[_0xee04('0x1b')]===_0xee04('0x1c')&&typeof _0x58eda4[_0xee04('0x1d')]===_0xee04('0x1c');var _0x43a404=_0x34e0f6[_0xee04('0x1e')];var _0x592dde=_0x31862e?0x0:_0x58eda4[_0xee04('0x1b')];var _0x114145=_0x31862e?_0x34e0f6[_0xee04('0x1e')]:_0x58eda4[_0xee04('0x1b')]+_0x58eda4[_0xee04('0x1d')];var _0x2a2a22;if(_0x114145>=_0x43a404){_0x114145=_0x43a404;_0x2a2a22=0xc8;}else{_0x2a2a22=0xce;}_0x143a7a[_0xee04('0x18')](_0x2a2a22);return _0x143a7a[_0xee04('0x1f')](_0xee04('0x20'),_0x592dde+'-'+_0x114145+'/'+_0x43a404)[_0xee04('0x1a')](_0x34e0f6);}return null;};}function patchUpdates(_0x5acaf0){return function(_0x293e5f){try{jsonpatch[_0xee04('0x21')](_0x293e5f,_0x5acaf0,!![]);}catch(_0x383fa7){return BPromise['reject'](_0x383fa7);}return _0x293e5f[_0xee04('0x22')]();};}function saveUpdates(_0x428487,_0x20517f){return function(_0x1ade7e){if(_0x1ade7e){return _0x1ade7e[_0xee04('0x23')](_0x428487)[_0xee04('0x24')](function(_0x2af909){return _0x2af909;});}return null;};}function removeEntity(_0x578b78,_0x17ac03){return function(_0x486c33){if(_0x486c33){return _0x486c33[_0xee04('0x25')]()[_0xee04('0x24')](function(){_0x578b78[_0xee04('0x18')](0xcc)[_0xee04('0x19')]();});}};}function handleEntityNotFound(_0x39d2d8,_0x2aa761){return function(_0x552a8e){if(!_0x552a8e){_0x39d2d8[_0xee04('0x17')](0x194);}return _0x552a8e;};}function handleError(_0x1e77d7,_0x3e590f){_0x3e590f=_0x3e590f||0x1f4;return function(_0x12e1be){logger[_0xee04('0x26')](_0x12e1be[_0xee04('0x27')]);if(_0x12e1be[_0xee04('0x28')]){delete _0x12e1be[_0xee04('0x28')];}_0x1e77d7[_0xee04('0x18')](_0x3e590f)[_0xee04('0x29')](_0x12e1be);};}exports[_0xee04('0x2a')]=function(_0x2899b6,_0x5598da){var _0x453c6e={},_0x2ed6b4={},_0x3ec6c3={'count':0x0,'rows':[]};var _0x2cfcc6=_[_0xee04('0x2b')](db['VtigerField'][_0xee04('0x2c')],function(_0x1ff618){return{'name':_0x1ff618[_0xee04('0x2d')],'type':_0x1ff618['type']['key']};});_0x2ed6b4[_0xee04('0x2e')]=_[_0xee04('0x2b')](_0x2cfcc6,_0xee04('0x28'));_0x2ed6b4['query']=_[_0xee04('0x2f')](_0x2899b6[_0xee04('0x30')]);_0x2ed6b4[_0xee04('0x31')]=_[_0xee04('0x32')](_0x2ed6b4[_0xee04('0x2e')],_0x2ed6b4[_0xee04('0x30')]);_0x453c6e[_0xee04('0x33')]=_[_0xee04('0x32')](_0x2ed6b4['model'],qs[_0xee04('0x34')](_0x2899b6[_0xee04('0x30')][_0xee04('0x34')]));_0x453c6e['attributes']=_0x453c6e[_0xee04('0x33')]['length']?_0x453c6e[_0xee04('0x33')]:_0x2ed6b4[_0xee04('0x2e')];if(!_0x2899b6[_0xee04('0x30')][_0xee04('0x35')](_0xee04('0x36'))){_0x453c6e[_0xee04('0x1d')]=qs[_0xee04('0x1d')](_0x2899b6['query'][_0xee04('0x1d')]);_0x453c6e[_0xee04('0x1b')]=qs[_0xee04('0x1b')](_0x2899b6[_0xee04('0x30')][_0xee04('0x1b')]);}_0x453c6e[_0xee04('0x37')]=qs[_0xee04('0x38')](_0x2899b6['query']['sort']);_0x453c6e[_0xee04('0x39')]=qs[_0xee04('0x31')](_[_0xee04('0x3a')](_0x2899b6[_0xee04('0x30')],_0x2ed6b4['filters']),_0x2cfcc6);if(_0x2899b6[_0xee04('0x30')]['filter']){_0x453c6e['where']=_[_0xee04('0x3b')](_0x453c6e['where'],{'$or':_[_0xee04('0x2b')](_0x2cfcc6,function(_0x5dfa10){if(_0x5dfa10[_0xee04('0x3c')]!==_0xee04('0x3d')){var _0x17fb0e={};_0x17fb0e[_0x5dfa10[_0xee04('0x28')]]={'$like':'%'+_0x2899b6[_0xee04('0x30')][_0xee04('0x3e')]+'%'};return _0x17fb0e;}})});}_0x453c6e=_['merge']({},_0x453c6e,_0x2899b6['options']);var _0x3ccc94={'where':_0x453c6e[_0xee04('0x39')]};return db[_0xee04('0x3f')]['count'](_0x3ccc94)[_0xee04('0x24')](function(_0x1d6b73){_0x3ec6c3[_0xee04('0x1e')]=_0x1d6b73;if(_0x2899b6['query'][_0xee04('0x40')]){_0x453c6e[_0xee04('0x41')]=[{'all':!![]}];}return db[_0xee04('0x3f')]['findAll'](_0x453c6e);})[_0xee04('0x24')](function(_0x4f2dfa){_0x3ec6c3[_0xee04('0x42')]=_0x4f2dfa;return _0x3ec6c3;})['then'](respondWithFilteredResult(_0x5598da,_0x453c6e))[_0xee04('0x43')](handleError(_0x5598da,null));};exports[_0xee04('0x44')]=function(_0x247f5a,_0x186945){var _0x114a5c={'raw':!![],'where':{'id':_0x247f5a[_0xee04('0x45')]['id']}},_0x492fe6={};_0x492fe6[_0xee04('0x2e')]=_[_0xee04('0x2f')](db[_0xee04('0x3f')][_0xee04('0x2c')]);_0x492fe6[_0xee04('0x30')]=_['keys'](_0x247f5a[_0xee04('0x30')]);_0x492fe6[_0xee04('0x31')]=_[_0xee04('0x32')](_0x492fe6['model'],_0x492fe6[_0xee04('0x30')]);_0x114a5c[_0xee04('0x33')]=_['intersection'](_0x492fe6[_0xee04('0x2e')],qs[_0xee04('0x34')](_0x247f5a[_0xee04('0x30')][_0xee04('0x34')]));_0x114a5c[_0xee04('0x33')]=_0x114a5c['attributes'][_0xee04('0x46')]?_0x114a5c[_0xee04('0x33')]:_0x492fe6[_0xee04('0x2e')];if(_0x247f5a[_0xee04('0x30')][_0xee04('0x40')]){_0x114a5c[_0xee04('0x41')]=[{'all':!![]}];}_0x114a5c=_['merge']({},_0x114a5c,_0x247f5a['options']);return db[_0xee04('0x3f')][_0xee04('0x47')](_0x114a5c)[_0xee04('0x24')](handleEntityNotFound(_0x186945,null))['then'](respondWithResult(_0x186945,null))[_0xee04('0x43')](handleError(_0x186945,null));};exports[_0xee04('0x48')]=function(_0x1ed527,_0x4427ff){return db[_0xee04('0x3f')][_0xee04('0x48')](_0x1ed527[_0xee04('0x49')],{})[_0xee04('0x24')](respondWithResult(_0x4427ff,0xc9))[_0xee04('0x43')](handleError(_0x4427ff,null));};exports[_0xee04('0x23')]=function(_0x365b50,_0x923e63){if(_0x365b50[_0xee04('0x49')]['id']){delete _0x365b50[_0xee04('0x49')]['id'];}return db[_0xee04('0x3f')][_0xee04('0x47')]({'where':{'id':_0x365b50[_0xee04('0x45')]['id']}})[_0xee04('0x24')](handleEntityNotFound(_0x923e63,null))[_0xee04('0x24')](saveUpdates(_0x365b50[_0xee04('0x49')],null))[_0xee04('0x24')](respondWithResult(_0x923e63,null))[_0xee04('0x43')](handleError(_0x923e63,null));};exports[_0xee04('0x25')]=function(_0x411651,_0x3e414c){return db[_0xee04('0x3f')]['find']({'where':{'id':_0x411651['params']['id']}})['then'](handleEntityNotFound(_0x3e414c,null))['then'](removeEntity(_0x3e414c,null))[_0xee04('0x43')](handleError(_0x3e414c,null));};
\ No newline at end of file
+var _0x13e2=['intersection','fields','length','nolimit','order','sort','pick','filter','where','merge','type','include','findAll','catch','show','params','includeAll','options','find','create','body','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','save','then','destroy','error','name','send','index','map','VtigerField','rawAttributes','fieldName','model','query','keys','filters','attributes'];(function(_0x131203,_0x5b8f2b){var _0x373025=function(_0x5772de){while(--_0x5772de){_0x131203['push'](_0x131203['shift']());}};_0x373025(++_0x5b8f2b);}(_0x13e2,0x142));var _0x213e=function(_0x4e74e7,_0x20e1d4){_0x4e74e7=_0x4e74e7-0x0;var _0x216db7=_0x13e2[_0x4e74e7];return _0x216db7;};'use strict';var emlformat=require(_0x213e('0x0'));var rimraf=require(_0x213e('0x1'));var zipdir=require(_0x213e('0x2'));var jsonpatch=require(_0x213e('0x3'));var rp=require(_0x213e('0x4'));var moment=require(_0x213e('0x5'));var BPromise=require(_0x213e('0x6'));var Mustache=require(_0x213e('0x7'));var util=require(_0x213e('0x8'));var path=require('path');var sox=require(_0x213e('0x9'));var csv=require(_0x213e('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x213e('0xb'));var squel=require(_0x213e('0xc'));var crypto=require(_0x213e('0xd'));var jsforce=require(_0x213e('0xe'));var deskjs=require(_0x213e('0xf'));var toCsv=require(_0x213e('0xa'));var querystring=require(_0x213e('0x10'));var Papa=require(_0x213e('0x11'));var Redis=require(_0x213e('0x12'));var authService=require(_0x213e('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x213e('0x14'));var hardwareService=require(_0x213e('0x15'));var logger=require(_0x213e('0x16'))(_0x213e('0x17'));var utils=require('../../config/utils');var config=require(_0x213e('0x18'));var licenseUtil=require(_0x213e('0x19'));var db=require(_0x213e('0x1a'))['db'];function respondWithStatusCode(_0x5766b4,_0x414f99){_0x414f99=_0x414f99||0xcc;return function(_0x274771){if(_0x274771){return _0x5766b4['sendStatus'](_0x414f99);}return _0x5766b4['status'](_0x414f99)[_0x213e('0x1b')]();};}function respondWithResult(_0x5a2057,_0x36edc9){_0x36edc9=_0x36edc9||0xc8;return function(_0x51ea1d){if(_0x51ea1d){return _0x5a2057[_0x213e('0x1c')](_0x36edc9)['json'](_0x51ea1d);}};}function respondWithFilteredResult(_0x4b5bd7,_0x4e439d){return function(_0x9b14ce){if(_0x9b14ce){var _0x5c0250=typeof _0x4e439d[_0x213e('0x1d')]===_0x213e('0x1e')&&typeof _0x4e439d[_0x213e('0x1f')]===_0x213e('0x1e');var _0x232971=_0x9b14ce[_0x213e('0x20')];var _0x5d5d05=_0x5c0250?0x0:_0x4e439d['offset'];var _0x53d0c0=_0x5c0250?_0x9b14ce['count']:_0x4e439d[_0x213e('0x1d')]+_0x4e439d[_0x213e('0x1f')];var _0x524d8f;if(_0x53d0c0>=_0x232971){_0x53d0c0=_0x232971;_0x524d8f=0xc8;}else{_0x524d8f=0xce;}_0x4b5bd7[_0x213e('0x1c')](_0x524d8f);return _0x4b5bd7[_0x213e('0x21')](_0x213e('0x22'),_0x5d5d05+'-'+_0x53d0c0+'/'+_0x232971)[_0x213e('0x23')](_0x9b14ce);}return null;};}function patchUpdates(_0x11652f){return function(_0x5ceb58){try{jsonpatch[_0x213e('0x24')](_0x5ceb58,_0x11652f,!![]);}catch(_0x1f2db9){return BPromise['reject'](_0x1f2db9);}return _0x5ceb58[_0x213e('0x25')]();};}function saveUpdates(_0x2fc321,_0x518a65){return function(_0x5ef50c){if(_0x5ef50c){return _0x5ef50c['update'](_0x2fc321)[_0x213e('0x26')](function(_0x4ebbe7){return _0x4ebbe7;});}return null;};}function removeEntity(_0x36b950,_0x4265ec){return function(_0x2b32e3){if(_0x2b32e3){return _0x2b32e3[_0x213e('0x27')]()[_0x213e('0x26')](function(){_0x36b950[_0x213e('0x1c')](0xcc)[_0x213e('0x1b')]();});}};}function handleEntityNotFound(_0x57bda5,_0x9d5732){return function(_0x3fb09a){if(!_0x3fb09a){_0x57bda5['sendStatus'](0x194);}return _0x3fb09a;};}function handleError(_0x3d7979,_0x2cfe90){_0x2cfe90=_0x2cfe90||0x1f4;return function(_0x5e80cb){logger[_0x213e('0x28')](_0x5e80cb['stack']);if(_0x5e80cb[_0x213e('0x29')]){delete _0x5e80cb[_0x213e('0x29')];}_0x3d7979['status'](_0x2cfe90)[_0x213e('0x2a')](_0x5e80cb);};}exports[_0x213e('0x2b')]=function(_0x50b507,_0x39449b){var _0x8266b={},_0x2e712c={},_0x36f332={'count':0x0,'rows':[]};var _0x35059d=_[_0x213e('0x2c')](db[_0x213e('0x2d')][_0x213e('0x2e')],function(_0x4b0214){return{'name':_0x4b0214[_0x213e('0x2f')],'type':_0x4b0214['type']['key']};});_0x2e712c[_0x213e('0x30')]=_[_0x213e('0x2c')](_0x35059d,_0x213e('0x29'));_0x2e712c[_0x213e('0x31')]=_[_0x213e('0x32')](_0x50b507[_0x213e('0x31')]);_0x2e712c[_0x213e('0x33')]=_['intersection'](_0x2e712c[_0x213e('0x30')],_0x2e712c[_0x213e('0x31')]);_0x8266b[_0x213e('0x34')]=_[_0x213e('0x35')](_0x2e712c[_0x213e('0x30')],qs[_0x213e('0x36')](_0x50b507[_0x213e('0x31')][_0x213e('0x36')]));_0x8266b['attributes']=_0x8266b[_0x213e('0x34')][_0x213e('0x37')]?_0x8266b['attributes']:_0x2e712c['model'];if(!_0x50b507[_0x213e('0x31')]['hasOwnProperty'](_0x213e('0x38'))){_0x8266b[_0x213e('0x1f')]=qs['limit'](_0x50b507[_0x213e('0x31')][_0x213e('0x1f')]);_0x8266b[_0x213e('0x1d')]=qs[_0x213e('0x1d')](_0x50b507[_0x213e('0x31')][_0x213e('0x1d')]);}_0x8266b[_0x213e('0x39')]=qs['sort'](_0x50b507[_0x213e('0x31')][_0x213e('0x3a')]);_0x8266b['where']=qs[_0x213e('0x33')](_[_0x213e('0x3b')](_0x50b507[_0x213e('0x31')],_0x2e712c[_0x213e('0x33')]),_0x35059d);if(_0x50b507['query'][_0x213e('0x3c')]){_0x8266b[_0x213e('0x3d')]=_[_0x213e('0x3e')](_0x8266b[_0x213e('0x3d')],{'$or':_[_0x213e('0x2c')](_0x35059d,function(_0x19f239){if(_0x19f239[_0x213e('0x3f')]!=='VIRTUAL'){var _0x343849={};_0x343849[_0x19f239[_0x213e('0x29')]]={'$like':'%'+_0x50b507[_0x213e('0x31')][_0x213e('0x3c')]+'%'};return _0x343849;}})});}_0x8266b=_[_0x213e('0x3e')]({},_0x8266b,_0x50b507['options']);var _0x1e4dc8={'where':_0x8266b[_0x213e('0x3d')]};return db[_0x213e('0x2d')][_0x213e('0x20')](_0x1e4dc8)['then'](function(_0x13a271){_0x36f332['count']=_0x13a271;if(_0x50b507[_0x213e('0x31')]['includeAll']){_0x8266b[_0x213e('0x40')]=[{'all':!![]}];}return db[_0x213e('0x2d')][_0x213e('0x41')](_0x8266b);})[_0x213e('0x26')](function(_0x5d63f7){_0x36f332['rows']=_0x5d63f7;return _0x36f332;})[_0x213e('0x26')](respondWithFilteredResult(_0x39449b,_0x8266b))[_0x213e('0x42')](handleError(_0x39449b,null));};exports[_0x213e('0x43')]=function(_0x1a5c5d,_0x4a909f){var _0x367ffa={'raw':!![],'where':{'id':_0x1a5c5d[_0x213e('0x44')]['id']}},_0x489edc={};_0x489edc[_0x213e('0x30')]=_[_0x213e('0x32')](db[_0x213e('0x2d')][_0x213e('0x2e')]);_0x489edc[_0x213e('0x31')]=_[_0x213e('0x32')](_0x1a5c5d[_0x213e('0x31')]);_0x489edc[_0x213e('0x33')]=_[_0x213e('0x35')](_0x489edc['model'],_0x489edc[_0x213e('0x31')]);_0x367ffa[_0x213e('0x34')]=_['intersection'](_0x489edc[_0x213e('0x30')],qs['fields'](_0x1a5c5d['query'][_0x213e('0x36')]));_0x367ffa[_0x213e('0x34')]=_0x367ffa['attributes']['length']?_0x367ffa[_0x213e('0x34')]:_0x489edc[_0x213e('0x30')];if(_0x1a5c5d[_0x213e('0x31')][_0x213e('0x45')]){_0x367ffa[_0x213e('0x40')]=[{'all':!![]}];}_0x367ffa=_['merge']({},_0x367ffa,_0x1a5c5d[_0x213e('0x46')]);return db['VtigerField'][_0x213e('0x47')](_0x367ffa)[_0x213e('0x26')](handleEntityNotFound(_0x4a909f,null))[_0x213e('0x26')](respondWithResult(_0x4a909f,null))[_0x213e('0x42')](handleError(_0x4a909f,null));};exports[_0x213e('0x48')]=function(_0x447be7,_0x993a3){return db['VtigerField'][_0x213e('0x48')](_0x447be7[_0x213e('0x49')],{})[_0x213e('0x26')](respondWithResult(_0x993a3,0xc9))['catch'](handleError(_0x993a3,null));};exports[_0x213e('0x4a')]=function(_0x43fb77,_0x4aa131){if(_0x43fb77['body']['id']){delete _0x43fb77[_0x213e('0x49')]['id'];}return db[_0x213e('0x2d')][_0x213e('0x47')]({'where':{'id':_0x43fb77[_0x213e('0x44')]['id']}})['then'](handleEntityNotFound(_0x4aa131,null))['then'](saveUpdates(_0x43fb77[_0x213e('0x49')],null))[_0x213e('0x26')](respondWithResult(_0x4aa131,null))[_0x213e('0x42')](handleError(_0x4aa131,null));};exports[_0x213e('0x27')]=function(_0x366f09,_0x44fc1a){return db['VtigerField']['find']({'where':{'id':_0x366f09[_0x213e('0x44')]['id']}})['then'](handleEntityNotFound(_0x44fc1a,null))[_0x213e('0x26')](removeEntity(_0x44fc1a,null))[_0x213e('0x42')](handleError(_0x44fc1a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb2c=['rimraf','VtigerField','int_vtiger_fields','idField','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x5102d3,_0x2a0a07){var _0x4e16bb=function(_0x524d67){while(--_0x524d67){_0x5102d3['push'](_0x5102d3['shift']());}};_0x4e16bb(++_0x2a0a07);}(_0xbb2c,0x185));var _0xcbb2=function(_0x12ef19,_0x1740c1){_0x12ef19=_0x12ef19-0x0;var _0x3149d6=_0xbb2c[_0x12ef19];return _0x3149d6;};'use strict';var _=require(_0xcbb2('0x0'));var util=require(_0xcbb2('0x1'));var logger=require(_0xcbb2('0x2'))('api');var moment=require(_0xcbb2('0x3'));var BPromise=require(_0xcbb2('0x4'));var rp=require(_0xcbb2('0x5'));var fs=require('fs');var path=require(_0xcbb2('0x6'));var rimraf=require(_0xcbb2('0x7'));var config=require('../../config/environment');var attributes=require('./intVtigerField.attributes');module['exports']=function(_0x205ba8,_0x374ec1){return _0x205ba8['define'](_0xcbb2('0x8'),attributes,{'tableName':_0xcbb2('0x9'),'paranoid':![],'indexes':[{'name':'vtiger_unique_index','fields':[_0xcbb2('0xa'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x799c=['VtigerField','int_vtiger_fields','vtiger_unique_index','idField','FieldId','lodash','util','../../config/logger','bluebird','request-promise','rimraf','../../config/environment','./intVtigerField.attributes','exports','define'];(function(_0x527824,_0xc824a9){var _0xc8b8ed=function(_0x1b0e19){while(--_0x1b0e19){_0x527824['push'](_0x527824['shift']());}};_0xc8b8ed(++_0xc824a9);}(_0x799c,0x9b));var _0xc799=function(_0x2aaeab,_0x3aa20d){_0x2aaeab=_0x2aaeab-0x0;var _0x35b164=_0x799c[_0x2aaeab];return _0x35b164;};'use strict';var _=require(_0xc799('0x0'));var util=require(_0xc799('0x1'));var logger=require(_0xc799('0x2'))('api');var moment=require('moment');var BPromise=require(_0xc799('0x3'));var rp=require(_0xc799('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc799('0x5'));var config=require(_0xc799('0x6'));var attributes=require(_0xc799('0x7'));module[_0xc799('0x8')]=function(_0x7b9e8b,_0x448486){return _0x7b9e8b[_0xc799('0x9')](_0xc799('0xa'),attributes,{'tableName':_0xc799('0xb'),'paranoid':![],'indexes':[{'name':_0xc799('0xc'),'fields':[_0xc799('0xd'),_0xc799('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69c5=['request','then','info','request\x20sent','debug','stringify','error','code','VtigerField,\x20%s,\x20%s','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http'];(function(_0x1cb84c,_0x576b00){var _0x1ff4ed=function(_0x27e6b4){while(--_0x27e6b4){_0x1cb84c['push'](_0x1cb84c['shift']());}};_0x1ff4ed(++_0x576b00);}(_0x69c5,0x15c));var _0x569c=function(_0x51bc5e,_0x2c40c6){_0x51bc5e=_0x51bc5e-0x0;var _0x428582=_0x69c5[_0x51bc5e];return _0x428582;};'use strict';var _=require(_0x569c('0x0'));var util=require(_0x569c('0x1'));var moment=require(_0x569c('0x2'));var BPromise=require('bluebird');var rs=require(_0x569c('0x3'));var fs=require('fs');var Redis=require(_0x569c('0x4'));var db=require(_0x569c('0x5'))['db'];var utils=require(_0x569c('0x6'));var logger=require(_0x569c('0x7'))('rpc');var config=require(_0x569c('0x8'));var jayson=require(_0x569c('0x9'));var client=jayson[_0x569c('0xa')][_0x569c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5cf920,_0x5c93c3,_0x359aef){return new BPromise(function(_0x1d5c02,_0xd3a65f){return client[_0x569c('0xc')](_0x5cf920,_0x359aef)[_0x569c('0xd')](function(_0x4c714f){logger[_0x569c('0xe')]('VtigerField,\x20%s,\x20%s',_0x5c93c3,_0x569c('0xf'));logger[_0x569c('0x10')]('VtigerField,\x20%s,\x20%s,\x20%s',_0x5c93c3,_0x569c('0xf'),JSON[_0x569c('0x11')](_0x4c714f));if(_0x4c714f['error']){if(_0x4c714f[_0x569c('0x12')][_0x569c('0x13')]===0x1f4){logger['error'](_0x569c('0x14'),_0x5c93c3,_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);return _0xd3a65f(_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);}logger[_0x569c('0x12')](_0x569c('0x14'),_0x5c93c3,_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);return _0x1d5c02(_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);}else{logger[_0x569c('0xe')](_0x569c('0x14'),_0x5c93c3,'request\x20sent');_0x1d5c02(_0x4c714f[_0x569c('0x16')][_0x569c('0x15')]);}})[_0x569c('0x17')](function(_0x34a9aa){logger[_0x569c('0x12')](_0x569c('0x14'),_0x5c93c3,_0x34a9aa);_0xd3a65f(_0x34a9aa);});});}
\ No newline at end of file
+var _0x0737=['jayson/promise','request','then','info','VtigerField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger'];(function(_0x2073ad,_0x569e7e){var _0x2ee4a3=function(_0x2c9710){while(--_0x2c9710){_0x2073ad['push'](_0x2073ad['shift']());}};_0x2ee4a3(++_0x569e7e);}(_0x0737,0x116));var _0x7073=function(_0x1cac4d,_0x14335e){_0x1cac4d=_0x1cac4d-0x0;var _0xfdc1f8=_0x0737[_0x1cac4d];return _0xfdc1f8;};'use strict';var _=require(_0x7073('0x0'));var util=require(_0x7073('0x1'));var moment=require(_0x7073('0x2'));var BPromise=require(_0x7073('0x3'));var rs=require(_0x7073('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7073('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x7073('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x7073('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3e1d64,_0x4f0bfa,_0x5e333d){return new BPromise(function(_0x3161cc,_0x589b08){return client[_0x7073('0x8')](_0x3e1d64,_0x5e333d)[_0x7073('0x9')](function(_0x1d4323){logger[_0x7073('0xa')](_0x7073('0xb'),_0x4f0bfa,_0x7073('0xc'));logger[_0x7073('0xd')]('VtigerField,\x20%s,\x20%s,\x20%s',_0x4f0bfa,'request\x20sent',JSON[_0x7073('0xe')](_0x1d4323));if(_0x1d4323['error']){if(_0x1d4323[_0x7073('0xf')][_0x7073('0x10')]===0x1f4){logger[_0x7073('0xf')]('VtigerField,\x20%s,\x20%s',_0x4f0bfa,_0x1d4323['error'][_0x7073('0x11')]);return _0x589b08(_0x1d4323['error'][_0x7073('0x11')]);}logger[_0x7073('0xf')](_0x7073('0xb'),_0x4f0bfa,_0x1d4323[_0x7073('0xf')]['message']);return _0x3161cc(_0x1d4323[_0x7073('0xf')][_0x7073('0x11')]);}else{logger[_0x7073('0xa')](_0x7073('0xb'),_0x4f0bfa,_0x7073('0xc'));_0x3161cc(_0x1d4323['result']['message']);}})[_0x7073('0x12')](function(_0x2b78cd){logger['error'](_0x7073('0xb'),_0x4f0bfa,_0x2b78cd);_0x589b08(_0x2b78cd);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95c9=['update','delete','destroy','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskAccount.controller','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put'];(function(_0x1acbd3,_0x404331){var _0x50ae1f=function(_0xea2d9a){while(--_0xea2d9a){_0x1acbd3['push'](_0x1acbd3['shift']());}};_0x50ae1f(++_0x404331);}(_0x95c9,0x1e7));var _0x995c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x95c9[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x995c('0x0'));var timeout=require('connect-timeout');var express=require(_0x995c('0x1'));var router=express['Router']();var fs_extra=require(_0x995c('0x2'));var auth=require(_0x995c('0x3'));var interaction=require(_0x995c('0x4'));var config=require(_0x995c('0x5'));var controller=require(_0x995c('0x6'));router[_0x995c('0x7')]('/',auth[_0x995c('0x8')](),controller[_0x995c('0x9')]);router['get'](_0x995c('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x995c('0x7')](_0x995c('0xb'),auth[_0x995c('0x8')](),controller[_0x995c('0xc')]);router[_0x995c('0x7')](_0x995c('0xd'),auth[_0x995c('0x8')](),controller[_0x995c('0xe')]);router[_0x995c('0xf')]('/',auth[_0x995c('0x8')](),controller[_0x995c('0x10')]);router[_0x995c('0xf')]('/:id/configurations',auth[_0x995c('0x8')](),controller[_0x995c('0x11')]);router[_0x995c('0x12')](_0x995c('0xa'),auth[_0x995c('0x8')](),controller[_0x995c('0x13')]);router[_0x995c('0x14')](_0x995c('0xa'),auth[_0x995c('0x8')](),controller[_0x995c('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0x69d1=['isAuthenticated','index','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','/:id','update','delete','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../config/environment','./intZendeskAccount.controller','get'];(function(_0x42bb6d,_0x412255){var _0x1db89b=function(_0x5da43a){while(--_0x5da43a){_0x42bb6d['push'](_0x42bb6d['shift']());}};_0x1db89b(++_0x412255);}(_0x69d1,0x98));var _0x169d=function(_0x57d7f7,_0x335c81){_0x57d7f7=_0x57d7f7-0x0;var _0x1a6800=_0x69d1[_0x57d7f7];return _0x1a6800;};'use strict';var multer=require(_0x169d('0x0'));var util=require(_0x169d('0x1'));var path=require(_0x169d('0x2'));var timeout=require('connect-timeout');var express=require(_0x169d('0x3'));var router=express['Router']();var fs_extra=require(_0x169d('0x4'));var auth=require(_0x169d('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x169d('0x6'));var controller=require(_0x169d('0x7'));router[_0x169d('0x8')]('/',auth[_0x169d('0x9')](),controller[_0x169d('0xa')]);router[_0x169d('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x169d('0xb')]);router['get'](_0x169d('0xc'),auth[_0x169d('0x9')](),controller[_0x169d('0xd')]);router[_0x169d('0x8')](_0x169d('0xe'),auth[_0x169d('0x9')](),controller[_0x169d('0xf')]);router[_0x169d('0x10')]('/',auth[_0x169d('0x9')](),controller[_0x169d('0x11')]);router['post'](_0x169d('0xc'),auth['isAuthenticated'](),controller[_0x169d('0x12')]);router['put'](_0x169d('0x13'),auth[_0x169d('0x9')](),controller[_0x169d('0x14')]);router[_0x169d('0x15')](_0x169d('0x13'),auth[_0x169d('0x9')](),controller['destroy']);module[_0x169d('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1751=['STRING','username','remoteUri','ENUM','password','token','integrationTab','newTab','sequelize','exports'];(function(_0x3682d4,_0x45a786){var _0x213aa8=function(_0x26ee85){while(--_0x26ee85){_0x3682d4['push'](_0x3682d4['shift']());}};_0x213aa8(++_0x45a786);}(_0x1751,0x76));var _0x1175=function(_0x3e0cbd,_0x187b43){_0x3e0cbd=_0x3e0cbd-0x0;var _0x3583fe=_0x1751[_0x3e0cbd];return _0x3583fe;};'use strict';var Sequelize=require(_0x1175('0x0'));module[_0x1175('0x1')]={'name':{'type':Sequelize[_0x1175('0x2')]},'description':{'type':Sequelize[_0x1175('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x1175('0x3')},'password':{'type':Sequelize[_0x1175('0x2')]},'token':{'type':Sequelize[_0x1175('0x2')]},'remoteUri':{'type':Sequelize[_0x1175('0x2')],'unique':_0x1175('0x4')},'authType':{'type':Sequelize[_0x1175('0x5')](_0x1175('0x6'),_0x1175('0x7')),'defaultValue':_0x1175('0x6')},'serverUrl':{'type':Sequelize[_0x1175('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x1175('0x5')](_0x1175('0x8'),_0x1175('0x9')),'defaultValue':_0x1175('0x8')}};
\ No newline at end of file
+var _0x5226=['exports','STRING','ENUM','token','password','integrationTab','newTab','sequelize'];(function(_0x470ce2,_0x4b3815){var _0x739076=function(_0x1f16f3){while(--_0x1f16f3){_0x470ce2['push'](_0x470ce2['shift']());}};_0x739076(++_0x4b3815);}(_0x5226,0x137));var _0x6522=function(_0xa157e,_0x16aa82){_0xa157e=_0xa157e-0x0;var _0x1b8e53=_0x5226[_0xa157e];return _0x1b8e53;};'use strict';var Sequelize=require(_0x6522('0x0'));module[_0x6522('0x1')]={'name':{'type':Sequelize[_0x6522('0x2')]},'description':{'type':Sequelize[_0x6522('0x2')]},'username':{'type':Sequelize[_0x6522('0x2')],'unique':'username'},'password':{'type':Sequelize[_0x6522('0x2')]},'token':{'type':Sequelize[_0x6522('0x2')]},'remoteUri':{'type':Sequelize[_0x6522('0x2')],'unique':'remoteUri'},'authType':{'type':Sequelize[_0x6522('0x3')]('password',_0x6522('0x4')),'defaultValue':_0x6522('0x5')},'serverUrl':{'type':Sequelize[_0x6522('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x6522('0x3')](_0x6522('0x6'),_0x6522('0x7')),'defaultValue':_0x6522('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bb5=['offset','limit','undefined','count','set','json','reject','save','update','then','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','ZendeskAccount','include','findAll','rows','catch','show','params','includeAll','create','body','find','destroy','getConfigurations','findOne','ZendeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','username','password','authType','remoteUri','substring','GET','%s/%s','ticket_fields','headers','format','Basic\x20%s','token','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','description','group','assignee','remove','includes','position','title','system_field_options','custom_field_options','test','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status'];(function(_0x45bec8,_0x5933f7){var _0x5ab1d0=function(_0x45c2a7){while(--_0x45c2a7){_0x45bec8['push'](_0x45bec8['shift']());}};_0x5ab1d0(++_0x5933f7);}(_0x0bb5,0x148));var _0x50bb=function(_0xe47eaf,_0x1e810a){_0xe47eaf=_0xe47eaf-0x0;var _0x375fe2=_0x0bb5[_0xe47eaf];return _0x375fe2;};'use strict';var emlformat=require(_0x50bb('0x0'));var rimraf=require(_0x50bb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x50bb('0x2'));var moment=require(_0x50bb('0x3'));var BPromise=require(_0x50bb('0x4'));var Mustache=require(_0x50bb('0x5'));var util=require(_0x50bb('0x6'));var path=require(_0x50bb('0x7'));var sox=require(_0x50bb('0x8'));var csv=require(_0x50bb('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x50bb('0xa'));var squel=require(_0x50bb('0xb'));var crypto=require(_0x50bb('0xc'));var jsforce=require(_0x50bb('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x50bb('0xe'));var Papa=require(_0x50bb('0xf'));var Redis=require(_0x50bb('0x10'));var authService=require(_0x50bb('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x50bb('0x12'));var hardwareService=require(_0x50bb('0x13'));var logger=require(_0x50bb('0x14'))(_0x50bb('0x15'));var utils=require(_0x50bb('0x16'));var config=require(_0x50bb('0x17'));var licenseUtil=require(_0x50bb('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x50bb('0x19'));function respondWithStatusCode(_0x58837d,_0x283f04){_0x283f04=_0x283f04||0xcc;return function(_0xd8ab27){if(_0xd8ab27){return _0x58837d[_0x50bb('0x1a')](_0x283f04);}return _0x58837d['status'](_0x283f04)[_0x50bb('0x1b')]();};}function respondWithResult(_0x309986,_0x3094f2){_0x3094f2=_0x3094f2||0xc8;return function(_0x5244b0){if(_0x5244b0){return _0x309986[_0x50bb('0x1c')](_0x3094f2)['json'](_0x5244b0);}};}function respondWithFilteredResult(_0x21befa,_0x3e1a51){return function(_0x253073){if(_0x253073){var _0x42ffab=typeof _0x3e1a51[_0x50bb('0x1d')]==='undefined'&&typeof _0x3e1a51[_0x50bb('0x1e')]===_0x50bb('0x1f');var _0x4b1f5f=_0x253073[_0x50bb('0x20')];var _0x4796ec=_0x42ffab?0x0:_0x3e1a51[_0x50bb('0x1d')];var _0x431ed4=_0x42ffab?_0x253073['count']:_0x3e1a51['offset']+_0x3e1a51[_0x50bb('0x1e')];var _0x1499dc;if(_0x431ed4>=_0x4b1f5f){_0x431ed4=_0x4b1f5f;_0x1499dc=0xc8;}else{_0x1499dc=0xce;}_0x21befa[_0x50bb('0x1c')](_0x1499dc);return _0x21befa[_0x50bb('0x21')]('Content-Range',_0x4796ec+'-'+_0x431ed4+'/'+_0x4b1f5f)[_0x50bb('0x22')](_0x253073);}return null;};}function patchUpdates(_0x32bfc3){return function(_0x4020a0){try{jsonpatch['apply'](_0x4020a0,_0x32bfc3,!![]);}catch(_0x3104c8){return BPromise[_0x50bb('0x23')](_0x3104c8);}return _0x4020a0[_0x50bb('0x24')]();};}function saveUpdates(_0x4825f8,_0x1dbba2){return function(_0x4cc7f9){if(_0x4cc7f9){return _0x4cc7f9[_0x50bb('0x25')](_0x4825f8)[_0x50bb('0x26')](function(_0x1a2a0b){return _0x1a2a0b;});}return null;};}function removeEntity(_0x2ee87a,_0x846311){return function(_0x342078){if(_0x342078){return _0x342078['destroy']()[_0x50bb('0x26')](function(){_0x2ee87a[_0x50bb('0x1c')](0xcc)[_0x50bb('0x1b')]();});}};}function handleEntityNotFound(_0x3462c1,_0x5234d7){return function(_0x75fea6){if(!_0x75fea6){_0x3462c1['sendStatus'](0x194);}return _0x75fea6;};}function handleError(_0x55e87b,_0x2befd9){_0x2befd9=_0x2befd9||0x1f4;return function(_0x491632){logger['error'](_0x491632[_0x50bb('0x27')]);if(_0x491632[_0x50bb('0x28')]){delete _0x491632[_0x50bb('0x28')];}_0x55e87b[_0x50bb('0x1c')](_0x2befd9)[_0x50bb('0x29')](_0x491632);};}exports[_0x50bb('0x2a')]=function(_0x41a8ad,_0x41d479){var _0x4f7514={},_0x44ce86={},_0x461cf3={'count':0x0,'rows':[]};var _0x15ee2e=_[_0x50bb('0x2b')](db['ZendeskAccount'][_0x50bb('0x2c')],function(_0x1a62fb){return{'name':_0x1a62fb[_0x50bb('0x2d')],'type':_0x1a62fb[_0x50bb('0x2e')][_0x50bb('0x2f')]};});_0x44ce86[_0x50bb('0x30')]=_[_0x50bb('0x2b')](_0x15ee2e,_0x50bb('0x28'));_0x44ce86[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x41a8ad[_0x50bb('0x31')]);_0x44ce86[_0x50bb('0x33')]=_['intersection'](_0x44ce86[_0x50bb('0x30')],_0x44ce86[_0x50bb('0x31')]);_0x4f7514[_0x50bb('0x34')]=_[_0x50bb('0x35')](_0x44ce86[_0x50bb('0x30')],qs[_0x50bb('0x36')](_0x41a8ad[_0x50bb('0x31')][_0x50bb('0x36')]));_0x4f7514[_0x50bb('0x34')]=_0x4f7514[_0x50bb('0x34')][_0x50bb('0x37')]?_0x4f7514['attributes']:_0x44ce86[_0x50bb('0x30')];if(!_0x41a8ad[_0x50bb('0x31')][_0x50bb('0x38')](_0x50bb('0x39'))){_0x4f7514[_0x50bb('0x1e')]=qs[_0x50bb('0x1e')](_0x41a8ad['query']['limit']);_0x4f7514[_0x50bb('0x1d')]=qs['offset'](_0x41a8ad[_0x50bb('0x31')][_0x50bb('0x1d')]);}_0x4f7514[_0x50bb('0x3a')]=qs[_0x50bb('0x3b')](_0x41a8ad[_0x50bb('0x31')]['sort']);_0x4f7514[_0x50bb('0x3c')]=qs['filters'](_[_0x50bb('0x3d')](_0x41a8ad[_0x50bb('0x31')],_0x44ce86[_0x50bb('0x33')]),_0x15ee2e);if(_0x41a8ad['query']['filter']){_0x4f7514[_0x50bb('0x3c')]=_[_0x50bb('0x3e')](_0x4f7514[_0x50bb('0x3c')],{'$or':_[_0x50bb('0x2b')](_0x15ee2e,function(_0x51750b){if(_0x51750b[_0x50bb('0x2e')]!=='VIRTUAL'){var _0x52059b={};_0x52059b[_0x51750b[_0x50bb('0x28')]]={'$like':'%'+_0x41a8ad['query'][_0x50bb('0x3f')]+'%'};return _0x52059b;}})});}_0x4f7514=_[_0x50bb('0x3e')]({},_0x4f7514,_0x41a8ad[_0x50bb('0x40')]);var _0x1f156e={'where':_0x4f7514[_0x50bb('0x3c')]};return db[_0x50bb('0x41')][_0x50bb('0x20')](_0x1f156e)[_0x50bb('0x26')](function(_0x46039a){_0x461cf3[_0x50bb('0x20')]=_0x46039a;if(_0x41a8ad['query']['includeAll']){_0x4f7514[_0x50bb('0x42')]=[{'all':!![]}];}return db[_0x50bb('0x41')][_0x50bb('0x43')](_0x4f7514);})[_0x50bb('0x26')](function(_0x5e8085){_0x461cf3[_0x50bb('0x44')]=_0x5e8085;return _0x461cf3;})['then'](respondWithFilteredResult(_0x41d479,_0x4f7514))[_0x50bb('0x45')](handleError(_0x41d479,null));};exports[_0x50bb('0x46')]=function(_0x379944,_0x40748d){var _0x1c438b={'raw':![],'where':{'id':_0x379944[_0x50bb('0x47')]['id']}},_0x355726={};_0x355726[_0x50bb('0x30')]=_[_0x50bb('0x32')](db[_0x50bb('0x41')][_0x50bb('0x2c')]);_0x355726[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x379944[_0x50bb('0x31')]);_0x355726[_0x50bb('0x33')]=_[_0x50bb('0x35')](_0x355726['model'],_0x355726[_0x50bb('0x31')]);_0x1c438b['attributes']=_[_0x50bb('0x35')](_0x355726[_0x50bb('0x30')],qs[_0x50bb('0x36')](_0x379944[_0x50bb('0x31')][_0x50bb('0x36')]));_0x1c438b[_0x50bb('0x34')]=_0x1c438b[_0x50bb('0x34')][_0x50bb('0x37')]?_0x1c438b[_0x50bb('0x34')]:_0x355726[_0x50bb('0x30')];if(_0x379944[_0x50bb('0x31')][_0x50bb('0x48')]){_0x1c438b[_0x50bb('0x42')]=[{'all':!![]}];}_0x1c438b=_[_0x50bb('0x3e')]({},_0x1c438b,_0x379944['options']);return db[_0x50bb('0x41')]['find'](_0x1c438b)[_0x50bb('0x26')](handleEntityNotFound(_0x40748d,null))[_0x50bb('0x26')](respondWithResult(_0x40748d,null))[_0x50bb('0x45')](handleError(_0x40748d,null));};exports[_0x50bb('0x49')]=function(_0x650e91,_0x39ac1a){return db[_0x50bb('0x41')][_0x50bb('0x49')](_0x650e91['body'],{})[_0x50bb('0x26')](respondWithResult(_0x39ac1a,0xc9))[_0x50bb('0x45')](handleError(_0x39ac1a,null));};exports[_0x50bb('0x25')]=function(_0x13afe2,_0x3659c4){if(_0x13afe2['body']['id']){delete _0x13afe2[_0x50bb('0x4a')]['id'];}return db[_0x50bb('0x41')][_0x50bb('0x4b')]({'where':{'id':_0x13afe2[_0x50bb('0x47')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x3659c4,null))['then'](saveUpdates(_0x13afe2['body'],null))[_0x50bb('0x26')](respondWithResult(_0x3659c4,null))['catch'](handleError(_0x3659c4,null));};exports[_0x50bb('0x4c')]=function(_0x57ee0e,_0x4316e4){return db[_0x50bb('0x41')][_0x50bb('0x4b')]({'where':{'id':_0x57ee0e['params']['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x4316e4,null))[_0x50bb('0x26')](removeEntity(_0x4316e4,null))['catch'](handleError(_0x4316e4,null));};exports[_0x50bb('0x4d')]=function(_0x1dff6a,_0x8d62af,_0x3c525c){var _0x55a4a6={};var _0x33e71f={};var _0x46b51e;var _0x2e0032;return db[_0x50bb('0x41')][_0x50bb('0x4e')]({'where':{'id':_0x1dff6a['params']['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x8d62af,null))['then'](function(_0x38a775){if(_0x38a775){_0x46b51e=_0x38a775;_0x33e71f['model']=_['keys'](db[_0x50bb('0x4f')]['rawAttributes']);_0x33e71f['query']=_[_0x50bb('0x32')](_0x1dff6a[_0x50bb('0x31')]);_0x33e71f[_0x50bb('0x33')]=_[_0x50bb('0x35')](_0x33e71f[_0x50bb('0x30')],_0x33e71f[_0x50bb('0x31')]);_0x55a4a6[_0x50bb('0x34')]=_[_0x50bb('0x35')](_0x33e71f['model'],qs['fields'](_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x36')]));_0x55a4a6[_0x50bb('0x34')]=_0x55a4a6[_0x50bb('0x34')][_0x50bb('0x37')]?_0x55a4a6[_0x50bb('0x34')]:_0x33e71f[_0x50bb('0x30')];_0x55a4a6['order']=qs[_0x50bb('0x3b')](_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x3b')]);_0x55a4a6[_0x50bb('0x3c')]=qs[_0x50bb('0x33')](_['pick'](_0x1dff6a[_0x50bb('0x31')],_0x33e71f[_0x50bb('0x33')]));if(_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x3f')]){_0x55a4a6[_0x50bb('0x3c')]=_['merge'](_0x55a4a6[_0x50bb('0x3c')],{'$or':_['map'](_0x55a4a6['attributes'],function(_0x170761){var _0x3057f2={};_0x3057f2[_0x170761]={'$like':'%'+_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x3f')]+'%'};return _0x3057f2;})});}_0x55a4a6=_[_0x50bb('0x3e')]({},_0x55a4a6,_0x1dff6a[_0x50bb('0x40')]);return _0x46b51e[_0x50bb('0x4d')](_0x55a4a6);}})[_0x50bb('0x26')](function(_0x330299){if(_0x330299){_0x2e0032=_0x330299[_0x50bb('0x37')];if(!_0x1dff6a[_0x50bb('0x31')]['hasOwnProperty'](_0x50bb('0x39'))){_0x55a4a6['limit']=qs[_0x50bb('0x1e')](_0x1dff6a[_0x50bb('0x31')]['limit']);_0x55a4a6[_0x50bb('0x1d')]=qs[_0x50bb('0x1d')](_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x1d')]);}return _0x46b51e[_0x50bb('0x4d')](_0x55a4a6);}})[_0x50bb('0x26')](function(_0x2b7df6){if(_0x2b7df6){return _0x2b7df6?{'count':_0x2e0032,'rows':_0x2b7df6}:null;}})[_0x50bb('0x26')](respondWithResult(_0x8d62af,null))['catch'](handleError(_0x8d62af,null));};exports[_0x50bb('0x50')]=function(_0x2dc832,_0x3b17c8,_0x4a226d){if(_0x2dc832[_0x50bb('0x4a')]['id']){delete _0x2dc832[_0x50bb('0x4a')]['id'];}return db[_0x50bb('0x41')][_0x50bb('0x4e')]({'where':{'id':_0x2dc832[_0x50bb('0x47')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x3b17c8,null))['then'](function(_0xf47641){if(_0xf47641){_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x51')]=_0xf47641['id'];_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x52')]=integrations[_0x50bb('0x53')](_0x2dc832['body'][_0x50bb('0x54')],_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x2e')]);_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x55')]=integrations[_0x50bb('0x56')](_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x54')],_0x2dc832[_0x50bb('0x4a')]['type']);return db[_0x50bb('0x4f')][_0x50bb('0x49')](_0x2dc832[_0x50bb('0x4a')],{'include':[{'model':db[_0x50bb('0x57')],'as':_0x50bb('0x52')},{'model':db[_0x50bb('0x57')],'as':_0x50bb('0x55')}]});}return null;})[_0x50bb('0x26')](respondWithResult(_0x3b17c8,null))[_0x50bb('0x45')](handleError(_0x3b17c8,null));};exports['getFields']=function(_0x58ad41,_0x5babbc,_0x4159ad){var _0x5ba597='';return db['ZendeskAccount'][_0x50bb('0x4e')]({'where':{'id':_0x58ad41[_0x50bb('0x47')]['id']},'attributes':['id',_0x50bb('0x58'),_0x50bb('0x59'),'token',_0x50bb('0x5a'),_0x50bb('0x5b')]})['then'](handleEntityNotFound(_0x5babbc,null))[_0x50bb('0x26')](function(_0x51e64f){if(_0x51e64f){_0x5ba597=_0x51e64f[_0x50bb('0x5b')];var _0x239a82=_0x5ba597['slice'](-0x1);if(_0x239a82==='/'){_0x5ba597=_0x5ba597[_0x50bb('0x5c')](0x0,_0x5ba597['lastIndexOf'](_0x239a82));}var _0x8f5df6={'method':_0x50bb('0x5d'),'uri':util['format'](_0x50bb('0x5e'),_0x5ba597,_0x50bb('0x5f')),'json':!![]};switch(_0x51e64f[_0x50bb('0x5a')]){case'password':_0x8f5df6[_0x50bb('0x60')]={'Authorization':util[_0x50bb('0x61')](_0x50bb('0x62'),new Buffer(util[_0x50bb('0x61')]('%s:%s',_0x51e64f[_0x50bb('0x58')],_0x51e64f[_0x50bb('0x59')]))['toString']('base64'))};break;case _0x50bb('0x63'):_0x8f5df6[_0x50bb('0x60')]={'Authorization':util['format'](_0x50bb('0x62'),new Buffer(util[_0x50bb('0x61')](_0x50bb('0x64'),_0x51e64f[_0x50bb('0x58')],_0x51e64f[_0x50bb('0x63')]))['toString']('base64'))};break;default:throw new db[(_0x50bb('0x65'))][(_0x50bb('0x66'))](_0x50bb('0x67'));}return rp(_0x8f5df6);}})[_0x50bb('0x26')](function(_0x4b51d4){if(_0x4b51d4){var _0x1975f7=['subject',_0x50bb('0x68'),_0x50bb('0x69'),_0x50bb('0x6a')];_[_0x50bb('0x6b')](_0x4b51d4[_0x50bb('0x5f')],function(_0x217170){return _0x1975f7[_0x50bb('0x6c')](_0x217170['type']);});return{'count':_0x4b51d4[_0x50bb('0x5f')][_0x50bb('0x37')],'rows':_[_0x50bb('0x2b')](_0x4b51d4[_0x50bb('0x5f')],function(_0x5d2dc4){return{'id':_0x5d2dc4['id'],'name':_0x5d2dc4[_0x50bb('0x6d')]>0x7?_0x5d2dc4[_0x50bb('0x6e')]:_0x5d2dc4['type'],'custom':_0x5d2dc4[_0x50bb('0x6d')]>0x7?!![]:![],'options':_0x5d2dc4[_0x50bb('0x6f')]?_0x5d2dc4[_0x50bb('0x6f')]:_0x5d2dc4[_0x50bb('0x70')]?_0x5d2dc4[_0x50bb('0x70')]:[]};})};}})['then'](respondWithResult(_0x5babbc,null))['catch'](function(_0x145cf8){var _0x47e80f=_0x58ad41[_0x50bb('0x31')][_0x50bb('0x71')]?0x1f4:_0x145cf8['statusCode']||0x1f4;logger['error'](_0x50bb('0x72'),_0x50bb('0x73'),_0x47e80f,JSON[_0x50bb('0x74')](_0x145cf8));delete _0x145cf8['name'];if(_0x47e80f===0x191){_0x47e80f=0x190;}_0x5babbc[_0x50bb('0x1c')](_0x47e80f)[_0x50bb('0x29')](_0x58ad41[_0x50bb('0x31')][_0x50bb('0x71')]?{'message':_0x50bb('0x75'),'statusCode':_0x145cf8[_0x50bb('0x76')]}:_0x145cf8);});};
\ No newline at end of file
+var _0x02ce=['sendStatus','stack','name','send','index','map','ZendeskAccount','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','options','include','findAll','rows','catch','show','params','length','merge','find','create','body','ZendeskConfiguration','getConfigurations','addConfiguration','findOne','channel','getDescriptions','Subjects','ZendeskField','Descriptions','username','password','authType','remoteUri','GET','format','%s/%s','ticket_fields','headers','toString','base64','%s/token:%s','token','Sequelize','ValidationError','subject','description','group','assignee','remove','title','position','system_field_options','custom_field_options','error','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','end','status','offset','limit','undefined','count','set','reject','update','then','destroy'];(function(_0x5cacf4,_0x16e8a3){var _0x25fe46=function(_0x4282a8){while(--_0x4282a8){_0x5cacf4['push'](_0x5cacf4['shift']());}};_0x25fe46(++_0x16e8a3);}(_0x02ce,0x1ac));var _0xe02c=function(_0xed156d,_0x17e195){_0xed156d=_0xed156d-0x0;var _0x164dd7=_0x02ce[_0xed156d];return _0x164dd7;};'use strict';var emlformat=require(_0xe02c('0x0'));var rimraf=require(_0xe02c('0x1'));var zipdir=require(_0xe02c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe02c('0x3'));var moment=require('moment');var BPromise=require(_0xe02c('0x4'));var Mustache=require(_0xe02c('0x5'));var util=require(_0xe02c('0x6'));var path=require(_0xe02c('0x7'));var sox=require(_0xe02c('0x8'));var csv=require(_0xe02c('0x9'));var ejs=require(_0xe02c('0xa'));var fs=require('fs');var fs_extra=require(_0xe02c('0xb'));var _=require(_0xe02c('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe02c('0xd'));var deskjs=require(_0xe02c('0xe'));var toCsv=require(_0xe02c('0x9'));var querystring=require(_0xe02c('0xf'));var Papa=require(_0xe02c('0x10'));var Redis=require(_0xe02c('0x11'));var authService=require(_0xe02c('0x12'));var qs=require(_0xe02c('0x13'));var as=require(_0xe02c('0x14'));var hardwareService=require(_0xe02c('0x15'));var logger=require(_0xe02c('0x16'))(_0xe02c('0x17'));var utils=require(_0xe02c('0x18'));var config=require(_0xe02c('0x19'));var licenseUtil=require(_0xe02c('0x1a'));var db=require(_0xe02c('0x1b'))['db'];var integrations=require(_0xe02c('0x1c'));function respondWithStatusCode(_0x32fc45,_0x5d6d13){_0x5d6d13=_0x5d6d13||0xcc;return function(_0x43079c){if(_0x43079c){return _0x32fc45['sendStatus'](_0x5d6d13);}return _0x32fc45['status'](_0x5d6d13)[_0xe02c('0x1d')]();};}function respondWithResult(_0x56405a,_0x221910){_0x221910=_0x221910||0xc8;return function(_0x59614c){if(_0x59614c){return _0x56405a[_0xe02c('0x1e')](_0x221910)['json'](_0x59614c);}};}function respondWithFilteredResult(_0x256311,_0x366893){return function(_0x59f2f6){if(_0x59f2f6){var _0x10a2a6=typeof _0x366893[_0xe02c('0x1f')]==='undefined'&&typeof _0x366893[_0xe02c('0x20')]===_0xe02c('0x21');var _0x5a4583=_0x59f2f6['count'];var _0x3e37bf=_0x10a2a6?0x0:_0x366893['offset'];var _0x1f8f37=_0x10a2a6?_0x59f2f6[_0xe02c('0x22')]:_0x366893[_0xe02c('0x1f')]+_0x366893[_0xe02c('0x20')];var _0x3898dc;if(_0x1f8f37>=_0x5a4583){_0x1f8f37=_0x5a4583;_0x3898dc=0xc8;}else{_0x3898dc=0xce;}_0x256311['status'](_0x3898dc);return _0x256311[_0xe02c('0x23')]('Content-Range',_0x3e37bf+'-'+_0x1f8f37+'/'+_0x5a4583)['json'](_0x59f2f6);}return null;};}function patchUpdates(_0x393621){return function(_0x4514ac){try{jsonpatch['apply'](_0x4514ac,_0x393621,!![]);}catch(_0x3fe8f7){return BPromise[_0xe02c('0x24')](_0x3fe8f7);}return _0x4514ac['save']();};}function saveUpdates(_0x38dce2,_0x45fd82){return function(_0x39b00c){if(_0x39b00c){return _0x39b00c[_0xe02c('0x25')](_0x38dce2)[_0xe02c('0x26')](function(_0x557142){return _0x557142;});}return null;};}function removeEntity(_0x3e80e3,_0xf41d4c){return function(_0xeae877){if(_0xeae877){return _0xeae877[_0xe02c('0x27')]()[_0xe02c('0x26')](function(){_0x3e80e3['status'](0xcc)[_0xe02c('0x1d')]();});}};}function handleEntityNotFound(_0x4411d8,_0x3592ca){return function(_0x14ffba){if(!_0x14ffba){_0x4411d8[_0xe02c('0x28')](0x194);}return _0x14ffba;};}function handleError(_0x303d24,_0x43dc78){_0x43dc78=_0x43dc78||0x1f4;return function(_0x1c14d6){logger['error'](_0x1c14d6[_0xe02c('0x29')]);if(_0x1c14d6[_0xe02c('0x2a')]){delete _0x1c14d6[_0xe02c('0x2a')];}_0x303d24['status'](_0x43dc78)[_0xe02c('0x2b')](_0x1c14d6);};}exports[_0xe02c('0x2c')]=function(_0x445421,_0x287f7e){var _0x1e7eab={},_0x35a309={},_0x22a285={'count':0x0,'rows':[]};var _0x1b8f21=_[_0xe02c('0x2d')](db[_0xe02c('0x2e')][_0xe02c('0x2f')],function(_0x5a2da0){return{'name':_0x5a2da0[_0xe02c('0x30')],'type':_0x5a2da0[_0xe02c('0x31')][_0xe02c('0x32')]};});_0x35a309[_0xe02c('0x33')]=_[_0xe02c('0x2d')](_0x1b8f21,_0xe02c('0x2a'));_0x35a309['query']=_[_0xe02c('0x34')](_0x445421[_0xe02c('0x35')]);_0x35a309['filters']=_[_0xe02c('0x36')](_0x35a309[_0xe02c('0x33')],_0x35a309[_0xe02c('0x35')]);_0x1e7eab[_0xe02c('0x37')]=_[_0xe02c('0x36')](_0x35a309['model'],qs['fields'](_0x445421[_0xe02c('0x35')][_0xe02c('0x38')]));_0x1e7eab['attributes']=_0x1e7eab[_0xe02c('0x37')]['length']?_0x1e7eab[_0xe02c('0x37')]:_0x35a309[_0xe02c('0x33')];if(!_0x445421[_0xe02c('0x35')][_0xe02c('0x39')](_0xe02c('0x3a'))){_0x1e7eab['limit']=qs[_0xe02c('0x20')](_0x445421['query'][_0xe02c('0x20')]);_0x1e7eab[_0xe02c('0x1f')]=qs[_0xe02c('0x1f')](_0x445421[_0xe02c('0x35')][_0xe02c('0x1f')]);}_0x1e7eab[_0xe02c('0x3b')]=qs['sort'](_0x445421[_0xe02c('0x35')][_0xe02c('0x3c')]);_0x1e7eab['where']=qs[_0xe02c('0x3d')](_[_0xe02c('0x3e')](_0x445421['query'],_0x35a309[_0xe02c('0x3d')]),_0x1b8f21);if(_0x445421['query'][_0xe02c('0x3f')]){_0x1e7eab[_0xe02c('0x40')]=_['merge'](_0x1e7eab[_0xe02c('0x40')],{'$or':_[_0xe02c('0x2d')](_0x1b8f21,function(_0x2502c8){if(_0x2502c8[_0xe02c('0x31')]!==_0xe02c('0x41')){var _0x28922a={};_0x28922a[_0x2502c8['name']]={'$like':'%'+_0x445421[_0xe02c('0x35')]['filter']+'%'};return _0x28922a;}})});}_0x1e7eab=_['merge']({},_0x1e7eab,_0x445421[_0xe02c('0x42')]);var _0x1095fb={'where':_0x1e7eab[_0xe02c('0x40')]};return db[_0xe02c('0x2e')]['count'](_0x1095fb)[_0xe02c('0x26')](function(_0x17830e){_0x22a285[_0xe02c('0x22')]=_0x17830e;if(_0x445421['query']['includeAll']){_0x1e7eab[_0xe02c('0x43')]=[{'all':!![]}];}return db[_0xe02c('0x2e')][_0xe02c('0x44')](_0x1e7eab);})[_0xe02c('0x26')](function(_0x1b0876){_0x22a285[_0xe02c('0x45')]=_0x1b0876;return _0x22a285;})[_0xe02c('0x26')](respondWithFilteredResult(_0x287f7e,_0x1e7eab))[_0xe02c('0x46')](handleError(_0x287f7e,null));};exports[_0xe02c('0x47')]=function(_0x53d123,_0xc7e935){var _0x5ef4a1={'raw':![],'where':{'id':_0x53d123[_0xe02c('0x48')]['id']}},_0x4d4be5={};_0x4d4be5[_0xe02c('0x33')]=_[_0xe02c('0x34')](db[_0xe02c('0x2e')][_0xe02c('0x2f')]);_0x4d4be5[_0xe02c('0x35')]=_[_0xe02c('0x34')](_0x53d123[_0xe02c('0x35')]);_0x4d4be5['filters']=_['intersection'](_0x4d4be5[_0xe02c('0x33')],_0x4d4be5[_0xe02c('0x35')]);_0x5ef4a1[_0xe02c('0x37')]=_['intersection'](_0x4d4be5[_0xe02c('0x33')],qs[_0xe02c('0x38')](_0x53d123[_0xe02c('0x35')][_0xe02c('0x38')]));_0x5ef4a1[_0xe02c('0x37')]=_0x5ef4a1[_0xe02c('0x37')][_0xe02c('0x49')]?_0x5ef4a1[_0xe02c('0x37')]:_0x4d4be5[_0xe02c('0x33')];if(_0x53d123[_0xe02c('0x35')]['includeAll']){_0x5ef4a1[_0xe02c('0x43')]=[{'all':!![]}];}_0x5ef4a1=_[_0xe02c('0x4a')]({},_0x5ef4a1,_0x53d123[_0xe02c('0x42')]);return db[_0xe02c('0x2e')][_0xe02c('0x4b')](_0x5ef4a1)[_0xe02c('0x26')](handleEntityNotFound(_0xc7e935,null))[_0xe02c('0x26')](respondWithResult(_0xc7e935,null))[_0xe02c('0x46')](handleError(_0xc7e935,null));};exports[_0xe02c('0x4c')]=function(_0x1176c9,_0xfed475){return db[_0xe02c('0x2e')][_0xe02c('0x4c')](_0x1176c9['body'],{})[_0xe02c('0x26')](respondWithResult(_0xfed475,0xc9))['catch'](handleError(_0xfed475,null));};exports[_0xe02c('0x25')]=function(_0x324911,_0x45a6df){if(_0x324911[_0xe02c('0x4d')]['id']){delete _0x324911[_0xe02c('0x4d')]['id'];}return db[_0xe02c('0x2e')][_0xe02c('0x4b')]({'where':{'id':_0x324911[_0xe02c('0x48')]['id']}})[_0xe02c('0x26')](handleEntityNotFound(_0x45a6df,null))[_0xe02c('0x26')](saveUpdates(_0x324911['body'],null))[_0xe02c('0x26')](respondWithResult(_0x45a6df,null))[_0xe02c('0x46')](handleError(_0x45a6df,null));};exports[_0xe02c('0x27')]=function(_0x536cf7,_0xdab6cb){return db['ZendeskAccount'][_0xe02c('0x4b')]({'where':{'id':_0x536cf7['params']['id']}})['then'](handleEntityNotFound(_0xdab6cb,null))['then'](removeEntity(_0xdab6cb,null))['catch'](handleError(_0xdab6cb,null));};exports['getConfigurations']=function(_0x5740df,_0x107f3f,_0x3ac0a5){var _0x1510aa={};var _0x35fbe2={};var _0x5d963d;var _0x274beb;return db[_0xe02c('0x2e')]['findOne']({'where':{'id':_0x5740df[_0xe02c('0x48')]['id']}})[_0xe02c('0x26')](handleEntityNotFound(_0x107f3f,null))[_0xe02c('0x26')](function(_0x51f940){if(_0x51f940){_0x5d963d=_0x51f940;_0x35fbe2['model']=_[_0xe02c('0x34')](db[_0xe02c('0x4e')][_0xe02c('0x2f')]);_0x35fbe2['query']=_[_0xe02c('0x34')](_0x5740df['query']);_0x35fbe2['filters']=_[_0xe02c('0x36')](_0x35fbe2[_0xe02c('0x33')],_0x35fbe2['query']);_0x1510aa[_0xe02c('0x37')]=_[_0xe02c('0x36')](_0x35fbe2[_0xe02c('0x33')],qs['fields'](_0x5740df[_0xe02c('0x35')][_0xe02c('0x38')]));_0x1510aa['attributes']=_0x1510aa[_0xe02c('0x37')][_0xe02c('0x49')]?_0x1510aa[_0xe02c('0x37')]:_0x35fbe2[_0xe02c('0x33')];_0x1510aa[_0xe02c('0x3b')]=qs[_0xe02c('0x3c')](_0x5740df[_0xe02c('0x35')][_0xe02c('0x3c')]);_0x1510aa[_0xe02c('0x40')]=qs['filters'](_['pick'](_0x5740df['query'],_0x35fbe2[_0xe02c('0x3d')]));if(_0x5740df[_0xe02c('0x35')][_0xe02c('0x3f')]){_0x1510aa['where']=_['merge'](_0x1510aa[_0xe02c('0x40')],{'$or':_[_0xe02c('0x2d')](_0x1510aa[_0xe02c('0x37')],function(_0xb50cfa){var _0xe02798={};_0xe02798[_0xb50cfa]={'$like':'%'+_0x5740df['query'][_0xe02c('0x3f')]+'%'};return _0xe02798;})});}_0x1510aa=_[_0xe02c('0x4a')]({},_0x1510aa,_0x5740df['options']);return _0x5d963d['getConfigurations'](_0x1510aa);}})[_0xe02c('0x26')](function(_0x566204){if(_0x566204){_0x274beb=_0x566204['length'];if(!_0x5740df['query'][_0xe02c('0x39')](_0xe02c('0x3a'))){_0x1510aa[_0xe02c('0x20')]=qs[_0xe02c('0x20')](_0x5740df[_0xe02c('0x35')][_0xe02c('0x20')]);_0x1510aa['offset']=qs[_0xe02c('0x1f')](_0x5740df['query']['offset']);}return _0x5d963d[_0xe02c('0x4f')](_0x1510aa);}})[_0xe02c('0x26')](function(_0x44ba68){if(_0x44ba68){return _0x44ba68?{'count':_0x274beb,'rows':_0x44ba68}:null;}})[_0xe02c('0x26')](respondWithResult(_0x107f3f,null))['catch'](handleError(_0x107f3f,null));};exports[_0xe02c('0x50')]=function(_0x31c287,_0x5d2119,_0xa7133f){if(_0x31c287[_0xe02c('0x4d')]['id']){delete _0x31c287['body']['id'];}return db[_0xe02c('0x2e')][_0xe02c('0x51')]({'where':{'id':_0x31c287[_0xe02c('0x48')]['id']}})[_0xe02c('0x26')](handleEntityNotFound(_0x5d2119,null))[_0xe02c('0x26')](function(_0x3a62a2){if(_0x3a62a2){_0x31c287[_0xe02c('0x4d')]['AccountId']=_0x3a62a2['id'];_0x31c287[_0xe02c('0x4d')]['Subjects']=integrations['getSubjects'](_0x31c287['body'][_0xe02c('0x52')],_0x31c287[_0xe02c('0x4d')][_0xe02c('0x31')]);_0x31c287[_0xe02c('0x4d')]['Descriptions']=integrations[_0xe02c('0x53')](_0x31c287[_0xe02c('0x4d')]['channel'],_0x31c287['body']['type']);return db[_0xe02c('0x4e')][_0xe02c('0x4c')](_0x31c287['body'],{'include':[{'model':db['ZendeskField'],'as':_0xe02c('0x54')},{'model':db[_0xe02c('0x55')],'as':_0xe02c('0x56')}]});}return null;})[_0xe02c('0x26')](respondWithResult(_0x5d2119,null))[_0xe02c('0x46')](handleError(_0x5d2119,null));};exports['getFields']=function(_0x39c7db,_0x12ac9f,_0x3f277b){var _0x2776c0='';return db[_0xe02c('0x2e')][_0xe02c('0x51')]({'where':{'id':_0x39c7db['params']['id']},'attributes':['id',_0xe02c('0x57'),_0xe02c('0x58'),'token',_0xe02c('0x59'),_0xe02c('0x5a')]})[_0xe02c('0x26')](handleEntityNotFound(_0x12ac9f,null))[_0xe02c('0x26')](function(_0x5d2455){if(_0x5d2455){_0x2776c0=_0x5d2455[_0xe02c('0x5a')];var _0x2229ae=_0x2776c0['slice'](-0x1);if(_0x2229ae==='/'){_0x2776c0=_0x2776c0['substring'](0x0,_0x2776c0['lastIndexOf'](_0x2229ae));}var _0x43977c={'method':_0xe02c('0x5b'),'uri':util[_0xe02c('0x5c')](_0xe02c('0x5d'),_0x2776c0,_0xe02c('0x5e')),'json':!![]};switch(_0x5d2455['authType']){case _0xe02c('0x58'):_0x43977c[_0xe02c('0x5f')]={'Authorization':util[_0xe02c('0x5c')]('Basic\x20%s',new Buffer(util['format']('%s:%s',_0x5d2455[_0xe02c('0x57')],_0x5d2455[_0xe02c('0x58')]))[_0xe02c('0x60')](_0xe02c('0x61')))};break;case'token':_0x43977c[_0xe02c('0x5f')]={'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xe02c('0x5c')](_0xe02c('0x62'),_0x5d2455[_0xe02c('0x57')],_0x5d2455[_0xe02c('0x63')]))[_0xe02c('0x60')](_0xe02c('0x61')))};break;default:throw new db[(_0xe02c('0x64'))][(_0xe02c('0x65'))]('Unknown\x20authentication\x20type');}return rp(_0x43977c);}})[_0xe02c('0x26')](function(_0x21049f){if(_0x21049f){var _0x2386cf=[_0xe02c('0x66'),_0xe02c('0x67'),_0xe02c('0x68'),_0xe02c('0x69')];_[_0xe02c('0x6a')](_0x21049f[_0xe02c('0x5e')],function(_0x411cd5){return _0x2386cf['includes'](_0x411cd5['type']);});return{'count':_0x21049f[_0xe02c('0x5e')][_0xe02c('0x49')],'rows':_[_0xe02c('0x2d')](_0x21049f[_0xe02c('0x5e')],function(_0x108566){return{'id':_0x108566['id'],'name':_0x108566['position']>0x7?_0x108566[_0xe02c('0x6b')]:_0x108566[_0xe02c('0x31')],'custom':_0x108566[_0xe02c('0x6c')]>0x7?!![]:![],'options':_0x108566[_0xe02c('0x6d')]?_0x108566[_0xe02c('0x6d')]:_0x108566[_0xe02c('0x6e')]?_0x108566[_0xe02c('0x6e')]:[]};})};}})[_0xe02c('0x26')](respondWithResult(_0x12ac9f,null))[_0xe02c('0x46')](function(_0x159f58){var _0x287eca=_0x39c7db[_0xe02c('0x35')]['test']?0x1f4:_0x159f58['statusCode']||0x1f4;logger[_0xe02c('0x6f')](_0xe02c('0x70'),'getFields',_0x287eca,JSON[_0xe02c('0x71')](_0x159f58));delete _0x159f58['name'];if(_0x287eca===0x191){_0x287eca=0x190;}_0x12ac9f[_0xe02c('0x1e')](_0x287eca)['send'](_0x39c7db[_0xe02c('0x35')][_0xe02c('0x72')]?{'message':_0xe02c('0x73'),'statusCode':_0x159f58[_0xe02c('0x74')]}:_0x159f58);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed45=['./intZendeskAccount.attributes','../../components/integrations/configuration','exports','int_zendesk_accounts','../../config/logger','api','moment','path','../../config/environment'];(function(_0x5ecb61,_0x5a6851){var _0x1dcfb0=function(_0x377f1f){while(--_0x377f1f){_0x5ecb61['push'](_0x5ecb61['shift']());}};_0x1dcfb0(++_0x5a6851);}(_0xed45,0x8b));var _0x5ed4=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xed45[_0xbca1b1];return _0x4e1686;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5ed4('0x0'))(_0x5ed4('0x1'));var moment=require(_0x5ed4('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x5ed4('0x3'));var rimraf=require('rimraf');var config=require(_0x5ed4('0x4'));var attributes=require(_0x5ed4('0x5'));var integrations=require(_0x5ed4('0x6'));module[_0x5ed4('0x7')]=function(_0x44f260,_0x33dbd7){return _0x44f260['define']('ZendeskAccount',attributes,{'tableName':_0x5ed4('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x00dc=['define','ZendeskAccount','int_zendesk_accounts','lodash','util','../../config/logger','api','path','rimraf','../../config/environment','./intZendeskAccount.attributes','../../components/integrations/configuration','exports'];(function(_0x1d8990,_0x4382b5){var _0x5ce380=function(_0x195a34){while(--_0x195a34){_0x1d8990['push'](_0x1d8990['shift']());}};_0x5ce380(++_0x4382b5);}(_0x00dc,0x1e4));var _0xc00d=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x00dc[_0x397e5f];return _0x5302b8;};'use strict';var _=require(_0xc00d('0x0'));var util=require(_0xc00d('0x1'));var logger=require(_0xc00d('0x2'))(_0xc00d('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xc00d('0x4'));var rimraf=require(_0xc00d('0x5'));var config=require(_0xc00d('0x6'));var attributes=require(_0xc00d('0x7'));var integrations=require(_0xc00d('0x8'));module[_0xc00d('0x9')]=function(_0x48952c,_0x26e1e3){return _0x48952c[_0xc00d('0xa')](_0xc00d('0xb'),attributes,{'tableName':_0xc00d('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58c2=['then','stringify','catch','find','ShowZendeskAccount','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','message','info','GetZendeskAccount','ZendeskAccount','findAll','options','raw','include','map','model','attributes'];(function(_0xbb091,_0x3fe7ee){var _0x467a04=function(_0x3a978d){while(--_0x3a978d){_0xbb091['push'](_0xbb091['shift']());}};_0x467a04(++_0x3fe7ee);}(_0x58c2,0x170));var _0x258c=function(_0x199533,_0xe370c5){_0x199533=_0x199533-0x0;var _0x203348=_0x58c2[_0x199533];return _0x203348;};'use strict';var _=require(_0x258c('0x0'));var util=require(_0x258c('0x1'));var moment=require('moment');var BPromise=require(_0x258c('0x2'));var rs=require(_0x258c('0x3'));var fs=require('fs');var Redis=require(_0x258c('0x4'));var db=require(_0x258c('0x5'))['db'];var utils=require(_0x258c('0x6'));var logger=require(_0x258c('0x7'))('rpc');var config=require(_0x258c('0x8'));var jayson=require(_0x258c('0x9'));var client=jayson[_0x258c('0xa')][_0x258c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x34776f,_0x2b5792,_0x3bc276){return new BPromise(function(_0x22a735,_0x400943){return client['request'](_0x34776f,_0x3bc276)['then'](function(_0x376444){logger['info'](_0x258c('0xc'),_0x2b5792,_0x258c('0xd'));logger[_0x258c('0xe')](_0x258c('0xf'),_0x2b5792,_0x258c('0xd'),JSON['stringify'](_0x376444));if(_0x376444[_0x258c('0x10')]){if(_0x376444[_0x258c('0x10')]['code']===0x1f4){logger[_0x258c('0x10')](_0x258c('0xc'),_0x2b5792,_0x376444['error']['message']);return _0x400943(_0x376444[_0x258c('0x10')][_0x258c('0x11')]);}logger[_0x258c('0x10')]('ZendeskAccount,\x20%s,\x20%s',_0x2b5792,_0x376444[_0x258c('0x10')][_0x258c('0x11')]);return _0x22a735(_0x376444[_0x258c('0x10')][_0x258c('0x11')]);}else{logger[_0x258c('0x12')](_0x258c('0xc'),_0x2b5792,'request\x20sent');_0x22a735(_0x376444['result'][_0x258c('0x11')]);}})['catch'](function(_0x2aa6cd){logger['error'](_0x258c('0xc'),_0x2b5792,_0x2aa6cd);_0x400943(_0x2aa6cd);});});}exports[_0x258c('0x13')]=function(_0x5c29c7){var _0x3b9e2a=this;return new Promise(function(_0x188473,_0xc9832e){return db[_0x258c('0x14')][_0x258c('0x15')]({'raw':_0x5c29c7[_0x258c('0x16')]?_0x5c29c7[_0x258c('0x16')][_0x258c('0x17')]===undefined?!![]:![]:!![],'where':_0x5c29c7['options']?_0x5c29c7[_0x258c('0x16')]['where']||null:null,'attributes':_0x5c29c7[_0x258c('0x16')]?_0x5c29c7[_0x258c('0x16')]['attributes']||null:null,'limit':_0x5c29c7[_0x258c('0x16')]?_0x5c29c7[_0x258c('0x16')]['limit']||null:null,'include':_0x5c29c7['options']?_0x5c29c7[_0x258c('0x16')][_0x258c('0x18')]?_[_0x258c('0x19')](_0x5c29c7['options'][_0x258c('0x18')],function(_0xc56103){return{'model':db[_0xc56103[_0x258c('0x1a')]],'as':_0xc56103['as'],'attributes':_0xc56103[_0x258c('0x1b')],'include':_0xc56103[_0x258c('0x18')]?_[_0x258c('0x19')](_0xc56103[_0x258c('0x18')],function(_0xed3e5c){return{'model':db[_0xed3e5c[_0x258c('0x1a')]],'as':_0xed3e5c['as'],'attributes':_0xed3e5c[_0x258c('0x1b')],'include':_0xed3e5c[_0x258c('0x18')]?_['map'](_0xed3e5c[_0x258c('0x18')],function(_0x56cef4){return{'model':db[_0x56cef4[_0x258c('0x1a')]],'as':_0x56cef4['as'],'attributes':_0x56cef4[_0x258c('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x258c('0x1c')](function(_0x80bfcf){logger[_0x258c('0x12')](_0x258c('0x13'),_0x5c29c7);logger['debug'](_0x258c('0x13'),_0x5c29c7,JSON[_0x258c('0x1d')](_0x80bfcf));_0x188473(_0x80bfcf);})[_0x258c('0x1e')](function(_0x3a947c){logger['error'](_0x258c('0x13'),_0x3a947c[_0x258c('0x11')],_0x5c29c7);_0xc9832e(_0x3b9e2a[_0x258c('0x10')](0x1f4,_0x3a947c[_0x258c('0x11')]));});});};exports['ShowZendeskAccount']=function(_0x3b8a02){var _0x380b2d=this;return new Promise(function(_0x589a30,_0x167456){return db[_0x258c('0x14')][_0x258c('0x1f')]({'raw':_0x3b8a02[_0x258c('0x16')]?_0x3b8a02['options'][_0x258c('0x17')]===undefined?!![]:![]:!![],'where':_0x3b8a02[_0x258c('0x16')]?_0x3b8a02[_0x258c('0x16')]['where']||null:null,'attributes':_0x3b8a02[_0x258c('0x16')]?_0x3b8a02[_0x258c('0x16')][_0x258c('0x1b')]||null:null,'include':_0x3b8a02['options']?_0x3b8a02[_0x258c('0x16')]['include']?_['map'](_0x3b8a02['options'][_0x258c('0x18')],function(_0x28dce6){return{'model':db[_0x28dce6['model']],'as':_0x28dce6['as'],'attributes':_0x28dce6['attributes'],'include':_0x28dce6[_0x258c('0x18')]?_[_0x258c('0x19')](_0x28dce6[_0x258c('0x18')],function(_0x4728bd){return{'model':db[_0x4728bd[_0x258c('0x1a')]],'as':_0x4728bd['as'],'attributes':_0x4728bd[_0x258c('0x1b')],'include':_0x4728bd[_0x258c('0x18')]?_[_0x258c('0x19')](_0x4728bd[_0x258c('0x18')],function(_0x4acea7){return{'model':db[_0x4acea7[_0x258c('0x1a')]],'as':_0x4acea7['as'],'attributes':_0x4acea7[_0x258c('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x258c('0x1c')](function(_0x1097f2){logger[_0x258c('0x12')](_0x258c('0x20'),_0x3b8a02);logger[_0x258c('0xe')](_0x258c('0x20'),_0x3b8a02,JSON[_0x258c('0x1d')](_0x1097f2));_0x589a30(_0x1097f2);})[_0x258c('0x1e')](function(_0x40e8b5){logger['error'](_0x258c('0x20'),_0x40e8b5['message'],_0x3b8a02);_0x167456(_0x380b2d[_0x258c('0x10')](0x1f4,_0x40e8b5[_0x258c('0x11')]));});});};
\ No newline at end of file
+var _0x22a8=['model','attributes','ShowZendeskAccount','find','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','catch','GetZendeskAccount','ZendeskAccount','findAll','options','raw','where','limit','include','map'];(function(_0x259cf5,_0x581086){var _0x4c5b50=function(_0x3bf660){while(--_0x3bf660){_0x259cf5['push'](_0x259cf5['shift']());}};_0x4c5b50(++_0x581086);}(_0x22a8,0x16d));var _0x822a=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x22a8[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0x822a('0x0'));var util=require(_0x822a('0x1'));var moment=require(_0x822a('0x2'));var BPromise=require(_0x822a('0x3'));var rs=require(_0x822a('0x4'));var fs=require('fs');var Redis=require(_0x822a('0x5'));var db=require(_0x822a('0x6'))['db'];var utils=require(_0x822a('0x7'));var logger=require(_0x822a('0x8'))('rpc');var config=require(_0x822a('0x9'));var jayson=require(_0x822a('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3eeb4c,_0xded59d,_0x294b2c){return new BPromise(function(_0x5ebe98,_0x5108a5){return client[_0x822a('0xb')](_0x3eeb4c,_0x294b2c)[_0x822a('0xc')](function(_0x2a9a89){logger[_0x822a('0xd')](_0x822a('0xe'),_0xded59d,_0x822a('0xf'));logger[_0x822a('0x10')](_0x822a('0x11'),_0xded59d,_0x822a('0xf'),JSON['stringify'](_0x2a9a89));if(_0x2a9a89[_0x822a('0x12')]){if(_0x2a9a89[_0x822a('0x12')][_0x822a('0x13')]===0x1f4){logger[_0x822a('0x12')](_0x822a('0xe'),_0xded59d,_0x2a9a89[_0x822a('0x12')][_0x822a('0x14')]);return _0x5108a5(_0x2a9a89[_0x822a('0x12')][_0x822a('0x14')]);}logger[_0x822a('0x12')](_0x822a('0xe'),_0xded59d,_0x2a9a89[_0x822a('0x12')]['message']);return _0x5ebe98(_0x2a9a89['error'][_0x822a('0x14')]);}else{logger[_0x822a('0xd')](_0x822a('0xe'),_0xded59d,_0x822a('0xf'));_0x5ebe98(_0x2a9a89['result']['message']);}})[_0x822a('0x15')](function(_0x1c2225){logger[_0x822a('0x12')](_0x822a('0xe'),_0xded59d,_0x1c2225);_0x5108a5(_0x1c2225);});});}exports[_0x822a('0x16')]=function(_0x322898){var _0x353ad2=this;return new Promise(function(_0x2a20e1,_0x206f2a){return db[_0x822a('0x17')][_0x822a('0x18')]({'raw':_0x322898[_0x822a('0x19')]?_0x322898['options'][_0x822a('0x1a')]===undefined?!![]:![]:!![],'where':_0x322898[_0x822a('0x19')]?_0x322898[_0x822a('0x19')][_0x822a('0x1b')]||null:null,'attributes':_0x322898['options']?_0x322898['options']['attributes']||null:null,'limit':_0x322898['options']?_0x322898[_0x822a('0x19')][_0x822a('0x1c')]||null:null,'include':_0x322898['options']?_0x322898[_0x822a('0x19')][_0x822a('0x1d')]?_[_0x822a('0x1e')](_0x322898['options'][_0x822a('0x1d')],function(_0x1b0b63){return{'model':db[_0x1b0b63[_0x822a('0x1f')]],'as':_0x1b0b63['as'],'attributes':_0x1b0b63[_0x822a('0x20')],'include':_0x1b0b63[_0x822a('0x1d')]?_[_0x822a('0x1e')](_0x1b0b63['include'],function(_0x23f11b){return{'model':db[_0x23f11b[_0x822a('0x1f')]],'as':_0x23f11b['as'],'attributes':_0x23f11b[_0x822a('0x20')],'include':_0x23f11b[_0x822a('0x1d')]?_['map'](_0x23f11b[_0x822a('0x1d')],function(_0xdc557f){return{'model':db[_0xdc557f['model']],'as':_0xdc557f['as'],'attributes':_0xdc557f[_0x822a('0x20')]};}):[]};}):[]};}):[]:[]})[_0x822a('0xc')](function(_0x47ba65){logger[_0x822a('0xd')]('GetZendeskAccount',_0x322898);logger['debug']('GetZendeskAccount',_0x322898,JSON['stringify'](_0x47ba65));_0x2a20e1(_0x47ba65);})['catch'](function(_0x5289e6){logger[_0x822a('0x12')]('GetZendeskAccount',_0x5289e6[_0x822a('0x14')],_0x322898);_0x206f2a(_0x353ad2[_0x822a('0x12')](0x1f4,_0x5289e6[_0x822a('0x14')]));});});};exports[_0x822a('0x21')]=function(_0x1792b3){var _0x5a39ac=this;return new Promise(function(_0x2e0f13,_0x2bcad1){return db[_0x822a('0x17')][_0x822a('0x22')]({'raw':_0x1792b3[_0x822a('0x19')]?_0x1792b3['options'][_0x822a('0x1a')]===undefined?!![]:![]:!![],'where':_0x1792b3['options']?_0x1792b3[_0x822a('0x19')][_0x822a('0x1b')]||null:null,'attributes':_0x1792b3[_0x822a('0x19')]?_0x1792b3['options'][_0x822a('0x20')]||null:null,'include':_0x1792b3[_0x822a('0x19')]?_0x1792b3[_0x822a('0x19')][_0x822a('0x1d')]?_[_0x822a('0x1e')](_0x1792b3[_0x822a('0x19')][_0x822a('0x1d')],function(_0x36cccf){return{'model':db[_0x36cccf['model']],'as':_0x36cccf['as'],'attributes':_0x36cccf[_0x822a('0x20')],'include':_0x36cccf[_0x822a('0x1d')]?_['map'](_0x36cccf['include'],function(_0x5f41a9){return{'model':db[_0x5f41a9[_0x822a('0x1f')]],'as':_0x5f41a9['as'],'attributes':_0x5f41a9[_0x822a('0x20')],'include':_0x5f41a9[_0x822a('0x1d')]?_[_0x822a('0x1e')](_0x5f41a9[_0x822a('0x1d')],function(_0xf52583){return{'model':db[_0xf52583[_0x822a('0x1f')]],'as':_0xf52583['as'],'attributes':_0xf52583[_0x822a('0x20')]};}):[]};}):[]};}):[]:[]})[_0x822a('0xc')](function(_0x453f58){logger[_0x822a('0xd')](_0x822a('0x21'),_0x1792b3);logger[_0x822a('0x10')](_0x822a('0x21'),_0x1792b3,JSON[_0x822a('0x23')](_0x453f58));_0x2e0f13(_0x453f58);})[_0x822a('0x15')](function(_0xff0696){logger[_0x822a('0x12')](_0x822a('0x21'),_0xff0696[_0x822a('0x14')],_0x1792b3);_0x2bcad1(_0x5a39ac[_0x822a('0x12')](0x1f4,_0xff0696['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x087b=['getSubjects','/:id/descriptions','getDescriptions','getTags','post','create','/:id/tags','setTags','put','update','delete','destroy','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields'];(function(_0x3a5f10,_0x57dbfb){var _0x7177b=function(_0x408789){while(--_0x408789){_0x3a5f10['push'](_0x3a5f10['shift']());}};_0x7177b(++_0x57dbfb);}(_0x087b,0x11a));var _0xb087=function(_0xe73080,_0x24c56d){_0xe73080=_0xe73080-0x0;var _0x12cbc4=_0x087b[_0xe73080];return _0x12cbc4;};'use strict';var multer=require(_0xb087('0x0'));var util=require(_0xb087('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb087('0x2'));var router=express['Router']();var fs_extra=require(_0xb087('0x3'));var auth=require(_0xb087('0x4'));var interaction=require(_0xb087('0x5'));var config=require(_0xb087('0x6'));var controller=require(_0xb087('0x7'));router[_0xb087('0x8')]('/',auth[_0xb087('0x9')](),controller[_0xb087('0xa')]);router[_0xb087('0x8')](_0xb087('0xb'),auth[_0xb087('0x9')](),controller[_0xb087('0xc')]);router[_0xb087('0x8')](_0xb087('0xd'),auth[_0xb087('0x9')](),controller[_0xb087('0xe')]);router[_0xb087('0x8')]('/:id/subjects',auth[_0xb087('0x9')](),controller[_0xb087('0xf')]);router[_0xb087('0x8')](_0xb087('0x10'),auth[_0xb087('0x9')](),controller[_0xb087('0x11')]);router[_0xb087('0x8')]('/:id/tags',auth[_0xb087('0x9')](),controller[_0xb087('0x12')]);router[_0xb087('0x13')]('/',auth['isAuthenticated'](),controller[_0xb087('0x14')]);router[_0xb087('0x13')](_0xb087('0x15'),auth[_0xb087('0x9')](),controller[_0xb087('0x16')]);router[_0xb087('0x17')](_0xb087('0xb'),auth[_0xb087('0x9')](),controller[_0xb087('0x18')]);router[_0xb087('0x19')]('/:id',auth[_0xb087('0x9')](),controller[_0xb087('0x1a')]);module['exports']=router;
\ No newline at end of file
+var _0x750a=['getTags','post','setTags','put','update','delete','destroy','exports','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','index','/:id','/:id/fields','getFields','getSubjects','/:id/tags'];(function(_0x63f45c,_0x29b9d3){var _0x12d04f=function(_0x51a5d6){while(--_0x51a5d6){_0x63f45c['push'](_0x63f45c['shift']());}};_0x12d04f(++_0x29b9d3);}(_0x750a,0x140));var _0xa750=function(_0xda6f2c,_0x4d5932){_0xda6f2c=_0xda6f2c-0x0;var _0x20ee51=_0x750a[_0xda6f2c];return _0x20ee51;};'use strict';var multer=require('multer');var util=require(_0xa750('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa750('0x1'));var router=express[_0xa750('0x2')]();var fs_extra=require(_0xa750('0x3'));var auth=require(_0xa750('0x4'));var interaction=require(_0xa750('0x5'));var config=require(_0xa750('0x6'));var controller=require(_0xa750('0x7'));router[_0xa750('0x8')]('/',auth[_0xa750('0x9')](),controller[_0xa750('0xa')]);router[_0xa750('0x8')](_0xa750('0xb'),auth[_0xa750('0x9')](),controller['show']);router['get'](_0xa750('0xc'),auth['isAuthenticated'](),controller[_0xa750('0xd')]);router[_0xa750('0x8')]('/:id/subjects',auth[_0xa750('0x9')](),controller[_0xa750('0xe')]);router['get']('/:id/descriptions',auth[_0xa750('0x9')](),controller['getDescriptions']);router[_0xa750('0x8')](_0xa750('0xf'),auth['isAuthenticated'](),controller[_0xa750('0x10')]);router[_0xa750('0x11')]('/',auth[_0xa750('0x9')](),controller['create']);router[_0xa750('0x11')](_0xa750('0xf'),auth[_0xa750('0x9')](),controller[_0xa750('0x12')]);router[_0xa750('0x13')](_0xa750('0xb'),auth['isAuthenticated'](),controller[_0xa750('0x14')]);router[_0xa750('0x15')](_0xa750('0xb'),auth['isAuthenticated'](),controller[_0xa750('0x16')]);module[_0xa750('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4401=['STRING'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x4401,0x123));var _0x1440=function(_0x1960b1,_0x25785b){_0x1960b1=_0x1960b1-0x0;var _0x11e036=_0x4401[_0x1960b1];return _0x11e036;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x1440('0x0')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x602b=['STRING','sequelize','exports'];(function(_0x22a9b7,_0x58e5d4){var _0x8a8568=function(_0x271479){while(--_0x271479){_0x22a9b7['push'](_0x22a9b7['shift']());}};_0x8a8568(++_0x58e5d4);}(_0x602b,0x64));var _0xb602=function(_0xc0a1f5,_0x236d8d){_0xc0a1f5=_0xc0a1f5-0x0;var _0x78bcdb=_0x602b[_0xc0a1f5];return _0x78bcdb;};'use strict';var Sequelize=require(_0xb602('0x0'));module[_0xb602('0x1')]={'name':{'type':Sequelize[_0xb602('0x2')]},'description':{'type':Sequelize[_0xb602('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x126c=['set','apply','reject','then','destroy','error','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','ZendeskConfiguration','include','findAll','rows','catch','show','includeAll','find','create','body','update','params','findOne','ZendeskField','length','getSubjects','getDescriptions','getTags','Tag','setTags','ids','rimraf','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x126c,0x87));var _0xc126=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x126c[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc126('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc126('0x1'));var rp=require(_0xc126('0x2'));var moment=require(_0xc126('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xc126('0x4'));var util=require(_0xc126('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xc126('0x6'));var ejs=require(_0xc126('0x7'));var fs=require('fs');var fs_extra=require(_0xc126('0x8'));var _=require(_0xc126('0x9'));var squel=require(_0xc126('0xa'));var crypto=require('crypto');var jsforce=require(_0xc126('0xb'));var deskjs=require(_0xc126('0xc'));var toCsv=require(_0xc126('0x6'));var querystring=require(_0xc126('0xd'));var Papa=require(_0xc126('0xe'));var Redis=require(_0xc126('0xf'));var authService=require(_0xc126('0x10'));var qs=require(_0xc126('0x11'));var as=require(_0xc126('0x12'));var hardwareService=require(_0xc126('0x13'));var logger=require('../../config/logger')(_0xc126('0x14'));var utils=require(_0xc126('0x15'));var config=require(_0xc126('0x16'));var licenseUtil=require(_0xc126('0x17'));var db=require(_0xc126('0x18'))['db'];function respondWithStatusCode(_0x1b1e4a,_0x5eef4f){_0x5eef4f=_0x5eef4f||0xcc;return function(_0x140a93){if(_0x140a93){return _0x1b1e4a[_0xc126('0x19')](_0x5eef4f);}return _0x1b1e4a[_0xc126('0x1a')](_0x5eef4f)[_0xc126('0x1b')]();};}function respondWithResult(_0x21d2c7,_0x55508c){_0x55508c=_0x55508c||0xc8;return function(_0x1eff2a){if(_0x1eff2a){return _0x21d2c7['status'](_0x55508c)[_0xc126('0x1c')](_0x1eff2a);}};}function respondWithFilteredResult(_0x18d14e,_0x158fe1){return function(_0x1c137c){if(_0x1c137c){var _0xd5fc0=typeof _0x158fe1['offset']==='undefined'&&typeof _0x158fe1[_0xc126('0x1d')]===_0xc126('0x1e');var _0x5b4940=_0x1c137c[_0xc126('0x1f')];var _0x343786=_0xd5fc0?0x0:_0x158fe1[_0xc126('0x20')];var _0x5d5dd9=_0xd5fc0?_0x1c137c[_0xc126('0x1f')]:_0x158fe1[_0xc126('0x20')]+_0x158fe1['limit'];var _0x290eba;if(_0x5d5dd9>=_0x5b4940){_0x5d5dd9=_0x5b4940;_0x290eba=0xc8;}else{_0x290eba=0xce;}_0x18d14e['status'](_0x290eba);return _0x18d14e[_0xc126('0x21')]('Content-Range',_0x343786+'-'+_0x5d5dd9+'/'+_0x5b4940)[_0xc126('0x1c')](_0x1c137c);}return null;};}function patchUpdates(_0x16d221){return function(_0x3d4e75){try{jsonpatch[_0xc126('0x22')](_0x3d4e75,_0x16d221,!![]);}catch(_0x283295){return BPromise[_0xc126('0x23')](_0x283295);}return _0x3d4e75['save']();};}function saveUpdates(_0x3aedb9,_0x17ae17){return function(_0x1b03be){if(_0x1b03be){return _0x1b03be['update'](_0x3aedb9)[_0xc126('0x24')](function(_0x106c3a){return _0x106c3a;});}return null;};}function removeEntity(_0x904d6f,_0x1b507d){return function(_0x111250){if(_0x111250){return _0x111250[_0xc126('0x25')]()[_0xc126('0x24')](function(){_0x904d6f[_0xc126('0x1a')](0xcc)[_0xc126('0x1b')]();});}};}function handleEntityNotFound(_0x47933d,_0x3553c1){return function(_0xa0497e){if(!_0xa0497e){_0x47933d[_0xc126('0x19')](0x194);}return _0xa0497e;};}function handleError(_0x2ef245,_0x172a4b){_0x172a4b=_0x172a4b||0x1f4;return function(_0x16ccdd){logger[_0xc126('0x26')](_0x16ccdd['stack']);if(_0x16ccdd[_0xc126('0x27')]){delete _0x16ccdd[_0xc126('0x27')];}_0x2ef245[_0xc126('0x1a')](_0x172a4b)[_0xc126('0x28')](_0x16ccdd);};}exports[_0xc126('0x29')]=function(_0x9b0e98,_0x21b337){var _0x400340={},_0x2b0da3={},_0x28d2b6={'count':0x0,'rows':[]};var _0x3b924a=_[_0xc126('0x2a')](db['ZendeskConfiguration'][_0xc126('0x2b')],function(_0x1c8755){return{'name':_0x1c8755[_0xc126('0x2c')],'type':_0x1c8755[_0xc126('0x2d')]['key']};});_0x2b0da3[_0xc126('0x2e')]=_[_0xc126('0x2a')](_0x3b924a,_0xc126('0x27'));_0x2b0da3[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x9b0e98[_0xc126('0x2f')]);_0x2b0da3[_0xc126('0x31')]=_['intersection'](_0x2b0da3[_0xc126('0x2e')],_0x2b0da3[_0xc126('0x2f')]);_0x400340[_0xc126('0x32')]=_[_0xc126('0x33')](_0x2b0da3[_0xc126('0x2e')],qs[_0xc126('0x34')](_0x9b0e98[_0xc126('0x2f')][_0xc126('0x34')]));_0x400340[_0xc126('0x32')]=_0x400340[_0xc126('0x32')]['length']?_0x400340[_0xc126('0x32')]:_0x2b0da3[_0xc126('0x2e')];if(!_0x9b0e98['query'][_0xc126('0x35')](_0xc126('0x36'))){_0x400340['limit']=qs[_0xc126('0x1d')](_0x9b0e98['query'][_0xc126('0x1d')]);_0x400340['offset']=qs[_0xc126('0x20')](_0x9b0e98[_0xc126('0x2f')][_0xc126('0x20')]);}_0x400340[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x9b0e98[_0xc126('0x2f')]['sort']);_0x400340[_0xc126('0x39')]=qs['filters'](_[_0xc126('0x3a')](_0x9b0e98[_0xc126('0x2f')],_0x2b0da3['filters']),_0x3b924a);if(_0x9b0e98['query']['filter']){_0x400340[_0xc126('0x39')]=_[_0xc126('0x3b')](_0x400340[_0xc126('0x39')],{'$or':_['map'](_0x3b924a,function(_0x4b4077){if(_0x4b4077[_0xc126('0x2d')]!==_0xc126('0x3c')){var _0x3cbb11={};_0x3cbb11[_0x4b4077[_0xc126('0x27')]]={'$like':'%'+_0x9b0e98['query'][_0xc126('0x3d')]+'%'};return _0x3cbb11;}})});}_0x400340=_[_0xc126('0x3b')]({},_0x400340,_0x9b0e98[_0xc126('0x3e')]);var _0x54906e={'where':_0x400340[_0xc126('0x39')]};return db[_0xc126('0x3f')][_0xc126('0x1f')](_0x54906e)['then'](function(_0x25dfb7){_0x28d2b6['count']=_0x25dfb7;if(_0x9b0e98[_0xc126('0x2f')]['includeAll']){_0x400340[_0xc126('0x40')]=[{'all':!![]}];}return db[_0xc126('0x3f')][_0xc126('0x41')](_0x400340);})[_0xc126('0x24')](function(_0x12771e){_0x28d2b6[_0xc126('0x42')]=_0x12771e;return _0x28d2b6;})['then'](respondWithFilteredResult(_0x21b337,_0x400340))[_0xc126('0x43')](handleError(_0x21b337,null));};exports[_0xc126('0x44')]=function(_0x168bb1,_0x2f9976){var _0x2d828d={'raw':![],'where':{'id':_0x168bb1['params']['id']}},_0x2cd8f8={};_0x2cd8f8[_0xc126('0x2e')]=_['keys'](db[_0xc126('0x3f')]['rawAttributes']);_0x2cd8f8[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x168bb1[_0xc126('0x2f')]);_0x2cd8f8[_0xc126('0x31')]=_['intersection'](_0x2cd8f8['model'],_0x2cd8f8[_0xc126('0x2f')]);_0x2d828d[_0xc126('0x32')]=_[_0xc126('0x33')](_0x2cd8f8[_0xc126('0x2e')],qs[_0xc126('0x34')](_0x168bb1['query'][_0xc126('0x34')]));_0x2d828d[_0xc126('0x32')]=_0x2d828d[_0xc126('0x32')]['length']?_0x2d828d[_0xc126('0x32')]:_0x2cd8f8[_0xc126('0x2e')];if(_0x168bb1['query'][_0xc126('0x45')]){_0x2d828d[_0xc126('0x40')]=[{'all':!![]}];}_0x2d828d=_[_0xc126('0x3b')]({},_0x2d828d,_0x168bb1[_0xc126('0x3e')]);return db[_0xc126('0x3f')][_0xc126('0x46')](_0x2d828d)[_0xc126('0x24')](handleEntityNotFound(_0x2f9976,null))[_0xc126('0x24')](respondWithResult(_0x2f9976,null))[_0xc126('0x43')](handleError(_0x2f9976,null));};exports[_0xc126('0x47')]=function(_0x137223,_0x19a320){return db[_0xc126('0x3f')]['create'](_0x137223[_0xc126('0x48')],{})['then'](respondWithResult(_0x19a320,0xc9))['catch'](handleError(_0x19a320,null));};exports[_0xc126('0x49')]=function(_0xd82247,_0x1c3ba6){if(_0xd82247[_0xc126('0x48')]['id']){delete _0xd82247[_0xc126('0x48')]['id'];}return db[_0xc126('0x3f')][_0xc126('0x46')]({'where':{'id':_0xd82247[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x1c3ba6,null))[_0xc126('0x24')](saveUpdates(_0xd82247[_0xc126('0x48')],null))[_0xc126('0x24')](respondWithResult(_0x1c3ba6,null))[_0xc126('0x43')](handleError(_0x1c3ba6,null));};exports[_0xc126('0x25')]=function(_0x3dff1a,_0x2e25b4){return db['ZendeskConfiguration']['find']({'where':{'id':_0x3dff1a[_0xc126('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2e25b4,null))['then'](removeEntity(_0x2e25b4,null))[_0xc126('0x43')](handleError(_0x2e25b4,null));};exports['getFields']=function(_0x1fe9fc,_0x51fa11,_0x3c1fee){var _0x1f1870={};var _0x40962d={};var _0xd78e7;var _0x270c5c;return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x1fe9fc[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x51fa11,null))[_0xc126('0x24')](function(_0x339214){if(_0x339214){_0xd78e7=_0x339214;_0x40962d[_0xc126('0x2e')]=_['keys'](db[_0xc126('0x4c')]['rawAttributes']);_0x40962d[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x1fe9fc[_0xc126('0x2f')]);_0x40962d[_0xc126('0x31')]=_['intersection'](_0x40962d['model'],_0x40962d[_0xc126('0x2f')]);_0x1f1870[_0xc126('0x32')]=_[_0xc126('0x33')](_0x40962d[_0xc126('0x2e')],qs['fields'](_0x1fe9fc[_0xc126('0x2f')]['fields']));_0x1f1870[_0xc126('0x32')]=_0x1f1870[_0xc126('0x32')]['length']?_0x1f1870[_0xc126('0x32')]:_0x40962d[_0xc126('0x2e')];_0x1f1870[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x1fe9fc[_0xc126('0x2f')]['sort']);_0x1f1870['where']=qs['filters'](_[_0xc126('0x3a')](_0x1fe9fc[_0xc126('0x2f')],_0x40962d['filters']));if(_0x1fe9fc['query']['filter']){_0x1f1870[_0xc126('0x39')]=_['merge'](_0x1f1870[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x1f1870['attributes'],function(_0x5c31ac){var _0x38ac65={};_0x38ac65[_0x5c31ac]={'$like':'%'+_0x1fe9fc[_0xc126('0x2f')][_0xc126('0x3d')]+'%'};return _0x38ac65;})});}_0x1f1870=_[_0xc126('0x3b')]({},_0x1f1870,_0x1fe9fc[_0xc126('0x3e')]);return _0xd78e7['getFields'](_0x1f1870);}})['then'](function(_0x3a426e){if(_0x3a426e){_0x270c5c=_0x3a426e[_0xc126('0x4d')];if(!_0x1fe9fc[_0xc126('0x2f')][_0xc126('0x35')]('nolimit')){_0x1f1870[_0xc126('0x1d')]=qs['limit'](_0x1fe9fc[_0xc126('0x2f')]['limit']);_0x1f1870[_0xc126('0x20')]=qs['offset'](_0x1fe9fc[_0xc126('0x2f')]['offset']);}return _0xd78e7['getFields'](_0x1f1870);}})[_0xc126('0x24')](function(_0x3d1632){if(_0x3d1632){return _0x3d1632?{'count':_0x270c5c,'rows':_0x3d1632}:null;}})[_0xc126('0x24')](respondWithResult(_0x51fa11,null))[_0xc126('0x43')](handleError(_0x51fa11,null));};exports[_0xc126('0x4e')]=function(_0x533f24,_0x3d58b7,_0x50d94d){var _0x4a9d3b={};var _0x5dbfa0={};var _0x5f3811;var _0x8cf5be;return db[_0xc126('0x3f')]['findOne']({'where':{'id':_0x533f24[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x3d58b7,null))[_0xc126('0x24')](function(_0x12491d){if(_0x12491d){_0x5f3811=_0x12491d;_0x5dbfa0[_0xc126('0x2e')]=_['keys'](db[_0xc126('0x4c')][_0xc126('0x2b')]);_0x5dbfa0[_0xc126('0x2f')]=_['keys'](_0x533f24[_0xc126('0x2f')]);_0x5dbfa0[_0xc126('0x31')]=_['intersection'](_0x5dbfa0[_0xc126('0x2e')],_0x5dbfa0[_0xc126('0x2f')]);_0x4a9d3b[_0xc126('0x32')]=_['intersection'](_0x5dbfa0['model'],qs[_0xc126('0x34')](_0x533f24[_0xc126('0x2f')][_0xc126('0x34')]));_0x4a9d3b[_0xc126('0x32')]=_0x4a9d3b[_0xc126('0x32')][_0xc126('0x4d')]?_0x4a9d3b['attributes']:_0x5dbfa0[_0xc126('0x2e')];_0x4a9d3b[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x533f24[_0xc126('0x2f')][_0xc126('0x38')]);_0x4a9d3b['where']=qs[_0xc126('0x31')](_[_0xc126('0x3a')](_0x533f24[_0xc126('0x2f')],_0x5dbfa0['filters']));if(_0x533f24['query'][_0xc126('0x3d')]){_0x4a9d3b['where']=_[_0xc126('0x3b')](_0x4a9d3b[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x4a9d3b[_0xc126('0x32')],function(_0x2cb37a){var _0x271e50={};_0x271e50[_0x2cb37a]={'$like':'%'+_0x533f24[_0xc126('0x2f')]['filter']+'%'};return _0x271e50;})});}_0x4a9d3b=_['merge']({},_0x4a9d3b,_0x533f24[_0xc126('0x3e')]);return _0x5f3811[_0xc126('0x4e')](_0x4a9d3b);}})[_0xc126('0x24')](function(_0x55ade6){if(_0x55ade6){_0x8cf5be=_0x55ade6[_0xc126('0x4d')];if(!_0x533f24['query'][_0xc126('0x35')]('nolimit')){_0x4a9d3b[_0xc126('0x1d')]=qs[_0xc126('0x1d')](_0x533f24['query'][_0xc126('0x1d')]);_0x4a9d3b[_0xc126('0x20')]=qs[_0xc126('0x20')](_0x533f24[_0xc126('0x2f')]['offset']);}return _0x5f3811[_0xc126('0x4e')](_0x4a9d3b);}})[_0xc126('0x24')](function(_0x3f8bf3){if(_0x3f8bf3){return _0x3f8bf3?{'count':_0x8cf5be,'rows':_0x3f8bf3}:null;}})['then'](respondWithResult(_0x3d58b7,null))[_0xc126('0x43')](handleError(_0x3d58b7,null));};exports[_0xc126('0x4f')]=function(_0x1249d1,_0x2916c9,_0x22b29c){var _0x32d77e={};var _0x56634a={};var _0x397768;var _0x4e9e06;return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x1249d1['params']['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x2916c9,null))[_0xc126('0x24')](function(_0x31782c){if(_0x31782c){_0x397768=_0x31782c;_0x56634a[_0xc126('0x2e')]=_[_0xc126('0x30')](db[_0xc126('0x4c')][_0xc126('0x2b')]);_0x56634a[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x1249d1[_0xc126('0x2f')]);_0x56634a['filters']=_[_0xc126('0x33')](_0x56634a[_0xc126('0x2e')],_0x56634a[_0xc126('0x2f')]);_0x32d77e[_0xc126('0x32')]=_[_0xc126('0x33')](_0x56634a['model'],qs['fields'](_0x1249d1['query'][_0xc126('0x34')]));_0x32d77e[_0xc126('0x32')]=_0x32d77e[_0xc126('0x32')][_0xc126('0x4d')]?_0x32d77e[_0xc126('0x32')]:_0x56634a[_0xc126('0x2e')];_0x32d77e[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x1249d1[_0xc126('0x2f')][_0xc126('0x38')]);_0x32d77e['where']=qs['filters'](_[_0xc126('0x3a')](_0x1249d1[_0xc126('0x2f')],_0x56634a[_0xc126('0x31')]));if(_0x1249d1['query'][_0xc126('0x3d')]){_0x32d77e['where']=_[_0xc126('0x3b')](_0x32d77e[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x32d77e['attributes'],function(_0x133af1){var _0x221d5b={};_0x221d5b[_0x133af1]={'$like':'%'+_0x1249d1[_0xc126('0x2f')]['filter']+'%'};return _0x221d5b;})});}_0x32d77e=_[_0xc126('0x3b')]({},_0x32d77e,_0x1249d1[_0xc126('0x3e')]);return _0x397768[_0xc126('0x4f')](_0x32d77e);}})[_0xc126('0x24')](function(_0x14ee18){if(_0x14ee18){_0x4e9e06=_0x14ee18['length'];if(!_0x1249d1[_0xc126('0x2f')][_0xc126('0x35')](_0xc126('0x36'))){_0x32d77e[_0xc126('0x1d')]=qs[_0xc126('0x1d')](_0x1249d1[_0xc126('0x2f')]['limit']);_0x32d77e['offset']=qs[_0xc126('0x20')](_0x1249d1[_0xc126('0x2f')][_0xc126('0x20')]);}return _0x397768[_0xc126('0x4f')](_0x32d77e);}})['then'](function(_0x3e63ba){if(_0x3e63ba){return _0x3e63ba?{'count':_0x4e9e06,'rows':_0x3e63ba}:null;}})[_0xc126('0x24')](respondWithResult(_0x2916c9,null))[_0xc126('0x43')](handleError(_0x2916c9,null));};exports[_0xc126('0x50')]=function(_0x291311,_0x1593e7,_0x125e66){var _0x583839={};var _0x562941={};var _0x552cfb;var _0x433982;return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x291311[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x1593e7,null))['then'](function(_0x49977a){if(_0x49977a){_0x552cfb=_0x49977a;_0x562941[_0xc126('0x2e')]=_[_0xc126('0x30')](db[_0xc126('0x51')][_0xc126('0x2b')]);_0x562941[_0xc126('0x2f')]=_['keys'](_0x291311[_0xc126('0x2f')]);_0x562941[_0xc126('0x31')]=_[_0xc126('0x33')](_0x562941['model'],_0x562941[_0xc126('0x2f')]);_0x583839[_0xc126('0x32')]=_['intersection'](_0x562941['model'],qs[_0xc126('0x34')](_0x291311[_0xc126('0x2f')]['fields']));_0x583839[_0xc126('0x32')]=_0x583839[_0xc126('0x32')][_0xc126('0x4d')]?_0x583839[_0xc126('0x32')]:_0x562941[_0xc126('0x2e')];_0x583839[_0xc126('0x37')]=qs['sort'](_0x291311[_0xc126('0x2f')][_0xc126('0x38')]);_0x583839['where']=qs[_0xc126('0x31')](_['pick'](_0x291311[_0xc126('0x2f')],_0x562941[_0xc126('0x31')]));if(_0x291311[_0xc126('0x2f')][_0xc126('0x3d')]){_0x583839[_0xc126('0x39')]=_[_0xc126('0x3b')](_0x583839[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x583839[_0xc126('0x32')],function(_0x2de28a){var _0x112087={};_0x112087[_0x2de28a]={'$like':'%'+_0x291311[_0xc126('0x2f')][_0xc126('0x3d')]+'%'};return _0x112087;})});}_0x583839=_[_0xc126('0x3b')]({},_0x583839,_0x291311[_0xc126('0x3e')]);return _0x552cfb[_0xc126('0x50')](_0x583839);}})[_0xc126('0x24')](function(_0x2ed589){if(_0x2ed589){_0x433982=_0x2ed589['length'];if(!_0x291311[_0xc126('0x2f')][_0xc126('0x35')](_0xc126('0x36'))){_0x583839[_0xc126('0x1d')]=qs['limit'](_0x291311[_0xc126('0x2f')][_0xc126('0x1d')]);_0x583839['offset']=qs[_0xc126('0x20')](_0x291311[_0xc126('0x2f')]['offset']);}return _0x552cfb[_0xc126('0x50')](_0x583839);}})[_0xc126('0x24')](function(_0x192d38){if(_0x192d38){return _0x192d38?{'count':_0x433982,'rows':_0x192d38}:null;}})[_0xc126('0x24')](respondWithResult(_0x1593e7,null))[_0xc126('0x43')](handleError(_0x1593e7,null));};exports[_0xc126('0x52')]=function(_0x4b8ec6,_0x14f8ab,_0x5c3a4a){if(_0x4b8ec6['body']['id']){delete _0x4b8ec6['body']['id'];}return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x4b8ec6['params']['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x14f8ab,null))[_0xc126('0x24')](function(_0xa9d99b){if(_0xa9d99b){return _0xa9d99b[_0xc126('0x52')](_0x4b8ec6[_0xc126('0x48')][_0xc126('0x53')]||[]);}return null;})['then'](respondWithResult(_0x14f8ab,null))[_0xc126('0x43')](handleError(_0x14f8ab,null));};
\ No newline at end of file
+var _0xc029=['apply','reject','save','update','then','destroy','error','name','send','map','ZendeskConfiguration','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','nolimit','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','fields','length','find','create','findOne','ZendeskField','merge','getFields','hasOwnProperty','getSubjects','getDescriptions','getTags','setTags','body','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range'];(function(_0x50f6e5,_0x151ccb){var _0x5988c5=function(_0x490a93){while(--_0x490a93){_0x50f6e5['push'](_0x50f6e5['shift']());}};_0x5988c5(++_0x151ccb);}(_0xc029,0x8a));var _0x9c02=function(_0x45b1ba,_0x5a6a21){_0x45b1ba=_0x45b1ba-0x0;var _0x145ddb=_0xc029[_0x45b1ba];return _0x145ddb;};'use strict';var emlformat=require(_0x9c02('0x0'));var rimraf=require(_0x9c02('0x1'));var zipdir=require(_0x9c02('0x2'));var jsonpatch=require(_0x9c02('0x3'));var rp=require(_0x9c02('0x4'));var moment=require('moment');var BPromise=require(_0x9c02('0x5'));var Mustache=require(_0x9c02('0x6'));var util=require(_0x9c02('0x7'));var path=require(_0x9c02('0x8'));var sox=require(_0x9c02('0x9'));var csv=require('to-csv');var ejs=require(_0x9c02('0xa'));var fs=require('fs');var fs_extra=require(_0x9c02('0xb'));var _=require(_0x9c02('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x9c02('0xd'));var deskjs=require(_0x9c02('0xe'));var toCsv=require('to-csv');var querystring=require(_0x9c02('0xf'));var Papa=require(_0x9c02('0x10'));var Redis=require(_0x9c02('0x11'));var authService=require(_0x9c02('0x12'));var qs=require(_0x9c02('0x13'));var as=require(_0x9c02('0x14'));var hardwareService=require(_0x9c02('0x15'));var logger=require(_0x9c02('0x16'))(_0x9c02('0x17'));var utils=require(_0x9c02('0x18'));var config=require(_0x9c02('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x9c02('0x1a'))['db'];function respondWithStatusCode(_0x4c8738,_0x5e0f45){_0x5e0f45=_0x5e0f45||0xcc;return function(_0x474f5a){if(_0x474f5a){return _0x4c8738[_0x9c02('0x1b')](_0x5e0f45);}return _0x4c8738[_0x9c02('0x1c')](_0x5e0f45)[_0x9c02('0x1d')]();};}function respondWithResult(_0xf877a0,_0x48090a){_0x48090a=_0x48090a||0xc8;return function(_0x4426f6){if(_0x4426f6){return _0xf877a0['status'](_0x48090a)[_0x9c02('0x1e')](_0x4426f6);}};}function respondWithFilteredResult(_0x25b9ce,_0x5a822b){return function(_0x59f580){if(_0x59f580){var _0x1a19bf=typeof _0x5a822b[_0x9c02('0x1f')]===_0x9c02('0x20')&&typeof _0x5a822b[_0x9c02('0x21')]===_0x9c02('0x20');var _0xf41fa6=_0x59f580[_0x9c02('0x22')];var _0x3934e6=_0x1a19bf?0x0:_0x5a822b['offset'];var _0x20b857=_0x1a19bf?_0x59f580[_0x9c02('0x22')]:_0x5a822b[_0x9c02('0x1f')]+_0x5a822b['limit'];var _0x44cea7;if(_0x20b857>=_0xf41fa6){_0x20b857=_0xf41fa6;_0x44cea7=0xc8;}else{_0x44cea7=0xce;}_0x25b9ce[_0x9c02('0x1c')](_0x44cea7);return _0x25b9ce['set'](_0x9c02('0x23'),_0x3934e6+'-'+_0x20b857+'/'+_0xf41fa6)[_0x9c02('0x1e')](_0x59f580);}return null;};}function patchUpdates(_0x42b23c){return function(_0x408216){try{jsonpatch[_0x9c02('0x24')](_0x408216,_0x42b23c,!![]);}catch(_0x558cd4){return BPromise[_0x9c02('0x25')](_0x558cd4);}return _0x408216[_0x9c02('0x26')]();};}function saveUpdates(_0x46f000,_0x457327){return function(_0x1d36fe){if(_0x1d36fe){return _0x1d36fe[_0x9c02('0x27')](_0x46f000)[_0x9c02('0x28')](function(_0x3b6e65){return _0x3b6e65;});}return null;};}function removeEntity(_0xb2ade7,_0x5d6c81){return function(_0x4af1f9){if(_0x4af1f9){return _0x4af1f9[_0x9c02('0x29')]()[_0x9c02('0x28')](function(){_0xb2ade7[_0x9c02('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x19f017,_0xd4dcf1){return function(_0x545ad4){if(!_0x545ad4){_0x19f017[_0x9c02('0x1b')](0x194);}return _0x545ad4;};}function handleError(_0x51c8b7,_0x2abe19){_0x2abe19=_0x2abe19||0x1f4;return function(_0x35147d){logger[_0x9c02('0x2a')](_0x35147d['stack']);if(_0x35147d[_0x9c02('0x2b')]){delete _0x35147d[_0x9c02('0x2b')];}_0x51c8b7[_0x9c02('0x1c')](_0x2abe19)[_0x9c02('0x2c')](_0x35147d);};}exports['index']=function(_0x39fa1e,_0x1a4043){var _0x10c3a1={},_0x59c544={},_0x2e6eed={'count':0x0,'rows':[]};var _0x3eeffd=_[_0x9c02('0x2d')](db[_0x9c02('0x2e')][_0x9c02('0x2f')],function(_0x47e8f8){return{'name':_0x47e8f8[_0x9c02('0x30')],'type':_0x47e8f8[_0x9c02('0x31')][_0x9c02('0x32')]};});_0x59c544['model']=_['map'](_0x3eeffd,'name');_0x59c544[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x39fa1e[_0x9c02('0x33')]);_0x59c544[_0x9c02('0x35')]=_[_0x9c02('0x36')](_0x59c544[_0x9c02('0x37')],_0x59c544[_0x9c02('0x33')]);_0x10c3a1[_0x9c02('0x38')]=_[_0x9c02('0x36')](_0x59c544[_0x9c02('0x37')],qs['fields'](_0x39fa1e[_0x9c02('0x33')]['fields']));_0x10c3a1[_0x9c02('0x38')]=_0x10c3a1[_0x9c02('0x38')]['length']?_0x10c3a1[_0x9c02('0x38')]:_0x59c544['model'];if(!_0x39fa1e[_0x9c02('0x33')]['hasOwnProperty'](_0x9c02('0x39'))){_0x10c3a1['limit']=qs['limit'](_0x39fa1e['query']['limit']);_0x10c3a1['offset']=qs[_0x9c02('0x1f')](_0x39fa1e[_0x9c02('0x33')][_0x9c02('0x1f')]);}_0x10c3a1[_0x9c02('0x3a')]=qs[_0x9c02('0x3b')](_0x39fa1e['query'][_0x9c02('0x3b')]);_0x10c3a1[_0x9c02('0x3c')]=qs[_0x9c02('0x35')](_[_0x9c02('0x3d')](_0x39fa1e[_0x9c02('0x33')],_0x59c544['filters']),_0x3eeffd);if(_0x39fa1e[_0x9c02('0x33')][_0x9c02('0x3e')]){_0x10c3a1[_0x9c02('0x3c')]=_['merge'](_0x10c3a1[_0x9c02('0x3c')],{'$or':_[_0x9c02('0x2d')](_0x3eeffd,function(_0x145da5){if(_0x145da5[_0x9c02('0x31')]!==_0x9c02('0x3f')){var _0x216c7c={};_0x216c7c[_0x145da5[_0x9c02('0x2b')]]={'$like':'%'+_0x39fa1e[_0x9c02('0x33')][_0x9c02('0x3e')]+'%'};return _0x216c7c;}})});}_0x10c3a1=_['merge']({},_0x10c3a1,_0x39fa1e[_0x9c02('0x40')]);var _0x5aae73={'where':_0x10c3a1['where']};return db['ZendeskConfiguration']['count'](_0x5aae73)['then'](function(_0x3a1016){_0x2e6eed[_0x9c02('0x22')]=_0x3a1016;if(_0x39fa1e[_0x9c02('0x33')][_0x9c02('0x41')]){_0x10c3a1[_0x9c02('0x42')]=[{'all':!![]}];}return db[_0x9c02('0x2e')][_0x9c02('0x43')](_0x10c3a1);})[_0x9c02('0x28')](function(_0x4b452b){_0x2e6eed[_0x9c02('0x44')]=_0x4b452b;return _0x2e6eed;})[_0x9c02('0x28')](respondWithFilteredResult(_0x1a4043,_0x10c3a1))[_0x9c02('0x45')](handleError(_0x1a4043,null));};exports[_0x9c02('0x46')]=function(_0x579d03,_0x284c39){var _0x46c5aa={'raw':![],'where':{'id':_0x579d03[_0x9c02('0x47')]['id']}},_0x540b2a={};_0x540b2a['model']=_['keys'](db[_0x9c02('0x2e')][_0x9c02('0x2f')]);_0x540b2a[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x579d03['query']);_0x540b2a[_0x9c02('0x35')]=_[_0x9c02('0x36')](_0x540b2a[_0x9c02('0x37')],_0x540b2a[_0x9c02('0x33')]);_0x46c5aa[_0x9c02('0x38')]=_[_0x9c02('0x36')](_0x540b2a[_0x9c02('0x37')],qs['fields'](_0x579d03['query'][_0x9c02('0x48')]));_0x46c5aa[_0x9c02('0x38')]=_0x46c5aa[_0x9c02('0x38')][_0x9c02('0x49')]?_0x46c5aa[_0x9c02('0x38')]:_0x540b2a[_0x9c02('0x37')];if(_0x579d03[_0x9c02('0x33')][_0x9c02('0x41')]){_0x46c5aa['include']=[{'all':!![]}];}_0x46c5aa=_['merge']({},_0x46c5aa,_0x579d03[_0x9c02('0x40')]);return db[_0x9c02('0x2e')][_0x9c02('0x4a')](_0x46c5aa)[_0x9c02('0x28')](handleEntityNotFound(_0x284c39,null))[_0x9c02('0x28')](respondWithResult(_0x284c39,null))[_0x9c02('0x45')](handleError(_0x284c39,null));};exports['create']=function(_0xc15914,_0x4e46be){return db[_0x9c02('0x2e')][_0x9c02('0x4b')](_0xc15914['body'],{})['then'](respondWithResult(_0x4e46be,0xc9))[_0x9c02('0x45')](handleError(_0x4e46be,null));};exports[_0x9c02('0x27')]=function(_0x114ae2,_0x3ad048){if(_0x114ae2['body']['id']){delete _0x114ae2['body']['id'];}return db['ZendeskConfiguration'][_0x9c02('0x4a')]({'where':{'id':_0x114ae2[_0x9c02('0x47')]['id']}})['then'](handleEntityNotFound(_0x3ad048,null))['then'](saveUpdates(_0x114ae2['body'],null))[_0x9c02('0x28')](respondWithResult(_0x3ad048,null))[_0x9c02('0x45')](handleError(_0x3ad048,null));};exports['destroy']=function(_0x43e1af,_0x2461b0){return db[_0x9c02('0x2e')][_0x9c02('0x4a')]({'where':{'id':_0x43e1af['params']['id']}})[_0x9c02('0x28')](handleEntityNotFound(_0x2461b0,null))[_0x9c02('0x28')](removeEntity(_0x2461b0,null))['catch'](handleError(_0x2461b0,null));};exports['getFields']=function(_0x559b55,_0x32def1,_0x44c9d0){var _0x626056={};var _0x97a149={};var _0xac9a41;var _0x6874e7;return db[_0x9c02('0x2e')][_0x9c02('0x4c')]({'where':{'id':_0x559b55[_0x9c02('0x47')]['id']}})['then'](handleEntityNotFound(_0x32def1,null))[_0x9c02('0x28')](function(_0x134e39){if(_0x134e39){_0xac9a41=_0x134e39;_0x97a149[_0x9c02('0x37')]=_[_0x9c02('0x34')](db[_0x9c02('0x4d')]['rawAttributes']);_0x97a149[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x559b55[_0x9c02('0x33')]);_0x97a149[_0x9c02('0x35')]=_[_0x9c02('0x36')](_0x97a149[_0x9c02('0x37')],_0x97a149[_0x9c02('0x33')]);_0x626056[_0x9c02('0x38')]=_[_0x9c02('0x36')](_0x97a149[_0x9c02('0x37')],qs[_0x9c02('0x48')](_0x559b55['query'][_0x9c02('0x48')]));_0x626056[_0x9c02('0x38')]=_0x626056[_0x9c02('0x38')][_0x9c02('0x49')]?_0x626056[_0x9c02('0x38')]:_0x97a149[_0x9c02('0x37')];_0x626056['order']=qs[_0x9c02('0x3b')](_0x559b55[_0x9c02('0x33')][_0x9c02('0x3b')]);_0x626056[_0x9c02('0x3c')]=qs['filters'](_[_0x9c02('0x3d')](_0x559b55[_0x9c02('0x33')],_0x97a149[_0x9c02('0x35')]));if(_0x559b55['query'][_0x9c02('0x3e')]){_0x626056[_0x9c02('0x3c')]=_[_0x9c02('0x4e')](_0x626056[_0x9c02('0x3c')],{'$or':_[_0x9c02('0x2d')](_0x626056[_0x9c02('0x38')],function(_0x529694){var _0xccb50a={};_0xccb50a[_0x529694]={'$like':'%'+_0x559b55[_0x9c02('0x33')][_0x9c02('0x3e')]+'%'};return _0xccb50a;})});}_0x626056=_[_0x9c02('0x4e')]({},_0x626056,_0x559b55[_0x9c02('0x40')]);return _0xac9a41[_0x9c02('0x4f')](_0x626056);}})[_0x9c02('0x28')](function(_0x19ca49){if(_0x19ca49){_0x6874e7=_0x19ca49[_0x9c02('0x49')];if(!_0x559b55['query'][_0x9c02('0x50')](_0x9c02('0x39'))){_0x626056[_0x9c02('0x21')]=qs[_0x9c02('0x21')](_0x559b55[_0x9c02('0x33')]['limit']);_0x626056[_0x9c02('0x1f')]=qs[_0x9c02('0x1f')](_0x559b55[_0x9c02('0x33')][_0x9c02('0x1f')]);}return _0xac9a41[_0x9c02('0x4f')](_0x626056);}})[_0x9c02('0x28')](function(_0x34c01a){if(_0x34c01a){return _0x34c01a?{'count':_0x6874e7,'rows':_0x34c01a}:null;}})['then'](respondWithResult(_0x32def1,null))[_0x9c02('0x45')](handleError(_0x32def1,null));};exports[_0x9c02('0x51')]=function(_0x1d3346,_0x258e2e,_0x835642){var _0x100f4e={};var _0x24f019={};var _0x3133fd;var _0x159e24;return db[_0x9c02('0x2e')][_0x9c02('0x4c')]({'where':{'id':_0x1d3346['params']['id']}})[_0x9c02('0x28')](handleEntityNotFound(_0x258e2e,null))[_0x9c02('0x28')](function(_0x47d37b){if(_0x47d37b){_0x3133fd=_0x47d37b;_0x24f019[_0x9c02('0x37')]=_['keys'](db[_0x9c02('0x4d')]['rawAttributes']);_0x24f019[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x1d3346['query']);_0x24f019['filters']=_[_0x9c02('0x36')](_0x24f019[_0x9c02('0x37')],_0x24f019['query']);_0x100f4e[_0x9c02('0x38')]=_[_0x9c02('0x36')](_0x24f019[_0x9c02('0x37')],qs['fields'](_0x1d3346['query']['fields']));_0x100f4e[_0x9c02('0x38')]=_0x100f4e[_0x9c02('0x38')]['length']?_0x100f4e[_0x9c02('0x38')]:_0x24f019[_0x9c02('0x37')];_0x100f4e['order']=qs[_0x9c02('0x3b')](_0x1d3346['query'][_0x9c02('0x3b')]);_0x100f4e['where']=qs[_0x9c02('0x35')](_[_0x9c02('0x3d')](_0x1d3346['query'],_0x24f019['filters']));if(_0x1d3346[_0x9c02('0x33')][_0x9c02('0x3e')]){_0x100f4e['where']=_[_0x9c02('0x4e')](_0x100f4e['where'],{'$or':_[_0x9c02('0x2d')](_0x100f4e[_0x9c02('0x38')],function(_0x43d842){var _0x4820fa={};_0x4820fa[_0x43d842]={'$like':'%'+_0x1d3346['query'][_0x9c02('0x3e')]+'%'};return _0x4820fa;})});}_0x100f4e=_[_0x9c02('0x4e')]({},_0x100f4e,_0x1d3346['options']);return _0x3133fd[_0x9c02('0x51')](_0x100f4e);}})[_0x9c02('0x28')](function(_0x4c2943){if(_0x4c2943){_0x159e24=_0x4c2943[_0x9c02('0x49')];if(!_0x1d3346['query'][_0x9c02('0x50')](_0x9c02('0x39'))){_0x100f4e['limit']=qs[_0x9c02('0x21')](_0x1d3346[_0x9c02('0x33')][_0x9c02('0x21')]);_0x100f4e[_0x9c02('0x1f')]=qs[_0x9c02('0x1f')](_0x1d3346['query'][_0x9c02('0x1f')]);}return _0x3133fd[_0x9c02('0x51')](_0x100f4e);}})[_0x9c02('0x28')](function(_0x18e31e){if(_0x18e31e){return _0x18e31e?{'count':_0x159e24,'rows':_0x18e31e}:null;}})[_0x9c02('0x28')](respondWithResult(_0x258e2e,null))['catch'](handleError(_0x258e2e,null));};exports[_0x9c02('0x52')]=function(_0x50bb8f,_0x4a3e59,_0x3be6c6){var _0x6baaf2={};var _0x4a146e={};var _0x451a87;var _0x142099;return db[_0x9c02('0x2e')][_0x9c02('0x4c')]({'where':{'id':_0x50bb8f['params']['id']}})[_0x9c02('0x28')](handleEntityNotFound(_0x4a3e59,null))[_0x9c02('0x28')](function(_0x410177){if(_0x410177){_0x451a87=_0x410177;_0x4a146e[_0x9c02('0x37')]=_[_0x9c02('0x34')](db[_0x9c02('0x4d')][_0x9c02('0x2f')]);_0x4a146e[_0x9c02('0x33')]=_['keys'](_0x50bb8f[_0x9c02('0x33')]);_0x4a146e[_0x9c02('0x35')]=_[_0x9c02('0x36')](_0x4a146e[_0x9c02('0x37')],_0x4a146e[_0x9c02('0x33')]);_0x6baaf2['attributes']=_[_0x9c02('0x36')](_0x4a146e[_0x9c02('0x37')],qs[_0x9c02('0x48')](_0x50bb8f['query'][_0x9c02('0x48')]));_0x6baaf2[_0x9c02('0x38')]=_0x6baaf2[_0x9c02('0x38')]['length']?_0x6baaf2['attributes']:_0x4a146e[_0x9c02('0x37')];_0x6baaf2[_0x9c02('0x3a')]=qs[_0x9c02('0x3b')](_0x50bb8f[_0x9c02('0x33')][_0x9c02('0x3b')]);_0x6baaf2[_0x9c02('0x3c')]=qs[_0x9c02('0x35')](_[_0x9c02('0x3d')](_0x50bb8f[_0x9c02('0x33')],_0x4a146e[_0x9c02('0x35')]));if(_0x50bb8f[_0x9c02('0x33')]['filter']){_0x6baaf2['where']=_['merge'](_0x6baaf2['where'],{'$or':_['map'](_0x6baaf2['attributes'],function(_0x586b72){var _0x19210f={};_0x19210f[_0x586b72]={'$like':'%'+_0x50bb8f[_0x9c02('0x33')][_0x9c02('0x3e')]+'%'};return _0x19210f;})});}_0x6baaf2=_['merge']({},_0x6baaf2,_0x50bb8f[_0x9c02('0x40')]);return _0x451a87['getDescriptions'](_0x6baaf2);}})['then'](function(_0x484570){if(_0x484570){_0x142099=_0x484570[_0x9c02('0x49')];if(!_0x50bb8f['query']['hasOwnProperty']('nolimit')){_0x6baaf2[_0x9c02('0x21')]=qs['limit'](_0x50bb8f[_0x9c02('0x33')][_0x9c02('0x21')]);_0x6baaf2[_0x9c02('0x1f')]=qs[_0x9c02('0x1f')](_0x50bb8f[_0x9c02('0x33')]['offset']);}return _0x451a87[_0x9c02('0x52')](_0x6baaf2);}})[_0x9c02('0x28')](function(_0x5a7fc6){if(_0x5a7fc6){return _0x5a7fc6?{'count':_0x142099,'rows':_0x5a7fc6}:null;}})[_0x9c02('0x28')](respondWithResult(_0x4a3e59,null))[_0x9c02('0x45')](handleError(_0x4a3e59,null));};exports[_0x9c02('0x53')]=function(_0xbe9788,_0xec271c,_0x15243a){var _0x2fc441={};var _0x3a0336={};var _0x53e2af;var _0x1f970a;return db['ZendeskConfiguration'][_0x9c02('0x4c')]({'where':{'id':_0xbe9788[_0x9c02('0x47')]['id']}})['then'](handleEntityNotFound(_0xec271c,null))[_0x9c02('0x28')](function(_0x95469f){if(_0x95469f){_0x53e2af=_0x95469f;_0x3a0336[_0x9c02('0x37')]=_[_0x9c02('0x34')](db['Tag'][_0x9c02('0x2f')]);_0x3a0336[_0x9c02('0x33')]=_['keys'](_0xbe9788[_0x9c02('0x33')]);_0x3a0336[_0x9c02('0x35')]=_[_0x9c02('0x36')](_0x3a0336['model'],_0x3a0336[_0x9c02('0x33')]);_0x2fc441['attributes']=_[_0x9c02('0x36')](_0x3a0336[_0x9c02('0x37')],qs[_0x9c02('0x48')](_0xbe9788['query'][_0x9c02('0x48')]));_0x2fc441[_0x9c02('0x38')]=_0x2fc441[_0x9c02('0x38')][_0x9c02('0x49')]?_0x2fc441[_0x9c02('0x38')]:_0x3a0336[_0x9c02('0x37')];_0x2fc441[_0x9c02('0x3a')]=qs['sort'](_0xbe9788[_0x9c02('0x33')]['sort']);_0x2fc441[_0x9c02('0x3c')]=qs[_0x9c02('0x35')](_[_0x9c02('0x3d')](_0xbe9788[_0x9c02('0x33')],_0x3a0336[_0x9c02('0x35')]));if(_0xbe9788[_0x9c02('0x33')][_0x9c02('0x3e')]){_0x2fc441[_0x9c02('0x3c')]=_['merge'](_0x2fc441[_0x9c02('0x3c')],{'$or':_[_0x9c02('0x2d')](_0x2fc441[_0x9c02('0x38')],function(_0x5a3d2a){var _0x4b7959={};_0x4b7959[_0x5a3d2a]={'$like':'%'+_0xbe9788[_0x9c02('0x33')][_0x9c02('0x3e')]+'%'};return _0x4b7959;})});}_0x2fc441=_[_0x9c02('0x4e')]({},_0x2fc441,_0xbe9788[_0x9c02('0x40')]);return _0x53e2af[_0x9c02('0x53')](_0x2fc441);}})[_0x9c02('0x28')](function(_0x3935ca){if(_0x3935ca){_0x1f970a=_0x3935ca[_0x9c02('0x49')];if(!_0xbe9788[_0x9c02('0x33')]['hasOwnProperty']('nolimit')){_0x2fc441[_0x9c02('0x21')]=qs[_0x9c02('0x21')](_0xbe9788[_0x9c02('0x33')][_0x9c02('0x21')]);_0x2fc441['offset']=qs[_0x9c02('0x1f')](_0xbe9788[_0x9c02('0x33')][_0x9c02('0x1f')]);}return _0x53e2af[_0x9c02('0x53')](_0x2fc441);}})[_0x9c02('0x28')](function(_0x19120e){if(_0x19120e){return _0x19120e?{'count':_0x1f970a,'rows':_0x19120e}:null;}})['then'](respondWithResult(_0xec271c,null))[_0x9c02('0x45')](handleError(_0xec271c,null));};exports[_0x9c02('0x54')]=function(_0x1e8116,_0x1ec4df,_0x2c7c8e){if(_0x1e8116[_0x9c02('0x55')]['id']){delete _0x1e8116[_0x9c02('0x55')]['id'];}return db['ZendeskConfiguration'][_0x9c02('0x4c')]({'where':{'id':_0x1e8116[_0x9c02('0x47')]['id']}})['then'](handleEntityNotFound(_0x1ec4df,null))[_0x9c02('0x28')](function(_0x255cda){if(_0x255cda){return _0x255cda[_0x9c02('0x54')](_0x1e8116[_0x9c02('0x55')][_0x9c02('0x56')]||[]);}return null;})[_0x9c02('0x28')](respondWithResult(_0x1ec4df,null))['catch'](handleError(_0x1ec4df,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13f6=['request-promise','rimraf','../../config/environment','./intZendeskConfiguration.attributes','lodash','util','moment','bluebird'];(function(_0x3d571c,_0x1010b4){var _0x11174e=function(_0x144982){while(--_0x144982){_0x3d571c['push'](_0x3d571c['shift']());}};_0x11174e(++_0x1010b4);}(_0x13f6,0x124));var _0x613f=function(_0x6b22da,_0x110e58){_0x6b22da=_0x6b22da-0x0;var _0x894698=_0x13f6[_0x6b22da];return _0x894698;};'use strict';var _=require(_0x613f('0x0'));var util=require(_0x613f('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x613f('0x2'));var BPromise=require(_0x613f('0x3'));var rp=require(_0x613f('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x613f('0x5'));var config=require(_0x613f('0x6'));var attributes=require(_0x613f('0x7'));module['exports']=function(_0x3f3525,_0x2367b3){return _0x3f3525['define']('ZendeskConfiguration',attributes,{'tableName':'int_zendesk_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4fc2=['../../config/logger','api','bluebird','request-promise','path','../../config/environment','./intZendeskConfiguration.attributes','ZendeskConfiguration','int_zendesk_configurations','lodash','util'];(function(_0x565fed,_0xb85768){var _0x3e018f=function(_0x104d8e){while(--_0x104d8e){_0x565fed['push'](_0x565fed['shift']());}};_0x3e018f(++_0xb85768);}(_0x4fc2,0x111));var _0x24fc=function(_0x32bcda,_0x156e9c){_0x32bcda=_0x32bcda-0x0;var _0x4e6191=_0x4fc2[_0x32bcda];return _0x4e6191;};'use strict';var _=require(_0x24fc('0x0'));var util=require(_0x24fc('0x1'));var logger=require(_0x24fc('0x2'))(_0x24fc('0x3'));var moment=require('moment');var BPromise=require(_0x24fc('0x4'));var rp=require(_0x24fc('0x5'));var fs=require('fs');var path=require(_0x24fc('0x6'));var rimraf=require('rimraf');var config=require(_0x24fc('0x7'));var attributes=require(_0x24fc('0x8'));module['exports']=function(_0x26fcc6,_0x12d602){return _0x26fcc6['define'](_0x24fc('0x9'),attributes,{'tableName':_0x24fc('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ae9=['rpc','../../config/environment','jayson/promise','http','request','info','request\x20sent','debug','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','ZendeskConfiguration,\x20%s,\x20%s','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x2fc026,_0xdc4f7a){var _0x34d056=function(_0x457d02){while(--_0x457d02){_0x2fc026['push'](_0x2fc026['shift']());}};_0x34d056(++_0xdc4f7a);}(_0x7ae9,0xf6));var _0x97ae=function(_0x3a8e99,_0x2436e4){_0x3a8e99=_0x3a8e99-0x0;var _0x240852=_0x7ae9[_0x3a8e99];return _0x240852;};'use strict';var _=require(_0x97ae('0x0'));var util=require('util');var moment=require(_0x97ae('0x1'));var BPromise=require(_0x97ae('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x97ae('0x3'));var db=require(_0x97ae('0x4'))['db'];var utils=require(_0x97ae('0x5'));var logger=require('../../config/logger')(_0x97ae('0x6'));var config=require(_0x97ae('0x7'));var jayson=require(_0x97ae('0x8'));var client=jayson['client'][_0x97ae('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3aeff4,_0x4fa74e,_0x254f6f){return new BPromise(function(_0x3596f1,_0x4530fa){return client[_0x97ae('0xa')](_0x3aeff4,_0x254f6f)['then'](function(_0x588617){logger[_0x97ae('0xb')]('ZendeskConfiguration,\x20%s,\x20%s',_0x4fa74e,_0x97ae('0xc'));logger[_0x97ae('0xd')](_0x97ae('0xe'),_0x4fa74e,'request\x20sent',JSON[_0x97ae('0xf')](_0x588617));if(_0x588617[_0x97ae('0x10')]){if(_0x588617['error']['code']===0x1f4){logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x4fa74e,_0x588617[_0x97ae('0x10')][_0x97ae('0x11')]);return _0x4530fa(_0x588617['error'][_0x97ae('0x11')]);}logger[_0x97ae('0x10')]('ZendeskConfiguration,\x20%s,\x20%s',_0x4fa74e,_0x588617[_0x97ae('0x10')][_0x97ae('0x11')]);return _0x3596f1(_0x588617[_0x97ae('0x10')][_0x97ae('0x11')]);}else{logger['info'](_0x97ae('0x12'),_0x4fa74e,'request\x20sent');_0x3596f1(_0x588617[_0x97ae('0x13')][_0x97ae('0x11')]);}})[_0x97ae('0x14')](function(_0x465ef4){logger[_0x97ae('0x10')](_0x97ae('0x12'),_0x4fa74e,_0x465ef4);_0x4530fa(_0x465ef4);});});}
\ No newline at end of file
+var _0x46ce=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','ZendeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','lodash','util','moment','bluebird'];(function(_0x463b90,_0x234189){var _0x5ee41d=function(_0x46c226){while(--_0x46c226){_0x463b90['push'](_0x463b90['shift']());}};_0x5ee41d(++_0x234189);}(_0x46ce,0x141));var _0xe46c=function(_0x261545,_0x5d317b){_0x261545=_0x261545-0x0;var _0x539d75=_0x46ce[_0x261545];return _0x539d75;};'use strict';var _=require(_0xe46c('0x0'));var util=require(_0xe46c('0x1'));var moment=require(_0xe46c('0x2'));var BPromise=require(_0xe46c('0x3'));var rs=require(_0xe46c('0x4'));var fs=require('fs');var Redis=require(_0xe46c('0x5'));var db=require(_0xe46c('0x6'))['db'];var utils=require(_0xe46c('0x7'));var logger=require(_0xe46c('0x8'))(_0xe46c('0x9'));var config=require(_0xe46c('0xa'));var jayson=require(_0xe46c('0xb'));var client=jayson[_0xe46c('0xc')][_0xe46c('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x5701bd,_0x5c8f2a,_0x13273f){return new BPromise(function(_0x34fbde,_0x186a8d){return client[_0xe46c('0xe')](_0x5701bd,_0x13273f)[_0xe46c('0xf')](function(_0x5deec8){logger['info'](_0xe46c('0x10'),_0x5c8f2a,_0xe46c('0x11'));logger[_0xe46c('0x12')](_0xe46c('0x13'),_0x5c8f2a,_0xe46c('0x11'),JSON[_0xe46c('0x14')](_0x5deec8));if(_0x5deec8[_0xe46c('0x15')]){if(_0x5deec8['error'][_0xe46c('0x16')]===0x1f4){logger[_0xe46c('0x15')](_0xe46c('0x10'),_0x5c8f2a,_0x5deec8[_0xe46c('0x15')][_0xe46c('0x17')]);return _0x186a8d(_0x5deec8[_0xe46c('0x15')][_0xe46c('0x17')]);}logger[_0xe46c('0x15')]('ZendeskConfiguration,\x20%s,\x20%s',_0x5c8f2a,_0x5deec8[_0xe46c('0x15')]['message']);return _0x34fbde(_0x5deec8[_0xe46c('0x15')]['message']);}else{logger[_0xe46c('0x18')]('ZendeskConfiguration,\x20%s,\x20%s',_0x5c8f2a,_0xe46c('0x11'));_0x34fbde(_0x5deec8['result'][_0xe46c('0x17')]);}})['catch'](function(_0x3c3cfe){logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x5c8f2a,_0x3c3cfe);_0x186a8d(_0x3c3cfe);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa07b=['post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','/:id','show'];(function(_0xbe05c8,_0x26be13){var _0xbd60ca=function(_0x202473){while(--_0x202473){_0xbe05c8['push'](_0xbe05c8['shift']());}};_0xbd60ca(++_0x26be13);}(_0xa07b,0xe3));var _0xba07=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xa07b[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0xba07('0x0'));var util=require(_0xba07('0x1'));var path=require(_0xba07('0x2'));var timeout=require(_0xba07('0x3'));var express=require(_0xba07('0x4'));var router=express[_0xba07('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xba07('0x6'));var interaction=require(_0xba07('0x7'));var config=require(_0xba07('0x8'));var controller=require('./intZendeskField.controller');router['get']('/',auth[_0xba07('0x9')](),controller[_0xba07('0xa')]);router['get'](_0xba07('0xb'),auth[_0xba07('0x9')](),controller[_0xba07('0xc')]);router[_0xba07('0xd')]('/',auth[_0xba07('0x9')](),controller[_0xba07('0xe')]);router[_0xba07('0xf')](_0xba07('0xb'),auth['isAuthenticated'](),controller[_0xba07('0x10')]);router[_0xba07('0x11')](_0xba07('0xb'),auth[_0xba07('0x9')](),controller[_0xba07('0x12')]);module[_0xba07('0x13')]=router;
\ No newline at end of file
+var _0x16ea=['index','get','show','create','put','/:id','update','delete','destroy','exports','multer','path','express','fs-extra','../../config/environment','./intZendeskField.controller','isAuthenticated'];(function(_0x32c0db,_0x438fcd){var _0x323588=function(_0x546533){while(--_0x546533){_0x32c0db['push'](_0x32c0db['shift']());}};_0x323588(++_0x438fcd);}(_0x16ea,0x12b));var _0xa16e=function(_0x553252,_0x53e3b9){_0x553252=_0x553252-0x0;var _0x4fab76=_0x16ea[_0x553252];return _0x4fab76;};'use strict';var multer=require(_0xa16e('0x0'));var util=require('util');var path=require(_0xa16e('0x1'));var timeout=require('connect-timeout');var express=require(_0xa16e('0x2'));var router=express['Router']();var fs_extra=require(_0xa16e('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xa16e('0x4'));var controller=require(_0xa16e('0x5'));router['get']('/',auth[_0xa16e('0x6')](),controller[_0xa16e('0x7')]);router[_0xa16e('0x8')]('/:id',auth[_0xa16e('0x6')](),controller[_0xa16e('0x9')]);router['post']('/',auth['isAuthenticated'](),controller[_0xa16e('0xa')]);router[_0xa16e('0xb')](_0xa16e('0xc'),auth[_0xa16e('0x6')](),controller[_0xa16e('0xd')]);router[_0xa16e('0xe')](_0xa16e('0xc'),auth['isAuthenticated'](),controller[_0xa16e('0xf')]);module[_0xa16e('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa220=['STRING','BOOLEAN','exports','ENUM','variable','customVariable','picklist','string'];(function(_0x45368d,_0x462150){var _0x579abf=function(_0x45c289){while(--_0x45c289){_0x45368d['push'](_0x45368d['shift']());}};_0x579abf(++_0x462150);}(_0xa220,0xd2));var _0x0a22=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xa220[_0x3ab51d];return _0x29a04e;};'use strict';var Sequelize=require('sequelize');module[_0x0a22('0x0')]={'type':{'type':Sequelize[_0x0a22('0x1')]('string',_0x0a22('0x2'),_0x0a22('0x3'),'keyValue',_0x0a22('0x4')),'defaultValue':_0x0a22('0x5')},'content':{'type':Sequelize[_0x0a22('0x6')]},'key':{'type':Sequelize[_0x0a22('0x6')]},'keyType':{'type':Sequelize[_0x0a22('0x1')](_0x0a22('0x5'),_0x0a22('0x2'),_0x0a22('0x3'))},'keyContent':{'type':Sequelize[_0x0a22('0x6')]},'idField':{'type':Sequelize[_0x0a22('0x6')]},'nameField':{'type':Sequelize[_0x0a22('0x6')]},'customField':{'type':Sequelize[_0x0a22('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x113c=['string','variable','customVariable','picklist','STRING','BOOLEAN','sequelize','exports','ENUM'];(function(_0x1da04e,_0x31024b){var _0xdd8c41=function(_0x2036f9){while(--_0x2036f9){_0x1da04e['push'](_0x1da04e['shift']());}};_0xdd8c41(++_0x31024b);}(_0x113c,0xc3));var _0xc113=function(_0x32bd27,_0x2368b2){_0x32bd27=_0x32bd27-0x0;var _0x12c88a=_0x113c[_0x32bd27];return _0x12c88a;};'use strict';var Sequelize=require(_0xc113('0x0'));module[_0xc113('0x1')]={'type':{'type':Sequelize[_0xc113('0x2')](_0xc113('0x3'),_0xc113('0x4'),_0xc113('0x5'),'keyValue',_0xc113('0x6')),'defaultValue':_0xc113('0x3')},'content':{'type':Sequelize[_0xc113('0x7')]},'key':{'type':Sequelize[_0xc113('0x7')]},'keyType':{'type':Sequelize['ENUM'](_0xc113('0x3'),'variable',_0xc113('0x5'))},'keyContent':{'type':Sequelize[_0xc113('0x7')]},'idField':{'type':Sequelize[_0xc113('0x7')]},'nameField':{'type':Sequelize[_0xc113('0x7')]},'customField':{'type':Sequelize[_0xc113('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xc113('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdfe0=['limit','count','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','ZendeskField','includeAll','include','catch','show','params','rawAttributes','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined'];(function(_0x3abe75,_0x957926){var _0x40b56e=function(_0x73556f){while(--_0x73556f){_0x3abe75['push'](_0x3abe75['shift']());}};_0x40b56e(++_0x957926);}(_0xdfe0,0xce));var _0x0dfe=function(_0x324393,_0x5225ae){_0x324393=_0x324393-0x0;var _0x150921=_0xdfe0[_0x324393];return _0x150921;};'use strict';var emlformat=require(_0x0dfe('0x0'));var rimraf=require(_0x0dfe('0x1'));var zipdir=require(_0x0dfe('0x2'));var jsonpatch=require(_0x0dfe('0x3'));var rp=require(_0x0dfe('0x4'));var moment=require(_0x0dfe('0x5'));var BPromise=require(_0x0dfe('0x6'));var Mustache=require(_0x0dfe('0x7'));var util=require(_0x0dfe('0x8'));var path=require('path');var sox=require(_0x0dfe('0x9'));var csv=require(_0x0dfe('0xa'));var ejs=require(_0x0dfe('0xb'));var fs=require('fs');var fs_extra=require(_0x0dfe('0xc'));var _=require(_0x0dfe('0xd'));var squel=require('squel');var crypto=require(_0x0dfe('0xe'));var jsforce=require(_0x0dfe('0xf'));var deskjs=require(_0x0dfe('0x10'));var toCsv=require(_0x0dfe('0xa'));var querystring=require(_0x0dfe('0x11'));var Papa=require(_0x0dfe('0x12'));var Redis=require(_0x0dfe('0x13'));var authService=require(_0x0dfe('0x14'));var qs=require(_0x0dfe('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0dfe('0x16'));var logger=require(_0x0dfe('0x17'))(_0x0dfe('0x18'));var utils=require(_0x0dfe('0x19'));var config=require(_0x0dfe('0x1a'));var licenseUtil=require(_0x0dfe('0x1b'));var db=require(_0x0dfe('0x1c'))['db'];function respondWithStatusCode(_0x4ab3ac,_0x387e7b){_0x387e7b=_0x387e7b||0xcc;return function(_0x154935){if(_0x154935){return _0x4ab3ac[_0x0dfe('0x1d')](_0x387e7b);}return _0x4ab3ac[_0x0dfe('0x1e')](_0x387e7b)['end']();};}function respondWithResult(_0x2671d6,_0x21f98f){_0x21f98f=_0x21f98f||0xc8;return function(_0x285171){if(_0x285171){return _0x2671d6[_0x0dfe('0x1e')](_0x21f98f)[_0x0dfe('0x1f')](_0x285171);}};}function respondWithFilteredResult(_0x56bda7,_0x3e250c){return function(_0x4d84d1){if(_0x4d84d1){var _0x563f93=typeof _0x3e250c[_0x0dfe('0x20')]===_0x0dfe('0x21')&&typeof _0x3e250c[_0x0dfe('0x22')]===_0x0dfe('0x21');var _0x62ba49=_0x4d84d1['count'];var _0x4e3bd4=_0x563f93?0x0:_0x3e250c['offset'];var _0x488870=_0x563f93?_0x4d84d1[_0x0dfe('0x23')]:_0x3e250c[_0x0dfe('0x20')]+_0x3e250c[_0x0dfe('0x22')];var _0xa7a32b;if(_0x488870>=_0x62ba49){_0x488870=_0x62ba49;_0xa7a32b=0xc8;}else{_0xa7a32b=0xce;}_0x56bda7['status'](_0xa7a32b);return _0x56bda7[_0x0dfe('0x24')](_0x0dfe('0x25'),_0x4e3bd4+'-'+_0x488870+'/'+_0x62ba49)[_0x0dfe('0x1f')](_0x4d84d1);}return null;};}function patchUpdates(_0x27d11e){return function(_0x38497c){try{jsonpatch[_0x0dfe('0x26')](_0x38497c,_0x27d11e,!![]);}catch(_0x34014f){return BPromise['reject'](_0x34014f);}return _0x38497c[_0x0dfe('0x27')]();};}function saveUpdates(_0xf8e966,_0x3aa43d){return function(_0x21fdd6){if(_0x21fdd6){return _0x21fdd6[_0x0dfe('0x28')](_0xf8e966)[_0x0dfe('0x29')](function(_0x13c255){return _0x13c255;});}return null;};}function removeEntity(_0x20f4ce,_0x470423){return function(_0x1e52b4){if(_0x1e52b4){return _0x1e52b4[_0x0dfe('0x2a')]()['then'](function(){_0x20f4ce[_0x0dfe('0x1e')](0xcc)[_0x0dfe('0x2b')]();});}};}function handleEntityNotFound(_0x4b385c,_0x1a33a0){return function(_0x28028c){if(!_0x28028c){_0x4b385c['sendStatus'](0x194);}return _0x28028c;};}function handleError(_0x47baa3,_0x3b5607){_0x3b5607=_0x3b5607||0x1f4;return function(_0x21f5a7){logger[_0x0dfe('0x2c')](_0x21f5a7[_0x0dfe('0x2d')]);if(_0x21f5a7[_0x0dfe('0x2e')]){delete _0x21f5a7[_0x0dfe('0x2e')];}_0x47baa3[_0x0dfe('0x1e')](_0x3b5607)[_0x0dfe('0x2f')](_0x21f5a7);};}exports[_0x0dfe('0x30')]=function(_0xed6ab3,_0x38cf49){var _0x2d2757={},_0x546a49={},_0x193f4a={'count':0x0,'rows':[]};var _0x313406=_[_0x0dfe('0x31')](db['ZendeskField']['rawAttributes'],function(_0x3a2d54){return{'name':_0x3a2d54[_0x0dfe('0x32')],'type':_0x3a2d54[_0x0dfe('0x33')][_0x0dfe('0x34')]};});_0x546a49[_0x0dfe('0x35')]=_[_0x0dfe('0x31')](_0x313406,'name');_0x546a49[_0x0dfe('0x36')]=_[_0x0dfe('0x37')](_0xed6ab3[_0x0dfe('0x36')]);_0x546a49[_0x0dfe('0x38')]=_[_0x0dfe('0x39')](_0x546a49['model'],_0x546a49[_0x0dfe('0x36')]);_0x2d2757[_0x0dfe('0x3a')]=_['intersection'](_0x546a49[_0x0dfe('0x35')],qs[_0x0dfe('0x3b')](_0xed6ab3['query'][_0x0dfe('0x3b')]));_0x2d2757[_0x0dfe('0x3a')]=_0x2d2757[_0x0dfe('0x3a')][_0x0dfe('0x3c')]?_0x2d2757[_0x0dfe('0x3a')]:_0x546a49[_0x0dfe('0x35')];if(!_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x3d')](_0x0dfe('0x3e'))){_0x2d2757[_0x0dfe('0x22')]=qs[_0x0dfe('0x22')](_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x22')]);_0x2d2757[_0x0dfe('0x20')]=qs[_0x0dfe('0x20')](_0xed6ab3['query'][_0x0dfe('0x20')]);}_0x2d2757[_0x0dfe('0x3f')]=qs[_0x0dfe('0x40')](_0xed6ab3[_0x0dfe('0x36')]['sort']);_0x2d2757[_0x0dfe('0x41')]=qs['filters'](_[_0x0dfe('0x42')](_0xed6ab3[_0x0dfe('0x36')],_0x546a49[_0x0dfe('0x38')]),_0x313406);if(_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x43')]){_0x2d2757[_0x0dfe('0x41')]=_['merge'](_0x2d2757[_0x0dfe('0x41')],{'$or':_['map'](_0x313406,function(_0x3a9d61){if(_0x3a9d61['type']!=='VIRTUAL'){var _0x5aaa7e={};_0x5aaa7e[_0x3a9d61['name']]={'$like':'%'+_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x43')]+'%'};return _0x5aaa7e;}})});}_0x2d2757=_[_0x0dfe('0x44')]({},_0x2d2757,_0xed6ab3[_0x0dfe('0x45')]);var _0x25dc8f={'where':_0x2d2757['where']};return db[_0x0dfe('0x46')][_0x0dfe('0x23')](_0x25dc8f)[_0x0dfe('0x29')](function(_0x1d0cbe){_0x193f4a['count']=_0x1d0cbe;if(_0xed6ab3['query'][_0x0dfe('0x47')]){_0x2d2757[_0x0dfe('0x48')]=[{'all':!![]}];}return db[_0x0dfe('0x46')]['findAll'](_0x2d2757);})[_0x0dfe('0x29')](function(_0x58cd8a){_0x193f4a['rows']=_0x58cd8a;return _0x193f4a;})['then'](respondWithFilteredResult(_0x38cf49,_0x2d2757))[_0x0dfe('0x49')](handleError(_0x38cf49,null));};exports[_0x0dfe('0x4a')]=function(_0x7439b6,_0x1376bd){var _0x12816b={'raw':!![],'where':{'id':_0x7439b6[_0x0dfe('0x4b')]['id']}},_0x3072e5={};_0x3072e5['model']=_[_0x0dfe('0x37')](db['ZendeskField'][_0x0dfe('0x4c')]);_0x3072e5[_0x0dfe('0x36')]=_['keys'](_0x7439b6['query']);_0x3072e5[_0x0dfe('0x38')]=_[_0x0dfe('0x39')](_0x3072e5[_0x0dfe('0x35')],_0x3072e5['query']);_0x12816b[_0x0dfe('0x3a')]=_[_0x0dfe('0x39')](_0x3072e5[_0x0dfe('0x35')],qs[_0x0dfe('0x3b')](_0x7439b6[_0x0dfe('0x36')][_0x0dfe('0x3b')]));_0x12816b['attributes']=_0x12816b[_0x0dfe('0x3a')][_0x0dfe('0x3c')]?_0x12816b[_0x0dfe('0x3a')]:_0x3072e5['model'];if(_0x7439b6[_0x0dfe('0x36')][_0x0dfe('0x47')]){_0x12816b['include']=[{'all':!![]}];}_0x12816b=_['merge']({},_0x12816b,_0x7439b6[_0x0dfe('0x45')]);return db[_0x0dfe('0x46')]['find'](_0x12816b)[_0x0dfe('0x29')](handleEntityNotFound(_0x1376bd,null))[_0x0dfe('0x29')](respondWithResult(_0x1376bd,null))[_0x0dfe('0x49')](handleError(_0x1376bd,null));};exports[_0x0dfe('0x4d')]=function(_0x96497a,_0x263d58){return db[_0x0dfe('0x46')][_0x0dfe('0x4d')](_0x96497a[_0x0dfe('0x4e')],{})[_0x0dfe('0x29')](respondWithResult(_0x263d58,0xc9))['catch'](handleError(_0x263d58,null));};exports[_0x0dfe('0x28')]=function(_0xa1181,_0x29779d){if(_0xa1181[_0x0dfe('0x4e')]['id']){delete _0xa1181['body']['id'];}return db[_0x0dfe('0x46')][_0x0dfe('0x4f')]({'where':{'id':_0xa1181[_0x0dfe('0x4b')]['id']}})[_0x0dfe('0x29')](handleEntityNotFound(_0x29779d,null))[_0x0dfe('0x29')](saveUpdates(_0xa1181[_0x0dfe('0x4e')],null))[_0x0dfe('0x29')](respondWithResult(_0x29779d,null))['catch'](handleError(_0x29779d,null));};exports[_0x0dfe('0x2a')]=function(_0x4fc599,_0x18dc92){return db[_0x0dfe('0x46')]['find']({'where':{'id':_0x4fc599[_0x0dfe('0x4b')]['id']}})[_0x0dfe('0x29')](handleEntityNotFound(_0x18dc92,null))[_0x0dfe('0x29')](removeEntity(_0x18dc92,null))['catch'](handleError(_0x18dc92,null));};
\ No newline at end of file
+var _0xc0f2=['apply','update','then','destroy','stack','name','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','VIRTUAL','options','ZendeskField','includeAll','include','findAll','rows','catch','show','params','find','create','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xc0f2,0x75));var _0x2c0f=function(_0x403adf,_0x4e9e35){_0x403adf=_0x403adf-0x0;var _0x54b1be=_0xc0f2[_0x403adf];return _0x54b1be;};'use strict';var emlformat=require(_0x2c0f('0x0'));var rimraf=require(_0x2c0f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2c0f('0x2'));var rp=require('request-promise');var moment=require(_0x2c0f('0x3'));var BPromise=require(_0x2c0f('0x4'));var Mustache=require(_0x2c0f('0x5'));var util=require(_0x2c0f('0x6'));var path=require('path');var sox=require(_0x2c0f('0x7'));var csv=require(_0x2c0f('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2c0f('0x9'));var _=require(_0x2c0f('0xa'));var squel=require('squel');var crypto=require(_0x2c0f('0xb'));var jsforce=require(_0x2c0f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x2c0f('0x8'));var querystring=require(_0x2c0f('0xd'));var Papa=require(_0x2c0f('0xe'));var Redis=require(_0x2c0f('0xf'));var authService=require(_0x2c0f('0x10'));var qs=require(_0x2c0f('0x11'));var as=require(_0x2c0f('0x12'));var hardwareService=require(_0x2c0f('0x13'));var logger=require(_0x2c0f('0x14'))(_0x2c0f('0x15'));var utils=require('../../config/utils');var config=require(_0x2c0f('0x16'));var licenseUtil=require(_0x2c0f('0x17'));var db=require(_0x2c0f('0x18'))['db'];function respondWithStatusCode(_0x4876f6,_0x1aa0c1){_0x1aa0c1=_0x1aa0c1||0xcc;return function(_0x17c760){if(_0x17c760){return _0x4876f6[_0x2c0f('0x19')](_0x1aa0c1);}return _0x4876f6[_0x2c0f('0x1a')](_0x1aa0c1)['end']();};}function respondWithResult(_0x452bfc,_0x55ff03){_0x55ff03=_0x55ff03||0xc8;return function(_0x2648cd){if(_0x2648cd){return _0x452bfc['status'](_0x55ff03)[_0x2c0f('0x1b')](_0x2648cd);}};}function respondWithFilteredResult(_0x58f339,_0x103adc){return function(_0x16c7e6){if(_0x16c7e6){var _0x1bbd6f=typeof _0x103adc[_0x2c0f('0x1c')]===_0x2c0f('0x1d')&&typeof _0x103adc['limit']===_0x2c0f('0x1d');var _0x1883c8=_0x16c7e6[_0x2c0f('0x1e')];var _0x585968=_0x1bbd6f?0x0:_0x103adc[_0x2c0f('0x1c')];var _0x41be89=_0x1bbd6f?_0x16c7e6[_0x2c0f('0x1e')]:_0x103adc[_0x2c0f('0x1c')]+_0x103adc['limit'];var _0x4ca62e;if(_0x41be89>=_0x1883c8){_0x41be89=_0x1883c8;_0x4ca62e=0xc8;}else{_0x4ca62e=0xce;}_0x58f339[_0x2c0f('0x1a')](_0x4ca62e);return _0x58f339[_0x2c0f('0x1f')](_0x2c0f('0x20'),_0x585968+'-'+_0x41be89+'/'+_0x1883c8)['json'](_0x16c7e6);}return null;};}function patchUpdates(_0x4f0a42){return function(_0x8ae0e0){try{jsonpatch[_0x2c0f('0x21')](_0x8ae0e0,_0x4f0a42,!![]);}catch(_0x5308cc){return BPromise['reject'](_0x5308cc);}return _0x8ae0e0['save']();};}function saveUpdates(_0x47a6f9,_0x36a680){return function(_0xea7d09){if(_0xea7d09){return _0xea7d09[_0x2c0f('0x22')](_0x47a6f9)[_0x2c0f('0x23')](function(_0x133b9c){return _0x133b9c;});}return null;};}function removeEntity(_0x293adf,_0x46b77f){return function(_0x5b2707){if(_0x5b2707){return _0x5b2707[_0x2c0f('0x24')]()['then'](function(){_0x293adf[_0x2c0f('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3078a2,_0x34dda8){return function(_0x10bd6a){if(!_0x10bd6a){_0x3078a2[_0x2c0f('0x19')](0x194);}return _0x10bd6a;};}function handleError(_0x35c36d,_0x46d7e9){_0x46d7e9=_0x46d7e9||0x1f4;return function(_0x1a24af){logger['error'](_0x1a24af[_0x2c0f('0x25')]);if(_0x1a24af['name']){delete _0x1a24af[_0x2c0f('0x26')];}_0x35c36d[_0x2c0f('0x1a')](_0x46d7e9)['send'](_0x1a24af);};}exports[_0x2c0f('0x27')]=function(_0x446bbf,_0x1daec4){var _0x4cb0ec={},_0x1b788d={},_0x1d6831={'count':0x0,'rows':[]};var _0x5f2673=_[_0x2c0f('0x28')](db['ZendeskField'][_0x2c0f('0x29')],function(_0xf238b){return{'name':_0xf238b[_0x2c0f('0x2a')],'type':_0xf238b[_0x2c0f('0x2b')][_0x2c0f('0x2c')]};});_0x1b788d[_0x2c0f('0x2d')]=_['map'](_0x5f2673,_0x2c0f('0x26'));_0x1b788d['query']=_[_0x2c0f('0x2e')](_0x446bbf[_0x2c0f('0x2f')]);_0x1b788d[_0x2c0f('0x30')]=_[_0x2c0f('0x31')](_0x1b788d[_0x2c0f('0x2d')],_0x1b788d['query']);_0x4cb0ec[_0x2c0f('0x32')]=_[_0x2c0f('0x31')](_0x1b788d[_0x2c0f('0x2d')],qs[_0x2c0f('0x33')](_0x446bbf['query'][_0x2c0f('0x33')]));_0x4cb0ec['attributes']=_0x4cb0ec[_0x2c0f('0x32')][_0x2c0f('0x34')]?_0x4cb0ec[_0x2c0f('0x32')]:_0x1b788d[_0x2c0f('0x2d')];if(!_0x446bbf['query'][_0x2c0f('0x35')](_0x2c0f('0x36'))){_0x4cb0ec[_0x2c0f('0x37')]=qs['limit'](_0x446bbf[_0x2c0f('0x2f')][_0x2c0f('0x37')]);_0x4cb0ec[_0x2c0f('0x1c')]=qs[_0x2c0f('0x1c')](_0x446bbf['query'][_0x2c0f('0x1c')]);}_0x4cb0ec[_0x2c0f('0x38')]=qs[_0x2c0f('0x39')](_0x446bbf[_0x2c0f('0x2f')]['sort']);_0x4cb0ec['where']=qs[_0x2c0f('0x30')](_[_0x2c0f('0x3a')](_0x446bbf[_0x2c0f('0x2f')],_0x1b788d[_0x2c0f('0x30')]),_0x5f2673);if(_0x446bbf['query'][_0x2c0f('0x3b')]){_0x4cb0ec[_0x2c0f('0x3c')]=_[_0x2c0f('0x3d')](_0x4cb0ec['where'],{'$or':_[_0x2c0f('0x28')](_0x5f2673,function(_0x4f826e){if(_0x4f826e[_0x2c0f('0x2b')]!==_0x2c0f('0x3e')){var _0x20d230={};_0x20d230[_0x4f826e['name']]={'$like':'%'+_0x446bbf[_0x2c0f('0x2f')][_0x2c0f('0x3b')]+'%'};return _0x20d230;}})});}_0x4cb0ec=_['merge']({},_0x4cb0ec,_0x446bbf[_0x2c0f('0x3f')]);var _0x40e3e3={'where':_0x4cb0ec['where']};return db[_0x2c0f('0x40')][_0x2c0f('0x1e')](_0x40e3e3)[_0x2c0f('0x23')](function(_0x2c0fff){_0x1d6831[_0x2c0f('0x1e')]=_0x2c0fff;if(_0x446bbf[_0x2c0f('0x2f')][_0x2c0f('0x41')]){_0x4cb0ec[_0x2c0f('0x42')]=[{'all':!![]}];}return db[_0x2c0f('0x40')][_0x2c0f('0x43')](_0x4cb0ec);})[_0x2c0f('0x23')](function(_0x5645a3){_0x1d6831[_0x2c0f('0x44')]=_0x5645a3;return _0x1d6831;})[_0x2c0f('0x23')](respondWithFilteredResult(_0x1daec4,_0x4cb0ec))[_0x2c0f('0x45')](handleError(_0x1daec4,null));};exports[_0x2c0f('0x46')]=function(_0x57599a,_0x401a63){var _0x239f53={'raw':!![],'where':{'id':_0x57599a[_0x2c0f('0x47')]['id']}},_0x4d716a={};_0x4d716a['model']=_[_0x2c0f('0x2e')](db[_0x2c0f('0x40')][_0x2c0f('0x29')]);_0x4d716a[_0x2c0f('0x2f')]=_['keys'](_0x57599a[_0x2c0f('0x2f')]);_0x4d716a[_0x2c0f('0x30')]=_[_0x2c0f('0x31')](_0x4d716a[_0x2c0f('0x2d')],_0x4d716a['query']);_0x239f53[_0x2c0f('0x32')]=_[_0x2c0f('0x31')](_0x4d716a[_0x2c0f('0x2d')],qs[_0x2c0f('0x33')](_0x57599a[_0x2c0f('0x2f')][_0x2c0f('0x33')]));_0x239f53[_0x2c0f('0x32')]=_0x239f53[_0x2c0f('0x32')][_0x2c0f('0x34')]?_0x239f53['attributes']:_0x4d716a[_0x2c0f('0x2d')];if(_0x57599a[_0x2c0f('0x2f')][_0x2c0f('0x41')]){_0x239f53[_0x2c0f('0x42')]=[{'all':!![]}];}_0x239f53=_[_0x2c0f('0x3d')]({},_0x239f53,_0x57599a[_0x2c0f('0x3f')]);return db[_0x2c0f('0x40')][_0x2c0f('0x48')](_0x239f53)[_0x2c0f('0x23')](handleEntityNotFound(_0x401a63,null))[_0x2c0f('0x23')](respondWithResult(_0x401a63,null))[_0x2c0f('0x45')](handleError(_0x401a63,null));};exports[_0x2c0f('0x49')]=function(_0x16c969,_0x2a677d){return db[_0x2c0f('0x40')][_0x2c0f('0x49')](_0x16c969['body'],{})['then'](respondWithResult(_0x2a677d,0xc9))[_0x2c0f('0x45')](handleError(_0x2a677d,null));};exports['update']=function(_0x55f3dc,_0x183c14){if(_0x55f3dc[_0x2c0f('0x4a')]['id']){delete _0x55f3dc[_0x2c0f('0x4a')]['id'];}return db[_0x2c0f('0x40')][_0x2c0f('0x48')]({'where':{'id':_0x55f3dc[_0x2c0f('0x47')]['id']}})[_0x2c0f('0x23')](handleEntityNotFound(_0x183c14,null))[_0x2c0f('0x23')](saveUpdates(_0x55f3dc['body'],null))['then'](respondWithResult(_0x183c14,null))[_0x2c0f('0x45')](handleError(_0x183c14,null));};exports['destroy']=function(_0x10e873,_0x5c07a0){return db[_0x2c0f('0x40')][_0x2c0f('0x48')]({'where':{'id':_0x10e873[_0x2c0f('0x47')]['id']}})[_0x2c0f('0x23')](handleEntityNotFound(_0x5c07a0,null))[_0x2c0f('0x23')](removeEntity(_0x5c07a0,null))[_0x2c0f('0x45')](handleError(_0x5c07a0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60df=['../../config/logger','api','moment','rimraf','./intZendeskField.attributes','exports','define','ZendeskField','int_zendesk_fields','idField','FieldId','lodash','util'];(function(_0x44365d,_0x5d9a0f){var _0x3f5040=function(_0x194a3e){while(--_0x194a3e){_0x44365d['push'](_0x44365d['shift']());}};_0x3f5040(++_0x5d9a0f);}(_0x60df,0x10f));var _0xf60d=function(_0xb2cee,_0x3a5502){_0xb2cee=_0xb2cee-0x0;var _0x115b08=_0x60df[_0xb2cee];return _0x115b08;};'use strict';var _=require(_0xf60d('0x0'));var util=require(_0xf60d('0x1'));var logger=require(_0xf60d('0x2'))(_0xf60d('0x3'));var moment=require(_0xf60d('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xf60d('0x5'));var config=require('../../config/environment');var attributes=require(_0xf60d('0x6'));module[_0xf60d('0x7')]=function(_0x22e1c9,_0x8eb496){return _0x22e1c9[_0xf60d('0x8')](_0xf60d('0x9'),attributes,{'tableName':_0xf60d('0xa'),'paranoid':![],'indexes':[{'name':'zendesk_unique_index','fields':[_0xf60d('0xb'),_0xf60d('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xeae0=['int_zendesk_fields','zendesk_unique_index','idField','FieldId','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZendeskField.attributes','exports','ZendeskField'];(function(_0x2417d4,_0xceb26e){var _0x38a31b=function(_0x501b98){while(--_0x501b98){_0x2417d4['push'](_0x2417d4['shift']());}};_0x38a31b(++_0xceb26e);}(_0xeae0,0xc4));var _0x0eae=function(_0x1d8b10,_0x9603a6){_0x1d8b10=_0x1d8b10-0x0;var _0x123f31=_0xeae0[_0x1d8b10];return _0x123f31;};'use strict';var _=require(_0x0eae('0x0'));var util=require(_0x0eae('0x1'));var logger=require('../../config/logger')(_0x0eae('0x2'));var moment=require(_0x0eae('0x3'));var BPromise=require(_0x0eae('0x4'));var rp=require(_0x0eae('0x5'));var fs=require('fs');var path=require(_0x0eae('0x6'));var rimraf=require(_0x0eae('0x7'));var config=require(_0x0eae('0x8'));var attributes=require(_0x0eae('0x9'));module[_0x0eae('0xa')]=function(_0x41ed85,_0x505039){return _0x41ed85['define'](_0x0eae('0xb'),attributes,{'tableName':_0x0eae('0xc'),'paranoid':![],'indexes':[{'name':_0x0eae('0xd'),'fields':[_0x0eae('0xe'),_0x0eae('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x047f=['error','ZendeskField,\x20%s,\x20%s','message','result','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','request\x20sent','debug','stringify'];(function(_0x496ffe,_0x59b954){var _0x3bd0ff=function(_0xbf558){while(--_0xbf558){_0x496ffe['push'](_0x496ffe['shift']());}};_0x3bd0ff(++_0x59b954);}(_0x047f,0xd6));var _0xf047=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x047f[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xf047('0x0'));var util=require(_0xf047('0x1'));var moment=require(_0xf047('0x2'));var BPromise=require(_0xf047('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf047('0x4'))['db'];var utils=require(_0xf047('0x5'));var logger=require(_0xf047('0x6'))(_0xf047('0x7'));var config=require(_0xf047('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xf047('0x9')][_0xf047('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xea37e1,_0x56a761,_0xe0e237){return new BPromise(function(_0x3d13a4,_0x17ebc2){return client[_0xf047('0xb')](_0xea37e1,_0xe0e237)[_0xf047('0xc')](function(_0x504dc3){logger[_0xf047('0xd')]('ZendeskField,\x20%s,\x20%s',_0x56a761,_0xf047('0xe'));logger[_0xf047('0xf')]('ZendeskField,\x20%s,\x20%s,\x20%s',_0x56a761,_0xf047('0xe'),JSON[_0xf047('0x10')](_0x504dc3));if(_0x504dc3['error']){if(_0x504dc3[_0xf047('0x11')]['code']===0x1f4){logger[_0xf047('0x11')](_0xf047('0x12'),_0x56a761,_0x504dc3[_0xf047('0x11')][_0xf047('0x13')]);return _0x17ebc2(_0x504dc3[_0xf047('0x11')][_0xf047('0x13')]);}logger['error'](_0xf047('0x12'),_0x56a761,_0x504dc3[_0xf047('0x11')][_0xf047('0x13')]);return _0x3d13a4(_0x504dc3[_0xf047('0x11')]['message']);}else{logger[_0xf047('0xd')]('ZendeskField,\x20%s,\x20%s',_0x56a761,'request\x20sent');_0x3d13a4(_0x504dc3[_0xf047('0x14')]['message']);}})['catch'](function(_0x47f58d){logger[_0xf047('0x11')](_0xf047('0x12'),_0x56a761,_0x47f58d);_0x17ebc2(_0x47f58d);});});}
\ No newline at end of file
+var _0x9ad6=['../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','request','then','info','ZendeskField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','catch','lodash','util','moment','randomstring','ioredis'];(function(_0x1c0d19,_0x2b9a0){var _0x579779=function(_0x4ac5f1){while(--_0x4ac5f1){_0x1c0d19['push'](_0x1c0d19['shift']());}};_0x579779(++_0x2b9a0);}(_0x9ad6,0x14f));var _0x69ad=function(_0x14e945,_0x407ec3){_0x14e945=_0x14e945-0x0;var _0x560cec=_0x9ad6[_0x14e945];return _0x560cec;};'use strict';var _=require(_0x69ad('0x0'));var util=require(_0x69ad('0x1'));var moment=require(_0x69ad('0x2'));var BPromise=require('bluebird');var rs=require(_0x69ad('0x3'));var fs=require('fs');var Redis=require(_0x69ad('0x4'));var db=require(_0x69ad('0x5'))['db'];var utils=require(_0x69ad('0x6'));var logger=require(_0x69ad('0x7'))(_0x69ad('0x8'));var config=require('../../config/environment');var jayson=require(_0x69ad('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x457dc5,_0x462b07,_0x4f4668){return new BPromise(function(_0x528748,_0x49d127){return client[_0x69ad('0xa')](_0x457dc5,_0x4f4668)[_0x69ad('0xb')](function(_0x32d430){logger[_0x69ad('0xc')](_0x69ad('0xd'),_0x462b07,_0x69ad('0xe'));logger[_0x69ad('0xf')]('ZendeskField,\x20%s,\x20%s,\x20%s',_0x462b07,_0x69ad('0xe'),JSON[_0x69ad('0x10')](_0x32d430));if(_0x32d430[_0x69ad('0x11')]){if(_0x32d430[_0x69ad('0x11')]['code']===0x1f4){logger[_0x69ad('0x11')](_0x69ad('0xd'),_0x462b07,_0x32d430[_0x69ad('0x11')][_0x69ad('0x12')]);return _0x49d127(_0x32d430[_0x69ad('0x11')][_0x69ad('0x12')]);}logger[_0x69ad('0x11')](_0x69ad('0xd'),_0x462b07,_0x32d430[_0x69ad('0x11')][_0x69ad('0x12')]);return _0x528748(_0x32d430[_0x69ad('0x11')][_0x69ad('0x12')]);}else{logger['info'](_0x69ad('0xd'),_0x462b07,_0x69ad('0xe'));_0x528748(_0x32d430['result'][_0x69ad('0x12')]);}})[_0x69ad('0x13')](function(_0x4d26ab){logger['error'](_0x69ad('0xd'),_0x462b07,_0x4d26ab);_0x49d127(_0x4d26ab);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6984=['../../config/environment','./intZohoAccount.controller','isAuthenticated','index','get','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','put','update','destroy','multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x3838b8,_0xa31d6d){var _0x43b02d=function(_0x1acdbe){while(--_0x1acdbe){_0x3838b8['push'](_0x3838b8['shift']());}};_0x43b02d(++_0xa31d6d);}(_0x6984,0x1dc));var _0x4698=function(_0x20871c,_0x2a72b8){_0x20871c=_0x20871c-0x0;var _0x3f2b0a=_0x6984[_0x20871c];return _0x3f2b0a;};'use strict';var multer=require(_0x4698('0x0'));var util=require(_0x4698('0x1'));var path=require(_0x4698('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x4698('0x3')]();var fs_extra=require(_0x4698('0x4'));var auth=require(_0x4698('0x5'));var interaction=require(_0x4698('0x6'));var config=require(_0x4698('0x7'));var controller=require(_0x4698('0x8'));router['get']('/',auth[_0x4698('0x9')](),controller[_0x4698('0xa')]);router[_0x4698('0xb')](_0x4698('0xc'),auth[_0x4698('0x9')](),controller[_0x4698('0xd')]);router['get'](_0x4698('0xe'),auth[_0x4698('0x9')](),controller[_0x4698('0xf')]);router[_0x4698('0xb')](_0x4698('0x10'),auth[_0x4698('0x9')](),controller[_0x4698('0x11')]);router[_0x4698('0x12')]('/',auth[_0x4698('0x9')](),controller[_0x4698('0x13')]);router[_0x4698('0x12')](_0x4698('0xe'),auth['isAuthenticated'](),controller['addConfiguration']);router[_0x4698('0x14')](_0x4698('0xc'),auth[_0x4698('0x9')](),controller[_0x4698('0x15')]);router['delete'](_0x4698('0xc'),auth[_0x4698('0x9')](),controller[_0x4698('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0x32d8=['/:id/fields','post','create','addConfiguration','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','show','/:id/configurations'];(function(_0x4854d6,_0x2f1264){var _0x3885c0=function(_0x4d564d){while(--_0x4d564d){_0x4854d6['push'](_0x4854d6['shift']());}};_0x3885c0(++_0x2f1264);}(_0x32d8,0x68));var _0x832d=function(_0x540178,_0x1feb3d){_0x540178=_0x540178-0x0;var _0x58a85c=_0x32d8[_0x540178];return _0x58a85c;};'use strict';var multer=require(_0x832d('0x0'));var util=require(_0x832d('0x1'));var path=require(_0x832d('0x2'));var timeout=require(_0x832d('0x3'));var express=require(_0x832d('0x4'));var router=express[_0x832d('0x5')]();var fs_extra=require(_0x832d('0x6'));var auth=require(_0x832d('0x7'));var interaction=require(_0x832d('0x8'));var config=require(_0x832d('0x9'));var controller=require('./intZohoAccount.controller');router['get']('/',auth[_0x832d('0xa')](),controller[_0x832d('0xb')]);router[_0x832d('0xc')](_0x832d('0xd'),auth[_0x832d('0xa')](),controller[_0x832d('0xe')]);router[_0x832d('0xc')](_0x832d('0xf'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0x832d('0xc')](_0x832d('0x10'),auth[_0x832d('0xa')](),controller['getFields']);router[_0x832d('0x11')]('/',auth[_0x832d('0xa')](),controller[_0x832d('0x12')]);router['post']('/:id/configurations',auth[_0x832d('0xa')](),controller[_0x832d('0x13')]);router[_0x832d('0x14')]('/:id',auth[_0x832d('0xa')](),controller[_0x832d('0x15')]);router[_0x832d('0x16')]('/:id',auth[_0x832d('0xa')](),controller[_0x832d('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd2ea=['sequelize','exports','STRING'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0xd2ea,0x15f));var _0xad2e=function(_0x1c226b,_0x11116b){_0x1c226b=_0x1c226b-0x0;var _0x3b5842=_0xd2ea[_0x1c226b];return _0x3b5842;};'use strict';var Sequelize=require(_0xad2e('0x0'));module[_0xad2e('0x1')]={'name':{'type':Sequelize[_0xad2e('0x2')]},'description':{'type':Sequelize[_0xad2e('0x2')]},'host':{'type':Sequelize[_0xad2e('0x2')]},'zone':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0xad2e('0x2')]},'clientSecret':{'type':Sequelize[_0xad2e('0x2')]},'serverUrl':{'type':Sequelize[_0xad2e('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0xad2e('0x2')]},'refreshToken':{'type':Sequelize[_0xad2e('0x2')]}};
\ No newline at end of file
+var _0x702d=['sequelize','exports','STRING'];(function(_0x57bda4,_0x4bc278){var _0x56103e=function(_0x552ce0){while(--_0x552ce0){_0x57bda4['push'](_0x57bda4['shift']());}};_0x56103e(++_0x4bc278);}(_0x702d,0x147));var _0xd702=function(_0x39ea6d,_0x4d85e2){_0x39ea6d=_0x39ea6d-0x0;var _0x548037=_0x702d[_0x39ea6d];return _0x548037;};'use strict';var Sequelize=require(_0xd702('0x0'));module[_0xd702('0x1')]={'name':{'type':Sequelize[_0xd702('0x2')]},'description':{'type':Sequelize[_0xd702('0x2')]},'host':{'type':Sequelize[_0xd702('0x2')]},'zone':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0xd702('0x2')]},'clientSecret':{'type':Sequelize[_0xd702('0x2')]},'serverUrl':{'type':Sequelize[_0xd702('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0xd702('0x2')]},'refreshToken':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x981c=['getDescriptions','ZohoField','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','host','serverUrl','code','zoho.eu','slice','substring','lastIndexOf','format','Zoho-oauthtoken\x20','response','message','Owner','Subject','Description','Call_Duration','Call_Result','Call_Start_Time','remove','api_name','display_label','custom_field','data_type','picklist','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','send','index','fieldName','type','key','model','map','name','query','keys','filters','intersection','attributes','fields','hasOwnProperty','sort','where','pick','merge','options','ZohoAccount','includeAll','findAll','catch','params','rawAttributes','include','create','body','update','find','getConfigurations','findOne','ZohoConfiguration','order','filter','length','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x981c,0x1bf));var _0xc981=function(_0x26b836,_0x527dcf){_0x26b836=_0x26b836-0x0;var _0x20d0b9=_0x981c[_0x26b836];return _0x20d0b9;};'use strict';var emlformat=require(_0xc981('0x0'));var rimraf=require(_0xc981('0x1'));var zipdir=require(_0xc981('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xc981('0x3'));var BPromise=require(_0xc981('0x4'));var Mustache=require(_0xc981('0x5'));var util=require(_0xc981('0x6'));var path=require('path');var sox=require(_0xc981('0x7'));var csv=require(_0xc981('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc981('0x9'));var _=require(_0xc981('0xa'));var squel=require(_0xc981('0xb'));var crypto=require(_0xc981('0xc'));var jsforce=require(_0xc981('0xd'));var deskjs=require(_0xc981('0xe'));var toCsv=require(_0xc981('0x8'));var querystring=require(_0xc981('0xf'));var Papa=require(_0xc981('0x10'));var Redis=require(_0xc981('0x11'));var authService=require(_0xc981('0x12'));var qs=require(_0xc981('0x13'));var as=require(_0xc981('0x14'));var hardwareService=require(_0xc981('0x15'));var logger=require(_0xc981('0x16'))(_0xc981('0x17'));var utils=require(_0xc981('0x18'));var config=require(_0xc981('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xc981('0x1a'))['db'];var integrations=require(_0xc981('0x1b'));function respondWithStatusCode(_0x598c0f,_0x504bd7){_0x504bd7=_0x504bd7||0xcc;return function(_0x50a24c){if(_0x50a24c){return _0x598c0f['sendStatus'](_0x504bd7);}return _0x598c0f[_0xc981('0x1c')](_0x504bd7)[_0xc981('0x1d')]();};}function respondWithResult(_0x668cfa,_0x4646f4){_0x4646f4=_0x4646f4||0xc8;return function(_0x9a7d5a){if(_0x9a7d5a){return _0x668cfa['status'](_0x4646f4)[_0xc981('0x1e')](_0x9a7d5a);}};}function respondWithFilteredResult(_0x3828b3,_0x3889e8){return function(_0x1530e9){if(_0x1530e9){var _0x30ef09=typeof _0x3889e8[_0xc981('0x1f')]==='undefined'&&typeof _0x3889e8[_0xc981('0x20')]===_0xc981('0x21');var _0x2df4ac=_0x1530e9['count'];var _0x41f24e=_0x30ef09?0x0:_0x3889e8['offset'];var _0x23e058=_0x30ef09?_0x1530e9[_0xc981('0x22')]:_0x3889e8['offset']+_0x3889e8['limit'];var _0x122ec2;if(_0x23e058>=_0x2df4ac){_0x23e058=_0x2df4ac;_0x122ec2=0xc8;}else{_0x122ec2=0xce;}_0x3828b3[_0xc981('0x1c')](_0x122ec2);return _0x3828b3[_0xc981('0x23')](_0xc981('0x24'),_0x41f24e+'-'+_0x23e058+'/'+_0x2df4ac)[_0xc981('0x1e')](_0x1530e9);}return null;};}function patchUpdates(_0x46b95c){return function(_0x350713){try{jsonpatch[_0xc981('0x25')](_0x350713,_0x46b95c,!![]);}catch(_0x412004){return BPromise[_0xc981('0x26')](_0x412004);}return _0x350713[_0xc981('0x27')]();};}function saveUpdates(_0x1c700c,_0x18b5d3){return function(_0x16d78f){if(_0x16d78f){return _0x16d78f['update'](_0x1c700c)[_0xc981('0x28')](function(_0x27af42){return _0x27af42;});}return null;};}function removeEntity(_0x358534,_0x320d1f){return function(_0x492651){if(_0x492651){return _0x492651[_0xc981('0x29')]()[_0xc981('0x28')](function(){_0x358534['status'](0xcc)[_0xc981('0x1d')]();});}};}function handleEntityNotFound(_0x2647a4,_0x2b666a){return function(_0x14457b){if(!_0x14457b){_0x2647a4[_0xc981('0x2a')](0x194);}return _0x14457b;};}function handleError(_0x185769,_0x36dad3){_0x36dad3=_0x36dad3||0x1f4;return function(_0x394b97){logger[_0xc981('0x2b')](_0x394b97[_0xc981('0x2c')]);if(_0x394b97['name']){delete _0x394b97['name'];}_0x185769[_0xc981('0x1c')](_0x36dad3)[_0xc981('0x2d')](_0x394b97);};}exports[_0xc981('0x2e')]=function(_0x3d8b21,_0x587d5c){var _0x23ef97={},_0x51125d={},_0x14cbd4={'count':0x0,'rows':[]};var _0x19ffa2=_['map'](db['ZohoAccount']['rawAttributes'],function(_0x407c88){return{'name':_0x407c88[_0xc981('0x2f')],'type':_0x407c88[_0xc981('0x30')][_0xc981('0x31')]};});_0x51125d[_0xc981('0x32')]=_[_0xc981('0x33')](_0x19ffa2,_0xc981('0x34'));_0x51125d[_0xc981('0x35')]=_[_0xc981('0x36')](_0x3d8b21[_0xc981('0x35')]);_0x51125d[_0xc981('0x37')]=_[_0xc981('0x38')](_0x51125d['model'],_0x51125d[_0xc981('0x35')]);_0x23ef97[_0xc981('0x39')]=_[_0xc981('0x38')](_0x51125d[_0xc981('0x32')],qs[_0xc981('0x3a')](_0x3d8b21['query'][_0xc981('0x3a')]));_0x23ef97[_0xc981('0x39')]=_0x23ef97[_0xc981('0x39')]['length']?_0x23ef97[_0xc981('0x39')]:_0x51125d[_0xc981('0x32')];if(!_0x3d8b21[_0xc981('0x35')][_0xc981('0x3b')]('nolimit')){_0x23ef97[_0xc981('0x20')]=qs[_0xc981('0x20')](_0x3d8b21[_0xc981('0x35')][_0xc981('0x20')]);_0x23ef97[_0xc981('0x1f')]=qs[_0xc981('0x1f')](_0x3d8b21['query'][_0xc981('0x1f')]);}_0x23ef97['order']=qs[_0xc981('0x3c')](_0x3d8b21[_0xc981('0x35')][_0xc981('0x3c')]);_0x23ef97[_0xc981('0x3d')]=qs[_0xc981('0x37')](_[_0xc981('0x3e')](_0x3d8b21[_0xc981('0x35')],_0x51125d['filters']),_0x19ffa2);if(_0x3d8b21['query']['filter']){_0x23ef97['where']=_[_0xc981('0x3f')](_0x23ef97[_0xc981('0x3d')],{'$or':_['map'](_0x19ffa2,function(_0x1aa0ea){if(_0x1aa0ea[_0xc981('0x30')]!=='VIRTUAL'){var _0x43c3e0={};_0x43c3e0[_0x1aa0ea[_0xc981('0x34')]]={'$like':'%'+_0x3d8b21[_0xc981('0x35')]['filter']+'%'};return _0x43c3e0;}})});}_0x23ef97=_[_0xc981('0x3f')]({},_0x23ef97,_0x3d8b21[_0xc981('0x40')]);var _0x9a2d7e={'where':_0x23ef97[_0xc981('0x3d')]};return db[_0xc981('0x41')][_0xc981('0x22')](_0x9a2d7e)['then'](function(_0x3af601){_0x14cbd4[_0xc981('0x22')]=_0x3af601;if(_0x3d8b21['query'][_0xc981('0x42')]){_0x23ef97['include']=[{'all':!![]}];}return db[_0xc981('0x41')][_0xc981('0x43')](_0x23ef97);})[_0xc981('0x28')](function(_0x5ecf31){_0x14cbd4['rows']=_0x5ecf31;return _0x14cbd4;})[_0xc981('0x28')](respondWithFilteredResult(_0x587d5c,_0x23ef97))[_0xc981('0x44')](handleError(_0x587d5c,null));};exports['show']=function(_0x1e4d2d,_0x1bbddf){var _0x43340a={'raw':![],'where':{'id':_0x1e4d2d[_0xc981('0x45')]['id']}},_0xf2eb5={};_0xf2eb5['model']=_[_0xc981('0x36')](db[_0xc981('0x41')][_0xc981('0x46')]);_0xf2eb5[_0xc981('0x35')]=_[_0xc981('0x36')](_0x1e4d2d['query']);_0xf2eb5['filters']=_['intersection'](_0xf2eb5['model'],_0xf2eb5[_0xc981('0x35')]);_0x43340a[_0xc981('0x39')]=_[_0xc981('0x38')](_0xf2eb5[_0xc981('0x32')],qs[_0xc981('0x3a')](_0x1e4d2d[_0xc981('0x35')]['fields']));_0x43340a['attributes']=_0x43340a[_0xc981('0x39')]['length']?_0x43340a['attributes']:_0xf2eb5[_0xc981('0x32')];if(_0x1e4d2d[_0xc981('0x35')][_0xc981('0x42')]){_0x43340a[_0xc981('0x47')]=[{'all':!![]}];}_0x43340a=_[_0xc981('0x3f')]({},_0x43340a,_0x1e4d2d[_0xc981('0x40')]);return db[_0xc981('0x41')]['find'](_0x43340a)[_0xc981('0x28')](handleEntityNotFound(_0x1bbddf,null))[_0xc981('0x28')](respondWithResult(_0x1bbddf,null))['catch'](handleError(_0x1bbddf,null));};exports[_0xc981('0x48')]=function(_0x48f30e,_0x5d5e32){return db['ZohoAccount'][_0xc981('0x48')](_0x48f30e[_0xc981('0x49')],{})[_0xc981('0x28')](respondWithResult(_0x5d5e32,0xc9))[_0xc981('0x44')](handleError(_0x5d5e32,null));};exports[_0xc981('0x4a')]=function(_0x5c05ac,_0x3e58be){if(_0x5c05ac[_0xc981('0x49')]['id']){delete _0x5c05ac[_0xc981('0x49')]['id'];}return db[_0xc981('0x41')][_0xc981('0x4b')]({'where':{'id':_0x5c05ac[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x3e58be,null))['then'](saveUpdates(_0x5c05ac['body'],null))['then'](respondWithResult(_0x3e58be,null))[_0xc981('0x44')](handleError(_0x3e58be,null));};exports[_0xc981('0x29')]=function(_0x14796b,_0x1d2273){return db['ZohoAccount'][_0xc981('0x4b')]({'where':{'id':_0x14796b[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x1d2273,null))[_0xc981('0x28')](removeEntity(_0x1d2273,null))[_0xc981('0x44')](handleError(_0x1d2273,null));};exports[_0xc981('0x4c')]=function(_0x4d8d90,_0x4962a7,_0x154831){var _0x2287bc={};var _0x12ccd5={};var _0x4d662d;var _0x36fb27;return db[_0xc981('0x41')][_0xc981('0x4d')]({'where':{'id':_0x4d8d90[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x4962a7,null))[_0xc981('0x28')](function(_0x1b4795){if(_0x1b4795){_0x4d662d=_0x1b4795;_0x12ccd5['model']=_['keys'](db[_0xc981('0x4e')]['rawAttributes']);_0x12ccd5['query']=_[_0xc981('0x36')](_0x4d8d90[_0xc981('0x35')]);_0x12ccd5[_0xc981('0x37')]=_[_0xc981('0x38')](_0x12ccd5[_0xc981('0x32')],_0x12ccd5[_0xc981('0x35')]);_0x2287bc[_0xc981('0x39')]=_[_0xc981('0x38')](_0x12ccd5[_0xc981('0x32')],qs[_0xc981('0x3a')](_0x4d8d90[_0xc981('0x35')]['fields']));_0x2287bc[_0xc981('0x39')]=_0x2287bc[_0xc981('0x39')]['length']?_0x2287bc[_0xc981('0x39')]:_0x12ccd5[_0xc981('0x32')];_0x2287bc[_0xc981('0x4f')]=qs[_0xc981('0x3c')](_0x4d8d90[_0xc981('0x35')][_0xc981('0x3c')]);_0x2287bc[_0xc981('0x3d')]=qs['filters'](_[_0xc981('0x3e')](_0x4d8d90[_0xc981('0x35')],_0x12ccd5[_0xc981('0x37')]));if(_0x4d8d90['query']['filter']){_0x2287bc[_0xc981('0x3d')]=_[_0xc981('0x3f')](_0x2287bc['where'],{'$or':_[_0xc981('0x33')](_0x2287bc[_0xc981('0x39')],function(_0x540069){var _0x4a1db4={};_0x4a1db4[_0x540069]={'$like':'%'+_0x4d8d90[_0xc981('0x35')][_0xc981('0x50')]+'%'};return _0x4a1db4;})});}_0x2287bc=_[_0xc981('0x3f')]({},_0x2287bc,_0x4d8d90['options']);return _0x4d662d[_0xc981('0x4c')](_0x2287bc);}})['then'](function(_0x34b292){if(_0x34b292){_0x36fb27=_0x34b292[_0xc981('0x51')];if(!_0x4d8d90[_0xc981('0x35')][_0xc981('0x3b')](_0xc981('0x52'))){_0x2287bc[_0xc981('0x20')]=qs['limit'](_0x4d8d90[_0xc981('0x35')][_0xc981('0x20')]);_0x2287bc[_0xc981('0x1f')]=qs[_0xc981('0x1f')](_0x4d8d90[_0xc981('0x35')][_0xc981('0x1f')]);}return _0x4d662d[_0xc981('0x4c')](_0x2287bc);}})[_0xc981('0x28')](function(_0xd4772){if(_0xd4772){return _0xd4772?{'count':_0x36fb27,'rows':_0xd4772}:null;}})[_0xc981('0x28')](respondWithResult(_0x4962a7,null))['catch'](handleError(_0x4962a7,null));};exports[_0xc981('0x53')]=function(_0x3a5b80,_0x1a91cd,_0x45c075){if(_0x3a5b80[_0xc981('0x49')]['id']){delete _0x3a5b80[_0xc981('0x49')]['id'];}return db['ZohoAccount'][_0xc981('0x4d')]({'where':{'id':_0x3a5b80[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x1a91cd,null))['then'](function(_0x30a1cb){if(_0x30a1cb){_0x3a5b80['body'][_0xc981('0x54')]=_0x30a1cb['id'];_0x3a5b80[_0xc981('0x49')][_0xc981('0x55')]=integrations[_0xc981('0x56')](_0x3a5b80[_0xc981('0x49')][_0xc981('0x57')],_0x3a5b80['body'][_0xc981('0x30')]);_0x3a5b80[_0xc981('0x49')][_0xc981('0x58')]=integrations[_0xc981('0x59')](_0x3a5b80[_0xc981('0x49')][_0xc981('0x57')],_0x3a5b80[_0xc981('0x49')][_0xc981('0x30')]);return db['ZohoConfiguration'][_0xc981('0x48')](_0x3a5b80['body'],{'include':[{'model':db['ZohoField'],'as':_0xc981('0x55')},{'model':db[_0xc981('0x5a')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x1a91cd,null))['catch'](handleError(_0x1a91cd,null));};function getAccessToken(_0x1bf4cc){return new Promise(function(_0x38f0a4,_0x41c505){var _0x2e8b79;switch(_0x1bf4cc[_0xc981('0x5b')]){case'US':_0x2e8b79=_0xc981('0x5c');break;case'AU':_0x2e8b79=_0xc981('0x5d');break;case'EU':_0x2e8b79=_0xc981('0x5e');break;case'IN':_0x2e8b79=_0xc981('0x5f');break;case'CN':_0x2e8b79=_0xc981('0x60');break;default:_0x2e8b79=_0xc981('0x5e');break;}var _0x1b8a57={'method':_0xc981('0x61'),'uri':_0x2e8b79+_0xc981('0x62'),'qs':{'refresh_token':_0x1bf4cc[_0xc981('0x63')],'client_id':_0x1bf4cc[_0xc981('0x64')],'client_secret':_0x1bf4cc[_0xc981('0x65')],'grant_type':_0xc981('0x66')},'json':!![]};return rp(_0x1b8a57)[_0xc981('0x28')](function(_0x2537b1){if(_0x2537b1['access_token']){_0x38f0a4(_0x2537b1[_0xc981('0x67')]);}else{_0x41c505(_0xc981('0x68'));}})['catch'](function(_0x3682ce){_0x41c505(_0x3682ce);});});}exports[_0xc981('0x69')]=function(_0x1a35ff,_0x43c646,_0x59e831){var _0x149387,_0x47f42b,_0x1a2797,_0x1fe65d,_0x185a0c;return db['ZohoAccount'][_0xc981('0x4d')]({'where':{'id':_0x1a35ff[_0xc981('0x45')]['id']},'attributes':['id',_0xc981('0x6a'),_0xc981('0x5b'),_0xc981('0x64'),_0xc981('0x65'),_0xc981('0x6b'),_0xc981('0x6c'),_0xc981('0x63')]})[_0xc981('0x28')](handleEntityNotFound(_0x43c646,null))[_0xc981('0x28')](function(_0x2684ad){_0x185a0c=_0x2684ad;_0x149387=_0x185a0c[_0xc981('0x6a')];_0x47f42b=_0x149387===_0xc981('0x6d')?'eu':'com';_0x1a2797=_0x185a0c[_0xc981('0x6b')];var _0x371af2=_0x1a2797[_0xc981('0x6e')](-0x1);if(_0x371af2==='/'||_0x371af2==='\x5c'||_0x371af2===':'){_0x1a2797=_0x1a2797[_0xc981('0x6f')](0x0,_0x1a2797[_0xc981('0x70')](_0x371af2));}if(!_0x185a0c['refreshToken']){throw new Error('Refresh\x20Token\x20not\x20available\x20for\x20the\x20account');}return getAccessToken(_0x185a0c);})[_0xc981('0x28')](function(_0x5d5011){if(_0x5d5011){return rp({'method':'GET','uri':util[_0xc981('0x71')]('https://www.zohoapis.%s/crm/v2/settings/fields',_0x47f42b),'qs':{'module':'Calls'},'headers':{'Authorization':_0xc981('0x72')+_0x5d5011},'json':!![]});}})[_0xc981('0x28')](function(_0x1415e5){if(_0x1415e5){if(_0x1415e5[_0xc981('0x73')]&&_0x1415e5[_0xc981('0x73')]['error']){throw new Error(_0x1415e5['response']['error'][_0xc981('0x74')]);}var _0x21f918=[];var _0x1372b6=[];var _0x43b2c3=[_0xc981('0x75'),_0xc981('0x76'),_0xc981('0x77'),'WhoId',_0xc981('0x78'),_0xc981('0x79'),_0xc981('0x7a'),'Call_Type'];_0x1372b6=_[_0xc981('0x7b')](_0x1415e5[_0xc981('0x3a')],function(_0x44f27a){return _0x43b2c3['includes'](_0x44f27a[_0xc981('0x7c')]);});for(var _0x53eacf=0x0;_0x53eacf<_0x1372b6[_0xc981('0x51')];_0x53eacf++){if(_0x1372b6[_0x53eacf]['system_mandatory']===![]){_0x21f918['push']({'id':_0x1372b6[_0x53eacf]['id'],'name':_0x1372b6[_0x53eacf][_0xc981('0x7d')],'custom':_0x1372b6[_0x53eacf][_0xc981('0x7e')],'options':_0x1372b6[_0x53eacf][_0xc981('0x7f')]===_0xc981('0x80')&&_0x1372b6[_0x53eacf][_0xc981('0x81')][_0xc981('0x51')]>-0x1?_['map'](_0x1372b6[_0x53eacf][_0xc981('0x81')],function(_0x29aefc){return{'name':_0x29aefc,'value':_0x29aefc};}):[]});}}return{'count':_0x21f918[_0xc981('0x51')],'rows':_0x21f918};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithResult(_0x43c646,null))[_0xc981('0x44')](function(_0x420f71){var _0x1cc304=_0x1a35ff[_0xc981('0x35')][_0xc981('0x82')]?0x1f4:_0x420f71[_0xc981('0x83')]||0x1f4;logger[_0xc981('0x2b')](_0xc981('0x84'),_0xc981('0x69'),_0x1cc304,JSON['stringify'](_0x420f71));delete _0x420f71[_0xc981('0x34')];if(_0x1cc304===0x191){_0x1cc304=0x190;}_0x43c646[_0xc981('0x1c')](_0x1cc304)[_0xc981('0x2d')](_0x1a35ff['query'][_0xc981('0x82')]?{'message':_0xc981('0x85'),'statusCode':_0x420f71[_0xc981('0x83')]}:_0x420f71);});};
\ No newline at end of file
+var _0x853d=['Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','host','clientId','serverUrl','refreshToken','zoho.eu','slice','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','Zoho-oauthtoken\x20','response','error','Owner','Subject','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','Call_Type','includes','api_name','system_mandatory','push','display_label','custom_field','data_type','pick_list_values','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','apply','reject','save','update','destroy','then','stack','name','index','map','ZohoAccount','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','options','include','findAll','rows','params','keys','find','catch','create','body','getConfigurations','findOne','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','ZohoConfiguration','ZohoField','zone','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','/oauth/v2/token','clientSecret','refresh_token'];(function(_0x47e62e,_0x5827c8){var _0x4b08ec=function(_0x1030ab){while(--_0x1030ab){_0x47e62e['push'](_0x47e62e['shift']());}};_0x4b08ec(++_0x5827c8);}(_0x853d,0x1b1));var _0xd853=function(_0xa4a9b3,_0x3b271c){_0xa4a9b3=_0xa4a9b3-0x0;var _0xb7a49e=_0x853d[_0xa4a9b3];return _0xb7a49e;};'use strict';var emlformat=require(_0xd853('0x0'));var rimraf=require(_0xd853('0x1'));var zipdir=require(_0xd853('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd853('0x3'));var moment=require(_0xd853('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xd853('0x5'));var util=require(_0xd853('0x6'));var path=require(_0xd853('0x7'));var sox=require(_0xd853('0x8'));var csv=require(_0xd853('0x9'));var ejs=require(_0xd853('0xa'));var fs=require('fs');var fs_extra=require(_0xd853('0xb'));var _=require(_0xd853('0xc'));var squel=require(_0xd853('0xd'));var crypto=require(_0xd853('0xe'));var jsforce=require(_0xd853('0xf'));var deskjs=require(_0xd853('0x10'));var toCsv=require(_0xd853('0x9'));var querystring=require(_0xd853('0x11'));var Papa=require('papaparse');var Redis=require(_0xd853('0x12'));var authService=require(_0xd853('0x13'));var qs=require(_0xd853('0x14'));var as=require(_0xd853('0x15'));var hardwareService=require(_0xd853('0x16'));var logger=require(_0xd853('0x17'))(_0xd853('0x18'));var utils=require('../../config/utils');var config=require(_0xd853('0x19'));var licenseUtil=require(_0xd853('0x1a'));var db=require('../../mysqldb')['db'];var integrations=require(_0xd853('0x1b'));function respondWithStatusCode(_0x36390b,_0x3ed3ca){_0x3ed3ca=_0x3ed3ca||0xcc;return function(_0x1e4c08){if(_0x1e4c08){return _0x36390b[_0xd853('0x1c')](_0x3ed3ca);}return _0x36390b[_0xd853('0x1d')](_0x3ed3ca)[_0xd853('0x1e')]();};}function respondWithResult(_0xa2e1b0,_0xb589b9){_0xb589b9=_0xb589b9||0xc8;return function(_0x2f244e){if(_0x2f244e){return _0xa2e1b0['status'](_0xb589b9)['json'](_0x2f244e);}};}function respondWithFilteredResult(_0x56ad72,_0x23f672){return function(_0x3449da){if(_0x3449da){var _0x5b2d42=typeof _0x23f672[_0xd853('0x1f')]===_0xd853('0x20')&&typeof _0x23f672['limit']===_0xd853('0x20');var _0x26b275=_0x3449da[_0xd853('0x21')];var _0x8420dd=_0x5b2d42?0x0:_0x23f672[_0xd853('0x1f')];var _0x30838d=_0x5b2d42?_0x3449da[_0xd853('0x21')]:_0x23f672[_0xd853('0x1f')]+_0x23f672['limit'];var _0x3f133e;if(_0x30838d>=_0x26b275){_0x30838d=_0x26b275;_0x3f133e=0xc8;}else{_0x3f133e=0xce;}_0x56ad72[_0xd853('0x1d')](_0x3f133e);return _0x56ad72[_0xd853('0x22')](_0xd853('0x23'),_0x8420dd+'-'+_0x30838d+'/'+_0x26b275)[_0xd853('0x24')](_0x3449da);}return null;};}function patchUpdates(_0x57e35a){return function(_0x11ae83){try{jsonpatch[_0xd853('0x25')](_0x11ae83,_0x57e35a,!![]);}catch(_0x50d744){return BPromise[_0xd853('0x26')](_0x50d744);}return _0x11ae83[_0xd853('0x27')]();};}function saveUpdates(_0x15859f,_0x26faf6){return function(_0x5f1bf4){if(_0x5f1bf4){return _0x5f1bf4[_0xd853('0x28')](_0x15859f)['then'](function(_0x2d5276){return _0x2d5276;});}return null;};}function removeEntity(_0x39f0b4,_0x2a18fa){return function(_0x492a39){if(_0x492a39){return _0x492a39[_0xd853('0x29')]()[_0xd853('0x2a')](function(){_0x39f0b4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x16ce76,_0x3ffac5){return function(_0x3c9037){if(!_0x3c9037){_0x16ce76['sendStatus'](0x194);}return _0x3c9037;};}function handleError(_0x14d300,_0x55a3e8){_0x55a3e8=_0x55a3e8||0x1f4;return function(_0x1ca2b6){logger['error'](_0x1ca2b6[_0xd853('0x2b')]);if(_0x1ca2b6[_0xd853('0x2c')]){delete _0x1ca2b6[_0xd853('0x2c')];}_0x14d300[_0xd853('0x1d')](_0x55a3e8)['send'](_0x1ca2b6);};}exports[_0xd853('0x2d')]=function(_0x499f3f,_0x1c5076){var _0x300e50={},_0x313b1f={},_0x1aa716={'count':0x0,'rows':[]};var _0xe27cd1=_[_0xd853('0x2e')](db[_0xd853('0x2f')][_0xd853('0x30')],function(_0x2a304f){return{'name':_0x2a304f[_0xd853('0x31')],'type':_0x2a304f[_0xd853('0x32')]['key']};});_0x313b1f[_0xd853('0x33')]=_[_0xd853('0x2e')](_0xe27cd1,_0xd853('0x2c'));_0x313b1f[_0xd853('0x34')]=_['keys'](_0x499f3f[_0xd853('0x34')]);_0x313b1f[_0xd853('0x35')]=_[_0xd853('0x36')](_0x313b1f[_0xd853('0x33')],_0x313b1f[_0xd853('0x34')]);_0x300e50[_0xd853('0x37')]=_[_0xd853('0x36')](_0x313b1f['model'],qs[_0xd853('0x38')](_0x499f3f[_0xd853('0x34')][_0xd853('0x38')]));_0x300e50['attributes']=_0x300e50[_0xd853('0x37')][_0xd853('0x39')]?_0x300e50[_0xd853('0x37')]:_0x313b1f[_0xd853('0x33')];if(!_0x499f3f['query'][_0xd853('0x3a')](_0xd853('0x3b'))){_0x300e50[_0xd853('0x3c')]=qs['limit'](_0x499f3f[_0xd853('0x34')][_0xd853('0x3c')]);_0x300e50[_0xd853('0x1f')]=qs['offset'](_0x499f3f[_0xd853('0x34')][_0xd853('0x1f')]);}_0x300e50[_0xd853('0x3d')]=qs[_0xd853('0x3e')](_0x499f3f[_0xd853('0x34')][_0xd853('0x3e')]);_0x300e50[_0xd853('0x3f')]=qs[_0xd853('0x35')](_[_0xd853('0x40')](_0x499f3f['query'],_0x313b1f[_0xd853('0x35')]),_0xe27cd1);if(_0x499f3f['query'][_0xd853('0x41')]){_0x300e50['where']=_[_0xd853('0x42')](_0x300e50['where'],{'$or':_[_0xd853('0x2e')](_0xe27cd1,function(_0x4cff85){if(_0x4cff85['type']!=='VIRTUAL'){var _0x33fe7c={};_0x33fe7c[_0x4cff85[_0xd853('0x2c')]]={'$like':'%'+_0x499f3f[_0xd853('0x34')]['filter']+'%'};return _0x33fe7c;}})});}_0x300e50=_[_0xd853('0x42')]({},_0x300e50,_0x499f3f[_0xd853('0x43')]);var _0x41da35={'where':_0x300e50[_0xd853('0x3f')]};return db[_0xd853('0x2f')][_0xd853('0x21')](_0x41da35)['then'](function(_0x4255ff){_0x1aa716[_0xd853('0x21')]=_0x4255ff;if(_0x499f3f['query']['includeAll']){_0x300e50[_0xd853('0x44')]=[{'all':!![]}];}return db[_0xd853('0x2f')][_0xd853('0x45')](_0x300e50);})[_0xd853('0x2a')](function(_0x50b8aa){_0x1aa716[_0xd853('0x46')]=_0x50b8aa;return _0x1aa716;})[_0xd853('0x2a')](respondWithFilteredResult(_0x1c5076,_0x300e50))['catch'](handleError(_0x1c5076,null));};exports['show']=function(_0x5205dc,_0x5c6fe1){var _0x3c0cf3={'raw':![],'where':{'id':_0x5205dc[_0xd853('0x47')]['id']}},_0x5b6624={};_0x5b6624[_0xd853('0x33')]=_[_0xd853('0x48')](db[_0xd853('0x2f')][_0xd853('0x30')]);_0x5b6624[_0xd853('0x34')]=_[_0xd853('0x48')](_0x5205dc[_0xd853('0x34')]);_0x5b6624['filters']=_['intersection'](_0x5b6624[_0xd853('0x33')],_0x5b6624['query']);_0x3c0cf3[_0xd853('0x37')]=_[_0xd853('0x36')](_0x5b6624[_0xd853('0x33')],qs['fields'](_0x5205dc['query']['fields']));_0x3c0cf3[_0xd853('0x37')]=_0x3c0cf3[_0xd853('0x37')][_0xd853('0x39')]?_0x3c0cf3['attributes']:_0x5b6624['model'];if(_0x5205dc[_0xd853('0x34')]['includeAll']){_0x3c0cf3[_0xd853('0x44')]=[{'all':!![]}];}_0x3c0cf3=_[_0xd853('0x42')]({},_0x3c0cf3,_0x5205dc['options']);return db[_0xd853('0x2f')][_0xd853('0x49')](_0x3c0cf3)[_0xd853('0x2a')](handleEntityNotFound(_0x5c6fe1,null))[_0xd853('0x2a')](respondWithResult(_0x5c6fe1,null))[_0xd853('0x4a')](handleError(_0x5c6fe1,null));};exports[_0xd853('0x4b')]=function(_0x171d93,_0x2ee6fe){return db[_0xd853('0x2f')][_0xd853('0x4b')](_0x171d93[_0xd853('0x4c')],{})[_0xd853('0x2a')](respondWithResult(_0x2ee6fe,0xc9))[_0xd853('0x4a')](handleError(_0x2ee6fe,null));};exports[_0xd853('0x28')]=function(_0x175a27,_0x2c7f8f){if(_0x175a27[_0xd853('0x4c')]['id']){delete _0x175a27[_0xd853('0x4c')]['id'];}return db[_0xd853('0x2f')][_0xd853('0x49')]({'where':{'id':_0x175a27[_0xd853('0x47')]['id']}})[_0xd853('0x2a')](handleEntityNotFound(_0x2c7f8f,null))[_0xd853('0x2a')](saveUpdates(_0x175a27[_0xd853('0x4c')],null))['then'](respondWithResult(_0x2c7f8f,null))[_0xd853('0x4a')](handleError(_0x2c7f8f,null));};exports[_0xd853('0x29')]=function(_0x278322,_0x95cbb8){return db[_0xd853('0x2f')][_0xd853('0x49')]({'where':{'id':_0x278322['params']['id']}})[_0xd853('0x2a')](handleEntityNotFound(_0x95cbb8,null))[_0xd853('0x2a')](removeEntity(_0x95cbb8,null))[_0xd853('0x4a')](handleError(_0x95cbb8,null));};exports[_0xd853('0x4d')]=function(_0x67a27b,_0x47334d,_0x2aa617){var _0x2ac348={};var _0x1f25b5={};var _0x1501c4;var _0x549fdb;return db[_0xd853('0x2f')][_0xd853('0x4e')]({'where':{'id':_0x67a27b[_0xd853('0x47')]['id']}})[_0xd853('0x2a')](handleEntityNotFound(_0x47334d,null))[_0xd853('0x2a')](function(_0x5cc315){if(_0x5cc315){_0x1501c4=_0x5cc315;_0x1f25b5[_0xd853('0x33')]=_['keys'](db['ZohoConfiguration'][_0xd853('0x30')]);_0x1f25b5[_0xd853('0x34')]=_[_0xd853('0x48')](_0x67a27b['query']);_0x1f25b5['filters']=_['intersection'](_0x1f25b5['model'],_0x1f25b5['query']);_0x2ac348[_0xd853('0x37')]=_[_0xd853('0x36')](_0x1f25b5[_0xd853('0x33')],qs[_0xd853('0x38')](_0x67a27b[_0xd853('0x34')][_0xd853('0x38')]));_0x2ac348[_0xd853('0x37')]=_0x2ac348[_0xd853('0x37')][_0xd853('0x39')]?_0x2ac348[_0xd853('0x37')]:_0x1f25b5[_0xd853('0x33')];_0x2ac348[_0xd853('0x3d')]=qs[_0xd853('0x3e')](_0x67a27b[_0xd853('0x34')][_0xd853('0x3e')]);_0x2ac348[_0xd853('0x3f')]=qs[_0xd853('0x35')](_[_0xd853('0x40')](_0x67a27b[_0xd853('0x34')],_0x1f25b5[_0xd853('0x35')]));if(_0x67a27b[_0xd853('0x34')]['filter']){_0x2ac348[_0xd853('0x3f')]=_['merge'](_0x2ac348[_0xd853('0x3f')],{'$or':_[_0xd853('0x2e')](_0x2ac348[_0xd853('0x37')],function(_0x58f97b){var _0x2f4fde={};_0x2f4fde[_0x58f97b]={'$like':'%'+_0x67a27b[_0xd853('0x34')]['filter']+'%'};return _0x2f4fde;})});}_0x2ac348=_['merge']({},_0x2ac348,_0x67a27b[_0xd853('0x43')]);return _0x1501c4[_0xd853('0x4d')](_0x2ac348);}})[_0xd853('0x2a')](function(_0x35a814){if(_0x35a814){_0x549fdb=_0x35a814[_0xd853('0x39')];if(!_0x67a27b[_0xd853('0x34')]['hasOwnProperty'](_0xd853('0x3b'))){_0x2ac348[_0xd853('0x3c')]=qs[_0xd853('0x3c')](_0x67a27b[_0xd853('0x34')][_0xd853('0x3c')]);_0x2ac348[_0xd853('0x1f')]=qs[_0xd853('0x1f')](_0x67a27b[_0xd853('0x34')][_0xd853('0x1f')]);}return _0x1501c4[_0xd853('0x4d')](_0x2ac348);}})[_0xd853('0x2a')](function(_0x37aaab){if(_0x37aaab){return _0x37aaab?{'count':_0x549fdb,'rows':_0x37aaab}:null;}})[_0xd853('0x2a')](respondWithResult(_0x47334d,null))['catch'](handleError(_0x47334d,null));};exports[_0xd853('0x4f')]=function(_0x157590,_0x4cce80,_0xf34571){if(_0x157590['body']['id']){delete _0x157590['body']['id'];}return db[_0xd853('0x2f')]['findOne']({'where':{'id':_0x157590[_0xd853('0x47')]['id']}})['then'](handleEntityNotFound(_0x4cce80,null))[_0xd853('0x2a')](function(_0x5c622d){if(_0x5c622d){_0x157590[_0xd853('0x4c')][_0xd853('0x50')]=_0x5c622d['id'];_0x157590['body'][_0xd853('0x51')]=integrations[_0xd853('0x52')](_0x157590[_0xd853('0x4c')][_0xd853('0x53')],_0x157590['body'][_0xd853('0x32')]);_0x157590[_0xd853('0x4c')][_0xd853('0x54')]=integrations['getDescriptions'](_0x157590[_0xd853('0x4c')]['channel'],_0x157590[_0xd853('0x4c')][_0xd853('0x32')]);return db[_0xd853('0x55')][_0xd853('0x4b')](_0x157590[_0xd853('0x4c')],{'include':[{'model':db['ZohoField'],'as':'Subjects'},{'model':db[_0xd853('0x56')],'as':_0xd853('0x54')}]});}return null;})['then'](respondWithResult(_0x4cce80,null))['catch'](handleError(_0x4cce80,null));};function getAccessToken(_0x14a3d9){return new Promise(function(_0x26f065,_0xd73f3e){var _0x3e4ce3;switch(_0x14a3d9[_0xd853('0x57')]){case'US':_0x3e4ce3='https://accounts.zoho.com';break;case'AU':_0x3e4ce3=_0xd853('0x58');break;case'EU':_0x3e4ce3=_0xd853('0x59');break;case'IN':_0x3e4ce3=_0xd853('0x5a');break;case'CN':_0x3e4ce3=_0xd853('0x5b');break;default:_0x3e4ce3=_0xd853('0x59');break;}var _0x1ccc25={'method':'POST','uri':_0x3e4ce3+_0xd853('0x5c'),'qs':{'refresh_token':_0x14a3d9['refreshToken'],'client_id':_0x14a3d9['clientId'],'client_secret':_0x14a3d9[_0xd853('0x5d')],'grant_type':_0xd853('0x5e')},'json':!![]};return rp(_0x1ccc25)[_0xd853('0x2a')](function(_0x204254){if(_0x204254['access_token']){_0x26f065(_0x204254['access_token']);}else{_0xd73f3e(_0xd853('0x5f'));}})[_0xd853('0x4a')](function(_0x5331f3){_0xd73f3e(_0x5331f3);});});}exports[_0xd853('0x60')]=function(_0x303306,_0x749b77,_0x240189){var _0x20e55d,_0x3c2b8a,_0x429ae0,_0x5d3aff,_0x2513e0;return db[_0xd853('0x2f')][_0xd853('0x4e')]({'where':{'id':_0x303306['params']['id']},'attributes':['id',_0xd853('0x61'),_0xd853('0x57'),_0xd853('0x62'),_0xd853('0x5d'),_0xd853('0x63'),'code',_0xd853('0x64')]})[_0xd853('0x2a')](handleEntityNotFound(_0x749b77,null))[_0xd853('0x2a')](function(_0x23cbf6){_0x2513e0=_0x23cbf6;_0x20e55d=_0x2513e0[_0xd853('0x61')];_0x3c2b8a=_0x20e55d===_0xd853('0x65')?'eu':'com';_0x429ae0=_0x2513e0[_0xd853('0x63')];var _0x339070=_0x429ae0[_0xd853('0x66')](-0x1);if(_0x339070==='/'||_0x339070==='\x5c'||_0x339070===':'){_0x429ae0=_0x429ae0[_0xd853('0x67')](0x0,_0x429ae0[_0xd853('0x68')](_0x339070));}if(!_0x2513e0['refreshToken']){throw new Error(_0xd853('0x69'));}return getAccessToken(_0x2513e0);})[_0xd853('0x2a')](function(_0x3aa68a){if(_0x3aa68a){return rp({'method':_0xd853('0x6a'),'uri':util['format'](_0xd853('0x6b'),_0x3c2b8a),'qs':{'module':_0xd853('0x6c')},'headers':{'Authorization':_0xd853('0x6d')+_0x3aa68a},'json':!![]});}})[_0xd853('0x2a')](function(_0x1bd846){if(_0x1bd846){if(_0x1bd846[_0xd853('0x6e')]&&_0x1bd846['response']['error']){throw new Error(_0x1bd846[_0xd853('0x6e')][_0xd853('0x6f')]['message']);}var _0x57f7c9=[];var _0x5647d3=[];var _0x27f13=[_0xd853('0x70'),_0xd853('0x71'),_0xd853('0x72'),_0xd853('0x73'),_0xd853('0x74'),_0xd853('0x75'),_0xd853('0x76'),_0xd853('0x77')];_0x5647d3=_['remove'](_0x1bd846[_0xd853('0x38')],function(_0x30c7b0){return _0x27f13[_0xd853('0x78')](_0x30c7b0[_0xd853('0x79')]);});for(var _0xfd27f4=0x0;_0xfd27f4<_0x5647d3['length'];_0xfd27f4++){if(_0x5647d3[_0xfd27f4][_0xd853('0x7a')]===![]){_0x57f7c9[_0xd853('0x7b')]({'id':_0x5647d3[_0xfd27f4]['id'],'name':_0x5647d3[_0xfd27f4][_0xd853('0x7c')],'custom':_0x5647d3[_0xfd27f4][_0xd853('0x7d')],'options':_0x5647d3[_0xfd27f4][_0xd853('0x7e')]==='picklist'&&_0x5647d3[_0xfd27f4][_0xd853('0x7f')][_0xd853('0x39')]>-0x1?_[_0xd853('0x2e')](_0x5647d3[_0xfd27f4]['pick_list_values'],function(_0x38f735){return{'name':_0x38f735,'value':_0x38f735};}):[]});}}return{'count':_0x57f7c9[_0xd853('0x39')],'rows':_0x57f7c9};}else{return{'count':0x0,'rows':[]};}})[_0xd853('0x2a')](respondWithResult(_0x749b77,null))[_0xd853('0x4a')](function(_0x89dbba){var _0x1e8bff=_0x303306[_0xd853('0x34')]['test']?0x1f4:_0x89dbba[_0xd853('0x80')]||0x1f4;logger[_0xd853('0x6f')](_0xd853('0x81'),'getFields',_0x1e8bff,JSON[_0xd853('0x82')](_0x89dbba));delete _0x89dbba[_0xd853('0x2c')];if(_0x1e8bff===0x191){_0x1e8bff=0x190;}_0x749b77['status'](_0x1e8bff)['send'](_0x303306[_0xd853('0x34')]['test']?{'message':_0xd853('0x83'),'statusCode':_0x89dbba['statusCode']}:_0x89dbba);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d77=['https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','POST','authorization_code','then','parse','refresh_token','refreshToken','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','format','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','substring','lastIndexOf','application/x-www-form-urlencoded','util','../../config/logger','api','bluebird','request-promise','rimraf','./intZohoAccount.attributes','../../components/integrations/configuration','define','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','code','host','slice'];(function(_0x644ecd,_0x397f36){var _0x1c66ce=function(_0x4cf42b){while(--_0x4cf42b){_0x644ecd['push'](_0x644ecd['shift']());}};_0x1c66ce(++_0x397f36);}(_0x3d77,0x190));var _0x73d7=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0x3d77[_0x47e7cb];return _0x2a8874;};'use strict';var _=require('lodash');var util=require(_0x73d7('0x0'));var logger=require(_0x73d7('0x1'))(_0x73d7('0x2'));var moment=require('moment');var BPromise=require(_0x73d7('0x3'));var rp=require(_0x73d7('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x73d7('0x5'));var config=require('../../config/environment');var attributes=require(_0x73d7('0x6'));var integrations=require(_0x73d7('0x7'));module['exports']=function(_0x54eff8,_0x3ac0be){return _0x54eff8[_0x73d7('0x8')]('ZohoAccount',attributes,{'tableName':_0x73d7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x492fcd,_0x47734c,_0x11787b){if(_0x492fcd[_0x73d7('0xa')](_0x73d7('0xb'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xc'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xd'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xe'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xf'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0x10'))){var _0x2618f8,_0x415d02;_0x2618f8=_0x492fcd[_0x73d7('0xc')];var _0x5bc197=_0x2618f8[_0x73d7('0x11')](-0x1);if(_0x5bc197==='/'||_0x5bc197==='\x5c'||_0x5bc197===':'){_0x2618f8=_0x2618f8['substring'](0x0,_0x2618f8['lastIndexOf'](_0x5bc197));}switch(_0x492fcd[_0x73d7('0xb')]){case'US':_0x415d02=_0x73d7('0x12');break;case'AU':_0x415d02=_0x73d7('0x13');break;case'IN':_0x415d02=_0x73d7('0x14');break;case'CN':_0x415d02='https://accounts.zoho.com.cn';break;default:_0x415d02='https://accounts.zoho.eu';break;}var _0x338fe2={'method':_0x73d7('0x15'),'uri':_0x415d02+'/oauth/v2/token','form':{'grant_type':_0x73d7('0x16'),'client_id':_0x492fcd[_0x73d7('0xd')],'client_secret':_0x492fcd[_0x73d7('0xe')],'redirect_uri':_0x492fcd['serverUrl'],'code':_0x492fcd['code']},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x338fe2)[_0x73d7('0x17')](function(_0x1e7196){var _0x2e05f2=JSON[_0x73d7('0x18')](_0x1e7196);if(_0x2e05f2[_0x73d7('0x19')]){_0x492fcd[_0x73d7('0x1a')]=_0x2e05f2[_0x73d7('0x19')];logger[_0x73d7('0x1b')](util['format'](_0x73d7('0x1c'),_0x492fcd['name'],_0x492fcd['id']));}else{logger[_0x73d7('0x1d')](util[_0x73d7('0x1e')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x492fcd['name'],_0x492fcd['id']),util['inspect'](_0x2e05f2,{'showHidden':![],'depth':null}));}return _0x11787b(null,_0x47734c);})[_0x73d7('0x1f')](function(_0x4d08d5){logger[_0x73d7('0x1d')](util[_0x73d7('0x1e')](_0x73d7('0x20'),_0x492fcd[_0x73d7('0x21')],_0x492fcd['id']),util[_0x73d7('0x22')](parsedResult,{'showHidden':![],'depth':null}));return _0x11787b(_0x4d08d5);});}else{return _0x11787b(null,_0x47734c);}},'beforeUpdate':function(_0x26dbc9,_0x5b0075,_0x5706f9){if(_0x26dbc9['changed'](_0x73d7('0xb'))||_0x26dbc9[_0x73d7('0xa')](_0x73d7('0xc'))||_0x26dbc9[_0x73d7('0xa')]('clientId')||_0x26dbc9[_0x73d7('0xa')](_0x73d7('0xe'))||_0x26dbc9[_0x73d7('0xa')](_0x73d7('0xf'))||_0x26dbc9[_0x73d7('0xa')]('host')){var _0x51ab5c,_0x36d1b7;_0x51ab5c=_0x26dbc9['serverUrl'];var _0x407896=_0x51ab5c['slice'](-0x1);if(_0x407896==='/'||_0x407896==='\x5c'||_0x407896===':'){_0x51ab5c=_0x51ab5c[_0x73d7('0x23')](0x0,_0x51ab5c[_0x73d7('0x24')](_0x407896));}switch(_0x26dbc9[_0x73d7('0xb')]){case'US':_0x36d1b7=_0x73d7('0x12');break;case'AU':_0x36d1b7=_0x73d7('0x13');break;case'IN':_0x36d1b7=_0x73d7('0x14');break;case'CN':_0x36d1b7='https://accounts.zoho.com.cn';break;default:_0x36d1b7='https://accounts.zoho.eu';break;}var _0xa27a17={'method':_0x73d7('0x15'),'uri':_0x36d1b7+'/oauth/v2/token','form':{'grant_type':_0x73d7('0x16'),'client_id':_0x26dbc9[_0x73d7('0xd')],'client_secret':_0x26dbc9[_0x73d7('0xe')],'redirect_uri':_0x26dbc9['serverUrl'],'code':_0x26dbc9[_0x73d7('0xf')]},'headers':{'Content-Type':_0x73d7('0x25')}};return rp(_0xa27a17)['then'](function(_0x47547){var _0x14ae5a=JSON['parse'](_0x47547);if(_0x14ae5a[_0x73d7('0x19')]){_0x26dbc9['refreshToken']=_0x14ae5a[_0x73d7('0x19')];logger[_0x73d7('0x1b')](util[_0x73d7('0x1e')](_0x73d7('0x1c'),_0x26dbc9['name'],_0x26dbc9['id']));}else{logger[_0x73d7('0x1d')](util[_0x73d7('0x1e')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x26dbc9[_0x73d7('0x21')],_0x26dbc9['id']),util[_0x73d7('0x22')](_0x14ae5a,{'showHidden':![],'depth':null}));}return _0x5706f9(null,_0x5b0075);})[_0x73d7('0x1f')](function(_0x3afbb3){logger['error'](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x26dbc9[_0x73d7('0x21')],_0x26dbc9['id']),util[_0x73d7('0x22')](parsedResult,{'showHidden':![],'depth':null}));return _0x5706f9(_0x3afbb3);});}else{return _0x5706f9(null,_0x5b0075);}}}});};
\ No newline at end of file
+var _0x3f14=['catch','application/x-www-form-urlencoded','inspect','lodash','../../config/logger','api','moment','bluebird','request-promise','path','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','code','host','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','then','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d'];(function(_0x51b8f3,_0x289e3d){var _0x496bec=function(_0x22a913){while(--_0x22a913){_0x51b8f3['push'](_0x51b8f3['shift']());}};_0x496bec(++_0x289e3d);}(_0x3f14,0x163));var _0x43f1=function(_0x44b3fb,_0x5997aa){_0x44b3fb=_0x44b3fb-0x0;var _0xb755da=_0x3f14[_0x44b3fb];return _0xb755da;};'use strict';var _=require(_0x43f1('0x0'));var util=require('util');var logger=require(_0x43f1('0x1'))(_0x43f1('0x2'));var moment=require(_0x43f1('0x3'));var BPromise=require(_0x43f1('0x4'));var rp=require(_0x43f1('0x5'));var fs=require('fs');var path=require(_0x43f1('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x43f1('0x7'));var integrations=require(_0x43f1('0x8'));module[_0x43f1('0x9')]=function(_0x4a0abf,_0x347cee){return _0x4a0abf[_0x43f1('0xa')](_0x43f1('0xb'),attributes,{'tableName':_0x43f1('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x235813,_0x4976e5,_0x51a110){if(_0x235813[_0x43f1('0xd')](_0x43f1('0xe'))||_0x235813[_0x43f1('0xd')](_0x43f1('0xf'))||_0x235813['changed'](_0x43f1('0x10'))||_0x235813['changed'](_0x43f1('0x11'))||_0x235813[_0x43f1('0xd')](_0x43f1('0x12'))||_0x235813['changed'](_0x43f1('0x13'))){var _0x41ebb4,_0x2f8f5b;_0x41ebb4=_0x235813[_0x43f1('0xf')];var _0x100b63=_0x41ebb4[_0x43f1('0x14')](-0x1);if(_0x100b63==='/'||_0x100b63==='\x5c'||_0x100b63===':'){_0x41ebb4=_0x41ebb4[_0x43f1('0x15')](0x0,_0x41ebb4[_0x43f1('0x16')](_0x100b63));}switch(_0x235813['zone']){case'US':_0x2f8f5b=_0x43f1('0x17');break;case'AU':_0x2f8f5b=_0x43f1('0x18');break;case'IN':_0x2f8f5b=_0x43f1('0x19');break;case'CN':_0x2f8f5b=_0x43f1('0x1a');break;default:_0x2f8f5b=_0x43f1('0x1b');break;}var _0x4875ac={'method':_0x43f1('0x1c'),'uri':_0x2f8f5b+_0x43f1('0x1d'),'form':{'grant_type':_0x43f1('0x1e'),'client_id':_0x235813[_0x43f1('0x10')],'client_secret':_0x235813['clientSecret'],'redirect_uri':_0x235813['serverUrl'],'code':_0x235813[_0x43f1('0x12')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x4875ac)[_0x43f1('0x1f')](function(_0xc4dd6){var _0x23790e=JSON[_0x43f1('0x20')](_0xc4dd6);if(_0x23790e[_0x43f1('0x21')]){_0x235813[_0x43f1('0x22')]=_0x23790e[_0x43f1('0x21')];logger[_0x43f1('0x23')](util[_0x43f1('0x24')](_0x43f1('0x25'),_0x235813[_0x43f1('0x26')],_0x235813['id']));}else{logger[_0x43f1('0x27')](util[_0x43f1('0x24')](_0x43f1('0x28'),_0x235813[_0x43f1('0x26')],_0x235813['id']),util['inspect'](_0x23790e,{'showHidden':![],'depth':null}));}return _0x51a110(null,_0x4976e5);})[_0x43f1('0x29')](function(_0x59674a){logger[_0x43f1('0x27')](util[_0x43f1('0x24')](_0x43f1('0x28'),_0x235813[_0x43f1('0x26')],_0x235813['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x51a110(_0x59674a);});}else{return _0x51a110(null,_0x4976e5);}},'beforeUpdate':function(_0x14f79a,_0x148641,_0x367a6c){if(_0x14f79a[_0x43f1('0xd')](_0x43f1('0xe'))||_0x14f79a[_0x43f1('0xd')](_0x43f1('0xf'))||_0x14f79a[_0x43f1('0xd')](_0x43f1('0x10'))||_0x14f79a[_0x43f1('0xd')]('clientSecret')||_0x14f79a[_0x43f1('0xd')](_0x43f1('0x12'))||_0x14f79a[_0x43f1('0xd')](_0x43f1('0x13'))){var _0x13fae2,_0x54cd1e;_0x13fae2=_0x14f79a[_0x43f1('0xf')];var _0x47d84e=_0x13fae2['slice'](-0x1);if(_0x47d84e==='/'||_0x47d84e==='\x5c'||_0x47d84e===':'){_0x13fae2=_0x13fae2[_0x43f1('0x15')](0x0,_0x13fae2[_0x43f1('0x16')](_0x47d84e));}switch(_0x14f79a['zone']){case'US':_0x54cd1e=_0x43f1('0x17');break;case'AU':_0x54cd1e=_0x43f1('0x18');break;case'IN':_0x54cd1e=_0x43f1('0x19');break;case'CN':_0x54cd1e=_0x43f1('0x1a');break;default:_0x54cd1e=_0x43f1('0x1b');break;}var _0x40643e={'method':_0x43f1('0x1c'),'uri':_0x54cd1e+_0x43f1('0x1d'),'form':{'grant_type':_0x43f1('0x1e'),'client_id':_0x14f79a['clientId'],'client_secret':_0x14f79a[_0x43f1('0x11')],'redirect_uri':_0x14f79a[_0x43f1('0xf')],'code':_0x14f79a['code']},'headers':{'Content-Type':_0x43f1('0x2a')}};return rp(_0x40643e)[_0x43f1('0x1f')](function(_0x3553fd){var _0x295c17=JSON['parse'](_0x3553fd);if(_0x295c17['refresh_token']){_0x14f79a[_0x43f1('0x22')]=_0x295c17[_0x43f1('0x21')];logger['info'](util['format'](_0x43f1('0x25'),_0x14f79a['name'],_0x14f79a['id']));}else{logger[_0x43f1('0x27')](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x14f79a[_0x43f1('0x26')],_0x14f79a['id']),util['inspect'](_0x295c17,{'showHidden':![],'depth':null}));}return _0x367a6c(null,_0x148641);})[_0x43f1('0x29')](function(_0x1a65b){logger['error'](util[_0x43f1('0x24')](_0x43f1('0x28'),_0x14f79a['name'],_0x14f79a['id']),util[_0x43f1('0x2b')](parsedResult,{'showHidden':![],'depth':null}));return _0x367a6c(_0x1a65b);});}else{return _0x367a6c(null,_0x148641);}}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1893=['request\x20sent','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','GetZohoAccount','ZohoAccount','findAll','options','raw','where','attributes','include','map','model','catch','ShowZohoAccount','find','then','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','ZohoAccount,\x20%s,\x20%s'];(function(_0x382170,_0x77f9c){var _0x2dd47d=function(_0x33b9dc){while(--_0x33b9dc){_0x382170['push'](_0x382170['shift']());}};_0x2dd47d(++_0x77f9c);}(_0x1893,0xa2));var _0x3189=function(_0x2cbb74,_0x241c10){_0x2cbb74=_0x2cbb74-0x0;var _0xa6d18=_0x1893[_0x2cbb74];return _0xa6d18;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3189('0x0'));var BPromise=require(_0x3189('0x1'));var rs=require(_0x3189('0x2'));var fs=require('fs');var Redis=require(_0x3189('0x3'));var db=require(_0x3189('0x4'))['db'];var utils=require(_0x3189('0x5'));var logger=require(_0x3189('0x6'))('rpc');var config=require(_0x3189('0x7'));var jayson=require(_0x3189('0x8'));var client=jayson[_0x3189('0x9')][_0x3189('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x77c566,_0x118970,_0x14d84b){return new BPromise(function(_0x1f6764,_0x5312a3){return client[_0x3189('0xb')](_0x77c566,_0x14d84b)['then'](function(_0x127449){logger['info'](_0x3189('0xc'),_0x118970,_0x3189('0xd'));logger[_0x3189('0xe')](_0x3189('0xf'),_0x118970,'request\x20sent',JSON[_0x3189('0x10')](_0x127449));if(_0x127449[_0x3189('0x11')]){if(_0x127449[_0x3189('0x11')][_0x3189('0x12')]===0x1f4){logger[_0x3189('0x11')]('ZohoAccount,\x20%s,\x20%s',_0x118970,_0x127449[_0x3189('0x11')][_0x3189('0x13')]);return _0x5312a3(_0x127449[_0x3189('0x11')][_0x3189('0x13')]);}logger[_0x3189('0x11')](_0x3189('0xc'),_0x118970,_0x127449[_0x3189('0x11')][_0x3189('0x13')]);return _0x1f6764(_0x127449['error'][_0x3189('0x13')]);}else{logger[_0x3189('0x14')](_0x3189('0xc'),_0x118970,_0x3189('0xd'));_0x1f6764(_0x127449['result'][_0x3189('0x13')]);}})['catch'](function(_0x55f432){logger[_0x3189('0x11')]('ZohoAccount,\x20%s,\x20%s',_0x118970,_0x55f432);_0x5312a3(_0x55f432);});});}exports[_0x3189('0x15')]=function(_0xf8aed7){var _0x22c7ba=this;return new Promise(function(_0x9905c4,_0x4c4d9b){return db[_0x3189('0x16')][_0x3189('0x17')]({'raw':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x19')]===undefined?!![]:![]:!![],'where':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7[_0x3189('0x18')][_0x3189('0x1a')]||null:null,'attributes':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x1b')]||null:null,'limit':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7[_0x3189('0x18')]['limit']||null:null,'include':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x1c')]?_[_0x3189('0x1d')](_0xf8aed7[_0x3189('0x18')][_0x3189('0x1c')],function(_0x1cbe33){return{'model':db[_0x1cbe33[_0x3189('0x1e')]],'as':_0x1cbe33['as'],'attributes':_0x1cbe33['attributes'],'include':_0x1cbe33['include']?_[_0x3189('0x1d')](_0x1cbe33[_0x3189('0x1c')],function(_0x1dc1c8){return{'model':db[_0x1dc1c8[_0x3189('0x1e')]],'as':_0x1dc1c8['as'],'attributes':_0x1dc1c8[_0x3189('0x1b')],'include':_0x1dc1c8[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x1dc1c8[_0x3189('0x1c')],function(_0x17b540){return{'model':db[_0x17b540[_0x3189('0x1e')]],'as':_0x17b540['as'],'attributes':_0x17b540['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5aa34a){logger[_0x3189('0x14')](_0x3189('0x15'),_0xf8aed7);logger[_0x3189('0xe')](_0x3189('0x15'),_0xf8aed7,JSON[_0x3189('0x10')](_0x5aa34a));_0x9905c4(_0x5aa34a);})[_0x3189('0x1f')](function(_0x4d453a){logger[_0x3189('0x11')](_0x3189('0x15'),_0x4d453a['message'],_0xf8aed7);_0x4c4d9b(_0x22c7ba[_0x3189('0x11')](0x1f4,_0x4d453a[_0x3189('0x13')]));});});};exports[_0x3189('0x20')]=function(_0x5c7a36){var _0x168dc2=this;return new Promise(function(_0x32bba1,_0x23798e){return db['ZohoAccount'][_0x3189('0x21')]({'raw':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options'][_0x3189('0x19')]===undefined?!![]:![]:!![],'where':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36[_0x3189('0x18')][_0x3189('0x1a')]||null:null,'attributes':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options']['attributes']||null:null,'include':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options'][_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x5c7a36[_0x3189('0x18')][_0x3189('0x1c')],function(_0x231d72){return{'model':db[_0x231d72[_0x3189('0x1e')]],'as':_0x231d72['as'],'attributes':_0x231d72[_0x3189('0x1b')],'include':_0x231d72[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x231d72['include'],function(_0x453e4b){return{'model':db[_0x453e4b[_0x3189('0x1e')]],'as':_0x453e4b['as'],'attributes':_0x453e4b[_0x3189('0x1b')],'include':_0x453e4b[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x453e4b[_0x3189('0x1c')],function(_0xd1ee0){return{'model':db[_0xd1ee0['model']],'as':_0xd1ee0['as'],'attributes':_0xd1ee0['attributes']};}):[]};}):[]};}):[]:[]})[_0x3189('0x22')](function(_0x580064){logger[_0x3189('0x14')](_0x3189('0x20'),_0x5c7a36);logger['debug'](_0x3189('0x20'),_0x5c7a36,JSON[_0x3189('0x10')](_0x580064));_0x32bba1(_0x580064);})[_0x3189('0x1f')](function(_0x254135){logger['error'](_0x3189('0x20'),_0x254135['message'],_0x5c7a36);_0x23798e(_0x168dc2['error'](0x1f4,_0x254135[_0x3189('0x13')]));});});};
\ No newline at end of file
+var _0x3423=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','ZohoAccount,\x20%s,\x20%s','stringify','error','code','message','info','result','GetZohoAccount','ZohoAccount','findAll','options','raw','where','attributes','limit','include','map','model','catch','ShowZohoAccount','find','debug','moment','bluebird','randomstring','ioredis'];(function(_0x3ef44d,_0x152cf0){var _0x37cd6=function(_0x3d32a1){while(--_0x3d32a1){_0x3ef44d['push'](_0x3ef44d['shift']());}};_0x37cd6(++_0x152cf0);}(_0x3423,0x188));var _0x3342=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3423[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3342('0x0'));var BPromise=require(_0x3342('0x1'));var rs=require(_0x3342('0x2'));var fs=require('fs');var Redis=require(_0x3342('0x3'));var db=require(_0x3342('0x4'))['db'];var utils=require(_0x3342('0x5'));var logger=require(_0x3342('0x6'))(_0x3342('0x7'));var config=require(_0x3342('0x8'));var jayson=require(_0x3342('0x9'));var client=jayson[_0x3342('0xa')][_0x3342('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x29c40c,_0x420d4b,_0x76422d){return new BPromise(function(_0xce08ab,_0x305d13){return client[_0x3342('0xc')](_0x29c40c,_0x76422d)[_0x3342('0xd')](function(_0x4ae4f3){logger['info'](_0x3342('0xe'),_0x420d4b,'request\x20sent');logger['debug']('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x420d4b,'request\x20sent',JSON[_0x3342('0xf')](_0x4ae4f3));if(_0x4ae4f3[_0x3342('0x10')]){if(_0x4ae4f3['error'][_0x3342('0x11')]===0x1f4){logger['error'](_0x3342('0xe'),_0x420d4b,_0x4ae4f3[_0x3342('0x10')]['message']);return _0x305d13(_0x4ae4f3[_0x3342('0x10')][_0x3342('0x12')]);}logger[_0x3342('0x10')](_0x3342('0xe'),_0x420d4b,_0x4ae4f3[_0x3342('0x10')][_0x3342('0x12')]);return _0xce08ab(_0x4ae4f3[_0x3342('0x10')]['message']);}else{logger[_0x3342('0x13')](_0x3342('0xe'),_0x420d4b,'request\x20sent');_0xce08ab(_0x4ae4f3[_0x3342('0x14')][_0x3342('0x12')]);}})['catch'](function(_0x554f9c){logger[_0x3342('0x10')](_0x3342('0xe'),_0x420d4b,_0x554f9c);_0x305d13(_0x554f9c);});});}exports[_0x3342('0x15')]=function(_0x2075cb){var _0x12947a=this;return new Promise(function(_0x156c24,_0x45a3ca){return db[_0x3342('0x16')][_0x3342('0x17')]({'raw':_0x2075cb['options']?_0x2075cb[_0x3342('0x18')][_0x3342('0x19')]===undefined?!![]:![]:!![],'where':_0x2075cb[_0x3342('0x18')]?_0x2075cb['options'][_0x3342('0x1a')]||null:null,'attributes':_0x2075cb[_0x3342('0x18')]?_0x2075cb['options'][_0x3342('0x1b')]||null:null,'limit':_0x2075cb[_0x3342('0x18')]?_0x2075cb['options'][_0x3342('0x1c')]||null:null,'include':_0x2075cb['options']?_0x2075cb[_0x3342('0x18')][_0x3342('0x1d')]?_[_0x3342('0x1e')](_0x2075cb[_0x3342('0x18')][_0x3342('0x1d')],function(_0x2925a2){return{'model':db[_0x2925a2[_0x3342('0x1f')]],'as':_0x2925a2['as'],'attributes':_0x2925a2[_0x3342('0x1b')],'include':_0x2925a2['include']?_[_0x3342('0x1e')](_0x2925a2['include'],function(_0x51cf45){return{'model':db[_0x51cf45[_0x3342('0x1f')]],'as':_0x51cf45['as'],'attributes':_0x51cf45['attributes'],'include':_0x51cf45['include']?_[_0x3342('0x1e')](_0x51cf45['include'],function(_0x37df78){return{'model':db[_0x37df78['model']],'as':_0x37df78['as'],'attributes':_0x37df78['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x1497d9){logger[_0x3342('0x13')](_0x3342('0x15'),_0x2075cb);logger['debug'](_0x3342('0x15'),_0x2075cb,JSON[_0x3342('0xf')](_0x1497d9));_0x156c24(_0x1497d9);})[_0x3342('0x20')](function(_0x272a52){logger['error'](_0x3342('0x15'),_0x272a52[_0x3342('0x12')],_0x2075cb);_0x45a3ca(_0x12947a[_0x3342('0x10')](0x1f4,_0x272a52[_0x3342('0x12')]));});});};exports[_0x3342('0x21')]=function(_0x2cc691){var _0x135760=this;return new Promise(function(_0x47b2a0,_0x2e0bde){return db['ZohoAccount'][_0x3342('0x22')]({'raw':_0x2cc691[_0x3342('0x18')]?_0x2cc691['options'][_0x3342('0x19')]===undefined?!![]:![]:!![],'where':_0x2cc691[_0x3342('0x18')]?_0x2cc691[_0x3342('0x18')][_0x3342('0x1a')]||null:null,'attributes':_0x2cc691['options']?_0x2cc691[_0x3342('0x18')][_0x3342('0x1b')]||null:null,'include':_0x2cc691[_0x3342('0x18')]?_0x2cc691[_0x3342('0x18')][_0x3342('0x1d')]?_[_0x3342('0x1e')](_0x2cc691[_0x3342('0x18')][_0x3342('0x1d')],function(_0x2531fb){return{'model':db[_0x2531fb[_0x3342('0x1f')]],'as':_0x2531fb['as'],'attributes':_0x2531fb[_0x3342('0x1b')],'include':_0x2531fb[_0x3342('0x1d')]?_['map'](_0x2531fb['include'],function(_0x1dc9b3){return{'model':db[_0x1dc9b3['model']],'as':_0x1dc9b3['as'],'attributes':_0x1dc9b3[_0x3342('0x1b')],'include':_0x1dc9b3[_0x3342('0x1d')]?_[_0x3342('0x1e')](_0x1dc9b3[_0x3342('0x1d')],function(_0x2dbc02){return{'model':db[_0x2dbc02[_0x3342('0x1f')]],'as':_0x2dbc02['as'],'attributes':_0x2dbc02[_0x3342('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4754d9){logger[_0x3342('0x13')](_0x3342('0x21'),_0x2cc691);logger[_0x3342('0x23')](_0x3342('0x21'),_0x2cc691,JSON['stringify'](_0x4754d9));_0x47b2a0(_0x4754d9);})[_0x3342('0x20')](function(_0x4d1a59){logger[_0x3342('0x10')](_0x3342('0x21'),_0x4d1a59[_0x3342('0x12')],_0x2cc691);_0x2e0bde(_0x135760[_0x3342('0x10')](0x1f4,_0x4d1a59['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98c1=['connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoConfiguration.controller','get','isAuthenticated','show','/:id/fields','/:id/subjects','/:id/descriptions','getDescriptions','post','create','/:id','delete','destroy','exports','util','path'];(function(_0x5d7389,_0x59dd6a){var _0xc76487=function(_0x480571){while(--_0x480571){_0x5d7389['push'](_0x5d7389['shift']());}};_0xc76487(++_0x59dd6a);}(_0x98c1,0x1b6));var _0x198c=function(_0x2c9056,_0x552f14){_0x2c9056=_0x2c9056-0x0;var _0x3e6959=_0x98c1[_0x2c9056];return _0x3e6959;};'use strict';var multer=require('multer');var util=require(_0x198c('0x0'));var path=require(_0x198c('0x1'));var timeout=require(_0x198c('0x2'));var express=require(_0x198c('0x3'));var router=express['Router']();var fs_extra=require(_0x198c('0x4'));var auth=require(_0x198c('0x5'));var interaction=require(_0x198c('0x6'));var config=require(_0x198c('0x7'));var controller=require(_0x198c('0x8'));router[_0x198c('0x9')]('/',auth[_0x198c('0xa')](),controller['index']);router['get']('/:id',auth['isAuthenticated'](),controller[_0x198c('0xb')]);router['get'](_0x198c('0xc'),auth['isAuthenticated'](),controller['getFields']);router[_0x198c('0x9')](_0x198c('0xd'),auth[_0x198c('0xa')](),controller['getSubjects']);router[_0x198c('0x9')](_0x198c('0xe'),auth[_0x198c('0xa')](),controller[_0x198c('0xf')]);router[_0x198c('0x10')]('/',auth['isAuthenticated'](),controller[_0x198c('0x11')]);router['put'](_0x198c('0x12'),auth[_0x198c('0xa')](),controller['update']);router[_0x198c('0x13')](_0x198c('0x12'),auth[_0x198c('0xa')](),controller[_0x198c('0x14')]);module[_0x198c('0x15')]=router;
\ No newline at end of file
+var _0x5781=['../../components/auth/service','../../components/interaction/service','./intZohoConfiguration.controller','get','/:id','isAuthenticated','show','getFields','/:id/subjects','getSubjects','getDescriptions','post','create','put','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x2bc131,_0x524fbb){var _0x49862c=function(_0x57593b){while(--_0x57593b){_0x2bc131['push'](_0x2bc131['shift']());}};_0x49862c(++_0x524fbb);}(_0x5781,0x13b));var _0x1578=function(_0x5658d3,_0xa3510){_0x5658d3=_0x5658d3-0x0;var _0x1f7ece=_0x5781[_0x5658d3];return _0x1f7ece;};'use strict';var multer=require(_0x1578('0x0'));var util=require(_0x1578('0x1'));var path=require(_0x1578('0x2'));var timeout=require(_0x1578('0x3'));var express=require(_0x1578('0x4'));var router=express[_0x1578('0x5')]();var fs_extra=require(_0x1578('0x6'));var auth=require(_0x1578('0x7'));var interaction=require(_0x1578('0x8'));var config=require('../../config/environment');var controller=require(_0x1578('0x9'));router[_0x1578('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x1578('0xa')](_0x1578('0xb'),auth[_0x1578('0xc')](),controller[_0x1578('0xd')]);router[_0x1578('0xa')]('/:id/fields',auth['isAuthenticated'](),controller[_0x1578('0xe')]);router[_0x1578('0xa')](_0x1578('0xf'),auth['isAuthenticated'](),controller[_0x1578('0x10')]);router[_0x1578('0xa')]('/:id/descriptions',auth[_0x1578('0xc')](),controller[_0x1578('0x11')]);router[_0x1578('0x12')]('/',auth['isAuthenticated'](),controller[_0x1578('0x13')]);router[_0x1578('0x14')](_0x1578('0xb'),auth[_0x1578('0xc')](),controller['update']);router['delete'](_0x1578('0xb'),auth[_0x1578('0xc')](),controller[_0x1578('0x15')]);module[_0x1578('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x757a=['sequelize','exports','STRING','ENUM','lead','contact','nothing','contact_lead'];(function(_0x5eee28,_0x3c12a9){var _0x4efb99=function(_0x13aab0){while(--_0x13aab0){_0x5eee28['push'](_0x5eee28['shift']());}};_0x4efb99(++_0x3c12a9);}(_0x757a,0x110));var _0xa757=function(_0x30bbfa,_0x388daf){_0x30bbfa=_0x30bbfa-0x0;var _0xa82958=_0x757a[_0x30bbfa];return _0xa82958;};'use strict';var Sequelize=require(_0xa757('0x0'));module[_0xa757('0x1')]={'name':{'type':Sequelize[_0xa757('0x2')]},'moduleCreate':{'type':Sequelize[_0xa757('0x3')](_0xa757('0x4'),_0xa757('0x5'),_0xa757('0x6')),'defaultValue':_0xa757('0x4')},'moduleSearch':{'type':Sequelize[_0xa757('0x3')]('contact_lead',_0xa757('0x5'),_0xa757('0x4')),'defaultValue':_0xa757('0x7')},'description':{'type':Sequelize[_0xa757('0x2')]}};
\ No newline at end of file
+var _0x8e69=['contact_lead','sequelize','exports','STRING','lead','contact','nothing','ENUM'];(function(_0x21aec3,_0x5c97e9){var _0x288bbc=function(_0x2283fe){while(--_0x2283fe){_0x21aec3['push'](_0x21aec3['shift']());}};_0x288bbc(++_0x5c97e9);}(_0x8e69,0x1d9));var _0x98e6=function(_0x3790b1,_0x479c76){_0x3790b1=_0x3790b1-0x0;var _0xa28e9f=_0x8e69[_0x3790b1];return _0xa28e9f;};'use strict';var Sequelize=require(_0x98e6('0x0'));module[_0x98e6('0x1')]={'name':{'type':Sequelize[_0x98e6('0x2')]},'moduleCreate':{'type':Sequelize['ENUM'](_0x98e6('0x3'),_0x98e6('0x4'),_0x98e6('0x5')),'defaultValue':_0x98e6('0x3')},'moduleSearch':{'type':Sequelize[_0x98e6('0x6')](_0x98e6('0x7'),_0x98e6('0x4'),_0x98e6('0x3')),'defaultValue':_0x98e6('0x7')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29bf=['status','end','offset','undefined','count','limit','Content-Range','json','apply','save','update','then','error','stack','send','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','name','includeAll','include','ZohoConfiguration','findAll','rows','catch','show','params','keys','find','create','body','findOne','ZohoField','getFields','nolimit','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x440893,_0x2cea6a){var _0x482e57=function(_0x687b51){while(--_0x687b51){_0x440893['push'](_0x440893['shift']());}};_0x482e57(++_0x2cea6a);}(_0x29bf,0x1cc));var _0xf29b=function(_0x3c1a1f,_0x313fe4){_0x3c1a1f=_0x3c1a1f-0x0;var _0x2ace77=_0x29bf[_0x3c1a1f];return _0x2ace77;};'use strict';var emlformat=require(_0xf29b('0x0'));var rimraf=require(_0xf29b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf29b('0x2'));var rp=require(_0xf29b('0x3'));var moment=require('moment');var BPromise=require(_0xf29b('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf29b('0x5'));var sox=require(_0xf29b('0x6'));var csv=require(_0xf29b('0x7'));var ejs=require(_0xf29b('0x8'));var fs=require('fs');var fs_extra=require(_0xf29b('0x9'));var _=require(_0xf29b('0xa'));var squel=require('squel');var crypto=require(_0xf29b('0xb'));var jsforce=require(_0xf29b('0xc'));var deskjs=require(_0xf29b('0xd'));var toCsv=require('to-csv');var querystring=require(_0xf29b('0xe'));var Papa=require(_0xf29b('0xf'));var Redis=require(_0xf29b('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf29b('0x11'));var hardwareService=require(_0xf29b('0x12'));var logger=require(_0xf29b('0x13'))(_0xf29b('0x14'));var utils=require(_0xf29b('0x15'));var config=require(_0xf29b('0x16'));var licenseUtil=require(_0xf29b('0x17'));var db=require(_0xf29b('0x18'))['db'];function respondWithStatusCode(_0x851a22,_0x384f71){_0x384f71=_0x384f71||0xcc;return function(_0x2b0907){if(_0x2b0907){return _0x851a22[_0xf29b('0x19')](_0x384f71);}return _0x851a22[_0xf29b('0x1a')](_0x384f71)[_0xf29b('0x1b')]();};}function respondWithResult(_0x51c65b,_0x2a5703){_0x2a5703=_0x2a5703||0xc8;return function(_0x18af2b){if(_0x18af2b){return _0x51c65b[_0xf29b('0x1a')](_0x2a5703)['json'](_0x18af2b);}};}function respondWithFilteredResult(_0x180c41,_0x1ff81b){return function(_0x946198){if(_0x946198){var _0x2f09df=typeof _0x1ff81b[_0xf29b('0x1c')]==='undefined'&&typeof _0x1ff81b['limit']===_0xf29b('0x1d');var _0x388d28=_0x946198[_0xf29b('0x1e')];var _0x24f242=_0x2f09df?0x0:_0x1ff81b['offset'];var _0x19a7ee=_0x2f09df?_0x946198['count']:_0x1ff81b[_0xf29b('0x1c')]+_0x1ff81b[_0xf29b('0x1f')];var _0x1f0bfa;if(_0x19a7ee>=_0x388d28){_0x19a7ee=_0x388d28;_0x1f0bfa=0xc8;}else{_0x1f0bfa=0xce;}_0x180c41[_0xf29b('0x1a')](_0x1f0bfa);return _0x180c41['set'](_0xf29b('0x20'),_0x24f242+'-'+_0x19a7ee+'/'+_0x388d28)[_0xf29b('0x21')](_0x946198);}return null;};}function patchUpdates(_0x3f01cc){return function(_0x42569f){try{jsonpatch[_0xf29b('0x22')](_0x42569f,_0x3f01cc,!![]);}catch(_0x34c48a){return BPromise['reject'](_0x34c48a);}return _0x42569f[_0xf29b('0x23')]();};}function saveUpdates(_0x478e48,_0x4893d3){return function(_0x43a8c0){if(_0x43a8c0){return _0x43a8c0[_0xf29b('0x24')](_0x478e48)[_0xf29b('0x25')](function(_0x4fefe2){return _0x4fefe2;});}return null;};}function removeEntity(_0x425a77,_0x336582){return function(_0x138689){if(_0x138689){return _0x138689['destroy']()[_0xf29b('0x25')](function(){_0x425a77[_0xf29b('0x1a')](0xcc)[_0xf29b('0x1b')]();});}};}function handleEntityNotFound(_0x4046ae,_0x9fee10){return function(_0x191004){if(!_0x191004){_0x4046ae[_0xf29b('0x19')](0x194);}return _0x191004;};}function handleError(_0x2330d4,_0x16c01c){_0x16c01c=_0x16c01c||0x1f4;return function(_0x12d1b9){logger[_0xf29b('0x26')](_0x12d1b9[_0xf29b('0x27')]);if(_0x12d1b9['name']){delete _0x12d1b9['name'];}_0x2330d4[_0xf29b('0x1a')](_0x16c01c)[_0xf29b('0x28')](_0x12d1b9);};}exports[_0xf29b('0x29')]=function(_0x53f838,_0x487c75){var _0x351099={},_0x3a8403={},_0x49509e={'count':0x0,'rows':[]};var _0x1816a7=_['map'](db['ZohoConfiguration'][_0xf29b('0x2a')],function(_0x90a6aa){return{'name':_0x90a6aa[_0xf29b('0x2b')],'type':_0x90a6aa[_0xf29b('0x2c')][_0xf29b('0x2d')]};});_0x3a8403[_0xf29b('0x2e')]=_[_0xf29b('0x2f')](_0x1816a7,'name');_0x3a8403['query']=_['keys'](_0x53f838[_0xf29b('0x30')]);_0x3a8403[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x3a8403['model'],_0x3a8403[_0xf29b('0x30')]);_0x351099[_0xf29b('0x33')]=_['intersection'](_0x3a8403['model'],qs[_0xf29b('0x34')](_0x53f838[_0xf29b('0x30')][_0xf29b('0x34')]));_0x351099['attributes']=_0x351099['attributes'][_0xf29b('0x35')]?_0x351099[_0xf29b('0x33')]:_0x3a8403[_0xf29b('0x2e')];if(!_0x53f838[_0xf29b('0x30')][_0xf29b('0x36')]('nolimit')){_0x351099[_0xf29b('0x1f')]=qs[_0xf29b('0x1f')](_0x53f838['query']['limit']);_0x351099['offset']=qs[_0xf29b('0x1c')](_0x53f838[_0xf29b('0x30')][_0xf29b('0x1c')]);}_0x351099[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x53f838[_0xf29b('0x30')]['sort']);_0x351099[_0xf29b('0x39')]=qs[_0xf29b('0x31')](_[_0xf29b('0x3a')](_0x53f838[_0xf29b('0x30')],_0x3a8403[_0xf29b('0x31')]),_0x1816a7);if(_0x53f838[_0xf29b('0x30')][_0xf29b('0x3b')]){_0x351099[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x351099['where'],{'$or':_[_0xf29b('0x2f')](_0x1816a7,function(_0x1a3867){if(_0x1a3867['type']!==_0xf29b('0x3d')){var _0x1b0e34={};_0x1b0e34[_0x1a3867[_0xf29b('0x3e')]]={'$like':'%'+_0x53f838[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0x1b0e34;}})});}_0x351099=_[_0xf29b('0x3c')]({},_0x351099,_0x53f838['options']);var _0x4f458b={'where':_0x351099['where']};return db['ZohoConfiguration'][_0xf29b('0x1e')](_0x4f458b)[_0xf29b('0x25')](function(_0x1d8e91){_0x49509e[_0xf29b('0x1e')]=_0x1d8e91;if(_0x53f838['query'][_0xf29b('0x3f')]){_0x351099[_0xf29b('0x40')]=[{'all':!![]}];}return db[_0xf29b('0x41')][_0xf29b('0x42')](_0x351099);})[_0xf29b('0x25')](function(_0x11504c){_0x49509e[_0xf29b('0x43')]=_0x11504c;return _0x49509e;})[_0xf29b('0x25')](respondWithFilteredResult(_0x487c75,_0x351099))[_0xf29b('0x44')](handleError(_0x487c75,null));};exports[_0xf29b('0x45')]=function(_0x59a2c3,_0x7a74ef){var _0x2c2d29={'raw':![],'where':{'id':_0x59a2c3[_0xf29b('0x46')]['id']}},_0x2b3fba={};_0x2b3fba[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x41')]['rawAttributes']);_0x2b3fba[_0xf29b('0x30')]=_['keys'](_0x59a2c3['query']);_0x2b3fba[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x2b3fba[_0xf29b('0x2e')],_0x2b3fba['query']);_0x2c2d29['attributes']=_[_0xf29b('0x32')](_0x2b3fba['model'],qs['fields'](_0x59a2c3[_0xf29b('0x30')][_0xf29b('0x34')]));_0x2c2d29[_0xf29b('0x33')]=_0x2c2d29[_0xf29b('0x33')][_0xf29b('0x35')]?_0x2c2d29[_0xf29b('0x33')]:_0x2b3fba[_0xf29b('0x2e')];if(_0x59a2c3['query'][_0xf29b('0x3f')]){_0x2c2d29[_0xf29b('0x40')]=[{'all':!![]}];}_0x2c2d29=_[_0xf29b('0x3c')]({},_0x2c2d29,_0x59a2c3['options']);return db[_0xf29b('0x41')][_0xf29b('0x48')](_0x2c2d29)[_0xf29b('0x25')](handleEntityNotFound(_0x7a74ef,null))['then'](respondWithResult(_0x7a74ef,null))[_0xf29b('0x44')](handleError(_0x7a74ef,null));};exports['create']=function(_0x270394,_0x3e22f8){return db[_0xf29b('0x41')][_0xf29b('0x49')](_0x270394[_0xf29b('0x4a')],{})[_0xf29b('0x25')](respondWithResult(_0x3e22f8,0xc9))[_0xf29b('0x44')](handleError(_0x3e22f8,null));};exports[_0xf29b('0x24')]=function(_0x965588,_0x1b9d13){if(_0x965588['body']['id']){delete _0x965588[_0xf29b('0x4a')]['id'];}return db[_0xf29b('0x41')]['find']({'where':{'id':_0x965588['params']['id']}})['then'](handleEntityNotFound(_0x1b9d13,null))[_0xf29b('0x25')](saveUpdates(_0x965588[_0xf29b('0x4a')],null))[_0xf29b('0x25')](respondWithResult(_0x1b9d13,null))['catch'](handleError(_0x1b9d13,null));};exports['destroy']=function(_0x25dc69,_0x595494){return db['ZohoConfiguration']['find']({'where':{'id':_0x25dc69[_0xf29b('0x46')]['id']}})[_0xf29b('0x25')](handleEntityNotFound(_0x595494,null))[_0xf29b('0x25')](removeEntity(_0x595494,null))['catch'](handleError(_0x595494,null));};exports['getFields']=function(_0x3af57f,_0x50c07b,_0x5a890f){var _0x309c4c={};var _0x532ed5={};var _0x5f29f6;var _0x4ea089;return db[_0xf29b('0x41')][_0xf29b('0x4b')]({'where':{'id':_0x3af57f[_0xf29b('0x46')]['id']}})[_0xf29b('0x25')](handleEntityNotFound(_0x50c07b,null))[_0xf29b('0x25')](function(_0x48c49a){if(_0x48c49a){_0x5f29f6=_0x48c49a;_0x532ed5[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x4c')]['rawAttributes']);_0x532ed5[_0xf29b('0x30')]=_[_0xf29b('0x47')](_0x3af57f[_0xf29b('0x30')]);_0x532ed5[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x532ed5[_0xf29b('0x2e')],_0x532ed5['query']);_0x309c4c['attributes']=_['intersection'](_0x532ed5[_0xf29b('0x2e')],qs[_0xf29b('0x34')](_0x3af57f[_0xf29b('0x30')]['fields']));_0x309c4c['attributes']=_0x309c4c[_0xf29b('0x33')][_0xf29b('0x35')]?_0x309c4c[_0xf29b('0x33')]:_0x532ed5[_0xf29b('0x2e')];_0x309c4c[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x3af57f[_0xf29b('0x30')][_0xf29b('0x38')]);_0x309c4c[_0xf29b('0x39')]=qs[_0xf29b('0x31')](_['pick'](_0x3af57f[_0xf29b('0x30')],_0x532ed5[_0xf29b('0x31')]));if(_0x3af57f['query'][_0xf29b('0x3b')]){_0x309c4c[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x309c4c['where'],{'$or':_[_0xf29b('0x2f')](_0x309c4c[_0xf29b('0x33')],function(_0x145ac2){var _0x432022={};_0x432022[_0x145ac2]={'$like':'%'+_0x3af57f[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0x432022;})});}_0x309c4c=_[_0xf29b('0x3c')]({},_0x309c4c,_0x3af57f['options']);return _0x5f29f6[_0xf29b('0x4d')](_0x309c4c);}})['then'](function(_0x11268e){if(_0x11268e){_0x4ea089=_0x11268e['length'];if(!_0x3af57f[_0xf29b('0x30')][_0xf29b('0x36')](_0xf29b('0x4e'))){_0x309c4c[_0xf29b('0x1f')]=qs['limit'](_0x3af57f[_0xf29b('0x30')]['limit']);_0x309c4c[_0xf29b('0x1c')]=qs['offset'](_0x3af57f[_0xf29b('0x30')]['offset']);}return _0x5f29f6[_0xf29b('0x4d')](_0x309c4c);}})['then'](function(_0x35c12e){if(_0x35c12e){return _0x35c12e?{'count':_0x4ea089,'rows':_0x35c12e}:null;}})[_0xf29b('0x25')](respondWithResult(_0x50c07b,null))[_0xf29b('0x44')](handleError(_0x50c07b,null));};exports[_0xf29b('0x4f')]=function(_0x30a2b8,_0x2b467f,_0x2216e0){var _0x328f17={};var _0xceaaa8={};var _0x48de96;var _0x1bb193;return db['ZohoConfiguration'][_0xf29b('0x4b')]({'where':{'id':_0x30a2b8[_0xf29b('0x46')]['id']}})[_0xf29b('0x25')](handleEntityNotFound(_0x2b467f,null))['then'](function(_0x2c6bac){if(_0x2c6bac){_0x48de96=_0x2c6bac;_0xceaaa8[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x4c')]['rawAttributes']);_0xceaaa8[_0xf29b('0x30')]=_[_0xf29b('0x47')](_0x30a2b8[_0xf29b('0x30')]);_0xceaaa8['filters']=_[_0xf29b('0x32')](_0xceaaa8['model'],_0xceaaa8[_0xf29b('0x30')]);_0x328f17[_0xf29b('0x33')]=_['intersection'](_0xceaaa8[_0xf29b('0x2e')],qs[_0xf29b('0x34')](_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x34')]));_0x328f17[_0xf29b('0x33')]=_0x328f17[_0xf29b('0x33')][_0xf29b('0x35')]?_0x328f17[_0xf29b('0x33')]:_0xceaaa8[_0xf29b('0x2e')];_0x328f17[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x30a2b8[_0xf29b('0x30')]['sort']);_0x328f17[_0xf29b('0x39')]=qs[_0xf29b('0x31')](_[_0xf29b('0x3a')](_0x30a2b8['query'],_0xceaaa8['filters']));if(_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x3b')]){_0x328f17[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x328f17[_0xf29b('0x39')],{'$or':_[_0xf29b('0x2f')](_0x328f17[_0xf29b('0x33')],function(_0x355c4b){var _0x2d9221={};_0x2d9221[_0x355c4b]={'$like':'%'+_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0x2d9221;})});}_0x328f17=_[_0xf29b('0x3c')]({},_0x328f17,_0x30a2b8['options']);return _0x48de96[_0xf29b('0x4f')](_0x328f17);}})[_0xf29b('0x25')](function(_0x5dff73){if(_0x5dff73){_0x1bb193=_0x5dff73[_0xf29b('0x35')];if(!_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x36')](_0xf29b('0x4e'))){_0x328f17[_0xf29b('0x1f')]=qs[_0xf29b('0x1f')](_0x30a2b8['query'][_0xf29b('0x1f')]);_0x328f17[_0xf29b('0x1c')]=qs['offset'](_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x1c')]);}return _0x48de96[_0xf29b('0x4f')](_0x328f17);}})[_0xf29b('0x25')](function(_0x271a1a){if(_0x271a1a){return _0x271a1a?{'count':_0x1bb193,'rows':_0x271a1a}:null;}})['then'](respondWithResult(_0x2b467f,null))[_0xf29b('0x44')](handleError(_0x2b467f,null));};exports['getDescriptions']=function(_0x371158,_0x3bdaff,_0x46eb32){var _0x1985a3={};var _0x364d35={};var _0xa82a3e;var _0x43f696;return db['ZohoConfiguration']['findOne']({'where':{'id':_0x371158[_0xf29b('0x46')]['id']}})['then'](handleEntityNotFound(_0x3bdaff,null))[_0xf29b('0x25')](function(_0x430f8b){if(_0x430f8b){_0xa82a3e=_0x430f8b;_0x364d35[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x4c')][_0xf29b('0x2a')]);_0x364d35[_0xf29b('0x30')]=_[_0xf29b('0x47')](_0x371158['query']);_0x364d35[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x364d35['model'],_0x364d35[_0xf29b('0x30')]);_0x1985a3[_0xf29b('0x33')]=_[_0xf29b('0x32')](_0x364d35[_0xf29b('0x2e')],qs[_0xf29b('0x34')](_0x371158[_0xf29b('0x30')][_0xf29b('0x34')]));_0x1985a3['attributes']=_0x1985a3[_0xf29b('0x33')][_0xf29b('0x35')]?_0x1985a3[_0xf29b('0x33')]:_0x364d35[_0xf29b('0x2e')];_0x1985a3[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x371158['query']['sort']);_0x1985a3[_0xf29b('0x39')]=qs['filters'](_['pick'](_0x371158[_0xf29b('0x30')],_0x364d35[_0xf29b('0x31')]));if(_0x371158[_0xf29b('0x30')][_0xf29b('0x3b')]){_0x1985a3[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x1985a3[_0xf29b('0x39')],{'$or':_[_0xf29b('0x2f')](_0x1985a3[_0xf29b('0x33')],function(_0x4d9245){var _0xeb1a08={};_0xeb1a08[_0x4d9245]={'$like':'%'+_0x371158[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0xeb1a08;})});}_0x1985a3=_[_0xf29b('0x3c')]({},_0x1985a3,_0x371158['options']);return _0xa82a3e[_0xf29b('0x50')](_0x1985a3);}})[_0xf29b('0x25')](function(_0x2bf547){if(_0x2bf547){_0x43f696=_0x2bf547[_0xf29b('0x35')];if(!_0x371158[_0xf29b('0x30')][_0xf29b('0x36')](_0xf29b('0x4e'))){_0x1985a3['limit']=qs[_0xf29b('0x1f')](_0x371158[_0xf29b('0x30')][_0xf29b('0x1f')]);_0x1985a3['offset']=qs[_0xf29b('0x1c')](_0x371158[_0xf29b('0x30')]['offset']);}return _0xa82a3e[_0xf29b('0x50')](_0x1985a3);}})[_0xf29b('0x25')](function(_0x586ef3){if(_0x586ef3){return _0x586ef3?{'count':_0x43f696,'rows':_0x586ef3}:null;}})[_0xf29b('0x25')](respondWithResult(_0x3bdaff,null))[_0xf29b('0x44')](handleError(_0x3bdaff,null));};
\ No newline at end of file
+var _0x3548=['status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','stack','name','send','ZohoConfiguration','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','includeAll','include','find','create','body','getFields','findOne','ZohoField','pick','getSubjects','getDescriptions','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x53b93b,_0x1bfab1){var _0x485761=function(_0x41592e){while(--_0x41592e){_0x53b93b['push'](_0x53b93b['shift']());}};_0x485761(++_0x1bfab1);}(_0x3548,0x12a));var _0x8354=function(_0xff44cb,_0x1ca3c6){_0xff44cb=_0xff44cb-0x0;var _0x117fc0=_0x3548[_0xff44cb];return _0x117fc0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8354('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8354('0x1'));var rp=require(_0x8354('0x2'));var moment=require(_0x8354('0x3'));var BPromise=require(_0x8354('0x4'));var Mustache=require(_0x8354('0x5'));var util=require(_0x8354('0x6'));var path=require('path');var sox=require(_0x8354('0x7'));var csv=require('to-csv');var ejs=require(_0x8354('0x8'));var fs=require('fs');var fs_extra=require(_0x8354('0x9'));var _=require(_0x8354('0xa'));var squel=require(_0x8354('0xb'));var crypto=require(_0x8354('0xc'));var jsforce=require(_0x8354('0xd'));var deskjs=require(_0x8354('0xe'));var toCsv=require('to-csv');var querystring=require(_0x8354('0xf'));var Papa=require('papaparse');var Redis=require(_0x8354('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x8354('0x11'));var as=require(_0x8354('0x12'));var hardwareService=require(_0x8354('0x13'));var logger=require(_0x8354('0x14'))(_0x8354('0x15'));var utils=require(_0x8354('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x8354('0x17'));var db=require(_0x8354('0x18'))['db'];function respondWithStatusCode(_0x2aac43,_0x3356a6){_0x3356a6=_0x3356a6||0xcc;return function(_0x28de7a){if(_0x28de7a){return _0x2aac43[_0x8354('0x19')](_0x3356a6);}return _0x2aac43[_0x8354('0x1a')](_0x3356a6)[_0x8354('0x1b')]();};}function respondWithResult(_0x114c44,_0xe1c912){_0xe1c912=_0xe1c912||0xc8;return function(_0x3b4ef6){if(_0x3b4ef6){return _0x114c44[_0x8354('0x1a')](_0xe1c912)[_0x8354('0x1c')](_0x3b4ef6);}};}function respondWithFilteredResult(_0x487ab4,_0x508a02){return function(_0x562cc8){if(_0x562cc8){var _0x4aa8be=typeof _0x508a02[_0x8354('0x1d')]==='undefined'&&typeof _0x508a02['limit']===_0x8354('0x1e');var _0x96ca06=_0x562cc8[_0x8354('0x1f')];var _0xcca59a=_0x4aa8be?0x0:_0x508a02[_0x8354('0x1d')];var _0x19cf3c=_0x4aa8be?_0x562cc8['count']:_0x508a02['offset']+_0x508a02[_0x8354('0x20')];var _0x171d77;if(_0x19cf3c>=_0x96ca06){_0x19cf3c=_0x96ca06;_0x171d77=0xc8;}else{_0x171d77=0xce;}_0x487ab4[_0x8354('0x1a')](_0x171d77);return _0x487ab4[_0x8354('0x21')](_0x8354('0x22'),_0xcca59a+'-'+_0x19cf3c+'/'+_0x96ca06)['json'](_0x562cc8);}return null;};}function patchUpdates(_0x23b4e7){return function(_0xc0c019){try{jsonpatch[_0x8354('0x23')](_0xc0c019,_0x23b4e7,!![]);}catch(_0x8ea3a3){return BPromise[_0x8354('0x24')](_0x8ea3a3);}return _0xc0c019['save']();};}function saveUpdates(_0xe771ff,_0x3fd466){return function(_0x40939e){if(_0x40939e){return _0x40939e[_0x8354('0x25')](_0xe771ff)[_0x8354('0x26')](function(_0x23274c){return _0x23274c;});}return null;};}function removeEntity(_0x23f363,_0x598f1d){return function(_0x4d6cb5){if(_0x4d6cb5){return _0x4d6cb5[_0x8354('0x27')]()[_0x8354('0x26')](function(){_0x23f363[_0x8354('0x1a')](0xcc)[_0x8354('0x1b')]();});}};}function handleEntityNotFound(_0x412ec5,_0x3f155e){return function(_0x546b93){if(!_0x546b93){_0x412ec5[_0x8354('0x19')](0x194);}return _0x546b93;};}function handleError(_0x25cd9e,_0x24268c){_0x24268c=_0x24268c||0x1f4;return function(_0x3e3c22){logger['error'](_0x3e3c22[_0x8354('0x28')]);if(_0x3e3c22[_0x8354('0x29')]){delete _0x3e3c22['name'];}_0x25cd9e[_0x8354('0x1a')](_0x24268c)[_0x8354('0x2a')](_0x3e3c22);};}exports['index']=function(_0x49025a,_0xdb4228){var _0x41f822={},_0x5b0734={},_0x45057d={'count':0x0,'rows':[]};var _0xced6b0=_['map'](db[_0x8354('0x2b')][_0x8354('0x2c')],function(_0x3fa897){return{'name':_0x3fa897[_0x8354('0x2d')],'type':_0x3fa897[_0x8354('0x2e')]['key']};});_0x5b0734[_0x8354('0x2f')]=_[_0x8354('0x30')](_0xced6b0,_0x8354('0x29'));_0x5b0734[_0x8354('0x31')]=_[_0x8354('0x32')](_0x49025a[_0x8354('0x31')]);_0x5b0734[_0x8354('0x33')]=_[_0x8354('0x34')](_0x5b0734[_0x8354('0x2f')],_0x5b0734[_0x8354('0x31')]);_0x41f822[_0x8354('0x35')]=_[_0x8354('0x34')](_0x5b0734['model'],qs[_0x8354('0x36')](_0x49025a[_0x8354('0x31')][_0x8354('0x36')]));_0x41f822[_0x8354('0x35')]=_0x41f822[_0x8354('0x35')][_0x8354('0x37')]?_0x41f822[_0x8354('0x35')]:_0x5b0734['model'];if(!_0x49025a[_0x8354('0x31')][_0x8354('0x38')](_0x8354('0x39'))){_0x41f822[_0x8354('0x20')]=qs[_0x8354('0x20')](_0x49025a[_0x8354('0x31')]['limit']);_0x41f822[_0x8354('0x1d')]=qs['offset'](_0x49025a[_0x8354('0x31')][_0x8354('0x1d')]);}_0x41f822[_0x8354('0x3a')]=qs['sort'](_0x49025a[_0x8354('0x31')][_0x8354('0x3b')]);_0x41f822[_0x8354('0x3c')]=qs[_0x8354('0x33')](_['pick'](_0x49025a[_0x8354('0x31')],_0x5b0734['filters']),_0xced6b0);if(_0x49025a[_0x8354('0x31')][_0x8354('0x3d')]){_0x41f822[_0x8354('0x3c')]=_[_0x8354('0x3e')](_0x41f822[_0x8354('0x3c')],{'$or':_[_0x8354('0x30')](_0xced6b0,function(_0x486ba1){if(_0x486ba1[_0x8354('0x2e')]!==_0x8354('0x3f')){var _0x8ea3eb={};_0x8ea3eb[_0x486ba1[_0x8354('0x29')]]={'$like':'%'+_0x49025a[_0x8354('0x31')][_0x8354('0x3d')]+'%'};return _0x8ea3eb;}})});}_0x41f822=_[_0x8354('0x3e')]({},_0x41f822,_0x49025a[_0x8354('0x40')]);var _0x5e6394={'where':_0x41f822[_0x8354('0x3c')]};return db['ZohoConfiguration'][_0x8354('0x1f')](_0x5e6394)[_0x8354('0x26')](function(_0x2cc7fe){_0x45057d['count']=_0x2cc7fe;if(_0x49025a['query']['includeAll']){_0x41f822['include']=[{'all':!![]}];}return db[_0x8354('0x2b')][_0x8354('0x41')](_0x41f822);})[_0x8354('0x26')](function(_0x5862cc){_0x45057d[_0x8354('0x42')]=_0x5862cc;return _0x45057d;})[_0x8354('0x26')](respondWithFilteredResult(_0xdb4228,_0x41f822))[_0x8354('0x43')](handleError(_0xdb4228,null));};exports[_0x8354('0x44')]=function(_0x454aed,_0x45d8cb){var _0x35be4f={'raw':![],'where':{'id':_0x454aed[_0x8354('0x45')]['id']}},_0x23ed81={};_0x23ed81[_0x8354('0x2f')]=_[_0x8354('0x32')](db[_0x8354('0x2b')]['rawAttributes']);_0x23ed81[_0x8354('0x31')]=_[_0x8354('0x32')](_0x454aed[_0x8354('0x31')]);_0x23ed81[_0x8354('0x33')]=_['intersection'](_0x23ed81['model'],_0x23ed81[_0x8354('0x31')]);_0x35be4f['attributes']=_[_0x8354('0x34')](_0x23ed81['model'],qs[_0x8354('0x36')](_0x454aed[_0x8354('0x31')][_0x8354('0x36')]));_0x35be4f[_0x8354('0x35')]=_0x35be4f[_0x8354('0x35')][_0x8354('0x37')]?_0x35be4f[_0x8354('0x35')]:_0x23ed81['model'];if(_0x454aed[_0x8354('0x31')][_0x8354('0x46')]){_0x35be4f[_0x8354('0x47')]=[{'all':!![]}];}_0x35be4f=_[_0x8354('0x3e')]({},_0x35be4f,_0x454aed[_0x8354('0x40')]);return db[_0x8354('0x2b')][_0x8354('0x48')](_0x35be4f)[_0x8354('0x26')](handleEntityNotFound(_0x45d8cb,null))[_0x8354('0x26')](respondWithResult(_0x45d8cb,null))['catch'](handleError(_0x45d8cb,null));};exports[_0x8354('0x49')]=function(_0x28edbd,_0x3bed3f){return db[_0x8354('0x2b')]['create'](_0x28edbd[_0x8354('0x4a')],{})['then'](respondWithResult(_0x3bed3f,0xc9))[_0x8354('0x43')](handleError(_0x3bed3f,null));};exports[_0x8354('0x25')]=function(_0xbef6a9,_0x53a596){if(_0xbef6a9[_0x8354('0x4a')]['id']){delete _0xbef6a9['body']['id'];}return db[_0x8354('0x2b')]['find']({'where':{'id':_0xbef6a9[_0x8354('0x45')]['id']}})[_0x8354('0x26')](handleEntityNotFound(_0x53a596,null))[_0x8354('0x26')](saveUpdates(_0xbef6a9[_0x8354('0x4a')],null))['then'](respondWithResult(_0x53a596,null))[_0x8354('0x43')](handleError(_0x53a596,null));};exports[_0x8354('0x27')]=function(_0x52cedb,_0x236f88){return db[_0x8354('0x2b')]['find']({'where':{'id':_0x52cedb['params']['id']}})[_0x8354('0x26')](handleEntityNotFound(_0x236f88,null))['then'](removeEntity(_0x236f88,null))[_0x8354('0x43')](handleError(_0x236f88,null));};exports[_0x8354('0x4b')]=function(_0x79765b,_0x3fcecc,_0x14495a){var _0x5d7e0d={};var _0x5873d3={};var _0x173605;var _0x241782;return db['ZohoConfiguration'][_0x8354('0x4c')]({'where':{'id':_0x79765b[_0x8354('0x45')]['id']}})[_0x8354('0x26')](handleEntityNotFound(_0x3fcecc,null))[_0x8354('0x26')](function(_0x2410d8){if(_0x2410d8){_0x173605=_0x2410d8;_0x5873d3['model']=_[_0x8354('0x32')](db[_0x8354('0x4d')][_0x8354('0x2c')]);_0x5873d3[_0x8354('0x31')]=_[_0x8354('0x32')](_0x79765b[_0x8354('0x31')]);_0x5873d3[_0x8354('0x33')]=_['intersection'](_0x5873d3[_0x8354('0x2f')],_0x5873d3[_0x8354('0x31')]);_0x5d7e0d[_0x8354('0x35')]=_[_0x8354('0x34')](_0x5873d3[_0x8354('0x2f')],qs[_0x8354('0x36')](_0x79765b[_0x8354('0x31')][_0x8354('0x36')]));_0x5d7e0d[_0x8354('0x35')]=_0x5d7e0d[_0x8354('0x35')]['length']?_0x5d7e0d[_0x8354('0x35')]:_0x5873d3[_0x8354('0x2f')];_0x5d7e0d['order']=qs[_0x8354('0x3b')](_0x79765b['query'][_0x8354('0x3b')]);_0x5d7e0d['where']=qs['filters'](_['pick'](_0x79765b[_0x8354('0x31')],_0x5873d3[_0x8354('0x33')]));if(_0x79765b[_0x8354('0x31')][_0x8354('0x3d')]){_0x5d7e0d[_0x8354('0x3c')]=_['merge'](_0x5d7e0d[_0x8354('0x3c')],{'$or':_['map'](_0x5d7e0d['attributes'],function(_0x69a226){var _0x1d2ba2={};_0x1d2ba2[_0x69a226]={'$like':'%'+_0x79765b[_0x8354('0x31')][_0x8354('0x3d')]+'%'};return _0x1d2ba2;})});}_0x5d7e0d=_[_0x8354('0x3e')]({},_0x5d7e0d,_0x79765b[_0x8354('0x40')]);return _0x173605[_0x8354('0x4b')](_0x5d7e0d);}})['then'](function(_0x38d1da){if(_0x38d1da){_0x241782=_0x38d1da[_0x8354('0x37')];if(!_0x79765b['query'][_0x8354('0x38')]('nolimit')){_0x5d7e0d[_0x8354('0x20')]=qs['limit'](_0x79765b[_0x8354('0x31')][_0x8354('0x20')]);_0x5d7e0d[_0x8354('0x1d')]=qs['offset'](_0x79765b[_0x8354('0x31')]['offset']);}return _0x173605[_0x8354('0x4b')](_0x5d7e0d);}})['then'](function(_0x18f529){if(_0x18f529){return _0x18f529?{'count':_0x241782,'rows':_0x18f529}:null;}})[_0x8354('0x26')](respondWithResult(_0x3fcecc,null))[_0x8354('0x43')](handleError(_0x3fcecc,null));};exports['getSubjects']=function(_0x1074c7,_0x57b485,_0x102491){var _0x3e956f={};var _0x3236bc={};var _0x439162;var _0x3f144d;return db[_0x8354('0x2b')][_0x8354('0x4c')]({'where':{'id':_0x1074c7['params']['id']}})['then'](handleEntityNotFound(_0x57b485,null))[_0x8354('0x26')](function(_0x28b1d3){if(_0x28b1d3){_0x439162=_0x28b1d3;_0x3236bc[_0x8354('0x2f')]=_['keys'](db[_0x8354('0x4d')][_0x8354('0x2c')]);_0x3236bc[_0x8354('0x31')]=_[_0x8354('0x32')](_0x1074c7[_0x8354('0x31')]);_0x3236bc[_0x8354('0x33')]=_['intersection'](_0x3236bc['model'],_0x3236bc[_0x8354('0x31')]);_0x3e956f[_0x8354('0x35')]=_['intersection'](_0x3236bc[_0x8354('0x2f')],qs['fields'](_0x1074c7['query'][_0x8354('0x36')]));_0x3e956f[_0x8354('0x35')]=_0x3e956f['attributes']['length']?_0x3e956f['attributes']:_0x3236bc[_0x8354('0x2f')];_0x3e956f[_0x8354('0x3a')]=qs[_0x8354('0x3b')](_0x1074c7[_0x8354('0x31')][_0x8354('0x3b')]);_0x3e956f['where']=qs['filters'](_[_0x8354('0x4e')](_0x1074c7[_0x8354('0x31')],_0x3236bc[_0x8354('0x33')]));if(_0x1074c7['query'][_0x8354('0x3d')]){_0x3e956f[_0x8354('0x3c')]=_[_0x8354('0x3e')](_0x3e956f[_0x8354('0x3c')],{'$or':_[_0x8354('0x30')](_0x3e956f['attributes'],function(_0x4c3b8d){var _0x40e715={};_0x40e715[_0x4c3b8d]={'$like':'%'+_0x1074c7[_0x8354('0x31')][_0x8354('0x3d')]+'%'};return _0x40e715;})});}_0x3e956f=_['merge']({},_0x3e956f,_0x1074c7['options']);return _0x439162[_0x8354('0x4f')](_0x3e956f);}})[_0x8354('0x26')](function(_0x36a6e7){if(_0x36a6e7){_0x3f144d=_0x36a6e7[_0x8354('0x37')];if(!_0x1074c7[_0x8354('0x31')][_0x8354('0x38')](_0x8354('0x39'))){_0x3e956f['limit']=qs[_0x8354('0x20')](_0x1074c7[_0x8354('0x31')]['limit']);_0x3e956f['offset']=qs[_0x8354('0x1d')](_0x1074c7[_0x8354('0x31')][_0x8354('0x1d')]);}return _0x439162[_0x8354('0x4f')](_0x3e956f);}})[_0x8354('0x26')](function(_0x3ec6f7){if(_0x3ec6f7){return _0x3ec6f7?{'count':_0x3f144d,'rows':_0x3ec6f7}:null;}})[_0x8354('0x26')](respondWithResult(_0x57b485,null))[_0x8354('0x43')](handleError(_0x57b485,null));};exports[_0x8354('0x50')]=function(_0x3a6425,_0x44687c,_0x12ea9c){var _0x499846={};var _0x4de276={};var _0x290f8e;var _0xcf1086;return db['ZohoConfiguration']['findOne']({'where':{'id':_0x3a6425['params']['id']}})[_0x8354('0x26')](handleEntityNotFound(_0x44687c,null))[_0x8354('0x26')](function(_0x39023a){if(_0x39023a){_0x290f8e=_0x39023a;_0x4de276[_0x8354('0x2f')]=_[_0x8354('0x32')](db[_0x8354('0x4d')]['rawAttributes']);_0x4de276['query']=_['keys'](_0x3a6425['query']);_0x4de276[_0x8354('0x33')]=_[_0x8354('0x34')](_0x4de276[_0x8354('0x2f')],_0x4de276['query']);_0x499846['attributes']=_[_0x8354('0x34')](_0x4de276['model'],qs['fields'](_0x3a6425[_0x8354('0x31')]['fields']));_0x499846[_0x8354('0x35')]=_0x499846[_0x8354('0x35')]['length']?_0x499846[_0x8354('0x35')]:_0x4de276[_0x8354('0x2f')];_0x499846[_0x8354('0x3a')]=qs['sort'](_0x3a6425[_0x8354('0x31')]['sort']);_0x499846['where']=qs[_0x8354('0x33')](_[_0x8354('0x4e')](_0x3a6425[_0x8354('0x31')],_0x4de276[_0x8354('0x33')]));if(_0x3a6425[_0x8354('0x31')]['filter']){_0x499846[_0x8354('0x3c')]=_[_0x8354('0x3e')](_0x499846[_0x8354('0x3c')],{'$or':_['map'](_0x499846[_0x8354('0x35')],function(_0x4ec5f3){var _0x11945a={};_0x11945a[_0x4ec5f3]={'$like':'%'+_0x3a6425[_0x8354('0x31')][_0x8354('0x3d')]+'%'};return _0x11945a;})});}_0x499846=_[_0x8354('0x3e')]({},_0x499846,_0x3a6425[_0x8354('0x40')]);return _0x290f8e[_0x8354('0x50')](_0x499846);}})[_0x8354('0x26')](function(_0x1ba15f){if(_0x1ba15f){_0xcf1086=_0x1ba15f[_0x8354('0x37')];if(!_0x3a6425['query'][_0x8354('0x38')](_0x8354('0x39'))){_0x499846[_0x8354('0x20')]=qs[_0x8354('0x20')](_0x3a6425['query'][_0x8354('0x20')]);_0x499846[_0x8354('0x1d')]=qs['offset'](_0x3a6425[_0x8354('0x31')][_0x8354('0x1d')]);}return _0x290f8e[_0x8354('0x50')](_0x499846);}})[_0x8354('0x26')](function(_0x38bcfe){if(_0x38bcfe){return _0x38bcfe?{'count':_0xcf1086,'rows':_0x38bcfe}:null;}})[_0x8354('0x26')](respondWithResult(_0x44687c,null))['catch'](handleError(_0x44687c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5020=['./intZohoConfiguration.attributes','exports','ZohoConfiguration','int_zoho_configurations','lodash','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment'];(function(_0x1135bf,_0x4d5a02){var _0x33eef6=function(_0x568b58){while(--_0x568b58){_0x1135bf['push'](_0x1135bf['shift']());}};_0x33eef6(++_0x4d5a02);}(_0x5020,0x154));var _0x0502=function(_0x92c450,_0x41f1e3){_0x92c450=_0x92c450-0x0;var _0x2a9599=_0x5020[_0x92c450];return _0x2a9599;};'use strict';var _=require(_0x0502('0x0'));var util=require(_0x0502('0x1'));var logger=require(_0x0502('0x2'))(_0x0502('0x3'));var moment=require(_0x0502('0x4'));var BPromise=require('bluebird');var rp=require(_0x0502('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0502('0x6'));var config=require(_0x0502('0x7'));var attributes=require(_0x0502('0x8'));module[_0x0502('0x9')]=function(_0x30928b,_0x4dd934){return _0x30928b['define'](_0x0502('0xa'),attributes,{'tableName':_0x0502('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3228=['../../config/environment','./intZohoConfiguration.attributes','exports','define','ZohoConfiguration','int_zoho_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x5ce8b9,_0x5cded8){var _0xe34be0=function(_0xe3d4e5){while(--_0xe3d4e5){_0x5ce8b9['push'](_0x5ce8b9['shift']());}};_0xe34be0(++_0x5cded8);}(_0x3228,0xd8));var _0x8322=function(_0x4de2f3,_0x42f3a0){_0x4de2f3=_0x4de2f3-0x0;var _0x124541=_0x3228[_0x4de2f3];return _0x124541;};'use strict';var _=require(_0x8322('0x0'));var util=require(_0x8322('0x1'));var logger=require(_0x8322('0x2'))(_0x8322('0x3'));var moment=require(_0x8322('0x4'));var BPromise=require(_0x8322('0x5'));var rp=require(_0x8322('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8322('0x7'));var config=require(_0x8322('0x8'));var attributes=require(_0x8322('0x9'));module[_0x8322('0xa')]=function(_0x3d63f0,_0x2d86e9){return _0x3d63f0[_0x8322('0xb')](_0x8322('0xc'),attributes,{'tableName':_0x8322('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00ca=['request','then','info','ZohoConfiguration,\x20%s,\x20%s','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','http'];(function(_0x7cc1f1,_0x1aae92){var _0x25dfab=function(_0x41fbc7){while(--_0x41fbc7){_0x7cc1f1['push'](_0x7cc1f1['shift']());}};_0x25dfab(++_0x1aae92);}(_0x00ca,0x187));var _0xa00c=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x00ca[_0x432682];return _0x463d05;};'use strict';var _=require('lodash');var util=require(_0xa00c('0x0'));var moment=require(_0xa00c('0x1'));var BPromise=require('bluebird');var rs=require(_0xa00c('0x2'));var fs=require('fs');var Redis=require(_0xa00c('0x3'));var db=require(_0xa00c('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xa00c('0x5'))('rpc');var config=require(_0xa00c('0x6'));var jayson=require(_0xa00c('0x7'));var client=jayson['client'][_0xa00c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1d7de4,_0x78abce,_0x15994f){return new BPromise(function(_0x294e5e,_0x46704b){return client[_0xa00c('0x9')](_0x1d7de4,_0x15994f)[_0xa00c('0xa')](function(_0x329bde){logger[_0xa00c('0xb')](_0xa00c('0xc'),_0x78abce,'request\x20sent');logger[_0xa00c('0xd')](_0xa00c('0xe'),_0x78abce,_0xa00c('0xf'),JSON[_0xa00c('0x10')](_0x329bde));if(_0x329bde[_0xa00c('0x11')]){if(_0x329bde['error']['code']===0x1f4){logger[_0xa00c('0x11')](_0xa00c('0xc'),_0x78abce,_0x329bde[_0xa00c('0x11')][_0xa00c('0x12')]);return _0x46704b(_0x329bde[_0xa00c('0x11')][_0xa00c('0x12')]);}logger[_0xa00c('0x11')](_0xa00c('0xc'),_0x78abce,_0x329bde[_0xa00c('0x11')][_0xa00c('0x12')]);return _0x294e5e(_0x329bde[_0xa00c('0x11')]['message']);}else{logger[_0xa00c('0xb')](_0xa00c('0xc'),_0x78abce,_0xa00c('0xf'));_0x294e5e(_0x329bde[_0xa00c('0x13')]['message']);}})['catch'](function(_0x5c91a9){logger[_0xa00c('0x11')](_0xa00c('0xc'),_0x78abce,_0x5c91a9);_0x46704b(_0x5c91a9);});});}
\ No newline at end of file
+var _0x4265=['request','then','request\x20sent','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','ZohoConfiguration,\x20%s,\x20%s','message','info','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x4103d4,_0x530cdc){var _0x5a0e3f=function(_0x382bc6){while(--_0x382bc6){_0x4103d4['push'](_0x4103d4['shift']());}};_0x5a0e3f(++_0x530cdc);}(_0x4265,0x15d));var _0x5426=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x4265[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x5426('0x0'));var util=require(_0x5426('0x1'));var moment=require(_0x5426('0x2'));var BPromise=require('bluebird');var rs=require(_0x5426('0x3'));var fs=require('fs');var Redis=require(_0x5426('0x4'));var db=require(_0x5426('0x5'))['db'];var utils=require(_0x5426('0x6'));var logger=require(_0x5426('0x7'))('rpc');var config=require(_0x5426('0x8'));var jayson=require(_0x5426('0x9'));var client=jayson[_0x5426('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x330152,_0xdb8cbe,_0x8f15ef){return new BPromise(function(_0x3f16b6,_0x38c4f9){return client[_0x5426('0xb')](_0x330152,_0x8f15ef)[_0x5426('0xc')](function(_0x44b89e){logger['info']('ZohoConfiguration,\x20%s,\x20%s',_0xdb8cbe,_0x5426('0xd'));logger[_0x5426('0xe')](_0x5426('0xf'),_0xdb8cbe,'request\x20sent',JSON[_0x5426('0x10')](_0x44b89e));if(_0x44b89e[_0x5426('0x11')]){if(_0x44b89e[_0x5426('0x11')][_0x5426('0x12')]===0x1f4){logger['error'](_0x5426('0x13'),_0xdb8cbe,_0x44b89e[_0x5426('0x11')][_0x5426('0x14')]);return _0x38c4f9(_0x44b89e[_0x5426('0x11')][_0x5426('0x14')]);}logger[_0x5426('0x11')]('ZohoConfiguration,\x20%s,\x20%s',_0xdb8cbe,_0x44b89e[_0x5426('0x11')]['message']);return _0x3f16b6(_0x44b89e[_0x5426('0x11')][_0x5426('0x14')]);}else{logger[_0x5426('0x15')](_0x5426('0x13'),_0xdb8cbe,_0x5426('0xd'));_0x3f16b6(_0x44b89e[_0x5426('0x16')][_0x5426('0x14')]);}})[_0x5426('0x17')](function(_0x3c2b4f){logger[_0x5426('0x11')]('ZohoConfiguration,\x20%s,\x20%s',_0xdb8cbe,_0x3c2b4f);_0x38c4f9(_0x3c2b4f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c84=['show','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intZohoField.controller','get','isAuthenticated','index','/:id'];(function(_0xabab8b,_0x42c658){var _0x3ef0ae=function(_0x267f40){while(--_0x267f40){_0xabab8b['push'](_0xabab8b['shift']());}};_0x3ef0ae(++_0x42c658);}(_0x6c84,0x157));var _0x46c8=function(_0x5f0089,_0x227e2c){_0x5f0089=_0x5f0089-0x0;var _0x193892=_0x6c84[_0x5f0089];return _0x193892;};'use strict';var multer=require(_0x46c8('0x0'));var util=require(_0x46c8('0x1'));var path=require(_0x46c8('0x2'));var timeout=require(_0x46c8('0x3'));var express=require(_0x46c8('0x4'));var router=express[_0x46c8('0x5')]();var fs_extra=require(_0x46c8('0x6'));var auth=require(_0x46c8('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x46c8('0x8'));var controller=require(_0x46c8('0x9'));router[_0x46c8('0xa')]('/',auth[_0x46c8('0xb')](),controller[_0x46c8('0xc')]);router['get'](_0x46c8('0xd'),auth[_0x46c8('0xb')](),controller[_0x46c8('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x46c8('0xf')]);router[_0x46c8('0x10')]('/:id',auth[_0x46c8('0xb')](),controller[_0x46c8('0x11')]);router[_0x46c8('0x12')](_0x46c8('0xd'),auth[_0x46c8('0xb')](),controller[_0x46c8('0x13')]);module[_0x46c8('0x14')]=router;
\ No newline at end of file
+var _0x9002=['isAuthenticated','index','show','create','put','/:id','update','delete','destroy','exports','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoField.controller'];(function(_0x1f1a97,_0xadfc15){var _0x29fc6a=function(_0x38c180){while(--_0x38c180){_0x1f1a97['push'](_0x1f1a97['shift']());}};_0x29fc6a(++_0xadfc15);}(_0x9002,0x13c));var _0x2900=function(_0x214c47,_0x49f280){_0x214c47=_0x214c47-0x0;var _0x4e8856=_0x9002[_0x214c47];return _0x4e8856;};'use strict';var multer=require('multer');var util=require(_0x2900('0x0'));var path=require(_0x2900('0x1'));var timeout=require(_0x2900('0x2'));var express=require('express');var router=express[_0x2900('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x2900('0x4'));var interaction=require(_0x2900('0x5'));var config=require(_0x2900('0x6'));var controller=require(_0x2900('0x7'));router['get']('/',auth[_0x2900('0x8')](),controller[_0x2900('0x9')]);router['get']('/:id',auth[_0x2900('0x8')](),controller[_0x2900('0xa')]);router['post']('/',auth[_0x2900('0x8')](),controller[_0x2900('0xb')]);router[_0x2900('0xc')](_0x2900('0xd'),auth[_0x2900('0x8')](),controller[_0x2900('0xe')]);router[_0x2900('0xf')]('/:id',auth[_0x2900('0x8')](),controller[_0x2900('0x10')]);module[_0x2900('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2772=['BOOLEAN','exports','variable','customVariable','picklist','STRING','ENUM','string'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2772,0xf9));var _0x2277=function(_0x506e4a,_0x4b902d){_0x506e4a=_0x506e4a-0x0;var _0x720979=_0x2772[_0x506e4a];return _0x720979;};'use strict';var Sequelize=require('sequelize');module[_0x2277('0x0')]={'type':{'type':Sequelize['ENUM']('string',_0x2277('0x1'),_0x2277('0x2'),'keyValue',_0x2277('0x3')),'defaultValue':'string'},'content':{'type':Sequelize[_0x2277('0x4')]},'key':{'type':Sequelize[_0x2277('0x4')]},'keyType':{'type':Sequelize[_0x2277('0x5')](_0x2277('0x6'),_0x2277('0x1'),_0x2277('0x2'))},'keyContent':{'type':Sequelize[_0x2277('0x4')]},'idField':{'type':Sequelize[_0x2277('0x4')]},'nameField':{'type':Sequelize[_0x2277('0x4')]},'customField':{'type':Sequelize[_0x2277('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x2277('0x4')]}};
\ No newline at end of file
+var _0xa92f=['ENUM','string','variable','customVariable','keyValue','picklist','STRING','BOOLEAN'];(function(_0x4ee773,_0x3dd945){var _0x1cffbb=function(_0x1d6f83){while(--_0x1d6f83){_0x4ee773['push'](_0x4ee773['shift']());}};_0x1cffbb(++_0x3dd945);}(_0xa92f,0x88));var _0xfa92=function(_0x378867,_0x5ce806){_0x378867=_0x378867-0x0;var _0x1c2de2=_0xa92f[_0x378867];return _0x1c2de2;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0xfa92('0x0')](_0xfa92('0x1'),_0xfa92('0x2'),_0xfa92('0x3'),_0xfa92('0x4'),_0xfa92('0x5')),'defaultValue':_0xfa92('0x1')},'content':{'type':Sequelize[_0xfa92('0x6')]},'key':{'type':Sequelize[_0xfa92('0x6')]},'keyType':{'type':Sequelize[_0xfa92('0x0')](_0xfa92('0x1'),_0xfa92('0x2'),_0xfa92('0x3'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xfa92('0x6')]},'customField':{'type':Sequelize[_0xfa92('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xfa92('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa968=['include','ZohoField','findAll','rows','catch','show','params','keys','find','create','body','destroy','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','limit','count','set','apply','reject','save','update','then','sendStatus','error','stack','name','index','map','rawAttributes','fieldName','type','query','filters','intersection','model','attributes','fields','length','nolimit','order','sort','pick','where','merge','filter','options','includeAll'];(function(_0x307e9f,_0x27205a){var _0xb71e84=function(_0xf2265e){while(--_0xf2265e){_0x307e9f['push'](_0x307e9f['shift']());}};_0xb71e84(++_0x27205a);}(_0xa968,0x1c2));var _0x8a96=function(_0x56fac1,_0x432aef){_0x56fac1=_0x56fac1-0x0;var _0x43254d=_0xa968[_0x56fac1];return _0x43254d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8a96('0x0'));var zipdir=require(_0x8a96('0x1'));var jsonpatch=require(_0x8a96('0x2'));var rp=require('request-promise');var moment=require(_0x8a96('0x3'));var BPromise=require(_0x8a96('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x8a96('0x5'));var sox=require('sox');var csv=require(_0x8a96('0x6'));var ejs=require(_0x8a96('0x7'));var fs=require('fs');var fs_extra=require(_0x8a96('0x8'));var _=require(_0x8a96('0x9'));var squel=require(_0x8a96('0xa'));var crypto=require(_0x8a96('0xb'));var jsforce=require(_0x8a96('0xc'));var deskjs=require(_0x8a96('0xd'));var toCsv=require(_0x8a96('0x6'));var querystring=require('querystring');var Papa=require(_0x8a96('0xe'));var Redis=require(_0x8a96('0xf'));var authService=require(_0x8a96('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8a96('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8a96('0x12'))(_0x8a96('0x13'));var utils=require(_0x8a96('0x14'));var config=require(_0x8a96('0x15'));var licenseUtil=require(_0x8a96('0x16'));var db=require(_0x8a96('0x17'))['db'];function respondWithStatusCode(_0x13e056,_0x13d91d){_0x13d91d=_0x13d91d||0xcc;return function(_0x3a2d96){if(_0x3a2d96){return _0x13e056['sendStatus'](_0x13d91d);}return _0x13e056['status'](_0x13d91d)[_0x8a96('0x18')]();};}function respondWithResult(_0x13ad04,_0x29f2b8){_0x29f2b8=_0x29f2b8||0xc8;return function(_0x1de56f){if(_0x1de56f){return _0x13ad04[_0x8a96('0x19')](_0x29f2b8)[_0x8a96('0x1a')](_0x1de56f);}};}function respondWithFilteredResult(_0x4ab6da,_0xf69e6e){return function(_0x3e2428){if(_0x3e2428){var _0x581aa2=typeof _0xf69e6e[_0x8a96('0x1b')]==='undefined'&&typeof _0xf69e6e[_0x8a96('0x1c')]==='undefined';var _0x507e7e=_0x3e2428[_0x8a96('0x1d')];var _0x54355e=_0x581aa2?0x0:_0xf69e6e['offset'];var _0x76c714=_0x581aa2?_0x3e2428[_0x8a96('0x1d')]:_0xf69e6e[_0x8a96('0x1b')]+_0xf69e6e['limit'];var _0x3fdfe7;if(_0x76c714>=_0x507e7e){_0x76c714=_0x507e7e;_0x3fdfe7=0xc8;}else{_0x3fdfe7=0xce;}_0x4ab6da[_0x8a96('0x19')](_0x3fdfe7);return _0x4ab6da[_0x8a96('0x1e')]('Content-Range',_0x54355e+'-'+_0x76c714+'/'+_0x507e7e)[_0x8a96('0x1a')](_0x3e2428);}return null;};}function patchUpdates(_0x5f1b9c){return function(_0x53154c){try{jsonpatch[_0x8a96('0x1f')](_0x53154c,_0x5f1b9c,!![]);}catch(_0x40b3c2){return BPromise[_0x8a96('0x20')](_0x40b3c2);}return _0x53154c[_0x8a96('0x21')]();};}function saveUpdates(_0x518e67,_0x314f86){return function(_0x269a52){if(_0x269a52){return _0x269a52[_0x8a96('0x22')](_0x518e67)[_0x8a96('0x23')](function(_0x42e458){return _0x42e458;});}return null;};}function removeEntity(_0x36c926,_0x29b85f){return function(_0x48ac54){if(_0x48ac54){return _0x48ac54['destroy']()[_0x8a96('0x23')](function(){_0x36c926['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c31d2,_0x588e67){return function(_0x3a3a9e){if(!_0x3a3a9e){_0x3c31d2[_0x8a96('0x24')](0x194);}return _0x3a3a9e;};}function handleError(_0x16aa0b,_0x3a87bd){_0x3a87bd=_0x3a87bd||0x1f4;return function(_0x4fdfa1){logger[_0x8a96('0x25')](_0x4fdfa1[_0x8a96('0x26')]);if(_0x4fdfa1[_0x8a96('0x27')]){delete _0x4fdfa1[_0x8a96('0x27')];}_0x16aa0b[_0x8a96('0x19')](_0x3a87bd)['send'](_0x4fdfa1);};}exports[_0x8a96('0x28')]=function(_0x2e94e4,_0x15c373){var _0x5f3880={},_0x30c776={},_0x6340c4={'count':0x0,'rows':[]};var _0x44e9de=_[_0x8a96('0x29')](db['ZohoField'][_0x8a96('0x2a')],function(_0x5e2788){return{'name':_0x5e2788[_0x8a96('0x2b')],'type':_0x5e2788[_0x8a96('0x2c')]['key']};});_0x30c776['model']=_[_0x8a96('0x29')](_0x44e9de,_0x8a96('0x27'));_0x30c776[_0x8a96('0x2d')]=_['keys'](_0x2e94e4[_0x8a96('0x2d')]);_0x30c776[_0x8a96('0x2e')]=_[_0x8a96('0x2f')](_0x30c776[_0x8a96('0x30')],_0x30c776[_0x8a96('0x2d')]);_0x5f3880[_0x8a96('0x31')]=_[_0x8a96('0x2f')](_0x30c776[_0x8a96('0x30')],qs[_0x8a96('0x32')](_0x2e94e4[_0x8a96('0x2d')][_0x8a96('0x32')]));_0x5f3880['attributes']=_0x5f3880[_0x8a96('0x31')][_0x8a96('0x33')]?_0x5f3880[_0x8a96('0x31')]:_0x30c776['model'];if(!_0x2e94e4['query']['hasOwnProperty'](_0x8a96('0x34'))){_0x5f3880[_0x8a96('0x1c')]=qs[_0x8a96('0x1c')](_0x2e94e4[_0x8a96('0x2d')][_0x8a96('0x1c')]);_0x5f3880[_0x8a96('0x1b')]=qs[_0x8a96('0x1b')](_0x2e94e4[_0x8a96('0x2d')]['offset']);}_0x5f3880[_0x8a96('0x35')]=qs[_0x8a96('0x36')](_0x2e94e4[_0x8a96('0x2d')]['sort']);_0x5f3880['where']=qs[_0x8a96('0x2e')](_[_0x8a96('0x37')](_0x2e94e4[_0x8a96('0x2d')],_0x30c776[_0x8a96('0x2e')]),_0x44e9de);if(_0x2e94e4[_0x8a96('0x2d')]['filter']){_0x5f3880[_0x8a96('0x38')]=_[_0x8a96('0x39')](_0x5f3880[_0x8a96('0x38')],{'$or':_[_0x8a96('0x29')](_0x44e9de,function(_0x40db53){if(_0x40db53['type']!=='VIRTUAL'){var _0x247336={};_0x247336[_0x40db53[_0x8a96('0x27')]]={'$like':'%'+_0x2e94e4[_0x8a96('0x2d')][_0x8a96('0x3a')]+'%'};return _0x247336;}})});}_0x5f3880=_[_0x8a96('0x39')]({},_0x5f3880,_0x2e94e4[_0x8a96('0x3b')]);var _0xc63fdf={'where':_0x5f3880[_0x8a96('0x38')]};return db['ZohoField'][_0x8a96('0x1d')](_0xc63fdf)[_0x8a96('0x23')](function(_0x175df8){_0x6340c4[_0x8a96('0x1d')]=_0x175df8;if(_0x2e94e4['query'][_0x8a96('0x3c')]){_0x5f3880[_0x8a96('0x3d')]=[{'all':!![]}];}return db[_0x8a96('0x3e')][_0x8a96('0x3f')](_0x5f3880);})[_0x8a96('0x23')](function(_0x1f21f0){_0x6340c4[_0x8a96('0x40')]=_0x1f21f0;return _0x6340c4;})[_0x8a96('0x23')](respondWithFilteredResult(_0x15c373,_0x5f3880))[_0x8a96('0x41')](handleError(_0x15c373,null));};exports[_0x8a96('0x42')]=function(_0x5256f7,_0x46e273){var _0x292bb6={'raw':!![],'where':{'id':_0x5256f7[_0x8a96('0x43')]['id']}},_0x3b4fc1={};_0x3b4fc1[_0x8a96('0x30')]=_[_0x8a96('0x44')](db[_0x8a96('0x3e')][_0x8a96('0x2a')]);_0x3b4fc1['query']=_[_0x8a96('0x44')](_0x5256f7[_0x8a96('0x2d')]);_0x3b4fc1['filters']=_[_0x8a96('0x2f')](_0x3b4fc1[_0x8a96('0x30')],_0x3b4fc1[_0x8a96('0x2d')]);_0x292bb6[_0x8a96('0x31')]=_[_0x8a96('0x2f')](_0x3b4fc1['model'],qs['fields'](_0x5256f7[_0x8a96('0x2d')]['fields']));_0x292bb6[_0x8a96('0x31')]=_0x292bb6[_0x8a96('0x31')]['length']?_0x292bb6[_0x8a96('0x31')]:_0x3b4fc1['model'];if(_0x5256f7[_0x8a96('0x2d')][_0x8a96('0x3c')]){_0x292bb6[_0x8a96('0x3d')]=[{'all':!![]}];}_0x292bb6=_['merge']({},_0x292bb6,_0x5256f7['options']);return db['ZohoField'][_0x8a96('0x45')](_0x292bb6)[_0x8a96('0x23')](handleEntityNotFound(_0x46e273,null))['then'](respondWithResult(_0x46e273,null))[_0x8a96('0x41')](handleError(_0x46e273,null));};exports[_0x8a96('0x46')]=function(_0x58dd5b,_0x482ac0){return db[_0x8a96('0x3e')][_0x8a96('0x46')](_0x58dd5b['body'],{})[_0x8a96('0x23')](respondWithResult(_0x482ac0,0xc9))['catch'](handleError(_0x482ac0,null));};exports[_0x8a96('0x22')]=function(_0x5a0353,_0x248005){if(_0x5a0353[_0x8a96('0x47')]['id']){delete _0x5a0353[_0x8a96('0x47')]['id'];}return db[_0x8a96('0x3e')][_0x8a96('0x45')]({'where':{'id':_0x5a0353[_0x8a96('0x43')]['id']}})[_0x8a96('0x23')](handleEntityNotFound(_0x248005,null))['then'](saveUpdates(_0x5a0353['body'],null))[_0x8a96('0x23')](respondWithResult(_0x248005,null))[_0x8a96('0x41')](handleError(_0x248005,null));};exports[_0x8a96('0x48')]=function(_0x5de625,_0x5a8c6c){return db['ZohoField']['find']({'where':{'id':_0x5de625[_0x8a96('0x43')]['id']}})[_0x8a96('0x23')](handleEntityNotFound(_0x5a8c6c,null))['then'](removeEntity(_0x5a8c6c,null))[_0x8a96('0x41')](handleError(_0x5a8c6c,null));};
\ No newline at end of file
+var _0x10fd=['moment','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','count','set','apply','reject','update','then','destroy','sendStatus','error','stack','name','index','ZohoField','fieldName','type','key','model','map','query','intersection','attributes','length','order','sort','filters','pick','where','VIRTUAL','filter','merge','options','includeAll','include','findAll','catch','keys','fields','create','body','params','eml-format','request-promise'];(function(_0x27134b,_0x39f2c6){var _0x3efaeb=function(_0x472972){while(--_0x472972){_0x27134b['push'](_0x27134b['shift']());}};_0x3efaeb(++_0x39f2c6);}(_0x10fd,0xc4));var _0xd10f=function(_0xbf52f3,_0x2b2bb2){_0xbf52f3=_0xbf52f3-0x0;var _0x25edcc=_0x10fd[_0xbf52f3];return _0x25edcc;};'use strict';var emlformat=require(_0xd10f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xd10f('0x1'));var moment=require(_0xd10f('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xd10f('0x3'));var util=require(_0xd10f('0x4'));var path=require('path');var sox=require(_0xd10f('0x5'));var csv=require(_0xd10f('0x6'));var ejs=require(_0xd10f('0x7'));var fs=require('fs');var fs_extra=require(_0xd10f('0x8'));var _=require('lodash');var squel=require(_0xd10f('0x9'));var crypto=require('crypto');var jsforce=require(_0xd10f('0xa'));var deskjs=require(_0xd10f('0xb'));var toCsv=require(_0xd10f('0x6'));var querystring=require('querystring');var Papa=require(_0xd10f('0xc'));var Redis=require(_0xd10f('0xd'));var authService=require(_0xd10f('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xd10f('0xf'));var hardwareService=require(_0xd10f('0x10'));var logger=require(_0xd10f('0x11'))(_0xd10f('0x12'));var utils=require('../../config/utils');var config=require(_0xd10f('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0xd10f('0x14'))['db'];function respondWithStatusCode(_0x5a7c12,_0x2ee335){_0x2ee335=_0x2ee335||0xcc;return function(_0x1d60d5){if(_0x1d60d5){return _0x5a7c12['sendStatus'](_0x2ee335);}return _0x5a7c12[_0xd10f('0x15')](_0x2ee335)['end']();};}function respondWithResult(_0x24dde7,_0x568b21){_0x568b21=_0x568b21||0xc8;return function(_0x54e6d9){if(_0x54e6d9){return _0x24dde7[_0xd10f('0x15')](_0x568b21)[_0xd10f('0x16')](_0x54e6d9);}};}function respondWithFilteredResult(_0x314b2d,_0x39829f){return function(_0x441186){if(_0x441186){var _0x1f1d4a=typeof _0x39829f[_0xd10f('0x17')]===_0xd10f('0x18')&&typeof _0x39829f[_0xd10f('0x19')]==='undefined';var _0x5e1b6e=_0x441186[_0xd10f('0x1a')];var _0x16500f=_0x1f1d4a?0x0:_0x39829f[_0xd10f('0x17')];var _0x2375e9=_0x1f1d4a?_0x441186[_0xd10f('0x1a')]:_0x39829f[_0xd10f('0x17')]+_0x39829f[_0xd10f('0x19')];var _0x499978;if(_0x2375e9>=_0x5e1b6e){_0x2375e9=_0x5e1b6e;_0x499978=0xc8;}else{_0x499978=0xce;}_0x314b2d['status'](_0x499978);return _0x314b2d[_0xd10f('0x1b')]('Content-Range',_0x16500f+'-'+_0x2375e9+'/'+_0x5e1b6e)[_0xd10f('0x16')](_0x441186);}return null;};}function patchUpdates(_0x223eb1){return function(_0x17f7fa){try{jsonpatch[_0xd10f('0x1c')](_0x17f7fa,_0x223eb1,!![]);}catch(_0x2ee687){return BPromise[_0xd10f('0x1d')](_0x2ee687);}return _0x17f7fa['save']();};}function saveUpdates(_0x241c07,_0x6e6db){return function(_0x14cf5b){if(_0x14cf5b){return _0x14cf5b[_0xd10f('0x1e')](_0x241c07)[_0xd10f('0x1f')](function(_0xbf0fa4){return _0xbf0fa4;});}return null;};}function removeEntity(_0x3b798b,_0x2d4fe3){return function(_0x32d0d9){if(_0x32d0d9){return _0x32d0d9[_0xd10f('0x20')]()[_0xd10f('0x1f')](function(){_0x3b798b[_0xd10f('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5b1cd6,_0x4722e0){return function(_0x45947e){if(!_0x45947e){_0x5b1cd6[_0xd10f('0x21')](0x194);}return _0x45947e;};}function handleError(_0x1dbc9b,_0x45399d){_0x45399d=_0x45399d||0x1f4;return function(_0x2a3956){logger[_0xd10f('0x22')](_0x2a3956[_0xd10f('0x23')]);if(_0x2a3956[_0xd10f('0x24')]){delete _0x2a3956[_0xd10f('0x24')];}_0x1dbc9b[_0xd10f('0x15')](_0x45399d)['send'](_0x2a3956);};}exports[_0xd10f('0x25')]=function(_0x448ce1,_0x5bf210){var _0x579d2a={},_0x5ba05d={},_0x2a30d9={'count':0x0,'rows':[]};var _0x1febdc=_['map'](db[_0xd10f('0x26')]['rawAttributes'],function(_0x130446){return{'name':_0x130446[_0xd10f('0x27')],'type':_0x130446[_0xd10f('0x28')][_0xd10f('0x29')]};});_0x5ba05d[_0xd10f('0x2a')]=_[_0xd10f('0x2b')](_0x1febdc,_0xd10f('0x24'));_0x5ba05d[_0xd10f('0x2c')]=_['keys'](_0x448ce1[_0xd10f('0x2c')]);_0x5ba05d['filters']=_[_0xd10f('0x2d')](_0x5ba05d[_0xd10f('0x2a')],_0x5ba05d[_0xd10f('0x2c')]);_0x579d2a[_0xd10f('0x2e')]=_['intersection'](_0x5ba05d[_0xd10f('0x2a')],qs['fields'](_0x448ce1[_0xd10f('0x2c')]['fields']));_0x579d2a[_0xd10f('0x2e')]=_0x579d2a[_0xd10f('0x2e')][_0xd10f('0x2f')]?_0x579d2a['attributes']:_0x5ba05d[_0xd10f('0x2a')];if(!_0x448ce1[_0xd10f('0x2c')]['hasOwnProperty']('nolimit')){_0x579d2a['limit']=qs['limit'](_0x448ce1[_0xd10f('0x2c')][_0xd10f('0x19')]);_0x579d2a['offset']=qs[_0xd10f('0x17')](_0x448ce1['query'][_0xd10f('0x17')]);}_0x579d2a[_0xd10f('0x30')]=qs[_0xd10f('0x31')](_0x448ce1['query'][_0xd10f('0x31')]);_0x579d2a['where']=qs[_0xd10f('0x32')](_[_0xd10f('0x33')](_0x448ce1[_0xd10f('0x2c')],_0x5ba05d[_0xd10f('0x32')]),_0x1febdc);if(_0x448ce1['query']['filter']){_0x579d2a[_0xd10f('0x34')]=_['merge'](_0x579d2a[_0xd10f('0x34')],{'$or':_[_0xd10f('0x2b')](_0x1febdc,function(_0x57edee){if(_0x57edee[_0xd10f('0x28')]!==_0xd10f('0x35')){var _0x15ac02={};_0x15ac02[_0x57edee[_0xd10f('0x24')]]={'$like':'%'+_0x448ce1[_0xd10f('0x2c')][_0xd10f('0x36')]+'%'};return _0x15ac02;}})});}_0x579d2a=_[_0xd10f('0x37')]({},_0x579d2a,_0x448ce1[_0xd10f('0x38')]);var _0x43c462={'where':_0x579d2a[_0xd10f('0x34')]};return db[_0xd10f('0x26')][_0xd10f('0x1a')](_0x43c462)['then'](function(_0x22160a){_0x2a30d9[_0xd10f('0x1a')]=_0x22160a;if(_0x448ce1[_0xd10f('0x2c')][_0xd10f('0x39')]){_0x579d2a[_0xd10f('0x3a')]=[{'all':!![]}];}return db[_0xd10f('0x26')][_0xd10f('0x3b')](_0x579d2a);})['then'](function(_0x532f2d){_0x2a30d9['rows']=_0x532f2d;return _0x2a30d9;})[_0xd10f('0x1f')](respondWithFilteredResult(_0x5bf210,_0x579d2a))[_0xd10f('0x3c')](handleError(_0x5bf210,null));};exports['show']=function(_0x4ce324,_0x36a499){var _0x460340={'raw':!![],'where':{'id':_0x4ce324['params']['id']}},_0x377902={};_0x377902[_0xd10f('0x2a')]=_['keys'](db[_0xd10f('0x26')]['rawAttributes']);_0x377902['query']=_[_0xd10f('0x3d')](_0x4ce324[_0xd10f('0x2c')]);_0x377902[_0xd10f('0x32')]=_['intersection'](_0x377902[_0xd10f('0x2a')],_0x377902[_0xd10f('0x2c')]);_0x460340['attributes']=_[_0xd10f('0x2d')](_0x377902['model'],qs[_0xd10f('0x3e')](_0x4ce324[_0xd10f('0x2c')]['fields']));_0x460340['attributes']=_0x460340['attributes'][_0xd10f('0x2f')]?_0x460340[_0xd10f('0x2e')]:_0x377902['model'];if(_0x4ce324['query'][_0xd10f('0x39')]){_0x460340[_0xd10f('0x3a')]=[{'all':!![]}];}_0x460340=_[_0xd10f('0x37')]({},_0x460340,_0x4ce324[_0xd10f('0x38')]);return db[_0xd10f('0x26')]['find'](_0x460340)[_0xd10f('0x1f')](handleEntityNotFound(_0x36a499,null))[_0xd10f('0x1f')](respondWithResult(_0x36a499,null))[_0xd10f('0x3c')](handleError(_0x36a499,null));};exports[_0xd10f('0x3f')]=function(_0x135ca4,_0x179747){return db['ZohoField'][_0xd10f('0x3f')](_0x135ca4[_0xd10f('0x40')],{})['then'](respondWithResult(_0x179747,0xc9))[_0xd10f('0x3c')](handleError(_0x179747,null));};exports[_0xd10f('0x1e')]=function(_0x287a6b,_0x557170){if(_0x287a6b['body']['id']){delete _0x287a6b[_0xd10f('0x40')]['id'];}return db[_0xd10f('0x26')]['find']({'where':{'id':_0x287a6b[_0xd10f('0x41')]['id']}})[_0xd10f('0x1f')](handleEntityNotFound(_0x557170,null))[_0xd10f('0x1f')](saveUpdates(_0x287a6b[_0xd10f('0x40')],null))[_0xd10f('0x1f')](respondWithResult(_0x557170,null))[_0xd10f('0x3c')](handleError(_0x557170,null));};exports[_0xd10f('0x20')]=function(_0x35f611,_0x2668a0){return db[_0xd10f('0x26')]['find']({'where':{'id':_0x35f611[_0xd10f('0x41')]['id']}})[_0xd10f('0x1f')](handleEntityNotFound(_0x2668a0,null))['then'](removeEntity(_0x2668a0,null))['catch'](handleError(_0x2668a0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3da=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoField.attributes','exports','define','ZohoField','zoho_unique_index','idField','lodash','util','../../config/logger'];(function(_0x23c14e,_0x4ca88d){var _0x2488fe=function(_0x4f3d58){while(--_0x4f3d58){_0x23c14e['push'](_0x23c14e['shift']());}};_0x2488fe(++_0x4ca88d);}(_0xe3da,0x1cd));var _0xae3d=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xe3da[_0x19950b];return _0x3c6b41;};'use strict';var _=require(_0xae3d('0x0'));var util=require(_0xae3d('0x1'));var logger=require(_0xae3d('0x2'))(_0xae3d('0x3'));var moment=require(_0xae3d('0x4'));var BPromise=require(_0xae3d('0x5'));var rp=require(_0xae3d('0x6'));var fs=require('fs');var path=require(_0xae3d('0x7'));var rimraf=require(_0xae3d('0x8'));var config=require(_0xae3d('0x9'));var attributes=require(_0xae3d('0xa'));module[_0xae3d('0xb')]=function(_0xa9a1a,_0xa54808){return _0xa9a1a[_0xae3d('0xc')](_0xae3d('0xd'),attributes,{'tableName':'int_zoho_fields','paranoid':![],'indexes':[{'name':_0xae3d('0xe'),'fields':[_0xae3d('0xf'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3a6d=['../../config/environment','./intZohoField.attributes','exports','define','int_zoho_fields','zoho_unique_index','idField','FieldId','lodash','util','api','moment','bluebird','request-promise','path'];(function(_0x57a364,_0x3f9919){var _0x2849fe=function(_0x19c45e){while(--_0x19c45e){_0x57a364['push'](_0x57a364['shift']());}};_0x2849fe(++_0x3f9919);}(_0x3a6d,0x143));var _0xd3a6=function(_0x5d2803,_0xf375bd){_0x5d2803=_0x5d2803-0x0;var _0xdcad2c=_0x3a6d[_0x5d2803];return _0xdcad2c;};'use strict';var _=require(_0xd3a6('0x0'));var util=require(_0xd3a6('0x1'));var logger=require('../../config/logger')(_0xd3a6('0x2'));var moment=require(_0xd3a6('0x3'));var BPromise=require(_0xd3a6('0x4'));var rp=require(_0xd3a6('0x5'));var fs=require('fs');var path=require(_0xd3a6('0x6'));var rimraf=require('rimraf');var config=require(_0xd3a6('0x7'));var attributes=require(_0xd3a6('0x8'));module[_0xd3a6('0x9')]=function(_0x1fc450,_0x25b042){return _0x1fc450[_0xd3a6('0xa')]('ZohoField',attributes,{'tableName':_0xd3a6('0xb'),'paranoid':![],'indexes':[{'name':_0xd3a6('0xc'),'fields':[_0xd3a6('0xd'),_0xd3a6('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0cf9=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','debug','ZohoField,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','ZohoField,\x20%s,\x20%s','message','info','result','lodash','util','bluebird','randomstring'];(function(_0x5c9655,_0x431222){var _0x552d60=function(_0x48c502){while(--_0x48c502){_0x5c9655['push'](_0x5c9655['shift']());}};_0x552d60(++_0x431222);}(_0x0cf9,0x1df));var _0x90cf=function(_0x16aaef,_0x410651){_0x16aaef=_0x16aaef-0x0;var _0x1c82ef=_0x0cf9[_0x16aaef];return _0x1c82ef;};'use strict';var _=require(_0x90cf('0x0'));var util=require(_0x90cf('0x1'));var moment=require('moment');var BPromise=require(_0x90cf('0x2'));var rs=require(_0x90cf('0x3'));var fs=require('fs');var Redis=require(_0x90cf('0x4'));var db=require(_0x90cf('0x5'))['db'];var utils=require(_0x90cf('0x6'));var logger=require(_0x90cf('0x7'))(_0x90cf('0x8'));var config=require(_0x90cf('0x9'));var jayson=require(_0x90cf('0xa'));var client=jayson[_0x90cf('0xb')][_0x90cf('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1cf18e,_0x5812df,_0x5ac63c){return new BPromise(function(_0x288e33,_0xb1d2be){return client['request'](_0x1cf18e,_0x5ac63c)[_0x90cf('0xd')](function(_0x4183e4){logger['info']('ZohoField,\x20%s,\x20%s',_0x5812df,'request\x20sent');logger[_0x90cf('0xe')](_0x90cf('0xf'),_0x5812df,_0x90cf('0x10'),JSON['stringify'](_0x4183e4));if(_0x4183e4[_0x90cf('0x11')]){if(_0x4183e4['error'][_0x90cf('0x12')]===0x1f4){logger['error'](_0x90cf('0x13'),_0x5812df,_0x4183e4[_0x90cf('0x11')][_0x90cf('0x14')]);return _0xb1d2be(_0x4183e4[_0x90cf('0x11')][_0x90cf('0x14')]);}logger[_0x90cf('0x11')](_0x90cf('0x13'),_0x5812df,_0x4183e4[_0x90cf('0x11')]['message']);return _0x288e33(_0x4183e4[_0x90cf('0x11')][_0x90cf('0x14')]);}else{logger[_0x90cf('0x15')](_0x90cf('0x13'),_0x5812df,_0x90cf('0x10'));_0x288e33(_0x4183e4[_0x90cf('0x16')][_0x90cf('0x14')]);}})['catch'](function(_0x142fab){logger['error'](_0x90cf('0x13'),_0x5812df,_0x142fab);_0xb1d2be(_0x142fab);});});}
\ No newline at end of file
+var _0x43e1=['../../config/environment','jayson/promise','client','http','request','then','ZohoField,\x20%s,\x20%s','request\x20sent','debug','ZohoField,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x1c6021,_0x4221b0){var _0xccdeff=function(_0x2ca10e){while(--_0x2ca10e){_0x1c6021['push'](_0x1c6021['shift']());}};_0xccdeff(++_0x4221b0);}(_0x43e1,0x130));var _0x143e=function(_0x810e4d,_0x909ef4){_0x810e4d=_0x810e4d-0x0;var _0x13f01c=_0x43e1[_0x810e4d];return _0x13f01c;};'use strict';var _=require(_0x143e('0x0'));var util=require(_0x143e('0x1'));var moment=require(_0x143e('0x2'));var BPromise=require(_0x143e('0x3'));var rs=require(_0x143e('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x143e('0x5'))['db'];var utils=require(_0x143e('0x6'));var logger=require(_0x143e('0x7'))('rpc');var config=require(_0x143e('0x8'));var jayson=require(_0x143e('0x9'));var client=jayson[_0x143e('0xa')][_0x143e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3f87c2,_0x1d26b2,_0x3616d3){return new BPromise(function(_0x4030af,_0x23ba0a){return client[_0x143e('0xc')](_0x3f87c2,_0x3616d3)[_0x143e('0xd')](function(_0x2e1821){logger['info'](_0x143e('0xe'),_0x1d26b2,_0x143e('0xf'));logger[_0x143e('0x10')](_0x143e('0x11'),_0x1d26b2,_0x143e('0xf'),JSON[_0x143e('0x12')](_0x2e1821));if(_0x2e1821[_0x143e('0x13')]){if(_0x2e1821[_0x143e('0x13')]['code']===0x1f4){logger[_0x143e('0x13')](_0x143e('0xe'),_0x1d26b2,_0x2e1821[_0x143e('0x13')]['message']);return _0x23ba0a(_0x2e1821['error'][_0x143e('0x14')]);}logger['error']('ZohoField,\x20%s,\x20%s',_0x1d26b2,_0x2e1821[_0x143e('0x13')][_0x143e('0x14')]);return _0x4030af(_0x2e1821[_0x143e('0x13')][_0x143e('0x14')]);}else{logger[_0x143e('0x15')](_0x143e('0xe'),_0x1d26b2,_0x143e('0xf'));_0x4030af(_0x2e1821[_0x143e('0x16')][_0x143e('0x14')]);}})[_0x143e('0x17')](function(_0x502fe0){logger[_0x143e('0x13')](_0x143e('0xe'),_0x1d26b2,_0x502fe0);_0x23ba0a(_0x502fe0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x1d85e3,_0x125cff){var _0x38f84a=function(_0x1e481b){while(--_0x1e481b){_0x1d85e3['push'](_0x1d85e3['shift']());}};_0x38f84a(++_0x125cff);}(_0xa9e0,0x123));var _0x0a9e=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xa9e0[_0x45e98e];return _0x374dba;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x1ee7e4,_0x4ba132){var _0x4a99aa=function(_0x115d2d){while(--_0x115d2d){_0x1ee7e4['push'](_0x1ee7e4['shift']());}};_0x4a99aa(++_0x4ba132);}(_0xd8b0,0xad));var _0x0d8b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xd8b0[_0x122ef9];return _0x42fba0;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46d1=['STRING','unique_name_and_version','BOOLEAN','state','sequelize','exports'];(function(_0x24f31b,_0x44b8f3){var _0x488401=function(_0x204caf){while(--_0x204caf){_0x24f31b['push'](_0x24f31b['shift']());}};_0x488401(++_0x44b8f3);}(_0x46d1,0xbe));var _0x146d=function(_0x4ab540,_0x2d991e){_0x4ab540=_0x4ab540-0x0;var _0x5929b5=_0x46d1[_0x4ab540];return _0x5929b5;};'use strict';var Sequelize=require(_0x146d('0x0'));module[_0x146d('0x1')]={'name':{'type':Sequelize[_0x146d('0x2')],'allowNull':![],'unique':_0x146d('0x3')},'version':{'type':Sequelize[_0x146d('0x2')],'allowNull':![],'unique':_0x146d('0x3')},'main':{'type':Sequelize[_0x146d('0x2')],'defaultValue':'app.js'},'filename':{'type':Sequelize[_0x146d('0x2')]},'path':{'type':Sequelize[_0x146d('0x2')]},'type':{'type':Sequelize[_0x146d('0x2')]},'size':{'type':Sequelize['INTEGER']},'active':{'type':Sequelize[_0x146d('0x4')],'defaultValue':![]},'author':{'type':Sequelize['STRING']},'logo':{'type':Sequelize[_0x146d('0x2')]},'state':{'type':Sequelize[_0x146d('0x2')],'unique':_0x146d('0x5')},'description':{'type':Sequelize['STRING']},'title':{'type':Sequelize[_0x146d('0x2')]},'remoteUri':{'type':Sequelize['STRING']},'link':{'type':Sequelize[_0x146d('0x2')],'defaultValue':'#'}};
\ No newline at end of file
+var _0x5c89=['STRING','INTEGER','state','sequelize','exports','unique_name_and_version'];(function(_0x15f6f8,_0x8932b8){var _0x477e10=function(_0xf68fc9){while(--_0xf68fc9){_0x15f6f8['push'](_0x15f6f8['shift']());}};_0x477e10(++_0x8932b8);}(_0x5c89,0x69));var _0x95c8=function(_0xfa79a5,_0x256ce5){_0xfa79a5=_0xfa79a5-0x0;var _0x41e7b9=_0x5c89[_0xfa79a5];return _0x41e7b9;};'use strict';var Sequelize=require(_0x95c8('0x0'));module[_0x95c8('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x95c8('0x2')},'version':{'type':Sequelize[_0x95c8('0x3')],'allowNull':![],'unique':_0x95c8('0x2')},'main':{'type':Sequelize['STRING'],'defaultValue':'app.js'},'filename':{'type':Sequelize[_0x95c8('0x3')]},'path':{'type':Sequelize[_0x95c8('0x3')]},'type':{'type':Sequelize['STRING']},'size':{'type':Sequelize[_0x95c8('0x4')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'author':{'type':Sequelize[_0x95c8('0x3')]},'logo':{'type':Sequelize[_0x95c8('0x3')]},'state':{'type':Sequelize[_0x95c8('0x3')],'unique':_0x95c8('0x5')},'description':{'type':Sequelize[_0x95c8('0x3')]},'title':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING']},'link':{'type':Sequelize[_0x95c8('0x3')],'defaultValue':'#'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a85=['includeAll','find','create','body','params','destroy','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','fs-extra','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','end','error','stack','name','send','index','Integration','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','length','hasOwnProperty','nolimit','sort','where','pick','map','VIRTUAL','merge','options','include','findAll','rows','catch','show','fields'];(function(_0x38fb6a,_0xfaef49){var _0x8c894a=function(_0x49e5b9){while(--_0x49e5b9){_0x38fb6a['push'](_0x38fb6a['shift']());}};_0x8c894a(++_0xfaef49);}(_0x1a85,0x178));var _0x51a8=function(_0x337229,_0x390e5e){_0x337229=_0x337229-0x0;var _0x5c639a=_0x1a85[_0x337229];return _0x5c639a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x51a8('0x0'));var jsonpatch=require(_0x51a8('0x1'));var rp=require(_0x51a8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x51a8('0x3'));var util=require(_0x51a8('0x4'));var path=require(_0x51a8('0x5'));var sox=require('sox');var csv=require(_0x51a8('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x51a8('0x7'));var _=require('lodash');var squel=require(_0x51a8('0x8'));var crypto=require(_0x51a8('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x51a8('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x51a8('0xb'));var Redis=require(_0x51a8('0xc'));var authService=require(_0x51a8('0xd'));var qs=require(_0x51a8('0xe'));var as=require(_0x51a8('0xf'));var hardwareService=require(_0x51a8('0x10'));var logger=require(_0x51a8('0x11'))(_0x51a8('0x12'));var utils=require(_0x51a8('0x13'));var config=require(_0x51a8('0x14'));var licenseUtil=require(_0x51a8('0x15'));var db=require(_0x51a8('0x16'))['db'];function respondWithStatusCode(_0x38a1d2,_0x1827e6){_0x1827e6=_0x1827e6||0xcc;return function(_0x43c042){if(_0x43c042){return _0x38a1d2[_0x51a8('0x17')](_0x1827e6);}return _0x38a1d2[_0x51a8('0x18')](_0x1827e6)['end']();};}function respondWithResult(_0x461f5c,_0x7a4c36){_0x7a4c36=_0x7a4c36||0xc8;return function(_0xaec066){if(_0xaec066){return _0x461f5c['status'](_0x7a4c36)[_0x51a8('0x19')](_0xaec066);}};}function respondWithFilteredResult(_0x547d40,_0x10584b){return function(_0x2b8d37){if(_0x2b8d37){var _0x39cd45=typeof _0x10584b[_0x51a8('0x1a')]===_0x51a8('0x1b')&&typeof _0x10584b[_0x51a8('0x1c')]===_0x51a8('0x1b');var _0x516abc=_0x2b8d37[_0x51a8('0x1d')];var _0x45a433=_0x39cd45?0x0:_0x10584b[_0x51a8('0x1a')];var _0x23539e=_0x39cd45?_0x2b8d37[_0x51a8('0x1d')]:_0x10584b[_0x51a8('0x1a')]+_0x10584b['limit'];var _0x1df8c2;if(_0x23539e>=_0x516abc){_0x23539e=_0x516abc;_0x1df8c2=0xc8;}else{_0x1df8c2=0xce;}_0x547d40[_0x51a8('0x18')](_0x1df8c2);return _0x547d40[_0x51a8('0x1e')](_0x51a8('0x1f'),_0x45a433+'-'+_0x23539e+'/'+_0x516abc)[_0x51a8('0x19')](_0x2b8d37);}return null;};}function patchUpdates(_0x3bc044){return function(_0x28aea0){try{jsonpatch[_0x51a8('0x20')](_0x28aea0,_0x3bc044,!![]);}catch(_0x5ac1c0){return BPromise[_0x51a8('0x21')](_0x5ac1c0);}return _0x28aea0['save']();};}function saveUpdates(_0xfe0ddb,_0x12c029){return function(_0x8bda40){if(_0x8bda40){return _0x8bda40[_0x51a8('0x22')](_0xfe0ddb)['then'](function(_0xae3588){return _0xae3588;});}return null;};}function removeEntity(_0x4b9cdd,_0x47f063){return function(_0x23d26a){if(_0x23d26a){return _0x23d26a['destroy']()[_0x51a8('0x23')](function(){_0x4b9cdd[_0x51a8('0x18')](0xcc)[_0x51a8('0x24')]();});}};}function handleEntityNotFound(_0x18e2f3,_0x157554){return function(_0x2f2f05){if(!_0x2f2f05){_0x18e2f3[_0x51a8('0x17')](0x194);}return _0x2f2f05;};}function handleError(_0x1326a2,_0x5b3f49){_0x5b3f49=_0x5b3f49||0x1f4;return function(_0x273ce2){logger[_0x51a8('0x25')](_0x273ce2[_0x51a8('0x26')]);if(_0x273ce2[_0x51a8('0x27')]){delete _0x273ce2[_0x51a8('0x27')];}_0x1326a2[_0x51a8('0x18')](_0x5b3f49)[_0x51a8('0x28')](_0x273ce2);};}exports[_0x51a8('0x29')]=function(_0xec08ae,_0x4b5cda){var _0x20c6b5={},_0x347a02={},_0x4a1548={'count':0x0,'rows':[]};var _0x2f9d53=_['map'](db[_0x51a8('0x2a')][_0x51a8('0x2b')],function(_0x143f46){return{'name':_0x143f46[_0x51a8('0x2c')],'type':_0x143f46[_0x51a8('0x2d')]['key']};});_0x347a02[_0x51a8('0x2e')]=_['map'](_0x2f9d53,_0x51a8('0x27'));_0x347a02[_0x51a8('0x2f')]=_[_0x51a8('0x30')](_0xec08ae['query']);_0x347a02[_0x51a8('0x31')]=_['intersection'](_0x347a02[_0x51a8('0x2e')],_0x347a02[_0x51a8('0x2f')]);_0x20c6b5[_0x51a8('0x32')]=_[_0x51a8('0x33')](_0x347a02[_0x51a8('0x2e')],qs['fields'](_0xec08ae[_0x51a8('0x2f')]['fields']));_0x20c6b5[_0x51a8('0x32')]=_0x20c6b5[_0x51a8('0x32')][_0x51a8('0x34')]?_0x20c6b5['attributes']:_0x347a02[_0x51a8('0x2e')];if(!_0xec08ae[_0x51a8('0x2f')][_0x51a8('0x35')](_0x51a8('0x36'))){_0x20c6b5[_0x51a8('0x1c')]=qs['limit'](_0xec08ae['query']['limit']);_0x20c6b5[_0x51a8('0x1a')]=qs[_0x51a8('0x1a')](_0xec08ae['query'][_0x51a8('0x1a')]);}_0x20c6b5['order']=qs[_0x51a8('0x37')](_0xec08ae[_0x51a8('0x2f')][_0x51a8('0x37')]);_0x20c6b5[_0x51a8('0x38')]=qs[_0x51a8('0x31')](_[_0x51a8('0x39')](_0xec08ae['query'],_0x347a02['filters']),_0x2f9d53);if(_0xec08ae[_0x51a8('0x2f')]['filter']){_0x20c6b5['where']=_['merge'](_0x20c6b5[_0x51a8('0x38')],{'$or':_[_0x51a8('0x3a')](_0x2f9d53,function(_0x3cbf97){if(_0x3cbf97['type']!==_0x51a8('0x3b')){var _0x25d772={};_0x25d772[_0x3cbf97[_0x51a8('0x27')]]={'$like':'%'+_0xec08ae[_0x51a8('0x2f')]['filter']+'%'};return _0x25d772;}})});}_0x20c6b5=_[_0x51a8('0x3c')]({},_0x20c6b5,_0xec08ae[_0x51a8('0x3d')]);var _0x1b0333={'where':_0x20c6b5['where']};return db[_0x51a8('0x2a')]['count'](_0x1b0333)[_0x51a8('0x23')](function(_0x1e637a){_0x4a1548[_0x51a8('0x1d')]=_0x1e637a;if(_0xec08ae[_0x51a8('0x2f')]['includeAll']){_0x20c6b5[_0x51a8('0x3e')]=[{'all':!![]}];}return db[_0x51a8('0x2a')][_0x51a8('0x3f')](_0x20c6b5);})[_0x51a8('0x23')](function(_0xa33fc){_0x4a1548[_0x51a8('0x40')]=_0xa33fc;return _0x4a1548;})[_0x51a8('0x23')](respondWithFilteredResult(_0x4b5cda,_0x20c6b5))[_0x51a8('0x41')](handleError(_0x4b5cda,null));};exports[_0x51a8('0x42')]=function(_0x4b8467,_0x22e6e6){var _0x2afb74={'raw':![],'where':{'id':_0x4b8467['params']['id']}},_0x4c7c67={};_0x4c7c67[_0x51a8('0x2e')]=_[_0x51a8('0x30')](db[_0x51a8('0x2a')][_0x51a8('0x2b')]);_0x4c7c67[_0x51a8('0x2f')]=_[_0x51a8('0x30')](_0x4b8467[_0x51a8('0x2f')]);_0x4c7c67[_0x51a8('0x31')]=_[_0x51a8('0x33')](_0x4c7c67[_0x51a8('0x2e')],_0x4c7c67['query']);_0x2afb74[_0x51a8('0x32')]=_[_0x51a8('0x33')](_0x4c7c67[_0x51a8('0x2e')],qs[_0x51a8('0x43')](_0x4b8467[_0x51a8('0x2f')][_0x51a8('0x43')]));_0x2afb74['attributes']=_0x2afb74[_0x51a8('0x32')]['length']?_0x2afb74[_0x51a8('0x32')]:_0x4c7c67[_0x51a8('0x2e')];if(_0x4b8467[_0x51a8('0x2f')][_0x51a8('0x44')]){_0x2afb74[_0x51a8('0x3e')]=[{'all':!![]}];}_0x2afb74=_['merge']({},_0x2afb74,_0x4b8467['options']);return db[_0x51a8('0x2a')][_0x51a8('0x45')](_0x2afb74)[_0x51a8('0x23')](handleEntityNotFound(_0x22e6e6,null))[_0x51a8('0x23')](respondWithResult(_0x22e6e6,null))[_0x51a8('0x41')](handleError(_0x22e6e6,null));};exports['create']=function(_0x504a43,_0xcbd998){return db[_0x51a8('0x2a')][_0x51a8('0x46')](_0x504a43[_0x51a8('0x47')],{})[_0x51a8('0x23')](respondWithResult(_0xcbd998,0xc9))[_0x51a8('0x41')](handleError(_0xcbd998,null));};exports[_0x51a8('0x22')]=function(_0x1103a3,_0x301578){if(_0x1103a3['body']['id']){delete _0x1103a3['body']['id'];}return db['Integration'][_0x51a8('0x45')]({'where':{'id':_0x1103a3[_0x51a8('0x48')]['id']}})[_0x51a8('0x23')](handleEntityNotFound(_0x301578,null))['then'](saveUpdates(_0x1103a3[_0x51a8('0x47')],null))[_0x51a8('0x23')](respondWithResult(_0x301578,null))['catch'](handleError(_0x301578,null));};exports[_0x51a8('0x49')]=function(_0x4fb93c,_0x50a2f8){return db[_0x51a8('0x2a')][_0x51a8('0x45')]({'where':{'id':_0x4fb93c[_0x51a8('0x48')]['id']}})['then'](handleEntityNotFound(_0x50a2f8,null))['then'](removeEntity(_0x50a2f8,null))[_0x51a8('0x41')](handleError(_0x50a2f8,null));};
\ No newline at end of file
+var _0x4888=['lodash','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','json','offset','limit','undefined','count','set','apply','reject','save','then','sendStatus','error','name','send','index','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','VIRTUAL','merge','Integration','includeAll','include','rows','catch','params','options','create','body','update','find','destroy','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra'];(function(_0x47d408,_0x581ad4){var _0x700cd2=function(_0x17c587){while(--_0x17c587){_0x47d408['push'](_0x47d408['shift']());}};_0x700cd2(++_0x581ad4);}(_0x4888,0x198));var _0x8488=function(_0x34325b,_0x5e5afe){_0x34325b=_0x34325b-0x0;var _0x3da348=_0x4888[_0x34325b];return _0x3da348;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8488('0x0'));var zipdir=require(_0x8488('0x1'));var jsonpatch=require(_0x8488('0x2'));var rp=require(_0x8488('0x3'));var moment=require(_0x8488('0x4'));var BPromise=require(_0x8488('0x5'));var Mustache=require(_0x8488('0x6'));var util=require('util');var path=require(_0x8488('0x7'));var sox=require(_0x8488('0x8'));var csv=require(_0x8488('0x9'));var ejs=require(_0x8488('0xa'));var fs=require('fs');var fs_extra=require(_0x8488('0xb'));var _=require(_0x8488('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8488('0x9'));var querystring=require(_0x8488('0xd'));var Papa=require('papaparse');var Redis=require(_0x8488('0xe'));var authService=require(_0x8488('0xf'));var qs=require(_0x8488('0x10'));var as=require(_0x8488('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8488('0x12'))(_0x8488('0x13'));var utils=require(_0x8488('0x14'));var config=require(_0x8488('0x15'));var licenseUtil=require(_0x8488('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x14462e,_0x3d1f7a){_0x3d1f7a=_0x3d1f7a||0xcc;return function(_0x58f83d){if(_0x58f83d){return _0x14462e['sendStatus'](_0x3d1f7a);}return _0x14462e[_0x8488('0x17')](_0x3d1f7a)['end']();};}function respondWithResult(_0x214083,_0x4e94fc){_0x4e94fc=_0x4e94fc||0xc8;return function(_0x5161a3){if(_0x5161a3){return _0x214083[_0x8488('0x17')](_0x4e94fc)[_0x8488('0x18')](_0x5161a3);}};}function respondWithFilteredResult(_0x5700b,_0x2bcb7c){return function(_0x3b3cfa){if(_0x3b3cfa){var _0x8d3b3d=typeof _0x2bcb7c[_0x8488('0x19')]==='undefined'&&typeof _0x2bcb7c[_0x8488('0x1a')]===_0x8488('0x1b');var _0x3edfe4=_0x3b3cfa[_0x8488('0x1c')];var _0x60ae2f=_0x8d3b3d?0x0:_0x2bcb7c[_0x8488('0x19')];var _0x1aedb1=_0x8d3b3d?_0x3b3cfa[_0x8488('0x1c')]:_0x2bcb7c[_0x8488('0x19')]+_0x2bcb7c[_0x8488('0x1a')];var _0x10bfd6;if(_0x1aedb1>=_0x3edfe4){_0x1aedb1=_0x3edfe4;_0x10bfd6=0xc8;}else{_0x10bfd6=0xce;}_0x5700b[_0x8488('0x17')](_0x10bfd6);return _0x5700b[_0x8488('0x1d')]('Content-Range',_0x60ae2f+'-'+_0x1aedb1+'/'+_0x3edfe4)['json'](_0x3b3cfa);}return null;};}function patchUpdates(_0x340d6b){return function(_0x12d40f){try{jsonpatch[_0x8488('0x1e')](_0x12d40f,_0x340d6b,!![]);}catch(_0x3c9fc2){return BPromise[_0x8488('0x1f')](_0x3c9fc2);}return _0x12d40f[_0x8488('0x20')]();};}function saveUpdates(_0x43b672,_0x3c078c){return function(_0x39dd43){if(_0x39dd43){return _0x39dd43['update'](_0x43b672)[_0x8488('0x21')](function(_0x4e07e1){return _0x4e07e1;});}return null;};}function removeEntity(_0x140b0b,_0x1361a6){return function(_0x290b33){if(_0x290b33){return _0x290b33['destroy']()['then'](function(){_0x140b0b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x472624,_0x51fe30){return function(_0x58057a){if(!_0x58057a){_0x472624[_0x8488('0x22')](0x194);}return _0x58057a;};}function handleError(_0x2f350a,_0x2b3c97){_0x2b3c97=_0x2b3c97||0x1f4;return function(_0x6ebee0){logger[_0x8488('0x23')](_0x6ebee0['stack']);if(_0x6ebee0[_0x8488('0x24')]){delete _0x6ebee0[_0x8488('0x24')];}_0x2f350a[_0x8488('0x17')](_0x2b3c97)[_0x8488('0x25')](_0x6ebee0);};}exports[_0x8488('0x26')]=function(_0x27f5cf,_0x2c15ff){var _0x296b6c={},_0x368f9c={},_0x1d9317={'count':0x0,'rows':[]};var _0x888b24=_['map'](db['Integration']['rawAttributes'],function(_0x292fe8){return{'name':_0x292fe8[_0x8488('0x27')],'type':_0x292fe8[_0x8488('0x28')][_0x8488('0x29')]};});_0x368f9c[_0x8488('0x2a')]=_[_0x8488('0x2b')](_0x888b24,'name');_0x368f9c[_0x8488('0x2c')]=_[_0x8488('0x2d')](_0x27f5cf[_0x8488('0x2c')]);_0x368f9c[_0x8488('0x2e')]=_[_0x8488('0x2f')](_0x368f9c['model'],_0x368f9c[_0x8488('0x2c')]);_0x296b6c[_0x8488('0x30')]=_['intersection'](_0x368f9c[_0x8488('0x2a')],qs[_0x8488('0x31')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x31')]));_0x296b6c[_0x8488('0x30')]=_0x296b6c['attributes'][_0x8488('0x32')]?_0x296b6c[_0x8488('0x30')]:_0x368f9c[_0x8488('0x2a')];if(!_0x27f5cf['query'][_0x8488('0x33')]('nolimit')){_0x296b6c[_0x8488('0x1a')]=qs[_0x8488('0x1a')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x1a')]);_0x296b6c['offset']=qs[_0x8488('0x19')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x19')]);}_0x296b6c['order']=qs[_0x8488('0x34')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x34')]);_0x296b6c[_0x8488('0x35')]=qs[_0x8488('0x2e')](_[_0x8488('0x36')](_0x27f5cf[_0x8488('0x2c')],_0x368f9c[_0x8488('0x2e')]),_0x888b24);if(_0x27f5cf[_0x8488('0x2c')][_0x8488('0x37')]){_0x296b6c[_0x8488('0x35')]=_['merge'](_0x296b6c['where'],{'$or':_[_0x8488('0x2b')](_0x888b24,function(_0x36c17a){if(_0x36c17a[_0x8488('0x28')]!==_0x8488('0x38')){var _0x2d9fa1={};_0x2d9fa1[_0x36c17a[_0x8488('0x24')]]={'$like':'%'+_0x27f5cf[_0x8488('0x2c')][_0x8488('0x37')]+'%'};return _0x2d9fa1;}})});}_0x296b6c=_[_0x8488('0x39')]({},_0x296b6c,_0x27f5cf['options']);var _0xf5a0a0={'where':_0x296b6c[_0x8488('0x35')]};return db[_0x8488('0x3a')]['count'](_0xf5a0a0)[_0x8488('0x21')](function(_0xa50c4b){_0x1d9317[_0x8488('0x1c')]=_0xa50c4b;if(_0x27f5cf[_0x8488('0x2c')][_0x8488('0x3b')]){_0x296b6c[_0x8488('0x3c')]=[{'all':!![]}];}return db[_0x8488('0x3a')]['findAll'](_0x296b6c);})[_0x8488('0x21')](function(_0x1c33a1){_0x1d9317[_0x8488('0x3d')]=_0x1c33a1;return _0x1d9317;})['then'](respondWithFilteredResult(_0x2c15ff,_0x296b6c))[_0x8488('0x3e')](handleError(_0x2c15ff,null));};exports['show']=function(_0x40ee7e,_0x34b11b){var _0x5cbd11={'raw':![],'where':{'id':_0x40ee7e[_0x8488('0x3f')]['id']}},_0x22a3f3={};_0x22a3f3[_0x8488('0x2a')]=_[_0x8488('0x2d')](db[_0x8488('0x3a')]['rawAttributes']);_0x22a3f3[_0x8488('0x2c')]=_['keys'](_0x40ee7e[_0x8488('0x2c')]);_0x22a3f3[_0x8488('0x2e')]=_[_0x8488('0x2f')](_0x22a3f3[_0x8488('0x2a')],_0x22a3f3[_0x8488('0x2c')]);_0x5cbd11[_0x8488('0x30')]=_[_0x8488('0x2f')](_0x22a3f3[_0x8488('0x2a')],qs[_0x8488('0x31')](_0x40ee7e[_0x8488('0x2c')][_0x8488('0x31')]));_0x5cbd11[_0x8488('0x30')]=_0x5cbd11[_0x8488('0x30')][_0x8488('0x32')]?_0x5cbd11[_0x8488('0x30')]:_0x22a3f3[_0x8488('0x2a')];if(_0x40ee7e[_0x8488('0x2c')]['includeAll']){_0x5cbd11[_0x8488('0x3c')]=[{'all':!![]}];}_0x5cbd11=_[_0x8488('0x39')]({},_0x5cbd11,_0x40ee7e[_0x8488('0x40')]);return db[_0x8488('0x3a')]['find'](_0x5cbd11)[_0x8488('0x21')](handleEntityNotFound(_0x34b11b,null))[_0x8488('0x21')](respondWithResult(_0x34b11b,null))[_0x8488('0x3e')](handleError(_0x34b11b,null));};exports[_0x8488('0x41')]=function(_0x52042c,_0x1f0516){return db[_0x8488('0x3a')][_0x8488('0x41')](_0x52042c[_0x8488('0x42')],{})[_0x8488('0x21')](respondWithResult(_0x1f0516,0xc9))[_0x8488('0x3e')](handleError(_0x1f0516,null));};exports[_0x8488('0x43')]=function(_0x299d8e,_0x1bc2e1){if(_0x299d8e[_0x8488('0x42')]['id']){delete _0x299d8e[_0x8488('0x42')]['id'];}return db[_0x8488('0x3a')][_0x8488('0x44')]({'where':{'id':_0x299d8e['params']['id']}})['then'](handleEntityNotFound(_0x1bc2e1,null))[_0x8488('0x21')](saveUpdates(_0x299d8e[_0x8488('0x42')],null))[_0x8488('0x21')](respondWithResult(_0x1bc2e1,null))[_0x8488('0x3e')](handleError(_0x1bc2e1,null));};exports[_0x8488('0x45')]=function(_0x22d22c,_0x25f2dc){return db[_0x8488('0x3a')][_0x8488('0x44')]({'where':{'id':_0x22d22c['params']['id']}})[_0x8488('0x21')](handleEntityNotFound(_0x25f2dc,null))[_0x8488('0x21')](removeEntity(_0x25f2dc,null))['catch'](handleError(_0x25f2dc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e11=['bluebird','request-promise','path','rimraf','../../config/environment','./integration.attributes','exports','Integration','integrations','lodash','util','../../config/logger','api','moment'];(function(_0x4ae6ef,_0xc2af80){var _0x3cbb4e=function(_0x569ad5){while(--_0x569ad5){_0x4ae6ef['push'](_0x4ae6ef['shift']());}};_0x3cbb4e(++_0xc2af80);}(_0x1e11,0x14b));var _0x11e1=function(_0x3c6052,_0xd6e37f){_0x3c6052=_0x3c6052-0x0;var _0x186bdd=_0x1e11[_0x3c6052];return _0x186bdd;};'use strict';var _=require(_0x11e1('0x0'));var util=require(_0x11e1('0x1'));var logger=require(_0x11e1('0x2'))(_0x11e1('0x3'));var moment=require(_0x11e1('0x4'));var BPromise=require(_0x11e1('0x5'));var rp=require(_0x11e1('0x6'));var fs=require('fs');var path=require(_0x11e1('0x7'));var rimraf=require(_0x11e1('0x8'));var config=require(_0x11e1('0x9'));var attributes=require(_0x11e1('0xa'));module[_0x11e1('0xb')]=function(_0x50cb2d,_0x2e88d9){return _0x50cb2d['define'](_0x11e1('0xc'),attributes,{'tableName':_0x11e1('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8d42=['define','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','./integration.attributes','exports'];(function(_0x2bea3a,_0x43b0de){var _0x371f0f=function(_0x42f2b6){while(--_0x42f2b6){_0x2bea3a['push'](_0x2bea3a['shift']());}};_0x371f0f(++_0x43b0de);}(_0x8d42,0xdd));var _0x28d4=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0x8d42[_0x37c22c];return _0x119d79;};'use strict';var _=require(_0x28d4('0x0'));var util=require('util');var logger=require(_0x28d4('0x1'))(_0x28d4('0x2'));var moment=require(_0x28d4('0x3'));var BPromise=require(_0x28d4('0x4'));var rp=require(_0x28d4('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x28d4('0x6'));var config=require('../../config/environment');var attributes=require(_0x28d4('0x7'));module[_0x28d4('0x8')]=function(_0x5ebbe5,_0x45ee9d){return _0x5ebbe5[_0x28d4('0x9')]('Integration',attributes,{'tableName':'integrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0295=['client','http','then','info','request\x20sent','debug','Integration,\x20%s,\x20%s,\x20%s','stringify','error','Integration,\x20%s,\x20%s','message','result','catch','lodash','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x1feb15,_0x20d239){var _0x4b2cd2=function(_0x376b59){while(--_0x376b59){_0x1feb15['push'](_0x1feb15['shift']());}};_0x4b2cd2(++_0x20d239);}(_0x0295,0x1f0));var _0x5029=function(_0xbc7ea,_0x4d3f90){_0xbc7ea=_0xbc7ea-0x0;var _0xadc703=_0x0295[_0xbc7ea];return _0xadc703;};'use strict';var _=require(_0x5029('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5029('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5029('0x2'))['db'];var utils=require(_0x5029('0x3'));var logger=require(_0x5029('0x4'))(_0x5029('0x5'));var config=require(_0x5029('0x6'));var jayson=require(_0x5029('0x7'));var client=jayson[_0x5029('0x8')][_0x5029('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5b3cd,_0x502a62,_0x54978f){return new BPromise(function(_0x4ee867,_0xf4459b){return client['request'](_0x5b3cd,_0x54978f)[_0x5029('0xa')](function(_0x5bccfc){logger[_0x5029('0xb')]('Integration,\x20%s,\x20%s',_0x502a62,_0x5029('0xc'));logger[_0x5029('0xd')](_0x5029('0xe'),_0x502a62,'request\x20sent',JSON[_0x5029('0xf')](_0x5bccfc));if(_0x5bccfc[_0x5029('0x10')]){if(_0x5bccfc[_0x5029('0x10')]['code']===0x1f4){logger[_0x5029('0x10')](_0x5029('0x11'),_0x502a62,_0x5bccfc['error']['message']);return _0xf4459b(_0x5bccfc['error']['message']);}logger[_0x5029('0x10')](_0x5029('0x11'),_0x502a62,_0x5bccfc[_0x5029('0x10')][_0x5029('0x12')]);return _0x4ee867(_0x5bccfc[_0x5029('0x10')][_0x5029('0x12')]);}else{logger[_0x5029('0xb')](_0x5029('0x11'),_0x502a62,_0x5029('0xc'));_0x4ee867(_0x5bccfc[_0x5029('0x13')][_0x5029('0x12')]);}})[_0x5029('0x14')](function(_0x3786b5){logger[_0x5029('0x10')](_0x5029('0x11'),_0x502a62,_0x3786b5);_0xf4459b(_0x3786b5);});});}
\ No newline at end of file
+var _0x66fa=['util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','then','info','Integration,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','Integration,\x20%s,\x20%s','message','catch','lodash'];(function(_0x3f3bcf,_0x54a737){var _0x29fbc1=function(_0x367ba4){while(--_0x367ba4){_0x3f3bcf['push'](_0x3f3bcf['shift']());}};_0x29fbc1(++_0x54a737);}(_0x66fa,0x117));var _0xa66f=function(_0x5ea73d,_0x3b5bd9){_0x5ea73d=_0x5ea73d-0x0;var _0x5cdce2=_0x66fa[_0x5ea73d];return _0x5cdce2;};'use strict';var _=require(_0xa66f('0x0'));var util=require(_0xa66f('0x1'));var moment=require('moment');var BPromise=require(_0xa66f('0x2'));var rs=require(_0xa66f('0x3'));var fs=require('fs');var Redis=require(_0xa66f('0x4'));var db=require(_0xa66f('0x5'))['db'];var utils=require(_0xa66f('0x6'));var logger=require(_0xa66f('0x7'))(_0xa66f('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xa66f('0x9')][_0xa66f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2f0b78,_0x1d02fc,_0x38b58b){return new BPromise(function(_0x5096bf,_0x39c1ef){return client['request'](_0x2f0b78,_0x38b58b)[_0xa66f('0xb')](function(_0x597c7c){logger[_0xa66f('0xc')]('Integration,\x20%s,\x20%s',_0x1d02fc,'request\x20sent');logger['debug'](_0xa66f('0xd'),_0x1d02fc,_0xa66f('0xe'),JSON['stringify'](_0x597c7c));if(_0x597c7c[_0xa66f('0xf')]){if(_0x597c7c['error'][_0xa66f('0x10')]===0x1f4){logger['error'](_0xa66f('0x11'),_0x1d02fc,_0x597c7c[_0xa66f('0xf')][_0xa66f('0x12')]);return _0x39c1ef(_0x597c7c['error']['message']);}logger[_0xa66f('0xf')]('Integration,\x20%s,\x20%s',_0x1d02fc,_0x597c7c['error']['message']);return _0x5096bf(_0x597c7c[_0xa66f('0xf')][_0xa66f('0x12')]);}else{logger[_0xa66f('0xc')](_0xa66f('0x11'),_0x1d02fc,_0xa66f('0xe'));_0x5096bf(_0x597c7c['result']['message']);}})[_0xa66f('0x13')](function(_0x32d338){logger[_0xa66f('0xf')](_0xa66f('0x11'),_0x1d02fc,_0x32d338);_0x39c1ef(_0x32d338);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./integrationReport.controller','get','index','/describe','isAuthenticated','post','put','update','delete','/:id'];(function(_0x22d5b5,_0x1b4a0b){var _0x14c29b=function(_0x313a82){while(--_0x313a82){_0x22d5b5['push'](_0x22d5b5['shift']());}};_0x14c29b(++_0x1b4a0b);}(_0x7a54,0x106));var _0x47a5=function(_0x6042e,_0x1bccda){_0x6042e=_0x6042e-0x0;var _0x872ad5=_0x7a54[_0x6042e];return _0x872ad5;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['describe']);router[_0x47a5('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x47a5('0xd')]('/',auth[_0x47a5('0xc')](),controller['create']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);router[_0x47a5('0x10')](_0x47a5('0x11'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x12')]);module[_0x47a5('0x13')]=router;
\ No newline at end of file
+var _0x955f=['post','create','update','delete','destroy','multer','util','path','connect-timeout','express','fs-extra','../../config/environment','get','isAuthenticated','index','/describe','/:id','show'];(function(_0x9fa52e,_0x2c1233){var _0x3794d8=function(_0x751b66){while(--_0x751b66){_0x9fa52e['push'](_0x9fa52e['shift']());}};_0x3794d8(++_0x2c1233);}(_0x955f,0x1eb));var _0xf955=function(_0x4c7396,_0x5120a4){_0x4c7396=_0x4c7396-0x0;var _0x55c8bb=_0x955f[_0x4c7396];return _0x55c8bb;};'use strict';var multer=require(_0xf955('0x0'));var util=require(_0xf955('0x1'));var path=require(_0xf955('0x2'));var timeout=require(_0xf955('0x3'));var express=require(_0xf955('0x4'));var router=express['Router']();var fs_extra=require(_0xf955('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xf955('0x6'));var controller=require('./integrationReport.controller');router[_0xf955('0x7')]('/',auth[_0xf955('0x8')](),controller[_0xf955('0x9')]);router['get'](_0xf955('0xa'),auth[_0xf955('0x8')](),controller['describe']);router[_0xf955('0x7')](_0xf955('0xb'),auth[_0xf955('0x8')](),controller[_0xf955('0xc')]);router[_0xf955('0xd')]('/',auth[_0xf955('0x8')](),controller[_0xf955('0xe')]);router['put'](_0xf955('0xb'),auth['isAuthenticated'](),controller[_0xf955('0xf')]);router[_0xf955('0x10')](_0xf955('0xb'),auth['isAuthenticated'](),controller[_0xf955('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf820=['BOOLEAN','TEXT','ENUM','SENDING','FAILED','sequelize','STRING','INTEGER','DATE'];(function(_0x4a5d73,_0x445e76){var _0x17d0e3=function(_0x45f9fd){while(--_0x45f9fd){_0x4a5d73['push'](_0x4a5d73['shift']());}};_0x17d0e3(++_0x445e76);}(_0xf820,0x71));var _0x0f82=function(_0x4e583e,_0x32e7a2){_0x4e583e=_0x4e583e-0x0;var _0x23be2f=_0xf820[_0x4e583e];return _0x23be2f;};'use strict';var Sequelize=require(_0x0f82('0x0'));module['exports']={'integration':{'type':Sequelize[_0x0f82('0x1')]},'eventChannel':{'type':Sequelize[_0x0f82('0x1')]},'exitStatus':{'type':Sequelize['STRING']},'ticketId':{'type':Sequelize[_0x0f82('0x1')]},'integrationId':{'type':Sequelize[_0x0f82('0x2')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x0f82('0x1')]},'calleridnum':{'type':Sequelize[_0x0f82('0x1')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x0f82('0x1')]},'interface':{'type':Sequelize[_0x0f82('0x1')]},'membername':{'type':Sequelize[_0x0f82('0x1')]},'agentcalledAt':{'type':Sequelize[_0x0f82('0x3')]},'agentconnectAt':{'type':Sequelize[_0x0f82('0x3')]},'holdtime':{'type':Sequelize[_0x0f82('0x2')]},'agentcomplete':{'type':Sequelize[_0x0f82('0x4')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x0f82('0x3')]},'talktime':{'type':Sequelize[_0x0f82('0x2')]},'agentacw':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x0f82('0x2')]},'reason':{'type':Sequelize[_0x0f82('0x1')]},'agentringnoanswer':{'type':Sequelize[_0x0f82('0x4')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0x0f82('0x3')]},'agentdump':{'type':Sequelize[_0x0f82('0x4')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x0f82('0x3')]},'lastevent':{'type':Sequelize[_0x0f82('0x1')]},'channel':{'type':Sequelize[_0x0f82('0x1')]},'channelstate':{'type':Sequelize[_0x0f82('0x2')]},'channelstatedesc':{'type':Sequelize[_0x0f82('0x1')]},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0x0f82('0x1')]},'language':{'type':Sequelize[_0x0f82('0x1')]},'accountcode':{'type':Sequelize[_0x0f82('0x1')]},'context':{'type':Sequelize[_0x0f82('0x1')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x0f82('0x1')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize[_0x0f82('0x1')]},'destcalleridname':{'type':Sequelize[_0x0f82('0x1')]},'destconnectedlinenum':{'type':Sequelize[_0x0f82('0x1')]},'destconnectedlinename':{'type':Sequelize[_0x0f82('0x1')]},'destlanguage':{'type':Sequelize[_0x0f82('0x1')]},'destaccountcode':{'type':Sequelize[_0x0f82('0x1')]},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x0f82('0x1')]},'destuniqueid':{'type':Sequelize['STRING']},'messageId':{'type':Sequelize[_0x0f82('0x1')]},'inReplyTo':{'type':Sequelize['STRING']},'subject':{'type':Sequelize[_0x0f82('0x1')]},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0x0f82('0x1')]},'cc':{'type':Sequelize[_0x0f82('0x1')]},'attachment':{'type':Sequelize[_0x0f82('0x5')]},'html':{'type':Sequelize[_0x0f82('0x5')]},'text':{'type':Sequelize[_0x0f82('0x5')]},'status':{'type':Sequelize[_0x0f82('0x6')]('SENT',_0x0f82('0x7'),'RECEIVED',_0x0f82('0x8'))},'url':{'type':Sequelize[_0x0f82('0x1')]},'app':{'type':Sequelize[_0x0f82('0x1')]},'appdata':{'type':Sequelize[_0x0f82('0x1')]},'projectId':{'type':Sequelize[_0x0f82('0x2')]}};
\ No newline at end of file
+var _0xd76e=['STRING','INTEGER','DATE','BOOLEAN','TEXT','ENUM','SENDING','RECEIVED','exports'];(function(_0x550d12,_0x5384bd){var _0x12103d=function(_0x2a9834){while(--_0x2a9834){_0x550d12['push'](_0x550d12['shift']());}};_0x12103d(++_0x5384bd);}(_0xd76e,0x18b));var _0xed76=function(_0x32f1b6,_0x454001){_0x32f1b6=_0x32f1b6-0x0;var _0x5dbabf=_0xd76e[_0x32f1b6];return _0x5dbabf;};'use strict';var Sequelize=require('sequelize');module[_0xed76('0x0')]={'integration':{'type':Sequelize[_0xed76('0x1')]},'eventChannel':{'type':Sequelize[_0xed76('0x1')]},'exitStatus':{'type':Sequelize[_0xed76('0x1')]},'ticketId':{'type':Sequelize[_0xed76('0x1')]},'integrationId':{'type':Sequelize[_0xed76('0x2')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0xed76('0x1')]},'calleridnum':{'type':Sequelize[_0xed76('0x1')]},'calleridname':{'type':Sequelize[_0xed76('0x1')]},'queue':{'type':Sequelize[_0xed76('0x1')]},'interface':{'type':Sequelize[_0xed76('0x1')]},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize[_0xed76('0x3')]},'agentconnectAt':{'type':Sequelize[_0xed76('0x3')]},'holdtime':{'type':Sequelize[_0xed76('0x2')]},'agentcomplete':{'type':Sequelize[_0xed76('0x4')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0xed76('0x3')]},'talktime':{'type':Sequelize[_0xed76('0x2')]},'agentacw':{'type':Sequelize[_0xed76('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize['INTEGER']},'reason':{'type':Sequelize[_0xed76('0x1')]},'agentringnoanswer':{'type':Sequelize[_0xed76('0x4')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize['DATE']},'agentdump':{'type':Sequelize[_0xed76('0x4')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0xed76('0x3')]},'lastevent':{'type':Sequelize[_0xed76('0x1')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0xed76('0x1')]},'connectedlinenum':{'type':Sequelize[_0xed76('0x1')]},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xed76('0x1')]},'accountcode':{'type':Sequelize[_0xed76('0x1')]},'context':{'type':Sequelize[_0xed76('0x1')]},'exten':{'type':Sequelize[_0xed76('0x1')]},'priority':{'type':Sequelize[_0xed76('0x1')]},'destchannel':{'type':Sequelize[_0xed76('0x1')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0xed76('0x1')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0xed76('0x1')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize[_0xed76('0x1')]},'destaccountcode':{'type':Sequelize[_0xed76('0x1')]},'destcontext':{'type':Sequelize[_0xed76('0x1')]},'destexten':{'type':Sequelize[_0xed76('0x1')]},'destpriority':{'type':Sequelize['STRING']},'destuniqueid':{'type':Sequelize[_0xed76('0x1')]},'messageId':{'type':Sequelize[_0xed76('0x1')]},'inReplyTo':{'type':Sequelize[_0xed76('0x1')]},'subject':{'type':Sequelize[_0xed76('0x1')]},'from':{'type':Sequelize[_0xed76('0x1')]},'to':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0xed76('0x1')]},'attachment':{'type':Sequelize[_0xed76('0x5')]},'html':{'type':Sequelize[_0xed76('0x5')]},'text':{'type':Sequelize[_0xed76('0x5')]},'status':{'type':Sequelize[_0xed76('0x6')]('SENT',_0xed76('0x7'),_0xed76('0x8'),'FAILED')},'url':{'type':Sequelize[_0xed76('0x1')]},'app':{'type':Sequelize[_0xed76('0x1')]},'appdata':{'type':Sequelize[_0xed76('0x1')]},'projectId':{'type':Sequelize[_0xed76('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x045b=['hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','options','IntegrationReport','includeAll','include','findAll','rows','catch','show','model','find','create','update','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','lodash','crypto','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','end','name','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length'];(function(_0x3e36a0,_0x23a385){var _0x441f97=function(_0x563229){while(--_0x563229){_0x3e36a0['push'](_0x3e36a0['shift']());}};_0x441f97(++_0x23a385);}(_0x045b,0x64));var _0xb045=function(_0x384231,_0x50be41){_0x384231=_0x384231-0x0;var _0x2480bf=_0x045b[_0x384231];return _0x2480bf;};'use strict';var emlformat=require(_0xb045('0x0'));var rimraf=require(_0xb045('0x1'));var zipdir=require(_0xb045('0x2'));var jsonpatch=require(_0xb045('0x3'));var rp=require('request-promise');var moment=require(_0xb045('0x4'));var BPromise=require(_0xb045('0x5'));var Mustache=require(_0xb045('0x6'));var util=require(_0xb045('0x7'));var path=require(_0xb045('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb045('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb045('0xa'));var squel=require('squel');var crypto=require(_0xb045('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb045('0xc'));var Papa=require('papaparse');var Redis=require(_0xb045('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xb045('0xe'));var as=require(_0xb045('0xf'));var hardwareService=require(_0xb045('0x10'));var logger=require(_0xb045('0x11'))(_0xb045('0x12'));var utils=require(_0xb045('0x13'));var config=require(_0xb045('0x14'));var licenseUtil=require(_0xb045('0x15'));var db=require(_0xb045('0x16'))['db'];function respondWithStatusCode(_0xbbe1e5,_0x4fc6be){_0x4fc6be=_0x4fc6be||0xcc;return function(_0x1562c8){if(_0x1562c8){return _0xbbe1e5[_0xb045('0x17')](_0x4fc6be);}return _0xbbe1e5[_0xb045('0x18')](_0x4fc6be)['end']();};}function respondWithResult(_0x537a53,_0x58826b){_0x58826b=_0x58826b||0xc8;return function(_0x56d889){if(_0x56d889){return _0x537a53['status'](_0x58826b)[_0xb045('0x19')](_0x56d889);}};}function respondWithFilteredResult(_0x33cb27,_0x24a2ff){return function(_0x35374c){if(_0x35374c){var _0x4793a5=typeof _0x24a2ff[_0xb045('0x1a')]===_0xb045('0x1b')&&typeof _0x24a2ff['limit']===_0xb045('0x1b');var _0x36cd09=_0x35374c[_0xb045('0x1c')];var _0x53a3b4=_0x4793a5?0x0:_0x24a2ff[_0xb045('0x1a')];var _0x45d05c=_0x4793a5?_0x35374c[_0xb045('0x1c')]:_0x24a2ff['offset']+_0x24a2ff[_0xb045('0x1d')];var _0x11db8c;if(_0x45d05c>=_0x36cd09){_0x45d05c=_0x36cd09;_0x11db8c=0xc8;}else{_0x11db8c=0xce;}_0x33cb27['status'](_0x11db8c);return _0x33cb27[_0xb045('0x1e')](_0xb045('0x1f'),_0x53a3b4+'-'+_0x45d05c+'/'+_0x36cd09)[_0xb045('0x19')](_0x35374c);}return null;};}function patchUpdates(_0x17021c){return function(_0x1f9c41){try{jsonpatch[_0xb045('0x20')](_0x1f9c41,_0x17021c,!![]);}catch(_0xaa0311){return BPromise[_0xb045('0x21')](_0xaa0311);}return _0x1f9c41[_0xb045('0x22')]();};}function saveUpdates(_0x18e805,_0x16b225){return function(_0x594e9e){if(_0x594e9e){return _0x594e9e['update'](_0x18e805)[_0xb045('0x23')](function(_0xf770a0){return _0xf770a0;});}return null;};}function removeEntity(_0xcbdde6,_0xf38c3b){return function(_0x4ea45b){if(_0x4ea45b){return _0x4ea45b[_0xb045('0x24')]()['then'](function(){_0xcbdde6[_0xb045('0x18')](0xcc)[_0xb045('0x25')]();});}};}function handleEntityNotFound(_0x570305,_0x2c5a16){return function(_0x1b20f4){if(!_0x1b20f4){_0x570305['sendStatus'](0x194);}return _0x1b20f4;};}function handleError(_0x4f4977,_0x110957){_0x110957=_0x110957||0x1f4;return function(_0x215049){logger['error'](_0x215049['stack']);if(_0x215049[_0xb045('0x26')]){delete _0x215049[_0xb045('0x26')];}_0x4f4977[_0xb045('0x18')](_0x110957)['send'](_0x215049);};}exports[_0xb045('0x27')]=function(_0x29ffa6,_0x493bff){var _0x4bb782={},_0x4d5dc8={},_0x39b42c={'count':0x0,'rows':[]};var _0x15c58c=_[_0xb045('0x28')](db['IntegrationReport'][_0xb045('0x29')],function(_0x80dfa5){return{'name':_0x80dfa5[_0xb045('0x2a')],'type':_0x80dfa5[_0xb045('0x2b')][_0xb045('0x2c')]};});_0x4d5dc8['model']=_[_0xb045('0x28')](_0x15c58c,_0xb045('0x26'));_0x4d5dc8[_0xb045('0x2d')]=_[_0xb045('0x2e')](_0x29ffa6[_0xb045('0x2d')]);_0x4d5dc8[_0xb045('0x2f')]=_[_0xb045('0x30')](_0x4d5dc8['model'],_0x4d5dc8[_0xb045('0x2d')]);_0x4bb782[_0xb045('0x31')]=_[_0xb045('0x30')](_0x4d5dc8['model'],qs[_0xb045('0x32')](_0x29ffa6[_0xb045('0x2d')][_0xb045('0x32')]));_0x4bb782[_0xb045('0x31')]=_0x4bb782[_0xb045('0x31')][_0xb045('0x33')]?_0x4bb782['attributes']:_0x4d5dc8['model'];if(!_0x29ffa6['query'][_0xb045('0x34')](_0xb045('0x35'))){_0x4bb782['limit']=qs[_0xb045('0x1d')](_0x29ffa6['query'][_0xb045('0x1d')]);_0x4bb782[_0xb045('0x1a')]=qs[_0xb045('0x1a')](_0x29ffa6[_0xb045('0x2d')][_0xb045('0x1a')]);}_0x4bb782[_0xb045('0x36')]=qs[_0xb045('0x37')](_0x29ffa6[_0xb045('0x2d')]['sort']);_0x4bb782['where']=qs[_0xb045('0x2f')](_[_0xb045('0x38')](_0x29ffa6['query'],_0x4d5dc8[_0xb045('0x2f')]),_0x15c58c);if(_0x29ffa6[_0xb045('0x2d')][_0xb045('0x39')]){_0x4bb782['where']=_[_0xb045('0x3a')](_0x4bb782[_0xb045('0x3b')],{'$or':_[_0xb045('0x28')](_0x15c58c,function(_0x4cd6da){if(_0x4cd6da[_0xb045('0x2b')]!==_0xb045('0x3c')){var _0x14133b={};_0x14133b[_0x4cd6da[_0xb045('0x26')]]={'$like':'%'+_0x29ffa6[_0xb045('0x2d')][_0xb045('0x39')]+'%'};return _0x14133b;}})});}_0x4bb782=_[_0xb045('0x3a')]({},_0x4bb782,_0x29ffa6[_0xb045('0x3d')]);var _0x52029c={'where':_0x4bb782[_0xb045('0x3b')]};return db[_0xb045('0x3e')]['count'](_0x52029c)[_0xb045('0x23')](function(_0x23655d){_0x39b42c[_0xb045('0x1c')]=_0x23655d;if(_0x29ffa6[_0xb045('0x2d')][_0xb045('0x3f')]){_0x4bb782[_0xb045('0x40')]=[{'all':!![]}];}return db[_0xb045('0x3e')][_0xb045('0x41')](_0x4bb782);})[_0xb045('0x23')](function(_0x5853a2){_0x39b42c[_0xb045('0x42')]=_0x5853a2;return _0x39b42c;})[_0xb045('0x23')](respondWithFilteredResult(_0x493bff,_0x4bb782))[_0xb045('0x43')](handleError(_0x493bff,null));};exports[_0xb045('0x44')]=function(_0x195afa,_0x320fa5){var _0x88eb82={'raw':![],'where':{'id':_0x195afa['params']['id']}},_0x30df53={};_0x30df53['model']=_[_0xb045('0x2e')](db[_0xb045('0x3e')][_0xb045('0x29')]);_0x30df53['query']=_[_0xb045('0x2e')](_0x195afa[_0xb045('0x2d')]);_0x30df53[_0xb045('0x2f')]=_[_0xb045('0x30')](_0x30df53['model'],_0x30df53[_0xb045('0x2d')]);_0x88eb82[_0xb045('0x31')]=_[_0xb045('0x30')](_0x30df53['model'],qs[_0xb045('0x32')](_0x195afa[_0xb045('0x2d')][_0xb045('0x32')]));_0x88eb82['attributes']=_0x88eb82['attributes'][_0xb045('0x33')]?_0x88eb82['attributes']:_0x30df53[_0xb045('0x45')];if(_0x195afa[_0xb045('0x2d')][_0xb045('0x3f')]){_0x88eb82[_0xb045('0x40')]=[{'all':!![]}];}_0x88eb82=_['merge']({},_0x88eb82,_0x195afa['options']);return db[_0xb045('0x3e')][_0xb045('0x46')](_0x88eb82)[_0xb045('0x23')](handleEntityNotFound(_0x320fa5,null))[_0xb045('0x23')](respondWithResult(_0x320fa5,null))[_0xb045('0x43')](handleError(_0x320fa5,null));};exports[_0xb045('0x47')]=function(_0x4f5a71,_0x4e4783){return db['IntegrationReport'][_0xb045('0x47')](_0x4f5a71['body'],{})[_0xb045('0x23')](respondWithResult(_0x4e4783,0xc9))[_0xb045('0x43')](handleError(_0x4e4783,null));};exports[_0xb045('0x48')]=function(_0x67b714,_0x17110f){if(_0x67b714['body']['id']){delete _0x67b714[_0xb045('0x49')]['id'];}return db['IntegrationReport'][_0xb045('0x46')]({'where':{'id':_0x67b714[_0xb045('0x4a')]['id']}})[_0xb045('0x23')](handleEntityNotFound(_0x17110f,null))[_0xb045('0x23')](saveUpdates(_0x67b714[_0xb045('0x49')],null))['then'](respondWithResult(_0x17110f,null))[_0xb045('0x43')](handleError(_0x17110f,null));};exports[_0xb045('0x24')]=function(_0x57457c,_0x5f4a4f){return db[_0xb045('0x3e')][_0xb045('0x46')]({'where':{'id':_0x57457c[_0xb045('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5f4a4f,null))[_0xb045('0x23')](removeEntity(_0x5f4a4f,null))['catch'](handleError(_0x5f4a4f,null));};exports[_0xb045('0x4b')]=function(_0x2d5384,_0x5030ed){return db[_0xb045('0x3e')][_0xb045('0x4b')]()[_0xb045('0x23')](respondWithResult(_0x5030ed,null))[_0xb045('0x43')](handleError(_0x5030ed,null));};
\ No newline at end of file
+var _0xc187=['sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','update','then','destroy','error','stack','name','send','index','map','rawAttributes','key','model','keys','query','attributes','intersection','fields','length','nolimit','sort','where','filters','filter','type','VIRTUAL','options','IntegrationReport','includeAll','include','rows','catch','show','params','merge','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0x2b20cc,_0x34eadd){var _0x19c1aa=function(_0x3051bc){while(--_0x3051bc){_0x2b20cc['push'](_0x2b20cc['shift']());}};_0x19c1aa(++_0x34eadd);}(_0xc187,0x1b2));var _0x7c18=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0xc187[_0x13d07a];return _0x5ee0ee;};'use strict';var emlformat=require(_0x7c18('0x0'));var rimraf=require(_0x7c18('0x1'));var zipdir=require(_0x7c18('0x2'));var jsonpatch=require(_0x7c18('0x3'));var rp=require(_0x7c18('0x4'));var moment=require(_0x7c18('0x5'));var BPromise=require(_0x7c18('0x6'));var Mustache=require(_0x7c18('0x7'));var util=require(_0x7c18('0x8'));var path=require(_0x7c18('0x9'));var sox=require(_0x7c18('0xa'));var csv=require(_0x7c18('0xb'));var ejs=require(_0x7c18('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7c18('0xd'));var squel=require(_0x7c18('0xe'));var crypto=require(_0x7c18('0xf'));var jsforce=require(_0x7c18('0x10'));var deskjs=require(_0x7c18('0x11'));var toCsv=require(_0x7c18('0xb'));var querystring=require('querystring');var Papa=require(_0x7c18('0x12'));var Redis=require(_0x7c18('0x13'));var authService=require(_0x7c18('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7c18('0x15'));var utils=require(_0x7c18('0x16'));var config=require(_0x7c18('0x17'));var licenseUtil=require(_0x7c18('0x18'));var db=require(_0x7c18('0x19'))['db'];function respondWithStatusCode(_0x1369c9,_0x5222c4){_0x5222c4=_0x5222c4||0xcc;return function(_0x511085){if(_0x511085){return _0x1369c9[_0x7c18('0x1a')](_0x5222c4);}return _0x1369c9[_0x7c18('0x1b')](_0x5222c4)[_0x7c18('0x1c')]();};}function respondWithResult(_0x6951d2,_0x33d851){_0x33d851=_0x33d851||0xc8;return function(_0x222a71){if(_0x222a71){return _0x6951d2[_0x7c18('0x1b')](_0x33d851)['json'](_0x222a71);}};}function respondWithFilteredResult(_0x3c8b40,_0x2769df){return function(_0x3abf5a){if(_0x3abf5a){var _0x4cc650=typeof _0x2769df[_0x7c18('0x1d')]===_0x7c18('0x1e')&&typeof _0x2769df[_0x7c18('0x1f')]==='undefined';var _0x38f581=_0x3abf5a[_0x7c18('0x20')];var _0x4a68e9=_0x4cc650?0x0:_0x2769df['offset'];var _0x5c6aa7=_0x4cc650?_0x3abf5a['count']:_0x2769df['offset']+_0x2769df[_0x7c18('0x1f')];var _0x225bef;if(_0x5c6aa7>=_0x38f581){_0x5c6aa7=_0x38f581;_0x225bef=0xc8;}else{_0x225bef=0xce;}_0x3c8b40[_0x7c18('0x1b')](_0x225bef);return _0x3c8b40[_0x7c18('0x21')]('Content-Range',_0x4a68e9+'-'+_0x5c6aa7+'/'+_0x38f581)[_0x7c18('0x22')](_0x3abf5a);}return null;};}function patchUpdates(_0xd7afc7){return function(_0x556543){try{jsonpatch[_0x7c18('0x23')](_0x556543,_0xd7afc7,!![]);}catch(_0x226db2){return BPromise['reject'](_0x226db2);}return _0x556543['save']();};}function saveUpdates(_0x391110,_0x1af890){return function(_0x15ecf6){if(_0x15ecf6){return _0x15ecf6[_0x7c18('0x24')](_0x391110)[_0x7c18('0x25')](function(_0x36d369){return _0x36d369;});}return null;};}function removeEntity(_0x42eb12,_0x189f5d){return function(_0x9978f8){if(_0x9978f8){return _0x9978f8[_0x7c18('0x26')]()[_0x7c18('0x25')](function(){_0x42eb12['status'](0xcc)[_0x7c18('0x1c')]();});}};}function handleEntityNotFound(_0x337cdf,_0x567f93){return function(_0x437097){if(!_0x437097){_0x337cdf[_0x7c18('0x1a')](0x194);}return _0x437097;};}function handleError(_0x1f9183,_0x44eff4){_0x44eff4=_0x44eff4||0x1f4;return function(_0x29fcba){logger[_0x7c18('0x27')](_0x29fcba[_0x7c18('0x28')]);if(_0x29fcba[_0x7c18('0x29')]){delete _0x29fcba[_0x7c18('0x29')];}_0x1f9183['status'](_0x44eff4)[_0x7c18('0x2a')](_0x29fcba);};}exports[_0x7c18('0x2b')]=function(_0x3ef505,_0xbcd78f){var _0xc2e442={},_0x20faba={},_0x3bde95={'count':0x0,'rows':[]};var _0x4de6be=_[_0x7c18('0x2c')](db['IntegrationReport'][_0x7c18('0x2d')],function(_0x3d67dd){return{'name':_0x3d67dd['fieldName'],'type':_0x3d67dd['type'][_0x7c18('0x2e')]};});_0x20faba[_0x7c18('0x2f')]=_[_0x7c18('0x2c')](_0x4de6be,_0x7c18('0x29'));_0x20faba['query']=_[_0x7c18('0x30')](_0x3ef505[_0x7c18('0x31')]);_0x20faba['filters']=_['intersection'](_0x20faba[_0x7c18('0x2f')],_0x20faba['query']);_0xc2e442[_0x7c18('0x32')]=_[_0x7c18('0x33')](_0x20faba[_0x7c18('0x2f')],qs[_0x7c18('0x34')](_0x3ef505['query'][_0x7c18('0x34')]));_0xc2e442[_0x7c18('0x32')]=_0xc2e442['attributes'][_0x7c18('0x35')]?_0xc2e442[_0x7c18('0x32')]:_0x20faba[_0x7c18('0x2f')];if(!_0x3ef505[_0x7c18('0x31')]['hasOwnProperty'](_0x7c18('0x36'))){_0xc2e442[_0x7c18('0x1f')]=qs[_0x7c18('0x1f')](_0x3ef505[_0x7c18('0x31')][_0x7c18('0x1f')]);_0xc2e442[_0x7c18('0x1d')]=qs['offset'](_0x3ef505[_0x7c18('0x31')][_0x7c18('0x1d')]);}_0xc2e442['order']=qs[_0x7c18('0x37')](_0x3ef505[_0x7c18('0x31')][_0x7c18('0x37')]);_0xc2e442[_0x7c18('0x38')]=qs['filters'](_['pick'](_0x3ef505[_0x7c18('0x31')],_0x20faba[_0x7c18('0x39')]),_0x4de6be);if(_0x3ef505[_0x7c18('0x31')][_0x7c18('0x3a')]){_0xc2e442['where']=_['merge'](_0xc2e442['where'],{'$or':_[_0x7c18('0x2c')](_0x4de6be,function(_0x3aeeae){if(_0x3aeeae[_0x7c18('0x3b')]!==_0x7c18('0x3c')){var _0x574dff={};_0x574dff[_0x3aeeae[_0x7c18('0x29')]]={'$like':'%'+_0x3ef505[_0x7c18('0x31')][_0x7c18('0x3a')]+'%'};return _0x574dff;}})});}_0xc2e442=_['merge']({},_0xc2e442,_0x3ef505[_0x7c18('0x3d')]);var _0x190f29={'where':_0xc2e442['where']};return db[_0x7c18('0x3e')][_0x7c18('0x20')](_0x190f29)['then'](function(_0x29500a){_0x3bde95[_0x7c18('0x20')]=_0x29500a;if(_0x3ef505['query'][_0x7c18('0x3f')]){_0xc2e442[_0x7c18('0x40')]=[{'all':!![]}];}return db[_0x7c18('0x3e')]['findAll'](_0xc2e442);})[_0x7c18('0x25')](function(_0x100665){_0x3bde95[_0x7c18('0x41')]=_0x100665;return _0x3bde95;})[_0x7c18('0x25')](respondWithFilteredResult(_0xbcd78f,_0xc2e442))[_0x7c18('0x42')](handleError(_0xbcd78f,null));};exports[_0x7c18('0x43')]=function(_0x23c936,_0xae3958){var _0x1929ad={'raw':![],'where':{'id':_0x23c936[_0x7c18('0x44')]['id']}},_0x3522b5={};_0x3522b5['model']=_['keys'](db[_0x7c18('0x3e')][_0x7c18('0x2d')]);_0x3522b5[_0x7c18('0x31')]=_['keys'](_0x23c936[_0x7c18('0x31')]);_0x3522b5[_0x7c18('0x39')]=_[_0x7c18('0x33')](_0x3522b5[_0x7c18('0x2f')],_0x3522b5[_0x7c18('0x31')]);_0x1929ad['attributes']=_['intersection'](_0x3522b5[_0x7c18('0x2f')],qs[_0x7c18('0x34')](_0x23c936[_0x7c18('0x31')]['fields']));_0x1929ad[_0x7c18('0x32')]=_0x1929ad[_0x7c18('0x32')]['length']?_0x1929ad['attributes']:_0x3522b5[_0x7c18('0x2f')];if(_0x23c936[_0x7c18('0x31')][_0x7c18('0x3f')]){_0x1929ad['include']=[{'all':!![]}];}_0x1929ad=_[_0x7c18('0x45')]({},_0x1929ad,_0x23c936[_0x7c18('0x3d')]);return db[_0x7c18('0x3e')]['find'](_0x1929ad)['then'](handleEntityNotFound(_0xae3958,null))['then'](respondWithResult(_0xae3958,null))[_0x7c18('0x42')](handleError(_0xae3958,null));};exports[_0x7c18('0x46')]=function(_0x4ab1a9,_0x4cd291){return db['IntegrationReport'][_0x7c18('0x46')](_0x4ab1a9[_0x7c18('0x47')],{})[_0x7c18('0x25')](respondWithResult(_0x4cd291,0xc9))[_0x7c18('0x42')](handleError(_0x4cd291,null));};exports[_0x7c18('0x24')]=function(_0x54962b,_0xf626ac){if(_0x54962b['body']['id']){delete _0x54962b[_0x7c18('0x47')]['id'];}return db[_0x7c18('0x3e')][_0x7c18('0x48')]({'where':{'id':_0x54962b[_0x7c18('0x44')]['id']}})[_0x7c18('0x25')](handleEntityNotFound(_0xf626ac,null))[_0x7c18('0x25')](saveUpdates(_0x54962b[_0x7c18('0x47')],null))[_0x7c18('0x25')](respondWithResult(_0xf626ac,null))[_0x7c18('0x42')](handleError(_0xf626ac,null));};exports[_0x7c18('0x26')]=function(_0x2beec3,_0x5d1d88){return db['IntegrationReport']['find']({'where':{'id':_0x2beec3[_0x7c18('0x44')]['id']}})[_0x7c18('0x25')](handleEntityNotFound(_0x5d1d88,null))['then'](removeEntity(_0x5d1d88,null))[_0x7c18('0x42')](handleError(_0x5d1d88,null));};exports[_0x7c18('0x49')]=function(_0x5e5770,_0xc31deb){return db[_0x7c18('0x3e')][_0x7c18('0x49')]()[_0x7c18('0x25')](respondWithResult(_0xc31deb,null))[_0x7c18('0x42')](handleError(_0xc31deb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x962c=['../../config/environment','./integrationReport.attributes','define','IntegrationReport','lodash','util','api','moment','rimraf'];(function(_0x4ac5e7,_0x22c8b9){var _0x533b4b=function(_0x56e304){while(--_0x56e304){_0x4ac5e7['push'](_0x4ac5e7['shift']());}};_0x533b4b(++_0x22c8b9);}(_0x962c,0x1a2));var _0xc962=function(_0x24715a,_0x3e94a0){_0x24715a=_0x24715a-0x0;var _0x4c6903=_0x962c[_0x24715a];return _0x4c6903;};'use strict';var _=require(_0xc962('0x0'));var util=require(_0xc962('0x1'));var logger=require('../../config/logger')(_0xc962('0x2'));var moment=require(_0xc962('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xc962('0x4'));var config=require(_0xc962('0x5'));var attributes=require(_0xc962('0x6'));module['exports']=function(_0x1c40f8,_0x435e9e){return _0x1c40f8[_0xc962('0x7')](_0xc962('0x8'),attributes,{'tableName':'report_integration','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc3fc=['../../config/logger','api','moment','bluebird','rimraf','./integrationReport.attributes','exports','define','IntegrationReport','report_integration','lodash','util'];(function(_0x32a933,_0x42db57){var _0x174076=function(_0x3f4f3c){while(--_0x3f4f3c){_0x32a933['push'](_0x32a933['shift']());}};_0x174076(++_0x42db57);}(_0xc3fc,0x106));var _0xcc3f=function(_0xb8695,_0x104627){_0xb8695=_0xb8695-0x0;var _0x5b7532=_0xc3fc[_0xb8695];return _0x5b7532;};'use strict';var _=require(_0xcc3f('0x0'));var util=require(_0xcc3f('0x1'));var logger=require(_0xcc3f('0x2'))(_0xcc3f('0x3'));var moment=require(_0xcc3f('0x4'));var BPromise=require(_0xcc3f('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xcc3f('0x6'));var config=require('../../config/environment');var attributes=require(_0xcc3f('0x7'));module[_0xcc3f('0x8')]=function(_0x324b8e,_0x542e86){return _0x324b8e[_0xcc3f('0x9')](_0xcc3f('0xa'),attributes,{'tableName':_0xcc3f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba34=['../../config/environment','jayson/promise','client','http','request','then','info','IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc'];(function(_0x3ae11b,_0x1cfdd0){var _0xec6aa3=function(_0x6de256){while(--_0x6de256){_0x3ae11b['push'](_0x3ae11b['shift']());}};_0xec6aa3(++_0x1cfdd0);}(_0xba34,0x119));var _0x4ba3=function(_0xffc3a1,_0x2a0f4c){_0xffc3a1=_0xffc3a1-0x0;var _0x282599=_0xba34[_0xffc3a1];return _0x282599;};'use strict';var _=require(_0x4ba3('0x0'));var util=require(_0x4ba3('0x1'));var moment=require(_0x4ba3('0x2'));var BPromise=require(_0x4ba3('0x3'));var rs=require(_0x4ba3('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x4ba3('0x5'))(_0x4ba3('0x6'));var config=require(_0x4ba3('0x7'));var jayson=require(_0x4ba3('0x8'));var client=jayson[_0x4ba3('0x9')][_0x4ba3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe5f99a,_0x585f2d,_0x6254fb){return new BPromise(function(_0x368eee,_0x2df7f3){return client[_0x4ba3('0xb')](_0xe5f99a,_0x6254fb)[_0x4ba3('0xc')](function(_0xcf1ec3){logger[_0x4ba3('0xd')](_0x4ba3('0xe'),_0x585f2d,_0x4ba3('0xf'));logger[_0x4ba3('0x10')](_0x4ba3('0x11'),_0x585f2d,'request\x20sent',JSON[_0x4ba3('0x12')](_0xcf1ec3));if(_0xcf1ec3[_0x4ba3('0x13')]){if(_0xcf1ec3['error'][_0x4ba3('0x14')]===0x1f4){logger['error'](_0x4ba3('0xe'),_0x585f2d,_0xcf1ec3['error'][_0x4ba3('0x15')]);return _0x2df7f3(_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);}logger[_0x4ba3('0x13')](_0x4ba3('0xe'),_0x585f2d,_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);return _0x368eee(_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);}else{logger[_0x4ba3('0xd')](_0x4ba3('0xe'),_0x585f2d,_0x4ba3('0xf'));_0x368eee(_0xcf1ec3[_0x4ba3('0x16')][_0x4ba3('0x15')]);}})[_0x4ba3('0x17')](function(_0x1b7776){logger['error'](_0x4ba3('0xe'),_0x585f2d,_0x1b7776);_0x2df7f3(_0x1b7776);});});}
\ No newline at end of file
+var _0x4137=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','code','IntegrationReport,\x20%s,\x20%s','message','lodash','util','moment','bluebird','randomstring'];(function(_0x5f1cf8,_0x5e0923){var _0x27d0fa=function(_0x3f1171){while(--_0x3f1171){_0x5f1cf8['push'](_0x5f1cf8['shift']());}};_0x27d0fa(++_0x5e0923);}(_0x4137,0xf8));var _0x7413=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x4137[_0x4565bf];return _0x5610ba;};'use strict';var _=require(_0x7413('0x0'));var util=require(_0x7413('0x1'));var moment=require(_0x7413('0x2'));var BPromise=require(_0x7413('0x3'));var rs=require(_0x7413('0x4'));var fs=require('fs');var Redis=require(_0x7413('0x5'));var db=require(_0x7413('0x6'))['db'];var utils=require(_0x7413('0x7'));var logger=require(_0x7413('0x8'))(_0x7413('0x9'));var config=require(_0x7413('0xa'));var jayson=require(_0x7413('0xb'));var client=jayson['client'][_0x7413('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x188d89,_0x5b39ac,_0x15af0d){return new BPromise(function(_0x5f4cd0,_0x3236ec){return client[_0x7413('0xd')](_0x188d89,_0x15af0d)['then'](function(_0x422bf5){logger[_0x7413('0xe')]('IntegrationReport,\x20%s,\x20%s',_0x5b39ac,_0x7413('0xf'));logger[_0x7413('0x10')](_0x7413('0x11'),_0x5b39ac,_0x7413('0xf'),JSON[_0x7413('0x12')](_0x422bf5));if(_0x422bf5['error']){if(_0x422bf5[_0x7413('0x13')][_0x7413('0x14')]===0x1f4){logger['error'](_0x7413('0x15'),_0x5b39ac,_0x422bf5[_0x7413('0x13')][_0x7413('0x16')]);return _0x3236ec(_0x422bf5['error']['message']);}logger['error'](_0x7413('0x15'),_0x5b39ac,_0x422bf5[_0x7413('0x13')]['message']);return _0x5f4cd0(_0x422bf5[_0x7413('0x13')][_0x7413('0x16')]);}else{logger['info'](_0x7413('0x15'),_0x5b39ac,'request\x20sent');_0x5f4cd0(_0x422bf5['result'][_0x7413('0x16')]);}})['catch'](function(_0x195c72){logger['error'](_0x7413('0x15'),_0x5b39ac,_0x195c72);_0x3236ec(_0x195c72);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae1c=['index','/:id','/:id/sub_intervals','getIntervals','create','post','addInterval','addIntervals','put','update','delete','destroy','exports','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./interval.controller','get','isAuthenticated'];(function(_0x3a99f4,_0x2a81c1){var _0xea0b42=function(_0x41f533){while(--_0x41f533){_0x3a99f4['push'](_0x3a99f4['shift']());}};_0xea0b42(++_0x2a81c1);}(_0xae1c,0xff));var _0xcae1=function(_0x2977aa,_0x2f1f1c){_0x2977aa=_0x2977aa-0x0;var _0x50bad8=_0xae1c[_0x2977aa];return _0x50bad8;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xcae1('0x0'));var router=express[_0xcae1('0x1')]();var fs_extra=require(_0xcae1('0x2'));var auth=require(_0xcae1('0x3'));var interaction=require(_0xcae1('0x4'));var config=require(_0xcae1('0x5'));var controller=require(_0xcae1('0x6'));router[_0xcae1('0x7')]('/',auth[_0xcae1('0x8')](),controller[_0xcae1('0x9')]);router[_0xcae1('0x7')](_0xcae1('0xa'),auth[_0xcae1('0x8')](),controller['show']);router['get'](_0xcae1('0xb'),auth[_0xcae1('0x8')](),controller[_0xcae1('0xc')]);router['post']('/',auth[_0xcae1('0x8')](),controller[_0xcae1('0xd')]);router[_0xcae1('0xe')]('/:id/sub_intervals',auth[_0xcae1('0x8')](),controller[_0xcae1('0xf')]);router['post']('/:id/sub_intervals/create_many',auth[_0xcae1('0x8')](),controller[_0xcae1('0x10')]);router[_0xcae1('0x11')](_0xcae1('0xa'),auth[_0xcae1('0x8')](),controller[_0xcae1('0x12')]);router[_0xcae1('0x13')](_0xcae1('0xa'),auth[_0xcae1('0x8')](),controller[_0xcae1('0x14')]);module[_0xcae1('0x15')]=router;
\ No newline at end of file
+var _0x873a=['./interval.controller','get','index','/:id','isAuthenticated','show','/:id/sub_intervals','getIntervals','post','create','addIntervals','delete','exports','multer','util','path','express','../../components/auth/service','../../components/interaction/service'];(function(_0x3b0422,_0x820084){var _0x545e14=function(_0x1972c4){while(--_0x1972c4){_0x3b0422['push'](_0x3b0422['shift']());}};_0x545e14(++_0x820084);}(_0x873a,0x1c2));var _0xa873=function(_0x19211b,_0x455f08){_0x19211b=_0x19211b-0x0;var _0x250398=_0x873a[_0x19211b];return _0x250398;};'use strict';var multer=require(_0xa873('0x0'));var util=require(_0xa873('0x1'));var path=require(_0xa873('0x2'));var timeout=require('connect-timeout');var express=require(_0xa873('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xa873('0x4'));var interaction=require(_0xa873('0x5'));var config=require('../../config/environment');var controller=require(_0xa873('0x6'));router[_0xa873('0x7')]('/',auth['isAuthenticated'](),controller[_0xa873('0x8')]);router['get'](_0xa873('0x9'),auth[_0xa873('0xa')](),controller[_0xa873('0xb')]);router[_0xa873('0x7')](_0xa873('0xc'),auth[_0xa873('0xa')](),controller[_0xa873('0xd')]);router[_0xa873('0xe')]('/',auth[_0xa873('0xa')](),controller[_0xa873('0xf')]);router[_0xa873('0xe')]('/:id/sub_intervals',auth[_0xa873('0xa')](),controller['addInterval']);router[_0xa873('0xe')]('/:id/sub_intervals/create_many',auth['isAuthenticated'](),controller[_0xa873('0x10')]);router['put'](_0xa873('0x9'),auth[_0xa873('0xa')](),controller['update']);router[_0xa873('0x11')](_0xa873('0x9'),auth[_0xa873('0xa')](),controller['destroy']);module[_0xa873('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x804b=['exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x804b,0x8a));var _0xb804=function(_0x35efc7,_0x9f485f){_0x35efc7=_0x35efc7-0x0;var _0x38d24c=_0x804b[_0x35efc7];return _0x38d24c;};'use strict';var Sequelize=require('sequelize');module[_0xb804('0x0')]={'name':{'type':Sequelize[_0xb804('0x1')]},'description':{'type':Sequelize[_0xb804('0x1')]},'interval':{'type':Sequelize[_0xb804('0x1')],'allowNull':!![]}};
\ No newline at end of file
+var _0x6fe9=['sequelize','STRING'];(function(_0x10152c,_0x33ead9){var _0x36e5a0=function(_0x163724){while(--_0x163724){_0x10152c['push'](_0x10152c['shift']());}};_0x36e5a0(++_0x33ead9);}(_0x6fe9,0x16a));var _0x96fe=function(_0x422905,_0x3bce3a){_0x422905=_0x422905-0x0;var _0x33dc6c=_0x6fe9[_0x422905];return _0x33dc6c;};'use strict';var Sequelize=require(_0x96fe('0x0'));module['exports']={'name':{'type':Sequelize[_0x96fe('0x1')]},'description':{'type':Sequelize[_0x96fe('0x1')]},'interval':{'type':Sequelize[_0x96fe('0x1')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81e8=['desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','status','end','json','offset','undefined','count','set','Content-Range','apply','save','update','then','destroy','get','Intervals','UserProfileResource','error','stack','name','index','map','rawAttributes','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','filters','pick','filter','merge','where','Interval','include','findAll','rows','catch','show','params','length','includeAll','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','findOne','getIntervals','addIntervals','sequelize','IntervalId','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','squel','jsforce'];(function(_0x2effbb,_0x2a751b){var _0x414b54=function(_0x1e6753){while(--_0x1e6753){_0x2effbb['push'](_0x2effbb['shift']());}};_0x414b54(++_0x2a751b);}(_0x81e8,0xab));var _0x881e=function(_0x432a41,_0x562b12){_0x432a41=_0x432a41-0x0;var _0x52c5e8=_0x81e8[_0x432a41];return _0x52c5e8;};'use strict';var emlformat=require(_0x881e('0x0'));var rimraf=require(_0x881e('0x1'));var zipdir=require(_0x881e('0x2'));var jsonpatch=require(_0x881e('0x3'));var rp=require(_0x881e('0x4'));var moment=require(_0x881e('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x881e('0x6'));var path=require(_0x881e('0x7'));var sox=require(_0x881e('0x8'));var csv=require('to-csv');var ejs=require(_0x881e('0x9'));var fs=require('fs');var fs_extra=require(_0x881e('0xa'));var _=require('lodash');var squel=require(_0x881e('0xb'));var crypto=require('crypto');var jsforce=require(_0x881e('0xc'));var deskjs=require(_0x881e('0xd'));var toCsv=require(_0x881e('0xe'));var querystring=require(_0x881e('0xf'));var Papa=require(_0x881e('0x10'));var Redis=require(_0x881e('0x11'));var authService=require(_0x881e('0x12'));var qs=require(_0x881e('0x13'));var as=require(_0x881e('0x14'));var hardwareService=require(_0x881e('0x15'));var logger=require(_0x881e('0x16'))('api');var utils=require(_0x881e('0x17'));var config=require(_0x881e('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x881e('0x19'))['db'];var extensions=require(_0x881e('0x1a'));function respondWithStatusCode(_0x1d1924,_0x4aa139){_0x4aa139=_0x4aa139||0xcc;return function(_0x19ddd4){if(_0x19ddd4){return _0x1d1924['sendStatus'](_0x4aa139);}return _0x1d1924[_0x881e('0x1b')](_0x4aa139)[_0x881e('0x1c')]();};}function respondWithResult(_0xc7dd9,_0x18b31e){_0x18b31e=_0x18b31e||0xc8;return function(_0x409e86){if(_0x409e86){return _0xc7dd9[_0x881e('0x1b')](_0x18b31e)[_0x881e('0x1d')](_0x409e86);}};}function respondWithFilteredResult(_0x5d0ba2,_0xfa0231){return function(_0x604290){if(_0x604290){var _0x25194d=typeof _0xfa0231[_0x881e('0x1e')]===_0x881e('0x1f')&&typeof _0xfa0231['limit']===_0x881e('0x1f');var _0x5d677b=_0x604290[_0x881e('0x20')];var _0x2326e9=_0x25194d?0x0:_0xfa0231['offset'];var _0xa06a33=_0x25194d?_0x604290[_0x881e('0x20')]:_0xfa0231[_0x881e('0x1e')]+_0xfa0231['limit'];var _0x55cb44;if(_0xa06a33>=_0x5d677b){_0xa06a33=_0x5d677b;_0x55cb44=0xc8;}else{_0x55cb44=0xce;}_0x5d0ba2[_0x881e('0x1b')](_0x55cb44);return _0x5d0ba2[_0x881e('0x21')](_0x881e('0x22'),_0x2326e9+'-'+_0xa06a33+'/'+_0x5d677b)[_0x881e('0x1d')](_0x604290);}return null;};}function patchUpdates(_0x2dce34){return function(_0x2a5540){try{jsonpatch[_0x881e('0x23')](_0x2a5540,_0x2dce34,!![]);}catch(_0xa0e9db){return BPromise['reject'](_0xa0e9db);}return _0x2a5540[_0x881e('0x24')]();};}function saveUpdates(_0x13bb6e,_0x5b04df){return function(_0x1f465c){if(_0x1f465c){return _0x1f465c[_0x881e('0x25')](_0x13bb6e)[_0x881e('0x26')](function(_0x59e9e6){return _0x59e9e6;});}return null;};}function removeEntity(_0x1fbb48,_0x3b9673){return function(_0x4729a4){if(_0x4729a4){return _0x4729a4[_0x881e('0x27')]()[_0x881e('0x26')](function(){var _0x348ed4=_0x4729a4[_0x881e('0x28')]({'plain':!![]});var _0x241c85=_0x881e('0x29');return db[_0x881e('0x2a')]['destroy']({'where':{'type':_0x241c85,'resourceId':_0x348ed4['id']}})[_0x881e('0x26')](function(){return _0x4729a4;});})['then'](function(){_0x1fbb48['status'](0xcc)[_0x881e('0x1c')]();});}};}function handleEntityNotFound(_0x1f5eca,_0x143dab){return function(_0x3463af){if(!_0x3463af){_0x1f5eca['sendStatus'](0x194);}return _0x3463af;};}function handleError(_0x9b0390,_0x21ebae){_0x21ebae=_0x21ebae||0x1f4;return function(_0x4dfe9f){logger[_0x881e('0x2b')](_0x4dfe9f[_0x881e('0x2c')]);if(_0x4dfe9f[_0x881e('0x2d')]){delete _0x4dfe9f[_0x881e('0x2d')];}_0x9b0390[_0x881e('0x1b')](_0x21ebae)['send'](_0x4dfe9f);};}exports[_0x881e('0x2e')]=function(_0x1a5457,_0x455073){var _0x48640c={},_0x1fc8f9={},_0x5bd6c4={'count':0x0,'rows':[]};var _0x1063c9=_[_0x881e('0x2f')](db['Interval'][_0x881e('0x30')],function(_0x50c403){return{'name':_0x50c403['fieldName'],'type':_0x50c403['type'][_0x881e('0x31')]};});_0x1fc8f9[_0x881e('0x32')]=_[_0x881e('0x2f')](_0x1063c9,_0x881e('0x2d'));_0x1fc8f9[_0x881e('0x33')]=_[_0x881e('0x34')](_0x1a5457[_0x881e('0x33')]);_0x1fc8f9['filters']=_[_0x881e('0x35')](_0x1fc8f9[_0x881e('0x32')],_0x1fc8f9['query']);_0x48640c[_0x881e('0x36')]=_[_0x881e('0x35')](_0x1fc8f9[_0x881e('0x32')],qs[_0x881e('0x37')](_0x1a5457[_0x881e('0x33')][_0x881e('0x37')]));_0x48640c[_0x881e('0x36')]=_0x48640c[_0x881e('0x36')]['length']?_0x48640c['attributes']:_0x1fc8f9['model'];if(!_0x1a5457[_0x881e('0x33')][_0x881e('0x38')](_0x881e('0x39'))){_0x48640c['limit']=qs[_0x881e('0x3a')](_0x1a5457['query'][_0x881e('0x3a')]);_0x48640c[_0x881e('0x1e')]=qs[_0x881e('0x1e')](_0x1a5457[_0x881e('0x33')]['offset']);}_0x48640c[_0x881e('0x3b')]=qs[_0x881e('0x3c')](_0x1a5457[_0x881e('0x33')][_0x881e('0x3c')]);_0x48640c['where']=qs[_0x881e('0x3d')](_[_0x881e('0x3e')](_0x1a5457[_0x881e('0x33')],_0x1fc8f9['filters']),_0x1063c9);if(_0x1a5457[_0x881e('0x33')][_0x881e('0x3f')]){_0x48640c['where']=_[_0x881e('0x40')](_0x48640c[_0x881e('0x41')],{'$or':_[_0x881e('0x2f')](_0x1063c9,function(_0x33b7a3){if(_0x33b7a3['type']!=='VIRTUAL'){var _0x55392b={};_0x55392b[_0x33b7a3[_0x881e('0x2d')]]={'$like':'%'+_0x1a5457[_0x881e('0x33')][_0x881e('0x3f')]+'%'};return _0x55392b;}})});}_0x48640c=_[_0x881e('0x40')]({},_0x48640c,_0x1a5457['options']);var _0xa3710c={'where':_0x48640c[_0x881e('0x41')]};return db[_0x881e('0x42')]['count'](_0xa3710c)[_0x881e('0x26')](function(_0x427147){_0x5bd6c4['count']=_0x427147;if(_0x1a5457[_0x881e('0x33')]['includeAll']){_0x48640c[_0x881e('0x43')]=[{'all':!![]}];}return db['Interval'][_0x881e('0x44')](_0x48640c);})['then'](function(_0x4ec486){_0x5bd6c4[_0x881e('0x45')]=_0x4ec486;return _0x5bd6c4;})[_0x881e('0x26')](respondWithFilteredResult(_0x455073,_0x48640c))[_0x881e('0x46')](handleError(_0x455073,null));};exports[_0x881e('0x47')]=function(_0x2832b6,_0xe3ac73){var _0x36ae65={'raw':!![],'where':{'id':_0x2832b6[_0x881e('0x48')]['id']}},_0x292cbd={};_0x292cbd[_0x881e('0x32')]=_[_0x881e('0x34')](db[_0x881e('0x42')][_0x881e('0x30')]);_0x292cbd[_0x881e('0x33')]=_[_0x881e('0x34')](_0x2832b6['query']);_0x292cbd[_0x881e('0x3d')]=_[_0x881e('0x35')](_0x292cbd[_0x881e('0x32')],_0x292cbd['query']);_0x36ae65[_0x881e('0x36')]=_[_0x881e('0x35')](_0x292cbd[_0x881e('0x32')],qs[_0x881e('0x37')](_0x2832b6[_0x881e('0x33')]['fields']));_0x36ae65[_0x881e('0x36')]=_0x36ae65[_0x881e('0x36')][_0x881e('0x49')]?_0x36ae65[_0x881e('0x36')]:_0x292cbd[_0x881e('0x32')];if(_0x2832b6[_0x881e('0x33')][_0x881e('0x4a')]){_0x36ae65[_0x881e('0x43')]=[{'all':!![]}];}_0x36ae65=_[_0x881e('0x40')]({},_0x36ae65,_0x2832b6[_0x881e('0x4b')]);return db[_0x881e('0x42')][_0x881e('0x4c')](_0x36ae65)[_0x881e('0x26')](handleEntityNotFound(_0xe3ac73,null))['then'](respondWithResult(_0xe3ac73,null))['catch'](handleError(_0xe3ac73,null));};exports['create']=function(_0x1df077,_0x1d103e){return db[_0x881e('0x42')][_0x881e('0x4d')](_0x1df077[_0x881e('0x4e')],{})[_0x881e('0x26')](function(_0x3e6dde){var _0x1acceb=_0x1df077[_0x881e('0x4f')][_0x881e('0x28')]({'plain':!![]});if(!_0x1acceb)throw new Error(_0x881e('0x50'));if(_0x1acceb['role']===_0x881e('0x4f')){var _0x5574d6=_0x3e6dde[_0x881e('0x28')]({'plain':!![]});var _0x105d34=_0x881e('0x29');return db[_0x881e('0x51')][_0x881e('0x4c')]({'where':{'name':_0x105d34,'userProfileId':_0x1acceb[_0x881e('0x52')]},'raw':!![]})[_0x881e('0x26')](function(_0x9b6598){if(_0x9b6598&&_0x9b6598[_0x881e('0x53')]===0x0){return db[_0x881e('0x2a')][_0x881e('0x4d')]({'name':_0x5574d6[_0x881e('0x2d')],'resourceId':_0x5574d6['id'],'type':_0x9b6598[_0x881e('0x2d')],'sectionId':_0x9b6598['id']},{})[_0x881e('0x26')](function(){return _0x3e6dde;});}else{return _0x3e6dde;}})[_0x881e('0x46')](function(_0x5d848d){logger['error'](_0x881e('0x54'),_0x5d848d);throw _0x5d848d;});}return _0x3e6dde;})[_0x881e('0x26')](respondWithResult(_0x1d103e,0xc9))[_0x881e('0x46')](handleError(_0x1d103e,null));};exports['update']=function(_0x117ae6,_0x1bdf41){if(_0x117ae6[_0x881e('0x4e')]['id']){delete _0x117ae6[_0x881e('0x4e')]['id'];}return db['Interval']['find']({'where':{'id':_0x117ae6['params']['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x1bdf41,null))['then'](saveUpdates(_0x117ae6[_0x881e('0x4e')],null))[_0x881e('0x26')](respondWithResult(_0x1bdf41,null))[_0x881e('0x46')](handleError(_0x1bdf41,null));};exports[_0x881e('0x27')]=function(_0x39a049,_0x1e29c6){return db[_0x881e('0x42')][_0x881e('0x4c')]({'where':{'id':_0x39a049[_0x881e('0x48')]['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x1e29c6,null))[_0x881e('0x26')](removeEntity(_0x1e29c6,null))[_0x881e('0x46')](handleError(_0x1e29c6,null));};exports[_0x881e('0x55')]=function(_0x46d007,_0x2376e2,_0x467951){if(_0x46d007[_0x881e('0x4e')]['id']){delete _0x46d007[_0x881e('0x4e')]['id'];}return db[_0x881e('0x42')]['find']({'where':{'id':_0x46d007[_0x881e('0x48')]['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x2376e2,null))[_0x881e('0x26')](function(_0x5a25aa){if(_0x5a25aa){_0x46d007['body']['IntervalId']=_0x5a25aa['id'];return db['Interval']['create'](_0x46d007[_0x881e('0x4e')]);}})[_0x881e('0x26')](respondWithResult(_0x2376e2,null))[_0x881e('0x46')](handleError(_0x2376e2,null));};exports['getIntervals']=function(_0x2544af,_0x1947bf,_0xd63e4f){var _0x3969db={};var _0x3188ef={};var _0x47f454;var _0x4f3f5f;return db[_0x881e('0x42')][_0x881e('0x56')]({'where':{'id':_0x2544af['params']['id']}})['then'](handleEntityNotFound(_0x1947bf,null))[_0x881e('0x26')](function(_0x5b6a4f){if(_0x5b6a4f){_0x47f454=_0x5b6a4f;_0x3188ef['model']=_[_0x881e('0x34')](db['Interval'][_0x881e('0x30')]);_0x3188ef['query']=_[_0x881e('0x34')](_0x2544af[_0x881e('0x33')]);_0x3188ef[_0x881e('0x3d')]=_[_0x881e('0x35')](_0x3188ef[_0x881e('0x32')],_0x3188ef[_0x881e('0x33')]);_0x3969db[_0x881e('0x36')]=_['intersection'](_0x3188ef['model'],qs[_0x881e('0x37')](_0x2544af['query']['fields']));_0x3969db[_0x881e('0x36')]=_0x3969db['attributes'][_0x881e('0x49')]?_0x3969db[_0x881e('0x36')]:_0x3188ef[_0x881e('0x32')];_0x3969db[_0x881e('0x3b')]=qs[_0x881e('0x3c')](_0x2544af[_0x881e('0x33')]['sort']);_0x3969db[_0x881e('0x41')]=qs[_0x881e('0x3d')](_['pick'](_0x2544af[_0x881e('0x33')],_0x3188ef[_0x881e('0x3d')]));if(_0x2544af[_0x881e('0x33')][_0x881e('0x3f')]){_0x3969db[_0x881e('0x41')]=_[_0x881e('0x40')](_0x3969db[_0x881e('0x41')],{'$or':_[_0x881e('0x2f')](_0x3969db['attributes'],function(_0x2f4b77){var _0x57bc8c={};_0x57bc8c[_0x2f4b77]={'$like':'%'+_0x2544af['query'][_0x881e('0x3f')]+'%'};return _0x57bc8c;})});}_0x3969db=_[_0x881e('0x40')]({},_0x3969db,_0x2544af[_0x881e('0x4b')]);return _0x47f454['getIntervals'](_0x3969db);}})['then'](function(_0x3d9694){if(_0x3d9694){_0x4f3f5f=_0x3d9694[_0x881e('0x49')];if(!_0x2544af['query'][_0x881e('0x38')](_0x881e('0x39'))){_0x3969db[_0x881e('0x3a')]=qs[_0x881e('0x3a')](_0x2544af[_0x881e('0x33')][_0x881e('0x3a')]);_0x3969db[_0x881e('0x1e')]=qs[_0x881e('0x1e')](_0x2544af['query'][_0x881e('0x1e')]);}return _0x47f454[_0x881e('0x57')](_0x3969db);}})[_0x881e('0x26')](function(_0x412203){if(_0x412203){return _0x412203?{'count':_0x4f3f5f,'rows':_0x412203}:null;}})[_0x881e('0x26')](respondWithResult(_0x1947bf,null))[_0x881e('0x46')](handleError(_0x1947bf,null));};exports[_0x881e('0x58')]=function(_0x20d38b,_0x1df1de,_0x4ea848){return db[_0x881e('0x42')][_0x881e('0x56')]({'where':{'id':_0x20d38b['params']['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x1df1de,null))['then'](function(_0x7fc0b1){if(_0x7fc0b1){return db[_0x881e('0x59')]['transaction'](function(_0x2a23a3){return db['Interval']['destroy']({'where':{'IntervalId':_0x20d38b[_0x881e('0x48')]['id']},'transaction':_0x2a23a3})['then'](function(_0x4dfbe2){var _0x1f613d=_['map'](_0x20d38b['body'],function(_0x102eca){delete _0x102eca['id'];_0x102eca[_0x881e('0x5a')]=_0x20d38b[_0x881e('0x48')]['id'];return _0x102eca;});return db[_0x881e('0x42')][_0x881e('0x5b')](_0x1f613d,{'transaction':_0x2a23a3});});})[_0x881e('0x26')](function(){return db[_0x881e('0x42')][_0x881e('0x44')]({'where':{'IntervalId':_0x20d38b[_0x881e('0x48')]['id']}});});}})[_0x881e('0x26')](respondWithResult(_0x1df1de,null))['catch'](handleError(_0x1df1de,null));};
\ No newline at end of file
+var _0x7f25=['user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','addInterval','IntervalId','getIntervals','findOne','order','sort','options','nolimit','addIntervals','sequelize','transaction','destroy','bulkCreate','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','../../components/extensions/rewrite','status','json','limit','undefined','offset','count','set','apply','save','then','Intervals','stack','name','index','map','Interval','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show','params','find','create','body'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x7f25,0x177));var _0x57f2=function(_0x307086,_0x3bfe4e){_0x307086=_0x307086-0x0;var _0x699043=_0x7f25[_0x307086];return _0x699043;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x57f2('0x0'));var zipdir=require(_0x57f2('0x1'));var jsonpatch=require(_0x57f2('0x2'));var rp=require('request-promise');var moment=require(_0x57f2('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x57f2('0x4'));var util=require(_0x57f2('0x5'));var path=require(_0x57f2('0x6'));var sox=require(_0x57f2('0x7'));var csv=require(_0x57f2('0x8'));var ejs=require(_0x57f2('0x9'));var fs=require('fs');var fs_extra=require(_0x57f2('0xa'));var _=require('lodash');var squel=require(_0x57f2('0xb'));var crypto=require(_0x57f2('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x57f2('0xd'));var toCsv=require(_0x57f2('0x8'));var querystring=require(_0x57f2('0xe'));var Papa=require('papaparse');var Redis=require(_0x57f2('0xf'));var authService=require(_0x57f2('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x57f2('0x11'));var hardwareService=require(_0x57f2('0x12'));var logger=require('../../config/logger')(_0x57f2('0x13'));var utils=require(_0x57f2('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x57f2('0x15'))['db'];var extensions=require(_0x57f2('0x16'));function respondWithStatusCode(_0x5eac67,_0x57071d){_0x57071d=_0x57071d||0xcc;return function(_0x6210da){if(_0x6210da){return _0x5eac67['sendStatus'](_0x57071d);}return _0x5eac67['status'](_0x57071d)['end']();};}function respondWithResult(_0x5d2324,_0x217dbb){_0x217dbb=_0x217dbb||0xc8;return function(_0x3380e7){if(_0x3380e7){return _0x5d2324[_0x57f2('0x17')](_0x217dbb)[_0x57f2('0x18')](_0x3380e7);}};}function respondWithFilteredResult(_0x1c621f,_0x431a0c){return function(_0x234a44){if(_0x234a44){var _0x48a3bf=typeof _0x431a0c['offset']==='undefined'&&typeof _0x431a0c[_0x57f2('0x19')]===_0x57f2('0x1a');var _0x3a14e0=_0x234a44['count'];var _0x1c92c0=_0x48a3bf?0x0:_0x431a0c[_0x57f2('0x1b')];var _0xeda7d2=_0x48a3bf?_0x234a44[_0x57f2('0x1c')]:_0x431a0c['offset']+_0x431a0c[_0x57f2('0x19')];var _0x518bc4;if(_0xeda7d2>=_0x3a14e0){_0xeda7d2=_0x3a14e0;_0x518bc4=0xc8;}else{_0x518bc4=0xce;}_0x1c621f[_0x57f2('0x17')](_0x518bc4);return _0x1c621f[_0x57f2('0x1d')]('Content-Range',_0x1c92c0+'-'+_0xeda7d2+'/'+_0x3a14e0)[_0x57f2('0x18')](_0x234a44);}return null;};}function patchUpdates(_0x4f1600){return function(_0x13f201){try{jsonpatch[_0x57f2('0x1e')](_0x13f201,_0x4f1600,!![]);}catch(_0x3fb719){return BPromise['reject'](_0x3fb719);}return _0x13f201[_0x57f2('0x1f')]();};}function saveUpdates(_0x4f7aa7,_0x5084f2){return function(_0x5bf04c){if(_0x5bf04c){return _0x5bf04c['update'](_0x4f7aa7)['then'](function(_0x196618){return _0x196618;});}return null;};}function removeEntity(_0x553d74,_0x2eec26){return function(_0x4c127d){if(_0x4c127d){return _0x4c127d['destroy']()[_0x57f2('0x20')](function(){var _0xd439b9=_0x4c127d['get']({'plain':!![]});var _0x301f07=_0x57f2('0x21');return db['UserProfileResource']['destroy']({'where':{'type':_0x301f07,'resourceId':_0xd439b9['id']}})[_0x57f2('0x20')](function(){return _0x4c127d;});})['then'](function(){_0x553d74['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x22f11f,_0x477412){return function(_0x3484f2){if(!_0x3484f2){_0x22f11f['sendStatus'](0x194);}return _0x3484f2;};}function handleError(_0x4fb9c,_0x34318a){_0x34318a=_0x34318a||0x1f4;return function(_0x380638){logger['error'](_0x380638[_0x57f2('0x22')]);if(_0x380638[_0x57f2('0x23')]){delete _0x380638['name'];}_0x4fb9c[_0x57f2('0x17')](_0x34318a)['send'](_0x380638);};}exports[_0x57f2('0x24')]=function(_0x1a13cc,_0x32cb43){var _0x522cca={},_0x5790ce={},_0x3a1ce6={'count':0x0,'rows':[]};var _0xa6d540=_[_0x57f2('0x25')](db[_0x57f2('0x26')][_0x57f2('0x27')],function(_0x568168){return{'name':_0x568168['fieldName'],'type':_0x568168[_0x57f2('0x28')][_0x57f2('0x29')]};});_0x5790ce[_0x57f2('0x2a')]=_[_0x57f2('0x25')](_0xa6d540,_0x57f2('0x23'));_0x5790ce[_0x57f2('0x2b')]=_[_0x57f2('0x2c')](_0x1a13cc['query']);_0x5790ce[_0x57f2('0x2d')]=_[_0x57f2('0x2e')](_0x5790ce['model'],_0x5790ce[_0x57f2('0x2b')]);_0x522cca[_0x57f2('0x2f')]=_[_0x57f2('0x2e')](_0x5790ce['model'],qs[_0x57f2('0x30')](_0x1a13cc[_0x57f2('0x2b')][_0x57f2('0x30')]));_0x522cca[_0x57f2('0x2f')]=_0x522cca[_0x57f2('0x2f')][_0x57f2('0x31')]?_0x522cca[_0x57f2('0x2f')]:_0x5790ce['model'];if(!_0x1a13cc[_0x57f2('0x2b')][_0x57f2('0x32')]('nolimit')){_0x522cca['limit']=qs[_0x57f2('0x19')](_0x1a13cc['query'][_0x57f2('0x19')]);_0x522cca[_0x57f2('0x1b')]=qs[_0x57f2('0x1b')](_0x1a13cc[_0x57f2('0x2b')][_0x57f2('0x1b')]);}_0x522cca['order']=qs['sort'](_0x1a13cc[_0x57f2('0x2b')]['sort']);_0x522cca[_0x57f2('0x33')]=qs[_0x57f2('0x2d')](_[_0x57f2('0x34')](_0x1a13cc['query'],_0x5790ce[_0x57f2('0x2d')]),_0xa6d540);if(_0x1a13cc[_0x57f2('0x2b')][_0x57f2('0x35')]){_0x522cca['where']=_[_0x57f2('0x36')](_0x522cca['where'],{'$or':_[_0x57f2('0x25')](_0xa6d540,function(_0x80a5b1){if(_0x80a5b1[_0x57f2('0x28')]!==_0x57f2('0x37')){var _0x375c86={};_0x375c86[_0x80a5b1[_0x57f2('0x23')]]={'$like':'%'+_0x1a13cc[_0x57f2('0x2b')][_0x57f2('0x35')]+'%'};return _0x375c86;}})});}_0x522cca=_[_0x57f2('0x36')]({},_0x522cca,_0x1a13cc['options']);var _0x452550={'where':_0x522cca[_0x57f2('0x33')]};return db['Interval'][_0x57f2('0x1c')](_0x452550)[_0x57f2('0x20')](function(_0x149dbe){_0x3a1ce6[_0x57f2('0x1c')]=_0x149dbe;if(_0x1a13cc[_0x57f2('0x2b')][_0x57f2('0x38')]){_0x522cca[_0x57f2('0x39')]=[{'all':!![]}];}return db[_0x57f2('0x26')][_0x57f2('0x3a')](_0x522cca);})[_0x57f2('0x20')](function(_0x454c0f){_0x3a1ce6['rows']=_0x454c0f;return _0x3a1ce6;})[_0x57f2('0x20')](respondWithFilteredResult(_0x32cb43,_0x522cca))[_0x57f2('0x3b')](handleError(_0x32cb43,null));};exports[_0x57f2('0x3c')]=function(_0xf1980,_0x4142a6){var _0x144dec={'raw':!![],'where':{'id':_0xf1980[_0x57f2('0x3d')]['id']}},_0x42fa19={};_0x42fa19[_0x57f2('0x2a')]=_['keys'](db[_0x57f2('0x26')][_0x57f2('0x27')]);_0x42fa19[_0x57f2('0x2b')]=_['keys'](_0xf1980[_0x57f2('0x2b')]);_0x42fa19[_0x57f2('0x2d')]=_[_0x57f2('0x2e')](_0x42fa19[_0x57f2('0x2a')],_0x42fa19['query']);_0x144dec[_0x57f2('0x2f')]=_[_0x57f2('0x2e')](_0x42fa19[_0x57f2('0x2a')],qs[_0x57f2('0x30')](_0xf1980[_0x57f2('0x2b')][_0x57f2('0x30')]));_0x144dec[_0x57f2('0x2f')]=_0x144dec[_0x57f2('0x2f')]['length']?_0x144dec[_0x57f2('0x2f')]:_0x42fa19[_0x57f2('0x2a')];if(_0xf1980[_0x57f2('0x2b')][_0x57f2('0x38')]){_0x144dec[_0x57f2('0x39')]=[{'all':!![]}];}_0x144dec=_[_0x57f2('0x36')]({},_0x144dec,_0xf1980['options']);return db[_0x57f2('0x26')][_0x57f2('0x3e')](_0x144dec)[_0x57f2('0x20')](handleEntityNotFound(_0x4142a6,null))[_0x57f2('0x20')](respondWithResult(_0x4142a6,null))['catch'](handleError(_0x4142a6,null));};exports[_0x57f2('0x3f')]=function(_0x4b0f8a,_0x4225e6){return db[_0x57f2('0x26')][_0x57f2('0x3f')](_0x4b0f8a[_0x57f2('0x40')],{})[_0x57f2('0x20')](function(_0x59e2e5){var _0x7eaa7d=_0x4b0f8a[_0x57f2('0x41')][_0x57f2('0x42')]({'plain':!![]});if(!_0x7eaa7d)throw new Error(_0x57f2('0x43'));if(_0x7eaa7d[_0x57f2('0x44')]===_0x57f2('0x41')){var _0x3b2b6f=_0x59e2e5[_0x57f2('0x42')]({'plain':!![]});var _0x581e3b=_0x57f2('0x21');return db[_0x57f2('0x45')]['find']({'where':{'name':_0x581e3b,'userProfileId':_0x7eaa7d[_0x57f2('0x46')]},'raw':!![]})[_0x57f2('0x20')](function(_0x10bed6){if(_0x10bed6&&_0x10bed6[_0x57f2('0x47')]===0x0){return db[_0x57f2('0x48')][_0x57f2('0x3f')]({'name':_0x3b2b6f[_0x57f2('0x23')],'resourceId':_0x3b2b6f['id'],'type':_0x10bed6[_0x57f2('0x23')],'sectionId':_0x10bed6['id']},{})['then'](function(){return _0x59e2e5;});}else{return _0x59e2e5;}})['catch'](function(_0x153317){logger['error'](_0x57f2('0x49'),_0x153317);throw _0x153317;});}return _0x59e2e5;})['then'](respondWithResult(_0x4225e6,0xc9))[_0x57f2('0x3b')](handleError(_0x4225e6,null));};exports[_0x57f2('0x4a')]=function(_0x49f129,_0x5c35d1){if(_0x49f129['body']['id']){delete _0x49f129[_0x57f2('0x40')]['id'];}return db['Interval'][_0x57f2('0x3e')]({'where':{'id':_0x49f129[_0x57f2('0x3d')]['id']}})[_0x57f2('0x20')](handleEntityNotFound(_0x5c35d1,null))[_0x57f2('0x20')](saveUpdates(_0x49f129[_0x57f2('0x40')],null))['then'](respondWithResult(_0x5c35d1,null))['catch'](handleError(_0x5c35d1,null));};exports['destroy']=function(_0x379dd8,_0x2b71dd){return db[_0x57f2('0x26')][_0x57f2('0x3e')]({'where':{'id':_0x379dd8[_0x57f2('0x3d')]['id']}})[_0x57f2('0x20')](handleEntityNotFound(_0x2b71dd,null))[_0x57f2('0x20')](removeEntity(_0x2b71dd,null))[_0x57f2('0x3b')](handleError(_0x2b71dd,null));};exports[_0x57f2('0x4b')]=function(_0x1ce547,_0xbddea1,_0x2312a3){if(_0x1ce547[_0x57f2('0x40')]['id']){delete _0x1ce547[_0x57f2('0x40')]['id'];}return db['Interval']['find']({'where':{'id':_0x1ce547['params']['id']}})[_0x57f2('0x20')](handleEntityNotFound(_0xbddea1,null))[_0x57f2('0x20')](function(_0x5392e8){if(_0x5392e8){_0x1ce547[_0x57f2('0x40')][_0x57f2('0x4c')]=_0x5392e8['id'];return db[_0x57f2('0x26')][_0x57f2('0x3f')](_0x1ce547[_0x57f2('0x40')]);}})[_0x57f2('0x20')](respondWithResult(_0xbddea1,null))[_0x57f2('0x3b')](handleError(_0xbddea1,null));};exports[_0x57f2('0x4d')]=function(_0x325d74,_0x18d0ac,_0x4363ae){var _0x143e08={};var _0x11881c={};var _0x2c53f6;var _0x517f95;return db[_0x57f2('0x26')][_0x57f2('0x4e')]({'where':{'id':_0x325d74[_0x57f2('0x3d')]['id']}})[_0x57f2('0x20')](handleEntityNotFound(_0x18d0ac,null))[_0x57f2('0x20')](function(_0x3c00a8){if(_0x3c00a8){_0x2c53f6=_0x3c00a8;_0x11881c[_0x57f2('0x2a')]=_[_0x57f2('0x2c')](db[_0x57f2('0x26')][_0x57f2('0x27')]);_0x11881c['query']=_['keys'](_0x325d74['query']);_0x11881c[_0x57f2('0x2d')]=_[_0x57f2('0x2e')](_0x11881c[_0x57f2('0x2a')],_0x11881c[_0x57f2('0x2b')]);_0x143e08['attributes']=_[_0x57f2('0x2e')](_0x11881c[_0x57f2('0x2a')],qs[_0x57f2('0x30')](_0x325d74[_0x57f2('0x2b')][_0x57f2('0x30')]));_0x143e08['attributes']=_0x143e08[_0x57f2('0x2f')][_0x57f2('0x31')]?_0x143e08[_0x57f2('0x2f')]:_0x11881c[_0x57f2('0x2a')];_0x143e08[_0x57f2('0x4f')]=qs[_0x57f2('0x50')](_0x325d74[_0x57f2('0x2b')][_0x57f2('0x50')]);_0x143e08[_0x57f2('0x33')]=qs[_0x57f2('0x2d')](_[_0x57f2('0x34')](_0x325d74['query'],_0x11881c[_0x57f2('0x2d')]));if(_0x325d74[_0x57f2('0x2b')][_0x57f2('0x35')]){_0x143e08[_0x57f2('0x33')]=_[_0x57f2('0x36')](_0x143e08[_0x57f2('0x33')],{'$or':_[_0x57f2('0x25')](_0x143e08[_0x57f2('0x2f')],function(_0x50867a){var _0x5e1deb={};_0x5e1deb[_0x50867a]={'$like':'%'+_0x325d74[_0x57f2('0x2b')]['filter']+'%'};return _0x5e1deb;})});}_0x143e08=_[_0x57f2('0x36')]({},_0x143e08,_0x325d74[_0x57f2('0x51')]);return _0x2c53f6[_0x57f2('0x4d')](_0x143e08);}})[_0x57f2('0x20')](function(_0x2bd258){if(_0x2bd258){_0x517f95=_0x2bd258['length'];if(!_0x325d74['query'][_0x57f2('0x32')](_0x57f2('0x52'))){_0x143e08['limit']=qs['limit'](_0x325d74['query'][_0x57f2('0x19')]);_0x143e08[_0x57f2('0x1b')]=qs[_0x57f2('0x1b')](_0x325d74[_0x57f2('0x2b')][_0x57f2('0x1b')]);}return _0x2c53f6[_0x57f2('0x4d')](_0x143e08);}})[_0x57f2('0x20')](function(_0x5897df){if(_0x5897df){return _0x5897df?{'count':_0x517f95,'rows':_0x5897df}:null;}})[_0x57f2('0x20')](respondWithResult(_0x18d0ac,null))[_0x57f2('0x3b')](handleError(_0x18d0ac,null));};exports[_0x57f2('0x53')]=function(_0x4ef3c8,_0x3ce6ce,_0x421994){return db[_0x57f2('0x26')]['findOne']({'where':{'id':_0x4ef3c8['params']['id']}})[_0x57f2('0x20')](handleEntityNotFound(_0x3ce6ce,null))['then'](function(_0x128fde){if(_0x128fde){return db[_0x57f2('0x54')][_0x57f2('0x55')](function(_0xbf6fa5){return db['Interval'][_0x57f2('0x56')]({'where':{'IntervalId':_0x4ef3c8[_0x57f2('0x3d')]['id']},'transaction':_0xbf6fa5})['then'](function(_0x4da5e4){var _0x58f904=_[_0x57f2('0x25')](_0x4ef3c8[_0x57f2('0x40')],function(_0x23f8fb){delete _0x23f8fb['id'];_0x23f8fb['IntervalId']=_0x4ef3c8[_0x57f2('0x3d')]['id'];return _0x23f8fb;});return db['Interval'][_0x57f2('0x57')](_0x58f904,{'transaction':_0xbf6fa5});});})[_0x57f2('0x20')](function(){return db[_0x57f2('0x26')][_0x57f2('0x3a')]({'where':{'IntervalId':_0x4ef3c8[_0x57f2('0x3d')]['id']}});});}})['then'](respondWithResult(_0x3ce6ce,null))[_0x57f2('0x3b')](handleError(_0x3ce6ce,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ee0=['exports','define','Interval','tools_intervals','rewrite','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x8d631,_0x20bdb5){var _0x53647f=function(_0x1c065e){while(--_0x1c065e){_0x8d631['push'](_0x8d631['shift']());}};_0x53647f(++_0x20bdb5);}(_0x7ee0,0x123));var _0x07ee=function(_0x472b3f,_0x560d13){_0x472b3f=_0x472b3f-0x0;var _0x20abe1=_0x7ee0[_0x472b3f];return _0x20abe1;};'use strict';var _=require('lodash');var util=require(_0x07ee('0x0'));var logger=require('../../config/logger')(_0x07ee('0x1'));var moment=require(_0x07ee('0x2'));var BPromise=require(_0x07ee('0x3'));var rp=require(_0x07ee('0x4'));var fs=require('fs');var path=require(_0x07ee('0x5'));var rimraf=require(_0x07ee('0x6'));var config=require(_0x07ee('0x7'));var attributes=require('./interval.attributes');var extensions=require('../../components/extensions/rewrite');module[_0x07ee('0x8')]=function(_0x4c4aca,_0xdbdfb5){return _0x4c4aca[_0x07ee('0x9')](_0x07ee('0xa'),attributes,{'tableName':_0x07ee('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5add8d,_0x4388d6){extensions[_0x07ee('0xc')](_0x4c4aca,_0x5add8d);},'afterBulkCreate':function(_0x4bbf4b,_0x88029f,_0x11201a){_0x11201a();extensions[_0x07ee('0xc')](_0x4c4aca,_0x4bbf4b[0x0]);},'afterUpdate':function(_0x538ff4,_0x27d426){extensions['rewrite'](_0x4c4aca,_0x538ff4);},'afterDestroy':function(_0x10271d,_0x2a0998){extensions[_0x07ee('0xc')](_0x4c4aca,_0x10271d);}}});};
\ No newline at end of file
+var _0x2d8c=['rimraf','../../config/environment','./interval.attributes','Interval','tools_intervals','rewrite','lodash','util','../../config/logger','api','bluebird','request-promise','path'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x2d8c,0x14b));var _0xc2d8=function(_0x1602ef,_0x447aba){_0x1602ef=_0x1602ef-0x0;var _0x5870ee=_0x2d8c[_0x1602ef];return _0x5870ee;};'use strict';var _=require(_0xc2d8('0x0'));var util=require(_0xc2d8('0x1'));var logger=require(_0xc2d8('0x2'))(_0xc2d8('0x3'));var moment=require('moment');var BPromise=require(_0xc2d8('0x4'));var rp=require(_0xc2d8('0x5'));var fs=require('fs');var path=require(_0xc2d8('0x6'));var rimraf=require(_0xc2d8('0x7'));var config=require(_0xc2d8('0x8'));var attributes=require(_0xc2d8('0x9'));var extensions=require('../../components/extensions/rewrite');module['exports']=function(_0x18ddc5,_0x38275a){return _0x18ddc5['define'](_0xc2d8('0xa'),attributes,{'tableName':_0xc2d8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x35cca2,_0x25cc42){extensions['rewrite'](_0x18ddc5,_0x35cca2);},'afterBulkCreate':function(_0x414aad,_0x5f062a,_0x12c09a){_0x12c09a();extensions[_0xc2d8('0xc')](_0x18ddc5,_0x414aad[0x0]);},'afterUpdate':function(_0xbc4901,_0xac5e6d){extensions[_0xc2d8('0xc')](_0x18ddc5,_0xbc4901);},'afterDestroy':function(_0x4be6cc,_0x41f8ca){extensions['rewrite'](_0x18ddc5,_0x4be6cc);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0x30a31e,_0x31f766){var _0x170879=function(_0x313ee7){while(--_0x313ee7){_0x30a31e['push'](_0x30a31e['shift']());}};_0x170879(++_0x31f766);}(_0xa9e0,0x123));var _0x0a9e=function(_0x40ac5e,_0x2de228){_0x40ac5e=_0x40ac5e-0x0;var _0x2839d6=_0xa9e0[_0x40ac5e];return _0x2839d6;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
+var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0x3c4dad,_0x25ffd5){var _0x1a4f49=function(_0x6fe6c){while(--_0x6fe6c){_0x3c4dad['push'](_0x3c4dad['shift']());}};_0x1a4f49(++_0x25ffd5);}(_0xa9e0,0x123));var _0x0a9e=function(_0x481bf7,_0x437f69){_0x481bf7=_0x481bf7-0x0;var _0x461787=_0xa9e0[_0x481bf7];return _0x461787;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['exports','express','../../components/auth/service','post','isAuthenticated','send'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0x0b0e,0x187));var _0xe0b0=function(_0x21bb2f,_0x4199b9){_0x21bb2f=_0x21bb2f-0x0;var _0x279b0e=_0x0b0e[_0x21bb2f];return _0x279b0e;};'use strict';var express=require(_0xe0b0('0x0'));var router=express['Router']();var auth=require(_0xe0b0('0x1'));var controller=require('./jira.controller');router[_0xe0b0('0x2')]('/',auth[_0xe0b0('0x3')](),controller[_0xe0b0('0x4')]);module[_0xe0b0('0x5')]=router;
\ No newline at end of file
+var _0xdb28=['isAuthenticated','send','exports','express','Router','../../components/auth/service','./jira.controller'];(function(_0x2cc8f4,_0x3c324e){var _0x229954=function(_0x412d30){while(--_0x412d30){_0x2cc8f4['push'](_0x2cc8f4['shift']());}};_0x229954(++_0x3c324e);}(_0xdb28,0x106));var _0x8db2=function(_0x556e08,_0x2a7963){_0x556e08=_0x556e08-0x0;var _0x5ed337=_0xdb28[_0x556e08];return _0x5ed337;};'use strict';var express=require(_0x8db2('0x0'));var router=express[_0x8db2('0x1')]();var auth=require(_0x8db2('0x2'));var controller=require(_0x8db2('0x3'));router['post']('/',auth[_0x8db2('0x4')](),controller[_0x8db2('0x5')]);module[_0x8db2('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58f8=['name','customfield_11504','reason','customfield_10102','track.xcallymotion.com','/rest/api/2/issue','POST','Basic\x20','toString','base64','setEncoding','utf8','data','end','status','statusCode','json','parse','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','write','openIssue','send','body','headers','x-forwarded-for','remoteAddress','socket','connection','bluebird','https','../../config/logger','api','3eAmWpBVP0','key','summary','Report','\x20from\x20','stringify','issuetype','Bug','customfield_11500','fields','oldToken','customfield_11502'];(function(_0x5d9469,_0x1f6755){var _0x56f815=function(_0x3f82d6){while(--_0x3f82d6){_0x5d9469['push'](_0x5d9469['shift']());}};_0x56f815(++_0x1f6755);}(_0x58f8,0x17c));var _0x858f=function(_0xa173d9,_0x13f3cc){_0xa173d9=_0xa173d9-0x0;var _0xd4711c=_0x58f8[_0xa173d9];return _0xd4711c;};'use strict';var BPromise=require(_0x858f('0x0'));var https=require(_0x858f('0x1'));var logger=require(_0x858f('0x2'))(_0x858f('0x3'));var USERNAME='support';var PASSWORD=_0x858f('0x4');function openIssue(_0x52222c,_0x13f30d){var _0x5923b8={'fields':{'project':{'key':_0x52222c[_0x858f('0x5')]||'MOTGUI'},'summary':(_0x52222c[_0x858f('0x6')]||_0x858f('0x7'))+_0x858f('0x8')+_0x52222c['ip'],'description':_0x52222c['description']||JSON[_0x858f('0x9')](_0x52222c),'issuetype':{'name':_0x52222c[_0x858f('0xa')]||_0x858f('0xb')}}};_0x5923b8['fields'][_0x858f('0xc')]=_0x52222c['email'];_0x5923b8[_0x858f('0xd')]['customfield_11501']=_0x52222c[_0x858f('0xe')];_0x5923b8['fields'][_0x858f('0xf')]=_0x52222c['newToken'];_0x5923b8[_0x858f('0xd')]['customfield_11503']=_0x52222c[_0x858f('0x10')];_0x5923b8[_0x858f('0xd')][_0x858f('0x11')]=_0x52222c[_0x858f('0x12')];_0x5923b8[_0x858f('0xd')][_0x858f('0x13')]=_0x52222c['ip'];var _0x305e9c={'host':_0x858f('0x14'),'port':0x1bb,'path':_0x858f('0x15'),'method':_0x858f('0x16'),'timeout':0x4e20,'headers':{'Content-Type':'application/json','Authorization':_0x858f('0x17')+new Buffer(USERNAME+':'+PASSWORD)[_0x858f('0x18')](_0x858f('0x19'))}};var _0x1c5769=JSON[_0x858f('0x9')](_0x5923b8);var _0x531375=https['request'](_0x305e9c,function(_0x23c31d){_0x23c31d[_0x858f('0x1a')](_0x858f('0x1b'));var _0x572be4='';_0x23c31d['on'](_0x858f('0x1c'),function(_0x1b179e){_0x572be4+=_0x1b179e;});_0x23c31d['on'](_0x858f('0x1d'),function(){if(_0x13f30d){return _0x13f30d[_0x858f('0x1e')](_0x23c31d[_0x858f('0x1f')])[_0x858f('0x20')](JSON[_0x858f('0x21')](_0x572be4));}});});_0x531375['on']('error',function(_0x488ffb){if(_0x13f30d){return _0x13f30d[_0x858f('0x1e')](0x1f4)['json']({'errors':[{'message':_0x858f('0x22'),'type':'api.jira'}]});}});_0x531375[_0x858f('0x23')](_0x1c5769);_0x531375[_0x858f('0x1d')]();}exports[_0x858f('0x24')]=openIssue;exports[_0x858f('0x25')]=function(_0x262817,_0x5a55be){_0x262817[_0x858f('0x26')]['ip']=_0x262817[_0x858f('0x27')][_0x858f('0x28')]||_0x262817['connection'][_0x858f('0x29')]||_0x262817[_0x858f('0x2a')][_0x858f('0x29')]||_0x262817[_0x858f('0x2b')][_0x858f('0x2a')][_0x858f('0x29')];return openIssue(_0x262817['body'],_0x5a55be);};
\ No newline at end of file
+var _0x2177=['x-forwarded-for','connection','remoteAddress','socket','bluebird','https','../../config/logger','api','3eAmWpBVP0','MOTGUI','Report','\x20from\x20','description','stringify','email','fields','customfield_11501','oldToken','customfield_11502','newToken','customfield_11503','name','customfield_11504','reason','customfield_10102','track.xcallymotion.com','POST','application/json','Basic\x20','toString','request','setEncoding','utf8','data','status','statusCode','json','parse','error','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','api.jira','write','end','body'];(function(_0x3e02b9,_0x150742){var _0x1dd63f=function(_0x4c88bd){while(--_0x4c88bd){_0x3e02b9['push'](_0x3e02b9['shift']());}};_0x1dd63f(++_0x150742);}(_0x2177,0x164));var _0x7217=function(_0x3be2e2,_0x5c166d){_0x3be2e2=_0x3be2e2-0x0;var _0x53b9c5=_0x2177[_0x3be2e2];return _0x53b9c5;};'use strict';var BPromise=require(_0x7217('0x0'));var https=require(_0x7217('0x1'));var logger=require(_0x7217('0x2'))(_0x7217('0x3'));var USERNAME='support';var PASSWORD=_0x7217('0x4');function openIssue(_0x3aa923,_0x3adc53){var _0x1d23a8={'fields':{'project':{'key':_0x3aa923['key']||_0x7217('0x5')},'summary':(_0x3aa923['summary']||_0x7217('0x6'))+_0x7217('0x7')+_0x3aa923['ip'],'description':_0x3aa923[_0x7217('0x8')]||JSON[_0x7217('0x9')](_0x3aa923),'issuetype':{'name':_0x3aa923['issuetype']||'Bug'}}};_0x1d23a8['fields']['customfield_11500']=_0x3aa923[_0x7217('0xa')];_0x1d23a8[_0x7217('0xb')][_0x7217('0xc')]=_0x3aa923[_0x7217('0xd')];_0x1d23a8[_0x7217('0xb')][_0x7217('0xe')]=_0x3aa923[_0x7217('0xf')];_0x1d23a8['fields'][_0x7217('0x10')]=_0x3aa923[_0x7217('0x11')];_0x1d23a8['fields'][_0x7217('0x12')]=_0x3aa923[_0x7217('0x13')];_0x1d23a8[_0x7217('0xb')][_0x7217('0x14')]=_0x3aa923['ip'];var _0x1855d1={'host':_0x7217('0x15'),'port':0x1bb,'path':'/rest/api/2/issue','method':_0x7217('0x16'),'timeout':0x4e20,'headers':{'Content-Type':_0x7217('0x17'),'Authorization':_0x7217('0x18')+new Buffer(USERNAME+':'+PASSWORD)[_0x7217('0x19')]('base64')}};var _0x598209=JSON['stringify'](_0x1d23a8);var _0xb8bc0f=https[_0x7217('0x1a')](_0x1855d1,function(_0x57d107){_0x57d107[_0x7217('0x1b')](_0x7217('0x1c'));var _0x2edaf8='';_0x57d107['on'](_0x7217('0x1d'),function(_0x5d66da){_0x2edaf8+=_0x5d66da;});_0x57d107['on']('end',function(){if(_0x3adc53){return _0x3adc53[_0x7217('0x1e')](_0x57d107[_0x7217('0x1f')])[_0x7217('0x20')](JSON[_0x7217('0x21')](_0x2edaf8));}});});_0xb8bc0f['on'](_0x7217('0x22'),function(_0x2ff949){if(_0x3adc53){return _0x3adc53[_0x7217('0x1e')](0x1f4)['json']({'errors':[{'message':_0x7217('0x23'),'type':_0x7217('0x24')}]});}});_0xb8bc0f[_0x7217('0x25')](_0x598209);_0xb8bc0f[_0x7217('0x26')]();}exports['openIssue']=openIssue;exports['send']=function(_0x578353,_0x16524){_0x578353[_0x7217('0x27')]['ip']=_0x578353['headers'][_0x7217('0x28')]||_0x578353[_0x7217('0x29')][_0x7217('0x2a')]||_0x578353['socket'][_0x7217('0x2a')]||_0x578353[_0x7217('0x29')][_0x7217('0x2b')][_0x7217('0x2a')];return openIssue(_0x578353['body'],_0x16524);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2750=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','get','index','/describe','isAuthenticated','/:id','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router'];(function(_0x29e35f,_0x4859ef){var _0x266b74=function(_0xc09e1){while(--_0xc09e1){_0x29e35f['push'](_0x29e35f['shift']());}};_0x266b74(++_0x4859ef);}(_0x2750,0x13b));var _0x0275=function(_0x431837,_0x2a34c9){_0x431837=_0x431837-0x0;var _0x48f194=_0x2750[_0x431837];return _0x48f194;};'use strict';var multer=require(_0x0275('0x0'));var util=require('util');var path=require(_0x0275('0x1'));var timeout=require(_0x0275('0x2'));var express=require(_0x0275('0x3'));var router=express[_0x0275('0x4')]();var fs_extra=require(_0x0275('0x5'));var auth=require(_0x0275('0x6'));var interaction=require(_0x0275('0x7'));var config=require(_0x0275('0x8'));var controller=require(_0x0275('0x9'));router[_0x0275('0xa')]('/',auth['isAuthenticated'](),controller[_0x0275('0xb')]);router[_0x0275('0xa')](_0x0275('0xc'),auth[_0x0275('0xd')](),controller['describe']);router[_0x0275('0xa')](_0x0275('0xe'),auth[_0x0275('0xd')](),controller['show']);router['post']('/',auth[_0x0275('0xd')](),controller['create']);router[_0x0275('0xf')](_0x0275('0xe'),auth[_0x0275('0xd')](),controller[_0x0275('0x10')]);router[_0x0275('0x11')]('/:id',auth[_0x0275('0xd')](),controller[_0x0275('0x12')]);module[_0x0275('0x13')]=router;
\ No newline at end of file
+var _0xa74f=['/describe','isAuthenticated','describe','show','post','put','/:id','update','delete','exports','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./jscriptyAnswerReport.controller','index','get'];(function(_0x45f4ba,_0x5498c8){var _0x44db14=function(_0x381dec){while(--_0x381dec){_0x45f4ba['push'](_0x45f4ba['shift']());}};_0x44db14(++_0x5498c8);}(_0xa74f,0x9a));var _0xfa74=function(_0x1064bc,_0x206f12){_0x1064bc=_0x1064bc-0x0;var _0x5edc45=_0xa74f[_0x1064bc];return _0x5edc45;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xfa74('0x0'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xfa74('0x1')]();var fs_extra=require(_0xfa74('0x2'));var auth=require(_0xfa74('0x3'));var interaction=require(_0xfa74('0x4'));var config=require('../../config/environment');var controller=require(_0xfa74('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0xfa74('0x6')]);router[_0xfa74('0x7')](_0xfa74('0x8'),auth[_0xfa74('0x9')](),controller[_0xfa74('0xa')]);router[_0xfa74('0x7')]('/:id',auth[_0xfa74('0x9')](),controller[_0xfa74('0xb')]);router[_0xfa74('0xc')]('/',auth[_0xfa74('0x9')](),controller['create']);router[_0xfa74('0xd')](_0xfa74('0xe'),auth['isAuthenticated'](),controller[_0xfa74('0xf')]);router[_0xfa74('0x10')](_0xfa74('0xe'),auth[_0xfa74('0x9')](),controller['destroy']);module[_0xfa74('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x7a54,0x106));var _0x47a5=function(_0x199ce7,_0x1fcd83){_0x199ce7=_0x199ce7-0x0;var _0x52a10c=_0x7a54[_0x199ce7];return _0x52a10c;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x7a54,0x106));var _0x47a5=function(_0x57038a,_0x6ec148){_0x57038a=_0x57038a-0x0;var _0x1706e7=_0x7a54[_0x57038a];return _0x1706e7;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc949=['eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','offset','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','JscriptyAnswerReport','type','key','model','query','keys','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','includeAll','findAll','catch','rawAttributes','intersection','include','find','create','body','params','describe'];(function(_0x46fff0,_0x2ec3c0){var _0x259045=function(_0x2a41d3){while(--_0x2a41d3){_0x46fff0['push'](_0x46fff0['shift']());}};_0x259045(++_0x2ec3c0);}(_0xc949,0x181));var _0x9c94=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xc949[_0x491a7f];return _0x3d8f44;};'use strict';var emlformat=require(_0x9c94('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9c94('0x1'));var jsonpatch=require(_0x9c94('0x2'));var rp=require(_0x9c94('0x3'));var moment=require(_0x9c94('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9c94('0x5'));var util=require(_0x9c94('0x6'));var path=require('path');var sox=require(_0x9c94('0x7'));var csv=require(_0x9c94('0x8'));var ejs=require(_0x9c94('0x9'));var fs=require('fs');var fs_extra=require(_0x9c94('0xa'));var _=require('lodash');var squel=require(_0x9c94('0xb'));var crypto=require(_0x9c94('0xc'));var jsforce=require(_0x9c94('0xd'));var deskjs=require(_0x9c94('0xe'));var toCsv=require(_0x9c94('0x8'));var querystring=require(_0x9c94('0xf'));var Papa=require(_0x9c94('0x10'));var Redis=require(_0x9c94('0x11'));var authService=require(_0x9c94('0x12'));var qs=require(_0x9c94('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9c94('0x14'));var logger=require(_0x9c94('0x15'))(_0x9c94('0x16'));var utils=require(_0x9c94('0x17'));var config=require(_0x9c94('0x18'));var licenseUtil=require(_0x9c94('0x19'));var db=require(_0x9c94('0x1a'))['db'];function respondWithStatusCode(_0x423adb,_0x30f64e){_0x30f64e=_0x30f64e||0xcc;return function(_0x1e326f){if(_0x1e326f){return _0x423adb[_0x9c94('0x1b')](_0x30f64e);}return _0x423adb[_0x9c94('0x1c')](_0x30f64e)[_0x9c94('0x1d')]();};}function respondWithResult(_0x15c51c,_0x54d956){_0x54d956=_0x54d956||0xc8;return function(_0x9789bc){if(_0x9789bc){return _0x15c51c['status'](_0x54d956)[_0x9c94('0x1e')](_0x9789bc);}};}function respondWithFilteredResult(_0x26e629,_0x4f0013){return function(_0xe52641){if(_0xe52641){var _0x4d6308=typeof _0x4f0013['offset']===_0x9c94('0x1f')&&typeof _0x4f0013['limit']===_0x9c94('0x1f');var _0x33bd19=_0xe52641['count'];var _0x201e04=_0x4d6308?0x0:_0x4f0013[_0x9c94('0x20')];var _0x412804=_0x4d6308?_0xe52641[_0x9c94('0x21')]:_0x4f0013[_0x9c94('0x20')]+_0x4f0013[_0x9c94('0x22')];var _0x3e361c;if(_0x412804>=_0x33bd19){_0x412804=_0x33bd19;_0x3e361c=0xc8;}else{_0x3e361c=0xce;}_0x26e629['status'](_0x3e361c);return _0x26e629[_0x9c94('0x23')](_0x9c94('0x24'),_0x201e04+'-'+_0x412804+'/'+_0x33bd19)['json'](_0xe52641);}return null;};}function patchUpdates(_0x141801){return function(_0x845304){try{jsonpatch[_0x9c94('0x25')](_0x845304,_0x141801,!![]);}catch(_0x326b38){return BPromise[_0x9c94('0x26')](_0x326b38);}return _0x845304[_0x9c94('0x27')]();};}function saveUpdates(_0xadab16,_0x23cdf5){return function(_0x8fe4fb){if(_0x8fe4fb){return _0x8fe4fb[_0x9c94('0x28')](_0xadab16)[_0x9c94('0x29')](function(_0xe9280a){return _0xe9280a;});}return null;};}function removeEntity(_0x44d732,_0x8c0b7f){return function(_0x5b1020){if(_0x5b1020){return _0x5b1020[_0x9c94('0x2a')]()[_0x9c94('0x29')](function(){_0x44d732['status'](0xcc)[_0x9c94('0x1d')]();});}};}function handleEntityNotFound(_0x2c3d25,_0x4795bb){return function(_0x335184){if(!_0x335184){_0x2c3d25[_0x9c94('0x1b')](0x194);}return _0x335184;};}function handleError(_0x4dd38e,_0xc18230){_0xc18230=_0xc18230||0x1f4;return function(_0x45cf4d){logger['error'](_0x45cf4d[_0x9c94('0x2b')]);if(_0x45cf4d['name']){delete _0x45cf4d[_0x9c94('0x2c')];}_0x4dd38e[_0x9c94('0x1c')](_0xc18230)[_0x9c94('0x2d')](_0x45cf4d);};}exports[_0x9c94('0x2e')]=function(_0x1581c0,_0x3f2622){var _0xf30dd1={},_0x561fdc={},_0x5a6b1c={'count':0x0,'rows':[]};var _0xc4a819=_[_0x9c94('0x2f')](db[_0x9c94('0x30')]['rawAttributes'],function(_0x25a6b9){return{'name':_0x25a6b9['fieldName'],'type':_0x25a6b9[_0x9c94('0x31')][_0x9c94('0x32')]};});_0x561fdc[_0x9c94('0x33')]=_['map'](_0xc4a819,'name');_0x561fdc[_0x9c94('0x34')]=_[_0x9c94('0x35')](_0x1581c0[_0x9c94('0x34')]);_0x561fdc['filters']=_['intersection'](_0x561fdc['model'],_0x561fdc['query']);_0xf30dd1[_0x9c94('0x36')]=_['intersection'](_0x561fdc[_0x9c94('0x33')],qs[_0x9c94('0x37')](_0x1581c0['query']['fields']));_0xf30dd1[_0x9c94('0x36')]=_0xf30dd1[_0x9c94('0x36')][_0x9c94('0x38')]?_0xf30dd1[_0x9c94('0x36')]:_0x561fdc[_0x9c94('0x33')];if(!_0x1581c0[_0x9c94('0x34')][_0x9c94('0x39')](_0x9c94('0x3a'))){_0xf30dd1[_0x9c94('0x22')]=qs[_0x9c94('0x22')](_0x1581c0[_0x9c94('0x34')][_0x9c94('0x22')]);_0xf30dd1[_0x9c94('0x20')]=qs[_0x9c94('0x20')](_0x1581c0[_0x9c94('0x34')][_0x9c94('0x20')]);}_0xf30dd1[_0x9c94('0x3b')]=qs[_0x9c94('0x3c')](_0x1581c0['query'][_0x9c94('0x3c')]);_0xf30dd1[_0x9c94('0x3d')]=qs[_0x9c94('0x3e')](_[_0x9c94('0x3f')](_0x1581c0[_0x9c94('0x34')],_0x561fdc[_0x9c94('0x3e')]),_0xc4a819);if(_0x1581c0[_0x9c94('0x34')]['filter']){_0xf30dd1[_0x9c94('0x3d')]=_['merge'](_0xf30dd1[_0x9c94('0x3d')],{'$or':_[_0x9c94('0x2f')](_0xc4a819,function(_0x442d46){if(_0x442d46[_0x9c94('0x31')]!=='VIRTUAL'){var _0x245278={};_0x245278[_0x442d46['name']]={'$like':'%'+_0x1581c0[_0x9c94('0x34')][_0x9c94('0x40')]+'%'};return _0x245278;}})});}_0xf30dd1=_[_0x9c94('0x41')]({},_0xf30dd1,_0x1581c0['options']);var _0x21e9f7={'where':_0xf30dd1['where']};return db[_0x9c94('0x30')]['count'](_0x21e9f7)['then'](function(_0x9a75f0){_0x5a6b1c[_0x9c94('0x21')]=_0x9a75f0;if(_0x1581c0[_0x9c94('0x34')][_0x9c94('0x42')]){_0xf30dd1['include']=[{'all':!![]}];}return db[_0x9c94('0x30')][_0x9c94('0x43')](_0xf30dd1);})[_0x9c94('0x29')](function(_0x360960){_0x5a6b1c['rows']=_0x360960;return _0x5a6b1c;})[_0x9c94('0x29')](respondWithFilteredResult(_0x3f2622,_0xf30dd1))[_0x9c94('0x44')](handleError(_0x3f2622,null));};exports['show']=function(_0x24e74c,_0x3d8b31){var _0x2a5bd5={'raw':!![],'where':{'id':_0x24e74c['params']['id']}},_0x5e6a90={};_0x5e6a90[_0x9c94('0x33')]=_[_0x9c94('0x35')](db[_0x9c94('0x30')][_0x9c94('0x45')]);_0x5e6a90[_0x9c94('0x34')]=_[_0x9c94('0x35')](_0x24e74c[_0x9c94('0x34')]);_0x5e6a90[_0x9c94('0x3e')]=_[_0x9c94('0x46')](_0x5e6a90[_0x9c94('0x33')],_0x5e6a90[_0x9c94('0x34')]);_0x2a5bd5['attributes']=_[_0x9c94('0x46')](_0x5e6a90['model'],qs[_0x9c94('0x37')](_0x24e74c[_0x9c94('0x34')][_0x9c94('0x37')]));_0x2a5bd5[_0x9c94('0x36')]=_0x2a5bd5[_0x9c94('0x36')][_0x9c94('0x38')]?_0x2a5bd5[_0x9c94('0x36')]:_0x5e6a90['model'];if(_0x24e74c['query'][_0x9c94('0x42')]){_0x2a5bd5[_0x9c94('0x47')]=[{'all':!![]}];}_0x2a5bd5=_[_0x9c94('0x41')]({},_0x2a5bd5,_0x24e74c['options']);return db[_0x9c94('0x30')][_0x9c94('0x48')](_0x2a5bd5)['then'](handleEntityNotFound(_0x3d8b31,null))['then'](respondWithResult(_0x3d8b31,null))['catch'](handleError(_0x3d8b31,null));};exports['create']=function(_0x2b94e0,_0x5362f4){return db['JscriptyAnswerReport'][_0x9c94('0x49')](_0x2b94e0['body'],{})[_0x9c94('0x29')](respondWithResult(_0x5362f4,0xc9))[_0x9c94('0x44')](handleError(_0x5362f4,null));};exports[_0x9c94('0x28')]=function(_0x205f51,_0x22eaa4){if(_0x205f51['body']['id']){delete _0x205f51[_0x9c94('0x4a')]['id'];}return db[_0x9c94('0x30')][_0x9c94('0x48')]({'where':{'id':_0x205f51[_0x9c94('0x4b')]['id']}})[_0x9c94('0x29')](handleEntityNotFound(_0x22eaa4,null))[_0x9c94('0x29')](saveUpdates(_0x205f51['body'],null))[_0x9c94('0x29')](respondWithResult(_0x22eaa4,null))['catch'](handleError(_0x22eaa4,null));};exports[_0x9c94('0x2a')]=function(_0x38bb48,_0x426c0f){return db['JscriptyAnswerReport'][_0x9c94('0x48')]({'where':{'id':_0x38bb48[_0x9c94('0x4b')]['id']}})['then'](handleEntityNotFound(_0x426c0f,null))[_0x9c94('0x29')](removeEntity(_0x426c0f,null))['catch'](handleError(_0x426c0f,null));};exports[_0x9c94('0x4c')]=function(_0x3aa1dd,_0x537c78){return db['JscriptyAnswerReport'][_0x9c94('0x4c')]()['then'](respondWithResult(_0x537c78,null))[_0x9c94('0x44')](handleError(_0x537c78,null));};
\ No newline at end of file
+var _0x31c2=['then','destroy','error','name','send','index','map','JscriptyAnswerReport','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','rawAttributes','find','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','update'];(function(_0xa90718,_0x2fd952){var _0x56ed79=function(_0x41cff1){while(--_0x41cff1){_0xa90718['push'](_0xa90718['shift']());}};_0x56ed79(++_0x2fd952);}(_0x31c2,0x1e1));var _0x231c=function(_0x3e5033,_0x2aae93){_0x3e5033=_0x3e5033-0x0;var _0x5dcbe9=_0x31c2[_0x3e5033];return _0x5dcbe9;};'use strict';var emlformat=require(_0x231c('0x0'));var rimraf=require(_0x231c('0x1'));var zipdir=require(_0x231c('0x2'));var jsonpatch=require(_0x231c('0x3'));var rp=require(_0x231c('0x4'));var moment=require(_0x231c('0x5'));var BPromise=require(_0x231c('0x6'));var Mustache=require(_0x231c('0x7'));var util=require('util');var path=require('path');var sox=require(_0x231c('0x8'));var csv=require(_0x231c('0x9'));var ejs=require(_0x231c('0xa'));var fs=require('fs');var fs_extra=require(_0x231c('0xb'));var _=require('lodash');var squel=require(_0x231c('0xc'));var crypto=require('crypto');var jsforce=require(_0x231c('0xd'));var deskjs=require(_0x231c('0xe'));var toCsv=require(_0x231c('0x9'));var querystring=require('querystring');var Papa=require(_0x231c('0xf'));var Redis=require(_0x231c('0x10'));var authService=require(_0x231c('0x11'));var qs=require(_0x231c('0x12'));var as=require(_0x231c('0x13'));var hardwareService=require(_0x231c('0x14'));var logger=require(_0x231c('0x15'))('api');var utils=require(_0x231c('0x16'));var config=require(_0x231c('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x231c('0x18'))['db'];function respondWithStatusCode(_0x43c270,_0x871ed1){_0x871ed1=_0x871ed1||0xcc;return function(_0x1aa3fe){if(_0x1aa3fe){return _0x43c270[_0x231c('0x19')](_0x871ed1);}return _0x43c270[_0x231c('0x1a')](_0x871ed1)[_0x231c('0x1b')]();};}function respondWithResult(_0x3355f6,_0xc09de5){_0xc09de5=_0xc09de5||0xc8;return function(_0x311218){if(_0x311218){return _0x3355f6[_0x231c('0x1a')](_0xc09de5)[_0x231c('0x1c')](_0x311218);}};}function respondWithFilteredResult(_0xe37de8,_0x1f7764){return function(_0x12a6ad){if(_0x12a6ad){var _0x210f2e=typeof _0x1f7764[_0x231c('0x1d')]===_0x231c('0x1e')&&typeof _0x1f7764[_0x231c('0x1f')]===_0x231c('0x1e');var _0x51b8ca=_0x12a6ad[_0x231c('0x20')];var _0x341645=_0x210f2e?0x0:_0x1f7764[_0x231c('0x1d')];var _0xadea80=_0x210f2e?_0x12a6ad[_0x231c('0x20')]:_0x1f7764[_0x231c('0x1d')]+_0x1f7764[_0x231c('0x1f')];var _0x172d50;if(_0xadea80>=_0x51b8ca){_0xadea80=_0x51b8ca;_0x172d50=0xc8;}else{_0x172d50=0xce;}_0xe37de8[_0x231c('0x1a')](_0x172d50);return _0xe37de8[_0x231c('0x21')]('Content-Range',_0x341645+'-'+_0xadea80+'/'+_0x51b8ca)[_0x231c('0x1c')](_0x12a6ad);}return null;};}function patchUpdates(_0x5e8a53){return function(_0x872034){try{jsonpatch['apply'](_0x872034,_0x5e8a53,!![]);}catch(_0x42cca3){return BPromise[_0x231c('0x22')](_0x42cca3);}return _0x872034[_0x231c('0x23')]();};}function saveUpdates(_0x3267f9,_0x255671){return function(_0x309393){if(_0x309393){return _0x309393[_0x231c('0x24')](_0x3267f9)[_0x231c('0x25')](function(_0x54566f){return _0x54566f;});}return null;};}function removeEntity(_0x128112,_0x3336d8){return function(_0x4af49b){if(_0x4af49b){return _0x4af49b[_0x231c('0x26')]()[_0x231c('0x25')](function(){_0x128112['status'](0xcc)[_0x231c('0x1b')]();});}};}function handleEntityNotFound(_0x564939,_0x3ea0cd){return function(_0x454f70){if(!_0x454f70){_0x564939[_0x231c('0x19')](0x194);}return _0x454f70;};}function handleError(_0x2a673c,_0x449d74){_0x449d74=_0x449d74||0x1f4;return function(_0x131cfd){logger[_0x231c('0x27')](_0x131cfd['stack']);if(_0x131cfd[_0x231c('0x28')]){delete _0x131cfd[_0x231c('0x28')];}_0x2a673c['status'](_0x449d74)[_0x231c('0x29')](_0x131cfd);};}exports[_0x231c('0x2a')]=function(_0x45ced8,_0xeeddfc){var _0x271635={},_0x15a9bb={},_0x40f76e={'count':0x0,'rows':[]};var _0x4dfaa3=_[_0x231c('0x2b')](db[_0x231c('0x2c')]['rawAttributes'],function(_0x4be2e2){return{'name':_0x4be2e2['fieldName'],'type':_0x4be2e2[_0x231c('0x2d')]['key']};});_0x15a9bb[_0x231c('0x2e')]=_['map'](_0x4dfaa3,_0x231c('0x28'));_0x15a9bb[_0x231c('0x2f')]=_[_0x231c('0x30')](_0x45ced8[_0x231c('0x2f')]);_0x15a9bb['filters']=_[_0x231c('0x31')](_0x15a9bb[_0x231c('0x2e')],_0x15a9bb[_0x231c('0x2f')]);_0x271635[_0x231c('0x32')]=_[_0x231c('0x31')](_0x15a9bb[_0x231c('0x2e')],qs[_0x231c('0x33')](_0x45ced8[_0x231c('0x2f')]['fields']));_0x271635['attributes']=_0x271635[_0x231c('0x32')][_0x231c('0x34')]?_0x271635[_0x231c('0x32')]:_0x15a9bb[_0x231c('0x2e')];if(!_0x45ced8[_0x231c('0x2f')][_0x231c('0x35')]('nolimit')){_0x271635[_0x231c('0x1f')]=qs[_0x231c('0x1f')](_0x45ced8['query']['limit']);_0x271635[_0x231c('0x1d')]=qs['offset'](_0x45ced8[_0x231c('0x2f')]['offset']);}_0x271635[_0x231c('0x36')]=qs[_0x231c('0x37')](_0x45ced8['query'][_0x231c('0x37')]);_0x271635[_0x231c('0x38')]=qs[_0x231c('0x39')](_['pick'](_0x45ced8[_0x231c('0x2f')],_0x15a9bb[_0x231c('0x39')]),_0x4dfaa3);if(_0x45ced8[_0x231c('0x2f')][_0x231c('0x3a')]){_0x271635[_0x231c('0x38')]=_[_0x231c('0x3b')](_0x271635[_0x231c('0x38')],{'$or':_[_0x231c('0x2b')](_0x4dfaa3,function(_0x409b01){if(_0x409b01[_0x231c('0x2d')]!==_0x231c('0x3c')){var _0x2c8033={};_0x2c8033[_0x409b01[_0x231c('0x28')]]={'$like':'%'+_0x45ced8['query'][_0x231c('0x3a')]+'%'};return _0x2c8033;}})});}_0x271635=_[_0x231c('0x3b')]({},_0x271635,_0x45ced8[_0x231c('0x3d')]);var _0x2f763d={'where':_0x271635[_0x231c('0x38')]};return db['JscriptyAnswerReport'][_0x231c('0x20')](_0x2f763d)[_0x231c('0x25')](function(_0x229953){_0x40f76e['count']=_0x229953;if(_0x45ced8[_0x231c('0x2f')][_0x231c('0x3e')]){_0x271635[_0x231c('0x3f')]=[{'all':!![]}];}return db[_0x231c('0x2c')][_0x231c('0x40')](_0x271635);})[_0x231c('0x25')](function(_0x5d46eb){_0x40f76e[_0x231c('0x41')]=_0x5d46eb;return _0x40f76e;})[_0x231c('0x25')](respondWithFilteredResult(_0xeeddfc,_0x271635))[_0x231c('0x42')](handleError(_0xeeddfc,null));};exports[_0x231c('0x43')]=function(_0x518011,_0x33396b){var _0x523339={'raw':!![],'where':{'id':_0x518011['params']['id']}},_0x26bfd2={};_0x26bfd2[_0x231c('0x2e')]=_[_0x231c('0x30')](db[_0x231c('0x2c')][_0x231c('0x44')]);_0x26bfd2[_0x231c('0x2f')]=_[_0x231c('0x30')](_0x518011['query']);_0x26bfd2[_0x231c('0x39')]=_[_0x231c('0x31')](_0x26bfd2[_0x231c('0x2e')],_0x26bfd2['query']);_0x523339[_0x231c('0x32')]=_[_0x231c('0x31')](_0x26bfd2[_0x231c('0x2e')],qs[_0x231c('0x33')](_0x518011['query'][_0x231c('0x33')]));_0x523339['attributes']=_0x523339[_0x231c('0x32')][_0x231c('0x34')]?_0x523339[_0x231c('0x32')]:_0x26bfd2[_0x231c('0x2e')];if(_0x518011[_0x231c('0x2f')][_0x231c('0x3e')]){_0x523339[_0x231c('0x3f')]=[{'all':!![]}];}_0x523339=_[_0x231c('0x3b')]({},_0x523339,_0x518011[_0x231c('0x3d')]);return db[_0x231c('0x2c')][_0x231c('0x45')](_0x523339)[_0x231c('0x25')](handleEntityNotFound(_0x33396b,null))[_0x231c('0x25')](respondWithResult(_0x33396b,null))[_0x231c('0x42')](handleError(_0x33396b,null));};exports['create']=function(_0x18aaca,_0x293de2){return db[_0x231c('0x2c')][_0x231c('0x46')](_0x18aaca[_0x231c('0x47')],{})['then'](respondWithResult(_0x293de2,0xc9))['catch'](handleError(_0x293de2,null));};exports[_0x231c('0x24')]=function(_0x56a885,_0x419f63){if(_0x56a885[_0x231c('0x47')]['id']){delete _0x56a885[_0x231c('0x47')]['id'];}return db['JscriptyAnswerReport'][_0x231c('0x45')]({'where':{'id':_0x56a885['params']['id']}})[_0x231c('0x25')](handleEntityNotFound(_0x419f63,null))[_0x231c('0x25')](saveUpdates(_0x56a885['body'],null))[_0x231c('0x25')](respondWithResult(_0x419f63,null))[_0x231c('0x42')](handleError(_0x419f63,null));};exports[_0x231c('0x26')]=function(_0x5d2d20,_0x49baac){return db['JscriptyAnswerReport'][_0x231c('0x45')]({'where':{'id':_0x5d2d20[_0x231c('0x48')]['id']}})[_0x231c('0x25')](handleEntityNotFound(_0x49baac,null))['then'](removeEntity(_0x49baac,null))[_0x231c('0x42')](handleError(_0x49baac,null));};exports[_0x231c('0x49')]=function(_0x4fd60b,_0xf225d0){return db[_0x231c('0x2c')][_0x231c('0x49')]()[_0x231c('0x25')](respondWithResult(_0xf225d0,null))[_0x231c('0x42')](handleError(_0xf225d0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4dd7=['api','bluebird','request-promise','path','rimraf','./jscriptyAnswerReport.attributes','exports','define','JscriptyAnswerReport','report_jscripty_answers','lodash','../../config/logger'];(function(_0x36cf7a,_0x1863a7){var _0x2f0279=function(_0x2e3aaf){while(--_0x2e3aaf){_0x36cf7a['push'](_0x36cf7a['shift']());}};_0x2f0279(++_0x1863a7);}(_0x4dd7,0x1d2));var _0x74dd=function(_0x5ba1f3,_0x18ddfa){_0x5ba1f3=_0x5ba1f3-0x0;var _0x3ab93f=_0x4dd7[_0x5ba1f3];return _0x3ab93f;};'use strict';var _=require(_0x74dd('0x0'));var util=require('util');var logger=require(_0x74dd('0x1'))(_0x74dd('0x2'));var moment=require('moment');var BPromise=require(_0x74dd('0x3'));var rp=require(_0x74dd('0x4'));var fs=require('fs');var path=require(_0x74dd('0x5'));var rimraf=require(_0x74dd('0x6'));var config=require('../../config/environment');var attributes=require(_0x74dd('0x7'));module[_0x74dd('0x8')]=function(_0x5be2b2,_0x1cba0c){return _0x5be2b2[_0x74dd('0x9')](_0x74dd('0xa'),attributes,{'tableName':_0x74dd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x96a4=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./jscriptyAnswerReport.attributes','define','JscriptyAnswerReport','report_jscripty_answers','lodash','util'];(function(_0x49923f,_0x671404){var _0x560684=function(_0x5a152b){while(--_0x5a152b){_0x49923f['push'](_0x49923f['shift']());}};_0x560684(++_0x671404);}(_0x96a4,0x184));var _0x496a=function(_0x54ae6e,_0x60ad30){_0x54ae6e=_0x54ae6e-0x0;var _0x2d3c06=_0x96a4[_0x54ae6e];return _0x2d3c06;};'use strict';var _=require(_0x496a('0x0'));var util=require(_0x496a('0x1'));var logger=require(_0x496a('0x2'))(_0x496a('0x3'));var moment=require(_0x496a('0x4'));var BPromise=require(_0x496a('0x5'));var rp=require(_0x496a('0x6'));var fs=require('fs');var path=require(_0x496a('0x7'));var rimraf=require('rimraf');var config=require(_0x496a('0x8'));var attributes=require(_0x496a('0x9'));module['exports']=function(_0x15976a,_0x2ff466){return _0x15976a[_0x496a('0xa')](_0x496a('0xb'),attributes,{'tableName':_0x496a('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7cac=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x14c8ee,_0x34d4fb){var _0x51acc2=function(_0x4c1277){while(--_0x4c1277){_0x14c8ee['push'](_0x14c8ee['shift']());}};_0x51acc2(++_0x34d4fb);}(_0x7cac,0x15a));var _0xc7ca=function(_0x4fde08,_0x463a36){_0x4fde08=_0x4fde08-0x0;var _0x12e725=_0x7cac[_0x4fde08];return _0x12e725;};'use strict';var _=require(_0xc7ca('0x0'));var util=require(_0xc7ca('0x1'));var moment=require(_0xc7ca('0x2'));var BPromise=require(_0xc7ca('0x3'));var rs=require(_0xc7ca('0x4'));var fs=require('fs');var Redis=require(_0xc7ca('0x5'));var db=require(_0xc7ca('0x6'))['db'];var utils=require(_0xc7ca('0x7'));var logger=require(_0xc7ca('0x8'))(_0xc7ca('0x9'));var config=require(_0xc7ca('0xa'));var jayson=require(_0xc7ca('0xb'));var client=jayson[_0xc7ca('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x59e82b,_0x4f1895,_0x298e9c){return new BPromise(function(_0x510709,_0x52bf22){return client[_0xc7ca('0xd')](_0x59e82b,_0x298e9c)['then'](function(_0x54519d){logger[_0xc7ca('0xe')](_0xc7ca('0xf'),_0x4f1895,_0xc7ca('0x10'));logger['debug']('JscriptyAnswerReport,\x20%s,\x20%s,\x20%s',_0x4f1895,_0xc7ca('0x10'),JSON[_0xc7ca('0x11')](_0x54519d));if(_0x54519d[_0xc7ca('0x12')]){if(_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x13')]===0x1f4){logger['error']('JscriptyAnswerReport,\x20%s,\x20%s',_0x4f1895,_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x14')]);return _0x52bf22(_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x14')]);}logger[_0xc7ca('0x12')](_0xc7ca('0xf'),_0x4f1895,_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x14')]);return _0x510709(_0x54519d['error'][_0xc7ca('0x14')]);}else{logger[_0xc7ca('0xe')]('JscriptyAnswerReport,\x20%s,\x20%s',_0x4f1895,_0xc7ca('0x10'));_0x510709(_0x54519d['result'][_0xc7ca('0x14')]);}})[_0xc7ca('0x15')](function(_0x491279){logger[_0xc7ca('0x12')](_0xc7ca('0xf'),_0x4f1895,_0x491279);_0x52bf22(_0x491279);});});}
\ No newline at end of file
+var _0x2b31=['request','then','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x2b31,0xd2));var _0x12b3=function(_0x1ff096,_0x4dd480){_0x1ff096=_0x1ff096-0x0;var _0x1850b7=_0x2b31[_0x1ff096];return _0x1850b7;};'use strict';var _=require('lodash');var util=require(_0x12b3('0x0'));var moment=require(_0x12b3('0x1'));var BPromise=require(_0x12b3('0x2'));var rs=require(_0x12b3('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x12b3('0x4'));var logger=require(_0x12b3('0x5'))(_0x12b3('0x6'));var config=require('../../config/environment');var jayson=require(_0x12b3('0x7'));var client=jayson[_0x12b3('0x8')][_0x12b3('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x41a57b,_0x45cd0d,_0x4fa4ad){return new BPromise(function(_0x57c66f,_0x31d27c){return client[_0x12b3('0xa')](_0x41a57b,_0x4fa4ad)[_0x12b3('0xb')](function(_0x383c12){logger[_0x12b3('0xc')](_0x12b3('0xd'),_0x45cd0d,_0x12b3('0xe'));logger[_0x12b3('0xf')]('JscriptyAnswerReport,\x20%s,\x20%s,\x20%s',_0x45cd0d,_0x12b3('0xe'),JSON[_0x12b3('0x10')](_0x383c12));if(_0x383c12[_0x12b3('0x11')]){if(_0x383c12['error'][_0x12b3('0x12')]===0x1f4){logger[_0x12b3('0x11')](_0x12b3('0xd'),_0x45cd0d,_0x383c12[_0x12b3('0x11')][_0x12b3('0x13')]);return _0x31d27c(_0x383c12[_0x12b3('0x11')][_0x12b3('0x13')]);}logger['error'](_0x12b3('0xd'),_0x45cd0d,_0x383c12[_0x12b3('0x11')][_0x12b3('0x13')]);return _0x57c66f(_0x383c12[_0x12b3('0x11')][_0x12b3('0x13')]);}else{logger[_0x12b3('0xc')](_0x12b3('0xd'),_0x45cd0d,_0x12b3('0xe'));_0x57c66f(_0x383c12['result'][_0x12b3('0x13')]);}})['catch'](function(_0x7f02a1){logger[_0x12b3('0x11')](_0x12b3('0xd'),_0x45cd0d,_0x7f02a1);_0x31d27c(_0x7f02a1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04a5=['getSummary','create','post','clone','put','update','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/sessions','getSessions','/:id/answers','getAnswers','/:id/summary'];(function(_0x93e590,_0x2414b4){var _0x39bdea=function(_0x31957b){while(--_0x31957b){_0x93e590['push'](_0x93e590['shift']());}};_0x39bdea(++_0x2414b4);}(_0x04a5,0x174));var _0x504a=function(_0x27c25f,_0x4ff5fe){_0x27c25f=_0x27c25f-0x0;var _0x2da4c4=_0x04a5[_0x27c25f];return _0x2da4c4;};'use strict';var multer=require(_0x504a('0x0'));var util=require(_0x504a('0x1'));var path=require(_0x504a('0x2'));var timeout=require(_0x504a('0x3'));var express=require('express');var router=express[_0x504a('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x504a('0x5'));var interaction=require(_0x504a('0x6'));var config=require(_0x504a('0x7'));var controller=require('./jscriptyProject.controller');router[_0x504a('0x8')]('/',auth[_0x504a('0x9')](),controller[_0x504a('0xa')]);router[_0x504a('0x8')](_0x504a('0xb'),auth[_0x504a('0x9')](),controller[_0x504a('0xc')]);router[_0x504a('0x8')](_0x504a('0xd'),auth['isAuthenticated'](),controller[_0x504a('0xe')]);router[_0x504a('0x8')](_0x504a('0xf'),auth[_0x504a('0x9')](),controller[_0x504a('0x10')]);router[_0x504a('0x8')](_0x504a('0x11'),auth['isAuthenticated'](),timeout('30s'),controller[_0x504a('0x12')]);router['post']('/',auth['isAuthenticated'](),controller[_0x504a('0x13')]);router[_0x504a('0x14')]('/:id/clone',auth['isAuthenticated'](),controller[_0x504a('0x15')]);router[_0x504a('0x16')]('/:id',auth[_0x504a('0x9')](),controller[_0x504a('0x17')]);router['delete'](_0x504a('0xb'),auth[_0x504a('0x9')](),controller[_0x504a('0x18')]);module[_0x504a('0x19')]=router;
\ No newline at end of file
+var _0x93e4=['fs-extra','../../components/auth/service','../../components/interaction/service','get','index','/:id','isAuthenticated','getSessions','getAnswers','/:id/summary','30s','getSummary','post','create','/:id/clone','clone','destroy','exports','multer','util','path','express','Router'];(function(_0x151721,_0x20d5bc){var _0x2deaa7=function(_0x499812){while(--_0x499812){_0x151721['push'](_0x151721['shift']());}};_0x2deaa7(++_0x20d5bc);}(_0x93e4,0x1c7));var _0x493e=function(_0x36e6e4,_0x1216a6){_0x36e6e4=_0x36e6e4-0x0;var _0x514205=_0x93e4[_0x36e6e4];return _0x514205;};'use strict';var multer=require(_0x493e('0x0'));var util=require(_0x493e('0x1'));var path=require(_0x493e('0x2'));var timeout=require('connect-timeout');var express=require(_0x493e('0x3'));var router=express[_0x493e('0x4')]();var fs_extra=require(_0x493e('0x5'));var auth=require(_0x493e('0x6'));var interaction=require(_0x493e('0x7'));var config=require('../../config/environment');var controller=require('./jscriptyProject.controller');router[_0x493e('0x8')]('/',auth['isAuthenticated'](),controller[_0x493e('0x9')]);router[_0x493e('0x8')](_0x493e('0xa'),auth['isAuthenticated'](),controller['show']);router['get']('/:id/sessions',auth[_0x493e('0xb')](),controller[_0x493e('0xc')]);router[_0x493e('0x8')]('/:id/answers',auth['isAuthenticated'](),controller[_0x493e('0xd')]);router[_0x493e('0x8')](_0x493e('0xe'),auth['isAuthenticated'](),timeout(_0x493e('0xf')),controller[_0x493e('0x10')]);router[_0x493e('0x11')]('/',auth[_0x493e('0xb')](),controller[_0x493e('0x12')]);router[_0x493e('0x11')](_0x493e('0x13'),auth[_0x493e('0xb')](),controller[_0x493e('0x14')]);router['put'](_0x493e('0xa'),auth[_0x493e('0xb')](),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x493e('0x15')]);module[_0x493e('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6029=['TEXT','long','isObjectLike','isString','setDataValue','formData','format','getDataValue','description','BOOLEAN','sequelize','lodash','util','exports','name'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x6029,0x73));var _0x9602=function(_0x160d4c,_0x4f136e){_0x160d4c=_0x160d4c-0x0;var _0x5d2ecc=_0x6029[_0x160d4c];return _0x5d2ecc;};'use strict';var Sequelize=require(_0x9602('0x0'));var _=require(_0x9602('0x1'));var util=require(_0x9602('0x2'));module[_0x9602('0x3')]={'name':{'type':Sequelize['STRING'],'unique':_0x9602('0x4')},'description':{'type':Sequelize['STRING']},'formData':{'type':Sequelize[_0x9602('0x5')](_0x9602('0x6')),'set':function(_0x4614b7){if(_[_0x9602('0x7')](_0x4614b7)){this['setDataValue']('formData',JSON['stringify'](_0x4614b7));}else if(_[_0x9602('0x8')](_0x4614b7)){this[_0x9602('0x9')](_0x9602('0xa'),_0x4614b7);}else{this[_0x9602('0x9')](_0x9602('0xa'),util[_0x9602('0xb')]('{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}',this[_0x9602('0xc')](_0x9602('0x4'))||'',this['getDataValue'](_0x9602('0xd'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x9602('0xe')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0x9602('0xe')],'defaultValue':![]}};
\ No newline at end of file
+var _0x8828=['name','getDataValue','description','BOOLEAN','sequelize','util','STRING','TEXT','isObjectLike','setDataValue','stringify','formData','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}'];(function(_0x48ebe8,_0x16e184){var _0xa95841=function(_0x1e31a5){while(--_0x1e31a5){_0x48ebe8['push'](_0x48ebe8['shift']());}};_0xa95841(++_0x16e184);}(_0x8828,0x1a8));var _0x8882=function(_0x5c10b5,_0x202e93){_0x5c10b5=_0x5c10b5-0x0;var _0x2f4001=_0x8828[_0x5c10b5];return _0x2f4001;};'use strict';var Sequelize=require(_0x8882('0x0'));var _=require('lodash');var util=require(_0x8882('0x1'));module['exports']={'name':{'type':Sequelize[_0x8882('0x2')],'unique':'name'},'description':{'type':Sequelize['STRING']},'formData':{'type':Sequelize[_0x8882('0x3')]('long'),'set':function(_0x3650b1){if(_[_0x8882('0x4')](_0x3650b1)){this[_0x8882('0x5')]('formData',JSON[_0x8882('0x6')](_0x3650b1));}else if(_['isString'](_0x3650b1)){this[_0x8882('0x5')](_0x8882('0x7'),_0x3650b1);}else{this[_0x8882('0x5')]('formData',util[_0x8882('0x8')](_0x8882('0x9'),this['getDataValue'](_0x8882('0xa'))||'',this[_0x8882('0xb')](_0x8882('0xc'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x8882('0xd')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88b5=['clone','params','omit','createdAt','updatedAt','Projects','hasOwnProperty','pick','ProjectId','JscriptySessionReport','findAll','getAnswers','findOne','JscriptyAnswerReport','rows','number','fromCharCode','toString','indexOf','getSummary','startTime','parse','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','answer','push','isEmpty','now','writeFileSync','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','download','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','map','JscriptyProject','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','catch','find','create','body','user','role','get','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x9e9d6f,_0x3e5986){var _0x1a066d=function(_0x2c596e){while(--_0x2c596e){_0x9e9d6f['push'](_0x9e9d6f['shift']());}};_0x1a066d(++_0x3e5986);}(_0x88b5,0x10f));var _0x588b=function(_0x4f26a0,_0x540dbf){_0x4f26a0=_0x4f26a0-0x0;var _0x24e437=_0x88b5[_0x4f26a0];return _0x24e437;};'use strict';var emlformat=require(_0x588b('0x0'));var rimraf=require(_0x588b('0x1'));var zipdir=require(_0x588b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x588b('0x3'));var moment=require(_0x588b('0x4'));var BPromise=require(_0x588b('0x5'));var Mustache=require(_0x588b('0x6'));var util=require(_0x588b('0x7'));var path=require(_0x588b('0x8'));var sox=require('sox');var csv=require(_0x588b('0x9'));var ejs=require(_0x588b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x588b('0xb'));var crypto=require(_0x588b('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x588b('0xd'));var toCsv=require(_0x588b('0x9'));var querystring=require(_0x588b('0xe'));var Papa=require(_0x588b('0xf'));var Redis=require(_0x588b('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x588b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x588b('0x12'));var utils=require(_0x588b('0x13'));var config=require(_0x588b('0x14'));var licenseUtil=require(_0x588b('0x15'));var db=require(_0x588b('0x16'))['db'];function respondWithStatusCode(_0x22ee1a,_0x3e360c){_0x3e360c=_0x3e360c||0xcc;return function(_0x4febe0){if(_0x4febe0){return _0x22ee1a[_0x588b('0x17')](_0x3e360c);}return _0x22ee1a[_0x588b('0x18')](_0x3e360c)[_0x588b('0x19')]();};}function respondWithResult(_0x2312e2,_0x6df6ab){_0x6df6ab=_0x6df6ab||0xc8;return function(_0x280fc4){if(_0x280fc4){return _0x2312e2[_0x588b('0x18')](_0x6df6ab)[_0x588b('0x1a')](_0x280fc4);}};}function respondWithFilteredResult(_0xe5e240,_0x18e45c){return function(_0x2efe87){if(_0x2efe87){var _0x414692=typeof _0x18e45c[_0x588b('0x1b')]==='undefined'&&typeof _0x18e45c['limit']===_0x588b('0x1c');var _0x2b9aae=_0x2efe87[_0x588b('0x1d')];var _0x2ef1a2=_0x414692?0x0:_0x18e45c[_0x588b('0x1b')];var _0x640e19=_0x414692?_0x2efe87['count']:_0x18e45c[_0x588b('0x1b')]+_0x18e45c[_0x588b('0x1e')];var _0x6851fd;if(_0x640e19>=_0x2b9aae){_0x640e19=_0x2b9aae;_0x6851fd=0xc8;}else{_0x6851fd=0xce;}_0xe5e240['status'](_0x6851fd);return _0xe5e240[_0x588b('0x1f')](_0x588b('0x20'),_0x2ef1a2+'-'+_0x640e19+'/'+_0x2b9aae)[_0x588b('0x1a')](_0x2efe87);}return null;};}function patchUpdates(_0x11bce3){return function(_0x1ec4a2){try{jsonpatch[_0x588b('0x21')](_0x1ec4a2,_0x11bce3,!![]);}catch(_0x2e17f0){return BPromise['reject'](_0x2e17f0);}return _0x1ec4a2[_0x588b('0x22')]();};}function saveUpdates(_0x4ed54d,_0x2bdeea){return function(_0x232c85){if(_0x232c85){return _0x232c85[_0x588b('0x23')](_0x4ed54d)[_0x588b('0x24')](function(_0x341802){return _0x341802;});}return null;};}function removeEntity(_0x17cfd4,_0x1a9675){return function(_0x445312){if(_0x445312){return _0x445312[_0x588b('0x25')]()[_0x588b('0x24')](function(){var _0x231ebd=_0x445312['get']({'plain':!![]});var _0x13885f='Projects';return db['UserProfileResource']['destroy']({'where':{'type':_0x13885f,'resourceId':_0x231ebd['id']}})[_0x588b('0x24')](function(){return _0x445312;});})[_0x588b('0x24')](function(){_0x17cfd4[_0x588b('0x18')](0xcc)[_0x588b('0x19')]();});}};}function handleEntityNotFound(_0x524a94,_0x3aa95e){return function(_0x33dd0b){if(!_0x33dd0b){_0x524a94[_0x588b('0x17')](0x194);}return _0x33dd0b;};}function handleError(_0x4ea3bf,_0x15db0c){_0x15db0c=_0x15db0c||0x1f4;return function(_0x13f9c4){logger[_0x588b('0x26')](_0x13f9c4[_0x588b('0x27')]);if(_0x13f9c4[_0x588b('0x28')]){delete _0x13f9c4[_0x588b('0x28')];}_0x4ea3bf[_0x588b('0x18')](_0x15db0c)[_0x588b('0x29')](_0x13f9c4);};}exports['index']=function(_0xddef60,_0x13afeb){var _0x12dcb4={},_0x2b1a26={},_0x59a252={'count':0x0,'rows':[]};var _0x49fcfa=_[_0x588b('0x2a')](db[_0x588b('0x2b')][_0x588b('0x2c')],function(_0x45e54c){return{'name':_0x45e54c[_0x588b('0x2d')],'type':_0x45e54c[_0x588b('0x2e')]['key']};});_0x2b1a26[_0x588b('0x2f')]=_['map'](_0x49fcfa,_0x588b('0x28'));_0x2b1a26[_0x588b('0x30')]=_[_0x588b('0x31')](_0xddef60[_0x588b('0x30')]);_0x2b1a26[_0x588b('0x32')]=_[_0x588b('0x33')](_0x2b1a26[_0x588b('0x2f')],_0x2b1a26[_0x588b('0x30')]);_0x12dcb4[_0x588b('0x34')]=_['intersection'](_0x2b1a26[_0x588b('0x2f')],qs[_0x588b('0x35')](_0xddef60[_0x588b('0x30')][_0x588b('0x35')]));_0x12dcb4['attributes']=_0x12dcb4[_0x588b('0x34')][_0x588b('0x36')]?_0x12dcb4[_0x588b('0x34')]:_0x2b1a26['model'];if(!_0xddef60['query']['hasOwnProperty'](_0x588b('0x37'))){_0x12dcb4['limit']=qs['limit'](_0xddef60[_0x588b('0x30')][_0x588b('0x1e')]);_0x12dcb4[_0x588b('0x1b')]=qs[_0x588b('0x1b')](_0xddef60[_0x588b('0x30')][_0x588b('0x1b')]);}_0x12dcb4[_0x588b('0x38')]=qs[_0x588b('0x39')](_0xddef60['query'][_0x588b('0x39')]);_0x12dcb4[_0x588b('0x3a')]=qs[_0x588b('0x32')](_['pick'](_0xddef60[_0x588b('0x30')],_0x2b1a26[_0x588b('0x32')]),_0x49fcfa);if(_0xddef60['query'][_0x588b('0x3b')]){_0x12dcb4[_0x588b('0x3a')]=_[_0x588b('0x3c')](_0x12dcb4[_0x588b('0x3a')],{'$or':_['map'](_0x49fcfa,function(_0x5a612b){if(_0x5a612b[_0x588b('0x2e')]!==_0x588b('0x3d')){var _0x298b9b={};_0x298b9b[_0x5a612b[_0x588b('0x28')]]={'$like':'%'+_0xddef60[_0x588b('0x30')]['filter']+'%'};return _0x298b9b;}})});}_0x12dcb4=_[_0x588b('0x3c')]({},_0x12dcb4,_0xddef60[_0x588b('0x3e')]);var _0x469a56={'where':_0x12dcb4['where']};return db[_0x588b('0x2b')][_0x588b('0x1d')](_0x469a56)['then'](function(_0x36837e){_0x59a252['count']=_0x36837e;if(_0xddef60[_0x588b('0x30')][_0x588b('0x3f')]){_0x12dcb4[_0x588b('0x40')]=[{'all':!![]}];}return db[_0x588b('0x2b')]['findAll'](_0x12dcb4);})[_0x588b('0x24')](function(_0x33c77f){_0x59a252['rows']=_0x33c77f;return _0x59a252;})['then'](respondWithFilteredResult(_0x13afeb,_0x12dcb4))[_0x588b('0x41')](handleError(_0x13afeb,null));};exports['show']=function(_0x3715a6,_0x230747){var _0x428d0f={'raw':![],'where':{'id':_0x3715a6['params']['id']}},_0x18a9c2={};_0x18a9c2[_0x588b('0x2f')]=_['keys'](db[_0x588b('0x2b')]['rawAttributes']);_0x18a9c2[_0x588b('0x30')]=_[_0x588b('0x31')](_0x3715a6['query']);_0x18a9c2[_0x588b('0x32')]=_['intersection'](_0x18a9c2['model'],_0x18a9c2['query']);_0x428d0f[_0x588b('0x34')]=_[_0x588b('0x33')](_0x18a9c2[_0x588b('0x2f')],qs['fields'](_0x3715a6[_0x588b('0x30')][_0x588b('0x35')]));_0x428d0f[_0x588b('0x34')]=_0x428d0f[_0x588b('0x34')]['length']?_0x428d0f[_0x588b('0x34')]:_0x18a9c2[_0x588b('0x2f')];if(_0x3715a6[_0x588b('0x30')][_0x588b('0x3f')]){_0x428d0f[_0x588b('0x40')]=[{'all':!![]}];}_0x428d0f=_['merge']({},_0x428d0f,_0x3715a6[_0x588b('0x3e')]);return db[_0x588b('0x2b')][_0x588b('0x42')](_0x428d0f)[_0x588b('0x24')](handleEntityNotFound(_0x230747,null))[_0x588b('0x24')](respondWithResult(_0x230747,null))[_0x588b('0x41')](handleError(_0x230747,null));};exports[_0x588b('0x43')]=function(_0x4d0bb1,_0x59ca9c){return db[_0x588b('0x2b')][_0x588b('0x43')](_0x4d0bb1[_0x588b('0x44')],{})[_0x588b('0x24')](function(_0x30c404){var _0x9dbce4=_0x4d0bb1[_0x588b('0x45')]['get']({'plain':!![]});if(!_0x9dbce4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x9dbce4[_0x588b('0x46')]===_0x588b('0x45')){var _0xf6109=_0x30c404[_0x588b('0x47')]({'plain':!![]});var _0x211053='Projects';return db[_0x588b('0x48')][_0x588b('0x42')]({'where':{'name':_0x211053,'userProfileId':_0x9dbce4[_0x588b('0x49')]},'raw':!![]})[_0x588b('0x24')](function(_0x2424cd){if(_0x2424cd&&_0x2424cd[_0x588b('0x4a')]===0x0){return db[_0x588b('0x4b')][_0x588b('0x43')]({'name':_0xf6109[_0x588b('0x28')],'resourceId':_0xf6109['id'],'type':_0x2424cd[_0x588b('0x28')],'sectionId':_0x2424cd['id']},{})[_0x588b('0x24')](function(){return _0x30c404;});}else{return _0x30c404;}})[_0x588b('0x41')](function(_0x1c5107){logger[_0x588b('0x26')](_0x588b('0x4c'),_0x1c5107);throw _0x1c5107;});}return _0x30c404;})[_0x588b('0x24')](respondWithResult(_0x59ca9c,0xc9))['catch'](handleError(_0x59ca9c,null));};exports[_0x588b('0x4d')]=function(_0x493fb4,_0x1c8432){var _0x34344c={'where':{'id':_0x493fb4[_0x588b('0x4e')]['id']}},_0x3dba5a={};_0x3dba5a[_0x588b('0x2f')]=_[_0x588b('0x31')](db[_0x588b('0x2b')][_0x588b('0x2c')]);_0x34344c[_0x588b('0x34')]=_['intersection'](_0x3dba5a['model'],qs[_0x588b('0x35')](_0x493fb4[_0x588b('0x30')][_0x588b('0x35')]));_0x34344c['attributes']=_0x34344c[_0x588b('0x34')]['length']?_0x34344c[_0x588b('0x34')]:_0x3dba5a[_0x588b('0x2f')];if(_0x493fb4[_0x588b('0x30')][_0x588b('0x3f')]){_0x34344c[_0x588b('0x40')]=[{'all':!![]}];}_0x34344c=_['merge']({},_0x34344c,_0x493fb4['options']);return db[_0x588b('0x2b')][_0x588b('0x42')](_0x34344c)[_0x588b('0x24')](handleEntityNotFound(_0x1c8432,null))[_0x588b('0x24')](function(_0x5766d8){if(_0x5766d8){var _0x3fb683=_0x5766d8[_0x588b('0x47')]({'plain':!![]});_0x3fb683=qs[_0x588b('0x4f')](_0x3fb683,['id',_0x588b('0x50'),_0x588b('0x51')]);_0x493fb4[_0x588b('0x44')]=_[_0x588b('0x4f')](_0x493fb4[_0x588b('0x44')],['id',_0x588b('0x50'),'updatedAt']);return db['JscriptyProject'][_0x588b('0x43')](_[_0x588b('0x3c')](_0x3fb683,_0x493fb4[_0x588b('0x44')]),{'include':_0x493fb4[_0x588b('0x30')]['includeAll']?[{'all':!![]}]:undefined})[_0x588b('0x24')](function(_0x5efa86){var _0x37a0d2=_0x493fb4[_0x588b('0x45')][_0x588b('0x47')]({'plain':!![]});if(!_0x37a0d2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x37a0d2['role']===_0x588b('0x45')){var _0x3ea50d=_0x5efa86[_0x588b('0x47')]({'plain':!![]});var _0x2f447d=_0x588b('0x52');return db['UserProfileSection']['find']({'where':{'name':_0x2f447d,'userProfileId':_0x37a0d2[_0x588b('0x49')]},'raw':!![]})[_0x588b('0x24')](function(_0x1ccbf2){if(_0x1ccbf2&&_0x1ccbf2[_0x588b('0x4a')]===0x0){return db[_0x588b('0x4b')]['create']({'name':_0x3ea50d[_0x588b('0x28')],'resourceId':_0x3ea50d['id'],'type':_0x1ccbf2[_0x588b('0x28')],'sectionId':_0x1ccbf2['id']},{})[_0x588b('0x24')](function(){return _0x5efa86;});}else{return _0x5efa86;}})[_0x588b('0x41')](function(_0x3de71e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3de71e);throw _0x3de71e;});}return _0x5efa86;});}})['then'](respondWithResult(_0x1c8432,0xc9))[_0x588b('0x41')](handleError(_0x1c8432,null));};exports[_0x588b('0x23')]=function(_0x33455d,_0x5ee378){if(_0x33455d[_0x588b('0x44')]['id']){delete _0x33455d[_0x588b('0x44')]['id'];}return db[_0x588b('0x2b')][_0x588b('0x42')]({'where':{'id':_0x33455d[_0x588b('0x4e')]['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x5ee378,null))[_0x588b('0x24')](saveUpdates(_0x33455d[_0x588b('0x44')],null))[_0x588b('0x24')](respondWithResult(_0x5ee378,null))[_0x588b('0x41')](handleError(_0x5ee378,null));};exports[_0x588b('0x25')]=function(_0x5747c4,_0x2ccd93){return db['JscriptyProject'][_0x588b('0x42')]({'where':{'id':_0x5747c4['params']['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x2ccd93,null))[_0x588b('0x24')](removeEntity(_0x2ccd93,null))[_0x588b('0x41')](handleError(_0x2ccd93,null));};exports['getSessions']=function(_0x1b6589,_0x1c5c3e,_0x19522c){var _0x31dad3={'raw':!![],'where':{}};var _0xe2a5e4={};var _0x225be0={'count':0x0,'rows':[]};return db[_0x588b('0x2b')]['findOne']({'where':{'id':_0x1b6589[_0x588b('0x4e')]['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x1c5c3e,null))[_0x588b('0x24')](function(_0x57d292){if(_0x57d292){_0xe2a5e4['model']=_[_0x588b('0x31')](db['JscriptySessionReport'][_0x588b('0x2c')]);_0xe2a5e4[_0x588b('0x30')]=_[_0x588b('0x31')](_0x1b6589[_0x588b('0x30')]);_0xe2a5e4[_0x588b('0x32')]=_[_0x588b('0x33')](_0xe2a5e4['model'],_0xe2a5e4['query']);_0x31dad3[_0x588b('0x34')]=_[_0x588b('0x33')](_0xe2a5e4[_0x588b('0x2f')],qs[_0x588b('0x35')](_0x1b6589['query'][_0x588b('0x35')]));_0x31dad3[_0x588b('0x34')]=_0x31dad3[_0x588b('0x34')][_0x588b('0x36')]?_0x31dad3[_0x588b('0x34')]:_0xe2a5e4[_0x588b('0x2f')];if(!_0x1b6589['query'][_0x588b('0x53')](_0x588b('0x37'))){_0x31dad3[_0x588b('0x1e')]=qs[_0x588b('0x1e')](_0x1b6589[_0x588b('0x30')][_0x588b('0x1e')]);_0x31dad3[_0x588b('0x1b')]=qs[_0x588b('0x1b')](_0x1b6589[_0x588b('0x30')][_0x588b('0x1b')]);}_0x31dad3[_0x588b('0x38')]=qs[_0x588b('0x39')](_0x1b6589['query'][_0x588b('0x39')]);_0x31dad3[_0x588b('0x3a')]=qs[_0x588b('0x32')](_[_0x588b('0x54')](_0x1b6589[_0x588b('0x30')],_0xe2a5e4[_0x588b('0x32')]));_0x31dad3['where'][_0x588b('0x55')]=_0x57d292['id'];if(_0x1b6589[_0x588b('0x30')][_0x588b('0x3b')]){_0x31dad3[_0x588b('0x3a')]=_[_0x588b('0x3c')](_0x31dad3[_0x588b('0x3a')],{'$or':_[_0x588b('0x2a')](_0x31dad3[_0x588b('0x34')],function(_0x100c16){var _0x3766c2={};_0x3766c2[_0x100c16]={'$like':'%'+_0x1b6589[_0x588b('0x30')][_0x588b('0x3b')]+'%'};return _0x3766c2;})});}_0x31dad3=_[_0x588b('0x3c')]({},_0x31dad3,_0x1b6589[_0x588b('0x3e')]);return db[_0x588b('0x56')][_0x588b('0x1d')]({'where':_0x31dad3[_0x588b('0x3a')]})[_0x588b('0x24')](function(_0x5c703d){_0x225be0['count']=_0x5c703d;if(_0x1b6589[_0x588b('0x30')][_0x588b('0x3f')]){_0x31dad3['include']=[{'all':!![]}];}return db['JscriptySessionReport'][_0x588b('0x57')](_0x31dad3);})[_0x588b('0x24')](function(_0x3ee7ab){_0x225be0['rows']=_0x3ee7ab;return _0x225be0;});}})['then'](respondWithFilteredResult(_0x1c5c3e,_0x31dad3))[_0x588b('0x41')](handleError(_0x1c5c3e,null));};exports[_0x588b('0x58')]=function(_0x15d7f5,_0x50a7c4,_0x3fb6e3){var _0xbb9a84={'raw':!![],'where':{}};var _0x452f57={};var _0xcc3947={'count':0x0,'rows':[]};return db['JscriptyProject'][_0x588b('0x59')]({'where':{'id':_0x15d7f5[_0x588b('0x4e')]['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x50a7c4,null))[_0x588b('0x24')](function(_0x3e0f68){if(_0x3e0f68){_0x452f57['model']=_['keys'](db[_0x588b('0x5a')]['rawAttributes']);_0x452f57['query']=_[_0x588b('0x31')](_0x15d7f5[_0x588b('0x30')]);_0x452f57[_0x588b('0x32')]=_[_0x588b('0x33')](_0x452f57[_0x588b('0x2f')],_0x452f57[_0x588b('0x30')]);_0xbb9a84[_0x588b('0x34')]=_[_0x588b('0x33')](_0x452f57['model'],qs['fields'](_0x15d7f5['query'][_0x588b('0x35')]));_0xbb9a84[_0x588b('0x34')]=_0xbb9a84[_0x588b('0x34')]['length']?_0xbb9a84[_0x588b('0x34')]:_0x452f57[_0x588b('0x2f')];if(!_0x15d7f5[_0x588b('0x30')][_0x588b('0x53')](_0x588b('0x37'))){_0xbb9a84[_0x588b('0x1e')]=qs[_0x588b('0x1e')](_0x15d7f5[_0x588b('0x30')]['limit']);_0xbb9a84['offset']=qs['offset'](_0x15d7f5['query'][_0x588b('0x1b')]);}_0xbb9a84['order']=qs['sort'](_0x15d7f5[_0x588b('0x30')][_0x588b('0x39')]);_0xbb9a84[_0x588b('0x3a')]=qs['filters'](_['pick'](_0x15d7f5['query'],_0x452f57[_0x588b('0x32')]));_0xbb9a84[_0x588b('0x3a')]['ProjectId']=_0x3e0f68['id'];if(_0x15d7f5[_0x588b('0x30')][_0x588b('0x3b')]){_0xbb9a84[_0x588b('0x3a')]=_[_0x588b('0x3c')](_0xbb9a84[_0x588b('0x3a')],{'$or':_[_0x588b('0x2a')](_0xbb9a84[_0x588b('0x34')],function(_0x297a4f){var _0x31a785={};_0x31a785[_0x297a4f]={'$like':'%'+_0x15d7f5[_0x588b('0x30')][_0x588b('0x3b')]+'%'};return _0x31a785;})});}_0xbb9a84=_['merge']({},_0xbb9a84,_0x15d7f5[_0x588b('0x3e')]);return db[_0x588b('0x5a')][_0x588b('0x1d')]({'where':_0xbb9a84[_0x588b('0x3a')]})[_0x588b('0x24')](function(_0x557275){_0xcc3947[_0x588b('0x1d')]=_0x557275;if(_0x15d7f5[_0x588b('0x30')][_0x588b('0x3f')]){_0xbb9a84[_0x588b('0x40')]=[{'all':!![]}];}return db['JscriptyAnswerReport']['findAll'](_0xbb9a84);})['then'](function(_0x35da40){_0xcc3947[_0x588b('0x5b')]=_0x35da40;return _0xcc3947;});}})['then'](respondWithFilteredResult(_0x50a7c4,_0xbb9a84))[_0x588b('0x41')](handleError(_0x50a7c4,null));};function char(_0x3228a4){return _0x588b('0x5c')===typeof _0x3228a4?String[_0x588b('0x5d')][_0x588b('0x21')](null,arguments):_0x3228a4;}function needsEncapsulation(_0x16299c){return!!_0x16299c&&(_0x16299c[_0x588b('0x5e')]()[_0x588b('0x5f')](char(0xd))>=0x0||_0x16299c[_0x588b('0x5e')]()['indexOf'](char(0xa))>=0x0||_0x16299c[_0x588b('0x5e')]()['indexOf'](char(0x2c))>=0x0||_0x16299c[_0x588b('0x5e')]()['indexOf'](char(0x22))>=0x0);}function encapsulate(_0x561fc3){var _0x2ba3ce=char(0x22),_0x1293b6='\x5c'+char(0x22),_0x5bf75e=_0x561fc3['toString']()['replace'](new RegExp(_0x2ba3ce,'g'),_0x1293b6);return _0x2ba3ce+_0x5bf75e+_0x2ba3ce;}exports[_0x588b('0x60')]=function(_0x11408c,_0x112e57,_0x485efd){var _0x1e86b2,_0x4832b1;var _0x138535={'where':{'ProjectId':_0x11408c['params']['id']}};if(_0x11408c[_0x588b('0x30')][_0x588b('0x61')]){_0x138535['where']['starttime']=JSON[_0x588b('0x62')](_0x11408c['query']['startTime']);}return db[_0x588b('0x56')][_0x588b('0x57')](_0x138535)[_0x588b('0x24')](handleEntityNotFound(_0x112e57,null))[_0x588b('0x24')](function(_0x9a04a1){if(_0x9a04a1){_0x1e86b2=_0x9a04a1;return db['JscriptyQuestionReport'][_0x588b('0x57')]({'where':{'SessionId':{'$in':_[_0x588b('0x2a')](_0x1e86b2,'id')},'ProjectId':_0x11408c['params']['id']},'order':'-createdAt'});}})['then'](handleEntityNotFound(_0x112e57,null))[_0x588b('0x24')](function(_0x317acd){if(_0x317acd){_0x4832b1=_0x317acd;var _0xffe55c={};for(var _0x424467=0x0,_0x17cea0=_0x4832b1[_0x588b('0x36')];_0x424467<_0x17cea0;_0x424467++){if(!_0xffe55c[_0x588b('0x53')](_0x4832b1[_0x424467][_0x588b('0x63')])){_0xffe55c[_0x4832b1[_0x424467][_0x588b('0x63')]]=needsEncapsulation(_0x4832b1[_0x424467][_0x588b('0x64')])?encapsulate(_0x4832b1[_0x424467][_0x588b('0x64')]):_0x4832b1[_0x424467][_0x588b('0x64')];}}var _0x49cbfb=[],_0x3fea39={};for(var _0x2159f2=0x0,_0x2d7ae5=_0x1e86b2['length'];_0x2159f2<_0x2d7ae5;_0x2159f2++){_0x3fea39={'ProjectId':_0x11408c[_0x588b('0x4e')]['id'],'SessionId':_0x1e86b2[_0x2159f2]['id'],'StartTime':moment(_0x1e86b2[_0x2159f2]['starttime'])[_0x588b('0x65')](_0x588b('0x66'))};for(var _0x1c1d57=0x0,_0x51e3e8=_0x4832b1[_0x588b('0x36')];_0x1c1d57<_0x51e3e8;_0x1c1d57++){if(_0x4832b1[_0x1c1d57][_0x588b('0x67')]==_0x1e86b2[_0x2159f2]['id']&&_0xffe55c[_0x588b('0x53')](_0x4832b1[_0x1c1d57][_0x588b('0x63')])){_0x3fea39[_0xffe55c[_0x4832b1[_0x1c1d57]['questionId']]]=_0x4832b1[_0x1c1d57][_0x588b('0x68')];}}for(var _0x3f090e in _0xffe55c){if(!_0x3fea39['hasOwnProperty'](_0xffe55c[_0x3f090e])){_0x3fea39[_0xffe55c[_0x3f090e]]=null;}}_0x49cbfb[_0x588b('0x69')](_0x3fea39);}return _0x49cbfb;}})[_0x588b('0x24')](function(_0x4e90c4){if(!_[_0x588b('0x6a')](_0x4e90c4)){var _0x707691=toCsv(_0x4e90c4);var _0x561078=Date[_0x588b('0x6b')]();fs[_0x588b('0x6c')](util['format']('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x11408c[_0x588b('0x4e')]['id'],_0x561078),_0x707691);_0x112e57[_0x588b('0x6d')](_0x588b('0x6e'),_0x588b('0x6f')+util[_0x588b('0x65')](_0x588b('0x70'),_0x11408c['params']['id'],_0x561078));_0x112e57[_0x588b('0x6d')](_0x588b('0x71'),_0x588b('0x72'));return _0x112e57[_0x588b('0x73')](util['format']('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x11408c[_0x588b('0x4e')]['id'],_0x561078));}else{return _0x112e57[_0x588b('0x17')](0xcc);}})['catch'](handleError(_0x112e57,null));};
\ No newline at end of file
+var _0x83d4=['-createdAt','questionId','question','starttime','YYYY-MM-DD\x20HH:mm:ss','push','isEmpty','writeFileSync','format','setHeader','Content-disposition','text/csv','download','eml-format','fast-json-patch','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','sendStatus','status','end','json','limit','undefined','offset','Content-Range','apply','reject','save','Projects','UserProfileResource','destroy','then','error','stack','name','send','index','JscriptyProject','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','options','count','includeAll','include','findAll','catch','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','params','find','omit','createdAt','body','updatedAt','role','update','getSessions','findOne','order','JscriptySessionReport','rows','JscriptyAnswerReport','ProjectId','fromCharCode','toString','indexOf','replace','getSummary','parse','startTime','JscriptyQuestionReport'];(function(_0x45da5e,_0x2d316e){var _0x38f451=function(_0x270f2e){while(--_0x270f2e){_0x45da5e['push'](_0x45da5e['shift']());}};_0x38f451(++_0x2d316e);}(_0x83d4,0xf1));var _0x483d=function(_0x59aac4,_0x5744ed){_0x59aac4=_0x59aac4-0x0;var _0x580583=_0x83d4[_0x59aac4];return _0x580583;};'use strict';var emlformat=require(_0x483d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x483d('0x1'));var rp=require('request-promise');var moment=require(_0x483d('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x483d('0x3'));var util=require(_0x483d('0x4'));var path=require(_0x483d('0x5'));var sox=require(_0x483d('0x6'));var csv=require(_0x483d('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x483d('0x8'));var _=require(_0x483d('0x9'));var squel=require(_0x483d('0xa'));var crypto=require(_0x483d('0xb'));var jsforce=require(_0x483d('0xc'));var deskjs=require(_0x483d('0xd'));var toCsv=require(_0x483d('0x7'));var querystring=require(_0x483d('0xe'));var Papa=require(_0x483d('0xf'));var Redis=require('ioredis');var authService=require(_0x483d('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x483d('0x11'));var hardwareService=require(_0x483d('0x12'));var logger=require('../../config/logger')(_0x483d('0x13'));var utils=require(_0x483d('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1fdc2b,_0x4b0859){_0x4b0859=_0x4b0859||0xcc;return function(_0x3aa564){if(_0x3aa564){return _0x1fdc2b[_0x483d('0x15')](_0x4b0859);}return _0x1fdc2b[_0x483d('0x16')](_0x4b0859)[_0x483d('0x17')]();};}function respondWithResult(_0x478904,_0x1d6412){_0x1d6412=_0x1d6412||0xc8;return function(_0x16535b){if(_0x16535b){return _0x478904[_0x483d('0x16')](_0x1d6412)[_0x483d('0x18')](_0x16535b);}};}function respondWithFilteredResult(_0x55e0b8,_0x1aed6d){return function(_0x659927){if(_0x659927){var _0x51d4e0=typeof _0x1aed6d['offset']==='undefined'&&typeof _0x1aed6d[_0x483d('0x19')]===_0x483d('0x1a');var _0x4306ab=_0x659927['count'];var _0x44e488=_0x51d4e0?0x0:_0x1aed6d[_0x483d('0x1b')];var _0x4071b2=_0x51d4e0?_0x659927['count']:_0x1aed6d['offset']+_0x1aed6d[_0x483d('0x19')];var _0x3de114;if(_0x4071b2>=_0x4306ab){_0x4071b2=_0x4306ab;_0x3de114=0xc8;}else{_0x3de114=0xce;}_0x55e0b8['status'](_0x3de114);return _0x55e0b8['set'](_0x483d('0x1c'),_0x44e488+'-'+_0x4071b2+'/'+_0x4306ab)[_0x483d('0x18')](_0x659927);}return null;};}function patchUpdates(_0x27c9b9){return function(_0x3cae2b){try{jsonpatch[_0x483d('0x1d')](_0x3cae2b,_0x27c9b9,!![]);}catch(_0x16f966){return BPromise[_0x483d('0x1e')](_0x16f966);}return _0x3cae2b[_0x483d('0x1f')]();};}function saveUpdates(_0x7c49c5,_0x57d772){return function(_0x5dc59b){if(_0x5dc59b){return _0x5dc59b['update'](_0x7c49c5)['then'](function(_0x475731){return _0x475731;});}return null;};}function removeEntity(_0x438189,_0x43b7b6){return function(_0x1e54f1){if(_0x1e54f1){return _0x1e54f1['destroy']()['then'](function(){var _0x40759e=_0x1e54f1['get']({'plain':!![]});var _0x1bf9dc=_0x483d('0x20');return db[_0x483d('0x21')][_0x483d('0x22')]({'where':{'type':_0x1bf9dc,'resourceId':_0x40759e['id']}})[_0x483d('0x23')](function(){return _0x1e54f1;});})[_0x483d('0x23')](function(){_0x438189['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d8ed4,_0x446472){return function(_0x5f1841){if(!_0x5f1841){_0x1d8ed4[_0x483d('0x15')](0x194);}return _0x5f1841;};}function handleError(_0x355a6a,_0xcc060a){_0xcc060a=_0xcc060a||0x1f4;return function(_0x5310e7){logger[_0x483d('0x24')](_0x5310e7[_0x483d('0x25')]);if(_0x5310e7[_0x483d('0x26')]){delete _0x5310e7['name'];}_0x355a6a[_0x483d('0x16')](_0xcc060a)[_0x483d('0x27')](_0x5310e7);};}exports[_0x483d('0x28')]=function(_0x474a83,_0x56c225){var _0x5ac9ef={},_0x5a0c20={},_0x41ffb6={'count':0x0,'rows':[]};var _0x28dc10=_['map'](db[_0x483d('0x29')][_0x483d('0x2a')],function(_0x4ac798){return{'name':_0x4ac798[_0x483d('0x2b')],'type':_0x4ac798[_0x483d('0x2c')][_0x483d('0x2d')]};});_0x5a0c20['model']=_['map'](_0x28dc10,_0x483d('0x26'));_0x5a0c20[_0x483d('0x2e')]=_[_0x483d('0x2f')](_0x474a83[_0x483d('0x2e')]);_0x5a0c20[_0x483d('0x30')]=_[_0x483d('0x31')](_0x5a0c20[_0x483d('0x32')],_0x5a0c20[_0x483d('0x2e')]);_0x5ac9ef[_0x483d('0x33')]=_[_0x483d('0x31')](_0x5a0c20[_0x483d('0x32')],qs[_0x483d('0x34')](_0x474a83[_0x483d('0x2e')]['fields']));_0x5ac9ef[_0x483d('0x33')]=_0x5ac9ef[_0x483d('0x33')][_0x483d('0x35')]?_0x5ac9ef[_0x483d('0x33')]:_0x5a0c20[_0x483d('0x32')];if(!_0x474a83['query'][_0x483d('0x36')](_0x483d('0x37'))){_0x5ac9ef[_0x483d('0x19')]=qs[_0x483d('0x19')](_0x474a83[_0x483d('0x2e')]['limit']);_0x5ac9ef[_0x483d('0x1b')]=qs['offset'](_0x474a83['query'][_0x483d('0x1b')]);}_0x5ac9ef['order']=qs[_0x483d('0x38')](_0x474a83['query'][_0x483d('0x38')]);_0x5ac9ef[_0x483d('0x39')]=qs['filters'](_[_0x483d('0x3a')](_0x474a83['query'],_0x5a0c20[_0x483d('0x30')]),_0x28dc10);if(_0x474a83[_0x483d('0x2e')][_0x483d('0x3b')]){_0x5ac9ef['where']=_[_0x483d('0x3c')](_0x5ac9ef['where'],{'$or':_[_0x483d('0x3d')](_0x28dc10,function(_0x2acb8a){if(_0x2acb8a[_0x483d('0x2c')]!==_0x483d('0x3e')){var _0xfca91f={};_0xfca91f[_0x2acb8a[_0x483d('0x26')]]={'$like':'%'+_0x474a83[_0x483d('0x2e')][_0x483d('0x3b')]+'%'};return _0xfca91f;}})});}_0x5ac9ef=_[_0x483d('0x3c')]({},_0x5ac9ef,_0x474a83[_0x483d('0x3f')]);var _0x37023d={'where':_0x5ac9ef[_0x483d('0x39')]};return db[_0x483d('0x29')][_0x483d('0x40')](_0x37023d)['then'](function(_0x25b4f9){_0x41ffb6[_0x483d('0x40')]=_0x25b4f9;if(_0x474a83[_0x483d('0x2e')][_0x483d('0x41')]){_0x5ac9ef[_0x483d('0x42')]=[{'all':!![]}];}return db[_0x483d('0x29')][_0x483d('0x43')](_0x5ac9ef);})['then'](function(_0x270eab){_0x41ffb6['rows']=_0x270eab;return _0x41ffb6;})[_0x483d('0x23')](respondWithFilteredResult(_0x56c225,_0x5ac9ef))[_0x483d('0x44')](handleError(_0x56c225,null));};exports['show']=function(_0x12c7a9,_0x3b0b14){var _0x1cab25={'raw':![],'where':{'id':_0x12c7a9['params']['id']}},_0x17a7be={};_0x17a7be[_0x483d('0x32')]=_[_0x483d('0x2f')](db[_0x483d('0x29')][_0x483d('0x2a')]);_0x17a7be[_0x483d('0x2e')]=_[_0x483d('0x2f')](_0x12c7a9[_0x483d('0x2e')]);_0x17a7be[_0x483d('0x30')]=_['intersection'](_0x17a7be['model'],_0x17a7be[_0x483d('0x2e')]);_0x1cab25[_0x483d('0x33')]=_[_0x483d('0x31')](_0x17a7be[_0x483d('0x32')],qs[_0x483d('0x34')](_0x12c7a9['query'][_0x483d('0x34')]));_0x1cab25[_0x483d('0x33')]=_0x1cab25['attributes'][_0x483d('0x35')]?_0x1cab25[_0x483d('0x33')]:_0x17a7be[_0x483d('0x32')];if(_0x12c7a9[_0x483d('0x2e')][_0x483d('0x41')]){_0x1cab25[_0x483d('0x42')]=[{'all':!![]}];}_0x1cab25=_[_0x483d('0x3c')]({},_0x1cab25,_0x12c7a9[_0x483d('0x3f')]);return db[_0x483d('0x29')]['find'](_0x1cab25)[_0x483d('0x23')](handleEntityNotFound(_0x3b0b14,null))[_0x483d('0x23')](respondWithResult(_0x3b0b14,null))[_0x483d('0x44')](handleError(_0x3b0b14,null));};exports[_0x483d('0x45')]=function(_0xfb479a,_0x51bc09){return db[_0x483d('0x29')][_0x483d('0x45')](_0xfb479a['body'],{})[_0x483d('0x23')](function(_0x3215a4){var _0x497065=_0xfb479a['user'][_0x483d('0x46')]({'plain':!![]});if(!_0x497065)throw new Error(_0x483d('0x47'));if(_0x497065['role']===_0x483d('0x48')){var _0x2f8141=_0x3215a4[_0x483d('0x46')]({'plain':!![]});var _0x366ff8=_0x483d('0x20');return db[_0x483d('0x49')]['find']({'where':{'name':_0x366ff8,'userProfileId':_0x497065[_0x483d('0x4a')]},'raw':!![]})[_0x483d('0x23')](function(_0x558330){if(_0x558330&&_0x558330[_0x483d('0x4b')]===0x0){return db[_0x483d('0x21')]['create']({'name':_0x2f8141[_0x483d('0x26')],'resourceId':_0x2f8141['id'],'type':_0x558330[_0x483d('0x26')],'sectionId':_0x558330['id']},{})['then'](function(){return _0x3215a4;});}else{return _0x3215a4;}})[_0x483d('0x44')](function(_0x5897b2){logger[_0x483d('0x24')](_0x483d('0x4c'),_0x5897b2);throw _0x5897b2;});}return _0x3215a4;})['then'](respondWithResult(_0x51bc09,0xc9))[_0x483d('0x44')](handleError(_0x51bc09,null));};exports[_0x483d('0x4d')]=function(_0x1eb751,_0x404faf){var _0x4fbd75={'where':{'id':_0x1eb751[_0x483d('0x4e')]['id']}},_0x5da9b={};_0x5da9b[_0x483d('0x32')]=_[_0x483d('0x2f')](db['JscriptyProject'][_0x483d('0x2a')]);_0x4fbd75[_0x483d('0x33')]=_[_0x483d('0x31')](_0x5da9b[_0x483d('0x32')],qs[_0x483d('0x34')](_0x1eb751['query'][_0x483d('0x34')]));_0x4fbd75[_0x483d('0x33')]=_0x4fbd75['attributes'][_0x483d('0x35')]?_0x4fbd75[_0x483d('0x33')]:_0x5da9b[_0x483d('0x32')];if(_0x1eb751[_0x483d('0x2e')][_0x483d('0x41')]){_0x4fbd75[_0x483d('0x42')]=[{'all':!![]}];}_0x4fbd75=_[_0x483d('0x3c')]({},_0x4fbd75,_0x1eb751[_0x483d('0x3f')]);return db[_0x483d('0x29')][_0x483d('0x4f')](_0x4fbd75)['then'](handleEntityNotFound(_0x404faf,null))[_0x483d('0x23')](function(_0x17bb56){if(_0x17bb56){var _0x3b7537=_0x17bb56[_0x483d('0x46')]({'plain':!![]});_0x3b7537=qs[_0x483d('0x50')](_0x3b7537,['id',_0x483d('0x51'),'updatedAt']);_0x1eb751['body']=_[_0x483d('0x50')](_0x1eb751[_0x483d('0x52')],['id',_0x483d('0x51'),_0x483d('0x53')]);return db['JscriptyProject']['create'](_[_0x483d('0x3c')](_0x3b7537,_0x1eb751[_0x483d('0x52')]),{'include':_0x1eb751[_0x483d('0x2e')][_0x483d('0x41')]?[{'all':!![]}]:undefined})[_0x483d('0x23')](function(_0x558a47){var _0x12ac7a=_0x1eb751['user'][_0x483d('0x46')]({'plain':!![]});if(!_0x12ac7a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x12ac7a[_0x483d('0x54')]==='user'){var _0x143c7f=_0x558a47[_0x483d('0x46')]({'plain':!![]});var _0x3a72c6=_0x483d('0x20');return db[_0x483d('0x49')][_0x483d('0x4f')]({'where':{'name':_0x3a72c6,'userProfileId':_0x12ac7a[_0x483d('0x4a')]},'raw':!![]})[_0x483d('0x23')](function(_0x3037b9){if(_0x3037b9&&_0x3037b9[_0x483d('0x4b')]===0x0){return db[_0x483d('0x21')][_0x483d('0x45')]({'name':_0x143c7f['name'],'resourceId':_0x143c7f['id'],'type':_0x3037b9['name'],'sectionId':_0x3037b9['id']},{})['then'](function(){return _0x558a47;});}else{return _0x558a47;}})[_0x483d('0x44')](function(_0x87103e){logger['error'](_0x483d('0x4c'),_0x87103e);throw _0x87103e;});}return _0x558a47;});}})[_0x483d('0x23')](respondWithResult(_0x404faf,0xc9))['catch'](handleError(_0x404faf,null));};exports[_0x483d('0x55')]=function(_0x4ce801,_0x2717f7){if(_0x4ce801['body']['id']){delete _0x4ce801[_0x483d('0x52')]['id'];}return db['JscriptyProject'][_0x483d('0x4f')]({'where':{'id':_0x4ce801['params']['id']}})[_0x483d('0x23')](handleEntityNotFound(_0x2717f7,null))[_0x483d('0x23')](saveUpdates(_0x4ce801[_0x483d('0x52')],null))[_0x483d('0x23')](respondWithResult(_0x2717f7,null))['catch'](handleError(_0x2717f7,null));};exports['destroy']=function(_0x3e1b5d,_0x3e5c26){return db['JscriptyProject'][_0x483d('0x4f')]({'where':{'id':_0x3e1b5d[_0x483d('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3e5c26,null))[_0x483d('0x23')](removeEntity(_0x3e5c26,null))[_0x483d('0x44')](handleError(_0x3e5c26,null));};exports[_0x483d('0x56')]=function(_0x34d6f2,_0x334844,_0x4ba29c){var _0x1b12a9={'raw':!![],'where':{}};var _0x307179={};var _0x434726={'count':0x0,'rows':[]};return db['JscriptyProject'][_0x483d('0x57')]({'where':{'id':_0x34d6f2[_0x483d('0x4e')]['id']}})[_0x483d('0x23')](handleEntityNotFound(_0x334844,null))[_0x483d('0x23')](function(_0x3c9b1b){if(_0x3c9b1b){_0x307179['model']=_[_0x483d('0x2f')](db['JscriptySessionReport']['rawAttributes']);_0x307179[_0x483d('0x2e')]=_['keys'](_0x34d6f2[_0x483d('0x2e')]);_0x307179[_0x483d('0x30')]=_[_0x483d('0x31')](_0x307179['model'],_0x307179['query']);_0x1b12a9[_0x483d('0x33')]=_[_0x483d('0x31')](_0x307179[_0x483d('0x32')],qs[_0x483d('0x34')](_0x34d6f2[_0x483d('0x2e')][_0x483d('0x34')]));_0x1b12a9[_0x483d('0x33')]=_0x1b12a9[_0x483d('0x33')][_0x483d('0x35')]?_0x1b12a9[_0x483d('0x33')]:_0x307179[_0x483d('0x32')];if(!_0x34d6f2[_0x483d('0x2e')][_0x483d('0x36')](_0x483d('0x37'))){_0x1b12a9[_0x483d('0x19')]=qs[_0x483d('0x19')](_0x34d6f2[_0x483d('0x2e')]['limit']);_0x1b12a9['offset']=qs[_0x483d('0x1b')](_0x34d6f2[_0x483d('0x2e')]['offset']);}_0x1b12a9[_0x483d('0x58')]=qs[_0x483d('0x38')](_0x34d6f2[_0x483d('0x2e')][_0x483d('0x38')]);_0x1b12a9[_0x483d('0x39')]=qs['filters'](_[_0x483d('0x3a')](_0x34d6f2[_0x483d('0x2e')],_0x307179[_0x483d('0x30')]));_0x1b12a9[_0x483d('0x39')]['ProjectId']=_0x3c9b1b['id'];if(_0x34d6f2['query'][_0x483d('0x3b')]){_0x1b12a9[_0x483d('0x39')]=_[_0x483d('0x3c')](_0x1b12a9[_0x483d('0x39')],{'$or':_[_0x483d('0x3d')](_0x1b12a9[_0x483d('0x33')],function(_0x136689){var _0x15bc71={};_0x15bc71[_0x136689]={'$like':'%'+_0x34d6f2[_0x483d('0x2e')][_0x483d('0x3b')]+'%'};return _0x15bc71;})});}_0x1b12a9=_[_0x483d('0x3c')]({},_0x1b12a9,_0x34d6f2['options']);return db[_0x483d('0x59')]['count']({'where':_0x1b12a9[_0x483d('0x39')]})[_0x483d('0x23')](function(_0x1ba8ed){_0x434726[_0x483d('0x40')]=_0x1ba8ed;if(_0x34d6f2['query'][_0x483d('0x41')]){_0x1b12a9[_0x483d('0x42')]=[{'all':!![]}];}return db[_0x483d('0x59')][_0x483d('0x43')](_0x1b12a9);})[_0x483d('0x23')](function(_0x1758a6){_0x434726[_0x483d('0x5a')]=_0x1758a6;return _0x434726;});}})[_0x483d('0x23')](respondWithFilteredResult(_0x334844,_0x1b12a9))[_0x483d('0x44')](handleError(_0x334844,null));};exports['getAnswers']=function(_0x19189c,_0x1baa91,_0x3e4c0f){var _0x527fdf={'raw':!![],'where':{}};var _0x3983bf={};var _0x28a1fd={'count':0x0,'rows':[]};return db[_0x483d('0x29')][_0x483d('0x57')]({'where':{'id':_0x19189c[_0x483d('0x4e')]['id']}})['then'](handleEntityNotFound(_0x1baa91,null))['then'](function(_0x356790){if(_0x356790){_0x3983bf['model']=_[_0x483d('0x2f')](db[_0x483d('0x5b')][_0x483d('0x2a')]);_0x3983bf['query']=_[_0x483d('0x2f')](_0x19189c[_0x483d('0x2e')]);_0x3983bf[_0x483d('0x30')]=_[_0x483d('0x31')](_0x3983bf[_0x483d('0x32')],_0x3983bf[_0x483d('0x2e')]);_0x527fdf['attributes']=_['intersection'](_0x3983bf[_0x483d('0x32')],qs[_0x483d('0x34')](_0x19189c['query']['fields']));_0x527fdf[_0x483d('0x33')]=_0x527fdf[_0x483d('0x33')][_0x483d('0x35')]?_0x527fdf[_0x483d('0x33')]:_0x3983bf[_0x483d('0x32')];if(!_0x19189c[_0x483d('0x2e')]['hasOwnProperty'](_0x483d('0x37'))){_0x527fdf['limit']=qs['limit'](_0x19189c[_0x483d('0x2e')][_0x483d('0x19')]);_0x527fdf[_0x483d('0x1b')]=qs[_0x483d('0x1b')](_0x19189c['query']['offset']);}_0x527fdf[_0x483d('0x58')]=qs[_0x483d('0x38')](_0x19189c[_0x483d('0x2e')][_0x483d('0x38')]);_0x527fdf[_0x483d('0x39')]=qs[_0x483d('0x30')](_[_0x483d('0x3a')](_0x19189c['query'],_0x3983bf[_0x483d('0x30')]));_0x527fdf['where'][_0x483d('0x5c')]=_0x356790['id'];if(_0x19189c[_0x483d('0x2e')]['filter']){_0x527fdf[_0x483d('0x39')]=_['merge'](_0x527fdf[_0x483d('0x39')],{'$or':_[_0x483d('0x3d')](_0x527fdf['attributes'],function(_0x202d22){var _0x33e7f3={};_0x33e7f3[_0x202d22]={'$like':'%'+_0x19189c[_0x483d('0x2e')][_0x483d('0x3b')]+'%'};return _0x33e7f3;})});}_0x527fdf=_[_0x483d('0x3c')]({},_0x527fdf,_0x19189c[_0x483d('0x3f')]);return db['JscriptyAnswerReport'][_0x483d('0x40')]({'where':_0x527fdf[_0x483d('0x39')]})['then'](function(_0x2c9039){_0x28a1fd['count']=_0x2c9039;if(_0x19189c['query']['includeAll']){_0x527fdf[_0x483d('0x42')]=[{'all':!![]}];}return db[_0x483d('0x5b')][_0x483d('0x43')](_0x527fdf);})[_0x483d('0x23')](function(_0x2c6597){_0x28a1fd[_0x483d('0x5a')]=_0x2c6597;return _0x28a1fd;});}})[_0x483d('0x23')](respondWithFilteredResult(_0x1baa91,_0x527fdf))[_0x483d('0x44')](handleError(_0x1baa91,null));};function char(_0x3c1329){return'number'===typeof _0x3c1329?String[_0x483d('0x5d')][_0x483d('0x1d')](null,arguments):_0x3c1329;}function needsEncapsulation(_0x3dcc93){return!!_0x3dcc93&&(_0x3dcc93[_0x483d('0x5e')]()[_0x483d('0x5f')](char(0xd))>=0x0||_0x3dcc93[_0x483d('0x5e')]()[_0x483d('0x5f')](char(0xa))>=0x0||_0x3dcc93[_0x483d('0x5e')]()[_0x483d('0x5f')](char(0x2c))>=0x0||_0x3dcc93[_0x483d('0x5e')]()[_0x483d('0x5f')](char(0x22))>=0x0);}function encapsulate(_0x26f8f5){var _0x4dff23=char(0x22),_0x878eea='\x5c'+char(0x22),_0x253cd3=_0x26f8f5[_0x483d('0x5e')]()[_0x483d('0x60')](new RegExp(_0x4dff23,'g'),_0x878eea);return _0x4dff23+_0x253cd3+_0x4dff23;}exports[_0x483d('0x61')]=function(_0x401f1f,_0x26bf39,_0x371e23){var _0x3a0ac9,_0x1cc529;var _0x4abdad={'where':{'ProjectId':_0x401f1f['params']['id']}};if(_0x401f1f[_0x483d('0x2e')]['startTime']){_0x4abdad[_0x483d('0x39')]['starttime']=JSON[_0x483d('0x62')](_0x401f1f['query'][_0x483d('0x63')]);}return db[_0x483d('0x59')]['findAll'](_0x4abdad)[_0x483d('0x23')](handleEntityNotFound(_0x26bf39,null))[_0x483d('0x23')](function(_0x5a47ab){if(_0x5a47ab){_0x3a0ac9=_0x5a47ab;return db[_0x483d('0x64')][_0x483d('0x43')]({'where':{'SessionId':{'$in':_[_0x483d('0x3d')](_0x3a0ac9,'id')},'ProjectId':_0x401f1f[_0x483d('0x4e')]['id']},'order':_0x483d('0x65')});}})[_0x483d('0x23')](handleEntityNotFound(_0x26bf39,null))['then'](function(_0x31915a){if(_0x31915a){_0x1cc529=_0x31915a;var _0x12ee30={};for(var _0x1f1dfb=0x0,_0x3879c1=_0x1cc529['length'];_0x1f1dfb<_0x3879c1;_0x1f1dfb++){if(!_0x12ee30['hasOwnProperty'](_0x1cc529[_0x1f1dfb][_0x483d('0x66')])){_0x12ee30[_0x1cc529[_0x1f1dfb][_0x483d('0x66')]]=needsEncapsulation(_0x1cc529[_0x1f1dfb][_0x483d('0x67')])?encapsulate(_0x1cc529[_0x1f1dfb][_0x483d('0x67')]):_0x1cc529[_0x1f1dfb][_0x483d('0x67')];}}var _0x468b7d=[],_0x369e4b={};for(var _0x18233d=0x0,_0x3d0fca=_0x3a0ac9['length'];_0x18233d<_0x3d0fca;_0x18233d++){_0x369e4b={'ProjectId':_0x401f1f[_0x483d('0x4e')]['id'],'SessionId':_0x3a0ac9[_0x18233d]['id'],'StartTime':moment(_0x3a0ac9[_0x18233d][_0x483d('0x68')])['format'](_0x483d('0x69'))};for(var _0x4ed5c9=0x0,_0x4add71=_0x1cc529[_0x483d('0x35')];_0x4ed5c9<_0x4add71;_0x4ed5c9++){if(_0x1cc529[_0x4ed5c9]['SessionId']==_0x3a0ac9[_0x18233d]['id']&&_0x12ee30[_0x483d('0x36')](_0x1cc529[_0x4ed5c9][_0x483d('0x66')])){_0x369e4b[_0x12ee30[_0x1cc529[_0x4ed5c9][_0x483d('0x66')]]]=_0x1cc529[_0x4ed5c9]['answer'];}}for(var _0x1e9ce3 in _0x12ee30){if(!_0x369e4b['hasOwnProperty'](_0x12ee30[_0x1e9ce3])){_0x369e4b[_0x12ee30[_0x1e9ce3]]=null;}}_0x468b7d[_0x483d('0x6a')](_0x369e4b);}return _0x468b7d;}})[_0x483d('0x23')](function(_0x536130){if(!_[_0x483d('0x6b')](_0x536130)){var _0x180eae=toCsv(_0x536130);var _0x49a36b=Date['now']();fs[_0x483d('0x6c')](util[_0x483d('0x6d')]('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x401f1f[_0x483d('0x4e')]['id'],_0x49a36b),_0x180eae);_0x26bf39[_0x483d('0x6e')](_0x483d('0x6f'),'attachment;\x20filename='+util['format']('Jscripty_Project_%d_Summary_%s.csv',_0x401f1f[_0x483d('0x4e')]['id'],_0x49a36b));_0x26bf39[_0x483d('0x6e')]('Content-type',_0x483d('0x70'));return _0x26bf39[_0x483d('0x71')](util['format']('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x401f1f[_0x483d('0x4e')]['id'],_0x49a36b));}else{return _0x26bf39[_0x483d('0x15')](0xcc);}})[_0x483d('0x44')](handleError(_0x26bf39,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c88=['./jscriptyProject.attributes','exports','define','JscriptyProject','jscripty_projects','lodash','../../config/logger','api','moment','path','rimraf','../../config/environment'];(function(_0x24ddf6,_0x114e56){var _0x393d70=function(_0x12c818){while(--_0x12c818){_0x24ddf6['push'](_0x24ddf6['shift']());}};_0x393d70(++_0x114e56);}(_0x1c88,0x1a9));var _0x81c8=function(_0x2055a7,_0x415a4c){_0x2055a7=_0x2055a7-0x0;var _0x42a14d=_0x1c88[_0x2055a7];return _0x42a14d;};'use strict';var _=require(_0x81c8('0x0'));var util=require('util');var logger=require(_0x81c8('0x1'))(_0x81c8('0x2'));var moment=require(_0x81c8('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x81c8('0x4'));var rimraf=require(_0x81c8('0x5'));var config=require(_0x81c8('0x6'));var attributes=require(_0x81c8('0x7'));module[_0x81c8('0x8')]=function(_0x3e5721,_0x3f4e27){return _0x3e5721[_0x81c8('0x9')](_0x81c8('0xa'),attributes,{'tableName':_0x81c8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6f7b=['moment','bluebird','request-promise','path','../../config/environment','exports','define','jscripty_projects','util','../../config/logger','api'];(function(_0x450076,_0x10983b){var _0x2029cc=function(_0x4a5e76){while(--_0x4a5e76){_0x450076['push'](_0x450076['shift']());}};_0x2029cc(++_0x10983b);}(_0x6f7b,0x168));var _0xb6f7=function(_0x591566,_0x238a44){_0x591566=_0x591566-0x0;var _0x12ba1e=_0x6f7b[_0x591566];return _0x12ba1e;};'use strict';var _=require('lodash');var util=require(_0xb6f7('0x0'));var logger=require(_0xb6f7('0x1'))(_0xb6f7('0x2'));var moment=require(_0xb6f7('0x3'));var BPromise=require(_0xb6f7('0x4'));var rp=require(_0xb6f7('0x5'));var fs=require('fs');var path=require(_0xb6f7('0x6'));var rimraf=require('rimraf');var config=require(_0xb6f7('0x7'));var attributes=require('./jscriptyProject.attributes');module[_0xb6f7('0x8')]=function(_0x25cec3,_0x59b2d9){return _0x25cec3[_0xb6f7('0x9')]('JscriptyProject',attributes,{'tableName':_0xb6f7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','JscriptyProject,\x20%s,\x20%s','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x4aaf3b,_0x201d64){var _0x4206c0=function(_0x19f011){while(--_0x19f011){_0x4aaf3b['push'](_0x4aaf3b['shift']());}};_0x4206c0(++_0x201d64);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf50820,_0x56f041){_0xf50820=_0xf50820-0x0;var _0x2a9b10=_0xa9e0[_0xf50820];return _0x2a9b10;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
+var _0xbdb7=['request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','http','info','JscriptyProject,\x20%s,\x20%s'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x284bc3,_0x22dffe){_0x284bc3=_0x284bc3-0x0;var _0x41ac81=_0xbdb7[_0x284bc3];return _0x41ac81;};'use strict';var _=require(_0x7bdb('0x0'));var util=require(_0x7bdb('0x1'));var moment=require(_0x7bdb('0x2'));var BPromise=require(_0x7bdb('0x3'));var rs=require(_0x7bdb('0x4'));var fs=require('fs');var Redis=require(_0x7bdb('0x5'));var db=require(_0x7bdb('0x6'))['db'];var utils=require(_0x7bdb('0x7'));var logger=require(_0x7bdb('0x8'))('rpc');var config=require(_0x7bdb('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x7bdb('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1e23a3,_0x493bde,_0x513cba){return new BPromise(function(_0x468041,_0x11a877){return client['request'](_0x1e23a3,_0x513cba)['then'](function(_0xdc2ffc){logger[_0x7bdb('0xb')](_0x7bdb('0xc'),_0x493bde,_0x7bdb('0xd'));logger[_0x7bdb('0xe')](_0x7bdb('0xf'),_0x493bde,_0x7bdb('0xd'),JSON[_0x7bdb('0x10')](_0xdc2ffc));if(_0xdc2ffc['error']){if(_0xdc2ffc['error']['code']===0x1f4){logger[_0x7bdb('0x11')](_0x7bdb('0xc'),_0x493bde,_0xdc2ffc['error'][_0x7bdb('0x12')]);return _0x11a877(_0xdc2ffc['error']['message']);}logger[_0x7bdb('0x11')](_0x7bdb('0xc'),_0x493bde,_0xdc2ffc['error']['message']);return _0x468041(_0xdc2ffc['error'][_0x7bdb('0x12')]);}else{logger[_0x7bdb('0xb')](_0x7bdb('0xc'),_0x493bde,_0x7bdb('0xd'));_0x468041(_0xdc2ffc[_0x7bdb('0x13')][_0x7bdb('0x12')]);}})[_0x7bdb('0x14')](function(_0x1b2d9b){logger['error'](_0x7bdb('0xc'),_0x493bde,_0x1b2d9b);_0x11a877(_0x1b2d9b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d62=['index','isAuthenticated','describe','get','show','post','create','update','delete','/:id','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../config/environment','./jscriptyQuestionReport.controller'];(function(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0x1d62,0x1d4));var _0x21d6=function(_0x1c32df,_0x206814){_0x1c32df=_0x1c32df-0x0;var _0x6c0c33=_0x1d62[_0x1c32df];return _0x6c0c33;};'use strict';var multer=require(_0x21d6('0x0'));var util=require('util');var path=require(_0x21d6('0x1'));var timeout=require(_0x21d6('0x2'));var express=require(_0x21d6('0x3'));var router=express['Router']();var fs_extra=require(_0x21d6('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x21d6('0x5'));var controller=require(_0x21d6('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x21d6('0x7')]);router['get']('/describe',auth[_0x21d6('0x8')](),controller[_0x21d6('0x9')]);router[_0x21d6('0xa')]('/:id',auth[_0x21d6('0x8')](),controller[_0x21d6('0xb')]);router[_0x21d6('0xc')]('/',auth['isAuthenticated'](),controller[_0x21d6('0xd')]);router['put']('/:id',auth[_0x21d6('0x8')](),controller[_0x21d6('0xe')]);router[_0x21d6('0xf')](_0x21d6('0x10'),auth[_0x21d6('0x8')](),controller[_0x21d6('0x11')]);module[_0x21d6('0x12')]=router;
\ No newline at end of file
+var _0xaedc=['Router','../../components/interaction/service','./jscriptyQuestionReport.controller','get','isAuthenticated','/describe','describe','/:id','show','post','create','update','destroy','exports','path','connect-timeout','express'];(function(_0x491a7f,_0x28bb80){var _0x3d8f44=function(_0xdaa716){while(--_0xdaa716){_0x491a7f['push'](_0x491a7f['shift']());}};_0x3d8f44(++_0x28bb80);}(_0xaedc,0x151));var _0xcaed=function(_0x4b34c4,_0xc61ba4){_0x4b34c4=_0x4b34c4-0x0;var _0x418e46=_0xaedc[_0x4b34c4];return _0x418e46;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xcaed('0x0'));var timeout=require(_0xcaed('0x1'));var express=require(_0xcaed('0x2'));var router=express[_0xcaed('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xcaed('0x4'));var config=require('../../config/environment');var controller=require(_0xcaed('0x5'));router[_0xcaed('0x6')]('/',auth[_0xcaed('0x7')](),controller['index']);router[_0xcaed('0x6')](_0xcaed('0x8'),auth['isAuthenticated'](),controller[_0xcaed('0x9')]);router[_0xcaed('0x6')](_0xcaed('0xa'),auth[_0xcaed('0x7')](),controller[_0xcaed('0xb')]);router[_0xcaed('0xc')]('/',auth[_0xcaed('0x7')](),controller[_0xcaed('0xd')]);router['put']('/:id',auth[_0xcaed('0x7')](),controller[_0xcaed('0xe')]);router['delete']('/:id',auth[_0xcaed('0x7')](),controller[_0xcaed('0xf')]);module[_0xcaed('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x3b0731,_0xcf9925){var _0x4204d7=function(_0x635ac5){while(--_0x635ac5){_0x3b0731['push'](_0x3b0731['shift']());}};_0x4204d7(++_0xcf9925);}(_0x7a54,0x106));var _0x47a5=function(_0x2001cf,_0x2a5a8e){_0x2001cf=_0x2001cf-0x0;var _0x6956d9=_0x7a54[_0x2001cf];return _0x6956d9;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x2070da,_0x45e586){var _0x4f9fe1=function(_0x5b6f2a){while(--_0x5b6f2a){_0x2070da['push'](_0x2070da['shift']());}};_0x4f9fe1(++_0x45e586);}(_0x7a54,0x106));var _0x47a5=function(_0x5ed478,_0x24b041){_0x5ed478=_0x5ed478-0x0;var _0xd59981=_0x7a54[_0x5ed478];return _0xd59981;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xecf4=['name','send','index','map','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','JscriptyQuestionReport','include','findAll','rows','catch','show','includeAll','find','create','body','params','describe','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','end','error','stack'];(function(_0x30d74b,_0x4e619f){var _0x5c13e5=function(_0x449d8){while(--_0x449d8){_0x30d74b['push'](_0x30d74b['shift']());}};_0x5c13e5(++_0x4e619f);}(_0xecf4,0x1d9));var _0x4ecf=function(_0x19e928,_0x26a0e4){_0x19e928=_0x19e928-0x0;var _0x4e941f=_0xecf4[_0x19e928];return _0x4e941f;};'use strict';var emlformat=require(_0x4ecf('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4ecf('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4ecf('0x2'));var moment=require(_0x4ecf('0x3'));var BPromise=require(_0x4ecf('0x4'));var Mustache=require(_0x4ecf('0x5'));var util=require(_0x4ecf('0x6'));var path=require(_0x4ecf('0x7'));var sox=require(_0x4ecf('0x8'));var csv=require(_0x4ecf('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4ecf('0xa'));var squel=require(_0x4ecf('0xb'));var crypto=require('crypto');var jsforce=require(_0x4ecf('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x4ecf('0x9'));var querystring=require(_0x4ecf('0xd'));var Papa=require(_0x4ecf('0xe'));var Redis=require('ioredis');var authService=require(_0x4ecf('0xf'));var qs=require(_0x4ecf('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x4ecf('0x11'))(_0x4ecf('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x4ecf('0x13'));var db=require(_0x4ecf('0x14'))['db'];function respondWithStatusCode(_0x5f0f1f,_0x3f8941){_0x3f8941=_0x3f8941||0xcc;return function(_0x15649f){if(_0x15649f){return _0x5f0f1f[_0x4ecf('0x15')](_0x3f8941);}return _0x5f0f1f['status'](_0x3f8941)['end']();};}function respondWithResult(_0x31017c,_0x304abd){_0x304abd=_0x304abd||0xc8;return function(_0x5cd262){if(_0x5cd262){return _0x31017c[_0x4ecf('0x16')](_0x304abd)[_0x4ecf('0x17')](_0x5cd262);}};}function respondWithFilteredResult(_0xec4820,_0x557673){return function(_0x1c27ec){if(_0x1c27ec){var _0x271f8f=typeof _0x557673[_0x4ecf('0x18')]===_0x4ecf('0x19')&&typeof _0x557673[_0x4ecf('0x1a')]===_0x4ecf('0x19');var _0x401c8d=_0x1c27ec[_0x4ecf('0x1b')];var _0xb16dd8=_0x271f8f?0x0:_0x557673[_0x4ecf('0x18')];var _0x479ef=_0x271f8f?_0x1c27ec[_0x4ecf('0x1b')]:_0x557673[_0x4ecf('0x18')]+_0x557673[_0x4ecf('0x1a')];var _0x5179a9;if(_0x479ef>=_0x401c8d){_0x479ef=_0x401c8d;_0x5179a9=0xc8;}else{_0x5179a9=0xce;}_0xec4820['status'](_0x5179a9);return _0xec4820[_0x4ecf('0x1c')](_0x4ecf('0x1d'),_0xb16dd8+'-'+_0x479ef+'/'+_0x401c8d)['json'](_0x1c27ec);}return null;};}function patchUpdates(_0x1d832e){return function(_0x321678){try{jsonpatch[_0x4ecf('0x1e')](_0x321678,_0x1d832e,!![]);}catch(_0x5e4b74){return BPromise[_0x4ecf('0x1f')](_0x5e4b74);}return _0x321678['save']();};}function saveUpdates(_0x483f14,_0x499602){return function(_0xc03d5e){if(_0xc03d5e){return _0xc03d5e[_0x4ecf('0x20')](_0x483f14)['then'](function(_0x527848){return _0x527848;});}return null;};}function removeEntity(_0x1861d0,_0x3ba846){return function(_0x4c5f75){if(_0x4c5f75){return _0x4c5f75[_0x4ecf('0x21')]()[_0x4ecf('0x22')](function(){_0x1861d0['status'](0xcc)[_0x4ecf('0x23')]();});}};}function handleEntityNotFound(_0x3d435d,_0x21ce7e){return function(_0x4492e6){if(!_0x4492e6){_0x3d435d[_0x4ecf('0x15')](0x194);}return _0x4492e6;};}function handleError(_0x394a0d,_0x2f8943){_0x2f8943=_0x2f8943||0x1f4;return function(_0x73b7f1){logger[_0x4ecf('0x24')](_0x73b7f1[_0x4ecf('0x25')]);if(_0x73b7f1[_0x4ecf('0x26')]){delete _0x73b7f1[_0x4ecf('0x26')];}_0x394a0d[_0x4ecf('0x16')](_0x2f8943)[_0x4ecf('0x27')](_0x73b7f1);};}exports[_0x4ecf('0x28')]=function(_0x15c6c8,_0x8b279b){var _0x2bcc98={},_0x1e5153={},_0xc0392e={'count':0x0,'rows':[]};var _0x75a489=_[_0x4ecf('0x29')](db['JscriptyQuestionReport'][_0x4ecf('0x2a')],function(_0x293a5c){return{'name':_0x293a5c[_0x4ecf('0x2b')],'type':_0x293a5c['type']['key']};});_0x1e5153[_0x4ecf('0x2c')]=_['map'](_0x75a489,'name');_0x1e5153[_0x4ecf('0x2d')]=_[_0x4ecf('0x2e')](_0x15c6c8[_0x4ecf('0x2d')]);_0x1e5153[_0x4ecf('0x2f')]=_[_0x4ecf('0x30')](_0x1e5153[_0x4ecf('0x2c')],_0x1e5153['query']);_0x2bcc98[_0x4ecf('0x31')]=_[_0x4ecf('0x30')](_0x1e5153[_0x4ecf('0x2c')],qs[_0x4ecf('0x32')](_0x15c6c8[_0x4ecf('0x2d')]['fields']));_0x2bcc98[_0x4ecf('0x31')]=_0x2bcc98[_0x4ecf('0x31')][_0x4ecf('0x33')]?_0x2bcc98[_0x4ecf('0x31')]:_0x1e5153[_0x4ecf('0x2c')];if(!_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x34')]('nolimit')){_0x2bcc98[_0x4ecf('0x1a')]=qs[_0x4ecf('0x1a')](_0x15c6c8[_0x4ecf('0x2d')]['limit']);_0x2bcc98[_0x4ecf('0x18')]=qs[_0x4ecf('0x18')](_0x15c6c8[_0x4ecf('0x2d')]['offset']);}_0x2bcc98[_0x4ecf('0x35')]=qs['sort'](_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x36')]);_0x2bcc98[_0x4ecf('0x37')]=qs['filters'](_[_0x4ecf('0x38')](_0x15c6c8[_0x4ecf('0x2d')],_0x1e5153[_0x4ecf('0x2f')]),_0x75a489);if(_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x39')]){_0x2bcc98['where']=_[_0x4ecf('0x3a')](_0x2bcc98[_0x4ecf('0x37')],{'$or':_[_0x4ecf('0x29')](_0x75a489,function(_0x5673bd){if(_0x5673bd['type']!==_0x4ecf('0x3b')){var _0x3a914d={};_0x3a914d[_0x5673bd[_0x4ecf('0x26')]]={'$like':'%'+_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x39')]+'%'};return _0x3a914d;}})});}_0x2bcc98=_['merge']({},_0x2bcc98,_0x15c6c8[_0x4ecf('0x3c')]);var _0x34c002={'where':_0x2bcc98['where']};return db[_0x4ecf('0x3d')]['count'](_0x34c002)[_0x4ecf('0x22')](function(_0x5870cf){_0xc0392e[_0x4ecf('0x1b')]=_0x5870cf;if(_0x15c6c8[_0x4ecf('0x2d')]['includeAll']){_0x2bcc98[_0x4ecf('0x3e')]=[{'all':!![]}];}return db[_0x4ecf('0x3d')][_0x4ecf('0x3f')](_0x2bcc98);})['then'](function(_0x30ec32){_0xc0392e[_0x4ecf('0x40')]=_0x30ec32;return _0xc0392e;})['then'](respondWithFilteredResult(_0x8b279b,_0x2bcc98))[_0x4ecf('0x41')](handleError(_0x8b279b,null));};exports[_0x4ecf('0x42')]=function(_0x1b6501,_0x20fd72){var _0x3d1188={'raw':!![],'where':{'id':_0x1b6501['params']['id']}},_0x527e65={};_0x527e65[_0x4ecf('0x2c')]=_[_0x4ecf('0x2e')](db[_0x4ecf('0x3d')][_0x4ecf('0x2a')]);_0x527e65[_0x4ecf('0x2d')]=_['keys'](_0x1b6501[_0x4ecf('0x2d')]);_0x527e65['filters']=_[_0x4ecf('0x30')](_0x527e65[_0x4ecf('0x2c')],_0x527e65[_0x4ecf('0x2d')]);_0x3d1188[_0x4ecf('0x31')]=_['intersection'](_0x527e65[_0x4ecf('0x2c')],qs['fields'](_0x1b6501['query']['fields']));_0x3d1188[_0x4ecf('0x31')]=_0x3d1188[_0x4ecf('0x31')]['length']?_0x3d1188[_0x4ecf('0x31')]:_0x527e65[_0x4ecf('0x2c')];if(_0x1b6501[_0x4ecf('0x2d')][_0x4ecf('0x43')]){_0x3d1188[_0x4ecf('0x3e')]=[{'all':!![]}];}_0x3d1188=_[_0x4ecf('0x3a')]({},_0x3d1188,_0x1b6501['options']);return db[_0x4ecf('0x3d')][_0x4ecf('0x44')](_0x3d1188)[_0x4ecf('0x22')](handleEntityNotFound(_0x20fd72,null))['then'](respondWithResult(_0x20fd72,null))[_0x4ecf('0x41')](handleError(_0x20fd72,null));};exports[_0x4ecf('0x45')]=function(_0x494ed9,_0x307fa5){return db[_0x4ecf('0x3d')][_0x4ecf('0x45')](_0x494ed9[_0x4ecf('0x46')],{})[_0x4ecf('0x22')](respondWithResult(_0x307fa5,0xc9))[_0x4ecf('0x41')](handleError(_0x307fa5,null));};exports['update']=function(_0x389290,_0x5ae6c7){if(_0x389290[_0x4ecf('0x46')]['id']){delete _0x389290['body']['id'];}return db[_0x4ecf('0x3d')][_0x4ecf('0x44')]({'where':{'id':_0x389290[_0x4ecf('0x47')]['id']}})['then'](handleEntityNotFound(_0x5ae6c7,null))[_0x4ecf('0x22')](saveUpdates(_0x389290['body'],null))[_0x4ecf('0x22')](respondWithResult(_0x5ae6c7,null))[_0x4ecf('0x41')](handleError(_0x5ae6c7,null));};exports[_0x4ecf('0x21')]=function(_0x2cb7bc,_0x425f0a){return db[_0x4ecf('0x3d')][_0x4ecf('0x44')]({'where':{'id':_0x2cb7bc[_0x4ecf('0x47')]['id']}})[_0x4ecf('0x22')](handleEntityNotFound(_0x425f0a,null))[_0x4ecf('0x22')](removeEntity(_0x425f0a,null))['catch'](handleError(_0x425f0a,null));};exports[_0x4ecf('0x48')]=function(_0x38197d,_0x11f6b7){return db[_0x4ecf('0x3d')][_0x4ecf('0x48')]()[_0x4ecf('0x22')](respondWithResult(_0x11f6b7,null))[_0x4ecf('0x41')](handleError(_0x11f6b7,null));};
\ No newline at end of file
+var _0xf82d=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','JscriptyQuestionReport','includeAll','findAll','rows','catch','show','find','create','body','params','describe','eml-format','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model'];(function(_0x3ca1fe,_0x3c3952){var _0x1694d8=function(_0x30a09c){while(--_0x30a09c){_0x3ca1fe['push'](_0x3ca1fe['shift']());}};_0x1694d8(++_0x3c3952);}(_0xf82d,0x18e));var _0xdf82=function(_0x33dfc6,_0x337005){_0x33dfc6=_0x33dfc6-0x0;var _0x5aa21a=_0xf82d[_0x33dfc6];return _0x5aa21a;};'use strict';var emlformat=require(_0xdf82('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdf82('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xdf82('0x2'));var BPromise=require(_0xdf82('0x3'));var Mustache=require(_0xdf82('0x4'));var util=require(_0xdf82('0x5'));var path=require(_0xdf82('0x6'));var sox=require(_0xdf82('0x7'));var csv=require(_0xdf82('0x8'));var ejs=require(_0xdf82('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xdf82('0xa'));var crypto=require(_0xdf82('0xb'));var jsforce=require(_0xdf82('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xdf82('0x8'));var querystring=require(_0xdf82('0xd'));var Papa=require('papaparse');var Redis=require(_0xdf82('0xe'));var authService=require(_0xdf82('0xf'));var qs=require(_0xdf82('0x10'));var as=require(_0xdf82('0x11'));var hardwareService=require(_0xdf82('0x12'));var logger=require(_0xdf82('0x13'))('api');var utils=require(_0xdf82('0x14'));var config=require(_0xdf82('0x15'));var licenseUtil=require(_0xdf82('0x16'));var db=require(_0xdf82('0x17'))['db'];function respondWithStatusCode(_0x23e1f2,_0x343c40){_0x343c40=_0x343c40||0xcc;return function(_0x659048){if(_0x659048){return _0x23e1f2['sendStatus'](_0x343c40);}return _0x23e1f2[_0xdf82('0x18')](_0x343c40)[_0xdf82('0x19')]();};}function respondWithResult(_0x45aeaa,_0x4787c0){_0x4787c0=_0x4787c0||0xc8;return function(_0x3ee2dc){if(_0x3ee2dc){return _0x45aeaa[_0xdf82('0x18')](_0x4787c0)[_0xdf82('0x1a')](_0x3ee2dc);}};}function respondWithFilteredResult(_0x5dca79,_0xc7201e){return function(_0x30b231){if(_0x30b231){var _0x486a67=typeof _0xc7201e[_0xdf82('0x1b')]===_0xdf82('0x1c')&&typeof _0xc7201e[_0xdf82('0x1d')]==='undefined';var _0x50599d=_0x30b231[_0xdf82('0x1e')];var _0x44df5a=_0x486a67?0x0:_0xc7201e[_0xdf82('0x1b')];var _0x5c848c=_0x486a67?_0x30b231[_0xdf82('0x1e')]:_0xc7201e[_0xdf82('0x1b')]+_0xc7201e[_0xdf82('0x1d')];var _0x3c00d1;if(_0x5c848c>=_0x50599d){_0x5c848c=_0x50599d;_0x3c00d1=0xc8;}else{_0x3c00d1=0xce;}_0x5dca79[_0xdf82('0x18')](_0x3c00d1);return _0x5dca79[_0xdf82('0x1f')](_0xdf82('0x20'),_0x44df5a+'-'+_0x5c848c+'/'+_0x50599d)[_0xdf82('0x1a')](_0x30b231);}return null;};}function patchUpdates(_0x3e3de3){return function(_0x3e04d9){try{jsonpatch[_0xdf82('0x21')](_0x3e04d9,_0x3e3de3,!![]);}catch(_0x23f3da){return BPromise['reject'](_0x23f3da);}return _0x3e04d9['save']();};}function saveUpdates(_0xae6ca5,_0x30bfcf){return function(_0x285a13){if(_0x285a13){return _0x285a13[_0xdf82('0x22')](_0xae6ca5)[_0xdf82('0x23')](function(_0x52e3f2){return _0x52e3f2;});}return null;};}function removeEntity(_0x1904fe,_0x2dfb8e){return function(_0x52cfb5){if(_0x52cfb5){return _0x52cfb5['destroy']()[_0xdf82('0x23')](function(){_0x1904fe['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5f576f,_0x1d594e){return function(_0x16271b){if(!_0x16271b){_0x5f576f[_0xdf82('0x24')](0x194);}return _0x16271b;};}function handleError(_0x9e195c,_0x5ea893){_0x5ea893=_0x5ea893||0x1f4;return function(_0x1e0eb6){logger[_0xdf82('0x25')](_0x1e0eb6[_0xdf82('0x26')]);if(_0x1e0eb6['name']){delete _0x1e0eb6[_0xdf82('0x27')];}_0x9e195c[_0xdf82('0x18')](_0x5ea893)[_0xdf82('0x28')](_0x1e0eb6);};}exports[_0xdf82('0x29')]=function(_0x6406be,_0x6c52a0){var _0xab4673={},_0x57851e={},_0x1bd04f={'count':0x0,'rows':[]};var _0x68ac40=_[_0xdf82('0x2a')](db['JscriptyQuestionReport'][_0xdf82('0x2b')],function(_0x244d69){return{'name':_0x244d69[_0xdf82('0x2c')],'type':_0x244d69[_0xdf82('0x2d')][_0xdf82('0x2e')]};});_0x57851e['model']=_[_0xdf82('0x2a')](_0x68ac40,_0xdf82('0x27'));_0x57851e[_0xdf82('0x2f')]=_[_0xdf82('0x30')](_0x6406be[_0xdf82('0x2f')]);_0x57851e[_0xdf82('0x31')]=_[_0xdf82('0x32')](_0x57851e[_0xdf82('0x33')],_0x57851e[_0xdf82('0x2f')]);_0xab4673[_0xdf82('0x34')]=_['intersection'](_0x57851e[_0xdf82('0x33')],qs[_0xdf82('0x35')](_0x6406be[_0xdf82('0x2f')][_0xdf82('0x35')]));_0xab4673[_0xdf82('0x34')]=_0xab4673[_0xdf82('0x34')][_0xdf82('0x36')]?_0xab4673[_0xdf82('0x34')]:_0x57851e[_0xdf82('0x33')];if(!_0x6406be[_0xdf82('0x2f')][_0xdf82('0x37')](_0xdf82('0x38'))){_0xab4673[_0xdf82('0x1d')]=qs['limit'](_0x6406be[_0xdf82('0x2f')][_0xdf82('0x1d')]);_0xab4673['offset']=qs[_0xdf82('0x1b')](_0x6406be[_0xdf82('0x2f')][_0xdf82('0x1b')]);}_0xab4673[_0xdf82('0x39')]=qs[_0xdf82('0x3a')](_0x6406be['query'][_0xdf82('0x3a')]);_0xab4673['where']=qs[_0xdf82('0x31')](_['pick'](_0x6406be[_0xdf82('0x2f')],_0x57851e['filters']),_0x68ac40);if(_0x6406be[_0xdf82('0x2f')]['filter']){_0xab4673[_0xdf82('0x3b')]=_[_0xdf82('0x3c')](_0xab4673[_0xdf82('0x3b')],{'$or':_[_0xdf82('0x2a')](_0x68ac40,function(_0x5719ae){if(_0x5719ae[_0xdf82('0x2d')]!==_0xdf82('0x3d')){var _0x5131fe={};_0x5131fe[_0x5719ae['name']]={'$like':'%'+_0x6406be[_0xdf82('0x2f')][_0xdf82('0x3e')]+'%'};return _0x5131fe;}})});}_0xab4673=_['merge']({},_0xab4673,_0x6406be[_0xdf82('0x3f')]);var _0x5ce12a={'where':_0xab4673[_0xdf82('0x3b')]};return db[_0xdf82('0x40')][_0xdf82('0x1e')](_0x5ce12a)[_0xdf82('0x23')](function(_0x11b44c){_0x1bd04f[_0xdf82('0x1e')]=_0x11b44c;if(_0x6406be[_0xdf82('0x2f')][_0xdf82('0x41')]){_0xab4673['include']=[{'all':!![]}];}return db[_0xdf82('0x40')][_0xdf82('0x42')](_0xab4673);})[_0xdf82('0x23')](function(_0x45d7da){_0x1bd04f[_0xdf82('0x43')]=_0x45d7da;return _0x1bd04f;})[_0xdf82('0x23')](respondWithFilteredResult(_0x6c52a0,_0xab4673))[_0xdf82('0x44')](handleError(_0x6c52a0,null));};exports[_0xdf82('0x45')]=function(_0x375c99,_0x355d2f){var _0x1b8e9c={'raw':!![],'where':{'id':_0x375c99['params']['id']}},_0x7767d5={};_0x7767d5[_0xdf82('0x33')]=_[_0xdf82('0x30')](db['JscriptyQuestionReport']['rawAttributes']);_0x7767d5[_0xdf82('0x2f')]=_[_0xdf82('0x30')](_0x375c99['query']);_0x7767d5['filters']=_['intersection'](_0x7767d5[_0xdf82('0x33')],_0x7767d5[_0xdf82('0x2f')]);_0x1b8e9c[_0xdf82('0x34')]=_['intersection'](_0x7767d5[_0xdf82('0x33')],qs[_0xdf82('0x35')](_0x375c99[_0xdf82('0x2f')][_0xdf82('0x35')]));_0x1b8e9c[_0xdf82('0x34')]=_0x1b8e9c[_0xdf82('0x34')][_0xdf82('0x36')]?_0x1b8e9c[_0xdf82('0x34')]:_0x7767d5['model'];if(_0x375c99[_0xdf82('0x2f')][_0xdf82('0x41')]){_0x1b8e9c['include']=[{'all':!![]}];}_0x1b8e9c=_[_0xdf82('0x3c')]({},_0x1b8e9c,_0x375c99[_0xdf82('0x3f')]);return db[_0xdf82('0x40')][_0xdf82('0x46')](_0x1b8e9c)[_0xdf82('0x23')](handleEntityNotFound(_0x355d2f,null))[_0xdf82('0x23')](respondWithResult(_0x355d2f,null))[_0xdf82('0x44')](handleError(_0x355d2f,null));};exports[_0xdf82('0x47')]=function(_0x478c2b,_0x6fac79){return db[_0xdf82('0x40')][_0xdf82('0x47')](_0x478c2b['body'],{})[_0xdf82('0x23')](respondWithResult(_0x6fac79,0xc9))[_0xdf82('0x44')](handleError(_0x6fac79,null));};exports[_0xdf82('0x22')]=function(_0x4c41fb,_0x1f4541){if(_0x4c41fb[_0xdf82('0x48')]['id']){delete _0x4c41fb[_0xdf82('0x48')]['id'];}return db[_0xdf82('0x40')]['find']({'where':{'id':_0x4c41fb[_0xdf82('0x49')]['id']}})['then'](handleEntityNotFound(_0x1f4541,null))[_0xdf82('0x23')](saveUpdates(_0x4c41fb[_0xdf82('0x48')],null))[_0xdf82('0x23')](respondWithResult(_0x1f4541,null))[_0xdf82('0x44')](handleError(_0x1f4541,null));};exports['destroy']=function(_0x28c6f1,_0x36bf4c){return db[_0xdf82('0x40')]['find']({'where':{'id':_0x28c6f1['params']['id']}})[_0xdf82('0x23')](handleEntityNotFound(_0x36bf4c,null))[_0xdf82('0x23')](removeEntity(_0x36bf4c,null))[_0xdf82('0x44')](handleError(_0x36bf4c,null));};exports[_0xdf82('0x4a')]=function(_0x23472c,_0xf6ce9){return db[_0xdf82('0x40')][_0xdf82('0x4a')]()[_0xdf82('0x23')](respondWithResult(_0xf6ce9,null))[_0xdf82('0x44')](handleError(_0xf6ce9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0601=['moment','bluebird','request-promise','rimraf','../../config/environment','./jscriptyQuestionReport.attributes','report_jscripty_questions','lodash','util'];(function(_0x212726,_0x5a04c8){var _0x524aa6=function(_0x5369f4){while(--_0x5369f4){_0x212726['push'](_0x212726['shift']());}};_0x524aa6(++_0x5a04c8);}(_0x0601,0x1c0));var _0x1060=function(_0xcf95b4,_0x24baf1){_0xcf95b4=_0xcf95b4-0x0;var _0x20d28b=_0x0601[_0xcf95b4];return _0x20d28b;};'use strict';var _=require(_0x1060('0x0'));var util=require(_0x1060('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x1060('0x2'));var BPromise=require(_0x1060('0x3'));var rp=require(_0x1060('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1060('0x5'));var config=require(_0x1060('0x6'));var attributes=require(_0x1060('0x7'));module['exports']=function(_0x367c7f,_0x444c0c){return _0x367c7f['define']('JscriptyQuestionReport',attributes,{'tableName':_0x1060('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9266=['request-promise','path','rimraf','../../config/environment','define','JscriptyQuestionReport','report_jscripty_questions','../../config/logger','bluebird'];(function(_0x559921,_0x48ad89){var _0xf01d47=function(_0x532f60){while(--_0x532f60){_0x559921['push'](_0x559921['shift']());}};_0xf01d47(++_0x48ad89);}(_0x9266,0x1ed));var _0x6926=function(_0x2f3848,_0x48564d){_0x2f3848=_0x2f3848-0x0;var _0x102668=_0x9266[_0x2f3848];return _0x102668;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x6926('0x0'))('api');var moment=require('moment');var BPromise=require(_0x6926('0x1'));var rp=require(_0x6926('0x2'));var fs=require('fs');var path=require(_0x6926('0x3'));var rimraf=require(_0x6926('0x4'));var config=require(_0x6926('0x5'));var attributes=require('./jscriptyQuestionReport.attributes');module['exports']=function(_0x3432a6,_0x2b51cb){return _0x3432a6[_0x6926('0x6')](_0x6926('0x7'),attributes,{'tableName':_0x6926('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8977=['rpc','../../config/environment','jayson/promise','client','http','then','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger'];(function(_0x4a747d,_0x3b747f){var _0x3a5b5c=function(_0x4b3e81){while(--_0x4b3e81){_0x4a747d['push'](_0x4a747d['shift']());}};_0x3a5b5c(++_0x3b747f);}(_0x8977,0x1b2));var _0x7897=function(_0x274bd1,_0x40a800){_0x274bd1=_0x274bd1-0x0;var _0xd5b035=_0x8977[_0x274bd1];return _0xd5b035;};'use strict';var _=require(_0x7897('0x0'));var util=require('util');var moment=require(_0x7897('0x1'));var BPromise=require(_0x7897('0x2'));var rs=require(_0x7897('0x3'));var fs=require('fs');var Redis=require(_0x7897('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7897('0x5'));var logger=require(_0x7897('0x6'))(_0x7897('0x7'));var config=require(_0x7897('0x8'));var jayson=require(_0x7897('0x9'));var client=jayson[_0x7897('0xa')][_0x7897('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5924dd,_0x4ccc30,_0x7f601a){return new BPromise(function(_0x4620bb,_0x473ccb){return client['request'](_0x5924dd,_0x7f601a)[_0x7897('0xc')](function(_0x126d4b){logger['info'](_0x7897('0xd'),_0x4ccc30,_0x7897('0xe'));logger['debug'](_0x7897('0xf'),_0x4ccc30,_0x7897('0xe'),JSON[_0x7897('0x10')](_0x126d4b));if(_0x126d4b['error']){if(_0x126d4b[_0x7897('0x11')]['code']===0x1f4){logger['error']('JscriptyQuestionReport,\x20%s,\x20%s',_0x4ccc30,_0x126d4b['error']['message']);return _0x473ccb(_0x126d4b[_0x7897('0x11')]['message']);}logger[_0x7897('0x11')](_0x7897('0xd'),_0x4ccc30,_0x126d4b[_0x7897('0x11')][_0x7897('0x12')]);return _0x4620bb(_0x126d4b[_0x7897('0x11')][_0x7897('0x12')]);}else{logger[_0x7897('0x13')](_0x7897('0xd'),_0x4ccc30,_0x7897('0xe'));_0x4620bb(_0x126d4b['result']['message']);}})[_0x7897('0x14')](function(_0x339c59){logger[_0x7897('0x11')](_0x7897('0xd'),_0x4ccc30,_0x339c59);_0x473ccb(_0x339c59);});});}
\ No newline at end of file
+var _0x992b=['jayson/promise','client','http','request','then','request\x20sent','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','JscriptyQuestionReport,\x20%s,\x20%s','message','info','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x15d8f5,_0x2bbdd2){var _0x38734d=function(_0x2f2404){while(--_0x2f2404){_0x15d8f5['push'](_0x15d8f5['shift']());}};_0x38734d(++_0x2bbdd2);}(_0x992b,0x117));var _0xb992=function(_0x5dc556,_0x5c2c10){_0x5dc556=_0x5dc556-0x0;var _0x1ae9d6=_0x992b[_0x5dc556];return _0x1ae9d6;};'use strict';var _=require(_0xb992('0x0'));var util=require('util');var moment=require(_0xb992('0x1'));var BPromise=require(_0xb992('0x2'));var rs=require(_0xb992('0x3'));var fs=require('fs');var Redis=require(_0xb992('0x4'));var db=require(_0xb992('0x5'))['db'];var utils=require(_0xb992('0x6'));var logger=require(_0xb992('0x7'))(_0xb992('0x8'));var config=require('../../config/environment');var jayson=require(_0xb992('0x9'));var client=jayson[_0xb992('0xa')][_0xb992('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x31506a,_0xd83f2f,_0x5e985b){return new BPromise(function(_0x44771a,_0x4a3cfd){return client[_0xb992('0xc')](_0x31506a,_0x5e985b)[_0xb992('0xd')](function(_0x526897){logger['info']('JscriptyQuestionReport,\x20%s,\x20%s',_0xd83f2f,_0xb992('0xe'));logger[_0xb992('0xf')](_0xb992('0x10'),_0xd83f2f,_0xb992('0xe'),JSON[_0xb992('0x11')](_0x526897));if(_0x526897[_0xb992('0x12')]){if(_0x526897[_0xb992('0x12')]['code']===0x1f4){logger[_0xb992('0x12')](_0xb992('0x13'),_0xd83f2f,_0x526897[_0xb992('0x12')][_0xb992('0x14')]);return _0x4a3cfd(_0x526897[_0xb992('0x12')][_0xb992('0x14')]);}logger['error'](_0xb992('0x13'),_0xd83f2f,_0x526897[_0xb992('0x12')][_0xb992('0x14')]);return _0x44771a(_0x526897['error']['message']);}else{logger[_0xb992('0x15')](_0xb992('0x13'),_0xd83f2f,_0xb992('0xe'));_0x44771a(_0x526897[_0xb992('0x16')][_0xb992('0x14')]);}})[_0xb992('0x17')](function(_0x57af6a){logger[_0xb992('0x12')](_0xb992('0x13'),_0xd83f2f,_0x57af6a);_0x4a3cfd(_0x57af6a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31a3=['isAuthenticated','/:id/questions','getQuestions','post','create','put','/:id','update','delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptySessionReport.controller','get','/describe','describe'];(function(_0x3486e9,_0xbcce8f){var _0x2f337f=function(_0x13d375){while(--_0x13d375){_0x3486e9['push'](_0x3486e9['shift']());}};_0x2f337f(++_0xbcce8f);}(_0x31a3,0x136));var _0x331a=function(_0x8eb4eb,_0xa70079){_0x8eb4eb=_0x8eb4eb-0x0;var _0x1ff8e3=_0x31a3[_0x8eb4eb];return _0x1ff8e3;};'use strict';var multer=require(_0x331a('0x0'));var util=require(_0x331a('0x1'));var path=require('path');var timeout=require(_0x331a('0x2'));var express=require('express');var router=express[_0x331a('0x3')]();var fs_extra=require(_0x331a('0x4'));var auth=require(_0x331a('0x5'));var interaction=require(_0x331a('0x6'));var config=require(_0x331a('0x7'));var controller=require(_0x331a('0x8'));router[_0x331a('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x331a('0x9')](_0x331a('0xa'),auth['isAuthenticated'](),controller[_0x331a('0xb')]);router[_0x331a('0x9')]('/:id',auth[_0x331a('0xc')](),controller['show']);router[_0x331a('0x9')](_0x331a('0xd'),auth[_0x331a('0xc')](),controller[_0x331a('0xe')]);router[_0x331a('0xf')]('/',auth[_0x331a('0xc')](),controller[_0x331a('0x10')]);router[_0x331a('0x11')](_0x331a('0x12'),auth[_0x331a('0xc')](),controller[_0x331a('0x13')]);router[_0x331a('0x14')](_0x331a('0x12'),auth[_0x331a('0xc')](),controller[_0x331a('0x15')]);module[_0x331a('0x16')]=router;
\ No newline at end of file
+var _0x2327=['exports','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./jscriptySessionReport.controller','index','get','/describe','isAuthenticated','describe','/:id','show','/:id/questions','getQuestions','post','put','update','delete','destroy'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x2327,0x1cf));var _0x7232=function(_0xadcfdc,_0x4bd341){_0xadcfdc=_0xadcfdc-0x0;var _0x119c5e=_0x2327[_0xadcfdc];return _0x119c5e;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x7232('0x0'));var timeout=require(_0x7232('0x1'));var express=require(_0x7232('0x2'));var router=express['Router']();var fs_extra=require(_0x7232('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x7232('0x4'));var config=require(_0x7232('0x5'));var controller=require(_0x7232('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x7232('0x7')]);router[_0x7232('0x8')](_0x7232('0x9'),auth[_0x7232('0xa')](),controller[_0x7232('0xb')]);router[_0x7232('0x8')](_0x7232('0xc'),auth[_0x7232('0xa')](),controller[_0x7232('0xd')]);router[_0x7232('0x8')](_0x7232('0xe'),auth[_0x7232('0xa')](),controller[_0x7232('0xf')]);router[_0x7232('0x10')]('/',auth[_0x7232('0xa')](),controller['create']);router[_0x7232('0x11')](_0x7232('0xc'),auth[_0x7232('0xa')](),controller[_0x7232('0x12')]);router[_0x7232('0x13')]('/:id',auth[_0x7232('0xa')](),controller[_0x7232('0x14')]);module[_0x7232('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb334=['starttime','format','YYYY-MM-DD\x20HH:mm:ss','STRING','BOOLEAN','sequelize','exports','DATE','setDataValue'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xb334,0x101));var _0x4b33=function(_0x2531c4,_0x55f217){_0x2531c4=_0x2531c4-0x0;var _0x7f4ff4=_0xb334[_0x2531c4];return _0x7f4ff4;};'use strict';var moment=require('moment');var Sequelize=require(_0x4b33('0x0'));module[_0x4b33('0x1')]={'starttime':{'type':Sequelize[_0x4b33('0x2')],'set':function(_0x3d521f){this[_0x4b33('0x3')](_0x4b33('0x4'),_0x3d521f);this[_0x4b33('0x3')]('endtime',moment()[_0x4b33('0x5')](_0x4b33('0x6')));}},'endtime':{'type':Sequelize['DATE']},'membername':{'type':Sequelize[_0x4b33('0x7')]},'projectname':{'type':Sequelize[_0x4b33('0x7')]},'queue':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x4b33('0x7')]},'calleridname':{'type':Sequelize[_0x4b33('0x7')]},'calleridnum':{'type':Sequelize[_0x4b33('0x7')]},'completed':{'type':Sequelize[_0x4b33('0x8')],'defaultValue':![]}};
\ No newline at end of file
+var _0xe49a=['STRING','DATE','setDataValue','starttime','endtime'];(function(_0x3b81eb,_0x175f32){var _0x149491=function(_0x454753){while(--_0x454753){_0x3b81eb['push'](_0x3b81eb['shift']());}};_0x149491(++_0x175f32);}(_0xe49a,0x6f));var _0xae49=function(_0x28cb01,_0x39e649){_0x28cb01=_0x28cb01-0x0;var _0x1fe8c1=_0xe49a[_0x28cb01];return _0x1fe8c1;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module['exports']={'starttime':{'type':Sequelize[_0xae49('0x0')],'set':function(_0x1e1862){this[_0xae49('0x1')](_0xae49('0x2'),_0x1e1862);this['setDataValue'](_0xae49('0x3'),moment()['format']('YYYY-MM-DD\x20HH:mm:ss'));}},'endtime':{'type':Sequelize[_0xae49('0x0')]},'membername':{'type':Sequelize[_0xae49('0x4')]},'projectname':{'type':Sequelize[_0xae49('0x4')]},'queue':{'type':Sequelize[_0xae49('0x4')]},'uniqueid':{'type':Sequelize[_0xae49('0x4')]},'calleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize['STRING']},'completed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5038=['attributes','fields','length','hasOwnProperty','nolimit','sort','pick','where','type','merge','options','includeAll','include','catch','show','keys','find','create','body','params','destroy','describe','getQuestions','SessionId','JscriptyQuestionReport','findAll','rows','eml-format','request-promise','moment','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','end','error','stack','name','index','map','JscriptySessionReport','rawAttributes','key','model','query','filters','intersection'];(function(_0x29dcb1,_0x1693cd){var _0x3fe0e5=function(_0x54bba5){while(--_0x54bba5){_0x29dcb1['push'](_0x29dcb1['shift']());}};_0x3fe0e5(++_0x1693cd);}(_0x5038,0x1d1));var _0x8503=function(_0x13f4d7,_0x5a678d){_0x13f4d7=_0x13f4d7-0x0;var _0x2014bd=_0x5038[_0x13f4d7];return _0x2014bd;};'use strict';var emlformat=require(_0x8503('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8503('0x1'));var moment=require(_0x8503('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x8503('0x3'));var util=require('util');var path=require('path');var sox=require(_0x8503('0x4'));var csv=require(_0x8503('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8503('0x6'));var _=require(_0x8503('0x7'));var squel=require(_0x8503('0x8'));var crypto=require(_0x8503('0x9'));var jsforce=require(_0x8503('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x8503('0x5'));var querystring=require(_0x8503('0xb'));var Papa=require(_0x8503('0xc'));var Redis=require(_0x8503('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x8503('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8503('0xf'))(_0x8503('0x10'));var utils=require(_0x8503('0x11'));var config=require(_0x8503('0x12'));var licenseUtil=require(_0x8503('0x13'));var db=require(_0x8503('0x14'))['db'];function respondWithStatusCode(_0x40bf22,_0x5a9f41){_0x5a9f41=_0x5a9f41||0xcc;return function(_0x2f94e3){if(_0x2f94e3){return _0x40bf22[_0x8503('0x15')](_0x5a9f41);}return _0x40bf22[_0x8503('0x16')](_0x5a9f41)['end']();};}function respondWithResult(_0x3dbe45,_0x3c9777){_0x3c9777=_0x3c9777||0xc8;return function(_0x48ff53){if(_0x48ff53){return _0x3dbe45[_0x8503('0x16')](_0x3c9777)[_0x8503('0x17')](_0x48ff53);}};}function respondWithFilteredResult(_0x1c15c7,_0x119efa){return function(_0x1eff4c){if(_0x1eff4c){var _0x23ee9a=typeof _0x119efa[_0x8503('0x18')]===_0x8503('0x19')&&typeof _0x119efa[_0x8503('0x1a')]===_0x8503('0x19');var _0x343e52=_0x1eff4c[_0x8503('0x1b')];var _0x5796b5=_0x23ee9a?0x0:_0x119efa['offset'];var _0x259f89=_0x23ee9a?_0x1eff4c[_0x8503('0x1b')]:_0x119efa[_0x8503('0x18')]+_0x119efa[_0x8503('0x1a')];var _0x3a2eea;if(_0x259f89>=_0x343e52){_0x259f89=_0x343e52;_0x3a2eea=0xc8;}else{_0x3a2eea=0xce;}_0x1c15c7[_0x8503('0x16')](_0x3a2eea);return _0x1c15c7['set'](_0x8503('0x1c'),_0x5796b5+'-'+_0x259f89+'/'+_0x343e52)[_0x8503('0x17')](_0x1eff4c);}return null;};}function patchUpdates(_0x5e7842){return function(_0x4a1cd7){try{jsonpatch[_0x8503('0x1d')](_0x4a1cd7,_0x5e7842,!![]);}catch(_0x5b4f33){return BPromise['reject'](_0x5b4f33);}return _0x4a1cd7[_0x8503('0x1e')]();};}function saveUpdates(_0x592e41,_0x471384){return function(_0x1a1fa5){if(_0x1a1fa5){return _0x1a1fa5[_0x8503('0x1f')](_0x592e41)[_0x8503('0x20')](function(_0x2e86cb){return _0x2e86cb;});}return null;};}function removeEntity(_0x334eb8,_0xc27d64){return function(_0x36a221){if(_0x36a221){return _0x36a221['destroy']()[_0x8503('0x20')](function(){_0x334eb8['status'](0xcc)[_0x8503('0x21')]();});}};}function handleEntityNotFound(_0x4024d3,_0x186afc){return function(_0x1f7391){if(!_0x1f7391){_0x4024d3['sendStatus'](0x194);}return _0x1f7391;};}function handleError(_0x205c11,_0x54510c){_0x54510c=_0x54510c||0x1f4;return function(_0x1dc7a0){logger[_0x8503('0x22')](_0x1dc7a0[_0x8503('0x23')]);if(_0x1dc7a0[_0x8503('0x24')]){delete _0x1dc7a0[_0x8503('0x24')];}_0x205c11['status'](_0x54510c)['send'](_0x1dc7a0);};}exports[_0x8503('0x25')]=function(_0x4f12ae,_0x3372b5){var _0x4622a7={},_0x44eaa6={},_0x2de782={'count':0x0,'rows':[]};var _0x41132f=_[_0x8503('0x26')](db[_0x8503('0x27')][_0x8503('0x28')],function(_0x5c95f3){return{'name':_0x5c95f3['fieldName'],'type':_0x5c95f3['type'][_0x8503('0x29')]};});_0x44eaa6[_0x8503('0x2a')]=_[_0x8503('0x26')](_0x41132f,_0x8503('0x24'));_0x44eaa6[_0x8503('0x2b')]=_['keys'](_0x4f12ae[_0x8503('0x2b')]);_0x44eaa6[_0x8503('0x2c')]=_[_0x8503('0x2d')](_0x44eaa6[_0x8503('0x2a')],_0x44eaa6['query']);_0x4622a7[_0x8503('0x2e')]=_[_0x8503('0x2d')](_0x44eaa6[_0x8503('0x2a')],qs[_0x8503('0x2f')](_0x4f12ae[_0x8503('0x2b')][_0x8503('0x2f')]));_0x4622a7[_0x8503('0x2e')]=_0x4622a7[_0x8503('0x2e')][_0x8503('0x30')]?_0x4622a7[_0x8503('0x2e')]:_0x44eaa6[_0x8503('0x2a')];if(!_0x4f12ae['query'][_0x8503('0x31')](_0x8503('0x32'))){_0x4622a7[_0x8503('0x1a')]=qs[_0x8503('0x1a')](_0x4f12ae['query'][_0x8503('0x1a')]);_0x4622a7['offset']=qs[_0x8503('0x18')](_0x4f12ae[_0x8503('0x2b')]['offset']);}_0x4622a7['order']=qs['sort'](_0x4f12ae[_0x8503('0x2b')][_0x8503('0x33')]);_0x4622a7['where']=qs[_0x8503('0x2c')](_[_0x8503('0x34')](_0x4f12ae[_0x8503('0x2b')],_0x44eaa6[_0x8503('0x2c')]),_0x41132f);if(_0x4f12ae[_0x8503('0x2b')]['filter']){_0x4622a7['where']=_['merge'](_0x4622a7[_0x8503('0x35')],{'$or':_[_0x8503('0x26')](_0x41132f,function(_0x6e912b){if(_0x6e912b[_0x8503('0x36')]!=='VIRTUAL'){var _0xbe7d39={};_0xbe7d39[_0x6e912b[_0x8503('0x24')]]={'$like':'%'+_0x4f12ae['query']['filter']+'%'};return _0xbe7d39;}})});}_0x4622a7=_[_0x8503('0x37')]({},_0x4622a7,_0x4f12ae[_0x8503('0x38')]);var _0x2305dd={'where':_0x4622a7[_0x8503('0x35')]};return db[_0x8503('0x27')][_0x8503('0x1b')](_0x2305dd)[_0x8503('0x20')](function(_0x122e39){_0x2de782[_0x8503('0x1b')]=_0x122e39;if(_0x4f12ae[_0x8503('0x2b')][_0x8503('0x39')]){_0x4622a7[_0x8503('0x3a')]=[{'all':!![]}];}return db['JscriptySessionReport']['findAll'](_0x4622a7);})['then'](function(_0x48d99a){_0x2de782['rows']=_0x48d99a;return _0x2de782;})[_0x8503('0x20')](respondWithFilteredResult(_0x3372b5,_0x4622a7))[_0x8503('0x3b')](handleError(_0x3372b5,null));};exports[_0x8503('0x3c')]=function(_0x13e526,_0x589f6d){var _0x3e2f07={'raw':!![],'where':{'id':_0x13e526['params']['id']}},_0x1ddea2={};_0x1ddea2[_0x8503('0x2a')]=_[_0x8503('0x3d')](db['JscriptySessionReport']['rawAttributes']);_0x1ddea2[_0x8503('0x2b')]=_['keys'](_0x13e526[_0x8503('0x2b')]);_0x1ddea2[_0x8503('0x2c')]=_[_0x8503('0x2d')](_0x1ddea2['model'],_0x1ddea2[_0x8503('0x2b')]);_0x3e2f07['attributes']=_[_0x8503('0x2d')](_0x1ddea2[_0x8503('0x2a')],qs[_0x8503('0x2f')](_0x13e526['query'][_0x8503('0x2f')]));_0x3e2f07[_0x8503('0x2e')]=_0x3e2f07[_0x8503('0x2e')][_0x8503('0x30')]?_0x3e2f07[_0x8503('0x2e')]:_0x1ddea2[_0x8503('0x2a')];if(_0x13e526['query'][_0x8503('0x39')]){_0x3e2f07[_0x8503('0x3a')]=[{'all':!![]}];}_0x3e2f07=_[_0x8503('0x37')]({},_0x3e2f07,_0x13e526[_0x8503('0x38')]);return db[_0x8503('0x27')][_0x8503('0x3e')](_0x3e2f07)[_0x8503('0x20')](handleEntityNotFound(_0x589f6d,null))['then'](respondWithResult(_0x589f6d,null))[_0x8503('0x3b')](handleError(_0x589f6d,null));};exports[_0x8503('0x3f')]=function(_0x1213a7,_0x2f4d7a){return db[_0x8503('0x27')][_0x8503('0x3f')](_0x1213a7[_0x8503('0x40')],{})[_0x8503('0x20')](respondWithResult(_0x2f4d7a,0xc9))[_0x8503('0x3b')](handleError(_0x2f4d7a,null));};exports[_0x8503('0x1f')]=function(_0x5b2cb8,_0x1e653c){if(_0x5b2cb8['body']['id']){delete _0x5b2cb8[_0x8503('0x40')]['id'];}return db[_0x8503('0x27')]['find']({'where':{'id':_0x5b2cb8[_0x8503('0x41')]['id']}})[_0x8503('0x20')](handleEntityNotFound(_0x1e653c,null))[_0x8503('0x20')](saveUpdates(_0x5b2cb8[_0x8503('0x40')],null))[_0x8503('0x20')](respondWithResult(_0x1e653c,null))['catch'](handleError(_0x1e653c,null));};exports[_0x8503('0x42')]=function(_0x20b13f,_0x30a2b5){return db[_0x8503('0x27')]['find']({'where':{'id':_0x20b13f[_0x8503('0x41')]['id']}})['then'](handleEntityNotFound(_0x30a2b5,null))[_0x8503('0x20')](removeEntity(_0x30a2b5,null))[_0x8503('0x3b')](handleError(_0x30a2b5,null));};exports[_0x8503('0x43')]=function(_0x4fb94a,_0x10e7a8){return db[_0x8503('0x27')]['describe']()[_0x8503('0x20')](respondWithResult(_0x10e7a8,null))['catch'](handleError(_0x10e7a8,null));};exports[_0x8503('0x44')]=function(_0x1b4f9f,_0x1f58e9,_0x356d88){var _0x1e2a41={'raw':!![],'where':{}};var _0xa15b67={};var _0xfbe6bb={'count':0x0,'rows':[]};return db[_0x8503('0x27')]['findOne']({'where':{'id':_0x1b4f9f['params']['id']}})[_0x8503('0x20')](handleEntityNotFound(_0x1f58e9,null))['then'](function(_0x4d375e){if(_0x4d375e){_0xa15b67[_0x8503('0x2a')]=_[_0x8503('0x3d')](db['JscriptyQuestionReport'][_0x8503('0x28')]);_0xa15b67[_0x8503('0x2b')]=_[_0x8503('0x3d')](_0x1b4f9f[_0x8503('0x2b')]);_0xa15b67[_0x8503('0x2c')]=_[_0x8503('0x2d')](_0xa15b67[_0x8503('0x2a')],_0xa15b67[_0x8503('0x2b')]);_0x1e2a41['attributes']=_[_0x8503('0x2d')](_0xa15b67[_0x8503('0x2a')],qs[_0x8503('0x2f')](_0x1b4f9f[_0x8503('0x2b')]['fields']));_0x1e2a41[_0x8503('0x2e')]=_0x1e2a41[_0x8503('0x2e')][_0x8503('0x30')]?_0x1e2a41['attributes']:_0xa15b67['model'];if(!_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x31')](_0x8503('0x32'))){_0x1e2a41[_0x8503('0x1a')]=qs['limit'](_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x1a')]);_0x1e2a41[_0x8503('0x18')]=qs[_0x8503('0x18')](_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x18')]);}_0x1e2a41['order']=qs['sort'](_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x33')]);_0x1e2a41[_0x8503('0x35')]=qs[_0x8503('0x2c')](_[_0x8503('0x34')](_0x1b4f9f[_0x8503('0x2b')],_0xa15b67[_0x8503('0x2c')]));_0x1e2a41[_0x8503('0x35')][_0x8503('0x45')]=_0x4d375e['id'];if(_0x1b4f9f[_0x8503('0x2b')]['filter']){_0x1e2a41[_0x8503('0x35')]=_[_0x8503('0x37')](_0x1e2a41[_0x8503('0x35')],{'$or':_[_0x8503('0x26')](_0x1e2a41['attributes'],function(_0x1d02ce){var _0x3a4eb5={};_0x3a4eb5[_0x1d02ce]={'$like':'%'+_0x1b4f9f[_0x8503('0x2b')]['filter']+'%'};return _0x3a4eb5;})});}_0x1e2a41=_[_0x8503('0x37')]({},_0x1e2a41,_0x1b4f9f[_0x8503('0x38')]);return db[_0x8503('0x46')][_0x8503('0x1b')]({'where':_0x1e2a41[_0x8503('0x35')]})[_0x8503('0x20')](function(_0x505881){_0xfbe6bb['count']=_0x505881;if(_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x39')]){_0x1e2a41[_0x8503('0x3a')]=[{'all':!![]}];}return db[_0x8503('0x46')][_0x8503('0x47')](_0x1e2a41);})[_0x8503('0x20')](function(_0x50f405){_0xfbe6bb[_0x8503('0x48')]=_0x50f405;return _0xfbe6bb;});}})['then'](respondWithFilteredResult(_0x1f58e9,_0x1e2a41))[_0x8503('0x3b')](handleError(_0x1f58e9,null));};
\ No newline at end of file
+var _0x2bac=['ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','then','destroy','stack','name','send','index','map','JscriptySessionReport','rawAttributes','fieldName','model','query','filters','intersection','fields','attributes','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','keys','length','find','catch','create','body','describe','getQuestions','findOne','JscriptyQuestionReport','SessionId','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','papaparse'];(function(_0xb193f5,_0x25d2d0){var _0x401990=function(_0x58b385){while(--_0x58b385){_0xb193f5['push'](_0xb193f5['shift']());}};_0x401990(++_0x25d2d0);}(_0x2bac,0x84));var _0xc2ba=function(_0x53c56b,_0x343704){_0x53c56b=_0x53c56b-0x0;var _0x25a920=_0x2bac[_0x53c56b];return _0x25a920;};'use strict';var emlformat=require(_0xc2ba('0x0'));var rimraf=require(_0xc2ba('0x1'));var zipdir=require(_0xc2ba('0x2'));var jsonpatch=require(_0xc2ba('0x3'));var rp=require(_0xc2ba('0x4'));var moment=require('moment');var BPromise=require(_0xc2ba('0x5'));var Mustache=require(_0xc2ba('0x6'));var util=require(_0xc2ba('0x7'));var path=require(_0xc2ba('0x8'));var sox=require(_0xc2ba('0x9'));var csv=require(_0xc2ba('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc2ba('0xb'));var _=require('lodash');var squel=require(_0xc2ba('0xc'));var crypto=require(_0xc2ba('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xc2ba('0xe'));var toCsv=require(_0xc2ba('0xa'));var querystring=require('querystring');var Papa=require(_0xc2ba('0xf'));var Redis=require(_0xc2ba('0x10'));var authService=require(_0xc2ba('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc2ba('0x12'));var logger=require(_0xc2ba('0x13'))('api');var utils=require(_0xc2ba('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xc2ba('0x15'))['db'];function respondWithStatusCode(_0x58ab6f,_0x24dcd3){_0x24dcd3=_0x24dcd3||0xcc;return function(_0x4afee2){if(_0x4afee2){return _0x58ab6f[_0xc2ba('0x16')](_0x24dcd3);}return _0x58ab6f[_0xc2ba('0x17')](_0x24dcd3)[_0xc2ba('0x18')]();};}function respondWithResult(_0x883649,_0x57e6a2){_0x57e6a2=_0x57e6a2||0xc8;return function(_0x4ff839){if(_0x4ff839){return _0x883649[_0xc2ba('0x17')](_0x57e6a2)['json'](_0x4ff839);}};}function respondWithFilteredResult(_0x2c9878,_0x3a1f97){return function(_0x19b525){if(_0x19b525){var _0x1c327c=typeof _0x3a1f97[_0xc2ba('0x19')]===_0xc2ba('0x1a')&&typeof _0x3a1f97[_0xc2ba('0x1b')]==='undefined';var _0x302fdc=_0x19b525[_0xc2ba('0x1c')];var _0x3df14e=_0x1c327c?0x0:_0x3a1f97[_0xc2ba('0x19')];var _0x9efe14=_0x1c327c?_0x19b525[_0xc2ba('0x1c')]:_0x3a1f97[_0xc2ba('0x19')]+_0x3a1f97['limit'];var _0x442996;if(_0x9efe14>=_0x302fdc){_0x9efe14=_0x302fdc;_0x442996=0xc8;}else{_0x442996=0xce;}_0x2c9878[_0xc2ba('0x17')](_0x442996);return _0x2c9878[_0xc2ba('0x1d')](_0xc2ba('0x1e'),_0x3df14e+'-'+_0x9efe14+'/'+_0x302fdc)[_0xc2ba('0x1f')](_0x19b525);}return null;};}function patchUpdates(_0x443999){return function(_0x44fc70){try{jsonpatch[_0xc2ba('0x20')](_0x44fc70,_0x443999,!![]);}catch(_0x249e3f){return BPromise['reject'](_0x249e3f);}return _0x44fc70['save']();};}function saveUpdates(_0x5a4e36,_0x348716){return function(_0x5ec7b5){if(_0x5ec7b5){return _0x5ec7b5['update'](_0x5a4e36)[_0xc2ba('0x21')](function(_0x4bd56b){return _0x4bd56b;});}return null;};}function removeEntity(_0x55d13d,_0x13e6df){return function(_0x11d058){if(_0x11d058){return _0x11d058[_0xc2ba('0x22')]()[_0xc2ba('0x21')](function(){_0x55d13d[_0xc2ba('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x387d6a,_0x3d7789){return function(_0x2b5c2b){if(!_0x2b5c2b){_0x387d6a[_0xc2ba('0x16')](0x194);}return _0x2b5c2b;};}function handleError(_0xf13b5d,_0x56e2dc){_0x56e2dc=_0x56e2dc||0x1f4;return function(_0xfbaa9c){logger['error'](_0xfbaa9c[_0xc2ba('0x23')]);if(_0xfbaa9c[_0xc2ba('0x24')]){delete _0xfbaa9c[_0xc2ba('0x24')];}_0xf13b5d[_0xc2ba('0x17')](_0x56e2dc)[_0xc2ba('0x25')](_0xfbaa9c);};}exports[_0xc2ba('0x26')]=function(_0x3ddb27,_0x3be6d2){var _0x8e8c1b={},_0x29e3b1={},_0x2c691c={'count':0x0,'rows':[]};var _0x20470a=_[_0xc2ba('0x27')](db[_0xc2ba('0x28')][_0xc2ba('0x29')],function(_0x371f76){return{'name':_0x371f76[_0xc2ba('0x2a')],'type':_0x371f76['type']['key']};});_0x29e3b1[_0xc2ba('0x2b')]=_[_0xc2ba('0x27')](_0x20470a,'name');_0x29e3b1[_0xc2ba('0x2c')]=_['keys'](_0x3ddb27[_0xc2ba('0x2c')]);_0x29e3b1[_0xc2ba('0x2d')]=_['intersection'](_0x29e3b1[_0xc2ba('0x2b')],_0x29e3b1[_0xc2ba('0x2c')]);_0x8e8c1b['attributes']=_[_0xc2ba('0x2e')](_0x29e3b1['model'],qs[_0xc2ba('0x2f')](_0x3ddb27[_0xc2ba('0x2c')][_0xc2ba('0x2f')]));_0x8e8c1b[_0xc2ba('0x30')]=_0x8e8c1b[_0xc2ba('0x30')]['length']?_0x8e8c1b[_0xc2ba('0x30')]:_0x29e3b1[_0xc2ba('0x2b')];if(!_0x3ddb27[_0xc2ba('0x2c')]['hasOwnProperty'](_0xc2ba('0x31'))){_0x8e8c1b[_0xc2ba('0x1b')]=qs[_0xc2ba('0x1b')](_0x3ddb27[_0xc2ba('0x2c')]['limit']);_0x8e8c1b[_0xc2ba('0x19')]=qs['offset'](_0x3ddb27[_0xc2ba('0x2c')]['offset']);}_0x8e8c1b[_0xc2ba('0x32')]=qs['sort'](_0x3ddb27[_0xc2ba('0x2c')][_0xc2ba('0x33')]);_0x8e8c1b['where']=qs[_0xc2ba('0x2d')](_[_0xc2ba('0x34')](_0x3ddb27[_0xc2ba('0x2c')],_0x29e3b1[_0xc2ba('0x2d')]),_0x20470a);if(_0x3ddb27[_0xc2ba('0x2c')][_0xc2ba('0x35')]){_0x8e8c1b[_0xc2ba('0x36')]=_[_0xc2ba('0x37')](_0x8e8c1b['where'],{'$or':_['map'](_0x20470a,function(_0x36dfca){if(_0x36dfca['type']!==_0xc2ba('0x38')){var _0x5f4eec={};_0x5f4eec[_0x36dfca[_0xc2ba('0x24')]]={'$like':'%'+_0x3ddb27[_0xc2ba('0x2c')]['filter']+'%'};return _0x5f4eec;}})});}_0x8e8c1b=_[_0xc2ba('0x37')]({},_0x8e8c1b,_0x3ddb27[_0xc2ba('0x39')]);var _0x191fc2={'where':_0x8e8c1b[_0xc2ba('0x36')]};return db[_0xc2ba('0x28')]['count'](_0x191fc2)[_0xc2ba('0x21')](function(_0x3b6294){_0x2c691c[_0xc2ba('0x1c')]=_0x3b6294;if(_0x3ddb27[_0xc2ba('0x2c')][_0xc2ba('0x3a')]){_0x8e8c1b[_0xc2ba('0x3b')]=[{'all':!![]}];}return db[_0xc2ba('0x28')][_0xc2ba('0x3c')](_0x8e8c1b);})[_0xc2ba('0x21')](function(_0x6eb0bb){_0x2c691c[_0xc2ba('0x3d')]=_0x6eb0bb;return _0x2c691c;})[_0xc2ba('0x21')](respondWithFilteredResult(_0x3be6d2,_0x8e8c1b))['catch'](handleError(_0x3be6d2,null));};exports['show']=function(_0x3caeb1,_0x598fc7){var _0x14730a={'raw':!![],'where':{'id':_0x3caeb1[_0xc2ba('0x3e')]['id']}},_0x36a733={};_0x36a733[_0xc2ba('0x2b')]=_[_0xc2ba('0x3f')](db[_0xc2ba('0x28')]['rawAttributes']);_0x36a733[_0xc2ba('0x2c')]=_[_0xc2ba('0x3f')](_0x3caeb1[_0xc2ba('0x2c')]);_0x36a733['filters']=_[_0xc2ba('0x2e')](_0x36a733[_0xc2ba('0x2b')],_0x36a733[_0xc2ba('0x2c')]);_0x14730a[_0xc2ba('0x30')]=_[_0xc2ba('0x2e')](_0x36a733[_0xc2ba('0x2b')],qs['fields'](_0x3caeb1[_0xc2ba('0x2c')][_0xc2ba('0x2f')]));_0x14730a[_0xc2ba('0x30')]=_0x14730a[_0xc2ba('0x30')][_0xc2ba('0x40')]?_0x14730a['attributes']:_0x36a733['model'];if(_0x3caeb1['query'][_0xc2ba('0x3a')]){_0x14730a[_0xc2ba('0x3b')]=[{'all':!![]}];}_0x14730a=_[_0xc2ba('0x37')]({},_0x14730a,_0x3caeb1[_0xc2ba('0x39')]);return db[_0xc2ba('0x28')][_0xc2ba('0x41')](_0x14730a)[_0xc2ba('0x21')](handleEntityNotFound(_0x598fc7,null))[_0xc2ba('0x21')](respondWithResult(_0x598fc7,null))[_0xc2ba('0x42')](handleError(_0x598fc7,null));};exports[_0xc2ba('0x43')]=function(_0x4fc223,_0x461315){return db[_0xc2ba('0x28')][_0xc2ba('0x43')](_0x4fc223['body'],{})[_0xc2ba('0x21')](respondWithResult(_0x461315,0xc9))['catch'](handleError(_0x461315,null));};exports['update']=function(_0x43212a,_0x48062d){if(_0x43212a['body']['id']){delete _0x43212a['body']['id'];}return db[_0xc2ba('0x28')][_0xc2ba('0x41')]({'where':{'id':_0x43212a[_0xc2ba('0x3e')]['id']}})['then'](handleEntityNotFound(_0x48062d,null))[_0xc2ba('0x21')](saveUpdates(_0x43212a[_0xc2ba('0x44')],null))[_0xc2ba('0x21')](respondWithResult(_0x48062d,null))[_0xc2ba('0x42')](handleError(_0x48062d,null));};exports[_0xc2ba('0x22')]=function(_0x141b44,_0xcadcc0){return db[_0xc2ba('0x28')][_0xc2ba('0x41')]({'where':{'id':_0x141b44[_0xc2ba('0x3e')]['id']}})['then'](handleEntityNotFound(_0xcadcc0,null))['then'](removeEntity(_0xcadcc0,null))[_0xc2ba('0x42')](handleError(_0xcadcc0,null));};exports[_0xc2ba('0x45')]=function(_0x51820f,_0x5cab2e){return db['JscriptySessionReport']['describe']()[_0xc2ba('0x21')](respondWithResult(_0x5cab2e,null))[_0xc2ba('0x42')](handleError(_0x5cab2e,null));};exports[_0xc2ba('0x46')]=function(_0x4d74f2,_0x29a019,_0xc8911a){var _0x939e18={'raw':!![],'where':{}};var _0x47b4d3={};var _0x10b1fb={'count':0x0,'rows':[]};return db[_0xc2ba('0x28')][_0xc2ba('0x47')]({'where':{'id':_0x4d74f2['params']['id']}})[_0xc2ba('0x21')](handleEntityNotFound(_0x29a019,null))['then'](function(_0x160726){if(_0x160726){_0x47b4d3['model']=_[_0xc2ba('0x3f')](db[_0xc2ba('0x48')]['rawAttributes']);_0x47b4d3[_0xc2ba('0x2c')]=_[_0xc2ba('0x3f')](_0x4d74f2['query']);_0x47b4d3[_0xc2ba('0x2d')]=_[_0xc2ba('0x2e')](_0x47b4d3['model'],_0x47b4d3['query']);_0x939e18[_0xc2ba('0x30')]=_[_0xc2ba('0x2e')](_0x47b4d3[_0xc2ba('0x2b')],qs['fields'](_0x4d74f2[_0xc2ba('0x2c')][_0xc2ba('0x2f')]));_0x939e18['attributes']=_0x939e18[_0xc2ba('0x30')]['length']?_0x939e18[_0xc2ba('0x30')]:_0x47b4d3[_0xc2ba('0x2b')];if(!_0x4d74f2[_0xc2ba('0x2c')]['hasOwnProperty'](_0xc2ba('0x31'))){_0x939e18[_0xc2ba('0x1b')]=qs['limit'](_0x4d74f2[_0xc2ba('0x2c')][_0xc2ba('0x1b')]);_0x939e18['offset']=qs[_0xc2ba('0x19')](_0x4d74f2[_0xc2ba('0x2c')][_0xc2ba('0x19')]);}_0x939e18[_0xc2ba('0x32')]=qs[_0xc2ba('0x33')](_0x4d74f2[_0xc2ba('0x2c')]['sort']);_0x939e18[_0xc2ba('0x36')]=qs['filters'](_['pick'](_0x4d74f2['query'],_0x47b4d3[_0xc2ba('0x2d')]));_0x939e18[_0xc2ba('0x36')][_0xc2ba('0x49')]=_0x160726['id'];if(_0x4d74f2[_0xc2ba('0x2c')][_0xc2ba('0x35')]){_0x939e18[_0xc2ba('0x36')]=_['merge'](_0x939e18['where'],{'$or':_['map'](_0x939e18['attributes'],function(_0x5d4a22){var _0x402c85={};_0x402c85[_0x5d4a22]={'$like':'%'+_0x4d74f2[_0xc2ba('0x2c')]['filter']+'%'};return _0x402c85;})});}_0x939e18=_[_0xc2ba('0x37')]({},_0x939e18,_0x4d74f2[_0xc2ba('0x39')]);return db[_0xc2ba('0x48')]['count']({'where':_0x939e18[_0xc2ba('0x36')]})[_0xc2ba('0x21')](function(_0xfbf6cc){_0x10b1fb[_0xc2ba('0x1c')]=_0xfbf6cc;if(_0x4d74f2[_0xc2ba('0x2c')][_0xc2ba('0x3a')]){_0x939e18[_0xc2ba('0x3b')]=[{'all':!![]}];}return db[_0xc2ba('0x48')][_0xc2ba('0x3c')](_0x939e18);})[_0xc2ba('0x21')](function(_0x3b64f5){_0x10b1fb[_0xc2ba('0x3d')]=_0x3b64f5;return _0x10b1fb;});}})[_0xc2ba('0x21')](respondWithFilteredResult(_0x29a019,_0x939e18))['catch'](handleError(_0x29a019,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['bluebird','path','../../config/environment','./jscriptySessionReport.attributes','define','JscriptySessionReport','lodash','util','../../config/logger','api','moment'];(function(_0x564ea0,_0x36fde9){var _0x2c3306=function(_0x50205f){while(--_0x50205f){_0x564ea0['push'](_0x564ea0['shift']());}};_0x2c3306(++_0x36fde9);}(_0x53ec,0x192));var _0xc53e=function(_0x339f67,_0x3eef63){_0x339f67=_0x339f67-0x0;var _0x9d6b2=_0x53ec[_0x339f67];return _0x9d6b2;};'use strict';var _=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var logger=require(_0xc53e('0x2'))(_0xc53e('0x3'));var moment=require(_0xc53e('0x4'));var BPromise=require(_0xc53e('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc53e('0x6'));var rimraf=require('rimraf');var config=require(_0xc53e('0x7'));var attributes=require(_0xc53e('0x8'));module['exports']=function(_0x2f1414,_0x4f989b){return _0x2f1414[_0xc53e('0x9')](_0xc53e('0xa'),attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4975=['./jscriptySessionReport.attributes','exports','JscriptySessionReport','report_jscripty_sessions','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0xf661be,_0x2aac0b){var _0x12abb7=function(_0x3ab6fd){while(--_0x3ab6fd){_0xf661be['push'](_0xf661be['shift']());}};_0x12abb7(++_0x2aac0b);}(_0x4975,0x86));var _0x5497=function(_0x424b08,_0x4c72a8){_0x424b08=_0x424b08-0x0;var _0x360924=_0x4975[_0x424b08];return _0x360924;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var logger=require(_0x5497('0x1'))(_0x5497('0x2'));var moment=require(_0x5497('0x3'));var BPromise=require(_0x5497('0x4'));var rp=require(_0x5497('0x5'));var fs=require('fs');var path=require(_0x5497('0x6'));var rimraf=require(_0x5497('0x7'));var config=require(_0x5497('0x8'));var attributes=require(_0x5497('0x9'));module[_0x5497('0xa')]=function(_0x539a27,_0x37e48d){return _0x539a27['define'](_0x5497('0xb'),attributes,{'tableName':_0x5497('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2542=['info','JscriptySessionReport,\x20%s,\x20%s','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then'];(function(_0x5aa5d2,_0x57d67a){var _0x573bd1=function(_0x2450ad){while(--_0x2450ad){_0x5aa5d2['push'](_0x5aa5d2['shift']());}};_0x573bd1(++_0x57d67a);}(_0x2542,0x169));var _0x2254=function(_0x28a475,_0x72e91b){_0x28a475=_0x28a475-0x0;var _0x4455eb=_0x2542[_0x28a475];return _0x4455eb;};'use strict';var _=require(_0x2254('0x0'));var util=require(_0x2254('0x1'));var moment=require(_0x2254('0x2'));var BPromise=require(_0x2254('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2254('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x2254('0x5'));var logger=require(_0x2254('0x6'))(_0x2254('0x7'));var config=require(_0x2254('0x8'));var jayson=require(_0x2254('0x9'));var client=jayson['client'][_0x2254('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe8ca50,_0x2ee7ee,_0x3c45ec){return new BPromise(function(_0x1637ad,_0x477b47){return client[_0x2254('0xb')](_0xe8ca50,_0x3c45ec)[_0x2254('0xc')](function(_0xb395da){logger[_0x2254('0xd')](_0x2254('0xe'),_0x2ee7ee,'request\x20sent');logger[_0x2254('0xf')](_0x2254('0x10'),_0x2ee7ee,_0x2254('0x11'),JSON[_0x2254('0x12')](_0xb395da));if(_0xb395da['error']){if(_0xb395da['error'][_0x2254('0x13')]===0x1f4){logger[_0x2254('0x14')](_0x2254('0xe'),_0x2ee7ee,_0xb395da[_0x2254('0x14')][_0x2254('0x15')]);return _0x477b47(_0xb395da[_0x2254('0x14')]['message']);}logger[_0x2254('0x14')](_0x2254('0xe'),_0x2ee7ee,_0xb395da['error'][_0x2254('0x15')]);return _0x1637ad(_0xb395da[_0x2254('0x14')][_0x2254('0x15')]);}else{logger[_0x2254('0xd')](_0x2254('0xe'),_0x2ee7ee,_0x2254('0x11'));_0x1637ad(_0xb395da['result'][_0x2254('0x15')]);}})['catch'](function(_0x327d6d){logger[_0x2254('0x14')](_0x2254('0xe'),_0x2ee7ee,_0x327d6d);_0x477b47(_0x327d6d);});});}
\ No newline at end of file
+var _0xa456=['message','result','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','then','info','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','error'];(function(_0x55a787,_0x1466a3){var _0x5d90a0=function(_0x5405fb){while(--_0x5405fb){_0x55a787['push'](_0x55a787['shift']());}};_0x5d90a0(++_0x1466a3);}(_0xa456,0x142));var _0x6a45=function(_0xb24a3e,_0x4a3594){_0xb24a3e=_0xb24a3e-0x0;var _0x4038d7=_0xa456[_0xb24a3e];return _0x4038d7;};'use strict';var _=require(_0x6a45('0x0'));var util=require(_0x6a45('0x1'));var moment=require(_0x6a45('0x2'));var BPromise=require(_0x6a45('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6a45('0x4'));var db=require(_0x6a45('0x5'))['db'];var utils=require(_0x6a45('0x6'));var logger=require('../../config/logger')(_0x6a45('0x7'));var config=require(_0x6a45('0x8'));var jayson=require(_0x6a45('0x9'));var client=jayson[_0x6a45('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x25cf8d,_0x26bfc0,_0x214514){return new BPromise(function(_0x19e67c,_0x3deb09){return client['request'](_0x25cf8d,_0x214514)[_0x6a45('0xb')](function(_0x517040){logger[_0x6a45('0xc')](_0x6a45('0xd'),_0x26bfc0,_0x6a45('0xe'));logger[_0x6a45('0xf')](_0x6a45('0x10'),_0x26bfc0,'request\x20sent',JSON['stringify'](_0x517040));if(_0x517040[_0x6a45('0x11')]){if(_0x517040[_0x6a45('0x11')]['code']===0x1f4){logger['error']('JscriptySessionReport,\x20%s,\x20%s',_0x26bfc0,_0x517040[_0x6a45('0x11')][_0x6a45('0x12')]);return _0x3deb09(_0x517040[_0x6a45('0x11')][_0x6a45('0x12')]);}logger[_0x6a45('0x11')]('JscriptySessionReport,\x20%s,\x20%s',_0x26bfc0,_0x517040['error'][_0x6a45('0x12')]);return _0x19e67c(_0x517040[_0x6a45('0x11')]['message']);}else{logger[_0x6a45('0xc')](_0x6a45('0xd'),_0x26bfc0,_0x6a45('0xe'));_0x19e67c(_0x517040[_0x6a45('0x13')]['message']);}})['catch'](function(_0x49023f){logger[_0x6a45('0x11')](_0x6a45('0xd'),_0x26bfc0,_0x49023f);_0x3deb09(_0x49023f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1782=['/:id','exports','util','path','Router','../../components/auth/service','../../components/interaction/service','./license.controller','index','put'];(function(_0x13357f,_0x210dc8){var _0x1fbbf1=function(_0x505bf2){while(--_0x505bf2){_0x13357f['push'](_0x13357f['shift']());}};_0x1fbbf1(++_0x210dc8);}(_0x1782,0x188));var _0x2178=function(_0x111777,_0x43e893){_0x111777=_0x111777-0x0;var _0x18b652=_0x1782[_0x111777];return _0x18b652;};'use strict';var multer=require('multer');var util=require(_0x2178('0x0'));var path=require(_0x2178('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x2178('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x2178('0x3'));var interaction=require(_0x2178('0x4'));var config=require('../../config/environment');var controller=require(_0x2178('0x5'));router['get']('/',controller[_0x2178('0x6')]);router[_0x2178('0x7')](_0x2178('0x8'),auth['isAuthenticated'](),controller['update']);module[_0x2178('0x9')]=router;
\ No newline at end of file
+var _0x9aee=['../../components/auth/service','../../components/interaction/service','index','isAuthenticated','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x290b68,_0x1f82af){var _0x2f23af=function(_0x5efc22){while(--_0x5efc22){_0x290b68['push'](_0x290b68['shift']());}};_0x2f23af(++_0x1f82af);}(_0x9aee,0x71));var _0xe9ae=function(_0x10c2dd,_0x2b0aa5){_0x10c2dd=_0x10c2dd-0x0;var _0x5f166b=_0x9aee[_0x10c2dd];return _0x5f166b;};'use strict';var multer=require(_0xe9ae('0x0'));var util=require(_0xe9ae('0x1'));var path=require(_0xe9ae('0x2'));var timeout=require(_0xe9ae('0x3'));var express=require(_0xe9ae('0x4'));var router=express[_0xe9ae('0x5')]();var fs_extra=require(_0xe9ae('0x6'));var auth=require(_0xe9ae('0x7'));var interaction=require(_0xe9ae('0x8'));var config=require('../../config/environment');var controller=require('./license.controller');router['get']('/',controller[_0xe9ae('0x9')]);router['put']('/:id',auth[_0xe9ae('0xa')](),controller['update']);module[_0xe9ae('0xb')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe93a=['exports','STRING','INTEGER','sequelize'];(function(_0x5ac8fe,_0x143e86){var _0x243105=function(_0x57bd4d){while(--_0x57bd4d){_0x5ac8fe['push'](_0x5ac8fe['shift']());}};_0x243105(++_0x143e86);}(_0xe93a,0x15f));var _0xae93=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0xe93a[_0x2f5ac5];return _0x37c9a8;};'use strict';var Sequelize=require(_0xae93('0x0'));module[_0xae93('0x1')]={'license':{'type':Sequelize['TEXT']},'data1':{'type':Sequelize[_0xae93('0x2')]},'data2':{'type':Sequelize['STRING']},'chatLicenseExceeded':{'type':Sequelize[_0xae93('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xd7c0=['INTEGER','sequelize','TEXT','STRING'];(function(_0x231bf2,_0x41bc52){var _0x3b99cf=function(_0x421814){while(--_0x421814){_0x231bf2['push'](_0x231bf2['shift']());}};_0x3b99cf(++_0x41bc52);}(_0xd7c0,0x85));var _0x0d7c=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0xd7c0[_0xfae23b];return _0x200640;};'use strict';var Sequelize=require(_0x0d7c('0x0'));module['exports']={'license':{'type':Sequelize[_0x0d7c('0x1')]},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize[_0x0d7c('0x2')]},'chatLicenseExceeded':{'type':Sequelize[_0x0d7c('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['query','filters','intersection','attributes','merge','getLicense','body','find','params','key','catch','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','end','stack','name','send','model','keys','License'];(function(_0x210937,_0x1d756a){var _0x2741af=function(_0x5356cd){while(--_0x5356cd){_0x210937['push'](_0x210937['shift']());}};_0x2741af(++_0x1d756a);}(_0xadb5,0xad));var _0x5adb=function(_0x5333a8,_0x2c3547){_0x5333a8=_0x5333a8-0x0;var _0x4ac0bf=_0xadb5[_0x5333a8];return _0x4ac0bf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5adb('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5adb('0x1'));var rp=require(_0x5adb('0x2'));var moment=require(_0x5adb('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5adb('0x4'));var util=require(_0x5adb('0x5'));var path=require(_0x5adb('0x6'));var sox=require('sox');var csv=require(_0x5adb('0x7'));var ejs=require(_0x5adb('0x8'));var fs=require('fs');var fs_extra=require(_0x5adb('0x9'));var _=require(_0x5adb('0xa'));var squel=require(_0x5adb('0xb'));var crypto=require(_0x5adb('0xc'));var jsforce=require(_0x5adb('0xd'));var deskjs=require(_0x5adb('0xe'));var toCsv=require(_0x5adb('0x7'));var querystring=require(_0x5adb('0xf'));var Papa=require(_0x5adb('0x10'));var Redis=require(_0x5adb('0x11'));var authService=require(_0x5adb('0x12'));var qs=require(_0x5adb('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5adb('0x14'))(_0x5adb('0x15'));var utils=require(_0x5adb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x5adb('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2a0b70,_0x5433bf){_0x5433bf=_0x5433bf||0xcc;return function(_0x8cfcc6){if(_0x8cfcc6){return _0x2a0b70[_0x5adb('0x18')](_0x5433bf);}return _0x2a0b70[_0x5adb('0x19')](_0x5433bf)['end']();};}function respondWithResult(_0x2a545b,_0x34af2c){_0x34af2c=_0x34af2c||0xc8;return function(_0xf82f72){if(_0xf82f72){return _0x2a545b['status'](_0x34af2c)[_0x5adb('0x1a')](_0xf82f72);}};}function respondWithFilteredResult(_0x518823,_0x367d82){return function(_0x42a482){if(_0x42a482){var _0x30614e=typeof _0x367d82[_0x5adb('0x1b')]===_0x5adb('0x1c')&&typeof _0x367d82[_0x5adb('0x1d')]===_0x5adb('0x1c');var _0x42f4c6=_0x42a482[_0x5adb('0x1e')];var _0x529b65=_0x30614e?0x0:_0x367d82[_0x5adb('0x1b')];var _0x5de028=_0x30614e?_0x42a482[_0x5adb('0x1e')]:_0x367d82['offset']+_0x367d82[_0x5adb('0x1d')];var _0x50e84f;if(_0x5de028>=_0x42f4c6){_0x5de028=_0x42f4c6;_0x50e84f=0xc8;}else{_0x50e84f=0xce;}_0x518823['status'](_0x50e84f);return _0x518823[_0x5adb('0x1f')](_0x5adb('0x20'),_0x529b65+'-'+_0x5de028+'/'+_0x42f4c6)[_0x5adb('0x1a')](_0x42a482);}return null;};}function patchUpdates(_0x1fd4a7){return function(_0x99bc6c){try{jsonpatch['apply'](_0x99bc6c,_0x1fd4a7,!![]);}catch(_0x3255b3){return BPromise['reject'](_0x3255b3);}return _0x99bc6c['save']();};}function saveUpdates(_0x3754cc,_0x379b33){return function(_0x1a38d3){if(_0x1a38d3){return _0x1a38d3[_0x5adb('0x21')](_0x3754cc)[_0x5adb('0x22')](function(_0x413911){return _0x413911;});}return null;};}function removeEntity(_0xfd9bb9,_0x4ca150){return function(_0x4b1957){if(_0x4b1957){return _0x4b1957[_0x5adb('0x23')]()[_0x5adb('0x22')](function(){_0xfd9bb9[_0x5adb('0x19')](0xcc)[_0x5adb('0x24')]();});}};}function handleEntityNotFound(_0x49f203,_0x2fee18){return function(_0x2e1e63){if(!_0x2e1e63){_0x49f203['sendStatus'](0x194);}return _0x2e1e63;};}function handleError(_0x1feecf,_0x1ded9f){_0x1ded9f=_0x1ded9f||0x1f4;return function(_0x1a0acd){logger['error'](_0x1a0acd[_0x5adb('0x25')]);if(_0x1a0acd[_0x5adb('0x26')]){delete _0x1a0acd[_0x5adb('0x26')];}_0x1feecf[_0x5adb('0x19')](_0x1ded9f)[_0x5adb('0x27')](_0x1a0acd);};}var utilLicense=require(_0x5adb('0x17'));exports['index']=function(_0x49992e,_0x5d457e){var _0x39bddd={'raw':!![],'where':{'id':0x1}},_0x1eac55={};_0x1eac55[_0x5adb('0x28')]=_[_0x5adb('0x29')](db[_0x5adb('0x2a')]['rawAttributes']);_0x1eac55[_0x5adb('0x2b')]=_[_0x5adb('0x29')](_0x49992e[_0x5adb('0x2b')]);_0x1eac55[_0x5adb('0x2c')]=_[_0x5adb('0x2d')](_0x1eac55[_0x5adb('0x28')],_0x1eac55[_0x5adb('0x2b')]);_0x39bddd[_0x5adb('0x2e')]=_[_0x5adb('0x2d')](_0x1eac55[_0x5adb('0x28')],qs['fields'](_0x49992e[_0x5adb('0x2b')]['fields']));_0x39bddd[_0x5adb('0x2e')]=_0x39bddd[_0x5adb('0x2e')]['length']?_0x39bddd[_0x5adb('0x2e')]:_0x1eac55[_0x5adb('0x28')];_0x39bddd=_[_0x5adb('0x2f')]({},_0x39bddd,_0x49992e['options']);return utilLicense[_0x5adb('0x30')](_0x39bddd)[_0x5adb('0x22')](respondWithResult(_0x5d457e,null))['catch'](handleError(_0x5d457e,null));};exports['update']=function(_0x1ed9ea,_0x49dd03){if(_0x1ed9ea[_0x5adb('0x31')]['id']){delete _0x1ed9ea[_0x5adb('0x31')]['id'];}return db[_0x5adb('0x2a')][_0x5adb('0x32')]({'where':{'id':_0x1ed9ea[_0x5adb('0x33')]['id']}})['then'](handleEntityNotFound(_0x49dd03,null))[_0x5adb('0x22')](function(_0x215b88){var _0x1c3a5c=_0x215b88['get']({'plain':!![]});return utilLicense['checkLicense'](_0x1c3a5c,_0x1ed9ea[_0x5adb('0x31')][_0x5adb('0x34')]);})['then'](function(_0x2355bc){if(!_0x2355bc['demo']){return saveUpdates(_0x1ed9ea[_0x5adb('0x31')],null);}return _0x2355bc;})['then'](respondWithResult(_0x49dd03,null))[_0x5adb('0x35')](handleError(_0x49dd03,null));};
\ No newline at end of file
+var _0x326f=['sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','reject','save','update','destroy','then','stack','name','send','model','keys','rawAttributes','query','filters','intersection','attributes','fields','length','options','getLicense','catch','body','License','find','checkLicense','key','demo','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util'];(function(_0x599e60,_0x5b6519){var _0x468e19=function(_0xcdfd97){while(--_0xcdfd97){_0x599e60['push'](_0x599e60['shift']());}};_0x468e19(++_0x5b6519);}(_0x326f,0xd1));var _0xf326=function(_0x2e68b2,_0x8b111){_0x2e68b2=_0x2e68b2-0x0;var _0x1a9b81=_0x326f[_0x2e68b2];return _0x1a9b81;};'use strict';var emlformat=require(_0xf326('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xf326('0x1'));var rp=require(_0xf326('0x2'));var moment=require(_0xf326('0x3'));var BPromise=require(_0xf326('0x4'));var Mustache=require(_0xf326('0x5'));var util=require(_0xf326('0x6'));var path=require(_0xf326('0x7'));var sox=require(_0xf326('0x8'));var csv=require(_0xf326('0x9'));var ejs=require(_0xf326('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf326('0xb'));var squel=require(_0xf326('0xc'));var crypto=require(_0xf326('0xd'));var jsforce=require(_0xf326('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xf326('0xf'));var Redis=require(_0xf326('0x10'));var authService=require(_0xf326('0x11'));var qs=require(_0xf326('0x12'));var as=require(_0xf326('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf326('0x14'))('api');var utils=require(_0xf326('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf326('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3162f9,_0x9ed463){_0x9ed463=_0x9ed463||0xcc;return function(_0x4b3966){if(_0x4b3966){return _0x3162f9[_0xf326('0x17')](_0x9ed463);}return _0x3162f9[_0xf326('0x18')](_0x9ed463)[_0xf326('0x19')]();};}function respondWithResult(_0x17a098,_0x5c8483){_0x5c8483=_0x5c8483||0xc8;return function(_0x45c1b6){if(_0x45c1b6){return _0x17a098['status'](_0x5c8483)['json'](_0x45c1b6);}};}function respondWithFilteredResult(_0xdf21d9,_0x11f6d2){return function(_0x1f2e5a){if(_0x1f2e5a){var _0xa63d1a=typeof _0x11f6d2[_0xf326('0x1a')]===_0xf326('0x1b')&&typeof _0x11f6d2[_0xf326('0x1c')]===_0xf326('0x1b');var _0x5a682a=_0x1f2e5a[_0xf326('0x1d')];var _0x453100=_0xa63d1a?0x0:_0x11f6d2[_0xf326('0x1a')];var _0x31ffb9=_0xa63d1a?_0x1f2e5a[_0xf326('0x1d')]:_0x11f6d2[_0xf326('0x1a')]+_0x11f6d2['limit'];var _0x4a5b6c;if(_0x31ffb9>=_0x5a682a){_0x31ffb9=_0x5a682a;_0x4a5b6c=0xc8;}else{_0x4a5b6c=0xce;}_0xdf21d9['status'](_0x4a5b6c);return _0xdf21d9[_0xf326('0x1e')](_0xf326('0x1f'),_0x453100+'-'+_0x31ffb9+'/'+_0x5a682a)['json'](_0x1f2e5a);}return null;};}function patchUpdates(_0x4cabce){return function(_0x128c68){try{jsonpatch['apply'](_0x128c68,_0x4cabce,!![]);}catch(_0x5b6d3c){return BPromise[_0xf326('0x20')](_0x5b6d3c);}return _0x128c68[_0xf326('0x21')]();};}function saveUpdates(_0x549b46,_0x5aa184){return function(_0x19b8ba){if(_0x19b8ba){return _0x19b8ba[_0xf326('0x22')](_0x549b46)['then'](function(_0x337ed5){return _0x337ed5;});}return null;};}function removeEntity(_0x1b9039,_0x43c53e){return function(_0x295752){if(_0x295752){return _0x295752[_0xf326('0x23')]()[_0xf326('0x24')](function(){_0x1b9039['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f31f6,_0x520d85){return function(_0x1a2c4e){if(!_0x1a2c4e){_0x4f31f6[_0xf326('0x17')](0x194);}return _0x1a2c4e;};}function handleError(_0x1ff2b5,_0x148953){_0x148953=_0x148953||0x1f4;return function(_0x410237){logger['error'](_0x410237[_0xf326('0x25')]);if(_0x410237[_0xf326('0x26')]){delete _0x410237[_0xf326('0x26')];}_0x1ff2b5['status'](_0x148953)[_0xf326('0x27')](_0x410237);};}var utilLicense=require('../../config/license/util');exports['index']=function(_0x6a8e89,_0x1ae23a){var _0x2fa28e={'raw':!![],'where':{'id':0x1}},_0x5dbe63={};_0x5dbe63[_0xf326('0x28')]=_[_0xf326('0x29')](db['License'][_0xf326('0x2a')]);_0x5dbe63[_0xf326('0x2b')]=_[_0xf326('0x29')](_0x6a8e89[_0xf326('0x2b')]);_0x5dbe63[_0xf326('0x2c')]=_[_0xf326('0x2d')](_0x5dbe63[_0xf326('0x28')],_0x5dbe63[_0xf326('0x2b')]);_0x2fa28e[_0xf326('0x2e')]=_[_0xf326('0x2d')](_0x5dbe63['model'],qs[_0xf326('0x2f')](_0x6a8e89[_0xf326('0x2b')][_0xf326('0x2f')]));_0x2fa28e['attributes']=_0x2fa28e[_0xf326('0x2e')][_0xf326('0x30')]?_0x2fa28e[_0xf326('0x2e')]:_0x5dbe63['model'];_0x2fa28e=_['merge']({},_0x2fa28e,_0x6a8e89[_0xf326('0x31')]);return utilLicense[_0xf326('0x32')](_0x2fa28e)[_0xf326('0x24')](respondWithResult(_0x1ae23a,null))[_0xf326('0x33')](handleError(_0x1ae23a,null));};exports[_0xf326('0x22')]=function(_0x2e8a64,_0x62585a){if(_0x2e8a64[_0xf326('0x34')]['id']){delete _0x2e8a64['body']['id'];}return db[_0xf326('0x35')][_0xf326('0x36')]({'where':{'id':_0x2e8a64['params']['id']}})[_0xf326('0x24')](handleEntityNotFound(_0x62585a,null))['then'](function(_0xce1cbb){var _0x481b64=_0xce1cbb['get']({'plain':!![]});return utilLicense[_0xf326('0x37')](_0x481b64,_0x2e8a64['body'][_0xf326('0x38')]);})['then'](function(_0x310dbb){if(!_0x310dbb[_0xf326('0x39')]){return saveUpdates(_0x2e8a64[_0xf326('0x34')],null);}return _0x310dbb;})['then'](respondWithResult(_0x62585a,null))[_0xf326('0x33')](handleError(_0x62585a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7184=['define','License','license','lodash','../../config/logger','api','moment','bluebird','request-promise','path','./license.attributes','exports'];(function(_0xe747b0,_0x47814c){var _0x875f64=function(_0x17474f){while(--_0x17474f){_0xe747b0['push'](_0xe747b0['shift']());}};_0x875f64(++_0x47814c);}(_0x7184,0x153));var _0x4718=function(_0x3a83c8,_0x489ffd){_0x3a83c8=_0x3a83c8-0x0;var _0x5c89db=_0x7184[_0x3a83c8];return _0x5c89db;};'use strict';var _=require(_0x4718('0x0'));var util=require('util');var logger=require(_0x4718('0x1'))(_0x4718('0x2'));var moment=require(_0x4718('0x3'));var BPromise=require(_0x4718('0x4'));var rp=require(_0x4718('0x5'));var fs=require('fs');var path=require(_0x4718('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x4718('0x7'));module[_0x4718('0x8')]=function(_0x1d5c7d,_0x4b0ef4){return _0x1d5c7d[_0x4718('0x9')](_0x4718('0xa'),attributes,{'tableName':_0x4718('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xee2f=['path','../../config/environment','define','License','lodash','../../config/logger','moment','bluebird','request-promise'];(function(_0x3c096c,_0x3de5ea){var _0x4df30b=function(_0x3302a4){while(--_0x3302a4){_0x3c096c['push'](_0x3c096c['shift']());}};_0x4df30b(++_0x3de5ea);}(_0xee2f,0x13f));var _0xfee2=function(_0x5742f9,_0x3cc215){_0x5742f9=_0x5742f9-0x0;var _0x5329cc=_0xee2f[_0x5742f9];return _0x5329cc;};'use strict';var _=require(_0xfee2('0x0'));var util=require('util');var logger=require(_0xfee2('0x1'))('api');var moment=require(_0xfee2('0x2'));var BPromise=require(_0xfee2('0x3'));var rp=require(_0xfee2('0x4'));var fs=require('fs');var path=require(_0xfee2('0x5'));var rimraf=require('rimraf');var config=require(_0xfee2('0x6'));var attributes=require('./license.attributes');module['exports']=function(_0xbc9880,_0x2ccc55){return _0xbc9880[_0xfee2('0x7')](_0xfee2('0x8'),attributes,{'tableName':'license','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd15d=['result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','client','http','info','License,\x20%s,\x20%s','debug','License,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message'];(function(_0x5285f9,_0x2bd7d7){var _0x6edc0c=function(_0x5ae671){while(--_0x5ae671){_0x5285f9['push'](_0x5285f9['shift']());}};_0x6edc0c(++_0x2bd7d7);}(_0xd15d,0xb6));var _0xdd15=function(_0x20369d,_0x4cf364){_0x20369d=_0x20369d-0x0;var _0x45bc03=_0xd15d[_0x20369d];return _0x45bc03;};'use strict';var _=require(_0xdd15('0x0'));var util=require(_0xdd15('0x1'));var moment=require(_0xdd15('0x2'));var BPromise=require(_0xdd15('0x3'));var rs=require(_0xdd15('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xdd15('0x5'))['db'];var utils=require(_0xdd15('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xdd15('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xdd15('0x8')][_0xdd15('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4e8194,_0x341cf6,_0x5f107f){return new BPromise(function(_0x5d7990,_0x2ed1a8){return client['request'](_0x4e8194,_0x5f107f)['then'](function(_0x2cf898){logger[_0xdd15('0xa')](_0xdd15('0xb'),_0x341cf6,'request\x20sent');logger[_0xdd15('0xc')](_0xdd15('0xd'),_0x341cf6,_0xdd15('0xe'),JSON[_0xdd15('0xf')](_0x2cf898));if(_0x2cf898['error']){if(_0x2cf898[_0xdd15('0x10')]['code']===0x1f4){logger[_0xdd15('0x10')](_0xdd15('0xb'),_0x341cf6,_0x2cf898[_0xdd15('0x10')][_0xdd15('0x11')]);return _0x2ed1a8(_0x2cf898['error'][_0xdd15('0x11')]);}logger[_0xdd15('0x10')](_0xdd15('0xb'),_0x341cf6,_0x2cf898[_0xdd15('0x10')][_0xdd15('0x11')]);return _0x5d7990(_0x2cf898[_0xdd15('0x10')][_0xdd15('0x11')]);}else{logger[_0xdd15('0xa')](_0xdd15('0xb'),_0x341cf6,_0xdd15('0xe'));_0x5d7990(_0x2cf898[_0xdd15('0x12')]['message']);}})[_0xdd15('0x13')](function(_0x4e9348){logger[_0xdd15('0x10')](_0xdd15('0xb'),_0x341cf6,_0x4e9348);_0x2ed1a8(_0x4e9348);});});}
\ No newline at end of file
+var _0xa407=['util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','then','info','License,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','lodash'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa407,0xd0));var _0x7a40=function(_0x557045,_0x2541b4){_0x557045=_0x557045-0x0;var _0x330d2d=_0xa407[_0x557045];return _0x330d2d;};'use strict';var _=require(_0x7a40('0x0'));var util=require(_0x7a40('0x1'));var moment=require(_0x7a40('0x2'));var BPromise=require(_0x7a40('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7a40('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7a40('0x5'));var logger=require(_0x7a40('0x6'))(_0x7a40('0x7'));var config=require(_0x7a40('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x7a40('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5567cd,_0x1b6db7,_0x4e81f0){return new BPromise(function(_0xa04a42,_0x46819d){return client['request'](_0x5567cd,_0x4e81f0)[_0x7a40('0xa')](function(_0x2266f1){logger[_0x7a40('0xb')](_0x7a40('0xc'),_0x1b6db7,_0x7a40('0xd'));logger[_0x7a40('0xe')]('License,\x20%s,\x20%s,\x20%s',_0x1b6db7,'request\x20sent',JSON[_0x7a40('0xf')](_0x2266f1));if(_0x2266f1[_0x7a40('0x10')]){if(_0x2266f1['error'][_0x7a40('0x11')]===0x1f4){logger['error']('License,\x20%s,\x20%s',_0x1b6db7,_0x2266f1[_0x7a40('0x10')][_0x7a40('0x12')]);return _0x46819d(_0x2266f1[_0x7a40('0x10')][_0x7a40('0x12')]);}logger[_0x7a40('0x10')](_0x7a40('0xc'),_0x1b6db7,_0x2266f1[_0x7a40('0x10')][_0x7a40('0x12')]);return _0xa04a42(_0x2266f1[_0x7a40('0x10')][_0x7a40('0x12')]);}else{logger[_0x7a40('0xb')](_0x7a40('0xc'),_0x1b6db7,_0x7a40('0xd'));_0xa04a42(_0x2266f1['result'][_0x7a40('0x12')]);}})['catch'](function(_0x182abc){logger[_0x7a40('0x10')]('License,\x20%s,\x20%s',_0x1b6db7,_0x182abc);_0x46819d(_0x182abc);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb008=['/:id/interactions','addApplications','/:id/send','put','update','delete','removeDispositions','removeAnswers','removeImap','removeSmtp','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./mailAccount.controller','get','/describe','describe','/:id','show','getDispositions','/:id/canned_answers','getAnswers','/:id/in_servers','getImap','/:id/out_servers','isAuthenticated','getSmtp','getInteractions','/:id/applications','getApplications','/:id/messages','getMessages','/:id/verify','verifySmtp','/:id/users','post','/:id/dispositions','addDisposition','addAnswer','create','addImap'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0xb008,0x1bc));var _0x8b00=function(_0xa0f8a5,_0x4d73e4){_0xa0f8a5=_0xa0f8a5-0x0;var _0x51ae8b=_0xb008[_0xa0f8a5];return _0x51ae8b;};'use strict';var multer=require(_0x8b00('0x0'));var util=require(_0x8b00('0x1'));var path=require(_0x8b00('0x2'));var timeout=require(_0x8b00('0x3'));var express=require(_0x8b00('0x4'));var router=express['Router']();var fs_extra=require(_0x8b00('0x5'));var auth=require(_0x8b00('0x6'));var interaction=require(_0x8b00('0x7'));var config=require('../../config/environment');var controller=require(_0x8b00('0x8'));router[_0x8b00('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x8b00('0x9')](_0x8b00('0xa'),auth['isAuthenticated'](),controller[_0x8b00('0xb')]);router[_0x8b00('0x9')](_0x8b00('0xc'),auth['isAuthenticated'](),controller[_0x8b00('0xd')]);router[_0x8b00('0x9')]('/:id/dispositions',auth['isAuthenticated'](),controller[_0x8b00('0xe')]);router[_0x8b00('0x9')](_0x8b00('0xf'),auth['isAuthenticated'](),controller[_0x8b00('0x10')]);router['get'](_0x8b00('0x11'),auth['isAuthenticated'](),controller[_0x8b00('0x12')]);router['get'](_0x8b00('0x13'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x15')]);router[_0x8b00('0x9')]('/:id/interactions',auth[_0x8b00('0x14')](),controller[_0x8b00('0x16')]);router[_0x8b00('0x9')](_0x8b00('0x17'),auth['isAuthenticated'](),controller[_0x8b00('0x18')]);router[_0x8b00('0x9')](_0x8b00('0x19'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x1a')]);router[_0x8b00('0x9')](_0x8b00('0x1b'),auth['isAuthenticated'](),controller[_0x8b00('0x1c')]);router[_0x8b00('0x9')](_0x8b00('0x1d'),auth[_0x8b00('0x14')](),controller['getAgents']);router[_0x8b00('0x1e')](_0x8b00('0x1f'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x20')]);router[_0x8b00('0x1e')](_0x8b00('0xf'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x21')]);router[_0x8b00('0x1e')]('/',auth[_0x8b00('0x14')](),controller[_0x8b00('0x22')]);router[_0x8b00('0x1e')]('/:id/in_servers',auth['isAuthenticated'](),controller[_0x8b00('0x23')]);router[_0x8b00('0x1e')](_0x8b00('0x13'),auth['isAuthenticated'](),controller['addSmtp']);router[_0x8b00('0x1e')](_0x8b00('0x24'),auth[_0x8b00('0x14')](),controller['addInteraction']);router[_0x8b00('0x1e')](_0x8b00('0x17'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x25')]);router[_0x8b00('0x1e')](_0x8b00('0x26'),auth[_0x8b00('0x14')](),controller['send']);router['post'](_0x8b00('0x1d'),auth[_0x8b00('0x14')](),controller['addAgents']);router[_0x8b00('0x27')]('/:id',auth['isAuthenticated'](),controller[_0x8b00('0x28')]);router[_0x8b00('0x29')](_0x8b00('0x1f'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x2a')]);router[_0x8b00('0x29')](_0x8b00('0xf'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x2b')]);router[_0x8b00('0x29')]('/:id/in_servers',auth[_0x8b00('0x14')](),controller[_0x8b00('0x2c')]);router[_0x8b00('0x29')]('/:id/out_servers',auth[_0x8b00('0x14')](),controller[_0x8b00('0x2d')]);router[_0x8b00('0x29')]('/:id',auth[_0x8b00('0x14')](),controller[_0x8b00('0x2e')]);router['delete'](_0x8b00('0x1d'),auth['isAuthenticated'](),controller['removeAgents']);module[_0x8b00('0x2f')]=router;
\ No newline at end of file
+var _0x7420=['path','connect-timeout','express','Router','../../components/auth/service','get','isAuthenticated','describe','/:id','show','/:id/canned_answers','getAnswers','getImap','/:id/out_servers','getSmtp','getInteractions','/:id/applications','getMessages','/:id/verify','/:id/users','post','addDisposition','addAnswer','create','/:id/in_servers','addImap','/:id/interactions','addInteraction','addApplications','/:id/send','send','put','update','delete','/:id/dispositions','removeDispositions','removeAnswers','removeImap','removeSmtp','destroy','removeAgents','multer'];(function(_0x126558,_0x143c9a){var _0x1f6d14=function(_0x2b0eea){while(--_0x2b0eea){_0x126558['push'](_0x126558['shift']());}};_0x1f6d14(++_0x143c9a);}(_0x7420,0xfb));var _0x0742=function(_0x9f8429,_0x204641){_0x9f8429=_0x9f8429-0x0;var _0x27f18a=_0x7420[_0x9f8429];return _0x27f18a;};'use strict';var multer=require(_0x0742('0x0'));var util=require('util');var path=require(_0x0742('0x1'));var timeout=require(_0x0742('0x2'));var express=require(_0x0742('0x3'));var router=express[_0x0742('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x0742('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./mailAccount.controller');router[_0x0742('0x6')]('/',auth[_0x0742('0x7')](),controller['index']);router[_0x0742('0x6')]('/describe',auth['isAuthenticated'](),controller[_0x0742('0x8')]);router[_0x0742('0x6')](_0x0742('0x9'),auth[_0x0742('0x7')](),controller[_0x0742('0xa')]);router[_0x0742('0x6')]('/:id/dispositions',auth['isAuthenticated'](),controller['getDispositions']);router[_0x0742('0x6')](_0x0742('0xb'),auth[_0x0742('0x7')](),controller[_0x0742('0xc')]);router['get']('/:id/in_servers',auth['isAuthenticated'](),controller[_0x0742('0xd')]);router[_0x0742('0x6')](_0x0742('0xe'),auth[_0x0742('0x7')](),controller[_0x0742('0xf')]);router['get']('/:id/interactions',auth[_0x0742('0x7')](),controller[_0x0742('0x10')]);router[_0x0742('0x6')](_0x0742('0x11'),auth['isAuthenticated'](),controller['getApplications']);router[_0x0742('0x6')]('/:id/messages',auth[_0x0742('0x7')](),controller[_0x0742('0x12')]);router[_0x0742('0x6')](_0x0742('0x13'),auth[_0x0742('0x7')](),controller['verifySmtp']);router[_0x0742('0x6')](_0x0742('0x14'),auth[_0x0742('0x7')](),controller['getAgents']);router[_0x0742('0x15')]('/:id/dispositions',auth[_0x0742('0x7')](),controller[_0x0742('0x16')]);router[_0x0742('0x15')](_0x0742('0xb'),auth[_0x0742('0x7')](),controller[_0x0742('0x17')]);router[_0x0742('0x15')]('/',auth['isAuthenticated'](),controller[_0x0742('0x18')]);router[_0x0742('0x15')](_0x0742('0x19'),auth[_0x0742('0x7')](),controller[_0x0742('0x1a')]);router[_0x0742('0x15')](_0x0742('0xe'),auth[_0x0742('0x7')](),controller['addSmtp']);router[_0x0742('0x15')](_0x0742('0x1b'),auth[_0x0742('0x7')](),controller[_0x0742('0x1c')]);router[_0x0742('0x15')](_0x0742('0x11'),auth['isAuthenticated'](),controller[_0x0742('0x1d')]);router[_0x0742('0x15')](_0x0742('0x1e'),auth['isAuthenticated'](),controller[_0x0742('0x1f')]);router[_0x0742('0x15')](_0x0742('0x14'),auth[_0x0742('0x7')](),controller['addAgents']);router[_0x0742('0x20')](_0x0742('0x9'),auth[_0x0742('0x7')](),controller[_0x0742('0x21')]);router[_0x0742('0x22')](_0x0742('0x23'),auth['isAuthenticated'](),controller[_0x0742('0x24')]);router[_0x0742('0x22')](_0x0742('0xb'),auth[_0x0742('0x7')](),controller[_0x0742('0x25')]);router[_0x0742('0x22')](_0x0742('0x19'),auth[_0x0742('0x7')](),controller[_0x0742('0x26')]);router[_0x0742('0x22')]('/:id/out_servers',auth[_0x0742('0x7')](),controller[_0x0742('0x27')]);router[_0x0742('0x22')](_0x0742('0x9'),auth[_0x0742('0x7')](),controller[_0x0742('0x28')]);router[_0x0742('0x22')]('/:id/users',auth[_0x0742('0x7')](),controller[_0x0742('0x29')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32ef=['mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','BOOLEAN','TEXT','Arial,Helvetica,sans-serif','INTEGER','UNSIGNED','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue'];(function(_0x764740,_0x1c0cb5){var _0x50b4ff=function(_0x530f21){while(--_0x530f21){_0x764740['push'](_0x764740['shift']());}};_0x50b4ff(++_0x1c0cb5);}(_0x32ef,0xf9));var _0xf32e=function(_0x20ee8a,_0x18c871){_0x20ee8a=_0x20ee8a-0x0;var _0x3e4cb2=_0x32ef[_0x20ee8a];return _0x3e4cb2;};'use strict';var Sequelize=require(_0xf32e('0x0'));module[_0xf32e('0x1')]={'description':{'type':Sequelize[_0xf32e('0x2')]},'name':{'type':Sequelize[_0xf32e('0x2')],'allowNull':![]},'service':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'email':{'type':Sequelize[_0xf32e('0x2')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'key':{'type':Sequelize[_0xf32e('0x2')],'allowNull':![]},'template':{'type':Sequelize[_0xf32e('0x4')]},'markAsUnread':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0xf32e('0x2')],'allowNull':![],'defaultValue':_0xf32e('0x5')},'fontSize':{'type':Sequelize[_0xf32e('0x6')](0x2)[_0xf32e('0x7')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0xf32e('0x4')],'defaultValue':function(){return _0xf32e('0x8');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xf32e('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xf32e('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xf32e('0x6')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![],'comment':_0xf32e('0x9'),'set':function(_0x468a6d){if(!_0x468a6d)this[_0xf32e('0xa')](_0xf32e('0xb'),null);this[_0xf32e('0xa')](_0xf32e('0xc'),_0x468a6d);}}};
\ No newline at end of file
+var _0xd847=['STRING','BOOLEAN','TEXT','INTEGER','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports'];(function(_0x2e3940,_0xde451f){var _0x4b5afc=function(_0x4dd340){while(--_0x4dd340){_0x2e3940['push'](_0x2e3940['shift']());}};_0x4b5afc(++_0xde451f);}(_0xd847,0x18a));var _0x7d84=function(_0x3485be,_0x5f3dd1){_0x3485be=_0x3485be-0x0;var _0x2ac6ae=_0xd847[_0x3485be];return _0x2ac6ae;};'use strict';var Sequelize=require(_0x7d84('0x0'));module[_0x7d84('0x1')]={'description':{'type':Sequelize[_0x7d84('0x2')]},'name':{'type':Sequelize[_0x7d84('0x2')],'allowNull':![]},'service':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0x7d84('0x3')],'defaultValue':!![]},'key':{'type':Sequelize[_0x7d84('0x2')],'allowNull':![]},'template':{'type':Sequelize[_0x7d84('0x4')]},'markAsUnread':{'type':Sequelize[_0x7d84('0x3')],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0x7d84('0x2')],'allowNull':![],'defaultValue':'Arial,Helvetica,sans-serif'},'fontSize':{'type':Sequelize[_0x7d84('0x5')](0x2)['UNSIGNED'],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0x7d84('0x4')],'defaultValue':function(){return _0x7d84('0x6');}},'notificationSound':{'type':Sequelize[_0x7d84('0x3')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x7d84('0x3')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x7d84('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x7d84('0x3')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x7d84('0x3')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'allowNull':!![],'defaultValue':null,'comment':_0x7d84('0x7')},'mandatoryDisposition':{'type':Sequelize[_0x7d84('0x3')],'defaultValue':![],'comment':_0x7d84('0x8'),'set':function(_0x27aa7a){if(!_0x27aa7a)this[_0x7d84('0x9')](_0x7d84('0xa'),null);this[_0x7d84('0x9')](_0x7d84('0xb'),_0x27aa7a);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e59=['getApplications','getMessages','MailMessage','$gte','format','inlineCss','true','CmList','List','CmContact','Contacts','DESC','from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','secure','auth','SendMail','sendMail','messageId','attach','YYYY-MM-DD\x20HH:mm:ss','out','Interaction','Messages','verifySmtp','VerifySmtp','Sequelize','ValidationError','addAgents','spread','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','User','eml-format','zip-dir','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','redis','localhost','socket.io-emitter','jayson/promise','client','http','request','then','info','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','MailAccount,\x20%s,\x20%s','result','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','destroy','get','UserProfileResource','end','send','index','MailServerIn','Imap','MailServerOut','Smtp','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','VIRTUAL','name','merge','options','MailAccount','includeAll','include','findAll','rows','catch','show','params','fields','find','body','mandatoryDispositionPause','update','addDisposition','MailAccountId','Disposition','create','getDispositions','findOne','order','filter','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','email','ListId','isNil','active','description','cservice','cauthentication','user','cuser','pass','cpassword','authentication','host','port','service','password','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','setImap','getSmtp','addSmtp','removeSmtp','addInteraction','omit','getInteractions','MailInteraction','Contact','Owner','fullname','Tags','tag','addApplications','sequelize','transaction','MailApplication','bulkCreate','priority'];(function(_0x353856,_0x5ce89d){var _0xa58048=function(_0x2cc6a9){while(--_0x2cc6a9){_0x353856['push'](_0x353856['shift']());}};_0xa58048(++_0x5ce89d);}(_0x3e59,0xec));var _0x93e5=function(_0x1f618f,_0x13e460){_0x1f618f=_0x1f618f-0x0;var _0x520d48=_0x3e59[_0x1f618f];return _0x520d48;};'use strict';var emlformat=require(_0x93e5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x93e5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x93e5('0x2'));var BPromise=require(_0x93e5('0x3'));var Mustache=require(_0x93e5('0x4'));var util=require(_0x93e5('0x5'));var path=require(_0x93e5('0x6'));var sox=require(_0x93e5('0x7'));var csv=require('to-csv');var ejs=require(_0x93e5('0x8'));var fs=require('fs');var fs_extra=require(_0x93e5('0x9'));var _=require(_0x93e5('0xa'));var squel=require(_0x93e5('0xb'));var crypto=require('crypto');var jsforce=require(_0x93e5('0xc'));var deskjs=require(_0x93e5('0xd'));var toCsv=require('to-csv');var querystring=require(_0x93e5('0xe'));var Papa=require(_0x93e5('0xf'));var htmlToText=require(_0x93e5('0x10'));var juice=require(_0x93e5('0x11'));var Redis=require(_0x93e5('0x12'));var authService=require(_0x93e5('0x13'));var qs=require(_0x93e5('0x14'));var as=require(_0x93e5('0x15'));var hardwareService=require(_0x93e5('0x16'));var logger=require(_0x93e5('0x17'))('api');var utils=require(_0x93e5('0x18'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x93e5('0x19')]=_['defaults'](config[_0x93e5('0x19')],{'host':_0x93e5('0x1a'),'port':0x18eb});var socket=require(_0x93e5('0x1b'))(new Redis(config['redis']));require('./mailAccount.socket')['register'](socket);var jayson=require(_0x93e5('0x1c'));var client=jayson[_0x93e5('0x1d')][_0x93e5('0x1e')]({'port':0x232b});function respondWithRpcPromise(_0x1d0188,_0x488bab,_0x53859d,_0xdcfcbd){return new BPromise(function(_0x5e2421,_0x50e5a8){var _0x589f07=_0xdcfcbd||client;return _0x589f07[_0x93e5('0x1f')](_0x1d0188,_0x53859d)[_0x93e5('0x20')](function(_0x2addc2){logger[_0x93e5('0x21')]('MailAccount,\x20%s,\x20%s',_0x488bab,_0x93e5('0x22'));logger['debug'](_0x93e5('0x23'),_0x488bab,_0x93e5('0x22'),JSON[_0x93e5('0x24')](_0x2addc2));if(_0x2addc2['error']){if(_0x2addc2[_0x93e5('0x25')][_0x93e5('0x26')]===0x1f4){logger[_0x93e5('0x25')]('MailAccount,\x20%s,\x20%s',_0x488bab,_0x2addc2[_0x93e5('0x25')]['message']);return _0x50e5a8(_0x2addc2['error'][_0x93e5('0x27')]);}logger[_0x93e5('0x25')]('MailAccount,\x20%s,\x20%s',_0x488bab,_0x2addc2[_0x93e5('0x25')][_0x93e5('0x27')]);return _0x5e2421(_0x2addc2[_0x93e5('0x25')]['message']);}else{logger[_0x93e5('0x21')](_0x93e5('0x28'),_0x488bab,'request\x20sent');_0x5e2421(_0x2addc2[_0x93e5('0x29')][_0x93e5('0x27')]);}})['catch'](function(_0x73cb06){logger[_0x93e5('0x25')](_0x93e5('0x28'),_0x488bab,_0x73cb06);_0x50e5a8(_0x73cb06);});});}function respondWithStatusCode(_0x3cdaeb,_0x12649c){_0x12649c=_0x12649c||0xcc;return function(_0xb695c3){if(_0xb695c3){return _0x3cdaeb[_0x93e5('0x2a')](_0x12649c);}return _0x3cdaeb['status'](_0x12649c)['end']();};}function respondWithResult(_0x3fe660,_0x155f28){_0x155f28=_0x155f28||0xc8;return function(_0x430768){if(_0x430768){return _0x3fe660[_0x93e5('0x2b')](_0x155f28)[_0x93e5('0x2c')](_0x430768);}};}function respondWithFilteredResult(_0x355bf3,_0x9636b6){return function(_0x3afdc2){if(_0x3afdc2){var _0x422901=typeof _0x9636b6[_0x93e5('0x2d')]===_0x93e5('0x2e')&&typeof _0x9636b6['limit']==='undefined';var _0x74eb8c=_0x3afdc2[_0x93e5('0x2f')];var _0x29109a=_0x422901?0x0:_0x9636b6['offset'];var _0x2a76e5=_0x422901?_0x3afdc2[_0x93e5('0x2f')]:_0x9636b6[_0x93e5('0x2d')]+_0x9636b6[_0x93e5('0x30')];var _0x321495;if(_0x2a76e5>=_0x74eb8c){_0x2a76e5=_0x74eb8c;_0x321495=0xc8;}else{_0x321495=0xce;}_0x355bf3[_0x93e5('0x2b')](_0x321495);return _0x355bf3[_0x93e5('0x31')](_0x93e5('0x32'),_0x29109a+'-'+_0x2a76e5+'/'+_0x74eb8c)[_0x93e5('0x2c')](_0x3afdc2);}return null;};}function patchUpdates(_0x444eff){return function(_0x5a080d){try{jsonpatch[_0x93e5('0x33')](_0x5a080d,_0x444eff,!![]);}catch(_0x96072f){return BPromise[_0x93e5('0x34')](_0x96072f);}return _0x5a080d[_0x93e5('0x35')]();};}function saveUpdates(_0xfb1b93,_0x54e5be){return function(_0xee8882){if(_0xee8882){return _0xee8882['update'](_0xfb1b93)['then'](function(_0x24a0d2){return _0x24a0d2;});}return null;};}function removeEntity(_0x3ab4e0,_0x2934e1){return function(_0x2aaa76){if(_0x2aaa76){return _0x2aaa76[_0x93e5('0x36')]()[_0x93e5('0x20')](function(){var _0x587f13=_0x2aaa76[_0x93e5('0x37')]({'plain':!![]});var _0x405667='MailAccounts';return db[_0x93e5('0x38')][_0x93e5('0x36')]({'where':{'type':_0x405667,'resourceId':_0x587f13['id']}})[_0x93e5('0x20')](function(){return _0x2aaa76;});})[_0x93e5('0x20')](function(){_0x3ab4e0[_0x93e5('0x2b')](0xcc)[_0x93e5('0x39')]();});}};}function handleEntityNotFound(_0x5c860a,_0x1d45fa){return function(_0x40bfbd){if(!_0x40bfbd){_0x5c860a[_0x93e5('0x2a')](0x194);}return _0x40bfbd;};}function handleError(_0xcf6dc1,_0x1f1608){_0x1f1608=_0x1f1608||0x1f4;return function(_0x5e65ab){logger['error'](_0x5e65ab['stack']);if(_0x5e65ab['name']){delete _0x5e65ab['name'];}_0xcf6dc1['status'](_0x1f1608)[_0x93e5('0x3a')](_0x5e65ab);};}exports[_0x93e5('0x3b')]=function(_0x277a02,_0xe8667c){var _0x187033={'include':[{'model':db[_0x93e5('0x3c')],'as':_0x93e5('0x3d')},{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f')},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0xfacc7d={},_0x5a76f0={'count':0x0,'rows':[]};var _0x5262bb=_[_0x93e5('0x40')](db['MailAccount'][_0x93e5('0x41')],function(_0x35a29e){return{'name':_0x35a29e[_0x93e5('0x42')],'type':_0x35a29e[_0x93e5('0x43')][_0x93e5('0x44')]};});_0xfacc7d[_0x93e5('0x45')]=_[_0x93e5('0x40')](_0x5262bb,'name');_0xfacc7d[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x277a02[_0x93e5('0x46')]);_0xfacc7d['filters']=_[_0x93e5('0x48')](_0xfacc7d[_0x93e5('0x45')],_0xfacc7d[_0x93e5('0x46')]);_0x187033[_0x93e5('0x49')]=_[_0x93e5('0x48')](_0xfacc7d[_0x93e5('0x45')],qs['fields'](_0x277a02[_0x93e5('0x46')]['fields']));_0x187033[_0x93e5('0x49')]=_0x187033['attributes'][_0x93e5('0x4a')]?_0x187033[_0x93e5('0x49')]:_0xfacc7d[_0x93e5('0x45')];if(!_0x277a02['query'][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x187033[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x277a02[_0x93e5('0x46')]['limit']);_0x187033[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x277a02[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x187033['order']=qs[_0x93e5('0x4d')](_0x277a02[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x187033[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x277a02[_0x93e5('0x46')],_0xfacc7d['filters']),_0x5262bb);if(_0x277a02['query']['filter']){_0x187033[_0x93e5('0x4e')]=_['merge'](_0x187033[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x5262bb,function(_0x43ada3){if(_0x43ada3['type']!==_0x93e5('0x51')){var _0x4b5b23={};_0x4b5b23[_0x43ada3[_0x93e5('0x52')]]={'$like':'%'+_0x277a02[_0x93e5('0x46')]['filter']+'%'};return _0x4b5b23;}})});}_0x187033=_[_0x93e5('0x53')]({},_0x187033,_0x277a02[_0x93e5('0x54')]);var _0xdbe9c6={'where':_0x187033[_0x93e5('0x4e')]};return db[_0x93e5('0x55')][_0x93e5('0x2f')](_0xdbe9c6)['then'](function(_0x48a5e3){_0x5a76f0[_0x93e5('0x2f')]=_0x48a5e3;if(_0x277a02[_0x93e5('0x46')][_0x93e5('0x56')]){_0x187033[_0x93e5('0x57')]=[{'all':!![]}];}return db[_0x93e5('0x55')][_0x93e5('0x58')](_0x187033);})[_0x93e5('0x20')](function(_0x322817){_0x5a76f0[_0x93e5('0x59')]=_0x322817;return _0x5a76f0;})['then'](respondWithFilteredResult(_0xe8667c,_0x187033))[_0x93e5('0x5a')](handleError(_0xe8667c,null));};exports[_0x93e5('0x5b')]=function(_0x4b0017,_0x36215a){var _0x515b9c={'raw':![],'where':{'id':_0x4b0017[_0x93e5('0x5c')]['id']},'include':[{'model':db[_0x93e5('0x3c')],'as':'Imap'},{'model':db['MailServerOut'],'as':'Smtp'},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x4191c0={};_0x4191c0[_0x93e5('0x45')]=_['keys'](db[_0x93e5('0x55')][_0x93e5('0x41')]);_0x4191c0['query']=_[_0x93e5('0x47')](_0x4b0017[_0x93e5('0x46')]);_0x4191c0['filters']=_[_0x93e5('0x48')](_0x4191c0[_0x93e5('0x45')],_0x4191c0[_0x93e5('0x46')]);_0x515b9c['attributes']=_[_0x93e5('0x48')](_0x4191c0[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x4b0017[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x515b9c[_0x93e5('0x49')]=_0x515b9c['attributes'][_0x93e5('0x4a')]?_0x515b9c[_0x93e5('0x49')]:_0x4191c0[_0x93e5('0x45')];if(_0x4b0017[_0x93e5('0x46')][_0x93e5('0x56')]){_0x515b9c[_0x93e5('0x57')]=[{'all':!![]}];}_0x515b9c=_['merge']({},_0x515b9c,_0x4b0017['options']);return db[_0x93e5('0x55')][_0x93e5('0x5e')](_0x515b9c)['then'](handleEntityNotFound(_0x36215a,null))[_0x93e5('0x20')](respondWithResult(_0x36215a,null))[_0x93e5('0x5a')](handleError(_0x36215a,null));};exports['update']=function(_0x46f06c,_0x32a96c){if(_0x46f06c[_0x93e5('0x5f')]['id']){delete _0x46f06c[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')]['find']({'where':{'id':_0x46f06c[_0x93e5('0x5c')]['id']},'include':[{'model':db[_0x93e5('0x3c')],'as':_0x93e5('0x3d')},{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f')},{'model':db['Pause'],'as':_0x93e5('0x60')}]})[_0x93e5('0x20')](handleEntityNotFound(_0x32a96c,null))['then'](saveUpdates(_0x46f06c[_0x93e5('0x5f')],null))[_0x93e5('0x20')](function(_0x963aa5){if(_0x963aa5&&_0x46f06c['body'][_0x93e5('0x3d')]){return db[_0x93e5('0x3c')][_0x93e5('0x61')](_0x46f06c[_0x93e5('0x5f')][_0x93e5('0x3d')],{'where':{'MailAccountId':_0x963aa5['id']}})[_0x93e5('0x20')](function(){return _0x963aa5;});}return _0x963aa5;})[_0x93e5('0x20')](function(_0x3f0ae1){if(_0x3f0ae1&&_0x46f06c[_0x93e5('0x5f')]['Smtp']){return db[_0x93e5('0x3e')][_0x93e5('0x61')](_0x46f06c[_0x93e5('0x5f')]['Smtp'],{'where':{'MailAccountId':_0x3f0ae1['id']}})[_0x93e5('0x20')](function(){return _0x3f0ae1;});}return _0x3f0ae1;})['then'](respondWithResult(_0x32a96c,null))[_0x93e5('0x5a')](handleError(_0x32a96c,null));};exports['describe']=function(_0x191e96,_0x1dc78c){return db[_0x93e5('0x55')]['describe']()[_0x93e5('0x20')](respondWithResult(_0x1dc78c,null))[_0x93e5('0x5a')](handleError(_0x1dc78c,null));};exports[_0x93e5('0x62')]=function(_0x14a93c,_0x8541be,_0x3bdfc0){if(_0x14a93c['body']['id']){delete _0x14a93c['body']['id'];}return db['MailAccount'][_0x93e5('0x5e')]({'where':{'id':_0x14a93c[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x8541be,null))[_0x93e5('0x20')](function(_0x22e4d0){if(_0x22e4d0){_0x14a93c[_0x93e5('0x5f')][_0x93e5('0x63')]=_0x22e4d0['id'];return db[_0x93e5('0x64')][_0x93e5('0x65')](_0x14a93c['body']);}})['then'](respondWithResult(_0x8541be,null))[_0x93e5('0x5a')](handleError(_0x8541be,null));};exports[_0x93e5('0x66')]=function(_0x5b8c93,_0x5ead4b,_0x2008d2){var _0x203b28={'raw':![],'where':{}};var _0x2dda58={};var _0x296516={'count':0x0,'rows':[]};return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x5b8c93['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x5ead4b,null))['then'](function(_0x49f89b){if(_0x49f89b){_0x2dda58[_0x93e5('0x45')]=_[_0x93e5('0x47')](db[_0x93e5('0x64')][_0x93e5('0x41')]);_0x2dda58[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x5b8c93[_0x93e5('0x46')]);_0x2dda58[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x2dda58[_0x93e5('0x45')],_0x2dda58[_0x93e5('0x46')]);_0x203b28['attributes']=_[_0x93e5('0x48')](_0x2dda58['model'],qs[_0x93e5('0x5d')](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x203b28['attributes']=_0x203b28['attributes'][_0x93e5('0x4a')]?_0x203b28[_0x93e5('0x49')]:_0x2dda58['model'];if(!_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x4b')]('nolimit')){_0x203b28[_0x93e5('0x30')]=qs['limit'](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x30')]);_0x203b28[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x203b28[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x203b28[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x5b8c93['query'],_0x2dda58[_0x93e5('0x4f')]));_0x203b28[_0x93e5('0x4e')][_0x93e5('0x63')]=_0x49f89b['id'];if(_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x69')]){_0x203b28['where']=_[_0x93e5('0x53')](_0x203b28[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x203b28[_0x93e5('0x49')],function(_0x3c2c64){var _0xa82013={};_0xa82013[_0x3c2c64]={'$like':'%'+_0x5b8c93['query']['filter']+'%'};return _0xa82013;})});}_0x203b28=_[_0x93e5('0x53')]({},_0x203b28,_0x5b8c93[_0x93e5('0x54')]);return db[_0x93e5('0x64')]['count']({'where':_0x203b28[_0x93e5('0x4e')]})['then'](function(_0xe545ef){_0x296516[_0x93e5('0x2f')]=_0xe545ef;if(_0x5b8c93[_0x93e5('0x46')]['includeAll']){_0x203b28[_0x93e5('0x57')]=[{'all':!![]}];}return db[_0x93e5('0x64')][_0x93e5('0x58')](_0x203b28);})[_0x93e5('0x20')](function(_0x3143bd){_0x296516['rows']=_0x3143bd;return _0x296516;});}})[_0x93e5('0x20')](respondWithFilteredResult(_0x5ead4b,_0x203b28))[_0x93e5('0x5a')](handleError(_0x5ead4b,null));};exports['removeDispositions']=function(_0x5e6d4a,_0x388f1f,_0x5e01d5){return db[_0x93e5('0x55')]['find']({'where':{'id':_0x5e6d4a['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x388f1f,null))[_0x93e5('0x20')](function(_0x276dd2){if(_0x276dd2){return _0x276dd2[_0x93e5('0x6a')](_0x5e6d4a[_0x93e5('0x46')][_0x93e5('0x6b')]);}})[_0x93e5('0x20')](respondWithStatusCode(_0x388f1f,null))[_0x93e5('0x5a')](handleError(_0x388f1f,null));};exports[_0x93e5('0x6c')]=function(_0x993b4b,_0x3117ee,_0x4c986a){if(_0x993b4b[_0x93e5('0x5f')]['id']){delete _0x993b4b[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')]['find']({'where':{'id':_0x993b4b[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x3117ee,null))['then'](function(_0x23cdb6){if(_0x23cdb6){_0x993b4b['body'][_0x93e5('0x63')]=_0x23cdb6['id'];return db['CannedAnswer'][_0x93e5('0x65')](_0x993b4b[_0x93e5('0x5f')]);}})['then'](respondWithResult(_0x3117ee,null))[_0x93e5('0x5a')](handleError(_0x3117ee,null));};exports[_0x93e5('0x6d')]=function(_0x3ac38c,_0xf657a9,_0xd5afc0){var _0x38ea49={'raw':![],'where':{}};var _0x4bf9c1={};var _0x53bba3={'count':0x0,'rows':[]};return db[_0x93e5('0x55')]['findOne']({'where':{'id':_0x3ac38c['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0xf657a9,null))['then'](function(_0xba3e01){if(_0xba3e01){_0x4bf9c1[_0x93e5('0x45')]=_[_0x93e5('0x47')](db[_0x93e5('0x6e')][_0x93e5('0x41')]);_0x4bf9c1[_0x93e5('0x46')]=_['keys'](_0x3ac38c[_0x93e5('0x46')]);_0x4bf9c1[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x4bf9c1['model'],_0x4bf9c1[_0x93e5('0x46')]);_0x38ea49[_0x93e5('0x49')]=_['intersection'](_0x4bf9c1[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x3ac38c['query'][_0x93e5('0x5d')]));_0x38ea49['attributes']=_0x38ea49['attributes']['length']?_0x38ea49['attributes']:_0x4bf9c1[_0x93e5('0x45')];if(!_0x3ac38c['query'][_0x93e5('0x4b')]('nolimit')){_0x38ea49[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x3ac38c['query'][_0x93e5('0x30')]);_0x38ea49[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x3ac38c[_0x93e5('0x46')]['offset']);}_0x38ea49['order']=qs[_0x93e5('0x4d')](_0x3ac38c['query'][_0x93e5('0x4d')]);_0x38ea49[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x3ac38c['query'],_0x4bf9c1[_0x93e5('0x4f')]));_0x38ea49['where'][_0x93e5('0x63')]=_0xba3e01['id'];if(_0x3ac38c[_0x93e5('0x46')][_0x93e5('0x69')]){_0x38ea49[_0x93e5('0x4e')]=_['merge'](_0x38ea49['where'],{'$or':_[_0x93e5('0x40')](_0x38ea49['attributes'],function(_0x2e46ae){var _0x4e0788={};_0x4e0788[_0x2e46ae]={'$like':'%'+_0x3ac38c['query'][_0x93e5('0x69')]+'%'};return _0x4e0788;})});}_0x38ea49=_['merge']({},_0x38ea49,_0x3ac38c[_0x93e5('0x54')]);return db[_0x93e5('0x6e')][_0x93e5('0x2f')]({'where':_0x38ea49[_0x93e5('0x4e')]})[_0x93e5('0x20')](function(_0x31dce4){_0x53bba3[_0x93e5('0x2f')]=_0x31dce4;if(_0x3ac38c[_0x93e5('0x46')][_0x93e5('0x56')]){_0x38ea49[_0x93e5('0x57')]=[{'all':!![]}];}return db['CannedAnswer'][_0x93e5('0x58')](_0x38ea49);})[_0x93e5('0x20')](function(_0x42fcab){_0x53bba3[_0x93e5('0x59')]=_0x42fcab;return _0x53bba3;});}})[_0x93e5('0x20')](respondWithFilteredResult(_0xf657a9,_0x38ea49))[_0x93e5('0x5a')](handleError(_0xf657a9,null));};exports[_0x93e5('0x6f')]=function(_0x332414,_0x237a2d,_0x1d0937){return db['MailAccount'][_0x93e5('0x5e')]({'where':{'id':_0x332414[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x237a2d,null))[_0x93e5('0x20')](function(_0x492194){if(_0x492194){return _0x492194[_0x93e5('0x6f')](_0x332414[_0x93e5('0x46')]['ids']);}})[_0x93e5('0x20')](respondWithStatusCode(_0x237a2d,null))[_0x93e5('0x5a')](handleError(_0x237a2d,null));};exports[_0x93e5('0x65')]=function(_0xef406d,_0x32d118){var _0x55accb={'name':_0xef406d[_0x93e5('0x5f')]['name'],'key':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x44')],'email':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x70')],'ListId':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x71')],'active':!_[_0x93e5('0x72')](_0xef406d[_0x93e5('0x5f')]['active'])?_0xef406d[_0x93e5('0x5f')][_0x93e5('0x73')]:!![],'description':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x74')]||null,'Imap':{},'Smtp':{}};if(_[_0x93e5('0x72')](_0xef406d[_0x93e5('0x5f')][_0x93e5('0x75')])){if(_0xef406d[_0x93e5('0x5f')][_0x93e5('0x76')]){_0x55accb[_0x93e5('0x3d')][_0x93e5('0x77')]=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x77')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x78')];_0x55accb[_0x93e5('0x3d')]['password']=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x79')]=_0xef406d['body'][_0x93e5('0x7a')];}else{_0x55accb[_0x93e5('0x3d')]['authentication']=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x7b')]=![];}_0x55accb[_0x93e5('0x3d')][_0x93e5('0x7c')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x3d')]['host'];_0x55accb[_0x93e5('0x3d')][_0x93e5('0x7d')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x3d')][_0x93e5('0x7d')];_0x55accb[_0x93e5('0x3f')][_0x93e5('0x7c')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x3f')]['host'];_0x55accb[_0x93e5('0x3f')][_0x93e5('0x7d')]=_0xef406d['body'][_0x93e5('0x3f')]['port'];}else{_0x55accb[_0x93e5('0x3d')][_0x93e5('0x7e')]=_0x55accb[_0x93e5('0x3f')]['service']=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x75')];_0x55accb[_0x93e5('0x3d')][_0x93e5('0x77')]=_0x55accb[_0x93e5('0x3f')]['user']=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x78')];_0x55accb['Imap'][_0x93e5('0x7f')]=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x79')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x7a')];}return db[_0x93e5('0x55')][_0x93e5('0x65')](_0x55accb,{'include':[{'model':db['MailServerOut'],'as':'Smtp'},{'model':db['MailServerIn'],'as':_0x93e5('0x3d')}]})[_0x93e5('0x20')](function(_0xe5567f){var _0x2871d1=_0xef406d['user'][_0x93e5('0x37')]({'plain':!![]});if(!_0x2871d1)throw new Error(_0x93e5('0x80'));if(_0x2871d1[_0x93e5('0x81')]===_0x93e5('0x77')){var _0x20582b=_0xe5567f[_0x93e5('0x37')]({'plain':!![]});return db['UserProfileSection'][_0x93e5('0x5e')]({'where':{'name':'MailAccounts','userProfileId':_0x2871d1[_0x93e5('0x82')]},'raw':!![]})[_0x93e5('0x20')](function(_0x2588d2){if(_0x2588d2&&_0x2588d2[_0x93e5('0x83')]===0x0){return db[_0x93e5('0x38')][_0x93e5('0x65')]({'name':_0x20582b[_0x93e5('0x52')],'resourceId':_0x20582b['id'],'type':_0x2588d2[_0x93e5('0x52')],'sectionId':_0x2588d2['id']},{})[_0x93e5('0x20')](function(){return _0xe5567f;});}else{return _0xe5567f;}})[_0x93e5('0x5a')](function(_0x48c576){logger[_0x93e5('0x25')](_0x93e5('0x84'),_0x48c576);throw _0x48c576;});}return _0xe5567f;})[_0x93e5('0x20')](respondWithResult(_0x32d118,0xc9))[_0x93e5('0x5a')](handleError(_0x32d118,null));};exports[_0x93e5('0x85')]=function(_0x5d561a,_0x1f3eb2,_0x17f746){return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x5d561a[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x1f3eb2,null))[_0x93e5('0x20')](function(_0x3b5258){if(_0x3b5258){return _0x3b5258[_0x93e5('0x85')]();}return null;})[_0x93e5('0x20')](respondWithResult(_0x1f3eb2,null))['catch'](handleError(_0x1f3eb2,null));};exports[_0x93e5('0x86')]=function(_0x381367,_0x54dfc1,_0x43b9b2){if(_0x381367[_0x93e5('0x5f')]['id']){delete _0x381367[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x381367[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x54dfc1,null))[_0x93e5('0x20')](function(_0x5e05dd){if(_0x5e05dd){_0x381367[_0x93e5('0x5f')][_0x93e5('0x63')]=_0x5e05dd['id'];return db[_0x93e5('0x3c')]['create'](_0x381367[_0x93e5('0x5f')]);}})[_0x93e5('0x20')](respondWithResult(_0x54dfc1,null))[_0x93e5('0x5a')](handleError(_0x54dfc1,null));};exports['removeImap']=function(_0x4cb8a3,_0x564bbf,_0x17ab40){return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x4cb8a3['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x564bbf,null))[_0x93e5('0x20')](function(_0x1707de){if(_0x1707de){return _0x1707de[_0x93e5('0x87')](null);}return null;})[_0x93e5('0x20')](respondWithStatusCode(_0x564bbf,null))['catch'](handleError(_0x564bbf,null));};exports[_0x93e5('0x88')]=function(_0x444e5a,_0xf7af06,_0x162126){return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x444e5a[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0xf7af06,null))[_0x93e5('0x20')](function(_0x2d9831){if(_0x2d9831){return _0x2d9831[_0x93e5('0x88')]();}return null;})[_0x93e5('0x20')](respondWithResult(_0xf7af06,null))['catch'](handleError(_0xf7af06,null));};exports[_0x93e5('0x89')]=function(_0xe38fdc,_0x2b50f0,_0x65118e){if(_0xe38fdc['body']['id']){delete _0xe38fdc[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')]['find']({'where':{'id':_0xe38fdc['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x2b50f0,null))['then'](function(_0xf20115){if(_0xf20115){_0xe38fdc[_0x93e5('0x5f')][_0x93e5('0x63')]=_0xf20115['id'];return db[_0x93e5('0x3e')]['create'](_0xe38fdc[_0x93e5('0x5f')]);}})['then'](respondWithResult(_0x2b50f0,null))[_0x93e5('0x5a')](handleError(_0x2b50f0,null));};exports[_0x93e5('0x8a')]=function(_0xb14225,_0x342d75,_0x3a4528){return db[_0x93e5('0x55')]['findOne']({'where':{'id':_0xb14225[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x342d75,null))[_0x93e5('0x20')](function(_0x268e67){if(_0x268e67){return _0x268e67['setSmtp'](null);}return null;})[_0x93e5('0x20')](respondWithStatusCode(_0x342d75,null))[_0x93e5('0x5a')](handleError(_0x342d75,null));};exports[_0x93e5('0x8b')]=function(_0x42426b,_0x5bf916,_0x4253cd){return db['MailInteraction'][_0x93e5('0x5e')]({'where':{'id':_0x42426b[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x5bf916,null))['then'](function(_0x2b984a){if(_0x2b984a){return _0x2b984a[_0x93e5('0x8b')](_0x42426b[_0x93e5('0x5f')][_0x93e5('0x6b')],_[_0x93e5('0x8c')](_0x42426b[_0x93e5('0x5f')],[_0x93e5('0x6b'),'id'])||{});}})[_0x93e5('0x20')](respondWithResult(_0x5bf916,null))[_0x93e5('0x5a')](handleError(_0x5bf916,null));};exports[_0x93e5('0x8d')]=function(_0x1eea57,_0x5059da,_0x5ee2d0){var _0x42cd08={'raw':![],'where':{}};var _0x4f5bfe={};var _0x4c5375={'count':0x0,'rows':[]};return db[_0x93e5('0x55')]['findOne']({'where':{'id':_0x1eea57['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x5059da,null))[_0x93e5('0x20')](function(_0xddc265){if(_0xddc265){_0x4f5bfe['model']=_['keys'](db[_0x93e5('0x8e')]['rawAttributes']);_0x4f5bfe[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x1eea57[_0x93e5('0x46')]);_0x4f5bfe[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x4f5bfe[_0x93e5('0x45')],_0x4f5bfe[_0x93e5('0x46')]);_0x42cd08[_0x93e5('0x49')]=_[_0x93e5('0x48')](_0x4f5bfe[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x1eea57[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x42cd08[_0x93e5('0x49')]=_0x42cd08[_0x93e5('0x49')][_0x93e5('0x4a')]?_0x42cd08[_0x93e5('0x49')]:_0x4f5bfe[_0x93e5('0x45')];if(!_0x1eea57[_0x93e5('0x46')]['hasOwnProperty'](_0x93e5('0x4c'))){_0x42cd08[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x1eea57[_0x93e5('0x46')][_0x93e5('0x30')]);_0x42cd08[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x1eea57[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x42cd08[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x1eea57['query'][_0x93e5('0x4d')]);_0x42cd08[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x1eea57['query'],_0x4f5bfe['filters']));_0x42cd08['where'][_0x93e5('0x63')]=_0xddc265['id'];if(_0x1eea57[_0x93e5('0x46')][_0x93e5('0x69')]){_0x42cd08[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x42cd08[_0x93e5('0x4e')],{'$or':_['map'](_0x42cd08[_0x93e5('0x49')],function(_0x130532){var _0x4d7138={};_0x4d7138[_0x130532]={'$like':'%'+_0x1eea57[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x4d7138;})});}_0x42cd08=_[_0x93e5('0x53')]({},_0x42cd08,_0x1eea57['options']);return db[_0x93e5('0x8e')][_0x93e5('0x2f')]({'where':_0x42cd08[_0x93e5('0x4e')]})[_0x93e5('0x20')](function(_0x597992){_0x4c5375[_0x93e5('0x2f')]=_0x597992;if(_0x1eea57['query']['includeAll']){_0x42cd08[_0x93e5('0x57')]=[{'model':db['CmContact'],'as':_0x93e5('0x8f'),'required':![]},{'model':db['User'],'as':_0x93e5('0x90'),'attributes':[_0x93e5('0x52'),_0x93e5('0x91'),'internal'],'required':![]},{'model':db['Tag'],'as':_0x93e5('0x92'),'attributes':['id',_0x93e5('0x52'),'color'],'where':_0x1eea57[_0x93e5('0x46')][_0x93e5('0x93')]?{'id':_0x1eea57[_0x93e5('0x46')][_0x93e5('0x93')]}:undefined,'required':_0x1eea57['query'][_0x93e5('0x93')]?!![]:![]}];}return db[_0x93e5('0x8e')][_0x93e5('0x58')](_0x42cd08);})[_0x93e5('0x20')](function(_0x41dd66){_0x4c5375['rows']=_0x41dd66;return _0x4c5375;});}})['then'](respondWithFilteredResult(_0x5059da,_0x42cd08))[_0x93e5('0x5a')](handleError(_0x5059da,null));};exports[_0x93e5('0x94')]=function(_0x468481,_0x53fad2,_0x46ddba){return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x468481[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x53fad2,null))['then'](function(_0x4f37a3){if(_0x4f37a3){return db[_0x93e5('0x95')][_0x93e5('0x96')](function(_0x281010){return db[_0x93e5('0x97')]['destroy']({'where':{'MailAccountId':_0x468481['params']['id']},'transaction':_0x281010})[_0x93e5('0x20')](function(_0x2d84a0){var _0x34e84c=_[_0x93e5('0x40')](_0x468481[_0x93e5('0x5f')],function(_0x20fc56){_0x20fc56[_0x93e5('0x63')]=_0x468481['params']['id'];return _0x20fc56;});return db[_0x93e5('0x97')][_0x93e5('0x98')](_0x34e84c,{'transaction':_0x281010});});})[_0x93e5('0x20')](function(){return db['MailApplication']['findAndCountAll']({'where':{'MailAccountId':_0x468481[_0x93e5('0x5c')]['id']},'order':_0x93e5('0x99')});});}})['then'](respondWithResult(_0x53fad2,null))[_0x93e5('0x5a')](handleError(_0x53fad2,null));};exports[_0x93e5('0x9a')]=function(_0x5802a9,_0x202bd0,_0x459645){var _0x14336b={};var _0x2197f6={};var _0x1d8993;var _0x2884d8;return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x5802a9['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x202bd0,null))[_0x93e5('0x20')](function(_0x4f7ea7){if(_0x4f7ea7){_0x1d8993=_0x4f7ea7;_0x2197f6[_0x93e5('0x45')]=_[_0x93e5('0x47')](db['MailApplication'][_0x93e5('0x41')]);_0x2197f6[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x5802a9[_0x93e5('0x46')]);_0x2197f6[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x2197f6[_0x93e5('0x45')],_0x2197f6[_0x93e5('0x46')]);_0x14336b[_0x93e5('0x49')]=_['intersection'](_0x2197f6[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x5802a9[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x14336b['attributes']=_0x14336b['attributes']['length']?_0x14336b[_0x93e5('0x49')]:_0x2197f6[_0x93e5('0x45')];_0x14336b[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x5802a9[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x14336b['where']=qs['filters'](_['pick'](_0x5802a9[_0x93e5('0x46')],_0x2197f6[_0x93e5('0x4f')]));if(_0x5802a9[_0x93e5('0x46')][_0x93e5('0x69')]){_0x14336b[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x14336b[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x14336b['attributes'],function(_0x3f829e){var _0x483145={};_0x483145[_0x3f829e]={'$like':'%'+_0x5802a9[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x483145;})});}_0x14336b=_[_0x93e5('0x53')]({},_0x14336b,_0x5802a9[_0x93e5('0x54')]);return _0x1d8993[_0x93e5('0x9a')](_0x14336b);}})['then'](function(_0x219b55){if(_0x219b55){_0x2884d8=_0x219b55[_0x93e5('0x4a')];if(!_0x5802a9['query'][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x14336b[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x5802a9['query']['limit']);_0x14336b[_0x93e5('0x2d')]=qs['offset'](_0x5802a9[_0x93e5('0x46')][_0x93e5('0x2d')]);}return _0x1d8993[_0x93e5('0x9a')](_0x14336b);}})[_0x93e5('0x20')](function(_0x250e37){if(_0x250e37){return _0x250e37?{'count':_0x2884d8,'rows':_0x250e37}:null;}})['then'](respondWithResult(_0x202bd0,null))[_0x93e5('0x5a')](handleError(_0x202bd0,null));};exports[_0x93e5('0x9b')]=function(_0x2e1f43,_0x3c3979,_0x5f0e34){var _0x34dc59={'raw':!![],'where':{}};var _0xd9efaa={};var _0x9cf29d={'count':0x0,'rows':[]};return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x2e1f43[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x3c3979,null))[_0x93e5('0x20')](function(_0x232af2){if(_0x232af2){_0xd9efaa[_0x93e5('0x45')]=_['keys'](db[_0x93e5('0x9c')][_0x93e5('0x41')]);_0xd9efaa[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x2e1f43[_0x93e5('0x46')]);_0xd9efaa['filters']=_[_0x93e5('0x48')](_0xd9efaa[_0x93e5('0x45')],_0xd9efaa[_0x93e5('0x46')]);_0x34dc59[_0x93e5('0x49')]=_[_0x93e5('0x48')](_0xd9efaa[_0x93e5('0x45')],qs['fields'](_0x2e1f43['query'][_0x93e5('0x5d')]));_0x34dc59['attributes']=_0x34dc59[_0x93e5('0x49')][_0x93e5('0x4a')]?_0x34dc59[_0x93e5('0x49')]:_0xd9efaa[_0x93e5('0x45')];if(!_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x34dc59[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x30')]);_0x34dc59[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x34dc59[_0x93e5('0x68')]=qs['sort'](_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x34dc59[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_['pick'](_0x2e1f43[_0x93e5('0x46')],_0xd9efaa[_0x93e5('0x4f')]));_0x34dc59[_0x93e5('0x4e')]['MailAccountId']=_0x232af2['id'];if(_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x69')]){_0x34dc59[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x34dc59[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x34dc59[_0x93e5('0x49')],function(_0x57b283){var _0x44b782={};_0x44b782[_0x57b283]={'$like':'%'+_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x44b782;})});}if(_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x9d')]){var _0x4d1ecd=_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x9d')]['split'](',');var _0x9c0dfa={};_0x9c0dfa[_0x4d1ecd[0x0]]={'$gte':moment(_0x4d1ecd[0x1])[_0x93e5('0x9e')]('YYYY-MM-DD\x20HH:mm:ss')};_0x34dc59[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x34dc59[_0x93e5('0x4e')],_0x9c0dfa);}_0x34dc59=_['merge']({},_0x34dc59,_0x2e1f43[_0x93e5('0x54')]);return db[_0x93e5('0x9c')][_0x93e5('0x2f')]({'where':_0x34dc59[_0x93e5('0x4e')]})[_0x93e5('0x20')](function(_0x398a0e){_0x9cf29d[_0x93e5('0x2f')]=_0x398a0e;if(_0x2e1f43['query'][_0x93e5('0x56')]){_0x34dc59[_0x93e5('0x57')]=[{'all':!![]}];}return db['MailMessage']['findAll'](_0x34dc59);})[_0x93e5('0x20')](function(_0x3c81c9){if(_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x9f')]===_0x93e5('0xa0')){for(var _0x2e2d98=0x0;_0x2e2d98<_0x3c81c9['length'];_0x2e2d98++){_0x3c81c9[_0x2e2d98]['body']=juice(_0x3c81c9[_0x2e2d98]['body']);}}_0x9cf29d['rows']=_0x3c81c9;return _0x9cf29d;});}})[_0x93e5('0x20')](respondWithFilteredResult(_0x3c3979,_0x34dc59))[_0x93e5('0x5a')](handleError(_0x3c3979,null));};exports[_0x93e5('0x3a')]=function(_0x14c51b,_0x165bff,_0x544bed){var _0x4e6b90,_0x1366ae={},_0x17cba4;if(_0x14c51b[_0x93e5('0x5f')]['to']){_0x17cba4=_0x14c51b['body']['to']['split'](',')[0x0];}return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x14c51b['params']['id']},'include':[{'model':db[_0x93e5('0xa1')],'as':_0x93e5('0xa2'),'include':[{'model':db[_0x93e5('0xa3')],'as':_0x93e5('0xa4'),'where':{'email':_0x17cba4},'limit':0x1,'order':[['updatedAt',_0x93e5('0xa5')]]}]},{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f'),'raw':!![]}]})[_0x93e5('0x20')](handleEntityNotFound(_0x165bff,null))[_0x93e5('0x20')](function(_0xdb4746){if(_0xdb4746){_0x4e6b90=_0xdb4746;if(_0xdb4746[_0x93e5('0x3f')]){if(_[_0x93e5('0x72')](_0x14c51b['body']['from'])){_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa6')]=util['format'](_0x93e5('0xa7'),_0xdb4746['name'],_0xdb4746[_0x93e5('0x70')]||_0xdb4746[_0x93e5('0x3f')]['user']);}if(_0x14c51b[_0x93e5('0x5f')]['attachments']&&_0x14c51b['body'][_0x93e5('0xa8')][_0x93e5('0x4a')]){for(var _0x5a54b3=0x0;_0x5a54b3<_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa8')][_0x93e5('0x4a')];_0x5a54b3+=0x1){_0x14c51b[_0x93e5('0x5f')]['attachments'][_0x5a54b3]={'filename':_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa8')][_0x5a54b3][_0x93e5('0x52')],'path':path[_0x93e5('0xa9')](config[_0x93e5('0xaa')],_0x93e5('0xab'),_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa8')][_0x5a54b3][_0x93e5('0xac')])};}}var _0x22ee79={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x7e')])){if(_0xdb4746['Smtp']['authentication']){_0x22ee79['auth']={'user':_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x77')],'pass':_0xdb4746[_0x93e5('0x3f')]['pass']};}_0x22ee79['host']=_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x7c')];_0x22ee79[_0x93e5('0x7d')]=_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x7d')];_0x22ee79[_0x93e5('0xad')]=_0xdb4746[_0x93e5('0x3f')][_0x93e5('0xad')];}else{_0x22ee79['service']=_0xdb4746['Smtp'][_0x93e5('0x7e')];_0x22ee79[_0x93e5('0xae')]={'user':_0xdb4746['Smtp'][_0x93e5('0x77')],'pass':_0xdb4746['Smtp']['pass']};}return respondWithRpcPromise(_0x93e5('0xaf'),_0x93e5('0xb0'),{'account':_0x22ee79,'message':_0x14c51b[_0x93e5('0x5f')]});}else{throw new Error('List\x20not\x20found');}}})[_0x93e5('0x20')](function(_0x4b40bb){if(_0x4b40bb){_0x1366ae=_0x4b40bb;if(_0x4e6b90[_0x93e5('0xa2')]){if(_0x4e6b90[_0x93e5('0xa2')][_0x93e5('0xa4')][_0x93e5('0x4a')]){return _0x4e6b90[_0x93e5('0xa2')][_0x93e5('0xa4')][0x0];}else{return db['CmContact'][_0x93e5('0x65')](_['defaults'](_0x14c51b[_0x93e5('0x5f')],{'firstName':_0x14c51b[_0x93e5('0x5f')]['to'],'email':_0x14c51b['body']['to'],'phone':_0x14c51b[_0x93e5('0x5f')]['to'],'ListId':_0x4e6b90[_0x93e5('0x71')]}));}}else{throw new Error('List\x20not\x20found');}}})[_0x93e5('0x20')](function(_0x345c6e){if(_0x345c6e){var _0x3158e9={'UserId':_0x14c51b[_0x93e5('0x77')]['id'],'ContactId':_0x345c6e['id'],'MailAccountId':_0x4e6b90['id'],'inReplyTo':_0x1366ae[_0x93e5('0xb1')],'to':_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa6')],'cc':_0x14c51b['body']['cc'],'subject':_0x14c51b['body']['subject'],'attach':_0x14c51b['body'][_0x93e5('0xb2')],'firstMsgDirection':'out','lastMsgAt':moment()[_0x93e5('0x9e')](_0x93e5('0xb3')),'lastMsgDirection':_0x93e5('0xb4'),'Messages':[_[_0x93e5('0x53')](_0x14c51b[_0x93e5('0x5f')],{'messageId':_0x1366ae[_0x93e5('0xb1')],'sentAt':moment()[_0x93e5('0x9e')](_0x93e5('0xb3')),'read':!![],'MailAccountId':_0x4e6b90['id'],'UserId':_0x14c51b['user']['id'],'ContactId':_0x345c6e['id']})]};if(_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xb5')]){_0x3158e9=_['merge'](_0x3158e9,_0x14c51b['body'][_0x93e5('0xb5')]);}return db[_0x93e5('0x8e')]['create'](_0x3158e9,{'include':[{'model':db[_0x93e5('0x9c')],'as':_0x93e5('0xb6')}]});}})[_0x93e5('0x20')](respondWithResult(_0x165bff,null))[_0x93e5('0x5a')](handleError(_0x165bff,null));};exports[_0x93e5('0xb7')]=function(_0x28ec7d,_0x126aaa,_0x46a6a4){return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x28ec7d[_0x93e5('0x5c')]['id']},'include':[{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f'),'raw':!![]}]})[_0x93e5('0x20')](handleEntityNotFound(_0x126aaa,null))[_0x93e5('0x20')](function(_0x57458e){if(_0x57458e&&_0x57458e[_0x93e5('0x3f')]){var _0x539f6d={'id':_0x57458e['id'],'tls':{'rejectUnauthorized':![]}};if(_0x57458e[_0x93e5('0x3f')]['service']){_0x539f6d[_0x93e5('0x7e')]=_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7e')];}else{_0x539f6d[_0x93e5('0x7c')]=_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7c')];_0x539f6d[_0x93e5('0x7d')]=_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7d')];_0x539f6d[_0x93e5('0xad')]=_0x57458e['Smtp'][_0x93e5('0xad')];}if(_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7b')]){_0x539f6d['auth']={'user':_0x57458e[_0x93e5('0x3f')]['user'],'pass':_0x57458e[_0x93e5('0x3f')][_0x93e5('0x79')]};}return respondWithRpcPromise(_0x93e5('0xb8'),'verifySmtp',{'account':_0x539f6d});}})[_0x93e5('0x20')](respondWithResult(_0x126aaa,null))[_0x93e5('0x5a')](handleError(_0x126aaa,null));};exports[_0x93e5('0x36')]=function(_0x2d12b9,_0x7fe892){return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x2d12b9['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x7fe892,null))[_0x93e5('0x20')](function(_0x5c8d9b){if(_0x5c8d9b&&_0x5c8d9b[_0x93e5('0x7e')]){throw new db[(_0x93e5('0xb9'))][(_0x93e5('0xba'))]('You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account');}return _0x5c8d9b;})[_0x93e5('0x20')](removeEntity(_0x7fe892,null))[_0x93e5('0x5a')](handleError(_0x7fe892,null));};exports[_0x93e5('0xbb')]=function(_0x382679,_0xa48a4,_0x43cd93){return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x382679[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0xa48a4,null))['then'](function(_0x4b6bfd){if(_0x4b6bfd){return _0x4b6bfd['addAgents'](_0x382679['body'][_0x93e5('0x6b')],_[_0x93e5('0x8c')](_0x382679[_0x93e5('0x5f')],[_0x93e5('0x6b'),'id'])||{})[_0x93e5('0xbc')](function(_0x399b7d){for(var _0x595b9a=0x0;_0x595b9a<_0x382679[_0x93e5('0x5f')][_0x93e5('0x6b')][_0x93e5('0x4a')];_0x595b9a+=0x1){socket[_0x93e5('0xbd')](_0x93e5('0xbe'),{'UserId':Number(_0x382679['body'][_0x93e5('0x6b')][_0x595b9a]),'MailAccountId':Number(_0x382679[_0x93e5('0x5c')]['id'])});}return _0x399b7d;});}})[_0x93e5('0x20')](respondWithResult(_0xa48a4,null))['catch'](handleError(_0xa48a4,null));};exports[_0x93e5('0xbf')]=function(_0x2296a6,_0x3b1c7a,_0x3cc2ae){return db[_0x93e5('0x55')]['find']({'where':{'id':_0x2296a6[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x3b1c7a,null))['then'](function(_0x5289d1){if(_0x5289d1){return _0x5289d1[_0x93e5('0xbf')](_0x2296a6[_0x93e5('0x46')][_0x93e5('0x6b')])['then'](function(){if(_['isArray'](_0x2296a6[_0x93e5('0x46')]['ids'])){for(var _0x39dace=0x0;_0x39dace<_0x2296a6[_0x93e5('0x46')]['ids'][_0x93e5('0x4a')];_0x39dace+=0x1){socket[_0x93e5('0xbd')](_0x93e5('0xc0'),{'UserId':Number(_0x2296a6[_0x93e5('0x46')][_0x93e5('0x6b')][_0x39dace]),'MailAccountId':Number(_0x2296a6[_0x93e5('0x5c')]['id'])});}}else{socket['emit']('userMailAccount:remove',{'UserId':Number(_0x2296a6['query']['ids']),'MailAccountId':Number(_0x2296a6[_0x93e5('0x5c')]['id'])});}});}})[_0x93e5('0x20')](respondWithStatusCode(_0x3b1c7a,null))[_0x93e5('0x5a')](handleError(_0x3b1c7a,null));};exports[_0x93e5('0xc1')]=function(_0x44085c,_0x486450,_0x3ef201){var _0x30813c={};var _0x280835={};var _0x4753d2;var _0x427ad0;return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x44085c['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x486450,null))[_0x93e5('0x20')](function(_0x44f2e4){if(_0x44f2e4){_0x4753d2=_0x44f2e4;_0x280835['model']=_[_0x93e5('0x47')](db[_0x93e5('0xc2')][_0x93e5('0x41')]);_0x280835[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x44085c['query']);_0x280835['filters']=_[_0x93e5('0x48')](_0x280835[_0x93e5('0x45')],_0x280835['query']);_0x30813c['attributes']=_[_0x93e5('0x48')](_0x280835[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x44085c['query'][_0x93e5('0x5d')]));_0x30813c[_0x93e5('0x49')]=_0x30813c[_0x93e5('0x49')]['length']?_0x30813c['attributes']:_0x280835[_0x93e5('0x45')];_0x30813c[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x44085c[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x30813c[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_['pick'](_0x44085c['query'],_0x280835[_0x93e5('0x4f')]));if(_0x44085c['query'][_0x93e5('0x69')]){_0x30813c[_0x93e5('0x4e')]=_['merge'](_0x30813c[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x30813c[_0x93e5('0x49')],function(_0x2665ab){var _0x575e0b={};_0x575e0b[_0x2665ab]={'$like':'%'+_0x44085c[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x575e0b;})});}_0x30813c=_[_0x93e5('0x53')]({},_0x30813c,_0x44085c[_0x93e5('0x54')]);return _0x4753d2[_0x93e5('0xc1')](_0x30813c);}})['then'](function(_0x55c203){if(_0x55c203){_0x427ad0=_0x55c203[_0x93e5('0x4a')];if(!_0x44085c[_0x93e5('0x46')][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x30813c[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x44085c[_0x93e5('0x46')]['limit']);_0x30813c[_0x93e5('0x2d')]=qs['offset'](_0x44085c[_0x93e5('0x46')][_0x93e5('0x2d')]);}return _0x4753d2[_0x93e5('0xc1')](_0x30813c);}})[_0x93e5('0x20')](function(_0x4caf2d){if(_0x4caf2d){return _0x4caf2d?{'count':_0x427ad0,'rows':_0x4caf2d}:null;}})[_0x93e5('0x20')](respondWithResult(_0x486450,null))[_0x93e5('0x5a')](handleError(_0x486450,null));};
\ No newline at end of file
+var _0xede3=['sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','jayson/promise','http','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','get','MailAccounts','UserProfileResource','stack','name','send','index','MailServerIn','Imap','MailServerOut','Smtp','Pause','mandatoryDispositionPause','MailAccount','rawAttributes','type','key','model','map','keys','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','VIRTUAL','merge','options','include','findAll','rows','params','fields','includeAll','find','body','describe','addDisposition','MailAccountId','getDispositions','findOne','removeDispositions','ids','create','getAnswers','CannedAnswer','order','removeAnswers','isNil','active','description','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','omit','CmContact','Contact','User','Owner','fullname','internal','tag','addApplications','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','MailApplication','bulkCreate','priority','finally','json','getApplications','MailMessage','$gte','format','inlineCss','true','split','CmList','List','Contacts','DESC','from','%s\x20<%s>','email','attachments','root','basename','auth','secure','SendMail','sendMail','List\x20not\x20found','ListId','messageId','subject','attach','out','YYYY-MM-DD\x20HH:mm:ss','Interaction','Messages','verifySmtp','VerifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','emit','userMailAccount:save','removeAgents','isArray','userMailAccount:remove','getAgents','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xede3,0xc0));var _0x3ede=function(_0x130084,_0x5edce7){_0x130084=_0x130084-0x0;var _0x3f8362=_0xede3[_0x130084];return _0x3f8362;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3ede('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3ede('0x1'));var rp=require(_0x3ede('0x2'));var moment=require(_0x3ede('0x3'));var BPromise=require(_0x3ede('0x4'));var Mustache=require(_0x3ede('0x5'));var util=require(_0x3ede('0x6'));var path=require(_0x3ede('0x7'));var sox=require(_0x3ede('0x8'));var csv=require(_0x3ede('0x9'));var ejs=require(_0x3ede('0xa'));var fs=require('fs');var fs_extra=require(_0x3ede('0xb'));var _=require(_0x3ede('0xc'));var squel=require(_0x3ede('0xd'));var crypto=require(_0x3ede('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x3ede('0xf'));var toCsv=require(_0x3ede('0x9'));var querystring=require(_0x3ede('0x10'));var Papa=require('papaparse');var htmlToText=require(_0x3ede('0x11'));var juice=require(_0x3ede('0x12'));var Redis=require(_0x3ede('0x13'));var authService=require(_0x3ede('0x14'));var qs=require(_0x3ede('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3ede('0x16'));var logger=require(_0x3ede('0x17'))(_0x3ede('0x18'));var utils=require(_0x3ede('0x19'));var config=require(_0x3ede('0x1a'));var licenseUtil=require(_0x3ede('0x1b'));var db=require(_0x3ede('0x1c'))['db'];config[_0x3ede('0x1d')]=_[_0x3ede('0x1e')](config[_0x3ede('0x1d')],{'host':_0x3ede('0x1f'),'port':0x18eb});var socket=require(_0x3ede('0x20'))(new Redis(config[_0x3ede('0x1d')]));require('./mailAccount.socket')['register'](socket);var jayson=require(_0x3ede('0x21'));var client=jayson['client'][_0x3ede('0x22')]({'port':0x232b});function respondWithRpcPromise(_0x59c338,_0x54ae57,_0x18e11c,_0x3563f7){return new BPromise(function(_0xb774be,_0x57ac4f){var _0x3a55b7=_0x3563f7||client;return _0x3a55b7['request'](_0x59c338,_0x18e11c)['then'](function(_0x390421){logger[_0x3ede('0x23')](_0x3ede('0x24'),_0x54ae57,'request\x20sent');logger[_0x3ede('0x25')](_0x3ede('0x26'),_0x54ae57,_0x3ede('0x27'),JSON['stringify'](_0x390421));if(_0x390421['error']){if(_0x390421[_0x3ede('0x28')]['code']===0x1f4){logger[_0x3ede('0x28')]('MailAccount,\x20%s,\x20%s',_0x54ae57,_0x390421[_0x3ede('0x28')][_0x3ede('0x29')]);return _0x57ac4f(_0x390421[_0x3ede('0x28')][_0x3ede('0x29')]);}logger[_0x3ede('0x28')](_0x3ede('0x24'),_0x54ae57,_0x390421['error'][_0x3ede('0x29')]);return _0xb774be(_0x390421[_0x3ede('0x28')][_0x3ede('0x29')]);}else{logger[_0x3ede('0x23')](_0x3ede('0x24'),_0x54ae57,_0x3ede('0x27'));_0xb774be(_0x390421[_0x3ede('0x2a')][_0x3ede('0x29')]);}})[_0x3ede('0x2b')](function(_0x1224b5){logger['error']('MailAccount,\x20%s,\x20%s',_0x54ae57,_0x1224b5);_0x57ac4f(_0x1224b5);});});}function respondWithStatusCode(_0x3765fe,_0x40f4ad){_0x40f4ad=_0x40f4ad||0xcc;return function(_0x248e17){if(_0x248e17){return _0x3765fe[_0x3ede('0x2c')](_0x40f4ad);}return _0x3765fe[_0x3ede('0x2d')](_0x40f4ad)[_0x3ede('0x2e')]();};}function respondWithResult(_0x5299a0,_0x2ee27d){_0x2ee27d=_0x2ee27d||0xc8;return function(_0x296f74){if(_0x296f74){return _0x5299a0[_0x3ede('0x2d')](_0x2ee27d)['json'](_0x296f74);}};}function respondWithFilteredResult(_0x26f04e,_0x8daee8){return function(_0x449e94){if(_0x449e94){var _0x57cf8a=typeof _0x8daee8[_0x3ede('0x2f')]==='undefined'&&typeof _0x8daee8[_0x3ede('0x30')]===_0x3ede('0x31');var _0x5930f4=_0x449e94['count'];var _0x319fd4=_0x57cf8a?0x0:_0x8daee8[_0x3ede('0x2f')];var _0x3f8f6c=_0x57cf8a?_0x449e94[_0x3ede('0x32')]:_0x8daee8[_0x3ede('0x2f')]+_0x8daee8[_0x3ede('0x30')];var _0x41c790;if(_0x3f8f6c>=_0x5930f4){_0x3f8f6c=_0x5930f4;_0x41c790=0xc8;}else{_0x41c790=0xce;}_0x26f04e[_0x3ede('0x2d')](_0x41c790);return _0x26f04e[_0x3ede('0x33')](_0x3ede('0x34'),_0x319fd4+'-'+_0x3f8f6c+'/'+_0x5930f4)['json'](_0x449e94);}return null;};}function patchUpdates(_0x27bb8a){return function(_0x8a0ebc){try{jsonpatch['apply'](_0x8a0ebc,_0x27bb8a,!![]);}catch(_0x232b90){return BPromise[_0x3ede('0x35')](_0x232b90);}return _0x8a0ebc[_0x3ede('0x36')]();};}function saveUpdates(_0x4da83d,_0x166766){return function(_0x505c5e){if(_0x505c5e){return _0x505c5e[_0x3ede('0x37')](_0x4da83d)[_0x3ede('0x38')](function(_0x40696a){return _0x40696a;});}return null;};}function removeEntity(_0x558576,_0x518543){return function(_0x109f8a){if(_0x109f8a){return _0x109f8a[_0x3ede('0x39')]()[_0x3ede('0x38')](function(){var _0x36a636=_0x109f8a[_0x3ede('0x3a')]({'plain':!![]});var _0x5d8a03=_0x3ede('0x3b');return db[_0x3ede('0x3c')][_0x3ede('0x39')]({'where':{'type':_0x5d8a03,'resourceId':_0x36a636['id']}})[_0x3ede('0x38')](function(){return _0x109f8a;});})['then'](function(){_0x558576[_0x3ede('0x2d')](0xcc)[_0x3ede('0x2e')]();});}};}function handleEntityNotFound(_0x294379,_0x58b507){return function(_0x52e77b){if(!_0x52e77b){_0x294379[_0x3ede('0x2c')](0x194);}return _0x52e77b;};}function handleError(_0x142c3d,_0x1b3836){_0x1b3836=_0x1b3836||0x1f4;return function(_0x41e543){logger[_0x3ede('0x28')](_0x41e543[_0x3ede('0x3d')]);if(_0x41e543[_0x3ede('0x3e')]){delete _0x41e543['name'];}_0x142c3d[_0x3ede('0x2d')](_0x1b3836)[_0x3ede('0x3f')](_0x41e543);};}exports[_0x3ede('0x40')]=function(_0x5468f5,_0x588ea8){var _0x5f0b05={'include':[{'model':db[_0x3ede('0x41')],'as':_0x3ede('0x42')},{'model':db[_0x3ede('0x43')],'as':_0x3ede('0x44')},{'model':db[_0x3ede('0x45')],'as':_0x3ede('0x46')}]},_0x86cb4e={},_0xd7fe44={'count':0x0,'rows':[]};var _0x4538d0=_['map'](db[_0x3ede('0x47')][_0x3ede('0x48')],function(_0x112f80){return{'name':_0x112f80['fieldName'],'type':_0x112f80[_0x3ede('0x49')][_0x3ede('0x4a')]};});_0x86cb4e[_0x3ede('0x4b')]=_[_0x3ede('0x4c')](_0x4538d0,'name');_0x86cb4e['query']=_[_0x3ede('0x4d')](_0x5468f5[_0x3ede('0x4e')]);_0x86cb4e[_0x3ede('0x4f')]=_[_0x3ede('0x50')](_0x86cb4e['model'],_0x86cb4e[_0x3ede('0x4e')]);_0x5f0b05[_0x3ede('0x51')]=_['intersection'](_0x86cb4e['model'],qs['fields'](_0x5468f5[_0x3ede('0x4e')]['fields']));_0x5f0b05['attributes']=_0x5f0b05['attributes'][_0x3ede('0x52')]?_0x5f0b05[_0x3ede('0x51')]:_0x86cb4e[_0x3ede('0x4b')];if(!_0x5468f5[_0x3ede('0x4e')][_0x3ede('0x53')](_0x3ede('0x54'))){_0x5f0b05['limit']=qs[_0x3ede('0x30')](_0x5468f5['query']['limit']);_0x5f0b05[_0x3ede('0x2f')]=qs[_0x3ede('0x2f')](_0x5468f5[_0x3ede('0x4e')]['offset']);}_0x5f0b05['order']=qs[_0x3ede('0x55')](_0x5468f5[_0x3ede('0x4e')][_0x3ede('0x55')]);_0x5f0b05['where']=qs[_0x3ede('0x4f')](_[_0x3ede('0x56')](_0x5468f5[_0x3ede('0x4e')],_0x86cb4e[_0x3ede('0x4f')]),_0x4538d0);if(_0x5468f5[_0x3ede('0x4e')][_0x3ede('0x57')]){_0x5f0b05[_0x3ede('0x58')]=_['merge'](_0x5f0b05['where'],{'$or':_['map'](_0x4538d0,function(_0x5333e0){if(_0x5333e0['type']!==_0x3ede('0x59')){var _0x44ba2a={};_0x44ba2a[_0x5333e0[_0x3ede('0x3e')]]={'$like':'%'+_0x5468f5[_0x3ede('0x4e')][_0x3ede('0x57')]+'%'};return _0x44ba2a;}})});}_0x5f0b05=_[_0x3ede('0x5a')]({},_0x5f0b05,_0x5468f5[_0x3ede('0x5b')]);var _0x56a994={'where':_0x5f0b05['where']};return db[_0x3ede('0x47')][_0x3ede('0x32')](_0x56a994)[_0x3ede('0x38')](function(_0x351b08){_0xd7fe44[_0x3ede('0x32')]=_0x351b08;if(_0x5468f5[_0x3ede('0x4e')]['includeAll']){_0x5f0b05[_0x3ede('0x5c')]=[{'all':!![]}];}return db[_0x3ede('0x47')][_0x3ede('0x5d')](_0x5f0b05);})[_0x3ede('0x38')](function(_0x3c7ab9){_0xd7fe44[_0x3ede('0x5e')]=_0x3c7ab9;return _0xd7fe44;})[_0x3ede('0x38')](respondWithFilteredResult(_0x588ea8,_0x5f0b05))[_0x3ede('0x2b')](handleError(_0x588ea8,null));};exports['show']=function(_0x5ece5d,_0x573449){var _0x284680={'raw':![],'where':{'id':_0x5ece5d[_0x3ede('0x5f')]['id']},'include':[{'model':db[_0x3ede('0x41')],'as':'Imap'},{'model':db[_0x3ede('0x43')],'as':_0x3ede('0x44')},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x6bdbee={};_0x6bdbee[_0x3ede('0x4b')]=_['keys'](db['MailAccount'][_0x3ede('0x48')]);_0x6bdbee[_0x3ede('0x4e')]=_[_0x3ede('0x4d')](_0x5ece5d['query']);_0x6bdbee[_0x3ede('0x4f')]=_['intersection'](_0x6bdbee['model'],_0x6bdbee[_0x3ede('0x4e')]);_0x284680[_0x3ede('0x51')]=_[_0x3ede('0x50')](_0x6bdbee['model'],qs['fields'](_0x5ece5d['query'][_0x3ede('0x60')]));_0x284680[_0x3ede('0x51')]=_0x284680[_0x3ede('0x51')]['length']?_0x284680['attributes']:_0x6bdbee['model'];if(_0x5ece5d[_0x3ede('0x4e')][_0x3ede('0x61')]){_0x284680[_0x3ede('0x5c')]=[{'all':!![]}];}_0x284680=_[_0x3ede('0x5a')]({},_0x284680,_0x5ece5d['options']);return db[_0x3ede('0x47')][_0x3ede('0x62')](_0x284680)[_0x3ede('0x38')](handleEntityNotFound(_0x573449,null))[_0x3ede('0x38')](respondWithResult(_0x573449,null))[_0x3ede('0x2b')](handleError(_0x573449,null));};exports['update']=function(_0x51711c,_0x52f78c){if(_0x51711c[_0x3ede('0x63')]['id']){delete _0x51711c['body']['id'];}return db['MailAccount'][_0x3ede('0x62')]({'where':{'id':_0x51711c[_0x3ede('0x5f')]['id']},'include':[{'model':db[_0x3ede('0x41')],'as':_0x3ede('0x42')},{'model':db[_0x3ede('0x43')],'as':_0x3ede('0x44')},{'model':db['Pause'],'as':_0x3ede('0x46')}]})[_0x3ede('0x38')](handleEntityNotFound(_0x52f78c,null))[_0x3ede('0x38')](saveUpdates(_0x51711c['body'],null))[_0x3ede('0x38')](function(_0x4b6e51){if(_0x4b6e51&&_0x51711c['body'][_0x3ede('0x42')]){return db[_0x3ede('0x41')][_0x3ede('0x37')](_0x51711c[_0x3ede('0x63')][_0x3ede('0x42')],{'where':{'MailAccountId':_0x4b6e51['id']}})['then'](function(){return _0x4b6e51;});}return _0x4b6e51;})[_0x3ede('0x38')](function(_0x165410){if(_0x165410&&_0x51711c[_0x3ede('0x63')]['Smtp']){return db['MailServerOut']['update'](_0x51711c[_0x3ede('0x63')][_0x3ede('0x44')],{'where':{'MailAccountId':_0x165410['id']}})['then'](function(){return _0x165410;});}return _0x165410;})[_0x3ede('0x38')](respondWithResult(_0x52f78c,null))[_0x3ede('0x2b')](handleError(_0x52f78c,null));};exports[_0x3ede('0x64')]=function(_0x48a2e7,_0x54eed5){return db[_0x3ede('0x47')][_0x3ede('0x64')]()[_0x3ede('0x38')](respondWithResult(_0x54eed5,null))[_0x3ede('0x2b')](handleError(_0x54eed5,null));};exports[_0x3ede('0x65')]=function(_0x358327,_0x28c19e,_0x1748d4){if(_0x358327[_0x3ede('0x63')]['id']){delete _0x358327[_0x3ede('0x63')]['id'];}return db['MailAccount']['find']({'where':{'id':_0x358327[_0x3ede('0x5f')]['id']}})['then'](handleEntityNotFound(_0x28c19e,null))[_0x3ede('0x38')](function(_0x25755a){if(_0x25755a){_0x358327[_0x3ede('0x63')][_0x3ede('0x66')]=_0x25755a['id'];return db['Disposition']['create'](_0x358327[_0x3ede('0x63')]);}})[_0x3ede('0x38')](respondWithResult(_0x28c19e,null))['catch'](handleError(_0x28c19e,null));};exports[_0x3ede('0x67')]=function(_0x10f02,_0x46f7d5,_0x1f3711){var _0x59beb4={'raw':![],'where':{}};var _0x20689f={};var _0x483860={'count':0x0,'rows':[]};return db[_0x3ede('0x47')][_0x3ede('0x68')]({'where':{'id':_0x10f02['params']['id']}})['then'](handleEntityNotFound(_0x46f7d5,null))[_0x3ede('0x38')](function(_0x39205f){if(_0x39205f){_0x20689f[_0x3ede('0x4b')]=_[_0x3ede('0x4d')](db['Disposition'][_0x3ede('0x48')]);_0x20689f['query']=_['keys'](_0x10f02['query']);_0x20689f['filters']=_[_0x3ede('0x50')](_0x20689f[_0x3ede('0x4b')],_0x20689f[_0x3ede('0x4e')]);_0x59beb4[_0x3ede('0x51')]=_['intersection'](_0x20689f[_0x3ede('0x4b')],qs[_0x3ede('0x60')](_0x10f02[_0x3ede('0x4e')][_0x3ede('0x60')]));_0x59beb4[_0x3ede('0x51')]=_0x59beb4[_0x3ede('0x51')][_0x3ede('0x52')]?_0x59beb4[_0x3ede('0x51')]:_0x20689f[_0x3ede('0x4b')];if(!_0x10f02[_0x3ede('0x4e')][_0x3ede('0x53')](_0x3ede('0x54'))){_0x59beb4[_0x3ede('0x30')]=qs[_0x3ede('0x30')](_0x10f02['query']['limit']);_0x59beb4['offset']=qs['offset'](_0x10f02[_0x3ede('0x4e')]['offset']);}_0x59beb4['order']=qs[_0x3ede('0x55')](_0x10f02[_0x3ede('0x4e')][_0x3ede('0x55')]);_0x59beb4['where']=qs[_0x3ede('0x4f')](_[_0x3ede('0x56')](_0x10f02[_0x3ede('0x4e')],_0x20689f[_0x3ede('0x4f')]));_0x59beb4[_0x3ede('0x58')][_0x3ede('0x66')]=_0x39205f['id'];if(_0x10f02[_0x3ede('0x4e')]['filter']){_0x59beb4['where']=_[_0x3ede('0x5a')](_0x59beb4[_0x3ede('0x58')],{'$or':_[_0x3ede('0x4c')](_0x59beb4['attributes'],function(_0x2eba06){var _0xf1748c={};_0xf1748c[_0x2eba06]={'$like':'%'+_0x10f02[_0x3ede('0x4e')][_0x3ede('0x57')]+'%'};return _0xf1748c;})});}_0x59beb4=_['merge']({},_0x59beb4,_0x10f02[_0x3ede('0x5b')]);return db['Disposition']['count']({'where':_0x59beb4[_0x3ede('0x58')]})['then'](function(_0x1996d9){_0x483860[_0x3ede('0x32')]=_0x1996d9;if(_0x10f02['query'][_0x3ede('0x61')]){_0x59beb4[_0x3ede('0x5c')]=[{'all':!![]}];}return db['Disposition'][_0x3ede('0x5d')](_0x59beb4);})[_0x3ede('0x38')](function(_0x55b978){_0x483860[_0x3ede('0x5e')]=_0x55b978;return _0x483860;});}})['then'](respondWithFilteredResult(_0x46f7d5,_0x59beb4))['catch'](handleError(_0x46f7d5,null));};exports[_0x3ede('0x69')]=function(_0x1475d9,_0x7bf6e4,_0x3a66da){return db[_0x3ede('0x47')][_0x3ede('0x62')]({'where':{'id':_0x1475d9[_0x3ede('0x5f')]['id']}})['then'](handleEntityNotFound(_0x7bf6e4,null))['then'](function(_0x236d26){if(_0x236d26){return _0x236d26['removeDispositions'](_0x1475d9[_0x3ede('0x4e')][_0x3ede('0x6a')]);}})['then'](respondWithStatusCode(_0x7bf6e4,null))['catch'](handleError(_0x7bf6e4,null));};exports['addAnswer']=function(_0x22309d,_0x42110d,_0x158b95){if(_0x22309d[_0x3ede('0x63')]['id']){delete _0x22309d[_0x3ede('0x63')]['id'];}return db['MailAccount']['find']({'where':{'id':_0x22309d[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x42110d,null))[_0x3ede('0x38')](function(_0x4b6fb2){if(_0x4b6fb2){_0x22309d[_0x3ede('0x63')][_0x3ede('0x66')]=_0x4b6fb2['id'];return db['CannedAnswer'][_0x3ede('0x6b')](_0x22309d[_0x3ede('0x63')]);}})[_0x3ede('0x38')](respondWithResult(_0x42110d,null))['catch'](handleError(_0x42110d,null));};exports[_0x3ede('0x6c')]=function(_0xa72aa4,_0x24d2b4,_0x4b831b){var _0x4b00e1={'raw':![],'where':{}};var _0x539ba9={};var _0x21954a={'count':0x0,'rows':[]};return db[_0x3ede('0x47')][_0x3ede('0x68')]({'where':{'id':_0xa72aa4[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x24d2b4,null))[_0x3ede('0x38')](function(_0x245fdc){if(_0x245fdc){_0x539ba9['model']=_[_0x3ede('0x4d')](db[_0x3ede('0x6d')][_0x3ede('0x48')]);_0x539ba9[_0x3ede('0x4e')]=_[_0x3ede('0x4d')](_0xa72aa4[_0x3ede('0x4e')]);_0x539ba9[_0x3ede('0x4f')]=_[_0x3ede('0x50')](_0x539ba9['model'],_0x539ba9[_0x3ede('0x4e')]);_0x4b00e1[_0x3ede('0x51')]=_[_0x3ede('0x50')](_0x539ba9[_0x3ede('0x4b')],qs[_0x3ede('0x60')](_0xa72aa4[_0x3ede('0x4e')][_0x3ede('0x60')]));_0x4b00e1[_0x3ede('0x51')]=_0x4b00e1[_0x3ede('0x51')][_0x3ede('0x52')]?_0x4b00e1['attributes']:_0x539ba9[_0x3ede('0x4b')];if(!_0xa72aa4[_0x3ede('0x4e')][_0x3ede('0x53')](_0x3ede('0x54'))){_0x4b00e1[_0x3ede('0x30')]=qs[_0x3ede('0x30')](_0xa72aa4[_0x3ede('0x4e')][_0x3ede('0x30')]);_0x4b00e1[_0x3ede('0x2f')]=qs[_0x3ede('0x2f')](_0xa72aa4[_0x3ede('0x4e')][_0x3ede('0x2f')]);}_0x4b00e1[_0x3ede('0x6e')]=qs[_0x3ede('0x55')](_0xa72aa4[_0x3ede('0x4e')][_0x3ede('0x55')]);_0x4b00e1[_0x3ede('0x58')]=qs[_0x3ede('0x4f')](_[_0x3ede('0x56')](_0xa72aa4[_0x3ede('0x4e')],_0x539ba9[_0x3ede('0x4f')]));_0x4b00e1[_0x3ede('0x58')][_0x3ede('0x66')]=_0x245fdc['id'];if(_0xa72aa4['query'][_0x3ede('0x57')]){_0x4b00e1[_0x3ede('0x58')]=_[_0x3ede('0x5a')](_0x4b00e1[_0x3ede('0x58')],{'$or':_[_0x3ede('0x4c')](_0x4b00e1[_0x3ede('0x51')],function(_0x2a0baf){var _0x2d31e8={};_0x2d31e8[_0x2a0baf]={'$like':'%'+_0xa72aa4[_0x3ede('0x4e')][_0x3ede('0x57')]+'%'};return _0x2d31e8;})});}_0x4b00e1=_[_0x3ede('0x5a')]({},_0x4b00e1,_0xa72aa4[_0x3ede('0x5b')]);return db[_0x3ede('0x6d')][_0x3ede('0x32')]({'where':_0x4b00e1[_0x3ede('0x58')]})[_0x3ede('0x38')](function(_0x43af1f){_0x21954a[_0x3ede('0x32')]=_0x43af1f;if(_0xa72aa4[_0x3ede('0x4e')][_0x3ede('0x61')]){_0x4b00e1[_0x3ede('0x5c')]=[{'all':!![]}];}return db[_0x3ede('0x6d')][_0x3ede('0x5d')](_0x4b00e1);})[_0x3ede('0x38')](function(_0x3feff2){_0x21954a['rows']=_0x3feff2;return _0x21954a;});}})[_0x3ede('0x38')](respondWithFilteredResult(_0x24d2b4,_0x4b00e1))['catch'](handleError(_0x24d2b4,null));};exports[_0x3ede('0x6f')]=function(_0x3adf74,_0x4e7267,_0xca2067){return db[_0x3ede('0x47')]['find']({'where':{'id':_0x3adf74['params']['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x4e7267,null))[_0x3ede('0x38')](function(_0x5cca08){if(_0x5cca08){return _0x5cca08[_0x3ede('0x6f')](_0x3adf74[_0x3ede('0x4e')][_0x3ede('0x6a')]);}})[_0x3ede('0x38')](respondWithStatusCode(_0x4e7267,null))[_0x3ede('0x2b')](handleError(_0x4e7267,null));};exports[_0x3ede('0x6b')]=function(_0xbe063b,_0x18e3c5){var _0x2d52d2={'name':_0xbe063b['body'][_0x3ede('0x3e')],'key':_0xbe063b[_0x3ede('0x63')][_0x3ede('0x4a')],'email':_0xbe063b[_0x3ede('0x63')]['email'],'ListId':_0xbe063b[_0x3ede('0x63')]['ListId'],'active':!_[_0x3ede('0x70')](_0xbe063b[_0x3ede('0x63')][_0x3ede('0x71')])?_0xbe063b[_0x3ede('0x63')][_0x3ede('0x71')]:!![],'description':_0xbe063b[_0x3ede('0x63')][_0x3ede('0x72')]||null,'Imap':{},'Smtp':{}};if(_[_0x3ede('0x70')](_0xbe063b['body'][_0x3ede('0x73')])){if(_0xbe063b['body'][_0x3ede('0x74')]){_0x2d52d2[_0x3ede('0x42')][_0x3ede('0x75')]=_0x2d52d2[_0x3ede('0x44')]['user']=_0xbe063b[_0x3ede('0x63')][_0x3ede('0x76')];_0x2d52d2['Imap'][_0x3ede('0x77')]=_0x2d52d2['Smtp'][_0x3ede('0x78')]=_0xbe063b['body'][_0x3ede('0x79')];}else{_0x2d52d2[_0x3ede('0x42')][_0x3ede('0x7a')]=_0x2d52d2[_0x3ede('0x44')][_0x3ede('0x7a')]=![];}_0x2d52d2['Imap']['host']=_0xbe063b['body'][_0x3ede('0x42')][_0x3ede('0x7b')];_0x2d52d2[_0x3ede('0x42')][_0x3ede('0x7c')]=_0xbe063b[_0x3ede('0x63')][_0x3ede('0x42')][_0x3ede('0x7c')];_0x2d52d2[_0x3ede('0x44')][_0x3ede('0x7b')]=_0xbe063b[_0x3ede('0x63')][_0x3ede('0x44')][_0x3ede('0x7b')];_0x2d52d2[_0x3ede('0x44')][_0x3ede('0x7c')]=_0xbe063b['body'][_0x3ede('0x44')][_0x3ede('0x7c')];}else{_0x2d52d2[_0x3ede('0x42')][_0x3ede('0x7d')]=_0x2d52d2[_0x3ede('0x44')][_0x3ede('0x7d')]=_0xbe063b[_0x3ede('0x63')][_0x3ede('0x73')];_0x2d52d2[_0x3ede('0x42')][_0x3ede('0x75')]=_0x2d52d2['Smtp'][_0x3ede('0x75')]=_0xbe063b[_0x3ede('0x63')][_0x3ede('0x76')];_0x2d52d2[_0x3ede('0x42')][_0x3ede('0x77')]=_0x2d52d2['Smtp'][_0x3ede('0x78')]=_0xbe063b[_0x3ede('0x63')][_0x3ede('0x79')];}return db[_0x3ede('0x47')][_0x3ede('0x6b')](_0x2d52d2,{'include':[{'model':db[_0x3ede('0x43')],'as':_0x3ede('0x44')},{'model':db[_0x3ede('0x41')],'as':_0x3ede('0x42')}]})[_0x3ede('0x38')](function(_0x561175){var _0x579af7=_0xbe063b[_0x3ede('0x75')][_0x3ede('0x3a')]({'plain':!![]});if(!_0x579af7)throw new Error(_0x3ede('0x7e'));if(_0x579af7['role']===_0x3ede('0x75')){var _0xba0b4a=_0x561175[_0x3ede('0x3a')]({'plain':!![]});return db[_0x3ede('0x7f')]['find']({'where':{'name':_0x3ede('0x3b'),'userProfileId':_0x579af7[_0x3ede('0x80')]},'raw':!![]})['then'](function(_0x21b587){if(_0x21b587&&_0x21b587[_0x3ede('0x81')]===0x0){return db[_0x3ede('0x3c')][_0x3ede('0x6b')]({'name':_0xba0b4a[_0x3ede('0x3e')],'resourceId':_0xba0b4a['id'],'type':_0x21b587[_0x3ede('0x3e')],'sectionId':_0x21b587['id']},{})[_0x3ede('0x38')](function(){return _0x561175;});}else{return _0x561175;}})[_0x3ede('0x2b')](function(_0x52d505){logger[_0x3ede('0x28')](_0x3ede('0x82'),_0x52d505);throw _0x52d505;});}return _0x561175;})[_0x3ede('0x38')](respondWithResult(_0x18e3c5,0xc9))[_0x3ede('0x2b')](handleError(_0x18e3c5,null));};exports[_0x3ede('0x83')]=function(_0x3da3bb,_0x396b19,_0x43ef30){return db[_0x3ede('0x47')][_0x3ede('0x68')]({'where':{'id':_0x3da3bb[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x396b19,null))[_0x3ede('0x38')](function(_0x1c9f03){if(_0x1c9f03){return _0x1c9f03[_0x3ede('0x83')]();}return null;})['then'](respondWithResult(_0x396b19,null))[_0x3ede('0x2b')](handleError(_0x396b19,null));};exports[_0x3ede('0x84')]=function(_0x46e27c,_0x127028,_0x302ecf){if(_0x46e27c['body']['id']){delete _0x46e27c[_0x3ede('0x63')]['id'];}return db[_0x3ede('0x47')][_0x3ede('0x62')]({'where':{'id':_0x46e27c[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x127028,null))[_0x3ede('0x38')](function(_0x43f291){if(_0x43f291){_0x46e27c['body'][_0x3ede('0x66')]=_0x43f291['id'];return db[_0x3ede('0x41')][_0x3ede('0x6b')](_0x46e27c[_0x3ede('0x63')]);}})['then'](respondWithResult(_0x127028,null))[_0x3ede('0x2b')](handleError(_0x127028,null));};exports[_0x3ede('0x85')]=function(_0x24739a,_0x388fe1,_0x11b4cc){return db['MailAccount'][_0x3ede('0x68')]({'where':{'id':_0x24739a['params']['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x388fe1,null))[_0x3ede('0x38')](function(_0x36b9f6){if(_0x36b9f6){return _0x36b9f6['setImap'](null);}return null;})['then'](respondWithStatusCode(_0x388fe1,null))['catch'](handleError(_0x388fe1,null));};exports[_0x3ede('0x86')]=function(_0x10b779,_0x22b7bc,_0x220d41){return db[_0x3ede('0x47')][_0x3ede('0x68')]({'where':{'id':_0x10b779['params']['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x22b7bc,null))['then'](function(_0x748a15){if(_0x748a15){return _0x748a15['getSmtp']();}return null;})[_0x3ede('0x38')](respondWithResult(_0x22b7bc,null))[_0x3ede('0x2b')](handleError(_0x22b7bc,null));};exports[_0x3ede('0x87')]=function(_0x254f5a,_0x1d716d,_0x55f013){if(_0x254f5a['body']['id']){delete _0x254f5a[_0x3ede('0x63')]['id'];}return db['MailAccount'][_0x3ede('0x62')]({'where':{'id':_0x254f5a[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x1d716d,null))[_0x3ede('0x38')](function(_0x2da3b9){if(_0x2da3b9){_0x254f5a['body'][_0x3ede('0x66')]=_0x2da3b9['id'];return db[_0x3ede('0x43')]['create'](_0x254f5a[_0x3ede('0x63')]);}})[_0x3ede('0x38')](respondWithResult(_0x1d716d,null))['catch'](handleError(_0x1d716d,null));};exports[_0x3ede('0x88')]=function(_0x2beea2,_0x36c993,_0x2cac72){return db[_0x3ede('0x47')][_0x3ede('0x68')]({'where':{'id':_0x2beea2[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x36c993,null))[_0x3ede('0x38')](function(_0x1e1463){if(_0x1e1463){return _0x1e1463[_0x3ede('0x89')](null);}return null;})[_0x3ede('0x38')](respondWithStatusCode(_0x36c993,null))[_0x3ede('0x2b')](handleError(_0x36c993,null));};exports[_0x3ede('0x8a')]=function(_0x363143,_0x521bba,_0x550871){return db[_0x3ede('0x8b')][_0x3ede('0x62')]({'where':{'id':_0x363143[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x521bba,null))[_0x3ede('0x38')](function(_0x708860){if(_0x708860){return _0x708860[_0x3ede('0x8a')](_0x363143[_0x3ede('0x63')][_0x3ede('0x6a')],_[_0x3ede('0x8c')](_0x363143['body'],['ids','id'])||{});}})[_0x3ede('0x38')](respondWithResult(_0x521bba,null))[_0x3ede('0x2b')](handleError(_0x521bba,null));};exports['getInteractions']=function(_0xb62917,_0x45a21d,_0x1f0d0a){var _0x269842={'raw':![],'where':{}};var _0x3f2764={};var _0x1f6108={'count':0x0,'rows':[]};return db['MailAccount'][_0x3ede('0x68')]({'where':{'id':_0xb62917[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x45a21d,null))[_0x3ede('0x38')](function(_0x40e221){if(_0x40e221){_0x3f2764['model']=_['keys'](db['MailInteraction'][_0x3ede('0x48')]);_0x3f2764[_0x3ede('0x4e')]=_[_0x3ede('0x4d')](_0xb62917[_0x3ede('0x4e')]);_0x3f2764['filters']=_[_0x3ede('0x50')](_0x3f2764[_0x3ede('0x4b')],_0x3f2764[_0x3ede('0x4e')]);_0x269842[_0x3ede('0x51')]=_[_0x3ede('0x50')](_0x3f2764[_0x3ede('0x4b')],qs[_0x3ede('0x60')](_0xb62917[_0x3ede('0x4e')][_0x3ede('0x60')]));_0x269842[_0x3ede('0x51')]=_0x269842[_0x3ede('0x51')]['length']?_0x269842[_0x3ede('0x51')]:_0x3f2764[_0x3ede('0x4b')];if(!_0xb62917[_0x3ede('0x4e')][_0x3ede('0x53')]('nolimit')){_0x269842[_0x3ede('0x30')]=qs['limit'](_0xb62917['query'][_0x3ede('0x30')]);_0x269842[_0x3ede('0x2f')]=qs['offset'](_0xb62917[_0x3ede('0x4e')][_0x3ede('0x2f')]);}_0x269842[_0x3ede('0x6e')]=qs[_0x3ede('0x55')](_0xb62917['query'][_0x3ede('0x55')]);_0x269842[_0x3ede('0x58')]=qs[_0x3ede('0x4f')](_[_0x3ede('0x56')](_0xb62917[_0x3ede('0x4e')],_0x3f2764[_0x3ede('0x4f')]));_0x269842[_0x3ede('0x58')]['MailAccountId']=_0x40e221['id'];if(_0xb62917['query'][_0x3ede('0x57')]){_0x269842[_0x3ede('0x58')]=_[_0x3ede('0x5a')](_0x269842[_0x3ede('0x58')],{'$or':_['map'](_0x269842[_0x3ede('0x51')],function(_0xaeef22){var _0x4eb5d8={};_0x4eb5d8[_0xaeef22]={'$like':'%'+_0xb62917['query'][_0x3ede('0x57')]+'%'};return _0x4eb5d8;})});}_0x269842=_[_0x3ede('0x5a')]({},_0x269842,_0xb62917[_0x3ede('0x5b')]);return db[_0x3ede('0x8b')]['count']({'where':_0x269842[_0x3ede('0x58')]})[_0x3ede('0x38')](function(_0x1d3df7){_0x1f6108[_0x3ede('0x32')]=_0x1d3df7;if(_0xb62917[_0x3ede('0x4e')][_0x3ede('0x61')]){_0x269842[_0x3ede('0x5c')]=[{'model':db[_0x3ede('0x8d')],'as':_0x3ede('0x8e'),'required':![]},{'model':db[_0x3ede('0x8f')],'as':_0x3ede('0x90'),'attributes':['name',_0x3ede('0x91'),_0x3ede('0x92')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x3ede('0x3e'),'color'],'where':_0xb62917['query'][_0x3ede('0x93')]?{'id':_0xb62917[_0x3ede('0x4e')][_0x3ede('0x93')]}:undefined,'required':_0xb62917[_0x3ede('0x4e')][_0x3ede('0x93')]?!![]:![]}];}return db[_0x3ede('0x8b')]['findAll'](_0x269842);})['then'](function(_0x101435){_0x1f6108[_0x3ede('0x5e')]=_0x101435;return _0x1f6108;});}})[_0x3ede('0x38')](respondWithFilteredResult(_0x45a21d,_0x269842))[_0x3ede('0x2b')](handleError(_0x45a21d,null));};exports[_0x3ede('0x94')]=function addApplications(_0x3702bb,_0x5be692){var _0x110d51=_0x3702bb[_0x3ede('0x5f')]['id'];var _0x37a86c=_0x3702bb[_0x3ede('0x63')];var _0x5733e8=0xc8;var _0x15e2f6=null;return db[_0x3ede('0x95')]['transaction']({'isolationLevel':db['sequelize'][_0x3ede('0x96')][_0x3ede('0x97')][_0x3ede('0x98')]},function(_0x1c816f){return db[_0x3ede('0x47')]['findOne']({'where':{'id':_0x110d51},'transaction':_0x1c816f})[_0x3ede('0x38')](function(_0x3ae143){if(_0x3ae143){return db[_0x3ede('0x99')][_0x3ede('0x39')]({'where':{'MailAccountId':_0x110d51},'transaction':_0x1c816f})['then'](function(){var _0xd937f3=_[_0x3ede('0x4c')](_0x37a86c,function(_0x102e0e){_0x102e0e[_0x3ede('0x66')]=_0x110d51;return _0x102e0e;});return db[_0x3ede('0x99')][_0x3ede('0x9a')](_0xd937f3,{'transaction':_0x1c816f});});}else{_0x5733e8=0x194;_0x15e2f6=[];}});})[_0x3ede('0x38')](function(){if(_0x5733e8!==0x194){return db[_0x3ede('0x99')]['findAndCountAll']({'where':{'MailAccountId':_0x110d51},'order':_0x3ede('0x9b')})[_0x3ede('0x38')](function(_0x10a4e4){_0x15e2f6=_0x10a4e4;});}})['catch'](function(_0x4e5cb5){_0x5733e8=0x1f4;logger['error'](_0x4e5cb5[_0x3ede('0x3d')]);if(_0x4e5cb5[_0x3ede('0x3e')]){delete _0x4e5cb5['name'];}_0x15e2f6=_0x4e5cb5;})[_0x3ede('0x9c')](function(){if(_0x15e2f6===null){_0x5be692[_0x3ede('0x2c')](_0x5733e8);}else{if(_0x5733e8===0x1f4){_0x5be692[_0x3ede('0x2d')](_0x5733e8)[_0x3ede('0x3f')](_0x15e2f6);}else{_0x5be692[_0x3ede('0x2d')](_0x5733e8)[_0x3ede('0x9d')](_0x15e2f6);}}});};exports[_0x3ede('0x9e')]=function(_0x11400b,_0x4f285d,_0x324a94){var _0x1c133d={};var _0x568723={};var _0x24c741;var _0x26dd1a;return db['MailAccount'][_0x3ede('0x68')]({'where':{'id':_0x11400b[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x4f285d,null))[_0x3ede('0x38')](function(_0x282de6){if(_0x282de6){_0x24c741=_0x282de6;_0x568723[_0x3ede('0x4b')]=_['keys'](db[_0x3ede('0x99')][_0x3ede('0x48')]);_0x568723['query']=_[_0x3ede('0x4d')](_0x11400b[_0x3ede('0x4e')]);_0x568723['filters']=_[_0x3ede('0x50')](_0x568723[_0x3ede('0x4b')],_0x568723['query']);_0x1c133d[_0x3ede('0x51')]=_['intersection'](_0x568723[_0x3ede('0x4b')],qs[_0x3ede('0x60')](_0x11400b[_0x3ede('0x4e')]['fields']));_0x1c133d[_0x3ede('0x51')]=_0x1c133d[_0x3ede('0x51')]['length']?_0x1c133d[_0x3ede('0x51')]:_0x568723['model'];_0x1c133d[_0x3ede('0x6e')]=qs[_0x3ede('0x55')](_0x11400b['query'][_0x3ede('0x55')]);_0x1c133d['where']=qs[_0x3ede('0x4f')](_[_0x3ede('0x56')](_0x11400b['query'],_0x568723[_0x3ede('0x4f')]));if(_0x11400b[_0x3ede('0x4e')][_0x3ede('0x57')]){_0x1c133d['where']=_[_0x3ede('0x5a')](_0x1c133d['where'],{'$or':_[_0x3ede('0x4c')](_0x1c133d[_0x3ede('0x51')],function(_0x52292d){var _0x14c86={};_0x14c86[_0x52292d]={'$like':'%'+_0x11400b[_0x3ede('0x4e')][_0x3ede('0x57')]+'%'};return _0x14c86;})});}_0x1c133d=_['merge']({},_0x1c133d,_0x11400b[_0x3ede('0x5b')]);return _0x24c741['getApplications'](_0x1c133d);}})[_0x3ede('0x38')](function(_0x47bdf3){if(_0x47bdf3){_0x26dd1a=_0x47bdf3[_0x3ede('0x52')];if(!_0x11400b[_0x3ede('0x4e')][_0x3ede('0x53')](_0x3ede('0x54'))){_0x1c133d[_0x3ede('0x30')]=qs[_0x3ede('0x30')](_0x11400b[_0x3ede('0x4e')][_0x3ede('0x30')]);_0x1c133d[_0x3ede('0x2f')]=qs['offset'](_0x11400b[_0x3ede('0x4e')][_0x3ede('0x2f')]);}return _0x24c741[_0x3ede('0x9e')](_0x1c133d);}})[_0x3ede('0x38')](function(_0x3e3dd7){if(_0x3e3dd7){return _0x3e3dd7?{'count':_0x26dd1a,'rows':_0x3e3dd7}:null;}})[_0x3ede('0x38')](respondWithResult(_0x4f285d,null))[_0x3ede('0x2b')](handleError(_0x4f285d,null));};exports['getMessages']=function(_0x97f13b,_0x6f75c5,_0x5045ae){var _0x3770c0={'raw':!![],'where':{}};var _0x30fa84={};var _0x3b4055={'count':0x0,'rows':[]};return db[_0x3ede('0x47')]['findOne']({'where':{'id':_0x97f13b[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x6f75c5,null))[_0x3ede('0x38')](function(_0x5aab83){if(_0x5aab83){_0x30fa84['model']=_[_0x3ede('0x4d')](db[_0x3ede('0x9f')]['rawAttributes']);_0x30fa84[_0x3ede('0x4e')]=_['keys'](_0x97f13b[_0x3ede('0x4e')]);_0x30fa84[_0x3ede('0x4f')]=_[_0x3ede('0x50')](_0x30fa84['model'],_0x30fa84['query']);_0x3770c0[_0x3ede('0x51')]=_['intersection'](_0x30fa84[_0x3ede('0x4b')],qs[_0x3ede('0x60')](_0x97f13b[_0x3ede('0x4e')][_0x3ede('0x60')]));_0x3770c0[_0x3ede('0x51')]=_0x3770c0['attributes'][_0x3ede('0x52')]?_0x3770c0[_0x3ede('0x51')]:_0x30fa84[_0x3ede('0x4b')];if(!_0x97f13b[_0x3ede('0x4e')][_0x3ede('0x53')]('nolimit')){_0x3770c0[_0x3ede('0x30')]=qs[_0x3ede('0x30')](_0x97f13b[_0x3ede('0x4e')][_0x3ede('0x30')]);_0x3770c0[_0x3ede('0x2f')]=qs[_0x3ede('0x2f')](_0x97f13b[_0x3ede('0x4e')][_0x3ede('0x2f')]);}_0x3770c0[_0x3ede('0x6e')]=qs[_0x3ede('0x55')](_0x97f13b['query']['sort']);_0x3770c0['where']=qs[_0x3ede('0x4f')](_['pick'](_0x97f13b[_0x3ede('0x4e')],_0x30fa84[_0x3ede('0x4f')]));_0x3770c0['where'][_0x3ede('0x66')]=_0x5aab83['id'];if(_0x97f13b[_0x3ede('0x4e')][_0x3ede('0x57')]){_0x3770c0[_0x3ede('0x58')]=_['merge'](_0x3770c0[_0x3ede('0x58')],{'$or':_[_0x3ede('0x4c')](_0x3770c0[_0x3ede('0x51')],function(_0x46f7cd){var _0x1e88f2={};_0x1e88f2[_0x46f7cd]={'$like':'%'+_0x97f13b[_0x3ede('0x4e')]['filter']+'%'};return _0x1e88f2;})});}if(_0x97f13b[_0x3ede('0x4e')][_0x3ede('0xa0')]){var _0xd16ef6=_0x97f13b[_0x3ede('0x4e')]['$gte']['split'](',');var _0x5ece0a={};_0x5ece0a[_0xd16ef6[0x0]]={'$gte':moment(_0xd16ef6[0x1])[_0x3ede('0xa1')]('YYYY-MM-DD\x20HH:mm:ss')};_0x3770c0['where']=_[_0x3ede('0x5a')](_0x3770c0[_0x3ede('0x58')],_0x5ece0a);}_0x3770c0=_['merge']({},_0x3770c0,_0x97f13b[_0x3ede('0x5b')]);return db['MailMessage']['count']({'where':_0x3770c0[_0x3ede('0x58')]})['then'](function(_0x3bdeef){_0x3b4055[_0x3ede('0x32')]=_0x3bdeef;if(_0x97f13b[_0x3ede('0x4e')][_0x3ede('0x61')]){_0x3770c0[_0x3ede('0x5c')]=[{'all':!![]}];}return db[_0x3ede('0x9f')][_0x3ede('0x5d')](_0x3770c0);})[_0x3ede('0x38')](function(_0x15e5e8){if(_0x97f13b[_0x3ede('0x4e')][_0x3ede('0xa2')]===_0x3ede('0xa3')){for(var _0x7f92ef=0x0;_0x7f92ef<_0x15e5e8[_0x3ede('0x52')];_0x7f92ef++){_0x15e5e8[_0x7f92ef][_0x3ede('0x63')]=juice(_0x15e5e8[_0x7f92ef][_0x3ede('0x63')]);}}_0x3b4055[_0x3ede('0x5e')]=_0x15e5e8;return _0x3b4055;});}})['then'](respondWithFilteredResult(_0x6f75c5,_0x3770c0))[_0x3ede('0x2b')](handleError(_0x6f75c5,null));};exports[_0x3ede('0x3f')]=function(_0x2ae77b,_0x374cae,_0x2e0e0b){var _0x582e89,_0x579a52={},_0x5b8cf3;if(_0x2ae77b[_0x3ede('0x63')]['to']){_0x5b8cf3=_0x2ae77b['body']['to'][_0x3ede('0xa4')](',')[0x0];}return db[_0x3ede('0x47')][_0x3ede('0x62')]({'where':{'id':_0x2ae77b[_0x3ede('0x5f')]['id']},'include':[{'model':db[_0x3ede('0xa5')],'as':_0x3ede('0xa6'),'include':[{'model':db[_0x3ede('0x8d')],'as':_0x3ede('0xa7'),'where':{'email':_0x5b8cf3},'limit':0x1,'order':[['updatedAt',_0x3ede('0xa8')]]}]},{'model':db[_0x3ede('0x43')],'as':_0x3ede('0x44'),'raw':!![]}]})[_0x3ede('0x38')](handleEntityNotFound(_0x374cae,null))[_0x3ede('0x38')](function(_0x541e5d){if(_0x541e5d){_0x582e89=_0x541e5d;if(_0x541e5d[_0x3ede('0x44')]){if(_[_0x3ede('0x70')](_0x2ae77b[_0x3ede('0x63')]['from'])){_0x2ae77b[_0x3ede('0x63')][_0x3ede('0xa9')]=util[_0x3ede('0xa1')](_0x3ede('0xaa'),_0x541e5d[_0x3ede('0x3e')],_0x541e5d[_0x3ede('0xab')]||_0x541e5d[_0x3ede('0x44')]['user']);}if(_0x2ae77b['body'][_0x3ede('0xac')]&&_0x2ae77b[_0x3ede('0x63')][_0x3ede('0xac')]['length']){for(var _0x32f1e9=0x0;_0x32f1e9<_0x2ae77b['body'][_0x3ede('0xac')][_0x3ede('0x52')];_0x32f1e9+=0x1){_0x2ae77b['body']['attachments'][_0x32f1e9]={'filename':_0x2ae77b[_0x3ede('0x63')]['attachments'][_0x32f1e9][_0x3ede('0x3e')],'path':path['join'](config[_0x3ede('0xad')],'server/files/attachments',_0x2ae77b[_0x3ede('0x63')][_0x3ede('0xac')][_0x32f1e9][_0x3ede('0xae')])};}}var _0x505c9c={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x541e5d[_0x3ede('0x44')][_0x3ede('0x7d')])){if(_0x541e5d[_0x3ede('0x44')][_0x3ede('0x7a')]){_0x505c9c[_0x3ede('0xaf')]={'user':_0x541e5d[_0x3ede('0x44')]['user'],'pass':_0x541e5d[_0x3ede('0x44')]['pass']};}_0x505c9c['host']=_0x541e5d[_0x3ede('0x44')][_0x3ede('0x7b')];_0x505c9c[_0x3ede('0x7c')]=_0x541e5d[_0x3ede('0x44')][_0x3ede('0x7c')];_0x505c9c[_0x3ede('0xb0')]=_0x541e5d[_0x3ede('0x44')]['secure'];}else{_0x505c9c[_0x3ede('0x7d')]=_0x541e5d['Smtp'][_0x3ede('0x7d')];_0x505c9c[_0x3ede('0xaf')]={'user':_0x541e5d['Smtp'][_0x3ede('0x75')],'pass':_0x541e5d[_0x3ede('0x44')][_0x3ede('0x78')]};}return respondWithRpcPromise(_0x3ede('0xb1'),_0x3ede('0xb2'),{'account':_0x505c9c,'message':_0x2ae77b['body']});}else{throw new Error(_0x3ede('0xb3'));}}})[_0x3ede('0x38')](function(_0x38c696){if(_0x38c696){_0x579a52=_0x38c696;if(_0x582e89[_0x3ede('0xa6')]){if(_0x582e89[_0x3ede('0xa6')][_0x3ede('0xa7')]['length']){return _0x582e89[_0x3ede('0xa6')][_0x3ede('0xa7')][0x0];}else{return db[_0x3ede('0x8d')][_0x3ede('0x6b')](_['defaults'](_0x2ae77b[_0x3ede('0x63')],{'firstName':_0x2ae77b[_0x3ede('0x63')]['to'],'email':_0x2ae77b['body']['to'],'phone':_0x2ae77b[_0x3ede('0x63')]['to'],'ListId':_0x582e89[_0x3ede('0xb4')]}));}}else{throw new Error(_0x3ede('0xb3'));}}})[_0x3ede('0x38')](function(_0x2413f6){if(_0x2413f6){var _0x42d2b1={'UserId':_0x2ae77b['user']['id'],'ContactId':_0x2413f6['id'],'MailAccountId':_0x582e89['id'],'inReplyTo':_0x579a52[_0x3ede('0xb5')],'to':_0x2ae77b[_0x3ede('0x63')][_0x3ede('0xa9')],'cc':_0x2ae77b[_0x3ede('0x63')]['cc'],'subject':_0x2ae77b['body'][_0x3ede('0xb6')],'attach':_0x2ae77b[_0x3ede('0x63')][_0x3ede('0xb7')],'firstMsgDirection':_0x3ede('0xb8'),'lastMsgAt':moment()[_0x3ede('0xa1')](_0x3ede('0xb9')),'lastMsgDirection':'out','Messages':[_[_0x3ede('0x5a')](_0x2ae77b['body'],{'messageId':_0x579a52[_0x3ede('0xb5')],'sentAt':moment()[_0x3ede('0xa1')]('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0x582e89['id'],'UserId':_0x2ae77b['user']['id'],'ContactId':_0x2413f6['id']})]};if(_0x2ae77b[_0x3ede('0x63')][_0x3ede('0xba')]){_0x42d2b1=_[_0x3ede('0x5a')](_0x42d2b1,_0x2ae77b[_0x3ede('0x63')]['Interaction']);}return db[_0x3ede('0x8b')][_0x3ede('0x6b')](_0x42d2b1,{'include':[{'model':db['MailMessage'],'as':_0x3ede('0xbb')}]});}})['then'](respondWithResult(_0x374cae,null))[_0x3ede('0x2b')](handleError(_0x374cae,null));};exports[_0x3ede('0xbc')]=function(_0x20e853,_0x4158cd,_0x33fcfd){return db[_0x3ede('0x47')][_0x3ede('0x62')]({'where':{'id':_0x20e853[_0x3ede('0x5f')]['id']},'include':[{'model':db[_0x3ede('0x43')],'as':'Smtp','raw':!![]}]})[_0x3ede('0x38')](handleEntityNotFound(_0x4158cd,null))[_0x3ede('0x38')](function(_0x337c34){if(_0x337c34&&_0x337c34[_0x3ede('0x44')]){var _0x53678d={'id':_0x337c34['id'],'tls':{'rejectUnauthorized':![]}};if(_0x337c34['Smtp'][_0x3ede('0x7d')]){_0x53678d[_0x3ede('0x7d')]=_0x337c34[_0x3ede('0x44')][_0x3ede('0x7d')];}else{_0x53678d[_0x3ede('0x7b')]=_0x337c34[_0x3ede('0x44')][_0x3ede('0x7b')];_0x53678d[_0x3ede('0x7c')]=_0x337c34[_0x3ede('0x44')][_0x3ede('0x7c')];_0x53678d[_0x3ede('0xb0')]=_0x337c34[_0x3ede('0x44')][_0x3ede('0xb0')];}if(_0x337c34[_0x3ede('0x44')][_0x3ede('0x7a')]){_0x53678d[_0x3ede('0xaf')]={'user':_0x337c34['Smtp'][_0x3ede('0x75')],'pass':_0x337c34[_0x3ede('0x44')][_0x3ede('0x78')]};}return respondWithRpcPromise(_0x3ede('0xbd'),_0x3ede('0xbc'),{'account':_0x53678d});}})[_0x3ede('0x38')](respondWithResult(_0x4158cd,null))[_0x3ede('0x2b')](handleError(_0x4158cd,null));};exports[_0x3ede('0x39')]=function(_0x58f8ba,_0x4385d6){return db['MailAccount'][_0x3ede('0x62')]({'where':{'id':_0x58f8ba[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x4385d6,null))[_0x3ede('0x38')](function(_0x2e9df9){if(_0x2e9df9&&_0x2e9df9['service']){throw new db[(_0x3ede('0xbe'))][(_0x3ede('0xbf'))](_0x3ede('0xc0'));}return _0x2e9df9;})[_0x3ede('0x38')](removeEntity(_0x4385d6,null))['catch'](handleError(_0x4385d6,null));};exports['addAgents']=function(_0x3f0f26,_0x3c2d26,_0x396c70){return db[_0x3ede('0x47')]['find']({'where':{'id':_0x3f0f26['params']['id']}})['then'](handleEntityNotFound(_0x3c2d26,null))[_0x3ede('0x38')](function(_0x80094d){if(_0x80094d){return _0x80094d[_0x3ede('0xc1')](_0x3f0f26[_0x3ede('0x63')][_0x3ede('0x6a')],_[_0x3ede('0x8c')](_0x3f0f26[_0x3ede('0x63')],[_0x3ede('0x6a'),'id'])||{})['spread'](function(_0x387494){for(var _0x522233=0x0;_0x522233<_0x3f0f26[_0x3ede('0x63')][_0x3ede('0x6a')][_0x3ede('0x52')];_0x522233+=0x1){socket[_0x3ede('0xc2')](_0x3ede('0xc3'),{'UserId':Number(_0x3f0f26[_0x3ede('0x63')]['ids'][_0x522233]),'MailAccountId':Number(_0x3f0f26[_0x3ede('0x5f')]['id'])});}return _0x387494;});}})[_0x3ede('0x38')](respondWithResult(_0x3c2d26,null))[_0x3ede('0x2b')](handleError(_0x3c2d26,null));};exports[_0x3ede('0xc4')]=function(_0x19f2a9,_0x31e8b6,_0x10d3cd){return db[_0x3ede('0x47')]['find']({'where':{'id':_0x19f2a9[_0x3ede('0x5f')]['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x31e8b6,null))[_0x3ede('0x38')](function(_0x1f8324){if(_0x1f8324){return _0x1f8324[_0x3ede('0xc4')](_0x19f2a9['query']['ids'])['then'](function(){if(_[_0x3ede('0xc5')](_0x19f2a9[_0x3ede('0x4e')][_0x3ede('0x6a')])){for(var _0x2cdd62=0x0;_0x2cdd62<_0x19f2a9[_0x3ede('0x4e')][_0x3ede('0x6a')][_0x3ede('0x52')];_0x2cdd62+=0x1){socket['emit'](_0x3ede('0xc6'),{'UserId':Number(_0x19f2a9[_0x3ede('0x4e')]['ids'][_0x2cdd62]),'MailAccountId':Number(_0x19f2a9[_0x3ede('0x5f')]['id'])});}}else{socket[_0x3ede('0xc2')]('userMailAccount:remove',{'UserId':Number(_0x19f2a9[_0x3ede('0x4e')][_0x3ede('0x6a')]),'MailAccountId':Number(_0x19f2a9[_0x3ede('0x5f')]['id'])});}});}})[_0x3ede('0x38')](respondWithStatusCode(_0x31e8b6,null))[_0x3ede('0x2b')](handleError(_0x31e8b6,null));};exports[_0x3ede('0xc7')]=function(_0x165bbb,_0x5ddafc,_0x555946){var _0x3d8748={};var _0x1847c0={};var _0x15b352;var _0x57e137;return db[_0x3ede('0x47')][_0x3ede('0x68')]({'where':{'id':_0x165bbb['params']['id']}})[_0x3ede('0x38')](handleEntityNotFound(_0x5ddafc,null))[_0x3ede('0x38')](function(_0x804010){if(_0x804010){_0x15b352=_0x804010;_0x1847c0[_0x3ede('0x4b')]=_['keys'](db[_0x3ede('0x8f')][_0x3ede('0x48')]);_0x1847c0[_0x3ede('0x4e')]=_[_0x3ede('0x4d')](_0x165bbb['query']);_0x1847c0[_0x3ede('0x4f')]=_[_0x3ede('0x50')](_0x1847c0['model'],_0x1847c0[_0x3ede('0x4e')]);_0x3d8748[_0x3ede('0x51')]=_[_0x3ede('0x50')](_0x1847c0['model'],qs[_0x3ede('0x60')](_0x165bbb[_0x3ede('0x4e')][_0x3ede('0x60')]));_0x3d8748['attributes']=_0x3d8748[_0x3ede('0x51')][_0x3ede('0x52')]?_0x3d8748['attributes']:_0x1847c0[_0x3ede('0x4b')];_0x3d8748[_0x3ede('0x6e')]=qs[_0x3ede('0x55')](_0x165bbb[_0x3ede('0x4e')][_0x3ede('0x55')]);_0x3d8748[_0x3ede('0x58')]=qs[_0x3ede('0x4f')](_[_0x3ede('0x56')](_0x165bbb[_0x3ede('0x4e')],_0x1847c0[_0x3ede('0x4f')]));if(_0x165bbb[_0x3ede('0x4e')]['filter']){_0x3d8748[_0x3ede('0x58')]=_[_0x3ede('0x5a')](_0x3d8748[_0x3ede('0x58')],{'$or':_[_0x3ede('0x4c')](_0x3d8748[_0x3ede('0x51')],function(_0x1c9256){var _0x45ec49={};_0x45ec49[_0x1c9256]={'$like':'%'+_0x165bbb[_0x3ede('0x4e')][_0x3ede('0x57')]+'%'};return _0x45ec49;})});}_0x3d8748=_[_0x3ede('0x5a')]({},_0x3d8748,_0x165bbb[_0x3ede('0x5b')]);return _0x15b352[_0x3ede('0xc7')](_0x3d8748);}})[_0x3ede('0x38')](function(_0x12bd77){if(_0x12bd77){_0x57e137=_0x12bd77[_0x3ede('0x52')];if(!_0x165bbb[_0x3ede('0x4e')]['hasOwnProperty'](_0x3ede('0x54'))){_0x3d8748[_0x3ede('0x30')]=qs[_0x3ede('0x30')](_0x165bbb[_0x3ede('0x4e')][_0x3ede('0x30')]);_0x3d8748[_0x3ede('0x2f')]=qs[_0x3ede('0x2f')](_0x165bbb[_0x3ede('0x4e')][_0x3ede('0x2f')]);}return _0x15b352[_0x3ede('0xc7')](_0x3d8748);}})[_0x3ede('0x38')](function(_0x2d98d7){if(_0x2d98d7){return _0x2d98d7?{'count':_0x57e137,'rows':_0x2d98d7}:null;}})[_0x3ede('0x38')](respondWithResult(_0x5ddafc,null))['catch'](handleError(_0x5ddafc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef17=['update','remove','emit','hook','events','../../mysqldb','MailAccount','setMaxListeners','save'];(function(_0x53d28e,_0x479f5c){var _0x18cbe5=function(_0x49b238){while(--_0x49b238){_0x53d28e['push'](_0x53d28e['shift']());}};_0x18cbe5(++_0x479f5c);}(_0xef17,0x136));var _0x7ef1=function(_0x2512e1,_0xe95220){_0x2512e1=_0x2512e1-0x0;var _0x22c554=_0xef17[_0x2512e1];return _0x22c554;};'use strict';var EventEmitter=require(_0x7ef1('0x0'));var MailAccount=require(_0x7ef1('0x1'))['db'][_0x7ef1('0x2')];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x7ef1('0x3')](0x0);var events={'afterCreate':_0x7ef1('0x4'),'afterUpdate':_0x7ef1('0x5'),'afterDestroy':_0x7ef1('0x6')};function emitEvent(_0x19a10d){return function(_0x2daaa6,_0x538a0a,_0x1d2f83){MailAccountEvents['emit'](_0x19a10d+':'+_0x2daaa6['id'],_0x2daaa6);MailAccountEvents[_0x7ef1('0x7')](_0x19a10d,_0x2daaa6);_0x1d2f83(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailAccount[_0x7ef1('0x8')](e,emitEvent(event));}}module['exports']=MailAccountEvents;
\ No newline at end of file
+var _0x79a3=['emit','hasOwnProperty','events','MailAccount','setMaxListeners','update'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x79a3,0x80));var _0x379a=function(_0xd223ca,_0x55542e){_0xd223ca=_0xd223ca-0x0;var _0x6a7809=_0x79a3[_0xd223ca];return _0x6a7809;};'use strict';var EventEmitter=require(_0x379a('0x0'));var MailAccount=require('../../mysqldb')['db'][_0x379a('0x1')];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x379a('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x379a('0x3'),'afterDestroy':'remove'};function emitEvent(_0x484729){return function(_0x4c456f,_0x187d55,_0x24dda6){MailAccountEvents[_0x379a('0x4')](_0x484729+':'+_0x4c456f['id'],_0x4c456f);MailAccountEvents[_0x379a('0x4')](_0x484729,_0x4c456f);_0x24dda6(null);};}for(var e in events){if(events[_0x379a('0x5')](e)){var event=events[e];MailAccount['hook'](e,emitEvent(event));}}module['exports']=MailAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc631=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailAccount.attributes','mail_accounts','lodash','util','../../config/logger','api'];(function(_0x2bfc5b,_0x1161b5){var _0x4442d4=function(_0x4d8dce){while(--_0x4d8dce){_0x2bfc5b['push'](_0x2bfc5b['shift']());}};_0x4442d4(++_0x1161b5);}(_0xc631,0x1dc));var _0x1c63=function(_0x26b20f,_0x17fd98){_0x26b20f=_0x26b20f-0x0;var _0x33f371=_0xc631[_0x26b20f];return _0x33f371;};'use strict';var _=require(_0x1c63('0x0'));var util=require(_0x1c63('0x1'));var logger=require(_0x1c63('0x2'))(_0x1c63('0x3'));var moment=require(_0x1c63('0x4'));var BPromise=require(_0x1c63('0x5'));var rp=require(_0x1c63('0x6'));var fs=require('fs');var path=require(_0x1c63('0x7'));var rimraf=require(_0x1c63('0x8'));var config=require(_0x1c63('0x9'));var attributes=require(_0x1c63('0xa'));module['exports']=function(_0x1ef5c7,_0x56706c){return _0x1ef5c7['define']('MailAccount',attributes,{'tableName':_0x1c63('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xffc1=['util','../../config/logger','api','moment','rimraf','../../config/environment','./mailAccount.attributes','exports','define','MailAccount','mail_accounts'];(function(_0x2705f2,_0x32c04b){var _0x53b7c2=function(_0x3364e4){while(--_0x3364e4){_0x2705f2['push'](_0x2705f2['shift']());}};_0x53b7c2(++_0x32c04b);}(_0xffc1,0x1e4));var _0x1ffc=function(_0x351847,_0x50c848){_0x351847=_0x351847-0x0;var _0x176e65=_0xffc1[_0x351847];return _0x176e65;};'use strict';var _=require('lodash');var util=require(_0x1ffc('0x0'));var logger=require(_0x1ffc('0x1'))(_0x1ffc('0x2'));var moment=require(_0x1ffc('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x1ffc('0x4'));var config=require(_0x1ffc('0x5'));var attributes=require(_0x1ffc('0x6'));module[_0x1ffc('0x7')]=function(_0x2c3a1e,_0x53964e){return _0x2c3a1e[_0x1ffc('0x8')](_0x1ffc('0x9'),attributes,{'tableName':_0x1ffc('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x186a=['User','UserId','unshift','agent','name','waitForTheAssignedAgent','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','request','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','GetMailAccount','MailAccount','options','where','attributes','limit','include','map','model','then','ShowMailAccount','find','stringify','NotifyMailAccount','mail','difference','createdAt','CompanyId','ListId','body','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','CmList','CmContact','Contacts','updatedAt','MailApplication','Applications','MailServerOut','Smtp','List','get','omit','applications','list','orderBy','priority','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','update','interaction','attachments','originTo','bcc','ChatWebsiteId','originChannel','Email','Attachment','Attachments'];(function(_0x132d12,_0x2c9799){var _0x1c3163=function(_0x7d9136){while(--_0x7d9136){_0x132d12['push'](_0x132d12['shift']());}};_0x1c3163(++_0x2c9799);}(_0x186a,0xd8));var _0xa186=function(_0x5d3151,_0x5cf478){_0x5d3151=_0x5d3151-0x0;var _0x42a7ce=_0x186a[_0x5d3151];return _0x42a7ce;};'use strict';var _=require(_0xa186('0x0'));var util=require('util');var moment=require(_0xa186('0x1'));var BPromise=require(_0xa186('0x2'));var rs=require(_0xa186('0x3'));var fs=require('fs');var Redis=require(_0xa186('0x4'));var db=require(_0xa186('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa186('0x6'))(_0xa186('0x7'));var config=require(_0xa186('0x8'));var jayson=require(_0xa186('0x9'));var client=jayson['client']['http']({'port':0x232c});config[_0xa186('0xa')]=_[_0xa186('0xb')](config['redis'],{'host':_0xa186('0xc'),'port':0x18eb});var socket=require(_0xa186('0xd'))(new Redis(config[_0xa186('0xa')]));require('./mailAccount.socket')['register'](socket);function respondWithRpcPromise(_0x52ea82,_0x1e9c97,_0x4e6c6c){return new BPromise(function(_0x2f5c8,_0x46a5e3){return client[_0xa186('0xe')](_0x52ea82,_0x4e6c6c)['then'](function(_0x3bcca9){logger['info'](_0xa186('0xf'),_0x1e9c97,_0xa186('0x10'));logger[_0xa186('0x11')](_0xa186('0x12'),_0x1e9c97,_0xa186('0x10'),JSON['stringify'](_0x3bcca9));if(_0x3bcca9[_0xa186('0x13')]){if(_0x3bcca9[_0xa186('0x13')][_0xa186('0x14')]===0x1f4){logger['error'](_0xa186('0xf'),_0x1e9c97,_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);return _0x46a5e3(_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);}logger[_0xa186('0x13')](_0xa186('0xf'),_0x1e9c97,_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);return _0x2f5c8(_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);}else{logger[_0xa186('0x16')](_0xa186('0xf'),_0x1e9c97,_0xa186('0x10'));_0x2f5c8(_0x3bcca9[_0xa186('0x17')][_0xa186('0x15')]);}})[_0xa186('0x18')](function(_0x4121c8){logger[_0xa186('0x13')](_0xa186('0xf'),_0x1e9c97,_0x4121c8);_0x46a5e3(_0x4121c8);});});}exports[_0xa186('0x19')]=function(_0x53d98c){var _0x3afdab=this;return new Promise(function(_0xfebdf1,_0x2d6f1f){return db[_0xa186('0x1a')]['findAll']({'raw':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')][_0xa186('0x1c')]||null:null,'attributes':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')][_0xa186('0x1d')]||null:null,'limit':_0x53d98c[_0xa186('0x1b')]?_0x53d98c['options'][_0xa186('0x1e')]||null:null,'include':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')][_0xa186('0x1f')]?_[_0xa186('0x20')](_0x53d98c['options']['include'],function(_0xe65e81){return{'model':db[_0xe65e81[_0xa186('0x21')]],'as':_0xe65e81['as'],'attributes':_0xe65e81[_0xa186('0x1d')],'include':_0xe65e81['include']?_[_0xa186('0x20')](_0xe65e81[_0xa186('0x1f')],function(_0x4d8c2d){return{'model':db[_0x4d8c2d[_0xa186('0x21')]],'as':_0x4d8c2d['as'],'attributes':_0x4d8c2d[_0xa186('0x1d')],'include':_0x4d8c2d['include']?_[_0xa186('0x20')](_0x4d8c2d[_0xa186('0x1f')],function(_0x3387ee){return{'model':db[_0x3387ee['model']],'as':_0x3387ee['as'],'attributes':_0x3387ee['attributes']};}):[]};}):[]};}):[]:[]})[_0xa186('0x22')](function(_0x1f9a7c){logger[_0xa186('0x16')](_0xa186('0x19'),_0x53d98c);logger['debug'](_0xa186('0x19'),_0x53d98c,JSON['stringify'](_0x1f9a7c));_0xfebdf1(_0x1f9a7c);})[_0xa186('0x18')](function(_0x44253a){logger[_0xa186('0x13')](_0xa186('0x19'),_0x44253a[_0xa186('0x15')],_0x53d98c);_0x2d6f1f(_0x3afdab[_0xa186('0x13')](0x1f4,_0x44253a[_0xa186('0x15')]));});});};exports[_0xa186('0x23')]=function(_0x25d3f6){var _0x8ad076=this;return new Promise(function(_0x257c18,_0x32ce93){return db[_0xa186('0x1a')][_0xa186('0x24')]({'raw':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6['options']['raw']===undefined?!![]:![]:!![],'where':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6['options'][_0xa186('0x1c')]||null:null,'attributes':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6[_0xa186('0x1b')][_0xa186('0x1d')]||null:null,'include':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6['options'][_0xa186('0x1f')]?_[_0xa186('0x20')](_0x25d3f6['options'][_0xa186('0x1f')],function(_0x437447){return{'model':db[_0x437447[_0xa186('0x21')]],'as':_0x437447['as'],'attributes':_0x437447['attributes'],'include':_0x437447[_0xa186('0x1f')]?_['map'](_0x437447['include'],function(_0x44505a){return{'model':db[_0x44505a[_0xa186('0x21')]],'as':_0x44505a['as'],'attributes':_0x44505a['attributes'],'include':_0x44505a[_0xa186('0x1f')]?_[_0xa186('0x20')](_0x44505a['include'],function(_0x52e3d8){return{'model':db[_0x52e3d8[_0xa186('0x21')]],'as':_0x52e3d8['as'],'attributes':_0x52e3d8[_0xa186('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xa186('0x22')](function(_0x477e52){logger[_0xa186('0x16')](_0xa186('0x23'),_0x25d3f6);logger[_0xa186('0x11')](_0xa186('0x23'),_0x25d3f6,JSON[_0xa186('0x25')](_0x477e52));_0x257c18(_0x477e52);})[_0xa186('0x18')](function(_0x45ab3d){logger[_0xa186('0x13')](_0xa186('0x23'),_0x45ab3d['message'],_0x25d3f6);_0x32ce93(_0x8ad076[_0xa186('0x13')](0x1f4,_0x45ab3d[_0xa186('0x15')]));});});};exports[_0xa186('0x26')]=function(_0x299175){var _0x54bedb=this;return new Promise(function(_0xcfba85,_0x5ed1c5){var _0xdade24={'body':_0x299175['body'],'channel':_0xa186('0x27')};var _0x581d37=_[_0xa186('0x28')](_['keys'](db['CmContact']['rawAttributes']),[_0xa186('0x29'),'updatedAt',_0xa186('0x2a'),_0xa186('0x2b')]);var _0x5f13fa=![];if(_0x299175[_0xa186('0x2c')]['id']){delete _0x299175[_0xa186('0x2c')]['id'];}if(_[_0xa186('0x2d')](_0x299175[_0xa186('0x2c')]['from'])){return _0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0xa186('0x2e')));}if(_[_0xa186('0x2d')](_0x299175['body']['body'])||_0x299175[_0xa186('0x2c')]['body']===''){return _0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0xa186('0x2f')));}if(_['isNil'](_0x299175[_0xa186('0x2c')][_0xa186('0x30')])){return _0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0xa186('0x31')+_0x581d37));}if(!_[_0xa186('0x32')](_0x581d37,_0x299175[_0xa186('0x2c')][_0xa186('0x30')])){return _0x5ed1c5(_0x54bedb['error'](0x1f4,_0xa186('0x33')+_0x581d37));}var _0x41b1ca={};_0x41b1ca[_0x299175['body'][_0xa186('0x30')]]=_0x299175[_0xa186('0x2c')][_0xa186('0x34')];return db[_0xa186('0x1a')][_0xa186('0x24')]({'where':{'id':_0x299175[_0xa186('0x35')]['id']},'include':[{'model':db[_0xa186('0x36')],'as':'List','include':[{'model':db[_0xa186('0x37')],'as':_0xa186('0x38'),'where':_0x41b1ca,'limit':0x1,'order':[[_0xa186('0x39'),'DESC']]}]},{'model':db[_0xa186('0x3a')],'as':_0xa186('0x3b')},{'model':db[_0xa186('0x3c')],'as':_0xa186('0x3d')}]})['then'](function(_0x171734){if(_0x171734&&_0x171734[_0xa186('0x3e')]){var _0x2c5d7b=_0x171734[_0xa186('0x3f')]({'plain':!![]});_0xdade24['account']=_[_0xa186('0x40')](_0x2c5d7b,[_0xa186('0x3b'),_0xa186('0x3e')]);_0xdade24[_0xa186('0x41')]=_0x2c5d7b['Applications'];_0xdade24[_0xa186('0x42')]=_0x2c5d7b[_0xa186('0x3e')];_0xdade24[_0xa186('0x41')]=_[_0xa186('0x43')](_0xdade24[_0xa186('0x41')],[_0xa186('0x44')],['asc']);if(_0xdade24[_0xa186('0x35')]&&_0xdade24['account'][_0xa186('0x45')]){_0xdade24[_0xa186('0x41')][_0xa186('0x46')]({'id':0x0,'priority':_0xdade24[_0xa186('0x41')][_0xa186('0x47')]+0x1,'app':_0xa186('0x48'),'appdata':_0xa186('0x45'),'interval':_0xa186('0x49')});}if(_0xdade24[_0xa186('0x35')][_0xa186('0x3b')]){delete _0xdade24[_0xa186('0x35')]['Applications'];}if(_0xdade24[_0xa186('0x35')]['List']){delete _0xdade24[_0xa186('0x35')][_0xa186('0x3e')];}if(_0x2c5d7b[_0xa186('0x3e')][_0xa186('0x38')][_0xa186('0x47')]){return _0x2c5d7b['List'][_0xa186('0x38')][0x0];}var _0x5c5572=_[_0xa186('0xb')](_0x299175['body'],{'firstName':_0x299175[_0xa186('0x2c')][_0xa186('0x34')],'ListId':_0x2c5d7b[_0xa186('0x2b')]});_0x5c5572[_0x299175['body'][_0xa186('0x30')]]=_0x299175[_0xa186('0x2c')][_0xa186('0x34')];return db['CmContact'][_0xa186('0x4a')](_0x5c5572);}else{throw new Error(_0xa186('0x4b'));}})['then'](function(_0x1d0721){_0xdade24['contact']=_0x1d0721;if(_0x1d0721){if(!_0x299175[_0xa186('0x2c')]['message'][_0xa186('0x4c')]){_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4c')]=rs[_0xa186('0x4d')]()+'\x20'+_0x299175['body'][_0xa186('0x15')][_0xa186('0x34')];}var _0x54d87b={'ContactId':_0x1d0721['id'],'MailAccountId':_0x299175['account']['id'],'inReplyTo':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4c')],'to':_0x299175[_0xa186('0x2c')][_0xa186('0x15')]['from'],'cc':_0x299175['body']['message']['cc'],'subject':_0x299175[_0xa186('0x2c')]['message'][_0xa186('0x4e')],'attach':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4f')],'lastMsgAt':moment()[_0xa186('0x50')](_0xa186('0x51')),'lastMsgDirection':'in'};return db[_0xa186('0x52')][_0xa186('0x24')]({'where':{'closed':![],'MailAccountId':_0x299175['account']['id']},'include':[{'model':db[_0xa186('0x53')],'as':_0xa186('0x54'),'attributes':[_0xa186('0x4c')],'where':{'messageId':_0x299175['body']['message'][_0xa186('0x55')]}}]})[_0xa186('0x22')](function(_0x4b6882){if(_0x4b6882){return[_0x4b6882,![]];}return db['MailInteraction']['create'](_0x54d87b)[_0xa186('0x22')](function(_0x4c43d9){return[_0x4c43d9,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x2aa787,_0x196279){if(_0x2aa787){_0x5f13fa=_0x196279;if(!_0x196279){return _0x2aa787[_0xa186('0x56')]({'inReplyTo':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4c')],'to':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x34')],'cc':_0x299175['body'][_0xa186('0x15')]['cc'],'subject':_0x299175['body'][_0xa186('0x15')][_0xa186('0x4e')],'attach':_0x2aa787[_0xa186('0x4f')]?_0x2aa787['attach']:_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4f')],'substatus':null,'substatusAt':moment()[_0xa186('0x50')](_0xa186('0x51')),'lastMsgAt':moment()[_0xa186('0x50')](_0xa186('0x51')),'lastMsgDirection':'in'});}else{return _0x2aa787;}}})[_0xa186('0x22')](function(_0x54c4c4){_0xdade24['interaction']=_0x54c4c4[_0xa186('0x3f')]({'plain':!![]});_0xdade24[_0xa186('0x57')]['created']=_0x5f13fa;return db[_0xa186('0x53')][_0xa186('0x4a')]({'body':_0x299175[_0xa186('0x2c')][_0xa186('0x2c')],'MailAccountId':_0x299175[_0xa186('0x35')]['id'],'MailInteractionId':_0x54c4c4['id'],'direction':'in','ContactId':_0xdade24['contact']['id'],'messageId':_0x299175['body'][_0xa186('0x15')][_0xa186('0x4c')],'from':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x34')],'to':_0x299175[_0xa186('0x2c')]['message']['to'],'cc':_0x299175[_0xa186('0x2c')]['message']['cc'],'subject':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4e')],'attach':_0x299175['body'][_0xa186('0x15')][_0xa186('0x4f')],'Attachments':_0x299175[_0xa186('0x2c')]['message'][_0xa186('0x58')],'originTo':_0x299175['body'][_0xa186('0x15')][_0xa186('0x59')],'originCc':_0x299175['body'][_0xa186('0x15')]['originCc'],'bcc':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x5a')],'ChatWebsiteId':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x5b')]||null,'originChannel':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x5c')]||_0xa186('0x5d'),'ChatOfflineMessageId':_0x299175[_0xa186('0x2c')][_0xa186('0x15')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xa186('0x5e')],'as':_0xa186('0x5f')}]});})['then'](function(_0x1162a5){_0xdade24[_0xa186('0x15')]=_0x1162a5;if(_0xdade24[_0xa186('0x57')]['UserId']){return db[_0xa186('0x60')][_0xa186('0x24')]({'attributes':['id','name'],'where':{'id':_0xdade24[_0xa186('0x57')][_0xa186('0x61')]}})[_0xa186('0x22')](function(_0x50bb73){if(_0x50bb73){_0xdade24['applications'][_0xa186('0x62')]({'id':0x0,'priority':0x0,'app':_0xa186('0x63'),'appdata':_0x50bb73[_0xa186('0x64')]+','+(_0xdade24[_0xa186('0x35')][_0xa186('0x65')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0xa186('0x66'),'startRouting',_0xdade24);});}return respondWithRpcPromise('Start',_0xa186('0x67'),_0xdade24);})[_0xa186('0x22')](function(_0x2cf69d){_0xcfba85(_0x2cf69d);})['catch'](function(_0x2bc20c){_0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0x2bc20c[_0xa186('0x15')]));});});};
\ No newline at end of file
+var _0xea99=['mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','CmContact','DESC','MailApplication','Applications','MailServerOut','omit','applications','list','orderBy','priority','autoclose','push','length','close','*,*,*,*','Contacts','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','interaction','created','attachments','ChatWebsiteId','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','MailAccount,\x20%s,\x20%s','info','catch','GetMailAccount','MailAccount','findAll','options','raw','include','model','attributes','map','then','find','ShowMailAccount','body','mail','difference','keys','rawAttributes','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty'];(function(_0x1ef8b3,_0x298ce2){var _0x26a405=function(_0x5b259e){while(--_0x5b259e){_0x1ef8b3['push'](_0x1ef8b3['shift']());}};_0x26a405(++_0x298ce2);}(_0xea99,0x177));var _0x9ea9=function(_0x39f6a8,_0x47a635){_0x39f6a8=_0x39f6a8-0x0;var _0x26ed2c=_0xea99[_0x39f6a8];return _0x26ed2c;};'use strict';var _=require(_0x9ea9('0x0'));var util=require(_0x9ea9('0x1'));var moment=require(_0x9ea9('0x2'));var BPromise=require(_0x9ea9('0x3'));var rs=require(_0x9ea9('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9ea9('0x5'))['db'];var utils=require(_0x9ea9('0x6'));var logger=require(_0x9ea9('0x7'))(_0x9ea9('0x8'));var config=require(_0x9ea9('0x9'));var jayson=require(_0x9ea9('0xa'));var client=jayson[_0x9ea9('0xb')][_0x9ea9('0xc')]({'port':0x232c});config[_0x9ea9('0xd')]=_[_0x9ea9('0xe')](config[_0x9ea9('0xd')],{'host':_0x9ea9('0xf'),'port':0x18eb});var socket=require(_0x9ea9('0x10'))(new Redis(config[_0x9ea9('0xd')]));require(_0x9ea9('0x11'))[_0x9ea9('0x12')](socket);function respondWithRpcPromise(_0x31a022,_0x49d60d,_0x40482e){return new BPromise(function(_0x89100b,_0x499841){return client[_0x9ea9('0x13')](_0x31a022,_0x40482e)['then'](function(_0x21d836){logger['info']('MailAccount,\x20%s,\x20%s',_0x49d60d,_0x9ea9('0x14'));logger[_0x9ea9('0x15')](_0x9ea9('0x16'),_0x49d60d,_0x9ea9('0x14'),JSON[_0x9ea9('0x17')](_0x21d836));if(_0x21d836[_0x9ea9('0x18')]){if(_0x21d836[_0x9ea9('0x18')]['code']===0x1f4){logger[_0x9ea9('0x18')]('MailAccount,\x20%s,\x20%s',_0x49d60d,_0x21d836[_0x9ea9('0x18')][_0x9ea9('0x19')]);return _0x499841(_0x21d836[_0x9ea9('0x18')][_0x9ea9('0x19')]);}logger[_0x9ea9('0x18')](_0x9ea9('0x1a'),_0x49d60d,_0x21d836[_0x9ea9('0x18')][_0x9ea9('0x19')]);return _0x89100b(_0x21d836[_0x9ea9('0x18')][_0x9ea9('0x19')]);}else{logger[_0x9ea9('0x1b')](_0x9ea9('0x1a'),_0x49d60d,'request\x20sent');_0x89100b(_0x21d836['result'][_0x9ea9('0x19')]);}})[_0x9ea9('0x1c')](function(_0x4cc6f6){logger[_0x9ea9('0x18')](_0x9ea9('0x1a'),_0x49d60d,_0x4cc6f6);_0x499841(_0x4cc6f6);});});}exports[_0x9ea9('0x1d')]=function(_0x3a3128){var _0x41b734=this;return new Promise(function(_0x3b03c2,_0x50a8ec){return db[_0x9ea9('0x1e')][_0x9ea9('0x1f')]({'raw':_0x3a3128[_0x9ea9('0x20')]?_0x3a3128[_0x9ea9('0x20')][_0x9ea9('0x21')]===undefined?!![]:![]:!![],'where':_0x3a3128[_0x9ea9('0x20')]?_0x3a3128[_0x9ea9('0x20')]['where']||null:null,'attributes':_0x3a3128[_0x9ea9('0x20')]?_0x3a3128['options']['attributes']||null:null,'limit':_0x3a3128['options']?_0x3a3128[_0x9ea9('0x20')]['limit']||null:null,'include':_0x3a3128[_0x9ea9('0x20')]?_0x3a3128['options']['include']?_['map'](_0x3a3128[_0x9ea9('0x20')][_0x9ea9('0x22')],function(_0x30fd54){return{'model':db[_0x30fd54[_0x9ea9('0x23')]],'as':_0x30fd54['as'],'attributes':_0x30fd54[_0x9ea9('0x24')],'include':_0x30fd54[_0x9ea9('0x22')]?_['map'](_0x30fd54[_0x9ea9('0x22')],function(_0x3dccce){return{'model':db[_0x3dccce['model']],'as':_0x3dccce['as'],'attributes':_0x3dccce['attributes'],'include':_0x3dccce['include']?_[_0x9ea9('0x25')](_0x3dccce[_0x9ea9('0x22')],function(_0x4b1ad1){return{'model':db[_0x4b1ad1['model']],'as':_0x4b1ad1['as'],'attributes':_0x4b1ad1[_0x9ea9('0x24')]};}):[]};}):[]};}):[]:[]})[_0x9ea9('0x26')](function(_0x398e25){logger[_0x9ea9('0x1b')](_0x9ea9('0x1d'),_0x3a3128);logger[_0x9ea9('0x15')](_0x9ea9('0x1d'),_0x3a3128,JSON['stringify'](_0x398e25));_0x3b03c2(_0x398e25);})[_0x9ea9('0x1c')](function(_0x2bd1d8){logger[_0x9ea9('0x18')]('GetMailAccount',_0x2bd1d8[_0x9ea9('0x19')],_0x3a3128);_0x50a8ec(_0x41b734[_0x9ea9('0x18')](0x1f4,_0x2bd1d8[_0x9ea9('0x19')]));});});};exports['ShowMailAccount']=function(_0x4bbd92){var _0x20b761=this;return new Promise(function(_0x115f97,_0x2f841e){return db[_0x9ea9('0x1e')][_0x9ea9('0x27')]({'raw':_0x4bbd92[_0x9ea9('0x20')]?_0x4bbd92[_0x9ea9('0x20')][_0x9ea9('0x21')]===undefined?!![]:![]:!![],'where':_0x4bbd92[_0x9ea9('0x20')]?_0x4bbd92[_0x9ea9('0x20')]['where']||null:null,'attributes':_0x4bbd92[_0x9ea9('0x20')]?_0x4bbd92[_0x9ea9('0x20')][_0x9ea9('0x24')]||null:null,'include':_0x4bbd92['options']?_0x4bbd92[_0x9ea9('0x20')][_0x9ea9('0x22')]?_[_0x9ea9('0x25')](_0x4bbd92[_0x9ea9('0x20')]['include'],function(_0x1aa7bb){return{'model':db[_0x1aa7bb[_0x9ea9('0x23')]],'as':_0x1aa7bb['as'],'attributes':_0x1aa7bb['attributes'],'include':_0x1aa7bb[_0x9ea9('0x22')]?_[_0x9ea9('0x25')](_0x1aa7bb[_0x9ea9('0x22')],function(_0x36168f){return{'model':db[_0x36168f[_0x9ea9('0x23')]],'as':_0x36168f['as'],'attributes':_0x36168f[_0x9ea9('0x24')],'include':_0x36168f[_0x9ea9('0x22')]?_['map'](_0x36168f[_0x9ea9('0x22')],function(_0x2525ce){return{'model':db[_0x2525ce[_0x9ea9('0x23')]],'as':_0x2525ce['as'],'attributes':_0x2525ce[_0x9ea9('0x24')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2f8a3e){logger[_0x9ea9('0x1b')](_0x9ea9('0x28'),_0x4bbd92);logger[_0x9ea9('0x15')](_0x9ea9('0x28'),_0x4bbd92,JSON[_0x9ea9('0x17')](_0x2f8a3e));_0x115f97(_0x2f8a3e);})[_0x9ea9('0x1c')](function(_0x44ba40){logger[_0x9ea9('0x18')](_0x9ea9('0x28'),_0x44ba40[_0x9ea9('0x19')],_0x4bbd92);_0x2f841e(_0x20b761[_0x9ea9('0x18')](0x1f4,_0x44ba40[_0x9ea9('0x19')]));});});};exports['NotifyMailAccount']=function(_0x14f6af){var _0x1a08cb=this;return new Promise(function(_0x4ec835,_0x329400){var _0x5ae08a={'body':_0x14f6af[_0x9ea9('0x29')],'channel':_0x9ea9('0x2a')};var _0x2a8610=_[_0x9ea9('0x2b')](_[_0x9ea9('0x2c')](db['CmContact'][_0x9ea9('0x2d')]),['createdAt',_0x9ea9('0x2e'),_0x9ea9('0x2f'),_0x9ea9('0x30')]);var _0x58fe16=![];if(_0x14f6af[_0x9ea9('0x29')]['id']){delete _0x14f6af[_0x9ea9('0x29')]['id'];}if(_[_0x9ea9('0x31')](_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x32')])){return _0x329400(_0x1a08cb[_0x9ea9('0x18')](0x1f4,_0x9ea9('0x33')));}if(_[_0x9ea9('0x31')](_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x29')])||_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x29')]===''){return _0x329400(_0x1a08cb[_0x9ea9('0x18')](0x1f4,_0x9ea9('0x34')));}if(_[_0x9ea9('0x31')](_0x14f6af[_0x9ea9('0x29')]['mapKey'])){return _0x329400(_0x1a08cb[_0x9ea9('0x18')](0x1f4,_0x9ea9('0x35')+_0x2a8610));}if(!_[_0x9ea9('0x36')](_0x2a8610,_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x37')])){return _0x329400(_0x1a08cb[_0x9ea9('0x18')](0x1f4,_0x9ea9('0x38')+_0x2a8610));}var _0x4fd10a={};_0x4fd10a[_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x37')]]=_0x14f6af['body']['from'];return db[_0x9ea9('0x1e')][_0x9ea9('0x27')]({'where':{'id':_0x14f6af[_0x9ea9('0x39')]['id']},'include':[{'model':db[_0x9ea9('0x3a')],'as':_0x9ea9('0x3b'),'include':[{'model':db[_0x9ea9('0x3c')],'as':'Contacts','where':_0x4fd10a,'limit':0x1,'order':[[_0x9ea9('0x2e'),_0x9ea9('0x3d')]]}]},{'model':db[_0x9ea9('0x3e')],'as':_0x9ea9('0x3f')},{'model':db[_0x9ea9('0x40')],'as':'Smtp'}]})[_0x9ea9('0x26')](function(_0x448b60){if(_0x448b60&&_0x448b60[_0x9ea9('0x3b')]){var _0x1a3903=_0x448b60['get']({'plain':!![]});_0x5ae08a[_0x9ea9('0x39')]=_[_0x9ea9('0x41')](_0x1a3903,[_0x9ea9('0x3f'),'List']);_0x5ae08a[_0x9ea9('0x42')]=_0x1a3903[_0x9ea9('0x3f')];_0x5ae08a[_0x9ea9('0x43')]=_0x1a3903[_0x9ea9('0x3b')];_0x5ae08a[_0x9ea9('0x42')]=_[_0x9ea9('0x44')](_0x5ae08a[_0x9ea9('0x42')],[_0x9ea9('0x45')],['asc']);if(_0x5ae08a[_0x9ea9('0x39')]&&_0x5ae08a[_0x9ea9('0x39')][_0x9ea9('0x46')]){_0x5ae08a[_0x9ea9('0x42')][_0x9ea9('0x47')]({'id':0x0,'priority':_0x5ae08a['applications'][_0x9ea9('0x48')]+0x1,'app':_0x9ea9('0x49'),'appdata':_0x9ea9('0x46'),'interval':_0x9ea9('0x4a')});}if(_0x5ae08a[_0x9ea9('0x39')]['Applications']){delete _0x5ae08a[_0x9ea9('0x39')][_0x9ea9('0x3f')];}if(_0x5ae08a[_0x9ea9('0x39')]['List']){delete _0x5ae08a[_0x9ea9('0x39')][_0x9ea9('0x3b')];}if(_0x1a3903['List'][_0x9ea9('0x4b')][_0x9ea9('0x48')]){return _0x1a3903[_0x9ea9('0x3b')][_0x9ea9('0x4b')][0x0];}var _0x13988b=_[_0x9ea9('0xe')](_0x14f6af[_0x9ea9('0x29')],{'firstName':_0x14f6af['body'][_0x9ea9('0x32')],'ListId':_0x1a3903[_0x9ea9('0x30')]});_0x13988b[_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x37')]]=_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x32')];return db[_0x9ea9('0x3c')][_0x9ea9('0x4c')](_0x13988b);}else{throw new Error(_0x9ea9('0x4d'));}})[_0x9ea9('0x26')](function(_0x3c1dc4){_0x5ae08a[_0x9ea9('0x4e')]=_0x3c1dc4;if(_0x3c1dc4){if(!_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')]['messageId']){_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x4f')]=rs[_0x9ea9('0x50')]()+'\x20'+_0x14f6af['body'][_0x9ea9('0x19')][_0x9ea9('0x32')];}var _0x12258c={'ContactId':_0x3c1dc4['id'],'MailAccountId':_0x14f6af[_0x9ea9('0x39')]['id'],'inReplyTo':_0x14f6af[_0x9ea9('0x29')]['message'][_0x9ea9('0x4f')],'to':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x32')],'cc':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')]['cc'],'subject':_0x14f6af[_0x9ea9('0x29')]['message'][_0x9ea9('0x51')],'attach':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x52')],'lastMsgAt':moment()[_0x9ea9('0x53')](_0x9ea9('0x54')),'lastMsgDirection':'in'};return db['MailInteraction'][_0x9ea9('0x27')]({'where':{'closed':![],'MailAccountId':_0x14f6af[_0x9ea9('0x39')]['id']},'include':[{'model':db[_0x9ea9('0x55')],'as':_0x9ea9('0x56'),'attributes':[_0x9ea9('0x4f')],'where':{'messageId':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x57')]}}]})[_0x9ea9('0x26')](function(_0x51a2fb){if(_0x51a2fb){return[_0x51a2fb,![]];}return db['MailInteraction']['create'](_0x12258c)[_0x9ea9('0x26')](function(_0x5f098b){return[_0x5f098b,!![]];});});}else{throw new Error(_0x9ea9('0x58'));}})[_0x9ea9('0x59')](function(_0xf399be,_0xca075c){if(_0xf399be){_0x58fe16=_0xca075c;if(!_0xca075c){return _0xf399be[_0x9ea9('0x5a')]({'inReplyTo':_0x14f6af['body'][_0x9ea9('0x19')][_0x9ea9('0x4f')],'to':_0x14f6af[_0x9ea9('0x29')]['message'][_0x9ea9('0x32')],'cc':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')]['cc'],'subject':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x51')],'attach':_0xf399be[_0x9ea9('0x52')]?_0xf399be[_0x9ea9('0x52')]:_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x52')],'substatus':null,'substatusAt':moment()[_0x9ea9('0x53')](_0x9ea9('0x54')),'lastMsgAt':moment()[_0x9ea9('0x53')](_0x9ea9('0x54')),'lastMsgDirection':'in'});}else{return _0xf399be;}}})['then'](function(_0x5e6b7f){_0x5ae08a[_0x9ea9('0x5b')]=_0x5e6b7f['get']({'plain':!![]});_0x5ae08a['interaction'][_0x9ea9('0x5c')]=_0x58fe16;return db[_0x9ea9('0x55')][_0x9ea9('0x4c')]({'body':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x29')],'MailAccountId':_0x14f6af[_0x9ea9('0x39')]['id'],'MailInteractionId':_0x5e6b7f['id'],'direction':'in','ContactId':_0x5ae08a['contact']['id'],'messageId':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x4f')],'from':_0x14f6af[_0x9ea9('0x29')]['message'][_0x9ea9('0x32')],'to':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')]['to'],'cc':_0x14f6af[_0x9ea9('0x29')]['message']['cc'],'subject':_0x14f6af['body'][_0x9ea9('0x19')][_0x9ea9('0x51')],'attach':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x52')],'Attachments':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x5d')],'originTo':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')]['originTo'],'originCc':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')]['originCc'],'bcc':_0x14f6af[_0x9ea9('0x29')]['message']['bcc'],'ChatWebsiteId':_0x14f6af[_0x9ea9('0x29')][_0x9ea9('0x19')][_0x9ea9('0x5e')]||null,'originChannel':_0x14f6af[_0x9ea9('0x29')]['message']['originChannel']||_0x9ea9('0x5f'),'ChatOfflineMessageId':_0x14f6af['body'][_0x9ea9('0x19')][_0x9ea9('0x60')]||null},{'include':[{'model':db[_0x9ea9('0x61')],'as':_0x9ea9('0x62')}]});})[_0x9ea9('0x26')](function(_0x1bee9d){_0x5ae08a[_0x9ea9('0x19')]=_0x1bee9d;if(_0x5ae08a['interaction'][_0x9ea9('0x63')]){return db[_0x9ea9('0x64')]['find']({'attributes':['id',_0x9ea9('0x65')],'where':{'id':_0x5ae08a['interaction']['UserId']}})[_0x9ea9('0x26')](function(_0x1291e2){if(_0x1291e2){_0x5ae08a[_0x9ea9('0x42')][_0x9ea9('0x66')]({'id':0x0,'priority':0x0,'app':_0x9ea9('0x67'),'appdata':_0x1291e2[_0x9ea9('0x65')]+','+(_0x5ae08a[_0x9ea9('0x39')][_0x9ea9('0x68')]||0xa),'interval':_0x9ea9('0x4a')});}return respondWithRpcPromise(_0x9ea9('0x69'),_0x9ea9('0x6a'),_0x5ae08a);});}return respondWithRpcPromise(_0x9ea9('0x69'),'startRouting',_0x5ae08a);})[_0x9ea9('0x26')](function(_0x328722){_0x4ec835(_0x328722);})[_0x9ea9('0x1c')](function(_0x34b3d1){_0x329400(_0x1a08cb[_0x9ea9('0x18')](0x1f4,_0x34b3d1[_0x9ea9('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13ef=['emit','removeListener','register','length','./mailAccount.events','save','remove','update'];(function(_0x141749,_0x477b04){var _0x3e6932=function(_0x47b3f2){while(--_0x47b3f2){_0x141749['push'](_0x141749['shift']());}};_0x3e6932(++_0x477b04);}(_0x13ef,0x19c));var _0xf13e=function(_0x40a825,_0x3bac79){_0x40a825=_0x40a825-0x0;var _0x273a54=_0x13ef[_0x40a825];return _0x273a54;};'use strict';var MailAccountEvents=require(_0xf13e('0x0'));var events=[_0xf13e('0x1'),_0xf13e('0x2'),_0xf13e('0x3')];function createListener(_0x58d565,_0x4c045d){return function(_0x56899a){_0x4c045d[_0xf13e('0x4')](_0x58d565,_0x56899a);};}function removeListener(_0x5bd42d,_0xdb684e){return function(){MailAccountEvents[_0xf13e('0x5')](_0x5bd42d,_0xdb684e);};}exports[_0xf13e('0x6')]=function(_0x5223c7){for(var _0x897e34=0x0,_0x29ff3d=events[_0xf13e('0x7')];_0x897e34<_0x29ff3d;_0x897e34++){var _0x58e5de=events[_0x897e34];var _0x19a3dd=createListener('mailAccount:'+_0x58e5de,_0x5223c7);MailAccountEvents['on'](_0x58e5de,_0x19a3dd);}};
\ No newline at end of file
+var _0xcdd6=['emit','removeListener','length','./mailAccount.events','save','update'];(function(_0x4a3d99,_0x4b8c4b){var _0x4c78c8=function(_0x5b18e4){while(--_0x5b18e4){_0x4a3d99['push'](_0x4a3d99['shift']());}};_0x4c78c8(++_0x4b8c4b);}(_0xcdd6,0x177));var _0x6cdd=function(_0x70c37,_0x16d0ae){_0x70c37=_0x70c37-0x0;var _0x90c3f7=_0xcdd6[_0x70c37];return _0x90c3f7;};'use strict';var MailAccountEvents=require(_0x6cdd('0x0'));var events=[_0x6cdd('0x1'),'remove',_0x6cdd('0x2')];function createListener(_0x48202e,_0x1dbb41){return function(_0x25c17c){_0x1dbb41[_0x6cdd('0x3')](_0x48202e,_0x25c17c);};}function removeListener(_0x548b5d,_0x4500de){return function(){MailAccountEvents[_0x6cdd('0x4')](_0x548b5d,_0x4500de);};}exports['register']=function(_0x3a1f86){for(var _0x350ad6=0x0,_0x350b6c=events[_0x6cdd('0x5')];_0x350ad6<_0x350b6c;_0x350ad6++){var _0x41ee4e=events[_0x350ad6];var _0x19426c=createListener('mailAccount:'+_0x41ee4e,_0x3a1f86);MailAccountEvents['on'](_0x41ee4e,_0x19426c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x74ff=['../../config/environment','./mailApplication.controller','/:id','isAuthenticated','show','put','update','delete','destroy','exports','util','path','Router','fs-extra','../../components/interaction/service'];(function(_0x389318,_0x13a53d){var _0x7919e3=function(_0x2985d1){while(--_0x2985d1){_0x389318['push'](_0x389318['shift']());}};_0x7919e3(++_0x13a53d);}(_0x74ff,0x1bd));var _0xf74f=function(_0x412692,_0x5b1286){_0x412692=_0x412692-0x0;var _0xe98e2e=_0x74ff[_0x412692];return _0xe98e2e;};'use strict';var multer=require('multer');var util=require(_0xf74f('0x0'));var path=require(_0xf74f('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xf74f('0x2')]();var fs_extra=require(_0xf74f('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xf74f('0x4'));var config=require(_0xf74f('0x5'));var controller=require(_0xf74f('0x6'));router['get'](_0xf74f('0x7'),auth[_0xf74f('0x8')](),controller[_0xf74f('0x9')]);router[_0xf74f('0xa')](_0xf74f('0x7'),auth[_0xf74f('0x8')](),controller[_0xf74f('0xb')]);router[_0xf74f('0xc')](_0xf74f('0x7'),auth['isAuthenticated'](),controller[_0xf74f('0xd')]);module[_0xf74f('0xe')]=router;
\ No newline at end of file
+var _0x079a=['delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailApplication.controller','get','/:id','isAuthenticated'];(function(_0x8c3c9e,_0x5669c0){var _0x3ab3ec=function(_0x49b629){while(--_0x49b629){_0x8c3c9e['push'](_0x8c3c9e['shift']());}};_0x3ab3ec(++_0x5669c0);}(_0x079a,0x16e));var _0xa079=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0x079a[_0x4e676e];return _0x336a3c;};'use strict';var multer=require('multer');var util=require(_0xa079('0x0'));var path=require(_0xa079('0x1'));var timeout=require(_0xa079('0x2'));var express=require(_0xa079('0x3'));var router=express[_0xa079('0x4')]();var fs_extra=require(_0xa079('0x5'));var auth=require(_0xa079('0x6'));var interaction=require(_0xa079('0x7'));var config=require('../../config/environment');var controller=require(_0xa079('0x8'));router[_0xa079('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router['put'](_0xa079('0xa'),auth[_0xa079('0xb')](),controller['update']);router[_0xa079('0xc')](_0xa079('0xa'),auth[_0xa079('0xb')](),controller[_0xa079('0xd')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb581=['sequelize','INTEGER','STRING','noop','*,*,*,*'];(function(_0x581af1,_0x4f02c5){var _0x54c22e=function(_0x5a7a5a){while(--_0x5a7a5a){_0x581af1['push'](_0x581af1['shift']());}};_0x54c22e(++_0x4f02c5);}(_0xb581,0x7d));var _0x1b58=function(_0x254b10,_0x161b6d){_0x254b10=_0x254b10-0x0;var _0x36e4f7=_0xb581[_0x254b10];return _0x36e4f7;};'use strict';var Sequelize=require(_0x1b58('0x0'));module['exports']={'priority':{'type':Sequelize[_0x1b58('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x1b58('0x2')],'allowNull':![],'defaultValue':_0x1b58('0x3')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0x1b58('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x1b58('0x4')}};
\ No newline at end of file
+var _0xbfc8=['*,*,*,*','sequelize','exports','INTEGER','noop','TEXT','STRING'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0xbfc8,0x86));var _0x8bfc=function(_0x1f9f03,_0x4077ea){_0x1f9f03=_0x1f9f03-0x0;var _0x4855d8=_0xbfc8[_0x1f9f03];return _0x4855d8;};'use strict';var Sequelize=require(_0x8bfc('0x0'));module[_0x8bfc('0x1')]={'priority':{'type':Sequelize[_0x8bfc('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x8bfc('0x3')},'appdata':{'type':Sequelize[_0x8bfc('0x4')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x8bfc('0x5')],'defaultValue':_0x8bfc('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9bde=['../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','then','destroy','error','name','send','show','model','keys','MailApplication','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','find','catch','update','body','params','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment'];(function(_0x864cdf,_0x37682b){var _0x196fb6=function(_0x71c0ae){while(--_0x71c0ae){_0x864cdf['push'](_0x864cdf['shift']());}};_0x196fb6(++_0x37682b);}(_0x9bde,0xe1));var _0xe9bd=function(_0x26f55f,_0x289f3b){_0x26f55f=_0x26f55f-0x0;var _0x11f351=_0x9bde[_0x26f55f];return _0x11f351;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe9bd('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe9bd('0x1'));var rp=require('request-promise');var moment=require(_0xe9bd('0x2'));var BPromise=require(_0xe9bd('0x3'));var Mustache=require(_0xe9bd('0x4'));var util=require(_0xe9bd('0x5'));var path=require(_0xe9bd('0x6'));var sox=require(_0xe9bd('0x7'));var csv=require(_0xe9bd('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe9bd('0x9'));var _=require(_0xe9bd('0xa'));var squel=require(_0xe9bd('0xb'));var crypto=require(_0xe9bd('0xc'));var jsforce=require(_0xe9bd('0xd'));var deskjs=require(_0xe9bd('0xe'));var toCsv=require(_0xe9bd('0x8'));var querystring=require(_0xe9bd('0xf'));var Papa=require(_0xe9bd('0x10'));var Redis=require(_0xe9bd('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe9bd('0x12'));var hardwareService=require(_0xe9bd('0x13'));var logger=require(_0xe9bd('0x14'))('api');var utils=require(_0xe9bd('0x15'));var config=require(_0xe9bd('0x16'));var licenseUtil=require(_0xe9bd('0x17'));var db=require(_0xe9bd('0x18'))['db'];function respondWithStatusCode(_0x5e022a,_0x2c1d98){_0x2c1d98=_0x2c1d98||0xcc;return function(_0x4ac319){if(_0x4ac319){return _0x5e022a[_0xe9bd('0x19')](_0x2c1d98);}return _0x5e022a[_0xe9bd('0x1a')](_0x2c1d98)[_0xe9bd('0x1b')]();};}function respondWithResult(_0x51109f,_0x47ba5e){_0x47ba5e=_0x47ba5e||0xc8;return function(_0x46a95e){if(_0x46a95e){return _0x51109f[_0xe9bd('0x1a')](_0x47ba5e)[_0xe9bd('0x1c')](_0x46a95e);}};}function respondWithFilteredResult(_0x46a59b,_0x3360bd){return function(_0x389e7b){if(_0x389e7b){var _0x45a9f2=typeof _0x3360bd['offset']===_0xe9bd('0x1d')&&typeof _0x3360bd[_0xe9bd('0x1e')]===_0xe9bd('0x1d');var _0x494b27=_0x389e7b[_0xe9bd('0x1f')];var _0x3bae08=_0x45a9f2?0x0:_0x3360bd[_0xe9bd('0x20')];var _0x330733=_0x45a9f2?_0x389e7b['count']:_0x3360bd[_0xe9bd('0x20')]+_0x3360bd['limit'];var _0xc6b661;if(_0x330733>=_0x494b27){_0x330733=_0x494b27;_0xc6b661=0xc8;}else{_0xc6b661=0xce;}_0x46a59b['status'](_0xc6b661);return _0x46a59b[_0xe9bd('0x21')](_0xe9bd('0x22'),_0x3bae08+'-'+_0x330733+'/'+_0x494b27)[_0xe9bd('0x1c')](_0x389e7b);}return null;};}function patchUpdates(_0x3dda13){return function(_0x1acb82){try{jsonpatch[_0xe9bd('0x23')](_0x1acb82,_0x3dda13,!![]);}catch(_0x6593ce){return BPromise['reject'](_0x6593ce);}return _0x1acb82[_0xe9bd('0x24')]();};}function saveUpdates(_0x28cd17,_0x4ecaf5){return function(_0x37aec1){if(_0x37aec1){return _0x37aec1['update'](_0x28cd17)[_0xe9bd('0x25')](function(_0x1b9cc9){return _0x1b9cc9;});}return null;};}function removeEntity(_0x36f8c0,_0xf02209){return function(_0x5bc4bf){if(_0x5bc4bf){return _0x5bc4bf[_0xe9bd('0x26')]()[_0xe9bd('0x25')](function(){_0x36f8c0[_0xe9bd('0x1a')](0xcc)[_0xe9bd('0x1b')]();});}};}function handleEntityNotFound(_0x2641be,_0xb52d45){return function(_0x399f3c){if(!_0x399f3c){_0x2641be[_0xe9bd('0x19')](0x194);}return _0x399f3c;};}function handleError(_0x1ae889,_0x5987af){_0x5987af=_0x5987af||0x1f4;return function(_0x3c211a){logger[_0xe9bd('0x27')](_0x3c211a['stack']);if(_0x3c211a[_0xe9bd('0x28')]){delete _0x3c211a[_0xe9bd('0x28')];}_0x1ae889[_0xe9bd('0x1a')](_0x5987af)[_0xe9bd('0x29')](_0x3c211a);};}exports[_0xe9bd('0x2a')]=function(_0x183601,_0x519f48){var _0x5b7f1d={'raw':!![],'where':{'id':_0x183601['params']['id']}},_0x1de54c={};_0x1de54c[_0xe9bd('0x2b')]=_[_0xe9bd('0x2c')](db[_0xe9bd('0x2d')][_0xe9bd('0x2e')]);_0x1de54c[_0xe9bd('0x2f')]=_['keys'](_0x183601['query']);_0x1de54c[_0xe9bd('0x30')]=_[_0xe9bd('0x31')](_0x1de54c[_0xe9bd('0x2b')],_0x1de54c[_0xe9bd('0x2f')]);_0x5b7f1d[_0xe9bd('0x32')]=_[_0xe9bd('0x31')](_0x1de54c[_0xe9bd('0x2b')],qs[_0xe9bd('0x33')](_0x183601[_0xe9bd('0x2f')]['fields']));_0x5b7f1d[_0xe9bd('0x32')]=_0x5b7f1d[_0xe9bd('0x32')][_0xe9bd('0x34')]?_0x5b7f1d['attributes']:_0x1de54c['model'];if(_0x183601[_0xe9bd('0x2f')][_0xe9bd('0x35')]){_0x5b7f1d[_0xe9bd('0x36')]=[{'all':!![]}];}_0x5b7f1d=_[_0xe9bd('0x37')]({},_0x5b7f1d,_0x183601[_0xe9bd('0x38')]);return db[_0xe9bd('0x2d')][_0xe9bd('0x39')](_0x5b7f1d)[_0xe9bd('0x25')](handleEntityNotFound(_0x519f48,null))[_0xe9bd('0x25')](respondWithResult(_0x519f48,null))[_0xe9bd('0x3a')](handleError(_0x519f48,null));};exports[_0xe9bd('0x3b')]=function(_0x549dd1,_0x2ad46e){if(_0x549dd1[_0xe9bd('0x3c')]['id']){delete _0x549dd1[_0xe9bd('0x3c')]['id'];}return db[_0xe9bd('0x2d')][_0xe9bd('0x39')]({'where':{'id':_0x549dd1[_0xe9bd('0x3d')]['id']}})['then'](handleEntityNotFound(_0x2ad46e,null))[_0xe9bd('0x25')](saveUpdates(_0x549dd1[_0xe9bd('0x3c')],null))['then'](respondWithResult(_0x2ad46e,null))[_0xe9bd('0x3a')](handleError(_0x2ad46e,null));};exports[_0xe9bd('0x26')]=function(_0x4c7d47,_0x4b1da0){return db[_0xe9bd('0x2d')][_0xe9bd('0x39')]({'where':{'id':_0x4c7d47['params']['id']}})[_0xe9bd('0x25')](handleEntityNotFound(_0x4b1da0,null))[_0xe9bd('0x25')](removeEntity(_0x4b1da0,null))[_0xe9bd('0x3a')](handleError(_0x4b1da0,null));};
\ No newline at end of file
+var _0xcb91=['send','show','params','keys','rawAttributes','query','intersection','attributes','fields','length','model','includeAll','include','merge','options','MailApplication','find','catch','body','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','error','stack','name'];(function(_0x269358,_0x49a73e){var _0x585b7e=function(_0x136225){while(--_0x136225){_0x269358['push'](_0x269358['shift']());}};_0x585b7e(++_0x49a73e);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x44fef1,_0x132cf4){_0x44fef1=_0x44fef1-0x0;var _0x3c3a04=_0xcb91[_0x44fef1];return _0x3c3a04;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1cb9('0x0'));var jsonpatch=require(_0x1cb9('0x1'));var rp=require(_0x1cb9('0x2'));var moment=require(_0x1cb9('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x1cb9('0x4'));var util=require(_0x1cb9('0x5'));var path=require('path');var sox=require(_0x1cb9('0x6'));var csv=require(_0x1cb9('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1cb9('0x8'));var _=require(_0x1cb9('0x9'));var squel=require('squel');var crypto=require(_0x1cb9('0xa'));var jsforce=require(_0x1cb9('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x1cb9('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1cb9('0xc'));var authService=require(_0x1cb9('0xd'));var qs=require(_0x1cb9('0xe'));var as=require(_0x1cb9('0xf'));var hardwareService=require(_0x1cb9('0x10'));var logger=require('../../config/logger')(_0x1cb9('0x11'));var utils=require(_0x1cb9('0x12'));var config=require(_0x1cb9('0x13'));var licenseUtil=require(_0x1cb9('0x14'));var db=require(_0x1cb9('0x15'))['db'];function respondWithStatusCode(_0x5445e1,_0x5e3c19){_0x5e3c19=_0x5e3c19||0xcc;return function(_0x59dec3){if(_0x59dec3){return _0x5445e1[_0x1cb9('0x16')](_0x5e3c19);}return _0x5445e1[_0x1cb9('0x17')](_0x5e3c19)[_0x1cb9('0x18')]();};}function respondWithResult(_0x1c714f,_0x56884d){_0x56884d=_0x56884d||0xc8;return function(_0x397727){if(_0x397727){return _0x1c714f[_0x1cb9('0x17')](_0x56884d)[_0x1cb9('0x19')](_0x397727);}};}function respondWithFilteredResult(_0x8dfa55,_0x3e2d11){return function(_0x5806d8){if(_0x5806d8){var _0x5572cb=typeof _0x3e2d11[_0x1cb9('0x1a')]===_0x1cb9('0x1b')&&typeof _0x3e2d11[_0x1cb9('0x1c')]===_0x1cb9('0x1b');var _0x3e21e0=_0x5806d8[_0x1cb9('0x1d')];var _0x23d3a9=_0x5572cb?0x0:_0x3e2d11['offset'];var _0x479d43=_0x5572cb?_0x5806d8[_0x1cb9('0x1d')]:_0x3e2d11[_0x1cb9('0x1a')]+_0x3e2d11[_0x1cb9('0x1c')];var _0x31481a;if(_0x479d43>=_0x3e21e0){_0x479d43=_0x3e21e0;_0x31481a=0xc8;}else{_0x31481a=0xce;}_0x8dfa55[_0x1cb9('0x17')](_0x31481a);return _0x8dfa55[_0x1cb9('0x1e')](_0x1cb9('0x1f'),_0x23d3a9+'-'+_0x479d43+'/'+_0x3e21e0)['json'](_0x5806d8);}return null;};}function patchUpdates(_0x559bcc){return function(_0x1a5a72){try{jsonpatch['apply'](_0x1a5a72,_0x559bcc,!![]);}catch(_0x4750b1){return BPromise[_0x1cb9('0x20')](_0x4750b1);}return _0x1a5a72['save']();};}function saveUpdates(_0x599275,_0x2e3854){return function(_0x325637){if(_0x325637){return _0x325637[_0x1cb9('0x21')](_0x599275)[_0x1cb9('0x22')](function(_0x45b8d3){return _0x45b8d3;});}return null;};}function removeEntity(_0x27db16,_0x59ebea){return function(_0x55b232){if(_0x55b232){return _0x55b232[_0x1cb9('0x23')]()['then'](function(){_0x27db16[_0x1cb9('0x17')](0xcc)[_0x1cb9('0x18')]();});}};}function handleEntityNotFound(_0x69b4c8,_0x44d3c4){return function(_0x43a100){if(!_0x43a100){_0x69b4c8['sendStatus'](0x194);}return _0x43a100;};}function handleError(_0x195f16,_0x9df250){_0x9df250=_0x9df250||0x1f4;return function(_0x4c8d76){logger[_0x1cb9('0x24')](_0x4c8d76[_0x1cb9('0x25')]);if(_0x4c8d76[_0x1cb9('0x26')]){delete _0x4c8d76[_0x1cb9('0x26')];}_0x195f16[_0x1cb9('0x17')](_0x9df250)[_0x1cb9('0x27')](_0x4c8d76);};}exports[_0x1cb9('0x28')]=function(_0xb644b3,_0x41e5c2){var _0x9de64b={'raw':!![],'where':{'id':_0xb644b3[_0x1cb9('0x29')]['id']}},_0x48888d={};_0x48888d['model']=_[_0x1cb9('0x2a')](db['MailApplication'][_0x1cb9('0x2b')]);_0x48888d[_0x1cb9('0x2c')]=_[_0x1cb9('0x2a')](_0xb644b3[_0x1cb9('0x2c')]);_0x48888d['filters']=_[_0x1cb9('0x2d')](_0x48888d['model'],_0x48888d[_0x1cb9('0x2c')]);_0x9de64b[_0x1cb9('0x2e')]=_[_0x1cb9('0x2d')](_0x48888d['model'],qs[_0x1cb9('0x2f')](_0xb644b3['query'][_0x1cb9('0x2f')]));_0x9de64b['attributes']=_0x9de64b[_0x1cb9('0x2e')][_0x1cb9('0x30')]?_0x9de64b[_0x1cb9('0x2e')]:_0x48888d[_0x1cb9('0x31')];if(_0xb644b3['query'][_0x1cb9('0x32')]){_0x9de64b[_0x1cb9('0x33')]=[{'all':!![]}];}_0x9de64b=_[_0x1cb9('0x34')]({},_0x9de64b,_0xb644b3[_0x1cb9('0x35')]);return db[_0x1cb9('0x36')][_0x1cb9('0x37')](_0x9de64b)[_0x1cb9('0x22')](handleEntityNotFound(_0x41e5c2,null))[_0x1cb9('0x22')](respondWithResult(_0x41e5c2,null))[_0x1cb9('0x38')](handleError(_0x41e5c2,null));};exports[_0x1cb9('0x21')]=function(_0x294eec,_0x26b950){if(_0x294eec[_0x1cb9('0x39')]['id']){delete _0x294eec['body']['id'];}return db['MailApplication'][_0x1cb9('0x37')]({'where':{'id':_0x294eec[_0x1cb9('0x29')]['id']}})[_0x1cb9('0x22')](handleEntityNotFound(_0x26b950,null))[_0x1cb9('0x22')](saveUpdates(_0x294eec[_0x1cb9('0x39')],null))[_0x1cb9('0x22')](respondWithResult(_0x26b950,null))[_0x1cb9('0x38')](handleError(_0x26b950,null));};exports[_0x1cb9('0x23')]=function(_0x4d3e39,_0x2aa59b){return db[_0x1cb9('0x36')][_0x1cb9('0x37')]({'where':{'id':_0x4d3e39['params']['id']}})[_0x1cb9('0x22')](handleEntityNotFound(_0x2aa59b,null))['then'](removeEntity(_0x2aa59b,null))[_0x1cb9('0x38')](handleError(_0x2aa59b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2981=['request-promise','rimraf','../../config/environment','exports','define','MailApplication','utf8mb4_unicode_ci','util','../../config/logger','moment','bluebird'];(function(_0x2854d7,_0x495328){var _0x184aba=function(_0x4a63e7){while(--_0x4a63e7){_0x2854d7['push'](_0x2854d7['shift']());}};_0x184aba(++_0x495328);}(_0x2981,0x1bf));var _0x1298=function(_0x134324,_0x4d3d78){_0x134324=_0x134324-0x0;var _0x450c00=_0x2981[_0x134324];return _0x450c00;};'use strict';var _=require('lodash');var util=require(_0x1298('0x0'));var logger=require(_0x1298('0x1'))('api');var moment=require(_0x1298('0x2'));var BPromise=require(_0x1298('0x3'));var rp=require(_0x1298('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1298('0x5'));var config=require(_0x1298('0x6'));var attributes=require('./mailApplication.attributes');module[_0x1298('0x7')]=function(_0x20af96,_0x4115f2){return _0x20af96[_0x1298('0x8')](_0x1298('0x9'),attributes,{'tableName':'mail_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x1298('0xa')});};
\ No newline at end of file
+var _0xbdc7=['bluebird','request-promise','rimraf','../../config/environment','./mailApplication.attributes','exports','define','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment'];(function(_0xd0b415,_0x149675){var _0x2bdf2c=function(_0x59fbfa){while(--_0x59fbfa){_0xd0b415['push'](_0xd0b415['shift']());}};_0x2bdf2c(++_0x149675);}(_0xbdc7,0x18f));var _0x7bdc=function(_0x30969e,_0x13e167){_0x30969e=_0x30969e-0x0;var _0x1ede28=_0xbdc7[_0x30969e];return _0x1ede28;};'use strict';var _=require(_0x7bdc('0x0'));var util=require(_0x7bdc('0x1'));var logger=require(_0x7bdc('0x2'))('api');var moment=require(_0x7bdc('0x3'));var BPromise=require(_0x7bdc('0x4'));var rp=require(_0x7bdc('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7bdc('0x6'));var config=require(_0x7bdc('0x7'));var attributes=require(_0x7bdc('0x8'));module[_0x7bdc('0x9')]=function(_0x2feb4f,_0x549d23){return _0x2feb4f[_0x7bdc('0xa')]('MailApplication',attributes,{'tableName':'mail_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x7bdc('0xb'),'collate':_0x7bdc('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff6e=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','info','MailApplication,\x20%s,\x20%s','debug','MailApplication,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','UpdateMailApplication','MailApplication','body','options','raw','where','attributes','limit','then','stringify','catch','util','moment','randomstring','ioredis','../../mysqldb'];(function(_0x44a4e1,_0x416b89){var _0x244e48=function(_0x3401f5){while(--_0x3401f5){_0x44a4e1['push'](_0x44a4e1['shift']());}};_0x244e48(++_0x416b89);}(_0xff6e,0x131));var _0xeff6=function(_0x19159a,_0x1cb5c3){_0x19159a=_0x19159a-0x0;var _0xa677f4=_0xff6e[_0x19159a];return _0xa677f4;};'use strict';var _=require('lodash');var util=require(_0xeff6('0x0'));var moment=require(_0xeff6('0x1'));var BPromise=require('bluebird');var rs=require(_0xeff6('0x2'));var fs=require('fs');var Redis=require(_0xeff6('0x3'));var db=require(_0xeff6('0x4'))['db'];var utils=require(_0xeff6('0x5'));var logger=require(_0xeff6('0x6'))(_0xeff6('0x7'));var config=require(_0xeff6('0x8'));var jayson=require(_0xeff6('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3cc318,_0x240d36,_0x3e2a78){return new BPromise(function(_0x652051,_0x1152b0){return client[_0xeff6('0xa')](_0x3cc318,_0x3e2a78)['then'](function(_0x1d8484){logger[_0xeff6('0xb')](_0xeff6('0xc'),_0x240d36,'request\x20sent');logger[_0xeff6('0xd')](_0xeff6('0xe'),_0x240d36,_0xeff6('0xf'),JSON['stringify'](_0x1d8484));if(_0x1d8484['error']){if(_0x1d8484[_0xeff6('0x10')][_0xeff6('0x11')]===0x1f4){logger['error'](_0xeff6('0xc'),_0x240d36,_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);return _0x1152b0(_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);}logger[_0xeff6('0x10')](_0xeff6('0xc'),_0x240d36,_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);return _0x652051(_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);}else{logger[_0xeff6('0xb')](_0xeff6('0xc'),_0x240d36,_0xeff6('0xf'));_0x652051(_0x1d8484[_0xeff6('0x13')]['message']);}})['catch'](function(_0x300ac5){logger[_0xeff6('0x10')](_0xeff6('0xc'),_0x240d36,_0x300ac5);_0x1152b0(_0x300ac5);});});}exports[_0xeff6('0x14')]=function(_0x48c548){var _0x1cf4f2=this;return new Promise(function(_0x2a2020,_0x1ab0ad){return db[_0xeff6('0x15')]['update'](_0x48c548[_0xeff6('0x16')],{'raw':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x19')]||null:null,'attributes':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x1a')]||null:null,'limit':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x1b')]||null:null})[_0xeff6('0x1c')](function(_0xb74526){logger[_0xeff6('0xb')](_0xeff6('0x14'),_0x48c548);logger[_0xeff6('0xd')](_0xeff6('0x14'),_0x48c548,JSON[_0xeff6('0x1d')](_0xb74526));_0x2a2020(_0xb74526);})[_0xeff6('0x1e')](function(_0x3b9554){logger[_0xeff6('0x10')](_0xeff6('0x14'),_0x3b9554[_0xeff6('0x12')],_0x48c548);_0x1ab0ad(_0x1cf4f2[_0xeff6('0x10')](0x1f4,_0x3b9554[_0xeff6('0x12')]));});});};
\ No newline at end of file
+var _0xe3ed=['../../config/environment','client','http','request','then','info','MailApplication,\x20%s,\x20%s','request\x20sent','debug','MailApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateMailApplication','update','body','options','attributes','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x4da64f,_0x27d4de){var _0x23c0e6=function(_0x4d0f74){while(--_0x4d0f74){_0x4da64f['push'](_0x4da64f['shift']());}};_0x23c0e6(++_0x27d4de);}(_0xe3ed,0x1d5));var _0xde3e=function(_0x5dbfec,_0x2e5444){_0x5dbfec=_0x5dbfec-0x0;var _0xa8f1a6=_0xe3ed[_0x5dbfec];return _0xa8f1a6;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xde3e('0x0'));var BPromise=require(_0xde3e('0x1'));var rs=require(_0xde3e('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xde3e('0x3'))['db'];var utils=require(_0xde3e('0x4'));var logger=require(_0xde3e('0x5'))(_0xde3e('0x6'));var config=require(_0xde3e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xde3e('0x8')][_0xde3e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3a2cc5,_0x5c9114,_0x2d956c){return new BPromise(function(_0x4f906b,_0x279509){return client[_0xde3e('0xa')](_0x3a2cc5,_0x2d956c)[_0xde3e('0xb')](function(_0x35f514){logger[_0xde3e('0xc')](_0xde3e('0xd'),_0x5c9114,_0xde3e('0xe'));logger[_0xde3e('0xf')](_0xde3e('0x10'),_0x5c9114,_0xde3e('0xe'),JSON[_0xde3e('0x11')](_0x35f514));if(_0x35f514['error']){if(_0x35f514[_0xde3e('0x12')][_0xde3e('0x13')]===0x1f4){logger['error']('MailApplication,\x20%s,\x20%s',_0x5c9114,_0x35f514[_0xde3e('0x12')]['message']);return _0x279509(_0x35f514[_0xde3e('0x12')][_0xde3e('0x14')]);}logger[_0xde3e('0x12')]('MailApplication,\x20%s,\x20%s',_0x5c9114,_0x35f514[_0xde3e('0x12')]['message']);return _0x4f906b(_0x35f514[_0xde3e('0x12')][_0xde3e('0x14')]);}else{logger[_0xde3e('0xc')]('MailApplication,\x20%s,\x20%s',_0x5c9114,_0xde3e('0xe'));_0x4f906b(_0x35f514[_0xde3e('0x15')][_0xde3e('0x14')]);}})[_0xde3e('0x16')](function(_0x348661){logger[_0xde3e('0x12')]('MailApplication,\x20%s,\x20%s',_0x5c9114,_0x348661);_0x279509(_0x348661);});});}exports[_0xde3e('0x17')]=function(_0x5b2a72){var _0x940393=this;return new Promise(function(_0x5a92fa,_0x43ca72){return db['MailApplication'][_0xde3e('0x18')](_0x5b2a72[_0xde3e('0x19')],{'raw':_0x5b2a72[_0xde3e('0x1a')]?_0x5b2a72[_0xde3e('0x1a')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5b2a72[_0xde3e('0x1a')]?_0x5b2a72[_0xde3e('0x1a')]['where']||null:null,'attributes':_0x5b2a72[_0xde3e('0x1a')]?_0x5b2a72[_0xde3e('0x1a')][_0xde3e('0x1b')]||null:null,'limit':_0x5b2a72['options']?_0x5b2a72['options']['limit']||null:null})[_0xde3e('0xb')](function(_0x3b67f1){logger[_0xde3e('0xc')](_0xde3e('0x17'),_0x5b2a72);logger[_0xde3e('0xf')]('UpdateMailApplication',_0x5b2a72,JSON[_0xde3e('0x11')](_0x3b67f1));_0x5a92fa(_0x3b67f1);})[_0xde3e('0x16')](function(_0x38d494){logger[_0xde3e('0x12')](_0xde3e('0x17'),_0x38d494['message'],_0x5b2a72);_0x43ca72(_0x940393[_0xde3e('0x12')](0x1f4,_0x38d494[_0xde3e('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a79=['Router','../../components/auth/service','../../components/interaction/service','get','index','/describe','isAuthenticated','/:id','show','/:id/messages','/:id/download','post','create','addMessage','/:id/tags','tracked','mailinteraction:addtags','addTags','put','mailinteraction:update','update','mailinteraction:destroy','destroy','delete','exports','express'];(function(_0x1a6d6c,_0x1c222a){var _0x22aa5c=function(_0x385c86){while(--_0x385c86){_0x1a6d6c['push'](_0x1a6d6c['shift']());}};_0x22aa5c(++_0x1c222a);}(_0x5a79,0x103));var _0x95a7=function(_0x4132d1,_0x41fbbd){_0x4132d1=_0x4132d1-0x0;var _0x27d9cb=_0x5a79[_0x4132d1];return _0x27d9cb;};'use strict';var express=require(_0x95a7('0x0'));var router=express[_0x95a7('0x1')]();var auth=require(_0x95a7('0x2'));var interaction=require(_0x95a7('0x3'));var controller=require('./mailInteraction.controller');router[_0x95a7('0x4')]('/',auth['isAuthenticated'](),controller[_0x95a7('0x5')]);router[_0x95a7('0x4')](_0x95a7('0x6'),auth[_0x95a7('0x7')](),controller['describe']);router['get'](_0x95a7('0x8'),auth[_0x95a7('0x7')](),controller[_0x95a7('0x9')]);router[_0x95a7('0x4')](_0x95a7('0xa'),auth[_0x95a7('0x7')](),controller['getMessages']);router[_0x95a7('0x4')](_0x95a7('0xb'),auth[_0x95a7('0x7')](),controller['download']);router[_0x95a7('0xc')]('/',auth[_0x95a7('0x7')](),controller[_0x95a7('0xd')]);router['post'](_0x95a7('0xa'),auth[_0x95a7('0x7')](),controller[_0x95a7('0xe')]);router[_0x95a7('0xc')](_0x95a7('0xf'),auth[_0x95a7('0x7')](),interaction[_0x95a7('0x10')]('mail',_0x95a7('0x11')),controller[_0x95a7('0x12')]);router[_0x95a7('0x13')](_0x95a7('0x8'),auth[_0x95a7('0x7')](),interaction[_0x95a7('0x10')]('mail',_0x95a7('0x14')),controller[_0x95a7('0x15')]);router['delete'](_0x95a7('0x8'),auth[_0x95a7('0x7')](),interaction[_0x95a7('0x10')]('mail',_0x95a7('0x16')),controller[_0x95a7('0x17')]);router[_0x95a7('0x18')](_0x95a7('0xf'),auth[_0x95a7('0x7')](),controller['removeTags']);module[_0x95a7('0x19')]=router;
\ No newline at end of file
+var _0x711f=['show','/:id/messages','/:id/download','download','post','create','addMessage','/:id/tags','tracked','mail','mailinteraction:addtags','addTags','put','mailinteraction:update','update','delete','destroy','express','Router','../../components/auth/service','../../components/interaction/service','./mailInteraction.controller','get','index','/describe','describe','/:id','isAuthenticated'];(function(_0x2106ce,_0x449daa){var _0x42c114=function(_0x1fc9bd){while(--_0x1fc9bd){_0x2106ce['push'](_0x2106ce['shift']());}};_0x42c114(++_0x449daa);}(_0x711f,0x145));var _0xf711=function(_0x597207,_0x3244c0){_0x597207=_0x597207-0x0;var _0x1b9743=_0x711f[_0x597207];return _0x1b9743;};'use strict';var express=require(_0xf711('0x0'));var router=express[_0xf711('0x1')]();var auth=require(_0xf711('0x2'));var interaction=require(_0xf711('0x3'));var controller=require(_0xf711('0x4'));router[_0xf711('0x5')]('/',auth['isAuthenticated'](),controller[_0xf711('0x6')]);router['get'](_0xf711('0x7'),auth['isAuthenticated'](),controller[_0xf711('0x8')]);router['get'](_0xf711('0x9'),auth[_0xf711('0xa')](),controller[_0xf711('0xb')]);router[_0xf711('0x5')](_0xf711('0xc'),auth[_0xf711('0xa')](),controller['getMessages']);router[_0xf711('0x5')](_0xf711('0xd'),auth[_0xf711('0xa')](),controller[_0xf711('0xe')]);router[_0xf711('0xf')]('/',auth[_0xf711('0xa')](),controller[_0xf711('0x10')]);router[_0xf711('0xf')](_0xf711('0xc'),auth[_0xf711('0xa')](),controller[_0xf711('0x11')]);router['post'](_0xf711('0x12'),auth['isAuthenticated'](),interaction[_0xf711('0x13')](_0xf711('0x14'),_0xf711('0x15')),controller[_0xf711('0x16')]);router[_0xf711('0x17')](_0xf711('0x9'),auth[_0xf711('0xa')](),interaction[_0xf711('0x13')]('mail',_0xf711('0x18')),controller[_0xf711('0x19')]);router[_0xf711('0x1a')](_0xf711('0x9'),auth[_0xf711('0xa')](),interaction['tracked'](_0xf711('0x14'),'mailinteraction:destroy'),controller[_0xf711('0x1b')]);router[_0xf711('0x1a')](_0xf711('0x12'),auth[_0xf711('0xa')](),controller['removeTags']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc222=['TEXT','long','ENUM','out','sequelize','iconv','exports','BOOLEAN','DATE','STRING'];(function(_0x24bf75,_0x5f4a8c){var _0x31c323=function(_0x1c1b7e){while(--_0x1c1b7e){_0x24bf75['push'](_0x24bf75['shift']());}};_0x31c323(++_0x5f4a8c);}(_0xc222,0x144));var _0x2c22=function(_0x2f874e,_0x1f155d){_0x2f874e=_0x2f874e-0x0;var _0x32bda6=_0xc222[_0x2f874e];return _0x32bda6;};'use strict';var Sequelize=require(_0x2c22('0x0'));var iconv=require(_0x2c22('0x1'));module[_0x2c22('0x2')]={'closed':{'type':Sequelize[_0x2c22('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x2c22('0x4')]},'disposition':{'type':Sequelize[_0x2c22('0x5')]},'secondDisposition':{'type':Sequelize[_0x2c22('0x5')]},'thirdDisposition':{'type':Sequelize[_0x2c22('0x5')]},'note':{'type':Sequelize[_0x2c22('0x5')]},'inReplyTo':{'type':Sequelize[_0x2c22('0x5')](0x1fe)},'to':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0x2c22('0x6')](_0x2c22('0x7'))},'subject':{'type':Sequelize[_0x2c22('0x6')]()},'attach':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'read1stAt':{'type':Sequelize['DATE']},'substatus':{'type':Sequelize[_0x2c22('0x5')](0x3c)},'substatusAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x2c22('0x8')]('in',_0x2c22('0x9')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x2c22('0x4')]},'lastMsgDirection':{'type':Sequelize[_0x2c22('0x8')]('in',_0x2c22('0x9')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x8a3d=['long','ENUM','out','sequelize','iconv','exports','BOOLEAN','DATE','STRING','TEXT'];(function(_0x19e442,_0x13836b){var _0x3669d4=function(_0x40d6bf){while(--_0x40d6bf){_0x19e442['push'](_0x19e442['shift']());}};_0x3669d4(++_0x13836b);}(_0x8a3d,0xd5));var _0xd8a3=function(_0x2ec278,_0x1dd484){_0x2ec278=_0x2ec278-0x0;var _0x59ba0e=_0x8a3d[_0x2ec278];return _0x59ba0e;};'use strict';var Sequelize=require(_0xd8a3('0x0'));var iconv=require(_0xd8a3('0x1'));module[_0xd8a3('0x2')]={'closed':{'type':Sequelize[_0xd8a3('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xd8a3('0x4')]},'disposition':{'type':Sequelize[_0xd8a3('0x5')]},'secondDisposition':{'type':Sequelize[_0xd8a3('0x5')]},'thirdDisposition':{'type':Sequelize[_0xd8a3('0x5')]},'note':{'type':Sequelize['STRING']},'inReplyTo':{'type':Sequelize[_0xd8a3('0x5')](0x1fe)},'to':{'type':Sequelize[_0xd8a3('0x5')]},'cc':{'type':Sequelize[_0xd8a3('0x6')](_0xd8a3('0x7'))},'subject':{'type':Sequelize[_0xd8a3('0x6')]()},'attach':{'type':Sequelize[_0xd8a3('0x3')],'defaultValue':![]},'read1stAt':{'type':Sequelize[_0xd8a3('0x4')]},'substatus':{'type':Sequelize[_0xd8a3('0x5')](0x3c)},'substatusAt':{'type':Sequelize[_0xd8a3('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xd8a3('0x8')]('in',_0xd8a3('0x9')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xd8a3('0x4')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xd8a3('0x9')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xd8a3('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','findOne','enableEmailPreview','show','params','rawAttributes','includeAll','include','merge','options','create','body','describe','addMessage','ids','omit','getMessages','nolimit','pick','$gte','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','rows','spread','emit','mailInteractionTags:save','removeTags','download','unix','join','server','tmp','root','files','attachments','transcript-%d-%s.zip','Attachment','Attachments','Messages','subject','get','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','basename','existsSync','build','message%d.eml','unlinkSync','eml-format','zip-dir','moment','bluebird','path','lodash','squel','juice','ioredis','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','error','stack','name','send','fullname','TagIds','Tags','split','forEach','push','MailMessage','out','-id','trimStart','plainBody','catch','index','map','MailInteraction','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','field','color','tools_tags','u.id','ui.MailInteractionId','from','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','select','mail_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','expr','search','parseSearch','conditions','length','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','some','compact','isEmpty','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','isEmail','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','role','getMailAccounts','i.MailAccountId\x20IS\x20NULL','agent','toString','sequelize','keyBy','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName','i.createdAt','i.updatedAt','i.closed','i.attach','i.lastMsgAt','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.ContactId','i.MailAccountId','Contact.firstName','c.email'];(function(_0x2bf141,_0x31eac7){var _0x48277b=function(_0x9fe560){while(--_0x9fe560){_0x2bf141['push'](_0x2bf141['shift']());}};_0x48277b(++_0x31eac7);}(_0xb10b,0x12a));var _0xbb10=function(_0x124d12,_0x2351a1){_0x124d12=_0x124d12-0x0;var _0x54180f=_0xb10b[_0x124d12];return _0x54180f;};'use strict';var emlformat=require(_0xbb10('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbb10('0x1'));var moment=require(_0xbb10('0x2'));var BPromise=require(_0xbb10('0x3'));var util=require('util');var path=require(_0xbb10('0x4'));var fs=require('fs');var _=require(_0xbb10('0x5'));var squel=require(_0xbb10('0x6'));var juice=require(_0xbb10('0x7'));var Redis=require(_0xbb10('0x8'));var qs=require(_0xbb10('0x9'));var as=require('../../components/parsers/advancedSearch');var logger=require(_0xbb10('0xa'))(_0xbb10('0xb'));var config=require('../../config/environment');var db=require(_0xbb10('0xc'))['db'];config[_0xbb10('0xd')]=_[_0xbb10('0xe')](config[_0xbb10('0xd')],{'host':_0xbb10('0xf'),'port':0x18eb});var socket=require(_0xbb10('0x10'))(new Redis(config[_0xbb10('0xd')]));require(_0xbb10('0x11'))['register'](socket);function respondWithStatusCode(_0x4e47f8,_0x20bd61){_0x20bd61=_0x20bd61||0xcc;return function(_0x118a74){if(_0x118a74){return _0x4e47f8[_0xbb10('0x12')](_0x20bd61);}return _0x4e47f8['status'](_0x20bd61)[_0xbb10('0x13')]();};}function respondWithResult(_0x5be7e0,_0x44fb19){_0x44fb19=_0x44fb19||0xc8;return function(_0x916a32){if(_0x916a32){return _0x5be7e0[_0xbb10('0x14')](_0x44fb19)[_0xbb10('0x15')](_0x916a32);}};}function respondWithFilteredResult(_0x442548,_0x147230){return function(_0x58a612){if(_0x58a612){var _0x26e021=typeof _0x147230[_0xbb10('0x16')]===_0xbb10('0x17')&&typeof _0x147230[_0xbb10('0x18')]===_0xbb10('0x17');var _0x2f2ebf=_0x58a612[_0xbb10('0x19')];var _0x36b5e8=_0x26e021?0x0:_0x147230[_0xbb10('0x16')];var _0x2b184e=_0x26e021?_0x58a612['count']:_0x147230[_0xbb10('0x16')]+_0x147230[_0xbb10('0x18')];var _0x133ac2;if(_0x2b184e>=_0x2f2ebf){_0x2b184e=_0x2f2ebf;_0x133ac2=0xc8;}else{_0x133ac2=0xce;}_0x442548[_0xbb10('0x14')](_0x133ac2);return _0x442548[_0xbb10('0x1a')](_0xbb10('0x1b'),_0x36b5e8+'-'+_0x2b184e+'/'+_0x2f2ebf)[_0xbb10('0x15')](_0x58a612);}return null;};}function saveUpdates(_0x30efc6){return function(_0xbf2906){if(_0xbf2906){return _0xbf2906[_0xbb10('0x1c')](_0x30efc6)['then'](function(_0x5ff0cf){return _0x5ff0cf;});}return null;};}function removeEntity(_0x19f48d){return function(_0x388fab){if(_0x388fab){return _0x388fab[_0xbb10('0x1d')]()[_0xbb10('0x1e')](function(){_0x19f48d[_0xbb10('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12f888){return function(_0x12ef77){if(!_0x12ef77){_0x12f888['sendStatus'](0x194);}return _0x12ef77;};}function handleError(_0x4c4b0d,_0x8e2b97){_0x8e2b97=_0x8e2b97||0x1f4;return function(_0x311abe){logger[_0xbb10('0x1f')](_0x311abe[_0xbb10('0x20')]);if(_0x311abe[_0xbb10('0x21')]){delete _0x311abe[_0xbb10('0x21')];}_0x4c4b0d[_0xbb10('0x14')](_0x8e2b97)[_0xbb10('0x22')](_0x311abe);};}function getInteractionUsers(_0x7f2377,_0x395404){return new BPromise(function(_0x3ba6cd,_0x26ad93){try{if(_0x395404[_0x7f2377['id']]){_0x7f2377['Users']=_['map'](_0x395404[_0x7f2377['id']],function(_0x4fb5e0){return{'id':_0x4fb5e0['id'],'fullname':_0x4fb5e0[_0xbb10('0x23')]};});}}catch(_0x3c5ae7){_0x26ad93(_0x3c5ae7);}_0x3ba6cd(_0x7f2377);});}function getInteractionTags(_0x2c89b9,_0x4e25ff){return new BPromise(function(_0x2fdde9,_0x24d586){try{if(_0x2c89b9[_0xbb10('0x24')]){_0x2c89b9[_0xbb10('0x25')]=[];_0x2c89b9[_0xbb10('0x24')][_0xbb10('0x26')](',')[_0xbb10('0x27')](function(_0x4aabb9){_0x2c89b9[_0xbb10('0x25')][_0xbb10('0x28')](_0x4e25ff[_0x4aabb9]);});}delete _0x2c89b9[_0xbb10('0x24')];}catch(_0x2e0249){_0x24d586(_0x2e0249);}_0x2fdde9(_0x2c89b9);});}function getLastMessageText(_0x1d30aa){return new BPromise(function(_0x2ff4c1,_0x5d5c80){return db[_0xbb10('0x29')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x1d30aa['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xbb10('0x2a')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0xbb10('0x2b'),'raw':!![]})[_0xbb10('0x1e')](function(_0x1b59f9){if(_0x1b59f9&&_0x1b59f9['plainBody']){_0x1d30aa['lastMsgText']=_[_0xbb10('0x2c')](_0x1b59f9[_0xbb10('0x2d')]);}_0x2ff4c1(_0x1d30aa);})['catch'](function(_0x359ad4){_0x5d5c80(_0x359ad4);});});}function updateMailInteraction(_0x37dde7,_0x2f653f,_0x1c0b57,_0x37a83f){return new BPromise(function(_0x138bc6,_0xf85197){return getInteractionUsers(_0x37dde7,_0x1c0b57)['then'](function(_0x25acb3){return getInteractionTags(_0x25acb3,_0x2f653f);})[_0xbb10('0x1e')](function(_0x441d15){if(_0x37a83f){_0x138bc6(getLastMessageText(_0x441d15));}else{_0x138bc6(_0x441d15);}})[_0xbb10('0x2e')](function(_0xfb2c5e){_0xf85197(_0xfb2c5e);});});}exports[_0xbb10('0x2f')]=function(_0x188cbd,_0x10202c){var _0x3c8d7d={},_0x56943c={},_0x2b5352={'count':0x0,'rows':[]};var _0x150107=_[_0xbb10('0x30')](db[_0xbb10('0x31')]['rawAttributes'],function(_0x111762){return{'name':_0x111762['fieldName'],'type':_0x111762['type'][_0xbb10('0x32')]};});_0x56943c[_0xbb10('0x33')]=_[_0xbb10('0x30')](_0x150107,_0xbb10('0x21'));_0x56943c[_0xbb10('0x34')]=_[_0xbb10('0x35')](_0x188cbd['query']);_0x56943c[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x56943c['model'],_0x56943c['query']);_0x3c8d7d['attributes']=_[_0xbb10('0x37')](_0x56943c[_0xbb10('0x33')],qs[_0xbb10('0x38')](_0x188cbd['query'][_0xbb10('0x38')]));_0x3c8d7d[_0xbb10('0x39')]=_0x3c8d7d[_0xbb10('0x39')]['length']?_0x3c8d7d[_0xbb10('0x39')]:_0x56943c[_0xbb10('0x33')];if(!_0x188cbd[_0xbb10('0x34')][_0xbb10('0x3a')]('nolimit')){_0x3c8d7d[_0xbb10('0x18')]=qs[_0xbb10('0x18')](_0x188cbd['query'][_0xbb10('0x18')]);_0x3c8d7d[_0xbb10('0x16')]=qs[_0xbb10('0x16')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x16')]);}_0x3c8d7d[_0xbb10('0x3b')]=qs['sort'](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x3c')]);_0x3c8d7d[_0xbb10('0x3d')]=qs[_0xbb10('0x36')](_['pick'](_0x188cbd[_0xbb10('0x34')],_0x56943c[_0xbb10('0x36')]),_0x150107);var _0x23dc18=[];var _0x403beb=squel['select']()[_0xbb10('0x3e')]('id')[_0xbb10('0x3e')]('name')['field'](_0xbb10('0x3f'))['from'](_0xbb10('0x40'));var _0x180933=squel['select']()[_0xbb10('0x3e')](_0xbb10('0x41'))[_0xbb10('0x3e')]('u.fullname')[_0xbb10('0x3e')](_0xbb10('0x42'))[_0xbb10('0x43')](_0xbb10('0x44'),'ui')[_0xbb10('0x45')](_0xbb10('0x46'),'u',_0xbb10('0x47'));var _0x3efa96=squel[_0xbb10('0x48')]()[_0xbb10('0x43')](_0xbb10('0x49'),'i')[_0xbb10('0x45')]('cm_contacts','c',_0xbb10('0x4a'))[_0xbb10('0x45')]('users','o',_0xbb10('0x4b'))[_0xbb10('0x45')](_0xbb10('0x4c'),'a',_0xbb10('0x4d'))[_0xbb10('0x45')](_0xbb10('0x4e'),'me',_0xbb10('0x4f'))['left_join']('mail_interaction_has_tags','it',_0xbb10('0x50'))[_0xbb10('0x45')](_0xbb10('0x40'),'t','t.id\x20=\x20it.TagId');var _0x5f0c12=squel[_0xbb10('0x51')]();var _0x34cf4e=[];var _0x1bd054=squel[_0xbb10('0x51')]();var _0x10159b;if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x52')]){_0x10159b=as[_0xbb10('0x53')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x52')]);var _0x550111=_0x10159b['sqlOperator'];for(var _0x412e13=0x0;_0x412e13<_0x10159b[_0xbb10('0x54')][_0xbb10('0x55')];_0x412e13++){var _0xb014b0=_0x10159b[_0xbb10('0x54')][_0x412e13];var _0x440f9e='i';var _0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),_0xb014b0[_0xbb10('0x3e')]]);if(!_0x358e7e){switch(_0xb014b0[_0xbb10('0x3e')]){case _0xbb10('0x57'):if(_0xb014b0[_0xbb10('0x58')]==0x1){_0x3efa96[_0xbb10('0x59')]('`'+_0xb014b0[_0xbb10('0x3e')]+'`\x20=\x200');}else{_0x3efa96[_0xbb10('0x59')]('`'+_0xb014b0['field']+_0xbb10('0x5a'));}break;case _0xbb10('0x5b'):if(_0xb014b0[_0xbb10('0x5c')]===_0xbb10('0x5d')){if(_0xb014b0[_0xbb10('0x58')][_0xbb10('0x26')]('\x20')[_0xbb10('0x55')]>0x1){_0x5f0c12[_0x550111](_0xbb10('0x5e'),qs[_0xbb10('0x5f')](_0xb014b0[_0xbb10('0x58')]),null);}else{var _0x44a056='%'+_0xb014b0[_0xbb10('0x58')]+'%';_0x5f0c12[_0x550111](_0xbb10('0x60'),_0x44a056,_0x44a056,_0x44a056);}}else{_0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),'ContactId']);_0xb014b0[_0xbb10('0x3e')]=_0xbb10('0x61');_0x155dc5=as[_0xbb10('0x62')](_0x440f9e,_0x358e7e[_0xbb10('0x63')],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5[_0xbb10('0x64')],_0x155dc5[_0xbb10('0x58')]['start'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x13')]);}break;case _0xbb10('0x65'):var _0x14fed3=_0xb014b0[_0xbb10('0x58')][_0xbb10('0x26')](',')[_0xbb10('0x30')](function(_0x12ec18){return Number(_0x12ec18);});_0x14fed3[_0xbb10('0x27')](function(_0x40c4fb){_0x1bd054['or'](_0xbb10('0x66'),'%,'+_0x40c4fb+',%');});_0x34cf4e=_[_0xbb10('0x67')](_0x34cf4e,_0x14fed3);break;case _0xbb10('0x68'):if(_0xb014b0['operator']==='$substring'){_0x5f0c12[_0x550111](_0xbb10('0x69'),'%'+_0xb014b0[_0xbb10('0x58')]+'%',null);}else{_0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),'UserId']);_0xb014b0['field']=_0xbb10('0x6a');_0x155dc5=as[_0xbb10('0x62')](_0x440f9e,_0x358e7e[_0xbb10('0x63')],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5[_0xbb10('0x64')],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x6b')],_0x155dc5[_0xbb10('0x58')]['end']);}break;case _0xbb10('0x2d'):_0x155dc5=as[_0xbb10('0x62')]('me',null,_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5['text'],_0x155dc5['value']['start'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x13')]);break;}}else{var _0x155dc5=as['buildExpression'](_0x440f9e,_0x358e7e['type'],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5['text'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x6b')],_0x155dc5[_0xbb10('0x58')]['end']);}}}else{var _0xa1bbd9=_(_0x188cbd[_0xbb10('0x34')])['keys']()['map'](function(_0x27d7b9){return _[_0xbb10('0x6c')](_0x150107,[_0xbb10('0x21'),_0x27d7b9])?_0x27d7b9:undefined;})[_0xbb10('0x6d')]()['value']();if(!_[_0xbb10('0x6e')](_0xa1bbd9)){_0xa1bbd9[_0xbb10('0x27')](function(_0xa7179d){if(_0xa7179d==='MailAccountId'){_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x6f'),[][_0xbb10('0x70')](_0x188cbd['query'][_0xa7179d]));}else if(_0xa7179d===_0xbb10('0x71')){var _0x31e85e=JSON[_0xbb10('0x72')](_0x188cbd[_0xbb10('0x34')][_0xa7179d])['$gte'];var _0x251417=JSON[_0xbb10('0x72')](_0x188cbd[_0xbb10('0x34')][_0xa7179d])[_0xbb10('0x73')];_0x3efa96['where'](_0xbb10('0x74'),_0x31e85e,_0x251417);}else{if(_0x188cbd[_0xbb10('0x34')][_0xa7179d]===_0xbb10('0x75')){_0x3efa96[_0xbb10('0x3d')]('i.'+_0xa7179d+_0xbb10('0x76'));}else{_0x3efa96[_0xbb10('0x3d')]('i.'+_0xa7179d+_0xbb10('0x77'),_0x188cbd['query'][_0xa7179d]);}}});}if(_0x188cbd['query']['read']){if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x78')]==0x1){_0x3efa96[_0xbb10('0x59')]('`unreadMessages`\x20=\x200');}else{_0x3efa96['having'](_0xbb10('0x79'));}}if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')]){_0x34cf4e=_[_0xbb10('0x7b')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')])?_0x188cbd['query'][_0xbb10('0x7a')]:new Array(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')]);_0x34cf4e[_0xbb10('0x27')](function(_0x2aaaa6){_0x1bd054['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2aaaa6+',%');});}if(_0x188cbd['query']['filter']){var _0x329da7=_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7c')][_0xbb10('0x7d')]('\x5c','\x5c\x5c')[_0xbb10('0x7d')](/'/g,'\x27\x27');if(qs[_0xbb10('0x7e')](_0x329da7)){_0x5f0c12['or']('i.id\x20LIKE\x20?',_0x329da7+'%');}else if(qs[_0xbb10('0x7f')](_0x329da7)){_0x5f0c12['or']('c.email\x20LIKE\x20?',_0x329da7+'%');}else{_0x5f0c12['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x329da7))['or'](_0xbb10('0x80'),qs[_0xbb10('0x5f')](_0x329da7));}}}_0x3efa96[_0xbb10('0x3d')](_0x5f0c12);_0x3efa96[_0xbb10('0x81')]('i.id');var _0x122d38={'type':db['Sequelize']['QueryTypes'][_0xbb10('0x82')],'raw':!![]};var _0xfe3db0=_0x3efa96[_0xbb10('0x83')]();_0xfe3db0[_0xbb10('0x3e')](_0xbb10('0x84'));_0xfe3db0['field'](_0xbb10('0x85'),_0xbb10('0x57'));if(_0x3c8d7d[_0xbb10('0x3b')]){_0x3c8d7d[_0xbb10('0x3b')][_0xbb10('0x27')](function(_0x27f42f){var _0x174395=_0x27f42f[0x0]==='contactName'?_0x27f42f[0x0]:'i.'+_0x27f42f[0x0];_0x3efa96[_0xbb10('0x3b')](_0x174395,_0x27f42f[0x1]===_0xbb10('0x86')?![]:!![]);});}if(!_[_0xbb10('0x6e')](_0x34cf4e)){_0x3efa96[_0xbb10('0x59')](_0x1bd054);_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x87'),_0x34cf4e);}BPromise[_0xbb10('0x88')]()[_0xbb10('0x1e')](function(){if(!_0x10159b){if(_0x188cbd['query'][_0xbb10('0x89')])return;_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x8a'));_0x3efa96['where']('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x188cbd['user'][_0xbb10('0x8b')]!=='agent')return;return _0x188cbd['user'][_0xbb10('0x8c')]({'attributes':['id'],'raw':!![]})[_0xbb10('0x1e')](function(_0x33ff06){if(_[_0xbb10('0x6e')](_0x33ff06)){_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x8d'));_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x8d'));}else{_0xfe3db0[_0xbb10('0x3d')]('i.MailAccountId\x20IN\x20?',_[_0xbb10('0x30')](_0x33ff06,'id'));_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x6f'),_[_0xbb10('0x30')](_0x33ff06,'id'));}});})['then'](function(){if(_0x188cbd['user'][_0xbb10('0x8b')]===_0xbb10('0x8e')&&!_0x10159b&&!_0x188cbd[_0xbb10('0x34')][_0xbb10('0x89')])return[];return db['sequelize'][_0xbb10('0x34')](_0xfe3db0[_0xbb10('0x8f')](),_0x122d38);})[_0xbb10('0x1e')](function(_0xf7b3e1){_0x2b5352[_0xbb10('0x19')]=_0xf7b3e1['length'];if(_0x2b5352['count']===0x0)return[];return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x403beb[_0xbb10('0x8f')](),_0x122d38)['then'](function(_0x256b35){_0x23dc18=_[_0xbb10('0x91')](_0x256b35,'id');_0x122d38=_['merge'](_0x122d38,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x38')]){_0x3c8d7d[_0xbb10('0x39')]['forEach'](function(_0x32d5a5){_0x3efa96[_0xbb10('0x3e')]('i.'+_0x32d5a5);});}else{_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x85'),_0xbb10('0x57'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x92'),_0xbb10('0x93'));_0x3efa96[_0xbb10('0x3e')]('a.mandatoryDisposition',_0xbb10('0x94'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x95'),_0xbb10('0x96'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x84'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x97'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x98'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x99'));_0x3efa96['field']('i.closedAt');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9a'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9b'));_0x3efa96[_0xbb10('0x3e')]('i.lastMsgDirection');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9c'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9d'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9e'));_0x3efa96['field'](_0xbb10('0x9f'));_0x3efa96[_0xbb10('0x3e')]('i.substatus');_0x3efa96[_0xbb10('0x3e')]('i.to');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa0'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa1'));_0x3efa96[_0xbb10('0x3e')]('i.UserId');_0x3efa96[_0xbb10('0x3e')]('c.firstName',_0xbb10('0xa2'));_0x3efa96[_0xbb10('0x3e')]('c.lastName','Contact.lastName');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa3'),_0xbb10('0xa4'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa5'),_0xbb10('0xa6'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa7'),_0xbb10('0xa8'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa9'),'Contact.fax');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xaa'),_0xbb10('0xab'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xac'),_0xbb10('0xad'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xae'),_0xbb10('0x24'));}if(_0x3c8d7d[_0xbb10('0x18')])_0x3efa96[_0xbb10('0x18')](_0x3c8d7d[_0xbb10('0x18')]);if(_0x3c8d7d['offset'])_0x3efa96[_0xbb10('0x16')](_0x3c8d7d['offset']);return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x3efa96[_0xbb10('0x8f')](),_0x122d38);})[_0xbb10('0x1e')](function(_0x38d369){if(_0x38d369['length']>0x0)_0x180933[_0xbb10('0x3d')](_0xbb10('0xaf'),_[_0xbb10('0x30')](_0x38d369,'id'));return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x180933[_0xbb10('0x8f')](),_0x122d38)['then'](function(_0x4bd470){var _0x5cc9d7=_[_0xbb10('0xb0')](_0x4bd470,_0xbb10('0xb1'));var _0x57d5a1=[];return db[_0xbb10('0xb2')][_0xbb10('0xb3')]({'attributes':['enableEmailPreview'],'raw':!![]})[_0xbb10('0x1e')](function(_0xaede56){var _0x5642c3=_0xaede56[_0xbb10('0xb4')];_0x38d369['forEach'](function(_0x34cec7){_0x57d5a1[_0xbb10('0x28')](updateMailInteraction(_0x34cec7,_0x23dc18,_0x5cc9d7,_0x5642c3));});return BPromise['all'](_0x57d5a1);});});});})[_0xbb10('0x1e')](function(_0x28cc74){_0x2b5352['rows']=_0x28cc74;return _0x2b5352;})['then'](respondWithFilteredResult(_0x10202c,_0x3c8d7d))[_0xbb10('0x2e')](handleError(_0x10202c,null));};exports[_0xbb10('0xb5')]=function(_0x3e0e34,_0x3299bc){var _0x3ceb77={'raw':![],'where':{'id':_0x3e0e34[_0xbb10('0xb6')]['id']}},_0x4c3bdc={};_0x4c3bdc[_0xbb10('0x33')]=_[_0xbb10('0x35')](db['MailInteraction'][_0xbb10('0xb7')]);_0x4c3bdc[_0xbb10('0x34')]=_[_0xbb10('0x35')](_0x3e0e34[_0xbb10('0x34')]);_0x4c3bdc[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x4c3bdc[_0xbb10('0x33')],_0x4c3bdc[_0xbb10('0x34')]);_0x3ceb77[_0xbb10('0x39')]=_['intersection'](_0x4c3bdc['model'],qs[_0xbb10('0x38')](_0x3e0e34[_0xbb10('0x34')][_0xbb10('0x38')]));_0x3ceb77[_0xbb10('0x39')]=_0x3ceb77[_0xbb10('0x39')][_0xbb10('0x55')]?_0x3ceb77[_0xbb10('0x39')]:_0x4c3bdc[_0xbb10('0x33')];if(_0x3e0e34[_0xbb10('0x34')][_0xbb10('0xb8')]){_0x3ceb77[_0xbb10('0xb9')]=[{'all':!![]}];}_0x3ceb77=_[_0xbb10('0xba')]({},_0x3ceb77,_0x3e0e34[_0xbb10('0xbb')]);return db['MailInteraction'][_0xbb10('0x56')](_0x3ceb77)[_0xbb10('0x1e')](handleEntityNotFound(_0x3299bc,null))[_0xbb10('0x1e')](respondWithResult(_0x3299bc,null))[_0xbb10('0x2e')](handleError(_0x3299bc,null));};exports[_0xbb10('0xbc')]=function(_0xd9284e,_0x4258fc){return db[_0xbb10('0x31')][_0xbb10('0xbc')](_0xd9284e[_0xbb10('0xbd')],{})[_0xbb10('0x1e')](respondWithResult(_0x4258fc,0xc9))['catch'](handleError(_0x4258fc,null));};exports[_0xbb10('0x1c')]=function(_0x5e1ac5,_0x3faaca){if(_0x5e1ac5[_0xbb10('0xbd')]['id']){delete _0x5e1ac5[_0xbb10('0xbd')]['id'];}return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x5e1ac5[_0xbb10('0xb6')]['id']}})['then'](handleEntityNotFound(_0x3faaca,null))[_0xbb10('0x1e')](saveUpdates(_0x5e1ac5['body'],null))[_0xbb10('0x1e')](respondWithResult(_0x3faaca,null))[_0xbb10('0x2e')](handleError(_0x3faaca,null));};exports[_0xbb10('0x1d')]=function(_0x576bb6,_0x2b652c){return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x576bb6[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x2b652c,null))[_0xbb10('0x1e')](removeEntity(_0x2b652c,null))[_0xbb10('0x2e')](handleError(_0x2b652c,null));};exports[_0xbb10('0xbe')]=function(_0x589565,_0x3696b3){return db['MailInteraction'][_0xbb10('0xbe')]()[_0xbb10('0x1e')](respondWithResult(_0x3696b3,null))[_0xbb10('0x2e')](handleError(_0x3696b3,null));};exports[_0xbb10('0xbf')]=function(_0x44c229,_0x40271f){return db[_0xbb10('0x29')]['find']({'where':{'id':_0x44c229[_0xbb10('0xb6')]['id']}})['then'](handleEntityNotFound(_0x40271f,null))['then'](function(_0x1513e0){if(_0x1513e0){return _0x1513e0[_0xbb10('0xbf')](_0x44c229[_0xbb10('0xbd')][_0xbb10('0xc0')],_[_0xbb10('0xc1')](_0x44c229[_0xbb10('0xbd')],['ids','id'])||{});}})[_0xbb10('0x1e')](respondWithResult(_0x40271f,null))[_0xbb10('0x2e')](handleError(_0x40271f,null));};exports[_0xbb10('0xc2')]=function(_0xb1b7c8,_0x136520){var _0x28127c={'raw':![],'where':{}};var _0x528aff={};var _0xdfdc42={'count':0x0,'rows':[]};return db[_0xbb10('0x31')][_0xbb10('0xb3')]({'where':{'id':_0xb1b7c8[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x136520,null))[_0xbb10('0x1e')](function(_0x2764e1){if(_0x2764e1){_0x528aff['model']=_[_0xbb10('0x35')](db['MailMessage'][_0xbb10('0xb7')]);_0x528aff['query']=_['keys'](_0xb1b7c8[_0xbb10('0x34')]);_0x528aff[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x528aff[_0xbb10('0x33')],_0x528aff[_0xbb10('0x34')]);_0x28127c['attributes']=_[_0xbb10('0x37')](_0x528aff['model'],qs['fields'](_0xb1b7c8['query'][_0xbb10('0x38')]));_0x28127c[_0xbb10('0x39')]=_0x28127c[_0xbb10('0x39')][_0xbb10('0x55')]?_0x28127c[_0xbb10('0x39')]:_0x528aff['model'];if(!_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x3a')](_0xbb10('0xc3'))){_0x28127c[_0xbb10('0x18')]=qs[_0xbb10('0x18')](_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x18')]);_0x28127c['offset']=qs['offset'](_0xb1b7c8['query'][_0xbb10('0x16')]);}_0x28127c[_0xbb10('0x3b')]=qs[_0xbb10('0x3c')](_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x3c')]);_0x28127c[_0xbb10('0x3d')]=qs[_0xbb10('0x36')](_[_0xbb10('0xc4')](_0xb1b7c8[_0xbb10('0x34')],_0x528aff[_0xbb10('0x36')]));_0x28127c['where']['MailInteractionId']=_0x2764e1['id'];if(_0xb1b7c8['query'][_0xbb10('0x7c')]){_0x28127c[_0xbb10('0x3d')]=_[_0xbb10('0xba')](_0x28127c['where'],{'$or':_[_0xbb10('0x30')](_0x28127c[_0xbb10('0x39')],function(_0x2c638d){var _0x290280={};_0x290280[_0x2c638d]={'$like':'%'+_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x7c')]+'%'};return _0x290280;})});}if(_0xb1b7c8['query']['$gte']){var _0x356660=_0xb1b7c8['query'][_0xbb10('0xc5')][_0xbb10('0x26')](',');var _0x152ca9={};_0x152ca9[_0x356660[0x0]]={'$gte':moment(_0x356660[0x1])[_0xbb10('0xc6')](_0xbb10('0xc7'))};_0x28127c[_0xbb10('0x3d')]=_[_0xbb10('0xba')](_0x28127c[_0xbb10('0x3d')],_0x152ca9);}_0x28127c=_[_0xbb10('0xba')]({},_0x28127c,_0xb1b7c8[_0xbb10('0xbb')]);return db['MailMessage'][_0xbb10('0x19')]({'where':_0x28127c['where']})[_0xbb10('0x1e')](function(_0x5547fa){_0xdfdc42[_0xbb10('0x19')]=_0x5547fa;if(_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0xb8')]){_0x28127c[_0xbb10('0xb9')]=[{'all':!![]}];}return db['MailMessage'][_0xbb10('0xc8')](_0x28127c);})['then'](function(_0xfe1154){if(_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0xc9')]==='true'){for(var _0x298167=0x0;_0x298167<_0xfe1154[_0xbb10('0x55')];_0x298167++){_0xfe1154[_0x298167][_0xbb10('0xbd')]=juice(_0xfe1154[_0x298167][_0xbb10('0xbd')]);}}_0xdfdc42[_0xbb10('0xca')]=_0xfe1154;return _0xdfdc42;});}})[_0xbb10('0x1e')](respondWithFilteredResult(_0x136520,_0x28127c))['catch'](handleError(_0x136520,null));};exports['addTags']=function(_0x522a88,_0x26a752){return db['MailInteraction'][_0xbb10('0x56')]({'where':{'id':_0x522a88['params']['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x26a752,null))[_0xbb10('0x1e')](function(_0x385ad3){if(_0x385ad3){return _0x385ad3['setTags'](_0x522a88['body'][_0xbb10('0xc0')],_[_0xbb10('0xc1')](_0x522a88[_0xbb10('0xbd')],['ids','id'])||{})[_0xbb10('0xcb')](function(){return db[_0xbb10('0x65')][_0xbb10('0xc8')]({'attributes':['id','name','color'],'where':{'id':_0x522a88['body'][_0xbb10('0xc0')]}});})['then'](function(_0x3dfbcd){socket[_0xbb10('0xcc')](_0xbb10('0xcd'),{'id':Number(_0x522a88[_0xbb10('0xb6')]['id']),'tags':_0x3dfbcd||[]});return{'id':Number(_0x522a88[_0xbb10('0xb6')]['id']),'tags':_0x3dfbcd||[]};});}})[_0xbb10('0x1e')](respondWithResult(_0x26a752,null))[_0xbb10('0x2e')](handleError(_0x26a752,null));};exports[_0xbb10('0xce')]=function(_0x2746eb,_0x431792){return db[_0xbb10('0x31')]['find']({'where':{'id':_0x2746eb[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x431792,null))['then'](function(_0x14ef50){if(_0x14ef50){return _0x14ef50['removeTags'](_0x2746eb['query'][_0xbb10('0xc0')]);}})[_0xbb10('0x1e')](respondWithStatusCode(_0x431792,null))[_0xbb10('0x2e')](handleError(_0x431792,null));};exports[_0xbb10('0xcf')]=function(_0x99c4,_0x4ca4ce){var _0x161171=moment()[_0xbb10('0xd0')]()['toString']();var _0xa45726=path[_0xbb10('0xd1')](config['root'],_0xbb10('0xd2'),'files',_0xbb10('0xd3'));var _0x8e8049=path[_0xbb10('0xd1')](config[_0xbb10('0xd4')],_0xbb10('0xd2'),_0xbb10('0xd5'),_0xbb10('0xd6'));var _0x56f902=path[_0xbb10('0xd1')](_0xa45726,_0x161171);var _0x4720a1=util[_0xbb10('0xc6')](_0xbb10('0xd7'),_0x99c4[_0xbb10('0xb6')]['id'],_0x161171);var _0x1301e3=path['join'](_0xa45726,_0x4720a1);var _0x550301=[];if(_0x99c4['query'][_0xbb10('0xd6')]){_0x550301[_0xbb10('0x28')]({'model':db[_0xbb10('0xd8')],'as':_0xbb10('0xd9'),'raw':!![]});}var _0x57700b=[{'model':db[_0xbb10('0x29')],'as':_0xbb10('0xda'),'attributes':['id',_0xbb10('0xbd'),'from','to','cc','bcc',_0xbb10('0xdb'),'createdAt'],'where':{'secret':![]},'order':qs[_0xbb10('0x3c')]('id'),'include':_0x550301}];return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x99c4[_0xbb10('0xb6')]['id']},'include':_0x57700b})[_0xbb10('0x1e')](handleEntityNotFound(_0x4ca4ce,null))[_0xbb10('0x1e')](function(_0x1fe250){if(_0x1fe250&&_0x1fe250['Messages']){var _0x424371=_0x1fe250[_0xbb10('0xdc')]({'plain':!![]});fs['mkdirSync'](_0x56f902);return BPromise[_0xbb10('0xdd')](_0x424371[_0xbb10('0xda')],function(_0x32f261,_0x5b11a2){var _0x4b490a={'from':_0x32f261['from'],'to':_0x32f261['to'],'subject':_0x32f261[_0xbb10('0xdb')],'html':_0x32f261[_0xbb10('0xbd')],'headers':{'Date':moment(_0x32f261['createdAt'])[_0xbb10('0xc6')](_0xbb10('0xde'))},'attachments':[]};if(_0x32f261['cc']){_0x4b490a[_0xbb10('0xdf')]['Cc']=_0x32f261['cc'];}if(_0x32f261[_0xbb10('0xe0')]){_0x4b490a[_0xbb10('0xdf')][_0xbb10('0xe1')]=_0x32f261[_0xbb10('0xe0')];}return new BPromise(function(_0x48f0eb,_0x304603){if(_0x32f261['Attachments']){for(var _0x5a7c4e=0x0;_0x5a7c4e<_0x32f261['Attachments'][_0xbb10('0x55')];_0x5a7c4e++){var _0x572d73=_0x32f261['Attachments'][_0x5a7c4e];var _0x1f09f1=path['join'](_0x8e8049,_0x572d73[_0xbb10('0xe2')]);if(fs[_0xbb10('0xe3')](_0x1f09f1)){_0x4b490a[_0xbb10('0xd6')]['push']({'name':_0x572d73['name'],'contentType':_0x572d73[_0xbb10('0x63')],'data':fs['readFileSync'](_0x1f09f1)});}}}emlformat[_0xbb10('0xe4')](_0x4b490a,function(_0x211172,_0x589ecb){if(_0x211172)return _0x304603(_0x211172);fs['writeFileSync'](path[_0xbb10('0xd1')](_0x56f902,util[_0xbb10('0xc6')](_0xbb10('0xe5'),_0x5b11a2)),_0x589ecb);return _0x48f0eb(_0x589ecb);});});})['then'](function(){return new BPromise(function(_0x4f4aa8,_0x426a4f){zipdir(_0x56f902,{'saveTo':_0x1301e3},function(_0x22f153,_0x4d47cc){if(_0x22f153)return _0x426a4f(_0x22f153);return _0x4f4aa8(_0x4d47cc);});})[_0xbb10('0x1e')](function(){return new BPromise(function(_0x203e5a,_0xe88e90){rimraf(_0x56f902,function(_0x4845b5){if(_0x4845b5)_0xe88e90(_0x4845b5);return _0x203e5a();});});})[_0xbb10('0x1e')](function(){return _0x4ca4ce[_0xbb10('0xcf')](_0x1301e3,_0x4720a1,function(_0x166f4f){if(!_0x166f4f)fs[_0xbb10('0xe6')](_0x1301e3);});});});}else{return _0x4ca4ce[_0xbb10('0x12')](0xc8);}})[_0xbb10('0x2e')](handleError(_0x4ca4ce,null));};
\ No newline at end of file
+var _0x1033=['name','send','Users','map','TagIds','split','forEach','Tags','push','MailMessage','findOne','out','-id','trimStart','plainBody','catch','index','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','sort','where','select','field','from','tools_tags','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','UserId','text','some','compact','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','QueryTypes','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','isEmpty','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closed','i.closedAt','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.MailInteractionId\x20IN\x20?','groupBy','enableEmailPreview','all','rows','show','params','MailInteraction','rawAttributes','includeAll','include','options','create','body','destroy','describe','addMessage','ids','getMessages','pick','MailInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','addTags','setTags','omit','spread','emit','mailInteractionTags:save','removeTags','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','Attachment','Attachments','Messages','bcc','get','each','subject','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','readFileSync','build','eml-format','rimraf','zip-dir','moment','bluebird','util','lodash','squel','juice','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','html-entities','defaults','redis','localhost','socket.io-emitter','sendStatus','offset','undefined','limit','count','status','set','update','then','end','stack'];(function(_0x4f067e,_0x406536){var _0x3930d1=function(_0x326249){while(--_0x326249){_0x4f067e['push'](_0x4f067e['shift']());}};_0x3930d1(++_0x406536);}(_0x1033,0x1b3));var _0x3103=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0x1033[_0x11005e];return _0x29338f;};'use strict';var emlformat=require(_0x3103('0x0'));var rimraf=require(_0x3103('0x1'));var zipdir=require(_0x3103('0x2'));var moment=require(_0x3103('0x3'));var BPromise=require(_0x3103('0x4'));var util=require(_0x3103('0x5'));var path=require('path');var fs=require('fs');var _=require(_0x3103('0x6'));var squel=require(_0x3103('0x7'));var juice=require(_0x3103('0x8'));var Redis=require(_0x3103('0x9'));var qs=require(_0x3103('0xa'));var as=require(_0x3103('0xb'));var logger=require(_0x3103('0xc'))(_0x3103('0xd'));var config=require('../../config/environment');var db=require(_0x3103('0xe'))['db'];var htmlEntities=require(_0x3103('0xf'));config['redis']=_[_0x3103('0x10')](config[_0x3103('0x11')],{'host':_0x3103('0x12'),'port':0x18eb});var socket=require(_0x3103('0x13'))(new Redis(config[_0x3103('0x11')]));require('./mailInteraction.socket')['register'](socket);function respondWithStatusCode(_0x30aeee,_0x1d1535){_0x1d1535=_0x1d1535||0xcc;return function(_0x3ce172){if(_0x3ce172){return _0x30aeee[_0x3103('0x14')](_0x1d1535);}return _0x30aeee['status'](_0x1d1535)['end']();};}function respondWithResult(_0x147e80,_0x2dba2f){_0x2dba2f=_0x2dba2f||0xc8;return function(_0x244410){if(_0x244410){return _0x147e80['status'](_0x2dba2f)['json'](_0x244410);}};}function respondWithFilteredResult(_0x2c9545,_0x5ec7b5){return function(_0x38c996){if(_0x38c996){var _0x356f7b=typeof _0x5ec7b5[_0x3103('0x15')]===_0x3103('0x16')&&typeof _0x5ec7b5[_0x3103('0x17')]===_0x3103('0x16');var _0x473833=_0x38c996[_0x3103('0x18')];var _0x423ec6=_0x356f7b?0x0:_0x5ec7b5[_0x3103('0x15')];var _0xbcb30c=_0x356f7b?_0x38c996[_0x3103('0x18')]:_0x5ec7b5[_0x3103('0x15')]+_0x5ec7b5[_0x3103('0x17')];var _0x2178f4;if(_0xbcb30c>=_0x473833){_0xbcb30c=_0x473833;_0x2178f4=0xc8;}else{_0x2178f4=0xce;}_0x2c9545[_0x3103('0x19')](_0x2178f4);return _0x2c9545[_0x3103('0x1a')]('Content-Range',_0x423ec6+'-'+_0xbcb30c+'/'+_0x473833)['json'](_0x38c996);}return null;};}function saveUpdates(_0x57cd44){return function(_0x494f4d){if(_0x494f4d){return _0x494f4d[_0x3103('0x1b')](_0x57cd44)[_0x3103('0x1c')](function(_0x179ce0){return _0x179ce0;});}return null;};}function removeEntity(_0x5efd97){return function(_0x2647fe){if(_0x2647fe){return _0x2647fe['destroy']()[_0x3103('0x1c')](function(){_0x5efd97[_0x3103('0x19')](0xcc)[_0x3103('0x1d')]();});}};}function handleEntityNotFound(_0x503619){return function(_0x32a827){if(!_0x32a827){_0x503619[_0x3103('0x14')](0x194);}return _0x32a827;};}function handleError(_0x528a76,_0x5e5dd0){_0x5e5dd0=_0x5e5dd0||0x1f4;return function(_0x4539ed){logger['error'](_0x4539ed[_0x3103('0x1e')]);if(_0x4539ed[_0x3103('0x1f')]){delete _0x4539ed[_0x3103('0x1f')];}_0x528a76[_0x3103('0x19')](_0x5e5dd0)[_0x3103('0x20')](_0x4539ed);};}function getInteractionUsers(_0x583f1f,_0xfd9027){return new BPromise(function(_0x24fff8,_0xc1190f){try{if(_0xfd9027[_0x583f1f['id']]){_0x583f1f[_0x3103('0x21')]=_[_0x3103('0x22')](_0xfd9027[_0x583f1f['id']],function(_0x5e7ff7){return{'id':_0x5e7ff7['id'],'fullname':_0x5e7ff7['fullname']};});}}catch(_0x510f31){_0xc1190f(_0x510f31);}_0x24fff8(_0x583f1f);});}function getInteractionTags(_0x5bc65e,_0x159a05){return new BPromise(function(_0x117454,_0x1c1571){try{if(_0x5bc65e[_0x3103('0x23')]){_0x5bc65e['Tags']=[];_0x5bc65e['TagIds'][_0x3103('0x24')](',')[_0x3103('0x25')](function(_0x2e3d53){_0x5bc65e[_0x3103('0x26')][_0x3103('0x27')](_0x159a05[_0x2e3d53]);});}delete _0x5bc65e[_0x3103('0x23')];}catch(_0x3ed153){_0x1c1571(_0x3ed153);}_0x117454(_0x5bc65e);});}function getLastMessageText(_0x21ce97){return new BPromise(function(_0xf28d9a,_0x41ea39){return db[_0x3103('0x28')][_0x3103('0x29')]({'where':{'$and':[{'MailInteractionId':_0x21ce97['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x3103('0x2a')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0x3103('0x2b'),'raw':!![]})[_0x3103('0x1c')](function(_0x39f21a){if(_0x39f21a&&_0x39f21a['plainBody']){_0x21ce97['lastMsgText']=_[_0x3103('0x2c')](_0x39f21a[_0x3103('0x2d')]);}_0xf28d9a(_0x21ce97);})[_0x3103('0x2e')](function(_0x58710d){_0x41ea39(_0x58710d);});});}function updateMailInteraction(_0x5f5ca2,_0x57b631,_0x29e63d,_0x4749c4){return new BPromise(function(_0x10941e,_0x3875a5){return getInteractionUsers(_0x5f5ca2,_0x29e63d)[_0x3103('0x1c')](function(_0x4df64f){return getInteractionTags(_0x4df64f,_0x57b631);})['then'](function(_0x594e4c){if(_0x4749c4){_0x10941e(getLastMessageText(_0x594e4c));}else{_0x10941e(_0x594e4c);}})[_0x3103('0x2e')](function(_0x4e0579){_0x3875a5(_0x4e0579);});});}exports[_0x3103('0x2f')]=function(_0x2edb65,_0x29723e){var _0x5066ea={},_0x148c2f={},_0x2f7be6={'count':0x0,'rows':[]};var _0x5c06ba=_[_0x3103('0x22')](db['MailInteraction']['rawAttributes'],function(_0x590ae5){return{'name':_0x590ae5[_0x3103('0x30')],'type':_0x590ae5[_0x3103('0x31')][_0x3103('0x32')]};});_0x148c2f[_0x3103('0x33')]=_[_0x3103('0x22')](_0x5c06ba,_0x3103('0x1f'));_0x148c2f['query']=_[_0x3103('0x34')](_0x2edb65[_0x3103('0x35')]);_0x148c2f[_0x3103('0x36')]=_[_0x3103('0x37')](_0x148c2f[_0x3103('0x33')],_0x148c2f[_0x3103('0x35')]);_0x5066ea[_0x3103('0x38')]=_['intersection'](_0x148c2f[_0x3103('0x33')],qs[_0x3103('0x39')](_0x2edb65['query'][_0x3103('0x39')]));_0x5066ea[_0x3103('0x38')]=_0x5066ea[_0x3103('0x38')][_0x3103('0x3a')]?_0x5066ea[_0x3103('0x38')]:_0x148c2f['model'];if(!_0x2edb65[_0x3103('0x35')]['hasOwnProperty'](_0x3103('0x3b'))){_0x5066ea[_0x3103('0x17')]=qs[_0x3103('0x17')](_0x2edb65[_0x3103('0x35')][_0x3103('0x17')]);_0x5066ea[_0x3103('0x15')]=qs[_0x3103('0x15')](_0x2edb65[_0x3103('0x35')][_0x3103('0x15')]);}_0x5066ea['order']=qs[_0x3103('0x3c')](_0x2edb65['query'][_0x3103('0x3c')]);_0x5066ea[_0x3103('0x3d')]=qs['filters'](_['pick'](_0x2edb65[_0x3103('0x35')],_0x148c2f[_0x3103('0x36')]),_0x5c06ba);var _0x3d6b9e=[];var _0x236475=squel[_0x3103('0x3e')]()[_0x3103('0x3f')]('id')[_0x3103('0x3f')](_0x3103('0x1f'))[_0x3103('0x3f')]('color')[_0x3103('0x40')](_0x3103('0x41'));var _0x56bfc5=squel['select']()['field'](_0x3103('0x42'))['field'](_0x3103('0x43'))[_0x3103('0x3f')](_0x3103('0x44'))[_0x3103('0x40')](_0x3103('0x45'),'ui')[_0x3103('0x46')](_0x3103('0x47'),'u',_0x3103('0x48'));var _0x34e68b=squel[_0x3103('0x3e')]()['from'](_0x3103('0x49'),'i')['left_join']('cm_contacts','c',_0x3103('0x4a'))[_0x3103('0x46')](_0x3103('0x47'),'o','o.id\x20=\x20i.UserId')[_0x3103('0x46')](_0x3103('0x4b'),'a',_0x3103('0x4c'))[_0x3103('0x46')](_0x3103('0x4d'),'me',_0x3103('0x4e'))['left_join'](_0x3103('0x4f'),'it',_0x3103('0x50'))[_0x3103('0x46')](_0x3103('0x41'),'t','t.id\x20=\x20it.TagId');var _0x3758a4=squel[_0x3103('0x51')]();var _0x30cd00=[];var _0x15ceb1=squel[_0x3103('0x51')]();var _0x41856c;if(_0x2edb65[_0x3103('0x35')][_0x3103('0x52')]){_0x41856c=as[_0x3103('0x53')](_0x2edb65[_0x3103('0x35')]['search']);var _0x4ee28c=_0x41856c[_0x3103('0x54')];for(var _0x39dbca=0x0;_0x39dbca<_0x41856c[_0x3103('0x55')]['length'];_0x39dbca++){var _0x3407f9=_0x41856c['conditions'][_0x39dbca];var _0x579752='i';var _0x3a7c2e=_[_0x3103('0x56')](_0x5c06ba,[_0x3103('0x1f'),_0x3407f9['field']]);if(!_0x3a7c2e){switch(_0x3407f9[_0x3103('0x3f')]){case _0x3103('0x57'):if(_0x3407f9[_0x3103('0x58')]==0x1){_0x34e68b[_0x3103('0x59')]('`'+_0x3407f9['field']+'`\x20=\x200');}else{_0x34e68b[_0x3103('0x59')]('`'+_0x3407f9[_0x3103('0x3f')]+_0x3103('0x5a'));}break;case _0x3103('0x5b'):if(_0x3407f9[_0x3103('0x5c')]===_0x3103('0x5d')){if(_0x3407f9[_0x3103('0x58')][_0x3103('0x24')]('\x20')[_0x3103('0x3a')]>0x1){_0x3758a4[_0x4ee28c](_0x3103('0x5e'),qs[_0x3103('0x5f')](_0x3407f9[_0x3103('0x58')]),null);}else{var _0x1461d9='%'+_0x3407f9[_0x3103('0x58')]+'%';_0x3758a4[_0x4ee28c](_0x3103('0x60'),_0x1461d9,_0x1461d9,_0x1461d9);}}else{_0x3a7c2e=_[_0x3103('0x56')](_0x5c06ba,[_0x3103('0x1f'),'ContactId']);_0x3407f9[_0x3103('0x3f')]=_0x3103('0x61');_0x59c62b=as[_0x3103('0x62')](_0x579752,_0x3a7c2e[_0x3103('0x31')],_0x3407f9);_0x3758a4[_0x4ee28c](_0x59c62b['text'],_0x59c62b[_0x3103('0x58')][_0x3103('0x63')],_0x59c62b[_0x3103('0x58')][_0x3103('0x1d')]);}break;case _0x3103('0x64'):var _0x1ca1f4=_0x3407f9[_0x3103('0x58')][_0x3103('0x24')](',')[_0x3103('0x22')](function(_0x1dfee7){return Number(_0x1dfee7);});_0x1ca1f4[_0x3103('0x25')](function(_0x3c2122){_0x15ceb1['or'](_0x3103('0x65'),'%,'+_0x3c2122+',%');});_0x30cd00=_['union'](_0x30cd00,_0x1ca1f4);break;case'User':if(_0x3407f9[_0x3103('0x5c')]==='$substring'){_0x3758a4[_0x4ee28c]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x3407f9['value']+'%',null);}else{_0x3a7c2e=_[_0x3103('0x56')](_0x5c06ba,[_0x3103('0x1f'),_0x3103('0x66')]);_0x3407f9[_0x3103('0x3f')]=_0x3103('0x66');_0x59c62b=as[_0x3103('0x62')](_0x579752,_0x3a7c2e[_0x3103('0x31')],_0x3407f9);_0x3758a4[_0x4ee28c](_0x59c62b[_0x3103('0x67')],_0x59c62b['value'][_0x3103('0x63')],_0x59c62b['value'][_0x3103('0x1d')]);}break;case'plainBody':_0x59c62b=as['buildExpression']('me',null,_0x3407f9);_0x3758a4[_0x4ee28c](_0x59c62b[_0x3103('0x67')],_0x59c62b['value'][_0x3103('0x63')],_0x59c62b[_0x3103('0x58')][_0x3103('0x1d')]);break;}}else{var _0x59c62b=as[_0x3103('0x62')](_0x579752,_0x3a7c2e[_0x3103('0x31')],_0x3407f9);_0x3758a4[_0x4ee28c](_0x59c62b[_0x3103('0x67')],_0x59c62b['value'][_0x3103('0x63')],_0x59c62b['value'][_0x3103('0x1d')]);}}}else{var _0x578817=_(_0x2edb65[_0x3103('0x35')])['keys']()[_0x3103('0x22')](function(_0x3fe04d){return _[_0x3103('0x68')](_0x5c06ba,[_0x3103('0x1f'),_0x3fe04d])?_0x3fe04d:undefined;})[_0x3103('0x69')]()[_0x3103('0x58')]();if(!_['isEmpty'](_0x578817)){_0x578817[_0x3103('0x25')](function(_0x22137e){if(_0x22137e===_0x3103('0x6a')){_0x34e68b['where'](_0x3103('0x6b'),[][_0x3103('0x6c')](_0x2edb65[_0x3103('0x35')][_0x22137e]));}else if(_0x22137e===_0x3103('0x6d')){var _0x7b05fe=JSON['parse'](_0x2edb65[_0x3103('0x35')][_0x22137e])[_0x3103('0x6e')];var _0x3a54a4=JSON[_0x3103('0x6f')](_0x2edb65[_0x3103('0x35')][_0x22137e])[_0x3103('0x70')];_0x34e68b['where'](_0x3103('0x71'),_0x7b05fe,_0x3a54a4);}else{if(_0x2edb65[_0x3103('0x35')][_0x22137e]===_0x3103('0x72')){_0x34e68b['where']('i.'+_0x22137e+_0x3103('0x73'));}else{_0x34e68b[_0x3103('0x3d')]('i.'+_0x22137e+_0x3103('0x74'),_0x2edb65[_0x3103('0x35')][_0x22137e]);}}});}if(_0x2edb65[_0x3103('0x35')][_0x3103('0x75')]){if(_0x2edb65['query'][_0x3103('0x75')]==0x1){_0x34e68b[_0x3103('0x59')](_0x3103('0x76'));}else{_0x34e68b['having'](_0x3103('0x77'));}}if(_0x2edb65[_0x3103('0x35')][_0x3103('0x78')]){_0x30cd00=_[_0x3103('0x79')](_0x2edb65[_0x3103('0x35')]['tag'])?_0x2edb65[_0x3103('0x35')][_0x3103('0x78')]:new Array(_0x2edb65['query']['tag']);_0x30cd00['forEach'](function(_0x238e5e){_0x15ceb1['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x238e5e+',%');});}if(_0x2edb65[_0x3103('0x35')]['filter']){var _0x2805c0=_0x2edb65['query'][_0x3103('0x7a')][_0x3103('0x7b')]('\x5c','\x5c\x5c')[_0x3103('0x7b')](/'/g,'\x27\x27');if(qs[_0x3103('0x7c')](_0x2805c0)){_0x3758a4['or'](_0x3103('0x7d'),_0x2805c0+'%');}else if(qs[_0x3103('0x7e')](_0x2805c0)){_0x3758a4['or'](_0x3103('0x7f'),_0x2805c0+'%');}else{_0x3758a4['or'](_0x3103('0x80'),qs[_0x3103('0x5f')](_0x2805c0))['or'](_0x3103('0x81'),qs[_0x3103('0x5f')](_0x2805c0));}}}_0x34e68b[_0x3103('0x3d')](_0x3758a4);_0x34e68b[_0x3103('0x82')](_0x3103('0x83'));var _0xa8b9d4={'type':db[_0x3103('0x84')][_0x3103('0x85')]['SELECT'],'raw':!![]};var _0x1eb15c=_0x34e68b['clone']();_0x1eb15c[_0x3103('0x3f')](_0x3103('0x83'));_0x1eb15c[_0x3103('0x3f')](_0x3103('0x86'),_0x3103('0x57'));if(_0x5066ea[_0x3103('0x87')]){_0x5066ea[_0x3103('0x87')]['forEach'](function(_0x338252){var _0x3c62d0=_0x338252[0x0]===_0x3103('0x88')?_0x338252[0x0]:'i.'+_0x338252[0x0];_0x34e68b[_0x3103('0x87')](_0x3c62d0,_0x338252[0x1]==='DESC'?![]:!![]);});}if(!_[_0x3103('0x89')](_0x30cd00)){_0x34e68b[_0x3103('0x59')](_0x15ceb1);_0x1eb15c[_0x3103('0x3d')]('t.id\x20IN\x20?',_0x30cd00);}BPromise[_0x3103('0x8a')]()[_0x3103('0x1c')](function(){if(!_0x41856c){if(_0x2edb65[_0x3103('0x35')]['MailAccountId'])return;_0x1eb15c[_0x3103('0x3d')](_0x3103('0x8b'));_0x34e68b[_0x3103('0x3d')](_0x3103('0x8b'));return;}if(_0x2edb65[_0x3103('0x8c')][_0x3103('0x8d')]!==_0x3103('0x8e'))return;return _0x2edb65['user'][_0x3103('0x8f')]({'attributes':['id'],'raw':!![]})[_0x3103('0x1c')](function(_0x32bb0f){if(_['isEmpty'](_0x32bb0f)){_0x1eb15c[_0x3103('0x3d')](_0x3103('0x90'));_0x34e68b[_0x3103('0x3d')](_0x3103('0x90'));}else{_0x1eb15c['where']('i.MailAccountId\x20IN\x20?',_[_0x3103('0x22')](_0x32bb0f,'id'));_0x34e68b[_0x3103('0x3d')](_0x3103('0x6b'),_[_0x3103('0x22')](_0x32bb0f,'id'));}});})[_0x3103('0x1c')](function(){if(_0x2edb65[_0x3103('0x8c')][_0x3103('0x8d')]===_0x3103('0x8e')&&!_0x41856c&&!_0x2edb65[_0x3103('0x35')]['MailAccountId'])return[];return db[_0x3103('0x91')][_0x3103('0x35')](_0x1eb15c[_0x3103('0x92')](),_0xa8b9d4);})[_0x3103('0x1c')](function(_0x154c47){_0x2f7be6[_0x3103('0x18')]=_0x154c47[_0x3103('0x3a')];if(_0x2f7be6[_0x3103('0x18')]===0x0)return[];return db[_0x3103('0x91')]['query'](_0x236475[_0x3103('0x92')](),_0xa8b9d4)['then'](function(_0xdaef76){_0x3d6b9e=_[_0x3103('0x93')](_0xdaef76,'id');_0xa8b9d4=_[_0x3103('0x94')](_0xa8b9d4,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2edb65['query'][_0x3103('0x39')]){_0x5066ea[_0x3103('0x38')]['forEach'](function(_0x469c40){_0x34e68b[_0x3103('0x3f')]('i.'+_0x469c40);});}else{_0x34e68b[_0x3103('0x3f')](_0x3103('0x86'),'unreadMessages');_0x34e68b[_0x3103('0x3f')](_0x3103('0x95'),_0x3103('0x96'));_0x34e68b[_0x3103('0x3f')](_0x3103('0x97'),_0x3103('0x98'));_0x34e68b[_0x3103('0x3f')]('CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0x3103('0x88'));_0x34e68b[_0x3103('0x3f')](_0x3103('0x83'));_0x34e68b['field'](_0x3103('0x99'));_0x34e68b['field'](_0x3103('0x9a'));_0x34e68b[_0x3103('0x3f')](_0x3103('0x9b'));_0x34e68b[_0x3103('0x3f')](_0x3103('0x9c'));_0x34e68b[_0x3103('0x3f')]('i.attach');_0x34e68b['field'](_0x3103('0x9d'));_0x34e68b[_0x3103('0x3f')](_0x3103('0x9e'));_0x34e68b[_0x3103('0x3f')](_0x3103('0x9f'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xa0'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xa1'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xa2'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xa3'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xa4'));_0x34e68b[_0x3103('0x3f')]('i.ContactId');_0x34e68b['field'](_0x3103('0xa5'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xa6'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xa7'),_0x3103('0xa8'));_0x34e68b['field']('c.lastName','Contact.lastName');_0x34e68b[_0x3103('0x3f')](_0x3103('0xa9'),_0x3103('0xaa'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xab'),_0x3103('0xac'));_0x34e68b['field'](_0x3103('0xad'),_0x3103('0xae'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xaf'),'Contact.fax');_0x34e68b[_0x3103('0x3f')](_0x3103('0xb0'),_0x3103('0xb1'));_0x34e68b[_0x3103('0x3f')](_0x3103('0xb2'),_0x3103('0xb3'));_0x34e68b[_0x3103('0x3f')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x3103('0x23'));}if(_0x5066ea[_0x3103('0x17')])_0x34e68b[_0x3103('0x17')](_0x5066ea[_0x3103('0x17')]);if(_0x5066ea[_0x3103('0x15')])_0x34e68b[_0x3103('0x15')](_0x5066ea[_0x3103('0x15')]);return db[_0x3103('0x91')]['query'](_0x34e68b[_0x3103('0x92')](),_0xa8b9d4);})[_0x3103('0x1c')](function(_0x4bead4){if(_0x4bead4[_0x3103('0x3a')]>0x0)_0x56bfc5[_0x3103('0x3d')](_0x3103('0xb4'),_[_0x3103('0x22')](_0x4bead4,'id'));return db['sequelize'][_0x3103('0x35')](_0x56bfc5[_0x3103('0x92')](),_0xa8b9d4)['then'](function(_0x1b484f){var _0x5325d4=_[_0x3103('0xb5')](_0x1b484f,'MailInteractionId');var _0xeb6cb9=[];return db['Setting'][_0x3103('0x29')]({'attributes':[_0x3103('0xb6')],'raw':!![]})[_0x3103('0x1c')](function(_0x4fbffe){var _0x20dc46=_0x4fbffe['enableEmailPreview'];_0x4bead4[_0x3103('0x25')](function(_0x1aea8c){_0xeb6cb9[_0x3103('0x27')](updateMailInteraction(_0x1aea8c,_0x3d6b9e,_0x5325d4,_0x20dc46));});return BPromise[_0x3103('0xb7')](_0xeb6cb9);});});});})[_0x3103('0x1c')](function(_0x2c3c76){_0x2f7be6[_0x3103('0xb8')]=_0x2c3c76;return _0x2f7be6;})[_0x3103('0x1c')](respondWithFilteredResult(_0x29723e,_0x5066ea))[_0x3103('0x2e')](handleError(_0x29723e,null));};exports[_0x3103('0xb9')]=function(_0x53e304,_0x5c548c){var _0xe8a6f4={'raw':![],'where':{'id':_0x53e304[_0x3103('0xba')]['id']}},_0x1c3a3e={};_0x1c3a3e[_0x3103('0x33')]=_[_0x3103('0x34')](db[_0x3103('0xbb')][_0x3103('0xbc')]);_0x1c3a3e[_0x3103('0x35')]=_[_0x3103('0x34')](_0x53e304['query']);_0x1c3a3e[_0x3103('0x36')]=_[_0x3103('0x37')](_0x1c3a3e['model'],_0x1c3a3e['query']);_0xe8a6f4[_0x3103('0x38')]=_[_0x3103('0x37')](_0x1c3a3e[_0x3103('0x33')],qs[_0x3103('0x39')](_0x53e304['query'][_0x3103('0x39')]));_0xe8a6f4['attributes']=_0xe8a6f4[_0x3103('0x38')][_0x3103('0x3a')]?_0xe8a6f4[_0x3103('0x38')]:_0x1c3a3e[_0x3103('0x33')];if(_0x53e304[_0x3103('0x35')][_0x3103('0xbd')]){_0xe8a6f4[_0x3103('0xbe')]=[{'all':!![]}];}_0xe8a6f4=_['merge']({},_0xe8a6f4,_0x53e304[_0x3103('0xbf')]);return db[_0x3103('0xbb')]['find'](_0xe8a6f4)[_0x3103('0x1c')](handleEntityNotFound(_0x5c548c,null))[_0x3103('0x1c')](respondWithResult(_0x5c548c,null))[_0x3103('0x2e')](handleError(_0x5c548c,null));};exports[_0x3103('0xc0')]=function(_0x404004,_0x211e15){return db[_0x3103('0xbb')][_0x3103('0xc0')](_0x404004[_0x3103('0xc1')],{})[_0x3103('0x1c')](respondWithResult(_0x211e15,0xc9))[_0x3103('0x2e')](handleError(_0x211e15,null));};exports[_0x3103('0x1b')]=function(_0x571fa8,_0x4a1276){if(_0x571fa8[_0x3103('0xc1')]['id']){delete _0x571fa8[_0x3103('0xc1')]['id'];}return db[_0x3103('0xbb')][_0x3103('0x56')]({'where':{'id':_0x571fa8[_0x3103('0xba')]['id']}})['then'](handleEntityNotFound(_0x4a1276,null))[_0x3103('0x1c')](saveUpdates(_0x571fa8['body'],null))[_0x3103('0x1c')](respondWithResult(_0x4a1276,null))[_0x3103('0x2e')](handleError(_0x4a1276,null));};exports[_0x3103('0xc2')]=function(_0x5095e0,_0x48c06e){return db[_0x3103('0xbb')]['find']({'where':{'id':_0x5095e0[_0x3103('0xba')]['id']}})[_0x3103('0x1c')](handleEntityNotFound(_0x48c06e,null))[_0x3103('0x1c')](removeEntity(_0x48c06e,null))[_0x3103('0x2e')](handleError(_0x48c06e,null));};exports[_0x3103('0xc3')]=function(_0xb8ad48,_0x5b87b2){return db[_0x3103('0xbb')][_0x3103('0xc3')]()[_0x3103('0x1c')](respondWithResult(_0x5b87b2,null))[_0x3103('0x2e')](handleError(_0x5b87b2,null));};exports[_0x3103('0xc4')]=function(_0x303c26,_0x538936){return db[_0x3103('0x28')][_0x3103('0x56')]({'where':{'id':_0x303c26[_0x3103('0xba')]['id']}})['then'](handleEntityNotFound(_0x538936,null))['then'](function(_0x2c6fdc){if(_0x2c6fdc){return _0x2c6fdc[_0x3103('0xc4')](_0x303c26[_0x3103('0xc1')][_0x3103('0xc5')],_['omit'](_0x303c26[_0x3103('0xc1')],[_0x3103('0xc5'),'id'])||{});}})[_0x3103('0x1c')](respondWithResult(_0x538936,null))[_0x3103('0x2e')](handleError(_0x538936,null));};exports[_0x3103('0xc6')]=function(_0x56bbd9,_0x1966dc){var _0x1bcd1e={'raw':![],'where':{}};var _0x26c2a2={};var _0x377b73={'count':0x0,'rows':[]};return db['MailInteraction']['findOne']({'where':{'id':_0x56bbd9['params']['id']}})[_0x3103('0x1c')](handleEntityNotFound(_0x1966dc,null))[_0x3103('0x1c')](function(_0xc0b57d){if(_0xc0b57d){_0x26c2a2[_0x3103('0x33')]=_['keys'](db[_0x3103('0x28')][_0x3103('0xbc')]);_0x26c2a2['query']=_[_0x3103('0x34')](_0x56bbd9['query']);_0x26c2a2[_0x3103('0x36')]=_[_0x3103('0x37')](_0x26c2a2['model'],_0x26c2a2[_0x3103('0x35')]);_0x1bcd1e[_0x3103('0x38')]=_[_0x3103('0x37')](_0x26c2a2[_0x3103('0x33')],qs[_0x3103('0x39')](_0x56bbd9[_0x3103('0x35')][_0x3103('0x39')]));_0x1bcd1e['attributes']=_0x1bcd1e['attributes']['length']?_0x1bcd1e[_0x3103('0x38')]:_0x26c2a2[_0x3103('0x33')];if(!_0x56bbd9[_0x3103('0x35')]['hasOwnProperty'](_0x3103('0x3b'))){_0x1bcd1e['limit']=qs[_0x3103('0x17')](_0x56bbd9['query']['limit']);_0x1bcd1e[_0x3103('0x15')]=qs['offset'](_0x56bbd9[_0x3103('0x35')]['offset']);}_0x1bcd1e[_0x3103('0x87')]=qs[_0x3103('0x3c')](_0x56bbd9[_0x3103('0x35')][_0x3103('0x3c')]);_0x1bcd1e[_0x3103('0x3d')]=qs[_0x3103('0x36')](_[_0x3103('0xc7')](_0x56bbd9[_0x3103('0x35')],_0x26c2a2[_0x3103('0x36')]));_0x1bcd1e[_0x3103('0x3d')][_0x3103('0xc8')]=_0xc0b57d['id'];if(_0x56bbd9[_0x3103('0x35')][_0x3103('0x7a')]){_0x1bcd1e['where']=_[_0x3103('0x94')](_0x1bcd1e[_0x3103('0x3d')],{'$or':_['map'](_0x1bcd1e[_0x3103('0x38')],function(_0x49c86b){var _0x3acd0b={};_0x3acd0b[_0x49c86b]={'$like':'%'+_0x56bbd9[_0x3103('0x35')][_0x3103('0x7a')]+'%'};return _0x3acd0b;})});}if(_0x56bbd9[_0x3103('0x35')]['$gte']){var _0x490b9c=_0x56bbd9[_0x3103('0x35')][_0x3103('0x6e')][_0x3103('0x24')](',');var _0x216117={};_0x216117[_0x490b9c[0x0]]={'$gte':moment(_0x490b9c[0x1])[_0x3103('0xc9')](_0x3103('0xca'))};_0x1bcd1e[_0x3103('0x3d')]=_[_0x3103('0x94')](_0x1bcd1e[_0x3103('0x3d')],_0x216117);}_0x1bcd1e=_[_0x3103('0x94')]({},_0x1bcd1e,_0x56bbd9['options']);return db[_0x3103('0x28')][_0x3103('0x18')]({'where':_0x1bcd1e[_0x3103('0x3d')]})[_0x3103('0x1c')](function(_0x426709){_0x377b73[_0x3103('0x18')]=_0x426709;if(_0x56bbd9[_0x3103('0x35')]['includeAll']){_0x1bcd1e[_0x3103('0xbe')]=[{'all':!![]}];}return db[_0x3103('0x28')][_0x3103('0xcb')](_0x1bcd1e);})[_0x3103('0x1c')](function(_0x5a5af4){if(_0x56bbd9[_0x3103('0x35')][_0x3103('0xcc')]==='true'){for(var _0x22ad58=0x0;_0x22ad58<_0x5a5af4['length'];_0x22ad58++){_0x5a5af4[_0x22ad58][_0x3103('0xc1')]=juice(_0x5a5af4[_0x22ad58]['body']);}}_0x377b73[_0x3103('0xb8')]=_0x5a5af4;return _0x377b73;});}})[_0x3103('0x1c')](respondWithFilteredResult(_0x1966dc,_0x1bcd1e))[_0x3103('0x2e')](handleError(_0x1966dc,null));};exports[_0x3103('0xcd')]=function(_0x41f9db,_0x3a3799){return db['MailInteraction'][_0x3103('0x56')]({'where':{'id':_0x41f9db[_0x3103('0xba')]['id']}})['then'](handleEntityNotFound(_0x3a3799,null))['then'](function(_0xe7a710){if(_0xe7a710){return _0xe7a710[_0x3103('0xce')](_0x41f9db[_0x3103('0xc1')]['ids'],_[_0x3103('0xcf')](_0x41f9db['body'],[_0x3103('0xc5'),'id'])||{})[_0x3103('0xd0')](function(){return db[_0x3103('0x64')]['findAll']({'attributes':['id',_0x3103('0x1f'),'color'],'where':{'id':_0x41f9db[_0x3103('0xc1')][_0x3103('0xc5')]}});})[_0x3103('0x1c')](function(_0x184d44){socket[_0x3103('0xd1')](_0x3103('0xd2'),{'id':Number(_0x41f9db[_0x3103('0xba')]['id']),'tags':_0x184d44||[]});return{'id':Number(_0x41f9db[_0x3103('0xba')]['id']),'tags':_0x184d44||[]};});}})[_0x3103('0x1c')](respondWithResult(_0x3a3799,null))[_0x3103('0x2e')](handleError(_0x3a3799,null));};exports[_0x3103('0xd3')]=function(_0x1e43e8,_0x41289d){return db[_0x3103('0xbb')]['find']({'where':{'id':_0x1e43e8[_0x3103('0xba')]['id']}})[_0x3103('0x1c')](handleEntityNotFound(_0x41289d,null))[_0x3103('0x1c')](function(_0x328425){if(_0x328425){return _0x328425['removeTags'](_0x1e43e8['query'][_0x3103('0xc5')]);}})[_0x3103('0x1c')](respondWithStatusCode(_0x41289d,null))[_0x3103('0x2e')](handleError(_0x41289d,null));};exports['download']=function(_0x26b9e9,_0x59fe9f){var _0x3f72d2=moment()['unix']()['toString']();var _0x5de279=path[_0x3103('0xd4')](config[_0x3103('0xd5')],_0x3103('0xd6'),_0x3103('0xd7'),_0x3103('0xd8'));var _0x115381=path[_0x3103('0xd4')](config[_0x3103('0xd5')],_0x3103('0xd6'),_0x3103('0xd7'),_0x3103('0xd9'));var _0x221870=path[_0x3103('0xd4')](_0x5de279,_0x3f72d2);var _0x81981c=util['format'](_0x3103('0xda'),_0x26b9e9[_0x3103('0xba')]['id'],_0x3f72d2);var _0x5497ef=path['join'](_0x5de279,_0x81981c);var _0x4ae77b=[];if(_0x26b9e9['query'][_0x3103('0xd9')]){_0x4ae77b[_0x3103('0x27')]({'model':db[_0x3103('0xdb')],'as':_0x3103('0xdc'),'raw':!![]});}var _0x440daa=[{'model':db[_0x3103('0x28')],'as':_0x3103('0xdd'),'attributes':['id','body',_0x3103('0x40'),'to','cc',_0x3103('0xde'),'subject',_0x3103('0x6d')],'where':{'secret':![]},'order':qs[_0x3103('0x3c')]('id'),'include':_0x4ae77b}];return db[_0x3103('0xbb')]['find']({'where':{'id':_0x26b9e9['params']['id']},'include':_0x440daa})['then'](handleEntityNotFound(_0x59fe9f,null))[_0x3103('0x1c')](function(_0x529e33){if(_0x529e33&&_0x529e33[_0x3103('0xdd')]){var _0x166c3b=_0x529e33[_0x3103('0xdf')]({'plain':!![]});fs['mkdirSync'](_0x221870);return BPromise[_0x3103('0xe0')](_0x166c3b['Messages'],function(_0x481b93,_0x39460e){var _0x50dab7={'from':_0x481b93[_0x3103('0x40')],'to':_0x481b93['to'],'subject':_0x481b93[_0x3103('0xe1')],'html':htmlEntities[_0x3103('0xe2')](_0x481b93[_0x3103('0xc1')]),'headers':{'Date':moment(_0x481b93[_0x3103('0x6d')])[_0x3103('0xc9')](_0x3103('0xe3'))},'attachments':[]};if(_0x481b93['cc']){_0x50dab7[_0x3103('0xe4')]['Cc']=_0x481b93['cc'];}if(_0x481b93['bcc']){_0x50dab7[_0x3103('0xe4')][_0x3103('0xe5')]=_0x481b93[_0x3103('0xde')];}return new BPromise(function(_0x2d21eb,_0x44c3be){if(_0x481b93[_0x3103('0xdc')]){for(var _0x59e76f=0x0;_0x59e76f<_0x481b93[_0x3103('0xdc')]['length'];_0x59e76f++){var _0x3d5714=_0x481b93[_0x3103('0xdc')][_0x59e76f];var _0x371fd6=path[_0x3103('0xd4')](_0x115381,_0x3d5714[_0x3103('0xe6')]);if(fs['existsSync'](_0x371fd6)){_0x50dab7['attachments']['push']({'name':_0x3d5714[_0x3103('0x1f')],'contentType':_0x3d5714[_0x3103('0x31')],'data':fs[_0x3103('0xe7')](_0x371fd6)});}}}emlformat[_0x3103('0xe8')](_0x50dab7,function(_0x432414,_0x331ebc){if(_0x432414)return _0x44c3be(_0x432414);fs['writeFileSync'](path[_0x3103('0xd4')](_0x221870,util[_0x3103('0xc9')]('message%d.eml',_0x39460e)),_0x331ebc);return _0x2d21eb(_0x331ebc);});});})[_0x3103('0x1c')](function(){return new BPromise(function(_0x13b29e,_0x40652f){zipdir(_0x221870,{'saveTo':_0x5497ef},function(_0x2f843e,_0x57b9a2){if(_0x2f843e)return _0x40652f(_0x2f843e);return _0x13b29e(_0x57b9a2);});})[_0x3103('0x1c')](function(){return new BPromise(function(_0x3d41e1,_0x593fe6){rimraf(_0x221870,function(_0xc45fa2){if(_0xc45fa2)_0x593fe6(_0xc45fa2);return _0x3d41e1();});});})[_0x3103('0x1c')](function(){return _0x59fe9f['download'](_0x5497ef,_0x81981c,function(_0x1bbc1f){if(!_0x1bbc1f)fs['unlinkSync'](_0x5497ef);});});});}else{return _0x59fe9f['sendStatus'](0xc8);}})[_0x3103('0x2e')](handleError(_0x59fe9f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9362=['emit','hasOwnProperty','exports','events','../../mysqldb','MailInteraction','save','update','remove','getUsers','then','Users','map','findAll','setDataValue','unreadMessages','length'];(function(_0x557f77,_0x2ff13f){var _0x166ce5=function(_0x153405){while(--_0x153405){_0x557f77['push'](_0x557f77['shift']());}};_0x166ce5(++_0x2ff13f);}(_0x9362,0x1f0));var _0x2936=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9362[_0x14add3];return _0x4a174f;};'use strict';var EventEmitter=require(_0x2936('0x0'));var MailInteraction=require(_0x2936('0x1'))['db'][_0x2936('0x2')];var MailMessage=require(_0x2936('0x1'))['db']['MailMessage'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2936('0x3'),'afterUpdate':_0x2936('0x4'),'afterDestroy':_0x2936('0x5')};function emitEvent(_0x32a7e7){return function(_0x3c298c,_0x3ef715,_0x57bd7e){_0x3c298c[_0x2936('0x6')]({'attributes':['id'],'raw':!![]})[_0x2936('0x7')](function(_0x211c2c){_0x3c298c['setDataValue'](_0x2936('0x8'),_0x211c2c[_0x2936('0x9')](function(_0x2c187b){return{'id':_0x2c187b['id']};}));return MailMessage[_0x2936('0xa')]({'where':{'MailInteractionId':_0x3c298c['id'],'direction':'in','read':![]},'raw':!![]});})[_0x2936('0x7')](function(_0x55da29){_0x3c298c[_0x2936('0xb')](_0x2936('0xc'),_0x55da29[_0x2936('0xd')]);MailInteractionEvents[_0x2936('0xe')](_0x32a7e7+':'+_0x3c298c['id'],_0x3c298c);MailInteractionEvents[_0x2936('0xe')](_0x32a7e7,_0x3c298c);_0x57bd7e(null);})['catch'](_0x57bd7e(null));};}for(var e in events){if(events[_0x2936('0xf')](e)){var event=events[e];MailInteraction['hook'](e,emitEvent(event));}}module[_0x2936('0x10')]=MailInteractionEvents;
\ No newline at end of file
+var _0xcc6e=['hook','exports','../../mysqldb','MailInteraction','setMaxListeners','save','update','remove','getUsers','then','Users','map','setDataValue','unreadMessages','length','emit','catch','hasOwnProperty'];(function(_0x3d4672,_0x298336){var _0x544a88=function(_0x4b3f13){while(--_0x4b3f13){_0x3d4672['push'](_0x3d4672['shift']());}};_0x544a88(++_0x298336);}(_0xcc6e,0x1c4));var _0xecc6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcc6e[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require('events');var MailInteraction=require(_0xecc6('0x0'))['db'][_0xecc6('0x1')];var MailMessage=require(_0xecc6('0x0'))['db']['MailMessage'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0xecc6('0x2')](0x0);var events={'afterCreate':_0xecc6('0x3'),'afterUpdate':_0xecc6('0x4'),'afterDestroy':_0xecc6('0x5')};function emitEvent(_0x100979){return function(_0x2e222d,_0x582c64,_0x494704){_0x2e222d[_0xecc6('0x6')]({'attributes':['id'],'raw':!![]})[_0xecc6('0x7')](function(_0x8e18e8){_0x2e222d['setDataValue'](_0xecc6('0x8'),_0x8e18e8[_0xecc6('0x9')](function(_0x58521f){return{'id':_0x58521f['id']};}));return MailMessage['findAll']({'where':{'MailInteractionId':_0x2e222d['id'],'direction':'in','read':![]},'raw':!![]});})[_0xecc6('0x7')](function(_0x532b46){_0x2e222d[_0xecc6('0xa')](_0xecc6('0xb'),_0x532b46[_0xecc6('0xc')]);MailInteractionEvents[_0xecc6('0xd')](_0x100979+':'+_0x2e222d['id'],_0x2e222d);MailInteractionEvents[_0xecc6('0xd')](_0x100979,_0x2e222d);_0x494704(null);})[_0xecc6('0xe')](_0x494704(null));};}for(var e in events){if(events[_0xecc6('0xf')](e)){var event=events[e];MailInteraction[_0xecc6('0x10')](e,emitEvent(event));}}module[_0xecc6('0x11')]=MailInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd9c=['format','closed','closedAt','changed','YYYY-MM-DD\x20HH:mm:ss','get','MailMessage','update','then','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','exports','define','mail_interactions','fti_mail_interactions','subject','FULLTEXT','substatus','substatusAt'];(function(_0x2fbcf6,_0x2e7155){var _0x3e7265=function(_0x15a3c3){while(--_0x15a3c3){_0x2fbcf6['push'](_0x2fbcf6['shift']());}};_0x3e7265(++_0x2e7155);}(_0xcd9c,0x7c));var _0xccd9=function(_0x43f6df,_0x7cee2c){_0x43f6df=_0x43f6df-0x0;var _0x38b714=_0xcd9c[_0x43f6df];return _0x38b714;};'use strict';var _=require(_0xccd9('0x0'));var util=require(_0xccd9('0x1'));var logger=require(_0xccd9('0x2'))(_0xccd9('0x3'));var moment=require('moment');var BPromise=require(_0xccd9('0x4'));var rp=require(_0xccd9('0x5'));var fs=require('fs');var path=require(_0xccd9('0x6'));var rimraf=require('rimraf');var config=require(_0xccd9('0x7'));var attributes=require('./mailInteraction.attributes');module[_0xccd9('0x8')]=function(_0x1fdb7c,_0x4997b4){return _0x1fdb7c[_0xccd9('0x9')]('MailInteraction',attributes,{'tableName':_0xccd9('0xa'),'paranoid':![],'indexes':[{'name':_0xccd9('0xb'),'fields':[_0xccd9('0xc'),'to'],'type':_0xccd9('0xd')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0xb1590d,_0x36da92,_0x56f3e3){if(_0xb1590d[_0xccd9('0xe')]){_0xb1590d[_0xccd9('0xf')]=moment()[_0xccd9('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0xb1590d[_0xccd9('0x11')]){_0xb1590d[_0xccd9('0x12')]=moment()[_0xccd9('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}_0x56f3e3(null,_0x36da92);},'beforeUpdate':function(_0x4bc2b3,_0x280522,_0xd92e9c){if(_0x4bc2b3[_0xccd9('0x13')]('substatus')){_0x4bc2b3[_0xccd9('0xf')]=_0x4bc2b3['substatus']?moment()[_0xccd9('0x10')]('YYYY-MM-DD\x20HH:mm:ss'):null;}if(_0x4bc2b3[_0xccd9('0x13')](_0xccd9('0x11'))){_0x4bc2b3[_0xccd9('0x12')]=moment()['format'](_0xccd9('0x14'));_0x4bc2b3[_0xccd9('0xe')]=null;_0x4bc2b3['substatusAt']=null;}_0xd92e9c(null,_0x4bc2b3);},'afterUpdate':function(_0x364000,_0x40f425,_0x120ea6){var _0x177e10=_0x1fdb7c['models'];var _0x477851=_0x364000[_0xccd9('0x15')]({'plain':!![]});if(_0x477851[_0xccd9('0x11')]){return _0x177e10[_0xccd9('0x16')][_0xccd9('0x17')]({'read':!![]},{'where':{'MailInteractionId':_0x477851['id']}})[_0xccd9('0x18')](function(){_0x120ea6();})[_0xccd9('0x19')](function(_0x18dd54){_0x120ea6(_0x18dd54);});}else{_0x120ea6();}}},'charset':_0xccd9('0x1a'),'collate':_0xccd9('0x1b')});};
\ No newline at end of file
+var _0x3924=['MailInteraction','mail_interactions','fti_mail_interactions','subject','substatus','format','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','changed','models','get','update','then','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','request-promise','path','../../config/environment','exports'];(function(_0x50a19b,_0x80c4d0){var _0x19b42d=function(_0x15a23f){while(--_0x15a23f){_0x50a19b['push'](_0x50a19b['shift']());}};_0x19b42d(++_0x80c4d0);}(_0x3924,0x1ba));var _0x4392=function(_0xe926ec,_0x5c31ed){_0xe926ec=_0xe926ec-0x0;var _0x304bf2=_0x3924[_0xe926ec];return _0x304bf2;};'use strict';var _=require(_0x4392('0x0'));var util=require(_0x4392('0x1'));var logger=require(_0x4392('0x2'))('api');var moment=require(_0x4392('0x3'));var BPromise=require('bluebird');var rp=require(_0x4392('0x4'));var fs=require('fs');var path=require(_0x4392('0x5'));var rimraf=require('rimraf');var config=require(_0x4392('0x6'));var attributes=require('./mailInteraction.attributes');module[_0x4392('0x7')]=function(_0x11eb36,_0x24ad85){return _0x11eb36['define'](_0x4392('0x8'),attributes,{'tableName':_0x4392('0x9'),'paranoid':![],'indexes':[{'name':_0x4392('0xa'),'fields':[_0x4392('0xb'),'to'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x1c778b,_0x4537b1,_0x52343b){if(_0x1c778b[_0x4392('0xc')]){_0x1c778b['substatusAt']=moment()[_0x4392('0xd')](_0x4392('0xe'));}if(_0x1c778b[_0x4392('0xf')]){_0x1c778b[_0x4392('0x10')]=moment()[_0x4392('0xd')](_0x4392('0xe'));}_0x52343b(null,_0x4537b1);},'beforeUpdate':function(_0x7be5f1,_0x586f11,_0x52e952){if(_0x7be5f1[_0x4392('0x11')](_0x4392('0xc'))){_0x7be5f1['substatusAt']=_0x7be5f1[_0x4392('0xc')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):null;}if(_0x7be5f1['changed'](_0x4392('0xf'))){_0x7be5f1[_0x4392('0x10')]=moment()[_0x4392('0xd')]('YYYY-MM-DD\x20HH:mm:ss');_0x7be5f1[_0x4392('0xc')]=null;_0x7be5f1['substatusAt']=null;}_0x52e952(null,_0x7be5f1);},'afterUpdate':function(_0x4e7850,_0x39e6fc,_0x5cf490){var _0x72bc2b=_0x11eb36[_0x4392('0x12')];var _0x1d3ba4=_0x4e7850[_0x4392('0x13')]({'plain':!![]});if(_0x1d3ba4[_0x4392('0xf')]){return _0x72bc2b['MailMessage'][_0x4392('0x14')]({'read':!![]},{'where':{'MailInteractionId':_0x1d3ba4['id']}})[_0x4392('0x15')](function(){_0x5cf490();})[_0x4392('0x16')](function(_0x140bc9){_0x5cf490(_0x140bc9);});}else{_0x5cf490();}}},'charset':_0x4392('0x17'),'collate':_0x4392('0x18')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fb2=['limit','debug','stringify','AddTagsToMailInteraction','MailInteraction','find','ids','spread','AddTags','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','info','MailInteraction,\x20%s,\x20%s','request\x20sent','MailInteraction,\x20%s,\x20%s,\x20%s','error','code','message','catch','UpdateMailInteraction','update','body','options','raw','where','attributes'];(function(_0x2026f3,_0x4bc3ea){var _0x4aa64f=function(_0x7fe99b){while(--_0x7fe99b){_0x2026f3['push'](_0x2026f3['shift']());}};_0x4aa64f(++_0x4bc3ea);}(_0x1fb2,0x18f));var _0x21fb=function(_0x5b85e8,_0x548a56){_0x5b85e8=_0x5b85e8-0x0;var _0x1709b8=_0x1fb2[_0x5b85e8];return _0x1709b8;};'use strict';var _=require(_0x21fb('0x0'));var util=require(_0x21fb('0x1'));var moment=require(_0x21fb('0x2'));var BPromise=require(_0x21fb('0x3'));var rs=require(_0x21fb('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x21fb('0x5'))['db'];var utils=require(_0x21fb('0x6'));var logger=require('../../config/logger')(_0x21fb('0x7'));var config=require(_0x21fb('0x8'));var jayson=require(_0x21fb('0x9'));var client=jayson['client']['http']({'port':0x232a});config[_0x21fb('0xa')]=_[_0x21fb('0xb')](config['redis'],{'host':_0x21fb('0xc'),'port':0x18eb});var socket=require(_0x21fb('0xd'))(new Redis(config[_0x21fb('0xa')]));require(_0x21fb('0xe'))['register'](socket);function respondWithRpcPromise(_0x1172bd,_0x1b2c20,_0x5f46a6){return new BPromise(function(_0x1c20d8,_0x4f6d12){return client['request'](_0x1172bd,_0x5f46a6)['then'](function(_0x4b44dd){logger[_0x21fb('0xf')](_0x21fb('0x10'),_0x1b2c20,_0x21fb('0x11'));logger['debug'](_0x21fb('0x12'),_0x1b2c20,_0x21fb('0x11'),JSON['stringify'](_0x4b44dd));if(_0x4b44dd['error']){if(_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x14')]===0x1f4){logger[_0x21fb('0x13')]('MailInteraction,\x20%s,\x20%s',_0x1b2c20,_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);return _0x4f6d12(_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);}logger['error'](_0x21fb('0x10'),_0x1b2c20,_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);return _0x1c20d8(_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);}else{logger[_0x21fb('0xf')]('MailInteraction,\x20%s,\x20%s',_0x1b2c20,_0x21fb('0x11'));_0x1c20d8(_0x4b44dd['result'][_0x21fb('0x15')]);}})[_0x21fb('0x16')](function(_0x5e4f70){logger[_0x21fb('0x13')](_0x21fb('0x10'),_0x1b2c20,_0x5e4f70);_0x4f6d12(_0x5e4f70);});});}exports[_0x21fb('0x17')]=function(_0x11d5d7){var _0x59453b=this;return new Promise(function(_0xf6fdf9,_0x221e25){return db['MailInteraction'][_0x21fb('0x18')](_0x11d5d7[_0x21fb('0x19')],{'raw':_0x11d5d7[_0x21fb('0x1a')]?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x11d5d7['options']?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1c')]||null:null,'attributes':_0x11d5d7[_0x21fb('0x1a')]?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1d')]||null:null,'limit':_0x11d5d7[_0x21fb('0x1a')]?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1e')]||null:null})['then'](function(_0x28d90d){logger[_0x21fb('0xf')](_0x21fb('0x17'),_0x11d5d7);logger[_0x21fb('0x1f')]('UpdateMailInteraction',_0x11d5d7,JSON[_0x21fb('0x20')](_0x28d90d));_0xf6fdf9(_0x28d90d);})['catch'](function(_0x3f9e1f){logger['error']('UpdateMailInteraction',_0x3f9e1f['message'],_0x11d5d7);_0x221e25(_0x59453b[_0x21fb('0x13')](0x1f4,_0x3f9e1f['message']));});});};exports[_0x21fb('0x21')]=function(_0x587c56){return new Promise(function(_0x3b5655,_0x277522){return db[_0x21fb('0x22')][_0x21fb('0x23')]({'where':_0x587c56[_0x21fb('0x1a')]?_0x587c56[_0x21fb('0x1a')][_0x21fb('0x1c')]||null:null})['then'](function(_0x5765ea){if(_0x5765ea){return _0x5765ea['addTags'](_0x587c56['body'][_0x21fb('0x24')],_['omit'](_0x587c56[_0x21fb('0x19')],['ids','id'])||{});}})[_0x21fb('0x25')](function(_0x15883c){logger[_0x21fb('0xf')](_0x21fb('0x26'),_0x587c56);logger[_0x21fb('0x1f')](_0x21fb('0x26'),_0x587c56,JSON[_0x21fb('0x20')](_0x15883c));_0x3b5655(_0x15883c);})['catch'](function(_0x1f0e5e){logger['error'](_0x21fb('0x26'),_0x1f0e5e['message'],_0x587c56);_0x277522(_this[_0x21fb('0x13')](0x1f4,_0x1f0e5e[_0x21fb('0x15')]));});});};
\ No newline at end of file
+var _0x3ff6=['body','options','raw','attributes','limit','then','AddTagsToMailInteraction','find','where','addTags','ids','omit','spread','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./mailInteraction.socket','register','request','info','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','UpdateMailInteraction','MailInteraction','update'];(function(_0x31f215,_0x3dba42){var _0x3a60a5=function(_0x4cdc77){while(--_0x4cdc77){_0x31f215['push'](_0x31f215['shift']());}};_0x3a60a5(++_0x3dba42);}(_0x3ff6,0x1a3));var _0x63ff=function(_0x5ad666,_0x32ea02){_0x5ad666=_0x5ad666-0x0;var _0x19934e=_0x3ff6[_0x5ad666];return _0x19934e;};'use strict';var _=require(_0x63ff('0x0'));var util=require(_0x63ff('0x1'));var moment=require(_0x63ff('0x2'));var BPromise=require(_0x63ff('0x3'));var rs=require(_0x63ff('0x4'));var fs=require('fs');var Redis=require(_0x63ff('0x5'));var db=require(_0x63ff('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x63ff('0x7'))(_0x63ff('0x8'));var config=require(_0x63ff('0x9'));var jayson=require(_0x63ff('0xa'));var client=jayson[_0x63ff('0xb')]['http']({'port':0x232a});config[_0x63ff('0xc')]=_[_0x63ff('0xd')](config[_0x63ff('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x63ff('0xe'))(new Redis(config[_0x63ff('0xc')]));require(_0x63ff('0xf'))[_0x63ff('0x10')](socket);function respondWithRpcPromise(_0x387b03,_0xb631c7,_0x8794af){return new BPromise(function(_0xfd891e,_0x42d557){return client[_0x63ff('0x11')](_0x387b03,_0x8794af)['then'](function(_0xd441d6){logger[_0x63ff('0x12')](_0x63ff('0x13'),_0xb631c7,_0x63ff('0x14'));logger[_0x63ff('0x15')](_0x63ff('0x16'),_0xb631c7,_0x63ff('0x14'),JSON[_0x63ff('0x17')](_0xd441d6));if(_0xd441d6[_0x63ff('0x18')]){if(_0xd441d6[_0x63ff('0x18')][_0x63ff('0x19')]===0x1f4){logger[_0x63ff('0x18')](_0x63ff('0x13'),_0xb631c7,_0xd441d6['error'][_0x63ff('0x1a')]);return _0x42d557(_0xd441d6[_0x63ff('0x18')][_0x63ff('0x1a')]);}logger[_0x63ff('0x18')](_0x63ff('0x13'),_0xb631c7,_0xd441d6[_0x63ff('0x18')][_0x63ff('0x1a')]);return _0xfd891e(_0xd441d6['error']['message']);}else{logger[_0x63ff('0x12')](_0x63ff('0x13'),_0xb631c7,_0x63ff('0x14'));_0xfd891e(_0xd441d6['result'][_0x63ff('0x1a')]);}})[_0x63ff('0x1b')](function(_0x176e86){logger[_0x63ff('0x18')](_0x63ff('0x13'),_0xb631c7,_0x176e86);_0x42d557(_0x176e86);});});}exports[_0x63ff('0x1c')]=function(_0x29e361){var _0x46d1db=this;return new Promise(function(_0x5b5f91,_0x21aa64){return db[_0x63ff('0x1d')][_0x63ff('0x1e')](_0x29e361[_0x63ff('0x1f')],{'raw':_0x29e361[_0x63ff('0x20')]?_0x29e361[_0x63ff('0x20')][_0x63ff('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x29e361[_0x63ff('0x20')]?_0x29e361[_0x63ff('0x20')]['where']||null:null,'attributes':_0x29e361[_0x63ff('0x20')]?_0x29e361[_0x63ff('0x20')][_0x63ff('0x22')]||null:null,'limit':_0x29e361['options']?_0x29e361[_0x63ff('0x20')][_0x63ff('0x23')]||null:null})[_0x63ff('0x24')](function(_0x10b080){logger[_0x63ff('0x12')](_0x63ff('0x1c'),_0x29e361);logger[_0x63ff('0x15')](_0x63ff('0x1c'),_0x29e361,JSON[_0x63ff('0x17')](_0x10b080));_0x5b5f91(_0x10b080);})[_0x63ff('0x1b')](function(_0xf1113b){logger[_0x63ff('0x18')]('UpdateMailInteraction',_0xf1113b[_0x63ff('0x1a')],_0x29e361);_0x21aa64(_0x46d1db[_0x63ff('0x18')](0x1f4,_0xf1113b[_0x63ff('0x1a')]));});});};exports[_0x63ff('0x25')]=function(_0xe627a9){return new Promise(function(_0x2c26fe,_0xe60793){return db[_0x63ff('0x1d')][_0x63ff('0x26')]({'where':_0xe627a9[_0x63ff('0x20')]?_0xe627a9[_0x63ff('0x20')][_0x63ff('0x27')]||null:null})[_0x63ff('0x24')](function(_0x2cb78a){if(_0x2cb78a){return _0x2cb78a[_0x63ff('0x28')](_0xe627a9['body'][_0x63ff('0x29')],_[_0x63ff('0x2a')](_0xe627a9[_0x63ff('0x1f')],[_0x63ff('0x29'),'id'])||{});}})[_0x63ff('0x2b')](function(_0x46876b){logger['info'](_0x63ff('0x2c'),_0xe627a9);logger[_0x63ff('0x15')]('AddTags',_0xe627a9,JSON[_0x63ff('0x17')](_0x46876b));_0x2c26fe(_0x46876b);})['catch'](function(_0x28d347){logger[_0x63ff('0x18')]('AddTags',_0x28d347[_0x63ff('0x1a')],_0xe627a9);_0xe60793(_this[_0x63ff('0x18')](0x1f4,_0x28d347[_0x63ff('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb55=['removeListener','register','length','./mailInteraction.events','save','remove','update','emit'];(function(_0x3a4b77,_0x2e54a6){var _0x50b307=function(_0x157336){while(--_0x157336){_0x3a4b77['push'](_0x3a4b77['shift']());}};_0x50b307(++_0x2e54a6);}(_0xdb55,0x18b));var _0x5db5=function(_0x3d239d,_0x11a33f){_0x3d239d=_0x3d239d-0x0;var _0x1bd260=_0xdb55[_0x3d239d];return _0x1bd260;};'use strict';var MailInteractionEvents=require(_0x5db5('0x0'));var events=[_0x5db5('0x1'),_0x5db5('0x2'),_0x5db5('0x3')];function createListener(_0x5fadda,_0x367a2d){return function(_0x9f950d){_0x367a2d[_0x5db5('0x4')](_0x5fadda,_0x9f950d);};}function removeListener(_0xcab14c,_0x3e641a){return function(){MailInteractionEvents[_0x5db5('0x5')](_0xcab14c,_0x3e641a);};}exports[_0x5db5('0x6')]=function(_0x22882d){for(var _0x2ae7f8=0x0,_0x39833b=events[_0x5db5('0x7')];_0x2ae7f8<_0x39833b;_0x2ae7f8++){var _0x247a08=events[_0x2ae7f8];var _0x591ffc=createListener('mailInteraction:'+_0x247a08,_0x22882d);MailInteractionEvents['on'](_0x247a08,_0x591ffc);}};
\ No newline at end of file
+var _0xff47=['removeListener','mailInteraction:','emit'];(function(_0x4805ca,_0xf06b76){var _0x2fc6a9=function(_0x301d41){while(--_0x301d41){_0x4805ca['push'](_0x4805ca['shift']());}};_0x2fc6a9(++_0xf06b76);}(_0xff47,0xa7));var _0x7ff4=function(_0x15fc07,_0x41cc0c){_0x15fc07=_0x15fc07-0x0;var _0x3d2c0f=_0xff47[_0x15fc07];return _0x3d2c0f;};'use strict';var MailInteractionEvents=require('./mailInteraction.events');var events=['save','remove','update'];function createListener(_0xc803f9,_0xbd9c6a){return function(_0x4c0046){_0xbd9c6a[_0x7ff4('0x0')](_0xc803f9,_0x4c0046);};}function removeListener(_0x193668,_0x54d396){return function(){MailInteractionEvents[_0x7ff4('0x1')](_0x193668,_0x54d396);};}exports['register']=function(_0x439020){for(var _0x4efec8=0x0,_0x5bb2b2=events['length'];_0x4efec8<_0x5bb2b2;_0x4efec8++){var _0xd8156d=events[_0x4efec8];var _0xac9d13=createListener(_0x7ff4('0x2')+_0xd8156d,_0x439020);MailInteractionEvents['on'](_0xd8156d,_0xac9d13);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd31=['download','post','tracked','mail','mailmessage:create','create','/:id','update','put','/:id/accept','/:id/reject','delete','destroy','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailMessage.controller','isAuthenticated','index','get','describe','show','/:id/download'];(function(_0x1a430d,_0xdddb30){var _0x8553dd=function(_0x20d889){while(--_0x20d889){_0x1a430d['push'](_0x1a430d['shift']());}};_0x8553dd(++_0xdddb30);}(_0xcd31,0x15d));var _0x1cd3=function(_0x4d17ac,_0x25fa6f){_0x4d17ac=_0x4d17ac-0x0;var _0x24e8a5=_0xcd31[_0x4d17ac];return _0x24e8a5;};'use strict';var multer=require('multer');var util=require(_0x1cd3('0x0'));var path=require(_0x1cd3('0x1'));var timeout=require(_0x1cd3('0x2'));var express=require('express');var router=express[_0x1cd3('0x3')]();var fs_extra=require(_0x1cd3('0x4'));var auth=require(_0x1cd3('0x5'));var interaction=require(_0x1cd3('0x6'));var config=require(_0x1cd3('0x7'));var controller=require(_0x1cd3('0x8'));router['get']('/',auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xa')]);router[_0x1cd3('0xb')]('/describe',auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xc')]);router[_0x1cd3('0xb')]('/:id',auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xd')]);router[_0x1cd3('0xb')](_0x1cd3('0xe'),auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xf')]);router[_0x1cd3('0x10')]('/',auth['isAuthenticated'](),interaction[_0x1cd3('0x11')](_0x1cd3('0x12'),_0x1cd3('0x13')),controller[_0x1cd3('0x14')]);router['put'](_0x1cd3('0x15'),auth['isAuthenticated'](),controller[_0x1cd3('0x16')]);router[_0x1cd3('0x17')](_0x1cd3('0x18'),auth['isAuthenticated'](),controller['accept']);router[_0x1cd3('0x17')](_0x1cd3('0x19'),auth[_0x1cd3('0x9')](),controller['reject']);router[_0x1cd3('0x1a')](_0x1cd3('0x15'),auth[_0x1cd3('0x9')](),controller[_0x1cd3('0x1b')]);module['exports']=router;
\ No newline at end of file
+var _0x25a3=['put','/:id','/:id/accept','accept','/:id/reject','reject','delete','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','./mailMessage.controller','get','isAuthenticated','/describe','describe','show','/:id/download','download','post','tracked','mail','create'];(function(_0x319605,_0x6bfb93){var _0x2aa342=function(_0x28b44d){while(--_0x28b44d){_0x319605['push'](_0x319605['shift']());}};_0x2aa342(++_0x6bfb93);}(_0x25a3,0x121));var _0x325a=function(_0x3e7687,_0x403224){_0x3e7687=_0x3e7687-0x0;var _0x378eee=_0x25a3[_0x3e7687];return _0x378eee;};'use strict';var multer=require(_0x325a('0x0'));var util=require(_0x325a('0x1'));var path=require(_0x325a('0x2'));var timeout=require('connect-timeout');var express=require(_0x325a('0x3'));var router=express['Router']();var fs_extra=require(_0x325a('0x4'));var auth=require(_0x325a('0x5'));var interaction=require(_0x325a('0x6'));var config=require('../../config/environment');var controller=require(_0x325a('0x7'));router[_0x325a('0x8')]('/',auth[_0x325a('0x9')](),controller['index']);router['get'](_0x325a('0xa'),auth[_0x325a('0x9')](),controller[_0x325a('0xb')]);router[_0x325a('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x325a('0xc')]);router[_0x325a('0x8')](_0x325a('0xd'),auth[_0x325a('0x9')](),controller[_0x325a('0xe')]);router[_0x325a('0xf')]('/',auth['isAuthenticated'](),interaction[_0x325a('0x10')](_0x325a('0x11'),'mailmessage:create'),controller[_0x325a('0x12')]);router[_0x325a('0x13')](_0x325a('0x14'),auth[_0x325a('0x9')](),controller['update']);router['put'](_0x325a('0x15'),auth['isAuthenticated'](),controller[_0x325a('0x16')]);router[_0x325a('0x13')](_0x325a('0x17'),auth[_0x325a('0x9')](),controller[_0x325a('0x18')]);router[_0x325a('0x19')](_0x325a('0x14'),auth[_0x325a('0x9')](),controller[_0x325a('0x1a')]);module[_0x325a('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43a0=['ENUM','out','STRING','DATE','Email','sequelize','lodash','exports','TEXT','long','medium','BOOLEAN'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x43a0,0x1b5));var _0x043a=function(_0x2a381b,_0x2dc88d){_0x2a381b=_0x2a381b-0x0;var _0x38967c=_0x43a0[_0x2a381b];return _0x38967c;};'use strict';var Sequelize=require(_0x043a('0x0'));var _=require(_0x043a('0x1'));module[_0x043a('0x2')]={'body':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4')),'allowNull':![]},'plainBody':{'type':Sequelize['TEXT'](_0x043a('0x5'))},'read':{'type':Sequelize[_0x043a('0x6')],'defaultValue':![]},'direction':{'type':Sequelize[_0x043a('0x7')]('in',_0x043a('0x8')),'defaultValue':_0x043a('0x8'),'allowNull':![]},'messageId':{'type':Sequelize[_0x043a('0x9')](0x1fe)},'from':{'type':Sequelize[_0x043a('0x9')]},'to':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'cc':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'bcc':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'subject':{'type':Sequelize[_0x043a('0x3')]},'sentAt':{'type':Sequelize[_0x043a('0xa')]},'attach':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'secret':{'type':Sequelize[_0x043a('0x6')],'defaultValue':![]},'readAt':{'type':Sequelize['DATE']},'originTo':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'originCc':{'type':Sequelize['TEXT']('long')},'originChannel':{'type':Sequelize[_0x043a('0x7')](_0x043a('0xb'),'Chat'),'defaultValue':_0x043a('0xb'),'allowNull':![]}};
\ No newline at end of file
+var _0x08e3=['out','STRING','DATE','INTEGER','Email','Chat','sequelize','lodash','exports','TEXT','long','BOOLEAN','ENUM'];(function(_0x318f46,_0x3ed5a9){var _0x125f88=function(_0x388844){while(--_0x388844){_0x318f46['push'](_0x318f46['shift']());}};_0x125f88(++_0x3ed5a9);}(_0x08e3,0x165));var _0x308e=function(_0x25e2c2,_0x4b7e99){_0x25e2c2=_0x25e2c2-0x0;var _0x36254e=_0x08e3[_0x25e2c2];return _0x36254e;};'use strict';var Sequelize=require(_0x308e('0x0'));var _=require(_0x308e('0x1'));module[_0x308e('0x2')]={'body':{'type':Sequelize[_0x308e('0x3')](_0x308e('0x4')),'allowNull':![]},'plainBody':{'type':Sequelize[_0x308e('0x3')]('medium')},'read':{'type':Sequelize[_0x308e('0x5')],'defaultValue':![]},'direction':{'type':Sequelize[_0x308e('0x6')]('in',_0x308e('0x7')),'defaultValue':_0x308e('0x7'),'allowNull':![]},'messageId':{'type':Sequelize[_0x308e('0x8')](0x1fe)},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0x308e('0x3')](_0x308e('0x4'))},'cc':{'type':Sequelize[_0x308e('0x3')](_0x308e('0x4'))},'bcc':{'type':Sequelize[_0x308e('0x3')](_0x308e('0x4'))},'subject':{'type':Sequelize['TEXT']},'sentAt':{'type':Sequelize[_0x308e('0x9')]},'attach':{'type':Sequelize[_0x308e('0xa')],'defaultValue':0x0},'secret':{'type':Sequelize[_0x308e('0x5')],'defaultValue':![]},'readAt':{'type':Sequelize['DATE']},'originTo':{'type':Sequelize[_0x308e('0x3')]('long')},'originCc':{'type':Sequelize[_0x308e('0x3')](_0x308e('0x4'))},'originChannel':{'type':Sequelize['ENUM'](_0x308e('0xb'),_0x308e('0xc')),'defaultValue':'Email','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['message','info','catch','status','json','offset','undefined','limit','count','set','Content-Range','destroy','end','sendStatus','name','send','index','map','MailMessage','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','findAll','rows','show','params','length','include','find','body','create','direction','out','secret','MailAccount','findOne','CmList','List','CmContact','Contacts','DESC','MailServerOut','Smtp','isNil','service','host','port','secure','authentication','auth','user','pass','attachments','join','root','server/files/attachments','basename','ListId','sendMail','update','messageId','YYYY-MM-DD\x20HH:mm:ss','accept','readAt','UserId','agent','get','MailInteraction','MailInteractionId','format','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','internal','SIP/%s','channel','fromString','EventManager','acceptmessage','reject','mail','RejectMessage','rejectMessage','email','interface','event','rejectmessage','download','unix','toString','files','tmp','server','message-%s.eml','from','bcc','subject','createdAt','Attachment','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','push','build','writeFileSync','unlinkSync','eml-format','moment','bluebird','util','lodash','ioredis','html-to-text','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./mailMessage.socket','register','jayson/promise','client','http','request','then','MailMessage,\x20%s,\x20%s','request\x20sent','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x2ba740,_0x62a305){var _0x358bda=function(_0x16cc07){while(--_0x16cc07){_0x2ba740['push'](_0x2ba740['shift']());}};_0x358bda(++_0x62a305);}(_0x34e8,0x12c));var _0x834e=function(_0x2aac85,_0x22dfef){_0x2aac85=_0x2aac85-0x0;var _0x5a0aa7=_0x34e8[_0x2aac85];return _0x5a0aa7;};'use strict';var emlformat=require(_0x834e('0x0'));var moment=require(_0x834e('0x1'));var BPromise=require(_0x834e('0x2'));var util=require(_0x834e('0x3'));var path=require('path');var fs=require('fs');var _=require(_0x834e('0x4'));var Redis=require(_0x834e('0x5'));var htmlToText=require(_0x834e('0x6'));var qs=require(_0x834e('0x7'));var logger=require(_0x834e('0x8'))(_0x834e('0x9'));var interaction_log=require(_0x834e('0x8'))('mail-interactions');var config=require(_0x834e('0xa'));var db=require('../../mysqldb')['db'];config[_0x834e('0xb')]=_[_0x834e('0xc')](config[_0x834e('0xb')],{'host':_0x834e('0xd'),'port':0x18eb});var socket=require(_0x834e('0xe'))(new Redis(config[_0x834e('0xb')]));require(_0x834e('0xf'))[_0x834e('0x10')](socket);var jayson=require(_0x834e('0x11'));var client=jayson[_0x834e('0x12')][_0x834e('0x13')]({'port':0x232c});var client9003=jayson[_0x834e('0x12')][_0x834e('0x13')]({'port':0x232b});var client9002=jayson[_0x834e('0x12')][_0x834e('0x13')]({'port':0x232a});function respondWithRpcPromise(_0x1e00de,_0x2fd95c,_0x538bb3,_0x5e5b6d){return new BPromise(function(_0x6cd9b9,_0x58a27e){var _0x23848e=_0x5e5b6d||client;return _0x23848e[_0x834e('0x14')](_0x1e00de,_0x538bb3)[_0x834e('0x15')](function(_0x21cc0a){logger['info'](_0x834e('0x16'),_0x2fd95c,_0x834e('0x17'));logger['debug'](_0x834e('0x18'),_0x2fd95c,'request\x20sent',JSON[_0x834e('0x19')](_0x21cc0a));if(_0x21cc0a[_0x834e('0x1a')]){if(_0x21cc0a['error'][_0x834e('0x1b')]===0x1f4){logger[_0x834e('0x1a')](_0x834e('0x16'),_0x2fd95c,_0x21cc0a['error'][_0x834e('0x1c')]);return _0x58a27e(_0x21cc0a[_0x834e('0x1a')][_0x834e('0x1c')]);}logger[_0x834e('0x1a')](_0x834e('0x16'),_0x2fd95c,_0x21cc0a[_0x834e('0x1a')][_0x834e('0x1c')]);return _0x6cd9b9(_0x21cc0a['error'][_0x834e('0x1c')]);}else{logger[_0x834e('0x1d')](_0x834e('0x16'),_0x2fd95c,_0x834e('0x17'));_0x6cd9b9(_0x21cc0a['result'][_0x834e('0x1c')]);}})[_0x834e('0x1e')](function(_0x5a05c0){logger[_0x834e('0x1a')](_0x834e('0x16'),_0x2fd95c,_0x5a05c0);_0x58a27e(_0x5a05c0);});});}function respondWithResult(_0x8d406e,_0x5c55ca){_0x5c55ca=_0x5c55ca||0xc8;return function(_0x4e3f48){if(_0x4e3f48){return _0x8d406e[_0x834e('0x1f')](_0x5c55ca)[_0x834e('0x20')](_0x4e3f48);}};}function respondWithFilteredResult(_0x589dde,_0x25ee1d){return function(_0x1dc1e0){if(_0x1dc1e0){var _0x58f4fd=typeof _0x25ee1d[_0x834e('0x21')]===_0x834e('0x22')&&typeof _0x25ee1d[_0x834e('0x23')]==='undefined';var _0x24fcf7=_0x1dc1e0[_0x834e('0x24')];var _0x5e1cc5=_0x58f4fd?0x0:_0x25ee1d['offset'];var _0x1e713a=_0x58f4fd?_0x1dc1e0['count']:_0x25ee1d[_0x834e('0x21')]+_0x25ee1d[_0x834e('0x23')];var _0x3db026;if(_0x1e713a>=_0x24fcf7){_0x1e713a=_0x24fcf7;_0x3db026=0xc8;}else{_0x3db026=0xce;}_0x589dde[_0x834e('0x1f')](_0x3db026);return _0x589dde[_0x834e('0x25')](_0x834e('0x26'),_0x5e1cc5+'-'+_0x1e713a+'/'+_0x24fcf7)['json'](_0x1dc1e0);}return null;};}function saveUpdates(_0x510780){return function(_0x4dc64a){if(_0x4dc64a){return _0x4dc64a['update'](_0x510780)[_0x834e('0x15')](function(_0x567cea){return _0x567cea;});}return null;};}function removeEntity(_0x106d6a){return function(_0x5dacc1){if(_0x5dacc1){return _0x5dacc1[_0x834e('0x27')]()[_0x834e('0x15')](function(){_0x106d6a[_0x834e('0x1f')](0xcc)[_0x834e('0x28')]();});}};}function handleEntityNotFound(_0x4551f5){return function(_0x390119){if(!_0x390119){_0x4551f5[_0x834e('0x29')](0x194);}return _0x390119;};}function handleError(_0xfaf716,_0x278db3){_0x278db3=_0x278db3||0x1f4;return function(_0x493289){logger[_0x834e('0x1a')](_0x493289['stack']);if(_0x493289[_0x834e('0x2a')]){delete _0x493289[_0x834e('0x2a')];}_0xfaf716[_0x834e('0x1f')](_0x278db3)[_0x834e('0x2b')](_0x493289);};}exports[_0x834e('0x2c')]=function(_0x4689c2,_0x4696a1){var _0x38cd29={},_0x358c31={},_0x12b2bc={'count':0x0,'rows':[]};var _0x5bd232=_[_0x834e('0x2d')](db[_0x834e('0x2e')][_0x834e('0x2f')],function(_0xaf01f4){return{'name':_0xaf01f4['fieldName'],'type':_0xaf01f4[_0x834e('0x30')][_0x834e('0x31')]};});_0x358c31['model']=_['map'](_0x5bd232,'name');_0x358c31[_0x834e('0x32')]=_[_0x834e('0x33')](_0x4689c2[_0x834e('0x32')]);_0x358c31[_0x834e('0x34')]=_[_0x834e('0x35')](_0x358c31[_0x834e('0x36')],_0x358c31['query']);_0x38cd29[_0x834e('0x37')]=_['intersection'](_0x358c31[_0x834e('0x36')],qs[_0x834e('0x38')](_0x4689c2['query'][_0x834e('0x38')]));_0x38cd29[_0x834e('0x37')]=_0x38cd29['attributes']['length']?_0x38cd29[_0x834e('0x37')]:_0x358c31[_0x834e('0x36')];if(!_0x4689c2[_0x834e('0x32')][_0x834e('0x39')](_0x834e('0x3a'))){_0x38cd29['limit']=qs[_0x834e('0x23')](_0x4689c2['query']['limit']);_0x38cd29[_0x834e('0x21')]=qs['offset'](_0x4689c2[_0x834e('0x32')][_0x834e('0x21')]);}_0x38cd29[_0x834e('0x3b')]=qs[_0x834e('0x3c')](_0x4689c2[_0x834e('0x32')]['sort']);_0x38cd29[_0x834e('0x3d')]=qs[_0x834e('0x34')](_[_0x834e('0x3e')](_0x4689c2['query'],_0x358c31[_0x834e('0x34')]),_0x5bd232);if(_0x4689c2[_0x834e('0x32')]['filter']){_0x38cd29[_0x834e('0x3d')]=_['merge'](_0x38cd29[_0x834e('0x3d')],{'$or':_[_0x834e('0x2d')](_0x5bd232,function(_0x4a18bb){if(_0x4a18bb['type']!==_0x834e('0x3f')){var _0x16969b={};_0x16969b[_0x4a18bb[_0x834e('0x2a')]]={'$like':'%'+_0x4689c2[_0x834e('0x32')][_0x834e('0x40')]+'%'};return _0x16969b;}})});}_0x38cd29=_[_0x834e('0x41')]({},_0x38cd29,_0x4689c2[_0x834e('0x42')]);var _0x4a3381={'where':_0x38cd29[_0x834e('0x3d')]};return db['MailMessage'][_0x834e('0x24')](_0x4a3381)['then'](function(_0x1df5b0){_0x12b2bc['count']=_0x1df5b0;if(_0x4689c2[_0x834e('0x32')][_0x834e('0x43')]){_0x38cd29['include']=[{'all':!![]}];}return db[_0x834e('0x2e')][_0x834e('0x44')](_0x38cd29);})[_0x834e('0x15')](function(_0xd55cc3){_0x12b2bc[_0x834e('0x45')]=_0xd55cc3;return _0x12b2bc;})[_0x834e('0x15')](respondWithFilteredResult(_0x4696a1,_0x38cd29))[_0x834e('0x1e')](handleError(_0x4696a1,null));};exports[_0x834e('0x46')]=function(_0x5dc63b,_0x279ea1){var _0x5f3943={'raw':!![],'where':{'id':_0x5dc63b[_0x834e('0x47')]['id']}},_0x3124be={};_0x3124be['model']=_[_0x834e('0x33')](db[_0x834e('0x2e')][_0x834e('0x2f')]);_0x3124be[_0x834e('0x32')]=_[_0x834e('0x33')](_0x5dc63b[_0x834e('0x32')]);_0x3124be['filters']=_['intersection'](_0x3124be[_0x834e('0x36')],_0x3124be[_0x834e('0x32')]);_0x5f3943[_0x834e('0x37')]=_[_0x834e('0x35')](_0x3124be[_0x834e('0x36')],qs[_0x834e('0x38')](_0x5dc63b[_0x834e('0x32')][_0x834e('0x38')]));_0x5f3943[_0x834e('0x37')]=_0x5f3943[_0x834e('0x37')][_0x834e('0x48')]?_0x5f3943[_0x834e('0x37')]:_0x3124be[_0x834e('0x36')];if(_0x5dc63b[_0x834e('0x32')][_0x834e('0x43')]){_0x5f3943[_0x834e('0x49')]=[{'all':!![]}];}_0x5f3943=_[_0x834e('0x41')]({},_0x5f3943,_0x5dc63b[_0x834e('0x42')]);return db[_0x834e('0x2e')][_0x834e('0x4a')](_0x5f3943)['then'](handleEntityNotFound(_0x279ea1,null))[_0x834e('0x15')](respondWithResult(_0x279ea1,null))[_0x834e('0x1e')](handleError(_0x279ea1,null));};exports['update']=function(_0x3c00a3,_0x3b0988){if(_0x3c00a3['body']['id']){delete _0x3c00a3[_0x834e('0x4b')]['id'];}return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x3c00a3[_0x834e('0x47')]['id']}})[_0x834e('0x15')](handleEntityNotFound(_0x3b0988,null))[_0x834e('0x15')](saveUpdates(_0x3c00a3[_0x834e('0x4b')],null))['then'](respondWithResult(_0x3b0988,null))[_0x834e('0x1e')](handleError(_0x3b0988,null));};exports[_0x834e('0x27')]=function(_0x3e0550,_0x363675){return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x3e0550[_0x834e('0x47')]['id']}})[_0x834e('0x15')](handleEntityNotFound(_0x363675,null))['then'](removeEntity(_0x363675,null))[_0x834e('0x1e')](handleError(_0x363675,null));};exports['describe']=function(_0x2f4bde,_0x53a9ee){return db[_0x834e('0x2e')]['describe']()['then'](respondWithResult(_0x53a9ee,null))[_0x834e('0x1e')](handleError(_0x53a9ee,null));};exports[_0x834e('0x4c')]=function(_0x5291ae,_0x5be43d){return db[_0x834e('0x2e')][_0x834e('0x4c')](_0x5291ae[_0x834e('0x4b')])[_0x834e('0x15')](function(_0x21c417){if(_0x21c417){if(_0x21c417[_0x834e('0x4d')]===_0x834e('0x4e')&&!_0x21c417[_0x834e('0x4f')]){var _0x528e66,_0x142334,_0x3c70bf;if(_0x5291ae['body']['to']){_0x142334=_0x5291ae[_0x834e('0x4b')]['to']['split'](',')[0x0];}return db[_0x834e('0x50')][_0x834e('0x51')]({'where':{'id':_0x21c417['MailAccountId']},'include':[{'model':db[_0x834e('0x52')],'as':_0x834e('0x53'),'include':[{'model':db[_0x834e('0x54')],'as':_0x834e('0x55'),'where':{'email':_0x142334},'limit':0x1,'order':[['updatedAt',_0x834e('0x56')]]}]},{'model':db[_0x834e('0x57')],'as':_0x834e('0x58'),'raw':!![]}]})['then'](function(_0x246b8e){_0x528e66=_0x246b8e;if(_0x528e66&&_0x528e66[_0x834e('0x58')]){var _0x3a7683={'tls':{'rejectUnauthorized':![]}};if(_[_0x834e('0x59')](_0x528e66[_0x834e('0x58')][_0x834e('0x5a')])){_0x3a7683[_0x834e('0x5b')]=_0x528e66[_0x834e('0x58')][_0x834e('0x5b')];_0x3a7683[_0x834e('0x5c')]=_0x528e66[_0x834e('0x58')][_0x834e('0x5c')];_0x3a7683[_0x834e('0x5d')]=_0x528e66[_0x834e('0x58')][_0x834e('0x5d')];if(_0x528e66[_0x834e('0x58')][_0x834e('0x5e')]){_0x3a7683[_0x834e('0x5f')]={'user':_0x528e66[_0x834e('0x58')][_0x834e('0x60')],'pass':_0x528e66[_0x834e('0x58')][_0x834e('0x61')]};}}else{_0x3a7683['service']=_0x528e66[_0x834e('0x58')][_0x834e('0x5a')];_0x3a7683[_0x834e('0x5f')]={'user':_0x528e66[_0x834e('0x58')]['user'],'pass':_0x528e66[_0x834e('0x58')]['pass']};_0x3a7683['secure']=_0x528e66[_0x834e('0x58')][_0x834e('0x5d')];}if(_0x5291ae[_0x834e('0x4b')][_0x834e('0x62')]&&_0x5291ae[_0x834e('0x4b')][_0x834e('0x62')][_0x834e('0x48')]){for(var _0xe5c8f6=0x0;_0xe5c8f6<_0x5291ae['body'][_0x834e('0x62')]['length'];_0xe5c8f6+=0x1){_0x5291ae[_0x834e('0x4b')][_0x834e('0x62')][_0xe5c8f6]={'filename':_0x5291ae['body']['attachments'][_0xe5c8f6][_0x834e('0x2a')],'path':path[_0x834e('0x63')](config[_0x834e('0x64')],_0x834e('0x65'),_0x5291ae[_0x834e('0x4b')]['attachments'][_0xe5c8f6][_0x834e('0x66')])};}}_0x3c70bf={'account':_0x3a7683,'message':_0x5291ae[_0x834e('0x4b')]};return;}})[_0x834e('0x15')](function(){if(_0x528e66[_0x834e('0x53')]){if(_0x528e66[_0x834e('0x53')][_0x834e('0x55')][_0x834e('0x48')]){return _0x528e66[_0x834e('0x53')][_0x834e('0x55')][0x0];}else{return db[_0x834e('0x54')]['create'](_[_0x834e('0xc')](_0x5291ae[_0x834e('0x4b')],{'firstName':_0x5291ae[_0x834e('0x4b')]['to'],'email':_0x5291ae[_0x834e('0x4b')]['to'],'phone':_0x5291ae['body']['to'],'ListId':_0x528e66[_0x834e('0x67')]}));}}else{throw new Error('List\x20not\x20found');}})['then'](function(){if(_0x3c70bf){return respondWithRpcPromise('SendMail',_0x834e('0x68'),_0x3c70bf,client9003)[_0x834e('0x15')](function(_0x514aac){return _0x21c417[_0x834e('0x69')]({'read':!![],'messageId':_0x514aac[_0x834e('0x6a')],'sentAt':moment()['format'](_0x834e('0x6b'))});})[_0x834e('0x1e')](function(_0x4b88e7){logger['error']('%s',JSON[_0x834e('0x19')](_0x4b88e7));return _0x21c417;});}return _0x21c417;});}return _0x21c417;}})[_0x834e('0x15')](respondWithResult(_0x5be43d,0xc9))[_0x834e('0x1e')](handleError(_0x5be43d,null));};exports[_0x834e('0x6c')]=function(_0x1d8e7,_0x493239){var _0x264a6f={'agent':{},'channel':'mail'};if(_0x1d8e7[_0x834e('0x4b')]['id']){delete _0x1d8e7[_0x834e('0x4b')]['id'];}_0x1d8e7[_0x834e('0x4b')]['read']=!![];_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6d')]=moment()['format'](_0x834e('0x6b'));_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')]=_0x1d8e7['body'][_0x834e('0x6e')]||_0x1d8e7[_0x834e('0x60')]['id'];_0x264a6f[_0x834e('0x6f')]['id']=_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')];return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x1d8e7[_0x834e('0x47')]['id'],'UserId':null}})[_0x834e('0x15')](handleEntityNotFound(_0x493239,null))[_0x834e('0x15')](saveUpdates(_0x1d8e7['body'],null))['then'](function(_0x4e466e){if(_0x4e466e){_0x264a6f[_0x834e('0x1c')]=_0x4e466e[_0x834e('0x70')]({'plain':!![]});return db[_0x834e('0x71')][_0x834e('0x4a')]({'where':{'id':_0x4e466e[_0x834e('0x72')]}});}return null;})['then'](handleEntityNotFound(_0x493239,null))['then'](function(_0x4520fc){if(_0x4520fc){return _0x4520fc[_0x834e('0x69')]({'UserId':_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')],'read1stAt':_[_0x834e('0x59')](_0x4520fc['read1stAt'])?moment()[_0x834e('0x73')](_0x834e('0x6b')):undefined});}return null;})[_0x834e('0x15')](function(_0x4e1735){if(_0x4e1735){_0x264a6f[_0x834e('0x74')]=_0x4e1735[_0x834e('0x70')]({'plain':!![]});interaction_log[_0x834e('0x1d')](_0x834e('0x75'),_0x1d8e7[_0x834e('0x60')]['id'],_0x1d8e7['user']['name'],_0x1d8e7[_0x834e('0x60')][_0x834e('0x76')],_0x264a6f['interaction']['id'],_0x1d8e7[_0x834e('0x4b')]?JSON['stringify'](_0x1d8e7[_0x834e('0x4b')]):_0x834e('0x77'));return respondWithRpcPromise(_0x834e('0x78'),'acceptMessage',_0x264a6f);}return null;})[_0x834e('0x15')](function(_0x49e721){var _0x5b2621='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x49e721[_0x834e('0x1c')][_0x834e('0x79')];return db[_0x834e('0x7a')][_0x834e('0x32')](_0x5b2621,{'type':db[_0x834e('0x7b')][_0x834e('0x7c')][_0x834e('0x7d')],'raw':!![]})[_0x834e('0x15')](function(_0x17e61a){return _0x17e61a;});})['then'](function(_0x2f775a){if(_0x2f775a){_0x264a6f['message'][_0x834e('0x7e')]=_0x2f775a[0x0];if(!_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')])return;return db[_0x834e('0x7f')][_0x834e('0x4a')]({'where':{'id':_0x1d8e7[_0x834e('0x4b')]['UserId'],'role':'agent'},'attributes':['id',_0x834e('0x2a'),_0x834e('0x80'),'email',_0x834e('0x81')],'raw':!![]});}return null;})[_0x834e('0x15')](function(_0x1bc5d1){if(!_0x1bc5d1)return null;_0x264a6f[_0x834e('0x1c')][_0x834e('0x6f')]=_0x1bc5d1;return _0x264a6f;})['then'](function(_0x29839d){if(_0x29839d){if(_0x1d8e7[_0x834e('0x4b')]['manual']){_0x264a6f['message']['interface']=util[_0x834e('0x73')](_0x834e('0x82'),_0x1d8e7['user'][_0x834e('0x2a')]);_0x264a6f[_0x834e('0x1c')]['channel']=_0x264a6f[_0x834e('0x83')];_0x264a6f['message']['event']=_0x834e('0x6c');_0x264a6f[_0x834e('0x1c')][_0x834e('0x4b')]=htmlToText[_0x834e('0x84')](_0x264a6f['message'][_0x834e('0x4b')]);return respondWithRpcPromise(_0x834e('0x85'),_0x834e('0x85'),{'event':_0x834e('0x86'),'message':_0x264a6f[_0x834e('0x1c')]},client9002)[_0x834e('0x15')](function(){return _0x264a6f;});}return _0x264a6f;}return null;})[_0x834e('0x15')](respondWithResult(_0x493239,null))[_0x834e('0x1e')](handleError(_0x493239,null));};exports[_0x834e('0x87')]=function(_0x2821fe,_0x2fa64c){var _0x261e3d={'agent':{},'channel':_0x834e('0x88')};if(_0x2821fe[_0x834e('0x4b')]['id']){delete _0x2821fe[_0x834e('0x4b')]['id'];}_0x2821fe[_0x834e('0x4b')][_0x834e('0x6e')]=_0x2821fe[_0x834e('0x4b')][_0x834e('0x6e')]||_0x2821fe[_0x834e('0x60')]['id'];_0x261e3d[_0x834e('0x6f')]['id']=_0x2821fe[_0x834e('0x4b')]['UserId'];return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x2821fe[_0x834e('0x47')]['id'],'UserId':null}})[_0x834e('0x15')](handleEntityNotFound(_0x2fa64c,null))[_0x834e('0x15')](function(_0x3bcdcd){if(_0x3bcdcd){_0x261e3d[_0x834e('0x1c')]=_0x3bcdcd[_0x834e('0x70')]({'plain':!![]});return db[_0x834e('0x71')]['find']({'where':{'id':_0x3bcdcd['MailInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x2fa64c,null))[_0x834e('0x15')](function(_0x493e1f){if(_0x493e1f){_0x261e3d[_0x834e('0x74')]=_0x493e1f[_0x834e('0x70')]({'plain':!![]});interaction_log[_0x834e('0x1d')]('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2821fe[_0x834e('0x60')]['id'],_0x2821fe[_0x834e('0x60')][_0x834e('0x2a')],_0x2821fe[_0x834e('0x60')][_0x834e('0x76')],_0x261e3d[_0x834e('0x74')]['id'],_0x2821fe['body']?JSON[_0x834e('0x19')](_0x2821fe[_0x834e('0x4b')]):_0x834e('0x77'));return respondWithRpcPromise(_0x834e('0x89'),_0x834e('0x8a'),_0x261e3d);}return null;})['then'](function(_0x4ebeba){var _0x508b3e='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4ebeba[_0x834e('0x1c')][_0x834e('0x79')];return db['sequelize'][_0x834e('0x32')](_0x508b3e,{'type':db[_0x834e('0x7b')]['QueryTypes'][_0x834e('0x7d')],'raw':!![]})[_0x834e('0x15')](function(_0xbf7693){return _0xbf7693;});})[_0x834e('0x15')](function(_0x1d1075){if(_0x1d1075){_0x261e3d[_0x834e('0x1c')]['contact']=_0x1d1075[0x0];if(!_0x2821fe['body'][_0x834e('0x6e')])return;return db[_0x834e('0x7f')][_0x834e('0x4a')]({'where':{'id':_0x2821fe['body'][_0x834e('0x6e')],'role':_0x834e('0x6f')},'attributes':['id','name',_0x834e('0x80'),_0x834e('0x8b'),_0x834e('0x81')],'raw':!![]});}return null;})[_0x834e('0x15')](function(_0x4cb802){if(!_0x4cb802)return null;_0x261e3d[_0x834e('0x1c')]['agent']=_0x4cb802;return _0x261e3d;})['then'](function(_0xc64958){if(_0xc64958){_0xc64958[_0x834e('0x1c')][_0x834e('0x8c')]=util[_0x834e('0x73')](_0x834e('0x82'),_0x2821fe[_0x834e('0x60')]['name']);_0xc64958['message'][_0x834e('0x83')]=_0x261e3d[_0x834e('0x83')];_0xc64958[_0x834e('0x1c')][_0x834e('0x8d')]=_0x834e('0x87');_0xc64958[_0x834e('0x1c')][_0x834e('0x4b')]=htmlToText['fromString'](_0x261e3d[_0x834e('0x1c')][_0x834e('0x4b')]);respondWithRpcPromise('EventManager',_0x834e('0x85'),{'event':_0x834e('0x8e'),'message':_0xc64958[_0x834e('0x1c')]},client9002);return _0x261e3d;}return null;})[_0x834e('0x15')](respondWithResult(_0x2fa64c,null))[_0x834e('0x1e')](handleError(_0x2fa64c,null));};exports[_0x834e('0x8f')]=function(_0x231f0b,_0x3b44f3){var _0x14e794=moment()[_0x834e('0x90')]()[_0x834e('0x91')]();var _0x152372=path[_0x834e('0x63')](config[_0x834e('0x64')],'server',_0x834e('0x92'),_0x834e('0x93'));var _0x522eab=path[_0x834e('0x63')](config['root'],_0x834e('0x94'),'files',_0x834e('0x62'));var _0x560d10=util[_0x834e('0x73')](_0x834e('0x95'),_0x14e794);return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x231f0b['params']['id']},'attributes':['id',_0x834e('0x4b'),_0x834e('0x96'),'to','cc',_0x834e('0x97'),_0x834e('0x98'),_0x834e('0x99')],'include':_0x231f0b[_0x834e('0x32')][_0x834e('0x62')]?[{'model':db[_0x834e('0x9a')],'as':_0x834e('0x9b')}]:undefined})[_0x834e('0x15')](handleEntityNotFound(_0x3b44f3,null))[_0x834e('0x15')](function(_0x1cb4d0){if(_0x1cb4d0){var _0x3a6546=_0x1cb4d0;var _0x246f01={'from':_0x3a6546[_0x834e('0x96')],'to':_0x3a6546['to'],'subject':_0x3a6546[_0x834e('0x98')],'html':_0x3a6546[_0x834e('0x4b')],'headers':{'Date':moment(_0x3a6546['createdAt'])['format'](_0x834e('0x9c'))},'attachments':[]};if(_0x1cb4d0['cc']){_0x246f01[_0x834e('0x9d')]['Cc']=_0x1cb4d0['cc'];}if(_0x1cb4d0[_0x834e('0x97')]){_0x246f01[_0x834e('0x9d')][_0x834e('0x9e')]=_0x1cb4d0[_0x834e('0x97')];}return new BPromise(function(_0x22f90d,_0x40fd40){if(_0x1cb4d0[_0x834e('0x9b')]){for(var _0x58cd3b=0x0;_0x58cd3b<_0x1cb4d0[_0x834e('0x9b')][_0x834e('0x48')];_0x58cd3b++){var _0x513d9e=_0x1cb4d0[_0x834e('0x9b')][_0x58cd3b];var _0x54c129=path[_0x834e('0x63')](_0x522eab,_0x513d9e[_0x834e('0x66')]);if(fs[_0x834e('0x9f')](_0x54c129)){_0x246f01['attachments'][_0x834e('0xa0')]({'name':_0x513d9e[_0x834e('0x2a')],'contentType':_0x513d9e['type'],'data':fs['readFileSync'](_0x54c129)});}}}emlformat[_0x834e('0xa1')](_0x246f01,function(_0x3b7b1a,_0x4e0f4d){if(_0x3b7b1a)return _0x40fd40(_0x3b7b1a);fs[_0x834e('0xa2')](path[_0x834e('0x63')](_0x152372,_0x560d10),_0x4e0f4d);return _0x22f90d(_0x4e0f4d);});});}})[_0x834e('0x15')](function(_0x135219){if(_0x135219){return _0x3b44f3[_0x834e('0x8f')](path['join'](_0x152372,_0x560d10),_0x560d10,function(_0x4e7545){if(!_0x4e7545)fs[_0x834e('0xa3')](path['join'](_0x152372,_0x560d10));});}})['catch'](handleError(_0x3b44f3,null));};
\ No newline at end of file
+var _0xb632=['MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','status','undefined','limit','count','offset','Content-Range','json','update','end','sendStatus','name','send','index','MailMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','body','describe','create','direction','out','secret','split','MailAccount','findOne','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','service','host','port','secure','authentication','auth','user','pass','attachments','root','server/files/attachments','basename','ListId','List\x20not\x20found','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','mail','read','readAt','UserId','get','MailInteraction','isNil','read1stAt','interaction','role','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','QueryTypes','SELECT','contact','User','agent','fullname','manual','SIP/%s','channel','motionChannel','event','accept','fromString','EventManager','acceptmessage','MailInteractionId','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','Sequelize','email','internal','interface','reject','rejectmessage','unix','toString','join','files','tmp','server','from','bcc','subject','Attachment','decode','headers','Bcc','Attachments','existsSync','push','writeFileSync','download','unlinkSync','eml-format','bluebird','util','path','lodash','ioredis','html-to-text','../../components/parsers/qs','api','mail-interactions','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','html-entities','./mailMessage.socket','register','jayson/promise','client','http','request','then','info'];(function(_0x240860,_0x20c04d){var _0x40e288=function(_0x38a753){while(--_0x38a753){_0x240860['push'](_0x240860['shift']());}};_0x40e288(++_0x20c04d);}(_0xb632,0x13f));var _0x2b63=function(_0x5715f6,_0x5ce81e){_0x5715f6=_0x5715f6-0x0;var _0x5c8b8b=_0xb632[_0x5715f6];return _0x5c8b8b;};'use strict';var emlformat=require(_0x2b63('0x0'));var moment=require('moment');var BPromise=require(_0x2b63('0x1'));var util=require(_0x2b63('0x2'));var path=require(_0x2b63('0x3'));var fs=require('fs');var _=require(_0x2b63('0x4'));var Redis=require(_0x2b63('0x5'));var htmlToText=require(_0x2b63('0x6'));var qs=require(_0x2b63('0x7'));var logger=require('../../config/logger')(_0x2b63('0x8'));var interaction_log=require('../../config/logger')(_0x2b63('0x9'));var config=require(_0x2b63('0xa'));var db=require(_0x2b63('0xb'))['db'];config[_0x2b63('0xc')]=_[_0x2b63('0xd')](config['redis'],{'host':_0x2b63('0xe'),'port':0x18eb});var socket=require(_0x2b63('0xf'))(new Redis(config[_0x2b63('0xc')]));var htmlEntities=require(_0x2b63('0x10'));require(_0x2b63('0x11'))[_0x2b63('0x12')](socket);var jayson=require(_0x2b63('0x13'));var client=jayson['client']['http']({'port':0x232c});var client9003=jayson[_0x2b63('0x14')][_0x2b63('0x15')]({'port':0x232b});var client9002=jayson[_0x2b63('0x14')]['http']({'port':0x232a});function respondWithRpcPromise(_0x332d21,_0x33e3b7,_0x58bf95,_0x169c5c){return new BPromise(function(_0x1d6d2a,_0x25d904){var _0xb947ba=_0x169c5c||client;return _0xb947ba[_0x2b63('0x16')](_0x332d21,_0x58bf95)[_0x2b63('0x17')](function(_0x1af462){logger[_0x2b63('0x18')](_0x2b63('0x19'),_0x33e3b7,_0x2b63('0x1a'));logger[_0x2b63('0x1b')](_0x2b63('0x1c'),_0x33e3b7,_0x2b63('0x1a'),JSON[_0x2b63('0x1d')](_0x1af462));if(_0x1af462['error']){if(_0x1af462[_0x2b63('0x1e')]['code']===0x1f4){logger[_0x2b63('0x1e')](_0x2b63('0x19'),_0x33e3b7,_0x1af462['error']['message']);return _0x25d904(_0x1af462[_0x2b63('0x1e')][_0x2b63('0x1f')]);}logger[_0x2b63('0x1e')](_0x2b63('0x19'),_0x33e3b7,_0x1af462['error'][_0x2b63('0x1f')]);return _0x1d6d2a(_0x1af462[_0x2b63('0x1e')][_0x2b63('0x1f')]);}else{logger['info']('MailMessage,\x20%s,\x20%s',_0x33e3b7,'request\x20sent');_0x1d6d2a(_0x1af462[_0x2b63('0x20')][_0x2b63('0x1f')]);}})[_0x2b63('0x21')](function(_0x1c8c42){logger[_0x2b63('0x1e')](_0x2b63('0x19'),_0x33e3b7,_0x1c8c42);_0x25d904(_0x1c8c42);});});}function respondWithResult(_0x3370e3,_0x2432ee){_0x2432ee=_0x2432ee||0xc8;return function(_0x3398c5){if(_0x3398c5){return _0x3370e3[_0x2b63('0x22')](_0x2432ee)['json'](_0x3398c5);}};}function respondWithFilteredResult(_0x4fc8eb,_0xcbcaaa){return function(_0x32fa40){if(_0x32fa40){var _0x1de132=typeof _0xcbcaaa['offset']===_0x2b63('0x23')&&typeof _0xcbcaaa[_0x2b63('0x24')]===_0x2b63('0x23');var _0x48d41c=_0x32fa40[_0x2b63('0x25')];var _0x103cbc=_0x1de132?0x0:_0xcbcaaa[_0x2b63('0x26')];var _0x3f787a=_0x1de132?_0x32fa40[_0x2b63('0x25')]:_0xcbcaaa[_0x2b63('0x26')]+_0xcbcaaa['limit'];var _0x2297c4;if(_0x3f787a>=_0x48d41c){_0x3f787a=_0x48d41c;_0x2297c4=0xc8;}else{_0x2297c4=0xce;}_0x4fc8eb[_0x2b63('0x22')](_0x2297c4);return _0x4fc8eb['set'](_0x2b63('0x27'),_0x103cbc+'-'+_0x3f787a+'/'+_0x48d41c)[_0x2b63('0x28')](_0x32fa40);}return null;};}function saveUpdates(_0xcefffa){return function(_0x259dec){if(_0x259dec){return _0x259dec[_0x2b63('0x29')](_0xcefffa)[_0x2b63('0x17')](function(_0x3f7a0d){return _0x3f7a0d;});}return null;};}function removeEntity(_0x3990e3){return function(_0x3c9f25){if(_0x3c9f25){return _0x3c9f25['destroy']()[_0x2b63('0x17')](function(){_0x3990e3[_0x2b63('0x22')](0xcc)[_0x2b63('0x2a')]();});}};}function handleEntityNotFound(_0x43a3eb){return function(_0x4d5e14){if(!_0x4d5e14){_0x43a3eb[_0x2b63('0x2b')](0x194);}return _0x4d5e14;};}function handleError(_0xfa5cf9,_0x1f5315){_0x1f5315=_0x1f5315||0x1f4;return function(_0x316add){logger[_0x2b63('0x1e')](_0x316add['stack']);if(_0x316add[_0x2b63('0x2c')]){delete _0x316add[_0x2b63('0x2c')];}_0xfa5cf9[_0x2b63('0x22')](_0x1f5315)[_0x2b63('0x2d')](_0x316add);};}exports[_0x2b63('0x2e')]=function(_0x22ba2c,_0x1ac129){var _0x584bdf={},_0x3f6f1e={},_0x475465={'count':0x0,'rows':[]};var _0x150b8e=_['map'](db[_0x2b63('0x2f')][_0x2b63('0x30')],function(_0x2150ea){return{'name':_0x2150ea[_0x2b63('0x31')],'type':_0x2150ea[_0x2b63('0x32')][_0x2b63('0x33')]};});_0x3f6f1e[_0x2b63('0x34')]=_['map'](_0x150b8e,_0x2b63('0x2c'));_0x3f6f1e[_0x2b63('0x35')]=_[_0x2b63('0x36')](_0x22ba2c['query']);_0x3f6f1e[_0x2b63('0x37')]=_['intersection'](_0x3f6f1e[_0x2b63('0x34')],_0x3f6f1e['query']);_0x584bdf[_0x2b63('0x38')]=_[_0x2b63('0x39')](_0x3f6f1e['model'],qs['fields'](_0x22ba2c['query'][_0x2b63('0x3a')]));_0x584bdf[_0x2b63('0x38')]=_0x584bdf[_0x2b63('0x38')][_0x2b63('0x3b')]?_0x584bdf[_0x2b63('0x38')]:_0x3f6f1e[_0x2b63('0x34')];if(!_0x22ba2c[_0x2b63('0x35')][_0x2b63('0x3c')](_0x2b63('0x3d'))){_0x584bdf[_0x2b63('0x24')]=qs[_0x2b63('0x24')](_0x22ba2c['query'][_0x2b63('0x24')]);_0x584bdf[_0x2b63('0x26')]=qs[_0x2b63('0x26')](_0x22ba2c['query']['offset']);}_0x584bdf[_0x2b63('0x3e')]=qs['sort'](_0x22ba2c[_0x2b63('0x35')][_0x2b63('0x3f')]);_0x584bdf[_0x2b63('0x40')]=qs[_0x2b63('0x37')](_[_0x2b63('0x41')](_0x22ba2c[_0x2b63('0x35')],_0x3f6f1e['filters']),_0x150b8e);if(_0x22ba2c[_0x2b63('0x35')][_0x2b63('0x42')]){_0x584bdf[_0x2b63('0x40')]=_[_0x2b63('0x43')](_0x584bdf[_0x2b63('0x40')],{'$or':_['map'](_0x150b8e,function(_0x271f56){if(_0x271f56['type']!==_0x2b63('0x44')){var _0x37a915={};_0x37a915[_0x271f56[_0x2b63('0x2c')]]={'$like':'%'+_0x22ba2c['query']['filter']+'%'};return _0x37a915;}})});}_0x584bdf=_['merge']({},_0x584bdf,_0x22ba2c['options']);var _0x1672ca={'where':_0x584bdf[_0x2b63('0x40')]};return db['MailMessage']['count'](_0x1672ca)[_0x2b63('0x17')](function(_0x40d18c){_0x475465[_0x2b63('0x25')]=_0x40d18c;if(_0x22ba2c[_0x2b63('0x35')][_0x2b63('0x45')]){_0x584bdf[_0x2b63('0x46')]=[{'all':!![]}];}return db[_0x2b63('0x2f')][_0x2b63('0x47')](_0x584bdf);})[_0x2b63('0x17')](function(_0x30a598){_0x475465[_0x2b63('0x48')]=_0x30a598;return _0x475465;})[_0x2b63('0x17')](respondWithFilteredResult(_0x1ac129,_0x584bdf))['catch'](handleError(_0x1ac129,null));};exports[_0x2b63('0x49')]=function(_0x1be511,_0x944e6d){var _0x10d088={'raw':!![],'where':{'id':_0x1be511[_0x2b63('0x4a')]['id']}},_0x33e2aa={};_0x33e2aa[_0x2b63('0x34')]=_[_0x2b63('0x36')](db[_0x2b63('0x2f')][_0x2b63('0x30')]);_0x33e2aa[_0x2b63('0x35')]=_[_0x2b63('0x36')](_0x1be511['query']);_0x33e2aa[_0x2b63('0x37')]=_[_0x2b63('0x39')](_0x33e2aa[_0x2b63('0x34')],_0x33e2aa[_0x2b63('0x35')]);_0x10d088[_0x2b63('0x38')]=_['intersection'](_0x33e2aa[_0x2b63('0x34')],qs[_0x2b63('0x3a')](_0x1be511['query'][_0x2b63('0x3a')]));_0x10d088['attributes']=_0x10d088[_0x2b63('0x38')][_0x2b63('0x3b')]?_0x10d088[_0x2b63('0x38')]:_0x33e2aa['model'];if(_0x1be511['query'][_0x2b63('0x45')]){_0x10d088['include']=[{'all':!![]}];}_0x10d088=_['merge']({},_0x10d088,_0x1be511[_0x2b63('0x4b')]);return db['MailMessage'][_0x2b63('0x4c')](_0x10d088)['then'](handleEntityNotFound(_0x944e6d,null))[_0x2b63('0x17')](respondWithResult(_0x944e6d,null))[_0x2b63('0x21')](handleError(_0x944e6d,null));};exports[_0x2b63('0x29')]=function(_0x3696d2,_0x461db9){if(_0x3696d2['body']['id']){delete _0x3696d2[_0x2b63('0x4d')]['id'];}return db[_0x2b63('0x2f')]['find']({'where':{'id':_0x3696d2[_0x2b63('0x4a')]['id']}})[_0x2b63('0x17')](handleEntityNotFound(_0x461db9,null))[_0x2b63('0x17')](saveUpdates(_0x3696d2[_0x2b63('0x4d')],null))[_0x2b63('0x17')](respondWithResult(_0x461db9,null))[_0x2b63('0x21')](handleError(_0x461db9,null));};exports['destroy']=function(_0x42ab19,_0x1df41e){return db['MailMessage'][_0x2b63('0x4c')]({'where':{'id':_0x42ab19['params']['id']}})['then'](handleEntityNotFound(_0x1df41e,null))['then'](removeEntity(_0x1df41e,null))[_0x2b63('0x21')](handleError(_0x1df41e,null));};exports[_0x2b63('0x4e')]=function(_0x1f01df,_0x1eed4c){return db[_0x2b63('0x2f')][_0x2b63('0x4e')]()[_0x2b63('0x17')](respondWithResult(_0x1eed4c,null))['catch'](handleError(_0x1eed4c,null));};exports[_0x2b63('0x4f')]=function(_0x396b2e,_0x5a53f0){return db[_0x2b63('0x2f')][_0x2b63('0x4f')](_0x396b2e[_0x2b63('0x4d')])[_0x2b63('0x17')](function(_0xdc1dec){if(_0xdc1dec){if(_0xdc1dec[_0x2b63('0x50')]===_0x2b63('0x51')&&!_0xdc1dec[_0x2b63('0x52')]){var _0x54ac9e,_0x1c5295,_0x38e01e;if(_0x396b2e[_0x2b63('0x4d')]['to']){_0x1c5295=_0x396b2e[_0x2b63('0x4d')]['to'][_0x2b63('0x53')](',')[0x0];}return db[_0x2b63('0x54')][_0x2b63('0x55')]({'where':{'id':_0xdc1dec['MailAccountId']},'include':[{'model':db[_0x2b63('0x56')],'as':_0x2b63('0x57'),'include':[{'model':db[_0x2b63('0x58')],'as':_0x2b63('0x59'),'where':{'email':_0x1c5295},'limit':0x1,'order':[[_0x2b63('0x5a'),_0x2b63('0x5b')]]}]},{'model':db[_0x2b63('0x5c')],'as':_0x2b63('0x5d'),'raw':!![]}]})[_0x2b63('0x17')](function(_0x28ba8c){_0x54ac9e=_0x28ba8c;if(_0x54ac9e&&_0x54ac9e[_0x2b63('0x5d')]){var _0x55296e={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x5e')])){_0x55296e[_0x2b63('0x5f')]=_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x5f')];_0x55296e[_0x2b63('0x60')]=_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x60')];_0x55296e['secure']=_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x61')];if(_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x62')]){_0x55296e[_0x2b63('0x63')]={'user':_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x64')],'pass':_0x54ac9e['Smtp'][_0x2b63('0x65')]};}}else{_0x55296e[_0x2b63('0x5e')]=_0x54ac9e[_0x2b63('0x5d')]['service'];_0x55296e['auth']={'user':_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x64')],'pass':_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x65')]};_0x55296e[_0x2b63('0x61')]=_0x54ac9e[_0x2b63('0x5d')][_0x2b63('0x61')];}if(_0x396b2e['body'][_0x2b63('0x66')]&&_0x396b2e[_0x2b63('0x4d')][_0x2b63('0x66')][_0x2b63('0x3b')]){for(var _0x8c04d7=0x0;_0x8c04d7<_0x396b2e[_0x2b63('0x4d')][_0x2b63('0x66')][_0x2b63('0x3b')];_0x8c04d7+=0x1){_0x396b2e[_0x2b63('0x4d')]['attachments'][_0x8c04d7]={'filename':_0x396b2e['body']['attachments'][_0x8c04d7]['name'],'path':path['join'](config[_0x2b63('0x67')],_0x2b63('0x68'),_0x396b2e[_0x2b63('0x4d')][_0x2b63('0x66')][_0x8c04d7][_0x2b63('0x69')])};}}_0x38e01e={'account':_0x55296e,'message':_0x396b2e[_0x2b63('0x4d')]};return;}})[_0x2b63('0x17')](function(){if(_0x54ac9e['List']){if(_0x54ac9e[_0x2b63('0x57')]['Contacts'][_0x2b63('0x3b')]){return _0x54ac9e[_0x2b63('0x57')][_0x2b63('0x59')][0x0];}else{return db[_0x2b63('0x58')]['create'](_[_0x2b63('0xd')](_0x396b2e[_0x2b63('0x4d')],{'firstName':_0x396b2e[_0x2b63('0x4d')]['to'],'email':_0x396b2e['body']['to'],'phone':_0x396b2e['body']['to'],'ListId':_0x54ac9e[_0x2b63('0x6a')]}));}}else{throw new Error(_0x2b63('0x6b'));}})[_0x2b63('0x17')](function(){if(_0x38e01e){return respondWithRpcPromise(_0x2b63('0x6c'),_0x2b63('0x6d'),_0x38e01e,client9003)['then'](function(_0x2525e3){return _0xdc1dec[_0x2b63('0x29')]({'read':!![],'messageId':_0x2525e3[_0x2b63('0x6e')],'sentAt':moment()[_0x2b63('0x6f')](_0x2b63('0x70'))});})[_0x2b63('0x21')](function(_0x2a1507){logger[_0x2b63('0x1e')]('%s',JSON[_0x2b63('0x1d')](_0x2a1507));return _0xdc1dec;});}return _0xdc1dec;});}return _0xdc1dec;}})[_0x2b63('0x17')](respondWithResult(_0x5a53f0,0xc9))[_0x2b63('0x21')](handleError(_0x5a53f0,null));};exports['accept']=function(_0x2af7f3,_0x5a226b){var _0x1749da={'agent':{},'channel':_0x2b63('0x71')};if(_0x2af7f3['body']['id']){delete _0x2af7f3[_0x2b63('0x4d')]['id'];}_0x2af7f3[_0x2b63('0x4d')][_0x2b63('0x72')]=!![];_0x2af7f3['body'][_0x2b63('0x73')]=moment()[_0x2b63('0x6f')](_0x2b63('0x70'));_0x2af7f3[_0x2b63('0x4d')][_0x2b63('0x74')]=_0x2af7f3[_0x2b63('0x4d')][_0x2b63('0x74')]||_0x2af7f3[_0x2b63('0x64')]['id'];_0x1749da['agent']['id']=_0x2af7f3[_0x2b63('0x4d')]['UserId'];return db[_0x2b63('0x2f')][_0x2b63('0x4c')]({'where':{'id':_0x2af7f3[_0x2b63('0x4a')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x5a226b,null))[_0x2b63('0x17')](saveUpdates(_0x2af7f3[_0x2b63('0x4d')],null))['then'](function(_0x3dc300){if(_0x3dc300){_0x1749da[_0x2b63('0x1f')]=_0x3dc300[_0x2b63('0x75')]({'plain':!![]});return db[_0x2b63('0x76')][_0x2b63('0x4c')]({'where':{'id':_0x3dc300['MailInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x5a226b,null))['then'](function(_0x5f2bae){if(_0x5f2bae){return _0x5f2bae[_0x2b63('0x29')]({'UserId':_0x2af7f3[_0x2b63('0x4d')][_0x2b63('0x74')],'read1stAt':_[_0x2b63('0x77')](_0x5f2bae[_0x2b63('0x78')])?moment()[_0x2b63('0x6f')](_0x2b63('0x70')):undefined});}return null;})['then'](function(_0x4e21b2){if(_0x4e21b2){_0x1749da[_0x2b63('0x79')]=_0x4e21b2[_0x2b63('0x75')]({'plain':!![]});interaction_log[_0x2b63('0x18')]('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2af7f3[_0x2b63('0x64')]['id'],_0x2af7f3['user'][_0x2b63('0x2c')],_0x2af7f3[_0x2b63('0x64')][_0x2b63('0x7a')],_0x1749da[_0x2b63('0x79')]['id'],_0x2af7f3[_0x2b63('0x4d')]?JSON[_0x2b63('0x1d')](_0x2af7f3[_0x2b63('0x4d')]):'null');return respondWithRpcPromise(_0x2b63('0x7b'),_0x2b63('0x7c'),_0x1749da);}return null;})['then'](function(_0x14c53f){var _0x25a845=_0x2b63('0x7d')+_0x14c53f[_0x2b63('0x1f')][_0x2b63('0x7e')];return db[_0x2b63('0x7f')][_0x2b63('0x35')](_0x25a845,{'type':db['Sequelize'][_0x2b63('0x80')][_0x2b63('0x81')],'raw':!![]})[_0x2b63('0x17')](function(_0x1c1ffb){return _0x1c1ffb;});})['then'](function(_0x1b38e9){if(_0x1b38e9){_0x1749da[_0x2b63('0x1f')][_0x2b63('0x82')]=_0x1b38e9[0x0];if(!_0x2af7f3[_0x2b63('0x4d')][_0x2b63('0x74')])return;return db[_0x2b63('0x83')][_0x2b63('0x4c')]({'where':{'id':_0x2af7f3[_0x2b63('0x4d')][_0x2b63('0x74')],'role':_0x2b63('0x84')},'attributes':['id',_0x2b63('0x2c'),_0x2b63('0x85'),'email','internal'],'raw':!![]});}return null;})['then'](function(_0x2e25b9){if(!_0x2e25b9)return null;_0x1749da[_0x2b63('0x1f')][_0x2b63('0x84')]=_0x2e25b9;return _0x1749da;})['then'](function(_0x1746ca){if(_0x1746ca){if(_0x2af7f3[_0x2b63('0x4d')][_0x2b63('0x86')]){_0x1749da[_0x2b63('0x1f')]['interface']=util[_0x2b63('0x6f')](_0x2b63('0x87'),_0x2af7f3[_0x2b63('0x64')]['name']);_0x1749da[_0x2b63('0x1f')][_0x2b63('0x88')]=_0x1749da[_0x2b63('0x88')];_0x1749da[_0x2b63('0x1f')][_0x2b63('0x89')]=_0x1749da[_0x2b63('0x88')];_0x1749da[_0x2b63('0x1f')][_0x2b63('0x8a')]=_0x2b63('0x8b');_0x1749da[_0x2b63('0x1f')]['body']=htmlToText[_0x2b63('0x8c')](_0x1749da[_0x2b63('0x1f')][_0x2b63('0x4d')]);return respondWithRpcPromise('EventManager',_0x2b63('0x8d'),{'event':_0x2b63('0x8e'),'message':_0x1749da[_0x2b63('0x1f')]},client9002)[_0x2b63('0x17')](function(){return _0x1749da;});}return _0x1749da;}return null;})[_0x2b63('0x17')](respondWithResult(_0x5a226b,null))[_0x2b63('0x21')](handleError(_0x5a226b,null));};exports['reject']=function(_0x1ff4c3,_0x4797ad){var _0x2a8faa={'agent':{},'channel':'mail'};if(_0x1ff4c3[_0x2b63('0x4d')]['id']){delete _0x1ff4c3[_0x2b63('0x4d')]['id'];}_0x1ff4c3[_0x2b63('0x4d')]['UserId']=_0x1ff4c3[_0x2b63('0x4d')][_0x2b63('0x74')]||_0x1ff4c3[_0x2b63('0x64')]['id'];_0x2a8faa[_0x2b63('0x84')]['id']=_0x1ff4c3['body'][_0x2b63('0x74')];return db[_0x2b63('0x2f')]['find']({'where':{'id':_0x1ff4c3[_0x2b63('0x4a')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x4797ad,null))[_0x2b63('0x17')](function(_0xb6d64){if(_0xb6d64){_0x2a8faa[_0x2b63('0x1f')]=_0xb6d64[_0x2b63('0x75')]({'plain':!![]});return db[_0x2b63('0x76')][_0x2b63('0x4c')]({'where':{'id':_0xb6d64[_0x2b63('0x8f')]}});}return null;})['then'](handleEntityNotFound(_0x4797ad,null))['then'](function(_0x3ecbf5){if(_0x3ecbf5){_0x2a8faa[_0x2b63('0x79')]=_0x3ecbf5[_0x2b63('0x75')]({'plain':!![]});interaction_log['info'](_0x2b63('0x90'),_0x1ff4c3['user']['id'],_0x1ff4c3[_0x2b63('0x64')][_0x2b63('0x2c')],_0x1ff4c3['user'][_0x2b63('0x7a')],_0x2a8faa[_0x2b63('0x79')]['id'],_0x1ff4c3['body']?JSON[_0x2b63('0x1d')](_0x1ff4c3[_0x2b63('0x4d')]):_0x2b63('0x91'));return respondWithRpcPromise(_0x2b63('0x92'),'rejectMessage',_0x2a8faa);}return null;})['then'](function(_0x1e6fc1){var _0x52d0dc=_0x2b63('0x7d')+_0x1e6fc1[_0x2b63('0x1f')][_0x2b63('0x7e')];return db[_0x2b63('0x7f')]['query'](_0x52d0dc,{'type':db[_0x2b63('0x93')]['QueryTypes']['SELECT'],'raw':!![]})[_0x2b63('0x17')](function(_0x54b796){return _0x54b796;});})[_0x2b63('0x17')](function(_0x16e5f8){if(_0x16e5f8){_0x2a8faa[_0x2b63('0x1f')][_0x2b63('0x82')]=_0x16e5f8[0x0];if(!_0x1ff4c3[_0x2b63('0x4d')][_0x2b63('0x74')])return;return db[_0x2b63('0x83')]['find']({'where':{'id':_0x1ff4c3[_0x2b63('0x4d')][_0x2b63('0x74')],'role':_0x2b63('0x84')},'attributes':['id',_0x2b63('0x2c'),_0x2b63('0x85'),_0x2b63('0x94'),_0x2b63('0x95')],'raw':!![]});}return null;})['then'](function(_0x2ec5c8){if(!_0x2ec5c8)return null;_0x2a8faa[_0x2b63('0x1f')][_0x2b63('0x84')]=_0x2ec5c8;return _0x2a8faa;})[_0x2b63('0x17')](function(_0x3e6aae){if(_0x3e6aae){_0x3e6aae[_0x2b63('0x1f')][_0x2b63('0x96')]=util[_0x2b63('0x6f')]('SIP/%s',_0x1ff4c3[_0x2b63('0x64')][_0x2b63('0x2c')]);_0x3e6aae['message']['channel']=_0x2a8faa[_0x2b63('0x88')];_0x3e6aae[_0x2b63('0x1f')][_0x2b63('0x89')]=_0x2a8faa[_0x2b63('0x88')];_0x3e6aae[_0x2b63('0x1f')][_0x2b63('0x8a')]=_0x2b63('0x97');_0x3e6aae['message'][_0x2b63('0x4d')]=htmlToText[_0x2b63('0x8c')](_0x2a8faa[_0x2b63('0x1f')][_0x2b63('0x4d')]);respondWithRpcPromise('EventManager',_0x2b63('0x8d'),{'event':_0x2b63('0x98'),'message':_0x3e6aae[_0x2b63('0x1f')]},client9002);return _0x2a8faa;}return null;})[_0x2b63('0x17')](respondWithResult(_0x4797ad,null))['catch'](handleError(_0x4797ad,null));};exports['download']=function(_0x35199f,_0x5ceb6d){var _0x53e0bd=moment()[_0x2b63('0x99')]()[_0x2b63('0x9a')]();var _0x2a7491=path[_0x2b63('0x9b')](config[_0x2b63('0x67')],'server',_0x2b63('0x9c'),_0x2b63('0x9d'));var _0x36b0f9=path['join'](config[_0x2b63('0x67')],_0x2b63('0x9e'),_0x2b63('0x9c'),_0x2b63('0x66'));var _0x4f4b92=util['format']('message-%s.eml',_0x53e0bd);return db[_0x2b63('0x2f')][_0x2b63('0x4c')]({'where':{'id':_0x35199f['params']['id']},'attributes':['id',_0x2b63('0x4d'),_0x2b63('0x9f'),'to','cc',_0x2b63('0xa0'),_0x2b63('0xa1'),'createdAt'],'include':_0x35199f[_0x2b63('0x35')][_0x2b63('0x66')]?[{'model':db[_0x2b63('0xa2')],'as':'Attachments'}]:undefined})[_0x2b63('0x17')](handleEntityNotFound(_0x5ceb6d,null))[_0x2b63('0x17')](function(_0x2c9756){if(_0x2c9756){var _0x2e376d=_0x2c9756;var _0x1c9e24={'from':_0x2e376d['from'],'to':_0x2e376d['to'],'subject':_0x2e376d[_0x2b63('0xa1')],'html':htmlEntities[_0x2b63('0xa3')](_0x2e376d[_0x2b63('0x4d')]),'headers':{'Date':moment(_0x2e376d['createdAt'])[_0x2b63('0x6f')]('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x2c9756['cc']){_0x1c9e24[_0x2b63('0xa4')]['Cc']=_0x2c9756['cc'];}if(_0x2c9756['bcc']){_0x1c9e24[_0x2b63('0xa4')][_0x2b63('0xa5')]=_0x2c9756['bcc'];}return new BPromise(function(_0x4b79c2,_0x1777b6){if(_0x2c9756['Attachments']){for(var _0x14649f=0x0;_0x14649f<_0x2c9756['Attachments']['length'];_0x14649f++){var _0x2d8198=_0x2c9756[_0x2b63('0xa6')][_0x14649f];var _0x426553=path[_0x2b63('0x9b')](_0x36b0f9,_0x2d8198[_0x2b63('0x69')]);if(fs[_0x2b63('0xa7')](_0x426553)){_0x1c9e24['attachments'][_0x2b63('0xa8')]({'name':_0x2d8198['name'],'contentType':_0x2d8198['type'],'data':fs['readFileSync'](_0x426553)});}}}emlformat['build'](_0x1c9e24,function(_0x20bf1c,_0x4891c7){if(_0x20bf1c)return _0x1777b6(_0x20bf1c);fs[_0x2b63('0xa9')](path[_0x2b63('0x9b')](_0x2a7491,_0x4f4b92),_0x4891c7);return _0x4b79c2(_0x4891c7);});});}})[_0x2b63('0x17')](function(_0xddc81a){if(_0xddc81a){return _0x5ceb6d[_0x2b63('0xaa')](path[_0x2b63('0x9b')](_0x2a7491,_0x4f4b92),_0x4f4b92,function(_0x14a9fb){if(!_0x14a9fb)fs[_0x2b63('0xab')](path[_0x2b63('0x9b')](_0x2a7491,_0x4f4b92));});}})['catch'](handleError(_0x5ceb6d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2419=['hasOwnProperty','hook','exports','events','../../mysqldb','MailMessage','save','update','remove','emit'];(function(_0x10aafe,_0x10f825){var _0x51d3f8=function(_0x4877bd){while(--_0x4877bd){_0x10aafe['push'](_0x10aafe['shift']());}};_0x51d3f8(++_0x10f825);}(_0x2419,0x11b));var _0x9241=function(_0x2eb776,_0x27c3c3){_0x2eb776=_0x2eb776-0x0;var _0x31fa34=_0x2419[_0x2eb776];return _0x31fa34;};'use strict';var EventEmitter=require(_0x9241('0x0'));var MailMessage=require(_0x9241('0x1'))['db'][_0x9241('0x2')];var MailMessageEvents=new EventEmitter();MailMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x9241('0x3'),'afterUpdate':_0x9241('0x4'),'afterDestroy':_0x9241('0x5')};function emitEvent(_0x2810ef){return function(_0x1ae0d8,_0x19edf6,_0x2ce99b){MailMessageEvents[_0x9241('0x6')](_0x2810ef+':'+_0x1ae0d8['id'],_0x1ae0d8);MailMessageEvents[_0x9241('0x6')](_0x2810ef,_0x1ae0d8);_0x2ce99b(null);};}for(var e in events){if(events[_0x9241('0x7')](e)){var event=events[e];MailMessage[_0x9241('0x8')](e,emitEvent(event));}}module[_0x9241('0x9')]=MailMessageEvents;
\ No newline at end of file
+var _0xe250=['setMaxListeners','emit','hasOwnProperty','hook','exports','events'];(function(_0x2e0273,_0x4521ea){var _0x2d0afa=function(_0x3b0b9c){while(--_0x3b0b9c){_0x2e0273['push'](_0x2e0273['shift']());}};_0x2d0afa(++_0x4521ea);}(_0xe250,0x185));var _0x0e25=function(_0x4b0b0b,_0x4d06a0){_0x4b0b0b=_0x4b0b0b-0x0;var _0x17b6fb=_0xe250[_0x4b0b0b];return _0x17b6fb;};'use strict';var EventEmitter=require(_0x0e25('0x0'));var MailMessage=require('../../mysqldb')['db']['MailMessage'];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0x0e25('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x316da8){return function(_0x3a2123,_0x2c8329,_0x5b4ee9){MailMessageEvents[_0x0e25('0x2')](_0x316da8+':'+_0x3a2123['id'],_0x3a2123);MailMessageEvents[_0x0e25('0x2')](_0x316da8,_0x3a2123);_0x5b4ee9(null);};}for(var e in events){if(events[_0x0e25('0x3')](e)){var event=events[e];MailMessage[_0x0e25('0x4')](e,emitEvent(event));}}module[_0x0e25('0x5')]=MailMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70a6=['error','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','html-to-text','path','rimraf','../../config/environment','./mailMessage.attributes','define','MailMessage','mail_messages','messageId','fti_mail_messages','subject','FULLTEXT','body','plainBody','fromString','models','get','toLowerCase','direction','out','secret','isNil','UserId','findOne','MailInteractionId','then','update'];(function(_0x4b49c9,_0x290d55){var _0xab2d67=function(_0x3a8e9c){while(--_0x3a8e9c){_0x4b49c9['push'](_0x4b49c9['shift']());}};_0xab2d67(++_0x290d55);}(_0x70a6,0x72));var _0x670a=function(_0x2f88a3,_0x108fd5){_0x2f88a3=_0x2f88a3-0x0;var _0x199492=_0x70a6[_0x2f88a3];return _0x199492;};'use strict';var _=require(_0x670a('0x0'));var util=require(_0x670a('0x1'));var logger=require(_0x670a('0x2'))(_0x670a('0x3'));var moment=require(_0x670a('0x4'));var BPromise=require(_0x670a('0x5'));var rp=require(_0x670a('0x6'));var htmlToText=require(_0x670a('0x7'));var fs=require('fs');var path=require(_0x670a('0x8'));var rimraf=require(_0x670a('0x9'));var config=require(_0x670a('0xa'));var attributes=require(_0x670a('0xb'));module['exports']=function(_0x596f86,_0x5d04ae){return _0x596f86[_0x670a('0xc')](_0x670a('0xd'),attributes,{'tableName':_0x670a('0xe'),'paranoid':![],'indexes':[{'name':_0x670a('0xf'),'fields':[_0x670a('0xf')]},{'name':_0x670a('0x10'),'fields':['plainBody',_0x670a('0x11')],'type':_0x670a('0x12')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x5b1aba,_0x46643e,_0x1a871c){if(_0x5b1aba[_0x670a('0x13')]){_0x5b1aba[_0x670a('0x14')]=htmlToText[_0x670a('0x15')](_0x5b1aba['body'],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x1a871c(null,_0x46643e);},'afterCreate':function(_0x3ee6f3,_0x51cf00,_0x426d19){var _0x16ae76=_0x596f86[_0x670a('0x16')];var _0x11a636=_0x3ee6f3[_0x670a('0x17')]({'plain':!![]});if(_0x11a636['direction'][_0x670a('0x18')]()==='in'||_0x11a636[_0x670a('0x19')][_0x670a('0x18')]()===_0x670a('0x1a')&&!_0x11a636[_0x670a('0x1b')]&&!_[_0x670a('0x1c')](_0x11a636[_0x670a('0x1d')])){_0x16ae76['MailInteraction'][_0x670a('0x1e')]({'where':{'id':_0x11a636[_0x670a('0x1f')]}})[_0x670a('0x20')](function(_0x434e48){if(_0x434e48){_0x434e48[_0x670a('0x21')]({'lastMsgAt':_0x11a636['createdAt'],'lastMsgDirection':_0x11a636[_0x670a('0x19')][_0x670a('0x18')]()});}})['catch'](function(_0x1b2a07){console[_0x670a('0x22')](_0x1b2a07);});}_0x426d19();}},'charset':_0x670a('0x23'),'collate':_0x670a('0x24')});};
\ No newline at end of file
+var _0xc8e4=['body','models','direction','toLowerCase','secret','isNil','UserId','MailInteraction','findOne','MailInteractionId','then','update','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','moment','request-promise','rimraf','../../config/environment','./mailMessage.attributes','exports','define','MailMessage','messageId','plainBody','subject','FULLTEXT','fromString'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc8e4,0xd7));var _0x4c8e=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0xc8e4[_0x178e48];return _0x440d7e;};'use strict';var _=require(_0x4c8e('0x0'));var util=require(_0x4c8e('0x1'));var logger=require('../../config/logger')(_0x4c8e('0x2'));var moment=require(_0x4c8e('0x3'));var BPromise=require('bluebird');var rp=require(_0x4c8e('0x4'));var htmlToText=require('html-to-text');var fs=require('fs');var path=require('path');var rimraf=require(_0x4c8e('0x5'));var config=require(_0x4c8e('0x6'));var attributes=require(_0x4c8e('0x7'));module[_0x4c8e('0x8')]=function(_0x18d7d1,_0x5d572f){return _0x18d7d1[_0x4c8e('0x9')](_0x4c8e('0xa'),attributes,{'tableName':'mail_messages','paranoid':![],'indexes':[{'name':_0x4c8e('0xb'),'fields':[_0x4c8e('0xb')]},{'name':'fti_mail_messages','fields':[_0x4c8e('0xc'),_0x4c8e('0xd')],'type':_0x4c8e('0xe')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x5c678b,_0x276f22,_0x55f32b){if(_0x5c678b['body']){_0x5c678b[_0x4c8e('0xc')]=htmlToText[_0x4c8e('0xf')](_0x5c678b[_0x4c8e('0x10')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x55f32b(null,_0x276f22);},'afterCreate':function(_0x52ec5b,_0x432c5f,_0x8296d8){var _0x548721=_0x18d7d1[_0x4c8e('0x11')];var _0x49dbfd=_0x52ec5b['get']({'plain':!![]});if(_0x49dbfd[_0x4c8e('0x12')]['toLowerCase']()==='in'||_0x49dbfd[_0x4c8e('0x12')][_0x4c8e('0x13')]()==='out'&&!_0x49dbfd[_0x4c8e('0x14')]&&!_[_0x4c8e('0x15')](_0x49dbfd[_0x4c8e('0x16')])){_0x548721[_0x4c8e('0x17')][_0x4c8e('0x18')]({'where':{'id':_0x49dbfd[_0x4c8e('0x19')]}})[_0x4c8e('0x1a')](function(_0xaceeb4){if(_0xaceeb4){_0xaceeb4[_0x4c8e('0x1b')]({'lastMsgAt':_0x49dbfd[_0x4c8e('0x1c')],'lastMsgDirection':_0x49dbfd['direction']['toLowerCase']()});}})[_0x4c8e('0x1d')](function(_0x34b1f5){console[_0x4c8e('0x1e')](_0x34b1f5);});}_0x8296d8();}},'charset':_0x4c8e('0x1f'),'collate':_0x4c8e('0x20')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fdc=['catch','CreateMailMessage','MailMessage','create','body','options','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./mailMessage.socket','register','request','then','MailMessage,\x20%s,\x20%s','MailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result'];(function(_0x5199d1,_0x3069d9){var _0x5d93ea=function(_0x3c3228){while(--_0x3c3228){_0x5199d1['push'](_0x5199d1['shift']());}};_0x5d93ea(++_0x3069d9);}(_0x5fdc,0x127));var _0xc5fd=function(_0x459e0f,_0x285439){_0x459e0f=_0x459e0f-0x0;var _0x278698=_0x5fdc[_0x459e0f];return _0x278698;};'use strict';var _=require(_0xc5fd('0x0'));var util=require(_0xc5fd('0x1'));var moment=require(_0xc5fd('0x2'));var BPromise=require(_0xc5fd('0x3'));var rs=require(_0xc5fd('0x4'));var fs=require('fs');var Redis=require(_0xc5fd('0x5'));var db=require(_0xc5fd('0x6'))['db'];var utils=require(_0xc5fd('0x7'));var logger=require(_0xc5fd('0x8'))(_0xc5fd('0x9'));var config=require(_0xc5fd('0xa'));var jayson=require(_0xc5fd('0xb'));var client=jayson[_0xc5fd('0xc')][_0xc5fd('0xd')]({'port':0x232a});config[_0xc5fd('0xe')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xc5fd('0xf'))(new Redis(config[_0xc5fd('0xe')]));require(_0xc5fd('0x10'))[_0xc5fd('0x11')](socket);function respondWithRpcPromise(_0x4e6d35,_0x4e1e94,_0x3442dd){return new BPromise(function(_0x1edeec,_0x39a95a){return client[_0xc5fd('0x12')](_0x4e6d35,_0x3442dd)[_0xc5fd('0x13')](function(_0x368c80){logger['info'](_0xc5fd('0x14'),_0x4e1e94,'request\x20sent');logger['debug'](_0xc5fd('0x15'),_0x4e1e94,_0xc5fd('0x16'),JSON[_0xc5fd('0x17')](_0x368c80));if(_0x368c80[_0xc5fd('0x18')]){if(_0x368c80[_0xc5fd('0x18')][_0xc5fd('0x19')]===0x1f4){logger[_0xc5fd('0x18')](_0xc5fd('0x14'),_0x4e1e94,_0x368c80['error'][_0xc5fd('0x1a')]);return _0x39a95a(_0x368c80[_0xc5fd('0x18')][_0xc5fd('0x1a')]);}logger[_0xc5fd('0x18')]('MailMessage,\x20%s,\x20%s',_0x4e1e94,_0x368c80['error']['message']);return _0x1edeec(_0x368c80['error']['message']);}else{logger[_0xc5fd('0x1b')](_0xc5fd('0x14'),_0x4e1e94,_0xc5fd('0x16'));_0x1edeec(_0x368c80[_0xc5fd('0x1c')][_0xc5fd('0x1a')]);}})[_0xc5fd('0x1d')](function(_0xfd14c7){logger['error'](_0xc5fd('0x14'),_0x4e1e94,_0xfd14c7);_0x39a95a(_0xfd14c7);});});}exports[_0xc5fd('0x1e')]=function(_0x32eac2){var _0x9c12e4=this;return new Promise(function(_0x3b3093,_0x48024e){return db[_0xc5fd('0x1f')][_0xc5fd('0x20')](_0x32eac2[_0xc5fd('0x21')],{'raw':_0x32eac2[_0xc5fd('0x22')]?_0x32eac2['options']['raw']===undefined?!![]:![]:!![]})[_0xc5fd('0x13')](function(_0x2ab935){logger[_0xc5fd('0x1b')](_0xc5fd('0x1e'),_0x32eac2);logger[_0xc5fd('0x23')](_0xc5fd('0x1e'),_0x32eac2,JSON['stringify'](_0x2ab935));_0x3b3093(_0x2ab935);})[_0xc5fd('0x1d')](function(_0x2701f7){logger[_0xc5fd('0x18')](_0xc5fd('0x1e'),_0x2701f7[_0xc5fd('0x1a')],_0x32eac2);_0x48024e(_0x9c12e4[_0xc5fd('0x18')](0x1f4,_0x2701f7[_0xc5fd('0x1a')]));});});};
\ No newline at end of file
+var _0x3266=['result','catch','CreateMailMessage','MailMessage','body','options','raw','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','redis','socket.io-emitter','./mailMessage.socket','register','request','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message'];(function(_0x5bac50,_0x540d00){var _0x28afd5=function(_0x25b25d){while(--_0x25b25d){_0x5bac50['push'](_0x5bac50['shift']());}};_0x28afd5(++_0x540d00);}(_0x3266,0x6a));var _0x6326=function(_0x3ba924,_0x3b99f0){_0x3ba924=_0x3ba924-0x0;var _0x4cc1df=_0x3266[_0x3ba924];return _0x4cc1df;};'use strict';var _=require(_0x6326('0x0'));var util=require(_0x6326('0x1'));var moment=require(_0x6326('0x2'));var BPromise=require(_0x6326('0x3'));var rs=require(_0x6326('0x4'));var fs=require('fs');var Redis=require(_0x6326('0x5'));var db=require(_0x6326('0x6'))['db'];var utils=require(_0x6326('0x7'));var logger=require(_0x6326('0x8'))('rpc');var config=require(_0x6326('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x6326('0xa')][_0x6326('0xb')]({'port':0x232a});config[_0x6326('0xc')]=_['defaults'](config[_0x6326('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x6326('0xd'))(new Redis(config[_0x6326('0xc')]));require(_0x6326('0xe'))[_0x6326('0xf')](socket);function respondWithRpcPromise(_0x37a23d,_0x53c3e1,_0x1b45a7){return new BPromise(function(_0x464a36,_0x3590ab){return client[_0x6326('0x10')](_0x37a23d,_0x1b45a7)[_0x6326('0x11')](function(_0x3b056c){logger[_0x6326('0x12')](_0x6326('0x13'),_0x53c3e1,_0x6326('0x14'));logger[_0x6326('0x15')]('MailMessage,\x20%s,\x20%s,\x20%s',_0x53c3e1,'request\x20sent',JSON[_0x6326('0x16')](_0x3b056c));if(_0x3b056c[_0x6326('0x17')]){if(_0x3b056c['error'][_0x6326('0x18')]===0x1f4){logger['error'](_0x6326('0x13'),_0x53c3e1,_0x3b056c[_0x6326('0x17')][_0x6326('0x19')]);return _0x3590ab(_0x3b056c[_0x6326('0x17')][_0x6326('0x19')]);}logger[_0x6326('0x17')]('MailMessage,\x20%s,\x20%s',_0x53c3e1,_0x3b056c[_0x6326('0x17')]['message']);return _0x464a36(_0x3b056c['error']['message']);}else{logger['info']('MailMessage,\x20%s,\x20%s',_0x53c3e1,'request\x20sent');_0x464a36(_0x3b056c[_0x6326('0x1a')][_0x6326('0x19')]);}})[_0x6326('0x1b')](function(_0x556c4e){logger['error'](_0x6326('0x13'),_0x53c3e1,_0x556c4e);_0x3590ab(_0x556c4e);});});}exports[_0x6326('0x1c')]=function(_0x272b5c){var _0x3db834=this;return new Promise(function(_0x3c08db,_0x25957a){return db[_0x6326('0x1d')]['create'](_0x272b5c[_0x6326('0x1e')],{'raw':_0x272b5c['options']?_0x272b5c[_0x6326('0x1f')][_0x6326('0x20')]===undefined?!![]:![]:!![]})[_0x6326('0x11')](function(_0x24fb78){logger[_0x6326('0x12')](_0x6326('0x1c'),_0x272b5c);logger[_0x6326('0x15')](_0x6326('0x1c'),_0x272b5c,JSON[_0x6326('0x16')](_0x24fb78));_0x3c08db(_0x24fb78);})[_0x6326('0x1b')](function(_0x34954b){logger['error'](_0x6326('0x1c'),_0x34954b[_0x6326('0x19')],_0x272b5c);_0x25957a(_0x3db834['error'](0x1f4,_0x34954b['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e1a=['mailMessage:','save','remove','removeListener','length'];(function(_0x17928f,_0x4ad33f){var _0x500b63=function(_0x127644){while(--_0x127644){_0x17928f['push'](_0x17928f['shift']());}};_0x500b63(++_0x4ad33f);}(_0x3e1a,0x187));var _0xa3e1=function(_0x3d2781,_0x3ff8f0){_0x3d2781=_0x3d2781-0x0;var _0x9a75cf=_0x3e1a[_0x3d2781];return _0x9a75cf;};'use strict';var MailMessageEvents=require('./mailMessage.events');var events=[_0xa3e1('0x0'),_0xa3e1('0x1'),'update'];function createListener(_0x3e43cb,_0x102bdb){return function(_0x570814){_0x102bdb['emit'](_0x3e43cb,_0x570814);};}function removeListener(_0x1d36f9,_0x24ec70){return function(){MailMessageEvents[_0xa3e1('0x2')](_0x1d36f9,_0x24ec70);};}exports['register']=function(_0x1f35fc){for(var _0x524bd5=0x0,_0x38b6e6=events[_0xa3e1('0x3')];_0x524bd5<_0x38b6e6;_0x524bd5++){var _0x48df47=events[_0x524bd5];var _0x53b013=createListener(_0xa3e1('0x4')+_0x48df47,_0x1f35fc);MailMessageEvents['on'](_0x48df47,_0x53b013);}};
\ No newline at end of file
+var _0x67f0=['removeListener','register','length','mailMessage:','save','update'];(function(_0xe38b2e,_0x5a8712){var _0x57d0bc=function(_0x2d0d86){while(--_0x2d0d86){_0xe38b2e['push'](_0xe38b2e['shift']());}};_0x57d0bc(++_0x5a8712);}(_0x67f0,0x106));var _0x067f=function(_0x511b76,_0x4727fa){_0x511b76=_0x511b76-0x0;var _0x5424ff=_0x67f0[_0x511b76];return _0x5424ff;};'use strict';var MailMessageEvents=require('./mailMessage.events');var events=[_0x067f('0x0'),'remove',_0x067f('0x1')];function createListener(_0x4d2dd1,_0x14725d){return function(_0x50b024){_0x14725d['emit'](_0x4d2dd1,_0x50b024);};}function removeListener(_0x20d956,_0x29b1bb){return function(){MailMessageEvents[_0x067f('0x2')](_0x20d956,_0x29b1bb);};}exports[_0x067f('0x3')]=function(_0x150be5){for(var _0x5089a4=0x0,_0x2b3686=events[_0x067f('0x4')];_0x5089a4<_0x2b3686;_0x5089a4++){var _0x5a7482=events[_0x5089a4];var _0xb437bd=createListener(_0x067f('0x5')+_0x5a7482,_0x150be5);MailMessageEvents['on'](_0x5a7482,_0xb437bd);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81bd=['removeTeams','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./mailQueue.controller','get','index','isAuthenticated','/:id','show','getMembers','/:id/teams','/:id/users','getAgents','post','create','addTeams','addAgents','delete'];(function(_0x48cb1b,_0x596a80){var _0x2c636f=function(_0x3a8ddb){while(--_0x3a8ddb){_0x48cb1b['push'](_0x48cb1b['shift']());}};_0x2c636f(++_0x596a80);}(_0x81bd,0x1c4));var _0xd81b=function(_0x12dd11,_0x52b882){_0x12dd11=_0x12dd11-0x0;var _0x3a502b=_0x81bd[_0x12dd11];return _0x3a502b;};'use strict';var multer=require(_0xd81b('0x0'));var util=require(_0xd81b('0x1'));var path=require(_0xd81b('0x2'));var timeout=require(_0xd81b('0x3'));var express=require(_0xd81b('0x4'));var router=express[_0xd81b('0x5')]();var fs_extra=require(_0xd81b('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xd81b('0x7'));var controller=require(_0xd81b('0x8'));router[_0xd81b('0x9')]('/',auth['isAuthenticated'](),controller[_0xd81b('0xa')]);router[_0xd81b('0x9')]('/describe',auth[_0xd81b('0xb')](),controller['describe']);router[_0xd81b('0x9')](_0xd81b('0xc'),auth[_0xd81b('0xb')](),controller[_0xd81b('0xd')]);router[_0xd81b('0x9')]('/:id/members',auth[_0xd81b('0xb')](),controller[_0xd81b('0xe')]);router['get'](_0xd81b('0xf'),auth[_0xd81b('0xb')](),controller['getTeams']);router[_0xd81b('0x9')](_0xd81b('0x10'),auth[_0xd81b('0xb')](),controller[_0xd81b('0x11')]);router[_0xd81b('0x12')]('/',auth[_0xd81b('0xb')](),controller[_0xd81b('0x13')]);router[_0xd81b('0x12')](_0xd81b('0xf'),auth[_0xd81b('0xb')](),controller[_0xd81b('0x14')]);router[_0xd81b('0x12')]('/:id/users',auth[_0xd81b('0xb')](),controller[_0xd81b('0x15')]);router['put']('/:id',auth[_0xd81b('0xb')](),controller['update']);router[_0xd81b('0x16')](_0xd81b('0xc'),auth[_0xd81b('0xb')](),controller['destroy']);router[_0xd81b('0x16')]('/:id/teams',auth[_0xd81b('0xb')](),controller[_0xd81b('0x17')]);router['delete'](_0xd81b('0x10'),auth[_0xd81b('0xb')](),controller['removeAgents']);module[_0xd81b('0x18')]=router;
\ No newline at end of file
+var _0xc30b=['../../config/environment','./mailQueue.controller','get','isAuthenticated','index','/describe','/:id','/:id/members','getMembers','/:id/teams','/:id/users','create','post','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service'];(function(_0x20dba1,_0x726a24){var _0x47203d=function(_0x1cfb2d){while(--_0x1cfb2d){_0x20dba1['push'](_0x20dba1['shift']());}};_0x47203d(++_0x726a24);}(_0xc30b,0xa1));var _0xbc30=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0xc30b[_0x4e676e];return _0x336a3c;};'use strict';var multer=require(_0xbc30('0x0'));var util=require(_0xbc30('0x1'));var path=require(_0xbc30('0x2'));var timeout=require(_0xbc30('0x3'));var express=require('express');var router=express[_0xbc30('0x4')]();var fs_extra=require(_0xbc30('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xbc30('0x6'));var config=require(_0xbc30('0x7'));var controller=require(_0xbc30('0x8'));router[_0xbc30('0x9')]('/',auth[_0xbc30('0xa')](),controller[_0xbc30('0xb')]);router[_0xbc30('0x9')](_0xbc30('0xc'),auth[_0xbc30('0xa')](),controller['describe']);router['get'](_0xbc30('0xd'),auth[_0xbc30('0xa')](),controller['show']);router[_0xbc30('0x9')](_0xbc30('0xe'),auth[_0xbc30('0xa')](),controller[_0xbc30('0xf')]);router[_0xbc30('0x9')](_0xbc30('0x10'),auth[_0xbc30('0xa')](),controller['getTeams']);router[_0xbc30('0x9')](_0xbc30('0x11'),auth[_0xbc30('0xa')](),controller['getAgents']);router['post']('/',auth[_0xbc30('0xa')](),controller[_0xbc30('0x12')]);router[_0xbc30('0x13')]('/:id/teams',auth['isAuthenticated'](),controller['addTeams']);router[_0xbc30('0x13')]('/:id/users',auth[_0xbc30('0xa')](),controller[_0xbc30('0x14')]);router[_0xbc30('0x15')](_0xbc30('0xd'),auth[_0xbc30('0xa')](),controller[_0xbc30('0x16')]);router[_0xbc30('0x17')](_0xbc30('0xd'),auth[_0xbc30('0xa')](),controller[_0xbc30('0x18')]);router[_0xbc30('0x17')](_0xbc30('0x10'),auth[_0xbc30('0xa')](),controller[_0xbc30('0x19')]);router[_0xbc30('0x17')](_0xbc30('0x11'),auth[_0xbc30('0xa')](),controller[_0xbc30('0x1a')]);module[_0xbc30('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9295=['roundrobin','exports','STRING','name','INTEGER','ENUM','rrmemory','beepall'];(function(_0x545eb6,_0x464f70){var _0x205d3e=function(_0x4e2d19){while(--_0x4e2d19){_0x545eb6['push'](_0x545eb6['shift']());}};_0x205d3e(++_0x464f70);}(_0x9295,0x129));var _0x5929=function(_0x3a08c1,_0x389f00){_0x3a08c1=_0x3a08c1-0x0;var _0x592e2e=_0x9295[_0x3a08c1];return _0x592e2e;};'use strict';var Sequelize=require('sequelize');module[_0x5929('0x0')]={'name':{'type':Sequelize[_0x5929('0x1')],'unique':_0x5929('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x5929('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x5929('0x4')](_0x5929('0x5'),_0x5929('0x6'),_0x5929('0x7'))}};
\ No newline at end of file
+var _0x6483=['STRING','name','INTEGER','rrmemory','beepall','roundrobin','exports'];(function(_0x349cb6,_0x219840){var _0x36989a=function(_0xfdb1a9){while(--_0xfdb1a9){_0x349cb6['push'](_0x349cb6['shift']());}};_0x36989a(++_0x219840);}(_0x6483,0x8b));var _0x3648=function(_0x3428a4,_0x1633f8){_0x3428a4=_0x3428a4-0x0;var _0x38ad92=_0x6483[_0x3428a4];return _0x38ad92;};'use strict';var Sequelize=require('sequelize');module[_0x3648('0x0')]={'name':{'type':Sequelize[_0x3648('0x1')],'unique':_0x3648('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x3648('0x1')]},'timeout':{'type':Sequelize[_0x3648('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x3648('0x4'),_0x3648('0x5'),_0x3648('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x417f=['userMailQueue:save','getAgents','rimraf','request-promise','moment','bluebird','mustache','util','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./mailQueue.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','get','MailQueues','name','send','index','map','MailQueue','rawAttributes','fieldName','type','keys','query','filters','model','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','rows','show','params','intersection','length','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','getMembers','findOne','UserMailQueue','pick','MailQueueId','User','UserId','mailPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','Team','nolimit','addTeams','Agents','online','flatMap','transaction','each','forEach','emit','removeTeams','ids','field','tq.TeamId','from','team_has_mail_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','push','sequelize','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','value','isEmpty','removeAgents','userMailQueue:remove','addAgents','omit','spread'];(function(_0x3cc81e,_0x3309df){var _0x3d83ba=function(_0x3c61b3){while(--_0x3c61b3){_0x3cc81e['push'](_0x3cc81e['shift']());}};_0x3d83ba(++_0x3309df);}(_0x417f,0x91));var _0xf417=function(_0x3b160c,_0x40f6ba){_0x3b160c=_0x3b160c-0x0;var _0x26c0b2=_0x417f[_0x3b160c];return _0x26c0b2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf417('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xf417('0x1'));var moment=require(_0xf417('0x2'));var BPromise=require(_0xf417('0x3'));var Mustache=require(_0xf417('0x4'));var util=require(_0xf417('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf417('0x6'));var _=require('lodash');var squel=require(_0xf417('0x7'));var crypto=require(_0xf417('0x8'));var jsforce=require(_0xf417('0x9'));var deskjs=require(_0xf417('0xa'));var toCsv=require(_0xf417('0xb'));var querystring=require(_0xf417('0xc'));var Papa=require(_0xf417('0xd'));var Redis=require(_0xf417('0xe'));var authService=require(_0xf417('0xf'));var qs=require(_0xf417('0x10'));var as=require(_0xf417('0x11'));var hardwareService=require(_0xf417('0x12'));var logger=require(_0xf417('0x13'))(_0xf417('0x14'));var utils=require(_0xf417('0x15'));var config=require(_0xf417('0x16'));var licenseUtil=require(_0xf417('0x17'));var db=require(_0xf417('0x18'))['db'];config[_0xf417('0x19')]=_[_0xf417('0x1a')](config[_0xf417('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xf417('0x1b'))(new Redis(config[_0xf417('0x19')]));require(_0xf417('0x1c'))[_0xf417('0x1d')](socket);function respondWithStatusCode(_0x3f50bd,_0x5cf7a0){_0x5cf7a0=_0x5cf7a0||0xcc;return function(_0x5af13d){if(_0x5af13d){return _0x3f50bd[_0xf417('0x1e')](_0x5cf7a0);}return _0x3f50bd['status'](_0x5cf7a0)[_0xf417('0x1f')]();};}function respondWithResult(_0xe40047,_0x48f319){_0x48f319=_0x48f319||0xc8;return function(_0x378574){if(_0x378574){return _0xe40047[_0xf417('0x20')](_0x48f319)[_0xf417('0x21')](_0x378574);}};}function respondWithFilteredResult(_0x101647,_0x5aea0f){return function(_0x24e5e4){if(_0x24e5e4){var _0x5f07a5=typeof _0x5aea0f[_0xf417('0x22')]===_0xf417('0x23')&&typeof _0x5aea0f[_0xf417('0x24')]==='undefined';var _0x32f111=_0x24e5e4[_0xf417('0x25')];var _0x49ca21=_0x5f07a5?0x0:_0x5aea0f[_0xf417('0x22')];var _0x364c00=_0x5f07a5?_0x24e5e4['count']:_0x5aea0f[_0xf417('0x22')]+_0x5aea0f[_0xf417('0x24')];var _0x310bc0;if(_0x364c00>=_0x32f111){_0x364c00=_0x32f111;_0x310bc0=0xc8;}else{_0x310bc0=0xce;}_0x101647[_0xf417('0x20')](_0x310bc0);return _0x101647[_0xf417('0x26')](_0xf417('0x27'),_0x49ca21+'-'+_0x364c00+'/'+_0x32f111)[_0xf417('0x21')](_0x24e5e4);}return null;};}function patchUpdates(_0x309d6e){return function(_0x4866a9){try{jsonpatch[_0xf417('0x28')](_0x4866a9,_0x309d6e,!![]);}catch(_0x42accf){return BPromise['reject'](_0x42accf);}return _0x4866a9[_0xf417('0x29')]();};}function saveUpdates(_0x498cf2,_0x5f4908){return function(_0x5bed33){if(_0x5bed33){return _0x5bed33[_0xf417('0x2a')](_0x498cf2)['then'](function(_0xc3f9e2){return _0xc3f9e2;});}return null;};}function removeEntity(_0x34bf5d,_0x566c75){return function(_0x39ee04){if(_0x39ee04){return _0x39ee04[_0xf417('0x2b')]()[_0xf417('0x2c')](function(){var _0x5a442c=_0x39ee04[_0xf417('0x2d')]({'plain':!![]});var _0x3be3cd=_0xf417('0x2e');return db['UserProfileResource'][_0xf417('0x2b')]({'where':{'type':_0x3be3cd,'resourceId':_0x5a442c['id']}})['then'](function(){return _0x39ee04;});})[_0xf417('0x2c')](function(){_0x34bf5d['status'](0xcc)[_0xf417('0x1f')]();});}};}function handleEntityNotFound(_0x568cbf,_0x3be96e){return function(_0x53adfe){if(!_0x53adfe){_0x568cbf['sendStatus'](0x194);}return _0x53adfe;};}function handleError(_0x28d849,_0x3ddf72){_0x3ddf72=_0x3ddf72||0x1f4;return function(_0x3c289e){logger['error'](_0x3c289e['stack']);if(_0x3c289e[_0xf417('0x2f')]){delete _0x3c289e[_0xf417('0x2f')];}_0x28d849[_0xf417('0x20')](_0x3ddf72)[_0xf417('0x30')](_0x3c289e);};}exports[_0xf417('0x31')]=function(_0x5ceb66,_0x1a63bd){var _0x35d5bd={},_0x2a34ed={},_0x53621a={'count':0x0,'rows':[]};var _0x50a48c=_[_0xf417('0x32')](db[_0xf417('0x33')][_0xf417('0x34')],function(_0x13ac0e){return{'name':_0x13ac0e[_0xf417('0x35')],'type':_0x13ac0e[_0xf417('0x36')]['key']};});_0x2a34ed['model']=_['map'](_0x50a48c,_0xf417('0x2f'));_0x2a34ed['query']=_[_0xf417('0x37')](_0x5ceb66[_0xf417('0x38')]);_0x2a34ed[_0xf417('0x39')]=_['intersection'](_0x2a34ed[_0xf417('0x3a')],_0x2a34ed[_0xf417('0x38')]);_0x35d5bd[_0xf417('0x3b')]=_['intersection'](_0x2a34ed[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x5ceb66[_0xf417('0x38')][_0xf417('0x3c')]));_0x35d5bd['attributes']=_0x35d5bd[_0xf417('0x3b')]['length']?_0x35d5bd[_0xf417('0x3b')]:_0x2a34ed['model'];if(!_0x5ceb66[_0xf417('0x38')][_0xf417('0x3d')]('nolimit')){_0x35d5bd[_0xf417('0x24')]=qs['limit'](_0x5ceb66[_0xf417('0x38')][_0xf417('0x24')]);_0x35d5bd[_0xf417('0x22')]=qs[_0xf417('0x22')](_0x5ceb66['query'][_0xf417('0x22')]);}_0x35d5bd[_0xf417('0x3e')]=qs[_0xf417('0x3f')](_0x5ceb66[_0xf417('0x38')]['sort']);_0x35d5bd[_0xf417('0x40')]=qs['filters'](_['pick'](_0x5ceb66[_0xf417('0x38')],_0x2a34ed['filters']),_0x50a48c);if(_0x5ceb66[_0xf417('0x38')][_0xf417('0x41')]){_0x35d5bd[_0xf417('0x40')]=_[_0xf417('0x42')](_0x35d5bd[_0xf417('0x40')],{'$or':_[_0xf417('0x32')](_0x50a48c,function(_0x3a6489){if(_0x3a6489[_0xf417('0x36')]!=='VIRTUAL'){var _0xadf907={};_0xadf907[_0x3a6489['name']]={'$like':'%'+_0x5ceb66[_0xf417('0x38')][_0xf417('0x41')]+'%'};return _0xadf907;}})});}_0x35d5bd=_['merge']({},_0x35d5bd,_0x5ceb66[_0xf417('0x43')]);var _0x29a64f={'where':_0x35d5bd[_0xf417('0x40')]};return db[_0xf417('0x33')][_0xf417('0x25')](_0x29a64f)['then'](function(_0x30903e){_0x53621a['count']=_0x30903e;if(_0x5ceb66[_0xf417('0x38')][_0xf417('0x44')]){_0x35d5bd[_0xf417('0x45')]=[{'all':!![]}];}return db[_0xf417('0x33')][_0xf417('0x46')](_0x35d5bd);})[_0xf417('0x2c')](function(_0x5d7ada){_0x53621a[_0xf417('0x47')]=_0x5d7ada;return _0x53621a;})['then'](respondWithFilteredResult(_0x1a63bd,_0x35d5bd))['catch'](handleError(_0x1a63bd,null));};exports[_0xf417('0x48')]=function(_0x4d44cf,_0x27523f){var _0x18f7bd={'raw':!![],'where':{'id':_0x4d44cf[_0xf417('0x49')]['id']}},_0x1c29cb={};_0x1c29cb['model']=_['keys'](db[_0xf417('0x33')][_0xf417('0x34')]);_0x1c29cb[_0xf417('0x38')]=_['keys'](_0x4d44cf['query']);_0x1c29cb[_0xf417('0x39')]=_[_0xf417('0x4a')](_0x1c29cb[_0xf417('0x3a')],_0x1c29cb['query']);_0x18f7bd['attributes']=_[_0xf417('0x4a')](_0x1c29cb[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x4d44cf[_0xf417('0x38')][_0xf417('0x3c')]));_0x18f7bd[_0xf417('0x3b')]=_0x18f7bd['attributes'][_0xf417('0x4b')]?_0x18f7bd[_0xf417('0x3b')]:_0x1c29cb[_0xf417('0x3a')];if(_0x4d44cf[_0xf417('0x38')][_0xf417('0x44')]){_0x18f7bd[_0xf417('0x45')]=[{'all':!![]}];}_0x18f7bd=_[_0xf417('0x42')]({},_0x18f7bd,_0x4d44cf[_0xf417('0x43')]);return db[_0xf417('0x33')][_0xf417('0x4c')](_0x18f7bd)[_0xf417('0x2c')](handleEntityNotFound(_0x27523f,null))['then'](respondWithResult(_0x27523f,null))['catch'](handleError(_0x27523f,null));};exports['create']=function(_0x393b64,_0x432483){return db[_0xf417('0x33')][_0xf417('0x4d')](_0x393b64['body'],{})[_0xf417('0x2c')](function(_0x304ab2){var _0x54d72d=_0x393b64[_0xf417('0x4e')][_0xf417('0x2d')]({'plain':!![]});if(!_0x54d72d)throw new Error(_0xf417('0x4f'));if(_0x54d72d[_0xf417('0x50')]===_0xf417('0x4e')){var _0x105c40=_0x304ab2[_0xf417('0x2d')]({'plain':!![]});var _0xf7e9d6=_0xf417('0x2e');return db[_0xf417('0x51')]['find']({'where':{'name':_0xf7e9d6,'userProfileId':_0x54d72d[_0xf417('0x52')]},'raw':!![]})['then'](function(_0x3cbc7b){if(_0x3cbc7b&&_0x3cbc7b[_0xf417('0x53')]===0x0){return db[_0xf417('0x54')][_0xf417('0x4d')]({'name':_0x105c40[_0xf417('0x2f')],'resourceId':_0x105c40['id'],'type':_0x3cbc7b['name'],'sectionId':_0x3cbc7b['id']},{})[_0xf417('0x2c')](function(){return _0x304ab2;});}else{return _0x304ab2;}})[_0xf417('0x55')](function(_0x108a3f){logger['error'](_0xf417('0x56'),_0x108a3f);throw _0x108a3f;});}return _0x304ab2;})[_0xf417('0x2c')](respondWithResult(_0x432483,0xc9))['catch'](handleError(_0x432483,null));};exports['update']=function(_0x359267,_0x7cf6db){if(_0x359267[_0xf417('0x57')]['id']){delete _0x359267[_0xf417('0x57')]['id'];}return db[_0xf417('0x33')]['find']({'where':{'id':_0x359267[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x7cf6db,null))['then'](saveUpdates(_0x359267[_0xf417('0x57')],null))[_0xf417('0x2c')](respondWithResult(_0x7cf6db,null))[_0xf417('0x55')](handleError(_0x7cf6db,null));};exports[_0xf417('0x2b')]=function(_0x2bb11a,_0x197ed3){return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x2bb11a[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x197ed3,null))['then'](removeEntity(_0x197ed3,null))['catch'](handleError(_0x197ed3,null));};exports[_0xf417('0x58')]=function(_0x5f86c7,_0x2a1ffc){return db['MailQueue'][_0xf417('0x58')]()[_0xf417('0x2c')](respondWithResult(_0x2a1ffc,null))[_0xf417('0x55')](handleError(_0x2a1ffc,null));};exports[_0xf417('0x59')]=function(_0x13cb14,_0xc8dc3f,_0x44aadc){var _0x4743c0={'raw':!![],'where':{}},_0x2a5412={},_0x10670a;return db[_0xf417('0x33')][_0xf417('0x5a')]({'where':{'id':_0x13cb14[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0xc8dc3f,null))[_0xf417('0x2c')](function(_0x34b92d){if(_0x34b92d){_0x10670a=_0x34b92d[_0xf417('0x2d')]({'plain':!![]});_0x2a5412[_0xf417('0x3a')]=_['keys'](db[_0xf417('0x5b')]['rawAttributes']);_0x2a5412['query']=_[_0xf417('0x37')](_0x13cb14['query']);_0x2a5412['filters']=_[_0xf417('0x4a')](_0x2a5412['model'],_0x2a5412[_0xf417('0x38')]);_0x4743c0[_0xf417('0x3b')]=_['intersection'](_0x2a5412[_0xf417('0x3a')],qs['fields'](_0x13cb14[_0xf417('0x38')][_0xf417('0x3c')]));_0x4743c0[_0xf417('0x3b')]=_0x4743c0[_0xf417('0x3b')][_0xf417('0x4b')]?_0x4743c0[_0xf417('0x3b')]:_0x2a5412[_0xf417('0x3a')];if(!_0x13cb14['query']['hasOwnProperty']('nolimit')){_0x4743c0[_0xf417('0x24')]=qs[_0xf417('0x24')](_0x13cb14[_0xf417('0x38')][_0xf417('0x24')]);_0x4743c0[_0xf417('0x22')]=qs[_0xf417('0x22')](_0x13cb14['query'][_0xf417('0x22')]);}_0x4743c0[_0xf417('0x3e')]=qs[_0xf417('0x3f')](_0x13cb14[_0xf417('0x38')]['sort']);_0x4743c0['where']=qs[_0xf417('0x39')](_[_0xf417('0x5c')](_0x13cb14['query'],_0x2a5412[_0xf417('0x39')]));_0x4743c0[_0xf417('0x40')][_0xf417('0x5d')]=_0x34b92d['id'];if(_0x13cb14[_0xf417('0x38')][_0xf417('0x41')]){_0x4743c0[_0xf417('0x40')]=_[_0xf417('0x42')](_0x4743c0[_0xf417('0x40')],{'$or':_[_0xf417('0x32')](_0x4743c0[_0xf417('0x3b')],function(_0x114e6b){var _0x225a79={};_0x225a79[_0x114e6b]={'$like':'%'+_0x13cb14[_0xf417('0x38')]['filter']+'%'};return _0x225a79;})});}_0x4743c0=_[_0xf417('0x42')]({},_0x4743c0,_0x13cb14[_0xf417('0x43')]);return db[_0xf417('0x5b')][_0xf417('0x46')](_0x4743c0);}})['then'](function(_0x2d2adf){if(_0x2d2adf){return db[_0xf417('0x5e')]['findAndCountAll']({'where':{'id':_['map'](_0x2d2adf,_0xf417('0x5f')),'role':'agent'},'attributes':['id','name',_0xf417('0x60'),'updatedAt',_0xf417('0x61')]});}})[_0xf417('0x2c')](function(_0x5dceef){if(_0x5dceef){return{'count':_0x5dceef[_0xf417('0x25')],'rows':_['map'](_0x5dceef[_0xf417('0x47')],function(_0x3adc1b){return{'membername':_0x3adc1b[_0xf417('0x2f')],'UserId':_0x3adc1b['id'],'queue_name':_0x10670a['name'],'MailQueueId':_0x10670a['id'],'interface':util[_0xf417('0x62')](_0xf417('0x63'),_0xf417('0x64'),_0x3adc1b[_0xf417('0x2f')]),'penalty':0x0,'paused':_0x3adc1b[_0xf417('0x60')],'createdAt':_0x3adc1b[_0xf417('0x61')],'updatedAt':_0x3adc1b[_0xf417('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xf417('0x2c')](respondWithFilteredResult(_0xc8dc3f,_0x4743c0))[_0xf417('0x55')](handleError(_0xc8dc3f,null));};exports[_0xf417('0x66')]=function(_0x49d4bf,_0x461bd8,_0x5584c1){var _0x1c98ae={};var _0x345681={};var _0x31e18b;var _0x1c0a8a;return db[_0xf417('0x33')][_0xf417('0x5a')]({'where':{'id':_0x49d4bf[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x461bd8,null))[_0xf417('0x2c')](function(_0xd5522e){if(_0xd5522e){_0x31e18b=_0xd5522e;_0x345681[_0xf417('0x3a')]=_[_0xf417('0x37')](db[_0xf417('0x67')][_0xf417('0x34')]);_0x345681['query']=_['keys'](_0x49d4bf[_0xf417('0x38')]);_0x345681[_0xf417('0x39')]=_[_0xf417('0x4a')](_0x345681[_0xf417('0x3a')],_0x345681[_0xf417('0x38')]);_0x1c98ae['attributes']=_[_0xf417('0x4a')](_0x345681[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x49d4bf['query'][_0xf417('0x3c')]));_0x1c98ae[_0xf417('0x3b')]=_0x1c98ae[_0xf417('0x3b')]['length']?_0x1c98ae[_0xf417('0x3b')]:_0x345681[_0xf417('0x3a')];_0x1c98ae['order']=qs[_0xf417('0x3f')](_0x49d4bf[_0xf417('0x38')][_0xf417('0x3f')]);_0x1c98ae['where']=qs[_0xf417('0x39')](_['pick'](_0x49d4bf[_0xf417('0x38')],_0x345681[_0xf417('0x39')]));if(_0x49d4bf[_0xf417('0x38')][_0xf417('0x41')]){_0x1c98ae[_0xf417('0x40')]=_[_0xf417('0x42')](_0x1c98ae[_0xf417('0x40')],{'$or':_[_0xf417('0x32')](_0x1c98ae[_0xf417('0x3b')],function(_0x46e2ea){var _0x1a3faa={};_0x1a3faa[_0x46e2ea]={'$like':'%'+_0x49d4bf['query'][_0xf417('0x41')]+'%'};return _0x1a3faa;})});}_0x1c98ae=_[_0xf417('0x42')]({},_0x1c98ae,_0x49d4bf[_0xf417('0x43')]);return _0x31e18b[_0xf417('0x66')](_0x1c98ae);}})[_0xf417('0x2c')](function(_0x29a939){if(_0x29a939){_0x1c0a8a=_0x29a939[_0xf417('0x4b')];if(!_0x49d4bf[_0xf417('0x38')][_0xf417('0x3d')](_0xf417('0x68'))){_0x1c98ae[_0xf417('0x24')]=qs[_0xf417('0x24')](_0x49d4bf[_0xf417('0x38')][_0xf417('0x24')]);_0x1c98ae[_0xf417('0x22')]=qs[_0xf417('0x22')](_0x49d4bf[_0xf417('0x38')][_0xf417('0x22')]);}return _0x31e18b[_0xf417('0x66')](_0x1c98ae);}})['then'](function(_0x284241){if(_0x284241){return _0x284241?{'count':_0x1c0a8a,'rows':_0x284241}:null;}})[_0xf417('0x2c')](respondWithResult(_0x461bd8,null))['catch'](handleError(_0x461bd8,null));};exports[_0xf417('0x69')]=function(_0x274f1b,_0x13d6ac,_0x1b5283){var _0xf2dc8c=_0x274f1b[_0xf417('0x57')]['ids'];return db[_0xf417('0x67')][_0xf417('0x46')]({'where':{'id':_0xf2dc8c},'attributes':['id'],'include':[{'model':db[_0xf417('0x5e')],'as':_0xf417('0x6a'),'attributes':['id',_0xf417('0x2f'),_0xf417('0x6b'),'voicePause','interface'],'raw':!![]}]})[_0xf417('0x2c')](function(_0x999b16){if(_0x999b16){var _0x3e490e=_[_0xf417('0x6c')](_0x999b16,function(_0x77859e){var _0xf8e0d5=_0x77859e[_0xf417('0x2d')]({'plain':!![]});return _0xf8e0d5[_0xf417('0x6a')];});return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x274f1b['params']['id']}})[_0xf417('0x2c')](function(_0x2a9300){return db['sequelize'][_0xf417('0x6d')](function(_0x2b22c4){return _0x2a9300[_0xf417('0x69')](_0xf2dc8c,{'transaction':_0x2b22c4})[_0xf417('0x2c')](function(){return BPromise[_0xf417('0x6e')](_0x3e490e,function(_0x58a228){return db[_0xf417('0x5b')]['findOrCreate']({'where':{'UserId':_0x58a228['id'],'MailQueueId':_0x274f1b['params']['id']},'transaction':_0x2b22c4});});})[_0xf417('0x2c')](function(){_0x3e490e[_0xf417('0x6f')](function(_0x5520ab){socket[_0xf417('0x70')]('userMailQueue:save',{'UserId':_0x5520ab['id'],'MailQueueId':_0x2a9300['id']});});});});});}})[_0xf417('0x2c')](respondWithStatusCode(_0x13d6ac,null))['catch'](handleError(_0x13d6ac,null));};exports[_0xf417('0x71')]=function(_0x2c335f,_0x5f227e,_0x19f233){return db[_0xf417('0x67')][_0xf417('0x46')]({'where':{'id':_0x2c335f[_0xf417('0x38')][_0xf417('0x72')]},'attributes':['id'],'include':[{'model':db[_0xf417('0x5e')],'as':_0xf417('0x6a'),'attributes':['id'],'raw':!![]}]})[_0xf417('0x2c')](handleEntityNotFound(_0x5f227e,null))[_0xf417('0x2c')](function(_0x3cb1ea){var _0x301727=_[_0xf417('0x32')](_0x3cb1ea,'id');var _0x300858=[];var _0x3c3a30=[];var _0x396e4c=squel['select']();_0x396e4c[_0xf417('0x73')](_0xf417('0x74'))[_0xf417('0x75')](_0xf417('0x76'),'tq')[_0xf417('0x77')](_0xf417('0x78'),'ut',_0xf417('0x79'))['where'](_0xf417('0x7a'),_0x2c335f[_0xf417('0x49')]['id']);for(var _0x7a2d5e=0x0;_0x7a2d5e<_0x3cb1ea[_0xf417('0x4b')];_0x7a2d5e+=0x1){let _0x850e8d=_0x3cb1ea[_0x7a2d5e];for(var _0x111f6f=0x0;_0x111f6f<_0x850e8d[_0xf417('0x6a')][_0xf417('0x4b')];_0x111f6f+=0x1){let _0x3a4557=_0x850e8d[_0xf417('0x6a')][_0x111f6f];var _0x10ea31=_0x396e4c[_0xf417('0x7b')]();_0x10ea31['where']('ut.UserId\x20=\x20?',_0x3a4557['id']);_0x3c3a30[_0xf417('0x7c')](db[_0xf417('0x7d')]['query'](_0x10ea31[_0xf417('0x7e')](),{'type':db['sequelize'][_0xf417('0x7f')][_0xf417('0x80')]})[_0xf417('0x2c')](function(_0x3744af){if(_0x3744af[_0xf417('0x4b')]===0x1){return _0x3a4557['id'];}else{var _0x41b849=_[_0xf417('0x81')](_[_0xf417('0x32')](_0x3744af,_0xf417('0x82')),function(_0x403587){return _[_0xf417('0x83')](_0x301727,_0x403587);});if(_0x41b849){return _0x3a4557['id'];}}}));}}return BPromise[_0xf417('0x84')](_0x3c3a30)[_0xf417('0x2c')](function(_0x4df83e){_0x300858=_(_0x300858)[_0xf417('0x85')](_0x4df83e)['compact']()[_0xf417('0x86')]();return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x2c335f['params']['id']}})[_0xf417('0x2c')](function(_0x40cc19){return db['sequelize'][_0xf417('0x6d')](function(_0x4bb601){return _0x40cc19[_0xf417('0x71')](_0x2c335f['query'][_0xf417('0x72')],{'transaction':_0x4bb601})[_0xf417('0x2c')](function(){if(!_[_0xf417('0x87')](_0x300858)){return _0x40cc19[_0xf417('0x88')](_0x300858,{'transaction':_0x4bb601});}})['then'](function(){_0x300858[_0xf417('0x6f')](function(_0x218dfe){socket['emit'](_0xf417('0x89'),{'UserId':_0x218dfe,'MailQueueId':_0x40cc19['id']});});});});});});})[_0xf417('0x2c')](respondWithStatusCode(_0x5f227e,null))['catch'](handleError(_0x5f227e,null));};exports['addAgents']=function(_0x472589,_0x30ba47,_0x35396c){return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x472589[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x30ba47,null))[_0xf417('0x2c')](function(_0x20470a){if(_0x20470a){return _0x20470a[_0xf417('0x8a')](_0x472589[_0xf417('0x57')][_0xf417('0x72')],_[_0xf417('0x8b')](_0x472589[_0xf417('0x57')],[_0xf417('0x72'),'id'])||{})[_0xf417('0x8c')](function(_0x3b68b5){for(var _0x384c32=0x0;_0x384c32<_0x472589['body']['ids'][_0xf417('0x4b')];_0x384c32+=0x1){socket[_0xf417('0x70')](_0xf417('0x8d'),{'UserId':Number(_0x472589[_0xf417('0x57')][_0xf417('0x72')][_0x384c32]),'MailQueueId':Number(_0x472589[_0xf417('0x49')]['id'])});}return _0x3b68b5;});}})[_0xf417('0x2c')](respondWithResult(_0x30ba47,null))['catch'](handleError(_0x30ba47,null));};exports[_0xf417('0x88')]=function(_0x3879a8,_0x367946,_0x548078){return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x3879a8[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x367946,null))[_0xf417('0x2c')](function(_0x2dbab){if(_0x2dbab){return _0x2dbab['removeAgents'](_0x3879a8[_0xf417('0x38')][_0xf417('0x72')])[_0xf417('0x2c')](function(){if(_['isArray'](_0x3879a8[_0xf417('0x38')][_0xf417('0x72')])){for(var _0x2ea9ec=0x0;_0x2ea9ec<_0x3879a8['query'][_0xf417('0x72')][_0xf417('0x4b')];_0x2ea9ec+=0x1){socket['emit']('userMailQueue:remove',{'UserId':Number(_0x3879a8[_0xf417('0x38')][_0xf417('0x72')][_0x2ea9ec]),'MailQueueId':Number(_0x3879a8[_0xf417('0x49')]['id'])});}}else{socket[_0xf417('0x70')](_0xf417('0x89'),{'UserId':Number(_0x3879a8[_0xf417('0x38')][_0xf417('0x72')]),'MailQueueId':Number(_0x3879a8[_0xf417('0x49')]['id'])});}});}})['then'](respondWithStatusCode(_0x367946,null))[_0xf417('0x55')](handleError(_0x367946,null));};exports[_0xf417('0x8e')]=function(_0x1f147b,_0x31ef40,_0x2f47de){var _0x3bf9d7={};var _0x572ce1={};var _0x17391b;var _0x5f2dfb;return db[_0xf417('0x33')][_0xf417('0x5a')]({'where':{'id':_0x1f147b[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x31ef40,null))[_0xf417('0x2c')](function(_0x10dda8){if(_0x10dda8){_0x17391b=_0x10dda8;_0x572ce1[_0xf417('0x3a')]=_[_0xf417('0x37')](db[_0xf417('0x5e')][_0xf417('0x34')]);_0x572ce1[_0xf417('0x38')]=_[_0xf417('0x37')](_0x1f147b[_0xf417('0x38')]);_0x572ce1[_0xf417('0x39')]=_[_0xf417('0x4a')](_0x572ce1['model'],_0x572ce1['query']);_0x3bf9d7[_0xf417('0x3b')]=_[_0xf417('0x4a')](_0x572ce1[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x1f147b[_0xf417('0x38')]['fields']));_0x3bf9d7['attributes']=_0x3bf9d7[_0xf417('0x3b')]['length']?_0x3bf9d7[_0xf417('0x3b')]:_0x572ce1['model'];_0x3bf9d7['order']=qs[_0xf417('0x3f')](_0x1f147b[_0xf417('0x38')][_0xf417('0x3f')]);_0x3bf9d7[_0xf417('0x40')]=qs[_0xf417('0x39')](_[_0xf417('0x5c')](_0x1f147b['query'],_0x572ce1[_0xf417('0x39')]));if(_0x1f147b[_0xf417('0x38')][_0xf417('0x41')]){_0x3bf9d7[_0xf417('0x40')]=_[_0xf417('0x42')](_0x3bf9d7[_0xf417('0x40')],{'$or':_['map'](_0x3bf9d7[_0xf417('0x3b')],function(_0x2d19f2){var _0x4aff6d={};_0x4aff6d[_0x2d19f2]={'$like':'%'+_0x1f147b[_0xf417('0x38')][_0xf417('0x41')]+'%'};return _0x4aff6d;})});}_0x3bf9d7=_[_0xf417('0x42')]({},_0x3bf9d7,_0x1f147b[_0xf417('0x43')]);return _0x17391b['getAgents'](_0x3bf9d7);}})['then'](function(_0x2cbbb9){if(_0x2cbbb9){_0x5f2dfb=_0x2cbbb9[_0xf417('0x4b')];if(!_0x1f147b[_0xf417('0x38')][_0xf417('0x3d')](_0xf417('0x68'))){_0x3bf9d7['limit']=qs[_0xf417('0x24')](_0x1f147b[_0xf417('0x38')]['limit']);_0x3bf9d7[_0xf417('0x22')]=qs['offset'](_0x1f147b[_0xf417('0x38')][_0xf417('0x22')]);}return _0x17391b[_0xf417('0x8e')](_0x3bf9d7);}})[_0xf417('0x2c')](function(_0x13fe05){if(_0x13fe05){return _0x13fe05?{'count':_0x5f2dfb,'rows':_0x13fe05}:null;}})['then'](respondWithResult(_0x31ef40,null))[_0xf417('0x55')](handleError(_0x31ef40,null));};
\ No newline at end of file
+var _0x8e44=['tq.TeamId','from','team_has_mail_queues','join','user_has_teams','clone','ut.UserId\x20=\x20?','push','SELECT','TeamId','all','transaction','removeAgents','userMailQueue:remove','addAgents','omit','spread','emit','isArray','getAgents','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./mailQueue.socket','register','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','get','MailQueues','error','stack','name','map','MailQueue','rawAttributes','fieldName','keys','query','intersection','model','attributes','fields','length','nolimit','limit','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','show','find','create','body','role','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','UserMailQueue','hasOwnProperty','order','MailQueueId','User','UserId','agent','mailPause','createdAt','rows','format','%s/%s','SIP','updatedAt','findOne','getTeams','Team','Agents','online','voicePause','interface','sequelize','addTeams','each','forEach','userMailQueue:save','removeTeams','ids','select','field'];(function(_0x15bc81,_0x4d4f77){var _0x59440e=function(_0x1b60f2){while(--_0x1b60f2){_0x15bc81['push'](_0x15bc81['shift']());}};_0x59440e(++_0x4d4f77);}(_0x8e44,0x1ac));var _0x48e4=function(_0xadb8da,_0x33e25a){_0xadb8da=_0xadb8da-0x0;var _0x36cb1e=_0x8e44[_0xadb8da];return _0x36cb1e;};'use strict';var emlformat=require(_0x48e4('0x0'));var rimraf=require(_0x48e4('0x1'));var zipdir=require(_0x48e4('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x48e4('0x3'));var BPromise=require(_0x48e4('0x4'));var Mustache=require(_0x48e4('0x5'));var util=require(_0x48e4('0x6'));var path=require('path');var sox=require(_0x48e4('0x7'));var csv=require(_0x48e4('0x8'));var ejs=require(_0x48e4('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x48e4('0xa'));var crypto=require(_0x48e4('0xb'));var jsforce=require(_0x48e4('0xc'));var deskjs=require(_0x48e4('0xd'));var toCsv=require(_0x48e4('0x8'));var querystring=require(_0x48e4('0xe'));var Papa=require(_0x48e4('0xf'));var Redis=require(_0x48e4('0x10'));var authService=require(_0x48e4('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x48e4('0x12'));var hardwareService=require(_0x48e4('0x13'));var logger=require(_0x48e4('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x48e4('0x15'));var licenseUtil=require(_0x48e4('0x16'));var db=require(_0x48e4('0x17'))['db'];config[_0x48e4('0x18')]=_['defaults'](config[_0x48e4('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0x48e4('0x19'))(new Redis(config[_0x48e4('0x18')]));require(_0x48e4('0x1a'))[_0x48e4('0x1b')](socket);function respondWithStatusCode(_0x12f7af,_0x39bd10){_0x39bd10=_0x39bd10||0xcc;return function(_0x1ede64){if(_0x1ede64){return _0x12f7af['sendStatus'](_0x39bd10);}return _0x12f7af[_0x48e4('0x1c')](_0x39bd10)[_0x48e4('0x1d')]();};}function respondWithResult(_0x5c8fe5,_0x171f89){_0x171f89=_0x171f89||0xc8;return function(_0x35a599){if(_0x35a599){return _0x5c8fe5['status'](_0x171f89)[_0x48e4('0x1e')](_0x35a599);}};}function respondWithFilteredResult(_0x627366,_0x12fc37){return function(_0x4ffc0d){if(_0x4ffc0d){var _0x231dcd=typeof _0x12fc37[_0x48e4('0x1f')]===_0x48e4('0x20')&&typeof _0x12fc37['limit']===_0x48e4('0x20');var _0x565916=_0x4ffc0d['count'];var _0x113ff4=_0x231dcd?0x0:_0x12fc37[_0x48e4('0x1f')];var _0x25ecba=_0x231dcd?_0x4ffc0d[_0x48e4('0x21')]:_0x12fc37[_0x48e4('0x1f')]+_0x12fc37['limit'];var _0x59eff5;if(_0x25ecba>=_0x565916){_0x25ecba=_0x565916;_0x59eff5=0xc8;}else{_0x59eff5=0xce;}_0x627366[_0x48e4('0x1c')](_0x59eff5);return _0x627366[_0x48e4('0x22')](_0x48e4('0x23'),_0x113ff4+'-'+_0x25ecba+'/'+_0x565916)[_0x48e4('0x1e')](_0x4ffc0d);}return null;};}function patchUpdates(_0x846128){return function(_0x377249){try{jsonpatch[_0x48e4('0x24')](_0x377249,_0x846128,!![]);}catch(_0x378573){return BPromise[_0x48e4('0x25')](_0x378573);}return _0x377249[_0x48e4('0x26')]();};}function saveUpdates(_0x1a80ed,_0x5cc3e6){return function(_0x160e3b){if(_0x160e3b){return _0x160e3b[_0x48e4('0x27')](_0x1a80ed)['then'](function(_0x2beac2){return _0x2beac2;});}return null;};}function removeEntity(_0x23b2ba,_0x4abfbc){return function(_0x9a1c6d){if(_0x9a1c6d){return _0x9a1c6d[_0x48e4('0x28')]()[_0x48e4('0x29')](function(){var _0xc113e3=_0x9a1c6d[_0x48e4('0x2a')]({'plain':!![]});var _0x11bc8a=_0x48e4('0x2b');return db['UserProfileResource'][_0x48e4('0x28')]({'where':{'type':_0x11bc8a,'resourceId':_0xc113e3['id']}})[_0x48e4('0x29')](function(){return _0x9a1c6d;});})['then'](function(){_0x23b2ba['status'](0xcc)[_0x48e4('0x1d')]();});}};}function handleEntityNotFound(_0x4b8f3c,_0x346765){return function(_0x214def){if(!_0x214def){_0x4b8f3c['sendStatus'](0x194);}return _0x214def;};}function handleError(_0x3012b3,_0x28c1){_0x28c1=_0x28c1||0x1f4;return function(_0x14b545){logger[_0x48e4('0x2c')](_0x14b545[_0x48e4('0x2d')]);if(_0x14b545['name']){delete _0x14b545[_0x48e4('0x2e')];}_0x3012b3['status'](_0x28c1)['send'](_0x14b545);};}exports['index']=function(_0x1ee7ef,_0x1450cb){var _0xf2f1cf={},_0x4725ab={},_0x2432ab={'count':0x0,'rows':[]};var _0x403b21=_[_0x48e4('0x2f')](db[_0x48e4('0x30')][_0x48e4('0x31')],function(_0x12af4d){return{'name':_0x12af4d[_0x48e4('0x32')],'type':_0x12af4d['type']['key']};});_0x4725ab['model']=_[_0x48e4('0x2f')](_0x403b21,_0x48e4('0x2e'));_0x4725ab['query']=_[_0x48e4('0x33')](_0x1ee7ef[_0x48e4('0x34')]);_0x4725ab['filters']=_[_0x48e4('0x35')](_0x4725ab[_0x48e4('0x36')],_0x4725ab[_0x48e4('0x34')]);_0xf2f1cf[_0x48e4('0x37')]=_['intersection'](_0x4725ab[_0x48e4('0x36')],qs[_0x48e4('0x38')](_0x1ee7ef['query']['fields']));_0xf2f1cf[_0x48e4('0x37')]=_0xf2f1cf[_0x48e4('0x37')][_0x48e4('0x39')]?_0xf2f1cf['attributes']:_0x4725ab[_0x48e4('0x36')];if(!_0x1ee7ef[_0x48e4('0x34')]['hasOwnProperty'](_0x48e4('0x3a'))){_0xf2f1cf[_0x48e4('0x3b')]=qs[_0x48e4('0x3b')](_0x1ee7ef[_0x48e4('0x34')][_0x48e4('0x3b')]);_0xf2f1cf['offset']=qs[_0x48e4('0x1f')](_0x1ee7ef[_0x48e4('0x34')][_0x48e4('0x1f')]);}_0xf2f1cf['order']=qs[_0x48e4('0x3c')](_0x1ee7ef['query'][_0x48e4('0x3c')]);_0xf2f1cf[_0x48e4('0x3d')]=qs[_0x48e4('0x3e')](_[_0x48e4('0x3f')](_0x1ee7ef[_0x48e4('0x34')],_0x4725ab[_0x48e4('0x3e')]),_0x403b21);if(_0x1ee7ef[_0x48e4('0x34')][_0x48e4('0x40')]){_0xf2f1cf[_0x48e4('0x3d')]=_[_0x48e4('0x41')](_0xf2f1cf[_0x48e4('0x3d')],{'$or':_['map'](_0x403b21,function(_0x3cdafb){if(_0x3cdafb[_0x48e4('0x42')]!==_0x48e4('0x43')){var _0x1e54d9={};_0x1e54d9[_0x3cdafb[_0x48e4('0x2e')]]={'$like':'%'+_0x1ee7ef[_0x48e4('0x34')][_0x48e4('0x40')]+'%'};return _0x1e54d9;}})});}_0xf2f1cf=_['merge']({},_0xf2f1cf,_0x1ee7ef[_0x48e4('0x44')]);var _0x1e5317={'where':_0xf2f1cf[_0x48e4('0x3d')]};return db['MailQueue'][_0x48e4('0x21')](_0x1e5317)[_0x48e4('0x29')](function(_0x3cc197){_0x2432ab['count']=_0x3cc197;if(_0x1ee7ef['query'][_0x48e4('0x45')]){_0xf2f1cf[_0x48e4('0x46')]=[{'all':!![]}];}return db['MailQueue'][_0x48e4('0x47')](_0xf2f1cf);})['then'](function(_0x4f1714){_0x2432ab['rows']=_0x4f1714;return _0x2432ab;})['then'](respondWithFilteredResult(_0x1450cb,_0xf2f1cf))[_0x48e4('0x48')](handleError(_0x1450cb,null));};exports[_0x48e4('0x49')]=function(_0x1c5456,_0x124cb1){var _0x4144fa={'raw':!![],'where':{'id':_0x1c5456['params']['id']}},_0x410b8e={};_0x410b8e[_0x48e4('0x36')]=_[_0x48e4('0x33')](db['MailQueue']['rawAttributes']);_0x410b8e[_0x48e4('0x34')]=_[_0x48e4('0x33')](_0x1c5456[_0x48e4('0x34')]);_0x410b8e[_0x48e4('0x3e')]=_['intersection'](_0x410b8e[_0x48e4('0x36')],_0x410b8e[_0x48e4('0x34')]);_0x4144fa[_0x48e4('0x37')]=_[_0x48e4('0x35')](_0x410b8e[_0x48e4('0x36')],qs[_0x48e4('0x38')](_0x1c5456['query'][_0x48e4('0x38')]));_0x4144fa[_0x48e4('0x37')]=_0x4144fa[_0x48e4('0x37')][_0x48e4('0x39')]?_0x4144fa[_0x48e4('0x37')]:_0x410b8e[_0x48e4('0x36')];if(_0x1c5456[_0x48e4('0x34')][_0x48e4('0x45')]){_0x4144fa[_0x48e4('0x46')]=[{'all':!![]}];}_0x4144fa=_[_0x48e4('0x41')]({},_0x4144fa,_0x1c5456[_0x48e4('0x44')]);return db['MailQueue'][_0x48e4('0x4a')](_0x4144fa)['then'](handleEntityNotFound(_0x124cb1,null))['then'](respondWithResult(_0x124cb1,null))[_0x48e4('0x48')](handleError(_0x124cb1,null));};exports['create']=function(_0x98d025,_0x14511b){return db[_0x48e4('0x30')][_0x48e4('0x4b')](_0x98d025[_0x48e4('0x4c')],{})[_0x48e4('0x29')](function(_0x10eb0c){var _0x57c9e5=_0x98d025['user'][_0x48e4('0x2a')]({'plain':!![]});if(!_0x57c9e5)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x57c9e5[_0x48e4('0x4d')]===_0x48e4('0x4e')){var _0x2bbf8f=_0x10eb0c['get']({'plain':!![]});var _0x14ed52=_0x48e4('0x2b');return db[_0x48e4('0x4f')]['find']({'where':{'name':_0x14ed52,'userProfileId':_0x57c9e5[_0x48e4('0x50')]},'raw':!![]})[_0x48e4('0x29')](function(_0x91b42d){if(_0x91b42d&&_0x91b42d[_0x48e4('0x51')]===0x0){return db[_0x48e4('0x52')]['create']({'name':_0x2bbf8f[_0x48e4('0x2e')],'resourceId':_0x2bbf8f['id'],'type':_0x91b42d[_0x48e4('0x2e')],'sectionId':_0x91b42d['id']},{})['then'](function(){return _0x10eb0c;});}else{return _0x10eb0c;}})[_0x48e4('0x48')](function(_0x43e3ba){logger[_0x48e4('0x2c')](_0x48e4('0x53'),_0x43e3ba);throw _0x43e3ba;});}return _0x10eb0c;})['then'](respondWithResult(_0x14511b,0xc9))['catch'](handleError(_0x14511b,null));};exports['update']=function(_0x55ab36,_0x2be063){if(_0x55ab36[_0x48e4('0x4c')]['id']){delete _0x55ab36[_0x48e4('0x4c')]['id'];}return db[_0x48e4('0x30')][_0x48e4('0x4a')]({'where':{'id':_0x55ab36[_0x48e4('0x54')]['id']}})[_0x48e4('0x29')](handleEntityNotFound(_0x2be063,null))[_0x48e4('0x29')](saveUpdates(_0x55ab36[_0x48e4('0x4c')],null))[_0x48e4('0x29')](respondWithResult(_0x2be063,null))[_0x48e4('0x48')](handleError(_0x2be063,null));};exports[_0x48e4('0x28')]=function(_0x180ae4,_0x4e07e9){return db[_0x48e4('0x30')][_0x48e4('0x4a')]({'where':{'id':_0x180ae4[_0x48e4('0x54')]['id']}})[_0x48e4('0x29')](handleEntityNotFound(_0x4e07e9,null))[_0x48e4('0x29')](removeEntity(_0x4e07e9,null))[_0x48e4('0x48')](handleError(_0x4e07e9,null));};exports[_0x48e4('0x55')]=function(_0x450baf,_0x1f5e67){return db[_0x48e4('0x30')][_0x48e4('0x55')]()[_0x48e4('0x29')](respondWithResult(_0x1f5e67,null))['catch'](handleError(_0x1f5e67,null));};exports['getMembers']=function(_0xc114a,_0x1da690,_0x2b0be2){var _0x1a30eb={'raw':!![],'where':{}},_0x4147b4={},_0x599988;return db[_0x48e4('0x30')]['findOne']({'where':{'id':_0xc114a[_0x48e4('0x54')]['id']}})[_0x48e4('0x29')](handleEntityNotFound(_0x1da690,null))[_0x48e4('0x29')](function(_0x573d41){if(_0x573d41){_0x599988=_0x573d41[_0x48e4('0x2a')]({'plain':!![]});_0x4147b4[_0x48e4('0x36')]=_[_0x48e4('0x33')](db[_0x48e4('0x56')][_0x48e4('0x31')]);_0x4147b4[_0x48e4('0x34')]=_[_0x48e4('0x33')](_0xc114a['query']);_0x4147b4[_0x48e4('0x3e')]=_[_0x48e4('0x35')](_0x4147b4[_0x48e4('0x36')],_0x4147b4['query']);_0x1a30eb[_0x48e4('0x37')]=_[_0x48e4('0x35')](_0x4147b4['model'],qs['fields'](_0xc114a['query'][_0x48e4('0x38')]));_0x1a30eb[_0x48e4('0x37')]=_0x1a30eb['attributes'][_0x48e4('0x39')]?_0x1a30eb[_0x48e4('0x37')]:_0x4147b4[_0x48e4('0x36')];if(!_0xc114a[_0x48e4('0x34')][_0x48e4('0x57')](_0x48e4('0x3a'))){_0x1a30eb[_0x48e4('0x3b')]=qs[_0x48e4('0x3b')](_0xc114a[_0x48e4('0x34')][_0x48e4('0x3b')]);_0x1a30eb['offset']=qs['offset'](_0xc114a['query'][_0x48e4('0x1f')]);}_0x1a30eb[_0x48e4('0x58')]=qs['sort'](_0xc114a[_0x48e4('0x34')]['sort']);_0x1a30eb[_0x48e4('0x3d')]=qs[_0x48e4('0x3e')](_[_0x48e4('0x3f')](_0xc114a[_0x48e4('0x34')],_0x4147b4[_0x48e4('0x3e')]));_0x1a30eb[_0x48e4('0x3d')][_0x48e4('0x59')]=_0x573d41['id'];if(_0xc114a[_0x48e4('0x34')][_0x48e4('0x40')]){_0x1a30eb[_0x48e4('0x3d')]=_[_0x48e4('0x41')](_0x1a30eb[_0x48e4('0x3d')],{'$or':_['map'](_0x1a30eb['attributes'],function(_0x3dc914){var _0x57555d={};_0x57555d[_0x3dc914]={'$like':'%'+_0xc114a[_0x48e4('0x34')][_0x48e4('0x40')]+'%'};return _0x57555d;})});}_0x1a30eb=_['merge']({},_0x1a30eb,_0xc114a[_0x48e4('0x44')]);return db[_0x48e4('0x56')][_0x48e4('0x47')](_0x1a30eb);}})[_0x48e4('0x29')](function(_0x492ab0){if(_0x492ab0){return db[_0x48e4('0x5a')]['findAndCountAll']({'where':{'id':_[_0x48e4('0x2f')](_0x492ab0,_0x48e4('0x5b')),'role':_0x48e4('0x5c')},'attributes':['id',_0x48e4('0x2e'),_0x48e4('0x5d'),'updatedAt',_0x48e4('0x5e')]});}})['then'](function(_0x21be9c){if(_0x21be9c){return{'count':_0x21be9c[_0x48e4('0x21')],'rows':_[_0x48e4('0x2f')](_0x21be9c[_0x48e4('0x5f')],function(_0x1fe0f9){return{'membername':_0x1fe0f9['name'],'UserId':_0x1fe0f9['id'],'queue_name':_0x599988[_0x48e4('0x2e')],'MailQueueId':_0x599988['id'],'interface':util[_0x48e4('0x60')](_0x48e4('0x61'),_0x48e4('0x62'),_0x1fe0f9[_0x48e4('0x2e')]),'penalty':0x0,'paused':_0x1fe0f9[_0x48e4('0x5d')],'createdAt':_0x1fe0f9[_0x48e4('0x5e')],'updatedAt':_0x1fe0f9[_0x48e4('0x63')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x48e4('0x29')](respondWithFilteredResult(_0x1da690,_0x1a30eb))[_0x48e4('0x48')](handleError(_0x1da690,null));};exports['getTeams']=function(_0x4b7106,_0x2f71e8,_0x5d6d17){var _0x4bc126={};var _0x2fbb3e={};var _0x5bd779;var _0xb0dea2;return db['MailQueue'][_0x48e4('0x64')]({'where':{'id':_0x4b7106['params']['id']}})[_0x48e4('0x29')](handleEntityNotFound(_0x2f71e8,null))[_0x48e4('0x29')](function(_0x7ef265){if(_0x7ef265){_0x5bd779=_0x7ef265;_0x2fbb3e['model']=_['keys'](db['Team'][_0x48e4('0x31')]);_0x2fbb3e['query']=_[_0x48e4('0x33')](_0x4b7106[_0x48e4('0x34')]);_0x2fbb3e[_0x48e4('0x3e')]=_['intersection'](_0x2fbb3e[_0x48e4('0x36')],_0x2fbb3e[_0x48e4('0x34')]);_0x4bc126[_0x48e4('0x37')]=_[_0x48e4('0x35')](_0x2fbb3e['model'],qs[_0x48e4('0x38')](_0x4b7106[_0x48e4('0x34')]['fields']));_0x4bc126['attributes']=_0x4bc126[_0x48e4('0x37')]['length']?_0x4bc126['attributes']:_0x2fbb3e[_0x48e4('0x36')];_0x4bc126[_0x48e4('0x58')]=qs[_0x48e4('0x3c')](_0x4b7106[_0x48e4('0x34')][_0x48e4('0x3c')]);_0x4bc126['where']=qs['filters'](_[_0x48e4('0x3f')](_0x4b7106[_0x48e4('0x34')],_0x2fbb3e[_0x48e4('0x3e')]));if(_0x4b7106[_0x48e4('0x34')][_0x48e4('0x40')]){_0x4bc126[_0x48e4('0x3d')]=_[_0x48e4('0x41')](_0x4bc126['where'],{'$or':_[_0x48e4('0x2f')](_0x4bc126['attributes'],function(_0x4d2de2){var _0x2db92a={};_0x2db92a[_0x4d2de2]={'$like':'%'+_0x4b7106[_0x48e4('0x34')][_0x48e4('0x40')]+'%'};return _0x2db92a;})});}_0x4bc126=_[_0x48e4('0x41')]({},_0x4bc126,_0x4b7106[_0x48e4('0x44')]);return _0x5bd779[_0x48e4('0x65')](_0x4bc126);}})[_0x48e4('0x29')](function(_0x4ffc74){if(_0x4ffc74){_0xb0dea2=_0x4ffc74[_0x48e4('0x39')];if(!_0x4b7106[_0x48e4('0x34')]['hasOwnProperty']('nolimit')){_0x4bc126[_0x48e4('0x3b')]=qs[_0x48e4('0x3b')](_0x4b7106[_0x48e4('0x34')][_0x48e4('0x3b')]);_0x4bc126[_0x48e4('0x1f')]=qs[_0x48e4('0x1f')](_0x4b7106[_0x48e4('0x34')][_0x48e4('0x1f')]);}return _0x5bd779[_0x48e4('0x65')](_0x4bc126);}})[_0x48e4('0x29')](function(_0x7a1d9b){if(_0x7a1d9b){return _0x7a1d9b?{'count':_0xb0dea2,'rows':_0x7a1d9b}:null;}})[_0x48e4('0x29')](respondWithResult(_0x2f71e8,null))[_0x48e4('0x48')](handleError(_0x2f71e8,null));};exports['addTeams']=function(_0x5c3dfb,_0x3cef34,_0x1a9d62){var _0x18be38=_0x5c3dfb[_0x48e4('0x4c')]['ids'];return db[_0x48e4('0x66')][_0x48e4('0x47')]({'where':{'id':_0x18be38},'attributes':['id'],'include':[{'model':db[_0x48e4('0x5a')],'as':_0x48e4('0x67'),'attributes':['id',_0x48e4('0x2e'),_0x48e4('0x68'),_0x48e4('0x69'),_0x48e4('0x6a')],'raw':!![]}]})[_0x48e4('0x29')](function(_0x1c0e65){if(_0x1c0e65){var _0x26006a=_['flatMap'](_0x1c0e65,function(_0x37ed49){var _0xaafa73=_0x37ed49[_0x48e4('0x2a')]({'plain':!![]});return _0xaafa73[_0x48e4('0x67')];});return db[_0x48e4('0x30')]['find']({'where':{'id':_0x5c3dfb['params']['id']}})[_0x48e4('0x29')](function(_0x3d7192){return db[_0x48e4('0x6b')]['transaction'](function(_0x110f79){return _0x3d7192[_0x48e4('0x6c')](_0x18be38,{'transaction':_0x110f79})[_0x48e4('0x29')](function(){return BPromise[_0x48e4('0x6d')](_0x26006a,function(_0x35819c){return db[_0x48e4('0x56')]['findOrCreate']({'where':{'UserId':_0x35819c['id'],'MailQueueId':_0x5c3dfb[_0x48e4('0x54')]['id']},'transaction':_0x110f79});});})[_0x48e4('0x29')](function(){_0x26006a[_0x48e4('0x6e')](function(_0x235a36){socket['emit'](_0x48e4('0x6f'),{'UserId':_0x235a36['id'],'MailQueueId':_0x3d7192['id']});});});});});}})[_0x48e4('0x29')](respondWithStatusCode(_0x3cef34,null))[_0x48e4('0x48')](handleError(_0x3cef34,null));};exports[_0x48e4('0x70')]=function(_0x1cd791,_0x1e3c73,_0xb9c24d){return db[_0x48e4('0x66')][_0x48e4('0x47')]({'where':{'id':_0x1cd791[_0x48e4('0x34')][_0x48e4('0x71')]},'attributes':['id'],'include':[{'model':db[_0x48e4('0x5a')],'as':_0x48e4('0x67'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x1e3c73,null))[_0x48e4('0x29')](function(_0xe8ba4f){var _0x18b21a=_[_0x48e4('0x2f')](_0xe8ba4f,'id');var _0x2d9326=[];var _0x3108e1=[];var _0x28f23c=squel[_0x48e4('0x72')]();_0x28f23c[_0x48e4('0x73')](_0x48e4('0x74'))[_0x48e4('0x75')](_0x48e4('0x76'),'tq')[_0x48e4('0x77')](_0x48e4('0x78'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where']('MailQueueId\x20=\x20?',_0x1cd791['params']['id']);for(var _0x4bafc9=0x0;_0x4bafc9<_0xe8ba4f[_0x48e4('0x39')];_0x4bafc9+=0x1){let _0x486c6e=_0xe8ba4f[_0x4bafc9];for(var _0x40b3d8=0x0;_0x40b3d8<_0x486c6e[_0x48e4('0x67')][_0x48e4('0x39')];_0x40b3d8+=0x1){let _0x234372=_0x486c6e[_0x48e4('0x67')][_0x40b3d8];var _0x3de23a=_0x28f23c[_0x48e4('0x79')]();_0x3de23a[_0x48e4('0x3d')](_0x48e4('0x7a'),_0x234372['id']);_0x3108e1[_0x48e4('0x7b')](db['sequelize'][_0x48e4('0x34')](_0x3de23a['toString'](),{'type':db['sequelize']['QueryTypes'][_0x48e4('0x7c')]})['then'](function(_0x2065e2){if(_0x2065e2[_0x48e4('0x39')]===0x1){return _0x234372['id'];}else{var _0x37d1ca=_['every'](_[_0x48e4('0x2f')](_0x2065e2,_0x48e4('0x7d')),function(_0x25b7df){return _['includes'](_0x18b21a,_0x25b7df);});if(_0x37d1ca){return _0x234372['id'];}}}));}}return BPromise[_0x48e4('0x7e')](_0x3108e1)[_0x48e4('0x29')](function(_0x405a80){_0x2d9326=_(_0x2d9326)['union'](_0x405a80)['compact']()['value']();return db['MailQueue'][_0x48e4('0x4a')]({'where':{'id':_0x1cd791[_0x48e4('0x54')]['id']}})[_0x48e4('0x29')](function(_0x2b89b7){return db[_0x48e4('0x6b')][_0x48e4('0x7f')](function(_0x2aa04b){return _0x2b89b7['removeTeams'](_0x1cd791['query'][_0x48e4('0x71')],{'transaction':_0x2aa04b})[_0x48e4('0x29')](function(){if(!_['isEmpty'](_0x2d9326)){return _0x2b89b7[_0x48e4('0x80')](_0x2d9326,{'transaction':_0x2aa04b});}})[_0x48e4('0x29')](function(){_0x2d9326[_0x48e4('0x6e')](function(_0x4903c9){socket['emit'](_0x48e4('0x81'),{'UserId':_0x4903c9,'MailQueueId':_0x2b89b7['id']});});});});});});})[_0x48e4('0x29')](respondWithStatusCode(_0x1e3c73,null))[_0x48e4('0x48')](handleError(_0x1e3c73,null));};exports[_0x48e4('0x82')]=function(_0x49883b,_0x2fc6c3,_0x47774a){return db[_0x48e4('0x30')]['find']({'where':{'id':_0x49883b[_0x48e4('0x54')]['id']}})[_0x48e4('0x29')](handleEntityNotFound(_0x2fc6c3,null))[_0x48e4('0x29')](function(_0x13e465){if(_0x13e465){return _0x13e465[_0x48e4('0x82')](_0x49883b[_0x48e4('0x4c')][_0x48e4('0x71')],_[_0x48e4('0x83')](_0x49883b[_0x48e4('0x4c')],[_0x48e4('0x71'),'id'])||{})[_0x48e4('0x84')](function(_0x388835){for(var _0x5f0905=0x0;_0x5f0905<_0x49883b[_0x48e4('0x4c')][_0x48e4('0x71')][_0x48e4('0x39')];_0x5f0905+=0x1){socket[_0x48e4('0x85')](_0x48e4('0x6f'),{'UserId':Number(_0x49883b[_0x48e4('0x4c')]['ids'][_0x5f0905]),'MailQueueId':Number(_0x49883b[_0x48e4('0x54')]['id'])});}return _0x388835;});}})[_0x48e4('0x29')](respondWithResult(_0x2fc6c3,null))[_0x48e4('0x48')](handleError(_0x2fc6c3,null));};exports[_0x48e4('0x80')]=function(_0x4c8717,_0x133a0d,_0x237faf){return db[_0x48e4('0x30')][_0x48e4('0x4a')]({'where':{'id':_0x4c8717[_0x48e4('0x54')]['id']}})['then'](handleEntityNotFound(_0x133a0d,null))[_0x48e4('0x29')](function(_0x2b3e12){if(_0x2b3e12){return _0x2b3e12[_0x48e4('0x80')](_0x4c8717['query']['ids'])[_0x48e4('0x29')](function(){if(_[_0x48e4('0x86')](_0x4c8717[_0x48e4('0x34')][_0x48e4('0x71')])){for(var _0x190714=0x0;_0x190714<_0x4c8717[_0x48e4('0x34')][_0x48e4('0x71')][_0x48e4('0x39')];_0x190714+=0x1){socket[_0x48e4('0x85')]('userMailQueue:remove',{'UserId':Number(_0x4c8717[_0x48e4('0x34')]['ids'][_0x190714]),'MailQueueId':Number(_0x4c8717[_0x48e4('0x54')]['id'])});}}else{socket[_0x48e4('0x85')](_0x48e4('0x81'),{'UserId':Number(_0x4c8717[_0x48e4('0x34')][_0x48e4('0x71')]),'MailQueueId':Number(_0x4c8717['params']['id'])});}});}})[_0x48e4('0x29')](respondWithStatusCode(_0x133a0d,null))['catch'](handleError(_0x133a0d,null));};exports[_0x48e4('0x87')]=function(_0x17d045,_0x9d66b2,_0x14c8f6){var _0x51a43c={};var _0x26bd73={};var _0x3f966a;var _0x268ab6;return db['MailQueue'][_0x48e4('0x64')]({'where':{'id':_0x17d045[_0x48e4('0x54')]['id']}})[_0x48e4('0x29')](handleEntityNotFound(_0x9d66b2,null))[_0x48e4('0x29')](function(_0x35af85){if(_0x35af85){_0x3f966a=_0x35af85;_0x26bd73['model']=_[_0x48e4('0x33')](db[_0x48e4('0x5a')][_0x48e4('0x31')]);_0x26bd73[_0x48e4('0x34')]=_[_0x48e4('0x33')](_0x17d045['query']);_0x26bd73['filters']=_[_0x48e4('0x35')](_0x26bd73[_0x48e4('0x36')],_0x26bd73[_0x48e4('0x34')]);_0x51a43c[_0x48e4('0x37')]=_[_0x48e4('0x35')](_0x26bd73[_0x48e4('0x36')],qs[_0x48e4('0x38')](_0x17d045[_0x48e4('0x34')][_0x48e4('0x38')]));_0x51a43c['attributes']=_0x51a43c[_0x48e4('0x37')][_0x48e4('0x39')]?_0x51a43c[_0x48e4('0x37')]:_0x26bd73[_0x48e4('0x36')];_0x51a43c[_0x48e4('0x58')]=qs['sort'](_0x17d045[_0x48e4('0x34')][_0x48e4('0x3c')]);_0x51a43c[_0x48e4('0x3d')]=qs['filters'](_[_0x48e4('0x3f')](_0x17d045[_0x48e4('0x34')],_0x26bd73[_0x48e4('0x3e')]));if(_0x17d045[_0x48e4('0x34')][_0x48e4('0x40')]){_0x51a43c[_0x48e4('0x3d')]=_[_0x48e4('0x41')](_0x51a43c[_0x48e4('0x3d')],{'$or':_['map'](_0x51a43c[_0x48e4('0x37')],function(_0x212b2e){var _0x311de3={};_0x311de3[_0x212b2e]={'$like':'%'+_0x17d045[_0x48e4('0x34')]['filter']+'%'};return _0x311de3;})});}_0x51a43c=_[_0x48e4('0x41')]({},_0x51a43c,_0x17d045[_0x48e4('0x44')]);return _0x3f966a[_0x48e4('0x87')](_0x51a43c);}})['then'](function(_0x437262){if(_0x437262){_0x268ab6=_0x437262['length'];if(!_0x17d045[_0x48e4('0x34')][_0x48e4('0x57')](_0x48e4('0x3a'))){_0x51a43c['limit']=qs[_0x48e4('0x3b')](_0x17d045[_0x48e4('0x34')]['limit']);_0x51a43c[_0x48e4('0x1f')]=qs[_0x48e4('0x1f')](_0x17d045[_0x48e4('0x34')][_0x48e4('0x1f')]);}return _0x3f966a[_0x48e4('0x87')](_0x51a43c);}})[_0x48e4('0x29')](function(_0x2ead71){if(_0x2ead71){return _0x2ead71?{'count':_0x268ab6,'rows':_0x2ead71}:null;}})[_0x48e4('0x29')](respondWithResult(_0x9d66b2,null))['catch'](handleError(_0x9d66b2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaee4=['exports','events','../../mysqldb','MailQueue','setMaxListeners','emit','hasOwnProperty','hook'];(function(_0x17270c,_0x3d2b47){var _0x2766a8=function(_0x2d04b4){while(--_0x2d04b4){_0x17270c['push'](_0x17270c['shift']());}};_0x2766a8(++_0x3d2b47);}(_0xaee4,0x159));var _0x4aee=function(_0x40425e,_0x4867e9){_0x40425e=_0x40425e-0x0;var _0x86c7b8=_0xaee4[_0x40425e];return _0x86c7b8;};'use strict';var EventEmitter=require(_0x4aee('0x0'));var MailQueue=require(_0x4aee('0x1'))['db'][_0x4aee('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0x4aee('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x5e1807){return function(_0x1e5e45,_0x4dfb7f,_0x5801ff){MailQueueEvents[_0x4aee('0x4')](_0x5e1807+':'+_0x1e5e45['id'],_0x1e5e45);MailQueueEvents[_0x4aee('0x4')](_0x5e1807,_0x1e5e45);_0x5801ff(null);};}for(var e in events){if(events[_0x4aee('0x5')](e)){var event=events[e];MailQueue[_0x4aee('0x6')](e,emitEvent(event));}}module[_0x4aee('0x7')]=MailQueueEvents;
\ No newline at end of file
+var _0xf187=['hasOwnProperty','hook','exports','events','../../mysqldb','MailQueue','setMaxListeners','update','remove','emit'];(function(_0x17b5e7,_0x258568){var _0x592a56=function(_0x4c67d9){while(--_0x4c67d9){_0x17b5e7['push'](_0x17b5e7['shift']());}};_0x592a56(++_0x258568);}(_0xf187,0x1cf));var _0x7f18=function(_0x3f81db,_0x44c0b6){_0x3f81db=_0x3f81db-0x0;var _0x546d56=_0xf187[_0x3f81db];return _0x546d56;};'use strict';var EventEmitter=require(_0x7f18('0x0'));var MailQueue=require(_0x7f18('0x1'))['db'][_0x7f18('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0x7f18('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x7f18('0x4'),'afterDestroy':_0x7f18('0x5')};function emitEvent(_0x2d5900){return function(_0x438634,_0x29d9c3,_0x17a468){MailQueueEvents[_0x7f18('0x6')](_0x2d5900+':'+_0x438634['id'],_0x438634);MailQueueEvents[_0x7f18('0x6')](_0x2d5900,_0x438634);_0x17a468(null);};}for(var e in events){if(events[_0x7f18('0x7')](e)){var event=events[e];MailQueue[_0x7f18('0x8')](e,emitEvent(event));}}module[_0x7f18('0x9')]=MailQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1cc=['api','bluebird','request-promise','path','rimraf','./mailQueue.attributes','define','MailQueue','mail_queues','lodash','util'];(function(_0x590b71,_0xf2162b){var _0x4bbc59=function(_0x34fe71){while(--_0x34fe71){_0x590b71['push'](_0x590b71['shift']());}};_0x4bbc59(++_0xf2162b);}(_0xf1cc,0xda));var _0xcf1c=function(_0x2d8482,_0x3a2ca7){_0x2d8482=_0x2d8482-0x0;var _0x8fc666=_0xf1cc[_0x2d8482];return _0x8fc666;};'use strict';var _=require(_0xcf1c('0x0'));var util=require(_0xcf1c('0x1'));var logger=require('../../config/logger')(_0xcf1c('0x2'));var moment=require('moment');var BPromise=require(_0xcf1c('0x3'));var rp=require(_0xcf1c('0x4'));var fs=require('fs');var path=require(_0xcf1c('0x5'));var rimraf=require(_0xcf1c('0x6'));var config=require('../../config/environment');var attributes=require(_0xcf1c('0x7'));module['exports']=function(_0x4f7ff9,_0x164b85){return _0x4f7ff9[_0xcf1c('0x8')](_0xcf1c('0x9'),attributes,{'tableName':_0xcf1c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7725=['./mailQueue.attributes','exports','define','MailQueue','mail_queues','util','../../config/logger','api','moment','request-promise','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7725,0x1c8));var _0x5772=function(_0x1fb4a0,_0x48a602){_0x1fb4a0=_0x1fb4a0-0x0;var _0x1094e7=_0x7725[_0x1fb4a0];return _0x1094e7;};'use strict';var _=require('lodash');var util=require(_0x5772('0x0'));var logger=require(_0x5772('0x1'))(_0x5772('0x2'));var moment=require(_0x5772('0x3'));var BPromise=require('bluebird');var rp=require(_0x5772('0x4'));var fs=require('fs');var path=require(_0x5772('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x5772('0x6'));module[_0x5772('0x7')]=function(_0xbd77b1,_0x38394e){return _0xbd77b1[_0x5772('0x8')](_0x5772('0x9'),attributes,{'tableName':_0x5772('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe073=['socket.io-emitter','register','request','info','MailQueue,\x20%s,\x20%s','request\x20sent','debug','MailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetMailQueue','MailQueue','findAll','raw','options','where','attributes','limit','include','map','model','ShowMailQueue','find','then','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x5f36cd,_0x37d4c9){var _0x49832a=function(_0xa82985){while(--_0xa82985){_0x5f36cd['push'](_0x5f36cd['shift']());}};_0x49832a(++_0x37d4c9);}(_0xe073,0x1b6));var _0x3e07=function(_0x23a642,_0x266032){_0x23a642=_0x23a642-0x0;var _0x2c63be=_0xe073[_0x23a642];return _0x2c63be;};'use strict';var _=require(_0x3e07('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x3e07('0x1'));var rs=require(_0x3e07('0x2'));var fs=require('fs');var Redis=require(_0x3e07('0x3'));var db=require(_0x3e07('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x3e07('0x5'))(_0x3e07('0x6'));var config=require(_0x3e07('0x7'));var jayson=require(_0x3e07('0x8'));var client=jayson[_0x3e07('0x9')][_0x3e07('0xa')]({'port':0x232a});config[_0x3e07('0xb')]=_[_0x3e07('0xc')](config[_0x3e07('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x3e07('0xd'))(new Redis(config[_0x3e07('0xb')]));require('./mailQueue.socket')[_0x3e07('0xe')](socket);function respondWithRpcPromise(_0x225827,_0x4b0c44,_0x23dc74){return new BPromise(function(_0x115274,_0x5ea01b){return client[_0x3e07('0xf')](_0x225827,_0x23dc74)['then'](function(_0x22545){logger[_0x3e07('0x10')](_0x3e07('0x11'),_0x4b0c44,_0x3e07('0x12'));logger[_0x3e07('0x13')](_0x3e07('0x14'),_0x4b0c44,_0x3e07('0x12'),JSON[_0x3e07('0x15')](_0x22545));if(_0x22545[_0x3e07('0x16')]){if(_0x22545[_0x3e07('0x16')][_0x3e07('0x17')]===0x1f4){logger[_0x3e07('0x16')](_0x3e07('0x11'),_0x4b0c44,_0x22545[_0x3e07('0x16')][_0x3e07('0x18')]);return _0x5ea01b(_0x22545['error']['message']);}logger[_0x3e07('0x16')](_0x3e07('0x11'),_0x4b0c44,_0x22545[_0x3e07('0x16')][_0x3e07('0x18')]);return _0x115274(_0x22545['error']['message']);}else{logger['info'](_0x3e07('0x11'),_0x4b0c44,_0x3e07('0x12'));_0x115274(_0x22545[_0x3e07('0x19')][_0x3e07('0x18')]);}})[_0x3e07('0x1a')](function(_0x440d18){logger[_0x3e07('0x16')](_0x3e07('0x11'),_0x4b0c44,_0x440d18);_0x5ea01b(_0x440d18);});});}exports[_0x3e07('0x1b')]=function(_0x40cb06){var _0x6efdfb=this;return new Promise(function(_0x5870c3,_0x50e858){return db[_0x3e07('0x1c')][_0x3e07('0x1d')]({'raw':_0x40cb06['options']?_0x40cb06['options'][_0x3e07('0x1e')]===undefined?!![]:![]:!![],'where':_0x40cb06['options']?_0x40cb06[_0x3e07('0x1f')][_0x3e07('0x20')]||null:null,'attributes':_0x40cb06['options']?_0x40cb06[_0x3e07('0x1f')][_0x3e07('0x21')]||null:null,'limit':_0x40cb06[_0x3e07('0x1f')]?_0x40cb06['options'][_0x3e07('0x22')]||null:null,'include':_0x40cb06[_0x3e07('0x1f')]?_0x40cb06[_0x3e07('0x1f')][_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x40cb06['options'][_0x3e07('0x23')],function(_0x1240d4){return{'model':db[_0x1240d4[_0x3e07('0x25')]],'as':_0x1240d4['as'],'attributes':_0x1240d4[_0x3e07('0x21')],'include':_0x1240d4[_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x1240d4[_0x3e07('0x23')],function(_0x37ff9e){return{'model':db[_0x37ff9e[_0x3e07('0x25')]],'as':_0x37ff9e['as'],'attributes':_0x37ff9e['attributes'],'include':_0x37ff9e[_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x37ff9e['include'],function(_0x5e59ee){return{'model':db[_0x5e59ee[_0x3e07('0x25')]],'as':_0x5e59ee['as'],'attributes':_0x5e59ee[_0x3e07('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x51c7b4){logger[_0x3e07('0x10')](_0x3e07('0x1b'),_0x40cb06);logger[_0x3e07('0x13')](_0x3e07('0x1b'),_0x40cb06,JSON[_0x3e07('0x15')](_0x51c7b4));_0x5870c3(_0x51c7b4);})[_0x3e07('0x1a')](function(_0x10f517){logger[_0x3e07('0x16')](_0x3e07('0x1b'),_0x10f517[_0x3e07('0x18')],_0x40cb06);_0x50e858(_0x6efdfb[_0x3e07('0x16')](0x1f4,_0x10f517[_0x3e07('0x18')]));});});};exports[_0x3e07('0x26')]=function(_0x58a2cc){var _0x39eb35=this;return new Promise(function(_0x1bb56d,_0x1cbbcd){return db['MailQueue'][_0x3e07('0x27')]({'raw':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc['options']['raw']===undefined?!![]:![]:!![],'where':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc[_0x3e07('0x1f')][_0x3e07('0x20')]||null:null,'attributes':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc['options'][_0x3e07('0x21')]||null:null,'include':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc['options']['include']?_[_0x3e07('0x24')](_0x58a2cc['options'][_0x3e07('0x23')],function(_0x38cf8f){return{'model':db[_0x38cf8f['model']],'as':_0x38cf8f['as'],'attributes':_0x38cf8f[_0x3e07('0x21')],'include':_0x38cf8f[_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x38cf8f['include'],function(_0x30407f){return{'model':db[_0x30407f[_0x3e07('0x25')]],'as':_0x30407f['as'],'attributes':_0x30407f[_0x3e07('0x21')],'include':_0x30407f['include']?_[_0x3e07('0x24')](_0x30407f[_0x3e07('0x23')],function(_0x2ed01a){return{'model':db[_0x2ed01a[_0x3e07('0x25')]],'as':_0x2ed01a['as'],'attributes':_0x2ed01a[_0x3e07('0x21')]};}):[]};}):[]};}):[]:[]})[_0x3e07('0x28')](function(_0x510fd5){logger[_0x3e07('0x10')]('ShowMailQueue',_0x58a2cc);logger[_0x3e07('0x13')](_0x3e07('0x26'),_0x58a2cc,JSON[_0x3e07('0x15')](_0x510fd5));_0x1bb56d(_0x510fd5);})[_0x3e07('0x1a')](function(_0x570bd5){logger['error'](_0x3e07('0x26'),_0x570bd5['message'],_0x58a2cc);_0x1cbbcd(_0x39eb35[_0x3e07('0x16')](0x1f4,_0x570bd5[_0x3e07('0x18')]));});});};
\ No newline at end of file
+var _0x38d0=['findAll','options','raw','where','attributes','limit','include','map','model','ShowMailQueue','find','util','moment','bluebird','ioredis','../../mysqldb','rpc','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket','register','request','then','MailQueue,\x20%s,\x20%s','request\x20sent','debug','MailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetMailQueue','MailQueue'];(function(_0x4d646c,_0x3e6875){var _0x2e4fa7=function(_0x340056){while(--_0x340056){_0x4d646c['push'](_0x4d646c['shift']());}};_0x2e4fa7(++_0x3e6875);}(_0x38d0,0x123));var _0x038d=function(_0x5f1391,_0x19c132){_0x5f1391=_0x5f1391-0x0;var _0x50ebe3=_0x38d0[_0x5f1391];return _0x50ebe3;};'use strict';var _=require('lodash');var util=require(_0x038d('0x0'));var moment=require(_0x038d('0x1'));var BPromise=require(_0x038d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x038d('0x3'));var db=require(_0x038d('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x038d('0x5'));var config=require('../../config/environment');var jayson=require(_0x038d('0x6'));var client=jayson[_0x038d('0x7')]['http']({'port':0x232a});config[_0x038d('0x8')]=_[_0x038d('0x9')](config[_0x038d('0x8')],{'host':_0x038d('0xa'),'port':0x18eb});var socket=require(_0x038d('0xb'))(new Redis(config[_0x038d('0x8')]));require(_0x038d('0xc'))[_0x038d('0xd')](socket);function respondWithRpcPromise(_0x4689dc,_0xd38e5e,_0xf2147f){return new BPromise(function(_0x41ffe0,_0x56ba0e){return client[_0x038d('0xe')](_0x4689dc,_0xf2147f)[_0x038d('0xf')](function(_0xa2b719){logger['info'](_0x038d('0x10'),_0xd38e5e,_0x038d('0x11'));logger[_0x038d('0x12')](_0x038d('0x13'),_0xd38e5e,_0x038d('0x11'),JSON[_0x038d('0x14')](_0xa2b719));if(_0xa2b719[_0x038d('0x15')]){if(_0xa2b719[_0x038d('0x15')][_0x038d('0x16')]===0x1f4){logger['error']('MailQueue,\x20%s,\x20%s',_0xd38e5e,_0xa2b719['error'][_0x038d('0x17')]);return _0x56ba0e(_0xa2b719[_0x038d('0x15')]['message']);}logger['error']('MailQueue,\x20%s,\x20%s',_0xd38e5e,_0xa2b719['error'][_0x038d('0x17')]);return _0x41ffe0(_0xa2b719[_0x038d('0x15')][_0x038d('0x17')]);}else{logger[_0x038d('0x18')](_0x038d('0x10'),_0xd38e5e,_0x038d('0x11'));_0x41ffe0(_0xa2b719[_0x038d('0x19')][_0x038d('0x17')]);}})[_0x038d('0x1a')](function(_0x46a9c2){logger[_0x038d('0x15')](_0x038d('0x10'),_0xd38e5e,_0x46a9c2);_0x56ba0e(_0x46a9c2);});});}exports[_0x038d('0x1b')]=function(_0x34206d){var _0x5b590b=this;return new Promise(function(_0x5a1bc8,_0x42b6af){return db[_0x038d('0x1c')][_0x038d('0x1d')]({'raw':_0x34206d[_0x038d('0x1e')]?_0x34206d[_0x038d('0x1e')][_0x038d('0x1f')]===undefined?!![]:![]:!![],'where':_0x34206d[_0x038d('0x1e')]?_0x34206d['options'][_0x038d('0x20')]||null:null,'attributes':_0x34206d['options']?_0x34206d[_0x038d('0x1e')][_0x038d('0x21')]||null:null,'limit':_0x34206d['options']?_0x34206d[_0x038d('0x1e')][_0x038d('0x22')]||null:null,'include':_0x34206d[_0x038d('0x1e')]?_0x34206d[_0x038d('0x1e')][_0x038d('0x23')]?_['map'](_0x34206d[_0x038d('0x1e')][_0x038d('0x23')],function(_0x1dc3f3){return{'model':db[_0x1dc3f3['model']],'as':_0x1dc3f3['as'],'attributes':_0x1dc3f3['attributes'],'include':_0x1dc3f3['include']?_[_0x038d('0x24')](_0x1dc3f3[_0x038d('0x23')],function(_0x15babc){return{'model':db[_0x15babc[_0x038d('0x25')]],'as':_0x15babc['as'],'attributes':_0x15babc[_0x038d('0x21')],'include':_0x15babc[_0x038d('0x23')]?_[_0x038d('0x24')](_0x15babc['include'],function(_0x5044db){return{'model':db[_0x5044db[_0x038d('0x25')]],'as':_0x5044db['as'],'attributes':_0x5044db[_0x038d('0x21')]};}):[]};}):[]};}):[]:[]})[_0x038d('0xf')](function(_0x56df41){logger[_0x038d('0x18')](_0x038d('0x1b'),_0x34206d);logger['debug']('GetMailQueue',_0x34206d,JSON[_0x038d('0x14')](_0x56df41));_0x5a1bc8(_0x56df41);})[_0x038d('0x1a')](function(_0x1af389){logger[_0x038d('0x15')]('GetMailQueue',_0x1af389[_0x038d('0x17')],_0x34206d);_0x42b6af(_0x5b590b['error'](0x1f4,_0x1af389[_0x038d('0x17')]));});});};exports[_0x038d('0x26')]=function(_0x53e114){var _0x217ab6=this;return new Promise(function(_0x412c6a,_0x22911b){return db['MailQueue'][_0x038d('0x27')]({'raw':_0x53e114[_0x038d('0x1e')]?_0x53e114['options'][_0x038d('0x1f')]===undefined?!![]:![]:!![],'where':_0x53e114[_0x038d('0x1e')]?_0x53e114[_0x038d('0x1e')]['where']||null:null,'attributes':_0x53e114[_0x038d('0x1e')]?_0x53e114[_0x038d('0x1e')][_0x038d('0x21')]||null:null,'include':_0x53e114[_0x038d('0x1e')]?_0x53e114['options'][_0x038d('0x23')]?_[_0x038d('0x24')](_0x53e114[_0x038d('0x1e')][_0x038d('0x23')],function(_0x27da2b){return{'model':db[_0x27da2b['model']],'as':_0x27da2b['as'],'attributes':_0x27da2b[_0x038d('0x21')],'include':_0x27da2b[_0x038d('0x23')]?_[_0x038d('0x24')](_0x27da2b[_0x038d('0x23')],function(_0x5e99fd){return{'model':db[_0x5e99fd[_0x038d('0x25')]],'as':_0x5e99fd['as'],'attributes':_0x5e99fd[_0x038d('0x21')],'include':_0x5e99fd[_0x038d('0x23')]?_[_0x038d('0x24')](_0x5e99fd['include'],function(_0x2cf043){return{'model':db[_0x2cf043[_0x038d('0x25')]],'as':_0x2cf043['as'],'attributes':_0x2cf043['attributes']};}):[]};}):[]};}):[]:[]})[_0x038d('0xf')](function(_0x572ac8){logger[_0x038d('0x18')](_0x038d('0x26'),_0x53e114);logger['debug']('ShowMailQueue',_0x53e114,JSON['stringify'](_0x572ac8));_0x412c6a(_0x572ac8);})[_0x038d('0x1a')](function(_0x16f4b2){logger[_0x038d('0x15')]('ShowMailQueue',_0x16f4b2['message'],_0x53e114);_0x22911b(_0x217ab6['error'](0x1f4,_0x16f4b2[_0x038d('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d19=['mailQueue:','./mailQueue.events','save','remove','emit','removeListener','length'];(function(_0x46d1f5,_0x3aaa9b){var _0x1cccbb=function(_0x3be677){while(--_0x3be677){_0x46d1f5['push'](_0x46d1f5['shift']());}};_0x1cccbb(++_0x3aaa9b);}(_0x7d19,0x104));var _0x97d1=function(_0x2503aa,_0x4ea0db){_0x2503aa=_0x2503aa-0x0;var _0x44f5e2=_0x7d19[_0x2503aa];return _0x44f5e2;};'use strict';var MailQueueEvents=require(_0x97d1('0x0'));var events=[_0x97d1('0x1'),_0x97d1('0x2'),'update'];function createListener(_0x42e9ad,_0x39cde2){return function(_0x1f6d0b){_0x39cde2[_0x97d1('0x3')](_0x42e9ad,_0x1f6d0b);};}function removeListener(_0x2c2e97,_0x33525b){return function(){MailQueueEvents[_0x97d1('0x4')](_0x2c2e97,_0x33525b);};}exports['register']=function(_0x5b7eae){for(var _0x8f5be0=0x0,_0x2e8ef0=events[_0x97d1('0x5')];_0x8f5be0<_0x2e8ef0;_0x8f5be0++){var _0x38ee54=events[_0x8f5be0];var _0x134127=createListener(_0x97d1('0x6')+_0x38ee54,_0x5b7eae);MailQueueEvents['on'](_0x38ee54,_0x134127);}};
\ No newline at end of file
+var _0x2455=['register','./mailQueue.events','save','remove','update','removeListener'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0x2455,0xd3));var _0x5245=function(_0x1e7b16,_0x4607a1){_0x1e7b16=_0x1e7b16-0x0;var _0x37fadc=_0x2455[_0x1e7b16];return _0x37fadc;};'use strict';var MailQueueEvents=require(_0x5245('0x0'));var events=[_0x5245('0x1'),_0x5245('0x2'),_0x5245('0x3')];function createListener(_0x1f4446,_0x557700){return function(_0x5d7f64){_0x557700['emit'](_0x1f4446,_0x5d7f64);};}function removeListener(_0x3f1460,_0x1a162c){return function(){MailQueueEvents[_0x5245('0x4')](_0x3f1460,_0x1a162c);};}exports[_0x5245('0x5')]=function(_0x2f07d5){for(var _0x663a3=0x0,_0x5e2cde=events['length'];_0x663a3<_0x5e2cde;_0x663a3++){var _0x440eed=events[_0x663a3];var _0x313ef9=createListener('mailQueue:'+_0x440eed,_0x2f07d5);MailQueueEvents['on'](_0x440eed,_0x313ef9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3a6=['../../components/interaction/service','../../config/environment','./mailQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','create','update','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service'];(function(_0xf7bf02,_0x13da13){var _0x4f263f=function(_0x3b5603){while(--_0x3b5603){_0xf7bf02['push'](_0xf7bf02['shift']());}};_0x4f263f(++_0x13da13);}(_0xb3a6,0x117));var _0x6b3a=function(_0x202d24,_0x5e8641){_0x202d24=_0x202d24-0x0;var _0x2b3a8e=_0xb3a6[_0x202d24];return _0x2b3a8e;};'use strict';var multer=require(_0x6b3a('0x0'));var util=require(_0x6b3a('0x1'));var path=require(_0x6b3a('0x2'));var timeout=require(_0x6b3a('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x6b3a('0x4'));var auth=require(_0x6b3a('0x5'));var interaction=require(_0x6b3a('0x6'));var config=require(_0x6b3a('0x7'));var controller=require(_0x6b3a('0x8'));router[_0x6b3a('0x9')]('/',auth[_0x6b3a('0xa')](),controller[_0x6b3a('0xb')]);router[_0x6b3a('0x9')](_0x6b3a('0xc'),auth[_0x6b3a('0xa')](),controller[_0x6b3a('0xd')]);router[_0x6b3a('0x9')](_0x6b3a('0xe'),auth[_0x6b3a('0xa')](),controller['show']);router['post']('/',auth[_0x6b3a('0xa')](),controller[_0x6b3a('0xf')]);router['put'](_0x6b3a('0xe'),auth[_0x6b3a('0xa')](),controller[_0x6b3a('0x10')]);router['delete'](_0x6b3a('0xe'),auth[_0x6b3a('0xa')](),controller[_0x6b3a('0x11')]);module[_0x6b3a('0x12')]=router;
\ No newline at end of file
+var _0x830c=['get','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./mailQueueReport.controller','isAuthenticated','index'];(function(_0x2771fc,_0x1891bc){var _0xb4744b=function(_0x4b4022){while(--_0x4b4022){_0x2771fc['push'](_0x2771fc['shift']());}};_0xb4744b(++_0x1891bc);}(_0x830c,0xac));var _0xc830=function(_0x2c0ae6,_0x494965){_0x2c0ae6=_0x2c0ae6-0x0;var _0x9e4c33=_0x830c[_0x2c0ae6];return _0x9e4c33;};'use strict';var multer=require(_0xc830('0x0'));var util=require(_0xc830('0x1'));var path=require(_0xc830('0x2'));var timeout=require(_0xc830('0x3'));var express=require(_0xc830('0x4'));var router=express[_0xc830('0x5')]();var fs_extra=require(_0xc830('0x6'));var auth=require(_0xc830('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0xc830('0x8'));var controller=require(_0xc830('0x9'));router['get']('/',auth[_0xc830('0xa')](),controller[_0xc830('0xb')]);router[_0xc830('0xc')]('/describe',auth['isAuthenticated'](),controller[_0xc830('0xd')]);router[_0xc830('0xc')](_0xc830('0xe'),auth[_0xc830('0xa')](),controller[_0xc830('0xf')]);router[_0xc830('0x10')]('/',auth[_0xc830('0xa')](),controller[_0xc830('0x11')]);router[_0xc830('0x12')](_0xc830('0xe'),auth[_0xc830('0xa')](),controller[_0xc830('0x13')]);router[_0xc830('0x14')](_0xc830('0xe'),auth['isAuthenticated'](),controller[_0xc830('0x15')]);module[_0xc830('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7076=['DATE','moment','exports','STRING'];(function(_0x8854f2,_0x79542c){var _0x38505d=function(_0x5af02b){while(--_0x5af02b){_0x8854f2['push'](_0x8854f2['shift']());}};_0x38505d(++_0x79542c);}(_0x7076,0x1b9));var _0x6707=function(_0x282154,_0x23b72f){_0x282154=_0x282154-0x0;var _0x58a32b=_0x7076[_0x282154];return _0x58a32b;};'use strict';var moment=require(_0x6707('0x0'));var Sequelize=require('sequelize');module[_0x6707('0x1')]={'uniqueid':{'type':Sequelize[_0x6707('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x6707('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x6707('0x3')]},'acceptAt':{'type':Sequelize[_0x6707('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xb410=['exports','DATE','STRING','moment','sequelize'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xb410,0x8f));var _0x0b41=function(_0x1646fa,_0x4e5bd7){_0x1646fa=_0x1646fa-0x0;var _0x5a47a5=_0xb410[_0x1646fa];return _0x5a47a5;};'use strict';var moment=require(_0x0b41('0x0'));var Sequelize=require(_0x0b41('0x1'));module[_0x0b41('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x0b41('0x3')]},'leaveAt':{'type':Sequelize[_0x0b41('0x3')]},'acceptAt':{'type':Sequelize[_0x0b41('0x3')]},'exitAt':{'type':Sequelize[_0x0b41('0x3')]},'reason':{'type':Sequelize[_0x0b41('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1893=['query','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','pick','map','VIRTUAL','filter','includeAll','include','catch','keys','merge','find','body','params','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','error','send','index','MailQueueReport','rawAttributes','type','key','model','name'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0x1893,0xa2));var _0x3189=function(_0x19691f,_0x159737){_0x19691f=_0x19691f-0x0;var _0x5677b6=_0x1893[_0x19691f];return _0x5677b6;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3189('0x0'));var jsonpatch=require(_0x3189('0x1'));var rp=require(_0x3189('0x2'));var moment=require(_0x3189('0x3'));var BPromise=require(_0x3189('0x4'));var Mustache=require(_0x3189('0x5'));var util=require(_0x3189('0x6'));var path=require('path');var sox=require(_0x3189('0x7'));var csv=require(_0x3189('0x8'));var ejs=require(_0x3189('0x9'));var fs=require('fs');var fs_extra=require(_0x3189('0xa'));var _=require(_0x3189('0xb'));var squel=require(_0x3189('0xc'));var crypto=require(_0x3189('0xd'));var jsforce=require(_0x3189('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x3189('0x8'));var querystring=require('querystring');var Papa=require(_0x3189('0xf'));var Redis=require('ioredis');var authService=require(_0x3189('0x10'));var qs=require(_0x3189('0x11'));var as=require(_0x3189('0x12'));var hardwareService=require(_0x3189('0x13'));var logger=require('../../config/logger')(_0x3189('0x14'));var utils=require(_0x3189('0x15'));var config=require(_0x3189('0x16'));var licenseUtil=require(_0x3189('0x17'));var db=require(_0x3189('0x18'))['db'];function respondWithStatusCode(_0x5d9fff,_0x22b11e){_0x22b11e=_0x22b11e||0xcc;return function(_0x353b17){if(_0x353b17){return _0x5d9fff[_0x3189('0x19')](_0x22b11e);}return _0x5d9fff[_0x3189('0x1a')](_0x22b11e)[_0x3189('0x1b')]();};}function respondWithResult(_0x20dcc2,_0xef438){_0xef438=_0xef438||0xc8;return function(_0x25a917){if(_0x25a917){return _0x20dcc2['status'](_0xef438)[_0x3189('0x1c')](_0x25a917);}};}function respondWithFilteredResult(_0xb3e4c2,_0x1c209b){return function(_0x2fb62b){if(_0x2fb62b){var _0x486dd2=typeof _0x1c209b[_0x3189('0x1d')]==='undefined'&&typeof _0x1c209b['limit']===_0x3189('0x1e');var _0x49b1bc=_0x2fb62b[_0x3189('0x1f')];var _0xf8aed7=_0x486dd2?0x0:_0x1c209b[_0x3189('0x1d')];var _0x9905c4=_0x486dd2?_0x2fb62b['count']:_0x1c209b[_0x3189('0x1d')]+_0x1c209b[_0x3189('0x20')];var _0x16edd7;if(_0x9905c4>=_0x49b1bc){_0x9905c4=_0x49b1bc;_0x16edd7=0xc8;}else{_0x16edd7=0xce;}_0xb3e4c2['status'](_0x16edd7);return _0xb3e4c2[_0x3189('0x21')](_0x3189('0x22'),_0xf8aed7+'-'+_0x9905c4+'/'+_0x49b1bc)[_0x3189('0x1c')](_0x2fb62b);}return null;};}function patchUpdates(_0x2c1e59){return function(_0x29b275){try{jsonpatch['apply'](_0x29b275,_0x2c1e59,!![]);}catch(_0x1771a8){return BPromise[_0x3189('0x23')](_0x1771a8);}return _0x29b275[_0x3189('0x24')]();};}function saveUpdates(_0x539e12,_0x309c6e){return function(_0x47abb4){if(_0x47abb4){return _0x47abb4[_0x3189('0x25')](_0x539e12)[_0x3189('0x26')](function(_0x200f16){return _0x200f16;});}return null;};}function removeEntity(_0x38e56a,_0x1cbe33){return function(_0x393fcb){if(_0x393fcb){return _0x393fcb['destroy']()['then'](function(){_0x38e56a[_0x3189('0x1a')](0xcc)[_0x3189('0x1b')]();});}};}function handleEntityNotFound(_0x1dc1c8,_0x3cc1e5){return function(_0x103de4){if(!_0x103de4){_0x1dc1c8[_0x3189('0x19')](0x194);}return _0x103de4;};}function handleError(_0xdda38b,_0x379a48){_0x379a48=_0x379a48||0x1f4;return function(_0x17b540){logger[_0x3189('0x27')](_0x17b540['stack']);if(_0x17b540['name']){delete _0x17b540['name'];}_0xdda38b[_0x3189('0x1a')](_0x379a48)[_0x3189('0x28')](_0x17b540);};}exports[_0x3189('0x29')]=function(_0x90c31,_0x36b258){var _0x2f7504={},_0x4d453a={},_0x1ab94b={'count':0x0,'rows':[]};var _0x37b9ec=_['map'](db[_0x3189('0x2a')][_0x3189('0x2b')],function(_0x39c5e4){return{'name':_0x39c5e4['fieldName'],'type':_0x39c5e4[_0x3189('0x2c')][_0x3189('0x2d')]};});_0x4d453a[_0x3189('0x2e')]=_['map'](_0x37b9ec,_0x3189('0x2f'));_0x4d453a[_0x3189('0x30')]=_['keys'](_0x90c31[_0x3189('0x30')]);_0x4d453a[_0x3189('0x31')]=_[_0x3189('0x32')](_0x4d453a[_0x3189('0x2e')],_0x4d453a[_0x3189('0x30')]);_0x2f7504['attributes']=_['intersection'](_0x4d453a[_0x3189('0x2e')],qs['fields'](_0x90c31[_0x3189('0x30')][_0x3189('0x33')]));_0x2f7504[_0x3189('0x34')]=_0x2f7504[_0x3189('0x34')][_0x3189('0x35')]?_0x2f7504[_0x3189('0x34')]:_0x4d453a[_0x3189('0x2e')];if(!_0x90c31[_0x3189('0x30')][_0x3189('0x36')]('nolimit')){_0x2f7504[_0x3189('0x20')]=qs[_0x3189('0x20')](_0x90c31[_0x3189('0x30')][_0x3189('0x20')]);_0x2f7504[_0x3189('0x1d')]=qs[_0x3189('0x1d')](_0x90c31[_0x3189('0x30')]['offset']);}_0x2f7504['order']=qs[_0x3189('0x37')](_0x90c31['query'][_0x3189('0x37')]);_0x2f7504[_0x3189('0x38')]=qs['filters'](_[_0x3189('0x39')](_0x90c31[_0x3189('0x30')],_0x4d453a[_0x3189('0x31')]),_0x37b9ec);if(_0x90c31[_0x3189('0x30')]['filter']){_0x2f7504[_0x3189('0x38')]=_['merge'](_0x2f7504['where'],{'$or':_[_0x3189('0x3a')](_0x37b9ec,function(_0xed3041){if(_0xed3041[_0x3189('0x2c')]!==_0x3189('0x3b')){var _0x12dee0={};_0x12dee0[_0xed3041[_0x3189('0x2f')]]={'$like':'%'+_0x90c31[_0x3189('0x30')][_0x3189('0x3c')]+'%'};return _0x12dee0;}})});}_0x2f7504=_['merge']({},_0x2f7504,_0x90c31['options']);var _0x407e0a={'where':_0x2f7504[_0x3189('0x38')]};return db[_0x3189('0x2a')][_0x3189('0x1f')](_0x407e0a)[_0x3189('0x26')](function(_0xb52c70){_0x1ab94b['count']=_0xb52c70;if(_0x90c31[_0x3189('0x30')][_0x3189('0x3d')]){_0x2f7504[_0x3189('0x3e')]=[{'all':!![]}];}return db[_0x3189('0x2a')]['findAll'](_0x2f7504);})[_0x3189('0x26')](function(_0x2f0d49){_0x1ab94b['rows']=_0x2f0d49;return _0x1ab94b;})['then'](respondWithFilteredResult(_0x36b258,_0x2f7504))[_0x3189('0x3f')](handleError(_0x36b258,null));};exports['show']=function(_0x376787,_0x3074b9){var _0x38bf83={'raw':!![],'where':{'id':_0x376787['params']['id']}},_0x9593f3={};_0x9593f3[_0x3189('0x2e')]=_[_0x3189('0x40')](db['MailQueueReport'][_0x3189('0x2b')]);_0x9593f3[_0x3189('0x30')]=_[_0x3189('0x40')](_0x376787[_0x3189('0x30')]);_0x9593f3[_0x3189('0x31')]=_['intersection'](_0x9593f3['model'],_0x9593f3[_0x3189('0x30')]);_0x38bf83['attributes']=_[_0x3189('0x32')](_0x9593f3[_0x3189('0x2e')],qs[_0x3189('0x33')](_0x376787['query'][_0x3189('0x33')]));_0x38bf83[_0x3189('0x34')]=_0x38bf83[_0x3189('0x34')]['length']?_0x38bf83[_0x3189('0x34')]:_0x9593f3[_0x3189('0x2e')];if(_0x376787[_0x3189('0x30')][_0x3189('0x3d')]){_0x38bf83[_0x3189('0x3e')]=[{'all':!![]}];}_0x38bf83=_[_0x3189('0x41')]({},_0x38bf83,_0x376787['options']);return db['MailQueueReport'][_0x3189('0x42')](_0x38bf83)['then'](handleEntityNotFound(_0x3074b9,null))['then'](respondWithResult(_0x3074b9,null))[_0x3189('0x3f')](handleError(_0x3074b9,null));};exports['create']=function(_0x2d58fd,_0x1b6f09){return db[_0x3189('0x2a')]['create'](_0x2d58fd[_0x3189('0x43')],{})['then'](respondWithResult(_0x1b6f09,0xc9))[_0x3189('0x3f')](handleError(_0x1b6f09,null));};exports['update']=function(_0x49c4a8,_0x244166){if(_0x49c4a8['body']['id']){delete _0x49c4a8[_0x3189('0x43')]['id'];}return db['MailQueueReport']['find']({'where':{'id':_0x49c4a8[_0x3189('0x44')]['id']}})[_0x3189('0x26')](handleEntityNotFound(_0x244166,null))[_0x3189('0x26')](saveUpdates(_0x49c4a8[_0x3189('0x43')],null))[_0x3189('0x26')](respondWithResult(_0x244166,null))[_0x3189('0x3f')](handleError(_0x244166,null));};exports['destroy']=function(_0x21d446,_0x549bc7){return db['MailQueueReport'][_0x3189('0x42')]({'where':{'id':_0x21d446[_0x3189('0x44')]['id']}})[_0x3189('0x26')](handleEntityNotFound(_0x549bc7,null))[_0x3189('0x26')](removeEntity(_0x549bc7,null))[_0x3189('0x3f')](handleError(_0x549bc7,null));};exports[_0x3189('0x45')]=function(_0x556ee5,_0x5117fb){return db['MailQueueReport'][_0x3189('0x45')]()[_0x3189('0x26')](respondWithResult(_0x5117fb,null))[_0x3189('0x3f')](handleError(_0x5117fb,null));};
\ No newline at end of file
+var _0xcaf2=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','limit','count','status','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','MailQueueReport','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','describe','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis'];(function(_0x1a522f,_0x172efe){var _0x2aa18c=function(_0x136bc5){while(--_0x136bc5){_0x1a522f['push'](_0x1a522f['shift']());}};_0x2aa18c(++_0x172efe);}(_0xcaf2,0x8a));var _0x2caf=function(_0x1c3281,_0x5c69a0){_0x1c3281=_0x1c3281-0x0;var _0x27588d=_0xcaf2[_0x1c3281];return _0x27588d;};'use strict';var emlformat=require(_0x2caf('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2caf('0x1'));var jsonpatch=require(_0x2caf('0x2'));var rp=require('request-promise');var moment=require(_0x2caf('0x3'));var BPromise=require(_0x2caf('0x4'));var Mustache=require('mustache');var util=require(_0x2caf('0x5'));var path=require('path');var sox=require(_0x2caf('0x6'));var csv=require(_0x2caf('0x7'));var ejs=require(_0x2caf('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2caf('0x9'));var squel=require(_0x2caf('0xa'));var crypto=require(_0x2caf('0xb'));var jsforce=require(_0x2caf('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x2caf('0x7'));var querystring=require(_0x2caf('0xd'));var Papa=require(_0x2caf('0xe'));var Redis=require(_0x2caf('0xf'));var authService=require(_0x2caf('0x10'));var qs=require(_0x2caf('0x11'));var as=require(_0x2caf('0x12'));var hardwareService=require(_0x2caf('0x13'));var logger=require(_0x2caf('0x14'))('api');var utils=require(_0x2caf('0x15'));var config=require(_0x2caf('0x16'));var licenseUtil=require(_0x2caf('0x17'));var db=require(_0x2caf('0x18'))['db'];function respondWithStatusCode(_0x1dda08,_0x31c0e7){_0x31c0e7=_0x31c0e7||0xcc;return function(_0x252147){if(_0x252147){return _0x1dda08[_0x2caf('0x19')](_0x31c0e7);}return _0x1dda08['status'](_0x31c0e7)[_0x2caf('0x1a')]();};}function respondWithResult(_0xec8192,_0x502033){_0x502033=_0x502033||0xc8;return function(_0x4c47b8){if(_0x4c47b8){return _0xec8192['status'](_0x502033)[_0x2caf('0x1b')](_0x4c47b8);}};}function respondWithFilteredResult(_0x4da5ba,_0x388e05){return function(_0xa75896){if(_0xa75896){var _0x3b8b67=typeof _0x388e05[_0x2caf('0x1c')]==='undefined'&&typeof _0x388e05[_0x2caf('0x1d')]==='undefined';var _0x2d5b64=_0xa75896['count'];var _0x4a33fc=_0x3b8b67?0x0:_0x388e05[_0x2caf('0x1c')];var _0x58047b=_0x3b8b67?_0xa75896[_0x2caf('0x1e')]:_0x388e05[_0x2caf('0x1c')]+_0x388e05['limit'];var _0x12624b;if(_0x58047b>=_0x2d5b64){_0x58047b=_0x2d5b64;_0x12624b=0xc8;}else{_0x12624b=0xce;}_0x4da5ba[_0x2caf('0x1f')](_0x12624b);return _0x4da5ba[_0x2caf('0x20')](_0x2caf('0x21'),_0x4a33fc+'-'+_0x58047b+'/'+_0x2d5b64)[_0x2caf('0x1b')](_0xa75896);}return null;};}function patchUpdates(_0x595f2f){return function(_0xfa426f){try{jsonpatch[_0x2caf('0x22')](_0xfa426f,_0x595f2f,!![]);}catch(_0x2b4d16){return BPromise[_0x2caf('0x23')](_0x2b4d16);}return _0xfa426f[_0x2caf('0x24')]();};}function saveUpdates(_0x9d6bae,_0x4092ba){return function(_0x256cc4){if(_0x256cc4){return _0x256cc4[_0x2caf('0x25')](_0x9d6bae)[_0x2caf('0x26')](function(_0x6814bc){return _0x6814bc;});}return null;};}function removeEntity(_0x5231fc,_0x296305){return function(_0x14bfd2){if(_0x14bfd2){return _0x14bfd2[_0x2caf('0x27')]()[_0x2caf('0x26')](function(){_0x5231fc[_0x2caf('0x1f')](0xcc)[_0x2caf('0x1a')]();});}};}function handleEntityNotFound(_0x392196,_0x164da){return function(_0x2e0a75){if(!_0x2e0a75){_0x392196[_0x2caf('0x19')](0x194);}return _0x2e0a75;};}function handleError(_0x5ad211,_0x6a32ac){_0x6a32ac=_0x6a32ac||0x1f4;return function(_0x325eda){logger[_0x2caf('0x28')](_0x325eda[_0x2caf('0x29')]);if(_0x325eda[_0x2caf('0x2a')]){delete _0x325eda[_0x2caf('0x2a')];}_0x5ad211[_0x2caf('0x1f')](_0x6a32ac)[_0x2caf('0x2b')](_0x325eda);};}exports[_0x2caf('0x2c')]=function(_0x2304f1,_0x30da75){var _0x1f477={},_0x158d60={},_0x48b5f7={'count':0x0,'rows':[]};var _0xb944cc=_[_0x2caf('0x2d')](db[_0x2caf('0x2e')][_0x2caf('0x2f')],function(_0xa8523b){return{'name':_0xa8523b[_0x2caf('0x30')],'type':_0xa8523b[_0x2caf('0x31')]['key']};});_0x158d60[_0x2caf('0x32')]=_[_0x2caf('0x2d')](_0xb944cc,'name');_0x158d60[_0x2caf('0x33')]=_[_0x2caf('0x34')](_0x2304f1[_0x2caf('0x33')]);_0x158d60['filters']=_[_0x2caf('0x35')](_0x158d60['model'],_0x158d60['query']);_0x1f477[_0x2caf('0x36')]=_[_0x2caf('0x35')](_0x158d60[_0x2caf('0x32')],qs[_0x2caf('0x37')](_0x2304f1[_0x2caf('0x33')][_0x2caf('0x37')]));_0x1f477[_0x2caf('0x36')]=_0x1f477[_0x2caf('0x36')][_0x2caf('0x38')]?_0x1f477['attributes']:_0x158d60[_0x2caf('0x32')];if(!_0x2304f1[_0x2caf('0x33')][_0x2caf('0x39')](_0x2caf('0x3a'))){_0x1f477[_0x2caf('0x1d')]=qs[_0x2caf('0x1d')](_0x2304f1[_0x2caf('0x33')][_0x2caf('0x1d')]);_0x1f477[_0x2caf('0x1c')]=qs[_0x2caf('0x1c')](_0x2304f1[_0x2caf('0x33')][_0x2caf('0x1c')]);}_0x1f477['order']=qs['sort'](_0x2304f1[_0x2caf('0x33')][_0x2caf('0x3b')]);_0x1f477[_0x2caf('0x3c')]=qs[_0x2caf('0x3d')](_['pick'](_0x2304f1[_0x2caf('0x33')],_0x158d60[_0x2caf('0x3d')]),_0xb944cc);if(_0x2304f1[_0x2caf('0x33')][_0x2caf('0x3e')]){_0x1f477[_0x2caf('0x3c')]=_[_0x2caf('0x3f')](_0x1f477[_0x2caf('0x3c')],{'$or':_[_0x2caf('0x2d')](_0xb944cc,function(_0x5c133c){if(_0x5c133c['type']!==_0x2caf('0x40')){var _0x863fca={};_0x863fca[_0x5c133c[_0x2caf('0x2a')]]={'$like':'%'+_0x2304f1[_0x2caf('0x33')][_0x2caf('0x3e')]+'%'};return _0x863fca;}})});}_0x1f477=_[_0x2caf('0x3f')]({},_0x1f477,_0x2304f1[_0x2caf('0x41')]);var _0xf93228={'where':_0x1f477[_0x2caf('0x3c')]};return db[_0x2caf('0x2e')][_0x2caf('0x1e')](_0xf93228)['then'](function(_0x35ad7f){_0x48b5f7[_0x2caf('0x1e')]=_0x35ad7f;if(_0x2304f1[_0x2caf('0x33')]['includeAll']){_0x1f477[_0x2caf('0x42')]=[{'all':!![]}];}return db[_0x2caf('0x2e')][_0x2caf('0x43')](_0x1f477);})['then'](function(_0x40cb18){_0x48b5f7[_0x2caf('0x44')]=_0x40cb18;return _0x48b5f7;})['then'](respondWithFilteredResult(_0x30da75,_0x1f477))[_0x2caf('0x45')](handleError(_0x30da75,null));};exports[_0x2caf('0x46')]=function(_0x4e57b0,_0xe5fcbf){var _0x1348d8={'raw':!![],'where':{'id':_0x4e57b0[_0x2caf('0x47')]['id']}},_0x2e4126={};_0x2e4126[_0x2caf('0x32')]=_[_0x2caf('0x34')](db[_0x2caf('0x2e')][_0x2caf('0x2f')]);_0x2e4126['query']=_[_0x2caf('0x34')](_0x4e57b0['query']);_0x2e4126[_0x2caf('0x3d')]=_[_0x2caf('0x35')](_0x2e4126[_0x2caf('0x32')],_0x2e4126['query']);_0x1348d8['attributes']=_[_0x2caf('0x35')](_0x2e4126['model'],qs[_0x2caf('0x37')](_0x4e57b0[_0x2caf('0x33')][_0x2caf('0x37')]));_0x1348d8[_0x2caf('0x36')]=_0x1348d8[_0x2caf('0x36')][_0x2caf('0x38')]?_0x1348d8[_0x2caf('0x36')]:_0x2e4126[_0x2caf('0x32')];if(_0x4e57b0[_0x2caf('0x33')][_0x2caf('0x48')]){_0x1348d8[_0x2caf('0x42')]=[{'all':!![]}];}_0x1348d8=_[_0x2caf('0x3f')]({},_0x1348d8,_0x4e57b0[_0x2caf('0x41')]);return db[_0x2caf('0x2e')][_0x2caf('0x49')](_0x1348d8)[_0x2caf('0x26')](handleEntityNotFound(_0xe5fcbf,null))[_0x2caf('0x26')](respondWithResult(_0xe5fcbf,null))[_0x2caf('0x45')](handleError(_0xe5fcbf,null));};exports[_0x2caf('0x4a')]=function(_0x3a598b,_0x136dc9){return db['MailQueueReport'][_0x2caf('0x4a')](_0x3a598b[_0x2caf('0x4b')],{})['then'](respondWithResult(_0x136dc9,0xc9))['catch'](handleError(_0x136dc9,null));};exports[_0x2caf('0x25')]=function(_0x6f0a2a,_0x5a822d){if(_0x6f0a2a[_0x2caf('0x4b')]['id']){delete _0x6f0a2a[_0x2caf('0x4b')]['id'];}return db[_0x2caf('0x2e')][_0x2caf('0x49')]({'where':{'id':_0x6f0a2a[_0x2caf('0x47')]['id']}})[_0x2caf('0x26')](handleEntityNotFound(_0x5a822d,null))[_0x2caf('0x26')](saveUpdates(_0x6f0a2a[_0x2caf('0x4b')],null))[_0x2caf('0x26')](respondWithResult(_0x5a822d,null))[_0x2caf('0x45')](handleError(_0x5a822d,null));};exports[_0x2caf('0x27')]=function(_0x2b318a,_0x41b7b2){return db['MailQueueReport'][_0x2caf('0x49')]({'where':{'id':_0x2b318a[_0x2caf('0x47')]['id']}})[_0x2caf('0x26')](handleEntityNotFound(_0x41b7b2,null))['then'](removeEntity(_0x41b7b2,null))[_0x2caf('0x45')](handleError(_0x41b7b2,null));};exports[_0x2caf('0x4c')]=function(_0x28d8bd,_0x20bf52){return db[_0x2caf('0x2e')][_0x2caf('0x4c')]()[_0x2caf('0x26')](respondWithResult(_0x20bf52,null))[_0x2caf('0x45')](handleError(_0x20bf52,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16ef=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailQueueReport.attributes','exports','define','MailQueueReport','uniqueid'];(function(_0x2d2f1a,_0x57b966){var _0x55d9db=function(_0x15771f){while(--_0x15771f){_0x2d2f1a['push'](_0x2d2f1a['shift']());}};_0x55d9db(++_0x57b966);}(_0x16ef,0x1e0));var _0xf16e=function(_0x5ead1b,_0x5d1fb3){_0x5ead1b=_0x5ead1b-0x0;var _0x2ba1da=_0x16ef[_0x5ead1b];return _0x2ba1da;};'use strict';var _=require(_0xf16e('0x0'));var util=require(_0xf16e('0x1'));var logger=require(_0xf16e('0x2'))(_0xf16e('0x3'));var moment=require(_0xf16e('0x4'));var BPromise=require(_0xf16e('0x5'));var rp=require(_0xf16e('0x6'));var fs=require('fs');var path=require(_0xf16e('0x7'));var rimraf=require(_0xf16e('0x8'));var config=require(_0xf16e('0x9'));var attributes=require(_0xf16e('0xa'));module[_0xf16e('0xb')]=function(_0x530042,_0x2e6da3){return _0x530042[_0xf16e('0xc')](_0xf16e('0xd'),attributes,{'tableName':'report_mail_queue','paranoid':![],'indexes':[{'name':_0xf16e('0xe'),'fields':[_0xf16e('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xca65=['api','moment','bluebird','path','exports','define','MailQueueReport','report_mail_queue','uniqueid','lodash','util','../../config/logger'];(function(_0xe7bc08,_0xe404a9){var _0x4f0fce=function(_0x26b999){while(--_0x26b999){_0xe7bc08['push'](_0xe7bc08['shift']());}};_0x4f0fce(++_0xe404a9);}(_0xca65,0x1dd));var _0x5ca6=function(_0x544106,_0x449f0e){_0x544106=_0x544106-0x0;var _0x51ea19=_0xca65[_0x544106];return _0x51ea19;};'use strict';var _=require(_0x5ca6('0x0'));var util=require(_0x5ca6('0x1'));var logger=require(_0x5ca6('0x2'))(_0x5ca6('0x3'));var moment=require(_0x5ca6('0x4'));var BPromise=require(_0x5ca6('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5ca6('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./mailQueueReport.attributes');module[_0x5ca6('0x7')]=function(_0x4ae20c,_0x28b216){return _0x4ae20c[_0x5ca6('0x8')](_0x5ca6('0x9'),attributes,{'tableName':_0x5ca6('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x5ca6('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['UpdateMailQueueReport','MailQueueReport','update','raw','where','limit','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','MailQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','CreateMailQueueReport','create','body','options'];(function(_0x4c8fa3,_0x12a507){var _0x3e0b0f=function(_0x1b9142){while(--_0x1b9142){_0x4c8fa3['push'](_0x4c8fa3['shift']());}};_0x3e0b0f(++_0x12a507);}(_0xdb28,0x106));var _0x8db2=function(_0x497b0a,_0x3edb75){_0x497b0a=_0x497b0a-0x0;var _0x3bc892=_0xdb28[_0x497b0a];return _0x3bc892;};'use strict';var _=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var moment=require(_0x8db2('0x2'));var BPromise=require(_0x8db2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8db2('0x4'));var db=require(_0x8db2('0x5'))['db'];var utils=require(_0x8db2('0x6'));var logger=require(_0x8db2('0x7'))(_0x8db2('0x8'));var config=require('../../config/environment');var jayson=require(_0x8db2('0x9'));var client=jayson[_0x8db2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x494b40,_0x477f50,_0x46932f){return new BPromise(function(_0x131537,_0x29f698){return client[_0x8db2('0xb')](_0x494b40,_0x46932f)[_0x8db2('0xc')](function(_0x126c78){logger['info'](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));logger[_0x8db2('0xf')]('MailQueueReport,\x20%s,\x20%s,\x20%s',_0x477f50,_0x8db2('0xe'),JSON[_0x8db2('0x10')](_0x126c78));if(_0x126c78['error']){if(_0x126c78[_0x8db2('0x11')][_0x8db2('0x12')]===0x1f4){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')]['message']);return _0x29f698(_0x126c78['error'][_0x8db2('0x13')]);}logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);return _0x131537(_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);}else{logger[_0x8db2('0x14')](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));_0x131537(_0x126c78['result'][_0x8db2('0x13')]);}})[_0x8db2('0x15')](function(_0x48101e){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x48101e);_0x29f698(_0x48101e);});});}exports[_0x8db2('0x16')]=function(_0x3fddc2){var _0x2efd06=this;return new Promise(function(_0x46ce14,_0x51d60d){return db['MailQueueReport'][_0x8db2('0x17')](_0x3fddc2[_0x8db2('0x18')],{'raw':_0x3fddc2[_0x8db2('0x19')]?_0x3fddc2[_0x8db2('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x8db2('0xc')](function(_0x36a9ff){logger[_0x8db2('0x14')](_0x8db2('0x16'),_0x3fddc2);logger[_0x8db2('0xf')]('CreateMailQueueReport',_0x3fddc2,JSON[_0x8db2('0x10')](_0x36a9ff));_0x46ce14(_0x36a9ff);})[_0x8db2('0x15')](function(_0x18f69c){logger[_0x8db2('0x11')](_0x8db2('0x16'),_0x18f69c[_0x8db2('0x13')],_0x3fddc2);_0x51d60d(_0x2efd06[_0x8db2('0x11')](0x1f4,_0x18f69c['message']));});});};exports[_0x8db2('0x1a')]=function(_0x4f6516){var _0x5725f0=this;return new Promise(function(_0x52a9ca,_0x4d923c){return db[_0x8db2('0x1b')][_0x8db2('0x1c')](_0x4f6516[_0x8db2('0x18')],{'raw':_0x4f6516[_0x8db2('0x19')]?_0x4f6516[_0x8db2('0x19')][_0x8db2('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f6516['options']?_0x4f6516[_0x8db2('0x19')][_0x8db2('0x1e')]||null:null,'attributes':_0x4f6516[_0x8db2('0x19')]?_0x4f6516[_0x8db2('0x19')]['attributes']||null:null,'limit':_0x4f6516[_0x8db2('0x19')]?_0x4f6516[_0x8db2('0x19')][_0x8db2('0x1f')]||null:null})[_0x8db2('0xc')](function(_0xbe5ece){logger[_0x8db2('0x14')](_0x8db2('0x1a'),_0x4f6516);logger[_0x8db2('0xf')](_0x8db2('0x1a'),_0x4f6516,JSON['stringify'](_0xbe5ece));_0x52a9ca(_0xbe5ece);})[_0x8db2('0x15')](function(_0x50b28d){logger['error'](_0x8db2('0x1a'),_0x50b28d[_0x8db2('0x13')],_0x4f6516);_0x4d923c(_0x5725f0[_0x8db2('0x11')](0x1f4,_0x50b28d['message']));});});};
\ No newline at end of file
+var _0x5f2f=['error','code','message','request\x20sent','result','catch','CreateMailQueueReport','MailQueueReport','create','body','options','raw','UpdateMailQueueReport','update','attributes','limit','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','info','MailQueueReport,\x20%s,\x20%s','debug','stringify'];(function(_0x34b144,_0x19efcd){var _0x4b0ead=function(_0x4beb70){while(--_0x4beb70){_0x34b144['push'](_0x34b144['shift']());}};_0x4b0ead(++_0x19efcd);}(_0x5f2f,0x73));var _0xf5f2=function(_0xd14042,_0x2b5705){_0xd14042=_0xd14042-0x0;var _0x1c1112=_0x5f2f[_0xd14042];return _0x1c1112;};'use strict';var _=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var moment=require(_0xf5f2('0x2'));var BPromise=require(_0xf5f2('0x3'));var rs=require(_0xf5f2('0x4'));var fs=require('fs');var Redis=require(_0xf5f2('0x5'));var db=require(_0xf5f2('0x6'))['db'];var utils=require(_0xf5f2('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xf5f2('0x8'));var jayson=require(_0xf5f2('0x9'));var client=jayson[_0xf5f2('0xa')][_0xf5f2('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3133bc,_0x473100,_0x5907aa){return new BPromise(function(_0x466882,_0x46cd9c){return client[_0xf5f2('0xc')](_0x3133bc,_0x5907aa)['then'](function(_0x375da4){logger[_0xf5f2('0xd')](_0xf5f2('0xe'),_0x473100,'request\x20sent');logger[_0xf5f2('0xf')]('MailQueueReport,\x20%s,\x20%s,\x20%s',_0x473100,'request\x20sent',JSON[_0xf5f2('0x10')](_0x375da4));if(_0x375da4[_0xf5f2('0x11')]){if(_0x375da4['error'][_0xf5f2('0x12')]===0x1f4){logger[_0xf5f2('0x11')](_0xf5f2('0xe'),_0x473100,_0x375da4[_0xf5f2('0x11')][_0xf5f2('0x13')]);return _0x46cd9c(_0x375da4[_0xf5f2('0x11')]['message']);}logger[_0xf5f2('0x11')](_0xf5f2('0xe'),_0x473100,_0x375da4[_0xf5f2('0x11')][_0xf5f2('0x13')]);return _0x466882(_0x375da4[_0xf5f2('0x11')]['message']);}else{logger[_0xf5f2('0xd')](_0xf5f2('0xe'),_0x473100,_0xf5f2('0x14'));_0x466882(_0x375da4[_0xf5f2('0x15')][_0xf5f2('0x13')]);}})[_0xf5f2('0x16')](function(_0xdb61b3){logger[_0xf5f2('0x11')](_0xf5f2('0xe'),_0x473100,_0xdb61b3);_0x46cd9c(_0xdb61b3);});});}exports[_0xf5f2('0x17')]=function(_0x20fccd){var _0x28e097=this;return new Promise(function(_0x4ff59b,_0x3ee69){return db[_0xf5f2('0x18')][_0xf5f2('0x19')](_0x20fccd[_0xf5f2('0x1a')],{'raw':_0x20fccd['options']?_0x20fccd[_0xf5f2('0x1b')][_0xf5f2('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x47acfc){logger[_0xf5f2('0xd')](_0xf5f2('0x17'),_0x20fccd);logger['debug'](_0xf5f2('0x17'),_0x20fccd,JSON[_0xf5f2('0x10')](_0x47acfc));_0x4ff59b(_0x47acfc);})[_0xf5f2('0x16')](function(_0x39c024){logger[_0xf5f2('0x11')]('CreateMailQueueReport',_0x39c024[_0xf5f2('0x13')],_0x20fccd);_0x3ee69(_0x28e097[_0xf5f2('0x11')](0x1f4,_0x39c024[_0xf5f2('0x13')]));});});};exports[_0xf5f2('0x1d')]=function(_0x287ad5){var _0x5bdf4a=this;return new Promise(function(_0x529f07,_0x5f1124){return db[_0xf5f2('0x18')][_0xf5f2('0x1e')](_0x287ad5[_0xf5f2('0x1a')],{'raw':_0x287ad5[_0xf5f2('0x1b')]?_0x287ad5[_0xf5f2('0x1b')][_0xf5f2('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x287ad5[_0xf5f2('0x1b')]?_0x287ad5[_0xf5f2('0x1b')]['where']||null:null,'attributes':_0x287ad5[_0xf5f2('0x1b')]?_0x287ad5[_0xf5f2('0x1b')][_0xf5f2('0x1f')]||null:null,'limit':_0x287ad5[_0xf5f2('0x1b')]?_0x287ad5[_0xf5f2('0x1b')][_0xf5f2('0x20')]||null:null})['then'](function(_0x53cb96){logger[_0xf5f2('0xd')](_0xf5f2('0x1d'),_0x287ad5);logger[_0xf5f2('0xf')]('UpdateMailQueueReport',_0x287ad5,JSON['stringify'](_0x53cb96));_0x529f07(_0x53cb96);})[_0xf5f2('0x16')](function(_0x50b8a2){logger[_0xf5f2('0x11')](_0xf5f2('0x1d'),_0x50b8a2[_0xf5f2('0x13')],_0x287ad5);_0x5f1124(_0x5bdf4a['error'](0x1f4,_0x50b8a2['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x3460ff,_0xb5a91d){var _0x71b290=function(_0x363126){while(--_0x363126){_0x3460ff['push'](_0x3460ff['shift']());}};_0x71b290(++_0xb5a91d);}(_0x70e0,0x17b));var _0x070e=function(_0x4463c9,_0x34bc74){_0x4463c9=_0x4463c9-0x0;var _0x98ea=_0x70e0[_0x4463c9];return _0x98ea;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x5e3139,_0x5bad26){var _0x3cdf31=function(_0x51647e){while(--_0x51647e){_0x5e3139['push'](_0x5e3139['shift']());}};_0x3cdf31(++_0x5bad26);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2576d7,_0x167624){_0x2576d7=_0x2576d7-0x0;var _0x16a08c=_0xa9e0[_0x2576d7];return _0x16a08c;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae60=['sequelize','exports','STRING','BOOLEAN','INTEGER'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xae60,0x1c7));var _0x0ae6=function(_0x2aea9e,_0x1f587f){_0x2aea9e=_0x2aea9e-0x0;var _0x430b92=_0xae60[_0x2aea9e];return _0x430b92;};'use strict';var Sequelize=require(_0x0ae6('0x0'));module[_0x0ae6('0x1')]={'description':{'type':Sequelize[_0x0ae6('0x2')]},'host':{'type':Sequelize['STRING']},'authentication':{'type':Sequelize[_0x0ae6('0x3')],'defaultValue':!![]},'user':{'type':Sequelize[_0x0ae6('0x2')]},'password':{'type':Sequelize[_0x0ae6('0x2')]},'port':{'type':Sequelize['INTEGER']},'tls':{'type':Sequelize[_0x0ae6('0x3')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x0ae6('0x2')],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0x0ae6('0x4')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x0ae6('0x4')],'defaultValue':0x5},'service':{'type':Sequelize[_0x0ae6('0x2')]}};
\ No newline at end of file
+var _0xa74f=['BOOLEAN','INBOX','STRING','INTEGER'];(function(_0x5a6d79,_0x4aec84){var _0x103fc0=function(_0x2f4c10){while(--_0x2f4c10){_0x5a6d79['push'](_0x5a6d79['shift']());}};_0x103fc0(++_0x4aec84);}(_0xa74f,0x9a));var _0xfa74=function(_0x2867d8,_0xef3ee0){_0x2867d8=_0x2867d8-0x0;var _0x3b8176=_0xa74f[_0x2867d8];return _0x3b8176;};'use strict';var Sequelize=require('sequelize');module['exports']={'description':{'type':Sequelize[_0xfa74('0x0')]},'host':{'type':Sequelize['STRING']},'authentication':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'user':{'type':Sequelize[_0xfa74('0x0')]},'password':{'type':Sequelize[_0xfa74('0x0')]},'port':{'type':Sequelize[_0xfa74('0x1')]},'tls':{'type':Sequelize[_0xfa74('0x2')],'defaultValue':!![]},'mailbox':{'type':Sequelize['STRING'],'defaultValue':_0xfa74('0x3')},'connTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0xa},'authTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x5},'service':{'type':Sequelize[_0xfa74('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb51=['./mailServerIn.attributes','exports','define','mail_servers_in','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x1d9ee3,_0x4dc0ca){var _0x7cdbc4=function(_0x9b626){while(--_0x9b626){_0x1d9ee3['push'](_0x1d9ee3['shift']());}};_0x7cdbc4(++_0x4dc0ca);}(_0xcb51,0x1a8));var _0x1cb5=function(_0x2faddb,_0xc18b78){_0x2faddb=_0x2faddb-0x0;var _0x273c05=_0xcb51[_0x2faddb];return _0x273c05;};'use strict';var _=require(_0x1cb5('0x0'));var util=require('util');var logger=require(_0x1cb5('0x1'))(_0x1cb5('0x2'));var moment=require(_0x1cb5('0x3'));var BPromise=require(_0x1cb5('0x4'));var rp=require(_0x1cb5('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1cb5('0x6'));var config=require(_0x1cb5('0x7'));var attributes=require(_0x1cb5('0x8'));module[_0x1cb5('0x9')]=function(_0x5f4c1f,_0x5d0c65){return _0x5f4c1f[_0x1cb5('0xa')]('MailServerIn',attributes,{'tableName':_0x1cb5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xff6a=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','exports','MailServerIn','lodash'];(function(_0x4b81a2,_0x277d0e){var _0x25d4c4=function(_0x549ec2){while(--_0x549ec2){_0x4b81a2['push'](_0x4b81a2['shift']());}};_0x25d4c4(++_0x277d0e);}(_0xff6a,0xba));var _0xaff6=function(_0x4ff09b,_0x53f67d){_0x4ff09b=_0x4ff09b-0x0;var _0x3f5c2e=_0xff6a[_0x4ff09b];return _0x3f5c2e;};'use strict';var _=require(_0xaff6('0x0'));var util=require(_0xaff6('0x1'));var logger=require(_0xaff6('0x2'))(_0xaff6('0x3'));var moment=require('moment');var BPromise=require(_0xaff6('0x4'));var rp=require(_0xaff6('0x5'));var fs=require('fs');var path=require(_0xaff6('0x6'));var rimraf=require(_0xaff6('0x7'));var config=require(_0xaff6('0x8'));var attributes=require('./mailServerIn.attributes');module[_0xaff6('0x9')]=function(_0x3b263c,_0x1edbeb){return _0x3b263c['define'](_0xaff6('0xa'),attributes,{'tableName':'mail_servers_in','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe27e=['options','where','include','map','attributes','model','GetMailServerIn','stringify','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','info','MailServerIn,\x20%s,\x20%s','request\x20sent','debug','MailServerIn,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','findAll','raw'];(function(_0x16d10f,_0x2ba2d5){var _0x50c823=function(_0x44e43f){while(--_0x44e43f){_0x16d10f['push'](_0x16d10f['shift']());}};_0x50c823(++_0x2ba2d5);}(_0xe27e,0xa8));var _0xee27=function(_0x4914e2,_0x48be8f){_0x4914e2=_0x4914e2-0x0;var _0x2dcd07=_0xe27e[_0x4914e2];return _0x2dcd07;};'use strict';var _=require(_0xee27('0x0'));var util=require('util');var moment=require(_0xee27('0x1'));var BPromise=require(_0xee27('0x2'));var rs=require(_0xee27('0x3'));var fs=require('fs');var Redis=require(_0xee27('0x4'));var db=require(_0xee27('0x5'))['db'];var utils=require(_0xee27('0x6'));var logger=require(_0xee27('0x7'))(_0xee27('0x8'));var config=require('../../config/environment');var jayson=require(_0xee27('0x9'));var client=jayson[_0xee27('0xa')][_0xee27('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x199a2e,_0x4d16d6,_0x4df68b){return new BPromise(function(_0x5b97db,_0x472274){return client['request'](_0x199a2e,_0x4df68b)['then'](function(_0x4f0174){logger[_0xee27('0xc')](_0xee27('0xd'),_0x4d16d6,_0xee27('0xe'));logger[_0xee27('0xf')](_0xee27('0x10'),_0x4d16d6,_0xee27('0xe'),JSON['stringify'](_0x4f0174));if(_0x4f0174[_0xee27('0x11')]){if(_0x4f0174['error'][_0xee27('0x12')]===0x1f4){logger['error']('MailServerIn,\x20%s,\x20%s',_0x4d16d6,_0x4f0174[_0xee27('0x11')][_0xee27('0x13')]);return _0x472274(_0x4f0174[_0xee27('0x11')][_0xee27('0x13')]);}logger[_0xee27('0x11')](_0xee27('0xd'),_0x4d16d6,_0x4f0174[_0xee27('0x11')]['message']);return _0x5b97db(_0x4f0174[_0xee27('0x11')][_0xee27('0x13')]);}else{logger[_0xee27('0xc')](_0xee27('0xd'),_0x4d16d6,_0xee27('0xe'));_0x5b97db(_0x4f0174[_0xee27('0x14')][_0xee27('0x13')]);}})[_0xee27('0x15')](function(_0x218725){logger[_0xee27('0x11')](_0xee27('0xd'),_0x4d16d6,_0x218725);_0x472274(_0x218725);});});}exports['GetMailServerIn']=function(_0x4e1e6a){var _0x509358=this;return new Promise(function(_0x128b6d,_0x19cba3){return db['MailServerIn'][_0xee27('0x16')]({'raw':_0x4e1e6a['options']?_0x4e1e6a['options'][_0xee27('0x17')]===undefined?!![]:![]:!![],'where':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a['options'][_0xee27('0x19')]||null:null,'attributes':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a[_0xee27('0x18')]['attributes']||null:null,'limit':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a[_0xee27('0x18')]['limit']||null:null,'include':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a[_0xee27('0x18')][_0xee27('0x1a')]?_[_0xee27('0x1b')](_0x4e1e6a[_0xee27('0x18')][_0xee27('0x1a')],function(_0x4ae85f){return{'model':db[_0x4ae85f['model']],'as':_0x4ae85f['as'],'attributes':_0x4ae85f[_0xee27('0x1c')],'include':_0x4ae85f[_0xee27('0x1a')]?_[_0xee27('0x1b')](_0x4ae85f['include'],function(_0x314b12){return{'model':db[_0x314b12[_0xee27('0x1d')]],'as':_0x314b12['as'],'attributes':_0x314b12[_0xee27('0x1c')],'include':_0x314b12[_0xee27('0x1a')]?_[_0xee27('0x1b')](_0x314b12['include'],function(_0x4c87a5){return{'model':db[_0x4c87a5[_0xee27('0x1d')]],'as':_0x4c87a5['as'],'attributes':_0x4c87a5['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3ef660){logger[_0xee27('0xc')](_0xee27('0x1e'),_0x4e1e6a);logger[_0xee27('0xf')](_0xee27('0x1e'),_0x4e1e6a,JSON[_0xee27('0x1f')](_0x3ef660));_0x128b6d(_0x3ef660);})[_0xee27('0x15')](function(_0x36f635){logger['error'](_0xee27('0x1e'),_0x36f635['message'],_0x4e1e6a);_0x19cba3(_0x509358[_0xee27('0x11')](0x1f4,_0x36f635[_0xee27('0x13')]));});});};
\ No newline at end of file
+var _0x4c06=['client','http','request','then','request\x20sent','debug','MailServerIn,\x20%s,\x20%s,\x20%s','stringify','error','code','MailServerIn,\x20%s,\x20%s','message','info','result','catch','MailServerIn','findAll','options','raw','where','attributes','limit','include','map','model','GetMailServerIn','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc'];(function(_0x59d6a4,_0x4e0691){var _0x5cf660=function(_0x3451c6){while(--_0x3451c6){_0x59d6a4['push'](_0x59d6a4['shift']());}};_0x5cf660(++_0x4e0691);}(_0x4c06,0x9a));var _0x64c0=function(_0x21e034,_0x59fc14){_0x21e034=_0x21e034-0x0;var _0x1faab3=_0x4c06[_0x21e034];return _0x1faab3;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x64c0('0x0'));var rs=require(_0x64c0('0x1'));var fs=require('fs');var Redis=require(_0x64c0('0x2'));var db=require(_0x64c0('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x64c0('0x4'))(_0x64c0('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x64c0('0x6')][_0x64c0('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x2d8ba6,_0x47a21d,_0x311c86){return new BPromise(function(_0x36ec0d,_0x4a791b){return client[_0x64c0('0x8')](_0x2d8ba6,_0x311c86)[_0x64c0('0x9')](function(_0xa8a116){logger['info']('MailServerIn,\x20%s,\x20%s',_0x47a21d,_0x64c0('0xa'));logger[_0x64c0('0xb')](_0x64c0('0xc'),_0x47a21d,_0x64c0('0xa'),JSON[_0x64c0('0xd')](_0xa8a116));if(_0xa8a116[_0x64c0('0xe')]){if(_0xa8a116[_0x64c0('0xe')][_0x64c0('0xf')]===0x1f4){logger[_0x64c0('0xe')](_0x64c0('0x10'),_0x47a21d,_0xa8a116[_0x64c0('0xe')][_0x64c0('0x11')]);return _0x4a791b(_0xa8a116[_0x64c0('0xe')][_0x64c0('0x11')]);}logger[_0x64c0('0xe')](_0x64c0('0x10'),_0x47a21d,_0xa8a116['error'][_0x64c0('0x11')]);return _0x36ec0d(_0xa8a116[_0x64c0('0xe')][_0x64c0('0x11')]);}else{logger[_0x64c0('0x12')](_0x64c0('0x10'),_0x47a21d,'request\x20sent');_0x36ec0d(_0xa8a116[_0x64c0('0x13')][_0x64c0('0x11')]);}})[_0x64c0('0x14')](function(_0x23492c){logger[_0x64c0('0xe')](_0x64c0('0x10'),_0x47a21d,_0x23492c);_0x4a791b(_0x23492c);});});}exports['GetMailServerIn']=function(_0x47b0ab){var _0x2c62da=this;return new Promise(function(_0x2252e2,_0x421479){return db[_0x64c0('0x15')][_0x64c0('0x16')]({'raw':_0x47b0ab[_0x64c0('0x17')]?_0x47b0ab[_0x64c0('0x17')][_0x64c0('0x18')]===undefined?!![]:![]:!![],'where':_0x47b0ab[_0x64c0('0x17')]?_0x47b0ab[_0x64c0('0x17')][_0x64c0('0x19')]||null:null,'attributes':_0x47b0ab['options']?_0x47b0ab['options'][_0x64c0('0x1a')]||null:null,'limit':_0x47b0ab[_0x64c0('0x17')]?_0x47b0ab[_0x64c0('0x17')][_0x64c0('0x1b')]||null:null,'include':_0x47b0ab['options']?_0x47b0ab[_0x64c0('0x17')][_0x64c0('0x1c')]?_[_0x64c0('0x1d')](_0x47b0ab['options'][_0x64c0('0x1c')],function(_0x31317d){return{'model':db[_0x31317d['model']],'as':_0x31317d['as'],'attributes':_0x31317d[_0x64c0('0x1a')],'include':_0x31317d[_0x64c0('0x1c')]?_[_0x64c0('0x1d')](_0x31317d[_0x64c0('0x1c')],function(_0xcdb375){return{'model':db[_0xcdb375[_0x64c0('0x1e')]],'as':_0xcdb375['as'],'attributes':_0xcdb375['attributes'],'include':_0xcdb375[_0x64c0('0x1c')]?_[_0x64c0('0x1d')](_0xcdb375[_0x64c0('0x1c')],function(_0x523203){return{'model':db[_0x523203[_0x64c0('0x1e')]],'as':_0x523203['as'],'attributes':_0x523203[_0x64c0('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1551fd){logger[_0x64c0('0x12')](_0x64c0('0x1f'),_0x47b0ab);logger['debug'](_0x64c0('0x1f'),_0x47b0ab,JSON['stringify'](_0x1551fd));_0x2252e2(_0x1551fd);})['catch'](function(_0x511659){logger[_0x64c0('0xe')](_0x64c0('0x1f'),_0x511659[_0x64c0('0x11')],_0x47b0ab);_0x421479(_0x2c62da['error'](0x1f4,_0x511659['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['index','/:id','isAuthenticated','post','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailServerOut.controller','get'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0x7a54,0x106));var _0x47a5=function(_0x23c559,_0x23ced7){_0x23c559=_0x23c559-0x0;var _0x188a4b=_0x7a54[_0x23c559];return _0x188a4b;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['show']);router[_0x47a5('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['update']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);module[_0x47a5('0x10')]=router;
\ No newline at end of file
+var _0x7a54=['index','/:id','isAuthenticated','post','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailServerOut.controller','get'];(function(_0x4243a3,_0x447337){var _0x1b2a33=function(_0x6a8200){while(--_0x6a8200){_0x4243a3['push'](_0x4243a3['shift']());}};_0x1b2a33(++_0x447337);}(_0x7a54,0x106));var _0x47a5=function(_0x34ed5a,_0x588a98){_0x34ed5a=_0x34ed5a-0x0;var _0x3f7625=_0x7a54[_0x34ed5a];return _0x3f7625;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['show']);router[_0x47a5('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['update']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);module[_0x47a5('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaac2=['STRING','INTEGER','BOOLEAN','sequelize'];(function(_0x7d3e40,_0x2e6e6){var _0x5b011a=function(_0x50963f){while(--_0x50963f){_0x7d3e40['push'](_0x7d3e40['shift']());}};_0x5b011a(++_0x2e6e6);}(_0xaac2,0x1eb));var _0x2aac=function(_0xdabb70,_0x174caf){_0xdabb70=_0xdabb70-0x0;var _0x2f6ec3=_0xaac2[_0xdabb70];return _0x2f6ec3;};'use strict';var Sequelize=require(_0x2aac('0x0'));module['exports']={'description':{'type':Sequelize[_0x2aac('0x1')]},'host':{'type':Sequelize[_0x2aac('0x1')]},'user':{'type':Sequelize[_0x2aac('0x1')]},'pass':{'type':Sequelize[_0x2aac('0x1')]},'port':{'type':Sequelize[_0x2aac('0x2')]},'secure':{'type':Sequelize[_0x2aac('0x3')],'defaultValue':![]},'service':{'type':Sequelize[_0x2aac('0x1')]},'authentication':{'type':Sequelize[_0x2aac('0x3')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x4fbd=['BOOLEAN','sequelize','exports','STRING'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4fbd,0x121));var _0xd4fb=function(_0x575d3f,_0x3f2b42){_0x575d3f=_0x575d3f-0x0;var _0x47dfec=_0x4fbd[_0x575d3f];return _0x47dfec;};'use strict';var Sequelize=require(_0xd4fb('0x0'));module[_0xd4fb('0x1')]={'description':{'type':Sequelize[_0xd4fb('0x2')]},'host':{'type':Sequelize[_0xd4fb('0x2')]},'user':{'type':Sequelize[_0xd4fb('0x2')]},'pass':{'type':Sequelize[_0xd4fb('0x2')]},'port':{'type':Sequelize['INTEGER']},'secure':{'type':Sequelize[_0xd4fb('0x3')],'defaultValue':![]},'service':{'type':Sequelize[_0xd4fb('0x2')]},'authentication':{'type':Sequelize[_0xd4fb('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f7c=['keys','create','body','find','params','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','limit','undefined','count','offset','set','apply','update','destroy','then','error','stack','name','send','map','MailServerOut','rawAttributes','key','model','query','filters','attributes','intersection','fields','length','sort','where','filter','merge','type','options','include','findAll','rows','catch'];(function(_0x4e3a30,_0x257cd8){var _0x5b9365=function(_0xbe49b6){while(--_0xbe49b6){_0x4e3a30['push'](_0x4e3a30['shift']());}};_0x5b9365(++_0x257cd8);}(_0x9f7c,0x15e));var _0xc9f7=function(_0x3db1d8,_0x5e7740){_0x3db1d8=_0x3db1d8-0x0;var _0x1bd6d8=_0x9f7c[_0x3db1d8];return _0x1bd6d8;};'use strict';var emlformat=require(_0xc9f7('0x0'));var rimraf=require(_0xc9f7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc9f7('0x2'));var rp=require(_0xc9f7('0x3'));var moment=require(_0xc9f7('0x4'));var BPromise=require(_0xc9f7('0x5'));var Mustache=require(_0xc9f7('0x6'));var util=require(_0xc9f7('0x7'));var path=require(_0xc9f7('0x8'));var sox=require(_0xc9f7('0x9'));var csv=require(_0xc9f7('0xa'));var ejs=require(_0xc9f7('0xb'));var fs=require('fs');var fs_extra=require(_0xc9f7('0xc'));var _=require(_0xc9f7('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xc9f7('0xe'));var deskjs=require(_0xc9f7('0xf'));var toCsv=require(_0xc9f7('0xa'));var querystring=require(_0xc9f7('0x10'));var Papa=require(_0xc9f7('0x11'));var Redis=require(_0xc9f7('0x12'));var authService=require(_0xc9f7('0x13'));var qs=require(_0xc9f7('0x14'));var as=require(_0xc9f7('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc9f7('0x16'));var utils=require(_0xc9f7('0x17'));var config=require(_0xc9f7('0x18'));var licenseUtil=require(_0xc9f7('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b2882,_0x3b5194){_0x3b5194=_0x3b5194||0xcc;return function(_0x1e7aa5){if(_0x1e7aa5){return _0x2b2882[_0xc9f7('0x1a')](_0x3b5194);}return _0x2b2882[_0xc9f7('0x1b')](_0x3b5194)[_0xc9f7('0x1c')]();};}function respondWithResult(_0x59f8b2,_0xb835cb){_0xb835cb=_0xb835cb||0xc8;return function(_0x4b5bd7){if(_0x4b5bd7){return _0x59f8b2[_0xc9f7('0x1b')](_0xb835cb)[_0xc9f7('0x1d')](_0x4b5bd7);}};}function respondWithFilteredResult(_0x5f3f1b,_0x1fb637){return function(_0x42db3d){if(_0x42db3d){var _0xf1436c=typeof _0x1fb637['offset']==='undefined'&&typeof _0x1fb637[_0xc9f7('0x1e')]===_0xc9f7('0x1f');var _0x3abeb4=_0x42db3d[_0xc9f7('0x20')];var _0x3add1a=_0xf1436c?0x0:_0x1fb637[_0xc9f7('0x21')];var _0x41b0e6=_0xf1436c?_0x42db3d['count']:_0x1fb637['offset']+_0x1fb637['limit'];var _0x1f4e83;if(_0x41b0e6>=_0x3abeb4){_0x41b0e6=_0x3abeb4;_0x1f4e83=0xc8;}else{_0x1f4e83=0xce;}_0x5f3f1b[_0xc9f7('0x1b')](_0x1f4e83);return _0x5f3f1b[_0xc9f7('0x22')]('Content-Range',_0x3add1a+'-'+_0x41b0e6+'/'+_0x3abeb4)[_0xc9f7('0x1d')](_0x42db3d);}return null;};}function patchUpdates(_0x59d224){return function(_0x1d47a6){try{jsonpatch[_0xc9f7('0x23')](_0x1d47a6,_0x59d224,!![]);}catch(_0x38b808){return BPromise['reject'](_0x38b808);}return _0x1d47a6['save']();};}function saveUpdates(_0x2bccbd,_0x31abe8){return function(_0x21b154){if(_0x21b154){return _0x21b154[_0xc9f7('0x24')](_0x2bccbd)['then'](function(_0x81dc34){return _0x81dc34;});}return null;};}function removeEntity(_0x4a62f1,_0x5c9427){return function(_0x1e1dbf){if(_0x1e1dbf){return _0x1e1dbf[_0xc9f7('0x25')]()[_0xc9f7('0x26')](function(){_0x4a62f1['status'](0xcc)[_0xc9f7('0x1c')]();});}};}function handleEntityNotFound(_0x296ec0,_0x10b6a7){return function(_0xa36f5b){if(!_0xa36f5b){_0x296ec0['sendStatus'](0x194);}return _0xa36f5b;};}function handleError(_0x1783a4,_0x5e2525){_0x5e2525=_0x5e2525||0x1f4;return function(_0x31f90c){logger[_0xc9f7('0x27')](_0x31f90c[_0xc9f7('0x28')]);if(_0x31f90c[_0xc9f7('0x29')]){delete _0x31f90c[_0xc9f7('0x29')];}_0x1783a4[_0xc9f7('0x1b')](_0x5e2525)[_0xc9f7('0x2a')](_0x31f90c);};}exports['index']=function(_0x3fda68,_0x54d661){var _0x19be00={},_0x5e3759={},_0x3a1727={'count':0x0,'rows':[]};var _0x3f2109=_[_0xc9f7('0x2b')](db[_0xc9f7('0x2c')][_0xc9f7('0x2d')],function(_0x202612){return{'name':_0x202612['fieldName'],'type':_0x202612['type'][_0xc9f7('0x2e')]};});_0x5e3759[_0xc9f7('0x2f')]=_[_0xc9f7('0x2b')](_0x3f2109,_0xc9f7('0x29'));_0x5e3759['query']=_['keys'](_0x3fda68[_0xc9f7('0x30')]);_0x5e3759[_0xc9f7('0x31')]=_['intersection'](_0x5e3759[_0xc9f7('0x2f')],_0x5e3759['query']);_0x19be00[_0xc9f7('0x32')]=_[_0xc9f7('0x33')](_0x5e3759[_0xc9f7('0x2f')],qs['fields'](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x34')]));_0x19be00[_0xc9f7('0x32')]=_0x19be00[_0xc9f7('0x32')][_0xc9f7('0x35')]?_0x19be00[_0xc9f7('0x32')]:_0x5e3759[_0xc9f7('0x2f')];if(!_0x3fda68[_0xc9f7('0x30')]['hasOwnProperty']('nolimit')){_0x19be00[_0xc9f7('0x1e')]=qs[_0xc9f7('0x1e')](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x1e')]);_0x19be00['offset']=qs['offset'](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x21')]);}_0x19be00['order']=qs['sort'](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x36')]);_0x19be00[_0xc9f7('0x37')]=qs[_0xc9f7('0x31')](_['pick'](_0x3fda68[_0xc9f7('0x30')],_0x5e3759[_0xc9f7('0x31')]),_0x3f2109);if(_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x38')]){_0x19be00['where']=_[_0xc9f7('0x39')](_0x19be00[_0xc9f7('0x37')],{'$or':_[_0xc9f7('0x2b')](_0x3f2109,function(_0x3ed77c){if(_0x3ed77c[_0xc9f7('0x3a')]!=='VIRTUAL'){var _0x48d7a6={};_0x48d7a6[_0x3ed77c[_0xc9f7('0x29')]]={'$like':'%'+_0x3fda68['query'][_0xc9f7('0x38')]+'%'};return _0x48d7a6;}})});}_0x19be00=_[_0xc9f7('0x39')]({},_0x19be00,_0x3fda68[_0xc9f7('0x3b')]);var _0xd5f35b={'where':_0x19be00['where']};return db[_0xc9f7('0x2c')][_0xc9f7('0x20')](_0xd5f35b)[_0xc9f7('0x26')](function(_0x4bce36){_0x3a1727[_0xc9f7('0x20')]=_0x4bce36;if(_0x3fda68['query']['includeAll']){_0x19be00[_0xc9f7('0x3c')]=[{'all':!![]}];}return db['MailServerOut'][_0xc9f7('0x3d')](_0x19be00);})['then'](function(_0xf6b3e2){_0x3a1727[_0xc9f7('0x3e')]=_0xf6b3e2;return _0x3a1727;})['then'](respondWithFilteredResult(_0x54d661,_0x19be00))[_0xc9f7('0x3f')](handleError(_0x54d661,null));};exports['show']=function(_0x52efc7,_0x4ecf16){var _0x5da382={'raw':!![],'where':{'id':_0x52efc7['params']['id']}},_0x1323f9={};_0x1323f9[_0xc9f7('0x2f')]=_[_0xc9f7('0x40')](db[_0xc9f7('0x2c')]['rawAttributes']);_0x1323f9[_0xc9f7('0x30')]=_['keys'](_0x52efc7[_0xc9f7('0x30')]);_0x1323f9[_0xc9f7('0x31')]=_[_0xc9f7('0x33')](_0x1323f9[_0xc9f7('0x2f')],_0x1323f9[_0xc9f7('0x30')]);_0x5da382[_0xc9f7('0x32')]=_['intersection'](_0x1323f9[_0xc9f7('0x2f')],qs[_0xc9f7('0x34')](_0x52efc7[_0xc9f7('0x30')][_0xc9f7('0x34')]));_0x5da382['attributes']=_0x5da382[_0xc9f7('0x32')]['length']?_0x5da382[_0xc9f7('0x32')]:_0x1323f9[_0xc9f7('0x2f')];if(_0x52efc7['query']['includeAll']){_0x5da382[_0xc9f7('0x3c')]=[{'all':!![]}];}_0x5da382=_[_0xc9f7('0x39')]({},_0x5da382,_0x52efc7[_0xc9f7('0x3b')]);return db[_0xc9f7('0x2c')]['find'](_0x5da382)['then'](handleEntityNotFound(_0x4ecf16,null))[_0xc9f7('0x26')](respondWithResult(_0x4ecf16,null))[_0xc9f7('0x3f')](handleError(_0x4ecf16,null));};exports[_0xc9f7('0x41')]=function(_0x17304b,_0x16ae79){return db['MailServerOut'][_0xc9f7('0x41')](_0x17304b[_0xc9f7('0x42')],{})[_0xc9f7('0x26')](respondWithResult(_0x16ae79,0xc9))[_0xc9f7('0x3f')](handleError(_0x16ae79,null));};exports['update']=function(_0x53c92b,_0x16998d){if(_0x53c92b[_0xc9f7('0x42')]['id']){delete _0x53c92b[_0xc9f7('0x42')]['id'];}return db[_0xc9f7('0x2c')][_0xc9f7('0x43')]({'where':{'id':_0x53c92b[_0xc9f7('0x44')]['id']}})[_0xc9f7('0x26')](handleEntityNotFound(_0x16998d,null))['then'](saveUpdates(_0x53c92b[_0xc9f7('0x42')],null))[_0xc9f7('0x26')](respondWithResult(_0x16998d,null))[_0xc9f7('0x3f')](handleError(_0x16998d,null));};exports['destroy']=function(_0x5a7b0c,_0x39a9e0){return db['MailServerOut'][_0xc9f7('0x43')]({'where':{'id':_0x5a7b0c[_0xc9f7('0x44')]['id']}})[_0xc9f7('0x26')](handleEntityNotFound(_0x39a9e0,null))[_0xc9f7('0x26')](removeEntity(_0x39a9e0,null))['catch'](handleError(_0x39a9e0,null));};
\ No newline at end of file
+var _0x1470=['sort','where','filters','filter','merge','map','options','includeAll','include','MailServerOut','rows','catch','show','params','rawAttributes','find','create','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','undefined','limit','count','offset','set','reject','save','update','then','sendStatus','error','type','key','query','keys','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order'];(function(_0x57a4ee,_0x58b182){var _0x7cd7de=function(_0x3a06f1){while(--_0x3a06f1){_0x57a4ee['push'](_0x57a4ee['shift']());}};_0x7cd7de(++_0x58b182);}(_0x1470,0x98));var _0x0147=function(_0x5ec634,_0xa835b9){_0x5ec634=_0x5ec634-0x0;var _0x5b94a9=_0x1470[_0x5ec634];return _0x5b94a9;};'use strict';var emlformat=require(_0x0147('0x0'));var rimraf=require(_0x0147('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0147('0x2'));var rp=require('request-promise');var moment=require(_0x0147('0x3'));var BPromise=require(_0x0147('0x4'));var Mustache=require(_0x0147('0x5'));var util=require(_0x0147('0x6'));var path=require(_0x0147('0x7'));var sox=require(_0x0147('0x8'));var csv=require(_0x0147('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0147('0xa'));var _=require(_0x0147('0xb'));var squel=require(_0x0147('0xc'));var crypto=require(_0x0147('0xd'));var jsforce=require(_0x0147('0xe'));var deskjs=require(_0x0147('0xf'));var toCsv=require('to-csv');var querystring=require(_0x0147('0x10'));var Papa=require('papaparse');var Redis=require(_0x0147('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x0147('0x12'));var as=require(_0x0147('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0147('0x14'))(_0x0147('0x15'));var utils=require('../../config/utils');var config=require(_0x0147('0x16'));var licenseUtil=require(_0x0147('0x17'));var db=require(_0x0147('0x18'))['db'];function respondWithStatusCode(_0x29513f,_0x2e1b6f){_0x2e1b6f=_0x2e1b6f||0xcc;return function(_0x548117){if(_0x548117){return _0x29513f['sendStatus'](_0x2e1b6f);}return _0x29513f[_0x0147('0x19')](_0x2e1b6f)['end']();};}function respondWithResult(_0x39f395,_0x5b4920){_0x5b4920=_0x5b4920||0xc8;return function(_0x359210){if(_0x359210){return _0x39f395[_0x0147('0x19')](_0x5b4920)['json'](_0x359210);}};}function respondWithFilteredResult(_0x832c2b,_0x1c9fb7){return function(_0x2faa03){if(_0x2faa03){var _0x2adaae=typeof _0x1c9fb7['offset']===_0x0147('0x1a')&&typeof _0x1c9fb7[_0x0147('0x1b')]==='undefined';var _0x3f60e2=_0x2faa03[_0x0147('0x1c')];var _0x3c173a=_0x2adaae?0x0:_0x1c9fb7[_0x0147('0x1d')];var _0x323890=_0x2adaae?_0x2faa03[_0x0147('0x1c')]:_0x1c9fb7['offset']+_0x1c9fb7[_0x0147('0x1b')];var _0x32694;if(_0x323890>=_0x3f60e2){_0x323890=_0x3f60e2;_0x32694=0xc8;}else{_0x32694=0xce;}_0x832c2b[_0x0147('0x19')](_0x32694);return _0x832c2b[_0x0147('0x1e')]('Content-Range',_0x3c173a+'-'+_0x323890+'/'+_0x3f60e2)['json'](_0x2faa03);}return null;};}function patchUpdates(_0x1a330e){return function(_0x5df39e){try{jsonpatch['apply'](_0x5df39e,_0x1a330e,!![]);}catch(_0x24857a){return BPromise[_0x0147('0x1f')](_0x24857a);}return _0x5df39e[_0x0147('0x20')]();};}function saveUpdates(_0x372e23,_0xbf0361){return function(_0x2ece58){if(_0x2ece58){return _0x2ece58[_0x0147('0x21')](_0x372e23)['then'](function(_0x4e117d){return _0x4e117d;});}return null;};}function removeEntity(_0x4924f7,_0x4205a0){return function(_0x4f101b){if(_0x4f101b){return _0x4f101b['destroy']()[_0x0147('0x22')](function(){_0x4924f7[_0x0147('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd525f9,_0x1855c7){return function(_0x5b6701){if(!_0x5b6701){_0xd525f9[_0x0147('0x23')](0x194);}return _0x5b6701;};}function handleError(_0x112e1,_0x1b7ead){_0x1b7ead=_0x1b7ead||0x1f4;return function(_0x59a1e1){logger[_0x0147('0x24')](_0x59a1e1['stack']);if(_0x59a1e1['name']){delete _0x59a1e1['name'];}_0x112e1[_0x0147('0x19')](_0x1b7ead)['send'](_0x59a1e1);};}exports['index']=function(_0x55ceb6,_0x3ed1d1){var _0x55905a={},_0x296735={},_0x1fc878={'count':0x0,'rows':[]};var _0x143349=_['map'](db['MailServerOut']['rawAttributes'],function(_0xc1f634){return{'name':_0xc1f634['fieldName'],'type':_0xc1f634[_0x0147('0x25')][_0x0147('0x26')]};});_0x296735['model']=_['map'](_0x143349,'name');_0x296735[_0x0147('0x27')]=_[_0x0147('0x28')](_0x55ceb6[_0x0147('0x27')]);_0x296735['filters']=_['intersection'](_0x296735[_0x0147('0x29')],_0x296735[_0x0147('0x27')]);_0x55905a[_0x0147('0x2a')]=_[_0x0147('0x2b')](_0x296735[_0x0147('0x29')],qs['fields'](_0x55ceb6[_0x0147('0x27')][_0x0147('0x2c')]));_0x55905a['attributes']=_0x55905a[_0x0147('0x2a')][_0x0147('0x2d')]?_0x55905a[_0x0147('0x2a')]:_0x296735[_0x0147('0x29')];if(!_0x55ceb6[_0x0147('0x27')][_0x0147('0x2e')](_0x0147('0x2f'))){_0x55905a[_0x0147('0x1b')]=qs['limit'](_0x55ceb6[_0x0147('0x27')][_0x0147('0x1b')]);_0x55905a['offset']=qs[_0x0147('0x1d')](_0x55ceb6[_0x0147('0x27')][_0x0147('0x1d')]);}_0x55905a[_0x0147('0x30')]=qs['sort'](_0x55ceb6['query'][_0x0147('0x31')]);_0x55905a[_0x0147('0x32')]=qs[_0x0147('0x33')](_['pick'](_0x55ceb6[_0x0147('0x27')],_0x296735[_0x0147('0x33')]),_0x143349);if(_0x55ceb6['query'][_0x0147('0x34')]){_0x55905a[_0x0147('0x32')]=_[_0x0147('0x35')](_0x55905a[_0x0147('0x32')],{'$or':_[_0x0147('0x36')](_0x143349,function(_0x36a6e1){if(_0x36a6e1[_0x0147('0x25')]!=='VIRTUAL'){var _0x393afd={};_0x393afd[_0x36a6e1['name']]={'$like':'%'+_0x55ceb6[_0x0147('0x27')]['filter']+'%'};return _0x393afd;}})});}_0x55905a=_[_0x0147('0x35')]({},_0x55905a,_0x55ceb6[_0x0147('0x37')]);var _0x2f496e={'where':_0x55905a[_0x0147('0x32')]};return db['MailServerOut'][_0x0147('0x1c')](_0x2f496e)[_0x0147('0x22')](function(_0x41068b){_0x1fc878[_0x0147('0x1c')]=_0x41068b;if(_0x55ceb6['query'][_0x0147('0x38')]){_0x55905a[_0x0147('0x39')]=[{'all':!![]}];}return db[_0x0147('0x3a')]['findAll'](_0x55905a);})[_0x0147('0x22')](function(_0x3f90ed){_0x1fc878[_0x0147('0x3b')]=_0x3f90ed;return _0x1fc878;})[_0x0147('0x22')](respondWithFilteredResult(_0x3ed1d1,_0x55905a))[_0x0147('0x3c')](handleError(_0x3ed1d1,null));};exports[_0x0147('0x3d')]=function(_0x5aa6f1,_0x306f31){var _0x2acf5b={'raw':!![],'where':{'id':_0x5aa6f1[_0x0147('0x3e')]['id']}},_0x182dec={};_0x182dec[_0x0147('0x29')]=_[_0x0147('0x28')](db[_0x0147('0x3a')][_0x0147('0x3f')]);_0x182dec[_0x0147('0x27')]=_['keys'](_0x5aa6f1[_0x0147('0x27')]);_0x182dec[_0x0147('0x33')]=_[_0x0147('0x2b')](_0x182dec[_0x0147('0x29')],_0x182dec['query']);_0x2acf5b[_0x0147('0x2a')]=_[_0x0147('0x2b')](_0x182dec[_0x0147('0x29')],qs[_0x0147('0x2c')](_0x5aa6f1[_0x0147('0x27')][_0x0147('0x2c')]));_0x2acf5b[_0x0147('0x2a')]=_0x2acf5b['attributes'][_0x0147('0x2d')]?_0x2acf5b[_0x0147('0x2a')]:_0x182dec[_0x0147('0x29')];if(_0x5aa6f1[_0x0147('0x27')][_0x0147('0x38')]){_0x2acf5b['include']=[{'all':!![]}];}_0x2acf5b=_[_0x0147('0x35')]({},_0x2acf5b,_0x5aa6f1[_0x0147('0x37')]);return db['MailServerOut'][_0x0147('0x40')](_0x2acf5b)['then'](handleEntityNotFound(_0x306f31,null))['then'](respondWithResult(_0x306f31,null))['catch'](handleError(_0x306f31,null));};exports[_0x0147('0x41')]=function(_0x33d632,_0x30a64c){return db[_0x0147('0x3a')][_0x0147('0x41')](_0x33d632['body'],{})[_0x0147('0x22')](respondWithResult(_0x30a64c,0xc9))['catch'](handleError(_0x30a64c,null));};exports['update']=function(_0x83895e,_0x4c8da9){if(_0x83895e[_0x0147('0x42')]['id']){delete _0x83895e[_0x0147('0x42')]['id'];}return db[_0x0147('0x3a')][_0x0147('0x40')]({'where':{'id':_0x83895e[_0x0147('0x3e')]['id']}})['then'](handleEntityNotFound(_0x4c8da9,null))[_0x0147('0x22')](saveUpdates(_0x83895e[_0x0147('0x42')],null))['then'](respondWithResult(_0x4c8da9,null))['catch'](handleError(_0x4c8da9,null));};exports['destroy']=function(_0x15b553,_0xef13f){return db[_0x0147('0x3a')]['find']({'where':{'id':_0x15b553['params']['id']}})[_0x0147('0x22')](handleEntityNotFound(_0xef13f,null))['then'](removeEntity(_0xef13f,null))[_0x0147('0x3c')](handleError(_0xef13f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ecc=['path','rimraf','../../config/environment','./mailServerOut.attributes','exports','MailServerOut','mail_servers_out','lodash','../../config/logger','api','bluebird'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0ecc,0x75));var _0xc0ec=function(_0x110577,_0x171475){_0x110577=_0x110577-0x0;var _0x4a29ef=_0x0ecc[_0x110577];return _0x4a29ef;};'use strict';var _=require(_0xc0ec('0x0'));var util=require('util');var logger=require(_0xc0ec('0x1'))(_0xc0ec('0x2'));var moment=require('moment');var BPromise=require(_0xc0ec('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc0ec('0x4'));var rimraf=require(_0xc0ec('0x5'));var config=require(_0xc0ec('0x6'));var attributes=require(_0xc0ec('0x7'));module[_0xc0ec('0x8')]=function(_0x20220e,_0x1205d5){return _0x20220e['define'](_0xc0ec('0x9'),attributes,{'tableName':_0xc0ec('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x969c=['MailServerOut','mail_servers_out','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailServerOut.attributes','exports','define'];(function(_0x5d28d,_0x509631){var _0x4d52a6=function(_0x5506a2){while(--_0x5506a2){_0x5d28d['push'](_0x5d28d['shift']());}};_0x4d52a6(++_0x509631);}(_0x969c,0x72));var _0xc969=function(_0x589d9a,_0x1b221c){_0x589d9a=_0x589d9a-0x0;var _0x28a34e=_0x969c[_0x589d9a];return _0x28a34e;};'use strict';var _=require('lodash');var util=require(_0xc969('0x0'));var logger=require(_0xc969('0x1'))(_0xc969('0x2'));var moment=require(_0xc969('0x3'));var BPromise=require(_0xc969('0x4'));var rp=require(_0xc969('0x5'));var fs=require('fs');var path=require(_0xc969('0x6'));var rimraf=require(_0xc969('0x7'));var config=require(_0xc969('0x8'));var attributes=require(_0xc969('0x9'));module[_0xc969('0xa')]=function(_0x3a9932,_0x1d0e2f){return _0x3a9932[_0xc969('0xb')](_0xc969('0xc'),attributes,{'tableName':_0xc969('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['info','MailServerOut,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x7a54,0x106));var _0x47a5=function(_0x4d5f2d,_0x4fc3fc){_0x4d5f2d=_0x4d5f2d-0x0;var _0x56ba73=_0x7a54[_0x4d5f2d];return _0x56ba73;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('MailServerOut,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}
\ No newline at end of file
+var _0x1261=['then','info','MailServerOut,\x20%s,\x20%s','request\x20sent','MailServerOut,\x20%s,\x20%s,\x20%s','error','code','message','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request'];(function(_0x1694f1,_0x1d8dac){var _0x5b73e1=function(_0x3218f1){while(--_0x3218f1){_0x1694f1['push'](_0x1694f1['shift']());}};_0x5b73e1(++_0x1d8dac);}(_0x1261,0x144));var _0x1126=function(_0x3e8930,_0x154364){_0x3e8930=_0x3e8930-0x0;var _0x15b38f=_0x1261[_0x3e8930];return _0x15b38f;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var moment=require(_0x1126('0x1'));var BPromise=require(_0x1126('0x2'));var rs=require(_0x1126('0x3'));var fs=require('fs');var Redis=require(_0x1126('0x4'));var db=require(_0x1126('0x5'))['db'];var utils=require(_0x1126('0x6'));var logger=require(_0x1126('0x7'))(_0x1126('0x8'));var config=require(_0x1126('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1126('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x907180,_0x4f239c,_0x17e5f0){return new BPromise(function(_0x28772d,_0x245be9){return client[_0x1126('0xb')](_0x907180,_0x17e5f0)[_0x1126('0xc')](function(_0x59cfa1){logger[_0x1126('0xd')](_0x1126('0xe'),_0x4f239c,_0x1126('0xf'));logger['debug'](_0x1126('0x10'),_0x4f239c,'request\x20sent',JSON['stringify'](_0x59cfa1));if(_0x59cfa1[_0x1126('0x11')]){if(_0x59cfa1['error'][_0x1126('0x12')]===0x1f4){logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);return _0x245be9(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1['error']['message']);return _0x28772d(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}else{logger[_0x1126('0xd')]('MailServerOut,\x20%s,\x20%s',_0x4f239c,_0x1126('0xf'));_0x28772d(_0x59cfa1['result'][_0x1126('0x13')]);}})[_0x1126('0x14')](function(_0x257b5f){logger['error'](_0x1126('0xe'),_0x4f239c,_0x257b5f);_0x245be9(_0x257b5f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x169a=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailSubstatus.controller','index','get','/describe','describe','/:id','show','isAuthenticated','create','put','destroy','exports','multer','util'];(function(_0x47d821,_0x12a6de){var _0x1e3f61=function(_0x11a51b){while(--_0x11a51b){_0x47d821['push'](_0x47d821['shift']());}};_0x1e3f61(++_0x12a6de);}(_0x169a,0x1b7));var _0xa169=function(_0x2e8971,_0x4933b6){_0x2e8971=_0x2e8971-0x0;var _0x114f83=_0x169a[_0x2e8971];return _0x114f83;};'use strict';var multer=require(_0xa169('0x0'));var util=require(_0xa169('0x1'));var path=require(_0xa169('0x2'));var timeout=require(_0xa169('0x3'));var express=require(_0xa169('0x4'));var router=express[_0xa169('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xa169('0x6'));var interaction=require(_0xa169('0x7'));var config=require(_0xa169('0x8'));var controller=require(_0xa169('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0xa169('0xa')]);router[_0xa169('0xb')](_0xa169('0xc'),auth['isAuthenticated'](),controller[_0xa169('0xd')]);router[_0xa169('0xb')](_0xa169('0xe'),auth['isAuthenticated'](),controller[_0xa169('0xf')]);router['post']('/',auth[_0xa169('0x10')](),controller[_0xa169('0x11')]);router[_0xa169('0x12')](_0xa169('0xe'),auth[_0xa169('0x10')](),controller['update']);router['delete'](_0xa169('0xe'),auth[_0xa169('0x10')](),controller[_0xa169('0x13')]);module[_0xa169('0x14')]=router;
\ No newline at end of file
+var _0xdcd7=['post','create','put','update','delete','exports','util','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailSubstatus.controller','get','isAuthenticated','index','/describe'];(function(_0x9d90f,_0x4782a1){var _0x246e52=function(_0x154f26){while(--_0x154f26){_0x9d90f['push'](_0x9d90f['shift']());}};_0x246e52(++_0x4782a1);}(_0xdcd7,0x66));var _0x7dcd=function(_0x1113d9,_0x52cd99){_0x1113d9=_0x1113d9-0x0;var _0x4a5aa2=_0xdcd7[_0x1113d9];return _0x4a5aa2;};'use strict';var multer=require('multer');var util=require(_0x7dcd('0x0'));var path=require('path');var timeout=require(_0x7dcd('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x7dcd('0x2'));var interaction=require(_0x7dcd('0x3'));var config=require(_0x7dcd('0x4'));var controller=require(_0x7dcd('0x5'));router[_0x7dcd('0x6')]('/',auth[_0x7dcd('0x7')](),controller[_0x7dcd('0x8')]);router[_0x7dcd('0x6')](_0x7dcd('0x9'),auth[_0x7dcd('0x7')](),controller['describe']);router[_0x7dcd('0x6')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x7dcd('0xa')]('/',auth[_0x7dcd('0x7')](),controller[_0x7dcd('0xb')]);router[_0x7dcd('0xc')]('/:id',auth[_0x7dcd('0x7')](),controller[_0x7dcd('0xd')]);router[_0x7dcd('0xe')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x7dcd('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3da=['name','sequelize','exports','STRING'];(function(_0x545153,_0x4cb575){var _0x370f6b=function(_0x159c36){while(--_0x159c36){_0x545153['push'](_0x545153['shift']());}};_0x370f6b(++_0x4cb575);}(_0xe3da,0x1cd));var _0xae3d=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xe3da[_0x40a045];return _0x1a687c;};'use strict';var Sequelize=require(_0xae3d('0x0'));module[_0xae3d('0x1')]={'name':{'type':Sequelize[_0xae3d('0x2')],'unique':_0xae3d('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xae3d('0x2')]}};
\ No newline at end of file
+var _0x9bd9=['sequelize','exports','STRING','name'];(function(_0x3ad7e5,_0x36ece7){var _0x37bf2b=function(_0x165b96){while(--_0x165b96){_0x3ad7e5['push'](_0x3ad7e5['shift']());}};_0x37bf2b(++_0x36ece7);}(_0x9bd9,0x1a4));var _0x99bd=function(_0xae7883,_0xabf9c8){_0xae7883=_0xae7883-0x0;var _0xd55326=_0x9bd9[_0xae7883];return _0xd55326;};'use strict';var Sequelize=require(_0x99bd('0x0'));module[_0x99bd('0x1')]={'name':{'type':Sequelize[_0x99bd('0x2')],'unique':_0x99bd('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x99bd('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb43=['rows','show','find','catch','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../config/logger','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','limit','count','set','apply','reject','update','then','destroy','error','stack','name','send','index','map','MailSubstatus','rawAttributes','fieldName','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','merge','options','includeAll','include','findAll'];(function(_0x363887,_0x4f5e81){var _0x3dbf=function(_0x35a9b2){while(--_0x35a9b2){_0x363887['push'](_0x363887['shift']());}};_0x3dbf(++_0x4f5e81);}(_0xdb43,0x9e));var _0x3db4=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0xdb43[_0x1ccdf7];return _0x52a0ae;};'use strict';var emlformat=require(_0x3db4('0x0'));var rimraf=require(_0x3db4('0x1'));var zipdir=require(_0x3db4('0x2'));var jsonpatch=require(_0x3db4('0x3'));var rp=require(_0x3db4('0x4'));var moment=require(_0x3db4('0x5'));var BPromise=require(_0x3db4('0x6'));var Mustache=require('mustache');var util=require(_0x3db4('0x7'));var path=require(_0x3db4('0x8'));var sox=require(_0x3db4('0x9'));var csv=require(_0x3db4('0xa'));var ejs=require(_0x3db4('0xb'));var fs=require('fs');var fs_extra=require(_0x3db4('0xc'));var _=require(_0x3db4('0xd'));var squel=require(_0x3db4('0xe'));var crypto=require(_0x3db4('0xf'));var jsforce=require(_0x3db4('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3db4('0x11'));var Papa=require(_0x3db4('0x12'));var Redis=require(_0x3db4('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x3db4('0x14'))('api');var utils=require(_0x3db4('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x3db4('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x243954,_0x1f5c8e){_0x1f5c8e=_0x1f5c8e||0xcc;return function(_0x4b7a4b){if(_0x4b7a4b){return _0x243954[_0x3db4('0x17')](_0x1f5c8e);}return _0x243954[_0x3db4('0x18')](_0x1f5c8e)[_0x3db4('0x19')]();};}function respondWithResult(_0x344939,_0x2d8131){_0x2d8131=_0x2d8131||0xc8;return function(_0x210dc7){if(_0x210dc7){return _0x344939[_0x3db4('0x18')](_0x2d8131)[_0x3db4('0x1a')](_0x210dc7);}};}function respondWithFilteredResult(_0x480dd8,_0x1a4e86){return function(_0x1c27ec){if(_0x1c27ec){var _0x4e68cf=typeof _0x1a4e86[_0x3db4('0x1b')]==='undefined'&&typeof _0x1a4e86[_0x3db4('0x1c')]==='undefined';var _0x146ed3=_0x1c27ec['count'];var _0x3f537d=_0x4e68cf?0x0:_0x1a4e86[_0x3db4('0x1b')];var _0xd326be=_0x4e68cf?_0x1c27ec[_0x3db4('0x1d')]:_0x1a4e86[_0x3db4('0x1b')]+_0x1a4e86[_0x3db4('0x1c')];var _0x1a3059;if(_0xd326be>=_0x146ed3){_0xd326be=_0x146ed3;_0x1a3059=0xc8;}else{_0x1a3059=0xce;}_0x480dd8['status'](_0x1a3059);return _0x480dd8[_0x3db4('0x1e')]('Content-Range',_0x3f537d+'-'+_0xd326be+'/'+_0x146ed3)[_0x3db4('0x1a')](_0x1c27ec);}return null;};}function patchUpdates(_0x2b37dc){return function(_0x4abb4b){try{jsonpatch[_0x3db4('0x1f')](_0x4abb4b,_0x2b37dc,!![]);}catch(_0xd1d426){return BPromise[_0x3db4('0x20')](_0xd1d426);}return _0x4abb4b['save']();};}function saveUpdates(_0x582af0,_0x199d43){return function(_0x589c33){if(_0x589c33){return _0x589c33[_0x3db4('0x21')](_0x582af0)[_0x3db4('0x22')](function(_0x2cdd7d){return _0x2cdd7d;});}return null;};}function removeEntity(_0x243651,_0x26ad61){return function(_0x129758){if(_0x129758){return _0x129758[_0x3db4('0x23')]()[_0x3db4('0x22')](function(){_0x243651[_0x3db4('0x18')](0xcc)[_0x3db4('0x19')]();});}};}function handleEntityNotFound(_0x4b606c,_0x3b1e2d){return function(_0xaf6653){if(!_0xaf6653){_0x4b606c['sendStatus'](0x194);}return _0xaf6653;};}function handleError(_0x1c2012,_0x1ce22e){_0x1ce22e=_0x1ce22e||0x1f4;return function(_0x5cd79e){logger[_0x3db4('0x24')](_0x5cd79e[_0x3db4('0x25')]);if(_0x5cd79e[_0x3db4('0x26')]){delete _0x5cd79e[_0x3db4('0x26')];}_0x1c2012[_0x3db4('0x18')](_0x1ce22e)[_0x3db4('0x27')](_0x5cd79e);};}exports[_0x3db4('0x28')]=function(_0x4d4224,_0x81421f){var _0x161f04={},_0x42166b={},_0x3a9a99={'count':0x0,'rows':[]};var _0x23156d=_[_0x3db4('0x29')](db[_0x3db4('0x2a')][_0x3db4('0x2b')],function(_0xd8e899){return{'name':_0xd8e899[_0x3db4('0x2c')],'type':_0xd8e899['type'][_0x3db4('0x2d')]};});_0x42166b[_0x3db4('0x2e')]=_[_0x3db4('0x29')](_0x23156d,_0x3db4('0x26'));_0x42166b['query']=_[_0x3db4('0x2f')](_0x4d4224[_0x3db4('0x30')]);_0x42166b[_0x3db4('0x31')]=_[_0x3db4('0x32')](_0x42166b[_0x3db4('0x2e')],_0x42166b[_0x3db4('0x30')]);_0x161f04['attributes']=_['intersection'](_0x42166b[_0x3db4('0x2e')],qs[_0x3db4('0x33')](_0x4d4224[_0x3db4('0x30')]['fields']));_0x161f04[_0x3db4('0x34')]=_0x161f04[_0x3db4('0x34')][_0x3db4('0x35')]?_0x161f04[_0x3db4('0x34')]:_0x42166b[_0x3db4('0x2e')];if(!_0x4d4224[_0x3db4('0x30')][_0x3db4('0x36')](_0x3db4('0x37'))){_0x161f04[_0x3db4('0x1c')]=qs['limit'](_0x4d4224[_0x3db4('0x30')][_0x3db4('0x1c')]);_0x161f04[_0x3db4('0x1b')]=qs[_0x3db4('0x1b')](_0x4d4224[_0x3db4('0x30')][_0x3db4('0x1b')]);}_0x161f04[_0x3db4('0x38')]=qs[_0x3db4('0x39')](_0x4d4224[_0x3db4('0x30')][_0x3db4('0x39')]);_0x161f04[_0x3db4('0x3a')]=qs[_0x3db4('0x31')](_[_0x3db4('0x3b')](_0x4d4224[_0x3db4('0x30')],_0x42166b[_0x3db4('0x31')]),_0x23156d);if(_0x4d4224[_0x3db4('0x30')][_0x3db4('0x3c')]){_0x161f04[_0x3db4('0x3a')]=_['merge'](_0x161f04[_0x3db4('0x3a')],{'$or':_[_0x3db4('0x29')](_0x23156d,function(_0x2c82bd){if(_0x2c82bd[_0x3db4('0x3d')]!=='VIRTUAL'){var _0x30e7e7={};_0x30e7e7[_0x2c82bd[_0x3db4('0x26')]]={'$like':'%'+_0x4d4224[_0x3db4('0x30')]['filter']+'%'};return _0x30e7e7;}})});}_0x161f04=_[_0x3db4('0x3e')]({},_0x161f04,_0x4d4224[_0x3db4('0x3f')]);var _0xc21489={'where':_0x161f04[_0x3db4('0x3a')]};return db['MailSubstatus']['count'](_0xc21489)[_0x3db4('0x22')](function(_0x44a762){_0x3a9a99[_0x3db4('0x1d')]=_0x44a762;if(_0x4d4224[_0x3db4('0x30')][_0x3db4('0x40')]){_0x161f04[_0x3db4('0x41')]=[{'all':!![]}];}return db[_0x3db4('0x2a')][_0x3db4('0x42')](_0x161f04);})[_0x3db4('0x22')](function(_0x1fc246){_0x3a9a99[_0x3db4('0x43')]=_0x1fc246;return _0x3a9a99;})[_0x3db4('0x22')](respondWithFilteredResult(_0x81421f,_0x161f04))['catch'](handleError(_0x81421f,null));};exports[_0x3db4('0x44')]=function(_0x500f1f,_0x348479){var _0x59f8a4={'raw':!![],'where':{'id':_0x500f1f['params']['id']}},_0x2a36eb={};_0x2a36eb[_0x3db4('0x2e')]=_['keys'](db[_0x3db4('0x2a')][_0x3db4('0x2b')]);_0x2a36eb['query']=_['keys'](_0x500f1f['query']);_0x2a36eb['filters']=_[_0x3db4('0x32')](_0x2a36eb[_0x3db4('0x2e')],_0x2a36eb[_0x3db4('0x30')]);_0x59f8a4[_0x3db4('0x34')]=_['intersection'](_0x2a36eb[_0x3db4('0x2e')],qs[_0x3db4('0x33')](_0x500f1f[_0x3db4('0x30')][_0x3db4('0x33')]));_0x59f8a4[_0x3db4('0x34')]=_0x59f8a4[_0x3db4('0x34')][_0x3db4('0x35')]?_0x59f8a4['attributes']:_0x2a36eb[_0x3db4('0x2e')];if(_0x500f1f[_0x3db4('0x30')]['includeAll']){_0x59f8a4[_0x3db4('0x41')]=[{'all':!![]}];}_0x59f8a4=_[_0x3db4('0x3e')]({},_0x59f8a4,_0x500f1f[_0x3db4('0x3f')]);return db[_0x3db4('0x2a')][_0x3db4('0x45')](_0x59f8a4)[_0x3db4('0x22')](handleEntityNotFound(_0x348479,null))[_0x3db4('0x22')](respondWithResult(_0x348479,null))[_0x3db4('0x46')](handleError(_0x348479,null));};exports[_0x3db4('0x47')]=function(_0x59d031,_0x1d3ad8){return db['MailSubstatus'][_0x3db4('0x47')](_0x59d031[_0x3db4('0x48')],{})[_0x3db4('0x22')](respondWithResult(_0x1d3ad8,0xc9))[_0x3db4('0x46')](handleError(_0x1d3ad8,null));};exports[_0x3db4('0x21')]=function(_0xbadbd8,_0x11049e){if(_0xbadbd8[_0x3db4('0x48')]['id']){delete _0xbadbd8['body']['id'];}return db[_0x3db4('0x2a')][_0x3db4('0x45')]({'where':{'id':_0xbadbd8['params']['id']}})[_0x3db4('0x22')](handleEntityNotFound(_0x11049e,null))[_0x3db4('0x22')](saveUpdates(_0xbadbd8[_0x3db4('0x48')],null))[_0x3db4('0x22')](respondWithResult(_0x11049e,null))[_0x3db4('0x46')](handleError(_0x11049e,null));};exports[_0x3db4('0x23')]=function(_0xc2312e,_0x3b1b08){return db[_0x3db4('0x2a')][_0x3db4('0x45')]({'where':{'id':_0xc2312e[_0x3db4('0x49')]['id']}})[_0x3db4('0x22')](handleEntityNotFound(_0x3b1b08,null))[_0x3db4('0x22')](removeEntity(_0x3b1b08,null))[_0x3db4('0x46')](handleError(_0x3b1b08,null));};exports[_0x3db4('0x4a')]=function(_0x21bede,_0x202f62){return db[_0x3db4('0x2a')]['describe']()[_0x3db4('0x22')](respondWithResult(_0x202f62,null))[_0x3db4('0x46')](handleError(_0x202f62,null));};
\ No newline at end of file
+var _0xa6f8=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','findAll','rows','catch','show','params','keys','options','find','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','count','limit','set','apply','reject','save','destroy','then','error','name','send','map','MailSubstatus','rawAttributes','fieldName','model','query','filters','intersection'];(function(_0xb9d885,_0x39f6b1){var _0x3a8b31=function(_0x2532b6){while(--_0x2532b6){_0xb9d885['push'](_0xb9d885['shift']());}};_0x3a8b31(++_0x39f6b1);}(_0xa6f8,0x130));var _0x8a6f=function(_0x445b7e,_0x3ea85f){_0x445b7e=_0x445b7e-0x0;var _0x17d997=_0xa6f8[_0x445b7e];return _0x17d997;};'use strict';var emlformat=require(_0x8a6f('0x0'));var rimraf=require(_0x8a6f('0x1'));var zipdir=require(_0x8a6f('0x2'));var jsonpatch=require(_0x8a6f('0x3'));var rp=require(_0x8a6f('0x4'));var moment=require('moment');var BPromise=require(_0x8a6f('0x5'));var Mustache=require(_0x8a6f('0x6'));var util=require(_0x8a6f('0x7'));var path=require(_0x8a6f('0x8'));var sox=require('sox');var csv=require(_0x8a6f('0x9'));var ejs=require(_0x8a6f('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8a6f('0xb'));var squel=require(_0x8a6f('0xc'));var crypto=require('crypto');var jsforce=require(_0x8a6f('0xd'));var deskjs=require(_0x8a6f('0xe'));var toCsv=require(_0x8a6f('0x9'));var querystring=require('querystring');var Papa=require(_0x8a6f('0xf'));var Redis=require('ioredis');var authService=require(_0x8a6f('0x10'));var qs=require(_0x8a6f('0x11'));var as=require(_0x8a6f('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8a6f('0x13'));var utils=require(_0x8a6f('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x8a6f('0x15'));var db=require(_0x8a6f('0x16'))['db'];function respondWithStatusCode(_0x340b37,_0x420da1){_0x420da1=_0x420da1||0xcc;return function(_0x288123){if(_0x288123){return _0x340b37[_0x8a6f('0x17')](_0x420da1);}return _0x340b37[_0x8a6f('0x18')](_0x420da1)['end']();};}function respondWithResult(_0x3df783,_0xce3fc8){_0xce3fc8=_0xce3fc8||0xc8;return function(_0x58eed7){if(_0x58eed7){return _0x3df783['status'](_0xce3fc8)[_0x8a6f('0x19')](_0x58eed7);}};}function respondWithFilteredResult(_0x5ec7c7,_0x69fe5b){return function(_0x118dd0){if(_0x118dd0){var _0x506f3e=typeof _0x69fe5b[_0x8a6f('0x1a')]==='undefined'&&typeof _0x69fe5b['limit']==='undefined';var _0x209a0b=_0x118dd0[_0x8a6f('0x1b')];var _0x4b2bb8=_0x506f3e?0x0:_0x69fe5b[_0x8a6f('0x1a')];var _0x28636a=_0x506f3e?_0x118dd0[_0x8a6f('0x1b')]:_0x69fe5b[_0x8a6f('0x1a')]+_0x69fe5b[_0x8a6f('0x1c')];var _0x3502a7;if(_0x28636a>=_0x209a0b){_0x28636a=_0x209a0b;_0x3502a7=0xc8;}else{_0x3502a7=0xce;}_0x5ec7c7[_0x8a6f('0x18')](_0x3502a7);return _0x5ec7c7[_0x8a6f('0x1d')]('Content-Range',_0x4b2bb8+'-'+_0x28636a+'/'+_0x209a0b)[_0x8a6f('0x19')](_0x118dd0);}return null;};}function patchUpdates(_0x215e91){return function(_0xf7a4f7){try{jsonpatch[_0x8a6f('0x1e')](_0xf7a4f7,_0x215e91,!![]);}catch(_0x309f04){return BPromise[_0x8a6f('0x1f')](_0x309f04);}return _0xf7a4f7[_0x8a6f('0x20')]();};}function saveUpdates(_0x192796,_0x1db056){return function(_0x4ac7d1){if(_0x4ac7d1){return _0x4ac7d1['update'](_0x192796)['then'](function(_0x353732){return _0x353732;});}return null;};}function removeEntity(_0x1050e5,_0x378b0c){return function(_0x2fba29){if(_0x2fba29){return _0x2fba29[_0x8a6f('0x21')]()[_0x8a6f('0x22')](function(){_0x1050e5['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xa03b79,_0x19bd1c){return function(_0x1cdd1c){if(!_0x1cdd1c){_0xa03b79[_0x8a6f('0x17')](0x194);}return _0x1cdd1c;};}function handleError(_0x1443f1,_0x5d1660){_0x5d1660=_0x5d1660||0x1f4;return function(_0x429e32){logger[_0x8a6f('0x23')](_0x429e32['stack']);if(_0x429e32['name']){delete _0x429e32[_0x8a6f('0x24')];}_0x1443f1[_0x8a6f('0x18')](_0x5d1660)[_0x8a6f('0x25')](_0x429e32);};}exports['index']=function(_0x223272,_0x585858){var _0x2b9533={},_0x31cd95={},_0x265cb8={'count':0x0,'rows':[]};var _0x368ae0=_[_0x8a6f('0x26')](db[_0x8a6f('0x27')][_0x8a6f('0x28')],function(_0x3b9e28){return{'name':_0x3b9e28[_0x8a6f('0x29')],'type':_0x3b9e28['type']['key']};});_0x31cd95[_0x8a6f('0x2a')]=_[_0x8a6f('0x26')](_0x368ae0,'name');_0x31cd95[_0x8a6f('0x2b')]=_['keys'](_0x223272[_0x8a6f('0x2b')]);_0x31cd95[_0x8a6f('0x2c')]=_[_0x8a6f('0x2d')](_0x31cd95['model'],_0x31cd95[_0x8a6f('0x2b')]);_0x2b9533[_0x8a6f('0x2e')]=_[_0x8a6f('0x2d')](_0x31cd95[_0x8a6f('0x2a')],qs[_0x8a6f('0x2f')](_0x223272[_0x8a6f('0x2b')][_0x8a6f('0x2f')]));_0x2b9533[_0x8a6f('0x2e')]=_0x2b9533[_0x8a6f('0x2e')][_0x8a6f('0x30')]?_0x2b9533[_0x8a6f('0x2e')]:_0x31cd95[_0x8a6f('0x2a')];if(!_0x223272[_0x8a6f('0x2b')][_0x8a6f('0x31')](_0x8a6f('0x32'))){_0x2b9533[_0x8a6f('0x1c')]=qs[_0x8a6f('0x1c')](_0x223272[_0x8a6f('0x2b')]['limit']);_0x2b9533[_0x8a6f('0x1a')]=qs[_0x8a6f('0x1a')](_0x223272[_0x8a6f('0x2b')][_0x8a6f('0x1a')]);}_0x2b9533[_0x8a6f('0x33')]=qs[_0x8a6f('0x34')](_0x223272['query'][_0x8a6f('0x34')]);_0x2b9533[_0x8a6f('0x35')]=qs[_0x8a6f('0x2c')](_[_0x8a6f('0x36')](_0x223272[_0x8a6f('0x2b')],_0x31cd95[_0x8a6f('0x2c')]),_0x368ae0);if(_0x223272[_0x8a6f('0x2b')][_0x8a6f('0x37')]){_0x2b9533[_0x8a6f('0x35')]=_[_0x8a6f('0x38')](_0x2b9533[_0x8a6f('0x35')],{'$or':_['map'](_0x368ae0,function(_0x64efdc){if(_0x64efdc[_0x8a6f('0x39')]!=='VIRTUAL'){var _0x3674af={};_0x3674af[_0x64efdc[_0x8a6f('0x24')]]={'$like':'%'+_0x223272[_0x8a6f('0x2b')][_0x8a6f('0x37')]+'%'};return _0x3674af;}})});}_0x2b9533=_[_0x8a6f('0x38')]({},_0x2b9533,_0x223272['options']);var _0x42f646={'where':_0x2b9533[_0x8a6f('0x35')]};return db[_0x8a6f('0x27')][_0x8a6f('0x1b')](_0x42f646)[_0x8a6f('0x22')](function(_0x3414b1){_0x265cb8[_0x8a6f('0x1b')]=_0x3414b1;if(_0x223272[_0x8a6f('0x2b')]['includeAll']){_0x2b9533['include']=[{'all':!![]}];}return db['MailSubstatus'][_0x8a6f('0x3a')](_0x2b9533);})[_0x8a6f('0x22')](function(_0x4e1b54){_0x265cb8[_0x8a6f('0x3b')]=_0x4e1b54;return _0x265cb8;})[_0x8a6f('0x22')](respondWithFilteredResult(_0x585858,_0x2b9533))[_0x8a6f('0x3c')](handleError(_0x585858,null));};exports[_0x8a6f('0x3d')]=function(_0x331339,_0x454987){var _0xb3dbd5={'raw':!![],'where':{'id':_0x331339[_0x8a6f('0x3e')]['id']}},_0x2a0686={};_0x2a0686[_0x8a6f('0x2a')]=_['keys'](db[_0x8a6f('0x27')][_0x8a6f('0x28')]);_0x2a0686[_0x8a6f('0x2b')]=_[_0x8a6f('0x3f')](_0x331339[_0x8a6f('0x2b')]);_0x2a0686[_0x8a6f('0x2c')]=_[_0x8a6f('0x2d')](_0x2a0686[_0x8a6f('0x2a')],_0x2a0686[_0x8a6f('0x2b')]);_0xb3dbd5[_0x8a6f('0x2e')]=_[_0x8a6f('0x2d')](_0x2a0686['model'],qs[_0x8a6f('0x2f')](_0x331339[_0x8a6f('0x2b')][_0x8a6f('0x2f')]));_0xb3dbd5[_0x8a6f('0x2e')]=_0xb3dbd5[_0x8a6f('0x2e')][_0x8a6f('0x30')]?_0xb3dbd5[_0x8a6f('0x2e')]:_0x2a0686[_0x8a6f('0x2a')];if(_0x331339[_0x8a6f('0x2b')]['includeAll']){_0xb3dbd5['include']=[{'all':!![]}];}_0xb3dbd5=_[_0x8a6f('0x38')]({},_0xb3dbd5,_0x331339[_0x8a6f('0x40')]);return db[_0x8a6f('0x27')][_0x8a6f('0x41')](_0xb3dbd5)[_0x8a6f('0x22')](handleEntityNotFound(_0x454987,null))['then'](respondWithResult(_0x454987,null))[_0x8a6f('0x3c')](handleError(_0x454987,null));};exports[_0x8a6f('0x42')]=function(_0x1582fd,_0xdcaedb){return db[_0x8a6f('0x27')][_0x8a6f('0x42')](_0x1582fd[_0x8a6f('0x43')],{})[_0x8a6f('0x22')](respondWithResult(_0xdcaedb,0xc9))['catch'](handleError(_0xdcaedb,null));};exports[_0x8a6f('0x44')]=function(_0x174c73,_0x423484){if(_0x174c73[_0x8a6f('0x43')]['id']){delete _0x174c73[_0x8a6f('0x43')]['id'];}return db[_0x8a6f('0x27')][_0x8a6f('0x41')]({'where':{'id':_0x174c73[_0x8a6f('0x3e')]['id']}})[_0x8a6f('0x22')](handleEntityNotFound(_0x423484,null))['then'](saveUpdates(_0x174c73['body'],null))[_0x8a6f('0x22')](respondWithResult(_0x423484,null))[_0x8a6f('0x3c')](handleError(_0x423484,null));};exports[_0x8a6f('0x21')]=function(_0x33a2c8,_0x4738d9){return db['MailSubstatus'][_0x8a6f('0x41')]({'where':{'id':_0x33a2c8[_0x8a6f('0x3e')]['id']}})[_0x8a6f('0x22')](handleEntityNotFound(_0x4738d9,null))[_0x8a6f('0x22')](removeEntity(_0x4738d9,null))[_0x8a6f('0x3c')](handleError(_0x4738d9,null));};exports[_0x8a6f('0x45')]=function(_0x555e29,_0x200c39){return db[_0x8a6f('0x27')]['describe']()[_0x8a6f('0x22')](respondWithResult(_0x200c39,null))[_0x8a6f('0x3c')](handleError(_0x200c39,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf663=['bluebird','request-promise','path','rimraf','./mailSubstatus.attributes','exports','mail_substatuses','util','api','moment'];(function(_0x3ec0a7,_0x57055a){var _0x354432=function(_0x52a3cf){while(--_0x52a3cf){_0x3ec0a7['push'](_0x3ec0a7['shift']());}};_0x354432(++_0x57055a);}(_0xf663,0x1a1));var _0x3f66=function(_0x305b93,_0x220608){_0x305b93=_0x305b93-0x0;var _0x2e02e9=_0xf663[_0x305b93];return _0x2e02e9;};'use strict';var _=require('lodash');var util=require(_0x3f66('0x0'));var logger=require('../../config/logger')(_0x3f66('0x1'));var moment=require(_0x3f66('0x2'));var BPromise=require(_0x3f66('0x3'));var rp=require(_0x3f66('0x4'));var fs=require('fs');var path=require(_0x3f66('0x5'));var rimraf=require(_0x3f66('0x6'));var config=require('../../config/environment');var attributes=require(_0x3f66('0x7'));module[_0x3f66('0x8')]=function(_0x5b24d5,_0x343231){return _0x5b24d5['define']('MailSubstatus',attributes,{'tableName':_0x3f66('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3150=['rimraf','./mailSubstatus.attributes','exports','define','MailSubstatus','mail_substatuses','util','../../config/logger','api','request-promise','path'];(function(_0x23eaee,_0x4a8ec4){var _0x4ff243=function(_0x98b49f){while(--_0x98b49f){_0x23eaee['push'](_0x23eaee['shift']());}};_0x4ff243(++_0x4a8ec4);}(_0x3150,0x95));var _0x0315=function(_0x4dce97,_0x1b9719){_0x4dce97=_0x4dce97-0x0;var _0x417143=_0x3150[_0x4dce97];return _0x417143;};'use strict';var _=require('lodash');var util=require(_0x0315('0x0'));var logger=require(_0x0315('0x1'))(_0x0315('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x0315('0x3'));var fs=require('fs');var path=require(_0x0315('0x4'));var rimraf=require(_0x0315('0x5'));var config=require('../../config/environment');var attributes=require(_0x0315('0x6'));module[_0x0315('0x7')]=function(_0x323f90,_0x20d592){return _0x323f90[_0x0315('0x8')](_0x0315('0x9'),attributes,{'tableName':_0x0315('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c8c=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','http','request','then','info','MailSubstatus,\x20%s,\x20%s','request\x20sent','MailSubstatus,\x20%s,\x20%s,\x20%s','stringify','error','code','message','lodash','util','moment','bluebird'];(function(_0x5f1138,_0x35678c){var _0x28b295=function(_0x263c5b){while(--_0x263c5b){_0x5f1138['push'](_0x5f1138['shift']());}};_0x28b295(++_0x35678c);}(_0x2c8c,0x10d));var _0xc2c8=function(_0x33581f,_0x2ace42){_0x33581f=_0x33581f-0x0;var _0x367a49=_0x2c8c[_0x33581f];return _0x367a49;};'use strict';var _=require(_0xc2c8('0x0'));var util=require(_0xc2c8('0x1'));var moment=require(_0xc2c8('0x2'));var BPromise=require(_0xc2c8('0x3'));var rs=require(_0xc2c8('0x4'));var fs=require('fs');var Redis=require(_0xc2c8('0x5'));var db=require(_0xc2c8('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xc2c8('0x7'))(_0xc2c8('0x8'));var config=require(_0xc2c8('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0xc2c8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x32944d,_0x5a832c,_0x3acdd2){return new BPromise(function(_0x3c13f8,_0x1d7260){return client[_0xc2c8('0xb')](_0x32944d,_0x3acdd2)[_0xc2c8('0xc')](function(_0x1064bd){logger[_0xc2c8('0xd')](_0xc2c8('0xe'),_0x5a832c,_0xc2c8('0xf'));logger['debug'](_0xc2c8('0x10'),_0x5a832c,_0xc2c8('0xf'),JSON[_0xc2c8('0x11')](_0x1064bd));if(_0x1064bd[_0xc2c8('0x12')]){if(_0x1064bd['error'][_0xc2c8('0x13')]===0x1f4){logger[_0xc2c8('0x12')](_0xc2c8('0xe'),_0x5a832c,_0x1064bd[_0xc2c8('0x12')][_0xc2c8('0x14')]);return _0x1d7260(_0x1064bd[_0xc2c8('0x12')]['message']);}logger[_0xc2c8('0x12')](_0xc2c8('0xe'),_0x5a832c,_0x1064bd[_0xc2c8('0x12')][_0xc2c8('0x14')]);return _0x3c13f8(_0x1064bd[_0xc2c8('0x12')][_0xc2c8('0x14')]);}else{logger[_0xc2c8('0xd')]('MailSubstatus,\x20%s,\x20%s',_0x5a832c,_0xc2c8('0xf'));_0x3c13f8(_0x1064bd['result'][_0xc2c8('0x14')]);}})['catch'](function(_0x5b8771){logger[_0xc2c8('0x12')]('MailSubstatus,\x20%s,\x20%s',_0x5a832c,_0x5b8771);_0x1d7260(_0x5b8771);});});}
\ No newline at end of file
+var _0xf244=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','MailSubstatus,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','lodash','moment','bluebird','randomstring','../../mysqldb'];(function(_0x195e78,_0xf0c2ab){var _0x2048e8=function(_0x532d9f){while(--_0x532d9f){_0x195e78['push'](_0x195e78['shift']());}};_0x2048e8(++_0xf0c2ab);}(_0xf244,0x160));var _0x4f24=function(_0x2e4e19,_0x493b50){_0x2e4e19=_0x2e4e19-0x0;var _0x9ba20b=_0xf244[_0x2e4e19];return _0x9ba20b;};'use strict';var _=require(_0x4f24('0x0'));var util=require('util');var moment=require(_0x4f24('0x1'));var BPromise=require(_0x4f24('0x2'));var rs=require(_0x4f24('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4f24('0x4'))['db'];var utils=require(_0x4f24('0x5'));var logger=require(_0x4f24('0x6'))('rpc');var config=require(_0x4f24('0x7'));var jayson=require(_0x4f24('0x8'));var client=jayson[_0x4f24('0x9')][_0x4f24('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x37c113,_0x37fa5d,_0x4fcc95){return new BPromise(function(_0x53acfd,_0x5e5ea2){return client[_0x4f24('0xb')](_0x37c113,_0x4fcc95)['then'](function(_0x14fce2){logger[_0x4f24('0xc')](_0x4f24('0xd'),_0x37fa5d,_0x4f24('0xe'));logger[_0x4f24('0xf')]('MailSubstatus,\x20%s,\x20%s,\x20%s',_0x37fa5d,_0x4f24('0xe'),JSON[_0x4f24('0x10')](_0x14fce2));if(_0x14fce2[_0x4f24('0x11')]){if(_0x14fce2[_0x4f24('0x11')][_0x4f24('0x12')]===0x1f4){logger[_0x4f24('0x11')](_0x4f24('0xd'),_0x37fa5d,_0x14fce2[_0x4f24('0x11')][_0x4f24('0x13')]);return _0x5e5ea2(_0x14fce2[_0x4f24('0x11')][_0x4f24('0x13')]);}logger[_0x4f24('0x11')](_0x4f24('0xd'),_0x37fa5d,_0x14fce2[_0x4f24('0x11')][_0x4f24('0x13')]);return _0x53acfd(_0x14fce2['error'][_0x4f24('0x13')]);}else{logger[_0x4f24('0xc')](_0x4f24('0xd'),_0x37fa5d,_0x4f24('0xe'));_0x53acfd(_0x14fce2['result'][_0x4f24('0x13')]);}})[_0x4f24('0x14')](function(_0x792f05){logger[_0x4f24('0x11')](_0x4f24('0xd'),_0x37fa5d,_0x792f05);_0x5e5ea2(_0x792f05);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd2af=['/:id','show','post','create','update','delete','destroy','exports','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailTransferReport.controller','isAuthenticated','index','describe','get'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xd2af,0x1d4));var _0xfd2a=function(_0x22f85a,_0x195ed5){_0x22f85a=_0x22f85a-0x0;var _0xaa717=_0xd2af[_0x22f85a];return _0xaa717;};'use strict';var multer=require(_0xfd2a('0x0'));var util=require(_0xfd2a('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xfd2a('0x2'));var router=express['Router']();var fs_extra=require(_0xfd2a('0x3'));var auth=require(_0xfd2a('0x4'));var interaction=require(_0xfd2a('0x5'));var config=require(_0xfd2a('0x6'));var controller=require(_0xfd2a('0x7'));router['get']('/',auth[_0xfd2a('0x8')](),controller[_0xfd2a('0x9')]);router['get']('/describe',auth[_0xfd2a('0x8')](),controller[_0xfd2a('0xa')]);router[_0xfd2a('0xb')](_0xfd2a('0xc'),auth['isAuthenticated'](),controller[_0xfd2a('0xd')]);router[_0xfd2a('0xe')]('/',auth[_0xfd2a('0x8')](),controller[_0xfd2a('0xf')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0xfd2a('0x10')]);router[_0xfd2a('0x11')](_0xfd2a('0xc'),auth[_0xfd2a('0x8')](),controller[_0xfd2a('0x12')]);module[_0xfd2a('0x13')]=router;
\ No newline at end of file
+var _0x2a85=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/describe','describe','isAuthenticated','show','post','create','put','update','delete','destroy','exports','util','path','connect-timeout'];(function(_0x1ddc59,_0x52382d){var _0xbbe677=function(_0x4518cb){while(--_0x4518cb){_0x1ddc59['push'](_0x1ddc59['shift']());}};_0xbbe677(++_0x52382d);}(_0x2a85,0xd9));var _0x52a8=function(_0x3454e3,_0x31905){_0x3454e3=_0x3454e3-0x0;var _0xb3979e=_0x2a85[_0x3454e3];return _0xb3979e;};'use strict';var multer=require('multer');var util=require(_0x52a8('0x0'));var path=require(_0x52a8('0x1'));var timeout=require(_0x52a8('0x2'));var express=require(_0x52a8('0x3'));var router=express[_0x52a8('0x4')]();var fs_extra=require(_0x52a8('0x5'));var auth=require(_0x52a8('0x6'));var interaction=require(_0x52a8('0x7'));var config=require(_0x52a8('0x8'));var controller=require('./mailTransferReport.controller');router[_0x52a8('0x9')]('/',auth['isAuthenticated'](),controller[_0x52a8('0xa')]);router[_0x52a8('0x9')](_0x52a8('0xb'),auth['isAuthenticated'](),controller[_0x52a8('0xc')]);router['get']('/:id',auth[_0x52a8('0xd')](),controller[_0x52a8('0xe')]);router[_0x52a8('0xf')]('/',auth[_0x52a8('0xd')](),controller[_0x52a8('0x10')]);router[_0x52a8('0x11')]('/:id',auth[_0x52a8('0xd')](),controller[_0x52a8('0x12')]);router[_0x52a8('0x13')]('/:id',auth[_0x52a8('0xd')](),controller[_0x52a8('0x14')]);module[_0x52a8('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x1d9a93,_0x4c4ceb){var _0x266e93=function(_0x43f69b){while(--_0x43f69b){_0x1d9a93['push'](_0x1d9a93['shift']());}};_0x266e93(++_0x4c4ceb);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x305c31,_0x466b17){_0x305c31=_0x305c31-0x0;var _0x17f39f=_0xcb91[_0x305c31];return _0x17f39f;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
+var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x54bd6e,_0x3eced4){var _0x5621ab=function(_0x3989e9){while(--_0x3989e9){_0x54bd6e['push'](_0x54bd6e['shift']());}};_0x5621ab(++_0x3eced4);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x375325,_0x57a850){_0x375325=_0x375325-0x0;var _0x228f57=_0xcb91[_0x375325];return _0x228f57;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc43a=['send','index','map','MailTransferReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','show','options','catch','body','find','params','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','sendStatus','error','name'];(function(_0x363c83,_0x32c92d){var _0x1545d4=function(_0xe04bda){while(--_0xe04bda){_0x363c83['push'](_0x363c83['shift']());}};_0x1545d4(++_0x32c92d);}(_0xc43a,0x188));var _0xac43=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc43a[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xac43('0x0'));var rimraf=require(_0xac43('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xac43('0x2'));var rp=require(_0xac43('0x3'));var moment=require(_0xac43('0x4'));var BPromise=require(_0xac43('0x5'));var Mustache=require('mustache');var util=require(_0xac43('0x6'));var path=require(_0xac43('0x7'));var sox=require(_0xac43('0x8'));var csv=require(_0xac43('0x9'));var ejs=require(_0xac43('0xa'));var fs=require('fs');var fs_extra=require(_0xac43('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xac43('0xc'));var jsforce=require(_0xac43('0xd'));var deskjs=require(_0xac43('0xe'));var toCsv=require(_0xac43('0x9'));var querystring=require(_0xac43('0xf'));var Papa=require('papaparse');var Redis=require(_0xac43('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xac43('0x11'));var as=require(_0xac43('0x12'));var hardwareService=require(_0xac43('0x13'));var logger=require('../../config/logger')(_0xac43('0x14'));var utils=require(_0xac43('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xac43('0x16'));var db=require(_0xac43('0x17'))['db'];function respondWithStatusCode(_0x5d1bb5,_0x5334c8){_0x5334c8=_0x5334c8||0xcc;return function(_0x5f3d63){if(_0x5f3d63){return _0x5d1bb5['sendStatus'](_0x5334c8);}return _0x5d1bb5[_0xac43('0x18')](_0x5334c8)[_0xac43('0x19')]();};}function respondWithResult(_0x51dffd,_0x2a424f){_0x2a424f=_0x2a424f||0xc8;return function(_0x23be7c){if(_0x23be7c){return _0x51dffd[_0xac43('0x18')](_0x2a424f)[_0xac43('0x1a')](_0x23be7c);}};}function respondWithFilteredResult(_0x358ed0,_0x5d8aca){return function(_0x51b4ae){if(_0x51b4ae){var _0xbe7fec=typeof _0x5d8aca['offset']===_0xac43('0x1b')&&typeof _0x5d8aca[_0xac43('0x1c')]==='undefined';var _0x1ea6f5=_0x51b4ae[_0xac43('0x1d')];var _0x523759=_0xbe7fec?0x0:_0x5d8aca[_0xac43('0x1e')];var _0x189df8=_0xbe7fec?_0x51b4ae[_0xac43('0x1d')]:_0x5d8aca[_0xac43('0x1e')]+_0x5d8aca[_0xac43('0x1c')];var _0x1d3150;if(_0x189df8>=_0x1ea6f5){_0x189df8=_0x1ea6f5;_0x1d3150=0xc8;}else{_0x1d3150=0xce;}_0x358ed0[_0xac43('0x18')](_0x1d3150);return _0x358ed0[_0xac43('0x1f')](_0xac43('0x20'),_0x523759+'-'+_0x189df8+'/'+_0x1ea6f5)[_0xac43('0x1a')](_0x51b4ae);}return null;};}function patchUpdates(_0x458b67){return function(_0x5e40ac){try{jsonpatch[_0xac43('0x21')](_0x5e40ac,_0x458b67,!![]);}catch(_0x503049){return BPromise['reject'](_0x503049);}return _0x5e40ac['save']();};}function saveUpdates(_0x4cc152,_0x563e21){return function(_0x5ed73){if(_0x5ed73){return _0x5ed73[_0xac43('0x22')](_0x4cc152)[_0xac43('0x23')](function(_0x20e026){return _0x20e026;});}return null;};}function removeEntity(_0x1905e2,_0x2a3d02){return function(_0x2ac9a7){if(_0x2ac9a7){return _0x2ac9a7[_0xac43('0x24')]()[_0xac43('0x23')](function(){_0x1905e2['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x581543,_0x2fff70){return function(_0x18efa8){if(!_0x18efa8){_0x581543[_0xac43('0x25')](0x194);}return _0x18efa8;};}function handleError(_0x470380,_0x1232c5){_0x1232c5=_0x1232c5||0x1f4;return function(_0x36566b){logger[_0xac43('0x26')](_0x36566b['stack']);if(_0x36566b[_0xac43('0x27')]){delete _0x36566b[_0xac43('0x27')];}_0x470380[_0xac43('0x18')](_0x1232c5)[_0xac43('0x28')](_0x36566b);};}exports[_0xac43('0x29')]=function(_0x54a021,_0xaf03f3){var _0x1387bd={},_0x128572={},_0x1998a2={'count':0x0,'rows':[]};var _0x37be96=_[_0xac43('0x2a')](db[_0xac43('0x2b')][_0xac43('0x2c')],function(_0x57ac7a){return{'name':_0x57ac7a['fieldName'],'type':_0x57ac7a[_0xac43('0x2d')][_0xac43('0x2e')]};});_0x128572[_0xac43('0x2f')]=_[_0xac43('0x2a')](_0x37be96,'name');_0x128572[_0xac43('0x30')]=_[_0xac43('0x31')](_0x54a021[_0xac43('0x30')]);_0x128572[_0xac43('0x32')]=_[_0xac43('0x33')](_0x128572[_0xac43('0x2f')],_0x128572[_0xac43('0x30')]);_0x1387bd[_0xac43('0x34')]=_['intersection'](_0x128572[_0xac43('0x2f')],qs['fields'](_0x54a021[_0xac43('0x30')][_0xac43('0x35')]));_0x1387bd[_0xac43('0x34')]=_0x1387bd[_0xac43('0x34')][_0xac43('0x36')]?_0x1387bd[_0xac43('0x34')]:_0x128572[_0xac43('0x2f')];if(!_0x54a021['query']['hasOwnProperty'](_0xac43('0x37'))){_0x1387bd[_0xac43('0x1c')]=qs[_0xac43('0x1c')](_0x54a021[_0xac43('0x30')][_0xac43('0x1c')]);_0x1387bd[_0xac43('0x1e')]=qs[_0xac43('0x1e')](_0x54a021[_0xac43('0x30')][_0xac43('0x1e')]);}_0x1387bd[_0xac43('0x38')]=qs['sort'](_0x54a021['query'][_0xac43('0x39')]);_0x1387bd[_0xac43('0x3a')]=qs[_0xac43('0x32')](_['pick'](_0x54a021['query'],_0x128572[_0xac43('0x32')]),_0x37be96);if(_0x54a021[_0xac43('0x30')][_0xac43('0x3b')]){_0x1387bd[_0xac43('0x3a')]=_[_0xac43('0x3c')](_0x1387bd['where'],{'$or':_[_0xac43('0x2a')](_0x37be96,function(_0x1c6f57){if(_0x1c6f57['type']!==_0xac43('0x3d')){var _0x4d49d1={};_0x4d49d1[_0x1c6f57['name']]={'$like':'%'+_0x54a021[_0xac43('0x30')][_0xac43('0x3b')]+'%'};return _0x4d49d1;}})});}_0x1387bd=_[_0xac43('0x3c')]({},_0x1387bd,_0x54a021['options']);var _0x934246={'where':_0x1387bd[_0xac43('0x3a')]};return db[_0xac43('0x2b')]['count'](_0x934246)[_0xac43('0x23')](function(_0x5437bd){_0x1998a2[_0xac43('0x1d')]=_0x5437bd;if(_0x54a021[_0xac43('0x30')][_0xac43('0x3e')]){_0x1387bd[_0xac43('0x3f')]=[{'all':!![]}];}return db[_0xac43('0x2b')][_0xac43('0x40')](_0x1387bd);})[_0xac43('0x23')](function(_0x3b6c83){_0x1998a2['rows']=_0x3b6c83;return _0x1998a2;})[_0xac43('0x23')](respondWithFilteredResult(_0xaf03f3,_0x1387bd))['catch'](handleError(_0xaf03f3,null));};exports[_0xac43('0x41')]=function(_0x1fd7a7,_0x3ee8dd){var _0x1edaf7={'raw':!![],'where':{'id':_0x1fd7a7['params']['id']}},_0x1c47df={};_0x1c47df[_0xac43('0x2f')]=_[_0xac43('0x31')](db[_0xac43('0x2b')][_0xac43('0x2c')]);_0x1c47df[_0xac43('0x30')]=_['keys'](_0x1fd7a7[_0xac43('0x30')]);_0x1c47df['filters']=_[_0xac43('0x33')](_0x1c47df['model'],_0x1c47df[_0xac43('0x30')]);_0x1edaf7[_0xac43('0x34')]=_[_0xac43('0x33')](_0x1c47df[_0xac43('0x2f')],qs[_0xac43('0x35')](_0x1fd7a7[_0xac43('0x30')][_0xac43('0x35')]));_0x1edaf7[_0xac43('0x34')]=_0x1edaf7[_0xac43('0x34')][_0xac43('0x36')]?_0x1edaf7['attributes']:_0x1c47df[_0xac43('0x2f')];if(_0x1fd7a7['query']['includeAll']){_0x1edaf7[_0xac43('0x3f')]=[{'all':!![]}];}_0x1edaf7=_[_0xac43('0x3c')]({},_0x1edaf7,_0x1fd7a7[_0xac43('0x42')]);return db[_0xac43('0x2b')]['find'](_0x1edaf7)[_0xac43('0x23')](handleEntityNotFound(_0x3ee8dd,null))['then'](respondWithResult(_0x3ee8dd,null))[_0xac43('0x43')](handleError(_0x3ee8dd,null));};exports['create']=function(_0x19e8be,_0x217441){return db[_0xac43('0x2b')]['create'](_0x19e8be['body'],{})['then'](respondWithResult(_0x217441,0xc9))[_0xac43('0x43')](handleError(_0x217441,null));};exports[_0xac43('0x22')]=function(_0xee368a,_0x33705d){if(_0xee368a['body']['id']){delete _0xee368a[_0xac43('0x44')]['id'];}return db[_0xac43('0x2b')][_0xac43('0x45')]({'where':{'id':_0xee368a[_0xac43('0x46')]['id']}})[_0xac43('0x23')](handleEntityNotFound(_0x33705d,null))['then'](saveUpdates(_0xee368a[_0xac43('0x44')],null))['then'](respondWithResult(_0x33705d,null))['catch'](handleError(_0x33705d,null));};exports[_0xac43('0x24')]=function(_0x390d8d,_0x41a87a){return db['MailTransferReport']['find']({'where':{'id':_0x390d8d[_0xac43('0x46')]['id']}})['then'](handleEntityNotFound(_0x41a87a,null))[_0xac43('0x23')](removeEntity(_0x41a87a,null))[_0xac43('0x43')](handleError(_0x41a87a,null));};exports[_0xac43('0x47')]=function(_0x43b749,_0x2bfcb4){return db['MailTransferReport'][_0xac43('0x47')]()[_0xac43('0x23')](respondWithResult(_0x2bfcb4,null))[_0xac43('0x43')](handleError(_0x2bfcb4,null));};
\ No newline at end of file
+var _0x49a4=['undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','error','stack','index','map','MailTransferReport','rawAttributes','key','name','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','sort','filter','where','type','VIRTUAL','options','includeAll','findAll','then','rows','catch','show','params','keys','merge','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','ejs','fs-extra','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset'];(function(_0x9c607a,_0x1cb2c6){var _0x3b1311=function(_0x1b3fec){while(--_0x1b3fec){_0x9c607a['push'](_0x9c607a['shift']());}};_0x3b1311(++_0x1cb2c6);}(_0x49a4,0x10b));var _0x449a=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x49a4[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require(_0x449a('0x0'));var rimraf=require(_0x449a('0x1'));var zipdir=require(_0x449a('0x2'));var jsonpatch=require(_0x449a('0x3'));var rp=require(_0x449a('0x4'));var moment=require(_0x449a('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x449a('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x449a('0x7'));var fs=require('fs');var fs_extra=require(_0x449a('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x449a('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x449a('0xa'));var toCsv=require(_0x449a('0xb'));var querystring=require(_0x449a('0xc'));var Papa=require(_0x449a('0xd'));var Redis=require(_0x449a('0xe'));var authService=require(_0x449a('0xf'));var qs=require(_0x449a('0x10'));var as=require(_0x449a('0x11'));var hardwareService=require(_0x449a('0x12'));var logger=require(_0x449a('0x13'))(_0x449a('0x14'));var utils=require('../../config/utils');var config=require(_0x449a('0x15'));var licenseUtil=require(_0x449a('0x16'));var db=require(_0x449a('0x17'))['db'];function respondWithStatusCode(_0x3aa081,_0x153497){_0x153497=_0x153497||0xcc;return function(_0x11b240){if(_0x11b240){return _0x3aa081[_0x449a('0x18')](_0x153497);}return _0x3aa081[_0x449a('0x19')](_0x153497)[_0x449a('0x1a')]();};}function respondWithResult(_0x3bb35a,_0x2d6c02){_0x2d6c02=_0x2d6c02||0xc8;return function(_0x32aa11){if(_0x32aa11){return _0x3bb35a[_0x449a('0x19')](_0x2d6c02)[_0x449a('0x1b')](_0x32aa11);}};}function respondWithFilteredResult(_0x6941d9,_0x19df31){return function(_0x3eaa49){if(_0x3eaa49){var _0xf4ff62=typeof _0x19df31[_0x449a('0x1c')]===_0x449a('0x1d')&&typeof _0x19df31[_0x449a('0x1e')]===_0x449a('0x1d');var _0xaa0608=_0x3eaa49[_0x449a('0x1f')];var _0x2ef3f9=_0xf4ff62?0x0:_0x19df31[_0x449a('0x1c')];var _0x511ed0=_0xf4ff62?_0x3eaa49['count']:_0x19df31[_0x449a('0x1c')]+_0x19df31[_0x449a('0x1e')];var _0x359396;if(_0x511ed0>=_0xaa0608){_0x511ed0=_0xaa0608;_0x359396=0xc8;}else{_0x359396=0xce;}_0x6941d9[_0x449a('0x19')](_0x359396);return _0x6941d9[_0x449a('0x20')](_0x449a('0x21'),_0x2ef3f9+'-'+_0x511ed0+'/'+_0xaa0608)[_0x449a('0x1b')](_0x3eaa49);}return null;};}function patchUpdates(_0x31a7c5){return function(_0x5814d0){try{jsonpatch[_0x449a('0x22')](_0x5814d0,_0x31a7c5,!![]);}catch(_0x320ed0){return BPromise[_0x449a('0x23')](_0x320ed0);}return _0x5814d0[_0x449a('0x24')]();};}function saveUpdates(_0x2c8ee4,_0x30a8a6){return function(_0xa92b55){if(_0xa92b55){return _0xa92b55[_0x449a('0x25')](_0x2c8ee4)['then'](function(_0x5edaec){return _0x5edaec;});}return null;};}function removeEntity(_0xbe6427,_0x3a463f){return function(_0x1816b4){if(_0x1816b4){return _0x1816b4[_0x449a('0x26')]()['then'](function(){_0xbe6427['status'](0xcc)[_0x449a('0x1a')]();});}};}function handleEntityNotFound(_0x22c351,_0x2abd12){return function(_0x7ea7c){if(!_0x7ea7c){_0x22c351[_0x449a('0x18')](0x194);}return _0x7ea7c;};}function handleError(_0x687252,_0x105a75){_0x105a75=_0x105a75||0x1f4;return function(_0xa9aa42){logger[_0x449a('0x27')](_0xa9aa42[_0x449a('0x28')]);if(_0xa9aa42['name']){delete _0xa9aa42['name'];}_0x687252[_0x449a('0x19')](_0x105a75)['send'](_0xa9aa42);};}exports[_0x449a('0x29')]=function(_0xc33b67,_0x95e653){var _0x49a13d={},_0x46aafc={},_0x4ad300={'count':0x0,'rows':[]};var _0x262cad=_[_0x449a('0x2a')](db[_0x449a('0x2b')][_0x449a('0x2c')],function(_0x28568b){return{'name':_0x28568b['fieldName'],'type':_0x28568b['type'][_0x449a('0x2d')]};});_0x46aafc['model']=_[_0x449a('0x2a')](_0x262cad,_0x449a('0x2e'));_0x46aafc[_0x449a('0x2f')]=_['keys'](_0xc33b67['query']);_0x46aafc[_0x449a('0x30')]=_['intersection'](_0x46aafc[_0x449a('0x31')],_0x46aafc[_0x449a('0x2f')]);_0x49a13d[_0x449a('0x32')]=_[_0x449a('0x33')](_0x46aafc[_0x449a('0x31')],qs['fields'](_0xc33b67['query'][_0x449a('0x34')]));_0x49a13d[_0x449a('0x32')]=_0x49a13d[_0x449a('0x32')][_0x449a('0x35')]?_0x49a13d[_0x449a('0x32')]:_0x46aafc[_0x449a('0x31')];if(!_0xc33b67[_0x449a('0x2f')][_0x449a('0x36')]('nolimit')){_0x49a13d[_0x449a('0x1e')]=qs['limit'](_0xc33b67['query'][_0x449a('0x1e')]);_0x49a13d[_0x449a('0x1c')]=qs['offset'](_0xc33b67[_0x449a('0x2f')][_0x449a('0x1c')]);}_0x49a13d['order']=qs['sort'](_0xc33b67[_0x449a('0x2f')][_0x449a('0x37')]);_0x49a13d['where']=qs[_0x449a('0x30')](_['pick'](_0xc33b67['query'],_0x46aafc[_0x449a('0x30')]),_0x262cad);if(_0xc33b67[_0x449a('0x2f')][_0x449a('0x38')]){_0x49a13d['where']=_['merge'](_0x49a13d[_0x449a('0x39')],{'$or':_['map'](_0x262cad,function(_0x3b734f){if(_0x3b734f[_0x449a('0x3a')]!==_0x449a('0x3b')){var _0x1dbc6b={};_0x1dbc6b[_0x3b734f[_0x449a('0x2e')]]={'$like':'%'+_0xc33b67['query']['filter']+'%'};return _0x1dbc6b;}})});}_0x49a13d=_['merge']({},_0x49a13d,_0xc33b67[_0x449a('0x3c')]);var _0x135895={'where':_0x49a13d[_0x449a('0x39')]};return db[_0x449a('0x2b')][_0x449a('0x1f')](_0x135895)['then'](function(_0x315844){_0x4ad300['count']=_0x315844;if(_0xc33b67[_0x449a('0x2f')][_0x449a('0x3d')]){_0x49a13d['include']=[{'all':!![]}];}return db[_0x449a('0x2b')][_0x449a('0x3e')](_0x49a13d);})[_0x449a('0x3f')](function(_0x886b7b){_0x4ad300[_0x449a('0x40')]=_0x886b7b;return _0x4ad300;})['then'](respondWithFilteredResult(_0x95e653,_0x49a13d))[_0x449a('0x41')](handleError(_0x95e653,null));};exports[_0x449a('0x42')]=function(_0x675f69,_0x50cc6a){var _0x4b1642={'raw':!![],'where':{'id':_0x675f69[_0x449a('0x43')]['id']}},_0x37abfe={};_0x37abfe[_0x449a('0x31')]=_['keys'](db['MailTransferReport'][_0x449a('0x2c')]);_0x37abfe['query']=_[_0x449a('0x44')](_0x675f69[_0x449a('0x2f')]);_0x37abfe['filters']=_['intersection'](_0x37abfe[_0x449a('0x31')],_0x37abfe[_0x449a('0x2f')]);_0x4b1642['attributes']=_[_0x449a('0x33')](_0x37abfe[_0x449a('0x31')],qs['fields'](_0x675f69['query'][_0x449a('0x34')]));_0x4b1642[_0x449a('0x32')]=_0x4b1642[_0x449a('0x32')][_0x449a('0x35')]?_0x4b1642[_0x449a('0x32')]:_0x37abfe[_0x449a('0x31')];if(_0x675f69[_0x449a('0x2f')][_0x449a('0x3d')]){_0x4b1642['include']=[{'all':!![]}];}_0x4b1642=_[_0x449a('0x45')]({},_0x4b1642,_0x675f69['options']);return db['MailTransferReport'][_0x449a('0x46')](_0x4b1642)[_0x449a('0x3f')](handleEntityNotFound(_0x50cc6a,null))[_0x449a('0x3f')](respondWithResult(_0x50cc6a,null))['catch'](handleError(_0x50cc6a,null));};exports[_0x449a('0x47')]=function(_0x154ab2,_0x18da4f){return db[_0x449a('0x2b')][_0x449a('0x47')](_0x154ab2[_0x449a('0x48')],{})['then'](respondWithResult(_0x18da4f,0xc9))[_0x449a('0x41')](handleError(_0x18da4f,null));};exports[_0x449a('0x25')]=function(_0x27c4ce,_0x272541){if(_0x27c4ce['body']['id']){delete _0x27c4ce[_0x449a('0x48')]['id'];}return db[_0x449a('0x2b')][_0x449a('0x46')]({'where':{'id':_0x27c4ce[_0x449a('0x43')]['id']}})[_0x449a('0x3f')](handleEntityNotFound(_0x272541,null))['then'](saveUpdates(_0x27c4ce[_0x449a('0x48')],null))[_0x449a('0x3f')](respondWithResult(_0x272541,null))['catch'](handleError(_0x272541,null));};exports['destroy']=function(_0x10e225,_0x330c48){return db['MailTransferReport'][_0x449a('0x46')]({'where':{'id':_0x10e225[_0x449a('0x43')]['id']}})[_0x449a('0x3f')](handleEntityNotFound(_0x330c48,null))[_0x449a('0x3f')](removeEntity(_0x330c48,null))[_0x449a('0x41')](handleError(_0x330c48,null));};exports[_0x449a('0x49')]=function(_0x232789,_0x539490){return db['MailTransferReport'][_0x449a('0x49')]()[_0x449a('0x3f')](respondWithResult(_0x539490,null))[_0x449a('0x41')](handleError(_0x539490,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b4e=['./mailTransferReport.attributes','exports','define','MailTransferReport','report_mail_transfer','uniqueid','util','request-promise','path','rimraf','../../config/environment'];(function(_0x58d5ac,_0x11c4bc){var _0x37985c=function(_0x419671){while(--_0x419671){_0x58d5ac['push'](_0x58d5ac['shift']());}};_0x37985c(++_0x11c4bc);}(_0x6b4e,0x1a8));var _0xe6b4=function(_0x5ecd19,_0x1b92fb){_0x5ecd19=_0x5ecd19-0x0;var _0x1f7119=_0x6b4e[_0x5ecd19];return _0x1f7119;};'use strict';var _=require('lodash');var util=require(_0xe6b4('0x0'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe6b4('0x1'));var fs=require('fs');var path=require(_0xe6b4('0x2'));var rimraf=require(_0xe6b4('0x3'));var config=require(_0xe6b4('0x4'));var attributes=require(_0xe6b4('0x5'));module[_0xe6b4('0x6')]=function(_0x598f8c,_0x29c81b){return _0x598f8c[_0xe6b4('0x7')](_0xe6b4('0x8'),attributes,{'tableName':_0xe6b4('0x9'),'paranoid':![],'indexes':[{'name':_0xe6b4('0xa'),'fields':[_0xe6b4('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xfbf0=['request-promise','rimraf','./mailTransferReport.attributes','MailTransferReport','report_mail_transfer','uniqueid','util','../../config/logger','bluebird'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfbf0,0x141));var _0x0fbf=function(_0x1e7b16,_0x4607a1){_0x1e7b16=_0x1e7b16-0x0;var _0x37fadc=_0xfbf0[_0x1e7b16];return _0x37fadc;};'use strict';var _=require('lodash');var util=require(_0x0fbf('0x0'));var logger=require(_0x0fbf('0x1'))('api');var moment=require('moment');var BPromise=require(_0x0fbf('0x2'));var rp=require(_0x0fbf('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0fbf('0x4'));var config=require('../../config/environment');var attributes=require(_0x0fbf('0x5'));module['exports']=function(_0xe258f6,_0x29c1cb){return _0xe258f6['define'](_0x0fbf('0x6'),attributes,{'tableName':_0x0fbf('0x7'),'paranoid':![],'indexes':[{'name':_0x0fbf('0x8'),'fields':[_0x0fbf('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8248=['MailTransferReport,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','MailTransferReport,\x20%s,\x20%s','request\x20sent'];(function(_0x239faa,_0x59db9c){var _0x22bb6d=function(_0x351e0b){while(--_0x351e0b){_0x239faa['push'](_0x239faa['shift']());}};_0x22bb6d(++_0x59db9c);}(_0x8248,0x116));var _0x8824=function(_0xc6afe9,_0x3eae56){_0xc6afe9=_0xc6afe9-0x0;var _0x21d51c=_0x8248[_0xc6afe9];return _0x21d51c;};'use strict';var _=require(_0x8824('0x0'));var util=require('util');var moment=require(_0x8824('0x1'));var BPromise=require(_0x8824('0x2'));var rs=require(_0x8824('0x3'));var fs=require('fs');var Redis=require(_0x8824('0x4'));var db=require(_0x8824('0x5'))['db'];var utils=require(_0x8824('0x6'));var logger=require(_0x8824('0x7'))('rpc');var config=require(_0x8824('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x8824('0x9')][_0x8824('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2e0283,_0x2a6182,_0x2ae400){return new BPromise(function(_0x220937,_0x1953a0){return client[_0x8824('0xb')](_0x2e0283,_0x2ae400)[_0x8824('0xc')](function(_0x561226){logger[_0x8824('0xd')](_0x8824('0xe'),_0x2a6182,_0x8824('0xf'));logger['debug'](_0x8824('0x10'),_0x2a6182,'request\x20sent',JSON['stringify'](_0x561226));if(_0x561226['error']){if(_0x561226[_0x8824('0x11')]['code']===0x1f4){logger[_0x8824('0x11')](_0x8824('0xe'),_0x2a6182,_0x561226[_0x8824('0x11')][_0x8824('0x12')]);return _0x1953a0(_0x561226['error']['message']);}logger[_0x8824('0x11')](_0x8824('0xe'),_0x2a6182,_0x561226[_0x8824('0x11')][_0x8824('0x12')]);return _0x220937(_0x561226[_0x8824('0x11')][_0x8824('0x12')]);}else{logger['info']('MailTransferReport,\x20%s,\x20%s',_0x2a6182,_0x8824('0xf'));_0x220937(_0x561226[_0x8824('0x13')][_0x8824('0x12')]);}})[_0x8824('0x14')](function(_0x343a5e){logger[_0x8824('0x11')]('MailTransferReport,\x20%s,\x20%s',_0x2a6182,_0x343a5e);_0x1953a0(_0x343a5e);});});}
\ No newline at end of file
+var _0xdf0c=['result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','request\x20sent','MailTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','MailTransferReport,\x20%s,\x20%s','message','info'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xdf0c,0x86));var _0xcdf0=function(_0x3a4c3e,_0x34e3dc){_0x3a4c3e=_0x3a4c3e-0x0;var _0x43d178=_0xdf0c[_0x3a4c3e];return _0x43d178;};'use strict';var _=require(_0xcdf0('0x0'));var util=require('util');var moment=require(_0xcdf0('0x1'));var BPromise=require('bluebird');var rs=require(_0xcdf0('0x2'));var fs=require('fs');var Redis=require(_0xcdf0('0x3'));var db=require(_0xcdf0('0x4'))['db'];var utils=require(_0xcdf0('0x5'));var logger=require(_0xcdf0('0x6'))(_0xcdf0('0x7'));var config=require(_0xcdf0('0x8'));var jayson=require(_0xcdf0('0x9'));var client=jayson['client'][_0xcdf0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x206b11,_0x2e59c1,_0x3a61bb){return new BPromise(function(_0x50232e,_0x34f79b){return client['request'](_0x206b11,_0x3a61bb)[_0xcdf0('0xb')](function(_0x53eb02){logger['info']('MailTransferReport,\x20%s,\x20%s',_0x2e59c1,_0xcdf0('0xc'));logger['debug'](_0xcdf0('0xd'),_0x2e59c1,_0xcdf0('0xc'),JSON[_0xcdf0('0xe')](_0x53eb02));if(_0x53eb02[_0xcdf0('0xf')]){if(_0x53eb02[_0xcdf0('0xf')][_0xcdf0('0x10')]===0x1f4){logger['error'](_0xcdf0('0x11'),_0x2e59c1,_0x53eb02[_0xcdf0('0xf')]['message']);return _0x34f79b(_0x53eb02['error'][_0xcdf0('0x12')]);}logger['error'](_0xcdf0('0x11'),_0x2e59c1,_0x53eb02['error'][_0xcdf0('0x12')]);return _0x50232e(_0x53eb02[_0xcdf0('0xf')][_0xcdf0('0x12')]);}else{logger[_0xcdf0('0x13')](_0xcdf0('0x11'),_0x2e59c1,_0xcdf0('0xc'));_0x50232e(_0x53eb02[_0xcdf0('0x14')][_0xcdf0('0x12')]);}})[_0xcdf0('0x15')](function(_0x392859){logger[_0xcdf0('0xf')](_0xcdf0('0x11'),_0x2e59c1,_0x392859);_0x34f79b(_0x392859);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x927b=['put','/:id','update','delete','destroy','exports','multer','util','path','../../components/auth/service','../../config/environment','./memberReport.controller','get','isAuthenticated','/describe','create'];(function(_0x3fb556,_0x602ce2){var _0x496145=function(_0x441f7c){while(--_0x441f7c){_0x3fb556['push'](_0x3fb556['shift']());}};_0x496145(++_0x602ce2);}(_0x927b,0x186));var _0xb927=function(_0x35197d,_0x33eda7){_0x35197d=_0x35197d-0x0;var _0x157a26=_0x927b[_0x35197d];return _0x157a26;};'use strict';var multer=require(_0xb927('0x0'));var util=require(_0xb927('0x1'));var path=require(_0xb927('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xb927('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xb927('0x4'));var controller=require(_0xb927('0x5'));router[_0xb927('0x6')]('/',auth[_0xb927('0x7')](),controller['index']);router[_0xb927('0x6')](_0xb927('0x8'),auth[_0xb927('0x7')](),controller['describe']);router[_0xb927('0x6')]('/:id',auth[_0xb927('0x7')](),controller['show']);router['post']('/',auth[_0xb927('0x7')](),controller[_0xb927('0x9')]);router[_0xb927('0xa')](_0xb927('0xb'),auth['isAuthenticated'](),controller[_0xb927('0xc')]);router[_0xb927('0xd')](_0xb927('0xb'),auth[_0xb927('0x7')](),controller[_0xb927('0xe')]);module[_0xb927('0xf')]=router;
\ No newline at end of file
+var _0xdb13=['index','/describe','isAuthenticated','show','post','create','put','/:id','update','delete','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','get'];(function(_0x5f1cf8,_0x5e0923){var _0x27d0fa=function(_0x3f1171){while(--_0x3f1171){_0x5f1cf8['push'](_0x5f1cf8['shift']());}};_0x27d0fa(++_0x5e0923);}(_0xdb13,0x13a));var _0x3db1=function(_0x321c71,_0x34b784){_0x321c71=_0x321c71-0x0;var _0x167f3c=_0xdb13[_0x321c71];return _0x167f3c;};'use strict';var multer=require(_0x3db1('0x0'));var util=require(_0x3db1('0x1'));var path=require(_0x3db1('0x2'));var timeout=require(_0x3db1('0x3'));var express=require('express');var router=express[_0x3db1('0x4')]();var fs_extra=require(_0x3db1('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x3db1('0x6'));var config=require(_0x3db1('0x7'));var controller=require('./memberReport.controller');router[_0x3db1('0x8')]('/',auth['isAuthenticated'](),controller[_0x3db1('0x9')]);router[_0x3db1('0x8')](_0x3db1('0xa'),auth[_0x3db1('0xb')](),controller['describe']);router[_0x3db1('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x3db1('0xc')]);router[_0x3db1('0xd')]('/',auth[_0x3db1('0xb')](),controller[_0x3db1('0xe')]);router[_0x3db1('0xf')](_0x3db1('0x10'),auth['isAuthenticated'](),controller[_0x3db1('0x11')]);router[_0x3db1('0x12')](_0x3db1('0x10'),auth[_0x3db1('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x593e=['moment','exports','STRING','DEFAULT\x20PAUSE','INTEGER','DATE','getDataValue','enterAt','diff','setDataValue','exitAt','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[start]','talk:[destination]','talk:[dial\x20string]','talk:[queue]','sequelize'];(function(_0x5b2cc7,_0x402395){var _0x46167a=function(_0x51a1f0){while(--_0x51a1f0){_0x5b2cc7['push'](_0x5b2cc7['shift']());}};_0x46167a(++_0x402395);}(_0x593e,0xcb));var _0xe593=function(_0x64db78,_0x42cad3){_0x64db78=_0x64db78-0x0;var _0x16f2be=_0x593e[_0x64db78];return _0x16f2be;};'use strict';var Sequelize=require(_0xe593('0x0'));var moment=require(_0xe593('0x1'));module[_0xe593('0x2')]={'channel':{'type':Sequelize[_0xe593('0x3')]},'membername':{'type':Sequelize[_0xe593('0x3')]},'interface':{'type':Sequelize[_0xe593('0x3')]},'type':{'type':Sequelize[_0xe593('0x3')],'defaultValue':_0xe593('0x4'),'comment':'LOGIN,\x20PAUSE,\x20TALKING'},'duration':{'type':Sequelize[_0xe593('0x5')]},'enterAt':{'type':Sequelize[_0xe593('0x6')]},'exitAt':{'type':Sequelize[_0xe593('0x6')],'set':function(_0x1e50d3){var _0x3b7082=moment(_0x1e50d3);var _0x14cff3=moment(this[_0xe593('0x7')](_0xe593('0x8')));var _0x169c08=_0x3b7082[_0xe593('0x9')](_0x14cff3,'seconds');this[_0xe593('0xa')](_0xe593('0xb'),_0x1e50d3);this[_0xe593('0xa')]('duration',_0x169c08||null);}},'data1':{'type':Sequelize['STRING'],'comment':_0xe593('0xc')},'data2':{'type':Sequelize[_0xe593('0x3')],'comment':_0xe593('0xd')},'data3':{'type':Sequelize['STRING'],'comment':_0xe593('0xe')},'data4':{'type':Sequelize[_0xe593('0x3')],'comment':_0xe593('0xf')},'data5':{'type':Sequelize[_0xe593('0x3')],'comment':_0xe593('0x10')},'role':{'type':Sequelize[_0xe593('0x3')]},'internal':{'type':Sequelize[_0xe593('0x5')]},'uniqueid':{'type':Sequelize[_0xe593('0x3')]}};
\ No newline at end of file
+var _0x1978=['DATE','getDataValue','enterAt','diff','seconds','setDataValue','exitAt','duration','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[destination]','talk:[dial\x20string]','talk:[queue]','moment','exports','STRING','DEFAULT\x20PAUSE','LOGIN,\x20PAUSE,\x20TALKING','INTEGER'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0x1978,0x174));var _0x8197=function(_0x58e99b,_0xaca037){_0x58e99b=_0x58e99b-0x0;var _0xf539bd=_0x1978[_0x58e99b];return _0xf539bd;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x8197('0x0'));module[_0x8197('0x1')]={'channel':{'type':Sequelize[_0x8197('0x2')]},'membername':{'type':Sequelize[_0x8197('0x2')]},'interface':{'type':Sequelize[_0x8197('0x2')]},'type':{'type':Sequelize[_0x8197('0x2')],'defaultValue':_0x8197('0x3'),'comment':_0x8197('0x4')},'duration':{'type':Sequelize[_0x8197('0x5')]},'enterAt':{'type':Sequelize[_0x8197('0x6')]},'exitAt':{'type':Sequelize['DATE'],'set':function(_0x215d3c){var _0x1556ad=moment(_0x215d3c);var _0x117bf1=moment(this[_0x8197('0x7')](_0x8197('0x8')));var _0x1bc265=_0x1556ad[_0x8197('0x9')](_0x117bf1,_0x8197('0xa'));this[_0x8197('0xb')](_0x8197('0xc'),_0x215d3c);this[_0x8197('0xb')](_0x8197('0xd'),_0x1bc265||null);}},'data1':{'type':Sequelize[_0x8197('0x2')],'comment':_0x8197('0xe')},'data2':{'type':Sequelize[_0x8197('0x2')],'comment':'talk:[start]'},'data3':{'type':Sequelize[_0x8197('0x2')],'comment':_0x8197('0xf')},'data4':{'type':Sequelize[_0x8197('0x2')],'comment':_0x8197('0x10')},'data5':{'type':Sequelize[_0x8197('0x2')],'comment':_0x8197('0x11')},'role':{'type':Sequelize['STRING']},'internal':{'type':Sequelize['INTEGER']},'uniqueid':{'type':Sequelize[_0x8197('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','find','create','body','update','destroy','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','then','end','error','stack','send','index','map','MemberReport','rawAttributes','fieldName','type','key','model','name','query'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0xedd9,0xfc));var _0x9edd=function(_0x2ee500,_0x4f6d20){_0x2ee500=_0x2ee500-0x0;var _0x1da789=_0xedd9[_0x2ee500];return _0x1da789;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9edd('0x0'));var zipdir=require(_0x9edd('0x1'));var jsonpatch=require(_0x9edd('0x2'));var rp=require(_0x9edd('0x3'));var moment=require(_0x9edd('0x4'));var BPromise=require(_0x9edd('0x5'));var Mustache=require(_0x9edd('0x6'));var util=require(_0x9edd('0x7'));var path=require('path');var sox=require(_0x9edd('0x8'));var csv=require(_0x9edd('0x9'));var ejs=require(_0x9edd('0xa'));var fs=require('fs');var fs_extra=require(_0x9edd('0xb'));var _=require('lodash');var squel=require(_0x9edd('0xc'));var crypto=require('crypto');var jsforce=require(_0x9edd('0xd'));var deskjs=require(_0x9edd('0xe'));var toCsv=require(_0x9edd('0x9'));var querystring=require(_0x9edd('0xf'));var Papa=require('papaparse');var Redis=require(_0x9edd('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x9edd('0x11'));var as=require(_0x9edd('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9edd('0x13'))(_0x9edd('0x14'));var utils=require('../../config/utils');var config=require(_0x9edd('0x15'));var licenseUtil=require(_0x9edd('0x16'));var db=require(_0x9edd('0x17'))['db'];function respondWithStatusCode(_0xfd544a,_0x287ddd){_0x287ddd=_0x287ddd||0xcc;return function(_0x3a7b84){if(_0x3a7b84){return _0xfd544a[_0x9edd('0x18')](_0x287ddd);}return _0xfd544a[_0x9edd('0x19')](_0x287ddd)['end']();};}function respondWithResult(_0x176bfa,_0x44fc7c){_0x44fc7c=_0x44fc7c||0xc8;return function(_0x891832){if(_0x891832){return _0x176bfa[_0x9edd('0x19')](_0x44fc7c)[_0x9edd('0x1a')](_0x891832);}};}function respondWithFilteredResult(_0x338f3c,_0x1042aa){return function(_0x75a4ab){if(_0x75a4ab){var _0x4ea60f=typeof _0x1042aa[_0x9edd('0x1b')]===_0x9edd('0x1c')&&typeof _0x1042aa[_0x9edd('0x1d')]==='undefined';var _0x1b54c0=_0x75a4ab[_0x9edd('0x1e')];var _0x40ba32=_0x4ea60f?0x0:_0x1042aa['offset'];var _0x43dc70=_0x4ea60f?_0x75a4ab['count']:_0x1042aa[_0x9edd('0x1b')]+_0x1042aa[_0x9edd('0x1d')];var _0x4bdb88;if(_0x43dc70>=_0x1b54c0){_0x43dc70=_0x1b54c0;_0x4bdb88=0xc8;}else{_0x4bdb88=0xce;}_0x338f3c['status'](_0x4bdb88);return _0x338f3c[_0x9edd('0x1f')]('Content-Range',_0x40ba32+'-'+_0x43dc70+'/'+_0x1b54c0)[_0x9edd('0x1a')](_0x75a4ab);}return null;};}function patchUpdates(_0x54a03f){return function(_0x535f37){try{jsonpatch[_0x9edd('0x20')](_0x535f37,_0x54a03f,!![]);}catch(_0x1c46a8){return BPromise['reject'](_0x1c46a8);}return _0x535f37['save']();};}function saveUpdates(_0x341d67,_0x186186){return function(_0x477878){if(_0x477878){return _0x477878['update'](_0x341d67)[_0x9edd('0x21')](function(_0x1dca43){return _0x1dca43;});}return null;};}function removeEntity(_0x44a6c1,_0x2ca65f){return function(_0x339a0d){if(_0x339a0d){return _0x339a0d['destroy']()[_0x9edd('0x21')](function(){_0x44a6c1[_0x9edd('0x19')](0xcc)[_0x9edd('0x22')]();});}};}function handleEntityNotFound(_0x2f9f86,_0x310a4d){return function(_0x4d507f){if(!_0x4d507f){_0x2f9f86['sendStatus'](0x194);}return _0x4d507f;};}function handleError(_0x3276ee,_0xfeca7b){_0xfeca7b=_0xfeca7b||0x1f4;return function(_0x8d67aa){logger[_0x9edd('0x23')](_0x8d67aa[_0x9edd('0x24')]);if(_0x8d67aa['name']){delete _0x8d67aa['name'];}_0x3276ee[_0x9edd('0x19')](_0xfeca7b)[_0x9edd('0x25')](_0x8d67aa);};}exports[_0x9edd('0x26')]=function(_0x52746a,_0x238b22){var _0x28cfae={},_0x2ae8dd={},_0x41af53={'count':0x0,'rows':[]};var _0x5eccfb=_[_0x9edd('0x27')](db[_0x9edd('0x28')][_0x9edd('0x29')],function(_0x12c1bc){return{'name':_0x12c1bc[_0x9edd('0x2a')],'type':_0x12c1bc[_0x9edd('0x2b')][_0x9edd('0x2c')]};});_0x2ae8dd[_0x9edd('0x2d')]=_[_0x9edd('0x27')](_0x5eccfb,_0x9edd('0x2e'));_0x2ae8dd[_0x9edd('0x2f')]=_[_0x9edd('0x30')](_0x52746a[_0x9edd('0x2f')]);_0x2ae8dd[_0x9edd('0x31')]=_[_0x9edd('0x32')](_0x2ae8dd['model'],_0x2ae8dd[_0x9edd('0x2f')]);_0x28cfae[_0x9edd('0x33')]=_[_0x9edd('0x32')](_0x2ae8dd['model'],qs[_0x9edd('0x34')](_0x52746a[_0x9edd('0x2f')][_0x9edd('0x34')]));_0x28cfae[_0x9edd('0x33')]=_0x28cfae[_0x9edd('0x33')][_0x9edd('0x35')]?_0x28cfae[_0x9edd('0x33')]:_0x2ae8dd[_0x9edd('0x2d')];if(!_0x52746a[_0x9edd('0x2f')][_0x9edd('0x36')](_0x9edd('0x37'))){_0x28cfae[_0x9edd('0x1d')]=qs[_0x9edd('0x1d')](_0x52746a[_0x9edd('0x2f')]['limit']);_0x28cfae[_0x9edd('0x1b')]=qs['offset'](_0x52746a[_0x9edd('0x2f')][_0x9edd('0x1b')]);}_0x28cfae[_0x9edd('0x38')]=qs[_0x9edd('0x39')](_0x52746a[_0x9edd('0x2f')]['sort']);_0x28cfae[_0x9edd('0x3a')]=qs[_0x9edd('0x31')](_[_0x9edd('0x3b')](_0x52746a[_0x9edd('0x2f')],_0x2ae8dd[_0x9edd('0x31')]),_0x5eccfb);if(_0x52746a[_0x9edd('0x2f')][_0x9edd('0x3c')]){_0x28cfae[_0x9edd('0x3a')]=_[_0x9edd('0x3d')](_0x28cfae[_0x9edd('0x3a')],{'$or':_['map'](_0x5eccfb,function(_0x231604){if(_0x231604['type']!==_0x9edd('0x3e')){var _0x5658d6={};_0x5658d6[_0x231604[_0x9edd('0x2e')]]={'$like':'%'+_0x52746a[_0x9edd('0x2f')][_0x9edd('0x3c')]+'%'};return _0x5658d6;}})});}_0x28cfae=_['merge']({},_0x28cfae,_0x52746a[_0x9edd('0x3f')]);var _0xcbd0ef={'where':_0x28cfae[_0x9edd('0x3a')]};return db['MemberReport'][_0x9edd('0x1e')](_0xcbd0ef)['then'](function(_0x1fc4fb){_0x41af53[_0x9edd('0x1e')]=_0x1fc4fb;if(_0x52746a['query'][_0x9edd('0x40')]){_0x28cfae[_0x9edd('0x41')]=[{'all':!![]}];}return db[_0x9edd('0x28')][_0x9edd('0x42')](_0x28cfae);})['then'](function(_0x449f01){_0x41af53['rows']=_0x449f01;return _0x41af53;})[_0x9edd('0x21')](respondWithFilteredResult(_0x238b22,_0x28cfae))[_0x9edd('0x43')](handleError(_0x238b22,null));};exports['show']=function(_0x318757,_0x49a128){var _0x548299={'raw':!![],'where':{'id':_0x318757[_0x9edd('0x44')]['id']}},_0x369b69={};_0x369b69[_0x9edd('0x2d')]=_[_0x9edd('0x30')](db[_0x9edd('0x28')][_0x9edd('0x29')]);_0x369b69[_0x9edd('0x2f')]=_[_0x9edd('0x30')](_0x318757[_0x9edd('0x2f')]);_0x369b69[_0x9edd('0x31')]=_[_0x9edd('0x32')](_0x369b69[_0x9edd('0x2d')],_0x369b69[_0x9edd('0x2f')]);_0x548299[_0x9edd('0x33')]=_[_0x9edd('0x32')](_0x369b69['model'],qs[_0x9edd('0x34')](_0x318757[_0x9edd('0x2f')][_0x9edd('0x34')]));_0x548299[_0x9edd('0x33')]=_0x548299[_0x9edd('0x33')][_0x9edd('0x35')]?_0x548299[_0x9edd('0x33')]:_0x369b69['model'];if(_0x318757['query']['includeAll']){_0x548299[_0x9edd('0x41')]=[{'all':!![]}];}_0x548299=_['merge']({},_0x548299,_0x318757[_0x9edd('0x3f')]);return db[_0x9edd('0x28')][_0x9edd('0x45')](_0x548299)[_0x9edd('0x21')](handleEntityNotFound(_0x49a128,null))[_0x9edd('0x21')](respondWithResult(_0x49a128,null))['catch'](handleError(_0x49a128,null));};exports[_0x9edd('0x46')]=function(_0x35e63c,_0x40e33d){return db['MemberReport'][_0x9edd('0x46')](_0x35e63c[_0x9edd('0x47')],{})[_0x9edd('0x21')](respondWithResult(_0x40e33d,0xc9))[_0x9edd('0x43')](handleError(_0x40e33d,null));};exports[_0x9edd('0x48')]=function(_0x35bdec,_0x4d4f33){if(_0x35bdec[_0x9edd('0x47')]['id']){delete _0x35bdec[_0x9edd('0x47')]['id'];}return db['MemberReport'][_0x9edd('0x45')]({'where':{'id':_0x35bdec[_0x9edd('0x44')]['id']}})['then'](handleEntityNotFound(_0x4d4f33,null))[_0x9edd('0x21')](saveUpdates(_0x35bdec[_0x9edd('0x47')],null))[_0x9edd('0x21')](respondWithResult(_0x4d4f33,null))['catch'](handleError(_0x4d4f33,null));};exports[_0x9edd('0x49')]=function(_0x151157,_0x317a60){return db[_0x9edd('0x28')]['find']({'where':{'id':_0x151157[_0x9edd('0x44')]['id']}})[_0x9edd('0x21')](handleEntityNotFound(_0x317a60,null))[_0x9edd('0x21')](removeEntity(_0x317a60,null))['catch'](handleError(_0x317a60,null));};exports[_0x9edd('0x4a')]=function(_0x21f6ce,_0x57db43){return db[_0x9edd('0x28')]['describe']()[_0x9edd('0x21')](respondWithResult(_0x57db43,null))[_0x9edd('0x43')](handleError(_0x57db43,null));};
\ No newline at end of file
+var _0x9957=['util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','index','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','MemberReport','findAll','rows','show','rawAttributes','includeAll','include','find','create','catch','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache'];(function(_0x3b9c71,_0x52bd2f){var _0x419087=function(_0x474819){while(--_0x474819){_0x3b9c71['push'](_0x3b9c71['shift']());}};_0x419087(++_0x52bd2f);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var emlformat=require(_0x7995('0x0'));var rimraf=require(_0x7995('0x1'));var zipdir=require(_0x7995('0x2'));var jsonpatch=require(_0x7995('0x3'));var rp=require('request-promise');var moment=require(_0x7995('0x4'));var BPromise=require(_0x7995('0x5'));var Mustache=require(_0x7995('0x6'));var util=require(_0x7995('0x7'));var path=require('path');var sox=require(_0x7995('0x8'));var csv=require(_0x7995('0x9'));var ejs=require(_0x7995('0xa'));var fs=require('fs');var fs_extra=require(_0x7995('0xb'));var _=require(_0x7995('0xc'));var squel=require(_0x7995('0xd'));var crypto=require('crypto');var jsforce=require(_0x7995('0xe'));var deskjs=require(_0x7995('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7995('0x10'));var Papa=require(_0x7995('0x11'));var Redis=require(_0x7995('0x12'));var authService=require(_0x7995('0x13'));var qs=require(_0x7995('0x14'));var as=require(_0x7995('0x15'));var hardwareService=require(_0x7995('0x16'));var logger=require('../../config/logger')(_0x7995('0x17'));var utils=require(_0x7995('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7995('0x19'));var db=require(_0x7995('0x1a'))['db'];function respondWithStatusCode(_0x19a27e,_0x385f00){_0x385f00=_0x385f00||0xcc;return function(_0x281576){if(_0x281576){return _0x19a27e[_0x7995('0x1b')](_0x385f00);}return _0x19a27e[_0x7995('0x1c')](_0x385f00)['end']();};}function respondWithResult(_0x58f5ad,_0x2b4e94){_0x2b4e94=_0x2b4e94||0xc8;return function(_0x2233dd){if(_0x2233dd){return _0x58f5ad[_0x7995('0x1c')](_0x2b4e94)[_0x7995('0x1d')](_0x2233dd);}};}function respondWithFilteredResult(_0x3f1d3e,_0x1a5310){return function(_0x2202ce){if(_0x2202ce){var _0x41cbf0=typeof _0x1a5310['offset']===_0x7995('0x1e')&&typeof _0x1a5310['limit']===_0x7995('0x1e');var _0x37f297=_0x2202ce[_0x7995('0x1f')];var _0x291317=_0x41cbf0?0x0:_0x1a5310[_0x7995('0x20')];var _0x37a7d4=_0x41cbf0?_0x2202ce['count']:_0x1a5310['offset']+_0x1a5310[_0x7995('0x21')];var _0x5e6f90;if(_0x37a7d4>=_0x37f297){_0x37a7d4=_0x37f297;_0x5e6f90=0xc8;}else{_0x5e6f90=0xce;}_0x3f1d3e['status'](_0x5e6f90);return _0x3f1d3e[_0x7995('0x22')](_0x7995('0x23'),_0x291317+'-'+_0x37a7d4+'/'+_0x37f297)['json'](_0x2202ce);}return null;};}function patchUpdates(_0x3a9b54){return function(_0x51f276){try{jsonpatch['apply'](_0x51f276,_0x3a9b54,!![]);}catch(_0x3e4c54){return BPromise[_0x7995('0x24')](_0x3e4c54);}return _0x51f276[_0x7995('0x25')]();};}function saveUpdates(_0x1a8568,_0x460924){return function(_0x1c278a){if(_0x1c278a){return _0x1c278a['update'](_0x1a8568)[_0x7995('0x26')](function(_0x46ee4b){return _0x46ee4b;});}return null;};}function removeEntity(_0x204507,_0x285437){return function(_0x563799){if(_0x563799){return _0x563799[_0x7995('0x27')]()[_0x7995('0x26')](function(){_0x204507[_0x7995('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39df42,_0x34e70c){return function(_0x401dc3){if(!_0x401dc3){_0x39df42[_0x7995('0x1b')](0x194);}return _0x401dc3;};}function handleError(_0x3a3fcf,_0x2a307e){_0x2a307e=_0x2a307e||0x1f4;return function(_0x56691a){logger[_0x7995('0x28')](_0x56691a['stack']);if(_0x56691a[_0x7995('0x29')]){delete _0x56691a[_0x7995('0x29')];}_0x3a3fcf[_0x7995('0x1c')](_0x2a307e)[_0x7995('0x2a')](_0x56691a);};}exports[_0x7995('0x2b')]=function(_0x4b6f99,_0x9b2a15){var _0x514445={},_0x456a28={},_0x3250e0={'count':0x0,'rows':[]};var _0x4253e5=_['map'](db['MemberReport']['rawAttributes'],function(_0x3573be){return{'name':_0x3573be[_0x7995('0x2c')],'type':_0x3573be[_0x7995('0x2d')][_0x7995('0x2e')]};});_0x456a28[_0x7995('0x2f')]=_[_0x7995('0x30')](_0x4253e5,'name');_0x456a28['query']=_[_0x7995('0x31')](_0x4b6f99['query']);_0x456a28[_0x7995('0x32')]=_[_0x7995('0x33')](_0x456a28[_0x7995('0x2f')],_0x456a28[_0x7995('0x34')]);_0x514445[_0x7995('0x35')]=_['intersection'](_0x456a28[_0x7995('0x2f')],qs[_0x7995('0x36')](_0x4b6f99['query']['fields']));_0x514445['attributes']=_0x514445[_0x7995('0x35')][_0x7995('0x37')]?_0x514445['attributes']:_0x456a28[_0x7995('0x2f')];if(!_0x4b6f99['query'][_0x7995('0x38')](_0x7995('0x39'))){_0x514445[_0x7995('0x21')]=qs['limit'](_0x4b6f99['query'][_0x7995('0x21')]);_0x514445['offset']=qs['offset'](_0x4b6f99[_0x7995('0x34')][_0x7995('0x20')]);}_0x514445['order']=qs[_0x7995('0x3a')](_0x4b6f99[_0x7995('0x34')][_0x7995('0x3a')]);_0x514445[_0x7995('0x3b')]=qs[_0x7995('0x32')](_['pick'](_0x4b6f99[_0x7995('0x34')],_0x456a28[_0x7995('0x32')]),_0x4253e5);if(_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]){_0x514445['where']=_[_0x7995('0x3d')](_0x514445[_0x7995('0x3b')],{'$or':_[_0x7995('0x30')](_0x4253e5,function(_0xe5ea43){if(_0xe5ea43[_0x7995('0x2d')]!==_0x7995('0x3e')){var _0x5688a1={};_0x5688a1[_0xe5ea43[_0x7995('0x29')]]={'$like':'%'+_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]+'%'};return _0x5688a1;}})});}_0x514445=_[_0x7995('0x3d')]({},_0x514445,_0x4b6f99[_0x7995('0x3f')]);var _0x298fc2={'where':_0x514445[_0x7995('0x3b')]};return db[_0x7995('0x40')][_0x7995('0x1f')](_0x298fc2)[_0x7995('0x26')](function(_0x6fe77b){_0x3250e0[_0x7995('0x1f')]=_0x6fe77b;if(_0x4b6f99[_0x7995('0x34')]['includeAll']){_0x514445['include']=[{'all':!![]}];}return db[_0x7995('0x40')][_0x7995('0x41')](_0x514445);})['then'](function(_0x4b0855){_0x3250e0[_0x7995('0x42')]=_0x4b0855;return _0x3250e0;})['then'](respondWithFilteredResult(_0x9b2a15,_0x514445))['catch'](handleError(_0x9b2a15,null));};exports[_0x7995('0x43')]=function(_0x36e28b,_0x35c8ff){var _0x576b96={'raw':!![],'where':{'id':_0x36e28b['params']['id']}},_0x46ac4f={};_0x46ac4f[_0x7995('0x2f')]=_['keys'](db['MemberReport'][_0x7995('0x44')]);_0x46ac4f[_0x7995('0x34')]=_[_0x7995('0x31')](_0x36e28b[_0x7995('0x34')]);_0x46ac4f['filters']=_[_0x7995('0x33')](_0x46ac4f[_0x7995('0x2f')],_0x46ac4f[_0x7995('0x34')]);_0x576b96[_0x7995('0x35')]=_['intersection'](_0x46ac4f['model'],qs[_0x7995('0x36')](_0x36e28b['query'][_0x7995('0x36')]));_0x576b96['attributes']=_0x576b96[_0x7995('0x35')]['length']?_0x576b96[_0x7995('0x35')]:_0x46ac4f[_0x7995('0x2f')];if(_0x36e28b['query'][_0x7995('0x45')]){_0x576b96[_0x7995('0x46')]=[{'all':!![]}];}_0x576b96=_[_0x7995('0x3d')]({},_0x576b96,_0x36e28b[_0x7995('0x3f')]);return db['MemberReport'][_0x7995('0x47')](_0x576b96)[_0x7995('0x26')](handleEntityNotFound(_0x35c8ff,null))[_0x7995('0x26')](respondWithResult(_0x35c8ff,null))['catch'](handleError(_0x35c8ff,null));};exports[_0x7995('0x48')]=function(_0x44f516,_0x511567){return db[_0x7995('0x40')][_0x7995('0x48')](_0x44f516['body'],{})[_0x7995('0x26')](respondWithResult(_0x511567,0xc9))[_0x7995('0x49')](handleError(_0x511567,null));};exports['update']=function(_0x3d1dbb,_0x5843ba){if(_0x3d1dbb[_0x7995('0x4a')]['id']){delete _0x3d1dbb[_0x7995('0x4a')]['id'];}return db[_0x7995('0x40')][_0x7995('0x47')]({'where':{'id':_0x3d1dbb[_0x7995('0x4b')]['id']}})[_0x7995('0x26')](handleEntityNotFound(_0x5843ba,null))[_0x7995('0x26')](saveUpdates(_0x3d1dbb['body'],null))[_0x7995('0x26')](respondWithResult(_0x5843ba,null))[_0x7995('0x49')](handleError(_0x5843ba,null));};exports[_0x7995('0x27')]=function(_0x4ffc8a,_0x19da63){return db[_0x7995('0x40')][_0x7995('0x47')]({'where':{'id':_0x4ffc8a['params']['id']}})['then'](handleEntityNotFound(_0x19da63,null))['then'](removeEntity(_0x19da63,null))[_0x7995('0x49')](handleError(_0x19da63,null));};exports[_0x7995('0x4c')]=function(_0x4cf5db,_0x1cd85){return db[_0x7995('0x40')][_0x7995('0x4c')]()[_0x7995('0x26')](respondWithResult(_0x1cd85,null))[_0x7995('0x49')](handleError(_0x1cd85,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee3b=['interface','lodash','../../config/logger','api','request-promise','rimraf','../../config/environment','./memberReport.attributes','exports','MemberReport','report_member','membername'];(function(_0x1f3b90,_0x50a2e0){var _0x2a07e6=function(_0x2a4fd6){while(--_0x2a4fd6){_0x1f3b90['push'](_0x1f3b90['shift']());}};_0x2a07e6(++_0x50a2e0);}(_0xee3b,0xfd));var _0xbee3=function(_0x156e23,_0x40da05){_0x156e23=_0x156e23-0x0;var _0x5dbd51=_0xee3b[_0x156e23];return _0x5dbd51;};'use strict';var _=require(_0xbee3('0x0'));var util=require('util');var logger=require(_0xbee3('0x1'))(_0xbee3('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xbee3('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xbee3('0x4'));var config=require(_0xbee3('0x5'));var attributes=require(_0xbee3('0x6'));module[_0xbee3('0x7')]=function(_0x276461,_0x2e028d){return _0x276461['define'](_0xbee3('0x8'),attributes,{'tableName':_0xbee3('0x9'),'paranoid':![],'indexes':[{'name':'membername_interface','fields':[_0xbee3('0xa'),_0xbee3('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xdc1a=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./memberReport.attributes','exports','define','report_member','membername_interface','interface','util'];(function(_0x277492,_0x199fd1){var _0x4b8c46=function(_0x19f8dd){while(--_0x19f8dd){_0x277492['push'](_0x277492['shift']());}};_0x4b8c46(++_0x199fd1);}(_0xdc1a,0x133));var _0xadc1=function(_0x3eee30,_0x58080c){_0x3eee30=_0x3eee30-0x0;var _0x3c96ad=_0xdc1a[_0x3eee30];return _0x3c96ad;};'use strict';var _=require('lodash');var util=require(_0xadc1('0x0'));var logger=require('../../config/logger')(_0xadc1('0x1'));var moment=require(_0xadc1('0x2'));var BPromise=require(_0xadc1('0x3'));var rp=require(_0xadc1('0x4'));var fs=require('fs');var path=require(_0xadc1('0x5'));var rimraf=require(_0xadc1('0x6'));var config=require(_0xadc1('0x7'));var attributes=require(_0xadc1('0x8'));module[_0xadc1('0x9')]=function(_0x14fd14,_0x379bce){return _0x14fd14[_0xadc1('0xa')]('MemberReport',attributes,{'tableName':_0xadc1('0xb'),'paranoid':![],'indexes':[{'name':_0xadc1('0xc'),'fields':['membername',_0xadc1('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8efc=['error','message','result','catch','GetMemberReport','options','raw','attributes','limit','include','map','model','debug','CreateMemberReport','body','UpdateMemberReport','MemberReport','update','where','moment','randomstring','../../mysqldb','../../config/utils','../../config/environment','client','http','then','info','MemberReport,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x15106b,_0x4d96f6){var _0x521203=function(_0x4dbe23){while(--_0x4dbe23){_0x15106b['push'](_0x15106b['shift']());}};_0x521203(++_0x4d96f6);}(_0x8efc,0x8f));var _0xc8ef=function(_0x4d7241,_0x32aa1f){_0x4d7241=_0x4d7241-0x0;var _0x59d9e2=_0x8efc[_0x4d7241];return _0x59d9e2;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc8ef('0x0'));var BPromise=require('bluebird');var rs=require(_0xc8ef('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc8ef('0x2'))['db'];var utils=require(_0xc8ef('0x3'));var logger=require('../../config/logger')('rpc');var config=require(_0xc8ef('0x4'));var jayson=require('jayson/promise');var client=jayson[_0xc8ef('0x5')][_0xc8ef('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x1648ac,_0x1f7596,_0x819e70){return new BPromise(function(_0x522d75,_0x4331d3){return client['request'](_0x1648ac,_0x819e70)[_0xc8ef('0x7')](function(_0xbdd184){logger[_0xc8ef('0x8')](_0xc8ef('0x9'),_0x1f7596,'request\x20sent');logger['debug']('MemberReport,\x20%s,\x20%s,\x20%s',_0x1f7596,_0xc8ef('0xa'),JSON[_0xc8ef('0xb')](_0xbdd184));if(_0xbdd184[_0xc8ef('0xc')]){if(_0xbdd184[_0xc8ef('0xc')]['code']===0x1f4){logger[_0xc8ef('0xc')](_0xc8ef('0x9'),_0x1f7596,_0xbdd184[_0xc8ef('0xc')][_0xc8ef('0xd')]);return _0x4331d3(_0xbdd184[_0xc8ef('0xc')][_0xc8ef('0xd')]);}logger[_0xc8ef('0xc')](_0xc8ef('0x9'),_0x1f7596,_0xbdd184['error']['message']);return _0x522d75(_0xbdd184[_0xc8ef('0xc')][_0xc8ef('0xd')]);}else{logger[_0xc8ef('0x8')](_0xc8ef('0x9'),_0x1f7596,_0xc8ef('0xa'));_0x522d75(_0xbdd184[_0xc8ef('0xe')][_0xc8ef('0xd')]);}})[_0xc8ef('0xf')](function(_0x5569c0){logger['error'](_0xc8ef('0x9'),_0x1f7596,_0x5569c0);_0x4331d3(_0x5569c0);});});}exports[_0xc8ef('0x10')]=function(_0x166ec4){var _0x183c85=this;return new Promise(function(_0x5a2815,_0x5dc90b){return db['MemberReport']['findAll']({'raw':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4['options'][_0xc8ef('0x12')]===undefined?!![]:![]:!![],'where':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')]['where']||null:null,'attributes':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x13')]||null:null,'limit':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x14')]||null:null,'include':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x15')]?_[_0xc8ef('0x16')](_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x15')],function(_0x52f695){return{'model':db[_0x52f695['model']],'as':_0x52f695['as'],'attributes':_0x52f695[_0xc8ef('0x13')],'include':_0x52f695[_0xc8ef('0x15')]?_[_0xc8ef('0x16')](_0x52f695[_0xc8ef('0x15')],function(_0x16c6d4){return{'model':db[_0x16c6d4['model']],'as':_0x16c6d4['as'],'attributes':_0x16c6d4['attributes'],'include':_0x16c6d4[_0xc8ef('0x15')]?_[_0xc8ef('0x16')](_0x16c6d4[_0xc8ef('0x15')],function(_0x50bb55){return{'model':db[_0x50bb55[_0xc8ef('0x17')]],'as':_0x50bb55['as'],'attributes':_0x50bb55[_0xc8ef('0x13')]};}):[]};}):[]};}):[]:[]})[_0xc8ef('0x7')](function(_0xc6749){logger['info']('GetMemberReport',_0x166ec4);logger[_0xc8ef('0x18')](_0xc8ef('0x10'),_0x166ec4,JSON[_0xc8ef('0xb')](_0xc6749));_0x5a2815(_0xc6749);})['catch'](function(_0x309985){logger[_0xc8ef('0xc')](_0xc8ef('0x10'),_0x309985['message'],_0x166ec4);_0x5dc90b(_0x183c85[_0xc8ef('0xc')](0x1f4,_0x309985[_0xc8ef('0xd')]));});});};exports[_0xc8ef('0x19')]=function(_0x3a54d4){var _0x17c07c=this;return new Promise(function(_0x5b8fbe,_0x27fd8d){return db['MemberReport']['create'](_0x3a54d4[_0xc8ef('0x1a')],{'raw':_0x3a54d4['options']?_0x3a54d4[_0xc8ef('0x11')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x21a1c5){logger[_0xc8ef('0x8')](_0xc8ef('0x19'),_0x3a54d4);logger[_0xc8ef('0x18')](_0xc8ef('0x19'),_0x3a54d4,JSON[_0xc8ef('0xb')](_0x21a1c5));_0x5b8fbe(_0x21a1c5);})['catch'](function(_0x673423){logger[_0xc8ef('0xc')]('CreateMemberReport',_0x673423[_0xc8ef('0xd')],_0x3a54d4);_0x27fd8d(_0x17c07c['error'](0x1f4,_0x673423['message']));});});};exports[_0xc8ef('0x1b')]=function(_0x18680b){var _0x122546=this;return new Promise(function(_0x43d1df,_0x4791b4){return db[_0xc8ef('0x1c')][_0xc8ef('0x1d')](_0x18680b[_0xc8ef('0x1a')],{'raw':_0x18680b[_0xc8ef('0x11')]?_0x18680b[_0xc8ef('0x11')][_0xc8ef('0x12')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x18680b[_0xc8ef('0x11')]?_0x18680b['options'][_0xc8ef('0x1e')]||null:null,'attributes':_0x18680b['options']?_0x18680b['options'][_0xc8ef('0x13')]||null:null,'limit':_0x18680b[_0xc8ef('0x11')]?_0x18680b[_0xc8ef('0x11')][_0xc8ef('0x14')]||null:null})[_0xc8ef('0x7')](function(_0x194e89){logger[_0xc8ef('0x8')](_0xc8ef('0x1b'),_0x18680b);logger[_0xc8ef('0x18')](_0xc8ef('0x1b'),_0x18680b,JSON[_0xc8ef('0xb')](_0x194e89));_0x43d1df(_0x194e89);})[_0xc8ef('0xf')](function(_0x2039c6){logger['error']('UpdateMemberReport',_0x2039c6[_0xc8ef('0xd')],_0x18680b);_0x4791b4(_0x122546[_0xc8ef('0xc')](0x1f4,_0x2039c6[_0xc8ef('0xd')]));});});};
\ No newline at end of file
+var _0x254a=['lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','info','debug','MemberReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','MemberReport,\x20%s,\x20%s','result','catch','MemberReport','findAll','options','where','attributes','include','map','model','then','GetMemberReport','CreateMemberReport','create','body','raw','UpdateMemberReport','limit'];(function(_0x1e685f,_0x1af97b){var _0x310cd0=function(_0x250836){while(--_0x250836){_0x1e685f['push'](_0x1e685f['shift']());}};_0x310cd0(++_0x1af97b);}(_0x254a,0x138));var _0xa254=function(_0x163040,_0x38a58c){_0x163040=_0x163040-0x0;var _0x364667=_0x254a[_0x163040];return _0x364667;};'use strict';var _=require(_0xa254('0x0'));var util=require(_0xa254('0x1'));var moment=require(_0xa254('0x2'));var BPromise=require('bluebird');var rs=require(_0xa254('0x3'));var fs=require('fs');var Redis=require(_0xa254('0x4'));var db=require(_0xa254('0x5'))['db'];var utils=require(_0xa254('0x6'));var logger=require('../../config/logger')(_0xa254('0x7'));var config=require('../../config/environment');var jayson=require(_0xa254('0x8'));var client=jayson[_0xa254('0x9')][_0xa254('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x597d72,_0x5951b2,_0xaeed42){return new BPromise(function(_0x352a44,_0x50c5a3){return client[_0xa254('0xb')](_0x597d72,_0xaeed42)['then'](function(_0x19d140){logger[_0xa254('0xc')]('MemberReport,\x20%s,\x20%s',_0x5951b2,'request\x20sent');logger[_0xa254('0xd')](_0xa254('0xe'),_0x5951b2,_0xa254('0xf'),JSON[_0xa254('0x10')](_0x19d140));if(_0x19d140[_0xa254('0x11')]){if(_0x19d140['error'][_0xa254('0x12')]===0x1f4){logger['error']('MemberReport,\x20%s,\x20%s',_0x5951b2,_0x19d140[_0xa254('0x11')][_0xa254('0x13')]);return _0x50c5a3(_0x19d140['error'][_0xa254('0x13')]);}logger[_0xa254('0x11')](_0xa254('0x14'),_0x5951b2,_0x19d140[_0xa254('0x11')][_0xa254('0x13')]);return _0x352a44(_0x19d140['error'][_0xa254('0x13')]);}else{logger[_0xa254('0xc')](_0xa254('0x14'),_0x5951b2,_0xa254('0xf'));_0x352a44(_0x19d140[_0xa254('0x15')][_0xa254('0x13')]);}})[_0xa254('0x16')](function(_0x1f21ae){logger[_0xa254('0x11')]('MemberReport,\x20%s,\x20%s',_0x5951b2,_0x1f21ae);_0x50c5a3(_0x1f21ae);});});}exports['GetMemberReport']=function(_0x4a249f){var _0x34c9fe=this;return new Promise(function(_0x2dcf3a,_0x31ec79){return db[_0xa254('0x17')][_0xa254('0x18')]({'raw':_0x4a249f[_0xa254('0x19')]?_0x4a249f[_0xa254('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x4a249f[_0xa254('0x19')]?_0x4a249f['options'][_0xa254('0x1a')]||null:null,'attributes':_0x4a249f[_0xa254('0x19')]?_0x4a249f['options'][_0xa254('0x1b')]||null:null,'limit':_0x4a249f[_0xa254('0x19')]?_0x4a249f['options']['limit']||null:null,'include':_0x4a249f[_0xa254('0x19')]?_0x4a249f[_0xa254('0x19')][_0xa254('0x1c')]?_['map'](_0x4a249f[_0xa254('0x19')][_0xa254('0x1c')],function(_0x446ba9){return{'model':db[_0x446ba9['model']],'as':_0x446ba9['as'],'attributes':_0x446ba9['attributes'],'include':_0x446ba9[_0xa254('0x1c')]?_[_0xa254('0x1d')](_0x446ba9[_0xa254('0x1c')],function(_0x413016){return{'model':db[_0x413016['model']],'as':_0x413016['as'],'attributes':_0x413016[_0xa254('0x1b')],'include':_0x413016[_0xa254('0x1c')]?_[_0xa254('0x1d')](_0x413016[_0xa254('0x1c')],function(_0x3e3041){return{'model':db[_0x3e3041[_0xa254('0x1e')]],'as':_0x3e3041['as'],'attributes':_0x3e3041[_0xa254('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xa254('0x1f')](function(_0x336d55){logger['info'](_0xa254('0x20'),_0x4a249f);logger[_0xa254('0xd')](_0xa254('0x20'),_0x4a249f,JSON[_0xa254('0x10')](_0x336d55));_0x2dcf3a(_0x336d55);})[_0xa254('0x16')](function(_0x5c9e28){logger[_0xa254('0x11')](_0xa254('0x20'),_0x5c9e28[_0xa254('0x13')],_0x4a249f);_0x31ec79(_0x34c9fe[_0xa254('0x11')](0x1f4,_0x5c9e28['message']));});});};exports[_0xa254('0x21')]=function(_0x3c8f5a){var _0x22246b=this;return new Promise(function(_0x5a6369,_0x1dd29e){return db[_0xa254('0x17')][_0xa254('0x22')](_0x3c8f5a[_0xa254('0x23')],{'raw':_0x3c8f5a['options']?_0x3c8f5a[_0xa254('0x19')][_0xa254('0x24')]===undefined?!![]:![]:!![]})[_0xa254('0x1f')](function(_0x63f742){logger['info'](_0xa254('0x21'),_0x3c8f5a);logger[_0xa254('0xd')](_0xa254('0x21'),_0x3c8f5a,JSON['stringify'](_0x63f742));_0x5a6369(_0x63f742);})[_0xa254('0x16')](function(_0x1a53b7){logger[_0xa254('0x11')]('CreateMemberReport',_0x1a53b7[_0xa254('0x13')],_0x3c8f5a);_0x1dd29e(_0x22246b[_0xa254('0x11')](0x1f4,_0x1a53b7[_0xa254('0x13')]));});});};exports[_0xa254('0x25')]=function(_0xf54c59){var _0x667f32=this;return new Promise(function(_0x1f37df,_0x26bfd6){return db[_0xa254('0x17')]['update'](_0xf54c59['body'],{'raw':_0xf54c59[_0xa254('0x19')]?_0xf54c59[_0xa254('0x19')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xf54c59[_0xa254('0x19')]?_0xf54c59['options']['where']||null:null,'attributes':_0xf54c59[_0xa254('0x19')]?_0xf54c59[_0xa254('0x19')][_0xa254('0x1b')]||null:null,'limit':_0xf54c59[_0xa254('0x19')]?_0xf54c59['options'][_0xa254('0x26')]||null:null})[_0xa254('0x1f')](function(_0x1c7982){logger[_0xa254('0xc')](_0xa254('0x25'),_0xf54c59);logger[_0xa254('0xd')](_0xa254('0x25'),_0xf54c59,JSON[_0xa254('0x10')](_0x1c7982));_0x1f37df(_0x1c7982);})[_0xa254('0x16')](function(_0x38f124){logger[_0xa254('0x11')](_0xa254('0x25'),_0x38f124[_0xa254('0x13')],_0xf54c59);_0x26bfd6(_0x667f32['error'](0x1f4,_0x38f124['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91c7=['Router','fs-extra','../../components/interaction/service','../../config/environment','get','index','multer','util','path','connect-timeout','express'];(function(_0x4a7f4a,_0x1a4b06){var _0x3d7145=function(_0x31ccd2){while(--_0x31ccd2){_0x4a7f4a['push'](_0x4a7f4a['shift']());}};_0x3d7145(++_0x1a4b06);}(_0x91c7,0x10e));var _0x791c=function(_0x4727b7,_0x585a61){_0x4727b7=_0x4727b7-0x0;var _0xce9394=_0x91c7[_0x4727b7];return _0xce9394;};'use strict';var multer=require(_0x791c('0x0'));var util=require(_0x791c('0x1'));var path=require(_0x791c('0x2'));var timeout=require(_0x791c('0x3'));var express=require(_0x791c('0x4'));var router=express[_0x791c('0x5')]();var fs_extra=require(_0x791c('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x791c('0x7'));var config=require(_0x791c('0x8'));var controller=require('./migration.controller');router[_0x791c('0x9')]('/',controller[_0x791c('0xa')]);module['exports']=router;
\ No newline at end of file
+var _0xdb60=['multer','util','path','connect-timeout','express','Router','../../config/environment','./migration.controller','get','index','exports'];(function(_0x7d1741,_0x34c5a0){var _0x27d25a=function(_0xc32bc3){while(--_0xc32bc3){_0x7d1741['push'](_0x7d1741['shift']());}};_0x27d25a(++_0x34c5a0);}(_0xdb60,0xfd));var _0x0db6=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xdb60[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0x0db6('0x0'));var util=require(_0x0db6('0x1'));var path=require(_0x0db6('0x2'));var timeout=require(_0x0db6('0x3'));var express=require(_0x0db6('0x4'));var router=express[_0x0db6('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x0db6('0x6'));var controller=require(_0x0db6('0x7'));router[_0x0db6('0x8')]('/',controller[_0x0db6('0x9')]);module[_0x0db6('0xa')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc95=['version','sequelize','exports','STRING'];(function(_0x2a52f3,_0x47364e){var _0x2f680f=function(_0x16bb6e){while(--_0x16bb6e){_0x2a52f3['push'](_0x2a52f3['shift']());}};_0x2f680f(++_0x47364e);}(_0xbc95,0x159));var _0x5bc9=function(_0x5ee300,_0x59f054){_0x5ee300=_0x5ee300-0x0;var _0x15717b=_0xbc95[_0x5ee300];return _0x15717b;};'use strict';var Sequelize=require(_0x5bc9('0x0'));module[_0x5bc9('0x1')]={'version':{'type':Sequelize[_0x5bc9('0x2')],'unique':_0x5bc9('0x3')}};
\ No newline at end of file
+var _0xe0a5=['exports','STRING'];(function(_0x84dd81,_0x4870cc){var _0x43792d=function(_0x26b7aa){while(--_0x26b7aa){_0x84dd81['push'](_0x84dd81['shift']());}};_0x43792d(++_0x4870cc);}(_0xe0a5,0x164));var _0x5e0a=function(_0x101076,_0x5c8f3f){_0x101076=_0x101076-0x0;var _0x2d873d=_0xe0a5[_0x101076];return _0x2d873d;};'use strict';var Sequelize=require('sequelize');module[_0x5e0a('0x0')]={'version':{'type':Sequelize[_0x5e0a('0x1')],'unique':'version'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf76=['merge','options','where','Migration','includeAll','rows','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','save','update','then','destroy','error','name','send','index','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model','attributes','length','nolimit','order','filter','VIRTUAL'];(function(_0x3597f7,_0x1ba5f6){var _0x30b9e4=function(_0x371e0b){while(--_0x371e0b){_0x3597f7['push'](_0x3597f7['shift']());}};_0x30b9e4(++_0x1ba5f6);}(_0xdf76,0x1d5));var _0x6df7=function(_0x28b0a4,_0x2ea758){_0x28b0a4=_0x28b0a4-0x0;var _0x105ce6=_0xdf76[_0x28b0a4];return _0x105ce6;};'use strict';var emlformat=require(_0x6df7('0x0'));var rimraf=require(_0x6df7('0x1'));var zipdir=require(_0x6df7('0x2'));var jsonpatch=require(_0x6df7('0x3'));var rp=require(_0x6df7('0x4'));var moment=require('moment');var BPromise=require(_0x6df7('0x5'));var Mustache=require(_0x6df7('0x6'));var util=require(_0x6df7('0x7'));var path=require(_0x6df7('0x8'));var sox=require(_0x6df7('0x9'));var csv=require(_0x6df7('0xa'));var ejs=require(_0x6df7('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6df7('0xc'));var squel=require(_0x6df7('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x6df7('0xe'));var toCsv=require(_0x6df7('0xa'));var querystring=require(_0x6df7('0xf'));var Papa=require(_0x6df7('0x10'));var Redis=require(_0x6df7('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x6df7('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6df7('0x13'))(_0x6df7('0x14'));var utils=require(_0x6df7('0x15'));var config=require(_0x6df7('0x16'));var licenseUtil=require(_0x6df7('0x17'));var db=require(_0x6df7('0x18'))['db'];function respondWithStatusCode(_0x2859cd,_0x75457c){_0x75457c=_0x75457c||0xcc;return function(_0xf5591b){if(_0xf5591b){return _0x2859cd[_0x6df7('0x19')](_0x75457c);}return _0x2859cd[_0x6df7('0x1a')](_0x75457c)[_0x6df7('0x1b')]();};}function respondWithResult(_0x4b638d,_0x431b93){_0x431b93=_0x431b93||0xc8;return function(_0x3fed69){if(_0x3fed69){return _0x4b638d[_0x6df7('0x1a')](_0x431b93)[_0x6df7('0x1c')](_0x3fed69);}};}function respondWithFilteredResult(_0x371020,_0x15d1dd){return function(_0x3cd321){if(_0x3cd321){var _0x3128ea=typeof _0x15d1dd[_0x6df7('0x1d')]==='undefined'&&typeof _0x15d1dd[_0x6df7('0x1e')]===_0x6df7('0x1f');var _0x4402b6=_0x3cd321[_0x6df7('0x20')];var _0x4f9211=_0x3128ea?0x0:_0x15d1dd[_0x6df7('0x1d')];var _0x1cfce0=_0x3128ea?_0x3cd321[_0x6df7('0x20')]:_0x15d1dd['offset']+_0x15d1dd[_0x6df7('0x1e')];var _0x195eb6;if(_0x1cfce0>=_0x4402b6){_0x1cfce0=_0x4402b6;_0x195eb6=0xc8;}else{_0x195eb6=0xce;}_0x371020[_0x6df7('0x1a')](_0x195eb6);return _0x371020[_0x6df7('0x21')](_0x6df7('0x22'),_0x4f9211+'-'+_0x1cfce0+'/'+_0x4402b6)[_0x6df7('0x1c')](_0x3cd321);}return null;};}function patchUpdates(_0x23373d){return function(_0x138f4d){try{jsonpatch['apply'](_0x138f4d,_0x23373d,!![]);}catch(_0x48e841){return BPromise['reject'](_0x48e841);}return _0x138f4d[_0x6df7('0x23')]();};}function saveUpdates(_0x3f52ab,_0x16fab9){return function(_0x2e5c71){if(_0x2e5c71){return _0x2e5c71[_0x6df7('0x24')](_0x3f52ab)[_0x6df7('0x25')](function(_0x49f826){return _0x49f826;});}return null;};}function removeEntity(_0x37ddec,_0x20e6eb){return function(_0x3102e2){if(_0x3102e2){return _0x3102e2[_0x6df7('0x26')]()[_0x6df7('0x25')](function(){_0x37ddec['status'](0xcc)[_0x6df7('0x1b')]();});}};}function handleEntityNotFound(_0xa747b9,_0x468659){return function(_0x25d601){if(!_0x25d601){_0xa747b9['sendStatus'](0x194);}return _0x25d601;};}function handleError(_0x1fdad9,_0x2e1a35){_0x2e1a35=_0x2e1a35||0x1f4;return function(_0x470836){logger[_0x6df7('0x27')](_0x470836['stack']);if(_0x470836[_0x6df7('0x28')]){delete _0x470836[_0x6df7('0x28')];}_0x1fdad9[_0x6df7('0x1a')](_0x2e1a35)[_0x6df7('0x29')](_0x470836);};}exports[_0x6df7('0x2a')]=function(_0x5eb080,_0x3c8aed){var _0x3bb032={},_0x32a58e={},_0x2821d4={'count':0x0,'rows':[]};var _0x22c68c=_['map'](db['Migration'][_0x6df7('0x2b')],function(_0x23294a){return{'name':_0x23294a[_0x6df7('0x2c')],'type':_0x23294a[_0x6df7('0x2d')][_0x6df7('0x2e')]};});_0x32a58e['model']=_[_0x6df7('0x2f')](_0x22c68c,_0x6df7('0x28'));_0x32a58e['query']=_[_0x6df7('0x30')](_0x5eb080[_0x6df7('0x31')]);_0x32a58e[_0x6df7('0x32')]=_[_0x6df7('0x33')](_0x32a58e[_0x6df7('0x34')],_0x32a58e[_0x6df7('0x31')]);_0x3bb032[_0x6df7('0x35')]=_['intersection'](_0x32a58e[_0x6df7('0x34')],qs['fields'](_0x5eb080['query']['fields']));_0x3bb032[_0x6df7('0x35')]=_0x3bb032[_0x6df7('0x35')][_0x6df7('0x36')]?_0x3bb032[_0x6df7('0x35')]:_0x32a58e[_0x6df7('0x34')];if(!_0x5eb080[_0x6df7('0x31')]['hasOwnProperty'](_0x6df7('0x37'))){_0x3bb032[_0x6df7('0x1e')]=qs[_0x6df7('0x1e')](_0x5eb080['query'][_0x6df7('0x1e')]);_0x3bb032[_0x6df7('0x1d')]=qs[_0x6df7('0x1d')](_0x5eb080['query'][_0x6df7('0x1d')]);}_0x3bb032[_0x6df7('0x38')]=qs['sort'](_0x5eb080[_0x6df7('0x31')]['sort']);_0x3bb032['where']=qs['filters'](_['pick'](_0x5eb080[_0x6df7('0x31')],_0x32a58e[_0x6df7('0x32')]),_0x22c68c);if(_0x5eb080['query'][_0x6df7('0x39')]){_0x3bb032['where']=_['merge'](_0x3bb032['where'],{'$or':_[_0x6df7('0x2f')](_0x22c68c,function(_0x36fea4){if(_0x36fea4[_0x6df7('0x2d')]!==_0x6df7('0x3a')){var _0x4bc0ff={};_0x4bc0ff[_0x36fea4[_0x6df7('0x28')]]={'$like':'%'+_0x5eb080[_0x6df7('0x31')][_0x6df7('0x39')]+'%'};return _0x4bc0ff;}})});}_0x3bb032=_[_0x6df7('0x3b')]({},_0x3bb032,_0x5eb080[_0x6df7('0x3c')]);var _0x2346d6={'where':_0x3bb032[_0x6df7('0x3d')]};return db[_0x6df7('0x3e')][_0x6df7('0x20')](_0x2346d6)[_0x6df7('0x25')](function(_0x34ff4a){_0x2821d4['count']=_0x34ff4a;if(_0x5eb080['query'][_0x6df7('0x3f')]){_0x3bb032['include']=[{'all':!![]}];}return db[_0x6df7('0x3e')]['findAll'](_0x3bb032);})[_0x6df7('0x25')](function(_0xccb2bf){_0x2821d4[_0x6df7('0x40')]=_0xccb2bf;return _0x2821d4;})[_0x6df7('0x25')](respondWithFilteredResult(_0x3c8aed,_0x3bb032))[_0x6df7('0x41')](handleError(_0x3c8aed,null));};
\ No newline at end of file
+var _0x1a69=['ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','apply','reject','then','destroy','error','stack','name','send','map','Migration','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv'];(function(_0x26462c,_0xd20a35){var _0x509a42=function(_0x1b22c9){while(--_0x1b22c9){_0x26462c['push'](_0x26462c['shift']());}};_0x509a42(++_0xd20a35);}(_0x1a69,0x102));var _0x91a6=function(_0x1592af,_0x5ccc38){_0x1592af=_0x1592af-0x0;var _0x3d74da=_0x1a69[_0x1592af];return _0x3d74da;};'use strict';var emlformat=require(_0x91a6('0x0'));var rimraf=require(_0x91a6('0x1'));var zipdir=require(_0x91a6('0x2'));var jsonpatch=require(_0x91a6('0x3'));var rp=require('request-promise');var moment=require(_0x91a6('0x4'));var BPromise=require(_0x91a6('0x5'));var Mustache=require(_0x91a6('0x6'));var util=require('util');var path=require(_0x91a6('0x7'));var sox=require(_0x91a6('0x8'));var csv=require(_0x91a6('0x9'));var ejs=require(_0x91a6('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x91a6('0xb'));var squel=require(_0x91a6('0xc'));var crypto=require(_0x91a6('0xd'));var jsforce=require(_0x91a6('0xe'));var deskjs=require(_0x91a6('0xf'));var toCsv=require(_0x91a6('0x9'));var querystring=require(_0x91a6('0x10'));var Papa=require(_0x91a6('0x11'));var Redis=require(_0x91a6('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x91a6('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x91a6('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x91a6('0x15'));var db=require(_0x91a6('0x16'))['db'];function respondWithStatusCode(_0x5b778a,_0xbe6fe3){_0xbe6fe3=_0xbe6fe3||0xcc;return function(_0x3dfa15){if(_0x3dfa15){return _0x5b778a[_0x91a6('0x17')](_0xbe6fe3);}return _0x5b778a[_0x91a6('0x18')](_0xbe6fe3)[_0x91a6('0x19')]();};}function respondWithResult(_0x31315a,_0x4a2627){_0x4a2627=_0x4a2627||0xc8;return function(_0x5a5a57){if(_0x5a5a57){return _0x31315a[_0x91a6('0x18')](_0x4a2627)['json'](_0x5a5a57);}};}function respondWithFilteredResult(_0x212964,_0x29c34d){return function(_0xff5722){if(_0xff5722){var _0x50e382=typeof _0x29c34d[_0x91a6('0x1a')]==='undefined'&&typeof _0x29c34d[_0x91a6('0x1b')]===_0x91a6('0x1c');var _0x38cf0a=_0xff5722[_0x91a6('0x1d')];var _0x14d029=_0x50e382?0x0:_0x29c34d[_0x91a6('0x1a')];var _0x4aa59b=_0x50e382?_0xff5722[_0x91a6('0x1d')]:_0x29c34d[_0x91a6('0x1a')]+_0x29c34d[_0x91a6('0x1b')];var _0x1560d3;if(_0x4aa59b>=_0x38cf0a){_0x4aa59b=_0x38cf0a;_0x1560d3=0xc8;}else{_0x1560d3=0xce;}_0x212964[_0x91a6('0x18')](_0x1560d3);return _0x212964[_0x91a6('0x1e')](_0x91a6('0x1f'),_0x14d029+'-'+_0x4aa59b+'/'+_0x38cf0a)['json'](_0xff5722);}return null;};}function patchUpdates(_0x543c5f){return function(_0x324816){try{jsonpatch[_0x91a6('0x20')](_0x324816,_0x543c5f,!![]);}catch(_0x30b2bf){return BPromise[_0x91a6('0x21')](_0x30b2bf);}return _0x324816['save']();};}function saveUpdates(_0x213cc3,_0x5e71f6){return function(_0x29e570){if(_0x29e570){return _0x29e570['update'](_0x213cc3)[_0x91a6('0x22')](function(_0x3377b6){return _0x3377b6;});}return null;};}function removeEntity(_0x1fa2de,_0x225e03){return function(_0x579d93){if(_0x579d93){return _0x579d93[_0x91a6('0x23')]()['then'](function(){_0x1fa2de[_0x91a6('0x18')](0xcc)[_0x91a6('0x19')]();});}};}function handleEntityNotFound(_0x3586b7,_0x12d1ac){return function(_0x4814f2){if(!_0x4814f2){_0x3586b7[_0x91a6('0x17')](0x194);}return _0x4814f2;};}function handleError(_0x46f702,_0x833441){_0x833441=_0x833441||0x1f4;return function(_0x4003ff){logger[_0x91a6('0x24')](_0x4003ff[_0x91a6('0x25')]);if(_0x4003ff[_0x91a6('0x26')]){delete _0x4003ff['name'];}_0x46f702[_0x91a6('0x18')](_0x833441)[_0x91a6('0x27')](_0x4003ff);};}exports['index']=function(_0x69dfdc,_0x19cf79){var _0x20b98d={},_0x3db6a7={},_0x36a1a8={'count':0x0,'rows':[]};var _0x12c416=_[_0x91a6('0x28')](db[_0x91a6('0x29')][_0x91a6('0x2a')],function(_0x3384de){return{'name':_0x3384de[_0x91a6('0x2b')],'type':_0x3384de[_0x91a6('0x2c')][_0x91a6('0x2d')]};});_0x3db6a7[_0x91a6('0x2e')]=_['map'](_0x12c416,_0x91a6('0x26'));_0x3db6a7[_0x91a6('0x2f')]=_[_0x91a6('0x30')](_0x69dfdc[_0x91a6('0x2f')]);_0x3db6a7[_0x91a6('0x31')]=_['intersection'](_0x3db6a7[_0x91a6('0x2e')],_0x3db6a7[_0x91a6('0x2f')]);_0x20b98d[_0x91a6('0x32')]=_[_0x91a6('0x33')](_0x3db6a7['model'],qs[_0x91a6('0x34')](_0x69dfdc[_0x91a6('0x2f')]['fields']));_0x20b98d[_0x91a6('0x32')]=_0x20b98d['attributes']['length']?_0x20b98d['attributes']:_0x3db6a7['model'];if(!_0x69dfdc[_0x91a6('0x2f')][_0x91a6('0x35')](_0x91a6('0x36'))){_0x20b98d[_0x91a6('0x1b')]=qs['limit'](_0x69dfdc[_0x91a6('0x2f')]['limit']);_0x20b98d[_0x91a6('0x1a')]=qs[_0x91a6('0x1a')](_0x69dfdc[_0x91a6('0x2f')][_0x91a6('0x1a')]);}_0x20b98d[_0x91a6('0x37')]=qs[_0x91a6('0x38')](_0x69dfdc[_0x91a6('0x2f')][_0x91a6('0x38')]);_0x20b98d[_0x91a6('0x39')]=qs['filters'](_[_0x91a6('0x3a')](_0x69dfdc['query'],_0x3db6a7[_0x91a6('0x31')]),_0x12c416);if(_0x69dfdc[_0x91a6('0x2f')][_0x91a6('0x3b')]){_0x20b98d['where']=_['merge'](_0x20b98d['where'],{'$or':_[_0x91a6('0x28')](_0x12c416,function(_0xbe9a0d){if(_0xbe9a0d['type']!==_0x91a6('0x3c')){var _0x4a5cb1={};_0x4a5cb1[_0xbe9a0d[_0x91a6('0x26')]]={'$like':'%'+_0x69dfdc['query']['filter']+'%'};return _0x4a5cb1;}})});}_0x20b98d=_[_0x91a6('0x3d')]({},_0x20b98d,_0x69dfdc[_0x91a6('0x3e')]);var _0x418947={'where':_0x20b98d[_0x91a6('0x39')]};return db[_0x91a6('0x29')][_0x91a6('0x1d')](_0x418947)['then'](function(_0x5f2c54){_0x36a1a8[_0x91a6('0x1d')]=_0x5f2c54;if(_0x69dfdc['query'][_0x91a6('0x3f')]){_0x20b98d[_0x91a6('0x40')]=[{'all':!![]}];}return db['Migration'][_0x91a6('0x41')](_0x20b98d);})[_0x91a6('0x22')](function(_0xd1898c){_0x36a1a8['rows']=_0xd1898c;return _0x36a1a8;})[_0x91a6('0x22')](respondWithFilteredResult(_0x19cf79,_0x20b98d))[_0x91a6('0x42')](handleError(_0x19cf79,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3932=['rimraf','../../config/environment','./migration.attributes','exports','define','Migration','migrations','lodash','util','api','bluebird','request-promise'];(function(_0x4f39d3,_0x3822e1){var _0x46a500=function(_0x3d4d52){while(--_0x3d4d52){_0x4f39d3['push'](_0x4f39d3['shift']());}};_0x46a500(++_0x3822e1);}(_0x3932,0xa3));var _0x2393=function(_0x511f54,_0x1d891c){_0x511f54=_0x511f54-0x0;var _0x236bb=_0x3932[_0x511f54];return _0x236bb;};'use strict';var _=require(_0x2393('0x0'));var util=require(_0x2393('0x1'));var logger=require('../../config/logger')(_0x2393('0x2'));var moment=require('moment');var BPromise=require(_0x2393('0x3'));var rp=require(_0x2393('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2393('0x5'));var config=require(_0x2393('0x6'));var attributes=require(_0x2393('0x7'));module[_0x2393('0x8')]=function(_0x39a6eb,_0x24ffcd){return _0x39a6eb[_0x2393('0x9')](_0x2393('0xa'),attributes,{'tableName':_0x2393('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8312=['request-promise','path','rimraf','../../config/environment','./migration.attributes','exports','Migration','migrations','lodash','../../config/logger','moment'];(function(_0x312fbd,_0x214af4){var _0x2aaed0=function(_0x3c6d78){while(--_0x3c6d78){_0x312fbd['push'](_0x312fbd['shift']());}};_0x2aaed0(++_0x214af4);}(_0x8312,0x147));var _0x2831=function(_0x5080cd,_0x2cb340){_0x5080cd=_0x5080cd-0x0;var _0x514a82=_0x8312[_0x5080cd];return _0x514a82;};'use strict';var _=require(_0x2831('0x0'));var util=require('util');var logger=require(_0x2831('0x1'))('api');var moment=require(_0x2831('0x2'));var BPromise=require('bluebird');var rp=require(_0x2831('0x3'));var fs=require('fs');var path=require(_0x2831('0x4'));var rimraf=require(_0x2831('0x5'));var config=require(_0x2831('0x6'));var attributes=require(_0x2831('0x7'));module[_0x2831('0x8')]=function(_0xc3f629,_0x2ddf24){return _0xc3f629['define'](_0x2831('0x9'),attributes,{'tableName':_0x2831('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd99=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','Migration,\x20%s,\x20%s','request\x20sent','debug','Migration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','bluebird','randomstring'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xbd99,0x1df));var _0x9bd9=function(_0x1fcbe9,_0xc1badc){_0x1fcbe9=_0x1fcbe9-0x0;var _0x10ffbd=_0xbd99[_0x1fcbe9];return _0x10ffbd;};'use strict';var _=require(_0x9bd9('0x0'));var util=require(_0x9bd9('0x1'));var moment=require('moment');var BPromise=require(_0x9bd9('0x2'));var rs=require(_0x9bd9('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9bd9('0x4'))['db'];var utils=require(_0x9bd9('0x5'));var logger=require(_0x9bd9('0x6'))(_0x9bd9('0x7'));var config=require(_0x9bd9('0x8'));var jayson=require(_0x9bd9('0x9'));var client=jayson[_0x9bd9('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b41ea,_0x241303,_0x28b83f){return new BPromise(function(_0x7ddd62,_0x441225){return client[_0x9bd9('0xb')](_0x3b41ea,_0x28b83f)['then'](function(_0x865dc1){logger['info'](_0x9bd9('0xc'),_0x241303,_0x9bd9('0xd'));logger[_0x9bd9('0xe')](_0x9bd9('0xf'),_0x241303,_0x9bd9('0xd'),JSON[_0x9bd9('0x10')](_0x865dc1));if(_0x865dc1[_0x9bd9('0x11')]){if(_0x865dc1['error'][_0x9bd9('0x12')]===0x1f4){logger['error']('Migration,\x20%s,\x20%s',_0x241303,_0x865dc1[_0x9bd9('0x11')]['message']);return _0x441225(_0x865dc1[_0x9bd9('0x11')][_0x9bd9('0x13')]);}logger[_0x9bd9('0x11')]('Migration,\x20%s,\x20%s',_0x241303,_0x865dc1[_0x9bd9('0x11')]['message']);return _0x7ddd62(_0x865dc1[_0x9bd9('0x11')][_0x9bd9('0x13')]);}else{logger['info'](_0x9bd9('0xc'),_0x241303,_0x9bd9('0xd'));_0x7ddd62(_0x865dc1[_0x9bd9('0x14')][_0x9bd9('0x13')]);}})['catch'](function(_0x57ffcb){logger[_0x9bd9('0x11')](_0x9bd9('0xc'),_0x241303,_0x57ffcb);_0x441225(_0x57ffcb);});});}
\ No newline at end of file
+var _0x9c2c=['request\x20sent','stringify','code','error','message','info','result','catch','lodash','util','ioredis','../../config/utils','../../config/logger','jayson/promise','http','request','then','Migration,\x20%s,\x20%s','debug','Migration,\x20%s,\x20%s,\x20%s'];(function(_0x21aa88,_0x41701c){var _0x57fc8a=function(_0x59b6db){while(--_0x59b6db){_0x21aa88['push'](_0x21aa88['shift']());}};_0x57fc8a(++_0x41701c);}(_0x9c2c,0x1c0));var _0xc9c2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9c2c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc9c2('0x0'));var util=require(_0xc9c2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc9c2('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xc9c2('0x3'));var logger=require(_0xc9c2('0x4'))('rpc');var config=require('../../config/environment');var jayson=require(_0xc9c2('0x5'));var client=jayson['client'][_0xc9c2('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x17b5e8,_0x711f3d,_0x18a815){return new BPromise(function(_0x270572,_0xd7fb27){return client[_0xc9c2('0x7')](_0x17b5e8,_0x18a815)[_0xc9c2('0x8')](function(_0x8614c4){logger['info'](_0xc9c2('0x9'),_0x711f3d,'request\x20sent');logger[_0xc9c2('0xa')](_0xc9c2('0xb'),_0x711f3d,_0xc9c2('0xc'),JSON[_0xc9c2('0xd')](_0x8614c4));if(_0x8614c4['error']){if(_0x8614c4['error'][_0xc9c2('0xe')]===0x1f4){logger[_0xc9c2('0xf')]('Migration,\x20%s,\x20%s',_0x711f3d,_0x8614c4[_0xc9c2('0xf')][_0xc9c2('0x10')]);return _0xd7fb27(_0x8614c4[_0xc9c2('0xf')][_0xc9c2('0x10')]);}logger[_0xc9c2('0xf')](_0xc9c2('0x9'),_0x711f3d,_0x8614c4[_0xc9c2('0xf')][_0xc9c2('0x10')]);return _0x270572(_0x8614c4[_0xc9c2('0xf')][_0xc9c2('0x10')]);}else{logger[_0xc9c2('0x11')](_0xc9c2('0x9'),_0x711f3d,'request\x20sent');_0x270572(_0x8614c4[_0xc9c2('0x12')][_0xc9c2('0x10')]);}})[_0xc9c2('0x13')](function(_0x240099){logger[_0xc9c2('0xf')]('Migration,\x20%s,\x20%s',_0x711f3d,_0x240099);_0xd7fb27(_0x240099);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca6e=['../../config/environment','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x16f6ca,_0x3bb671){var _0x483cc3=function(_0x57cf74){while(--_0x57cf74){_0x16f6ca['push'](_0x16f6ca['shift']());}};_0x483cc3(++_0x3bb671);}(_0xca6e,0x1c1));var _0xeca6=function(_0x3f3b02,_0x3870c2){_0x3f3b02=_0x3f3b02-0x0;var _0x1f42f1=_0xca6e[_0x3f3b02];return _0x1f42f1;};'use strict';var multer=require(_0xeca6('0x0'));var util=require(_0xeca6('0x1'));var path=require(_0xeca6('0x2'));var timeout=require(_0xeca6('0x3'));var express=require(_0xeca6('0x4'));var router=express['Router']();var fs_extra=require(_0xeca6('0x5'));var auth=require(_0xeca6('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xeca6('0x7'));var controller=require('./network.controller');router[_0xeca6('0x8')]('/',auth[_0xeca6('0x9')](),controller[_0xeca6('0xa')]);router['get'](_0xeca6('0xb'),auth['isAuthenticated'](),controller[_0xeca6('0xc')]);router[_0xeca6('0xd')]('/',auth[_0xeca6('0x9')](),controller[_0xeca6('0xe')]);router[_0xeca6('0xf')]('/:id',auth[_0xeca6('0x9')](),controller[_0xeca6('0x10')]);router[_0xeca6('0x11')](_0xeca6('0xb'),auth[_0xeca6('0x9')](),controller['destroy']);module[_0xeca6('0x12')]=router;
\ No newline at end of file
+var _0x781d=['/:id','show','post','create','delete','exports','multer','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./network.controller','get','isAuthenticated','index'];(function(_0x54a5ba,_0x5e806e){var _0x49add8=function(_0x3c7c61){while(--_0x3c7c61){_0x54a5ba['push'](_0x54a5ba['shift']());}};_0x49add8(++_0x5e806e);}(_0x781d,0x14a));var _0xd781=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x781d[_0x1facfa];return _0x9ec701;};'use strict';var multer=require(_0xd781('0x0'));var util=require(_0xd781('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xd781('0x2'));var router=express[_0xd781('0x3')]();var fs_extra=require(_0xd781('0x4'));var auth=require(_0xd781('0x5'));var interaction=require(_0xd781('0x6'));var config=require(_0xd781('0x7'));var controller=require(_0xd781('0x8'));router[_0xd781('0x9')]('/',auth[_0xd781('0xa')](),controller[_0xd781('0xb')]);router['get'](_0xd781('0xc'),auth[_0xd781('0xa')](),controller[_0xd781('0xd')]);router[_0xd781('0xe')]('/',auth['isAuthenticated'](),controller[_0xd781('0xf')]);router['put'](_0xd781('0xc'),auth[_0xd781('0xa')](),controller['update']);router[_0xd781('0x10')](_0xd781('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0xd781('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x859c=['localnet','externip','turn','STRING','exports','ENUM'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0x859c,0x1d8));var _0xc859=function(_0x94f746,_0x575268){_0x94f746=_0x94f746-0x0;var _0x5d33a0=_0x859c[_0x94f746];return _0x5d33a0;};'use strict';var Sequelize=require('sequelize');module[_0xc859('0x0')]={'type':{'type':Sequelize[_0xc859('0x1')](_0xc859('0x2'),_0xc859('0x3'),'stun',_0xc859('0x4'))},'value':{'type':Sequelize[_0xc859('0x5')]},'username':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0xc859('0x5')]}};
\ No newline at end of file
+var _0x6fc6=['STRING','exports','localnet','externip','stun'];(function(_0x4fb17e,_0x4e6045){var _0x3960ca=function(_0x3b5d18){while(--_0x3b5d18){_0x4fb17e['push'](_0x4fb17e['shift']());}};_0x3960ca(++_0x4e6045);}(_0x6fc6,0x17d));var _0x66fc=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x6fc6[_0x2dafbe];return _0x58a45a;};'use strict';var Sequelize=require('sequelize');module[_0x66fc('0x0')]={'type':{'type':Sequelize['ENUM'](_0x66fc('0x1'),_0x66fc('0x2'),_0x66fc('0x3'),'turn')},'value':{'type':Sequelize[_0x66fc('0x4')]},'username':{'type':Sequelize[_0x66fc('0x4')]},'password':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94b1=['attributes','fields','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','merge','options','Network','include','findAll','show','params','rawAttributes','includeAll','find','sequelize','transaction','body','toUpperCase','join','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','root','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','create','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','STUN','readFileSync','chan_sip.so','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','apply','reject','save','update','destroy','send','index','map','type','key','model','name','query','keys','intersection'];(function(_0x213ed5,_0x26712a){var _0x191514=function(_0x2d9305){while(--_0x2d9305){_0x213ed5['push'](_0x213ed5['shift']());}};_0x191514(++_0x26712a);}(_0x94b1,0x102));var _0x194b=function(_0x39d85b,_0x290fc8){_0x39d85b=_0x39d85b-0x0;var _0x3f111f=_0x94b1[_0x39d85b];return _0x3f111f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x194b('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x194b('0x1'));var rp=require(_0x194b('0x2'));var moment=require(_0x194b('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x194b('0x4'));var util=require(_0x194b('0x5'));var path=require(_0x194b('0x6'));var sox=require(_0x194b('0x7'));var csv=require('to-csv');var ejs=require(_0x194b('0x8'));var fs=require('fs');var fs_extra=require(_0x194b('0x9'));var _=require('lodash');var squel=require(_0x194b('0xa'));var crypto=require(_0x194b('0xb'));var jsforce=require(_0x194b('0xc'));var deskjs=require(_0x194b('0xd'));var toCsv=require(_0x194b('0xe'));var querystring=require(_0x194b('0xf'));var Papa=require(_0x194b('0x10'));var Redis=require(_0x194b('0x11'));var authService=require(_0x194b('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x194b('0x13'));var hardwareService=require(_0x194b('0x14'));var logger=require(_0x194b('0x15'))('api');var utils=require(_0x194b('0x16'));var config=require(_0x194b('0x17'));var licenseUtil=require(_0x194b('0x18'));var db=require(_0x194b('0x19'))['db'];var jayson=require(_0x194b('0x1a'));var client=jayson[_0x194b('0x1b')][_0x194b('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x382d38,_0xa7b256,_0x228392,_0x3170dc){return new BPromise(function(_0xb5776f,_0x2a181c){var _0x30e66e=_0x3170dc||client;return _0x30e66e[_0x194b('0x1d')](_0x382d38,_0x228392)[_0x194b('0x1e')](function(_0x1efd3f){logger[_0x194b('0x1f')](_0x194b('0x20'),_0xa7b256,_0x194b('0x21'));logger[_0x194b('0x22')]('Network,\x20%s,\x20%s,\x20%s',_0xa7b256,'request\x20sent',JSON[_0x194b('0x23')](_0x1efd3f));if(_0x1efd3f[_0x194b('0x24')]){if(_0x1efd3f[_0x194b('0x24')][_0x194b('0x25')]===0x1f4){logger[_0x194b('0x24')](_0x194b('0x20'),_0xa7b256,_0x1efd3f[_0x194b('0x24')][_0x194b('0x26')]);return _0x2a181c(_0x1efd3f['error'][_0x194b('0x26')]);}logger['error'](_0x194b('0x20'),_0xa7b256,_0x1efd3f[_0x194b('0x24')][_0x194b('0x26')]);return _0xb5776f(_0x1efd3f[_0x194b('0x24')][_0x194b('0x26')]);}else{logger[_0x194b('0x1f')](_0x194b('0x20'),_0xa7b256,'request\x20sent');_0xb5776f(_0x1efd3f[_0x194b('0x27')]['message']);}})[_0x194b('0x28')](function(_0x1985ff){logger[_0x194b('0x24')](_0x194b('0x20'),_0xa7b256,_0x1985ff);_0x2a181c(_0x1985ff);});});}function respondWithStatusCode(_0x3f2133,_0x2a9776){_0x2a9776=_0x2a9776||0xcc;return function(_0x3f3aeb){if(_0x3f3aeb){return _0x3f2133['sendStatus'](_0x2a9776);}return _0x3f2133[_0x194b('0x29')](_0x2a9776)[_0x194b('0x2a')]();};}function respondWithResult(_0x13fc16,_0x1fa11d){_0x1fa11d=_0x1fa11d||0xc8;return function(_0x2ac3fd){if(_0x2ac3fd){return _0x13fc16[_0x194b('0x29')](_0x1fa11d)[_0x194b('0x2b')](_0x2ac3fd);}};}function respondWithFilteredResult(_0x1f3d2c,_0x15a865){return function(_0x2f5b57){if(_0x2f5b57){var _0x31276e=typeof _0x15a865[_0x194b('0x2c')]===_0x194b('0x2d')&&typeof _0x15a865[_0x194b('0x2e')]===_0x194b('0x2d');var _0x2a44c6=_0x2f5b57[_0x194b('0x2f')];var _0x15da96=_0x31276e?0x0:_0x15a865[_0x194b('0x2c')];var _0x8d6483=_0x31276e?_0x2f5b57[_0x194b('0x2f')]:_0x15a865['offset']+_0x15a865[_0x194b('0x2e')];var _0x1182fd;if(_0x8d6483>=_0x2a44c6){_0x8d6483=_0x2a44c6;_0x1182fd=0xc8;}else{_0x1182fd=0xce;}_0x1f3d2c[_0x194b('0x29')](_0x1182fd);return _0x1f3d2c['set']('Content-Range',_0x15da96+'-'+_0x8d6483+'/'+_0x2a44c6)[_0x194b('0x2b')](_0x2f5b57);}return null;};}function patchUpdates(_0x60572a){return function(_0x42e690){try{jsonpatch[_0x194b('0x30')](_0x42e690,_0x60572a,!![]);}catch(_0x597b1d){return BPromise[_0x194b('0x31')](_0x597b1d);}return _0x42e690[_0x194b('0x32')]();};}function saveUpdates(_0x25d42d,_0x4a5a0e){return function(_0x5d32c1){if(_0x5d32c1){return _0x5d32c1[_0x194b('0x33')](_0x25d42d)[_0x194b('0x1e')](function(_0x45bb82){return _0x45bb82;});}return null;};}function removeEntity(_0x472c36,_0x69b176){return function(_0x2662f4){if(_0x2662f4){return _0x2662f4[_0x194b('0x34')]()[_0x194b('0x1e')](function(){_0x472c36[_0x194b('0x29')](0xcc)[_0x194b('0x2a')]();});}};}function handleEntityNotFound(_0xb951d4,_0x49fc48){return function(_0xf4c85b){if(!_0xf4c85b){_0xb951d4['sendStatus'](0x194);}return _0xf4c85b;};}function handleError(_0x161192,_0x435482){_0x435482=_0x435482||0x1f4;return function(_0x17c31d){logger[_0x194b('0x24')](_0x17c31d['stack']);if(_0x17c31d['name']){delete _0x17c31d['name'];}_0x161192[_0x194b('0x29')](_0x435482)[_0x194b('0x35')](_0x17c31d);};}exports[_0x194b('0x36')]=function(_0x5cf69e,_0x312d2b){var _0x367c04={},_0x4cef3d={},_0x4388ac={'count':0x0,'rows':[]};var _0x205804=_[_0x194b('0x37')](db['Network']['rawAttributes'],function(_0x371e80){return{'name':_0x371e80['fieldName'],'type':_0x371e80[_0x194b('0x38')][_0x194b('0x39')]};});_0x4cef3d[_0x194b('0x3a')]=_[_0x194b('0x37')](_0x205804,_0x194b('0x3b'));_0x4cef3d[_0x194b('0x3c')]=_[_0x194b('0x3d')](_0x5cf69e[_0x194b('0x3c')]);_0x4cef3d['filters']=_[_0x194b('0x3e')](_0x4cef3d[_0x194b('0x3a')],_0x4cef3d['query']);_0x367c04[_0x194b('0x3f')]=_['intersection'](_0x4cef3d[_0x194b('0x3a')],qs[_0x194b('0x40')](_0x5cf69e[_0x194b('0x3c')][_0x194b('0x40')]));_0x367c04['attributes']=_0x367c04['attributes']['length']?_0x367c04[_0x194b('0x3f')]:_0x4cef3d[_0x194b('0x3a')];if(!_0x5cf69e[_0x194b('0x3c')]['hasOwnProperty'](_0x194b('0x41'))){_0x367c04['limit']=qs['limit'](_0x5cf69e[_0x194b('0x3c')]['limit']);_0x367c04[_0x194b('0x2c')]=qs['offset'](_0x5cf69e['query']['offset']);}_0x367c04[_0x194b('0x42')]=qs['sort'](_0x5cf69e[_0x194b('0x3c')][_0x194b('0x43')]);_0x367c04['where']=qs[_0x194b('0x44')](_[_0x194b('0x45')](_0x5cf69e[_0x194b('0x3c')],_0x4cef3d[_0x194b('0x44')]),_0x205804);if(_0x5cf69e[_0x194b('0x3c')][_0x194b('0x46')]){_0x367c04[_0x194b('0x47')]=_['merge'](_0x367c04[_0x194b('0x47')],{'$or':_[_0x194b('0x37')](_0x205804,function(_0x1261d7){if(_0x1261d7[_0x194b('0x38')]!==_0x194b('0x48')){var _0x3043cf={};_0x3043cf[_0x1261d7['name']]={'$like':'%'+_0x5cf69e['query'][_0x194b('0x46')]+'%'};return _0x3043cf;}})});}_0x367c04=_[_0x194b('0x49')]({},_0x367c04,_0x5cf69e[_0x194b('0x4a')]);var _0x40c4c6={'where':_0x367c04[_0x194b('0x47')]};return db[_0x194b('0x4b')][_0x194b('0x2f')](_0x40c4c6)['then'](function(_0x117073){_0x4388ac[_0x194b('0x2f')]=_0x117073;if(_0x5cf69e[_0x194b('0x3c')]['includeAll']){_0x367c04[_0x194b('0x4c')]=[{'all':!![]}];}return db[_0x194b('0x4b')][_0x194b('0x4d')](_0x367c04);})['then'](function(_0x3e372e){_0x4388ac['rows']=_0x3e372e;return _0x4388ac;})['then'](respondWithFilteredResult(_0x312d2b,_0x367c04))['catch'](handleError(_0x312d2b,null));};exports[_0x194b('0x4e')]=function(_0xd2cae1,_0x126a39){var _0x1812fa={'raw':!![],'where':{'id':_0xd2cae1[_0x194b('0x4f')]['id']}},_0x4aabce={};_0x4aabce[_0x194b('0x3a')]=_['keys'](db['Network'][_0x194b('0x50')]);_0x4aabce[_0x194b('0x3c')]=_[_0x194b('0x3d')](_0xd2cae1[_0x194b('0x3c')]);_0x4aabce[_0x194b('0x44')]=_[_0x194b('0x3e')](_0x4aabce[_0x194b('0x3a')],_0x4aabce[_0x194b('0x3c')]);_0x1812fa[_0x194b('0x3f')]=_[_0x194b('0x3e')](_0x4aabce['model'],qs[_0x194b('0x40')](_0xd2cae1[_0x194b('0x3c')][_0x194b('0x40')]));_0x1812fa['attributes']=_0x1812fa[_0x194b('0x3f')]['length']?_0x1812fa[_0x194b('0x3f')]:_0x4aabce[_0x194b('0x3a')];if(_0xd2cae1[_0x194b('0x3c')][_0x194b('0x51')]){_0x1812fa[_0x194b('0x4c')]=[{'all':!![]}];}_0x1812fa=_['merge']({},_0x1812fa,_0xd2cae1[_0x194b('0x4a')]);return db[_0x194b('0x4b')][_0x194b('0x52')](_0x1812fa)[_0x194b('0x1e')](handleEntityNotFound(_0x126a39,null))[_0x194b('0x1e')](respondWithResult(_0x126a39,null))[_0x194b('0x28')](handleError(_0x126a39,null));};exports['create']=function(_0x337e45,_0x56e01f,_0x5a01d7){var _0x4ab861;return db[_0x194b('0x53')][_0x194b('0x54')](function(_0x59b3ae){return db['Network']['create'](_0x337e45[_0x194b('0x55')],{'raw':!![]})[_0x194b('0x1e')](function(_0x56bb05){_0x4ab861=_0x56bb05;return db[_0x194b('0x4b')][_0x194b('0x4d')]({'where':{'type':_0x337e45[_0x194b('0x55')][_0x194b('0x38')]},'raw':!![]});})['then'](function(_0x22e962){if(_0x4ab861[_0x194b('0x38')][_0x194b('0x56')]()=='STUN'){var _0x740ede=fs['readFileSync'](path[_0x194b('0x57')](config['root'],_0x194b('0x58')),'utf8');var _0x1dc889=ejs[_0x194b('0x59')](_0x740ede,{'networks':_0x22e962||[]});fs[_0x194b('0x5a')](_0x194b('0x5b'),_0x1dc889);return respondWithRpcPromise(_0x194b('0x5c'),'create',{'module':_0x194b('0x5d')});}else if(_0x4ab861['type'][_0x194b('0x56')]()==_0x194b('0x5e')){var _0x34a411=fs['readFileSync'](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x60')),_0x194b('0x61'));var _0x59ed32=ejs[_0x194b('0x59')](_0x34a411,{'networks':_0x22e962||[]});fs['writeFileSync'](_0x194b('0x62'),_0x59ed32);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x63'),{'module':_0x194b('0x5d')});}else{var _0x4c5a20=fs['readFileSync'](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x64')),_0x194b('0x61'));var _0x377b35=ejs[_0x194b('0x59')](_0x4c5a20,{'networks':_0x22e962||[]});fs[_0x194b('0x5a')](util[_0x194b('0x65')](_0x194b('0x66'),_0x337e45[_0x194b('0x55')][_0x194b('0x38')][_0x194b('0x67')]()),_0x377b35);return respondWithRpcPromise('Reload',_0x194b('0x63'),{'module':'chan_sip.so'});}return null;})[_0x194b('0x1e')](function(){return _0x4ab861;});})[_0x194b('0x1e')](respondWithResult(_0x56e01f,0xc9))['catch'](handleError(_0x56e01f,null));};exports[_0x194b('0x33')]=function(_0x3439e7,_0x13fbbb,_0x204525){var _0x45b16f;return db[_0x194b('0x53')]['transaction'](function(_0x4f7da6){return db[_0x194b('0x4b')][_0x194b('0x52')]({'where':{'id':_0x3439e7[_0x194b('0x4f')]['id']}})[_0x194b('0x1e')](handleEntityNotFound(_0x13fbbb,null))[_0x194b('0x1e')](saveUpdates(_0x3439e7['body'],null))[_0x194b('0x1e')](function(_0x4bc159){if(_0x4bc159){_0x45b16f=_0x4bc159;return db['Network']['findAll']({'where':{'type':_0x45b16f[_0x194b('0x38')]},'raw':!![]});}return null;})[_0x194b('0x1e')](function(_0x340fba){if(_0x45b16f[_0x194b('0x38')]['toUpperCase']()==_0x194b('0x68')){var _0x7ba257=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],'server/files/templates/stun_multiple.ejs'),_0x194b('0x61'));var _0x1e1f1b=ejs[_0x194b('0x59')](_0x7ba257,{'networks':_0x340fba||[]});fs[_0x194b('0x5a')](_0x194b('0x5b'),_0x1e1f1b);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x33'),{'module':_0x194b('0x5d')});}else if(_0x45b16f['type'][_0x194b('0x56')]()==_0x194b('0x5e')){var _0x1dd78d=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],'server/files/templates/turn_multiple.ejs'),_0x194b('0x61'));var _0x3b989f=ejs[_0x194b('0x59')](_0x1dd78d,{'networks':_0x340fba||[]});fs[_0x194b('0x5a')]('/etc/asterisk/turn_xcally.conf',_0x3b989f);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x33'),{'module':'res_stun_monitor.so'});}else{var _0x3081fb=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x64')),_0x194b('0x61'));var _0x1377a5=ejs['render'](_0x3081fb,{'networks':_0x340fba||[]});fs[_0x194b('0x5a')](util[_0x194b('0x65')]('/etc/asterisk/sip_xcally_%s.conf',_0x3439e7[_0x194b('0x55')][_0x194b('0x38')][_0x194b('0x67')]()),_0x1377a5);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x33'),{'module':'chan_sip.so'});}return null;})[_0x194b('0x1e')](function(_0x1c64f6){if(_0x1c64f6){return _0x45b16f;}return null;});})[_0x194b('0x1e')](respondWithResult(_0x13fbbb,null))[_0x194b('0x28')](handleError(_0x13fbbb,null));};exports[_0x194b('0x34')]=function(_0x560ce7,_0x583b1b,_0x30620e){var _0x399c71;return db['Network']['find']({'where':{'id':_0x560ce7[_0x194b('0x4f')]['id']}})[_0x194b('0x1e')](function(_0x7f1a83){_0x399c71=_0x7f1a83;return _0x7f1a83;})['then'](handleEntityNotFound(_0x583b1b,null))[_0x194b('0x1e')](removeEntity(_0x583b1b,null))[_0x194b('0x1e')](function(){if(_0x399c71){return db[_0x194b('0x4b')]['findAll']({'where':{'type':_0x399c71['type']},'raw':!![]});}})['then'](function(_0x578dd6){if(_0x399c71[_0x194b('0x38')][_0x194b('0x56')]()=='STUN'){var _0x51002e=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x58')),_0x194b('0x61'));var _0x27cc68=ejs[_0x194b('0x59')](_0x51002e,{'networks':_0x578dd6||[]});fs[_0x194b('0x5a')](_0x194b('0x5b'),_0x27cc68);return respondWithRpcPromise(_0x194b('0x5c'),'destroy',{'module':'res_stun_monitor.so'});}else if(_0x399c71[_0x194b('0x38')][_0x194b('0x56')]()==_0x194b('0x5e')){var _0x19f6da=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x60')),_0x194b('0x61'));var _0x3157c2=ejs[_0x194b('0x59')](_0x19f6da,{'networks':_0x578dd6||[]});fs[_0x194b('0x5a')](_0x194b('0x62'),_0x3157c2);return respondWithRpcPromise(_0x194b('0x5c'),'destroy',{'module':_0x194b('0x5d')});}else{var _0x50003a=fs[_0x194b('0x69')](path[_0x194b('0x57')](config['root'],_0x194b('0x64')),'utf8');var _0x2acd51=ejs['render'](_0x50003a,{'networks':_0x578dd6||[]});fs[_0x194b('0x5a')](util[_0x194b('0x65')](_0x194b('0x66'),_0x560ce7[_0x194b('0x55')][_0x194b('0x38')][_0x194b('0x67')]()),_0x2acd51);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x34'),{'module':_0x194b('0x6a')});}return null;})[_0x194b('0x28')](handleError(_0x583b1b,null));};
\ No newline at end of file
+var _0x530a=['readFileSync','join','root','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','server/files/templates/network.ejs','utf8','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','transaction','update','/etc/asterisk/turn_xcally.conf','STUN','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','ejs','fs-extra','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','jayson/promise','http','request','Network,\x20%s,\x20%s','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','save','destroy','stack','name','send','index','map','Network','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','then','includeAll','include','findAll','rows','show','params','options','find','create','body','toUpperCase'];(function(_0x58b301,_0x45e991){var _0x2171b3=function(_0x30b475){while(--_0x30b475){_0x58b301['push'](_0x58b301['shift']());}};_0x2171b3(++_0x45e991);}(_0x530a,0x81));var _0xa530=function(_0x43c346,_0x18bf31){_0x43c346=_0x43c346-0x0;var _0x360cbe=_0x530a[_0x43c346];return _0x360cbe;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa530('0x0'));var zipdir=require(_0xa530('0x1'));var jsonpatch=require(_0xa530('0x2'));var rp=require(_0xa530('0x3'));var moment=require(_0xa530('0x4'));var BPromise=require(_0xa530('0x5'));var Mustache=require('mustache');var util=require(_0xa530('0x6'));var path=require(_0xa530('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xa530('0x8'));var fs=require('fs');var fs_extra=require(_0xa530('0x9'));var _=require('lodash');var squel=require(_0xa530('0xa'));var crypto=require(_0xa530('0xb'));var jsforce=require(_0xa530('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa530('0xd'));var querystring=require(_0xa530('0xe'));var Papa=require(_0xa530('0xf'));var Redis=require(_0xa530('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xa530('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa530('0x12'));var logger=require(_0xa530('0x13'))(_0xa530('0x14'));var utils=require(_0xa530('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xa530('0x16'));var db=require('../../mysqldb')['db'];var jayson=require(_0xa530('0x17'));var client=jayson['client'][_0xa530('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x1aa581,_0x553510,_0x5ef342,_0x459fbe){return new BPromise(function(_0xb11d4c,_0x31c88a){var _0x3c14c7=_0x459fbe||client;return _0x3c14c7[_0xa530('0x19')](_0x1aa581,_0x5ef342)['then'](function(_0x537ca2){logger['info'](_0xa530('0x1a'),_0x553510,'request\x20sent');logger[_0xa530('0x1b')](_0xa530('0x1c'),_0x553510,_0xa530('0x1d'),JSON[_0xa530('0x1e')](_0x537ca2));if(_0x537ca2[_0xa530('0x1f')]){if(_0x537ca2[_0xa530('0x1f')][_0xa530('0x20')]===0x1f4){logger[_0xa530('0x1f')]('Network,\x20%s,\x20%s',_0x553510,_0x537ca2[_0xa530('0x1f')]['message']);return _0x31c88a(_0x537ca2['error'][_0xa530('0x21')]);}logger['error']('Network,\x20%s,\x20%s',_0x553510,_0x537ca2['error'][_0xa530('0x21')]);return _0xb11d4c(_0x537ca2[_0xa530('0x1f')][_0xa530('0x21')]);}else{logger['info'](_0xa530('0x1a'),_0x553510,_0xa530('0x1d'));_0xb11d4c(_0x537ca2[_0xa530('0x22')]['message']);}})[_0xa530('0x23')](function(_0x3481a7){logger[_0xa530('0x1f')](_0xa530('0x1a'),_0x553510,_0x3481a7);_0x31c88a(_0x3481a7);});});}function respondWithStatusCode(_0x26138b,_0x393085){_0x393085=_0x393085||0xcc;return function(_0x22c04c){if(_0x22c04c){return _0x26138b[_0xa530('0x24')](_0x393085);}return _0x26138b[_0xa530('0x25')](_0x393085)[_0xa530('0x26')]();};}function respondWithResult(_0x460119,_0x558006){_0x558006=_0x558006||0xc8;return function(_0x127165){if(_0x127165){return _0x460119[_0xa530('0x25')](_0x558006)['json'](_0x127165);}};}function respondWithFilteredResult(_0x381964,_0x5c318d){return function(_0x13af52){if(_0x13af52){var _0x3fb2c6=typeof _0x5c318d[_0xa530('0x27')]===_0xa530('0x28')&&typeof _0x5c318d[_0xa530('0x29')]===_0xa530('0x28');var _0x409163=_0x13af52[_0xa530('0x2a')];var _0x10fb42=_0x3fb2c6?0x0:_0x5c318d[_0xa530('0x27')];var _0x56345e=_0x3fb2c6?_0x13af52[_0xa530('0x2a')]:_0x5c318d[_0xa530('0x27')]+_0x5c318d[_0xa530('0x29')];var _0x27c642;if(_0x56345e>=_0x409163){_0x56345e=_0x409163;_0x27c642=0xc8;}else{_0x27c642=0xce;}_0x381964[_0xa530('0x25')](_0x27c642);return _0x381964[_0xa530('0x2b')]('Content-Range',_0x10fb42+'-'+_0x56345e+'/'+_0x409163)[_0xa530('0x2c')](_0x13af52);}return null;};}function patchUpdates(_0x4725ed){return function(_0x5d4fad){try{jsonpatch[_0xa530('0x2d')](_0x5d4fad,_0x4725ed,!![]);}catch(_0xd86a0e){return BPromise[_0xa530('0x2e')](_0xd86a0e);}return _0x5d4fad[_0xa530('0x2f')]();};}function saveUpdates(_0x579e99,_0x4798a2){return function(_0x43d8cd){if(_0x43d8cd){return _0x43d8cd['update'](_0x579e99)['then'](function(_0x331d03){return _0x331d03;});}return null;};}function removeEntity(_0x9149fa,_0x48bc7b){return function(_0x2f03c5){if(_0x2f03c5){return _0x2f03c5[_0xa530('0x30')]()['then'](function(){_0x9149fa[_0xa530('0x25')](0xcc)[_0xa530('0x26')]();});}};}function handleEntityNotFound(_0x448ae4,_0x3c9035){return function(_0x1844b8){if(!_0x1844b8){_0x448ae4[_0xa530('0x24')](0x194);}return _0x1844b8;};}function handleError(_0x459c2b,_0x140517){_0x140517=_0x140517||0x1f4;return function(_0x2d5c71){logger[_0xa530('0x1f')](_0x2d5c71[_0xa530('0x31')]);if(_0x2d5c71[_0xa530('0x32')]){delete _0x2d5c71['name'];}_0x459c2b[_0xa530('0x25')](_0x140517)[_0xa530('0x33')](_0x2d5c71);};}exports[_0xa530('0x34')]=function(_0x5a9a1d,_0x33c396){var _0x2fba74={},_0xf18417={},_0x31b192={'count':0x0,'rows':[]};var _0x4dc965=_[_0xa530('0x35')](db[_0xa530('0x36')][_0xa530('0x37')],function(_0x2a3aa8){return{'name':_0x2a3aa8[_0xa530('0x38')],'type':_0x2a3aa8[_0xa530('0x39')]['key']};});_0xf18417[_0xa530('0x3a')]=_[_0xa530('0x35')](_0x4dc965,_0xa530('0x32'));_0xf18417[_0xa530('0x3b')]=_[_0xa530('0x3c')](_0x5a9a1d['query']);_0xf18417[_0xa530('0x3d')]=_[_0xa530('0x3e')](_0xf18417[_0xa530('0x3a')],_0xf18417['query']);_0x2fba74[_0xa530('0x3f')]=_[_0xa530('0x3e')](_0xf18417[_0xa530('0x3a')],qs[_0xa530('0x40')](_0x5a9a1d[_0xa530('0x3b')][_0xa530('0x40')]));_0x2fba74[_0xa530('0x3f')]=_0x2fba74[_0xa530('0x3f')][_0xa530('0x41')]?_0x2fba74[_0xa530('0x3f')]:_0xf18417[_0xa530('0x3a')];if(!_0x5a9a1d['query'][_0xa530('0x42')](_0xa530('0x43'))){_0x2fba74[_0xa530('0x29')]=qs[_0xa530('0x29')](_0x5a9a1d[_0xa530('0x3b')][_0xa530('0x29')]);_0x2fba74['offset']=qs[_0xa530('0x27')](_0x5a9a1d[_0xa530('0x3b')][_0xa530('0x27')]);}_0x2fba74[_0xa530('0x44')]=qs[_0xa530('0x45')](_0x5a9a1d[_0xa530('0x3b')][_0xa530('0x45')]);_0x2fba74[_0xa530('0x46')]=qs['filters'](_[_0xa530('0x47')](_0x5a9a1d[_0xa530('0x3b')],_0xf18417[_0xa530('0x3d')]),_0x4dc965);if(_0x5a9a1d['query']['filter']){_0x2fba74[_0xa530('0x46')]=_[_0xa530('0x48')](_0x2fba74[_0xa530('0x46')],{'$or':_['map'](_0x4dc965,function(_0x5b42d8){if(_0x5b42d8[_0xa530('0x39')]!==_0xa530('0x49')){var _0x3d66d0={};_0x3d66d0[_0x5b42d8[_0xa530('0x32')]]={'$like':'%'+_0x5a9a1d[_0xa530('0x3b')][_0xa530('0x4a')]+'%'};return _0x3d66d0;}})});}_0x2fba74=_['merge']({},_0x2fba74,_0x5a9a1d['options']);var _0x5009d4={'where':_0x2fba74[_0xa530('0x46')]};return db[_0xa530('0x36')][_0xa530('0x2a')](_0x5009d4)[_0xa530('0x4b')](function(_0x2c9eb2){_0x31b192[_0xa530('0x2a')]=_0x2c9eb2;if(_0x5a9a1d[_0xa530('0x3b')][_0xa530('0x4c')]){_0x2fba74[_0xa530('0x4d')]=[{'all':!![]}];}return db[_0xa530('0x36')][_0xa530('0x4e')](_0x2fba74);})[_0xa530('0x4b')](function(_0x39be9d){_0x31b192[_0xa530('0x4f')]=_0x39be9d;return _0x31b192;})['then'](respondWithFilteredResult(_0x33c396,_0x2fba74))[_0xa530('0x23')](handleError(_0x33c396,null));};exports[_0xa530('0x50')]=function(_0x235502,_0x140f2a){var _0x394468={'raw':!![],'where':{'id':_0x235502[_0xa530('0x51')]['id']}},_0x24d568={};_0x24d568[_0xa530('0x3a')]=_[_0xa530('0x3c')](db[_0xa530('0x36')]['rawAttributes']);_0x24d568[_0xa530('0x3b')]=_[_0xa530('0x3c')](_0x235502[_0xa530('0x3b')]);_0x24d568[_0xa530('0x3d')]=_[_0xa530('0x3e')](_0x24d568[_0xa530('0x3a')],_0x24d568[_0xa530('0x3b')]);_0x394468[_0xa530('0x3f')]=_[_0xa530('0x3e')](_0x24d568[_0xa530('0x3a')],qs[_0xa530('0x40')](_0x235502[_0xa530('0x3b')]['fields']));_0x394468[_0xa530('0x3f')]=_0x394468[_0xa530('0x3f')]['length']?_0x394468['attributes']:_0x24d568[_0xa530('0x3a')];if(_0x235502[_0xa530('0x3b')]['includeAll']){_0x394468['include']=[{'all':!![]}];}_0x394468=_[_0xa530('0x48')]({},_0x394468,_0x235502[_0xa530('0x52')]);return db['Network'][_0xa530('0x53')](_0x394468)[_0xa530('0x4b')](handleEntityNotFound(_0x140f2a,null))[_0xa530('0x4b')](respondWithResult(_0x140f2a,null))[_0xa530('0x23')](handleError(_0x140f2a,null));};exports['create']=function(_0x57ddc2,_0x2fd386,_0x31b4f5){var _0x2e8fc1;return db['sequelize']['transaction'](function(_0x2e84e0){return db['Network'][_0xa530('0x54')](_0x57ddc2[_0xa530('0x55')],{'raw':!![]})[_0xa530('0x4b')](function(_0x363945){_0x2e8fc1=_0x363945;return db[_0xa530('0x36')][_0xa530('0x4e')]({'where':{'type':_0x57ddc2['body'][_0xa530('0x39')]},'raw':!![]});})[_0xa530('0x4b')](function(_0x3e96d2){if(_0x2e8fc1[_0xa530('0x39')][_0xa530('0x56')]()=='STUN'){var _0x495781=fs[_0xa530('0x57')](path[_0xa530('0x58')](config[_0xa530('0x59')],_0xa530('0x5a')),'utf8');var _0x2f8414=ejs[_0xa530('0x5b')](_0x495781,{'networks':_0x3e96d2||[]});fs[_0xa530('0x5c')](_0xa530('0x5d'),_0x2f8414);return respondWithRpcPromise(_0xa530('0x5e'),_0xa530('0x54'),{'module':_0xa530('0x5f')});}else if(_0x2e8fc1[_0xa530('0x39')][_0xa530('0x56')]()==_0xa530('0x60')){var _0x272710=fs[_0xa530('0x57')](path[_0xa530('0x58')](config[_0xa530('0x59')],_0xa530('0x61')),'utf8');var _0x373e13=ejs[_0xa530('0x5b')](_0x272710,{'networks':_0x3e96d2||[]});fs[_0xa530('0x5c')]('/etc/asterisk/turn_xcally.conf',_0x373e13);return respondWithRpcPromise('Reload','create',{'module':_0xa530('0x5f')});}else{var _0x485d4f=fs['readFileSync'](path[_0xa530('0x58')](config['root'],_0xa530('0x62')),_0xa530('0x63'));var _0x4a6981=ejs[_0xa530('0x5b')](_0x485d4f,{'networks':_0x3e96d2||[]});fs[_0xa530('0x5c')](util[_0xa530('0x64')](_0xa530('0x65'),_0x57ddc2['body']['type'][_0xa530('0x66')]()),_0x4a6981);return respondWithRpcPromise(_0xa530('0x5e'),_0xa530('0x54'),{'module':_0xa530('0x67')});}return null;})['then'](function(){return _0x2e8fc1;});})[_0xa530('0x4b')](respondWithResult(_0x2fd386,0xc9))[_0xa530('0x23')](handleError(_0x2fd386,null));};exports['update']=function(_0x8aae0a,_0x565620,_0xd954de){var _0x274cf7;return db['sequelize'][_0xa530('0x68')](function(_0x325835){return db[_0xa530('0x36')][_0xa530('0x53')]({'where':{'id':_0x8aae0a[_0xa530('0x51')]['id']}})[_0xa530('0x4b')](handleEntityNotFound(_0x565620,null))[_0xa530('0x4b')](saveUpdates(_0x8aae0a[_0xa530('0x55')],null))['then'](function(_0x4f1304){if(_0x4f1304){_0x274cf7=_0x4f1304;return db['Network'][_0xa530('0x4e')]({'where':{'type':_0x274cf7['type']},'raw':!![]});}return null;})[_0xa530('0x4b')](function(_0x3e1cc6){if(_0x274cf7['type'][_0xa530('0x56')]()=='STUN'){var _0x4e3110=fs[_0xa530('0x57')](path['join'](config[_0xa530('0x59')],_0xa530('0x5a')),'utf8');var _0x5ad7c3=ejs[_0xa530('0x5b')](_0x4e3110,{'networks':_0x3e1cc6||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0x5ad7c3);return respondWithRpcPromise(_0xa530('0x5e'),_0xa530('0x69'),{'module':'res_stun_monitor.so'});}else if(_0x274cf7['type']['toUpperCase']()==_0xa530('0x60')){var _0x317320=fs[_0xa530('0x57')](path[_0xa530('0x58')](config[_0xa530('0x59')],_0xa530('0x61')),'utf8');var _0x523090=ejs[_0xa530('0x5b')](_0x317320,{'networks':_0x3e1cc6||[]});fs[_0xa530('0x5c')](_0xa530('0x6a'),_0x523090);return respondWithRpcPromise(_0xa530('0x5e'),'update',{'module':_0xa530('0x5f')});}else{var _0x4e3ac9=fs['readFileSync'](path[_0xa530('0x58')](config['root'],_0xa530('0x62')),_0xa530('0x63'));var _0xb6ea22=ejs[_0xa530('0x5b')](_0x4e3ac9,{'networks':_0x3e1cc6||[]});fs[_0xa530('0x5c')](util[_0xa530('0x64')]('/etc/asterisk/sip_xcally_%s.conf',_0x8aae0a[_0xa530('0x55')][_0xa530('0x39')][_0xa530('0x66')]()),_0xb6ea22);return respondWithRpcPromise(_0xa530('0x5e'),'update',{'module':'chan_sip.so'});}return null;})[_0xa530('0x4b')](function(_0x20ac24){if(_0x20ac24){return _0x274cf7;}return null;});})['then'](respondWithResult(_0x565620,null))[_0xa530('0x23')](handleError(_0x565620,null));};exports['destroy']=function(_0xbd4fa6,_0x189060,_0x326374){var _0x51761b;return db[_0xa530('0x36')]['find']({'where':{'id':_0xbd4fa6[_0xa530('0x51')]['id']}})[_0xa530('0x4b')](function(_0x4068ae){_0x51761b=_0x4068ae;return _0x4068ae;})[_0xa530('0x4b')](handleEntityNotFound(_0x189060,null))['then'](removeEntity(_0x189060,null))['then'](function(){if(_0x51761b){return db[_0xa530('0x36')]['findAll']({'where':{'type':_0x51761b['type']},'raw':!![]});}})['then'](function(_0x3792f5){if(_0x51761b['type']['toUpperCase']()==_0xa530('0x6b')){var _0x404cbe=fs[_0xa530('0x57')](path['join'](config[_0xa530('0x59')],_0xa530('0x5a')),'utf8');var _0x374fe6=ejs[_0xa530('0x5b')](_0x404cbe,{'networks':_0x3792f5||[]});fs[_0xa530('0x5c')](_0xa530('0x5d'),_0x374fe6);return respondWithRpcPromise('Reload',_0xa530('0x30'),{'module':_0xa530('0x5f')});}else if(_0x51761b[_0xa530('0x39')][_0xa530('0x56')]()=='TURN'){var _0x414e9e=fs[_0xa530('0x57')](path[_0xa530('0x58')](config[_0xa530('0x59')],_0xa530('0x61')),_0xa530('0x63'));var _0x344b7a=ejs['render'](_0x414e9e,{'networks':_0x3792f5||[]});fs[_0xa530('0x5c')](_0xa530('0x6a'),_0x344b7a);return respondWithRpcPromise(_0xa530('0x5e'),_0xa530('0x30'),{'module':_0xa530('0x5f')});}else{var _0x55cc98=fs[_0xa530('0x57')](path[_0xa530('0x58')](config[_0xa530('0x59')],_0xa530('0x62')),_0xa530('0x63'));var _0x111f51=ejs[_0xa530('0x5b')](_0x55cc98,{'networks':_0x3792f5||[]});fs['writeFileSync'](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0xbd4fa6['body']['type']['toLowerCase']()),_0x111f51);return respondWithRpcPromise(_0xa530('0x5e'),'destroy',{'module':_0xa530('0x67')});}return null;})['catch'](handleError(_0x189060,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e81=['lodash','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./network.attributes','exports','define','Network','network'];(function(_0x10d34b,_0x4fef76){var _0x92b0bf=function(_0x16e291){while(--_0x16e291){_0x10d34b['push'](_0x10d34b['shift']());}};_0x92b0bf(++_0x4fef76);}(_0x4e81,0x1bc));var _0x14e8=function(_0x107f10,_0x5529f2){_0x107f10=_0x107f10-0x0;var _0x811cab=_0x4e81[_0x107f10];return _0x811cab;};'use strict';var _=require(_0x14e8('0x0'));var util=require(_0x14e8('0x1'));var logger=require(_0x14e8('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x14e8('0x3'));var fs=require('fs');var path=require(_0x14e8('0x4'));var rimraf=require(_0x14e8('0x5'));var config=require(_0x14e8('0x6'));var attributes=require(_0x14e8('0x7'));module[_0x14e8('0x8')]=function(_0x56a266,_0x57c79b){return _0x56a266[_0x14e8('0x9')](_0x14e8('0xa'),attributes,{'tableName':_0x14e8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe706=['request-promise','path','rimraf','../../config/environment','./network.attributes','exports','define','Network','network','lodash','util','../../config/logger','moment','bluebird'];(function(_0x33a59e,_0x54050c){var _0x532d51=function(_0x8e8b23){while(--_0x8e8b23){_0x33a59e['push'](_0x33a59e['shift']());}};_0x532d51(++_0x54050c);}(_0xe706,0xa3));var _0x6e70=function(_0x136e11,_0x29bd0b){_0x136e11=_0x136e11-0x0;var _0x36d346=_0xe706[_0x136e11];return _0x36d346;};'use strict';var _=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var logger=require(_0x6e70('0x2'))('api');var moment=require(_0x6e70('0x3'));var BPromise=require(_0x6e70('0x4'));var rp=require(_0x6e70('0x5'));var fs=require('fs');var path=require(_0x6e70('0x6'));var rimraf=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));var attributes=require(_0x6e70('0x9'));module[_0x6e70('0xa')]=function(_0x1b0389,_0x4381d1){return _0x1b0389[_0x6e70('0xb')](_0x6e70('0xc'),attributes,{'tableName':_0x6e70('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['info','Network,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x7a54,0x106));var _0x47a5=function(_0x1d5866,_0x49dd6b){_0x1d5866=_0x1d5866-0x0;var _0x4c8683=_0x7a54[_0x1d5866];return _0x4c8683;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('Network,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}
\ No newline at end of file
+var _0x9957=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x4f0966,_0x578faa){var _0x1e517d=function(_0x20b704){while(--_0x20b704){_0x4f0966['push'](_0x4f0966['shift']());}};_0x1e517d(++_0x578faa);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var moment=require(_0x7995('0x2'));var BPromise=require(_0x7995('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7995('0x4'));var db=require(_0x7995('0x5'))['db'];var utils=require(_0x7995('0x6'));var logger=require(_0x7995('0x7'))('rpc');var config=require(_0x7995('0x8'));var jayson=require(_0x7995('0x9'));var client=jayson[_0x7995('0xa')][_0x7995('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbda126,_0x326741,_0x4996ca){return new BPromise(function(_0x465276,_0x1cad37){return client['request'](_0xbda126,_0x4996ca)[_0x7995('0xc')](function(_0x3116fb){logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));logger[_0x7995('0x10')](_0x7995('0x11'),_0x326741,'request\x20sent',JSON[_0x7995('0x12')](_0x3116fb));if(_0x3116fb[_0x7995('0x13')]){if(_0x3116fb['error'][_0x7995('0x14')]===0x1f4){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x1cad37(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}logger['error']('Network,\x20%s,\x20%s',_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x465276(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}else{logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));_0x465276(_0x3116fb[_0x7995('0x16')]['message']);}})[_0x7995('0x17')](function(_0x565d97){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x565d97);_0x1cad37(_0x565d97);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x914b=['get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','getAnswers','/:id/applications','getApplications','/:id/interactions','/:id/users','getAgents','create','post','addDisposition','/:id/canned_answers','addAnswer','/:id/notify','addApplications','/:id/send','send','put','update','delete','destroy','removeAnswers','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../config/environment'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0x914b,0x8d));var _0xb914=function(_0x466af7,_0x2f7551){_0x466af7=_0x466af7-0x0;var _0x348c96=_0x914b[_0x466af7];return _0x348c96;};'use strict';var multer=require(_0xb914('0x0'));var util=require(_0xb914('0x1'));var path=require(_0xb914('0x2'));var timeout=require('connect-timeout');var express=require(_0xb914('0x3'));var router=express['Router']();var fs_extra=require(_0xb914('0x4'));var auth=require(_0xb914('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xb914('0x6'));var controller=require('./openchannelAccount.controller');router[_0xb914('0x7')]('/',auth[_0xb914('0x8')](),controller[_0xb914('0x9')]);router['get'](_0xb914('0xa'),auth[_0xb914('0x8')](),controller[_0xb914('0xb')]);router['get'](_0xb914('0xc'),auth[_0xb914('0x8')](),controller[_0xb914('0xd')]);router[_0xb914('0x7')](_0xb914('0xe'),auth[_0xb914('0x8')](),controller[_0xb914('0xf')]);router['get']('/:id/canned_answers',auth[_0xb914('0x8')](),controller[_0xb914('0x10')]);router[_0xb914('0x7')](_0xb914('0x11'),auth[_0xb914('0x8')](),controller[_0xb914('0x12')]);router['get'](_0xb914('0x13'),auth[_0xb914('0x8')](),controller['getInteractions']);router[_0xb914('0x7')](_0xb914('0x14'),auth[_0xb914('0x8')](),controller[_0xb914('0x15')]);router['post']('/',auth[_0xb914('0x8')](),controller[_0xb914('0x16')]);router[_0xb914('0x17')]('/:id/dispositions',auth[_0xb914('0x8')](),controller[_0xb914('0x18')]);router['post'](_0xb914('0x19'),auth['isAuthenticated'](),controller[_0xb914('0x1a')]);router[_0xb914('0x17')](_0xb914('0x1b'),controller['notify']);router[_0xb914('0x17')](_0xb914('0x11'),auth[_0xb914('0x8')](),controller[_0xb914('0x1c')]);router[_0xb914('0x17')]('/:id/users',auth[_0xb914('0x8')](),controller['addAgents']);router['post'](_0xb914('0x1d'),auth['isAuthenticated'](),controller[_0xb914('0x1e')]);router[_0xb914('0x1f')](_0xb914('0xc'),auth[_0xb914('0x8')](),controller[_0xb914('0x20')]);router[_0xb914('0x21')](_0xb914('0xc'),auth['isAuthenticated'](),controller[_0xb914('0x22')]);router['delete'](_0xb914('0xe'),auth[_0xb914('0x8')](),controller['removeDispositions']);router[_0xb914('0x21')](_0xb914('0x19'),auth[_0xb914('0x8')](),controller[_0xb914('0x23')]);router[_0xb914('0x21')]('/:id/users',auth[_0xb914('0x8')](),controller['removeAgents']);module[_0xb914('0x24')]=router;
\ No newline at end of file
+var _0xd7dd=['util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./openchannelAccount.controller','index','get','/describe','isAuthenticated','describe','/:id','/:id/dispositions','getDispositions','/:id/canned_answers','/:id/applications','/:id/interactions','getInteractions','/:id/users','post','create','addDisposition','addAnswer','/:id/notify','notify','addApplications','send','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','multer'];(function(_0xc35e79,_0x37df8f){var _0x2f2750=function(_0x33ab91){while(--_0x33ab91){_0xc35e79['push'](_0xc35e79['shift']());}};_0x2f2750(++_0x37df8f);}(_0xd7dd,0x1af));var _0xdd7d=function(_0x5e50e6,_0x5955e0){_0x5e50e6=_0x5e50e6-0x0;var _0x17e2e6=_0xd7dd[_0x5e50e6];return _0x17e2e6;};'use strict';var multer=require(_0xdd7d('0x0'));var util=require(_0xdd7d('0x1'));var path=require(_0xdd7d('0x2'));var timeout=require(_0xdd7d('0x3'));var express=require(_0xdd7d('0x4'));var router=express[_0xdd7d('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xdd7d('0x6'));var config=require(_0xdd7d('0x7'));var controller=require(_0xdd7d('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0xdd7d('0x9')]);router[_0xdd7d('0xa')](_0xdd7d('0xb'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0xd')]);router['get'](_0xdd7d('0xe'),auth[_0xdd7d('0xc')](),controller['show']);router[_0xdd7d('0xa')](_0xdd7d('0xf'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x10')]);router[_0xdd7d('0xa')](_0xdd7d('0x11'),auth[_0xdd7d('0xc')](),controller['getAnswers']);router[_0xdd7d('0xa')](_0xdd7d('0x12'),auth['isAuthenticated'](),controller['getApplications']);router['get'](_0xdd7d('0x13'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x14')]);router[_0xdd7d('0xa')](_0xdd7d('0x15'),auth[_0xdd7d('0xc')](),controller['getAgents']);router[_0xdd7d('0x16')]('/',auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x17')]);router[_0xdd7d('0x16')]('/:id/dispositions',auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x18')]);router[_0xdd7d('0x16')](_0xdd7d('0x11'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x19')]);router[_0xdd7d('0x16')](_0xdd7d('0x1a'),controller[_0xdd7d('0x1b')]);router[_0xdd7d('0x16')](_0xdd7d('0x12'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x1c')]);router[_0xdd7d('0x16')]('/:id/users',auth['isAuthenticated'](),controller['addAgents']);router[_0xdd7d('0x16')]('/:id/send',auth['isAuthenticated'](),controller[_0xdd7d('0x1d')]);router['put'](_0xdd7d('0xe'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x1e')]);router['delete'](_0xdd7d('0xe'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x1f')]);router[_0xdd7d('0x20')](_0xdd7d('0xf'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x21')]);router['delete']('/:id/canned_answers',auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x22')]);router[_0xdd7d('0x20')](_0xdd7d('0x15'),auth[_0xdd7d('0xc')](),controller[_0xdd7d('0x23')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6a0=['setDataValue','mandatoryDisposition','sequelize','randomstring','exports','STRING','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId'];(function(_0x554292,_0x82948a){var _0x3dd555=function(_0xab7590){while(--_0xab7590){_0x554292['push'](_0x554292['shift']());}};_0x3dd555(++_0x82948a);}(_0xc6a0,0xb2));var _0x0c6a=function(_0xb0ae60,_0x27a47b){_0xb0ae60=_0xb0ae60-0x0;var _0xa70ceb=_0xc6a0[_0xb0ae60];return _0xa70ceb;};'use strict';var Sequelize=require(_0x0c6a('0x0'));var rs=require(_0x0c6a('0x1'));module[_0x0c6a('0x2')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0x0c6a('0x3')]},'token':{'type':Sequelize[_0x0c6a('0x3')],'defaultValue':function(){return rs['generate']();}},'replyUri':{'type':Sequelize[_0x0c6a('0x3')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0x0c6a('0x3')],'allowNull':![]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x0c6a('0x4')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x0c6a('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0x0c6a('0x3')]},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x0c6a('0x4')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x0c6a('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x0c6a('0x5')],'allowNull':!![],'defaultValue':null,'comment':_0x0c6a('0x6')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x0c6a('0x7'),'set':function(_0x1e0d0d){if(!_0x1e0d0d)this['setDataValue'](_0x0c6a('0x8'),null);this[_0x0c6a('0x9')](_0x0c6a('0xa'),_0x1e0d0d);}}};
\ No newline at end of file
+var _0x4173=['Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','mandatoryDispositionPauseId','setDataValue','mandatoryDisposition','randomstring','STRING','name','generate','TEXT'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x4173,0x74));var _0x3417=function(_0x2f57b2,_0xa8e91a){_0x2f57b2=_0x2f57b2-0x0;var _0x5ace77=_0x4173[_0x2f57b2];return _0x5ace77;};'use strict';var Sequelize=require('sequelize');var rs=require(_0x3417('0x0'));module['exports']={'name':{'type':Sequelize[_0x3417('0x1')],'unique':_0x3417('0x2'),'allowNull':![]},'description':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0x3417('0x1')],'defaultValue':function(){return rs[_0x3417('0x3')]();}},'replyUri':{'type':Sequelize[_0x3417('0x1')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize['STRING'],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x3417('0x4')],'defaultValue':function(){return _0x3417('0x5');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x3417('0x6')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x3417('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize['STRING']},'queueTransfer':{'type':Sequelize[_0x3417('0x6')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x3417('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x3417('0x6')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x3417('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x3417('0x6')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x2295a5){if(!_0x2295a5)this['setDataValue'](_0x3417('0x8'),null);this[_0x3417('0x9')](_0x3417('0xa'),_0x2295a5);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fad=['body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','autoAssociation','describe','addDisposition','OpenchannelAccountId','getDispositions','findOne','Disposition','pick','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','includeAll','removeAnswers','notify','openchannel','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','updatedAt','createdAt','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','OpenchannelApplication','Applications','applications','list','orderBy','priority','account','firstName','threadId','externalUrl','ContactId','contact','lastName','messageId','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','OpenchannelMessage','AttachmentId','UserId','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','getInteractions','OpenchannelInteraction','Contact','Owner','internal','tag','addAgents','omit','spread','emit','userOpenchannelAccount:save','removeAgents','userOpenchannelAccount:remove','getAgents','User','ListId','out','Messages','dataValues','eml-format','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','register','client','http','info','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelAccount,\x20%s,\x20%s','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','Pause','mandatoryDispositionPause','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','OpenchannelAccount','include','findAll','rows','show','params','find','create'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x2fad,0x1da));var _0xd2fa=function(_0x336264,_0x32e1d9){_0x336264=_0x336264-0x0;var _0x53cf91=_0x2fad[_0x336264];return _0x53cf91;};'use strict';var emlformat=require(_0xd2fa('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd2fa('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd2fa('0x2'));var moment=require(_0xd2fa('0x3'));var BPromise=require(_0xd2fa('0x4'));var Mustache=require(_0xd2fa('0x5'));var util=require('util');var path=require(_0xd2fa('0x6'));var sox=require(_0xd2fa('0x7'));var csv=require(_0xd2fa('0x8'));var ejs=require(_0xd2fa('0x9'));var fs=require('fs');var fs_extra=require(_0xd2fa('0xa'));var _=require(_0xd2fa('0xb'));var squel=require(_0xd2fa('0xc'));var crypto=require(_0xd2fa('0xd'));var jsforce=require(_0xd2fa('0xe'));var deskjs=require(_0xd2fa('0xf'));var toCsv=require(_0xd2fa('0x8'));var querystring=require('querystring');var Papa=require(_0xd2fa('0x10'));var Redis=require('ioredis');var authService=require(_0xd2fa('0x11'));var qs=require(_0xd2fa('0x12'));var as=require(_0xd2fa('0x13'));var hardwareService=require(_0xd2fa('0x14'));var logger=require(_0xd2fa('0x15'))(_0xd2fa('0x16'));var utils=require(_0xd2fa('0x17'));var config=require(_0xd2fa('0x18'));var licenseUtil=require(_0xd2fa('0x19'));var db=require(_0xd2fa('0x1a'))['db'];config[_0xd2fa('0x1b')]=_[_0xd2fa('0x1c')](config['redis'],{'host':_0xd2fa('0x1d'),'port':0x18eb});var socket=require(_0xd2fa('0x1e'))(new Redis(config[_0xd2fa('0x1b')]));require(_0xd2fa('0x1f'))[_0xd2fa('0x20')](socket);var jayson=require('jayson/promise');var client=jayson[_0xd2fa('0x21')][_0xd2fa('0x22')]({'port':0x232c});var client9002=jayson[_0xd2fa('0x21')][_0xd2fa('0x22')]({'port':0x232a});function respondWithRpcPromise(_0x17720c,_0x2166eb,_0x5e5c5c,_0x5a7c5f){return new BPromise(function(_0x2d221d,_0x4263d9){var _0x125ed9=_0x5a7c5f||client;return _0x125ed9['request'](_0x17720c,_0x5e5c5c)['then'](function(_0x4506ea){logger[_0xd2fa('0x23')]('OpenchannelAccount,\x20%s,\x20%s',_0x2166eb,_0xd2fa('0x24'));logger[_0xd2fa('0x25')](_0xd2fa('0x26'),_0x2166eb,_0xd2fa('0x24'),JSON[_0xd2fa('0x27')](_0x4506ea));if(_0x4506ea[_0xd2fa('0x28')]){if(_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x29')]===0x1f4){logger[_0xd2fa('0x28')](_0xd2fa('0x2a'),_0x2166eb,_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x2b')]);return _0x4263d9(_0x4506ea[_0xd2fa('0x28')]['message']);}logger[_0xd2fa('0x28')]('OpenchannelAccount,\x20%s,\x20%s',_0x2166eb,_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x2b')]);return _0x2d221d(_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x2b')]);}else{logger[_0xd2fa('0x23')]('OpenchannelAccount,\x20%s,\x20%s',_0x2166eb,'request\x20sent');_0x2d221d(_0x4506ea['result'][_0xd2fa('0x2b')]);}})[_0xd2fa('0x2c')](function(_0x1748c1){logger[_0xd2fa('0x28')](_0xd2fa('0x2a'),_0x2166eb,_0x1748c1);_0x4263d9(_0x1748c1);});});}function respondWithStatusCode(_0x2ce4aa,_0x5b867e){_0x5b867e=_0x5b867e||0xcc;return function(_0x339b88){if(_0x339b88){return _0x2ce4aa[_0xd2fa('0x2d')](_0x5b867e);}return _0x2ce4aa[_0xd2fa('0x2e')](_0x5b867e)[_0xd2fa('0x2f')]();};}function respondWithResult(_0x3575be,_0x1130dd){_0x1130dd=_0x1130dd||0xc8;return function(_0x470c36){if(_0x470c36){return _0x3575be['status'](_0x1130dd)[_0xd2fa('0x30')](_0x470c36);}};}function respondWithFilteredResult(_0x18926f,_0xcc39c1){return function(_0xbdf969){if(_0xbdf969){var _0x480489=typeof _0xcc39c1[_0xd2fa('0x31')]===_0xd2fa('0x32')&&typeof _0xcc39c1[_0xd2fa('0x33')]===_0xd2fa('0x32');var _0x302975=_0xbdf969['count'];var _0x192158=_0x480489?0x0:_0xcc39c1[_0xd2fa('0x31')];var _0x38d51c=_0x480489?_0xbdf969[_0xd2fa('0x34')]:_0xcc39c1['offset']+_0xcc39c1[_0xd2fa('0x33')];var _0x4dd814;if(_0x38d51c>=_0x302975){_0x38d51c=_0x302975;_0x4dd814=0xc8;}else{_0x4dd814=0xce;}_0x18926f[_0xd2fa('0x2e')](_0x4dd814);return _0x18926f[_0xd2fa('0x35')](_0xd2fa('0x36'),_0x192158+'-'+_0x38d51c+'/'+_0x302975)['json'](_0xbdf969);}return null;};}function patchUpdates(_0x5c2dd3){return function(_0x20ddc1){try{jsonpatch[_0xd2fa('0x37')](_0x20ddc1,_0x5c2dd3,!![]);}catch(_0x2c9348){return BPromise[_0xd2fa('0x38')](_0x2c9348);}return _0x20ddc1[_0xd2fa('0x39')]();};}function saveUpdates(_0x1ef15b,_0x2458e1){return function(_0x47604b){if(_0x47604b){return _0x47604b[_0xd2fa('0x3a')](_0x1ef15b)[_0xd2fa('0x3b')](function(_0x30520d){return _0x30520d;});}return null;};}function removeEntity(_0x40d05c,_0x2bab93){return function(_0x373f58){if(_0x373f58){return _0x373f58[_0xd2fa('0x3c')]()[_0xd2fa('0x3b')](function(){var _0x46caad=_0x373f58[_0xd2fa('0x3d')]({'plain':!![]});var _0x12988d='OpenchannelAccounts';return db[_0xd2fa('0x3e')][_0xd2fa('0x3c')]({'where':{'type':_0x12988d,'resourceId':_0x46caad['id']}})[_0xd2fa('0x3b')](function(){return _0x373f58;});})[_0xd2fa('0x3b')](function(){_0x40d05c[_0xd2fa('0x2e')](0xcc)[_0xd2fa('0x2f')]();});}};}function handleEntityNotFound(_0x1ca308,_0x495c16){return function(_0x2288e7){if(!_0x2288e7){_0x1ca308[_0xd2fa('0x2d')](0x194);}return _0x2288e7;};}function handleError(_0x4b486f,_0x44491e){_0x44491e=_0x44491e||0x1f4;return function(_0x3b46d4){logger[_0xd2fa('0x28')](_0x3b46d4[_0xd2fa('0x3f')]);if(_0x3b46d4[_0xd2fa('0x40')]){delete _0x3b46d4['name'];}_0x4b486f['status'](_0x44491e)[_0xd2fa('0x41')](_0x3b46d4);};}exports[_0xd2fa('0x42')]=function(_0x54ca29,_0x49d3b8){var _0x4d239c={'include':[{'model':db[_0xd2fa('0x43')],'as':_0xd2fa('0x44')}]},_0x544e17={},_0x1d074f={'count':0x0,'rows':[]};var _0x3353f0=_[_0xd2fa('0x45')](db['OpenchannelAccount'][_0xd2fa('0x46')],function(_0x1d4aeb){return{'name':_0x1d4aeb[_0xd2fa('0x47')],'type':_0x1d4aeb[_0xd2fa('0x48')][_0xd2fa('0x49')]};});_0x544e17[_0xd2fa('0x4a')]=_[_0xd2fa('0x45')](_0x3353f0,_0xd2fa('0x40'));_0x544e17[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x54ca29[_0xd2fa('0x4b')]);_0x544e17[_0xd2fa('0x4d')]=_['intersection'](_0x544e17[_0xd2fa('0x4a')],_0x544e17[_0xd2fa('0x4b')]);_0x4d239c['attributes']=_[_0xd2fa('0x4e')](_0x544e17[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x54ca29['query'][_0xd2fa('0x4f')]));_0x4d239c['attributes']=_0x4d239c[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x4d239c['attributes']:_0x544e17[_0xd2fa('0x4a')];if(!_0x54ca29[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x4d239c[_0xd2fa('0x33')]=qs[_0xd2fa('0x33')](_0x54ca29['query'][_0xd2fa('0x33')]);_0x4d239c[_0xd2fa('0x31')]=qs[_0xd2fa('0x31')](_0x54ca29[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}_0x4d239c[_0xd2fa('0x54')]=qs['sort'](_0x54ca29['query'][_0xd2fa('0x55')]);_0x4d239c[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_['pick'](_0x54ca29[_0xd2fa('0x4b')],_0x544e17[_0xd2fa('0x4d')]),_0x3353f0);if(_0x54ca29[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x4d239c[_0xd2fa('0x56')]=_[_0xd2fa('0x58')](_0x4d239c[_0xd2fa('0x56')],{'$or':_[_0xd2fa('0x45')](_0x3353f0,function(_0x30ab2f){if(_0x30ab2f[_0xd2fa('0x48')]!==_0xd2fa('0x59')){var _0x2e2472={};_0x2e2472[_0x30ab2f['name']]={'$like':'%'+_0x54ca29['query']['filter']+'%'};return _0x2e2472;}})});}_0x4d239c=_[_0xd2fa('0x58')]({},_0x4d239c,_0x54ca29[_0xd2fa('0x5a')]);var _0x2eb233={'where':_0x4d239c[_0xd2fa('0x56')]};return db[_0xd2fa('0x5b')][_0xd2fa('0x34')](_0x2eb233)['then'](function(_0x5dca2f){_0x1d074f[_0xd2fa('0x34')]=_0x5dca2f;if(_0x54ca29[_0xd2fa('0x4b')]['includeAll']){_0x4d239c[_0xd2fa('0x5c')]=[{'all':!![]}];}return db[_0xd2fa('0x5b')][_0xd2fa('0x5d')](_0x4d239c);})[_0xd2fa('0x3b')](function(_0x574dc5){_0x1d074f[_0xd2fa('0x5e')]=_0x574dc5;return _0x1d074f;})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x49d3b8,_0x4d239c))['catch'](handleError(_0x49d3b8,null));};exports[_0xd2fa('0x5f')]=function(_0x4cb323,_0x3b96f8){var _0x21e7fa={'raw':![],'where':{'id':_0x4cb323[_0xd2fa('0x60')]['id']},'include':[{'model':db[_0xd2fa('0x43')],'as':_0xd2fa('0x44')}]},_0x14acfa={};_0x14acfa[_0xd2fa('0x4a')]=_[_0xd2fa('0x4c')](db[_0xd2fa('0x5b')][_0xd2fa('0x46')]);_0x14acfa[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x4cb323[_0xd2fa('0x4b')]);_0x14acfa[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x14acfa[_0xd2fa('0x4a')],_0x14acfa[_0xd2fa('0x4b')]);_0x21e7fa['attributes']=_[_0xd2fa('0x4e')](_0x14acfa[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x4cb323['query'][_0xd2fa('0x4f')]));_0x21e7fa['attributes']=_0x21e7fa[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x21e7fa[_0xd2fa('0x50')]:_0x14acfa[_0xd2fa('0x4a')];if(_0x4cb323[_0xd2fa('0x4b')]['includeAll']){_0x21e7fa['include']=[{'all':!![]}];}_0x21e7fa=_[_0xd2fa('0x58')]({},_0x21e7fa,_0x4cb323['options']);return db[_0xd2fa('0x5b')][_0xd2fa('0x61')](_0x21e7fa)['then'](handleEntityNotFound(_0x3b96f8,null))['then'](respondWithResult(_0x3b96f8,null))[_0xd2fa('0x2c')](handleError(_0x3b96f8,null));};exports['create']=function(_0x52b79a,_0xfc5f74){return db['OpenchannelAccount'][_0xd2fa('0x62')](_0x52b79a[_0xd2fa('0x63')],{})[_0xd2fa('0x3b')](function(_0x2dced6){var _0x1bbaf8=_0x52b79a['user'][_0xd2fa('0x3d')]({'plain':!![]});if(!_0x1bbaf8)throw new Error(_0xd2fa('0x64'));if(_0x1bbaf8['role']===_0xd2fa('0x65')){var _0x16c18e=_0x2dced6[_0xd2fa('0x3d')]({'plain':!![]});var _0xd7807a='OpenchannelAccounts';return db['UserProfileSection'][_0xd2fa('0x61')]({'where':{'name':_0xd7807a,'userProfileId':_0x1bbaf8['userProfileId']},'raw':!![]})[_0xd2fa('0x3b')](function(_0x58320b){if(_0x58320b&&_0x58320b[_0xd2fa('0x66')]===0x0){return db['UserProfileResource'][_0xd2fa('0x62')]({'name':_0x16c18e[_0xd2fa('0x40')],'resourceId':_0x16c18e['id'],'type':_0x58320b[_0xd2fa('0x40')],'sectionId':_0x58320b['id']},{})[_0xd2fa('0x3b')](function(){return _0x2dced6;});}else{return _0x2dced6;}})[_0xd2fa('0x2c')](function(_0x46b8f0){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x46b8f0);throw _0x46b8f0;});}return _0x2dced6;})[_0xd2fa('0x3b')](respondWithResult(_0xfc5f74,0xc9))[_0xd2fa('0x2c')](handleError(_0xfc5f74,null));};exports[_0xd2fa('0x3a')]=function(_0x1590cb,_0x129f88){if(_0x1590cb[_0xd2fa('0x63')]['id']){delete _0x1590cb['body']['id'];}return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x1590cb[_0xd2fa('0x60')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})[_0xd2fa('0x3b')](handleEntityNotFound(_0x129f88,null))['then'](saveUpdates(_0x1590cb[_0xd2fa('0x63')],null))[_0xd2fa('0x3b')](respondWithResult(_0x129f88,null))[_0xd2fa('0x2c')](handleError(_0x129f88,null));};exports['destroy']=function(_0xfa78b1,_0x37c2d5){return db[_0xd2fa('0x5b')]['find']({'where':{'id':_0xfa78b1[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x37c2d5,null))[_0xd2fa('0x3b')](removeEntity(_0x37c2d5,null))['catch'](handleError(_0x37c2d5,null));};exports[_0xd2fa('0x67')]=function(_0x2195eb,_0x4c96c3){return db[_0xd2fa('0x5b')][_0xd2fa('0x67')]()['then'](respondWithResult(_0x4c96c3,null))['catch'](handleError(_0x4c96c3,null));};exports[_0xd2fa('0x68')]=function(_0x1857b9,_0x420496,_0x1ddc30){if(_0x1857b9[_0xd2fa('0x63')]['id']){delete _0x1857b9[_0xd2fa('0x63')]['id'];}return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x1857b9['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x420496,null))[_0xd2fa('0x3b')](function(_0x1f219e){if(_0x1f219e){_0x1857b9['body'][_0xd2fa('0x69')]=_0x1f219e['id'];return db['Disposition'][_0xd2fa('0x62')](_0x1857b9[_0xd2fa('0x63')]);}})[_0xd2fa('0x3b')](respondWithResult(_0x420496,null))[_0xd2fa('0x2c')](handleError(_0x420496,null));};exports[_0xd2fa('0x6a')]=function(_0x40b44d,_0x8377,_0x24dbfd){var _0x337049={'raw':![],'where':{}};var _0x56684d={};var _0x4a55fd={'count':0x0,'rows':[]};return db[_0xd2fa('0x5b')][_0xd2fa('0x6b')]({'where':{'id':_0x40b44d[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x8377,null))[_0xd2fa('0x3b')](function(_0x580e0c){if(_0x580e0c){_0x56684d[_0xd2fa('0x4a')]=_[_0xd2fa('0x4c')](db[_0xd2fa('0x6c')][_0xd2fa('0x46')]);_0x56684d['query']=_[_0xd2fa('0x4c')](_0x40b44d[_0xd2fa('0x4b')]);_0x56684d[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x56684d[_0xd2fa('0x4a')],_0x56684d[_0xd2fa('0x4b')]);_0x337049[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x56684d[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x40b44d['query'][_0xd2fa('0x4f')]));_0x337049[_0xd2fa('0x50')]=_0x337049[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x337049[_0xd2fa('0x50')]:_0x56684d[_0xd2fa('0x4a')];if(!_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x337049[_0xd2fa('0x33')]=qs[_0xd2fa('0x33')](_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x33')]);_0x337049['offset']=qs[_0xd2fa('0x31')](_0x40b44d[_0xd2fa('0x4b')]['offset']);}_0x337049['order']=qs['sort'](_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x55')]);_0x337049[_0xd2fa('0x56')]=qs['filters'](_[_0xd2fa('0x6d')](_0x40b44d[_0xd2fa('0x4b')],_0x56684d['filters']));_0x337049[_0xd2fa('0x56')][_0xd2fa('0x69')]=_0x580e0c['id'];if(_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x337049['where']=_[_0xd2fa('0x58')](_0x337049[_0xd2fa('0x56')],{'$or':_['map'](_0x337049[_0xd2fa('0x50')],function(_0x24e3ad){var _0x413f10={};_0x413f10[_0x24e3ad]={'$like':'%'+_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x57')]+'%'};return _0x413f10;})});}_0x337049=_[_0xd2fa('0x58')]({},_0x337049,_0x40b44d[_0xd2fa('0x5a')]);return db[_0xd2fa('0x6c')][_0xd2fa('0x34')]({'where':_0x337049[_0xd2fa('0x56')]})[_0xd2fa('0x3b')](function(_0x4391f1){_0x4a55fd['count']=_0x4391f1;if(_0x40b44d[_0xd2fa('0x4b')]['includeAll']){_0x337049[_0xd2fa('0x5c')]=[{'all':!![]}];}return db[_0xd2fa('0x6c')]['findAll'](_0x337049);})[_0xd2fa('0x3b')](function(_0x24f6ee){_0x4a55fd['rows']=_0x24f6ee;return _0x4a55fd;});}})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x8377,_0x337049))[_0xd2fa('0x2c')](handleError(_0x8377,null));};exports[_0xd2fa('0x6e')]=function(_0x52d743,_0xb13768,_0x29f2e9){return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x52d743[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0xb13768,null))[_0xd2fa('0x3b')](function(_0x308bbb){if(_0x308bbb){return _0x308bbb[_0xd2fa('0x6e')](_0x52d743['query'][_0xd2fa('0x6f')]);}})['then'](respondWithStatusCode(_0xb13768,null))['catch'](handleError(_0xb13768,null));};exports[_0xd2fa('0x70')]=function(_0x512741,_0x448879,_0x2db8a5){if(_0x512741['body']['id']){delete _0x512741[_0xd2fa('0x63')]['id'];}return db[_0xd2fa('0x5b')]['find']({'where':{'id':_0x512741['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x448879,null))[_0xd2fa('0x3b')](function(_0x29d4ca){if(_0x29d4ca){_0x512741[_0xd2fa('0x63')][_0xd2fa('0x69')]=_0x29d4ca['id'];return db[_0xd2fa('0x71')][_0xd2fa('0x62')](_0x512741[_0xd2fa('0x63')]);}})[_0xd2fa('0x3b')](respondWithResult(_0x448879,null))[_0xd2fa('0x2c')](handleError(_0x448879,null));};exports[_0xd2fa('0x72')]=function(_0x4f4375,_0x39f115,_0x56f459){var _0xf9fa10={'raw':![],'where':{}};var _0x139517={};var _0x40af01={'count':0x0,'rows':[]};return db['OpenchannelAccount']['findOne']({'where':{'id':_0x4f4375['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x39f115,null))[_0xd2fa('0x3b')](function(_0x52eec6){if(_0x52eec6){_0x139517['model']=_['keys'](db['CannedAnswer'][_0xd2fa('0x46')]);_0x139517[_0xd2fa('0x4b')]=_['keys'](_0x4f4375[_0xd2fa('0x4b')]);_0x139517['filters']=_[_0xd2fa('0x4e')](_0x139517['model'],_0x139517[_0xd2fa('0x4b')]);_0xf9fa10[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x139517['model'],qs[_0xd2fa('0x4f')](_0x4f4375[_0xd2fa('0x4b')][_0xd2fa('0x4f')]));_0xf9fa10['attributes']=_0xf9fa10[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0xf9fa10[_0xd2fa('0x50')]:_0x139517[_0xd2fa('0x4a')];if(!_0x4f4375[_0xd2fa('0x4b')]['hasOwnProperty'](_0xd2fa('0x53'))){_0xf9fa10[_0xd2fa('0x33')]=qs['limit'](_0x4f4375['query'][_0xd2fa('0x33')]);_0xf9fa10[_0xd2fa('0x31')]=qs[_0xd2fa('0x31')](_0x4f4375[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}_0xf9fa10[_0xd2fa('0x54')]=qs[_0xd2fa('0x55')](_0x4f4375[_0xd2fa('0x4b')]['sort']);_0xf9fa10[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x4f4375[_0xd2fa('0x4b')],_0x139517['filters']));_0xf9fa10[_0xd2fa('0x56')][_0xd2fa('0x69')]=_0x52eec6['id'];if(_0x4f4375['query'][_0xd2fa('0x57')]){_0xf9fa10[_0xd2fa('0x56')]=_[_0xd2fa('0x58')](_0xf9fa10['where'],{'$or':_[_0xd2fa('0x45')](_0xf9fa10['attributes'],function(_0x293b4e){var _0x3f8df5={};_0x3f8df5[_0x293b4e]={'$like':'%'+_0x4f4375['query'][_0xd2fa('0x57')]+'%'};return _0x3f8df5;})});}_0xf9fa10=_['merge']({},_0xf9fa10,_0x4f4375['options']);return db[_0xd2fa('0x71')][_0xd2fa('0x34')]({'where':_0xf9fa10['where']})[_0xd2fa('0x3b')](function(_0x3261ec){_0x40af01[_0xd2fa('0x34')]=_0x3261ec;if(_0x4f4375[_0xd2fa('0x4b')][_0xd2fa('0x73')]){_0xf9fa10[_0xd2fa('0x5c')]=[{'all':!![]}];}return db[_0xd2fa('0x71')][_0xd2fa('0x5d')](_0xf9fa10);})[_0xd2fa('0x3b')](function(_0x21e88d){_0x40af01['rows']=_0x21e88d;return _0x40af01;});}})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x39f115,_0xf9fa10))['catch'](handleError(_0x39f115,null));};exports[_0xd2fa('0x74')]=function(_0x28384e,_0x29859b,_0x12aa2c){return db[_0xd2fa('0x5b')][_0xd2fa('0x61')]({'where':{'id':_0x28384e['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x29859b,null))[_0xd2fa('0x3b')](function(_0xde90ff){if(_0xde90ff){return _0xde90ff[_0xd2fa('0x74')](_0x28384e[_0xd2fa('0x4b')]['ids']);}})['then'](respondWithStatusCode(_0x29859b,null))[_0xd2fa('0x2c')](handleError(_0x29859b,null));};exports[_0xd2fa('0x75')]=function(_0x1818db,_0x316128,_0x2c9072){var _0x2a7dda={'body':_0x1818db[_0xd2fa('0x63')],'channel':_0xd2fa('0x76')};var _0xbb4a0c=[];var _0x1bf5e5=[];var _0x3a033b={};var _0x54d6b8=![];return db[_0xd2fa('0x77')][_0xd2fa('0x67')]()[_0xd2fa('0x3b')](function(_0x143dc5){if(!_0x143dc5){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x7a'));}_0xbb4a0c=_[_0xd2fa('0x7b')](_['keys'](_0x143dc5),['createdAt',_0xd2fa('0x7c')]);_0x1bf5e5=_[_0xd2fa('0x7b')](_[_0xd2fa('0x4c')](_0x143dc5),[_0xd2fa('0x7d'),'updatedAt','CompanyId','ListId']);if(_0x1818db[_0xd2fa('0x63')]['id']){delete _0x1818db[_0xd2fa('0x63')]['id'];}if(_[_0xd2fa('0x7e')](_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x7f')])){throw new db[(_0xd2fa('0x78'))]['ValidationError']('from\x20is\x20mandatory');}if(_[_0xd2fa('0x7e')](_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x63')])||_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x63')]===''){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x80'));}if(_[_0xd2fa('0x7e')](_0x1818db['body'][_0xd2fa('0x81')])){throw new db[(_0xd2fa('0x78'))]['ValidationError'](_0xd2fa('0x82')+_0x1bf5e5);}if(!_[_0xd2fa('0x83')](_0x1bf5e5,_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x81')])){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x84')+_0x1bf5e5);}_0x3a033b[_0x1818db['body'][_0xd2fa('0x81')]]=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x7f')];})['then'](function(){return db[_0xd2fa('0x5b')]['find']({'where':{'id':_0x1818db[_0xd2fa('0x60')]['id']},'include':[{'model':db[_0xd2fa('0x85')],'as':_0xd2fa('0x86'),'include':[{'model':db['CmContact'],'as':_0xd2fa('0x87'),'where':_0x3a033b,'limit':0x1,'order':[[_0xd2fa('0x7c'),_0xd2fa('0x88')]]}]},{'model':db[_0xd2fa('0x89')],'as':_0xd2fa('0x8a')}]});})[_0xd2fa('0x3b')](handleEntityNotFound(_0x316128,null))[_0xd2fa('0x3b')](function(_0x5ca7cf){if(_0x5ca7cf&&_0x5ca7cf[_0xd2fa('0x86')]){_0x2a7dda['account']=_0x5ca7cf;_0x2a7dda[_0xd2fa('0x8b')]=_0x5ca7cf[_0xd2fa('0x8a')];_0x2a7dda[_0xd2fa('0x8c')]=_0x5ca7cf[_0xd2fa('0x86')];_0x2a7dda[_0xd2fa('0x8b')]=_[_0xd2fa('0x8d')](_0x2a7dda[_0xd2fa('0x8b')],[_0xd2fa('0x8e')],['asc']);if(_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x8a')]){delete _0x2a7dda['account'][_0xd2fa('0x8a')];}if(_0x2a7dda[_0xd2fa('0x8f')]['List']&&_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x86')][_0xd2fa('0x87')]['length']){return _0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x86')]['Contacts'][0x0];}var _0x263cb5=_['defaults'](_0x1818db['body'],{'firstName':_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x7f')],'ListId':_0x5ca7cf['ListId']});_0x263cb5[_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x81')]]=_0x1818db['body'][_0xd2fa('0x7f')];return db['CmContact'][_0xd2fa('0x62')](_0x263cb5,{'fields':_0xbb4a0c,'raw':!![]});}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x316128,null))[_0xd2fa('0x3b')](function(_0x2bc3ff){_0x2a7dda['contact']=_0x2bc3ff;if(_0x2bc3ff){var _0x47335c={'ContactId':_0x2bc3ff['id'],'OpenchannelAccountId':_0x1818db[_0xd2fa('0x60')]['id'],'from':(_0x2bc3ff[_0xd2fa('0x90')]||'')+'\x20'+(_0x2bc3ff['lastName']||'')};var _0x3817f4={'OpenchannelAccountId':_0x1818db['params']['id'],'closed':![]};if(_0x1818db[_0xd2fa('0x63')]['threadId']){_0x3817f4[_0xd2fa('0x91')]=_0x1818db['body']['threadId'];return db['OpenchannelInteraction'][_0xd2fa('0x61')]({'where':_0x3817f4})['then'](function(_0x50a68d){if(_0x50a68d){return[_0x50a68d,![]];}_0x47335c['threadId']=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x91')];_0x47335c[_0xd2fa('0x92')]=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x92')];return db['OpenchannelInteraction'][_0xd2fa('0x62')](_0x47335c)[_0xd2fa('0x3b')](function(_0x23bbb6){return[_0x23bbb6,!![]];});});}else{_0x3817f4[_0xd2fa('0x91')]=null;}_0x3817f4[_0xd2fa('0x93')]=_0x2bc3ff['id'];return db['OpenchannelInteraction'][_0xd2fa('0x61')]({'where':_0x3817f4})[_0xd2fa('0x3b')](function(_0x4bd5a8){if(_0x4bd5a8){return[_0x4bd5a8,![]];}return db['OpenchannelInteraction'][_0xd2fa('0x62')](_0x47335c)['then'](function(_0x303b06){return[_0x303b06,!![]];});});}})['spread'](function(_0x362ba4,_0x41a78d){if(_0x362ba4){_0x54d6b8=_0x41a78d;if(!_0x41a78d){var _0x1e99e8={'from':(_0x2a7dda[_0xd2fa('0x94')][_0xd2fa('0x90')]||'')+'\x20'+(_0x2a7dda[_0xd2fa('0x94')][_0xd2fa('0x95')]||'')};if(_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x91')]&&_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x96')]&&_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x91')]!=_0x1818db[_0xd2fa('0x63')]['messageId']){_0x1e99e8[_0xd2fa('0x91')]=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x96')];}return _0x362ba4['update'](_0x1e99e8);}else{return _0x362ba4;}}})[_0xd2fa('0x3b')](function(_0x152887){_0x2a7dda[_0xd2fa('0x97')]=_0x152887[_0xd2fa('0x3d')]({'plain':!![]});_0x2a7dda['interaction'][_0xd2fa('0x98')]=_0x54d6b8;if(_0x2a7dda[_0xd2fa('0x97')][_0xd2fa('0x98')]){if(_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x99')]){_0x2a7dda[_0xd2fa('0x8b')][_0xd2fa('0x9a')]({'id':0x0,'priority':_0x2a7dda[_0xd2fa('0x8b')][_0xd2fa('0x51')]+0x1,'app':_0xd2fa('0x9b'),'appdata':_0xd2fa('0x9c'),'interval':_0xd2fa('0x9d')});}}return db[_0xd2fa('0x9e')][_0xd2fa('0x62')]({'body':_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x63')],'OpenchannelAccountId':_0x1818db['params']['id'],'OpenchannelInteractionId':_0x152887['id'],'direction':'in','ContactId':_0x2a7dda['contact']['id'],'AttachmentId':_0x1818db['body'][_0xd2fa('0x9f')]});})[_0xd2fa('0x3b')](function(_0x153a7a){_0x2a7dda[_0xd2fa('0x2b')]=_0x153a7a;if(_0x2a7dda[_0xd2fa('0x97')][_0xd2fa('0xa0')]){return db['User'][_0xd2fa('0x61')]({'attributes':['id',_0xd2fa('0x40')],'where':{'id':_0x2a7dda[_0xd2fa('0x97')][_0xd2fa('0xa0')]}})[_0xd2fa('0x3b')](function(_0x488a1a){if(_0x488a1a){_0x2a7dda[_0xd2fa('0x8b')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x488a1a[_0xd2fa('0x40')]+','+(_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0xa1')]||0xa),'interval':'*,*,*,*'});_0x2a7dda[_0xd2fa('0xa2')]=![];}return respondWithRpcPromise(_0xd2fa('0xa3'),_0xd2fa('0xa4'),_0x2a7dda);});}return respondWithRpcPromise('Start',_0xd2fa('0xa4'),_0x2a7dda);})[_0xd2fa('0x3b')](function(_0x1ea524){respondWithRpcPromise(_0xd2fa('0xa5'),_0xd2fa('0xa5'),{'event':'notify','message':_0x1ea524},client9002);return _0x1ea524;})[_0xd2fa('0x3b')](respondWithResult(_0x316128,null))[_0xd2fa('0x2c')](handleError(_0x316128,null));};exports[_0xd2fa('0xa6')]=function(_0x222cd7,_0x5885cf,_0x5d834b){return db[_0xd2fa('0x5b')]['findOne']({'where':{'id':_0x222cd7[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x5885cf,null))[_0xd2fa('0x3b')](function(_0x1f6afc){if(_0x1f6afc){return db[_0xd2fa('0xa7')][_0xd2fa('0xa8')](function(_0x251983){return db[_0xd2fa('0x89')][_0xd2fa('0x3c')]({'where':{'OpenchannelAccountId':_0x222cd7[_0xd2fa('0x60')]['id']},'transaction':_0x251983})[_0xd2fa('0x3b')](function(_0x2b7b46){var _0x41aeb1=_[_0xd2fa('0x45')](_0x222cd7[_0xd2fa('0x63')],function(_0x5e3ff0){_0x5e3ff0[_0xd2fa('0x69')]=_0x222cd7[_0xd2fa('0x60')]['id'];return _0x5e3ff0;});return db[_0xd2fa('0x89')][_0xd2fa('0xa9')](_0x41aeb1,{'transaction':_0x251983});});})['then'](function(){return db[_0xd2fa('0x89')][_0xd2fa('0xaa')]({'where':{'OpenchannelAccountId':_0x222cd7[_0xd2fa('0x60')]['id']},'order':_0xd2fa('0x8e')});});}})[_0xd2fa('0x3b')](respondWithResult(_0x5885cf,null))['catch'](handleError(_0x5885cf,null));};exports['getApplications']=function(_0x22c442,_0x4fdfe0,_0x26ff23){var _0x1b1444={};var _0x7c789f={};var _0x28fbc9;var _0x3fbed1;return db[_0xd2fa('0x5b')]['findOne']({'where':{'id':_0x22c442[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x4fdfe0,null))[_0xd2fa('0x3b')](function(_0x3678a4){if(_0x3678a4){_0x28fbc9=_0x3678a4;_0x7c789f[_0xd2fa('0x4a')]=_['keys'](db[_0xd2fa('0x89')][_0xd2fa('0x46')]);_0x7c789f[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x22c442[_0xd2fa('0x4b')]);_0x7c789f[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x7c789f[_0xd2fa('0x4a')],_0x7c789f[_0xd2fa('0x4b')]);_0x1b1444[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x7c789f[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x4f')]));_0x1b1444['attributes']=_0x1b1444['attributes']['length']?_0x1b1444['attributes']:_0x7c789f[_0xd2fa('0x4a')];_0x1b1444[_0xd2fa('0x54')]=qs[_0xd2fa('0x55')](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x55')]);_0x1b1444[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x22c442['query'],_0x7c789f[_0xd2fa('0x4d')]));if(_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x1b1444['where']=_[_0xd2fa('0x58')](_0x1b1444['where'],{'$or':_[_0xd2fa('0x45')](_0x1b1444[_0xd2fa('0x50')],function(_0x2d66af){var _0xf567a5={};_0xf567a5[_0x2d66af]={'$like':'%'+_0x22c442[_0xd2fa('0x4b')]['filter']+'%'};return _0xf567a5;})});}_0x1b1444=_[_0xd2fa('0x58')]({},_0x1b1444,_0x22c442[_0xd2fa('0x5a')]);return _0x28fbc9[_0xd2fa('0xab')](_0x1b1444);}})['then'](function(_0x29634f){if(_0x29634f){_0x3fbed1=_0x29634f[_0xd2fa('0x51')];if(!_0x22c442['query'][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x1b1444['limit']=qs[_0xd2fa('0x33')](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x33')]);_0x1b1444[_0xd2fa('0x31')]=qs['offset'](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}return _0x28fbc9[_0xd2fa('0xab')](_0x1b1444);}})[_0xd2fa('0x3b')](function(_0x5d9bd9){if(_0x5d9bd9){return _0x5d9bd9?{'count':_0x3fbed1,'rows':_0x5d9bd9}:null;}})[_0xd2fa('0x3b')](respondWithResult(_0x4fdfe0,null))['catch'](handleError(_0x4fdfe0,null));};exports[_0xd2fa('0xac')]=function(_0x48eee8,_0x25dd78,_0x450ff4){var _0x30c0d9={'raw':![],'where':{}};var _0x55346f={};var _0x9bea02={'count':0x0,'rows':[]};return db[_0xd2fa('0x5b')][_0xd2fa('0x6b')]({'where':{'id':_0x48eee8[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x25dd78,null))[_0xd2fa('0x3b')](function(_0x50a9cc){if(_0x50a9cc){_0x55346f[_0xd2fa('0x4a')]=_[_0xd2fa('0x4c')](db[_0xd2fa('0xad')][_0xd2fa('0x46')]);_0x55346f[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x48eee8['query']);_0x55346f[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x55346f['model'],_0x55346f[_0xd2fa('0x4b')]);_0x30c0d9[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x55346f[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x48eee8[_0xd2fa('0x4b')]['fields']));_0x30c0d9[_0xd2fa('0x50')]=_0x30c0d9[_0xd2fa('0x50')]['length']?_0x30c0d9[_0xd2fa('0x50')]:_0x55346f['model'];if(!_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x30c0d9[_0xd2fa('0x33')]=qs['limit'](_0x48eee8['query']['limit']);_0x30c0d9['offset']=qs[_0xd2fa('0x31')](_0x48eee8[_0xd2fa('0x4b')]['offset']);}_0x30c0d9['order']=qs[_0xd2fa('0x55')](_0x48eee8['query'][_0xd2fa('0x55')]);_0x30c0d9[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x48eee8[_0xd2fa('0x4b')],_0x55346f[_0xd2fa('0x4d')]));_0x30c0d9[_0xd2fa('0x56')][_0xd2fa('0x69')]=_0x50a9cc['id'];if(_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x30c0d9['where']=_[_0xd2fa('0x58')](_0x30c0d9[_0xd2fa('0x56')],{'$or':_[_0xd2fa('0x45')](_0x30c0d9['attributes'],function(_0x19c501){var _0x5b1f97={};_0x5b1f97[_0x19c501]={'$like':'%'+_0x48eee8[_0xd2fa('0x4b')]['filter']+'%'};return _0x5b1f97;})});}_0x30c0d9=_['merge']({},_0x30c0d9,_0x48eee8[_0xd2fa('0x5a')]);return db[_0xd2fa('0xad')]['count']({'where':_0x30c0d9['where']})[_0xd2fa('0x3b')](function(_0x7924c7){_0x9bea02[_0xd2fa('0x34')]=_0x7924c7;if(_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0x73')]){_0x30c0d9[_0xd2fa('0x5c')]=[{'model':db[_0xd2fa('0x77')],'as':_0xd2fa('0xae'),'required':![]},{'model':db['User'],'as':_0xd2fa('0xaf'),'attributes':['name','fullname',_0xd2fa('0xb0')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id','name','color'],'where':_0x48eee8['query'][_0xd2fa('0xb1')]?{'id':_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0xb1')]}:undefined,'required':_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0xb1')]?!![]:![]}];}return db['OpenchannelInteraction']['findAll'](_0x30c0d9);})[_0xd2fa('0x3b')](function(_0x2da685){_0x9bea02[_0xd2fa('0x5e')]=_0x2da685;return _0x9bea02;});}})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x25dd78,_0x30c0d9))['catch'](handleError(_0x25dd78,null));};exports[_0xd2fa('0xb2')]=function(_0x544cb4,_0x504ad1,_0x471841){return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x544cb4[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x504ad1,null))[_0xd2fa('0x3b')](function(_0xb54eb3){if(_0xb54eb3){return _0xb54eb3['addAgents'](_0x544cb4['body'][_0xd2fa('0x6f')],_[_0xd2fa('0xb3')](_0x544cb4['body'],['ids','id'])||{})[_0xd2fa('0xb4')](function(_0x1d922e){for(var _0x3119cb=0x0;_0x3119cb<_0x544cb4[_0xd2fa('0x63')][_0xd2fa('0x6f')][_0xd2fa('0x51')];_0x3119cb+=0x1){socket[_0xd2fa('0xb5')](_0xd2fa('0xb6'),{'UserId':Number(_0x544cb4[_0xd2fa('0x63')]['ids'][_0x3119cb]),'OpenchannelAccountId':Number(_0x544cb4[_0xd2fa('0x60')]['id'])});}return _0x1d922e;});}})[_0xd2fa('0x3b')](respondWithResult(_0x504ad1,null))[_0xd2fa('0x2c')](handleError(_0x504ad1,null));};exports[_0xd2fa('0xb7')]=function(_0x3810f4,_0x3fd50c,_0x54b279){return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x3810f4['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x3fd50c,null))[_0xd2fa('0x3b')](function(_0x3d58b4){if(_0x3d58b4){return _0x3d58b4[_0xd2fa('0xb7')](_0x3810f4[_0xd2fa('0x4b')][_0xd2fa('0x6f')])[_0xd2fa('0x3b')](function(){if(_['isArray'](_0x3810f4['query']['ids'])){for(var _0x5a10f2=0x0;_0x5a10f2<_0x3810f4[_0xd2fa('0x4b')]['ids']['length'];_0x5a10f2+=0x1){socket[_0xd2fa('0xb5')](_0xd2fa('0xb8'),{'UserId':Number(_0x3810f4[_0xd2fa('0x4b')][_0xd2fa('0x6f')][_0x5a10f2]),'OpenchannelAccountId':Number(_0x3810f4[_0xd2fa('0x60')]['id'])});}}else{socket[_0xd2fa('0xb5')]('userOpenchannelAccount:remove',{'UserId':Number(_0x3810f4[_0xd2fa('0x4b')][_0xd2fa('0x6f')]),'OpenchannelAccountId':Number(_0x3810f4[_0xd2fa('0x60')]['id'])});}});}})[_0xd2fa('0x3b')](respondWithStatusCode(_0x3fd50c,null))[_0xd2fa('0x2c')](handleError(_0x3fd50c,null));};exports[_0xd2fa('0xb9')]=function(_0x425e6e,_0x452bda,_0x1dbbfc){var _0x36000a={};var _0x3e487c={};var _0x2ff7c1;var _0x5cf45b;return db[_0xd2fa('0x5b')]['findOne']({'where':{'id':_0x425e6e[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x452bda,null))['then'](function(_0x4d0585){if(_0x4d0585){_0x2ff7c1=_0x4d0585;_0x3e487c['model']=_[_0xd2fa('0x4c')](db[_0xd2fa('0xba')][_0xd2fa('0x46')]);_0x3e487c[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x425e6e[_0xd2fa('0x4b')]);_0x3e487c[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x3e487c[_0xd2fa('0x4a')],_0x3e487c[_0xd2fa('0x4b')]);_0x36000a[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x3e487c[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x425e6e[_0xd2fa('0x4b')]['fields']));_0x36000a[_0xd2fa('0x50')]=_0x36000a[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x36000a[_0xd2fa('0x50')]:_0x3e487c['model'];_0x36000a[_0xd2fa('0x54')]=qs[_0xd2fa('0x55')](_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x55')]);_0x36000a[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x425e6e[_0xd2fa('0x4b')],_0x3e487c[_0xd2fa('0x4d')]));if(_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x36000a['where']=_[_0xd2fa('0x58')](_0x36000a[_0xd2fa('0x56')],{'$or':_[_0xd2fa('0x45')](_0x36000a[_0xd2fa('0x50')],function(_0x44415c){var _0x1c21fb={};_0x1c21fb[_0x44415c]={'$like':'%'+_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x57')]+'%'};return _0x1c21fb;})});}_0x36000a=_['merge']({},_0x36000a,_0x425e6e['options']);return _0x2ff7c1[_0xd2fa('0xb9')](_0x36000a);}})[_0xd2fa('0x3b')](function(_0x2325fd){if(_0x2325fd){_0x5cf45b=_0x2325fd[_0xd2fa('0x51')];if(!_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x36000a[_0xd2fa('0x33')]=qs[_0xd2fa('0x33')](_0x425e6e['query'][_0xd2fa('0x33')]);_0x36000a[_0xd2fa('0x31')]=qs['offset'](_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}return _0x2ff7c1[_0xd2fa('0xb9')](_0x36000a);}})[_0xd2fa('0x3b')](function(_0x479bbb){if(_0x479bbb){return _0x479bbb?{'count':_0x5cf45b,'rows':_0x479bbb}:null;}})[_0xd2fa('0x3b')](respondWithResult(_0x452bda,null))[_0xd2fa('0x2c')](handleError(_0x452bda,null));};exports[_0xd2fa('0x41')]=function(_0x421a34,_0x359310,_0x11fc02){var _0x2bb84c,_0x286fd7,_0x5c491d;if(_[_0xd2fa('0x7e')](_0x421a34['body'][_0xd2fa('0x63')])||_0x421a34[_0xd2fa('0x63')][_0xd2fa('0x63')]===''){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x80'));}if(_[_0xd2fa('0x7e')](_0x421a34['body']['to'])){}_0x2bb84c=_0x421a34['body']['to'];return db[_0xd2fa('0x5b')][_0xd2fa('0x6b')]({'where':{'id':_0x421a34['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x359310,null))[_0xd2fa('0x3b')](function(_0x3dc8c1){if(_0x3dc8c1){return db[_0xd2fa('0x5b')][_0xd2fa('0x61')]({'where':{'id':_0x3dc8c1['id']},'include':[{'model':db[_0xd2fa('0x85')],'as':_0xd2fa('0x86'),'include':[{'model':db[_0xd2fa('0x77')],'as':_0xd2fa('0x87'),'where':{[_0x3dc8c1[_0xd2fa('0x81')]]:_0x2bb84c},'limit':0x1,'order':[[_0xd2fa('0x7c'),_0xd2fa('0x88')]]}]}]})[_0xd2fa('0x3b')](handleEntityNotFound(_0x359310,null))[_0xd2fa('0x3b')](function(_0x1d51a7){if(_0x1d51a7&&_0x1d51a7[_0xd2fa('0x86')]){_0x286fd7=_0x1d51a7[_0xd2fa('0x3d')]({'plain':!![]});if(_0x286fd7[_0xd2fa('0x86')]&&_0x286fd7[_0xd2fa('0x86')][_0xd2fa('0x87')]['length']){return _0x286fd7[_0xd2fa('0x86')][_0xd2fa('0x87')][0x0];}return db[_0xd2fa('0x77')][_0xd2fa('0x62')](_[_0xd2fa('0x1c')](_0x421a34[_0xd2fa('0x63')],{'firstName':_0x2bb84c,[_0x1d51a7[_0xd2fa('0x81')]]:_0x2bb84c,'phone':_0x2bb84c,'ListId':_0x286fd7[_0xd2fa('0xbb')]}));}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x359310,null))[_0xd2fa('0x3b')](function(_0x4e3581){if(_0x4e3581){_0x5c491d=_0x4e3581;return db[_0xd2fa('0xad')][_0xd2fa('0x61')]({'where':{'ContactId':_0x5c491d['id'],'closed':![],'OpenchannelAccountId':_0x286fd7['id']}})[_0xd2fa('0x3b')](function(_0x2fa447){if(_0x2fa447){return[_0x2fa447,![]];}return db[_0xd2fa('0xad')][_0xd2fa('0x62')]({'UserId':_0x421a34[_0xd2fa('0x65')]['id'],'ContactId':_0x5c491d['id'],'OpenchannelAccountId':_0x286fd7['id'],'lastMsgDirection':_0xd2fa('0xbc'),'Messages':[_['merge'](_0x421a34[_0xd2fa('0x63')],{'read':![],'body':_0x421a34['body'][_0xd2fa('0x63')],'OpenchannelAccountId':_0x286fd7['id'],'UserId':_0x421a34['user']['id'],'ContactId':_0x5c491d['id']})]},{'include':[{'model':db['OpenchannelMessage'],'as':_0xd2fa('0xbd')}]})[_0xd2fa('0x3b')](function(_0x14964e){return[_0x14964e,!![]];});});}})[_0xd2fa('0xb4')](function(_0x337e86,_0x32fb3f){if(_0x32fb3f){return _0x337e86;}return db[_0xd2fa('0x9e')][_0xd2fa('0x62')](_[_0xd2fa('0x58')](_0x421a34['body'],{'read':![],'body':_0x421a34[_0xd2fa('0x63')][_0xd2fa('0x63')],'OpenchannelAccountId':_0x286fd7['id'],'OpenchannelInteractionId':_0x337e86['id'],'UserId':_0x421a34[_0xd2fa('0x65')]['id'],'ContactId':_0x5c491d['id']}))[_0xd2fa('0x3b')](function(_0x2f67f8){_0x337e86['dataValues'][_0xd2fa('0xbd')]=[];_0x337e86[_0xd2fa('0xbe')][_0xd2fa('0xbd')][_0xd2fa('0x9a')](_0x2f67f8[_0xd2fa('0xbe')]);return _0x337e86;});});}})[_0xd2fa('0x3b')](respondWithResult(_0x359310,null))['catch'](handleError(_0x359310,null));};
\ No newline at end of file
+var _0x00cb=['AttachmentId','UserId','User','unshift','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','EventManager','addApplications','sequelize','OpenchannelApplication','bulkCreate','findAndCountAll','getApplications','Contact','internal','Tag','Tags','color','tag','addAgents','omit','emit','userOpenchannelAccount:save','removeAgents','isArray','userOpenchannelAccount:remove','getAgents','body\x20is\x20mandatory\x20and\x20not\x20empty','user','Messages','dataValues','push','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','error','code','OpenchannelAccount,\x20%s,\x20%s','message','result','catch','status','end','json','offset','undefined','limit','count','set','apply','save','update','destroy','OpenchannelAccounts','UserProfileResource','sendStatus','name','send','index','Pause','mandatoryDispositionPause','map','OpenchannelAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','options','include','findAll','rows','show','params','keys','length','includeAll','merge','create','get','role','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','Disposition','getDispositions','findOne','OpenchannelAccountId','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','notify','openchannel','CmContact','ValidationError','difference','createdAt','updatedAt','CompanyId','ListId','isNil','Sequelize','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','Applications','account','list','applications','orderBy','priority','asc','from','contact','firstName','lastName','threadId','OpenchannelInteraction','externalUrl','ContactId','spread','messageId','interaction','created','autoclose','close','unmanaged','OpenchannelMessage'];(function(_0x2b9cf5,_0x2a7804){var _0xd0cf15=function(_0x92a896){while(--_0x92a896){_0x2b9cf5['push'](_0x2b9cf5['shift']());}};_0xd0cf15(++_0x2a7804);}(_0x00cb,0x198));var _0xb00c=function(_0x51cbe9,_0x5c9343){_0x51cbe9=_0x51cbe9-0x0;var _0x81fcd0=_0x00cb[_0x51cbe9];return _0x81fcd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb00c('0x0'));var zipdir=require(_0xb00c('0x1'));var jsonpatch=require(_0xb00c('0x2'));var rp=require(_0xb00c('0x3'));var moment=require(_0xb00c('0x4'));var BPromise=require(_0xb00c('0x5'));var Mustache=require(_0xb00c('0x6'));var util=require(_0xb00c('0x7'));var path=require('path');var sox=require(_0xb00c('0x8'));var csv=require(_0xb00c('0x9'));var ejs=require(_0xb00c('0xa'));var fs=require('fs');var fs_extra=require(_0xb00c('0xb'));var _=require(_0xb00c('0xc'));var squel=require(_0xb00c('0xd'));var crypto=require('crypto');var jsforce=require(_0xb00c('0xe'));var deskjs=require(_0xb00c('0xf'));var toCsv=require(_0xb00c('0x9'));var querystring=require(_0xb00c('0x10'));var Papa=require('papaparse');var Redis=require(_0xb00c('0x11'));var authService=require(_0xb00c('0x12'));var qs=require(_0xb00c('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xb00c('0x14'))(_0xb00c('0x15'));var utils=require('../../config/utils');var config=require(_0xb00c('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xb00c('0x17')]=_[_0xb00c('0x18')](config['redis'],{'host':_0xb00c('0x19'),'port':0x18eb});var socket=require(_0xb00c('0x1a'))(new Redis(config[_0xb00c('0x17')]));require('./openchannelAccount.socket')[_0xb00c('0x1b')](socket);var jayson=require(_0xb00c('0x1c'));var client=jayson[_0xb00c('0x1d')][_0xb00c('0x1e')]({'port':0x232c});var client9002=jayson[_0xb00c('0x1d')][_0xb00c('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x9cabc2,_0x4bdf4d,_0x4b1271,_0x16063d){return new BPromise(function(_0x5e7b18,_0x214608){var _0x1063fa=_0x16063d||client;return _0x1063fa[_0xb00c('0x1f')](_0x9cabc2,_0x4b1271)[_0xb00c('0x20')](function(_0x1d8f6c){logger[_0xb00c('0x21')]('OpenchannelAccount,\x20%s,\x20%s',_0x4bdf4d,_0xb00c('0x22'));logger[_0xb00c('0x23')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x4bdf4d,_0xb00c('0x22'),JSON['stringify'](_0x1d8f6c));if(_0x1d8f6c[_0xb00c('0x24')]){if(_0x1d8f6c[_0xb00c('0x24')][_0xb00c('0x25')]===0x1f4){logger[_0xb00c('0x24')](_0xb00c('0x26'),_0x4bdf4d,_0x1d8f6c[_0xb00c('0x24')]['message']);return _0x214608(_0x1d8f6c[_0xb00c('0x24')][_0xb00c('0x27')]);}logger[_0xb00c('0x24')](_0xb00c('0x26'),_0x4bdf4d,_0x1d8f6c[_0xb00c('0x24')][_0xb00c('0x27')]);return _0x5e7b18(_0x1d8f6c[_0xb00c('0x24')][_0xb00c('0x27')]);}else{logger[_0xb00c('0x21')](_0xb00c('0x26'),_0x4bdf4d,'request\x20sent');_0x5e7b18(_0x1d8f6c[_0xb00c('0x28')][_0xb00c('0x27')]);}})[_0xb00c('0x29')](function(_0x500b25){logger[_0xb00c('0x24')]('OpenchannelAccount,\x20%s,\x20%s',_0x4bdf4d,_0x500b25);_0x214608(_0x500b25);});});}function respondWithStatusCode(_0x4189a6,_0x485fb0){_0x485fb0=_0x485fb0||0xcc;return function(_0x4e78e4){if(_0x4e78e4){return _0x4189a6['sendStatus'](_0x485fb0);}return _0x4189a6[_0xb00c('0x2a')](_0x485fb0)[_0xb00c('0x2b')]();};}function respondWithResult(_0x498d8f,_0x2a25b3){_0x2a25b3=_0x2a25b3||0xc8;return function(_0x5e47a9){if(_0x5e47a9){return _0x498d8f['status'](_0x2a25b3)[_0xb00c('0x2c')](_0x5e47a9);}};}function respondWithFilteredResult(_0x599c3e,_0x219337){return function(_0x294692){if(_0x294692){var _0x48b595=typeof _0x219337[_0xb00c('0x2d')]===_0xb00c('0x2e')&&typeof _0x219337[_0xb00c('0x2f')]==='undefined';var _0x51850b=_0x294692[_0xb00c('0x30')];var _0x960a2a=_0x48b595?0x0:_0x219337[_0xb00c('0x2d')];var _0x279a60=_0x48b595?_0x294692['count']:_0x219337[_0xb00c('0x2d')]+_0x219337[_0xb00c('0x2f')];var _0x19b4da;if(_0x279a60>=_0x51850b){_0x279a60=_0x51850b;_0x19b4da=0xc8;}else{_0x19b4da=0xce;}_0x599c3e[_0xb00c('0x2a')](_0x19b4da);return _0x599c3e[_0xb00c('0x31')]('Content-Range',_0x960a2a+'-'+_0x279a60+'/'+_0x51850b)[_0xb00c('0x2c')](_0x294692);}return null;};}function patchUpdates(_0x363274){return function(_0x57c104){try{jsonpatch[_0xb00c('0x32')](_0x57c104,_0x363274,!![]);}catch(_0x3f0e2c){return BPromise['reject'](_0x3f0e2c);}return _0x57c104[_0xb00c('0x33')]();};}function saveUpdates(_0x429f4a,_0x2ebb17){return function(_0x30c0d8){if(_0x30c0d8){return _0x30c0d8[_0xb00c('0x34')](_0x429f4a)[_0xb00c('0x20')](function(_0x2a59ac){return _0x2a59ac;});}return null;};}function removeEntity(_0x26c7c7,_0x1d8fd0){return function(_0x2fdf98){if(_0x2fdf98){return _0x2fdf98[_0xb00c('0x35')]()[_0xb00c('0x20')](function(){var _0x3db58c=_0x2fdf98['get']({'plain':!![]});var _0x875fe=_0xb00c('0x36');return db[_0xb00c('0x37')]['destroy']({'where':{'type':_0x875fe,'resourceId':_0x3db58c['id']}})[_0xb00c('0x20')](function(){return _0x2fdf98;});})[_0xb00c('0x20')](function(){_0x26c7c7[_0xb00c('0x2a')](0xcc)[_0xb00c('0x2b')]();});}};}function handleEntityNotFound(_0x5b5949,_0x3dde8b){return function(_0x2302c5){if(!_0x2302c5){_0x5b5949[_0xb00c('0x38')](0x194);}return _0x2302c5;};}function handleError(_0x25f417,_0x20785a){_0x20785a=_0x20785a||0x1f4;return function(_0x57ef43){logger[_0xb00c('0x24')](_0x57ef43['stack']);if(_0x57ef43[_0xb00c('0x39')]){delete _0x57ef43['name'];}_0x25f417['status'](_0x20785a)[_0xb00c('0x3a')](_0x57ef43);};}exports[_0xb00c('0x3b')]=function(_0x2c79fc,_0x49dd27){var _0x5d4f55={'include':[{'model':db[_0xb00c('0x3c')],'as':_0xb00c('0x3d')}]},_0xbd5de1={},_0xbf03a1={'count':0x0,'rows':[]};var _0x7c69b7=_[_0xb00c('0x3e')](db[_0xb00c('0x3f')][_0xb00c('0x40')],function(_0x198e40){return{'name':_0x198e40[_0xb00c('0x41')],'type':_0x198e40[_0xb00c('0x42')][_0xb00c('0x43')]};});_0xbd5de1[_0xb00c('0x44')]=_[_0xb00c('0x3e')](_0x7c69b7,_0xb00c('0x39'));_0xbd5de1[_0xb00c('0x45')]=_['keys'](_0x2c79fc['query']);_0xbd5de1[_0xb00c('0x46')]=_[_0xb00c('0x47')](_0xbd5de1[_0xb00c('0x44')],_0xbd5de1[_0xb00c('0x45')]);_0x5d4f55['attributes']=_['intersection'](_0xbd5de1['model'],qs[_0xb00c('0x48')](_0x2c79fc['query'][_0xb00c('0x48')]));_0x5d4f55[_0xb00c('0x49')]=_0x5d4f55[_0xb00c('0x49')]['length']?_0x5d4f55[_0xb00c('0x49')]:_0xbd5de1[_0xb00c('0x44')];if(!_0x2c79fc[_0xb00c('0x45')][_0xb00c('0x4a')](_0xb00c('0x4b'))){_0x5d4f55[_0xb00c('0x2f')]=qs[_0xb00c('0x2f')](_0x2c79fc[_0xb00c('0x45')][_0xb00c('0x2f')]);_0x5d4f55[_0xb00c('0x2d')]=qs[_0xb00c('0x2d')](_0x2c79fc[_0xb00c('0x45')]['offset']);}_0x5d4f55[_0xb00c('0x4c')]=qs[_0xb00c('0x4d')](_0x2c79fc[_0xb00c('0x45')][_0xb00c('0x4d')]);_0x5d4f55['where']=qs['filters'](_[_0xb00c('0x4e')](_0x2c79fc['query'],_0xbd5de1[_0xb00c('0x46')]),_0x7c69b7);if(_0x2c79fc[_0xb00c('0x45')][_0xb00c('0x4f')]){_0x5d4f55[_0xb00c('0x50')]=_['merge'](_0x5d4f55['where'],{'$or':_[_0xb00c('0x3e')](_0x7c69b7,function(_0x114b56){if(_0x114b56[_0xb00c('0x42')]!==_0xb00c('0x51')){var _0x4040ca={};_0x4040ca[_0x114b56[_0xb00c('0x39')]]={'$like':'%'+_0x2c79fc['query']['filter']+'%'};return _0x4040ca;}})});}_0x5d4f55=_['merge']({},_0x5d4f55,_0x2c79fc[_0xb00c('0x52')]);var _0x1f7e19={'where':_0x5d4f55[_0xb00c('0x50')]};return db['OpenchannelAccount'][_0xb00c('0x30')](_0x1f7e19)[_0xb00c('0x20')](function(_0x50bf21){_0xbf03a1[_0xb00c('0x30')]=_0x50bf21;if(_0x2c79fc[_0xb00c('0x45')]['includeAll']){_0x5d4f55[_0xb00c('0x53')]=[{'all':!![]}];}return db[_0xb00c('0x3f')][_0xb00c('0x54')](_0x5d4f55);})[_0xb00c('0x20')](function(_0x1b4946){_0xbf03a1[_0xb00c('0x55')]=_0x1b4946;return _0xbf03a1;})[_0xb00c('0x20')](respondWithFilteredResult(_0x49dd27,_0x5d4f55))[_0xb00c('0x29')](handleError(_0x49dd27,null));};exports[_0xb00c('0x56')]=function(_0x222d12,_0x2f9adc){var _0x3ca1a0={'raw':![],'where':{'id':_0x222d12[_0xb00c('0x57')]['id']},'include':[{'model':db[_0xb00c('0x3c')],'as':_0xb00c('0x3d')}]},_0x531a9b={};_0x531a9b[_0xb00c('0x44')]=_[_0xb00c('0x58')](db[_0xb00c('0x3f')][_0xb00c('0x40')]);_0x531a9b[_0xb00c('0x45')]=_['keys'](_0x222d12[_0xb00c('0x45')]);_0x531a9b[_0xb00c('0x46')]=_[_0xb00c('0x47')](_0x531a9b['model'],_0x531a9b[_0xb00c('0x45')]);_0x3ca1a0[_0xb00c('0x49')]=_['intersection'](_0x531a9b[_0xb00c('0x44')],qs['fields'](_0x222d12[_0xb00c('0x45')][_0xb00c('0x48')]));_0x3ca1a0[_0xb00c('0x49')]=_0x3ca1a0['attributes'][_0xb00c('0x59')]?_0x3ca1a0[_0xb00c('0x49')]:_0x531a9b['model'];if(_0x222d12['query'][_0xb00c('0x5a')]){_0x3ca1a0[_0xb00c('0x53')]=[{'all':!![]}];}_0x3ca1a0=_[_0xb00c('0x5b')]({},_0x3ca1a0,_0x222d12['options']);return db[_0xb00c('0x3f')]['find'](_0x3ca1a0)[_0xb00c('0x20')](handleEntityNotFound(_0x2f9adc,null))['then'](respondWithResult(_0x2f9adc,null))[_0xb00c('0x29')](handleError(_0x2f9adc,null));};exports[_0xb00c('0x5c')]=function(_0x3defe0,_0x3443fd){return db[_0xb00c('0x3f')][_0xb00c('0x5c')](_0x3defe0['body'],{})[_0xb00c('0x20')](function(_0x28faed){var _0x5e3058=_0x3defe0['user'][_0xb00c('0x5d')]({'plain':!![]});if(!_0x5e3058)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5e3058[_0xb00c('0x5e')]==='user'){var _0x3aa527=_0x28faed[_0xb00c('0x5d')]({'plain':!![]});var _0x4f3c8b=_0xb00c('0x36');return db['UserProfileSection'][_0xb00c('0x5f')]({'where':{'name':_0x4f3c8b,'userProfileId':_0x5e3058[_0xb00c('0x60')]},'raw':!![]})[_0xb00c('0x20')](function(_0x49f0be){if(_0x49f0be&&_0x49f0be[_0xb00c('0x61')]===0x0){return db['UserProfileResource'][_0xb00c('0x5c')]({'name':_0x3aa527[_0xb00c('0x39')],'resourceId':_0x3aa527['id'],'type':_0x49f0be[_0xb00c('0x39')],'sectionId':_0x49f0be['id']},{})['then'](function(){return _0x28faed;});}else{return _0x28faed;}})['catch'](function(_0x9b5c5e){logger['error'](_0xb00c('0x62'),_0x9b5c5e);throw _0x9b5c5e;});}return _0x28faed;})[_0xb00c('0x20')](respondWithResult(_0x3443fd,0xc9))[_0xb00c('0x29')](handleError(_0x3443fd,null));};exports['update']=function(_0x614f5a,_0x2534e1){if(_0x614f5a[_0xb00c('0x63')]['id']){delete _0x614f5a[_0xb00c('0x63')]['id'];}return db[_0xb00c('0x3f')][_0xb00c('0x5f')]({'where':{'id':_0x614f5a[_0xb00c('0x57')]['id']},'include':[{'model':db[_0xb00c('0x3c')],'as':_0xb00c('0x3d')}]})[_0xb00c('0x20')](handleEntityNotFound(_0x2534e1,null))[_0xb00c('0x20')](saveUpdates(_0x614f5a[_0xb00c('0x63')],null))[_0xb00c('0x20')](respondWithResult(_0x2534e1,null))['catch'](handleError(_0x2534e1,null));};exports[_0xb00c('0x35')]=function(_0x41bb81,_0x1d5469){return db['OpenchannelAccount'][_0xb00c('0x5f')]({'where':{'id':_0x41bb81['params']['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x1d5469,null))[_0xb00c('0x20')](removeEntity(_0x1d5469,null))[_0xb00c('0x29')](handleError(_0x1d5469,null));};exports[_0xb00c('0x64')]=function(_0x3fb7e3,_0x29d736){return db[_0xb00c('0x3f')][_0xb00c('0x64')]()['then'](respondWithResult(_0x29d736,null))[_0xb00c('0x29')](handleError(_0x29d736,null));};exports[_0xb00c('0x65')]=function(_0x2c8822,_0x5a0fd9,_0x167a27){if(_0x2c8822[_0xb00c('0x63')]['id']){delete _0x2c8822[_0xb00c('0x63')]['id'];}return db[_0xb00c('0x3f')][_0xb00c('0x5f')]({'where':{'id':_0x2c8822[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x5a0fd9,null))[_0xb00c('0x20')](function(_0x59af97){if(_0x59af97){_0x2c8822['body']['OpenchannelAccountId']=_0x59af97['id'];return db[_0xb00c('0x66')][_0xb00c('0x5c')](_0x2c8822[_0xb00c('0x63')]);}})[_0xb00c('0x20')](respondWithResult(_0x5a0fd9,null))['catch'](handleError(_0x5a0fd9,null));};exports[_0xb00c('0x67')]=function(_0x2ed37f,_0x2930be,_0x2e3c94){var _0x30ffe1={'raw':![],'where':{}};var _0x532c5f={};var _0x43dcb7={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0xb00c('0x68')]({'where':{'id':_0x2ed37f[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x2930be,null))[_0xb00c('0x20')](function(_0x5db5ce){if(_0x5db5ce){_0x532c5f[_0xb00c('0x44')]=_[_0xb00c('0x58')](db[_0xb00c('0x66')]['rawAttributes']);_0x532c5f['query']=_['keys'](_0x2ed37f[_0xb00c('0x45')]);_0x532c5f['filters']=_[_0xb00c('0x47')](_0x532c5f[_0xb00c('0x44')],_0x532c5f['query']);_0x30ffe1[_0xb00c('0x49')]=_[_0xb00c('0x47')](_0x532c5f['model'],qs[_0xb00c('0x48')](_0x2ed37f[_0xb00c('0x45')][_0xb00c('0x48')]));_0x30ffe1['attributes']=_0x30ffe1[_0xb00c('0x49')][_0xb00c('0x59')]?_0x30ffe1[_0xb00c('0x49')]:_0x532c5f['model'];if(!_0x2ed37f[_0xb00c('0x45')][_0xb00c('0x4a')](_0xb00c('0x4b'))){_0x30ffe1[_0xb00c('0x2f')]=qs[_0xb00c('0x2f')](_0x2ed37f[_0xb00c('0x45')][_0xb00c('0x2f')]);_0x30ffe1['offset']=qs['offset'](_0x2ed37f[_0xb00c('0x45')]['offset']);}_0x30ffe1[_0xb00c('0x4c')]=qs[_0xb00c('0x4d')](_0x2ed37f[_0xb00c('0x45')]['sort']);_0x30ffe1[_0xb00c('0x50')]=qs[_0xb00c('0x46')](_[_0xb00c('0x4e')](_0x2ed37f['query'],_0x532c5f['filters']));_0x30ffe1['where'][_0xb00c('0x69')]=_0x5db5ce['id'];if(_0x2ed37f[_0xb00c('0x45')][_0xb00c('0x4f')]){_0x30ffe1[_0xb00c('0x50')]=_[_0xb00c('0x5b')](_0x30ffe1['where'],{'$or':_[_0xb00c('0x3e')](_0x30ffe1['attributes'],function(_0x1f7269){var _0x573303={};_0x573303[_0x1f7269]={'$like':'%'+_0x2ed37f['query'][_0xb00c('0x4f')]+'%'};return _0x573303;})});}_0x30ffe1=_['merge']({},_0x30ffe1,_0x2ed37f[_0xb00c('0x52')]);return db[_0xb00c('0x66')][_0xb00c('0x30')]({'where':_0x30ffe1[_0xb00c('0x50')]})[_0xb00c('0x20')](function(_0x3df22f){_0x43dcb7[_0xb00c('0x30')]=_0x3df22f;if(_0x2ed37f[_0xb00c('0x45')][_0xb00c('0x5a')]){_0x30ffe1['include']=[{'all':!![]}];}return db['Disposition'][_0xb00c('0x54')](_0x30ffe1);})['then'](function(_0xf8d096){_0x43dcb7['rows']=_0xf8d096;return _0x43dcb7;});}})[_0xb00c('0x20')](respondWithFilteredResult(_0x2930be,_0x30ffe1))['catch'](handleError(_0x2930be,null));};exports['removeDispositions']=function(_0x7d990f,_0x465ddc,_0x1e656d){return db[_0xb00c('0x3f')][_0xb00c('0x5f')]({'where':{'id':_0x7d990f['params']['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x465ddc,null))[_0xb00c('0x20')](function(_0x36c936){if(_0x36c936){return _0x36c936['removeDispositions'](_0x7d990f[_0xb00c('0x45')][_0xb00c('0x6a')]);}})[_0xb00c('0x20')](respondWithStatusCode(_0x465ddc,null))[_0xb00c('0x29')](handleError(_0x465ddc,null));};exports[_0xb00c('0x6b')]=function(_0x2807b9,_0x170caf,_0x42fc2c){if(_0x2807b9['body']['id']){delete _0x2807b9['body']['id'];}return db[_0xb00c('0x3f')]['find']({'where':{'id':_0x2807b9['params']['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x170caf,null))[_0xb00c('0x20')](function(_0x4fda9b){if(_0x4fda9b){_0x2807b9['body'][_0xb00c('0x69')]=_0x4fda9b['id'];return db[_0xb00c('0x6c')][_0xb00c('0x5c')](_0x2807b9['body']);}})['then'](respondWithResult(_0x170caf,null))['catch'](handleError(_0x170caf,null));};exports[_0xb00c('0x6d')]=function(_0x1e18e8,_0x4e3512,_0x442619){var _0x45728d={'raw':![],'where':{}};var _0x5b7ca1={};var _0xb8950d={'count':0x0,'rows':[]};return db[_0xb00c('0x3f')][_0xb00c('0x68')]({'where':{'id':_0x1e18e8[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x4e3512,null))[_0xb00c('0x20')](function(_0x15c066){if(_0x15c066){_0x5b7ca1[_0xb00c('0x44')]=_['keys'](db['CannedAnswer']['rawAttributes']);_0x5b7ca1[_0xb00c('0x45')]=_[_0xb00c('0x58')](_0x1e18e8['query']);_0x5b7ca1[_0xb00c('0x46')]=_['intersection'](_0x5b7ca1[_0xb00c('0x44')],_0x5b7ca1['query']);_0x45728d[_0xb00c('0x49')]=_[_0xb00c('0x47')](_0x5b7ca1['model'],qs[_0xb00c('0x48')](_0x1e18e8[_0xb00c('0x45')][_0xb00c('0x48')]));_0x45728d[_0xb00c('0x49')]=_0x45728d[_0xb00c('0x49')][_0xb00c('0x59')]?_0x45728d[_0xb00c('0x49')]:_0x5b7ca1[_0xb00c('0x44')];if(!_0x1e18e8['query']['hasOwnProperty'](_0xb00c('0x4b'))){_0x45728d[_0xb00c('0x2f')]=qs[_0xb00c('0x2f')](_0x1e18e8['query'][_0xb00c('0x2f')]);_0x45728d[_0xb00c('0x2d')]=qs[_0xb00c('0x2d')](_0x1e18e8[_0xb00c('0x45')]['offset']);}_0x45728d[_0xb00c('0x4c')]=qs[_0xb00c('0x4d')](_0x1e18e8[_0xb00c('0x45')][_0xb00c('0x4d')]);_0x45728d[_0xb00c('0x50')]=qs['filters'](_[_0xb00c('0x4e')](_0x1e18e8[_0xb00c('0x45')],_0x5b7ca1[_0xb00c('0x46')]));_0x45728d['where'][_0xb00c('0x69')]=_0x15c066['id'];if(_0x1e18e8[_0xb00c('0x45')]['filter']){_0x45728d[_0xb00c('0x50')]=_[_0xb00c('0x5b')](_0x45728d[_0xb00c('0x50')],{'$or':_['map'](_0x45728d['attributes'],function(_0x2ddaaa){var _0x32a02a={};_0x32a02a[_0x2ddaaa]={'$like':'%'+_0x1e18e8['query'][_0xb00c('0x4f')]+'%'};return _0x32a02a;})});}_0x45728d=_[_0xb00c('0x5b')]({},_0x45728d,_0x1e18e8[_0xb00c('0x52')]);return db['CannedAnswer'][_0xb00c('0x30')]({'where':_0x45728d[_0xb00c('0x50')]})[_0xb00c('0x20')](function(_0x523e92){_0xb8950d[_0xb00c('0x30')]=_0x523e92;if(_0x1e18e8[_0xb00c('0x45')][_0xb00c('0x5a')]){_0x45728d[_0xb00c('0x53')]=[{'all':!![]}];}return db[_0xb00c('0x6c')]['findAll'](_0x45728d);})[_0xb00c('0x20')](function(_0x471c63){_0xb8950d['rows']=_0x471c63;return _0xb8950d;});}})[_0xb00c('0x20')](respondWithFilteredResult(_0x4e3512,_0x45728d))[_0xb00c('0x29')](handleError(_0x4e3512,null));};exports[_0xb00c('0x6e')]=function(_0x31365d,_0x59a5fa,_0x3238e4){return db[_0xb00c('0x3f')][_0xb00c('0x5f')]({'where':{'id':_0x31365d[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x59a5fa,null))[_0xb00c('0x20')](function(_0x2f5750){if(_0x2f5750){return _0x2f5750[_0xb00c('0x6e')](_0x31365d[_0xb00c('0x45')]['ids']);}})['then'](respondWithStatusCode(_0x59a5fa,null))[_0xb00c('0x29')](handleError(_0x59a5fa,null));};exports[_0xb00c('0x6f')]=function(_0x38747f,_0x2666cb,_0x320336){var _0x5d09f9={'body':_0x38747f[_0xb00c('0x63')],'channel':_0xb00c('0x70')};var _0x56c2e3=[];var _0x151333=[];var _0x5dab26={};var _0x1ac7c6=![];return db[_0xb00c('0x71')][_0xb00c('0x64')]()[_0xb00c('0x20')](function(_0x385934){if(!_0x385934){throw new db['Sequelize'][(_0xb00c('0x72'))]('no\x20available\x20attributes');}_0x56c2e3=_[_0xb00c('0x73')](_[_0xb00c('0x58')](_0x385934),[_0xb00c('0x74'),_0xb00c('0x75')]);_0x151333=_[_0xb00c('0x73')](_[_0xb00c('0x58')](_0x385934),[_0xb00c('0x74'),_0xb00c('0x75'),_0xb00c('0x76'),_0xb00c('0x77')]);if(_0x38747f[_0xb00c('0x63')]['id']){delete _0x38747f[_0xb00c('0x63')]['id'];}if(_[_0xb00c('0x78')](_0x38747f[_0xb00c('0x63')]['from'])){throw new db[(_0xb00c('0x79'))][(_0xb00c('0x72'))]('from\x20is\x20mandatory');}if(_[_0xb00c('0x78')](_0x38747f[_0xb00c('0x63')][_0xb00c('0x63')])||_0x38747f[_0xb00c('0x63')][_0xb00c('0x63')]===''){throw new db[(_0xb00c('0x79'))][(_0xb00c('0x72'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xb00c('0x78')](_0x38747f[_0xb00c('0x63')][_0xb00c('0x7a')])){throw new db[(_0xb00c('0x79'))][(_0xb00c('0x72'))](_0xb00c('0x7b')+_0x151333);}if(!_[_0xb00c('0x7c')](_0x151333,_0x38747f['body'][_0xb00c('0x7a')])){throw new db[(_0xb00c('0x79'))][(_0xb00c('0x72'))](_0xb00c('0x7d')+_0x151333);}_0x5dab26[_0x38747f['body'][_0xb00c('0x7a')]]=_0x38747f['body']['from'];})[_0xb00c('0x20')](function(){return db[_0xb00c('0x3f')][_0xb00c('0x5f')]({'where':{'id':_0x38747f[_0xb00c('0x57')]['id']},'include':[{'model':db[_0xb00c('0x7e')],'as':_0xb00c('0x7f'),'include':[{'model':db[_0xb00c('0x71')],'as':_0xb00c('0x80'),'where':_0x5dab26,'limit':0x1,'order':[[_0xb00c('0x75'),_0xb00c('0x81')]]}]},{'model':db['OpenchannelApplication'],'as':_0xb00c('0x82')}]});})[_0xb00c('0x20')](handleEntityNotFound(_0x2666cb,null))['then'](function(_0x31521a){if(_0x31521a&&_0x31521a[_0xb00c('0x7f')]){_0x5d09f9[_0xb00c('0x83')]=_0x31521a;_0x5d09f9['applications']=_0x31521a['Applications'];_0x5d09f9[_0xb00c('0x84')]=_0x31521a[_0xb00c('0x7f')];_0x5d09f9[_0xb00c('0x85')]=_[_0xb00c('0x86')](_0x5d09f9[_0xb00c('0x85')],[_0xb00c('0x87')],[_0xb00c('0x88')]);if(_0x5d09f9[_0xb00c('0x83')][_0xb00c('0x82')]){delete _0x5d09f9['account'][_0xb00c('0x82')];}if(_0x5d09f9[_0xb00c('0x83')][_0xb00c('0x7f')]&&_0x5d09f9['account'][_0xb00c('0x7f')]['Contacts']['length']){return _0x5d09f9[_0xb00c('0x83')][_0xb00c('0x7f')][_0xb00c('0x80')][0x0];}var _0x336f6e=_[_0xb00c('0x18')](_0x38747f[_0xb00c('0x63')],{'firstName':_0x38747f[_0xb00c('0x63')][_0xb00c('0x89')],'ListId':_0x31521a[_0xb00c('0x77')]});_0x336f6e[_0x38747f[_0xb00c('0x63')]['mapKey']]=_0x38747f[_0xb00c('0x63')][_0xb00c('0x89')];return db[_0xb00c('0x71')][_0xb00c('0x5c')](_0x336f6e,{'fields':_0x56c2e3,'raw':!![]});}})[_0xb00c('0x20')](handleEntityNotFound(_0x2666cb,null))[_0xb00c('0x20')](function(_0xb3f90c){_0x5d09f9[_0xb00c('0x8a')]=_0xb3f90c;if(_0xb3f90c){var _0x11780e={'ContactId':_0xb3f90c['id'],'OpenchannelAccountId':_0x38747f[_0xb00c('0x57')]['id'],'from':(_0xb3f90c[_0xb00c('0x8b')]||'')+'\x20'+(_0xb3f90c[_0xb00c('0x8c')]||'')};var _0xfe8141={'OpenchannelAccountId':_0x38747f[_0xb00c('0x57')]['id'],'closed':![]};if(_0x38747f['body']['threadId']){_0xfe8141[_0xb00c('0x8d')]=_0x38747f[_0xb00c('0x63')][_0xb00c('0x8d')];return db[_0xb00c('0x8e')]['find']({'where':_0xfe8141})[_0xb00c('0x20')](function(_0x3c456d){if(_0x3c456d){return[_0x3c456d,![]];}_0x11780e[_0xb00c('0x8d')]=_0x38747f[_0xb00c('0x63')][_0xb00c('0x8d')];_0x11780e['externalUrl']=_0x38747f['body'][_0xb00c('0x8f')];return db[_0xb00c('0x8e')][_0xb00c('0x5c')](_0x11780e)['then'](function(_0x254de8){return[_0x254de8,!![]];});});}else{_0xfe8141[_0xb00c('0x8d')]=null;}_0xfe8141[_0xb00c('0x90')]=_0xb3f90c['id'];return db['OpenchannelInteraction']['find']({'where':_0xfe8141})[_0xb00c('0x20')](function(_0x4cc790){if(_0x4cc790){return[_0x4cc790,![]];}return db[_0xb00c('0x8e')]['create'](_0x11780e)[_0xb00c('0x20')](function(_0x9acd4d){return[_0x9acd4d,!![]];});});}})[_0xb00c('0x91')](function(_0x58622a,_0x3b463c){if(_0x58622a){_0x1ac7c6=_0x3b463c;if(!_0x3b463c){var _0x25f69b={'from':(_0x5d09f9['contact'][_0xb00c('0x8b')]||'')+'\x20'+(_0x5d09f9[_0xb00c('0x8a')]['lastName']||'')};if(_0x38747f['body'][_0xb00c('0x8d')]&&_0x38747f[_0xb00c('0x63')]['messageId']&&_0x38747f[_0xb00c('0x63')]['threadId']!=_0x38747f[_0xb00c('0x63')][_0xb00c('0x92')]){_0x25f69b[_0xb00c('0x8d')]=_0x38747f['body'][_0xb00c('0x92')];}return _0x58622a[_0xb00c('0x34')](_0x25f69b);}else{return _0x58622a;}}})[_0xb00c('0x20')](function(_0x5bb14d){_0x5d09f9[_0xb00c('0x93')]=_0x5bb14d[_0xb00c('0x5d')]({'plain':!![]});_0x5d09f9['interaction'][_0xb00c('0x94')]=_0x1ac7c6;if(_0x5d09f9[_0xb00c('0x93')][_0xb00c('0x94')]){if(_0x5d09f9['account'][_0xb00c('0x95')]){_0x5d09f9[_0xb00c('0x85')]['push']({'id':0x0,'priority':_0x5d09f9[_0xb00c('0x85')][_0xb00c('0x59')]+0x1,'app':_0xb00c('0x96'),'appdata':_0xb00c('0x97'),'interval':'*,*,*,*'});}}return db[_0xb00c('0x98')][_0xb00c('0x5c')]({'body':_0x38747f[_0xb00c('0x63')][_0xb00c('0x63')],'OpenchannelAccountId':_0x38747f['params']['id'],'OpenchannelInteractionId':_0x5bb14d['id'],'direction':'in','ContactId':_0x5d09f9['contact']['id'],'AttachmentId':_0x38747f[_0xb00c('0x63')][_0xb00c('0x99')]});})[_0xb00c('0x20')](function(_0x1e0bfe){_0x5d09f9['message']=_0x1e0bfe;if(_0x5d09f9[_0xb00c('0x93')][_0xb00c('0x9a')]){return db[_0xb00c('0x9b')]['find']({'attributes':['id',_0xb00c('0x39')],'where':{'id':_0x5d09f9['interaction'][_0xb00c('0x9a')]}})[_0xb00c('0x20')](function(_0x4420d0){if(_0x4420d0){_0x5d09f9['applications'][_0xb00c('0x9c')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x4420d0[_0xb00c('0x39')]+','+(_0x5d09f9['account'][_0xb00c('0x9d')]||0xa),'interval':_0xb00c('0x9e')});_0x5d09f9['forcedOwnership']=![];}return respondWithRpcPromise(_0xb00c('0x9f'),_0xb00c('0xa0'),_0x5d09f9);});}return respondWithRpcPromise('Start',_0xb00c('0xa0'),_0x5d09f9);})['then'](function(_0x5c720f){respondWithRpcPromise('EventManager',_0xb00c('0xa1'),{'event':_0xb00c('0x6f'),'message':_0x5c720f},client9002);return _0x5c720f;})[_0xb00c('0x20')](respondWithResult(_0x2666cb,null))[_0xb00c('0x29')](handleError(_0x2666cb,null));};exports[_0xb00c('0xa2')]=function(_0x448f03,_0x1be509,_0x3b0a3c){return db['OpenchannelAccount']['findOne']({'where':{'id':_0x448f03['params']['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x1be509,null))[_0xb00c('0x20')](function(_0x248af4){if(_0x248af4){return db[_0xb00c('0xa3')]['transaction'](function(_0x33d627){return db['OpenchannelApplication'][_0xb00c('0x35')]({'where':{'OpenchannelAccountId':_0x448f03[_0xb00c('0x57')]['id']},'transaction':_0x33d627})['then'](function(_0x59acc9){var _0x1685d7=_[_0xb00c('0x3e')](_0x448f03['body'],function(_0x594079){_0x594079[_0xb00c('0x69')]=_0x448f03[_0xb00c('0x57')]['id'];return _0x594079;});return db[_0xb00c('0xa4')][_0xb00c('0xa5')](_0x1685d7,{'transaction':_0x33d627});});})[_0xb00c('0x20')](function(){return db[_0xb00c('0xa4')][_0xb00c('0xa6')]({'where':{'OpenchannelAccountId':_0x448f03[_0xb00c('0x57')]['id']},'order':_0xb00c('0x87')});});}})[_0xb00c('0x20')](respondWithResult(_0x1be509,null))[_0xb00c('0x29')](handleError(_0x1be509,null));};exports[_0xb00c('0xa7')]=function(_0x38a7cf,_0xb33ba4,_0x5c4bb0){var _0x427854={};var _0x1170c8={};var _0x151e9d;var _0x267d56;return db[_0xb00c('0x3f')][_0xb00c('0x68')]({'where':{'id':_0x38a7cf[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0xb33ba4,null))[_0xb00c('0x20')](function(_0x9e2bf2){if(_0x9e2bf2){_0x151e9d=_0x9e2bf2;_0x1170c8[_0xb00c('0x44')]=_[_0xb00c('0x58')](db[_0xb00c('0xa4')]['rawAttributes']);_0x1170c8[_0xb00c('0x45')]=_[_0xb00c('0x58')](_0x38a7cf[_0xb00c('0x45')]);_0x1170c8[_0xb00c('0x46')]=_[_0xb00c('0x47')](_0x1170c8[_0xb00c('0x44')],_0x1170c8[_0xb00c('0x45')]);_0x427854[_0xb00c('0x49')]=_[_0xb00c('0x47')](_0x1170c8[_0xb00c('0x44')],qs[_0xb00c('0x48')](_0x38a7cf['query'][_0xb00c('0x48')]));_0x427854[_0xb00c('0x49')]=_0x427854[_0xb00c('0x49')][_0xb00c('0x59')]?_0x427854[_0xb00c('0x49')]:_0x1170c8['model'];_0x427854[_0xb00c('0x4c')]=qs['sort'](_0x38a7cf[_0xb00c('0x45')][_0xb00c('0x4d')]);_0x427854[_0xb00c('0x50')]=qs['filters'](_['pick'](_0x38a7cf[_0xb00c('0x45')],_0x1170c8[_0xb00c('0x46')]));if(_0x38a7cf[_0xb00c('0x45')]['filter']){_0x427854[_0xb00c('0x50')]=_['merge'](_0x427854[_0xb00c('0x50')],{'$or':_[_0xb00c('0x3e')](_0x427854[_0xb00c('0x49')],function(_0x4f4270){var _0x3f909e={};_0x3f909e[_0x4f4270]={'$like':'%'+_0x38a7cf[_0xb00c('0x45')]['filter']+'%'};return _0x3f909e;})});}_0x427854=_[_0xb00c('0x5b')]({},_0x427854,_0x38a7cf[_0xb00c('0x52')]);return _0x151e9d['getApplications'](_0x427854);}})[_0xb00c('0x20')](function(_0x4fa459){if(_0x4fa459){_0x267d56=_0x4fa459[_0xb00c('0x59')];if(!_0x38a7cf['query'][_0xb00c('0x4a')](_0xb00c('0x4b'))){_0x427854[_0xb00c('0x2f')]=qs[_0xb00c('0x2f')](_0x38a7cf[_0xb00c('0x45')][_0xb00c('0x2f')]);_0x427854[_0xb00c('0x2d')]=qs['offset'](_0x38a7cf[_0xb00c('0x45')][_0xb00c('0x2d')]);}return _0x151e9d['getApplications'](_0x427854);}})['then'](function(_0x5ed0db){if(_0x5ed0db){return _0x5ed0db?{'count':_0x267d56,'rows':_0x5ed0db}:null;}})[_0xb00c('0x20')](respondWithResult(_0xb33ba4,null))[_0xb00c('0x29')](handleError(_0xb33ba4,null));};exports['getInteractions']=function(_0x119f1c,_0x252e03,_0x35008b){var _0x1288d9={'raw':![],'where':{}};var _0x55ce9c={};var _0xa73687={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0xb00c('0x68')]({'where':{'id':_0x119f1c[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x252e03,null))[_0xb00c('0x20')](function(_0x165cd4){if(_0x165cd4){_0x55ce9c['model']=_[_0xb00c('0x58')](db[_0xb00c('0x8e')][_0xb00c('0x40')]);_0x55ce9c[_0xb00c('0x45')]=_[_0xb00c('0x58')](_0x119f1c['query']);_0x55ce9c['filters']=_[_0xb00c('0x47')](_0x55ce9c[_0xb00c('0x44')],_0x55ce9c[_0xb00c('0x45')]);_0x1288d9[_0xb00c('0x49')]=_['intersection'](_0x55ce9c[_0xb00c('0x44')],qs[_0xb00c('0x48')](_0x119f1c[_0xb00c('0x45')]['fields']));_0x1288d9['attributes']=_0x1288d9[_0xb00c('0x49')]['length']?_0x1288d9[_0xb00c('0x49')]:_0x55ce9c[_0xb00c('0x44')];if(!_0x119f1c[_0xb00c('0x45')][_0xb00c('0x4a')](_0xb00c('0x4b'))){_0x1288d9[_0xb00c('0x2f')]=qs[_0xb00c('0x2f')](_0x119f1c['query'][_0xb00c('0x2f')]);_0x1288d9[_0xb00c('0x2d')]=qs['offset'](_0x119f1c[_0xb00c('0x45')]['offset']);}_0x1288d9['order']=qs[_0xb00c('0x4d')](_0x119f1c['query'][_0xb00c('0x4d')]);_0x1288d9['where']=qs[_0xb00c('0x46')](_[_0xb00c('0x4e')](_0x119f1c[_0xb00c('0x45')],_0x55ce9c['filters']));_0x1288d9[_0xb00c('0x50')][_0xb00c('0x69')]=_0x165cd4['id'];if(_0x119f1c[_0xb00c('0x45')][_0xb00c('0x4f')]){_0x1288d9['where']=_[_0xb00c('0x5b')](_0x1288d9[_0xb00c('0x50')],{'$or':_[_0xb00c('0x3e')](_0x1288d9[_0xb00c('0x49')],function(_0x5131be){var _0x3c0a42={};_0x3c0a42[_0x5131be]={'$like':'%'+_0x119f1c[_0xb00c('0x45')]['filter']+'%'};return _0x3c0a42;})});}_0x1288d9=_[_0xb00c('0x5b')]({},_0x1288d9,_0x119f1c[_0xb00c('0x52')]);return db[_0xb00c('0x8e')][_0xb00c('0x30')]({'where':_0x1288d9[_0xb00c('0x50')]})[_0xb00c('0x20')](function(_0x9a6187){_0xa73687[_0xb00c('0x30')]=_0x9a6187;if(_0x119f1c[_0xb00c('0x45')][_0xb00c('0x5a')]){_0x1288d9['include']=[{'model':db[_0xb00c('0x71')],'as':_0xb00c('0xa8'),'required':![]},{'model':db[_0xb00c('0x9b')],'as':'Owner','attributes':[_0xb00c('0x39'),'fullname',_0xb00c('0xa9')],'required':![]},{'model':db[_0xb00c('0xaa')],'as':_0xb00c('0xab'),'attributes':['id',_0xb00c('0x39'),_0xb00c('0xac')],'where':_0x119f1c['query'][_0xb00c('0xad')]?{'id':_0x119f1c[_0xb00c('0x45')]['tag']}:undefined,'required':_0x119f1c[_0xb00c('0x45')]['tag']?!![]:![]}];}return db[_0xb00c('0x8e')][_0xb00c('0x54')](_0x1288d9);})[_0xb00c('0x20')](function(_0x5e7cdd){_0xa73687[_0xb00c('0x55')]=_0x5e7cdd;return _0xa73687;});}})[_0xb00c('0x20')](respondWithFilteredResult(_0x252e03,_0x1288d9))[_0xb00c('0x29')](handleError(_0x252e03,null));};exports[_0xb00c('0xae')]=function(_0xcbe802,_0x53c7a1,_0x8f1b7d){return db['OpenchannelAccount'][_0xb00c('0x5f')]({'where':{'id':_0xcbe802['params']['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x53c7a1,null))[_0xb00c('0x20')](function(_0x2d5dbc){if(_0x2d5dbc){return _0x2d5dbc[_0xb00c('0xae')](_0xcbe802[_0xb00c('0x63')][_0xb00c('0x6a')],_[_0xb00c('0xaf')](_0xcbe802[_0xb00c('0x63')],[_0xb00c('0x6a'),'id'])||{})[_0xb00c('0x91')](function(_0xc91152){for(var _0x4cef71=0x0;_0x4cef71<_0xcbe802['body'][_0xb00c('0x6a')]['length'];_0x4cef71+=0x1){socket[_0xb00c('0xb0')](_0xb00c('0xb1'),{'UserId':Number(_0xcbe802['body'][_0xb00c('0x6a')][_0x4cef71]),'OpenchannelAccountId':Number(_0xcbe802[_0xb00c('0x57')]['id'])});}return _0xc91152;});}})[_0xb00c('0x20')](respondWithResult(_0x53c7a1,null))['catch'](handleError(_0x53c7a1,null));};exports[_0xb00c('0xb2')]=function(_0x5474a7,_0x27b519,_0x5a198f){return db[_0xb00c('0x3f')][_0xb00c('0x5f')]({'where':{'id':_0x5474a7[_0xb00c('0x57')]['id']}})['then'](handleEntityNotFound(_0x27b519,null))[_0xb00c('0x20')](function(_0x491e40){if(_0x491e40){return _0x491e40['removeAgents'](_0x5474a7[_0xb00c('0x45')][_0xb00c('0x6a')])[_0xb00c('0x20')](function(){if(_[_0xb00c('0xb3')](_0x5474a7[_0xb00c('0x45')][_0xb00c('0x6a')])){for(var _0x2b893e=0x0;_0x2b893e<_0x5474a7[_0xb00c('0x45')]['ids'][_0xb00c('0x59')];_0x2b893e+=0x1){socket['emit']('userOpenchannelAccount:remove',{'UserId':Number(_0x5474a7[_0xb00c('0x45')][_0xb00c('0x6a')][_0x2b893e]),'OpenchannelAccountId':Number(_0x5474a7[_0xb00c('0x57')]['id'])});}}else{socket[_0xb00c('0xb0')](_0xb00c('0xb4'),{'UserId':Number(_0x5474a7[_0xb00c('0x45')][_0xb00c('0x6a')]),'OpenchannelAccountId':Number(_0x5474a7[_0xb00c('0x57')]['id'])});}});}})[_0xb00c('0x20')](respondWithStatusCode(_0x27b519,null))[_0xb00c('0x29')](handleError(_0x27b519,null));};exports['getAgents']=function(_0x4383d2,_0x1a66f4,_0x4292d7){var _0x6e0a0c={};var _0x23b016={};var _0x484f05;var _0x110a0d;return db[_0xb00c('0x3f')][_0xb00c('0x68')]({'where':{'id':_0x4383d2[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x1a66f4,null))[_0xb00c('0x20')](function(_0x41ff02){if(_0x41ff02){_0x484f05=_0x41ff02;_0x23b016[_0xb00c('0x44')]=_[_0xb00c('0x58')](db[_0xb00c('0x9b')][_0xb00c('0x40')]);_0x23b016[_0xb00c('0x45')]=_[_0xb00c('0x58')](_0x4383d2['query']);_0x23b016[_0xb00c('0x46')]=_[_0xb00c('0x47')](_0x23b016['model'],_0x23b016[_0xb00c('0x45')]);_0x6e0a0c[_0xb00c('0x49')]=_['intersection'](_0x23b016[_0xb00c('0x44')],qs[_0xb00c('0x48')](_0x4383d2[_0xb00c('0x45')][_0xb00c('0x48')]));_0x6e0a0c['attributes']=_0x6e0a0c[_0xb00c('0x49')][_0xb00c('0x59')]?_0x6e0a0c[_0xb00c('0x49')]:_0x23b016['model'];_0x6e0a0c['order']=qs[_0xb00c('0x4d')](_0x4383d2[_0xb00c('0x45')][_0xb00c('0x4d')]);_0x6e0a0c[_0xb00c('0x50')]=qs['filters'](_[_0xb00c('0x4e')](_0x4383d2[_0xb00c('0x45')],_0x23b016[_0xb00c('0x46')]));if(_0x4383d2[_0xb00c('0x45')][_0xb00c('0x4f')]){_0x6e0a0c[_0xb00c('0x50')]=_[_0xb00c('0x5b')](_0x6e0a0c[_0xb00c('0x50')],{'$or':_[_0xb00c('0x3e')](_0x6e0a0c[_0xb00c('0x49')],function(_0x51d38b){var _0x3b3255={};_0x3b3255[_0x51d38b]={'$like':'%'+_0x4383d2[_0xb00c('0x45')][_0xb00c('0x4f')]+'%'};return _0x3b3255;})});}_0x6e0a0c=_[_0xb00c('0x5b')]({},_0x6e0a0c,_0x4383d2[_0xb00c('0x52')]);return _0x484f05[_0xb00c('0xb5')](_0x6e0a0c);}})[_0xb00c('0x20')](function(_0x56ce08){if(_0x56ce08){_0x110a0d=_0x56ce08[_0xb00c('0x59')];if(!_0x4383d2[_0xb00c('0x45')][_0xb00c('0x4a')]('nolimit')){_0x6e0a0c['limit']=qs['limit'](_0x4383d2[_0xb00c('0x45')][_0xb00c('0x2f')]);_0x6e0a0c[_0xb00c('0x2d')]=qs[_0xb00c('0x2d')](_0x4383d2[_0xb00c('0x45')]['offset']);}return _0x484f05[_0xb00c('0xb5')](_0x6e0a0c);}})[_0xb00c('0x20')](function(_0x1398f9){if(_0x1398f9){return _0x1398f9?{'count':_0x110a0d,'rows':_0x1398f9}:null;}})[_0xb00c('0x20')](respondWithResult(_0x1a66f4,null))[_0xb00c('0x29')](handleError(_0x1a66f4,null));};exports[_0xb00c('0x3a')]=function(_0x312132,_0x2766c0,_0x2bd395){var _0x3e7483,_0x5b870e,_0x3537ff;if(_[_0xb00c('0x78')](_0x312132[_0xb00c('0x63')]['body'])||_0x312132[_0xb00c('0x63')][_0xb00c('0x63')]===''){throw new db[(_0xb00c('0x79'))][(_0xb00c('0x72'))](_0xb00c('0xb6'));}if(_['isNil'](_0x312132[_0xb00c('0x63')]['to'])){}_0x3e7483=_0x312132['body']['to'];return db['OpenchannelAccount']['findOne']({'where':{'id':_0x312132[_0xb00c('0x57')]['id']}})[_0xb00c('0x20')](handleEntityNotFound(_0x2766c0,null))['then'](function(_0x157202){if(_0x157202){return db[_0xb00c('0x3f')][_0xb00c('0x5f')]({'where':{'id':_0x157202['id']},'include':[{'model':db[_0xb00c('0x7e')],'as':'List','include':[{'model':db['CmContact'],'as':_0xb00c('0x80'),'where':{[_0x157202[_0xb00c('0x7a')]]:_0x3e7483},'limit':0x1,'order':[[_0xb00c('0x75'),_0xb00c('0x81')]]}]}]})[_0xb00c('0x20')](handleEntityNotFound(_0x2766c0,null))[_0xb00c('0x20')](function(_0x549141){if(_0x549141&&_0x549141['List']){_0x5b870e=_0x549141['get']({'plain':!![]});if(_0x5b870e[_0xb00c('0x7f')]&&_0x5b870e[_0xb00c('0x7f')][_0xb00c('0x80')][_0xb00c('0x59')]){return _0x5b870e['List'][_0xb00c('0x80')][0x0];}return db[_0xb00c('0x71')][_0xb00c('0x5c')](_[_0xb00c('0x18')](_0x312132[_0xb00c('0x63')],{'firstName':_0x3e7483,[_0x549141[_0xb00c('0x7a')]]:_0x3e7483,'phone':_0x3e7483,'ListId':_0x5b870e[_0xb00c('0x77')]}));}})['then'](handleEntityNotFound(_0x2766c0,null))[_0xb00c('0x20')](function(_0x1bbec4){if(_0x1bbec4){_0x3537ff=_0x1bbec4;return db['OpenchannelInteraction']['find']({'where':{'ContactId':_0x3537ff['id'],'closed':![],'OpenchannelAccountId':_0x5b870e['id']}})[_0xb00c('0x20')](function(_0xa8ff83){if(_0xa8ff83){return[_0xa8ff83,![]];}return db[_0xb00c('0x8e')][_0xb00c('0x5c')]({'UserId':_0x312132['user']['id'],'ContactId':_0x3537ff['id'],'OpenchannelAccountId':_0x5b870e['id'],'lastMsgDirection':'out','Messages':[_['merge'](_0x312132[_0xb00c('0x63')],{'read':![],'body':_0x312132[_0xb00c('0x63')][_0xb00c('0x63')],'OpenchannelAccountId':_0x5b870e['id'],'UserId':_0x312132[_0xb00c('0xb7')]['id'],'ContactId':_0x3537ff['id']})]},{'include':[{'model':db[_0xb00c('0x98')],'as':_0xb00c('0xb8')}]})[_0xb00c('0x20')](function(_0x56fb79){return[_0x56fb79,!![]];});});}})[_0xb00c('0x91')](function(_0x382727,_0x2889be){if(_0x2889be){return _0x382727;}return db['OpenchannelMessage']['create'](_[_0xb00c('0x5b')](_0x312132[_0xb00c('0x63')],{'read':![],'body':_0x312132['body'][_0xb00c('0x63')],'OpenchannelAccountId':_0x5b870e['id'],'OpenchannelInteractionId':_0x382727['id'],'UserId':_0x312132[_0xb00c('0xb7')]['id'],'ContactId':_0x3537ff['id']}))['then'](function(_0x12b26c){_0x382727[_0xb00c('0xb9')]['Messages']=[];_0x382727['dataValues'][_0xb00c('0xb8')][_0xb00c('0xba')](_0x12b26c[_0xb00c('0xb9')]);return _0x382727;});});}})[_0xb00c('0x20')](respondWithResult(_0x2766c0,null))['catch'](handleError(_0x2766c0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1be1=['OpenchannelAccount','setMaxListeners','update','remove','emit','hook'];(function(_0x257419,_0x30c6b9){var _0x457759=function(_0x56fbe0){while(--_0x56fbe0){_0x257419['push'](_0x257419['shift']());}};_0x457759(++_0x30c6b9);}(_0x1be1,0x192));var _0x11be=function(_0x5874c6,_0x595020){_0x5874c6=_0x5874c6-0x0;var _0xe24953=_0x1be1[_0x5874c6];return _0xe24953;};'use strict';var EventEmitter=require('events');var OpenchannelAccount=require('../../mysqldb')['db'][_0x11be('0x0')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x11be('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x11be('0x2'),'afterDestroy':_0x11be('0x3')};function emitEvent(_0x200b2a){return function(_0x318d41,_0x504d3a,_0x3ce56d){OpenchannelAccountEvents[_0x11be('0x4')](_0x200b2a+':'+_0x318d41['id'],_0x318d41);OpenchannelAccountEvents[_0x11be('0x4')](_0x200b2a,_0x318d41);_0x3ce56d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelAccount[_0x11be('0x5')](e,emitEvent(event));}}module['exports']=OpenchannelAccountEvents;
\ No newline at end of file
+var _0x2547=['hasOwnProperty','exports','../../mysqldb','OpenchannelAccount','setMaxListeners','save','update','remove','emit'];(function(_0x2bb398,_0xd7c0dc){var _0x4dfefc=function(_0x20b088){while(--_0x20b088){_0x2bb398['push'](_0x2bb398['shift']());}};_0x4dfefc(++_0xd7c0dc);}(_0x2547,0x1cd));var _0x7254=function(_0x522a2d,_0x45d6af){_0x522a2d=_0x522a2d-0x0;var _0x63200e=_0x2547[_0x522a2d];return _0x63200e;};'use strict';var EventEmitter=require('events');var OpenchannelAccount=require(_0x7254('0x0'))['db'][_0x7254('0x1')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x7254('0x2')](0x0);var events={'afterCreate':_0x7254('0x3'),'afterUpdate':_0x7254('0x4'),'afterDestroy':_0x7254('0x5')};function emitEvent(_0x9f3435){return function(_0x265ebf,_0x53a02f,_0x2ddeae){OpenchannelAccountEvents[_0x7254('0x6')](_0x9f3435+':'+_0x265ebf['id'],_0x265ebf);OpenchannelAccountEvents[_0x7254('0x6')](_0x9f3435,_0x265ebf);_0x2ddeae(null);};}for(var e in events){if(events[_0x7254('0x7')](e)){var event=events[e];OpenchannelAccount['hook'](e,emitEvent(event));}}module[_0x7254('0x8')]=OpenchannelAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x5eaa30,_0x59e6ec){var _0x23d952=function(_0x50c576){while(--_0x50c576){_0x5eaa30['push'](_0x5eaa30['shift']());}};_0x23d952(++_0x59e6ec);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3b5250,_0x7a0b2c){_0x3b5250=_0x3b5250-0x0;var _0xc844a1=_0xa9e0[_0x3b5250];return _0xc844a1;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x588fcf,_0x41ee41){var _0x49b8d6=function(_0x2bd2ba){while(--_0x2bd2ba){_0x588fcf['push'](_0x588fcf['shift']());}};_0x49b8d6(++_0x41ee41);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3b5250,_0x7a0b2c){_0x3b5250=_0x3b5250-0x0;var _0xc844a1=_0xa9e0[_0x3b5250];return _0xc844a1;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e6c=['OpenchannelAccount,\x20%s,\x20%s','message','catch','lodash','util','bluebird','randomstring','../../config/utils','rpc','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','request','then','info','request\x20sent','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x17625d,_0xca1dd6){var _0x6b497a=function(_0x2c0be2){while(--_0x2c0be2){_0x17625d['push'](_0x17625d['shift']());}};_0x6b497a(++_0xca1dd6);}(_0x6e6c,0xc3));var _0xc6e6=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x6e6c[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0xc6e6('0x0'));var util=require(_0xc6e6('0x1'));var moment=require('moment');var BPromise=require(_0xc6e6('0x2'));var rs=require(_0xc6e6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xc6e6('0x4'));var logger=require('../../config/logger')(_0xc6e6('0x5'));var config=require('../../config/environment');var jayson=require(_0xc6e6('0x6'));var client=jayson[_0xc6e6('0x7')]['http']({'port':0x232a});config[_0xc6e6('0x8')]=_[_0xc6e6('0x9')](config['redis'],{'host':_0xc6e6('0xa'),'port':0x18eb});var socket=require(_0xc6e6('0xb'))(new Redis(config['redis']));require(_0xc6e6('0xc'))['register'](socket);function respondWithRpcPromise(_0x172aa9,_0x3b2f50,_0x29f78a){return new BPromise(function(_0x3ddf6f,_0x12596b){return client[_0xc6e6('0xd')](_0x172aa9,_0x29f78a)[_0xc6e6('0xe')](function(_0x10aae5){logger[_0xc6e6('0xf')]('OpenchannelAccount,\x20%s,\x20%s',_0x3b2f50,_0xc6e6('0x10'));logger['debug'](_0xc6e6('0x11'),_0x3b2f50,_0xc6e6('0x10'),JSON[_0xc6e6('0x12')](_0x10aae5));if(_0x10aae5[_0xc6e6('0x13')]){if(_0x10aae5['error'][_0xc6e6('0x14')]===0x1f4){logger[_0xc6e6('0x13')](_0xc6e6('0x15'),_0x3b2f50,_0x10aae5[_0xc6e6('0x13')][_0xc6e6('0x16')]);return _0x12596b(_0x10aae5['error'][_0xc6e6('0x16')]);}logger[_0xc6e6('0x13')]('OpenchannelAccount,\x20%s,\x20%s',_0x3b2f50,_0x10aae5[_0xc6e6('0x13')][_0xc6e6('0x16')]);return _0x3ddf6f(_0x10aae5[_0xc6e6('0x13')]['message']);}else{logger['info']('OpenchannelAccount,\x20%s,\x20%s',_0x3b2f50,_0xc6e6('0x10'));_0x3ddf6f(_0x10aae5['result'][_0xc6e6('0x16')]);}})[_0xc6e6('0x17')](function(_0x1ecc8f){logger[_0xc6e6('0x13')](_0xc6e6('0x15'),_0x3b2f50,_0x1ecc8f);_0x12596b(_0x1ecc8f);});});}
\ No newline at end of file
+var _0xac4a=['../../config/logger','rpc','../../config/environment','client','redis','localhost','./openchannelAccount.socket','request','then','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelAccount,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x3ea506,_0x6a7445){var _0x2963ff=function(_0xfd016e){while(--_0xfd016e){_0x3ea506['push'](_0x3ea506['shift']());}};_0x2963ff(++_0x6a7445);}(_0xac4a,0x13f));var _0xaac4=function(_0x4e3811,_0x168672){_0x4e3811=_0x4e3811-0x0;var _0x780416=_0xac4a[_0x4e3811];return _0x780416;};'use strict';var _=require(_0xaac4('0x0'));var util=require(_0xaac4('0x1'));var moment=require(_0xaac4('0x2'));var BPromise=require(_0xaac4('0x3'));var rs=require(_0xaac4('0x4'));var fs=require('fs');var Redis=require(_0xaac4('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xaac4('0x6'))(_0xaac4('0x7'));var config=require(_0xaac4('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xaac4('0x9')]['http']({'port':0x232a});config[_0xaac4('0xa')]=_['defaults'](config[_0xaac4('0xa')],{'host':_0xaac4('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xaac4('0xc'))['register'](socket);function respondWithRpcPromise(_0x452573,_0x59b992,_0x4f4c84){return new BPromise(function(_0xeb6b9a,_0x22cea4){return client[_0xaac4('0xd')](_0x452573,_0x4f4c84)[_0xaac4('0xe')](function(_0x3a983c){logger['info']('OpenchannelAccount,\x20%s,\x20%s',_0x59b992,_0xaac4('0xf'));logger[_0xaac4('0x10')](_0xaac4('0x11'),_0x59b992,'request\x20sent',JSON[_0xaac4('0x12')](_0x3a983c));if(_0x3a983c[_0xaac4('0x13')]){if(_0x3a983c['error'][_0xaac4('0x14')]===0x1f4){logger[_0xaac4('0x13')](_0xaac4('0x15'),_0x59b992,_0x3a983c[_0xaac4('0x13')][_0xaac4('0x16')]);return _0x22cea4(_0x3a983c[_0xaac4('0x13')][_0xaac4('0x16')]);}logger[_0xaac4('0x13')](_0xaac4('0x15'),_0x59b992,_0x3a983c[_0xaac4('0x13')][_0xaac4('0x16')]);return _0xeb6b9a(_0x3a983c[_0xaac4('0x13')][_0xaac4('0x16')]);}else{logger['info'](_0xaac4('0x15'),_0x59b992,'request\x20sent');_0xeb6b9a(_0x3a983c[_0xaac4('0x17')]['message']);}})[_0xaac4('0x18')](function(_0x27fe7b){logger[_0xaac4('0x13')](_0xaac4('0x15'),_0x59b992,_0x27fe7b);_0x22cea4(_0x27fe7b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4bd=['length','./openchannelAccount.events','save','remove','update','emit','removeListener'];(function(_0x21ccce,_0x8cf90d){var _0x1d2351=function(_0x18be00){while(--_0x18be00){_0x21ccce['push'](_0x21ccce['shift']());}};_0x1d2351(++_0x8cf90d);}(_0xd4bd,0x15f));var _0xdd4b=function(_0x248952,_0x1c5a48){_0x248952=_0x248952-0x0;var _0x386a71=_0xd4bd[_0x248952];return _0x386a71;};'use strict';var OpenchannelAccountEvents=require(_0xdd4b('0x0'));var events=[_0xdd4b('0x1'),_0xdd4b('0x2'),_0xdd4b('0x3')];function createListener(_0x54b1db,_0x5f2139){return function(_0x37f821){_0x5f2139[_0xdd4b('0x4')](_0x54b1db,_0x37f821);};}function removeListener(_0x176535,_0x378465){return function(){OpenchannelAccountEvents[_0xdd4b('0x5')](_0x176535,_0x378465);};}exports['register']=function(_0x48eda4){for(var _0x1c72c7=0x0,_0x543281=events[_0xdd4b('0x6')];_0x1c72c7<_0x543281;_0x1c72c7++){var _0x173584=events[_0x1c72c7];var _0x4ac6a5=createListener('openchannelAccount:'+_0x173584,_0x48eda4);OpenchannelAccountEvents['on'](_0x173584,_0x4ac6a5);}};
\ No newline at end of file
+var _0x6599=['register','save','remove','update','emit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6599,0xb0));var _0x9659=function(_0x4fc80b,_0xfe1b3d){_0x4fc80b=_0x4fc80b-0x0;var _0x119dba=_0x6599[_0x4fc80b];return _0x119dba;};'use strict';var OpenchannelAccountEvents=require('./openchannelAccount.events');var events=[_0x9659('0x0'),_0x9659('0x1'),_0x9659('0x2')];function createListener(_0x32e67a,_0x21a23e){return function(_0x4c8ba9){_0x21a23e[_0x9659('0x3')](_0x32e67a,_0x4c8ba9);};}function removeListener(_0x5e2a8e,_0x2f5d38){return function(){OpenchannelAccountEvents['removeListener'](_0x5e2a8e,_0x2f5d38);};}exports[_0x9659('0x4')]=function(_0xb08ede){for(var _0x159ac2=0x0,_0x478dfa=events['length'];_0x159ac2<_0x478dfa;_0x159ac2++){var _0xabdd12=events[_0x159ac2];var _0x14cb81=createListener('openchannelAccount:'+_0xabdd12,_0xb08ede);OpenchannelAccountEvents['on'](_0xabdd12,_0x14cb81);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ebe=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./openchannelApplication.controller','get','isAuthenticated','index','/:id','post'];(function(_0x2e2ff5,_0x515087){var _0x5191f9=function(_0xf58d4b){while(--_0xf58d4b){_0x2e2ff5['push'](_0x2e2ff5['shift']());}};_0x5191f9(++_0x515087);}(_0x7ebe,0xce));var _0xe7eb=function(_0x4c5a6b,_0x597b4d){_0x4c5a6b=_0x4c5a6b-0x0;var _0x220ff9=_0x7ebe[_0x4c5a6b];return _0x220ff9;};'use strict';var multer=require(_0xe7eb('0x0'));var util=require(_0xe7eb('0x1'));var path=require(_0xe7eb('0x2'));var timeout=require(_0xe7eb('0x3'));var express=require(_0xe7eb('0x4'));var router=express[_0xe7eb('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xe7eb('0x6'));var interaction=require(_0xe7eb('0x7'));var config=require('../../config/environment');var controller=require(_0xe7eb('0x8'));router[_0xe7eb('0x9')]('/',auth[_0xe7eb('0xa')](),controller[_0xe7eb('0xb')]);router[_0xe7eb('0x9')](_0xe7eb('0xc'),auth[_0xe7eb('0xa')](),controller['show']);router[_0xe7eb('0xd')]('/',auth[_0xe7eb('0xa')](),controller[_0xe7eb('0xe')]);router[_0xe7eb('0xf')]('/:id',auth['isAuthenticated'](),controller[_0xe7eb('0x10')]);router[_0xe7eb('0x11')]('/:id',auth[_0xe7eb('0xa')](),controller[_0xe7eb('0x12')]);module[_0xe7eb('0x13')]=router;
\ No newline at end of file
+var _0x1bcc=['destroy','exports','multer','util','path','express','fs-extra','./openchannelApplication.controller','get','isAuthenticated','index','show','post','put','/:id','delete'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x1bcc,0x172));var _0xc1bc=function(_0x35d291,_0x1a131b){_0x35d291=_0x35d291-0x0;var _0x370b86=_0x1bcc[_0x35d291];return _0x370b86;};'use strict';var multer=require(_0xc1bc('0x0'));var util=require(_0xc1bc('0x1'));var path=require(_0xc1bc('0x2'));var timeout=require('connect-timeout');var express=require(_0xc1bc('0x3'));var router=express['Router']();var fs_extra=require(_0xc1bc('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xc1bc('0x5'));router[_0xc1bc('0x6')]('/',auth[_0xc1bc('0x7')](),controller[_0xc1bc('0x8')]);router['get']('/:id',auth[_0xc1bc('0x7')](),controller[_0xc1bc('0x9')]);router[_0xc1bc('0xa')]('/',auth['isAuthenticated'](),controller['create']);router[_0xc1bc('0xb')](_0xc1bc('0xc'),auth['isAuthenticated'](),controller['update']);router[_0xc1bc('0xd')]('/:id',auth[_0xc1bc('0x7')](),controller[_0xc1bc('0xe')]);module[_0xc1bc('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98a2=['TEXT','STRING','*,*,*,*','exports','INTEGER','noop'];(function(_0x554323,_0x75cd89){var _0x38f84b=function(_0x129d7b){while(--_0x129d7b){_0x554323['push'](_0x554323['shift']());}};_0x38f84b(++_0x75cd89);}(_0x98a2,0x1a1));var _0x298a=function(_0x24db42,_0x482b9f){_0x24db42=_0x24db42-0x0;var _0x331b46=_0x98a2[_0x24db42];return _0x331b46;};'use strict';var Sequelize=require('sequelize');module[_0x298a('0x0')]={'priority':{'type':Sequelize[_0x298a('0x1')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x298a('0x2')},'appdata':{'type':Sequelize[_0x298a('0x3')]()},'description':{'type':Sequelize[_0x298a('0x4')]},'interval':{'type':Sequelize[_0x298a('0x4')],'defaultValue':_0x298a('0x5')}};
\ No newline at end of file
+var _0x7bbf=['*,*,*,*','exports','INTEGER','STRING'];(function(_0x12e3f4,_0x43f737){var _0x59fb4e=function(_0x304f31){while(--_0x304f31){_0x12e3f4['push'](_0x12e3f4['shift']());}};_0x59fb4e(++_0x43f737);}(_0x7bbf,0x149));var _0xf7bb=function(_0x583763,_0x48cd5f){_0x583763=_0x583763-0x0;var _0x223155=_0x7bbf[_0x583763];return _0x223155;};'use strict';var Sequelize=require('sequelize');module[_0xf7bb('0x0')]={'priority':{'type':Sequelize[_0xf7bb('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0xf7bb('0x2')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0xf7bb('0x2')]},'interval':{'type':Sequelize[_0xf7bb('0x2')],'defaultValue':_0xf7bb('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa75f=['send','map','rawAttributes','fieldName','key','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','type','VIRTUAL','options','OpenchannelApplication','includeAll','include','findAll','rows','catch','show','create','body','find','params','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','sendStatus','end','offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','status','error','stack','name'];(function(_0xbf8ebe,_0x3b69a5){var _0x1e25e8=function(_0x40c390){while(--_0x40c390){_0xbf8ebe['push'](_0xbf8ebe['shift']());}};_0x1e25e8(++_0x3b69a5);}(_0xa75f,0x69));var _0xfa75=function(_0x37cfb9,_0x112ae7){_0x37cfb9=_0x37cfb9-0x0;var _0x12fbac=_0xa75f[_0x37cfb9];return _0x12fbac;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfa75('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfa75('0x1'));var rp=require('request-promise');var moment=require(_0xfa75('0x2'));var BPromise=require(_0xfa75('0x3'));var Mustache=require(_0xfa75('0x4'));var util=require(_0xfa75('0x5'));var path=require(_0xfa75('0x6'));var sox=require('sox');var csv=require(_0xfa75('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfa75('0x8'));var _=require('lodash');var squel=require(_0xfa75('0x9'));var crypto=require(_0xfa75('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xfa75('0xb'));var toCsv=require('to-csv');var querystring=require(_0xfa75('0xc'));var Papa=require(_0xfa75('0xd'));var Redis=require(_0xfa75('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xfa75('0xf'));var hardwareService=require(_0xfa75('0x10'));var logger=require(_0xfa75('0x11'))('api');var utils=require(_0xfa75('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xfa75('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5cb521,_0x43b395){_0x43b395=_0x43b395||0xcc;return function(_0x16b5f7){if(_0x16b5f7){return _0x5cb521[_0xfa75('0x14')](_0x43b395);}return _0x5cb521['status'](_0x43b395)[_0xfa75('0x15')]();};}function respondWithResult(_0x261377,_0x3ab571){_0x3ab571=_0x3ab571||0xc8;return function(_0x24b176){if(_0x24b176){return _0x261377['status'](_0x3ab571)['json'](_0x24b176);}};}function respondWithFilteredResult(_0x5c16ff,_0x1fcf06){return function(_0x87c5a4){if(_0x87c5a4){var _0x46c1aa=typeof _0x1fcf06[_0xfa75('0x16')]===_0xfa75('0x17')&&typeof _0x1fcf06[_0xfa75('0x18')]===_0xfa75('0x17');var _0x2c9a26=_0x87c5a4[_0xfa75('0x19')];var _0x3d8dfd=_0x46c1aa?0x0:_0x1fcf06[_0xfa75('0x16')];var _0x237197=_0x46c1aa?_0x87c5a4[_0xfa75('0x19')]:_0x1fcf06[_0xfa75('0x16')]+_0x1fcf06[_0xfa75('0x18')];var _0x534b10;if(_0x237197>=_0x2c9a26){_0x237197=_0x2c9a26;_0x534b10=0xc8;}else{_0x534b10=0xce;}_0x5c16ff['status'](_0x534b10);return _0x5c16ff['set']('Content-Range',_0x3d8dfd+'-'+_0x237197+'/'+_0x2c9a26)[_0xfa75('0x1a')](_0x87c5a4);}return null;};}function patchUpdates(_0x2fd742){return function(_0x125089){try{jsonpatch[_0xfa75('0x1b')](_0x125089,_0x2fd742,!![]);}catch(_0x44d42a){return BPromise[_0xfa75('0x1c')](_0x44d42a);}return _0x125089[_0xfa75('0x1d')]();};}function saveUpdates(_0x3aaa3e,_0x1cffcc){return function(_0x3232f8){if(_0x3232f8){return _0x3232f8[_0xfa75('0x1e')](_0x3aaa3e)[_0xfa75('0x1f')](function(_0x8d7593){return _0x8d7593;});}return null;};}function removeEntity(_0x14eafa,_0xffa870){return function(_0x395b36){if(_0x395b36){return _0x395b36[_0xfa75('0x20')]()['then'](function(){_0x14eafa[_0xfa75('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c3240,_0x57b773){return function(_0x4000cf){if(!_0x4000cf){_0x5c3240[_0xfa75('0x14')](0x194);}return _0x4000cf;};}function handleError(_0x1a6e48,_0x319e0b){_0x319e0b=_0x319e0b||0x1f4;return function(_0x3ff393){logger[_0xfa75('0x22')](_0x3ff393[_0xfa75('0x23')]);if(_0x3ff393[_0xfa75('0x24')]){delete _0x3ff393[_0xfa75('0x24')];}_0x1a6e48[_0xfa75('0x21')](_0x319e0b)[_0xfa75('0x25')](_0x3ff393);};}exports['index']=function(_0x5265f7,_0xa773fc){var _0x39b0b8={},_0x315090={},_0x1a2694={'count':0x0,'rows':[]};var _0x575336=_[_0xfa75('0x26')](db['OpenchannelApplication'][_0xfa75('0x27')],function(_0x321fd9){return{'name':_0x321fd9[_0xfa75('0x28')],'type':_0x321fd9['type'][_0xfa75('0x29')]};});_0x315090[_0xfa75('0x2a')]=_['map'](_0x575336,_0xfa75('0x24'));_0x315090['query']=_[_0xfa75('0x2b')](_0x5265f7[_0xfa75('0x2c')]);_0x315090['filters']=_[_0xfa75('0x2d')](_0x315090['model'],_0x315090[_0xfa75('0x2c')]);_0x39b0b8['attributes']=_[_0xfa75('0x2d')](_0x315090[_0xfa75('0x2a')],qs[_0xfa75('0x2e')](_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x2e')]));_0x39b0b8[_0xfa75('0x2f')]=_0x39b0b8[_0xfa75('0x2f')][_0xfa75('0x30')]?_0x39b0b8[_0xfa75('0x2f')]:_0x315090['model'];if(!_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x31')](_0xfa75('0x32'))){_0x39b0b8[_0xfa75('0x18')]=qs[_0xfa75('0x18')](_0x5265f7['query'][_0xfa75('0x18')]);_0x39b0b8['offset']=qs[_0xfa75('0x16')](_0x5265f7[_0xfa75('0x2c')]['offset']);}_0x39b0b8[_0xfa75('0x33')]=qs[_0xfa75('0x34')](_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x34')]);_0x39b0b8['where']=qs[_0xfa75('0x35')](_[_0xfa75('0x36')](_0x5265f7[_0xfa75('0x2c')],_0x315090[_0xfa75('0x35')]),_0x575336);if(_0x5265f7[_0xfa75('0x2c')]['filter']){_0x39b0b8[_0xfa75('0x37')]=_[_0xfa75('0x38')](_0x39b0b8[_0xfa75('0x37')],{'$or':_[_0xfa75('0x26')](_0x575336,function(_0x4e8e47){if(_0x4e8e47[_0xfa75('0x39')]!==_0xfa75('0x3a')){var _0x24529c={};_0x24529c[_0x4e8e47[_0xfa75('0x24')]]={'$like':'%'+_0x5265f7[_0xfa75('0x2c')]['filter']+'%'};return _0x24529c;}})});}_0x39b0b8=_[_0xfa75('0x38')]({},_0x39b0b8,_0x5265f7[_0xfa75('0x3b')]);var _0xf91fc8={'where':_0x39b0b8['where']};return db[_0xfa75('0x3c')][_0xfa75('0x19')](_0xf91fc8)[_0xfa75('0x1f')](function(_0x7cbedc){_0x1a2694['count']=_0x7cbedc;if(_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x3d')]){_0x39b0b8[_0xfa75('0x3e')]=[{'all':!![]}];}return db[_0xfa75('0x3c')][_0xfa75('0x3f')](_0x39b0b8);})['then'](function(_0x4fc544){_0x1a2694[_0xfa75('0x40')]=_0x4fc544;return _0x1a2694;})['then'](respondWithFilteredResult(_0xa773fc,_0x39b0b8))[_0xfa75('0x41')](handleError(_0xa773fc,null));};exports[_0xfa75('0x42')]=function(_0x2443a3,_0x4779a1){var _0x296ffc={'raw':!![],'where':{'id':_0x2443a3['params']['id']}},_0x36737d={};_0x36737d[_0xfa75('0x2a')]=_[_0xfa75('0x2b')](db[_0xfa75('0x3c')][_0xfa75('0x27')]);_0x36737d['query']=_[_0xfa75('0x2b')](_0x2443a3[_0xfa75('0x2c')]);_0x36737d[_0xfa75('0x35')]=_[_0xfa75('0x2d')](_0x36737d['model'],_0x36737d[_0xfa75('0x2c')]);_0x296ffc[_0xfa75('0x2f')]=_[_0xfa75('0x2d')](_0x36737d[_0xfa75('0x2a')],qs['fields'](_0x2443a3[_0xfa75('0x2c')][_0xfa75('0x2e')]));_0x296ffc[_0xfa75('0x2f')]=_0x296ffc[_0xfa75('0x2f')][_0xfa75('0x30')]?_0x296ffc[_0xfa75('0x2f')]:_0x36737d['model'];if(_0x2443a3[_0xfa75('0x2c')][_0xfa75('0x3d')]){_0x296ffc[_0xfa75('0x3e')]=[{'all':!![]}];}_0x296ffc=_[_0xfa75('0x38')]({},_0x296ffc,_0x2443a3[_0xfa75('0x3b')]);return db[_0xfa75('0x3c')]['find'](_0x296ffc)[_0xfa75('0x1f')](handleEntityNotFound(_0x4779a1,null))[_0xfa75('0x1f')](respondWithResult(_0x4779a1,null))[_0xfa75('0x41')](handleError(_0x4779a1,null));};exports[_0xfa75('0x43')]=function(_0x39f41e,_0x53529e){return db['OpenchannelApplication'][_0xfa75('0x43')](_0x39f41e[_0xfa75('0x44')],{})[_0xfa75('0x1f')](respondWithResult(_0x53529e,0xc9))[_0xfa75('0x41')](handleError(_0x53529e,null));};exports[_0xfa75('0x1e')]=function(_0x21e8b9,_0xf5d89c){if(_0x21e8b9[_0xfa75('0x44')]['id']){delete _0x21e8b9[_0xfa75('0x44')]['id'];}return db[_0xfa75('0x3c')][_0xfa75('0x45')]({'where':{'id':_0x21e8b9['params']['id']}})[_0xfa75('0x1f')](handleEntityNotFound(_0xf5d89c,null))['then'](saveUpdates(_0x21e8b9[_0xfa75('0x44')],null))[_0xfa75('0x1f')](respondWithResult(_0xf5d89c,null))['catch'](handleError(_0xf5d89c,null));};exports[_0xfa75('0x20')]=function(_0x9552bb,_0x1157fb){return db[_0xfa75('0x3c')]['find']({'where':{'id':_0x9552bb[_0xfa75('0x46')]['id']}})[_0xfa75('0x1f')](handleEntityNotFound(_0x1157fb,null))['then'](removeEntity(_0x1157fb,null))['catch'](handleError(_0x1157fb,null));};
\ No newline at end of file
+var _0xe5be=['create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../config/logger','../../config/utils','../../config/license/util','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','update','destroy','sendStatus','error','stack','name','index','map','OpenchannelApplication','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','then','includeAll','include','rows','catch','show','rawAttributes','options','find'];(function(_0x553d11,_0x281ad3){var _0x4bfbd8=function(_0x3a4ff2){while(--_0x3a4ff2){_0x553d11['push'](_0x553d11['shift']());}};_0x4bfbd8(++_0x281ad3);}(_0xe5be,0x175));var _0xee5b=function(_0x711e2c,_0x1ca697){_0x711e2c=_0x711e2c-0x0;var _0x25b502=_0xe5be[_0x711e2c];return _0x25b502;};'use strict';var emlformat=require(_0xee5b('0x0'));var rimraf=require(_0xee5b('0x1'));var zipdir=require(_0xee5b('0x2'));var jsonpatch=require(_0xee5b('0x3'));var rp=require(_0xee5b('0x4'));var moment=require(_0xee5b('0x5'));var BPromise=require(_0xee5b('0x6'));var Mustache=require(_0xee5b('0x7'));var util=require(_0xee5b('0x8'));var path=require('path');var sox=require(_0xee5b('0x9'));var csv=require(_0xee5b('0xa'));var ejs=require(_0xee5b('0xb'));var fs=require('fs');var fs_extra=require(_0xee5b('0xc'));var _=require(_0xee5b('0xd'));var squel=require(_0xee5b('0xe'));var crypto=require(_0xee5b('0xf'));var jsforce=require(_0xee5b('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xee5b('0xa'));var querystring=require('querystring');var Papa=require(_0xee5b('0x11'));var Redis=require(_0xee5b('0x12'));var authService=require(_0xee5b('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xee5b('0x14'))('api');var utils=require(_0xee5b('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xee5b('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4ba5f5,_0x4ac2d1){_0x4ac2d1=_0x4ac2d1||0xcc;return function(_0xd52b3c){if(_0xd52b3c){return _0x4ba5f5['sendStatus'](_0x4ac2d1);}return _0x4ba5f5[_0xee5b('0x17')](_0x4ac2d1)[_0xee5b('0x18')]();};}function respondWithResult(_0x557843,_0x538acb){_0x538acb=_0x538acb||0xc8;return function(_0x4099a8){if(_0x4099a8){return _0x557843[_0xee5b('0x17')](_0x538acb)[_0xee5b('0x19')](_0x4099a8);}};}function respondWithFilteredResult(_0x43ccf8,_0x2fefef){return function(_0x5b0a85){if(_0x5b0a85){var _0x2e46ea=typeof _0x2fefef['offset']===_0xee5b('0x1a')&&typeof _0x2fefef[_0xee5b('0x1b')]==='undefined';var _0x3aa7f7=_0x5b0a85[_0xee5b('0x1c')];var _0x55b370=_0x2e46ea?0x0:_0x2fefef[_0xee5b('0x1d')];var _0x24d10e=_0x2e46ea?_0x5b0a85[_0xee5b('0x1c')]:_0x2fefef[_0xee5b('0x1d')]+_0x2fefef[_0xee5b('0x1b')];var _0x16d7e7;if(_0x24d10e>=_0x3aa7f7){_0x24d10e=_0x3aa7f7;_0x16d7e7=0xc8;}else{_0x16d7e7=0xce;}_0x43ccf8[_0xee5b('0x17')](_0x16d7e7);return _0x43ccf8['set'](_0xee5b('0x1e'),_0x55b370+'-'+_0x24d10e+'/'+_0x3aa7f7)[_0xee5b('0x19')](_0x5b0a85);}return null;};}function patchUpdates(_0x5b5c2c){return function(_0x1c2bb8){try{jsonpatch[_0xee5b('0x1f')](_0x1c2bb8,_0x5b5c2c,!![]);}catch(_0x310def){return BPromise[_0xee5b('0x20')](_0x310def);}return _0x1c2bb8['save']();};}function saveUpdates(_0xd01b2c,_0x23bee3){return function(_0x4cc28a){if(_0x4cc28a){return _0x4cc28a[_0xee5b('0x21')](_0xd01b2c)['then'](function(_0x38cb0c){return _0x38cb0c;});}return null;};}function removeEntity(_0x37a607,_0x2e7736){return function(_0x424517){if(_0x424517){return _0x424517[_0xee5b('0x22')]()['then'](function(){_0x37a607['status'](0xcc)[_0xee5b('0x18')]();});}};}function handleEntityNotFound(_0x4c01dd,_0x4c09fb){return function(_0x4a7399){if(!_0x4a7399){_0x4c01dd[_0xee5b('0x23')](0x194);}return _0x4a7399;};}function handleError(_0xe52abb,_0x58b612){_0x58b612=_0x58b612||0x1f4;return function(_0x587267){logger[_0xee5b('0x24')](_0x587267[_0xee5b('0x25')]);if(_0x587267[_0xee5b('0x26')]){delete _0x587267[_0xee5b('0x26')];}_0xe52abb[_0xee5b('0x17')](_0x58b612)['send'](_0x587267);};}exports[_0xee5b('0x27')]=function(_0x5d3bb9,_0xb184d2){var _0x2aee25={},_0x2efea5={},_0x40b1f8={'count':0x0,'rows':[]};var _0x2cab3b=_[_0xee5b('0x28')](db[_0xee5b('0x29')]['rawAttributes'],function(_0x52e712){return{'name':_0x52e712[_0xee5b('0x2a')],'type':_0x52e712['type'][_0xee5b('0x2b')]};});_0x2efea5['model']=_[_0xee5b('0x28')](_0x2cab3b,_0xee5b('0x26'));_0x2efea5[_0xee5b('0x2c')]=_[_0xee5b('0x2d')](_0x5d3bb9[_0xee5b('0x2c')]);_0x2efea5[_0xee5b('0x2e')]=_[_0xee5b('0x2f')](_0x2efea5['model'],_0x2efea5['query']);_0x2aee25[_0xee5b('0x30')]=_[_0xee5b('0x2f')](_0x2efea5[_0xee5b('0x31')],qs[_0xee5b('0x32')](_0x5d3bb9[_0xee5b('0x2c')][_0xee5b('0x32')]));_0x2aee25[_0xee5b('0x30')]=_0x2aee25['attributes'][_0xee5b('0x33')]?_0x2aee25[_0xee5b('0x30')]:_0x2efea5[_0xee5b('0x31')];if(!_0x5d3bb9[_0xee5b('0x2c')][_0xee5b('0x34')](_0xee5b('0x35'))){_0x2aee25[_0xee5b('0x1b')]=qs['limit'](_0x5d3bb9[_0xee5b('0x2c')][_0xee5b('0x1b')]);_0x2aee25[_0xee5b('0x1d')]=qs[_0xee5b('0x1d')](_0x5d3bb9[_0xee5b('0x2c')][_0xee5b('0x1d')]);}_0x2aee25[_0xee5b('0x36')]=qs['sort'](_0x5d3bb9[_0xee5b('0x2c')][_0xee5b('0x37')]);_0x2aee25[_0xee5b('0x38')]=qs[_0xee5b('0x2e')](_[_0xee5b('0x39')](_0x5d3bb9['query'],_0x2efea5['filters']),_0x2cab3b);if(_0x5d3bb9[_0xee5b('0x2c')][_0xee5b('0x3a')]){_0x2aee25[_0xee5b('0x38')]=_[_0xee5b('0x3b')](_0x2aee25[_0xee5b('0x38')],{'$or':_['map'](_0x2cab3b,function(_0x25f915){if(_0x25f915[_0xee5b('0x3c')]!==_0xee5b('0x3d')){var _0x460f9b={};_0x460f9b[_0x25f915[_0xee5b('0x26')]]={'$like':'%'+_0x5d3bb9[_0xee5b('0x2c')][_0xee5b('0x3a')]+'%'};return _0x460f9b;}})});}_0x2aee25=_[_0xee5b('0x3b')]({},_0x2aee25,_0x5d3bb9['options']);var _0x3d81a1={'where':_0x2aee25[_0xee5b('0x38')]};return db['OpenchannelApplication'][_0xee5b('0x1c')](_0x3d81a1)[_0xee5b('0x3e')](function(_0x29cbb0){_0x40b1f8['count']=_0x29cbb0;if(_0x5d3bb9['query'][_0xee5b('0x3f')]){_0x2aee25[_0xee5b('0x40')]=[{'all':!![]}];}return db[_0xee5b('0x29')]['findAll'](_0x2aee25);})[_0xee5b('0x3e')](function(_0xc1d51a){_0x40b1f8[_0xee5b('0x41')]=_0xc1d51a;return _0x40b1f8;})[_0xee5b('0x3e')](respondWithFilteredResult(_0xb184d2,_0x2aee25))[_0xee5b('0x42')](handleError(_0xb184d2,null));};exports[_0xee5b('0x43')]=function(_0xf59ae7,_0x4ee59b){var _0x4a86ab={'raw':!![],'where':{'id':_0xf59ae7['params']['id']}},_0xaf5bdd={};_0xaf5bdd['model']=_[_0xee5b('0x2d')](db['OpenchannelApplication'][_0xee5b('0x44')]);_0xaf5bdd[_0xee5b('0x2c')]=_['keys'](_0xf59ae7[_0xee5b('0x2c')]);_0xaf5bdd[_0xee5b('0x2e')]=_['intersection'](_0xaf5bdd['model'],_0xaf5bdd[_0xee5b('0x2c')]);_0x4a86ab['attributes']=_[_0xee5b('0x2f')](_0xaf5bdd['model'],qs[_0xee5b('0x32')](_0xf59ae7[_0xee5b('0x2c')][_0xee5b('0x32')]));_0x4a86ab[_0xee5b('0x30')]=_0x4a86ab[_0xee5b('0x30')][_0xee5b('0x33')]?_0x4a86ab['attributes']:_0xaf5bdd['model'];if(_0xf59ae7[_0xee5b('0x2c')][_0xee5b('0x3f')]){_0x4a86ab[_0xee5b('0x40')]=[{'all':!![]}];}_0x4a86ab=_['merge']({},_0x4a86ab,_0xf59ae7[_0xee5b('0x45')]);return db[_0xee5b('0x29')][_0xee5b('0x46')](_0x4a86ab)[_0xee5b('0x3e')](handleEntityNotFound(_0x4ee59b,null))[_0xee5b('0x3e')](respondWithResult(_0x4ee59b,null))[_0xee5b('0x42')](handleError(_0x4ee59b,null));};exports[_0xee5b('0x47')]=function(_0x35200e,_0x10020d){return db[_0xee5b('0x29')][_0xee5b('0x47')](_0x35200e[_0xee5b('0x48')],{})['then'](respondWithResult(_0x10020d,0xc9))['catch'](handleError(_0x10020d,null));};exports[_0xee5b('0x21')]=function(_0x17c5c2,_0x2ad522){if(_0x17c5c2[_0xee5b('0x48')]['id']){delete _0x17c5c2[_0xee5b('0x48')]['id'];}return db['OpenchannelApplication'][_0xee5b('0x46')]({'where':{'id':_0x17c5c2[_0xee5b('0x49')]['id']}})[_0xee5b('0x3e')](handleEntityNotFound(_0x2ad522,null))[_0xee5b('0x3e')](saveUpdates(_0x17c5c2['body'],null))[_0xee5b('0x3e')](respondWithResult(_0x2ad522,null))[_0xee5b('0x42')](handleError(_0x2ad522,null));};exports['destroy']=function(_0x1d5e1a,_0x138d4f){return db[_0xee5b('0x29')][_0xee5b('0x46')]({'where':{'id':_0x1d5e1a[_0xee5b('0x49')]['id']}})['then'](handleEntityNotFound(_0x138d4f,null))[_0xee5b('0x3e')](removeEntity(_0x138d4f,null))[_0xee5b('0x42')](handleError(_0x138d4f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x848d=['api','moment','bluebird','path','../../config/environment','./openchannelApplication.attributes','exports','define','OpenchannelApplication','openchannel_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util'];(function(_0x14d042,_0x19eaea){var _0x28f422=function(_0x351c7c){while(--_0x351c7c){_0x14d042['push'](_0x14d042['shift']());}};_0x28f422(++_0x19eaea);}(_0x848d,0x1cc));var _0xd848=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x848d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xd848('0x0'));var util=require(_0xd848('0x1'));var logger=require('../../config/logger')(_0xd848('0x2'));var moment=require(_0xd848('0x3'));var BPromise=require(_0xd848('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd848('0x5'));var rimraf=require('rimraf');var config=require(_0xd848('0x6'));var attributes=require(_0xd848('0x7'));module[_0xd848('0x8')]=function(_0x3cd584,_0x58fc60){return _0x3cd584[_0xd848('0x9')](_0xd848('0xa'),attributes,{'tableName':_0xd848('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xd848('0xc'),'collate':_0xd848('0xd')});};
\ No newline at end of file
+var _0x3347=['../../config/environment','./openchannelApplication.attributes','exports','define','OpenchannelApplication','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','bluebird','request-promise'];(function(_0x36ed48,_0x1ee0d4){var _0x51c63a=function(_0x2d0a40){while(--_0x2d0a40){_0x36ed48['push'](_0x36ed48['shift']());}};_0x51c63a(++_0x1ee0d4);}(_0x3347,0x8b));var _0x7334=function(_0x5860b9,_0x4bf239){_0x5860b9=_0x5860b9-0x0;var _0x275f07=_0x3347[_0x5860b9];return _0x275f07;};'use strict';var _=require(_0x7334('0x0'));var util=require(_0x7334('0x1'));var logger=require('../../config/logger')(_0x7334('0x2'));var moment=require('moment');var BPromise=require(_0x7334('0x3'));var rp=require(_0x7334('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x7334('0x5'));var attributes=require(_0x7334('0x6'));module[_0x7334('0x7')]=function(_0x216a47,_0x3bbc15){return _0x216a47[_0x7334('0x8')](_0x7334('0x9'),attributes,{'tableName':'openchannel_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x7334('0xa'),'collate':_0x7334('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bee=['raw','where','attributes','info','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','then','request\x20sent','debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','stringify','code','error','message','OpenchannelApplication,\x20%s,\x20%s','result','catch','UpdateOpenchannelApplication','OpenchannelApplication','update','body','options'];(function(_0x13ea00,_0x12f610){var _0x1f7347=function(_0x34ae63){while(--_0x34ae63){_0x13ea00['push'](_0x13ea00['shift']());}};_0x1f7347(++_0x12f610);}(_0x2bee,0x1e4));var _0xe2be=function(_0x5c4e16,_0x113035){_0x5c4e16=_0x5c4e16-0x0;var _0x36044a=_0x2bee[_0x5c4e16];return _0x36044a;};'use strict';var _=require(_0xe2be('0x0'));var util=require(_0xe2be('0x1'));var moment=require(_0xe2be('0x2'));var BPromise=require(_0xe2be('0x3'));var rs=require(_0xe2be('0x4'));var fs=require('fs');var Redis=require(_0xe2be('0x5'));var db=require(_0xe2be('0x6'))['db'];var utils=require(_0xe2be('0x7'));var logger=require(_0xe2be('0x8'))(_0xe2be('0x9'));var config=require(_0xe2be('0xa'));var jayson=require(_0xe2be('0xb'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3c8b59,_0x59d989,_0x1265db){return new BPromise(function(_0x2a3b98,_0x7f8a9b){return client['request'](_0x3c8b59,_0x1265db)[_0xe2be('0xc')](function(_0x4511b6){logger['info']('OpenchannelApplication,\x20%s,\x20%s',_0x59d989,_0xe2be('0xd'));logger[_0xe2be('0xe')](_0xe2be('0xf'),_0x59d989,_0xe2be('0xd'),JSON[_0xe2be('0x10')](_0x4511b6));if(_0x4511b6['error']){if(_0x4511b6['error'][_0xe2be('0x11')]===0x1f4){logger[_0xe2be('0x12')]('OpenchannelApplication,\x20%s,\x20%s',_0x59d989,_0x4511b6['error'][_0xe2be('0x13')]);return _0x7f8a9b(_0x4511b6[_0xe2be('0x12')][_0xe2be('0x13')]);}logger[_0xe2be('0x12')](_0xe2be('0x14'),_0x59d989,_0x4511b6[_0xe2be('0x12')][_0xe2be('0x13')]);return _0x2a3b98(_0x4511b6[_0xe2be('0x12')][_0xe2be('0x13')]);}else{logger['info'](_0xe2be('0x14'),_0x59d989,'request\x20sent');_0x2a3b98(_0x4511b6[_0xe2be('0x15')][_0xe2be('0x13')]);}})[_0xe2be('0x16')](function(_0x11dd34){logger[_0xe2be('0x12')](_0xe2be('0x14'),_0x59d989,_0x11dd34);_0x7f8a9b(_0x11dd34);});});}exports[_0xe2be('0x17')]=function(_0x1776a5){var _0x3e35ce=this;return new Promise(function(_0x20a126,_0xdc3334){return db[_0xe2be('0x18')][_0xe2be('0x19')](_0x1776a5[_0xe2be('0x1a')],{'raw':_0x1776a5[_0xe2be('0x1b')]?_0x1776a5[_0xe2be('0x1b')][_0xe2be('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1776a5['options']?_0x1776a5['options'][_0xe2be('0x1d')]||null:null,'attributes':_0x1776a5[_0xe2be('0x1b')]?_0x1776a5[_0xe2be('0x1b')][_0xe2be('0x1e')]||null:null,'limit':_0x1776a5['options']?_0x1776a5[_0xe2be('0x1b')]['limit']||null:null})[_0xe2be('0xc')](function(_0x434e1a){logger[_0xe2be('0x1f')]('UpdateOpenchannelApplication',_0x1776a5);logger[_0xe2be('0xe')](_0xe2be('0x17'),_0x1776a5,JSON[_0xe2be('0x10')](_0x434e1a));_0x20a126(_0x434e1a);})['catch'](function(_0x3cf3f3){logger['error'](_0xe2be('0x17'),_0x3cf3f3[_0xe2be('0x13')],_0x1776a5);_0xdc3334(_0x3e35ce[_0xe2be('0x12')](0x1f4,_0x3cf3f3[_0xe2be('0x13')]));});});};
\ No newline at end of file
+var _0xf9f8=['debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','error','message','catch','UpdateOpenchannelApplication','update','body','options','raw','where','limit','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','OpenchannelApplication,\x20%s,\x20%s','request\x20sent'];(function(_0x326030,_0x4df3f1){var _0x51daea=function(_0x5c6c05){while(--_0x5c6c05){_0x326030['push'](_0x326030['shift']());}};_0x51daea(++_0x4df3f1);}(_0xf9f8,0x124));var _0x8f9f=function(_0x332a02,_0x2fc843){_0x332a02=_0x332a02-0x0;var _0x206440=_0xf9f8[_0x332a02];return _0x206440;};'use strict';var _=require(_0x8f9f('0x0'));var util=require(_0x8f9f('0x1'));var moment=require(_0x8f9f('0x2'));var BPromise=require(_0x8f9f('0x3'));var rs=require(_0x8f9f('0x4'));var fs=require('fs');var Redis=require(_0x8f9f('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x8f9f('0x6'));var logger=require(_0x8f9f('0x7'))(_0x8f9f('0x8'));var config=require(_0x8f9f('0x9'));var jayson=require(_0x8f9f('0xa'));var client=jayson[_0x8f9f('0xb')][_0x8f9f('0xc')]({'port':0x232a});function respondWithRpcPromise(_0xc7fedb,_0x3c934f,_0x3c62d5){return new BPromise(function(_0x33cada,_0x4df1da){return client[_0x8f9f('0xd')](_0xc7fedb,_0x3c62d5)[_0x8f9f('0xe')](function(_0x3b7fe4){logger[_0x8f9f('0xf')](_0x8f9f('0x10'),_0x3c934f,_0x8f9f('0x11'));logger[_0x8f9f('0x12')](_0x8f9f('0x13'),_0x3c934f,_0x8f9f('0x11'),JSON['stringify'](_0x3b7fe4));if(_0x3b7fe4[_0x8f9f('0x14')]){if(_0x3b7fe4[_0x8f9f('0x14')]['code']===0x1f4){logger[_0x8f9f('0x14')](_0x8f9f('0x10'),_0x3c934f,_0x3b7fe4['error'][_0x8f9f('0x15')]);return _0x4df1da(_0x3b7fe4[_0x8f9f('0x14')][_0x8f9f('0x15')]);}logger[_0x8f9f('0x14')](_0x8f9f('0x10'),_0x3c934f,_0x3b7fe4['error'][_0x8f9f('0x15')]);return _0x33cada(_0x3b7fe4[_0x8f9f('0x14')][_0x8f9f('0x15')]);}else{logger[_0x8f9f('0xf')](_0x8f9f('0x10'),_0x3c934f,'request\x20sent');_0x33cada(_0x3b7fe4['result'][_0x8f9f('0x15')]);}})[_0x8f9f('0x16')](function(_0xebbe24){logger[_0x8f9f('0x14')](_0x8f9f('0x10'),_0x3c934f,_0xebbe24);_0x4df1da(_0xebbe24);});});}exports[_0x8f9f('0x17')]=function(_0x80dad0){var _0x538372=this;return new Promise(function(_0x248807,_0xdb750f){return db['OpenchannelApplication'][_0x8f9f('0x18')](_0x80dad0[_0x8f9f('0x19')],{'raw':_0x80dad0[_0x8f9f('0x1a')]?_0x80dad0[_0x8f9f('0x1a')][_0x8f9f('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x80dad0[_0x8f9f('0x1a')]?_0x80dad0[_0x8f9f('0x1a')][_0x8f9f('0x1c')]||null:null,'attributes':_0x80dad0[_0x8f9f('0x1a')]?_0x80dad0[_0x8f9f('0x1a')]['attributes']||null:null,'limit':_0x80dad0['options']?_0x80dad0[_0x8f9f('0x1a')][_0x8f9f('0x1d')]||null:null})[_0x8f9f('0xe')](function(_0x25f0d7){logger[_0x8f9f('0xf')](_0x8f9f('0x17'),_0x80dad0);logger[_0x8f9f('0x12')](_0x8f9f('0x17'),_0x80dad0,JSON[_0x8f9f('0x1e')](_0x25f0d7));_0x248807(_0x25f0d7);})[_0x8f9f('0x16')](function(_0xd849d){logger[_0x8f9f('0x14')](_0x8f9f('0x17'),_0xd849d['message'],_0x80dad0);_0xdb750f(_0x538372['error'](0x1f4,_0xd849d[_0x8f9f('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9543=['../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelInteraction.controller','get','/describe','isAuthenticated','/:id','show','/:id/messages','/:id/download','download','post','create','addMessage','/:id/tags','tracked','openchannelinteraction:addtags','put','openchannel','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','destroy','removeTags','exports','util','path','connect-timeout','express','fs-extra'];(function(_0x5c6299,_0x11bd28){var _0x23b564=function(_0x329ed6){while(--_0x329ed6){_0x5c6299['push'](_0x5c6299['shift']());}};_0x23b564(++_0x11bd28);}(_0x9543,0xfb));var _0x3954=function(_0x24480b,_0x57071d){_0x24480b=_0x24480b-0x0;var _0x2e30ea=_0x9543[_0x24480b];return _0x2e30ea;};'use strict';var multer=require('multer');var util=require(_0x3954('0x0'));var path=require(_0x3954('0x1'));var timeout=require(_0x3954('0x2'));var express=require(_0x3954('0x3'));var router=express['Router']();var fs_extra=require(_0x3954('0x4'));var auth=require(_0x3954('0x5'));var interaction=require(_0x3954('0x6'));var config=require(_0x3954('0x7'));var controller=require(_0x3954('0x8'));router[_0x3954('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x3954('0x9')](_0x3954('0xa'),auth[_0x3954('0xb')](),controller['describe']);router[_0x3954('0x9')](_0x3954('0xc'),auth[_0x3954('0xb')](),controller[_0x3954('0xd')]);router['get'](_0x3954('0xe'),auth[_0x3954('0xb')](),controller['getMessages']);router[_0x3954('0x9')](_0x3954('0xf'),auth[_0x3954('0xb')](),controller[_0x3954('0x10')]);router[_0x3954('0x11')]('/',auth[_0x3954('0xb')](),controller[_0x3954('0x12')]);router[_0x3954('0x11')]('/:id/messages',auth['isAuthenticated'](),controller[_0x3954('0x13')]);router['post'](_0x3954('0x14'),auth[_0x3954('0xb')](),interaction[_0x3954('0x15')]('openchannel',_0x3954('0x16')),controller['addTags']);router[_0x3954('0x17')](_0x3954('0xc'),auth[_0x3954('0xb')](),interaction[_0x3954('0x15')](_0x3954('0x18'),_0x3954('0x19')),controller[_0x3954('0x1a')]);router[_0x3954('0x1b')](_0x3954('0xc'),auth[_0x3954('0xb')](),interaction['tracked']('openchannel',_0x3954('0x1c')),controller[_0x3954('0x1d')]);router[_0x3954('0x1b')](_0x3954('0x14'),auth[_0x3954('0xb')](),controller[_0x3954('0x1e')]);module[_0x3954('0x1f')]=router;
\ No newline at end of file
+var _0xd8ed=['exports','multer','util','connect-timeout','express','fs-extra','../../config/environment','./openchannelInteraction.controller','get','index','/describe','isAuthenticated','describe','/:id','show','getMessages','download','post','create','/:id/messages','addMessage','/:id/tags','tracked','addTags','openchannel','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','destroy','removeTags'];(function(_0xe9d0d0,_0xf8a75a){var _0x1f08a3=function(_0x402862){while(--_0x402862){_0xe9d0d0['push'](_0xe9d0d0['shift']());}};_0x1f08a3(++_0xf8a75a);}(_0xd8ed,0x175));var _0xdd8e=function(_0x1c8e77,_0x58d143){_0x1c8e77=_0x1c8e77-0x0;var _0xb8ef7=_0xd8ed[_0x1c8e77];return _0xb8ef7;};'use strict';var multer=require(_0xdd8e('0x0'));var util=require(_0xdd8e('0x1'));var path=require('path');var timeout=require(_0xdd8e('0x2'));var express=require(_0xdd8e('0x3'));var router=express['Router']();var fs_extra=require(_0xdd8e('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xdd8e('0x5'));var controller=require(_0xdd8e('0x6'));router[_0xdd8e('0x7')]('/',auth['isAuthenticated'](),controller[_0xdd8e('0x8')]);router[_0xdd8e('0x7')](_0xdd8e('0x9'),auth[_0xdd8e('0xa')](),controller[_0xdd8e('0xb')]);router[_0xdd8e('0x7')](_0xdd8e('0xc'),auth[_0xdd8e('0xa')](),controller[_0xdd8e('0xd')]);router['get']('/:id/messages',auth[_0xdd8e('0xa')](),controller[_0xdd8e('0xe')]);router[_0xdd8e('0x7')]('/:id/download',auth[_0xdd8e('0xa')](),controller[_0xdd8e('0xf')]);router[_0xdd8e('0x10')]('/',auth[_0xdd8e('0xa')](),controller[_0xdd8e('0x11')]);router[_0xdd8e('0x10')](_0xdd8e('0x12'),auth['isAuthenticated'](),controller[_0xdd8e('0x13')]);router['post'](_0xdd8e('0x14'),auth['isAuthenticated'](),interaction[_0xdd8e('0x15')]('openchannel','openchannelinteraction:addtags'),controller[_0xdd8e('0x16')]);router['put'](_0xdd8e('0xc'),auth[_0xdd8e('0xa')](),interaction[_0xdd8e('0x15')](_0xdd8e('0x17'),_0xdd8e('0x18')),controller[_0xdd8e('0x19')]);router[_0xdd8e('0x1a')](_0xdd8e('0xc'),auth[_0xdd8e('0xa')](),interaction[_0xdd8e('0x15')]('openchannel',_0xdd8e('0x1b')),controller[_0xdd8e('0x1c')]);router[_0xdd8e('0x1a')](_0xdd8e('0x14'),auth[_0xdd8e('0xa')](),controller[_0xdd8e('0x1d')]);module[_0xdd8e('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1353=['exports','BOOLEAN','DATE','STRING','out','sequelize'];(function(_0x80f8fa,_0x19f911){var _0x572624=function(_0x19c6d1){while(--_0x19c6d1){_0x80f8fa['push'](_0x80f8fa['shift']());}};_0x572624(++_0x19f911);}(_0x1353,0xb3));var _0x3135=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x1353[_0x21a9d9];return _0x46adce;};'use strict';var Sequelize=require(_0x3135('0x0'));module[_0x3135('0x1')]={'closed':{'type':Sequelize[_0x3135('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x3135('0x3')]},'disposition':{'type':Sequelize[_0x3135('0x4')]},'secondDisposition':{'type':Sequelize[_0x3135('0x4')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x3135('0x4')]},'read1stAt':{'type':Sequelize[_0x3135('0x3')]},'threadId':{'type':Sequelize[_0x3135('0x4')]},'externalUrl':{'type':Sequelize[_0x3135('0x4')]},'lastMsgAt':{'type':Sequelize[_0x3135('0x3')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0x3135('0x5')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0x3135('0x4')]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xc978=['ENUM','out','sequelize','exports','BOOLEAN','DATE','STRING'];(function(_0x1f9179,_0x598964){var _0x2974c9=function(_0x52443b){while(--_0x52443b){_0x1f9179['push'](_0x1f9179['shift']());}};_0x2974c9(++_0x598964);}(_0xc978,0xcd));var _0x8c97=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xc978[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x8c97('0x0'));module[_0x8c97('0x1')]={'closed':{'type':Sequelize[_0x8c97('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x8c97('0x3')]},'disposition':{'type':Sequelize[_0x8c97('0x4')]},'secondDisposition':{'type':Sequelize[_0x8c97('0x4')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x8c97('0x4')]},'read1stAt':{'type':Sequelize[_0x8c97('0x3')]},'threadId':{'type':Sequelize[_0x8c97('0x4')]},'externalUrl':{'type':Sequelize[_0x8c97('0x4')]},'lastMsgAt':{'type':Sequelize[_0x8c97('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x8c97('0x5')]('in',_0x8c97('0x6')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize['STRING']},'autoreplyExecuted':{'type':Sequelize[_0x8c97('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x139c=['from','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','users','u.id\x20=\x20ui.UserId','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','it.OpenchannelInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','unreadMessages','having','`\x20>\x200','Contact','operator','value','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','find','ContactId','buildExpression','text','start','union','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','type','compact','isEmpty','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','$gte','parse','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','replace','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','sequelize','merge','OpenchannelInteraction','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','toString','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','show','params','include','options','catch','create','describe','addMessage','OpenchannelMessage','omit','ids','getMessages','findOne','nolimit','filter','format','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','setTags','spread','Tag','emit','openchannelInteractionTags:save','removeTags','unix','server','tmp','join','root','files','attachments','transcript-%d-%s.zip','User','CmContact','firstName','lastName','Attachment','Messages','direction','secret','OpenchannelAccount','Account','get','Openchannel','Owner','N.A.','closed','disposition','Private','existsSync','createReadStream','createWriteStream','basename','out','renderFile','.pdf','download','log','unlinkSync','eml-format','rimraf','request-promise','moment','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./openchannelInteraction.socket','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','map','fullname','TagIds','Tags','forEach','push','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','select','field','color'];(function(_0x351d95,_0x3f46b1){var _0x1a4215=function(_0x2453ef){while(--_0x2453ef){_0x351d95['push'](_0x351d95['shift']());}};_0x1a4215(++_0x3f46b1);}(_0x139c,0xa6));var _0xc139=function(_0x4dc7f0,_0x308df7){_0x4dc7f0=_0x4dc7f0-0x0;var _0x5dae36=_0x139c[_0x4dc7f0];return _0x5dae36;};'use strict';var emlformat=require(_0xc139('0x0'));var rimraf=require(_0xc139('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xc139('0x2'));var moment=require(_0xc139('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc139('0x4'));var path=require(_0xc139('0x5'));var sox=require(_0xc139('0x6'));var csv=require('to-csv');var ejs=require(_0xc139('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc139('0x8'));var squel=require(_0xc139('0x9'));var crypto=require(_0xc139('0xa'));var jsforce=require(_0xc139('0xb'));var deskjs=require(_0xc139('0xc'));var toCsv=require(_0xc139('0xd'));var querystring=require(_0xc139('0xe'));var Papa=require(_0xc139('0xf'));var Redis=require('ioredis');var authService=require(_0xc139('0x10'));var qs=require(_0xc139('0x11'));var as=require(_0xc139('0x12'));var pdf=require(_0xc139('0x13'));var hardwareService=require(_0xc139('0x14'));var logger=require(_0xc139('0x15'))(_0xc139('0x16'));var utils=require(_0xc139('0x17'));var config=require(_0xc139('0x18'));var licenseUtil=require(_0xc139('0x19'));var db=require(_0xc139('0x1a'))['db'];config[_0xc139('0x1b')]=_['defaults'](config[_0xc139('0x1b')],{'host':_0xc139('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc139('0x1b')]));require(_0xc139('0x1d'))['register'](socket);function respondWithStatusCode(_0x1b412e,_0x3120e9){_0x3120e9=_0x3120e9||0xcc;return function(_0x42c5d2){if(_0x42c5d2){return _0x1b412e[_0xc139('0x1e')](_0x3120e9);}return _0x1b412e[_0xc139('0x1f')](_0x3120e9)['end']();};}function respondWithResult(_0x4b01af,_0xfb40fe){_0xfb40fe=_0xfb40fe||0xc8;return function(_0x27c935){if(_0x27c935){return _0x4b01af[_0xc139('0x1f')](_0xfb40fe)[_0xc139('0x20')](_0x27c935);}};}function respondWithFilteredResult(_0x477e27,_0x5435c2){return function(_0x54dbf7){if(_0x54dbf7){var _0xdde36e=typeof _0x5435c2[_0xc139('0x21')]===_0xc139('0x22')&&typeof _0x5435c2[_0xc139('0x23')]==='undefined';var _0x11a0b6=_0x54dbf7[_0xc139('0x24')];var _0x1225f1=_0xdde36e?0x0:_0x5435c2[_0xc139('0x21')];var _0x4fbf2b=_0xdde36e?_0x54dbf7[_0xc139('0x24')]:_0x5435c2['offset']+_0x5435c2[_0xc139('0x23')];var _0x310c1a;if(_0x4fbf2b>=_0x11a0b6){_0x4fbf2b=_0x11a0b6;_0x310c1a=0xc8;}else{_0x310c1a=0xce;}_0x477e27[_0xc139('0x1f')](_0x310c1a);return _0x477e27['set'](_0xc139('0x25'),_0x1225f1+'-'+_0x4fbf2b+'/'+_0x11a0b6)[_0xc139('0x20')](_0x54dbf7);}return null;};}function patchUpdates(_0x229092){return function(_0x107df4){try{jsonpatch[_0xc139('0x26')](_0x107df4,_0x229092,!![]);}catch(_0x192df6){return BPromise[_0xc139('0x27')](_0x192df6);}return _0x107df4[_0xc139('0x28')]();};}function saveUpdates(_0x4fc198,_0x2ec17c){return function(_0x265def){if(_0x265def){return _0x265def[_0xc139('0x29')](_0x4fc198)[_0xc139('0x2a')](function(_0x2bee7a){return _0x2bee7a;});}return null;};}function removeEntity(_0x87cb90,_0x59f4ca){return function(_0x3c2f37){if(_0x3c2f37){return _0x3c2f37[_0xc139('0x2b')]()['then'](function(){_0x87cb90[_0xc139('0x1f')](0xcc)[_0xc139('0x2c')]();});}};}function handleEntityNotFound(_0x226d3c,_0x52a7e4){return function(_0x419d0c){if(!_0x419d0c){_0x226d3c[_0xc139('0x1e')](0x194);}return _0x419d0c;};}function handleError(_0x238aee,_0x4bb523){_0x4bb523=_0x4bb523||0x1f4;return function(_0x293744){logger[_0xc139('0x2d')](_0x293744[_0xc139('0x2e')]);if(_0x293744[_0xc139('0x2f')]){delete _0x293744[_0xc139('0x2f')];}_0x238aee[_0xc139('0x1f')](_0x4bb523)['send'](_0x293744);};}function getInteractionUsers(_0x3f7829,_0x58616a){return new BPromise(function(_0x3f581c,_0x5228d3){try{if(_0x58616a[_0x3f7829['id']]){_0x3f7829['Users']=_[_0xc139('0x30')](_0x58616a[_0x3f7829['id']],function(_0x73b23){return{'id':_0x73b23['id'],'fullname':_0x73b23[_0xc139('0x31')]};});}}catch(_0x6d5734){_0x5228d3(_0x6d5734);}_0x3f581c(_0x3f7829);});}function getInteractionTags(_0x4a5a7b,_0x3ed2e1){return new BPromise(function(_0x5e23e6,_0x38d084){try{if(_0x4a5a7b[_0xc139('0x32')]){_0x4a5a7b[_0xc139('0x33')]=[];_0x4a5a7b[_0xc139('0x32')]['split'](',')[_0xc139('0x34')](function(_0x268855){_0x4a5a7b[_0xc139('0x33')][_0xc139('0x35')](_0x3ed2e1[_0x268855]);});}delete _0x4a5a7b['TagIds'];}catch(_0x2cee40){_0x38d084(_0x2cee40);}_0x5e23e6(_0x4a5a7b);});}function updateOpenchannelInteraction(_0x157460,_0x2a9709,_0x28de90){return new BPromise(function(_0x291bf2,_0x362e56){return getInteractionUsers(_0x157460,_0x28de90)[_0xc139('0x2a')](function(_0x53620d){return getInteractionTags(_0x53620d,_0x2a9709);})[_0xc139('0x2a')](function(_0x10a6f8){_0x291bf2(_0x10a6f8);})['catch'](function(_0x24e642){_0x362e56(_0x24e642);});});}exports['index']=function(_0x4ba559,_0x3c01be){var _0x2a1cc4={},_0x2e4b82={},_0x1567d4={'count':0x0,'rows':[]};var _0x37b9dd=_[_0xc139('0x30')](db['OpenchannelInteraction'][_0xc139('0x36')],function(_0x3f7fb7){return{'name':_0x3f7fb7[_0xc139('0x37')],'type':_0x3f7fb7['type']['key']};});_0x2e4b82[_0xc139('0x38')]=_[_0xc139('0x30')](_0x37b9dd,_0xc139('0x2f'));_0x2e4b82[_0xc139('0x39')]=_[_0xc139('0x3a')](_0x4ba559[_0xc139('0x39')]);_0x2e4b82[_0xc139('0x3b')]=_[_0xc139('0x3c')](_0x2e4b82[_0xc139('0x38')],_0x2e4b82[_0xc139('0x39')]);_0x2a1cc4[_0xc139('0x3d')]=_['intersection'](_0x2e4b82[_0xc139('0x38')],qs[_0xc139('0x3e')](_0x4ba559['query'][_0xc139('0x3e')]));_0x2a1cc4[_0xc139('0x3d')]=_0x2a1cc4[_0xc139('0x3d')][_0xc139('0x3f')]?_0x2a1cc4[_0xc139('0x3d')]:_0x2e4b82[_0xc139('0x38')];if(!_0x4ba559[_0xc139('0x39')][_0xc139('0x40')]('nolimit')){_0x2a1cc4[_0xc139('0x23')]=qs[_0xc139('0x23')](_0x4ba559[_0xc139('0x39')][_0xc139('0x23')]);_0x2a1cc4['offset']=qs[_0xc139('0x21')](_0x4ba559[_0xc139('0x39')][_0xc139('0x21')]);}_0x2a1cc4['order']=qs[_0xc139('0x41')](_0x4ba559[_0xc139('0x39')]['sort']);_0x2a1cc4[_0xc139('0x42')]=qs[_0xc139('0x3b')](_[_0xc139('0x43')](_0x4ba559[_0xc139('0x39')],_0x2e4b82[_0xc139('0x3b')]),_0x37b9dd);var _0x10594c=[];var _0x1a3fca=squel[_0xc139('0x44')]()[_0xc139('0x45')]('id')[_0xc139('0x45')](_0xc139('0x2f'))[_0xc139('0x45')](_0xc139('0x46'))[_0xc139('0x47')]('tools_tags');var _0x5c6bb9=squel[_0xc139('0x44')]()[_0xc139('0x45')]('u.id')[_0xc139('0x45')](_0xc139('0x48'))[_0xc139('0x45')](_0xc139('0x49'))[_0xc139('0x47')](_0xc139('0x4a'),'ui')['left_join'](_0xc139('0x4b'),'u',_0xc139('0x4c'));var _0x36ff41=squel['select']()[_0xc139('0x47')]('openchannel_interactions','i')[_0xc139('0x4d')](_0xc139('0x4e'),'c',_0xc139('0x4f'))[_0xc139('0x4d')](_0xc139('0x4b'),'o','o.id\x20=\x20i.UserId')[_0xc139('0x4d')](_0xc139('0x50'),'a',_0xc139('0x51'))[_0xc139('0x4d')](_0xc139('0x52'),'me',_0xc139('0x53'))[_0xc139('0x4d')]('openchannel_interaction_has_tags','it',_0xc139('0x54'))[_0xc139('0x4d')](_0xc139('0x55'),'t',_0xc139('0x56'));var _0x54bd8a=squel[_0xc139('0x57')]();var _0x44304e=[];var _0x63f7d8=squel['expr']();var _0x16c039;if(_0x4ba559['query'][_0xc139('0x58')]){_0x16c039=as[_0xc139('0x59')](_0x4ba559[_0xc139('0x39')][_0xc139('0x58')]);var _0x11374b=_0x16c039[_0xc139('0x5a')];for(var _0x50b6ff=0x0;_0x50b6ff<_0x16c039['conditions'][_0xc139('0x3f')];_0x50b6ff++){var _0x120a33=_0x16c039[_0xc139('0x5b')][_0x50b6ff];var _0x30a554='i';var _0x1c6577=_['find'](_0x37b9dd,[_0xc139('0x2f'),_0x120a33['field']]);if(!_0x1c6577){switch(_0x120a33[_0xc139('0x45')]){case _0xc139('0x5c'):if(_0x120a33['value']==0x1){_0x36ff41[_0xc139('0x5d')]('`'+_0x120a33[_0xc139('0x45')]+'`\x20=\x200');}else{_0x36ff41['having']('`'+_0x120a33['field']+_0xc139('0x5e'));}break;case _0xc139('0x5f'):if(_0x120a33[_0xc139('0x60')]==='$substring'){if(_0x120a33[_0xc139('0x61')][_0xc139('0x62')]('\x20')[_0xc139('0x3f')]>0x1){_0x54bd8a[_0x11374b](_0xc139('0x63'),qs[_0xc139('0x64')](_0x120a33[_0xc139('0x61')]),null);}else{var _0x143dd3='%'+_0x120a33[_0xc139('0x61')]+'%';_0x54bd8a[_0x11374b](_0xc139('0x65'),_0x143dd3,_0x143dd3,_0x143dd3);}}else{_0x1c6577=_[_0xc139('0x66')](_0x37b9dd,[_0xc139('0x2f'),_0xc139('0x67')]);_0x120a33[_0xc139('0x45')]=_0xc139('0x67');_0x2e1011=as[_0xc139('0x68')](_0x30a554,_0x1c6577['type'],_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011['value'][_0xc139('0x6a')],_0x2e1011[_0xc139('0x61')][_0xc139('0x2c')]);}break;case'Tag':var _0x3ecbb1=_0x120a33[_0xc139('0x61')][_0xc139('0x62')](',')[_0xc139('0x30')](function(_0x2deb57){return Number(_0x2deb57);});_0x3ecbb1['forEach'](function(_0x39cec1){_0x63f7d8['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x39cec1+',%');});_0x44304e=_[_0xc139('0x6b')](_0x44304e,_0x3ecbb1);break;case'User':if(_0x120a33[_0xc139('0x60')]===_0xc139('0x6c')){_0x54bd8a[_0x11374b](_0xc139('0x6d'),'%'+_0x120a33[_0xc139('0x61')]+'%',null);}else{_0x1c6577=_[_0xc139('0x66')](_0x37b9dd,['name',_0xc139('0x6e')]);_0x120a33[_0xc139('0x45')]=_0xc139('0x6e');_0x2e1011=as[_0xc139('0x68')](_0x30a554,_0x1c6577['type'],_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011[_0xc139('0x61')][_0xc139('0x6a')],_0x2e1011[_0xc139('0x61')][_0xc139('0x2c')]);}break;case _0xc139('0x6f'):_0x2e1011=as[_0xc139('0x68')]('me',null,_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011[_0xc139('0x61')][_0xc139('0x6a')],_0x2e1011[_0xc139('0x61')][_0xc139('0x2c')]);break;}}else{var _0x2e1011=as[_0xc139('0x68')](_0x30a554,_0x1c6577[_0xc139('0x70')],_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011[_0xc139('0x61')][_0xc139('0x6a')],_0x2e1011['value'][_0xc139('0x2c')]);}}}else{var _0x2cacbf=_(_0x4ba559[_0xc139('0x39')])['keys']()['map'](function(_0x1cda97){return _['some'](_0x37b9dd,[_0xc139('0x2f'),_0x1cda97])?_0x1cda97:undefined;})[_0xc139('0x71')]()[_0xc139('0x61')]();if(!_[_0xc139('0x72')](_0x2cacbf)){_0x2cacbf[_0xc139('0x34')](function(_0x5a7a4e){if(_0x5a7a4e===_0xc139('0x73')){_0x36ff41[_0xc139('0x42')](_0xc139('0x74'),[][_0xc139('0x75')](_0x4ba559['query'][_0x5a7a4e]));}else if(_0x5a7a4e===_0xc139('0x76')){var _0xf3e75a=JSON['parse'](_0x4ba559[_0xc139('0x39')][_0x5a7a4e])[_0xc139('0x77')];var _0x5c7bf3=JSON[_0xc139('0x78')](_0x4ba559[_0xc139('0x39')][_0x5a7a4e])['$lte'];_0x36ff41[_0xc139('0x42')](_0xc139('0x79'),_0xf3e75a,_0x5c7bf3);}else{if(_0x4ba559[_0xc139('0x39')][_0x5a7a4e]===_0xc139('0x7a')){_0x36ff41[_0xc139('0x42')]('i.'+_0x5a7a4e+'\x20IS\x20NULL');}else{_0x36ff41[_0xc139('0x42')]('i.'+_0x5a7a4e+_0xc139('0x7b'),_0x4ba559[_0xc139('0x39')][_0x5a7a4e]);}}});}if(_0x4ba559[_0xc139('0x39')]['read']){if(_0x4ba559[_0xc139('0x39')][_0xc139('0x7c')]==0x1){_0x36ff41[_0xc139('0x5d')](_0xc139('0x7d'));}else{_0x36ff41[_0xc139('0x5d')]('`unreadMessages`\x20>\x200');}}if(_0x4ba559['query'][_0xc139('0x7e')]){_0x44304e=_[_0xc139('0x7f')](_0x4ba559['query'][_0xc139('0x7e')])?_0x4ba559[_0xc139('0x39')][_0xc139('0x7e')]:new Array(_0x4ba559[_0xc139('0x39')]['tag']);_0x44304e['forEach'](function(_0x4c0016){_0x63f7d8['or'](_0xc139('0x80'),'%,'+_0x4c0016+',%');});}if(_0x4ba559['query']['filter']){var _0x5dbfab=_0x4ba559['query']['filter'][_0xc139('0x81')]('\x5c','\x5c\x5c')[_0xc139('0x81')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x5dbfab)){_0x54bd8a['or'](_0xc139('0x82'),_0x5dbfab+'%');}else{_0x54bd8a['or'](_0xc139('0x83'),qs[_0xc139('0x64')](_0x5dbfab))['or'](_0xc139('0x84'),_0x5dbfab+'%')['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x5dbfab+'%');}}}_0x36ff41[_0xc139('0x42')](_0x54bd8a);_0x36ff41[_0xc139('0x85')](_0xc139('0x86'));var _0x35308a={'type':db['Sequelize'][_0xc139('0x87')][_0xc139('0x88')],'raw':!![]};var _0x566bd=_0x36ff41[_0xc139('0x89')]();_0x566bd[_0xc139('0x45')]('i.id');_0x566bd[_0xc139('0x45')](_0xc139('0x8a'),_0xc139('0x5c'));if(_0x2a1cc4[_0xc139('0x8b')]){_0x2a1cc4[_0xc139('0x8b')][_0xc139('0x34')](function(_0x3e9b22){var _0x4896bf=_0x3e9b22[0x0]===_0xc139('0x8c')?_0x3e9b22[0x0]:'i.'+_0x3e9b22[0x0];_0x36ff41[_0xc139('0x8b')](_0x4896bf,_0x3e9b22[0x1]===_0xc139('0x8d')?![]:!![]);});}if(!_[_0xc139('0x72')](_0x44304e)){_0x36ff41['having'](_0x63f7d8);_0x566bd['where']('t.id\x20IN\x20?',_0x44304e);}BPromise['resolve']()[_0xc139('0x2a')](function(){if(!_0x16c039){if(_0x4ba559[_0xc139('0x39')][_0xc139('0x73')])return;_0x566bd[_0xc139('0x42')](_0xc139('0x8e'));_0x36ff41[_0xc139('0x42')](_0xc139('0x8e'));return;}if(_0x4ba559[_0xc139('0x8f')][_0xc139('0x90')]!==_0xc139('0x91'))return;return _0x4ba559[_0xc139('0x8f')][_0xc139('0x92')]({'attributes':['id'],'raw':!![]})[_0xc139('0x2a')](function(_0x491a21){if(_[_0xc139('0x72')](_0x491a21)){_0x566bd[_0xc139('0x42')](_0xc139('0x93'));_0x36ff41[_0xc139('0x42')](_0xc139('0x93'));}else{_0x566bd[_0xc139('0x42')](_0xc139('0x74'),_[_0xc139('0x30')](_0x491a21,'id'));_0x36ff41[_0xc139('0x42')](_0xc139('0x74'),_[_0xc139('0x30')](_0x491a21,'id'));}});})[_0xc139('0x2a')](function(){if(_0x4ba559[_0xc139('0x8f')]['role']==='agent'&&!_0x16c039&&!_0x4ba559[_0xc139('0x39')][_0xc139('0x73')])return[];return db[_0xc139('0x94')]['query'](_0x566bd['toString'](),_0x35308a);})[_0xc139('0x2a')](function(_0x5adfda){_0x1567d4['count']=_0x5adfda['length'];if(_0x1567d4[_0xc139('0x24')]===0x0)return[];return db[_0xc139('0x94')][_0xc139('0x39')](_0x1a3fca['toString'](),_0x35308a)[_0xc139('0x2a')](function(_0x41863b){_0x10594c=_['keyBy'](_0x41863b,'id');_0x35308a=_[_0xc139('0x95')](_0x35308a,{'model':db[_0xc139('0x96')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4ba559['query'][_0xc139('0x3e')]){_0x2a1cc4[_0xc139('0x3d')]['forEach'](function(_0x896ae0){_0x36ff41[_0xc139('0x45')]('i.'+_0x896ae0);});}else{_0x36ff41[_0xc139('0x45')](_0xc139('0x8a'),_0xc139('0x5c'));_0x36ff41[_0xc139('0x45')](_0xc139('0x97'),_0xc139('0x98'));_0x36ff41['field'](_0xc139('0x99'),'Account.mandatoryDisposition');_0x36ff41[_0xc139('0x45')](_0xc139('0x9a'),_0xc139('0x8c'));_0x36ff41[_0xc139('0x45')](_0xc139('0x9b'));_0x36ff41[_0xc139('0x45')](_0xc139('0x9c'),_0xc139('0x9d'));_0x36ff41[_0xc139('0x45')](_0xc139('0x9e'),_0xc139('0x9f'));_0x36ff41['field'](_0xc139('0xa0'),_0xc139('0xa1'));_0x36ff41['field'](_0xc139('0xa2'),_0xc139('0xa3'));_0x36ff41[_0xc139('0x45')](_0xc139('0xa4'),_0xc139('0xa5'));_0x36ff41[_0xc139('0x45')](_0xc139('0xa6'),_0xc139('0xa7'));_0x36ff41[_0xc139('0x45')](_0xc139('0xa8'),'Owner.fullname');_0x36ff41[_0xc139('0x45')](_0xc139('0xa9'),_0xc139('0xaa'));_0x36ff41[_0xc139('0x45')](_0xc139('0xab'),_0xc139('0x32'));}if(_0x2a1cc4['limit'])_0x36ff41[_0xc139('0x23')](_0x2a1cc4[_0xc139('0x23')]);if(_0x2a1cc4[_0xc139('0x21')])_0x36ff41[_0xc139('0x21')](_0x2a1cc4[_0xc139('0x21')]);return db[_0xc139('0x94')]['query'](_0x36ff41[_0xc139('0xac')](),_0x35308a);})['then'](function(_0x46df53){if(_0x46df53[_0xc139('0x3f')]>0x0)_0x5c6bb9[_0xc139('0x42')](_0xc139('0xad'),_[_0xc139('0x30')](_0x46df53,'id'));return db['sequelize'][_0xc139('0x39')](_0x5c6bb9['toString'](),_0x35308a)['then'](function(_0x4362be){var _0x4e3523=_[_0xc139('0xae')](_0x4362be,_0xc139('0xaf'));var _0x5f4b2e=[];_0x46df53[_0xc139('0x34')](function(_0x2b58bf){_0x5f4b2e[_0xc139('0x35')](updateOpenchannelInteraction(_0x2b58bf,_0x10594c,_0x4e3523));});return BPromise[_0xc139('0xb0')](_0x5f4b2e);});});})[_0xc139('0x2a')](function(_0x493756){_0x1567d4['rows']=_0x493756;return _0x1567d4;})[_0xc139('0x2a')](respondWithFilteredResult(_0x3c01be,_0x2a1cc4))['catch'](handleError(_0x3c01be,null));};exports[_0xc139('0xb1')]=function(_0x4d1909,_0x4decb4){var _0x542318={};if(_0x4d1909[_0xc139('0x39')][_0xc139('0x70')]&&_0x4d1909[_0xc139('0x39')][_0xc139('0x70')]==='from'){_0x542318[_0xc139('0x47')]=_0x4d1909[_0xc139('0xb2')]['id'];}else{_0x542318['id']=_0x4d1909[_0xc139('0xb2')]['id'];}var _0x232638={'raw':![],'where':_0x542318},_0x5eb122={};_0x5eb122[_0xc139('0x38')]=_[_0xc139('0x3a')](db['OpenchannelInteraction']['rawAttributes']);_0x5eb122[_0xc139('0x39')]=_['keys'](_0x4d1909['query']);_0x5eb122[_0xc139('0x3b')]=_[_0xc139('0x3c')](_0x5eb122['model'],_0x5eb122[_0xc139('0x39')]);_0x232638[_0xc139('0x3d')]=_['intersection'](_0x5eb122[_0xc139('0x38')],qs[_0xc139('0x3e')](_0x4d1909[_0xc139('0x39')]['fields']));_0x232638[_0xc139('0x3d')]=_0x232638[_0xc139('0x3d')]['length']?_0x232638[_0xc139('0x3d')]:_0x5eb122[_0xc139('0x38')];if(_0x4d1909[_0xc139('0x39')]['includeAll']){_0x232638[_0xc139('0xb3')]=[{'all':!![]}];}_0x232638=_['merge']({},_0x232638,_0x4d1909[_0xc139('0xb4')]);return db[_0xc139('0x96')][_0xc139('0x66')](_0x232638)['then'](handleEntityNotFound(_0x4decb4,null))[_0xc139('0x2a')](respondWithResult(_0x4decb4,null))[_0xc139('0xb5')](handleError(_0x4decb4,null));};exports[_0xc139('0xb6')]=function(_0x3fef66,_0x53101f){return db[_0xc139('0x96')]['create'](_0x3fef66['body'],{})[_0xc139('0x2a')](respondWithResult(_0x53101f,0xc9))[_0xc139('0xb5')](handleError(_0x53101f,null));};exports[_0xc139('0x29')]=function(_0x12b694,_0x49068c){if(_0x12b694['body']['id']){delete _0x12b694[_0xc139('0x6f')]['id'];}return db['OpenchannelInteraction']['find']({'where':{'id':_0x12b694[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x49068c,null))[_0xc139('0x2a')](saveUpdates(_0x12b694[_0xc139('0x6f')],null))[_0xc139('0x2a')](respondWithResult(_0x49068c,null))[_0xc139('0xb5')](handleError(_0x49068c,null));};exports[_0xc139('0x2b')]=function(_0x1a4a5a,_0x1fcc10){return db[_0xc139('0x96')][_0xc139('0x66')]({'where':{'id':_0x1a4a5a[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x1fcc10,null))['then'](removeEntity(_0x1fcc10,null))[_0xc139('0xb5')](handleError(_0x1fcc10,null));};exports['describe']=function(_0x3c64c1,_0x40ae82){return db['OpenchannelInteraction'][_0xc139('0xb7')]()['then'](respondWithResult(_0x40ae82,null))[_0xc139('0xb5')](handleError(_0x40ae82,null));};exports[_0xc139('0xb8')]=function(_0x175823,_0x2db44d,_0x1c62bb){return db[_0xc139('0xb9')]['find']({'where':{'id':_0x175823[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x2db44d,null))['then'](function(_0x3605c1){if(_0x3605c1){return _0x3605c1[_0xc139('0xb8')](_0x175823[_0xc139('0x6f')]['ids'],_[_0xc139('0xba')](_0x175823[_0xc139('0x6f')],[_0xc139('0xbb'),'id'])||{});}})[_0xc139('0x2a')](respondWithResult(_0x2db44d,null))[_0xc139('0xb5')](handleError(_0x2db44d,null));};exports[_0xc139('0xbc')]=function(_0x12e5da,_0x38e241,_0x16b801){var _0x488ad7={'raw':![],'where':{}};var _0xe1ce74={};var _0x3f8ff7={'count':0x0,'rows':[]};return db[_0xc139('0x96')][_0xc139('0xbd')]({'where':{'id':_0x12e5da[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x38e241,null))[_0xc139('0x2a')](function(_0x3c370e){if(_0x3c370e){_0xe1ce74['model']=_[_0xc139('0x3a')](db[_0xc139('0xb9')][_0xc139('0x36')]);_0xe1ce74[_0xc139('0x39')]=_[_0xc139('0x3a')](_0x12e5da['query']);_0xe1ce74['filters']=_['intersection'](_0xe1ce74[_0xc139('0x38')],_0xe1ce74[_0xc139('0x39')]);_0x488ad7[_0xc139('0x3d')]=_[_0xc139('0x3c')](_0xe1ce74[_0xc139('0x38')],qs[_0xc139('0x3e')](_0x12e5da[_0xc139('0x39')][_0xc139('0x3e')]));_0x488ad7[_0xc139('0x3d')]=_0x488ad7[_0xc139('0x3d')][_0xc139('0x3f')]?_0x488ad7[_0xc139('0x3d')]:_0xe1ce74['model'];if(!_0x12e5da[_0xc139('0x39')]['hasOwnProperty'](_0xc139('0xbe'))){_0x488ad7['limit']=qs[_0xc139('0x23')](_0x12e5da[_0xc139('0x39')][_0xc139('0x23')]);_0x488ad7['offset']=qs[_0xc139('0x21')](_0x12e5da[_0xc139('0x39')]['offset']);}_0x488ad7['order']=qs[_0xc139('0x41')](_0x12e5da[_0xc139('0x39')]['sort']);_0x488ad7[_0xc139('0x42')]=qs[_0xc139('0x3b')](_[_0xc139('0x43')](_0x12e5da[_0xc139('0x39')],_0xe1ce74[_0xc139('0x3b')]));_0x488ad7[_0xc139('0x42')]['OpenchannelInteractionId']=_0x3c370e['id'];if(_0x12e5da[_0xc139('0x39')][_0xc139('0xbf')]){_0x488ad7[_0xc139('0x42')]=_[_0xc139('0x95')](_0x488ad7['where'],{'$or':_[_0xc139('0x30')](_0x488ad7['attributes'],function(_0x89e9c0){var _0x22f104={};_0x22f104[_0x89e9c0]={'$like':'%'+_0x12e5da[_0xc139('0x39')]['filter']+'%'};return _0x22f104;})});}if(_0x12e5da['query'][_0xc139('0x77')]){var _0x229dab=_0x12e5da[_0xc139('0x39')][_0xc139('0x77')]['split'](',');var _0x3f4406={};_0x3f4406[_0x229dab[0x0]]={'$gte':moment(_0x229dab[0x1])[_0xc139('0xc0')](_0xc139('0xc1'))};_0x488ad7[_0xc139('0x42')]=_[_0xc139('0x95')](_0x488ad7[_0xc139('0x42')],_0x3f4406);}_0x488ad7=_[_0xc139('0x95')]({},_0x488ad7,_0x12e5da[_0xc139('0xb4')]);return db[_0xc139('0xb9')]['count']({'where':_0x488ad7[_0xc139('0x42')]})[_0xc139('0x2a')](function(_0x48a84c){_0x3f8ff7[_0xc139('0x24')]=_0x48a84c;if(_0x12e5da['query']['includeAll']){_0x488ad7[_0xc139('0xb3')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0xc139('0xc2')](_0x488ad7);})[_0xc139('0x2a')](function(_0x1bf280){_0x3f8ff7[_0xc139('0xc3')]=_0x1bf280;return _0x3f8ff7;});}})[_0xc139('0x2a')](respondWithFilteredResult(_0x38e241,_0x488ad7))[_0xc139('0xb5')](handleError(_0x38e241,null));};exports['addTags']=function(_0x4b5e92,_0x3f9ddc,_0x21922a){return db[_0xc139('0x96')][_0xc139('0x66')]({'where':{'id':_0x4b5e92[_0xc139('0xb2')]['id']}})['then'](handleEntityNotFound(_0x3f9ddc,null))[_0xc139('0x2a')](function(_0x194756){if(_0x194756){return _0x194756[_0xc139('0xc4')](_0x4b5e92['body'][_0xc139('0xbb')],_[_0xc139('0xba')](_0x4b5e92['body'],['ids','id'])||{})[_0xc139('0xc5')](function(){return db[_0xc139('0xc6')][_0xc139('0xc2')]({'attributes':['id',_0xc139('0x2f'),_0xc139('0x46')],'where':{'id':_0x4b5e92['body'][_0xc139('0xbb')]}});})['then'](function(_0x51904a){socket[_0xc139('0xc7')](_0xc139('0xc8'),{'id':Number(_0x4b5e92[_0xc139('0xb2')]['id']),'tags':_0x51904a||[]});return{'id':Number(_0x4b5e92[_0xc139('0xb2')]['id']),'tags':_0x51904a||[]};});}})[_0xc139('0x2a')](respondWithResult(_0x3f9ddc,null))[_0xc139('0xb5')](handleError(_0x3f9ddc,null));};exports[_0xc139('0xc9')]=function(_0x53456e,_0xd6c506,_0x35d328){return db[_0xc139('0x96')][_0xc139('0x66')]({'where':{'id':_0x53456e[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0xd6c506,null))[_0xc139('0x2a')](function(_0x24fae8){if(_0x24fae8){return _0x24fae8[_0xc139('0xc9')](_0x53456e[_0xc139('0x39')][_0xc139('0xbb')]);}})[_0xc139('0x2a')](respondWithStatusCode(_0xd6c506,null))[_0xc139('0xb5')](handleError(_0xd6c506,null));};exports['download']=function(_0x573e42,_0x64d32e){var _0x2c3554=moment()[_0xc139('0xca')]()[_0xc139('0xac')]();var _0x4099ea=path['join'](config['root'],_0xc139('0xcb'),'files',_0xc139('0xcc'));var _0x4a65f3=path[_0xc139('0xcd')](config[_0xc139('0xce')],_0xc139('0xcb'),_0xc139('0xcf'),_0xc139('0xd0'));var _0x25b826=path[_0xc139('0xcd')](_0x4099ea,_0x2c3554);var _0x408756=util['format'](_0xc139('0xd1'),_0x573e42['params']['id'],_0x2c3554);var _0x2bbf1c=path[_0xc139('0xcd')](_0x4099ea,_0x408756);var _0x4a16ff=[];_0x4a16ff[_0xc139('0x35')]({'model':db[_0xc139('0xd2')],'as':_0xc139('0xd2'),'attributes':['id',_0xc139('0x31')],'raw':!![]});_0x4a16ff[_0xc139('0x35')]({'model':db[_0xc139('0xd3')],'as':_0xc139('0x5f'),'attributes':['id',_0xc139('0xd4'),_0xc139('0xd5')],'raw':!![]});if(_0x573e42['query'][_0xc139('0xd0')]){_0x4a16ff[_0xc139('0x35')]({'model':db[_0xc139('0xd6')],'as':'Attachment','raw':!![]});}var _0x58186e=[{'model':db[_0xc139('0xb9')],'as':_0xc139('0xd7'),'attributes':['id',_0xc139('0x6f'),'createdAt',_0xc139('0xd8'),_0xc139('0xd9'),_0xc139('0x7c')],'include':_0x4a16ff}];_0x58186e['push']({'model':db[_0xc139('0xda')],'as':_0xc139('0xdb'),'attributes':['id',_0xc139('0x2f')]});_0x58186e[_0xc139('0x35')]({'model':db[_0xc139('0xd2')],'as':'Owner','attributes':['id',_0xc139('0x31')]});return db[_0xc139('0x96')]['find']({'where':{'id':_0x573e42[_0xc139('0xb2')]['id']},'include':_0x58186e})[_0xc139('0x2a')](handleEntityNotFound(_0x64d32e,null))[_0xc139('0x2a')](function(_0x28187d){if(_0x28187d){var _0x975e90=_0x28187d[_0xc139('0xdc')]({'plain':!![]});fs['mkdirSync'](_0x25b826);var _0x326b5f={'channel':_0xc139('0xdd'),'account':_0x975e90[_0xc139('0xdb')]['name'],'agent':_0x975e90['Owner']?_0x975e90[_0xc139('0xde')]['fullname']:_0xc139('0xdf'),'createdAt':moment(_0x975e90['createdAt'])['format'](_0xc139('0xc1'))[_0xc139('0xac')](),'closedAt':_0x975e90[_0xc139('0xe0')]?moment(_0x975e90['closedAt'])[_0xc139('0xc0')]('YYYY-MM-DD\x20HH:mm:ss')[_0xc139('0xac')]():'','disposition':_0x975e90[_0xc139('0xe1')],'visibility':_0x975e90['threadId']?'Public':_0xc139('0xe2'),'messages':_(_0x975e90[_0xc139('0xd7')])[_0xc139('0xbf')]({'secret':![]})[_0xc139('0x30')](function(_0x3cf607){if(_0x3cf607[_0xc139('0xd6')]){var _0x9ac9dd=path[_0xc139('0xcd')](_0x4a65f3,_0x3cf607[_0xc139('0xd6')]['basename']);if(fs[_0xc139('0xe3')](_0x9ac9dd)){fs[_0xc139('0xe4')](_0x9ac9dd)['pipe'](fs[_0xc139('0xe5')](path[_0xc139('0xcd')](_0x25b826,_0x3cf607[_0xc139('0xd6')][_0xc139('0xe6')])));}}return{'date':moment(_0x3cf607['createdAt'])[_0xc139('0xc0')](_0xc139('0xc1'))['toString'](),'sender':_0x3cf607[_0xc139('0xd8')]===_0xc139('0xe7')?_0x3cf607['User']?_0x3cf607['User']['fullname']:'System':_0x3cf607[_0xc139('0x5f')]['firstName']+(_0x3cf607[_0xc139('0x5f')][_0xc139('0xd5')]?'\x20'+_0x3cf607[_0xc139('0x5f')][_0xc139('0xd5')]:''),'body':_0x3cf607[_0xc139('0xd6')]?_0x3cf607[_0xc139('0xd6')][_0xc139('0xe6')]:_0x3cf607[_0xc139('0x6f')],'direction':_0x3cf607[_0xc139('0xd8')]===_0xc139('0xe7')?'A':'C','secret':_0x3cf607[_0xc139('0xd9')],'read':_0x3cf607[_0xc139('0x7c')],'attachment':_0x3cf607[_0xc139('0xd6')]};})[_0xc139('0x61')]()};return ejs[_0xc139('0xe8')](path[_0xc139('0xcd')](config[_0xc139('0xce')],_0xc139('0xcb'),'views','downloadInteraction.ejs'),{'interaction':_0x326b5f})['then'](function(_0x237564){var _0x4e121e=path['join'](_0x25b826,'transcript-'+_0x975e90['id']+'-'+_0x2c3554+_0xc139('0xe9'));var _0xf70fe9={'path':_0x4e121e,'channel':_0xc139('0xdd'),'interactionId':_0x975e90['id']};return pdf['createPdfFromHTML'](_0x237564,_0xf70fe9);})[_0xc139('0x2a')](function(){return new BPromise(function(_0x2d6e1e,_0x5471b5){zipdir(_0x25b826,{'saveTo':_0x2bbf1c},function(_0x16a6f3,_0x52e833){if(_0x16a6f3)return _0x5471b5(_0x16a6f3);return _0x2d6e1e(_0x52e833);});})[_0xc139('0x2a')](function(){return new BPromise(function(_0x5dbeb6,_0x17643e){rimraf(_0x25b826,function(_0x42755c){if(_0x42755c)_0x17643e(_0x42755c);return _0x5dbeb6();});});})[_0xc139('0x2a')](function(){return _0x64d32e[_0xc139('0xea')](_0x2bbf1c,_0x408756,function(_0x21bddd){if(_0x21bddd){console[_0xc139('0xeb')]('err',_0x21bddd);}else{fs[_0xc139('0xec')](_0x2bbf1c);}});});});}else{return _0x64d32e[_0xc139('0x1e')](0xc8);}})[_0xc139('0xb5')](handleError(_0x64d32e,null));};
\ No newline at end of file
+var _0xa9fd=['SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','role','user','i.OpenchannelAccountId\x20IS\x20NULL','agent','toString','sequelize','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','Contact.email','Contact.phone','c.mobile','Contact.mobile','Contact.fax','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','push','all','show','params','filters','include','create','update','describe','addMessage','OpenchannelMessage','ids','findOne','format','YYYY-MM-DD\x20HH:mm:ss','options','includeAll','findAll','rows','addTags','setTags','omit','spread','emit','openchannelInteractionTags:save','removeTags','unix','join','root','server','tmp','files','attachments','transcript-%d-%s.zip','User','CmContact','firstName','Attachment','Messages','secret','OpenchannelAccount','get','Account','Owner','N.A.','disposition','threadId','Public','Private','existsSync','createReadStream','pipe','createWriteStream','basename','direction','out','System','Contact','lastName','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','Openchannel','createPdfFromHTML','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./openchannelInteraction.socket','register','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','apply','save','then','destroy','error','stack','name','Users','fullname','Tags','TagIds','split','forEach','catch','index','OpenchannelInteraction','rawAttributes','fieldName','type','key','model','map','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','field','color','from','tools_tags','u.id','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','users','select','openchannel_interactions','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','openchannel_accounts','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','t.id\x20=\x20it.TagId','expr','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','operator','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','body','start','keys','some','compact','isEmpty','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','read','`unreadMessages`\x20=\x200','tag','filter','replace','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes'];(function(_0x5623da,_0x5e8067){var _0x1f413e=function(_0x26a487){while(--_0x26a487){_0x5623da['push'](_0x5623da['shift']());}};_0x1f413e(++_0x5e8067);}(_0xa9fd,0x64));var _0xda9f=function(_0x564036,_0x3facd1){_0x564036=_0x564036-0x0;var _0x599b23=_0xa9fd[_0x564036];return _0x599b23;};'use strict';var emlformat=require(_0xda9f('0x0'));var rimraf=require(_0xda9f('0x1'));var zipdir=require(_0xda9f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xda9f('0x3'));var moment=require(_0xda9f('0x4'));var BPromise=require(_0xda9f('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xda9f('0x6'));var sox=require(_0xda9f('0x7'));var csv=require(_0xda9f('0x8'));var ejs=require(_0xda9f('0x9'));var fs=require('fs');var fs_extra=require(_0xda9f('0xa'));var _=require(_0xda9f('0xb'));var squel=require(_0xda9f('0xc'));var crypto=require(_0xda9f('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xda9f('0xe'));var toCsv=require(_0xda9f('0x8'));var querystring=require(_0xda9f('0xf'));var Papa=require(_0xda9f('0x10'));var Redis=require(_0xda9f('0x11'));var authService=require(_0xda9f('0x12'));var qs=require(_0xda9f('0x13'));var as=require(_0xda9f('0x14'));var pdf=require(_0xda9f('0x15'));var hardwareService=require(_0xda9f('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0xda9f('0x17'));var config=require(_0xda9f('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xda9f('0x19'))['db'];config[_0xda9f('0x1a')]=_[_0xda9f('0x1b')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xda9f('0x1c'))(new Redis(config['redis']));require(_0xda9f('0x1d'))[_0xda9f('0x1e')](socket);function respondWithStatusCode(_0x1c1482,_0x525994){_0x525994=_0x525994||0xcc;return function(_0x300e30){if(_0x300e30){return _0x1c1482[_0xda9f('0x1f')](_0x525994);}return _0x1c1482[_0xda9f('0x20')](_0x525994)[_0xda9f('0x21')]();};}function respondWithResult(_0x2c5bbb,_0x1d23b5){_0x1d23b5=_0x1d23b5||0xc8;return function(_0x1b0895){if(_0x1b0895){return _0x2c5bbb[_0xda9f('0x20')](_0x1d23b5)['json'](_0x1b0895);}};}function respondWithFilteredResult(_0x10bfd5,_0x7c4f5d){return function(_0x2e232b){if(_0x2e232b){var _0x84c96c=typeof _0x7c4f5d['offset']===_0xda9f('0x22')&&typeof _0x7c4f5d[_0xda9f('0x23')]==='undefined';var _0x5725cd=_0x2e232b[_0xda9f('0x24')];var _0x13e1a7=_0x84c96c?0x0:_0x7c4f5d['offset'];var _0x3f5bbf=_0x84c96c?_0x2e232b[_0xda9f('0x24')]:_0x7c4f5d[_0xda9f('0x25')]+_0x7c4f5d[_0xda9f('0x23')];var _0x31ee93;if(_0x3f5bbf>=_0x5725cd){_0x3f5bbf=_0x5725cd;_0x31ee93=0xc8;}else{_0x31ee93=0xce;}_0x10bfd5[_0xda9f('0x20')](_0x31ee93);return _0x10bfd5[_0xda9f('0x26')](_0xda9f('0x27'),_0x13e1a7+'-'+_0x3f5bbf+'/'+_0x5725cd)['json'](_0x2e232b);}return null;};}function patchUpdates(_0xa6958a){return function(_0xe6107e){try{jsonpatch[_0xda9f('0x28')](_0xe6107e,_0xa6958a,!![]);}catch(_0x11e511){return BPromise['reject'](_0x11e511);}return _0xe6107e[_0xda9f('0x29')]();};}function saveUpdates(_0x2a7f06,_0x51a978){return function(_0x3436ac){if(_0x3436ac){return _0x3436ac['update'](_0x2a7f06)[_0xda9f('0x2a')](function(_0x48997c){return _0x48997c;});}return null;};}function removeEntity(_0x4a545c,_0x2221e7){return function(_0x17a9bd){if(_0x17a9bd){return _0x17a9bd[_0xda9f('0x2b')]()[_0xda9f('0x2a')](function(){_0x4a545c[_0xda9f('0x20')](0xcc)[_0xda9f('0x21')]();});}};}function handleEntityNotFound(_0x388d08,_0x4e3d14){return function(_0x41001e){if(!_0x41001e){_0x388d08[_0xda9f('0x1f')](0x194);}return _0x41001e;};}function handleError(_0x1ad78e,_0xc13e5a){_0xc13e5a=_0xc13e5a||0x1f4;return function(_0x26f6b6){logger[_0xda9f('0x2c')](_0x26f6b6[_0xda9f('0x2d')]);if(_0x26f6b6[_0xda9f('0x2e')]){delete _0x26f6b6[_0xda9f('0x2e')];}_0x1ad78e[_0xda9f('0x20')](_0xc13e5a)['send'](_0x26f6b6);};}function getInteractionUsers(_0x30f787,_0x7d1956){return new BPromise(function(_0x3c0729,_0x243ebc){try{if(_0x7d1956[_0x30f787['id']]){_0x30f787[_0xda9f('0x2f')]=_['map'](_0x7d1956[_0x30f787['id']],function(_0x59d1be){return{'id':_0x59d1be['id'],'fullname':_0x59d1be[_0xda9f('0x30')]};});}}catch(_0x42041b){_0x243ebc(_0x42041b);}_0x3c0729(_0x30f787);});}function getInteractionTags(_0x554d4e,_0x10f6b0){return new BPromise(function(_0x3b93b8,_0x5dffc2){try{if(_0x554d4e['TagIds']){_0x554d4e[_0xda9f('0x31')]=[];_0x554d4e[_0xda9f('0x32')][_0xda9f('0x33')](',')[_0xda9f('0x34')](function(_0x5ed448){_0x554d4e['Tags']['push'](_0x10f6b0[_0x5ed448]);});}delete _0x554d4e['TagIds'];}catch(_0x3fbbf2){_0x5dffc2(_0x3fbbf2);}_0x3b93b8(_0x554d4e);});}function updateOpenchannelInteraction(_0x13d24a,_0x11d15f,_0x4f05f4){return new BPromise(function(_0x212a7c,_0xc48ee7){return getInteractionUsers(_0x13d24a,_0x4f05f4)[_0xda9f('0x2a')](function(_0x29af21){return getInteractionTags(_0x29af21,_0x11d15f);})[_0xda9f('0x2a')](function(_0xbc2680){_0x212a7c(_0xbc2680);})[_0xda9f('0x35')](function(_0x1be8cc){_0xc48ee7(_0x1be8cc);});});}exports[_0xda9f('0x36')]=function(_0x210e5a,_0x2b6c24){var _0x1427ff={},_0x4e4bca={},_0x262292={'count':0x0,'rows':[]};var _0x2ef269=_['map'](db[_0xda9f('0x37')][_0xda9f('0x38')],function(_0xdc6d2){return{'name':_0xdc6d2[_0xda9f('0x39')],'type':_0xdc6d2[_0xda9f('0x3a')][_0xda9f('0x3b')]};});_0x4e4bca[_0xda9f('0x3c')]=_[_0xda9f('0x3d')](_0x2ef269,_0xda9f('0x2e'));_0x4e4bca[_0xda9f('0x3e')]=_['keys'](_0x210e5a[_0xda9f('0x3e')]);_0x4e4bca['filters']=_['intersection'](_0x4e4bca[_0xda9f('0x3c')],_0x4e4bca['query']);_0x1427ff[_0xda9f('0x3f')]=_[_0xda9f('0x40')](_0x4e4bca[_0xda9f('0x3c')],qs[_0xda9f('0x41')](_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x41')]));_0x1427ff[_0xda9f('0x3f')]=_0x1427ff[_0xda9f('0x3f')][_0xda9f('0x42')]?_0x1427ff[_0xda9f('0x3f')]:_0x4e4bca[_0xda9f('0x3c')];if(!_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x43')](_0xda9f('0x44'))){_0x1427ff[_0xda9f('0x23')]=qs['limit'](_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x23')]);_0x1427ff[_0xda9f('0x25')]=qs[_0xda9f('0x25')](_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x25')]);}_0x1427ff[_0xda9f('0x45')]=qs[_0xda9f('0x46')](_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x46')]);_0x1427ff[_0xda9f('0x47')]=qs['filters'](_[_0xda9f('0x48')](_0x210e5a['query'],_0x4e4bca['filters']),_0x2ef269);var _0x14bb74=[];var _0x44b062=squel['select']()[_0xda9f('0x49')]('id')['field'](_0xda9f('0x2e'))[_0xda9f('0x49')](_0xda9f('0x4a'))[_0xda9f('0x4b')](_0xda9f('0x4c'));var _0x1ab99f=squel['select']()['field'](_0xda9f('0x4d'))[_0xda9f('0x49')](_0xda9f('0x4e'))[_0xda9f('0x49')](_0xda9f('0x4f'))['from'](_0xda9f('0x50'),'ui')['left_join'](_0xda9f('0x51'),'u','u.id\x20=\x20ui.UserId');var _0x235a91=squel[_0xda9f('0x52')]()[_0xda9f('0x4b')](_0xda9f('0x53'),'i')[_0xda9f('0x54')](_0xda9f('0x55'),'c',_0xda9f('0x56'))[_0xda9f('0x54')]('users','o','o.id\x20=\x20i.UserId')[_0xda9f('0x54')](_0xda9f('0x57'),'a','a.id\x20=\x20i.OpenchannelAccountId')['left_join'](_0xda9f('0x58'),'me',_0xda9f('0x59'))[_0xda9f('0x54')](_0xda9f('0x5a'),'it','it.OpenchannelInteractionId\x20=\x20i.id')[_0xda9f('0x54')]('tools_tags','t',_0xda9f('0x5b'));var _0x14adfc=squel[_0xda9f('0x5c')]();var _0x1f1899=[];var _0x564ab2=squel[_0xda9f('0x5c')]();var _0x452868;if(_0x210e5a[_0xda9f('0x3e')]['search']){_0x452868=as[_0xda9f('0x5d')](_0x210e5a[_0xda9f('0x3e')]['search']);var _0x2d60a3=_0x452868[_0xda9f('0x5e')];for(var _0x5ee7e4=0x0;_0x5ee7e4<_0x452868[_0xda9f('0x5f')][_0xda9f('0x42')];_0x5ee7e4++){var _0x3f1a31=_0x452868[_0xda9f('0x5f')][_0x5ee7e4];var _0x3c5716='i';var _0x276ce3=_[_0xda9f('0x60')](_0x2ef269,[_0xda9f('0x2e'),_0x3f1a31[_0xda9f('0x49')]]);if(!_0x276ce3){switch(_0x3f1a31[_0xda9f('0x49')]){case _0xda9f('0x61'):if(_0x3f1a31[_0xda9f('0x62')]==0x1){_0x235a91[_0xda9f('0x63')]('`'+_0x3f1a31[_0xda9f('0x49')]+_0xda9f('0x64'));}else{_0x235a91[_0xda9f('0x63')]('`'+_0x3f1a31[_0xda9f('0x49')]+'`\x20>\x200');}break;case'Contact':if(_0x3f1a31[_0xda9f('0x65')]===_0xda9f('0x66')){if(_0x3f1a31[_0xda9f('0x62')][_0xda9f('0x33')]('\x20')[_0xda9f('0x42')]>0x1){_0x14adfc[_0x2d60a3]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xda9f('0x67')](_0x3f1a31['value']),null);}else{var _0x5d999f='%'+_0x3f1a31[_0xda9f('0x62')]+'%';_0x14adfc[_0x2d60a3](_0xda9f('0x68'),_0x5d999f,_0x5d999f,_0x5d999f);}}else{_0x276ce3=_[_0xda9f('0x60')](_0x2ef269,[_0xda9f('0x2e'),_0xda9f('0x69')]);_0x3f1a31[_0xda9f('0x49')]='ContactId';_0x22a40a=as['buildExpression'](_0x3c5716,_0x276ce3[_0xda9f('0x3a')],_0x3f1a31);_0x14adfc[_0x2d60a3](_0x22a40a[_0xda9f('0x6a')],_0x22a40a['value']['start'],_0x22a40a['value'][_0xda9f('0x21')]);}break;case _0xda9f('0x6b'):var _0x4e3064=_0x3f1a31[_0xda9f('0x62')][_0xda9f('0x33')](',')[_0xda9f('0x3d')](function(_0x468c5b){return Number(_0x468c5b);});_0x4e3064['forEach'](function(_0x590fbe){_0x564ab2['or'](_0xda9f('0x6c'),'%,'+_0x590fbe+',%');});_0x1f1899=_[_0xda9f('0x6d')](_0x1f1899,_0x4e3064);break;case'User':if(_0x3f1a31['operator']===_0xda9f('0x66')){_0x14adfc[_0x2d60a3](_0xda9f('0x6e'),'%'+_0x3f1a31[_0xda9f('0x62')]+'%',null);}else{_0x276ce3=_[_0xda9f('0x60')](_0x2ef269,[_0xda9f('0x2e'),_0xda9f('0x6f')]);_0x3f1a31['field']=_0xda9f('0x6f');_0x22a40a=as[_0xda9f('0x70')](_0x3c5716,_0x276ce3[_0xda9f('0x3a')],_0x3f1a31);_0x14adfc[_0x2d60a3](_0x22a40a[_0xda9f('0x6a')],_0x22a40a['value']['start'],_0x22a40a[_0xda9f('0x62')][_0xda9f('0x21')]);}break;case _0xda9f('0x71'):_0x22a40a=as[_0xda9f('0x70')]('me',null,_0x3f1a31);_0x14adfc[_0x2d60a3](_0x22a40a[_0xda9f('0x6a')],_0x22a40a[_0xda9f('0x62')][_0xda9f('0x72')],_0x22a40a[_0xda9f('0x62')][_0xda9f('0x21')]);break;}}else{var _0x22a40a=as[_0xda9f('0x70')](_0x3c5716,_0x276ce3[_0xda9f('0x3a')],_0x3f1a31);_0x14adfc[_0x2d60a3](_0x22a40a[_0xda9f('0x6a')],_0x22a40a['value'][_0xda9f('0x72')],_0x22a40a[_0xda9f('0x62')][_0xda9f('0x21')]);}}}else{var _0x181dad=_(_0x210e5a[_0xda9f('0x3e')])[_0xda9f('0x73')]()[_0xda9f('0x3d')](function(_0x100286){return _[_0xda9f('0x74')](_0x2ef269,[_0xda9f('0x2e'),_0x100286])?_0x100286:undefined;})[_0xda9f('0x75')]()[_0xda9f('0x62')]();if(!_[_0xda9f('0x76')](_0x181dad)){_0x181dad['forEach'](function(_0x15f35a){if(_0x15f35a===_0xda9f('0x77')){_0x235a91['where'](_0xda9f('0x78'),[]['concat'](_0x210e5a['query'][_0x15f35a]));}else if(_0x15f35a===_0xda9f('0x79')){var _0x2082f0=JSON[_0xda9f('0x7a')](_0x210e5a[_0xda9f('0x3e')][_0x15f35a])[_0xda9f('0x7b')];var _0x2ae17b=JSON[_0xda9f('0x7a')](_0x210e5a[_0xda9f('0x3e')][_0x15f35a])['$lte'];_0x235a91[_0xda9f('0x47')](_0xda9f('0x7c'),_0x2082f0,_0x2ae17b);}else{if(_0x210e5a[_0xda9f('0x3e')][_0x15f35a]===_0xda9f('0x7d')){_0x235a91[_0xda9f('0x47')]('i.'+_0x15f35a+'\x20IS\x20NULL');}else{_0x235a91[_0xda9f('0x47')]('i.'+_0x15f35a+'\x20=\x20?',_0x210e5a[_0xda9f('0x3e')][_0x15f35a]);}}});}if(_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x7e')]){if(_0x210e5a[_0xda9f('0x3e')]['read']==0x1){_0x235a91[_0xda9f('0x63')](_0xda9f('0x7f'));}else{_0x235a91[_0xda9f('0x63')]('`unreadMessages`\x20>\x200');}}if(_0x210e5a['query'][_0xda9f('0x80')]){_0x1f1899=_['isArray'](_0x210e5a['query'][_0xda9f('0x80')])?_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x80')]:new Array(_0x210e5a['query'][_0xda9f('0x80')]);_0x1f1899['forEach'](function(_0x1e7417){_0x564ab2['or'](_0xda9f('0x6c'),'%,'+_0x1e7417+',%');});}if(_0x210e5a[_0xda9f('0x3e')]['filter']){var _0x1b57cf=_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x81')][_0xda9f('0x82')]('\x5c','\x5c\x5c')[_0xda9f('0x82')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x1b57cf)){_0x14adfc['or']('i.id\x20LIKE\x20?',_0x1b57cf+'%');}else{_0x14adfc['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x1b57cf))['or'](_0xda9f('0x83'),_0x1b57cf+'%')['or'](_0xda9f('0x84'),_0x1b57cf+'%');}}}_0x235a91[_0xda9f('0x47')](_0x14adfc);_0x235a91[_0xda9f('0x85')](_0xda9f('0x86'));var _0x3969ce={'type':db[_0xda9f('0x87')][_0xda9f('0x88')][_0xda9f('0x89')],'raw':!![]};var _0x30c9c9=_0x235a91[_0xda9f('0x8a')]();_0x30c9c9['field'](_0xda9f('0x86'));_0x30c9c9[_0xda9f('0x49')](_0xda9f('0x8b'),'unreadMessages');if(_0x1427ff[_0xda9f('0x45')]){_0x1427ff[_0xda9f('0x45')][_0xda9f('0x34')](function(_0x4925c3){var _0x113a8e=_0x4925c3[0x0]===_0xda9f('0x8c')?_0x4925c3[0x0]:'i.'+_0x4925c3[0x0];_0x235a91[_0xda9f('0x45')](_0x113a8e,_0x4925c3[0x1]==='DESC'?![]:!![]);});}if(!_[_0xda9f('0x76')](_0x1f1899)){_0x235a91[_0xda9f('0x63')](_0x564ab2);_0x30c9c9[_0xda9f('0x47')](_0xda9f('0x8d'),_0x1f1899);}BPromise[_0xda9f('0x8e')]()[_0xda9f('0x2a')](function(){if(!_0x452868){if(_0x210e5a['query'][_0xda9f('0x77')])return;_0x30c9c9[_0xda9f('0x47')](_0xda9f('0x8f'));_0x235a91['where'](_0xda9f('0x8f'));return;}if(_0x210e5a['user'][_0xda9f('0x90')]!=='agent')return;return _0x210e5a[_0xda9f('0x91')]['getOpenchannelAccounts']({'attributes':['id'],'raw':!![]})['then'](function(_0x4e5c10){if(_[_0xda9f('0x76')](_0x4e5c10)){_0x30c9c9[_0xda9f('0x47')](_0xda9f('0x92'));_0x235a91['where']('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x30c9c9[_0xda9f('0x47')](_0xda9f('0x78'),_['map'](_0x4e5c10,'id'));_0x235a91['where'](_0xda9f('0x78'),_[_0xda9f('0x3d')](_0x4e5c10,'id'));}});})[_0xda9f('0x2a')](function(){if(_0x210e5a['user'][_0xda9f('0x90')]===_0xda9f('0x93')&&!_0x452868&&!_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x77')])return[];return db['sequelize'][_0xda9f('0x3e')](_0x30c9c9[_0xda9f('0x94')](),_0x3969ce);})[_0xda9f('0x2a')](function(_0x4c3453){_0x262292['count']=_0x4c3453[_0xda9f('0x42')];if(_0x262292[_0xda9f('0x24')]===0x0)return[];return db[_0xda9f('0x95')][_0xda9f('0x3e')](_0x44b062[_0xda9f('0x94')](),_0x3969ce)[_0xda9f('0x2a')](function(_0x2573b8){_0x14bb74=_[_0xda9f('0x96')](_0x2573b8,'id');_0x3969ce=_[_0xda9f('0x97')](_0x3969ce,{'model':db[_0xda9f('0x37')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x210e5a[_0xda9f('0x3e')][_0xda9f('0x41')]){_0x1427ff[_0xda9f('0x3f')][_0xda9f('0x34')](function(_0x452273){_0x235a91[_0xda9f('0x49')]('i.'+_0x452273);});}else{_0x235a91[_0xda9f('0x49')](_0xda9f('0x8b'),_0xda9f('0x61'));_0x235a91['field'](_0xda9f('0x98'),_0xda9f('0x99'));_0x235a91[_0xda9f('0x49')](_0xda9f('0x9a'),_0xda9f('0x9b'));_0x235a91[_0xda9f('0x49')](_0xda9f('0x9c'),'contactName');_0x235a91[_0xda9f('0x49')](_0xda9f('0x9d'));_0x235a91[_0xda9f('0x49')](_0xda9f('0x9e'),_0xda9f('0x9f'));_0x235a91['field']('c.lastName','Contact.lastName');_0x235a91[_0xda9f('0x49')]('c.email',_0xda9f('0xa0'));_0x235a91['field']('c.phone',_0xda9f('0xa1'));_0x235a91['field'](_0xda9f('0xa2'),_0xda9f('0xa3'));_0x235a91['field']('c.fax',_0xda9f('0xa4'));_0x235a91[_0xda9f('0x49')]('o.fullname',_0xda9f('0xa5'));_0x235a91[_0xda9f('0x49')]('o.internal',_0xda9f('0xa6'));_0x235a91[_0xda9f('0x49')](_0xda9f('0xa7'),_0xda9f('0x32'));}if(_0x1427ff['limit'])_0x235a91[_0xda9f('0x23')](_0x1427ff[_0xda9f('0x23')]);if(_0x1427ff[_0xda9f('0x25')])_0x235a91[_0xda9f('0x25')](_0x1427ff['offset']);return db[_0xda9f('0x95')]['query'](_0x235a91[_0xda9f('0x94')](),_0x3969ce);})[_0xda9f('0x2a')](function(_0x471ae0){if(_0x471ae0[_0xda9f('0x42')]>0x0)_0x1ab99f[_0xda9f('0x47')](_0xda9f('0xa8'),_[_0xda9f('0x3d')](_0x471ae0,'id'));return db['sequelize'][_0xda9f('0x3e')](_0x1ab99f[_0xda9f('0x94')](),_0x3969ce)[_0xda9f('0x2a')](function(_0x1a6bdf){var _0x7010ab=_[_0xda9f('0xa9')](_0x1a6bdf,_0xda9f('0xaa'));var _0x54234e=[];_0x471ae0[_0xda9f('0x34')](function(_0x1f4c51){_0x54234e[_0xda9f('0xab')](updateOpenchannelInteraction(_0x1f4c51,_0x14bb74,_0x7010ab));});return BPromise[_0xda9f('0xac')](_0x54234e);});});})[_0xda9f('0x2a')](function(_0x4684ec){_0x262292['rows']=_0x4684ec;return _0x262292;})[_0xda9f('0x2a')](respondWithFilteredResult(_0x2b6c24,_0x1427ff))['catch'](handleError(_0x2b6c24,null));};exports[_0xda9f('0xad')]=function(_0x41ccde,_0x59bd4c){var _0x1e1c5c={};if(_0x41ccde[_0xda9f('0x3e')][_0xda9f('0x3a')]&&_0x41ccde[_0xda9f('0x3e')]['type']===_0xda9f('0x4b')){_0x1e1c5c[_0xda9f('0x4b')]=_0x41ccde[_0xda9f('0xae')]['id'];}else{_0x1e1c5c['id']=_0x41ccde['params']['id'];}var _0x2a739a={'raw':![],'where':_0x1e1c5c},_0x462960={};_0x462960[_0xda9f('0x3c')]=_[_0xda9f('0x73')](db[_0xda9f('0x37')]['rawAttributes']);_0x462960[_0xda9f('0x3e')]=_[_0xda9f('0x73')](_0x41ccde[_0xda9f('0x3e')]);_0x462960[_0xda9f('0xaf')]=_['intersection'](_0x462960[_0xda9f('0x3c')],_0x462960[_0xda9f('0x3e')]);_0x2a739a[_0xda9f('0x3f')]=_[_0xda9f('0x40')](_0x462960[_0xda9f('0x3c')],qs[_0xda9f('0x41')](_0x41ccde[_0xda9f('0x3e')][_0xda9f('0x41')]));_0x2a739a[_0xda9f('0x3f')]=_0x2a739a[_0xda9f('0x3f')][_0xda9f('0x42')]?_0x2a739a[_0xda9f('0x3f')]:_0x462960[_0xda9f('0x3c')];if(_0x41ccde[_0xda9f('0x3e')]['includeAll']){_0x2a739a[_0xda9f('0xb0')]=[{'all':!![]}];}_0x2a739a=_[_0xda9f('0x97')]({},_0x2a739a,_0x41ccde['options']);return db['OpenchannelInteraction']['find'](_0x2a739a)[_0xda9f('0x2a')](handleEntityNotFound(_0x59bd4c,null))[_0xda9f('0x2a')](respondWithResult(_0x59bd4c,null))['catch'](handleError(_0x59bd4c,null));};exports[_0xda9f('0xb1')]=function(_0x5f482b,_0x4026fe){return db['OpenchannelInteraction'][_0xda9f('0xb1')](_0x5f482b[_0xda9f('0x71')],{})['then'](respondWithResult(_0x4026fe,0xc9))['catch'](handleError(_0x4026fe,null));};exports[_0xda9f('0xb2')]=function(_0x154b70,_0x3c6385){if(_0x154b70[_0xda9f('0x71')]['id']){delete _0x154b70[_0xda9f('0x71')]['id'];}return db['OpenchannelInteraction'][_0xda9f('0x60')]({'where':{'id':_0x154b70[_0xda9f('0xae')]['id']}})[_0xda9f('0x2a')](handleEntityNotFound(_0x3c6385,null))[_0xda9f('0x2a')](saveUpdates(_0x154b70[_0xda9f('0x71')],null))[_0xda9f('0x2a')](respondWithResult(_0x3c6385,null))[_0xda9f('0x35')](handleError(_0x3c6385,null));};exports['destroy']=function(_0xfdb593,_0x1d8df9){return db['OpenchannelInteraction'][_0xda9f('0x60')]({'where':{'id':_0xfdb593[_0xda9f('0xae')]['id']}})[_0xda9f('0x2a')](handleEntityNotFound(_0x1d8df9,null))['then'](removeEntity(_0x1d8df9,null))[_0xda9f('0x35')](handleError(_0x1d8df9,null));};exports[_0xda9f('0xb3')]=function(_0x3f72a5,_0x5384f5){return db[_0xda9f('0x37')]['describe']()[_0xda9f('0x2a')](respondWithResult(_0x5384f5,null))[_0xda9f('0x35')](handleError(_0x5384f5,null));};exports[_0xda9f('0xb4')]=function(_0x356eca,_0x251e6a,_0x3706c5){return db[_0xda9f('0xb5')][_0xda9f('0x60')]({'where':{'id':_0x356eca[_0xda9f('0xae')]['id']}})[_0xda9f('0x2a')](handleEntityNotFound(_0x251e6a,null))['then'](function(_0x11382a){if(_0x11382a){return _0x11382a[_0xda9f('0xb4')](_0x356eca[_0xda9f('0x71')][_0xda9f('0xb6')],_['omit'](_0x356eca[_0xda9f('0x71')],[_0xda9f('0xb6'),'id'])||{});}})['then'](respondWithResult(_0x251e6a,null))[_0xda9f('0x35')](handleError(_0x251e6a,null));};exports['getMessages']=function(_0x43054f,_0xcacdad,_0x22b6ef){var _0x2b1528={'raw':![],'where':{}};var _0x1cf295={};var _0x123e62={'count':0x0,'rows':[]};return db['OpenchannelInteraction'][_0xda9f('0xb7')]({'where':{'id':_0x43054f['params']['id']}})[_0xda9f('0x2a')](handleEntityNotFound(_0xcacdad,null))['then'](function(_0x27d51d){if(_0x27d51d){_0x1cf295[_0xda9f('0x3c')]=_[_0xda9f('0x73')](db[_0xda9f('0xb5')][_0xda9f('0x38')]);_0x1cf295[_0xda9f('0x3e')]=_[_0xda9f('0x73')](_0x43054f[_0xda9f('0x3e')]);_0x1cf295[_0xda9f('0xaf')]=_[_0xda9f('0x40')](_0x1cf295[_0xda9f('0x3c')],_0x1cf295[_0xda9f('0x3e')]);_0x2b1528[_0xda9f('0x3f')]=_[_0xda9f('0x40')](_0x1cf295['model'],qs[_0xda9f('0x41')](_0x43054f['query'][_0xda9f('0x41')]));_0x2b1528[_0xda9f('0x3f')]=_0x2b1528[_0xda9f('0x3f')][_0xda9f('0x42')]?_0x2b1528[_0xda9f('0x3f')]:_0x1cf295[_0xda9f('0x3c')];if(!_0x43054f[_0xda9f('0x3e')]['hasOwnProperty'](_0xda9f('0x44'))){_0x2b1528[_0xda9f('0x23')]=qs[_0xda9f('0x23')](_0x43054f[_0xda9f('0x3e')]['limit']);_0x2b1528[_0xda9f('0x25')]=qs[_0xda9f('0x25')](_0x43054f[_0xda9f('0x3e')][_0xda9f('0x25')]);}_0x2b1528['order']=qs[_0xda9f('0x46')](_0x43054f['query'][_0xda9f('0x46')]);_0x2b1528[_0xda9f('0x47')]=qs['filters'](_[_0xda9f('0x48')](_0x43054f[_0xda9f('0x3e')],_0x1cf295['filters']));_0x2b1528[_0xda9f('0x47')][_0xda9f('0xaa')]=_0x27d51d['id'];if(_0x43054f[_0xda9f('0x3e')][_0xda9f('0x81')]){_0x2b1528[_0xda9f('0x47')]=_[_0xda9f('0x97')](_0x2b1528[_0xda9f('0x47')],{'$or':_[_0xda9f('0x3d')](_0x2b1528[_0xda9f('0x3f')],function(_0x50497f){var _0x3b4c4b={};_0x3b4c4b[_0x50497f]={'$like':'%'+_0x43054f['query'][_0xda9f('0x81')]+'%'};return _0x3b4c4b;})});}if(_0x43054f[_0xda9f('0x3e')][_0xda9f('0x7b')]){var _0x151f10=_0x43054f[_0xda9f('0x3e')][_0xda9f('0x7b')][_0xda9f('0x33')](',');var _0x18e397={};_0x18e397[_0x151f10[0x0]]={'$gte':moment(_0x151f10[0x1])[_0xda9f('0xb8')](_0xda9f('0xb9'))};_0x2b1528['where']=_['merge'](_0x2b1528[_0xda9f('0x47')],_0x18e397);}_0x2b1528=_[_0xda9f('0x97')]({},_0x2b1528,_0x43054f[_0xda9f('0xba')]);return db['OpenchannelMessage']['count']({'where':_0x2b1528[_0xda9f('0x47')]})[_0xda9f('0x2a')](function(_0x5d59e9){_0x123e62[_0xda9f('0x24')]=_0x5d59e9;if(_0x43054f['query'][_0xda9f('0xbb')]){_0x2b1528[_0xda9f('0xb0')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0xda9f('0xbc')](_0x2b1528);})['then'](function(_0x14b38c){_0x123e62[_0xda9f('0xbd')]=_0x14b38c;return _0x123e62;});}})[_0xda9f('0x2a')](respondWithFilteredResult(_0xcacdad,_0x2b1528))[_0xda9f('0x35')](handleError(_0xcacdad,null));};exports[_0xda9f('0xbe')]=function(_0x543dca,_0x1005e8,_0x26d135){return db[_0xda9f('0x37')]['find']({'where':{'id':_0x543dca['params']['id']}})[_0xda9f('0x2a')](handleEntityNotFound(_0x1005e8,null))[_0xda9f('0x2a')](function(_0x410f98){if(_0x410f98){return _0x410f98[_0xda9f('0xbf')](_0x543dca[_0xda9f('0x71')]['ids'],_[_0xda9f('0xc0')](_0x543dca['body'],['ids','id'])||{})[_0xda9f('0xc1')](function(){return db[_0xda9f('0x6b')]['findAll']({'attributes':['id',_0xda9f('0x2e'),'color'],'where':{'id':_0x543dca[_0xda9f('0x71')][_0xda9f('0xb6')]}});})['then'](function(_0x294e41){socket[_0xda9f('0xc2')](_0xda9f('0xc3'),{'id':Number(_0x543dca['params']['id']),'tags':_0x294e41||[]});return{'id':Number(_0x543dca['params']['id']),'tags':_0x294e41||[]};});}})[_0xda9f('0x2a')](respondWithResult(_0x1005e8,null))['catch'](handleError(_0x1005e8,null));};exports[_0xda9f('0xc4')]=function(_0x2a92a7,_0x559367,_0x3dd763){return db['OpenchannelInteraction']['find']({'where':{'id':_0x2a92a7[_0xda9f('0xae')]['id']}})[_0xda9f('0x2a')](handleEntityNotFound(_0x559367,null))['then'](function(_0x1bff14){if(_0x1bff14){return _0x1bff14[_0xda9f('0xc4')](_0x2a92a7[_0xda9f('0x3e')][_0xda9f('0xb6')]);}})[_0xda9f('0x2a')](respondWithStatusCode(_0x559367,null))[_0xda9f('0x35')](handleError(_0x559367,null));};exports['download']=function(_0x4ffdfe,_0x49b500){var _0x483b3c=moment()[_0xda9f('0xc5')]()[_0xda9f('0x94')]();var _0x170502=path[_0xda9f('0xc6')](config[_0xda9f('0xc7')],_0xda9f('0xc8'),'files',_0xda9f('0xc9'));var _0x2efd2a=path['join'](config['root'],_0xda9f('0xc8'),_0xda9f('0xca'),_0xda9f('0xcb'));var _0x2d8608=path[_0xda9f('0xc6')](_0x170502,_0x483b3c);var _0x16f639=util[_0xda9f('0xb8')](_0xda9f('0xcc'),_0x4ffdfe[_0xda9f('0xae')]['id'],_0x483b3c);var _0x54d483=path['join'](_0x170502,_0x16f639);var _0x26641e=[];_0x26641e[_0xda9f('0xab')]({'model':db[_0xda9f('0xcd')],'as':_0xda9f('0xcd'),'attributes':['id',_0xda9f('0x30')],'raw':!![]});_0x26641e[_0xda9f('0xab')]({'model':db[_0xda9f('0xce')],'as':'Contact','attributes':['id',_0xda9f('0xcf'),'lastName'],'raw':!![]});if(_0x4ffdfe['query'][_0xda9f('0xcb')]){_0x26641e[_0xda9f('0xab')]({'model':db['Attachment'],'as':_0xda9f('0xd0'),'raw':!![]});}var _0x52c805=[{'model':db[_0xda9f('0xb5')],'as':_0xda9f('0xd1'),'attributes':['id',_0xda9f('0x71'),_0xda9f('0x79'),'direction',_0xda9f('0xd2'),_0xda9f('0x7e')],'include':_0x26641e}];_0x52c805[_0xda9f('0xab')]({'model':db[_0xda9f('0xd3')],'as':'Account','attributes':['id','name']});_0x52c805['push']({'model':db['User'],'as':'Owner','attributes':['id',_0xda9f('0x30')]});return db[_0xda9f('0x37')][_0xda9f('0x60')]({'where':{'id':_0x4ffdfe[_0xda9f('0xae')]['id']},'include':_0x52c805})[_0xda9f('0x2a')](handleEntityNotFound(_0x49b500,null))['then'](function(_0x6c454d){if(_0x6c454d){var _0xc80ecc=_0x6c454d[_0xda9f('0xd4')]({'plain':!![]});fs['mkdirSync'](_0x2d8608);var _0x870f24={'channel':'Openchannel','account':_0xc80ecc[_0xda9f('0xd5')][_0xda9f('0x2e')],'agent':_0xc80ecc[_0xda9f('0xd6')]?_0xc80ecc['Owner'][_0xda9f('0x30')]:_0xda9f('0xd7'),'createdAt':moment(_0xc80ecc[_0xda9f('0x79')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xda9f('0x94')](),'closedAt':_0xc80ecc['closed']?moment(_0xc80ecc['closedAt'])[_0xda9f('0xb8')](_0xda9f('0xb9'))['toString']():'','disposition':_0xc80ecc[_0xda9f('0xd8')],'visibility':_0xc80ecc[_0xda9f('0xd9')]?_0xda9f('0xda'):_0xda9f('0xdb'),'messages':_(_0xc80ecc['Messages'])[_0xda9f('0x81')]({'secret':![]})['map'](function(_0x5dec54){if(_0x5dec54[_0xda9f('0xd0')]){var _0x1f3f0c=path[_0xda9f('0xc6')](_0x2efd2a,_0x5dec54[_0xda9f('0xd0')]['basename']);if(fs[_0xda9f('0xdc')](_0x1f3f0c)){fs[_0xda9f('0xdd')](_0x1f3f0c)[_0xda9f('0xde')](fs[_0xda9f('0xdf')](path[_0xda9f('0xc6')](_0x2d8608,_0x5dec54['Attachment'][_0xda9f('0xe0')])));}}return{'date':moment(_0x5dec54[_0xda9f('0x79')])[_0xda9f('0xb8')](_0xda9f('0xb9'))[_0xda9f('0x94')](),'sender':_0x5dec54[_0xda9f('0xe1')]===_0xda9f('0xe2')?_0x5dec54[_0xda9f('0xcd')]?_0x5dec54['User']['fullname']:_0xda9f('0xe3'):_0x5dec54['Contact']['firstName']+(_0x5dec54[_0xda9f('0xe4')][_0xda9f('0xe5')]?'\x20'+_0x5dec54[_0xda9f('0xe4')][_0xda9f('0xe5')]:''),'body':_0x5dec54[_0xda9f('0xd0')]?_0x5dec54[_0xda9f('0xd0')][_0xda9f('0xe0')]:_0x5dec54['body'],'direction':_0x5dec54[_0xda9f('0xe1')]===_0xda9f('0xe2')?'A':'C','secret':_0x5dec54['secret'],'read':_0x5dec54[_0xda9f('0x7e')],'attachment':_0x5dec54[_0xda9f('0xd0')]};})[_0xda9f('0x62')]()};return ejs[_0xda9f('0xe6')](path['join'](config[_0xda9f('0xc7')],_0xda9f('0xc8'),_0xda9f('0xe7'),_0xda9f('0xe8')),{'interaction':_0x870f24})['then'](function(_0x134425){var _0x442ba5=path[_0xda9f('0xc6')](_0x2d8608,_0xda9f('0xe9')+_0xc80ecc['id']+'-'+_0x483b3c+_0xda9f('0xea'));var _0x497c03={'path':_0x442ba5,'channel':_0xda9f('0xeb'),'interactionId':_0xc80ecc['id']};return pdf[_0xda9f('0xec')](_0x134425,_0x497c03);})['then'](function(){return new BPromise(function(_0x90bd32,_0x2848e1){zipdir(_0x2d8608,{'saveTo':_0x54d483},function(_0x5c6fd5,_0x19140d){if(_0x5c6fd5)return _0x2848e1(_0x5c6fd5);return _0x90bd32(_0x19140d);});})['then'](function(){return new BPromise(function(_0x2bf63f,_0x58a068){rimraf(_0x2d8608,function(_0x1ad866){if(_0x1ad866)_0x58a068(_0x1ad866);return _0x2bf63f();});});})['then'](function(){return _0x49b500['download'](_0x54d483,_0x16f639,function(_0x1898b0){if(_0x1898b0){console['log']('err',_0x1898b0);}else{fs['unlinkSync'](_0x54d483);}});});});}else{return _0x49b500[_0xda9f('0x1f')](0xc8);}})[_0xda9f('0x35')](handleError(_0x49b500,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf04=['events','../../mysqldb','OpenchannelMessage','setMaxListeners','save','update','remove','getUsers','then','setDataValue','map','unreadMessages','length','emit','catch','hasOwnProperty','hook'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xaf04,0x187));var _0x4af0=function(_0x36bdda,_0x10e4ff){_0x36bdda=_0x36bdda-0x0;var _0x2347f8=_0xaf04[_0x36bdda];return _0x2347f8;};'use strict';var EventEmitter=require(_0x4af0('0x0'));var OpenchannelInteraction=require('../../mysqldb')['db']['OpenchannelInteraction'];var OpenchannelMessage=require(_0x4af0('0x1'))['db'][_0x4af0('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x4af0('0x3')](0x0);var events={'afterCreate':_0x4af0('0x4'),'afterUpdate':_0x4af0('0x5'),'afterDestroy':_0x4af0('0x6')};function emitEvent(_0x30dc2b){return function(_0x126764,_0x3d6896,_0x34ce35){_0x126764[_0x4af0('0x7')]({'attributes':['id'],'raw':!![]})[_0x4af0('0x8')](function(_0x15d8d4){_0x126764[_0x4af0('0x9')]('Users',_0x15d8d4[_0x4af0('0xa')](function(_0x2af8bd){return{'id':_0x2af8bd['id']};}));return OpenchannelMessage['findAll']({'where':{'OpenchannelInteractionId':_0x126764['id'],'direction':'in','read':![]},'raw':!![]});})[_0x4af0('0x8')](function(_0x9aead){_0x126764[_0x4af0('0x9')](_0x4af0('0xb'),_0x9aead[_0x4af0('0xc')]);OpenchannelInteractionEvents['emit'](_0x30dc2b+':'+_0x126764['id'],_0x126764);OpenchannelInteractionEvents[_0x4af0('0xd')](_0x30dc2b,_0x126764);_0x34ce35(null);})[_0x4af0('0xe')](_0x34ce35(null));};}for(var e in events){if(events[_0x4af0('0xf')](e)){var event=events[e];OpenchannelInteraction[_0x4af0('0x10')](e,emitEvent(event));}}module['exports']=OpenchannelInteractionEvents;
\ No newline at end of file
+var _0x651e=['setMaxListeners','save','update','getUsers','then','setDataValue','Users','findAll','unreadMessages','emit','catch','hasOwnProperty','exports','events','../../mysqldb','OpenchannelInteraction'];(function(_0x36199a,_0x4f756c){var _0x5b36f1=function(_0x29480d){while(--_0x29480d){_0x36199a['push'](_0x36199a['shift']());}};_0x5b36f1(++_0x4f756c);}(_0x651e,0x15d));var _0xe651=function(_0x384337,_0x1fdebf){_0x384337=_0x384337-0x0;var _0x2270a8=_0x651e[_0x384337];return _0x2270a8;};'use strict';var EventEmitter=require(_0xe651('0x0'));var OpenchannelInteraction=require(_0xe651('0x1'))['db'][_0xe651('0x2')];var OpenchannelMessage=require('../../mysqldb')['db']['OpenchannelMessage'];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0xe651('0x3')](0x0);var events={'afterCreate':_0xe651('0x4'),'afterUpdate':_0xe651('0x5'),'afterDestroy':'remove'};function emitEvent(_0x2bd51a){return function(_0x447883,_0x73557,_0x1dee10){_0x447883[_0xe651('0x6')]({'attributes':['id'],'raw':!![]})[_0xe651('0x7')](function(_0x4ea37f){_0x447883[_0xe651('0x8')](_0xe651('0x9'),_0x4ea37f['map'](function(_0x179d14){return{'id':_0x179d14['id']};}));return OpenchannelMessage[_0xe651('0xa')]({'where':{'OpenchannelInteractionId':_0x447883['id'],'direction':'in','read':![]},'raw':!![]});})[_0xe651('0x7')](function(_0x52c279){_0x447883['setDataValue'](_0xe651('0xb'),_0x52c279['length']);OpenchannelInteractionEvents[_0xe651('0xc')](_0x2bd51a+':'+_0x447883['id'],_0x447883);OpenchannelInteractionEvents[_0xe651('0xc')](_0x2bd51a,_0x447883);_0x1dee10(null);})[_0xe651('0xd')](_0x1dee10(null));};}for(var e in events){if(events[_0xe651('0xe')](e)){var event=events[e];OpenchannelInteraction['hook'](e,emitEvent(event));}}module[_0xe651('0xf')]=OpenchannelInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadfd=['../../config/environment','./openchannelInteraction.attributes','exports','define','OpenchannelInteraction','utf8mb4','utf8mb4_unicode_ci','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','rimraf'];(function(_0x22206a,_0x427496){var _0x38c2b3=function(_0x98a71a){while(--_0x98a71a){_0x22206a['push'](_0x22206a['shift']());}};_0x38c2b3(++_0x427496);}(_0xadfd,0xf0));var _0xdadf=function(_0x306a33,_0x1d8b8d){_0x306a33=_0x306a33-0x0;var _0x1220fa=_0xadfd[_0x306a33];return _0x1220fa;};'use strict';var _=require(_0xdadf('0x0'));var util=require(_0xdadf('0x1'));var logger=require(_0xdadf('0x2'))(_0xdadf('0x3'));var moment=require(_0xdadf('0x4'));var BPromise=require(_0xdadf('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xdadf('0x6'));var config=require(_0xdadf('0x7'));var attributes=require(_0xdadf('0x8'));module[_0xdadf('0x9')]=function(_0x7b4ca6,_0x5e4a1e){return _0x7b4ca6[_0xdadf('0xa')](_0xdadf('0xb'),attributes,{'tableName':'openchannel_interactions','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xdadf('0xc'),'collate':_0xdadf('0xd'),'hooks':{'beforeUpdate':function(_0x15ed63,_0x402d3,_0x229c56){if(_0x15ed63[_0xdadf('0xe')](_0xdadf('0xf'))){_0x15ed63[_0xdadf('0x10')]=moment()[_0xdadf('0x11')](_0xdadf('0x12'));}_0x229c56(null,_0x15ed63);}}});};
\ No newline at end of file
+var _0x8168=['moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','OpenchannelInteraction','openchannel_interactions','utf8mb4','utf8mb4_unicode_ci','closedAt','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api'];(function(_0x568f24,_0x227193){var _0x45fb6c=function(_0x1259e2){while(--_0x1259e2){_0x568f24['push'](_0x568f24['shift']());}};_0x45fb6c(++_0x227193);}(_0x8168,0x8c));var _0x8816=function(_0x1d1d09,_0x504d77){_0x1d1d09=_0x1d1d09-0x0;var _0x8827e=_0x8168[_0x1d1d09];return _0x8827e;};'use strict';var _=require(_0x8816('0x0'));var util=require(_0x8816('0x1'));var logger=require(_0x8816('0x2'))(_0x8816('0x3'));var moment=require(_0x8816('0x4'));var BPromise=require(_0x8816('0x5'));var rp=require(_0x8816('0x6'));var fs=require('fs');var path=require(_0x8816('0x7'));var rimraf=require(_0x8816('0x8'));var config=require(_0x8816('0x9'));var attributes=require('./openchannelInteraction.attributes');module[_0x8816('0xa')]=function(_0x3e0814,_0x33d3d0){return _0x3e0814[_0x8816('0xb')](_0x8816('0xc'),attributes,{'tableName':_0x8816('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x8816('0xe'),'collate':_0x8816('0xf'),'hooks':{'beforeUpdate':function(_0xafafd8,_0x1cf509,_0x533cd2){if(_0xafafd8['changed']('closed')){_0xafafd8[_0x8816('0x10')]=moment()['format'](_0x8816('0x11'));}_0x533cd2(null,_0xafafd8);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc233=['redis','localhost','socket.io-emitter','register','request','then','info','OpenchannelInteraction,\x20%s,\x20%s','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','UpdateOpenchannelInteraction','OpenchannelInteraction','body','options','raw','where','attributes','limit','AddTagsToOpenchannelInteraction','find','addTags','ids','omit','spread','AddTags','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x325451,_0x40e8dc){var _0x16eb16=function(_0xb6a195){while(--_0xb6a195){_0x325451['push'](_0x325451['shift']());}};_0x16eb16(++_0x40e8dc);}(_0xc233,0xbe));var _0x3c23=function(_0x1e3671,_0x9ae4fc){_0x1e3671=_0x1e3671-0x0;var _0x48d5f5=_0xc233[_0x1e3671];return _0x48d5f5;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3c23('0x0'));var BPromise=require(_0x3c23('0x1'));var rs=require(_0x3c23('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3c23('0x3'))['db'];var utils=require(_0x3c23('0x4'));var logger=require(_0x3c23('0x5'))(_0x3c23('0x6'));var config=require('../../config/environment');var jayson=require(_0x3c23('0x7'));var client=jayson[_0x3c23('0x8')][_0x3c23('0x9')]({'port':0x232a});config[_0x3c23('0xa')]=_['defaults'](config[_0x3c23('0xa')],{'host':_0x3c23('0xb'),'port':0x18eb});var socket=require(_0x3c23('0xc'))(new Redis(config['redis']));require('./openchannelInteraction.socket')[_0x3c23('0xd')](socket);function respondWithRpcPromise(_0x429858,_0x2534eb,_0x99d82a){return new BPromise(function(_0xa9037b,_0x6199cb){return client[_0x3c23('0xe')](_0x429858,_0x99d82a)[_0x3c23('0xf')](function(_0x115f1c){logger[_0x3c23('0x10')](_0x3c23('0x11'),_0x2534eb,_0x3c23('0x12'));logger[_0x3c23('0x13')](_0x3c23('0x14'),_0x2534eb,_0x3c23('0x12'),JSON[_0x3c23('0x15')](_0x115f1c));if(_0x115f1c['error']){if(_0x115f1c[_0x3c23('0x16')]['code']===0x1f4){logger[_0x3c23('0x16')](_0x3c23('0x11'),_0x2534eb,_0x115f1c[_0x3c23('0x16')][_0x3c23('0x17')]);return _0x6199cb(_0x115f1c[_0x3c23('0x16')][_0x3c23('0x17')]);}logger['error']('OpenchannelInteraction,\x20%s,\x20%s',_0x2534eb,_0x115f1c[_0x3c23('0x16')]['message']);return _0xa9037b(_0x115f1c['error'][_0x3c23('0x17')]);}else{logger[_0x3c23('0x10')]('OpenchannelInteraction,\x20%s,\x20%s',_0x2534eb,'request\x20sent');_0xa9037b(_0x115f1c[_0x3c23('0x18')]['message']);}})['catch'](function(_0x18ca0c){logger['error']('OpenchannelInteraction,\x20%s,\x20%s',_0x2534eb,_0x18ca0c);_0x6199cb(_0x18ca0c);});});}exports[_0x3c23('0x19')]=function(_0x3efede){var _0x516325=this;return new Promise(function(_0x3c5724,_0x5c842a){return db[_0x3c23('0x1a')]['update'](_0x3efede[_0x3c23('0x1b')],{'raw':_0x3efede[_0x3c23('0x1c')]?_0x3efede['options'][_0x3c23('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3efede[_0x3c23('0x1c')]?_0x3efede[_0x3c23('0x1c')][_0x3c23('0x1e')]||null:null,'attributes':_0x3efede[_0x3c23('0x1c')]?_0x3efede['options'][_0x3c23('0x1f')]||null:null,'limit':_0x3efede['options']?_0x3efede[_0x3c23('0x1c')][_0x3c23('0x20')]||null:null})[_0x3c23('0xf')](function(_0x4d41a6){logger[_0x3c23('0x10')]('UpdateOpenchannelInteraction',_0x3efede);logger[_0x3c23('0x13')](_0x3c23('0x19'),_0x3efede,JSON[_0x3c23('0x15')](_0x4d41a6));_0x3c5724(_0x4d41a6);})['catch'](function(_0xddd566){logger[_0x3c23('0x16')](_0x3c23('0x19'),_0xddd566[_0x3c23('0x17')],_0x3efede);_0x5c842a(_0x516325[_0x3c23('0x16')](0x1f4,_0xddd566[_0x3c23('0x17')]));});});};exports[_0x3c23('0x21')]=function(_0x5f5a5b){return new Promise(function(_0x46574c,_0x1a3181){return db[_0x3c23('0x1a')][_0x3c23('0x22')]({'where':_0x5f5a5b[_0x3c23('0x1c')]?_0x5f5a5b[_0x3c23('0x1c')][_0x3c23('0x1e')]||null:null})['then'](function(_0x27043e){if(_0x27043e){return _0x27043e[_0x3c23('0x23')](_0x5f5a5b[_0x3c23('0x1b')][_0x3c23('0x24')],_[_0x3c23('0x25')](_0x5f5a5b[_0x3c23('0x1b')],[_0x3c23('0x24'),'id'])||{});}})[_0x3c23('0x26')](function(_0x5f3739){logger['info'](_0x3c23('0x27'),_0x5f5a5b);logger[_0x3c23('0x13')](_0x3c23('0x27'),_0x5f5a5b,JSON[_0x3c23('0x15')](_0x5f3739));_0x46574c(_0x5f3739);})['catch'](function(_0x213035){logger['error'](_0x3c23('0x27'),_0x213035[_0x3c23('0x17')],_0x5f5a5b);_0x1a3181(_this[_0x3c23('0x16')](0x1f4,_0x213035[_0x3c23('0x17')]));});});};
\ No newline at end of file
+var _0xc893=['result','UpdateOpenchannelInteraction','OpenchannelInteraction','update','body','options','raw','where','attributes','limit','stringify','catch','find','addTags','ids','omit','spread','AddTags','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','http','redis','socket.io-emitter','./openchannelInteraction.socket','register','request','then','info','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','error','code','message','OpenchannelInteraction,\x20%s,\x20%s'];(function(_0x123719,_0x21206e){var _0x15f7a1=function(_0x599350){while(--_0x599350){_0x123719['push'](_0x123719['shift']());}};_0x15f7a1(++_0x21206e);}(_0xc893,0x138));var _0x3c89=function(_0x843f68,_0x5ee20a){_0x843f68=_0x843f68-0x0;var _0x22ea58=_0xc893[_0x843f68];return _0x22ea58;};'use strict';var _=require(_0x3c89('0x0'));var util=require('util');var moment=require(_0x3c89('0x1'));var BPromise=require(_0x3c89('0x2'));var rs=require(_0x3c89('0x3'));var fs=require('fs');var Redis=require(_0x3c89('0x4'));var db=require(_0x3c89('0x5'))['db'];var utils=require(_0x3c89('0x6'));var logger=require('../../config/logger')(_0x3c89('0x7'));var config=require('../../config/environment');var jayson=require(_0x3c89('0x8'));var client=jayson['client'][_0x3c89('0x9')]({'port':0x232a});config[_0x3c89('0xa')]=_['defaults'](config[_0x3c89('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x3c89('0xb'))(new Redis(config[_0x3c89('0xa')]));require(_0x3c89('0xc'))[_0x3c89('0xd')](socket);function respondWithRpcPromise(_0x188d91,_0x4e19f3,_0x508d75){return new BPromise(function(_0x5e4031,_0x53babe){return client[_0x3c89('0xe')](_0x188d91,_0x508d75)[_0x3c89('0xf')](function(_0x270cb3){logger[_0x3c89('0x10')]('OpenchannelInteraction,\x20%s,\x20%s',_0x4e19f3,_0x3c89('0x11'));logger[_0x3c89('0x12')](_0x3c89('0x13'),_0x4e19f3,'request\x20sent',JSON['stringify'](_0x270cb3));if(_0x270cb3['error']){if(_0x270cb3[_0x3c89('0x14')][_0x3c89('0x15')]===0x1f4){logger[_0x3c89('0x14')]('OpenchannelInteraction,\x20%s,\x20%s',_0x4e19f3,_0x270cb3[_0x3c89('0x14')]['message']);return _0x53babe(_0x270cb3['error'][_0x3c89('0x16')]);}logger['error'](_0x3c89('0x17'),_0x4e19f3,_0x270cb3[_0x3c89('0x14')][_0x3c89('0x16')]);return _0x5e4031(_0x270cb3['error'][_0x3c89('0x16')]);}else{logger['info'](_0x3c89('0x17'),_0x4e19f3,_0x3c89('0x11'));_0x5e4031(_0x270cb3[_0x3c89('0x18')][_0x3c89('0x16')]);}})['catch'](function(_0x5c2d44){logger[_0x3c89('0x14')](_0x3c89('0x17'),_0x4e19f3,_0x5c2d44);_0x53babe(_0x5c2d44);});});}exports[_0x3c89('0x19')]=function(_0x15b882){var _0x7d2925=this;return new Promise(function(_0x2221e9,_0xb66129){return db[_0x3c89('0x1a')][_0x3c89('0x1b')](_0x15b882[_0x3c89('0x1c')],{'raw':_0x15b882[_0x3c89('0x1d')]?_0x15b882[_0x3c89('0x1d')][_0x3c89('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x15b882['options']?_0x15b882[_0x3c89('0x1d')][_0x3c89('0x1f')]||null:null,'attributes':_0x15b882['options']?_0x15b882[_0x3c89('0x1d')][_0x3c89('0x20')]||null:null,'limit':_0x15b882[_0x3c89('0x1d')]?_0x15b882[_0x3c89('0x1d')][_0x3c89('0x21')]||null:null})[_0x3c89('0xf')](function(_0x30ec62){logger[_0x3c89('0x10')](_0x3c89('0x19'),_0x15b882);logger[_0x3c89('0x12')](_0x3c89('0x19'),_0x15b882,JSON[_0x3c89('0x22')](_0x30ec62));_0x2221e9(_0x30ec62);})[_0x3c89('0x23')](function(_0x3c5d42){logger['error'](_0x3c89('0x19'),_0x3c5d42[_0x3c89('0x16')],_0x15b882);_0xb66129(_0x7d2925[_0x3c89('0x14')](0x1f4,_0x3c5d42['message']));});});};exports['AddTagsToOpenchannelInteraction']=function(_0x4b73c3){return new Promise(function(_0x2a711f,_0x693842){return db[_0x3c89('0x1a')][_0x3c89('0x24')]({'where':_0x4b73c3[_0x3c89('0x1d')]?_0x4b73c3[_0x3c89('0x1d')][_0x3c89('0x1f')]||null:null})['then'](function(_0x490d6f){if(_0x490d6f){return _0x490d6f[_0x3c89('0x25')](_0x4b73c3[_0x3c89('0x1c')][_0x3c89('0x26')],_[_0x3c89('0x27')](_0x4b73c3['body'],[_0x3c89('0x26'),'id'])||{});}})[_0x3c89('0x28')](function(_0x5525ee){logger[_0x3c89('0x10')](_0x3c89('0x29'),_0x4b73c3);logger['debug']('AddTags',_0x4b73c3,JSON[_0x3c89('0x22')](_0x5525ee));_0x2a711f(_0x5525ee);})[_0x3c89('0x23')](function(_0xa78829){logger[_0x3c89('0x14')](_0x3c89('0x29'),_0xa78829['message'],_0x4b73c3);_0x693842(_this[_0x3c89('0x14')](0x1f4,_0xa78829[_0x3c89('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f4b=['save','remove','update','emit','removeListener','register','openchannelInteraction:'];(function(_0x68ee8b,_0x3cc6c5){var _0x5148f7=function(_0x5dcbd5){while(--_0x5dcbd5){_0x68ee8b['push'](_0x68ee8b['shift']());}};_0x5148f7(++_0x3cc6c5);}(_0x8f4b,0x16c));var _0xb8f4=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8f4b[_0x3dd15e];return _0x231fd0;};'use strict';var OpenchannelInteractionEvents=require('./openchannelInteraction.events');var events=[_0xb8f4('0x0'),_0xb8f4('0x1'),_0xb8f4('0x2')];function createListener(_0x50d333,_0x213e84){return function(_0x16e8cb){_0x213e84[_0xb8f4('0x3')](_0x50d333,_0x16e8cb);};}function removeListener(_0x54ee8b,_0x4b32a5){return function(){OpenchannelInteractionEvents[_0xb8f4('0x4')](_0x54ee8b,_0x4b32a5);};}exports[_0xb8f4('0x5')]=function(_0x4f51ed){for(var _0x13e356=0x0,_0xd89533=events['length'];_0x13e356<_0xd89533;_0x13e356++){var _0x11127e=events[_0x13e356];var _0x4f5386=createListener(_0xb8f4('0x6')+_0x11127e,_0x4f51ed);OpenchannelInteractionEvents['on'](_0x11127e,_0x4f5386);}};
\ No newline at end of file
+var _0x022e=['emit','removeListener','register','length','openchannelInteraction:','./openchannelInteraction.events','remove','update'];(function(_0x3870fb,_0x5ab2aa){var _0x5c3058=function(_0xfe54ba){while(--_0xfe54ba){_0x3870fb['push'](_0x3870fb['shift']());}};_0x5c3058(++_0x5ab2aa);}(_0x022e,0x105));var _0xe022=function(_0x2fc012,_0x503e5b){_0x2fc012=_0x2fc012-0x0;var _0x2891f9=_0x022e[_0x2fc012];return _0x2891f9;};'use strict';var OpenchannelInteractionEvents=require(_0xe022('0x0'));var events=['save',_0xe022('0x1'),_0xe022('0x2')];function createListener(_0x56110a,_0xbdd3fb){return function(_0x1fe193){_0xbdd3fb[_0xe022('0x3')](_0x56110a,_0x1fe193);};}function removeListener(_0x20309f,_0x50ced6){return function(){OpenchannelInteractionEvents[_0xe022('0x4')](_0x20309f,_0x50ced6);};}exports[_0xe022('0x5')]=function(_0x118e29){for(var _0x5479d3=0x0,_0x48cae9=events[_0xe022('0x6')];_0x5479d3<_0x48cae9;_0x5479d3++){var _0x169f60=events[_0x5479d3];var _0x2f803f=createListener(_0xe022('0x7')+_0x169f60,_0x118e29);OpenchannelInteractionEvents['on'](_0x169f60,_0x2f803f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['index','get','/describe','/:id','show','tracked','openchannel','create','put','update','accept','/:id/reject','reject','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./openchannelMessage.controller','isAuthenticated'];(function(_0x13ad2f,_0x2f99cb){var _0x509efd=function(_0x5a1c0e){while(--_0x5a1c0e){_0x13ad2f['push'](_0x13ad2f['shift']());}};_0x509efd(++_0x2f99cb);}(_0x9c44,0x178));var _0x49c4=function(_0x1d9aa0,_0x272488){_0x1d9aa0=_0x1d9aa0-0x0;var _0x226868=_0x9c44[_0x1d9aa0];return _0x226868;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x49c4('0x6'));router['get']('/',auth[_0x49c4('0x7')](),controller[_0x49c4('0x8')]);router[_0x49c4('0x9')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller['describe']);router[_0x49c4('0x9')](_0x49c4('0xb'),auth[_0x49c4('0x7')](),controller[_0x49c4('0xc')]);router['post']('/',auth['isAuthenticated'](),interaction[_0x49c4('0xd')](_0x49c4('0xe'),'openchannelmessage:create'),controller[_0x49c4('0xf')]);router[_0x49c4('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x49c4('0x11')]);router[_0x49c4('0x10')]('/:id/accept',auth[_0x49c4('0x7')](),controller[_0x49c4('0x12')]);router['put'](_0x49c4('0x13'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x14')]);router[_0x49c4('0x15')](_0x49c4('0xb'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x16')]);module[_0x49c4('0x17')]=router;
\ No newline at end of file
+var _0xcb91=['openchannelmessage:create','put','update','/:id/reject','reject','destroy','exports','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./openchannelMessage.controller','get','index','isAuthenticated','describe','/:id','post','tracked','openchannel'];(function(_0x20f3bc,_0x34c2fd){var _0x2e0502=function(_0x14dd1a){while(--_0x14dd1a){_0x20f3bc['push'](_0x20f3bc['shift']());}};_0x2e0502(++_0x34c2fd);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x112e2a,_0x364486){_0x112e2a=_0x112e2a-0x0;var _0x4f8af9=_0xcb91[_0x112e2a];return _0x4f8af9;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');var controller=require(_0x1cb9('0x6'));router[_0x1cb9('0x7')]('/',auth['isAuthenticated'](),controller[_0x1cb9('0x8')]);router[_0x1cb9('0x7')]('/describe',auth[_0x1cb9('0x9')](),controller[_0x1cb9('0xa')]);router['get'](_0x1cb9('0xb'),auth['isAuthenticated'](),controller['show']);router[_0x1cb9('0xc')]('/',auth[_0x1cb9('0x9')](),interaction[_0x1cb9('0xd')](_0x1cb9('0xe'),_0x1cb9('0xf')),controller['create']);router[_0x1cb9('0x10')](_0x1cb9('0xb'),auth[_0x1cb9('0x9')](),controller[_0x1cb9('0x11')]);router[_0x1cb9('0x10')]('/:id/accept',auth['isAuthenticated'](),controller['accept']);router[_0x1cb9('0x10')](_0x1cb9('0x12'),auth[_0x1cb9('0x9')](),controller[_0x1cb9('0x13')]);router['delete'](_0x1cb9('0xb'),auth[_0x1cb9('0x9')](),controller[_0x1cb9('0x14')]);module[_0x1cb9('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c8b=['DATE','STRING','TEXT','exports','medium','BOOLEAN','out'];(function(_0x38987f,_0xc79720){var _0x4cb697=function(_0x1af5ae){while(--_0x1af5ae){_0x38987f['push'](_0x38987f['shift']());}};_0x4cb697(++_0xc79720);}(_0x3c8b,0x18b));var _0xb3c8=function(_0x81e1fd,_0x467a2f){_0x81e1fd=_0x81e1fd-0x0;var _0x1e2565=_0x3c8b[_0x81e1fd];return _0x1e2565;};'use strict';var Sequelize=require('sequelize');module[_0xb3c8('0x0')]={'body':{'type':Sequelize['TEXT'](_0xb3c8('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0xb3c8('0x2')],'defaultValue':![]},'secret':{'type':Sequelize[_0xb3c8('0x2')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0xb3c8('0x3')),'defaultValue':_0xb3c8('0x3'),'allowNull':![]},'readAt':{'type':Sequelize[_0xb3c8('0x4')]},'providerName':{'type':Sequelize[_0xb3c8('0x5')]},'providerResponse':{'type':Sequelize[_0xb3c8('0x6')]}};
\ No newline at end of file
+var _0xefe3=['BOOLEAN','ENUM','out','DATE','TEXT','sequelize'];(function(_0x1c0f41,_0x26d95d){var _0x369a9f=function(_0x251234){while(--_0x251234){_0x1c0f41['push'](_0x1c0f41['shift']());}};_0x369a9f(++_0x26d95d);}(_0xefe3,0xf5));var _0x3efe=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xefe3[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x3efe('0x0'));module['exports']={'body':{'type':Sequelize['TEXT']('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x3efe('0x1')],'defaultValue':![]},'secret':{'type':Sequelize[_0x3efe('0x1')],'defaultValue':![]},'direction':{'type':Sequelize[_0x3efe('0x2')]('in',_0x3efe('0x3')),'defaultValue':'out','allowNull':![]},'readAt':{'type':Sequelize[_0x3efe('0x4')]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0x3efe('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84c7=['ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','http','client','request','then','info','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','code','message','OpenchannelMessage,\x20%s,\x20%s','result','sendStatus','status','json','undefined','limit','offset','count','set','apply','save','update','destroy','stack','name','send','index','map','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','OpenchannelMessage','includeAll','include','findAll','rows','catch','show','rawAttributes','find','create','body','describe','../../config/logger','openchannel-interactions','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','interaction','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','null','AcceptMessage','acceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','agent','fullname','email','internal','interface','format','SIP/%s','channel','event','acceptmessage','reject','openchannel','params','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','EventManager','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv'];(function(_0x580c99,_0x5ca8ed){var _0x320f10=function(_0x41ad9a){while(--_0x41ad9a){_0x580c99['push'](_0x580c99['shift']());}};_0x320f10(++_0x5ca8ed);}(_0x84c7,0x10e));var _0x784c=function(_0xd8bd98,_0xa183d9){_0xd8bd98=_0xd8bd98-0x0;var _0x14ce10=_0x84c7[_0xd8bd98];return _0x14ce10;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x784c('0x0'));var zipdir=require(_0x784c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x784c('0x2'));var moment=require(_0x784c('0x3'));var BPromise=require(_0x784c('0x4'));var Mustache=require(_0x784c('0x5'));var util=require(_0x784c('0x6'));var path=require(_0x784c('0x7'));var sox=require(_0x784c('0x8'));var csv=require(_0x784c('0x9'));var ejs=require(_0x784c('0xa'));var fs=require('fs');var fs_extra=require(_0x784c('0xb'));var _=require(_0x784c('0xc'));var squel=require(_0x784c('0xd'));var crypto=require(_0x784c('0xe'));var jsforce=require(_0x784c('0xf'));var deskjs=require(_0x784c('0x10'));var toCsv=require('to-csv');var querystring=require(_0x784c('0x11'));var Papa=require(_0x784c('0x12'));var Redis=require(_0x784c('0x13'));var authService=require(_0x784c('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x784c('0x15'));var hardwareService=require(_0x784c('0x16'));var logger=require('../../config/logger')(_0x784c('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x784c('0x18'));var db=require(_0x784c('0x19'))['db'];config[_0x784c('0x1a')]=_[_0x784c('0x1b')](config[_0x784c('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x784c('0x1c'))(new Redis(config[_0x784c('0x1a')]));require(_0x784c('0x1d'))[_0x784c('0x1e')](socket);var jayson=require(_0x784c('0x1f'));var client=jayson['client'][_0x784c('0x20')]({'port':0x232c});var client9002=jayson[_0x784c('0x21')][_0x784c('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x2b9413,_0x3b3eb5,_0x138311,_0xa68f20){return new BPromise(function(_0x445727,_0x351226){var _0x5951f4=_0xa68f20||client;return _0x5951f4[_0x784c('0x22')](_0x2b9413,_0x138311)[_0x784c('0x23')](function(_0x1ebca3){logger[_0x784c('0x24')]('OpenchannelMessage,\x20%s,\x20%s',_0x3b3eb5,_0x784c('0x25'));logger[_0x784c('0x26')](_0x784c('0x27'),_0x3b3eb5,_0x784c('0x25'),JSON['stringify'](_0x1ebca3));if(_0x1ebca3['error']){if(_0x1ebca3[_0x784c('0x28')][_0x784c('0x29')]===0x1f4){logger[_0x784c('0x28')]('OpenchannelMessage,\x20%s,\x20%s',_0x3b3eb5,_0x1ebca3[_0x784c('0x28')][_0x784c('0x2a')]);return _0x351226(_0x1ebca3[_0x784c('0x28')][_0x784c('0x2a')]);}logger[_0x784c('0x28')](_0x784c('0x2b'),_0x3b3eb5,_0x1ebca3['error'][_0x784c('0x2a')]);return _0x445727(_0x1ebca3['error'][_0x784c('0x2a')]);}else{logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x3b3eb5,_0x784c('0x25'));_0x445727(_0x1ebca3[_0x784c('0x2c')][_0x784c('0x2a')]);}})['catch'](function(_0x4b6e37){logger[_0x784c('0x28')](_0x784c('0x2b'),_0x3b3eb5,_0x4b6e37);_0x351226(_0x4b6e37);});});}function respondWithStatusCode(_0x304bed,_0x24ba74){_0x24ba74=_0x24ba74||0xcc;return function(_0x588be9){if(_0x588be9){return _0x304bed[_0x784c('0x2d')](_0x24ba74);}return _0x304bed[_0x784c('0x2e')](_0x24ba74)['end']();};}function respondWithResult(_0x2d7849,_0xf99426){_0xf99426=_0xf99426||0xc8;return function(_0x5242c2){if(_0x5242c2){return _0x2d7849['status'](_0xf99426)[_0x784c('0x2f')](_0x5242c2);}};}function respondWithFilteredResult(_0x2166ff,_0x4e7f71){return function(_0x1bc8da){if(_0x1bc8da){var _0x5852fc=typeof _0x4e7f71['offset']===_0x784c('0x30')&&typeof _0x4e7f71[_0x784c('0x31')]===_0x784c('0x30');var _0x53e3d8=_0x1bc8da['count'];var _0x110b7b=_0x5852fc?0x0:_0x4e7f71[_0x784c('0x32')];var _0x249937=_0x5852fc?_0x1bc8da[_0x784c('0x33')]:_0x4e7f71['offset']+_0x4e7f71[_0x784c('0x31')];var _0x5793af;if(_0x249937>=_0x53e3d8){_0x249937=_0x53e3d8;_0x5793af=0xc8;}else{_0x5793af=0xce;}_0x2166ff[_0x784c('0x2e')](_0x5793af);return _0x2166ff[_0x784c('0x34')]('Content-Range',_0x110b7b+'-'+_0x249937+'/'+_0x53e3d8)[_0x784c('0x2f')](_0x1bc8da);}return null;};}function patchUpdates(_0x3b0957){return function(_0x1a066d){try{jsonpatch[_0x784c('0x35')](_0x1a066d,_0x3b0957,!![]);}catch(_0x4777d8){return BPromise['reject'](_0x4777d8);}return _0x1a066d[_0x784c('0x36')]();};}function saveUpdates(_0xd7f7af,_0x449014){return function(_0x417d7b){if(_0x417d7b){return _0x417d7b[_0x784c('0x37')](_0xd7f7af)[_0x784c('0x23')](function(_0x1ba0b1){return _0x1ba0b1;});}return null;};}function removeEntity(_0x202f3f,_0x25024b){return function(_0x222f1f){if(_0x222f1f){return _0x222f1f[_0x784c('0x38')]()['then'](function(){_0x202f3f[_0x784c('0x2e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a9a9d,_0x3d59cc){return function(_0x3d957d){if(!_0x3d957d){_0x2a9a9d['sendStatus'](0x194);}return _0x3d957d;};}function handleError(_0x33c8ce,_0x49b40c){_0x49b40c=_0x49b40c||0x1f4;return function(_0x34046f){logger[_0x784c('0x28')](_0x34046f[_0x784c('0x39')]);if(_0x34046f['name']){delete _0x34046f[_0x784c('0x3a')];}_0x33c8ce[_0x784c('0x2e')](_0x49b40c)[_0x784c('0x3b')](_0x34046f);};}exports[_0x784c('0x3c')]=function(_0x3c16a3,_0x1b31e1){var _0x5c639b={},_0x185308={},_0x2fd2d5={'count':0x0,'rows':[]};var _0x4faa6d=_[_0x784c('0x3d')](db['OpenchannelMessage']['rawAttributes'],function(_0x287ece){return{'name':_0x287ece[_0x784c('0x3e')],'type':_0x287ece[_0x784c('0x3f')][_0x784c('0x40')]};});_0x185308['model']=_[_0x784c('0x3d')](_0x4faa6d,_0x784c('0x3a'));_0x185308[_0x784c('0x41')]=_[_0x784c('0x42')](_0x3c16a3[_0x784c('0x41')]);_0x185308[_0x784c('0x43')]=_[_0x784c('0x44')](_0x185308['model'],_0x185308[_0x784c('0x41')]);_0x5c639b[_0x784c('0x45')]=_['intersection'](_0x185308['model'],qs[_0x784c('0x46')](_0x3c16a3[_0x784c('0x41')][_0x784c('0x46')]));_0x5c639b[_0x784c('0x45')]=_0x5c639b['attributes'][_0x784c('0x47')]?_0x5c639b[_0x784c('0x45')]:_0x185308[_0x784c('0x48')];if(!_0x3c16a3[_0x784c('0x41')][_0x784c('0x49')](_0x784c('0x4a'))){_0x5c639b[_0x784c('0x31')]=qs[_0x784c('0x31')](_0x3c16a3[_0x784c('0x41')][_0x784c('0x31')]);_0x5c639b[_0x784c('0x32')]=qs['offset'](_0x3c16a3[_0x784c('0x41')]['offset']);}_0x5c639b[_0x784c('0x4b')]=qs[_0x784c('0x4c')](_0x3c16a3[_0x784c('0x41')][_0x784c('0x4c')]);_0x5c639b[_0x784c('0x4d')]=qs[_0x784c('0x43')](_[_0x784c('0x4e')](_0x3c16a3[_0x784c('0x41')],_0x185308[_0x784c('0x43')]),_0x4faa6d);if(_0x3c16a3[_0x784c('0x41')][_0x784c('0x4f')]){_0x5c639b[_0x784c('0x4d')]=_[_0x784c('0x50')](_0x5c639b[_0x784c('0x4d')],{'$or':_[_0x784c('0x3d')](_0x4faa6d,function(_0x416ec5){if(_0x416ec5[_0x784c('0x3f')]!==_0x784c('0x51')){var _0x1a7469={};_0x1a7469[_0x416ec5[_0x784c('0x3a')]]={'$like':'%'+_0x3c16a3[_0x784c('0x41')]['filter']+'%'};return _0x1a7469;}})});}_0x5c639b=_[_0x784c('0x50')]({},_0x5c639b,_0x3c16a3[_0x784c('0x52')]);var _0x543143={'where':_0x5c639b[_0x784c('0x4d')]};return db[_0x784c('0x53')][_0x784c('0x33')](_0x543143)[_0x784c('0x23')](function(_0x15a3f9){_0x2fd2d5['count']=_0x15a3f9;if(_0x3c16a3[_0x784c('0x41')][_0x784c('0x54')]){_0x5c639b[_0x784c('0x55')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0x784c('0x56')](_0x5c639b);})['then'](function(_0x26d595){_0x2fd2d5[_0x784c('0x57')]=_0x26d595;return _0x2fd2d5;})[_0x784c('0x23')](respondWithFilteredResult(_0x1b31e1,_0x5c639b))[_0x784c('0x58')](handleError(_0x1b31e1,null));};exports[_0x784c('0x59')]=function(_0x268e23,_0x16c8be){var _0x177046={'raw':!![],'where':{'id':_0x268e23['params']['id']}},_0x2f5ad5={};_0x2f5ad5[_0x784c('0x48')]=_['keys'](db[_0x784c('0x53')][_0x784c('0x5a')]);_0x2f5ad5[_0x784c('0x41')]=_[_0x784c('0x42')](_0x268e23[_0x784c('0x41')]);_0x2f5ad5['filters']=_[_0x784c('0x44')](_0x2f5ad5['model'],_0x2f5ad5[_0x784c('0x41')]);_0x177046[_0x784c('0x45')]=_[_0x784c('0x44')](_0x2f5ad5[_0x784c('0x48')],qs[_0x784c('0x46')](_0x268e23[_0x784c('0x41')][_0x784c('0x46')]));_0x177046['attributes']=_0x177046[_0x784c('0x45')][_0x784c('0x47')]?_0x177046[_0x784c('0x45')]:_0x2f5ad5['model'];if(_0x268e23['query'][_0x784c('0x54')]){_0x177046[_0x784c('0x55')]=[{'all':!![]}];}_0x177046=_[_0x784c('0x50')]({},_0x177046,_0x268e23[_0x784c('0x52')]);return db[_0x784c('0x53')][_0x784c('0x5b')](_0x177046)[_0x784c('0x23')](handleEntityNotFound(_0x16c8be,null))[_0x784c('0x23')](respondWithResult(_0x16c8be,null))[_0x784c('0x58')](handleError(_0x16c8be,null));};exports[_0x784c('0x5c')]=function(_0x5a7e96,_0x2ca944){return db[_0x784c('0x53')][_0x784c('0x5c')](_0x5a7e96[_0x784c('0x5d')],{})[_0x784c('0x23')](respondWithResult(_0x2ca944,0xc9))[_0x784c('0x58')](handleError(_0x2ca944,null));};exports[_0x784c('0x37')]=function(_0x25f76b,_0x3bbf7d){if(_0x25f76b[_0x784c('0x5d')]['id']){delete _0x25f76b[_0x784c('0x5d')]['id'];}return db[_0x784c('0x53')][_0x784c('0x5b')]({'where':{'id':_0x25f76b['params']['id']}})['then'](handleEntityNotFound(_0x3bbf7d,null))['then'](saveUpdates(_0x25f76b[_0x784c('0x5d')],null))['then'](respondWithResult(_0x3bbf7d,null))[_0x784c('0x58')](handleError(_0x3bbf7d,null));};exports['destroy']=function(_0x581601,_0x37793c){return db[_0x784c('0x53')][_0x784c('0x5b')]({'where':{'id':_0x581601['params']['id']}})[_0x784c('0x23')](handleEntityNotFound(_0x37793c,null))[_0x784c('0x23')](removeEntity(_0x37793c,null))[_0x784c('0x58')](handleError(_0x37793c,null));};exports[_0x784c('0x5e')]=function(_0x33a453,_0x4302ba){return db[_0x784c('0x53')][_0x784c('0x5e')]()[_0x784c('0x23')](respondWithResult(_0x4302ba,null))[_0x784c('0x58')](handleError(_0x4302ba,null));};var interaction_log=require(_0x784c('0x5f'))(_0x784c('0x60'));exports[_0x784c('0x61')]=function(_0x4a03db,_0x388c69,_0x30f43a){var _0xdc492a={'agent':{},'channel':'openchannel'};if(_0x4a03db[_0x784c('0x5d')]['id']){delete _0x4a03db[_0x784c('0x5d')]['id'];}_0x4a03db[_0x784c('0x5d')][_0x784c('0x62')]=!![];_0x4a03db['body'][_0x784c('0x63')]=moment()['format'](_0x784c('0x64'));_0x4a03db[_0x784c('0x5d')]['UserId']=_0x4a03db['body'][_0x784c('0x65')]||_0x4a03db[_0x784c('0x66')]['id'];_0xdc492a['agent']['id']=_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')];return db['OpenchannelMessage'][_0x784c('0x5b')]({'where':{'id':_0x4a03db['params']['id'],'UserId':null}})[_0x784c('0x23')](handleEntityNotFound(_0x388c69,null))['then'](saveUpdates(_0x4a03db[_0x784c('0x5d')],null))['then'](function(_0x148904){if(_0x148904){_0xdc492a[_0x784c('0x2a')]=_0x148904['get']({'plain':!![]});return db[_0x784c('0x67')]['find']({'where':{'id':_0x148904[_0x784c('0x68')]}});}return null;})[_0x784c('0x23')](handleEntityNotFound(_0x388c69,null))[_0x784c('0x23')](function(_0x1745b1){if(_0x1745b1){return _0x1745b1['update']({'UserId':_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')],'read1stAt':_[_0x784c('0x69')](_0x1745b1[_0x784c('0x6a')])?moment()['format'](_0x784c('0x64')):undefined});}return null;})[_0x784c('0x23')](function(_0x51eba5){if(_0x51eba5){_0xdc492a[_0x784c('0x6b')]=_0x51eba5[_0x784c('0x6c')]({'plain':!![]});interaction_log[_0x784c('0x24')](_0x784c('0x6d'),_0x4a03db[_0x784c('0x66')]['id'],_0x4a03db[_0x784c('0x66')][_0x784c('0x3a')],_0x4a03db[_0x784c('0x66')][_0x784c('0x6e')],_0xdc492a[_0x784c('0x6b')]['id'],_0x4a03db['body']?JSON[_0x784c('0x6f')](_0x4a03db[_0x784c('0x5d')]):_0x784c('0x70'));return respondWithRpcPromise(_0x784c('0x71'),_0x784c('0x72'),_0xdc492a);}return null;})[_0x784c('0x23')](function(_0x1b8696){var _0x38a911='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1b8696['message'][_0x784c('0x73')];return db[_0x784c('0x74')][_0x784c('0x41')](_0x38a911,{'type':db[_0x784c('0x75')][_0x784c('0x76')][_0x784c('0x77')],'raw':!![]})['then'](function(_0x47cb7c){return _0x47cb7c;});})[_0x784c('0x23')](function(_0x2291fc){if(_0x2291fc){_0xdc492a[_0x784c('0x2a')][_0x784c('0x78')]=_0x2291fc[0x0];if(!_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')])return;return db[_0x784c('0x79')][_0x784c('0x5b')]({'where':{'id':_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')],'role':_0x784c('0x7a')},'attributes':['id',_0x784c('0x3a'),_0x784c('0x7b'),_0x784c('0x7c'),_0x784c('0x7d')],'raw':!![]});}return null;})[_0x784c('0x23')](function(_0x24289e){if(!_0x24289e)return null;_0xdc492a[_0x784c('0x2a')][_0x784c('0x7a')]=_0x24289e;return _0xdc492a;})[_0x784c('0x23')](function(_0xf46ee9){if(_0xf46ee9){if(_0x4a03db['body']['manual']){_0xdc492a[_0x784c('0x2a')][_0x784c('0x7e')]=util[_0x784c('0x7f')](_0x784c('0x80'),_0x4a03db[_0x784c('0x66')][_0x784c('0x3a')]);_0xdc492a[_0x784c('0x2a')][_0x784c('0x81')]=_0xdc492a[_0x784c('0x81')];_0xdc492a['message'][_0x784c('0x82')]='accept';return respondWithRpcPromise('EventManager','EventManager',{'event':_0x784c('0x83'),'message':_0xdc492a[_0x784c('0x2a')]},client9002)[_0x784c('0x23')](function(){return _0xdc492a;});}return _0xdc492a;}return null;})['then'](respondWithResult(_0x388c69,null))[_0x784c('0x58')](handleError(_0x388c69,null));};var interaction_log=require(_0x784c('0x5f'))('openchannel-interactions');exports[_0x784c('0x84')]=function(_0x46c227,_0x12a39b,_0x45de05){var _0x24955a={'agent':{},'channel':_0x784c('0x85')};if(_0x46c227['body']['id']){delete _0x46c227[_0x784c('0x5d')]['id'];}_0x46c227[_0x784c('0x5d')][_0x784c('0x65')]=_0x46c227[_0x784c('0x5d')][_0x784c('0x65')]||_0x46c227[_0x784c('0x66')]['id'];_0x24955a['agent']['id']=_0x46c227[_0x784c('0x5d')][_0x784c('0x65')];return db[_0x784c('0x53')][_0x784c('0x5b')]({'where':{'id':_0x46c227[_0x784c('0x86')]['id'],'UserId':null}})[_0x784c('0x23')](handleEntityNotFound(_0x12a39b,null))[_0x784c('0x23')](function(_0xdbbbf8){if(_0xdbbbf8){_0x24955a[_0x784c('0x2a')]=_0xdbbbf8['get']({'plain':!![]});return db['OpenchannelInteraction'][_0x784c('0x5b')]({'where':{'id':_0xdbbbf8[_0x784c('0x68')]}});}return null;})[_0x784c('0x23')](handleEntityNotFound(_0x12a39b,null))[_0x784c('0x23')](function(_0x144ffd){if(_0x144ffd){_0x24955a[_0x784c('0x6b')]=_0x144ffd['get']({'plain':!![]});interaction_log['info'](_0x784c('0x87'),_0x46c227['user']['id'],_0x46c227['user'][_0x784c('0x3a')],_0x46c227[_0x784c('0x66')][_0x784c('0x6e')],_0x24955a[_0x784c('0x6b')]['id'],_0x46c227[_0x784c('0x5d')]?JSON['stringify'](_0x46c227[_0x784c('0x5d')]):'null');return respondWithRpcPromise(_0x784c('0x88'),_0x784c('0x89'),_0x24955a);}return null;})[_0x784c('0x23')](function(_0x40d289){var _0x30ffaa=_0x784c('0x8a')+_0x40d289['message'][_0x784c('0x73')];return db[_0x784c('0x74')][_0x784c('0x41')](_0x30ffaa,{'type':db[_0x784c('0x75')][_0x784c('0x76')]['SELECT'],'raw':!![]})['then'](function(_0x4972f8){return _0x4972f8;});})['then'](function(_0x225b3d){if(_0x225b3d){_0x24955a[_0x784c('0x2a')]['contact']=_0x225b3d[0x0];if(!_0x46c227[_0x784c('0x5d')][_0x784c('0x65')])return;return db[_0x784c('0x79')][_0x784c('0x5b')]({'where':{'id':_0x46c227[_0x784c('0x5d')][_0x784c('0x65')],'role':'agent'},'attributes':['id',_0x784c('0x3a'),'fullname',_0x784c('0x7c'),'internal'],'raw':!![]});}return null;})[_0x784c('0x23')](function(_0xded418){if(!_0xded418)return null;_0x24955a[_0x784c('0x2a')][_0x784c('0x7a')]=_0xded418;return _0x24955a;})[_0x784c('0x23')](function(_0x5e01cb){if(_0x5e01cb){_0x5e01cb[_0x784c('0x2a')]['interface']=util['format']('SIP/%s',_0x46c227[_0x784c('0x66')][_0x784c('0x3a')]);_0x5e01cb[_0x784c('0x2a')][_0x784c('0x81')]=_0x24955a[_0x784c('0x81')];_0x5e01cb[_0x784c('0x2a')][_0x784c('0x82')]=_0x784c('0x84');respondWithRpcPromise(_0x784c('0x8b'),'EventManager',{'event':'rejectmessage','message':_0x5e01cb['message']},client9002);return _0x24955a;}return null;})[_0x784c('0x23')](respondWithResult(_0x12a39b,null))[_0x784c('0x58')](handleError(_0x12a39b,null));};
\ No newline at end of file
+var _0x8800=['../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','socket.io-emitter','jayson/promise','http','client','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','result','catch','status','offset','undefined','limit','count','set','Content-Range','json','apply','save','update','destroy','sendStatus','stack','name','send','index','OpenchannelMessage','rawAttributes','fieldName','type','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','show','keys','includeAll','include','find','create','body','params','describe','../../config/logger','openchannel-interactions','accept','openchannel','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','OpenchannelInteraction','OpenchannelInteractionId','read1stAt','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','interaction','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','SELECT','contact','User','fullname','email','internal','manual','interface','SIP/%s','channel','motionChannel','event','EventManager','acceptmessage','reject','role','RejectMessage','rejectMessage','ContactId','QueryTypes','rejectmessage','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x2f61b9,_0x36e9ab){var _0x4b720d=function(_0x136191){while(--_0x136191){_0x2f61b9['push'](_0x2f61b9['shift']());}};_0x4b720d(++_0x36e9ab);}(_0x8800,0x182));var _0x0880=function(_0x17da09,_0xdbb77){_0x17da09=_0x17da09-0x0;var _0x5dc20d=_0x8800[_0x17da09];return _0x5dc20d;};'use strict';var emlformat=require(_0x0880('0x0'));var rimraf=require(_0x0880('0x1'));var zipdir=require(_0x0880('0x2'));var jsonpatch=require(_0x0880('0x3'));var rp=require(_0x0880('0x4'));var moment=require(_0x0880('0x5'));var BPromise=require(_0x0880('0x6'));var Mustache=require(_0x0880('0x7'));var util=require('util');var path=require(_0x0880('0x8'));var sox=require(_0x0880('0x9'));var csv=require(_0x0880('0xa'));var ejs=require(_0x0880('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x0880('0xc'));var jsforce=require(_0x0880('0xd'));var deskjs=require(_0x0880('0xe'));var toCsv=require(_0x0880('0xa'));var querystring=require(_0x0880('0xf'));var Papa=require(_0x0880('0x10'));var Redis=require(_0x0880('0x11'));var authService=require(_0x0880('0x12'));var qs=require(_0x0880('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x0880('0x14'));var utils=require(_0x0880('0x15'));var config=require(_0x0880('0x16'));var licenseUtil=require(_0x0880('0x17'));var db=require(_0x0880('0x18'))['db'];config['redis']=_[_0x0880('0x19')](config[_0x0880('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x0880('0x1b'))(new Redis(config[_0x0880('0x1a')]));require('./openchannelMessage.socket')['register'](socket);var jayson=require(_0x0880('0x1c'));var client=jayson['client'][_0x0880('0x1d')]({'port':0x232c});var client9002=jayson[_0x0880('0x1e')][_0x0880('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x31e267,_0x1c2491,_0x2a3731,_0x51020b){return new BPromise(function(_0x554e3a,_0x1d1703){var _0x16157e=_0x51020b||client;return _0x16157e[_0x0880('0x1f')](_0x31e267,_0x2a3731)[_0x0880('0x20')](function(_0x104d53){logger[_0x0880('0x21')](_0x0880('0x22'),_0x1c2491,_0x0880('0x23'));logger[_0x0880('0x24')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x1c2491,'request\x20sent',JSON[_0x0880('0x25')](_0x104d53));if(_0x104d53['error']){if(_0x104d53['error'][_0x0880('0x26')]===0x1f4){logger[_0x0880('0x27')](_0x0880('0x22'),_0x1c2491,_0x104d53[_0x0880('0x27')][_0x0880('0x28')]);return _0x1d1703(_0x104d53[_0x0880('0x27')]['message']);}logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x1c2491,_0x104d53[_0x0880('0x27')][_0x0880('0x28')]);return _0x554e3a(_0x104d53[_0x0880('0x27')][_0x0880('0x28')]);}else{logger['info'](_0x0880('0x22'),_0x1c2491,_0x0880('0x23'));_0x554e3a(_0x104d53[_0x0880('0x29')][_0x0880('0x28')]);}})[_0x0880('0x2a')](function(_0x558cfe){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x1c2491,_0x558cfe);_0x1d1703(_0x558cfe);});});}function respondWithStatusCode(_0x1c930f,_0x51d6a3){_0x51d6a3=_0x51d6a3||0xcc;return function(_0x305f6e){if(_0x305f6e){return _0x1c930f['sendStatus'](_0x51d6a3);}return _0x1c930f[_0x0880('0x2b')](_0x51d6a3)['end']();};}function respondWithResult(_0x2827e1,_0x14831a){_0x14831a=_0x14831a||0xc8;return function(_0x54d235){if(_0x54d235){return _0x2827e1['status'](_0x14831a)['json'](_0x54d235);}};}function respondWithFilteredResult(_0x490fcb,_0x45ad16){return function(_0x293036){if(_0x293036){var _0x374e34=typeof _0x45ad16[_0x0880('0x2c')]===_0x0880('0x2d')&&typeof _0x45ad16[_0x0880('0x2e')]===_0x0880('0x2d');var _0x360bfa=_0x293036[_0x0880('0x2f')];var _0x34bf9d=_0x374e34?0x0:_0x45ad16[_0x0880('0x2c')];var _0x2a0ccd=_0x374e34?_0x293036[_0x0880('0x2f')]:_0x45ad16['offset']+_0x45ad16[_0x0880('0x2e')];var _0x513a7f;if(_0x2a0ccd>=_0x360bfa){_0x2a0ccd=_0x360bfa;_0x513a7f=0xc8;}else{_0x513a7f=0xce;}_0x490fcb[_0x0880('0x2b')](_0x513a7f);return _0x490fcb[_0x0880('0x30')](_0x0880('0x31'),_0x34bf9d+'-'+_0x2a0ccd+'/'+_0x360bfa)[_0x0880('0x32')](_0x293036);}return null;};}function patchUpdates(_0x1e4291){return function(_0x3ca855){try{jsonpatch[_0x0880('0x33')](_0x3ca855,_0x1e4291,!![]);}catch(_0x50b581){return BPromise['reject'](_0x50b581);}return _0x3ca855[_0x0880('0x34')]();};}function saveUpdates(_0x1386a7,_0x24eb65){return function(_0x5a00e0){if(_0x5a00e0){return _0x5a00e0[_0x0880('0x35')](_0x1386a7)[_0x0880('0x20')](function(_0x1a5a22){return _0x1a5a22;});}return null;};}function removeEntity(_0x5680e9,_0x3c6e55){return function(_0x4c6466){if(_0x4c6466){return _0x4c6466[_0x0880('0x36')]()[_0x0880('0x20')](function(){_0x5680e9[_0x0880('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x518415,_0xd2fcc5){return function(_0xfdc89c){if(!_0xfdc89c){_0x518415[_0x0880('0x37')](0x194);}return _0xfdc89c;};}function handleError(_0x4dffbb,_0x168980){_0x168980=_0x168980||0x1f4;return function(_0x3fee02){logger[_0x0880('0x27')](_0x3fee02[_0x0880('0x38')]);if(_0x3fee02[_0x0880('0x39')]){delete _0x3fee02[_0x0880('0x39')];}_0x4dffbb[_0x0880('0x2b')](_0x168980)[_0x0880('0x3a')](_0x3fee02);};}exports[_0x0880('0x3b')]=function(_0x392269,_0x43798f){var _0x3c369c={},_0x17084e={},_0x138646={'count':0x0,'rows':[]};var _0xcb22bd=_['map'](db[_0x0880('0x3c')][_0x0880('0x3d')],function(_0x341095){return{'name':_0x341095[_0x0880('0x3e')],'type':_0x341095[_0x0880('0x3f')]['key']};});_0x17084e[_0x0880('0x40')]=_[_0x0880('0x41')](_0xcb22bd,_0x0880('0x39'));_0x17084e[_0x0880('0x42')]=_['keys'](_0x392269[_0x0880('0x42')]);_0x17084e[_0x0880('0x43')]=_[_0x0880('0x44')](_0x17084e[_0x0880('0x40')],_0x17084e['query']);_0x3c369c[_0x0880('0x45')]=_[_0x0880('0x44')](_0x17084e[_0x0880('0x40')],qs['fields'](_0x392269[_0x0880('0x42')][_0x0880('0x46')]));_0x3c369c[_0x0880('0x45')]=_0x3c369c[_0x0880('0x45')][_0x0880('0x47')]?_0x3c369c['attributes']:_0x17084e[_0x0880('0x40')];if(!_0x392269['query'][_0x0880('0x48')](_0x0880('0x49'))){_0x3c369c[_0x0880('0x2e')]=qs[_0x0880('0x2e')](_0x392269[_0x0880('0x42')][_0x0880('0x2e')]);_0x3c369c[_0x0880('0x2c')]=qs['offset'](_0x392269[_0x0880('0x42')]['offset']);}_0x3c369c['order']=qs[_0x0880('0x4a')](_0x392269['query'][_0x0880('0x4a')]);_0x3c369c[_0x0880('0x4b')]=qs[_0x0880('0x43')](_[_0x0880('0x4c')](_0x392269[_0x0880('0x42')],_0x17084e[_0x0880('0x43')]),_0xcb22bd);if(_0x392269[_0x0880('0x42')][_0x0880('0x4d')]){_0x3c369c[_0x0880('0x4b')]=_[_0x0880('0x4e')](_0x3c369c['where'],{'$or':_[_0x0880('0x41')](_0xcb22bd,function(_0x5ebc5f){if(_0x5ebc5f['type']!==_0x0880('0x4f')){var _0x26227b={};_0x26227b[_0x5ebc5f[_0x0880('0x39')]]={'$like':'%'+_0x392269['query'][_0x0880('0x4d')]+'%'};return _0x26227b;}})});}_0x3c369c=_[_0x0880('0x4e')]({},_0x3c369c,_0x392269[_0x0880('0x50')]);var _0x3cf2db={'where':_0x3c369c['where']};return db[_0x0880('0x3c')]['count'](_0x3cf2db)[_0x0880('0x20')](function(_0x4c62d6){_0x138646['count']=_0x4c62d6;if(_0x392269[_0x0880('0x42')]['includeAll']){_0x3c369c['include']=[{'all':!![]}];}return db[_0x0880('0x3c')][_0x0880('0x51')](_0x3c369c);})['then'](function(_0x39862f){_0x138646[_0x0880('0x52')]=_0x39862f;return _0x138646;})['then'](respondWithFilteredResult(_0x43798f,_0x3c369c))[_0x0880('0x2a')](handleError(_0x43798f,null));};exports[_0x0880('0x53')]=function(_0x2204f6,_0x23659b){var _0x568f61={'raw':!![],'where':{'id':_0x2204f6['params']['id']}},_0xc6ff9a={};_0xc6ff9a[_0x0880('0x40')]=_[_0x0880('0x54')](db['OpenchannelMessage'][_0x0880('0x3d')]);_0xc6ff9a['query']=_[_0x0880('0x54')](_0x2204f6[_0x0880('0x42')]);_0xc6ff9a[_0x0880('0x43')]=_[_0x0880('0x44')](_0xc6ff9a[_0x0880('0x40')],_0xc6ff9a[_0x0880('0x42')]);_0x568f61[_0x0880('0x45')]=_[_0x0880('0x44')](_0xc6ff9a[_0x0880('0x40')],qs['fields'](_0x2204f6[_0x0880('0x42')]['fields']));_0x568f61[_0x0880('0x45')]=_0x568f61[_0x0880('0x45')]['length']?_0x568f61['attributes']:_0xc6ff9a[_0x0880('0x40')];if(_0x2204f6[_0x0880('0x42')][_0x0880('0x55')]){_0x568f61[_0x0880('0x56')]=[{'all':!![]}];}_0x568f61=_[_0x0880('0x4e')]({},_0x568f61,_0x2204f6[_0x0880('0x50')]);return db[_0x0880('0x3c')][_0x0880('0x57')](_0x568f61)[_0x0880('0x20')](handleEntityNotFound(_0x23659b,null))[_0x0880('0x20')](respondWithResult(_0x23659b,null))[_0x0880('0x2a')](handleError(_0x23659b,null));};exports[_0x0880('0x58')]=function(_0x277e7f,_0x1b9e83){return db['OpenchannelMessage'][_0x0880('0x58')](_0x277e7f['body'],{})[_0x0880('0x20')](respondWithResult(_0x1b9e83,0xc9))[_0x0880('0x2a')](handleError(_0x1b9e83,null));};exports['update']=function(_0x44e268,_0x1c750a){if(_0x44e268[_0x0880('0x59')]['id']){delete _0x44e268[_0x0880('0x59')]['id'];}return db[_0x0880('0x3c')][_0x0880('0x57')]({'where':{'id':_0x44e268[_0x0880('0x5a')]['id']}})[_0x0880('0x20')](handleEntityNotFound(_0x1c750a,null))[_0x0880('0x20')](saveUpdates(_0x44e268['body'],null))[_0x0880('0x20')](respondWithResult(_0x1c750a,null))[_0x0880('0x2a')](handleError(_0x1c750a,null));};exports[_0x0880('0x36')]=function(_0x3b16d3,_0x361947){return db[_0x0880('0x3c')]['find']({'where':{'id':_0x3b16d3[_0x0880('0x5a')]['id']}})['then'](handleEntityNotFound(_0x361947,null))[_0x0880('0x20')](removeEntity(_0x361947,null))[_0x0880('0x2a')](handleError(_0x361947,null));};exports[_0x0880('0x5b')]=function(_0x516348,_0x4f1cc0){return db[_0x0880('0x3c')]['describe']()[_0x0880('0x20')](respondWithResult(_0x4f1cc0,null))[_0x0880('0x2a')](handleError(_0x4f1cc0,null));};var interaction_log=require(_0x0880('0x5c'))(_0x0880('0x5d'));exports[_0x0880('0x5e')]=function(_0x50ef5b,_0x273c9b,_0x543f77){var _0x296ecd={'agent':{},'channel':_0x0880('0x5f')};if(_0x50ef5b['body']['id']){delete _0x50ef5b[_0x0880('0x59')]['id'];}_0x50ef5b['body']['read']=!![];_0x50ef5b['body'][_0x0880('0x60')]=moment()[_0x0880('0x61')](_0x0880('0x62'));_0x50ef5b[_0x0880('0x59')][_0x0880('0x63')]=_0x50ef5b[_0x0880('0x59')][_0x0880('0x63')]||_0x50ef5b[_0x0880('0x64')]['id'];_0x296ecd[_0x0880('0x65')]['id']=_0x50ef5b[_0x0880('0x59')][_0x0880('0x63')];return db[_0x0880('0x3c')][_0x0880('0x57')]({'where':{'id':_0x50ef5b[_0x0880('0x5a')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x273c9b,null))['then'](saveUpdates(_0x50ef5b[_0x0880('0x59')],null))[_0x0880('0x20')](function(_0x49fbf2){if(_0x49fbf2){_0x296ecd[_0x0880('0x28')]=_0x49fbf2[_0x0880('0x66')]({'plain':!![]});return db[_0x0880('0x67')][_0x0880('0x57')]({'where':{'id':_0x49fbf2[_0x0880('0x68')]}});}return null;})[_0x0880('0x20')](handleEntityNotFound(_0x273c9b,null))[_0x0880('0x20')](function(_0x48fbbd){if(_0x48fbbd){return _0x48fbbd['update']({'UserId':_0x50ef5b['body']['UserId'],'read1stAt':_['isNil'](_0x48fbbd[_0x0880('0x69')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x0880('0x20')](function(_0x59e853){if(_0x59e853){_0x296ecd['interaction']=_0x59e853[_0x0880('0x66')]({'plain':!![]});interaction_log[_0x0880('0x21')](_0x0880('0x6a'),_0x50ef5b['user']['id'],_0x50ef5b[_0x0880('0x64')][_0x0880('0x39')],_0x50ef5b[_0x0880('0x64')]['role'],_0x296ecd[_0x0880('0x6b')]['id'],_0x50ef5b[_0x0880('0x59')]?JSON['stringify'](_0x50ef5b[_0x0880('0x59')]):_0x0880('0x6c'));return respondWithRpcPromise(_0x0880('0x6d'),_0x0880('0x6e'),_0x296ecd);}return null;})[_0x0880('0x20')](function(_0x415591){var _0x2559d2=_0x0880('0x6f')+_0x415591[_0x0880('0x28')]['ContactId'];return db[_0x0880('0x70')][_0x0880('0x42')](_0x2559d2,{'type':db[_0x0880('0x71')]['QueryTypes'][_0x0880('0x72')],'raw':!![]})[_0x0880('0x20')](function(_0x190c47){return _0x190c47;});})[_0x0880('0x20')](function(_0x4eaa3c){if(_0x4eaa3c){_0x296ecd[_0x0880('0x28')][_0x0880('0x73')]=_0x4eaa3c[0x0];if(!_0x50ef5b[_0x0880('0x59')][_0x0880('0x63')])return;return db[_0x0880('0x74')][_0x0880('0x57')]({'where':{'id':_0x50ef5b['body'][_0x0880('0x63')],'role':_0x0880('0x65')},'attributes':['id','name',_0x0880('0x75'),_0x0880('0x76'),_0x0880('0x77')],'raw':!![]});}return null;})[_0x0880('0x20')](function(_0x162653){if(!_0x162653)return null;_0x296ecd[_0x0880('0x28')]['agent']=_0x162653;return _0x296ecd;})[_0x0880('0x20')](function(_0x5ac54d){if(_0x5ac54d){if(_0x50ef5b['body'][_0x0880('0x78')]){_0x296ecd[_0x0880('0x28')][_0x0880('0x79')]=util[_0x0880('0x61')](_0x0880('0x7a'),_0x50ef5b[_0x0880('0x64')][_0x0880('0x39')]);_0x296ecd[_0x0880('0x28')][_0x0880('0x7b')]=_0x296ecd[_0x0880('0x7b')];_0x296ecd[_0x0880('0x28')][_0x0880('0x7c')]=_0x296ecd[_0x0880('0x7b')];_0x296ecd[_0x0880('0x28')][_0x0880('0x7d')]=_0x0880('0x5e');return respondWithRpcPromise(_0x0880('0x7e'),'EventManager',{'event':_0x0880('0x7f'),'message':_0x296ecd[_0x0880('0x28')]},client9002)[_0x0880('0x20')](function(){return _0x296ecd;});}return _0x296ecd;}return null;})['then'](respondWithResult(_0x273c9b,null))['catch'](handleError(_0x273c9b,null));};var interaction_log=require(_0x0880('0x5c'))('openchannel-interactions');exports[_0x0880('0x80')]=function(_0x3574b9,_0x3260f8,_0x39e2f){var _0xd6935d={'agent':{},'channel':'openchannel'};if(_0x3574b9[_0x0880('0x59')]['id']){delete _0x3574b9[_0x0880('0x59')]['id'];}_0x3574b9['body'][_0x0880('0x63')]=_0x3574b9[_0x0880('0x59')]['UserId']||_0x3574b9[_0x0880('0x64')]['id'];_0xd6935d[_0x0880('0x65')]['id']=_0x3574b9[_0x0880('0x59')][_0x0880('0x63')];return db[_0x0880('0x3c')][_0x0880('0x57')]({'where':{'id':_0x3574b9[_0x0880('0x5a')]['id'],'UserId':null}})[_0x0880('0x20')](handleEntityNotFound(_0x3260f8,null))[_0x0880('0x20')](function(_0x3e85ff){if(_0x3e85ff){_0xd6935d[_0x0880('0x28')]=_0x3e85ff[_0x0880('0x66')]({'plain':!![]});return db[_0x0880('0x67')][_0x0880('0x57')]({'where':{'id':_0x3e85ff['OpenchannelInteractionId']}});}return null;})[_0x0880('0x20')](handleEntityNotFound(_0x3260f8,null))['then'](function(_0x322d44){if(_0x322d44){_0xd6935d['interaction']=_0x322d44[_0x0880('0x66')]({'plain':!![]});interaction_log[_0x0880('0x21')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x3574b9[_0x0880('0x64')]['id'],_0x3574b9[_0x0880('0x64')][_0x0880('0x39')],_0x3574b9[_0x0880('0x64')][_0x0880('0x81')],_0xd6935d[_0x0880('0x6b')]['id'],_0x3574b9[_0x0880('0x59')]?JSON['stringify'](_0x3574b9[_0x0880('0x59')]):_0x0880('0x6c'));return respondWithRpcPromise(_0x0880('0x82'),_0x0880('0x83'),_0xd6935d);}return null;})['then'](function(_0x5e8d93){var _0x71dafd='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x5e8d93[_0x0880('0x28')][_0x0880('0x84')];return db[_0x0880('0x70')][_0x0880('0x42')](_0x71dafd,{'type':db[_0x0880('0x71')][_0x0880('0x85')][_0x0880('0x72')],'raw':!![]})[_0x0880('0x20')](function(_0x59f868){return _0x59f868;});})[_0x0880('0x20')](function(_0x3f5c16){if(_0x3f5c16){_0xd6935d[_0x0880('0x28')][_0x0880('0x73')]=_0x3f5c16[0x0];if(!_0x3574b9[_0x0880('0x59')][_0x0880('0x63')])return;return db[_0x0880('0x74')][_0x0880('0x57')]({'where':{'id':_0x3574b9[_0x0880('0x59')][_0x0880('0x63')],'role':_0x0880('0x65')},'attributes':['id','name',_0x0880('0x75'),_0x0880('0x76'),_0x0880('0x77')],'raw':!![]});}return null;})[_0x0880('0x20')](function(_0x157fee){if(!_0x157fee)return null;_0xd6935d[_0x0880('0x28')][_0x0880('0x65')]=_0x157fee;return _0xd6935d;})[_0x0880('0x20')](function(_0xeb2bd3){if(_0xeb2bd3){_0xeb2bd3[_0x0880('0x28')][_0x0880('0x79')]=util[_0x0880('0x61')]('SIP/%s',_0x3574b9[_0x0880('0x64')][_0x0880('0x39')]);_0xeb2bd3[_0x0880('0x28')][_0x0880('0x7b')]=_0xd6935d[_0x0880('0x7b')];_0xeb2bd3[_0x0880('0x28')][_0x0880('0x7c')]=_0xd6935d[_0x0880('0x7b')];_0xeb2bd3['message'][_0x0880('0x7d')]='reject';respondWithRpcPromise('EventManager','EventManager',{'event':_0x0880('0x86'),'message':_0xeb2bd3['message']},client9002);return _0xd6935d;}return null;})[_0x0880('0x20')](respondWithResult(_0x3260f8,null))['catch'](handleError(_0x3260f8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec24=['emit','events','OpenchannelMessage','setMaxListeners','save','update','remove'];(function(_0x56329b,_0x1f047f){var _0x12649e=function(_0x102c97){while(--_0x102c97){_0x56329b['push'](_0x56329b['shift']());}};_0x12649e(++_0x1f047f);}(_0xec24,0xef));var _0x4ec2=function(_0x1027dd,_0x50c4a9){_0x1027dd=_0x1027dd-0x0;var _0x496399=_0xec24[_0x1027dd];return _0x496399;};'use strict';var EventEmitter=require(_0x4ec2('0x0'));var OpenchannelMessage=require('../../mysqldb')['db'][_0x4ec2('0x1')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0x4ec2('0x2')](0x0);var events={'afterCreate':_0x4ec2('0x3'),'afterUpdate':_0x4ec2('0x4'),'afterDestroy':_0x4ec2('0x5')};function emitEvent(_0x234593){return function(_0x2bfb13,_0x51775d,_0x38c1f1){OpenchannelMessageEvents[_0x4ec2('0x6')](_0x234593+':'+_0x2bfb13['id'],_0x2bfb13);OpenchannelMessageEvents[_0x4ec2('0x6')](_0x234593,_0x2bfb13);_0x38c1f1(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelMessage['hook'](e,emitEvent(event));}}module['exports']=OpenchannelMessageEvents;
\ No newline at end of file
+var _0x1aed=['hook','exports','OpenchannelMessage','save','update','remove','emit','hasOwnProperty'];(function(_0x24b5c9,_0x27f60a){var _0x3a92ef=function(_0x36fa45){while(--_0x36fa45){_0x24b5c9['push'](_0x24b5c9['shift']());}};_0x3a92ef(++_0x27f60a);}(_0x1aed,0x7a));var _0xd1ae=function(_0x23d731,_0x372f4c){_0x23d731=_0x23d731-0x0;var _0x14342b=_0x1aed[_0x23d731];return _0x14342b;};'use strict';var EventEmitter=require('events');var OpenchannelMessage=require('../../mysqldb')['db'][_0xd1ae('0x0')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xd1ae('0x1'),'afterUpdate':_0xd1ae('0x2'),'afterDestroy':_0xd1ae('0x3')};function emitEvent(_0x4c482c){return function(_0x3c70b0,_0x5c160a,_0x3b37d4){OpenchannelMessageEvents[_0xd1ae('0x4')](_0x4c482c+':'+_0x3c70b0['id'],_0x3c70b0);OpenchannelMessageEvents[_0xd1ae('0x4')](_0x4c482c,_0x3c70b0);_0x3b37d4(null);};}for(var e in events){if(events[_0xd1ae('0x5')](e)){var event=events[e];OpenchannelMessage[_0xd1ae('0x6')](e,emitEvent(event));}}module[_0xd1ae('0x7')]=OpenchannelMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea28=['moment','bluebird','request-promise','path','../../config/environment','./openchannelMessage.attributes','exports','define','OpenchannelMessage','openchannel_messages','fti_openchannel_messages','body','FULLTEXT','models','direction','toLowerCase','out','secret','isNil','UserId','OpenchannelInteraction','OpenchannelInteractionId','update','createdAt','catch','error','CmContact','describe','then','OpenchannelAccount','find','OpenchannelAccountId','Interactions','get','info','OpenchannelMessage,\x20%s,\x20%s','format','Forwarding\x20message\x20%d\x20to\x20%s','replyUri','length','Interaction','omit','Contact','POST','GET','afterCreate','threadId','finally','utf8mb4','lodash','util','../../config/logger','api'];(function(_0x559469,_0x3cfcef){var _0x2dbeb4=function(_0x4881bb){while(--_0x4881bb){_0x559469['push'](_0x559469['shift']());}};_0x2dbeb4(++_0x3cfcef);}(_0xea28,0x13a));var _0x8ea2=function(_0x3f3f6a,_0x50a975){_0x3f3f6a=_0x3f3f6a-0x0;var _0x9afa11=_0xea28[_0x3f3f6a];return _0x9afa11;};'use strict';var _=require(_0x8ea2('0x0'));var util=require(_0x8ea2('0x1'));var logger=require(_0x8ea2('0x2'))(_0x8ea2('0x3'));var moment=require(_0x8ea2('0x4'));var BPromise=require(_0x8ea2('0x5'));var rp=require(_0x8ea2('0x6'));var fs=require('fs');var path=require(_0x8ea2('0x7'));var rimraf=require('rimraf');var config=require(_0x8ea2('0x8'));var attributes=require(_0x8ea2('0x9'));module[_0x8ea2('0xa')]=function(_0x513a0d,_0x29b82b){return _0x513a0d[_0x8ea2('0xb')](_0x8ea2('0xc'),attributes,{'tableName':_0x8ea2('0xd'),'paranoid':![],'indexes':[{'name':_0x8ea2('0xe'),'fields':[_0x8ea2('0xf')],'type':_0x8ea2('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x320750,_0x3de4a1,_0x3000f9){var _0x3d0b35=_0x513a0d[_0x8ea2('0x11')];var _0x500b82=_0x320750['get']({'plain':!![]});if(_0x500b82[_0x8ea2('0x12')][_0x8ea2('0x13')]()==='in'||_0x500b82[_0x8ea2('0x12')]['toLowerCase']()===_0x8ea2('0x14')&&!_0x500b82[_0x8ea2('0x15')]&&!_[_0x8ea2('0x16')](_0x500b82[_0x8ea2('0x17')])){_0x3d0b35[_0x8ea2('0x18')]['findOne']({'where':{'id':_0x500b82[_0x8ea2('0x19')]}})['then'](function(_0x4b2192){if(_0x4b2192){_0x4b2192[_0x8ea2('0x1a')]({'lastMsgAt':_0x500b82[_0x8ea2('0x1b')],'lastMsgDirection':_0x500b82[_0x8ea2('0x12')][_0x8ea2('0x13')]()});}})[_0x8ea2('0x1c')](function(_0xbb9bd1){console[_0x8ea2('0x1d')](_0xbb9bd1);});}if(_0x500b82[_0x8ea2('0x12')]===_0x8ea2('0x14')&&!_0x500b82[_0x8ea2('0x15')]){var _0x2dfa7c;_0x3d0b35[_0x8ea2('0x1e')][_0x8ea2('0x1f')]()[_0x8ea2('0x20')](function(_0x1b64cf){return _0x3d0b35[_0x8ea2('0x21')][_0x8ea2('0x22')]({'where':{'id':_0x500b82[_0x8ea2('0x23')]},'include':[{'model':_0x3d0b35[_0x8ea2('0x18')],'as':_0x8ea2('0x24'),'where':{'id':_0x500b82[_0x8ea2('0x19')]},'limit':0x1,'include':[{'model':_0x3d0b35[_0x8ea2('0x1e')],'as':'Contact','attributes':_['keys'](_0x1b64cf)}]}]});})[_0x8ea2('0x20')](function(_0x248c18){_0x2dfa7c=_0x248c18[_0x8ea2('0x25')]({'plain':!![]});if(_0x2dfa7c&&_0x2dfa7c['replyUri']){logger[_0x8ea2('0x26')](_0x8ea2('0x27'),'afterCreate',util[_0x8ea2('0x28')](_0x8ea2('0x29'),_0x500b82['id'],_0x2dfa7c[_0x8ea2('0x2a')]));if(_0x2dfa7c[_0x8ea2('0x24')]&&_0x2dfa7c[_0x8ea2('0x24')][_0x8ea2('0x2b')]){_0x500b82[_0x8ea2('0x2c')]=_[_0x8ea2('0x2d')](_0x2dfa7c[_0x8ea2('0x24')][0x0],'Contact');_0x500b82[_0x8ea2('0x2e')]=_0x2dfa7c['Interactions'][0x0][_0x8ea2('0x2e')];}var _0x3de4a1={'method':_0x8ea2('0x2f'),'uri':encodeURI(_0x2dfa7c['replyUri']),'json':!![],'resolveWithFullResponse':!![]};switch(_0x3de4a1['method']){case _0x8ea2('0x30'):_0x3de4a1['qs']=_0x500b82;break;case'POST':_0x3de4a1[_0x8ea2('0xf')]=_0x500b82;break;}return rp(_0x3de4a1)['then'](function(_0x3be291){logger[_0x8ea2('0x26')](_0x8ea2('0x27'),_0x8ea2('0x31'),util['format']('Message\x20%d\x20forwarded\x20to\x20%s',_0x500b82['id'],_0x2dfa7c[_0x8ea2('0x2a')]));if(_0x3be291['body'][_0x8ea2('0x32')]&&_0x3be291[_0x8ea2('0xf')][_0x8ea2('0x32')]!=_0x500b82[_0x8ea2('0x2c')][_0x8ea2('0x32')]){return _0x3d0b35[_0x8ea2('0x18')][_0x8ea2('0x1a')]({'threadId':_0x3be291[_0x8ea2('0xf')][_0x8ea2('0x32')]},{'logging':!![],'where':{'id':_0x500b82[_0x8ea2('0x2c')]['id']}});}else{return;}})['then'](function(){return _0x320750['update']({'read':!![]});})[_0x8ea2('0x1c')](function(_0x188553){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x8ea2('0x31'),util['inspect'](_0x188553,{'showHidden':![],'depth':null}));_0x3000f9();});}else{_0x3000f9();}})[_0x8ea2('0x33')](function(){_0x3000f9();});}else{_0x3000f9();}}},'charset':_0x8ea2('0x34'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xefda=['request-promise','path','rimraf','../../config/environment','./openchannelMessage.attributes','exports','define','OpenchannelMessage','openchannel_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','findOne','then','update','createdAt','catch','error','describe','OpenchannelAccount','find','OpenchannelAccountId','Interactions','OpenchannelInteractionId','CmContact','Contact','keys','replyUri','info','OpenchannelMessage,\x20%s,\x20%s','afterCreate','length','omit','POST','method','GET','format','threadId','inspect','finally','utf8mb4','lodash','api','moment'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xefda,0x96));var _0xaefd=function(_0x294dfc,_0x3a8147){_0x294dfc=_0x294dfc-0x0;var _0x18c7d2=_0xefda[_0x294dfc];return _0x18c7d2;};'use strict';var _=require(_0xaefd('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xaefd('0x1'));var moment=require(_0xaefd('0x2'));var BPromise=require('bluebird');var rp=require(_0xaefd('0x3'));var fs=require('fs');var path=require(_0xaefd('0x4'));var rimraf=require(_0xaefd('0x5'));var config=require(_0xaefd('0x6'));var attributes=require(_0xaefd('0x7'));module[_0xaefd('0x8')]=function(_0x497258,_0x3677ea){return _0x497258[_0xaefd('0x9')](_0xaefd('0xa'),attributes,{'tableName':_0xaefd('0xb'),'paranoid':![],'indexes':[{'name':'fti_openchannel_messages','fields':[_0xaefd('0xc')],'type':_0xaefd('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x463ce7,_0x4d44ed,_0x48a255){var _0x54a3b1=_0x497258[_0xaefd('0xe')];var _0x16b36e=_0x463ce7[_0xaefd('0xf')]({'plain':!![]});if(_0x16b36e[_0xaefd('0x10')][_0xaefd('0x11')]()==='in'||_0x16b36e[_0xaefd('0x10')][_0xaefd('0x11')]()===_0xaefd('0x12')&&!_0x16b36e[_0xaefd('0x13')]&&!_[_0xaefd('0x14')](_0x16b36e[_0xaefd('0x15')])){_0x54a3b1['OpenchannelInteraction'][_0xaefd('0x16')]({'where':{'id':_0x16b36e['OpenchannelInteractionId']}})[_0xaefd('0x17')](function(_0x1725af){if(_0x1725af){_0x1725af[_0xaefd('0x18')]({'lastMsgAt':_0x16b36e[_0xaefd('0x19')],'lastMsgDirection':_0x16b36e['direction'][_0xaefd('0x11')]()});}})[_0xaefd('0x1a')](function(_0x41f345){console[_0xaefd('0x1b')](_0x41f345);});}if(_0x16b36e[_0xaefd('0x10')]===_0xaefd('0x12')&&!_0x16b36e[_0xaefd('0x13')]){var _0x23d736;_0x54a3b1['CmContact'][_0xaefd('0x1c')]()[_0xaefd('0x17')](function(_0x9748f4){return _0x54a3b1[_0xaefd('0x1d')][_0xaefd('0x1e')]({'where':{'id':_0x16b36e[_0xaefd('0x1f')]},'include':[{'model':_0x54a3b1['OpenchannelInteraction'],'as':_0xaefd('0x20'),'where':{'id':_0x16b36e[_0xaefd('0x21')]},'limit':0x1,'include':[{'model':_0x54a3b1[_0xaefd('0x22')],'as':_0xaefd('0x23'),'attributes':_[_0xaefd('0x24')](_0x9748f4)}]}]});})[_0xaefd('0x17')](function(_0x5282ed){_0x23d736=_0x5282ed[_0xaefd('0xf')]({'plain':!![]});if(_0x23d736&&_0x23d736[_0xaefd('0x25')]){logger[_0xaefd('0x26')](_0xaefd('0x27'),_0xaefd('0x28'),util['format']('Forwarding\x20message\x20%d\x20to\x20%s',_0x16b36e['id'],_0x23d736['replyUri']));if(_0x23d736[_0xaefd('0x20')]&&_0x23d736[_0xaefd('0x20')][_0xaefd('0x29')]){_0x16b36e['Interaction']=_[_0xaefd('0x2a')](_0x23d736['Interactions'][0x0],_0xaefd('0x23'));_0x16b36e[_0xaefd('0x23')]=_0x23d736[_0xaefd('0x20')][0x0]['Contact'];}var _0x4d44ed={'method':_0xaefd('0x2b'),'uri':encodeURI(_0x23d736[_0xaefd('0x25')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x4d44ed[_0xaefd('0x2c')]){case _0xaefd('0x2d'):_0x4d44ed['qs']=_0x16b36e;break;case'POST':_0x4d44ed[_0xaefd('0xc')]=_0x16b36e;break;}return rp(_0x4d44ed)['then'](function(_0x810bf){logger[_0xaefd('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0xaefd('0x28'),util[_0xaefd('0x2e')]('Message\x20%d\x20forwarded\x20to\x20%s',_0x16b36e['id'],_0x23d736[_0xaefd('0x25')]));if(_0x810bf[_0xaefd('0xc')][_0xaefd('0x2f')]&&_0x810bf['body'][_0xaefd('0x2f')]!=_0x16b36e['Interaction'][_0xaefd('0x2f')]){return _0x54a3b1['OpenchannelInteraction']['update']({'threadId':_0x810bf[_0xaefd('0xc')][_0xaefd('0x2f')]},{'logging':!![],'where':{'id':_0x16b36e['Interaction']['id']}});}else{return;}})['then'](function(){return _0x463ce7['update']({'read':!![]});})[_0xaefd('0x1a')](function(_0x280eab){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0xaefd('0x28'),util[_0xaefd('0x30')](_0x280eab,{'showHidden':![],'depth':null}));_0x48a255();});}else{_0x48a255();}})[_0xaefd('0x31')](function(){_0x48a255();});}else{_0x48a255();}}},'charset':_0xaefd('0x32'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['stringify','error','code','message','info','result','OpenchannelMessage','create','body','options','raw','CreateOpenchannelMessage','catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','./openchannelMessage.socket','then','OpenchannelMessage,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x157fcc,_0x5c162c){var _0x500c12=function(_0x120d15){while(--_0x120d15){_0x157fcc['push'](_0x157fcc['shift']());}};_0x500c12(++_0x5c162c);}(_0x5f66,0x1a0));var _0x65f6=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0x5f66[_0x580576];return _0x3f55a0;};'use strict';var _=require('lodash');var util=require(_0x65f6('0x0'));var moment=require('moment');var BPromise=require(_0x65f6('0x1'));var rs=require(_0x65f6('0x2'));var fs=require('fs');var Redis=require(_0x65f6('0x3'));var db=require(_0x65f6('0x4'))['db'];var utils=require(_0x65f6('0x5'));var logger=require('../../config/logger')(_0x65f6('0x6'));var config=require('../../config/environment');var jayson=require(_0x65f6('0x7'));var client=jayson[_0x65f6('0x8')]['http']({'port':0x232a});config['redis']=_[_0x65f6('0x9')](config[_0x65f6('0xa')],{'host':_0x65f6('0xb'),'port':0x18eb});var socket=require(_0x65f6('0xc'))(new Redis(config[_0x65f6('0xa')]));require(_0x65f6('0xd'))['register'](socket);function respondWithRpcPromise(_0x5123ee,_0x18fea1,_0x2f6d5b){return new BPromise(function(_0x264647,_0x25c416){return client['request'](_0x5123ee,_0x2f6d5b)[_0x65f6('0xe')](function(_0x571436){logger['info'](_0x65f6('0xf'),_0x18fea1,'request\x20sent');logger[_0x65f6('0x10')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x18fea1,_0x65f6('0x11'),JSON[_0x65f6('0x12')](_0x571436));if(_0x571436[_0x65f6('0x13')]){if(_0x571436[_0x65f6('0x13')][_0x65f6('0x14')]===0x1f4){logger[_0x65f6('0x13')](_0x65f6('0xf'),_0x18fea1,_0x571436[_0x65f6('0x13')][_0x65f6('0x15')]);return _0x25c416(_0x571436[_0x65f6('0x13')]['message']);}logger[_0x65f6('0x13')]('OpenchannelMessage,\x20%s,\x20%s',_0x18fea1,_0x571436['error'][_0x65f6('0x15')]);return _0x264647(_0x571436[_0x65f6('0x13')][_0x65f6('0x15')]);}else{logger[_0x65f6('0x16')](_0x65f6('0xf'),_0x18fea1,_0x65f6('0x11'));_0x264647(_0x571436[_0x65f6('0x17')][_0x65f6('0x15')]);}})['catch'](function(_0x4d79a1){logger[_0x65f6('0x13')]('OpenchannelMessage,\x20%s,\x20%s',_0x18fea1,_0x4d79a1);_0x25c416(_0x4d79a1);});});}exports['CreateOpenchannelMessage']=function(_0x5c5b91){var _0x365159=this;return new Promise(function(_0x21ea88,_0x5114a4){return db[_0x65f6('0x18')][_0x65f6('0x19')](_0x5c5b91[_0x65f6('0x1a')],{'raw':_0x5c5b91[_0x65f6('0x1b')]?_0x5c5b91[_0x65f6('0x1b')][_0x65f6('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x197a49){logger['info']('CreateOpenchannelMessage',_0x5c5b91);logger[_0x65f6('0x10')](_0x65f6('0x1d'),_0x5c5b91,JSON['stringify'](_0x197a49));_0x21ea88(_0x197a49);})[_0x65f6('0x1e')](function(_0x471a33){logger[_0x65f6('0x13')](_0x65f6('0x1d'),_0x471a33['message'],_0x5c5b91);_0x5114a4(_0x365159[_0x65f6('0x13')](0x1f4,_0x471a33[_0x65f6('0x15')]));});});};
\ No newline at end of file
+var _0x1261=['../../config/utils','../../config/logger','rpc','../../config/environment','http','redis','localhost','socket.io-emitter','./openchannelMessage.socket','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','OpenchannelMessage','options','raw','then','CreateOpenchannelMessage','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x3cbee0,_0x352a0a){var _0x2ed094=function(_0x5697f7){while(--_0x5697f7){_0x3cbee0['push'](_0x3cbee0['shift']());}};_0x2ed094(++_0x352a0a);}(_0x1261,0x144));var _0x1126=function(_0xd056f7,_0xedbba9){_0xd056f7=_0xd056f7-0x0;var _0xbcb407=_0x1261[_0xd056f7];return _0xbcb407;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var moment=require(_0x1126('0x1'));var BPromise=require(_0x1126('0x2'));var rs=require(_0x1126('0x3'));var fs=require('fs');var Redis=require(_0x1126('0x4'));var db=require(_0x1126('0x5'))['db'];var utils=require(_0x1126('0x6'));var logger=require(_0x1126('0x7'))(_0x1126('0x8'));var config=require(_0x1126('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1126('0xa')]({'port':0x232a});config[_0x1126('0xb')]=_['defaults'](config[_0x1126('0xb')],{'host':_0x1126('0xc'),'port':0x18eb});var socket=require(_0x1126('0xd'))(new Redis(config[_0x1126('0xb')]));require(_0x1126('0xe'))['register'](socket);function respondWithRpcPromise(_0x3f09ac,_0x18dbe6,_0x167ef1){return new BPromise(function(_0x5e72e2,_0x34571c){return client['request'](_0x3f09ac,_0x167ef1)['then'](function(_0x15c071){logger['info'](_0x1126('0xf'),_0x18dbe6,_0x1126('0x10'));logger[_0x1126('0x11')](_0x1126('0x12'),_0x18dbe6,_0x1126('0x10'),JSON[_0x1126('0x13')](_0x15c071));if(_0x15c071[_0x1126('0x14')]){if(_0x15c071[_0x1126('0x14')][_0x1126('0x15')]===0x1f4){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x18dbe6,_0x15c071[_0x1126('0x14')][_0x1126('0x16')]);return _0x34571c(_0x15c071[_0x1126('0x14')]['message']);}logger[_0x1126('0x14')]('OpenchannelMessage,\x20%s,\x20%s',_0x18dbe6,_0x15c071[_0x1126('0x14')][_0x1126('0x16')]);return _0x5e72e2(_0x15c071[_0x1126('0x14')]['message']);}else{logger[_0x1126('0x17')](_0x1126('0xf'),_0x18dbe6,'request\x20sent');_0x5e72e2(_0x15c071['result'][_0x1126('0x16')]);}})[_0x1126('0x18')](function(_0x58d11a){logger['error'](_0x1126('0xf'),_0x18dbe6,_0x58d11a);_0x34571c(_0x58d11a);});});}exports['CreateOpenchannelMessage']=function(_0x22ed37){var _0x1d6d19=this;return new Promise(function(_0x2f70ac,_0x54400a){return db[_0x1126('0x19')]['create'](_0x22ed37['body'],{'raw':_0x22ed37[_0x1126('0x1a')]?_0x22ed37[_0x1126('0x1a')][_0x1126('0x1b')]===undefined?!![]:![]:!![]})[_0x1126('0x1c')](function(_0x526ca1){logger[_0x1126('0x17')](_0x1126('0x1d'),_0x22ed37);logger['debug'](_0x1126('0x1d'),_0x22ed37,JSON['stringify'](_0x526ca1));_0x2f70ac(_0x526ca1);})['catch'](function(_0x4b57ab){logger[_0x1126('0x14')](_0x1126('0x1d'),_0x4b57ab[_0x1126('0x16')],_0x22ed37);_0x54400a(_0x1d6d19[_0x1126('0x14')](0x1f4,_0x4b57ab[_0x1126('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x72ea=['./openchannelMessage.events','save','remove','emit','removeListener','register','length','openchannelMessage:'];(function(_0x55e6c0,_0x4cd562){var _0x343775=function(_0x40186e){while(--_0x40186e){_0x55e6c0['push'](_0x55e6c0['shift']());}};_0x343775(++_0x4cd562);}(_0x72ea,0x1e8));var _0xa72e=function(_0x156b3e,_0x4e6e62){_0x156b3e=_0x156b3e-0x0;var _0x2dad1b=_0x72ea[_0x156b3e];return _0x2dad1b;};'use strict';var OpenchannelMessageEvents=require(_0xa72e('0x0'));var events=[_0xa72e('0x1'),_0xa72e('0x2'),'update'];function createListener(_0x19f0de,_0x3280df){return function(_0x2701c5){_0x3280df[_0xa72e('0x3')](_0x19f0de,_0x2701c5);};}function removeListener(_0x351fb9,_0x3bf05f){return function(){OpenchannelMessageEvents[_0xa72e('0x4')](_0x351fb9,_0x3bf05f);};}exports[_0xa72e('0x5')]=function(_0x9b66ae){for(var _0x55882c=0x0,_0x39c65a=events[_0xa72e('0x6')];_0x55882c<_0x39c65a;_0x55882c++){var _0x1b454c=events[_0x55882c];var _0x372dcb=createListener(_0xa72e('0x7')+_0x1b454c,_0x9b66ae);OpenchannelMessageEvents['on'](_0x1b454c,_0x372dcb);}};
\ No newline at end of file
+var _0x18d4=['./openchannelMessage.events','remove','update','emit','removeListener','register','length'];(function(_0x4845c8,_0x443541){var _0x489291=function(_0x395b6f){while(--_0x395b6f){_0x4845c8['push'](_0x4845c8['shift']());}};_0x489291(++_0x443541);}(_0x18d4,0x1ab));var _0x418d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x18d4[_0x3dd15e];return _0x231fd0;};'use strict';var OpenchannelMessageEvents=require(_0x418d('0x0'));var events=['save',_0x418d('0x1'),_0x418d('0x2')];function createListener(_0x372ffd,_0x429c3c){return function(_0x1fcd50){_0x429c3c[_0x418d('0x3')](_0x372ffd,_0x1fcd50);};}function removeListener(_0x4df9b4,_0x7e3eb9){return function(){OpenchannelMessageEvents[_0x418d('0x4')](_0x4df9b4,_0x7e3eb9);};}exports[_0x418d('0x5')]=function(_0x40e5fd){for(var _0x460023=0x0,_0x465afe=events[_0x418d('0x6')];_0x460023<_0x465afe;_0x460023++){var _0x193fd1=events[_0x460023];var _0x4ed380=createListener('openchannelMessage:'+_0x193fd1,_0x40e5fd);OpenchannelMessageEvents['on'](_0x193fd1,_0x4ed380);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf573=['../../components/interaction/service','./openchannelQueue.controller','get','/describe','show','/:id/members','isAuthenticated','getMembers','/:id/users','getAgents','create','post','/:id/teams','addAgents','/:id','destroy','exports','multer','util','Router','fs-extra','../../components/auth/service'];(function(_0x48df1d,_0x36cffe){var _0x556697=function(_0x58ea44){while(--_0x58ea44){_0x48df1d['push'](_0x48df1d['shift']());}};_0x556697(++_0x36cffe);}(_0xf573,0x103));var _0x3f57=function(_0x4f68ac,_0x26c135){_0x4f68ac=_0x4f68ac-0x0;var _0x44a1ff=_0xf573[_0x4f68ac];return _0x44a1ff;};'use strict';var multer=require(_0x3f57('0x0'));var util=require(_0x3f57('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x3f57('0x2')]();var fs_extra=require(_0x3f57('0x3'));var auth=require(_0x3f57('0x4'));var interaction=require(_0x3f57('0x5'));var config=require('../../config/environment');var controller=require(_0x3f57('0x6'));router[_0x3f57('0x7')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x3f57('0x8'),auth['isAuthenticated'](),controller['describe']);router[_0x3f57('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x3f57('0x9')]);router[_0x3f57('0x7')](_0x3f57('0xa'),auth[_0x3f57('0xb')](),controller[_0x3f57('0xc')]);router[_0x3f57('0x7')]('/:id/teams',auth[_0x3f57('0xb')](),controller['getTeams']);router[_0x3f57('0x7')](_0x3f57('0xd'),auth['isAuthenticated'](),controller[_0x3f57('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x3f57('0xf')]);router[_0x3f57('0x10')](_0x3f57('0x11'),auth[_0x3f57('0xb')](),controller['addTeams']);router['post'](_0x3f57('0xd'),auth['isAuthenticated'](),controller[_0x3f57('0x12')]);router['put']('/:id',auth[_0x3f57('0xb')](),controller['update']);router['delete'](_0x3f57('0x13'),auth['isAuthenticated'](),controller[_0x3f57('0x14')]);router['delete']('/:id/teams',auth[_0x3f57('0xb')](),controller['removeTeams']);router['delete']('/:id/users',auth[_0x3f57('0xb')](),controller['removeAgents']);module[_0x3f57('0x15')]=router;
\ No newline at end of file
+var _0xeec8=['put','update','delete','removeTeams','removeAgents','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueue.controller','get','isAuthenticated','describe','/:id','show','/:id/members','getMembers','getTeams','create','post','/:id/teams','addTeams','/:id/users'];(function(_0x26ddb3,_0x1e8676){var _0x227a81=function(_0x28de22){while(--_0x28de22){_0x26ddb3['push'](_0x26ddb3['shift']());}};_0x227a81(++_0x1e8676);}(_0xeec8,0x92));var _0x8eec=function(_0x3b17ac,_0x33c0f3){_0x3b17ac=_0x3b17ac-0x0;var _0x4e65ba=_0xeec8[_0x3b17ac];return _0x4e65ba;};'use strict';var multer=require('multer');var util=require(_0x8eec('0x0'));var path=require(_0x8eec('0x1'));var timeout=require(_0x8eec('0x2'));var express=require(_0x8eec('0x3'));var router=express['Router']();var fs_extra=require(_0x8eec('0x4'));var auth=require(_0x8eec('0x5'));var interaction=require(_0x8eec('0x6'));var config=require(_0x8eec('0x7'));var controller=require(_0x8eec('0x8'));router[_0x8eec('0x9')]('/',auth[_0x8eec('0xa')](),controller['index']);router['get']('/describe',auth[_0x8eec('0xa')](),controller[_0x8eec('0xb')]);router[_0x8eec('0x9')](_0x8eec('0xc'),auth[_0x8eec('0xa')](),controller[_0x8eec('0xd')]);router[_0x8eec('0x9')](_0x8eec('0xe'),auth[_0x8eec('0xa')](),controller[_0x8eec('0xf')]);router['get']('/:id/teams',auth[_0x8eec('0xa')](),controller[_0x8eec('0x10')]);router[_0x8eec('0x9')]('/:id/users',auth[_0x8eec('0xa')](),controller['getAgents']);router['post']('/',auth[_0x8eec('0xa')](),controller[_0x8eec('0x11')]);router[_0x8eec('0x12')](_0x8eec('0x13'),auth[_0x8eec('0xa')](),controller[_0x8eec('0x14')]);router[_0x8eec('0x12')](_0x8eec('0x15'),auth['isAuthenticated'](),controller['addAgents']);router[_0x8eec('0x16')](_0x8eec('0xc'),auth['isAuthenticated'](),controller[_0x8eec('0x17')]);router[_0x8eec('0x18')](_0x8eec('0xc'),auth['isAuthenticated'](),controller['destroy']);router[_0x8eec('0x18')]('/:id/teams',auth['isAuthenticated'](),controller[_0x8eec('0x19')]);router[_0x8eec('0x18')](_0x8eec('0x15'),auth['isAuthenticated'](),controller[_0x8eec('0x1a')]);module[_0x8eec('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3bd=['beepall','roundrobin','sequelize','exports','name','STRING','ENUM'];(function(_0x514989,_0x2437bb){var _0x132218=function(_0x2c93c2){while(--_0x2c93c2){_0x514989['push'](_0x514989['shift']());}};_0x132218(++_0x2437bb);}(_0xa3bd,0x144));var _0xda3b=function(_0xd3fdcb,_0x149595){_0xd3fdcb=_0xd3fdcb-0x0;var _0x4309b0=_0xa3bd[_0xd3fdcb];return _0x4309b0;};'use strict';var Sequelize=require(_0xda3b('0x0'));module[_0xda3b('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xda3b('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xda3b('0x3')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xda3b('0x4')]('rrmemory',_0xda3b('0x5'),_0xda3b('0x6'))}};
\ No newline at end of file
+var _0xa071=['name','STRING','INTEGER','ENUM','rrmemory','beepall','roundrobin','sequelize'];(function(_0x4ecb59,_0x5e38ca){var _0x2c29d3=function(_0x4eaf8c){while(--_0x4eaf8c){_0x4ecb59['push'](_0x4ecb59['shift']());}};_0x2c29d3(++_0x5e38ca);}(_0xa071,0x15f));var _0x1a07=function(_0x525813,_0x704d1a){_0x525813=_0x525813-0x0;var _0x1683f7=_0xa071[_0x525813];return _0x1683f7;};'use strict';var Sequelize=require(_0x1a07('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0x1a07('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x1a07('0x2')]},'timeout':{'type':Sequelize[_0x1a07('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x1a07('0x4')](_0x1a07('0x5'),_0x1a07('0x6'),_0x1a07('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb64f=['describe','getMembers','findOne','OpenchannelQueueId','options','User','UserId','updatedAt','createdAt','rows','format','%s/%s','openchannelPause','getTeams','Team','addTeams','ids','Agents','online','voicePause','interface','flatMap','transaction','findOrCreate','forEach','userOpenchannelQueue:save','select','tq.TeamId','from','team_has_openchannel_queues','join','OpenchannelQueueId\x20=\x20?','sequelize','toString','SELECT','every','TeamId','includes','all','union','value','removeTeams','isEmpty','removeAgents','emit','userOpenchannelQueue:remove','addAgents','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','register','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','OpenchannelQueues','UserProfileResource','name','send','index','map','OpenchannelQueue','type','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','include','findAll','catch','show','params','rawAttributes','fields','includeAll','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find'];(function(_0x28b0a1,_0x99bd0a){var _0x21470c=function(_0x45bf01){while(--_0x45bf01){_0x28b0a1['push'](_0x28b0a1['shift']());}};_0x21470c(++_0x99bd0a);}(_0xb64f,0xba));var _0xfb64=function(_0x3c5f8d,_0x39891f){_0x3c5f8d=_0x3c5f8d-0x0;var _0x3b7beb=_0xb64f[_0x3c5f8d];return _0x3b7beb;};'use strict';var emlformat=require(_0xfb64('0x0'));var rimraf=require(_0xfb64('0x1'));var zipdir=require(_0xfb64('0x2'));var jsonpatch=require(_0xfb64('0x3'));var rp=require('request-promise');var moment=require(_0xfb64('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xfb64('0x5'));var util=require(_0xfb64('0x6'));var path=require(_0xfb64('0x7'));var sox=require(_0xfb64('0x8'));var csv=require(_0xfb64('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfb64('0xa'));var squel=require(_0xfb64('0xb'));var crypto=require(_0xfb64('0xc'));var jsforce=require(_0xfb64('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfb64('0x9'));var querystring=require(_0xfb64('0xe'));var Papa=require(_0xfb64('0xf'));var Redis=require('ioredis');var authService=require(_0xfb64('0x10'));var qs=require(_0xfb64('0x11'));var as=require(_0xfb64('0x12'));var hardwareService=require(_0xfb64('0x13'));var logger=require('../../config/logger')(_0xfb64('0x14'));var utils=require(_0xfb64('0x15'));var config=require(_0xfb64('0x16'));var licenseUtil=require(_0xfb64('0x17'));var db=require(_0xfb64('0x18'))['db'];config[_0xfb64('0x19')]=_[_0xfb64('0x1a')](config['redis'],{'host':_0xfb64('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfb64('0x19')]));require('./openchannelQueue.socket')[_0xfb64('0x1c')](socket);function respondWithStatusCode(_0x3505d8,_0x2877ef){_0x2877ef=_0x2877ef||0xcc;return function(_0x3dde3e){if(_0x3dde3e){return _0x3505d8[_0xfb64('0x1d')](_0x2877ef);}return _0x3505d8[_0xfb64('0x1e')](_0x2877ef)[_0xfb64('0x1f')]();};}function respondWithResult(_0x4d943,_0x1e6e7c){_0x1e6e7c=_0x1e6e7c||0xc8;return function(_0x4d30a0){if(_0x4d30a0){return _0x4d943[_0xfb64('0x1e')](_0x1e6e7c)[_0xfb64('0x20')](_0x4d30a0);}};}function respondWithFilteredResult(_0x9a3cd8,_0x593ef5){return function(_0x285898){if(_0x285898){var _0x7e5454=typeof _0x593ef5[_0xfb64('0x21')]===_0xfb64('0x22')&&typeof _0x593ef5[_0xfb64('0x23')]===_0xfb64('0x22');var _0x22c415=_0x285898[_0xfb64('0x24')];var _0x1adb44=_0x7e5454?0x0:_0x593ef5[_0xfb64('0x21')];var _0x453d52=_0x7e5454?_0x285898[_0xfb64('0x24')]:_0x593ef5[_0xfb64('0x21')]+_0x593ef5[_0xfb64('0x23')];var _0x4a5912;if(_0x453d52>=_0x22c415){_0x453d52=_0x22c415;_0x4a5912=0xc8;}else{_0x4a5912=0xce;}_0x9a3cd8[_0xfb64('0x1e')](_0x4a5912);return _0x9a3cd8['set'](_0xfb64('0x25'),_0x1adb44+'-'+_0x453d52+'/'+_0x22c415)[_0xfb64('0x20')](_0x285898);}return null;};}function patchUpdates(_0x27b09c){return function(_0x35c41d){try{jsonpatch[_0xfb64('0x26')](_0x35c41d,_0x27b09c,!![]);}catch(_0x187b19){return BPromise[_0xfb64('0x27')](_0x187b19);}return _0x35c41d['save']();};}function saveUpdates(_0x4515d3,_0x54ea0a){return function(_0x2a2d89){if(_0x2a2d89){return _0x2a2d89[_0xfb64('0x28')](_0x4515d3)[_0xfb64('0x29')](function(_0x3eaa6f){return _0x3eaa6f;});}return null;};}function removeEntity(_0x16dd93,_0x253b5f){return function(_0x47dd97){if(_0x47dd97){return _0x47dd97[_0xfb64('0x2a')]()[_0xfb64('0x29')](function(){var _0x20bc1c=_0x47dd97['get']({'plain':!![]});var _0x2c8e5f=_0xfb64('0x2b');return db[_0xfb64('0x2c')][_0xfb64('0x2a')]({'where':{'type':_0x2c8e5f,'resourceId':_0x20bc1c['id']}})['then'](function(){return _0x47dd97;});})[_0xfb64('0x29')](function(){_0x16dd93[_0xfb64('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5af2b7,_0x3aed15){return function(_0x2ef6ba){if(!_0x2ef6ba){_0x5af2b7[_0xfb64('0x1d')](0x194);}return _0x2ef6ba;};}function handleError(_0x563430,_0x2aedfc){_0x2aedfc=_0x2aedfc||0x1f4;return function(_0x569b30){logger['error'](_0x569b30['stack']);if(_0x569b30[_0xfb64('0x2d')]){delete _0x569b30[_0xfb64('0x2d')];}_0x563430['status'](_0x2aedfc)[_0xfb64('0x2e')](_0x569b30);};}exports[_0xfb64('0x2f')]=function(_0x23fb7c,_0x53bdcb){var _0x39af05={},_0x9533a0={},_0x26ac70={'count':0x0,'rows':[]};var _0x545304=_[_0xfb64('0x30')](db[_0xfb64('0x31')]['rawAttributes'],function(_0x4a9454){return{'name':_0x4a9454['fieldName'],'type':_0x4a9454[_0xfb64('0x32')][_0xfb64('0x33')]};});_0x9533a0[_0xfb64('0x34')]=_[_0xfb64('0x30')](_0x545304,_0xfb64('0x2d'));_0x9533a0[_0xfb64('0x35')]=_[_0xfb64('0x36')](_0x23fb7c[_0xfb64('0x35')]);_0x9533a0[_0xfb64('0x37')]=_[_0xfb64('0x38')](_0x9533a0[_0xfb64('0x34')],_0x9533a0[_0xfb64('0x35')]);_0x39af05[_0xfb64('0x39')]=_[_0xfb64('0x38')](_0x9533a0[_0xfb64('0x34')],qs['fields'](_0x23fb7c[_0xfb64('0x35')]['fields']));_0x39af05['attributes']=_0x39af05[_0xfb64('0x39')][_0xfb64('0x3a')]?_0x39af05[_0xfb64('0x39')]:_0x9533a0[_0xfb64('0x34')];if(!_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x3b')](_0xfb64('0x3c'))){_0x39af05['limit']=qs['limit'](_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x23')]);_0x39af05[_0xfb64('0x21')]=qs['offset'](_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x21')]);}_0x39af05[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0x23fb7c['query'][_0xfb64('0x3e')]);_0x39af05[_0xfb64('0x3f')]=qs['filters'](_[_0xfb64('0x40')](_0x23fb7c[_0xfb64('0x35')],_0x9533a0[_0xfb64('0x37')]),_0x545304);if(_0x23fb7c[_0xfb64('0x35')]['filter']){_0x39af05[_0xfb64('0x3f')]=_[_0xfb64('0x41')](_0x39af05[_0xfb64('0x3f')],{'$or':_[_0xfb64('0x30')](_0x545304,function(_0x1f0531){if(_0x1f0531[_0xfb64('0x32')]!==_0xfb64('0x42')){var _0x5f9bf0={};_0x5f9bf0[_0x1f0531[_0xfb64('0x2d')]]={'$like':'%'+_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x43')]+'%'};return _0x5f9bf0;}})});}_0x39af05=_[_0xfb64('0x41')]({},_0x39af05,_0x23fb7c['options']);var _0x43cfff={'where':_0x39af05['where']};return db['OpenchannelQueue'][_0xfb64('0x24')](_0x43cfff)['then'](function(_0x474c8a){_0x26ac70['count']=_0x474c8a;if(_0x23fb7c[_0xfb64('0x35')]['includeAll']){_0x39af05[_0xfb64('0x44')]=[{'all':!![]}];}return db[_0xfb64('0x31')][_0xfb64('0x45')](_0x39af05);})[_0xfb64('0x29')](function(_0x231891){_0x26ac70['rows']=_0x231891;return _0x26ac70;})[_0xfb64('0x29')](respondWithFilteredResult(_0x53bdcb,_0x39af05))[_0xfb64('0x46')](handleError(_0x53bdcb,null));};exports[_0xfb64('0x47')]=function(_0x3076cf,_0x47e81d){var _0x1ddffc={'raw':!![],'where':{'id':_0x3076cf[_0xfb64('0x48')]['id']}},_0x3a1b8b={};_0x3a1b8b['model']=_[_0xfb64('0x36')](db[_0xfb64('0x31')][_0xfb64('0x49')]);_0x3a1b8b[_0xfb64('0x35')]=_['keys'](_0x3076cf[_0xfb64('0x35')]);_0x3a1b8b['filters']=_[_0xfb64('0x38')](_0x3a1b8b[_0xfb64('0x34')],_0x3a1b8b[_0xfb64('0x35')]);_0x1ddffc[_0xfb64('0x39')]=_[_0xfb64('0x38')](_0x3a1b8b[_0xfb64('0x34')],qs[_0xfb64('0x4a')](_0x3076cf[_0xfb64('0x35')][_0xfb64('0x4a')]));_0x1ddffc[_0xfb64('0x39')]=_0x1ddffc['attributes'][_0xfb64('0x3a')]?_0x1ddffc[_0xfb64('0x39')]:_0x3a1b8b[_0xfb64('0x34')];if(_0x3076cf[_0xfb64('0x35')][_0xfb64('0x4b')]){_0x1ddffc['include']=[{'all':!![]}];}_0x1ddffc=_[_0xfb64('0x41')]({},_0x1ddffc,_0x3076cf['options']);return db[_0xfb64('0x31')]['find'](_0x1ddffc)[_0xfb64('0x29')](handleEntityNotFound(_0x47e81d,null))[_0xfb64('0x29')](respondWithResult(_0x47e81d,null))['catch'](handleError(_0x47e81d,null));};exports['create']=function(_0x5e4acd,_0x4ece1f){return db['OpenchannelQueue'][_0xfb64('0x4c')](_0x5e4acd[_0xfb64('0x4d')],{})[_0xfb64('0x29')](function(_0x3eb7a2){var _0x5e363a=_0x5e4acd[_0xfb64('0x4e')][_0xfb64('0x4f')]({'plain':!![]});if(!_0x5e363a)throw new Error(_0xfb64('0x50'));if(_0x5e363a[_0xfb64('0x51')]===_0xfb64('0x4e')){var _0x26a4be=_0x3eb7a2[_0xfb64('0x4f')]({'plain':!![]});var _0x6918eb=_0xfb64('0x2b');return db[_0xfb64('0x52')]['find']({'where':{'name':_0x6918eb,'userProfileId':_0x5e363a[_0xfb64('0x53')]},'raw':!![]})[_0xfb64('0x29')](function(_0x447973){if(_0x447973&&_0x447973[_0xfb64('0x54')]===0x0){return db['UserProfileResource'][_0xfb64('0x4c')]({'name':_0x26a4be[_0xfb64('0x2d')],'resourceId':_0x26a4be['id'],'type':_0x447973['name'],'sectionId':_0x447973['id']},{})[_0xfb64('0x29')](function(){return _0x3eb7a2;});}else{return _0x3eb7a2;}})[_0xfb64('0x46')](function(_0x239964){logger[_0xfb64('0x55')](_0xfb64('0x56'),_0x239964);throw _0x239964;});}return _0x3eb7a2;})[_0xfb64('0x29')](respondWithResult(_0x4ece1f,0xc9))[_0xfb64('0x46')](handleError(_0x4ece1f,null));};exports['update']=function(_0x530e2f,_0x469e9d){if(_0x530e2f[_0xfb64('0x4d')]['id']){delete _0x530e2f[_0xfb64('0x4d')]['id'];}return db['OpenchannelQueue'][_0xfb64('0x57')]({'where':{'id':_0x530e2f[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x469e9d,null))[_0xfb64('0x29')](saveUpdates(_0x530e2f[_0xfb64('0x4d')],null))[_0xfb64('0x29')](respondWithResult(_0x469e9d,null))[_0xfb64('0x46')](handleError(_0x469e9d,null));};exports['destroy']=function(_0x553b09,_0x413eb8){return db['OpenchannelQueue'][_0xfb64('0x57')]({'where':{'id':_0x553b09[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x413eb8,null))[_0xfb64('0x29')](removeEntity(_0x413eb8,null))[_0xfb64('0x46')](handleError(_0x413eb8,null));};exports[_0xfb64('0x58')]=function(_0x267ebf,_0x45fc6c){return db['OpenchannelQueue'][_0xfb64('0x58')]()[_0xfb64('0x29')](respondWithResult(_0x45fc6c,null))['catch'](handleError(_0x45fc6c,null));};exports[_0xfb64('0x59')]=function(_0x27d0ee,_0x598095,_0x3d5a47){var _0x24be67={'raw':!![],'where':{}},_0x9f80a2={},_0x54a8ba;return db[_0xfb64('0x31')][_0xfb64('0x5a')]({'where':{'id':_0x27d0ee[_0xfb64('0x48')]['id']}})['then'](handleEntityNotFound(_0x598095,null))[_0xfb64('0x29')](function(_0x3c57db){if(_0x3c57db){_0x54a8ba=_0x3c57db[_0xfb64('0x4f')]({'plain':!![]});_0x9f80a2[_0xfb64('0x34')]=_[_0xfb64('0x36')](db['UserOpenchannelQueue'][_0xfb64('0x49')]);_0x9f80a2[_0xfb64('0x35')]=_[_0xfb64('0x36')](_0x27d0ee[_0xfb64('0x35')]);_0x9f80a2[_0xfb64('0x37')]=_['intersection'](_0x9f80a2[_0xfb64('0x34')],_0x9f80a2[_0xfb64('0x35')]);_0x24be67[_0xfb64('0x39')]=_['intersection'](_0x9f80a2[_0xfb64('0x34')],qs['fields'](_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x4a')]));_0x24be67['attributes']=_0x24be67['attributes'][_0xfb64('0x3a')]?_0x24be67[_0xfb64('0x39')]:_0x9f80a2[_0xfb64('0x34')];if(!_0x27d0ee[_0xfb64('0x35')]['hasOwnProperty'](_0xfb64('0x3c'))){_0x24be67[_0xfb64('0x23')]=qs[_0xfb64('0x23')](_0x27d0ee['query'][_0xfb64('0x23')]);_0x24be67[_0xfb64('0x21')]=qs[_0xfb64('0x21')](_0x27d0ee['query'][_0xfb64('0x21')]);}_0x24be67[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x3e')]);_0x24be67[_0xfb64('0x3f')]=qs[_0xfb64('0x37')](_[_0xfb64('0x40')](_0x27d0ee['query'],_0x9f80a2[_0xfb64('0x37')]));_0x24be67[_0xfb64('0x3f')][_0xfb64('0x5b')]=_0x3c57db['id'];if(_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x43')]){_0x24be67[_0xfb64('0x3f')]=_['merge'](_0x24be67[_0xfb64('0x3f')],{'$or':_['map'](_0x24be67['attributes'],function(_0x27fbc9){var _0x59b2e7={};_0x59b2e7[_0x27fbc9]={'$like':'%'+_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x43')]+'%'};return _0x59b2e7;})});}_0x24be67=_[_0xfb64('0x41')]({},_0x24be67,_0x27d0ee[_0xfb64('0x5c')]);return db['UserOpenchannelQueue'][_0xfb64('0x45')](_0x24be67);}})[_0xfb64('0x29')](function(_0x30ef92){if(_0x30ef92){return db[_0xfb64('0x5d')]['findAndCountAll']({'where':{'id':_[_0xfb64('0x30')](_0x30ef92,_0xfb64('0x5e')),'role':'agent'},'attributes':['id',_0xfb64('0x2d'),'openchannelPause',_0xfb64('0x5f'),_0xfb64('0x60')]});}})[_0xfb64('0x29')](function(_0x25f72f){if(_0x25f72f){return{'count':_0x25f72f['count'],'rows':_[_0xfb64('0x30')](_0x25f72f[_0xfb64('0x61')],function(_0x5718e){return{'membername':_0x5718e[_0xfb64('0x2d')],'UserId':_0x5718e['id'],'queue_name':_0x54a8ba[_0xfb64('0x2d')],'OpenchannelQueueId':_0x54a8ba['id'],'interface':util[_0xfb64('0x62')](_0xfb64('0x63'),'SIP',_0x5718e['name']),'penalty':0x0,'paused':_0x5718e[_0xfb64('0x64')],'createdAt':_0x5718e['createdAt'],'updatedAt':_0x5718e['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x598095,_0x24be67))[_0xfb64('0x46')](handleError(_0x598095,null));};exports[_0xfb64('0x65')]=function(_0xb8fa48,_0x284ce1,_0x2bfe56){var _0xb34dbc={};var _0x39212d={};var _0x8c9e50;var _0xe68392;return db[_0xfb64('0x31')][_0xfb64('0x5a')]({'where':{'id':_0xb8fa48[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x284ce1,null))[_0xfb64('0x29')](function(_0x3d9b05){if(_0x3d9b05){_0x8c9e50=_0x3d9b05;_0x39212d[_0xfb64('0x34')]=_[_0xfb64('0x36')](db[_0xfb64('0x66')][_0xfb64('0x49')]);_0x39212d['query']=_[_0xfb64('0x36')](_0xb8fa48[_0xfb64('0x35')]);_0x39212d[_0xfb64('0x37')]=_['intersection'](_0x39212d[_0xfb64('0x34')],_0x39212d[_0xfb64('0x35')]);_0xb34dbc[_0xfb64('0x39')]=_[_0xfb64('0x38')](_0x39212d['model'],qs['fields'](_0xb8fa48[_0xfb64('0x35')][_0xfb64('0x4a')]));_0xb34dbc[_0xfb64('0x39')]=_0xb34dbc[_0xfb64('0x39')][_0xfb64('0x3a')]?_0xb34dbc[_0xfb64('0x39')]:_0x39212d[_0xfb64('0x34')];_0xb34dbc[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0xb8fa48[_0xfb64('0x35')][_0xfb64('0x3e')]);_0xb34dbc[_0xfb64('0x3f')]=qs[_0xfb64('0x37')](_[_0xfb64('0x40')](_0xb8fa48['query'],_0x39212d[_0xfb64('0x37')]));if(_0xb8fa48['query'][_0xfb64('0x43')]){_0xb34dbc[_0xfb64('0x3f')]=_['merge'](_0xb34dbc[_0xfb64('0x3f')],{'$or':_['map'](_0xb34dbc['attributes'],function(_0x41b2bd){var _0x408808={};_0x408808[_0x41b2bd]={'$like':'%'+_0xb8fa48[_0xfb64('0x35')]['filter']+'%'};return _0x408808;})});}_0xb34dbc=_[_0xfb64('0x41')]({},_0xb34dbc,_0xb8fa48[_0xfb64('0x5c')]);return _0x8c9e50['getTeams'](_0xb34dbc);}})[_0xfb64('0x29')](function(_0x4f9a21){if(_0x4f9a21){_0xe68392=_0x4f9a21['length'];if(!_0xb8fa48[_0xfb64('0x35')][_0xfb64('0x3b')](_0xfb64('0x3c'))){_0xb34dbc[_0xfb64('0x23')]=qs[_0xfb64('0x23')](_0xb8fa48['query']['limit']);_0xb34dbc[_0xfb64('0x21')]=qs[_0xfb64('0x21')](_0xb8fa48['query']['offset']);}return _0x8c9e50[_0xfb64('0x65')](_0xb34dbc);}})[_0xfb64('0x29')](function(_0x474fb9){if(_0x474fb9){return _0x474fb9?{'count':_0xe68392,'rows':_0x474fb9}:null;}})[_0xfb64('0x29')](respondWithResult(_0x284ce1,null))[_0xfb64('0x46')](handleError(_0x284ce1,null));};exports[_0xfb64('0x67')]=function(_0x1348a0,_0x149939,_0x4b999b){var _0x2085f4=_0x1348a0[_0xfb64('0x4d')][_0xfb64('0x68')];return db[_0xfb64('0x66')][_0xfb64('0x45')]({'where':{'id':_0x2085f4},'attributes':['id'],'include':[{'model':db[_0xfb64('0x5d')],'as':_0xfb64('0x69'),'attributes':['id',_0xfb64('0x2d'),_0xfb64('0x6a'),_0xfb64('0x6b'),_0xfb64('0x6c')],'raw':!![]}]})[_0xfb64('0x29')](function(_0x12409e){if(_0x12409e){var _0x311960=_[_0xfb64('0x6d')](_0x12409e,function(_0xe896c3){var _0x1623ac=_0xe896c3[_0xfb64('0x4f')]({'plain':!![]});return _0x1623ac[_0xfb64('0x69')];});return db[_0xfb64('0x31')][_0xfb64('0x57')]({'where':{'id':_0x1348a0[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](function(_0x43b9f6){return db['sequelize'][_0xfb64('0x6e')](function(_0x492936){return _0x43b9f6[_0xfb64('0x67')](_0x2085f4,{'transaction':_0x492936})[_0xfb64('0x29')](function(){return BPromise['each'](_0x311960,function(_0x26e650){return db['UserOpenchannelQueue'][_0xfb64('0x6f')]({'where':{'UserId':_0x26e650['id'],'OpenchannelQueueId':_0x1348a0[_0xfb64('0x48')]['id']},'transaction':_0x492936});});})['then'](function(){_0x311960[_0xfb64('0x70')](function(_0xc70390){socket['emit'](_0xfb64('0x71'),{'UserId':_0xc70390['id'],'OpenchannelQueueId':_0x43b9f6['id']});});});});});}})[_0xfb64('0x29')](respondWithStatusCode(_0x149939,null))['catch'](handleError(_0x149939,null));};exports['removeTeams']=function(_0x4731ef,_0x32165f,_0x59169f){return db['Team'][_0xfb64('0x45')]({'where':{'id':_0x4731ef[_0xfb64('0x35')][_0xfb64('0x68')]},'attributes':['id'],'include':[{'model':db[_0xfb64('0x5d')],'as':_0xfb64('0x69'),'attributes':['id'],'raw':!![]}]})[_0xfb64('0x29')](handleEntityNotFound(_0x32165f,null))['then'](function(_0x1b97f4){var _0x4305f4=_[_0xfb64('0x30')](_0x1b97f4,'id');var _0x23da25=[];var _0x21afd6=[];var _0x483b19=squel[_0xfb64('0x72')]();_0x483b19['field'](_0xfb64('0x73'))[_0xfb64('0x74')](_0xfb64('0x75'),'tq')[_0xfb64('0x76')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0xfb64('0x3f')](_0xfb64('0x77'),_0x4731ef[_0xfb64('0x48')]['id']);for(var _0x5774c5=0x0;_0x5774c5<_0x1b97f4[_0xfb64('0x3a')];_0x5774c5+=0x1){let _0xb8e731=_0x1b97f4[_0x5774c5];for(var _0x113ba3=0x0;_0x113ba3<_0xb8e731['Agents']['length'];_0x113ba3+=0x1){let _0xffbab8=_0xb8e731[_0xfb64('0x69')][_0x113ba3];var _0x583438=_0x483b19['clone']();_0x583438[_0xfb64('0x3f')]('ut.UserId\x20=\x20?',_0xffbab8['id']);_0x21afd6['push'](db[_0xfb64('0x78')][_0xfb64('0x35')](_0x583438[_0xfb64('0x79')](),{'type':db[_0xfb64('0x78')]['QueryTypes'][_0xfb64('0x7a')]})['then'](function(_0x37b306){if(_0x37b306[_0xfb64('0x3a')]===0x1){return _0xffbab8['id'];}else{var _0x71a03f=_[_0xfb64('0x7b')](_['map'](_0x37b306,_0xfb64('0x7c')),function(_0xeacfe9){return _[_0xfb64('0x7d')](_0x4305f4,_0xeacfe9);});if(_0x71a03f){return _0xffbab8['id'];}}}));}}return BPromise[_0xfb64('0x7e')](_0x21afd6)[_0xfb64('0x29')](function(_0x1a1ccf){_0x23da25=_(_0x23da25)[_0xfb64('0x7f')](_0x1a1ccf)['compact']()[_0xfb64('0x80')]();return db['OpenchannelQueue']['find']({'where':{'id':_0x4731ef[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](function(_0x902267){return db[_0xfb64('0x78')][_0xfb64('0x6e')](function(_0x41dace){return _0x902267[_0xfb64('0x81')](_0x4731ef['query']['ids'],{'transaction':_0x41dace})[_0xfb64('0x29')](function(){if(!_[_0xfb64('0x82')](_0x23da25)){return _0x902267[_0xfb64('0x83')](_0x23da25,{'transaction':_0x41dace});}})['then'](function(){_0x23da25[_0xfb64('0x70')](function(_0xdfce0){socket[_0xfb64('0x84')](_0xfb64('0x85'),{'UserId':_0xdfce0,'OpenchannelQueueId':_0x902267['id']});});});});});});})[_0xfb64('0x29')](respondWithStatusCode(_0x32165f,null))[_0xfb64('0x46')](handleError(_0x32165f,null));};exports['addAgents']=function(_0x20158e,_0x374cfe,_0x489831){return db[_0xfb64('0x31')][_0xfb64('0x57')]({'where':{'id':_0x20158e[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x374cfe,null))[_0xfb64('0x29')](function(_0x4bff92){if(_0x4bff92){return _0x4bff92[_0xfb64('0x86')](_0x20158e[_0xfb64('0x4d')][_0xfb64('0x68')],_['omit'](_0x20158e[_0xfb64('0x4d')],[_0xfb64('0x68'),'id'])||{})['spread'](function(_0x3246f0){for(var _0x2c7d33=0x0;_0x2c7d33<_0x20158e[_0xfb64('0x4d')][_0xfb64('0x68')]['length'];_0x2c7d33+=0x1){socket[_0xfb64('0x84')](_0xfb64('0x71'),{'UserId':Number(_0x20158e[_0xfb64('0x4d')][_0xfb64('0x68')][_0x2c7d33]),'OpenchannelQueueId':Number(_0x20158e[_0xfb64('0x48')]['id'])});}return _0x3246f0;});}})['then'](respondWithResult(_0x374cfe,null))[_0xfb64('0x46')](handleError(_0x374cfe,null));};exports['removeAgents']=function(_0x36e6fb,_0x2326db,_0x2ca324){return db[_0xfb64('0x31')][_0xfb64('0x57')]({'where':{'id':_0x36e6fb[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x2326db,null))[_0xfb64('0x29')](function(_0x26e18b){if(_0x26e18b){return _0x26e18b[_0xfb64('0x83')](_0x36e6fb[_0xfb64('0x35')][_0xfb64('0x68')])[_0xfb64('0x29')](function(){if(_[_0xfb64('0x87')](_0x36e6fb['query'][_0xfb64('0x68')])){for(var _0x550f77=0x0;_0x550f77<_0x36e6fb[_0xfb64('0x35')][_0xfb64('0x68')][_0xfb64('0x3a')];_0x550f77+=0x1){socket[_0xfb64('0x84')](_0xfb64('0x85'),{'UserId':Number(_0x36e6fb[_0xfb64('0x35')][_0xfb64('0x68')][_0x550f77]),'OpenchannelQueueId':Number(_0x36e6fb[_0xfb64('0x48')]['id'])});}}else{socket[_0xfb64('0x84')]('userOpenchannelQueue:remove',{'UserId':Number(_0x36e6fb['query'][_0xfb64('0x68')]),'OpenchannelQueueId':Number(_0x36e6fb['params']['id'])});}});}})[_0xfb64('0x29')](respondWithStatusCode(_0x2326db,null))[_0xfb64('0x46')](handleError(_0x2326db,null));};exports[_0xfb64('0x88')]=function(_0xba54fa,_0x1b4f33,_0x314eeb){var _0x2ecc67={};var _0x362552={};var _0x22cfe9;var _0x401d56;return db[_0xfb64('0x31')][_0xfb64('0x5a')]({'where':{'id':_0xba54fa[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x1b4f33,null))['then'](function(_0x48f135){if(_0x48f135){_0x22cfe9=_0x48f135;_0x362552['model']=_[_0xfb64('0x36')](db[_0xfb64('0x5d')][_0xfb64('0x49')]);_0x362552[_0xfb64('0x35')]=_[_0xfb64('0x36')](_0xba54fa[_0xfb64('0x35')]);_0x362552[_0xfb64('0x37')]=_[_0xfb64('0x38')](_0x362552[_0xfb64('0x34')],_0x362552['query']);_0x2ecc67[_0xfb64('0x39')]=_['intersection'](_0x362552[_0xfb64('0x34')],qs[_0xfb64('0x4a')](_0xba54fa[_0xfb64('0x35')]['fields']));_0x2ecc67['attributes']=_0x2ecc67['attributes'][_0xfb64('0x3a')]?_0x2ecc67[_0xfb64('0x39')]:_0x362552[_0xfb64('0x34')];_0x2ecc67[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0xba54fa['query']['sort']);_0x2ecc67[_0xfb64('0x3f')]=qs[_0xfb64('0x37')](_[_0xfb64('0x40')](_0xba54fa[_0xfb64('0x35')],_0x362552[_0xfb64('0x37')]));if(_0xba54fa[_0xfb64('0x35')][_0xfb64('0x43')]){_0x2ecc67[_0xfb64('0x3f')]=_[_0xfb64('0x41')](_0x2ecc67[_0xfb64('0x3f')],{'$or':_[_0xfb64('0x30')](_0x2ecc67[_0xfb64('0x39')],function(_0x4357c3){var _0x127458={};_0x127458[_0x4357c3]={'$like':'%'+_0xba54fa['query']['filter']+'%'};return _0x127458;})});}_0x2ecc67=_[_0xfb64('0x41')]({},_0x2ecc67,_0xba54fa['options']);return _0x22cfe9[_0xfb64('0x88')](_0x2ecc67);}})[_0xfb64('0x29')](function(_0x414bf9){if(_0x414bf9){_0x401d56=_0x414bf9['length'];if(!_0xba54fa['query'][_0xfb64('0x3b')]('nolimit')){_0x2ecc67[_0xfb64('0x23')]=qs[_0xfb64('0x23')](_0xba54fa['query'][_0xfb64('0x23')]);_0x2ecc67[_0xfb64('0x21')]=qs['offset'](_0xba54fa['query'][_0xfb64('0x21')]);}return _0x22cfe9['getAgents'](_0x2ecc67);}})[_0xfb64('0x29')](function(_0x2ce428){if(_0x2ce428){return _0x2ce428?{'count':_0x401d56,'rows':_0x2ce428}:null;}})[_0xfb64('0x29')](respondWithResult(_0x1b4f33,null))['catch'](handleError(_0x1b4f33,null));};
\ No newline at end of file
+var _0xaaa6=['getTeams','order','addTeams','Team','Agents','online','voicePause','interface','flatMap','transaction','each','forEach','userOpenchannelQueue:save','removeTeams','select','field','tq.TeamId','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','ids','isEmpty','removeAgents','userOpenchannelQueue:remove','addAgents','emit','isArray','getAgents','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelQueue.socket','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','OpenchannelQueues','error','stack','name','send','index','OpenchannelQueue','rawAttributes','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','options','findAll','catch','show','params','includeAll','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserOpenchannelQueue','User','findAndCountAll','UserId','agent','openchannelPause','updatedAt','createdAt','%s/%s','SIP'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xaaa6,0x1d2));var _0x6aaa=function(_0x2dcc73,_0x1293d9){_0x2dcc73=_0x2dcc73-0x0;var _0x4ae10f=_0xaaa6[_0x2dcc73];return _0x4ae10f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6aaa('0x0'));var moment=require(_0x6aaa('0x1'));var BPromise=require('bluebird');var Mustache=require(_0x6aaa('0x2'));var util=require(_0x6aaa('0x3'));var path=require(_0x6aaa('0x4'));var sox=require(_0x6aaa('0x5'));var csv=require(_0x6aaa('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6aaa('0x7'));var _=require(_0x6aaa('0x8'));var squel=require(_0x6aaa('0x9'));var crypto=require('crypto');var jsforce=require(_0x6aaa('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x6aaa('0x6'));var querystring=require('querystring');var Papa=require(_0x6aaa('0xb'));var Redis=require(_0x6aaa('0xc'));var authService=require(_0x6aaa('0xd'));var qs=require(_0x6aaa('0xe'));var as=require(_0x6aaa('0xf'));var hardwareService=require(_0x6aaa('0x10'));var logger=require(_0x6aaa('0x11'))('api');var utils=require(_0x6aaa('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x6aaa('0x13'));var db=require(_0x6aaa('0x14'))['db'];config['redis']=_['defaults'](config[_0x6aaa('0x15')],{'host':_0x6aaa('0x16'),'port':0x18eb});var socket=require(_0x6aaa('0x17'))(new Redis(config['redis']));require(_0x6aaa('0x18'))['register'](socket);function respondWithStatusCode(_0x27bc03,_0x4d6751){_0x4d6751=_0x4d6751||0xcc;return function(_0x64e28b){if(_0x64e28b){return _0x27bc03[_0x6aaa('0x19')](_0x4d6751);}return _0x27bc03[_0x6aaa('0x1a')](_0x4d6751)[_0x6aaa('0x1b')]();};}function respondWithResult(_0x32671d,_0x2495ca){_0x2495ca=_0x2495ca||0xc8;return function(_0x1245df){if(_0x1245df){return _0x32671d[_0x6aaa('0x1a')](_0x2495ca)[_0x6aaa('0x1c')](_0x1245df);}};}function respondWithFilteredResult(_0x533972,_0x340bf7){return function(_0x305154){if(_0x305154){var _0x300164=typeof _0x340bf7[_0x6aaa('0x1d')]===_0x6aaa('0x1e')&&typeof _0x340bf7['limit']===_0x6aaa('0x1e');var _0x5a20a1=_0x305154[_0x6aaa('0x1f')];var _0x5de4b3=_0x300164?0x0:_0x340bf7['offset'];var _0x17e70a=_0x300164?_0x305154[_0x6aaa('0x1f')]:_0x340bf7[_0x6aaa('0x1d')]+_0x340bf7[_0x6aaa('0x20')];var _0x53f84f;if(_0x17e70a>=_0x5a20a1){_0x17e70a=_0x5a20a1;_0x53f84f=0xc8;}else{_0x53f84f=0xce;}_0x533972['status'](_0x53f84f);return _0x533972[_0x6aaa('0x21')](_0x6aaa('0x22'),_0x5de4b3+'-'+_0x17e70a+'/'+_0x5a20a1)[_0x6aaa('0x1c')](_0x305154);}return null;};}function patchUpdates(_0x3a1abb){return function(_0x56dfe8){try{jsonpatch['apply'](_0x56dfe8,_0x3a1abb,!![]);}catch(_0x420979){return BPromise[_0x6aaa('0x23')](_0x420979);}return _0x56dfe8[_0x6aaa('0x24')]();};}function saveUpdates(_0x7c1a6b,_0x42f69b){return function(_0x133544){if(_0x133544){return _0x133544[_0x6aaa('0x25')](_0x7c1a6b)[_0x6aaa('0x26')](function(_0x54bb67){return _0x54bb67;});}return null;};}function removeEntity(_0xf20378,_0x260513){return function(_0x477b4a){if(_0x477b4a){return _0x477b4a[_0x6aaa('0x27')]()[_0x6aaa('0x26')](function(){var _0x4ea5bd=_0x477b4a[_0x6aaa('0x28')]({'plain':!![]});var _0x3fdcaa=_0x6aaa('0x29');return db['UserProfileResource'][_0x6aaa('0x27')]({'where':{'type':_0x3fdcaa,'resourceId':_0x4ea5bd['id']}})[_0x6aaa('0x26')](function(){return _0x477b4a;});})[_0x6aaa('0x26')](function(){_0xf20378[_0x6aaa('0x1a')](0xcc)[_0x6aaa('0x1b')]();});}};}function handleEntityNotFound(_0x54af23,_0x4f66fb){return function(_0x263ff4){if(!_0x263ff4){_0x54af23[_0x6aaa('0x19')](0x194);}return _0x263ff4;};}function handleError(_0x2ba0c2,_0x584dd7){_0x584dd7=_0x584dd7||0x1f4;return function(_0x4ec2cc){logger[_0x6aaa('0x2a')](_0x4ec2cc[_0x6aaa('0x2b')]);if(_0x4ec2cc[_0x6aaa('0x2c')]){delete _0x4ec2cc[_0x6aaa('0x2c')];}_0x2ba0c2[_0x6aaa('0x1a')](_0x584dd7)[_0x6aaa('0x2d')](_0x4ec2cc);};}exports[_0x6aaa('0x2e')]=function(_0x61b6ee,_0x2fc091){var _0x2b61be={},_0x3db588={},_0x1f6ace={'count':0x0,'rows':[]};var _0x25e89e=_['map'](db[_0x6aaa('0x2f')][_0x6aaa('0x30')],function(_0x158611){return{'name':_0x158611['fieldName'],'type':_0x158611[_0x6aaa('0x31')][_0x6aaa('0x32')]};});_0x3db588[_0x6aaa('0x33')]=_['map'](_0x25e89e,_0x6aaa('0x2c'));_0x3db588['query']=_[_0x6aaa('0x34')](_0x61b6ee[_0x6aaa('0x35')]);_0x3db588[_0x6aaa('0x36')]=_[_0x6aaa('0x37')](_0x3db588[_0x6aaa('0x33')],_0x3db588[_0x6aaa('0x35')]);_0x2b61be['attributes']=_[_0x6aaa('0x37')](_0x3db588[_0x6aaa('0x33')],qs[_0x6aaa('0x38')](_0x61b6ee['query']['fields']));_0x2b61be[_0x6aaa('0x39')]=_0x2b61be[_0x6aaa('0x39')][_0x6aaa('0x3a')]?_0x2b61be[_0x6aaa('0x39')]:_0x3db588[_0x6aaa('0x33')];if(!_0x61b6ee['query'][_0x6aaa('0x3b')](_0x6aaa('0x3c'))){_0x2b61be['limit']=qs[_0x6aaa('0x20')](_0x61b6ee[_0x6aaa('0x35')][_0x6aaa('0x20')]);_0x2b61be[_0x6aaa('0x1d')]=qs[_0x6aaa('0x1d')](_0x61b6ee['query']['offset']);}_0x2b61be['order']=qs[_0x6aaa('0x3d')](_0x61b6ee[_0x6aaa('0x35')][_0x6aaa('0x3d')]);_0x2b61be[_0x6aaa('0x3e')]=qs[_0x6aaa('0x36')](_[_0x6aaa('0x3f')](_0x61b6ee[_0x6aaa('0x35')],_0x3db588['filters']),_0x25e89e);if(_0x61b6ee['query'][_0x6aaa('0x40')]){_0x2b61be['where']=_[_0x6aaa('0x41')](_0x2b61be[_0x6aaa('0x3e')],{'$or':_[_0x6aaa('0x42')](_0x25e89e,function(_0x5bfe9d){if(_0x5bfe9d[_0x6aaa('0x31')]!==_0x6aaa('0x43')){var _0x480647={};_0x480647[_0x5bfe9d[_0x6aaa('0x2c')]]={'$like':'%'+_0x61b6ee[_0x6aaa('0x35')]['filter']+'%'};return _0x480647;}})});}_0x2b61be=_[_0x6aaa('0x41')]({},_0x2b61be,_0x61b6ee[_0x6aaa('0x44')]);var _0x17899e={'where':_0x2b61be[_0x6aaa('0x3e')]};return db[_0x6aaa('0x2f')]['count'](_0x17899e)[_0x6aaa('0x26')](function(_0x36f5bd){_0x1f6ace[_0x6aaa('0x1f')]=_0x36f5bd;if(_0x61b6ee[_0x6aaa('0x35')]['includeAll']){_0x2b61be['include']=[{'all':!![]}];}return db[_0x6aaa('0x2f')][_0x6aaa('0x45')](_0x2b61be);})['then'](function(_0x44fc02){_0x1f6ace['rows']=_0x44fc02;return _0x1f6ace;})[_0x6aaa('0x26')](respondWithFilteredResult(_0x2fc091,_0x2b61be))[_0x6aaa('0x46')](handleError(_0x2fc091,null));};exports[_0x6aaa('0x47')]=function(_0x305433,_0x25b4a5){var _0x5c5e15={'raw':!![],'where':{'id':_0x305433[_0x6aaa('0x48')]['id']}},_0x1405a0={};_0x1405a0['model']=_[_0x6aaa('0x34')](db[_0x6aaa('0x2f')][_0x6aaa('0x30')]);_0x1405a0[_0x6aaa('0x35')]=_[_0x6aaa('0x34')](_0x305433['query']);_0x1405a0[_0x6aaa('0x36')]=_[_0x6aaa('0x37')](_0x1405a0[_0x6aaa('0x33')],_0x1405a0['query']);_0x5c5e15[_0x6aaa('0x39')]=_[_0x6aaa('0x37')](_0x1405a0[_0x6aaa('0x33')],qs['fields'](_0x305433[_0x6aaa('0x35')][_0x6aaa('0x38')]));_0x5c5e15[_0x6aaa('0x39')]=_0x5c5e15['attributes'][_0x6aaa('0x3a')]?_0x5c5e15[_0x6aaa('0x39')]:_0x1405a0[_0x6aaa('0x33')];if(_0x305433['query'][_0x6aaa('0x49')]){_0x5c5e15[_0x6aaa('0x4a')]=[{'all':!![]}];}_0x5c5e15=_[_0x6aaa('0x41')]({},_0x5c5e15,_0x305433[_0x6aaa('0x44')]);return db[_0x6aaa('0x2f')][_0x6aaa('0x4b')](_0x5c5e15)[_0x6aaa('0x26')](handleEntityNotFound(_0x25b4a5,null))[_0x6aaa('0x26')](respondWithResult(_0x25b4a5,null))['catch'](handleError(_0x25b4a5,null));};exports[_0x6aaa('0x4c')]=function(_0x1502f7,_0x169c81){return db[_0x6aaa('0x2f')][_0x6aaa('0x4c')](_0x1502f7[_0x6aaa('0x4d')],{})['then'](function(_0x13f7b9){var _0x265250=_0x1502f7[_0x6aaa('0x4e')]['get']({'plain':!![]});if(!_0x265250)throw new Error(_0x6aaa('0x4f'));if(_0x265250[_0x6aaa('0x50')]==='user'){var _0x3a55bc=_0x13f7b9['get']({'plain':!![]});var _0x3138fa=_0x6aaa('0x29');return db['UserProfileSection'][_0x6aaa('0x4b')]({'where':{'name':_0x3138fa,'userProfileId':_0x265250[_0x6aaa('0x51')]},'raw':!![]})[_0x6aaa('0x26')](function(_0xf37a2d){if(_0xf37a2d&&_0xf37a2d[_0x6aaa('0x52')]===0x0){return db[_0x6aaa('0x53')]['create']({'name':_0x3a55bc[_0x6aaa('0x2c')],'resourceId':_0x3a55bc['id'],'type':_0xf37a2d[_0x6aaa('0x2c')],'sectionId':_0xf37a2d['id']},{})[_0x6aaa('0x26')](function(){return _0x13f7b9;});}else{return _0x13f7b9;}})[_0x6aaa('0x46')](function(_0x494c5e){logger['error'](_0x6aaa('0x54'),_0x494c5e);throw _0x494c5e;});}return _0x13f7b9;})[_0x6aaa('0x26')](respondWithResult(_0x169c81,0xc9))[_0x6aaa('0x46')](handleError(_0x169c81,null));};exports[_0x6aaa('0x25')]=function(_0xbfb583,_0x4820f0){if(_0xbfb583[_0x6aaa('0x4d')]['id']){delete _0xbfb583[_0x6aaa('0x4d')]['id'];}return db['OpenchannelQueue']['find']({'where':{'id':_0xbfb583[_0x6aaa('0x48')]['id']}})[_0x6aaa('0x26')](handleEntityNotFound(_0x4820f0,null))[_0x6aaa('0x26')](saveUpdates(_0xbfb583[_0x6aaa('0x4d')],null))[_0x6aaa('0x26')](respondWithResult(_0x4820f0,null))[_0x6aaa('0x46')](handleError(_0x4820f0,null));};exports[_0x6aaa('0x27')]=function(_0x21f86c,_0x331797){return db[_0x6aaa('0x2f')][_0x6aaa('0x4b')]({'where':{'id':_0x21f86c['params']['id']}})['then'](handleEntityNotFound(_0x331797,null))[_0x6aaa('0x26')](removeEntity(_0x331797,null))[_0x6aaa('0x46')](handleError(_0x331797,null));};exports[_0x6aaa('0x55')]=function(_0x346c5e,_0x3bbfe4){return db[_0x6aaa('0x2f')][_0x6aaa('0x55')]()['then'](respondWithResult(_0x3bbfe4,null))[_0x6aaa('0x46')](handleError(_0x3bbfe4,null));};exports[_0x6aaa('0x56')]=function(_0xeebd5,_0x1898f7,_0x62fec6){var _0xc766c9={'raw':!![],'where':{}},_0x42a93e={},_0x9f884b;return db[_0x6aaa('0x2f')][_0x6aaa('0x57')]({'where':{'id':_0xeebd5[_0x6aaa('0x48')]['id']}})['then'](handleEntityNotFound(_0x1898f7,null))[_0x6aaa('0x26')](function(_0x5b1c0c){if(_0x5b1c0c){_0x9f884b=_0x5b1c0c[_0x6aaa('0x28')]({'plain':!![]});_0x42a93e['model']=_[_0x6aaa('0x34')](db['UserOpenchannelQueue'][_0x6aaa('0x30')]);_0x42a93e[_0x6aaa('0x35')]=_['keys'](_0xeebd5[_0x6aaa('0x35')]);_0x42a93e['filters']=_[_0x6aaa('0x37')](_0x42a93e['model'],_0x42a93e['query']);_0xc766c9['attributes']=_['intersection'](_0x42a93e[_0x6aaa('0x33')],qs[_0x6aaa('0x38')](_0xeebd5[_0x6aaa('0x35')][_0x6aaa('0x38')]));_0xc766c9['attributes']=_0xc766c9[_0x6aaa('0x39')][_0x6aaa('0x3a')]?_0xc766c9[_0x6aaa('0x39')]:_0x42a93e['model'];if(!_0xeebd5[_0x6aaa('0x35')][_0x6aaa('0x3b')](_0x6aaa('0x3c'))){_0xc766c9[_0x6aaa('0x20')]=qs[_0x6aaa('0x20')](_0xeebd5['query'][_0x6aaa('0x20')]);_0xc766c9[_0x6aaa('0x1d')]=qs[_0x6aaa('0x1d')](_0xeebd5[_0x6aaa('0x35')][_0x6aaa('0x1d')]);}_0xc766c9['order']=qs['sort'](_0xeebd5[_0x6aaa('0x35')][_0x6aaa('0x3d')]);_0xc766c9['where']=qs[_0x6aaa('0x36')](_[_0x6aaa('0x3f')](_0xeebd5[_0x6aaa('0x35')],_0x42a93e['filters']));_0xc766c9[_0x6aaa('0x3e')]['OpenchannelQueueId']=_0x5b1c0c['id'];if(_0xeebd5[_0x6aaa('0x35')][_0x6aaa('0x40')]){_0xc766c9[_0x6aaa('0x3e')]=_[_0x6aaa('0x41')](_0xc766c9['where'],{'$or':_[_0x6aaa('0x42')](_0xc766c9['attributes'],function(_0x22b44b){var _0x44d7aa={};_0x44d7aa[_0x22b44b]={'$like':'%'+_0xeebd5[_0x6aaa('0x35')][_0x6aaa('0x40')]+'%'};return _0x44d7aa;})});}_0xc766c9=_[_0x6aaa('0x41')]({},_0xc766c9,_0xeebd5[_0x6aaa('0x44')]);return db[_0x6aaa('0x58')][_0x6aaa('0x45')](_0xc766c9);}})[_0x6aaa('0x26')](function(_0x2029b5){if(_0x2029b5){return db[_0x6aaa('0x59')][_0x6aaa('0x5a')]({'where':{'id':_[_0x6aaa('0x42')](_0x2029b5,_0x6aaa('0x5b')),'role':_0x6aaa('0x5c')},'attributes':['id',_0x6aaa('0x2c'),_0x6aaa('0x5d'),_0x6aaa('0x5e'),_0x6aaa('0x5f')]});}})['then'](function(_0xf2dd48){if(_0xf2dd48){return{'count':_0xf2dd48[_0x6aaa('0x1f')],'rows':_['map'](_0xf2dd48['rows'],function(_0x8e89bd){return{'membername':_0x8e89bd[_0x6aaa('0x2c')],'UserId':_0x8e89bd['id'],'queue_name':_0x9f884b['name'],'OpenchannelQueueId':_0x9f884b['id'],'interface':util['format'](_0x6aaa('0x60'),_0x6aaa('0x61'),_0x8e89bd[_0x6aaa('0x2c')]),'penalty':0x0,'paused':_0x8e89bd[_0x6aaa('0x5d')],'createdAt':_0x8e89bd['createdAt'],'updatedAt':_0x8e89bd[_0x6aaa('0x5e')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x1898f7,_0xc766c9))['catch'](handleError(_0x1898f7,null));};exports[_0x6aaa('0x62')]=function(_0x5a0705,_0x1427d3,_0x1cd7a7){var _0xb56142={};var _0x25b526={};var _0x183286;var _0x1f15c6;return db[_0x6aaa('0x2f')]['findOne']({'where':{'id':_0x5a0705[_0x6aaa('0x48')]['id']}})['then'](handleEntityNotFound(_0x1427d3,null))[_0x6aaa('0x26')](function(_0x5b7063){if(_0x5b7063){_0x183286=_0x5b7063;_0x25b526[_0x6aaa('0x33')]=_['keys'](db['Team'][_0x6aaa('0x30')]);_0x25b526[_0x6aaa('0x35')]=_[_0x6aaa('0x34')](_0x5a0705[_0x6aaa('0x35')]);_0x25b526[_0x6aaa('0x36')]=_[_0x6aaa('0x37')](_0x25b526[_0x6aaa('0x33')],_0x25b526[_0x6aaa('0x35')]);_0xb56142[_0x6aaa('0x39')]=_['intersection'](_0x25b526[_0x6aaa('0x33')],qs[_0x6aaa('0x38')](_0x5a0705['query'][_0x6aaa('0x38')]));_0xb56142[_0x6aaa('0x39')]=_0xb56142[_0x6aaa('0x39')][_0x6aaa('0x3a')]?_0xb56142[_0x6aaa('0x39')]:_0x25b526[_0x6aaa('0x33')];_0xb56142[_0x6aaa('0x63')]=qs[_0x6aaa('0x3d')](_0x5a0705['query'][_0x6aaa('0x3d')]);_0xb56142[_0x6aaa('0x3e')]=qs[_0x6aaa('0x36')](_['pick'](_0x5a0705[_0x6aaa('0x35')],_0x25b526[_0x6aaa('0x36')]));if(_0x5a0705[_0x6aaa('0x35')][_0x6aaa('0x40')]){_0xb56142[_0x6aaa('0x3e')]=_[_0x6aaa('0x41')](_0xb56142[_0x6aaa('0x3e')],{'$or':_[_0x6aaa('0x42')](_0xb56142[_0x6aaa('0x39')],function(_0x587499){var _0x53c952={};_0x53c952[_0x587499]={'$like':'%'+_0x5a0705[_0x6aaa('0x35')]['filter']+'%'};return _0x53c952;})});}_0xb56142=_['merge']({},_0xb56142,_0x5a0705['options']);return _0x183286[_0x6aaa('0x62')](_0xb56142);}})[_0x6aaa('0x26')](function(_0x58ea97){if(_0x58ea97){_0x1f15c6=_0x58ea97[_0x6aaa('0x3a')];if(!_0x5a0705[_0x6aaa('0x35')][_0x6aaa('0x3b')]('nolimit')){_0xb56142[_0x6aaa('0x20')]=qs['limit'](_0x5a0705[_0x6aaa('0x35')][_0x6aaa('0x20')]);_0xb56142[_0x6aaa('0x1d')]=qs[_0x6aaa('0x1d')](_0x5a0705[_0x6aaa('0x35')][_0x6aaa('0x1d')]);}return _0x183286[_0x6aaa('0x62')](_0xb56142);}})['then'](function(_0x276df9){if(_0x276df9){return _0x276df9?{'count':_0x1f15c6,'rows':_0x276df9}:null;}})[_0x6aaa('0x26')](respondWithResult(_0x1427d3,null))[_0x6aaa('0x46')](handleError(_0x1427d3,null));};exports[_0x6aaa('0x64')]=function(_0x5da396,_0x2b139e,_0x292a52){var _0x5c0cb5=_0x5da396[_0x6aaa('0x4d')]['ids'];return db[_0x6aaa('0x65')][_0x6aaa('0x45')]({'where':{'id':_0x5c0cb5},'attributes':['id'],'include':[{'model':db['User'],'as':_0x6aaa('0x66'),'attributes':['id',_0x6aaa('0x2c'),_0x6aaa('0x67'),_0x6aaa('0x68'),_0x6aaa('0x69')],'raw':!![]}]})[_0x6aaa('0x26')](function(_0x2bdc18){if(_0x2bdc18){var _0x451a51=_[_0x6aaa('0x6a')](_0x2bdc18,function(_0x2a65d2){var _0x3229ac=_0x2a65d2[_0x6aaa('0x28')]({'plain':!![]});return _0x3229ac['Agents'];});return db[_0x6aaa('0x2f')][_0x6aaa('0x4b')]({'where':{'id':_0x5da396[_0x6aaa('0x48')]['id']}})['then'](function(_0x33fce4){return db['sequelize'][_0x6aaa('0x6b')](function(_0x14c7d7){return _0x33fce4[_0x6aaa('0x64')](_0x5c0cb5,{'transaction':_0x14c7d7})[_0x6aaa('0x26')](function(){return BPromise[_0x6aaa('0x6c')](_0x451a51,function(_0x1dc235){return db['UserOpenchannelQueue']['findOrCreate']({'where':{'UserId':_0x1dc235['id'],'OpenchannelQueueId':_0x5da396[_0x6aaa('0x48')]['id']},'transaction':_0x14c7d7});});})['then'](function(){_0x451a51[_0x6aaa('0x6d')](function(_0x5c48b5){socket['emit'](_0x6aaa('0x6e'),{'UserId':_0x5c48b5['id'],'OpenchannelQueueId':_0x33fce4['id']});});});});});}})[_0x6aaa('0x26')](respondWithStatusCode(_0x2b139e,null))[_0x6aaa('0x46')](handleError(_0x2b139e,null));};exports[_0x6aaa('0x6f')]=function(_0x2a5f0e,_0x2936f7,_0x48b272){return db[_0x6aaa('0x65')][_0x6aaa('0x45')]({'where':{'id':_0x2a5f0e['query']['ids']},'attributes':['id'],'include':[{'model':db[_0x6aaa('0x59')],'as':_0x6aaa('0x66'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x2936f7,null))[_0x6aaa('0x26')](function(_0x240b3a){var _0x3bd279=_[_0x6aaa('0x42')](_0x240b3a,'id');var _0x1d17e5=[];var _0x3b266f=[];var _0x586b72=squel[_0x6aaa('0x70')]();_0x586b72[_0x6aaa('0x71')](_0x6aaa('0x72'))[_0x6aaa('0x73')]('team_has_openchannel_queues','tq')[_0x6aaa('0x74')](_0x6aaa('0x75'),'ut',_0x6aaa('0x76'))['where'](_0x6aaa('0x77'),_0x2a5f0e['params']['id']);for(var _0x2cc3d6=0x0;_0x2cc3d6<_0x240b3a[_0x6aaa('0x3a')];_0x2cc3d6+=0x1){let _0x22687e=_0x240b3a[_0x2cc3d6];for(var _0x91d9f0=0x0;_0x91d9f0<_0x22687e[_0x6aaa('0x66')]['length'];_0x91d9f0+=0x1){let _0x1e8db3=_0x22687e[_0x6aaa('0x66')][_0x91d9f0];var _0x37e2e2=_0x586b72[_0x6aaa('0x78')]();_0x37e2e2[_0x6aaa('0x3e')](_0x6aaa('0x79'),_0x1e8db3['id']);_0x3b266f[_0x6aaa('0x7a')](db[_0x6aaa('0x7b')][_0x6aaa('0x35')](_0x37e2e2['toString'](),{'type':db[_0x6aaa('0x7b')][_0x6aaa('0x7c')][_0x6aaa('0x7d')]})[_0x6aaa('0x26')](function(_0x27b2bb){if(_0x27b2bb['length']===0x1){return _0x1e8db3['id'];}else{var _0x576348=_[_0x6aaa('0x7e')](_['map'](_0x27b2bb,_0x6aaa('0x7f')),function(_0x14501c){return _[_0x6aaa('0x80')](_0x3bd279,_0x14501c);});if(_0x576348){return _0x1e8db3['id'];}}}));}}return BPromise[_0x6aaa('0x81')](_0x3b266f)[_0x6aaa('0x26')](function(_0x57622b){_0x1d17e5=_(_0x1d17e5)[_0x6aaa('0x82')](_0x57622b)[_0x6aaa('0x83')]()[_0x6aaa('0x84')]();return db[_0x6aaa('0x2f')][_0x6aaa('0x4b')]({'where':{'id':_0x2a5f0e['params']['id']}})[_0x6aaa('0x26')](function(_0x180f5a){return db[_0x6aaa('0x7b')][_0x6aaa('0x6b')](function(_0x1df6c5){return _0x180f5a['removeTeams'](_0x2a5f0e[_0x6aaa('0x35')][_0x6aaa('0x85')],{'transaction':_0x1df6c5})[_0x6aaa('0x26')](function(){if(!_[_0x6aaa('0x86')](_0x1d17e5)){return _0x180f5a[_0x6aaa('0x87')](_0x1d17e5,{'transaction':_0x1df6c5});}})[_0x6aaa('0x26')](function(){_0x1d17e5[_0x6aaa('0x6d')](function(_0x4f4158){socket['emit'](_0x6aaa('0x88'),{'UserId':_0x4f4158,'OpenchannelQueueId':_0x180f5a['id']});});});});});});})['then'](respondWithStatusCode(_0x2936f7,null))[_0x6aaa('0x46')](handleError(_0x2936f7,null));};exports[_0x6aaa('0x89')]=function(_0x251626,_0x2bb7ea,_0x2556be){return db['OpenchannelQueue']['find']({'where':{'id':_0x251626[_0x6aaa('0x48')]['id']}})[_0x6aaa('0x26')](handleEntityNotFound(_0x2bb7ea,null))[_0x6aaa('0x26')](function(_0xe7adcd){if(_0xe7adcd){return _0xe7adcd['addAgents'](_0x251626[_0x6aaa('0x4d')][_0x6aaa('0x85')],_['omit'](_0x251626['body'],[_0x6aaa('0x85'),'id'])||{})['spread'](function(_0x33e9c5){for(var _0x5b5f54=0x0;_0x5b5f54<_0x251626[_0x6aaa('0x4d')][_0x6aaa('0x85')][_0x6aaa('0x3a')];_0x5b5f54+=0x1){socket[_0x6aaa('0x8a')]('userOpenchannelQueue:save',{'UserId':Number(_0x251626[_0x6aaa('0x4d')][_0x6aaa('0x85')][_0x5b5f54]),'OpenchannelQueueId':Number(_0x251626[_0x6aaa('0x48')]['id'])});}return _0x33e9c5;});}})['then'](respondWithResult(_0x2bb7ea,null))[_0x6aaa('0x46')](handleError(_0x2bb7ea,null));};exports[_0x6aaa('0x87')]=function(_0x18ed91,_0x22ab5f,_0x4be03f){return db[_0x6aaa('0x2f')][_0x6aaa('0x4b')]({'where':{'id':_0x18ed91[_0x6aaa('0x48')]['id']}})[_0x6aaa('0x26')](handleEntityNotFound(_0x22ab5f,null))[_0x6aaa('0x26')](function(_0x1ff0e9){if(_0x1ff0e9){return _0x1ff0e9[_0x6aaa('0x87')](_0x18ed91[_0x6aaa('0x35')][_0x6aaa('0x85')])['then'](function(){if(_[_0x6aaa('0x8b')](_0x18ed91[_0x6aaa('0x35')][_0x6aaa('0x85')])){for(var _0xc183ea=0x0;_0xc183ea<_0x18ed91[_0x6aaa('0x35')]['ids']['length'];_0xc183ea+=0x1){socket['emit']('userOpenchannelQueue:remove',{'UserId':Number(_0x18ed91[_0x6aaa('0x35')][_0x6aaa('0x85')][_0xc183ea]),'OpenchannelQueueId':Number(_0x18ed91['params']['id'])});}}else{socket[_0x6aaa('0x8a')](_0x6aaa('0x88'),{'UserId':Number(_0x18ed91[_0x6aaa('0x35')][_0x6aaa('0x85')]),'OpenchannelQueueId':Number(_0x18ed91['params']['id'])});}});}})[_0x6aaa('0x26')](respondWithStatusCode(_0x22ab5f,null))[_0x6aaa('0x46')](handleError(_0x22ab5f,null));};exports['getAgents']=function(_0x30911e,_0x1c39f8,_0x3727bd){var _0x505852={};var _0x13f04c={};var _0x3c4c43;var _0x5bf1cb;return db[_0x6aaa('0x2f')][_0x6aaa('0x57')]({'where':{'id':_0x30911e[_0x6aaa('0x48')]['id']}})[_0x6aaa('0x26')](handleEntityNotFound(_0x1c39f8,null))[_0x6aaa('0x26')](function(_0x2a7b9f){if(_0x2a7b9f){_0x3c4c43=_0x2a7b9f;_0x13f04c[_0x6aaa('0x33')]=_['keys'](db['User'][_0x6aaa('0x30')]);_0x13f04c[_0x6aaa('0x35')]=_[_0x6aaa('0x34')](_0x30911e['query']);_0x13f04c[_0x6aaa('0x36')]=_[_0x6aaa('0x37')](_0x13f04c[_0x6aaa('0x33')],_0x13f04c[_0x6aaa('0x35')]);_0x505852[_0x6aaa('0x39')]=_['intersection'](_0x13f04c[_0x6aaa('0x33')],qs[_0x6aaa('0x38')](_0x30911e[_0x6aaa('0x35')]['fields']));_0x505852[_0x6aaa('0x39')]=_0x505852[_0x6aaa('0x39')][_0x6aaa('0x3a')]?_0x505852[_0x6aaa('0x39')]:_0x13f04c[_0x6aaa('0x33')];_0x505852[_0x6aaa('0x63')]=qs[_0x6aaa('0x3d')](_0x30911e[_0x6aaa('0x35')][_0x6aaa('0x3d')]);_0x505852[_0x6aaa('0x3e')]=qs['filters'](_[_0x6aaa('0x3f')](_0x30911e[_0x6aaa('0x35')],_0x13f04c[_0x6aaa('0x36')]));if(_0x30911e[_0x6aaa('0x35')]['filter']){_0x505852[_0x6aaa('0x3e')]=_[_0x6aaa('0x41')](_0x505852[_0x6aaa('0x3e')],{'$or':_['map'](_0x505852[_0x6aaa('0x39')],function(_0xa90c85){var _0x288da3={};_0x288da3[_0xa90c85]={'$like':'%'+_0x30911e[_0x6aaa('0x35')][_0x6aaa('0x40')]+'%'};return _0x288da3;})});}_0x505852=_['merge']({},_0x505852,_0x30911e[_0x6aaa('0x44')]);return _0x3c4c43[_0x6aaa('0x8c')](_0x505852);}})[_0x6aaa('0x26')](function(_0x5397b5){if(_0x5397b5){_0x5bf1cb=_0x5397b5[_0x6aaa('0x3a')];if(!_0x30911e[_0x6aaa('0x35')][_0x6aaa('0x3b')](_0x6aaa('0x3c'))){_0x505852[_0x6aaa('0x20')]=qs['limit'](_0x30911e[_0x6aaa('0x35')][_0x6aaa('0x20')]);_0x505852[_0x6aaa('0x1d')]=qs[_0x6aaa('0x1d')](_0x30911e[_0x6aaa('0x35')]['offset']);}return _0x3c4c43[_0x6aaa('0x8c')](_0x505852);}})['then'](function(_0x481028){if(_0x481028){return _0x481028?{'count':_0x5bf1cb,'rows':_0x481028}:null;}})[_0x6aaa('0x26')](respondWithResult(_0x1c39f8,null))[_0x6aaa('0x46')](handleError(_0x1c39f8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4918=['save','remove','emit','hook','exports','OpenchannelQueue','setMaxListeners'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x4918,0x1e8));var _0x8491=function(_0x4a0f16,_0x21ba18){_0x4a0f16=_0x4a0f16-0x0;var _0x45d653=_0x4918[_0x4a0f16];return _0x45d653;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require('../../mysqldb')['db'][_0x8491('0x0')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x8491('0x1')](0x0);var events={'afterCreate':_0x8491('0x2'),'afterUpdate':'update','afterDestroy':_0x8491('0x3')};function emitEvent(_0x2545c3){return function(_0x285bed,_0x44e50e,_0x4a6ae4){OpenchannelQueueEvents['emit'](_0x2545c3+':'+_0x285bed['id'],_0x285bed);OpenchannelQueueEvents[_0x8491('0x4')](_0x2545c3,_0x285bed);_0x4a6ae4(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0x8491('0x5')](e,emitEvent(event));}}module[_0x8491('0x6')]=OpenchannelQueueEvents;
\ No newline at end of file
+var _0xad03=['hook','exports','../../mysqldb','update','remove','emit'];(function(_0x771274,_0x21a321){var _0x571f84=function(_0x48b35b){while(--_0x48b35b){_0x771274['push'](_0x771274['shift']());}};_0x571f84(++_0x21a321);}(_0xad03,0x8c));var _0x3ad0=function(_0xc26cbd,_0x3b2974){_0xc26cbd=_0xc26cbd-0x0;var _0x3eb534=_0xad03[_0xc26cbd];return _0x3eb534;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require(_0x3ad0('0x0'))['db']['OpenchannelQueue'];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x3ad0('0x1'),'afterDestroy':_0x3ad0('0x2')};function emitEvent(_0x2ee58c){return function(_0x2cef4d,_0x82a66b,_0x4f29c1){OpenchannelQueueEvents['emit'](_0x2ee58c+':'+_0x2cef4d['id'],_0x2cef4d);OpenchannelQueueEvents[_0x3ad0('0x3')](_0x2ee58c,_0x2cef4d);_0x4f29c1(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0x3ad0('0x4')](e,emitEvent(event));}}module[_0x3ad0('0x5')]=OpenchannelQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3f3=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','OpenchannelQueue','lodash','util'];(function(_0x40f7e6,_0x8c61ae){var _0x156a90=function(_0x2bf1ee){while(--_0x2bf1ee){_0x40f7e6['push'](_0x40f7e6['shift']());}};_0x156a90(++_0x8c61ae);}(_0xa3f3,0x1b8));var _0x3a3f=function(_0x587f69,_0x48a1b1){_0x587f69=_0x587f69-0x0;var _0x28d79b=_0xa3f3[_0x587f69];return _0x28d79b;};'use strict';var _=require(_0x3a3f('0x0'));var util=require(_0x3a3f('0x1'));var logger=require(_0x3a3f('0x2'))(_0x3a3f('0x3'));var moment=require(_0x3a3f('0x4'));var BPromise=require(_0x3a3f('0x5'));var rp=require(_0x3a3f('0x6'));var fs=require('fs');var path=require(_0x3a3f('0x7'));var rimraf=require(_0x3a3f('0x8'));var config=require(_0x3a3f('0x9'));var attributes=require('./openchannelQueue.attributes');module[_0x3a3f('0xa')]=function(_0xad28d,_0x3aa15b){return _0xad28d[_0x3a3f('0xb')](_0x3a3f('0xc'),attributes,{'tableName':'openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x49d2=['bluebird','path','rimraf','../../config/environment','./openchannelQueue.attributes','exports','define','OpenchannelQueue','openchannel_queues','lodash','util','../../config/logger','api','moment'];(function(_0x27bca8,_0x191f63){var _0x370163=function(_0x1329f8){while(--_0x1329f8){_0x27bca8['push'](_0x27bca8['shift']());}};_0x370163(++_0x191f63);}(_0x49d2,0x1ad));var _0x249d=function(_0x1663ae,_0x10484a){_0x1663ae=_0x1663ae-0x0;var _0x30ffb8=_0x49d2[_0x1663ae];return _0x30ffb8;};'use strict';var _=require(_0x249d('0x0'));var util=require(_0x249d('0x1'));var logger=require(_0x249d('0x2'))(_0x249d('0x3'));var moment=require(_0x249d('0x4'));var BPromise=require(_0x249d('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x249d('0x6'));var rimraf=require(_0x249d('0x7'));var config=require(_0x249d('0x8'));var attributes=require(_0x249d('0x9'));module[_0x249d('0xa')]=function(_0x257e9d,_0x33e2cb){return _0x257e9d[_0x249d('0xb')](_0x249d('0xc'),attributes,{'tableName':_0x249d('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa13c=['http','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','register','then','info','request\x20sent','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','OpenchannelQueue,\x20%s,\x20%s','catch','GetOpenchannelQueue','findAll','options','raw','where','attributes','limit','include','model','map','ShowOpenchannelQueue','OpenchannelQueue','find','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa13c,0x71));var _0xca13=function(_0x2700aa,_0x5dc51b){_0x2700aa=_0x2700aa-0x0;var _0x566dc9=_0xa13c[_0x2700aa];return _0x566dc9;};'use strict';var _=require(_0xca13('0x0'));var util=require(_0xca13('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xca13('0x2'));var fs=require('fs');var Redis=require(_0xca13('0x3'));var db=require(_0xca13('0x4'))['db'];var utils=require(_0xca13('0x5'));var logger=require(_0xca13('0x6'))('rpc');var config=require(_0xca13('0x7'));var jayson=require(_0xca13('0x8'));var client=jayson[_0xca13('0x9')][_0xca13('0xa')]({'port':0x232a});config[_0xca13('0xb')]=_[_0xca13('0xc')](config[_0xca13('0xb')],{'host':_0xca13('0xd'),'port':0x18eb});var socket=require(_0xca13('0xe'))(new Redis(config[_0xca13('0xb')]));require(_0xca13('0xf'))[_0xca13('0x10')](socket);function respondWithRpcPromise(_0x58cd92,_0x47631c,_0xf5d9ab){return new BPromise(function(_0x3d59ef,_0x254553){return client['request'](_0x58cd92,_0xf5d9ab)[_0xca13('0x11')](function(_0x2ae5f1){logger[_0xca13('0x12')]('OpenchannelQueue,\x20%s,\x20%s',_0x47631c,_0xca13('0x13'));logger[_0xca13('0x14')](_0xca13('0x15'),_0x47631c,_0xca13('0x13'),JSON[_0xca13('0x16')](_0x2ae5f1));if(_0x2ae5f1[_0xca13('0x17')]){if(_0x2ae5f1['error'][_0xca13('0x18')]===0x1f4){logger[_0xca13('0x17')]('OpenchannelQueue,\x20%s,\x20%s',_0x47631c,_0x2ae5f1['error'][_0xca13('0x19')]);return _0x254553(_0x2ae5f1[_0xca13('0x17')][_0xca13('0x19')]);}logger['error'](_0xca13('0x1a'),_0x47631c,_0x2ae5f1[_0xca13('0x17')][_0xca13('0x19')]);return _0x3d59ef(_0x2ae5f1[_0xca13('0x17')][_0xca13('0x19')]);}else{logger[_0xca13('0x12')](_0xca13('0x1a'),_0x47631c,_0xca13('0x13'));_0x3d59ef(_0x2ae5f1['result'][_0xca13('0x19')]);}})[_0xca13('0x1b')](function(_0x46dd42){logger[_0xca13('0x17')](_0xca13('0x1a'),_0x47631c,_0x46dd42);_0x254553(_0x46dd42);});});}exports[_0xca13('0x1c')]=function(_0x5134a0){var _0x5d5be4=this;return new Promise(function(_0x475932,_0x4a3edd){return db['OpenchannelQueue'][_0xca13('0x1d')]({'raw':_0x5134a0['options']?_0x5134a0[_0xca13('0x1e')][_0xca13('0x1f')]===undefined?!![]:![]:!![],'where':_0x5134a0['options']?_0x5134a0['options'][_0xca13('0x20')]||null:null,'attributes':_0x5134a0[_0xca13('0x1e')]?_0x5134a0['options'][_0xca13('0x21')]||null:null,'limit':_0x5134a0[_0xca13('0x1e')]?_0x5134a0[_0xca13('0x1e')][_0xca13('0x22')]||null:null,'include':_0x5134a0[_0xca13('0x1e')]?_0x5134a0['options'][_0xca13('0x23')]?_['map'](_0x5134a0[_0xca13('0x1e')][_0xca13('0x23')],function(_0x10c962){return{'model':db[_0x10c962[_0xca13('0x24')]],'as':_0x10c962['as'],'attributes':_0x10c962[_0xca13('0x21')],'include':_0x10c962[_0xca13('0x23')]?_['map'](_0x10c962[_0xca13('0x23')],function(_0x1ace52){return{'model':db[_0x1ace52[_0xca13('0x24')]],'as':_0x1ace52['as'],'attributes':_0x1ace52[_0xca13('0x21')],'include':_0x1ace52['include']?_[_0xca13('0x25')](_0x1ace52[_0xca13('0x23')],function(_0x1f2aca){return{'model':db[_0x1f2aca[_0xca13('0x24')]],'as':_0x1f2aca['as'],'attributes':_0x1f2aca['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x47a712){logger[_0xca13('0x12')](_0xca13('0x1c'),_0x5134a0);logger[_0xca13('0x14')]('GetOpenchannelQueue',_0x5134a0,JSON[_0xca13('0x16')](_0x47a712));_0x475932(_0x47a712);})[_0xca13('0x1b')](function(_0x3b48f7){logger[_0xca13('0x17')](_0xca13('0x1c'),_0x3b48f7[_0xca13('0x19')],_0x5134a0);_0x4a3edd(_0x5d5be4['error'](0x1f4,_0x3b48f7[_0xca13('0x19')]));});});};exports[_0xca13('0x26')]=function(_0x52114){var _0x37e9c4=this;return new Promise(function(_0x2fd18f,_0x2dc1b4){return db[_0xca13('0x27')][_0xca13('0x28')]({'raw':_0x52114[_0xca13('0x1e')]?_0x52114[_0xca13('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x52114[_0xca13('0x1e')]?_0x52114['options'][_0xca13('0x20')]||null:null,'attributes':_0x52114[_0xca13('0x1e')]?_0x52114[_0xca13('0x1e')]['attributes']||null:null,'include':_0x52114[_0xca13('0x1e')]?_0x52114['options'][_0xca13('0x23')]?_[_0xca13('0x25')](_0x52114[_0xca13('0x1e')]['include'],function(_0x396c55){return{'model':db[_0x396c55['model']],'as':_0x396c55['as'],'attributes':_0x396c55[_0xca13('0x21')],'include':_0x396c55['include']?_['map'](_0x396c55['include'],function(_0x563db2){return{'model':db[_0x563db2[_0xca13('0x24')]],'as':_0x563db2['as'],'attributes':_0x563db2[_0xca13('0x21')],'include':_0x563db2[_0xca13('0x23')]?_['map'](_0x563db2[_0xca13('0x23')],function(_0x29d4cd){return{'model':db[_0x29d4cd[_0xca13('0x24')]],'as':_0x29d4cd['as'],'attributes':_0x29d4cd['attributes']};}):[]};}):[]};}):[]:[]})[_0xca13('0x11')](function(_0x5c6df2){logger[_0xca13('0x12')](_0xca13('0x26'),_0x52114);logger[_0xca13('0x14')](_0xca13('0x26'),_0x52114,JSON['stringify'](_0x5c6df2));_0x2fd18f(_0x5c6df2);})[_0xca13('0x1b')](function(_0x1daa16){logger[_0xca13('0x17')](_0xca13('0x26'),_0x1daa16[_0xca13('0x19')],_0x52114);_0x2dc1b4(_0x37e9c4['error'](0x1f4,_0x1daa16[_0xca13('0x19')]));});});};
\ No newline at end of file
+var _0x76a6=['../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','then','info','OpenchannelQueue,\x20%s,\x20%s','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetOpenchannelQueue','OpenchannelQueue','options','attributes','limit','include','map','model','where','ShowOpenchannelQueue','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x2109a8,_0x3a7797){var _0x522094=function(_0x545aa1){while(--_0x545aa1){_0x2109a8['push'](_0x2109a8['shift']());}};_0x522094(++_0x3a7797);}(_0x76a6,0x6c));var _0x676a=function(_0x3042d5,_0x349534){_0x3042d5=_0x3042d5-0x0;var _0x1acfef=_0x76a6[_0x3042d5];return _0x1acfef;};'use strict';var _=require('lodash');var util=require(_0x676a('0x0'));var moment=require(_0x676a('0x1'));var BPromise=require(_0x676a('0x2'));var rs=require(_0x676a('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x676a('0x4'))['db'];var utils=require(_0x676a('0x5'));var logger=require(_0x676a('0x6'))('rpc');var config=require(_0x676a('0x7'));var jayson=require(_0x676a('0x8'));var client=jayson[_0x676a('0x9')][_0x676a('0xa')]({'port':0x232a});config[_0x676a('0xb')]=_[_0x676a('0xc')](config['redis'],{'host':_0x676a('0xd'),'port':0x18eb});var socket=require(_0x676a('0xe'))(new Redis(config[_0x676a('0xb')]));require(_0x676a('0xf'))['register'](socket);function respondWithRpcPromise(_0x2e7879,_0x13bfd8,_0x1b6c52){return new BPromise(function(_0x13862d,_0x57d095){return client['request'](_0x2e7879,_0x1b6c52)[_0x676a('0x10')](function(_0x59ae4f){logger[_0x676a('0x11')](_0x676a('0x12'),_0x13bfd8,'request\x20sent');logger[_0x676a('0x13')](_0x676a('0x14'),_0x13bfd8,_0x676a('0x15'),JSON[_0x676a('0x16')](_0x59ae4f));if(_0x59ae4f['error']){if(_0x59ae4f[_0x676a('0x17')][_0x676a('0x18')]===0x1f4){logger['error'](_0x676a('0x12'),_0x13bfd8,_0x59ae4f[_0x676a('0x17')]['message']);return _0x57d095(_0x59ae4f[_0x676a('0x17')]['message']);}logger['error'](_0x676a('0x12'),_0x13bfd8,_0x59ae4f[_0x676a('0x17')]['message']);return _0x13862d(_0x59ae4f[_0x676a('0x17')][_0x676a('0x19')]);}else{logger[_0x676a('0x11')]('OpenchannelQueue,\x20%s,\x20%s',_0x13bfd8,'request\x20sent');_0x13862d(_0x59ae4f[_0x676a('0x1a')][_0x676a('0x19')]);}})[_0x676a('0x1b')](function(_0x3edb9a){logger['error'](_0x676a('0x12'),_0x13bfd8,_0x3edb9a);_0x57d095(_0x3edb9a);});});}exports[_0x676a('0x1c')]=function(_0x511f39){var _0x2b4dfd=this;return new Promise(function(_0x371aeb,_0x2c3966){return db[_0x676a('0x1d')]['findAll']({'raw':_0x511f39[_0x676a('0x1e')]?_0x511f39[_0x676a('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x511f39[_0x676a('0x1e')]?_0x511f39[_0x676a('0x1e')]['where']||null:null,'attributes':_0x511f39[_0x676a('0x1e')]?_0x511f39[_0x676a('0x1e')][_0x676a('0x1f')]||null:null,'limit':_0x511f39[_0x676a('0x1e')]?_0x511f39[_0x676a('0x1e')][_0x676a('0x20')]||null:null,'include':_0x511f39[_0x676a('0x1e')]?_0x511f39[_0x676a('0x1e')][_0x676a('0x21')]?_[_0x676a('0x22')](_0x511f39['options'][_0x676a('0x21')],function(_0x128823){return{'model':db[_0x128823[_0x676a('0x23')]],'as':_0x128823['as'],'attributes':_0x128823['attributes'],'include':_0x128823[_0x676a('0x21')]?_[_0x676a('0x22')](_0x128823[_0x676a('0x21')],function(_0x46a103){return{'model':db[_0x46a103[_0x676a('0x23')]],'as':_0x46a103['as'],'attributes':_0x46a103[_0x676a('0x1f')],'include':_0x46a103[_0x676a('0x21')]?_['map'](_0x46a103[_0x676a('0x21')],function(_0x469f0f){return{'model':db[_0x469f0f[_0x676a('0x23')]],'as':_0x469f0f['as'],'attributes':_0x469f0f['attributes']};}):[]};}):[]};}):[]:[]})[_0x676a('0x10')](function(_0x5c2d90){logger[_0x676a('0x11')](_0x676a('0x1c'),_0x511f39);logger['debug'](_0x676a('0x1c'),_0x511f39,JSON[_0x676a('0x16')](_0x5c2d90));_0x371aeb(_0x5c2d90);})[_0x676a('0x1b')](function(_0x2f8e48){logger['error']('GetOpenchannelQueue',_0x2f8e48[_0x676a('0x19')],_0x511f39);_0x2c3966(_0x2b4dfd[_0x676a('0x17')](0x1f4,_0x2f8e48[_0x676a('0x19')]));});});};exports['ShowOpenchannelQueue']=function(_0x2913cb){var _0x3322bf=this;return new Promise(function(_0x676dd6,_0x1e0f2b){return db[_0x676a('0x1d')]['find']({'raw':_0x2913cb[_0x676a('0x1e')]?_0x2913cb[_0x676a('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x2913cb[_0x676a('0x1e')]?_0x2913cb[_0x676a('0x1e')][_0x676a('0x24')]||null:null,'attributes':_0x2913cb[_0x676a('0x1e')]?_0x2913cb[_0x676a('0x1e')][_0x676a('0x1f')]||null:null,'include':_0x2913cb[_0x676a('0x1e')]?_0x2913cb[_0x676a('0x1e')]['include']?_[_0x676a('0x22')](_0x2913cb[_0x676a('0x1e')][_0x676a('0x21')],function(_0x4fe3a1){return{'model':db[_0x4fe3a1[_0x676a('0x23')]],'as':_0x4fe3a1['as'],'attributes':_0x4fe3a1[_0x676a('0x1f')],'include':_0x4fe3a1['include']?_[_0x676a('0x22')](_0x4fe3a1[_0x676a('0x21')],function(_0x4837cc){return{'model':db[_0x4837cc['model']],'as':_0x4837cc['as'],'attributes':_0x4837cc[_0x676a('0x1f')],'include':_0x4837cc['include']?_[_0x676a('0x22')](_0x4837cc[_0x676a('0x21')],function(_0xeca17f){return{'model':db[_0xeca17f[_0x676a('0x23')]],'as':_0xeca17f['as'],'attributes':_0xeca17f[_0x676a('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x52ed7d){logger['info'](_0x676a('0x25'),_0x2913cb);logger[_0x676a('0x13')](_0x676a('0x25'),_0x2913cb,JSON[_0x676a('0x16')](_0x52ed7d));_0x676dd6(_0x52ed7d);})[_0x676a('0x1b')](function(_0x32f34a){logger[_0x676a('0x17')](_0x676a('0x25'),_0x32f34a['message'],_0x2913cb);_0x1e0f2b(_0x3322bf[_0x676a('0x17')](0x1f4,_0x32f34a[_0x676a('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf603=['emit','removeListener','length','openchannelQueue:','./openchannelQueue.events','save','remove'];(function(_0x53012d,_0x497f0f){var _0x1e0abd=function(_0x3720ae){while(--_0x3720ae){_0x53012d['push'](_0x53012d['shift']());}};_0x1e0abd(++_0x497f0f);}(_0xf603,0xeb));var _0x3f60=function(_0x303498,_0x5c9534){_0x303498=_0x303498-0x0;var _0x92f1ad=_0xf603[_0x303498];return _0x92f1ad;};'use strict';var OpenchannelQueueEvents=require(_0x3f60('0x0'));var events=[_0x3f60('0x1'),_0x3f60('0x2'),'update'];function createListener(_0x16d28f,_0xb20102){return function(_0x3da9d6){_0xb20102[_0x3f60('0x3')](_0x16d28f,_0x3da9d6);};}function removeListener(_0x24aafb,_0x553e8b){return function(){OpenchannelQueueEvents[_0x3f60('0x4')](_0x24aafb,_0x553e8b);};}exports['register']=function(_0x5914cd){for(var _0x2910c7=0x0,_0x1ec43c=events[_0x3f60('0x5')];_0x2910c7<_0x1ec43c;_0x2910c7++){var _0x17659b=events[_0x2910c7];var _0x434249=createListener(_0x3f60('0x6')+_0x17659b,_0x5914cd);OpenchannelQueueEvents['on'](_0x17659b,_0x434249);}};
\ No newline at end of file
+var _0x8673=['openchannelQueue:','./openchannelQueue.events','save','remove','emit','removeListener','length'];(function(_0xbd08b4,_0x4790ed){var _0x314f1e=function(_0x161589){while(--_0x161589){_0xbd08b4['push'](_0xbd08b4['shift']());}};_0x314f1e(++_0x4790ed);}(_0x8673,0x8d));var _0x3867=function(_0x4c616f,_0x57329f){_0x4c616f=_0x4c616f-0x0;var _0x1af2d6=_0x8673[_0x4c616f];return _0x1af2d6;};'use strict';var OpenchannelQueueEvents=require(_0x3867('0x0'));var events=[_0x3867('0x1'),_0x3867('0x2'),'update'];function createListener(_0x50d995,_0x34e576){return function(_0x44d61c){_0x34e576[_0x3867('0x3')](_0x50d995,_0x44d61c);};}function removeListener(_0x54ee37,_0x15d37f){return function(){OpenchannelQueueEvents[_0x3867('0x4')](_0x54ee37,_0x15d37f);};}exports['register']=function(_0x23504e){for(var _0x33bed5=0x0,_0x7c389c=events[_0x3867('0x5')];_0x33bed5<_0x7c389c;_0x33bed5++){var _0x2b3dc1=events[_0x33bed5];var _0x1986ef=createListener(_0x3867('0x6')+_0x2b3dc1,_0x23504e);OpenchannelQueueEvents['on'](_0x2b3dc1,_0x1986ef);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4457=['./openchannelQueueReport.controller','get','isAuthenticated','/describe','describe','/:id','show','create','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4457,0x138));var _0x7445=function(_0x34e79d,_0x1fb826){_0x34e79d=_0x34e79d-0x0;var _0x56afa8=_0x4457[_0x34e79d];return _0x56afa8;};'use strict';var multer=require(_0x7445('0x0'));var util=require(_0x7445('0x1'));var path=require('path');var timeout=require(_0x7445('0x2'));var express=require(_0x7445('0x3'));var router=express[_0x7445('0x4')]();var fs_extra=require(_0x7445('0x5'));var auth=require(_0x7445('0x6'));var interaction=require(_0x7445('0x7'));var config=require('../../config/environment');var controller=require(_0x7445('0x8'));router[_0x7445('0x9')]('/',auth[_0x7445('0xa')](),controller['index']);router[_0x7445('0x9')](_0x7445('0xb'),auth[_0x7445('0xa')](),controller[_0x7445('0xc')]);router['get'](_0x7445('0xd'),auth[_0x7445('0xa')](),controller[_0x7445('0xe')]);router['post']('/',auth[_0x7445('0xa')](),controller[_0x7445('0xf')]);router['put'](_0x7445('0xd'),auth[_0x7445('0xa')](),controller[_0x7445('0x10')]);router[_0x7445('0x11')](_0x7445('0xd'),auth['isAuthenticated'](),controller[_0x7445('0x12')]);module[_0x7445('0x13')]=router;
\ No newline at end of file
+var _0xa5c4=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','get','/describe','isAuthenticated','describe','show','post','put','/:id','update','delete','destroy','exports','multer','util','express','Router'];(function(_0x32eccc,_0x19f818){var _0xea443e=function(_0x4a5d58){while(--_0x4a5d58){_0x32eccc['push'](_0x32eccc['shift']());}};_0xea443e(++_0x19f818);}(_0xa5c4,0x10d));var _0x4a5c=function(_0x279d37,_0x14de3f){_0x279d37=_0x279d37-0x0;var _0x530173=_0xa5c4[_0x279d37];return _0x530173;};'use strict';var multer=require(_0x4a5c('0x0'));var util=require(_0x4a5c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x4a5c('0x2'));var router=express[_0x4a5c('0x3')]();var fs_extra=require(_0x4a5c('0x4'));var auth=require(_0x4a5c('0x5'));var interaction=require(_0x4a5c('0x6'));var config=require(_0x4a5c('0x7'));var controller=require(_0x4a5c('0x8'));router[_0x4a5c('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x4a5c('0x9')](_0x4a5c('0xa'),auth[_0x4a5c('0xb')](),controller[_0x4a5c('0xc')]);router[_0x4a5c('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x4a5c('0xd')]);router[_0x4a5c('0xe')]('/',auth[_0x4a5c('0xb')](),controller['create']);router[_0x4a5c('0xf')](_0x4a5c('0x10'),auth[_0x4a5c('0xb')](),controller[_0x4a5c('0x11')]);router[_0x4a5c('0x12')](_0x4a5c('0x10'),auth[_0x4a5c('0xb')](),controller[_0x4a5c('0x13')]);module[_0x4a5c('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31dc=['exports','STRING','DATE','sequelize'];(function(_0x655fc5,_0x498cc5){var _0x20ddf5=function(_0x592c4b){while(--_0x592c4b){_0x655fc5['push'](_0x655fc5['shift']());}};_0x20ddf5(++_0x498cc5);}(_0x31dc,0xeb));var _0xc31d=function(_0x117bdf,_0x232ac0){_0x117bdf=_0x117bdf-0x0;var _0x1c83db=_0x31dc[_0x117bdf];return _0x1c83db;};'use strict';var moment=require('moment');var Sequelize=require(_0xc31d('0x0'));module[_0xc31d('0x1')]={'uniqueid':{'type':Sequelize[_0xc31d('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0xc31d('0x2')]},'joinAt':{'type':Sequelize[_0xc31d('0x3')]},'leaveAt':{'type':Sequelize[_0xc31d('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0xc31d('0x3')]},'reason':{'type':Sequelize[_0xc31d('0x2')]}};
\ No newline at end of file
+var _0x4939=['DATE','moment','sequelize','STRING'];(function(_0x286456,_0x161eb3){var _0x49ed4f=function(_0x4af62b){while(--_0x4af62b){_0x286456['push'](_0x286456['shift']());}};_0x49ed4f(++_0x161eb3);}(_0x4939,0x1a9));var _0x9493=function(_0x110232,_0x2e4cdf){_0x110232=_0x110232-0x0;var _0x12a071=_0x4939[_0x110232];return _0x12a071;};'use strict';var moment=require(_0x9493('0x0'));var Sequelize=require(_0x9493('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0x9493('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x9493('0x3')]},'leaveAt':{'type':Sequelize[_0x9493('0x3')]},'acceptAt':{'type':Sequelize[_0x9493('0x3')]},'exitAt':{'type':Sequelize[_0x9493('0x3')]},'reason':{'type':Sequelize[_0x9493('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xefd1=['offset','undefined','count','limit','Content-Range','json','apply','reject','update','destroy','then','error','stack','name','send','map','OpenchannelQueueReport','rawAttributes','fieldName','type','key','query','keys','filters','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','catch','show','params','intersection','find','body','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','end','status'];(function(_0x1d1d85,_0x2c91f4){var _0x19a6cd=function(_0x1ac1b5){while(--_0x1ac1b5){_0x1d1d85['push'](_0x1d1d85['shift']());}};_0x19a6cd(++_0x2c91f4);}(_0xefd1,0xc5));var _0x1efd=function(_0x2bce5a,_0x4dcb7e){_0x2bce5a=_0x2bce5a-0x0;var _0x2224f9=_0xefd1[_0x2bce5a];return _0x2224f9;};'use strict';var emlformat=require(_0x1efd('0x0'));var rimraf=require(_0x1efd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1efd('0x2'));var moment=require(_0x1efd('0x3'));var BPromise=require(_0x1efd('0x4'));var Mustache=require(_0x1efd('0x5'));var util=require(_0x1efd('0x6'));var path=require(_0x1efd('0x7'));var sox=require(_0x1efd('0x8'));var csv=require(_0x1efd('0x9'));var ejs=require(_0x1efd('0xa'));var fs=require('fs');var fs_extra=require(_0x1efd('0xb'));var _=require(_0x1efd('0xc'));var squel=require(_0x1efd('0xd'));var crypto=require(_0x1efd('0xe'));var jsforce=require(_0x1efd('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x1efd('0x9'));var querystring=require(_0x1efd('0x10'));var Papa=require(_0x1efd('0x11'));var Redis=require(_0x1efd('0x12'));var authService=require(_0x1efd('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x1efd('0x14'));var hardwareService=require(_0x1efd('0x15'));var logger=require(_0x1efd('0x16'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x1efd('0x17'));var db=require(_0x1efd('0x18'))['db'];function respondWithStatusCode(_0x452b15,_0x4eb7be){_0x4eb7be=_0x4eb7be||0xcc;return function(_0x22200d){if(_0x22200d){return _0x452b15[_0x1efd('0x19')](_0x4eb7be);}return _0x452b15['status'](_0x4eb7be)[_0x1efd('0x1a')]();};}function respondWithResult(_0x1a7b0b,_0xc24e54){_0xc24e54=_0xc24e54||0xc8;return function(_0x34d2e1){if(_0x34d2e1){return _0x1a7b0b[_0x1efd('0x1b')](_0xc24e54)['json'](_0x34d2e1);}};}function respondWithFilteredResult(_0x6b6dfa,_0x566263){return function(_0xeec263){if(_0xeec263){var _0x27e678=typeof _0x566263[_0x1efd('0x1c')]===_0x1efd('0x1d')&&typeof _0x566263['limit']===_0x1efd('0x1d');var _0xa9cbe7=_0xeec263[_0x1efd('0x1e')];var _0x7bcf65=_0x27e678?0x0:_0x566263[_0x1efd('0x1c')];var _0x29238d=_0x27e678?_0xeec263[_0x1efd('0x1e')]:_0x566263['offset']+_0x566263[_0x1efd('0x1f')];var _0x24782d;if(_0x29238d>=_0xa9cbe7){_0x29238d=_0xa9cbe7;_0x24782d=0xc8;}else{_0x24782d=0xce;}_0x6b6dfa[_0x1efd('0x1b')](_0x24782d);return _0x6b6dfa['set'](_0x1efd('0x20'),_0x7bcf65+'-'+_0x29238d+'/'+_0xa9cbe7)[_0x1efd('0x21')](_0xeec263);}return null;};}function patchUpdates(_0x2f2c62){return function(_0x158dd8){try{jsonpatch[_0x1efd('0x22')](_0x158dd8,_0x2f2c62,!![]);}catch(_0x189a60){return BPromise[_0x1efd('0x23')](_0x189a60);}return _0x158dd8['save']();};}function saveUpdates(_0xa6e6f7,_0x305237){return function(_0x4a1275){if(_0x4a1275){return _0x4a1275[_0x1efd('0x24')](_0xa6e6f7)['then'](function(_0x46cc2a){return _0x46cc2a;});}return null;};}function removeEntity(_0x1d175e,_0x15418f){return function(_0x3c6386){if(_0x3c6386){return _0x3c6386[_0x1efd('0x25')]()[_0x1efd('0x26')](function(){_0x1d175e[_0x1efd('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57c0bf,_0x504b3c){return function(_0x34f41a){if(!_0x34f41a){_0x57c0bf[_0x1efd('0x19')](0x194);}return _0x34f41a;};}function handleError(_0x5a13df,_0x1072f2){_0x1072f2=_0x1072f2||0x1f4;return function(_0x14ab47){logger[_0x1efd('0x27')](_0x14ab47[_0x1efd('0x28')]);if(_0x14ab47[_0x1efd('0x29')]){delete _0x14ab47['name'];}_0x5a13df[_0x1efd('0x1b')](_0x1072f2)[_0x1efd('0x2a')](_0x14ab47);};}exports['index']=function(_0x198703,_0x35685e){var _0x3dec05={},_0x40157c={},_0x54739d={'count':0x0,'rows':[]};var _0x452218=_[_0x1efd('0x2b')](db[_0x1efd('0x2c')][_0x1efd('0x2d')],function(_0x128f79){return{'name':_0x128f79[_0x1efd('0x2e')],'type':_0x128f79[_0x1efd('0x2f')][_0x1efd('0x30')]};});_0x40157c['model']=_[_0x1efd('0x2b')](_0x452218,'name');_0x40157c[_0x1efd('0x31')]=_[_0x1efd('0x32')](_0x198703[_0x1efd('0x31')]);_0x40157c[_0x1efd('0x33')]=_['intersection'](_0x40157c[_0x1efd('0x34')],_0x40157c[_0x1efd('0x31')]);_0x3dec05[_0x1efd('0x35')]=_['intersection'](_0x40157c[_0x1efd('0x34')],qs[_0x1efd('0x36')](_0x198703['query']['fields']));_0x3dec05[_0x1efd('0x35')]=_0x3dec05[_0x1efd('0x35')][_0x1efd('0x37')]?_0x3dec05[_0x1efd('0x35')]:_0x40157c[_0x1efd('0x34')];if(!_0x198703[_0x1efd('0x31')][_0x1efd('0x38')](_0x1efd('0x39'))){_0x3dec05['limit']=qs['limit'](_0x198703[_0x1efd('0x31')][_0x1efd('0x1f')]);_0x3dec05[_0x1efd('0x1c')]=qs[_0x1efd('0x1c')](_0x198703[_0x1efd('0x31')][_0x1efd('0x1c')]);}_0x3dec05[_0x1efd('0x3a')]=qs[_0x1efd('0x3b')](_0x198703[_0x1efd('0x31')]['sort']);_0x3dec05[_0x1efd('0x3c')]=qs[_0x1efd('0x33')](_[_0x1efd('0x3d')](_0x198703[_0x1efd('0x31')],_0x40157c[_0x1efd('0x33')]),_0x452218);if(_0x198703[_0x1efd('0x31')][_0x1efd('0x3e')]){_0x3dec05[_0x1efd('0x3c')]=_['merge'](_0x3dec05['where'],{'$or':_['map'](_0x452218,function(_0x199599){if(_0x199599['type']!=='VIRTUAL'){var _0x319fc9={};_0x319fc9[_0x199599[_0x1efd('0x29')]]={'$like':'%'+_0x198703[_0x1efd('0x31')][_0x1efd('0x3e')]+'%'};return _0x319fc9;}})});}_0x3dec05=_[_0x1efd('0x3f')]({},_0x3dec05,_0x198703[_0x1efd('0x40')]);var _0x3de601={'where':_0x3dec05[_0x1efd('0x3c')]};return db[_0x1efd('0x2c')][_0x1efd('0x1e')](_0x3de601)[_0x1efd('0x26')](function(_0x345e4a){_0x54739d[_0x1efd('0x1e')]=_0x345e4a;if(_0x198703[_0x1efd('0x31')][_0x1efd('0x41')]){_0x3dec05[_0x1efd('0x42')]=[{'all':!![]}];}return db[_0x1efd('0x2c')]['findAll'](_0x3dec05);})[_0x1efd('0x26')](function(_0x5ebe9d){_0x54739d[_0x1efd('0x43')]=_0x5ebe9d;return _0x54739d;})[_0x1efd('0x26')](respondWithFilteredResult(_0x35685e,_0x3dec05))[_0x1efd('0x44')](handleError(_0x35685e,null));};exports[_0x1efd('0x45')]=function(_0x50b315,_0x185d55){var _0x5311c3={'raw':!![],'where':{'id':_0x50b315[_0x1efd('0x46')]['id']}},_0x171b33={};_0x171b33['model']=_['keys'](db[_0x1efd('0x2c')][_0x1efd('0x2d')]);_0x171b33['query']=_[_0x1efd('0x32')](_0x50b315[_0x1efd('0x31')]);_0x171b33['filters']=_[_0x1efd('0x47')](_0x171b33[_0x1efd('0x34')],_0x171b33['query']);_0x5311c3[_0x1efd('0x35')]=_['intersection'](_0x171b33[_0x1efd('0x34')],qs[_0x1efd('0x36')](_0x50b315[_0x1efd('0x31')]['fields']));_0x5311c3['attributes']=_0x5311c3[_0x1efd('0x35')]['length']?_0x5311c3[_0x1efd('0x35')]:_0x171b33['model'];if(_0x50b315['query'][_0x1efd('0x41')]){_0x5311c3[_0x1efd('0x42')]=[{'all':!![]}];}_0x5311c3=_['merge']({},_0x5311c3,_0x50b315[_0x1efd('0x40')]);return db[_0x1efd('0x2c')][_0x1efd('0x48')](_0x5311c3)[_0x1efd('0x26')](handleEntityNotFound(_0x185d55,null))['then'](respondWithResult(_0x185d55,null))['catch'](handleError(_0x185d55,null));};exports['create']=function(_0x3c4fa9,_0x1a161f){return db['OpenchannelQueueReport']['create'](_0x3c4fa9[_0x1efd('0x49')],{})[_0x1efd('0x26')](respondWithResult(_0x1a161f,0xc9))['catch'](handleError(_0x1a161f,null));};exports[_0x1efd('0x24')]=function(_0x23c2af,_0x2d8f3a){if(_0x23c2af['body']['id']){delete _0x23c2af[_0x1efd('0x49')]['id'];}return db[_0x1efd('0x2c')]['find']({'where':{'id':_0x23c2af['params']['id']}})[_0x1efd('0x26')](handleEntityNotFound(_0x2d8f3a,null))[_0x1efd('0x26')](saveUpdates(_0x23c2af[_0x1efd('0x49')],null))[_0x1efd('0x26')](respondWithResult(_0x2d8f3a,null))['catch'](handleError(_0x2d8f3a,null));};exports['destroy']=function(_0x3b4044,_0x4f5f2b){return db[_0x1efd('0x2c')][_0x1efd('0x48')]({'where':{'id':_0x3b4044['params']['id']}})['then'](handleEntityNotFound(_0x4f5f2b,null))[_0x1efd('0x26')](removeEntity(_0x4f5f2b,null))[_0x1efd('0x44')](handleError(_0x4f5f2b,null));};exports[_0x1efd('0x4a')]=function(_0x536e37,_0x2f31af){return db[_0x1efd('0x2c')]['describe']()['then'](respondWithResult(_0x2f31af,null))['catch'](handleError(_0x2f31af,null));};
\ No newline at end of file
+var _0x45c2=['params','keys','catch','create','body','update','find','describe','rimraf','zip-dir','fast-json-patch','bluebird','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','count','offset','apply','reject','save','then','destroy','stack','name','index','map','OpenchannelQueueReport','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show'];(function(_0x341b9d,_0x5ba046){var _0x448d4f=function(_0x401442){while(--_0x401442){_0x341b9d['push'](_0x341b9d['shift']());}};_0x448d4f(++_0x5ba046);}(_0x45c2,0xe0));var _0x245c=function(_0x4da749,_0x33272a){_0x4da749=_0x4da749-0x0;var _0x59afaf=_0x45c2[_0x4da749];return _0x59afaf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x245c('0x0'));var zipdir=require(_0x245c('0x1'));var jsonpatch=require(_0x245c('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x245c('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x245c('0x4'));var csv=require(_0x245c('0x5'));var ejs=require(_0x245c('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x245c('0x7'));var squel=require(_0x245c('0x8'));var crypto=require(_0x245c('0x9'));var jsforce=require(_0x245c('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x245c('0xb'));var Papa=require(_0x245c('0xc'));var Redis=require(_0x245c('0xd'));var authService=require(_0x245c('0xe'));var qs=require(_0x245c('0xf'));var as=require(_0x245c('0x10'));var hardwareService=require(_0x245c('0x11'));var logger=require(_0x245c('0x12'))(_0x245c('0x13'));var utils=require(_0x245c('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x245c('0x15'));var db=require(_0x245c('0x16'))['db'];function respondWithStatusCode(_0x459f52,_0x3eaed4){_0x3eaed4=_0x3eaed4||0xcc;return function(_0x274509){if(_0x274509){return _0x459f52[_0x245c('0x17')](_0x3eaed4);}return _0x459f52[_0x245c('0x18')](_0x3eaed4)['end']();};}function respondWithResult(_0x4f5347,_0x4f3fcc){_0x4f3fcc=_0x4f3fcc||0xc8;return function(_0x151af4){if(_0x151af4){return _0x4f5347['status'](_0x4f3fcc)[_0x245c('0x19')](_0x151af4);}};}function respondWithFilteredResult(_0x2a8825,_0x5a3d37){return function(_0x1c6991){if(_0x1c6991){var _0x403ac1=typeof _0x5a3d37['offset']===_0x245c('0x1a')&&typeof _0x5a3d37['limit']==='undefined';var _0x210eca=_0x1c6991[_0x245c('0x1b')];var _0x5ae115=_0x403ac1?0x0:_0x5a3d37[_0x245c('0x1c')];var _0x33d170=_0x403ac1?_0x1c6991[_0x245c('0x1b')]:_0x5a3d37[_0x245c('0x1c')]+_0x5a3d37['limit'];var _0x53b820;if(_0x33d170>=_0x210eca){_0x33d170=_0x210eca;_0x53b820=0xc8;}else{_0x53b820=0xce;}_0x2a8825[_0x245c('0x18')](_0x53b820);return _0x2a8825['set']('Content-Range',_0x5ae115+'-'+_0x33d170+'/'+_0x210eca)[_0x245c('0x19')](_0x1c6991);}return null;};}function patchUpdates(_0x5b6a82){return function(_0xd04541){try{jsonpatch[_0x245c('0x1d')](_0xd04541,_0x5b6a82,!![]);}catch(_0x2439ea){return BPromise[_0x245c('0x1e')](_0x2439ea);}return _0xd04541[_0x245c('0x1f')]();};}function saveUpdates(_0x2b4c3d,_0x5df767){return function(_0x5c5de5){if(_0x5c5de5){return _0x5c5de5['update'](_0x2b4c3d)[_0x245c('0x20')](function(_0x2963e8){return _0x2963e8;});}return null;};}function removeEntity(_0x166a80,_0x5b6fb5){return function(_0x2658a0){if(_0x2658a0){return _0x2658a0[_0x245c('0x21')]()[_0x245c('0x20')](function(){_0x166a80[_0x245c('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d4e04,_0x20139d){return function(_0x11612a){if(!_0x11612a){_0x1d4e04[_0x245c('0x17')](0x194);}return _0x11612a;};}function handleError(_0x2f8f74,_0x4b867b){_0x4b867b=_0x4b867b||0x1f4;return function(_0x1e31db){logger['error'](_0x1e31db[_0x245c('0x22')]);if(_0x1e31db['name']){delete _0x1e31db[_0x245c('0x23')];}_0x2f8f74[_0x245c('0x18')](_0x4b867b)['send'](_0x1e31db);};}exports[_0x245c('0x24')]=function(_0x4bb5bd,_0x2623a6){var _0x23decd={},_0x39832b={},_0x497e1f={'count':0x0,'rows':[]};var _0x47a184=_[_0x245c('0x25')](db[_0x245c('0x26')][_0x245c('0x27')],function(_0x4de381){return{'name':_0x4de381['fieldName'],'type':_0x4de381[_0x245c('0x28')][_0x245c('0x29')]};});_0x39832b[_0x245c('0x2a')]=_[_0x245c('0x25')](_0x47a184,_0x245c('0x23'));_0x39832b[_0x245c('0x2b')]=_['keys'](_0x4bb5bd[_0x245c('0x2b')]);_0x39832b[_0x245c('0x2c')]=_[_0x245c('0x2d')](_0x39832b['model'],_0x39832b[_0x245c('0x2b')]);_0x23decd[_0x245c('0x2e')]=_[_0x245c('0x2d')](_0x39832b[_0x245c('0x2a')],qs[_0x245c('0x2f')](_0x4bb5bd[_0x245c('0x2b')][_0x245c('0x2f')]));_0x23decd['attributes']=_0x23decd['attributes'][_0x245c('0x30')]?_0x23decd[_0x245c('0x2e')]:_0x39832b[_0x245c('0x2a')];if(!_0x4bb5bd[_0x245c('0x2b')][_0x245c('0x31')](_0x245c('0x32'))){_0x23decd['limit']=qs[_0x245c('0x33')](_0x4bb5bd[_0x245c('0x2b')][_0x245c('0x33')]);_0x23decd[_0x245c('0x1c')]=qs[_0x245c('0x1c')](_0x4bb5bd['query'][_0x245c('0x1c')]);}_0x23decd[_0x245c('0x34')]=qs[_0x245c('0x35')](_0x4bb5bd[_0x245c('0x2b')]['sort']);_0x23decd[_0x245c('0x36')]=qs[_0x245c('0x2c')](_[_0x245c('0x37')](_0x4bb5bd[_0x245c('0x2b')],_0x39832b[_0x245c('0x2c')]),_0x47a184);if(_0x4bb5bd[_0x245c('0x2b')][_0x245c('0x38')]){_0x23decd[_0x245c('0x36')]=_[_0x245c('0x39')](_0x23decd[_0x245c('0x36')],{'$or':_[_0x245c('0x25')](_0x47a184,function(_0x3b9b62){if(_0x3b9b62[_0x245c('0x28')]!=='VIRTUAL'){var _0x409788={};_0x409788[_0x3b9b62[_0x245c('0x23')]]={'$like':'%'+_0x4bb5bd[_0x245c('0x2b')][_0x245c('0x38')]+'%'};return _0x409788;}})});}_0x23decd=_[_0x245c('0x39')]({},_0x23decd,_0x4bb5bd[_0x245c('0x3a')]);var _0x2b4a6c={'where':_0x23decd['where']};return db[_0x245c('0x26')][_0x245c('0x1b')](_0x2b4a6c)[_0x245c('0x20')](function(_0x26e67f){_0x497e1f[_0x245c('0x1b')]=_0x26e67f;if(_0x4bb5bd[_0x245c('0x2b')][_0x245c('0x3b')]){_0x23decd[_0x245c('0x3c')]=[{'all':!![]}];}return db[_0x245c('0x26')][_0x245c('0x3d')](_0x23decd);})[_0x245c('0x20')](function(_0x865d5d){_0x497e1f[_0x245c('0x3e')]=_0x865d5d;return _0x497e1f;})[_0x245c('0x20')](respondWithFilteredResult(_0x2623a6,_0x23decd))['catch'](handleError(_0x2623a6,null));};exports[_0x245c('0x3f')]=function(_0x48afd4,_0x1b86b5){var _0x587af0={'raw':!![],'where':{'id':_0x48afd4[_0x245c('0x40')]['id']}},_0xbe3d5a={};_0xbe3d5a[_0x245c('0x2a')]=_[_0x245c('0x41')](db['OpenchannelQueueReport']['rawAttributes']);_0xbe3d5a[_0x245c('0x2b')]=_[_0x245c('0x41')](_0x48afd4['query']);_0xbe3d5a[_0x245c('0x2c')]=_['intersection'](_0xbe3d5a['model'],_0xbe3d5a[_0x245c('0x2b')]);_0x587af0['attributes']=_[_0x245c('0x2d')](_0xbe3d5a[_0x245c('0x2a')],qs['fields'](_0x48afd4[_0x245c('0x2b')][_0x245c('0x2f')]));_0x587af0[_0x245c('0x2e')]=_0x587af0[_0x245c('0x2e')][_0x245c('0x30')]?_0x587af0[_0x245c('0x2e')]:_0xbe3d5a[_0x245c('0x2a')];if(_0x48afd4[_0x245c('0x2b')]['includeAll']){_0x587af0[_0x245c('0x3c')]=[{'all':!![]}];}_0x587af0=_[_0x245c('0x39')]({},_0x587af0,_0x48afd4[_0x245c('0x3a')]);return db[_0x245c('0x26')]['find'](_0x587af0)[_0x245c('0x20')](handleEntityNotFound(_0x1b86b5,null))['then'](respondWithResult(_0x1b86b5,null))[_0x245c('0x42')](handleError(_0x1b86b5,null));};exports['create']=function(_0x1d561e,_0xaf080){return db[_0x245c('0x26')][_0x245c('0x43')](_0x1d561e[_0x245c('0x44')],{})[_0x245c('0x20')](respondWithResult(_0xaf080,0xc9))[_0x245c('0x42')](handleError(_0xaf080,null));};exports[_0x245c('0x45')]=function(_0x2c2806,_0x30430b){if(_0x2c2806['body']['id']){delete _0x2c2806['body']['id'];}return db[_0x245c('0x26')][_0x245c('0x46')]({'where':{'id':_0x2c2806[_0x245c('0x40')]['id']}})[_0x245c('0x20')](handleEntityNotFound(_0x30430b,null))[_0x245c('0x20')](saveUpdates(_0x2c2806[_0x245c('0x44')],null))['then'](respondWithResult(_0x30430b,null))['catch'](handleError(_0x30430b,null));};exports['destroy']=function(_0x479dda,_0x3e2207){return db[_0x245c('0x26')]['find']({'where':{'id':_0x479dda[_0x245c('0x40')]['id']}})[_0x245c('0x20')](handleEntityNotFound(_0x3e2207,null))[_0x245c('0x20')](removeEntity(_0x3e2207,null))[_0x245c('0x42')](handleError(_0x3e2207,null));};exports[_0x245c('0x47')]=function(_0xc274e3,_0xe0380c){return db[_0x245c('0x26')][_0x245c('0x47')]()[_0x245c('0x20')](respondWithResult(_0xe0380c,null))['catch'](handleError(_0xe0380c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['util','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelQueueReport.attributes','exports','define','report_openchannel_queue','uniqueid','lodash'];(function(_0x2d91c6,_0x10ae0e){var _0x3a8d19=function(_0x27a3ce){while(--_0x27a3ce){_0x2d91c6['push'](_0x2d91c6['shift']());}};_0x3a8d19(++_0x10ae0e);}(_0x5fc3,0xa8));var _0x35fc=function(_0x4de586,_0x183427){_0x4de586=_0x4de586-0x0;var _0x46baf5=_0x5fc3[_0x4de586];return _0x46baf5;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('OpenchannelQueueReport',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[{'name':_0x35fc('0xc'),'fields':[_0x35fc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fc3=['util','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelQueueReport.attributes','exports','define','report_openchannel_queue','uniqueid','lodash'];(function(_0x1ccfef,_0x48d09d){var _0x92e9=function(_0xf982ed){while(--_0xf982ed){_0x1ccfef['push'](_0x1ccfef['shift']());}};_0x92e9(++_0x48d09d);}(_0x5fc3,0xa8));var _0x35fc=function(_0xf44d98,_0x12a472){_0xf44d98=_0xf44d98-0x0;var _0x5ebb04=_0x5fc3[_0xf44d98];return _0x5ebb04;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('OpenchannelQueueReport',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[{'name':_0x35fc('0xc'),'fields':[_0x35fc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x253d=['lodash','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','debug','request\x20sent','stringify','error','code','message','result','OpenchannelQueueReport,\x20%s,\x20%s','CreateOpenchannelQueueReport','create','options','catch','UpdateOpenchannelQueueReport','OpenchannelQueueReport','update','body','limit'];(function(_0x36332b,_0x5f2c0e){var _0x3a35c5=function(_0x5a4b8a){while(--_0x5a4b8a){_0x36332b['push'](_0x36332b['shift']());}};_0x3a35c5(++_0x5f2c0e);}(_0x253d,0x1b3));var _0xd253=function(_0x338ad7,_0x37c306){_0x338ad7=_0x338ad7-0x0;var _0x566608=_0x253d[_0x338ad7];return _0x566608;};'use strict';var _=require(_0xd253('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd253('0x1'));var db=require(_0xd253('0x2'))['db'];var utils=require(_0xd253('0x3'));var logger=require(_0xd253('0x4'))(_0xd253('0x5'));var config=require('../../config/environment');var jayson=require(_0xd253('0x6'));var client=jayson[_0xd253('0x7')][_0xd253('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x17589a,_0xf4b457,_0x487f4e){return new BPromise(function(_0x2c4de4,_0x712c81){return client[_0xd253('0x9')](_0x17589a,_0x487f4e)[_0xd253('0xa')](function(_0x351047){logger[_0xd253('0xb')]('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,'request\x20sent');logger[_0xd253('0xc')]('OpenchannelQueueReport,\x20%s,\x20%s,\x20%s',_0xf4b457,_0xd253('0xd'),JSON[_0xd253('0xe')](_0x351047));if(_0x351047[_0xd253('0xf')]){if(_0x351047[_0xd253('0xf')][_0xd253('0x10')]===0x1f4){logger[_0xd253('0xf')]('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,_0x351047['error'][_0xd253('0x11')]);return _0x712c81(_0x351047[_0xd253('0xf')][_0xd253('0x11')]);}logger['error']('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,_0x351047[_0xd253('0xf')][_0xd253('0x11')]);return _0x2c4de4(_0x351047[_0xd253('0xf')]['message']);}else{logger[_0xd253('0xb')]('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,_0xd253('0xd'));_0x2c4de4(_0x351047[_0xd253('0x12')][_0xd253('0x11')]);}})['catch'](function(_0x1b7ed1){logger['error'](_0xd253('0x13'),_0xf4b457,_0x1b7ed1);_0x712c81(_0x1b7ed1);});});}exports[_0xd253('0x14')]=function(_0x5e4051){var _0x2496cb=this;return new Promise(function(_0x2a2adc,_0x5b24ff){return db['OpenchannelQueueReport'][_0xd253('0x15')](_0x5e4051['body'],{'raw':_0x5e4051['options']?_0x5e4051[_0xd253('0x16')]['raw']===undefined?!![]:![]:!![]})[_0xd253('0xa')](function(_0x1e48c3){logger[_0xd253('0xb')](_0xd253('0x14'),_0x5e4051);logger['debug'](_0xd253('0x14'),_0x5e4051,JSON['stringify'](_0x1e48c3));_0x2a2adc(_0x1e48c3);})[_0xd253('0x17')](function(_0x50f8b5){logger[_0xd253('0xf')](_0xd253('0x14'),_0x50f8b5[_0xd253('0x11')],_0x5e4051);_0x5b24ff(_0x2496cb[_0xd253('0xf')](0x1f4,_0x50f8b5['message']));});});};exports[_0xd253('0x18')]=function(_0x34d98d){var _0x585c14=this;return new Promise(function(_0x27b0a1,_0x434be5){return db[_0xd253('0x19')][_0xd253('0x1a')](_0x34d98d[_0xd253('0x1b')],{'raw':_0x34d98d[_0xd253('0x16')]?_0x34d98d[_0xd253('0x16')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x34d98d[_0xd253('0x16')]?_0x34d98d['options']['where']||null:null,'attributes':_0x34d98d[_0xd253('0x16')]?_0x34d98d[_0xd253('0x16')]['attributes']||null:null,'limit':_0x34d98d['options']?_0x34d98d[_0xd253('0x16')][_0xd253('0x1c')]||null:null})['then'](function(_0x3955a0){logger[_0xd253('0xb')](_0xd253('0x18'),_0x34d98d);logger[_0xd253('0xc')](_0xd253('0x18'),_0x34d98d,JSON['stringify'](_0x3955a0));_0x27b0a1(_0x3955a0);})[_0xd253('0x17')](function(_0x31a217){logger[_0xd253('0xf')]('UpdateOpenchannelQueueReport',_0x31a217[_0xd253('0x11')],_0x34d98d);_0x434be5(_0x585c14['error'](0x1f4,_0x31a217[_0xd253('0x11')]));});});};
\ No newline at end of file
+var _0xde9f=['client','request','then','info','OpenchannelQueueReport,\x20%s,\x20%s','request\x20sent','debug','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','OpenchannelQueueReport','options','raw','CreateOpenchannelQueueReport','catch','UpdateOpenchannelQueueReport','update','body','where','attributes','limit','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xde9f,0x118));var _0xfde9=function(_0x4706a6,_0x5a1c63){_0x4706a6=_0x4706a6-0x0;var _0x1bb705=_0xde9f[_0x4706a6];return _0x1bb705;};'use strict';var _=require(_0xfde9('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xfde9('0x1'));var rs=require(_0xfde9('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfde9('0x3'))['db'];var utils=require(_0xfde9('0x4'));var logger=require('../../config/logger')(_0xfde9('0x5'));var config=require(_0xfde9('0x6'));var jayson=require(_0xfde9('0x7'));var client=jayson[_0xfde9('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4c3e01,_0x179ee0,_0x18a202){return new BPromise(function(_0x5569c2,_0x19a337){return client[_0xfde9('0x9')](_0x4c3e01,_0x18a202)[_0xfde9('0xa')](function(_0x3b775d){logger[_0xfde9('0xb')](_0xfde9('0xc'),_0x179ee0,_0xfde9('0xd'));logger[_0xfde9('0xe')](_0xfde9('0xf'),_0x179ee0,_0xfde9('0xd'),JSON[_0xfde9('0x10')](_0x3b775d));if(_0x3b775d[_0xfde9('0x11')]){if(_0x3b775d[_0xfde9('0x11')][_0xfde9('0x12')]===0x1f4){logger['error']('OpenchannelQueueReport,\x20%s,\x20%s',_0x179ee0,_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);return _0x19a337(_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);}logger['error']('OpenchannelQueueReport,\x20%s,\x20%s',_0x179ee0,_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);return _0x5569c2(_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);}else{logger[_0xfde9('0xb')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x179ee0,_0xfde9('0xd'));_0x5569c2(_0x3b775d[_0xfde9('0x14')][_0xfde9('0x13')]);}})['catch'](function(_0x31b1c7){logger[_0xfde9('0x11')](_0xfde9('0xc'),_0x179ee0,_0x31b1c7);_0x19a337(_0x31b1c7);});});}exports['CreateOpenchannelQueueReport']=function(_0x4c9f24){var _0x5eb89e=this;return new Promise(function(_0x544f19,_0x166f1c){return db[_0xfde9('0x15')]['create'](_0x4c9f24['body'],{'raw':_0x4c9f24[_0xfde9('0x16')]?_0x4c9f24[_0xfde9('0x16')][_0xfde9('0x17')]===undefined?!![]:![]:!![]})[_0xfde9('0xa')](function(_0x162b07){logger[_0xfde9('0xb')](_0xfde9('0x18'),_0x4c9f24);logger[_0xfde9('0xe')](_0xfde9('0x18'),_0x4c9f24,JSON[_0xfde9('0x10')](_0x162b07));_0x544f19(_0x162b07);})[_0xfde9('0x19')](function(_0x28d189){logger['error'](_0xfde9('0x18'),_0x28d189['message'],_0x4c9f24);_0x166f1c(_0x5eb89e[_0xfde9('0x11')](0x1f4,_0x28d189[_0xfde9('0x13')]));});});};exports[_0xfde9('0x1a')]=function(_0x5d0a74){var _0x12e3e7=this;return new Promise(function(_0x10e809,_0x53733b){return db[_0xfde9('0x15')][_0xfde9('0x1b')](_0x5d0a74[_0xfde9('0x1c')],{'raw':_0x5d0a74[_0xfde9('0x16')]?_0x5d0a74[_0xfde9('0x16')][_0xfde9('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5d0a74[_0xfde9('0x16')]?_0x5d0a74[_0xfde9('0x16')][_0xfde9('0x1d')]||null:null,'attributes':_0x5d0a74[_0xfde9('0x16')]?_0x5d0a74[_0xfde9('0x16')][_0xfde9('0x1e')]||null:null,'limit':_0x5d0a74[_0xfde9('0x16')]?_0x5d0a74[_0xfde9('0x16')][_0xfde9('0x1f')]||null:null})[_0xfde9('0xa')](function(_0x4b7956){logger['info'](_0xfde9('0x1a'),_0x5d0a74);logger[_0xfde9('0xe')]('UpdateOpenchannelQueueReport',_0x5d0a74,JSON[_0xfde9('0x10')](_0x4b7956));_0x10e809(_0x4b7956);})[_0xfde9('0x19')](function(_0x1651e0){logger[_0xfde9('0x11')](_0xfde9('0x1a'),_0x1651e0['message'],_0x5d0a74);_0x53733b(_0x12e3e7[_0xfde9('0x11')](0x1f4,_0x1651e0[_0xfde9('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f1f=['delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','get','isAuthenticated','describe','/:id','show','post','create','put','update'];(function(_0x394453,_0x2a55cb){var _0x4f8b6d=function(_0xd7d688){while(--_0xd7d688){_0x394453['push'](_0x394453['shift']());}};_0x4f8b6d(++_0x2a55cb);}(_0x8f1f,0x18f));var _0xf8f1=function(_0x19aa32,_0x33381b){_0x19aa32=_0x19aa32-0x0;var _0x104dd6=_0x8f1f[_0x19aa32];return _0x104dd6;};'use strict';var multer=require(_0xf8f1('0x0'));var util=require(_0xf8f1('0x1'));var path=require(_0xf8f1('0x2'));var timeout=require(_0xf8f1('0x3'));var express=require('express');var router=express[_0xf8f1('0x4')]();var fs_extra=require(_0xf8f1('0x5'));var auth=require(_0xf8f1('0x6'));var interaction=require(_0xf8f1('0x7'));var config=require(_0xf8f1('0x8'));var controller=require(_0xf8f1('0x9'));router[_0xf8f1('0xa')]('/',auth[_0xf8f1('0xb')](),controller['index']);router[_0xf8f1('0xa')]('/describe',auth[_0xf8f1('0xb')](),controller[_0xf8f1('0xc')]);router['get'](_0xf8f1('0xd'),auth[_0xf8f1('0xb')](),controller[_0xf8f1('0xe')]);router[_0xf8f1('0xf')]('/',auth[_0xf8f1('0xb')](),controller[_0xf8f1('0x10')]);router[_0xf8f1('0x11')](_0xf8f1('0xd'),auth['isAuthenticated'](),controller[_0xf8f1('0x12')]);router[_0xf8f1('0x13')](_0xf8f1('0xd'),auth[_0xf8f1('0xb')](),controller[_0xf8f1('0x14')]);module[_0xf8f1('0x15')]=router;
\ No newline at end of file
+var _0xc597=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','get','isAuthenticated','index','/describe','/:id','show','post'];(function(_0x1f2104,_0x3d1a56){var _0x590031=function(_0x16e37d){while(--_0x16e37d){_0x1f2104['push'](_0x1f2104['shift']());}};_0x590031(++_0x3d1a56);}(_0xc597,0xb6));var _0x7c59=function(_0x42fc3e,_0xdc5885){_0x42fc3e=_0x42fc3e-0x0;var _0x52e1fa=_0xc597[_0x42fc3e];return _0x52e1fa;};'use strict';var multer=require(_0x7c59('0x0'));var util=require(_0x7c59('0x1'));var path=require(_0x7c59('0x2'));var timeout=require(_0x7c59('0x3'));var express=require(_0x7c59('0x4'));var router=express['Router']();var fs_extra=require(_0x7c59('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7c59('0x6'));var config=require(_0x7c59('0x7'));var controller=require(_0x7c59('0x8'));router[_0x7c59('0x9')]('/',auth[_0x7c59('0xa')](),controller[_0x7c59('0xb')]);router['get'](_0x7c59('0xc'),auth[_0x7c59('0xa')](),controller['describe']);router[_0x7c59('0x9')](_0x7c59('0xd'),auth[_0x7c59('0xa')](),controller[_0x7c59('0xe')]);router[_0x7c59('0xf')]('/',auth[_0x7c59('0xa')](),controller[_0x7c59('0x10')]);router[_0x7c59('0x11')](_0x7c59('0xd'),auth[_0x7c59('0xa')](),controller[_0x7c59('0x12')]);router[_0x7c59('0x13')](_0x7c59('0xd'),auth[_0x7c59('0xa')](),controller[_0x7c59('0x14')]);module[_0x7c59('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['ENUM','account','agent','queue','NOW','exports','STRING'];(function(_0x25c988,_0xce8221){var _0x45fcc2=function(_0x47fba5){while(--_0x47fba5){_0x25c988['push'](_0x25c988['shift']());}};_0x45fcc2(++_0xce8221);}(_0x9c44,0x178));var _0x49c4=function(_0x3d42d8,_0x4cffaa){_0x3d42d8=_0x3d42d8-0x0;var _0x27fc41=_0x9c44[_0x3d42d8];return _0x27fc41;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x49c4('0x0')]={'uniqueid':{'type':Sequelize[_0x49c4('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x49c4('0x2')](_0x49c4('0x3'),_0x49c4('0x4'),_0x49c4('0x5')),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x49c4('0x6')]}};
\ No newline at end of file
+var _0x54ef=['agent','queue','DATE','NOW','moment','sequelize','exports','ENUM','account'];(function(_0x2b7ba3,_0x3eb26a){var _0x2d189f=function(_0x29678e){while(--_0x29678e){_0x2b7ba3['push'](_0x2b7ba3['shift']());}};_0x2d189f(++_0x3eb26a);}(_0x54ef,0x112));var _0xf54e=function(_0x240eb4,_0x4e48fc){_0x240eb4=_0x240eb4-0x0;var _0xd30537=_0x54ef[_0x240eb4];return _0xd30537;};'use strict';var moment=require(_0xf54e('0x0'));var Sequelize=require(_0xf54e('0x1'));module[_0xf54e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xf54e('0x3')](_0xf54e('0x4'),_0xf54e('0x5'),_0xf54e('0x6')),'allowNull':![],'defaultValue':_0xf54e('0x6')},'transferredAt':{'type':Sequelize[_0xf54e('0x7')],'allowNull':![],'defaultValue':Sequelize[_0xf54e('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe6bc=['count','set','apply','reject','save','update','then','destroy','error','stack','name','index','map','OpenchannelTransferReport','rawAttributes','fieldName','type','key','keys','query','attributes','intersection','model','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','VIRTUAL','options','findAll','rows','show','params','includeAll','include','find','catch','create','body','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x346f8f,_0x341102){var _0x1dcde5=function(_0x4040b3){while(--_0x4040b3){_0x346f8f['push'](_0x346f8f['shift']());}};_0x1dcde5(++_0x341102);}(_0xe6bc,0x1e9));var _0xce6b=function(_0x221ba2,_0x5c04ff){_0x221ba2=_0x221ba2-0x0;var _0x456af2=_0xe6bc[_0x221ba2];return _0x456af2;};'use strict';var emlformat=require(_0xce6b('0x0'));var rimraf=require(_0xce6b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xce6b('0x2'));var moment=require(_0xce6b('0x3'));var BPromise=require(_0xce6b('0x4'));var Mustache=require(_0xce6b('0x5'));var util=require(_0xce6b('0x6'));var path=require(_0xce6b('0x7'));var sox=require('sox');var csv=require(_0xce6b('0x8'));var ejs=require(_0xce6b('0x9'));var fs=require('fs');var fs_extra=require(_0xce6b('0xa'));var _=require('lodash');var squel=require(_0xce6b('0xb'));var crypto=require(_0xce6b('0xc'));var jsforce=require(_0xce6b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xce6b('0x8'));var querystring=require(_0xce6b('0xe'));var Papa=require(_0xce6b('0xf'));var Redis=require(_0xce6b('0x10'));var authService=require(_0xce6b('0x11'));var qs=require(_0xce6b('0x12'));var as=require(_0xce6b('0x13'));var hardwareService=require(_0xce6b('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xce6b('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x41d990,_0x14e851){_0x14e851=_0x14e851||0xcc;return function(_0x4873bc){if(_0x4873bc){return _0x41d990[_0xce6b('0x16')](_0x14e851);}return _0x41d990[_0xce6b('0x17')](_0x14e851)[_0xce6b('0x18')]();};}function respondWithResult(_0x33c094,_0x45d882){_0x45d882=_0x45d882||0xc8;return function(_0xdb6071){if(_0xdb6071){return _0x33c094['status'](_0x45d882)[_0xce6b('0x19')](_0xdb6071);}};}function respondWithFilteredResult(_0x2819f6,_0x21e2c5){return function(_0x6992f7){if(_0x6992f7){var _0x38d80a=typeof _0x21e2c5[_0xce6b('0x1a')]===_0xce6b('0x1b')&&typeof _0x21e2c5[_0xce6b('0x1c')]==='undefined';var _0x37ec5a=_0x6992f7[_0xce6b('0x1d')];var _0x53f7c0=_0x38d80a?0x0:_0x21e2c5[_0xce6b('0x1a')];var _0x4700ef=_0x38d80a?_0x6992f7['count']:_0x21e2c5[_0xce6b('0x1a')]+_0x21e2c5[_0xce6b('0x1c')];var _0x30a9da;if(_0x4700ef>=_0x37ec5a){_0x4700ef=_0x37ec5a;_0x30a9da=0xc8;}else{_0x30a9da=0xce;}_0x2819f6['status'](_0x30a9da);return _0x2819f6[_0xce6b('0x1e')]('Content-Range',_0x53f7c0+'-'+_0x4700ef+'/'+_0x37ec5a)[_0xce6b('0x19')](_0x6992f7);}return null;};}function patchUpdates(_0x340a0a){return function(_0x5ac1c8){try{jsonpatch[_0xce6b('0x1f')](_0x5ac1c8,_0x340a0a,!![]);}catch(_0x509f31){return BPromise[_0xce6b('0x20')](_0x509f31);}return _0x5ac1c8[_0xce6b('0x21')]();};}function saveUpdates(_0x4c4504,_0x426eba){return function(_0x22aa35){if(_0x22aa35){return _0x22aa35[_0xce6b('0x22')](_0x4c4504)[_0xce6b('0x23')](function(_0x12c5d7){return _0x12c5d7;});}return null;};}function removeEntity(_0x179af7,_0x344a75){return function(_0x3e1c9b){if(_0x3e1c9b){return _0x3e1c9b[_0xce6b('0x24')]()[_0xce6b('0x23')](function(){_0x179af7['status'](0xcc)[_0xce6b('0x18')]();});}};}function handleEntityNotFound(_0x49488e,_0x263b1f){return function(_0x514a02){if(!_0x514a02){_0x49488e['sendStatus'](0x194);}return _0x514a02;};}function handleError(_0x259c41,_0x1858ed){_0x1858ed=_0x1858ed||0x1f4;return function(_0x16e75f){logger[_0xce6b('0x25')](_0x16e75f[_0xce6b('0x26')]);if(_0x16e75f['name']){delete _0x16e75f[_0xce6b('0x27')];}_0x259c41[_0xce6b('0x17')](_0x1858ed)['send'](_0x16e75f);};}exports[_0xce6b('0x28')]=function(_0x58c422,_0x2640f1){var _0x48e798={},_0xa5f8c1={},_0x39489b={'count':0x0,'rows':[]};var _0x58e53c=_[_0xce6b('0x29')](db[_0xce6b('0x2a')][_0xce6b('0x2b')],function(_0xfd90e9){return{'name':_0xfd90e9[_0xce6b('0x2c')],'type':_0xfd90e9[_0xce6b('0x2d')][_0xce6b('0x2e')]};});_0xa5f8c1['model']=_[_0xce6b('0x29')](_0x58e53c,_0xce6b('0x27'));_0xa5f8c1['query']=_[_0xce6b('0x2f')](_0x58c422['query']);_0xa5f8c1['filters']=_['intersection'](_0xa5f8c1['model'],_0xa5f8c1[_0xce6b('0x30')]);_0x48e798[_0xce6b('0x31')]=_[_0xce6b('0x32')](_0xa5f8c1[_0xce6b('0x33')],qs['fields'](_0x58c422[_0xce6b('0x30')][_0xce6b('0x34')]));_0x48e798[_0xce6b('0x31')]=_0x48e798['attributes'][_0xce6b('0x35')]?_0x48e798[_0xce6b('0x31')]:_0xa5f8c1[_0xce6b('0x33')];if(!_0x58c422[_0xce6b('0x30')][_0xce6b('0x36')]('nolimit')){_0x48e798[_0xce6b('0x1c')]=qs[_0xce6b('0x1c')](_0x58c422[_0xce6b('0x30')][_0xce6b('0x1c')]);_0x48e798[_0xce6b('0x1a')]=qs[_0xce6b('0x1a')](_0x58c422[_0xce6b('0x30')][_0xce6b('0x1a')]);}_0x48e798[_0xce6b('0x37')]=qs['sort'](_0x58c422[_0xce6b('0x30')][_0xce6b('0x38')]);_0x48e798[_0xce6b('0x39')]=qs[_0xce6b('0x3a')](_['pick'](_0x58c422[_0xce6b('0x30')],_0xa5f8c1[_0xce6b('0x3a')]),_0x58e53c);if(_0x58c422[_0xce6b('0x30')][_0xce6b('0x3b')]){_0x48e798[_0xce6b('0x39')]=_[_0xce6b('0x3c')](_0x48e798[_0xce6b('0x39')],{'$or':_[_0xce6b('0x29')](_0x58e53c,function(_0x39c30c){if(_0x39c30c[_0xce6b('0x2d')]!==_0xce6b('0x3d')){var _0x132f1a={};_0x132f1a[_0x39c30c[_0xce6b('0x27')]]={'$like':'%'+_0x58c422['query'][_0xce6b('0x3b')]+'%'};return _0x132f1a;}})});}_0x48e798=_['merge']({},_0x48e798,_0x58c422[_0xce6b('0x3e')]);var _0x4770dd={'where':_0x48e798['where']};return db[_0xce6b('0x2a')][_0xce6b('0x1d')](_0x4770dd)['then'](function(_0x2eeb0e){_0x39489b[_0xce6b('0x1d')]=_0x2eeb0e;if(_0x58c422[_0xce6b('0x30')]['includeAll']){_0x48e798['include']=[{'all':!![]}];}return db[_0xce6b('0x2a')][_0xce6b('0x3f')](_0x48e798);})[_0xce6b('0x23')](function(_0x35452d){_0x39489b[_0xce6b('0x40')]=_0x35452d;return _0x39489b;})[_0xce6b('0x23')](respondWithFilteredResult(_0x2640f1,_0x48e798))['catch'](handleError(_0x2640f1,null));};exports[_0xce6b('0x41')]=function(_0x1e3666,_0x3a7acc){var _0x1cce4e={'raw':!![],'where':{'id':_0x1e3666[_0xce6b('0x42')]['id']}},_0x540f18={};_0x540f18[_0xce6b('0x33')]=_[_0xce6b('0x2f')](db[_0xce6b('0x2a')]['rawAttributes']);_0x540f18[_0xce6b('0x30')]=_[_0xce6b('0x2f')](_0x1e3666[_0xce6b('0x30')]);_0x540f18[_0xce6b('0x3a')]=_[_0xce6b('0x32')](_0x540f18[_0xce6b('0x33')],_0x540f18[_0xce6b('0x30')]);_0x1cce4e['attributes']=_[_0xce6b('0x32')](_0x540f18[_0xce6b('0x33')],qs[_0xce6b('0x34')](_0x1e3666[_0xce6b('0x30')][_0xce6b('0x34')]));_0x1cce4e[_0xce6b('0x31')]=_0x1cce4e['attributes'][_0xce6b('0x35')]?_0x1cce4e['attributes']:_0x540f18['model'];if(_0x1e3666[_0xce6b('0x30')][_0xce6b('0x43')]){_0x1cce4e[_0xce6b('0x44')]=[{'all':!![]}];}_0x1cce4e=_[_0xce6b('0x3c')]({},_0x1cce4e,_0x1e3666['options']);return db[_0xce6b('0x2a')][_0xce6b('0x45')](_0x1cce4e)[_0xce6b('0x23')](handleEntityNotFound(_0x3a7acc,null))[_0xce6b('0x23')](respondWithResult(_0x3a7acc,null))[_0xce6b('0x46')](handleError(_0x3a7acc,null));};exports['create']=function(_0x493e5a,_0x387657){return db[_0xce6b('0x2a')][_0xce6b('0x47')](_0x493e5a[_0xce6b('0x48')],{})[_0xce6b('0x23')](respondWithResult(_0x387657,0xc9))[_0xce6b('0x46')](handleError(_0x387657,null));};exports[_0xce6b('0x22')]=function(_0x395677,_0x3b3dde){if(_0x395677[_0xce6b('0x48')]['id']){delete _0x395677[_0xce6b('0x48')]['id'];}return db[_0xce6b('0x2a')]['find']({'where':{'id':_0x395677[_0xce6b('0x42')]['id']}})[_0xce6b('0x23')](handleEntityNotFound(_0x3b3dde,null))['then'](saveUpdates(_0x395677[_0xce6b('0x48')],null))[_0xce6b('0x23')](respondWithResult(_0x3b3dde,null))[_0xce6b('0x46')](handleError(_0x3b3dde,null));};exports[_0xce6b('0x24')]=function(_0x4f40c0,_0x449aed){return db[_0xce6b('0x2a')][_0xce6b('0x45')]({'where':{'id':_0x4f40c0[_0xce6b('0x42')]['id']}})[_0xce6b('0x23')](handleEntityNotFound(_0x449aed,null))[_0xce6b('0x23')](removeEntity(_0x449aed,null))[_0xce6b('0x46')](handleError(_0x449aed,null));};exports[_0xce6b('0x49')]=function(_0x3de72a,_0x1fd17b){return db[_0xce6b('0x2a')][_0xce6b('0x49')]()[_0xce6b('0x23')](respondWithResult(_0x1fd17b,null))['catch'](handleError(_0x1fd17b,null));};
\ No newline at end of file
+var _0xb7f8=['filters','pick','filter','where','VIRTUAL','merge','then','includeAll','findAll','catch','show','params','include','options','find','create','body','describe','eml-format','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','OpenchannelTransferReport','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort'];(function(_0x256b72,_0x340985){var _0x2183e3=function(_0xf7fd37){while(--_0xf7fd37){_0x256b72['push'](_0x256b72['shift']());}};_0x2183e3(++_0x340985);}(_0xb7f8,0x198));var _0x8b7f=function(_0x4b0173,_0x17fb98){_0x4b0173=_0x4b0173-0x0;var _0xd693a7=_0xb7f8[_0x4b0173];return _0xd693a7;};'use strict';var emlformat=require(_0x8b7f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x8b7f('0x1'));var rp=require(_0x8b7f('0x2'));var moment=require('moment');var BPromise=require(_0x8b7f('0x3'));var Mustache=require(_0x8b7f('0x4'));var util=require('util');var path=require(_0x8b7f('0x5'));var sox=require('sox');var csv=require(_0x8b7f('0x6'));var ejs=require(_0x8b7f('0x7'));var fs=require('fs');var fs_extra=require(_0x8b7f('0x8'));var _=require(_0x8b7f('0x9'));var squel=require(_0x8b7f('0xa'));var crypto=require(_0x8b7f('0xb'));var jsforce=require(_0x8b7f('0xc'));var deskjs=require(_0x8b7f('0xd'));var toCsv=require(_0x8b7f('0x6'));var querystring=require(_0x8b7f('0xe'));var Papa=require(_0x8b7f('0xf'));var Redis=require(_0x8b7f('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x8b7f('0x11'));var as=require(_0x8b7f('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8b7f('0x13'))(_0x8b7f('0x14'));var utils=require(_0x8b7f('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x8b7f('0x16'));var db=require(_0x8b7f('0x17'))['db'];function respondWithStatusCode(_0x5b0ccd,_0x170dc5){_0x170dc5=_0x170dc5||0xcc;return function(_0x4dca4d){if(_0x4dca4d){return _0x5b0ccd[_0x8b7f('0x18')](_0x170dc5);}return _0x5b0ccd[_0x8b7f('0x19')](_0x170dc5)[_0x8b7f('0x1a')]();};}function respondWithResult(_0x52bf84,_0x568f04){_0x568f04=_0x568f04||0xc8;return function(_0x46d71e){if(_0x46d71e){return _0x52bf84['status'](_0x568f04)[_0x8b7f('0x1b')](_0x46d71e);}};}function respondWithFilteredResult(_0x29007e,_0x2d435e){return function(_0x1f7f5b){if(_0x1f7f5b){var _0x1271e3=typeof _0x2d435e[_0x8b7f('0x1c')]===_0x8b7f('0x1d')&&typeof _0x2d435e['limit']===_0x8b7f('0x1d');var _0x4ff95c=_0x1f7f5b[_0x8b7f('0x1e')];var _0x349a22=_0x1271e3?0x0:_0x2d435e[_0x8b7f('0x1c')];var _0x14d015=_0x1271e3?_0x1f7f5b['count']:_0x2d435e[_0x8b7f('0x1c')]+_0x2d435e['limit'];var _0x40dddd;if(_0x14d015>=_0x4ff95c){_0x14d015=_0x4ff95c;_0x40dddd=0xc8;}else{_0x40dddd=0xce;}_0x29007e[_0x8b7f('0x19')](_0x40dddd);return _0x29007e[_0x8b7f('0x1f')](_0x8b7f('0x20'),_0x349a22+'-'+_0x14d015+'/'+_0x4ff95c)[_0x8b7f('0x1b')](_0x1f7f5b);}return null;};}function patchUpdates(_0x5502dd){return function(_0x39027a){try{jsonpatch[_0x8b7f('0x21')](_0x39027a,_0x5502dd,!![]);}catch(_0x34d5e9){return BPromise[_0x8b7f('0x22')](_0x34d5e9);}return _0x39027a[_0x8b7f('0x23')]();};}function saveUpdates(_0xd1de8b,_0x17a216){return function(_0x3eb793){if(_0x3eb793){return _0x3eb793[_0x8b7f('0x24')](_0xd1de8b)['then'](function(_0x1412da){return _0x1412da;});}return null;};}function removeEntity(_0x135112,_0x4fe4af){return function(_0x8784ae){if(_0x8784ae){return _0x8784ae[_0x8b7f('0x25')]()['then'](function(){_0x135112[_0x8b7f('0x19')](0xcc)[_0x8b7f('0x1a')]();});}};}function handleEntityNotFound(_0x5b350e,_0x6067d9){return function(_0x4a6791){if(!_0x4a6791){_0x5b350e['sendStatus'](0x194);}return _0x4a6791;};}function handleError(_0x1a4b00,_0x3e1e73){_0x3e1e73=_0x3e1e73||0x1f4;return function(_0x150a90){logger[_0x8b7f('0x26')](_0x150a90[_0x8b7f('0x27')]);if(_0x150a90['name']){delete _0x150a90[_0x8b7f('0x28')];}_0x1a4b00[_0x8b7f('0x19')](_0x3e1e73)[_0x8b7f('0x29')](_0x150a90);};}exports[_0x8b7f('0x2a')]=function(_0x559777,_0x142abb){var _0x41d3bd={},_0x49643d={},_0x47c77b={'count':0x0,'rows':[]};var _0x56a32b=_[_0x8b7f('0x2b')](db[_0x8b7f('0x2c')]['rawAttributes'],function(_0x5e9e19){return{'name':_0x5e9e19[_0x8b7f('0x2d')],'type':_0x5e9e19[_0x8b7f('0x2e')][_0x8b7f('0x2f')]};});_0x49643d[_0x8b7f('0x30')]=_['map'](_0x56a32b,_0x8b7f('0x28'));_0x49643d[_0x8b7f('0x31')]=_[_0x8b7f('0x32')](_0x559777[_0x8b7f('0x31')]);_0x49643d['filters']=_[_0x8b7f('0x33')](_0x49643d[_0x8b7f('0x30')],_0x49643d[_0x8b7f('0x31')]);_0x41d3bd[_0x8b7f('0x34')]=_['intersection'](_0x49643d['model'],qs[_0x8b7f('0x35')](_0x559777['query'][_0x8b7f('0x35')]));_0x41d3bd[_0x8b7f('0x34')]=_0x41d3bd['attributes'][_0x8b7f('0x36')]?_0x41d3bd['attributes']:_0x49643d['model'];if(!_0x559777[_0x8b7f('0x31')][_0x8b7f('0x37')](_0x8b7f('0x38'))){_0x41d3bd[_0x8b7f('0x39')]=qs[_0x8b7f('0x39')](_0x559777[_0x8b7f('0x31')][_0x8b7f('0x39')]);_0x41d3bd[_0x8b7f('0x1c')]=qs['offset'](_0x559777[_0x8b7f('0x31')]['offset']);}_0x41d3bd[_0x8b7f('0x3a')]=qs[_0x8b7f('0x3b')](_0x559777[_0x8b7f('0x31')][_0x8b7f('0x3b')]);_0x41d3bd['where']=qs[_0x8b7f('0x3c')](_[_0x8b7f('0x3d')](_0x559777[_0x8b7f('0x31')],_0x49643d['filters']),_0x56a32b);if(_0x559777[_0x8b7f('0x31')][_0x8b7f('0x3e')]){_0x41d3bd[_0x8b7f('0x3f')]=_['merge'](_0x41d3bd[_0x8b7f('0x3f')],{'$or':_[_0x8b7f('0x2b')](_0x56a32b,function(_0x4e7396){if(_0x4e7396['type']!==_0x8b7f('0x40')){var _0x21beb0={};_0x21beb0[_0x4e7396[_0x8b7f('0x28')]]={'$like':'%'+_0x559777[_0x8b7f('0x31')][_0x8b7f('0x3e')]+'%'};return _0x21beb0;}})});}_0x41d3bd=_[_0x8b7f('0x41')]({},_0x41d3bd,_0x559777['options']);var _0xfd96b4={'where':_0x41d3bd['where']};return db[_0x8b7f('0x2c')][_0x8b7f('0x1e')](_0xfd96b4)[_0x8b7f('0x42')](function(_0x4b213a){_0x47c77b[_0x8b7f('0x1e')]=_0x4b213a;if(_0x559777[_0x8b7f('0x31')][_0x8b7f('0x43')]){_0x41d3bd['include']=[{'all':!![]}];}return db[_0x8b7f('0x2c')][_0x8b7f('0x44')](_0x41d3bd);})['then'](function(_0x19ea87){_0x47c77b['rows']=_0x19ea87;return _0x47c77b;})[_0x8b7f('0x42')](respondWithFilteredResult(_0x142abb,_0x41d3bd))[_0x8b7f('0x45')](handleError(_0x142abb,null));};exports[_0x8b7f('0x46')]=function(_0x398c19,_0x4bf959){var _0x52e504={'raw':!![],'where':{'id':_0x398c19[_0x8b7f('0x47')]['id']}},_0x2a90e7={};_0x2a90e7[_0x8b7f('0x30')]=_[_0x8b7f('0x32')](db['OpenchannelTransferReport']['rawAttributes']);_0x2a90e7[_0x8b7f('0x31')]=_['keys'](_0x398c19['query']);_0x2a90e7[_0x8b7f('0x3c')]=_['intersection'](_0x2a90e7['model'],_0x2a90e7[_0x8b7f('0x31')]);_0x52e504[_0x8b7f('0x34')]=_[_0x8b7f('0x33')](_0x2a90e7[_0x8b7f('0x30')],qs[_0x8b7f('0x35')](_0x398c19[_0x8b7f('0x31')]['fields']));_0x52e504[_0x8b7f('0x34')]=_0x52e504[_0x8b7f('0x34')][_0x8b7f('0x36')]?_0x52e504[_0x8b7f('0x34')]:_0x2a90e7['model'];if(_0x398c19[_0x8b7f('0x31')][_0x8b7f('0x43')]){_0x52e504[_0x8b7f('0x48')]=[{'all':!![]}];}_0x52e504=_[_0x8b7f('0x41')]({},_0x52e504,_0x398c19[_0x8b7f('0x49')]);return db[_0x8b7f('0x2c')][_0x8b7f('0x4a')](_0x52e504)[_0x8b7f('0x42')](handleEntityNotFound(_0x4bf959,null))['then'](respondWithResult(_0x4bf959,null))[_0x8b7f('0x45')](handleError(_0x4bf959,null));};exports[_0x8b7f('0x4b')]=function(_0x3768fa,_0x282702){return db[_0x8b7f('0x2c')][_0x8b7f('0x4b')](_0x3768fa[_0x8b7f('0x4c')],{})[_0x8b7f('0x42')](respondWithResult(_0x282702,0xc9))[_0x8b7f('0x45')](handleError(_0x282702,null));};exports['update']=function(_0x4db597,_0x59e540){if(_0x4db597[_0x8b7f('0x4c')]['id']){delete _0x4db597[_0x8b7f('0x4c')]['id'];}return db[_0x8b7f('0x2c')][_0x8b7f('0x4a')]({'where':{'id':_0x4db597[_0x8b7f('0x47')]['id']}})[_0x8b7f('0x42')](handleEntityNotFound(_0x59e540,null))[_0x8b7f('0x42')](saveUpdates(_0x4db597[_0x8b7f('0x4c')],null))['then'](respondWithResult(_0x59e540,null))['catch'](handleError(_0x59e540,null));};exports[_0x8b7f('0x25')]=function(_0x5edb26,_0x417a47){return db[_0x8b7f('0x2c')][_0x8b7f('0x4a')]({'where':{'id':_0x5edb26['params']['id']}})[_0x8b7f('0x42')](handleEntityNotFound(_0x417a47,null))['then'](removeEntity(_0x417a47,null))[_0x8b7f('0x45')](handleError(_0x417a47,null));};exports[_0x8b7f('0x4d')]=function(_0x430fc5,_0x33d050){return db[_0x8b7f('0x2c')]['describe']()[_0x8b7f('0x42')](respondWithResult(_0x33d050,null))['catch'](handleError(_0x33d050,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50de=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./openchannelTransferReport.attributes','exports','OpenchannelTransferReport','report_openchannel_transfer','lodash'];(function(_0x1a3057,_0x275afb){var _0x3585b5=function(_0x3935c7){while(--_0x3935c7){_0x1a3057['push'](_0x1a3057['shift']());}};_0x3585b5(++_0x275afb);}(_0x50de,0x19f));var _0xe50d=function(_0x59b439,_0x14ae7b){_0x59b439=_0x59b439-0x0;var _0x521ea3=_0x50de[_0x59b439];return _0x521ea3;};'use strict';var _=require(_0xe50d('0x0'));var util=require(_0xe50d('0x1'));var logger=require(_0xe50d('0x2'))(_0xe50d('0x3'));var moment=require(_0xe50d('0x4'));var BPromise=require(_0xe50d('0x5'));var rp=require(_0xe50d('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe50d('0x7'));var config=require(_0xe50d('0x8'));var attributes=require(_0xe50d('0x9'));module[_0xe50d('0xa')]=function(_0x5512f9,_0x572f24){return _0x5512f9['define'](_0xe50d('0xb'),attributes,{'tableName':_0xe50d('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x9601=['report_openchannel_transfer','lodash','util','../../config/logger','bluebird','request-promise','path','../../config/environment','exports','define','OpenchannelTransferReport'];(function(_0x3d46cd,_0x12605c){var _0x412bac=function(_0x69ae8d){while(--_0x69ae8d){_0x3d46cd['push'](_0x3d46cd['shift']());}};_0x412bac(++_0x12605c);}(_0x9601,0x182));var _0x1960=function(_0x567bc3,_0x482a15){_0x567bc3=_0x567bc3-0x0;var _0x490ac7=_0x9601[_0x567bc3];return _0x490ac7;};'use strict';var _=require(_0x1960('0x0'));var util=require(_0x1960('0x1'));var logger=require(_0x1960('0x2'))('api');var moment=require('moment');var BPromise=require(_0x1960('0x3'));var rp=require(_0x1960('0x4'));var fs=require('fs');var path=require(_0x1960('0x5'));var rimraf=require('rimraf');var config=require(_0x1960('0x6'));var attributes=require('./openchannelTransferReport.attributes');module[_0x1960('0x7')]=function(_0x4403c1,_0x3ac57d){return _0x4403c1[_0x1960('0x8')](_0x1960('0x9'),attributes,{'tableName':_0x1960('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05bc=['randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','util','bluebird'];(function(_0x59f61a,_0x4f2099){var _0x21a0db=function(_0x292a06){while(--_0x292a06){_0x59f61a['push'](_0x59f61a['shift']());}};_0x21a0db(++_0x4f2099);}(_0x05bc,0xae));var _0xc05b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x05bc[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xc05b('0x0'));var moment=require('moment');var BPromise=require(_0xc05b('0x1'));var rs=require(_0xc05b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc05b('0x3'))['db'];var utils=require(_0xc05b('0x4'));var logger=require(_0xc05b('0x5'))(_0xc05b('0x6'));var config=require(_0xc05b('0x7'));var jayson=require(_0xc05b('0x8'));var client=jayson[_0xc05b('0x9')][_0xc05b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x9c6c57,_0x1b501a,_0x275f0f){return new BPromise(function(_0x143ba4,_0x45245b){return client[_0xc05b('0xb')](_0x9c6c57,_0x275f0f)['then'](function(_0x5d72b9){logger[_0xc05b('0xc')](_0xc05b('0xd'),_0x1b501a,_0xc05b('0xe'));logger[_0xc05b('0xf')](_0xc05b('0x10'),_0x1b501a,_0xc05b('0xe'),JSON[_0xc05b('0x11')](_0x5d72b9));if(_0x5d72b9[_0xc05b('0x12')]){if(_0x5d72b9[_0xc05b('0x12')]['code']===0x1f4){logger[_0xc05b('0x12')](_0xc05b('0xd'),_0x1b501a,_0x5d72b9[_0xc05b('0x12')][_0xc05b('0x13')]);return _0x45245b(_0x5d72b9[_0xc05b('0x12')][_0xc05b('0x13')]);}logger['error'](_0xc05b('0xd'),_0x1b501a,_0x5d72b9[_0xc05b('0x12')]['message']);return _0x143ba4(_0x5d72b9['error'][_0xc05b('0x13')]);}else{logger[_0xc05b('0xc')](_0xc05b('0xd'),_0x1b501a,_0xc05b('0xe'));_0x143ba4(_0x5d72b9[_0xc05b('0x14')][_0xc05b('0x13')]);}})[_0xc05b('0x15')](function(_0x5a33c1){logger[_0xc05b('0x12')](_0xc05b('0xd'),_0x1b501a,_0x5a33c1);_0x45245b(_0x5a33c1);});});}
\ No newline at end of file
+var _0x5d17=['request','info','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelTransferReport,\x20%s,\x20%s','message','request\x20sent','result','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x17e3bc,_0x269208){var _0x13dffa=function(_0x2664fd){while(--_0x2664fd){_0x17e3bc['push'](_0x17e3bc['shift']());}};_0x13dffa(++_0x269208);}(_0x5d17,0x114));var _0x75d1=function(_0x3d14d1,_0x23aa69){_0x3d14d1=_0x3d14d1-0x0;var _0xc78d1f=_0x5d17[_0x3d14d1];return _0xc78d1f;};'use strict';var _=require(_0x75d1('0x0'));var util=require(_0x75d1('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x75d1('0x2'));var fs=require('fs');var Redis=require(_0x75d1('0x3'));var db=require(_0x75d1('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x75d1('0x5'))(_0x75d1('0x6'));var config=require(_0x75d1('0x7'));var jayson=require(_0x75d1('0x8'));var client=jayson['client'][_0x75d1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x116a51,_0x5c957a,_0x1ee61b){return new BPromise(function(_0x3a9d5e,_0x105607){return client[_0x75d1('0xa')](_0x116a51,_0x1ee61b)['then'](function(_0x4cf632){logger[_0x75d1('0xb')]('OpenchannelTransferReport,\x20%s,\x20%s',_0x5c957a,'request\x20sent');logger[_0x75d1('0xc')](_0x75d1('0xd'),_0x5c957a,'request\x20sent',JSON[_0x75d1('0xe')](_0x4cf632));if(_0x4cf632[_0x75d1('0xf')]){if(_0x4cf632[_0x75d1('0xf')][_0x75d1('0x10')]===0x1f4){logger[_0x75d1('0xf')](_0x75d1('0x11'),_0x5c957a,_0x4cf632['error'][_0x75d1('0x12')]);return _0x105607(_0x4cf632[_0x75d1('0xf')][_0x75d1('0x12')]);}logger[_0x75d1('0xf')]('OpenchannelTransferReport,\x20%s,\x20%s',_0x5c957a,_0x4cf632['error']['message']);return _0x3a9d5e(_0x4cf632[_0x75d1('0xf')][_0x75d1('0x12')]);}else{logger[_0x75d1('0xb')]('OpenchannelTransferReport,\x20%s,\x20%s',_0x5c957a,_0x75d1('0x13'));_0x3a9d5e(_0x4cf632[_0x75d1('0x14')][_0x75d1('0x12')]);}})[_0x75d1('0x15')](function(_0x1160ca){logger[_0x75d1('0xf')](_0x75d1('0x11'),_0x5c957a,_0x1160ca);_0x105607(_0x1160ca);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76dc=['put','/:id','update','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','show','post'];(function(_0x4213ad,_0x189c5b){var _0x2411e5=function(_0xbd5a7){while(--_0xbd5a7){_0x4213ad['push'](_0x4213ad['shift']());}};_0x2411e5(++_0x189c5b);}(_0x76dc,0x1f2));var _0xc76d=function(_0x3b90bc,_0x1e0dc7){_0x3b90bc=_0x3b90bc-0x0;var _0x5d8542=_0x76dc[_0x3b90bc];return _0x5d8542;};'use strict';var multer=require(_0xc76d('0x0'));var util=require(_0xc76d('0x1'));var path=require(_0xc76d('0x2'));var timeout=require(_0xc76d('0x3'));var express=require('express');var router=express[_0xc76d('0x4')]();var fs_extra=require(_0xc76d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xc76d('0x6'));var config=require('../../config/environment');var controller=require('./pause.controller');router[_0xc76d('0x7')]('/',auth[_0xc76d('0x8')](),controller[_0xc76d('0x9')]);router['get']('/:id',auth[_0xc76d('0x8')](),controller[_0xc76d('0xa')]);router[_0xc76d('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0xc76d('0xc')](_0xc76d('0xd'),auth['isAuthenticated'](),controller[_0xc76d('0xe')]);router['delete'](_0xc76d('0xd'),auth[_0xc76d('0x8')](),controller[_0xc76d('0xf')]);module[_0xc76d('0x10')]=router;
\ No newline at end of file
+var _0x1d3d=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./pause.controller','get','index','/:id','isAuthenticated','post','create','put','update','delete','destroy','multer','util','path','express','Router'];(function(_0x5f0a0d,_0x2daa8c){var _0x908ab2=function(_0x5ee69a){while(--_0x5ee69a){_0x5f0a0d['push'](_0x5f0a0d['shift']());}};_0x908ab2(++_0x2daa8c);}(_0x1d3d,0x13b));var _0xd1d3=function(_0x4f5755,_0x1af431){_0x4f5755=_0x4f5755-0x0;var _0x4c9746=_0x1d3d[_0x4f5755];return _0x4c9746;};'use strict';var multer=require(_0xd1d3('0x0'));var util=require(_0xd1d3('0x1'));var path=require(_0xd1d3('0x2'));var timeout=require('connect-timeout');var express=require(_0xd1d3('0x3'));var router=express[_0xd1d3('0x4')]();var fs_extra=require(_0xd1d3('0x5'));var auth=require(_0xd1d3('0x6'));var interaction=require(_0xd1d3('0x7'));var config=require(_0xd1d3('0x8'));var controller=require(_0xd1d3('0x9'));router[_0xd1d3('0xa')]('/',auth['isAuthenticated'](),controller[_0xd1d3('0xb')]);router['get'](_0xd1d3('0xc'),auth[_0xd1d3('0xd')](),controller['show']);router[_0xd1d3('0xe')]('/',auth[_0xd1d3('0xd')](),controller[_0xd1d3('0xf')]);router[_0xd1d3('0x10')](_0xd1d3('0xc'),auth[_0xd1d3('0xd')](),controller[_0xd1d3('0x11')]);router[_0xd1d3('0x12')]('/:id',auth[_0xd1d3('0xd')](),controller[_0xd1d3('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2376=['exports','STRING','name','sequelize'];(function(_0x412ad7,_0x28dc2d){var _0x42aea9=function(_0x284fc0){while(--_0x284fc0){_0x412ad7['push'](_0x412ad7['shift']());}};_0x42aea9(++_0x28dc2d);}(_0x2376,0xe7));var _0x6237=function(_0x2ca649,_0x5572e9){_0x2ca649=_0x2ca649-0x0;var _0x4ac7f6=_0x2376[_0x2ca649];return _0x4ac7f6;};'use strict';var Sequelize=require(_0x6237('0x0'));module[_0x6237('0x1')]={'name':{'type':Sequelize[_0x6237('0x2')],'unique':_0x6237('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x6237('0x2')]}};
\ No newline at end of file
+var _0x6569=['sequelize','exports','STRING','name'];(function(_0x261702,_0x1c58f5){var _0x51e1ea=function(_0x67788b){while(--_0x67788b){_0x261702['push'](_0x261702['shift']());}};_0x51e1ea(++_0x1c58f5);}(_0x6569,0x14c));var _0x9656=function(_0x2f7fd3,_0x5d0442){_0x2f7fd3=_0x2f7fd3-0x0;var _0xf95e9e=_0x6569[_0x2f7fd3];return _0xf95e9e;};'use strict';var Sequelize=require(_0x9656('0x0'));module[_0x9656('0x1')]={'name':{'type':Sequelize[_0x9656('0x2')],'unique':_0x9656('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x9656('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa497=['user','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','count','offset','Content-Range','apply','reject','save','update','then','get','Pauses','UserProfileResource','send','Pause','rawAttributes','key','model','map','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filters','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x48e1ec,_0x35f468){var _0x3b33eb=function(_0x507bf9){while(--_0x507bf9){_0x48e1ec['push'](_0x48e1ec['shift']());}};_0x3b33eb(++_0x35f468);}(_0xa497,0xab));var _0x7a49=function(_0x5e5727,_0x139f86){_0x5e5727=_0x5e5727-0x0;var _0xbce011=_0xa497[_0x5e5727];return _0xbce011;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x7a49('0x0'));var jsonpatch=require(_0x7a49('0x1'));var rp=require(_0x7a49('0x2'));var moment=require(_0x7a49('0x3'));var BPromise=require(_0x7a49('0x4'));var Mustache=require(_0x7a49('0x5'));var util=require(_0x7a49('0x6'));var path=require(_0x7a49('0x7'));var sox=require(_0x7a49('0x8'));var csv=require(_0x7a49('0x9'));var ejs=require(_0x7a49('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7a49('0xb'));var squel=require(_0x7a49('0xc'));var crypto=require(_0x7a49('0xd'));var jsforce=require(_0x7a49('0xe'));var deskjs=require(_0x7a49('0xf'));var toCsv=require(_0x7a49('0x9'));var querystring=require(_0x7a49('0x10'));var Papa=require(_0x7a49('0x11'));var Redis=require(_0x7a49('0x12'));var authService=require(_0x7a49('0x13'));var qs=require(_0x7a49('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7a49('0x15'));var logger=require(_0x7a49('0x16'))(_0x7a49('0x17'));var utils=require('../../config/utils');var config=require(_0x7a49('0x18'));var licenseUtil=require(_0x7a49('0x19'));var db=require(_0x7a49('0x1a'))['db'];function respondWithStatusCode(_0xdfdfcf,_0x41356e){_0x41356e=_0x41356e||0xcc;return function(_0x592f45){if(_0x592f45){return _0xdfdfcf['sendStatus'](_0x41356e);}return _0xdfdfcf[_0x7a49('0x1b')](_0x41356e)[_0x7a49('0x1c')]();};}function respondWithResult(_0x24e8b8,_0x912b1f){_0x912b1f=_0x912b1f||0xc8;return function(_0x2382f7){if(_0x2382f7){return _0x24e8b8[_0x7a49('0x1b')](_0x912b1f)['json'](_0x2382f7);}};}function respondWithFilteredResult(_0x2f87ac,_0x1e4a90){return function(_0x5414bd){if(_0x5414bd){var _0x5942cf=typeof _0x1e4a90['offset']===_0x7a49('0x1d')&&typeof _0x1e4a90['limit']===_0x7a49('0x1d');var _0x5d4960=_0x5414bd[_0x7a49('0x1e')];var _0x23c6c8=_0x5942cf?0x0:_0x1e4a90[_0x7a49('0x1f')];var _0x408c32=_0x5942cf?_0x5414bd[_0x7a49('0x1e')]:_0x1e4a90[_0x7a49('0x1f')]+_0x1e4a90['limit'];var _0x5e1493;if(_0x408c32>=_0x5d4960){_0x408c32=_0x5d4960;_0x5e1493=0xc8;}else{_0x5e1493=0xce;}_0x2f87ac['status'](_0x5e1493);return _0x2f87ac['set'](_0x7a49('0x20'),_0x23c6c8+'-'+_0x408c32+'/'+_0x5d4960)['json'](_0x5414bd);}return null;};}function patchUpdates(_0xcf1190){return function(_0x3e4691){try{jsonpatch[_0x7a49('0x21')](_0x3e4691,_0xcf1190,!![]);}catch(_0x4009cd){return BPromise[_0x7a49('0x22')](_0x4009cd);}return _0x3e4691[_0x7a49('0x23')]();};}function saveUpdates(_0x4d2b4e,_0x443549){return function(_0x4103ab){if(_0x4103ab){return _0x4103ab[_0x7a49('0x24')](_0x4d2b4e)[_0x7a49('0x25')](function(_0x26ecc8){return _0x26ecc8;});}return null;};}function removeEntity(_0x5512f4,_0x35a3e0){return function(_0x152874){if(_0x152874){return _0x152874['destroy']()[_0x7a49('0x25')](function(){var _0xa578d4=_0x152874[_0x7a49('0x26')]({'plain':!![]});var _0x4da436=_0x7a49('0x27');return db[_0x7a49('0x28')]['destroy']({'where':{'type':_0x4da436,'resourceId':_0xa578d4['id']}})[_0x7a49('0x25')](function(){return _0x152874;});})[_0x7a49('0x25')](function(){_0x5512f4[_0x7a49('0x1b')](0xcc)[_0x7a49('0x1c')]();});}};}function handleEntityNotFound(_0xa75d67,_0x3bce66){return function(_0x4a516a){if(!_0x4a516a){_0xa75d67['sendStatus'](0x194);}return _0x4a516a;};}function handleError(_0x281305,_0x3b9aea){_0x3b9aea=_0x3b9aea||0x1f4;return function(_0x236637){logger['error'](_0x236637['stack']);if(_0x236637['name']){delete _0x236637['name'];}_0x281305['status'](_0x3b9aea)[_0x7a49('0x29')](_0x236637);};}exports['index']=function(_0x372ee0,_0x185a9a){var _0x4d3078={},_0x1e2de2={},_0x1d4acd={'count':0x0,'rows':[]};var _0x454953=_['map'](db[_0x7a49('0x2a')][_0x7a49('0x2b')],function(_0x58de8f){return{'name':_0x58de8f['fieldName'],'type':_0x58de8f['type'][_0x7a49('0x2c')]};});_0x1e2de2[_0x7a49('0x2d')]=_[_0x7a49('0x2e')](_0x454953,_0x7a49('0x2f'));_0x1e2de2[_0x7a49('0x30')]=_[_0x7a49('0x31')](_0x372ee0[_0x7a49('0x30')]);_0x1e2de2['filters']=_[_0x7a49('0x32')](_0x1e2de2[_0x7a49('0x2d')],_0x1e2de2['query']);_0x4d3078[_0x7a49('0x33')]=_['intersection'](_0x1e2de2[_0x7a49('0x2d')],qs[_0x7a49('0x34')](_0x372ee0[_0x7a49('0x30')][_0x7a49('0x34')]));_0x4d3078[_0x7a49('0x33')]=_0x4d3078[_0x7a49('0x33')][_0x7a49('0x35')]?_0x4d3078[_0x7a49('0x33')]:_0x1e2de2[_0x7a49('0x2d')];if(!_0x372ee0[_0x7a49('0x30')][_0x7a49('0x36')](_0x7a49('0x37'))){_0x4d3078[_0x7a49('0x38')]=qs[_0x7a49('0x38')](_0x372ee0[_0x7a49('0x30')]['limit']);_0x4d3078['offset']=qs[_0x7a49('0x1f')](_0x372ee0[_0x7a49('0x30')]['offset']);}_0x4d3078[_0x7a49('0x39')]=qs['sort'](_0x372ee0[_0x7a49('0x30')][_0x7a49('0x3a')]);_0x4d3078[_0x7a49('0x3b')]=qs['filters'](_[_0x7a49('0x3c')](_0x372ee0[_0x7a49('0x30')],_0x1e2de2[_0x7a49('0x3d')]),_0x454953);if(_0x372ee0[_0x7a49('0x30')][_0x7a49('0x3e')]){_0x4d3078[_0x7a49('0x3b')]=_[_0x7a49('0x3f')](_0x4d3078[_0x7a49('0x3b')],{'$or':_[_0x7a49('0x2e')](_0x454953,function(_0x5b4109){if(_0x5b4109[_0x7a49('0x40')]!==_0x7a49('0x41')){var _0x165be7={};_0x165be7[_0x5b4109[_0x7a49('0x2f')]]={'$like':'%'+_0x372ee0[_0x7a49('0x30')][_0x7a49('0x3e')]+'%'};return _0x165be7;}})});}_0x4d3078=_[_0x7a49('0x3f')]({},_0x4d3078,_0x372ee0[_0x7a49('0x42')]);var _0x14d20c={'where':_0x4d3078['where']};return db[_0x7a49('0x2a')][_0x7a49('0x1e')](_0x14d20c)[_0x7a49('0x25')](function(_0x146dfd){_0x1d4acd['count']=_0x146dfd;if(_0x372ee0[_0x7a49('0x30')][_0x7a49('0x43')]){_0x4d3078[_0x7a49('0x44')]=[{'all':!![]}];}return db['Pause'][_0x7a49('0x45')](_0x4d3078);})[_0x7a49('0x25')](function(_0x20b9db){_0x1d4acd['rows']=_0x20b9db;return _0x1d4acd;})[_0x7a49('0x25')](respondWithFilteredResult(_0x185a9a,_0x4d3078))[_0x7a49('0x46')](handleError(_0x185a9a,null));};exports[_0x7a49('0x47')]=function(_0x4e5ef4,_0x190d60){var _0x58d7ba={'raw':!![],'where':{'id':_0x4e5ef4[_0x7a49('0x48')]['id']}},_0x11f126={};_0x11f126[_0x7a49('0x2d')]=_['keys'](db[_0x7a49('0x2a')][_0x7a49('0x2b')]);_0x11f126[_0x7a49('0x30')]=_[_0x7a49('0x31')](_0x4e5ef4['query']);_0x11f126[_0x7a49('0x3d')]=_[_0x7a49('0x32')](_0x11f126[_0x7a49('0x2d')],_0x11f126[_0x7a49('0x30')]);_0x58d7ba['attributes']=_[_0x7a49('0x32')](_0x11f126[_0x7a49('0x2d')],qs[_0x7a49('0x34')](_0x4e5ef4[_0x7a49('0x30')]['fields']));_0x58d7ba[_0x7a49('0x33')]=_0x58d7ba[_0x7a49('0x33')]['length']?_0x58d7ba[_0x7a49('0x33')]:_0x11f126['model'];if(_0x4e5ef4[_0x7a49('0x30')][_0x7a49('0x43')]){_0x58d7ba[_0x7a49('0x44')]=[{'all':!![]}];}_0x58d7ba=_[_0x7a49('0x3f')]({},_0x58d7ba,_0x4e5ef4['options']);return db['Pause'][_0x7a49('0x49')](_0x58d7ba)[_0x7a49('0x25')](handleEntityNotFound(_0x190d60,null))['then'](respondWithResult(_0x190d60,null))[_0x7a49('0x46')](handleError(_0x190d60,null));};exports[_0x7a49('0x4a')]=function(_0x5b9b2c,_0x45b050){return db[_0x7a49('0x2a')]['create'](_0x5b9b2c[_0x7a49('0x4b')],{})['then'](function(_0x5105a5){var _0x10ad1e=_0x5b9b2c['user'][_0x7a49('0x26')]({'plain':!![]});if(!_0x10ad1e)throw new Error(_0x7a49('0x4c'));if(_0x10ad1e[_0x7a49('0x4d')]===_0x7a49('0x4e')){var _0xd156e=_0x5105a5['get']({'plain':!![]});var _0x3d60a7='Pauses';return db['UserProfileSection'][_0x7a49('0x49')]({'where':{'name':_0x3d60a7,'userProfileId':_0x10ad1e['userProfileId']},'raw':!![]})[_0x7a49('0x25')](function(_0x4a7036){if(_0x4a7036&&_0x4a7036[_0x7a49('0x4f')]===0x0){return db[_0x7a49('0x28')][_0x7a49('0x4a')]({'name':_0xd156e['name'],'resourceId':_0xd156e['id'],'type':_0x4a7036[_0x7a49('0x2f')],'sectionId':_0x4a7036['id']},{})[_0x7a49('0x25')](function(){return _0x5105a5;});}else{return _0x5105a5;}})[_0x7a49('0x46')](function(_0x7f05a){logger[_0x7a49('0x50')](_0x7a49('0x51'),_0x7f05a);throw _0x7f05a;});}return _0x5105a5;})[_0x7a49('0x25')](respondWithResult(_0x45b050,0xc9))[_0x7a49('0x46')](handleError(_0x45b050,null));};exports[_0x7a49('0x24')]=function(_0x401967,_0x49e196){if(_0x401967['body']['id']){delete _0x401967[_0x7a49('0x4b')]['id'];}return db[_0x7a49('0x2a')][_0x7a49('0x49')]({'where':{'id':_0x401967['params']['id']}})['then'](handleEntityNotFound(_0x49e196,null))[_0x7a49('0x25')](saveUpdates(_0x401967[_0x7a49('0x4b')],null))[_0x7a49('0x25')](respondWithResult(_0x49e196,null))[_0x7a49('0x46')](handleError(_0x49e196,null));};exports[_0x7a49('0x52')]=function(_0x8713cb,_0x22c771){return db['Pause'][_0x7a49('0x49')]({'where':{'id':_0x8713cb[_0x7a49('0x48')]['id']}})[_0x7a49('0x25')](handleEntityNotFound(_0x22c771,null))[_0x7a49('0x25')](removeEntity(_0x22c771,null))[_0x7a49('0x46')](handleError(_0x22c771,null));};
\ No newline at end of file
+var _0x7e7b=['error','name','send','map','Pause','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','find','destroy','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','Pauses','UserProfileResource','sendStatus'];(function(_0x2abcab,_0x2a2d49){var _0x4f8352=function(_0xee2b4){while(--_0xee2b4){_0x2abcab['push'](_0x2abcab['shift']());}};_0x4f8352(++_0x2a2d49);}(_0x7e7b,0xd4));var _0xb7e7=function(_0x3164d5,_0x347d64){_0x3164d5=_0x3164d5-0x0;var _0x4e0d5c=_0x7e7b[_0x3164d5];return _0x4e0d5c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb7e7('0x0'));var jsonpatch=require(_0xb7e7('0x1'));var rp=require(_0xb7e7('0x2'));var moment=require(_0xb7e7('0x3'));var BPromise=require(_0xb7e7('0x4'));var Mustache=require(_0xb7e7('0x5'));var util=require(_0xb7e7('0x6'));var path=require(_0xb7e7('0x7'));var sox=require(_0xb7e7('0x8'));var csv=require(_0xb7e7('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb7e7('0xa'));var _=require(_0xb7e7('0xb'));var squel=require(_0xb7e7('0xc'));var crypto=require(_0xb7e7('0xd'));var jsforce=require(_0xb7e7('0xe'));var deskjs=require(_0xb7e7('0xf'));var toCsv=require(_0xb7e7('0x9'));var querystring=require(_0xb7e7('0x10'));var Papa=require(_0xb7e7('0x11'));var Redis=require(_0xb7e7('0x12'));var authService=require(_0xb7e7('0x13'));var qs=require(_0xb7e7('0x14'));var as=require(_0xb7e7('0x15'));var hardwareService=require(_0xb7e7('0x16'));var logger=require(_0xb7e7('0x17'))(_0xb7e7('0x18'));var utils=require(_0xb7e7('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0xb7e7('0x1a'));var db=require(_0xb7e7('0x1b'))['db'];function respondWithStatusCode(_0x55b8e6,_0x47891d){_0x47891d=_0x47891d||0xcc;return function(_0x6e9a5f){if(_0x6e9a5f){return _0x55b8e6['sendStatus'](_0x47891d);}return _0x55b8e6[_0xb7e7('0x1c')](_0x47891d)[_0xb7e7('0x1d')]();};}function respondWithResult(_0x5cae06,_0x1735be){_0x1735be=_0x1735be||0xc8;return function(_0x1fecb6){if(_0x1fecb6){return _0x5cae06['status'](_0x1735be)[_0xb7e7('0x1e')](_0x1fecb6);}};}function respondWithFilteredResult(_0x4ada53,_0x3059b6){return function(_0x2e0a8f){if(_0x2e0a8f){var _0x221f95=typeof _0x3059b6[_0xb7e7('0x1f')]===_0xb7e7('0x20')&&typeof _0x3059b6[_0xb7e7('0x21')]==='undefined';var _0x14a6d3=_0x2e0a8f[_0xb7e7('0x22')];var _0x23d683=_0x221f95?0x0:_0x3059b6['offset'];var _0x12980f=_0x221f95?_0x2e0a8f[_0xb7e7('0x22')]:_0x3059b6[_0xb7e7('0x1f')]+_0x3059b6[_0xb7e7('0x21')];var _0x5ac67f;if(_0x12980f>=_0x14a6d3){_0x12980f=_0x14a6d3;_0x5ac67f=0xc8;}else{_0x5ac67f=0xce;}_0x4ada53[_0xb7e7('0x1c')](_0x5ac67f);return _0x4ada53[_0xb7e7('0x23')](_0xb7e7('0x24'),_0x23d683+'-'+_0x12980f+'/'+_0x14a6d3)[_0xb7e7('0x1e')](_0x2e0a8f);}return null;};}function patchUpdates(_0x380cd0){return function(_0x27a32b){try{jsonpatch[_0xb7e7('0x25')](_0x27a32b,_0x380cd0,!![]);}catch(_0xe16103){return BPromise[_0xb7e7('0x26')](_0xe16103);}return _0x27a32b[_0xb7e7('0x27')]();};}function saveUpdates(_0xbca096,_0x3c490b){return function(_0x297d7a){if(_0x297d7a){return _0x297d7a[_0xb7e7('0x28')](_0xbca096)[_0xb7e7('0x29')](function(_0xc8c823){return _0xc8c823;});}return null;};}function removeEntity(_0x4b284d,_0x319647){return function(_0x2c621d){if(_0x2c621d){return _0x2c621d['destroy']()[_0xb7e7('0x29')](function(){var _0x3c6d98=_0x2c621d[_0xb7e7('0x2a')]({'plain':!![]});var _0x4a1769=_0xb7e7('0x2b');return db[_0xb7e7('0x2c')]['destroy']({'where':{'type':_0x4a1769,'resourceId':_0x3c6d98['id']}})[_0xb7e7('0x29')](function(){return _0x2c621d;});})[_0xb7e7('0x29')](function(){_0x4b284d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xd9490a,_0x20e40f){return function(_0x38cb1c){if(!_0x38cb1c){_0xd9490a[_0xb7e7('0x2d')](0x194);}return _0x38cb1c;};}function handleError(_0x492e3b,_0x2d3421){_0x2d3421=_0x2d3421||0x1f4;return function(_0x57b4a0){logger[_0xb7e7('0x2e')](_0x57b4a0['stack']);if(_0x57b4a0['name']){delete _0x57b4a0[_0xb7e7('0x2f')];}_0x492e3b[_0xb7e7('0x1c')](_0x2d3421)[_0xb7e7('0x30')](_0x57b4a0);};}exports['index']=function(_0x159c16,_0x3da92a){var _0x250362={},_0x3ef988={},_0x16941d={'count':0x0,'rows':[]};var _0x472f64=_[_0xb7e7('0x31')](db[_0xb7e7('0x32')][_0xb7e7('0x33')],function(_0x2f54d7){return{'name':_0x2f54d7['fieldName'],'type':_0x2f54d7[_0xb7e7('0x34')][_0xb7e7('0x35')]};});_0x3ef988[_0xb7e7('0x36')]=_[_0xb7e7('0x31')](_0x472f64,'name');_0x3ef988[_0xb7e7('0x37')]=_['keys'](_0x159c16[_0xb7e7('0x37')]);_0x3ef988[_0xb7e7('0x38')]=_[_0xb7e7('0x39')](_0x3ef988[_0xb7e7('0x36')],_0x3ef988[_0xb7e7('0x37')]);_0x250362[_0xb7e7('0x3a')]=_[_0xb7e7('0x39')](_0x3ef988[_0xb7e7('0x36')],qs[_0xb7e7('0x3b')](_0x159c16[_0xb7e7('0x37')][_0xb7e7('0x3b')]));_0x250362[_0xb7e7('0x3a')]=_0x250362['attributes']['length']?_0x250362[_0xb7e7('0x3a')]:_0x3ef988[_0xb7e7('0x36')];if(!_0x159c16[_0xb7e7('0x37')][_0xb7e7('0x3c')](_0xb7e7('0x3d'))){_0x250362['limit']=qs[_0xb7e7('0x21')](_0x159c16[_0xb7e7('0x37')]['limit']);_0x250362[_0xb7e7('0x1f')]=qs['offset'](_0x159c16[_0xb7e7('0x37')][_0xb7e7('0x1f')]);}_0x250362[_0xb7e7('0x3e')]=qs[_0xb7e7('0x3f')](_0x159c16[_0xb7e7('0x37')]['sort']);_0x250362[_0xb7e7('0x40')]=qs[_0xb7e7('0x38')](_[_0xb7e7('0x41')](_0x159c16[_0xb7e7('0x37')],_0x3ef988[_0xb7e7('0x38')]),_0x472f64);if(_0x159c16[_0xb7e7('0x37')][_0xb7e7('0x42')]){_0x250362[_0xb7e7('0x40')]=_[_0xb7e7('0x43')](_0x250362['where'],{'$or':_[_0xb7e7('0x31')](_0x472f64,function(_0x1e8c9d){if(_0x1e8c9d[_0xb7e7('0x34')]!==_0xb7e7('0x44')){var _0x5f55da={};_0x5f55da[_0x1e8c9d['name']]={'$like':'%'+_0x159c16[_0xb7e7('0x37')]['filter']+'%'};return _0x5f55da;}})});}_0x250362=_[_0xb7e7('0x43')]({},_0x250362,_0x159c16[_0xb7e7('0x45')]);var _0x2a74d9={'where':_0x250362[_0xb7e7('0x40')]};return db[_0xb7e7('0x32')][_0xb7e7('0x22')](_0x2a74d9)[_0xb7e7('0x29')](function(_0x10b36b){_0x16941d[_0xb7e7('0x22')]=_0x10b36b;if(_0x159c16[_0xb7e7('0x37')][_0xb7e7('0x46')]){_0x250362[_0xb7e7('0x47')]=[{'all':!![]}];}return db[_0xb7e7('0x32')]['findAll'](_0x250362);})['then'](function(_0x35942e){_0x16941d[_0xb7e7('0x48')]=_0x35942e;return _0x16941d;})[_0xb7e7('0x29')](respondWithFilteredResult(_0x3da92a,_0x250362))[_0xb7e7('0x49')](handleError(_0x3da92a,null));};exports[_0xb7e7('0x4a')]=function(_0x427f01,_0x2f045b){var _0x1ed478={'raw':!![],'where':{'id':_0x427f01[_0xb7e7('0x4b')]['id']}},_0x25e082={};_0x25e082[_0xb7e7('0x36')]=_['keys'](db[_0xb7e7('0x32')][_0xb7e7('0x33')]);_0x25e082[_0xb7e7('0x37')]=_['keys'](_0x427f01[_0xb7e7('0x37')]);_0x25e082[_0xb7e7('0x38')]=_[_0xb7e7('0x39')](_0x25e082['model'],_0x25e082['query']);_0x1ed478[_0xb7e7('0x3a')]=_[_0xb7e7('0x39')](_0x25e082[_0xb7e7('0x36')],qs['fields'](_0x427f01['query'][_0xb7e7('0x3b')]));_0x1ed478[_0xb7e7('0x3a')]=_0x1ed478[_0xb7e7('0x3a')][_0xb7e7('0x4c')]?_0x1ed478['attributes']:_0x25e082[_0xb7e7('0x36')];if(_0x427f01[_0xb7e7('0x37')][_0xb7e7('0x46')]){_0x1ed478['include']=[{'all':!![]}];}_0x1ed478=_[_0xb7e7('0x43')]({},_0x1ed478,_0x427f01[_0xb7e7('0x45')]);return db[_0xb7e7('0x32')]['find'](_0x1ed478)['then'](handleEntityNotFound(_0x2f045b,null))[_0xb7e7('0x29')](respondWithResult(_0x2f045b,null))[_0xb7e7('0x49')](handleError(_0x2f045b,null));};exports[_0xb7e7('0x4d')]=function(_0x5713b3,_0x492701){return db[_0xb7e7('0x32')][_0xb7e7('0x4d')](_0x5713b3[_0xb7e7('0x4e')],{})[_0xb7e7('0x29')](function(_0x3388d8){var _0x2386cf=_0x5713b3[_0xb7e7('0x4f')][_0xb7e7('0x2a')]({'plain':!![]});if(!_0x2386cf)throw new Error(_0xb7e7('0x50'));if(_0x2386cf['role']===_0xb7e7('0x4f')){var _0x108b99=_0x3388d8['get']({'plain':!![]});var _0xa8186e=_0xb7e7('0x2b');return db[_0xb7e7('0x51')]['find']({'where':{'name':_0xa8186e,'userProfileId':_0x2386cf[_0xb7e7('0x52')]},'raw':!![]})[_0xb7e7('0x29')](function(_0x3011b0){if(_0x3011b0&&_0x3011b0[_0xb7e7('0x53')]===0x0){return db['UserProfileResource'][_0xb7e7('0x4d')]({'name':_0x108b99['name'],'resourceId':_0x108b99['id'],'type':_0x3011b0[_0xb7e7('0x2f')],'sectionId':_0x3011b0['id']},{})[_0xb7e7('0x29')](function(){return _0x3388d8;});}else{return _0x3388d8;}})[_0xb7e7('0x49')](function(_0x3a9042){logger[_0xb7e7('0x2e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3a9042);throw _0x3a9042;});}return _0x3388d8;})[_0xb7e7('0x29')](respondWithResult(_0x492701,0xc9))[_0xb7e7('0x49')](handleError(_0x492701,null));};exports[_0xb7e7('0x28')]=function(_0x22d746,_0x4f6581){if(_0x22d746['body']['id']){delete _0x22d746[_0xb7e7('0x4e')]['id'];}return db['Pause'][_0xb7e7('0x54')]({'where':{'id':_0x22d746[_0xb7e7('0x4b')]['id']}})[_0xb7e7('0x29')](handleEntityNotFound(_0x4f6581,null))[_0xb7e7('0x29')](saveUpdates(_0x22d746[_0xb7e7('0x4e')],null))['then'](respondWithResult(_0x4f6581,null))[_0xb7e7('0x49')](handleError(_0x4f6581,null));};exports[_0xb7e7('0x55')]=function(_0x4fea1e,_0x3d49e2){return db[_0xb7e7('0x32')][_0xb7e7('0x54')]({'where':{'id':_0x4fea1e['params']['id']}})[_0xb7e7('0x29')](handleEntityNotFound(_0x3d49e2,null))[_0xb7e7('0x29')](removeEntity(_0x3d49e2,null))[_0xb7e7('0x49')](handleError(_0x3d49e2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['tools_pauses','lodash','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./pause.attributes','exports','define','Pause'];(function(_0x455bb7,_0x1278a2){var _0x52a276=function(_0x5036ae){while(--_0x5036ae){_0x455bb7['push'](_0x455bb7['shift']());}};_0x52a276(++_0x1278a2);}(_0x326f,0xd1));var _0xf326=function(_0x107620,_0x54ff9f){_0x107620=_0x107620-0x0;var _0x31ef94=_0x326f[_0x107620];return _0x31ef94;};'use strict';var _=require(_0xf326('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xf326('0x1'));var moment=require(_0xf326('0x2'));var BPromise=require(_0xf326('0x3'));var rp=require(_0xf326('0x4'));var fs=require('fs');var path=require(_0xf326('0x5'));var rimraf=require(_0xf326('0x6'));var config=require(_0xf326('0x7'));var attributes=require(_0xf326('0x8'));module[_0xf326('0x9')]=function(_0x3ace29,_0x4c2249){return _0x3ace29[_0xf326('0xa')](_0xf326('0xb'),attributes,{'tableName':_0xf326('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1cb9=['./pause.attributes','exports','define','Pause','lodash','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0x702ee,_0x355c47){var _0x367bb0=function(_0x46766a){while(--_0x46766a){_0x702ee['push'](_0x702ee['shift']());}};_0x367bb0(++_0x355c47);}(_0x1cb9,0x14e));var _0x91cb=function(_0x573899,_0x34997c){_0x573899=_0x573899-0x0;var _0x2891e7=_0x1cb9[_0x573899];return _0x2891e7;};'use strict';var _=require(_0x91cb('0x0'));var util=require('util');var logger=require(_0x91cb('0x1'))(_0x91cb('0x2'));var moment=require(_0x91cb('0x3'));var BPromise=require(_0x91cb('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x91cb('0x5'));var rimraf=require(_0x91cb('0x6'));var config=require('../../config/environment');var attributes=require(_0x91cb('0x7'));module[_0x91cb('0x8')]=function(_0x186dc3,_0x28543e){return _0x186dc3[_0x91cb('0x9')](_0x91cb('0xa'),attributes,{'tableName':'tools_pauses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['message','request\x20sent','result','catch','Pause','find','options','raw','where','attributes','map','include','model','ShowPause','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Pause,\x20%s,\x20%s','debug','stringify','error','code'];(function(_0x459b3b,_0x185823){var _0x1ef64a=function(_0x30d3ff){while(--_0x30d3ff){_0x459b3b['push'](_0x459b3b['shift']());}};_0x1ef64a(++_0x185823);}(_0x7a54,0x106));var _0x47a5=function(_0x5e1296,_0xf1638){_0x5e1296=_0x5e1296-0x0;var _0x1c211a=_0x7a54[_0x5e1296];return _0x1c211a;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('Pause,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}exports['ShowPause']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')]({'raw':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')][_0x47a5('0x18')]===undefined?!![]:![]:!![],'where':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x19')]||null:null,'attributes':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x1a')]||null:null,'include':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')]['include']?_[_0x47a5('0x1b')](_0x5247fd[_0x47a5('0x17')][_0x47a5('0x1c')],function(_0x7a9f9e){return{'model':db[_0x7a9f9e['model']],'as':_0x7a9f9e['as'],'attributes':_0x7a9f9e[_0x47a5('0x1a')],'include':_0x7a9f9e[_0x47a5('0x1c')]?_['map'](_0x7a9f9e[_0x47a5('0x1c')],function(_0xc4cd63){return{'model':db[_0xc4cd63[_0x47a5('0x1d')]],'as':_0xc4cd63['as'],'attributes':_0xc4cd63[_0x47a5('0x1a')],'include':_0xc4cd63[_0x47a5('0x1c')]?_['map'](_0xc4cd63['include'],function(_0x136745){return{'model':db[_0x136745['model']],'as':_0x136745['as'],'attributes':_0x136745[_0x47a5('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x23cb77){logger[_0x47a5('0xb')](_0x47a5('0x1e'),_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1e'),_0x5247fd,JSON[_0x47a5('0xe')](_0x23cb77));_0xaf70a6(_0x23cb77);})[_0x47a5('0x14')](function(_0x136b14){logger[_0x47a5('0xf')](_0x47a5('0x1e'),_0x136b14[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81[_0x47a5('0xf')](0x1f4,_0x136b14[_0x47a5('0x11')]));});});};
\ No newline at end of file
+var _0xb10b=['catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','Pause,\x20%s,\x20%s','Pause,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','ShowPause','Pause','find','options','raw','where','attributes','map','include','model','debug'];(function(_0x5c2d99,_0x2f4366){var _0x291d64=function(_0x3a362d){while(--_0x3a362d){_0x5c2d99['push'](_0x5c2d99['shift']());}};_0x291d64(++_0x2f4366);}(_0xb10b,0x12a));var _0xbb10=function(_0x5244bc,_0xbeed11){_0x5244bc=_0x5244bc-0x0;var _0x3ae51c=_0xb10b[_0x5244bc];return _0x3ae51c;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')]({'raw':_0x378da8['options']?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![],'where':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x1a')]||null:null,'attributes':_0x378da8[_0xbb10('0x18')]?_0x378da8['options'][_0xbb10('0x1b')]||null:null,'include':_0x378da8[_0xbb10('0x18')]?_0x378da8['options']['include']?_[_0xbb10('0x1c')](_0x378da8[_0xbb10('0x18')][_0xbb10('0x1d')],function(_0x317da4){return{'model':db[_0x317da4[_0xbb10('0x1e')]],'as':_0x317da4['as'],'attributes':_0x317da4[_0xbb10('0x1b')],'include':_0x317da4[_0xbb10('0x1d')]?_[_0xbb10('0x1c')](_0x317da4[_0xbb10('0x1d')],function(_0x395404){return{'model':db[_0x395404[_0xbb10('0x1e')]],'as':_0x395404['as'],'attributes':_0x395404[_0xbb10('0x1b')],'include':_0x395404['include']?_['map'](_0x395404['include'],function(_0xc93a04){return{'model':db[_0xc93a04[_0xbb10('0x1e')]],'as':_0xc93a04['as'],'attributes':_0xc93a04[_0xbb10('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fdde9){logger[_0xbb10('0xd')](_0xbb10('0x15'),_0x378da8);logger[_0xbb10('0x1f')](_0xbb10('0x15'),_0x378da8,JSON[_0xbb10('0x11')](_0x2fdde9));_0x575cca(_0x2fdde9);})[_0xbb10('0x20')](function(_0x4aabb9){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x4aabb9[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x4aabb9[_0xbb10('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaba6=['get','webhookGet','isAuthenticated','show','/:id/download','download','diskStorage','root','server/files/plugins','originalname','format','%s-%s%s','basename','extname','now','post','single','file','upload','/webhook','put','/:id','delete','multer','util','fs-extra','../../components/auth/service','../../config/environment','./plugin.controller'];(function(_0x2eda3a,_0x57c6d6){var _0x29575f=function(_0xa74065){while(--_0xa74065){_0x2eda3a['push'](_0x2eda3a['shift']());}};_0x29575f(++_0x57c6d6);}(_0xaba6,0xe2));var _0x6aba=function(_0x58f6fd,_0x8e6c3d){_0x58f6fd=_0x58f6fd-0x0;var _0x44dce4=_0xaba6[_0x58f6fd];return _0x44dce4;};'use strict';var multer=require(_0x6aba('0x0'));var util=require(_0x6aba('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x6aba('0x2'));var auth=require(_0x6aba('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x6aba('0x4'));var controller=require(_0x6aba('0x5'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x6aba('0x6')]('/webhook',controller[_0x6aba('0x7')]);router[_0x6aba('0x6')]('/:id',auth[_0x6aba('0x8')](),controller[_0x6aba('0x9')]);router['get'](_0x6aba('0xa'),auth[_0x6aba('0x8')](),controller[_0x6aba('0xb')]);var upload=multer({'storage':multer[_0x6aba('0xc')]({'destination':function(_0xdbc119,_0x4089c6,_0x181426){_0x181426(null,path['join'](config[_0x6aba('0xd')],_0x6aba('0xe')));},'filename':function(_0x43867b,_0x254007,_0x53e604){_0x254007[_0x6aba('0xf')]=_0x254007[_0x6aba('0xf')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x53e604(null,util[_0x6aba('0x10')](_0x6aba('0x11'),path[_0x6aba('0x12')](_0x254007['originalname'],path[_0x6aba('0x13')](_0x254007[_0x6aba('0xf')])),Date[_0x6aba('0x14')](),path['extname'](_0x254007[_0x6aba('0xf')])));}})});router[_0x6aba('0x15')]('/',upload[_0x6aba('0x16')](_0x6aba('0x17')),controller[_0x6aba('0x18')]);router[_0x6aba('0x15')](_0x6aba('0x19'),controller['webhookPost']);router[_0x6aba('0x1a')](_0x6aba('0x1b'),auth[_0x6aba('0x8')](),controller['update']);router[_0x6aba('0x1c')]('/:id',auth['isAuthenticated'](),controller[_0x6aba('0x1c')]);module['exports']=router;
\ No newline at end of file
+var _0xac31=['path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/webhook','webhookGet','/:id','show','/:id/download','download','diskStorage','join','server/files/plugins','originalname','replace','format','%s-%s%s','extname','now','single','file','upload','put','update','delete','exports','multer','util'];(function(_0x4b5de2,_0x3a68af){var _0x55e5d0=function(_0x4098fb){while(--_0x4098fb){_0x4b5de2['push'](_0x4b5de2['shift']());}};_0x55e5d0(++_0x3a68af);}(_0xac31,0xca));var _0x1ac3=function(_0x284355,_0x1ad8d0){_0x284355=_0x284355-0x0;var _0x4933ed=_0xac31[_0x284355];return _0x4933ed;};'use strict';var multer=require(_0x1ac3('0x0'));var util=require(_0x1ac3('0x1'));var path=require(_0x1ac3('0x2'));var timeout=require(_0x1ac3('0x3'));var express=require(_0x1ac3('0x4'));var router=express[_0x1ac3('0x5')]();var fs_extra=require(_0x1ac3('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x1ac3('0x7'));var config=require(_0x1ac3('0x8'));var controller=require('./plugin.controller');router['get']('/',auth[_0x1ac3('0x9')](),controller[_0x1ac3('0xa')]);router[_0x1ac3('0xb')](_0x1ac3('0xc'),controller[_0x1ac3('0xd')]);router['get'](_0x1ac3('0xe'),auth['isAuthenticated'](),controller[_0x1ac3('0xf')]);router[_0x1ac3('0xb')](_0x1ac3('0x10'),auth['isAuthenticated'](),controller[_0x1ac3('0x11')]);var upload=multer({'storage':multer[_0x1ac3('0x12')]({'destination':function(_0x3e835b,_0x24f0d2,_0x2a8dc7){_0x2a8dc7(null,path[_0x1ac3('0x13')](config['root'],_0x1ac3('0x14')));},'filename':function(_0x376814,_0x2eeabf,_0x2338b9){_0x2eeabf['originalname']=_0x2eeabf[_0x1ac3('0x15')][_0x1ac3('0x16')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x2338b9(null,util[_0x1ac3('0x17')](_0x1ac3('0x18'),path['basename'](_0x2eeabf[_0x1ac3('0x15')],path[_0x1ac3('0x19')](_0x2eeabf['originalname'])),Date[_0x1ac3('0x1a')](),path[_0x1ac3('0x19')](_0x2eeabf[_0x1ac3('0x15')])));}})});router['post']('/',upload[_0x1ac3('0x1b')](_0x1ac3('0x1c')),controller[_0x1ac3('0x1d')]);router['post'](_0x1ac3('0xc'),controller['webhookPost']);router[_0x1ac3('0x1e')](_0x1ac3('0xe'),auth[_0x1ac3('0x9')](),controller[_0x1ac3('0x1f')]);router[_0x1ac3('0x20')]('/:id',auth[_0x1ac3('0x9')](),controller[_0x1ac3('0x20')]);module[_0x1ac3('0x21')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8df=['agentOnly','never','always','sequelize','STRING','ENUM','html','script','TEXT'];(function(_0x39d544,_0x35c14f){var _0x5a5ff2=function(_0x2271fb){while(--_0x2271fb){_0x39d544['push'](_0x39d544['shift']());}};_0x5a5ff2(++_0x35c14f);}(_0xd8df,0x78));var _0xfd8d=function(_0x392d41,_0x99e821){_0x392d41=_0x392d41-0x0;var _0x5828de=_0xd8df[_0x392d41];return _0x5828de;};'use strict';var Sequelize=require(_0xfd8d('0x0'));module['exports']={'name':{'type':Sequelize[_0xfd8d('0x1')]},'type':{'type':Sequelize[_0xfd8d('0x2')](_0xfd8d('0x3'),_0xfd8d('0x4'))},'description':{'type':Sequelize[_0xfd8d('0x5')]},'version':{'type':Sequelize['TEXT']},'path':{'type':Sequelize[_0xfd8d('0x1')],'comment':'The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.'},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.'},'sidebar':{'type':Sequelize[_0xfd8d('0x2')]('adminOnly',_0xfd8d('0x6'),'always',_0xfd8d('0x7')),'defaultValue':_0xfd8d('0x8'),'comment':'Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.'},'icon':{'type':Sequelize[_0xfd8d('0x1')]},'adminUrl':{'type':Sequelize['STRING']},'agentUrl':{'type':Sequelize[_0xfd8d('0x1')]},'scriptName':{'type':Sequelize[_0xfd8d('0x1')]},'scriptPath':{'type':Sequelize[_0xfd8d('0x1')]}};
\ No newline at end of file
+var _0xef04=['STRING','sequelize','exports','ENUM','script','TEXT','The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.','BOOLEAN','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.','adminOnly','agentOnly','always','never','Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.'];(function(_0x77d286,_0x1ddc6d){var _0x5446a5=function(_0x45e2cf){while(--_0x45e2cf){_0x77d286['push'](_0x77d286['shift']());}};_0x5446a5(++_0x1ddc6d);}(_0xef04,0x16d));var _0x4ef0=function(_0x2a6291,_0x4a0fdf){_0x2a6291=_0x2a6291-0x0;var _0x2b4977=_0xef04[_0x2a6291];return _0x2b4977;};'use strict';var Sequelize=require(_0x4ef0('0x0'));module[_0x4ef0('0x1')]={'name':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x4ef0('0x2')]('html',_0x4ef0('0x3'))},'description':{'type':Sequelize['TEXT']},'version':{'type':Sequelize[_0x4ef0('0x4')]},'path':{'type':Sequelize['STRING'],'comment':_0x4ef0('0x5')},'active':{'type':Sequelize[_0x4ef0('0x6')],'defaultValue':0x0,'comment':_0x4ef0('0x7')},'sidebar':{'type':Sequelize[_0x4ef0('0x2')](_0x4ef0('0x8'),_0x4ef0('0x9'),_0x4ef0('0xa'),_0x4ef0('0xb')),'defaultValue':_0x4ef0('0xa'),'comment':_0x4ef0('0xc')},'icon':{'type':Sequelize[_0x4ef0('0xd')]},'adminUrl':{'type':Sequelize['STRING']},'agentUrl':{'type':Sequelize['STRING']},'scriptName':{'type':Sequelize[_0x4ef0('0xd')]},'scriptPath':{'type':Sequelize[_0x4ef0('0xd')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31ec=['%s.zip','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','filename','extname','file','root','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','readdirSync','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','undefined','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','Warning:\x20agent\x20view\x20not\x20specified','script','scriptName','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','userProfileId','Extracted\x20folder\x20removed','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','hostname','method','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','\x27PORT\x27\x20parameter\x20not\x20specified','http://localhost:','encoding','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','json','offset','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','Plugins','UserProfileResource','end','error','stack','name','send','index','map','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','Plugin','include','rows','catch','params','download','find','join','server/files/plugins','format','basename','createWriteStream','warning','code','ENOENT','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','dirname','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Error','Plugin\x20not\x20found'];(function(_0x37f3d4,_0x1eabd4){var _0x5f2dd0=function(_0xeb17fd){while(--_0xeb17fd){_0x37f3d4['push'](_0x37f3d4['shift']());}};_0x5f2dd0(++_0x1eabd4);}(_0x31ec,0x1a6));var _0xc31e=function(_0xb59f03,_0x33df92){_0xb59f03=_0xb59f03-0x0;var _0x4069e9=_0x31ec[_0xb59f03];return _0x4069e9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc31e('0x0'));var zipdir=require(_0xc31e('0x1'));var jsonpatch=require(_0xc31e('0x2'));var rp=require(_0xc31e('0x3'));var moment=require(_0xc31e('0x4'));var BPromise=require(_0xc31e('0x5'));var Mustache=require(_0xc31e('0x6'));var util=require('util');var path=require(_0xc31e('0x7'));var sox=require(_0xc31e('0x8'));var csv=require(_0xc31e('0x9'));var ejs=require(_0xc31e('0xa'));var fs=require('fs');var fs_extra=require(_0xc31e('0xb'));var _=require(_0xc31e('0xc'));var squel=require(_0xc31e('0xd'));var crypto=require(_0xc31e('0xe'));var jsforce=require(_0xc31e('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xc31e('0x9'));var querystring=require(_0xc31e('0x10'));var Papa=require(_0xc31e('0x11'));var extract=require(_0xc31e('0x12'));var rimraf=require('rimraf');var archiver=require(_0xc31e('0x13'));var Redis=require(_0xc31e('0x14'));var authService=require(_0xc31e('0x15'));var qs=require(_0xc31e('0x16'));var as=require(_0xc31e('0x17'));var hardwareService=require(_0xc31e('0x18'));var logger=require(_0xc31e('0x19'))(_0xc31e('0x1a'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc31e('0x1b'));var db=require(_0xc31e('0x1c'))['db'];config[_0xc31e('0x1d')]=_['defaults'](config['redis'],{'host':_0xc31e('0x1e'),'port':0x18eb});var socket=require(_0xc31e('0x1f'))(new Redis(config['redis']));require(_0xc31e('0x20'))[_0xc31e('0x21')](socket);function respondWithStatusCode(_0x125eae,_0x9c808a){_0x9c808a=_0x9c808a||0xcc;return function(_0xeefacf){if(_0xeefacf){return _0x125eae[_0xc31e('0x22')](_0x9c808a);}return _0x125eae[_0xc31e('0x23')](_0x9c808a)['end']();};}function respondWithResult(_0x35f96f,_0x532740){_0x532740=_0x532740||0xc8;return function(_0x23be33){if(_0x23be33){return _0x35f96f[_0xc31e('0x23')](_0x532740)[_0xc31e('0x24')](_0x23be33);}};}function respondWithFilteredResult(_0x351e7d,_0x37b993){return function(_0x95fd24){if(_0x95fd24){var _0x2a082c=typeof _0x37b993[_0xc31e('0x25')]==='undefined'&&typeof _0x37b993['limit']==='undefined';var _0xb75b51=_0x95fd24[_0xc31e('0x26')];var _0x196d2b=_0x2a082c?0x0:_0x37b993['offset'];var _0x8cf426=_0x2a082c?_0x95fd24['count']:_0x37b993[_0xc31e('0x25')]+_0x37b993[_0xc31e('0x27')];var _0x29830a;if(_0x8cf426>=_0xb75b51){_0x8cf426=_0xb75b51;_0x29830a=0xc8;}else{_0x29830a=0xce;}_0x351e7d[_0xc31e('0x23')](_0x29830a);return _0x351e7d[_0xc31e('0x28')](_0xc31e('0x29'),_0x196d2b+'-'+_0x8cf426+'/'+_0xb75b51)[_0xc31e('0x24')](_0x95fd24);}return null;};}function patchUpdates(_0x222b71){return function(_0x4278e1){try{jsonpatch[_0xc31e('0x2a')](_0x4278e1,_0x222b71,!![]);}catch(_0xa46c1e){return BPromise[_0xc31e('0x2b')](_0xa46c1e);}return _0x4278e1[_0xc31e('0x2c')]();};}function saveUpdates(_0x1922d3,_0x5b5cd2){return function(_0x21c954){if(_0x21c954){return _0x21c954[_0xc31e('0x2d')](_0x1922d3)[_0xc31e('0x2e')](function(_0x539d07){return _0x539d07;});}return null;};}function removeEntity(_0x4e3964,_0x223731){return function(_0x425c65){if(_0x425c65){return _0x425c65[_0xc31e('0x2f')]()[_0xc31e('0x2e')](function(){var _0x18185f=_0x425c65['get']({'plain':!![]});var _0x4cf3cd=_0xc31e('0x30');return db[_0xc31e('0x31')]['destroy']({'where':{'type':_0x4cf3cd,'resourceId':_0x18185f['id']}})[_0xc31e('0x2e')](function(){return _0x425c65;});})['then'](function(){_0x4e3964['status'](0xcc)[_0xc31e('0x32')]();});}};}function handleEntityNotFound(_0x2eac91,_0x3896c1){return function(_0x5bc8e0){if(!_0x5bc8e0){_0x2eac91[_0xc31e('0x22')](0x194);}return _0x5bc8e0;};}function handleError(_0x7f2728,_0x197e06){_0x197e06=_0x197e06||0x1f4;return function(_0x694ef6){logger[_0xc31e('0x33')](_0x694ef6[_0xc31e('0x34')]);if(_0x694ef6[_0xc31e('0x35')]){delete _0x694ef6[_0xc31e('0x35')];}_0x7f2728['status'](_0x197e06)[_0xc31e('0x36')](_0x694ef6);};}exports[_0xc31e('0x37')]=function(_0x7570bd,_0x1c0df2){var _0x456d67={},_0x3cafb6={},_0x4bb280={'count':0x0,'rows':[]};var _0x5ee5bf=_[_0xc31e('0x38')](db['Plugin']['rawAttributes'],function(_0x1cbd97){return{'name':_0x1cbd97[_0xc31e('0x39')],'type':_0x1cbd97[_0xc31e('0x3a')]['key']};});_0x3cafb6[_0xc31e('0x3b')]=_[_0xc31e('0x38')](_0x5ee5bf,'name');_0x3cafb6[_0xc31e('0x3c')]=_[_0xc31e('0x3d')](_0x7570bd['query']);_0x3cafb6[_0xc31e('0x3e')]=_[_0xc31e('0x3f')](_0x3cafb6[_0xc31e('0x3b')],_0x3cafb6[_0xc31e('0x3c')]);_0x456d67[_0xc31e('0x40')]=_[_0xc31e('0x3f')](_0x3cafb6['model'],qs['fields'](_0x7570bd[_0xc31e('0x3c')][_0xc31e('0x41')]));_0x456d67['attributes']=_0x456d67[_0xc31e('0x40')][_0xc31e('0x42')]?_0x456d67[_0xc31e('0x40')]:_0x3cafb6[_0xc31e('0x3b')];if(!_0x7570bd[_0xc31e('0x3c')][_0xc31e('0x43')](_0xc31e('0x44'))){_0x456d67[_0xc31e('0x27')]=qs[_0xc31e('0x27')](_0x7570bd['query'][_0xc31e('0x27')]);_0x456d67[_0xc31e('0x25')]=qs['offset'](_0x7570bd[_0xc31e('0x3c')][_0xc31e('0x25')]);}_0x456d67[_0xc31e('0x45')]=qs['sort'](_0x7570bd[_0xc31e('0x3c')]['sort']);_0x456d67[_0xc31e('0x46')]=qs[_0xc31e('0x3e')](_[_0xc31e('0x47')](_0x7570bd[_0xc31e('0x3c')],_0x3cafb6['filters']),_0x5ee5bf);if(_0x7570bd['query'][_0xc31e('0x48')]){_0x456d67[_0xc31e('0x46')]=_[_0xc31e('0x49')](_0x456d67[_0xc31e('0x46')],{'$or':_[_0xc31e('0x38')](_0x5ee5bf,function(_0x2d8586){if(_0x2d8586['type']!==_0xc31e('0x4a')){var _0x1971c4={};_0x1971c4[_0x2d8586[_0xc31e('0x35')]]={'$like':'%'+_0x7570bd['query'][_0xc31e('0x48')]+'%'};return _0x1971c4;}})});}_0x456d67=_['merge']({},_0x456d67,_0x7570bd[_0xc31e('0x4b')]);var _0x5347cf={'where':_0x456d67[_0xc31e('0x46')]};return db[_0xc31e('0x4c')]['count'](_0x5347cf)[_0xc31e('0x2e')](function(_0x26442f){_0x4bb280[_0xc31e('0x26')]=_0x26442f;if(_0x7570bd[_0xc31e('0x3c')]['includeAll']){_0x456d67[_0xc31e('0x4d')]=[{'all':!![]}];}return db['Plugin']['findAll'](_0x456d67);})['then'](function(_0x4b8fb9){_0x4bb280[_0xc31e('0x4e')]=_0x4b8fb9;return _0x4bb280;})[_0xc31e('0x2e')](respondWithFilteredResult(_0x1c0df2,_0x456d67))[_0xc31e('0x4f')](handleError(_0x1c0df2,null));};exports['show']=function(_0x293ae0,_0x139106){var _0x4f843d={'raw':!![],'where':{'id':_0x293ae0[_0xc31e('0x50')]['id']}},_0x2d6e62={};_0x2d6e62[_0xc31e('0x3b')]=_[_0xc31e('0x3d')](db[_0xc31e('0x4c')]['rawAttributes']);_0x2d6e62[_0xc31e('0x3c')]=_[_0xc31e('0x3d')](_0x293ae0[_0xc31e('0x3c')]);_0x2d6e62[_0xc31e('0x3e')]=_[_0xc31e('0x3f')](_0x2d6e62[_0xc31e('0x3b')],_0x2d6e62[_0xc31e('0x3c')]);_0x4f843d['attributes']=_[_0xc31e('0x3f')](_0x2d6e62['model'],qs[_0xc31e('0x41')](_0x293ae0['query'][_0xc31e('0x41')]));_0x4f843d['attributes']=_0x4f843d[_0xc31e('0x40')]['length']?_0x4f843d['attributes']:_0x2d6e62['model'];if(_0x293ae0[_0xc31e('0x3c')]['includeAll']){_0x4f843d[_0xc31e('0x4d')]=[{'all':!![]}];}_0x4f843d=_[_0xc31e('0x49')]({},_0x4f843d,_0x293ae0['options']);return db[_0xc31e('0x4c')]['find'](_0x4f843d)[_0xc31e('0x2e')](handleEntityNotFound(_0x139106,null))[_0xc31e('0x2e')](respondWithResult(_0x139106,null))['catch'](handleError(_0x139106,null));};exports[_0xc31e('0x51')]=function(_0x229185,_0x401206,_0x414837){return db[_0xc31e('0x4c')][_0xc31e('0x52')]({'where':{'id':_0x229185[_0xc31e('0x50')]['id']},'attributes':[_0xc31e('0x35'),'path'],'raw':!![]})[_0xc31e('0x2e')](handleEntityNotFound(_0x401206,null))[_0xc31e('0x2e')](function(_0x424d92){if(_0x424d92){var _0x2ca905=path[_0xc31e('0x53')](config['root'],_0xc31e('0x54'),util[_0xc31e('0x55')]('%s.zip',path[_0xc31e('0x56')](_0x424d92[_0xc31e('0x7')])));var _0xac69a5=fs[_0xc31e('0x57')](_0x2ca905);var _0x526dc8=archiver('zip',{'zlib':{'level':0x9}});_0x526dc8['on'](_0xc31e('0x58'),function(_0x4dbb60){if(_0x4dbb60[_0xc31e('0x59')]===_0xc31e('0x5a')){logger[_0xc31e('0x33')](_0x4dbb60);}else{throw new db['Sequelize']['Error']('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x526dc8['on'](_0xc31e('0x33'),function(_0x1d81fe){throw new db[(_0xc31e('0x5b'))]['Error'](_0xc31e('0x5c'));});_0x526dc8[_0xc31e('0x5d')](_0xac69a5);_0x526dc8[_0xc31e('0x5e')]('**/*',{'cwd':path[_0xc31e('0x53')](config['root'],_0xc31e('0x54'),path[_0xc31e('0x5f')](_0x424d92['path'])),'ignore':[path[_0xc31e('0x53')](path[_0xc31e('0x56')](_0x424d92[_0xc31e('0x7')]),_0xc31e('0x60')),path[_0xc31e('0x53')](path[_0xc31e('0x56')](_0x424d92[_0xc31e('0x7')]),_0xc31e('0x61'))],'nodir':!![]})[_0xc31e('0x62')]();_0xac69a5['on'](_0xc31e('0x63'),function(){if(!fs[_0xc31e('0x64')](_0x2ca905)){throw new db[(_0xc31e('0x5b'))][(_0xc31e('0x65'))](_0xc31e('0x66'));}return _0x401206['download'](_0x2ca905,util[_0xc31e('0x55')](_0xc31e('0x67'),path['basename'](_0x424d92[_0xc31e('0x7')])),function(_0x1affbf){if(_0x1affbf){throw new db[(_0xc31e('0x5b'))][(_0xc31e('0x65'))](_0xc31e('0x68'));}fs[_0xc31e('0x69')](_0x2ca905);logger[_0xc31e('0x6a')](_0xc31e('0x6b'));logger[_0xc31e('0x6a')](_0xc31e('0x6c'));});});}return null;})[_0xc31e('0x4f')](handleError(_0x401206,null));};exports['upload']=function(_0x4bf87c,_0x2d6617,_0x1f3e5a){var _0x15be7e=path['basename'](_0x4bf87c['file'][_0xc31e('0x6d')],path[_0xc31e('0x6e')](_0x4bf87c[_0xc31e('0x6f')][_0xc31e('0x6d')]));var _0xa2cc52=path[_0xc31e('0x53')](config[_0xc31e('0x70')],'server/files/plugins',_0x4bf87c[_0xc31e('0x6f')]['filename']);var _0x2976d5=path['join'](config[_0xc31e('0x70')],'server/files/plugins',_0x15be7e);logger[_0xc31e('0x6a')](_0xc31e('0x71'),_0xa2cc52);logger[_0xc31e('0x6a')](_0xc31e('0x72'),_0x2976d5);try{fs[_0xc31e('0x73')](_0xa2cc52,parseInt('0777',0x8));extract(_0xa2cc52,{'dir':_0x2976d5},function(_0x29f802){if(_0x29f802){logger[_0xc31e('0x33')](_0x29f802);handleError(_0x29f802,!![]);};var _0x5c41c6=fs['readdirSync'](_0x2976d5);if(_0x5c41c6[_0xc31e('0x42')]>0x1){removeReferences(_0xa2cc52,_0x2976d5);logger[_0xc31e('0x33')]('Invalid\x20plugin\x20structure');return _0x1f3e5a(new Error(_0xc31e('0x74')));}var _0x585699=fs[_0xc31e('0x75')](path[_0xc31e('0x53')](_0x2976d5,_0x5c41c6[0x0]));if(_0x585699[_0xc31e('0x76')]()){removeReferences(_0xa2cc52,_0x2976d5);logger[_0xc31e('0x33')](_0xc31e('0x74'));return _0x1f3e5a(new Error(_0xc31e('0x74')));}if(_0x585699[_0xc31e('0x77')]()){var _0xd1f154=fs[_0xc31e('0x78')](path[_0xc31e('0x53')](_0x2976d5,_0x5c41c6[0x0]));if(_0xd1f154[_0xc31e('0x42')]===0x0){removeReferences(_0xa2cc52,_0x2976d5);logger[_0xc31e('0x33')]('Invalid\x20plugin\x20structure');return _0x1f3e5a(new Error('Invalid\x20plugin\x20structure'));}var _0x4f67bb=_0xd1f154[_0xc31e('0x79')](function(_0x24d1ca){return _0x24d1ca===_0xc31e('0x7a');});if(!_0x4f67bb){return _0x1f3e5a(new Error(_0xc31e('0x7b')));}var _0x461bfd=fs[_0xc31e('0x7c')](path['join'](_0x2976d5,_0x5c41c6[0x0],'manifest.json'));var _0x5c3085=JSON[_0xc31e('0x7d')](_0x461bfd);if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x35')]){return _0x1f3e5a(new Error(_0xc31e('0x7f')));}if(_0xc31e('0x7e')==typeof _0x5c3085['type']){return _0x1f3e5a(new Error(_0xc31e('0x80')));}if('undefined'==typeof _0x5c3085[_0xc31e('0x81')]){return _0x1f3e5a(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x82')]){return _0x1f3e5a(new Error(_0xc31e('0x83')));}if(_0x5c3085[_0xc31e('0x3a')]===_0xc31e('0x84')){if('undefined'==typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')]){return _0x1f3e5a(new Error(_0xc31e('0x86')));}if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x87')]&&_0xc31e('0x7e')==typeof _0x5c3085['parameters'][_0xc31e('0x85')]['agent']){return _0x1f3e5a(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0x5c3085[_0xc31e('0x3a')]==='script'){if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x82')]['scriptName']){return _0x1f3e5a(new Error(_0xc31e('0x88')));}if('undefined'==typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x89')]){return _0x1f3e5a(new Error(_0xc31e('0x8a')));}}else{return _0x1f3e5a(new Error(_0xc31e('0x8b')));}var _0x338307=_0x5c3085['name'];var _0x2774da=_0x5c3085[_0xc31e('0x8c')];var _0x4d1db0=_0x5c3085[_0xc31e('0x3a')];var _0x1ef719=_0x5c3085[_0xc31e('0x8d')]?_0x5c3085[_0xc31e('0x8d')]:_0xc31e('0x8e');var _0x211a23=_0x5c3085['icon']?_0x5c3085[_0xc31e('0x8f')]:'icon-apps';var _0x369eb2='';var _0x1a94dd='';var _0x20e6ad='';var _0x3650c2='';var _0x280087=_0x5c3085[_0xc31e('0x81')];if(_0x4d1db0===_0xc31e('0x84')){if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')]['views']['admin']){var _0x2fa3f4=_0x5c3085['parameters'][_0xc31e('0x85')][_0xc31e('0x87')];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x2fa3f4)){_0x369eb2=path[_0xc31e('0x53')](_0xc31e('0x91'),_0x15be7e,_0x5c41c6[0x0],_0x2fa3f4);}else{_0x369eb2=_0x2fa3f4;}}else{logger['info'](_0xc31e('0x92'));}if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x93')]){var _0x5eb182=_0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x93')];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x5eb182)){_0x1a94dd=path[_0xc31e('0x53')](_0xc31e('0x91'),_0x15be7e,_0x5c41c6[0x0],_0x5eb182);}else{_0x1a94dd=_0x5eb182;}}else{logger[_0xc31e('0x6a')](_0xc31e('0x94'));}}else if(_0x4d1db0===_0xc31e('0x95')){_0x20e6ad=_0x5c3085[_0xc31e('0x82')][_0xc31e('0x96')];_0x3650c2=_0x5c3085[_0xc31e('0x82')]['scriptPath'];if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')]){if(_0xc31e('0x7e')!=typeof _0x5c3085['parameters']['views']['admin']){var _0x2fa3f4=_0x5c3085[_0xc31e('0x82')]['views'][_0xc31e('0x87')];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x2fa3f4)){_0x369eb2=path['join'](_0xc31e('0x91'),_0x15be7e,_0x5c41c6[0x0],_0x2fa3f4);}else{_0x369eb2=_0x2fa3f4;}}if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x93')]){var _0x5eb182=_0x5c3085['parameters'][_0xc31e('0x85')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x5eb182)){_0x1a94dd=path['join']('plugins',_0x15be7e,_0x5c41c6[0x0],_0x5eb182);}else{_0x1a94dd=_0x5eb182;}}}}var _0x3326eb={'name':_0x338307,'description':_0x2774da,'path':path[_0xc31e('0x53')](_0x15be7e,_0x5c41c6[0x0]),'type':_0x4d1db0,'sidebar':_0x1ef719,'icon':_0x211a23,'adminUrl':_0x369eb2,'agentUrl':_0x1a94dd,'scriptName':_0x20e6ad,'scriptPath':_0x3650c2,'version':_0x280087};removeReferences(_0xa2cc52,null);return db[_0xc31e('0x4c')][_0xc31e('0x97')](_0x3326eb)[_0xc31e('0x2e')](function(_0x9cd5e2){var _0x468eff={'role':_0x4bf87c[_0xc31e('0x98')][_0xc31e('0x99')],'userProfileId':_0x4bf87c['body']['userProfileId']};if(!_0x468eff)throw new Error(_0xc31e('0x9a'));if(_0x468eff[_0xc31e('0x99')]===_0xc31e('0x9b')){var _0x340f7b=_0x9cd5e2[_0xc31e('0x9c')]({'plain':!![]});return db['UserProfileSection'][_0xc31e('0x52')]({'where':{'name':'Plugins','userProfileId':_0x468eff[_0xc31e('0x9d')]},'raw':!![]})['then'](function(_0x188333){if(_0x188333&&_0x188333['autoAssociation']===0x0){return db['UserProfileResource'][_0xc31e('0x97')]({'name':_0x340f7b['name'],'resourceId':_0x340f7b['id'],'type':_0x188333[_0xc31e('0x35')],'sectionId':_0x188333['id']},{})[_0xc31e('0x2e')](function(){return _0x9cd5e2;});}else{return _0x9cd5e2;}})['catch'](function(_0xdcbead){logger[_0xc31e('0x33')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xdcbead);throw _0xdcbead;});}return _0x9cd5e2;})['then'](respondWithResult(_0x2d6617,null))[_0xc31e('0x4f')](handleError(_0x2d6617,null));}});}catch(_0x5bf117){_0x2d6617['status'](0x1f4)[_0xc31e('0x36')](_0x5bf117);}};function removeReferences(_0xda52c9,_0x3bfd75){try{if(_0xda52c9){fs['unlinkSync'](_0xda52c9);logger[_0xc31e('0x6a')]('Zip\x20archive\x20removed');}if(_0x3bfd75){rimraf(_0x3bfd75,function(){});logger[_0xc31e('0x6a')](_0xc31e('0x9e'));}}catch(_0x25a479){logger[_0xc31e('0x33')](_0x25a479);}}exports[_0xc31e('0x2d')]=function(_0x28e05d,_0x23a096,_0xb8626b){return db['Plugin']['find']({'where':{'id':_0x28e05d[_0xc31e('0x50')]['id']}})['then'](handleEntityNotFound(_0x23a096,null))[_0xc31e('0x2e')](saveUpdates(_0x28e05d[_0xc31e('0x98')],null))['then'](respondWithResult(_0x23a096,null))[_0xc31e('0x4f')](handleError(_0x23a096,null));};exports['delete']=function(_0x48d8f0,_0x4827a0,_0x122711){return db[_0xc31e('0x4c')][_0xc31e('0x52')]({'where':{'id':_0x48d8f0['params']['id']}})[_0xc31e('0x2e')](function(_0x4ad940){if(_0x4ad940){return _0x4ad940[_0xc31e('0x2f')]();}})[_0xc31e('0x2e')](function(_0x3d1096){rimraf(path[_0xc31e('0x53')](config[_0xc31e('0x70')],_0xc31e('0x54'),path[_0xc31e('0x5f')](_0x3d1096['path'])),function(){});return _0x3d1096;})[_0xc31e('0x2e')](handleEntityNotFound(_0x4827a0,null))[_0xc31e('0x2e')](respondWithStatusCode(_0x4827a0,null))[_0xc31e('0x4f')](handleError(_0x4827a0,null));};exports[_0xc31e('0x9f')]=function(_0x5a0282,_0x126912,_0x577649){return BPromise[_0xc31e('0xa0')]()[_0xc31e('0x2e')](function(){if(!_0x5a0282[_0xc31e('0x3c')][_0xc31e('0x7')]){throw new Error(_0xc31e('0xa1'));}if(!_0x5a0282['query'][_0xc31e('0xa2')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x464c47=_0x5a0282[_0xc31e('0x3c')][_0xc31e('0xa3')]?_0x5a0282['query'][_0xc31e('0xa3')]+':'+_0x5a0282[_0xc31e('0x3c')]['port']:'http://localhost:'+_0x5a0282[_0xc31e('0x3c')][_0xc31e('0xa2')];var _0x3b9fef=_0x5a0282['query'][_0xc31e('0x24')]?_0x5a0282[_0xc31e('0x3c')][_0xc31e('0x24')]:!![];var _0x4dd666=_0x5a0282[_0xc31e('0x3c')]['encoding']?_0x5a0282[_0xc31e('0x3c')]['encoding']:null;var _0x6fb03f={'method':_0x5a0282[_0xc31e('0xa4')],'uri':util[_0xc31e('0x55')](_0xc31e('0xa5'),_0x464c47,_0x5a0282[_0xc31e('0x3c')]['path']),'json':_0x3b9fef,'resolveWithFullResponse':!![],'encoding':_0x4dd666,'qs':_0x5a0282[_0xc31e('0x3c')]};if(_0x5a0282[_0xc31e('0xa6')]){_0x6fb03f[_0xc31e('0xa6')]=_0x5a0282[_0xc31e('0xa6')];if(_0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa7')]){delete _0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa7')];}}if(_0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa8')]){delete _0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa8')];}return rp(_0x6fb03f);})[_0xc31e('0x2e')](function(_0x548d9b){if(_0x548d9b){_0x126912[_0xc31e('0x28')](_0x548d9b[_0xc31e('0xa6')]);logger[_0xc31e('0x6a')](_0x548d9b[_0xc31e('0x98')]);if(_[_0xc31e('0xa9')](_0x5a0282[_0xc31e('0x3c')]['path'],_0xc31e('0x51'))&&_0x548d9b[_0xc31e('0xaa')]==0x1f4){return _0x126912[_0xc31e('0x22')](_0x548d9b[_0xc31e('0xaa')]);}else{return _0x126912[_0xc31e('0x23')](_0x548d9b['statusCode'])[_0xc31e('0x36')](_0x548d9b['body']);}}else{return _0x126912['sendStatus'](0xc8);}})[_0xc31e('0x4f')](handleError(_0x126912,null));};exports[_0xc31e('0xab')]=function(_0x564f5e,_0x18de6b,_0x14ce28){return BPromise[_0xc31e('0xa0')]()[_0xc31e('0x2e')](function(){if(!_0x564f5e[_0xc31e('0x3c')]['path']){throw new Error(_0xc31e('0xa1'));}if(!_0x564f5e[_0xc31e('0x3c')]['port']){throw new Error(_0xc31e('0xac'));}var _0x17a3c3=_0x564f5e[_0xc31e('0x3c')]['hostname']?_0x564f5e[_0xc31e('0x3c')][_0xc31e('0xa3')]+':'+_0x564f5e[_0xc31e('0x3c')][_0xc31e('0xa2')]:_0xc31e('0xad')+_0x564f5e['query'][_0xc31e('0xa2')];var _0x55cf55=_0x564f5e[_0xc31e('0x3c')][_0xc31e('0x24')]?_0x564f5e[_0xc31e('0x3c')][_0xc31e('0x24')]:!![];var _0x4e02ca=_0x564f5e['query'][_0xc31e('0xae')]?_0x564f5e[_0xc31e('0x3c')]['encoding']:null;var _0x4e5275={'method':_0x564f5e['method'],'uri':util['format'](_0xc31e('0xa5'),_0x17a3c3,_0x564f5e[_0xc31e('0x3c')]['path']),'json':_0x55cf55,'resolveWithFullResponse':!![],'encoding':_0x4e02ca,'body':_0x564f5e[_0xc31e('0x98')]};if(_0x564f5e[_0xc31e('0xa6')]){_0x4e5275[_0xc31e('0xa6')]=_0x564f5e[_0xc31e('0xa6')];if(_0x4e5275[_0xc31e('0xa6')][_0xc31e('0xa7')]){delete _0x4e5275[_0xc31e('0xa6')][_0xc31e('0xa7')];}}if(_0x4e5275[_0xc31e('0xa6')][_0xc31e('0xa8')]){delete _0x4e5275[_0xc31e('0xa6')]['content-type'];}return rp(_0x4e5275);})[_0xc31e('0x2e')](function(_0xfbd6fd){if(_0xfbd6fd){_0x18de6b[_0xc31e('0x28')](_0xfbd6fd[_0xc31e('0xa6')]);logger[_0xc31e('0x6a')](_0xfbd6fd[_0xc31e('0x98')]);return _0x18de6b[_0xc31e('0x23')](_0xfbd6fd[_0xc31e('0xaa')])['send'](_0xfbd6fd['body']);}else{return _0x18de6b[_0xc31e('0x22')](0xc8);}})[_0xc31e('0x4f')](handleError(_0x18de6b,null));};
\ No newline at end of file
+var _0xe67e=['include','find','download','join','root','server/files/plugins','format','basename','createWriteStream','zip','warning','code','ENOENT','Error','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','dirname','node_modules/**/*','attachments/**/*','close','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','chmodSync','0777','lstatSync','Invalid\x20plugin\x20structure','isDirectory','readdirSync','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','Invalid\x20manifest:\x20name\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','description','sidebar','always','icon','plugins','Warning:\x20admin\x20view\x20not\x20specified','test','Warning:\x20agent\x20view\x20not\x20specified','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','update','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','%s%s','headers','content-length','content-type','endsWith','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','Plugins','UserProfileResource','sendStatus','error','name','send','index','Plugin','rawAttributes','model','query','keys','filters','intersection','attributes','nolimit','order','sort','where','pick','filter','merge','map','type','VIRTUAL','options','findAll','catch','show','params','fields','length','includeAll'];(function(_0x387edc,_0xcf96c2){var _0x343fec=function(_0x3bf289){while(--_0x3bf289){_0x387edc['push'](_0x387edc['shift']());}};_0x343fec(++_0xcf96c2);}(_0xe67e,0x10e));var _0xee67=function(_0x8b2bd4,_0x215f85){_0x8b2bd4=_0x8b2bd4-0x0;var _0xa74112=_0xe67e[_0x8b2bd4];return _0xa74112;};'use strict';var emlformat=require(_0xee67('0x0'));var rimraf=require(_0xee67('0x1'));var zipdir=require(_0xee67('0x2'));var jsonpatch=require(_0xee67('0x3'));var rp=require('request-promise');var moment=require(_0xee67('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xee67('0x5'));var util=require(_0xee67('0x6'));var path=require(_0xee67('0x7'));var sox=require(_0xee67('0x8'));var csv=require(_0xee67('0x9'));var ejs=require(_0xee67('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xee67('0xb'));var squel=require(_0xee67('0xc'));var crypto=require(_0xee67('0xd'));var jsforce=require(_0xee67('0xe'));var deskjs=require(_0xee67('0xf'));var toCsv=require(_0xee67('0x9'));var querystring=require(_0xee67('0x10'));var Papa=require(_0xee67('0x11'));var extract=require(_0xee67('0x12'));var rimraf=require(_0xee67('0x1'));var archiver=require(_0xee67('0x13'));var Redis=require('ioredis');var authService=require(_0xee67('0x14'));var qs=require(_0xee67('0x15'));var as=require(_0xee67('0x16'));var hardwareService=require(_0xee67('0x17'));var logger=require(_0xee67('0x18'))('api');var utils=require('../../config/utils');var config=require(_0xee67('0x19'));var licenseUtil=require(_0xee67('0x1a'));var db=require(_0xee67('0x1b'))['db'];config['redis']=_[_0xee67('0x1c')](config[_0xee67('0x1d')],{'host':_0xee67('0x1e'),'port':0x18eb});var socket=require(_0xee67('0x1f'))(new Redis(config['redis']));require('./plugin.socket')[_0xee67('0x20')](socket);function respondWithStatusCode(_0x2d8fd4,_0x1a5fd8){_0x1a5fd8=_0x1a5fd8||0xcc;return function(_0x72f7fc){if(_0x72f7fc){return _0x2d8fd4['sendStatus'](_0x1a5fd8);}return _0x2d8fd4[_0xee67('0x21')](_0x1a5fd8)[_0xee67('0x22')]();};}function respondWithResult(_0xe5125b,_0x95621b){_0x95621b=_0x95621b||0xc8;return function(_0x261c81){if(_0x261c81){return _0xe5125b[_0xee67('0x21')](_0x95621b)[_0xee67('0x23')](_0x261c81);}};}function respondWithFilteredResult(_0x46d410,_0x467d0a){return function(_0x1555b4){if(_0x1555b4){var _0x3821a9=typeof _0x467d0a[_0xee67('0x24')]==='undefined'&&typeof _0x467d0a['limit']===_0xee67('0x25');var _0x2908d6=_0x1555b4[_0xee67('0x26')];var _0x2c4834=_0x3821a9?0x0:_0x467d0a[_0xee67('0x24')];var _0xb05491=_0x3821a9?_0x1555b4[_0xee67('0x26')]:_0x467d0a['offset']+_0x467d0a[_0xee67('0x27')];var _0x15d487;if(_0xb05491>=_0x2908d6){_0xb05491=_0x2908d6;_0x15d487=0xc8;}else{_0x15d487=0xce;}_0x46d410['status'](_0x15d487);return _0x46d410[_0xee67('0x28')](_0xee67('0x29'),_0x2c4834+'-'+_0xb05491+'/'+_0x2908d6)['json'](_0x1555b4);}return null;};}function patchUpdates(_0x2f31ff){return function(_0x5add6c){try{jsonpatch[_0xee67('0x2a')](_0x5add6c,_0x2f31ff,!![]);}catch(_0xd0d89d){return BPromise[_0xee67('0x2b')](_0xd0d89d);}return _0x5add6c[_0xee67('0x2c')]();};}function saveUpdates(_0x39b501,_0x387674){return function(_0x5a0b9c){if(_0x5a0b9c){return _0x5a0b9c['update'](_0x39b501)[_0xee67('0x2d')](function(_0x49da1a){return _0x49da1a;});}return null;};}function removeEntity(_0x554f8c,_0x343411){return function(_0x14a625){if(_0x14a625){return _0x14a625[_0xee67('0x2e')]()[_0xee67('0x2d')](function(){var _0x38588a=_0x14a625['get']({'plain':!![]});var _0x50ea24=_0xee67('0x2f');return db[_0xee67('0x30')][_0xee67('0x2e')]({'where':{'type':_0x50ea24,'resourceId':_0x38588a['id']}})[_0xee67('0x2d')](function(){return _0x14a625;});})['then'](function(){_0x554f8c[_0xee67('0x21')](0xcc)[_0xee67('0x22')]();});}};}function handleEntityNotFound(_0x3f9981,_0x41fd98){return function(_0x37796b){if(!_0x37796b){_0x3f9981[_0xee67('0x31')](0x194);}return _0x37796b;};}function handleError(_0x5bd408,_0x1a9cfe){_0x1a9cfe=_0x1a9cfe||0x1f4;return function(_0x3340d0){logger[_0xee67('0x32')](_0x3340d0['stack']);if(_0x3340d0[_0xee67('0x33')]){delete _0x3340d0[_0xee67('0x33')];}_0x5bd408[_0xee67('0x21')](_0x1a9cfe)[_0xee67('0x34')](_0x3340d0);};}exports[_0xee67('0x35')]=function(_0x4c2511,_0xde1b89){var _0x3bcad8={},_0x411a07={},_0x150c61={'count':0x0,'rows':[]};var _0x44f317=_['map'](db[_0xee67('0x36')][_0xee67('0x37')],function(_0x508aaf){return{'name':_0x508aaf['fieldName'],'type':_0x508aaf['type']['key']};});_0x411a07[_0xee67('0x38')]=_['map'](_0x44f317,'name');_0x411a07[_0xee67('0x39')]=_[_0xee67('0x3a')](_0x4c2511[_0xee67('0x39')]);_0x411a07[_0xee67('0x3b')]=_[_0xee67('0x3c')](_0x411a07[_0xee67('0x38')],_0x411a07[_0xee67('0x39')]);_0x3bcad8[_0xee67('0x3d')]=_[_0xee67('0x3c')](_0x411a07[_0xee67('0x38')],qs['fields'](_0x4c2511[_0xee67('0x39')]['fields']));_0x3bcad8[_0xee67('0x3d')]=_0x3bcad8[_0xee67('0x3d')]['length']?_0x3bcad8[_0xee67('0x3d')]:_0x411a07[_0xee67('0x38')];if(!_0x4c2511[_0xee67('0x39')]['hasOwnProperty'](_0xee67('0x3e'))){_0x3bcad8[_0xee67('0x27')]=qs['limit'](_0x4c2511[_0xee67('0x39')][_0xee67('0x27')]);_0x3bcad8[_0xee67('0x24')]=qs[_0xee67('0x24')](_0x4c2511[_0xee67('0x39')][_0xee67('0x24')]);}_0x3bcad8[_0xee67('0x3f')]=qs[_0xee67('0x40')](_0x4c2511['query']['sort']);_0x3bcad8[_0xee67('0x41')]=qs['filters'](_[_0xee67('0x42')](_0x4c2511[_0xee67('0x39')],_0x411a07[_0xee67('0x3b')]),_0x44f317);if(_0x4c2511['query'][_0xee67('0x43')]){_0x3bcad8[_0xee67('0x41')]=_[_0xee67('0x44')](_0x3bcad8[_0xee67('0x41')],{'$or':_[_0xee67('0x45')](_0x44f317,function(_0x3e9911){if(_0x3e9911[_0xee67('0x46')]!==_0xee67('0x47')){var _0x55e932={};_0x55e932[_0x3e9911[_0xee67('0x33')]]={'$like':'%'+_0x4c2511[_0xee67('0x39')][_0xee67('0x43')]+'%'};return _0x55e932;}})});}_0x3bcad8=_[_0xee67('0x44')]({},_0x3bcad8,_0x4c2511[_0xee67('0x48')]);var _0x125d4e={'where':_0x3bcad8['where']};return db[_0xee67('0x36')][_0xee67('0x26')](_0x125d4e)[_0xee67('0x2d')](function(_0x2962a5){_0x150c61[_0xee67('0x26')]=_0x2962a5;if(_0x4c2511['query']['includeAll']){_0x3bcad8['include']=[{'all':!![]}];}return db[_0xee67('0x36')][_0xee67('0x49')](_0x3bcad8);})[_0xee67('0x2d')](function(_0x578a10){_0x150c61['rows']=_0x578a10;return _0x150c61;})[_0xee67('0x2d')](respondWithFilteredResult(_0xde1b89,_0x3bcad8))[_0xee67('0x4a')](handleError(_0xde1b89,null));};exports[_0xee67('0x4b')]=function(_0x5965df,_0x1e0768){var _0xd8495b={'raw':!![],'where':{'id':_0x5965df[_0xee67('0x4c')]['id']}},_0x3f5310={};_0x3f5310[_0xee67('0x38')]=_['keys'](db[_0xee67('0x36')][_0xee67('0x37')]);_0x3f5310['query']=_[_0xee67('0x3a')](_0x5965df[_0xee67('0x39')]);_0x3f5310[_0xee67('0x3b')]=_[_0xee67('0x3c')](_0x3f5310[_0xee67('0x38')],_0x3f5310[_0xee67('0x39')]);_0xd8495b[_0xee67('0x3d')]=_['intersection'](_0x3f5310[_0xee67('0x38')],qs[_0xee67('0x4d')](_0x5965df[_0xee67('0x39')][_0xee67('0x4d')]));_0xd8495b[_0xee67('0x3d')]=_0xd8495b[_0xee67('0x3d')][_0xee67('0x4e')]?_0xd8495b[_0xee67('0x3d')]:_0x3f5310[_0xee67('0x38')];if(_0x5965df[_0xee67('0x39')][_0xee67('0x4f')]){_0xd8495b[_0xee67('0x50')]=[{'all':!![]}];}_0xd8495b=_[_0xee67('0x44')]({},_0xd8495b,_0x5965df[_0xee67('0x48')]);return db[_0xee67('0x36')][_0xee67('0x51')](_0xd8495b)[_0xee67('0x2d')](handleEntityNotFound(_0x1e0768,null))[_0xee67('0x2d')](respondWithResult(_0x1e0768,null))[_0xee67('0x4a')](handleError(_0x1e0768,null));};exports[_0xee67('0x52')]=function(_0x153ab3,_0x523d01,_0x3c8511){return db[_0xee67('0x36')][_0xee67('0x51')]({'where':{'id':_0x153ab3[_0xee67('0x4c')]['id']},'attributes':[_0xee67('0x33'),'path'],'raw':!![]})[_0xee67('0x2d')](handleEntityNotFound(_0x523d01,null))['then'](function(_0x1d6c30){if(_0x1d6c30){var _0x1af0de=path[_0xee67('0x53')](config[_0xee67('0x54')],_0xee67('0x55'),util[_0xee67('0x56')]('%s.zip',path[_0xee67('0x57')](_0x1d6c30[_0xee67('0x7')])));var _0x2238f5=fs[_0xee67('0x58')](_0x1af0de);var _0x1a0271=archiver(_0xee67('0x59'),{'zlib':{'level':0x9}});_0x1a0271['on'](_0xee67('0x5a'),function(_0x43286c){if(_0x43286c[_0xee67('0x5b')]===_0xee67('0x5c')){logger[_0xee67('0x32')](_0x43286c);}else{throw new db['Sequelize'][(_0xee67('0x5d'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x1a0271['on'](_0xee67('0x32'),function(_0x7bbb5f){throw new db[(_0xee67('0x5e'))]['Error'](_0xee67('0x5f'));});_0x1a0271[_0xee67('0x60')](_0x2238f5);_0x1a0271[_0xee67('0x61')](_0xee67('0x62'),{'cwd':path['join'](config[_0xee67('0x54')],_0xee67('0x55'),path[_0xee67('0x63')](_0x1d6c30[_0xee67('0x7')])),'ignore':[path[_0xee67('0x53')](path['basename'](_0x1d6c30[_0xee67('0x7')]),_0xee67('0x64')),path[_0xee67('0x53')](path[_0xee67('0x57')](_0x1d6c30[_0xee67('0x7')]),_0xee67('0x65'))],'nodir':!![]})['finalize']();_0x2238f5['on'](_0xee67('0x66'),function(){if(!fs[_0xee67('0x67')](_0x1af0de)){throw new db[(_0xee67('0x5e'))]['Error'](_0xee67('0x68'));}return _0x523d01['download'](_0x1af0de,util['format']('%s.zip',path['basename'](_0x1d6c30[_0xee67('0x7')])),function(_0x451553){if(_0x451553){throw new db['Sequelize'][(_0xee67('0x5d'))](_0xee67('0x69'));}fs[_0xee67('0x6a')](_0x1af0de);logger[_0xee67('0x6b')](_0xee67('0x6c'));logger['info'](_0xee67('0x6d'));});});}return null;})[_0xee67('0x4a')](handleError(_0x523d01,null));};exports[_0xee67('0x6e')]=function(_0x50fcbe,_0x4ef0d8,_0x42f89f){var _0x5407be=path['basename'](_0x50fcbe[_0xee67('0x6f')][_0xee67('0x70')],path[_0xee67('0x71')](_0x50fcbe[_0xee67('0x6f')][_0xee67('0x70')]));var _0x41300b=path['join'](config[_0xee67('0x54')],'server/files/plugins',_0x50fcbe[_0xee67('0x6f')][_0xee67('0x70')]);var _0x29e906=path[_0xee67('0x53')](config[_0xee67('0x54')],'server/files/plugins',_0x5407be);logger[_0xee67('0x6b')](_0xee67('0x72'),_0x41300b);logger[_0xee67('0x6b')]('Plugin\x20upload\x20destination:\x20%s',_0x29e906);try{fs[_0xee67('0x73')](_0x41300b,parseInt(_0xee67('0x74'),0x8));extract(_0x41300b,{'dir':_0x29e906},function(_0x34eda9){if(_0x34eda9){logger[_0xee67('0x32')](_0x34eda9);handleError(_0x34eda9,!![]);};var _0x273f4a=fs['readdirSync'](_0x29e906);if(_0x273f4a[_0xee67('0x4e')]>0x1){removeReferences(_0x41300b,_0x29e906);logger[_0xee67('0x32')]('Invalid\x20plugin\x20structure');return _0x42f89f(new Error('Invalid\x20plugin\x20structure'));}var _0x231ed9=fs[_0xee67('0x75')](path[_0xee67('0x53')](_0x29e906,_0x273f4a[0x0]));if(_0x231ed9['isFile']()){removeReferences(_0x41300b,_0x29e906);logger['error'](_0xee67('0x76'));return _0x42f89f(new Error(_0xee67('0x76')));}if(_0x231ed9[_0xee67('0x77')]()){var _0x32ef3c=fs[_0xee67('0x78')](path['join'](_0x29e906,_0x273f4a[0x0]));if(_0x32ef3c['length']===0x0){removeReferences(_0x41300b,_0x29e906);logger[_0xee67('0x32')](_0xee67('0x76'));return _0x42f89f(new Error('Invalid\x20plugin\x20structure'));}var _0x3f2dc8=_0x32ef3c[_0xee67('0x79')](function(_0x50cfca){return _0x50cfca===_0xee67('0x7a');});if(!_0x3f2dc8){return _0x42f89f(new Error(_0xee67('0x7b')));}var _0x5080ad=fs[_0xee67('0x7c')](path['join'](_0x29e906,_0x273f4a[0x0],_0xee67('0x7a')));var _0x54231=JSON['parse'](_0x5080ad);if(_0xee67('0x25')==typeof _0x54231[_0xee67('0x33')]){return _0x42f89f(new Error(_0xee67('0x7d')));}if(_0xee67('0x25')==typeof _0x54231['type']){return _0x42f89f(new Error('Invalid\x20manifest:\x20type\x20missing'));}if('undefined'==typeof _0x54231[_0xee67('0x7e')]){return _0x42f89f(new Error(_0xee67('0x7f')));}if(_0xee67('0x25')==typeof _0x54231[_0xee67('0x80')]){return _0x42f89f(new Error(_0xee67('0x81')));}if(_0x54231[_0xee67('0x46')]===_0xee67('0x82')){if('undefined'==typeof _0x54231[_0xee67('0x80')][_0xee67('0x83')]){return _0x42f89f(new Error(_0xee67('0x84')));}if(_0xee67('0x25')==typeof _0x54231[_0xee67('0x80')][_0xee67('0x83')][_0xee67('0x85')]&&_0xee67('0x25')==typeof _0x54231[_0xee67('0x80')][_0xee67('0x83')][_0xee67('0x86')]){return _0x42f89f(new Error(_0xee67('0x87')));}}else if(_0x54231['type']===_0xee67('0x88')){if(_0xee67('0x25')==typeof _0x54231[_0xee67('0x80')][_0xee67('0x89')]){return _0x42f89f(new Error(_0xee67('0x8a')));}if('undefined'==typeof _0x54231[_0xee67('0x80')][_0xee67('0x8b')]){return _0x42f89f(new Error(_0xee67('0x8c')));}}else{return _0x42f89f(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x203e06=_0x54231[_0xee67('0x33')];var _0x458cee=_0x54231[_0xee67('0x8d')];var _0x4d308d=_0x54231[_0xee67('0x46')];var _0x2c8ec9=_0x54231[_0xee67('0x8e')]?_0x54231[_0xee67('0x8e')]:_0xee67('0x8f');var _0x456b98=_0x54231[_0xee67('0x90')]?_0x54231[_0xee67('0x90')]:'icon-apps';var _0x144a22='';var _0x35e4e0='';var _0x3c3e41='';var _0x373264='';var _0xf564e7=_0x54231[_0xee67('0x7e')];if(_0x4d308d===_0xee67('0x82')){if('undefined'!=typeof _0x54231[_0xee67('0x80')][_0xee67('0x83')]['admin']){var _0x5cb250=_0x54231[_0xee67('0x80')]['views'][_0xee67('0x85')];if(!/^(f|ht)tps?:\/\//i['test'](_0x5cb250)){_0x144a22=path[_0xee67('0x53')](_0xee67('0x91'),_0x5407be,_0x273f4a[0x0],_0x5cb250);}else{_0x144a22=_0x5cb250;}}else{logger[_0xee67('0x6b')](_0xee67('0x92'));}if('undefined'!=typeof _0x54231[_0xee67('0x80')][_0xee67('0x83')][_0xee67('0x86')]){var _0x1dc316=_0x54231[_0xee67('0x80')][_0xee67('0x83')][_0xee67('0x86')];if(!/^(f|ht)tps?:\/\//i[_0xee67('0x93')](_0x1dc316)){_0x35e4e0=path[_0xee67('0x53')]('plugins',_0x5407be,_0x273f4a[0x0],_0x1dc316);}else{_0x35e4e0=_0x1dc316;}}else{logger[_0xee67('0x6b')](_0xee67('0x94'));}}else if(_0x4d308d===_0xee67('0x88')){_0x3c3e41=_0x54231[_0xee67('0x80')][_0xee67('0x89')];_0x373264=_0x54231['parameters']['scriptPath'];if(_0xee67('0x25')!=typeof _0x54231['parameters'][_0xee67('0x83')]){if('undefined'!=typeof _0x54231[_0xee67('0x80')][_0xee67('0x83')][_0xee67('0x85')]){var _0x5cb250=_0x54231[_0xee67('0x80')][_0xee67('0x83')][_0xee67('0x85')];if(!/^(f|ht)tps?:\/\//i[_0xee67('0x93')](_0x5cb250)){_0x144a22=path[_0xee67('0x53')](_0xee67('0x91'),_0x5407be,_0x273f4a[0x0],_0x5cb250);}else{_0x144a22=_0x5cb250;}}if(_0xee67('0x25')!=typeof _0x54231[_0xee67('0x80')][_0xee67('0x83')]['agent']){var _0x1dc316=_0x54231['parameters'][_0xee67('0x83')][_0xee67('0x86')];if(!/^(f|ht)tps?:\/\//i['test'](_0x1dc316)){_0x35e4e0=path[_0xee67('0x53')](_0xee67('0x91'),_0x5407be,_0x273f4a[0x0],_0x1dc316);}else{_0x35e4e0=_0x1dc316;}}}}var _0x4642a3={'name':_0x203e06,'description':_0x458cee,'path':path[_0xee67('0x53')](_0x5407be,_0x273f4a[0x0]),'type':_0x4d308d,'sidebar':_0x2c8ec9,'icon':_0x456b98,'adminUrl':_0x144a22,'agentUrl':_0x35e4e0,'scriptName':_0x3c3e41,'scriptPath':_0x373264,'version':_0xf564e7};removeReferences(_0x41300b,null);return db[_0xee67('0x36')][_0xee67('0x95')](_0x4642a3)[_0xee67('0x2d')](function(_0x466c07){var _0x373b3c={'role':_0x50fcbe[_0xee67('0x96')][_0xee67('0x97')],'userProfileId':_0x50fcbe['body'][_0xee67('0x98')]};if(!_0x373b3c)throw new Error(_0xee67('0x99'));if(_0x373b3c[_0xee67('0x97')]===_0xee67('0x9a')){var _0x3fd82e=_0x466c07['get']({'plain':!![]});return db[_0xee67('0x9b')][_0xee67('0x51')]({'where':{'name':_0xee67('0x2f'),'userProfileId':_0x373b3c[_0xee67('0x98')]},'raw':!![]})[_0xee67('0x2d')](function(_0x35e306){if(_0x35e306&&_0x35e306[_0xee67('0x9c')]===0x0){return db[_0xee67('0x30')]['create']({'name':_0x3fd82e['name'],'resourceId':_0x3fd82e['id'],'type':_0x35e306['name'],'sectionId':_0x35e306['id']},{})[_0xee67('0x2d')](function(){return _0x466c07;});}else{return _0x466c07;}})[_0xee67('0x4a')](function(_0x4f77c1){logger[_0xee67('0x32')](_0xee67('0x9d'),_0x4f77c1);throw _0x4f77c1;});}return _0x466c07;})[_0xee67('0x2d')](respondWithResult(_0x4ef0d8,null))[_0xee67('0x4a')](handleError(_0x4ef0d8,null));}});}catch(_0x3981e4){_0x4ef0d8[_0xee67('0x21')](0x1f4)[_0xee67('0x34')](_0x3981e4);}};function removeReferences(_0xd02535,_0x308b00){try{if(_0xd02535){fs['unlinkSync'](_0xd02535);logger[_0xee67('0x6b')](_0xee67('0x9e'));}if(_0x308b00){rimraf(_0x308b00,function(){});logger[_0xee67('0x6b')](_0xee67('0x9f'));}}catch(_0x1d6970){logger[_0xee67('0x32')](_0x1d6970);}}exports[_0xee67('0xa0')]=function(_0x21ccdb,_0x580a4f,_0x2e448d){return db[_0xee67('0x36')][_0xee67('0x51')]({'where':{'id':_0x21ccdb[_0xee67('0x4c')]['id']}})[_0xee67('0x2d')](handleEntityNotFound(_0x580a4f,null))['then'](saveUpdates(_0x21ccdb[_0xee67('0x96')],null))['then'](respondWithResult(_0x580a4f,null))[_0xee67('0x4a')](handleError(_0x580a4f,null));};exports['delete']=function(_0x31dd46,_0x308b4c,_0x584611){return db[_0xee67('0x36')]['find']({'where':{'id':_0x31dd46[_0xee67('0x4c')]['id']}})[_0xee67('0x2d')](function(_0x1bc5d3){if(_0x1bc5d3){return _0x1bc5d3[_0xee67('0x2e')]();}})[_0xee67('0x2d')](function(_0xa0502b){rimraf(path[_0xee67('0x53')](config[_0xee67('0x54')],_0xee67('0x55'),path[_0xee67('0x63')](_0xa0502b['path'])),function(){});return _0xa0502b;})['then'](handleEntityNotFound(_0x308b4c,null))[_0xee67('0x2d')](respondWithStatusCode(_0x308b4c,null))['catch'](handleError(_0x308b4c,null));};exports[_0xee67('0xa1')]=function(_0x1e3fe7,_0x2dc604,_0x4576e1){return BPromise[_0xee67('0xa2')]()['then'](function(){if(!_0x1e3fe7[_0xee67('0x39')]['path']){throw new Error(_0xee67('0xa3'));}if(!_0x1e3fe7['query'][_0xee67('0xa4')]){throw new Error(_0xee67('0xa5'));}var _0x98d8ea=_0x1e3fe7[_0xee67('0x39')][_0xee67('0xa6')]?_0x1e3fe7['query'][_0xee67('0xa6')]+':'+_0x1e3fe7[_0xee67('0x39')][_0xee67('0xa4')]:_0xee67('0xa7')+_0x1e3fe7[_0xee67('0x39')][_0xee67('0xa4')];var _0x21bf1b=_0x1e3fe7['query'][_0xee67('0x23')]?_0x1e3fe7['query'][_0xee67('0x23')]:!![];var _0x5de14f=_0x1e3fe7[_0xee67('0x39')][_0xee67('0xa8')]?_0x1e3fe7[_0xee67('0x39')][_0xee67('0xa8')]:null;var _0x5b1ab5={'method':_0x1e3fe7['method'],'uri':util[_0xee67('0x56')](_0xee67('0xa9'),_0x98d8ea,_0x1e3fe7[_0xee67('0x39')][_0xee67('0x7')]),'json':_0x21bf1b,'resolveWithFullResponse':!![],'encoding':_0x5de14f,'qs':_0x1e3fe7[_0xee67('0x39')]};if(_0x1e3fe7[_0xee67('0xaa')]){_0x5b1ab5[_0xee67('0xaa')]=_0x1e3fe7[_0xee67('0xaa')];if(_0x5b1ab5[_0xee67('0xaa')]['content-length']){delete _0x5b1ab5[_0xee67('0xaa')][_0xee67('0xab')];}}if(_0x5b1ab5['headers'][_0xee67('0xac')]){delete _0x5b1ab5['headers'][_0xee67('0xac')];}return rp(_0x5b1ab5);})[_0xee67('0x2d')](function(_0x364e32){if(_0x364e32){_0x2dc604[_0xee67('0x28')](_0x364e32[_0xee67('0xaa')]);logger[_0xee67('0x6b')](_0x364e32[_0xee67('0x96')]);if(_[_0xee67('0xad')](_0x1e3fe7[_0xee67('0x39')]['path'],_0xee67('0x52'))&&_0x364e32[_0xee67('0xae')]==0x1f4){return _0x2dc604[_0xee67('0x31')](_0x364e32[_0xee67('0xae')]);}else{return _0x2dc604[_0xee67('0x21')](_0x364e32['statusCode'])[_0xee67('0x34')](_0x364e32['body']);}}else{return _0x2dc604[_0xee67('0x31')](0xc8);}})[_0xee67('0x4a')](handleError(_0x2dc604,null));};exports['webhookPost']=function(_0x2e5d5b,_0x29c881,_0x92f927){return BPromise[_0xee67('0xa2')]()[_0xee67('0x2d')](function(){if(!_0x2e5d5b[_0xee67('0x39')][_0xee67('0x7')]){throw new Error(_0xee67('0xa3'));}if(!_0x2e5d5b[_0xee67('0x39')][_0xee67('0xa4')]){throw new Error(_0xee67('0xa5'));}var _0x244cbd=_0x2e5d5b[_0xee67('0x39')][_0xee67('0xa6')]?_0x2e5d5b[_0xee67('0x39')][_0xee67('0xa6')]+':'+_0x2e5d5b[_0xee67('0x39')][_0xee67('0xa4')]:_0xee67('0xa7')+_0x2e5d5b['query'][_0xee67('0xa4')];var _0xd9c9d8=_0x2e5d5b[_0xee67('0x39')][_0xee67('0x23')]?_0x2e5d5b[_0xee67('0x39')][_0xee67('0x23')]:!![];var _0x1df193=_0x2e5d5b[_0xee67('0x39')][_0xee67('0xa8')]?_0x2e5d5b[_0xee67('0x39')][_0xee67('0xa8')]:null;var _0x34b175={'method':_0x2e5d5b['method'],'uri':util[_0xee67('0x56')](_0xee67('0xa9'),_0x244cbd,_0x2e5d5b[_0xee67('0x39')][_0xee67('0x7')]),'json':_0xd9c9d8,'resolveWithFullResponse':!![],'encoding':_0x1df193,'body':_0x2e5d5b[_0xee67('0x96')]};if(_0x2e5d5b[_0xee67('0xaa')]){_0x34b175[_0xee67('0xaa')]=_0x2e5d5b[_0xee67('0xaa')];if(_0x34b175['headers'][_0xee67('0xab')]){delete _0x34b175[_0xee67('0xaa')][_0xee67('0xab')];}}if(_0x34b175[_0xee67('0xaa')][_0xee67('0xac')]){delete _0x34b175[_0xee67('0xaa')][_0xee67('0xac')];}return rp(_0x34b175);})['then'](function(_0x3e2406){if(_0x3e2406){_0x29c881['set'](_0x3e2406['headers']);logger[_0xee67('0x6b')](_0x3e2406[_0xee67('0x96')]);return _0x29c881[_0xee67('0x21')](_0x3e2406['statusCode'])[_0xee67('0x34')](_0x3e2406[_0xee67('0x96')]);}else{return _0x29c881[_0xee67('0x31')](0xc8);}})[_0xee67('0x4a')](handleError(_0x29c881,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0650=['events','../../mysqldb','Plugin','setMaxListeners','update','hasOwnProperty'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x0650,0x1aa));var _0x0065=function(_0x1e1f74,_0x190226){_0x1e1f74=_0x1e1f74-0x0;var _0x54139e=_0x0650[_0x1e1f74];return _0x54139e;};'use strict';var EventEmitter=require(_0x0065('0x0'));var Plugin=require(_0x0065('0x1'))['db'][_0x0065('0x2')];var PluginEvents=new EventEmitter();PluginEvents[_0x0065('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x0065('0x4'),'afterDestroy':'remove'};function emitEvent(_0x49a595){return function(_0x1798d6,_0xe2785,_0x185c29){PluginEvents['emit'](_0x49a595+':'+_0x1798d6['id'],_0x1798d6);PluginEvents['emit'](_0x49a595,_0x1798d6);_0x185c29(null);};}for(var e in events){if(events[_0x0065('0x5')](e)){var event=events[e];Plugin['hook'](e,emitEvent(event));}}module['exports']=PluginEvents;
\ No newline at end of file
+var _0xb7ae=['events','../../mysqldb','Plugin','setMaxListeners','save','remove','emit','hasOwnProperty','hook'];(function(_0x1cbc68,_0x321c42){var _0x4e8d71=function(_0x1f9389){while(--_0x1f9389){_0x1cbc68['push'](_0x1cbc68['shift']());}};_0x4e8d71(++_0x321c42);}(_0xb7ae,0xf3));var _0xeb7a=function(_0x4baa58,_0x745a92){_0x4baa58=_0x4baa58-0x0;var _0x3d2b2f=_0xb7ae[_0x4baa58];return _0x3d2b2f;};'use strict';var EventEmitter=require(_0xeb7a('0x0'));var Plugin=require(_0xeb7a('0x1'))['db'][_0xeb7a('0x2')];var PluginEvents=new EventEmitter();PluginEvents[_0xeb7a('0x3')](0x0);var events={'afterCreate':_0xeb7a('0x4'),'afterUpdate':'update','afterDestroy':_0xeb7a('0x5')};function emitEvent(_0x242a47){return function(_0x44ce73,_0x51e0af,_0x277b5d){PluginEvents[_0xeb7a('0x6')](_0x242a47+':'+_0x44ce73['id'],_0x44ce73);PluginEvents[_0xeb7a('0x6')](_0x242a47,_0x44ce73);_0x277b5d(null);};}for(var e in events){if(events[_0xeb7a('0x7')](e)){var event=events[e];Plugin[_0xeb7a('0x8')](e,emitEvent(event));}}module['exports']=PluginEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7564=['lodash','moment','request-promise','path','rimraf','../../config/environment','./plugin.attributes','define','Plugin','plugins'];(function(_0x10ecfc,_0x391624){var _0x1ab2bd=function(_0x47ed00){while(--_0x47ed00){_0x10ecfc['push'](_0x10ecfc['shift']());}};_0x1ab2bd(++_0x391624);}(_0x7564,0xaa));var _0x4756=function(_0x58afd5,_0x534a48){_0x58afd5=_0x58afd5-0x0;var _0x3e503b=_0x7564[_0x58afd5];return _0x3e503b;};'use strict';var _=require(_0x4756('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x4756('0x1'));var BPromise=require('bluebird');var rp=require(_0x4756('0x2'));var fs=require('fs');var path=require(_0x4756('0x3'));var rimraf=require(_0x4756('0x4'));var config=require(_0x4756('0x5'));var attributes=require(_0x4756('0x6'));module['exports']=function(_0x2ea0e6,_0x5bd7fd){return _0x2ea0e6[_0x4756('0x7')](_0x4756('0x8'),attributes,{'tableName':_0x4756('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4016=['../../config/logger','request-promise','rimraf','../../config/environment','Plugin','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4016,0x131));var _0x6401=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x4016[_0xa464c9];return _0x3d73c4;};'use strict';var _=require('lodash');var util=require(_0x6401('0x0'));var logger=require(_0x6401('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x6401('0x2'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6401('0x3'));var config=require(_0x6401('0x4'));var attributes=require('./plugin.attributes');module['exports']=function(_0x3e2c0b,_0x34c7f2){return _0x3e2c0b['define'](_0x6401('0x5'),attributes,{'tableName':'plugins','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2d8=['message','result','catch','Plugin','create','body','options','raw','CreatePlugin','debug','stringify','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','client','http','redis','localhost','socket.io-emitter','register','then','info','request\x20sent','Plugin,\x20%s,\x20%s,\x20%s','error','code','Plugin,\x20%s,\x20%s'];(function(_0x525d37,_0x1ed9d8){var _0x382c76=function(_0x171b7a){while(--_0x171b7a){_0x525d37['push'](_0x525d37['shift']());}};_0x382c76(++_0x1ed9d8);}(_0xf2d8,0x122));var _0x8f2d=function(_0x4d7f3f,_0x4d2803){_0x4d7f3f=_0x4d7f3f-0x0;var _0x5d67cc=_0xf2d8[_0x4d7f3f];return _0x5d67cc;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x8f2d('0x0'));var BPromise=require(_0x8f2d('0x1'));var rs=require(_0x8f2d('0x2'));var fs=require('fs');var Redis=require(_0x8f2d('0x3'));var db=require(_0x8f2d('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x8f2d('0x5'))('rpc');var config=require(_0x8f2d('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x8f2d('0x7')][_0x8f2d('0x8')]({'port':0x232a});config[_0x8f2d('0x9')]=_['defaults'](config[_0x8f2d('0x9')],{'host':_0x8f2d('0xa'),'port':0x18eb});var socket=require(_0x8f2d('0xb'))(new Redis(config[_0x8f2d('0x9')]));require('./plugin.socket')[_0x8f2d('0xc')](socket);function respondWithRpcPromise(_0x4c5d5e,_0x7faa16,_0x683c0e){return new BPromise(function(_0x53c3c6,_0x305bda){return client['request'](_0x4c5d5e,_0x683c0e)[_0x8f2d('0xd')](function(_0x1ecb2e){logger[_0x8f2d('0xe')]('Plugin,\x20%s,\x20%s',_0x7faa16,_0x8f2d('0xf'));logger['debug'](_0x8f2d('0x10'),_0x7faa16,_0x8f2d('0xf'),JSON['stringify'](_0x1ecb2e));if(_0x1ecb2e[_0x8f2d('0x11')]){if(_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x12')]===0x1f4){logger[_0x8f2d('0x11')](_0x8f2d('0x13'),_0x7faa16,_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);return _0x305bda(_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);}logger[_0x8f2d('0x11')](_0x8f2d('0x13'),_0x7faa16,_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);return _0x53c3c6(_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);}else{logger['info'](_0x8f2d('0x13'),_0x7faa16,_0x8f2d('0xf'));_0x53c3c6(_0x1ecb2e[_0x8f2d('0x15')][_0x8f2d('0x14')]);}})[_0x8f2d('0x16')](function(_0xe9a13a){logger[_0x8f2d('0x11')]('Plugin,\x20%s,\x20%s',_0x7faa16,_0xe9a13a);_0x305bda(_0xe9a13a);});});}exports['CreatePlugin']=function(_0x39dd01){var _0x2fb9a8=this;return new Promise(function(_0x2bffac,_0x1c6896){return db[_0x8f2d('0x17')][_0x8f2d('0x18')](_0x39dd01[_0x8f2d('0x19')],{'raw':_0x39dd01[_0x8f2d('0x1a')]?_0x39dd01[_0x8f2d('0x1a')][_0x8f2d('0x1b')]===undefined?!![]:![]:!![]})[_0x8f2d('0xd')](function(_0xbf9fa0){logger['info'](_0x8f2d('0x1c'),_0x39dd01);logger[_0x8f2d('0x1d')](_0x8f2d('0x1c'),_0x39dd01,JSON[_0x8f2d('0x1e')](_0xbf9fa0));_0x2bffac(_0xbf9fa0);})['catch'](function(_0x342665){logger[_0x8f2d('0x11')](_0x8f2d('0x1c'),_0x342665[_0x8f2d('0x14')],_0x39dd01);_0x1c6896(_0x2fb9a8[_0x8f2d('0x11')](0x1f4,_0x342665[_0x8f2d('0x14')]));});});};
\ No newline at end of file
+var _0x7d01=['result','catch','CreatePlugin','Plugin','create','options','raw','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','./plugin.socket','register','request','then','info','Plugin,\x20%s,\x20%s','request\x20sent','debug','Plugin,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x2d9094,_0x340ad4){var _0x9fe76e=function(_0x1f906f){while(--_0x1f906f){_0x2d9094['push'](_0x2d9094['shift']());}};_0x9fe76e(++_0x340ad4);}(_0x7d01,0x97));var _0x17d0=function(_0x3dc77c,_0x5c766c){_0x3dc77c=_0x3dc77c-0x0;var _0x141af2=_0x7d01[_0x3dc77c];return _0x141af2;};'use strict';var _=require(_0x17d0('0x0'));var util=require('util');var moment=require(_0x17d0('0x1'));var BPromise=require(_0x17d0('0x2'));var rs=require(_0x17d0('0x3'));var fs=require('fs');var Redis=require(_0x17d0('0x4'));var db=require(_0x17d0('0x5'))['db'];var utils=require(_0x17d0('0x6'));var logger=require(_0x17d0('0x7'))(_0x17d0('0x8'));var config=require(_0x17d0('0x9'));var jayson=require(_0x17d0('0xa'));var client=jayson[_0x17d0('0xb')][_0x17d0('0xc')]({'port':0x232a});config['redis']=_[_0x17d0('0xd')](config[_0x17d0('0xe')],{'host':_0x17d0('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x17d0('0xe')]));require(_0x17d0('0x10'))[_0x17d0('0x11')](socket);function respondWithRpcPromise(_0x1df1c4,_0x233703,_0x48de5b){return new BPromise(function(_0x496d34,_0x9e658d){return client[_0x17d0('0x12')](_0x1df1c4,_0x48de5b)[_0x17d0('0x13')](function(_0xc050c8){logger[_0x17d0('0x14')](_0x17d0('0x15'),_0x233703,_0x17d0('0x16'));logger[_0x17d0('0x17')](_0x17d0('0x18'),_0x233703,_0x17d0('0x16'),JSON[_0x17d0('0x19')](_0xc050c8));if(_0xc050c8[_0x17d0('0x1a')]){if(_0xc050c8[_0x17d0('0x1a')][_0x17d0('0x1b')]===0x1f4){logger['error'](_0x17d0('0x15'),_0x233703,_0xc050c8[_0x17d0('0x1a')][_0x17d0('0x1c')]);return _0x9e658d(_0xc050c8[_0x17d0('0x1a')]['message']);}logger['error']('Plugin,\x20%s,\x20%s',_0x233703,_0xc050c8[_0x17d0('0x1a')][_0x17d0('0x1c')]);return _0x496d34(_0xc050c8[_0x17d0('0x1a')]['message']);}else{logger['info'](_0x17d0('0x15'),_0x233703,_0x17d0('0x16'));_0x496d34(_0xc050c8[_0x17d0('0x1d')][_0x17d0('0x1c')]);}})[_0x17d0('0x1e')](function(_0xb2dba){logger[_0x17d0('0x1a')](_0x17d0('0x15'),_0x233703,_0xb2dba);_0x9e658d(_0xb2dba);});});}exports[_0x17d0('0x1f')]=function(_0xff4436){var _0x432ffe=this;return new Promise(function(_0x89b614,_0x2667af){return db[_0x17d0('0x20')][_0x17d0('0x21')](_0xff4436['body'],{'raw':_0xff4436[_0x17d0('0x22')]?_0xff4436['options'][_0x17d0('0x23')]===undefined?!![]:![]:!![]})[_0x17d0('0x13')](function(_0x52daf0){logger[_0x17d0('0x14')](_0x17d0('0x1f'),_0xff4436);logger[_0x17d0('0x17')](_0x17d0('0x1f'),_0xff4436,JSON[_0x17d0('0x19')](_0x52daf0));_0x89b614(_0x52daf0);})[_0x17d0('0x1e')](function(_0x41dc3d){logger[_0x17d0('0x1a')](_0x17d0('0x1f'),_0x41dc3d[_0x17d0('0x1c')],_0xff4436);_0x2667af(_0x432ffe[_0x17d0('0x1a')](0x1f4,_0x41dc3d[_0x17d0('0x1c')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb97=['./plugin.events','save','remove','update','emit','removeListener','register','plugin:'];(function(_0x7adde7,_0x21459f){var _0x4db008=function(_0x5f44ab){while(--_0x5f44ab){_0x7adde7['push'](_0x7adde7['shift']());}};_0x4db008(++_0x21459f);}(_0xcb97,0xf8));var _0x7cb9=function(_0x4ca764,_0x572b2a){_0x4ca764=_0x4ca764-0x0;var _0x39292d=_0xcb97[_0x4ca764];return _0x39292d;};'use strict';var PluginEvents=require(_0x7cb9('0x0'));var events=[_0x7cb9('0x1'),_0x7cb9('0x2'),_0x7cb9('0x3')];function createListener(_0x44eafd,_0x55a402){return function(_0x7fb752){_0x55a402[_0x7cb9('0x4')](_0x44eafd,_0x7fb752);};}function removeListener(_0x1dd687,_0x9fcbad){return function(){PluginEvents[_0x7cb9('0x5')](_0x1dd687,_0x9fcbad);};}exports[_0x7cb9('0x6')]=function(_0x53f707){for(var _0x55def2=0x0,_0x597237=events['length'];_0x55def2<_0x597237;_0x55def2++){var _0xb61ec4=events[_0x55def2];var _0x23119a=createListener(_0x7cb9('0x7')+_0xb61ec4,_0x53f707);PluginEvents['on'](_0xb61ec4,_0x23119a);}};
\ No newline at end of file
+var _0x432c=['length','plugin:','save','update','emit'];(function(_0x138208,_0x140722){var _0x4f93b5=function(_0x1df020){while(--_0x1df020){_0x138208['push'](_0x138208['shift']());}};_0x4f93b5(++_0x140722);}(_0x432c,0x1e2));var _0xc432=function(_0x48e20a,_0x46960b){_0x48e20a=_0x48e20a-0x0;var _0x21c32a=_0x432c[_0x48e20a];return _0x21c32a;};'use strict';var PluginEvents=require('./plugin.events');var events=[_0xc432('0x0'),'remove',_0xc432('0x1')];function createListener(_0x4f86eb,_0x5ede22){return function(_0x3ff0bb){_0x5ede22[_0xc432('0x2')](_0x4f86eb,_0x3ff0bb);};}function removeListener(_0x1762c6,_0x1c6d23){return function(){PluginEvents['removeListener'](_0x1762c6,_0x1c6d23);};}exports['register']=function(_0x5327a5){for(var _0x269cd1=0x0,_0x2643da=events[_0xc432('0x3')];_0x269cd1<_0x2643da;_0x269cd1++){var _0x3c7022=events[_0x269cd1];var _0x22fe09=createListener(_0xc432('0x4')+_0x3c7022,_0x5327a5);PluginEvents['on'](_0x3c7022,_0x22fe09);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x5d70ed,_0x35a2a3){var _0x4fc0b9=function(_0x5c2e2d){while(--_0x5c2e2d){_0x5d70ed['push'](_0x5d70ed['shift']());}};_0x4fc0b9(++_0x35a2a3);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2f3848,_0x48564d){_0x2f3848=_0x2f3848-0x0;var _0x102668=_0xa9e0[_0x2f3848];return _0x102668;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
+var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x4c68d4,_0x3ae3d4){var _0xe9fb5d=function(_0x3a93de){while(--_0x3a93de){_0x4c68d4['push'](_0x4c68d4['shift']());}};_0xe9fb5d(++_0x3ae3d4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x30ae5e,_0x391fc4){_0x30ae5e=_0x30ae5e-0x0;var _0x1f2e93=_0xa9e0[_0x30ae5e];return _0x1f2e93;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['list','then','reject','express','motion2','catch','describe','params','create','body','script','join','../../files/plugins','chdir','dirname','start','dump','Missing\x20name\x20and/or\x20path','update','stop','hasOwnProperty','Unknown\x20status','destroy','delete','Unknown\x20id','lodash','../../config/pm2','../../config/logger','child_process','bluebird','sendStatus','status','stack','name','send','info','error','index'];(function(_0x55532b,_0x4a6065){var _0x367b7d=function(_0xd39fa0){while(--_0xd39fa0){_0x55532b['push'](_0x55532b['shift']());}};_0x367b7d(++_0x4a6065);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3ce3c,_0x319337){_0x3ce3c=_0x3ce3c-0x0;var _0x55a2c9=_0xa9e0[_0x3ce3c];return _0x55a2c9;};'use strict';var _=require(_0x0a9e('0x0'));var pm2=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var path=require('path');var exec=require(_0x0a9e('0x3'))['exec'];var BPromise=require(_0x0a9e('0x4'));function handleEntityNotFound(_0x432180,_0x2ab90b){return function(_0x991246){if(!_0x991246){_0x432180[_0x0a9e('0x5')](0x194);;}return _0x991246;};}function respondWithResult(_0x57b080,_0x219af0){_0x219af0=_0x219af0||0xc8;return function(_0x441e3a){if(_0x441e3a){return _0x57b080[_0x0a9e('0x6')](_0x219af0)['json'](_0x441e3a);}return null;};}function handleError(_0x503809,_0xe42b77){_0xe42b77=_0xe42b77||0x1f4;return function(_0x56465b){logger['error'](_0x56465b[_0x0a9e('0x7')]);if(_0x56465b[_0x0a9e('0x8')]){delete _0x56465b[_0x0a9e('0x8')];}_0x503809[_0x0a9e('0x6')](_0xe42b77)[_0x0a9e('0x9')](_0x56465b);};}function execChildProcess(){return new BPromise(function(_0xbd1168,_0x4a4c56){exec('npm\x20install',function(_0x527cdd,_0x4cfe67,_0x273d4d){logger[_0x0a9e('0xa')](_0x4cfe67);logger[_0x0a9e('0xa')](_0x273d4d);if(_0x527cdd){logger[_0x0a9e('0xb')](_0x527cdd);return _0x4a4c56(_0x527cdd);}return _0xbd1168(_0x4cfe67);});});}exports[_0x0a9e('0xc')]=function(_0x69aeb7,_0x5db4b0){return pm2[_0x0a9e('0xd')]()[_0x0a9e('0xe')](function(_0x2b4227){if(_0x2b4227){var _0x281129=_[_0x0a9e('0xf')](_0x2b4227,function(_0x4d5611){return _0x4d5611['name']===_0x0a9e('0x10')||_0x4d5611['name']===_0x0a9e('0x11');});return{'rows':_0x281129,'count':_0x281129['length']};}return null;})[_0x0a9e('0xe')](respondWithResult(_0x5db4b0,null))[_0x0a9e('0x12')](handleError(_0x5db4b0,null));};exports['show']=function(_0x225616,_0x5a0a06){return pm2[_0x0a9e('0x13')](_0x225616[_0x0a9e('0x14')]['id'])[_0x0a9e('0xe')](respondWithResult(_0x5a0a06,null))[_0x0a9e('0xe')](handleEntityNotFound(_0x5a0a06,null))[_0x0a9e('0x12')](handleError(_0x5a0a06,null));};exports[_0x0a9e('0x15')]=function(_0x530eb7,_0x20559e){if(_0x530eb7[_0x0a9e('0x16')][_0x0a9e('0x8')]&&_0x530eb7[_0x0a9e('0x16')][_0x0a9e('0x17')]){var _0x4bb1e3=path[_0x0a9e('0x18')](__dirname,_0x0a9e('0x19'),_0x530eb7['body'][_0x0a9e('0x17')]);var _0x5a09ef=process['cwd']();process[_0x0a9e('0x1a')](path[_0x0a9e('0x1b')](_0x4bb1e3));return execChildProcess()[_0x0a9e('0xe')](function(_0x30bae6){process['chdir'](_0x5a09ef);return pm2[_0x0a9e('0x1c')]({'name':_0x530eb7[_0x0a9e('0x16')][_0x0a9e('0x8')],'script':_0x4bb1e3});})[_0x0a9e('0xe')](function(_0x370d86){pm2[_0x0a9e('0x1d')]();return _0x370d86[0x0];})[_0x0a9e('0xe')](respondWithResult(_0x20559e,0xc9))['catch'](handleError(_0x20559e,null));}else{return _0x20559e['status'](0x1f4)[_0x0a9e('0x9')]({'message':_0x0a9e('0x1e')});}};exports[_0x0a9e('0x1f')]=function(_0x33161b,_0x526cf3){if(_0x33161b[_0x0a9e('0x16')]['id']){delete _0x33161b['body']['id'];}var _0x45a1e7={'online':'restart','stopped':_0x0a9e('0x20')};if(_0x45a1e7[_0x0a9e('0x21')](_0x33161b[_0x0a9e('0x16')][_0x0a9e('0x6')])){return pm2[_0x45a1e7[_0x33161b[_0x0a9e('0x16')][_0x0a9e('0x6')]]](_0x33161b[_0x0a9e('0x14')]['id'])[_0x0a9e('0xe')](respondWithResult(_0x526cf3,0xc8))['catch'](handleError(_0x526cf3,null));}else{return _0x526cf3[_0x0a9e('0x6')](0x1f4)[_0x0a9e('0x9')]({'message':_0x0a9e('0x22')});}};exports[_0x0a9e('0x23')]=function(_0x5c877d,_0x15b200){if(_0x5c877d[_0x0a9e('0x16')]['id']){delete _0x5c877d[_0x0a9e('0x16')]['id'];}if(_0x5c877d[_0x0a9e('0x14')]['id']){return pm2[_0x0a9e('0x24')](_0x5c877d[_0x0a9e('0x14')]['id'])[_0x0a9e('0xe')](function(_0x2e8759){pm2[_0x0a9e('0x1d')]();return _0x2e8759[0x0];})['then'](respondWithResult(_0x15b200,null))[_0x0a9e('0x12')](handleError(_0x15b200,null));}else{return _0x15b200['status'](0x1f4)[_0x0a9e('0x9')]({'message':_0x0a9e('0x25')});}};
\ No newline at end of file
+var _0x1d2d=['reject','express','motion2','length','catch','show','describe','create','body','script','join','../../files/plugins','cwd','chdir','start','dump','Missing\x20name\x20and/or\x20path','update','stop','hasOwnProperty','params','Unknown\x20status','destroy','delete','Unknown\x20id','lodash','../../config/pm2','../../config/logger','api','path','exec','sendStatus','json','error','stack','name','status','send','npm\x20install','info','index','list','then'];(function(_0x2cafc6,_0x3a1547){var _0x2e66ea=function(_0x4e5f6f){while(--_0x4e5f6f){_0x2cafc6['push'](_0x2cafc6['shift']());}};_0x2e66ea(++_0x3a1547);}(_0x1d2d,0xf0));var _0xd1d2=function(_0xff239f,_0xd05796){_0xff239f=_0xff239f-0x0;var _0x3f407d=_0x1d2d[_0xff239f];return _0x3f407d;};'use strict';var _=require(_0xd1d2('0x0'));var pm2=require(_0xd1d2('0x1'));var logger=require(_0xd1d2('0x2'))(_0xd1d2('0x3'));var path=require(_0xd1d2('0x4'));var exec=require('child_process')[_0xd1d2('0x5')];var BPromise=require('bluebird');function handleEntityNotFound(_0x5d3fac,_0x3caa72){return function(_0x2bfabc){if(!_0x2bfabc){_0x5d3fac[_0xd1d2('0x6')](0x194);;}return _0x2bfabc;};}function respondWithResult(_0x269613,_0x2f930d){_0x2f930d=_0x2f930d||0xc8;return function(_0x353dbd){if(_0x353dbd){return _0x269613['status'](_0x2f930d)[_0xd1d2('0x7')](_0x353dbd);}return null;};}function handleError(_0x21bc28,_0x35735f){_0x35735f=_0x35735f||0x1f4;return function(_0x37ff2a){logger[_0xd1d2('0x8')](_0x37ff2a[_0xd1d2('0x9')]);if(_0x37ff2a[_0xd1d2('0xa')]){delete _0x37ff2a[_0xd1d2('0xa')];}_0x21bc28[_0xd1d2('0xb')](_0x35735f)[_0xd1d2('0xc')](_0x37ff2a);};}function execChildProcess(){return new BPromise(function(_0x900ec,_0x227d7f){exec(_0xd1d2('0xd'),function(_0x5b21f4,_0x41fcb5,_0x1f49ed){logger[_0xd1d2('0xe')](_0x41fcb5);logger[_0xd1d2('0xe')](_0x1f49ed);if(_0x5b21f4){logger[_0xd1d2('0x8')](_0x5b21f4);return _0x227d7f(_0x5b21f4);}return _0x900ec(_0x41fcb5);});});}exports[_0xd1d2('0xf')]=function(_0x2df8a5,_0x31dc84){return pm2[_0xd1d2('0x10')]()[_0xd1d2('0x11')](function(_0x4cf702){if(_0x4cf702){var _0x2e7fec=_[_0xd1d2('0x12')](_0x4cf702,function(_0x3476f8){return _0x3476f8['name']===_0xd1d2('0x13')||_0x3476f8[_0xd1d2('0xa')]===_0xd1d2('0x14');});return{'rows':_0x2e7fec,'count':_0x2e7fec[_0xd1d2('0x15')]};}return null;})[_0xd1d2('0x11')](respondWithResult(_0x31dc84,null))[_0xd1d2('0x16')](handleError(_0x31dc84,null));};exports[_0xd1d2('0x17')]=function(_0x57f2f9,_0x539d5a){return pm2[_0xd1d2('0x18')](_0x57f2f9['params']['id'])[_0xd1d2('0x11')](respondWithResult(_0x539d5a,null))[_0xd1d2('0x11')](handleEntityNotFound(_0x539d5a,null))[_0xd1d2('0x16')](handleError(_0x539d5a,null));};exports[_0xd1d2('0x19')]=function(_0x4ab386,_0x4f1201){if(_0x4ab386[_0xd1d2('0x1a')]['name']&&_0x4ab386['body'][_0xd1d2('0x1b')]){var _0x27e26b=path[_0xd1d2('0x1c')](__dirname,_0xd1d2('0x1d'),_0x4ab386['body'][_0xd1d2('0x1b')]);var _0xbb4d27=process[_0xd1d2('0x1e')]();process['chdir'](path['dirname'](_0x27e26b));return execChildProcess()[_0xd1d2('0x11')](function(_0x3a1078){process[_0xd1d2('0x1f')](_0xbb4d27);return pm2[_0xd1d2('0x20')]({'name':_0x4ab386[_0xd1d2('0x1a')][_0xd1d2('0xa')],'script':_0x27e26b});})[_0xd1d2('0x11')](function(_0x5df4af){pm2[_0xd1d2('0x21')]();return _0x5df4af[0x0];})[_0xd1d2('0x11')](respondWithResult(_0x4f1201,0xc9))[_0xd1d2('0x16')](handleError(_0x4f1201,null));}else{return _0x4f1201[_0xd1d2('0xb')](0x1f4)[_0xd1d2('0xc')]({'message':_0xd1d2('0x22')});}};exports[_0xd1d2('0x23')]=function(_0x34faf7,_0xe6ef3c){if(_0x34faf7[_0xd1d2('0x1a')]['id']){delete _0x34faf7[_0xd1d2('0x1a')]['id'];}var _0x4e1bc2={'online':'restart','stopped':_0xd1d2('0x24')};if(_0x4e1bc2[_0xd1d2('0x25')](_0x34faf7[_0xd1d2('0x1a')][_0xd1d2('0xb')])){return pm2[_0x4e1bc2[_0x34faf7[_0xd1d2('0x1a')]['status']]](_0x34faf7[_0xd1d2('0x26')]['id'])[_0xd1d2('0x11')](respondWithResult(_0xe6ef3c,0xc8))[_0xd1d2('0x16')](handleError(_0xe6ef3c,null));}else{return _0xe6ef3c['status'](0x1f4)[_0xd1d2('0xc')]({'message':_0xd1d2('0x27')});}};exports[_0xd1d2('0x28')]=function(_0x56557d,_0x419db7){if(_0x56557d[_0xd1d2('0x1a')]['id']){delete _0x56557d[_0xd1d2('0x1a')]['id'];}if(_0x56557d[_0xd1d2('0x26')]['id']){return pm2[_0xd1d2('0x29')](_0x56557d[_0xd1d2('0x26')]['id'])[_0xd1d2('0x11')](function(_0x322f50){pm2[_0xd1d2('0x21')]();return _0x322f50[0x0];})[_0xd1d2('0x11')](respondWithResult(_0x419db7,null))[_0xd1d2('0x16')](handleError(_0x419db7,null));}else{return _0x419db7[_0xd1d2('0xb')](0x1f4)[_0xd1d2('0xc')]({'message':_0xd1d2('0x2a')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8796=['isAuthenticated','getQueues','exports','express','Router','./realtime.controller','/queues'];(function(_0x585b9a,_0x2473b7){var _0x18b740=function(_0x3cd478){while(--_0x3cd478){_0x585b9a['push'](_0x585b9a['shift']());}};_0x18b740(++_0x2473b7);}(_0x8796,0x1a0));var _0x6879=function(_0x2e846d,_0x370cd6){_0x2e846d=_0x2e846d-0x0;var _0x10a6ab=_0x8796[_0x2e846d];return _0x10a6ab;};'use strict';var express=require(_0x6879('0x0'));var router=express[_0x6879('0x1')]();var auth=require('../../components/auth/service');var controller=require(_0x6879('0x2'));router['get'](_0x6879('0x3'),auth[_0x6879('0x4')](),controller[_0x6879('0x5')]);module[_0x6879('0x6')]=router;
\ No newline at end of file
+var _0x97ce=['getQueues','express','Router','../../components/auth/service','./realtime.controller','/queues'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x97ce,0x151));var _0xe97c=function(_0xfa634c,_0x414e0e){_0xfa634c=_0xfa634c-0x0;var _0x73e478=_0x97ce[_0xfa634c];return _0x73e478;};'use strict';var express=require(_0xe97c('0x0'));var router=express[_0xe97c('0x1')]();var auth=require(_0xe97c('0x2'));var controller=require(_0xe97c('0x3'));router['get'](_0xe97c('0x4'),auth['isAuthenticated'](),controller[_0xe97c('0x5')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d58=['Queues','filter','UserProfile','getResources','findAndCountAll','count','error','format','result','available','waiting','paused','push','pTalking','originated','message','Trunk','startPredictive','startProgressive','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','rows','get','loggedIn','talking','outbound','find','merge','pick','online','getMembers','UserId','agents','User','Queue','Pause','findAll','QueueId','agent','loggedInDb','all','api','../../mysqldb','http','client','undefined','limit','offset','status','set','Content-Range','json','name','send','getQueues','mail','chat','sms','openchannel','fax','whatsapp','voice','resolve','then','query','channel','includes','toLowerCase','startCase','map','type','key','user','userProfileId','QueueCampaigns'];(function(_0x53e6db,_0x471c0d){var _0x1df0f3=function(_0x130fa4){while(--_0x130fa4){_0x53e6db['push'](_0x53e6db['shift']());}};_0x1df0f3(++_0x471c0d);}(_0x5d58,0x187));var _0x85d5=function(_0xa599cf,_0x35feec){_0xa599cf=_0xa599cf-0x0;var _0x383ef5=_0x5d58[_0xa599cf];return _0x383ef5;};'use strict';var util=require('util');var _=require('lodash');var jayson=require('jayson/promise');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x85d5('0x0'));var db=require(_0x85d5('0x1'))['db'];var client=jayson['client'][_0x85d5('0x2')]({'port':0x232a});var routingClient=jayson[_0x85d5('0x3')]['http']({'port':0x232c});function respondWithFilteredResult(_0x1eb211,_0x2d457a){return function(_0x578fad){if(_0x578fad){var _0x46e7b4=typeof _0x2d457a['offset']===_0x85d5('0x4')&&typeof _0x2d457a[_0x85d5('0x5')]==='undefined';var _0x4326a8=_0x578fad['count'];var _0x1098be=_0x46e7b4?0x0:_0x2d457a[_0x85d5('0x6')];var _0x258f0c=_0x46e7b4?_0x578fad['count']:_0x2d457a['offset']+_0x2d457a['limit'];var _0x1a2b82;if(_0x258f0c>=_0x4326a8){_0x258f0c=_0x4326a8;_0x1a2b82=0xc8;}else{_0x1a2b82=0xce;}_0x1eb211[_0x85d5('0x7')](_0x1a2b82);return _0x1eb211[_0x85d5('0x8')](_0x85d5('0x9'),_0x1098be+'-'+_0x258f0c+'/'+_0x4326a8)[_0x85d5('0xa')](_0x578fad);}return null;};}function handleError(_0x18331f,_0x31409d){_0x31409d=_0x31409d||0x1f4;return function(_0x5897af){logger['error'](_0x5897af['stack']);if(_0x5897af[_0x85d5('0xb')]){delete _0x5897af[_0x85d5('0xb')];}_0x18331f[_0x85d5('0x7')](_0x31409d)[_0x85d5('0xc')](_0x5897af);};}exports[_0x85d5('0xd')]=function(_0x44f702,_0x1545b4){var _0x586382=[_0x85d5('0xe'),_0x85d5('0xf'),_0x85d5('0x10'),_0x85d5('0x11'),_0x85d5('0x12'),_0x85d5('0x13'),_0x85d5('0x14')];var _0x12bef9={'count':0x0,'rows':[]},_0x17652b={},_0x17acb0;Promise[_0x85d5('0x15')]()[_0x85d5('0x16')](function(){if(_0x44f702[_0x85d5('0x17')][_0x85d5('0x18')]){if(!_[_0x85d5('0x19')](_0x586382,_0x44f702[_0x85d5('0x17')][_0x85d5('0x18')][_0x85d5('0x1a')]()))throw new Error('Invalid\x20channel');_0x17acb0=_0x44f702[_0x85d5('0x17')][_0x85d5('0x18')]['toLowerCase']();}var _0x231b57=_[_0x85d5('0x1b')](_0x17acb0)+'Queue';var _0x58290b=_[_0x85d5('0x1c')](db[_0x231b57]['rawAttributes'],function(_0x2f2bae){return{'name':_0x2f2bae['fieldName'],'type':_0x2f2bae[_0x85d5('0x1d')][_0x85d5('0x1e')]};});_0x17652b=qs['getOptions'](_0x58290b,_0x44f702);if(_0x44f702['user']['role']==='user'){var _0xf03669={'params':{'id':_0x44f702[_0x85d5('0x1f')][_0x85d5('0x20')]},'query':{'section':_0x17acb0===_0x85d5('0x14')&&_0x44f702[_0x85d5('0x17')][_0x85d5('0x1d')]==='outbound'?_0x85d5('0x21'):_['startCase'](_0x17acb0)+_0x85d5('0x22'),'type':_0x44f702[_0x85d5('0x17')][_0x85d5('0x1d')],'nolimit':!![],'sort':'name','filter':_0x44f702[_0x85d5('0x17')][_0x85d5('0x23')]}};return db[_0x85d5('0x24')][_0x85d5('0x25')](_0xf03669);}return db[_0x231b57][_0x85d5('0x26')](_0x17652b);})['then'](function(_0x1cbef1){_0x12bef9[_0x85d5('0x27')]=_0x1cbef1[_0x85d5('0x27')];var _0x22a961=_0x17acb0===_0x85d5('0x14')?client:routingClient;return _0x22a961['request'](_['startCase'](_0x17acb0)+_0x85d5('0x22'),_0x44f702)[_0x85d5('0x16')](function(_0x2d1157){if(_0x2d1157[_0x85d5('0x28')])throw new Error(util[_0x85d5('0x29')]('Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues',_0x17acb0));var _0x3553c0=_0x2d1157[_0x85d5('0x2a')];var _0x5561dd=['loggedIn',_0x85d5('0x2b'),_0x85d5('0x2c'),'talking',_0x85d5('0x2d')];if(_0x17acb0==='voice'&&_0x44f702[_0x85d5('0x17')][_0x85d5('0x1d')]==='outbound'){_0x5561dd[_0x85d5('0x2e')](_0x85d5('0x2f'),_0x85d5('0x30'),_0x85d5('0x31'),'dialActive','dialMethod',_0x85d5('0x32'),_0x85d5('0x33'),_0x85d5('0x34'),_0x85d5('0x35'),_0x85d5('0x36'),_0x85d5('0x37'),_0x85d5('0x38'),_0x85d5('0x39'),_0x85d5('0x3a'),'dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable',_0x85d5('0x3b'),_0x85d5('0x3c'),_0x85d5('0x3d'),_0x85d5('0x3e'),_0x85d5('0x3f'),_0x85d5('0x40'));}var _0x118a02=_0x1cbef1[_0x85d5('0x41')]['map'](function(_0x358555){var _0x42e8b4=_0x358555[_0x85d5('0x42')]({'plain':!![]});_0x42e8b4[_0x85d5('0x2d')]=0x0;_0x42e8b4['loggedInDb']=0x0;_0x42e8b4[_0x85d5('0x43')]=0x0;_0x42e8b4[_0x85d5('0x2b')]=0x0;_0x42e8b4[_0x85d5('0x2d')]=0x0;_0x42e8b4[_0x85d5('0x2c')]=0x0;if(_0x17acb0==='voice'){_0x42e8b4[_0x85d5('0x44')]=0x0;if(_0x44f702['query']['type']===_0x85d5('0x45')){_0x42e8b4['pTalking']=0x0;_0x42e8b4[_0x85d5('0x30')]=0x0;}}_0x42e8b4['agents']=[];var _0x56f3de=_[_0x85d5('0x46')](_0x3553c0[_0x85d5('0x41')],['id',_0x42e8b4['id']]);if(_0x56f3de)_[_0x85d5('0x47')](_0x42e8b4,_[_0x85d5('0x48')](_0x56f3de,_0x5561dd));if(_0x17acb0===_0x85d5('0x14')){return _0x358555['getAgents']({'attributes':['id','name',_0x85d5('0x49')],'joinTableAttributes':[],'raw':!![]})[_0x85d5('0x16')](function(_0x285465){return _0x358555[_0x85d5('0x4a')]({'raw':!![]})[_0x85d5('0x16')](function(_0x139872){for(var _0x544783=0x0;_0x544783<_0x285465['length'];_0x544783++){var _0x55cf7b=_['find'](_0x139872,[_0x85d5('0x4b'),_0x285465[_0x544783]['id']]);var _0x18e94d={'id':_0x285465[_0x544783]['id'],'name':_0x285465[_0x544783][_0x85d5('0xb')],'online':Boolean(_0x285465[_0x544783][_0x85d5('0x49')]),'paused':_0x55cf7b?Boolean(_0x55cf7b[_0x85d5('0x2d')]):![]};if(_0x18e94d['online'])_0x42e8b4['loggedInDb']++;if(_0x18e94d[_0x85d5('0x2d')])_0x42e8b4[_0x85d5('0x2d')]++;_0x42e8b4[_0x85d5('0x4c')][_0x85d5('0x2e')](_0x18e94d);}return _0x42e8b4;});});}else{var _0x2fe3e0=_0x85d5('0x4d')+_[_0x85d5('0x1b')](_0x17acb0)+_0x85d5('0x4e');var _0x43f4c4=_0x17acb0+_0x85d5('0x4f');return db[_0x2fe3e0][_0x85d5('0x50')]({'where':{[_[_0x85d5('0x1b')](_0x17acb0)+_0x85d5('0x51')]:_0x358555['id']},'raw':!![]})[_0x85d5('0x16')](function(_0x344927){return db[_0x85d5('0x4d')][_0x85d5('0x50')]({'attributes':['id','name','online',_0x43f4c4],'where':{'id':_[_0x85d5('0x1c')](_0x344927,_0x85d5('0x4b')),'role':_0x85d5('0x52')},'raw':!![]});})[_0x85d5('0x16')](function(_0x2e78f8){for(var _0xe34edd=0x0;_0xe34edd<_0x2e78f8['length'];_0xe34edd++){var _0x1188f2={'id':_0x2e78f8[_0xe34edd]['id'],'name':_0x2e78f8[_0xe34edd]['name'],'online':Boolean(_0x2e78f8[_0xe34edd]['online']),'paused':Boolean(_0x2e78f8[_0xe34edd][_0x43f4c4])};if(_0x1188f2[_0x85d5('0x49')])_0x42e8b4[_0x85d5('0x53')]++;if(_0x1188f2[_0x85d5('0x2d')])_0x42e8b4[_0x85d5('0x2d')]++;_0x42e8b4[_0x85d5('0x4c')]['push'](_0x1188f2);}return _0x42e8b4;});}});return Promise[_0x85d5('0x54')](_0x118a02);});})['then'](function(_0x1f2ef9){_0x12bef9[_0x85d5('0x41')]=_0x1f2ef9;return _0x12bef9;})[_0x85d5('0x16')](respondWithFilteredResult(_0x1545b4,_0x17652b))['catch'](handleError(_0x1545b4,null));};
\ No newline at end of file
+var _0x49f5=['VoiceQueuesChannels','Unable\x20to\x20retrieve\x20voice\x20queues\x20channels','loggedIn','available','waiting','paused','outbound','pTalking','originated','message','dialMethod','startProgressive','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable','predictiveIntervalAvgTalktime','map','agents','find','filter','queue','busy','internal','toString','talking','getMembers','length','UserId','accountcode','online','voiceStatus','loggedInDb','User','Pause','findAll','QueueId','push','getQueues','mail','chat','sms','openchannel','fax','whatsapp','query','includes','channel','toLowerCase','Invalid\x20channel','Queue','rawAttributes','fieldName','type','key','getOptions','user','role','userProfileId','QueueCampaigns','getResources','findAndCountAll','rows','all','util','api','../../mysqldb','client','http','offset','limit','undefined','count','status','Content-Range','json','error','stack','name','request','Agents','then','result','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','merge','catch','voice','startCase','Queues','format','Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues'];(function(_0x20988b,_0x1a6eae){var _0x372b96=function(_0x2fbb71){while(--_0x2fbb71){_0x20988b['push'](_0x20988b['shift']());}};_0x372b96(++_0x1a6eae);}(_0x49f5,0xff));var _0x549f=function(_0x1c3f44,_0x3b9db4){_0x1c3f44=_0x1c3f44-0x0;var _0x1bc285=_0x49f5[_0x1c3f44];return _0x1bc285;};'use strict';var util=require(_0x549f('0x0'));var _=require('lodash');var jayson=require('jayson/promise');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x549f('0x1'));var db=require(_0x549f('0x2'))['db'];var amiClient=jayson[_0x549f('0x3')][_0x549f('0x4')]({'port':0x232a});var routingClient=jayson[_0x549f('0x3')][_0x549f('0x4')]({'port':0x232c});function respondWithFilteredResult(_0x23da0c,_0x1546e2){return function(_0x3eefbb){if(_0x3eefbb){var _0x4d118c=typeof _0x1546e2[_0x549f('0x5')]==='undefined'&&typeof _0x1546e2[_0x549f('0x6')]===_0x549f('0x7');var _0x3d96c4=_0x3eefbb[_0x549f('0x8')];var _0x8d8b96=_0x4d118c?0x0:_0x1546e2['offset'];var _0x3e6d68=_0x4d118c?_0x3eefbb[_0x549f('0x8')]:_0x1546e2[_0x549f('0x5')]+_0x1546e2['limit'];var _0x59795b;if(_0x3e6d68>=_0x3d96c4){_0x3e6d68=_0x3d96c4;_0x59795b=0xc8;}else{_0x59795b=0xce;}_0x23da0c[_0x549f('0x9')](_0x59795b);return _0x23da0c['set'](_0x549f('0xa'),_0x8d8b96+'-'+_0x3e6d68+'/'+_0x3d96c4)[_0x549f('0xb')](_0x3eefbb);}return null;};}function handleError(_0x31120e,_0x4f5915){_0x4f5915=_0x4f5915||0x1f4;return function(_0x5f41c5){logger[_0x549f('0xc')](_0x5f41c5[_0x549f('0xd')]);if(_0x5f41c5[_0x549f('0xe')]){delete _0x5f41c5[_0x549f('0xe')];}_0x31120e[_0x549f('0x9')](_0x4f5915)['send'](_0x5f41c5);};}function getRealtimeAgents(){return new Promise(function(_0x55b758,_0x12bb91){return amiClient[_0x549f('0xf')](_0x549f('0x10'),{})[_0x549f('0x11')](function(_0x313c1d){if(_0x313c1d[_0x549f('0xc')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)');var _0x166b4b=_0x313c1d[_0x549f('0x12')];return routingClient[_0x549f('0xf')](_0x549f('0x10'),{})[_0x549f('0x11')](function(_0x1e00aa){if(_0x1e00aa[_0x549f('0xc')])throw new Error(_0x549f('0x13'));var _0x1ed06c=_0x1e00aa[_0x549f('0x12')];return _0x55b758(_[_0x549f('0x14')]({},_0x166b4b,_0x1ed06c));});})[_0x549f('0x15')](function(_0x2ae355){_0x12bb91(_0x2ae355);});});}function getRealtimeQueues(_0x34ac90,_0x2e6fae){return new Promise(function(_0x55d318,_0x2eff81){var _0x5300ed=_0x2e6fae===_0x549f('0x16')?amiClient:routingClient;return _0x5300ed[_0x549f('0xf')](_[_0x549f('0x17')](_0x2e6fae)+_0x549f('0x18'),_0x34ac90)[_0x549f('0x11')](function(_0x26ab05){if(_0x26ab05['error'])throw new Error(util[_0x549f('0x19')](_0x549f('0x1a'),_0x2e6fae));return _0x55d318(_0x26ab05['result']);})['catch'](function(_0x47c42b){_0x2eff81(_0x47c42b);});});}function getRealtimeVoiceQueueChannels(){return new Promise(function(_0x438eab,_0x1c6d6f){return amiClient[_0x549f('0xf')](_0x549f('0x1b'),{})[_0x549f('0x11')](function(_0x5c345b){if(_0x5c345b['error'])throw new Error(_0x549f('0x1c'));return _0x438eab(_0x5c345b['result']);})[_0x549f('0x15')](function(_0x51feed){_0x1c6d6f(_0x51feed);});});}function initializeQueues(_0xcbba39,_0x23dce9,_0x59a05a,_0x409a20){var _0x5a6810=[_0x549f('0x1d'),_0x549f('0x1e'),_0x549f('0x1f'),'talking',_0x549f('0x20')];if(_0x59a05a===_0x549f('0x16')&&_0x409a20===_0x549f('0x21')){_0x5a6810['push'](_0x549f('0x22'),_0x549f('0x23'),_0x549f('0x24'),'dialActive',_0x549f('0x25'),'Trunk','startPredictive',_0x549f('0x26'),_0x549f('0x27'),_0x549f('0x28'),_0x549f('0x29'),_0x549f('0x2a'),_0x549f('0x2b'),'dialPredictiveIntervalMaxThreshold',_0x549f('0x2c'),_0x549f('0x2d'),'predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime',_0x549f('0x2e'));}return _0xcbba39[_0x549f('0x2f')](function(_0x115357){var _0x279b2f=_0x115357['get']({'plain':!![]});_0x279b2f[_0x549f('0x30')]=[];_0x279b2f['paused']=0x0;_0x279b2f['loggedInDb']=0x0;_0x279b2f[_0x549f('0x1d')]=0x0;_0x279b2f[_0x549f('0x1e')]=0x0;_0x279b2f['waiting']=0x0;if(_0x59a05a===_0x549f('0x16')){_0x279b2f['talking']=0x0;_0x279b2f['busy']=0x0;if(_0x409a20===_0x549f('0x21')){_0x279b2f[_0x549f('0x22')]=0x0;_0x279b2f[_0x549f('0x23')]=0x0;}}var _0x19b8e8=_[_0x549f('0x31')](_0x23dce9,['id',_0x279b2f['id']]);if(_0x19b8e8)_[_0x549f('0x14')](_0x279b2f,_['pick'](_0x19b8e8,_0x5a6810));return _0x279b2f;});}function updateAgentVoiceStatus(_0x494780,_0x2a5729,_0x1446a2){var _0x1ea9a2=_[_0x549f('0x32')](_0x1446a2,[_0x549f('0x33'),_0x2a5729['name']]);if(_0x1ea9a2['length']===0x0)return _0x494780[_0x549f('0x34')]=!![];if(_['some'](_0x1ea9a2,['connectedlinenum',_0x494780[_0x549f('0x35')][_0x549f('0x36')]()]))return _0x494780['talking']=!![];if(!_0x494780[_0x549f('0x37')])return _0x494780[_0x549f('0x34')]=!![];}function getVoiceQueueAgents(_0xd72332,_0x4b7d34,_0x39d48,_0xfdb386){var _0x4cf95c=_[_0x549f('0x31')](_0x4b7d34,['id',_0xd72332['id']]);if(!_0x4cf95c)return _0xd72332;return _0x4cf95c[_0x549f('0x38')]({'raw':!![]})[_0x549f('0x11')](function(_0xdb76a9){for(var _0xd73dc8=0x0;_0xd73dc8<_0xdb76a9[_0x549f('0x39')];_0xd73dc8++){var _0x3ed694=_['find'](_0x39d48,['id',_0xdb76a9[_0xd73dc8][_0x549f('0x3a')]]);if(!_0x3ed694){_0x3ed694={'id':_0xdb76a9[_0xd73dc8][_0x549f('0x3a')],'name':_0xdb76a9[_0xd73dc8][_0x549f('0x3a')],'accountcode':'','online':![]};}var _0x5dfc9e={'id':_0x3ed694['id'],'name':_0x3ed694[_0x549f('0xe')],'internal':_0x3ed694[_0x549f('0x3b')],'online':Boolean(_0x3ed694[_0x549f('0x3c')]),'paused':Boolean(_0xdb76a9[_0xd73dc8][_0x549f('0x20')])};if(_0x3ed694[_0x549f('0x3d')]===_0x549f('0x37'))updateAgentVoiceStatus(_0x5dfc9e,_0xd72332,_0xfdb386);if(_0x5dfc9e['online'])_0xd72332[_0x549f('0x3e')]++;if(_0x5dfc9e[_0x549f('0x34')])_0xd72332['busy']++;if(_0x5dfc9e[_0x549f('0x20')]&&!_0x5dfc9e[_0x549f('0x34')]&&!_0x5dfc9e[_0x549f('0x37')])_0xd72332[_0x549f('0x20')]++;_0xd72332['agents']['push'](_0x5dfc9e);}return _0xd72332;});}function getQueueAgents(_0x232d60,_0xec6fa0,_0x28a1c2){var _0x55dd55=_0x549f('0x3f')+_[_0x549f('0x17')](_0x28a1c2)+'Queue';var _0x226d0f=_0x28a1c2+_0x549f('0x40');return db[_0x55dd55][_0x549f('0x41')]({'where':{[_[_0x549f('0x17')](_0x28a1c2)+_0x549f('0x42')]:_0x232d60['id']},'raw':!![]})['then'](function(_0x1d2769){for(var _0x31bdb8=0x0;_0x31bdb8<_0x1d2769[_0x549f('0x39')];_0x31bdb8++){var _0x381fa3=_[_0x549f('0x31')](_0xec6fa0,['id',_0x1d2769[_0x31bdb8]['UserId']]);if(!_0x381fa3){_0x381fa3={'id':_0x1d2769[_0x31bdb8][_0x549f('0x3a')],'name':_0x1d2769[_0x31bdb8][_0x549f('0x3a')],'online':![],['pauseField']:![]};}var _0x3eb052={'id':_0x381fa3['id'],'name':_0x381fa3[_0x549f('0xe')],'online':Boolean(_0x381fa3['online']),'paused':Boolean(_0x381fa3[_0x226d0f])};if(_0x3eb052[_0x549f('0x3c')])_0x232d60['loggedInDb']++;_0x232d60['agents'][_0x549f('0x43')](_0x3eb052);}return _0x232d60;});}exports[_0x549f('0x44')]=function(_0x33a256,_0x149de2){var _0x2b5eb6=[_0x549f('0x45'),_0x549f('0x46'),_0x549f('0x47'),_0x549f('0x48'),_0x549f('0x49'),_0x549f('0x4a'),'voice'];var _0x42e7f4={'count':0x0,'rows':[]},_0x2880ae={},_0x27815f,_0x3912fa,_0x3800ae,_0x27f125,_0xf98b8c;Promise['resolve']()[_0x549f('0x11')](function(){if(_0x33a256[_0x549f('0x4b')]['channel']){if(!_[_0x549f('0x4c')](_0x2b5eb6,_0x33a256['query'][_0x549f('0x4d')][_0x549f('0x4e')]()))throw new Error(_0x549f('0x4f'));_0x27815f=_0x33a256[_0x549f('0x4b')][_0x549f('0x4d')][_0x549f('0x4e')]();}var _0x17e287=_[_0x549f('0x17')](_0x27815f)+_0x549f('0x50');var _0x43fb54=_[_0x549f('0x2f')](db[_0x17e287][_0x549f('0x51')],function(_0x50c64d){return{'name':_0x50c64d[_0x549f('0x52')],'type':_0x50c64d[_0x549f('0x53')][_0x549f('0x54')]};});_0x2880ae=qs[_0x549f('0x55')](_0x43fb54,_0x33a256);if(_0x33a256[_0x549f('0x56')][_0x549f('0x57')]===_0x549f('0x56')){var _0x526329={'params':{'id':_0x33a256[_0x549f('0x56')][_0x549f('0x58')]},'query':{'section':_0x27815f===_0x549f('0x16')&&_0x33a256[_0x549f('0x4b')][_0x549f('0x53')]==='outbound'?_0x549f('0x59'):_[_0x549f('0x17')](_0x27815f)+_0x549f('0x18'),'type':_0x33a256[_0x549f('0x4b')][_0x549f('0x53')],'nolimit':!![],'sort':_0x549f('0xe'),'filter':_0x33a256[_0x549f('0x4b')][_0x549f('0x32')]}};return db['UserProfile'][_0x549f('0x5a')](_0x526329);}return db[_0x17e287][_0x549f('0x5b')](_0x2880ae);})[_0x549f('0x11')](function(_0x274a08){_0x42e7f4[_0x549f('0x8')]=_0x274a08[_0x549f('0x8')];_0x3912fa=_0x274a08[_0x549f('0x5c')];return getRealtimeQueues(_0x33a256,_0x27815f);})[_0x549f('0x11')](function(_0xb354c){_0x27f125=_0xb354c['rows'];return getRealtimeAgents();})[_0x549f('0x11')](function(_0xd31ef7){_0x3800ae=_0xd31ef7[_0x549f('0x5c')];if(_0x27815f!=_0x549f('0x16'))return;return getRealtimeVoiceQueueChannels();})[_0x549f('0x11')](function(_0x2b52d9){_0xf98b8c=_0x2b52d9?_0x2b52d9['rows']:[];return initializeQueues(_0x3912fa,_0x27f125,_0x27815f,_0x33a256[_0x549f('0x4b')][_0x549f('0x53')]);})[_0x549f('0x11')](function(_0x219ace){var _0x5957d7=_0x219ace[_0x549f('0x2f')](function(_0x5aef46){if(_0x27815f===_0x549f('0x16'))return getVoiceQueueAgents(_0x5aef46,_0x3912fa,_0x3800ae,_0xf98b8c);else return getQueueAgents(_0x5aef46,_0x3800ae,_0x27815f);});return Promise[_0x549f('0x5d')](_0x5957d7);})[_0x549f('0x11')](function(_0x26b683){_0x42e7f4[_0x549f('0x5c')]=_0x26b683;return _0x42e7f4;})[_0x549f('0x11')](respondWithFilteredResult(_0x149de2,_0x2880ae))[_0x549f('0x15')](handleError(_0x149de2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x3de8ca,_0x1f3ee1){var _0x48eeb1=function(_0x1b2dd9){while(--_0x1b2dd9){_0x3de8ca['push'](_0x3de8ca['shift']());}};_0x48eeb1(++_0x1f3ee1);}(_0x70e0,0x17b));var _0x070e=function(_0x4725b2,_0x5b1b6a){_0x4725b2=_0x4725b2-0x0;var _0x13b43b=_0x70e0[_0x4725b2];return _0x13b43b;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x405296,_0x359325){var _0x5a33c1=function(_0x52f6b6){while(--_0x52f6b6){_0x405296['push'](_0x405296['shift']());}};_0x5a33c1(++_0x359325);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf693=['DATE','exports','INTEGER','STRING'];(function(_0x24ebb7,_0x3fe41c){var _0x3d1037=function(_0x224953){while(--_0x224953){_0x24ebb7['push'](_0x24ebb7['shift']());}};_0x3d1037(++_0x3fe41c);}(_0xf693,0x181));var _0x3f69=function(_0x6d44ac,_0x368c05){_0x6d44ac=_0x6d44ac-0x0;var _0x52a6a6=_0xf693[_0x6d44ac];return _0x52a6a6;};'use strict';var Sequelize=require('sequelize');module[_0x3f69('0x0')]={'state':{'type':Sequelize[_0x3f69('0x1')](0x2)},'statedesc':{'type':Sequelize[_0x3f69('0x2')]},'scheduledat':{'type':Sequelize[_0x3f69('0x3')]},'uniqueid':{'type':Sequelize[_0x3f69('0x2')]},'starttime':{'type':Sequelize[_0x3f69('0x3')]},'responsetime':{'type':Sequelize[_0x3f69('0x3')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'campaign':{'type':Sequelize[_0x3f69('0x2')]},'campaigntype':{'type':Sequelize[_0x3f69('0x2')]},'membername':{'type':Sequelize[_0x3f69('0x2')]}};
\ No newline at end of file
+var _0x7dfd=['sequelize','exports','INTEGER','STRING','DATE'];(function(_0x172c33,_0x4f53c7){var _0x356267=function(_0x41b68b){while(--_0x41b68b){_0x172c33['push'](_0x172c33['shift']());}};_0x356267(++_0x4f53c7);}(_0x7dfd,0x1c2));var _0xd7df=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7dfd[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xd7df('0x0'));module[_0xd7df('0x1')]={'state':{'type':Sequelize[_0xd7df('0x2')](0x2)},'statedesc':{'type':Sequelize[_0xd7df('0x3')]},'scheduledat':{'type':Sequelize[_0xd7df('0x4')]},'uniqueid':{'type':Sequelize[_0xd7df('0x3')]},'starttime':{'type':Sequelize[_0xd7df('0x4')]},'responsetime':{'type':Sequelize[_0xd7df('0x4')]},'ringtime':{'type':Sequelize[_0xd7df('0x2')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0xd7df('0x3')]},'campaigntype':{'type':Sequelize[_0xd7df('0x3')]},'membername':{'type':Sequelize[_0xd7df('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00a0=['rimraf','../../config/environment','./reportAgentPreview.attributes','define','report_agent_preview','moment','bluebird','request-promise','path'];(function(_0x3eb4ea,_0x5528c7){var _0xa6e890=function(_0x52527b){while(--_0x52527b){_0x3eb4ea['push'](_0x3eb4ea['shift']());}};_0xa6e890(++_0x5528c7);}(_0x00a0,0x7a));var _0x000a=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x00a0[_0x2be8c2];return _0x97f531;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x000a('0x0'));var BPromise=require(_0x000a('0x1'));var rp=require(_0x000a('0x2'));var fs=require('fs');var path=require(_0x000a('0x3'));var rimraf=require(_0x000a('0x4'));var config=require(_0x000a('0x5'));var attributes=require(_0x000a('0x6'));module['exports']=function(_0x5ad173,_0x58f303){return _0x5ad173[_0x000a('0x7')]('ReportAgentPreview',attributes,{'tableName':_0x000a('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xac33=['../../config/logger','api','moment','bluebird','rimraf','./reportAgentPreview.attributes','define','ReportAgentPreview','report_agent_preview','lodash','util'];(function(_0x576196,_0x4f442d){var _0x354252=function(_0x372e1f){while(--_0x372e1f){_0x576196['push'](_0x576196['shift']());}};_0x354252(++_0x4f442d);}(_0xac33,0x153));var _0x3ac3=function(_0x5d2ccd,_0x4a1d96){_0x5d2ccd=_0x5d2ccd-0x0;var _0x4ce5f3=_0xac33[_0x5d2ccd];return _0x4ce5f3;};'use strict';var _=require(_0x3ac3('0x0'));var util=require(_0x3ac3('0x1'));var logger=require(_0x3ac3('0x2'))(_0x3ac3('0x3'));var moment=require(_0x3ac3('0x4'));var BPromise=require(_0x3ac3('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x3ac3('0x6'));var config=require('../../config/environment');var attributes=require(_0x3ac3('0x7'));module['exports']=function(_0x32d745,_0x25b8ef){return _0x32d745[_0x3ac3('0x8')](_0x3ac3('0x9'),attributes,{'tableName':_0x3ac3('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb31f=['ReportAgentPreview,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','CreateReportAgentPreview','ReportAgentPreview','create','body','options','raw','debug','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','ReportAgentPreview,\x20%s,\x20%s','request\x20sent'];(function(_0x3a1cc8,_0x514e33){var _0x21cb98=function(_0x53c423){while(--_0x53c423){_0x3a1cc8['push'](_0x3a1cc8['shift']());}};_0x21cb98(++_0x514e33);}(_0xb31f,0x1ee));var _0xfb31=function(_0x37a9d7,_0x2b6fde){_0x37a9d7=_0x37a9d7-0x0;var _0x1343d3=_0xb31f[_0x37a9d7];return _0x1343d3;};'use strict';var _=require(_0xfb31('0x0'));var util=require(_0xfb31('0x1'));var moment=require(_0xfb31('0x2'));var BPromise=require('bluebird');var rs=require(_0xfb31('0x3'));var fs=require('fs');var Redis=require(_0xfb31('0x4'));var db=require(_0xfb31('0x5'))['db'];var utils=require(_0xfb31('0x6'));var logger=require(_0xfb31('0x7'))(_0xfb31('0x8'));var config=require(_0xfb31('0x9'));var jayson=require(_0xfb31('0xa'));var client=jayson[_0xfb31('0xb')][_0xfb31('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1fe3c6,_0x42177d,_0x210810){return new BPromise(function(_0x55f8b0,_0x46376c){return client[_0xfb31('0xd')](_0x1fe3c6,_0x210810)['then'](function(_0x1d697f){logger['info'](_0xfb31('0xe'),_0x42177d,_0xfb31('0xf'));logger['debug'](_0xfb31('0x10'),_0x42177d,_0xfb31('0xf'),JSON[_0xfb31('0x11')](_0x1d697f));if(_0x1d697f[_0xfb31('0x12')]){if(_0x1d697f[_0xfb31('0x12')][_0xfb31('0x13')]===0x1f4){logger[_0xfb31('0x12')]('ReportAgentPreview,\x20%s,\x20%s',_0x42177d,_0x1d697f[_0xfb31('0x12')][_0xfb31('0x14')]);return _0x46376c(_0x1d697f['error']['message']);}logger[_0xfb31('0x12')]('ReportAgentPreview,\x20%s,\x20%s',_0x42177d,_0x1d697f[_0xfb31('0x12')][_0xfb31('0x14')]);return _0x55f8b0(_0x1d697f[_0xfb31('0x12')][_0xfb31('0x14')]);}else{logger[_0xfb31('0x15')]('ReportAgentPreview,\x20%s,\x20%s',_0x42177d,_0xfb31('0xf'));_0x55f8b0(_0x1d697f[_0xfb31('0x16')][_0xfb31('0x14')]);}})['catch'](function(_0x26af36){logger['error'](_0xfb31('0xe'),_0x42177d,_0x26af36);_0x46376c(_0x26af36);});});}exports[_0xfb31('0x17')]=function(_0x36f83d){var _0x34a720=this;return new Promise(function(_0x19be16,_0x42ff3e){return db[_0xfb31('0x18')][_0xfb31('0x19')](_0x36f83d[_0xfb31('0x1a')],{'raw':_0x36f83d['options']?_0x36f83d[_0xfb31('0x1b')][_0xfb31('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x409b95){logger[_0xfb31('0x15')](_0xfb31('0x17'),_0x36f83d);logger[_0xfb31('0x1d')]('CreateReportAgentPreview',_0x36f83d,JSON[_0xfb31('0x11')](_0x409b95));_0x19be16(_0x409b95);})['catch'](function(_0x22f362){logger[_0xfb31('0x12')](_0xfb31('0x17'),_0x22f362['message'],_0x36f83d);_0x42ff3e(_0x34a720[_0xfb31('0x12')](0x1f4,_0x22f362['message']));});});};
\ No newline at end of file
+var _0x9c69=['util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','request\x20sent','debug','ReportAgentPreview,\x20%s,\x20%s,\x20%s','error','code','ReportAgentPreview,\x20%s,\x20%s','message','info','catch','CreateReportAgentPreview','ReportAgentPreview','create','body','options','raw','then','stringify','lodash'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x9c69,0x149));var _0x99c6=function(_0x1522db,_0x7efece){_0x1522db=_0x1522db-0x0;var _0x165585=_0x9c69[_0x1522db];return _0x165585;};'use strict';var _=require(_0x99c6('0x0'));var util=require(_0x99c6('0x1'));var moment=require(_0x99c6('0x2'));var BPromise=require(_0x99c6('0x3'));var rs=require(_0x99c6('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x99c6('0x5'));var logger=require(_0x99c6('0x6'))(_0x99c6('0x7'));var config=require(_0x99c6('0x8'));var jayson=require(_0x99c6('0x9'));var client=jayson[_0x99c6('0xa')][_0x99c6('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1b3afc,_0x6f2834,_0xe3607d){return new BPromise(function(_0x5af6d5,_0x3987e2){return client[_0x99c6('0xc')](_0x1b3afc,_0xe3607d)['then'](function(_0x5a10be){logger['info']('ReportAgentPreview,\x20%s,\x20%s',_0x6f2834,_0x99c6('0xd'));logger[_0x99c6('0xe')](_0x99c6('0xf'),_0x6f2834,'request\x20sent',JSON['stringify'](_0x5a10be));if(_0x5a10be[_0x99c6('0x10')]){if(_0x5a10be[_0x99c6('0x10')][_0x99c6('0x11')]===0x1f4){logger[_0x99c6('0x10')](_0x99c6('0x12'),_0x6f2834,_0x5a10be[_0x99c6('0x10')][_0x99c6('0x13')]);return _0x3987e2(_0x5a10be[_0x99c6('0x10')][_0x99c6('0x13')]);}logger[_0x99c6('0x10')](_0x99c6('0x12'),_0x6f2834,_0x5a10be[_0x99c6('0x10')]['message']);return _0x5af6d5(_0x5a10be[_0x99c6('0x10')]['message']);}else{logger[_0x99c6('0x14')]('ReportAgentPreview,\x20%s,\x20%s',_0x6f2834,_0x99c6('0xd'));_0x5af6d5(_0x5a10be['result'][_0x99c6('0x13')]);}})[_0x99c6('0x15')](function(_0x415b2a){logger['error'](_0x99c6('0x12'),_0x6f2834,_0x415b2a);_0x3987e2(_0x415b2a);});});}exports[_0x99c6('0x16')]=function(_0x434a71){var _0x1176e3=this;return new Promise(function(_0x25b615,_0x4ad714){return db[_0x99c6('0x17')][_0x99c6('0x18')](_0x434a71[_0x99c6('0x19')],{'raw':_0x434a71[_0x99c6('0x1a')]?_0x434a71['options'][_0x99c6('0x1b')]===undefined?!![]:![]:!![]})[_0x99c6('0x1c')](function(_0xd894e4){logger[_0x99c6('0x14')](_0x99c6('0x16'),_0x434a71);logger[_0x99c6('0xe')]('CreateReportAgentPreview',_0x434a71,JSON[_0x99c6('0x1d')](_0xd894e4));_0x25b615(_0xd894e4);})[_0x99c6('0x15')](function(_0x3f405e){logger[_0x99c6('0x10')]('CreateReportAgentPreview',_0x3f405e['message'],_0x434a71);_0x4ad714(_0x1176e3[_0x99c6('0x10')](0x1f4,_0x3f405e[_0x99c6('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x829e=['/openchannel/queues/:id/waitinginteractions','openchannelQueuesIdWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','post','queueNotify','/mail/queues/:id','showMailQueues','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id/notify','openchannel','showOpenchannelQueues','/sms/queues/:id/notify','sms','whatsapp','/sms/queues/:id','showWhatsappQueues','agentNotify','exports','multer','util','path','express','Router','./rpc.controller','/voice/channels','isAuthenticated','voiceChannels','/voice/channels/:uniqueid/mixmonitor','get','voiceChannelStopMixMonitor','/chat/queues','/mail/queues','/mail/accounts','mailAccounts','/openchannel/queues','/sms/queues','smsQueues','/whatsapp/queues','whatsappQueues','faxQueues','voiceQueuesPreview','/voice/queues/channels','voiceQueuesChannels','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','/voice/queues/:id','/outbound','outbound','outboundChannels','/agents','agents','put','/agents/:id/capacity','/telephones','telephones','/trunks','trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','chatQueuesWaitingInteractions','/mail/queues/waitinginteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions'];(function(_0x408943,_0x5a7cd9){var _0x58978d=function(_0x5e28f9){while(--_0x5e28f9){_0x408943['push'](_0x408943['shift']());}};_0x58978d(++_0x5a7cd9);}(_0x829e,0xaa));var _0xe829=function(_0x2a67a0,_0x4c8ae8){_0x2a67a0=_0x2a67a0-0x0;var _0xd3fadc=_0x829e[_0x2a67a0];return _0xd3fadc;};'use strict';var multer=require(_0xe829('0x0'));var util=require(_0xe829('0x1'));var path=require(_0xe829('0x2'));var express=require(_0xe829('0x3'));var router=express[_0xe829('0x4')]();var auth=require('../../components/auth/service');var controller=require(_0xe829('0x5'));router['get'](_0xe829('0x6'),auth[_0xe829('0x7')](),controller[_0xe829('0x8')]);router['get'](_0xe829('0x9'),auth['isAuthenticated'](),controller['voiceChannelMixMonitor']);router[_0xe829('0xa')]('/voice/channels/:uniqueid/stopmixmonitor',auth[_0xe829('0x7')](),controller[_0xe829('0xb')]);router['get']('/voice/queues',auth[_0xe829('0x7')](),controller['voiceQueues']);router[_0xe829('0xa')](_0xe829('0xc'),auth['isAuthenticated'](),controller['chatQueues']);router['get'](_0xe829('0xd'),auth['isAuthenticated'](),controller['mailQueues']);router[_0xe829('0xa')](_0xe829('0xe'),auth['isAuthenticated'](),controller[_0xe829('0xf')]);router[_0xe829('0xa')](_0xe829('0x10'),auth[_0xe829('0x7')](),controller['openchannelQueues']);router[_0xe829('0xa')](_0xe829('0x11'),auth['isAuthenticated'](),controller[_0xe829('0x12')]);router[_0xe829('0xa')](_0xe829('0x13'),auth[_0xe829('0x7')](),controller[_0xe829('0x14')]);router['get']('/fax/queues',auth[_0xe829('0x7')](),controller[_0xe829('0x15')]);router[_0xe829('0xa')]('/voice/queues/preview/:id',auth[_0xe829('0x7')](),controller[_0xe829('0x16')]);router[_0xe829('0xa')](_0xe829('0x17'),auth[_0xe829('0x7')](),controller[_0xe829('0x18')]);router[_0xe829('0xa')]('/voice/queues/channels/:uniqueid',auth[_0xe829('0x7')](),controller[_0xe829('0x19')]);router['get'](_0xe829('0x1a'),auth[_0xe829('0x7')](),controller['voiceQueuesChannelHangup']);router[_0xe829('0xa')](_0xe829('0x1b'),auth[_0xe829('0x7')](),controller[_0xe829('0x1c')]);router[_0xe829('0xa')]('/voice/queues/:id',auth[_0xe829('0x7')](),controller['showVoiceQueues']);router['put'](_0xe829('0x1d'),auth[_0xe829('0x7')](),controller['updateVoiceQueue']);router['get'](_0xe829('0x1e'),auth[_0xe829('0x7')](),controller[_0xe829('0x1f')]);router[_0xe829('0xa')]('/outbound/channels',auth[_0xe829('0x7')](),controller[_0xe829('0x20')]);router[_0xe829('0xa')](_0xe829('0x21'),auth[_0xe829('0x7')](),controller[_0xe829('0x22')]);router[_0xe829('0x23')](_0xe829('0x24'),auth['isAuthenticated'](),controller['agentCapacity']);router[_0xe829('0xa')](_0xe829('0x25'),auth['isAuthenticated'](),controller[_0xe829('0x26')]);router[_0xe829('0xa')](_0xe829('0x27'),auth[_0xe829('0x7')](),controller[_0xe829('0x28')]);router['get'](_0xe829('0x29'),auth[_0xe829('0x7')](),controller[_0xe829('0x2a')]);router[_0xe829('0xa')](_0xe829('0x2b'),auth[_0xe829('0x7')](),controller[_0xe829('0x2c')]);router[_0xe829('0xa')]('/chat/queues/waitinginteractions',auth[_0xe829('0x7')](),controller[_0xe829('0x2d')]);router[_0xe829('0xa')](_0xe829('0x2e'),auth[_0xe829('0x7')](),controller['mailQueuesWaitingInteractions']);router[_0xe829('0xa')](_0xe829('0x2f'),auth[_0xe829('0x7')](),controller[_0xe829('0x30')]);router[_0xe829('0xa')](_0xe829('0x31'),auth['isAuthenticated'](),controller[_0xe829('0x32')]);router[_0xe829('0xa')]('/sms/queues/waitinginteractions',auth['isAuthenticated'](),controller[_0xe829('0x33')]);router[_0xe829('0xa')]('/whatsapp/queues/waitinginteractions',auth[_0xe829('0x7')](),controller['whatsappQueuesWaitingInteractions']);router[_0xe829('0xa')]('/fax/queues/waitinginteractions',auth[_0xe829('0x7')](),controller[_0xe829('0x34')]);router[_0xe829('0x35')]('/mail/queues/:id/notify',auth[_0xe829('0x7')](),controller[_0xe829('0x36')]('mail'));router['get'](_0xe829('0x37'),auth['isAuthenticated'](),controller[_0xe829('0x38')]);router[_0xe829('0x35')]('/chat/queues/:id/notify',auth[_0xe829('0x7')](),controller[_0xe829('0x36')]('chat'));router[_0xe829('0xa')](_0xe829('0x39'),auth[_0xe829('0x7')](),controller[_0xe829('0x3a')]);router[_0xe829('0x35')](_0xe829('0x3b'),auth[_0xe829('0x7')](),controller['queueNotify'](_0xe829('0x3c')));router['get'](_0xe829('0x3d'),auth[_0xe829('0x7')](),controller[_0xe829('0x3e')]);router['post'](_0xe829('0x3f'),auth[_0xe829('0x7')](),controller[_0xe829('0x36')](_0xe829('0x40')));router[_0xe829('0xa')]('/openchannel/queues/:id',auth[_0xe829('0x7')](),controller[_0xe829('0x41')]);router[_0xe829('0x35')](_0xe829('0x42'),auth[_0xe829('0x7')](),controller[_0xe829('0x36')](_0xe829('0x43')));router[_0xe829('0x35')]('/whatsapp/queues/:id/notify',auth[_0xe829('0x7')](),controller['queueNotify'](_0xe829('0x44')));router[_0xe829('0xa')](_0xe829('0x45'),auth[_0xe829('0x7')](),controller['showSmsQueues']);router[_0xe829('0xa')]('/whatsapp/queues/:id',auth[_0xe829('0x7')](),controller[_0xe829('0x46')]);router[_0xe829('0x35')]('/agents/:id/notify',auth['isAuthenticated'](),controller[_0xe829('0x47')]);module[_0xe829('0x48')]=router;
\ No newline at end of file
+var _0xe9a5=['/openchannel/queues/:id/waitinginteractions','/sms/queues/waitinginteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','/mail/queues/:id/notify','mail','showMailQueues','/chat/queues/:id/notify','queueNotify','chat','/chat/queues/:id','showChatQueues','post','/fax/queues/:id/notify','fax','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id','showOpenchannelQueues','/sms/queues/:id/notify','sms','/whatsapp/queues/:id/notify','whatsapp','/whatsapp/queues/:id','showWhatsappQueues','/agents/:id/notify','exports','multer','util','express','../../components/auth/service','./rpc.controller','get','/voice/channels','isAuthenticated','voiceChannels','/voice/channels/:uniqueid/mixmonitor','voiceChannelMixMonitor','voiceChannelStopMixMonitor','/voice/queues','voiceQueues','/chat/queues','chatQueues','/mail/queues','mailQueues','/mail/accounts','mailAccounts','/openchannel/queues','/sms/queues','smsQueues','/whatsapp/queues','whatsappQueues','faxQueues','/voice/queues/preview/:id','/voice/queues/channels','voiceQueuesChannels','/voice/queues/channels/:uniqueid','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','voiceQueuesChannelHangup','showVoiceQueues','put','updateVoiceQueue','outbound','/outbound/channels','outboundChannels','/agents','/agents/:id/capacity','agentCapacity','/telephones','telephones','/trunks','trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','/chat/queues/waitinginteractions','chatQueuesWaitingInteractions','/mail/queues/waitinginteractions','mailQueuesWaitingInteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions'];(function(_0x288f5e,_0x205edd){var _0x476cc9=function(_0x796f53){while(--_0x796f53){_0x288f5e['push'](_0x288f5e['shift']());}};_0x476cc9(++_0x205edd);}(_0xe9a5,0xc1));var _0x5e9a=function(_0x15fa16,_0x5ae78c){_0x15fa16=_0x15fa16-0x0;var _0x5b4429=_0xe9a5[_0x15fa16];return _0x5b4429;};'use strict';var multer=require(_0x5e9a('0x0'));var util=require(_0x5e9a('0x1'));var path=require('path');var express=require(_0x5e9a('0x2'));var router=express['Router']();var auth=require(_0x5e9a('0x3'));var controller=require(_0x5e9a('0x4'));router[_0x5e9a('0x5')](_0x5e9a('0x6'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x8')]);router[_0x5e9a('0x5')](_0x5e9a('0x9'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0xa')]);router['get']('/voice/channels/:uniqueid/stopmixmonitor',auth[_0x5e9a('0x7')](),controller[_0x5e9a('0xb')]);router[_0x5e9a('0x5')](_0x5e9a('0xc'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0xd')]);router[_0x5e9a('0x5')](_0x5e9a('0xe'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0xf')]);router[_0x5e9a('0x5')](_0x5e9a('0x10'),auth['isAuthenticated'](),controller[_0x5e9a('0x11')]);router['get'](_0x5e9a('0x12'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x13')]);router['get'](_0x5e9a('0x14'),auth[_0x5e9a('0x7')](),controller['openchannelQueues']);router['get'](_0x5e9a('0x15'),auth['isAuthenticated'](),controller[_0x5e9a('0x16')]);router[_0x5e9a('0x5')](_0x5e9a('0x17'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x18')]);router['get']('/fax/queues',auth['isAuthenticated'](),controller[_0x5e9a('0x19')]);router[_0x5e9a('0x5')](_0x5e9a('0x1a'),auth['isAuthenticated'](),controller['voiceQueuesPreview']);router['get'](_0x5e9a('0x1b'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x1c')]);router[_0x5e9a('0x5')](_0x5e9a('0x1d'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x1e')]);router[_0x5e9a('0x5')](_0x5e9a('0x1f'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x20')]);router[_0x5e9a('0x5')]('/voice/queues/channels/:uniqueid/redirect/:exten',auth[_0x5e9a('0x7')](),controller['voiceQueuesChannelRedirect']);router[_0x5e9a('0x5')]('/voice/queues/:id',auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x21')]);router[_0x5e9a('0x22')]('/voice/queues/:id',auth['isAuthenticated'](),controller[_0x5e9a('0x23')]);router[_0x5e9a('0x5')]('/outbound',auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x24')]);router[_0x5e9a('0x5')](_0x5e9a('0x25'),auth['isAuthenticated'](),controller[_0x5e9a('0x26')]);router[_0x5e9a('0x5')](_0x5e9a('0x27'),auth[_0x5e9a('0x7')](),controller['agents']);router[_0x5e9a('0x22')](_0x5e9a('0x28'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x29')]);router[_0x5e9a('0x5')](_0x5e9a('0x2a'),auth['isAuthenticated'](),controller[_0x5e9a('0x2b')]);router[_0x5e9a('0x5')](_0x5e9a('0x2c'),auth['isAuthenticated'](),controller[_0x5e9a('0x2d')]);router[_0x5e9a('0x5')](_0x5e9a('0x2e'),auth['isAuthenticated'](),controller[_0x5e9a('0x2f')]);router['get'](_0x5e9a('0x30'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x31')]);router[_0x5e9a('0x5')](_0x5e9a('0x32'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x33')]);router['get'](_0x5e9a('0x34'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x35')]);router[_0x5e9a('0x5')](_0x5e9a('0x36'),auth['isAuthenticated'](),controller[_0x5e9a('0x37')]);router['get'](_0x5e9a('0x38'),auth[_0x5e9a('0x7')](),controller['openchannelQueuesIdWaitingInteractions']);router['get'](_0x5e9a('0x39'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x3a')]);router['get']('/whatsapp/queues/waitinginteractions',auth[_0x5e9a('0x7')](),controller['whatsappQueuesWaitingInteractions']);router[_0x5e9a('0x5')]('/fax/queues/waitinginteractions',auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x3b')]);router['post'](_0x5e9a('0x3c'),auth['isAuthenticated'](),controller['queueNotify'](_0x5e9a('0x3d')));router['get']('/mail/queues/:id',auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x3e')]);router['post'](_0x5e9a('0x3f'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x40')](_0x5e9a('0x41')));router['get'](_0x5e9a('0x42'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x43')]);router[_0x5e9a('0x44')](_0x5e9a('0x45'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x40')](_0x5e9a('0x46')));router[_0x5e9a('0x5')](_0x5e9a('0x47'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x48')]);router['post']('/openchannel/queues/:id/notify',auth['isAuthenticated'](),controller['queueNotify']('openchannel'));router[_0x5e9a('0x5')](_0x5e9a('0x49'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x4a')]);router['post'](_0x5e9a('0x4b'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x40')](_0x5e9a('0x4c')));router[_0x5e9a('0x44')](_0x5e9a('0x4d'),auth[_0x5e9a('0x7')](),controller['queueNotify'](_0x5e9a('0x4e')));router[_0x5e9a('0x5')]('/sms/queues/:id',auth[_0x5e9a('0x7')](),controller['showSmsQueues']);router[_0x5e9a('0x5')](_0x5e9a('0x4f'),auth[_0x5e9a('0x7')](),controller[_0x5e9a('0x50')]);router['post'](_0x5e9a('0x51'),auth[_0x5e9a('0x7')](),controller['agentNotify']);module[_0x5e9a('0x52')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81bd=['client','http','request','then','error','code','message','result','catch','status','sendStatus','stack','name','send','isNil','rows','find','voiceChannels','VoiceChannels','query','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','VoiceChannelStopMixMonitor','params','voiceQueues','VoiceQueues','showVoiceQueues','UpdateVoiceQueue','voiceQueuesPreview','voiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelHangup','VoiceQueuesChannelHangup','voiceQueuesChannelRedirect','outbound','Outbound','outboundChannels','OutboundChannels','agents','Agents','body','interaction','user','hasOwnProperty','MemberReport','findAll','INTERACTION','length','format','YYYY-MM-DD\x20HH:mm:ss','findOrCreate','interface','SIP/%s','internal','AgentCapacity','capacity','telephones','Telephones','Trunks','campaigns','Campaigns','ChatQueues','mailQueues','showMailQueues','MailQueues','mailAccounts','MailAccounts','openchannelQueues','OpenchannelQueues','smsQueues','SmsQueues','showSmsQueues','whatsappQueues','WhatsappQueues','showWhatsappQueues','faxQueues','showFaxQueues','faxAccounts','FaxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','type','filter','queue_id','uniq','value','indexOf','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','FaxQueuesWaitingInteractions','queueNotify','capitalize','Website','Account','Queue','findOne','Message','Interaction','update','queue','InteractionId','From','QueueId','TransferReport','Start','queueTransferTimeout','*,*,*,*','agentNotify','channel','Channel\x20field\x20is\x20mandatory','chat','User','agent','Agent\x20not\x20found','messageId','\x20Message\x20not\x20found','MessageId','agentTransferTimeout','bluebird','moment','lodash','util','../../mysqldb','../../config/logger','api'];(function(_0x5416b8,_0x533f63){var _0x4f6763=function(_0x5933d3){while(--_0x5933d3){_0x5416b8['push'](_0x5416b8['shift']());}};_0x4f6763(++_0x533f63);}(_0x81bd,0x7c));var _0xd81b=function(_0x2c1524,_0x311a60){_0x2c1524=_0x2c1524-0x0;var _0x4ddd51=_0x81bd[_0x2c1524];return _0x4ddd51;};'use strict';var BPromise=require(_0xd81b('0x0'));var moment=require(_0xd81b('0x1'));var _=require(_0xd81b('0x2'));var util=require(_0xd81b('0x3'));var db=require(_0xd81b('0x4'))['db'];var logger=require(_0xd81b('0x5'))(_0xd81b('0x6'));var jayson=require('jayson/promise');var amiClient=jayson[_0xd81b('0x7')][_0xd81b('0x8')]({'port':0x232a});var mailClient=jayson[_0xd81b('0x7')]['http']({'port':0x232b});var routingClient=jayson[_0xd81b('0x7')][_0xd81b('0x8')]({'port':0x232c});function respondWithRpcPromise(_0x1f3f2c,_0x562084,_0x5e14e8){return new BPromise(function(_0xa4cf97,_0x5468d5){var _0x223515=_0x5e14e8?_0x5e14e8:amiClient;return _0x223515[_0xd81b('0x9')](_0x1f3f2c,_0x562084)[_0xd81b('0xa')](function(_0x86dab6){if(_0x86dab6[_0xd81b('0xb')]){if(_0x86dab6[_0xd81b('0xb')][_0xd81b('0xc')]===0x1f4){return _0x5468d5(_0x86dab6[_0xd81b('0xb')][_0xd81b('0xd')]);}return _0xa4cf97(_0x86dab6[_0xd81b('0xb')][_0xd81b('0xd')]);}else{_0xa4cf97(_0x86dab6[_0xd81b('0xe')]);}})[_0xd81b('0xf')](function(_0x560530){_0x5468d5(_0x560530);});});}function respondWithResult(_0x21dfff,_0x57f71d){_0x57f71d=_0x57f71d||0xc8;return function(_0x3f2405){if(_0x3f2405){return _0x21dfff[_0xd81b('0x10')](_0x57f71d)['json'](_0x3f2405);}return _0x21dfff[_0xd81b('0x11')](0x194);};}function handleError(_0x47dd04,_0x13dd00){_0x13dd00=_0x13dd00||0x1f4;return function(_0x41bf7a){logger[_0xd81b('0xb')](_0x41bf7a[_0xd81b('0x12')]);if(_0x41bf7a[_0xd81b('0x13')]){delete _0x41bf7a['name'];}_0x47dd04[_0xd81b('0x10')](_0x13dd00)[_0xd81b('0x14')](_0x41bf7a);};}function findById(_0x5c2863){return function(_0x2abef4){if(!_[_0xd81b('0x15')](_0x5c2863)&&!_[_0xd81b('0x15')](_0x2abef4)&&!_[_0xd81b('0x15')](_0x2abef4[_0xd81b('0x16')])){return _[_0xd81b('0x17')](_0x2abef4[_0xd81b('0x16')],function(_0x3d4d34){return _0x3d4d34['id']==_0x5c2863;});}return null;};}exports[_0xd81b('0x18')]=function(_0x285164,_0x1ff3c6){return respondWithRpcPromise(_0xd81b('0x19'),_0x285164[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x1ff3c6,null))[_0xd81b('0xf')](handleError(_0x1ff3c6,null));};exports[_0xd81b('0x1b')]=function(_0x5f101a,_0x4d566e){return respondWithRpcPromise(_0xd81b('0x1c'),_[_0xd81b('0x1d')](_0x5f101a[_0xd81b('0x1a')],_0x5f101a['params']))[_0xd81b('0xa')](respondWithResult(_0x4d566e,null))[_0xd81b('0xf')](handleError(_0x4d566e,null));};exports['voiceChannelStopMixMonitor']=function(_0xcd6474,_0x13d687){return respondWithRpcPromise(_0xd81b('0x1e'),_[_0xd81b('0x1d')](_0xcd6474[_0xd81b('0x1a')],_0xcd6474[_0xd81b('0x1f')]))[_0xd81b('0xa')](respondWithResult(_0x13d687,null))[_0xd81b('0xf')](handleError(_0x13d687,null));};exports[_0xd81b('0x20')]=function(_0x212c4e,_0x2ccedf){return respondWithRpcPromise(_0xd81b('0x21'),_0x212c4e['query'])[_0xd81b('0xa')](respondWithResult(_0x2ccedf,null))[_0xd81b('0xf')](handleError(_0x2ccedf,null));};exports[_0xd81b('0x22')]=function(_0x31b9fd,_0x3266c2){return respondWithRpcPromise(_0xd81b('0x21'),_0x31b9fd[_0xd81b('0x1a')])[_0xd81b('0xa')](findById(_0x31b9fd[_0xd81b('0x1f')]['id']))['then'](respondWithResult(_0x3266c2,null))[_0xd81b('0xf')](handleError(_0x3266c2,null));};exports['updateVoiceQueue']=function(_0x5c8aee,_0xb9ff9f){return respondWithRpcPromise(_0xd81b('0x23'),_['merge'](_0x5c8aee['body'],_0x5c8aee[_0xd81b('0x1f')]))[_0xd81b('0xa')](respondWithResult(_0xb9ff9f,null))[_0xd81b('0xf')](handleError(_0xb9ff9f,null));};exports[_0xd81b('0x24')]=function(_0x1a1572,_0x4654ba){return respondWithRpcPromise('VoiceQueuesPreview',_[_0xd81b('0x1d')](_0x1a1572[_0xd81b('0x1a')],_0x1a1572['params']))['then'](respondWithResult(_0x4654ba,null))[_0xd81b('0xf')](handleError(_0x4654ba,null));};exports[_0xd81b('0x25')]=function(_0x50472a,_0x50ce25){return respondWithRpcPromise('VoiceQueuesChannels',_0x50472a[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x50ce25,null))[_0xd81b('0xf')](handleError(_0x50ce25,null));};exports[_0xd81b('0x26')]=function(_0xa56339,_0x12ee8f){return respondWithRpcPromise(_0xd81b('0x27'),_['merge'](_0xa56339[_0xd81b('0x1a')],_0xa56339['params']))[_0xd81b('0xa')](respondWithResult(_0x12ee8f,null))[_0xd81b('0xf')](handleError(_0x12ee8f,null));};exports[_0xd81b('0x28')]=function(_0xcd9e86,_0x36c69f){return respondWithRpcPromise(_0xd81b('0x29'),_[_0xd81b('0x1d')](_0xcd9e86[_0xd81b('0x1a')],_0xcd9e86[_0xd81b('0x1f')]))[_0xd81b('0xa')](respondWithResult(_0x36c69f,null))[_0xd81b('0xf')](handleError(_0x36c69f,null));};exports[_0xd81b('0x2a')]=function(_0x346038,_0x57bc0c){return respondWithRpcPromise('VoiceQueuesChannelRedirect',_[_0xd81b('0x1d')](_0x346038[_0xd81b('0x1a')],_0x346038[_0xd81b('0x1f')]))['then'](respondWithResult(_0x57bc0c,null))[_0xd81b('0xf')](handleError(_0x57bc0c,null));};exports[_0xd81b('0x2b')]=function(_0x5a236a,_0x46f058){return respondWithRpcPromise(_0xd81b('0x2c'),_0x5a236a['query'])[_0xd81b('0xa')](respondWithResult(_0x46f058,null))['catch'](handleError(_0x46f058,null));};exports[_0xd81b('0x2d')]=function(_0x2502d1,_0x203365){return respondWithRpcPromise(_0xd81b('0x2e'),_0x2502d1['query'])[_0xd81b('0xa')](respondWithResult(_0x203365,null))[_0xd81b('0xf')](handleError(_0x203365,null));};exports[_0xd81b('0x2f')]=function(_0x67fbe5,_0x3abd60){var _0x466e98;return respondWithRpcPromise(_0xd81b('0x30'),_0x67fbe5['query'])[_0xd81b('0xa')](function(_0x35a295){_0x466e98=_0x35a295;return respondWithRpcPromise(_0xd81b('0x30'),_0x67fbe5['query'],routingClient);})[_0xd81b('0xa')](function(_0x3a05f4){return _[_0xd81b('0x1d')]({},_0x3a05f4,_0x466e98);})[_0xd81b('0xa')](respondWithResult(_0x3abd60,null))[_0xd81b('0xf')](handleError(_0x3abd60,null));};exports['agentCapacity']=function(_0x3dfba7,_0x11d617){if(_0x3dfba7[_0xd81b('0x31')]&&_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')]&&_0x3dfba7[_0xd81b('0x33')]&&_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')]){for(var _0x4405a8 in _0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')]){if(_0x3dfba7['body'][_0xd81b('0x32')][_0xd81b('0x34')](_0x4405a8)){db[_0xd81b('0x35')][_0xd81b('0x36')]({'where':{'channel':_0x4405a8,'membername':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')],'type':_0xd81b('0x37'),'exitAt':null,'uniqueid':_0x3dfba7[_0xd81b('0x31')]['interaction'][_0x4405a8]&&_0x3dfba7['body'][_0xd81b('0x32')][_0x4405a8][_0xd81b('0x38')]?{'$notIn':_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')][_0x4405a8]}:{'$ne':null}}})[_0xd81b('0xa')](function(_0x37031b){var _0x334bd0=moment()[_0xd81b('0x39')](_0xd81b('0x3a'));for(var _0xcfbbc2=0x0,_0x41e2e6=_0x37031b[_0xd81b('0x38')];_0xcfbbc2<_0x41e2e6;_0xcfbbc2+=0x1){_0x37031b[_0xcfbbc2]['updateAttributes']({'exitAt':_0x334bd0});}});for(var _0x27d18a=0x0;_0x27d18a<_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')][_0x4405a8][_0xd81b('0x38')];_0x27d18a+=0x1){db[_0xd81b('0x35')][_0xd81b('0x3b')]({'where':{'channel':_0x4405a8,'membername':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')],'type':_0xd81b('0x37'),'uniqueid':_0x3dfba7['body'][_0xd81b('0x32')][_0x4405a8][_0x27d18a],'exitAt':null},'defaults':{'channel':_0x4405a8,'membername':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')],'interface':_[_0xd81b('0x15')](_0x3dfba7['user'][_0xd81b('0x3c')])?util[_0xd81b('0x39')](_0xd81b('0x3d'),_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')]):_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x3c')],'type':_0xd81b('0x37'),'enterAt':moment()[_0xd81b('0x39')]('YYYY-MM-DD\x20HH:mm:ss'),'role':'agent','internal':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x3e')],'uniqueid':_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')][_0x4405a8][_0x27d18a]}});}}}}return respondWithRpcPromise(_0xd81b('0x3f'),{'id':_0x3dfba7[_0xd81b('0x1f')]['id'],'capacity':_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x40')]},routingClient)['then'](respondWithResult(_0x11d617,null))[_0xd81b('0xf')](handleError(_0x11d617,null));};exports[_0xd81b('0x41')]=function(_0x1b523c,_0x3d171a){return respondWithRpcPromise(_0xd81b('0x42'),_0x1b523c['query'])[_0xd81b('0xa')](respondWithResult(_0x3d171a,null))[_0xd81b('0xf')](handleError(_0x3d171a,null));};exports['trunks']=function(_0x1f13c3,_0x315bd5){return respondWithRpcPromise(_0xd81b('0x43'),_0x1f13c3[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x315bd5,null))[_0xd81b('0xf')](handleError(_0x315bd5,null));};exports[_0xd81b('0x44')]=function(_0x22f588,_0x3ed626){return respondWithRpcPromise(_0xd81b('0x45'),_0x22f588[_0xd81b('0x1a')])['then'](respondWithResult(_0x3ed626,null))[_0xd81b('0xf')](handleError(_0x3ed626,null));};exports['chatQueues']=function(_0x1800fa,_0x7b438c){return respondWithRpcPromise(_0xd81b('0x46'),_0x1800fa[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x7b438c,null))[_0xd81b('0xf')](handleError(_0x7b438c,null));};exports['showChatQueues']=function(_0x2d978d,_0xe0c9c6){return respondWithRpcPromise('ChatQueues',_0x2d978d['query'],routingClient)[_0xd81b('0xa')](findById(_0x2d978d['params']['id']))[_0xd81b('0xa')](respondWithResult(_0xe0c9c6,null))['catch'](handleError(_0xe0c9c6,null));};exports[_0xd81b('0x47')]=function(_0x315a66,_0x3d97ba){return respondWithRpcPromise('MailQueues',_0x315a66[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x3d97ba,null))['catch'](handleError(_0x3d97ba,null));};exports[_0xd81b('0x48')]=function(_0x108aaf,_0x5951ec){return respondWithRpcPromise(_0xd81b('0x49'),_0x108aaf['query'],routingClient)[_0xd81b('0xa')](findById(_0x108aaf[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x5951ec,null))[_0xd81b('0xf')](handleError(_0x5951ec,null));};exports[_0xd81b('0x4a')]=function(_0x32eab4,_0x2f2afe){return respondWithRpcPromise(_0xd81b('0x4b'),_0x32eab4[_0xd81b('0x1a')],mailClient)[_0xd81b('0xa')](respondWithResult(_0x2f2afe,null))['catch'](handleError(_0x2f2afe,null));};exports[_0xd81b('0x4c')]=function(_0x434434,_0x385841){return respondWithRpcPromise(_0xd81b('0x4d'),_0x434434[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x385841,null))[_0xd81b('0xf')](handleError(_0x385841,null));};exports['showOpenchannelQueues']=function(_0x57f0fb,_0x5de22d){return respondWithRpcPromise(_0xd81b('0x4d'),_0x57f0fb[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0x57f0fb[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x5de22d,null))[_0xd81b('0xf')](handleError(_0x5de22d,null));};exports[_0xd81b('0x4e')]=function(_0x5afecf,_0x3fcd8c){return respondWithRpcPromise(_0xd81b('0x4f'),_0x5afecf[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x3fcd8c,null))[_0xd81b('0xf')](handleError(_0x3fcd8c,null));};exports[_0xd81b('0x50')]=function(_0xb5fca8,_0x4ed17d){return respondWithRpcPromise(_0xd81b('0x4f'),_0xb5fca8[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0xb5fca8[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x4ed17d,null))[_0xd81b('0xf')](handleError(_0x4ed17d,null));};exports[_0xd81b('0x51')]=function(_0x19d4f0,_0x8fa8cd){return respondWithRpcPromise(_0xd81b('0x52'),_0x19d4f0[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x8fa8cd,null))['catch'](handleError(_0x8fa8cd,null));};exports[_0xd81b('0x53')]=function(_0x5358a6,_0x2e7141){return respondWithRpcPromise(_0xd81b('0x52'),_0x5358a6[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0x5358a6[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x2e7141,null))[_0xd81b('0xf')](handleError(_0x2e7141,null));};exports[_0xd81b('0x54')]=function(_0x10d6d2,_0x36fb7a){return respondWithRpcPromise('FaxQueues',_0x10d6d2[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x36fb7a,null))[_0xd81b('0xf')](handleError(_0x36fb7a,null));};exports[_0xd81b('0x55')]=function(_0x7720d3,_0x5abbb4){return respondWithRpcPromise('FaxQueues',_0x7720d3[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0x7720d3[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x5abbb4,null))[_0xd81b('0xf')](handleError(_0x5abbb4,null));};exports[_0xd81b('0x56')]=function(_0xaee7e3,_0x539132){return respondWithRpcPromise(_0xd81b('0x57'),_0xaee7e3[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x539132,null))[_0xd81b('0xf')](handleError(_0x539132,null));};exports[_0xd81b('0x58')]=function(_0x21d039,_0x1e0da3){return respondWithRpcPromise(_0xd81b('0x59'),_0x21d039[_0xd81b('0x1a')],routingClient)['then'](respondWithResult(_0x1e0da3,null))[_0xd81b('0xf')](handleError(_0x1e0da3,null));};exports[_0xd81b('0x5a')]=function(_0x3858eb,_0x9c30e7){return respondWithRpcPromise(_0xd81b('0x5b'),_0x3858eb['query'],routingClient)[_0xd81b('0xa')](respondWithResult(_0x9c30e7,null))[_0xd81b('0xf')](handleError(_0x9c30e7,null));};exports['openchannelQueuesWaitingInteractions']=function(_0xa00645,_0x43e593){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0xa00645[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x43e593,null))[_0xd81b('0xf')](handleError(_0x43e593,null));};exports['openchannelQueuesIdWaitingInteractions']=function(_0x2aff4b,_0x3db4d7){return respondWithRpcPromise(_0xd81b('0x5c'),_0x2aff4b['query'],routingClient)['then'](function(_0xdd970d){if(_0x2aff4b[_0xd81b('0x1a')][_0xd81b('0x5d')]!==undefined){var _0x5d601d=_(_0xdd970d[_0xd81b('0x16')])[_0xd81b('0x5e')]([_0x2aff4b[_0xd81b('0x1a')][_0xd81b('0x5d')],_0x2aff4b['params']['id']])['map'](_0xd81b('0x5f'))[_0xd81b('0x60')]()[_0xd81b('0x61')]();return _0xdd970d[_0xd81b('0x16')]['filter'](function(_0x1b8b17){return _0x5d601d[_0xd81b('0x62')](_0x1b8b17['queue_id'])>-0x1;});}else{return _0xdd970d[_0xd81b('0x16')]['filter'](function(_0x32a8f4){return _0x32a8f4[_0xd81b('0x5f')]===parseInt(_0x2aff4b['params']['id']);});}})[_0xd81b('0xa')](respondWithResult(_0x3db4d7,null))[_0xd81b('0xf')](handleError(_0x3db4d7,null));};exports[_0xd81b('0x63')]=function(_0x2490f1,_0x2b0fe4){return respondWithRpcPromise('SmsQueuesWaitingInteractions',_0x2490f1[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x2b0fe4,null))[_0xd81b('0xf')](handleError(_0x2b0fe4,null));};exports[_0xd81b('0x64')]=function(_0x1919b2,_0x2b1d96){return respondWithRpcPromise('WhatsappQueuesWaitingInteractions',_0x1919b2['query'],routingClient)[_0xd81b('0xa')](respondWithResult(_0x2b1d96,null))[_0xd81b('0xf')](handleError(_0x2b1d96,null));};exports[_0xd81b('0x65')]=function(_0x15aed5,_0x4dd8ac){return respondWithRpcPromise(_0xd81b('0x66'),_0x15aed5[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x4dd8ac,null))[_0xd81b('0xf')](handleError(_0x4dd8ac,null));};exports[_0xd81b('0x67')]=function(_0x589882){return function(_0x3744bf,_0x374ac0){var _0x159b28,_0x40b468;var _0x1d596c=_[_0xd81b('0x68')](_0x589882);var _0x402eb9=_0x589882==='chat'?_0xd81b('0x69'):_0xd81b('0x6a');return db[_0x1d596c+_0xd81b('0x6b')][_0xd81b('0x6c')]({'raw':!![],'where':{'id':_0x3744bf[_0xd81b('0x1f')]['id']}})[_0xd81b('0xa')](function(_0x59bee6){if(_[_0xd81b('0x15')](_0x59bee6)){throw new Error(_0x1d596c+'\x20Queue\x20not\x20found');}_0x159b28=_0x59bee6;return db[_0x1d596c+_0xd81b('0x6d')][_0xd81b('0x6c')]({'where':{'id':_0x3744bf[_0xd81b('0x31')]['messageId']},'include':[{'model':db[_0x1d596c+_0xd81b('0x6e')],'as':_0xd81b('0x6e')},{'model':db[_0x1d596c+_0x402eb9],'as':_0xd81b('0x6a')}]});})[_0xd81b('0xa')](function(_0x254105){if(_[_0xd81b('0x15')](_0x254105)){throw new Error(_0x1d596c+'\x20Message\x20not\x20found');}_0x40b468=_0x254105;return _0x254105[_0xd81b('0x6f')]({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x5f5514={'uniqueid':_0x589882+'.'+_0x40b468['id']+'.'+_0x40b468[_0xd81b('0x6e')]['id'],'FromUserId':_0x3744bf[_0xd81b('0x33')]['id'],'type':_0xd81b('0x70')};_0x5f5514[_0x1d596c+'MessageId']=_0x40b468['id'];_0x5f5514[_0x1d596c+_0xd81b('0x71')]=_0x40b468[_0xd81b('0x6e')]['id'];_0x5f5514[_0xd81b('0x72')+_0x1d596c+_0x402eb9+'Id']=_0x40b468[_0xd81b('0x6a')]['id'];_0x5f5514['To'+_0x1d596c+_0xd81b('0x73')]=_0x159b28['id'];return db[_0x1d596c+_0xd81b('0x74')]['create'](_0x5f5514);})[_0xd81b('0xa')](function(){return respondWithRpcPromise(_0xd81b('0x75'),{'channel':_0x589882,'interaction':_0x40b468[_0xd81b('0x6e')],'message':_0x40b468,'account':_0x40b468[_0xd81b('0x6a')],'applications':[{'id':0x0,'priority':0x1,'app':_0xd81b('0x70'),'appdata':_0x159b28[_0xd81b('0x13')]+','+(_0x40b468[_0xd81b('0x6a')][_0xd81b('0x76')]||0x12c),'interval':_0xd81b('0x77')}]},routingClient);})[_0xd81b('0xa')](respondWithResult(_0x374ac0,null))[_0xd81b('0xf')](handleError(_0x374ac0,null));};};exports[_0xd81b('0x78')]=function(_0x42eb62,_0x2c19fd){var _0x36d8fd,_0x5adfe4;if(_[_0xd81b('0x15')](_0x42eb62['body'][_0xd81b('0x79')])){throw new Error(_0xd81b('0x7a'));}var _0x1ca94b=_0x42eb62[_0xd81b('0x31')][_0xd81b('0x79')];var _0x115805=_['capitalize'](_0x1ca94b);var _0x3a41e6=_0x1ca94b===_0xd81b('0x7b')?_0xd81b('0x69'):_0xd81b('0x6a');return db[_0xd81b('0x7c')][_0xd81b('0x6c')]({'raw':!![],'where':{'id':_0x42eb62[_0xd81b('0x1f')]['id'],'role':_0xd81b('0x7d')}})[_0xd81b('0xa')](function(_0xfacc8f){if(_[_0xd81b('0x15')](_0xfacc8f)){throw new Error(_0xd81b('0x7e'));}_0x36d8fd=_0xfacc8f;return db[_0x115805+'Message'][_0xd81b('0x6c')]({'where':{'id':_0x42eb62[_0xd81b('0x31')][_0xd81b('0x7f')]},'include':[{'model':db[_0x115805+_0xd81b('0x6e')],'as':_0xd81b('0x6e')},{'model':db[_0x115805+_0x3a41e6],'as':'Account'}]});})[_0xd81b('0xa')](function(_0x1e61d8){if(_[_0xd81b('0x15')](_0x1e61d8)){throw new Error(_0x115805+_0xd81b('0x80'));}_0x5adfe4=_0x1e61d8;return _0x1e61d8[_0xd81b('0x6f')]({'read':0x0,'readAt':null,'UserId':null});})[_0xd81b('0xa')](function(){var _0x4e4919={'uniqueid':_0x1ca94b+'.'+_0x5adfe4['id']+'.'+_0x5adfe4[_0xd81b('0x6e')]['id'],'FromUserId':_0x42eb62['user']['id'],'type':_0xd81b('0x70'),'ToUserId':_0x36d8fd['id']};_0x4e4919[_0x115805+_0xd81b('0x81')]=_0x5adfe4['id'];_0x4e4919[_0x115805+_0xd81b('0x71')]=_0x5adfe4[_0xd81b('0x6e')]['id'];_0x4e4919['From'+_0x115805+_0x3a41e6+'Id']=_0x5adfe4[_0xd81b('0x6a')]['id'];return db[_0x115805+_0xd81b('0x74')]['create'](_0x4e4919);})[_0xd81b('0xa')](function(){return respondWithRpcPromise(_0xd81b('0x75'),{'channel':_0x1ca94b,'interaction':_0x5adfe4[_0xd81b('0x6e')],'message':_0x5adfe4,'account':_0x5adfe4[_0xd81b('0x6a')],'applications':[{'id':0x0,'priority':0x1,'app':_0xd81b('0x7d'),'appdata':_0x36d8fd['name']+','+(_0x5adfe4['Account'][_0xd81b('0x82')]||0x12c),'interval':'*,*,*,*'}]},routingClient);})[_0xd81b('0xa')](respondWithResult(_0x2c19fd,null))['catch'](handleError(_0x2c19fd,null));};
\ No newline at end of file
+var _0xf2ca=['voiceQueues','VoiceQueues','showVoiceQueues','updateVoiceQueue','UpdateVoiceQueue','voiceQueuesPreview','VoiceQueuesPreview','voiceQueuesChannels','VoiceQueuesChannels','VoiceQueuesChannel','VoiceQueuesChannelHangup','voiceQueuesChannelRedirect','VoiceQueuesChannelRedirect','outbound','Outbound','OutboundChannels','agents','Agents','agentCapacity','body','user','interaction','hasOwnProperty','findAll','INTERACTION','length','findOrCreate','interface','format','YYYY-MM-DD\x20HH:mm:ss','agent','internal','AgentCapacity','capacity','Telephones','trunks','Trunks','campaigns','Campaigns','chatQueues','ChatQueues','showChatQueues','mailQueues','showMailQueues','MailQueues','mailAccounts','MailAccounts','openchannelQueues','OpenchannelQueues','showOpenchannelQueues','smsQueues','SmsQueues','showSmsQueues','WhatsappQueues','faxQueues','showFaxQueues','FaxQueues','faxAccounts','FaxAccounts','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','filter','map','uniq','value','indexOf','queue_id','smsQueuesWaitingInteractions','SmsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','WhatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','queueNotify','capitalize','chat','Website','Account','findOne','\x20Queue\x20not\x20found','messageId','Interaction','\x20Message\x20not\x20found','queue','MessageId','InteractionId','From','QueueId','*,*,*,*','agentNotify','channel','User','Agent\x20not\x20found','Message','TransferReport','create','Start','bluebird','moment','lodash','../../mysqldb','../../config/logger','api','jayson/promise','client','http','then','error','code','message','result','catch','status','json','sendStatus','stack','name','send','isNil','find','rows','VoiceChannels','query','VoiceChannelMixMonitor','merge','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','params'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xf2ca,0x16a));var _0xaf2c=function(_0x4491ef,_0x5153d9){_0x4491ef=_0x4491ef-0x0;var _0x3c72dc=_0xf2ca[_0x4491ef];return _0x3c72dc;};'use strict';var BPromise=require(_0xaf2c('0x0'));var moment=require(_0xaf2c('0x1'));var _=require(_0xaf2c('0x2'));var util=require('util');var db=require(_0xaf2c('0x3'))['db'];var logger=require(_0xaf2c('0x4'))(_0xaf2c('0x5'));var jayson=require(_0xaf2c('0x6'));var amiClient=jayson[_0xaf2c('0x7')][_0xaf2c('0x8')]({'port':0x232a});var mailClient=jayson['client'][_0xaf2c('0x8')]({'port':0x232b});var routingClient=jayson[_0xaf2c('0x7')][_0xaf2c('0x8')]({'port':0x232c});function respondWithRpcPromise(_0x1f9531,_0x58351f,_0x37fedd){return new BPromise(function(_0x3c0421,_0x4a7397){var _0x2a011d=_0x37fedd?_0x37fedd:amiClient;return _0x2a011d['request'](_0x1f9531,_0x58351f)[_0xaf2c('0x9')](function(_0x4a0064){if(_0x4a0064[_0xaf2c('0xa')]){if(_0x4a0064[_0xaf2c('0xa')][_0xaf2c('0xb')]===0x1f4){return _0x4a7397(_0x4a0064[_0xaf2c('0xa')]['message']);}return _0x3c0421(_0x4a0064['error'][_0xaf2c('0xc')]);}else{_0x3c0421(_0x4a0064[_0xaf2c('0xd')]);}})[_0xaf2c('0xe')](function(_0xd56a5d){_0x4a7397(_0xd56a5d);});});}function respondWithResult(_0x285dac,_0x59a59b){_0x59a59b=_0x59a59b||0xc8;return function(_0x590126){if(_0x590126){return _0x285dac[_0xaf2c('0xf')](_0x59a59b)[_0xaf2c('0x10')](_0x590126);}return _0x285dac[_0xaf2c('0x11')](0x194);};}function handleError(_0x18a8a5,_0x293ca6){_0x293ca6=_0x293ca6||0x1f4;return function(_0x152c73){logger[_0xaf2c('0xa')](_0x152c73[_0xaf2c('0x12')]);if(_0x152c73[_0xaf2c('0x13')]){delete _0x152c73[_0xaf2c('0x13')];}_0x18a8a5[_0xaf2c('0xf')](_0x293ca6)[_0xaf2c('0x14')](_0x152c73);};}function findById(_0x26bf7b){return function(_0x3432e4){if(!_[_0xaf2c('0x15')](_0x26bf7b)&&!_['isNil'](_0x3432e4)&&!_[_0xaf2c('0x15')](_0x3432e4['rows'])){return _[_0xaf2c('0x16')](_0x3432e4[_0xaf2c('0x17')],function(_0x1d544a){return _0x1d544a['id']==_0x26bf7b;});}return null;};}exports['voiceChannels']=function(_0x28ae7b,_0x297bcd){return respondWithRpcPromise(_0xaf2c('0x18'),_0x28ae7b[_0xaf2c('0x19')])[_0xaf2c('0x9')](respondWithResult(_0x297bcd,null))[_0xaf2c('0xe')](handleError(_0x297bcd,null));};exports['voiceChannelMixMonitor']=function(_0x35e712,_0x164bcb){return respondWithRpcPromise(_0xaf2c('0x1a'),_[_0xaf2c('0x1b')](_0x35e712[_0xaf2c('0x19')],_0x35e712['params']))[_0xaf2c('0x9')](respondWithResult(_0x164bcb,null))[_0xaf2c('0xe')](handleError(_0x164bcb,null));};exports[_0xaf2c('0x1c')]=function(_0x4be6ed,_0x59b113){return respondWithRpcPromise(_0xaf2c('0x1d'),_[_0xaf2c('0x1b')](_0x4be6ed[_0xaf2c('0x19')],_0x4be6ed[_0xaf2c('0x1e')]))['then'](respondWithResult(_0x59b113,null))[_0xaf2c('0xe')](handleError(_0x59b113,null));};exports[_0xaf2c('0x1f')]=function(_0x3a0145,_0x3c1ae6){return respondWithRpcPromise(_0xaf2c('0x20'),_0x3a0145[_0xaf2c('0x19')])[_0xaf2c('0x9')](respondWithResult(_0x3c1ae6,null))['catch'](handleError(_0x3c1ae6,null));};exports[_0xaf2c('0x21')]=function(_0x2051be,_0x36f37c){return respondWithRpcPromise(_0xaf2c('0x20'),_0x2051be['query'])[_0xaf2c('0x9')](findById(_0x2051be['params']['id']))[_0xaf2c('0x9')](respondWithResult(_0x36f37c,null))[_0xaf2c('0xe')](handleError(_0x36f37c,null));};exports[_0xaf2c('0x22')]=function(_0x5d685a,_0x2747bb){return respondWithRpcPromise(_0xaf2c('0x23'),_[_0xaf2c('0x1b')](_0x5d685a['body'],_0x5d685a[_0xaf2c('0x1e')]))[_0xaf2c('0x9')](respondWithResult(_0x2747bb,null))[_0xaf2c('0xe')](handleError(_0x2747bb,null));};exports[_0xaf2c('0x24')]=function(_0x59d858,_0x3da072){return respondWithRpcPromise(_0xaf2c('0x25'),_[_0xaf2c('0x1b')](_0x59d858['query'],_0x59d858['params']))[_0xaf2c('0x9')](respondWithResult(_0x3da072,null))['catch'](handleError(_0x3da072,null));};exports[_0xaf2c('0x26')]=function(_0x5e7247,_0x337cea){return respondWithRpcPromise(_0xaf2c('0x27'),_0x5e7247['query'])[_0xaf2c('0x9')](respondWithResult(_0x337cea,null))[_0xaf2c('0xe')](handleError(_0x337cea,null));};exports['voiceQueuesChannel']=function(_0x13ced2,_0xbec302){return respondWithRpcPromise(_0xaf2c('0x28'),_[_0xaf2c('0x1b')](_0x13ced2[_0xaf2c('0x19')],_0x13ced2[_0xaf2c('0x1e')]))['then'](respondWithResult(_0xbec302,null))[_0xaf2c('0xe')](handleError(_0xbec302,null));};exports['voiceQueuesChannelHangup']=function(_0x321f7c,_0x514bff){return respondWithRpcPromise(_0xaf2c('0x29'),_['merge'](_0x321f7c[_0xaf2c('0x19')],_0x321f7c['params']))[_0xaf2c('0x9')](respondWithResult(_0x514bff,null))['catch'](handleError(_0x514bff,null));};exports[_0xaf2c('0x2a')]=function(_0x356402,_0x1a6929){return respondWithRpcPromise(_0xaf2c('0x2b'),_[_0xaf2c('0x1b')](_0x356402['query'],_0x356402['params']))[_0xaf2c('0x9')](respondWithResult(_0x1a6929,null))[_0xaf2c('0xe')](handleError(_0x1a6929,null));};exports[_0xaf2c('0x2c')]=function(_0xa44813,_0x4eeecf){return respondWithRpcPromise(_0xaf2c('0x2d'),_0xa44813['query'])[_0xaf2c('0x9')](respondWithResult(_0x4eeecf,null))[_0xaf2c('0xe')](handleError(_0x4eeecf,null));};exports['outboundChannels']=function(_0x36081a,_0x24668d){return respondWithRpcPromise(_0xaf2c('0x2e'),_0x36081a[_0xaf2c('0x19')])[_0xaf2c('0x9')](respondWithResult(_0x24668d,null))[_0xaf2c('0xe')](handleError(_0x24668d,null));};exports[_0xaf2c('0x2f')]=function(_0x310d3b,_0x296ca8){var _0x106eb9;return respondWithRpcPromise(_0xaf2c('0x30'),_0x310d3b[_0xaf2c('0x19')])[_0xaf2c('0x9')](function(_0x4b524d){_0x106eb9=_0x4b524d;return respondWithRpcPromise('Agents',_0x310d3b['query'],routingClient);})[_0xaf2c('0x9')](function(_0x3cb075){return _[_0xaf2c('0x1b')]({},_0x3cb075,_0x106eb9);})[_0xaf2c('0x9')](respondWithResult(_0x296ca8,null))[_0xaf2c('0xe')](handleError(_0x296ca8,null));};exports[_0xaf2c('0x31')]=function(_0x51c441,_0x1d58bd){if(_0x51c441[_0xaf2c('0x32')]&&_0x51c441[_0xaf2c('0x32')]['interaction']&&_0x51c441['user']&&_0x51c441[_0xaf2c('0x33')]['name']){for(var _0x181787 in _0x51c441[_0xaf2c('0x32')][_0xaf2c('0x34')]){if(_0x51c441[_0xaf2c('0x32')]['interaction'][_0xaf2c('0x35')](_0x181787)){db['MemberReport'][_0xaf2c('0x36')]({'where':{'channel':_0x181787,'membername':_0x51c441[_0xaf2c('0x33')]['name'],'type':_0xaf2c('0x37'),'exitAt':null,'uniqueid':_0x51c441['body'][_0xaf2c('0x34')][_0x181787]&&_0x51c441[_0xaf2c('0x32')][_0xaf2c('0x34')][_0x181787][_0xaf2c('0x38')]?{'$notIn':_0x51c441[_0xaf2c('0x32')][_0xaf2c('0x34')][_0x181787]}:{'$ne':null}}})[_0xaf2c('0x9')](function(_0x16b469){var _0x922b9=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');for(var _0x18e62b=0x0,_0x4d0977=_0x16b469['length'];_0x18e62b<_0x4d0977;_0x18e62b+=0x1){_0x16b469[_0x18e62b]['updateAttributes']({'exitAt':_0x922b9});}});for(var _0x11a90a=0x0;_0x11a90a<_0x51c441[_0xaf2c('0x32')][_0xaf2c('0x34')][_0x181787][_0xaf2c('0x38')];_0x11a90a+=0x1){db['MemberReport'][_0xaf2c('0x39')]({'where':{'channel':_0x181787,'membername':_0x51c441['user'][_0xaf2c('0x13')],'type':'INTERACTION','uniqueid':_0x51c441[_0xaf2c('0x32')][_0xaf2c('0x34')][_0x181787][_0x11a90a],'exitAt':null},'defaults':{'channel':_0x181787,'membername':_0x51c441[_0xaf2c('0x33')][_0xaf2c('0x13')],'interface':_[_0xaf2c('0x15')](_0x51c441['user'][_0xaf2c('0x3a')])?util[_0xaf2c('0x3b')]('SIP/%s',_0x51c441['user'][_0xaf2c('0x13')]):_0x51c441['user'][_0xaf2c('0x3a')],'type':_0xaf2c('0x37'),'enterAt':moment()[_0xaf2c('0x3b')](_0xaf2c('0x3c')),'role':_0xaf2c('0x3d'),'internal':_0x51c441[_0xaf2c('0x33')][_0xaf2c('0x3e')],'uniqueid':_0x51c441[_0xaf2c('0x32')][_0xaf2c('0x34')][_0x181787][_0x11a90a]}});}}}}return respondWithRpcPromise(_0xaf2c('0x3f'),{'id':_0x51c441[_0xaf2c('0x1e')]['id'],'capacity':_0x51c441['body'][_0xaf2c('0x40')]},routingClient)[_0xaf2c('0x9')](respondWithResult(_0x1d58bd,null))['catch'](handleError(_0x1d58bd,null));};exports['telephones']=function(_0x56d7ce,_0x7ddca0){return respondWithRpcPromise(_0xaf2c('0x41'),_0x56d7ce['query'])[_0xaf2c('0x9')](respondWithResult(_0x7ddca0,null))[_0xaf2c('0xe')](handleError(_0x7ddca0,null));};exports[_0xaf2c('0x42')]=function(_0x3085e5,_0x265748){return respondWithRpcPromise(_0xaf2c('0x43'),_0x3085e5[_0xaf2c('0x19')])['then'](respondWithResult(_0x265748,null))[_0xaf2c('0xe')](handleError(_0x265748,null));};exports[_0xaf2c('0x44')]=function(_0x5771e5,_0x245797){return respondWithRpcPromise(_0xaf2c('0x45'),_0x5771e5[_0xaf2c('0x19')])[_0xaf2c('0x9')](respondWithResult(_0x245797,null))[_0xaf2c('0xe')](handleError(_0x245797,null));};exports[_0xaf2c('0x46')]=function(_0x332340,_0x15a335){return respondWithRpcPromise(_0xaf2c('0x47'),_0x332340[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](respondWithResult(_0x15a335,null))[_0xaf2c('0xe')](handleError(_0x15a335,null));};exports[_0xaf2c('0x48')]=function(_0x2356a0,_0x297a22){return respondWithRpcPromise(_0xaf2c('0x47'),_0x2356a0[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](findById(_0x2356a0[_0xaf2c('0x1e')]['id']))[_0xaf2c('0x9')](respondWithResult(_0x297a22,null))['catch'](handleError(_0x297a22,null));};exports[_0xaf2c('0x49')]=function(_0x3ac79c,_0xfe5928){return respondWithRpcPromise('MailQueues',_0x3ac79c[_0xaf2c('0x19')],routingClient)['then'](respondWithResult(_0xfe5928,null))[_0xaf2c('0xe')](handleError(_0xfe5928,null));};exports[_0xaf2c('0x4a')]=function(_0xb3ad9,_0x45918b){return respondWithRpcPromise(_0xaf2c('0x4b'),_0xb3ad9[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](findById(_0xb3ad9[_0xaf2c('0x1e')]['id']))[_0xaf2c('0x9')](respondWithResult(_0x45918b,null))['catch'](handleError(_0x45918b,null));};exports[_0xaf2c('0x4c')]=function(_0x400dcd,_0x262937){return respondWithRpcPromise(_0xaf2c('0x4d'),_0x400dcd[_0xaf2c('0x19')],mailClient)['then'](respondWithResult(_0x262937,null))[_0xaf2c('0xe')](handleError(_0x262937,null));};exports[_0xaf2c('0x4e')]=function(_0x506000,_0x33aa67){return respondWithRpcPromise(_0xaf2c('0x4f'),_0x506000['query'],routingClient)['then'](respondWithResult(_0x33aa67,null))[_0xaf2c('0xe')](handleError(_0x33aa67,null));};exports[_0xaf2c('0x50')]=function(_0xc83d19,_0x39c5d2){return respondWithRpcPromise('OpenchannelQueues',_0xc83d19[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](findById(_0xc83d19['params']['id']))[_0xaf2c('0x9')](respondWithResult(_0x39c5d2,null))['catch'](handleError(_0x39c5d2,null));};exports[_0xaf2c('0x51')]=function(_0xe6a251,_0x16e9f4){return respondWithRpcPromise(_0xaf2c('0x52'),_0xe6a251[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](respondWithResult(_0x16e9f4,null))[_0xaf2c('0xe')](handleError(_0x16e9f4,null));};exports[_0xaf2c('0x53')]=function(_0x1520ec,_0xc27601){return respondWithRpcPromise('SmsQueues',_0x1520ec[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](findById(_0x1520ec[_0xaf2c('0x1e')]['id']))[_0xaf2c('0x9')](respondWithResult(_0xc27601,null))[_0xaf2c('0xe')](handleError(_0xc27601,null));};exports['whatsappQueues']=function(_0xbfb776,_0x28b09f){return respondWithRpcPromise(_0xaf2c('0x54'),_0xbfb776[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](respondWithResult(_0x28b09f,null))['catch'](handleError(_0x28b09f,null));};exports['showWhatsappQueues']=function(_0x1166c9,_0x1ead61){return respondWithRpcPromise('WhatsappQueues',_0x1166c9[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](findById(_0x1166c9[_0xaf2c('0x1e')]['id']))['then'](respondWithResult(_0x1ead61,null))[_0xaf2c('0xe')](handleError(_0x1ead61,null));};exports[_0xaf2c('0x55')]=function(_0x18dcde,_0x2aae3a){return respondWithRpcPromise('FaxQueues',_0x18dcde[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](respondWithResult(_0x2aae3a,null))[_0xaf2c('0xe')](handleError(_0x2aae3a,null));};exports[_0xaf2c('0x56')]=function(_0x20c120,_0x1ecf97){return respondWithRpcPromise(_0xaf2c('0x57'),_0x20c120[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](findById(_0x20c120[_0xaf2c('0x1e')]['id']))[_0xaf2c('0x9')](respondWithResult(_0x1ecf97,null))['catch'](handleError(_0x1ecf97,null));};exports[_0xaf2c('0x58')]=function(_0x5d965c,_0x1a0795){return respondWithRpcPromise(_0xaf2c('0x59'),_0x5d965c['query'])[_0xaf2c('0x9')](respondWithResult(_0x1a0795,null))['catch'](handleError(_0x1a0795,null));};exports['chatQueuesWaitingInteractions']=function(_0x316333,_0x1d73ef){return respondWithRpcPromise(_0xaf2c('0x5a'),_0x316333['query'],routingClient)['then'](respondWithResult(_0x1d73ef,null))['catch'](handleError(_0x1d73ef,null));};exports[_0xaf2c('0x5b')]=function(_0x3e972c,_0x517f8d){return respondWithRpcPromise(_0xaf2c('0x5c'),_0x3e972c[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](respondWithResult(_0x517f8d,null))[_0xaf2c('0xe')](handleError(_0x517f8d,null));};exports[_0xaf2c('0x5d')]=function(_0x44303c,_0x4be47b){return respondWithRpcPromise(_0xaf2c('0x5e'),_0x44303c[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](respondWithResult(_0x4be47b,null))['catch'](handleError(_0x4be47b,null));};exports[_0xaf2c('0x5f')]=function(_0x3c53ff,_0x37ee02){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0x3c53ff[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](function(_0x433f9e){if(_0x3c53ff[_0xaf2c('0x19')]['type']!==undefined){var _0x286a40=_(_0x433f9e[_0xaf2c('0x17')])[_0xaf2c('0x60')]([_0x3c53ff['query']['type'],_0x3c53ff[_0xaf2c('0x1e')]['id']])[_0xaf2c('0x61')]('queue_id')[_0xaf2c('0x62')]()[_0xaf2c('0x63')]();return _0x433f9e['rows'][_0xaf2c('0x60')](function(_0x31cf3e){return _0x286a40[_0xaf2c('0x64')](_0x31cf3e[_0xaf2c('0x65')])>-0x1;});}else{return _0x433f9e[_0xaf2c('0x17')]['filter'](function(_0x5831c9){return _0x5831c9[_0xaf2c('0x65')]===parseInt(_0x3c53ff[_0xaf2c('0x1e')]['id']);});}})[_0xaf2c('0x9')](respondWithResult(_0x37ee02,null))['catch'](handleError(_0x37ee02,null));};exports[_0xaf2c('0x66')]=function(_0x467a36,_0x3d8471){return respondWithRpcPromise(_0xaf2c('0x67'),_0x467a36[_0xaf2c('0x19')],routingClient)['then'](respondWithResult(_0x3d8471,null))[_0xaf2c('0xe')](handleError(_0x3d8471,null));};exports[_0xaf2c('0x68')]=function(_0x154f69,_0x1ef61f){return respondWithRpcPromise(_0xaf2c('0x69'),_0x154f69[_0xaf2c('0x19')],routingClient)['then'](respondWithResult(_0x1ef61f,null))[_0xaf2c('0xe')](handleError(_0x1ef61f,null));};exports[_0xaf2c('0x6a')]=function(_0x483774,_0x5beb89){return respondWithRpcPromise('FaxQueuesWaitingInteractions',_0x483774[_0xaf2c('0x19')],routingClient)[_0xaf2c('0x9')](respondWithResult(_0x5beb89,null))[_0xaf2c('0xe')](handleError(_0x5beb89,null));};exports[_0xaf2c('0x6b')]=function(_0x499bbe){return function(_0x19fbd5,_0x2d7ca5){var _0x2b57d2,_0x430567;var _0x4ddf95=_[_0xaf2c('0x6c')](_0x499bbe);var _0x23aeac=_0x499bbe===_0xaf2c('0x6d')?_0xaf2c('0x6e'):_0xaf2c('0x6f');return db[_0x4ddf95+'Queue'][_0xaf2c('0x70')]({'raw':!![],'where':{'id':_0x19fbd5[_0xaf2c('0x1e')]['id']}})['then'](function(_0x516193){if(_[_0xaf2c('0x15')](_0x516193)){throw new Error(_0x4ddf95+_0xaf2c('0x71'));}_0x2b57d2=_0x516193;return db[_0x4ddf95+'Message'][_0xaf2c('0x70')]({'where':{'id':_0x19fbd5[_0xaf2c('0x32')][_0xaf2c('0x72')]},'include':[{'model':db[_0x4ddf95+_0xaf2c('0x73')],'as':_0xaf2c('0x73')},{'model':db[_0x4ddf95+_0x23aeac],'as':_0xaf2c('0x6f')}]});})[_0xaf2c('0x9')](function(_0x43c174){if(_['isNil'](_0x43c174)){throw new Error(_0x4ddf95+_0xaf2c('0x74'));}_0x430567=_0x43c174;return _0x43c174['update']({'read':0x0,'readAt':null,'UserId':null});})[_0xaf2c('0x9')](function(){var _0x7724cc={'uniqueid':_0x499bbe+'.'+_0x430567['id']+'.'+_0x430567['Interaction']['id'],'FromUserId':_0x19fbd5['user']['id'],'type':_0xaf2c('0x75')};_0x7724cc[_0x4ddf95+_0xaf2c('0x76')]=_0x430567['id'];_0x7724cc[_0x4ddf95+_0xaf2c('0x77')]=_0x430567['Interaction']['id'];_0x7724cc[_0xaf2c('0x78')+_0x4ddf95+_0x23aeac+'Id']=_0x430567[_0xaf2c('0x6f')]['id'];_0x7724cc['To'+_0x4ddf95+_0xaf2c('0x79')]=_0x2b57d2['id'];return db[_0x4ddf95+'TransferReport']['create'](_0x7724cc);})['then'](function(){return respondWithRpcPromise('Start',{'channel':_0x499bbe,'interaction':_0x430567[_0xaf2c('0x73')],'message':_0x430567,'account':_0x430567[_0xaf2c('0x6f')],'applications':[{'id':0x0,'priority':0x1,'app':_0xaf2c('0x75'),'appdata':_0x2b57d2[_0xaf2c('0x13')]+','+(_0x430567[_0xaf2c('0x6f')]['queueTransferTimeout']||0x12c),'interval':_0xaf2c('0x7a')}]},routingClient);})[_0xaf2c('0x9')](respondWithResult(_0x2d7ca5,null))['catch'](handleError(_0x2d7ca5,null));};};exports[_0xaf2c('0x7b')]=function(_0x4a3a61,_0x31f1d3){var _0x25d49c,_0x1e403a;if(_[_0xaf2c('0x15')](_0x4a3a61[_0xaf2c('0x32')][_0xaf2c('0x7c')])){throw new Error('Channel\x20field\x20is\x20mandatory');}var _0x47b971=_0x4a3a61[_0xaf2c('0x32')][_0xaf2c('0x7c')];var _0x1bc548=_[_0xaf2c('0x6c')](_0x47b971);var _0x118e78=_0x47b971===_0xaf2c('0x6d')?'Website':'Account';return db[_0xaf2c('0x7d')]['findOne']({'raw':!![],'where':{'id':_0x4a3a61[_0xaf2c('0x1e')]['id'],'role':'agent'}})[_0xaf2c('0x9')](function(_0x639b4b){if(_['isNil'](_0x639b4b)){throw new Error(_0xaf2c('0x7e'));}_0x25d49c=_0x639b4b;return db[_0x1bc548+_0xaf2c('0x7f')][_0xaf2c('0x70')]({'where':{'id':_0x4a3a61['body'][_0xaf2c('0x72')]},'include':[{'model':db[_0x1bc548+_0xaf2c('0x73')],'as':_0xaf2c('0x73')},{'model':db[_0x1bc548+_0x118e78],'as':_0xaf2c('0x6f')}]});})[_0xaf2c('0x9')](function(_0xb311e1){if(_['isNil'](_0xb311e1)){throw new Error(_0x1bc548+'\x20Message\x20not\x20found');}_0x1e403a=_0xb311e1;return _0xb311e1['update']({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x2db412={'uniqueid':_0x47b971+'.'+_0x1e403a['id']+'.'+_0x1e403a['Interaction']['id'],'FromUserId':_0x4a3a61[_0xaf2c('0x33')]['id'],'type':'queue','ToUserId':_0x25d49c['id']};_0x2db412[_0x1bc548+'MessageId']=_0x1e403a['id'];_0x2db412[_0x1bc548+_0xaf2c('0x77')]=_0x1e403a[_0xaf2c('0x73')]['id'];_0x2db412['From'+_0x1bc548+_0x118e78+'Id']=_0x1e403a[_0xaf2c('0x6f')]['id'];return db[_0x1bc548+_0xaf2c('0x80')][_0xaf2c('0x81')](_0x2db412);})[_0xaf2c('0x9')](function(){return respondWithRpcPromise(_0xaf2c('0x82'),{'channel':_0x47b971,'interaction':_0x1e403a[_0xaf2c('0x73')],'message':_0x1e403a,'account':_0x1e403a[_0xaf2c('0x6f')],'applications':[{'id':0x0,'priority':0x1,'app':_0xaf2c('0x3d'),'appdata':_0x25d49c[_0xaf2c('0x13')]+','+(_0x1e403a[_0xaf2c('0x6f')]['agentTransferTimeout']||0x12c),'interval':_0xaf2c('0x7a')}]},routingClient);})['then'](respondWithResult(_0x31f1d3,null))[_0xaf2c('0xe')](handleError(_0x31f1d3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x72e9=['show','post','create','put','update','delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./schedule.controller','get','isAuthenticated','index','/:id'];(function(_0x16d411,_0x5e0970){var _0x20336d=function(_0x15d8aa){while(--_0x15d8aa){_0x16d411['push'](_0x16d411['shift']());}};_0x20336d(++_0x5e0970);}(_0x72e9,0xe4));var _0x972e=function(_0x5bfe65,_0x14724d){_0x5bfe65=_0x5bfe65-0x0;var _0x2c10c5=_0x72e9[_0x5bfe65];return _0x2c10c5;};'use strict';var multer=require(_0x972e('0x0'));var util=require(_0x972e('0x1'));var path=require('path');var timeout=require(_0x972e('0x2'));var express=require('express');var router=express[_0x972e('0x3')]();var fs_extra=require(_0x972e('0x4'));var auth=require(_0x972e('0x5'));var interaction=require(_0x972e('0x6'));var config=require('../../config/environment');var controller=require(_0x972e('0x7'));router[_0x972e('0x8')]('/',auth[_0x972e('0x9')](),controller[_0x972e('0xa')]);router[_0x972e('0x8')](_0x972e('0xb'),auth[_0x972e('0x9')](),controller[_0x972e('0xc')]);router[_0x972e('0x8')]('/:id/run',auth[_0x972e('0x9')](),controller['run']);router[_0x972e('0xd')]('/',auth['isAuthenticated'](),controller[_0x972e('0xe')]);router[_0x972e('0xf')](_0x972e('0xb'),auth[_0x972e('0x9')](),controller[_0x972e('0x10')]);router[_0x972e('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x972e('0x12')]);module[_0x972e('0x13')]=router;
\ No newline at end of file
+var _0x2c79=['create','put','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','post'];(function(_0x3e5e9f,_0x5fef20){var _0x25bf34=function(_0x6997e4){while(--_0x6997e4){_0x3e5e9f['push'](_0x3e5e9f['shift']());}};_0x25bf34(++_0x5fef20);}(_0x2c79,0x193));var _0x92c7=function(_0xba0cd7,_0x47f013){_0xba0cd7=_0xba0cd7-0x0;var _0x63e84e=_0x2c79[_0xba0cd7];return _0x63e84e;};'use strict';var multer=require(_0x92c7('0x0'));var util=require(_0x92c7('0x1'));var path=require(_0x92c7('0x2'));var timeout=require(_0x92c7('0x3'));var express=require(_0x92c7('0x4'));var router=express[_0x92c7('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x92c7('0x6'));var interaction=require(_0x92c7('0x7'));var config=require('../../config/environment');var controller=require('./schedule.controller');router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x92c7('0x8')]('/:id',auth[_0x92c7('0x9')](),controller['show']);router[_0x92c7('0x8')]('/:id/run',auth[_0x92c7('0x9')](),controller['run']);router[_0x92c7('0xa')]('/',auth[_0x92c7('0x9')](),controller[_0x92c7('0xb')]);router[_0x92c7('0xc')](_0x92c7('0xd'),auth[_0x92c7('0x9')](),controller[_0x92c7('0xe')]);router[_0x92c7('0xf')](_0x92c7('0xd'),auth[_0x92c7('0x9')](),controller[_0x92c7('0x10')]);module[_0x92c7('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05d8=['months','weeks','hours','minutes','days','ENUM','csv','pdf','xlsx','custom','default','TEXT','exports','STRING','BOOLEAN','0\x200\x20*\x20*\x20*','DATE','years','quarters'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x05d8,0x13c));var _0x805d=function(_0x32d457,_0x1a39c9){_0x32d457=_0x32d457-0x0;var _0x338386=_0x05d8[_0x32d457];return _0x338386;};'use strict';var Sequelize=require('sequelize');module[_0x805d('0x0')]={'name':{'type':Sequelize[_0x805d('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x805d('0x1')]},'active':{'type':Sequelize[_0x805d('0x2')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0x805d('0x1')],'allowNull':![],'defaultValue':_0x805d('0x3')},'startAt':{'type':Sequelize[_0x805d('0x4')],'allowNull':![]},'endAt':{'type':Sequelize[_0x805d('0x4')],'allowNull':![]},'subtractNumber':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize['ENUM'](_0x805d('0x5'),_0x805d('0x6'),_0x805d('0x7'),_0x805d('0x8'),'days',_0x805d('0x9'),_0x805d('0xa')),'allowNull':![],'defaultValue':_0x805d('0xb')},'output':{'type':Sequelize[_0x805d('0xc')](_0x805d('0xd'),_0x805d('0xe'),_0x805d('0xf')),'allowNull':![],'defaultValue':_0x805d('0xd')},'type':{'type':Sequelize['ENUM'](_0x805d('0x10'),_0x805d('0x11')),'allowNull':![],'defaultValue':'custom'},'sendMail':{'type':Sequelize[_0x805d('0x2')],'defaultValue':![]},'email':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0x805d('0x12')]},'bcc':{'type':Sequelize[_0x805d('0x12')]},'sendIfEmpty':{'type':Sequelize[_0x805d('0x2')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xa1d5=['years','quarters','months','weeks','days','hours','minutes','csv','pdf','xlsx','custom','default','BOOLEAN','TEXT','sequelize','exports','STRING','0\x200\x20*\x20*\x20*','DATE','INTEGER','ENUM'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa1d5,0x134));var _0x5a1d=function(_0x5079c6,_0x4936eb){_0x5079c6=_0x5079c6-0x0;var _0xd6a3bf=_0xa1d5[_0x5079c6];return _0xd6a3bf;};'use strict';var Sequelize=require(_0x5a1d('0x0'));module[_0x5a1d('0x1')]={'name':{'type':Sequelize[_0x5a1d('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x5a1d('0x2')]},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x5a1d('0x3')},'startAt':{'type':Sequelize['DATE'],'allowNull':![]},'endAt':{'type':Sequelize[_0x5a1d('0x4')],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0x5a1d('0x5')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0x5a1d('0x6')](_0x5a1d('0x7'),_0x5a1d('0x8'),_0x5a1d('0x9'),_0x5a1d('0xa'),_0x5a1d('0xb'),_0x5a1d('0xc'),_0x5a1d('0xd')),'allowNull':![],'defaultValue':_0x5a1d('0xb')},'output':{'type':Sequelize[_0x5a1d('0x6')](_0x5a1d('0xe'),_0x5a1d('0xf'),_0x5a1d('0x10')),'allowNull':![],'defaultValue':'csv'},'type':{'type':Sequelize['ENUM'](_0x5a1d('0x11'),_0x5a1d('0x12')),'allowNull':![],'defaultValue':'custom'},'sendMail':{'type':Sequelize[_0x5a1d('0x13')],'defaultValue':![]},'email':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0x5a1d('0x14')]},'bcc':{'type':Sequelize[_0x5a1d('0x14')]},'sendIfEmpty':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf1a=['reject','save','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','index','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','map','VIRTUAL','merge','options','Schedule','includeAll','include','findAll','rows','catch','show','params','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','../../config/schedule','run','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset'];(function(_0x4c8232,_0x4e0dea){var _0x3cc8e5=function(_0x248561){while(--_0x248561){_0x4c8232['push'](_0x4c8232['shift']());}};_0x3cc8e5(++_0x4e0dea);}(_0xbf1a,0x1de));var _0xabf1=function(_0x3b6b0b,_0xf70e52){_0x3b6b0b=_0x3b6b0b-0x0;var _0x12ea96=_0xbf1a[_0x3b6b0b];return _0x12ea96;};'use strict';var emlformat=require(_0xabf1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xabf1('0x1'));var jsonpatch=require(_0xabf1('0x2'));var rp=require('request-promise');var moment=require(_0xabf1('0x3'));var BPromise=require(_0xabf1('0x4'));var Mustache=require('mustache');var util=require(_0xabf1('0x5'));var path=require(_0xabf1('0x6'));var sox=require(_0xabf1('0x7'));var csv=require(_0xabf1('0x8'));var ejs=require(_0xabf1('0x9'));var fs=require('fs');var fs_extra=require(_0xabf1('0xa'));var _=require(_0xabf1('0xb'));var squel=require(_0xabf1('0xc'));var crypto=require(_0xabf1('0xd'));var jsforce=require(_0xabf1('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xabf1('0x8'));var querystring=require(_0xabf1('0xf'));var Papa=require(_0xabf1('0x10'));var Redis=require(_0xabf1('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xabf1('0x12'));var as=require(_0xabf1('0x13'));var hardwareService=require(_0xabf1('0x14'));var logger=require(_0xabf1('0x15'))(_0xabf1('0x16'));var utils=require(_0xabf1('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xabf1('0x18'))['db'];function respondWithStatusCode(_0x364614,_0x33a98f){_0x33a98f=_0x33a98f||0xcc;return function(_0x2d27d4){if(_0x2d27d4){return _0x364614[_0xabf1('0x19')](_0x33a98f);}return _0x364614[_0xabf1('0x1a')](_0x33a98f)['end']();};}function respondWithResult(_0x585dbe,_0x590d21){_0x590d21=_0x590d21||0xc8;return function(_0x166cf9){if(_0x166cf9){return _0x585dbe[_0xabf1('0x1a')](_0x590d21)[_0xabf1('0x1b')](_0x166cf9);}};}function respondWithFilteredResult(_0xfacb08,_0x5e1503){return function(_0x28e7b2){if(_0x28e7b2){var _0x128fb0=typeof _0x5e1503['offset']===_0xabf1('0x1c')&&typeof _0x5e1503[_0xabf1('0x1d')]==='undefined';var _0x2905c2=_0x28e7b2[_0xabf1('0x1e')];var _0x369158=_0x128fb0?0x0:_0x5e1503[_0xabf1('0x1f')];var _0x199d3e=_0x128fb0?_0x28e7b2[_0xabf1('0x1e')]:_0x5e1503[_0xabf1('0x1f')]+_0x5e1503[_0xabf1('0x1d')];var _0x4d0dde;if(_0x199d3e>=_0x2905c2){_0x199d3e=_0x2905c2;_0x4d0dde=0xc8;}else{_0x4d0dde=0xce;}_0xfacb08[_0xabf1('0x1a')](_0x4d0dde);return _0xfacb08['set']('Content-Range',_0x369158+'-'+_0x199d3e+'/'+_0x2905c2)['json'](_0x28e7b2);}return null;};}function patchUpdates(_0xefb4df){return function(_0x50c1fe){try{jsonpatch['apply'](_0x50c1fe,_0xefb4df,!![]);}catch(_0x177000){return BPromise[_0xabf1('0x20')](_0x177000);}return _0x50c1fe[_0xabf1('0x21')]();};}function saveUpdates(_0x4d7af6,_0x22e9e3){return function(_0x37eb41){if(_0x37eb41){return _0x37eb41[_0xabf1('0x22')](_0x4d7af6)[_0xabf1('0x23')](function(_0x546c1f){return _0x546c1f;});}return null;};}function removeEntity(_0x210c35,_0x371836){return function(_0x7342b5){if(_0x7342b5){return _0x7342b5[_0xabf1('0x24')]()[_0xabf1('0x23')](function(){var _0x3fe9f9=_0x7342b5[_0xabf1('0x25')]({'plain':!![]});var _0xc849a4=_0xabf1('0x26');return db[_0xabf1('0x27')][_0xabf1('0x24')]({'where':{'type':_0xc849a4,'resourceId':_0x3fe9f9['id']}})[_0xabf1('0x23')](function(){return _0x7342b5;});})[_0xabf1('0x23')](function(){_0x210c35[_0xabf1('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a19c2,_0x716302){return function(_0x54f8d5){if(!_0x54f8d5){_0x5a19c2['sendStatus'](0x194);}return _0x54f8d5;};}function handleError(_0x4ad3ce,_0x276015){_0x276015=_0x276015||0x1f4;return function(_0x367db1){logger[_0xabf1('0x28')](_0x367db1[_0xabf1('0x29')]);if(_0x367db1['name']){delete _0x367db1[_0xabf1('0x2a')];}_0x4ad3ce[_0xabf1('0x1a')](_0x276015)[_0xabf1('0x2b')](_0x367db1);};}exports[_0xabf1('0x2c')]=function(_0x32cdd9,_0x4b55e3){var _0x34d4ff={},_0x1e9fdf={},_0x533b3a={'count':0x0,'rows':[]};var _0x431d66=_['map'](db['Schedule'][_0xabf1('0x2d')],function(_0x305142){return{'name':_0x305142[_0xabf1('0x2e')],'type':_0x305142[_0xabf1('0x2f')]['key']};});_0x1e9fdf['model']=_['map'](_0x431d66,_0xabf1('0x2a'));_0x1e9fdf[_0xabf1('0x30')]=_[_0xabf1('0x31')](_0x32cdd9[_0xabf1('0x30')]);_0x1e9fdf[_0xabf1('0x32')]=_[_0xabf1('0x33')](_0x1e9fdf[_0xabf1('0x34')],_0x1e9fdf['query']);_0x34d4ff['attributes']=_[_0xabf1('0x33')](_0x1e9fdf['model'],qs[_0xabf1('0x35')](_0x32cdd9['query'][_0xabf1('0x35')]));_0x34d4ff['attributes']=_0x34d4ff[_0xabf1('0x36')][_0xabf1('0x37')]?_0x34d4ff[_0xabf1('0x36')]:_0x1e9fdf[_0xabf1('0x34')];if(!_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x38')](_0xabf1('0x39'))){_0x34d4ff['limit']=qs['limit'](_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x1d')]);_0x34d4ff['offset']=qs['offset'](_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x1f')]);}_0x34d4ff[_0xabf1('0x3a')]=qs[_0xabf1('0x3b')](_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x3b')]);_0x34d4ff[_0xabf1('0x3c')]=qs[_0xabf1('0x32')](_['pick'](_0x32cdd9[_0xabf1('0x30')],_0x1e9fdf['filters']),_0x431d66);if(_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x3d')]){_0x34d4ff[_0xabf1('0x3c')]=_['merge'](_0x34d4ff[_0xabf1('0x3c')],{'$or':_[_0xabf1('0x3e')](_0x431d66,function(_0x3a3412){if(_0x3a3412[_0xabf1('0x2f')]!==_0xabf1('0x3f')){var _0x68d629={};_0x68d629[_0x3a3412['name']]={'$like':'%'+_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x3d')]+'%'};return _0x68d629;}})});}_0x34d4ff=_[_0xabf1('0x40')]({},_0x34d4ff,_0x32cdd9[_0xabf1('0x41')]);var _0x57098d={'where':_0x34d4ff[_0xabf1('0x3c')]};return db[_0xabf1('0x42')]['count'](_0x57098d)['then'](function(_0x33f113){_0x533b3a[_0xabf1('0x1e')]=_0x33f113;if(_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x43')]){_0x34d4ff[_0xabf1('0x44')]=[{'all':!![]}];}return db[_0xabf1('0x42')][_0xabf1('0x45')](_0x34d4ff);})[_0xabf1('0x23')](function(_0x2ec266){_0x533b3a[_0xabf1('0x46')]=_0x2ec266;return _0x533b3a;})['then'](respondWithFilteredResult(_0x4b55e3,_0x34d4ff))[_0xabf1('0x47')](handleError(_0x4b55e3,null));};exports[_0xabf1('0x48')]=function(_0x547348,_0xec75c9){var _0x357646={'raw':![],'where':{'id':_0x547348[_0xabf1('0x49')]['id']}},_0x28d953={};_0x28d953[_0xabf1('0x34')]=_[_0xabf1('0x31')](db['Schedule'][_0xabf1('0x2d')]);_0x28d953[_0xabf1('0x30')]=_[_0xabf1('0x31')](_0x547348[_0xabf1('0x30')]);_0x28d953[_0xabf1('0x32')]=_['intersection'](_0x28d953['model'],_0x28d953[_0xabf1('0x30')]);_0x357646[_0xabf1('0x36')]=_[_0xabf1('0x33')](_0x28d953[_0xabf1('0x34')],qs[_0xabf1('0x35')](_0x547348[_0xabf1('0x30')][_0xabf1('0x35')]));_0x357646[_0xabf1('0x36')]=_0x357646['attributes'][_0xabf1('0x37')]?_0x357646[_0xabf1('0x36')]:_0x28d953[_0xabf1('0x34')];if(_0x547348['query'][_0xabf1('0x43')]){_0x357646[_0xabf1('0x44')]=[{'all':!![]}];}_0x357646=_[_0xabf1('0x40')]({},_0x357646,_0x547348['options']);return db[_0xabf1('0x42')][_0xabf1('0x4a')](_0x357646)[_0xabf1('0x23')](handleEntityNotFound(_0xec75c9,null))[_0xabf1('0x23')](respondWithResult(_0xec75c9,null))[_0xabf1('0x47')](handleError(_0xec75c9,null));};exports[_0xabf1('0x4b')]=function(_0x17c096,_0xadc11){return db[_0xabf1('0x42')][_0xabf1('0x4b')](_0x17c096['body'],{})['then'](function(_0xafa582){var _0x52110f=_0x17c096['user'][_0xabf1('0x25')]({'plain':!![]});if(!_0x52110f)throw new Error(_0xabf1('0x4c'));if(_0x52110f[_0xabf1('0x4d')]===_0xabf1('0x4e')){var _0x5238bd=_0xafa582[_0xabf1('0x25')]({'plain':!![]});var _0x549736=_0xabf1('0x26');return db['UserProfileSection'][_0xabf1('0x4a')]({'where':{'name':_0x549736,'userProfileId':_0x52110f[_0xabf1('0x4f')]},'raw':!![]})[_0xabf1('0x23')](function(_0x3f95bb){if(_0x3f95bb&&_0x3f95bb[_0xabf1('0x50')]===0x0){return db['UserProfileResource'][_0xabf1('0x4b')]({'name':_0x5238bd['name'],'resourceId':_0x5238bd['id'],'type':_0x3f95bb[_0xabf1('0x2a')],'sectionId':_0x3f95bb['id']},{})[_0xabf1('0x23')](function(){return _0xafa582;});}else{return _0xafa582;}})[_0xabf1('0x47')](function(_0x530437){logger[_0xabf1('0x28')](_0xabf1('0x51'),_0x530437);throw _0x530437;});}return _0xafa582;})[_0xabf1('0x23')](respondWithResult(_0xadc11,0xc9))['catch'](handleError(_0xadc11,null));};exports[_0xabf1('0x22')]=function(_0x17cd75,_0xa4003){if(_0x17cd75[_0xabf1('0x52')]['id']){delete _0x17cd75['body']['id'];}return db['Schedule']['find']({'where':{'id':_0x17cd75['params']['id']}})[_0xabf1('0x23')](handleEntityNotFound(_0xa4003,null))[_0xabf1('0x23')](saveUpdates(_0x17cd75[_0xabf1('0x52')],null))[_0xabf1('0x23')](respondWithResult(_0xa4003,null))[_0xabf1('0x47')](handleError(_0xa4003,null));};exports[_0xabf1('0x24')]=function(_0x23bd25,_0x1516bb){return db[_0xabf1('0x42')][_0xabf1('0x4a')]({'where':{'id':_0x23bd25[_0xabf1('0x49')]['id']}})[_0xabf1('0x23')](handleEntityNotFound(_0x1516bb,null))['then'](removeEntity(_0x1516bb,null))['catch'](handleError(_0x1516bb,null));};exports['run']=function(_0x48a378,_0xc6db49,_0x3a618c){var _0x1c6bd6=require(_0xabf1('0x53'));return db['Schedule']['find']({'where':{'id':_0x48a378[_0xabf1('0x49')]['id']},'raw':!![]})[_0xabf1('0x23')](handleEntityNotFound(_0xc6db49,null))['then'](function(){_0x1c6bd6[_0xabf1('0x54')](_0x48a378['params']['id']);})[_0xabf1('0x23')](respondWithStatusCode(_0xc6db49,null))['catch'](handleError(_0xc6db49,null));};
\ No newline at end of file
+var _0x328e=['count','includeAll','include','show','params','length','find','catch','create','body','user','role','UserProfileSection','userProfileId','UserProfileResource','../../config/schedule','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','undefined','limit','offset','apply','reject','save','update','then','destroy','get','Scheduler','error','stack','name','send','Schedule','rawAttributes','type','model','map','keys','query','filters','intersection','attributes','fields','hasOwnProperty','sort','pick','merge','where','VIRTUAL','filter'];(function(_0x4c7dfb,_0x3b143c){var _0x36eb41=function(_0x4cc329){while(--_0x4cc329){_0x4c7dfb['push'](_0x4c7dfb['shift']());}};_0x36eb41(++_0x3b143c);}(_0x328e,0xf7));var _0xe328=function(_0x2f6aca,_0x28e665){_0x2f6aca=_0x2f6aca-0x0;var _0x494560=_0x328e[_0x2f6aca];return _0x494560;};'use strict';var emlformat=require(_0xe328('0x0'));var rimraf=require(_0xe328('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe328('0x2'));var rp=require(_0xe328('0x3'));var moment=require(_0xe328('0x4'));var BPromise=require(_0xe328('0x5'));var Mustache=require(_0xe328('0x6'));var util=require(_0xe328('0x7'));var path=require('path');var sox=require(_0xe328('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe328('0x9'));var squel=require(_0xe328('0xa'));var crypto=require(_0xe328('0xb'));var jsforce=require(_0xe328('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xe328('0xd'));var querystring=require(_0xe328('0xe'));var Papa=require(_0xe328('0xf'));var Redis=require(_0xe328('0x10'));var authService=require(_0xe328('0x11'));var qs=require(_0xe328('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe328('0x13'));var logger=require(_0xe328('0x14'))(_0xe328('0x15'));var utils=require(_0xe328('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xe328('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4601cf,_0xafd418){_0xafd418=_0xafd418||0xcc;return function(_0x24f680){if(_0x24f680){return _0x4601cf[_0xe328('0x18')](_0xafd418);}return _0x4601cf[_0xe328('0x19')](_0xafd418)[_0xe328('0x1a')]();};}function respondWithResult(_0x1d7a89,_0x4ac8a1){_0x4ac8a1=_0x4ac8a1||0xc8;return function(_0x263db0){if(_0x263db0){return _0x1d7a89['status'](_0x4ac8a1)[_0xe328('0x1b')](_0x263db0);}};}function respondWithFilteredResult(_0x33fee4,_0x57cdee){return function(_0x2b6c52){if(_0x2b6c52){var _0x6987b8=typeof _0x57cdee['offset']===_0xe328('0x1c')&&typeof _0x57cdee[_0xe328('0x1d')]==='undefined';var _0x3f4743=_0x2b6c52['count'];var _0x1f8d2d=_0x6987b8?0x0:_0x57cdee[_0xe328('0x1e')];var _0x33d499=_0x6987b8?_0x2b6c52['count']:_0x57cdee[_0xe328('0x1e')]+_0x57cdee[_0xe328('0x1d')];var _0x416cf4;if(_0x33d499>=_0x3f4743){_0x33d499=_0x3f4743;_0x416cf4=0xc8;}else{_0x416cf4=0xce;}_0x33fee4['status'](_0x416cf4);return _0x33fee4['set']('Content-Range',_0x1f8d2d+'-'+_0x33d499+'/'+_0x3f4743)[_0xe328('0x1b')](_0x2b6c52);}return null;};}function patchUpdates(_0x3dd5e9){return function(_0x4bc665){try{jsonpatch[_0xe328('0x1f')](_0x4bc665,_0x3dd5e9,!![]);}catch(_0x46f718){return BPromise[_0xe328('0x20')](_0x46f718);}return _0x4bc665[_0xe328('0x21')]();};}function saveUpdates(_0x4b9d40,_0x17672e){return function(_0x51e301){if(_0x51e301){return _0x51e301[_0xe328('0x22')](_0x4b9d40)[_0xe328('0x23')](function(_0x180cf0){return _0x180cf0;});}return null;};}function removeEntity(_0x3fc1f2,_0x57a9ef){return function(_0x103de2){if(_0x103de2){return _0x103de2[_0xe328('0x24')]()[_0xe328('0x23')](function(){var _0x181eca=_0x103de2[_0xe328('0x25')]({'plain':!![]});var _0x3f020c=_0xe328('0x26');return db['UserProfileResource'][_0xe328('0x24')]({'where':{'type':_0x3f020c,'resourceId':_0x181eca['id']}})['then'](function(){return _0x103de2;});})[_0xe328('0x23')](function(){_0x3fc1f2[_0xe328('0x19')](0xcc)[_0xe328('0x1a')]();});}};}function handleEntityNotFound(_0x22e745,_0x4db67f){return function(_0x4fdc7c){if(!_0x4fdc7c){_0x22e745[_0xe328('0x18')](0x194);}return _0x4fdc7c;};}function handleError(_0x219ca0,_0x2fe91b){_0x2fe91b=_0x2fe91b||0x1f4;return function(_0x7c4613){logger[_0xe328('0x27')](_0x7c4613[_0xe328('0x28')]);if(_0x7c4613[_0xe328('0x29')]){delete _0x7c4613[_0xe328('0x29')];}_0x219ca0[_0xe328('0x19')](_0x2fe91b)[_0xe328('0x2a')](_0x7c4613);};}exports['index']=function(_0x3c0319,_0x4723d9){var _0x567368={},_0x40f454={},_0x55b8fe={'count':0x0,'rows':[]};var _0x36c669=_['map'](db[_0xe328('0x2b')][_0xe328('0x2c')],function(_0x13d7e9){return{'name':_0x13d7e9['fieldName'],'type':_0x13d7e9[_0xe328('0x2d')]['key']};});_0x40f454[_0xe328('0x2e')]=_[_0xe328('0x2f')](_0x36c669,_0xe328('0x29'));_0x40f454['query']=_[_0xe328('0x30')](_0x3c0319[_0xe328('0x31')]);_0x40f454[_0xe328('0x32')]=_[_0xe328('0x33')](_0x40f454['model'],_0x40f454[_0xe328('0x31')]);_0x567368[_0xe328('0x34')]=_['intersection'](_0x40f454[_0xe328('0x2e')],qs[_0xe328('0x35')](_0x3c0319[_0xe328('0x31')][_0xe328('0x35')]));_0x567368[_0xe328('0x34')]=_0x567368[_0xe328('0x34')]['length']?_0x567368[_0xe328('0x34')]:_0x40f454['model'];if(!_0x3c0319[_0xe328('0x31')][_0xe328('0x36')]('nolimit')){_0x567368[_0xe328('0x1d')]=qs[_0xe328('0x1d')](_0x3c0319['query'][_0xe328('0x1d')]);_0x567368[_0xe328('0x1e')]=qs['offset'](_0x3c0319[_0xe328('0x31')]['offset']);}_0x567368['order']=qs['sort'](_0x3c0319[_0xe328('0x31')][_0xe328('0x37')]);_0x567368['where']=qs['filters'](_[_0xe328('0x38')](_0x3c0319[_0xe328('0x31')],_0x40f454[_0xe328('0x32')]),_0x36c669);if(_0x3c0319[_0xe328('0x31')]['filter']){_0x567368['where']=_[_0xe328('0x39')](_0x567368[_0xe328('0x3a')],{'$or':_['map'](_0x36c669,function(_0x14886d){if(_0x14886d[_0xe328('0x2d')]!==_0xe328('0x3b')){var _0x34efc0={};_0x34efc0[_0x14886d[_0xe328('0x29')]]={'$like':'%'+_0x3c0319[_0xe328('0x31')][_0xe328('0x3c')]+'%'};return _0x34efc0;}})});}_0x567368=_[_0xe328('0x39')]({},_0x567368,_0x3c0319['options']);var _0x4f6323={'where':_0x567368[_0xe328('0x3a')]};return db[_0xe328('0x2b')]['count'](_0x4f6323)[_0xe328('0x23')](function(_0x33fc49){_0x55b8fe[_0xe328('0x3d')]=_0x33fc49;if(_0x3c0319['query'][_0xe328('0x3e')]){_0x567368[_0xe328('0x3f')]=[{'all':!![]}];}return db['Schedule']['findAll'](_0x567368);})[_0xe328('0x23')](function(_0x48a5eb){_0x55b8fe['rows']=_0x48a5eb;return _0x55b8fe;})[_0xe328('0x23')](respondWithFilteredResult(_0x4723d9,_0x567368))['catch'](handleError(_0x4723d9,null));};exports[_0xe328('0x40')]=function(_0x313e61,_0x4eb13d){var _0x5cb26e={'raw':![],'where':{'id':_0x313e61[_0xe328('0x41')]['id']}},_0x321418={};_0x321418['model']=_[_0xe328('0x30')](db[_0xe328('0x2b')]['rawAttributes']);_0x321418[_0xe328('0x31')]=_['keys'](_0x313e61[_0xe328('0x31')]);_0x321418[_0xe328('0x32')]=_[_0xe328('0x33')](_0x321418[_0xe328('0x2e')],_0x321418[_0xe328('0x31')]);_0x5cb26e[_0xe328('0x34')]=_[_0xe328('0x33')](_0x321418[_0xe328('0x2e')],qs[_0xe328('0x35')](_0x313e61[_0xe328('0x31')][_0xe328('0x35')]));_0x5cb26e[_0xe328('0x34')]=_0x5cb26e[_0xe328('0x34')][_0xe328('0x42')]?_0x5cb26e[_0xe328('0x34')]:_0x321418[_0xe328('0x2e')];if(_0x313e61[_0xe328('0x31')]['includeAll']){_0x5cb26e[_0xe328('0x3f')]=[{'all':!![]}];}_0x5cb26e=_[_0xe328('0x39')]({},_0x5cb26e,_0x313e61['options']);return db[_0xe328('0x2b')][_0xe328('0x43')](_0x5cb26e)[_0xe328('0x23')](handleEntityNotFound(_0x4eb13d,null))['then'](respondWithResult(_0x4eb13d,null))[_0xe328('0x44')](handleError(_0x4eb13d,null));};exports[_0xe328('0x45')]=function(_0x18c149,_0x534246){return db[_0xe328('0x2b')][_0xe328('0x45')](_0x18c149[_0xe328('0x46')],{})[_0xe328('0x23')](function(_0x4f2cbd){var _0xbc1bc3=_0x18c149[_0xe328('0x47')]['get']({'plain':!![]});if(!_0xbc1bc3)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xbc1bc3[_0xe328('0x48')]===_0xe328('0x47')){var _0x33075a=_0x4f2cbd[_0xe328('0x25')]({'plain':!![]});var _0x29462d=_0xe328('0x26');return db[_0xe328('0x49')][_0xe328('0x43')]({'where':{'name':_0x29462d,'userProfileId':_0xbc1bc3[_0xe328('0x4a')]},'raw':!![]})[_0xe328('0x23')](function(_0x2f4a30){if(_0x2f4a30&&_0x2f4a30['autoAssociation']===0x0){return db[_0xe328('0x4b')][_0xe328('0x45')]({'name':_0x33075a[_0xe328('0x29')],'resourceId':_0x33075a['id'],'type':_0x2f4a30[_0xe328('0x29')],'sectionId':_0x2f4a30['id']},{})[_0xe328('0x23')](function(){return _0x4f2cbd;});}else{return _0x4f2cbd;}})[_0xe328('0x44')](function(_0x399727){logger[_0xe328('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x399727);throw _0x399727;});}return _0x4f2cbd;})[_0xe328('0x23')](respondWithResult(_0x534246,0xc9))[_0xe328('0x44')](handleError(_0x534246,null));};exports[_0xe328('0x22')]=function(_0x10a36d,_0x3b970c){if(_0x10a36d['body']['id']){delete _0x10a36d[_0xe328('0x46')]['id'];}return db[_0xe328('0x2b')][_0xe328('0x43')]({'where':{'id':_0x10a36d[_0xe328('0x41')]['id']}})['then'](handleEntityNotFound(_0x3b970c,null))[_0xe328('0x23')](saveUpdates(_0x10a36d[_0xe328('0x46')],null))[_0xe328('0x23')](respondWithResult(_0x3b970c,null))[_0xe328('0x44')](handleError(_0x3b970c,null));};exports[_0xe328('0x24')]=function(_0x48722f,_0x1fb933){return db[_0xe328('0x2b')][_0xe328('0x43')]({'where':{'id':_0x48722f[_0xe328('0x41')]['id']}})['then'](handleEntityNotFound(_0x1fb933,null))[_0xe328('0x23')](removeEntity(_0x1fb933,null))['catch'](handleError(_0x1fb933,null));};exports['run']=function(_0x690eac,_0x42738a,_0x2ab0ff){var _0x4ed855=require(_0xe328('0x4c'));return db[_0xe328('0x2b')][_0xe328('0x43')]({'where':{'id':_0x690eac[_0xe328('0x41')]['id']},'raw':!![]})[_0xe328('0x23')](handleEntityNotFound(_0x42738a,null))[_0xe328('0x23')](function(){_0x4ed855['run'](_0x690eac[_0xe328('0x41')]['id']);})['then'](respondWithStatusCode(_0x42738a,null))[_0xe328('0x44')](handleError(_0x42738a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2962=['util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./schedule.attributes','Schedule','tools_schedules','lodash'];(function(_0x13716d,_0x392bc4){var _0x52f001=function(_0x53f2dc){while(--_0x53f2dc){_0x13716d['push'](_0x13716d['shift']());}};_0x52f001(++_0x392bc4);}(_0x2962,0xb3));var _0x2296=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x2962[_0x46698a];return _0x356db0;};'use strict';var _=require(_0x2296('0x0'));var util=require(_0x2296('0x1'));var logger=require(_0x2296('0x2'))(_0x2296('0x3'));var moment=require(_0x2296('0x4'));var BPromise=require(_0x2296('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2296('0x6'));var rimraf=require(_0x2296('0x7'));var config=require(_0x2296('0x8'));var attributes=require(_0x2296('0x9'));module['exports']=function(_0x7bba33,_0x7f09cc){return _0x7bba33['define'](_0x2296('0xa'),attributes,{'tableName':_0x2296('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4121=['rimraf','../../config/environment','./schedule.attributes','exports','define','Schedule','tools_schedules','lodash','../../config/logger','api','moment','bluebird','path'];(function(_0x2f1a6e,_0x3082cb){var _0x5865e5=function(_0x459f1a){while(--_0x459f1a){_0x2f1a6e['push'](_0x2f1a6e['shift']());}};_0x5865e5(++_0x3082cb);}(_0x4121,0x14c));var _0x1412=function(_0x4435f2,_0x9895a9){_0x4435f2=_0x4435f2-0x0;var _0x4dd591=_0x4121[_0x4435f2];return _0x4dd591;};'use strict';var _=require(_0x1412('0x0'));var util=require('util');var logger=require(_0x1412('0x1'))(_0x1412('0x2'));var moment=require(_0x1412('0x3'));var BPromise=require(_0x1412('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1412('0x5'));var rimraf=require(_0x1412('0x6'));var config=require(_0x1412('0x7'));var attributes=require(_0x1412('0x8'));module[_0x1412('0x9')]=function(_0x473452,_0x37e9bd){return _0x473452[_0x1412('0xa')](_0x1412('0xb'),attributes,{'tableName':_0x1412('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92ad=['stringify','error','message','info','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','request','then','Schedule,\x20%s,\x20%s','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s'];(function(_0x11314c,_0x2ca8d7){var _0x12cb4a=function(_0x5e7ddc){while(--_0x5e7ddc){_0x11314c['push'](_0x11314c['shift']());}};_0x12cb4a(++_0x2ca8d7);}(_0x92ad,0x6f));var _0xd92a=function(_0x44ac68,_0x28c0c2){_0x44ac68=_0x44ac68-0x0;var _0x348c97=_0x92ad[_0x44ac68];return _0x348c97;};'use strict';var _=require('lodash');var util=require(_0xd92a('0x0'));var moment=require(_0xd92a('0x1'));var BPromise=require(_0xd92a('0x2'));var rs=require(_0xd92a('0x3'));var fs=require('fs');var Redis=require(_0xd92a('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd92a('0x5'));var logger=require(_0xd92a('0x6'))(_0xd92a('0x7'));var config=require('../../config/environment');var jayson=require(_0xd92a('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x14b984,_0xa7f771,_0x2c0b61){return new BPromise(function(_0x5b6f93,_0x2921f2){return client[_0xd92a('0x9')](_0x14b984,_0x2c0b61)[_0xd92a('0xa')](function(_0x7e35a2){logger['info'](_0xd92a('0xb'),_0xa7f771,_0xd92a('0xc'));logger[_0xd92a('0xd')](_0xd92a('0xe'),_0xa7f771,_0xd92a('0xc'),JSON[_0xd92a('0xf')](_0x7e35a2));if(_0x7e35a2[_0xd92a('0x10')]){if(_0x7e35a2[_0xd92a('0x10')]['code']===0x1f4){logger['error'](_0xd92a('0xb'),_0xa7f771,_0x7e35a2[_0xd92a('0x10')]['message']);return _0x2921f2(_0x7e35a2[_0xd92a('0x10')]['message']);}logger[_0xd92a('0x10')](_0xd92a('0xb'),_0xa7f771,_0x7e35a2[_0xd92a('0x10')][_0xd92a('0x11')]);return _0x5b6f93(_0x7e35a2[_0xd92a('0x10')][_0xd92a('0x11')]);}else{logger[_0xd92a('0x12')]('Schedule,\x20%s,\x20%s',_0xa7f771,_0xd92a('0xc'));_0x5b6f93(_0x7e35a2[_0xd92a('0x13')][_0xd92a('0x11')]);}})[_0xd92a('0x14')](function(_0x384c74){logger[_0xd92a('0x10')](_0xd92a('0xb'),_0xa7f771,_0x384c74);_0x2921f2(_0x384c74);});});}
\ No newline at end of file
+var _0xfeb2=['../../mysqldb','../../config/environment','jayson/promise','client','request','debug','Schedule,\x20%s,\x20%s,\x20%s','stringify','error','Schedule,\x20%s,\x20%s','message','info','request\x20sent','result','util','moment','bluebird','randomstring'];(function(_0x5d0547,_0x166ae8){var _0xef47ef=function(_0x12c3ff){while(--_0x12c3ff){_0x5d0547['push'](_0x5d0547['shift']());}};_0xef47ef(++_0x166ae8);}(_0xfeb2,0x7a));var _0x2feb=function(_0x14a0a0,_0x45d0cf){_0x14a0a0=_0x14a0a0-0x0;var _0x56b651=_0xfeb2[_0x14a0a0];return _0x56b651;};'use strict';var _=require('lodash');var util=require(_0x2feb('0x0'));var moment=require(_0x2feb('0x1'));var BPromise=require(_0x2feb('0x2'));var rs=require(_0x2feb('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2feb('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x2feb('0x5'));var jayson=require(_0x2feb('0x6'));var client=jayson[_0x2feb('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x358732,_0x5846e6,_0x2cd276){return new BPromise(function(_0x192c14,_0x1bc7e4){return client[_0x2feb('0x8')](_0x358732,_0x2cd276)['then'](function(_0x108deb){logger['info']('Schedule,\x20%s,\x20%s',_0x5846e6,'request\x20sent');logger[_0x2feb('0x9')](_0x2feb('0xa'),_0x5846e6,'request\x20sent',JSON[_0x2feb('0xb')](_0x108deb));if(_0x108deb['error']){if(_0x108deb[_0x2feb('0xc')]['code']===0x1f4){logger[_0x2feb('0xc')](_0x2feb('0xd'),_0x5846e6,_0x108deb[_0x2feb('0xc')]['message']);return _0x1bc7e4(_0x108deb[_0x2feb('0xc')][_0x2feb('0xe')]);}logger[_0x2feb('0xc')](_0x2feb('0xd'),_0x5846e6,_0x108deb[_0x2feb('0xc')][_0x2feb('0xe')]);return _0x192c14(_0x108deb['error']['message']);}else{logger[_0x2feb('0xf')](_0x2feb('0xd'),_0x5846e6,_0x2feb('0x10'));_0x192c14(_0x108deb[_0x2feb('0x11')][_0x2feb('0xe')]);}})['catch'](function(_0x580c07){logger[_0x2feb('0xc')](_0x2feb('0xd'),_0x5846e6,_0x580c07);_0x1bc7e4(_0x580c07);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf247=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','show','/:id/download','post','create','put','/:id','update','delete','destroy','path','express'];(function(_0x352e40,_0x1a352f){var _0x245864=function(_0x1d59d3){while(--_0x1d59d3){_0x352e40['push'](_0x352e40['shift']());}};_0x245864(++_0x1a352f);}(_0xf247,0xa6));var _0x7f24=function(_0xc36d01,_0x3bf1a6){_0xc36d01=_0xc36d01-0x0;var _0xecb231=_0xf247[_0xc36d01];return _0xecb231;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x7f24('0x0'));var timeout=require('connect-timeout');var express=require(_0x7f24('0x1'));var router=express[_0x7f24('0x2')]();var fs_extra=require(_0x7f24('0x3'));var auth=require(_0x7f24('0x4'));var interaction=require(_0x7f24('0x5'));var config=require(_0x7f24('0x6'));var controller=require('./screenRecording.controller');router[_0x7f24('0x7')]('/',auth[_0x7f24('0x8')](),controller[_0x7f24('0x9')]);router[_0x7f24('0x7')](_0x7f24('0xa'),auth[_0x7f24('0x8')](),controller[_0x7f24('0xb')]);router[_0x7f24('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x7f24('0xc')]);router[_0x7f24('0x7')](_0x7f24('0xd'),auth[_0x7f24('0x8')](),controller['download']);router[_0x7f24('0xe')]('/',auth[_0x7f24('0x8')](),controller[_0x7f24('0xf')]);router[_0x7f24('0x10')](_0x7f24('0x11'),auth[_0x7f24('0x8')](),controller[_0x7f24('0x12')]);router[_0x7f24('0x13')]('/:id',auth[_0x7f24('0x8')](),controller[_0x7f24('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x0f4e=['../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','/:id','show','/:id/download','download','post','put','update','destroy','exports','multer','path','connect-timeout'];(function(_0x2ef7be,_0x10529d){var _0x2f5c6b=function(_0x1570d2){while(--_0x1570d2){_0x2ef7be['push'](_0x2ef7be['shift']());}};_0x2f5c6b(++_0x10529d);}(_0x0f4e,0x166));var _0xe0f4=function(_0x45030e,_0x32b6b8){_0x45030e=_0x45030e-0x0;var _0x4df3be=_0x0f4e[_0x45030e];return _0x4df3be;};'use strict';var multer=require(_0xe0f4('0x0'));var util=require('util');var path=require(_0xe0f4('0x1'));var timeout=require(_0xe0f4('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xe0f4('0x3'));var interaction=require(_0xe0f4('0x4'));var config=require(_0xe0f4('0x5'));var controller=require('./screenRecording.controller');router[_0xe0f4('0x6')]('/',auth[_0xe0f4('0x7')](),controller[_0xe0f4('0x8')]);router[_0xe0f4('0x6')]('/describe',auth[_0xe0f4('0x7')](),controller[_0xe0f4('0x9')]);router[_0xe0f4('0x6')](_0xe0f4('0xa'),auth['isAuthenticated'](),controller[_0xe0f4('0xb')]);router[_0xe0f4('0x6')](_0xe0f4('0xc'),auth[_0xe0f4('0x7')](),controller[_0xe0f4('0xd')]);router[_0xe0f4('0xe')]('/',auth[_0xe0f4('0x7')](),controller['create']);router[_0xe0f4('0xf')]('/:id',auth['isAuthenticated'](),controller[_0xe0f4('0x10')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xe0f4('0x11')]);module[_0xe0f4('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58c9=['format','toString','updatedAt','MM-DD-YYYY\x20HH:mm','sequelize','moment','path','../../config/environment','exports','VIRTUAL','getDataValue','value','extname','STRING','replace','setDataValue','INTEGER','startedAt','subtract','closedAt','duration','DATE'];(function(_0x28f4d3,_0x77dd8f){var _0x2293e8=function(_0x494c07){while(--_0x494c07){_0x28f4d3['push'](_0x28f4d3['shift']());}};_0x2293e8(++_0x77dd8f);}(_0x58c9,0x1bc));var _0x958c=function(_0x244622,_0x4fe2b1){_0x244622=_0x244622-0x0;var _0x5ee744=_0x58c9[_0x244622];return _0x5ee744;};'use strict';var Sequelize=require(_0x958c('0x0'));var moment=require(_0x958c('0x1'));var path=require(_0x958c('0x2'));var config=require(_0x958c('0x3'));module[_0x958c('0x4')]={'format':{'type':Sequelize[_0x958c('0x5')],'get':function(){return this[_0x958c('0x6')](_0x958c('0x7'))?path[_0x958c('0x8')](this[_0x958c('0x6')](_0x958c('0x7'))):undefined;}},'interactionid':{'type':Sequelize[_0x958c('0x9')]},'channel':{'type':Sequelize[_0x958c('0x9')]},'value':{'type':Sequelize['STRING'],'set':function(_0x158388){var _0xa44c9=_0x158388[_0x958c('0xa')](/\\/g,'/');this[_0x958c('0xb')](_0x958c('0x7'),_0xa44c9);}},'rating':{'type':Sequelize[_0x958c('0xc')],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0x958c('0xc')],'set':function(_0x128ef6){this[_0x958c('0xb')](_0x958c('0xd'),moment()[_0x958c('0xe')](_0x128ef6,'ms'));this['setDataValue'](_0x958c('0xf'),moment());this[_0x958c('0xb')](_0x958c('0x10'),_0x128ef6);}},'startedAt':{'type':Sequelize[_0x958c('0x11')],'get':function(){return moment(this[_0x958c('0x6')](_0x958c('0xd')))[_0x958c('0x12')]('MM-DD-YYYY\x20HH:mm')[_0x958c('0x13')]();}},'closedAt':{'type':Sequelize[_0x958c('0x11')],'get':function(){return moment(this['getDataValue'](_0x958c('0xf')))[_0x958c('0x12')]('MM-DD-YYYY\x20HH:mm')[_0x958c('0x13')]();}},'createdAt':{'type':Sequelize[_0x958c('0x11')],'get':function(){return moment(this['getDataValue']('createdAt'))[_0x958c('0x12')]('MM-DD-YYYY\x20HH:mm')['toString']();}},'updatedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x958c('0x6')](_0x958c('0x14')))[_0x958c('0x12')](_0x958c('0x15'))['toString']();}}};
\ No newline at end of file
+var _0x6629=['subtract','closedAt','duration','format','MM-DD-YYYY\x20HH:mm','DATE','toString','createdAt','updatedAt','sequelize','../../config/environment','exports','VIRTUAL','getDataValue','extname','value','STRING','replace','INTEGER','setDataValue','startedAt'];(function(_0x313011,_0x8f2334){var _0x5eaffc=function(_0x5da719){while(--_0x5da719){_0x313011['push'](_0x313011['shift']());}};_0x5eaffc(++_0x8f2334);}(_0x6629,0x1c2));var _0x9662=function(_0x2f67f2,_0x21fe22){_0x2f67f2=_0x2f67f2-0x0;var _0x139360=_0x6629[_0x2f67f2];return _0x139360;};'use strict';var Sequelize=require(_0x9662('0x0'));var moment=require('moment');var path=require('path');var config=require(_0x9662('0x1'));module[_0x9662('0x2')]={'format':{'type':Sequelize[_0x9662('0x3')],'get':function(){return this[_0x9662('0x4')]('value')?path[_0x9662('0x5')](this[_0x9662('0x4')](_0x9662('0x6'))):undefined;}},'interactionid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x9662('0x7')]},'value':{'type':Sequelize[_0x9662('0x7')],'set':function(_0x457681){var _0x5ec533=_0x457681[_0x9662('0x8')](/\\/g,'/');this['setDataValue'](_0x9662('0x6'),_0x5ec533);}},'rating':{'type':Sequelize[_0x9662('0x9')],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0x9662('0x9')],'set':function(_0x11ae91){this[_0x9662('0xa')](_0x9662('0xb'),moment()[_0x9662('0xc')](_0x11ae91,'ms'));this[_0x9662('0xa')](_0x9662('0xd'),moment());this[_0x9662('0xa')](_0x9662('0xe'),_0x11ae91);}},'startedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x9662('0x4')]('startedAt'))[_0x9662('0xf')](_0x9662('0x10'))['toString']();}},'closedAt':{'type':Sequelize[_0x9662('0x11')],'get':function(){return moment(this[_0x9662('0x4')](_0x9662('0xd')))['format']('MM-DD-YYYY\x20HH:mm')[_0x9662('0x12')]();}},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x9662('0x4')](_0x9662('0x13')))[_0x9662('0xf')]('MM-DD-YYYY\x20HH:mm')['toString']();}},'updatedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x9662('0x4')](_0x9662('0x14')))['format'](_0x9662('0x10'))[_0x9662('0x12')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','end','json','undefined','limit','offset','count','status','set','Content-Range','apply','save','update','then','destroy','sendStatus','name','send','index','map','ScreenRecording','rawAttributes','fieldName','type','key','model','differenceBy','format','query','keys','filters','attributes','intersection','fields','length','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','show','params','catch','create','body','duration','createdAt','closedAt','describe','download','../../components/encryptor','uniqueid','find','value','join','root','decryptFile','secrets','server/files/screen_recordings','Sequelize','ValidationError','filename','unlink','Not\x20found','isNil','Entity\x20not\x20found','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','existsSync','eml-format','zip-dir','fast-json-patch','request-promise','mustache','path','sox'];(function(_0x33b51f,_0x4307e3){var _0x16fce2=function(_0x544bdf){while(--_0x544bdf){_0x33b51f['push'](_0x33b51f['shift']());}};_0x16fce2(++_0x4307e3);}(_0x3e74,0x175));var _0x43e7=function(_0x54b4f3,_0x220f7b){_0x54b4f3=_0x54b4f3-0x0;var _0x5ca0ec=_0x3e74[_0x54b4f3];return _0x5ca0ec;};'use strict';var emlformat=require(_0x43e7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x43e7('0x1'));var jsonpatch=require(_0x43e7('0x2'));var rp=require(_0x43e7('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x43e7('0x4'));var util=require('util');var path=require(_0x43e7('0x5'));var sox=require(_0x43e7('0x6'));var csv=require(_0x43e7('0x7'));var ejs=require(_0x43e7('0x8'));var fs=require('fs');var fs_extra=require(_0x43e7('0x9'));var _=require('lodash');var squel=require(_0x43e7('0xa'));var crypto=require(_0x43e7('0xb'));var jsforce=require(_0x43e7('0xc'));var deskjs=require(_0x43e7('0xd'));var toCsv=require(_0x43e7('0x7'));var querystring=require('querystring');var Papa=require(_0x43e7('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x43e7('0xf'));var as=require(_0x43e7('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x43e7('0x11'))('api');var utils=require(_0x43e7('0x12'));var config=require(_0x43e7('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x43e7('0x14'))['db'];function respondWithStatusCode(_0xc960ea,_0x2718d3){_0x2718d3=_0x2718d3||0xcc;return function(_0x3bb83f){if(_0x3bb83f){return _0xc960ea['sendStatus'](_0x2718d3);}return _0xc960ea['status'](_0x2718d3)[_0x43e7('0x15')]();};}function respondWithResult(_0x21fdd3,_0x44b0bd){_0x44b0bd=_0x44b0bd||0xc8;return function(_0x51b974){if(_0x51b974){return _0x21fdd3['status'](_0x44b0bd)[_0x43e7('0x16')](_0x51b974);}};}function respondWithFilteredResult(_0x14c146,_0x203378){return function(_0x328445){if(_0x328445){var _0x4de324=typeof _0x203378['offset']===_0x43e7('0x17')&&typeof _0x203378[_0x43e7('0x18')]===_0x43e7('0x17');var _0x5d346f=_0x328445['count'];var _0x446986=_0x4de324?0x0:_0x203378[_0x43e7('0x19')];var _0x9037d3=_0x4de324?_0x328445[_0x43e7('0x1a')]:_0x203378[_0x43e7('0x19')]+_0x203378[_0x43e7('0x18')];var _0x619236;if(_0x9037d3>=_0x5d346f){_0x9037d3=_0x5d346f;_0x619236=0xc8;}else{_0x619236=0xce;}_0x14c146[_0x43e7('0x1b')](_0x619236);return _0x14c146[_0x43e7('0x1c')](_0x43e7('0x1d'),_0x446986+'-'+_0x9037d3+'/'+_0x5d346f)[_0x43e7('0x16')](_0x328445);}return null;};}function patchUpdates(_0x177ee1){return function(_0x4b5d64){try{jsonpatch[_0x43e7('0x1e')](_0x4b5d64,_0x177ee1,!![]);}catch(_0x3c6625){return BPromise['reject'](_0x3c6625);}return _0x4b5d64[_0x43e7('0x1f')]();};}function saveUpdates(_0x3e281e,_0x3945bb){return function(_0x28aacc){if(_0x28aacc){return _0x28aacc[_0x43e7('0x20')](_0x3e281e)[_0x43e7('0x21')](function(_0x54a9e7){return _0x54a9e7;});}return null;};}function removeEntity(_0x454359,_0x4eea52){return function(_0x4c9df3){if(_0x4c9df3){return _0x4c9df3[_0x43e7('0x22')]()[_0x43e7('0x21')](function(){_0x454359['status'](0xcc)[_0x43e7('0x15')]();});}};}function handleEntityNotFound(_0x4ca5cf,_0x326dab){return function(_0x5c5e67){if(!_0x5c5e67){_0x4ca5cf[_0x43e7('0x23')](0x194);}return _0x5c5e67;};}function handleError(_0x1b5f50,_0x20888b){_0x20888b=_0x20888b||0x1f4;return function(_0x405f85){logger['error'](_0x405f85['stack']);if(_0x405f85[_0x43e7('0x24')]){delete _0x405f85['name'];}_0x1b5f50[_0x43e7('0x1b')](_0x20888b)[_0x43e7('0x25')](_0x405f85);};}exports[_0x43e7('0x26')]=function(_0xb1fc63,_0x5087d7){var _0x33a1a5={},_0x4690a6={},_0x45b675={'count':0x0,'rows':[]};var _0x50f9f5=_[_0x43e7('0x27')](db[_0x43e7('0x28')][_0x43e7('0x29')],function(_0x31b2a6){return{'name':_0x31b2a6[_0x43e7('0x2a')],'type':_0x31b2a6[_0x43e7('0x2b')][_0x43e7('0x2c')]};});_0x4690a6[_0x43e7('0x2d')]=_[_0x43e7('0x2e')](_[_0x43e7('0x27')](_0x50f9f5,'name'),[_0x43e7('0x2f')]);_0x4690a6[_0x43e7('0x30')]=_[_0x43e7('0x31')](_0xb1fc63[_0x43e7('0x30')]);_0x4690a6[_0x43e7('0x32')]=_['intersection'](_0x4690a6[_0x43e7('0x2d')],_0x4690a6[_0x43e7('0x30')]);_0x33a1a5[_0x43e7('0x33')]=_[_0x43e7('0x34')](_0x4690a6['model'],qs['fields'](_0xb1fc63['query'][_0x43e7('0x35')]));_0x33a1a5[_0x43e7('0x33')]=_0x33a1a5[_0x43e7('0x33')][_0x43e7('0x36')]?_0x33a1a5[_0x43e7('0x33')]:_0x4690a6[_0x43e7('0x2d')];if(!_0xb1fc63['query']['hasOwnProperty']('nolimit')){_0x33a1a5['limit']=qs['limit'](_0xb1fc63['query']['limit']);_0x33a1a5[_0x43e7('0x19')]=qs['offset'](_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x19')]);}_0x33a1a5[_0x43e7('0x37')]=qs[_0x43e7('0x38')](_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x38')]);_0x33a1a5[_0x43e7('0x39')]=qs['filters'](_['pick'](_0xb1fc63['query'],_0x4690a6[_0x43e7('0x32')]),_0x50f9f5);if(_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x3a')]){_0x33a1a5[_0x43e7('0x39')]=_[_0x43e7('0x3b')](_0x33a1a5[_0x43e7('0x39')],{'$or':_[_0x43e7('0x27')](_0x50f9f5,function(_0x2ffd43){if(_0x2ffd43['type']!==_0x43e7('0x3c')){var _0x2b0ffe={};_0x2b0ffe[_0x2ffd43['name']]={'$like':'%'+_0xb1fc63[_0x43e7('0x30')]['filter']+'%'};return _0x2b0ffe;}})});}_0x33a1a5=_[_0x43e7('0x3b')]({},_0x33a1a5,_0xb1fc63[_0x43e7('0x3d')]);var _0x1c6f45={'where':_0x33a1a5[_0x43e7('0x39')]};return db[_0x43e7('0x28')][_0x43e7('0x1a')](_0x1c6f45)['then'](function(_0x574a93){_0x45b675[_0x43e7('0x1a')]=_0x574a93;if(_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x3e')]){_0x33a1a5[_0x43e7('0x3f')]=[{'all':!![]}];}return db[_0x43e7('0x28')]['findAll'](_0x33a1a5);})[_0x43e7('0x21')](function(_0x4227c4){_0x45b675['rows']=_0x4227c4;return _0x45b675;})[_0x43e7('0x21')](respondWithFilteredResult(_0x5087d7,_0x33a1a5))['catch'](handleError(_0x5087d7,null));};exports[_0x43e7('0x40')]=function(_0x504101,_0x3d81ae){var _0x3b4235={'raw':![],'where':{'id':_0x504101[_0x43e7('0x41')]['id']}},_0x3a5807={};_0x3a5807['model']=_['keys'](db[_0x43e7('0x28')][_0x43e7('0x29')]);_0x3a5807[_0x43e7('0x30')]=_[_0x43e7('0x31')](_0x504101['query']);_0x3a5807['filters']=_['intersection'](_0x3a5807[_0x43e7('0x2d')],_0x3a5807['query']);_0x3b4235[_0x43e7('0x33')]=_['intersection'](_0x3a5807['model'],qs[_0x43e7('0x35')](_0x504101['query'][_0x43e7('0x35')]));_0x3b4235[_0x43e7('0x33')]=_0x3b4235[_0x43e7('0x33')][_0x43e7('0x36')]?_0x3b4235['attributes']:_0x3a5807[_0x43e7('0x2d')];if(_0x504101[_0x43e7('0x30')][_0x43e7('0x3e')]){_0x3b4235[_0x43e7('0x3f')]=[{'all':!![]}];}_0x3b4235=_[_0x43e7('0x3b')]({},_0x3b4235,_0x504101[_0x43e7('0x3d')]);return db['ScreenRecording']['find'](_0x3b4235)[_0x43e7('0x21')](handleEntityNotFound(_0x3d81ae,null))[_0x43e7('0x21')](respondWithResult(_0x3d81ae,null))[_0x43e7('0x42')](handleError(_0x3d81ae,null));};exports['create']=function(_0x5c1c18,_0x56489b){return db[_0x43e7('0x28')][_0x43e7('0x43')](_0x5c1c18['body'],{})[_0x43e7('0x21')](respondWithResult(_0x56489b,0xc9))[_0x43e7('0x42')](handleError(_0x56489b,null));};exports[_0x43e7('0x20')]=function(_0x560329,_0x593155){if(_0x560329['body']['id']){delete _0x560329['body']['id'];}delete _0x560329[_0x43e7('0x44')][_0x43e7('0x45')];delete _0x560329['body'][_0x43e7('0x46')];delete _0x560329[_0x43e7('0x44')][_0x43e7('0x47')];delete _0x560329[_0x43e7('0x44')]['value'];return db[_0x43e7('0x28')]['find']({'where':{'id':_0x560329['params']['id']}})[_0x43e7('0x21')](handleEntityNotFound(_0x593155,null))[_0x43e7('0x21')](saveUpdates(_0x560329[_0x43e7('0x44')],null))[_0x43e7('0x21')](respondWithResult(_0x593155,null))[_0x43e7('0x42')](handleError(_0x593155,null));};exports[_0x43e7('0x48')]=function(_0x1cd87c,_0x256ddd){return db[_0x43e7('0x28')][_0x43e7('0x48')]()['then'](respondWithResult(_0x256ddd,null))[_0x43e7('0x42')](handleError(_0x256ddd,null));};exports[_0x43e7('0x49')]=function(_0x499c03,_0x39e3ca,_0x4e6f6d){var _0x35b799=require(_0x43e7('0x4a'));var _0x34e2ec=![];var _0x1f561f={};if(_0x499c03[_0x43e7('0x30')]['type']&&_0x499c03['query'][_0x43e7('0x2b')]===_0x43e7('0x4b')){_0x1f561f[_0x43e7('0x4b')]=_0x499c03[_0x43e7('0x41')]['id'];}else{_0x1f561f['id']=_0x499c03[_0x43e7('0x41')]['id'];}return db[_0x43e7('0x28')][_0x43e7('0x4c')]({'where':_0x1f561f,'attributes':['id',_0x43e7('0x4d')],'raw':!![]})[_0x43e7('0x21')](handleEntityNotFound(_0x39e3ca,null))[_0x43e7('0x21')](function(_0x312306){if(_0x312306){var _0x4ace49=path[_0x43e7('0x4e')](config[_0x43e7('0x4f')],'server/files/screen_recordings',_0x312306[_0x43e7('0x4d')]);var _0x220bf2=util[_0x43e7('0x2f')]('%s.cypher',_0x4ace49);if(fs['existsSync'](_0x220bf2)){_0x34e2ec=!![];return _0x35b799[_0x43e7('0x50')](_0x220bf2,_0x4ace49,config[_0x43e7('0x51')]['recording'])[_0x43e7('0x21')](function(){return _0x312306;});}return _0x312306;}})['then'](function(_0x49a6ce){if(_0x49a6ce){var _0x1fa3f6=path[_0x43e7('0x4e')](config[_0x43e7('0x4f')],_0x43e7('0x52'),_0x49a6ce[_0x43e7('0x4d')]);if(!fs['existsSync'](_0x1fa3f6)){throw new db[(_0x43e7('0x53'))][(_0x43e7('0x54'))]('ScreenRecording\x20not\x20found');}if(_0x49a6ce[_0x43e7('0x55')]){return _0x39e3ca[_0x43e7('0x49')](_0x1fa3f6,_0x49a6ce[_0x43e7('0x55')]+path['extname'](_0x1fa3f6),function(){if(_0x34e2ec){fs['unlink'](_0x1fa3f6);}});}else{return _0x39e3ca['download'](_0x1fa3f6,function(_0x2ada55){if(_0x34e2ec){fs[_0x43e7('0x56')](_0x1fa3f6);}});}}})[_0x43e7('0x42')](function(_0x3a6404){if(_0x3a6404['message']==='ScreenRecording\x20not\x20found'){_0x39e3ca[_0x43e7('0x1b')](0x194)[_0x43e7('0x25')](_0x43e7('0x57'));}else{return handleError(_0x39e3ca,null);}});};exports[_0x43e7('0x22')]=function(_0x5ea0db,_0x4438c0){return db[_0x43e7('0x28')][_0x43e7('0x4c')]({'where':{'id':_0x5ea0db[_0x43e7('0x41')]['id']}})[_0x43e7('0x21')](function(_0xd41e79){if(_[_0x43e7('0x58')](_0xd41e79)){throw new ReferenceError(_0x43e7('0x59'));}return _0xd41e79;})[_0x43e7('0x21')](function(_0x381208){var _0x252f00=path['join'](config['root'],_0x43e7('0x52'),_0x381208['value']);logger['info']('cancellazione\x20fisica\x20documento\x20%s',_0x252f00);if(!_[_0x43e7('0x58')](_0x381208[_0x43e7('0x4d')])&&fs['existsSync'](_0x252f00)){logger[_0x43e7('0x5a')](_0x43e7('0x5b')+_0x252f00+_0x43e7('0x5c'));fs['unlinkSync'](_0x252f00);}_0x252f00=_0x252f00+_0x43e7('0x5d');if(!_[_0x43e7('0x58')](_0x381208[_0x43e7('0x4d')])&&fs[_0x43e7('0x5e')](_0x252f00)){logger[_0x43e7('0x5a')](_0x43e7('0x5b')+_0x252f00+_0x43e7('0x5c'));fs['unlinkSync'](_0x252f00);}return _0x381208;})[_0x43e7('0x21')](function(_0x40d0c0){if(!_0x40d0c0)throw new InternalError();return _0x40d0c0[_0x43e7('0x22')]();})['then'](function(){_0x4438c0['status'](0xcc)[_0x43e7('0x15')]();})['catch'](handleError(_0x4438c0,null));};
\ No newline at end of file
+var _0xed1f=['zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','ScreenRecording','rawAttributes','fieldName','type','key','differenceBy','map','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','includeAll','include','findAll','show','params','merge','options','catch','create','body','duration','createdAt','closedAt','value','find','describe','download','../../components/encryptor','uniqueid','join','root','server/files/screen_recordings','format','decryptFile','secrets','recording','existsSync','Sequelize','ValidationError','filename','extname','unlink','message','ScreenRecording\x20not\x20found','Not\x20found','isNil','Entity\x20not\x20found','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','eml-format','rimraf'];(function(_0x2345b1,_0x2a350a){var _0x450145=function(_0x53569e){while(--_0x53569e){_0x2345b1['push'](_0x2345b1['shift']());}};_0x450145(++_0x2a350a);}(_0xed1f,0x6a));var _0xfed1=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xed1f[_0x59ee6f];return _0x4c0979;};'use strict';var emlformat=require(_0xfed1('0x0'));var rimraf=require(_0xfed1('0x1'));var zipdir=require(_0xfed1('0x2'));var jsonpatch=require(_0xfed1('0x3'));var rp=require(_0xfed1('0x4'));var moment=require(_0xfed1('0x5'));var BPromise=require(_0xfed1('0x6'));var Mustache=require(_0xfed1('0x7'));var util=require(_0xfed1('0x8'));var path=require(_0xfed1('0x9'));var sox=require(_0xfed1('0xa'));var csv=require(_0xfed1('0xb'));var ejs=require(_0xfed1('0xc'));var fs=require('fs');var fs_extra=require(_0xfed1('0xd'));var _=require(_0xfed1('0xe'));var squel=require(_0xfed1('0xf'));var crypto=require(_0xfed1('0x10'));var jsforce=require(_0xfed1('0x11'));var deskjs=require('desk.js');var toCsv=require(_0xfed1('0xb'));var querystring=require(_0xfed1('0x12'));var Papa=require('papaparse');var Redis=require(_0xfed1('0x13'));var authService=require(_0xfed1('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xfed1('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfed1('0x16'))(_0xfed1('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xfed1('0x18'));var db=require(_0xfed1('0x19'))['db'];function respondWithStatusCode(_0x569a6e,_0x17f4fe){_0x17f4fe=_0x17f4fe||0xcc;return function(_0x5a3469){if(_0x5a3469){return _0x569a6e['sendStatus'](_0x17f4fe);}return _0x569a6e[_0xfed1('0x1a')](_0x17f4fe)[_0xfed1('0x1b')]();};}function respondWithResult(_0x532537,_0x2dde3a){_0x2dde3a=_0x2dde3a||0xc8;return function(_0x5b9455){if(_0x5b9455){return _0x532537['status'](_0x2dde3a)[_0xfed1('0x1c')](_0x5b9455);}};}function respondWithFilteredResult(_0x39aa0c,_0x1fbb7a){return function(_0x123c46){if(_0x123c46){var _0x582e67=typeof _0x1fbb7a[_0xfed1('0x1d')]==='undefined'&&typeof _0x1fbb7a[_0xfed1('0x1e')]===_0xfed1('0x1f');var _0x489a0f=_0x123c46[_0xfed1('0x20')];var _0xa72a20=_0x582e67?0x0:_0x1fbb7a['offset'];var _0x59509b=_0x582e67?_0x123c46['count']:_0x1fbb7a[_0xfed1('0x1d')]+_0x1fbb7a['limit'];var _0x201f18;if(_0x59509b>=_0x489a0f){_0x59509b=_0x489a0f;_0x201f18=0xc8;}else{_0x201f18=0xce;}_0x39aa0c[_0xfed1('0x1a')](_0x201f18);return _0x39aa0c['set'](_0xfed1('0x21'),_0xa72a20+'-'+_0x59509b+'/'+_0x489a0f)[_0xfed1('0x1c')](_0x123c46);}return null;};}function patchUpdates(_0x59ee9d){return function(_0x3ce944){try{jsonpatch[_0xfed1('0x22')](_0x3ce944,_0x59ee9d,!![]);}catch(_0xff4842){return BPromise[_0xfed1('0x23')](_0xff4842);}return _0x3ce944['save']();};}function saveUpdates(_0x203cec,_0x59333e){return function(_0x446558){if(_0x446558){return _0x446558[_0xfed1('0x24')](_0x203cec)[_0xfed1('0x25')](function(_0x532ec2){return _0x532ec2;});}return null;};}function removeEntity(_0x41d22c,_0x594917){return function(_0x460555){if(_0x460555){return _0x460555[_0xfed1('0x26')]()[_0xfed1('0x25')](function(){_0x41d22c[_0xfed1('0x1a')](0xcc)[_0xfed1('0x1b')]();});}};}function handleEntityNotFound(_0x1199b7,_0x527fc7){return function(_0x465ce6){if(!_0x465ce6){_0x1199b7[_0xfed1('0x27')](0x194);}return _0x465ce6;};}function handleError(_0x49072b,_0x1d6c72){_0x1d6c72=_0x1d6c72||0x1f4;return function(_0x2b9dd2){logger[_0xfed1('0x28')](_0x2b9dd2[_0xfed1('0x29')]);if(_0x2b9dd2[_0xfed1('0x2a')]){delete _0x2b9dd2[_0xfed1('0x2a')];}_0x49072b['status'](_0x1d6c72)[_0xfed1('0x2b')](_0x2b9dd2);};}exports['index']=function(_0x3106ee,_0x4e5249){var _0x53b0c9={},_0x1cec64={},_0x42c950={'count':0x0,'rows':[]};var _0x2d334e=_['map'](db[_0xfed1('0x2c')][_0xfed1('0x2d')],function(_0x13f414){return{'name':_0x13f414[_0xfed1('0x2e')],'type':_0x13f414[_0xfed1('0x2f')][_0xfed1('0x30')]};});_0x1cec64['model']=_[_0xfed1('0x31')](_[_0xfed1('0x32')](_0x2d334e,'name'),['format']);_0x1cec64[_0xfed1('0x33')]=_[_0xfed1('0x34')](_0x3106ee[_0xfed1('0x33')]);_0x1cec64[_0xfed1('0x35')]=_[_0xfed1('0x36')](_0x1cec64['model'],_0x1cec64[_0xfed1('0x33')]);_0x53b0c9[_0xfed1('0x37')]=_[_0xfed1('0x36')](_0x1cec64[_0xfed1('0x38')],qs[_0xfed1('0x39')](_0x3106ee['query'][_0xfed1('0x39')]));_0x53b0c9['attributes']=_0x53b0c9[_0xfed1('0x37')][_0xfed1('0x3a')]?_0x53b0c9[_0xfed1('0x37')]:_0x1cec64[_0xfed1('0x38')];if(!_0x3106ee[_0xfed1('0x33')][_0xfed1('0x3b')](_0xfed1('0x3c'))){_0x53b0c9[_0xfed1('0x1e')]=qs['limit'](_0x3106ee[_0xfed1('0x33')][_0xfed1('0x1e')]);_0x53b0c9[_0xfed1('0x1d')]=qs[_0xfed1('0x1d')](_0x3106ee['query']['offset']);}_0x53b0c9[_0xfed1('0x3d')]=qs[_0xfed1('0x3e')](_0x3106ee[_0xfed1('0x33')][_0xfed1('0x3e')]);_0x53b0c9[_0xfed1('0x3f')]=qs[_0xfed1('0x35')](_[_0xfed1('0x40')](_0x3106ee[_0xfed1('0x33')],_0x1cec64['filters']),_0x2d334e);if(_0x3106ee['query'][_0xfed1('0x41')]){_0x53b0c9[_0xfed1('0x3f')]=_['merge'](_0x53b0c9[_0xfed1('0x3f')],{'$or':_[_0xfed1('0x32')](_0x2d334e,function(_0x3b0973){if(_0x3b0973[_0xfed1('0x2f')]!==_0xfed1('0x42')){var _0x31ffeb={};_0x31ffeb[_0x3b0973[_0xfed1('0x2a')]]={'$like':'%'+_0x3106ee[_0xfed1('0x33')][_0xfed1('0x41')]+'%'};return _0x31ffeb;}})});}_0x53b0c9=_['merge']({},_0x53b0c9,_0x3106ee['options']);var _0x5598dc={'where':_0x53b0c9[_0xfed1('0x3f')]};return db[_0xfed1('0x2c')][_0xfed1('0x20')](_0x5598dc)['then'](function(_0x3454e6){_0x42c950['count']=_0x3454e6;if(_0x3106ee[_0xfed1('0x33')][_0xfed1('0x43')]){_0x53b0c9[_0xfed1('0x44')]=[{'all':!![]}];}return db['ScreenRecording'][_0xfed1('0x45')](_0x53b0c9);})[_0xfed1('0x25')](function(_0x422433){_0x42c950['rows']=_0x422433;return _0x42c950;})[_0xfed1('0x25')](respondWithFilteredResult(_0x4e5249,_0x53b0c9))['catch'](handleError(_0x4e5249,null));};exports[_0xfed1('0x46')]=function(_0xf1f739,_0x229fc7){var _0x13c087={'raw':![],'where':{'id':_0xf1f739[_0xfed1('0x47')]['id']}},_0x1bfbe8={};_0x1bfbe8[_0xfed1('0x38')]=_[_0xfed1('0x34')](db[_0xfed1('0x2c')]['rawAttributes']);_0x1bfbe8[_0xfed1('0x33')]=_[_0xfed1('0x34')](_0xf1f739[_0xfed1('0x33')]);_0x1bfbe8['filters']=_['intersection'](_0x1bfbe8[_0xfed1('0x38')],_0x1bfbe8[_0xfed1('0x33')]);_0x13c087[_0xfed1('0x37')]=_[_0xfed1('0x36')](_0x1bfbe8[_0xfed1('0x38')],qs[_0xfed1('0x39')](_0xf1f739[_0xfed1('0x33')][_0xfed1('0x39')]));_0x13c087[_0xfed1('0x37')]=_0x13c087[_0xfed1('0x37')][_0xfed1('0x3a')]?_0x13c087[_0xfed1('0x37')]:_0x1bfbe8['model'];if(_0xf1f739[_0xfed1('0x33')][_0xfed1('0x43')]){_0x13c087[_0xfed1('0x44')]=[{'all':!![]}];}_0x13c087=_[_0xfed1('0x48')]({},_0x13c087,_0xf1f739[_0xfed1('0x49')]);return db[_0xfed1('0x2c')]['find'](_0x13c087)[_0xfed1('0x25')](handleEntityNotFound(_0x229fc7,null))[_0xfed1('0x25')](respondWithResult(_0x229fc7,null))[_0xfed1('0x4a')](handleError(_0x229fc7,null));};exports['create']=function(_0x22874a,_0x10f98d){return db[_0xfed1('0x2c')][_0xfed1('0x4b')](_0x22874a['body'],{})[_0xfed1('0x25')](respondWithResult(_0x10f98d,0xc9))[_0xfed1('0x4a')](handleError(_0x10f98d,null));};exports[_0xfed1('0x24')]=function(_0x42761f,_0x14745e){if(_0x42761f[_0xfed1('0x4c')]['id']){delete _0x42761f[_0xfed1('0x4c')]['id'];}delete _0x42761f[_0xfed1('0x4c')][_0xfed1('0x4d')];delete _0x42761f[_0xfed1('0x4c')][_0xfed1('0x4e')];delete _0x42761f[_0xfed1('0x4c')][_0xfed1('0x4f')];delete _0x42761f[_0xfed1('0x4c')][_0xfed1('0x50')];return db[_0xfed1('0x2c')][_0xfed1('0x51')]({'where':{'id':_0x42761f[_0xfed1('0x47')]['id']}})['then'](handleEntityNotFound(_0x14745e,null))['then'](saveUpdates(_0x42761f[_0xfed1('0x4c')],null))[_0xfed1('0x25')](respondWithResult(_0x14745e,null))[_0xfed1('0x4a')](handleError(_0x14745e,null));};exports[_0xfed1('0x52')]=function(_0x5da599,_0x3c2534){return db[_0xfed1('0x2c')]['describe']()['then'](respondWithResult(_0x3c2534,null))['catch'](handleError(_0x3c2534,null));};exports[_0xfed1('0x53')]=function(_0x1aaa3d,_0x15e90f,_0x1d8ef2){var _0x2665c8=require(_0xfed1('0x54'));var _0x1a9f22=![];var _0x144102={};if(_0x1aaa3d[_0xfed1('0x33')][_0xfed1('0x2f')]&&_0x1aaa3d['query']['type']===_0xfed1('0x55')){_0x144102[_0xfed1('0x55')]=_0x1aaa3d[_0xfed1('0x47')]['id'];}else{_0x144102['id']=_0x1aaa3d[_0xfed1('0x47')]['id'];}return db[_0xfed1('0x2c')][_0xfed1('0x51')]({'where':_0x144102,'attributes':['id',_0xfed1('0x50')],'raw':!![]})[_0xfed1('0x25')](handleEntityNotFound(_0x15e90f,null))[_0xfed1('0x25')](function(_0x427fa6){if(_0x427fa6){var _0xbd49dc=path[_0xfed1('0x56')](config[_0xfed1('0x57')],_0xfed1('0x58'),_0x427fa6[_0xfed1('0x50')]);var _0x3a7a42=util[_0xfed1('0x59')]('%s.cypher',_0xbd49dc);if(fs['existsSync'](_0x3a7a42)){_0x1a9f22=!![];return _0x2665c8[_0xfed1('0x5a')](_0x3a7a42,_0xbd49dc,config[_0xfed1('0x5b')][_0xfed1('0x5c')])[_0xfed1('0x25')](function(){return _0x427fa6;});}return _0x427fa6;}})[_0xfed1('0x25')](function(_0x41a22a){if(_0x41a22a){var _0x2ccdc3=path[_0xfed1('0x56')](config[_0xfed1('0x57')],_0xfed1('0x58'),_0x41a22a[_0xfed1('0x50')]);if(!fs[_0xfed1('0x5d')](_0x2ccdc3)){throw new db[(_0xfed1('0x5e'))][(_0xfed1('0x5f'))]('ScreenRecording\x20not\x20found');}if(_0x41a22a[_0xfed1('0x60')]){return _0x15e90f['download'](_0x2ccdc3,_0x41a22a['filename']+path[_0xfed1('0x61')](_0x2ccdc3),function(){if(_0x1a9f22){fs['unlink'](_0x2ccdc3);}});}else{return _0x15e90f[_0xfed1('0x53')](_0x2ccdc3,function(_0x5acc45){if(_0x1a9f22){fs[_0xfed1('0x62')](_0x2ccdc3);}});}}})[_0xfed1('0x4a')](function(_0x53f0ab){if(_0x53f0ab[_0xfed1('0x63')]===_0xfed1('0x64')){_0x15e90f['status'](0x194)[_0xfed1('0x2b')](_0xfed1('0x65'));}else{return handleError(_0x15e90f,null);}});};exports[_0xfed1('0x26')]=function(_0x2f37b9,_0x59a23a){return db[_0xfed1('0x2c')][_0xfed1('0x51')]({'where':{'id':_0x2f37b9[_0xfed1('0x47')]['id']}})[_0xfed1('0x25')](function(_0x23347a){if(_[_0xfed1('0x66')](_0x23347a)){throw new ReferenceError(_0xfed1('0x67'));}return _0x23347a;})[_0xfed1('0x25')](function(_0x5c043d){var _0x2d66ec=path[_0xfed1('0x56')](config[_0xfed1('0x57')],_0xfed1('0x58'),_0x5c043d[_0xfed1('0x50')]);logger[_0xfed1('0x68')]('cancellazione\x20fisica\x20documento\x20%s',_0x2d66ec);if(!_['isNil'](_0x5c043d['value'])&&fs[_0xfed1('0x5d')](_0x2d66ec)){logger[_0xfed1('0x68')](_0xfed1('0x69')+_0x2d66ec+_0xfed1('0x6a'));fs['unlinkSync'](_0x2d66ec);}_0x2d66ec=_0x2d66ec+_0xfed1('0x6b');if(!_['isNil'](_0x5c043d[_0xfed1('0x50')])&&fs[_0xfed1('0x5d')](_0x2d66ec)){logger[_0xfed1('0x68')](_0xfed1('0x69')+_0x2d66ec+_0xfed1('0x6a'));fs['unlinkSync'](_0x2d66ec);}return _0x5c043d;})[_0xfed1('0x25')](function(_0x6b74cb){if(!_0x6b74cb)throw new InternalError();return _0x6b74cb[_0xfed1('0x26')]();})['then'](function(){_0x59a23a[_0xfed1('0x1a')](0xcc)[_0xfed1('0x1b')]();})[_0xfed1('0x4a')](handleError(_0x59a23a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd2aa=['screen_recordings','interactionid','lodash','util','../../config/logger','moment','bluebird','request-promise','path','../../config/environment','define','ScreenRecording'];(function(_0x29ce14,_0x334166){var _0x48f289=function(_0x288d11){while(--_0x288d11){_0x29ce14['push'](_0x29ce14['shift']());}};_0x48f289(++_0x334166);}(_0xd2aa,0xb6));var _0xad2a=function(_0x20b29c,_0xe22528){_0x20b29c=_0x20b29c-0x0;var _0x20d81b=_0xd2aa[_0x20b29c];return _0x20d81b;};'use strict';var _=require(_0xad2a('0x0'));var util=require(_0xad2a('0x1'));var logger=require(_0xad2a('0x2'))('api');var moment=require(_0xad2a('0x3'));var BPromise=require(_0xad2a('0x4'));var rp=require(_0xad2a('0x5'));var fs=require('fs');var path=require(_0xad2a('0x6'));var rimraf=require('rimraf');var config=require(_0xad2a('0x7'));var attributes=require('./screenRecording.attributes');module['exports']=function(_0x2a04c6,_0x1c82cb){return _0x2a04c6[_0xad2a('0x8')](_0xad2a('0x9'),attributes,{'tableName':_0xad2a('0xa'),'paranoid':![],'indexes':[{'name':'interactionid','fields':[_0xad2a('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x4c91=['./screenRecording.attributes','exports','ScreenRecording','screen_recordings','interactionid','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment'];(function(_0x43bc6b,_0x2b577c){var _0x114255=function(_0x2310e2){while(--_0x2310e2){_0x43bc6b['push'](_0x43bc6b['shift']());}};_0x114255(++_0x2b577c);}(_0x4c91,0xb9));var _0x14c9=function(_0x3ca7f2,_0x4acd63){_0x3ca7f2=_0x3ca7f2-0x0;var _0x260451=_0x4c91[_0x3ca7f2];return _0x260451;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x14c9('0x0'))(_0x14c9('0x1'));var moment=require(_0x14c9('0x2'));var BPromise=require(_0x14c9('0x3'));var rp=require(_0x14c9('0x4'));var fs=require('fs');var path=require(_0x14c9('0x5'));var rimraf=require('rimraf');var config=require(_0x14c9('0x6'));var attributes=require(_0x14c9('0x7'));module[_0x14c9('0x8')]=function(_0x55946a,_0x374f05){return _0x55946a['define'](_0x14c9('0x9'),attributes,{'tableName':_0x14c9('0xa'),'paranoid':![],'indexes':[{'name':_0x14c9('0xb'),'fields':['interactionid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49d1=['request\x20sent','debug','ScreenRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','ScreenRecording,\x20%s,\x20%s','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then'];(function(_0x4d7c0b,_0x24316a){var _0xecbd05=function(_0x2d379e){while(--_0x2d379e){_0x4d7c0b['push'](_0x4d7c0b['shift']());}};_0xecbd05(++_0x24316a);}(_0x49d1,0xe1));var _0x149d=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x49d1[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x149d('0x0'));var util=require(_0x149d('0x1'));var moment=require(_0x149d('0x2'));var BPromise=require(_0x149d('0x3'));var rs=require(_0x149d('0x4'));var fs=require('fs');var Redis=require(_0x149d('0x5'));var db=require(_0x149d('0x6'))['db'];var utils=require(_0x149d('0x7'));var logger=require(_0x149d('0x8'))(_0x149d('0x9'));var config=require(_0x149d('0xa'));var jayson=require(_0x149d('0xb'));var client=jayson[_0x149d('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x199e93,_0x1e21b5,_0x41f99f){return new BPromise(function(_0xdd8b41,_0x2ee7fa){return client[_0x149d('0xd')](_0x199e93,_0x41f99f)[_0x149d('0xe')](function(_0x4be10e){logger['info']('ScreenRecording,\x20%s,\x20%s',_0x1e21b5,_0x149d('0xf'));logger[_0x149d('0x10')](_0x149d('0x11'),_0x1e21b5,_0x149d('0xf'),JSON[_0x149d('0x12')](_0x4be10e));if(_0x4be10e[_0x149d('0x13')]){if(_0x4be10e[_0x149d('0x13')][_0x149d('0x14')]===0x1f4){logger[_0x149d('0x13')](_0x149d('0x15'),_0x1e21b5,_0x4be10e['error'][_0x149d('0x16')]);return _0x2ee7fa(_0x4be10e[_0x149d('0x13')][_0x149d('0x16')]);}logger[_0x149d('0x13')]('ScreenRecording,\x20%s,\x20%s',_0x1e21b5,_0x4be10e[_0x149d('0x13')]['message']);return _0xdd8b41(_0x4be10e[_0x149d('0x13')]['message']);}else{logger['info']('ScreenRecording,\x20%s,\x20%s',_0x1e21b5,'request\x20sent');_0xdd8b41(_0x4be10e['result']['message']);}})[_0x149d('0x17')](function(_0x892e04){logger[_0x149d('0x13')](_0x149d('0x15'),_0x1e21b5,_0x892e04);_0x2ee7fa(_0x892e04);});});}
\ No newline at end of file
+var _0xf3d3=['moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','http','then','info','debug','ScreenRecording,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','ScreenRecording,\x20%s,\x20%s','message','result','catch','util'];(function(_0xcdf6cd,_0x419419){var _0x58baa8=function(_0x1000f2){while(--_0x1000f2){_0xcdf6cd['push'](_0xcdf6cd['shift']());}};_0x58baa8(++_0x419419);}(_0xf3d3,0x18e));var _0x3f3d=function(_0x25b300,_0x5ea2bb){_0x25b300=_0x25b300-0x0;var _0x3c4e8a=_0xf3d3[_0x25b300];return _0x3c4e8a;};'use strict';var _=require('lodash');var util=require(_0x3f3d('0x0'));var moment=require(_0x3f3d('0x1'));var BPromise=require(_0x3f3d('0x2'));var rs=require(_0x3f3d('0x3'));var fs=require('fs');var Redis=require(_0x3f3d('0x4'));var db=require(_0x3f3d('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x3f3d('0x6'));var config=require(_0x3f3d('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x3f3d('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3646d6,_0x187be6,_0xcf9e4){return new BPromise(function(_0xfca1e5,_0x417631){return client['request'](_0x3646d6,_0xcf9e4)[_0x3f3d('0x9')](function(_0x507cc6){logger[_0x3f3d('0xa')]('ScreenRecording,\x20%s,\x20%s',_0x187be6,'request\x20sent');logger[_0x3f3d('0xb')](_0x3f3d('0xc'),_0x187be6,_0x3f3d('0xd'),JSON[_0x3f3d('0xe')](_0x507cc6));if(_0x507cc6[_0x3f3d('0xf')]){if(_0x507cc6['error'][_0x3f3d('0x10')]===0x1f4){logger[_0x3f3d('0xf')](_0x3f3d('0x11'),_0x187be6,_0x507cc6['error']['message']);return _0x417631(_0x507cc6[_0x3f3d('0xf')][_0x3f3d('0x12')]);}logger[_0x3f3d('0xf')]('ScreenRecording,\x20%s,\x20%s',_0x187be6,_0x507cc6[_0x3f3d('0xf')]['message']);return _0xfca1e5(_0x507cc6['error'][_0x3f3d('0x12')]);}else{logger[_0x3f3d('0xa')](_0x3f3d('0x11'),_0x187be6,'request\x20sent');_0xfca1e5(_0x507cc6[_0x3f3d('0x13')][_0x3f3d('0x12')]);}})[_0x3f3d('0x14')](function(_0x1359f1){logger[_0x3f3d('0xf')](_0x3f3d('0x11'),_0x187be6,_0x1359f1);_0x417631(_0x1359f1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf4a=['join','server/files/images/logos/','format','%s%s','originalname','single','addLogo','logologin','extname','post','file','addLogoLogin','root','preferred','addFavicon','put','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./setting.controller','isAuthenticated','get','/now','getDate','/:id','show','/:id/logo','getLogo','/:id/logo_login','getLogoLogin','/:id/gdpr','gdpr','/:id/preferred','/:id/favicon','diskStorage'];(function(_0x4fec9b,_0x2914bd){var _0x163904=function(_0x152752){while(--_0x152752){_0x4fec9b['push'](_0x4fec9b['shift']());}};_0x163904(++_0x2914bd);}(_0xbf4a,0xb1));var _0xabf4=function(_0x7a079c,_0x582ad4){_0x7a079c=_0x7a079c-0x0;var _0x2fb89f=_0xbf4a[_0x7a079c];return _0x2fb89f;};'use strict';var multer=require('multer');var util=require(_0xabf4('0x0'));var path=require(_0xabf4('0x1'));var timeout=require(_0xabf4('0x2'));var express=require(_0xabf4('0x3'));var router=express['Router']();var fs_extra=require(_0xabf4('0x4'));var auth=require(_0xabf4('0x5'));var interaction=require(_0xabf4('0x6'));var config=require('../../config/environment');var controller=require(_0xabf4('0x7'));router['get']('/',auth[_0xabf4('0x8')](),controller['index']);router[_0xabf4('0x9')](_0xabf4('0xa'),controller[_0xabf4('0xb')]);router['get'](_0xabf4('0xc'),controller[_0xabf4('0xd')]);router[_0xabf4('0x9')](_0xabf4('0xe'),controller[_0xabf4('0xf')]);router[_0xabf4('0x9')](_0xabf4('0x10'),controller[_0xabf4('0x11')]);router['get'](_0xabf4('0x12'),controller[_0xabf4('0x13')]);router[_0xabf4('0x9')](_0xabf4('0x14'),controller['getPreferred']);router[_0xabf4('0x9')](_0xabf4('0x15'),controller['getFavicon']);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x359019,_0x3837f3,_0x5bc744){_0x5bc744(null,path[_0xabf4('0x17')](config['root'],_0xabf4('0x18')));},'filename':function(_0x2b7382,_0x5b6d77,_0x3ec5d7){_0x3ec5d7(null,util[_0xabf4('0x19')](_0xabf4('0x1a'),'logo',path['extname'](_0x5b6d77[_0xabf4('0x1b')])));}})});router['post'](_0xabf4('0xe'),upload[_0xabf4('0x1c')]('file'),controller[_0xabf4('0x1d')]);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x2c9d21,_0x919d47,_0x4a1afb){_0x4a1afb(null,path[_0xabf4('0x17')](config['root'],'server/files/images/logos/'));},'filename':function(_0x46008c,_0x382cb1,_0x8f5852){_0x8f5852(null,util['format'](_0xabf4('0x1a'),_0xabf4('0x1e'),path[_0xabf4('0x1f')](_0x382cb1[_0xabf4('0x1b')])));}})});router[_0xabf4('0x20')](_0xabf4('0x10'),upload['single'](_0xabf4('0x21')),controller[_0xabf4('0x22')]);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x502635,_0xfadf,_0x581384){_0x581384(null,path[_0xabf4('0x17')](config[_0xabf4('0x23')],_0xabf4('0x18')));},'filename':function(_0x48e778,_0x2316a6,_0x566ae9){_0x566ae9(null,util[_0xabf4('0x19')]('%s%s',_0xabf4('0x24'),path['extname'](_0x2316a6[_0xabf4('0x1b')])));}})});router[_0xabf4('0x20')](_0xabf4('0x14'),upload[_0xabf4('0x1c')](_0xabf4('0x21')),controller['addPreferred']);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x5ec35f,_0x5c1f3f,_0x56aac5){_0x56aac5(null,path[_0xabf4('0x17')](config[_0xabf4('0x23')],_0xabf4('0x18')));},'filename':function(_0x5348dc,_0x171c9e,_0x363c19){_0x363c19(null,util['format']('%s%s','favicon',path[_0xabf4('0x1f')](_0x171c9e['originalname'])));}})});router[_0xabf4('0x20')](_0xabf4('0x15'),upload[_0xabf4('0x1c')](_0xabf4('0x21')),controller[_0xabf4('0x25')]);router[_0xabf4('0x26')]('/:id',auth['isAuthenticated'](),controller['update']);module[_0xabf4('0x27')]=router;
\ No newline at end of file
+var _0x8d85=['get','/now','/:id','show','/:id/logo','/:id/logo_login','getLogoLogin','/:id/gdpr','gdpr','/:id/preferred','getPreferred','join','server/files/images/logos/','logo','post','single','file','addLogo','diskStorage','logologin','extname','root','format','%s%s','preferred','/:id/favicon','put','update','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./setting.controller'];(function(_0x262cef,_0x4fdc28){var _0x1ad394=function(_0x3f8a2a){while(--_0x3f8a2a){_0x262cef['push'](_0x262cef['shift']());}};_0x1ad394(++_0x4fdc28);}(_0x8d85,0x17c));var _0x58d8=function(_0x5aa83f,_0xfc2bb){_0x5aa83f=_0x5aa83f-0x0;var _0x356e9e=_0x8d85[_0x5aa83f];return _0x356e9e;};'use strict';var multer=require(_0x58d8('0x0'));var util=require(_0x58d8('0x1'));var path=require(_0x58d8('0x2'));var timeout=require(_0x58d8('0x3'));var express=require(_0x58d8('0x4'));var router=express[_0x58d8('0x5')]();var fs_extra=require(_0x58d8('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x58d8('0x7'));var config=require(_0x58d8('0x8'));var controller=require(_0x58d8('0x9'));router[_0x58d8('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x58d8('0xa')](_0x58d8('0xb'),controller['getDate']);router[_0x58d8('0xa')](_0x58d8('0xc'),controller[_0x58d8('0xd')]);router[_0x58d8('0xa')](_0x58d8('0xe'),controller['getLogo']);router[_0x58d8('0xa')](_0x58d8('0xf'),controller[_0x58d8('0x10')]);router[_0x58d8('0xa')](_0x58d8('0x11'),controller[_0x58d8('0x12')]);router[_0x58d8('0xa')](_0x58d8('0x13'),controller[_0x58d8('0x14')]);router[_0x58d8('0xa')]('/:id/favicon',controller['getFavicon']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x5568f6,_0x546010,_0x5654af){_0x5654af(null,path[_0x58d8('0x15')](config['root'],_0x58d8('0x16')));},'filename':function(_0x4c9056,_0x532d9e,_0x4d428d){_0x4d428d(null,util['format']('%s%s',_0x58d8('0x17'),path['extname'](_0x532d9e['originalname'])));}})});router[_0x58d8('0x18')]('/:id/logo',upload[_0x58d8('0x19')](_0x58d8('0x1a')),controller[_0x58d8('0x1b')]);var upload=multer({'storage':multer[_0x58d8('0x1c')]({'destination':function(_0x474725,_0x349d52,_0x5d122a){_0x5d122a(null,path[_0x58d8('0x15')](config['root'],'server/files/images/logos/'));},'filename':function(_0x218671,_0x226c65,_0x340225){_0x340225(null,util['format']('%s%s',_0x58d8('0x1d'),path[_0x58d8('0x1e')](_0x226c65['originalname'])));}})});router[_0x58d8('0x18')](_0x58d8('0xf'),upload[_0x58d8('0x19')](_0x58d8('0x1a')),controller['addLogoLogin']);var upload=multer({'storage':multer[_0x58d8('0x1c')]({'destination':function(_0x1af0d3,_0x251f26,_0x4fa182){_0x4fa182(null,path[_0x58d8('0x15')](config[_0x58d8('0x1f')],_0x58d8('0x16')));},'filename':function(_0xbf0b3,_0x1c972e,_0x35e3ff){_0x35e3ff(null,util[_0x58d8('0x20')](_0x58d8('0x21'),_0x58d8('0x22'),path['extname'](_0x1c972e['originalname'])));}})});router['post']('/:id/preferred',upload[_0x58d8('0x19')](_0x58d8('0x1a')),controller['addPreferred']);var upload=multer({'storage':multer[_0x58d8('0x1c')]({'destination':function(_0x52c4e2,_0x2c8e85,_0x5243ec){_0x5243ec(null,path[_0x58d8('0x15')](config[_0x58d8('0x1f')],'server/files/images/logos/'));},'filename':function(_0xc3a99e,_0x595993,_0x265231){_0x265231(null,util[_0x58d8('0x20')](_0x58d8('0x21'),'favicon',path[_0x58d8('0x1e')](_0x595993['originalname'])));}})});router[_0x58d8('0x18')](_0x58d8('0x23'),upload['single'](_0x58d8('0x1a')),controller['addFavicon']);router[_0x58d8('0x24')](_0x58d8('0xc'),auth['isAuthenticated'](),controller[_0x58d8('0x25')]);module[_0x58d8('0x26')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['INTEGER','min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted','BOOLEAN','alternate','UNSIGNED','sequelize'];(function(_0x1536b2,_0x595874){var _0x18d884=function(_0x3a86cb){while(--_0x3a86cb){_0x1536b2['push'](_0x1536b2['shift']());}};_0x18d884(++_0x595874);}(_0x0b0e,0x187));var _0xe0b0=function(_0x280f4a,_0x2ed8d6){_0x280f4a=_0x280f4a-0x0;var _0x1bb157=_0x0b0e[_0x280f4a];return _0x1bb157;};'use strict';var Sequelize=require(_0xe0b0('0x0'));module['exports']={'min_internal':{'type':Sequelize[_0xe0b0('0x1')](0xb),'unique':'min_internal','defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0xe0b0('0x1')](0xb),'unique':_0xe0b0('0x2'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0xe0b0('0x1')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':_0xe0b0('0x4')},'logo':{'type':Sequelize[_0xe0b0('0x3')]},'defaultLogo':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0xe0b0('0x3')]},'defaultLoginLogo':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0xe0b0('0x3')]},'defaultHeaderWhiteLabel':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'securePassword':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'firstSetup':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0xe0b0('0x3')]},'turnaddr':{'type':Sequelize[_0xe0b0('0x3')]},'turnusername':{'type':Sequelize[_0xe0b0('0x3')]},'turnpassword':{'type':Sequelize[_0xe0b0('0x3')]},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':'https://www.xcally.com/bar/phonebar/autoupdater.xml'},'enableEmailPreview':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'split':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':_0xe0b0('0x6')},'chatTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'preferred':{'type':Sequelize['STRING']},'defaultPreferred':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0xe0b0('0x3')]},'allowedLoginAttempts':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0xa},'favicon':{'type':Sequelize['STRING']},'defaultFavicon':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize['INTEGER'],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize['INTEGER']},'transcribeRegion':{'type':Sequelize[_0xe0b0('0x3')]},'sentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0xe0b0('0x1')]},'sentimentRegion':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'bucket':{'type':Sequelize[_0xe0b0('0x3')]},'googleSsoEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize['INTEGER'](0x2)[_0xe0b0('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0xe0b0('0x1')](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0xe0b0('0x1')](0x2)['UNSIGNED'],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xadb5=['https://www.xcally.com/bar/phonebar/autoupdater.xml','UNSIGNED','exports','min_internal','INTEGER','min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted','BOOLEAN'];(function(_0xc67528,_0x24e2fb){var _0x38e26d=function(_0x1b0efe){while(--_0x1b0efe){_0xc67528['push'](_0xc67528['shift']());}};_0x38e26d(++_0x24e2fb);}(_0xadb5,0xad));var _0x5adb=function(_0x28acab,_0x42ea5e){_0x28acab=_0x28acab-0x0;var _0x4cbc58=_0xadb5[_0x28acab];return _0x4cbc58;};'use strict';var Sequelize=require('sequelize');module[_0x5adb('0x0')]={'min_internal':{'type':Sequelize['INTEGER'](0xb),'unique':_0x5adb('0x1'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x5adb('0x2')](0xb),'unique':_0x5adb('0x3'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x5adb('0x4')],'defaultValue':_0x5adb('0x5')},'logo':{'type':Sequelize[_0x5adb('0x4')]},'defaultLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x5adb('0x4')]},'defaultLoginLogo':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0x5adb('0x4')]},'defaultHeaderWhiteLabel':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x5adb('0x4')]},'turnaddr':{'type':Sequelize[_0x5adb('0x4')]},'turnusername':{'type':Sequelize[_0x5adb('0x4')]},'turnpassword':{'type':Sequelize[_0x5adb('0x4')]},'pageTitle':{'type':Sequelize[_0x5adb('0x4')]},'defaultPageTitle':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0x5adb('0x2')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize['STRING'],'defaultValue':_0x5adb('0x7')},'enableEmailPreview':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'split':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x5adb('0x4')],'defaultValue':'alternate'},'chatTimeout':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x5adb('0x4')]},'defaultPreferred':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x5adb('0x4')]},'allowedLoginAttempts':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize['INTEGER'],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x5adb('0x4')]},'defaultFavicon':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize[_0x5adb('0x2')]},'transcribeRegion':{'type':Sequelize[_0x5adb('0x4')]},'sentiment':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x5adb('0x2')]},'sentimentRegion':{'type':Sequelize[_0x5adb('0x4')]},'language':{'type':Sequelize['STRING']},'bucket':{'type':Sequelize[_0x5adb('0x4')]},'googleSsoEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize['INTEGER'](0x2)[_0x5adb('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0x5adb('0x2')](0x2)[_0x5adb('0x8')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0x5adb('0x2')](0x2)[_0x5adb('0x8')],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf541=['mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','then','info','Setting,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','stack','name','send','map','rawAttributes','fieldName','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','include','Setting','findAll','rows','catch','show','params','includeAll','find','update','body','file','logo','addLogoLogin','filename','loginLogo','getLogo','server/files/images/logos','getLicense','preferred','favicon','defaultLogo','defaultLoginLogo','defaultPreferred','join','toLower','root','default_logo.svg','default','upperFirst','custom','existsSync','\x20not\x20found','download','../../config/license/util','getLogoLogin','defaultFavicon','default_loginLogo.svg','Sequelize','ValidationError','gdpr','securePassword','addPreferred','getPreferred','default_preferred.png','getFavicon','default_favicon.ico','getDate','utcOffset','format','YYYY-MM-DD\x20HH:mm:ss:SSS','zip-dir','request-promise','moment','bluebird'];(function(_0x2b276a,_0x34ac0c){var _0xf671c=function(_0x364461){while(--_0x364461){_0x2b276a['push'](_0x2b276a['shift']());}};_0xf671c(++_0x34ac0c);}(_0xf541,0x1f4));var _0x1f54=function(_0x3ef4f1,_0x5f0f9b){_0x3ef4f1=_0x3ef4f1-0x0;var _0x69953c=_0xf541[_0x3ef4f1];return _0x69953c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1f54('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1f54('0x1'));var moment=require(_0x1f54('0x2'));var BPromise=require(_0x1f54('0x3'));var Mustache=require(_0x1f54('0x4'));var util=require(_0x1f54('0x5'));var path=require(_0x1f54('0x6'));var sox=require(_0x1f54('0x7'));var csv=require(_0x1f54('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1f54('0x9'));var _=require(_0x1f54('0xa'));var squel=require(_0x1f54('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1f54('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1f54('0xd'));var authService=require(_0x1f54('0xe'));var qs=require(_0x1f54('0xf'));var as=require(_0x1f54('0x10'));var hardwareService=require(_0x1f54('0x11'));var logger=require(_0x1f54('0x12'))(_0x1f54('0x13'));var utils=require(_0x1f54('0x14'));var config=require(_0x1f54('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x1f54('0x16'))['db'];var jayson=require(_0x1f54('0x17'));var client=jayson[_0x1f54('0x18')][_0x1f54('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x34fc41,_0x42d306,_0x71945f,_0x52a5a4){return new BPromise(function(_0x919c89,_0xdd936e){var _0x3e018f=_0x52a5a4||client;return _0x3e018f['request'](_0x34fc41,_0x71945f)[_0x1f54('0x1a')](function(_0x387716){logger[_0x1f54('0x1b')](_0x1f54('0x1c'),_0x42d306,_0x1f54('0x1d'));logger[_0x1f54('0x1e')]('Setting,\x20%s,\x20%s,\x20%s',_0x42d306,_0x1f54('0x1d'),JSON[_0x1f54('0x1f')](_0x387716));if(_0x387716[_0x1f54('0x20')]){if(_0x387716[_0x1f54('0x20')][_0x1f54('0x21')]===0x1f4){logger[_0x1f54('0x20')](_0x1f54('0x1c'),_0x42d306,_0x387716[_0x1f54('0x20')]['message']);return _0xdd936e(_0x387716[_0x1f54('0x20')]['message']);}logger[_0x1f54('0x20')]('Setting,\x20%s,\x20%s',_0x42d306,_0x387716[_0x1f54('0x20')][_0x1f54('0x22')]);return _0x919c89(_0x387716[_0x1f54('0x20')][_0x1f54('0x22')]);}else{logger[_0x1f54('0x1b')]('Setting,\x20%s,\x20%s',_0x42d306,_0x1f54('0x1d'));_0x919c89(_0x387716[_0x1f54('0x23')][_0x1f54('0x22')]);}})['catch'](function(_0x28edf4){logger[_0x1f54('0x20')](_0x1f54('0x1c'),_0x42d306,_0x28edf4);_0xdd936e(_0x28edf4);});});}function respondWithStatusCode(_0x26622c,_0x2e57d1){_0x2e57d1=_0x2e57d1||0xcc;return function(_0x7bbf8a){if(_0x7bbf8a){return _0x26622c[_0x1f54('0x24')](_0x2e57d1);}return _0x26622c[_0x1f54('0x25')](_0x2e57d1)[_0x1f54('0x26')]();};}function respondWithResult(_0xbb4d4a,_0x457ee4){_0x457ee4=_0x457ee4||0xc8;return function(_0x5f0f7a){if(_0x5f0f7a){return _0xbb4d4a[_0x1f54('0x25')](_0x457ee4)[_0x1f54('0x27')](_0x5f0f7a);}};}function respondWithFilteredResult(_0x4bd66b,_0x2fff9c){return function(_0x2e5c9e){if(_0x2e5c9e){var _0x51bb7c=typeof _0x2fff9c['offset']==='undefined'&&typeof _0x2fff9c[_0x1f54('0x28')]===_0x1f54('0x29');var _0x1d6cec=_0x2e5c9e[_0x1f54('0x2a')];var _0x3cb236=_0x51bb7c?0x0:_0x2fff9c[_0x1f54('0x2b')];var _0x5e659f=_0x51bb7c?_0x2e5c9e[_0x1f54('0x2a')]:_0x2fff9c[_0x1f54('0x2b')]+_0x2fff9c[_0x1f54('0x28')];var _0x2e23ac;if(_0x5e659f>=_0x1d6cec){_0x5e659f=_0x1d6cec;_0x2e23ac=0xc8;}else{_0x2e23ac=0xce;}_0x4bd66b[_0x1f54('0x25')](_0x2e23ac);return _0x4bd66b[_0x1f54('0x2c')](_0x1f54('0x2d'),_0x3cb236+'-'+_0x5e659f+'/'+_0x1d6cec)[_0x1f54('0x27')](_0x2e5c9e);}return null;};}function patchUpdates(_0x59a530){return function(_0x49ac9a){try{jsonpatch[_0x1f54('0x2e')](_0x49ac9a,_0x59a530,!![]);}catch(_0x1f178a){return BPromise[_0x1f54('0x2f')](_0x1f178a);}return _0x49ac9a[_0x1f54('0x30')]();};}function saveUpdates(_0x513e63,_0x265268){return function(_0x5d8445){if(_0x5d8445){return _0x5d8445['update'](_0x513e63)['then'](function(_0x11ebca){return _0x11ebca;});}return null;};}function removeEntity(_0x4e6a5b,_0x2eacfb){return function(_0x2080b9){if(_0x2080b9){return _0x2080b9['destroy']()[_0x1f54('0x1a')](function(){_0x4e6a5b[_0x1f54('0x25')](0xcc)[_0x1f54('0x26')]();});}};}function handleEntityNotFound(_0x57969a,_0xfde893){return function(_0x3ff67f){if(!_0x3ff67f){_0x57969a['sendStatus'](0x194);}return _0x3ff67f;};}function handleError(_0x4918a9,_0x3ab040){_0x3ab040=_0x3ab040||0x1f4;return function(_0x45f808){logger['error'](_0x45f808[_0x1f54('0x31')]);if(_0x45f808[_0x1f54('0x32')]){delete _0x45f808[_0x1f54('0x32')];}_0x4918a9[_0x1f54('0x25')](_0x3ab040)[_0x1f54('0x33')](_0x45f808);};}exports['index']=function(_0x1201ac,_0x558d06){var _0x2e36b8={},_0x52aa40={},_0x39b923={'count':0x0,'rows':[]};var _0x444465=_[_0x1f54('0x34')](db['Setting'][_0x1f54('0x35')],function(_0x1beb37){return{'name':_0x1beb37[_0x1f54('0x36')],'type':_0x1beb37['type'][_0x1f54('0x37')]};});_0x52aa40[_0x1f54('0x38')]=_[_0x1f54('0x34')](_0x444465,_0x1f54('0x32'));_0x52aa40['query']=_[_0x1f54('0x39')](_0x1201ac[_0x1f54('0x3a')]);_0x52aa40[_0x1f54('0x3b')]=_['intersection'](_0x52aa40['model'],_0x52aa40['query']);_0x2e36b8[_0x1f54('0x3c')]=_[_0x1f54('0x3d')](_0x52aa40[_0x1f54('0x38')],qs['fields'](_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x3e')]));_0x2e36b8[_0x1f54('0x3c')]=_0x2e36b8[_0x1f54('0x3c')][_0x1f54('0x3f')]?_0x2e36b8[_0x1f54('0x3c')]:_0x52aa40[_0x1f54('0x38')];if(!_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x40')](_0x1f54('0x41'))){_0x2e36b8[_0x1f54('0x28')]=qs[_0x1f54('0x28')](_0x1201ac['query'][_0x1f54('0x28')]);_0x2e36b8[_0x1f54('0x2b')]=qs[_0x1f54('0x2b')](_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x2b')]);}_0x2e36b8[_0x1f54('0x42')]=qs['sort'](_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x43')]);_0x2e36b8[_0x1f54('0x44')]=qs[_0x1f54('0x3b')](_[_0x1f54('0x45')](_0x1201ac['query'],_0x52aa40[_0x1f54('0x3b')]),_0x444465);if(_0x1201ac['query'][_0x1f54('0x46')]){_0x2e36b8['where']=_[_0x1f54('0x47')](_0x2e36b8[_0x1f54('0x44')],{'$or':_['map'](_0x444465,function(_0x2acc4e){if(_0x2acc4e[_0x1f54('0x48')]!==_0x1f54('0x49')){var _0x1704d9={};_0x1704d9[_0x2acc4e['name']]={'$like':'%'+_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x46')]+'%'};return _0x1704d9;}})});}_0x2e36b8=_[_0x1f54('0x47')]({},_0x2e36b8,_0x1201ac[_0x1f54('0x4a')]);var _0x844d2e={'where':_0x2e36b8[_0x1f54('0x44')]};return db['Setting'][_0x1f54('0x2a')](_0x844d2e)['then'](function(_0x13ee10){_0x39b923[_0x1f54('0x2a')]=_0x13ee10;if(_0x1201ac['query']['includeAll']){_0x2e36b8[_0x1f54('0x4b')]=[{'all':!![]}];}return db[_0x1f54('0x4c')][_0x1f54('0x4d')](_0x2e36b8);})[_0x1f54('0x1a')](function(_0x674055){_0x39b923[_0x1f54('0x4e')]=_0x674055;return _0x39b923;})[_0x1f54('0x1a')](respondWithFilteredResult(_0x558d06,_0x2e36b8))[_0x1f54('0x4f')](handleError(_0x558d06,null));};exports[_0x1f54('0x50')]=function(_0x4fa49d,_0xf6854f){var _0x1c3f44={'raw':![],'where':{'id':_0x4fa49d[_0x1f54('0x51')]['id']}},_0x476221={};_0x476221[_0x1f54('0x38')]=_[_0x1f54('0x39')](db[_0x1f54('0x4c')][_0x1f54('0x35')]);_0x476221[_0x1f54('0x3a')]=_[_0x1f54('0x39')](_0x4fa49d[_0x1f54('0x3a')]);_0x476221[_0x1f54('0x3b')]=_['intersection'](_0x476221[_0x1f54('0x38')],_0x476221[_0x1f54('0x3a')]);_0x1c3f44[_0x1f54('0x3c')]=_[_0x1f54('0x3d')](_0x476221[_0x1f54('0x38')],qs[_0x1f54('0x3e')](_0x4fa49d['query']['fields']));_0x1c3f44[_0x1f54('0x3c')]=_0x1c3f44[_0x1f54('0x3c')][_0x1f54('0x3f')]?_0x1c3f44[_0x1f54('0x3c')]:_0x476221['model'];if(_0x4fa49d['query'][_0x1f54('0x52')]){_0x1c3f44[_0x1f54('0x4b')]=[{'all':!![]}];}_0x1c3f44=_[_0x1f54('0x47')]({},_0x1c3f44,_0x4fa49d[_0x1f54('0x4a')]);return db[_0x1f54('0x4c')][_0x1f54('0x53')](_0x1c3f44)[_0x1f54('0x1a')](handleEntityNotFound(_0xf6854f,null))[_0x1f54('0x1a')](respondWithResult(_0xf6854f,null))['catch'](handleError(_0xf6854f,null));};exports[_0x1f54('0x54')]=function(_0x11b50b,_0x47384b){if(_0x11b50b['body']['id']){delete _0x11b50b[_0x1f54('0x55')]['id'];}return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x11b50b[_0x1f54('0x51')]['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x47384b,null))[_0x1f54('0x1a')](saveUpdates(_0x11b50b[_0x1f54('0x55')],null))['then'](respondWithResult(_0x47384b,null))['catch'](handleError(_0x47384b,null));};exports['addLogo']=function(_0x193048,_0x10a5d5,_0x3aff62){if(_0x193048['file']&&_0x193048[_0x1f54('0x56')]['filename']){_0x193048[_0x1f54('0x55')][_0x1f54('0x57')]=_0x193048[_0x1f54('0x56')]['filename'];}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x193048[_0x1f54('0x51')]['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x10a5d5,null))[_0x1f54('0x1a')](saveUpdates(_0x193048[_0x1f54('0x55')],null))['then'](respondWithResult(_0x10a5d5,null))['catch'](handleError(_0x10a5d5,null));};exports[_0x1f54('0x58')]=function(_0x4882e9,_0x3a8c00,_0x33e666){if(_0x4882e9[_0x1f54('0x56')]&&_0x4882e9[_0x1f54('0x56')][_0x1f54('0x59')]){_0x4882e9[_0x1f54('0x55')][_0x1f54('0x5a')]=_0x4882e9['file'][_0x1f54('0x59')];}return db[_0x1f54('0x4c')]['find']({'where':{'id':_0x4882e9['params']['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x3a8c00,null))[_0x1f54('0x1a')](saveUpdates(_0x4882e9['body'],null))[_0x1f54('0x1a')](respondWithResult(_0x3a8c00,null))[_0x1f54('0x4f')](handleError(_0x3a8c00,null));};var utilLicense=require('../../config/license/util');exports[_0x1f54('0x5b')]=function(_0x3870f9,_0x23ab3f,_0x3ee0e1){var _0x51adf4=_0x1f54('0x5c');var _0x1be1cf={'custom':![]};return utilLicense[_0x1f54('0x5d')]()['then'](function(_0x46881f){if(_0x46881f){_0x1be1cf=_0x46881f;}return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x3870f9[_0x1f54('0x51')]['id']},'attributes':['logo',_0x1f54('0x5a'),_0x1f54('0x5e'),_0x1f54('0x5f'),_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),'defaultFavicon'],'raw':!![]});})[_0x1f54('0x1a')](handleEntityNotFound(_0x23ab3f,null))[_0x1f54('0x1a')](function(_0x51c1f0){if(_0x51c1f0){var _0x467973=_0x51c1f0[_0x1f54('0x57')]&&fs['existsSync'](path[_0x1f54('0x63')](config['root'],_0x51adf4,_[_0x1f54('0x64')](_0x51c1f0[_0x1f54('0x57')])))?path[_0x1f54('0x63')](config['root'],_0x51adf4,_[_0x1f54('0x64')](_0x51c1f0[_0x1f54('0x57')])):path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x51adf4,_['toLower'](_0x1f54('0x66')));var _0x3fbdda=_0x1f54('0x67')+_[_0x1f54('0x68')](_0x1f54('0x57'));if(_0x51c1f0[_0x3fbdda]||!_0x1be1cf[_0x1f54('0x69')]){_0x467973=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x51adf4,_[_0x1f54('0x64')]('default_logo.svg'));}if(!fs[_0x1f54('0x6a')](_0x467973)){throw new db['Sequelize']['ValidationError'](_[_0x1f54('0x68')](_0x1f54('0x57'))+_0x1f54('0x6b'));}return _0x23ab3f[_0x1f54('0x6c')](_0x467973);}})['catch'](handleError(_0x23ab3f,null));};var utilLicense=require(_0x1f54('0x6d'));exports[_0x1f54('0x6e')]=function(_0x7973ea,_0x1ca66a,_0x3b5654){var _0x11bb50=_0x1f54('0x5c');var _0x4040f9={'custom':![]};return utilLicense['getLicense']()[_0x1f54('0x1a')](function(_0x53eec0){if(_0x53eec0){_0x4040f9=_0x53eec0;}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x7973ea[_0x1f54('0x51')]['id']},'attributes':['logo',_0x1f54('0x5a'),_0x1f54('0x5e'),_0x1f54('0x5f'),_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),_0x1f54('0x6f')],'raw':!![]});})['then'](handleEntityNotFound(_0x1ca66a,null))[_0x1f54('0x1a')](function(_0x24d3b3){if(_0x24d3b3){var _0x5f76ee=_0x24d3b3[_0x1f54('0x5a')]&&fs[_0x1f54('0x6a')](path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_[_0x1f54('0x64')](_0x24d3b3['loginLogo'])))?path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_[_0x1f54('0x64')](_0x24d3b3['loginLogo'])):path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_[_0x1f54('0x64')]('default_loginLogo.svg'));var _0x11b533=_0x1f54('0x67')+_[_0x1f54('0x68')](_0x1f54('0x5a'));if(_0x24d3b3[_0x11b533]||!_0x4040f9[_0x1f54('0x69')]){_0x5f76ee=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_['toLower'](_0x1f54('0x70')));}if(!fs['existsSync'](_0x5f76ee)){throw new db[(_0x1f54('0x71'))][(_0x1f54('0x72'))](_[_0x1f54('0x68')](_0x1f54('0x5a'))+_0x1f54('0x6b'));}return _0x1ca66a['download'](_0x5f76ee);}})[_0x1f54('0x4f')](handleError(_0x1ca66a,null));};exports[_0x1f54('0x73')]=function(_0x373583,_0x2e5c1b){return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x373583['params']['id']},'attributes':[_0x1f54('0x74')]})[_0x1f54('0x1a')](respondWithResult(_0x2e5c1b,null))['catch'](handleError(_0x2e5c1b,null));};exports[_0x1f54('0x75')]=function(_0x29694a,_0x3df717,_0x3a1d9e){if(_0x29694a[_0x1f54('0x56')]&&_0x29694a[_0x1f54('0x56')]['filename']){_0x29694a[_0x1f54('0x55')][_0x1f54('0x5e')]=_0x29694a['file'][_0x1f54('0x59')];}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x29694a[_0x1f54('0x51')]['id']}})['then'](handleEntityNotFound(_0x3df717,null))['then'](saveUpdates(_0x29694a[_0x1f54('0x55')],null))[_0x1f54('0x1a')](respondWithResult(_0x3df717,null))[_0x1f54('0x4f')](handleError(_0x3df717,null));};var utilLicense=require('../../config/license/util');exports[_0x1f54('0x76')]=function(_0x292c59,_0x224295,_0x33be97){var _0x439556=_0x1f54('0x5c');var _0x1f349b={'custom':![]};return utilLicense[_0x1f54('0x5d')]()[_0x1f54('0x1a')](function(_0x5da663){if(_0x5da663){_0x1f349b=_0x5da663;}return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x292c59[_0x1f54('0x51')]['id']},'attributes':[_0x1f54('0x57'),_0x1f54('0x5a'),_0x1f54('0x5e'),'favicon',_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),'defaultFavicon'],'raw':!![]});})[_0x1f54('0x1a')](handleEntityNotFound(_0x224295,null))[_0x1f54('0x1a')](function(_0xdfc3b5){if(_0xdfc3b5){var _0x4cdd94=_0xdfc3b5[_0x1f54('0x5e')]&&fs[_0x1f54('0x6a')](path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x439556,_[_0x1f54('0x64')](_0xdfc3b5[_0x1f54('0x5e')])))?path[_0x1f54('0x63')](config['root'],_0x439556,_[_0x1f54('0x64')](_0xdfc3b5[_0x1f54('0x5e')])):path[_0x1f54('0x63')](config['root'],_0x439556,_[_0x1f54('0x64')](_0x1f54('0x77')));var _0xac16b3='default'+_[_0x1f54('0x68')]('preferred');if(_0xdfc3b5[_0xac16b3]||!_0x1f349b[_0x1f54('0x69')]||!_0x1f349b[_0x1f54('0x5e')]){_0x4cdd94=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x439556,_[_0x1f54('0x64')](_0x1f54('0x77')));}if(!fs[_0x1f54('0x6a')](_0x4cdd94)){throw new db[(_0x1f54('0x71'))][(_0x1f54('0x72'))](_['upperFirst'](_0x1f54('0x5e'))+'\x20not\x20found');}return _0x224295[_0x1f54('0x6c')](_0x4cdd94);}})['catch'](handleError(_0x224295,null));};exports['addFavicon']=function(_0x1f9e5f,_0x5f0819,_0x4eac75){if(_0x1f9e5f[_0x1f54('0x56')]&&_0x1f9e5f[_0x1f54('0x56')]['filename']){_0x1f9e5f['body']['favicon']=_0x1f9e5f[_0x1f54('0x56')][_0x1f54('0x59')];}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x1f9e5f[_0x1f54('0x51')]['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x5f0819,null))[_0x1f54('0x1a')](saveUpdates(_0x1f9e5f[_0x1f54('0x55')],null))[_0x1f54('0x1a')](respondWithResult(_0x5f0819,null))['catch'](handleError(_0x5f0819,null));};var utilLicense=require('../../config/license/util');exports[_0x1f54('0x78')]=function(_0x208e59,_0x188281,_0x3e196c){var _0x50f1c5=_0x1f54('0x5c');var _0x442f94={'custom':![]};return utilLicense['getLicense']()[_0x1f54('0x1a')](function(_0x9225e){if(_0x9225e){_0x442f94=_0x9225e;}return db[_0x1f54('0x4c')]['find']({'where':{'id':_0x208e59[_0x1f54('0x51')]['id']},'attributes':[_0x1f54('0x57'),_0x1f54('0x5a'),_0x1f54('0x5e'),_0x1f54('0x5f'),_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),_0x1f54('0x6f')],'raw':!![]});})['then'](handleEntityNotFound(_0x188281,null))[_0x1f54('0x1a')](function(_0x3f9aa3){if(_0x3f9aa3){var _0xcefb14=_0x3f9aa3['favicon']&&fs['existsSync'](path['join'](config['root'],_0x50f1c5,_[_0x1f54('0x64')](_0x3f9aa3['favicon'])))?path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x50f1c5,_[_0x1f54('0x64')](_0x3f9aa3['favicon'])):path['join'](config['root'],_0x50f1c5,_[_0x1f54('0x64')](_0x1f54('0x79')));var _0x508d53=_0x1f54('0x67')+_[_0x1f54('0x68')](_0x1f54('0x5f'));if(_0x3f9aa3[_0x508d53]||!_0x442f94[_0x1f54('0x69')]){_0xcefb14=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x50f1c5,_[_0x1f54('0x64')](_0x1f54('0x79')));}if(!fs[_0x1f54('0x6a')](_0xcefb14)){throw new db[(_0x1f54('0x71'))]['ValidationError'](_[_0x1f54('0x68')](_0x1f54('0x5f'))+_0x1f54('0x6b'));}return _0x188281[_0x1f54('0x6c')](_0xcefb14);}})['catch'](handleError(_0x188281,null));};exports[_0x1f54('0x7a')]=function(_0x1c7bf3,_0x482aac){var _0x1e26e8={'offset':moment()[_0x1f54('0x7b')]()};_0x1e26e8['now']=moment()[_0x1f54('0x7b')](_0x1e26e8[_0x1f54('0x2b')])[_0x1f54('0x7c')](_0x1f54('0x7d'));return _0x482aac[_0x1f54('0x25')](0xc8)[_0x1f54('0x33')](_0x1e26e8);};
\ No newline at end of file
+var _0xcef4=['addPreferred','getPreferred','getLicense','default_preferred.png','addFavicon','getFavicon','utcOffset','format','YYYY-MM-DD\x20HH:mm:ss:SSS','eml-format','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','then','Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','name','send','index','map','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','Setting','includeAll','findAll','rows','show','include','find','body','params','filename','addLogoLogin','file','loginLogo','getLogo','server/files/images/logos','logo','favicon','defaultLogo','defaultLoginLogo','defaultPreferred','defaultFavicon','existsSync','join','root','toLower','default','upperFirst','default_logo.svg','Sequelize','ValidationError','\x20not\x20found','download','getLogoLogin','preferred','default_loginLogo.svg','custom','gdpr','securePassword'];(function(_0x3dde86,_0x2ecfc4){var _0x672191=function(_0x227d29){while(--_0x227d29){_0x3dde86['push'](_0x3dde86['shift']());}};_0x672191(++_0x2ecfc4);}(_0xcef4,0x1e9));var _0x4cef=function(_0x4cc492,_0x162c85){_0x4cc492=_0x4cc492-0x0;var _0x1f36b9=_0xcef4[_0x4cc492];return _0x1f36b9;};'use strict';var emlformat=require(_0x4cef('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4cef('0x1'));var BPromise=require(_0x4cef('0x2'));var Mustache=require(_0x4cef('0x3'));var util=require(_0x4cef('0x4'));var path=require(_0x4cef('0x5'));var sox=require(_0x4cef('0x6'));var csv=require(_0x4cef('0x7'));var ejs=require(_0x4cef('0x8'));var fs=require('fs');var fs_extra=require(_0x4cef('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x4cef('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x4cef('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x4cef('0xc'));var authService=require(_0x4cef('0xd'));var qs=require(_0x4cef('0xe'));var as=require(_0x4cef('0xf'));var hardwareService=require(_0x4cef('0x10'));var logger=require(_0x4cef('0x11'))(_0x4cef('0x12'));var utils=require(_0x4cef('0x13'));var config=require(_0x4cef('0x14'));var licenseUtil=require(_0x4cef('0x15'));var db=require(_0x4cef('0x16'))['db'];var jayson=require(_0x4cef('0x17'));var client=jayson['client'][_0x4cef('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x43f6ad,_0x29a46c,_0x5a890e,_0xef597f){return new BPromise(function(_0x2585d9,_0x1f6493){var _0x5ddfc6=_0xef597f||client;return _0x5ddfc6['request'](_0x43f6ad,_0x5a890e)[_0x4cef('0x19')](function(_0x169964){logger['info'](_0x4cef('0x1a'),_0x29a46c,_0x4cef('0x1b'));logger[_0x4cef('0x1c')](_0x4cef('0x1d'),_0x29a46c,_0x4cef('0x1b'),JSON[_0x4cef('0x1e')](_0x169964));if(_0x169964[_0x4cef('0x1f')]){if(_0x169964[_0x4cef('0x1f')]['code']===0x1f4){logger[_0x4cef('0x1f')]('Setting,\x20%s,\x20%s',_0x29a46c,_0x169964[_0x4cef('0x1f')]['message']);return _0x1f6493(_0x169964[_0x4cef('0x1f')]['message']);}logger[_0x4cef('0x1f')]('Setting,\x20%s,\x20%s',_0x29a46c,_0x169964[_0x4cef('0x1f')][_0x4cef('0x20')]);return _0x2585d9(_0x169964['error'][_0x4cef('0x20')]);}else{logger[_0x4cef('0x21')](_0x4cef('0x1a'),_0x29a46c,_0x4cef('0x1b'));_0x2585d9(_0x169964[_0x4cef('0x22')][_0x4cef('0x20')]);}})[_0x4cef('0x23')](function(_0x464030){logger['error'](_0x4cef('0x1a'),_0x29a46c,_0x464030);_0x1f6493(_0x464030);});});}function respondWithStatusCode(_0x29d751,_0x11a380){_0x11a380=_0x11a380||0xcc;return function(_0x39c27b){if(_0x39c27b){return _0x29d751[_0x4cef('0x24')](_0x11a380);}return _0x29d751[_0x4cef('0x25')](_0x11a380)[_0x4cef('0x26')]();};}function respondWithResult(_0x2eafbc,_0x224b17){_0x224b17=_0x224b17||0xc8;return function(_0x394c3f){if(_0x394c3f){return _0x2eafbc[_0x4cef('0x25')](_0x224b17)['json'](_0x394c3f);}};}function respondWithFilteredResult(_0x34c744,_0x56ae8f){return function(_0x1b6252){if(_0x1b6252){var _0x252b8c=typeof _0x56ae8f[_0x4cef('0x27')]===_0x4cef('0x28')&&typeof _0x56ae8f[_0x4cef('0x29')]===_0x4cef('0x28');var _0x3d5763=_0x1b6252[_0x4cef('0x2a')];var _0x53e41d=_0x252b8c?0x0:_0x56ae8f[_0x4cef('0x27')];var _0x2936ae=_0x252b8c?_0x1b6252[_0x4cef('0x2a')]:_0x56ae8f[_0x4cef('0x27')]+_0x56ae8f[_0x4cef('0x29')];var _0x32f7f0;if(_0x2936ae>=_0x3d5763){_0x2936ae=_0x3d5763;_0x32f7f0=0xc8;}else{_0x32f7f0=0xce;}_0x34c744['status'](_0x32f7f0);return _0x34c744[_0x4cef('0x2b')](_0x4cef('0x2c'),_0x53e41d+'-'+_0x2936ae+'/'+_0x3d5763)[_0x4cef('0x2d')](_0x1b6252);}return null;};}function patchUpdates(_0x35744a){return function(_0x44a9d3){try{jsonpatch['apply'](_0x44a9d3,_0x35744a,!![]);}catch(_0x537fd6){return BPromise[_0x4cef('0x2e')](_0x537fd6);}return _0x44a9d3[_0x4cef('0x2f')]();};}function saveUpdates(_0x28598c,_0x28a9ba){return function(_0x3e6386){if(_0x3e6386){return _0x3e6386[_0x4cef('0x30')](_0x28598c)['then'](function(_0xa52b12){return _0xa52b12;});}return null;};}function removeEntity(_0x6f110,_0x48bd6b){return function(_0x447f35){if(_0x447f35){return _0x447f35['destroy']()['then'](function(){_0x6f110[_0x4cef('0x25')](0xcc)[_0x4cef('0x26')]();});}};}function handleEntityNotFound(_0x2c4555,_0x31e354){return function(_0x46f97f){if(!_0x46f97f){_0x2c4555[_0x4cef('0x24')](0x194);}return _0x46f97f;};}function handleError(_0x58f90e,_0x32f044){_0x32f044=_0x32f044||0x1f4;return function(_0x6bd509){logger[_0x4cef('0x1f')](_0x6bd509['stack']);if(_0x6bd509[_0x4cef('0x31')]){delete _0x6bd509['name'];}_0x58f90e[_0x4cef('0x25')](_0x32f044)[_0x4cef('0x32')](_0x6bd509);};}exports[_0x4cef('0x33')]=function(_0x97d968,_0x1c7751){var _0x38872c={},_0x15ffa2={},_0x5238d9={'count':0x0,'rows':[]};var _0x13133e=_[_0x4cef('0x34')](db['Setting'][_0x4cef('0x35')],function(_0x14ff4c){return{'name':_0x14ff4c['fieldName'],'type':_0x14ff4c[_0x4cef('0x36')][_0x4cef('0x37')]};});_0x15ffa2['model']=_[_0x4cef('0x34')](_0x13133e,'name');_0x15ffa2[_0x4cef('0x38')]=_[_0x4cef('0x39')](_0x97d968[_0x4cef('0x38')]);_0x15ffa2[_0x4cef('0x3a')]=_[_0x4cef('0x3b')](_0x15ffa2[_0x4cef('0x3c')],_0x15ffa2[_0x4cef('0x38')]);_0x38872c[_0x4cef('0x3d')]=_[_0x4cef('0x3b')](_0x15ffa2[_0x4cef('0x3c')],qs[_0x4cef('0x3e')](_0x97d968['query']['fields']));_0x38872c[_0x4cef('0x3d')]=_0x38872c[_0x4cef('0x3d')][_0x4cef('0x3f')]?_0x38872c[_0x4cef('0x3d')]:_0x15ffa2[_0x4cef('0x3c')];if(!_0x97d968[_0x4cef('0x38')]['hasOwnProperty'](_0x4cef('0x40'))){_0x38872c[_0x4cef('0x29')]=qs[_0x4cef('0x29')](_0x97d968[_0x4cef('0x38')]['limit']);_0x38872c[_0x4cef('0x27')]=qs['offset'](_0x97d968[_0x4cef('0x38')][_0x4cef('0x27')]);}_0x38872c[_0x4cef('0x41')]=qs[_0x4cef('0x42')](_0x97d968['query'][_0x4cef('0x42')]);_0x38872c[_0x4cef('0x43')]=qs[_0x4cef('0x3a')](_[_0x4cef('0x44')](_0x97d968[_0x4cef('0x38')],_0x15ffa2[_0x4cef('0x3a')]),_0x13133e);if(_0x97d968[_0x4cef('0x38')][_0x4cef('0x45')]){_0x38872c['where']=_['merge'](_0x38872c['where'],{'$or':_[_0x4cef('0x34')](_0x13133e,function(_0x239e7e){if(_0x239e7e[_0x4cef('0x36')]!==_0x4cef('0x46')){var _0x18e2d4={};_0x18e2d4[_0x239e7e[_0x4cef('0x31')]]={'$like':'%'+_0x97d968[_0x4cef('0x38')][_0x4cef('0x45')]+'%'};return _0x18e2d4;}})});}_0x38872c=_[_0x4cef('0x47')]({},_0x38872c,_0x97d968[_0x4cef('0x48')]);var _0x1dfdb6={'where':_0x38872c[_0x4cef('0x43')]};return db[_0x4cef('0x49')][_0x4cef('0x2a')](_0x1dfdb6)['then'](function(_0x241d6e){_0x5238d9[_0x4cef('0x2a')]=_0x241d6e;if(_0x97d968[_0x4cef('0x38')][_0x4cef('0x4a')]){_0x38872c['include']=[{'all':!![]}];}return db[_0x4cef('0x49')][_0x4cef('0x4b')](_0x38872c);})['then'](function(_0x72a7c2){_0x5238d9[_0x4cef('0x4c')]=_0x72a7c2;return _0x5238d9;})[_0x4cef('0x19')](respondWithFilteredResult(_0x1c7751,_0x38872c))[_0x4cef('0x23')](handleError(_0x1c7751,null));};exports[_0x4cef('0x4d')]=function(_0x2c4421,_0x202818){var _0x2be42a={'raw':![],'where':{'id':_0x2c4421['params']['id']}},_0x3eb368={};_0x3eb368['model']=_[_0x4cef('0x39')](db[_0x4cef('0x49')]['rawAttributes']);_0x3eb368[_0x4cef('0x38')]=_[_0x4cef('0x39')](_0x2c4421[_0x4cef('0x38')]);_0x3eb368[_0x4cef('0x3a')]=_[_0x4cef('0x3b')](_0x3eb368[_0x4cef('0x3c')],_0x3eb368['query']);_0x2be42a[_0x4cef('0x3d')]=_['intersection'](_0x3eb368[_0x4cef('0x3c')],qs[_0x4cef('0x3e')](_0x2c4421[_0x4cef('0x38')]['fields']));_0x2be42a[_0x4cef('0x3d')]=_0x2be42a[_0x4cef('0x3d')][_0x4cef('0x3f')]?_0x2be42a[_0x4cef('0x3d')]:_0x3eb368['model'];if(_0x2c4421['query'][_0x4cef('0x4a')]){_0x2be42a[_0x4cef('0x4e')]=[{'all':!![]}];}_0x2be42a=_[_0x4cef('0x47')]({},_0x2be42a,_0x2c4421[_0x4cef('0x48')]);return db[_0x4cef('0x49')][_0x4cef('0x4f')](_0x2be42a)[_0x4cef('0x19')](handleEntityNotFound(_0x202818,null))['then'](respondWithResult(_0x202818,null))['catch'](handleError(_0x202818,null));};exports[_0x4cef('0x30')]=function(_0x148610,_0x207097){if(_0x148610[_0x4cef('0x50')]['id']){delete _0x148610[_0x4cef('0x50')]['id'];}return db[_0x4cef('0x49')][_0x4cef('0x4f')]({'where':{'id':_0x148610[_0x4cef('0x51')]['id']}})['then'](handleEntityNotFound(_0x207097,null))['then'](saveUpdates(_0x148610[_0x4cef('0x50')],null))[_0x4cef('0x19')](respondWithResult(_0x207097,null))[_0x4cef('0x23')](handleError(_0x207097,null));};exports['addLogo']=function(_0x20c6ff,_0x7d41a2,_0x1f358f){if(_0x20c6ff['file']&&_0x20c6ff['file'][_0x4cef('0x52')]){_0x20c6ff[_0x4cef('0x50')]['logo']=_0x20c6ff['file'][_0x4cef('0x52')];}return db[_0x4cef('0x49')][_0x4cef('0x4f')]({'where':{'id':_0x20c6ff[_0x4cef('0x51')]['id']}})[_0x4cef('0x19')](handleEntityNotFound(_0x7d41a2,null))[_0x4cef('0x19')](saveUpdates(_0x20c6ff[_0x4cef('0x50')],null))[_0x4cef('0x19')](respondWithResult(_0x7d41a2,null))['catch'](handleError(_0x7d41a2,null));};exports[_0x4cef('0x53')]=function(_0x3e6eaa,_0xb1f175,_0x3dbe6a){if(_0x3e6eaa[_0x4cef('0x54')]&&_0x3e6eaa[_0x4cef('0x54')][_0x4cef('0x52')]){_0x3e6eaa[_0x4cef('0x50')][_0x4cef('0x55')]=_0x3e6eaa[_0x4cef('0x54')][_0x4cef('0x52')];}return db[_0x4cef('0x49')][_0x4cef('0x4f')]({'where':{'id':_0x3e6eaa['params']['id']}})[_0x4cef('0x19')](handleEntityNotFound(_0xb1f175,null))[_0x4cef('0x19')](saveUpdates(_0x3e6eaa[_0x4cef('0x50')],null))['then'](respondWithResult(_0xb1f175,null))[_0x4cef('0x23')](handleError(_0xb1f175,null));};var utilLicense=require(_0x4cef('0x15'));exports[_0x4cef('0x56')]=function(_0x1bfa3d,_0x33ef57,_0x55fd0f){var _0x44f472=_0x4cef('0x57');var _0x71a70b={'custom':![]};return utilLicense['getLicense']()[_0x4cef('0x19')](function(_0x314171){if(_0x314171){_0x71a70b=_0x314171;}return db['Setting']['find']({'where':{'id':_0x1bfa3d[_0x4cef('0x51')]['id']},'attributes':[_0x4cef('0x58'),_0x4cef('0x55'),'preferred',_0x4cef('0x59'),_0x4cef('0x5a'),_0x4cef('0x5b'),_0x4cef('0x5c'),_0x4cef('0x5d')],'raw':!![]});})[_0x4cef('0x19')](handleEntityNotFound(_0x33ef57,null))[_0x4cef('0x19')](function(_0x305442){if(_0x305442){var _0x47df85=_0x305442[_0x4cef('0x58')]&&fs[_0x4cef('0x5e')](path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x44f472,_[_0x4cef('0x61')](_0x305442[_0x4cef('0x58')])))?path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x44f472,_[_0x4cef('0x61')](_0x305442[_0x4cef('0x58')])):path['join'](config[_0x4cef('0x60')],_0x44f472,_[_0x4cef('0x61')]('default_logo.svg'));var _0x345642=_0x4cef('0x62')+_[_0x4cef('0x63')](_0x4cef('0x58'));if(_0x305442[_0x345642]||!_0x71a70b['custom']){_0x47df85=path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x44f472,_['toLower'](_0x4cef('0x64')));}if(!fs[_0x4cef('0x5e')](_0x47df85)){throw new db[(_0x4cef('0x65'))][(_0x4cef('0x66'))](_[_0x4cef('0x63')](_0x4cef('0x58'))+_0x4cef('0x67'));}return _0x33ef57[_0x4cef('0x68')](_0x47df85);}})[_0x4cef('0x23')](handleError(_0x33ef57,null));};var utilLicense=require(_0x4cef('0x15'));exports[_0x4cef('0x69')]=function(_0x29cd15,_0x53857,_0x15c7f2){var _0x8fd727=_0x4cef('0x57');var _0x50d28f={'custom':![]};return utilLicense['getLicense']()[_0x4cef('0x19')](function(_0x54f758){if(_0x54f758){_0x50d28f=_0x54f758;}return db['Setting'][_0x4cef('0x4f')]({'where':{'id':_0x29cd15[_0x4cef('0x51')]['id']},'attributes':['logo',_0x4cef('0x55'),_0x4cef('0x6a'),_0x4cef('0x59'),_0x4cef('0x5a'),_0x4cef('0x5b'),'defaultPreferred',_0x4cef('0x5d')],'raw':!![]});})[_0x4cef('0x19')](handleEntityNotFound(_0x53857,null))[_0x4cef('0x19')](function(_0x18a97a){if(_0x18a97a){var _0x470410=_0x18a97a[_0x4cef('0x55')]&&fs[_0x4cef('0x5e')](path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x8fd727,_[_0x4cef('0x61')](_0x18a97a[_0x4cef('0x55')])))?path[_0x4cef('0x5f')](config['root'],_0x8fd727,_[_0x4cef('0x61')](_0x18a97a[_0x4cef('0x55')])):path[_0x4cef('0x5f')](config['root'],_0x8fd727,_[_0x4cef('0x61')](_0x4cef('0x6b')));var _0x2bab05='default'+_[_0x4cef('0x63')](_0x4cef('0x55'));if(_0x18a97a[_0x2bab05]||!_0x50d28f[_0x4cef('0x6c')]){_0x470410=path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x8fd727,_[_0x4cef('0x61')](_0x4cef('0x6b')));}if(!fs[_0x4cef('0x5e')](_0x470410)){throw new db[(_0x4cef('0x65'))]['ValidationError'](_[_0x4cef('0x63')](_0x4cef('0x55'))+_0x4cef('0x67'));}return _0x53857['download'](_0x470410);}})[_0x4cef('0x23')](handleError(_0x53857,null));};exports[_0x4cef('0x6d')]=function(_0x1b6c2e,_0x542540){return db[_0x4cef('0x49')][_0x4cef('0x4f')]({'where':{'id':_0x1b6c2e[_0x4cef('0x51')]['id']},'attributes':[_0x4cef('0x6e')]})[_0x4cef('0x19')](respondWithResult(_0x542540,null))[_0x4cef('0x23')](handleError(_0x542540,null));};exports[_0x4cef('0x6f')]=function(_0x143032,_0x35c45b,_0x5ce89e){if(_0x143032[_0x4cef('0x54')]&&_0x143032[_0x4cef('0x54')][_0x4cef('0x52')]){_0x143032[_0x4cef('0x50')]['preferred']=_0x143032[_0x4cef('0x54')][_0x4cef('0x52')];}return db['Setting']['find']({'where':{'id':_0x143032[_0x4cef('0x51')]['id']}})['then'](handleEntityNotFound(_0x35c45b,null))[_0x4cef('0x19')](saveUpdates(_0x143032[_0x4cef('0x50')],null))['then'](respondWithResult(_0x35c45b,null))['catch'](handleError(_0x35c45b,null));};var utilLicense=require(_0x4cef('0x15'));exports[_0x4cef('0x70')]=function(_0x215771,_0x2416fc,_0x10888f){var _0x21752b=_0x4cef('0x57');var _0x2ab6ea={'custom':![]};return utilLicense[_0x4cef('0x71')]()[_0x4cef('0x19')](function(_0x1bf28e){if(_0x1bf28e){_0x2ab6ea=_0x1bf28e;}return db[_0x4cef('0x49')][_0x4cef('0x4f')]({'where':{'id':_0x215771[_0x4cef('0x51')]['id']},'attributes':[_0x4cef('0x58'),_0x4cef('0x55'),_0x4cef('0x6a'),_0x4cef('0x59'),'defaultLogo',_0x4cef('0x5b'),_0x4cef('0x5c'),_0x4cef('0x5d')],'raw':!![]});})[_0x4cef('0x19')](handleEntityNotFound(_0x2416fc,null))[_0x4cef('0x19')](function(_0x4a1f30){if(_0x4a1f30){var _0x5df48b=_0x4a1f30[_0x4cef('0x6a')]&&fs[_0x4cef('0x5e')](path[_0x4cef('0x5f')](config['root'],_0x21752b,_[_0x4cef('0x61')](_0x4a1f30[_0x4cef('0x6a')])))?path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x21752b,_[_0x4cef('0x61')](_0x4a1f30['preferred'])):path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x21752b,_['toLower'](_0x4cef('0x72')));var _0x134cd8='default'+_[_0x4cef('0x63')](_0x4cef('0x6a'));if(_0x4a1f30[_0x134cd8]||!_0x2ab6ea[_0x4cef('0x6c')]||!_0x2ab6ea[_0x4cef('0x6a')]){_0x5df48b=path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x21752b,_['toLower'](_0x4cef('0x72')));}if(!fs[_0x4cef('0x5e')](_0x5df48b)){throw new db[(_0x4cef('0x65'))][(_0x4cef('0x66'))](_[_0x4cef('0x63')]('preferred')+'\x20not\x20found');}return _0x2416fc[_0x4cef('0x68')](_0x5df48b);}})['catch'](handleError(_0x2416fc,null));};exports[_0x4cef('0x73')]=function(_0x1f80b5,_0x27dc22,_0x24ab32){if(_0x1f80b5[_0x4cef('0x54')]&&_0x1f80b5[_0x4cef('0x54')][_0x4cef('0x52')]){_0x1f80b5[_0x4cef('0x50')][_0x4cef('0x59')]=_0x1f80b5['file']['filename'];}return db[_0x4cef('0x49')][_0x4cef('0x4f')]({'where':{'id':_0x1f80b5['params']['id']}})[_0x4cef('0x19')](handleEntityNotFound(_0x27dc22,null))[_0x4cef('0x19')](saveUpdates(_0x1f80b5[_0x4cef('0x50')],null))['then'](respondWithResult(_0x27dc22,null))[_0x4cef('0x23')](handleError(_0x27dc22,null));};var utilLicense=require('../../config/license/util');exports[_0x4cef('0x74')]=function(_0x570fed,_0x44a658,_0x122512){var _0x4f35e3=_0x4cef('0x57');var _0x45b008={'custom':![]};return utilLicense['getLicense']()['then'](function(_0x2db7e9){if(_0x2db7e9){_0x45b008=_0x2db7e9;}return db[_0x4cef('0x49')][_0x4cef('0x4f')]({'where':{'id':_0x570fed[_0x4cef('0x51')]['id']},'attributes':[_0x4cef('0x58'),'loginLogo','preferred',_0x4cef('0x59'),_0x4cef('0x5a'),_0x4cef('0x5b'),_0x4cef('0x5c'),_0x4cef('0x5d')],'raw':!![]});})[_0x4cef('0x19')](handleEntityNotFound(_0x44a658,null))[_0x4cef('0x19')](function(_0x1f2d90){if(_0x1f2d90){var _0x988409=_0x1f2d90[_0x4cef('0x59')]&&fs[_0x4cef('0x5e')](path['join'](config['root'],_0x4f35e3,_[_0x4cef('0x61')](_0x1f2d90[_0x4cef('0x59')])))?path[_0x4cef('0x5f')](config['root'],_0x4f35e3,_[_0x4cef('0x61')](_0x1f2d90[_0x4cef('0x59')])):path[_0x4cef('0x5f')](config[_0x4cef('0x60')],_0x4f35e3,_[_0x4cef('0x61')]('default_favicon.ico'));var _0x5e336f=_0x4cef('0x62')+_['upperFirst'](_0x4cef('0x59'));if(_0x1f2d90[_0x5e336f]||!_0x45b008[_0x4cef('0x6c')]){_0x988409=path['join'](config[_0x4cef('0x60')],_0x4f35e3,_[_0x4cef('0x61')]('default_favicon.ico'));}if(!fs[_0x4cef('0x5e')](_0x988409)){throw new db[(_0x4cef('0x65'))][(_0x4cef('0x66'))](_[_0x4cef('0x63')](_0x4cef('0x59'))+'\x20not\x20found');}return _0x44a658[_0x4cef('0x68')](_0x988409);}})[_0x4cef('0x23')](handleError(_0x44a658,null));};exports['getDate']=function(_0x21562f,_0x367c1d){var _0x237ae3={'offset':moment()[_0x4cef('0x75')]()};_0x237ae3['now']=moment()[_0x4cef('0x75')](_0x237ae3['offset'])[_0x4cef('0x76')](_0x4cef('0x77'));return _0x367c1d[_0x4cef('0x25')](0xc8)[_0x4cef('0x32')](_0x237ae3);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['bluebird','path','./setting.attributes','exports','define','Setting','settings','lodash','util','moment'];(function(_0x83a478,_0x40b595){var _0xa1f089=function(_0x7fc7c6){while(--_0x7fc7c6){_0x83a478['push'](_0x83a478['shift']());}};_0xa1f089(++_0x40b595);}(_0xe14b,0x93));var _0xbe14=function(_0x5c8339,_0x420845){_0x5c8339=_0x5c8339-0x0;var _0x2c57dc=_0xe14b[_0x5c8339];return _0x2c57dc;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xbe14('0x2'));var BPromise=require(_0xbe14('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbe14('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xbe14('0x5'));module[_0xbe14('0x6')]=function(_0x1fe204,_0x1ff100){return _0x1fe204[_0xbe14('0x7')](_0xbe14('0x8'),attributes,{'tableName':_0xbe14('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9957=['exports','define','Setting','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./setting.attributes'];(function(_0x1da527,_0x2dc953){var _0x40fc7c=function(_0x9949f5){while(--_0x9949f5){_0x1da527['push'](_0x1da527['shift']());}};_0x40fc7c(++_0x2dc953);}(_0x9957,0x93));var _0x7995=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x9957[_0x6131cd];return _0x47e916;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'settings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0249=['Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ShowSetting','Setting','find','options','raw','where','attributes','include','model','map','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x47de33,_0x2f79b2){var _0xdbaf7d=function(_0x1c49a9){while(--_0x1c49a9){_0x47de33['push'](_0x47de33['shift']());}};_0xdbaf7d(++_0x2f79b2);}(_0x0249,0x194));var _0x9024=function(_0x54192f,_0xaf9bf7){_0x54192f=_0x54192f-0x0;var _0x9e9545=_0x0249[_0x54192f];return _0x9e9545;};'use strict';var _=require(_0x9024('0x0'));var util=require(_0x9024('0x1'));var moment=require(_0x9024('0x2'));var BPromise=require(_0x9024('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9024('0x4'));var db=require(_0x9024('0x5'))['db'];var utils=require(_0x9024('0x6'));var logger=require(_0x9024('0x7'))(_0x9024('0x8'));var config=require(_0x9024('0x9'));var jayson=require(_0x9024('0xa'));var client=jayson[_0x9024('0xb')][_0x9024('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x294363,_0x16e5b1,_0x5d9ed5){return new BPromise(function(_0x337c32,_0x4bfbe1){return client[_0x9024('0xd')](_0x294363,_0x5d9ed5)[_0x9024('0xe')](function(_0xf0c2cd){logger[_0x9024('0xf')](_0x9024('0x10'),_0x16e5b1,_0x9024('0x11'));logger[_0x9024('0x12')](_0x9024('0x13'),_0x16e5b1,_0x9024('0x11'),JSON[_0x9024('0x14')](_0xf0c2cd));if(_0xf0c2cd[_0x9024('0x15')]){if(_0xf0c2cd['error'][_0x9024('0x16')]===0x1f4){logger[_0x9024('0x15')](_0x9024('0x10'),_0x16e5b1,_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);return _0x4bfbe1(_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);}logger[_0x9024('0x15')](_0x9024('0x10'),_0x16e5b1,_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);return _0x337c32(_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);}else{logger[_0x9024('0xf')](_0x9024('0x10'),_0x16e5b1,_0x9024('0x11'));_0x337c32(_0xf0c2cd['result'][_0x9024('0x17')]);}})['catch'](function(_0x3e847b){logger['error'](_0x9024('0x10'),_0x16e5b1,_0x3e847b);_0x4bfbe1(_0x3e847b);});});}exports[_0x9024('0x18')]=function(_0x505f02){var _0x328ff2=this;return new Promise(function(_0x39a696,_0x4e4849){return db[_0x9024('0x19')][_0x9024('0x1a')]({'raw':_0x505f02[_0x9024('0x1b')]?_0x505f02[_0x9024('0x1b')][_0x9024('0x1c')]===undefined?!![]:![]:!![],'where':_0x505f02[_0x9024('0x1b')]?_0x505f02['options'][_0x9024('0x1d')]||null:null,'attributes':_0x505f02[_0x9024('0x1b')]?_0x505f02[_0x9024('0x1b')][_0x9024('0x1e')]||null:null,'include':_0x505f02['options']?_0x505f02[_0x9024('0x1b')][_0x9024('0x1f')]?_['map'](_0x505f02[_0x9024('0x1b')][_0x9024('0x1f')],function(_0x49467f){return{'model':db[_0x49467f[_0x9024('0x20')]],'as':_0x49467f['as'],'attributes':_0x49467f[_0x9024('0x1e')],'include':_0x49467f[_0x9024('0x1f')]?_[_0x9024('0x21')](_0x49467f['include'],function(_0x223d33){return{'model':db[_0x223d33[_0x9024('0x20')]],'as':_0x223d33['as'],'attributes':_0x223d33['attributes'],'include':_0x223d33[_0x9024('0x1f')]?_[_0x9024('0x21')](_0x223d33[_0x9024('0x1f')],function(_0x1fa1b6){return{'model':db[_0x1fa1b6[_0x9024('0x20')]],'as':_0x1fa1b6['as'],'attributes':_0x1fa1b6[_0x9024('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x9024('0xe')](function(_0x1ae23c){logger[_0x9024('0xf')](_0x9024('0x18'),_0x505f02);logger[_0x9024('0x12')](_0x9024('0x18'),_0x505f02,JSON[_0x9024('0x14')](_0x1ae23c));_0x39a696(_0x1ae23c);})[_0x9024('0x22')](function(_0x5f27df){logger[_0x9024('0x15')](_0x9024('0x18'),_0x5f27df['message'],_0x505f02);_0x4e4849(_0x328ff2[_0x9024('0x15')](0x1f4,_0x5f27df[_0x9024('0x17')]));});});};
\ No newline at end of file
+var _0xdce3=['util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','request','then','info','Setting,\x20%s,\x20%s','Setting,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','Setting','find','options','raw','where','attributes','include','map','model','ShowSetting','debug','lodash'];(function(_0xdc4c23,_0x47aae1){var _0x3ce8a2=function(_0x5ab5d7){while(--_0x5ab5d7){_0xdc4c23['push'](_0xdc4c23['shift']());}};_0x3ce8a2(++_0x47aae1);}(_0xdce3,0x1a3));var _0x3dce=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xdce3[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x3dce('0x0'));var util=require(_0x3dce('0x1'));var moment=require(_0x3dce('0x2'));var BPromise=require(_0x3dce('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3dce('0x4'));var db=require(_0x3dce('0x5'))['db'];var utils=require(_0x3dce('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x3dce('0x7'));var jayson=require(_0x3dce('0x8'));var client=jayson['client'][_0x3dce('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2344ca,_0x20a23a,_0x29b1fb){return new BPromise(function(_0x22b234,_0x2ca70d){return client[_0x3dce('0xa')](_0x2344ca,_0x29b1fb)[_0x3dce('0xb')](function(_0x3de835){logger[_0x3dce('0xc')](_0x3dce('0xd'),_0x20a23a,'request\x20sent');logger['debug'](_0x3dce('0xe'),_0x20a23a,_0x3dce('0xf'),JSON['stringify'](_0x3de835));if(_0x3de835['error']){if(_0x3de835[_0x3dce('0x10')]['code']===0x1f4){logger[_0x3dce('0x10')]('Setting,\x20%s,\x20%s',_0x20a23a,_0x3de835[_0x3dce('0x10')][_0x3dce('0x11')]);return _0x2ca70d(_0x3de835[_0x3dce('0x10')][_0x3dce('0x11')]);}logger[_0x3dce('0x10')]('Setting,\x20%s,\x20%s',_0x20a23a,_0x3de835['error'][_0x3dce('0x11')]);return _0x22b234(_0x3de835[_0x3dce('0x10')][_0x3dce('0x11')]);}else{logger['info'](_0x3dce('0xd'),_0x20a23a,'request\x20sent');_0x22b234(_0x3de835[_0x3dce('0x12')][_0x3dce('0x11')]);}})['catch'](function(_0x109c09){logger[_0x3dce('0x10')](_0x3dce('0xd'),_0x20a23a,_0x109c09);_0x2ca70d(_0x109c09);});});}exports['ShowSetting']=function(_0x2e22bf){var _0x57457e=this;return new Promise(function(_0x46edd0,_0x211c3d){return db[_0x3dce('0x13')][_0x3dce('0x14')]({'raw':_0x2e22bf['options']?_0x2e22bf[_0x3dce('0x15')][_0x3dce('0x16')]===undefined?!![]:![]:!![],'where':_0x2e22bf[_0x3dce('0x15')]?_0x2e22bf['options'][_0x3dce('0x17')]||null:null,'attributes':_0x2e22bf['options']?_0x2e22bf[_0x3dce('0x15')][_0x3dce('0x18')]||null:null,'include':_0x2e22bf['options']?_0x2e22bf[_0x3dce('0x15')][_0x3dce('0x19')]?_[_0x3dce('0x1a')](_0x2e22bf[_0x3dce('0x15')][_0x3dce('0x19')],function(_0x1cd189){return{'model':db[_0x1cd189[_0x3dce('0x1b')]],'as':_0x1cd189['as'],'attributes':_0x1cd189[_0x3dce('0x18')],'include':_0x1cd189[_0x3dce('0x19')]?_[_0x3dce('0x1a')](_0x1cd189['include'],function(_0x4a0a3b){return{'model':db[_0x4a0a3b[_0x3dce('0x1b')]],'as':_0x4a0a3b['as'],'attributes':_0x4a0a3b[_0x3dce('0x18')],'include':_0x4a0a3b['include']?_[_0x3dce('0x1a')](_0x4a0a3b['include'],function(_0x2f7e34){return{'model':db[_0x2f7e34['model']],'as':_0x2f7e34['as'],'attributes':_0x2f7e34['attributes']};}):[]};}):[]};}):[]:[]})[_0x3dce('0xb')](function(_0x3691f8){logger[_0x3dce('0xc')](_0x3dce('0x1c'),_0x2e22bf);logger[_0x3dce('0x1d')](_0x3dce('0x1c'),_0x2e22bf,JSON['stringify'](_0x3691f8));_0x46edd0(_0x3691f8);})['catch'](function(_0x5d5d8d){logger['error'](_0x3dce('0x1c'),_0x5d5d8d[_0x3dce('0x11')],_0x2e22bf);_0x211c3d(_0x57457e[_0x3dce('0x10')](0x1f4,_0x5d5d8d[_0x3dce('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status','statusGet','/:id/users','post','create','/:id/notify','notify','put','delete','removeAnswers','path','connect-timeout','express'];(function(_0x5b8ee5,_0x2cfb07){var _0x26ce3d=function(_0x455693){while(--_0x455693){_0x5b8ee5['push'](_0x5b8ee5['shift']());}};_0x26ce3d(++_0x2cfb07);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x56899b,_0x80fce){_0x56899b=_0x56899b-0x0;var _0x47d591=_0x7fbe[_0x56899b];return _0x47d591;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe7fb('0x0'));var timeout=require(_0xe7fb('0x1'));var express=require(_0xe7fb('0x2'));var router=express[_0xe7fb('0x3')]();var fs_extra=require(_0xe7fb('0x4'));var auth=require(_0xe7fb('0x5'));var interaction=require(_0xe7fb('0x6'));var config=require(_0xe7fb('0x7'));var controller=require(_0xe7fb('0x8'));router[_0xe7fb('0x9')]('/',auth[_0xe7fb('0xa')](),controller[_0xe7fb('0xb')]);router[_0xe7fb('0x9')](_0xe7fb('0xc'),auth['isAuthenticated'](),controller[_0xe7fb('0xd')]);router[_0xe7fb('0x9')](_0xe7fb('0xe'),auth[_0xe7fb('0xa')](),controller['show']);router['get'](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x10')]);router[_0xe7fb('0x9')](_0xe7fb('0x11'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x12')]);router[_0xe7fb('0x9')](_0xe7fb('0x13'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x14')]);router[_0xe7fb('0x9')](_0xe7fb('0x15'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x16')]);router['get'](_0xe7fb('0x17'),controller[_0xe7fb('0x18')]);router['get'](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['getAgents']);router[_0xe7fb('0x1a')]('/',auth['isAuthenticated'](),controller[_0xe7fb('0x1b')]);router[_0xe7fb('0x1a')](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller['addDisposition']);router[_0xe7fb('0x1a')]('/:id/canned_answers',auth[_0xe7fb('0xa')](),controller['addAnswer']);router[_0xe7fb('0x1a')](_0xe7fb('0x1c'),controller[_0xe7fb('0x1d')]);router[_0xe7fb('0x1a')]('/:id/applications',auth[_0xe7fb('0xa')](),controller['addApplications']);router[_0xe7fb('0x1a')]('/:id/send',auth[_0xe7fb('0xa')](),controller['send']);router[_0xe7fb('0x1a')](_0xe7fb('0x17'),controller['status']);router[_0xe7fb('0x1a')](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['addAgents']);router[_0xe7fb('0x1e')](_0xe7fb('0xe'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xe7fb('0xe'),auth['isAuthenticated'](),controller['destroy']);router[_0xe7fb('0x1f')](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller['removeDispositions']);router[_0xe7fb('0x1f')](_0xe7fb('0x11'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x20')]);router[_0xe7fb('0x1f')](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0xe14b=['./smsAccount.controller','get','isAuthenticated','index','/describe','show','/:id/dispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status','statusGet','getAgents','post','create','addDisposition','addAnswer','/:id/notify','notify','addApplications','/:id/send','send','put','update','/:id','destroy','removeDispositions','delete','/:id/users','removeAgents','multer','util','express','Router','../../components/auth/service'];(function(_0x326c47,_0x8dca2){var _0x564786=function(_0x276e63){while(--_0x276e63){_0x326c47['push'](_0x326c47['shift']());}};_0x564786(++_0x8dca2);}(_0xe14b,0x93));var _0xbe14=function(_0x5b1c3a,_0x3129eb){_0x5b1c3a=_0x5b1c3a-0x0;var _0x15ca3e=_0xe14b[_0x5b1c3a];return _0x15ca3e;};'use strict';var multer=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbe14('0x2'));var router=express[_0xbe14('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xbe14('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xbe14('0x5'));router[_0xbe14('0x6')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x8')]);router[_0xbe14('0x6')](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['describe']);router['get']('/:id',auth[_0xbe14('0x7')](),controller[_0xbe14('0xa')]);router[_0xbe14('0x6')](_0xbe14('0xb'),auth['isAuthenticated'](),controller['getDispositions']);router[_0xbe14('0x6')](_0xbe14('0xc'),auth['isAuthenticated'](),controller[_0xbe14('0xd')]);router[_0xbe14('0x6')](_0xbe14('0xe'),auth[_0xbe14('0x7')](),controller[_0xbe14('0xf')]);router[_0xbe14('0x6')](_0xbe14('0x10'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x11')]);router[_0xbe14('0x6')](_0xbe14('0x12'),controller[_0xbe14('0x13')]);router[_0xbe14('0x6')]('/:id/users',auth['isAuthenticated'](),controller[_0xbe14('0x14')]);router[_0xbe14('0x15')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x16')]);router['post'](_0xbe14('0xb'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x17')]);router[_0xbe14('0x15')](_0xbe14('0xc'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x18')]);router['post'](_0xbe14('0x19'),controller[_0xbe14('0x1a')]);router[_0xbe14('0x15')](_0xbe14('0xe'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x1b')]);router['post'](_0xbe14('0x1c'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x1d')]);router[_0xbe14('0x15')](_0xbe14('0x12'),controller['status']);router[_0xbe14('0x15')]('/:id/users',auth[_0xbe14('0x7')](),controller['addAgents']);router[_0xbe14('0x1e')]('/:id',auth[_0xbe14('0x7')](),controller[_0xbe14('0x1f')]);router['delete'](_0xbe14('0x20'),auth['isAuthenticated'](),controller[_0xbe14('0x21')]);router['delete'](_0xbe14('0xb'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x22')]);router[_0xbe14('0x23')](_0xbe14('0xc'),auth[_0xbe14('0x7')](),controller['removeAnswers']);router[_0xbe14('0x23')](_0xbe14('0x24'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x25')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa366=['STRING','generate','ENUM','twilio','skebby','clicksend','clickatell','bandwidth','csc','infobip','BOOLEAN','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring'];(function(_0x12db0a,_0x84eb9d){var _0x209f5f=function(_0x49df2c){while(--_0x49df2c){_0x12db0a['push'](_0x12db0a['shift']());}};_0x209f5f(++_0x84eb9d);}(_0xa366,0x152));var _0x6a36=function(_0x50c255,_0x179ae4){_0x50c255=_0x50c255-0x0;var _0x532027=_0xa366[_0x50c255];return _0x532027;};'use strict';var Sequelize=require(_0x6a36('0x0'));var rs=require(_0x6a36('0x1'));module['exports']={'name':{'type':Sequelize[_0x6a36('0x2')],'unique':'name','allowNull':![]},'key':{'type':Sequelize[_0x6a36('0x2')],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0x6a36('0x2')],'defaultValue':function(){return rs[_0x6a36('0x3')]();}},'phone':{'type':Sequelize[_0x6a36('0x2')]},'type':{'type':Sequelize[_0x6a36('0x4')](_0x6a36('0x5'),_0x6a36('0x6'),'connectel',_0x6a36('0x7'),'plivo',_0x6a36('0x8'),_0x6a36('0x9'),_0x6a36('0xa'),_0x6a36('0xb'),'intelepeer')},'accountSid':{'type':Sequelize[_0x6a36('0x2')]},'authId':{'type':Sequelize[_0x6a36('0x2')]},'authToken':{'type':Sequelize[_0x6a36('0x2')]},'smsMethod':{'type':Sequelize['ENUM']('SI','TI','GP')},'username':{'type':Sequelize[_0x6a36('0x2')]},'password':{'type':Sequelize['STRING']},'apiKey':{'type':Sequelize['STRING']},'applicationId':{'type':Sequelize['STRING']},'accountId':{'type':Sequelize['STRING']},'senderString':{'type':Sequelize[_0x6a36('0x2')]},'deliveryReport':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![]},'description':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0x6a36('0xd');}},'notificationSound':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x6a36('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x6a36('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x6a36('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x6a36('0x2')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x6a36('0xe')],'comment':_0x6a36('0xf')},'mandatoryDisposition':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![],'comment':_0x6a36('0x10'),'set':function(_0x9ceea8){if(!_0x9ceea8)this[_0x6a36('0x11')](_0x6a36('0x12'),null);this[_0x6a36('0x11')](_0x6a36('0x13'),_0x9ceea8);}}};
\ No newline at end of file
+var _0xaf04=['plivo','bandwidth','csc','intelepeer','BOOLEAN','TEXT','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','randomstring','exports','STRING','name','generate','ENUM','twilio','skebby','connectel','clicksend'];(function(_0x5c9b4f,_0xe0c471){var _0x6d1197=function(_0x57b75d){while(--_0x57b75d){_0x5c9b4f['push'](_0x5c9b4f['shift']());}};_0x6d1197(++_0xe0c471);}(_0xaf04,0xbe));var _0x4af0=function(_0x1f7535,_0x5aef3f){_0x1f7535=_0x1f7535-0x0;var _0x3222f0=_0xaf04[_0x1f7535];return _0x3222f0;};'use strict';var Sequelize=require('sequelize');var rs=require(_0x4af0('0x0'));module[_0x4af0('0x1')]={'name':{'type':Sequelize[_0x4af0('0x2')],'unique':_0x4af0('0x3'),'allowNull':![]},'key':{'type':Sequelize[_0x4af0('0x2')],'allowNull':![]},'remote':{'type':Sequelize[_0x4af0('0x2')],'allowNull':![]},'token':{'type':Sequelize[_0x4af0('0x2')],'defaultValue':function(){return rs[_0x4af0('0x4')]();}},'phone':{'type':Sequelize[_0x4af0('0x2')]},'type':{'type':Sequelize[_0x4af0('0x5')](_0x4af0('0x6'),_0x4af0('0x7'),_0x4af0('0x8'),_0x4af0('0x9'),_0x4af0('0xa'),'clickatell',_0x4af0('0xb'),_0x4af0('0xc'),'infobip',_0x4af0('0xd'))},'accountSid':{'type':Sequelize[_0x4af0('0x2')]},'authId':{'type':Sequelize[_0x4af0('0x2')]},'authToken':{'type':Sequelize[_0x4af0('0x2')]},'smsMethod':{'type':Sequelize['ENUM']('SI','TI','GP')},'username':{'type':Sequelize[_0x4af0('0x2')]},'password':{'type':Sequelize[_0x4af0('0x2')]},'apiKey':{'type':Sequelize[_0x4af0('0x2')]},'applicationId':{'type':Sequelize[_0x4af0('0x2')]},'accountId':{'type':Sequelize[_0x4af0('0x2')]},'senderString':{'type':Sequelize[_0x4af0('0x2')]},'deliveryReport':{'type':Sequelize[_0x4af0('0xe')],'defaultValue':![]},'description':{'type':Sequelize[_0x4af0('0x2')]},'notificationTemplate':{'type':Sequelize[_0x4af0('0xf')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x4af0('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x4af0('0xe')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4af0('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4af0('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x4af0('0x2')]},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':_0x4af0('0x11')},'mandatoryDisposition':{'type':Sequelize[_0x4af0('0xe')],'defaultValue':![],'comment':_0x4af0('0x12'),'set':function(_0x3c9706){if(!_0x3c9706)this[_0x4af0('0x13')]('mandatoryDispositionPauseId',null);this['setDataValue']('mandatoryDisposition',_0x3c9706);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46ab=['removeAnswers','notify','SmsApplication','account','applications','orderBy','priority','Applications','CmContact','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','from','From','Body','messageId','MessageSid','sender','text','connectel','clicksend','message_id','plivo','Text','MessageUUID','infobip','results','csc','originatingAddress','segmentedMessage','fromNumber','replyMessageId','intelepeer','refid','isNil','Sequelize','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','DESC','list','omit','Contacts','SmsInteraction','spread','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','SmsMessage','UserId','User','agent','waitForTheAssignedAgent','Start','startRouting','receiveMessage','entity\x20found','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','text/xml','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','Contact','fullname','internal','Tag','Tags','color','tag','body\x20is\x20mandatory\x20and\x20not\x20empty','to\x20is\x20mandatory','List','out','Messages','dataValues','inspect','skebby','skebby_dispatch_id','statusInt','requestid','status_code','groupName','DELIVERED','clickatell','redif','error_code','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','bandwidth','message-delivered','DELIVRD','ACCEPTD','received\x20delivery\x20report\x20from','message-id','state','addAgents','emit','userSmsAccount:save','removeAgents','userSmsAccount:remove','getAgents','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','./smsAccount.socket','register','client','http','request','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','get','UserProfileResource','stack','name','send','index','Pause','map','SmsAccount','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','mandatoryDispositionPause','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','SmsAccounts','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','SmsAccountId','Disposition','getDispositions','order','pick','removeDispositions','ids','CannedAnswer','findOne'];(function(_0x3d4f6a,_0x347e08){var _0x29bdf8=function(_0x244155){while(--_0x244155){_0x3d4f6a['push'](_0x3d4f6a['shift']());}};_0x29bdf8(++_0x347e08);}(_0x46ab,0x15b));var _0xb46a=function(_0x350444,_0xd49b4e){_0x350444=_0x350444-0x0;var _0x29c4b9=_0x46ab[_0x350444];return _0x29c4b9;};'use strict';var emlformat=require(_0xb46a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb46a('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb46a('0x2'));var moment=require(_0xb46a('0x3'));var BPromise=require(_0xb46a('0x4'));var Mustache=require(_0xb46a('0x5'));var util=require(_0xb46a('0x6'));var path=require(_0xb46a('0x7'));var sox=require(_0xb46a('0x8'));var csv=require('to-csv');var ejs=require(_0xb46a('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb46a('0xa'));var squel=require(_0xb46a('0xb'));var crypto=require(_0xb46a('0xc'));var jsforce=require(_0xb46a('0xd'));var deskjs=require(_0xb46a('0xe'));var toCsv=require(_0xb46a('0xf'));var querystring=require(_0xb46a('0x10'));var Papa=require(_0xb46a('0x11'));var Redis=require(_0xb46a('0x12'));var authService=require(_0xb46a('0x13'));var qs=require(_0xb46a('0x14'));var as=require(_0xb46a('0x15'));var hardwareService=require(_0xb46a('0x16'));var logger=require('../../config/logger')(_0xb46a('0x17'));var utils=require(_0xb46a('0x18'));var config=require(_0xb46a('0x19'));var licenseUtil=require(_0xb46a('0x1a'));var db=require(_0xb46a('0x1b'))['db'];config[_0xb46a('0x1c')]=_[_0xb46a('0x1d')](config[_0xb46a('0x1c')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb46a('0x1c')]));require(_0xb46a('0x1e'))[_0xb46a('0x1f')](socket);var jayson=require('jayson/promise');var client=jayson[_0xb46a('0x20')][_0xb46a('0x21')]({'port':0x232c});function respondWithRpcPromise(_0x6f971a,_0x173de9,_0x54b78b,_0x5b9493){return new BPromise(function(_0x2f5135,_0x7972a8){var _0x43ceae=_0x5b9493||client;return _0x43ceae[_0xb46a('0x22')](_0x6f971a,_0x54b78b)[_0xb46a('0x23')](function(_0x9c6746){logger[_0xb46a('0x24')](_0xb46a('0x25'),_0x173de9,_0xb46a('0x26'));logger[_0xb46a('0x27')](_0xb46a('0x28'),_0x173de9,_0xb46a('0x26'),JSON[_0xb46a('0x29')](_0x9c6746));if(_0x9c6746[_0xb46a('0x2a')]){if(_0x9c6746[_0xb46a('0x2a')][_0xb46a('0x2b')]===0x1f4){logger[_0xb46a('0x2a')](_0xb46a('0x25'),_0x173de9,_0x9c6746['error'][_0xb46a('0x2c')]);return _0x7972a8(_0x9c6746[_0xb46a('0x2a')]['message']);}logger['error'](_0xb46a('0x25'),_0x173de9,_0x9c6746[_0xb46a('0x2a')][_0xb46a('0x2c')]);return _0x2f5135(_0x9c6746[_0xb46a('0x2a')][_0xb46a('0x2c')]);}else{logger[_0xb46a('0x24')](_0xb46a('0x25'),_0x173de9,'request\x20sent');_0x2f5135(_0x9c6746[_0xb46a('0x2d')][_0xb46a('0x2c')]);}})[_0xb46a('0x2e')](function(_0x38c230){logger[_0xb46a('0x2a')](_0xb46a('0x25'),_0x173de9,_0x38c230);_0x7972a8(_0x38c230);});});}function respondWithStatusCode(_0x591aae,_0x2464be){_0x2464be=_0x2464be||0xcc;return function(_0x208ac1){if(_0x208ac1){return _0x591aae[_0xb46a('0x2f')](_0x2464be);}return _0x591aae[_0xb46a('0x30')](_0x2464be)[_0xb46a('0x31')]();};}function respondWithResult(_0x5691ea,_0x106033){_0x106033=_0x106033||0xc8;return function(_0x6af8cb){if(_0x6af8cb){return _0x5691ea[_0xb46a('0x30')](_0x106033)[_0xb46a('0x32')](_0x6af8cb);}};}function respondWithFilteredResult(_0x3dfdcc,_0x1ddd17){return function(_0x2602d1){if(_0x2602d1){var _0x52db10=typeof _0x1ddd17[_0xb46a('0x33')]===_0xb46a('0x34')&&typeof _0x1ddd17[_0xb46a('0x35')]===_0xb46a('0x34');var _0x46d091=_0x2602d1[_0xb46a('0x36')];var _0x401c2e=_0x52db10?0x0:_0x1ddd17['offset'];var _0x1439f3=_0x52db10?_0x2602d1['count']:_0x1ddd17['offset']+_0x1ddd17['limit'];var _0x48340f;if(_0x1439f3>=_0x46d091){_0x1439f3=_0x46d091;_0x48340f=0xc8;}else{_0x48340f=0xce;}_0x3dfdcc[_0xb46a('0x30')](_0x48340f);return _0x3dfdcc[_0xb46a('0x37')](_0xb46a('0x38'),_0x401c2e+'-'+_0x1439f3+'/'+_0x46d091)[_0xb46a('0x32')](_0x2602d1);}return null;};}function patchUpdates(_0x3253de){return function(_0x365d1b){try{jsonpatch[_0xb46a('0x39')](_0x365d1b,_0x3253de,!![]);}catch(_0x3c3879){return BPromise[_0xb46a('0x3a')](_0x3c3879);}return _0x365d1b[_0xb46a('0x3b')]();};}function saveUpdates(_0x1a9047,_0x23efcf){return function(_0x21a5d5){if(_0x21a5d5){return _0x21a5d5['update'](_0x1a9047)[_0xb46a('0x23')](function(_0x534f03){return _0x534f03;});}return null;};}function removeEntity(_0x26a576,_0x246ed4){return function(_0x2a9466){if(_0x2a9466){return _0x2a9466[_0xb46a('0x3c')]()[_0xb46a('0x23')](function(){var _0x41258a=_0x2a9466[_0xb46a('0x3d')]({'plain':!![]});var _0x341705='SmsAccounts';return db[_0xb46a('0x3e')][_0xb46a('0x3c')]({'where':{'type':_0x341705,'resourceId':_0x41258a['id']}})['then'](function(){return _0x2a9466;});})[_0xb46a('0x23')](function(){_0x26a576[_0xb46a('0x30')](0xcc)['end']();});}};}function handleEntityNotFound(_0x14db67,_0x34838a){return function(_0xc780f2){if(!_0xc780f2){_0x14db67[_0xb46a('0x2f')](0x194);}return _0xc780f2;};}function handleError(_0x3e82b9,_0x249716){_0x249716=_0x249716||0x1f4;return function(_0x88460a){logger[_0xb46a('0x2a')](_0x88460a[_0xb46a('0x3f')]);if(_0x88460a['name']){delete _0x88460a[_0xb46a('0x40')];}_0x3e82b9[_0xb46a('0x30')](_0x249716)[_0xb46a('0x41')](_0x88460a);};}exports[_0xb46a('0x42')]=function(_0x25f1ea,_0x77506){var _0x117c69={'include':[{'model':db[_0xb46a('0x43')],'as':'mandatoryDispositionPause'}]},_0x1b6b5c={},_0x742bb6={'count':0x0,'rows':[]};var _0x287059=_[_0xb46a('0x44')](db[_0xb46a('0x45')][_0xb46a('0x46')],function(_0x547ef6){return{'name':_0x547ef6['fieldName'],'type':_0x547ef6[_0xb46a('0x47')][_0xb46a('0x48')]};});_0x1b6b5c[_0xb46a('0x49')]=_[_0xb46a('0x44')](_0x287059,_0xb46a('0x40'));_0x1b6b5c['query']=_[_0xb46a('0x4a')](_0x25f1ea[_0xb46a('0x4b')]);_0x1b6b5c[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0x1b6b5c[_0xb46a('0x49')],_0x1b6b5c[_0xb46a('0x4b')]);_0x117c69[_0xb46a('0x4e')]=_['intersection'](_0x1b6b5c[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x4f')]));_0x117c69[_0xb46a('0x4e')]=_0x117c69[_0xb46a('0x4e')]['length']?_0x117c69['attributes']:_0x1b6b5c[_0xb46a('0x49')];if(!_0x25f1ea['query'][_0xb46a('0x50')](_0xb46a('0x51'))){_0x117c69[_0xb46a('0x35')]=qs['limit'](_0x25f1ea[_0xb46a('0x4b')]['limit']);_0x117c69['offset']=qs[_0xb46a('0x33')](_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x33')]);}_0x117c69['order']=qs[_0xb46a('0x52')](_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x117c69[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_['pick'](_0x25f1ea[_0xb46a('0x4b')],_0x1b6b5c[_0xb46a('0x4c')]),_0x287059);if(_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x54')]){_0x117c69['where']=_[_0xb46a('0x55')](_0x117c69['where'],{'$or':_[_0xb46a('0x44')](_0x287059,function(_0x383877){if(_0x383877[_0xb46a('0x47')]!==_0xb46a('0x56')){var _0x433138={};_0x433138[_0x383877['name']]={'$like':'%'+_0x25f1ea['query'][_0xb46a('0x54')]+'%'};return _0x433138;}})});}_0x117c69=_[_0xb46a('0x55')]({},_0x117c69,_0x25f1ea[_0xb46a('0x57')]);var _0x4c2385={'where':_0x117c69[_0xb46a('0x53')]};return db[_0xb46a('0x45')][_0xb46a('0x36')](_0x4c2385)[_0xb46a('0x23')](function(_0x5c1aac){_0x742bb6[_0xb46a('0x36')]=_0x5c1aac;if(_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x58')]){_0x117c69[_0xb46a('0x59')]=[{'all':!![]}];}return db[_0xb46a('0x45')][_0xb46a('0x5a')](_0x117c69);})[_0xb46a('0x23')](function(_0x3645cc){_0x742bb6[_0xb46a('0x5b')]=_0x3645cc;return _0x742bb6;})[_0xb46a('0x23')](respondWithFilteredResult(_0x77506,_0x117c69))[_0xb46a('0x2e')](handleError(_0x77506,null));};exports[_0xb46a('0x5c')]=function(_0x461824,_0x17d448){var _0x33d5cb={'raw':![],'where':{'id':_0x461824[_0xb46a('0x5d')]['id']},'include':[{'model':db[_0xb46a('0x43')],'as':_0xb46a('0x5e')}]},_0xa86b4e={};_0xa86b4e['model']=_[_0xb46a('0x4a')](db['SmsAccount'][_0xb46a('0x46')]);_0xa86b4e[_0xb46a('0x4b')]=_[_0xb46a('0x4a')](_0x461824[_0xb46a('0x4b')]);_0xa86b4e['filters']=_[_0xb46a('0x4d')](_0xa86b4e[_0xb46a('0x49')],_0xa86b4e[_0xb46a('0x4b')]);_0x33d5cb[_0xb46a('0x4e')]=_[_0xb46a('0x4d')](_0xa86b4e[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x461824['query'][_0xb46a('0x4f')]));_0x33d5cb[_0xb46a('0x4e')]=_0x33d5cb[_0xb46a('0x4e')][_0xb46a('0x5f')]?_0x33d5cb[_0xb46a('0x4e')]:_0xa86b4e[_0xb46a('0x49')];if(_0x461824[_0xb46a('0x4b')][_0xb46a('0x58')]){_0x33d5cb[_0xb46a('0x59')]=[{'all':!![]}];}_0x33d5cb=_['merge']({},_0x33d5cb,_0x461824[_0xb46a('0x57')]);return db[_0xb46a('0x45')][_0xb46a('0x60')](_0x33d5cb)[_0xb46a('0x23')](handleEntityNotFound(_0x17d448,null))[_0xb46a('0x23')](respondWithResult(_0x17d448,null))[_0xb46a('0x2e')](handleError(_0x17d448,null));};exports[_0xb46a('0x61')]=function(_0x535ffa,_0x18e21a){return db[_0xb46a('0x45')][_0xb46a('0x61')](_0x535ffa[_0xb46a('0x62')],{})[_0xb46a('0x23')](function(_0x935f36){var _0x51f1b0=_0x535ffa[_0xb46a('0x63')][_0xb46a('0x3d')]({'plain':!![]});if(!_0x51f1b0)throw new Error(_0xb46a('0x64'));if(_0x51f1b0[_0xb46a('0x65')]===_0xb46a('0x63')){var _0x1054d6=_0x935f36[_0xb46a('0x3d')]({'plain':!![]});var _0x33fb29=_0xb46a('0x66');return db[_0xb46a('0x67')][_0xb46a('0x60')]({'where':{'name':_0x33fb29,'userProfileId':_0x51f1b0[_0xb46a('0x68')]},'raw':!![]})[_0xb46a('0x23')](function(_0x1e48b1){if(_0x1e48b1&&_0x1e48b1['autoAssociation']===0x0){return db[_0xb46a('0x3e')][_0xb46a('0x61')]({'name':_0x1054d6[_0xb46a('0x40')],'resourceId':_0x1054d6['id'],'type':_0x1e48b1[_0xb46a('0x40')],'sectionId':_0x1e48b1['id']},{})['then'](function(){return _0x935f36;});}else{return _0x935f36;}})[_0xb46a('0x2e')](function(_0x513260){logger[_0xb46a('0x2a')](_0xb46a('0x69'),_0x513260);throw _0x513260;});}return _0x935f36;})[_0xb46a('0x23')](respondWithResult(_0x18e21a,0xc9))[_0xb46a('0x2e')](handleError(_0x18e21a,null));};exports[_0xb46a('0x6a')]=function(_0x3bbd73,_0x61b4b8){if(_0x3bbd73[_0xb46a('0x62')]['id']){delete _0x3bbd73[_0xb46a('0x62')]['id'];}return db['SmsAccount'][_0xb46a('0x60')]({'where':{'id':_0x3bbd73['params']['id']},'include':[{'model':db['Pause'],'as':_0xb46a('0x5e')}]})[_0xb46a('0x23')](handleEntityNotFound(_0x61b4b8,null))[_0xb46a('0x23')](saveUpdates(_0x3bbd73['body'],null))['then'](respondWithResult(_0x61b4b8,null))['catch'](handleError(_0x61b4b8,null));};exports[_0xb46a('0x3c')]=function(_0x57edad,_0x347ae3){return db['SmsAccount']['find']({'where':{'id':_0x57edad[_0xb46a('0x5d')]['id']}})['then'](handleEntityNotFound(_0x347ae3,null))[_0xb46a('0x23')](removeEntity(_0x347ae3,null))[_0xb46a('0x2e')](handleError(_0x347ae3,null));};exports[_0xb46a('0x6b')]=function(_0x120916,_0x146486){return db[_0xb46a('0x45')][_0xb46a('0x6b')]()[_0xb46a('0x23')](respondWithResult(_0x146486,null))[_0xb46a('0x2e')](handleError(_0x146486,null));};exports['addDisposition']=function(_0x3f522d,_0x3d8c38,_0x1d817a){if(_0x3f522d[_0xb46a('0x62')]['id']){delete _0x3f522d[_0xb46a('0x62')]['id'];}return db[_0xb46a('0x45')]['find']({'where':{'id':_0x3f522d['params']['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x3d8c38,null))[_0xb46a('0x23')](function(_0x585ed7){if(_0x585ed7){_0x3f522d[_0xb46a('0x62')][_0xb46a('0x6c')]=_0x585ed7['id'];return db[_0xb46a('0x6d')][_0xb46a('0x61')](_0x3f522d[_0xb46a('0x62')]);}})['then'](respondWithResult(_0x3d8c38,null))[_0xb46a('0x2e')](handleError(_0x3d8c38,null));};exports[_0xb46a('0x6e')]=function(_0xab5e50,_0x4f26e1,_0x38059f){var _0x5c5bd0={'raw':![],'where':{}};var _0x1ff27a={};var _0x3c16ba={'count':0x0,'rows':[]};return db['SmsAccount']['findOne']({'where':{'id':_0xab5e50[_0xb46a('0x5d')]['id']}})['then'](handleEntityNotFound(_0x4f26e1,null))[_0xb46a('0x23')](function(_0xdd1758){if(_0xdd1758){_0x1ff27a[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db[_0xb46a('0x6d')]['rawAttributes']);_0x1ff27a[_0xb46a('0x4b')]=_[_0xb46a('0x4a')](_0xab5e50[_0xb46a('0x4b')]);_0x1ff27a[_0xb46a('0x4c')]=_['intersection'](_0x1ff27a['model'],_0x1ff27a[_0xb46a('0x4b')]);_0x5c5bd0['attributes']=_[_0xb46a('0x4d')](_0x1ff27a[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0xab5e50[_0xb46a('0x4b')]['fields']));_0x5c5bd0[_0xb46a('0x4e')]=_0x5c5bd0[_0xb46a('0x4e')]['length']?_0x5c5bd0[_0xb46a('0x4e')]:_0x1ff27a[_0xb46a('0x49')];if(!_0xab5e50[_0xb46a('0x4b')]['hasOwnProperty']('nolimit')){_0x5c5bd0[_0xb46a('0x35')]=qs[_0xb46a('0x35')](_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x35')]);_0x5c5bd0[_0xb46a('0x33')]=qs['offset'](_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x33')]);}_0x5c5bd0[_0xb46a('0x6f')]=qs[_0xb46a('0x52')](_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x5c5bd0[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0xab5e50[_0xb46a('0x4b')],_0x1ff27a[_0xb46a('0x4c')]));_0x5c5bd0[_0xb46a('0x53')]['SmsAccountId']=_0xdd1758['id'];if(_0xab5e50[_0xb46a('0x4b')]['filter']){_0x5c5bd0[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x5c5bd0[_0xb46a('0x53')],{'$or':_[_0xb46a('0x44')](_0x5c5bd0[_0xb46a('0x4e')],function(_0x34a0aa){var _0x498797={};_0x498797[_0x34a0aa]={'$like':'%'+_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0x498797;})});}_0x5c5bd0=_[_0xb46a('0x55')]({},_0x5c5bd0,_0xab5e50['options']);return db[_0xb46a('0x6d')]['count']({'where':_0x5c5bd0[_0xb46a('0x53')]})['then'](function(_0x46080a){_0x3c16ba[_0xb46a('0x36')]=_0x46080a;if(_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x58')]){_0x5c5bd0[_0xb46a('0x59')]=[{'all':!![]}];}return db['Disposition'][_0xb46a('0x5a')](_0x5c5bd0);})[_0xb46a('0x23')](function(_0x16a523){_0x3c16ba[_0xb46a('0x5b')]=_0x16a523;return _0x3c16ba;});}})['then'](respondWithFilteredResult(_0x4f26e1,_0x5c5bd0))['catch'](handleError(_0x4f26e1,null));};exports['removeDispositions']=function(_0x300378,_0x593d4c,_0x2716c1){return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x300378[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x593d4c,null))[_0xb46a('0x23')](function(_0x3f6dbc){if(_0x3f6dbc){return _0x3f6dbc[_0xb46a('0x71')](_0x300378[_0xb46a('0x4b')][_0xb46a('0x72')]);}})[_0xb46a('0x23')](respondWithStatusCode(_0x593d4c,null))[_0xb46a('0x2e')](handleError(_0x593d4c,null));};exports['addAnswer']=function(_0x220bd3,_0x256b6f,_0x12755e){if(_0x220bd3['body']['id']){delete _0x220bd3[_0xb46a('0x62')]['id'];}return db['SmsAccount']['find']({'where':{'id':_0x220bd3[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x256b6f,null))[_0xb46a('0x23')](function(_0x1c6249){if(_0x1c6249){_0x220bd3[_0xb46a('0x62')]['SmsAccountId']=_0x1c6249['id'];return db[_0xb46a('0x73')][_0xb46a('0x61')](_0x220bd3[_0xb46a('0x62')]);}})[_0xb46a('0x23')](respondWithResult(_0x256b6f,null))[_0xb46a('0x2e')](handleError(_0x256b6f,null));};exports['getAnswers']=function(_0xa3e626,_0x387f06,_0x31b274){var _0x2aba17={'raw':![],'where':{}};var _0xead1ea={};var _0x3452ad={'count':0x0,'rows':[]};return db['SmsAccount'][_0xb46a('0x74')]({'where':{'id':_0xa3e626[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x387f06,null))[_0xb46a('0x23')](function(_0x3bbf37){if(_0x3bbf37){_0xead1ea[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db[_0xb46a('0x73')]['rawAttributes']);_0xead1ea[_0xb46a('0x4b')]=_[_0xb46a('0x4a')](_0xa3e626[_0xb46a('0x4b')]);_0xead1ea[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0xead1ea['model'],_0xead1ea[_0xb46a('0x4b')]);_0x2aba17[_0xb46a('0x4e')]=_[_0xb46a('0x4d')](_0xead1ea[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x4f')]));_0x2aba17[_0xb46a('0x4e')]=_0x2aba17[_0xb46a('0x4e')]['length']?_0x2aba17['attributes']:_0xead1ea['model'];if(!_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x50')](_0xb46a('0x51'))){_0x2aba17['limit']=qs[_0xb46a('0x35')](_0xa3e626['query'][_0xb46a('0x35')]);_0x2aba17[_0xb46a('0x33')]=qs['offset'](_0xa3e626['query']['offset']);}_0x2aba17[_0xb46a('0x6f')]=qs['sort'](_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x2aba17['where']=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0xa3e626['query'],_0xead1ea[_0xb46a('0x4c')]));_0x2aba17[_0xb46a('0x53')][_0xb46a('0x6c')]=_0x3bbf37['id'];if(_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x54')]){_0x2aba17[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x2aba17['where'],{'$or':_[_0xb46a('0x44')](_0x2aba17['attributes'],function(_0x2efa27){var _0xbb7419={};_0xbb7419[_0x2efa27]={'$like':'%'+_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0xbb7419;})});}_0x2aba17=_[_0xb46a('0x55')]({},_0x2aba17,_0xa3e626['options']);return db[_0xb46a('0x73')][_0xb46a('0x36')]({'where':_0x2aba17['where']})[_0xb46a('0x23')](function(_0x1c5b18){_0x3452ad[_0xb46a('0x36')]=_0x1c5b18;if(_0xa3e626['query']['includeAll']){_0x2aba17['include']=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x2aba17);})[_0xb46a('0x23')](function(_0xe6ee19){_0x3452ad[_0xb46a('0x5b')]=_0xe6ee19;return _0x3452ad;});}})[_0xb46a('0x23')](respondWithFilteredResult(_0x387f06,_0x2aba17))[_0xb46a('0x2e')](handleError(_0x387f06,null));};exports[_0xb46a('0x75')]=function(_0x38622f,_0x1620bd,_0x1a1fe7){return db['SmsAccount']['find']({'where':{'id':_0x38622f[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x1620bd,null))[_0xb46a('0x23')](function(_0x14b09d){if(_0x14b09d){return _0x14b09d[_0xb46a('0x75')](_0x38622f['query'][_0xb46a('0x72')]);}})[_0xb46a('0x23')](respondWithStatusCode(_0x1620bd,null))[_0xb46a('0x2e')](handleError(_0x1620bd,null));};exports[_0xb46a('0x76')]=function(_0x324b89,_0x4d904a,_0x2feaa2){var _0x521b00={'channel':'sms'};var _0x23182f=[];var _0x4af12c=[];var _0x4d2c8d={};return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x324b89[_0xb46a('0x5d')]['id']},'include':[{'model':db[_0xb46a('0x77')],'as':'Applications'}]})[_0xb46a('0x23')](handleEntityNotFound(_0x4d904a,null))['then'](function(_0x10e290){_0x521b00[_0xb46a('0x78')]=_0x10e290;_0x521b00[_0xb46a('0x79')]=_[_0xb46a('0x7a')](_0x10e290['Applications'],[_0xb46a('0x7b')],['asc']);if(_0x521b00[_0xb46a('0x78')][_0xb46a('0x7c')]){delete _0x521b00[_0xb46a('0x78')][_0xb46a('0x7c')];}return db[_0xb46a('0x7d')]['describe']();})[_0xb46a('0x23')](function(_0x21b8b1){if(!_0x21b8b1){throw new db['Sequelize'][(_0xb46a('0x7e'))](_0xb46a('0x7f'));}_0x23182f=_[_0xb46a('0x80')](_[_0xb46a('0x4a')](_0x21b8b1),[_0xb46a('0x81'),_0xb46a('0x82')]);_0x4af12c=_['difference'](_[_0xb46a('0x4a')](_0x21b8b1),[_0xb46a('0x81'),_0xb46a('0x82'),_0xb46a('0x83'),_0xb46a('0x84')]);_0x521b00[_0xb46a('0x62')]={'mapKey':_0xb46a('0x85')};if(_0x521b00[_0xb46a('0x78')][_0xb46a('0x47')]){switch(_0x521b00[_0xb46a('0x78')]['type']){case _0xb46a('0x86'):_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x88')];_0x521b00[_0xb46a('0x62')]['body']=_0x324b89['body'][_0xb46a('0x89')];_0x521b00['body'][_0xb46a('0x8a')]=_0x324b89['body'][_0xb46a('0x8b')];break;case'skebby':_0x521b00['body'][_0xb46a('0x87')]='+'+_0x324b89[_0xb46a('0x62')][_0xb46a('0x8c')];_0x521b00['body'][_0xb46a('0x62')]=_0x324b89['body'][_0xb46a('0x8d')];break;case _0xb46a('0x8e'):_0x521b00['body'][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')]['from'];_0x521b00[_0xb46a('0x62')]['body']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x2c')];break;case _0xb46a('0x8f'):_0x521b00[_0xb46a('0x62')]['from']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x87')];_0x521b00['body']['body']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x62')];_0x521b00['body'][_0xb46a('0x8a')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x90')];break;case _0xb46a('0x91'):_0x521b00['body']['from']=_0x324b89['body'][_0xb46a('0x88')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x92')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x8a')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x93')];break;case _0xb46a('0x94'):_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]='+'+_0x324b89[_0xb46a('0x62')][_0xb46a('0x95')][0x0]['from'];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x95')][0x0][_0xb46a('0x8d')];_0x521b00[_0xb46a('0x62')]['messageId']=_0x324b89['body'][_0xb46a('0x95')][0x0][_0xb46a('0x8a')];break;case _0xb46a('0x96'):_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x97')];_0x521b00['body'][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x98')]['message'];break;case'clickatell':_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x99')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')]['text'];_0x521b00[_0xb46a('0x62')]['messageId']=_0x324b89['body'][_0xb46a('0x9a')];break;case'bandwidth':_0x521b00[_0xb46a('0x62')][_0xb46a('0x8a')]=_0x324b89[_0xb46a('0x62')][0x0][_0xb46a('0x2c')]['id'];_0x521b00['body'][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][0x0][_0xb46a('0x2c')][_0xb46a('0x87')];_0x521b00['body'][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][0x0][_0xb46a('0x2c')][_0xb46a('0x8d')];break;case _0xb46a('0x9b'):_0x521b00[_0xb46a('0x62')]['from']=_0x324b89['body'][_0xb46a('0x87')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x2c')];_0x521b00[_0xb46a('0x62')]['messageId']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x9c')];break;}}if(_0x521b00[_0xb46a('0x62')]['id']){delete _0x521b00[_0xb46a('0x62')]['id'];}if(_[_0xb46a('0x9d')](_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')])){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))]('from\x20is\x20mandatory');}if(_[_0xb46a('0x9d')](_0x521b00['body'][_0xb46a('0x62')])||_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]===''){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xb46a('0x9d')](_0x521b00['body'][_0xb46a('0x9f')])){throw new db['Sequelize'][(_0xb46a('0x7e'))](_0xb46a('0xa0')+_0x4af12c);}if(!_['includes'](_0x4af12c,_0x521b00[_0xb46a('0x62')]['mapKey'])){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))](_0xb46a('0xa1')+_0x4af12c);}_0x4d2c8d[_0x521b00[_0xb46a('0x62')][_0xb46a('0x9f')]]=_0x521b00[_0xb46a('0x62')]['from'];return db[_0xb46a('0xa2')][_0xb46a('0x60')]({'where':{'id':_0x521b00[_0xb46a('0x78')][_0xb46a('0x84')]},'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x4d2c8d,'limit':0x1,'order':[[_0xb46a('0x82'),_0xb46a('0xa3')]]}]});})[_0xb46a('0x23')](handleEntityNotFound(_0x4d904a,null))[_0xb46a('0x23')](function(_0x1dced8){if(_0x1dced8){_0x521b00[_0xb46a('0xa4')]=_[_0xb46a('0xa5')](_0x1dced8,['Contacts']);if(_0x1dced8[_0xb46a('0xa6')][_0xb46a('0x5f')]){return _0x1dced8[_0xb46a('0xa6')][0x0];}var _0x2dc80d=_[_0xb46a('0x1d')](_0x521b00[_0xb46a('0x62')],{'firstName':_0x521b00['body'][_0xb46a('0x87')],'ListId':_0x1dced8['id']});_0x2dc80d[_0x521b00[_0xb46a('0x62')][_0xb46a('0x9f')]]=_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')];return db['CmContact'][_0xb46a('0x61')](_0x2dc80d,{'fields':_0x23182f,'raw':!![]});}})[_0xb46a('0x23')](handleEntityNotFound(_0x4d904a,null))[_0xb46a('0x23')](function(_0x227fce){if(_0x227fce){_0x521b00['contact']=_0x227fce;var _0xc11d32={'ContactId':_0x227fce['id'],'phone':_0x521b00['body'][_0xb46a('0x87')],'SmsAccountId':_0x324b89[_0xb46a('0x5d')]['id']};var _0x1d6684={'ContactId':_0x227fce['id'],'SmsAccountId':_0x324b89[_0xb46a('0x5d')]['id'],'closed':![]};return db[_0xb46a('0xa7')]['find']({'where':_0x1d6684})['then'](function(_0x467ab2){if(_0x467ab2){return[_0x467ab2,![]];}return db[_0xb46a('0xa7')][_0xb46a('0x61')](_0xc11d32)[_0xb46a('0x23')](function(_0x51d06a){return[_0x51d06a,!![]];});});}})[_0xb46a('0xa8')](function(_0x4dcdbe,_0x53d21c){_0x521b00[_0xb46a('0xa9')]=_0x4dcdbe[_0xb46a('0x3d')]({'plain':!![]});_0x521b00[_0xb46a('0xa9')][_0xb46a('0xaa')]=![];if(_0x53d21c){if(_0x521b00['account'][_0xb46a('0xab')]){_0x521b00[_0xb46a('0x79')][_0xb46a('0xac')]({'id':0x0,'priority':_0x521b00['applications']['length']+0x1,'app':_0xb46a('0xad'),'appdata':_0xb46a('0xae'),'interval':_0xb46a('0xaf')});}_0x521b00[_0xb46a('0xa9')][_0xb46a('0xaa')]=!![];}return db[_0xb46a('0xb0')][_0xb46a('0x61')]({'phone':_0x521b00['body']['from'],'messageId':_0x521b00[_0xb46a('0x62')]['messageId'],'body':_0x521b00[_0xb46a('0x62')]['body'],'SmsAccountId':_0x324b89[_0xb46a('0x5d')]['id'],'SmsInteractionId':_0x4dcdbe['id'],'direction':'in','ContactId':_0x4dcdbe['ContactId'],'AttachmentId':_0x521b00[_0xb46a('0x62')]['AttachmentId']});})[_0xb46a('0x23')](function(_0x21aa79){_0x521b00[_0xb46a('0x2c')]=_0x21aa79;if(_0x521b00['interaction'][_0xb46a('0xb1')]){return db[_0xb46a('0xb2')][_0xb46a('0x60')]({'attributes':['id',_0xb46a('0x40')],'where':{'id':_0x521b00[_0xb46a('0xa9')][_0xb46a('0xb1')]}})[_0xb46a('0x23')](function(_0x23eabb){if(_0x23eabb){_0x521b00[_0xb46a('0x79')]['unshift']({'id':0x0,'priority':0x0,'app':_0xb46a('0xb3'),'appdata':_0x23eabb[_0xb46a('0x40')]+','+(_0x521b00[_0xb46a('0x78')][_0xb46a('0xb4')]||0xa),'interval':_0xb46a('0xaf')});}return respondWithRpcPromise(_0xb46a('0xb5'),'startRouting',_0x521b00);});}return respondWithRpcPromise(_0xb46a('0xb5'),_0xb46a('0xb6'),_0x521b00);})[_0xb46a('0x23')](function(_0x2f5305){if(_0x2f5305){var _0x47b5c1=0xc8;var _0x139f30=_0xb46a('0xb7');logger[_0xb46a('0x24')](_0xb46a('0x28'),_0x139f30,_0x47b5c1,_0xb46a('0xb8'));logger[_0xb46a('0x27')](_0xb46a('0xb9'),_0x139f30,_0x47b5c1,_0xb46a('0xb8'),JSON['stringify'](_0x2f5305));if(_0x521b00[_0xb46a('0x78')][_0xb46a('0x47')]==='twilio'){return _0x4d904a[_0xb46a('0x30')](_0x47b5c1)[_0xb46a('0x37')]('Content-Type',_0xb46a('0xba'))[_0xb46a('0x41')]('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x4d904a['status'](_0x47b5c1)[_0xb46a('0x32')](_0x2f5305);}}})['catch'](handleError(_0x4d904a,null));};exports[_0xb46a('0xbb')]=function(_0x59f663,_0x7be7c2,_0x4cfa23){return db['SmsAccount'][_0xb46a('0x74')]({'where':{'id':_0x59f663[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x7be7c2,null))[_0xb46a('0x23')](function(_0x64d24b){if(_0x64d24b){return db[_0xb46a('0xbc')][_0xb46a('0xbd')](function(_0xf2b0c2){return db[_0xb46a('0x77')][_0xb46a('0x3c')]({'where':{'SmsAccountId':_0x59f663['params']['id']},'transaction':_0xf2b0c2})[_0xb46a('0x23')](function(_0x4c8736){var _0x5ecd46=_['map'](_0x59f663[_0xb46a('0x62')],function(_0x3f8ae0){_0x3f8ae0[_0xb46a('0x6c')]=_0x59f663['params']['id'];return _0x3f8ae0;});return db[_0xb46a('0x77')][_0xb46a('0xbe')](_0x5ecd46,{'transaction':_0xf2b0c2});});})[_0xb46a('0x23')](function(){return db[_0xb46a('0x77')][_0xb46a('0xbf')]({'where':{'SmsAccountId':_0x59f663[_0xb46a('0x5d')]['id']},'order':_0xb46a('0x7b')});});}})['then'](respondWithResult(_0x7be7c2,null))[_0xb46a('0x2e')](handleError(_0x7be7c2,null));};exports[_0xb46a('0xc0')]=function(_0xad7417,_0x557e72,_0x564ec6){var _0x2279a1={};var _0x27cb33={};var _0x41d1df;var _0x3cfab5;return db[_0xb46a('0x45')][_0xb46a('0x74')]({'where':{'id':_0xad7417[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x557e72,null))[_0xb46a('0x23')](function(_0x345e7a){if(_0x345e7a){_0x41d1df=_0x345e7a;_0x27cb33['model']=_[_0xb46a('0x4a')](db[_0xb46a('0x77')][_0xb46a('0x46')]);_0x27cb33['query']=_[_0xb46a('0x4a')](_0xad7417[_0xb46a('0x4b')]);_0x27cb33['filters']=_[_0xb46a('0x4d')](_0x27cb33[_0xb46a('0x49')],_0x27cb33[_0xb46a('0x4b')]);_0x2279a1[_0xb46a('0x4e')]=_[_0xb46a('0x4d')](_0x27cb33[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0xad7417['query'][_0xb46a('0x4f')]));_0x2279a1[_0xb46a('0x4e')]=_0x2279a1['attributes'][_0xb46a('0x5f')]?_0x2279a1[_0xb46a('0x4e')]:_0x27cb33[_0xb46a('0x49')];_0x2279a1['order']=qs[_0xb46a('0x52')](_0xad7417[_0xb46a('0x4b')]['sort']);_0x2279a1[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0xad7417['query'],_0x27cb33['filters']));if(_0xad7417['query'][_0xb46a('0x54')]){_0x2279a1[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x2279a1[_0xb46a('0x53')],{'$or':_['map'](_0x2279a1[_0xb46a('0x4e')],function(_0x45c20e){var _0x3097a4={};_0x3097a4[_0x45c20e]={'$like':'%'+_0xad7417[_0xb46a('0x4b')]['filter']+'%'};return _0x3097a4;})});}_0x2279a1=_[_0xb46a('0x55')]({},_0x2279a1,_0xad7417[_0xb46a('0x57')]);return _0x41d1df[_0xb46a('0xc0')](_0x2279a1);}})[_0xb46a('0x23')](function(_0x4b6e2a){if(_0x4b6e2a){_0x3cfab5=_0x4b6e2a[_0xb46a('0x5f')];if(!_0xad7417[_0xb46a('0x4b')][_0xb46a('0x50')]('nolimit')){_0x2279a1['limit']=qs['limit'](_0xad7417[_0xb46a('0x4b')]['limit']);_0x2279a1[_0xb46a('0x33')]=qs[_0xb46a('0x33')](_0xad7417[_0xb46a('0x4b')][_0xb46a('0x33')]);}return _0x41d1df[_0xb46a('0xc0')](_0x2279a1);}})['then'](function(_0x31ba90){if(_0x31ba90){return _0x31ba90?{'count':_0x3cfab5,'rows':_0x31ba90}:null;}})['then'](respondWithResult(_0x557e72,null))[_0xb46a('0x2e')](handleError(_0x557e72,null));};exports['getInteractions']=function(_0x2f8ed6,_0x381c8a,_0x383d8c){var _0x32c974={'raw':![],'where':{}};var _0x11bb2f={};var _0x409cec={'count':0x0,'rows':[]};return db['SmsAccount'][_0xb46a('0x74')]({'where':{'id':_0x2f8ed6[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x381c8a,null))[_0xb46a('0x23')](function(_0x519b64){if(_0x519b64){_0x11bb2f[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db['SmsInteraction'][_0xb46a('0x46')]);_0x11bb2f[_0xb46a('0x4b')]=_['keys'](_0x2f8ed6[_0xb46a('0x4b')]);_0x11bb2f[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0x11bb2f[_0xb46a('0x49')],_0x11bb2f[_0xb46a('0x4b')]);_0x32c974['attributes']=_['intersection'](_0x11bb2f[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x2f8ed6[_0xb46a('0x4b')]['fields']));_0x32c974[_0xb46a('0x4e')]=_0x32c974[_0xb46a('0x4e')][_0xb46a('0x5f')]?_0x32c974[_0xb46a('0x4e')]:_0x11bb2f[_0xb46a('0x49')];if(!_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x50')](_0xb46a('0x51'))){_0x32c974[_0xb46a('0x35')]=qs[_0xb46a('0x35')](_0x2f8ed6[_0xb46a('0x4b')]['limit']);_0x32c974[_0xb46a('0x33')]=qs[_0xb46a('0x33')](_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x33')]);}_0x32c974[_0xb46a('0x6f')]=qs[_0xb46a('0x52')](_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x32c974['where']=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0x2f8ed6[_0xb46a('0x4b')],_0x11bb2f[_0xb46a('0x4c')]));_0x32c974['where'][_0xb46a('0x6c')]=_0x519b64['id'];if(_0x2f8ed6[_0xb46a('0x4b')]['filter']){_0x32c974[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x32c974[_0xb46a('0x53')],{'$or':_[_0xb46a('0x44')](_0x32c974['attributes'],function(_0x26e54e){var _0x4cbf05={};_0x4cbf05[_0x26e54e]={'$like':'%'+_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0x4cbf05;})});}_0x32c974=_[_0xb46a('0x55')]({},_0x32c974,_0x2f8ed6[_0xb46a('0x57')]);return db[_0xb46a('0xa7')][_0xb46a('0x36')]({'where':_0x32c974[_0xb46a('0x53')]})['then'](function(_0xb087b2){_0x409cec[_0xb46a('0x36')]=_0xb087b2;if(_0x2f8ed6['query']['includeAll']){_0x32c974[_0xb46a('0x59')]=[{'model':db[_0xb46a('0x7d')],'as':_0xb46a('0xc1'),'required':![]},{'model':db[_0xb46a('0xb2')],'as':'Owner','attributes':[_0xb46a('0x40'),_0xb46a('0xc2'),_0xb46a('0xc3')],'required':![]},{'model':db[_0xb46a('0xc4')],'as':_0xb46a('0xc5'),'attributes':['id',_0xb46a('0x40'),_0xb46a('0xc6')],'where':_0x2f8ed6[_0xb46a('0x4b')]['tag']?{'id':_0x2f8ed6['query'][_0xb46a('0xc7')]}:undefined,'required':_0x2f8ed6[_0xb46a('0x4b')]['tag']?!![]:![]}];}return db[_0xb46a('0xa7')][_0xb46a('0x5a')](_0x32c974);})[_0xb46a('0x23')](function(_0x141349){_0x409cec['rows']=_0x141349;return _0x409cec;});}})['then'](respondWithFilteredResult(_0x381c8a,_0x32c974))[_0xb46a('0x2e')](handleError(_0x381c8a,null));};exports[_0xb46a('0x41')]=function(_0x5e3ce8,_0x54847e,_0x2c9332){var _0x4035e7,_0x2a5f40,_0xd7ec87;if(_[_0xb46a('0x9d')](_0x5e3ce8[_0xb46a('0x62')][_0xb46a('0x62')])||_0x5e3ce8[_0xb46a('0x62')][_0xb46a('0x62')]===''){throw new db['Sequelize'][(_0xb46a('0x7e'))](_0xb46a('0xc8'));}if(_[_0xb46a('0x9d')](_0x5e3ce8[_0xb46a('0x62')]['to'])){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))](_0xb46a('0xc9'));}_0x4035e7=_0x5e3ce8['body']['to'];return db['SmsAccount']['find']({'where':{'id':_0x5e3ce8[_0xb46a('0x5d')]['id']},'include':[{'model':db[_0xb46a('0xa2')],'as':_0xb46a('0xca'),'include':[{'model':db[_0xb46a('0x7d')],'as':_0xb46a('0xa6'),'where':{'mobile':_0x4035e7},'limit':0x1,'order':[[_0xb46a('0x82'),_0xb46a('0xa3')]]}]}]})[_0xb46a('0x23')](handleEntityNotFound(_0x54847e,null))[_0xb46a('0x23')](function(_0x38975a){if(_0x38975a&&_0x38975a[_0xb46a('0xca')]){_0x2a5f40=_0x38975a[_0xb46a('0x3d')]({'plain':!![]});if(_0x2a5f40['List']&&_0x2a5f40[_0xb46a('0xca')][_0xb46a('0xa6')]['length']){return _0x2a5f40[_0xb46a('0xca')][_0xb46a('0xa6')][0x0];}return db['CmContact'][_0xb46a('0x61')](_[_0xb46a('0x1d')](_0x5e3ce8[_0xb46a('0x62')],{'firstName':_0x4035e7,'mobile':_0x4035e7,'phone':_0x4035e7,'ListId':_0x2a5f40[_0xb46a('0x84')]}));}})[_0xb46a('0x23')](handleEntityNotFound(_0x54847e,null))['then'](function(_0x13a900){if(_0x13a900){_0xd7ec87=_0x13a900;return db['SmsInteraction']['find']({'where':{'ContactId':_0xd7ec87['id'],'closed':![],'SmsAccountId':_0x2a5f40['id']}})[_0xb46a('0x23')](function(_0x5a0e9d){if(_0x5a0e9d){return[_0x5a0e9d,![]];}return db[_0xb46a('0xa7')][_0xb46a('0x61')]({'UserId':_0x5e3ce8[_0xb46a('0x63')]['id'],'ContactId':_0xd7ec87['id'],'SmsAccountId':_0x2a5f40['id'],'phone':_0x4035e7,'firstMsgDirection':_0xb46a('0xcb'),'Messages':[_[_0xb46a('0x55')](_0x5e3ce8['body'],{'read':![],'body':_0x5e3ce8['body'][_0xb46a('0x62')],'phone':_0x4035e7,'SmsAccountId':_0x2a5f40['id'],'UserId':_0x5e3ce8[_0xb46a('0x63')]['id'],'ContactId':_0xd7ec87['id']})]},{'include':[{'model':db['SmsMessage'],'as':_0xb46a('0xcc')}]})[_0xb46a('0x23')](function(_0x5871a3){return[_0x5871a3,!![]];});});}})[_0xb46a('0xa8')](function(_0x275e13,_0x3001c0){if(_0x3001c0){return _0x275e13;}return db[_0xb46a('0xb0')]['create'](_['merge'](_0x5e3ce8['body'],{'read':![],'body':_0x5e3ce8[_0xb46a('0x62')]['body'],'phone':_0x4035e7,'SmsAccountId':_0x2a5f40['id'],'SmsInteractionId':_0x275e13['id'],'UserId':_0x5e3ce8['user']['id'],'ContactId':_0xd7ec87['id']}))['then'](function(_0x33d01b){_0x275e13[_0xb46a('0xcd')][_0xb46a('0xcc')]=[];_0x275e13[_0xb46a('0xcd')][_0xb46a('0xcc')][_0xb46a('0xac')](_0x33d01b[_0xb46a('0xcd')]);return _0x275e13;});})[_0xb46a('0x23')](respondWithResult(_0x54847e,null))['catch'](handleError(_0x54847e,null));};exports['status']=function(_0x4a404b,_0x51c938,_0x120cb2){if(_0x4a404b[_0xb46a('0x62')]['id']){delete _0x4a404b[_0xb46a('0x62')]['id'];}var _0x34c511,_0x4cc52a,_0x5bfdb3;return db['SmsAccount'][_0xb46a('0x60')]({'where':{'id':_0x4a404b[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x51c938,null))[_0xb46a('0x23')](function(_0x38e17e){if(_0x38e17e){_0x5bfdb3=_0x38e17e;logger[_0xb46a('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xb46a('0x30'),'received\x20delivery\x20report\x20from',_0x38e17e[_0xb46a('0x47')],util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));switch(_0x38e17e['type']){case _0xb46a('0xcf'):if(_0x4a404b['body']['skebby_dispatch_id']&&_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')]){_0x4cc52a=_0x4a404b['body'][_0xb46a('0x30')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd0')]}});}break;case'connectel':if(_0x4a404b['body']['requestid']&&_0x4a404b['body']['statusInt']){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd1')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd2')]}});}break;case'clicksend':if(_0x4a404b[_0xb46a('0x62')][_0xb46a('0x90')]&&_0x4a404b[_0xb46a('0x62')]['status_code']){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd3')];return db['SmsMessage'][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0x90')]}});}break;case'infobip':var _0x38915a=_0x4a404b['body'][_0xb46a('0x95')][0x0];if(_0x38915a[_0xb46a('0x8a')]&&_0x38915a[_0xb46a('0x30')][_0xb46a('0xd4')]===_0xb46a('0xd5')){_0x4cc52a=_0x38915a[_0xb46a('0x30')][_0xb46a('0xd4')];return db[_0xb46a('0xb0')]['find']({'where':{'messageId':_0x38915a['messageId']}});}break;case _0xb46a('0xd6'):if(_0x4a404b['body']['messageId']&&_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')]){_0x4cc52a=_0x4a404b['body'][_0xb46a('0x30')];return db['SmsMessage'][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0x8a')]}});}break;case'bandwidth':if(_0x4a404b[_0xb46a('0x62')][0x0][_0xb46a('0x2c')]['id']){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][0x0][_0xb46a('0x47')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][0x0][_0xb46a('0x2c')]['id']}});}break;case'intelepeer':if(_0x4a404b[_0xb46a('0x62')]['redif']&&_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')]){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd7')]}});}break;}}})[_0xb46a('0x23')](handleEntityNotFound(_0x51c938,null))[_0xb46a('0x23')](function(_0x1c2789){if(_0x1c2789){_0x34c511=_0x1c2789;switch(_0x5bfdb3[_0xb46a('0x47')]){case _0xb46a('0xcf'):if(_0x4cc52a==='DELIVERED'){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0xcf'),util['inspect'](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case'connectel':if(_0x4cc52a==='1'){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0xcf'),util['inspect'](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0x8f'):if(!_0x4a404b['body'][_0xb46a('0xd8')]&&_0x4cc52a>=0xc8&&_0x4cc52a<=0xce){return _0x34c511['update']({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0x8f'),util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0x94'):var _0x4d2fee=_0x4a404b[_0xb46a('0x62')]['results'][0x0];if(_0x4d2fee['status'][_0xb46a('0xd4')]===_0xb46a('0xd5')){return _0x34c511['update']({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),'status',_0xb46a('0x94'),util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0xd6'):if(_0x4cc52a==_0xb46a('0xd9')||_0x4cc52a==_0xb46a('0xda')){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0xd6'),util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0xdb'):if(_0x4cc52a==_0xb46a('0xdc')){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger['error'](_0xb46a('0x28'),_0xb46a('0x30'),'bandwidth',util['inspect'](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case'intelepeer':if(_0x4cc52a===_0xb46a('0xdd')||_0x4cc52a===_0xb46a('0xde')){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),'status','intelepeer',util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;}return _0x34c511;}})[_0xb46a('0x23')](respondWithResult(_0x51c938,null))[_0xb46a('0x2e')](handleError(_0x51c938,null));};exports['statusGet']=function(_0xa888fa,_0x88798b,_0x52f76f){var _0x2acc99,_0x4aa823,_0x1b1108;return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0xa888fa[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x88798b,null))[_0xb46a('0x23')](function(_0x1aac43){if(_0x1aac43){_0x1b1108=_0x1aac43;logger[_0xb46a('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xb46a('0x30'),_0xb46a('0xdf'),_0x1aac43['type'],util[_0xb46a('0xce')](_0xa888fa[_0xb46a('0x4b')],{'showHidden':![],'depth':null}));switch(_0x1aac43[_0xb46a('0x47')]){case _0xb46a('0x96'):if(_0xa888fa[_0xb46a('0x4b')][_0xb46a('0xe0')]&&_0xa888fa[_0xb46a('0x4b')][_0xb46a('0xe1')]){_0x4aa823=_0xa888fa['query'][_0xb46a('0xe1')];return db['SmsMessage'][_0xb46a('0x60')]({'where':{'messageId':_0xa888fa[_0xb46a('0x4b')][_0xb46a('0xe0')]}});}break;}}})[_0xb46a('0x23')](handleEntityNotFound(_0x88798b,null))[_0xb46a('0x23')](function(_0x4b25af){if(_0x4b25af){_0x2acc99=_0x4b25af;switch(_0x1b1108['type']){case _0xb46a('0x96'):if(_0x4aa823==='2'||_0x4aa823==='6'){return _0x2acc99[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xb46a('0x30'),_0xb46a('0x96'),util[_0xb46a('0xce')](_0xa888fa['query'],{'showHidden':![],'depth':null}));};break;}return _0x2acc99;}})[_0xb46a('0x23')](respondWithResult(_0x88798b,null))['catch'](handleError(_0x88798b,null));};exports['addAgents']=function(_0x37e844,_0x1320a4,_0x1b683a){return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x37e844['params']['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x1320a4,null))[_0xb46a('0x23')](function(_0x3f9570){if(_0x3f9570){return _0x3f9570[_0xb46a('0xe2')](_0x37e844[_0xb46a('0x62')]['ids'],_[_0xb46a('0xa5')](_0x37e844[_0xb46a('0x62')],['ids','id'])||{})[_0xb46a('0xa8')](function(_0x2e5eac){for(var _0x2da421=0x0;_0x2da421<_0x37e844[_0xb46a('0x62')][_0xb46a('0x72')][_0xb46a('0x5f')];_0x2da421+=0x1){socket[_0xb46a('0xe3')](_0xb46a('0xe4'),{'UserId':Number(_0x37e844[_0xb46a('0x62')][_0xb46a('0x72')][_0x2da421]),'SmsAccountId':Number(_0x37e844['params']['id'])});}return _0x2e5eac;});}})[_0xb46a('0x23')](respondWithResult(_0x1320a4,null))[_0xb46a('0x2e')](handleError(_0x1320a4,null));};exports[_0xb46a('0xe5')]=function(_0x2422bc,_0x7e8341,_0x1e325f){return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x2422bc[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x7e8341,null))[_0xb46a('0x23')](function(_0x31f39a){if(_0x31f39a){return _0x31f39a[_0xb46a('0xe5')](_0x2422bc[_0xb46a('0x4b')]['ids'])[_0xb46a('0x23')](function(){if(_['isArray'](_0x2422bc['query'][_0xb46a('0x72')])){for(var _0xd62590=0x0;_0xd62590<_0x2422bc[_0xb46a('0x4b')][_0xb46a('0x72')][_0xb46a('0x5f')];_0xd62590+=0x1){socket[_0xb46a('0xe3')]('userSmsAccount:remove',{'UserId':Number(_0x2422bc['query'][_0xb46a('0x72')][_0xd62590]),'SmsAccountId':Number(_0x2422bc[_0xb46a('0x5d')]['id'])});}}else{socket[_0xb46a('0xe3')](_0xb46a('0xe6'),{'UserId':Number(_0x2422bc[_0xb46a('0x4b')][_0xb46a('0x72')]),'SmsAccountId':Number(_0x2422bc[_0xb46a('0x5d')]['id'])});}});}})[_0xb46a('0x23')](respondWithStatusCode(_0x7e8341,null))[_0xb46a('0x2e')](handleError(_0x7e8341,null));};exports['getAgents']=function(_0x55ba75,_0x46775b,_0x15b542){var _0x2de3c7={};var _0x59fa0c={};var _0x4da222;var _0xc07235;return db[_0xb46a('0x45')][_0xb46a('0x74')]({'where':{'id':_0x55ba75['params']['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x46775b,null))['then'](function(_0x3233d9){if(_0x3233d9){_0x4da222=_0x3233d9;_0x59fa0c[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db[_0xb46a('0xb2')]['rawAttributes']);_0x59fa0c[_0xb46a('0x4b')]=_['keys'](_0x55ba75[_0xb46a('0x4b')]);_0x59fa0c[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0x59fa0c[_0xb46a('0x49')],_0x59fa0c[_0xb46a('0x4b')]);_0x2de3c7[_0xb46a('0x4e')]=_['intersection'](_0x59fa0c[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x55ba75['query'][_0xb46a('0x4f')]));_0x2de3c7[_0xb46a('0x4e')]=_0x2de3c7['attributes'][_0xb46a('0x5f')]?_0x2de3c7[_0xb46a('0x4e')]:_0x59fa0c['model'];_0x2de3c7['order']=qs[_0xb46a('0x52')](_0x55ba75[_0xb46a('0x4b')]['sort']);_0x2de3c7[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0x55ba75['query'],_0x59fa0c['filters']));if(_0x55ba75[_0xb46a('0x4b')]['filter']){_0x2de3c7[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x2de3c7['where'],{'$or':_[_0xb46a('0x44')](_0x2de3c7['attributes'],function(_0x4958c9){var _0x5b8e04={};_0x5b8e04[_0x4958c9]={'$like':'%'+_0x55ba75[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0x5b8e04;})});}_0x2de3c7=_[_0xb46a('0x55')]({},_0x2de3c7,_0x55ba75['options']);return _0x4da222[_0xb46a('0xe7')](_0x2de3c7);}})['then'](function(_0x1bd408){if(_0x1bd408){_0xc07235=_0x1bd408['length'];if(!_0x55ba75['query'][_0xb46a('0x50')](_0xb46a('0x51'))){_0x2de3c7['limit']=qs[_0xb46a('0x35')](_0x55ba75[_0xb46a('0x4b')][_0xb46a('0x35')]);_0x2de3c7['offset']=qs[_0xb46a('0x33')](_0x55ba75['query']['offset']);}return _0x4da222['getAgents'](_0x2de3c7);}})[_0xb46a('0x23')](function(_0x16aca3){if(_0x16aca3){return _0x16aca3?{'count':_0xc07235,'rows':_0x16aca3}:null;}})[_0xb46a('0x23')](respondWithResult(_0x46775b,null))[_0xb46a('0x2e')](handleError(_0x46775b,null));};
\ No newline at end of file
+var _0x92c9=['Messages','received\x20delivery\x20report\x20from','inspect','skebby','skebby_dispatch_id','requestid','statusInt','clicksend','status_code','groupName','redif','DELIVERED','error_code','clickatell','RECEIVED_BY_RECIPIENT','message-delivered','ACCEPTD','statusGet','state','message-id','addAgents','emit','userSmsAccount:save','removeAgents','isArray','userSmsAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','register','jayson/promise','client','request','then','request\x20sent','debug','stringify','error','SmsAccount,\x20%s,\x20%s','message','info','result','catch','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','save','update','destroy','SmsAccounts','UserProfileResource','stack','name','send','index','map','SmsAccount','rawAttributes','fieldName','type','key','model','keys','intersection','query','attributes','fields','length','nolimit','order','sort','where','pick','filters','filter','merge','VIRTUAL','includeAll','include','findAll','rows','Pause','mandatoryDispositionPause','options','find','create','body','user','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','addDisposition','SmsAccountId','getDispositions','findOne','Disposition','hasOwnProperty','removeDispositions','addAnswer','CannedAnswer','getAnswers','removeAnswers','ids','notify','sms','SmsApplication','Applications','account','applications','orderBy','asc','Sequelize','ValidationError','no\x20available\x20attributes','difference','updatedAt','CompanyId','ListId','mobile','from','From','Body','messageId','text','connectel','message_id','plivo','Text','MessageUUID','infobip','results','csc','originatingAddress','segmentedMessage','fromNumber','replyMessageId','bandwidth','intelepeer','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','DESC','list','omit','CmContact','contact','SmsInteraction','spread','interaction','autoclose','push','close','*,*,*,*','created','SmsMessage','ContactId','AttachmentId','UserId','agent','Start','startRouting','receiveMessage','SmsAccount,\x20%s,\x20%s,\x20%s','entity\x20found','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','twilio','Content-Type','addApplications','sequelize','transaction','bulkCreate','priority','getApplications','getInteractions','User','Owner','internal','Tag','color','tag','to\x20is\x20mandatory','List','out','dataValues'];(function(_0x4b2b03,_0xbf34ee){var _0x1bf0ed=function(_0x562785){while(--_0x562785){_0x4b2b03['push'](_0x4b2b03['shift']());}};_0x1bf0ed(++_0xbf34ee);}(_0x92c9,0x1e3));var _0x992c=function(_0x2bcfeb,_0x550ad7){_0x2bcfeb=_0x2bcfeb-0x0;var _0x16d934=_0x92c9[_0x2bcfeb];return _0x16d934;};'use strict';var emlformat=require(_0x992c('0x0'));var rimraf=require(_0x992c('0x1'));var zipdir=require(_0x992c('0x2'));var jsonpatch=require(_0x992c('0x3'));var rp=require(_0x992c('0x4'));var moment=require(_0x992c('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x992c('0x6'));var util=require(_0x992c('0x7'));var path=require(_0x992c('0x8'));var sox=require(_0x992c('0x9'));var csv=require(_0x992c('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x992c('0xb'));var _=require(_0x992c('0xc'));var squel=require(_0x992c('0xd'));var crypto=require(_0x992c('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x992c('0xf'));var toCsv=require(_0x992c('0xa'));var querystring=require(_0x992c('0x10'));var Papa=require(_0x992c('0x11'));var Redis=require(_0x992c('0x12'));var authService=require(_0x992c('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x992c('0x14'));var hardwareService=require(_0x992c('0x15'));var logger=require(_0x992c('0x16'))(_0x992c('0x17'));var utils=require(_0x992c('0x18'));var config=require(_0x992c('0x19'));var licenseUtil=require(_0x992c('0x1a'));var db=require('../../mysqldb')['db'];config[_0x992c('0x1b')]=_[_0x992c('0x1c')](config['redis'],{'host':_0x992c('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x992c('0x1b')]));require('./smsAccount.socket')[_0x992c('0x1e')](socket);var jayson=require(_0x992c('0x1f'));var client=jayson[_0x992c('0x20')]['http']({'port':0x232c});function respondWithRpcPromise(_0x11d212,_0x5b9117,_0x6115e2,_0x91309a){return new BPromise(function(_0x411621,_0x1e4988){var _0x5198d5=_0x91309a||client;return _0x5198d5[_0x992c('0x21')](_0x11d212,_0x6115e2)[_0x992c('0x22')](function(_0x3c4fb8){logger['info']('SmsAccount,\x20%s,\x20%s',_0x5b9117,_0x992c('0x23'));logger[_0x992c('0x24')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x5b9117,_0x992c('0x23'),JSON[_0x992c('0x25')](_0x3c4fb8));if(_0x3c4fb8[_0x992c('0x26')]){if(_0x3c4fb8[_0x992c('0x26')]['code']===0x1f4){logger[_0x992c('0x26')](_0x992c('0x27'),_0x5b9117,_0x3c4fb8[_0x992c('0x26')]['message']);return _0x1e4988(_0x3c4fb8[_0x992c('0x26')][_0x992c('0x28')]);}logger[_0x992c('0x26')](_0x992c('0x27'),_0x5b9117,_0x3c4fb8['error'][_0x992c('0x28')]);return _0x411621(_0x3c4fb8[_0x992c('0x26')]['message']);}else{logger[_0x992c('0x29')](_0x992c('0x27'),_0x5b9117,_0x992c('0x23'));_0x411621(_0x3c4fb8[_0x992c('0x2a')][_0x992c('0x28')]);}})[_0x992c('0x2b')](function(_0x5eec2c){logger[_0x992c('0x26')](_0x992c('0x27'),_0x5b9117,_0x5eec2c);_0x1e4988(_0x5eec2c);});});}function respondWithStatusCode(_0x980ccd,_0x1d5aa5){_0x1d5aa5=_0x1d5aa5||0xcc;return function(_0x296c4d){if(_0x296c4d){return _0x980ccd['sendStatus'](_0x1d5aa5);}return _0x980ccd[_0x992c('0x2c')](_0x1d5aa5)[_0x992c('0x2d')]();};}function respondWithResult(_0x38b46a,_0x1ed9b2){_0x1ed9b2=_0x1ed9b2||0xc8;return function(_0x2a4ab4){if(_0x2a4ab4){return _0x38b46a[_0x992c('0x2c')](_0x1ed9b2)[_0x992c('0x2e')](_0x2a4ab4);}};}function respondWithFilteredResult(_0x2d168e,_0x6aeb6b){return function(_0x1b0436){if(_0x1b0436){var _0x483950=typeof _0x6aeb6b['offset']===_0x992c('0x2f')&&typeof _0x6aeb6b['limit']===_0x992c('0x2f');var _0x24d600=_0x1b0436[_0x992c('0x30')];var _0x54552b=_0x483950?0x0:_0x6aeb6b[_0x992c('0x31')];var _0x331d8d=_0x483950?_0x1b0436[_0x992c('0x30')]:_0x6aeb6b[_0x992c('0x31')]+_0x6aeb6b[_0x992c('0x32')];var _0x5cd7f0;if(_0x331d8d>=_0x24d600){_0x331d8d=_0x24d600;_0x5cd7f0=0xc8;}else{_0x5cd7f0=0xce;}_0x2d168e[_0x992c('0x2c')](_0x5cd7f0);return _0x2d168e[_0x992c('0x33')](_0x992c('0x34'),_0x54552b+'-'+_0x331d8d+'/'+_0x24d600)['json'](_0x1b0436);}return null;};}function patchUpdates(_0x5eef6c){return function(_0x52ae9a){try{jsonpatch[_0x992c('0x35')](_0x52ae9a,_0x5eef6c,!![]);}catch(_0x2fe365){return BPromise['reject'](_0x2fe365);}return _0x52ae9a[_0x992c('0x36')]();};}function saveUpdates(_0xc5fb8,_0x5ec5b5){return function(_0xce01b5){if(_0xce01b5){return _0xce01b5[_0x992c('0x37')](_0xc5fb8)[_0x992c('0x22')](function(_0x3807f1){return _0x3807f1;});}return null;};}function removeEntity(_0x1405d6,_0x2bd097){return function(_0x47b087){if(_0x47b087){return _0x47b087[_0x992c('0x38')]()[_0x992c('0x22')](function(){var _0x59d6a1=_0x47b087['get']({'plain':!![]});var _0x59e13c=_0x992c('0x39');return db[_0x992c('0x3a')][_0x992c('0x38')]({'where':{'type':_0x59e13c,'resourceId':_0x59d6a1['id']}})[_0x992c('0x22')](function(){return _0x47b087;});})[_0x992c('0x22')](function(){_0x1405d6[_0x992c('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d196d,_0x44dc86){return function(_0x4976db){if(!_0x4976db){_0x3d196d['sendStatus'](0x194);}return _0x4976db;};}function handleError(_0xa94b9,_0x1290b4){_0x1290b4=_0x1290b4||0x1f4;return function(_0x567d6a){logger[_0x992c('0x26')](_0x567d6a[_0x992c('0x3b')]);if(_0x567d6a[_0x992c('0x3c')]){delete _0x567d6a['name'];}_0xa94b9[_0x992c('0x2c')](_0x1290b4)[_0x992c('0x3d')](_0x567d6a);};}exports[_0x992c('0x3e')]=function(_0x450448,_0x3049d6){var _0x499a02={'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x48cd33={},_0x35d1ce={'count':0x0,'rows':[]};var _0x2e49a=_[_0x992c('0x3f')](db[_0x992c('0x40')][_0x992c('0x41')],function(_0x5a5d70){return{'name':_0x5a5d70[_0x992c('0x42')],'type':_0x5a5d70[_0x992c('0x43')][_0x992c('0x44')]};});_0x48cd33[_0x992c('0x45')]=_['map'](_0x2e49a,_0x992c('0x3c'));_0x48cd33['query']=_[_0x992c('0x46')](_0x450448['query']);_0x48cd33['filters']=_[_0x992c('0x47')](_0x48cd33[_0x992c('0x45')],_0x48cd33[_0x992c('0x48')]);_0x499a02[_0x992c('0x49')]=_[_0x992c('0x47')](_0x48cd33[_0x992c('0x45')],qs['fields'](_0x450448['query'][_0x992c('0x4a')]));_0x499a02['attributes']=_0x499a02['attributes'][_0x992c('0x4b')]?_0x499a02['attributes']:_0x48cd33['model'];if(!_0x450448[_0x992c('0x48')]['hasOwnProperty'](_0x992c('0x4c'))){_0x499a02[_0x992c('0x32')]=qs['limit'](_0x450448[_0x992c('0x48')]['limit']);_0x499a02[_0x992c('0x31')]=qs[_0x992c('0x31')](_0x450448['query']['offset']);}_0x499a02[_0x992c('0x4d')]=qs[_0x992c('0x4e')](_0x450448[_0x992c('0x48')][_0x992c('0x4e')]);_0x499a02[_0x992c('0x4f')]=qs['filters'](_[_0x992c('0x50')](_0x450448['query'],_0x48cd33[_0x992c('0x51')]),_0x2e49a);if(_0x450448[_0x992c('0x48')][_0x992c('0x52')]){_0x499a02[_0x992c('0x4f')]=_[_0x992c('0x53')](_0x499a02[_0x992c('0x4f')],{'$or':_[_0x992c('0x3f')](_0x2e49a,function(_0x849d9c){if(_0x849d9c[_0x992c('0x43')]!==_0x992c('0x54')){var _0x4c93e2={};_0x4c93e2[_0x849d9c['name']]={'$like':'%'+_0x450448['query']['filter']+'%'};return _0x4c93e2;}})});}_0x499a02=_[_0x992c('0x53')]({},_0x499a02,_0x450448['options']);var _0x1c1519={'where':_0x499a02[_0x992c('0x4f')]};return db[_0x992c('0x40')]['count'](_0x1c1519)[_0x992c('0x22')](function(_0x45ee5b){_0x35d1ce[_0x992c('0x30')]=_0x45ee5b;if(_0x450448[_0x992c('0x48')][_0x992c('0x55')]){_0x499a02[_0x992c('0x56')]=[{'all':!![]}];}return db[_0x992c('0x40')][_0x992c('0x57')](_0x499a02);})[_0x992c('0x22')](function(_0x4baca6){_0x35d1ce[_0x992c('0x58')]=_0x4baca6;return _0x35d1ce;})[_0x992c('0x22')](respondWithFilteredResult(_0x3049d6,_0x499a02))[_0x992c('0x2b')](handleError(_0x3049d6,null));};exports['show']=function(_0x108bb4,_0x3d290e){var _0x498744={'raw':![],'where':{'id':_0x108bb4['params']['id']},'include':[{'model':db[_0x992c('0x59')],'as':_0x992c('0x5a')}]},_0xed3e58={};_0xed3e58[_0x992c('0x45')]=_[_0x992c('0x46')](db[_0x992c('0x40')]['rawAttributes']);_0xed3e58[_0x992c('0x48')]=_[_0x992c('0x46')](_0x108bb4[_0x992c('0x48')]);_0xed3e58[_0x992c('0x51')]=_[_0x992c('0x47')](_0xed3e58['model'],_0xed3e58[_0x992c('0x48')]);_0x498744[_0x992c('0x49')]=_['intersection'](_0xed3e58[_0x992c('0x45')],qs[_0x992c('0x4a')](_0x108bb4[_0x992c('0x48')][_0x992c('0x4a')]));_0x498744[_0x992c('0x49')]=_0x498744[_0x992c('0x49')][_0x992c('0x4b')]?_0x498744[_0x992c('0x49')]:_0xed3e58[_0x992c('0x45')];if(_0x108bb4[_0x992c('0x48')][_0x992c('0x55')]){_0x498744[_0x992c('0x56')]=[{'all':!![]}];}_0x498744=_[_0x992c('0x53')]({},_0x498744,_0x108bb4[_0x992c('0x5b')]);return db[_0x992c('0x40')][_0x992c('0x5c')](_0x498744)['then'](handleEntityNotFound(_0x3d290e,null))[_0x992c('0x22')](respondWithResult(_0x3d290e,null))['catch'](handleError(_0x3d290e,null));};exports[_0x992c('0x5d')]=function(_0x48eb6d,_0x1d67fb){return db[_0x992c('0x40')][_0x992c('0x5d')](_0x48eb6d[_0x992c('0x5e')],{})[_0x992c('0x22')](function(_0x4d12cb){var _0x5f3101=_0x48eb6d[_0x992c('0x5f')][_0x992c('0x60')]({'plain':!![]});if(!_0x5f3101)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5f3101['role']===_0x992c('0x5f')){var _0x46f14c=_0x4d12cb[_0x992c('0x60')]({'plain':!![]});var _0x25a50c=_0x992c('0x39');return db[_0x992c('0x61')][_0x992c('0x5c')]({'where':{'name':_0x25a50c,'userProfileId':_0x5f3101[_0x992c('0x62')]},'raw':!![]})['then'](function(_0x2c7262){if(_0x2c7262&&_0x2c7262[_0x992c('0x63')]===0x0){return db[_0x992c('0x3a')][_0x992c('0x5d')]({'name':_0x46f14c[_0x992c('0x3c')],'resourceId':_0x46f14c['id'],'type':_0x2c7262[_0x992c('0x3c')],'sectionId':_0x2c7262['id']},{})[_0x992c('0x22')](function(){return _0x4d12cb;});}else{return _0x4d12cb;}})['catch'](function(_0x4baea6){logger['error'](_0x992c('0x64'),_0x4baea6);throw _0x4baea6;});}return _0x4d12cb;})[_0x992c('0x22')](respondWithResult(_0x1d67fb,0xc9))[_0x992c('0x2b')](handleError(_0x1d67fb,null));};exports[_0x992c('0x37')]=function(_0x53c6e3,_0xe69579){if(_0x53c6e3[_0x992c('0x5e')]['id']){delete _0x53c6e3[_0x992c('0x5e')]['id'];}return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x53c6e3[_0x992c('0x65')]['id']},'include':[{'model':db[_0x992c('0x59')],'as':'mandatoryDispositionPause'}]})['then'](handleEntityNotFound(_0xe69579,null))['then'](saveUpdates(_0x53c6e3[_0x992c('0x5e')],null))[_0x992c('0x22')](respondWithResult(_0xe69579,null))['catch'](handleError(_0xe69579,null));};exports['destroy']=function(_0x1a95b6,_0x507ce4){return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x1a95b6[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x507ce4,null))[_0x992c('0x22')](removeEntity(_0x507ce4,null))[_0x992c('0x2b')](handleError(_0x507ce4,null));};exports[_0x992c('0x66')]=function(_0x4cea5d,_0x4c01f6){return db[_0x992c('0x40')]['describe']()['then'](respondWithResult(_0x4c01f6,null))[_0x992c('0x2b')](handleError(_0x4c01f6,null));};exports[_0x992c('0x67')]=function(_0x53491a,_0x4c1e9b,_0x224fd7){if(_0x53491a[_0x992c('0x5e')]['id']){delete _0x53491a['body']['id'];}return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x53491a[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x4c1e9b,null))['then'](function(_0x883ed2){if(_0x883ed2){_0x53491a[_0x992c('0x5e')][_0x992c('0x68')]=_0x883ed2['id'];return db['Disposition']['create'](_0x53491a[_0x992c('0x5e')]);}})[_0x992c('0x22')](respondWithResult(_0x4c1e9b,null))['catch'](handleError(_0x4c1e9b,null));};exports[_0x992c('0x69')]=function(_0x339e1f,_0x46ba13,_0x209585){var _0x4ea464={'raw':![],'where':{}};var _0x36c129={};var _0x211273={'count':0x0,'rows':[]};return db[_0x992c('0x40')][_0x992c('0x6a')]({'where':{'id':_0x339e1f[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x46ba13,null))['then'](function(_0x126ee9){if(_0x126ee9){_0x36c129['model']=_[_0x992c('0x46')](db[_0x992c('0x6b')][_0x992c('0x41')]);_0x36c129[_0x992c('0x48')]=_[_0x992c('0x46')](_0x339e1f[_0x992c('0x48')]);_0x36c129[_0x992c('0x51')]=_[_0x992c('0x47')](_0x36c129['model'],_0x36c129[_0x992c('0x48')]);_0x4ea464[_0x992c('0x49')]=_['intersection'](_0x36c129[_0x992c('0x45')],qs[_0x992c('0x4a')](_0x339e1f[_0x992c('0x48')][_0x992c('0x4a')]));_0x4ea464[_0x992c('0x49')]=_0x4ea464[_0x992c('0x49')][_0x992c('0x4b')]?_0x4ea464[_0x992c('0x49')]:_0x36c129[_0x992c('0x45')];if(!_0x339e1f[_0x992c('0x48')][_0x992c('0x6c')](_0x992c('0x4c'))){_0x4ea464['limit']=qs['limit'](_0x339e1f[_0x992c('0x48')][_0x992c('0x32')]);_0x4ea464[_0x992c('0x31')]=qs[_0x992c('0x31')](_0x339e1f['query'][_0x992c('0x31')]);}_0x4ea464['order']=qs[_0x992c('0x4e')](_0x339e1f[_0x992c('0x48')]['sort']);_0x4ea464[_0x992c('0x4f')]=qs[_0x992c('0x51')](_[_0x992c('0x50')](_0x339e1f[_0x992c('0x48')],_0x36c129[_0x992c('0x51')]));_0x4ea464[_0x992c('0x4f')][_0x992c('0x68')]=_0x126ee9['id'];if(_0x339e1f[_0x992c('0x48')][_0x992c('0x52')]){_0x4ea464['where']=_[_0x992c('0x53')](_0x4ea464[_0x992c('0x4f')],{'$or':_[_0x992c('0x3f')](_0x4ea464['attributes'],function(_0x583439){var _0x56ed5c={};_0x56ed5c[_0x583439]={'$like':'%'+_0x339e1f[_0x992c('0x48')][_0x992c('0x52')]+'%'};return _0x56ed5c;})});}_0x4ea464=_[_0x992c('0x53')]({},_0x4ea464,_0x339e1f[_0x992c('0x5b')]);return db[_0x992c('0x6b')]['count']({'where':_0x4ea464[_0x992c('0x4f')]})[_0x992c('0x22')](function(_0xac042a){_0x211273[_0x992c('0x30')]=_0xac042a;if(_0x339e1f['query']['includeAll']){_0x4ea464[_0x992c('0x56')]=[{'all':!![]}];}return db[_0x992c('0x6b')]['findAll'](_0x4ea464);})[_0x992c('0x22')](function(_0x67037a){_0x211273[_0x992c('0x58')]=_0x67037a;return _0x211273;});}})[_0x992c('0x22')](respondWithFilteredResult(_0x46ba13,_0x4ea464))['catch'](handleError(_0x46ba13,null));};exports[_0x992c('0x6d')]=function(_0x2476dd,_0x552cbd,_0x17d330){return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x2476dd[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x552cbd,null))[_0x992c('0x22')](function(_0x752d0c){if(_0x752d0c){return _0x752d0c[_0x992c('0x6d')](_0x2476dd[_0x992c('0x48')]['ids']);}})['then'](respondWithStatusCode(_0x552cbd,null))[_0x992c('0x2b')](handleError(_0x552cbd,null));};exports[_0x992c('0x6e')]=function(_0x5ecb68,_0x174c57,_0xeb85b){if(_0x5ecb68[_0x992c('0x5e')]['id']){delete _0x5ecb68[_0x992c('0x5e')]['id'];}return db['SmsAccount'][_0x992c('0x5c')]({'where':{'id':_0x5ecb68[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x174c57,null))['then'](function(_0x5a903b){if(_0x5a903b){_0x5ecb68[_0x992c('0x5e')][_0x992c('0x68')]=_0x5a903b['id'];return db[_0x992c('0x6f')]['create'](_0x5ecb68[_0x992c('0x5e')]);}})[_0x992c('0x22')](respondWithResult(_0x174c57,null))[_0x992c('0x2b')](handleError(_0x174c57,null));};exports[_0x992c('0x70')]=function(_0x534247,_0x15bb1c,_0x423a33){var _0x3e0f52={'raw':![],'where':{}};var _0x419bcd={};var _0x57b268={'count':0x0,'rows':[]};return db[_0x992c('0x40')][_0x992c('0x6a')]({'where':{'id':_0x534247[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x15bb1c,null))['then'](function(_0xf2f84d){if(_0xf2f84d){_0x419bcd[_0x992c('0x45')]=_[_0x992c('0x46')](db[_0x992c('0x6f')][_0x992c('0x41')]);_0x419bcd[_0x992c('0x48')]=_[_0x992c('0x46')](_0x534247[_0x992c('0x48')]);_0x419bcd[_0x992c('0x51')]=_[_0x992c('0x47')](_0x419bcd[_0x992c('0x45')],_0x419bcd[_0x992c('0x48')]);_0x3e0f52[_0x992c('0x49')]=_['intersection'](_0x419bcd[_0x992c('0x45')],qs[_0x992c('0x4a')](_0x534247[_0x992c('0x48')][_0x992c('0x4a')]));_0x3e0f52[_0x992c('0x49')]=_0x3e0f52[_0x992c('0x49')][_0x992c('0x4b')]?_0x3e0f52[_0x992c('0x49')]:_0x419bcd[_0x992c('0x45')];if(!_0x534247[_0x992c('0x48')]['hasOwnProperty']('nolimit')){_0x3e0f52['limit']=qs[_0x992c('0x32')](_0x534247[_0x992c('0x48')][_0x992c('0x32')]);_0x3e0f52['offset']=qs[_0x992c('0x31')](_0x534247['query'][_0x992c('0x31')]);}_0x3e0f52[_0x992c('0x4d')]=qs['sort'](_0x534247[_0x992c('0x48')]['sort']);_0x3e0f52[_0x992c('0x4f')]=qs[_0x992c('0x51')](_[_0x992c('0x50')](_0x534247[_0x992c('0x48')],_0x419bcd['filters']));_0x3e0f52[_0x992c('0x4f')][_0x992c('0x68')]=_0xf2f84d['id'];if(_0x534247[_0x992c('0x48')][_0x992c('0x52')]){_0x3e0f52[_0x992c('0x4f')]=_[_0x992c('0x53')](_0x3e0f52[_0x992c('0x4f')],{'$or':_[_0x992c('0x3f')](_0x3e0f52[_0x992c('0x49')],function(_0x32419c){var _0x3d0253={};_0x3d0253[_0x32419c]={'$like':'%'+_0x534247[_0x992c('0x48')][_0x992c('0x52')]+'%'};return _0x3d0253;})});}_0x3e0f52=_[_0x992c('0x53')]({},_0x3e0f52,_0x534247[_0x992c('0x5b')]);return db[_0x992c('0x6f')][_0x992c('0x30')]({'where':_0x3e0f52[_0x992c('0x4f')]})[_0x992c('0x22')](function(_0x2625a4){_0x57b268['count']=_0x2625a4;if(_0x534247[_0x992c('0x48')][_0x992c('0x55')]){_0x3e0f52[_0x992c('0x56')]=[{'all':!![]}];}return db[_0x992c('0x6f')][_0x992c('0x57')](_0x3e0f52);})[_0x992c('0x22')](function(_0xb52d25){_0x57b268[_0x992c('0x58')]=_0xb52d25;return _0x57b268;});}})['then'](respondWithFilteredResult(_0x15bb1c,_0x3e0f52))[_0x992c('0x2b')](handleError(_0x15bb1c,null));};exports[_0x992c('0x71')]=function(_0x344efe,_0x2896d9,_0x2f2fab){return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x344efe['params']['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x2896d9,null))['then'](function(_0x11df7b){if(_0x11df7b){return _0x11df7b[_0x992c('0x71')](_0x344efe[_0x992c('0x48')][_0x992c('0x72')]);}})['then'](respondWithStatusCode(_0x2896d9,null))[_0x992c('0x2b')](handleError(_0x2896d9,null));};exports[_0x992c('0x73')]=function(_0x29dc2f,_0x138843,_0x21f96b){var _0x5f1b63={'channel':_0x992c('0x74')};var _0x10c928=[];var _0x375016=[];var _0x5544d8={};return db['SmsAccount'][_0x992c('0x5c')]({'where':{'id':_0x29dc2f[_0x992c('0x65')]['id']},'include':[{'model':db[_0x992c('0x75')],'as':_0x992c('0x76')}]})[_0x992c('0x22')](handleEntityNotFound(_0x138843,null))[_0x992c('0x22')](function(_0x12a5d0){_0x5f1b63[_0x992c('0x77')]=_0x12a5d0;_0x5f1b63[_0x992c('0x78')]=_[_0x992c('0x79')](_0x12a5d0[_0x992c('0x76')],['priority'],[_0x992c('0x7a')]);if(_0x5f1b63[_0x992c('0x77')][_0x992c('0x76')]){delete _0x5f1b63[_0x992c('0x77')]['Applications'];}return db['CmContact'][_0x992c('0x66')]();})[_0x992c('0x22')](function(_0xb93f83){if(!_0xb93f83){throw new db[(_0x992c('0x7b'))][(_0x992c('0x7c'))](_0x992c('0x7d'));}_0x10c928=_['difference'](_[_0x992c('0x46')](_0xb93f83),['createdAt','updatedAt']);_0x375016=_[_0x992c('0x7e')](_[_0x992c('0x46')](_0xb93f83),['createdAt',_0x992c('0x7f'),_0x992c('0x80'),_0x992c('0x81')]);_0x5f1b63[_0x992c('0x5e')]={'mapKey':_0x992c('0x82')};if(_0x5f1b63[_0x992c('0x77')][_0x992c('0x43')]){switch(_0x5f1b63['account']['type']){case'twilio':_0x5f1b63['body'][_0x992c('0x83')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x84')];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x5e')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x85')];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x86')]=_0x29dc2f['body']['MessageSid'];break;case'skebby':_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')]='+'+_0x29dc2f['body']['sender'];_0x5f1b63['body'][_0x992c('0x5e')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x87')];break;case _0x992c('0x88'):_0x5f1b63[_0x992c('0x5e')]['from']=_0x29dc2f['body'][_0x992c('0x83')];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x5e')]=_0x29dc2f[_0x992c('0x5e')]['message'];break;case'clicksend':_0x5f1b63[_0x992c('0x5e')]['from']=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x83')];_0x5f1b63[_0x992c('0x5e')]['body']=_0x29dc2f[_0x992c('0x5e')]['body'];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x86')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x89')];break;case _0x992c('0x8a'):_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x84')];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x5e')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x8b')];_0x5f1b63[_0x992c('0x5e')]['messageId']=_0x29dc2f['body'][_0x992c('0x8c')];break;case _0x992c('0x8d'):_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')]='+'+_0x29dc2f[_0x992c('0x5e')][_0x992c('0x8e')][0x0][_0x992c('0x83')];_0x5f1b63['body']['body']=_0x29dc2f[_0x992c('0x5e')]['results'][0x0][_0x992c('0x87')];_0x5f1b63['body'][_0x992c('0x86')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x8e')][0x0]['messageId'];break;case _0x992c('0x8f'):_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x90')];_0x5f1b63[_0x992c('0x5e')]['body']=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x91')][_0x992c('0x28')];break;case'clickatell':_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x92')];_0x5f1b63['body'][_0x992c('0x5e')]=_0x29dc2f['body'][_0x992c('0x87')];_0x5f1b63['body'][_0x992c('0x86')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x93')];break;case _0x992c('0x94'):_0x5f1b63['body']['messageId']=_0x29dc2f[_0x992c('0x5e')][0x0][_0x992c('0x28')]['id'];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')]=_0x29dc2f[_0x992c('0x5e')][0x0][_0x992c('0x28')][_0x992c('0x83')];_0x5f1b63[_0x992c('0x5e')]['body']=_0x29dc2f['body'][0x0][_0x992c('0x28')][_0x992c('0x87')];break;case _0x992c('0x95'):_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')]=_0x29dc2f[_0x992c('0x5e')][_0x992c('0x83')];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x5e')]=_0x29dc2f['body']['message'];_0x5f1b63[_0x992c('0x5e')][_0x992c('0x86')]=_0x29dc2f[_0x992c('0x5e')]['refid'];break;}}if(_0x5f1b63['body']['id']){delete _0x5f1b63[_0x992c('0x5e')]['id'];}if(_[_0x992c('0x96')](_0x5f1b63['body']['from'])){throw new db['Sequelize'][(_0x992c('0x7c'))]('from\x20is\x20mandatory');}if(_[_0x992c('0x96')](_0x5f1b63[_0x992c('0x5e')]['body'])||_0x5f1b63['body']['body']===''){throw new db['Sequelize'][(_0x992c('0x7c'))](_0x992c('0x97'));}if(_['isNil'](_0x5f1b63[_0x992c('0x5e')]['mapKey'])){throw new db[(_0x992c('0x7b'))][(_0x992c('0x7c'))](_0x992c('0x98')+_0x375016);}if(!_[_0x992c('0x99')](_0x375016,_0x5f1b63[_0x992c('0x5e')][_0x992c('0x9a')])){throw new db['Sequelize'][(_0x992c('0x7c'))](_0x992c('0x9b')+_0x375016);}_0x5544d8[_0x5f1b63[_0x992c('0x5e')][_0x992c('0x9a')]]=_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')];return db[_0x992c('0x9c')][_0x992c('0x5c')]({'where':{'id':_0x5f1b63['account']['ListId']},'include':[{'model':db['CmContact'],'as':_0x992c('0x9d'),'where':_0x5544d8,'limit':0x1,'order':[[_0x992c('0x7f'),_0x992c('0x9e')]]}]});})['then'](handleEntityNotFound(_0x138843,null))[_0x992c('0x22')](function(_0x43fbac){if(_0x43fbac){_0x5f1b63[_0x992c('0x9f')]=_[_0x992c('0xa0')](_0x43fbac,['Contacts']);if(_0x43fbac[_0x992c('0x9d')]['length']){return _0x43fbac['Contacts'][0x0];}var _0x1abc34=_[_0x992c('0x1c')](_0x5f1b63[_0x992c('0x5e')],{'firstName':_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')],'ListId':_0x43fbac['id']});_0x1abc34[_0x5f1b63['body'][_0x992c('0x9a')]]=_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')];return db[_0x992c('0xa1')][_0x992c('0x5d')](_0x1abc34,{'fields':_0x10c928,'raw':!![]});}})[_0x992c('0x22')](handleEntityNotFound(_0x138843,null))[_0x992c('0x22')](function(_0x34874d){if(_0x34874d){_0x5f1b63[_0x992c('0xa2')]=_0x34874d;var _0xbab8f5={'ContactId':_0x34874d['id'],'phone':_0x5f1b63['body']['from'],'SmsAccountId':_0x29dc2f[_0x992c('0x65')]['id']};var _0x2743c6={'ContactId':_0x34874d['id'],'SmsAccountId':_0x29dc2f[_0x992c('0x65')]['id'],'closed':![]};return db[_0x992c('0xa3')][_0x992c('0x5c')]({'where':_0x2743c6})[_0x992c('0x22')](function(_0x58a318){if(_0x58a318){return[_0x58a318,![]];}return db[_0x992c('0xa3')][_0x992c('0x5d')](_0xbab8f5)[_0x992c('0x22')](function(_0x2642f4){return[_0x2642f4,!![]];});});}})[_0x992c('0xa4')](function(_0xa00873,_0x3b1795){_0x5f1b63['interaction']=_0xa00873['get']({'plain':!![]});_0x5f1b63[_0x992c('0xa5')]['created']=![];if(_0x3b1795){if(_0x5f1b63[_0x992c('0x77')][_0x992c('0xa6')]){_0x5f1b63['applications'][_0x992c('0xa7')]({'id':0x0,'priority':_0x5f1b63[_0x992c('0x78')]['length']+0x1,'app':_0x992c('0xa8'),'appdata':'unmanaged','interval':_0x992c('0xa9')});}_0x5f1b63[_0x992c('0xa5')][_0x992c('0xaa')]=!![];}return db[_0x992c('0xab')][_0x992c('0x5d')]({'phone':_0x5f1b63[_0x992c('0x5e')][_0x992c('0x83')],'messageId':_0x5f1b63[_0x992c('0x5e')][_0x992c('0x86')],'body':_0x5f1b63[_0x992c('0x5e')][_0x992c('0x5e')],'SmsAccountId':_0x29dc2f[_0x992c('0x65')]['id'],'SmsInteractionId':_0xa00873['id'],'direction':'in','ContactId':_0xa00873[_0x992c('0xac')],'AttachmentId':_0x5f1b63[_0x992c('0x5e')][_0x992c('0xad')]});})['then'](function(_0x48d5cf){_0x5f1b63['message']=_0x48d5cf;if(_0x5f1b63['interaction']['UserId']){return db['User'][_0x992c('0x5c')]({'attributes':['id',_0x992c('0x3c')],'where':{'id':_0x5f1b63[_0x992c('0xa5')][_0x992c('0xae')]}})[_0x992c('0x22')](function(_0x237ec7){if(_0x237ec7){_0x5f1b63[_0x992c('0x78')]['unshift']({'id':0x0,'priority':0x0,'app':_0x992c('0xaf'),'appdata':_0x237ec7[_0x992c('0x3c')]+','+(_0x5f1b63['account']['waitForTheAssignedAgent']||0xa),'interval':_0x992c('0xa9')});}return respondWithRpcPromise(_0x992c('0xb0'),_0x992c('0xb1'),_0x5f1b63);});}return respondWithRpcPromise('Start',_0x992c('0xb1'),_0x5f1b63);})[_0x992c('0x22')](function(_0x2440fb){if(_0x2440fb){var _0xb7183e=0xc8;var _0x2c6372=_0x992c('0xb2');logger[_0x992c('0x29')](_0x992c('0xb3'),_0x2c6372,_0xb7183e,_0x992c('0xb4'));logger[_0x992c('0x24')](_0x992c('0xb5'),_0x2c6372,_0xb7183e,_0x992c('0xb4'),JSON['stringify'](_0x2440fb));if(_0x5f1b63[_0x992c('0x77')]['type']===_0x992c('0xb6')){return _0x138843[_0x992c('0x2c')](_0xb7183e)[_0x992c('0x33')](_0x992c('0xb7'),'text/xml')['send']('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x138843[_0x992c('0x2c')](_0xb7183e)['json'](_0x2440fb);}}})[_0x992c('0x2b')](handleError(_0x138843,null));};exports[_0x992c('0xb8')]=function(_0x783618,_0x2e76f8,_0x3fa5d0){return db[_0x992c('0x40')][_0x992c('0x6a')]({'where':{'id':_0x783618[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x2e76f8,null))[_0x992c('0x22')](function(_0x149664){if(_0x149664){return db[_0x992c('0xb9')][_0x992c('0xba')](function(_0x4a3893){return db[_0x992c('0x75')][_0x992c('0x38')]({'where':{'SmsAccountId':_0x783618[_0x992c('0x65')]['id']},'transaction':_0x4a3893})[_0x992c('0x22')](function(_0x136099){var _0x22b575=_[_0x992c('0x3f')](_0x783618['body'],function(_0x557d6a){_0x557d6a[_0x992c('0x68')]=_0x783618[_0x992c('0x65')]['id'];return _0x557d6a;});return db[_0x992c('0x75')][_0x992c('0xbb')](_0x22b575,{'transaction':_0x4a3893});});})['then'](function(){return db[_0x992c('0x75')]['findAndCountAll']({'where':{'SmsAccountId':_0x783618[_0x992c('0x65')]['id']},'order':_0x992c('0xbc')});});}})[_0x992c('0x22')](respondWithResult(_0x2e76f8,null))[_0x992c('0x2b')](handleError(_0x2e76f8,null));};exports[_0x992c('0xbd')]=function(_0x4d1059,_0x95c4a,_0x1598f6){var _0x4e8890={};var _0x3c050f={};var _0x37913c;var _0x39efbb;return db[_0x992c('0x40')][_0x992c('0x6a')]({'where':{'id':_0x4d1059['params']['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x95c4a,null))['then'](function(_0x55a30e){if(_0x55a30e){_0x37913c=_0x55a30e;_0x3c050f[_0x992c('0x45')]=_[_0x992c('0x46')](db[_0x992c('0x75')]['rawAttributes']);_0x3c050f[_0x992c('0x48')]=_[_0x992c('0x46')](_0x4d1059[_0x992c('0x48')]);_0x3c050f[_0x992c('0x51')]=_[_0x992c('0x47')](_0x3c050f[_0x992c('0x45')],_0x3c050f[_0x992c('0x48')]);_0x4e8890['attributes']=_[_0x992c('0x47')](_0x3c050f[_0x992c('0x45')],qs[_0x992c('0x4a')](_0x4d1059[_0x992c('0x48')][_0x992c('0x4a')]));_0x4e8890['attributes']=_0x4e8890['attributes']['length']?_0x4e8890[_0x992c('0x49')]:_0x3c050f[_0x992c('0x45')];_0x4e8890[_0x992c('0x4d')]=qs[_0x992c('0x4e')](_0x4d1059[_0x992c('0x48')]['sort']);_0x4e8890['where']=qs[_0x992c('0x51')](_['pick'](_0x4d1059['query'],_0x3c050f[_0x992c('0x51')]));if(_0x4d1059['query'][_0x992c('0x52')]){_0x4e8890[_0x992c('0x4f')]=_[_0x992c('0x53')](_0x4e8890[_0x992c('0x4f')],{'$or':_[_0x992c('0x3f')](_0x4e8890['attributes'],function(_0x160b08){var _0x5a6ef7={};_0x5a6ef7[_0x160b08]={'$like':'%'+_0x4d1059[_0x992c('0x48')]['filter']+'%'};return _0x5a6ef7;})});}_0x4e8890=_[_0x992c('0x53')]({},_0x4e8890,_0x4d1059['options']);return _0x37913c[_0x992c('0xbd')](_0x4e8890);}})[_0x992c('0x22')](function(_0x1c39e5){if(_0x1c39e5){_0x39efbb=_0x1c39e5[_0x992c('0x4b')];if(!_0x4d1059['query'][_0x992c('0x6c')]('nolimit')){_0x4e8890['limit']=qs[_0x992c('0x32')](_0x4d1059[_0x992c('0x48')]['limit']);_0x4e8890[_0x992c('0x31')]=qs[_0x992c('0x31')](_0x4d1059[_0x992c('0x48')][_0x992c('0x31')]);}return _0x37913c[_0x992c('0xbd')](_0x4e8890);}})[_0x992c('0x22')](function(_0xeddd2d){if(_0xeddd2d){return _0xeddd2d?{'count':_0x39efbb,'rows':_0xeddd2d}:null;}})[_0x992c('0x22')](respondWithResult(_0x95c4a,null))[_0x992c('0x2b')](handleError(_0x95c4a,null));};exports[_0x992c('0xbe')]=function(_0x594531,_0xc9d96c,_0x39783a){var _0x16517b={'raw':![],'where':{}};var _0x3cf722={};var _0x1561b9={'count':0x0,'rows':[]};return db['SmsAccount'][_0x992c('0x6a')]({'where':{'id':_0x594531['params']['id']}})[_0x992c('0x22')](handleEntityNotFound(_0xc9d96c,null))[_0x992c('0x22')](function(_0x54e3c2){if(_0x54e3c2){_0x3cf722[_0x992c('0x45')]=_['keys'](db['SmsInteraction'][_0x992c('0x41')]);_0x3cf722[_0x992c('0x48')]=_['keys'](_0x594531[_0x992c('0x48')]);_0x3cf722[_0x992c('0x51')]=_['intersection'](_0x3cf722[_0x992c('0x45')],_0x3cf722['query']);_0x16517b[_0x992c('0x49')]=_[_0x992c('0x47')](_0x3cf722[_0x992c('0x45')],qs[_0x992c('0x4a')](_0x594531[_0x992c('0x48')]['fields']));_0x16517b[_0x992c('0x49')]=_0x16517b[_0x992c('0x49')]['length']?_0x16517b[_0x992c('0x49')]:_0x3cf722[_0x992c('0x45')];if(!_0x594531['query'][_0x992c('0x6c')](_0x992c('0x4c'))){_0x16517b[_0x992c('0x32')]=qs[_0x992c('0x32')](_0x594531[_0x992c('0x48')][_0x992c('0x32')]);_0x16517b[_0x992c('0x31')]=qs[_0x992c('0x31')](_0x594531[_0x992c('0x48')][_0x992c('0x31')]);}_0x16517b[_0x992c('0x4d')]=qs[_0x992c('0x4e')](_0x594531[_0x992c('0x48')][_0x992c('0x4e')]);_0x16517b[_0x992c('0x4f')]=qs[_0x992c('0x51')](_[_0x992c('0x50')](_0x594531[_0x992c('0x48')],_0x3cf722[_0x992c('0x51')]));_0x16517b[_0x992c('0x4f')][_0x992c('0x68')]=_0x54e3c2['id'];if(_0x594531['query']['filter']){_0x16517b[_0x992c('0x4f')]=_[_0x992c('0x53')](_0x16517b['where'],{'$or':_[_0x992c('0x3f')](_0x16517b['attributes'],function(_0x1e7236){var _0x4f3eff={};_0x4f3eff[_0x1e7236]={'$like':'%'+_0x594531['query']['filter']+'%'};return _0x4f3eff;})});}_0x16517b=_['merge']({},_0x16517b,_0x594531[_0x992c('0x5b')]);return db[_0x992c('0xa3')][_0x992c('0x30')]({'where':_0x16517b['where']})[_0x992c('0x22')](function(_0x7ea419){_0x1561b9[_0x992c('0x30')]=_0x7ea419;if(_0x594531[_0x992c('0x48')][_0x992c('0x55')]){_0x16517b[_0x992c('0x56')]=[{'model':db[_0x992c('0xa1')],'as':'Contact','required':![]},{'model':db[_0x992c('0xbf')],'as':_0x992c('0xc0'),'attributes':[_0x992c('0x3c'),'fullname',_0x992c('0xc1')],'required':![]},{'model':db[_0x992c('0xc2')],'as':'Tags','attributes':['id','name',_0x992c('0xc3')],'where':_0x594531['query']['tag']?{'id':_0x594531['query'][_0x992c('0xc4')]}:undefined,'required':_0x594531[_0x992c('0x48')]['tag']?!![]:![]}];}return db['SmsInteraction'][_0x992c('0x57')](_0x16517b);})[_0x992c('0x22')](function(_0x4701df){_0x1561b9[_0x992c('0x58')]=_0x4701df;return _0x1561b9;});}})[_0x992c('0x22')](respondWithFilteredResult(_0xc9d96c,_0x16517b))['catch'](handleError(_0xc9d96c,null));};exports[_0x992c('0x3d')]=function(_0x458317,_0x357615,_0x3f6bb4){var _0x2bf9fe,_0x291771,_0x255902;if(_[_0x992c('0x96')](_0x458317[_0x992c('0x5e')]['body'])||_0x458317['body'][_0x992c('0x5e')]===''){throw new db[(_0x992c('0x7b'))][(_0x992c('0x7c'))](_0x992c('0x97'));}if(_[_0x992c('0x96')](_0x458317[_0x992c('0x5e')]['to'])){throw new db[(_0x992c('0x7b'))][(_0x992c('0x7c'))](_0x992c('0xc5'));}_0x2bf9fe=_0x458317['body']['to'];return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x458317[_0x992c('0x65')]['id']},'include':[{'model':db['CmList'],'as':_0x992c('0xc6'),'include':[{'model':db[_0x992c('0xa1')],'as':'Contacts','where':{'mobile':_0x2bf9fe},'limit':0x1,'order':[[_0x992c('0x7f'),_0x992c('0x9e')]]}]}]})[_0x992c('0x22')](handleEntityNotFound(_0x357615,null))[_0x992c('0x22')](function(_0x1d3751){if(_0x1d3751&&_0x1d3751[_0x992c('0xc6')]){_0x291771=_0x1d3751[_0x992c('0x60')]({'plain':!![]});if(_0x291771[_0x992c('0xc6')]&&_0x291771[_0x992c('0xc6')]['Contacts'][_0x992c('0x4b')]){return _0x291771[_0x992c('0xc6')][_0x992c('0x9d')][0x0];}return db[_0x992c('0xa1')]['create'](_['defaults'](_0x458317['body'],{'firstName':_0x2bf9fe,'mobile':_0x2bf9fe,'phone':_0x2bf9fe,'ListId':_0x291771['ListId']}));}})['then'](handleEntityNotFound(_0x357615,null))['then'](function(_0x3b27b4){if(_0x3b27b4){_0x255902=_0x3b27b4;return db['SmsInteraction'][_0x992c('0x5c')]({'where':{'ContactId':_0x255902['id'],'closed':![],'SmsAccountId':_0x291771['id']}})[_0x992c('0x22')](function(_0x178635){if(_0x178635){return[_0x178635,![]];}return db[_0x992c('0xa3')][_0x992c('0x5d')]({'UserId':_0x458317['user']['id'],'ContactId':_0x255902['id'],'SmsAccountId':_0x291771['id'],'phone':_0x2bf9fe,'firstMsgDirection':_0x992c('0xc7'),'Messages':[_[_0x992c('0x53')](_0x458317['body'],{'read':![],'body':_0x458317[_0x992c('0x5e')]['body'],'phone':_0x2bf9fe,'SmsAccountId':_0x291771['id'],'UserId':_0x458317[_0x992c('0x5f')]['id'],'ContactId':_0x255902['id']})]},{'include':[{'model':db[_0x992c('0xab')],'as':'Messages'}]})[_0x992c('0x22')](function(_0x4876c3){return[_0x4876c3,!![]];});});}})[_0x992c('0xa4')](function(_0x3052b3,_0x2badf5){if(_0x2badf5){return _0x3052b3;}return db[_0x992c('0xab')][_0x992c('0x5d')](_['merge'](_0x458317['body'],{'read':![],'body':_0x458317[_0x992c('0x5e')][_0x992c('0x5e')],'phone':_0x2bf9fe,'SmsAccountId':_0x291771['id'],'SmsInteractionId':_0x3052b3['id'],'UserId':_0x458317[_0x992c('0x5f')]['id'],'ContactId':_0x255902['id']}))['then'](function(_0x1ed421){_0x3052b3[_0x992c('0xc8')][_0x992c('0xc9')]=[];_0x3052b3['dataValues'][_0x992c('0xc9')][_0x992c('0xa7')](_0x1ed421[_0x992c('0xc8')]);return _0x3052b3;});})[_0x992c('0x22')](respondWithResult(_0x357615,null))[_0x992c('0x2b')](handleError(_0x357615,null));};exports[_0x992c('0x2c')]=function(_0x70bde0,_0x16d596,_0x43015d){if(_0x70bde0[_0x992c('0x5e')]['id']){delete _0x70bde0[_0x992c('0x5e')]['id'];}var _0x415568,_0x3e007e,_0x441caf;return db[_0x992c('0x40')]['find']({'where':{'id':_0x70bde0[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x16d596,null))[_0x992c('0x22')](function(_0x567fb3){if(_0x567fb3){_0x441caf=_0x567fb3;logger[_0x992c('0x24')](_0x992c('0xb3'),_0x992c('0x2c'),_0x992c('0xca'),_0x567fb3[_0x992c('0x43')],util[_0x992c('0xcb')](_0x70bde0[_0x992c('0x5e')],{'showHidden':![],'depth':null}));switch(_0x567fb3[_0x992c('0x43')]){case _0x992c('0xcc'):if(_0x70bde0[_0x992c('0x5e')][_0x992c('0xcd')]&&_0x70bde0[_0x992c('0x5e')][_0x992c('0x2c')]){_0x3e007e=_0x70bde0[_0x992c('0x5e')][_0x992c('0x2c')];return db[_0x992c('0xab')][_0x992c('0x5c')]({'where':{'messageId':_0x70bde0[_0x992c('0x5e')][_0x992c('0xcd')]}});}break;case'connectel':if(_0x70bde0[_0x992c('0x5e')][_0x992c('0xce')]&&_0x70bde0['body']['statusInt']){_0x3e007e=_0x70bde0[_0x992c('0x5e')][_0x992c('0xcf')];return db[_0x992c('0xab')]['find']({'where':{'messageId':_0x70bde0[_0x992c('0x5e')][_0x992c('0xce')]}});}break;case _0x992c('0xd0'):if(_0x70bde0[_0x992c('0x5e')][_0x992c('0x89')]&&_0x70bde0[_0x992c('0x5e')]['status_code']){_0x3e007e=_0x70bde0[_0x992c('0x5e')][_0x992c('0xd1')];return db[_0x992c('0xab')][_0x992c('0x5c')]({'where':{'messageId':_0x70bde0[_0x992c('0x5e')][_0x992c('0x89')]}});}break;case _0x992c('0x8d'):var _0x39a741=_0x70bde0[_0x992c('0x5e')][_0x992c('0x8e')][0x0];if(_0x39a741['messageId']&&_0x39a741[_0x992c('0x2c')][_0x992c('0xd2')]==='DELIVERED'){_0x3e007e=_0x39a741[_0x992c('0x2c')]['groupName'];return db[_0x992c('0xab')][_0x992c('0x5c')]({'where':{'messageId':_0x39a741[_0x992c('0x86')]}});}break;case'clickatell':if(_0x70bde0[_0x992c('0x5e')][_0x992c('0x86')]&&_0x70bde0[_0x992c('0x5e')][_0x992c('0x2c')]){_0x3e007e=_0x70bde0[_0x992c('0x5e')][_0x992c('0x2c')];return db[_0x992c('0xab')][_0x992c('0x5c')]({'where':{'messageId':_0x70bde0['body'][_0x992c('0x86')]}});}break;case _0x992c('0x94'):if(_0x70bde0[_0x992c('0x5e')][0x0]['message']['id']){_0x3e007e=_0x70bde0[_0x992c('0x5e')][0x0][_0x992c('0x43')];return db[_0x992c('0xab')][_0x992c('0x5c')]({'where':{'messageId':_0x70bde0[_0x992c('0x5e')][0x0][_0x992c('0x28')]['id']}});}break;case'intelepeer':if(_0x70bde0['body']['redif']&&_0x70bde0[_0x992c('0x5e')][_0x992c('0x2c')]){_0x3e007e=_0x70bde0[_0x992c('0x5e')][_0x992c('0x2c')];return db['SmsMessage'][_0x992c('0x5c')]({'where':{'messageId':_0x70bde0['body'][_0x992c('0xd3')]}});}break;}}})[_0x992c('0x22')](handleEntityNotFound(_0x16d596,null))['then'](function(_0x1bab9e){if(_0x1bab9e){_0x415568=_0x1bab9e;switch(_0x441caf[_0x992c('0x43')]){case _0x992c('0xcc'):if(_0x3e007e===_0x992c('0xd4')){return _0x415568[_0x992c('0x37')]({'read':!![]});}else{logger['error'](_0x992c('0xb3'),_0x992c('0x2c'),_0x992c('0xcc'),util['inspect'](_0x70bde0[_0x992c('0x5e')],{'showHidden':![],'depth':null}));}break;case'connectel':if(_0x3e007e==='1'){return _0x415568[_0x992c('0x37')]({'read':!![]});}else{logger[_0x992c('0x26')](_0x992c('0xb3'),'status','skebby',util[_0x992c('0xcb')](_0x70bde0[_0x992c('0x5e')],{'showHidden':![],'depth':null}));}break;case'clicksend':if(!_0x70bde0[_0x992c('0x5e')][_0x992c('0xd5')]&&_0x3e007e>=0xc8&&_0x3e007e<=0xce){return _0x415568[_0x992c('0x37')]({'read':!![]});}else{logger[_0x992c('0x26')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x992c('0x2c'),_0x992c('0xd0'),util[_0x992c('0xcb')](_0x70bde0[_0x992c('0x5e')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x58ec01=_0x70bde0[_0x992c('0x5e')][_0x992c('0x8e')][0x0];if(_0x58ec01[_0x992c('0x2c')][_0x992c('0xd2')]==='DELIVERED'){return _0x415568['update']({'read':!![]});}else{logger[_0x992c('0x26')](_0x992c('0xb3'),_0x992c('0x2c'),_0x992c('0x8d'),util[_0x992c('0xcb')](_0x70bde0['body'],{'showHidden':![],'depth':null}));}break;case _0x992c('0xd6'):if(_0x3e007e=='DELIVERED_TO_GATEWAY'||_0x3e007e==_0x992c('0xd7')){return _0x415568[_0x992c('0x37')]({'read':!![]});}else{logger['error'](_0x992c('0xb3'),'status','clickatell',util[_0x992c('0xcb')](_0x70bde0[_0x992c('0x5e')],{'showHidden':![],'depth':null}));}break;case _0x992c('0x94'):if(_0x3e007e==_0x992c('0xd8')){return _0x415568['update']({'read':!![]});}else{logger[_0x992c('0x26')](_0x992c('0xb3'),_0x992c('0x2c'),_0x992c('0x94'),util[_0x992c('0xcb')](_0x70bde0[_0x992c('0x5e')],{'showHidden':![],'depth':null}));}break;case _0x992c('0x95'):if(_0x3e007e==='DELIVRD'||_0x3e007e===_0x992c('0xd9')){return _0x415568[_0x992c('0x37')]({'read':!![]});}else{logger[_0x992c('0x26')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x992c('0x2c'),'intelepeer',util['inspect'](_0x70bde0[_0x992c('0x5e')],{'showHidden':![],'depth':null}));}break;}return _0x415568;}})[_0x992c('0x22')](respondWithResult(_0x16d596,null))[_0x992c('0x2b')](handleError(_0x16d596,null));};exports[_0x992c('0xda')]=function(_0x41e1ad,_0x540e89,_0x45edf7){var _0x3dbce7,_0x262daf,_0x381c4d;return db['SmsAccount']['find']({'where':{'id':_0x41e1ad[_0x992c('0x65')]['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x540e89,null))[_0x992c('0x22')](function(_0x24edee){if(_0x24edee){_0x381c4d=_0x24edee;logger['debug']('SmsAccount,\x20%s,\x20%s,\x20%s',_0x992c('0x2c'),'received\x20delivery\x20report\x20from',_0x24edee[_0x992c('0x43')],util[_0x992c('0xcb')](_0x41e1ad[_0x992c('0x48')],{'showHidden':![],'depth':null}));switch(_0x24edee['type']){case _0x992c('0x8f'):if(_0x41e1ad[_0x992c('0x48')]['message-id']&&_0x41e1ad['query'][_0x992c('0xdb')]){_0x262daf=_0x41e1ad[_0x992c('0x48')][_0x992c('0xdb')];return db[_0x992c('0xab')][_0x992c('0x5c')]({'where':{'messageId':_0x41e1ad[_0x992c('0x48')][_0x992c('0xdc')]}});}break;}}})[_0x992c('0x22')](handleEntityNotFound(_0x540e89,null))[_0x992c('0x22')](function(_0x5c5ec7){if(_0x5c5ec7){_0x3dbce7=_0x5c5ec7;switch(_0x381c4d[_0x992c('0x43')]){case _0x992c('0x8f'):if(_0x262daf==='2'||_0x262daf==='6'){return _0x3dbce7[_0x992c('0x37')]({'read':!![]});}else{logger[_0x992c('0x26')](_0x992c('0xb3'),_0x992c('0x2c'),_0x992c('0x8f'),util['inspect'](_0x41e1ad[_0x992c('0x48')],{'showHidden':![],'depth':null}));};break;}return _0x3dbce7;}})[_0x992c('0x22')](respondWithResult(_0x540e89,null))['catch'](handleError(_0x540e89,null));};exports[_0x992c('0xdd')]=function(_0x2077de,_0x68e14,_0xe54a21){return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x2077de[_0x992c('0x65')]['id']}})['then'](handleEntityNotFound(_0x68e14,null))[_0x992c('0x22')](function(_0xcfa3dc){if(_0xcfa3dc){return _0xcfa3dc[_0x992c('0xdd')](_0x2077de[_0x992c('0x5e')][_0x992c('0x72')],_['omit'](_0x2077de[_0x992c('0x5e')],[_0x992c('0x72'),'id'])||{})[_0x992c('0xa4')](function(_0x47a268){for(var _0x22371d=0x0;_0x22371d<_0x2077de[_0x992c('0x5e')][_0x992c('0x72')]['length'];_0x22371d+=0x1){socket[_0x992c('0xde')](_0x992c('0xdf'),{'UserId':Number(_0x2077de[_0x992c('0x5e')][_0x992c('0x72')][_0x22371d]),'SmsAccountId':Number(_0x2077de['params']['id'])});}return _0x47a268;});}})[_0x992c('0x22')](respondWithResult(_0x68e14,null))[_0x992c('0x2b')](handleError(_0x68e14,null));};exports[_0x992c('0xe0')]=function(_0x3bf173,_0x300a8f,_0x3b4da5){return db[_0x992c('0x40')][_0x992c('0x5c')]({'where':{'id':_0x3bf173['params']['id']}})['then'](handleEntityNotFound(_0x300a8f,null))[_0x992c('0x22')](function(_0x41ae49){if(_0x41ae49){return _0x41ae49['removeAgents'](_0x3bf173[_0x992c('0x48')][_0x992c('0x72')])[_0x992c('0x22')](function(){if(_[_0x992c('0xe1')](_0x3bf173[_0x992c('0x48')][_0x992c('0x72')])){for(var _0x348ea1=0x0;_0x348ea1<_0x3bf173[_0x992c('0x48')]['ids'][_0x992c('0x4b')];_0x348ea1+=0x1){socket[_0x992c('0xde')]('userSmsAccount:remove',{'UserId':Number(_0x3bf173[_0x992c('0x48')]['ids'][_0x348ea1]),'SmsAccountId':Number(_0x3bf173[_0x992c('0x65')]['id'])});}}else{socket[_0x992c('0xde')](_0x992c('0xe2'),{'UserId':Number(_0x3bf173[_0x992c('0x48')][_0x992c('0x72')]),'SmsAccountId':Number(_0x3bf173[_0x992c('0x65')]['id'])});}});}})[_0x992c('0x22')](respondWithStatusCode(_0x300a8f,null))[_0x992c('0x2b')](handleError(_0x300a8f,null));};exports[_0x992c('0xe3')]=function(_0xfdbc75,_0x29bab9,_0x349a1d){var _0x31c14d={};var _0x13f4ad={};var _0x29cb6c;var _0x4bbc82;return db[_0x992c('0x40')][_0x992c('0x6a')]({'where':{'id':_0xfdbc75['params']['id']}})[_0x992c('0x22')](handleEntityNotFound(_0x29bab9,null))['then'](function(_0x3d7388){if(_0x3d7388){_0x29cb6c=_0x3d7388;_0x13f4ad[_0x992c('0x45')]=_['keys'](db[_0x992c('0xbf')][_0x992c('0x41')]);_0x13f4ad[_0x992c('0x48')]=_[_0x992c('0x46')](_0xfdbc75[_0x992c('0x48')]);_0x13f4ad['filters']=_['intersection'](_0x13f4ad['model'],_0x13f4ad['query']);_0x31c14d['attributes']=_[_0x992c('0x47')](_0x13f4ad[_0x992c('0x45')],qs['fields'](_0xfdbc75[_0x992c('0x48')][_0x992c('0x4a')]));_0x31c14d[_0x992c('0x49')]=_0x31c14d['attributes']['length']?_0x31c14d['attributes']:_0x13f4ad[_0x992c('0x45')];_0x31c14d[_0x992c('0x4d')]=qs[_0x992c('0x4e')](_0xfdbc75['query'][_0x992c('0x4e')]);_0x31c14d[_0x992c('0x4f')]=qs[_0x992c('0x51')](_[_0x992c('0x50')](_0xfdbc75[_0x992c('0x48')],_0x13f4ad[_0x992c('0x51')]));if(_0xfdbc75['query']['filter']){_0x31c14d[_0x992c('0x4f')]=_[_0x992c('0x53')](_0x31c14d[_0x992c('0x4f')],{'$or':_[_0x992c('0x3f')](_0x31c14d[_0x992c('0x49')],function(_0x4ebba7){var _0x1bace7={};_0x1bace7[_0x4ebba7]={'$like':'%'+_0xfdbc75[_0x992c('0x48')][_0x992c('0x52')]+'%'};return _0x1bace7;})});}_0x31c14d=_[_0x992c('0x53')]({},_0x31c14d,_0xfdbc75['options']);return _0x29cb6c[_0x992c('0xe3')](_0x31c14d);}})[_0x992c('0x22')](function(_0x2ff67d){if(_0x2ff67d){_0x4bbc82=_0x2ff67d[_0x992c('0x4b')];if(!_0xfdbc75[_0x992c('0x48')][_0x992c('0x6c')]('nolimit')){_0x31c14d[_0x992c('0x32')]=qs[_0x992c('0x32')](_0xfdbc75[_0x992c('0x48')][_0x992c('0x32')]);_0x31c14d[_0x992c('0x31')]=qs[_0x992c('0x31')](_0xfdbc75[_0x992c('0x48')][_0x992c('0x31')]);}return _0x29cb6c[_0x992c('0xe3')](_0x31c14d);}})[_0x992c('0x22')](function(_0x44e815){if(_0x44e815){return _0x44e815?{'count':_0x4bbc82,'rows':_0x44e815}:null;}})[_0x992c('0x22')](respondWithResult(_0x29bab9,null))[_0x992c('0x2b')](handleError(_0x29bab9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb41=['../../mysqldb','SmsAccount','save','remove','emit','hasOwnProperty','exports','events'];(function(_0x67f95e,_0x3ca797){var _0x538f5a=function(_0xc919e9){while(--_0xc919e9){_0x67f95e['push'](_0x67f95e['shift']());}};_0x538f5a(++_0x3ca797);}(_0xbb41,0x157));var _0x1bb4=function(_0x2d8863,_0x114140){_0x2d8863=_0x2d8863-0x0;var _0x1e333d=_0xbb41[_0x2d8863];return _0x1e333d;};'use strict';var EventEmitter=require(_0x1bb4('0x0'));var SmsAccount=require(_0x1bb4('0x1'))['db'][_0x1bb4('0x2')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x1bb4('0x3'),'afterUpdate':'update','afterDestroy':_0x1bb4('0x4')};function emitEvent(_0x3096b5){return function(_0x1df670,_0x4db3b7,_0x2c3b96){SmsAccountEvents['emit'](_0x3096b5+':'+_0x1df670['id'],_0x1df670);SmsAccountEvents[_0x1bb4('0x5')](_0x3096b5,_0x1df670);_0x2c3b96(null);};}for(var e in events){if(events[_0x1bb4('0x6')](e)){var event=events[e];SmsAccount['hook'](e,emitEvent(event));}}module[_0x1bb4('0x7')]=SmsAccountEvents;
\ No newline at end of file
+var _0x1fe8=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','SmsAccount','remove'];(function(_0x1f2c93,_0x5bfe8a){var _0x46542c=function(_0x179725){while(--_0x179725){_0x1f2c93['push'](_0x1f2c93['shift']());}};_0x46542c(++_0x5bfe8a);}(_0x1fe8,0xdc));var _0x81fe=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x1fe8[_0x465a0c];return _0x1e202e;};'use strict';var EventEmitter=require(_0x81fe('0x0'));var SmsAccount=require(_0x81fe('0x1'))['db'][_0x81fe('0x2')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x81fe('0x3')};function emitEvent(_0x526479){return function(_0x5efa21,_0x2034ec,_0x3c335a){SmsAccountEvents['emit'](_0x526479+':'+_0x5efa21['id'],_0x5efa21);SmsAccountEvents[_0x81fe('0x4')](_0x526479,_0x5efa21);_0x3c335a(null);};}for(var e in events){if(events[_0x81fe('0x5')](e)){var event=events[e];SmsAccount[_0x81fe('0x6')](e,emitEvent(event));}}module[_0x81fe('0x7')]=SmsAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8441=['request-promise','rimraf','../../config/environment','./smsAccount.attributes','exports','define','SmsAccount','sms_accounts','lodash','../../config/logger','api','moment'];(function(_0x460997,_0x34ab71){var _0x238646=function(_0x47d283){while(--_0x47d283){_0x460997['push'](_0x460997['shift']());}};_0x238646(++_0x34ab71);}(_0x8441,0x1c4));var _0x1844=function(_0x5262e6,_0x429836){_0x5262e6=_0x5262e6-0x0;var _0x529acc=_0x8441[_0x5262e6];return _0x529acc;};'use strict';var _=require(_0x1844('0x0'));var util=require('util');var logger=require(_0x1844('0x1'))(_0x1844('0x2'));var moment=require(_0x1844('0x3'));var BPromise=require('bluebird');var rp=require(_0x1844('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1844('0x5'));var config=require(_0x1844('0x6'));var attributes=require(_0x1844('0x7'));module[_0x1844('0x8')]=function(_0x5b1300,_0x50cc98){return _0x5b1300[_0x1844('0x9')](_0x1844('0xa'),attributes,{'tableName':_0x1844('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd376=['../../config/environment','./smsAccount.attributes','exports','define','SmsAccount','sms_accounts','lodash','util','../../config/logger','api','bluebird','path','rimraf'];(function(_0x1035c1,_0x2d8583){var _0x308d67=function(_0x58ddb6){while(--_0x58ddb6){_0x1035c1['push'](_0x1035c1['shift']());}};_0x308d67(++_0x2d8583);}(_0xd376,0x158));var _0x6d37=function(_0x5222d9,_0x12496d){_0x5222d9=_0x5222d9-0x0;var _0x16b0d5=_0xd376[_0x5222d9];return _0x16b0d5;};'use strict';var _=require(_0x6d37('0x0'));var util=require(_0x6d37('0x1'));var logger=require(_0x6d37('0x2'))(_0x6d37('0x3'));var moment=require('moment');var BPromise=require(_0x6d37('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6d37('0x5'));var rimraf=require(_0x6d37('0x6'));var config=require(_0x6d37('0x7'));var attributes=require(_0x6d37('0x8'));module[_0x6d37('0x9')]=function(_0xcf672a,_0x54f16d){return _0xcf672a[_0x6d37('0xa')](_0x6d37('0xb'),attributes,{'tableName':_0x6d37('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ba7=['../../mysqldb','../../config/logger','../../config/environment','client','http','defaults','socket.io-emitter','redis','register','request','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowSmsAccount','find','options','raw','attributes','include','map','model','then','util','moment','bluebird','randomstring'];(function(_0x1cfa0d,_0x4391f2){var _0xe33279=function(_0x3ce7c1){while(--_0x3ce7c1){_0x1cfa0d['push'](_0x1cfa0d['shift']());}};_0xe33279(++_0x4391f2);}(_0x0ba7,0x10c));var _0x70ba=function(_0x523798,_0x194c39){_0x523798=_0x523798-0x0;var _0x54b958=_0x0ba7[_0x523798];return _0x54b958;};'use strict';var _=require('lodash');var util=require(_0x70ba('0x0'));var moment=require(_0x70ba('0x1'));var BPromise=require(_0x70ba('0x2'));var rs=require(_0x70ba('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x70ba('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x70ba('0x5'))('rpc');var config=require(_0x70ba('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x70ba('0x7')][_0x70ba('0x8')]({'port':0x232a});config['redis']=_[_0x70ba('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x70ba('0xa'))(new Redis(config[_0x70ba('0xb')]));require('./smsAccount.socket')[_0x70ba('0xc')](socket);function respondWithRpcPromise(_0x103a9e,_0x4d82c4,_0x253fe7){return new BPromise(function(_0x577727,_0x2c73e6){return client[_0x70ba('0xd')](_0x103a9e,_0x253fe7)['then'](function(_0x1b8309){logger[_0x70ba('0xe')](_0x70ba('0xf'),_0x4d82c4,_0x70ba('0x10'));logger[_0x70ba('0x11')](_0x70ba('0x12'),_0x4d82c4,_0x70ba('0x10'),JSON[_0x70ba('0x13')](_0x1b8309));if(_0x1b8309[_0x70ba('0x14')]){if(_0x1b8309[_0x70ba('0x14')][_0x70ba('0x15')]===0x1f4){logger[_0x70ba('0x14')](_0x70ba('0xf'),_0x4d82c4,_0x1b8309['error'][_0x70ba('0x16')]);return _0x2c73e6(_0x1b8309[_0x70ba('0x14')][_0x70ba('0x16')]);}logger[_0x70ba('0x14')](_0x70ba('0xf'),_0x4d82c4,_0x1b8309[_0x70ba('0x14')][_0x70ba('0x16')]);return _0x577727(_0x1b8309[_0x70ba('0x14')][_0x70ba('0x16')]);}else{logger['info'](_0x70ba('0xf'),_0x4d82c4,_0x70ba('0x10'));_0x577727(_0x1b8309[_0x70ba('0x17')][_0x70ba('0x16')]);}})[_0x70ba('0x18')](function(_0xca4353){logger[_0x70ba('0x14')](_0x70ba('0xf'),_0x4d82c4,_0xca4353);_0x2c73e6(_0xca4353);});});}exports[_0x70ba('0x19')]=function(_0x5c518c){var _0x518602=this;return new Promise(function(_0x53b7be,_0x217f82){return db['SmsAccount'][_0x70ba('0x1a')]({'raw':_0x5c518c['options']?_0x5c518c[_0x70ba('0x1b')][_0x70ba('0x1c')]===undefined?!![]:![]:!![],'where':_0x5c518c[_0x70ba('0x1b')]?_0x5c518c[_0x70ba('0x1b')]['where']||null:null,'attributes':_0x5c518c[_0x70ba('0x1b')]?_0x5c518c['options'][_0x70ba('0x1d')]||null:null,'include':_0x5c518c['options']?_0x5c518c['options'][_0x70ba('0x1e')]?_[_0x70ba('0x1f')](_0x5c518c[_0x70ba('0x1b')][_0x70ba('0x1e')],function(_0x1598a7){return{'model':db[_0x1598a7[_0x70ba('0x20')]],'as':_0x1598a7['as'],'attributes':_0x1598a7[_0x70ba('0x1d')],'include':_0x1598a7['include']?_[_0x70ba('0x1f')](_0x1598a7['include'],function(_0x1c0d08){return{'model':db[_0x1c0d08[_0x70ba('0x20')]],'as':_0x1c0d08['as'],'attributes':_0x1c0d08[_0x70ba('0x1d')],'include':_0x1c0d08[_0x70ba('0x1e')]?_[_0x70ba('0x1f')](_0x1c0d08[_0x70ba('0x1e')],function(_0x5c766d){return{'model':db[_0x5c766d[_0x70ba('0x20')]],'as':_0x5c766d['as'],'attributes':_0x5c766d[_0x70ba('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x70ba('0x21')](function(_0x556490){logger[_0x70ba('0xe')]('ShowSmsAccount',_0x5c518c);logger[_0x70ba('0x11')](_0x70ba('0x19'),_0x5c518c,JSON[_0x70ba('0x13')](_0x556490));_0x53b7be(_0x556490);})[_0x70ba('0x18')](function(_0x3b4159){logger[_0x70ba('0x14')]('ShowSmsAccount',_0x3b4159['message'],_0x5c518c);_0x217f82(_0x518602[_0x70ba('0x14')](0x1f4,_0x3b4159['message']));});});};
\ No newline at end of file
+var _0x72bd=['randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./smsAccount.socket','request','then','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','ShowSmsAccount','SmsAccount','find','options','where','attributes','include','model','map','lodash','bluebird'];(function(_0x1e11ce,_0x3072ea){var _0x97ee32=function(_0x956072){while(--_0x956072){_0x1e11ce['push'](_0x1e11ce['shift']());}};_0x97ee32(++_0x3072ea);}(_0x72bd,0xd6));var _0xd72b=function(_0x3054be,_0x1bdc8b){_0x3054be=_0x3054be-0x0;var _0x3df150=_0x72bd[_0x3054be];return _0x3df150;};'use strict';var _=require(_0xd72b('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xd72b('0x1'));var rs=require(_0xd72b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd72b('0x3'))['db'];var utils=require(_0xd72b('0x4'));var logger=require('../../config/logger')(_0xd72b('0x5'));var config=require(_0xd72b('0x6'));var jayson=require(_0xd72b('0x7'));var client=jayson[_0xd72b('0x8')][_0xd72b('0x9')]({'port':0x232a});config[_0xd72b('0xa')]=_['defaults'](config[_0xd72b('0xa')],{'host':_0xd72b('0xb'),'port':0x18eb});var socket=require(_0xd72b('0xc'))(new Redis(config[_0xd72b('0xa')]));require(_0xd72b('0xd'))['register'](socket);function respondWithRpcPromise(_0x556345,_0x12b97b,_0x522cab){return new BPromise(function(_0x150e0a,_0x591a4d){return client[_0xd72b('0xe')](_0x556345,_0x522cab)[_0xd72b('0xf')](function(_0x4b4e92){logger['info'](_0xd72b('0x10'),_0x12b97b,_0xd72b('0x11'));logger[_0xd72b('0x12')](_0xd72b('0x13'),_0x12b97b,_0xd72b('0x11'),JSON[_0xd72b('0x14')](_0x4b4e92));if(_0x4b4e92['error']){if(_0x4b4e92[_0xd72b('0x15')][_0xd72b('0x16')]===0x1f4){logger[_0xd72b('0x15')](_0xd72b('0x10'),_0x12b97b,_0x4b4e92['error']['message']);return _0x591a4d(_0x4b4e92['error'][_0xd72b('0x17')]);}logger['error'](_0xd72b('0x10'),_0x12b97b,_0x4b4e92[_0xd72b('0x15')]['message']);return _0x150e0a(_0x4b4e92[_0xd72b('0x15')]['message']);}else{logger[_0xd72b('0x18')](_0xd72b('0x10'),_0x12b97b,_0xd72b('0x11'));_0x150e0a(_0x4b4e92[_0xd72b('0x19')][_0xd72b('0x17')]);}})[_0xd72b('0x1a')](function(_0x3c14f4){logger[_0xd72b('0x15')]('SmsAccount,\x20%s,\x20%s',_0x12b97b,_0x3c14f4);_0x591a4d(_0x3c14f4);});});}exports[_0xd72b('0x1b')]=function(_0x67c24c){var _0x16fe28=this;return new Promise(function(_0xfe165d,_0x20cb49){return db[_0xd72b('0x1c')][_0xd72b('0x1d')]({'raw':_0x67c24c[_0xd72b('0x1e')]?_0x67c24c[_0xd72b('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x67c24c['options']?_0x67c24c[_0xd72b('0x1e')][_0xd72b('0x1f')]||null:null,'attributes':_0x67c24c[_0xd72b('0x1e')]?_0x67c24c[_0xd72b('0x1e')][_0xd72b('0x20')]||null:null,'include':_0x67c24c[_0xd72b('0x1e')]?_0x67c24c[_0xd72b('0x1e')][_0xd72b('0x21')]?_['map'](_0x67c24c[_0xd72b('0x1e')][_0xd72b('0x21')],function(_0x3855b5){return{'model':db[_0x3855b5[_0xd72b('0x22')]],'as':_0x3855b5['as'],'attributes':_0x3855b5[_0xd72b('0x20')],'include':_0x3855b5[_0xd72b('0x21')]?_[_0xd72b('0x23')](_0x3855b5['include'],function(_0x233be2){return{'model':db[_0x233be2[_0xd72b('0x22')]],'as':_0x233be2['as'],'attributes':_0x233be2[_0xd72b('0x20')],'include':_0x233be2[_0xd72b('0x21')]?_[_0xd72b('0x23')](_0x233be2[_0xd72b('0x21')],function(_0x14cc71){return{'model':db[_0x14cc71[_0xd72b('0x22')]],'as':_0x14cc71['as'],'attributes':_0x14cc71[_0xd72b('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x51b2bf){logger[_0xd72b('0x18')](_0xd72b('0x1b'),_0x67c24c);logger[_0xd72b('0x12')](_0xd72b('0x1b'),_0x67c24c,JSON[_0xd72b('0x14')](_0x51b2bf));_0xfe165d(_0x51b2bf);})[_0xd72b('0x1a')](function(_0x1ccfdc){logger[_0xd72b('0x15')](_0xd72b('0x1b'),_0x1ccfdc[_0xd72b('0x17')],_0x67c24c);_0x20cb49(_0x16fe28[_0xd72b('0x15')](0x1f4,_0x1ccfdc[_0xd72b('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','smsAccount:','./smsAccount.events','save','remove','emit','removeListener'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0xa9e0[_0xbb091];return _0x467a04;};'use strict';var SmsAccountEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){SmsAccountEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','smsAccount:','./smsAccount.events','save','remove','emit','removeListener'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x387777,_0x356171){_0x387777=_0x387777-0x0;var _0x3f84c0=_0xa9e0[_0x387777];return _0x3f84c0;};'use strict';var SmsAccountEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){SmsAccountEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['Router','fs-extra','../../config/environment','./smsApplication.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','multer','path','connect-timeout','express'];(function(_0x14f849,_0x4d13e5){var _0xcef4c4=function(_0x5e4fbc){while(--_0x5e4fbc){_0x14f849['push'](_0x14f849['shift']());}};_0xcef4c4(++_0x4d13e5);}(_0x7217,0x19e));var _0x7721=function(_0x139a3c,_0x4fc883){_0x139a3c=_0x139a3c-0x0;var _0x2b375b=_0x7217[_0x139a3c];return _0x2b375b;};'use strict';var multer=require(_0x7721('0x0'));var util=require('util');var path=require(_0x7721('0x1'));var timeout=require(_0x7721('0x2'));var express=require(_0x7721('0x3'));var router=express[_0x7721('0x4')]();var fs_extra=require(_0x7721('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x7721('0x6'));var controller=require(_0x7721('0x7'));router[_0x7721('0x8')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xa')]);router[_0x7721('0x8')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0xc')]);router[_0x7721('0xd')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0xf')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller['update']);router[_0x7721('0x10')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0x11')]);module[_0x7721('0x12')]=router;
\ No newline at end of file
+var _0xedd9=['post','create','update','delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./smsApplication.controller','get','isAuthenticated','index','/:id','show'];(function(_0x288dd6,_0x9b1304){var _0x25e2d1=function(_0x1b47fe){while(--_0x1b47fe){_0x288dd6['push'](_0x288dd6['shift']());}};_0x25e2d1(++_0x9b1304);}(_0xedd9,0xfc));var _0x9edd=function(_0x53aadd,_0x47a51a){_0x53aadd=_0x53aadd-0x0;var _0x5227d5=_0xedd9[_0x53aadd];return _0x5227d5;};'use strict';var multer=require('multer');var util=require(_0x9edd('0x0'));var path=require(_0x9edd('0x1'));var timeout=require(_0x9edd('0x2'));var express=require(_0x9edd('0x3'));var router=express[_0x9edd('0x4')]();var fs_extra=require(_0x9edd('0x5'));var auth=require(_0x9edd('0x6'));var interaction=require(_0x9edd('0x7'));var config=require('../../config/environment');var controller=require(_0x9edd('0x8'));router[_0x9edd('0x9')]('/',auth[_0x9edd('0xa')](),controller[_0x9edd('0xb')]);router['get'](_0x9edd('0xc'),auth['isAuthenticated'](),controller[_0x9edd('0xd')]);router[_0x9edd('0xe')]('/',auth[_0x9edd('0xa')](),controller[_0x9edd('0xf')]);router['put'](_0x9edd('0xc'),auth['isAuthenticated'](),controller[_0x9edd('0x10')]);router[_0x9edd('0x11')]('/:id',auth[_0x9edd('0xa')](),controller[_0x9edd('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed30=['TEXT','STRING','sequelize','exports','INTEGER','noop'];(function(_0x5190f1,_0xa09e2b){var _0x346e96=function(_0x3c8b8d){while(--_0x3c8b8d){_0x5190f1['push'](_0x5190f1['shift']());}};_0x346e96(++_0xa09e2b);}(_0xed30,0x1e8));var _0x0ed3=function(_0x3632c9,_0xce728d){_0x3632c9=_0x3632c9-0x0;var _0x2d7e2c=_0xed30[_0x3632c9];return _0x2d7e2c;};'use strict';var Sequelize=require(_0x0ed3('0x0'));module[_0x0ed3('0x1')]={'priority':{'type':Sequelize[_0x0ed3('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x0ed3('0x3')},'appdata':{'type':Sequelize[_0x0ed3('0x4')]()},'description':{'type':Sequelize[_0x0ed3('0x5')]},'interval':{'type':Sequelize[_0x0ed3('0x5')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0xd1ba=['noop','TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING'];(function(_0x1c143c,_0x289468){var _0x3600d2=function(_0x1ba853){while(--_0x1ba853){_0x1c143c['push'](_0x1c143c['shift']());}};_0x3600d2(++_0x289468);}(_0xd1ba,0xd5));var _0xad1b=function(_0xd3ccc8,_0x1c4bd3){_0xd3ccc8=_0xd3ccc8-0x0;var _0xcba0c1=_0xd1ba[_0xd3ccc8];return _0xcba0c1;};'use strict';var Sequelize=require(_0xad1b('0x0'));module[_0xad1b('0x1')]={'priority':{'type':Sequelize[_0xad1b('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xad1b('0x3')],'allowNull':![],'defaultValue':_0xad1b('0x4')},'appdata':{'type':Sequelize[_0xad1b('0x5')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xad1b('0x3')],'defaultValue':_0xad1b('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78f9=['Content-Range','reject','save','update','then','destroy','stack','name','send','index','map','SmsApplication','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','rows','show','params','length','find','catch','create','body','eml-format','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x78f9,0x108));var _0x978f=function(_0x31cb5f,_0x2df766){_0x31cb5f=_0x31cb5f-0x0;var _0x586042=_0x78f9[_0x31cb5f];return _0x586042;};'use strict';var emlformat=require(_0x978f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x978f('0x1'));var rp=require(_0x978f('0x2'));var moment=require(_0x978f('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x978f('0x4'));var util=require(_0x978f('0x5'));var path=require('path');var sox=require(_0x978f('0x6'));var csv=require(_0x978f('0x7'));var ejs=require(_0x978f('0x8'));var fs=require('fs');var fs_extra=require(_0x978f('0x9'));var _=require(_0x978f('0xa'));var squel=require(_0x978f('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x978f('0xc'));var toCsv=require(_0x978f('0x7'));var querystring=require(_0x978f('0xd'));var Papa=require(_0x978f('0xe'));var Redis=require(_0x978f('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x978f('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x978f('0x11'));var logger=require(_0x978f('0x12'))(_0x978f('0x13'));var utils=require('../../config/utils');var config=require(_0x978f('0x14'));var licenseUtil=require(_0x978f('0x15'));var db=require(_0x978f('0x16'))['db'];function respondWithStatusCode(_0x5e8dd5,_0x3a0997){_0x3a0997=_0x3a0997||0xcc;return function(_0x4826df){if(_0x4826df){return _0x5e8dd5[_0x978f('0x17')](_0x3a0997);}return _0x5e8dd5[_0x978f('0x18')](_0x3a0997)[_0x978f('0x19')]();};}function respondWithResult(_0x15a827,_0x197ff5){_0x197ff5=_0x197ff5||0xc8;return function(_0x3de7ef){if(_0x3de7ef){return _0x15a827['status'](_0x197ff5)[_0x978f('0x1a')](_0x3de7ef);}};}function respondWithFilteredResult(_0x2d923a,_0x591a46){return function(_0x46de3b){if(_0x46de3b){var _0x5a6186=typeof _0x591a46[_0x978f('0x1b')]===_0x978f('0x1c')&&typeof _0x591a46[_0x978f('0x1d')]===_0x978f('0x1c');var _0x58e5c2=_0x46de3b[_0x978f('0x1e')];var _0x460cc1=_0x5a6186?0x0:_0x591a46[_0x978f('0x1b')];var _0x5b6070=_0x5a6186?_0x46de3b[_0x978f('0x1e')]:_0x591a46[_0x978f('0x1b')]+_0x591a46[_0x978f('0x1d')];var _0x14e3d2;if(_0x5b6070>=_0x58e5c2){_0x5b6070=_0x58e5c2;_0x14e3d2=0xc8;}else{_0x14e3d2=0xce;}_0x2d923a[_0x978f('0x18')](_0x14e3d2);return _0x2d923a[_0x978f('0x1f')](_0x978f('0x20'),_0x460cc1+'-'+_0x5b6070+'/'+_0x58e5c2)[_0x978f('0x1a')](_0x46de3b);}return null;};}function patchUpdates(_0x2e4388){return function(_0x478e26){try{jsonpatch['apply'](_0x478e26,_0x2e4388,!![]);}catch(_0x5a550b){return BPromise[_0x978f('0x21')](_0x5a550b);}return _0x478e26[_0x978f('0x22')]();};}function saveUpdates(_0x3382ec,_0x4a06e1){return function(_0x3ff40b){if(_0x3ff40b){return _0x3ff40b[_0x978f('0x23')](_0x3382ec)[_0x978f('0x24')](function(_0x396930){return _0x396930;});}return null;};}function removeEntity(_0x528552,_0x3b8a44){return function(_0x4c23da){if(_0x4c23da){return _0x4c23da[_0x978f('0x25')]()['then'](function(){_0x528552[_0x978f('0x18')](0xcc)[_0x978f('0x19')]();});}};}function handleEntityNotFound(_0x10e54d,_0x374cea){return function(_0x17706a){if(!_0x17706a){_0x10e54d[_0x978f('0x17')](0x194);}return _0x17706a;};}function handleError(_0x2317de,_0x930953){_0x930953=_0x930953||0x1f4;return function(_0x307724){logger['error'](_0x307724[_0x978f('0x26')]);if(_0x307724[_0x978f('0x27')]){delete _0x307724[_0x978f('0x27')];}_0x2317de[_0x978f('0x18')](_0x930953)[_0x978f('0x28')](_0x307724);};}exports[_0x978f('0x29')]=function(_0x129b2a,_0x43dadb){var _0x582db0={},_0x55c401={},_0x595956={'count':0x0,'rows':[]};var _0x2f39ab=_[_0x978f('0x2a')](db[_0x978f('0x2b')][_0x978f('0x2c')],function(_0x123b70){return{'name':_0x123b70[_0x978f('0x2d')],'type':_0x123b70[_0x978f('0x2e')][_0x978f('0x2f')]};});_0x55c401['model']=_[_0x978f('0x2a')](_0x2f39ab,'name');_0x55c401['query']=_[_0x978f('0x30')](_0x129b2a[_0x978f('0x31')]);_0x55c401[_0x978f('0x32')]=_[_0x978f('0x33')](_0x55c401[_0x978f('0x34')],_0x55c401[_0x978f('0x31')]);_0x582db0[_0x978f('0x35')]=_[_0x978f('0x33')](_0x55c401[_0x978f('0x34')],qs['fields'](_0x129b2a[_0x978f('0x31')][_0x978f('0x36')]));_0x582db0[_0x978f('0x35')]=_0x582db0[_0x978f('0x35')]['length']?_0x582db0[_0x978f('0x35')]:_0x55c401[_0x978f('0x34')];if(!_0x129b2a[_0x978f('0x31')][_0x978f('0x37')](_0x978f('0x38'))){_0x582db0['limit']=qs[_0x978f('0x1d')](_0x129b2a[_0x978f('0x31')][_0x978f('0x1d')]);_0x582db0[_0x978f('0x1b')]=qs['offset'](_0x129b2a[_0x978f('0x31')][_0x978f('0x1b')]);}_0x582db0[_0x978f('0x39')]=qs[_0x978f('0x3a')](_0x129b2a[_0x978f('0x31')][_0x978f('0x3a')]);_0x582db0[_0x978f('0x3b')]=qs[_0x978f('0x32')](_['pick'](_0x129b2a[_0x978f('0x31')],_0x55c401[_0x978f('0x32')]),_0x2f39ab);if(_0x129b2a['query']['filter']){_0x582db0['where']=_[_0x978f('0x3c')](_0x582db0[_0x978f('0x3b')],{'$or':_[_0x978f('0x2a')](_0x2f39ab,function(_0x4a91be){if(_0x4a91be['type']!==_0x978f('0x3d')){var _0x5cd782={};_0x5cd782[_0x4a91be[_0x978f('0x27')]]={'$like':'%'+_0x129b2a[_0x978f('0x31')][_0x978f('0x3e')]+'%'};return _0x5cd782;}})});}_0x582db0=_['merge']({},_0x582db0,_0x129b2a[_0x978f('0x3f')]);var _0x234ba7={'where':_0x582db0['where']};return db['SmsApplication'][_0x978f('0x1e')](_0x234ba7)['then'](function(_0x43868f){_0x595956[_0x978f('0x1e')]=_0x43868f;if(_0x129b2a[_0x978f('0x31')][_0x978f('0x40')]){_0x582db0[_0x978f('0x41')]=[{'all':!![]}];}return db[_0x978f('0x2b')]['findAll'](_0x582db0);})['then'](function(_0x5c91d6){_0x595956[_0x978f('0x42')]=_0x5c91d6;return _0x595956;})[_0x978f('0x24')](respondWithFilteredResult(_0x43dadb,_0x582db0))['catch'](handleError(_0x43dadb,null));};exports[_0x978f('0x43')]=function(_0x6152c3,_0x58f8ec){var _0x284272={'raw':!![],'where':{'id':_0x6152c3[_0x978f('0x44')]['id']}},_0x386fe4={};_0x386fe4['model']=_['keys'](db[_0x978f('0x2b')]['rawAttributes']);_0x386fe4[_0x978f('0x31')]=_[_0x978f('0x30')](_0x6152c3[_0x978f('0x31')]);_0x386fe4[_0x978f('0x32')]=_['intersection'](_0x386fe4[_0x978f('0x34')],_0x386fe4[_0x978f('0x31')]);_0x284272[_0x978f('0x35')]=_[_0x978f('0x33')](_0x386fe4[_0x978f('0x34')],qs[_0x978f('0x36')](_0x6152c3['query']['fields']));_0x284272[_0x978f('0x35')]=_0x284272[_0x978f('0x35')][_0x978f('0x45')]?_0x284272['attributes']:_0x386fe4[_0x978f('0x34')];if(_0x6152c3[_0x978f('0x31')][_0x978f('0x40')]){_0x284272['include']=[{'all':!![]}];}_0x284272=_[_0x978f('0x3c')]({},_0x284272,_0x6152c3[_0x978f('0x3f')]);return db['SmsApplication'][_0x978f('0x46')](_0x284272)[_0x978f('0x24')](handleEntityNotFound(_0x58f8ec,null))[_0x978f('0x24')](respondWithResult(_0x58f8ec,null))[_0x978f('0x47')](handleError(_0x58f8ec,null));};exports[_0x978f('0x48')]=function(_0x2c7005,_0x4470e7){return db[_0x978f('0x2b')]['create'](_0x2c7005['body'],{})[_0x978f('0x24')](respondWithResult(_0x4470e7,0xc9))[_0x978f('0x47')](handleError(_0x4470e7,null));};exports['update']=function(_0x19bad8,_0x4b513d){if(_0x19bad8[_0x978f('0x49')]['id']){delete _0x19bad8[_0x978f('0x49')]['id'];}return db[_0x978f('0x2b')][_0x978f('0x46')]({'where':{'id':_0x19bad8[_0x978f('0x44')]['id']}})[_0x978f('0x24')](handleEntityNotFound(_0x4b513d,null))[_0x978f('0x24')](saveUpdates(_0x19bad8[_0x978f('0x49')],null))[_0x978f('0x24')](respondWithResult(_0x4b513d,null))[_0x978f('0x47')](handleError(_0x4b513d,null));};exports[_0x978f('0x25')]=function(_0x200f58,_0x2202b1){return db[_0x978f('0x2b')][_0x978f('0x46')]({'where':{'id':_0x200f58['params']['id']}})['then'](handleEntityNotFound(_0x2202b1,null))[_0x978f('0x24')](removeEntity(_0x2202b1,null))[_0x978f('0x47')](handleError(_0x2202b1,null));};
\ No newline at end of file
+var _0xef3b=['filter','includeAll','include','show','params','length','options','find','catch','create','body','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','fs-extra','lodash','crypto','desk.js','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','offset','count','set','apply','reject','save','update','then','destroy','name','send','index','map','SmsApplication','fieldName','type','key','keys','query','model','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL'];(function(_0x534ee3,_0x1274e3){var _0x16883a=function(_0x10a35a){while(--_0x10a35a){_0x534ee3['push'](_0x534ee3['shift']());}};_0x16883a(++_0x1274e3);}(_0xef3b,0x117));var _0xbef3=function(_0x48c54a,_0x1ff66e){_0x48c54a=_0x48c54a-0x0;var _0x51ae6b=_0xef3b[_0x48c54a];return _0x51ae6b;};'use strict';var emlformat=require(_0xbef3('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbef3('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xbef3('0x2'));var moment=require('moment');var BPromise=require(_0xbef3('0x3'));var Mustache=require(_0xbef3('0x4'));var util=require(_0xbef3('0x5'));var path=require(_0xbef3('0x6'));var sox=require('sox');var csv=require(_0xbef3('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbef3('0x8'));var _=require(_0xbef3('0x9'));var squel=require('squel');var crypto=require(_0xbef3('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xbef3('0xb'));var toCsv=require(_0xbef3('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xbef3('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xbef3('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xbef3('0xe'))('api');var utils=require(_0xbef3('0xf'));var config=require(_0xbef3('0x10'));var licenseUtil=require(_0xbef3('0x11'));var db=require(_0xbef3('0x12'))['db'];function respondWithStatusCode(_0x29f750,_0x449368){_0x449368=_0x449368||0xcc;return function(_0x5658b6){if(_0x5658b6){return _0x29f750[_0xbef3('0x13')](_0x449368);}return _0x29f750[_0xbef3('0x14')](_0x449368)[_0xbef3('0x15')]();};}function respondWithResult(_0x4ac7f6,_0x1ac871){_0x1ac871=_0x1ac871||0xc8;return function(_0x33a48b){if(_0x33a48b){return _0x4ac7f6[_0xbef3('0x14')](_0x1ac871)['json'](_0x33a48b);}};}function respondWithFilteredResult(_0xaf7f9f,_0x576f28){return function(_0x553a89){if(_0x553a89){var _0x390897=typeof _0x576f28['offset']===_0xbef3('0x16')&&typeof _0x576f28[_0xbef3('0x17')]==='undefined';var _0x187b9d=_0x553a89['count'];var _0x2b5281=_0x390897?0x0:_0x576f28[_0xbef3('0x18')];var _0x4b9c4c=_0x390897?_0x553a89[_0xbef3('0x19')]:_0x576f28[_0xbef3('0x18')]+_0x576f28[_0xbef3('0x17')];var _0xcf7d0f;if(_0x4b9c4c>=_0x187b9d){_0x4b9c4c=_0x187b9d;_0xcf7d0f=0xc8;}else{_0xcf7d0f=0xce;}_0xaf7f9f['status'](_0xcf7d0f);return _0xaf7f9f[_0xbef3('0x1a')]('Content-Range',_0x2b5281+'-'+_0x4b9c4c+'/'+_0x187b9d)['json'](_0x553a89);}return null;};}function patchUpdates(_0x371ac3){return function(_0x220454){try{jsonpatch[_0xbef3('0x1b')](_0x220454,_0x371ac3,!![]);}catch(_0x277423){return BPromise[_0xbef3('0x1c')](_0x277423);}return _0x220454[_0xbef3('0x1d')]();};}function saveUpdates(_0x4c29de,_0x5305ef){return function(_0xcb6e2c){if(_0xcb6e2c){return _0xcb6e2c[_0xbef3('0x1e')](_0x4c29de)[_0xbef3('0x1f')](function(_0x4a3c47){return _0x4a3c47;});}return null;};}function removeEntity(_0x5e646b,_0x48974e){return function(_0xb3c724){if(_0xb3c724){return _0xb3c724[_0xbef3('0x20')]()['then'](function(){_0x5e646b[_0xbef3('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x492081,_0x5c3045){return function(_0x271b89){if(!_0x271b89){_0x492081['sendStatus'](0x194);}return _0x271b89;};}function handleError(_0x116386,_0x2d5b1b){_0x2d5b1b=_0x2d5b1b||0x1f4;return function(_0x186c79){logger['error'](_0x186c79['stack']);if(_0x186c79[_0xbef3('0x21')]){delete _0x186c79['name'];}_0x116386['status'](_0x2d5b1b)[_0xbef3('0x22')](_0x186c79);};}exports[_0xbef3('0x23')]=function(_0x48cb58,_0x4e0da5){var _0xa34430={},_0x25a442={},_0xdbbb45={'count':0x0,'rows':[]};var _0x3fc5b3=_[_0xbef3('0x24')](db[_0xbef3('0x25')]['rawAttributes'],function(_0x1d9c8c){return{'name':_0x1d9c8c[_0xbef3('0x26')],'type':_0x1d9c8c[_0xbef3('0x27')][_0xbef3('0x28')]};});_0x25a442['model']=_[_0xbef3('0x24')](_0x3fc5b3,_0xbef3('0x21'));_0x25a442['query']=_[_0xbef3('0x29')](_0x48cb58[_0xbef3('0x2a')]);_0x25a442['filters']=_['intersection'](_0x25a442[_0xbef3('0x2b')],_0x25a442[_0xbef3('0x2a')]);_0xa34430['attributes']=_[_0xbef3('0x2c')](_0x25a442[_0xbef3('0x2b')],qs[_0xbef3('0x2d')](_0x48cb58[_0xbef3('0x2a')][_0xbef3('0x2d')]));_0xa34430['attributes']=_0xa34430[_0xbef3('0x2e')]['length']?_0xa34430['attributes']:_0x25a442[_0xbef3('0x2b')];if(!_0x48cb58[_0xbef3('0x2a')][_0xbef3('0x2f')](_0xbef3('0x30'))){_0xa34430['limit']=qs['limit'](_0x48cb58[_0xbef3('0x2a')][_0xbef3('0x17')]);_0xa34430[_0xbef3('0x18')]=qs[_0xbef3('0x18')](_0x48cb58['query'][_0xbef3('0x18')]);}_0xa34430[_0xbef3('0x31')]=qs[_0xbef3('0x32')](_0x48cb58[_0xbef3('0x2a')][_0xbef3('0x32')]);_0xa34430[_0xbef3('0x33')]=qs[_0xbef3('0x34')](_[_0xbef3('0x35')](_0x48cb58[_0xbef3('0x2a')],_0x25a442[_0xbef3('0x34')]),_0x3fc5b3);if(_0x48cb58[_0xbef3('0x2a')]['filter']){_0xa34430[_0xbef3('0x33')]=_[_0xbef3('0x36')](_0xa34430[_0xbef3('0x33')],{'$or':_[_0xbef3('0x24')](_0x3fc5b3,function(_0x1730b6){if(_0x1730b6[_0xbef3('0x27')]!==_0xbef3('0x37')){var _0x4a3ebc={};_0x4a3ebc[_0x1730b6[_0xbef3('0x21')]]={'$like':'%'+_0x48cb58[_0xbef3('0x2a')][_0xbef3('0x38')]+'%'};return _0x4a3ebc;}})});}_0xa34430=_[_0xbef3('0x36')]({},_0xa34430,_0x48cb58['options']);var _0x28c7c6={'where':_0xa34430[_0xbef3('0x33')]};return db[_0xbef3('0x25')][_0xbef3('0x19')](_0x28c7c6)[_0xbef3('0x1f')](function(_0x2836c5){_0xdbbb45[_0xbef3('0x19')]=_0x2836c5;if(_0x48cb58['query'][_0xbef3('0x39')]){_0xa34430[_0xbef3('0x3a')]=[{'all':!![]}];}return db[_0xbef3('0x25')]['findAll'](_0xa34430);})[_0xbef3('0x1f')](function(_0x2c0078){_0xdbbb45['rows']=_0x2c0078;return _0xdbbb45;})[_0xbef3('0x1f')](respondWithFilteredResult(_0x4e0da5,_0xa34430))['catch'](handleError(_0x4e0da5,null));};exports[_0xbef3('0x3b')]=function(_0x2533ec,_0x19a0da){var _0x309b7b={'raw':!![],'where':{'id':_0x2533ec[_0xbef3('0x3c')]['id']}},_0x5be711={};_0x5be711[_0xbef3('0x2b')]=_[_0xbef3('0x29')](db[_0xbef3('0x25')]['rawAttributes']);_0x5be711[_0xbef3('0x2a')]=_[_0xbef3('0x29')](_0x2533ec[_0xbef3('0x2a')]);_0x5be711[_0xbef3('0x34')]=_[_0xbef3('0x2c')](_0x5be711[_0xbef3('0x2b')],_0x5be711[_0xbef3('0x2a')]);_0x309b7b[_0xbef3('0x2e')]=_[_0xbef3('0x2c')](_0x5be711[_0xbef3('0x2b')],qs[_0xbef3('0x2d')](_0x2533ec['query'][_0xbef3('0x2d')]));_0x309b7b[_0xbef3('0x2e')]=_0x309b7b[_0xbef3('0x2e')][_0xbef3('0x3d')]?_0x309b7b[_0xbef3('0x2e')]:_0x5be711[_0xbef3('0x2b')];if(_0x2533ec[_0xbef3('0x2a')][_0xbef3('0x39')]){_0x309b7b[_0xbef3('0x3a')]=[{'all':!![]}];}_0x309b7b=_[_0xbef3('0x36')]({},_0x309b7b,_0x2533ec[_0xbef3('0x3e')]);return db['SmsApplication'][_0xbef3('0x3f')](_0x309b7b)['then'](handleEntityNotFound(_0x19a0da,null))[_0xbef3('0x1f')](respondWithResult(_0x19a0da,null))[_0xbef3('0x40')](handleError(_0x19a0da,null));};exports['create']=function(_0x19b439,_0x173fd4){return db['SmsApplication'][_0xbef3('0x41')](_0x19b439['body'],{})[_0xbef3('0x1f')](respondWithResult(_0x173fd4,0xc9))['catch'](handleError(_0x173fd4,null));};exports[_0xbef3('0x1e')]=function(_0x1b5601,_0x29b90c){if(_0x1b5601[_0xbef3('0x42')]['id']){delete _0x1b5601[_0xbef3('0x42')]['id'];}return db[_0xbef3('0x25')][_0xbef3('0x3f')]({'where':{'id':_0x1b5601['params']['id']}})[_0xbef3('0x1f')](handleEntityNotFound(_0x29b90c,null))[_0xbef3('0x1f')](saveUpdates(_0x1b5601[_0xbef3('0x42')],null))['then'](respondWithResult(_0x29b90c,null))[_0xbef3('0x40')](handleError(_0x29b90c,null));};exports[_0xbef3('0x20')]=function(_0x3a6039,_0x1f322c){return db[_0xbef3('0x25')][_0xbef3('0x3f')]({'where':{'id':_0x3a6039['params']['id']}})[_0xbef3('0x1f')](handleEntityNotFound(_0x1f322c,null))[_0xbef3('0x1f')](removeEntity(_0x1f322c,null))['catch'](handleError(_0x1f322c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15c4=['./smsApplication.attributes','exports','define','SmsApplication','utf8mb4','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x15c4,0x10d));var _0x415c=function(_0x268bd4,_0x1f29dc){_0x268bd4=_0x268bd4-0x0;var _0x57ecb2=_0x15c4[_0x268bd4];return _0x57ecb2;};'use strict';var _=require(_0x415c('0x0'));var util=require(_0x415c('0x1'));var logger=require(_0x415c('0x2'))('api');var moment=require('moment');var BPromise=require(_0x415c('0x3'));var rp=require(_0x415c('0x4'));var fs=require('fs');var path=require(_0x415c('0x5'));var rimraf=require(_0x415c('0x6'));var config=require('../../config/environment');var attributes=require(_0x415c('0x7'));module[_0x415c('0x8')]=function(_0x1b0650,_0x11be5b){return _0x1b0650[_0x415c('0x9')](_0x415c('0xa'),attributes,{'tableName':'sms_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x415c('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xe8fa=['./smsApplication.attributes','define','SmsApplication','sms_applications','utf8mb4','lodash','../../config/logger','moment','bluebird','path','../../config/environment'];(function(_0x486c23,_0x4f12a0){var _0x54421a=function(_0x580faa){while(--_0x580faa){_0x486c23['push'](_0x486c23['shift']());}};_0x54421a(++_0x4f12a0);}(_0xe8fa,0x15a));var _0xae8f=function(_0x500419,_0x549162){_0x500419=_0x500419-0x0;var _0x241c1a=_0xe8fa[_0x500419];return _0x241c1a;};'use strict';var _=require(_0xae8f('0x0'));var util=require('util');var logger=require(_0xae8f('0x1'))('api');var moment=require(_0xae8f('0x2'));var BPromise=require(_0xae8f('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xae8f('0x4'));var rimraf=require('rimraf');var config=require(_0xae8f('0x5'));var attributes=require(_0xae8f('0x6'));module['exports']=function(_0x5a1d00,_0x565028){return _0x5a1d00[_0xae8f('0x7')](_0xae8f('0x8'),attributes,{'tableName':_0xae8f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xae8f('0xa'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x881e=['stringify','error','code','message','result','catch','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','SmsApplication,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x4527a7,_0x8ba51b){var _0x5efeb0=function(_0x1355a1){while(--_0x1355a1){_0x4527a7['push'](_0x4527a7['shift']());}};_0x5efeb0(++_0x8ba51b);}(_0x881e,0x146));var _0xe881=function(_0x506454,_0x29ea0a){_0x506454=_0x506454-0x0;var _0x2f4d66=_0x881e[_0x506454];return _0x2f4d66;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xe881('0x0'));var BPromise=require(_0xe881('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe881('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xe881('0x3'));var logger=require(_0xe881('0x4'))(_0xe881('0x5'));var config=require(_0xe881('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xe881('0x7')][_0xe881('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x561c1c,_0x3f6894,_0x2413dc){return new BPromise(function(_0xe16d23,_0x547217){return client['request'](_0x561c1c,_0x2413dc)[_0xe881('0x9')](function(_0x26e29e){logger[_0xe881('0xa')](_0xe881('0xb'),_0x3f6894,'request\x20sent');logger[_0xe881('0xc')]('SmsApplication,\x20%s,\x20%s,\x20%s',_0x3f6894,_0xe881('0xd'),JSON[_0xe881('0xe')](_0x26e29e));if(_0x26e29e[_0xe881('0xf')]){if(_0x26e29e[_0xe881('0xf')][_0xe881('0x10')]===0x1f4){logger[_0xe881('0xf')](_0xe881('0xb'),_0x3f6894,_0x26e29e['error'][_0xe881('0x11')]);return _0x547217(_0x26e29e[_0xe881('0xf')][_0xe881('0x11')]);}logger['error'](_0xe881('0xb'),_0x3f6894,_0x26e29e['error'][_0xe881('0x11')]);return _0xe16d23(_0x26e29e[_0xe881('0xf')][_0xe881('0x11')]);}else{logger[_0xe881('0xa')]('SmsApplication,\x20%s,\x20%s',_0x3f6894,_0xe881('0xd'));_0xe16d23(_0x26e29e[_0xe881('0x12')][_0xe881('0x11')]);}})[_0xe881('0x13')](function(_0x59b441){logger[_0xe881('0xf')](_0xe881('0xb'),_0x3f6894,_0x59b441);_0x547217(_0x59b441);});});}
\ No newline at end of file
+var _0x7c71=['debug','SmsApplication,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','SmsApplication,\x20%s,\x20%s','request\x20sent'];(function(_0x24e02e,_0x523ed9){var _0xe5e064=function(_0x40212b){while(--_0x40212b){_0x24e02e['push'](_0x24e02e['shift']());}};_0xe5e064(++_0x523ed9);}(_0x7c71,0x177));var _0x17c7=function(_0x4687df,_0x12099c){_0x4687df=_0x4687df-0x0;var _0x32eaef=_0x7c71[_0x4687df];return _0x32eaef;};'use strict';var _=require(_0x17c7('0x0'));var util=require(_0x17c7('0x1'));var moment=require(_0x17c7('0x2'));var BPromise=require(_0x17c7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x17c7('0x4'));var db=require(_0x17c7('0x5'))['db'];var utils=require(_0x17c7('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x17c7('0x7'));var jayson=require(_0x17c7('0x8'));var client=jayson[_0x17c7('0x9')][_0x17c7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3c061b,_0xf284a2,_0x1ff4ec){return new BPromise(function(_0x50feb0,_0x13fdad){return client[_0x17c7('0xb')](_0x3c061b,_0x1ff4ec)[_0x17c7('0xc')](function(_0xdb3575){logger[_0x17c7('0xd')](_0x17c7('0xe'),_0xf284a2,_0x17c7('0xf'));logger[_0x17c7('0x10')](_0x17c7('0x11'),_0xf284a2,_0x17c7('0xf'),JSON['stringify'](_0xdb3575));if(_0xdb3575['error']){if(_0xdb3575[_0x17c7('0x12')][_0x17c7('0x13')]===0x1f4){logger['error'](_0x17c7('0xe'),_0xf284a2,_0xdb3575[_0x17c7('0x12')]['message']);return _0x13fdad(_0xdb3575[_0x17c7('0x12')][_0x17c7('0x14')]);}logger['error']('SmsApplication,\x20%s,\x20%s',_0xf284a2,_0xdb3575[_0x17c7('0x12')][_0x17c7('0x14')]);return _0x50feb0(_0xdb3575[_0x17c7('0x12')][_0x17c7('0x14')]);}else{logger[_0x17c7('0xd')](_0x17c7('0xe'),_0xf284a2,_0x17c7('0xf'));_0x50feb0(_0xdb3575[_0x17c7('0x15')][_0x17c7('0x14')]);}})[_0x17c7('0x16')](function(_0x296f9c){logger[_0x17c7('0x12')]('SmsApplication,\x20%s,\x20%s',_0xf284a2,_0x296f9c);_0x13fdad(_0x296f9c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9348=['addMessage','/:id/tags','sms','smsinteraction:addtags','addTags','put','/:id','tracked','update','delete','smsinteraction:destroy','removeTags','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','index','describe','/:id/messages','getMessages','/:id/download','download','post','create'];(function(_0x5a27e8,_0x492a2f){var _0x4e38f7=function(_0x2a4048){while(--_0x2a4048){_0x5a27e8['push'](_0x5a27e8['shift']());}};_0x4e38f7(++_0x492a2f);}(_0x9348,0x10d));var _0x8934=function(_0x26d187,_0x2b734d){_0x26d187=_0x26d187-0x0;var _0x5d44bb=_0x9348[_0x26d187];return _0x5d44bb;};'use strict';var multer=require(_0x8934('0x0'));var util=require(_0x8934('0x1'));var path=require(_0x8934('0x2'));var timeout=require(_0x8934('0x3'));var express=require(_0x8934('0x4'));var router=express['Router']();var fs_extra=require(_0x8934('0x5'));var auth=require(_0x8934('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x8934('0x7'));var controller=require(_0x8934('0x8'));router[_0x8934('0x9')]('/',auth[_0x8934('0xa')](),controller[_0x8934('0xb')]);router[_0x8934('0x9')]('/describe',auth[_0x8934('0xa')](),controller[_0x8934('0xc')]);router[_0x8934('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router['get'](_0x8934('0xd'),auth['isAuthenticated'](),controller[_0x8934('0xe')]);router[_0x8934('0x9')](_0x8934('0xf'),auth[_0x8934('0xa')](),controller[_0x8934('0x10')]);router[_0x8934('0x11')]('/',auth[_0x8934('0xa')](),controller[_0x8934('0x12')]);router['post'](_0x8934('0xd'),auth[_0x8934('0xa')](),controller[_0x8934('0x13')]);router[_0x8934('0x11')](_0x8934('0x14'),auth[_0x8934('0xa')](),interaction['tracked'](_0x8934('0x15'),_0x8934('0x16')),controller[_0x8934('0x17')]);router[_0x8934('0x18')](_0x8934('0x19'),auth[_0x8934('0xa')](),interaction[_0x8934('0x1a')](_0x8934('0x15'),'smsinteraction:update'),controller[_0x8934('0x1b')]);router[_0x8934('0x1c')](_0x8934('0x19'),auth['isAuthenticated'](),interaction['tracked']('sms',_0x8934('0x1d')),controller['destroy']);router[_0x8934('0x1c')](_0x8934('0x14'),auth[_0x8934('0xa')](),controller[_0x8934('0x1e')]);module[_0x8934('0x1f')]=router;
\ No newline at end of file
+var _0x0972=['tracked','sms','addTags','put','update','delete','smsinteraction:destroy','destroy','removeTags','exports','util','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','index','describe','/:id','/:id/messages','getMessages','/:id/download','download','post','create','addMessage','/:id/tags'];(function(_0x14604a,_0x341081){var _0x22661d=function(_0x27900a){while(--_0x27900a){_0x14604a['push'](_0x14604a['shift']());}};_0x22661d(++_0x341081);}(_0x0972,0x64));var _0x2097=function(_0x241af1,_0xf80087){_0x241af1=_0x241af1-0x0;var _0x5bdfee=_0x0972[_0x241af1];return _0x5bdfee;};'use strict';var multer=require('multer');var util=require(_0x2097('0x0'));var path=require('path');var timeout=require(_0x2097('0x1'));var express=require('express');var router=express[_0x2097('0x2')]();var fs_extra=require(_0x2097('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x2097('0x4'));var config=require(_0x2097('0x5'));var controller=require(_0x2097('0x6'));router[_0x2097('0x7')]('/',auth[_0x2097('0x8')](),controller[_0x2097('0x9')]);router[_0x2097('0x7')]('/describe',auth[_0x2097('0x8')](),controller[_0x2097('0xa')]);router[_0x2097('0x7')](_0x2097('0xb'),auth[_0x2097('0x8')](),controller['show']);router[_0x2097('0x7')](_0x2097('0xc'),auth[_0x2097('0x8')](),controller[_0x2097('0xd')]);router[_0x2097('0x7')](_0x2097('0xe'),auth[_0x2097('0x8')](),controller[_0x2097('0xf')]);router[_0x2097('0x10')]('/',auth[_0x2097('0x8')](),controller[_0x2097('0x11')]);router[_0x2097('0x10')](_0x2097('0xc'),auth[_0x2097('0x8')](),controller[_0x2097('0x12')]);router[_0x2097('0x10')](_0x2097('0x13'),auth[_0x2097('0x8')](),interaction[_0x2097('0x14')](_0x2097('0x15'),'smsinteraction:addtags'),controller[_0x2097('0x16')]);router[_0x2097('0x17')]('/:id',auth['isAuthenticated'](),interaction['tracked'](_0x2097('0x15'),'smsinteraction:update'),controller[_0x2097('0x18')]);router[_0x2097('0x19')](_0x2097('0xb'),auth[_0x2097('0x8')](),interaction[_0x2097('0x14')]('sms',_0x2097('0x1a')),controller[_0x2097('0x1b')]);router[_0x2097('0x19')](_0x2097('0x13'),auth[_0x2097('0x8')](),controller[_0x2097('0x1c')]);module[_0x2097('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14f5=['moment','BOOLEAN','DATE','STRING','ENUM','out'];(function(_0x270c0f,_0x52e0e3){var _0x33de26=function(_0x7a4fd6){while(--_0x7a4fd6){_0x270c0f['push'](_0x270c0f['shift']());}};_0x33de26(++_0x52e0e3);}(_0x14f5,0xae));var _0x514f=function(_0x1d0343,_0x472470){_0x1d0343=_0x1d0343-0x0;var _0xeba613=_0x14f5[_0x1d0343];return _0xeba613;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x514f('0x0'));module['exports']={'closed':{'type':Sequelize[_0x514f('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x514f('0x2')]},'disposition':{'type':Sequelize[_0x514f('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x514f('0x3')]},'note':{'type':Sequelize[_0x514f('0x3')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x514f('0x2')]},'firstMsgDirection':{'type':Sequelize[_0x514f('0x4')]('in',_0x514f('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x514f('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x514f('0x4')]('in',_0x514f('0x5')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x514f('0x1')],'defaultValue':![]}};
\ No newline at end of file
+var _0xe35c=['exports','BOOLEAN','DATE','STRING','ENUM','out','sequelize','moment'];(function(_0x3df41c,_0x2c4f5c){var _0x56cc7b=function(_0xcba7af){while(--_0xcba7af){_0x3df41c['push'](_0x3df41c['shift']());}};_0x56cc7b(++_0x2c4f5c);}(_0xe35c,0x146));var _0xce35=function(_0x33e6be,_0x4207eb){_0x33e6be=_0x33e6be-0x0;var _0x4e2008=_0xe35c[_0x33e6be];return _0x4e2008;};'use strict';var Sequelize=require(_0xce35('0x0'));var moment=require(_0xce35('0x1'));module[_0xce35('0x2')]={'closed':{'type':Sequelize[_0xce35('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xce35('0x4')]},'disposition':{'type':Sequelize[_0xce35('0x5')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0xce35('0x5')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0xce35('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xce35('0x6')]('in',_0xce35('0x7')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0xce35('0x6')]('in',_0xce35('0x7')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xce35('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf2f=['to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./smsInteraction.socket','register','sendStatus','status','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','end','error','name','send','map','fullname','TagIds','Tags','forEach','push','index','SmsInteraction','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','length','hasOwnProperty','sort','where','filters','pick','select','field','tools_tags','u.id','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','from','sms_interactions','cm_contacts','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','expr','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','isEmpty','SmsAccountId','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','role','agent','sequelize','toString','merge','fields','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','all','catch','params','includeAll','create','describe','addMessage','ids','omit','getMessages','SmsMessage','SmsInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','options','include','findAll','rows','addTags','setTags','spread','color','emit','smsInteractionTags:save','removeTags','download','unix','join','server','attachments','transcript-%d-%s.zip','CmContact','firstName','createdAt','secret','SmsAccount','Sms','Account','Owner','N.A.','closed','disposition','Messages','direction','out','lastName','renderFile','root','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox'];(function(_0x2cedfa,_0x1310c5){var _0x4bfabc=function(_0x5ec444){while(--_0x5ec444){_0x2cedfa['push'](_0x2cedfa['shift']());}};_0x4bfabc(++_0x1310c5);}(_0xcf2f,0x1c6));var _0xfcf2=function(_0x588d8a,_0x4946d2){_0x588d8a=_0x588d8a-0x0;var _0x18251f=_0xcf2f[_0x588d8a];return _0x18251f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfcf2('0x0'));var zipdir=require(_0xfcf2('0x1'));var jsonpatch=require(_0xfcf2('0x2'));var rp=require(_0xfcf2('0x3'));var moment=require('moment');var BPromise=require(_0xfcf2('0x4'));var Mustache=require(_0xfcf2('0x5'));var util=require('util');var path=require(_0xfcf2('0x6'));var sox=require(_0xfcf2('0x7'));var csv=require(_0xfcf2('0x8'));var ejs=require(_0xfcf2('0x9'));var fs=require('fs');var fs_extra=require(_0xfcf2('0xa'));var _=require(_0xfcf2('0xb'));var squel=require('squel');var crypto=require(_0xfcf2('0xc'));var jsforce=require(_0xfcf2('0xd'));var deskjs=require(_0xfcf2('0xe'));var toCsv=require(_0xfcf2('0x8'));var querystring=require(_0xfcf2('0xf'));var Papa=require(_0xfcf2('0x10'));var Redis=require(_0xfcf2('0x11'));var authService=require(_0xfcf2('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var pdf=require(_0xfcf2('0x13'));var hardwareService=require(_0xfcf2('0x14'));var logger=require(_0xfcf2('0x15'))(_0xfcf2('0x16'));var utils=require('../../config/utils');var config=require(_0xfcf2('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xfcf2('0x18'))['db'];config[_0xfcf2('0x19')]=_[_0xfcf2('0x1a')](config[_0xfcf2('0x19')],{'host':_0xfcf2('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xfcf2('0x1c'))[_0xfcf2('0x1d')](socket);function respondWithStatusCode(_0x408db0,_0x50a415){_0x50a415=_0x50a415||0xcc;return function(_0xa3c21){if(_0xa3c21){return _0x408db0[_0xfcf2('0x1e')](_0x50a415);}return _0x408db0[_0xfcf2('0x1f')](_0x50a415)['end']();};}function respondWithResult(_0x4877c1,_0x22f995){_0x22f995=_0x22f995||0xc8;return function(_0x2bfb03){if(_0x2bfb03){return _0x4877c1[_0xfcf2('0x1f')](_0x22f995)['json'](_0x2bfb03);}};}function respondWithFilteredResult(_0x2983db,_0x4dac7f){return function(_0x55104f){if(_0x55104f){var _0x232062=typeof _0x4dac7f[_0xfcf2('0x20')]===_0xfcf2('0x21')&&typeof _0x4dac7f[_0xfcf2('0x22')]===_0xfcf2('0x21');var _0x1ba32f=_0x55104f[_0xfcf2('0x23')];var _0x4b2fac=_0x232062?0x0:_0x4dac7f[_0xfcf2('0x20')];var _0x3d2527=_0x232062?_0x55104f['count']:_0x4dac7f['offset']+_0x4dac7f[_0xfcf2('0x22')];var _0x2a750b;if(_0x3d2527>=_0x1ba32f){_0x3d2527=_0x1ba32f;_0x2a750b=0xc8;}else{_0x2a750b=0xce;}_0x2983db[_0xfcf2('0x1f')](_0x2a750b);return _0x2983db[_0xfcf2('0x24')](_0xfcf2('0x25'),_0x4b2fac+'-'+_0x3d2527+'/'+_0x1ba32f)['json'](_0x55104f);}return null;};}function patchUpdates(_0x3c8b92){return function(_0x70affe){try{jsonpatch[_0xfcf2('0x26')](_0x70affe,_0x3c8b92,!![]);}catch(_0xffc991){return BPromise[_0xfcf2('0x27')](_0xffc991);}return _0x70affe['save']();};}function saveUpdates(_0x595ccc,_0x283691){return function(_0x5ce0eb){if(_0x5ce0eb){return _0x5ce0eb[_0xfcf2('0x28')](_0x595ccc)[_0xfcf2('0x29')](function(_0x2a4b9c){return _0x2a4b9c;});}return null;};}function removeEntity(_0x3e3a97,_0x361c95){return function(_0x56da13){if(_0x56da13){return _0x56da13['destroy']()[_0xfcf2('0x29')](function(){_0x3e3a97[_0xfcf2('0x1f')](0xcc)[_0xfcf2('0x2a')]();});}};}function handleEntityNotFound(_0x2976b3,_0x3686f4){return function(_0x2cd19d){if(!_0x2cd19d){_0x2976b3[_0xfcf2('0x1e')](0x194);}return _0x2cd19d;};}function handleError(_0x5272c5,_0x27f6a3){_0x27f6a3=_0x27f6a3||0x1f4;return function(_0x25e075){logger[_0xfcf2('0x2b')](_0x25e075['stack']);if(_0x25e075['name']){delete _0x25e075[_0xfcf2('0x2c')];}_0x5272c5['status'](_0x27f6a3)[_0xfcf2('0x2d')](_0x25e075);};}function getInteractionUsers(_0x5ccb4f,_0x59f4eb){return new BPromise(function(_0x1460ab,_0xac3c39){try{if(_0x59f4eb[_0x5ccb4f['id']]){_0x5ccb4f['Users']=_[_0xfcf2('0x2e')](_0x59f4eb[_0x5ccb4f['id']],function(_0x1f2f59){return{'id':_0x1f2f59['id'],'fullname':_0x1f2f59[_0xfcf2('0x2f')]};});}}catch(_0x264903){_0xac3c39(_0x264903);}_0x1460ab(_0x5ccb4f);});}function getInteractionTags(_0x99947c,_0x5d9e2){return new BPromise(function(_0xfab281,_0x3c7878){try{if(_0x99947c[_0xfcf2('0x30')]){_0x99947c[_0xfcf2('0x31')]=[];_0x99947c[_0xfcf2('0x30')]['split'](',')[_0xfcf2('0x32')](function(_0x5108c9){_0x99947c['Tags'][_0xfcf2('0x33')](_0x5d9e2[_0x5108c9]);});}delete _0x99947c[_0xfcf2('0x30')];}catch(_0x4af080){_0x3c7878(_0x4af080);}_0xfab281(_0x99947c);});}function updateSmsInteraction(_0x5b7da6,_0x487762,_0x490599){return new BPromise(function(_0x95f95,_0x2c29c4){return getInteractionUsers(_0x5b7da6,_0x490599)[_0xfcf2('0x29')](function(_0x5a0487){return getInteractionTags(_0x5a0487,_0x487762);})[_0xfcf2('0x29')](function(_0x9b717c){_0x95f95(_0x9b717c);})['catch'](function(_0x3b4a5f){_0x2c29c4(_0x3b4a5f);});});}exports[_0xfcf2('0x34')]=function(_0x114750,_0x206102){var _0x172d73={},_0x90803c={},_0x377b25={'count':0x0,'rows':[]};var _0x432a25=_[_0xfcf2('0x2e')](db[_0xfcf2('0x35')][_0xfcf2('0x36')],function(_0xaa5a9d){return{'name':_0xaa5a9d[_0xfcf2('0x37')],'type':_0xaa5a9d[_0xfcf2('0x38')][_0xfcf2('0x39')]};});_0x90803c[_0xfcf2('0x3a')]=_[_0xfcf2('0x2e')](_0x432a25,_0xfcf2('0x2c'));_0x90803c[_0xfcf2('0x3b')]=_[_0xfcf2('0x3c')](_0x114750[_0xfcf2('0x3b')]);_0x90803c['filters']=_['intersection'](_0x90803c[_0xfcf2('0x3a')],_0x90803c['query']);_0x172d73[_0xfcf2('0x3d')]=_[_0xfcf2('0x3e')](_0x90803c[_0xfcf2('0x3a')],qs['fields'](_0x114750[_0xfcf2('0x3b')]['fields']));_0x172d73[_0xfcf2('0x3d')]=_0x172d73['attributes'][_0xfcf2('0x3f')]?_0x172d73[_0xfcf2('0x3d')]:_0x90803c[_0xfcf2('0x3a')];if(!_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x40')]('nolimit')){_0x172d73[_0xfcf2('0x22')]=qs[_0xfcf2('0x22')](_0x114750[_0xfcf2('0x3b')]['limit']);_0x172d73[_0xfcf2('0x20')]=qs[_0xfcf2('0x20')](_0x114750[_0xfcf2('0x3b')]['offset']);}_0x172d73['order']=qs[_0xfcf2('0x41')](_0x114750['query'][_0xfcf2('0x41')]);_0x172d73[_0xfcf2('0x42')]=qs[_0xfcf2('0x43')](_[_0xfcf2('0x44')](_0x114750['query'],_0x90803c[_0xfcf2('0x43')]),_0x432a25);var _0x548323=[];var _0x17a5e1=squel[_0xfcf2('0x45')]()[_0xfcf2('0x46')]('id')[_0xfcf2('0x46')](_0xfcf2('0x2c'))['field']('color')['from'](_0xfcf2('0x47'));var _0xf79019=squel['select']()[_0xfcf2('0x46')](_0xfcf2('0x48'))[_0xfcf2('0x46')](_0xfcf2('0x49'))[_0xfcf2('0x46')](_0xfcf2('0x4a'))['from'](_0xfcf2('0x4b'),'ui')[_0xfcf2('0x4c')](_0xfcf2('0x4d'),'u',_0xfcf2('0x4e'));var _0x33dfc3=squel[_0xfcf2('0x45')]()[_0xfcf2('0x4f')](_0xfcf2('0x50'),'i')[_0xfcf2('0x4c')](_0xfcf2('0x51'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0xfcf2('0x4c')](_0xfcf2('0x4d'),'o','o.id\x20=\x20i.UserId')[_0xfcf2('0x4c')]('sms_accounts','a','a.id\x20=\x20i.SmsAccountId')['left_join'](_0xfcf2('0x52'),'me',_0xfcf2('0x53'))[_0xfcf2('0x4c')](_0xfcf2('0x54'),'it','it.SmsInteractionId\x20=\x20i.id')['left_join']('tools_tags','t','t.id\x20=\x20it.TagId');var _0x5592c1=squel[_0xfcf2('0x55')]();var _0x111537=[];var _0x54abe3=squel[_0xfcf2('0x55')]();var _0x37ba9b;if(_0x114750[_0xfcf2('0x3b')]['search']){_0x37ba9b=as[_0xfcf2('0x56')](_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x57')]);var _0x28a1c5=_0x37ba9b[_0xfcf2('0x58')];for(var _0x5dd735=0x0;_0x5dd735<_0x37ba9b[_0xfcf2('0x59')][_0xfcf2('0x3f')];_0x5dd735++){var _0x3981bb=_0x37ba9b['conditions'][_0x5dd735];var _0x36b857='i';var _0x5193c7=_[_0xfcf2('0x5a')](_0x432a25,[_0xfcf2('0x2c'),_0x3981bb['field']]);if(!_0x5193c7){switch(_0x3981bb[_0xfcf2('0x46')]){case _0xfcf2('0x5b'):if(_0x3981bb[_0xfcf2('0x5c')]==0x1){_0x33dfc3[_0xfcf2('0x5d')]('`'+_0x3981bb['field']+'`\x20=\x200');}else{_0x33dfc3[_0xfcf2('0x5d')]('`'+_0x3981bb['field']+_0xfcf2('0x5e'));}break;case _0xfcf2('0x5f'):if(_0x3981bb[_0xfcf2('0x60')]===_0xfcf2('0x61')){if(_0x3981bb[_0xfcf2('0x5c')][_0xfcf2('0x62')]('\x20')[_0xfcf2('0x3f')]>0x1){_0x5592c1[_0x28a1c5](_0xfcf2('0x63'),qs[_0xfcf2('0x64')](_0x3981bb[_0xfcf2('0x5c')]),null);}else{var _0x2d5c98='%'+_0x3981bb['value']+'%';_0x5592c1[_0x28a1c5]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x2d5c98,_0x2d5c98,_0x2d5c98);}}else{_0x5193c7=_[_0xfcf2('0x5a')](_0x432a25,[_0xfcf2('0x2c'),_0xfcf2('0x65')]);_0x3981bb[_0xfcf2('0x46')]=_0xfcf2('0x65');_0x1157d2=as[_0xfcf2('0x66')](_0x36b857,_0x5193c7[_0xfcf2('0x38')],_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2['value'][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')][_0xfcf2('0x2a')]);}break;case _0xfcf2('0x69'):var _0x278dfc=_0x3981bb[_0xfcf2('0x5c')][_0xfcf2('0x62')](',')[_0xfcf2('0x2e')](function(_0x4c86f0){return Number(_0x4c86f0);});_0x278dfc[_0xfcf2('0x32')](function(_0x8962cb){_0x54abe3['or'](_0xfcf2('0x6a'),'%,'+_0x8962cb+',%');});_0x111537=_[_0xfcf2('0x6b')](_0x111537,_0x278dfc);break;case _0xfcf2('0x6c'):if(_0x3981bb[_0xfcf2('0x60')]===_0xfcf2('0x61')){_0x5592c1[_0x28a1c5](_0xfcf2('0x6d'),'%'+_0x3981bb[_0xfcf2('0x5c')]+'%',null);}else{_0x5193c7=_[_0xfcf2('0x5a')](_0x432a25,[_0xfcf2('0x2c'),'UserId']);_0x3981bb['field']=_0xfcf2('0x6e');_0x1157d2=as[_0xfcf2('0x66')](_0x36b857,_0x5193c7[_0xfcf2('0x38')],_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2[_0xfcf2('0x5c')][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')]['end']);}break;case _0xfcf2('0x6f'):_0x1157d2=as[_0xfcf2('0x66')]('me',null,_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2[_0xfcf2('0x5c')][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')]['end']);break;}}else{var _0x1157d2=as['buildExpression'](_0x36b857,_0x5193c7[_0xfcf2('0x38')],_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2['value'][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')]['end']);}}}else{var _0x1334fd=_(_0x114750[_0xfcf2('0x3b')])[_0xfcf2('0x3c')]()['map'](function(_0x261224){return _[_0xfcf2('0x70')](_0x432a25,[_0xfcf2('0x2c'),_0x261224])?_0x261224:undefined;})[_0xfcf2('0x71')]()[_0xfcf2('0x5c')]();if(!_[_0xfcf2('0x72')](_0x1334fd)){_0x1334fd['forEach'](function(_0x3bfaf3){if(_0x3bfaf3===_0xfcf2('0x73')){_0x33dfc3[_0xfcf2('0x42')]('i.SmsAccountId\x20IN\x20?',[][_0xfcf2('0x74')](_0x114750[_0xfcf2('0x3b')][_0x3bfaf3]));}else if(_0x3bfaf3==='createdAt'){var _0x14ec7e=JSON[_0xfcf2('0x75')](_0x114750[_0xfcf2('0x3b')][_0x3bfaf3])[_0xfcf2('0x76')];var _0x53cf0a=JSON['parse'](_0x114750[_0xfcf2('0x3b')][_0x3bfaf3])[_0xfcf2('0x77')];_0x33dfc3[_0xfcf2('0x42')](_0xfcf2('0x78'),_0x14ec7e,_0x53cf0a);}else{if(_0x114750[_0xfcf2('0x3b')][_0x3bfaf3]===_0xfcf2('0x79')){_0x33dfc3[_0xfcf2('0x42')]('i.'+_0x3bfaf3+_0xfcf2('0x7a'));}else{_0x33dfc3['where']('i.'+_0x3bfaf3+_0xfcf2('0x7b'),_0x114750[_0xfcf2('0x3b')][_0x3bfaf3]);}}});}if(_0x114750['query'][_0xfcf2('0x7c')]){if(_0x114750['query']['read']==0x1){_0x33dfc3[_0xfcf2('0x5d')](_0xfcf2('0x7d'));}else{_0x33dfc3[_0xfcf2('0x5d')](_0xfcf2('0x7e'));}}if(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')]){_0x111537=_['isArray'](_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')])?_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')]:new Array(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')]);_0x111537[_0xfcf2('0x32')](function(_0x280b2c){_0x54abe3['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x280b2c+',%');});}if(_0x114750[_0xfcf2('0x3b')]['filter']){var _0xb28b89=_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x80')][_0xfcf2('0x81')]('\x5c','\x5c\x5c')[_0xfcf2('0x81')](/'/g,'\x27\x27');if(qs['isNumeric'](_0xb28b89)){_0x5592c1['or'](_0xfcf2('0x82'),_0xb28b89+'%')['or'](_0xfcf2('0x83'),_0xb28b89+'%');}else{_0x5592c1['or'](_0xfcf2('0x84'),qs[_0xfcf2('0x64')](_0xb28b89))['or'](_0xfcf2('0x85'),_0xb28b89+'%');}}}_0x33dfc3[_0xfcf2('0x42')](_0x5592c1);_0x33dfc3[_0xfcf2('0x86')](_0xfcf2('0x87'));var _0x4a272a={'type':db[_0xfcf2('0x88')][_0xfcf2('0x89')]['SELECT'],'raw':!![]};var _0x3d5000=_0x33dfc3[_0xfcf2('0x8a')]();_0x3d5000[_0xfcf2('0x46')](_0xfcf2('0x87'));_0x3d5000[_0xfcf2('0x46')](_0xfcf2('0x8b'),'unreadMessages');if(_0x172d73[_0xfcf2('0x8c')]){_0x172d73[_0xfcf2('0x8c')][_0xfcf2('0x32')](function(_0x3b2f6a){var _0x1a25b4=_0x3b2f6a[0x0]===_0xfcf2('0x8d')?_0x3b2f6a[0x0]:'i.'+_0x3b2f6a[0x0];_0x33dfc3[_0xfcf2('0x8c')](_0x1a25b4,_0x3b2f6a[0x1]===_0xfcf2('0x8e')?![]:!![]);});}if(!_['isEmpty'](_0x111537)){_0x33dfc3[_0xfcf2('0x5d')](_0x54abe3);_0x3d5000['where']('t.id\x20IN\x20?',_0x111537);}BPromise[_0xfcf2('0x8f')]()[_0xfcf2('0x29')](function(){if(!_0x37ba9b){if(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x73')])return;_0x3d5000[_0xfcf2('0x42')](_0xfcf2('0x90'));_0x33dfc3[_0xfcf2('0x42')](_0xfcf2('0x90'));return;}if(_0x114750[_0xfcf2('0x91')]['role']!=='agent')return;return _0x114750[_0xfcf2('0x91')][_0xfcf2('0x92')]({'attributes':['id'],'raw':!![]})[_0xfcf2('0x29')](function(_0x51f523){if(_[_0xfcf2('0x72')](_0x51f523)){_0x3d5000[_0xfcf2('0x42')](_0xfcf2('0x93'));_0x33dfc3[_0xfcf2('0x42')](_0xfcf2('0x93'));}else{_0x3d5000[_0xfcf2('0x42')]('i.SmsAccountId\x20IN\x20?',_[_0xfcf2('0x2e')](_0x51f523,'id'));_0x33dfc3[_0xfcf2('0x42')]('i.SmsAccountId\x20IN\x20?',_[_0xfcf2('0x2e')](_0x51f523,'id'));}});})[_0xfcf2('0x29')](function(){if(_0x114750['user'][_0xfcf2('0x94')]===_0xfcf2('0x95')&&!_0x37ba9b&&!_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x73')])return[];return db[_0xfcf2('0x96')]['query'](_0x3d5000[_0xfcf2('0x97')](),_0x4a272a);})[_0xfcf2('0x29')](function(_0x398ee6){_0x377b25[_0xfcf2('0x23')]=_0x398ee6['length'];if(_0x377b25[_0xfcf2('0x23')]===0x0)return[];return db[_0xfcf2('0x96')][_0xfcf2('0x3b')](_0x17a5e1[_0xfcf2('0x97')](),_0x4a272a)[_0xfcf2('0x29')](function(_0x38ed86){_0x548323=_['keyBy'](_0x38ed86,'id');_0x4a272a=_[_0xfcf2('0x98')](_0x4a272a,{'model':db[_0xfcf2('0x35')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x99')]){_0x172d73['attributes'][_0xfcf2('0x32')](function(_0x17b3a9){_0x33dfc3[_0xfcf2('0x46')]('i.'+_0x17b3a9);});}else{_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x8b'),_0xfcf2('0x5b'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9a'),_0xfcf2('0x9b'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9c'),'Account.mandatoryDisposition');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9d'),_0xfcf2('0x8d'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9e'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9f'),_0xfcf2('0xa0'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa1'),_0xfcf2('0xa2'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa3'),_0xfcf2('0xa4'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa5'),_0xfcf2('0xa6'));_0x33dfc3['field'](_0xfcf2('0xa7'),_0xfcf2('0xa8'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa9'),'Contact.fax');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xaa'),'Owner.fullname');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xab'),'Owner.internal');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xac'),'TagIds');}if(_0x172d73[_0xfcf2('0x22')])_0x33dfc3[_0xfcf2('0x22')](_0x172d73[_0xfcf2('0x22')]);if(_0x172d73[_0xfcf2('0x20')])_0x33dfc3[_0xfcf2('0x20')](_0x172d73[_0xfcf2('0x20')]);return db['sequelize'][_0xfcf2('0x3b')](_0x33dfc3[_0xfcf2('0x97')](),_0x4a272a);})[_0xfcf2('0x29')](function(_0x10798c){if(_0x10798c[_0xfcf2('0x3f')]>0x0)_0xf79019[_0xfcf2('0x42')](_0xfcf2('0xad'),_[_0xfcf2('0x2e')](_0x10798c,'id'));return db[_0xfcf2('0x96')][_0xfcf2('0x3b')](_0xf79019[_0xfcf2('0x97')](),_0x4a272a)[_0xfcf2('0x29')](function(_0x3e2988){var _0x4718ab=_[_0xfcf2('0xae')](_0x3e2988,'SmsInteractionId');var _0x8fa098=[];_0x10798c[_0xfcf2('0x32')](function(_0x46e471){_0x8fa098[_0xfcf2('0x33')](updateSmsInteraction(_0x46e471,_0x548323,_0x4718ab));});return BPromise[_0xfcf2('0xaf')](_0x8fa098);});});})[_0xfcf2('0x29')](function(_0xc0b63b){_0x377b25['rows']=_0xc0b63b;return _0x377b25;})[_0xfcf2('0x29')](respondWithFilteredResult(_0x206102,_0x172d73))[_0xfcf2('0xb0')](handleError(_0x206102,null));};exports['show']=function(_0x6734b4,_0x2bc52d){var _0x183dd7={'raw':![],'where':{'id':_0x6734b4[_0xfcf2('0xb1')]['id']}},_0x3972f4={};_0x3972f4['model']=_[_0xfcf2('0x3c')](db[_0xfcf2('0x35')]['rawAttributes']);_0x3972f4[_0xfcf2('0x3b')]=_[_0xfcf2('0x3c')](_0x6734b4['query']);_0x3972f4['filters']=_[_0xfcf2('0x3e')](_0x3972f4[_0xfcf2('0x3a')],_0x3972f4[_0xfcf2('0x3b')]);_0x183dd7['attributes']=_['intersection'](_0x3972f4['model'],qs[_0xfcf2('0x99')](_0x6734b4[_0xfcf2('0x3b')]['fields']));_0x183dd7[_0xfcf2('0x3d')]=_0x183dd7['attributes']['length']?_0x183dd7['attributes']:_0x3972f4[_0xfcf2('0x3a')];if(_0x6734b4[_0xfcf2('0x3b')][_0xfcf2('0xb2')]){_0x183dd7['include']=[{'all':!![]}];}_0x183dd7=_[_0xfcf2('0x98')]({},_0x183dd7,_0x6734b4['options']);return db[_0xfcf2('0x35')][_0xfcf2('0x5a')](_0x183dd7)['then'](handleEntityNotFound(_0x2bc52d,null))[_0xfcf2('0x29')](respondWithResult(_0x2bc52d,null))[_0xfcf2('0xb0')](handleError(_0x2bc52d,null));};exports[_0xfcf2('0xb3')]=function(_0x54354c,_0x101118){return db[_0xfcf2('0x35')][_0xfcf2('0xb3')](_0x54354c[_0xfcf2('0x6f')],{})[_0xfcf2('0x29')](respondWithResult(_0x101118,0xc9))[_0xfcf2('0xb0')](handleError(_0x101118,null));};exports['update']=function(_0x2262b2,_0x389e2c){if(_0x2262b2['body']['id']){delete _0x2262b2[_0xfcf2('0x6f')]['id'];}return db[_0xfcf2('0x35')]['find']({'where':{'id':_0x2262b2[_0xfcf2('0xb1')]['id']}})['then'](handleEntityNotFound(_0x389e2c,null))[_0xfcf2('0x29')](saveUpdates(_0x2262b2[_0xfcf2('0x6f')],null))[_0xfcf2('0x29')](respondWithResult(_0x389e2c,null))[_0xfcf2('0xb0')](handleError(_0x389e2c,null));};exports['destroy']=function(_0x11a273,_0x109555){return db[_0xfcf2('0x35')][_0xfcf2('0x5a')]({'where':{'id':_0x11a273[_0xfcf2('0xb1')]['id']}})[_0xfcf2('0x29')](handleEntityNotFound(_0x109555,null))['then'](removeEntity(_0x109555,null))[_0xfcf2('0xb0')](handleError(_0x109555,null));};exports[_0xfcf2('0xb4')]=function(_0x21a326,_0xef992e){return db[_0xfcf2('0x35')][_0xfcf2('0xb4')]()[_0xfcf2('0x29')](respondWithResult(_0xef992e,null))[_0xfcf2('0xb0')](handleError(_0xef992e,null));};exports[_0xfcf2('0xb5')]=function(_0x460c6f,_0x48df49,_0x402958){return db['SmsMessage'][_0xfcf2('0x5a')]({'where':{'id':_0x460c6f[_0xfcf2('0xb1')]['id']}})['then'](handleEntityNotFound(_0x48df49,null))[_0xfcf2('0x29')](function(_0x3feb18){if(_0x3feb18){return _0x3feb18['addMessage'](_0x460c6f[_0xfcf2('0x6f')][_0xfcf2('0xb6')],_[_0xfcf2('0xb7')](_0x460c6f[_0xfcf2('0x6f')],['ids','id'])||{});}})[_0xfcf2('0x29')](respondWithResult(_0x48df49,null))[_0xfcf2('0xb0')](handleError(_0x48df49,null));};exports[_0xfcf2('0xb8')]=function(_0x4c166c,_0x28901e,_0x4f3017){var _0x23cb59={'raw':![],'where':{}};var _0x12a8e3={};var _0x33440d={'count':0x0,'rows':[]};return db[_0xfcf2('0x35')]['findOne']({'where':{'id':_0x4c166c[_0xfcf2('0xb1')]['id']}})[_0xfcf2('0x29')](handleEntityNotFound(_0x28901e,null))[_0xfcf2('0x29')](function(_0x20ecc9){if(_0x20ecc9){_0x12a8e3[_0xfcf2('0x3a')]=_[_0xfcf2('0x3c')](db[_0xfcf2('0xb9')]['rawAttributes']);_0x12a8e3[_0xfcf2('0x3b')]=_[_0xfcf2('0x3c')](_0x4c166c[_0xfcf2('0x3b')]);_0x12a8e3[_0xfcf2('0x43')]=_['intersection'](_0x12a8e3['model'],_0x12a8e3[_0xfcf2('0x3b')]);_0x23cb59[_0xfcf2('0x3d')]=_['intersection'](_0x12a8e3[_0xfcf2('0x3a')],qs['fields'](_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x99')]));_0x23cb59[_0xfcf2('0x3d')]=_0x23cb59[_0xfcf2('0x3d')]['length']?_0x23cb59['attributes']:_0x12a8e3[_0xfcf2('0x3a')];if(!_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x40')]('nolimit')){_0x23cb59[_0xfcf2('0x22')]=qs[_0xfcf2('0x22')](_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x22')]);_0x23cb59[_0xfcf2('0x20')]=qs[_0xfcf2('0x20')](_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x20')]);}_0x23cb59[_0xfcf2('0x8c')]=qs[_0xfcf2('0x41')](_0x4c166c['query']['sort']);_0x23cb59['where']=qs[_0xfcf2('0x43')](_[_0xfcf2('0x44')](_0x4c166c['query'],_0x12a8e3[_0xfcf2('0x43')]));_0x23cb59[_0xfcf2('0x42')][_0xfcf2('0xba')]=_0x20ecc9['id'];if(_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x80')]){_0x23cb59[_0xfcf2('0x42')]=_[_0xfcf2('0x98')](_0x23cb59[_0xfcf2('0x42')],{'$or':_[_0xfcf2('0x2e')](_0x23cb59['attributes'],function(_0x59dd29){var _0x35a6f2={};_0x35a6f2[_0x59dd29]={'$like':'%'+_0x4c166c['query']['filter']+'%'};return _0x35a6f2;})});}if(_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x76')]){var _0x54204f=_0x4c166c['query'][_0xfcf2('0x76')][_0xfcf2('0x62')](',');var _0x22f5d8={};_0x22f5d8[_0x54204f[0x0]]={'$gte':moment(_0x54204f[0x1])[_0xfcf2('0xbb')](_0xfcf2('0xbc'))};_0x23cb59['where']=_[_0xfcf2('0x98')](_0x23cb59[_0xfcf2('0x42')],_0x22f5d8);}_0x23cb59=_['merge']({},_0x23cb59,_0x4c166c[_0xfcf2('0xbd')]);return db[_0xfcf2('0xb9')]['count']({'where':_0x23cb59[_0xfcf2('0x42')]})[_0xfcf2('0x29')](function(_0x38b9b1){_0x33440d[_0xfcf2('0x23')]=_0x38b9b1;if(_0x4c166c['query'][_0xfcf2('0xb2')]){_0x23cb59[_0xfcf2('0xbe')]=[{'all':!![]}];}return db[_0xfcf2('0xb9')][_0xfcf2('0xbf')](_0x23cb59);})[_0xfcf2('0x29')](function(_0x2af8b3){_0x33440d[_0xfcf2('0xc0')]=_0x2af8b3;return _0x33440d;});}})[_0xfcf2('0x29')](respondWithFilteredResult(_0x28901e,_0x23cb59))[_0xfcf2('0xb0')](handleError(_0x28901e,null));};exports[_0xfcf2('0xc1')]=function(_0x4f6c2a,_0x27d3f0,_0x3b5fbe){return db[_0xfcf2('0x35')][_0xfcf2('0x5a')]({'where':{'id':_0x4f6c2a[_0xfcf2('0xb1')]['id']}})['then'](handleEntityNotFound(_0x27d3f0,null))[_0xfcf2('0x29')](function(_0x2bfdb8){if(_0x2bfdb8){return _0x2bfdb8[_0xfcf2('0xc2')](_0x4f6c2a[_0xfcf2('0x6f')][_0xfcf2('0xb6')],_[_0xfcf2('0xb7')](_0x4f6c2a[_0xfcf2('0x6f')],[_0xfcf2('0xb6'),'id'])||{})[_0xfcf2('0xc3')](function(){return db['Tag'][_0xfcf2('0xbf')]({'attributes':['id',_0xfcf2('0x2c'),_0xfcf2('0xc4')],'where':{'id':_0x4f6c2a['body'][_0xfcf2('0xb6')]}});})[_0xfcf2('0x29')](function(_0x2692b7){socket[_0xfcf2('0xc5')](_0xfcf2('0xc6'),{'id':Number(_0x4f6c2a[_0xfcf2('0xb1')]['id']),'tags':_0x2692b7||[]});return{'id':Number(_0x4f6c2a['params']['id']),'tags':_0x2692b7||[]};});}})[_0xfcf2('0x29')](respondWithResult(_0x27d3f0,null))[_0xfcf2('0xb0')](handleError(_0x27d3f0,null));};exports['removeTags']=function(_0x25a4a3,_0x248302,_0x15324d){return db['SmsInteraction'][_0xfcf2('0x5a')]({'where':{'id':_0x25a4a3['params']['id']}})[_0xfcf2('0x29')](handleEntityNotFound(_0x248302,null))[_0xfcf2('0x29')](function(_0x887d34){if(_0x887d34){return _0x887d34[_0xfcf2('0xc7')](_0x25a4a3[_0xfcf2('0x3b')][_0xfcf2('0xb6')]);}})[_0xfcf2('0x29')](respondWithStatusCode(_0x248302,null))['catch'](handleError(_0x248302,null));};exports[_0xfcf2('0xc8')]=function(_0xcab361,_0x214552){var _0x345cc9=moment()[_0xfcf2('0xc9')]()['toString']();var _0x34f9cd=path[_0xfcf2('0xca')](config['root'],_0xfcf2('0xcb'),'files','tmp');var _0x2af2dd=path[_0xfcf2('0xca')](config['root'],'server','files',_0xfcf2('0xcc'));var _0x437340=path[_0xfcf2('0xca')](_0x34f9cd,_0x345cc9);var _0x23a0c9=util['format'](_0xfcf2('0xcd'),_0xcab361[_0xfcf2('0xb1')]['id'],_0x345cc9);var _0xa28381=path[_0xfcf2('0xca')](_0x34f9cd,_0x23a0c9);var _0x162804=[];_0x162804['push']({'model':db['User'],'as':_0xfcf2('0x6c'),'attributes':['id',_0xfcf2('0x2f')],'raw':!![]});_0x162804['push']({'model':db[_0xfcf2('0xce')],'as':'Contact','attributes':['id',_0xfcf2('0xcf'),'lastName'],'raw':!![]});var _0x1483aa=[{'model':db[_0xfcf2('0xb9')],'as':'Messages','attributes':['id',_0xfcf2('0x6f'),_0xfcf2('0xd0'),'direction',_0xfcf2('0xd1'),_0xfcf2('0x7c')],'include':_0x162804}];_0x1483aa['push']({'model':db[_0xfcf2('0xd2')],'as':'Account','attributes':['id',_0xfcf2('0x2c')]});_0x1483aa[_0xfcf2('0x33')]({'model':db[_0xfcf2('0x6c')],'as':'Owner','attributes':['id',_0xfcf2('0x2f')]});return db[_0xfcf2('0x35')]['find']({'where':{'id':_0xcab361[_0xfcf2('0xb1')]['id']},'include':_0x1483aa})[_0xfcf2('0x29')](handleEntityNotFound(_0x214552,null))[_0xfcf2('0x29')](function(_0x9e413e){if(_0x9e413e){var _0x581592=_0x9e413e['get']({'plain':!![]});fs['mkdirSync'](_0x437340);var _0x73cf81={'channel':_0xfcf2('0xd3'),'account':_0x581592[_0xfcf2('0xd4')][_0xfcf2('0x2c')],'agent':_0x581592[_0xfcf2('0xd5')]?_0x581592[_0xfcf2('0xd5')][_0xfcf2('0x2f')]:_0xfcf2('0xd6'),'createdAt':moment(_0x581592[_0xfcf2('0xd0')])[_0xfcf2('0xbb')](_0xfcf2('0xbc'))[_0xfcf2('0x97')](),'closedAt':_0x581592[_0xfcf2('0xd7')]?moment(_0x581592['closedAt'])[_0xfcf2('0xbb')]('YYYY-MM-DD\x20HH:mm:ss')[_0xfcf2('0x97')]():'','disposition':_0x581592[_0xfcf2('0xd8')],'messages':_(_0x581592[_0xfcf2('0xd9')])['filter']({'secret':![]})[_0xfcf2('0x2e')](function(_0x31b794){return{'date':moment(_0x31b794[_0xfcf2('0xd0')])[_0xfcf2('0xbb')](_0xfcf2('0xbc'))[_0xfcf2('0x97')](),'sender':_0x31b794[_0xfcf2('0xda')]===_0xfcf2('0xdb')?_0x31b794[_0xfcf2('0x6c')]?_0x31b794[_0xfcf2('0x6c')][_0xfcf2('0x2f')]:'System':_0x31b794['Contact'][_0xfcf2('0xcf')]+(_0x31b794[_0xfcf2('0x5f')][_0xfcf2('0xdc')]?'\x20'+_0x31b794[_0xfcf2('0x5f')][_0xfcf2('0xdc')]:''),'body':_0x31b794[_0xfcf2('0x6f')],'direction':_0x31b794[_0xfcf2('0xda')]===_0xfcf2('0xdb')?'A':'C','secret':_0x31b794[_0xfcf2('0xd1')],'read':_0x31b794[_0xfcf2('0x7c')]};})[_0xfcf2('0x5c')]()};return ejs[_0xfcf2('0xdd')](path['join'](config[_0xfcf2('0xde')],_0xfcf2('0xcb'),_0xfcf2('0xdf'),_0xfcf2('0xe0')),{'interaction':_0x73cf81})[_0xfcf2('0x29')](function(_0x5cdc8c){var _0x486886=path['join'](_0x437340,_0xfcf2('0xe1')+_0x581592['id']+'-'+_0x345cc9+_0xfcf2('0xe2'));var _0x471b9d={'path':_0x486886,'channel':_0xfcf2('0xd3'),'interactionId':_0x581592['id']};return pdf[_0xfcf2('0xe3')](_0x5cdc8c,_0x471b9d);})['then'](function(){return new BPromise(function(_0x3832e2,_0x229cd9){zipdir(_0x437340,{'saveTo':_0xa28381},function(_0x33d67b,_0x5eac74){if(_0x33d67b)return _0x229cd9(_0x33d67b);return _0x3832e2(_0x5eac74);});})[_0xfcf2('0x29')](function(){return new BPromise(function(_0x515bb8,_0x9e746){rimraf(_0x437340,function(_0x9a8a01){if(_0x9a8a01)_0x9e746(_0x9a8a01);return _0x515bb8();});});})[_0xfcf2('0x29')](function(){return _0x214552[_0xfcf2('0xc8')](_0xa28381,_0x23a0c9,function(_0x72c71b){if(_0x72c71b){console[_0xfcf2('0xe4')](_0xfcf2('0xe5'),_0x72c71b);}else{fs[_0xfcf2('0xe6')](_0xa28381);}});});});}else{return _0x214552[_0xfcf2('0x1e')](0xc8);}})[_0xfcf2('0xb0')](handleError(_0x214552,null));};
\ No newline at end of file
+var _0xf014=['o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','all','rows','show','params','includeAll','include','options','create','body','describe','addMessage','SmsMessage','ids','findOne','format','YYYY-MM-DD\x20HH:mm:ss','findAll','setTags','omit','color','emit','smsInteractionTags:save','removeTags','download','unix','root','server','tmp','join','files','attachments','transcript-%d-%s.zip','CmContact','firstName','Messages','secret','SmsAccount','Account','Owner','get','mkdirSync','N.A.','closed','disposition','direction','System','lastName','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','Sms','createPdfFromHTML','err','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./smsInteraction.socket','sendStatus','status','json','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','stack','name','fullname','TagIds','Tags','split','forEach','push','catch','index','map','SmsInteraction','rawAttributes','key','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','field','from','tools_tags','select','u.id','u.fullname','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','sms_interactions','cm_contacts','o.id\x20=\x20i.UserId','a.id\x20=\x20i.SmsAccountId','sms_messages','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','type','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','end','isEmpty','i.SmsAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','null','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','t.id\x20IN\x20?','resolve','SmsAccountId','i.SmsAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','i.*','c.firstName','Contact.firstName','Contact.lastName','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','Contact.fax'];(function(_0x288e1e,_0x4ca6aa){var _0x2819c9=function(_0x726034){while(--_0x726034){_0x288e1e['push'](_0x288e1e['shift']());}};_0x2819c9(++_0x4ca6aa);}(_0xf014,0x126));var _0x4f01=function(_0x911aa,_0x5cb8b5){_0x911aa=_0x911aa-0x0;var _0x327202=_0xf014[_0x911aa];return _0x327202;};'use strict';var emlformat=require(_0x4f01('0x0'));var rimraf=require(_0x4f01('0x1'));var zipdir=require(_0x4f01('0x2'));var jsonpatch=require(_0x4f01('0x3'));var rp=require(_0x4f01('0x4'));var moment=require(_0x4f01('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x4f01('0x6'));var util=require(_0x4f01('0x7'));var path=require(_0x4f01('0x8'));var sox=require(_0x4f01('0x9'));var csv=require(_0x4f01('0xa'));var ejs=require(_0x4f01('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4f01('0xc'));var squel=require(_0x4f01('0xd'));var crypto=require('crypto');var jsforce=require(_0x4f01('0xe'));var deskjs=require(_0x4f01('0xf'));var toCsv=require(_0x4f01('0xa'));var querystring=require('querystring');var Papa=require(_0x4f01('0x10'));var Redis=require(_0x4f01('0x11'));var authService=require(_0x4f01('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x4f01('0x13'));var pdf=require(_0x4f01('0x14'));var hardwareService=require(_0x4f01('0x15'));var logger=require(_0x4f01('0x16'))(_0x4f01('0x17'));var utils=require(_0x4f01('0x18'));var config=require(_0x4f01('0x19'));var licenseUtil=require(_0x4f01('0x1a'));var db=require(_0x4f01('0x1b'))['db'];config['redis']=_['defaults'](config[_0x4f01('0x1c')],{'host':_0x4f01('0x1d'),'port':0x18eb});var socket=require(_0x4f01('0x1e'))(new Redis(config[_0x4f01('0x1c')]));require(_0x4f01('0x1f'))['register'](socket);function respondWithStatusCode(_0x4938d5,_0xd3e64){_0xd3e64=_0xd3e64||0xcc;return function(_0x51c73c){if(_0x51c73c){return _0x4938d5[_0x4f01('0x20')](_0xd3e64);}return _0x4938d5[_0x4f01('0x21')](_0xd3e64)['end']();};}function respondWithResult(_0x3f536a,_0x39e07f){_0x39e07f=_0x39e07f||0xc8;return function(_0x422f4e){if(_0x422f4e){return _0x3f536a[_0x4f01('0x21')](_0x39e07f)[_0x4f01('0x22')](_0x422f4e);}};}function respondWithFilteredResult(_0x527504,_0x2b5a9a){return function(_0x425548){if(_0x425548){var _0x411c0d=typeof _0x2b5a9a['offset']==='undefined'&&typeof _0x2b5a9a[_0x4f01('0x23')]==='undefined';var _0x55b97a=_0x425548[_0x4f01('0x24')];var _0x2cae64=_0x411c0d?0x0:_0x2b5a9a[_0x4f01('0x25')];var _0x17df0f=_0x411c0d?_0x425548[_0x4f01('0x24')]:_0x2b5a9a['offset']+_0x2b5a9a[_0x4f01('0x23')];var _0x440e59;if(_0x17df0f>=_0x55b97a){_0x17df0f=_0x55b97a;_0x440e59=0xc8;}else{_0x440e59=0xce;}_0x527504[_0x4f01('0x21')](_0x440e59);return _0x527504[_0x4f01('0x26')](_0x4f01('0x27'),_0x2cae64+'-'+_0x17df0f+'/'+_0x55b97a)[_0x4f01('0x22')](_0x425548);}return null;};}function patchUpdates(_0x4c2df8){return function(_0x76db1b){try{jsonpatch['apply'](_0x76db1b,_0x4c2df8,!![]);}catch(_0x2911dc){return BPromise[_0x4f01('0x28')](_0x2911dc);}return _0x76db1b[_0x4f01('0x29')]();};}function saveUpdates(_0x359696,_0x54ced2){return function(_0x4c98aa){if(_0x4c98aa){return _0x4c98aa[_0x4f01('0x2a')](_0x359696)[_0x4f01('0x2b')](function(_0x410560){return _0x410560;});}return null;};}function removeEntity(_0x2250af,_0x528ba2){return function(_0x247bea){if(_0x247bea){return _0x247bea[_0x4f01('0x2c')]()['then'](function(){_0x2250af[_0x4f01('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x328e5d,_0x297a1c){return function(_0x3f7ec2){if(!_0x3f7ec2){_0x328e5d[_0x4f01('0x20')](0x194);}return _0x3f7ec2;};}function handleError(_0x2cafcf,_0x186b1d){_0x186b1d=_0x186b1d||0x1f4;return function(_0x79055){logger['error'](_0x79055[_0x4f01('0x2d')]);if(_0x79055[_0x4f01('0x2e')]){delete _0x79055['name'];}_0x2cafcf['status'](_0x186b1d)['send'](_0x79055);};}function getInteractionUsers(_0x6e846d,_0x5bf6ba){return new BPromise(function(_0x5596e6,_0x57d1e7){try{if(_0x5bf6ba[_0x6e846d['id']]){_0x6e846d['Users']=_['map'](_0x5bf6ba[_0x6e846d['id']],function(_0x59e4ca){return{'id':_0x59e4ca['id'],'fullname':_0x59e4ca[_0x4f01('0x2f')]};});}}catch(_0x109bfe){_0x57d1e7(_0x109bfe);}_0x5596e6(_0x6e846d);});}function getInteractionTags(_0x435b1e,_0xca505c){return new BPromise(function(_0x4c9d9b,_0x473f23){try{if(_0x435b1e[_0x4f01('0x30')]){_0x435b1e[_0x4f01('0x31')]=[];_0x435b1e[_0x4f01('0x30')][_0x4f01('0x32')](',')[_0x4f01('0x33')](function(_0x423725){_0x435b1e[_0x4f01('0x31')][_0x4f01('0x34')](_0xca505c[_0x423725]);});}delete _0x435b1e[_0x4f01('0x30')];}catch(_0x4c10c0){_0x473f23(_0x4c10c0);}_0x4c9d9b(_0x435b1e);});}function updateSmsInteraction(_0x28e375,_0x1d2fc8,_0x191bc9){return new BPromise(function(_0x118dd0,_0x256434){return getInteractionUsers(_0x28e375,_0x191bc9)[_0x4f01('0x2b')](function(_0x53a251){return getInteractionTags(_0x53a251,_0x1d2fc8);})[_0x4f01('0x2b')](function(_0x16ad23){_0x118dd0(_0x16ad23);})[_0x4f01('0x35')](function(_0x398cbf){_0x256434(_0x398cbf);});});}exports[_0x4f01('0x36')]=function(_0x564915,_0x46e829){var _0x33c119={},_0x57c336={},_0x316f0f={'count':0x0,'rows':[]};var _0x44a239=_[_0x4f01('0x37')](db[_0x4f01('0x38')][_0x4f01('0x39')],function(_0x27c986){return{'name':_0x27c986['fieldName'],'type':_0x27c986['type'][_0x4f01('0x3a')]};});_0x57c336['model']=_[_0x4f01('0x37')](_0x44a239,'name');_0x57c336[_0x4f01('0x3b')]=_[_0x4f01('0x3c')](_0x564915[_0x4f01('0x3b')]);_0x57c336[_0x4f01('0x3d')]=_['intersection'](_0x57c336[_0x4f01('0x3e')],_0x57c336[_0x4f01('0x3b')]);_0x33c119['attributes']=_[_0x4f01('0x3f')](_0x57c336[_0x4f01('0x3e')],qs[_0x4f01('0x40')](_0x564915[_0x4f01('0x3b')][_0x4f01('0x40')]));_0x33c119['attributes']=_0x33c119[_0x4f01('0x41')][_0x4f01('0x42')]?_0x33c119[_0x4f01('0x41')]:_0x57c336[_0x4f01('0x3e')];if(!_0x564915[_0x4f01('0x3b')][_0x4f01('0x43')](_0x4f01('0x44'))){_0x33c119[_0x4f01('0x23')]=qs[_0x4f01('0x23')](_0x564915[_0x4f01('0x3b')][_0x4f01('0x23')]);_0x33c119[_0x4f01('0x25')]=qs[_0x4f01('0x25')](_0x564915[_0x4f01('0x3b')]['offset']);}_0x33c119['order']=qs[_0x4f01('0x45')](_0x564915[_0x4f01('0x3b')][_0x4f01('0x45')]);_0x33c119[_0x4f01('0x46')]=qs['filters'](_[_0x4f01('0x47')](_0x564915[_0x4f01('0x3b')],_0x57c336['filters']),_0x44a239);var _0x558a44=[];var _0x1a488c=squel['select']()[_0x4f01('0x48')]('id')[_0x4f01('0x48')](_0x4f01('0x2e'))['field']('color')[_0x4f01('0x49')](_0x4f01('0x4a'));var _0x52dd55=squel[_0x4f01('0x4b')]()[_0x4f01('0x48')](_0x4f01('0x4c'))[_0x4f01('0x48')](_0x4f01('0x4d'))[_0x4f01('0x48')]('ui.SmsInteractionId')[_0x4f01('0x49')](_0x4f01('0x4e'),'ui')[_0x4f01('0x4f')](_0x4f01('0x50'),'u',_0x4f01('0x51'));var _0x39b114=squel['select']()['from'](_0x4f01('0x52'),'i')['left_join'](_0x4f01('0x53'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x4f01('0x4f')](_0x4f01('0x50'),'o',_0x4f01('0x54'))[_0x4f01('0x4f')]('sms_accounts','a',_0x4f01('0x55'))[_0x4f01('0x4f')](_0x4f01('0x56'),'me','me.SmsInteractionId\x20=\x20i.id')['left_join'](_0x4f01('0x57'),'it',_0x4f01('0x58'))['left_join']('tools_tags','t',_0x4f01('0x59'));var _0x3eabef=squel[_0x4f01('0x5a')]();var _0x5c90b7=[];var _0x3a70d4=squel[_0x4f01('0x5a')]();var _0x199fb7;if(_0x564915[_0x4f01('0x3b')][_0x4f01('0x5b')]){_0x199fb7=as[_0x4f01('0x5c')](_0x564915['query'][_0x4f01('0x5b')]);var _0x449db6=_0x199fb7[_0x4f01('0x5d')];for(var _0x57ddb0=0x0;_0x57ddb0<_0x199fb7['conditions'][_0x4f01('0x42')];_0x57ddb0++){var _0x2849bf=_0x199fb7[_0x4f01('0x5e')][_0x57ddb0];var _0x7e0e34='i';var _0xeced21=_[_0x4f01('0x5f')](_0x44a239,[_0x4f01('0x2e'),_0x2849bf[_0x4f01('0x48')]]);if(!_0xeced21){switch(_0x2849bf['field']){case _0x4f01('0x60'):if(_0x2849bf[_0x4f01('0x61')]==0x1){_0x39b114[_0x4f01('0x62')]('`'+_0x2849bf['field']+_0x4f01('0x63'));}else{_0x39b114[_0x4f01('0x62')]('`'+_0x2849bf[_0x4f01('0x48')]+_0x4f01('0x64'));}break;case _0x4f01('0x65'):if(_0x2849bf[_0x4f01('0x66')]===_0x4f01('0x67')){if(_0x2849bf[_0x4f01('0x61')][_0x4f01('0x32')]('\x20')[_0x4f01('0x42')]>0x1){_0x3eabef[_0x449db6](_0x4f01('0x68'),qs[_0x4f01('0x69')](_0x2849bf['value']),null);}else{var _0x506238='%'+_0x2849bf['value']+'%';_0x3eabef[_0x449db6]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x506238,_0x506238,_0x506238);}}else{_0xeced21=_[_0x4f01('0x5f')](_0x44a239,[_0x4f01('0x2e'),_0x4f01('0x6a')]);_0x2849bf['field']='ContactId';_0x3deef6=as['buildExpression'](_0x7e0e34,_0xeced21[_0x4f01('0x6b')],_0x2849bf);_0x3eabef[_0x449db6](_0x3deef6[_0x4f01('0x6c')],_0x3deef6[_0x4f01('0x61')][_0x4f01('0x6d')],_0x3deef6[_0x4f01('0x61')]['end']);}break;case'Tag':var _0x2a9d97=_0x2849bf[_0x4f01('0x61')][_0x4f01('0x32')](',')[_0x4f01('0x37')](function(_0x260ae8){return Number(_0x260ae8);});_0x2a9d97['forEach'](function(_0x556b74){_0x3a70d4['or'](_0x4f01('0x6e'),'%,'+_0x556b74+',%');});_0x5c90b7=_[_0x4f01('0x6f')](_0x5c90b7,_0x2a9d97);break;case _0x4f01('0x70'):if(_0x2849bf[_0x4f01('0x66')]===_0x4f01('0x67')){_0x3eabef[_0x449db6](_0x4f01('0x71'),'%'+_0x2849bf['value']+'%',null);}else{_0xeced21=_[_0x4f01('0x5f')](_0x44a239,[_0x4f01('0x2e'),_0x4f01('0x72')]);_0x2849bf['field']='UserId';_0x3deef6=as[_0x4f01('0x73')](_0x7e0e34,_0xeced21[_0x4f01('0x6b')],_0x2849bf);_0x3eabef[_0x449db6](_0x3deef6['text'],_0x3deef6[_0x4f01('0x61')][_0x4f01('0x6d')],_0x3deef6[_0x4f01('0x61')][_0x4f01('0x74')]);}break;case'body':_0x3deef6=as[_0x4f01('0x73')]('me',null,_0x2849bf);_0x3eabef[_0x449db6](_0x3deef6[_0x4f01('0x6c')],_0x3deef6[_0x4f01('0x61')][_0x4f01('0x6d')],_0x3deef6[_0x4f01('0x61')][_0x4f01('0x74')]);break;}}else{var _0x3deef6=as['buildExpression'](_0x7e0e34,_0xeced21[_0x4f01('0x6b')],_0x2849bf);_0x3eabef[_0x449db6](_0x3deef6['text'],_0x3deef6[_0x4f01('0x61')][_0x4f01('0x6d')],_0x3deef6[_0x4f01('0x61')][_0x4f01('0x74')]);}}}else{var _0x69606e=_(_0x564915[_0x4f01('0x3b')])[_0x4f01('0x3c')]()[_0x4f01('0x37')](function(_0x1d2fd6){return _['some'](_0x44a239,[_0x4f01('0x2e'),_0x1d2fd6])?_0x1d2fd6:undefined;})['compact']()['value']();if(!_[_0x4f01('0x75')](_0x69606e)){_0x69606e[_0x4f01('0x33')](function(_0x2186f2){if(_0x2186f2==='SmsAccountId'){_0x39b114[_0x4f01('0x46')](_0x4f01('0x76'),[][_0x4f01('0x77')](_0x564915['query'][_0x2186f2]));}else if(_0x2186f2===_0x4f01('0x78')){var _0x109e39=JSON[_0x4f01('0x79')](_0x564915[_0x4f01('0x3b')][_0x2186f2])[_0x4f01('0x7a')];var _0x345b2d=JSON[_0x4f01('0x79')](_0x564915[_0x4f01('0x3b')][_0x2186f2])[_0x4f01('0x7b')];_0x39b114[_0x4f01('0x46')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x109e39,_0x345b2d);}else{if(_0x564915['query'][_0x2186f2]===_0x4f01('0x7c')){_0x39b114[_0x4f01('0x46')]('i.'+_0x2186f2+'\x20IS\x20NULL');}else{_0x39b114[_0x4f01('0x46')]('i.'+_0x2186f2+'\x20=\x20?',_0x564915['query'][_0x2186f2]);}}});}if(_0x564915[_0x4f01('0x3b')][_0x4f01('0x7d')]){if(_0x564915[_0x4f01('0x3b')][_0x4f01('0x7d')]==0x1){_0x39b114[_0x4f01('0x62')](_0x4f01('0x7e'));}else{_0x39b114[_0x4f01('0x62')](_0x4f01('0x7f'));}}if(_0x564915[_0x4f01('0x3b')]['tag']){_0x5c90b7=_[_0x4f01('0x80')](_0x564915[_0x4f01('0x3b')][_0x4f01('0x81')])?_0x564915[_0x4f01('0x3b')]['tag']:new Array(_0x564915[_0x4f01('0x3b')][_0x4f01('0x81')]);_0x5c90b7[_0x4f01('0x33')](function(_0x536598){_0x3a70d4['or'](_0x4f01('0x6e'),'%,'+_0x536598+',%');});}if(_0x564915['query'][_0x4f01('0x82')]){var _0x561a9e=_0x564915[_0x4f01('0x3b')]['filter'][_0x4f01('0x83')]('\x5c','\x5c\x5c')[_0x4f01('0x83')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x561a9e)){_0x3eabef['or'](_0x4f01('0x84'),_0x561a9e+'%')['or'](_0x4f01('0x85'),_0x561a9e+'%');}else{_0x3eabef['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x4f01('0x69')](_0x561a9e))['or'](_0x4f01('0x86'),_0x561a9e+'%');}}}_0x39b114[_0x4f01('0x46')](_0x3eabef);_0x39b114[_0x4f01('0x87')](_0x4f01('0x88'));var _0x43999a={'type':db[_0x4f01('0x89')][_0x4f01('0x8a')]['SELECT'],'raw':!![]};var _0x13ad87=_0x39b114['clone']();_0x13ad87[_0x4f01('0x48')](_0x4f01('0x88'));_0x13ad87['field'](_0x4f01('0x8b'),_0x4f01('0x60'));if(_0x33c119['order']){_0x33c119[_0x4f01('0x8c')][_0x4f01('0x33')](function(_0x3fe9fa){var _0x34c510=_0x3fe9fa[0x0]===_0x4f01('0x8d')?_0x3fe9fa[0x0]:'i.'+_0x3fe9fa[0x0];_0x39b114[_0x4f01('0x8c')](_0x34c510,_0x3fe9fa[0x1]==='DESC'?![]:!![]);});}if(!_['isEmpty'](_0x5c90b7)){_0x39b114[_0x4f01('0x62')](_0x3a70d4);_0x13ad87[_0x4f01('0x46')](_0x4f01('0x8e'),_0x5c90b7);}BPromise[_0x4f01('0x8f')]()['then'](function(){if(!_0x199fb7){if(_0x564915[_0x4f01('0x3b')][_0x4f01('0x90')])return;_0x13ad87[_0x4f01('0x46')](_0x4f01('0x91'));_0x39b114[_0x4f01('0x46')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x564915['user'][_0x4f01('0x92')]!==_0x4f01('0x93'))return;return _0x564915[_0x4f01('0x94')][_0x4f01('0x95')]({'attributes':['id'],'raw':!![]})['then'](function(_0x372e7f){if(_[_0x4f01('0x75')](_0x372e7f)){_0x13ad87[_0x4f01('0x46')](_0x4f01('0x96'));_0x39b114['where']('i.SmsAccountId\x20IS\x20NULL');}else{_0x13ad87[_0x4f01('0x46')]('i.SmsAccountId\x20IN\x20?',_['map'](_0x372e7f,'id'));_0x39b114[_0x4f01('0x46')]('i.SmsAccountId\x20IN\x20?',_[_0x4f01('0x37')](_0x372e7f,'id'));}});})['then'](function(){if(_0x564915['user'][_0x4f01('0x92')]===_0x4f01('0x93')&&!_0x199fb7&&!_0x564915['query'][_0x4f01('0x90')])return[];return db['sequelize'][_0x4f01('0x3b')](_0x13ad87['toString'](),_0x43999a);})[_0x4f01('0x2b')](function(_0x5e1bb2){_0x316f0f[_0x4f01('0x24')]=_0x5e1bb2[_0x4f01('0x42')];if(_0x316f0f[_0x4f01('0x24')]===0x0)return[];return db[_0x4f01('0x97')][_0x4f01('0x3b')](_0x1a488c[_0x4f01('0x98')](),_0x43999a)[_0x4f01('0x2b')](function(_0x55e393){_0x558a44=_[_0x4f01('0x99')](_0x55e393,'id');_0x43999a=_[_0x4f01('0x9a')](_0x43999a,{'model':db['SmsInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x564915[_0x4f01('0x3b')][_0x4f01('0x40')]){_0x33c119['attributes'][_0x4f01('0x33')](function(_0x391e09){_0x39b114[_0x4f01('0x48')]('i.'+_0x391e09);});}else{_0x39b114[_0x4f01('0x48')](_0x4f01('0x8b'),_0x4f01('0x60'));_0x39b114[_0x4f01('0x48')](_0x4f01('0x9b'),_0x4f01('0x9c'));_0x39b114[_0x4f01('0x48')](_0x4f01('0x9d'),'Account.mandatoryDisposition');_0x39b114[_0x4f01('0x48')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName');_0x39b114[_0x4f01('0x48')](_0x4f01('0x9e'));_0x39b114[_0x4f01('0x48')](_0x4f01('0x9f'),_0x4f01('0xa0'));_0x39b114[_0x4f01('0x48')]('c.lastName',_0x4f01('0xa1'));_0x39b114[_0x4f01('0x48')]('c.email',_0x4f01('0xa2'));_0x39b114[_0x4f01('0x48')](_0x4f01('0xa3'),'Contact.phone');_0x39b114['field'](_0x4f01('0xa4'),_0x4f01('0xa5'));_0x39b114['field'](_0x4f01('0xa6'),_0x4f01('0xa7'));_0x39b114[_0x4f01('0x48')](_0x4f01('0xa8'),_0x4f01('0xa9'));_0x39b114[_0x4f01('0x48')](_0x4f01('0xaa'),_0x4f01('0xab'));_0x39b114['field'](_0x4f01('0xac'),_0x4f01('0x30'));}if(_0x33c119[_0x4f01('0x23')])_0x39b114['limit'](_0x33c119['limit']);if(_0x33c119[_0x4f01('0x25')])_0x39b114['offset'](_0x33c119[_0x4f01('0x25')]);return db['sequelize'][_0x4f01('0x3b')](_0x39b114[_0x4f01('0x98')](),_0x43999a);})[_0x4f01('0x2b')](function(_0x194fda){if(_0x194fda[_0x4f01('0x42')]>0x0)_0x52dd55[_0x4f01('0x46')](_0x4f01('0xad'),_[_0x4f01('0x37')](_0x194fda,'id'));return db['sequelize']['query'](_0x52dd55['toString'](),_0x43999a)[_0x4f01('0x2b')](function(_0x332b2c){var _0x417b77=_[_0x4f01('0xae')](_0x332b2c,_0x4f01('0xaf'));var _0x18cc7f=[];_0x194fda[_0x4f01('0x33')](function(_0x332aff){_0x18cc7f[_0x4f01('0x34')](updateSmsInteraction(_0x332aff,_0x558a44,_0x417b77));});return BPromise[_0x4f01('0xb0')](_0x18cc7f);});});})[_0x4f01('0x2b')](function(_0x524da1){_0x316f0f[_0x4f01('0xb1')]=_0x524da1;return _0x316f0f;})[_0x4f01('0x2b')](respondWithFilteredResult(_0x46e829,_0x33c119))[_0x4f01('0x35')](handleError(_0x46e829,null));};exports[_0x4f01('0xb2')]=function(_0x102db5,_0x4781bf){var _0x42e0d8={'raw':![],'where':{'id':_0x102db5[_0x4f01('0xb3')]['id']}},_0x34ea5c={};_0x34ea5c[_0x4f01('0x3e')]=_['keys'](db[_0x4f01('0x38')][_0x4f01('0x39')]);_0x34ea5c[_0x4f01('0x3b')]=_[_0x4f01('0x3c')](_0x102db5['query']);_0x34ea5c['filters']=_[_0x4f01('0x3f')](_0x34ea5c[_0x4f01('0x3e')],_0x34ea5c['query']);_0x42e0d8[_0x4f01('0x41')]=_[_0x4f01('0x3f')](_0x34ea5c[_0x4f01('0x3e')],qs['fields'](_0x102db5[_0x4f01('0x3b')][_0x4f01('0x40')]));_0x42e0d8[_0x4f01('0x41')]=_0x42e0d8['attributes'][_0x4f01('0x42')]?_0x42e0d8[_0x4f01('0x41')]:_0x34ea5c['model'];if(_0x102db5[_0x4f01('0x3b')][_0x4f01('0xb4')]){_0x42e0d8[_0x4f01('0xb5')]=[{'all':!![]}];}_0x42e0d8=_[_0x4f01('0x9a')]({},_0x42e0d8,_0x102db5[_0x4f01('0xb6')]);return db['SmsInteraction'][_0x4f01('0x5f')](_0x42e0d8)[_0x4f01('0x2b')](handleEntityNotFound(_0x4781bf,null))[_0x4f01('0x2b')](respondWithResult(_0x4781bf,null))[_0x4f01('0x35')](handleError(_0x4781bf,null));};exports[_0x4f01('0xb7')]=function(_0x44752f,_0x4b8eca){return db[_0x4f01('0x38')][_0x4f01('0xb7')](_0x44752f[_0x4f01('0xb8')],{})['then'](respondWithResult(_0x4b8eca,0xc9))[_0x4f01('0x35')](handleError(_0x4b8eca,null));};exports[_0x4f01('0x2a')]=function(_0x5eac02,_0x4b7df0){if(_0x5eac02['body']['id']){delete _0x5eac02['body']['id'];}return db[_0x4f01('0x38')]['find']({'where':{'id':_0x5eac02['params']['id']}})[_0x4f01('0x2b')](handleEntityNotFound(_0x4b7df0,null))[_0x4f01('0x2b')](saveUpdates(_0x5eac02[_0x4f01('0xb8')],null))['then'](respondWithResult(_0x4b7df0,null))[_0x4f01('0x35')](handleError(_0x4b7df0,null));};exports['destroy']=function(_0x4d172e,_0x4b3aec){return db['SmsInteraction'][_0x4f01('0x5f')]({'where':{'id':_0x4d172e[_0x4f01('0xb3')]['id']}})['then'](handleEntityNotFound(_0x4b3aec,null))['then'](removeEntity(_0x4b3aec,null))[_0x4f01('0x35')](handleError(_0x4b3aec,null));};exports['describe']=function(_0x54893f,_0x4bc36a){return db[_0x4f01('0x38')][_0x4f01('0xb9')]()[_0x4f01('0x2b')](respondWithResult(_0x4bc36a,null))['catch'](handleError(_0x4bc36a,null));};exports[_0x4f01('0xba')]=function(_0x42766d,_0x508481,_0x1aa87b){return db[_0x4f01('0xbb')][_0x4f01('0x5f')]({'where':{'id':_0x42766d[_0x4f01('0xb3')]['id']}})[_0x4f01('0x2b')](handleEntityNotFound(_0x508481,null))[_0x4f01('0x2b')](function(_0x9fc94d){if(_0x9fc94d){return _0x9fc94d[_0x4f01('0xba')](_0x42766d[_0x4f01('0xb8')][_0x4f01('0xbc')],_['omit'](_0x42766d[_0x4f01('0xb8')],[_0x4f01('0xbc'),'id'])||{});}})[_0x4f01('0x2b')](respondWithResult(_0x508481,null))['catch'](handleError(_0x508481,null));};exports['getMessages']=function(_0x23ff1f,_0x251b23,_0x4f5de7){var _0x5ed57a={'raw':![],'where':{}};var _0x3d3196={};var _0x122177={'count':0x0,'rows':[]};return db[_0x4f01('0x38')][_0x4f01('0xbd')]({'where':{'id':_0x23ff1f[_0x4f01('0xb3')]['id']}})['then'](handleEntityNotFound(_0x251b23,null))[_0x4f01('0x2b')](function(_0x2e9b1a){if(_0x2e9b1a){_0x3d3196[_0x4f01('0x3e')]=_[_0x4f01('0x3c')](db[_0x4f01('0xbb')]['rawAttributes']);_0x3d3196[_0x4f01('0x3b')]=_[_0x4f01('0x3c')](_0x23ff1f[_0x4f01('0x3b')]);_0x3d3196[_0x4f01('0x3d')]=_[_0x4f01('0x3f')](_0x3d3196['model'],_0x3d3196[_0x4f01('0x3b')]);_0x5ed57a[_0x4f01('0x41')]=_[_0x4f01('0x3f')](_0x3d3196[_0x4f01('0x3e')],qs[_0x4f01('0x40')](_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0x40')]));_0x5ed57a['attributes']=_0x5ed57a[_0x4f01('0x41')]['length']?_0x5ed57a['attributes']:_0x3d3196[_0x4f01('0x3e')];if(!_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0x43')](_0x4f01('0x44'))){_0x5ed57a[_0x4f01('0x23')]=qs[_0x4f01('0x23')](_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0x23')]);_0x5ed57a[_0x4f01('0x25')]=qs['offset'](_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0x25')]);}_0x5ed57a[_0x4f01('0x8c')]=qs['sort'](_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0x45')]);_0x5ed57a[_0x4f01('0x46')]=qs[_0x4f01('0x3d')](_['pick'](_0x23ff1f[_0x4f01('0x3b')],_0x3d3196[_0x4f01('0x3d')]));_0x5ed57a['where'][_0x4f01('0xaf')]=_0x2e9b1a['id'];if(_0x23ff1f[_0x4f01('0x3b')]['filter']){_0x5ed57a[_0x4f01('0x46')]=_['merge'](_0x5ed57a[_0x4f01('0x46')],{'$or':_[_0x4f01('0x37')](_0x5ed57a[_0x4f01('0x41')],function(_0x25f90a){var _0x28edbd={};_0x28edbd[_0x25f90a]={'$like':'%'+_0x23ff1f['query'][_0x4f01('0x82')]+'%'};return _0x28edbd;})});}if(_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0x7a')]){var _0x28de35=_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0x7a')][_0x4f01('0x32')](',');var _0x48a4b7={};_0x48a4b7[_0x28de35[0x0]]={'$gte':moment(_0x28de35[0x1])[_0x4f01('0xbe')](_0x4f01('0xbf'))};_0x5ed57a[_0x4f01('0x46')]=_[_0x4f01('0x9a')](_0x5ed57a[_0x4f01('0x46')],_0x48a4b7);}_0x5ed57a=_[_0x4f01('0x9a')]({},_0x5ed57a,_0x23ff1f[_0x4f01('0xb6')]);return db[_0x4f01('0xbb')]['count']({'where':_0x5ed57a[_0x4f01('0x46')]})[_0x4f01('0x2b')](function(_0x431e97){_0x122177[_0x4f01('0x24')]=_0x431e97;if(_0x23ff1f[_0x4f01('0x3b')][_0x4f01('0xb4')]){_0x5ed57a[_0x4f01('0xb5')]=[{'all':!![]}];}return db[_0x4f01('0xbb')][_0x4f01('0xc0')](_0x5ed57a);})[_0x4f01('0x2b')](function(_0x178396){_0x122177[_0x4f01('0xb1')]=_0x178396;return _0x122177;});}})['then'](respondWithFilteredResult(_0x251b23,_0x5ed57a))[_0x4f01('0x35')](handleError(_0x251b23,null));};exports['addTags']=function(_0x218851,_0x21e132,_0x35a4b7){return db[_0x4f01('0x38')]['find']({'where':{'id':_0x218851[_0x4f01('0xb3')]['id']}})[_0x4f01('0x2b')](handleEntityNotFound(_0x21e132,null))[_0x4f01('0x2b')](function(_0x293d02){if(_0x293d02){return _0x293d02[_0x4f01('0xc1')](_0x218851[_0x4f01('0xb8')]['ids'],_[_0x4f01('0xc2')](_0x218851[_0x4f01('0xb8')],[_0x4f01('0xbc'),'id'])||{})['spread'](function(){return db['Tag']['findAll']({'attributes':['id','name',_0x4f01('0xc3')],'where':{'id':_0x218851[_0x4f01('0xb8')][_0x4f01('0xbc')]}});})[_0x4f01('0x2b')](function(_0x1565f2){socket[_0x4f01('0xc4')](_0x4f01('0xc5'),{'id':Number(_0x218851[_0x4f01('0xb3')]['id']),'tags':_0x1565f2||[]});return{'id':Number(_0x218851[_0x4f01('0xb3')]['id']),'tags':_0x1565f2||[]};});}})['then'](respondWithResult(_0x21e132,null))[_0x4f01('0x35')](handleError(_0x21e132,null));};exports[_0x4f01('0xc6')]=function(_0x1e86d6,_0x238273,_0x25a63b){return db['SmsInteraction']['find']({'where':{'id':_0x1e86d6[_0x4f01('0xb3')]['id']}})[_0x4f01('0x2b')](handleEntityNotFound(_0x238273,null))['then'](function(_0xea0e65){if(_0xea0e65){return _0xea0e65[_0x4f01('0xc6')](_0x1e86d6['query']['ids']);}})[_0x4f01('0x2b')](respondWithStatusCode(_0x238273,null))[_0x4f01('0x35')](handleError(_0x238273,null));};exports[_0x4f01('0xc7')]=function(_0x5e7db2,_0x31933a){var _0xc0a098=moment()[_0x4f01('0xc8')]()['toString']();var _0xaaf926=path['join'](config[_0x4f01('0xc9')],_0x4f01('0xca'),'files',_0x4f01('0xcb'));var _0x3142cb=path[_0x4f01('0xcc')](config[_0x4f01('0xc9')],_0x4f01('0xca'),_0x4f01('0xcd'),_0x4f01('0xce'));var _0x5f8ef=path['join'](_0xaaf926,_0xc0a098);var _0x2a50a9=util[_0x4f01('0xbe')](_0x4f01('0xcf'),_0x5e7db2['params']['id'],_0xc0a098);var _0x4c7d9f=path[_0x4f01('0xcc')](_0xaaf926,_0x2a50a9);var _0x37b774=[];_0x37b774[_0x4f01('0x34')]({'model':db[_0x4f01('0x70')],'as':_0x4f01('0x70'),'attributes':['id','fullname'],'raw':!![]});_0x37b774[_0x4f01('0x34')]({'model':db[_0x4f01('0xd0')],'as':_0x4f01('0x65'),'attributes':['id',_0x4f01('0xd1'),'lastName'],'raw':!![]});var _0x2e8f7c=[{'model':db['SmsMessage'],'as':_0x4f01('0xd2'),'attributes':['id',_0x4f01('0xb8'),_0x4f01('0x78'),'direction',_0x4f01('0xd3'),_0x4f01('0x7d')],'include':_0x37b774}];_0x2e8f7c[_0x4f01('0x34')]({'model':db[_0x4f01('0xd4')],'as':_0x4f01('0xd5'),'attributes':['id',_0x4f01('0x2e')]});_0x2e8f7c[_0x4f01('0x34')]({'model':db[_0x4f01('0x70')],'as':_0x4f01('0xd6'),'attributes':['id',_0x4f01('0x2f')]});return db[_0x4f01('0x38')]['find']({'where':{'id':_0x5e7db2[_0x4f01('0xb3')]['id']},'include':_0x2e8f7c})['then'](handleEntityNotFound(_0x31933a,null))['then'](function(_0x211282){if(_0x211282){var _0x2b410c=_0x211282[_0x4f01('0xd7')]({'plain':!![]});fs[_0x4f01('0xd8')](_0x5f8ef);var _0x197f12={'channel':'Sms','account':_0x2b410c['Account'][_0x4f01('0x2e')],'agent':_0x2b410c[_0x4f01('0xd6')]?_0x2b410c['Owner']['fullname']:_0x4f01('0xd9'),'createdAt':moment(_0x2b410c['createdAt'])[_0x4f01('0xbe')](_0x4f01('0xbf'))['toString'](),'closedAt':_0x2b410c[_0x4f01('0xda')]?moment(_0x2b410c['closedAt'])[_0x4f01('0xbe')](_0x4f01('0xbf'))['toString']():'','disposition':_0x2b410c[_0x4f01('0xdb')],'messages':_(_0x2b410c[_0x4f01('0xd2')])[_0x4f01('0x82')]({'secret':![]})['map'](function(_0x453c45){return{'date':moment(_0x453c45[_0x4f01('0x78')])[_0x4f01('0xbe')](_0x4f01('0xbf'))[_0x4f01('0x98')](),'sender':_0x453c45[_0x4f01('0xdc')]==='out'?_0x453c45['User']?_0x453c45[_0x4f01('0x70')][_0x4f01('0x2f')]:_0x4f01('0xdd'):_0x453c45['Contact']['firstName']+(_0x453c45[_0x4f01('0x65')][_0x4f01('0xde')]?'\x20'+_0x453c45['Contact'][_0x4f01('0xde')]:''),'body':_0x453c45[_0x4f01('0xb8')],'direction':_0x453c45['direction']==='out'?'A':'C','secret':_0x453c45[_0x4f01('0xd3')],'read':_0x453c45[_0x4f01('0x7d')]};})[_0x4f01('0x61')]()};return ejs[_0x4f01('0xdf')](path[_0x4f01('0xcc')](config[_0x4f01('0xc9')],_0x4f01('0xca'),_0x4f01('0xe0'),_0x4f01('0xe1')),{'interaction':_0x197f12})[_0x4f01('0x2b')](function(_0x258877){var _0xc2350f=path['join'](_0x5f8ef,_0x4f01('0xe2')+_0x2b410c['id']+'-'+_0xc0a098+_0x4f01('0xe3'));var _0x36bea3={'path':_0xc2350f,'channel':_0x4f01('0xe4'),'interactionId':_0x2b410c['id']};return pdf[_0x4f01('0xe5')](_0x258877,_0x36bea3);})[_0x4f01('0x2b')](function(){return new BPromise(function(_0x5efff5,_0x96dc14){zipdir(_0x5f8ef,{'saveTo':_0x4c7d9f},function(_0x2fd45d,_0x254ec6){if(_0x2fd45d)return _0x96dc14(_0x2fd45d);return _0x5efff5(_0x254ec6);});})[_0x4f01('0x2b')](function(){return new BPromise(function(_0x34c10b,_0x3315f0){rimraf(_0x5f8ef,function(_0x42f85b){if(_0x42f85b)_0x3315f0(_0x42f85b);return _0x34c10b();});});})['then'](function(){return _0x31933a[_0x4f01('0xc7')](_0x4c7d9f,_0x2a50a9,function(_0x42c19d){if(_0x42c19d){console['log'](_0x4f01('0xe6'),_0x42c19d);}else{fs['unlinkSync'](_0x4c7d9f);}});});});}else{return _0x31933a[_0x4f01('0x20')](0xc8);}})['catch'](handleError(_0x31933a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1893=['SmsInteraction','../../mysqldb','SmsMessage','setMaxListeners','save','update','remove','getUsers','then','setDataValue','Users','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports'];(function(_0x3d9fd4,_0x1f2542){var _0x53e0a7=function(_0x2f6a5f){while(--_0x2f6a5f){_0x3d9fd4['push'](_0x3d9fd4['shift']());}};_0x53e0a7(++_0x1f2542);}(_0x1893,0xa2));var _0x3189=function(_0x520c24,_0x3fb9af){_0x520c24=_0x520c24-0x0;var _0x377104=_0x1893[_0x520c24];return _0x377104;};'use strict';var EventEmitter=require('events');var SmsInteraction=require('../../mysqldb')['db'][_0x3189('0x0')];var SmsMessage=require(_0x3189('0x1'))['db'][_0x3189('0x2')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x3189('0x3')](0x0);var events={'afterCreate':_0x3189('0x4'),'afterUpdate':_0x3189('0x5'),'afterDestroy':_0x3189('0x6')};function emitEvent(_0x5371db){return function(_0x27445,_0x4faebf,_0x2333e6){_0x27445[_0x3189('0x7')]({'attributes':['id'],'raw':!![]})[_0x3189('0x8')](function(_0x118970){_0x27445[_0x3189('0x9')](_0x3189('0xa'),_0x118970['map'](function(_0x1d5f6a){return{'id':_0x1d5f6a['id']};}));return SmsMessage['findAll']({'where':{'SmsInteractionId':_0x27445['id'],'direction':'in','read':![]},'raw':!![]});})[_0x3189('0x8')](function(_0x4ac683){_0x27445[_0x3189('0x9')](_0x3189('0xb'),_0x4ac683[_0x3189('0xc')]);SmsInteractionEvents[_0x3189('0xd')](_0x5371db+':'+_0x27445['id'],_0x27445);SmsInteractionEvents['emit'](_0x5371db,_0x27445);_0x2333e6(null);})[_0x3189('0xe')](_0x2333e6(null));};}for(var e in events){if(events[_0x3189('0xf')](e)){var event=events[e];SmsInteraction[_0x3189('0x10')](e,emitEvent(event));}}module[_0x3189('0x11')]=SmsInteractionEvents;
\ No newline at end of file
+var _0x1a37=['events','../../mysqldb','SmsInteraction','SmsMessage','setMaxListeners','save','update','remove','getUsers','then','setDataValue','unreadMessages','length','emit','catch'];(function(_0x162e8e,_0x1e7b12){var _0x4a9718=function(_0x2f5d58){while(--_0x2f5d58){_0x162e8e['push'](_0x162e8e['shift']());}};_0x4a9718(++_0x1e7b12);}(_0x1a37,0xb4));var _0x71a3=function(_0x485b5a,_0x2b289b){_0x485b5a=_0x485b5a-0x0;var _0xd2b34d=_0x1a37[_0x485b5a];return _0xd2b34d;};'use strict';var EventEmitter=require(_0x71a3('0x0'));var SmsInteraction=require(_0x71a3('0x1'))['db'][_0x71a3('0x2')];var SmsMessage=require(_0x71a3('0x1'))['db'][_0x71a3('0x3')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x71a3('0x4')](0x0);var events={'afterCreate':_0x71a3('0x5'),'afterUpdate':_0x71a3('0x6'),'afterDestroy':_0x71a3('0x7')};function emitEvent(_0x100181){return function(_0x4af5b4,_0x11e8a8,_0x4f6b7a){_0x4af5b4[_0x71a3('0x8')]({'attributes':['id'],'raw':!![]})[_0x71a3('0x9')](function(_0x231ea7){_0x4af5b4[_0x71a3('0xa')]('Users',_0x231ea7['map'](function(_0x56c351){return{'id':_0x56c351['id']};}));return SmsMessage['findAll']({'where':{'SmsInteractionId':_0x4af5b4['id'],'direction':'in','read':![]},'raw':!![]});})[_0x71a3('0x9')](function(_0x18320a){_0x4af5b4[_0x71a3('0xa')](_0x71a3('0xb'),_0x18320a[_0x71a3('0xc')]);SmsInteractionEvents[_0x71a3('0xd')](_0x100181+':'+_0x4af5b4['id'],_0x4af5b4);SmsInteractionEvents[_0x71a3('0xd')](_0x100181,_0x4af5b4);_0x4f6b7a(null);})[_0x71a3('0xe')](_0x4f6b7a(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsInteraction['hook'](e,emitEvent(event));}}module['exports']=SmsInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e56=['request-promise','path','rimraf','../../config/environment','./smsInteraction.attributes','exports','SmsInteraction','sms_interactions','closedAt','YYYY-MM-DD\x20HH:mm:ss','lodash','util','api','bluebird'];(function(_0x41ba7c,_0x21b2bb){var _0xb1bf6a=function(_0x879cc7){while(--_0x879cc7){_0x41ba7c['push'](_0x41ba7c['shift']());}};_0xb1bf6a(++_0x21b2bb);}(_0x5e56,0x130));var _0x65e5=function(_0x32a1b3,_0x3e22c5){_0x32a1b3=_0x32a1b3-0x0;var _0x5bfd8a=_0x5e56[_0x32a1b3];return _0x5bfd8a;};'use strict';var _=require(_0x65e5('0x0'));var util=require(_0x65e5('0x1'));var logger=require('../../config/logger')(_0x65e5('0x2'));var moment=require('moment');var BPromise=require(_0x65e5('0x3'));var rp=require(_0x65e5('0x4'));var fs=require('fs');var path=require(_0x65e5('0x5'));var rimraf=require(_0x65e5('0x6'));var config=require(_0x65e5('0x7'));var attributes=require(_0x65e5('0x8'));module[_0x65e5('0x9')]=function(_0x3d7039,_0x39b464){return _0x3d7039['define'](_0x65e5('0xa'),attributes,{'tableName':_0x65e5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3b5608,_0x447987,_0x87dab0){if(_0x3b5608['changed']('closed')){_0x3b5608[_0x65e5('0xc')]=moment()['format'](_0x65e5('0xd'));}_0x87dab0(null,_0x3b5608);}}});};
\ No newline at end of file
+var _0x108a=['define','SmsInteraction','sms_interactions','closed','closedAt','util','api','moment','rimraf','./smsInteraction.attributes'];(function(_0x4d31da,_0x4dbd2f){var _0x50dab3=function(_0x578959){while(--_0x578959){_0x4d31da['push'](_0x4d31da['shift']());}};_0x50dab3(++_0x4dbd2f);}(_0x108a,0x1e5));var _0xa108=function(_0x10c697,_0x40285d){_0x10c697=_0x10c697-0x0;var _0x3f938c=_0x108a[_0x10c697];return _0x3f938c;};'use strict';var _=require('lodash');var util=require(_0xa108('0x0'));var logger=require('../../config/logger')(_0xa108('0x1'));var moment=require(_0xa108('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xa108('0x3'));var config=require('../../config/environment');var attributes=require(_0xa108('0x4'));module['exports']=function(_0x5680d0,_0x226d95){return _0x5680d0[_0xa108('0x5')](_0xa108('0x6'),attributes,{'tableName':_0xa108('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x223ccb,_0x562550,_0x5067b5){if(_0x223ccb['changed'](_0xa108('0x8'))){_0x223ccb[_0xa108('0x9')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}_0x5067b5(null,_0x223ccb);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb48e=['register','request','info','SmsInteraction,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','UpdateSmsInteraction','SmsInteraction','update','body','options','raw','where','attributes','limit','then','stringify','addTags','ids','omit','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket'];(function(_0x49804a,_0x109d1e){var _0x57bae5=function(_0x3d053e){while(--_0x3d053e){_0x49804a['push'](_0x49804a['shift']());}};_0x57bae5(++_0x109d1e);}(_0xb48e,0x70));var _0xeb48=function(_0x792972,_0x541bd2){_0x792972=_0x792972-0x0;var _0x9aa56e=_0xb48e[_0x792972];return _0x9aa56e;};'use strict';var _=require(_0xeb48('0x0'));var util=require(_0xeb48('0x1'));var moment=require(_0xeb48('0x2'));var BPromise=require(_0xeb48('0x3'));var rs=require(_0xeb48('0x4'));var fs=require('fs');var Redis=require(_0xeb48('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xeb48('0x6'));var logger=require(_0xeb48('0x7'))(_0xeb48('0x8'));var config=require(_0xeb48('0x9'));var jayson=require(_0xeb48('0xa'));var client=jayson['client'][_0xeb48('0xb')]({'port':0x232a});config[_0xeb48('0xc')]=_[_0xeb48('0xd')](config[_0xeb48('0xc')],{'host':_0xeb48('0xe'),'port':0x18eb});var socket=require(_0xeb48('0xf'))(new Redis(config['redis']));require(_0xeb48('0x10'))[_0xeb48('0x11')](socket);function respondWithRpcPromise(_0x3c3683,_0xcd8bdb,_0x22016a){return new BPromise(function(_0x37d9c9,_0x3c0ef3){return client[_0xeb48('0x12')](_0x3c3683,_0x22016a)['then'](function(_0x3d3e6a){logger[_0xeb48('0x13')](_0xeb48('0x14'),_0xcd8bdb,_0xeb48('0x15'));logger[_0xeb48('0x16')]('SmsInteraction,\x20%s,\x20%s,\x20%s',_0xcd8bdb,_0xeb48('0x15'),JSON['stringify'](_0x3d3e6a));if(_0x3d3e6a['error']){if(_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x18')]===0x1f4){logger[_0xeb48('0x17')](_0xeb48('0x14'),_0xcd8bdb,_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x19')]);return _0x3c0ef3(_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x19')]);}logger[_0xeb48('0x17')]('SmsInteraction,\x20%s,\x20%s',_0xcd8bdb,_0x3d3e6a['error'][_0xeb48('0x19')]);return _0x37d9c9(_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x19')]);}else{logger['info']('SmsInteraction,\x20%s,\x20%s',_0xcd8bdb,_0xeb48('0x15'));_0x37d9c9(_0x3d3e6a[_0xeb48('0x1a')]['message']);}})[_0xeb48('0x1b')](function(_0x25b713){logger['error'](_0xeb48('0x14'),_0xcd8bdb,_0x25b713);_0x3c0ef3(_0x25b713);});});}exports[_0xeb48('0x1c')]=function(_0x200bdd){var _0x3e48d1=this;return new Promise(function(_0x26340e,_0x4ae08e){return db[_0xeb48('0x1d')][_0xeb48('0x1e')](_0x200bdd[_0xeb48('0x1f')],{'raw':_0x200bdd[_0xeb48('0x20')]?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x200bdd[_0xeb48('0x20')]?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x22')]||null:null,'attributes':_0x200bdd['options']?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x23')]||null:null,'limit':_0x200bdd[_0xeb48('0x20')]?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x24')]||null:null})[_0xeb48('0x25')](function(_0x1fb007){logger['info']('UpdateSmsInteraction',_0x200bdd);logger['debug'](_0xeb48('0x1c'),_0x200bdd,JSON[_0xeb48('0x26')](_0x1fb007));_0x26340e(_0x1fb007);})[_0xeb48('0x1b')](function(_0x50a8ff){logger['error'](_0xeb48('0x1c'),_0x50a8ff[_0xeb48('0x19')],_0x200bdd);_0x4ae08e(_0x3e48d1['error'](0x1f4,_0x50a8ff[_0xeb48('0x19')]));});});};exports['AddTagsToSmsInteraction']=function(_0x3acf4e){return new Promise(function(_0x197199,_0x94bf62){return db[_0xeb48('0x1d')]['find']({'where':_0x3acf4e['options']?_0x3acf4e[_0xeb48('0x20')][_0xeb48('0x22')]||null:null})[_0xeb48('0x25')](function(_0x2f4e28){if(_0x2f4e28){return _0x2f4e28[_0xeb48('0x27')](_0x3acf4e['body'][_0xeb48('0x28')],_[_0xeb48('0x29')](_0x3acf4e['body'],[_0xeb48('0x28'),'id'])||{});}})['spread'](function(_0xe6ca43){logger['info']('AddTags',_0x3acf4e);logger[_0xeb48('0x16')]('AddTags',_0x3acf4e,JSON['stringify'](_0xe6ca43));_0x197199(_0xe6ca43);})[_0xeb48('0x1b')](function(_0x404344){logger[_0xeb48('0x17')](_0xeb48('0x2a'),_0x404344[_0xeb48('0x19')],_0x3acf4e);_0x94bf62(_this['error'](0x1f4,_0x404344[_0xeb48('0x19')]));});});};
\ No newline at end of file
+var _0x2cfc=['options','raw','where','limit','stringify','AddTagsToSmsInteraction','find','addTags','ids','spread','AddTags','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','client','http','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket','register','request','then','info','request\x20sent','debug','error','code','SmsInteraction,\x20%s,\x20%s','message','result','catch','UpdateSmsInteraction','SmsInteraction','update','body'];(function(_0x9fcdc8,_0x5839d4){var _0x1c047b=function(_0x31f87d){while(--_0x31f87d){_0x9fcdc8['push'](_0x9fcdc8['shift']());}};_0x1c047b(++_0x5839d4);}(_0x2cfc,0x1ce));var _0xc2cf=function(_0x513aa5,_0x1fba79){_0x513aa5=_0x513aa5-0x0;var _0x1a1a7c=_0x2cfc[_0x513aa5];return _0x1a1a7c;};'use strict';var _=require('lodash');var util=require(_0xc2cf('0x0'));var moment=require(_0xc2cf('0x1'));var BPromise=require(_0xc2cf('0x2'));var rs=require(_0xc2cf('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc2cf('0x4'))['db'];var utils=require(_0xc2cf('0x5'));var logger=require('../../config/logger')(_0xc2cf('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xc2cf('0x7')][_0xc2cf('0x8')]({'port':0x232a});config[_0xc2cf('0x9')]=_[_0xc2cf('0xa')](config[_0xc2cf('0x9')],{'host':_0xc2cf('0xb'),'port':0x18eb});var socket=require(_0xc2cf('0xc'))(new Redis(config[_0xc2cf('0x9')]));require(_0xc2cf('0xd'))[_0xc2cf('0xe')](socket);function respondWithRpcPromise(_0x80e23c,_0x182335,_0xae9c39){return new BPromise(function(_0x4524f7,_0x3325fa){return client[_0xc2cf('0xf')](_0x80e23c,_0xae9c39)[_0xc2cf('0x10')](function(_0x884644){logger[_0xc2cf('0x11')]('SmsInteraction,\x20%s,\x20%s',_0x182335,_0xc2cf('0x12'));logger[_0xc2cf('0x13')]('SmsInteraction,\x20%s,\x20%s,\x20%s',_0x182335,_0xc2cf('0x12'),JSON['stringify'](_0x884644));if(_0x884644[_0xc2cf('0x14')]){if(_0x884644[_0xc2cf('0x14')][_0xc2cf('0x15')]===0x1f4){logger[_0xc2cf('0x14')](_0xc2cf('0x16'),_0x182335,_0x884644['error'][_0xc2cf('0x17')]);return _0x3325fa(_0x884644[_0xc2cf('0x14')][_0xc2cf('0x17')]);}logger[_0xc2cf('0x14')]('SmsInteraction,\x20%s,\x20%s',_0x182335,_0x884644[_0xc2cf('0x14')][_0xc2cf('0x17')]);return _0x4524f7(_0x884644[_0xc2cf('0x14')][_0xc2cf('0x17')]);}else{logger['info'](_0xc2cf('0x16'),_0x182335,_0xc2cf('0x12'));_0x4524f7(_0x884644[_0xc2cf('0x18')][_0xc2cf('0x17')]);}})[_0xc2cf('0x19')](function(_0x36d895){logger[_0xc2cf('0x14')]('SmsInteraction,\x20%s,\x20%s',_0x182335,_0x36d895);_0x3325fa(_0x36d895);});});}exports[_0xc2cf('0x1a')]=function(_0x5e3e6e){var _0x37dcd9=this;return new Promise(function(_0x2abfb6,_0x17060a){return db[_0xc2cf('0x1b')][_0xc2cf('0x1c')](_0x5e3e6e[_0xc2cf('0x1d')],{'raw':_0x5e3e6e[_0xc2cf('0x1e')]?_0x5e3e6e[_0xc2cf('0x1e')][_0xc2cf('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5e3e6e['options']?_0x5e3e6e[_0xc2cf('0x1e')][_0xc2cf('0x20')]||null:null,'attributes':_0x5e3e6e[_0xc2cf('0x1e')]?_0x5e3e6e['options']['attributes']||null:null,'limit':_0x5e3e6e[_0xc2cf('0x1e')]?_0x5e3e6e[_0xc2cf('0x1e')][_0xc2cf('0x21')]||null:null})[_0xc2cf('0x10')](function(_0x4779b3){logger[_0xc2cf('0x11')](_0xc2cf('0x1a'),_0x5e3e6e);logger[_0xc2cf('0x13')](_0xc2cf('0x1a'),_0x5e3e6e,JSON[_0xc2cf('0x22')](_0x4779b3));_0x2abfb6(_0x4779b3);})[_0xc2cf('0x19')](function(_0x1e51a7){logger[_0xc2cf('0x14')](_0xc2cf('0x1a'),_0x1e51a7[_0xc2cf('0x17')],_0x5e3e6e);_0x17060a(_0x37dcd9['error'](0x1f4,_0x1e51a7[_0xc2cf('0x17')]));});});};exports[_0xc2cf('0x23')]=function(_0x321163){return new Promise(function(_0x591db2,_0xc3f5b){return db[_0xc2cf('0x1b')][_0xc2cf('0x24')]({'where':_0x321163[_0xc2cf('0x1e')]?_0x321163[_0xc2cf('0x1e')]['where']||null:null})[_0xc2cf('0x10')](function(_0x30f87b){if(_0x30f87b){return _0x30f87b[_0xc2cf('0x25')](_0x321163['body'][_0xc2cf('0x26')],_['omit'](_0x321163[_0xc2cf('0x1d')],[_0xc2cf('0x26'),'id'])||{});}})[_0xc2cf('0x27')](function(_0x305393){logger[_0xc2cf('0x11')]('AddTags',_0x321163);logger[_0xc2cf('0x13')](_0xc2cf('0x28'),_0x321163,JSON[_0xc2cf('0x22')](_0x305393));_0x591db2(_0x305393);})[_0xc2cf('0x19')](function(_0x2532b4){logger['error']('AddTags',_0x2532b4[_0xc2cf('0x17')],_0x321163);_0xc3f5b(_this[_0xc2cf('0x14')](0x1f4,_0x2532b4[_0xc2cf('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36e8=['emit','register','smsInteraction:','remove','update'];(function(_0x56e805,_0x429591){var _0x582d0f=function(_0x5163da){while(--_0x5163da){_0x56e805['push'](_0x56e805['shift']());}};_0x582d0f(++_0x429591);}(_0x36e8,0x116));var _0x836e=function(_0x5c1c03,_0x1046df){_0x5c1c03=_0x5c1c03-0x0;var _0x44f62f=_0x36e8[_0x5c1c03];return _0x44f62f;};'use strict';var SmsInteractionEvents=require('./smsInteraction.events');var events=['save',_0x836e('0x0'),_0x836e('0x1')];function createListener(_0x164d43,_0x15f8da){return function(_0x23037a){_0x15f8da[_0x836e('0x2')](_0x164d43,_0x23037a);};}function removeListener(_0x380e78,_0x5ce202){return function(){SmsInteractionEvents['removeListener'](_0x380e78,_0x5ce202);};}exports[_0x836e('0x3')]=function(_0x44719c){for(var _0x17fbc0=0x0,_0x304fef=events['length'];_0x17fbc0<_0x304fef;_0x17fbc0++){var _0x6dc0b1=events[_0x17fbc0];var _0x2311e5=createListener(_0x836e('0x4')+_0x6dc0b1,_0x44719c);SmsInteractionEvents['on'](_0x6dc0b1,_0x2311e5);}};
\ No newline at end of file
+var _0x3618=['save','remove','emit','removeListener','register'];(function(_0x2cb844,_0x455421){var _0x34c258=function(_0x903c28){while(--_0x903c28){_0x2cb844['push'](_0x2cb844['shift']());}};_0x34c258(++_0x455421);}(_0x3618,0x1c2));var _0x8361=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x3618[_0x618414];return _0x21c19a;};'use strict';var SmsInteractionEvents=require('./smsInteraction.events');var events=[_0x8361('0x0'),_0x8361('0x1'),'update'];function createListener(_0x57cc1d,_0x40b4ae){return function(_0x12ec91){_0x40b4ae[_0x8361('0x2')](_0x57cc1d,_0x12ec91);};}function removeListener(_0x28e32f,_0x1fe54a){return function(){SmsInteractionEvents[_0x8361('0x3')](_0x28e32f,_0x1fe54a);};}exports[_0x8361('0x4')]=function(_0x5d6e45){for(var _0x2847d8=0x0,_0x531d00=events['length'];_0x2847d8<_0x531d00;_0x2847d8++){var _0x172adf=events[_0x2847d8];var _0x4a34b1=createListener('smsInteraction:'+_0x172adf,_0x5d6e45);SmsInteractionEvents['on'](_0x172adf,_0x4a34b1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcc2=['Router','../../components/interaction/service','../../config/environment','./smsMessage.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post','sms','smsmessage:create','/:id/status','status','put','/:id/accept','accept','reject','destroy','exports','multer','path','express'];(function(_0x13edeb,_0x3e3306){var _0x18a64e=function(_0x5112db){while(--_0x5112db){_0x13edeb['push'](_0x13edeb['shift']());}};_0x18a64e(++_0x3e3306);}(_0xbcc2,0x93));var _0x2bcc=function(_0xbcb1dd,_0x535bc6){_0xbcb1dd=_0xbcb1dd-0x0;var _0xcc3d07=_0xbcc2[_0xbcb1dd];return _0xcc3d07;};'use strict';var multer=require(_0x2bcc('0x0'));var util=require('util');var path=require(_0x2bcc('0x1'));var timeout=require('connect-timeout');var express=require(_0x2bcc('0x2'));var router=express[_0x2bcc('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x2bcc('0x4'));var config=require(_0x2bcc('0x5'));var controller=require(_0x2bcc('0x6'));router[_0x2bcc('0x7')]('/',auth['isAuthenticated'](),controller[_0x2bcc('0x8')]);router[_0x2bcc('0x7')](_0x2bcc('0x9'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0xb')]);router['get'](_0x2bcc('0xc'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0xd')]);router[_0x2bcc('0xe')]('/',auth[_0x2bcc('0xa')](),interaction['tracked'](_0x2bcc('0xf'),_0x2bcc('0x10')),controller['create']);router['post'](_0x2bcc('0x11'),controller[_0x2bcc('0x12')]);router[_0x2bcc('0x13')]('/:id',auth[_0x2bcc('0xa')](),controller['update']);router[_0x2bcc('0x13')](_0x2bcc('0x14'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0x15')]);router['put']('/:id/reject',auth[_0x2bcc('0xa')](),controller[_0x2bcc('0x16')]);router['delete'](_0x2bcc('0xc'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0x17')]);module[_0x2bcc('0x18')]=router;
\ No newline at end of file
+var _0x5dbd=['exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsMessage.controller','get','isAuthenticated','index','describe','/:id','tracked','sms','smsmessage:create','create','post','put','update','/:id/accept','accept','reject','delete'];(function(_0x541a1b,_0x2fe1f9){var _0x57940f=function(_0x2587aa){while(--_0x2587aa){_0x541a1b['push'](_0x541a1b['shift']());}};_0x57940f(++_0x2fe1f9);}(_0x5dbd,0x9d));var _0xd5db=function(_0x5343d0,_0x1136f9){_0x5343d0=_0x5343d0-0x0;var _0x943cd=_0x5dbd[_0x5343d0];return _0x943cd;};'use strict';var multer=require(_0xd5db('0x0'));var util=require(_0xd5db('0x1'));var path=require('path');var timeout=require(_0xd5db('0x2'));var express=require(_0xd5db('0x3'));var router=express[_0xd5db('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xd5db('0x5'));var interaction=require(_0xd5db('0x6'));var config=require(_0xd5db('0x7'));var controller=require(_0xd5db('0x8'));router[_0xd5db('0x9')]('/',auth[_0xd5db('0xa')](),controller[_0xd5db('0xb')]);router[_0xd5db('0x9')]('/describe',auth[_0xd5db('0xa')](),controller[_0xd5db('0xc')]);router[_0xd5db('0x9')](_0xd5db('0xd'),auth[_0xd5db('0xa')](),controller['show']);router['post']('/',auth[_0xd5db('0xa')](),interaction[_0xd5db('0xe')](_0xd5db('0xf'),_0xd5db('0x10')),controller[_0xd5db('0x11')]);router[_0xd5db('0x12')]('/:id/status',controller['status']);router[_0xd5db('0x13')]('/:id',auth[_0xd5db('0xa')](),controller[_0xd5db('0x14')]);router[_0xd5db('0x13')](_0xd5db('0x15'),auth[_0xd5db('0xa')](),controller[_0xd5db('0x16')]);router[_0xd5db('0x13')]('/:id/reject',auth[_0xd5db('0xa')](),controller[_0xd5db('0x17')]);router[_0xd5db('0x18')]('/:id',auth[_0xd5db('0xa')](),controller['destroy']);module[_0xd5db('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80ea=['medium','BOOLEAN','ENUM','out','STRING','DATE','sequelize','exports','TEXT'];(function(_0x7a1589,_0x58e8d2){var _0x570127=function(_0x4e588c){while(--_0x4e588c){_0x7a1589['push'](_0x7a1589['shift']());}};_0x570127(++_0x58e8d2);}(_0x80ea,0x15c));var _0xa80e=function(_0xdcbc08,_0x354c59){_0xdcbc08=_0xdcbc08-0x0;var _0x468da5=_0x80ea[_0xdcbc08];return _0x468da5;};'use strict';var Sequelize=require(_0xa80e('0x0'));module[_0xa80e('0x1')]={'body':{'type':Sequelize[_0xa80e('0x2')](_0xa80e('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xa80e('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xa80e('0x5')]('in',_0xa80e('0x6')),'defaultValue':_0xa80e('0x6'),'allowNull':![]},'messageId':{'type':Sequelize[_0xa80e('0x7')](0xbe)},'phone':{'type':Sequelize[_0xa80e('0x7')]},'readAt':{'type':Sequelize[_0xa80e('0x8')]},'secret':{'type':Sequelize[_0xa80e('0x4')],'defaultValue':![]},'providerName':{'type':Sequelize[_0xa80e('0x7')]},'providerResponse':{'type':Sequelize[_0xa80e('0x2')]}};
\ No newline at end of file
+var _0x5c85=['DATE','sequelize','exports','TEXT','medium','BOOLEAN','ENUM','out'];(function(_0x254fe4,_0x62a6cf){var _0x1bb85c=function(_0x75afa6){while(--_0x75afa6){_0x254fe4['push'](_0x254fe4['shift']());}};_0x1bb85c(++_0x62a6cf);}(_0x5c85,0xc1));var _0x55c8=function(_0x179b79,_0x3380cc){_0x179b79=_0x179b79-0x0;var _0x1851f5=_0x5c85[_0x179b79];return _0x1851f5;};'use strict';var Sequelize=require(_0x55c8('0x0'));module[_0x55c8('0x1')]={'body':{'type':Sequelize[_0x55c8('0x2')](_0x55c8('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x55c8('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0x55c8('0x5')]('in',_0x55c8('0x6')),'defaultValue':_0x55c8('0x6'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0xbe)},'phone':{'type':Sequelize['STRING']},'readAt':{'type':Sequelize[_0x55c8('0x7')]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0x55c8('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1135=['request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','defaults','localhost','socket.io-emitter','./smsMessage.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','SmsMessage,\x20%s,\x20%s','message','catch','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','update','destroy','name','send','index','map','SmsMessage','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll','rows','show','includeAll','find','create','body','describe','sms-interactions','accept','sms','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','params','get','SmsInteraction','SmsInteractionId','isNil','interaction','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','Sequelize','SELECT','contact','User','fullname','email','internal','manual','interface','SIP/%s','channel','EventManager','acceptmessage','reject','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','rejectMessage','sequelize','QueryTypes','rejectmessage','SmsAccountId','received\x20delivery\x20report\x20from','twilio','MessageSid','messageId','inspect','plivo','MessageUUID','indexOf','sent','delivered','Status','SmsAccount,\x20%s,\x20%s,\x20%s','plivio','results','groupName','DELIVERED','infobip','eml-format','rimraf','fast-json-patch'];(function(_0x47c5bf,_0x45977e){var _0x11b779=function(_0x1bd585){while(--_0x1bd585){_0x47c5bf['push'](_0x47c5bf['shift']());}};_0x11b779(++_0x45977e);}(_0x1135,0x93));var _0x5113=function(_0x2cdc44,_0x5c9b71){_0x2cdc44=_0x2cdc44-0x0;var _0x112c72=_0x1135[_0x2cdc44];return _0x112c72;};'use strict';var emlformat=require(_0x5113('0x0'));var rimraf=require(_0x5113('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5113('0x2'));var rp=require(_0x5113('0x3'));var moment=require(_0x5113('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5113('0x5'));var util=require(_0x5113('0x6'));var path=require(_0x5113('0x7'));var sox=require(_0x5113('0x8'));var csv=require(_0x5113('0x9'));var ejs=require(_0x5113('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5113('0xb'));var squel=require('squel');var crypto=require(_0x5113('0xc'));var jsforce=require(_0x5113('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x5113('0x9'));var querystring=require(_0x5113('0xe'));var Papa=require(_0x5113('0xf'));var Redis=require('ioredis');var authService=require(_0x5113('0x10'));var qs=require(_0x5113('0x11'));var as=require(_0x5113('0x12'));var hardwareService=require(_0x5113('0x13'));var logger=require(_0x5113('0x14'))(_0x5113('0x15'));var utils=require(_0x5113('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x5113('0x17'))['db'];config['redis']=_[_0x5113('0x18')](config['redis'],{'host':_0x5113('0x19'),'port':0x18eb});var socket=require(_0x5113('0x1a'))(new Redis(config['redis']));require(_0x5113('0x1b'))[_0x5113('0x1c')](socket);var jayson=require(_0x5113('0x1d'));var client=jayson[_0x5113('0x1e')][_0x5113('0x1f')]({'port':0x232c});var client9002=jayson[_0x5113('0x1e')][_0x5113('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x40eeb8,_0x57d4db,_0xfa80e3,_0x1bbd0d){return new BPromise(function(_0x33afee,_0x12fa31){var _0x3a701f=_0x1bbd0d||client;return _0x3a701f[_0x5113('0x20')](_0x40eeb8,_0xfa80e3)[_0x5113('0x21')](function(_0x560054){logger[_0x5113('0x22')]('SmsMessage,\x20%s,\x20%s',_0x57d4db,_0x5113('0x23'));logger[_0x5113('0x24')](_0x5113('0x25'),_0x57d4db,_0x5113('0x23'),JSON[_0x5113('0x26')](_0x560054));if(_0x560054[_0x5113('0x27')]){if(_0x560054[_0x5113('0x27')]['code']===0x1f4){logger[_0x5113('0x27')](_0x5113('0x28'),_0x57d4db,_0x560054[_0x5113('0x27')][_0x5113('0x29')]);return _0x12fa31(_0x560054[_0x5113('0x27')][_0x5113('0x29')]);}logger['error'](_0x5113('0x28'),_0x57d4db,_0x560054['error'][_0x5113('0x29')]);return _0x33afee(_0x560054[_0x5113('0x27')][_0x5113('0x29')]);}else{logger[_0x5113('0x22')]('SmsMessage,\x20%s,\x20%s',_0x57d4db,_0x5113('0x23'));_0x33afee(_0x560054['result']['message']);}})[_0x5113('0x2a')](function(_0xe17a12){logger['error'](_0x5113('0x28'),_0x57d4db,_0xe17a12);_0x12fa31(_0xe17a12);});});}function respondWithStatusCode(_0x2cac49,_0x41439f){_0x41439f=_0x41439f||0xcc;return function(_0x256dff){if(_0x256dff){return _0x2cac49[_0x5113('0x2b')](_0x41439f);}return _0x2cac49['status'](_0x41439f)[_0x5113('0x2c')]();};}function respondWithResult(_0x25ded7,_0x19e53a){_0x19e53a=_0x19e53a||0xc8;return function(_0x20dcd){if(_0x20dcd){return _0x25ded7[_0x5113('0x2d')](_0x19e53a)[_0x5113('0x2e')](_0x20dcd);}};}function respondWithFilteredResult(_0xdde6a3,_0x2e1f18){return function(_0x985956){if(_0x985956){var _0x15100e=typeof _0x2e1f18[_0x5113('0x2f')]==='undefined'&&typeof _0x2e1f18[_0x5113('0x30')]===_0x5113('0x31');var _0x1047fc=_0x985956[_0x5113('0x32')];var _0x51e1ea=_0x15100e?0x0:_0x2e1f18[_0x5113('0x2f')];var _0x42faa5=_0x15100e?_0x985956[_0x5113('0x32')]:_0x2e1f18[_0x5113('0x2f')]+_0x2e1f18['limit'];var _0x35198f;if(_0x42faa5>=_0x1047fc){_0x42faa5=_0x1047fc;_0x35198f=0xc8;}else{_0x35198f=0xce;}_0xdde6a3[_0x5113('0x2d')](_0x35198f);return _0xdde6a3[_0x5113('0x33')](_0x5113('0x34'),_0x51e1ea+'-'+_0x42faa5+'/'+_0x1047fc)[_0x5113('0x2e')](_0x985956);}return null;};}function patchUpdates(_0x59fae2){return function(_0x1a9ff6){try{jsonpatch[_0x5113('0x35')](_0x1a9ff6,_0x59fae2,!![]);}catch(_0x37ce64){return BPromise['reject'](_0x37ce64);}return _0x1a9ff6['save']();};}function saveUpdates(_0x4968c3,_0x2a462d){return function(_0x41e8dd){if(_0x41e8dd){return _0x41e8dd[_0x5113('0x36')](_0x4968c3)['then'](function(_0x2eedc6){return _0x2eedc6;});}return null;};}function removeEntity(_0x486c19,_0x577757){return function(_0x2b1919){if(_0x2b1919){return _0x2b1919[_0x5113('0x37')]()[_0x5113('0x21')](function(){_0x486c19[_0x5113('0x2d')](0xcc)[_0x5113('0x2c')]();});}};}function handleEntityNotFound(_0x343ef8,_0x2c015b){return function(_0x4031dd){if(!_0x4031dd){_0x343ef8[_0x5113('0x2b')](0x194);}return _0x4031dd;};}function handleError(_0xc6c7e0,_0x577d84){_0x577d84=_0x577d84||0x1f4;return function(_0x2cb211){logger[_0x5113('0x27')](_0x2cb211['stack']);if(_0x2cb211[_0x5113('0x38')]){delete _0x2cb211[_0x5113('0x38')];}_0xc6c7e0[_0x5113('0x2d')](_0x577d84)[_0x5113('0x39')](_0x2cb211);};}exports[_0x5113('0x3a')]=function(_0x17842f,_0x5ac407){var _0x492c65={},_0x437b32={},_0x1a26b9={'count':0x0,'rows':[]};var _0x1516e2=_[_0x5113('0x3b')](db[_0x5113('0x3c')][_0x5113('0x3d')],function(_0x4f1b6a){return{'name':_0x4f1b6a[_0x5113('0x3e')],'type':_0x4f1b6a[_0x5113('0x3f')]['key']};});_0x437b32[_0x5113('0x40')]=_['map'](_0x1516e2,_0x5113('0x38'));_0x437b32[_0x5113('0x41')]=_[_0x5113('0x42')](_0x17842f[_0x5113('0x41')]);_0x437b32[_0x5113('0x43')]=_[_0x5113('0x44')](_0x437b32['model'],_0x437b32[_0x5113('0x41')]);_0x492c65[_0x5113('0x45')]=_['intersection'](_0x437b32[_0x5113('0x40')],qs[_0x5113('0x46')](_0x17842f[_0x5113('0x41')]['fields']));_0x492c65[_0x5113('0x45')]=_0x492c65[_0x5113('0x45')][_0x5113('0x47')]?_0x492c65[_0x5113('0x45')]:_0x437b32['model'];if(!_0x17842f[_0x5113('0x41')]['hasOwnProperty'](_0x5113('0x48'))){_0x492c65['limit']=qs[_0x5113('0x30')](_0x17842f[_0x5113('0x41')][_0x5113('0x30')]);_0x492c65[_0x5113('0x2f')]=qs[_0x5113('0x2f')](_0x17842f['query']['offset']);}_0x492c65['order']=qs[_0x5113('0x49')](_0x17842f[_0x5113('0x41')][_0x5113('0x49')]);_0x492c65[_0x5113('0x4a')]=qs['filters'](_[_0x5113('0x4b')](_0x17842f[_0x5113('0x41')],_0x437b32[_0x5113('0x43')]),_0x1516e2);if(_0x17842f[_0x5113('0x41')]['filter']){_0x492c65[_0x5113('0x4a')]=_[_0x5113('0x4c')](_0x492c65[_0x5113('0x4a')],{'$or':_['map'](_0x1516e2,function(_0x392955){if(_0x392955[_0x5113('0x3f')]!==_0x5113('0x4d')){var _0x3c5131={};_0x3c5131[_0x392955[_0x5113('0x38')]]={'$like':'%'+_0x17842f[_0x5113('0x41')][_0x5113('0x4e')]+'%'};return _0x3c5131;}})});}_0x492c65=_[_0x5113('0x4c')]({},_0x492c65,_0x17842f[_0x5113('0x4f')]);var _0x1daab7={'where':_0x492c65['where']};return db[_0x5113('0x3c')][_0x5113('0x32')](_0x1daab7)[_0x5113('0x21')](function(_0x2c1e9e){_0x1a26b9[_0x5113('0x32')]=_0x2c1e9e;if(_0x17842f['query']['includeAll']){_0x492c65[_0x5113('0x50')]=[{'all':!![]}];}return db['SmsMessage'][_0x5113('0x51')](_0x492c65);})[_0x5113('0x21')](function(_0x17620e){_0x1a26b9[_0x5113('0x52')]=_0x17620e;return _0x1a26b9;})[_0x5113('0x21')](respondWithFilteredResult(_0x5ac407,_0x492c65))[_0x5113('0x2a')](handleError(_0x5ac407,null));};exports[_0x5113('0x53')]=function(_0xe3c676,_0x5cd36e){var _0x1ef681={'raw':!![],'where':{'id':_0xe3c676['params']['id']}},_0x5363ec={};_0x5363ec['model']=_[_0x5113('0x42')](db[_0x5113('0x3c')][_0x5113('0x3d')]);_0x5363ec['query']=_['keys'](_0xe3c676[_0x5113('0x41')]);_0x5363ec[_0x5113('0x43')]=_[_0x5113('0x44')](_0x5363ec[_0x5113('0x40')],_0x5363ec[_0x5113('0x41')]);_0x1ef681[_0x5113('0x45')]=_[_0x5113('0x44')](_0x5363ec[_0x5113('0x40')],qs['fields'](_0xe3c676[_0x5113('0x41')][_0x5113('0x46')]));_0x1ef681[_0x5113('0x45')]=_0x1ef681[_0x5113('0x45')]['length']?_0x1ef681[_0x5113('0x45')]:_0x5363ec[_0x5113('0x40')];if(_0xe3c676[_0x5113('0x41')][_0x5113('0x54')]){_0x1ef681[_0x5113('0x50')]=[{'all':!![]}];}_0x1ef681=_['merge']({},_0x1ef681,_0xe3c676[_0x5113('0x4f')]);return db['SmsMessage'][_0x5113('0x55')](_0x1ef681)['then'](handleEntityNotFound(_0x5cd36e,null))[_0x5113('0x21')](respondWithResult(_0x5cd36e,null))[_0x5113('0x2a')](handleError(_0x5cd36e,null));};exports['create']=function(_0x18aab0,_0x3ca132){return db['SmsMessage'][_0x5113('0x56')](_0x18aab0[_0x5113('0x57')],{})[_0x5113('0x21')](respondWithResult(_0x3ca132,0xc9))[_0x5113('0x2a')](handleError(_0x3ca132,null));};exports['update']=function(_0x326baa,_0x1c29e3){if(_0x326baa[_0x5113('0x57')]['id']){delete _0x326baa[_0x5113('0x57')]['id'];}return db[_0x5113('0x3c')][_0x5113('0x55')]({'where':{'id':_0x326baa['params']['id']}})['then'](handleEntityNotFound(_0x1c29e3,null))[_0x5113('0x21')](saveUpdates(_0x326baa[_0x5113('0x57')],null))[_0x5113('0x21')](respondWithResult(_0x1c29e3,null))[_0x5113('0x2a')](handleError(_0x1c29e3,null));};exports['destroy']=function(_0x4039b7,_0x531cad){return db[_0x5113('0x3c')][_0x5113('0x55')]({'where':{'id':_0x4039b7['params']['id']}})[_0x5113('0x21')](handleEntityNotFound(_0x531cad,null))['then'](removeEntity(_0x531cad,null))[_0x5113('0x2a')](handleError(_0x531cad,null));};exports[_0x5113('0x58')]=function(_0x1055ac,_0x273f29){return db[_0x5113('0x3c')][_0x5113('0x58')]()[_0x5113('0x21')](respondWithResult(_0x273f29,null))[_0x5113('0x2a')](handleError(_0x273f29,null));};var interaction_log=require('../../config/logger')(_0x5113('0x59'));exports[_0x5113('0x5a')]=function(_0x2627b5,_0x362f9a,_0x57c416){var _0x5bbbbc={'agent':{},'channel':_0x5113('0x5b')};if(_0x2627b5[_0x5113('0x57')]['id']){delete _0x2627b5['body']['id'];}_0x2627b5['body'][_0x5113('0x5c')]=!![];_0x2627b5['body'][_0x5113('0x5d')]=moment()[_0x5113('0x5e')](_0x5113('0x5f'));_0x2627b5[_0x5113('0x57')][_0x5113('0x60')]=_0x2627b5['body']['UserId']||_0x2627b5[_0x5113('0x61')]['id'];_0x5bbbbc[_0x5113('0x62')]['id']=_0x2627b5[_0x5113('0x57')][_0x5113('0x60')];return db[_0x5113('0x3c')]['find']({'where':{'id':_0x2627b5[_0x5113('0x63')]['id'],'UserId':null}})[_0x5113('0x21')](handleEntityNotFound(_0x362f9a,null))[_0x5113('0x21')](saveUpdates(_0x2627b5['body'],null))['then'](function(_0x38b46c){if(_0x38b46c){_0x5bbbbc[_0x5113('0x29')]=_0x38b46c[_0x5113('0x64')]({'plain':!![]});return db[_0x5113('0x65')]['find']({'where':{'id':_0x38b46c[_0x5113('0x66')]}});}return null;})['then'](handleEntityNotFound(_0x362f9a,null))[_0x5113('0x21')](function(_0x20fe88){if(_0x20fe88){return _0x20fe88[_0x5113('0x36')]({'UserId':_0x2627b5['body'][_0x5113('0x60')],'read1stAt':_[_0x5113('0x67')](_0x20fe88['read1stAt'])?moment()[_0x5113('0x5e')](_0x5113('0x5f')):undefined});}return null;})[_0x5113('0x21')](function(_0x4a87ad){if(_0x4a87ad){_0x5bbbbc[_0x5113('0x68')]=_0x4a87ad[_0x5113('0x64')]({'plain':!![]});interaction_log[_0x5113('0x22')](_0x5113('0x69'),_0x2627b5[_0x5113('0x61')]['id'],_0x2627b5[_0x5113('0x61')][_0x5113('0x38')],_0x2627b5[_0x5113('0x61')]['role'],_0x5bbbbc[_0x5113('0x68')]['id'],_0x2627b5[_0x5113('0x57')]?JSON[_0x5113('0x26')](_0x2627b5['body']):_0x5113('0x6a'));return respondWithRpcPromise(_0x5113('0x6b'),_0x5113('0x6c'),_0x5bbbbc);}return null;})[_0x5113('0x21')](function(_0x2626ff){var _0x48e926=_0x5113('0x6d')+_0x2626ff[_0x5113('0x29')][_0x5113('0x6e')];return db['sequelize'][_0x5113('0x41')](_0x48e926,{'type':db[_0x5113('0x6f')]['QueryTypes'][_0x5113('0x70')],'raw':!![]})[_0x5113('0x21')](function(_0x45fed8){return _0x45fed8;});})[_0x5113('0x21')](function(_0x521676){if(_0x521676){_0x5bbbbc[_0x5113('0x29')][_0x5113('0x71')]=_0x521676[0x0];if(!_0x2627b5['body'][_0x5113('0x60')])return;return db[_0x5113('0x72')][_0x5113('0x55')]({'where':{'id':_0x2627b5[_0x5113('0x57')]['UserId'],'role':'agent'},'attributes':['id',_0x5113('0x38'),_0x5113('0x73'),_0x5113('0x74'),_0x5113('0x75')],'raw':!![]});}return null;})[_0x5113('0x21')](function(_0x516db4){if(!_0x516db4)return null;_0x5bbbbc[_0x5113('0x29')][_0x5113('0x62')]=_0x516db4;return _0x5bbbbc;})['then'](function(_0x1fab2f){if(_0x1fab2f){if(_0x2627b5[_0x5113('0x57')][_0x5113('0x76')]){_0x5bbbbc[_0x5113('0x29')][_0x5113('0x77')]=util[_0x5113('0x5e')](_0x5113('0x78'),_0x2627b5[_0x5113('0x61')]['name']);_0x5bbbbc[_0x5113('0x29')][_0x5113('0x79')]=_0x5bbbbc['channel'];_0x5bbbbc[_0x5113('0x29')]['event']=_0x5113('0x5a');return respondWithRpcPromise(_0x5113('0x7a'),'EventManager',{'event':_0x5113('0x7b'),'message':_0x5bbbbc[_0x5113('0x29')]},client9002)[_0x5113('0x21')](function(){return _0x5bbbbc;});}return _0x5bbbbc;}return null;})[_0x5113('0x21')](respondWithResult(_0x362f9a,null))[_0x5113('0x2a')](handleError(_0x362f9a,null));};var interaction_log=require(_0x5113('0x14'))(_0x5113('0x59'));exports[_0x5113('0x7c')]=function(_0x2469cc,_0x2df7c4,_0x56bcb1){var _0x1bd697={'agent':{},'channel':'sms'};if(_0x2469cc[_0x5113('0x57')]['id']){delete _0x2469cc[_0x5113('0x57')]['id'];}_0x2469cc['body'][_0x5113('0x60')]=_0x2469cc[_0x5113('0x57')][_0x5113('0x60')]||_0x2469cc['user']['id'];_0x1bd697[_0x5113('0x62')]['id']=_0x2469cc['body'][_0x5113('0x60')];return db[_0x5113('0x3c')][_0x5113('0x55')]({'where':{'id':_0x2469cc[_0x5113('0x63')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x2df7c4,null))[_0x5113('0x21')](function(_0x3f0a81){if(_0x3f0a81){_0x1bd697[_0x5113('0x29')]=_0x3f0a81['get']({'plain':!![]});return db[_0x5113('0x65')][_0x5113('0x55')]({'where':{'id':_0x3f0a81[_0x5113('0x66')]}});}return null;})[_0x5113('0x21')](handleEntityNotFound(_0x2df7c4,null))[_0x5113('0x21')](function(_0xce2eb7){if(_0xce2eb7){_0x1bd697[_0x5113('0x68')]=_0xce2eb7[_0x5113('0x64')]({'plain':!![]});interaction_log[_0x5113('0x22')](_0x5113('0x7d'),_0x2469cc[_0x5113('0x61')]['id'],_0x2469cc[_0x5113('0x61')][_0x5113('0x38')],_0x2469cc[_0x5113('0x61')][_0x5113('0x7e')],_0x1bd697[_0x5113('0x68')]['id'],_0x2469cc[_0x5113('0x57')]?JSON[_0x5113('0x26')](_0x2469cc['body']):_0x5113('0x6a'));return respondWithRpcPromise(_0x5113('0x7f'),_0x5113('0x80'),_0x1bd697);}return null;})[_0x5113('0x21')](function(_0x1b8a15){var _0x48ae1e=_0x5113('0x6d')+_0x1b8a15['message'][_0x5113('0x6e')];return db[_0x5113('0x81')][_0x5113('0x41')](_0x48ae1e,{'type':db[_0x5113('0x6f')][_0x5113('0x82')][_0x5113('0x70')],'raw':!![]})[_0x5113('0x21')](function(_0x47258e){return _0x47258e;});})[_0x5113('0x21')](function(_0x69b7de){if(_0x69b7de){_0x1bd697['message'][_0x5113('0x71')]=_0x69b7de[0x0];if(!_0x2469cc[_0x5113('0x57')][_0x5113('0x60')])return;return db[_0x5113('0x72')][_0x5113('0x55')]({'where':{'id':_0x2469cc['body']['UserId'],'role':_0x5113('0x62')},'attributes':['id',_0x5113('0x38'),_0x5113('0x73'),'email',_0x5113('0x75')],'raw':!![]});}return null;})[_0x5113('0x21')](function(_0x19e3e2){if(!_0x19e3e2)return null;_0x1bd697[_0x5113('0x29')]['agent']=_0x19e3e2;return _0x1bd697;})[_0x5113('0x21')](function(_0x3beeb5){if(_0x3beeb5){_0x3beeb5['message']['interface']=util[_0x5113('0x5e')]('SIP/%s',_0x2469cc[_0x5113('0x61')][_0x5113('0x38')]);_0x3beeb5[_0x5113('0x29')][_0x5113('0x79')]=_0x1bd697[_0x5113('0x79')];_0x3beeb5['message']['event']=_0x5113('0x7c');respondWithRpcPromise('EventManager',_0x5113('0x7a'),{'event':_0x5113('0x83'),'message':_0x3beeb5['message']},client9002);return _0x1bd697;}return null;})[_0x5113('0x21')](respondWithResult(_0x2df7c4,null))['catch'](handleError(_0x2df7c4,null));};exports['status']=function(_0x463402,_0x228e75,_0x301d63){if(_0x463402['body']['id']){delete _0x463402[_0x5113('0x57')]['id'];}var _0x2e693b;return db[_0x5113('0x3c')]['find']({'where':{'id':_0x463402['params']['id']}})['then'](handleEntityNotFound(_0x228e75,null))[_0x5113('0x21')](function(_0xd4974){if(_0xd4974){_0x2e693b=_0xd4974;return db['SmsAccount'][_0x5113('0x55')]({'where':{'id':_0xd4974[_0x5113('0x84')]}});}})[_0x5113('0x21')](handleEntityNotFound(_0x228e75,null))[_0x5113('0x21')](function(_0x1db11a){if(_0x1db11a){logger[_0x5113('0x24')](_0x5113('0x25'),_0x5113('0x2d'),_0x5113('0x85'),_0x1db11a['type'],util['inspect'](_0x463402[_0x5113('0x57')],{'showHidden':![],'depth':null}));switch(_0x1db11a[_0x5113('0x3f')]){case _0x5113('0x86'):if(_0x463402[_0x5113('0x57')][_0x5113('0x87')]&&_0x463402['body']['MessageSid']===_0x2e693b[_0x5113('0x88')]){return _0x2e693b[_0x5113('0x36')]({'read':!![]});}else{logger[_0x5113('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x5113('0x2d'),_0x5113('0x86'),util[_0x5113('0x89')](_0x463402[_0x5113('0x57')],{'showHidden':![],'depth':null}));}break;case _0x5113('0x8a'):if(_0x463402['body'][_0x5113('0x8b')]&&_0x463402[_0x5113('0x57')][_0x5113('0x8b')]===_0x2e693b[_0x5113('0x88')]&&_[_0x5113('0x8c')]([_0x5113('0x8d'),_0x5113('0x8e')],_0x463402[_0x5113('0x57')][_0x5113('0x8f')])>=0x0){return _0x2e693b[_0x5113('0x36')]({'read':!![]});}else{logger[_0x5113('0x27')](_0x5113('0x90'),'status',_0x5113('0x91'),util['inspect'](_0x463402[_0x5113('0x57')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x44972b=_0x463402[_0x5113('0x57')][_0x5113('0x92')][0x0];if(_0x44972b[_0x5113('0x2d')][_0x5113('0x93')]===_0x5113('0x94')){return _0x2e693b['update']({'read':!![]});}else{logger[_0x5113('0x27')](_0x5113('0x90'),_0x5113('0x2d'),_0x5113('0x95'),util[_0x5113('0x89')](_0x463402['body'],{'showHidden':![],'depth':null}));}break;}return _0x2e693b;}})['then'](respondWithResult(_0x228e75,null))[_0x5113('0x2a')](handleError(_0x228e75,null));};
\ No newline at end of file
+var _0x9df6=['sort','where','filters','pick','merge','type','VIRTUAL','options','include','findAll','rows','catch','show','params','rawAttributes','length','includeAll','find','create','body','update','describe','sms-interactions','accept','sms','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','SmsInteraction','SmsInteractionId','isNil','read1stAt','format','interaction','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','null','AcceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','manual','interface','SIP/%s','channel','motionChannel','event','EventManager','get','RejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','rejectmessage','SmsAccount','SmsAccountId','received\x20delivery\x20report\x20from','twilio','MessageSid','SmsAccount,\x20%s,\x20%s,\x20%s','plivo','MessageUUID','messageId','indexOf','sent','delivered','Status','plivio','inspect','groupName','DELIVERED','infobip','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','socket.io-emitter','redis','register','client','http','request','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','error','code','message','result','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','then','sendStatus','stack','name','index','map','SmsMessage','fieldName','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit'];(function(_0x51557b,_0x521c80){var _0x83171=function(_0x17bd85){while(--_0x17bd85){_0x51557b['push'](_0x51557b['shift']());}};_0x83171(++_0x521c80);}(_0x9df6,0xe2));var _0x69df=function(_0x92c450,_0x41f1e3){_0x92c450=_0x92c450-0x0;var _0x2a9599=_0x9df6[_0x92c450];return _0x2a9599;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x69df('0x0'));var zipdir=require(_0x69df('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x69df('0x2'));var moment=require(_0x69df('0x3'));var BPromise=require(_0x69df('0x4'));var Mustache=require(_0x69df('0x5'));var util=require('util');var path=require(_0x69df('0x6'));var sox=require(_0x69df('0x7'));var csv=require(_0x69df('0x8'));var ejs=require(_0x69df('0x9'));var fs=require('fs');var fs_extra=require(_0x69df('0xa'));var _=require('lodash');var squel=require(_0x69df('0xb'));var crypto=require(_0x69df('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x69df('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x69df('0xe'));var hardwareService=require(_0x69df('0xf'));var logger=require(_0x69df('0x10'))(_0x69df('0x11'));var utils=require(_0x69df('0x12'));var config=require(_0x69df('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x69df('0x14'))['db'];config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x69df('0x15'))(new Redis(config[_0x69df('0x16')]));require('./smsMessage.socket')[_0x69df('0x17')](socket);var jayson=require('jayson/promise');var client=jayson[_0x69df('0x18')][_0x69df('0x19')]({'port':0x232c});var client9002=jayson['client'][_0x69df('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x3fa4c5,_0x547ba2,_0x4f6cc3,_0x4aaa26){return new BPromise(function(_0x4b43f6,_0x4b303f){var _0x77663c=_0x4aaa26||client;return _0x77663c[_0x69df('0x1a')](_0x3fa4c5,_0x4f6cc3)['then'](function(_0x19a6fb){logger[_0x69df('0x1b')](_0x69df('0x1c'),_0x547ba2,_0x69df('0x1d'));logger[_0x69df('0x1e')](_0x69df('0x1f'),_0x547ba2,_0x69df('0x1d'),JSON['stringify'](_0x19a6fb));if(_0x19a6fb[_0x69df('0x20')]){if(_0x19a6fb['error'][_0x69df('0x21')]===0x1f4){logger['error'](_0x69df('0x1c'),_0x547ba2,_0x19a6fb[_0x69df('0x20')][_0x69df('0x22')]);return _0x4b303f(_0x19a6fb[_0x69df('0x20')][_0x69df('0x22')]);}logger['error']('SmsMessage,\x20%s,\x20%s',_0x547ba2,_0x19a6fb[_0x69df('0x20')][_0x69df('0x22')]);return _0x4b43f6(_0x19a6fb[_0x69df('0x20')][_0x69df('0x22')]);}else{logger[_0x69df('0x1b')](_0x69df('0x1c'),_0x547ba2,_0x69df('0x1d'));_0x4b43f6(_0x19a6fb[_0x69df('0x23')]['message']);}})['catch'](function(_0xa8ad8a){logger[_0x69df('0x20')](_0x69df('0x1c'),_0x547ba2,_0xa8ad8a);_0x4b303f(_0xa8ad8a);});});}function respondWithStatusCode(_0x2761d5,_0x1d9e59){_0x1d9e59=_0x1d9e59||0xcc;return function(_0x5aef46){if(_0x5aef46){return _0x2761d5['sendStatus'](_0x1d9e59);}return _0x2761d5['status'](_0x1d9e59)[_0x69df('0x24')]();};}function respondWithResult(_0x5d57e1,_0x5a1c25){_0x5a1c25=_0x5a1c25||0xc8;return function(_0xee37b3){if(_0xee37b3){return _0x5d57e1[_0x69df('0x25')](_0x5a1c25)[_0x69df('0x26')](_0xee37b3);}};}function respondWithFilteredResult(_0x158543,_0x2b6454){return function(_0x29dcda){if(_0x29dcda){var _0x5d77af=typeof _0x2b6454[_0x69df('0x27')]===_0x69df('0x28')&&typeof _0x2b6454[_0x69df('0x29')]===_0x69df('0x28');var _0x1eccc5=_0x29dcda[_0x69df('0x2a')];var _0x455f88=_0x5d77af?0x0:_0x2b6454[_0x69df('0x27')];var _0x61dbe6=_0x5d77af?_0x29dcda[_0x69df('0x2a')]:_0x2b6454['offset']+_0x2b6454[_0x69df('0x29')];var _0x32c845;if(_0x61dbe6>=_0x1eccc5){_0x61dbe6=_0x1eccc5;_0x32c845=0xc8;}else{_0x32c845=0xce;}_0x158543[_0x69df('0x25')](_0x32c845);return _0x158543[_0x69df('0x2b')](_0x69df('0x2c'),_0x455f88+'-'+_0x61dbe6+'/'+_0x1eccc5)[_0x69df('0x26')](_0x29dcda);}return null;};}function patchUpdates(_0x221812){return function(_0x2ccf7e){try{jsonpatch[_0x69df('0x2d')](_0x2ccf7e,_0x221812,!![]);}catch(_0x128443){return BPromise[_0x69df('0x2e')](_0x128443);}return _0x2ccf7e[_0x69df('0x2f')]();};}function saveUpdates(_0x8ebb8,_0x4a666f){return function(_0x52792e){if(_0x52792e){return _0x52792e['update'](_0x8ebb8)['then'](function(_0xb8bea2){return _0xb8bea2;});}return null;};}function removeEntity(_0x4a0200,_0x1dd11f){return function(_0x2936c0){if(_0x2936c0){return _0x2936c0[_0x69df('0x30')]()[_0x69df('0x31')](function(){_0x4a0200['status'](0xcc)[_0x69df('0x24')]();});}};}function handleEntityNotFound(_0x2a2e7f,_0x5c4164){return function(_0x52f6e2){if(!_0x52f6e2){_0x2a2e7f[_0x69df('0x32')](0x194);}return _0x52f6e2;};}function handleError(_0x477e56,_0x1e08f9){_0x1e08f9=_0x1e08f9||0x1f4;return function(_0x416dd4){logger['error'](_0x416dd4[_0x69df('0x33')]);if(_0x416dd4[_0x69df('0x34')]){delete _0x416dd4['name'];}_0x477e56[_0x69df('0x25')](_0x1e08f9)['send'](_0x416dd4);};}exports[_0x69df('0x35')]=function(_0x2f5a2a,_0x44cbe9){var _0x184de0={},_0x49ecc8={},_0x46972a={'count':0x0,'rows':[]};var _0x24c5a2=_[_0x69df('0x36')](db[_0x69df('0x37')]['rawAttributes'],function(_0x1f9932){return{'name':_0x1f9932[_0x69df('0x38')],'type':_0x1f9932['type'][_0x69df('0x39')]};});_0x49ecc8[_0x69df('0x3a')]=_[_0x69df('0x36')](_0x24c5a2,'name');_0x49ecc8[_0x69df('0x3b')]=_[_0x69df('0x3c')](_0x2f5a2a[_0x69df('0x3b')]);_0x49ecc8['filters']=_[_0x69df('0x3d')](_0x49ecc8[_0x69df('0x3a')],_0x49ecc8[_0x69df('0x3b')]);_0x184de0['attributes']=_['intersection'](_0x49ecc8[_0x69df('0x3a')],qs[_0x69df('0x3e')](_0x2f5a2a[_0x69df('0x3b')][_0x69df('0x3e')]));_0x184de0['attributes']=_0x184de0[_0x69df('0x3f')]['length']?_0x184de0[_0x69df('0x3f')]:_0x49ecc8[_0x69df('0x3a')];if(!_0x2f5a2a[_0x69df('0x3b')][_0x69df('0x40')](_0x69df('0x41'))){_0x184de0['limit']=qs['limit'](_0x2f5a2a[_0x69df('0x3b')]['limit']);_0x184de0[_0x69df('0x27')]=qs['offset'](_0x2f5a2a[_0x69df('0x3b')][_0x69df('0x27')]);}_0x184de0['order']=qs[_0x69df('0x42')](_0x2f5a2a[_0x69df('0x3b')][_0x69df('0x42')]);_0x184de0[_0x69df('0x43')]=qs[_0x69df('0x44')](_[_0x69df('0x45')](_0x2f5a2a['query'],_0x49ecc8[_0x69df('0x44')]),_0x24c5a2);if(_0x2f5a2a[_0x69df('0x3b')]['filter']){_0x184de0[_0x69df('0x43')]=_[_0x69df('0x46')](_0x184de0[_0x69df('0x43')],{'$or':_[_0x69df('0x36')](_0x24c5a2,function(_0x44165f){if(_0x44165f[_0x69df('0x47')]!==_0x69df('0x48')){var _0x553394={};_0x553394[_0x44165f[_0x69df('0x34')]]={'$like':'%'+_0x2f5a2a[_0x69df('0x3b')]['filter']+'%'};return _0x553394;}})});}_0x184de0=_['merge']({},_0x184de0,_0x2f5a2a[_0x69df('0x49')]);var _0x1db044={'where':_0x184de0[_0x69df('0x43')]};return db['SmsMessage'][_0x69df('0x2a')](_0x1db044)[_0x69df('0x31')](function(_0x1331ec){_0x46972a[_0x69df('0x2a')]=_0x1331ec;if(_0x2f5a2a[_0x69df('0x3b')]['includeAll']){_0x184de0[_0x69df('0x4a')]=[{'all':!![]}];}return db[_0x69df('0x37')][_0x69df('0x4b')](_0x184de0);})['then'](function(_0x25cb6f){_0x46972a[_0x69df('0x4c')]=_0x25cb6f;return _0x46972a;})[_0x69df('0x31')](respondWithFilteredResult(_0x44cbe9,_0x184de0))[_0x69df('0x4d')](handleError(_0x44cbe9,null));};exports[_0x69df('0x4e')]=function(_0x33d978,_0x33942a){var _0x4cb457={'raw':!![],'where':{'id':_0x33d978[_0x69df('0x4f')]['id']}},_0xf92ff7={};_0xf92ff7[_0x69df('0x3a')]=_[_0x69df('0x3c')](db[_0x69df('0x37')][_0x69df('0x50')]);_0xf92ff7['query']=_[_0x69df('0x3c')](_0x33d978['query']);_0xf92ff7['filters']=_[_0x69df('0x3d')](_0xf92ff7[_0x69df('0x3a')],_0xf92ff7[_0x69df('0x3b')]);_0x4cb457[_0x69df('0x3f')]=_[_0x69df('0x3d')](_0xf92ff7['model'],qs[_0x69df('0x3e')](_0x33d978[_0x69df('0x3b')][_0x69df('0x3e')]));_0x4cb457[_0x69df('0x3f')]=_0x4cb457[_0x69df('0x3f')][_0x69df('0x51')]?_0x4cb457[_0x69df('0x3f')]:_0xf92ff7['model'];if(_0x33d978[_0x69df('0x3b')][_0x69df('0x52')]){_0x4cb457['include']=[{'all':!![]}];}_0x4cb457=_[_0x69df('0x46')]({},_0x4cb457,_0x33d978[_0x69df('0x49')]);return db['SmsMessage'][_0x69df('0x53')](_0x4cb457)[_0x69df('0x31')](handleEntityNotFound(_0x33942a,null))[_0x69df('0x31')](respondWithResult(_0x33942a,null))['catch'](handleError(_0x33942a,null));};exports[_0x69df('0x54')]=function(_0x82b89d,_0x27f7c2){return db[_0x69df('0x37')][_0x69df('0x54')](_0x82b89d[_0x69df('0x55')],{})[_0x69df('0x31')](respondWithResult(_0x27f7c2,0xc9))['catch'](handleError(_0x27f7c2,null));};exports[_0x69df('0x56')]=function(_0x4217a6,_0x76cbdd){if(_0x4217a6[_0x69df('0x55')]['id']){delete _0x4217a6[_0x69df('0x55')]['id'];}return db[_0x69df('0x37')][_0x69df('0x53')]({'where':{'id':_0x4217a6[_0x69df('0x4f')]['id']}})[_0x69df('0x31')](handleEntityNotFound(_0x76cbdd,null))[_0x69df('0x31')](saveUpdates(_0x4217a6[_0x69df('0x55')],null))[_0x69df('0x31')](respondWithResult(_0x76cbdd,null))[_0x69df('0x4d')](handleError(_0x76cbdd,null));};exports[_0x69df('0x30')]=function(_0x5a8a07,_0x4cec1f){return db[_0x69df('0x37')]['find']({'where':{'id':_0x5a8a07[_0x69df('0x4f')]['id']}})[_0x69df('0x31')](handleEntityNotFound(_0x4cec1f,null))['then'](removeEntity(_0x4cec1f,null))[_0x69df('0x4d')](handleError(_0x4cec1f,null));};exports[_0x69df('0x57')]=function(_0x5f4f3c,_0x55e614){return db['SmsMessage']['describe']()['then'](respondWithResult(_0x55e614,null))[_0x69df('0x4d')](handleError(_0x55e614,null));};var interaction_log=require(_0x69df('0x10'))(_0x69df('0x58'));exports[_0x69df('0x59')]=function(_0x195c1e,_0x28fe38,_0x25c620){var _0x20f93b={'agent':{},'channel':_0x69df('0x5a')};if(_0x195c1e[_0x69df('0x55')]['id']){delete _0x195c1e[_0x69df('0x55')]['id'];}_0x195c1e[_0x69df('0x55')]['read']=!![];_0x195c1e['body'][_0x69df('0x5b')]=moment()['format'](_0x69df('0x5c'));_0x195c1e[_0x69df('0x55')][_0x69df('0x5d')]=_0x195c1e[_0x69df('0x55')][_0x69df('0x5d')]||_0x195c1e[_0x69df('0x5e')]['id'];_0x20f93b[_0x69df('0x5f')]['id']=_0x195c1e['body'][_0x69df('0x5d')];return db[_0x69df('0x37')][_0x69df('0x53')]({'where':{'id':_0x195c1e[_0x69df('0x4f')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x28fe38,null))[_0x69df('0x31')](saveUpdates(_0x195c1e[_0x69df('0x55')],null))[_0x69df('0x31')](function(_0x440548){if(_0x440548){_0x20f93b[_0x69df('0x22')]=_0x440548['get']({'plain':!![]});return db[_0x69df('0x60')][_0x69df('0x53')]({'where':{'id':_0x440548[_0x69df('0x61')]}});}return null;})[_0x69df('0x31')](handleEntityNotFound(_0x28fe38,null))['then'](function(_0x1ec320){if(_0x1ec320){return _0x1ec320['update']({'UserId':_0x195c1e[_0x69df('0x55')][_0x69df('0x5d')],'read1stAt':_[_0x69df('0x62')](_0x1ec320[_0x69df('0x63')])?moment()[_0x69df('0x64')](_0x69df('0x5c')):undefined});}return null;})[_0x69df('0x31')](function(_0x5abfcf){if(_0x5abfcf){_0x20f93b[_0x69df('0x65')]=_0x5abfcf['get']({'plain':!![]});interaction_log[_0x69df('0x1b')](_0x69df('0x66'),_0x195c1e[_0x69df('0x5e')]['id'],_0x195c1e[_0x69df('0x5e')][_0x69df('0x34')],_0x195c1e['user'][_0x69df('0x67')],_0x20f93b[_0x69df('0x65')]['id'],_0x195c1e[_0x69df('0x55')]?JSON[_0x69df('0x68')](_0x195c1e['body']):_0x69df('0x69'));return respondWithRpcPromise(_0x69df('0x6a'),'acceptMessage',_0x20f93b);}return null;})[_0x69df('0x31')](function(_0x9e08f9){var _0x221a52='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x9e08f9['message'][_0x69df('0x6b')];return db[_0x69df('0x6c')][_0x69df('0x3b')](_0x221a52,{'type':db[_0x69df('0x6d')][_0x69df('0x6e')][_0x69df('0x6f')],'raw':!![]})[_0x69df('0x31')](function(_0x381777){return _0x381777;});})[_0x69df('0x31')](function(_0x2cd700){if(_0x2cd700){_0x20f93b[_0x69df('0x22')][_0x69df('0x70')]=_0x2cd700[0x0];if(!_0x195c1e[_0x69df('0x55')]['UserId'])return;return db[_0x69df('0x71')][_0x69df('0x53')]({'where':{'id':_0x195c1e[_0x69df('0x55')]['UserId'],'role':_0x69df('0x5f')},'attributes':['id',_0x69df('0x34'),_0x69df('0x72'),_0x69df('0x73'),_0x69df('0x74')],'raw':!![]});}return null;})['then'](function(_0x40aac0){if(!_0x40aac0)return null;_0x20f93b[_0x69df('0x22')]['agent']=_0x40aac0;return _0x20f93b;})[_0x69df('0x31')](function(_0x477b24){if(_0x477b24){if(_0x195c1e[_0x69df('0x55')][_0x69df('0x75')]){_0x20f93b[_0x69df('0x22')][_0x69df('0x76')]=util['format'](_0x69df('0x77'),_0x195c1e[_0x69df('0x5e')]['name']);_0x20f93b[_0x69df('0x22')][_0x69df('0x78')]=_0x20f93b['channel'];_0x20f93b[_0x69df('0x22')][_0x69df('0x79')]=_0x20f93b[_0x69df('0x78')];_0x20f93b[_0x69df('0x22')][_0x69df('0x7a')]='accept';return respondWithRpcPromise(_0x69df('0x7b'),_0x69df('0x7b'),{'event':'acceptmessage','message':_0x20f93b[_0x69df('0x22')]},client9002)[_0x69df('0x31')](function(){return _0x20f93b;});}return _0x20f93b;}return null;})[_0x69df('0x31')](respondWithResult(_0x28fe38,null))['catch'](handleError(_0x28fe38,null));};var interaction_log=require(_0x69df('0x10'))(_0x69df('0x58'));exports[_0x69df('0x2e')]=function(_0x46e747,_0x30d52f,_0x381266){var _0x58aa35={'agent':{},'channel':'sms'};if(_0x46e747[_0x69df('0x55')]['id']){delete _0x46e747['body']['id'];}_0x46e747[_0x69df('0x55')]['UserId']=_0x46e747['body'][_0x69df('0x5d')]||_0x46e747[_0x69df('0x5e')]['id'];_0x58aa35[_0x69df('0x5f')]['id']=_0x46e747['body'][_0x69df('0x5d')];return db['SmsMessage']['find']({'where':{'id':_0x46e747['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x30d52f,null))[_0x69df('0x31')](function(_0x57ce02){if(_0x57ce02){_0x58aa35[_0x69df('0x22')]=_0x57ce02[_0x69df('0x7c')]({'plain':!![]});return db[_0x69df('0x60')][_0x69df('0x53')]({'where':{'id':_0x57ce02[_0x69df('0x61')]}});}return null;})[_0x69df('0x31')](handleEntityNotFound(_0x30d52f,null))[_0x69df('0x31')](function(_0x1d28b4){if(_0x1d28b4){_0x58aa35['interaction']=_0x1d28b4[_0x69df('0x7c')]({'plain':!![]});interaction_log[_0x69df('0x1b')]('[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x46e747['user']['id'],_0x46e747['user'][_0x69df('0x34')],_0x46e747[_0x69df('0x5e')][_0x69df('0x67')],_0x58aa35[_0x69df('0x65')]['id'],_0x46e747[_0x69df('0x55')]?JSON[_0x69df('0x68')](_0x46e747[_0x69df('0x55')]):_0x69df('0x69'));return respondWithRpcPromise(_0x69df('0x7d'),'rejectMessage',_0x58aa35);}return null;})[_0x69df('0x31')](function(_0x17d95e){var _0x256364=_0x69df('0x7e')+_0x17d95e[_0x69df('0x22')][_0x69df('0x6b')];return db[_0x69df('0x6c')]['query'](_0x256364,{'type':db['Sequelize'][_0x69df('0x6e')][_0x69df('0x6f')],'raw':!![]})[_0x69df('0x31')](function(_0x4adf38){return _0x4adf38;});})['then'](function(_0x273fe6){if(_0x273fe6){_0x58aa35[_0x69df('0x22')][_0x69df('0x70')]=_0x273fe6[0x0];if(!_0x46e747[_0x69df('0x55')][_0x69df('0x5d')])return;return db[_0x69df('0x71')][_0x69df('0x53')]({'where':{'id':_0x46e747['body'][_0x69df('0x5d')],'role':_0x69df('0x5f')},'attributes':['id',_0x69df('0x34'),_0x69df('0x72'),_0x69df('0x73'),_0x69df('0x74')],'raw':!![]});}return null;})[_0x69df('0x31')](function(_0x303520){if(!_0x303520)return null;_0x58aa35[_0x69df('0x22')][_0x69df('0x5f')]=_0x303520;return _0x58aa35;})[_0x69df('0x31')](function(_0x4a6c2c){if(_0x4a6c2c){_0x4a6c2c['message']['interface']=util[_0x69df('0x64')](_0x69df('0x77'),_0x46e747[_0x69df('0x5e')][_0x69df('0x34')]);_0x4a6c2c[_0x69df('0x22')][_0x69df('0x78')]=_0x58aa35['channel'];_0x4a6c2c['message'][_0x69df('0x79')]=_0x58aa35[_0x69df('0x78')];_0x4a6c2c[_0x69df('0x22')][_0x69df('0x7a')]=_0x69df('0x2e');respondWithRpcPromise(_0x69df('0x7b'),_0x69df('0x7b'),{'event':_0x69df('0x7f'),'message':_0x4a6c2c[_0x69df('0x22')]},client9002);return _0x58aa35;}return null;})[_0x69df('0x31')](respondWithResult(_0x30d52f,null))['catch'](handleError(_0x30d52f,null));};exports[_0x69df('0x25')]=function(_0xc78b7e,_0x35b0cc,_0xf57cbd){if(_0xc78b7e[_0x69df('0x55')]['id']){delete _0xc78b7e[_0x69df('0x55')]['id'];}var _0x1a1960;return db[_0x69df('0x37')][_0x69df('0x53')]({'where':{'id':_0xc78b7e[_0x69df('0x4f')]['id']}})[_0x69df('0x31')](handleEntityNotFound(_0x35b0cc,null))[_0x69df('0x31')](function(_0x451ffd){if(_0x451ffd){_0x1a1960=_0x451ffd;return db[_0x69df('0x80')][_0x69df('0x53')]({'where':{'id':_0x451ffd[_0x69df('0x81')]}});}})[_0x69df('0x31')](handleEntityNotFound(_0x35b0cc,null))['then'](function(_0x556a09){if(_0x556a09){logger['debug'](_0x69df('0x1f'),_0x69df('0x25'),_0x69df('0x82'),_0x556a09['type'],util['inspect'](_0xc78b7e[_0x69df('0x55')],{'showHidden':![],'depth':null}));switch(_0x556a09[_0x69df('0x47')]){case _0x69df('0x83'):if(_0xc78b7e['body'][_0x69df('0x84')]&&_0xc78b7e[_0x69df('0x55')][_0x69df('0x84')]===_0x1a1960['messageId']){return _0x1a1960[_0x69df('0x56')]({'read':!![]});}else{logger[_0x69df('0x20')](_0x69df('0x85'),_0x69df('0x25'),_0x69df('0x83'),util['inspect'](_0xc78b7e[_0x69df('0x55')],{'showHidden':![],'depth':null}));}break;case _0x69df('0x86'):if(_0xc78b7e[_0x69df('0x55')]['MessageUUID']&&_0xc78b7e['body'][_0x69df('0x87')]===_0x1a1960[_0x69df('0x88')]&&_[_0x69df('0x89')]([_0x69df('0x8a'),_0x69df('0x8b')],_0xc78b7e[_0x69df('0x55')][_0x69df('0x8c')])>=0x0){return _0x1a1960[_0x69df('0x56')]({'read':!![]});}else{logger[_0x69df('0x20')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x69df('0x25'),_0x69df('0x8d'),util[_0x69df('0x8e')](_0xc78b7e[_0x69df('0x55')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x4c639d=_0xc78b7e['body']['results'][0x0];if(_0x4c639d[_0x69df('0x25')][_0x69df('0x8f')]===_0x69df('0x90')){return _0x1a1960['update']({'read':!![]});}else{logger[_0x69df('0x20')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x69df('0x25'),_0x69df('0x91'),util['inspect'](_0xc78b7e[_0x69df('0x55')],{'showHidden':![],'depth':null}));}break;}return _0x1a1960;}})[_0x69df('0x31')](respondWithResult(_0x35b0cc,null))['catch'](handleError(_0x35b0cc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b7b=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','update'];(function(_0x41c4c4,_0x5ee3a1){var _0x17e891=function(_0x5acaec){while(--_0x5acaec){_0x41c4c4['push'](_0x41c4c4['shift']());}};_0x17e891(++_0x5ee3a1);}(_0x5b7b,0x112));var _0xb5b7=function(_0x5a7dd3,_0x26b7cf){_0x5a7dd3=_0x5a7dd3-0x0;var _0x2f4d07=_0x5b7b[_0x5a7dd3];return _0x2f4d07;};'use strict';var EventEmitter=require(_0xb5b7('0x0'));var SmsMessage=require(_0xb5b7('0x1'))['db']['SmsMessage'];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0xb5b7('0x2')](0x0);var events={'afterCreate':_0xb5b7('0x3'),'afterUpdate':_0xb5b7('0x4'),'afterDestroy':'remove'};function emitEvent(_0x4a3ddc){return function(_0x2e1738,_0x41e777,_0x36986b){SmsMessageEvents[_0xb5b7('0x5')](_0x4a3ddc+':'+_0x2e1738['id'],_0x2e1738);SmsMessageEvents[_0xb5b7('0x5')](_0x4a3ddc,_0x2e1738);_0x36986b(null);};}for(var e in events){if(events[_0xb5b7('0x6')](e)){var event=events[e];SmsMessage[_0xb5b7('0x7')](e,emitEvent(event));}}module[_0xb5b7('0x8')]=SmsMessageEvents;
\ No newline at end of file
+var _0xcadf=['save','update','remove','emit','hasOwnProperty','hook','events','../../mysqldb','setMaxListeners'];(function(_0x8fb7a4,_0x607700){var _0x1fdca2=function(_0x300754){while(--_0x300754){_0x8fb7a4['push'](_0x8fb7a4['shift']());}};_0x1fdca2(++_0x607700);}(_0xcadf,0xf9));var _0xfcad=function(_0x3eb7a3,_0x543d67){_0x3eb7a3=_0x3eb7a3-0x0;var _0xfd4e54=_0xcadf[_0x3eb7a3];return _0xfd4e54;};'use strict';var EventEmitter=require(_0xfcad('0x0'));var SmsMessage=require(_0xfcad('0x1'))['db']['SmsMessage'];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0xfcad('0x2')](0x0);var events={'afterCreate':_0xfcad('0x3'),'afterUpdate':_0xfcad('0x4'),'afterDestroy':_0xfcad('0x5')};function emitEvent(_0x2c0847){return function(_0x4d723b,_0x542d64,_0x4b7554){SmsMessageEvents[_0xfcad('0x6')](_0x2c0847+':'+_0x4d723b['id'],_0x4d723b);SmsMessageEvents[_0xfcad('0x6')](_0x2c0847,_0x4d723b);_0x4b7554(null);};}for(var e in events){if(events[_0xfcad('0x7')](e)){var event=events[e];SmsMessage[_0xfcad('0x8')](e,emitEvent(event));}}module['exports']=SmsMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1fd=['https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','data','queued_count','message_id','clickSend','remote','authId','message_uuid','plivo','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/sms/2/text/advanced','/status?token=','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','text','timestamp','keys','sort','length','createHash','md5','digest','hex','signature=','GET','/external/get/send.php?','id_sms','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','bandwidth','https://messaging.bandwidth.com/api/v2/users/','accountId','/messages','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','application/json','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','refid','status','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','exports','SmsMessage','sms_messages','messageId','fti_sms_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','SmsInteraction','findOne','SmsInteractionId','then','update','catch','SmsAccount','find','type','twilio','accountSid','authToken','phone','messages','create','/api/sms/messages/','token','sid','error','SmsMessage,\x20%s,\x20%s,\x20%s','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','username','smsMethod','sender','login?username=','&password=','split','sms','POST','user_key','total_sent','internal_order_id','deliveryReport','afterCreate','skebby','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','requestid','read','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','password'];(function(_0x5c120c,_0x36d71c){var _0x3b8ffe=function(_0x2521a8){while(--_0x2521a8){_0x5c120c['push'](_0x5c120c['shift']());}};_0x3b8ffe(++_0x36d71c);}(_0xa1fd,0x1b9));var _0xda1f=function(_0x7d0149,_0x1b6d23){_0x7d0149=_0x7d0149-0x0;var _0xaabd78=_0xa1fd[_0x7d0149];return _0xaabd78;};'use strict';var _=require(_0xda1f('0x0'));var util=require(_0xda1f('0x1'));var logger=require(_0xda1f('0x2'))(_0xda1f('0x3'));var moment=require('moment');var BPromise=require(_0xda1f('0x4'));var rp=require(_0xda1f('0x5'));var fs=require('fs');var path=require(_0xda1f('0x6'));var rimraf=require(_0xda1f('0x7'));var config=require(_0xda1f('0x8'));var attributes=require('./smsMessage.attributes');module[_0xda1f('0x9')]=function(_0x3b9463,_0x362dee){return _0x3b9463['define'](_0xda1f('0xa'),attributes,{'tableName':_0xda1f('0xb'),'paranoid':![],'indexes':[{'name':_0xda1f('0xc'),'fields':[_0xda1f('0xc')]},{'name':_0xda1f('0xd'),'fields':[_0xda1f('0xe')],'type':_0xda1f('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xf3bced,_0x13467c,_0x5a190f){var _0x174cd9=_0x3b9463[_0xda1f('0x10')];var _0x20ab8b=_0xf3bced[_0xda1f('0x11')]({'plain':!![]});if(_0x20ab8b['direction']['toLowerCase']()==='in'||_0x20ab8b[_0xda1f('0x12')][_0xda1f('0x13')]()===_0xda1f('0x14')&&!_0x20ab8b[_0xda1f('0x15')]&&!_[_0xda1f('0x16')](_0x20ab8b['UserId'])){_0x174cd9[_0xda1f('0x17')][_0xda1f('0x18')]({'where':{'id':_0x20ab8b[_0xda1f('0x19')]}})[_0xda1f('0x1a')](function(_0x2138d0){if(_0x2138d0){_0x2138d0[_0xda1f('0x1b')]({'lastMsgAt':_0x20ab8b['createdAt'],'lastMsgDirection':_0x20ab8b[_0xda1f('0x12')][_0xda1f('0x13')]()});}})[_0xda1f('0x1c')](function(_0x4081d0){console['error'](_0x4081d0);});}if(_0x20ab8b['direction']===_0xda1f('0x14')&&!_0x20ab8b['secret']){var _0x3424a1;_0x174cd9[_0xda1f('0x1d')][_0xda1f('0x1e')]({'where':{'id':_0x20ab8b['SmsAccountId']},'raw':!![]})[_0xda1f('0x1a')](function(_0xe18a0a){_0x3424a1=_0xe18a0a;if(_0x3424a1&&_0x3424a1['type']){switch(_0x3424a1[_0xda1f('0x1f')]){case _0xda1f('0x20'):var _0x5a790c=require(_0xda1f('0x20'));if(_0x3424a1[_0xda1f('0x21')]&&_0x3424a1[_0xda1f('0x22')]&&_0x3424a1[_0xda1f('0x23')]){var _0x3955b8=new _0x5a790c(_0x3424a1[_0xda1f('0x21')],_0x3424a1[_0xda1f('0x22')]);_0x3955b8[_0xda1f('0x24')][_0xda1f('0x25')]({'body':_0x20ab8b[_0xda1f('0xe')],'to':_0x20ab8b[_0xda1f('0x23')],'from':_0x3424a1[_0xda1f('0x23')],'statusCallback':_0x3424a1['remote']+_0xda1f('0x26')+_0x20ab8b['id']+'/status?token='+_0x3424a1[_0xda1f('0x27')]})['then'](function(_0x2a1b64){if(_0x2a1b64[_0xda1f('0x28')]){return _0xf3bced['update']({'messageId':_0x2a1b64[_0xda1f('0x28')]});}})[_0xda1f('0x1c')](function(_0x3231c8){logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x20'),util[_0xda1f('0x2b')](_0x3231c8,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x20'),_0xda1f('0x2c'));}break;case'skebby':var _0x3f8d05='https://api.skebby.it/API/v1.0/REST/';if(_0x3424a1[_0xda1f('0x2d')]&&_0x3424a1['password']){var _0x5ba749={'recipient':[_0x20ab8b[_0xda1f('0x23')]],'message':_0x20ab8b['body'],'message_type':_0x3424a1['smsMethod']};if(_0x3424a1[_0xda1f('0x2e')]&&_0x3424a1[_0xda1f('0x2e')]!=='SI'){_0x5ba749[_0xda1f('0x2f')]=_0x3424a1['phone'];}var _0x16d78b={'url':_0x3f8d05+_0xda1f('0x30')+_0x3424a1['username']+_0xda1f('0x31')+_0x3424a1['password'],'method':'GET'};rp(_0x16d78b)['then'](function(_0x90a7a3){var _0x7f3b78=_0x90a7a3[_0xda1f('0x32')](';');var _0x5b0366={'user_key':_0x7f3b78[0x0],'session_key':_0x7f3b78[0x1]};_0x16d78b={'url':_0x3f8d05+_0xda1f('0x33'),'method':_0xda1f('0x34'),'headers':{'user_key':_0x5b0366[_0xda1f('0x35')],'Session_key':_0x5b0366['session_key']},'json':!![],'body':_0x5ba749};return rp(_0x16d78b);})[_0xda1f('0x1a')](function(_0x53cbaa){if(_0x53cbaa[_0xda1f('0x36')]>=0x1){var _0x24d2ae={'messageId':_0x53cbaa[_0xda1f('0x37')]};if(_0x3424a1[_0xda1f('0x2e')]!=='GP'||!_0x3424a1[_0xda1f('0x38')]){_0x24d2ae['read']=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x24d2ae);}else{return logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),'skebby',util[_0xda1f('0x2b')](_0x53cbaa,{'showHidden':![],'depth':null}));}})[_0xda1f('0x1c')](function(_0x26d4ee){return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x3a'),util[_0xda1f('0x2b')](_0x26d4ee,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),'skebby',_0xda1f('0x3b'));}break;case _0xda1f('0x3c'):if(_0x3424a1[_0xda1f('0x22')]){var _0x253e1b={'recipient':_0x20ab8b[_0xda1f('0x23')],'message':_0x20ab8b['body'],'sender':_0x3424a1[_0xda1f('0x3d')]||_0x3424a1[_0xda1f('0x23')],'authorization':_0x3424a1[_0xda1f('0x22')]};var _0x13467c={'method':_0xda1f('0x34'),'uri':_0xda1f('0x3e'),'body':_0x253e1b,'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x396b5e){var _0x558861={'messageId':_0x396b5e[_0xda1f('0x3f')]};if(!_0x3424a1[_0xda1f('0x38')]){_0x558861[_0xda1f('0x40')]=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x558861);})[_0xda1f('0x1c')](function(_0x35f783){logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x3c'),util[_0xda1f('0x2b')](_0x35f783,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x3c'),_0xda1f('0x41'));}break;case _0xda1f('0x42'):if(_0x3424a1['username']&&_0x3424a1['password']){var _0x253e1b={'messages':[{'source':_0xda1f('0x43'),'to':_0x20ab8b[_0xda1f('0x23')],'body':_0x20ab8b[_0xda1f('0xe')],'from':_0x3424a1['senderString']||_0x3424a1[_0xda1f('0x23')]}]};var _0xca645d=util[_0xda1f('0x44')](_0xda1f('0x45'),_0x3424a1[_0xda1f('0x2d')],_0x3424a1[_0xda1f('0x46')]);var _0x13467c={'method':_0xda1f('0x34'),'uri':_0xda1f('0x47'),'body':_0x253e1b,'headers':{'Authorization':util[_0xda1f('0x44')](_0xda1f('0x48'),new Buffer(_0xca645d)[_0xda1f('0x49')](_0xda1f('0x4a')))},'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x2e4155){if(_0x2e4155['http_code']>=0xc8&&_0x2e4155[_0xda1f('0x4b')]<=0xce){if(_0x2e4155['data']&&_0x2e4155[_0xda1f('0x4c')][_0xda1f('0x4d')]>0x0){var _0x2de858=_['head'](_0x2e4155[_0xda1f('0x4c')][_0xda1f('0x24')]);var _0x1b325a={'messageId':_0x2de858[_0xda1f('0x4e')]};if(!_0x3424a1['deliveryReport']){_0x1b325a[_0xda1f('0x40')]=!![];}return _0xf3bced['update'](_0x1b325a);}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x4f'),util[_0xda1f('0x2b')](_0x2e4155,{'showHidden':![],'depth':null}));}}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x4f'),util[_0xda1f('0x2b')](_0x2e4155,{'showHidden':![],'depth':null}));}})[_0xda1f('0x1c')](function(_0xc14263){logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),'clickSend',util[_0xda1f('0x2b')](_0xc14263,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x4f'),_0xda1f('0x3b'));}break;case'plivo':if(_0x3424a1['authId']&&_0x3424a1[_0xda1f('0x22')]){var _0x253e1b={'dst':_0x20ab8b[_0xda1f('0x23')],'text':_0x20ab8b[_0xda1f('0xe')],'src':_0x3424a1[_0xda1f('0x3d')]||_0x3424a1[_0xda1f('0x23')],'url':_0x3424a1[_0xda1f('0x50')]+_0xda1f('0x26')+_0x20ab8b['id']+'/status?token='+_0x3424a1[_0xda1f('0x27')]};var _0xca645d=util['format']('%s:%s',_0x3424a1[_0xda1f('0x51')],_0x3424a1[_0xda1f('0x22')]);var _0x13467c={'method':_0xda1f('0x34'),'uri':util[_0xda1f('0x44')]('https://api.plivo.com/v1/Account/%s/Message/',_0x3424a1[_0xda1f('0x51')]),'body':_0x253e1b,'headers':{'Authorization':util[_0xda1f('0x44')]('Basic\x20%s',new Buffer(_0xca645d)[_0xda1f('0x49')]('base64'))},'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x2f62b7){var _0x462a53={'messageId':_0x2f62b7[_0xda1f('0x52')][0x0]};return _0xf3bced[_0xda1f('0x1b')](_0x462a53);})[_0xda1f('0x1c')](function(_0x419d91){logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x53'),util[_0xda1f('0x2b')](_0x419d91,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x53'),_0xda1f('0x54'));}break;case _0xda1f('0x55'):if(_0x3424a1[_0xda1f('0x2d')]&&_0x3424a1['password']){if(_0x3424a1[_0xda1f('0x56')]){var _0xa8fe59={'method':_0xda1f('0x34'),'uri':_0x3424a1[_0xda1f('0x56')]+'/auth/1/session','body':{'username':_0x3424a1['username'],'password':_0x3424a1['password']},'json':!![]};return rp(_0xa8fe59)[_0xda1f('0x1a')](function(_0x4877df){var _0x2de863={'method':'POST','uri':_0x3424a1[_0xda1f('0x56')]+_0xda1f('0x57'),'body':{'messages':[{'from':_0x3424a1[_0xda1f('0x23')],'destinations':[{'to':_0x20ab8b[_0xda1f('0x23')]}],'text':_0x20ab8b[_0xda1f('0xe')],'notifyUrl':_0x3424a1[_0xda1f('0x50')]+_0xda1f('0x26')+_0x20ab8b['id']+_0xda1f('0x58')+_0x3424a1[_0xda1f('0x27')],'notifyContentType':'application/json','callbackData':_0x3424a1['phone']+';'+_0x20ab8b[_0xda1f('0xe')]}]},'headers':{'Authorization':_0xda1f('0x59')+_0x4877df[_0xda1f('0x27')]},'json':!![]};return rp(_0x2de863)['then'](function(_0x3c5c52){if(_0x3c5c52[_0xda1f('0x24')]){var _0x59a304={'messageId':_0x3c5c52[_0xda1f('0x24')][0x0][_0xda1f('0xc')]};if(!_0x3424a1[_0xda1f('0x38')]){_0x59a304[_0xda1f('0x40')]=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x59a304);}else{return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate','infobip',util[_0xda1f('0x2b')](_0x3c5c52,{'showHidden':![],'depth':null}));}});})[_0xda1f('0x1c')](function(_0x3a1956){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x55'),util['inspect'](_0x3a1956,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x55'),_0xda1f('0x5a'));}}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),'infobip',_0xda1f('0x3b'));}break;case _0xda1f('0x5b'):var _0x4450a2=require(_0xda1f('0x5c'));if(_0x3424a1[_0xda1f('0x5d')]){var _0x206a4a={};_0x206a4a[_0xda1f('0x5e')]=_0x3424a1['username'];_0x206a4a[_0xda1f('0x23')]=_0x20ab8b[_0xda1f('0x23')];_0x206a4a[_0xda1f('0x2f')]=_0x3424a1[_0xda1f('0x23')];_0x206a4a[_0xda1f('0x5f')]=_0x20ab8b[_0xda1f('0xe')];_0x206a4a[_0xda1f('0x60')]=+new Date();var _0x205a9a='';var _0x5e1faa='';var _0x502a88=Object[_0xda1f('0x61')](_0x206a4a);_0x502a88[_0xda1f('0x62')]();for(var _0x3d313f=0x0;_0x3d313f<_0x502a88[_0xda1f('0x63')];_0x3d313f++){if(_0x205a9a!=''){_0x205a9a+='&';}_0x205a9a+=_0x502a88[_0x3d313f]+'='+encodeURIComponent(_0x206a4a[_0x502a88[_0x3d313f]]);_0x5e1faa+=_0x206a4a[_0x502a88[_0x3d313f]];}_0x5e1faa+=_0x3424a1[_0xda1f('0x5d')];_0x5e1faa=_0x4450a2[_0xda1f('0x64')](_0xda1f('0x65'))[_0xda1f('0x1b')](_0x5e1faa)[_0xda1f('0x66')](_0xda1f('0x67'));if(_0x205a9a!==''){_0x205a9a+='&';}_0x205a9a+=_0xda1f('0x68')+_0x5e1faa;var _0x16d78b={'method':_0xda1f('0x69'),'uri':_0x3424a1['baseUrl']+_0xda1f('0x6a')+_0x205a9a,'json':!![]};return rp(_0x16d78b)['then'](function(_0x24a608){var _0x192ef4=Object[_0xda1f('0x61')](_0x24a608);if(_0x24a608[_0x192ef4[0x0]][_0xda1f('0x29')]&&parseInt(_0x24a608[_0x192ef4[0x0]][_0xda1f('0x29')])===0x0){var _0x41d544={'messageId':_0x24a608[_0x192ef4[0x0]][_0xda1f('0x6b')]};if(!_0x3424a1[_0xda1f('0x38')]){_0x41d544['read']=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x41d544);}else{return logger['error'](_0xda1f('0x2a'),_0xda1f('0x39'),'csc',util['inspect'](_0x24a608['error'],{'showHidden':![],'depth':null}));}})['catch'](function(_0x5b1559){return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x5b'),util['inspect'](_0x5b1559,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x5b'),_0xda1f('0x6c'));}break;case _0xda1f('0x6d'):if(_0x3424a1[_0xda1f('0x5d')]){var _0xb8a105={'method':'POST','uri':_0xda1f('0x6e'),'headers':{'Authorization':_0x3424a1[_0xda1f('0x5d')]},'body':{'content':_0x20ab8b[_0xda1f('0xe')],'to':[_0x20ab8b[_0xda1f('0x23')]],'from':_0x3424a1[_0xda1f('0x23')],'binary':![],'clientMessageId':_0xda1f('0x6f'),'charset':_0xda1f('0x70')},'json':!![]};rp(_0xb8a105)['then'](function(_0x4cc6c3){if(!_0x4cc6c3[_0xda1f('0x29')]){var _0x2653c5={'messageId':_0x4cc6c3[_0xda1f('0x24')][0x0]['apiMessageId']};if(!_0x3424a1[_0xda1f('0x38')]){_0x2653c5['read']=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x2653c5);}else{return logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x6d'),util[_0xda1f('0x2b')](_0x4cc6c3[_0xda1f('0x29')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x55f9a6){return logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x6d'),util[_0xda1f('0x2b')](_0x55f9a6,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x6d'),_0xda1f('0x6c'));}break;case _0xda1f('0x71'):if(_0x3424a1[_0xda1f('0x2d')]&&_0x3424a1[_0xda1f('0x46')]){var _0xca645d=util['format'](_0xda1f('0x45'),_0x3424a1[_0xda1f('0x2d')],_0x3424a1[_0xda1f('0x46')]);var _0x13467c={'method':_0xda1f('0x34'),'uri':_0xda1f('0x72')+_0x3424a1[_0xda1f('0x73')]+_0xda1f('0x74'),'body':{'to':[_0x20ab8b[_0xda1f('0x23')]],'text':_0x20ab8b[_0xda1f('0xe')],'from':_0x3424a1[_0xda1f('0x23')],'applicationId':_0x3424a1['applicationId']},'headers':{'Authorization':util[_0xda1f('0x44')](_0xda1f('0x48'),new Buffer(_0xca645d)[_0xda1f('0x49')](_0xda1f('0x4a')))},'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x5184b2){if(_0x5184b2['id']){var _0x4e28e5={'messageId':_0x5184b2['id']};return _0xf3bced[_0xda1f('0x1b')](_0x4e28e5);}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x71'),util['inspect'](_0x5184b2,{'showHidden':![],'depth':null}));}})['catch'](function(_0x26b926){logger['error'](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x71'),util[_0xda1f('0x2b')](_0x26b926,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x71'),_0xda1f('0x3b'));}break;case _0xda1f('0x75'):if(_0x3424a1[_0xda1f('0x5d')]){var _0x3db1d7={};var _0x16d78b={'method':_0xda1f('0x34'),'uri':_0xda1f('0x76'),'headers':{'Authorization':_0xda1f('0x77')+_0x3424a1[_0xda1f('0x5d')],'Content-Type':_0xda1f('0x78')},'body':{'from':_0x3424a1['phone'],'to':_0x20ab8b[_0xda1f('0x23')],'text':_0x20ab8b[_0xda1f('0xe')]},'json':!![]};return rp(_0x16d78b)[_0xda1f('0x1a')](function(_0x534cc2){if(_0x534cc2['code']==0xca){_0x3db1d7[_0xda1f('0x79')]=_0x534cc2;var _0x5b5f56={'method':_0xda1f('0x34'),'uri':_0xda1f('0x7a'),'headers':{'Authorization':_0xda1f('0x77')+_0x3424a1[_0xda1f('0x5d')],'Content-Type':'application/json'},'body':{'refid':_0x3db1d7['message'][_0xda1f('0x7b')]},'json':!![]};return rp(_0x5b5f56)[_0xda1f('0x1a')](function(_0x3e1e46){_0x3db1d7[_0xda1f('0x7c')]=_0x3e1e46;var _0x1cae1f={'messageId':_0x3db1d7[_0xda1f('0x79')][_0xda1f('0x7b')],'read':!![]};return _0xf3bced[_0xda1f('0x1b')](_0x1cae1f);});}else{return logger['error'](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x75'),util[_0xda1f('0x2b')](_0x534cc2,{'showHidden':![],'depth':null}));}})[_0xda1f('0x1c')](function(_0x58771e){return logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','intelepeer',util[_0xda1f('0x2b')](_0x58771e,{'showHidden':![],'depth':null}));});}else{return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x75'),'Token\x20not\x20received');}break;}}})[_0xda1f('0x7d')](function(){_0x5a190f();});}else{_0x5a190f();}}},'charset':_0xda1f('0x7e'),'collate':_0xda1f('0x7f')});};
\ No newline at end of file
+var _0xb458=['&password=','password','GET','split','sms','POST','user_key','session_key','total_sent','deliveryReport','read','skebby','inspect','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','data','queued_count','head','message_id','clickSend','plivo','authId','/status?token=','https://api.plivo.com/v1/Account/%s/Message/','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','infobip','Missing\x20parameters:\x20base_url','csc','crypto','sender','text','timestamp','keys','sort','length','createHash','digest','signature=','id_sms','Missing\x20parameters:\x20apiKey','clickatell','apiKey','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','bandwidth','accountId','/messages','applicationId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','code','message','Bearer\x20','status','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','fti_sms_messages','models','get','direction','toLowerCase','isNil','UserId','SmsInteraction','findOne','SmsInteractionId','then','update','createdAt','catch','error','SmsAccount','find','SmsAccountId','type','twilio','accountSid','authToken','messages','create','body','phone','remote','/api/sms/messages/','token','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','username','smsMethod','login?username='];(function(_0x446049,_0x12640b){var _0x1fc0ed=function(_0x1535a1){while(--_0x1535a1){_0x446049['push'](_0x446049['shift']());}};_0x1fc0ed(++_0x12640b);}(_0xb458,0xca));var _0x8b45=function(_0x1e06d8,_0x11916d){_0x1e06d8=_0x1e06d8-0x0;var _0x224eb1=_0xb458[_0x1e06d8];return _0x224eb1;};'use strict';var _=require(_0x8b45('0x0'));var util=require(_0x8b45('0x1'));var logger=require(_0x8b45('0x2'))(_0x8b45('0x3'));var moment=require('moment');var BPromise=require(_0x8b45('0x4'));var rp=require(_0x8b45('0x5'));var fs=require('fs');var path=require(_0x8b45('0x6'));var rimraf=require(_0x8b45('0x7'));var config=require(_0x8b45('0x8'));var attributes=require(_0x8b45('0x9'));module[_0x8b45('0xa')]=function(_0x35680c,_0x2a5b3c){return _0x35680c[_0x8b45('0xb')](_0x8b45('0xc'),attributes,{'tableName':_0x8b45('0xd'),'paranoid':![],'indexes':[{'name':_0x8b45('0xe'),'fields':['messageId']},{'name':_0x8b45('0xf'),'fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3c067b,_0x40b585,_0x2a7c83){var _0x59ecdf=_0x35680c[_0x8b45('0x10')];var _0x58b28c=_0x3c067b[_0x8b45('0x11')]({'plain':!![]});if(_0x58b28c[_0x8b45('0x12')][_0x8b45('0x13')]()==='in'||_0x58b28c[_0x8b45('0x12')][_0x8b45('0x13')]()==='out'&&!_0x58b28c['secret']&&!_[_0x8b45('0x14')](_0x58b28c[_0x8b45('0x15')])){_0x59ecdf[_0x8b45('0x16')][_0x8b45('0x17')]({'where':{'id':_0x58b28c[_0x8b45('0x18')]}})[_0x8b45('0x19')](function(_0x1bd228){if(_0x1bd228){_0x1bd228[_0x8b45('0x1a')]({'lastMsgAt':_0x58b28c[_0x8b45('0x1b')],'lastMsgDirection':_0x58b28c[_0x8b45('0x12')][_0x8b45('0x13')]()});}})[_0x8b45('0x1c')](function(_0x29180d){console[_0x8b45('0x1d')](_0x29180d);});}if(_0x58b28c[_0x8b45('0x12')]==='out'&&!_0x58b28c['secret']){var _0x777072;_0x59ecdf[_0x8b45('0x1e')][_0x8b45('0x1f')]({'where':{'id':_0x58b28c[_0x8b45('0x20')]},'raw':!![]})[_0x8b45('0x19')](function(_0x4cf9e5){_0x777072=_0x4cf9e5;if(_0x777072&&_0x777072[_0x8b45('0x21')]){switch(_0x777072['type']){case _0x8b45('0x22'):var _0x4bb625=require(_0x8b45('0x22'));if(_0x777072[_0x8b45('0x23')]&&_0x777072[_0x8b45('0x24')]&&_0x777072['phone']){var _0xc924dd=new _0x4bb625(_0x777072[_0x8b45('0x23')],_0x777072['authToken']);_0xc924dd[_0x8b45('0x25')][_0x8b45('0x26')]({'body':_0x58b28c[_0x8b45('0x27')],'to':_0x58b28c['phone'],'from':_0x777072[_0x8b45('0x28')],'statusCallback':_0x777072[_0x8b45('0x29')]+_0x8b45('0x2a')+_0x58b28c['id']+'/status?token='+_0x777072[_0x8b45('0x2b')]})['then'](function(_0x5cd08a){if(_0x5cd08a[_0x8b45('0x2c')]){return _0x3c067b[_0x8b45('0x1a')]({'messageId':_0x5cd08a[_0x8b45('0x2c')]});}})[_0x8b45('0x1c')](function(_0x40510c){logger['error'](_0x8b45('0x2d'),_0x8b45('0x2e'),'twilio',util['inspect'](_0x40510c,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x8b45('0x2d'),_0x8b45('0x2e'),'twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case'skebby':var _0x531ae2='https://api.skebby.it/API/v1.0/REST/';if(_0x777072[_0x8b45('0x2f')]&&_0x777072['password']){var _0x28d540={'recipient':[_0x58b28c[_0x8b45('0x28')]],'message':_0x58b28c[_0x8b45('0x27')],'message_type':_0x777072[_0x8b45('0x30')]};if(_0x777072['smsMethod']&&_0x777072[_0x8b45('0x30')]!=='SI'){_0x28d540['sender']=_0x777072['phone'];}var _0x43a231={'url':_0x531ae2+_0x8b45('0x31')+_0x777072[_0x8b45('0x2f')]+_0x8b45('0x32')+_0x777072[_0x8b45('0x33')],'method':_0x8b45('0x34')};rp(_0x43a231)[_0x8b45('0x19')](function(_0x5ea14f){var _0x46ec18=_0x5ea14f[_0x8b45('0x35')](';');var _0x2e9a82={'user_key':_0x46ec18[0x0],'session_key':_0x46ec18[0x1]};_0x43a231={'url':_0x531ae2+_0x8b45('0x36'),'method':_0x8b45('0x37'),'headers':{'user_key':_0x2e9a82[_0x8b45('0x38')],'Session_key':_0x2e9a82[_0x8b45('0x39')]},'json':!![],'body':_0x28d540};return rp(_0x43a231);})[_0x8b45('0x19')](function(_0x4e4205){if(_0x4e4205[_0x8b45('0x3a')]>=0x1){var _0x1f6df6={'messageId':_0x4e4205['internal_order_id']};if(_0x777072[_0x8b45('0x30')]!=='GP'||!_0x777072[_0x8b45('0x3b')]){_0x1f6df6[_0x8b45('0x3c')]=!![];}return _0x3c067b['update'](_0x1f6df6);}else{return logger[_0x8b45('0x1d')](_0x8b45('0x2d'),'afterCreate',_0x8b45('0x3d'),util['inspect'](_0x4e4205,{'showHidden':![],'depth':null}));}})[_0x8b45('0x1c')](function(_0x5407c6){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8b45('0x2e'),_0x8b45('0x3d'),util[_0x8b45('0x3e')](_0x5407c6,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),'skebby',_0x8b45('0x3f'));}break;case _0x8b45('0x40'):if(_0x777072['authToken']){var _0x16ff19={'recipient':_0x58b28c[_0x8b45('0x28')],'message':_0x58b28c[_0x8b45('0x27')],'sender':_0x777072[_0x8b45('0x41')]||_0x777072[_0x8b45('0x28')],'authorization':_0x777072[_0x8b45('0x24')]};var _0x40b585={'method':'POST','uri':_0x8b45('0x42'),'body':_0x16ff19,'json':!![]};rp(_0x40b585)['then'](function(_0x3abe4f){var _0x292efd={'messageId':_0x3abe4f['requestid']};if(!_0x777072[_0x8b45('0x3b')]){_0x292efd[_0x8b45('0x3c')]=!![];}return _0x3c067b['update'](_0x292efd);})[_0x8b45('0x1c')](function(_0x49fdeb){logger[_0x8b45('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8b45('0x2e'),_0x8b45('0x40'),util[_0x8b45('0x3e')](_0x49fdeb,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x40'),_0x8b45('0x43'));}break;case _0x8b45('0x44'):if(_0x777072[_0x8b45('0x2f')]&&_0x777072[_0x8b45('0x33')]){var _0x16ff19={'messages':[{'source':_0x8b45('0x45'),'to':_0x58b28c[_0x8b45('0x28')],'body':_0x58b28c['body'],'from':_0x777072[_0x8b45('0x41')]||_0x777072[_0x8b45('0x28')]}]};var _0x2b4976=util[_0x8b45('0x46')](_0x8b45('0x47'),_0x777072[_0x8b45('0x2f')],_0x777072[_0x8b45('0x33')]);var _0x40b585={'method':_0x8b45('0x37'),'uri':_0x8b45('0x48'),'body':_0x16ff19,'headers':{'Authorization':util['format'](_0x8b45('0x49'),new Buffer(_0x2b4976)[_0x8b45('0x4a')](_0x8b45('0x4b')))},'json':!![]};rp(_0x40b585)[_0x8b45('0x19')](function(_0x4d5390){if(_0x4d5390[_0x8b45('0x4c')]>=0xc8&&_0x4d5390[_0x8b45('0x4c')]<=0xce){if(_0x4d5390[_0x8b45('0x4d')]&&_0x4d5390[_0x8b45('0x4d')][_0x8b45('0x4e')]>0x0){var _0x18cc74=_[_0x8b45('0x4f')](_0x4d5390[_0x8b45('0x4d')]['messages']);var _0x3a42a3={'messageId':_0x18cc74[_0x8b45('0x50')]};if(!_0x777072[_0x8b45('0x3b')]){_0x3a42a3[_0x8b45('0x3c')]=!![];}return _0x3c067b[_0x8b45('0x1a')](_0x3a42a3);}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),'clickSend',util[_0x8b45('0x3e')](_0x4d5390,{'showHidden':![],'depth':null}));}}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),'clickSend',util['inspect'](_0x4d5390,{'showHidden':![],'depth':null}));}})[_0x8b45('0x1c')](function(_0x36ba0f){logger[_0x8b45('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8b45('0x2e'),_0x8b45('0x51'),util[_0x8b45('0x3e')](_0x36ba0f,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x51'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x8b45('0x52'):if(_0x777072[_0x8b45('0x53')]&&_0x777072[_0x8b45('0x24')]){var _0x16ff19={'dst':_0x58b28c[_0x8b45('0x28')],'text':_0x58b28c[_0x8b45('0x27')],'src':_0x777072[_0x8b45('0x41')]||_0x777072[_0x8b45('0x28')],'url':_0x777072[_0x8b45('0x29')]+_0x8b45('0x2a')+_0x58b28c['id']+_0x8b45('0x54')+_0x777072[_0x8b45('0x2b')]};var _0x2b4976=util[_0x8b45('0x46')](_0x8b45('0x47'),_0x777072['authId'],_0x777072[_0x8b45('0x24')]);var _0x40b585={'method':_0x8b45('0x37'),'uri':util['format'](_0x8b45('0x55'),_0x777072[_0x8b45('0x53')]),'body':_0x16ff19,'headers':{'Authorization':util[_0x8b45('0x46')](_0x8b45('0x49'),new Buffer(_0x2b4976)[_0x8b45('0x4a')](_0x8b45('0x4b')))},'json':!![]};rp(_0x40b585)['then'](function(_0x21f441){var _0x47ecf8={'messageId':_0x21f441['message_uuid'][0x0]};return _0x3c067b[_0x8b45('0x1a')](_0x47ecf8);})[_0x8b45('0x1c')](function(_0x35ef77){logger[_0x8b45('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8b45('0x2e'),'plivo',util[_0x8b45('0x3e')](_0x35ef77,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x8b45('0x52'),'Missing\x20parameters:\x20authId,\x20authToken');}break;case'infobip':if(_0x777072[_0x8b45('0x2f')]&&_0x777072[_0x8b45('0x33')]){if(_0x777072[_0x8b45('0x56')]){var _0x56b10e={'method':_0x8b45('0x37'),'uri':_0x777072['baseUrl']+_0x8b45('0x57'),'body':{'username':_0x777072[_0x8b45('0x2f')],'password':_0x777072[_0x8b45('0x33')]},'json':!![]};return rp(_0x56b10e)[_0x8b45('0x19')](function(_0x5dfaf2){var _0x36363c={'method':'POST','uri':_0x777072[_0x8b45('0x56')]+_0x8b45('0x58'),'body':{'messages':[{'from':_0x777072[_0x8b45('0x28')],'destinations':[{'to':_0x58b28c[_0x8b45('0x28')]}],'text':_0x58b28c[_0x8b45('0x27')],'notifyUrl':_0x777072[_0x8b45('0x29')]+_0x8b45('0x2a')+_0x58b28c['id']+_0x8b45('0x54')+_0x777072[_0x8b45('0x2b')],'notifyContentType':_0x8b45('0x59'),'callbackData':_0x777072[_0x8b45('0x28')]+';'+_0x58b28c[_0x8b45('0x27')]}]},'headers':{'Authorization':_0x8b45('0x5a')+_0x5dfaf2[_0x8b45('0x2b')]},'json':!![]};return rp(_0x36363c)['then'](function(_0x56d703){if(_0x56d703['messages']){var _0x4d5af8={'messageId':_0x56d703[_0x8b45('0x25')][0x0]['messageId']};if(!_0x777072[_0x8b45('0x3b')]){_0x4d5af8[_0x8b45('0x3c')]=!![];}return _0x3c067b[_0x8b45('0x1a')](_0x4d5af8);}else{return logger['error'](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x5b'),util[_0x8b45('0x3e')](_0x56d703,{'showHidden':![],'depth':null}));}});})[_0x8b45('0x1c')](function(_0xccfe63){return logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),'infobip',util[_0x8b45('0x3e')](_0xccfe63,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x5b'),_0x8b45('0x5c'));}}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x5b'),_0x8b45('0x3f'));}break;case _0x8b45('0x5d'):var _0x53f941=require(_0x8b45('0x5e'));if(_0x777072['apiKey']){var _0x59d466={};_0x59d466['login']=_0x777072[_0x8b45('0x2f')];_0x59d466[_0x8b45('0x28')]=_0x58b28c[_0x8b45('0x28')];_0x59d466[_0x8b45('0x5f')]=_0x777072['phone'];_0x59d466[_0x8b45('0x60')]=_0x58b28c[_0x8b45('0x27')];_0x59d466[_0x8b45('0x61')]=+new Date();var _0x5307d4='';var _0x2bee3c='';var _0x5411a3=Object[_0x8b45('0x62')](_0x59d466);_0x5411a3[_0x8b45('0x63')]();for(var _0x57618a=0x0;_0x57618a<_0x5411a3[_0x8b45('0x64')];_0x57618a++){if(_0x5307d4!=''){_0x5307d4+='&';}_0x5307d4+=_0x5411a3[_0x57618a]+'='+encodeURIComponent(_0x59d466[_0x5411a3[_0x57618a]]);_0x2bee3c+=_0x59d466[_0x5411a3[_0x57618a]];}_0x2bee3c+=_0x777072['apiKey'];_0x2bee3c=_0x53f941[_0x8b45('0x65')]('md5')['update'](_0x2bee3c)[_0x8b45('0x66')]('hex');if(_0x5307d4!==''){_0x5307d4+='&';}_0x5307d4+=_0x8b45('0x67')+_0x2bee3c;var _0x43a231={'method':_0x8b45('0x34'),'uri':_0x777072[_0x8b45('0x56')]+'/external/get/send.php?'+_0x5307d4,'json':!![]};return rp(_0x43a231)['then'](function(_0x52bea8){var _0x386f34=Object[_0x8b45('0x62')](_0x52bea8);if(_0x52bea8[_0x386f34[0x0]]['error']&&parseInt(_0x52bea8[_0x386f34[0x0]]['error'])===0x0){var _0x2fbe9c={'messageId':_0x52bea8[_0x386f34[0x0]][_0x8b45('0x68')]};if(!_0x777072[_0x8b45('0x3b')]){_0x2fbe9c['read']=!![];}return _0x3c067b[_0x8b45('0x1a')](_0x2fbe9c);}else{return logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),'csc',util[_0x8b45('0x3e')](_0x52bea8[_0x8b45('0x1d')],{'showHidden':![],'depth':null}));}})[_0x8b45('0x1c')](function(_0x45d917){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8b45('0x2e'),_0x8b45('0x5d'),util[_0x8b45('0x3e')](_0x45d917,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x5d'),_0x8b45('0x69'));}break;case _0x8b45('0x6a'):if(_0x777072[_0x8b45('0x6b')]){var _0x170d30={'method':_0x8b45('0x37'),'uri':_0x8b45('0x6c'),'headers':{'Authorization':_0x777072[_0x8b45('0x6b')]},'body':{'content':_0x58b28c[_0x8b45('0x27')],'to':[_0x58b28c['phone']],'from':_0x777072['phone'],'binary':![],'clientMessageId':_0x8b45('0x6d'),'charset':_0x8b45('0x6e')},'json':!![]};rp(_0x170d30)[_0x8b45('0x19')](function(_0x1451c9){if(!_0x1451c9[_0x8b45('0x1d')]){var _0x262b65={'messageId':_0x1451c9[_0x8b45('0x25')][0x0][_0x8b45('0x6f')]};if(!_0x777072[_0x8b45('0x3b')]){_0x262b65[_0x8b45('0x3c')]=!![];}return _0x3c067b[_0x8b45('0x1a')](_0x262b65);}else{return logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x6a'),util[_0x8b45('0x3e')](_0x1451c9[_0x8b45('0x1d')],{'showHidden':![],'depth':null}));}})[_0x8b45('0x1c')](function(_0x19a313){return logger[_0x8b45('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8b45('0x2e'),_0x8b45('0x6a'),util[_0x8b45('0x3e')](_0x19a313,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x6a'),_0x8b45('0x69'));}break;case _0x8b45('0x70'):if(_0x777072['username']&&_0x777072[_0x8b45('0x33')]){var _0x2b4976=util[_0x8b45('0x46')](_0x8b45('0x47'),_0x777072['username'],_0x777072[_0x8b45('0x33')]);var _0x40b585={'method':_0x8b45('0x37'),'uri':'https://messaging.bandwidth.com/api/v2/users/'+_0x777072[_0x8b45('0x71')]+_0x8b45('0x72'),'body':{'to':[_0x58b28c[_0x8b45('0x28')]],'text':_0x58b28c[_0x8b45('0x27')],'from':_0x777072['phone'],'applicationId':_0x777072[_0x8b45('0x73')]},'headers':{'Authorization':util[_0x8b45('0x46')](_0x8b45('0x49'),new Buffer(_0x2b4976)[_0x8b45('0x4a')]('base64'))},'json':!![]};rp(_0x40b585)['then'](function(_0x1d4e14){if(_0x1d4e14['id']){var _0x3aa212={'messageId':_0x1d4e14['id']};return _0x3c067b['update'](_0x3aa212);}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x70'),util[_0x8b45('0x3e')](_0x1d4e14,{'showHidden':![],'depth':null}));}})[_0x8b45('0x1c')](function(_0xee9cc5){logger[_0x8b45('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','bandwidth',util[_0x8b45('0x3e')](_0xee9cc5,{'showHidden':![],'depth':null}));});}else{logger[_0x8b45('0x1d')](_0x8b45('0x2d'),'afterCreate',_0x8b45('0x70'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x8b45('0x74'):if(_0x777072[_0x8b45('0x6b')]){var _0x38694b={};var _0x43a231={'method':_0x8b45('0x37'),'uri':_0x8b45('0x75'),'headers':{'Authorization':'Bearer\x20'+_0x777072[_0x8b45('0x6b')],'Content-Type':_0x8b45('0x59')},'body':{'from':_0x777072[_0x8b45('0x28')],'to':_0x58b28c[_0x8b45('0x28')],'text':_0x58b28c['body']},'json':!![]};return rp(_0x43a231)[_0x8b45('0x19')](function(_0x18e3b3){if(_0x18e3b3[_0x8b45('0x76')]==0xca){_0x38694b[_0x8b45('0x77')]=_0x18e3b3;var _0x3a95a6={'method':_0x8b45('0x37'),'uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0x8b45('0x78')+_0x777072[_0x8b45('0x6b')],'Content-Type':'application/json'},'body':{'refid':_0x38694b[_0x8b45('0x77')]['refid']},'json':!![]};return rp(_0x3a95a6)[_0x8b45('0x19')](function(_0x41f86a){_0x38694b[_0x8b45('0x79')]=_0x41f86a;var _0x328da3={'messageId':_0x38694b[_0x8b45('0x77')]['refid'],'read':!![]};return _0x3c067b[_0x8b45('0x1a')](_0x328da3);});}else{return logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x74'),util[_0x8b45('0x3e')](_0x18e3b3,{'showHidden':![],'depth':null}));}})[_0x8b45('0x1c')](function(_0x5d1b02){return logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x74'),util[_0x8b45('0x3e')](_0x5d1b02,{'showHidden':![],'depth':null}));});}else{return logger[_0x8b45('0x1d')](_0x8b45('0x2d'),_0x8b45('0x2e'),_0x8b45('0x74'),_0x8b45('0x7a'));}break;}}})[_0x8b45('0x7b')](function(){_0x2a7c83();});}else{_0x2a7c83();}}},'charset':_0x8b45('0x7c'),'collate':_0x8b45('0x7d')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0a2=['message','catch','SmsMessage','raw','CreateSmsMessage','stringify','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./smsMessage.socket','then','info','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','error','SmsMessage,\x20%s,\x20%s'];(function(_0x2d364e,_0x301c5e){var _0x1b9312=function(_0x1b05bb){while(--_0x1b05bb){_0x2d364e['push'](_0x2d364e['shift']());}};_0x1b9312(++_0x301c5e);}(_0xf0a2,0x92));var _0x2f0a=function(_0x55fdc4,_0x2771db){_0x55fdc4=_0x55fdc4-0x0;var _0x5f404a=_0xf0a2[_0x55fdc4];return _0x5f404a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x2f0a('0x0'));var BPromise=require(_0x2f0a('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2f0a('0x2'));var db=require(_0x2f0a('0x3'))['db'];var utils=require(_0x2f0a('0x4'));var logger=require(_0x2f0a('0x5'))(_0x2f0a('0x6'));var config=require(_0x2f0a('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x2f0a('0x8')][_0x2f0a('0x9')]({'port':0x232a});config[_0x2f0a('0xa')]=_[_0x2f0a('0xb')](config[_0x2f0a('0xa')],{'host':_0x2f0a('0xc'),'port':0x18eb});var socket=require(_0x2f0a('0xd'))(new Redis(config[_0x2f0a('0xa')]));require(_0x2f0a('0xe'))['register'](socket);function respondWithRpcPromise(_0x1cba74,_0x4eef71,_0x11bc82){return new BPromise(function(_0x44ca01,_0x2f552e){return client['request'](_0x1cba74,_0x11bc82)[_0x2f0a('0xf')](function(_0xf9539d){logger[_0x2f0a('0x10')]('SmsMessage,\x20%s,\x20%s',_0x4eef71,_0x2f0a('0x11'));logger[_0x2f0a('0x12')](_0x2f0a('0x13'),_0x4eef71,'request\x20sent',JSON['stringify'](_0xf9539d));if(_0xf9539d[_0x2f0a('0x14')]){if(_0xf9539d['error']['code']===0x1f4){logger[_0x2f0a('0x14')](_0x2f0a('0x15'),_0x4eef71,_0xf9539d[_0x2f0a('0x14')][_0x2f0a('0x16')]);return _0x2f552e(_0xf9539d[_0x2f0a('0x14')][_0x2f0a('0x16')]);}logger[_0x2f0a('0x14')](_0x2f0a('0x15'),_0x4eef71,_0xf9539d['error'][_0x2f0a('0x16')]);return _0x44ca01(_0xf9539d[_0x2f0a('0x14')][_0x2f0a('0x16')]);}else{logger[_0x2f0a('0x10')](_0x2f0a('0x15'),_0x4eef71,'request\x20sent');_0x44ca01(_0xf9539d['result'][_0x2f0a('0x16')]);}})[_0x2f0a('0x17')](function(_0x5f99b6){logger['error'](_0x2f0a('0x15'),_0x4eef71,_0x5f99b6);_0x2f552e(_0x5f99b6);});});}exports['CreateSmsMessage']=function(_0x65b972){var _0x39444b=this;return new Promise(function(_0x1214ff,_0x57cbcc){return db[_0x2f0a('0x18')]['create'](_0x65b972['body'],{'raw':_0x65b972['options']?_0x65b972['options'][_0x2f0a('0x19')]===undefined?!![]:![]:!![]})[_0x2f0a('0xf')](function(_0x55ef33){logger[_0x2f0a('0x10')](_0x2f0a('0x1a'),_0x65b972);logger[_0x2f0a('0x12')]('CreateSmsMessage',_0x65b972,JSON[_0x2f0a('0x1b')](_0x55ef33));_0x1214ff(_0x55ef33);})[_0x2f0a('0x17')](function(_0x51ab81){logger[_0x2f0a('0x14')](_0x2f0a('0x1a'),_0x51ab81[_0x2f0a('0x16')],_0x65b972);_0x57cbcc(_0x39444b['error'](0x1f4,_0x51ab81[_0x2f0a('0x16')]));});});};
\ No newline at end of file
+var _0x46b1=['defaults','localhost','./smsMessage.socket','register','request','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','create','body','options','raw','then','CreateSmsMessage','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis'];(function(_0x5382ff,_0x4946a9){var _0x4e749a=function(_0x4062a2){while(--_0x4062a2){_0x5382ff['push'](_0x5382ff['shift']());}};_0x4e749a(++_0x4946a9);}(_0x46b1,0x197));var _0x146b=function(_0x4ccf7f,_0x161ffd){_0x4ccf7f=_0x4ccf7f-0x0;var _0x1953f0=_0x46b1[_0x4ccf7f];return _0x1953f0;};'use strict';var _=require(_0x146b('0x0'));var util=require(_0x146b('0x1'));var moment=require('moment');var BPromise=require(_0x146b('0x2'));var rs=require(_0x146b('0x3'));var fs=require('fs');var Redis=require(_0x146b('0x4'));var db=require(_0x146b('0x5'))['db'];var utils=require(_0x146b('0x6'));var logger=require('../../config/logger')(_0x146b('0x7'));var config=require(_0x146b('0x8'));var jayson=require(_0x146b('0x9'));var client=jayson[_0x146b('0xa')][_0x146b('0xb')]({'port':0x232a});config[_0x146b('0xc')]=_[_0x146b('0xd')](config[_0x146b('0xc')],{'host':_0x146b('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x146b('0xc')]));require(_0x146b('0xf'))[_0x146b('0x10')](socket);function respondWithRpcPromise(_0x1a03d1,_0xe5cbbf,_0x18286d){return new BPromise(function(_0x2eaad2,_0xf63b2a){return client[_0x146b('0x11')](_0x1a03d1,_0x18286d)['then'](function(_0xe15fa3){logger[_0x146b('0x12')](_0x146b('0x13'),_0xe5cbbf,_0x146b('0x14'));logger[_0x146b('0x15')](_0x146b('0x16'),_0xe5cbbf,_0x146b('0x14'),JSON[_0x146b('0x17')](_0xe15fa3));if(_0xe15fa3[_0x146b('0x18')]){if(_0xe15fa3['error'][_0x146b('0x19')]===0x1f4){logger[_0x146b('0x18')](_0x146b('0x13'),_0xe5cbbf,_0xe15fa3[_0x146b('0x18')]['message']);return _0xf63b2a(_0xe15fa3[_0x146b('0x18')][_0x146b('0x1a')]);}logger[_0x146b('0x18')](_0x146b('0x13'),_0xe5cbbf,_0xe15fa3[_0x146b('0x18')]['message']);return _0x2eaad2(_0xe15fa3[_0x146b('0x18')][_0x146b('0x1a')]);}else{logger[_0x146b('0x12')](_0x146b('0x13'),_0xe5cbbf,'request\x20sent');_0x2eaad2(_0xe15fa3[_0x146b('0x1b')][_0x146b('0x1a')]);}})['catch'](function(_0x3c2acc){logger[_0x146b('0x18')]('SmsMessage,\x20%s,\x20%s',_0xe5cbbf,_0x3c2acc);_0xf63b2a(_0x3c2acc);});});}exports['CreateSmsMessage']=function(_0x414218){var _0x2b6e37=this;return new Promise(function(_0x38f6bd,_0x4f3644){return db['SmsMessage'][_0x146b('0x1c')](_0x414218[_0x146b('0x1d')],{'raw':_0x414218[_0x146b('0x1e')]?_0x414218[_0x146b('0x1e')][_0x146b('0x1f')]===undefined?!![]:![]:!![]})[_0x146b('0x20')](function(_0x36f4e2){logger[_0x146b('0x12')](_0x146b('0x21'),_0x414218);logger[_0x146b('0x15')]('CreateSmsMessage',_0x414218,JSON[_0x146b('0x17')](_0x36f4e2));_0x38f6bd(_0x36f4e2);})[_0x146b('0x22')](function(_0x38efda){logger[_0x146b('0x18')]('CreateSmsMessage',_0x38efda[_0x146b('0x1a')],_0x414218);_0x4f3644(_0x2b6e37[_0x146b('0x18')](0x1f4,_0x38efda[_0x146b('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe738=['register','length','smsMessage:','./smsMessage.events','save','emit','removeListener'];(function(_0x27462a,_0x297f08){var _0x7bbf6b=function(_0x19589d){while(--_0x19589d){_0x27462a['push'](_0x27462a['shift']());}};_0x7bbf6b(++_0x297f08);}(_0xe738,0x1f4));var _0x8e73=function(_0x1969a7,_0x5a133a){_0x1969a7=_0x1969a7-0x0;var _0x3d665f=_0xe738[_0x1969a7];return _0x3d665f;};'use strict';var SmsMessageEvents=require(_0x8e73('0x0'));var events=[_0x8e73('0x1'),'remove','update'];function createListener(_0x3fb73b,_0x508c02){return function(_0x1b3d3b){_0x508c02[_0x8e73('0x2')](_0x3fb73b,_0x1b3d3b);};}function removeListener(_0x3df4a6,_0x5c191a){return function(){SmsMessageEvents[_0x8e73('0x3')](_0x3df4a6,_0x5c191a);};}exports[_0x8e73('0x4')]=function(_0x466a09){for(var _0x333d95=0x0,_0x39ea3d=events[_0x8e73('0x5')];_0x333d95<_0x39ea3d;_0x333d95++){var _0x461b43=events[_0x333d95];var _0x3e75ee=createListener(_0x8e73('0x6')+_0x461b43,_0x466a09);SmsMessageEvents['on'](_0x461b43,_0x3e75ee);}};
\ No newline at end of file
+var _0x1a10=['save','remove','update','emit','removeListener','register'];(function(_0x2c1a16,_0x2e0cb4){var _0x51c0cf=function(_0x41e796){while(--_0x41e796){_0x2c1a16['push'](_0x2c1a16['shift']());}};_0x51c0cf(++_0x2e0cb4);}(_0x1a10,0xea));var _0x01a1=function(_0x1e71c1,_0x28f627){_0x1e71c1=_0x1e71c1-0x0;var _0x17df40=_0x1a10[_0x1e71c1];return _0x17df40;};'use strict';var SmsMessageEvents=require('./smsMessage.events');var events=[_0x01a1('0x0'),_0x01a1('0x1'),_0x01a1('0x2')];function createListener(_0x33ac58,_0x321fde){return function(_0x238257){_0x321fde[_0x01a1('0x3')](_0x33ac58,_0x238257);};}function removeListener(_0x515c5f,_0x11d469){return function(){SmsMessageEvents[_0x01a1('0x4')](_0x515c5f,_0x11d469);};}exports[_0x01a1('0x5')]=function(_0x51fc57){for(var _0x162269=0x0,_0x4e6b1b=events['length'];_0x162269<_0x4e6b1b;_0x162269++){var _0x30edf6=events[_0x162269];var _0x47f317=createListener('smsMessage:'+_0x30edf6,_0x51fc57);SmsMessageEvents['on'](_0x30edf6,_0x47f317);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x902f=['/:id','/:id/members','/:id/teams','getTeams','create','post','addTeams','/:id/users','put','update','delete','removeTeams','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./smsQueue.controller','isAuthenticated','index','get','/describe','describe'];(function(_0x30508d,_0x15fee6){var _0x5ba9b7=function(_0x4a35d3){while(--_0x4a35d3){_0x30508d['push'](_0x30508d['shift']());}};_0x5ba9b7(++_0x15fee6);}(_0x902f,0x16c));var _0xf902=function(_0x4576de,_0x2f8141){_0x4576de=_0x4576de-0x0;var _0x3c04a7=_0x902f[_0x4576de];return _0x3c04a7;};'use strict';var multer=require(_0xf902('0x0'));var util=require('util');var path=require(_0xf902('0x1'));var timeout=require(_0xf902('0x2'));var express=require(_0xf902('0x3'));var router=express[_0xf902('0x4')]();var fs_extra=require(_0xf902('0x5'));var auth=require(_0xf902('0x6'));var interaction=require(_0xf902('0x7'));var config=require('../../config/environment');var controller=require(_0xf902('0x8'));router['get']('/',auth[_0xf902('0x9')](),controller[_0xf902('0xa')]);router[_0xf902('0xb')](_0xf902('0xc'),auth[_0xf902('0x9')](),controller[_0xf902('0xd')]);router['get'](_0xf902('0xe'),auth[_0xf902('0x9')](),controller['show']);router['get'](_0xf902('0xf'),auth[_0xf902('0x9')](),controller['getMembers']);router['get'](_0xf902('0x10'),auth['isAuthenticated'](),controller[_0xf902('0x11')]);router['get']('/:id/users',auth[_0xf902('0x9')](),controller['getAgents']);router['post']('/',auth['isAuthenticated'](),controller[_0xf902('0x12')]);router[_0xf902('0x13')](_0xf902('0x10'),auth['isAuthenticated'](),controller[_0xf902('0x14')]);router[_0xf902('0x13')](_0xf902('0x15'),auth[_0xf902('0x9')](),controller['addAgents']);router[_0xf902('0x16')](_0xf902('0xe'),auth[_0xf902('0x9')](),controller[_0xf902('0x17')]);router[_0xf902('0x18')](_0xf902('0xe'),auth[_0xf902('0x9')](),controller['destroy']);router[_0xf902('0x18')](_0xf902('0x10'),auth[_0xf902('0x9')](),controller[_0xf902('0x19')]);router[_0xf902('0x18')](_0xf902('0x15'),auth[_0xf902('0x9')](),controller['removeAgents']);module[_0xf902('0x1a')]=router;
\ No newline at end of file
+var _0xf1dd=['/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','update','delete','destroy','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./smsQueue.controller','get','index','/describe','isAuthenticated','describe','/:id','show','/:id/members'];(function(_0xdac027,_0x5d75de){var _0x1e5e64=function(_0x2f4727){while(--_0x2f4727){_0xdac027['push'](_0xdac027['shift']());}};_0x1e5e64(++_0x5d75de);}(_0xf1dd,0x106));var _0xdf1d=function(_0x440917,_0x20ea7b){_0x440917=_0x440917-0x0;var _0x5e906b=_0xf1dd[_0x440917];return _0x5e906b;};'use strict';var multer=require(_0xdf1d('0x0'));var util=require(_0xdf1d('0x1'));var path=require(_0xdf1d('0x2'));var timeout=require(_0xdf1d('0x3'));var express=require(_0xdf1d('0x4'));var router=express[_0xdf1d('0x5')]();var fs_extra=require(_0xdf1d('0x6'));var auth=require(_0xdf1d('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xdf1d('0x8'));router[_0xdf1d('0x9')]('/',auth['isAuthenticated'](),controller[_0xdf1d('0xa')]);router[_0xdf1d('0x9')](_0xdf1d('0xb'),auth[_0xdf1d('0xc')](),controller[_0xdf1d('0xd')]);router['get'](_0xdf1d('0xe'),auth[_0xdf1d('0xc')](),controller[_0xdf1d('0xf')]);router[_0xdf1d('0x9')](_0xdf1d('0x10'),auth['isAuthenticated'](),controller['getMembers']);router[_0xdf1d('0x9')](_0xdf1d('0x11'),auth['isAuthenticated'](),controller[_0xdf1d('0x12')]);router['get'](_0xdf1d('0x13'),auth[_0xdf1d('0xc')](),controller[_0xdf1d('0x14')]);router[_0xdf1d('0x15')]('/',auth['isAuthenticated'](),controller[_0xdf1d('0x16')]);router[_0xdf1d('0x15')]('/:id/teams',auth[_0xdf1d('0xc')](),controller[_0xdf1d('0x17')]);router[_0xdf1d('0x15')](_0xdf1d('0x13'),auth[_0xdf1d('0xc')](),controller[_0xdf1d('0x18')]);router[_0xdf1d('0x19')](_0xdf1d('0xe'),auth[_0xdf1d('0xc')](),controller[_0xdf1d('0x1a')]);router[_0xdf1d('0x1b')]('/:id',auth[_0xdf1d('0xc')](),controller[_0xdf1d('0x1c')]);router[_0xdf1d('0x1b')](_0xdf1d('0x11'),auth[_0xdf1d('0xc')](),controller['removeTeams']);router[_0xdf1d('0x1b')](_0xdf1d('0x13'),auth['isAuthenticated'](),controller[_0xdf1d('0x1d')]);module[_0xdf1d('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1436=['sequelize','STRING','name','INTEGER','ENUM','rrmemory','beepall','roundrobin'];(function(_0x421257,_0x4b98a4){var _0x4a3604=function(_0x4ec164){while(--_0x4ec164){_0x421257['push'](_0x421257['shift']());}};_0x4a3604(++_0x4b98a4);}(_0x1436,0x78));var _0x6143=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x1436[_0x42cae2];return _0x5f256f;};'use strict';var Sequelize=require(_0x6143('0x0'));module['exports']={'name':{'type':Sequelize[_0x6143('0x1')],'unique':_0x6143('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x6143('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x6143('0x4')](_0x6143('0x5'),_0x6143('0x6'),_0x6143('0x7'))}};
\ No newline at end of file
+var _0x9cd2=['roundrobin','sequelize','exports','STRING','name','INTEGER','ENUM','beepall'];(function(_0x5be566,_0x4d62e0){var _0x3840db=function(_0x276319){while(--_0x276319){_0x5be566['push'](_0x5be566['shift']());}};_0x3840db(++_0x4d62e0);}(_0x9cd2,0x1b9));var _0x29cd=function(_0x28611e,_0x586726){_0x28611e=_0x28611e-0x0;var _0x530f69=_0x9cd2[_0x28611e];return _0x530f69;};'use strict';var Sequelize=require(_0x29cd('0x0'));module[_0x29cd('0x1')]={'name':{'type':Sequelize[_0x29cd('0x2')],'unique':_0x29cd('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x29cd('0x2')]},'timeout':{'type':Sequelize[_0x29cd('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x29cd('0x5')]('rrmemory',_0x29cd('0x6'),_0x29cd('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d54=['length','find','catch','create','role','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','findOne','order','SmsQueueId','options','UserSmsQueue','findAndCountAll','UserId','agent','smsPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','Team','pick','addTeams','ids','Agents','interface','sequelize','transaction','each','findOrCreate','userSmsQueue:save','removeTeams','tq.TeamId','from','user_has_teams','SmsQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','includes','union','compact','value','isEmpty','addAgents','omit','spread','removeAgents','isArray','emit','userSmsQueue:remove','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','squel','crypto','jsforce','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','end','status','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','get','SmsQueues','UserProfileResource','destroy','stack','name','map','SmsQueue','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params'];(function(_0x59f31e,_0x1fd672){var _0x1258af=function(_0x4d947e){while(--_0x4d947e){_0x59f31e['push'](_0x59f31e['shift']());}};_0x1258af(++_0x1fd672);}(_0x4d54,0xc1));var _0x44d5=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x4d54[_0x40a045];return _0x1a687c;};'use strict';var emlformat=require(_0x44d5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x44d5('0x1'));var jsonpatch=require(_0x44d5('0x2'));var rp=require(_0x44d5('0x3'));var moment=require(_0x44d5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x44d5('0x5'));var util=require(_0x44d5('0x6'));var path=require(_0x44d5('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x44d5('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x44d5('0x9'));var squel=require(_0x44d5('0xa'));var crypto=require(_0x44d5('0xb'));var jsforce=require(_0x44d5('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x44d5('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x44d5('0xe'));var qs=require(_0x44d5('0xf'));var as=require(_0x44d5('0x10'));var hardwareService=require(_0x44d5('0x11'));var logger=require(_0x44d5('0x12'))(_0x44d5('0x13'));var utils=require(_0x44d5('0x14'));var config=require(_0x44d5('0x15'));var licenseUtil=require(_0x44d5('0x16'));var db=require(_0x44d5('0x17'))['db'];config['redis']=_['defaults'](config[_0x44d5('0x18')],{'host':_0x44d5('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x44d5('0x18')]));require('./smsQueue.socket')['register'](socket);function respondWithStatusCode(_0x35f93d,_0x1d4fe0){_0x1d4fe0=_0x1d4fe0||0xcc;return function(_0x5409be){if(_0x5409be){return _0x35f93d['sendStatus'](_0x1d4fe0);}return _0x35f93d['status'](_0x1d4fe0)[_0x44d5('0x1a')]();};}function respondWithResult(_0x15545d,_0x2fa7a9){_0x2fa7a9=_0x2fa7a9||0xc8;return function(_0x233c2c){if(_0x233c2c){return _0x15545d[_0x44d5('0x1b')](_0x2fa7a9)['json'](_0x233c2c);}};}function respondWithFilteredResult(_0x115a7c,_0x5da25a){return function(_0x1e3868){if(_0x1e3868){var _0x649676=typeof _0x5da25a[_0x44d5('0x1c')]===_0x44d5('0x1d')&&typeof _0x5da25a['limit']===_0x44d5('0x1d');var _0x5ac353=_0x1e3868[_0x44d5('0x1e')];var _0x29b8d2=_0x649676?0x0:_0x5da25a['offset'];var _0x471302=_0x649676?_0x1e3868[_0x44d5('0x1e')]:_0x5da25a[_0x44d5('0x1c')]+_0x5da25a[_0x44d5('0x1f')];var _0xe39f0c;if(_0x471302>=_0x5ac353){_0x471302=_0x5ac353;_0xe39f0c=0xc8;}else{_0xe39f0c=0xce;}_0x115a7c[_0x44d5('0x1b')](_0xe39f0c);return _0x115a7c[_0x44d5('0x20')](_0x44d5('0x21'),_0x29b8d2+'-'+_0x471302+'/'+_0x5ac353)[_0x44d5('0x22')](_0x1e3868);}return null;};}function patchUpdates(_0x10aeca){return function(_0x467b70){try{jsonpatch[_0x44d5('0x23')](_0x467b70,_0x10aeca,!![]);}catch(_0x481585){return BPromise[_0x44d5('0x24')](_0x481585);}return _0x467b70[_0x44d5('0x25')]();};}function saveUpdates(_0x25afa1,_0x20005b){return function(_0x2f0642){if(_0x2f0642){return _0x2f0642[_0x44d5('0x26')](_0x25afa1)[_0x44d5('0x27')](function(_0x555da7){return _0x555da7;});}return null;};}function removeEntity(_0x3434ea,_0x588bf6){return function(_0x55ff8b){if(_0x55ff8b){return _0x55ff8b['destroy']()[_0x44d5('0x27')](function(){var _0x1a37ca=_0x55ff8b[_0x44d5('0x28')]({'plain':!![]});var _0x2a7c0d=_0x44d5('0x29');return db[_0x44d5('0x2a')][_0x44d5('0x2b')]({'where':{'type':_0x2a7c0d,'resourceId':_0x1a37ca['id']}})[_0x44d5('0x27')](function(){return _0x55ff8b;});})[_0x44d5('0x27')](function(){_0x3434ea[_0x44d5('0x1b')](0xcc)[_0x44d5('0x1a')]();});}};}function handleEntityNotFound(_0x4eb9c1,_0x4b9431){return function(_0x2107ff){if(!_0x2107ff){_0x4eb9c1['sendStatus'](0x194);}return _0x2107ff;};}function handleError(_0x8b4c45,_0x49446d){_0x49446d=_0x49446d||0x1f4;return function(_0x311c9d){logger['error'](_0x311c9d[_0x44d5('0x2c')]);if(_0x311c9d['name']){delete _0x311c9d[_0x44d5('0x2d')];}_0x8b4c45['status'](_0x49446d)['send'](_0x311c9d);};}exports['index']=function(_0x331021,_0x232777){var _0x8b4877={},_0x443402={},_0x23bd92={'count':0x0,'rows':[]};var _0x27d5dc=_[_0x44d5('0x2e')](db[_0x44d5('0x2f')][_0x44d5('0x30')],function(_0x203f50){return{'name':_0x203f50['fieldName'],'type':_0x203f50[_0x44d5('0x31')][_0x44d5('0x32')]};});_0x443402[_0x44d5('0x33')]=_[_0x44d5('0x2e')](_0x27d5dc,'name');_0x443402[_0x44d5('0x34')]=_[_0x44d5('0x35')](_0x331021[_0x44d5('0x34')]);_0x443402[_0x44d5('0x36')]=_['intersection'](_0x443402[_0x44d5('0x33')],_0x443402[_0x44d5('0x34')]);_0x8b4877[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x443402[_0x44d5('0x33')],qs[_0x44d5('0x39')](_0x331021[_0x44d5('0x34')][_0x44d5('0x39')]));_0x8b4877[_0x44d5('0x37')]=_0x8b4877['attributes']['length']?_0x8b4877['attributes']:_0x443402['model'];if(!_0x331021[_0x44d5('0x34')][_0x44d5('0x3a')](_0x44d5('0x3b'))){_0x8b4877['limit']=qs['limit'](_0x331021[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x8b4877[_0x44d5('0x1c')]=qs['offset'](_0x331021[_0x44d5('0x34')][_0x44d5('0x1c')]);}_0x8b4877['order']=qs[_0x44d5('0x3c')](_0x331021[_0x44d5('0x34')]['sort']);_0x8b4877[_0x44d5('0x3d')]=qs['filters'](_['pick'](_0x331021[_0x44d5('0x34')],_0x443402[_0x44d5('0x36')]),_0x27d5dc);if(_0x331021['query'][_0x44d5('0x3e')]){_0x8b4877[_0x44d5('0x3d')]=_[_0x44d5('0x3f')](_0x8b4877[_0x44d5('0x3d')],{'$or':_[_0x44d5('0x2e')](_0x27d5dc,function(_0xb902d6){if(_0xb902d6[_0x44d5('0x31')]!==_0x44d5('0x40')){var _0xcf2967={};_0xcf2967[_0xb902d6[_0x44d5('0x2d')]]={'$like':'%'+_0x331021[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0xcf2967;}})});}_0x8b4877=_[_0x44d5('0x3f')]({},_0x8b4877,_0x331021['options']);var _0x22be9c={'where':_0x8b4877[_0x44d5('0x3d')]};return db[_0x44d5('0x2f')][_0x44d5('0x1e')](_0x22be9c)[_0x44d5('0x27')](function(_0x5744a8){_0x23bd92['count']=_0x5744a8;if(_0x331021[_0x44d5('0x34')][_0x44d5('0x41')]){_0x8b4877[_0x44d5('0x42')]=[{'all':!![]}];}return db['SmsQueue'][_0x44d5('0x43')](_0x8b4877);})[_0x44d5('0x27')](function(_0x4f1d87){_0x23bd92[_0x44d5('0x44')]=_0x4f1d87;return _0x23bd92;})['then'](respondWithFilteredResult(_0x232777,_0x8b4877))['catch'](handleError(_0x232777,null));};exports[_0x44d5('0x45')]=function(_0x2aa61c,_0xc679ad){var _0x305321={'raw':!![],'where':{'id':_0x2aa61c[_0x44d5('0x46')]['id']}},_0x1d0784={};_0x1d0784[_0x44d5('0x33')]=_[_0x44d5('0x35')](db[_0x44d5('0x2f')][_0x44d5('0x30')]);_0x1d0784[_0x44d5('0x34')]=_['keys'](_0x2aa61c[_0x44d5('0x34')]);_0x1d0784['filters']=_['intersection'](_0x1d0784[_0x44d5('0x33')],_0x1d0784['query']);_0x305321['attributes']=_[_0x44d5('0x38')](_0x1d0784['model'],qs[_0x44d5('0x39')](_0x2aa61c[_0x44d5('0x34')][_0x44d5('0x39')]));_0x305321[_0x44d5('0x37')]=_0x305321['attributes'][_0x44d5('0x47')]?_0x305321[_0x44d5('0x37')]:_0x1d0784[_0x44d5('0x33')];if(_0x2aa61c[_0x44d5('0x34')][_0x44d5('0x41')]){_0x305321[_0x44d5('0x42')]=[{'all':!![]}];}_0x305321=_[_0x44d5('0x3f')]({},_0x305321,_0x2aa61c['options']);return db[_0x44d5('0x2f')][_0x44d5('0x48')](_0x305321)[_0x44d5('0x27')](handleEntityNotFound(_0xc679ad,null))[_0x44d5('0x27')](respondWithResult(_0xc679ad,null))[_0x44d5('0x49')](handleError(_0xc679ad,null));};exports[_0x44d5('0x4a')]=function(_0x164e6d,_0x5e0607){return db['SmsQueue']['create'](_0x164e6d['body'],{})['then'](function(_0x22c43f){var _0x5dd818=_0x164e6d['user']['get']({'plain':!![]});if(!_0x5dd818)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5dd818[_0x44d5('0x4b')]===_0x44d5('0x4c')){var _0x14262f=_0x22c43f[_0x44d5('0x28')]({'plain':!![]});var _0x29c9b9='SmsQueues';return db[_0x44d5('0x4d')][_0x44d5('0x48')]({'where':{'name':_0x29c9b9,'userProfileId':_0x5dd818[_0x44d5('0x4e')]},'raw':!![]})[_0x44d5('0x27')](function(_0x13b9c9){if(_0x13b9c9&&_0x13b9c9['autoAssociation']===0x0){return db[_0x44d5('0x2a')][_0x44d5('0x4a')]({'name':_0x14262f['name'],'resourceId':_0x14262f['id'],'type':_0x13b9c9[_0x44d5('0x2d')],'sectionId':_0x13b9c9['id']},{})[_0x44d5('0x27')](function(){return _0x22c43f;});}else{return _0x22c43f;}})[_0x44d5('0x49')](function(_0x547faa){logger['error'](_0x44d5('0x4f'),_0x547faa);throw _0x547faa;});}return _0x22c43f;})['then'](respondWithResult(_0x5e0607,0xc9))[_0x44d5('0x49')](handleError(_0x5e0607,null));};exports[_0x44d5('0x26')]=function(_0x68463e,_0x2cc5b8){if(_0x68463e[_0x44d5('0x50')]['id']){delete _0x68463e[_0x44d5('0x50')]['id'];}return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x68463e[_0x44d5('0x46')]['id']}})['then'](handleEntityNotFound(_0x2cc5b8,null))[_0x44d5('0x27')](saveUpdates(_0x68463e[_0x44d5('0x50')],null))[_0x44d5('0x27')](respondWithResult(_0x2cc5b8,null))[_0x44d5('0x49')](handleError(_0x2cc5b8,null));};exports['destroy']=function(_0x2e9a33,_0x2dc15d){return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x2e9a33[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0x2dc15d,null))[_0x44d5('0x27')](removeEntity(_0x2dc15d,null))[_0x44d5('0x49')](handleError(_0x2dc15d,null));};exports[_0x44d5('0x51')]=function(_0x31a551,_0x58b267){return db[_0x44d5('0x2f')][_0x44d5('0x51')]()[_0x44d5('0x27')](respondWithResult(_0x58b267,null))['catch'](handleError(_0x58b267,null));};exports['getMembers']=function(_0x10af4a,_0x39417a,_0x1f6cd1){var _0x570617={'raw':!![],'where':{}},_0x16f7ca={},_0x103f59;return db['SmsQueue'][_0x44d5('0x52')]({'where':{'id':_0x10af4a[_0x44d5('0x46')]['id']}})['then'](handleEntityNotFound(_0x39417a,null))[_0x44d5('0x27')](function(_0x482c9f){if(_0x482c9f){_0x103f59=_0x482c9f[_0x44d5('0x28')]({'plain':!![]});_0x16f7ca[_0x44d5('0x33')]=_[_0x44d5('0x35')](db['UserSmsQueue']['rawAttributes']);_0x16f7ca[_0x44d5('0x34')]=_[_0x44d5('0x35')](_0x10af4a[_0x44d5('0x34')]);_0x16f7ca[_0x44d5('0x36')]=_[_0x44d5('0x38')](_0x16f7ca[_0x44d5('0x33')],_0x16f7ca[_0x44d5('0x34')]);_0x570617[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x16f7ca[_0x44d5('0x33')],qs['fields'](_0x10af4a[_0x44d5('0x34')][_0x44d5('0x39')]));_0x570617[_0x44d5('0x37')]=_0x570617['attributes'][_0x44d5('0x47')]?_0x570617[_0x44d5('0x37')]:_0x16f7ca[_0x44d5('0x33')];if(!_0x10af4a['query'][_0x44d5('0x3a')](_0x44d5('0x3b'))){_0x570617[_0x44d5('0x1f')]=qs[_0x44d5('0x1f')](_0x10af4a[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x570617[_0x44d5('0x1c')]=qs[_0x44d5('0x1c')](_0x10af4a['query']['offset']);}_0x570617[_0x44d5('0x53')]=qs[_0x44d5('0x3c')](_0x10af4a[_0x44d5('0x34')]['sort']);_0x570617['where']=qs[_0x44d5('0x36')](_['pick'](_0x10af4a['query'],_0x16f7ca[_0x44d5('0x36')]));_0x570617['where'][_0x44d5('0x54')]=_0x482c9f['id'];if(_0x10af4a[_0x44d5('0x34')][_0x44d5('0x3e')]){_0x570617[_0x44d5('0x3d')]=_[_0x44d5('0x3f')](_0x570617[_0x44d5('0x3d')],{'$or':_[_0x44d5('0x2e')](_0x570617[_0x44d5('0x37')],function(_0x29940d){var _0x16ef11={};_0x16ef11[_0x29940d]={'$like':'%'+_0x10af4a[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0x16ef11;})});}_0x570617=_[_0x44d5('0x3f')]({},_0x570617,_0x10af4a[_0x44d5('0x55')]);return db[_0x44d5('0x56')]['findAll'](_0x570617);}})[_0x44d5('0x27')](function(_0x540659){if(_0x540659){return db['User'][_0x44d5('0x57')]({'where':{'id':_[_0x44d5('0x2e')](_0x540659,_0x44d5('0x58')),'role':_0x44d5('0x59')},'attributes':['id','name',_0x44d5('0x5a'),'updatedAt',_0x44d5('0x5b')]});}})[_0x44d5('0x27')](function(_0x2bb826){if(_0x2bb826){return{'count':_0x2bb826[_0x44d5('0x1e')],'rows':_[_0x44d5('0x2e')](_0x2bb826[_0x44d5('0x44')],function(_0x5b867c){return{'membername':_0x5b867c[_0x44d5('0x2d')],'UserId':_0x5b867c['id'],'queue_name':_0x103f59[_0x44d5('0x2d')],'SmsQueueId':_0x103f59['id'],'interface':util[_0x44d5('0x5c')](_0x44d5('0x5d'),_0x44d5('0x5e'),_0x5b867c['name']),'penalty':0x0,'paused':_0x5b867c[_0x44d5('0x5a')],'createdAt':_0x5b867c[_0x44d5('0x5b')],'updatedAt':_0x5b867c[_0x44d5('0x5f')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x44d5('0x27')](respondWithFilteredResult(_0x39417a,_0x570617))[_0x44d5('0x49')](handleError(_0x39417a,null));};exports[_0x44d5('0x60')]=function(_0xd35e40,_0xb8aa65,_0xa9e165){var _0x3520b7={};var _0x579d71={};var _0x465e01;var _0x118595;return db[_0x44d5('0x2f')][_0x44d5('0x52')]({'where':{'id':_0xd35e40[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0xb8aa65,null))[_0x44d5('0x27')](function(_0x39d248){if(_0x39d248){_0x465e01=_0x39d248;_0x579d71[_0x44d5('0x33')]=_[_0x44d5('0x35')](db[_0x44d5('0x61')][_0x44d5('0x30')]);_0x579d71[_0x44d5('0x34')]=_[_0x44d5('0x35')](_0xd35e40[_0x44d5('0x34')]);_0x579d71['filters']=_[_0x44d5('0x38')](_0x579d71[_0x44d5('0x33')],_0x579d71['query']);_0x3520b7[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x579d71[_0x44d5('0x33')],qs[_0x44d5('0x39')](_0xd35e40[_0x44d5('0x34')]['fields']));_0x3520b7[_0x44d5('0x37')]=_0x3520b7[_0x44d5('0x37')]['length']?_0x3520b7[_0x44d5('0x37')]:_0x579d71[_0x44d5('0x33')];_0x3520b7[_0x44d5('0x53')]=qs[_0x44d5('0x3c')](_0xd35e40[_0x44d5('0x34')][_0x44d5('0x3c')]);_0x3520b7[_0x44d5('0x3d')]=qs[_0x44d5('0x36')](_[_0x44d5('0x62')](_0xd35e40['query'],_0x579d71[_0x44d5('0x36')]));if(_0xd35e40[_0x44d5('0x34')][_0x44d5('0x3e')]){_0x3520b7[_0x44d5('0x3d')]=_[_0x44d5('0x3f')](_0x3520b7[_0x44d5('0x3d')],{'$or':_[_0x44d5('0x2e')](_0x3520b7[_0x44d5('0x37')],function(_0x159014){var _0x5a5132={};_0x5a5132[_0x159014]={'$like':'%'+_0xd35e40[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0x5a5132;})});}_0x3520b7=_[_0x44d5('0x3f')]({},_0x3520b7,_0xd35e40[_0x44d5('0x55')]);return _0x465e01['getTeams'](_0x3520b7);}})[_0x44d5('0x27')](function(_0x118da0){if(_0x118da0){_0x118595=_0x118da0[_0x44d5('0x47')];if(!_0xd35e40[_0x44d5('0x34')]['hasOwnProperty']('nolimit')){_0x3520b7[_0x44d5('0x1f')]=qs[_0x44d5('0x1f')](_0xd35e40[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x3520b7[_0x44d5('0x1c')]=qs['offset'](_0xd35e40[_0x44d5('0x34')]['offset']);}return _0x465e01['getTeams'](_0x3520b7);}})['then'](function(_0x534c77){if(_0x534c77){return _0x534c77?{'count':_0x118595,'rows':_0x534c77}:null;}})[_0x44d5('0x27')](respondWithResult(_0xb8aa65,null))[_0x44d5('0x49')](handleError(_0xb8aa65,null));};exports[_0x44d5('0x63')]=function(_0x4d3515,_0x5e9b63,_0x4eb346){var _0x261655=_0x4d3515[_0x44d5('0x50')][_0x44d5('0x64')];return db[_0x44d5('0x61')][_0x44d5('0x43')]({'where':{'id':_0x261655},'attributes':['id'],'include':[{'model':db['User'],'as':_0x44d5('0x65'),'attributes':['id',_0x44d5('0x2d'),'online','voicePause',_0x44d5('0x66')],'raw':!![]}]})['then'](function(_0x2a223c){if(_0x2a223c){var _0x5f524f=_['flatMap'](_0x2a223c,function(_0x7acafe){var _0x51cc07=_0x7acafe[_0x44d5('0x28')]({'plain':!![]});return _0x51cc07['Agents'];});return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x4d3515[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](function(_0x20b321){return db[_0x44d5('0x67')][_0x44d5('0x68')](function(_0x5ab163){return _0x20b321['addTeams'](_0x261655,{'transaction':_0x5ab163})['then'](function(){return BPromise[_0x44d5('0x69')](_0x5f524f,function(_0x394607){return db[_0x44d5('0x56')][_0x44d5('0x6a')]({'where':{'UserId':_0x394607['id'],'SmsQueueId':_0x4d3515['params']['id']},'transaction':_0x5ab163});});})[_0x44d5('0x27')](function(){_0x5f524f['forEach'](function(_0x22b025){socket['emit'](_0x44d5('0x6b'),{'UserId':_0x22b025['id'],'SmsQueueId':_0x20b321['id']});});});});});}})[_0x44d5('0x27')](respondWithStatusCode(_0x5e9b63,null))[_0x44d5('0x49')](handleError(_0x5e9b63,null));};exports[_0x44d5('0x6c')]=function(_0xd47b5d,_0x7f0147,_0x1ca436){return db[_0x44d5('0x61')]['findAll']({'where':{'id':_0xd47b5d[_0x44d5('0x34')][_0x44d5('0x64')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x44d5('0x65'),'attributes':['id'],'raw':!![]}]})[_0x44d5('0x27')](handleEntityNotFound(_0x7f0147,null))[_0x44d5('0x27')](function(_0x18f3ca){var _0x2d2fcf=_[_0x44d5('0x2e')](_0x18f3ca,'id');var _0x2dde23=[];var _0x369de3=[];var _0x5cf751=squel['select']();_0x5cf751['field'](_0x44d5('0x6d'))[_0x44d5('0x6e')]('team_has_sms_queues','tq')['join'](_0x44d5('0x6f'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x44d5('0x70'),_0xd47b5d[_0x44d5('0x46')]['id']);for(var _0x3eadf9=0x0;_0x3eadf9<_0x18f3ca[_0x44d5('0x47')];_0x3eadf9+=0x1){let _0x36fafe=_0x18f3ca[_0x3eadf9];for(var _0x37546c=0x0;_0x37546c<_0x36fafe[_0x44d5('0x65')][_0x44d5('0x47')];_0x37546c+=0x1){let _0x1e47c6=_0x36fafe['Agents'][_0x37546c];var _0xff3ab1=_0x5cf751['clone']();_0xff3ab1[_0x44d5('0x3d')](_0x44d5('0x71'),_0x1e47c6['id']);_0x369de3[_0x44d5('0x72')](db[_0x44d5('0x67')]['query'](_0xff3ab1[_0x44d5('0x73')](),{'type':db[_0x44d5('0x67')][_0x44d5('0x74')]['SELECT']})['then'](function(_0x43685d){if(_0x43685d[_0x44d5('0x47')]===0x1){return _0x1e47c6['id'];}else{var _0xdf901c=_[_0x44d5('0x75')](_[_0x44d5('0x2e')](_0x43685d,_0x44d5('0x76')),function(_0x1dee77){return _[_0x44d5('0x77')](_0x2d2fcf,_0x1dee77);});if(_0xdf901c){return _0x1e47c6['id'];}}}));}}return BPromise['all'](_0x369de3)['then'](function(_0x4255e9){_0x2dde23=_(_0x2dde23)[_0x44d5('0x78')](_0x4255e9)[_0x44d5('0x79')]()[_0x44d5('0x7a')]();return db['SmsQueue'][_0x44d5('0x48')]({'where':{'id':_0xd47b5d['params']['id']}})[_0x44d5('0x27')](function(_0x8d72b8){return db[_0x44d5('0x67')]['transaction'](function(_0x6bb8b1){return _0x8d72b8[_0x44d5('0x6c')](_0xd47b5d[_0x44d5('0x34')][_0x44d5('0x64')],{'transaction':_0x6bb8b1})['then'](function(){if(!_[_0x44d5('0x7b')](_0x2dde23)){return _0x8d72b8['removeAgents'](_0x2dde23,{'transaction':_0x6bb8b1});}})['then'](function(){_0x2dde23['forEach'](function(_0x58bac7){socket['emit']('userSmsQueue:remove',{'UserId':_0x58bac7,'SmsQueueId':_0x8d72b8['id']});});});});});});})[_0x44d5('0x27')](respondWithStatusCode(_0x7f0147,null))[_0x44d5('0x49')](handleError(_0x7f0147,null));};exports['addAgents']=function(_0x290afa,_0x19c666,_0x39a963){return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x290afa[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0x19c666,null))[_0x44d5('0x27')](function(_0x4fea33){if(_0x4fea33){return _0x4fea33[_0x44d5('0x7c')](_0x290afa[_0x44d5('0x50')][_0x44d5('0x64')],_[_0x44d5('0x7d')](_0x290afa[_0x44d5('0x50')],[_0x44d5('0x64'),'id'])||{})[_0x44d5('0x7e')](function(_0x4524f8){for(var _0x1fa3bf=0x0;_0x1fa3bf<_0x290afa[_0x44d5('0x50')][_0x44d5('0x64')][_0x44d5('0x47')];_0x1fa3bf+=0x1){socket['emit'](_0x44d5('0x6b'),{'UserId':Number(_0x290afa[_0x44d5('0x50')][_0x44d5('0x64')][_0x1fa3bf]),'SmsQueueId':Number(_0x290afa[_0x44d5('0x46')]['id'])});}return _0x4524f8;});}})[_0x44d5('0x27')](respondWithResult(_0x19c666,null))['catch'](handleError(_0x19c666,null));};exports[_0x44d5('0x7f')]=function(_0x2f9d3d,_0x444e9c,_0x33ba22){return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x2f9d3d[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0x444e9c,null))[_0x44d5('0x27')](function(_0x2b6edf){if(_0x2b6edf){return _0x2b6edf[_0x44d5('0x7f')](_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')])[_0x44d5('0x27')](function(){if(_[_0x44d5('0x80')](_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')])){for(var _0x4e29e9=0x0;_0x4e29e9<_0x2f9d3d[_0x44d5('0x34')]['ids'][_0x44d5('0x47')];_0x4e29e9+=0x1){socket[_0x44d5('0x81')](_0x44d5('0x82'),{'UserId':Number(_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')][_0x4e29e9]),'SmsQueueId':Number(_0x2f9d3d[_0x44d5('0x46')]['id'])});}}else{socket[_0x44d5('0x81')]('userSmsQueue:remove',{'UserId':Number(_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')]),'SmsQueueId':Number(_0x2f9d3d[_0x44d5('0x46')]['id'])});}});}})[_0x44d5('0x27')](respondWithStatusCode(_0x444e9c,null))[_0x44d5('0x49')](handleError(_0x444e9c,null));};exports['getAgents']=function(_0x47cdec,_0x59894d,_0x434107){var _0x30d120={};var _0x327011={};var _0x1d8870;var _0x411dbc;return db[_0x44d5('0x2f')][_0x44d5('0x52')]({'where':{'id':_0x47cdec[_0x44d5('0x46')]['id']}})['then'](handleEntityNotFound(_0x59894d,null))[_0x44d5('0x27')](function(_0x5f2ec8){if(_0x5f2ec8){_0x1d8870=_0x5f2ec8;_0x327011[_0x44d5('0x33')]=_['keys'](db['User'][_0x44d5('0x30')]);_0x327011['query']=_[_0x44d5('0x35')](_0x47cdec[_0x44d5('0x34')]);_0x327011[_0x44d5('0x36')]=_['intersection'](_0x327011[_0x44d5('0x33')],_0x327011[_0x44d5('0x34')]);_0x30d120[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x327011['model'],qs['fields'](_0x47cdec[_0x44d5('0x34')][_0x44d5('0x39')]));_0x30d120['attributes']=_0x30d120['attributes'][_0x44d5('0x47')]?_0x30d120[_0x44d5('0x37')]:_0x327011[_0x44d5('0x33')];_0x30d120['order']=qs[_0x44d5('0x3c')](_0x47cdec['query'][_0x44d5('0x3c')]);_0x30d120[_0x44d5('0x3d')]=qs[_0x44d5('0x36')](_[_0x44d5('0x62')](_0x47cdec['query'],_0x327011[_0x44d5('0x36')]));if(_0x47cdec['query'][_0x44d5('0x3e')]){_0x30d120[_0x44d5('0x3d')]=_['merge'](_0x30d120['where'],{'$or':_[_0x44d5('0x2e')](_0x30d120[_0x44d5('0x37')],function(_0x1615f1){var _0x3b7955={};_0x3b7955[_0x1615f1]={'$like':'%'+_0x47cdec[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0x3b7955;})});}_0x30d120=_[_0x44d5('0x3f')]({},_0x30d120,_0x47cdec['options']);return _0x1d8870['getAgents'](_0x30d120);}})[_0x44d5('0x27')](function(_0x5a4db3){if(_0x5a4db3){_0x411dbc=_0x5a4db3['length'];if(!_0x47cdec[_0x44d5('0x34')][_0x44d5('0x3a')](_0x44d5('0x3b'))){_0x30d120[_0x44d5('0x1f')]=qs['limit'](_0x47cdec[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x30d120['offset']=qs[_0x44d5('0x1c')](_0x47cdec[_0x44d5('0x34')][_0x44d5('0x1c')]);}return _0x1d8870[_0x44d5('0x83')](_0x30d120);}})[_0x44d5('0x27')](function(_0x3221b5){if(_0x3221b5){return _0x3221b5?{'count':_0x411dbc,'rows':_0x3221b5}:null;}})['then'](respondWithResult(_0x59894d,null))[_0x44d5('0x49')](handleError(_0x59894d,null));};
\ No newline at end of file
+var _0x7d44=['findOne','length','SmsQueueId','UserSmsQueue','findAndCountAll','UserId','agent','smsPause','createdAt','format','%s/%s','updatedAt','Team','nolimit','ids','User','online','flatMap','Agents','sequelize','transaction','addTeams','forEach','emit','userSmsQueue:save','select','field','tq.TeamId','from','join','user_has_teams','SmsQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','SELECT','every','all','union','compact','value','removeTeams','removeAgents','userSmsQueue:remove','addAgents','omit','spread','isArray','getAgents','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','destroy','then','get','SmsQueues','UserProfileResource','sendStatus','stack','name','send','index','map','SmsQueue','rawAttributes','fieldName','type','key','model','query','filters','attributes','fields','hasOwnProperty','order','sort','pick','filter','merge','where','options','includeAll','findAll','rows','catch','show','params','keys','intersection','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers'];(function(_0x4adf22,_0x31697b){var _0x7c45ca=function(_0x5218f4){while(--_0x5218f4){_0x4adf22['push'](_0x4adf22['shift']());}};_0x7c45ca(++_0x31697b);}(_0x7d44,0xbc));var _0x47d4=function(_0x1fbf5b,_0x9989eb){_0x1fbf5b=_0x1fbf5b-0x0;var _0x5a01de=_0x7d44[_0x1fbf5b];return _0x5a01de;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x47d4('0x0'));var jsonpatch=require(_0x47d4('0x1'));var rp=require(_0x47d4('0x2'));var moment=require(_0x47d4('0x3'));var BPromise=require(_0x47d4('0x4'));var Mustache=require(_0x47d4('0x5'));var util=require(_0x47d4('0x6'));var path=require(_0x47d4('0x7'));var sox=require(_0x47d4('0x8'));var csv=require(_0x47d4('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47d4('0xa'));var _=require(_0x47d4('0xb'));var squel=require(_0x47d4('0xc'));var crypto=require(_0x47d4('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x47d4('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47d4('0xf'));var authService=require(_0x47d4('0x10'));var qs=require(_0x47d4('0x11'));var as=require(_0x47d4('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x47d4('0x13'))(_0x47d4('0x14'));var utils=require('../../config/utils');var config=require(_0x47d4('0x15'));var licenseUtil=require(_0x47d4('0x16'));var db=require(_0x47d4('0x17'))['db'];config['redis']=_[_0x47d4('0x18')](config[_0x47d4('0x19')],{'host':_0x47d4('0x1a'),'port':0x18eb});var socket=require(_0x47d4('0x1b'))(new Redis(config[_0x47d4('0x19')]));require('./smsQueue.socket')[_0x47d4('0x1c')](socket);function respondWithStatusCode(_0x3e90c7,_0x3aba50){_0x3aba50=_0x3aba50||0xcc;return function(_0x1324d8){if(_0x1324d8){return _0x3e90c7['sendStatus'](_0x3aba50);}return _0x3e90c7[_0x47d4('0x1d')](_0x3aba50)[_0x47d4('0x1e')]();};}function respondWithResult(_0x32499b,_0x2864e5){_0x2864e5=_0x2864e5||0xc8;return function(_0x468e73){if(_0x468e73){return _0x32499b[_0x47d4('0x1d')](_0x2864e5)[_0x47d4('0x1f')](_0x468e73);}};}function respondWithFilteredResult(_0x2130c1,_0x22a825){return function(_0x48dad0){if(_0x48dad0){var _0xe25bb=typeof _0x22a825[_0x47d4('0x20')]===_0x47d4('0x21')&&typeof _0x22a825['limit']===_0x47d4('0x21');var _0x76847b=_0x48dad0[_0x47d4('0x22')];var _0x11c538=_0xe25bb?0x0:_0x22a825['offset'];var _0x395ceb=_0xe25bb?_0x48dad0[_0x47d4('0x22')]:_0x22a825['offset']+_0x22a825[_0x47d4('0x23')];var _0x3dee29;if(_0x395ceb>=_0x76847b){_0x395ceb=_0x76847b;_0x3dee29=0xc8;}else{_0x3dee29=0xce;}_0x2130c1[_0x47d4('0x1d')](_0x3dee29);return _0x2130c1[_0x47d4('0x24')]('Content-Range',_0x11c538+'-'+_0x395ceb+'/'+_0x76847b)['json'](_0x48dad0);}return null;};}function patchUpdates(_0x16558a){return function(_0xe70ad6){try{jsonpatch[_0x47d4('0x25')](_0xe70ad6,_0x16558a,!![]);}catch(_0x5bfd8d){return BPromise[_0x47d4('0x26')](_0x5bfd8d);}return _0xe70ad6[_0x47d4('0x27')]();};}function saveUpdates(_0x54a5a3,_0x487686){return function(_0x4f027a){if(_0x4f027a){return _0x4f027a[_0x47d4('0x28')](_0x54a5a3)['then'](function(_0x14b0bd){return _0x14b0bd;});}return null;};}function removeEntity(_0x313762,_0x4e4639){return function(_0x1f4a39){if(_0x1f4a39){return _0x1f4a39[_0x47d4('0x29')]()[_0x47d4('0x2a')](function(){var _0x526e67=_0x1f4a39[_0x47d4('0x2b')]({'plain':!![]});var _0x393381=_0x47d4('0x2c');return db[_0x47d4('0x2d')][_0x47d4('0x29')]({'where':{'type':_0x393381,'resourceId':_0x526e67['id']}})[_0x47d4('0x2a')](function(){return _0x1f4a39;});})[_0x47d4('0x2a')](function(){_0x313762[_0x47d4('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c369f,_0x16133c){return function(_0x3b57f4){if(!_0x3b57f4){_0x3c369f[_0x47d4('0x2e')](0x194);}return _0x3b57f4;};}function handleError(_0x2ae4b0,_0x3684d6){_0x3684d6=_0x3684d6||0x1f4;return function(_0x185eb7){logger['error'](_0x185eb7[_0x47d4('0x2f')]);if(_0x185eb7[_0x47d4('0x30')]){delete _0x185eb7[_0x47d4('0x30')];}_0x2ae4b0[_0x47d4('0x1d')](_0x3684d6)[_0x47d4('0x31')](_0x185eb7);};}exports[_0x47d4('0x32')]=function(_0x5cc539,_0xfea161){var _0x454892={},_0x1c6612={},_0x53b4c7={'count':0x0,'rows':[]};var _0x5727ad=_[_0x47d4('0x33')](db[_0x47d4('0x34')][_0x47d4('0x35')],function(_0x576dfa){return{'name':_0x576dfa[_0x47d4('0x36')],'type':_0x576dfa[_0x47d4('0x37')][_0x47d4('0x38')]};});_0x1c6612[_0x47d4('0x39')]=_[_0x47d4('0x33')](_0x5727ad,'name');_0x1c6612[_0x47d4('0x3a')]=_['keys'](_0x5cc539[_0x47d4('0x3a')]);_0x1c6612[_0x47d4('0x3b')]=_['intersection'](_0x1c6612['model'],_0x1c6612[_0x47d4('0x3a')]);_0x454892[_0x47d4('0x3c')]=_['intersection'](_0x1c6612[_0x47d4('0x39')],qs[_0x47d4('0x3d')](_0x5cc539['query']['fields']));_0x454892['attributes']=_0x454892['attributes']['length']?_0x454892[_0x47d4('0x3c')]:_0x1c6612[_0x47d4('0x39')];if(!_0x5cc539[_0x47d4('0x3a')][_0x47d4('0x3e')]('nolimit')){_0x454892[_0x47d4('0x23')]=qs[_0x47d4('0x23')](_0x5cc539[_0x47d4('0x3a')][_0x47d4('0x23')]);_0x454892[_0x47d4('0x20')]=qs[_0x47d4('0x20')](_0x5cc539['query']['offset']);}_0x454892[_0x47d4('0x3f')]=qs[_0x47d4('0x40')](_0x5cc539['query'][_0x47d4('0x40')]);_0x454892['where']=qs[_0x47d4('0x3b')](_[_0x47d4('0x41')](_0x5cc539['query'],_0x1c6612[_0x47d4('0x3b')]),_0x5727ad);if(_0x5cc539[_0x47d4('0x3a')][_0x47d4('0x42')]){_0x454892['where']=_[_0x47d4('0x43')](_0x454892[_0x47d4('0x44')],{'$or':_[_0x47d4('0x33')](_0x5727ad,function(_0x2ac65d){if(_0x2ac65d[_0x47d4('0x37')]!=='VIRTUAL'){var _0x38272f={};_0x38272f[_0x2ac65d[_0x47d4('0x30')]]={'$like':'%'+_0x5cc539[_0x47d4('0x3a')][_0x47d4('0x42')]+'%'};return _0x38272f;}})});}_0x454892=_['merge']({},_0x454892,_0x5cc539[_0x47d4('0x45')]);var _0x275b47={'where':_0x454892[_0x47d4('0x44')]};return db[_0x47d4('0x34')]['count'](_0x275b47)[_0x47d4('0x2a')](function(_0x152a1a){_0x53b4c7[_0x47d4('0x22')]=_0x152a1a;if(_0x5cc539[_0x47d4('0x3a')][_0x47d4('0x46')]){_0x454892['include']=[{'all':!![]}];}return db[_0x47d4('0x34')][_0x47d4('0x47')](_0x454892);})[_0x47d4('0x2a')](function(_0x4dad0c){_0x53b4c7[_0x47d4('0x48')]=_0x4dad0c;return _0x53b4c7;})[_0x47d4('0x2a')](respondWithFilteredResult(_0xfea161,_0x454892))[_0x47d4('0x49')](handleError(_0xfea161,null));};exports[_0x47d4('0x4a')]=function(_0x1fe791,_0x4e5bdd){var _0x200c65={'raw':!![],'where':{'id':_0x1fe791[_0x47d4('0x4b')]['id']}},_0x13d925={};_0x13d925[_0x47d4('0x39')]=_[_0x47d4('0x4c')](db['SmsQueue'][_0x47d4('0x35')]);_0x13d925[_0x47d4('0x3a')]=_[_0x47d4('0x4c')](_0x1fe791[_0x47d4('0x3a')]);_0x13d925[_0x47d4('0x3b')]=_[_0x47d4('0x4d')](_0x13d925['model'],_0x13d925[_0x47d4('0x3a')]);_0x200c65[_0x47d4('0x3c')]=_[_0x47d4('0x4d')](_0x13d925[_0x47d4('0x39')],qs[_0x47d4('0x3d')](_0x1fe791[_0x47d4('0x3a')][_0x47d4('0x3d')]));_0x200c65[_0x47d4('0x3c')]=_0x200c65['attributes']['length']?_0x200c65[_0x47d4('0x3c')]:_0x13d925[_0x47d4('0x39')];if(_0x1fe791['query'][_0x47d4('0x46')]){_0x200c65['include']=[{'all':!![]}];}_0x200c65=_[_0x47d4('0x43')]({},_0x200c65,_0x1fe791[_0x47d4('0x45')]);return db[_0x47d4('0x34')][_0x47d4('0x4e')](_0x200c65)[_0x47d4('0x2a')](handleEntityNotFound(_0x4e5bdd,null))['then'](respondWithResult(_0x4e5bdd,null))['catch'](handleError(_0x4e5bdd,null));};exports[_0x47d4('0x4f')]=function(_0x2b958a,_0x5262df){return db['SmsQueue'][_0x47d4('0x4f')](_0x2b958a[_0x47d4('0x50')],{})[_0x47d4('0x2a')](function(_0x4d20c3){var _0x35931f=_0x2b958a[_0x47d4('0x51')]['get']({'plain':!![]});if(!_0x35931f)throw new Error(_0x47d4('0x52'));if(_0x35931f[_0x47d4('0x53')]==='user'){var _0x53db13=_0x4d20c3[_0x47d4('0x2b')]({'plain':!![]});var _0x5610bb='SmsQueues';return db[_0x47d4('0x54')][_0x47d4('0x4e')]({'where':{'name':_0x5610bb,'userProfileId':_0x35931f[_0x47d4('0x55')]},'raw':!![]})[_0x47d4('0x2a')](function(_0x7e98cf){if(_0x7e98cf&&_0x7e98cf[_0x47d4('0x56')]===0x0){return db[_0x47d4('0x2d')]['create']({'name':_0x53db13[_0x47d4('0x30')],'resourceId':_0x53db13['id'],'type':_0x7e98cf[_0x47d4('0x30')],'sectionId':_0x7e98cf['id']},{})[_0x47d4('0x2a')](function(){return _0x4d20c3;});}else{return _0x4d20c3;}})[_0x47d4('0x49')](function(_0x4959e5){logger['error'](_0x47d4('0x57'),_0x4959e5);throw _0x4959e5;});}return _0x4d20c3;})['then'](respondWithResult(_0x5262df,0xc9))['catch'](handleError(_0x5262df,null));};exports[_0x47d4('0x28')]=function(_0x272e17,_0x2edd6b){if(_0x272e17[_0x47d4('0x50')]['id']){delete _0x272e17[_0x47d4('0x50')]['id'];}return db['SmsQueue'][_0x47d4('0x4e')]({'where':{'id':_0x272e17[_0x47d4('0x4b')]['id']}})[_0x47d4('0x2a')](handleEntityNotFound(_0x2edd6b,null))[_0x47d4('0x2a')](saveUpdates(_0x272e17[_0x47d4('0x50')],null))[_0x47d4('0x2a')](respondWithResult(_0x2edd6b,null))[_0x47d4('0x49')](handleError(_0x2edd6b,null));};exports[_0x47d4('0x29')]=function(_0x202e6a,_0x4dda29){return db[_0x47d4('0x34')][_0x47d4('0x4e')]({'where':{'id':_0x202e6a['params']['id']}})[_0x47d4('0x2a')](handleEntityNotFound(_0x4dda29,null))[_0x47d4('0x2a')](removeEntity(_0x4dda29,null))['catch'](handleError(_0x4dda29,null));};exports['describe']=function(_0x3a3401,_0x2edd1a){return db['SmsQueue'][_0x47d4('0x58')]()[_0x47d4('0x2a')](respondWithResult(_0x2edd1a,null))[_0x47d4('0x49')](handleError(_0x2edd1a,null));};exports[_0x47d4('0x59')]=function(_0x116a4d,_0x4b55cf,_0x3f9d32){var _0x137993={'raw':!![],'where':{}},_0x3f964b={},_0x6deefb;return db['SmsQueue'][_0x47d4('0x5a')]({'where':{'id':_0x116a4d['params']['id']}})[_0x47d4('0x2a')](handleEntityNotFound(_0x4b55cf,null))['then'](function(_0x324e53){if(_0x324e53){_0x6deefb=_0x324e53[_0x47d4('0x2b')]({'plain':!![]});_0x3f964b[_0x47d4('0x39')]=_[_0x47d4('0x4c')](db['UserSmsQueue'][_0x47d4('0x35')]);_0x3f964b['query']=_['keys'](_0x116a4d[_0x47d4('0x3a')]);_0x3f964b[_0x47d4('0x3b')]=_['intersection'](_0x3f964b[_0x47d4('0x39')],_0x3f964b[_0x47d4('0x3a')]);_0x137993[_0x47d4('0x3c')]=_[_0x47d4('0x4d')](_0x3f964b[_0x47d4('0x39')],qs[_0x47d4('0x3d')](_0x116a4d['query'][_0x47d4('0x3d')]));_0x137993['attributes']=_0x137993['attributes'][_0x47d4('0x5b')]?_0x137993['attributes']:_0x3f964b[_0x47d4('0x39')];if(!_0x116a4d[_0x47d4('0x3a')]['hasOwnProperty']('nolimit')){_0x137993[_0x47d4('0x23')]=qs[_0x47d4('0x23')](_0x116a4d['query']['limit']);_0x137993[_0x47d4('0x20')]=qs[_0x47d4('0x20')](_0x116a4d['query'][_0x47d4('0x20')]);}_0x137993[_0x47d4('0x3f')]=qs[_0x47d4('0x40')](_0x116a4d[_0x47d4('0x3a')][_0x47d4('0x40')]);_0x137993[_0x47d4('0x44')]=qs['filters'](_['pick'](_0x116a4d['query'],_0x3f964b[_0x47d4('0x3b')]));_0x137993[_0x47d4('0x44')][_0x47d4('0x5c')]=_0x324e53['id'];if(_0x116a4d[_0x47d4('0x3a')][_0x47d4('0x42')]){_0x137993['where']=_[_0x47d4('0x43')](_0x137993[_0x47d4('0x44')],{'$or':_[_0x47d4('0x33')](_0x137993['attributes'],function(_0x3375c7){var _0x5ee5c7={};_0x5ee5c7[_0x3375c7]={'$like':'%'+_0x116a4d[_0x47d4('0x3a')][_0x47d4('0x42')]+'%'};return _0x5ee5c7;})});}_0x137993=_[_0x47d4('0x43')]({},_0x137993,_0x116a4d[_0x47d4('0x45')]);return db[_0x47d4('0x5d')]['findAll'](_0x137993);}})[_0x47d4('0x2a')](function(_0x151d48){if(_0x151d48){return db['User'][_0x47d4('0x5e')]({'where':{'id':_[_0x47d4('0x33')](_0x151d48,_0x47d4('0x5f')),'role':_0x47d4('0x60')},'attributes':['id',_0x47d4('0x30'),_0x47d4('0x61'),'updatedAt',_0x47d4('0x62')]});}})[_0x47d4('0x2a')](function(_0x207b21){if(_0x207b21){return{'count':_0x207b21[_0x47d4('0x22')],'rows':_[_0x47d4('0x33')](_0x207b21[_0x47d4('0x48')],function(_0x14fa10){return{'membername':_0x14fa10[_0x47d4('0x30')],'UserId':_0x14fa10['id'],'queue_name':_0x6deefb['name'],'SmsQueueId':_0x6deefb['id'],'interface':util[_0x47d4('0x63')](_0x47d4('0x64'),'SIP',_0x14fa10[_0x47d4('0x30')]),'penalty':0x0,'paused':_0x14fa10[_0x47d4('0x61')],'createdAt':_0x14fa10[_0x47d4('0x62')],'updatedAt':_0x14fa10[_0x47d4('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x47d4('0x2a')](respondWithFilteredResult(_0x4b55cf,_0x137993))[_0x47d4('0x49')](handleError(_0x4b55cf,null));};exports['getTeams']=function(_0xfcf378,_0x1ef7c4,_0x7ba693){var _0x197bae={};var _0x13521a={};var _0x47ed1c;var _0x4794bb;return db['SmsQueue'][_0x47d4('0x5a')]({'where':{'id':_0xfcf378[_0x47d4('0x4b')]['id']}})[_0x47d4('0x2a')](handleEntityNotFound(_0x1ef7c4,null))[_0x47d4('0x2a')](function(_0x17385b){if(_0x17385b){_0x47ed1c=_0x17385b;_0x13521a[_0x47d4('0x39')]=_[_0x47d4('0x4c')](db[_0x47d4('0x66')][_0x47d4('0x35')]);_0x13521a[_0x47d4('0x3a')]=_[_0x47d4('0x4c')](_0xfcf378[_0x47d4('0x3a')]);_0x13521a['filters']=_[_0x47d4('0x4d')](_0x13521a[_0x47d4('0x39')],_0x13521a[_0x47d4('0x3a')]);_0x197bae[_0x47d4('0x3c')]=_[_0x47d4('0x4d')](_0x13521a['model'],qs[_0x47d4('0x3d')](_0xfcf378['query'][_0x47d4('0x3d')]));_0x197bae[_0x47d4('0x3c')]=_0x197bae[_0x47d4('0x3c')][_0x47d4('0x5b')]?_0x197bae[_0x47d4('0x3c')]:_0x13521a['model'];_0x197bae[_0x47d4('0x3f')]=qs[_0x47d4('0x40')](_0xfcf378['query'][_0x47d4('0x40')]);_0x197bae['where']=qs['filters'](_[_0x47d4('0x41')](_0xfcf378[_0x47d4('0x3a')],_0x13521a[_0x47d4('0x3b')]));if(_0xfcf378[_0x47d4('0x3a')][_0x47d4('0x42')]){_0x197bae['where']=_[_0x47d4('0x43')](_0x197bae['where'],{'$or':_[_0x47d4('0x33')](_0x197bae[_0x47d4('0x3c')],function(_0x30105e){var _0x55b512={};_0x55b512[_0x30105e]={'$like':'%'+_0xfcf378[_0x47d4('0x3a')]['filter']+'%'};return _0x55b512;})});}_0x197bae=_[_0x47d4('0x43')]({},_0x197bae,_0xfcf378[_0x47d4('0x45')]);return _0x47ed1c['getTeams'](_0x197bae);}})[_0x47d4('0x2a')](function(_0x220a88){if(_0x220a88){_0x4794bb=_0x220a88[_0x47d4('0x5b')];if(!_0xfcf378[_0x47d4('0x3a')][_0x47d4('0x3e')](_0x47d4('0x67'))){_0x197bae[_0x47d4('0x23')]=qs[_0x47d4('0x23')](_0xfcf378[_0x47d4('0x3a')][_0x47d4('0x23')]);_0x197bae[_0x47d4('0x20')]=qs[_0x47d4('0x20')](_0xfcf378[_0x47d4('0x3a')][_0x47d4('0x20')]);}return _0x47ed1c['getTeams'](_0x197bae);}})['then'](function(_0x1b3e2e){if(_0x1b3e2e){return _0x1b3e2e?{'count':_0x4794bb,'rows':_0x1b3e2e}:null;}})[_0x47d4('0x2a')](respondWithResult(_0x1ef7c4,null))[_0x47d4('0x49')](handleError(_0x1ef7c4,null));};exports['addTeams']=function(_0x3c40e4,_0xf0d25e,_0x1a1936){var _0x47393c=_0x3c40e4[_0x47d4('0x50')][_0x47d4('0x68')];return db[_0x47d4('0x66')]['findAll']({'where':{'id':_0x47393c},'attributes':['id'],'include':[{'model':db[_0x47d4('0x69')],'as':'Agents','attributes':['id',_0x47d4('0x30'),_0x47d4('0x6a'),'voicePause','interface'],'raw':!![]}]})[_0x47d4('0x2a')](function(_0x14b4b1){if(_0x14b4b1){var _0x16a33c=_[_0x47d4('0x6b')](_0x14b4b1,function(_0x5f3957){var _0x5da2e9=_0x5f3957[_0x47d4('0x2b')]({'plain':!![]});return _0x5da2e9[_0x47d4('0x6c')];});return db['SmsQueue']['find']({'where':{'id':_0x3c40e4[_0x47d4('0x4b')]['id']}})[_0x47d4('0x2a')](function(_0x77e10f){return db[_0x47d4('0x6d')][_0x47d4('0x6e')](function(_0x5681b4){return _0x77e10f[_0x47d4('0x6f')](_0x47393c,{'transaction':_0x5681b4})['then'](function(){return BPromise['each'](_0x16a33c,function(_0xd98c31){return db[_0x47d4('0x5d')]['findOrCreate']({'where':{'UserId':_0xd98c31['id'],'SmsQueueId':_0x3c40e4[_0x47d4('0x4b')]['id']},'transaction':_0x5681b4});});})[_0x47d4('0x2a')](function(){_0x16a33c[_0x47d4('0x70')](function(_0x3a6707){socket[_0x47d4('0x71')](_0x47d4('0x72'),{'UserId':_0x3a6707['id'],'SmsQueueId':_0x77e10f['id']});});});});});}})[_0x47d4('0x2a')](respondWithStatusCode(_0xf0d25e,null))[_0x47d4('0x49')](handleError(_0xf0d25e,null));};exports['removeTeams']=function(_0x2a6036,_0x7bf814,_0xc4ad8a){return db[_0x47d4('0x66')]['findAll']({'where':{'id':_0x2a6036[_0x47d4('0x3a')][_0x47d4('0x68')]},'attributes':['id'],'include':[{'model':db[_0x47d4('0x69')],'as':_0x47d4('0x6c'),'attributes':['id'],'raw':!![]}]})[_0x47d4('0x2a')](handleEntityNotFound(_0x7bf814,null))[_0x47d4('0x2a')](function(_0x2377a6){var _0x4346b2=_['map'](_0x2377a6,'id');var _0x2f38c2=[];var _0x3f9c74=[];var _0x4a21d4=squel[_0x47d4('0x73')]();_0x4a21d4[_0x47d4('0x74')](_0x47d4('0x75'))[_0x47d4('0x76')]('team_has_sms_queues','tq')[_0x47d4('0x77')](_0x47d4('0x78'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x47d4('0x44')](_0x47d4('0x79'),_0x2a6036[_0x47d4('0x4b')]['id']);for(var _0x2b456c=0x0;_0x2b456c<_0x2377a6[_0x47d4('0x5b')];_0x2b456c+=0x1){let _0x554915=_0x2377a6[_0x2b456c];for(var _0x142fbf=0x0;_0x142fbf<_0x554915[_0x47d4('0x6c')][_0x47d4('0x5b')];_0x142fbf+=0x1){let _0x5c1abd=_0x554915[_0x47d4('0x6c')][_0x142fbf];var _0x486464=_0x4a21d4[_0x47d4('0x7a')]();_0x486464[_0x47d4('0x44')](_0x47d4('0x7b'),_0x5c1abd['id']);_0x3f9c74[_0x47d4('0x7c')](db[_0x47d4('0x6d')][_0x47d4('0x3a')](_0x486464['toString'](),{'type':db[_0x47d4('0x6d')]['QueryTypes'][_0x47d4('0x7d')]})[_0x47d4('0x2a')](function(_0x529120){if(_0x529120[_0x47d4('0x5b')]===0x1){return _0x5c1abd['id'];}else{var _0x491a96=_[_0x47d4('0x7e')](_[_0x47d4('0x33')](_0x529120,'TeamId'),function(_0x377313){return _['includes'](_0x4346b2,_0x377313);});if(_0x491a96){return _0x5c1abd['id'];}}}));}}return BPromise[_0x47d4('0x7f')](_0x3f9c74)[_0x47d4('0x2a')](function(_0x5c2ac9){_0x2f38c2=_(_0x2f38c2)[_0x47d4('0x80')](_0x5c2ac9)[_0x47d4('0x81')]()[_0x47d4('0x82')]();return db['SmsQueue'][_0x47d4('0x4e')]({'where':{'id':_0x2a6036['params']['id']}})[_0x47d4('0x2a')](function(_0x447ba5){return db[_0x47d4('0x6d')]['transaction'](function(_0x279c38){return _0x447ba5[_0x47d4('0x83')](_0x2a6036[_0x47d4('0x3a')][_0x47d4('0x68')],{'transaction':_0x279c38})[_0x47d4('0x2a')](function(){if(!_['isEmpty'](_0x2f38c2)){return _0x447ba5[_0x47d4('0x84')](_0x2f38c2,{'transaction':_0x279c38});}})['then'](function(){_0x2f38c2[_0x47d4('0x70')](function(_0x29f8a7){socket['emit'](_0x47d4('0x85'),{'UserId':_0x29f8a7,'SmsQueueId':_0x447ba5['id']});});});});});});})[_0x47d4('0x2a')](respondWithStatusCode(_0x7bf814,null))[_0x47d4('0x49')](handleError(_0x7bf814,null));};exports[_0x47d4('0x86')]=function(_0xa8d10f,_0xe91279,_0x312c0e){return db['SmsQueue'][_0x47d4('0x4e')]({'where':{'id':_0xa8d10f['params']['id']}})[_0x47d4('0x2a')](handleEntityNotFound(_0xe91279,null))[_0x47d4('0x2a')](function(_0x3dcfb8){if(_0x3dcfb8){return _0x3dcfb8[_0x47d4('0x86')](_0xa8d10f['body']['ids'],_[_0x47d4('0x87')](_0xa8d10f[_0x47d4('0x50')],[_0x47d4('0x68'),'id'])||{})[_0x47d4('0x88')](function(_0x2fe2be){for(var _0x481b04=0x0;_0x481b04<_0xa8d10f[_0x47d4('0x50')][_0x47d4('0x68')][_0x47d4('0x5b')];_0x481b04+=0x1){socket[_0x47d4('0x71')](_0x47d4('0x72'),{'UserId':Number(_0xa8d10f[_0x47d4('0x50')][_0x47d4('0x68')][_0x481b04]),'SmsQueueId':Number(_0xa8d10f[_0x47d4('0x4b')]['id'])});}return _0x2fe2be;});}})[_0x47d4('0x2a')](respondWithResult(_0xe91279,null))['catch'](handleError(_0xe91279,null));};exports[_0x47d4('0x84')]=function(_0x3b0089,_0x19163f,_0x379a45){return db[_0x47d4('0x34')]['find']({'where':{'id':_0x3b0089[_0x47d4('0x4b')]['id']}})[_0x47d4('0x2a')](handleEntityNotFound(_0x19163f,null))[_0x47d4('0x2a')](function(_0x1c97fe){if(_0x1c97fe){return _0x1c97fe[_0x47d4('0x84')](_0x3b0089['query']['ids'])[_0x47d4('0x2a')](function(){if(_[_0x47d4('0x89')](_0x3b0089['query'][_0x47d4('0x68')])){for(var _0x57074e=0x0;_0x57074e<_0x3b0089[_0x47d4('0x3a')][_0x47d4('0x68')][_0x47d4('0x5b')];_0x57074e+=0x1){socket[_0x47d4('0x71')](_0x47d4('0x85'),{'UserId':Number(_0x3b0089['query'][_0x47d4('0x68')][_0x57074e]),'SmsQueueId':Number(_0x3b0089[_0x47d4('0x4b')]['id'])});}}else{socket['emit'](_0x47d4('0x85'),{'UserId':Number(_0x3b0089[_0x47d4('0x3a')][_0x47d4('0x68')]),'SmsQueueId':Number(_0x3b0089['params']['id'])});}});}})[_0x47d4('0x2a')](respondWithStatusCode(_0x19163f,null))['catch'](handleError(_0x19163f,null));};exports['getAgents']=function(_0x1981c3,_0x2b61e1,_0x3fafa3){var _0x2cc5af={};var _0x1ddda6={};var _0x114992;var _0x33d507;return db['SmsQueue'][_0x47d4('0x5a')]({'where':{'id':_0x1981c3[_0x47d4('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2b61e1,null))[_0x47d4('0x2a')](function(_0x5b3a8d){if(_0x5b3a8d){_0x114992=_0x5b3a8d;_0x1ddda6[_0x47d4('0x39')]=_['keys'](db[_0x47d4('0x69')][_0x47d4('0x35')]);_0x1ddda6[_0x47d4('0x3a')]=_['keys'](_0x1981c3[_0x47d4('0x3a')]);_0x1ddda6['filters']=_[_0x47d4('0x4d')](_0x1ddda6[_0x47d4('0x39')],_0x1ddda6[_0x47d4('0x3a')]);_0x2cc5af['attributes']=_[_0x47d4('0x4d')](_0x1ddda6[_0x47d4('0x39')],qs[_0x47d4('0x3d')](_0x1981c3['query'][_0x47d4('0x3d')]));_0x2cc5af[_0x47d4('0x3c')]=_0x2cc5af[_0x47d4('0x3c')][_0x47d4('0x5b')]?_0x2cc5af['attributes']:_0x1ddda6['model'];_0x2cc5af[_0x47d4('0x3f')]=qs[_0x47d4('0x40')](_0x1981c3[_0x47d4('0x3a')]['sort']);_0x2cc5af[_0x47d4('0x44')]=qs['filters'](_[_0x47d4('0x41')](_0x1981c3[_0x47d4('0x3a')],_0x1ddda6[_0x47d4('0x3b')]));if(_0x1981c3[_0x47d4('0x3a')][_0x47d4('0x42')]){_0x2cc5af[_0x47d4('0x44')]=_['merge'](_0x2cc5af[_0x47d4('0x44')],{'$or':_[_0x47d4('0x33')](_0x2cc5af[_0x47d4('0x3c')],function(_0x13f7f8){var _0x1f5662={};_0x1f5662[_0x13f7f8]={'$like':'%'+_0x1981c3['query'][_0x47d4('0x42')]+'%'};return _0x1f5662;})});}_0x2cc5af=_[_0x47d4('0x43')]({},_0x2cc5af,_0x1981c3['options']);return _0x114992[_0x47d4('0x8a')](_0x2cc5af);}})['then'](function(_0x3bcf38){if(_0x3bcf38){_0x33d507=_0x3bcf38[_0x47d4('0x5b')];if(!_0x1981c3[_0x47d4('0x3a')]['hasOwnProperty'](_0x47d4('0x67'))){_0x2cc5af[_0x47d4('0x23')]=qs[_0x47d4('0x23')](_0x1981c3['query']['limit']);_0x2cc5af['offset']=qs[_0x47d4('0x20')](_0x1981c3['query'][_0x47d4('0x20')]);}return _0x114992[_0x47d4('0x8a')](_0x2cc5af);}})['then'](function(_0x9bec58){if(_0x9bec58){return _0x9bec58?{'count':_0x33d507,'rows':_0x9bec58}:null;}})[_0x47d4('0x2a')](respondWithResult(_0x2b61e1,null))[_0x47d4('0x49')](handleError(_0x2b61e1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2065=['SmsQueue','save','update','emit','hook','exports'];(function(_0x47a307,_0x3dfddd){var _0x499192=function(_0x51ae13){while(--_0x51ae13){_0x47a307['push'](_0x47a307['shift']());}};_0x499192(++_0x3dfddd);}(_0x2065,0x18c));var _0x5206=function(_0x4e3744,_0x14198b){_0x4e3744=_0x4e3744-0x0;var _0x2a9f3c=_0x2065[_0x4e3744];return _0x2a9f3c;};'use strict';var EventEmitter=require('events');var SmsQueue=require('../../mysqldb')['db'][_0x5206('0x0')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x5206('0x1'),'afterUpdate':_0x5206('0x2'),'afterDestroy':'remove'};function emitEvent(_0xfb05b6){return function(_0x237797,_0x321baf,_0x3efda8){SmsQueueEvents[_0x5206('0x3')](_0xfb05b6+':'+_0x237797['id'],_0x237797);SmsQueueEvents['emit'](_0xfb05b6,_0x237797);_0x3efda8(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsQueue[_0x5206('0x4')](e,emitEvent(event));}}module[_0x5206('0x5')]=SmsQueueEvents;
\ No newline at end of file
+var _0xd63e=['remove','emit','hook','exports','events','../../mysqldb','SmsQueue','save','update'];(function(_0x36de10,_0xfe25e8){var _0x58100f=function(_0x1fee3f){while(--_0x1fee3f){_0x36de10['push'](_0x36de10['shift']());}};_0x58100f(++_0xfe25e8);}(_0xd63e,0xaf));var _0xed63=function(_0x550dd8,_0x1068f5){_0x550dd8=_0x550dd8-0x0;var _0x303d68=_0xd63e[_0x550dd8];return _0x303d68;};'use strict';var EventEmitter=require(_0xed63('0x0'));var SmsQueue=require(_0xed63('0x1'))['db'][_0xed63('0x2')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xed63('0x3'),'afterUpdate':_0xed63('0x4'),'afterDestroy':_0xed63('0x5')};function emitEvent(_0x1f7b3d){return function(_0x4a93aa,_0x3d693e,_0x2f39ef){SmsQueueEvents['emit'](_0x1f7b3d+':'+_0x4a93aa['id'],_0x4a93aa);SmsQueueEvents[_0xed63('0x6')](_0x1f7b3d,_0x4a93aa);_0x2f39ef(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsQueue[_0xed63('0x7')](e,emitEvent(event));}}module[_0xed63('0x8')]=SmsQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63f5=['SmsQueue','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsQueue.attributes','exports','define'];(function(_0x4d6133,_0x448652){var _0x466292=function(_0x279b06){while(--_0x279b06){_0x4d6133['push'](_0x4d6133['shift']());}};_0x466292(++_0x448652);}(_0x63f5,0x1ef));var _0x563f=function(_0x1b8e60,_0x21b885){_0x1b8e60=_0x1b8e60-0x0;var _0x363363=_0x63f5[_0x1b8e60];return _0x363363;};'use strict';var _=require(_0x563f('0x0'));var util=require(_0x563f('0x1'));var logger=require('../../config/logger')(_0x563f('0x2'));var moment=require(_0x563f('0x3'));var BPromise=require(_0x563f('0x4'));var rp=require(_0x563f('0x5'));var fs=require('fs');var path=require(_0x563f('0x6'));var rimraf=require(_0x563f('0x7'));var config=require(_0x563f('0x8'));var attributes=require(_0x563f('0x9'));module[_0x563f('0xa')]=function(_0x214bf9,_0x148093){return _0x214bf9[_0x563f('0xb')](_0x563f('0xc'),attributes,{'tableName':'sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x915e=['request-promise','path','rimraf','../../config/environment','./smsQueue.attributes','exports','define','SmsQueue','sms_queues','lodash','../../config/logger','api','moment','bluebird'];(function(_0x2048dd,_0x75156d){var _0x12104e=function(_0x33283b){while(--_0x33283b){_0x2048dd['push'](_0x2048dd['shift']());}};_0x12104e(++_0x75156d);}(_0x915e,0xf7));var _0xe915=function(_0x1e56a6,_0x18e5ba){_0x1e56a6=_0x1e56a6-0x0;var _0x267871=_0x915e[_0x1e56a6];return _0x267871;};'use strict';var _=require(_0xe915('0x0'));var util=require('util');var logger=require(_0xe915('0x1'))(_0xe915('0x2'));var moment=require(_0xe915('0x3'));var BPromise=require(_0xe915('0x4'));var rp=require(_0xe915('0x5'));var fs=require('fs');var path=require(_0xe915('0x6'));var rimraf=require(_0xe915('0x7'));var config=require(_0xe915('0x8'));var attributes=require(_0xe915('0x9'));module[_0xe915('0xa')]=function(_0xc19027,_0x33953b){return _0xc19027[_0xe915('0xb')](_0xe915('0xc'),attributes,{'tableName':_0xe915('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd2d=['../../config/logger','rpc','jayson/promise','client','http','redis','localhost','./smsQueue.socket','request','info','SmsQueue,\x20%s,\x20%s','request\x20sent','debug','SmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetSmsQueue','findAll','options','raw','attributes','limit','include','map','model','then','SmsQueue','find','where','ShowSmsQueue','lodash','util','randomstring','../../mysqldb'];(function(_0x55ba0a,_0x516fca){var _0x748863=function(_0x820c02){while(--_0x820c02){_0x55ba0a['push'](_0x55ba0a['shift']());}};_0x748863(++_0x516fca);}(_0xdd2d,0x16e));var _0xddd2=function(_0x3a7adb,_0x380f46){_0x3a7adb=_0x3a7adb-0x0;var _0x2e79b1=_0xdd2d[_0x3a7adb];return _0x2e79b1;};'use strict';var _=require(_0xddd2('0x0'));var util=require(_0xddd2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xddd2('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xddd2('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xddd2('0x4'))(_0xddd2('0x5'));var config=require('../../config/environment');var jayson=require(_0xddd2('0x6'));var client=jayson[_0xddd2('0x7')][_0xddd2('0x8')]({'port':0x232a});config[_0xddd2('0x9')]=_['defaults'](config[_0xddd2('0x9')],{'host':_0xddd2('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xddd2('0x9')]));require(_0xddd2('0xb'))['register'](socket);function respondWithRpcPromise(_0x1415ca,_0x5e518c,_0x548dce){return new BPromise(function(_0x1910bf,_0x414070){return client[_0xddd2('0xc')](_0x1415ca,_0x548dce)['then'](function(_0x2faba5){logger[_0xddd2('0xd')](_0xddd2('0xe'),_0x5e518c,_0xddd2('0xf'));logger[_0xddd2('0x10')](_0xddd2('0x11'),_0x5e518c,'request\x20sent',JSON[_0xddd2('0x12')](_0x2faba5));if(_0x2faba5[_0xddd2('0x13')]){if(_0x2faba5['error'][_0xddd2('0x14')]===0x1f4){logger[_0xddd2('0x13')](_0xddd2('0xe'),_0x5e518c,_0x2faba5['error'][_0xddd2('0x15')]);return _0x414070(_0x2faba5[_0xddd2('0x13')]['message']);}logger[_0xddd2('0x13')](_0xddd2('0xe'),_0x5e518c,_0x2faba5[_0xddd2('0x13')]['message']);return _0x1910bf(_0x2faba5[_0xddd2('0x13')][_0xddd2('0x15')]);}else{logger[_0xddd2('0xd')]('SmsQueue,\x20%s,\x20%s',_0x5e518c,_0xddd2('0xf'));_0x1910bf(_0x2faba5['result']['message']);}})[_0xddd2('0x16')](function(_0x2b5ee1){logger[_0xddd2('0x13')](_0xddd2('0xe'),_0x5e518c,_0x2b5ee1);_0x414070(_0x2b5ee1);});});}exports[_0xddd2('0x17')]=function(_0x4ae76f){var _0x529a4e=this;return new Promise(function(_0x40cbf6,_0x5037a5){return db['SmsQueue'][_0xddd2('0x18')]({'raw':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1a')]===undefined?!![]:![]:!![],'where':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')]['where']||null:null,'attributes':_0x4ae76f['options']?_0x4ae76f['options'][_0xddd2('0x1b')]||null:null,'limit':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1c')]||null:null,'include':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1d')],function(_0x3a5118){return{'model':db[_0x3a5118[_0xddd2('0x1f')]],'as':_0x3a5118['as'],'attributes':_0x3a5118[_0xddd2('0x1b')],'include':_0x3a5118[_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0x3a5118['include'],function(_0x44799f){return{'model':db[_0x44799f[_0xddd2('0x1f')]],'as':_0x44799f['as'],'attributes':_0x44799f[_0xddd2('0x1b')],'include':_0x44799f['include']?_[_0xddd2('0x1e')](_0x44799f[_0xddd2('0x1d')],function(_0x86e057){return{'model':db[_0x86e057[_0xddd2('0x1f')]],'as':_0x86e057['as'],'attributes':_0x86e057[_0xddd2('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xddd2('0x20')](function(_0x5c41ec){logger[_0xddd2('0xd')](_0xddd2('0x17'),_0x4ae76f);logger['debug'](_0xddd2('0x17'),_0x4ae76f,JSON[_0xddd2('0x12')](_0x5c41ec));_0x40cbf6(_0x5c41ec);})[_0xddd2('0x16')](function(_0x275fca){logger[_0xddd2('0x13')]('GetSmsQueue',_0x275fca[_0xddd2('0x15')],_0x4ae76f);_0x5037a5(_0x529a4e[_0xddd2('0x13')](0x1f4,_0x275fca[_0xddd2('0x15')]));});});};exports['ShowSmsQueue']=function(_0x457f22){var _0x4db602=this;return new Promise(function(_0x1f0230,_0x497251){return db[_0xddd2('0x21')][_0xddd2('0x22')]({'raw':_0x457f22['options']?_0x457f22['options']['raw']===undefined?!![]:![]:!![],'where':_0x457f22[_0xddd2('0x19')]?_0x457f22[_0xddd2('0x19')][_0xddd2('0x23')]||null:null,'attributes':_0x457f22[_0xddd2('0x19')]?_0x457f22['options'][_0xddd2('0x1b')]||null:null,'include':_0x457f22[_0xddd2('0x19')]?_0x457f22[_0xddd2('0x19')][_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0x457f22[_0xddd2('0x19')][_0xddd2('0x1d')],function(_0x2846bb){return{'model':db[_0x2846bb[_0xddd2('0x1f')]],'as':_0x2846bb['as'],'attributes':_0x2846bb[_0xddd2('0x1b')],'include':_0x2846bb[_0xddd2('0x1d')]?_['map'](_0x2846bb[_0xddd2('0x1d')],function(_0xc09e63){return{'model':db[_0xc09e63[_0xddd2('0x1f')]],'as':_0xc09e63['as'],'attributes':_0xc09e63[_0xddd2('0x1b')],'include':_0xc09e63[_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0xc09e63[_0xddd2('0x1d')],function(_0x241c71){return{'model':db[_0x241c71['model']],'as':_0x241c71['as'],'attributes':_0x241c71[_0xddd2('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xddd2('0x20')](function(_0x72baaf){logger[_0xddd2('0xd')](_0xddd2('0x24'),_0x457f22);logger[_0xddd2('0x10')](_0xddd2('0x24'),_0x457f22,JSON[_0xddd2('0x12')](_0x72baaf));_0x1f0230(_0x72baaf);})[_0xddd2('0x16')](function(_0x33c101){logger[_0xddd2('0x13')]('ShowSmsQueue',_0x33c101[_0xddd2('0x15')],_0x457f22);_0x497251(_0x4db602[_0xddd2('0x13')](0x1f4,_0x33c101[_0xddd2('0x15')]));});});};
\ No newline at end of file
+var _0x1f26=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','redis','localhost','socket.io-emitter','./smsQueue.socket','register','request','info','stringify','error','code','SmsQueue,\x20%s,\x20%s','message','request\x20sent','catch','options','raw','where','attributes','limit','include','model','map','debug','GetSmsQueue','ShowSmsQueue','find'];(function(_0x321363,_0x243048){var _0x246525=function(_0x5b4488){while(--_0x5b4488){_0x321363['push'](_0x321363['shift']());}};_0x246525(++_0x243048);}(_0x1f26,0x197));var _0x61f2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1f26[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x61f2('0x0'));var util=require(_0x61f2('0x1'));var moment=require(_0x61f2('0x2'));var BPromise=require(_0x61f2('0x3'));var rs=require(_0x61f2('0x4'));var fs=require('fs');var Redis=require(_0x61f2('0x5'));var db=require(_0x61f2('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x61f2('0x7'))(_0x61f2('0x8'));var config=require(_0x61f2('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x61f2('0xa')]['http']({'port':0x232a});config[_0x61f2('0xb')]=_['defaults'](config['redis'],{'host':_0x61f2('0xc'),'port':0x18eb});var socket=require(_0x61f2('0xd'))(new Redis(config[_0x61f2('0xb')]));require(_0x61f2('0xe'))[_0x61f2('0xf')](socket);function respondWithRpcPromise(_0x22a6f4,_0x249895,_0x3dc52b){return new BPromise(function(_0x1c59e5,_0x213e36){return client[_0x61f2('0x10')](_0x22a6f4,_0x3dc52b)['then'](function(_0x1458d5){logger[_0x61f2('0x11')]('SmsQueue,\x20%s,\x20%s',_0x249895,'request\x20sent');logger['debug']('SmsQueue,\x20%s,\x20%s,\x20%s',_0x249895,'request\x20sent',JSON[_0x61f2('0x12')](_0x1458d5));if(_0x1458d5[_0x61f2('0x13')]){if(_0x1458d5['error'][_0x61f2('0x14')]===0x1f4){logger['error'](_0x61f2('0x15'),_0x249895,_0x1458d5[_0x61f2('0x13')][_0x61f2('0x16')]);return _0x213e36(_0x1458d5['error'][_0x61f2('0x16')]);}logger['error']('SmsQueue,\x20%s,\x20%s',_0x249895,_0x1458d5['error']['message']);return _0x1c59e5(_0x1458d5[_0x61f2('0x13')][_0x61f2('0x16')]);}else{logger[_0x61f2('0x11')]('SmsQueue,\x20%s,\x20%s',_0x249895,_0x61f2('0x17'));_0x1c59e5(_0x1458d5['result'][_0x61f2('0x16')]);}})[_0x61f2('0x18')](function(_0x8dd6ce){logger[_0x61f2('0x13')](_0x61f2('0x15'),_0x249895,_0x8dd6ce);_0x213e36(_0x8dd6ce);});});}exports['GetSmsQueue']=function(_0x5a85e7){var _0x234a47=this;return new Promise(function(_0x141438,_0x56c6a8){return db['SmsQueue']['findAll']({'raw':_0x5a85e7['options']?_0x5a85e7[_0x61f2('0x19')][_0x61f2('0x1a')]===undefined?!![]:![]:!![],'where':_0x5a85e7['options']?_0x5a85e7[_0x61f2('0x19')][_0x61f2('0x1b')]||null:null,'attributes':_0x5a85e7['options']?_0x5a85e7[_0x61f2('0x19')][_0x61f2('0x1c')]||null:null,'limit':_0x5a85e7[_0x61f2('0x19')]?_0x5a85e7[_0x61f2('0x19')][_0x61f2('0x1d')]||null:null,'include':_0x5a85e7[_0x61f2('0x19')]?_0x5a85e7[_0x61f2('0x19')][_0x61f2('0x1e')]?_['map'](_0x5a85e7[_0x61f2('0x19')][_0x61f2('0x1e')],function(_0x12d2ea){return{'model':db[_0x12d2ea[_0x61f2('0x1f')]],'as':_0x12d2ea['as'],'attributes':_0x12d2ea['attributes'],'include':_0x12d2ea[_0x61f2('0x1e')]?_[_0x61f2('0x20')](_0x12d2ea[_0x61f2('0x1e')],function(_0x4eab50){return{'model':db[_0x4eab50['model']],'as':_0x4eab50['as'],'attributes':_0x4eab50[_0x61f2('0x1c')],'include':_0x4eab50['include']?_['map'](_0x4eab50[_0x61f2('0x1e')],function(_0x394a07){return{'model':db[_0x394a07[_0x61f2('0x1f')]],'as':_0x394a07['as'],'attributes':_0x394a07[_0x61f2('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x32a64b){logger['info']('GetSmsQueue',_0x5a85e7);logger[_0x61f2('0x21')](_0x61f2('0x22'),_0x5a85e7,JSON[_0x61f2('0x12')](_0x32a64b));_0x141438(_0x32a64b);})[_0x61f2('0x18')](function(_0x23b345){logger[_0x61f2('0x13')]('GetSmsQueue',_0x23b345[_0x61f2('0x16')],_0x5a85e7);_0x56c6a8(_0x234a47['error'](0x1f4,_0x23b345['message']));});});};exports[_0x61f2('0x23')]=function(_0x1dcd25){var _0x7ab2b7=this;return new Promise(function(_0x2002ed,_0xa55270){return db['SmsQueue'][_0x61f2('0x24')]({'raw':_0x1dcd25[_0x61f2('0x19')]?_0x1dcd25[_0x61f2('0x19')][_0x61f2('0x1a')]===undefined?!![]:![]:!![],'where':_0x1dcd25[_0x61f2('0x19')]?_0x1dcd25[_0x61f2('0x19')]['where']||null:null,'attributes':_0x1dcd25['options']?_0x1dcd25[_0x61f2('0x19')][_0x61f2('0x1c')]||null:null,'include':_0x1dcd25[_0x61f2('0x19')]?_0x1dcd25[_0x61f2('0x19')][_0x61f2('0x1e')]?_[_0x61f2('0x20')](_0x1dcd25['options']['include'],function(_0x1fdf6b){return{'model':db[_0x1fdf6b[_0x61f2('0x1f')]],'as':_0x1fdf6b['as'],'attributes':_0x1fdf6b[_0x61f2('0x1c')],'include':_0x1fdf6b[_0x61f2('0x1e')]?_[_0x61f2('0x20')](_0x1fdf6b[_0x61f2('0x1e')],function(_0x1450d0){return{'model':db[_0x1450d0[_0x61f2('0x1f')]],'as':_0x1450d0['as'],'attributes':_0x1450d0[_0x61f2('0x1c')],'include':_0x1450d0[_0x61f2('0x1e')]?_[_0x61f2('0x20')](_0x1450d0[_0x61f2('0x1e')],function(_0x13f088){return{'model':db[_0x13f088['model']],'as':_0x13f088['as'],'attributes':_0x13f088['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x1a125c){logger['info'](_0x61f2('0x23'),_0x1dcd25);logger[_0x61f2('0x21')](_0x61f2('0x23'),_0x1dcd25,JSON[_0x61f2('0x12')](_0x1a125c));_0x2002ed(_0x1a125c);})[_0x61f2('0x18')](function(_0x2f562f){logger['error'](_0x61f2('0x23'),_0x2f562f[_0x61f2('0x16')],_0x1dcd25);_0xa55270(_0x7ab2b7[_0x61f2('0x13')](0x1f4,_0x2f562f['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc177=['save','remove','update','removeListener','register','length','smsQueue:','./smsQueue.events'];(function(_0x1fb193,_0x2ed4e5){var _0x338ad8=function(_0x94b5b5){while(--_0x94b5b5){_0x1fb193['push'](_0x1fb193['shift']());}};_0x338ad8(++_0x2ed4e5);}(_0xc177,0x197));var _0x7c17=function(_0x3a87c6,_0x113074){_0x3a87c6=_0x3a87c6-0x0;var _0x405e88=_0xc177[_0x3a87c6];return _0x405e88;};'use strict';var SmsQueueEvents=require(_0x7c17('0x0'));var events=[_0x7c17('0x1'),_0x7c17('0x2'),_0x7c17('0x3')];function createListener(_0xbe65e,_0x3e25ef){return function(_0x5cb4b2){_0x3e25ef['emit'](_0xbe65e,_0x5cb4b2);};}function removeListener(_0x344dc2,_0x2ad682){return function(){SmsQueueEvents[_0x7c17('0x4')](_0x344dc2,_0x2ad682);};}exports[_0x7c17('0x5')]=function(_0x4a6561){for(var _0x612c32=0x0,_0x52d827=events[_0x7c17('0x6')];_0x612c32<_0x52d827;_0x612c32++){var _0x52191b=events[_0x612c32];var _0x424c18=createListener(_0x7c17('0x7')+_0x52191b,_0x4a6561);SmsQueueEvents['on'](_0x52191b,_0x424c18);}};
\ No newline at end of file
+var _0x6058=['remove','update','removeListener','length','smsQueue:','save'];(function(_0x2f3168,_0x230e61){var _0x3be24b=function(_0x1c91b2){while(--_0x1c91b2){_0x2f3168['push'](_0x2f3168['shift']());}};_0x3be24b(++_0x230e61);}(_0x6058,0x1af));var _0x8605=function(_0xec1289,_0x4fa82b){_0xec1289=_0xec1289-0x0;var _0x3e223c=_0x6058[_0xec1289];return _0x3e223c;};'use strict';var SmsQueueEvents=require('./smsQueue.events');var events=[_0x8605('0x0'),_0x8605('0x1'),_0x8605('0x2')];function createListener(_0x5e9f19,_0x5741e5){return function(_0x4a94a7){_0x5741e5['emit'](_0x5e9f19,_0x4a94a7);};}function removeListener(_0x9c0599,_0x3fd3be){return function(){SmsQueueEvents[_0x8605('0x3')](_0x9c0599,_0x3fd3be);};}exports['register']=function(_0x432e64){for(var _0x105f91=0x0,_0x56c989=events[_0x8605('0x4')];_0x105f91<_0x56c989;_0x105f91++){var _0x3a2675=events[_0x105f91];var _0x5283d0=createListener(_0x8605('0x5')+_0x3a2675,_0x432e64);SmsQueueEvents['on'](_0x3a2675,_0x5283d0);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e8d=['/describe','describe','show','post','create','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index'];(function(_0x4bd67a,_0x4f9725){var _0x2be5fb=function(_0x33e132){while(--_0x33e132){_0x4bd67a['push'](_0x4bd67a['shift']());}};_0x2be5fb(++_0x4f9725);}(_0x5e8d,0x11a));var _0xd5e8=function(_0x46fa18,_0xd379cb){_0x46fa18=_0x46fa18-0x0;var _0x5e9075=_0x5e8d[_0x46fa18];return _0x5e9075;};'use strict';var multer=require(_0xd5e8('0x0'));var util=require(_0xd5e8('0x1'));var path=require(_0xd5e8('0x2'));var timeout=require(_0xd5e8('0x3'));var express=require(_0xd5e8('0x4'));var router=express[_0xd5e8('0x5')]();var fs_extra=require(_0xd5e8('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xd5e8('0x7'));var config=require(_0xd5e8('0x8'));var controller=require('./smsQueueReport.controller');router[_0xd5e8('0x9')]('/',auth[_0xd5e8('0xa')](),controller[_0xd5e8('0xb')]);router['get'](_0xd5e8('0xc'),auth[_0xd5e8('0xa')](),controller[_0xd5e8('0xd')]);router[_0xd5e8('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xd5e8('0xe')]);router[_0xd5e8('0xf')]('/',auth[_0xd5e8('0xa')](),controller[_0xd5e8('0x10')]);router['put'](_0xd5e8('0x11'),auth[_0xd5e8('0xa')](),controller['update']);router[_0xd5e8('0x12')](_0xd5e8('0x11'),auth[_0xd5e8('0xa')](),controller[_0xd5e8('0x13')]);module[_0xd5e8('0x14')]=router;
\ No newline at end of file
+var _0x302c=['show','post','put','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','get','/describe','describe','/:id'];(function(_0x279d37,_0x14de3f){var _0x530173=function(_0x37fc79){while(--_0x37fc79){_0x279d37['push'](_0x279d37['shift']());}};_0x530173(++_0x14de3f);}(_0x302c,0x15c));var _0xc302=function(_0x3bf251,_0x17b789){_0x3bf251=_0x3bf251-0x0;var _0x28328b=_0x302c[_0x3bf251];return _0x28328b;};'use strict';var multer=require(_0xc302('0x0'));var util=require(_0xc302('0x1'));var path=require(_0xc302('0x2'));var timeout=require(_0xc302('0x3'));var express=require(_0xc302('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xc302('0x5'));var interaction=require(_0xc302('0x6'));var config=require(_0xc302('0x7'));var controller=require('./smsQueueReport.controller');router['get']('/',auth[_0xc302('0x8')](),controller['index']);router[_0xc302('0x9')](_0xc302('0xa'),auth[_0xc302('0x8')](),controller[_0xc302('0xb')]);router[_0xc302('0x9')](_0xc302('0xc'),auth['isAuthenticated'](),controller[_0xc302('0xd')]);router[_0xc302('0xe')]('/',auth['isAuthenticated'](),controller['create']);router[_0xc302('0xf')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0xc302('0x10')](_0xc302('0xc'),auth[_0xc302('0x8')](),controller[_0xc302('0x11')]);module[_0xc302('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x839e=['exports','STRING','DATE','moment'];(function(_0x1da09b,_0x1804bd){var _0x1fa032=function(_0x123423){while(--_0x123423){_0x1da09b['push'](_0x1da09b['shift']());}};_0x1fa032(++_0x1804bd);}(_0x839e,0x117));var _0xe839=function(_0x16b561,_0x5a914f){_0x16b561=_0x16b561-0x0;var _0x22599f=_0x839e[_0x16b561];return _0x22599f;};'use strict';var moment=require(_0xe839('0x0'));var Sequelize=require('sequelize');module[_0xe839('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0xe839('0x2')]},'joinAt':{'type':Sequelize[_0xe839('0x3')]},'leaveAt':{'type':Sequelize[_0xe839('0x3')]},'acceptAt':{'type':Sequelize[_0xe839('0x3')]},'exitAt':{'type':Sequelize[_0xe839('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xeeb8=['sequelize','exports','STRING','DATE'];(function(_0x1c2c56,_0x334d1f){var _0x270d98=function(_0x11d9f2){while(--_0x11d9f2){_0x1c2c56['push'](_0x1c2c56['shift']());}};_0x270d98(++_0x334d1f);}(_0xeeb8,0x168));var _0x8eeb=function(_0x41029c,_0x2c04bb){_0x41029c=_0x41029c-0x0;var _0x280385=_0xeeb8[_0x41029c];return _0x280385;};'use strict';var moment=require('moment');var Sequelize=require(_0x8eeb('0x0'));module[_0x8eeb('0x1')]={'uniqueid':{'type':Sequelize[_0x8eeb('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x8eeb('0x2')]},'joinAt':{'type':Sequelize[_0x8eeb('0x3')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0x8eeb('0x3')]},'exitAt':{'type':Sequelize[_0x8eeb('0x3')]},'reason':{'type':Sequelize[_0x8eeb('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d7b=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','apply','reject','save','update','then','destroy','stack','name','index','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','sort','where','pick','filters','filter','merge','options','SmsQueueReport','includeAll','findAll','catch','show','params','include','find','create','body','describe','eml-format'];(function(_0x3a2096,_0x515896){var _0x4d6b41=function(_0x10a6f7){while(--_0x10a6f7){_0x3a2096['push'](_0x3a2096['shift']());}};_0x4d6b41(++_0x515896);}(_0x5d7b,0x1e2));var _0xb5d7=function(_0x3a8a93,_0x91d782){_0x3a8a93=_0x3a8a93-0x0;var _0x223d43=_0x5d7b[_0x3a8a93];return _0x223d43;};'use strict';var emlformat=require(_0xb5d7('0x0'));var rimraf=require(_0xb5d7('0x1'));var zipdir=require(_0xb5d7('0x2'));var jsonpatch=require(_0xb5d7('0x3'));var rp=require(_0xb5d7('0x4'));var moment=require(_0xb5d7('0x5'));var BPromise=require(_0xb5d7('0x6'));var Mustache=require(_0xb5d7('0x7'));var util=require('util');var path=require(_0xb5d7('0x8'));var sox=require('sox');var csv=require(_0xb5d7('0x9'));var ejs=require(_0xb5d7('0xa'));var fs=require('fs');var fs_extra=require(_0xb5d7('0xb'));var _=require(_0xb5d7('0xc'));var squel=require(_0xb5d7('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb5d7('0xe'));var toCsv=require(_0xb5d7('0x9'));var querystring=require(_0xb5d7('0xf'));var Papa=require(_0xb5d7('0x10'));var Redis=require('ioredis');var authService=require(_0xb5d7('0x11'));var qs=require(_0xb5d7('0x12'));var as=require(_0xb5d7('0x13'));var hardwareService=require(_0xb5d7('0x14'));var logger=require('../../config/logger')(_0xb5d7('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xb5d7('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x567729,_0x44c07c){_0x44c07c=_0x44c07c||0xcc;return function(_0x5582c8){if(_0x5582c8){return _0x567729[_0xb5d7('0x17')](_0x44c07c);}return _0x567729[_0xb5d7('0x18')](_0x44c07c)[_0xb5d7('0x19')]();};}function respondWithResult(_0x5c8889,_0x575374){_0x575374=_0x575374||0xc8;return function(_0x28234f){if(_0x28234f){return _0x5c8889[_0xb5d7('0x18')](_0x575374)['json'](_0x28234f);}};}function respondWithFilteredResult(_0x446497,_0x1dc57a){return function(_0x1a6064){if(_0x1a6064){var _0x25bc06=typeof _0x1dc57a[_0xb5d7('0x1a')]===_0xb5d7('0x1b')&&typeof _0x1dc57a[_0xb5d7('0x1c')]==='undefined';var _0x342167=_0x1a6064['count'];var _0x27debc=_0x25bc06?0x0:_0x1dc57a['offset'];var _0x435e1e=_0x25bc06?_0x1a6064[_0xb5d7('0x1d')]:_0x1dc57a[_0xb5d7('0x1a')]+_0x1dc57a[_0xb5d7('0x1c')];var _0x1d03d0;if(_0x435e1e>=_0x342167){_0x435e1e=_0x342167;_0x1d03d0=0xc8;}else{_0x1d03d0=0xce;}_0x446497[_0xb5d7('0x18')](_0x1d03d0);return _0x446497['set']('Content-Range',_0x27debc+'-'+_0x435e1e+'/'+_0x342167)['json'](_0x1a6064);}return null;};}function patchUpdates(_0x62887f){return function(_0x24bba8){try{jsonpatch[_0xb5d7('0x1e')](_0x24bba8,_0x62887f,!![]);}catch(_0x4fc989){return BPromise[_0xb5d7('0x1f')](_0x4fc989);}return _0x24bba8[_0xb5d7('0x20')]();};}function saveUpdates(_0x326f30,_0x4c450d){return function(_0x46bb0d){if(_0x46bb0d){return _0x46bb0d[_0xb5d7('0x21')](_0x326f30)[_0xb5d7('0x22')](function(_0x2d494d){return _0x2d494d;});}return null;};}function removeEntity(_0x4c586b,_0x44e566){return function(_0x2653b1){if(_0x2653b1){return _0x2653b1[_0xb5d7('0x23')]()[_0xb5d7('0x22')](function(){_0x4c586b[_0xb5d7('0x18')](0xcc)[_0xb5d7('0x19')]();});}};}function handleEntityNotFound(_0x3a9a22,_0x4ed7aa){return function(_0x5402f5){if(!_0x5402f5){_0x3a9a22[_0xb5d7('0x17')](0x194);}return _0x5402f5;};}function handleError(_0x50a709,_0x1b0913){_0x1b0913=_0x1b0913||0x1f4;return function(_0x2e0dbd){logger['error'](_0x2e0dbd[_0xb5d7('0x24')]);if(_0x2e0dbd[_0xb5d7('0x25')]){delete _0x2e0dbd['name'];}_0x50a709['status'](_0x1b0913)['send'](_0x2e0dbd);};}exports[_0xb5d7('0x26')]=function(_0x4311dc,_0x529282){var _0x4a1eb9={},_0x30761c={},_0x768d91={'count':0x0,'rows':[]};var _0x518517=_['map'](db['SmsQueueReport'][_0xb5d7('0x27')],function(_0xe00339){return{'name':_0xe00339[_0xb5d7('0x28')],'type':_0xe00339[_0xb5d7('0x29')][_0xb5d7('0x2a')]};});_0x30761c[_0xb5d7('0x2b')]=_[_0xb5d7('0x2c')](_0x518517,_0xb5d7('0x25'));_0x30761c[_0xb5d7('0x2d')]=_[_0xb5d7('0x2e')](_0x4311dc[_0xb5d7('0x2d')]);_0x30761c['filters']=_[_0xb5d7('0x2f')](_0x30761c[_0xb5d7('0x2b')],_0x30761c[_0xb5d7('0x2d')]);_0x4a1eb9[_0xb5d7('0x30')]=_[_0xb5d7('0x2f')](_0x30761c[_0xb5d7('0x2b')],qs[_0xb5d7('0x31')](_0x4311dc[_0xb5d7('0x2d')]['fields']));_0x4a1eb9[_0xb5d7('0x30')]=_0x4a1eb9['attributes'][_0xb5d7('0x32')]?_0x4a1eb9[_0xb5d7('0x30')]:_0x30761c['model'];if(!_0x4311dc[_0xb5d7('0x2d')]['hasOwnProperty']('nolimit')){_0x4a1eb9[_0xb5d7('0x1c')]=qs['limit'](_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x1c')]);_0x4a1eb9[_0xb5d7('0x1a')]=qs[_0xb5d7('0x1a')](_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x1a')]);}_0x4a1eb9['order']=qs[_0xb5d7('0x33')](_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x33')]);_0x4a1eb9[_0xb5d7('0x34')]=qs['filters'](_[_0xb5d7('0x35')](_0x4311dc[_0xb5d7('0x2d')],_0x30761c[_0xb5d7('0x36')]),_0x518517);if(_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x37')]){_0x4a1eb9[_0xb5d7('0x34')]=_['merge'](_0x4a1eb9['where'],{'$or':_[_0xb5d7('0x2c')](_0x518517,function(_0x7777c6){if(_0x7777c6[_0xb5d7('0x29')]!=='VIRTUAL'){var _0x298a63={};_0x298a63[_0x7777c6[_0xb5d7('0x25')]]={'$like':'%'+_0x4311dc[_0xb5d7('0x2d')]['filter']+'%'};return _0x298a63;}})});}_0x4a1eb9=_[_0xb5d7('0x38')]({},_0x4a1eb9,_0x4311dc[_0xb5d7('0x39')]);var _0x4d80d7={'where':_0x4a1eb9[_0xb5d7('0x34')]};return db[_0xb5d7('0x3a')][_0xb5d7('0x1d')](_0x4d80d7)[_0xb5d7('0x22')](function(_0xd37c75){_0x768d91[_0xb5d7('0x1d')]=_0xd37c75;if(_0x4311dc['query'][_0xb5d7('0x3b')]){_0x4a1eb9['include']=[{'all':!![]}];}return db['SmsQueueReport'][_0xb5d7('0x3c')](_0x4a1eb9);})['then'](function(_0x3df1c8){_0x768d91['rows']=_0x3df1c8;return _0x768d91;})[_0xb5d7('0x22')](respondWithFilteredResult(_0x529282,_0x4a1eb9))[_0xb5d7('0x3d')](handleError(_0x529282,null));};exports[_0xb5d7('0x3e')]=function(_0x56557d,_0x11bd20){var _0x213df7={'raw':!![],'where':{'id':_0x56557d[_0xb5d7('0x3f')]['id']}},_0x556267={};_0x556267['model']=_[_0xb5d7('0x2e')](db[_0xb5d7('0x3a')][_0xb5d7('0x27')]);_0x556267[_0xb5d7('0x2d')]=_['keys'](_0x56557d[_0xb5d7('0x2d')]);_0x556267[_0xb5d7('0x36')]=_[_0xb5d7('0x2f')](_0x556267[_0xb5d7('0x2b')],_0x556267[_0xb5d7('0x2d')]);_0x213df7[_0xb5d7('0x30')]=_[_0xb5d7('0x2f')](_0x556267['model'],qs[_0xb5d7('0x31')](_0x56557d['query']['fields']));_0x213df7[_0xb5d7('0x30')]=_0x213df7[_0xb5d7('0x30')][_0xb5d7('0x32')]?_0x213df7[_0xb5d7('0x30')]:_0x556267[_0xb5d7('0x2b')];if(_0x56557d[_0xb5d7('0x2d')][_0xb5d7('0x3b')]){_0x213df7[_0xb5d7('0x40')]=[{'all':!![]}];}_0x213df7=_[_0xb5d7('0x38')]({},_0x213df7,_0x56557d[_0xb5d7('0x39')]);return db['SmsQueueReport'][_0xb5d7('0x41')](_0x213df7)[_0xb5d7('0x22')](handleEntityNotFound(_0x11bd20,null))[_0xb5d7('0x22')](respondWithResult(_0x11bd20,null))[_0xb5d7('0x3d')](handleError(_0x11bd20,null));};exports['create']=function(_0x14a3e2,_0x45f0c1){return db[_0xb5d7('0x3a')][_0xb5d7('0x42')](_0x14a3e2[_0xb5d7('0x43')],{})['then'](respondWithResult(_0x45f0c1,0xc9))[_0xb5d7('0x3d')](handleError(_0x45f0c1,null));};exports[_0xb5d7('0x21')]=function(_0x154735,_0x18fc77){if(_0x154735[_0xb5d7('0x43')]['id']){delete _0x154735['body']['id'];}return db['SmsQueueReport']['find']({'where':{'id':_0x154735[_0xb5d7('0x3f')]['id']}})[_0xb5d7('0x22')](handleEntityNotFound(_0x18fc77,null))[_0xb5d7('0x22')](saveUpdates(_0x154735['body'],null))[_0xb5d7('0x22')](respondWithResult(_0x18fc77,null))[_0xb5d7('0x3d')](handleError(_0x18fc77,null));};exports[_0xb5d7('0x23')]=function(_0xd1a27,_0xc8c1bd){return db['SmsQueueReport'][_0xb5d7('0x41')]({'where':{'id':_0xd1a27[_0xb5d7('0x3f')]['id']}})[_0xb5d7('0x22')](handleEntityNotFound(_0xc8c1bd,null))[_0xb5d7('0x22')](removeEntity(_0xc8c1bd,null))['catch'](handleError(_0xc8c1bd,null));};exports[_0xb5d7('0x44')]=function(_0x4662fc,_0x57a210){return db['SmsQueueReport']['describe']()['then'](respondWithResult(_0x57a210,null))[_0xb5d7('0x3d')](handleError(_0x57a210,null));};
\ No newline at end of file
+var _0x4590=['rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','fields','attributes','order','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','params','length','options','find','create','body','describe','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','index','SmsQueueReport'];(function(_0x2aea9e,_0x1f587f){var _0x430b92=function(_0x416c37){while(--_0x416c37){_0x2aea9e['push'](_0x2aea9e['shift']());}};_0x430b92(++_0x1f587f);}(_0x4590,0xfc));var _0x0459=function(_0x4beaca,_0x92d420){_0x4beaca=_0x4beaca-0x0;var _0x2febe4=_0x4590[_0x4beaca];return _0x2febe4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0459('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0459('0x1'));var rp=require(_0x0459('0x2'));var moment=require(_0x0459('0x3'));var BPromise=require(_0x0459('0x4'));var Mustache=require('mustache');var util=require(_0x0459('0x5'));var path=require(_0x0459('0x6'));var sox=require(_0x0459('0x7'));var csv=require(_0x0459('0x8'));var ejs=require(_0x0459('0x9'));var fs=require('fs');var fs_extra=require(_0x0459('0xa'));var _=require(_0x0459('0xb'));var squel=require(_0x0459('0xc'));var crypto=require(_0x0459('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x0459('0xe'));var toCsv=require(_0x0459('0x8'));var querystring=require(_0x0459('0xf'));var Papa=require(_0x0459('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x0459('0x11'));var hardwareService=require(_0x0459('0x12'));var logger=require(_0x0459('0x13'))(_0x0459('0x14'));var utils=require(_0x0459('0x15'));var config=require(_0x0459('0x16'));var licenseUtil=require(_0x0459('0x17'));var db=require(_0x0459('0x18'))['db'];function respondWithStatusCode(_0x4a21ad,_0x5db9b9){_0x5db9b9=_0x5db9b9||0xcc;return function(_0x2dfdd2){if(_0x2dfdd2){return _0x4a21ad['sendStatus'](_0x5db9b9);}return _0x4a21ad[_0x0459('0x19')](_0x5db9b9)['end']();};}function respondWithResult(_0x3fe886,_0x35fb92){_0x35fb92=_0x35fb92||0xc8;return function(_0x343d7a){if(_0x343d7a){return _0x3fe886[_0x0459('0x19')](_0x35fb92)[_0x0459('0x1a')](_0x343d7a);}};}function respondWithFilteredResult(_0x442201,_0x60750b){return function(_0x49f1d2){if(_0x49f1d2){var _0x1d2c98=typeof _0x60750b['offset']===_0x0459('0x1b')&&typeof _0x60750b[_0x0459('0x1c')]===_0x0459('0x1b');var _0x5018f0=_0x49f1d2[_0x0459('0x1d')];var _0x5b590f=_0x1d2c98?0x0:_0x60750b[_0x0459('0x1e')];var _0x53eb93=_0x1d2c98?_0x49f1d2[_0x0459('0x1d')]:_0x60750b[_0x0459('0x1e')]+_0x60750b[_0x0459('0x1c')];var _0x22ba4d;if(_0x53eb93>=_0x5018f0){_0x53eb93=_0x5018f0;_0x22ba4d=0xc8;}else{_0x22ba4d=0xce;}_0x442201[_0x0459('0x19')](_0x22ba4d);return _0x442201['set'](_0x0459('0x1f'),_0x5b590f+'-'+_0x53eb93+'/'+_0x5018f0)[_0x0459('0x1a')](_0x49f1d2);}return null;};}function patchUpdates(_0x1ad4d2){return function(_0x44dd4a){try{jsonpatch[_0x0459('0x20')](_0x44dd4a,_0x1ad4d2,!![]);}catch(_0x5a0516){return BPromise[_0x0459('0x21')](_0x5a0516);}return _0x44dd4a[_0x0459('0x22')]();};}function saveUpdates(_0x2e4c0f,_0x71a14){return function(_0x21a743){if(_0x21a743){return _0x21a743[_0x0459('0x23')](_0x2e4c0f)[_0x0459('0x24')](function(_0x4fd521){return _0x4fd521;});}return null;};}function removeEntity(_0x485ba9,_0x4464c8){return function(_0x3a4954){if(_0x3a4954){return _0x3a4954[_0x0459('0x25')]()['then'](function(){_0x485ba9[_0x0459('0x19')](0xcc)[_0x0459('0x26')]();});}};}function handleEntityNotFound(_0x4f345e,_0x130abf){return function(_0x411135){if(!_0x411135){_0x4f345e['sendStatus'](0x194);}return _0x411135;};}function handleError(_0x1e5276,_0x155c5e){_0x155c5e=_0x155c5e||0x1f4;return function(_0x30a182){logger[_0x0459('0x27')](_0x30a182[_0x0459('0x28')]);if(_0x30a182[_0x0459('0x29')]){delete _0x30a182[_0x0459('0x29')];}_0x1e5276[_0x0459('0x19')](_0x155c5e)['send'](_0x30a182);};}exports[_0x0459('0x2a')]=function(_0x58c58a,_0x54dc0e){var _0x1f612b={},_0x5af183={},_0x39c706={'count':0x0,'rows':[]};var _0x303e02=_['map'](db[_0x0459('0x2b')][_0x0459('0x2c')],function(_0x340850){return{'name':_0x340850[_0x0459('0x2d')],'type':_0x340850[_0x0459('0x2e')][_0x0459('0x2f')]};});_0x5af183['model']=_[_0x0459('0x30')](_0x303e02,_0x0459('0x29'));_0x5af183[_0x0459('0x31')]=_[_0x0459('0x32')](_0x58c58a[_0x0459('0x31')]);_0x5af183[_0x0459('0x33')]=_[_0x0459('0x34')](_0x5af183[_0x0459('0x35')],_0x5af183[_0x0459('0x31')]);_0x1f612b['attributes']=_[_0x0459('0x34')](_0x5af183[_0x0459('0x35')],qs[_0x0459('0x36')](_0x58c58a[_0x0459('0x31')][_0x0459('0x36')]));_0x1f612b[_0x0459('0x37')]=_0x1f612b[_0x0459('0x37')]['length']?_0x1f612b[_0x0459('0x37')]:_0x5af183[_0x0459('0x35')];if(!_0x58c58a['query']['hasOwnProperty']('nolimit')){_0x1f612b[_0x0459('0x1c')]=qs['limit'](_0x58c58a['query'][_0x0459('0x1c')]);_0x1f612b['offset']=qs[_0x0459('0x1e')](_0x58c58a[_0x0459('0x31')][_0x0459('0x1e')]);}_0x1f612b[_0x0459('0x38')]=qs[_0x0459('0x39')](_0x58c58a[_0x0459('0x31')][_0x0459('0x39')]);_0x1f612b[_0x0459('0x3a')]=qs[_0x0459('0x33')](_['pick'](_0x58c58a[_0x0459('0x31')],_0x5af183[_0x0459('0x33')]),_0x303e02);if(_0x58c58a[_0x0459('0x31')][_0x0459('0x3b')]){_0x1f612b['where']=_[_0x0459('0x3c')](_0x1f612b['where'],{'$or':_[_0x0459('0x30')](_0x303e02,function(_0x1bf2a4){if(_0x1bf2a4[_0x0459('0x2e')]!==_0x0459('0x3d')){var _0x332838={};_0x332838[_0x1bf2a4[_0x0459('0x29')]]={'$like':'%'+_0x58c58a[_0x0459('0x31')]['filter']+'%'};return _0x332838;}})});}_0x1f612b=_[_0x0459('0x3c')]({},_0x1f612b,_0x58c58a['options']);var _0x383690={'where':_0x1f612b['where']};return db[_0x0459('0x2b')]['count'](_0x383690)['then'](function(_0x1d066d){_0x39c706['count']=_0x1d066d;if(_0x58c58a[_0x0459('0x31')][_0x0459('0x3e')]){_0x1f612b[_0x0459('0x3f')]=[{'all':!![]}];}return db[_0x0459('0x2b')][_0x0459('0x40')](_0x1f612b);})[_0x0459('0x24')](function(_0x7e4ac6){_0x39c706[_0x0459('0x41')]=_0x7e4ac6;return _0x39c706;})[_0x0459('0x24')](respondWithFilteredResult(_0x54dc0e,_0x1f612b))[_0x0459('0x42')](handleError(_0x54dc0e,null));};exports['show']=function(_0x27d7fc,_0x3ae9ce){var _0xdb4f99={'raw':!![],'where':{'id':_0x27d7fc[_0x0459('0x43')]['id']}},_0x566e03={};_0x566e03[_0x0459('0x35')]=_[_0x0459('0x32')](db[_0x0459('0x2b')][_0x0459('0x2c')]);_0x566e03[_0x0459('0x31')]=_['keys'](_0x27d7fc[_0x0459('0x31')]);_0x566e03[_0x0459('0x33')]=_['intersection'](_0x566e03['model'],_0x566e03[_0x0459('0x31')]);_0xdb4f99[_0x0459('0x37')]=_['intersection'](_0x566e03[_0x0459('0x35')],qs[_0x0459('0x36')](_0x27d7fc[_0x0459('0x31')][_0x0459('0x36')]));_0xdb4f99[_0x0459('0x37')]=_0xdb4f99[_0x0459('0x37')][_0x0459('0x44')]?_0xdb4f99[_0x0459('0x37')]:_0x566e03[_0x0459('0x35')];if(_0x27d7fc['query'][_0x0459('0x3e')]){_0xdb4f99['include']=[{'all':!![]}];}_0xdb4f99=_[_0x0459('0x3c')]({},_0xdb4f99,_0x27d7fc[_0x0459('0x45')]);return db['SmsQueueReport'][_0x0459('0x46')](_0xdb4f99)[_0x0459('0x24')](handleEntityNotFound(_0x3ae9ce,null))[_0x0459('0x24')](respondWithResult(_0x3ae9ce,null))[_0x0459('0x42')](handleError(_0x3ae9ce,null));};exports['create']=function(_0x56e1e4,_0xaff992){return db[_0x0459('0x2b')][_0x0459('0x47')](_0x56e1e4[_0x0459('0x48')],{})[_0x0459('0x24')](respondWithResult(_0xaff992,0xc9))[_0x0459('0x42')](handleError(_0xaff992,null));};exports[_0x0459('0x23')]=function(_0x4a4986,_0x1122e0){if(_0x4a4986[_0x0459('0x48')]['id']){delete _0x4a4986[_0x0459('0x48')]['id'];}return db[_0x0459('0x2b')]['find']({'where':{'id':_0x4a4986[_0x0459('0x43')]['id']}})['then'](handleEntityNotFound(_0x1122e0,null))[_0x0459('0x24')](saveUpdates(_0x4a4986[_0x0459('0x48')],null))[_0x0459('0x24')](respondWithResult(_0x1122e0,null))[_0x0459('0x42')](handleError(_0x1122e0,null));};exports[_0x0459('0x25')]=function(_0x12421d,_0x4006cf){return db[_0x0459('0x2b')][_0x0459('0x46')]({'where':{'id':_0x12421d[_0x0459('0x43')]['id']}})[_0x0459('0x24')](handleEntityNotFound(_0x4006cf,null))[_0x0459('0x24')](removeEntity(_0x4006cf,null))[_0x0459('0x42')](handleError(_0x4006cf,null));};exports[_0x0459('0x49')]=function(_0x321827,_0x3cb0bb){return db[_0x0459('0x2b')][_0x0459('0x49')]()[_0x0459('0x24')](respondWithResult(_0x3cb0bb,null))[_0x0459('0x42')](handleError(_0x3cb0bb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['define','SmsQueueReport','uniqueid','lodash','util','../../config/logger','bluebird','path','rimraf','../../config/environment','./smsQueueReport.attributes','exports'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0xa9e0[_0x36dfbd];return _0x4ecad9;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'report_sms_queue','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x0a9e('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb91=['path','rimraf','./smsQueueReport.attributes','exports','define','report_sms_queue','uniqueid','../../config/logger','api','moment','bluebird'];(function(_0x366fa0,_0x4e78ab){var _0x3f1962=function(_0x23f884){while(--_0x23f884){_0x366fa0['push'](_0x366fa0['shift']());}};_0x3f1962(++_0x4e78ab);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x367361,_0x311488){_0x367361=_0x367361-0x0;var _0x195d2d=_0xcb91[_0x367361];return _0x195d2d;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1cb9('0x0'))(_0x1cb9('0x1'));var moment=require(_0x1cb9('0x2'));var BPromise=require(_0x1cb9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cb9('0x4'));var rimraf=require(_0x1cb9('0x5'));var config=require('../../config/environment');var attributes=require(_0x1cb9('0x6'));module[_0x1cb9('0x7')]=function(_0x53ffbd,_0x226b69){return _0x53ffbd[_0x1cb9('0x8')]('SmsQueueReport',attributes,{'tableName':_0x1cb9('0x9'),'paranoid':![],'indexes':[{'name':_0x1cb9('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf05=['moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','error','code','message','SmsQueueReport,\x20%s,\x20%s','catch','CreateSmsQueueReport','SmsQueueReport','options','raw','stringify','UpdateSmsQueueReport','update','where','attributes','limit','util'];(function(_0x20a089,_0x44878b){var _0x3305d8=function(_0x4e297e){while(--_0x4e297e){_0x20a089['push'](_0x20a089['shift']());}};_0x3305d8(++_0x44878b);}(_0xaf05,0x7f));var _0x5af0=function(_0x567e0a,_0x4b7dc2){_0x567e0a=_0x567e0a-0x0;var _0x5cb916=_0xaf05[_0x567e0a];return _0x5cb916;};'use strict';var _=require('lodash');var util=require(_0x5af0('0x0'));var moment=require(_0x5af0('0x1'));var BPromise=require(_0x5af0('0x2'));var rs=require(_0x5af0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5af0('0x4'))['db'];var utils=require(_0x5af0('0x5'));var logger=require(_0x5af0('0x6'))(_0x5af0('0x7'));var config=require(_0x5af0('0x8'));var jayson=require(_0x5af0('0x9'));var client=jayson['client'][_0x5af0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x437f99,_0x32be83,_0x276fdc){return new BPromise(function(_0x903dbc,_0x561568){return client[_0x5af0('0xb')](_0x437f99,_0x276fdc)[_0x5af0('0xc')](function(_0x2aee85){logger[_0x5af0('0xd')]('SmsQueueReport,\x20%s,\x20%s',_0x32be83,_0x5af0('0xe'));logger[_0x5af0('0xf')](_0x5af0('0x10'),_0x32be83,_0x5af0('0xe'),JSON['stringify'](_0x2aee85));if(_0x2aee85[_0x5af0('0x11')]){if(_0x2aee85[_0x5af0('0x11')][_0x5af0('0x12')]===0x1f4){logger[_0x5af0('0x11')]('SmsQueueReport,\x20%s,\x20%s',_0x32be83,_0x2aee85[_0x5af0('0x11')][_0x5af0('0x13')]);return _0x561568(_0x2aee85[_0x5af0('0x11')]['message']);}logger[_0x5af0('0x11')]('SmsQueueReport,\x20%s,\x20%s',_0x32be83,_0x2aee85[_0x5af0('0x11')][_0x5af0('0x13')]);return _0x903dbc(_0x2aee85[_0x5af0('0x11')][_0x5af0('0x13')]);}else{logger[_0x5af0('0xd')](_0x5af0('0x14'),_0x32be83,_0x5af0('0xe'));_0x903dbc(_0x2aee85['result'][_0x5af0('0x13')]);}})[_0x5af0('0x15')](function(_0x1e0264){logger['error'](_0x5af0('0x14'),_0x32be83,_0x1e0264);_0x561568(_0x1e0264);});});}exports[_0x5af0('0x16')]=function(_0x747c7){var _0x3896ac=this;return new Promise(function(_0x280a0f,_0x28fe5c){return db[_0x5af0('0x17')]['create'](_0x747c7['body'],{'raw':_0x747c7[_0x5af0('0x18')]?_0x747c7['options'][_0x5af0('0x19')]===undefined?!![]:![]:!![]})[_0x5af0('0xc')](function(_0x58296e){logger['info'](_0x5af0('0x16'),_0x747c7);logger['debug'](_0x5af0('0x16'),_0x747c7,JSON[_0x5af0('0x1a')](_0x58296e));_0x280a0f(_0x58296e);})[_0x5af0('0x15')](function(_0xad652e){logger['error'](_0x5af0('0x16'),_0xad652e[_0x5af0('0x13')],_0x747c7);_0x28fe5c(_0x3896ac[_0x5af0('0x11')](0x1f4,_0xad652e[_0x5af0('0x13')]));});});};exports[_0x5af0('0x1b')]=function(_0x4f7645){var _0x552da2=this;return new Promise(function(_0x4cb169,_0x555b0){return db['SmsQueueReport'][_0x5af0('0x1c')](_0x4f7645['body'],{'raw':_0x4f7645['options']?_0x4f7645[_0x5af0('0x18')][_0x5af0('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f7645[_0x5af0('0x18')]?_0x4f7645['options'][_0x5af0('0x1d')]||null:null,'attributes':_0x4f7645['options']?_0x4f7645['options'][_0x5af0('0x1e')]||null:null,'limit':_0x4f7645[_0x5af0('0x18')]?_0x4f7645[_0x5af0('0x18')][_0x5af0('0x1f')]||null:null})[_0x5af0('0xc')](function(_0x4b7498){logger[_0x5af0('0xd')](_0x5af0('0x1b'),_0x4f7645);logger[_0x5af0('0xf')](_0x5af0('0x1b'),_0x4f7645,JSON[_0x5af0('0x1a')](_0x4b7498));_0x4cb169(_0x4b7498);})['catch'](function(_0x57ba81){logger['error'](_0x5af0('0x1b'),_0x57ba81[_0x5af0('0x13')],_0x4f7645);_0x555b0(_0x552da2[_0x5af0('0x11')](0x1f4,_0x57ba81[_0x5af0('0x13')]));});});};
\ No newline at end of file
+var _0x2cff=['update','where','attributes','limit','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','SmsQueueReport','create','body','options','raw','CreateSmsQueueReport','UpdateSmsQueueReport'];(function(_0x18032f,_0x4f4e45){var _0xb0b2b8=function(_0x563262){while(--_0x563262){_0x18032f['push'](_0x18032f['shift']());}};_0xb0b2b8(++_0x4f4e45);}(_0x2cff,0xd0));var _0xf2cf=function(_0x59f3b0,_0x182830){_0x59f3b0=_0x59f3b0-0x0;var _0x4f5d1c=_0x2cff[_0x59f3b0];return _0x4f5d1c;};'use strict';var _=require(_0xf2cf('0x0'));var util=require(_0xf2cf('0x1'));var moment=require(_0xf2cf('0x2'));var BPromise=require(_0xf2cf('0x3'));var rs=require(_0xf2cf('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xf2cf('0x5'));var logger=require(_0xf2cf('0x6'))(_0xf2cf('0x7'));var config=require(_0xf2cf('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xf2cf('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3ddb27,_0x46dd07,_0x4c32bd){return new BPromise(function(_0x2c5d6f,_0x1051d6){return client[_0xf2cf('0xa')](_0x3ddb27,_0x4c32bd)[_0xf2cf('0xb')](function(_0x3e0681){logger[_0xf2cf('0xc')](_0xf2cf('0xd'),_0x46dd07,_0xf2cf('0xe'));logger[_0xf2cf('0xf')](_0xf2cf('0x10'),_0x46dd07,_0xf2cf('0xe'),JSON[_0xf2cf('0x11')](_0x3e0681));if(_0x3e0681[_0xf2cf('0x12')]){if(_0x3e0681['error'][_0xf2cf('0x13')]===0x1f4){logger[_0xf2cf('0x12')]('SmsQueueReport,\x20%s,\x20%s',_0x46dd07,_0x3e0681['error'][_0xf2cf('0x14')]);return _0x1051d6(_0x3e0681[_0xf2cf('0x12')]['message']);}logger[_0xf2cf('0x12')](_0xf2cf('0xd'),_0x46dd07,_0x3e0681[_0xf2cf('0x12')]['message']);return _0x2c5d6f(_0x3e0681[_0xf2cf('0x12')][_0xf2cf('0x14')]);}else{logger[_0xf2cf('0xc')](_0xf2cf('0xd'),_0x46dd07,_0xf2cf('0xe'));_0x2c5d6f(_0x3e0681[_0xf2cf('0x15')]['message']);}})[_0xf2cf('0x16')](function(_0x1d88c0){logger[_0xf2cf('0x12')](_0xf2cf('0xd'),_0x46dd07,_0x1d88c0);_0x1051d6(_0x1d88c0);});});}exports['CreateSmsQueueReport']=function(_0x53e96c){var _0x5009e4=this;return new Promise(function(_0x2dfc5a,_0x1bf2a5){return db[_0xf2cf('0x17')][_0xf2cf('0x18')](_0x53e96c[_0xf2cf('0x19')],{'raw':_0x53e96c[_0xf2cf('0x1a')]?_0x53e96c[_0xf2cf('0x1a')][_0xf2cf('0x1b')]===undefined?!![]:![]:!![]})[_0xf2cf('0xb')](function(_0x154cb1){logger['info']('CreateSmsQueueReport',_0x53e96c);logger[_0xf2cf('0xf')]('CreateSmsQueueReport',_0x53e96c,JSON[_0xf2cf('0x11')](_0x154cb1));_0x2dfc5a(_0x154cb1);})[_0xf2cf('0x16')](function(_0x27121b){logger[_0xf2cf('0x12')](_0xf2cf('0x1c'),_0x27121b[_0xf2cf('0x14')],_0x53e96c);_0x1bf2a5(_0x5009e4[_0xf2cf('0x12')](0x1f4,_0x27121b[_0xf2cf('0x14')]));});});};exports[_0xf2cf('0x1d')]=function(_0x5f089b){var _0x2a8ddb=this;return new Promise(function(_0x3a2cd8,_0x553015){return db[_0xf2cf('0x17')][_0xf2cf('0x1e')](_0x5f089b['body'],{'raw':_0x5f089b['options']?_0x5f089b['options'][_0xf2cf('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5f089b[_0xf2cf('0x1a')]?_0x5f089b[_0xf2cf('0x1a')][_0xf2cf('0x1f')]||null:null,'attributes':_0x5f089b[_0xf2cf('0x1a')]?_0x5f089b[_0xf2cf('0x1a')][_0xf2cf('0x20')]||null:null,'limit':_0x5f089b[_0xf2cf('0x1a')]?_0x5f089b['options'][_0xf2cf('0x21')]||null:null})[_0xf2cf('0xb')](function(_0x339098){logger[_0xf2cf('0xc')](_0xf2cf('0x1d'),_0x5f089b);logger[_0xf2cf('0xf')](_0xf2cf('0x1d'),_0x5f089b,JSON['stringify'](_0x339098));_0x3a2cd8(_0x339098);})[_0xf2cf('0x16')](function(_0xa2a0c9){logger[_0xf2cf('0x12')]('UpdateSmsQueueReport',_0xa2a0c9[_0xf2cf('0x14')],_0x5f089b);_0x553015(_0x2a8ddb['error'](0x1f4,_0xa2a0c9[_0xf2cf('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b8f=['destroy','exports','util','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','./smsTransferReport.controller','get','index','/describe','isAuthenticated','/:id','show','post','create','put'];(function(_0xc298ad,_0xea4dc2){var _0x11b2e6=function(_0xe2314f){while(--_0xe2314f){_0xc298ad['push'](_0xc298ad['shift']());}};_0x11b2e6(++_0xea4dc2);}(_0x6b8f,0x1bc));var _0xf6b8=function(_0xb3182d,_0x40f44a){_0xb3182d=_0xb3182d-0x0;var _0x2692e1=_0x6b8f[_0xb3182d];return _0x2692e1;};'use strict';var multer=require('multer');var util=require(_0xf6b8('0x0'));var path=require('path');var timeout=require(_0xf6b8('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf6b8('0x2'));var auth=require(_0xf6b8('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xf6b8('0x4'));var controller=require(_0xf6b8('0x5'));router[_0xf6b8('0x6')]('/',auth['isAuthenticated'](),controller[_0xf6b8('0x7')]);router[_0xf6b8('0x6')](_0xf6b8('0x8'),auth[_0xf6b8('0x9')](),controller['describe']);router['get'](_0xf6b8('0xa'),auth['isAuthenticated'](),controller[_0xf6b8('0xb')]);router[_0xf6b8('0xc')]('/',auth[_0xf6b8('0x9')](),controller[_0xf6b8('0xd')]);router[_0xf6b8('0xe')](_0xf6b8('0xa'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xf6b8('0xa'),auth[_0xf6b8('0x9')](),controller[_0xf6b8('0xf')]);module[_0xf6b8('0x10')]=router;
\ No newline at end of file
+var _0xdd0c=['../../components/auth/service','../../components/interaction/service','../../config/environment','./smsTransferReport.controller','get','index','/describe','isAuthenticated','describe','/:id','post','create','put','update','delete','util','path','connect-timeout','Router'];(function(_0x5e94f2,_0x17404c){var _0x3c96b1=function(_0x346116){while(--_0x346116){_0x5e94f2['push'](_0x5e94f2['shift']());}};_0x3c96b1(++_0x17404c);}(_0xdd0c,0x165));var _0xcdd0=function(_0x5770f6,_0x5503fd){_0x5770f6=_0x5770f6-0x0;var _0x53352b=_0xdd0c[_0x5770f6];return _0x53352b;};'use strict';var multer=require('multer');var util=require(_0xcdd0('0x0'));var path=require(_0xcdd0('0x1'));var timeout=require(_0xcdd0('0x2'));var express=require('express');var router=express[_0xcdd0('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xcdd0('0x4'));var interaction=require(_0xcdd0('0x5'));var config=require(_0xcdd0('0x6'));var controller=require(_0xcdd0('0x7'));router[_0xcdd0('0x8')]('/',auth['isAuthenticated'](),controller[_0xcdd0('0x9')]);router[_0xcdd0('0x8')](_0xcdd0('0xa'),auth[_0xcdd0('0xb')](),controller[_0xcdd0('0xc')]);router['get'](_0xcdd0('0xd'),auth['isAuthenticated'](),controller['show']);router[_0xcdd0('0xe')]('/',auth[_0xcdd0('0xb')](),controller[_0xcdd0('0xf')]);router[_0xcdd0('0x10')](_0xcdd0('0xd'),auth[_0xcdd0('0xb')](),controller[_0xcdd0('0x11')]);router[_0xcdd0('0x12')](_0xcdd0('0xd'),auth[_0xcdd0('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['NOW','moment','sequelize','exports','account','agent','queue'];(function(_0x2c519a,_0x21dca3){var _0x50529d=function(_0x14f13c){while(--_0x14f13c){_0x2c519a['push'](_0x2c519a['shift']());}};_0x50529d(++_0x21dca3);}(_0x70e0,0x17b));var _0x070e=function(_0x494f77,_0x1ee6ff){_0x494f77=_0x494f77-0x0;var _0x2eafde=_0x70e0[_0x494f77];return _0x2eafde;};'use strict';var moment=require(_0x070e('0x0'));var Sequelize=require(_0x070e('0x1'));module[_0x070e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x070e('0x3'),_0x070e('0x4'),_0x070e('0x5')),'allowNull':![],'defaultValue':_0x070e('0x5')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x070e('0x6')]}};
\ No newline at end of file
+var _0x9bde=['NOW','sequelize','STRING','account','agent','queue','DATE'];(function(_0x3ce2c4,_0x4544c1){var _0x4047c1=function(_0x3fece6){while(--_0x3fece6){_0x3ce2c4['push'](_0x3ce2c4['shift']());}};_0x4047c1(++_0x4544c1);}(_0x9bde,0xe1));var _0xe9bd=function(_0x451742,_0x304ecc){_0x451742=_0x451742-0x0;var _0x420788=_0x9bde[_0x451742];return _0x420788;};'use strict';var moment=require('moment');var Sequelize=require(_0xe9bd('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0xe9bd('0x1')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xe9bd('0x2'),_0xe9bd('0x3'),_0xe9bd('0x4')),'allowNull':![],'defaultValue':_0xe9bd('0x4')},'transferredAt':{'type':Sequelize[_0xe9bd('0x5')],'allowNull':![],'defaultValue':Sequelize[_0xe9bd('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xefd9=['../../config/license/util','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','SmsTransferReport','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','body','rimraf','zip-dir','request-promise','bluebird','util','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment'];(function(_0x1aa3bd,_0x54996f){var _0x11ebd7=function(_0x317912){while(--_0x317912){_0x1aa3bd['push'](_0x1aa3bd['shift']());}};_0x11ebd7(++_0x54996f);}(_0xefd9,0x1a2));var _0x9efd=function(_0x2d99c2,_0x3afcfd){_0x2d99c2=_0x2d99c2-0x0;var _0x207ebf=_0xefd9[_0x2d99c2];return _0x207ebf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9efd('0x0'));var zipdir=require(_0x9efd('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9efd('0x2'));var moment=require('moment');var BPromise=require(_0x9efd('0x3'));var Mustache=require('mustache');var util=require(_0x9efd('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0x9efd('0x5'));var ejs=require(_0x9efd('0x6'));var fs=require('fs');var fs_extra=require(_0x9efd('0x7'));var _=require(_0x9efd('0x8'));var squel=require(_0x9efd('0x9'));var crypto=require(_0x9efd('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x9efd('0xb'));var toCsv=require(_0x9efd('0x5'));var querystring=require(_0x9efd('0xc'));var Papa=require(_0x9efd('0xd'));var Redis=require('ioredis');var authService=require(_0x9efd('0xe'));var qs=require(_0x9efd('0xf'));var as=require(_0x9efd('0x10'));var hardwareService=require(_0x9efd('0x11'));var logger=require('../../config/logger')(_0x9efd('0x12'));var utils=require('../../config/utils');var config=require(_0x9efd('0x13'));var licenseUtil=require(_0x9efd('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1ca621,_0x1bdead){_0x1bdead=_0x1bdead||0xcc;return function(_0x342d50){if(_0x342d50){return _0x1ca621[_0x9efd('0x15')](_0x1bdead);}return _0x1ca621[_0x9efd('0x16')](_0x1bdead)[_0x9efd('0x17')]();};}function respondWithResult(_0x599bf1,_0x26c3a3){_0x26c3a3=_0x26c3a3||0xc8;return function(_0x41d90e){if(_0x41d90e){return _0x599bf1[_0x9efd('0x16')](_0x26c3a3)[_0x9efd('0x18')](_0x41d90e);}};}function respondWithFilteredResult(_0x3effcc,_0x358405){return function(_0x1c0033){if(_0x1c0033){var _0x50a4d3=typeof _0x358405['offset']===_0x9efd('0x19')&&typeof _0x358405['limit']==='undefined';var _0xd5addf=_0x1c0033['count'];var _0x5f1dea=_0x50a4d3?0x0:_0x358405['offset'];var _0x2c3459=_0x50a4d3?_0x1c0033[_0x9efd('0x1a')]:_0x358405[_0x9efd('0x1b')]+_0x358405[_0x9efd('0x1c')];var _0x47d013;if(_0x2c3459>=_0xd5addf){_0x2c3459=_0xd5addf;_0x47d013=0xc8;}else{_0x47d013=0xce;}_0x3effcc['status'](_0x47d013);return _0x3effcc[_0x9efd('0x1d')](_0x9efd('0x1e'),_0x5f1dea+'-'+_0x2c3459+'/'+_0xd5addf)[_0x9efd('0x18')](_0x1c0033);}return null;};}function patchUpdates(_0x8fb5ec){return function(_0x514344){try{jsonpatch[_0x9efd('0x1f')](_0x514344,_0x8fb5ec,!![]);}catch(_0x574581){return BPromise[_0x9efd('0x20')](_0x574581);}return _0x514344['save']();};}function saveUpdates(_0x27999b,_0x38ea71){return function(_0x3d7fe2){if(_0x3d7fe2){return _0x3d7fe2[_0x9efd('0x21')](_0x27999b)[_0x9efd('0x22')](function(_0x4c9a51){return _0x4c9a51;});}return null;};}function removeEntity(_0x3691f6,_0x3095e7){return function(_0x6080bc){if(_0x6080bc){return _0x6080bc[_0x9efd('0x23')]()[_0x9efd('0x22')](function(){_0x3691f6['status'](0xcc)[_0x9efd('0x17')]();});}};}function handleEntityNotFound(_0x3b2285,_0x400cca){return function(_0x13ab8c){if(!_0x13ab8c){_0x3b2285['sendStatus'](0x194);}return _0x13ab8c;};}function handleError(_0x1ca41d,_0x58f4df){_0x58f4df=_0x58f4df||0x1f4;return function(_0x411101){logger[_0x9efd('0x24')](_0x411101[_0x9efd('0x25')]);if(_0x411101['name']){delete _0x411101[_0x9efd('0x26')];}_0x1ca41d[_0x9efd('0x16')](_0x58f4df)[_0x9efd('0x27')](_0x411101);};}exports[_0x9efd('0x28')]=function(_0x2ae1c4,_0x2cf109){var _0x564afb={},_0x28c721={},_0x2f88bc={'count':0x0,'rows':[]};var _0x242e19=_[_0x9efd('0x29')](db[_0x9efd('0x2a')]['rawAttributes'],function(_0x4a6417){return{'name':_0x4a6417[_0x9efd('0x2b')],'type':_0x4a6417['type'][_0x9efd('0x2c')]};});_0x28c721[_0x9efd('0x2d')]=_[_0x9efd('0x29')](_0x242e19,_0x9efd('0x26'));_0x28c721[_0x9efd('0x2e')]=_[_0x9efd('0x2f')](_0x2ae1c4['query']);_0x28c721[_0x9efd('0x30')]=_[_0x9efd('0x31')](_0x28c721[_0x9efd('0x2d')],_0x28c721[_0x9efd('0x2e')]);_0x564afb['attributes']=_[_0x9efd('0x31')](_0x28c721['model'],qs[_0x9efd('0x32')](_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x32')]));_0x564afb[_0x9efd('0x33')]=_0x564afb['attributes'][_0x9efd('0x34')]?_0x564afb[_0x9efd('0x33')]:_0x28c721[_0x9efd('0x2d')];if(!_0x2ae1c4['query'][_0x9efd('0x35')](_0x9efd('0x36'))){_0x564afb['limit']=qs['limit'](_0x2ae1c4[_0x9efd('0x2e')]['limit']);_0x564afb[_0x9efd('0x1b')]=qs[_0x9efd('0x1b')](_0x2ae1c4[_0x9efd('0x2e')]['offset']);}_0x564afb['order']=qs[_0x9efd('0x37')](_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x37')]);_0x564afb[_0x9efd('0x38')]=qs['filters'](_[_0x9efd('0x39')](_0x2ae1c4[_0x9efd('0x2e')],_0x28c721['filters']),_0x242e19);if(_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x3a')]){_0x564afb[_0x9efd('0x38')]=_[_0x9efd('0x3b')](_0x564afb[_0x9efd('0x38')],{'$or':_[_0x9efd('0x29')](_0x242e19,function(_0x3d3347){if(_0x3d3347[_0x9efd('0x3c')]!=='VIRTUAL'){var _0x5c1812={};_0x5c1812[_0x3d3347[_0x9efd('0x26')]]={'$like':'%'+_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x3a')]+'%'};return _0x5c1812;}})});}_0x564afb=_[_0x9efd('0x3b')]({},_0x564afb,_0x2ae1c4[_0x9efd('0x3d')]);var _0x1ea82a={'where':_0x564afb['where']};return db['SmsTransferReport'][_0x9efd('0x1a')](_0x1ea82a)[_0x9efd('0x22')](function(_0x5e8acf){_0x2f88bc['count']=_0x5e8acf;if(_0x2ae1c4[_0x9efd('0x2e')]['includeAll']){_0x564afb[_0x9efd('0x3e')]=[{'all':!![]}];}return db['SmsTransferReport'][_0x9efd('0x3f')](_0x564afb);})[_0x9efd('0x22')](function(_0x52fcb1){_0x2f88bc[_0x9efd('0x40')]=_0x52fcb1;return _0x2f88bc;})['then'](respondWithFilteredResult(_0x2cf109,_0x564afb))[_0x9efd('0x41')](handleError(_0x2cf109,null));};exports[_0x9efd('0x42')]=function(_0x35b05f,_0x1a8645){var _0x2792a2={'raw':!![],'where':{'id':_0x35b05f[_0x9efd('0x43')]['id']}},_0x2e33b6={};_0x2e33b6[_0x9efd('0x2d')]=_[_0x9efd('0x2f')](db[_0x9efd('0x2a')][_0x9efd('0x44')]);_0x2e33b6[_0x9efd('0x2e')]=_[_0x9efd('0x2f')](_0x35b05f['query']);_0x2e33b6[_0x9efd('0x30')]=_[_0x9efd('0x31')](_0x2e33b6[_0x9efd('0x2d')],_0x2e33b6['query']);_0x2792a2['attributes']=_['intersection'](_0x2e33b6[_0x9efd('0x2d')],qs['fields'](_0x35b05f[_0x9efd('0x2e')][_0x9efd('0x32')]));_0x2792a2['attributes']=_0x2792a2['attributes'][_0x9efd('0x34')]?_0x2792a2[_0x9efd('0x33')]:_0x2e33b6['model'];if(_0x35b05f[_0x9efd('0x2e')][_0x9efd('0x45')]){_0x2792a2[_0x9efd('0x3e')]=[{'all':!![]}];}_0x2792a2=_['merge']({},_0x2792a2,_0x35b05f[_0x9efd('0x3d')]);return db[_0x9efd('0x2a')][_0x9efd('0x46')](_0x2792a2)[_0x9efd('0x22')](handleEntityNotFound(_0x1a8645,null))['then'](respondWithResult(_0x1a8645,null))[_0x9efd('0x41')](handleError(_0x1a8645,null));};exports[_0x9efd('0x47')]=function(_0x4e949d,_0x44059d){return db[_0x9efd('0x2a')]['create'](_0x4e949d['body'],{})[_0x9efd('0x22')](respondWithResult(_0x44059d,0xc9))[_0x9efd('0x41')](handleError(_0x44059d,null));};exports[_0x9efd('0x21')]=function(_0x32a5d0,_0x356712){if(_0x32a5d0[_0x9efd('0x48')]['id']){delete _0x32a5d0[_0x9efd('0x48')]['id'];}return db[_0x9efd('0x2a')][_0x9efd('0x46')]({'where':{'id':_0x32a5d0['params']['id']}})[_0x9efd('0x22')](handleEntityNotFound(_0x356712,null))[_0x9efd('0x22')](saveUpdates(_0x32a5d0[_0x9efd('0x48')],null))[_0x9efd('0x22')](respondWithResult(_0x356712,null))[_0x9efd('0x41')](handleError(_0x356712,null));};exports['destroy']=function(_0x2efe21,_0x470c79){return db[_0x9efd('0x2a')][_0x9efd('0x46')]({'where':{'id':_0x2efe21[_0x9efd('0x43')]['id']}})[_0x9efd('0x22')](handleEntityNotFound(_0x470c79,null))[_0x9efd('0x22')](removeEntity(_0x470c79,null))[_0x9efd('0x41')](handleError(_0x470c79,null));};exports['describe']=function(_0x5e5a9f,_0x2d4ccb){return db['SmsTransferReport']['describe']()[_0x9efd('0x22')](respondWithResult(_0x2d4ccb,null))[_0x9efd('0x41')](handleError(_0x2d4ccb,null));};
\ No newline at end of file
+var _0x2d39=['then','end','sendStatus','error','stack','send','index','SmsTransferReport','key','model','name','query','keys','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','map','type','VIRTUAL','merge','options','count','includeAll','include','findAll','rows','catch','show','find','create','body','params','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','status','json','offset','undefined','limit','set','reject'];(function(_0x1cd712,_0x18dca5){var _0x5dcf75=function(_0x24b55){while(--_0x24b55){_0x1cd712['push'](_0x1cd712['shift']());}};_0x5dcf75(++_0x18dca5);}(_0x2d39,0x101));var _0x92d3=function(_0x2adfcb,_0x4c49fa){_0x2adfcb=_0x2adfcb-0x0;var _0x5bcbf6=_0x2d39[_0x2adfcb];return _0x5bcbf6;};'use strict';var emlformat=require(_0x92d3('0x0'));var rimraf=require(_0x92d3('0x1'));var zipdir=require(_0x92d3('0x2'));var jsonpatch=require(_0x92d3('0x3'));var rp=require('request-promise');var moment=require(_0x92d3('0x4'));var BPromise=require(_0x92d3('0x5'));var Mustache=require('mustache');var util=require(_0x92d3('0x6'));var path=require('path');var sox=require(_0x92d3('0x7'));var csv=require(_0x92d3('0x8'));var ejs=require(_0x92d3('0x9'));var fs=require('fs');var fs_extra=require(_0x92d3('0xa'));var _=require(_0x92d3('0xb'));var squel=require(_0x92d3('0xc'));var crypto=require(_0x92d3('0xd'));var jsforce=require(_0x92d3('0xe'));var deskjs=require(_0x92d3('0xf'));var toCsv=require(_0x92d3('0x8'));var querystring=require(_0x92d3('0x10'));var Papa=require(_0x92d3('0x11'));var Redis=require(_0x92d3('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x92d3('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x92d3('0x14'))('api');var utils=require(_0x92d3('0x15'));var config=require(_0x92d3('0x16'));var licenseUtil=require(_0x92d3('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x53ee5f,_0x2152bc){_0x2152bc=_0x2152bc||0xcc;return function(_0x16bd67){if(_0x16bd67){return _0x53ee5f['sendStatus'](_0x2152bc);}return _0x53ee5f[_0x92d3('0x18')](_0x2152bc)['end']();};}function respondWithResult(_0x3a175b,_0x3d1ab6){_0x3d1ab6=_0x3d1ab6||0xc8;return function(_0x461f47){if(_0x461f47){return _0x3a175b[_0x92d3('0x18')](_0x3d1ab6)[_0x92d3('0x19')](_0x461f47);}};}function respondWithFilteredResult(_0x5c8db3,_0x54c280){return function(_0x370b8e){if(_0x370b8e){var _0x41c541=typeof _0x54c280[_0x92d3('0x1a')]===_0x92d3('0x1b')&&typeof _0x54c280[_0x92d3('0x1c')]==='undefined';var _0x43383e=_0x370b8e['count'];var _0x1ee244=_0x41c541?0x0:_0x54c280[_0x92d3('0x1a')];var _0x36dd1e=_0x41c541?_0x370b8e['count']:_0x54c280[_0x92d3('0x1a')]+_0x54c280[_0x92d3('0x1c')];var _0x1bc31a;if(_0x36dd1e>=_0x43383e){_0x36dd1e=_0x43383e;_0x1bc31a=0xc8;}else{_0x1bc31a=0xce;}_0x5c8db3[_0x92d3('0x18')](_0x1bc31a);return _0x5c8db3[_0x92d3('0x1d')]('Content-Range',_0x1ee244+'-'+_0x36dd1e+'/'+_0x43383e)[_0x92d3('0x19')](_0x370b8e);}return null;};}function patchUpdates(_0x4becb3){return function(_0x49d384){try{jsonpatch['apply'](_0x49d384,_0x4becb3,!![]);}catch(_0xf4770c){return BPromise[_0x92d3('0x1e')](_0xf4770c);}return _0x49d384['save']();};}function saveUpdates(_0x1461c1,_0x51e992){return function(_0x48959c){if(_0x48959c){return _0x48959c['update'](_0x1461c1)[_0x92d3('0x1f')](function(_0x1565ec){return _0x1565ec;});}return null;};}function removeEntity(_0x3819a6,_0x5139c7){return function(_0x21eb57){if(_0x21eb57){return _0x21eb57['destroy']()[_0x92d3('0x1f')](function(){_0x3819a6[_0x92d3('0x18')](0xcc)[_0x92d3('0x20')]();});}};}function handleEntityNotFound(_0x2481bf,_0x3ec980){return function(_0xa8cf74){if(!_0xa8cf74){_0x2481bf[_0x92d3('0x21')](0x194);}return _0xa8cf74;};}function handleError(_0x4177e0,_0x41baa8){_0x41baa8=_0x41baa8||0x1f4;return function(_0x4952aa){logger[_0x92d3('0x22')](_0x4952aa[_0x92d3('0x23')]);if(_0x4952aa['name']){delete _0x4952aa['name'];}_0x4177e0['status'](_0x41baa8)[_0x92d3('0x24')](_0x4952aa);};}exports[_0x92d3('0x25')]=function(_0x80ea06,_0x432d3f){var _0xb492f1={},_0x53f476={},_0x2e90ba={'count':0x0,'rows':[]};var _0x1edc5d=_['map'](db[_0x92d3('0x26')]['rawAttributes'],function(_0x2e7b0c){return{'name':_0x2e7b0c['fieldName'],'type':_0x2e7b0c['type'][_0x92d3('0x27')]};});_0x53f476[_0x92d3('0x28')]=_['map'](_0x1edc5d,_0x92d3('0x29'));_0x53f476[_0x92d3('0x2a')]=_[_0x92d3('0x2b')](_0x80ea06[_0x92d3('0x2a')]);_0x53f476['filters']=_['intersection'](_0x53f476[_0x92d3('0x28')],_0x53f476['query']);_0xb492f1[_0x92d3('0x2c')]=_[_0x92d3('0x2d')](_0x53f476[_0x92d3('0x28')],qs['fields'](_0x80ea06['query'][_0x92d3('0x2e')]));_0xb492f1[_0x92d3('0x2c')]=_0xb492f1['attributes'][_0x92d3('0x2f')]?_0xb492f1[_0x92d3('0x2c')]:_0x53f476[_0x92d3('0x28')];if(!_0x80ea06[_0x92d3('0x2a')][_0x92d3('0x30')]('nolimit')){_0xb492f1[_0x92d3('0x1c')]=qs[_0x92d3('0x1c')](_0x80ea06[_0x92d3('0x2a')][_0x92d3('0x1c')]);_0xb492f1['offset']=qs[_0x92d3('0x1a')](_0x80ea06[_0x92d3('0x2a')][_0x92d3('0x1a')]);}_0xb492f1[_0x92d3('0x31')]=qs[_0x92d3('0x32')](_0x80ea06[_0x92d3('0x2a')]['sort']);_0xb492f1[_0x92d3('0x33')]=qs['filters'](_[_0x92d3('0x34')](_0x80ea06[_0x92d3('0x2a')],_0x53f476['filters']),_0x1edc5d);if(_0x80ea06[_0x92d3('0x2a')][_0x92d3('0x35')]){_0xb492f1[_0x92d3('0x33')]=_['merge'](_0xb492f1['where'],{'$or':_[_0x92d3('0x36')](_0x1edc5d,function(_0x148923){if(_0x148923[_0x92d3('0x37')]!==_0x92d3('0x38')){var _0xe162c3={};_0xe162c3[_0x148923[_0x92d3('0x29')]]={'$like':'%'+_0x80ea06['query'][_0x92d3('0x35')]+'%'};return _0xe162c3;}})});}_0xb492f1=_[_0x92d3('0x39')]({},_0xb492f1,_0x80ea06[_0x92d3('0x3a')]);var _0x348cd8={'where':_0xb492f1[_0x92d3('0x33')]};return db[_0x92d3('0x26')][_0x92d3('0x3b')](_0x348cd8)[_0x92d3('0x1f')](function(_0x3b1b4c){_0x2e90ba[_0x92d3('0x3b')]=_0x3b1b4c;if(_0x80ea06[_0x92d3('0x2a')][_0x92d3('0x3c')]){_0xb492f1[_0x92d3('0x3d')]=[{'all':!![]}];}return db[_0x92d3('0x26')][_0x92d3('0x3e')](_0xb492f1);})[_0x92d3('0x1f')](function(_0x434882){_0x2e90ba[_0x92d3('0x3f')]=_0x434882;return _0x2e90ba;})[_0x92d3('0x1f')](respondWithFilteredResult(_0x432d3f,_0xb492f1))[_0x92d3('0x40')](handleError(_0x432d3f,null));};exports[_0x92d3('0x41')]=function(_0x382b63,_0x1c141c){var _0x3a9f2f={'raw':!![],'where':{'id':_0x382b63['params']['id']}},_0x131d75={};_0x131d75[_0x92d3('0x28')]=_[_0x92d3('0x2b')](db['SmsTransferReport']['rawAttributes']);_0x131d75[_0x92d3('0x2a')]=_[_0x92d3('0x2b')](_0x382b63[_0x92d3('0x2a')]);_0x131d75['filters']=_[_0x92d3('0x2d')](_0x131d75['model'],_0x131d75['query']);_0x3a9f2f[_0x92d3('0x2c')]=_[_0x92d3('0x2d')](_0x131d75[_0x92d3('0x28')],qs[_0x92d3('0x2e')](_0x382b63['query'][_0x92d3('0x2e')]));_0x3a9f2f['attributes']=_0x3a9f2f['attributes']['length']?_0x3a9f2f[_0x92d3('0x2c')]:_0x131d75[_0x92d3('0x28')];if(_0x382b63[_0x92d3('0x2a')][_0x92d3('0x3c')]){_0x3a9f2f[_0x92d3('0x3d')]=[{'all':!![]}];}_0x3a9f2f=_[_0x92d3('0x39')]({},_0x3a9f2f,_0x382b63[_0x92d3('0x3a')]);return db[_0x92d3('0x26')][_0x92d3('0x42')](_0x3a9f2f)[_0x92d3('0x1f')](handleEntityNotFound(_0x1c141c,null))[_0x92d3('0x1f')](respondWithResult(_0x1c141c,null))['catch'](handleError(_0x1c141c,null));};exports['create']=function(_0x1802b9,_0x66f831){return db[_0x92d3('0x26')][_0x92d3('0x43')](_0x1802b9[_0x92d3('0x44')],{})['then'](respondWithResult(_0x66f831,0xc9))[_0x92d3('0x40')](handleError(_0x66f831,null));};exports['update']=function(_0x2668e4,_0x49cda9){if(_0x2668e4[_0x92d3('0x44')]['id']){delete _0x2668e4['body']['id'];}return db[_0x92d3('0x26')][_0x92d3('0x42')]({'where':{'id':_0x2668e4[_0x92d3('0x45')]['id']}})['then'](handleEntityNotFound(_0x49cda9,null))['then'](saveUpdates(_0x2668e4[_0x92d3('0x44')],null))[_0x92d3('0x1f')](respondWithResult(_0x49cda9,null))['catch'](handleError(_0x49cda9,null));};exports[_0x92d3('0x46')]=function(_0x4f1ebe,_0x4b37de){return db[_0x92d3('0x26')][_0x92d3('0x42')]({'where':{'id':_0x4f1ebe[_0x92d3('0x45')]['id']}})[_0x92d3('0x1f')](handleEntityNotFound(_0x4b37de,null))[_0x92d3('0x1f')](removeEntity(_0x4b37de,null))[_0x92d3('0x40')](handleError(_0x4b37de,null));};exports[_0x92d3('0x47')]=function(_0x2c562c,_0x355ff0){return db[_0x92d3('0x26')]['describe']()[_0x92d3('0x1f')](respondWithResult(_0x355ff0,null))[_0x92d3('0x40')](handleError(_0x355ff0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0810=['api','moment','path','./smsTransferReport.attributes','report_sms_transfer','lodash','util','../../config/logger'];(function(_0x1f7996,_0x299a14){var _0x584609=function(_0x14c34a){while(--_0x14c34a){_0x1f7996['push'](_0x1f7996['shift']());}};_0x584609(++_0x299a14);}(_0x0810,0x95));var _0x0081=function(_0x32574c,_0x623301){_0x32574c=_0x32574c-0x0;var _0x324117=_0x0810[_0x32574c];return _0x324117;};'use strict';var _=require(_0x0081('0x0'));var util=require(_0x0081('0x1'));var logger=require(_0x0081('0x2'))(_0x0081('0x3'));var moment=require(_0x0081('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x0081('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x0081('0x6'));module['exports']=function(_0x30c217,_0x5e90a5){return _0x30c217['define']('SmsTransferReport',attributes,{'tableName':_0x0081('0x7'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8e18=['SmsTransferReport','uniqueid','util','api','moment','bluebird','rimraf','../../config/environment','./smsTransferReport.attributes','exports','define'];(function(_0x51071f,_0x42046b){var _0x18ea86=function(_0x233224){while(--_0x233224){_0x51071f['push'](_0x51071f['shift']());}};_0x18ea86(++_0x42046b);}(_0x8e18,0x1ba));var _0x88e1=function(_0x2f8f49,_0x51c123){_0x2f8f49=_0x2f8f49-0x0;var _0x5c900e=_0x8e18[_0x2f8f49];return _0x5c900e;};'use strict';var _=require('lodash');var util=require(_0x88e1('0x0'));var logger=require('../../config/logger')(_0x88e1('0x1'));var moment=require(_0x88e1('0x2'));var BPromise=require(_0x88e1('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x88e1('0x4'));var config=require(_0x88e1('0x5'));var attributes=require(_0x88e1('0x6'));module[_0x88e1('0x7')]=function(_0xf4e5e6,_0x146671){return _0xf4e5e6[_0x88e1('0x8')](_0x88e1('0x9'),attributes,{'tableName':'report_sms_transfer','paranoid':![],'indexes':[{'name':_0x88e1('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef39=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','SmsTransferReport,\x20%s,\x20%s','request\x20sent','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring'];(function(_0x1bb154,_0x1361b1){var _0x4dc7a3=function(_0x3e816c){while(--_0x3e816c){_0x1bb154['push'](_0x1bb154['shift']());}};_0x4dc7a3(++_0x1361b1);}(_0xef39,0x92));var _0x9ef3=function(_0xe5a6a5,_0x230d00){_0xe5a6a5=_0xe5a6a5-0x0;var _0x4c33fd=_0xef39[_0xe5a6a5];return _0x4c33fd;};'use strict';var _=require('lodash');var util=require(_0x9ef3('0x0'));var moment=require(_0x9ef3('0x1'));var BPromise=require(_0x9ef3('0x2'));var rs=require(_0x9ef3('0x3'));var fs=require('fs');var Redis=require(_0x9ef3('0x4'));var db=require(_0x9ef3('0x5'))['db'];var utils=require(_0x9ef3('0x6'));var logger=require(_0x9ef3('0x7'))(_0x9ef3('0x8'));var config=require(_0x9ef3('0x9'));var jayson=require(_0x9ef3('0xa'));var client=jayson[_0x9ef3('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1b8488,_0x1f7ab7,_0x290ffd){return new BPromise(function(_0x27cfaa,_0x370330){return client[_0x9ef3('0xc')](_0x1b8488,_0x290ffd)[_0x9ef3('0xd')](function(_0x15ae4c){logger[_0x9ef3('0xe')](_0x9ef3('0xf'),_0x1f7ab7,_0x9ef3('0x10'));logger[_0x9ef3('0x11')](_0x9ef3('0x12'),_0x1f7ab7,'request\x20sent',JSON[_0x9ef3('0x13')](_0x15ae4c));if(_0x15ae4c[_0x9ef3('0x14')]){if(_0x15ae4c[_0x9ef3('0x14')][_0x9ef3('0x15')]===0x1f4){logger[_0x9ef3('0x14')](_0x9ef3('0xf'),_0x1f7ab7,_0x15ae4c['error'][_0x9ef3('0x16')]);return _0x370330(_0x15ae4c[_0x9ef3('0x14')][_0x9ef3('0x16')]);}logger['error'](_0x9ef3('0xf'),_0x1f7ab7,_0x15ae4c[_0x9ef3('0x14')]['message']);return _0x27cfaa(_0x15ae4c[_0x9ef3('0x14')][_0x9ef3('0x16')]);}else{logger[_0x9ef3('0xe')](_0x9ef3('0xf'),_0x1f7ab7,_0x9ef3('0x10'));_0x27cfaa(_0x15ae4c[_0x9ef3('0x17')]['message']);}})[_0x9ef3('0x18')](function(_0x355dbb){logger[_0x9ef3('0x14')]('SmsTransferReport,\x20%s,\x20%s',_0x1f7ab7,_0x355dbb);_0x370330(_0x355dbb);});});}
\ No newline at end of file
+var _0x6fc4=['randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','debug','error','code','SmsTransferReport,\x20%s,\x20%s','message','info','catch','lodash','util'];(function(_0x5678b5,_0x1c4aa8){var _0x4c09a5=function(_0x2aa89a){while(--_0x2aa89a){_0x5678b5['push'](_0x5678b5['shift']());}};_0x4c09a5(++_0x1c4aa8);}(_0x6fc4,0x1a0));var _0x46fc=function(_0x332109,_0x474add){_0x332109=_0x332109-0x0;var _0x7a6ab2=_0x6fc4[_0x332109];return _0x7a6ab2;};'use strict';var _=require(_0x46fc('0x0'));var util=require(_0x46fc('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x46fc('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x46fc('0x3'))(_0x46fc('0x4'));var config=require(_0x46fc('0x5'));var jayson=require(_0x46fc('0x6'));var client=jayson[_0x46fc('0x7')][_0x46fc('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3c4f75,_0x3951e9,_0x5ca981){return new BPromise(function(_0x4a7762,_0x149bf8){return client[_0x46fc('0x9')](_0x3c4f75,_0x5ca981)[_0x46fc('0xa')](function(_0x4594c1){logger['info']('SmsTransferReport,\x20%s,\x20%s',_0x3951e9,_0x46fc('0xb'));logger[_0x46fc('0xc')]('SmsTransferReport,\x20%s,\x20%s,\x20%s',_0x3951e9,_0x46fc('0xb'),JSON['stringify'](_0x4594c1));if(_0x4594c1[_0x46fc('0xd')]){if(_0x4594c1[_0x46fc('0xd')][_0x46fc('0xe')]===0x1f4){logger[_0x46fc('0xd')](_0x46fc('0xf'),_0x3951e9,_0x4594c1[_0x46fc('0xd')][_0x46fc('0x10')]);return _0x149bf8(_0x4594c1[_0x46fc('0xd')][_0x46fc('0x10')]);}logger[_0x46fc('0xd')](_0x46fc('0xf'),_0x3951e9,_0x4594c1[_0x46fc('0xd')][_0x46fc('0x10')]);return _0x4a7762(_0x4594c1[_0x46fc('0xd')][_0x46fc('0x10')]);}else{logger[_0x46fc('0x11')](_0x46fc('0xf'),_0x3951e9,_0x46fc('0xb'));_0x4a7762(_0x4594c1['result'][_0x46fc('0x10')]);}})[_0x46fc('0x12')](function(_0x1df938){logger[_0x46fc('0xd')](_0x46fc('0xf'),_0x3951e9,_0x1df938);_0x149bf8(_0x1df938);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d49=['%s-%s%s','basename','extname','now','post','file','put','update','delete','exports','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./sound.controller','get','isAuthenticated','/:id','show','/:id/download','download','diskStorage','join','root','server/files/sounds/original/','originalname','replace'];(function(_0x1e829d,_0x263e13){var _0x527b99=function(_0x42b6d8){while(--_0x42b6d8){_0x1e829d['push'](_0x1e829d['shift']());}};_0x527b99(++_0x263e13);}(_0x1d49,0x1da));var _0x91d4=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x1d49[_0x3ab51d];return _0x29a04e;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x91d4('0x0'));var express=require(_0x91d4('0x1'));var router=express[_0x91d4('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x91d4('0x3'));var interaction=require(_0x91d4('0x4'));var config=require(_0x91d4('0x5'));var controller=require(_0x91d4('0x6'));router[_0x91d4('0x7')]('/',auth[_0x91d4('0x8')](),controller['index']);router[_0x91d4('0x7')](_0x91d4('0x9'),auth[_0x91d4('0x8')](),controller[_0x91d4('0xa')]);router[_0x91d4('0x7')](_0x91d4('0xb'),auth[_0x91d4('0x8')](),controller[_0x91d4('0xc')]);var upload=multer({'storage':multer[_0x91d4('0xd')]({'destination':function(_0x272b5a,_0x238cea,_0x23cbcf){_0x23cbcf(null,path[_0x91d4('0xe')](config[_0x91d4('0xf')],_0x91d4('0x10')));},'filename':function(_0x1dc800,_0x377ff9,_0x17068e){_0x377ff9[_0x91d4('0x11')]=_0x377ff9[_0x91d4('0x11')][_0x91d4('0x12')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x17068e(null,util['format'](_0x91d4('0x13'),path[_0x91d4('0x14')](_0x377ff9[_0x91d4('0x11')],path[_0x91d4('0x15')](_0x377ff9['originalname'])),Date[_0x91d4('0x16')](),path[_0x91d4('0x15')](_0x377ff9[_0x91d4('0x11')])));}})});router[_0x91d4('0x17')]('/',upload['single'](_0x91d4('0x18')),controller['create']);router[_0x91d4('0x19')]('/:id',auth[_0x91d4('0x8')](),controller[_0x91d4('0x1a')]);router[_0x91d4('0x1b')](_0x91d4('0x9'),auth[_0x91d4('0x8')](),controller['delete']);module[_0x91d4('0x1c')]=router;
\ No newline at end of file
+var _0x30cf=['./sound.controller','get','isAuthenticated','/:id','/:id/download','download','diskStorage','root','server/files/sounds/original/','originalname','replace','format','%s-%s%s','extname','now','post','create','put','update','delete','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0xa0f6ae,_0x1ff850){var _0x265be6=function(_0x453a82){while(--_0x453a82){_0xa0f6ae['push'](_0xa0f6ae['shift']());}};_0x265be6(++_0x1ff850);}(_0x30cf,0xc3));var _0xf30c=function(_0x577ed7,_0x32d991){_0x577ed7=_0x577ed7-0x0;var _0x22cffd=_0x30cf[_0x577ed7];return _0x22cffd;};'use strict';var multer=require(_0xf30c('0x0'));var util=require(_0xf30c('0x1'));var path=require(_0xf30c('0x2'));var timeout=require(_0xf30c('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf30c('0x4'));var auth=require(_0xf30c('0x5'));var interaction=require(_0xf30c('0x6'));var config=require(_0xf30c('0x7'));var controller=require(_0xf30c('0x8'));router[_0xf30c('0x9')]('/',auth[_0xf30c('0xa')](),controller['index']);router[_0xf30c('0x9')](_0xf30c('0xb'),auth[_0xf30c('0xa')](),controller['show']);router['get'](_0xf30c('0xc'),auth[_0xf30c('0xa')](),controller[_0xf30c('0xd')]);var upload=multer({'storage':multer[_0xf30c('0xe')]({'destination':function(_0x547929,_0x6c9d90,_0x335b6b){_0x335b6b(null,path['join'](config[_0xf30c('0xf')],_0xf30c('0x10')));},'filename':function(_0x24e8e1,_0x2c662d,_0x2e1175){_0x2c662d[_0xf30c('0x11')]=_0x2c662d[_0xf30c('0x11')][_0xf30c('0x12')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x2e1175(null,util[_0xf30c('0x13')](_0xf30c('0x14'),path['basename'](_0x2c662d['originalname'],path[_0xf30c('0x15')](_0x2c662d[_0xf30c('0x11')])),Date[_0xf30c('0x16')](),path[_0xf30c('0x15')](_0x2c662d[_0xf30c('0x11')])));}})});router[_0xf30c('0x17')]('/',upload['single']('file'),controller[_0xf30c('0x18')]);router[_0xf30c('0x19')]('/:id',auth[_0xf30c('0xa')](),controller[_0xf30c('0x1a')]);router[_0xf30c('0x1b')]('/:id',auth[_0xf30c('0xa')](),controller[_0xf30c('0x1b')]);module[_0xf30c('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbddc=['INTEGER','sequelize','name','STRING','FLOAT','BIGINT'];(function(_0x2ed88f,_0x5bc5ae){var _0x17ca96=function(_0x2be0dc){while(--_0x2be0dc){_0x2ed88f['push'](_0x2ed88f['shift']());}};_0x17ca96(++_0x5bc5ae);}(_0xbddc,0xfd));var _0xcbdd=function(_0x2eda1b,_0x278682){_0x2eda1b=_0x2eda1b-0x0;var _0x539c52=_0xbddc[_0x2eda1b];return _0x539c52;};'use strict';var Sequelize=require(_0xcbdd('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0xcbdd('0x1'),'allowNull':![]},'save_name':{'type':Sequelize['STRING']},'display_name':{'type':Sequelize[_0xcbdd('0x2')],'defaultValue':''},'description':{'type':Sequelize[_0xcbdd('0x2')]},'original_format':{'type':Sequelize[_0xcbdd('0x2')]},'original_duration':{'type':Sequelize[_0xcbdd('0x3')]},'original_sampleCount':{'type':Sequelize[_0xcbdd('0x4')]},'original_channelCount':{'type':Sequelize[_0xcbdd('0x5')]},'original_bitRate':{'type':Sequelize[_0xcbdd('0x4')]},'original_sampleRate':{'type':Sequelize[_0xcbdd('0x5')]},'converted_format':{'type':Sequelize[_0xcbdd('0x2')]},'converted_duration':{'type':Sequelize[_0xcbdd('0x3')]},'converted_sampleCount':{'type':Sequelize[_0xcbdd('0x4')]},'converted_channelCount':{'type':Sequelize[_0xcbdd('0x5')]},'converted_bitRate':{'type':Sequelize[_0xcbdd('0x4')]},'converted_sampleRate':{'type':Sequelize[_0xcbdd('0x5')]}};
\ No newline at end of file
+var _0x6e11=['STRING','name','FLOAT','BIGINT','INTEGER','exports'];(function(_0x1d3f21,_0x5acda8){var _0x4388d0=function(_0x163726){while(--_0x163726){_0x1d3f21['push'](_0x1d3f21['shift']());}};_0x4388d0(++_0x5acda8);}(_0x6e11,0xb9));var _0x16e1=function(_0x12fc8d,_0x19ee33){_0x12fc8d=_0x12fc8d-0x0;var _0x3f9d04=_0x6e11[_0x12fc8d];return _0x3f9d04;};'use strict';var Sequelize=require('sequelize');module[_0x16e1('0x0')]={'name':{'type':Sequelize[_0x16e1('0x1')],'unique':_0x16e1('0x2'),'allowNull':![]},'save_name':{'type':Sequelize[_0x16e1('0x1')]},'display_name':{'type':Sequelize[_0x16e1('0x1')],'defaultValue':''},'description':{'type':Sequelize['STRING']},'original_format':{'type':Sequelize[_0x16e1('0x1')]},'original_duration':{'type':Sequelize[_0x16e1('0x3')]},'original_sampleCount':{'type':Sequelize[_0x16e1('0x4')]},'original_channelCount':{'type':Sequelize['INTEGER']},'original_bitRate':{'type':Sequelize[_0x16e1('0x4')]},'original_sampleRate':{'type':Sequelize[_0x16e1('0x5')]},'converted_format':{'type':Sequelize[_0x16e1('0x1')]},'converted_duration':{'type':Sequelize[_0x16e1('0x3')]},'converted_sampleCount':{'type':Sequelize[_0x16e1('0x4')]},'converted_channelCount':{'type':Sequelize['INTEGER']},'converted_bitRate':{'type':Sequelize[_0x16e1('0x4')]},'converted_sampleRate':{'type':Sequelize[_0x16e1('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3efd=['filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','fields','length','download','find','converted_format','existsSync','join','server/files/sounds/converted','save_name','Sequelize','Sound\x20not\x20found','format','%s.%s','file','originalname','extname','basename','filename','substring','wav','server/files/sounds/original','root','Sound\x20upload\x20filepath:\x20%s','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','src','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','create','body','role','userProfileId','user','UserProfileSection','autoAssociation','update','description','delete','original_format','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','limit','json','apply','reject','save','then','get','Sounds','UserProfileResource','destroy','end','name','send','index','map','Sound','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x116fad,_0x3c4227){var _0x2fc98f=function(_0x5189f0){while(--_0x5189f0){_0x116fad['push'](_0x116fad['shift']());}};_0x2fc98f(++_0x3c4227);}(_0x3efd,0x132));var _0xd3ef=function(_0x44f361,_0x8b2505){_0x44f361=_0x44f361-0x0;var _0x1fa735=_0x3efd[_0x44f361];return _0x1fa735;};'use strict';var emlformat=require(_0xd3ef('0x0'));var rimraf=require(_0xd3ef('0x1'));var zipdir=require(_0xd3ef('0x2'));var jsonpatch=require(_0xd3ef('0x3'));var rp=require('request-promise');var moment=require(_0xd3ef('0x4'));var BPromise=require(_0xd3ef('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xd3ef('0x6'));var sox=require(_0xd3ef('0x7'));var csv=require(_0xd3ef('0x8'));var ejs=require(_0xd3ef('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd3ef('0xa'));var squel=require(_0xd3ef('0xb'));var crypto=require('crypto');var jsforce=require(_0xd3ef('0xc'));var deskjs=require(_0xd3ef('0xd'));var toCsv=require(_0xd3ef('0x8'));var querystring=require(_0xd3ef('0xe'));var Papa=require(_0xd3ef('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xd3ef('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd3ef('0x11'));var logger=require(_0xd3ef('0x12'))(_0xd3ef('0x13'));var utils=require(_0xd3ef('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xd3ef('0x15'));var db=require(_0xd3ef('0x16'))['db'];function respondWithStatusCode(_0x1a6689,_0x317482){_0x317482=_0x317482||0xcc;return function(_0x39e925){if(_0x39e925){return _0x1a6689[_0xd3ef('0x17')](_0x317482);}return _0x1a6689[_0xd3ef('0x18')](_0x317482)['end']();};}function respondWithResult(_0x400d3c,_0x318b13){_0x318b13=_0x318b13||0xc8;return function(_0x2c741f){if(_0x2c741f){return _0x400d3c['status'](_0x318b13)['json'](_0x2c741f);}};}function respondWithFilteredResult(_0x2aa976,_0x4aad38){return function(_0xa3de59){if(_0xa3de59){var _0x808f7b=typeof _0x4aad38[_0xd3ef('0x19')]===_0xd3ef('0x1a')&&typeof _0x4aad38['limit']===_0xd3ef('0x1a');var _0x518937=_0xa3de59[_0xd3ef('0x1b')];var _0x4e995a=_0x808f7b?0x0:_0x4aad38['offset'];var _0x1ae0b6=_0x808f7b?_0xa3de59['count']:_0x4aad38[_0xd3ef('0x19')]+_0x4aad38[_0xd3ef('0x1c')];var _0x3d1091;if(_0x1ae0b6>=_0x518937){_0x1ae0b6=_0x518937;_0x3d1091=0xc8;}else{_0x3d1091=0xce;}_0x2aa976[_0xd3ef('0x18')](_0x3d1091);return _0x2aa976['set']('Content-Range',_0x4e995a+'-'+_0x1ae0b6+'/'+_0x518937)[_0xd3ef('0x1d')](_0xa3de59);}return null;};}function patchUpdates(_0x2ba8d0){return function(_0x18b15b){try{jsonpatch[_0xd3ef('0x1e')](_0x18b15b,_0x2ba8d0,!![]);}catch(_0x23176d){return BPromise[_0xd3ef('0x1f')](_0x23176d);}return _0x18b15b[_0xd3ef('0x20')]();};}function saveUpdates(_0x1a9276,_0x6691da){return function(_0x2fc9c1){if(_0x2fc9c1){return _0x2fc9c1['update'](_0x1a9276)[_0xd3ef('0x21')](function(_0x599f88){return _0x599f88;});}return null;};}function removeEntity(_0x25ce6f,_0x6e455e){return function(_0x3851e5){if(_0x3851e5){return _0x3851e5['destroy']()[_0xd3ef('0x21')](function(){var _0x1bfbc8=_0x3851e5[_0xd3ef('0x22')]({'plain':!![]});var _0x459962=_0xd3ef('0x23');return db[_0xd3ef('0x24')][_0xd3ef('0x25')]({'where':{'type':_0x459962,'resourceId':_0x1bfbc8['id']}})[_0xd3ef('0x21')](function(){return _0x3851e5;});})[_0xd3ef('0x21')](function(){_0x25ce6f[_0xd3ef('0x18')](0xcc)[_0xd3ef('0x26')]();});}};}function handleEntityNotFound(_0xd5b4a4,_0x135a3e){return function(_0x1c4671){if(!_0x1c4671){_0xd5b4a4['sendStatus'](0x194);}return _0x1c4671;};}function handleError(_0x5345c9,_0xd2cafa){_0xd2cafa=_0xd2cafa||0x1f4;return function(_0x476d0b){logger['error'](_0x476d0b['stack']);if(_0x476d0b[_0xd3ef('0x27')]){delete _0x476d0b['name'];}_0x5345c9[_0xd3ef('0x18')](_0xd2cafa)[_0xd3ef('0x28')](_0x476d0b);};}exports[_0xd3ef('0x29')]=function(_0x40d988,_0x4a1a65){var _0x4f4c4e={},_0x24a8e8={},_0x3f2e65={'count':0x0,'rows':[]};var _0x14fa38=_[_0xd3ef('0x2a')](db[_0xd3ef('0x2b')][_0xd3ef('0x2c')],function(_0x41e3e7){return{'name':_0x41e3e7[_0xd3ef('0x2d')],'type':_0x41e3e7[_0xd3ef('0x2e')][_0xd3ef('0x2f')]};});_0x24a8e8[_0xd3ef('0x30')]=_[_0xd3ef('0x2a')](_0x14fa38,_0xd3ef('0x27'));_0x24a8e8[_0xd3ef('0x31')]=_[_0xd3ef('0x32')](_0x40d988[_0xd3ef('0x31')]);_0x24a8e8[_0xd3ef('0x33')]=_[_0xd3ef('0x34')](_0x24a8e8[_0xd3ef('0x30')],_0x24a8e8[_0xd3ef('0x31')]);_0x4f4c4e[_0xd3ef('0x35')]=_[_0xd3ef('0x34')](_0x24a8e8[_0xd3ef('0x30')],qs['fields'](_0x40d988[_0xd3ef('0x31')]['fields']));_0x4f4c4e['attributes']=_0x4f4c4e[_0xd3ef('0x35')]['length']?_0x4f4c4e[_0xd3ef('0x35')]:_0x24a8e8[_0xd3ef('0x30')];if(!_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x36')](_0xd3ef('0x37'))){_0x4f4c4e['limit']=qs['limit'](_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x1c')]);_0x4f4c4e[_0xd3ef('0x19')]=qs[_0xd3ef('0x19')](_0x40d988[_0xd3ef('0x31')]['offset']);}_0x4f4c4e[_0xd3ef('0x38')]=qs['sort'](_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x39')]);_0x4f4c4e[_0xd3ef('0x3a')]=qs[_0xd3ef('0x33')](_[_0xd3ef('0x3b')](_0x40d988['query'],_0x24a8e8['filters']),_0x14fa38);if(_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x3c')]){_0x4f4c4e['where']=_[_0xd3ef('0x3d')](_0x4f4c4e[_0xd3ef('0x3a')],{'$or':_['map'](_0x14fa38,function(_0x5d8849){if(_0x5d8849[_0xd3ef('0x2e')]!==_0xd3ef('0x3e')){var _0x440ebc={};_0x440ebc[_0x5d8849[_0xd3ef('0x27')]]={'$like':'%'+_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x3c')]+'%'};return _0x440ebc;}})});}_0x4f4c4e=_[_0xd3ef('0x3d')]({},_0x4f4c4e,_0x40d988[_0xd3ef('0x3f')]);var _0x39ce63={'where':_0x4f4c4e[_0xd3ef('0x3a')]};return db['Sound'][_0xd3ef('0x1b')](_0x39ce63)['then'](function(_0x1a1eee){_0x3f2e65['count']=_0x1a1eee;if(_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x40')]){_0x4f4c4e[_0xd3ef('0x41')]=[{'all':!![]}];}return db[_0xd3ef('0x2b')][_0xd3ef('0x42')](_0x4f4c4e);})['then'](function(_0x561baf){_0x3f2e65['rows']=_0x561baf;return _0x3f2e65;})['then'](respondWithFilteredResult(_0x4a1a65,_0x4f4c4e))[_0xd3ef('0x43')](handleError(_0x4a1a65,null));};exports['show']=function(_0x2bc74d,_0x178031){var _0x5609eb={'raw':!![],'where':{'id':_0x2bc74d[_0xd3ef('0x44')]['id']}},_0x587cd7={};_0x587cd7[_0xd3ef('0x30')]=_['keys'](db['Sound']['rawAttributes']);_0x587cd7[_0xd3ef('0x31')]=_['keys'](_0x2bc74d[_0xd3ef('0x31')]);_0x587cd7[_0xd3ef('0x33')]=_['intersection'](_0x587cd7[_0xd3ef('0x30')],_0x587cd7[_0xd3ef('0x31')]);_0x5609eb['attributes']=_[_0xd3ef('0x34')](_0x587cd7['model'],qs[_0xd3ef('0x45')](_0x2bc74d[_0xd3ef('0x31')][_0xd3ef('0x45')]));_0x5609eb[_0xd3ef('0x35')]=_0x5609eb[_0xd3ef('0x35')][_0xd3ef('0x46')]?_0x5609eb[_0xd3ef('0x35')]:_0x587cd7[_0xd3ef('0x30')];if(_0x2bc74d[_0xd3ef('0x31')]['includeAll']){_0x5609eb[_0xd3ef('0x41')]=[{'all':!![]}];}_0x5609eb=_[_0xd3ef('0x3d')]({},_0x5609eb,_0x2bc74d[_0xd3ef('0x3f')]);return db[_0xd3ef('0x2b')]['find'](_0x5609eb)[_0xd3ef('0x21')](handleEntityNotFound(_0x178031,null))[_0xd3ef('0x21')](respondWithResult(_0x178031,null))[_0xd3ef('0x43')](handleError(_0x178031,null));};exports[_0xd3ef('0x47')]=function(_0x2c2058,_0x22dae8,_0x401071){return db[_0xd3ef('0x2b')][_0xd3ef('0x48')]({'where':{'id':_0x2c2058[_0xd3ef('0x44')]['id']},'attributes':[_0xd3ef('0x27'),'save_name',_0xd3ef('0x49')],'raw':!![]})[_0xd3ef('0x21')](handleEntityNotFound(_0x22dae8,null))[_0xd3ef('0x21')](function(_0x191531){if(_0x191531){if(!fs[_0xd3ef('0x4a')](path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x4c'),_0x191531[_0xd3ef('0x4d')]+'.'+_0x191531['converted_format']))){throw new db[(_0xd3ef('0x4e'))]['ValidationError'](_0xd3ef('0x4f'));}return _0x22dae8[_0xd3ef('0x47')](path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x4c'),util[_0xd3ef('0x50')](_0xd3ef('0x51'),_0x191531[_0xd3ef('0x4d')],_0x191531[_0xd3ef('0x49')])),util[_0xd3ef('0x50')](_0xd3ef('0x51'),_0x191531[_0xd3ef('0x27')],_0x191531[_0xd3ef('0x49')]));}return null;})[_0xd3ef('0x43')](handleError(_0x22dae8,null));};exports['create']=function(_0x247233,_0x52bc16,_0x5b884d){var _0x2839cc={'name':path['basename'](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x53')],path[_0xd3ef('0x54')](_0x247233[_0xd3ef('0x52')]['originalname'])),'save_name':path[_0xd3ef('0x55')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x56')],path['extname'](_0x247233[_0xd3ef('0x52')]['filename'])),'original_format':path[_0xd3ef('0x54')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x53')])[_0xd3ef('0x57')](0x1),'converted_format':_0xd3ef('0x58')};var _0x476d3b=path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x59'),_0x247233[_0xd3ef('0x52')]['filename']);var _0x177b0d=path[_0xd3ef('0x4b')](config[_0xd3ef('0x5a')],'server/files/sounds/converted',util['format']('%s.%s',path[_0xd3ef('0x55')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x56')],path[_0xd3ef('0x54')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x56')])),_0x2839cc[_0xd3ef('0x49')]));logger['info'](_0xd3ef('0x5b'),_0x476d3b);logger[_0xd3ef('0x5c')](_0xd3ef('0x5d'),_0x177b0d);try{fs[_0xd3ef('0x5e')](_0x476d3b,parseInt(_0xd3ef('0x5f'),0x8));var _0x57fa10=sox['transcode'](_0x476d3b,_0x177b0d,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x57fa10['on']('error',function(_0x44f876){fs['unlinkSync'](_0x476d3b);_0x52bc16[_0xd3ef('0x18')](0x1f4)['send'](_0x44f876);});_0x57fa10['on'](_0xd3ef('0x60'),function(_0x5e4224){_0x2839cc['original_duration']=isNaN(_0x5e4224[_0xd3ef('0x61')])?null:_0x5e4224[_0xd3ef('0x61')]*0x3e8;_0x2839cc[_0xd3ef('0x62')]=isNaN(_0x5e4224[_0xd3ef('0x63')])?null:_0x5e4224['sampleCount'];_0x2839cc[_0xd3ef('0x64')]=isNaN(_0x5e4224[_0xd3ef('0x65')])?null:_0x5e4224[_0xd3ef('0x65')];_0x2839cc[_0xd3ef('0x66')]=isNaN(_0x5e4224[_0xd3ef('0x67')])?null:_0x5e4224[_0xd3ef('0x67')];_0x2839cc['original_sampleRate']=isNaN(_0x5e4224[_0xd3ef('0x68')])?null:_0x5e4224[_0xd3ef('0x68')];});_0x57fa10['on'](_0xd3ef('0x69'),function(_0x373413){_0x2839cc[_0xd3ef('0x6a')]=isNaN(_0x373413[_0xd3ef('0x61')])?null:_0x373413[_0xd3ef('0x61')]*0x3e8;_0x2839cc[_0xd3ef('0x6b')]=isNaN(_0x373413[_0xd3ef('0x63')])?null:_0x373413['sampleCount'];_0x2839cc['converted_channelCount']=isNaN(_0x373413[_0xd3ef('0x65')])?null:_0x373413[_0xd3ef('0x65')];_0x2839cc[_0xd3ef('0x6c')]=isNaN(_0x373413['bitRate'])?null:_0x373413[_0xd3ef('0x67')];_0x2839cc[_0xd3ef('0x6d')]=isNaN(_0x373413[_0xd3ef('0x68')])?null:_0x373413[_0xd3ef('0x68')];});_0x57fa10['on'](_0xd3ef('0x26'),function(){fs['chmodSync'](_0x177b0d,parseInt('0777',0x8));return db[_0xd3ef('0x2b')][_0xd3ef('0x6e')](_0x2839cc)[_0xd3ef('0x21')](function(_0x245258){var _0x1c8fa8={'role':_0x247233[_0xd3ef('0x6f')][_0xd3ef('0x70')],'userProfileId':_0x247233['body'][_0xd3ef('0x71')]};if(!_0x1c8fa8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1c8fa8['role']===_0xd3ef('0x72')){var _0x56d5a5=_0x245258[_0xd3ef('0x22')]({'plain':!![]});return db[_0xd3ef('0x73')][_0xd3ef('0x48')]({'where':{'name':'Sounds','userProfileId':_0x1c8fa8[_0xd3ef('0x71')]},'raw':!![]})['then'](function(_0x49ac4d){if(_0x49ac4d&&_0x49ac4d[_0xd3ef('0x74')]===0x0){return db[_0xd3ef('0x24')]['create']({'name':_0x56d5a5[_0xd3ef('0x27')],'resourceId':_0x56d5a5['id'],'type':_0x49ac4d['name'],'sectionId':_0x49ac4d['id']},{})[_0xd3ef('0x21')](function(){return _0x245258;});}else{return _0x245258;}})['catch'](function(_0x47c49d){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x47c49d);throw _0x47c49d;});}return _0x245258;})[_0xd3ef('0x21')](respondWithResult(_0x52bc16,null))[_0xd3ef('0x43')](handleError(_0x52bc16,null));});_0x57fa10['start']();}catch(_0xd53011){_0x52bc16[_0xd3ef('0x18')](0x1f4)[_0xd3ef('0x28')](_0xd53011);}};exports[_0xd3ef('0x75')]=function(_0x1e4211,_0x56484a,_0x3d7216){return db[_0xd3ef('0x2b')]['find']({'where':{'id':_0x1e4211[_0xd3ef('0x44')]['id']}})[_0xd3ef('0x21')](handleEntityNotFound(_0x56484a,null))[_0xd3ef('0x21')](saveUpdates(_['pick'](_0x1e4211['body'],[_0xd3ef('0x27'),_0xd3ef('0x76')]),null))[_0xd3ef('0x21')](respondWithResult(_0x56484a,null))['catch'](handleError(_0x56484a,null));};exports[_0xd3ef('0x77')]=function(_0x2310d7,_0x1891f1,_0x23fc4d){return db[_0xd3ef('0x2b')][_0xd3ef('0x48')]({'where':{'id':_0x2310d7[_0xd3ef('0x44')]['id']}})['then'](function(_0x15d1f2){if(_0x15d1f2){return _0x15d1f2[_0xd3ef('0x25')]();}})['then'](function(_0x2c7acd){var _0x57be8a=path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x59'),util[_0xd3ef('0x50')](_0xd3ef('0x51'),_0x2c7acd[_0xd3ef('0x4d')],_0x2c7acd[_0xd3ef('0x78')]));var _0x4dbc43=path[_0xd3ef('0x4b')](config[_0xd3ef('0x5a')],_0xd3ef('0x4c'),util['format']('%s.%s',_0x2c7acd[_0xd3ef('0x4d')],_0x2c7acd['converted_format']));fs[_0xd3ef('0x79')](_0x57be8a);fs['unlinkSync'](_0x4dbc43);return _0x2c7acd;})[_0xd3ef('0x21')](function(_0x17ade7){if(_0x17ade7){return _0x1891f1[_0xd3ef('0x18')](0xcc)[_0xd3ef('0x26')]();}})[_0xd3ef('0x21')](handleEntityNotFound(_0x1891f1,null))[_0xd3ef('0x43')](handleError(_0x1891f1,null));};
\ No newline at end of file
+var _0x25b3=['download','converted_format','existsSync','root','server/files/sounds/converted','save_name','Sequelize','ValidationError','Sound\x20not\x20found','join','format','%s.%s','file','originalname','extname','basename','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','dest','converted_duration','converted_bitRate','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','Sounds','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','delete','original_format','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','sendStatus','error','stack','name','send','index','map','Sound','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','rows','catch','show','params','keys','find'];(function(_0x78875f,_0xfd486d){var _0x149cb1=function(_0x6d2e15){while(--_0x6d2e15){_0x78875f['push'](_0x78875f['shift']());}};_0x149cb1(++_0xfd486d);}(_0x25b3,0x13c));var _0x325b=function(_0x5cca9f,_0x154684){_0x5cca9f=_0x5cca9f-0x0;var _0x55edda=_0x25b3[_0x5cca9f];return _0x55edda;};'use strict';var emlformat=require(_0x325b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x325b('0x1'));var jsonpatch=require(_0x325b('0x2'));var rp=require(_0x325b('0x3'));var moment=require(_0x325b('0x4'));var BPromise=require(_0x325b('0x5'));var Mustache=require(_0x325b('0x6'));var util=require(_0x325b('0x7'));var path=require(_0x325b('0x8'));var sox=require(_0x325b('0x9'));var csv=require('to-csv');var ejs=require(_0x325b('0xa'));var fs=require('fs');var fs_extra=require(_0x325b('0xb'));var _=require(_0x325b('0xc'));var squel=require(_0x325b('0xd'));var crypto=require(_0x325b('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x325b('0xf'));var toCsv=require(_0x325b('0x10'));var querystring=require(_0x325b('0x11'));var Papa=require(_0x325b('0x12'));var Redis=require(_0x325b('0x13'));var authService=require(_0x325b('0x14'));var qs=require(_0x325b('0x15'));var as=require(_0x325b('0x16'));var hardwareService=require(_0x325b('0x17'));var logger=require(_0x325b('0x18'))(_0x325b('0x19'));var utils=require(_0x325b('0x1a'));var config=require(_0x325b('0x1b'));var licenseUtil=require(_0x325b('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3ab1af,_0x475296){_0x475296=_0x475296||0xcc;return function(_0x2c03d4){if(_0x2c03d4){return _0x3ab1af['sendStatus'](_0x475296);}return _0x3ab1af[_0x325b('0x1d')](_0x475296)[_0x325b('0x1e')]();};}function respondWithResult(_0x40a9eb,_0x299e4e){_0x299e4e=_0x299e4e||0xc8;return function(_0x5b0a2f){if(_0x5b0a2f){return _0x40a9eb[_0x325b('0x1d')](_0x299e4e)[_0x325b('0x1f')](_0x5b0a2f);}};}function respondWithFilteredResult(_0x339779,_0x44052a){return function(_0x413563){if(_0x413563){var _0x1fb45f=typeof _0x44052a['offset']===_0x325b('0x20')&&typeof _0x44052a[_0x325b('0x21')]===_0x325b('0x20');var _0x7a7c95=_0x413563[_0x325b('0x22')];var _0x82cc1=_0x1fb45f?0x0:_0x44052a['offset'];var _0x34a881=_0x1fb45f?_0x413563['count']:_0x44052a[_0x325b('0x23')]+_0x44052a['limit'];var _0x3505af;if(_0x34a881>=_0x7a7c95){_0x34a881=_0x7a7c95;_0x3505af=0xc8;}else{_0x3505af=0xce;}_0x339779[_0x325b('0x1d')](_0x3505af);return _0x339779[_0x325b('0x24')](_0x325b('0x25'),_0x82cc1+'-'+_0x34a881+'/'+_0x7a7c95)[_0x325b('0x1f')](_0x413563);}return null;};}function patchUpdates(_0x449126){return function(_0x96167e){try{jsonpatch[_0x325b('0x26')](_0x96167e,_0x449126,!![]);}catch(_0x4d254b){return BPromise[_0x325b('0x27')](_0x4d254b);}return _0x96167e[_0x325b('0x28')]();};}function saveUpdates(_0x71101,_0x9ac50e){return function(_0x561c7e){if(_0x561c7e){return _0x561c7e[_0x325b('0x29')](_0x71101)[_0x325b('0x2a')](function(_0x5d8ce){return _0x5d8ce;});}return null;};}function removeEntity(_0x5e715c,_0x5d4777){return function(_0x56dbbe){if(_0x56dbbe){return _0x56dbbe[_0x325b('0x2b')]()[_0x325b('0x2a')](function(){var _0x292872=_0x56dbbe[_0x325b('0x2c')]({'plain':!![]});var _0x40134a='Sounds';return db[_0x325b('0x2d')]['destroy']({'where':{'type':_0x40134a,'resourceId':_0x292872['id']}})['then'](function(){return _0x56dbbe;});})[_0x325b('0x2a')](function(){_0x5e715c['status'](0xcc)[_0x325b('0x1e')]();});}};}function handleEntityNotFound(_0x15a81f,_0x404fb2){return function(_0x5ae8f7){if(!_0x5ae8f7){_0x15a81f[_0x325b('0x2e')](0x194);}return _0x5ae8f7;};}function handleError(_0x22a50a,_0x446e75){_0x446e75=_0x446e75||0x1f4;return function(_0xe4b3ec){logger[_0x325b('0x2f')](_0xe4b3ec[_0x325b('0x30')]);if(_0xe4b3ec[_0x325b('0x31')]){delete _0xe4b3ec['name'];}_0x22a50a[_0x325b('0x1d')](_0x446e75)[_0x325b('0x32')](_0xe4b3ec);};}exports[_0x325b('0x33')]=function(_0xa5fbb4,_0x4af1c9){var _0x1091be={},_0x62e834={},_0x163398={'count':0x0,'rows':[]};var _0x3b3472=_[_0x325b('0x34')](db[_0x325b('0x35')][_0x325b('0x36')],function(_0x710e6b){return{'name':_0x710e6b[_0x325b('0x37')],'type':_0x710e6b['type'][_0x325b('0x38')]};});_0x62e834[_0x325b('0x39')]=_[_0x325b('0x34')](_0x3b3472,_0x325b('0x31'));_0x62e834[_0x325b('0x3a')]=_['keys'](_0xa5fbb4['query']);_0x62e834[_0x325b('0x3b')]=_[_0x325b('0x3c')](_0x62e834[_0x325b('0x39')],_0x62e834[_0x325b('0x3a')]);_0x1091be['attributes']=_[_0x325b('0x3c')](_0x62e834[_0x325b('0x39')],qs[_0x325b('0x3d')](_0xa5fbb4[_0x325b('0x3a')][_0x325b('0x3d')]));_0x1091be[_0x325b('0x3e')]=_0x1091be[_0x325b('0x3e')]['length']?_0x1091be[_0x325b('0x3e')]:_0x62e834[_0x325b('0x39')];if(!_0xa5fbb4[_0x325b('0x3a')]['hasOwnProperty'](_0x325b('0x3f'))){_0x1091be[_0x325b('0x21')]=qs[_0x325b('0x21')](_0xa5fbb4['query']['limit']);_0x1091be[_0x325b('0x23')]=qs[_0x325b('0x23')](_0xa5fbb4['query'][_0x325b('0x23')]);}_0x1091be[_0x325b('0x40')]=qs[_0x325b('0x41')](_0xa5fbb4['query'][_0x325b('0x41')]);_0x1091be[_0x325b('0x42')]=qs['filters'](_[_0x325b('0x43')](_0xa5fbb4[_0x325b('0x3a')],_0x62e834[_0x325b('0x3b')]),_0x3b3472);if(_0xa5fbb4[_0x325b('0x3a')]['filter']){_0x1091be[_0x325b('0x42')]=_[_0x325b('0x44')](_0x1091be[_0x325b('0x42')],{'$or':_[_0x325b('0x34')](_0x3b3472,function(_0x538289){if(_0x538289['type']!==_0x325b('0x45')){var _0x3c6790={};_0x3c6790[_0x538289[_0x325b('0x31')]]={'$like':'%'+_0xa5fbb4['query'][_0x325b('0x46')]+'%'};return _0x3c6790;}})});}_0x1091be=_[_0x325b('0x44')]({},_0x1091be,_0xa5fbb4[_0x325b('0x47')]);var _0x242ba0={'where':_0x1091be['where']};return db[_0x325b('0x35')]['count'](_0x242ba0)[_0x325b('0x2a')](function(_0x1b0baa){_0x163398['count']=_0x1b0baa;if(_0xa5fbb4[_0x325b('0x3a')][_0x325b('0x48')]){_0x1091be[_0x325b('0x49')]=[{'all':!![]}];}return db[_0x325b('0x35')]['findAll'](_0x1091be);})[_0x325b('0x2a')](function(_0x36628d){_0x163398[_0x325b('0x4a')]=_0x36628d;return _0x163398;})[_0x325b('0x2a')](respondWithFilteredResult(_0x4af1c9,_0x1091be))[_0x325b('0x4b')](handleError(_0x4af1c9,null));};exports[_0x325b('0x4c')]=function(_0x1c09b0,_0x112538){var _0xf27051={'raw':!![],'where':{'id':_0x1c09b0[_0x325b('0x4d')]['id']}},_0x434e7f={};_0x434e7f[_0x325b('0x39')]=_[_0x325b('0x4e')](db['Sound'][_0x325b('0x36')]);_0x434e7f[_0x325b('0x3a')]=_[_0x325b('0x4e')](_0x1c09b0[_0x325b('0x3a')]);_0x434e7f[_0x325b('0x3b')]=_[_0x325b('0x3c')](_0x434e7f['model'],_0x434e7f[_0x325b('0x3a')]);_0xf27051[_0x325b('0x3e')]=_['intersection'](_0x434e7f[_0x325b('0x39')],qs[_0x325b('0x3d')](_0x1c09b0[_0x325b('0x3a')][_0x325b('0x3d')]));_0xf27051[_0x325b('0x3e')]=_0xf27051['attributes']['length']?_0xf27051[_0x325b('0x3e')]:_0x434e7f[_0x325b('0x39')];if(_0x1c09b0[_0x325b('0x3a')][_0x325b('0x48')]){_0xf27051[_0x325b('0x49')]=[{'all':!![]}];}_0xf27051=_[_0x325b('0x44')]({},_0xf27051,_0x1c09b0[_0x325b('0x47')]);return db[_0x325b('0x35')][_0x325b('0x4f')](_0xf27051)['then'](handleEntityNotFound(_0x112538,null))[_0x325b('0x2a')](respondWithResult(_0x112538,null))[_0x325b('0x4b')](handleError(_0x112538,null));};exports[_0x325b('0x50')]=function(_0x17f65e,_0x4b116b,_0x4d59b2){return db[_0x325b('0x35')]['find']({'where':{'id':_0x17f65e[_0x325b('0x4d')]['id']},'attributes':[_0x325b('0x31'),'save_name',_0x325b('0x51')],'raw':!![]})[_0x325b('0x2a')](handleEntityNotFound(_0x4b116b,null))[_0x325b('0x2a')](function(_0x12f662){if(_0x12f662){if(!fs[_0x325b('0x52')](path['join'](config[_0x325b('0x53')],_0x325b('0x54'),_0x12f662[_0x325b('0x55')]+'.'+_0x12f662[_0x325b('0x51')]))){throw new db[(_0x325b('0x56'))][(_0x325b('0x57'))](_0x325b('0x58'));}return _0x4b116b[_0x325b('0x50')](path[_0x325b('0x59')](config[_0x325b('0x53')],_0x325b('0x54'),util[_0x325b('0x5a')](_0x325b('0x5b'),_0x12f662['save_name'],_0x12f662['converted_format'])),util['format'](_0x325b('0x5b'),_0x12f662[_0x325b('0x31')],_0x12f662[_0x325b('0x51')]));}return null;})['catch'](handleError(_0x4b116b,null));};exports['create']=function(_0x5d11d9,_0x2f76fa,_0x57c059){var _0x4d2413={'name':path['basename'](_0x5d11d9[_0x325b('0x5c')][_0x325b('0x5d')],path[_0x325b('0x5e')](_0x5d11d9[_0x325b('0x5c')][_0x325b('0x5d')])),'save_name':path[_0x325b('0x5f')](_0x5d11d9['file'][_0x325b('0x60')],path['extname'](_0x5d11d9[_0x325b('0x5c')][_0x325b('0x60')])),'original_format':path[_0x325b('0x5e')](_0x5d11d9[_0x325b('0x5c')][_0x325b('0x5d')])[_0x325b('0x61')](0x1),'converted_format':_0x325b('0x62')};var _0x37e399=path[_0x325b('0x59')](config[_0x325b('0x53')],_0x325b('0x63'),_0x5d11d9[_0x325b('0x5c')][_0x325b('0x60')]);var _0x47c04e=path[_0x325b('0x59')](config[_0x325b('0x53')],_0x325b('0x54'),util['format'](_0x325b('0x5b'),path[_0x325b('0x5f')](_0x5d11d9['file']['filename'],path['extname'](_0x5d11d9['file'][_0x325b('0x60')])),_0x4d2413['converted_format']));logger[_0x325b('0x64')](_0x325b('0x65'),_0x37e399);logger[_0x325b('0x64')](_0x325b('0x66'),_0x47c04e);try{fs[_0x325b('0x67')](_0x37e399,parseInt(_0x325b('0x68'),0x8));var _0x1b6c41=sox['transcode'](_0x37e399,_0x47c04e,{'sampleRate':0x1f40,'format':_0x325b('0x62'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1b6c41['on']('error',function(_0x1ab54){fs[_0x325b('0x69')](_0x37e399);_0x2f76fa[_0x325b('0x1d')](0x1f4)[_0x325b('0x32')](_0x1ab54);});_0x1b6c41['on'](_0x325b('0x6a'),function(_0x2d0369){_0x4d2413[_0x325b('0x6b')]=isNaN(_0x2d0369[_0x325b('0x6c')])?null:_0x2d0369[_0x325b('0x6c')]*0x3e8;_0x4d2413[_0x325b('0x6d')]=isNaN(_0x2d0369[_0x325b('0x6e')])?null:_0x2d0369['sampleCount'];_0x4d2413[_0x325b('0x6f')]=isNaN(_0x2d0369['channelCount'])?null:_0x2d0369[_0x325b('0x70')];_0x4d2413[_0x325b('0x71')]=isNaN(_0x2d0369[_0x325b('0x72')])?null:_0x2d0369[_0x325b('0x72')];_0x4d2413['original_sampleRate']=isNaN(_0x2d0369[_0x325b('0x73')])?null:_0x2d0369[_0x325b('0x73')];});_0x1b6c41['on'](_0x325b('0x74'),function(_0x97d2c0){_0x4d2413[_0x325b('0x75')]=isNaN(_0x97d2c0[_0x325b('0x6c')])?null:_0x97d2c0[_0x325b('0x6c')]*0x3e8;_0x4d2413['converted_sampleCount']=isNaN(_0x97d2c0['sampleCount'])?null:_0x97d2c0[_0x325b('0x6e')];_0x4d2413['converted_channelCount']=isNaN(_0x97d2c0[_0x325b('0x70')])?null:_0x97d2c0[_0x325b('0x70')];_0x4d2413[_0x325b('0x76')]=isNaN(_0x97d2c0['bitRate'])?null:_0x97d2c0[_0x325b('0x72')];_0x4d2413['converted_sampleRate']=isNaN(_0x97d2c0['sampleRate'])?null:_0x97d2c0[_0x325b('0x73')];});_0x1b6c41['on'](_0x325b('0x1e'),function(){fs['chmodSync'](_0x47c04e,parseInt(_0x325b('0x68'),0x8));return db[_0x325b('0x35')][_0x325b('0x77')](_0x4d2413)[_0x325b('0x2a')](function(_0xc9764){var _0x53dde5={'role':_0x5d11d9[_0x325b('0x78')][_0x325b('0x79')],'userProfileId':_0x5d11d9[_0x325b('0x78')][_0x325b('0x7a')]};if(!_0x53dde5)throw new Error(_0x325b('0x7b'));if(_0x53dde5['role']===_0x325b('0x7c')){var _0x32207c=_0xc9764[_0x325b('0x2c')]({'plain':!![]});return db[_0x325b('0x7d')][_0x325b('0x4f')]({'where':{'name':_0x325b('0x7e'),'userProfileId':_0x53dde5['userProfileId']},'raw':!![]})[_0x325b('0x2a')](function(_0x402fe4){if(_0x402fe4&&_0x402fe4[_0x325b('0x7f')]===0x0){return db[_0x325b('0x2d')][_0x325b('0x77')]({'name':_0x32207c['name'],'resourceId':_0x32207c['id'],'type':_0x402fe4[_0x325b('0x31')],'sectionId':_0x402fe4['id']},{})[_0x325b('0x2a')](function(){return _0xc9764;});}else{return _0xc9764;}})[_0x325b('0x4b')](function(_0x1d6ab7){logger['error'](_0x325b('0x80'),_0x1d6ab7);throw _0x1d6ab7;});}return _0xc9764;})[_0x325b('0x2a')](respondWithResult(_0x2f76fa,null))[_0x325b('0x4b')](handleError(_0x2f76fa,null));});_0x1b6c41['start']();}catch(_0x136673){_0x2f76fa[_0x325b('0x1d')](0x1f4)['send'](_0x136673);}};exports[_0x325b('0x29')]=function(_0x72b542,_0x56066d,_0x17e4e9){return db['Sound']['find']({'where':{'id':_0x72b542['params']['id']}})['then'](handleEntityNotFound(_0x56066d,null))[_0x325b('0x2a')](saveUpdates(_[_0x325b('0x43')](_0x72b542['body'],[_0x325b('0x31'),_0x325b('0x81')]),null))['then'](respondWithResult(_0x56066d,null))[_0x325b('0x4b')](handleError(_0x56066d,null));};exports[_0x325b('0x82')]=function(_0x3572aa,_0x158088,_0x523337){return db[_0x325b('0x35')][_0x325b('0x4f')]({'where':{'id':_0x3572aa['params']['id']}})[_0x325b('0x2a')](function(_0xeae54a){if(_0xeae54a){return _0xeae54a['destroy']();}})[_0x325b('0x2a')](function(_0x2e763b){var _0x313b25=path[_0x325b('0x59')](config['root'],_0x325b('0x63'),util[_0x325b('0x5a')](_0x325b('0x5b'),_0x2e763b[_0x325b('0x55')],_0x2e763b[_0x325b('0x83')]));var _0xe697f4=path[_0x325b('0x59')](config[_0x325b('0x53')],_0x325b('0x54'),util[_0x325b('0x5a')](_0x325b('0x5b'),_0x2e763b[_0x325b('0x55')],_0x2e763b[_0x325b('0x51')]));fs[_0x325b('0x69')](_0x313b25);fs[_0x325b('0x69')](_0xe697f4);return _0x2e763b;})[_0x325b('0x2a')](function(_0x5e6a4a){if(_0x5e6a4a){return _0x158088[_0x325b('0x1d')](0xcc)[_0x325b('0x1e')]();}})[_0x325b('0x2a')](handleEntityNotFound(_0x158088,null))[_0x325b('0x4b')](handleError(_0x158088,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa18e=['request-promise','path','rimraf','../../config/environment','exports','define','tools_sounds','../../config/logger','bluebird'];(function(_0xb23fa0,_0x226a2f){var _0x15bdca=function(_0x2625bb){while(--_0x2625bb){_0xb23fa0['push'](_0xb23fa0['shift']());}};_0x15bdca(++_0x226a2f);}(_0xa18e,0x19c));var _0xea18=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xa18e[_0x4a9fb1];return _0x348672;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xea18('0x0'))('api');var moment=require('moment');var BPromise=require(_0xea18('0x1'));var rp=require(_0xea18('0x2'));var fs=require('fs');var path=require(_0xea18('0x3'));var rimraf=require(_0xea18('0x4'));var config=require(_0xea18('0x5'));var attributes=require('./sound.attributes');module[_0xea18('0x6')]=function(_0xaba738,_0x4361fc){return _0xaba738[_0xea18('0x7')]('Sound',attributes,{'tableName':_0xea18('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfb9b=['bluebird','request-promise','path','rimraf','../../config/environment','exports','Sound','util','api','moment'];(function(_0x439252,_0x96f7e2){var _0x4df331=function(_0x357a0a){while(--_0x357a0a){_0x439252['push'](_0x439252['shift']());}};_0x4df331(++_0x96f7e2);}(_0xfb9b,0x75));var _0xbfb9=function(_0x1fe202,_0x7f004c){_0x1fe202=_0x1fe202-0x0;var _0x4b8768=_0xfb9b[_0x1fe202];return _0x4b8768;};'use strict';var _=require('lodash');var util=require(_0xbfb9('0x0'));var logger=require('../../config/logger')(_0xbfb9('0x1'));var moment=require(_0xbfb9('0x2'));var BPromise=require(_0xbfb9('0x3'));var rp=require(_0xbfb9('0x4'));var fs=require('fs');var path=require(_0xbfb9('0x5'));var rimraf=require(_0xbfb9('0x6'));var config=require(_0xbfb9('0x7'));var attributes=require('./sound.attributes');module[_0xbfb9('0x8')]=function(_0x1ed30a,_0x199b9d){return _0x1ed30a['define'](_0xbfb9('0x9'),attributes,{'tableName':'tools_sounds','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc7b=['http','request','then','info','debug','error','code','message','Sound,\x20%s,\x20%s','request\x20sent','result','catch','ShowSound','Sound','find','options','raw','attributes','include','map','model','stringify','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x45755c,_0x593d41){var _0x50f807=function(_0x546e0e){while(--_0x546e0e){_0x45755c['push'](_0x45755c['shift']());}};_0x50f807(++_0x593d41);}(_0xbc7b,0x156));var _0xbbc7=function(_0x4cb39c,_0x94a929){_0x4cb39c=_0x4cb39c-0x0;var _0x58e618=_0xbc7b[_0x4cb39c];return _0x58e618;};'use strict';var _=require(_0xbbc7('0x0'));var util=require(_0xbbc7('0x1'));var moment=require(_0xbbc7('0x2'));var BPromise=require('bluebird');var rs=require(_0xbbc7('0x3'));var fs=require('fs');var Redis=require(_0xbbc7('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbbc7('0x5'))(_0xbbc7('0x6'));var config=require(_0xbbc7('0x7'));var jayson=require(_0xbbc7('0x8'));var client=jayson[_0xbbc7('0x9')][_0xbbc7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x13d236,_0x4b9304,_0x245d7d){return new BPromise(function(_0x490432,_0x10da9c){return client[_0xbbc7('0xb')](_0x13d236,_0x245d7d)[_0xbbc7('0xc')](function(_0x5f5707){logger[_0xbbc7('0xd')]('Sound,\x20%s,\x20%s',_0x4b9304,'request\x20sent');logger[_0xbbc7('0xe')]('Sound,\x20%s,\x20%s,\x20%s',_0x4b9304,'request\x20sent',JSON['stringify'](_0x5f5707));if(_0x5f5707['error']){if(_0x5f5707[_0xbbc7('0xf')][_0xbbc7('0x10')]===0x1f4){logger[_0xbbc7('0xf')]('Sound,\x20%s,\x20%s',_0x4b9304,_0x5f5707[_0xbbc7('0xf')]['message']);return _0x10da9c(_0x5f5707[_0xbbc7('0xf')][_0xbbc7('0x11')]);}logger[_0xbbc7('0xf')](_0xbbc7('0x12'),_0x4b9304,_0x5f5707['error'][_0xbbc7('0x11')]);return _0x490432(_0x5f5707[_0xbbc7('0xf')][_0xbbc7('0x11')]);}else{logger[_0xbbc7('0xd')](_0xbbc7('0x12'),_0x4b9304,_0xbbc7('0x13'));_0x490432(_0x5f5707[_0xbbc7('0x14')][_0xbbc7('0x11')]);}})[_0xbbc7('0x15')](function(_0x39832d){logger[_0xbbc7('0xf')](_0xbbc7('0x12'),_0x4b9304,_0x39832d);_0x10da9c(_0x39832d);});});}exports[_0xbbc7('0x16')]=function(_0x5bf269){var _0x4c2a36=this;return new Promise(function(_0x3b4ceb,_0x248672){return db[_0xbbc7('0x17')][_0xbbc7('0x18')]({'raw':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269[_0xbbc7('0x19')][_0xbbc7('0x1a')]===undefined?!![]:![]:!![],'where':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269[_0xbbc7('0x19')]['where']||null:null,'attributes':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269[_0xbbc7('0x19')][_0xbbc7('0x1b')]||null:null,'include':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269['options'][_0xbbc7('0x1c')]?_[_0xbbc7('0x1d')](_0x5bf269[_0xbbc7('0x19')][_0xbbc7('0x1c')],function(_0x5a6a05){return{'model':db[_0x5a6a05[_0xbbc7('0x1e')]],'as':_0x5a6a05['as'],'attributes':_0x5a6a05[_0xbbc7('0x1b')],'include':_0x5a6a05[_0xbbc7('0x1c')]?_[_0xbbc7('0x1d')](_0x5a6a05[_0xbbc7('0x1c')],function(_0x25b8a7){return{'model':db[_0x25b8a7[_0xbbc7('0x1e')]],'as':_0x25b8a7['as'],'attributes':_0x25b8a7[_0xbbc7('0x1b')],'include':_0x25b8a7[_0xbbc7('0x1c')]?_[_0xbbc7('0x1d')](_0x25b8a7[_0xbbc7('0x1c')],function(_0x2c6f91){return{'model':db[_0x2c6f91[_0xbbc7('0x1e')]],'as':_0x2c6f91['as'],'attributes':_0x2c6f91[_0xbbc7('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xbbc7('0xc')](function(_0x4840c0){logger['info'](_0xbbc7('0x16'),_0x5bf269);logger[_0xbbc7('0xe')]('ShowSound',_0x5bf269,JSON[_0xbbc7('0x1f')](_0x4840c0));_0x3b4ceb(_0x4840c0);})[_0xbbc7('0x15')](function(_0x3170e4){logger[_0xbbc7('0xf')](_0xbbc7('0x16'),_0x3170e4['message'],_0x5bf269);_0x248672(_0x4c2a36[_0xbbc7('0xf')](0x1f4,_0x3170e4[_0xbbc7('0x11')]));});});};
\ No newline at end of file
+var _0xee0a=['Sound,\x20%s,\x20%s,\x20%s','error','message','info','result','catch','Sound','find','options','raw','where','attributes','include','model','map','then','ShowSound','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','request','Sound,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x4fd09d,_0x2b1f3f){var _0x239cd4=function(_0x172987){while(--_0x172987){_0x4fd09d['push'](_0x4fd09d['shift']());}};_0x239cd4(++_0x2b1f3f);}(_0xee0a,0xbf));var _0xaee0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xee0a[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xaee0('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xaee0('0x1'));var rs=require(_0xaee0('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xaee0('0x3'))['db'];var utils=require(_0xaee0('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0xaee0('0x5'));var jayson=require(_0xaee0('0x6'));var client=jayson['client'][_0xaee0('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x504a77,_0x56c48c,_0x1c895f){return new BPromise(function(_0x46d178,_0x15715a){return client[_0xaee0('0x8')](_0x504a77,_0x1c895f)['then'](function(_0x356a58){logger['info'](_0xaee0('0x9'),_0x56c48c,_0xaee0('0xa'));logger[_0xaee0('0xb')](_0xaee0('0xc'),_0x56c48c,_0xaee0('0xa'),JSON['stringify'](_0x356a58));if(_0x356a58[_0xaee0('0xd')]){if(_0x356a58[_0xaee0('0xd')]['code']===0x1f4){logger[_0xaee0('0xd')](_0xaee0('0x9'),_0x56c48c,_0x356a58[_0xaee0('0xd')]['message']);return _0x15715a(_0x356a58['error'][_0xaee0('0xe')]);}logger[_0xaee0('0xd')](_0xaee0('0x9'),_0x56c48c,_0x356a58['error'][_0xaee0('0xe')]);return _0x46d178(_0x356a58[_0xaee0('0xd')]['message']);}else{logger[_0xaee0('0xf')]('Sound,\x20%s,\x20%s',_0x56c48c,_0xaee0('0xa'));_0x46d178(_0x356a58[_0xaee0('0x10')][_0xaee0('0xe')]);}})[_0xaee0('0x11')](function(_0x5c98ec){logger[_0xaee0('0xd')](_0xaee0('0x9'),_0x56c48c,_0x5c98ec);_0x15715a(_0x5c98ec);});});}exports['ShowSound']=function(_0x4f8f11){var _0x4ef96f=this;return new Promise(function(_0x4fdd50,_0x4adf99){return db[_0xaee0('0x12')][_0xaee0('0x13')]({'raw':_0x4f8f11[_0xaee0('0x14')]?_0x4f8f11['options'][_0xaee0('0x15')]===undefined?!![]:![]:!![],'where':_0x4f8f11[_0xaee0('0x14')]?_0x4f8f11['options'][_0xaee0('0x16')]||null:null,'attributes':_0x4f8f11[_0xaee0('0x14')]?_0x4f8f11[_0xaee0('0x14')][_0xaee0('0x17')]||null:null,'include':_0x4f8f11['options']?_0x4f8f11[_0xaee0('0x14')][_0xaee0('0x18')]?_['map'](_0x4f8f11['options'][_0xaee0('0x18')],function(_0x34b758){return{'model':db[_0x34b758['model']],'as':_0x34b758['as'],'attributes':_0x34b758['attributes'],'include':_0x34b758[_0xaee0('0x18')]?_['map'](_0x34b758[_0xaee0('0x18')],function(_0x52a21e){return{'model':db[_0x52a21e[_0xaee0('0x19')]],'as':_0x52a21e['as'],'attributes':_0x52a21e[_0xaee0('0x17')],'include':_0x52a21e[_0xaee0('0x18')]?_[_0xaee0('0x1a')](_0x52a21e[_0xaee0('0x18')],function(_0x2f74c8){return{'model':db[_0x2f74c8[_0xaee0('0x19')]],'as':_0x2f74c8['as'],'attributes':_0x2f74c8[_0xaee0('0x17')]};}):[]};}):[]};}):[]:[]})[_0xaee0('0x1b')](function(_0x4497cb){logger['info']('ShowSound',_0x4f8f11);logger[_0xaee0('0xb')](_0xaee0('0x1c'),_0x4f8f11,JSON['stringify'](_0x4497cb));_0x4fdd50(_0x4497cb);})[_0xaee0('0x11')](function(_0x40c906){logger[_0xaee0('0xd')]('ShowSound',_0x40c906[_0xaee0('0xe')],_0x4f8f11);_0x4adf99(_0x4ef96f[_0xaee0('0xd')](0x1f4,_0x40c906[_0xaee0('0xe')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['../../config/environment','get','isAuthenticated','/:id','show','post','create','put','update','delete','destroy','exports','util','path','fs-extra','../../components/interaction/service'];(function(_0x27f569,_0x11892a){var _0x3774c4=function(_0x287aca){while(--_0x287aca){_0x27f569['push'](_0x27f569['shift']());}};_0x3774c4(++_0x11892a);}(_0xda3f,0xec));var _0xfda3=function(_0x29980f,_0x5e42cd){_0x29980f=_0x29980f-0x0;var _0x36b4ca=_0xda3f[_0x29980f];return _0x36b4ca;};'use strict';var multer=require('multer');var util=require(_0xfda3('0x0'));var path=require(_0xfda3('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0xfda3('0x2'));var auth=require('../../components/auth/service');var interaction=require(_0xfda3('0x3'));var config=require(_0xfda3('0x4'));var controller=require('./squareMessage.controller');router[_0xfda3('0x5')]('/',auth[_0xfda3('0x6')](),controller['index']);router['get'](_0xfda3('0x7'),auth[_0xfda3('0x6')](),controller[_0xfda3('0x8')]);router[_0xfda3('0x9')]('/',auth[_0xfda3('0x6')](),controller[_0xfda3('0xa')]);router[_0xfda3('0xb')](_0xfda3('0x7'),auth[_0xfda3('0x6')](),controller[_0xfda3('0xc')]);router[_0xfda3('0xd')](_0xfda3('0x7'),auth['isAuthenticated'](),controller[_0xfda3('0xe')]);module[_0xfda3('0xf')]=router;
\ No newline at end of file
+var _0x0b0e=['./squareMessage.controller','get','isAuthenticated','index','show','post','create','/:id','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x5622b2,_0x5dc268){var _0x2c441b=function(_0x3a3f73){while(--_0x3a3f73){_0x5622b2['push'](_0x5622b2['shift']());}};_0x2c441b(++_0x5dc268);}(_0x0b0e,0x187));var _0xe0b0=function(_0x3b4b1d,_0x15029e){_0x3b4b1d=_0x3b4b1d-0x0;var _0x488c36=_0x0b0e[_0x3b4b1d];return _0x488c36;};'use strict';var multer=require(_0xe0b0('0x0'));var util=require('util');var path=require(_0xe0b0('0x1'));var timeout=require('connect-timeout');var express=require(_0xe0b0('0x2'));var router=express[_0xe0b0('0x3')]();var fs_extra=require(_0xe0b0('0x4'));var auth=require(_0xe0b0('0x5'));var interaction=require(_0xe0b0('0x6'));var config=require(_0xe0b0('0x7'));var controller=require(_0xe0b0('0x8'));router[_0xe0b0('0x9')]('/',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0xb')]);router[_0xe0b0('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xe0b0('0xc')]);router[_0xe0b0('0xd')]('/',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0xe')]);router['put'](_0xe0b0('0xf'),auth[_0xe0b0('0xa')](),controller['update']);router[_0xe0b0('0x10')](_0xe0b0('0xf'),auth['isAuthenticated'](),controller[_0xe0b0('0x11')]);module[_0xe0b0('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc48d=['STRING','TEXT','medium','ENUM','out','exports'];(function(_0x46aff0,_0x122890){var _0x9d78cf=function(_0x3f14cb){while(--_0x3f14cb){_0x46aff0['push'](_0x46aff0['shift']());}};_0x9d78cf(++_0x122890);}(_0xc48d,0x161));var _0xdc48=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xc48d[_0x173d7e];return _0x2220d6;};'use strict';var Sequelize=require('sequelize');module[_0xdc48('0x0')]={'uniqueid':{'type':Sequelize[_0xdc48('0x1')]},'body':{'type':Sequelize[_0xdc48('0x2')](_0xdc48('0x3')),'allowNull':![]},'direction':{'type':Sequelize[_0xdc48('0x4')]('in',_0xdc48('0x5')),'defaultValue':_0xdc48('0x5'),'allowNull':![]},'providerName':{'type':Sequelize[_0xdc48('0x1')]},'providerResponse':{'type':Sequelize[_0xdc48('0x2')]}};
\ No newline at end of file
+var _0xc28e=['ENUM','out','sequelize','STRING','TEXT','medium'];(function(_0x454018,_0x46e33a){var _0x24697d=function(_0x3ec647){while(--_0x3ec647){_0x454018['push'](_0x454018['shift']());}};_0x24697d(++_0x46e33a);}(_0xc28e,0x68));var _0xec28=function(_0x3a7634,_0x2db384){_0x3a7634=_0x3a7634-0x0;var _0x23bbe9=_0xc28e[_0x3a7634];return _0x23bbe9;};'use strict';var Sequelize=require(_0xec28('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0xec28('0x1')]},'body':{'type':Sequelize[_0xec28('0x2')](_0xec28('0x3')),'allowNull':![]},'direction':{'type':Sequelize[_0xec28('0x4')]('in',_0xec28('0x5')),'defaultValue':_0xec28('0x5'),'allowNull':![]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0xec28('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60e0=['limit','order','sort','pick','where','merge','VIRTUAL','filter','options','SquareMessage','then','includeAll','include','catch','show','params','create','body','find','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','json','offset','undefined','status','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','nolimit'];(function(_0x5f3f88,_0x562baf){var _0xd08119=function(_0x42dbf7){while(--_0x42dbf7){_0x5f3f88['push'](_0x5f3f88['shift']());}};_0xd08119(++_0x562baf);}(_0x60e0,0x176));var _0x060e=function(_0x4823f4,_0x74020b){_0x4823f4=_0x4823f4-0x0;var _0x45f00e=_0x60e0[_0x4823f4];return _0x45f00e;};'use strict';var emlformat=require(_0x060e('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x060e('0x1'));var rp=require('request-promise');var moment=require(_0x060e('0x2'));var BPromise=require(_0x060e('0x3'));var Mustache=require(_0x060e('0x4'));var util=require(_0x060e('0x5'));var path=require(_0x060e('0x6'));var sox=require('sox');var csv=require(_0x060e('0x7'));var ejs=require(_0x060e('0x8'));var fs=require('fs');var fs_extra=require(_0x060e('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x060e('0xa'));var jsforce=require(_0x060e('0xb'));var deskjs=require(_0x060e('0xc'));var toCsv=require(_0x060e('0x7'));var querystring=require(_0x060e('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x060e('0xe'));var as=require(_0x060e('0xf'));var hardwareService=require(_0x060e('0x10'));var logger=require('../../config/logger')(_0x060e('0x11'));var utils=require(_0x060e('0x12'));var config=require(_0x060e('0x13'));var licenseUtil=require(_0x060e('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x7046f6,_0x5ddef9){_0x5ddef9=_0x5ddef9||0xcc;return function(_0x3a6f7f){if(_0x3a6f7f){return _0x7046f6[_0x060e('0x15')](_0x5ddef9);}return _0x7046f6['status'](_0x5ddef9)[_0x060e('0x16')]();};}function respondWithResult(_0x163130,_0x37455c){_0x37455c=_0x37455c||0xc8;return function(_0x495977){if(_0x495977){return _0x163130['status'](_0x37455c)[_0x060e('0x17')](_0x495977);}};}function respondWithFilteredResult(_0xe909cc,_0x2c95f7){return function(_0x366b87){if(_0x366b87){var _0x5f4611=typeof _0x2c95f7[_0x060e('0x18')]==='undefined'&&typeof _0x2c95f7['limit']===_0x060e('0x19');var _0x2d3ecf=_0x366b87['count'];var _0x5eb8e1=_0x5f4611?0x0:_0x2c95f7[_0x060e('0x18')];var _0x56a406=_0x5f4611?_0x366b87['count']:_0x2c95f7['offset']+_0x2c95f7['limit'];var _0x30afb0;if(_0x56a406>=_0x2d3ecf){_0x56a406=_0x2d3ecf;_0x30afb0=0xc8;}else{_0x30afb0=0xce;}_0xe909cc[_0x060e('0x1a')](_0x30afb0);return _0xe909cc['set'](_0x060e('0x1b'),_0x5eb8e1+'-'+_0x56a406+'/'+_0x2d3ecf)[_0x060e('0x17')](_0x366b87);}return null;};}function patchUpdates(_0x48f050){return function(_0x318156){try{jsonpatch[_0x060e('0x1c')](_0x318156,_0x48f050,!![]);}catch(_0x1c8250){return BPromise[_0x060e('0x1d')](_0x1c8250);}return _0x318156[_0x060e('0x1e')]();};}function saveUpdates(_0x4e74b9,_0x47d257){return function(_0x5a4d39){if(_0x5a4d39){return _0x5a4d39[_0x060e('0x1f')](_0x4e74b9)['then'](function(_0x55f245){return _0x55f245;});}return null;};}function removeEntity(_0x56783c,_0x3518a9){return function(_0x34f1f0){if(_0x34f1f0){return _0x34f1f0[_0x060e('0x20')]()['then'](function(){_0x56783c['status'](0xcc)[_0x060e('0x16')]();});}};}function handleEntityNotFound(_0x42e391,_0x323bf1){return function(_0x3319b1){if(!_0x3319b1){_0x42e391[_0x060e('0x15')](0x194);}return _0x3319b1;};}function handleError(_0x5ab4cd,_0x3649cb){_0x3649cb=_0x3649cb||0x1f4;return function(_0x23a90b){logger[_0x060e('0x21')](_0x23a90b[_0x060e('0x22')]);if(_0x23a90b['name']){delete _0x23a90b[_0x060e('0x23')];}_0x5ab4cd[_0x060e('0x1a')](_0x3649cb)[_0x060e('0x24')](_0x23a90b);};}exports[_0x060e('0x25')]=function(_0x2721e9,_0x5d857b){var _0x3aa8c5={},_0x4d8550={},_0x44d856={'count':0x0,'rows':[]};var _0x2d4bbc=_[_0x060e('0x26')](db['SquareMessage'][_0x060e('0x27')],function(_0x573432){return{'name':_0x573432[_0x060e('0x28')],'type':_0x573432[_0x060e('0x29')][_0x060e('0x2a')]};});_0x4d8550['model']=_['map'](_0x2d4bbc,_0x060e('0x23'));_0x4d8550[_0x060e('0x2b')]=_[_0x060e('0x2c')](_0x2721e9[_0x060e('0x2b')]);_0x4d8550[_0x060e('0x2d')]=_['intersection'](_0x4d8550['model'],_0x4d8550['query']);_0x3aa8c5['attributes']=_[_0x060e('0x2e')](_0x4d8550[_0x060e('0x2f')],qs['fields'](_0x2721e9[_0x060e('0x2b')][_0x060e('0x30')]));_0x3aa8c5[_0x060e('0x31')]=_0x3aa8c5['attributes'][_0x060e('0x32')]?_0x3aa8c5[_0x060e('0x31')]:_0x4d8550[_0x060e('0x2f')];if(!_0x2721e9['query']['hasOwnProperty'](_0x060e('0x33'))){_0x3aa8c5[_0x060e('0x34')]=qs[_0x060e('0x34')](_0x2721e9[_0x060e('0x2b')][_0x060e('0x34')]);_0x3aa8c5[_0x060e('0x18')]=qs[_0x060e('0x18')](_0x2721e9[_0x060e('0x2b')][_0x060e('0x18')]);}_0x3aa8c5[_0x060e('0x35')]=qs[_0x060e('0x36')](_0x2721e9['query'][_0x060e('0x36')]);_0x3aa8c5['where']=qs[_0x060e('0x2d')](_[_0x060e('0x37')](_0x2721e9[_0x060e('0x2b')],_0x4d8550[_0x060e('0x2d')]),_0x2d4bbc);if(_0x2721e9[_0x060e('0x2b')]['filter']){_0x3aa8c5[_0x060e('0x38')]=_[_0x060e('0x39')](_0x3aa8c5[_0x060e('0x38')],{'$or':_[_0x060e('0x26')](_0x2d4bbc,function(_0x36ef10){if(_0x36ef10['type']!==_0x060e('0x3a')){var _0x5de8c8={};_0x5de8c8[_0x36ef10[_0x060e('0x23')]]={'$like':'%'+_0x2721e9[_0x060e('0x2b')][_0x060e('0x3b')]+'%'};return _0x5de8c8;}})});}_0x3aa8c5=_[_0x060e('0x39')]({},_0x3aa8c5,_0x2721e9[_0x060e('0x3c')]);var _0x4c800f={'where':_0x3aa8c5[_0x060e('0x38')]};return db[_0x060e('0x3d')]['count'](_0x4c800f)[_0x060e('0x3e')](function(_0x235208){_0x44d856['count']=_0x235208;if(_0x2721e9['query'][_0x060e('0x3f')]){_0x3aa8c5[_0x060e('0x40')]=[{'all':!![]}];}return db[_0x060e('0x3d')]['findAll'](_0x3aa8c5);})[_0x060e('0x3e')](function(_0xea30a2){_0x44d856['rows']=_0xea30a2;return _0x44d856;})['then'](respondWithFilteredResult(_0x5d857b,_0x3aa8c5))[_0x060e('0x41')](handleError(_0x5d857b,null));};exports[_0x060e('0x42')]=function(_0xc907b3,_0x12bf15){var _0x5a1da9={'raw':!![],'where':{'id':_0xc907b3[_0x060e('0x43')]['id']}},_0x5a2779={};_0x5a2779[_0x060e('0x2f')]=_[_0x060e('0x2c')](db[_0x060e('0x3d')][_0x060e('0x27')]);_0x5a2779[_0x060e('0x2b')]=_['keys'](_0xc907b3[_0x060e('0x2b')]);_0x5a2779[_0x060e('0x2d')]=_[_0x060e('0x2e')](_0x5a2779['model'],_0x5a2779['query']);_0x5a1da9[_0x060e('0x31')]=_['intersection'](_0x5a2779['model'],qs[_0x060e('0x30')](_0xc907b3[_0x060e('0x2b')][_0x060e('0x30')]));_0x5a1da9[_0x060e('0x31')]=_0x5a1da9[_0x060e('0x31')][_0x060e('0x32')]?_0x5a1da9[_0x060e('0x31')]:_0x5a2779[_0x060e('0x2f')];if(_0xc907b3[_0x060e('0x2b')]['includeAll']){_0x5a1da9[_0x060e('0x40')]=[{'all':!![]}];}_0x5a1da9=_[_0x060e('0x39')]({},_0x5a1da9,_0xc907b3[_0x060e('0x3c')]);return db[_0x060e('0x3d')]['find'](_0x5a1da9)[_0x060e('0x3e')](handleEntityNotFound(_0x12bf15,null))['then'](respondWithResult(_0x12bf15,null))[_0x060e('0x41')](handleError(_0x12bf15,null));};exports[_0x060e('0x44')]=function(_0xe87cc7,_0x613991){return db[_0x060e('0x3d')][_0x060e('0x44')](_0xe87cc7[_0x060e('0x45')],{})[_0x060e('0x3e')](respondWithResult(_0x613991,0xc9))['catch'](handleError(_0x613991,null));};exports[_0x060e('0x1f')]=function(_0x40b40c,_0x33a7e1){if(_0x40b40c[_0x060e('0x45')]['id']){delete _0x40b40c[_0x060e('0x45')]['id'];}return db[_0x060e('0x3d')][_0x060e('0x46')]({'where':{'id':_0x40b40c[_0x060e('0x43')]['id']}})[_0x060e('0x3e')](handleEntityNotFound(_0x33a7e1,null))['then'](saveUpdates(_0x40b40c[_0x060e('0x45')],null))[_0x060e('0x3e')](respondWithResult(_0x33a7e1,null))['catch'](handleError(_0x33a7e1,null));};exports[_0x060e('0x20')]=function(_0xc051de,_0x1c3928){return db[_0x060e('0x3d')]['find']({'where':{'id':_0xc051de[_0x060e('0x43')]['id']}})[_0x060e('0x3e')](handleEntityNotFound(_0x1c3928,null))[_0x060e('0x3e')](removeEntity(_0x1c3928,null))['catch'](handleError(_0x1c3928,null));};
\ No newline at end of file
+var _0x5bf7=['fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','filters','pick','filter','merge','VIRTUAL','options','SquareMessage','includeAll','include','findAll','rows','catch','show','keys','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','name','map','rawAttributes'];(function(_0x360cc7,_0x2373f4){var _0x36c3b7=function(_0x112d09){while(--_0x112d09){_0x360cc7['push'](_0x360cc7['shift']());}};_0x36c3b7(++_0x2373f4);}(_0x5bf7,0xb4));var _0x75bf=function(_0x57ae16,_0x392ffd){_0x57ae16=_0x57ae16-0x0;var _0xc84d39=_0x5bf7[_0x57ae16];return _0xc84d39;};'use strict';var emlformat=require(_0x75bf('0x0'));var rimraf=require(_0x75bf('0x1'));var zipdir=require(_0x75bf('0x2'));var jsonpatch=require(_0x75bf('0x3'));var rp=require('request-promise');var moment=require(_0x75bf('0x4'));var BPromise=require(_0x75bf('0x5'));var Mustache=require(_0x75bf('0x6'));var util=require(_0x75bf('0x7'));var path=require(_0x75bf('0x8'));var sox=require(_0x75bf('0x9'));var csv=require(_0x75bf('0xa'));var ejs=require(_0x75bf('0xb'));var fs=require('fs');var fs_extra=require(_0x75bf('0xc'));var _=require(_0x75bf('0xd'));var squel=require(_0x75bf('0xe'));var crypto=require(_0x75bf('0xf'));var jsforce=require(_0x75bf('0x10'));var deskjs=require(_0x75bf('0x11'));var toCsv=require(_0x75bf('0xa'));var querystring=require(_0x75bf('0x12'));var Papa=require('papaparse');var Redis=require(_0x75bf('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x75bf('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x75bf('0x15'));var logger=require(_0x75bf('0x16'))(_0x75bf('0x17'));var utils=require(_0x75bf('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x75bf('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x185e00,_0x3d33a9){_0x3d33a9=_0x3d33a9||0xcc;return function(_0x228128){if(_0x228128){return _0x185e00['sendStatus'](_0x3d33a9);}return _0x185e00[_0x75bf('0x1a')](_0x3d33a9)[_0x75bf('0x1b')]();};}function respondWithResult(_0x231641,_0x590668){_0x590668=_0x590668||0xc8;return function(_0x4adffe){if(_0x4adffe){return _0x231641[_0x75bf('0x1a')](_0x590668)[_0x75bf('0x1c')](_0x4adffe);}};}function respondWithFilteredResult(_0x147b98,_0x494c47){return function(_0x3313ad){if(_0x3313ad){var _0xddf84b=typeof _0x494c47['offset']===_0x75bf('0x1d')&&typeof _0x494c47['limit']===_0x75bf('0x1d');var _0x5c3c70=_0x3313ad[_0x75bf('0x1e')];var _0x4d9c46=_0xddf84b?0x0:_0x494c47[_0x75bf('0x1f')];var _0x306c51=_0xddf84b?_0x3313ad[_0x75bf('0x1e')]:_0x494c47['offset']+_0x494c47[_0x75bf('0x20')];var _0x17875d;if(_0x306c51>=_0x5c3c70){_0x306c51=_0x5c3c70;_0x17875d=0xc8;}else{_0x17875d=0xce;}_0x147b98[_0x75bf('0x1a')](_0x17875d);return _0x147b98[_0x75bf('0x21')](_0x75bf('0x22'),_0x4d9c46+'-'+_0x306c51+'/'+_0x5c3c70)['json'](_0x3313ad);}return null;};}function patchUpdates(_0x4ede56){return function(_0x1d7c22){try{jsonpatch[_0x75bf('0x23')](_0x1d7c22,_0x4ede56,!![]);}catch(_0x2bb280){return BPromise[_0x75bf('0x24')](_0x2bb280);}return _0x1d7c22[_0x75bf('0x25')]();};}function saveUpdates(_0x335110,_0x1fe6d4){return function(_0xefd52){if(_0xefd52){return _0xefd52[_0x75bf('0x26')](_0x335110)[_0x75bf('0x27')](function(_0x3bf909){return _0x3bf909;});}return null;};}function removeEntity(_0x2337b4,_0x1c0949){return function(_0x605790){if(_0x605790){return _0x605790[_0x75bf('0x28')]()[_0x75bf('0x27')](function(){_0x2337b4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3bd45c,_0x247ec7){return function(_0x1e419e){if(!_0x1e419e){_0x3bd45c['sendStatus'](0x194);}return _0x1e419e;};}function handleError(_0x437c65,_0x1b8bd3){_0x1b8bd3=_0x1b8bd3||0x1f4;return function(_0x3a1e78){logger[_0x75bf('0x29')](_0x3a1e78['stack']);if(_0x3a1e78[_0x75bf('0x2a')]){delete _0x3a1e78[_0x75bf('0x2a')];}_0x437c65['status'](_0x1b8bd3)['send'](_0x3a1e78);};}exports['index']=function(_0x514fe3,_0x2c90fc){var _0xe68661={},_0x1e31ab={},_0x427493={'count':0x0,'rows':[]};var _0xe969bf=_[_0x75bf('0x2b')](db['SquareMessage'][_0x75bf('0x2c')],function(_0x2d4f99){return{'name':_0x2d4f99[_0x75bf('0x2d')],'type':_0x2d4f99[_0x75bf('0x2e')][_0x75bf('0x2f')]};});_0x1e31ab[_0x75bf('0x30')]=_[_0x75bf('0x2b')](_0xe969bf,'name');_0x1e31ab[_0x75bf('0x31')]=_['keys'](_0x514fe3[_0x75bf('0x31')]);_0x1e31ab['filters']=_[_0x75bf('0x32')](_0x1e31ab[_0x75bf('0x30')],_0x1e31ab[_0x75bf('0x31')]);_0xe68661[_0x75bf('0x33')]=_[_0x75bf('0x32')](_0x1e31ab[_0x75bf('0x30')],qs[_0x75bf('0x34')](_0x514fe3[_0x75bf('0x31')][_0x75bf('0x34')]));_0xe68661[_0x75bf('0x33')]=_0xe68661['attributes'][_0x75bf('0x35')]?_0xe68661[_0x75bf('0x33')]:_0x1e31ab['model'];if(!_0x514fe3['query'][_0x75bf('0x36')]('nolimit')){_0xe68661['limit']=qs[_0x75bf('0x20')](_0x514fe3['query'][_0x75bf('0x20')]);_0xe68661[_0x75bf('0x1f')]=qs[_0x75bf('0x1f')](_0x514fe3['query'][_0x75bf('0x1f')]);}_0xe68661[_0x75bf('0x37')]=qs[_0x75bf('0x38')](_0x514fe3['query'][_0x75bf('0x38')]);_0xe68661['where']=qs[_0x75bf('0x39')](_[_0x75bf('0x3a')](_0x514fe3[_0x75bf('0x31')],_0x1e31ab[_0x75bf('0x39')]),_0xe969bf);if(_0x514fe3[_0x75bf('0x31')][_0x75bf('0x3b')]){_0xe68661['where']=_[_0x75bf('0x3c')](_0xe68661['where'],{'$or':_[_0x75bf('0x2b')](_0xe969bf,function(_0x3e03c9){if(_0x3e03c9['type']!==_0x75bf('0x3d')){var _0x404acc={};_0x404acc[_0x3e03c9[_0x75bf('0x2a')]]={'$like':'%'+_0x514fe3[_0x75bf('0x31')][_0x75bf('0x3b')]+'%'};return _0x404acc;}})});}_0xe68661=_[_0x75bf('0x3c')]({},_0xe68661,_0x514fe3[_0x75bf('0x3e')]);var _0x5c856d={'where':_0xe68661['where']};return db[_0x75bf('0x3f')][_0x75bf('0x1e')](_0x5c856d)[_0x75bf('0x27')](function(_0x5e5ef6){_0x427493[_0x75bf('0x1e')]=_0x5e5ef6;if(_0x514fe3[_0x75bf('0x31')][_0x75bf('0x40')]){_0xe68661[_0x75bf('0x41')]=[{'all':!![]}];}return db['SquareMessage'][_0x75bf('0x42')](_0xe68661);})[_0x75bf('0x27')](function(_0x3c414d){_0x427493[_0x75bf('0x43')]=_0x3c414d;return _0x427493;})['then'](respondWithFilteredResult(_0x2c90fc,_0xe68661))[_0x75bf('0x44')](handleError(_0x2c90fc,null));};exports[_0x75bf('0x45')]=function(_0x18e259,_0xbc24d0){var _0x37db2f={'raw':!![],'where':{'id':_0x18e259['params']['id']}},_0x24fa1b={};_0x24fa1b['model']=_[_0x75bf('0x46')](db['SquareMessage'][_0x75bf('0x2c')]);_0x24fa1b[_0x75bf('0x31')]=_['keys'](_0x18e259[_0x75bf('0x31')]);_0x24fa1b[_0x75bf('0x39')]=_[_0x75bf('0x32')](_0x24fa1b['model'],_0x24fa1b[_0x75bf('0x31')]);_0x37db2f['attributes']=_[_0x75bf('0x32')](_0x24fa1b[_0x75bf('0x30')],qs[_0x75bf('0x34')](_0x18e259[_0x75bf('0x31')][_0x75bf('0x34')]));_0x37db2f[_0x75bf('0x33')]=_0x37db2f[_0x75bf('0x33')]['length']?_0x37db2f[_0x75bf('0x33')]:_0x24fa1b[_0x75bf('0x30')];if(_0x18e259[_0x75bf('0x31')][_0x75bf('0x40')]){_0x37db2f[_0x75bf('0x41')]=[{'all':!![]}];}_0x37db2f=_[_0x75bf('0x3c')]({},_0x37db2f,_0x18e259['options']);return db[_0x75bf('0x3f')][_0x75bf('0x47')](_0x37db2f)[_0x75bf('0x27')](handleEntityNotFound(_0xbc24d0,null))['then'](respondWithResult(_0xbc24d0,null))[_0x75bf('0x44')](handleError(_0xbc24d0,null));};exports['create']=function(_0x4c2af1,_0xa6c071){return db[_0x75bf('0x3f')][_0x75bf('0x48')](_0x4c2af1[_0x75bf('0x49')],{})['then'](respondWithResult(_0xa6c071,0xc9))[_0x75bf('0x44')](handleError(_0xa6c071,null));};exports[_0x75bf('0x26')]=function(_0x193e57,_0x1b0ce4){if(_0x193e57[_0x75bf('0x49')]['id']){delete _0x193e57[_0x75bf('0x49')]['id'];}return db[_0x75bf('0x3f')][_0x75bf('0x47')]({'where':{'id':_0x193e57[_0x75bf('0x4a')]['id']}})[_0x75bf('0x27')](handleEntityNotFound(_0x1b0ce4,null))[_0x75bf('0x27')](saveUpdates(_0x193e57[_0x75bf('0x49')],null))[_0x75bf('0x27')](respondWithResult(_0x1b0ce4,null))[_0x75bf('0x44')](handleError(_0x1b0ce4,null));};exports[_0x75bf('0x28')]=function(_0x49567b,_0x1a664a){return db[_0x75bf('0x3f')]['find']({'where':{'id':_0x49567b[_0x75bf('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1a664a,null))[_0x75bf('0x27')](removeEntity(_0x1a664a,null))['catch'](handleError(_0x1a664a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8255=['./squareMessage.attributes','exports','define','SquareMessage','square_messages','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf'];(function(_0xd79fee,_0x5e743a){var _0xd89c20=function(_0x501e9a){while(--_0x501e9a){_0xd79fee['push'](_0xd79fee['shift']());}};_0xd89c20(++_0x5e743a);}(_0x8255,0x198));var _0x5825=function(_0x11277a,_0x4a58bb){_0x11277a=_0x11277a-0x0;var _0x23ad15=_0x8255[_0x11277a];return _0x23ad15;};'use strict';var _=require(_0x5825('0x0'));var util=require(_0x5825('0x1'));var logger=require(_0x5825('0x2'))(_0x5825('0x3'));var moment=require(_0x5825('0x4'));var BPromise=require('bluebird');var rp=require(_0x5825('0x5'));var fs=require('fs');var path=require(_0x5825('0x6'));var rimraf=require(_0x5825('0x7'));var config=require('../../config/environment');var attributes=require(_0x5825('0x8'));module[_0x5825('0x9')]=function(_0x2e020b,_0x342937){return _0x2e020b[_0x5825('0xa')](_0x5825('0xb'),attributes,{'tableName':_0x5825('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb018=['moment','bluebird','request-promise','rimraf','../../config/environment','./squareMessage.attributes','exports','define','SquareMessage','lodash','../../config/logger','api'];(function(_0x5e82ae,_0x1bf62f){var _0x2e3d18=function(_0x42dc5b){while(--_0x42dc5b){_0x5e82ae['push'](_0x5e82ae['shift']());}};_0x2e3d18(++_0x1bf62f);}(_0xb018,0x111));var _0x8b01=function(_0x596fc7,_0x249246){_0x596fc7=_0x596fc7-0x0;var _0x341180=_0xb018[_0x596fc7];return _0x341180;};'use strict';var _=require(_0x8b01('0x0'));var util=require('util');var logger=require(_0x8b01('0x1'))(_0x8b01('0x2'));var moment=require(_0x8b01('0x3'));var BPromise=require(_0x8b01('0x4'));var rp=require(_0x8b01('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8b01('0x6'));var config=require(_0x8b01('0x7'));var attributes=require(_0x8b01('0x8'));module[_0x8b01('0x9')]=function(_0x82ef3f,_0x2e4688){return _0x82ef3f[_0x8b01('0xa')](_0x8b01('0xb'),attributes,{'tableName':'square_messages','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c75=['bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','http','request','then','info','SquareMessage,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','SquareMessage','create','body','options','raw','CreateSquareMessage','moment'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x0c75,0x103));var _0x50c7=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x0c75[_0x2641f9];return _0x585741;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x50c7('0x0'));var BPromise=require(_0x50c7('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x50c7('0x2'));var db=require(_0x50c7('0x3'))['db'];var utils=require(_0x50c7('0x4'));var logger=require(_0x50c7('0x5'))(_0x50c7('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x50c7('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5dc208,_0x273861,_0x43c8ed){return new BPromise(function(_0x108272,_0x545ca0){return client[_0x50c7('0x8')](_0x5dc208,_0x43c8ed)[_0x50c7('0x9')](function(_0x52fcfd){logger[_0x50c7('0xa')](_0x50c7('0xb'),_0x273861,'request\x20sent');logger[_0x50c7('0xc')]('SquareMessage,\x20%s,\x20%s,\x20%s',_0x273861,_0x50c7('0xd'),JSON[_0x50c7('0xe')](_0x52fcfd));if(_0x52fcfd[_0x50c7('0xf')]){if(_0x52fcfd['error'][_0x50c7('0x10')]===0x1f4){logger[_0x50c7('0xf')](_0x50c7('0xb'),_0x273861,_0x52fcfd[_0x50c7('0xf')][_0x50c7('0x11')]);return _0x545ca0(_0x52fcfd[_0x50c7('0xf')][_0x50c7('0x11')]);}logger[_0x50c7('0xf')]('SquareMessage,\x20%s,\x20%s',_0x273861,_0x52fcfd[_0x50c7('0xf')][_0x50c7('0x11')]);return _0x108272(_0x52fcfd['error'][_0x50c7('0x11')]);}else{logger[_0x50c7('0xa')](_0x50c7('0xb'),_0x273861,_0x50c7('0xd'));_0x108272(_0x52fcfd[_0x50c7('0x12')][_0x50c7('0x11')]);}})[_0x50c7('0x13')](function(_0x10972d){logger['error'](_0x50c7('0xb'),_0x273861,_0x10972d);_0x545ca0(_0x10972d);});});}exports['CreateSquareMessage']=function(_0x46f653){var _0x12c9fc=this;return new Promise(function(_0x1d4b54,_0x4bbc4e){return db[_0x50c7('0x14')][_0x50c7('0x15')](_0x46f653[_0x50c7('0x16')],{'raw':_0x46f653[_0x50c7('0x17')]?_0x46f653['options'][_0x50c7('0x18')]===undefined?!![]:![]:!![]})[_0x50c7('0x9')](function(_0x2c8db8){logger[_0x50c7('0xa')]('CreateSquareMessage',_0x46f653);logger[_0x50c7('0xc')]('CreateSquareMessage',_0x46f653,JSON[_0x50c7('0xe')](_0x2c8db8));_0x1d4b54(_0x2c8db8);})[_0x50c7('0x13')](function(_0x2f953b){logger[_0x50c7('0xf')](_0x50c7('0x19'),_0x2f953b[_0x50c7('0x11')],_0x46f653);_0x4bbc4e(_0x12c9fc[_0x50c7('0xf')](0x1f4,_0x2f953b[_0x50c7('0x11')]));});});};
\ No newline at end of file
+var _0x7c53=['../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','SquareMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','create','options','CreateSquareMessage','debug','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x119ef1,_0x17c4e5){var _0x33fcc5=function(_0x3fada2){while(--_0x3fada2){_0x119ef1['push'](_0x119ef1['shift']());}};_0x33fcc5(++_0x17c4e5);}(_0x7c53,0x1b2));var _0x37c5=function(_0xc59184,_0x5c0b42){_0xc59184=_0xc59184-0x0;var _0x55ab1c=_0x7c53[_0xc59184];return _0x55ab1c;};'use strict';var _=require(_0x37c5('0x0'));var util=require(_0x37c5('0x1'));var moment=require(_0x37c5('0x2'));var BPromise=require(_0x37c5('0x3'));var rs=require(_0x37c5('0x4'));var fs=require('fs');var Redis=require(_0x37c5('0x5'));var db=require(_0x37c5('0x6'))['db'];var utils=require(_0x37c5('0x7'));var logger=require(_0x37c5('0x8'))(_0x37c5('0x9'));var config=require(_0x37c5('0xa'));var jayson=require(_0x37c5('0xb'));var client=jayson[_0x37c5('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x552997,_0xefe79e,_0x131ffa){return new BPromise(function(_0x35833f,_0x633628){return client['request'](_0x552997,_0x131ffa)[_0x37c5('0xd')](function(_0x4ff8bf){logger[_0x37c5('0xe')](_0x37c5('0xf'),_0xefe79e,_0x37c5('0x10'));logger['debug']('SquareMessage,\x20%s,\x20%s,\x20%s',_0xefe79e,'request\x20sent',JSON[_0x37c5('0x11')](_0x4ff8bf));if(_0x4ff8bf[_0x37c5('0x12')]){if(_0x4ff8bf['error'][_0x37c5('0x13')]===0x1f4){logger['error'](_0x37c5('0xf'),_0xefe79e,_0x4ff8bf[_0x37c5('0x12')][_0x37c5('0x14')]);return _0x633628(_0x4ff8bf[_0x37c5('0x12')][_0x37c5('0x14')]);}logger['error']('SquareMessage,\x20%s,\x20%s',_0xefe79e,_0x4ff8bf[_0x37c5('0x12')]['message']);return _0x35833f(_0x4ff8bf[_0x37c5('0x12')]['message']);}else{logger[_0x37c5('0xe')]('SquareMessage,\x20%s,\x20%s',_0xefe79e,'request\x20sent');_0x35833f(_0x4ff8bf['result']['message']);}})['catch'](function(_0x2b0bd0){logger[_0x37c5('0x12')](_0x37c5('0xf'),_0xefe79e,_0x2b0bd0);_0x633628(_0x2b0bd0);});});}exports['CreateSquareMessage']=function(_0x854716){var _0x5e90e8=this;return new Promise(function(_0x54a727,_0x593a89){return db['SquareMessage'][_0x37c5('0x15')](_0x854716['body'],{'raw':_0x854716[_0x37c5('0x16')]?_0x854716[_0x37c5('0x16')]['raw']===undefined?!![]:![]:!![]})[_0x37c5('0xd')](function(_0xaaaf9f){logger[_0x37c5('0xe')](_0x37c5('0x17'),_0x854716);logger[_0x37c5('0x18')](_0x37c5('0x17'),_0x854716,JSON[_0x37c5('0x11')](_0xaaaf9f));_0x54a727(_0xaaaf9f);})[_0x37c5('0x19')](function(_0x2e1282){logger['error']('CreateSquareMessage',_0x2e1282['message'],_0x854716);_0x593a89(_0x5e90e8[_0x37c5('0x12')](0x1f4,_0x2e1282['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78c2=['create','put','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareOdbc.controller','get','isAuthenticated','index','/:id','/:id/test','15s','test','post'];(function(_0x5ba805,_0x21de19){var _0x1e2c92=function(_0x20554f){while(--_0x20554f){_0x5ba805['push'](_0x5ba805['shift']());}};_0x1e2c92(++_0x21de19);}(_0x78c2,0x1e7));var _0x278c=function(_0x52a1fd,_0x2afde8){_0x52a1fd=_0x52a1fd-0x0;var _0x485e86=_0x78c2[_0x52a1fd];return _0x485e86;};'use strict';var multer=require('multer');var util=require(_0x278c('0x0'));var path=require('path');var timeout=require(_0x278c('0x1'));var express=require(_0x278c('0x2'));var router=express[_0x278c('0x3')]();var fs_extra=require(_0x278c('0x4'));var auth=require(_0x278c('0x5'));var interaction=require(_0x278c('0x6'));var config=require(_0x278c('0x7'));var controller=require(_0x278c('0x8'));router[_0x278c('0x9')]('/',auth[_0x278c('0xa')](),controller[_0x278c('0xb')]);router['get'](_0x278c('0xc'),auth[_0x278c('0xa')](),controller['show']);router[_0x278c('0x9')](_0x278c('0xd'),auth[_0x278c('0xa')](),timeout(_0x278c('0xe')),controller[_0x278c('0xf')]);router[_0x278c('0x10')]('/',auth[_0x278c('0xa')](),controller[_0x278c('0x11')]);router[_0x278c('0x12')](_0x278c('0xc'),auth['isAuthenticated'](),controller['update']);router['delete'](_0x278c('0xc'),auth[_0x278c('0xa')](),controller[_0x278c('0x13')]);module[_0x278c('0x14')]=router;
\ No newline at end of file
+var _0x9b3f=['put','delete','exports','multer','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareOdbc.controller','get','isAuthenticated','index','/:id','show','test','post'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9b3f,0xb7));var _0xf9b3=function(_0x239ee9,_0x191bb0){_0x239ee9=_0x239ee9-0x0;var _0x305de2=_0x9b3f[_0x239ee9];return _0x305de2;};'use strict';var multer=require(_0xf9b3('0x0'));var util=require('util');var path=require(_0xf9b3('0x1'));var timeout=require(_0xf9b3('0x2'));var express=require('express');var router=express[_0xf9b3('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xf9b3('0x4'));var interaction=require(_0xf9b3('0x5'));var config=require(_0xf9b3('0x6'));var controller=require(_0xf9b3('0x7'));router[_0xf9b3('0x8')]('/',auth[_0xf9b3('0x9')](),controller[_0xf9b3('0xa')]);router['get'](_0xf9b3('0xb'),auth[_0xf9b3('0x9')](),controller[_0xf9b3('0xc')]);router[_0xf9b3('0x8')]('/:id/test',auth[_0xf9b3('0x9')](),timeout('15s'),controller[_0xf9b3('0xd')]);router[_0xf9b3('0xe')]('/',auth[_0xf9b3('0x9')](),controller['create']);router[_0xf9b3('0xf')](_0xf9b3('0xb'),auth['isAuthenticated'](),controller['update']);router[_0xf9b3('0x10')](_0xf9b3('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0xf9b3('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c2f=['name','STRING'];(function(_0x487496,_0x249683){var _0x539dc8=function(_0x2c38e1){while(--_0x2c38e1){_0x487496['push'](_0x487496['shift']());}};_0x539dc8(++_0x249683);}(_0x7c2f,0x12d));var _0xf7c2=function(_0x21d7e7,_0x3b1252){_0x21d7e7=_0x21d7e7-0x0;var _0x3a195f=_0x7c2f[_0x21d7e7];return _0x3a195f;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xf7c2('0x0')],'unique':_0xf7c2('0x1'),'allowNull':![]},'dsn':{'type':Sequelize[_0xf7c2('0x0')]},'description':{'type':Sequelize[_0xf7c2('0x0')]}};
\ No newline at end of file
+var _0x82f3=['name','STRING','sequelize','exports'];(function(_0x4fb955,_0x481977){var _0x4f9797=function(_0x44f526){while(--_0x44f526){_0x4fb955['push'](_0x4fb955['shift']());}};_0x4f9797(++_0x481977);}(_0x82f3,0x1a2));var _0x382f=function(_0x78a0dc,_0x238f80){_0x78a0dc=_0x78a0dc-0x0;var _0x4c5923=_0x82f3[_0x78a0dc];return _0x4c5923;};'use strict';var Sequelize=require(_0x382f('0x0'));module[_0x382f('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x382f('0x2'),'allowNull':![]},'dsn':{'type':Sequelize[_0x382f('0x3')]},'description':{'type':Sequelize[_0x382f('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd9c=['index','map','SquareOdbc','rawAttributes','key','keys','query','filters','intersection','model','attributes','fields','order','sort','pick','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','test','dsn','odbc','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','get','ODBC','UserProfileResource','end','name','send'];(function(_0x3f2a08,_0x4fef73){var _0x150164=function(_0x5a2dfa){while(--_0x5a2dfa){_0x3f2a08['push'](_0x3f2a08['shift']());}};_0x150164(++_0x4fef73);}(_0xdd9c,0x178));var _0xcdd9=function(_0x4de5d8,_0x1b4378){_0x4de5d8=_0x4de5d8-0x0;var _0x5bb299=_0xdd9c[_0x4de5d8];return _0x5bb299;};'use strict';var emlformat=require(_0xcdd9('0x0'));var rimraf=require(_0xcdd9('0x1'));var zipdir=require(_0xcdd9('0x2'));var jsonpatch=require(_0xcdd9('0x3'));var rp=require(_0xcdd9('0x4'));var moment=require('moment');var BPromise=require(_0xcdd9('0x5'));var Mustache=require('mustache');var util=require(_0xcdd9('0x6'));var path=require(_0xcdd9('0x7'));var sox=require('sox');var csv=require(_0xcdd9('0x8'));var ejs=require(_0xcdd9('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xcdd9('0xa'));var crypto=require(_0xcdd9('0xb'));var jsforce=require(_0xcdd9('0xc'));var deskjs=require(_0xcdd9('0xd'));var toCsv=require('to-csv');var querystring=require(_0xcdd9('0xe'));var Papa=require(_0xcdd9('0xf'));var Redis=require(_0xcdd9('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xcdd9('0x11'));var as=require(_0xcdd9('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcdd9('0x13'))(_0xcdd9('0x14'));var utils=require('../../config/utils');var config=require(_0xcdd9('0x15'));var licenseUtil=require(_0xcdd9('0x16'));var db=require(_0xcdd9('0x17'))['db'];function respondWithStatusCode(_0x49b252,_0xa8c1d5){_0xa8c1d5=_0xa8c1d5||0xcc;return function(_0x307d12){if(_0x307d12){return _0x49b252[_0xcdd9('0x18')](_0xa8c1d5);}return _0x49b252[_0xcdd9('0x19')](_0xa8c1d5)['end']();};}function respondWithResult(_0x222998,_0x5b35a5){_0x5b35a5=_0x5b35a5||0xc8;return function(_0x12b065){if(_0x12b065){return _0x222998[_0xcdd9('0x19')](_0x5b35a5)[_0xcdd9('0x1a')](_0x12b065);}};}function respondWithFilteredResult(_0x29dbbc,_0x595267){return function(_0x1299a7){if(_0x1299a7){var _0x392abd=typeof _0x595267[_0xcdd9('0x1b')]==='undefined'&&typeof _0x595267['limit']===_0xcdd9('0x1c');var _0xa4d288=_0x1299a7[_0xcdd9('0x1d')];var _0x4773d9=_0x392abd?0x0:_0x595267[_0xcdd9('0x1b')];var _0x134fea=_0x392abd?_0x1299a7[_0xcdd9('0x1d')]:_0x595267[_0xcdd9('0x1b')]+_0x595267[_0xcdd9('0x1e')];var _0x55c26f;if(_0x134fea>=_0xa4d288){_0x134fea=_0xa4d288;_0x55c26f=0xc8;}else{_0x55c26f=0xce;}_0x29dbbc[_0xcdd9('0x19')](_0x55c26f);return _0x29dbbc[_0xcdd9('0x1f')](_0xcdd9('0x20'),_0x4773d9+'-'+_0x134fea+'/'+_0xa4d288)[_0xcdd9('0x1a')](_0x1299a7);}return null;};}function patchUpdates(_0x166296){return function(_0x42a5e1){try{jsonpatch[_0xcdd9('0x21')](_0x42a5e1,_0x166296,!![]);}catch(_0x3ca4b6){return BPromise[_0xcdd9('0x22')](_0x3ca4b6);}return _0x42a5e1['save']();};}function saveUpdates(_0x1b25af,_0x23f577){return function(_0x8a76e5){if(_0x8a76e5){return _0x8a76e5[_0xcdd9('0x23')](_0x1b25af)[_0xcdd9('0x24')](function(_0x3f0ad4){return _0x3f0ad4;});}return null;};}function removeEntity(_0x37254f,_0x4e251b){return function(_0xbd6f2f){if(_0xbd6f2f){return _0xbd6f2f[_0xcdd9('0x25')]()[_0xcdd9('0x24')](function(){var _0x5e2800=_0xbd6f2f[_0xcdd9('0x26')]({'plain':!![]});var _0x2a302e=_0xcdd9('0x27');return db[_0xcdd9('0x28')][_0xcdd9('0x25')]({'where':{'type':_0x2a302e,'resourceId':_0x5e2800['id']}})[_0xcdd9('0x24')](function(){return _0xbd6f2f;});})['then'](function(){_0x37254f['status'](0xcc)[_0xcdd9('0x29')]();});}};}function handleEntityNotFound(_0x16bee1,_0x2efb9d){return function(_0x175f22){if(!_0x175f22){_0x16bee1[_0xcdd9('0x18')](0x194);}return _0x175f22;};}function handleError(_0x2b314a,_0x279733){_0x279733=_0x279733||0x1f4;return function(_0x2c553b){logger['error'](_0x2c553b['stack']);if(_0x2c553b[_0xcdd9('0x2a')]){delete _0x2c553b[_0xcdd9('0x2a')];}_0x2b314a[_0xcdd9('0x19')](_0x279733)[_0xcdd9('0x2b')](_0x2c553b);};}exports[_0xcdd9('0x2c')]=function(_0x5e976f,_0x407b37){var _0x10926b={},_0x327838={},_0x1b5d94={'count':0x0,'rows':[]};var _0x190ad8=_[_0xcdd9('0x2d')](db[_0xcdd9('0x2e')][_0xcdd9('0x2f')],function(_0x18e58d){return{'name':_0x18e58d['fieldName'],'type':_0x18e58d['type'][_0xcdd9('0x30')]};});_0x327838['model']=_['map'](_0x190ad8,_0xcdd9('0x2a'));_0x327838['query']=_[_0xcdd9('0x31')](_0x5e976f[_0xcdd9('0x32')]);_0x327838[_0xcdd9('0x33')]=_[_0xcdd9('0x34')](_0x327838[_0xcdd9('0x35')],_0x327838[_0xcdd9('0x32')]);_0x10926b[_0xcdd9('0x36')]=_['intersection'](_0x327838[_0xcdd9('0x35')],qs[_0xcdd9('0x37')](_0x5e976f['query'][_0xcdd9('0x37')]));_0x10926b[_0xcdd9('0x36')]=_0x10926b['attributes']['length']?_0x10926b[_0xcdd9('0x36')]:_0x327838[_0xcdd9('0x35')];if(!_0x5e976f[_0xcdd9('0x32')]['hasOwnProperty']('nolimit')){_0x10926b['limit']=qs[_0xcdd9('0x1e')](_0x5e976f[_0xcdd9('0x32')]['limit']);_0x10926b['offset']=qs[_0xcdd9('0x1b')](_0x5e976f[_0xcdd9('0x32')][_0xcdd9('0x1b')]);}_0x10926b[_0xcdd9('0x38')]=qs[_0xcdd9('0x39')](_0x5e976f['query'][_0xcdd9('0x39')]);_0x10926b['where']=qs['filters'](_[_0xcdd9('0x3a')](_0x5e976f[_0xcdd9('0x32')],_0x327838['filters']),_0x190ad8);if(_0x5e976f[_0xcdd9('0x32')]['filter']){_0x10926b[_0xcdd9('0x3b')]=_[_0xcdd9('0x3c')](_0x10926b[_0xcdd9('0x3b')],{'$or':_[_0xcdd9('0x2d')](_0x190ad8,function(_0x208726){if(_0x208726[_0xcdd9('0x3d')]!==_0xcdd9('0x3e')){var _0x479442={};_0x479442[_0x208726[_0xcdd9('0x2a')]]={'$like':'%'+_0x5e976f['query']['filter']+'%'};return _0x479442;}})});}_0x10926b=_[_0xcdd9('0x3c')]({},_0x10926b,_0x5e976f[_0xcdd9('0x3f')]);var _0x1b2443={'where':_0x10926b['where']};return db['SquareOdbc']['count'](_0x1b2443)['then'](function(_0x4e392e){_0x1b5d94['count']=_0x4e392e;if(_0x5e976f['query'][_0xcdd9('0x40')]){_0x10926b[_0xcdd9('0x41')]=[{'all':!![]}];}return db[_0xcdd9('0x2e')][_0xcdd9('0x42')](_0x10926b);})['then'](function(_0x40c8f4){_0x1b5d94[_0xcdd9('0x43')]=_0x40c8f4;return _0x1b5d94;})[_0xcdd9('0x24')](respondWithFilteredResult(_0x407b37,_0x10926b))['catch'](handleError(_0x407b37,null));};exports[_0xcdd9('0x44')]=function(_0x3cf066,_0x4aa2b7){var _0x6fcc54={'raw':!![],'where':{'id':_0x3cf066['params']['id']}},_0x5b9973={};_0x5b9973[_0xcdd9('0x35')]=_[_0xcdd9('0x31')](db[_0xcdd9('0x2e')][_0xcdd9('0x2f')]);_0x5b9973['query']=_[_0xcdd9('0x31')](_0x3cf066[_0xcdd9('0x32')]);_0x5b9973[_0xcdd9('0x33')]=_[_0xcdd9('0x34')](_0x5b9973[_0xcdd9('0x35')],_0x5b9973[_0xcdd9('0x32')]);_0x6fcc54['attributes']=_[_0xcdd9('0x34')](_0x5b9973['model'],qs[_0xcdd9('0x37')](_0x3cf066[_0xcdd9('0x32')]['fields']));_0x6fcc54[_0xcdd9('0x36')]=_0x6fcc54['attributes']['length']?_0x6fcc54['attributes']:_0x5b9973[_0xcdd9('0x35')];if(_0x3cf066[_0xcdd9('0x32')][_0xcdd9('0x40')]){_0x6fcc54[_0xcdd9('0x41')]=[{'all':!![]}];}_0x6fcc54=_[_0xcdd9('0x3c')]({},_0x6fcc54,_0x3cf066[_0xcdd9('0x3f')]);return db[_0xcdd9('0x2e')]['find'](_0x6fcc54)[_0xcdd9('0x24')](handleEntityNotFound(_0x4aa2b7,null))[_0xcdd9('0x24')](respondWithResult(_0x4aa2b7,null))[_0xcdd9('0x45')](handleError(_0x4aa2b7,null));};exports[_0xcdd9('0x46')]=function(_0x44a4ef,_0x597dd9){return db[_0xcdd9('0x2e')]['create'](_0x44a4ef[_0xcdd9('0x47')],{})[_0xcdd9('0x24')](function(_0x12e24a){var _0x148dd8=_0x44a4ef[_0xcdd9('0x48')][_0xcdd9('0x26')]({'plain':!![]});if(!_0x148dd8)throw new Error(_0xcdd9('0x49'));if(_0x148dd8[_0xcdd9('0x4a')]===_0xcdd9('0x48')){var _0x122597=_0x12e24a[_0xcdd9('0x26')]({'plain':!![]});var _0x502b56=_0xcdd9('0x27');return db[_0xcdd9('0x4b')][_0xcdd9('0x4c')]({'where':{'name':_0x502b56,'userProfileId':_0x148dd8[_0xcdd9('0x4d')]},'raw':!![]})['then'](function(_0x358b5a){if(_0x358b5a&&_0x358b5a['autoAssociation']===0x0){return db[_0xcdd9('0x28')][_0xcdd9('0x46')]({'name':_0x122597[_0xcdd9('0x2a')],'resourceId':_0x122597['id'],'type':_0x358b5a[_0xcdd9('0x2a')],'sectionId':_0x358b5a['id']},{})['then'](function(){return _0x12e24a;});}else{return _0x12e24a;}})[_0xcdd9('0x45')](function(_0x5113b2){logger[_0xcdd9('0x4e')](_0xcdd9('0x4f'),_0x5113b2);throw _0x5113b2;});}return _0x12e24a;})[_0xcdd9('0x24')](respondWithResult(_0x597dd9,0xc9))[_0xcdd9('0x45')](handleError(_0x597dd9,null));};exports[_0xcdd9('0x23')]=function(_0x184694,_0x326fed){if(_0x184694['body']['id']){delete _0x184694[_0xcdd9('0x47')]['id'];}return db[_0xcdd9('0x2e')][_0xcdd9('0x4c')]({'where':{'id':_0x184694[_0xcdd9('0x50')]['id']}})['then'](handleEntityNotFound(_0x326fed,null))[_0xcdd9('0x24')](saveUpdates(_0x184694[_0xcdd9('0x47')],null))[_0xcdd9('0x24')](respondWithResult(_0x326fed,null))[_0xcdd9('0x45')](handleError(_0x326fed,null));};exports[_0xcdd9('0x25')]=function(_0x376b49,_0x2ac890){return db[_0xcdd9('0x2e')][_0xcdd9('0x4c')]({'where':{'id':_0x376b49[_0xcdd9('0x50')]['id']}})[_0xcdd9('0x24')](handleEntityNotFound(_0x2ac890,null))[_0xcdd9('0x24')](removeEntity(_0x2ac890,null))['catch'](handleError(_0x2ac890,null));};exports[_0xcdd9('0x51')]=function(_0x149578,_0x3aef41,_0x270c74){var _0x570d24;return db[_0xcdd9('0x2e')][_0xcdd9('0x4c')]({'where':{'id':_0x149578[_0xcdd9('0x50')]['id']},'attributes':['id',_0xcdd9('0x52')]})[_0xcdd9('0x24')](handleEntityNotFound(_0x3aef41,null))[_0xcdd9('0x24')](function(_0x6e45d0){if(_0x6e45d0){var _0x1020f1=require(_0xcdd9('0x53'))();_0x1020f1['openSync'](_0x6e45d0[_0xcdd9('0x52')]);_0x1020f1['closeSync']();return _0x6e45d0;}})['then'](respondWithResult(_0x3aef41,null))[_0xcdd9('0x45')](handleError(_0x3aef41,null));};
\ No newline at end of file
+var _0xdc1e=['SquareOdbc','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','include','findAll','params','includeAll','merge','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','dsn','openSync','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','reject','save','update','then','destroy','ODBC','UserProfileResource','error','stack','name','index','map'];(function(_0x1727ab,_0x14e5f4){var _0x3c9fe2=function(_0x3b44b9){while(--_0x3b44b9){_0x1727ab['push'](_0x1727ab['shift']());}};_0x3c9fe2(++_0x14e5f4);}(_0xdc1e,0xca));var _0xedc1=function(_0x5b85aa,_0x499e56){_0x5b85aa=_0x5b85aa-0x0;var _0x27d3a5=_0xdc1e[_0x5b85aa];return _0x27d3a5;};'use strict';var emlformat=require(_0xedc1('0x0'));var rimraf=require(_0xedc1('0x1'));var zipdir=require(_0xedc1('0x2'));var jsonpatch=require(_0xedc1('0x3'));var rp=require(_0xedc1('0x4'));var moment=require('moment');var BPromise=require(_0xedc1('0x5'));var Mustache=require('mustache');var util=require(_0xedc1('0x6'));var path=require(_0xedc1('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xedc1('0x8'));var fs=require('fs');var fs_extra=require(_0xedc1('0x9'));var _=require(_0xedc1('0xa'));var squel=require('squel');var crypto=require(_0xedc1('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xedc1('0xc'));var toCsv=require('to-csv');var querystring=require(_0xedc1('0xd'));var Papa=require(_0xedc1('0xe'));var Redis=require(_0xedc1('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xedc1('0x10'));var as=require(_0xedc1('0x11'));var hardwareService=require(_0xedc1('0x12'));var logger=require(_0xedc1('0x13'))(_0xedc1('0x14'));var utils=require(_0xedc1('0x15'));var config=require(_0xedc1('0x16'));var licenseUtil=require(_0xedc1('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4fa13e,_0x59acfb){_0x59acfb=_0x59acfb||0xcc;return function(_0x1e0968){if(_0x1e0968){return _0x4fa13e[_0xedc1('0x18')](_0x59acfb);}return _0x4fa13e[_0xedc1('0x19')](_0x59acfb)[_0xedc1('0x1a')]();};}function respondWithResult(_0x535983,_0x44b3c9){_0x44b3c9=_0x44b3c9||0xc8;return function(_0xb1633){if(_0xb1633){return _0x535983[_0xedc1('0x19')](_0x44b3c9)[_0xedc1('0x1b')](_0xb1633);}};}function respondWithFilteredResult(_0x398d18,_0x325f35){return function(_0x919393){if(_0x919393){var _0xc0db1=typeof _0x325f35[_0xedc1('0x1c')]===_0xedc1('0x1d')&&typeof _0x325f35[_0xedc1('0x1e')]==='undefined';var _0x4fb711=_0x919393[_0xedc1('0x1f')];var _0x453953=_0xc0db1?0x0:_0x325f35['offset'];var _0x31c8cf=_0xc0db1?_0x919393[_0xedc1('0x1f')]:_0x325f35[_0xedc1('0x1c')]+_0x325f35[_0xedc1('0x1e')];var _0x36fdea;if(_0x31c8cf>=_0x4fb711){_0x31c8cf=_0x4fb711;_0x36fdea=0xc8;}else{_0x36fdea=0xce;}_0x398d18['status'](_0x36fdea);return _0x398d18['set']('Content-Range',_0x453953+'-'+_0x31c8cf+'/'+_0x4fb711)[_0xedc1('0x1b')](_0x919393);}return null;};}function patchUpdates(_0x45405e){return function(_0x11d70d){try{jsonpatch['apply'](_0x11d70d,_0x45405e,!![]);}catch(_0x4a80d1){return BPromise[_0xedc1('0x20')](_0x4a80d1);}return _0x11d70d[_0xedc1('0x21')]();};}function saveUpdates(_0x25c57c,_0x9d2ea2){return function(_0x49d43d){if(_0x49d43d){return _0x49d43d[_0xedc1('0x22')](_0x25c57c)[_0xedc1('0x23')](function(_0x4d4e87){return _0x4d4e87;});}return null;};}function removeEntity(_0xbeefd8,_0x43c708){return function(_0x1df06f){if(_0x1df06f){return _0x1df06f[_0xedc1('0x24')]()[_0xedc1('0x23')](function(){var _0x1c8d48=_0x1df06f['get']({'plain':!![]});var _0x11f303=_0xedc1('0x25');return db[_0xedc1('0x26')][_0xedc1('0x24')]({'where':{'type':_0x11f303,'resourceId':_0x1c8d48['id']}})['then'](function(){return _0x1df06f;});})['then'](function(){_0xbeefd8[_0xedc1('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x792b9c,_0x1140b1){return function(_0xf63ea4){if(!_0xf63ea4){_0x792b9c[_0xedc1('0x18')](0x194);}return _0xf63ea4;};}function handleError(_0x163126,_0x4b290a){_0x4b290a=_0x4b290a||0x1f4;return function(_0x57082b){logger[_0xedc1('0x27')](_0x57082b[_0xedc1('0x28')]);if(_0x57082b[_0xedc1('0x29')]){delete _0x57082b[_0xedc1('0x29')];}_0x163126[_0xedc1('0x19')](_0x4b290a)['send'](_0x57082b);};}exports[_0xedc1('0x2a')]=function(_0x3a01e9,_0x1d9abc){var _0x3ce451={},_0x1dff62={},_0x27658e={'count':0x0,'rows':[]};var _0x27d5fd=_[_0xedc1('0x2b')](db[_0xedc1('0x2c')][_0xedc1('0x2d')],function(_0x40b5f7){return{'name':_0x40b5f7[_0xedc1('0x2e')],'type':_0x40b5f7[_0xedc1('0x2f')]['key']};});_0x1dff62[_0xedc1('0x30')]=_[_0xedc1('0x2b')](_0x27d5fd,_0xedc1('0x29'));_0x1dff62[_0xedc1('0x31')]=_[_0xedc1('0x32')](_0x3a01e9[_0xedc1('0x31')]);_0x1dff62[_0xedc1('0x33')]=_['intersection'](_0x1dff62['model'],_0x1dff62[_0xedc1('0x31')]);_0x3ce451['attributes']=_[_0xedc1('0x34')](_0x1dff62[_0xedc1('0x30')],qs[_0xedc1('0x35')](_0x3a01e9[_0xedc1('0x31')][_0xedc1('0x35')]));_0x3ce451[_0xedc1('0x36')]=_0x3ce451[_0xedc1('0x36')][_0xedc1('0x37')]?_0x3ce451[_0xedc1('0x36')]:_0x1dff62['model'];if(!_0x3a01e9[_0xedc1('0x31')][_0xedc1('0x38')](_0xedc1('0x39'))){_0x3ce451[_0xedc1('0x1e')]=qs[_0xedc1('0x1e')](_0x3a01e9[_0xedc1('0x31')]['limit']);_0x3ce451[_0xedc1('0x1c')]=qs[_0xedc1('0x1c')](_0x3a01e9[_0xedc1('0x31')][_0xedc1('0x1c')]);}_0x3ce451[_0xedc1('0x3a')]=qs[_0xedc1('0x3b')](_0x3a01e9[_0xedc1('0x31')][_0xedc1('0x3b')]);_0x3ce451['where']=qs[_0xedc1('0x33')](_[_0xedc1('0x3c')](_0x3a01e9['query'],_0x1dff62['filters']),_0x27d5fd);if(_0x3a01e9[_0xedc1('0x31')][_0xedc1('0x3d')]){_0x3ce451[_0xedc1('0x3e')]=_['merge'](_0x3ce451[_0xedc1('0x3e')],{'$or':_[_0xedc1('0x2b')](_0x27d5fd,function(_0x4d2781){if(_0x4d2781[_0xedc1('0x2f')]!=='VIRTUAL'){var _0x4f7648={};_0x4f7648[_0x4d2781[_0xedc1('0x29')]]={'$like':'%'+_0x3a01e9[_0xedc1('0x31')][_0xedc1('0x3d')]+'%'};return _0x4f7648;}})});}_0x3ce451=_['merge']({},_0x3ce451,_0x3a01e9['options']);var _0x414db6={'where':_0x3ce451['where']};return db[_0xedc1('0x2c')][_0xedc1('0x1f')](_0x414db6)['then'](function(_0x541150){_0x27658e['count']=_0x541150;if(_0x3a01e9['query']['includeAll']){_0x3ce451[_0xedc1('0x3f')]=[{'all':!![]}];}return db[_0xedc1('0x2c')][_0xedc1('0x40')](_0x3ce451);})[_0xedc1('0x23')](function(_0x30481a){_0x27658e['rows']=_0x30481a;return _0x27658e;})['then'](respondWithFilteredResult(_0x1d9abc,_0x3ce451))['catch'](handleError(_0x1d9abc,null));};exports['show']=function(_0x27e674,_0x53c1cd){var _0x4c90ec={'raw':!![],'where':{'id':_0x27e674[_0xedc1('0x41')]['id']}},_0x328dd7={};_0x328dd7['model']=_[_0xedc1('0x32')](db[_0xedc1('0x2c')][_0xedc1('0x2d')]);_0x328dd7[_0xedc1('0x31')]=_['keys'](_0x27e674[_0xedc1('0x31')]);_0x328dd7[_0xedc1('0x33')]=_[_0xedc1('0x34')](_0x328dd7[_0xedc1('0x30')],_0x328dd7[_0xedc1('0x31')]);_0x4c90ec[_0xedc1('0x36')]=_[_0xedc1('0x34')](_0x328dd7[_0xedc1('0x30')],qs[_0xedc1('0x35')](_0x27e674[_0xedc1('0x31')][_0xedc1('0x35')]));_0x4c90ec[_0xedc1('0x36')]=_0x4c90ec['attributes']['length']?_0x4c90ec[_0xedc1('0x36')]:_0x328dd7[_0xedc1('0x30')];if(_0x27e674[_0xedc1('0x31')][_0xedc1('0x42')]){_0x4c90ec['include']=[{'all':!![]}];}_0x4c90ec=_[_0xedc1('0x43')]({},_0x4c90ec,_0x27e674['options']);return db[_0xedc1('0x2c')][_0xedc1('0x44')](_0x4c90ec)[_0xedc1('0x23')](handleEntityNotFound(_0x53c1cd,null))['then'](respondWithResult(_0x53c1cd,null))[_0xedc1('0x45')](handleError(_0x53c1cd,null));};exports[_0xedc1('0x46')]=function(_0x5ea472,_0x4821ce){return db[_0xedc1('0x2c')][_0xedc1('0x46')](_0x5ea472[_0xedc1('0x47')],{})['then'](function(_0x381ede){var _0x21e9b7=_0x5ea472[_0xedc1('0x48')][_0xedc1('0x49')]({'plain':!![]});if(!_0x21e9b7)throw new Error(_0xedc1('0x4a'));if(_0x21e9b7[_0xedc1('0x4b')]==='user'){var _0x3d1b77=_0x381ede[_0xedc1('0x49')]({'plain':!![]});var _0xd1ab20=_0xedc1('0x25');return db[_0xedc1('0x4c')]['find']({'where':{'name':_0xd1ab20,'userProfileId':_0x21e9b7[_0xedc1('0x4d')]},'raw':!![]})[_0xedc1('0x23')](function(_0x1c639e){if(_0x1c639e&&_0x1c639e['autoAssociation']===0x0){return db[_0xedc1('0x26')][_0xedc1('0x46')]({'name':_0x3d1b77[_0xedc1('0x29')],'resourceId':_0x3d1b77['id'],'type':_0x1c639e[_0xedc1('0x29')],'sectionId':_0x1c639e['id']},{})['then'](function(){return _0x381ede;});}else{return _0x381ede;}})[_0xedc1('0x45')](function(_0x4941e6){logger[_0xedc1('0x27')](_0xedc1('0x4e'),_0x4941e6);throw _0x4941e6;});}return _0x381ede;})[_0xedc1('0x23')](respondWithResult(_0x4821ce,0xc9))[_0xedc1('0x45')](handleError(_0x4821ce,null));};exports[_0xedc1('0x22')]=function(_0x13c830,_0x280902){if(_0x13c830[_0xedc1('0x47')]['id']){delete _0x13c830[_0xedc1('0x47')]['id'];}return db[_0xedc1('0x2c')]['find']({'where':{'id':_0x13c830['params']['id']}})['then'](handleEntityNotFound(_0x280902,null))[_0xedc1('0x23')](saveUpdates(_0x13c830[_0xedc1('0x47')],null))[_0xedc1('0x23')](respondWithResult(_0x280902,null))[_0xedc1('0x45')](handleError(_0x280902,null));};exports[_0xedc1('0x24')]=function(_0x171244,_0x49ce2f){return db[_0xedc1('0x2c')][_0xedc1('0x44')]({'where':{'id':_0x171244[_0xedc1('0x41')]['id']}})[_0xedc1('0x23')](handleEntityNotFound(_0x49ce2f,null))['then'](removeEntity(_0x49ce2f,null))['catch'](handleError(_0x49ce2f,null));};exports['test']=function(_0x26005e,_0x1c517a,_0x2ef0cd){var _0x45746b;return db[_0xedc1('0x2c')][_0xedc1('0x44')]({'where':{'id':_0x26005e['params']['id']},'attributes':['id',_0xedc1('0x4f')]})['then'](handleEntityNotFound(_0x1c517a,null))[_0xedc1('0x23')](function(_0x33062a){if(_0x33062a){var _0x3e07cb=require('odbc')();_0x3e07cb[_0xedc1('0x50')](_0x33062a['dsn']);_0x3e07cb[_0xedc1('0x51')]();return _0x33062a;}})[_0xedc1('0x23')](respondWithResult(_0x1c517a,null))['catch'](handleError(_0x1c517a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4385=['../../config/environment','./squareOdbc.attributes','exports','define','../../config/logger','api','bluebird','request-promise','path','rimraf'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x4385,0x144));var _0x5438=function(_0x1e717a,_0x2b8071){_0x1e717a=_0x1e717a-0x0;var _0x345dec=_0x4385[_0x1e717a];return _0x345dec;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5438('0x0'))(_0x5438('0x1'));var moment=require('moment');var BPromise=require(_0x5438('0x2'));var rp=require(_0x5438('0x3'));var fs=require('fs');var path=require(_0x5438('0x4'));var rimraf=require(_0x5438('0x5'));var config=require(_0x5438('0x6'));var attributes=require(_0x5438('0x7'));module[_0x5438('0x8')]=function(_0x5d998e,_0x1f4353){return _0x5d998e[_0x5438('0x9')]('SquareOdbc',attributes,{'tableName':'square_odbc','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x934c=['bluebird','request-promise','path','../../config/environment','./squareOdbc.attributes','exports','define','SquareOdbc','lodash','util','../../config/logger','api'];(function(_0x5989c3,_0x5c275d){var _0x43feae=function(_0x55b08b){while(--_0x55b08b){_0x5989c3['push'](_0x5989c3['shift']());}};_0x43feae(++_0x5c275d);}(_0x934c,0x164));var _0xc934=function(_0x4bbce3,_0x4b56ef){_0x4bbce3=_0x4bbce3-0x0;var _0x50d33b=_0x934c[_0x4bbce3];return _0x50d33b;};'use strict';var _=require(_0xc934('0x0'));var util=require(_0xc934('0x1'));var logger=require(_0xc934('0x2'))(_0xc934('0x3'));var moment=require('moment');var BPromise=require(_0xc934('0x4'));var rp=require(_0xc934('0x5'));var fs=require('fs');var path=require(_0xc934('0x6'));var rimraf=require('rimraf');var config=require(_0xc934('0x7'));var attributes=require(_0xc934('0x8'));module[_0xc934('0x9')]=function(_0x437573,_0x11136e){return _0x437573[_0xc934('0xa')](_0xc934('0xb'),attributes,{'tableName':'square_odbc','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a04=['util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareOdbc,\x20%s,\x20%s','request\x20sent','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowSquareOdbc','find','options','raw','where','attributes','map','include','model','debug','lodash'];(function(_0x22c397,_0xea9cec){var _0x1cc9f6=function(_0x29c764){while(--_0x29c764){_0x22c397['push'](_0x22c397['shift']());}};_0x1cc9f6(++_0xea9cec);}(_0x1a04,0x131));var _0x41a0=function(_0x37e2f5,_0x54e1b0){_0x37e2f5=_0x37e2f5-0x0;var _0x505c8a=_0x1a04[_0x37e2f5];return _0x505c8a;};'use strict';var _=require(_0x41a0('0x0'));var util=require(_0x41a0('0x1'));var moment=require(_0x41a0('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x41a0('0x3'));var db=require(_0x41a0('0x4'))['db'];var utils=require(_0x41a0('0x5'));var logger=require(_0x41a0('0x6'))(_0x41a0('0x7'));var config=require(_0x41a0('0x8'));var jayson=require(_0x41a0('0x9'));var client=jayson[_0x41a0('0xa')][_0x41a0('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5153f8,_0x2c4df3,_0x532e7e){return new BPromise(function(_0x568b49,_0x384bb6){return client[_0x41a0('0xc')](_0x5153f8,_0x532e7e)[_0x41a0('0xd')](function(_0x35fdec){logger[_0x41a0('0xe')](_0x41a0('0xf'),_0x2c4df3,_0x41a0('0x10'));logger['debug'](_0x41a0('0x11'),_0x2c4df3,_0x41a0('0x10'),JSON[_0x41a0('0x12')](_0x35fdec));if(_0x35fdec[_0x41a0('0x13')]){if(_0x35fdec[_0x41a0('0x13')][_0x41a0('0x14')]===0x1f4){logger[_0x41a0('0x13')](_0x41a0('0xf'),_0x2c4df3,_0x35fdec['error'][_0x41a0('0x15')]);return _0x384bb6(_0x35fdec[_0x41a0('0x13')]['message']);}logger['error']('SquareOdbc,\x20%s,\x20%s',_0x2c4df3,_0x35fdec[_0x41a0('0x13')]['message']);return _0x568b49(_0x35fdec[_0x41a0('0x13')][_0x41a0('0x15')]);}else{logger['info'](_0x41a0('0xf'),_0x2c4df3,'request\x20sent');_0x568b49(_0x35fdec[_0x41a0('0x16')]['message']);}})[_0x41a0('0x17')](function(_0x3c4539){logger['error'](_0x41a0('0xf'),_0x2c4df3,_0x3c4539);_0x384bb6(_0x3c4539);});});}exports[_0x41a0('0x18')]=function(_0x33c80c){var _0x245a59=this;return new Promise(function(_0x2aca5b,_0x306a3f){return db['SquareOdbc'][_0x41a0('0x19')]({'raw':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c[_0x41a0('0x1a')][_0x41a0('0x1b')]===undefined?!![]:![]:!![],'where':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c[_0x41a0('0x1a')][_0x41a0('0x1c')]||null:null,'attributes':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c['options'][_0x41a0('0x1d')]||null:null,'include':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c[_0x41a0('0x1a')]['include']?_[_0x41a0('0x1e')](_0x33c80c[_0x41a0('0x1a')][_0x41a0('0x1f')],function(_0x5793a3){return{'model':db[_0x5793a3[_0x41a0('0x20')]],'as':_0x5793a3['as'],'attributes':_0x5793a3[_0x41a0('0x1d')],'include':_0x5793a3['include']?_['map'](_0x5793a3['include'],function(_0x77dc7){return{'model':db[_0x77dc7[_0x41a0('0x20')]],'as':_0x77dc7['as'],'attributes':_0x77dc7[_0x41a0('0x1d')],'include':_0x77dc7[_0x41a0('0x1f')]?_['map'](_0x77dc7[_0x41a0('0x1f')],function(_0xfbe46d){return{'model':db[_0xfbe46d[_0x41a0('0x20')]],'as':_0xfbe46d['as'],'attributes':_0xfbe46d['attributes']};}):[]};}):[]};}):[]:[]})[_0x41a0('0xd')](function(_0x5b5bce){logger[_0x41a0('0xe')](_0x41a0('0x18'),_0x33c80c);logger[_0x41a0('0x21')](_0x41a0('0x18'),_0x33c80c,JSON[_0x41a0('0x12')](_0x5b5bce));_0x2aca5b(_0x5b5bce);})[_0x41a0('0x17')](function(_0x56c66c){logger[_0x41a0('0x13')]('ShowSquareOdbc',_0x56c66c[_0x41a0('0x15')],_0x33c80c);_0x306a3f(_0x245a59[_0x41a0('0x13')](0x1f4,_0x56c66c[_0x41a0('0x15')]));});});};
\ No newline at end of file
+var _0x7a53=['include','map','model','ShowSquareOdbc','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','SquareOdbc,\x20%s,\x20%s','request\x20sent','debug','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','SquareOdbc','options','where','attributes'];(function(_0x4f3db1,_0x293f01){var _0x49bb00=function(_0x28cea2){while(--_0x28cea2){_0x4f3db1['push'](_0x4f3db1['shift']());}};_0x49bb00(++_0x293f01);}(_0x7a53,0x14e));var _0x37a5=function(_0x4c353d,_0xae8f0a){_0x4c353d=_0x4c353d-0x0;var _0x583732=_0x7a53[_0x4c353d];return _0x583732;};'use strict';var _=require(_0x37a5('0x0'));var util=require(_0x37a5('0x1'));var moment=require(_0x37a5('0x2'));var BPromise=require(_0x37a5('0x3'));var rs=require(_0x37a5('0x4'));var fs=require('fs');var Redis=require(_0x37a5('0x5'));var db=require(_0x37a5('0x6'))['db'];var utils=require(_0x37a5('0x7'));var logger=require(_0x37a5('0x8'))(_0x37a5('0x9'));var config=require(_0x37a5('0xa'));var jayson=require(_0x37a5('0xb'));var client=jayson[_0x37a5('0xc')][_0x37a5('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x627e01,_0x3452c6,_0x3895c8){return new BPromise(function(_0x12cc62,_0x1d8e89){return client['request'](_0x627e01,_0x3895c8)[_0x37a5('0xe')](function(_0x52bbdc){logger[_0x37a5('0xf')](_0x37a5('0x10'),_0x3452c6,_0x37a5('0x11'));logger[_0x37a5('0x12')](_0x37a5('0x13'),_0x3452c6,_0x37a5('0x11'),JSON[_0x37a5('0x14')](_0x52bbdc));if(_0x52bbdc['error']){if(_0x52bbdc[_0x37a5('0x15')][_0x37a5('0x16')]===0x1f4){logger[_0x37a5('0x15')](_0x37a5('0x10'),_0x3452c6,_0x52bbdc[_0x37a5('0x15')][_0x37a5('0x17')]);return _0x1d8e89(_0x52bbdc[_0x37a5('0x15')][_0x37a5('0x17')]);}logger[_0x37a5('0x15')](_0x37a5('0x10'),_0x3452c6,_0x52bbdc[_0x37a5('0x15')][_0x37a5('0x17')]);return _0x12cc62(_0x52bbdc[_0x37a5('0x15')]['message']);}else{logger[_0x37a5('0xf')]('SquareOdbc,\x20%s,\x20%s',_0x3452c6,_0x37a5('0x11'));_0x12cc62(_0x52bbdc['result'][_0x37a5('0x17')]);}})[_0x37a5('0x18')](function(_0x593fe3){logger[_0x37a5('0x15')](_0x37a5('0x10'),_0x3452c6,_0x593fe3);_0x1d8e89(_0x593fe3);});});}exports['ShowSquareOdbc']=function(_0x4bd2af){var _0x205bec=this;return new Promise(function(_0x34202c,_0x3897cd){return db[_0x37a5('0x19')]['find']({'raw':_0x4bd2af['options']?_0x4bd2af[_0x37a5('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x4bd2af[_0x37a5('0x1a')]?_0x4bd2af[_0x37a5('0x1a')][_0x37a5('0x1b')]||null:null,'attributes':_0x4bd2af[_0x37a5('0x1a')]?_0x4bd2af[_0x37a5('0x1a')][_0x37a5('0x1c')]||null:null,'include':_0x4bd2af[_0x37a5('0x1a')]?_0x4bd2af[_0x37a5('0x1a')][_0x37a5('0x1d')]?_[_0x37a5('0x1e')](_0x4bd2af[_0x37a5('0x1a')]['include'],function(_0x5ad892){return{'model':db[_0x5ad892['model']],'as':_0x5ad892['as'],'attributes':_0x5ad892[_0x37a5('0x1c')],'include':_0x5ad892[_0x37a5('0x1d')]?_['map'](_0x5ad892[_0x37a5('0x1d')],function(_0x167880){return{'model':db[_0x167880['model']],'as':_0x167880['as'],'attributes':_0x167880[_0x37a5('0x1c')],'include':_0x167880['include']?_['map'](_0x167880[_0x37a5('0x1d')],function(_0x13536a){return{'model':db[_0x13536a[_0x37a5('0x1f')]],'as':_0x13536a['as'],'attributes':_0x13536a[_0x37a5('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x37a5('0xe')](function(_0x187b44){logger[_0x37a5('0xf')](_0x37a5('0x20'),_0x4bd2af);logger[_0x37a5('0x12')](_0x37a5('0x20'),_0x4bd2af,JSON['stringify'](_0x187b44));_0x34202c(_0x187b44);})[_0x37a5('0x18')](function(_0x16ea6c){logger['error']('ShowSquareOdbc',_0x16ea6c[_0x37a5('0x17')],_0x4bd2af);_0x3897cd(_0x205bec['error'](0x1f4,_0x16ea6c[_0x37a5('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b06=['delete','destroy','removeUsers','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareProject.controller','get','index','isAuthenticated','show','/:id/users','getUsers','post','create','addUsers','update'];(function(_0x336903,_0x1bfbc6){var _0x5e5bc9=function(_0x29a2ef){while(--_0x29a2ef){_0x336903['push'](_0x336903['shift']());}};_0x5e5bc9(++_0x1bfbc6);}(_0x6b06,0x1e4));var _0x66b0=function(_0x401205,_0x6604b){_0x401205=_0x401205-0x0;var _0xb2c28e=_0x6b06[_0x401205];return _0xb2c28e;};'use strict';var multer=require(_0x66b0('0x0'));var util=require(_0x66b0('0x1'));var path=require(_0x66b0('0x2'));var timeout=require('connect-timeout');var express=require(_0x66b0('0x3'));var router=express[_0x66b0('0x4')]();var fs_extra=require(_0x66b0('0x5'));var auth=require(_0x66b0('0x6'));var interaction=require(_0x66b0('0x7'));var config=require(_0x66b0('0x8'));var controller=require(_0x66b0('0x9'));router[_0x66b0('0xa')]('/',auth['isAuthenticated'](),controller[_0x66b0('0xb')]);router[_0x66b0('0xa')]('/:id',auth[_0x66b0('0xc')](),controller[_0x66b0('0xd')]);router['get'](_0x66b0('0xe'),auth[_0x66b0('0xc')](),controller[_0x66b0('0xf')]);router[_0x66b0('0x10')]('/',auth[_0x66b0('0xc')](),controller[_0x66b0('0x11')]);router['post']('/:id/users',auth[_0x66b0('0xc')](),controller[_0x66b0('0x12')]);router['put']('/:id',auth[_0x66b0('0xc')](),controller[_0x66b0('0x13')]);router[_0x66b0('0x14')]('/:id',auth[_0x66b0('0xc')](),controller[_0x66b0('0x15')]);router[_0x66b0('0x14')]('/:id/users',auth[_0x66b0('0xc')](),controller[_0x66b0('0x16')]);module[_0x66b0('0x17')]=router;
\ No newline at end of file
+var _0x1794=['get','isAuthenticated','index','/:id','show','getUsers','post','create','/:id/users','addUsers','update','destroy','delete','removeUsers','path','connect-timeout','express','Router','fs-extra','../../config/environment','./squareProject.controller'];(function(_0x1c905b,_0x40e27e){var _0x4485c5=function(_0x31f9f9){while(--_0x31f9f9){_0x1c905b['push'](_0x1c905b['shift']());}};_0x4485c5(++_0x40e27e);}(_0x1794,0x19d));var _0x4179=function(_0xab39bd,_0x5d2abc){_0xab39bd=_0xab39bd-0x0;var _0x36ccff=_0x1794[_0xab39bd];return _0x36ccff;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x4179('0x0'));var timeout=require(_0x4179('0x1'));var express=require(_0x4179('0x2'));var router=express[_0x4179('0x3')]();var fs_extra=require(_0x4179('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x4179('0x5'));var controller=require(_0x4179('0x6'));router[_0x4179('0x7')]('/',auth[_0x4179('0x8')](),controller[_0x4179('0x9')]);router[_0x4179('0x7')](_0x4179('0xa'),auth[_0x4179('0x8')](),controller[_0x4179('0xb')]);router[_0x4179('0x7')]('/:id/users',auth[_0x4179('0x8')](),controller[_0x4179('0xc')]);router[_0x4179('0xd')]('/',auth['isAuthenticated'](),controller[_0x4179('0xe')]);router['post'](_0x4179('0xf'),auth['isAuthenticated'](),controller[_0x4179('0x10')]);router['put'](_0x4179('0xa'),auth[_0x4179('0x8')](),controller[_0x4179('0x11')]);router['delete'](_0x4179('0xa'),auth['isAuthenticated'](),controller[_0x4179('0x12')]);router[_0x4179('0x13')]('/:id/users',auth[_0x4179('0x8')](),controller[_0x4179('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2eeb=['long','getDataValue','preproduction','toString','production','utf8','DATE','sequelize','exports','name','STRING'];(function(_0x2c1e7a,_0x155f86){var _0xcacb4f=function(_0x2b2eb3){while(--_0x2b2eb3){_0x2c1e7a['push'](_0x2c1e7a['shift']());}};_0xcacb4f(++_0x155f86);}(_0x2eeb,0x80));var _0xb2ee=function(_0x394d88,_0x18fc88){_0x394d88=_0x394d88-0x0;var _0x38f3b9=_0x2eeb[_0x394d88];return _0x38f3b9;};'use strict';var Sequelize=require(_0xb2ee('0x0'));module[_0xb2ee('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xb2ee('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0xb2ee('0x3')]},'notes':{'type':Sequelize['TEXT']},'preproduction':{'type':Sequelize['BLOB'](_0xb2ee('0x4')),'get':function(){if(this[_0xb2ee('0x5')](_0xb2ee('0x6'))){return this[_0xb2ee('0x5')](_0xb2ee('0x6'))[_0xb2ee('0x7')]('utf8');}}},'production':{'type':Sequelize['BLOB'](_0xb2ee('0x4')),'get':function(){if(this[_0xb2ee('0x5')](_0xb2ee('0x8'))){return this['getDataValue']('production')[_0xb2ee('0x7')](_0xb2ee('0x9'));}}},'savedAt':{'type':Sequelize[_0xb2ee('0xa')]},'publishedAt':{'type':Sequelize[_0xb2ee('0xa')]}};
\ No newline at end of file
+var _0xa7f8=['production','DATE','exports','STRING','BLOB','long','getDataValue','preproduction','toString','utf8'];(function(_0x4b2ae8,_0x4bb07c){var _0xd2601e=function(_0x445ec2){while(--_0x445ec2){_0x4b2ae8['push'](_0x4b2ae8['shift']());}};_0xd2601e(++_0x4bb07c);}(_0xa7f8,0x160));var _0x8a7f=function(_0x35d294,_0x3a9b4){_0x35d294=_0x35d294-0x0;var _0xb9ae9a=_0xa7f8[_0x35d294];return _0xb9ae9a;};'use strict';var Sequelize=require('sequelize');module[_0x8a7f('0x0')]={'name':{'type':Sequelize[_0x8a7f('0x1')],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0x8a7f('0x1')]},'notes':{'type':Sequelize['TEXT']},'preproduction':{'type':Sequelize[_0x8a7f('0x2')](_0x8a7f('0x3')),'get':function(){if(this[_0x8a7f('0x4')]('preproduction')){return this[_0x8a7f('0x4')](_0x8a7f('0x5'))[_0x8a7f('0x6')](_0x8a7f('0x7'));}}},'production':{'type':Sequelize[_0x8a7f('0x2')](_0x8a7f('0x3')),'get':function(){if(this[_0x8a7f('0x4')]('production')){return this[_0x8a7f('0x4')](_0x8a7f('0x8'))[_0x8a7f('0x6')]('utf8');}}},'savedAt':{'type':Sequelize[_0x8a7f('0x9')]},'publishedAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7378=['index','map','SquareProject','rawAttributes','fieldName','type','model','name','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','filter','merge','VIRTUAL','includeAll','include','rows','params','length','options','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','ids','omit','removeUsers','isArray','userSquareProject:remove','User','pick','getUsers','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','redis','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','SquareProjects','UserProfileResource','error'];(function(_0x5ad771,_0x34186f){var _0x5b5dce=function(_0x5ad0fb){while(--_0x5ad0fb){_0x5ad771['push'](_0x5ad771['shift']());}};_0x5b5dce(++_0x34186f);}(_0x7378,0x8d));var _0x8737=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x7378[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x8737('0x0'));var rimraf=require(_0x8737('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8737('0x2'));var rp=require(_0x8737('0x3'));var moment=require('moment');var BPromise=require(_0x8737('0x4'));var Mustache=require(_0x8737('0x5'));var util=require('util');var path=require(_0x8737('0x6'));var sox=require(_0x8737('0x7'));var csv=require(_0x8737('0x8'));var ejs=require(_0x8737('0x9'));var fs=require('fs');var fs_extra=require(_0x8737('0xa'));var _=require(_0x8737('0xb'));var squel=require(_0x8737('0xc'));var crypto=require(_0x8737('0xd'));var jsforce=require(_0x8737('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x8737('0x8'));var querystring=require(_0x8737('0xf'));var Papa=require('papaparse');var Redis=require(_0x8737('0x10'));var authService=require(_0x8737('0x11'));var qs=require(_0x8737('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8737('0x13'));var logger=require(_0x8737('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x8737('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x8737('0x16'))['db'];config[_0x8737('0x17')]=_['defaults'](config[_0x8737('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0x8737('0x18'))(new Redis(config[_0x8737('0x17')]));require(_0x8737('0x19'))[_0x8737('0x1a')](socket);function respondWithStatusCode(_0x197e93,_0x4d46eb){_0x4d46eb=_0x4d46eb||0xcc;return function(_0x3fcd84){if(_0x3fcd84){return _0x197e93[_0x8737('0x1b')](_0x4d46eb);}return _0x197e93[_0x8737('0x1c')](_0x4d46eb)[_0x8737('0x1d')]();};}function respondWithResult(_0x46638a,_0x49f9ac){_0x49f9ac=_0x49f9ac||0xc8;return function(_0x54c266){if(_0x54c266){return _0x46638a['status'](_0x49f9ac)[_0x8737('0x1e')](_0x54c266);}};}function respondWithFilteredResult(_0x5a14c6,_0x29c690){return function(_0x1bfbbf){if(_0x1bfbbf){var _0x54aee0=typeof _0x29c690[_0x8737('0x1f')]==='undefined'&&typeof _0x29c690[_0x8737('0x20')]==='undefined';var _0x2619b8=_0x1bfbbf[_0x8737('0x21')];var _0x1ac431=_0x54aee0?0x0:_0x29c690['offset'];var _0x46aef6=_0x54aee0?_0x1bfbbf[_0x8737('0x21')]:_0x29c690[_0x8737('0x1f')]+_0x29c690['limit'];var _0xbaca5e;if(_0x46aef6>=_0x2619b8){_0x46aef6=_0x2619b8;_0xbaca5e=0xc8;}else{_0xbaca5e=0xce;}_0x5a14c6[_0x8737('0x1c')](_0xbaca5e);return _0x5a14c6[_0x8737('0x22')](_0x8737('0x23'),_0x1ac431+'-'+_0x46aef6+'/'+_0x2619b8)[_0x8737('0x1e')](_0x1bfbbf);}return null;};}function patchUpdates(_0x268c6f){return function(_0x223e57){try{jsonpatch[_0x8737('0x24')](_0x223e57,_0x268c6f,!![]);}catch(_0x5d56f4){return BPromise[_0x8737('0x25')](_0x5d56f4);}return _0x223e57[_0x8737('0x26')]();};}function saveUpdates(_0x589c50,_0x1d7e83){return function(_0x518336){if(_0x518336){return _0x518336[_0x8737('0x27')](_0x589c50)[_0x8737('0x28')](function(_0x357f12){return _0x357f12;});}return null;};}function removeEntity(_0x370e7a,_0x599cfe){return function(_0x303438){if(_0x303438){return _0x303438[_0x8737('0x29')]()[_0x8737('0x28')](function(){var _0x19c594=_0x303438['get']({'plain':!![]});var _0x5dc0a7=_0x8737('0x2a');return db[_0x8737('0x2b')]['destroy']({'where':{'type':_0x5dc0a7,'resourceId':_0x19c594['id']}})['then'](function(){return _0x303438;});})[_0x8737('0x28')](function(){_0x370e7a['status'](0xcc)[_0x8737('0x1d')]();});}};}function handleEntityNotFound(_0x3adff3,_0x3d7a9f){return function(_0x39c79d){if(!_0x39c79d){_0x3adff3[_0x8737('0x1b')](0x194);}return _0x39c79d;};}function handleError(_0x412a79,_0x6e7a60){_0x6e7a60=_0x6e7a60||0x1f4;return function(_0x1f32d6){logger[_0x8737('0x2c')](_0x1f32d6['stack']);if(_0x1f32d6['name']){delete _0x1f32d6['name'];}_0x412a79[_0x8737('0x1c')](_0x6e7a60)['send'](_0x1f32d6);};}exports[_0x8737('0x2d')]=function(_0x1b45d1,_0xa75d66){var _0x497079={},_0x2d62bc={},_0x48c641={'count':0x0,'rows':[]};var _0x16af00=_[_0x8737('0x2e')](db[_0x8737('0x2f')][_0x8737('0x30')],function(_0x3b5c58){return{'name':_0x3b5c58[_0x8737('0x31')],'type':_0x3b5c58[_0x8737('0x32')]['key']};});_0x2d62bc[_0x8737('0x33')]=_['map'](_0x16af00,_0x8737('0x34'));_0x2d62bc[_0x8737('0x35')]=_[_0x8737('0x36')](_0x1b45d1[_0x8737('0x35')]);_0x2d62bc['filters']=_[_0x8737('0x37')](_0x2d62bc[_0x8737('0x33')],_0x2d62bc[_0x8737('0x35')]);_0x497079[_0x8737('0x38')]=_[_0x8737('0x37')](_0x2d62bc[_0x8737('0x33')],qs[_0x8737('0x39')](_0x1b45d1[_0x8737('0x35')][_0x8737('0x39')]));_0x497079[_0x8737('0x38')]=_0x497079[_0x8737('0x38')]['length']?_0x497079[_0x8737('0x38')]:_0x2d62bc[_0x8737('0x33')];if(!_0x1b45d1[_0x8737('0x35')][_0x8737('0x3a')](_0x8737('0x3b'))){_0x497079[_0x8737('0x20')]=qs['limit'](_0x1b45d1[_0x8737('0x35')][_0x8737('0x20')]);_0x497079[_0x8737('0x1f')]=qs['offset'](_0x1b45d1['query']['offset']);}_0x497079['order']=qs[_0x8737('0x3c')](_0x1b45d1[_0x8737('0x35')][_0x8737('0x3c')]);_0x497079[_0x8737('0x3d')]=qs[_0x8737('0x3e')](_['pick'](_0x1b45d1[_0x8737('0x35')],_0x2d62bc[_0x8737('0x3e')]),_0x16af00);if(_0x1b45d1[_0x8737('0x35')][_0x8737('0x3f')]){_0x497079[_0x8737('0x3d')]=_[_0x8737('0x40')](_0x497079['where'],{'$or':_[_0x8737('0x2e')](_0x16af00,function(_0x3b4b0e){if(_0x3b4b0e[_0x8737('0x32')]!==_0x8737('0x41')){var _0x6cce19={};_0x6cce19[_0x3b4b0e[_0x8737('0x34')]]={'$like':'%'+_0x1b45d1['query'][_0x8737('0x3f')]+'%'};return _0x6cce19;}})});}_0x497079=_[_0x8737('0x40')]({},_0x497079,_0x1b45d1['options']);var _0x4cfc27={'where':_0x497079['where']};return db[_0x8737('0x2f')][_0x8737('0x21')](_0x4cfc27)[_0x8737('0x28')](function(_0x17d25d){_0x48c641[_0x8737('0x21')]=_0x17d25d;if(_0x1b45d1[_0x8737('0x35')][_0x8737('0x42')]){_0x497079[_0x8737('0x43')]=[{'all':!![]}];}return db['SquareProject']['findAll'](_0x497079);})[_0x8737('0x28')](function(_0x3ea8f3){_0x48c641[_0x8737('0x44')]=_0x3ea8f3;return _0x48c641;})[_0x8737('0x28')](respondWithFilteredResult(_0xa75d66,_0x497079))['catch'](handleError(_0xa75d66,null));};exports['show']=function(_0x2532cd,_0x562ef8){var _0x40dabc={'raw':![],'where':{'id':_0x2532cd[_0x8737('0x45')]['id']}},_0x5124e8={};_0x5124e8[_0x8737('0x33')]=_[_0x8737('0x36')](db['SquareProject']['rawAttributes']);_0x5124e8['query']=_[_0x8737('0x36')](_0x2532cd[_0x8737('0x35')]);_0x5124e8[_0x8737('0x3e')]=_[_0x8737('0x37')](_0x5124e8['model'],_0x5124e8[_0x8737('0x35')]);_0x40dabc['attributes']=_[_0x8737('0x37')](_0x5124e8[_0x8737('0x33')],qs[_0x8737('0x39')](_0x2532cd[_0x8737('0x35')][_0x8737('0x39')]));_0x40dabc['attributes']=_0x40dabc[_0x8737('0x38')][_0x8737('0x46')]?_0x40dabc[_0x8737('0x38')]:_0x5124e8[_0x8737('0x33')];if(_0x2532cd[_0x8737('0x35')]['includeAll']){_0x40dabc[_0x8737('0x43')]=[{'all':!![]}];}_0x40dabc=_[_0x8737('0x40')]({},_0x40dabc,_0x2532cd[_0x8737('0x47')]);return db[_0x8737('0x2f')]['find'](_0x40dabc)[_0x8737('0x28')](handleEntityNotFound(_0x562ef8,null))[_0x8737('0x28')](respondWithResult(_0x562ef8,null))[_0x8737('0x48')](handleError(_0x562ef8,null));};exports[_0x8737('0x49')]=function(_0x22ca4b,_0x3031ba){return db['SquareProject']['create'](_0x22ca4b[_0x8737('0x4a')],{})[_0x8737('0x28')](function(_0x49c8fb){var _0x5d42cf=_0x22ca4b[_0x8737('0x4b')][_0x8737('0x4c')]({'plain':!![]});if(!_0x5d42cf)throw new Error(_0x8737('0x4d'));if(_0x5d42cf[_0x8737('0x4e')]===_0x8737('0x4b')){var _0x4033fa=_0x49c8fb[_0x8737('0x4c')]({'plain':!![]});var _0x4968f1=_0x8737('0x2a');return db[_0x8737('0x4f')][_0x8737('0x50')]({'where':{'name':_0x4968f1,'userProfileId':_0x5d42cf[_0x8737('0x51')]},'raw':!![]})[_0x8737('0x28')](function(_0x2f229f){if(_0x2f229f&&_0x2f229f[_0x8737('0x52')]===0x0){return db[_0x8737('0x2b')][_0x8737('0x49')]({'name':_0x4033fa[_0x8737('0x34')],'resourceId':_0x4033fa['id'],'type':_0x2f229f['name'],'sectionId':_0x2f229f['id']},{})[_0x8737('0x28')](function(){return _0x49c8fb;});}else{return _0x49c8fb;}})[_0x8737('0x48')](function(_0x163ebf){logger[_0x8737('0x2c')](_0x8737('0x53'),_0x163ebf);throw _0x163ebf;});}return _0x49c8fb;})['then'](respondWithResult(_0x3031ba,0xc9))['catch'](handleError(_0x3031ba,null));};exports[_0x8737('0x27')]=function(_0x29de0d,_0x87457d){if(_0x29de0d[_0x8737('0x4a')]['id']){delete _0x29de0d[_0x8737('0x4a')]['id'];}return db[_0x8737('0x2f')]['find']({'where':{'id':_0x29de0d[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x87457d,null))['then'](saveUpdates(_0x29de0d[_0x8737('0x4a')],null))[_0x8737('0x28')](respondWithResult(_0x87457d,null))[_0x8737('0x48')](handleError(_0x87457d,null));};exports[_0x8737('0x29')]=function(_0xf45929,_0x1e4463){return db[_0x8737('0x2f')][_0x8737('0x50')]({'where':{'id':_0xf45929[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x1e4463,null))[_0x8737('0x28')](removeEntity(_0x1e4463,null))[_0x8737('0x48')](handleError(_0x1e4463,null));};exports[_0x8737('0x54')]=function(_0x4bb04c,_0x4457cc,_0x481bd0){return db[_0x8737('0x2f')][_0x8737('0x50')]({'where':{'id':_0x4bb04c[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x4457cc,null))[_0x8737('0x28')](function(_0x1aa65e){if(_0x1aa65e){return _0x1aa65e['addUsers'](_0x4bb04c[_0x8737('0x4a')][_0x8737('0x55')],_[_0x8737('0x56')](_0x4bb04c['body'],[_0x8737('0x55'),'id'])||{});}})[_0x8737('0x28')](respondWithResult(_0x4457cc,null))[_0x8737('0x48')](handleError(_0x4457cc,null));};exports['removeUsers']=function(_0x133e9b,_0x1cb311,_0x3528c3){return db[_0x8737('0x2f')][_0x8737('0x50')]({'where':{'id':_0x133e9b[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x1cb311,null))[_0x8737('0x28')](function(_0x46a7d2){if(_0x46a7d2){return _0x46a7d2[_0x8737('0x57')](_0x133e9b['query'][_0x8737('0x55')])['then'](function(){if(_[_0x8737('0x58')](_0x133e9b[_0x8737('0x35')][_0x8737('0x55')])){for(var _0x5e3722=0x0;_0x5e3722<_0x133e9b['query']['ids']['length'];_0x5e3722+=0x1){socket['emit']('userSquareProject:remove',{'UserId':Number(_0x133e9b[_0x8737('0x35')]['ids'][_0x5e3722]),'SquareProjectId':Number(_0x133e9b[_0x8737('0x45')]['id'])});}}else{socket['emit'](_0x8737('0x59'),{'UserId':Number(_0x133e9b[_0x8737('0x35')][_0x8737('0x55')]),'SquareProjectId':Number(_0x133e9b['params']['id'])});}});}})['then'](respondWithStatusCode(_0x1cb311,null))[_0x8737('0x48')](handleError(_0x1cb311,null));};exports['getUsers']=function(_0x1ab57f,_0x2a8b10,_0x554aa8){var _0x285dca={};var _0xb2652a={};var _0x4d520a;var _0x57fa8a;return db[_0x8737('0x2f')]['findOne']({'where':{'id':_0x1ab57f['params']['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x2a8b10,null))[_0x8737('0x28')](function(_0x12a7e8){if(_0x12a7e8){_0x4d520a=_0x12a7e8;_0xb2652a[_0x8737('0x33')]=_[_0x8737('0x36')](db[_0x8737('0x5a')][_0x8737('0x30')]);_0xb2652a['query']=_[_0x8737('0x36')](_0x1ab57f[_0x8737('0x35')]);_0xb2652a['filters']=_[_0x8737('0x37')](_0xb2652a[_0x8737('0x33')],_0xb2652a['query']);_0x285dca[_0x8737('0x38')]=_['intersection'](_0xb2652a[_0x8737('0x33')],qs[_0x8737('0x39')](_0x1ab57f['query'][_0x8737('0x39')]));_0x285dca[_0x8737('0x38')]=_0x285dca[_0x8737('0x38')][_0x8737('0x46')]?_0x285dca[_0x8737('0x38')]:_0xb2652a[_0x8737('0x33')];_0x285dca['order']=qs[_0x8737('0x3c')](_0x1ab57f[_0x8737('0x35')][_0x8737('0x3c')]);_0x285dca['where']=qs[_0x8737('0x3e')](_[_0x8737('0x5b')](_0x1ab57f[_0x8737('0x35')],_0xb2652a['filters']));if(_0x1ab57f[_0x8737('0x35')][_0x8737('0x3f')]){_0x285dca[_0x8737('0x3d')]=_[_0x8737('0x40')](_0x285dca[_0x8737('0x3d')],{'$or':_[_0x8737('0x2e')](_0x285dca[_0x8737('0x38')],function(_0x206c2c){var _0x1e9b42={};_0x1e9b42[_0x206c2c]={'$like':'%'+_0x1ab57f[_0x8737('0x35')]['filter']+'%'};return _0x1e9b42;})});}_0x285dca=_[_0x8737('0x40')]({},_0x285dca,_0x1ab57f['options']);return _0x4d520a[_0x8737('0x5c')](_0x285dca);}})[_0x8737('0x28')](function(_0x2a5842){if(_0x2a5842){_0x57fa8a=_0x2a5842[_0x8737('0x46')];if(!_0x1ab57f[_0x8737('0x35')][_0x8737('0x3a')]('nolimit')){_0x285dca[_0x8737('0x20')]=qs[_0x8737('0x20')](_0x1ab57f[_0x8737('0x35')][_0x8737('0x20')]);_0x285dca[_0x8737('0x1f')]=qs[_0x8737('0x1f')](_0x1ab57f[_0x8737('0x35')][_0x8737('0x1f')]);}return _0x4d520a['getUsers'](_0x285dca);}})[_0x8737('0x28')](function(_0x5b1e0b){if(_0x5b1e0b){return _0x5b1e0b?{'count':_0x57fa8a,'rows':_0x5b1e0b}:null;}})[_0x8737('0x28')](respondWithResult(_0x2a8b10,null))[_0x8737('0x48')](handleError(_0x2a8b10,null));};
\ No newline at end of file
+var _0xc583=['save','update','then','destroy','get','SquareProjects','name','send','index','map','SquareProject','rawAttributes','fieldName','key','model','query','keys','filters','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','include','findAll','show','params','intersection','includeAll','options','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply'];(function(_0x417fc1,_0x4456d7){var _0x348f5a=function(_0x5c0331){while(--_0x5c0331){_0x417fc1['push'](_0x417fc1['shift']());}};_0x348f5a(++_0x4456d7);}(_0xc583,0x1bb));var _0x3c58=function(_0x2b2e3e,_0x117e86){_0x2b2e3e=_0x2b2e3e-0x0;var _0x518ab3=_0xc583[_0x2b2e3e];return _0x518ab3;};'use strict';var emlformat=require(_0x3c58('0x0'));var rimraf=require(_0x3c58('0x1'));var zipdir=require(_0x3c58('0x2'));var jsonpatch=require(_0x3c58('0x3'));var rp=require(_0x3c58('0x4'));var moment=require(_0x3c58('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x3c58('0x6'));var util=require(_0x3c58('0x7'));var path=require(_0x3c58('0x8'));var sox=require(_0x3c58('0x9'));var csv=require(_0x3c58('0xa'));var ejs=require(_0x3c58('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3c58('0xc'));var squel=require(_0x3c58('0xd'));var crypto=require(_0x3c58('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x3c58('0xf'));var toCsv=require(_0x3c58('0xa'));var querystring=require(_0x3c58('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3c58('0x11'));var as=require(_0x3c58('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3c58('0x13'))(_0x3c58('0x14'));var utils=require(_0x3c58('0x15'));var config=require(_0x3c58('0x16'));var licenseUtil=require(_0x3c58('0x17'));var db=require(_0x3c58('0x18'))['db'];config[_0x3c58('0x19')]=_[_0x3c58('0x1a')](config[_0x3c58('0x19')],{'host':_0x3c58('0x1b'),'port':0x18eb});var socket=require(_0x3c58('0x1c'))(new Redis(config[_0x3c58('0x19')]));require(_0x3c58('0x1d'))[_0x3c58('0x1e')](socket);function respondWithStatusCode(_0x41eb00,_0x5a9e34){_0x5a9e34=_0x5a9e34||0xcc;return function(_0xe7dcaf){if(_0xe7dcaf){return _0x41eb00[_0x3c58('0x1f')](_0x5a9e34);}return _0x41eb00[_0x3c58('0x20')](_0x5a9e34)[_0x3c58('0x21')]();};}function respondWithResult(_0x3b89bb,_0xe277f3){_0xe277f3=_0xe277f3||0xc8;return function(_0x5a3419){if(_0x5a3419){return _0x3b89bb['status'](_0xe277f3)[_0x3c58('0x22')](_0x5a3419);}};}function respondWithFilteredResult(_0xa4b1da,_0xfee76d){return function(_0x1fcf7a){if(_0x1fcf7a){var _0x5cb8c3=typeof _0xfee76d['offset']===_0x3c58('0x23')&&typeof _0xfee76d[_0x3c58('0x24')]==='undefined';var _0x4909d5=_0x1fcf7a['count'];var _0x3e1258=_0x5cb8c3?0x0:_0xfee76d['offset'];var _0x3acb22=_0x5cb8c3?_0x1fcf7a[_0x3c58('0x25')]:_0xfee76d[_0x3c58('0x26')]+_0xfee76d['limit'];var _0x4d5043;if(_0x3acb22>=_0x4909d5){_0x3acb22=_0x4909d5;_0x4d5043=0xc8;}else{_0x4d5043=0xce;}_0xa4b1da['status'](_0x4d5043);return _0xa4b1da[_0x3c58('0x27')](_0x3c58('0x28'),_0x3e1258+'-'+_0x3acb22+'/'+_0x4909d5)[_0x3c58('0x22')](_0x1fcf7a);}return null;};}function patchUpdates(_0x3186b1){return function(_0x32d9ab){try{jsonpatch[_0x3c58('0x29')](_0x32d9ab,_0x3186b1,!![]);}catch(_0xfe2e0c){return BPromise['reject'](_0xfe2e0c);}return _0x32d9ab[_0x3c58('0x2a')]();};}function saveUpdates(_0x299ebd,_0x28b0fd){return function(_0x5b748b){if(_0x5b748b){return _0x5b748b[_0x3c58('0x2b')](_0x299ebd)[_0x3c58('0x2c')](function(_0x3904a5){return _0x3904a5;});}return null;};}function removeEntity(_0x212fb1,_0x21b85a){return function(_0x1820f1){if(_0x1820f1){return _0x1820f1[_0x3c58('0x2d')]()[_0x3c58('0x2c')](function(){var _0x54399f=_0x1820f1[_0x3c58('0x2e')]({'plain':!![]});var _0x3788d8=_0x3c58('0x2f');return db['UserProfileResource']['destroy']({'where':{'type':_0x3788d8,'resourceId':_0x54399f['id']}})['then'](function(){return _0x1820f1;});})[_0x3c58('0x2c')](function(){_0x212fb1['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5bc22b,_0x3c1170){return function(_0x103c02){if(!_0x103c02){_0x5bc22b[_0x3c58('0x1f')](0x194);}return _0x103c02;};}function handleError(_0x18dbf4,_0x458e96){_0x458e96=_0x458e96||0x1f4;return function(_0x57a937){logger['error'](_0x57a937['stack']);if(_0x57a937[_0x3c58('0x30')]){delete _0x57a937[_0x3c58('0x30')];}_0x18dbf4[_0x3c58('0x20')](_0x458e96)[_0x3c58('0x31')](_0x57a937);};}exports[_0x3c58('0x32')]=function(_0x4d8c14,_0x1e913e){var _0x27f6de={},_0x1f621d={},_0xd3974c={'count':0x0,'rows':[]};var _0x55a854=_[_0x3c58('0x33')](db[_0x3c58('0x34')][_0x3c58('0x35')],function(_0x264e44){return{'name':_0x264e44[_0x3c58('0x36')],'type':_0x264e44['type'][_0x3c58('0x37')]};});_0x1f621d[_0x3c58('0x38')]=_[_0x3c58('0x33')](_0x55a854,_0x3c58('0x30'));_0x1f621d[_0x3c58('0x39')]=_[_0x3c58('0x3a')](_0x4d8c14['query']);_0x1f621d[_0x3c58('0x3b')]=_['intersection'](_0x1f621d[_0x3c58('0x38')],_0x1f621d['query']);_0x27f6de['attributes']=_['intersection'](_0x1f621d[_0x3c58('0x38')],qs[_0x3c58('0x3c')](_0x4d8c14['query']['fields']));_0x27f6de[_0x3c58('0x3d')]=_0x27f6de['attributes'][_0x3c58('0x3e')]?_0x27f6de[_0x3c58('0x3d')]:_0x1f621d['model'];if(!_0x4d8c14[_0x3c58('0x39')]['hasOwnProperty'](_0x3c58('0x3f'))){_0x27f6de[_0x3c58('0x24')]=qs['limit'](_0x4d8c14[_0x3c58('0x39')][_0x3c58('0x24')]);_0x27f6de[_0x3c58('0x26')]=qs[_0x3c58('0x26')](_0x4d8c14['query'][_0x3c58('0x26')]);}_0x27f6de[_0x3c58('0x40')]=qs[_0x3c58('0x41')](_0x4d8c14[_0x3c58('0x39')]['sort']);_0x27f6de[_0x3c58('0x42')]=qs[_0x3c58('0x3b')](_[_0x3c58('0x43')](_0x4d8c14['query'],_0x1f621d[_0x3c58('0x3b')]),_0x55a854);if(_0x4d8c14[_0x3c58('0x39')][_0x3c58('0x44')]){_0x27f6de[_0x3c58('0x42')]=_[_0x3c58('0x45')](_0x27f6de[_0x3c58('0x42')],{'$or':_[_0x3c58('0x33')](_0x55a854,function(_0x3b1074){if(_0x3b1074[_0x3c58('0x46')]!==_0x3c58('0x47')){var _0x4bbd9a={};_0x4bbd9a[_0x3b1074[_0x3c58('0x30')]]={'$like':'%'+_0x4d8c14[_0x3c58('0x39')][_0x3c58('0x44')]+'%'};return _0x4bbd9a;}})});}_0x27f6de=_[_0x3c58('0x45')]({},_0x27f6de,_0x4d8c14['options']);var _0x976300={'where':_0x27f6de[_0x3c58('0x42')]};return db[_0x3c58('0x34')][_0x3c58('0x25')](_0x976300)[_0x3c58('0x2c')](function(_0x53cc38){_0xd3974c['count']=_0x53cc38;if(_0x4d8c14[_0x3c58('0x39')]['includeAll']){_0x27f6de[_0x3c58('0x48')]=[{'all':!![]}];}return db[_0x3c58('0x34')][_0x3c58('0x49')](_0x27f6de);})[_0x3c58('0x2c')](function(_0x1d1486){_0xd3974c['rows']=_0x1d1486;return _0xd3974c;})['then'](respondWithFilteredResult(_0x1e913e,_0x27f6de))['catch'](handleError(_0x1e913e,null));};exports[_0x3c58('0x4a')]=function(_0x4ded58,_0x11d0f8){var _0x5b3ea5={'raw':![],'where':{'id':_0x4ded58[_0x3c58('0x4b')]['id']}},_0x27cf6a={};_0x27cf6a[_0x3c58('0x38')]=_[_0x3c58('0x3a')](db[_0x3c58('0x34')][_0x3c58('0x35')]);_0x27cf6a[_0x3c58('0x39')]=_[_0x3c58('0x3a')](_0x4ded58[_0x3c58('0x39')]);_0x27cf6a[_0x3c58('0x3b')]=_[_0x3c58('0x4c')](_0x27cf6a[_0x3c58('0x38')],_0x27cf6a[_0x3c58('0x39')]);_0x5b3ea5[_0x3c58('0x3d')]=_['intersection'](_0x27cf6a[_0x3c58('0x38')],qs[_0x3c58('0x3c')](_0x4ded58[_0x3c58('0x39')][_0x3c58('0x3c')]));_0x5b3ea5[_0x3c58('0x3d')]=_0x5b3ea5['attributes'][_0x3c58('0x3e')]?_0x5b3ea5[_0x3c58('0x3d')]:_0x27cf6a[_0x3c58('0x38')];if(_0x4ded58['query'][_0x3c58('0x4d')]){_0x5b3ea5[_0x3c58('0x48')]=[{'all':!![]}];}_0x5b3ea5=_[_0x3c58('0x45')]({},_0x5b3ea5,_0x4ded58[_0x3c58('0x4e')]);return db[_0x3c58('0x34')]['find'](_0x5b3ea5)['then'](handleEntityNotFound(_0x11d0f8,null))[_0x3c58('0x2c')](respondWithResult(_0x11d0f8,null))[_0x3c58('0x4f')](handleError(_0x11d0f8,null));};exports['create']=function(_0x191423,_0x11f6b4){return db[_0x3c58('0x34')][_0x3c58('0x50')](_0x191423[_0x3c58('0x51')],{})[_0x3c58('0x2c')](function(_0x384e7c){var _0x40ad9b=_0x191423['user']['get']({'plain':!![]});if(!_0x40ad9b)throw new Error(_0x3c58('0x52'));if(_0x40ad9b['role']==='user'){var _0x92911b=_0x384e7c['get']({'plain':!![]});var _0x55fe21=_0x3c58('0x2f');return db[_0x3c58('0x53')][_0x3c58('0x54')]({'where':{'name':_0x55fe21,'userProfileId':_0x40ad9b[_0x3c58('0x55')]},'raw':!![]})[_0x3c58('0x2c')](function(_0x272fd4){if(_0x272fd4&&_0x272fd4['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x92911b[_0x3c58('0x30')],'resourceId':_0x92911b['id'],'type':_0x272fd4[_0x3c58('0x30')],'sectionId':_0x272fd4['id']},{})[_0x3c58('0x2c')](function(){return _0x384e7c;});}else{return _0x384e7c;}})['catch'](function(_0x476bcd){logger[_0x3c58('0x56')](_0x3c58('0x57'),_0x476bcd);throw _0x476bcd;});}return _0x384e7c;})['then'](respondWithResult(_0x11f6b4,0xc9))[_0x3c58('0x4f')](handleError(_0x11f6b4,null));};exports[_0x3c58('0x2b')]=function(_0x138a9d,_0x5b9000){if(_0x138a9d[_0x3c58('0x51')]['id']){delete _0x138a9d[_0x3c58('0x51')]['id'];}return db[_0x3c58('0x34')][_0x3c58('0x54')]({'where':{'id':_0x138a9d[_0x3c58('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5b9000,null))[_0x3c58('0x2c')](saveUpdates(_0x138a9d[_0x3c58('0x51')],null))[_0x3c58('0x2c')](respondWithResult(_0x5b9000,null))[_0x3c58('0x4f')](handleError(_0x5b9000,null));};exports[_0x3c58('0x2d')]=function(_0x27fb8b,_0x1e3504){return db[_0x3c58('0x34')][_0x3c58('0x54')]({'where':{'id':_0x27fb8b[_0x3c58('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1e3504,null))[_0x3c58('0x2c')](removeEntity(_0x1e3504,null))[_0x3c58('0x4f')](handleError(_0x1e3504,null));};exports[_0x3c58('0x58')]=function(_0xb1e75a,_0x1c95fc,_0x2d32dc){return db[_0x3c58('0x34')][_0x3c58('0x54')]({'where':{'id':_0xb1e75a['params']['id']}})[_0x3c58('0x2c')](handleEntityNotFound(_0x1c95fc,null))[_0x3c58('0x2c')](function(_0x1b4292){if(_0x1b4292){return _0x1b4292[_0x3c58('0x58')](_0xb1e75a['body'][_0x3c58('0x59')],_[_0x3c58('0x5a')](_0xb1e75a[_0x3c58('0x51')],['ids','id'])||{});}})['then'](respondWithResult(_0x1c95fc,null))[_0x3c58('0x4f')](handleError(_0x1c95fc,null));};exports[_0x3c58('0x5b')]=function(_0x2c4a97,_0x13e25d,_0x5b73cb){return db[_0x3c58('0x34')]['find']({'where':{'id':_0x2c4a97['params']['id']}})['then'](handleEntityNotFound(_0x13e25d,null))[_0x3c58('0x2c')](function(_0x45f9ac){if(_0x45f9ac){return _0x45f9ac[_0x3c58('0x5b')](_0x2c4a97[_0x3c58('0x39')][_0x3c58('0x59')])[_0x3c58('0x2c')](function(){if(_[_0x3c58('0x5c')](_0x2c4a97[_0x3c58('0x39')][_0x3c58('0x59')])){for(var _0x1e14b4=0x0;_0x1e14b4<_0x2c4a97[_0x3c58('0x39')][_0x3c58('0x59')]['length'];_0x1e14b4+=0x1){socket[_0x3c58('0x5d')](_0x3c58('0x5e'),{'UserId':Number(_0x2c4a97[_0x3c58('0x39')][_0x3c58('0x59')][_0x1e14b4]),'SquareProjectId':Number(_0x2c4a97['params']['id'])});}}else{socket[_0x3c58('0x5d')](_0x3c58('0x5e'),{'UserId':Number(_0x2c4a97[_0x3c58('0x39')][_0x3c58('0x59')]),'SquareProjectId':Number(_0x2c4a97[_0x3c58('0x4b')]['id'])});}});}})[_0x3c58('0x2c')](respondWithStatusCode(_0x13e25d,null))[_0x3c58('0x4f')](handleError(_0x13e25d,null));};exports[_0x3c58('0x5f')]=function(_0x32e8c6,_0x4eede5,_0x601686){var _0x11984e={};var _0x4899fd={};var _0x4b178e;var _0x28e07a;return db[_0x3c58('0x34')][_0x3c58('0x60')]({'where':{'id':_0x32e8c6['params']['id']}})[_0x3c58('0x2c')](handleEntityNotFound(_0x4eede5,null))[_0x3c58('0x2c')](function(_0x471004){if(_0x471004){_0x4b178e=_0x471004;_0x4899fd['model']=_[_0x3c58('0x3a')](db['User'][_0x3c58('0x35')]);_0x4899fd[_0x3c58('0x39')]=_['keys'](_0x32e8c6[_0x3c58('0x39')]);_0x4899fd[_0x3c58('0x3b')]=_['intersection'](_0x4899fd[_0x3c58('0x38')],_0x4899fd[_0x3c58('0x39')]);_0x11984e['attributes']=_[_0x3c58('0x4c')](_0x4899fd[_0x3c58('0x38')],qs[_0x3c58('0x3c')](_0x32e8c6['query'][_0x3c58('0x3c')]));_0x11984e[_0x3c58('0x3d')]=_0x11984e[_0x3c58('0x3d')][_0x3c58('0x3e')]?_0x11984e['attributes']:_0x4899fd[_0x3c58('0x38')];_0x11984e[_0x3c58('0x40')]=qs[_0x3c58('0x41')](_0x32e8c6[_0x3c58('0x39')][_0x3c58('0x41')]);_0x11984e[_0x3c58('0x42')]=qs['filters'](_['pick'](_0x32e8c6['query'],_0x4899fd[_0x3c58('0x3b')]));if(_0x32e8c6['query'][_0x3c58('0x44')]){_0x11984e[_0x3c58('0x42')]=_[_0x3c58('0x45')](_0x11984e[_0x3c58('0x42')],{'$or':_['map'](_0x11984e['attributes'],function(_0x4cbd66){var _0x1e0726={};_0x1e0726[_0x4cbd66]={'$like':'%'+_0x32e8c6[_0x3c58('0x39')]['filter']+'%'};return _0x1e0726;})});}_0x11984e=_[_0x3c58('0x45')]({},_0x11984e,_0x32e8c6[_0x3c58('0x4e')]);return _0x4b178e['getUsers'](_0x11984e);}})[_0x3c58('0x2c')](function(_0x5898e6){if(_0x5898e6){_0x28e07a=_0x5898e6[_0x3c58('0x3e')];if(!_0x32e8c6[_0x3c58('0x39')]['hasOwnProperty']('nolimit')){_0x11984e[_0x3c58('0x24')]=qs['limit'](_0x32e8c6['query'][_0x3c58('0x24')]);_0x11984e[_0x3c58('0x26')]=qs[_0x3c58('0x26')](_0x32e8c6[_0x3c58('0x39')][_0x3c58('0x26')]);}return _0x4b178e[_0x3c58('0x5f')](_0x11984e);}})[_0x3c58('0x2c')](function(_0x5cee04){if(_0x5cee04){return _0x5cee04?{'count':_0x28e07a,'rows':_0x5cee04}:null;}})[_0x3c58('0x2c')](respondWithResult(_0x4eede5,null))[_0x3c58('0x4f')](handleError(_0x4eede5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd675=['update','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners'];(function(_0x32e325,_0x3bd34c){var _0x448774=function(_0x33314c){while(--_0x33314c){_0x32e325['push'](_0x32e325['shift']());}};_0x448774(++_0x3bd34c);}(_0xd675,0x1d5));var _0x5d67=function(_0x174a72,_0x46034c){_0x174a72=_0x174a72-0x0;var _0x32cecd=_0xd675[_0x174a72];return _0x32cecd;};'use strict';var EventEmitter=require(_0x5d67('0x0'));var SquareProject=require(_0x5d67('0x1'))['db']['SquareProject'];var SquareProjectEvents=new EventEmitter();SquareProjectEvents[_0x5d67('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x5d67('0x3'),'afterDestroy':'remove'};function emitEvent(_0x3e28a4){return function(_0x337a2e,_0x126d8d,_0x326856){SquareProjectEvents[_0x5d67('0x4')](_0x3e28a4+':'+_0x337a2e['id'],_0x337a2e);SquareProjectEvents[_0x5d67('0x4')](_0x3e28a4,_0x337a2e);_0x326856(null);};}for(var e in events){if(events[_0x5d67('0x5')](e)){var event=events[e];SquareProject[_0x5d67('0x6')](e,emitEvent(event));}}module[_0x5d67('0x7')]=SquareProjectEvents;
\ No newline at end of file
+var _0xc499=['remove','emit','hasOwnProperty','hook','exports','../../mysqldb','SquareProject','save'];(function(_0x408bcd,_0x3f1310){var _0x5d1150=function(_0xbacdea){while(--_0xbacdea){_0x408bcd['push'](_0x408bcd['shift']());}};_0x5d1150(++_0x3f1310);}(_0xc499,0x145));var _0x9c49=function(_0x3f5f08,_0x1ccd7f){_0x3f5f08=_0x3f5f08-0x0;var _0x566dd9=_0xc499[_0x3f5f08];return _0x566dd9;};'use strict';var EventEmitter=require('events');var SquareProject=require(_0x9c49('0x0'))['db'][_0x9c49('0x1')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x9c49('0x2'),'afterUpdate':'update','afterDestroy':_0x9c49('0x3')};function emitEvent(_0x4d5ff6){return function(_0x15c5ea,_0x2d410a,_0x540a62){SquareProjectEvents[_0x9c49('0x4')](_0x4d5ff6+':'+_0x15c5ea['id'],_0x15c5ea);SquareProjectEvents[_0x9c49('0x4')](_0x4d5ff6,_0x15c5ea);_0x540a62(null);};}for(var e in events){if(events[_0x9c49('0x5')](e)){var event=events[e];SquareProject[_0x9c49('0x6')](e,emitEvent(event));}}module[_0x9c49('0x7')]=SquareProjectEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x967c=['SquareProject','square_projects','changed','preproduction','savedAt','YYYY-MM-DD\x20HH:mm:ss','production','publishedAt','format','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','./squareProject.attributes','exports'];(function(_0x3648f8,_0x2f0d50){var _0x3f3c59=function(_0x5a1531){while(--_0x5a1531){_0x3648f8['push'](_0x3648f8['shift']());}};_0x3f3c59(++_0x2f0d50);}(_0x967c,0x185));var _0xc967=function(_0x158b26,_0x1e9510){_0x158b26=_0x158b26-0x0;var _0x257a95=_0x967c[_0x158b26];return _0x257a95;};'use strict';var _=require(_0xc967('0x0'));var util=require(_0xc967('0x1'));var logger=require(_0xc967('0x2'))(_0xc967('0x3'));var moment=require(_0xc967('0x4'));var BPromise=require('bluebird');var rp=require(_0xc967('0x5'));var fs=require('fs');var path=require(_0xc967('0x6'));var rimraf=require(_0xc967('0x7'));var config=require('../../config/environment');var attributes=require(_0xc967('0x8'));module[_0xc967('0x9')]=function(_0x1054c3,_0x591aee){return _0x1054c3['define'](_0xc967('0xa'),attributes,{'tableName':_0xc967('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3084b2,_0x3ae9fd,_0x44a2ba){if(_0x3084b2[_0xc967('0xc')](_0xc967('0xd'))){_0x3084b2[_0xc967('0xe')]=moment()['format'](_0xc967('0xf'));}if(_0x3084b2['changed'](_0xc967('0x10'))){_0x3084b2[_0xc967('0x11')]=moment()[_0xc967('0x12')](_0xc967('0xf'));}_0x44a2ba(null,_0x3084b2);}}});};
\ No newline at end of file
+var _0x0005=['savedAt','format','YYYY-MM-DD\x20HH:mm:ss','publishedAt','util','request-promise','path','rimraf','../../config/environment','./squareProject.attributes','exports','square_projects','changed','preproduction'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x0005,0x1a8));var _0x5000=function(_0x2547d4,_0x27c2fb){_0x2547d4=_0x2547d4-0x0;var _0x24e7a4=_0x0005[_0x2547d4];return _0x24e7a4;};'use strict';var _=require('lodash');var util=require(_0x5000('0x0'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x5000('0x1'));var fs=require('fs');var path=require(_0x5000('0x2'));var rimraf=require(_0x5000('0x3'));var config=require(_0x5000('0x4'));var attributes=require(_0x5000('0x5'));module[_0x5000('0x6')]=function(_0x127ce3,_0x4a9473){return _0x127ce3['define']('SquareProject',attributes,{'tableName':_0x5000('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x28ffcc,_0x33a821,_0x228688){if(_0x28ffcc[_0x5000('0x8')](_0x5000('0x9'))){_0x28ffcc[_0x5000('0xa')]=moment()[_0x5000('0xb')](_0x5000('0xc'));}if(_0x28ffcc['changed']('production')){_0x28ffcc[_0x5000('0xd')]=moment()[_0x5000('0xb')]('YYYY-MM-DD\x20HH:mm:ss');}_0x228688(null,_0x28ffcc);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f7c=['util','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./squareProject.socket','register','request','then','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','find','options','raw','where','attributes','include','model','map','ShowSquareProject','lodash'];(function(_0x1db831,_0x42b7b5){var _0x39ba56=function(_0x2c2dd3){while(--_0x2c2dd3){_0x1db831['push'](_0x1db831['shift']());}};_0x39ba56(++_0x42b7b5);}(_0x3f7c,0x1e0));var _0xc3f7=function(_0x3890b1,_0x1bd704){_0x3890b1=_0x3890b1-0x0;var _0x4e45bd=_0x3f7c[_0x3890b1];return _0x4e45bd;};'use strict';var _=require(_0xc3f7('0x0'));var util=require(_0xc3f7('0x1'));var moment=require(_0xc3f7('0x2'));var BPromise=require('bluebird');var rs=require(_0xc3f7('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc3f7('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xc3f7('0x5'))(_0xc3f7('0x6'));var config=require(_0xc3f7('0x7'));var jayson=require(_0xc3f7('0x8'));var client=jayson[_0xc3f7('0x9')][_0xc3f7('0xa')]({'port':0x232a});config[_0xc3f7('0xb')]=_[_0xc3f7('0xc')](config[_0xc3f7('0xb')],{'host':_0xc3f7('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc3f7('0xb')]));require(_0xc3f7('0xe'))[_0xc3f7('0xf')](socket);function respondWithRpcPromise(_0x1227cc,_0x371452,_0x4fad9f){return new BPromise(function(_0x56e3a2,_0x253b99){return client[_0xc3f7('0x10')](_0x1227cc,_0x4fad9f)[_0xc3f7('0x11')](function(_0x5054ce){logger[_0xc3f7('0x12')](_0xc3f7('0x13'),_0x371452,_0xc3f7('0x14'));logger[_0xc3f7('0x15')]('SquareProject,\x20%s,\x20%s,\x20%s',_0x371452,_0xc3f7('0x14'),JSON[_0xc3f7('0x16')](_0x5054ce));if(_0x5054ce[_0xc3f7('0x17')]){if(_0x5054ce[_0xc3f7('0x17')][_0xc3f7('0x18')]===0x1f4){logger[_0xc3f7('0x17')](_0xc3f7('0x13'),_0x371452,_0x5054ce[_0xc3f7('0x17')]['message']);return _0x253b99(_0x5054ce[_0xc3f7('0x17')][_0xc3f7('0x19')]);}logger['error'](_0xc3f7('0x13'),_0x371452,_0x5054ce[_0xc3f7('0x17')][_0xc3f7('0x19')]);return _0x56e3a2(_0x5054ce['error'][_0xc3f7('0x19')]);}else{logger[_0xc3f7('0x12')](_0xc3f7('0x13'),_0x371452,_0xc3f7('0x14'));_0x56e3a2(_0x5054ce[_0xc3f7('0x1a')][_0xc3f7('0x19')]);}})[_0xc3f7('0x1b')](function(_0x735378){logger[_0xc3f7('0x17')]('SquareProject,\x20%s,\x20%s',_0x371452,_0x735378);_0x253b99(_0x735378);});});}exports['ShowSquareProject']=function(_0x3e16bc){var _0x5df630=this;return new Promise(function(_0x5c70d1,_0x18933a){return db['SquareProject'][_0xc3f7('0x1c')]({'raw':_0x3e16bc['options']?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x1e')]===undefined?!![]:![]:!![],'where':_0x3e16bc[_0xc3f7('0x1d')]?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x1f')]||null:null,'attributes':_0x3e16bc[_0xc3f7('0x1d')]?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x20')]||null:null,'include':_0x3e16bc[_0xc3f7('0x1d')]?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x21')]?_['map'](_0x3e16bc[_0xc3f7('0x1d')]['include'],function(_0x576c44){return{'model':db[_0x576c44[_0xc3f7('0x22')]],'as':_0x576c44['as'],'attributes':_0x576c44[_0xc3f7('0x20')],'include':_0x576c44['include']?_[_0xc3f7('0x23')](_0x576c44[_0xc3f7('0x21')],function(_0x26aa91){return{'model':db[_0x26aa91['model']],'as':_0x26aa91['as'],'attributes':_0x26aa91[_0xc3f7('0x20')],'include':_0x26aa91[_0xc3f7('0x21')]?_[_0xc3f7('0x23')](_0x26aa91[_0xc3f7('0x21')],function(_0x2eaf86){return{'model':db[_0x2eaf86[_0xc3f7('0x22')]],'as':_0x2eaf86['as'],'attributes':_0x2eaf86[_0xc3f7('0x20')]};}):[]};}):[]};}):[]:[]})[_0xc3f7('0x11')](function(_0x529934){logger[_0xc3f7('0x12')](_0xc3f7('0x24'),_0x3e16bc);logger[_0xc3f7('0x15')]('ShowSquareProject',_0x3e16bc,JSON['stringify'](_0x529934));_0x5c70d1(_0x529934);})[_0xc3f7('0x1b')](function(_0x4b7d55){logger['error'](_0xc3f7('0x24'),_0x4b7d55[_0xc3f7('0x19')],_0x3e16bc);_0x18933a(_0x5df630[_0xc3f7('0x17')](0x1f4,_0x4b7d55['message']));});});};
\ No newline at end of file
+var _0x17d3=['info','result','catch','ShowSquareProject','SquareProject','find','options','where','attributes','map','include','model','then','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','./squareProject.socket','SquareProject,\x20%s,\x20%s','request\x20sent','debug','SquareProject,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x3565ae,_0x42ce0e){var _0x1f6ef9=function(_0x27ffd8){while(--_0x27ffd8){_0x3565ae['push'](_0x3565ae['shift']());}};_0x1f6ef9(++_0x42ce0e);}(_0x17d3,0x1e1));var _0x317d=function(_0x5ad81d,_0x290d77){_0x5ad81d=_0x5ad81d-0x0;var _0x2204a1=_0x17d3[_0x5ad81d];return _0x2204a1;};'use strict';var _=require(_0x317d('0x0'));var util=require('util');var moment=require(_0x317d('0x1'));var BPromise=require(_0x317d('0x2'));var rs=require(_0x317d('0x3'));var fs=require('fs');var Redis=require(_0x317d('0x4'));var db=require(_0x317d('0x5'))['db'];var utils=require(_0x317d('0x6'));var logger=require('../../config/logger')(_0x317d('0x7'));var config=require(_0x317d('0x8'));var jayson=require(_0x317d('0x9'));var client=jayson[_0x317d('0xa')]['http']({'port':0x232a});config['redis']=_['defaults'](config[_0x317d('0xb')],{'host':_0x317d('0xc'),'port':0x18eb});var socket=require(_0x317d('0xd'))(new Redis(config[_0x317d('0xb')]));require(_0x317d('0xe'))['register'](socket);function respondWithRpcPromise(_0x3f2a26,_0x44f2f3,_0x5dd823){return new BPromise(function(_0x3496b6,_0x2b8602){return client['request'](_0x3f2a26,_0x5dd823)['then'](function(_0x353104){logger['info'](_0x317d('0xf'),_0x44f2f3,_0x317d('0x10'));logger[_0x317d('0x11')](_0x317d('0x12'),_0x44f2f3,'request\x20sent',JSON[_0x317d('0x13')](_0x353104));if(_0x353104[_0x317d('0x14')]){if(_0x353104[_0x317d('0x14')][_0x317d('0x15')]===0x1f4){logger[_0x317d('0x14')]('SquareProject,\x20%s,\x20%s',_0x44f2f3,_0x353104[_0x317d('0x14')]['message']);return _0x2b8602(_0x353104[_0x317d('0x14')][_0x317d('0x16')]);}logger['error']('SquareProject,\x20%s,\x20%s',_0x44f2f3,_0x353104[_0x317d('0x14')][_0x317d('0x16')]);return _0x3496b6(_0x353104[_0x317d('0x14')][_0x317d('0x16')]);}else{logger[_0x317d('0x17')](_0x317d('0xf'),_0x44f2f3,_0x317d('0x10'));_0x3496b6(_0x353104[_0x317d('0x18')][_0x317d('0x16')]);}})[_0x317d('0x19')](function(_0x3d9f12){logger[_0x317d('0x14')](_0x317d('0xf'),_0x44f2f3,_0x3d9f12);_0x2b8602(_0x3d9f12);});});}exports[_0x317d('0x1a')]=function(_0x50e3b5){var _0x3aa796=this;return new Promise(function(_0x466bc8,_0x4427de){return db[_0x317d('0x1b')][_0x317d('0x1c')]({'raw':_0x50e3b5['options']?_0x50e3b5[_0x317d('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x50e3b5[_0x317d('0x1d')]?_0x50e3b5['options'][_0x317d('0x1e')]||null:null,'attributes':_0x50e3b5[_0x317d('0x1d')]?_0x50e3b5[_0x317d('0x1d')][_0x317d('0x1f')]||null:null,'include':_0x50e3b5[_0x317d('0x1d')]?_0x50e3b5[_0x317d('0x1d')]['include']?_[_0x317d('0x20')](_0x50e3b5['options'][_0x317d('0x21')],function(_0x31b1fe){return{'model':db[_0x31b1fe[_0x317d('0x22')]],'as':_0x31b1fe['as'],'attributes':_0x31b1fe[_0x317d('0x1f')],'include':_0x31b1fe[_0x317d('0x21')]?_[_0x317d('0x20')](_0x31b1fe[_0x317d('0x21')],function(_0x4cd838){return{'model':db[_0x4cd838[_0x317d('0x22')]],'as':_0x4cd838['as'],'attributes':_0x4cd838[_0x317d('0x1f')],'include':_0x4cd838[_0x317d('0x21')]?_[_0x317d('0x20')](_0x4cd838['include'],function(_0x583101){return{'model':db[_0x583101[_0x317d('0x22')]],'as':_0x583101['as'],'attributes':_0x583101[_0x317d('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x317d('0x23')](function(_0x4231f3){logger['info']('ShowSquareProject',_0x50e3b5);logger[_0x317d('0x11')]('ShowSquareProject',_0x50e3b5,JSON['stringify'](_0x4231f3));_0x466bc8(_0x4231f3);})[_0x317d('0x19')](function(_0x1c3a00){logger[_0x317d('0x14')](_0x317d('0x1a'),_0x1c3a00['message'],_0x50e3b5);_0x4427de(_0x3aa796[_0x317d('0x14')](0x1f4,_0x1c3a00['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe830=['length','./squareProject.events','save','remove','removeListener','register'];(function(_0x1fdb40,_0x51351c){var _0x281f93=function(_0x35eebe){while(--_0x35eebe){_0x1fdb40['push'](_0x1fdb40['shift']());}};_0x281f93(++_0x51351c);}(_0xe830,0xf1));var _0x0e83=function(_0x28c05b,_0x330b63){_0x28c05b=_0x28c05b-0x0;var _0x10ecb3=_0xe830[_0x28c05b];return _0x10ecb3;};'use strict';var SquareProjectEvents=require(_0x0e83('0x0'));var events=[_0x0e83('0x1'),_0x0e83('0x2'),'update'];function createListener(_0x27718b,_0x4e55eb){return function(_0x8ea23){_0x4e55eb['emit'](_0x27718b,_0x8ea23);};}function removeListener(_0xc6c7d6,_0x3140c6){return function(){SquareProjectEvents[_0x0e83('0x3')](_0xc6c7d6,_0x3140c6);};}exports[_0x0e83('0x4')]=function(_0x372b21){for(var _0x89210b=0x0,_0x6cfb7d=events[_0x0e83('0x5')];_0x89210b<_0x6cfb7d;_0x89210b++){var _0x1797d3=events[_0x89210b];var _0xd53956=createListener('squareProject:'+_0x1797d3,_0x372b21);SquareProjectEvents['on'](_0x1797d3,_0xd53956);}};
\ No newline at end of file
+var _0xccea=['update','register','length','./squareProject.events','save','remove'];(function(_0x101561,_0x5c12ce){var _0x5d519d=function(_0x189416){while(--_0x189416){_0x101561['push'](_0x101561['shift']());}};_0x5d519d(++_0x5c12ce);}(_0xccea,0x6f));var _0xacce=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0xccea[_0x502c7d];return _0x30b7ed;};'use strict';var SquareProjectEvents=require(_0xacce('0x0'));var events=[_0xacce('0x1'),_0xacce('0x2'),_0xacce('0x3')];function createListener(_0x1b2614,_0x1b3c6f){return function(_0x1097e4){_0x1b3c6f['emit'](_0x1b2614,_0x1097e4);};}function removeListener(_0x2851a3,_0x2a3b01){return function(){SquareProjectEvents['removeListener'](_0x2851a3,_0x2a3b01);};}exports[_0xacce('0x4')]=function(_0x3980f5){for(var _0x345dbe=0x0,_0x11aa43=events[_0xacce('0x5')];_0x345dbe<_0x11aa43;_0x345dbe++){var _0x1dade1=events[_0x345dbe];var _0x2a9755=createListener('squareProject:'+_0x1dade1,_0x3980f5);SquareProjectEvents['on'](_0x1dade1,_0x2a9755);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0295=['isAuthenticated','index','post','create','put','/:id','update','delete','destroy','exports','multer','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareRecording.controller','get'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x0295,0x1f0));var _0x5029=function(_0x5f3562,_0x212f41){_0x5f3562=_0x5f3562-0x0;var _0x1b39b4=_0x0295[_0x5f3562];return _0x1b39b4;};'use strict';var multer=require(_0x5029('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x5029('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x5029('0x2'));var auth=require(_0x5029('0x3'));var interaction=require(_0x5029('0x4'));var config=require(_0x5029('0x5'));var controller=require(_0x5029('0x6'));router[_0x5029('0x7')]('/',auth[_0x5029('0x8')](),controller[_0x5029('0x9')]);router[_0x5029('0x7')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x5029('0x7')]('/:id/download',auth[_0x5029('0x8')](),controller['download']);router[_0x5029('0xa')]('/',auth['isAuthenticated'](),controller[_0x5029('0xb')]);router[_0x5029('0xc')](_0x5029('0xd'),auth['isAuthenticated'](),controller[_0x5029('0xe')]);router[_0x5029('0xf')](_0x5029('0xd'),auth['isAuthenticated'](),controller[_0x5029('0x10')]);module[_0x5029('0x11')]=router;
\ No newline at end of file
+var _0x53ec=['update','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./squareRecording.controller','isAuthenticated','get','/:id','show','/:id/download','download','post','create','put'];(function(_0x28136a,_0x39a40c){var _0x29485b=function(_0x302a6a){while(--_0x302a6a){_0x28136a['push'](_0x28136a['shift']());}};_0x29485b(++_0x39a40c);}(_0x53ec,0x192));var _0xc53e=function(_0x19efbc,_0x10b7d7){_0x19efbc=_0x19efbc-0x0;var _0x205c5e=_0x53ec[_0x19efbc];return _0x205c5e;};'use strict';var multer=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var path=require(_0xc53e('0x2'));var timeout=require(_0xc53e('0x3'));var express=require(_0xc53e('0x4'));var router=express[_0xc53e('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xc53e('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xc53e('0x7'));var controller=require(_0xc53e('0x8'));router['get']('/',auth[_0xc53e('0x9')](),controller['index']);router[_0xc53e('0xa')](_0xc53e('0xb'),auth['isAuthenticated'](),controller[_0xc53e('0xc')]);router[_0xc53e('0xa')](_0xc53e('0xd'),auth[_0xc53e('0x9')](),controller[_0xc53e('0xe')]);router[_0xc53e('0xf')]('/',auth[_0xc53e('0x9')](),controller[_0xc53e('0x10')]);router[_0xc53e('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xc53e('0x12')]);router['delete']('/:id',auth[_0xc53e('0x9')](),controller[_0xc53e('0x13')]);module[_0xc53e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed1f=['lastIndexOf','sequelize','exports','STRING','VIRTUAL','getDataValue','substring'];(function(_0x1998bb,_0x1f1da1){var _0x4ae4c9=function(_0x4741e8){while(--_0x4741e8){_0x1998bb['push'](_0x1998bb['shift']());}};_0x4ae4c9(++_0x1f1da1);}(_0xed1f,0x6a));var _0xfed1=function(_0x3fba9f,_0x3b7b9b){_0x3fba9f=_0x3fba9f-0x0;var _0x192cf1=_0xed1f[_0x3fba9f];return _0x192cf1;};'use strict';var Sequelize=require(_0xfed1('0x0'));module[_0xfed1('0x1')]={'uniqueid':{'type':Sequelize[_0xfed1('0x2')]},'callerid':{'type':Sequelize[_0xfed1('0x2')]},'calleridname':{'type':Sequelize[_0xfed1('0x2')]},'context':{'type':Sequelize[_0xfed1('0x2')]},'extension':{'type':Sequelize[_0xfed1('0x2')]},'priority':{'type':Sequelize[_0xfed1('0x2')]},'accountcode':{'type':Sequelize[_0xfed1('0x2')]},'dnid':{'type':Sequelize[_0xfed1('0x2')]},'projectName':{'type':Sequelize[_0xfed1('0x2')]},'saveName':{'type':Sequelize[_0xfed1('0x2')]},'filename':{'type':Sequelize[_0xfed1('0x2')]},'savePath':{'type':Sequelize[_0xfed1('0x2')]},'format':{'type':Sequelize[_0xfed1('0x3')],'get':function(){var _0x612b38='';var _0x2a6082=this[_0xfed1('0x4')]('savePath');if(_0x2a6082){_0x612b38=_0x2a6082[_0xfed1('0x5')](_0x2a6082[_0xfed1('0x6')]('.'));}return _0x612b38;}}};
\ No newline at end of file
+var _0x3e74=['getDataValue','savePath','substring','sequelize','STRING'];(function(_0x2b92cd,_0x4b855b){var _0x37975a=function(_0x1cc198){while(--_0x1cc198){_0x2b92cd['push'](_0x2b92cd['shift']());}};_0x37975a(++_0x4b855b);}(_0x3e74,0x175));var _0x43e7=function(_0x2b452e,_0x12872a){_0x2b452e=_0x2b452e-0x0;var _0x49dc35=_0x3e74[_0x2b452e];return _0x49dc35;};'use strict';var Sequelize=require(_0x43e7('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x43e7('0x1')]},'callerid':{'type':Sequelize[_0x43e7('0x1')]},'calleridname':{'type':Sequelize[_0x43e7('0x1')]},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x43e7('0x1')]},'accountcode':{'type':Sequelize['STRING']},'dnid':{'type':Sequelize[_0x43e7('0x1')]},'projectName':{'type':Sequelize[_0x43e7('0x1')]},'saveName':{'type':Sequelize[_0x43e7('0x1')]},'filename':{'type':Sequelize[_0x43e7('0x1')]},'savePath':{'type':Sequelize[_0x43e7('0x1')]},'format':{'type':Sequelize['VIRTUAL'],'get':function(){var _0x45a0d1='';var _0x3491d6=this[_0x43e7('0x2')](_0x43e7('0x3'));if(_0x3491d6){_0x45a0d1=_0x3491d6[_0x43e7('0x4')](_0x3491d6['lastIndexOf']('.'));}return _0x45a0d1;}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68fb=['filename','%s.cypher','decryptFile','secrets','recording','savePath','existsSync','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','message','Not\x20found','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','then','destroy','error','stack','name','send','index','map','SquareRecording','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','keys','create','body','update','find','download','../../components/encryptor','uniqueid'];(function(_0x58cc40,_0x183602){var _0x19f72b=function(_0x26cc96){while(--_0x26cc96){_0x58cc40['push'](_0x58cc40['shift']());}};_0x19f72b(++_0x183602);}(_0x68fb,0xe7));var _0xb68f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x68fb[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xb68f('0x0'));var rimraf=require(_0xb68f('0x1'));var zipdir=require(_0xb68f('0x2'));var jsonpatch=require(_0xb68f('0x3'));var rp=require('request-promise');var moment=require(_0xb68f('0x4'));var BPromise=require(_0xb68f('0x5'));var Mustache=require(_0xb68f('0x6'));var util=require(_0xb68f('0x7'));var path=require('path');var sox=require(_0xb68f('0x8'));var csv=require(_0xb68f('0x9'));var ejs=require(_0xb68f('0xa'));var fs=require('fs');var fs_extra=require(_0xb68f('0xb'));var _=require(_0xb68f('0xc'));var squel=require(_0xb68f('0xd'));var crypto=require(_0xb68f('0xe'));var jsforce=require(_0xb68f('0xf'));var deskjs=require(_0xb68f('0x10'));var toCsv=require(_0xb68f('0x9'));var querystring=require(_0xb68f('0x11'));var Papa=require(_0xb68f('0x12'));var Redis=require(_0xb68f('0x13'));var authService=require(_0xb68f('0x14'));var qs=require(_0xb68f('0x15'));var as=require(_0xb68f('0x16'));var hardwareService=require(_0xb68f('0x17'));var logger=require(_0xb68f('0x18'))(_0xb68f('0x19'));var utils=require(_0xb68f('0x1a'));var config=require(_0xb68f('0x1b'));var licenseUtil=require(_0xb68f('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1c0609,_0x2a2f8a){_0x2a2f8a=_0x2a2f8a||0xcc;return function(_0x5a0580){if(_0x5a0580){return _0x1c0609[_0xb68f('0x1d')](_0x2a2f8a);}return _0x1c0609[_0xb68f('0x1e')](_0x2a2f8a)[_0xb68f('0x1f')]();};}function respondWithResult(_0x188fb7,_0x5f5597){_0x5f5597=_0x5f5597||0xc8;return function(_0x422925){if(_0x422925){return _0x188fb7[_0xb68f('0x1e')](_0x5f5597)['json'](_0x422925);}};}function respondWithFilteredResult(_0x3f90a6,_0x1e6a93){return function(_0x437316){if(_0x437316){var _0x207ddd=typeof _0x1e6a93[_0xb68f('0x20')]==='undefined'&&typeof _0x1e6a93['limit']===_0xb68f('0x21');var _0x25fa6d=_0x437316[_0xb68f('0x22')];var _0x2a0a64=_0x207ddd?0x0:_0x1e6a93['offset'];var _0x255935=_0x207ddd?_0x437316[_0xb68f('0x22')]:_0x1e6a93[_0xb68f('0x20')]+_0x1e6a93[_0xb68f('0x23')];var _0x478d26;if(_0x255935>=_0x25fa6d){_0x255935=_0x25fa6d;_0x478d26=0xc8;}else{_0x478d26=0xce;}_0x3f90a6[_0xb68f('0x1e')](_0x478d26);return _0x3f90a6[_0xb68f('0x24')](_0xb68f('0x25'),_0x2a0a64+'-'+_0x255935+'/'+_0x25fa6d)[_0xb68f('0x26')](_0x437316);}return null;};}function patchUpdates(_0x50a268){return function(_0xb45309){try{jsonpatch[_0xb68f('0x27')](_0xb45309,_0x50a268,!![]);}catch(_0x43b993){return BPromise[_0xb68f('0x28')](_0x43b993);}return _0xb45309['save']();};}function saveUpdates(_0x488abf,_0x4a38d6){return function(_0x9be7b1){if(_0x9be7b1){return _0x9be7b1['update'](_0x488abf)[_0xb68f('0x29')](function(_0x93f8e5){return _0x93f8e5;});}return null;};}function removeEntity(_0x40794d,_0x2cd66e){return function(_0x30a14a){if(_0x30a14a){return _0x30a14a[_0xb68f('0x2a')]()[_0xb68f('0x29')](function(){_0x40794d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x21ccd2,_0x511c75){return function(_0xc8b6d6){if(!_0xc8b6d6){_0x21ccd2['sendStatus'](0x194);}return _0xc8b6d6;};}function handleError(_0x3c5aa9,_0x3b4435){_0x3b4435=_0x3b4435||0x1f4;return function(_0x2c5d31){logger[_0xb68f('0x2b')](_0x2c5d31[_0xb68f('0x2c')]);if(_0x2c5d31[_0xb68f('0x2d')]){delete _0x2c5d31[_0xb68f('0x2d')];}_0x3c5aa9[_0xb68f('0x1e')](_0x3b4435)[_0xb68f('0x2e')](_0x2c5d31);};}exports[_0xb68f('0x2f')]=function(_0x5b468b,_0x43e32f){var _0x3f86da={},_0xbe1d18={},_0xdae2a3={'count':0x0,'rows':[]};var _0x1c4643=_[_0xb68f('0x30')](db[_0xb68f('0x31')][_0xb68f('0x32')],function(_0x1df17f){return{'name':_0x1df17f[_0xb68f('0x33')],'type':_0x1df17f[_0xb68f('0x34')][_0xb68f('0x35')]};});_0xbe1d18['model']=_[_0xb68f('0x30')](_0x1c4643,_0xb68f('0x2d'));_0xbe1d18[_0xb68f('0x36')]=_['keys'](_0x5b468b[_0xb68f('0x36')]);_0xbe1d18[_0xb68f('0x37')]=_[_0xb68f('0x38')](_0xbe1d18[_0xb68f('0x39')],_0xbe1d18[_0xb68f('0x36')]);_0x3f86da[_0xb68f('0x3a')]=_[_0xb68f('0x38')](_0xbe1d18[_0xb68f('0x39')],qs[_0xb68f('0x3b')](_0x5b468b[_0xb68f('0x36')]['fields']));_0x3f86da[_0xb68f('0x3a')]=_0x3f86da[_0xb68f('0x3a')][_0xb68f('0x3c')]?_0x3f86da[_0xb68f('0x3a')]:_0xbe1d18[_0xb68f('0x39')];if(!_0x5b468b['query'][_0xb68f('0x3d')](_0xb68f('0x3e'))){_0x3f86da[_0xb68f('0x23')]=qs[_0xb68f('0x23')](_0x5b468b[_0xb68f('0x36')]['limit']);_0x3f86da[_0xb68f('0x20')]=qs[_0xb68f('0x20')](_0x5b468b[_0xb68f('0x36')][_0xb68f('0x20')]);}_0x3f86da[_0xb68f('0x3f')]=qs[_0xb68f('0x40')](_0x5b468b[_0xb68f('0x36')][_0xb68f('0x40')]);_0x3f86da[_0xb68f('0x41')]=qs[_0xb68f('0x37')](_['pick'](_0x5b468b['query'],_0xbe1d18[_0xb68f('0x37')]),_0x1c4643);if(_0x5b468b[_0xb68f('0x36')][_0xb68f('0x42')]){_0x3f86da[_0xb68f('0x41')]=_['merge'](_0x3f86da[_0xb68f('0x41')],{'$or':_['map'](_0x1c4643,function(_0x274a09){if(_0x274a09['type']!==_0xb68f('0x43')){var _0x41b764={};_0x41b764[_0x274a09[_0xb68f('0x2d')]]={'$like':'%'+_0x5b468b[_0xb68f('0x36')][_0xb68f('0x42')]+'%'};return _0x41b764;}})});}_0x3f86da=_[_0xb68f('0x44')]({},_0x3f86da,_0x5b468b[_0xb68f('0x45')]);var _0x37666b={'where':_0x3f86da['where']};return db[_0xb68f('0x31')][_0xb68f('0x22')](_0x37666b)[_0xb68f('0x29')](function(_0x9d56bc){_0xdae2a3[_0xb68f('0x22')]=_0x9d56bc;if(_0x5b468b[_0xb68f('0x36')][_0xb68f('0x46')]){_0x3f86da[_0xb68f('0x47')]=[{'all':!![]}];}return db[_0xb68f('0x31')][_0xb68f('0x48')](_0x3f86da);})[_0xb68f('0x29')](function(_0x68bba4){_0xdae2a3['rows']=_0x68bba4;return _0xdae2a3;})[_0xb68f('0x29')](respondWithFilteredResult(_0x43e32f,_0x3f86da))[_0xb68f('0x49')](handleError(_0x43e32f,null));};exports[_0xb68f('0x4a')]=function(_0x1961b2,_0xa2bde2){var _0xbcd27f={'raw':!![],'where':{'id':_0x1961b2[_0xb68f('0x4b')]['id']}},_0x105f87={};_0x105f87[_0xb68f('0x39')]=_[_0xb68f('0x4c')](db[_0xb68f('0x31')]['rawAttributes']);_0x105f87[_0xb68f('0x36')]=_[_0xb68f('0x4c')](_0x1961b2['query']);_0x105f87[_0xb68f('0x37')]=_[_0xb68f('0x38')](_0x105f87[_0xb68f('0x39')],_0x105f87[_0xb68f('0x36')]);_0xbcd27f[_0xb68f('0x3a')]=_['intersection'](_0x105f87[_0xb68f('0x39')],qs[_0xb68f('0x3b')](_0x1961b2[_0xb68f('0x36')][_0xb68f('0x3b')]));_0xbcd27f['attributes']=_0xbcd27f[_0xb68f('0x3a')][_0xb68f('0x3c')]?_0xbcd27f['attributes']:_0x105f87['model'];if(_0x1961b2['query'][_0xb68f('0x46')]){_0xbcd27f[_0xb68f('0x47')]=[{'all':!![]}];}_0xbcd27f=_[_0xb68f('0x44')]({},_0xbcd27f,_0x1961b2[_0xb68f('0x45')]);return db[_0xb68f('0x31')]['find'](_0xbcd27f)[_0xb68f('0x29')](handleEntityNotFound(_0xa2bde2,null))['then'](respondWithResult(_0xa2bde2,null))[_0xb68f('0x49')](handleError(_0xa2bde2,null));};exports[_0xb68f('0x4d')]=function(_0x15491e,_0x54ac04){return db['SquareRecording']['create'](_0x15491e[_0xb68f('0x4e')],{})['then'](respondWithResult(_0x54ac04,0xc9))[_0xb68f('0x49')](handleError(_0x54ac04,null));};exports[_0xb68f('0x4f')]=function(_0x5242e3,_0x351d78){if(_0x5242e3['body']['id']){delete _0x5242e3[_0xb68f('0x4e')]['id'];}return db[_0xb68f('0x31')][_0xb68f('0x50')]({'where':{'id':_0x5242e3[_0xb68f('0x4b')]['id']}})[_0xb68f('0x29')](handleEntityNotFound(_0x351d78,null))[_0xb68f('0x29')](saveUpdates(_0x5242e3[_0xb68f('0x4e')],null))['then'](respondWithResult(_0x351d78,null))[_0xb68f('0x49')](handleError(_0x351d78,null));};exports[_0xb68f('0x51')]=function(_0x4a0ebe,_0x3f6683,_0x535482){var _0x2544e7=require(_0xb68f('0x52'));var _0x107e33=![];var _0x41c63b={};if(_0x4a0ebe['query'][_0xb68f('0x34')]&&_0x4a0ebe[_0xb68f('0x36')][_0xb68f('0x34')]===_0xb68f('0x53')){_0x41c63b[_0xb68f('0x53')]=_0x4a0ebe['params']['id'];}else{_0x41c63b['id']=_0x4a0ebe[_0xb68f('0x4b')]['id'];}return db[_0xb68f('0x31')]['find']({'where':_0x41c63b,'attributes':['id','savePath',_0xb68f('0x54')],'raw':!![]})[_0xb68f('0x29')](handleEntityNotFound(_0x3f6683,null))[_0xb68f('0x29')](function(_0x1995a2){if(_0x1995a2){var _0x3e4f52=_0x1995a2['savePath'];var _0xa775fa=util['format'](_0xb68f('0x55'),_0x3e4f52);if(fs['existsSync'](_0xa775fa)){_0x107e33=!![];return _0x2544e7[_0xb68f('0x56')](_0xa775fa,_0x3e4f52,config[_0xb68f('0x57')][_0xb68f('0x58')])['then'](function(){return _0x1995a2;});}return _0x1995a2;}})[_0xb68f('0x29')](function(_0x6b23b7){if(_0x6b23b7){var _0x5000a5=_0x6b23b7[_0xb68f('0x59')];if(!fs[_0xb68f('0x5a')](_0x5000a5)){throw new db[(_0xb68f('0x5b'))][(_0xb68f('0x5c'))](_0xb68f('0x5d'));}if(_0x6b23b7['filename']){return _0x3f6683['download'](_0x5000a5,_0x6b23b7[_0xb68f('0x54')]+path[_0xb68f('0x5e')](_0x5000a5),function(){if(_0x107e33){fs['unlink'](_0x5000a5);}});}else{return _0x3f6683[_0xb68f('0x51')](_0x5000a5,function(_0x2f1cd3){if(_0x107e33){fs[_0xb68f('0x5f')](_0x5000a5);}});}}})[_0xb68f('0x49')](function(_0x55902f){if(_0x55902f[_0xb68f('0x60')]===_0xb68f('0x5d')){_0x3f6683[_0xb68f('0x1e')](0x194)[_0xb68f('0x2e')](_0xb68f('0x61'));}else{return handleError(_0x3f6683,null);}});};exports[_0xb68f('0x2a')]=function(_0x142fd5,_0xba1a4a){return db[_0xb68f('0x31')][_0xb68f('0x50')]({'where':{'id':_0x142fd5[_0xb68f('0x4b')]['id']}})[_0xb68f('0x29')](function(_0x3d981e){if(_[_0xb68f('0x62')](_0x3d981e)){throw new ReferenceError(_0xb68f('0x63'));}return _0x3d981e;})['then'](function(_0x14048c){var _0x1a12f6=_0x14048c[_0xb68f('0x59')];logger[_0xb68f('0x64')](_0xb68f('0x65'),_0x1a12f6);if(!_[_0xb68f('0x62')](_0x14048c[_0xb68f('0x59')])&&fs[_0xb68f('0x5a')](_0x1a12f6)){logger[_0xb68f('0x64')](_0xb68f('0x66')+_0x1a12f6+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x1a12f6);}_0x1a12f6=_0x1a12f6+_0xb68f('0x67');if(!_['isNil'](_0x14048c['savePath'])&&fs[_0xb68f('0x5a')](_0x1a12f6)){logger[_0xb68f('0x64')](_0xb68f('0x66')+_0x1a12f6+_0xb68f('0x68'));fs['unlinkSync'](_0x1a12f6);}return _0x14048c;})[_0xb68f('0x29')](function(_0x2755bc){if(!_0x2755bc)throw new InternalError();return _0x2755bc[_0xb68f('0x2a')]();})[_0xb68f('0x29')](function(){_0xba1a4a[_0xb68f('0x1e')](0xcc)[_0xb68f('0x1f')]();})[_0xb68f('0x49')](handleError(_0xba1a4a,null));};
\ No newline at end of file
+var _0x09f6=['json','offset','undefined','limit','count','apply','reject','save','then','destroy','end','error','stack','name','send','index','map','SquareRecording','rawAttributes','fieldName','key','model','query','keys','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','show','params','intersection','find','catch','create','update','body','download','../../components/encryptor','uniqueid','savePath','format','%s.cypher','existsSync','secrets','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','filename','extname','unlink','Not\x20found','isNil','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','status'];(function(_0x47b31a,_0x37596f){var _0x212178=function(_0x37c8ce){while(--_0x37c8ce){_0x47b31a['push'](_0x47b31a['shift']());}};_0x212178(++_0x37596f);}(_0x09f6,0xaa));var _0x609f=function(_0x57112d,_0x9ea573){_0x57112d=_0x57112d-0x0;var _0x3c32b9=_0x09f6[_0x57112d];return _0x3c32b9;};'use strict';var emlformat=require(_0x609f('0x0'));var rimraf=require(_0x609f('0x1'));var zipdir=require(_0x609f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x609f('0x3'));var moment=require(_0x609f('0x4'));var BPromise=require(_0x609f('0x5'));var Mustache=require('mustache');var util=require(_0x609f('0x6'));var path=require(_0x609f('0x7'));var sox=require(_0x609f('0x8'));var csv=require(_0x609f('0x9'));var ejs=require(_0x609f('0xa'));var fs=require('fs');var fs_extra=require(_0x609f('0xb'));var _=require(_0x609f('0xc'));var squel=require(_0x609f('0xd'));var crypto=require(_0x609f('0xe'));var jsforce=require(_0x609f('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x609f('0x9'));var querystring=require(_0x609f('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x609f('0x11'));var as=require(_0x609f('0x12'));var hardwareService=require(_0x609f('0x13'));var logger=require('../../config/logger')(_0x609f('0x14'));var utils=require('../../config/utils');var config=require(_0x609f('0x15'));var licenseUtil=require(_0x609f('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x287a55,_0x2b1a33){_0x2b1a33=_0x2b1a33||0xcc;return function(_0x3d254f){if(_0x3d254f){return _0x287a55['sendStatus'](_0x2b1a33);}return _0x287a55['status'](_0x2b1a33)['end']();};}function respondWithResult(_0xb50715,_0xf0353){_0xf0353=_0xf0353||0xc8;return function(_0x13e70a){if(_0x13e70a){return _0xb50715[_0x609f('0x17')](_0xf0353)[_0x609f('0x18')](_0x13e70a);}};}function respondWithFilteredResult(_0x169482,_0x5cd6d5){return function(_0x233d01){if(_0x233d01){var _0x47f4e5=typeof _0x5cd6d5[_0x609f('0x19')]===_0x609f('0x1a')&&typeof _0x5cd6d5[_0x609f('0x1b')]===_0x609f('0x1a');var _0x23d1c1=_0x233d01[_0x609f('0x1c')];var _0x2a7b1e=_0x47f4e5?0x0:_0x5cd6d5[_0x609f('0x19')];var _0xebfc0=_0x47f4e5?_0x233d01[_0x609f('0x1c')]:_0x5cd6d5['offset']+_0x5cd6d5[_0x609f('0x1b')];var _0x35a77a;if(_0xebfc0>=_0x23d1c1){_0xebfc0=_0x23d1c1;_0x35a77a=0xc8;}else{_0x35a77a=0xce;}_0x169482[_0x609f('0x17')](_0x35a77a);return _0x169482['set']('Content-Range',_0x2a7b1e+'-'+_0xebfc0+'/'+_0x23d1c1)['json'](_0x233d01);}return null;};}function patchUpdates(_0xd17fa7){return function(_0x3012d7){try{jsonpatch[_0x609f('0x1d')](_0x3012d7,_0xd17fa7,!![]);}catch(_0x29373b){return BPromise[_0x609f('0x1e')](_0x29373b);}return _0x3012d7[_0x609f('0x1f')]();};}function saveUpdates(_0x1758cb,_0x3d762d){return function(_0x24f081){if(_0x24f081){return _0x24f081['update'](_0x1758cb)[_0x609f('0x20')](function(_0x53cc69){return _0x53cc69;});}return null;};}function removeEntity(_0x63f200,_0x19811c){return function(_0x514100){if(_0x514100){return _0x514100[_0x609f('0x21')]()[_0x609f('0x20')](function(){_0x63f200[_0x609f('0x17')](0xcc)[_0x609f('0x22')]();});}};}function handleEntityNotFound(_0x5c9e3a,_0x75792f){return function(_0x23edc0){if(!_0x23edc0){_0x5c9e3a['sendStatus'](0x194);}return _0x23edc0;};}function handleError(_0x3025a5,_0x2c5be1){_0x2c5be1=_0x2c5be1||0x1f4;return function(_0x2d10e3){logger[_0x609f('0x23')](_0x2d10e3[_0x609f('0x24')]);if(_0x2d10e3[_0x609f('0x25')]){delete _0x2d10e3[_0x609f('0x25')];}_0x3025a5[_0x609f('0x17')](_0x2c5be1)[_0x609f('0x26')](_0x2d10e3);};}exports[_0x609f('0x27')]=function(_0x8a2470,_0x2866af){var _0x586ef6={},_0x410d44={},_0x281203={'count':0x0,'rows':[]};var _0x21a3cc=_[_0x609f('0x28')](db[_0x609f('0x29')][_0x609f('0x2a')],function(_0x21fa5b){return{'name':_0x21fa5b[_0x609f('0x2b')],'type':_0x21fa5b['type'][_0x609f('0x2c')]};});_0x410d44[_0x609f('0x2d')]=_['map'](_0x21a3cc,'name');_0x410d44[_0x609f('0x2e')]=_[_0x609f('0x2f')](_0x8a2470[_0x609f('0x2e')]);_0x410d44['filters']=_['intersection'](_0x410d44[_0x609f('0x2d')],_0x410d44[_0x609f('0x2e')]);_0x586ef6[_0x609f('0x30')]=_['intersection'](_0x410d44[_0x609f('0x2d')],qs[_0x609f('0x31')](_0x8a2470[_0x609f('0x2e')][_0x609f('0x31')]));_0x586ef6['attributes']=_0x586ef6['attributes'][_0x609f('0x32')]?_0x586ef6[_0x609f('0x30')]:_0x410d44[_0x609f('0x2d')];if(!_0x8a2470[_0x609f('0x2e')][_0x609f('0x33')](_0x609f('0x34'))){_0x586ef6[_0x609f('0x1b')]=qs[_0x609f('0x1b')](_0x8a2470[_0x609f('0x2e')]['limit']);_0x586ef6[_0x609f('0x19')]=qs[_0x609f('0x19')](_0x8a2470['query'][_0x609f('0x19')]);}_0x586ef6[_0x609f('0x35')]=qs[_0x609f('0x36')](_0x8a2470['query']['sort']);_0x586ef6[_0x609f('0x37')]=qs[_0x609f('0x38')](_[_0x609f('0x39')](_0x8a2470['query'],_0x410d44[_0x609f('0x38')]),_0x21a3cc);if(_0x8a2470[_0x609f('0x2e')][_0x609f('0x3a')]){_0x586ef6[_0x609f('0x37')]=_['merge'](_0x586ef6[_0x609f('0x37')],{'$or':_[_0x609f('0x28')](_0x21a3cc,function(_0x5c6d91){if(_0x5c6d91[_0x609f('0x3b')]!==_0x609f('0x3c')){var _0x7575d={};_0x7575d[_0x5c6d91['name']]={'$like':'%'+_0x8a2470[_0x609f('0x2e')][_0x609f('0x3a')]+'%'};return _0x7575d;}})});}_0x586ef6=_[_0x609f('0x3d')]({},_0x586ef6,_0x8a2470[_0x609f('0x3e')]);var _0x4dc4e5={'where':_0x586ef6[_0x609f('0x37')]};return db[_0x609f('0x29')][_0x609f('0x1c')](_0x4dc4e5)[_0x609f('0x20')](function(_0xbf5e84){_0x281203[_0x609f('0x1c')]=_0xbf5e84;if(_0x8a2470[_0x609f('0x2e')][_0x609f('0x3f')]){_0x586ef6[_0x609f('0x40')]=[{'all':!![]}];}return db[_0x609f('0x29')][_0x609f('0x41')](_0x586ef6);})[_0x609f('0x20')](function(_0x2a588e){_0x281203['rows']=_0x2a588e;return _0x281203;})[_0x609f('0x20')](respondWithFilteredResult(_0x2866af,_0x586ef6))['catch'](handleError(_0x2866af,null));};exports[_0x609f('0x42')]=function(_0x14d8ab,_0x34a246){var _0x2e554f={'raw':!![],'where':{'id':_0x14d8ab[_0x609f('0x43')]['id']}},_0x14cfe5={};_0x14cfe5[_0x609f('0x2d')]=_['keys'](db[_0x609f('0x29')][_0x609f('0x2a')]);_0x14cfe5[_0x609f('0x2e')]=_['keys'](_0x14d8ab[_0x609f('0x2e')]);_0x14cfe5[_0x609f('0x38')]=_[_0x609f('0x44')](_0x14cfe5[_0x609f('0x2d')],_0x14cfe5[_0x609f('0x2e')]);_0x2e554f[_0x609f('0x30')]=_['intersection'](_0x14cfe5[_0x609f('0x2d')],qs[_0x609f('0x31')](_0x14d8ab[_0x609f('0x2e')][_0x609f('0x31')]));_0x2e554f[_0x609f('0x30')]=_0x2e554f['attributes'][_0x609f('0x32')]?_0x2e554f[_0x609f('0x30')]:_0x14cfe5[_0x609f('0x2d')];if(_0x14d8ab['query'][_0x609f('0x3f')]){_0x2e554f[_0x609f('0x40')]=[{'all':!![]}];}_0x2e554f=_[_0x609f('0x3d')]({},_0x2e554f,_0x14d8ab[_0x609f('0x3e')]);return db[_0x609f('0x29')][_0x609f('0x45')](_0x2e554f)['then'](handleEntityNotFound(_0x34a246,null))[_0x609f('0x20')](respondWithResult(_0x34a246,null))[_0x609f('0x46')](handleError(_0x34a246,null));};exports[_0x609f('0x47')]=function(_0x20836b,_0xceae0d){return db['SquareRecording'][_0x609f('0x47')](_0x20836b['body'],{})[_0x609f('0x20')](respondWithResult(_0xceae0d,0xc9))[_0x609f('0x46')](handleError(_0xceae0d,null));};exports[_0x609f('0x48')]=function(_0x56296c,_0x2043bb){if(_0x56296c[_0x609f('0x49')]['id']){delete _0x56296c[_0x609f('0x49')]['id'];}return db[_0x609f('0x29')]['find']({'where':{'id':_0x56296c[_0x609f('0x43')]['id']}})[_0x609f('0x20')](handleEntityNotFound(_0x2043bb,null))['then'](saveUpdates(_0x56296c[_0x609f('0x49')],null))[_0x609f('0x20')](respondWithResult(_0x2043bb,null))[_0x609f('0x46')](handleError(_0x2043bb,null));};exports[_0x609f('0x4a')]=function(_0xd55935,_0x2bc73b,_0x3839b2){var _0x3863ec=require(_0x609f('0x4b'));var _0x36eb2f=![];var _0x29d8e0={};if(_0xd55935[_0x609f('0x2e')]['type']&&_0xd55935['query'][_0x609f('0x3b')]===_0x609f('0x4c')){_0x29d8e0['uniqueid']=_0xd55935[_0x609f('0x43')]['id'];}else{_0x29d8e0['id']=_0xd55935[_0x609f('0x43')]['id'];}return db['SquareRecording'][_0x609f('0x45')]({'where':_0x29d8e0,'attributes':['id',_0x609f('0x4d'),'filename'],'raw':!![]})[_0x609f('0x20')](handleEntityNotFound(_0x2bc73b,null))[_0x609f('0x20')](function(_0x1e1f6a){if(_0x1e1f6a){var _0x12d860=_0x1e1f6a['savePath'];var _0x1665d1=util[_0x609f('0x4e')](_0x609f('0x4f'),_0x12d860);if(fs[_0x609f('0x50')](_0x1665d1)){_0x36eb2f=!![];return _0x3863ec['decryptFile'](_0x1665d1,_0x12d860,config[_0x609f('0x51')][_0x609f('0x52')])[_0x609f('0x20')](function(){return _0x1e1f6a;});}return _0x1e1f6a;}})[_0x609f('0x20')](function(_0x45614a){if(_0x45614a){var _0x174427=_0x45614a[_0x609f('0x4d')];if(!fs[_0x609f('0x50')](_0x174427)){throw new db[(_0x609f('0x53'))][(_0x609f('0x54'))](_0x609f('0x55'));}if(_0x45614a[_0x609f('0x56')]){return _0x2bc73b['download'](_0x174427,_0x45614a[_0x609f('0x56')]+path[_0x609f('0x57')](_0x174427),function(){if(_0x36eb2f){fs['unlink'](_0x174427);}});}else{return _0x2bc73b['download'](_0x174427,function(_0x585353){if(_0x36eb2f){fs[_0x609f('0x58')](_0x174427);}});}}})[_0x609f('0x46')](function(_0x5f0e91){if(_0x5f0e91['message']===_0x609f('0x55')){_0x2bc73b[_0x609f('0x17')](0x194)[_0x609f('0x26')](_0x609f('0x59'));}else{return handleError(_0x2bc73b,null);}});};exports[_0x609f('0x21')]=function(_0x8a7cf8,_0x5d8b0e){return db['SquareRecording']['find']({'where':{'id':_0x8a7cf8[_0x609f('0x43')]['id']}})['then'](function(_0x413bba){if(_[_0x609f('0x5a')](_0x413bba)){throw new ReferenceError(_0x609f('0x5b'));}return _0x413bba;})[_0x609f('0x20')](function(_0x58a6f9){var _0x1e92df=_0x58a6f9[_0x609f('0x4d')];logger['info'](_0x609f('0x5c'),_0x1e92df);if(!_[_0x609f('0x5a')](_0x58a6f9[_0x609f('0x4d')])&&fs[_0x609f('0x50')](_0x1e92df)){logger[_0x609f('0x5d')](_0x609f('0x5e')+_0x1e92df+_0x609f('0x5f'));fs[_0x609f('0x60')](_0x1e92df);}_0x1e92df=_0x1e92df+'.cypher';if(!_['isNil'](_0x58a6f9[_0x609f('0x4d')])&&fs['existsSync'](_0x1e92df)){logger[_0x609f('0x5d')](_0x609f('0x5e')+_0x1e92df+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x1e92df);}return _0x58a6f9;})[_0x609f('0x20')](function(_0x1adf12){if(!_0x1adf12)throw new InternalError();return _0x1adf12['destroy']();})[_0x609f('0x20')](function(){_0x5d8b0e['status'](0xcc)[_0x609f('0x22')]();})[_0x609f('0x46')](handleError(_0x5d8b0e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe056=['../../config/environment','define','SquareRecording','../../config/logger','api','moment','request-promise','rimraf'];(function(_0x18056a,_0x3a3d6c){var _0x4c47dd=function(_0x5a57ff){while(--_0x5a57ff){_0x18056a['push'](_0x18056a['shift']());}};_0x4c47dd(++_0x3a3d6c);}(_0xe056,0xdb));var _0x6e05=function(_0x54d52,_0x2473ba){_0x54d52=_0x54d52-0x0;var _0x968345=_0xe056[_0x54d52];return _0x968345;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x6e05('0x0'))(_0x6e05('0x1'));var moment=require(_0x6e05('0x2'));var BPromise=require('bluebird');var rp=require(_0x6e05('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6e05('0x4'));var config=require(_0x6e05('0x5'));var attributes=require('./squareRecording.attributes');module['exports']=function(_0x51e5dd,_0x19837b){return _0x51e5dd[_0x6e05('0x6')](_0x6e05('0x7'),attributes,{'tableName':'square_recordings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8b0e=['path','../../config/environment','./squareRecording.attributes','exports','define','SquareRecording','square_recordings','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x199ee1,_0x2335e2){var _0x49aa05=function(_0x3c2353){while(--_0x3c2353){_0x199ee1['push'](_0x199ee1['shift']());}};_0x49aa05(++_0x2335e2);}(_0x8b0e,0x166));var _0xe8b0=function(_0x56f7e2,_0x145392){_0x56f7e2=_0x56f7e2-0x0;var _0x36240b=_0x8b0e[_0x56f7e2];return _0x36240b;};'use strict';var _=require(_0xe8b0('0x0'));var util=require(_0xe8b0('0x1'));var logger=require(_0xe8b0('0x2'))(_0xe8b0('0x3'));var moment=require(_0xe8b0('0x4'));var BPromise=require(_0xe8b0('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe8b0('0x6'));var rimraf=require('rimraf');var config=require(_0xe8b0('0x7'));var attributes=require(_0xe8b0('0x8'));module[_0xe8b0('0x9')]=function(_0x3cb6bc,_0x1da757){return _0x3cb6bc[_0xe8b0('0xa')](_0xe8b0('0xb'),attributes,{'tableName':_0xe8b0('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fbd=['bluebird','randomstring','ioredis','../../mysqldb','rpc','jayson/promise','http','then','info','request\x20sent','SquareRecording,\x20%s,\x20%s,\x20%s','error','code','SquareRecording,\x20%s,\x20%s','message','result','catch','CreateSquareRecording','SquareRecording','create','body','options','raw','debug','lodash','util','moment'];(function(_0x5c33e8,_0x4c6bdf){var _0x2fa8a8=function(_0x3ca2af){while(--_0x3ca2af){_0x5c33e8['push'](_0x5c33e8['shift']());}};_0x2fa8a8(++_0x4c6bdf);}(_0x5fbd,0x192));var _0xd5fb=function(_0x33715,_0x506e28){_0x33715=_0x33715-0x0;var _0x29bf1e=_0x5fbd[_0x33715];return _0x29bf1e;};'use strict';var _=require(_0xd5fb('0x0'));var util=require(_0xd5fb('0x1'));var moment=require(_0xd5fb('0x2'));var BPromise=require(_0xd5fb('0x3'));var rs=require(_0xd5fb('0x4'));var fs=require('fs');var Redis=require(_0xd5fb('0x5'));var db=require(_0xd5fb('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xd5fb('0x7'));var config=require('../../config/environment');var jayson=require(_0xd5fb('0x8'));var client=jayson['client'][_0xd5fb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29a95b,_0x35fd72,_0x14177){return new BPromise(function(_0x1ceb5e,_0x3b3c24){return client['request'](_0x29a95b,_0x14177)[_0xd5fb('0xa')](function(_0xa0e18b){logger[_0xd5fb('0xb')]('SquareRecording,\x20%s,\x20%s',_0x35fd72,_0xd5fb('0xc'));logger['debug'](_0xd5fb('0xd'),_0x35fd72,_0xd5fb('0xc'),JSON['stringify'](_0xa0e18b));if(_0xa0e18b[_0xd5fb('0xe')]){if(_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0xf')]===0x1f4){logger[_0xd5fb('0xe')](_0xd5fb('0x10'),_0x35fd72,_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);return _0x3b3c24(_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);}logger[_0xd5fb('0xe')]('SquareRecording,\x20%s,\x20%s',_0x35fd72,_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);return _0x1ceb5e(_0xa0e18b['error'][_0xd5fb('0x11')]);}else{logger[_0xd5fb('0xb')](_0xd5fb('0x10'),_0x35fd72,_0xd5fb('0xc'));_0x1ceb5e(_0xa0e18b[_0xd5fb('0x12')][_0xd5fb('0x11')]);}})[_0xd5fb('0x13')](function(_0x36f90b){logger[_0xd5fb('0xe')](_0xd5fb('0x10'),_0x35fd72,_0x36f90b);_0x3b3c24(_0x36f90b);});});}exports[_0xd5fb('0x14')]=function(_0x3f2f2d){var _0x530455=this;return new Promise(function(_0x323f15,_0x4bb600){return db[_0xd5fb('0x15')][_0xd5fb('0x16')](_0x3f2f2d[_0xd5fb('0x17')],{'raw':_0x3f2f2d[_0xd5fb('0x18')]?_0x3f2f2d[_0xd5fb('0x18')][_0xd5fb('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x435783){logger['info']('CreateSquareRecording',_0x3f2f2d);logger[_0xd5fb('0x1a')](_0xd5fb('0x14'),_0x3f2f2d,JSON['stringify'](_0x435783));_0x323f15(_0x435783);})['catch'](function(_0x4ba030){logger[_0xd5fb('0xe')]('CreateSquareRecording',_0x4ba030['message'],_0x3f2f2d);_0x4bb600(_0x530455[_0xd5fb('0xe')](0x1f4,_0x4ba030[_0xd5fb('0x11')]));});});};
\ No newline at end of file
+var _0xeac7=['rpc','../../config/environment','jayson/promise','client','http','request','info','SquareRecording,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','CreateSquareRecording','SquareRecording','options','then','debug','lodash','moment','bluebird','randomstring','ioredis','../../config/utils'];(function(_0x119d5a,_0x19b457){var _0x15bff4=function(_0x1b7c78){while(--_0x1b7c78){_0x119d5a['push'](_0x119d5a['shift']());}};_0x15bff4(++_0x19b457);}(_0xeac7,0x1f2));var _0x7eac=function(_0x49991d,_0x4bd20a){_0x49991d=_0x49991d-0x0;var _0x4a697f=_0xeac7[_0x49991d];return _0x4a697f;};'use strict';var _=require(_0x7eac('0x0'));var util=require('util');var moment=require(_0x7eac('0x1'));var BPromise=require(_0x7eac('0x2'));var rs=require(_0x7eac('0x3'));var fs=require('fs');var Redis=require(_0x7eac('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7eac('0x5'));var logger=require('../../config/logger')(_0x7eac('0x6'));var config=require(_0x7eac('0x7'));var jayson=require(_0x7eac('0x8'));var client=jayson[_0x7eac('0x9')][_0x7eac('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x30776d,_0x235264,_0x23fcd1){return new BPromise(function(_0xd322ee,_0x4ee239){return client[_0x7eac('0xb')](_0x30776d,_0x23fcd1)['then'](function(_0x3eec1b){logger[_0x7eac('0xc')](_0x7eac('0xd'),_0x235264,_0x7eac('0xe'));logger['debug']('SquareRecording,\x20%s,\x20%s,\x20%s',_0x235264,'request\x20sent',JSON[_0x7eac('0xf')](_0x3eec1b));if(_0x3eec1b[_0x7eac('0x10')]){if(_0x3eec1b[_0x7eac('0x10')]['code']===0x1f4){logger[_0x7eac('0x10')](_0x7eac('0xd'),_0x235264,_0x3eec1b[_0x7eac('0x10')][_0x7eac('0x11')]);return _0x4ee239(_0x3eec1b[_0x7eac('0x10')][_0x7eac('0x11')]);}logger['error']('SquareRecording,\x20%s,\x20%s',_0x235264,_0x3eec1b[_0x7eac('0x10')]['message']);return _0xd322ee(_0x3eec1b[_0x7eac('0x10')][_0x7eac('0x11')]);}else{logger[_0x7eac('0xc')](_0x7eac('0xd'),_0x235264,'request\x20sent');_0xd322ee(_0x3eec1b['result'][_0x7eac('0x11')]);}})[_0x7eac('0x12')](function(_0x2b07a9){logger[_0x7eac('0x10')]('SquareRecording,\x20%s,\x20%s',_0x235264,_0x2b07a9);_0x4ee239(_0x2b07a9);});});}exports[_0x7eac('0x13')]=function(_0x27e8c5){var _0x6d243c=this;return new Promise(function(_0x45b4a0,_0x3da49b){return db[_0x7eac('0x14')]['create'](_0x27e8c5['body'],{'raw':_0x27e8c5[_0x7eac('0x15')]?_0x27e8c5[_0x7eac('0x15')]['raw']===undefined?!![]:![]:!![]})[_0x7eac('0x16')](function(_0x5d90a9){logger[_0x7eac('0xc')](_0x7eac('0x13'),_0x27e8c5);logger[_0x7eac('0x17')]('CreateSquareRecording',_0x27e8c5,JSON[_0x7eac('0xf')](_0x5d90a9));_0x45b4a0(_0x5d90a9);})['catch'](function(_0x56fe17){logger[_0x7eac('0x10')](_0x7eac('0x13'),_0x56fe17[_0x7eac('0x11')],_0x27e8c5);_0x3da49b(_0x6d243c[_0x7eac('0x10')](0x1f4,_0x56fe17[_0x7eac('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['/:id','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareReport.controller','get','isAuthenticated','index','/describe','show','post','create','put'];(function(_0x3f61b1,_0x29dd87){var _0x2097cb=function(_0x63b0d3){while(--_0x63b0d3){_0x3f61b1['push'](_0x3f61b1['shift']());}};_0x2097cb(++_0x29dd87);}(_0xbaf0,0x12a));var _0x0baf=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xbaf0[_0x5b644e];return _0x49c6bf;};'use strict';var multer=require('multer');var util=require(_0x0baf('0x0'));var path=require(_0x0baf('0x1'));var timeout=require(_0x0baf('0x2'));var express=require(_0x0baf('0x3'));var router=express[_0x0baf('0x4')]();var fs_extra=require(_0x0baf('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var controller=require(_0x0baf('0x8'));router[_0x0baf('0x9')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xb')]);router[_0x0baf('0x9')](_0x0baf('0xc'),auth[_0x0baf('0xa')](),controller['describe']);router[_0x0baf('0x9')]('/:id',auth[_0x0baf('0xa')](),controller[_0x0baf('0xd')]);router[_0x0baf('0xe')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xf')]);router[_0x0baf('0x10')](_0x0baf('0x11'),auth[_0x0baf('0xa')](),controller[_0x0baf('0x12')]);router[_0x0baf('0x13')](_0x0baf('0x11'),auth['isAuthenticated'](),controller['destroy']);module[_0x0baf('0x14')]=router;
\ No newline at end of file
+var _0xbaf0=['/:id','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareReport.controller','get','isAuthenticated','index','/describe','show','post','create','put'];(function(_0x42b12e,_0x30a62a){var _0x4f872c=function(_0x323653){while(--_0x323653){_0x42b12e['push'](_0x42b12e['shift']());}};_0x4f872c(++_0x30a62a);}(_0xbaf0,0x12a));var _0x0baf=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0xbaf0[_0x465028];return _0xb783d4;};'use strict';var multer=require('multer');var util=require(_0x0baf('0x0'));var path=require(_0x0baf('0x1'));var timeout=require(_0x0baf('0x2'));var express=require(_0x0baf('0x3'));var router=express[_0x0baf('0x4')]();var fs_extra=require(_0x0baf('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var controller=require(_0x0baf('0x8'));router[_0x0baf('0x9')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xb')]);router[_0x0baf('0x9')](_0x0baf('0xc'),auth[_0x0baf('0xa')](),controller['describe']);router[_0x0baf('0x9')]('/:id',auth[_0x0baf('0xa')](),controller[_0x0baf('0xd')]);router[_0x0baf('0xe')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xf')]);router[_0x0baf('0x10')](_0x0baf('0x11'),auth[_0x0baf('0xa')](),controller[_0x0baf('0x12')]);router[_0x0baf('0x13')](_0x0baf('0x11'),auth['isAuthenticated'](),controller['destroy']);module[_0x0baf('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91fe=['exports','STRING','DATE','BOOLEAN'];(function(_0x54d4fe,_0x55e869){var _0x1ab5bb=function(_0x5b1af2){while(--_0x5b1af2){_0x54d4fe['push'](_0x54d4fe['shift']());}};_0x1ab5bb(++_0x55e869);}(_0x91fe,0xf8));var _0xe91f=function(_0x4a1692,_0x30b2bd){_0x4a1692=_0x4a1692-0x0;var _0xf8ca59=_0x91fe[_0x4a1692];return _0xf8ca59;};'use strict';var Sequelize=require('sequelize');module[_0xe91f('0x0')]={'network':{'type':Sequelize['STRING']},'network_script':{'type':Sequelize['STRING']},'request':{'type':Sequelize[_0xe91f('0x1')]},'channel':{'type':Sequelize[_0xe91f('0x1')]},'language':{'type':Sequelize[_0xe91f('0x1')]},'type':{'type':Sequelize[_0xe91f('0x1')]},'uniqueid':{'type':Sequelize[_0xe91f('0x1')]},'version':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0xe91f('0x1')]},'calleridname':{'type':Sequelize[_0xe91f('0x1')]},'callingpres':{'type':Sequelize['STRING']},'callingani2':{'type':Sequelize[_0xe91f('0x1')]},'callington':{'type':Sequelize[_0xe91f('0x1')]},'callingtns':{'type':Sequelize[_0xe91f('0x1')]},'dnid':{'type':Sequelize[_0xe91f('0x1')]},'rdnis':{'type':Sequelize[_0xe91f('0x1')]},'context':{'type':Sequelize[_0xe91f('0x1')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize['STRING']},'enhanced':{'type':Sequelize[_0xe91f('0x1')]},'accountcode':{'type':Sequelize['STRING']},'threadid':{'type':Sequelize[_0xe91f('0x1')]},'project_name':{'type':Sequelize[_0xe91f('0x1')]},'joinAt':{'type':Sequelize[_0xe91f('0x2')]},'leaveAt':{'type':Sequelize[_0xe91f('0x2')]},'bot':{'type':Sequelize[_0xe91f('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x6b09=['DATE','sequelize','exports','STRING'];(function(_0x145b2c,_0xb78d0c){var _0x3a01b9=function(_0x37d91c){while(--_0x37d91c){_0x145b2c['push'](_0x145b2c['shift']());}};_0x3a01b9(++_0xb78d0c);}(_0x6b09,0x17d));var _0x96b0=function(_0x113e32,_0x5339f0){_0x113e32=_0x113e32-0x0;var _0x4ff939=_0x6b09[_0x113e32];return _0x4ff939;};'use strict';var Sequelize=require(_0x96b0('0x0'));module[_0x96b0('0x1')]={'network':{'type':Sequelize[_0x96b0('0x2')]},'network_script':{'type':Sequelize['STRING']},'request':{'type':Sequelize[_0x96b0('0x2')]},'channel':{'type':Sequelize[_0x96b0('0x2')]},'language':{'type':Sequelize[_0x96b0('0x2')]},'type':{'type':Sequelize[_0x96b0('0x2')]},'uniqueid':{'type':Sequelize[_0x96b0('0x2')]},'version':{'type':Sequelize[_0x96b0('0x2')]},'callerid':{'type':Sequelize[_0x96b0('0x2')]},'calleridname':{'type':Sequelize['STRING']},'callingpres':{'type':Sequelize[_0x96b0('0x2')]},'callingani2':{'type':Sequelize[_0x96b0('0x2')]},'callington':{'type':Sequelize[_0x96b0('0x2')]},'callingtns':{'type':Sequelize[_0x96b0('0x2')]},'dnid':{'type':Sequelize[_0x96b0('0x2')]},'rdnis':{'type':Sequelize[_0x96b0('0x2')]},'context':{'type':Sequelize[_0x96b0('0x2')]},'extension':{'type':Sequelize[_0x96b0('0x2')]},'priority':{'type':Sequelize[_0x96b0('0x2')]},'enhanced':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x96b0('0x2')]},'threadid':{'type':Sequelize['STRING']},'project_name':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x96b0('0x3')]},'leaveAt':{'type':Sequelize[_0x96b0('0x3')]},'bot':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95c8=['limit','count','offset','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','index','map','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','SquareReport','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x452450,_0x40b419){var _0x448b19=function(_0x5467b0){while(--_0x5467b0){_0x452450['push'](_0x452450['shift']());}};_0x448b19(++_0x40b419);}(_0x95c8,0x80));var _0x895c=function(_0x37af75,_0x12150b){_0x37af75=_0x37af75-0x0;var _0x5e30b1=_0x95c8[_0x37af75];return _0x5e30b1;};'use strict';var emlformat=require(_0x895c('0x0'));var rimraf=require(_0x895c('0x1'));var zipdir=require(_0x895c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x895c('0x3'));var moment=require(_0x895c('0x4'));var BPromise=require(_0x895c('0x5'));var Mustache=require(_0x895c('0x6'));var util=require(_0x895c('0x7'));var path=require('path');var sox=require(_0x895c('0x8'));var csv=require(_0x895c('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x895c('0xa'));var squel=require(_0x895c('0xb'));var crypto=require(_0x895c('0xc'));var jsforce=require(_0x895c('0xd'));var deskjs=require(_0x895c('0xe'));var toCsv=require(_0x895c('0x9'));var querystring=require(_0x895c('0xf'));var Papa=require(_0x895c('0x10'));var Redis=require(_0x895c('0x11'));var authService=require(_0x895c('0x12'));var qs=require(_0x895c('0x13'));var as=require(_0x895c('0x14'));var hardwareService=require(_0x895c('0x15'));var logger=require(_0x895c('0x16'))(_0x895c('0x17'));var utils=require(_0x895c('0x18'));var config=require(_0x895c('0x19'));var licenseUtil=require(_0x895c('0x1a'));var db=require(_0x895c('0x1b'))['db'];function respondWithStatusCode(_0x552bb2,_0x191e8e){_0x191e8e=_0x191e8e||0xcc;return function(_0x15e3a6){if(_0x15e3a6){return _0x552bb2[_0x895c('0x1c')](_0x191e8e);}return _0x552bb2[_0x895c('0x1d')](_0x191e8e)['end']();};}function respondWithResult(_0xd35380,_0xe26195){_0xe26195=_0xe26195||0xc8;return function(_0x32006b){if(_0x32006b){return _0xd35380[_0x895c('0x1d')](_0xe26195)['json'](_0x32006b);}};}function respondWithFilteredResult(_0x20e581,_0x2a5292){return function(_0x3b13e1){if(_0x3b13e1){var _0xb72604=typeof _0x2a5292['offset']==='undefined'&&typeof _0x2a5292[_0x895c('0x1e')]==='undefined';var _0x4dfb3f=_0x3b13e1[_0x895c('0x1f')];var _0x2fabbd=_0xb72604?0x0:_0x2a5292[_0x895c('0x20')];var _0xb2e029=_0xb72604?_0x3b13e1[_0x895c('0x1f')]:_0x2a5292[_0x895c('0x20')]+_0x2a5292[_0x895c('0x1e')];var _0x42ea44;if(_0xb2e029>=_0x4dfb3f){_0xb2e029=_0x4dfb3f;_0x42ea44=0xc8;}else{_0x42ea44=0xce;}_0x20e581[_0x895c('0x1d')](_0x42ea44);return _0x20e581['set'](_0x895c('0x21'),_0x2fabbd+'-'+_0xb2e029+'/'+_0x4dfb3f)[_0x895c('0x22')](_0x3b13e1);}return null;};}function patchUpdates(_0x1e4ed2){return function(_0x41e87d){try{jsonpatch[_0x895c('0x23')](_0x41e87d,_0x1e4ed2,!![]);}catch(_0x3ecb97){return BPromise[_0x895c('0x24')](_0x3ecb97);}return _0x41e87d[_0x895c('0x25')]();};}function saveUpdates(_0x222759,_0x589f26){return function(_0x17fe95){if(_0x17fe95){return _0x17fe95[_0x895c('0x26')](_0x222759)[_0x895c('0x27')](function(_0x5051cf){return _0x5051cf;});}return null;};}function removeEntity(_0x5c8741,_0x46e54d){return function(_0x2cc4ec){if(_0x2cc4ec){return _0x2cc4ec['destroy']()[_0x895c('0x27')](function(){_0x5c8741[_0x895c('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x30903a,_0x4686d5){return function(_0x5c6454){if(!_0x5c6454){_0x30903a[_0x895c('0x1c')](0x194);}return _0x5c6454;};}function handleError(_0x5cd245,_0x12bbb6){_0x12bbb6=_0x12bbb6||0x1f4;return function(_0x5346f1){logger[_0x895c('0x28')](_0x5346f1[_0x895c('0x29')]);if(_0x5346f1[_0x895c('0x2a')]){delete _0x5346f1['name'];}_0x5cd245[_0x895c('0x1d')](_0x12bbb6)[_0x895c('0x2b')](_0x5346f1);};}exports[_0x895c('0x2c')]=function(_0x4a8425,_0x322ca2){var _0x53f010={},_0x3cb0a8={},_0x48795b={'count':0x0,'rows':[]};var _0x9129e9=_[_0x895c('0x2d')](db['SquareReport'][_0x895c('0x2e')],function(_0x35a99c){return{'name':_0x35a99c['fieldName'],'type':_0x35a99c[_0x895c('0x2f')][_0x895c('0x30')]};});_0x3cb0a8[_0x895c('0x31')]=_[_0x895c('0x2d')](_0x9129e9,'name');_0x3cb0a8['query']=_[_0x895c('0x32')](_0x4a8425[_0x895c('0x33')]);_0x3cb0a8[_0x895c('0x34')]=_[_0x895c('0x35')](_0x3cb0a8['model'],_0x3cb0a8[_0x895c('0x33')]);_0x53f010[_0x895c('0x36')]=_[_0x895c('0x35')](_0x3cb0a8[_0x895c('0x31')],qs['fields'](_0x4a8425['query'][_0x895c('0x37')]));_0x53f010[_0x895c('0x36')]=_0x53f010['attributes']['length']?_0x53f010['attributes']:_0x3cb0a8[_0x895c('0x31')];if(!_0x4a8425[_0x895c('0x33')][_0x895c('0x38')](_0x895c('0x39'))){_0x53f010[_0x895c('0x1e')]=qs['limit'](_0x4a8425[_0x895c('0x33')]['limit']);_0x53f010[_0x895c('0x20')]=qs[_0x895c('0x20')](_0x4a8425[_0x895c('0x33')][_0x895c('0x20')]);}_0x53f010[_0x895c('0x3a')]=qs[_0x895c('0x3b')](_0x4a8425['query']['sort']);_0x53f010[_0x895c('0x3c')]=qs[_0x895c('0x34')](_[_0x895c('0x3d')](_0x4a8425[_0x895c('0x33')],_0x3cb0a8['filters']),_0x9129e9);if(_0x4a8425['query'][_0x895c('0x3e')]){_0x53f010[_0x895c('0x3c')]=_[_0x895c('0x3f')](_0x53f010['where'],{'$or':_[_0x895c('0x2d')](_0x9129e9,function(_0x52c771){if(_0x52c771[_0x895c('0x2f')]!==_0x895c('0x40')){var _0x14a790={};_0x14a790[_0x52c771['name']]={'$like':'%'+_0x4a8425[_0x895c('0x33')][_0x895c('0x3e')]+'%'};return _0x14a790;}})});}_0x53f010=_[_0x895c('0x3f')]({},_0x53f010,_0x4a8425[_0x895c('0x41')]);var _0x336a95={'where':_0x53f010[_0x895c('0x3c')]};return db[_0x895c('0x42')]['count'](_0x336a95)[_0x895c('0x27')](function(_0x41b4b6){_0x48795b[_0x895c('0x1f')]=_0x41b4b6;if(_0x4a8425[_0x895c('0x33')][_0x895c('0x43')]){_0x53f010[_0x895c('0x44')]=[{'all':!![]}];}return db[_0x895c('0x42')][_0x895c('0x45')](_0x53f010);})[_0x895c('0x27')](function(_0x23eae1){_0x48795b[_0x895c('0x46')]=_0x23eae1;return _0x48795b;})[_0x895c('0x27')](respondWithFilteredResult(_0x322ca2,_0x53f010))[_0x895c('0x47')](handleError(_0x322ca2,null));};exports[_0x895c('0x48')]=function(_0x32f042,_0x5654c3){var _0x3ef075={'raw':!![],'where':{'id':_0x32f042[_0x895c('0x49')]['id']}},_0x4d91b3={};_0x4d91b3[_0x895c('0x31')]=_['keys'](db[_0x895c('0x42')][_0x895c('0x2e')]);_0x4d91b3[_0x895c('0x33')]=_['keys'](_0x32f042['query']);_0x4d91b3[_0x895c('0x34')]=_[_0x895c('0x35')](_0x4d91b3[_0x895c('0x31')],_0x4d91b3[_0x895c('0x33')]);_0x3ef075[_0x895c('0x36')]=_['intersection'](_0x4d91b3[_0x895c('0x31')],qs[_0x895c('0x37')](_0x32f042[_0x895c('0x33')][_0x895c('0x37')]));_0x3ef075['attributes']=_0x3ef075['attributes'][_0x895c('0x4a')]?_0x3ef075['attributes']:_0x4d91b3['model'];if(_0x32f042['query'][_0x895c('0x43')]){_0x3ef075[_0x895c('0x44')]=[{'all':!![]}];}_0x3ef075=_[_0x895c('0x3f')]({},_0x3ef075,_0x32f042['options']);return db[_0x895c('0x42')][_0x895c('0x4b')](_0x3ef075)['then'](handleEntityNotFound(_0x5654c3,null))[_0x895c('0x27')](respondWithResult(_0x5654c3,null))[_0x895c('0x47')](handleError(_0x5654c3,null));};exports[_0x895c('0x4c')]=function(_0x300045,_0x5d9323){return db[_0x895c('0x42')][_0x895c('0x4c')](_0x300045['body'],{})[_0x895c('0x27')](respondWithResult(_0x5d9323,0xc9))['catch'](handleError(_0x5d9323,null));};exports[_0x895c('0x26')]=function(_0x3e3dc3,_0x5f2b0c){if(_0x3e3dc3[_0x895c('0x4d')]['id']){delete _0x3e3dc3['body']['id'];}return db[_0x895c('0x42')][_0x895c('0x4b')]({'where':{'id':_0x3e3dc3[_0x895c('0x49')]['id']}})[_0x895c('0x27')](handleEntityNotFound(_0x5f2b0c,null))['then'](saveUpdates(_0x3e3dc3['body'],null))[_0x895c('0x27')](respondWithResult(_0x5f2b0c,null))[_0x895c('0x47')](handleError(_0x5f2b0c,null));};exports['destroy']=function(_0x5e321a,_0x566cf1){return db['SquareReport']['find']({'where':{'id':_0x5e321a['params']['id']}})[_0x895c('0x27')](handleEntityNotFound(_0x566cf1,null))['then'](removeEntity(_0x566cf1,null))[_0x895c('0x47')](handleError(_0x566cf1,null));};exports[_0x895c('0x4e')]=function(_0x507b4c,_0x9f09e1){return db['SquareReport'][_0x895c('0x4e')]()['then'](respondWithResult(_0x9f09e1,null))[_0x895c('0x47')](handleError(_0x9f09e1,null));};
\ No newline at end of file
+var _0x9f30=['offset','set','reject','save','then','destroy','error','stack','name','send','index','map','SquareReport','rawAttributes','key','model','keys','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','include','findAll','rows','catch','show','intersection','includeAll','options','create','body','update','find','params','describe','eml-format','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count'];(function(_0xaf33a2,_0x3038e1){var _0x37d5a3=function(_0x52263c){while(--_0x52263c){_0xaf33a2['push'](_0xaf33a2['shift']());}};_0x37d5a3(++_0x3038e1);}(_0x9f30,0x76));var _0x09f3=function(_0x2783d9,_0x218555){_0x2783d9=_0x2783d9-0x0;var _0x405d9c=_0x9f30[_0x2783d9];return _0x405d9c;};'use strict';var emlformat=require(_0x09f3('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x09f3('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x09f3('0x2'));var util=require(_0x09f3('0x3'));var path=require('path');var sox=require(_0x09f3('0x4'));var csv=require(_0x09f3('0x5'));var ejs=require(_0x09f3('0x6'));var fs=require('fs');var fs_extra=require(_0x09f3('0x7'));var _=require(_0x09f3('0x8'));var squel=require(_0x09f3('0x9'));var crypto=require(_0x09f3('0xa'));var jsforce=require(_0x09f3('0xb'));var deskjs=require(_0x09f3('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x09f3('0xd'));var qs=require(_0x09f3('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x09f3('0xf'));var logger=require(_0x09f3('0x10'))('api');var utils=require(_0x09f3('0x11'));var config=require(_0x09f3('0x12'));var licenseUtil=require(_0x09f3('0x13'));var db=require(_0x09f3('0x14'))['db'];function respondWithStatusCode(_0x16fabe,_0x2eb2a0){_0x2eb2a0=_0x2eb2a0||0xcc;return function(_0x104e9c){if(_0x104e9c){return _0x16fabe[_0x09f3('0x15')](_0x2eb2a0);}return _0x16fabe['status'](_0x2eb2a0)[_0x09f3('0x16')]();};}function respondWithResult(_0xb7b2c3,_0x2d5865){_0x2d5865=_0x2d5865||0xc8;return function(_0x4b03ea){if(_0x4b03ea){return _0xb7b2c3[_0x09f3('0x17')](_0x2d5865)[_0x09f3('0x18')](_0x4b03ea);}};}function respondWithFilteredResult(_0x18487f,_0x26a9fd){return function(_0x2342af){if(_0x2342af){var _0x292ddf=typeof _0x26a9fd['offset']===_0x09f3('0x19')&&typeof _0x26a9fd[_0x09f3('0x1a')]===_0x09f3('0x19');var _0x3552ff=_0x2342af[_0x09f3('0x1b')];var _0x434cd2=_0x292ddf?0x0:_0x26a9fd[_0x09f3('0x1c')];var _0x59c144=_0x292ddf?_0x2342af[_0x09f3('0x1b')]:_0x26a9fd['offset']+_0x26a9fd[_0x09f3('0x1a')];var _0x30fa3a;if(_0x59c144>=_0x3552ff){_0x59c144=_0x3552ff;_0x30fa3a=0xc8;}else{_0x30fa3a=0xce;}_0x18487f['status'](_0x30fa3a);return _0x18487f[_0x09f3('0x1d')]('Content-Range',_0x434cd2+'-'+_0x59c144+'/'+_0x3552ff)[_0x09f3('0x18')](_0x2342af);}return null;};}function patchUpdates(_0x1b541b){return function(_0x41f424){try{jsonpatch['apply'](_0x41f424,_0x1b541b,!![]);}catch(_0x3159f8){return BPromise[_0x09f3('0x1e')](_0x3159f8);}return _0x41f424[_0x09f3('0x1f')]();};}function saveUpdates(_0x53c9f3,_0x9884af){return function(_0xb2b8b9){if(_0xb2b8b9){return _0xb2b8b9['update'](_0x53c9f3)[_0x09f3('0x20')](function(_0x2811af){return _0x2811af;});}return null;};}function removeEntity(_0x5bdc21,_0x5a6063){return function(_0x302f33){if(_0x302f33){return _0x302f33[_0x09f3('0x21')]()['then'](function(){_0x5bdc21['status'](0xcc)[_0x09f3('0x16')]();});}};}function handleEntityNotFound(_0x4087f2,_0x3d6e56){return function(_0x2523ce){if(!_0x2523ce){_0x4087f2[_0x09f3('0x15')](0x194);}return _0x2523ce;};}function handleError(_0x248d1d,_0x3bbcaf){_0x3bbcaf=_0x3bbcaf||0x1f4;return function(_0xdf6673){logger[_0x09f3('0x22')](_0xdf6673[_0x09f3('0x23')]);if(_0xdf6673[_0x09f3('0x24')]){delete _0xdf6673['name'];}_0x248d1d[_0x09f3('0x17')](_0x3bbcaf)[_0x09f3('0x25')](_0xdf6673);};}exports[_0x09f3('0x26')]=function(_0xfb32b9,_0x5b8e0d){var _0x135a21={},_0x21bd91={},_0x1bc200={'count':0x0,'rows':[]};var _0x13cd09=_[_0x09f3('0x27')](db[_0x09f3('0x28')][_0x09f3('0x29')],function(_0x48b709){return{'name':_0x48b709['fieldName'],'type':_0x48b709['type'][_0x09f3('0x2a')]};});_0x21bd91[_0x09f3('0x2b')]=_[_0x09f3('0x27')](_0x13cd09,_0x09f3('0x24'));_0x21bd91['query']=_[_0x09f3('0x2c')](_0xfb32b9[_0x09f3('0x2d')]);_0x21bd91[_0x09f3('0x2e')]=_['intersection'](_0x21bd91['model'],_0x21bd91['query']);_0x135a21[_0x09f3('0x2f')]=_['intersection'](_0x21bd91[_0x09f3('0x2b')],qs[_0x09f3('0x30')](_0xfb32b9[_0x09f3('0x2d')][_0x09f3('0x30')]));_0x135a21[_0x09f3('0x2f')]=_0x135a21[_0x09f3('0x2f')][_0x09f3('0x31')]?_0x135a21[_0x09f3('0x2f')]:_0x21bd91[_0x09f3('0x2b')];if(!_0xfb32b9[_0x09f3('0x2d')][_0x09f3('0x32')](_0x09f3('0x33'))){_0x135a21['limit']=qs[_0x09f3('0x1a')](_0xfb32b9[_0x09f3('0x2d')][_0x09f3('0x1a')]);_0x135a21['offset']=qs[_0x09f3('0x1c')](_0xfb32b9[_0x09f3('0x2d')][_0x09f3('0x1c')]);}_0x135a21[_0x09f3('0x34')]=qs[_0x09f3('0x35')](_0xfb32b9[_0x09f3('0x2d')][_0x09f3('0x35')]);_0x135a21[_0x09f3('0x36')]=qs[_0x09f3('0x2e')](_[_0x09f3('0x37')](_0xfb32b9[_0x09f3('0x2d')],_0x21bd91[_0x09f3('0x2e')]),_0x13cd09);if(_0xfb32b9[_0x09f3('0x2d')][_0x09f3('0x38')]){_0x135a21['where']=_[_0x09f3('0x39')](_0x135a21[_0x09f3('0x36')],{'$or':_[_0x09f3('0x27')](_0x13cd09,function(_0x107a58){if(_0x107a58[_0x09f3('0x3a')]!=='VIRTUAL'){var _0x42bc48={};_0x42bc48[_0x107a58[_0x09f3('0x24')]]={'$like':'%'+_0xfb32b9[_0x09f3('0x2d')][_0x09f3('0x38')]+'%'};return _0x42bc48;}})});}_0x135a21=_[_0x09f3('0x39')]({},_0x135a21,_0xfb32b9['options']);var _0xc4f478={'where':_0x135a21[_0x09f3('0x36')]};return db[_0x09f3('0x28')][_0x09f3('0x1b')](_0xc4f478)[_0x09f3('0x20')](function(_0x16d71d){_0x1bc200['count']=_0x16d71d;if(_0xfb32b9[_0x09f3('0x2d')]['includeAll']){_0x135a21[_0x09f3('0x3b')]=[{'all':!![]}];}return db['SquareReport'][_0x09f3('0x3c')](_0x135a21);})[_0x09f3('0x20')](function(_0x1b94a7){_0x1bc200[_0x09f3('0x3d')]=_0x1b94a7;return _0x1bc200;})['then'](respondWithFilteredResult(_0x5b8e0d,_0x135a21))[_0x09f3('0x3e')](handleError(_0x5b8e0d,null));};exports[_0x09f3('0x3f')]=function(_0x58693e,_0x2fd0ce){var _0x2b8713={'raw':!![],'where':{'id':_0x58693e['params']['id']}},_0x1efc41={};_0x1efc41[_0x09f3('0x2b')]=_['keys'](db[_0x09f3('0x28')][_0x09f3('0x29')]);_0x1efc41[_0x09f3('0x2d')]=_[_0x09f3('0x2c')](_0x58693e[_0x09f3('0x2d')]);_0x1efc41[_0x09f3('0x2e')]=_['intersection'](_0x1efc41[_0x09f3('0x2b')],_0x1efc41['query']);_0x2b8713[_0x09f3('0x2f')]=_[_0x09f3('0x40')](_0x1efc41[_0x09f3('0x2b')],qs[_0x09f3('0x30')](_0x58693e[_0x09f3('0x2d')][_0x09f3('0x30')]));_0x2b8713[_0x09f3('0x2f')]=_0x2b8713['attributes']['length']?_0x2b8713['attributes']:_0x1efc41[_0x09f3('0x2b')];if(_0x58693e[_0x09f3('0x2d')][_0x09f3('0x41')]){_0x2b8713[_0x09f3('0x3b')]=[{'all':!![]}];}_0x2b8713=_[_0x09f3('0x39')]({},_0x2b8713,_0x58693e[_0x09f3('0x42')]);return db[_0x09f3('0x28')]['find'](_0x2b8713)['then'](handleEntityNotFound(_0x2fd0ce,null))['then'](respondWithResult(_0x2fd0ce,null))[_0x09f3('0x3e')](handleError(_0x2fd0ce,null));};exports['create']=function(_0x26c69b,_0x483598){return db[_0x09f3('0x28')][_0x09f3('0x43')](_0x26c69b[_0x09f3('0x44')],{})[_0x09f3('0x20')](respondWithResult(_0x483598,0xc9))[_0x09f3('0x3e')](handleError(_0x483598,null));};exports[_0x09f3('0x45')]=function(_0x6dd30e,_0x53edfc){if(_0x6dd30e[_0x09f3('0x44')]['id']){delete _0x6dd30e['body']['id'];}return db[_0x09f3('0x28')][_0x09f3('0x46')]({'where':{'id':_0x6dd30e[_0x09f3('0x47')]['id']}})['then'](handleEntityNotFound(_0x53edfc,null))['then'](saveUpdates(_0x6dd30e['body'],null))['then'](respondWithResult(_0x53edfc,null))['catch'](handleError(_0x53edfc,null));};exports[_0x09f3('0x21')]=function(_0x1e51e0,_0x3f613d){return db[_0x09f3('0x28')][_0x09f3('0x46')]({'where':{'id':_0x1e51e0[_0x09f3('0x47')]['id']}})[_0x09f3('0x20')](handleEntityNotFound(_0x3f613d,null))[_0x09f3('0x20')](removeEntity(_0x3f613d,null))[_0x09f3('0x3e')](handleError(_0x3f613d,null));};exports[_0x09f3('0x48')]=function(_0x3c94f7,_0x32e6c7){return db[_0x09f3('0x28')][_0x09f3('0x48')]()[_0x09f3('0x20')](respondWithResult(_0x32e6c7,null))[_0x09f3('0x3e')](handleError(_0x32e6c7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae9f=['moment','request-promise','rimraf','exports','define','SquareReport','uid_pname','uniqueid','project_name','leaveAt','lodash','util','../../config/logger','api'];(function(_0x23dc2e,_0x501165){var _0x23efb4=function(_0x2cbf4a){while(--_0x2cbf4a){_0x23dc2e['push'](_0x23dc2e['shift']());}};_0x23efb4(++_0x501165);}(_0xae9f,0x114));var _0xfae9=function(_0x331f1b,_0x47ff19){_0x331f1b=_0x331f1b-0x0;var _0x50bc14=_0xae9f[_0x331f1b];return _0x50bc14;};'use strict';var _=require(_0xfae9('0x0'));var util=require(_0xfae9('0x1'));var logger=require(_0xfae9('0x2'))(_0xfae9('0x3'));var moment=require(_0xfae9('0x4'));var BPromise=require('bluebird');var rp=require(_0xfae9('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xfae9('0x6'));var config=require('../../config/environment');var attributes=require('./squareReport.attributes');module[_0xfae9('0x7')]=function(_0x589798,_0x55ba5d){return _0x589798[_0xfae9('0x8')](_0xfae9('0x9'),attributes,{'tableName':'report_square','paranoid':![],'indexes':[{'name':_0xfae9('0xa'),'fields':[_0xfae9('0xb'),_0xfae9('0xc')]},{'name':_0xfae9('0xd'),'fields':[_0xfae9('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0bce=['lodash','util','api','bluebird','request-promise','path','../../config/environment','./squareReport.attributes','exports','define','report_square','uid_pname','uniqueid'];(function(_0x4110fa,_0x2695bd){var _0x31343f=function(_0x214afe){while(--_0x214afe){_0x4110fa['push'](_0x4110fa['shift']());}};_0x31343f(++_0x2695bd);}(_0x0bce,0x12b));var _0xe0bc=function(_0x5252b8,_0x56e845){_0x5252b8=_0x5252b8-0x0;var _0x14bb8e=_0x0bce[_0x5252b8];return _0x14bb8e;};'use strict';var _=require(_0xe0bc('0x0'));var util=require(_0xe0bc('0x1'));var logger=require('../../config/logger')(_0xe0bc('0x2'));var moment=require('moment');var BPromise=require(_0xe0bc('0x3'));var rp=require(_0xe0bc('0x4'));var fs=require('fs');var path=require(_0xe0bc('0x5'));var rimraf=require('rimraf');var config=require(_0xe0bc('0x6'));var attributes=require(_0xe0bc('0x7'));module[_0xe0bc('0x8')]=function(_0x43c4d2,_0x13cb55){return _0x43c4d2[_0xe0bc('0x9')]('SquareReport',attributes,{'tableName':_0xe0bc('0xa'),'paranoid':![],'indexes':[{'name':_0xe0bc('0xb'),'fields':[_0xe0bc('0xc'),'project_name']},{'name':'leaveAt','fields':['leaveAt']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff66=['body','options','raw','CreateSquareReport','UpdateSquareReport','update','where','catch','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','then','info','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','message','SquareReport,\x20%s,\x20%s','result','SquareReport','create'];(function(_0x221153,_0x59738b){var _0x43938d=function(_0x241bec){while(--_0x241bec){_0x221153['push'](_0x221153['shift']());}};_0x43938d(++_0x59738b);}(_0xff66,0x1ac));var _0x6ff6=function(_0x2d4421,_0x15a84f){_0x2d4421=_0x2d4421-0x0;var _0x2d3b01=_0xff66[_0x2d4421];return _0x2d3b01;};'use strict';var _=require(_0x6ff6('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6ff6('0x1'));var rs=require(_0x6ff6('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6ff6('0x3'))['db'];var utils=require(_0x6ff6('0x4'));var logger=require('../../config/logger')(_0x6ff6('0x5'));var config=require(_0x6ff6('0x6'));var jayson=require(_0x6ff6('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3c31d3,_0x4db195,_0x361cc2){return new BPromise(function(_0x4801c2,_0x1fff68){return client['request'](_0x3c31d3,_0x361cc2)[_0x6ff6('0x8')](function(_0x397344){logger[_0x6ff6('0x9')]('SquareReport,\x20%s,\x20%s',_0x4db195,_0x6ff6('0xa'));logger[_0x6ff6('0xb')](_0x6ff6('0xc'),_0x4db195,'request\x20sent',JSON[_0x6ff6('0xd')](_0x397344));if(_0x397344[_0x6ff6('0xe')]){if(_0x397344[_0x6ff6('0xe')]['code']===0x1f4){logger[_0x6ff6('0xe')]('SquareReport,\x20%s,\x20%s',_0x4db195,_0x397344['error'][_0x6ff6('0xf')]);return _0x1fff68(_0x397344[_0x6ff6('0xe')][_0x6ff6('0xf')]);}logger[_0x6ff6('0xe')](_0x6ff6('0x10'),_0x4db195,_0x397344['error']['message']);return _0x4801c2(_0x397344[_0x6ff6('0xe')][_0x6ff6('0xf')]);}else{logger[_0x6ff6('0x9')](_0x6ff6('0x10'),_0x4db195,'request\x20sent');_0x4801c2(_0x397344[_0x6ff6('0x11')][_0x6ff6('0xf')]);}})['catch'](function(_0xc6084f){logger['error'](_0x6ff6('0x10'),_0x4db195,_0xc6084f);_0x1fff68(_0xc6084f);});});}exports['CreateSquareReport']=function(_0x353ee3){var _0x864ef8=this;return new Promise(function(_0x4f2dcb,_0x4b3c70){return db[_0x6ff6('0x12')][_0x6ff6('0x13')](_0x353ee3[_0x6ff6('0x14')],{'raw':_0x353ee3[_0x6ff6('0x15')]?_0x353ee3[_0x6ff6('0x15')][_0x6ff6('0x16')]===undefined?!![]:![]:!![]})[_0x6ff6('0x8')](function(_0xfebe34){logger[_0x6ff6('0x9')](_0x6ff6('0x17'),_0x353ee3);logger[_0x6ff6('0xb')](_0x6ff6('0x17'),_0x353ee3,JSON[_0x6ff6('0xd')](_0xfebe34));_0x4f2dcb(_0xfebe34);})['catch'](function(_0x400ba5){logger['error'](_0x6ff6('0x17'),_0x400ba5[_0x6ff6('0xf')],_0x353ee3);_0x4b3c70(_0x864ef8[_0x6ff6('0xe')](0x1f4,_0x400ba5['message']));});});};exports[_0x6ff6('0x18')]=function(_0x11d4da){var _0x178ac2=this;return new Promise(function(_0x5c470f,_0x4ab8f6){return db[_0x6ff6('0x12')][_0x6ff6('0x19')](_0x11d4da['body'],{'raw':_0x11d4da['options']?_0x11d4da[_0x6ff6('0x15')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x11d4da[_0x6ff6('0x15')]?_0x11d4da[_0x6ff6('0x15')][_0x6ff6('0x1a')]||null:null,'attributes':_0x11d4da[_0x6ff6('0x15')]?_0x11d4da[_0x6ff6('0x15')]['attributes']||null:null,'limit':_0x11d4da['options']?_0x11d4da[_0x6ff6('0x15')]['limit']||null:null})[_0x6ff6('0x8')](function(_0x44b03c){logger[_0x6ff6('0x9')]('UpdateSquareReport',_0x11d4da);logger[_0x6ff6('0xb')](_0x6ff6('0x18'),_0x11d4da,JSON[_0x6ff6('0xd')](_0x44b03c));_0x5c470f(_0x44b03c);})[_0x6ff6('0x1b')](function(_0x25fa4d){logger[_0x6ff6('0xe')](_0x6ff6('0x18'),_0x25fa4d[_0x6ff6('0xf')],_0x11d4da);_0x4ab8f6(_0x178ac2[_0x6ff6('0xe')](0x1f4,_0x25fa4d['message']));});});};
\ No newline at end of file
+var _0xde3c=['result','catch','CreateSquareReport','SquareReport','create','body','options','info','UpdateSquareReport','raw','where','attributes','limit','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','SquareReport,\x20%s,\x20%s','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x59fd89,_0x3a3b28){var _0x3f1704=function(_0x3973d0){while(--_0x3973d0){_0x59fd89['push'](_0x59fd89['shift']());}};_0x3f1704(++_0x3a3b28);}(_0xde3c,0x1e9));var _0xcde3=function(_0x5cb108,_0x4e2a77){_0x5cb108=_0x5cb108-0x0;var _0x1d9ea1=_0xde3c[_0x5cb108];return _0x1d9ea1;};'use strict';var _=require('lodash');var util=require(_0xcde3('0x0'));var moment=require(_0xcde3('0x1'));var BPromise=require(_0xcde3('0x2'));var rs=require(_0xcde3('0x3'));var fs=require('fs');var Redis=require(_0xcde3('0x4'));var db=require(_0xcde3('0x5'))['db'];var utils=require(_0xcde3('0x6'));var logger=require(_0xcde3('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xcde3('0x8'));var client=jayson[_0xcde3('0x9')][_0xcde3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2cbe76,_0x380ab5,_0x165f4b){return new BPromise(function(_0x28ad5b,_0x481761){return client[_0xcde3('0xb')](_0x2cbe76,_0x165f4b)[_0xcde3('0xc')](function(_0x21a4ac){logger['info'](_0xcde3('0xd'),_0x380ab5,_0xcde3('0xe'));logger[_0xcde3('0xf')](_0xcde3('0x10'),_0x380ab5,_0xcde3('0xe'),JSON[_0xcde3('0x11')](_0x21a4ac));if(_0x21a4ac['error']){if(_0x21a4ac[_0xcde3('0x12')][_0xcde3('0x13')]===0x1f4){logger[_0xcde3('0x12')](_0xcde3('0xd'),_0x380ab5,_0x21a4ac[_0xcde3('0x12')]['message']);return _0x481761(_0x21a4ac[_0xcde3('0x12')][_0xcde3('0x14')]);}logger[_0xcde3('0x12')](_0xcde3('0xd'),_0x380ab5,_0x21a4ac[_0xcde3('0x12')][_0xcde3('0x14')]);return _0x28ad5b(_0x21a4ac[_0xcde3('0x12')][_0xcde3('0x14')]);}else{logger['info'](_0xcde3('0xd'),_0x380ab5,_0xcde3('0xe'));_0x28ad5b(_0x21a4ac[_0xcde3('0x15')]['message']);}})[_0xcde3('0x16')](function(_0x56f368){logger[_0xcde3('0x12')](_0xcde3('0xd'),_0x380ab5,_0x56f368);_0x481761(_0x56f368);});});}exports[_0xcde3('0x17')]=function(_0x127904){var _0x1fcfa9=this;return new Promise(function(_0x40b3c4,_0x5e2fb0){return db[_0xcde3('0x18')][_0xcde3('0x19')](_0x127904[_0xcde3('0x1a')],{'raw':_0x127904[_0xcde3('0x1b')]?_0x127904[_0xcde3('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0xcde3('0xc')](function(_0x1da08f){logger[_0xcde3('0x1c')](_0xcde3('0x17'),_0x127904);logger[_0xcde3('0xf')](_0xcde3('0x17'),_0x127904,JSON[_0xcde3('0x11')](_0x1da08f));_0x40b3c4(_0x1da08f);})[_0xcde3('0x16')](function(_0x10619f){logger['error'](_0xcde3('0x17'),_0x10619f[_0xcde3('0x14')],_0x127904);_0x5e2fb0(_0x1fcfa9['error'](0x1f4,_0x10619f[_0xcde3('0x14')]));});});};exports[_0xcde3('0x1d')]=function(_0x2b5ea9){var _0x1dba2c=this;return new Promise(function(_0x59ca28,_0x1597e3){return db[_0xcde3('0x18')]['update'](_0x2b5ea9['body'],{'raw':_0x2b5ea9[_0xcde3('0x1b')]?_0x2b5ea9[_0xcde3('0x1b')][_0xcde3('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2b5ea9[_0xcde3('0x1b')]?_0x2b5ea9[_0xcde3('0x1b')][_0xcde3('0x1f')]||null:null,'attributes':_0x2b5ea9[_0xcde3('0x1b')]?_0x2b5ea9[_0xcde3('0x1b')][_0xcde3('0x20')]||null:null,'limit':_0x2b5ea9[_0xcde3('0x1b')]?_0x2b5ea9[_0xcde3('0x1b')][_0xcde3('0x21')]||null:null})[_0xcde3('0xc')](function(_0x26d2ba){logger[_0xcde3('0x1c')](_0xcde3('0x1d'),_0x2b5ea9);logger[_0xcde3('0xf')](_0xcde3('0x1d'),_0x2b5ea9,JSON[_0xcde3('0x11')](_0x26d2ba));_0x59ca28(_0x26d2ba);})[_0xcde3('0x16')](function(_0x43f5dd){logger[_0xcde3('0x12')]('UpdateSquareReport',_0x43f5dd['message'],_0x2b5ea9);_0x1597e3(_0x1dba2c['error'](0x1f4,_0x43f5dd['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa16b=['put','update','/:id','destroy','exports','multer','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','get','isAuthenticated','index','describe','show','post'];(function(_0x29bd5d,_0xb12096){var _0x14f0e2=function(_0x2c732c){while(--_0x2c732c){_0x29bd5d['push'](_0x29bd5d['shift']());}};_0x14f0e2(++_0xb12096);}(_0xa16b,0x10f));var _0xba16=function(_0x313dd3,_0x4afd33){_0x313dd3=_0x313dd3-0x0;var _0x2ad984=_0xa16b[_0x313dd3];return _0x2ad984;};'use strict';var multer=require(_0xba16('0x0'));var util=require(_0xba16('0x1'));var path=require(_0xba16('0x2'));var timeout=require(_0xba16('0x3'));var express=require(_0xba16('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xba16('0x5'));var config=require(_0xba16('0x6'));var controller=require(_0xba16('0x7'));router[_0xba16('0x8')]('/',auth[_0xba16('0x9')](),controller[_0xba16('0xa')]);router['get']('/describe',auth[_0xba16('0x9')](),controller[_0xba16('0xb')]);router[_0xba16('0x8')]('/:id',auth['isAuthenticated'](),controller[_0xba16('0xc')]);router[_0xba16('0xd')]('/',auth[_0xba16('0x9')](),controller['create']);router[_0xba16('0xe')]('/:id',auth[_0xba16('0x9')](),controller[_0xba16('0xf')]);router['delete'](_0xba16('0x10'),auth[_0xba16('0x9')](),controller[_0xba16('0x11')]);module[_0xba16('0x12')]=router;
\ No newline at end of file
+var _0xcfcc=['multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','post','create','put','/:id','delete','destroy','exports'];(function(_0x252547,_0x3b877e){var _0x4703d5=function(_0x3760b6){while(--_0x3760b6){_0x252547['push'](_0x252547['shift']());}};_0x4703d5(++_0x3b877e);}(_0xcfcc,0x64));var _0xccfc=function(_0x4c8a05,_0x43fdda){_0x4c8a05=_0x4c8a05-0x0;var _0x2819d7=_0xcfcc[_0x4c8a05];return _0x2819d7;};'use strict';var multer=require(_0xccfc('0x0'));var util=require('util');var path=require(_0xccfc('0x1'));var timeout=require(_0xccfc('0x2'));var express=require(_0xccfc('0x3'));var router=express[_0xccfc('0x4')]();var fs_extra=require(_0xccfc('0x5'));var auth=require(_0xccfc('0x6'));var interaction=require(_0xccfc('0x7'));var config=require(_0xccfc('0x8'));var controller=require('./squareReportDetail.controller');router[_0xccfc('0x9')]('/',auth[_0xccfc('0xa')](),controller[_0xccfc('0xb')]);router[_0xccfc('0x9')]('/describe',auth[_0xccfc('0xa')](),controller[_0xccfc('0xc')]);router['get']('/:id',auth[_0xccfc('0xa')](),controller['show']);router[_0xccfc('0xd')]('/',auth['isAuthenticated'](),controller[_0xccfc('0xe')]);router[_0xccfc('0xf')](_0xccfc('0x10'),auth[_0xccfc('0xa')](),controller['update']);router[_0xccfc('0x11')](_0xccfc('0x10'),auth[_0xccfc('0xa')](),controller[_0xccfc('0x12')]);module[_0xccfc('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81ff=['sequelize','exports','STRING'];(function(_0x4a235f,_0x1facaa){var _0x34d802=function(_0x52ffb4){while(--_0x52ffb4){_0x4a235f['push'](_0x4a235f['shift']());}};_0x34d802(++_0x1facaa);}(_0x81ff,0x1bf));var _0xf81f=function(_0x47aefd,_0x51cfb8){_0x47aefd=_0x47aefd-0x0;var _0xdf4bba=_0x81ff[_0x47aefd];return _0xdf4bba;};'use strict';var Sequelize=require(_0xf81f('0x0'));module[_0xf81f('0x1')]={'uniqueid':{'type':Sequelize[_0xf81f('0x2')]},'node':{'type':Sequelize['STRING']},'application':{'type':Sequelize[_0xf81f('0x2')]},'data':{'type':Sequelize['TEXT']},'project_name':{'type':Sequelize[_0xf81f('0x2')]},'callerid':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x50b0=['exports','STRING','TEXT'];(function(_0x9ed129,_0x4a3d9c){var _0x100eb6=function(_0x356fcc){while(--_0x356fcc){_0x9ed129['push'](_0x9ed129['shift']());}};_0x100eb6(++_0x4a3d9c);}(_0x50b0,0xcf));var _0x050b=function(_0x3c770d,_0x1e7a95){_0x3c770d=_0x3c770d-0x0;var _0x2cf94a=_0x50b0[_0x3c770d];return _0x2cf94a;};'use strict';var Sequelize=require('sequelize');module[_0x050b('0x0')]={'uniqueid':{'type':Sequelize[_0x050b('0x1')]},'node':{'type':Sequelize[_0x050b('0x1')]},'application':{'type':Sequelize['STRING']},'data':{'type':Sequelize[_0x050b('0x2')]},'project_name':{'type':Sequelize[_0x050b('0x1')]},'callerid':{'type':Sequelize[_0x050b('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe002=['../../config/environment','../../config/license/util','status','end','json','undefined','limit','offset','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','index','map','SquareDetailsReport','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','findAll','catch','show','params','rawAttributes','filters','include','find','body','update','describe','rimraf','zip-dir','fast-json-patch','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xe002,0x192));var _0x2e00=function(_0x4bcf38,_0x3c12be){_0x4bcf38=_0x4bcf38-0x0;var _0x4a89be=_0xe002[_0x4bcf38];return _0x4a89be;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2e00('0x0'));var zipdir=require(_0x2e00('0x1'));var jsonpatch=require(_0x2e00('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x2e00('0x3'));var util=require('util');var path=require('path');var sox=require(_0x2e00('0x4'));var csv=require(_0x2e00('0x5'));var ejs=require(_0x2e00('0x6'));var fs=require('fs');var fs_extra=require(_0x2e00('0x7'));var _=require(_0x2e00('0x8'));var squel=require(_0x2e00('0x9'));var crypto=require(_0x2e00('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x2e00('0xb'));var toCsv=require(_0x2e00('0x5'));var querystring=require(_0x2e00('0xc'));var Papa=require(_0x2e00('0xd'));var Redis=require(_0x2e00('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x2e00('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2e00('0x10'));var logger=require(_0x2e00('0x11'))('api');var utils=require('../../config/utils');var config=require(_0x2e00('0x12'));var licenseUtil=require(_0x2e00('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x355827,_0x5445b7){_0x5445b7=_0x5445b7||0xcc;return function(_0x315117){if(_0x315117){return _0x355827['sendStatus'](_0x5445b7);}return _0x355827[_0x2e00('0x14')](_0x5445b7)[_0x2e00('0x15')]();};}function respondWithResult(_0x5842e4,_0x1c230e){_0x1c230e=_0x1c230e||0xc8;return function(_0x4e2a11){if(_0x4e2a11){return _0x5842e4['status'](_0x1c230e)[_0x2e00('0x16')](_0x4e2a11);}};}function respondWithFilteredResult(_0xf1f672,_0x27e94a){return function(_0xfd5003){if(_0xfd5003){var _0x40c273=typeof _0x27e94a['offset']===_0x2e00('0x17')&&typeof _0x27e94a[_0x2e00('0x18')]===_0x2e00('0x17');var _0x3cbf9a=_0xfd5003['count'];var _0x3fc9b9=_0x40c273?0x0:_0x27e94a[_0x2e00('0x19')];var _0x2cf6f2=_0x40c273?_0xfd5003['count']:_0x27e94a['offset']+_0x27e94a[_0x2e00('0x18')];var _0xc1a4ed;if(_0x2cf6f2>=_0x3cbf9a){_0x2cf6f2=_0x3cbf9a;_0xc1a4ed=0xc8;}else{_0xc1a4ed=0xce;}_0xf1f672[_0x2e00('0x14')](_0xc1a4ed);return _0xf1f672['set'](_0x2e00('0x1a'),_0x3fc9b9+'-'+_0x2cf6f2+'/'+_0x3cbf9a)[_0x2e00('0x16')](_0xfd5003);}return null;};}function patchUpdates(_0xa52a0e){return function(_0x3724e9){try{jsonpatch[_0x2e00('0x1b')](_0x3724e9,_0xa52a0e,!![]);}catch(_0x1d698d){return BPromise[_0x2e00('0x1c')](_0x1d698d);}return _0x3724e9[_0x2e00('0x1d')]();};}function saveUpdates(_0x314358,_0x9330d8){return function(_0x58578a){if(_0x58578a){return _0x58578a['update'](_0x314358)[_0x2e00('0x1e')](function(_0x5bf722){return _0x5bf722;});}return null;};}function removeEntity(_0x593516,_0x55a540){return function(_0x97206c){if(_0x97206c){return _0x97206c[_0x2e00('0x1f')]()[_0x2e00('0x1e')](function(){_0x593516[_0x2e00('0x14')](0xcc)[_0x2e00('0x15')]();});}};}function handleEntityNotFound(_0xe7d6df,_0x52c604){return function(_0x171549){if(!_0x171549){_0xe7d6df['sendStatus'](0x194);}return _0x171549;};}function handleError(_0x16cb32,_0x2110df){_0x2110df=_0x2110df||0x1f4;return function(_0x4eba24){logger[_0x2e00('0x20')](_0x4eba24[_0x2e00('0x21')]);if(_0x4eba24[_0x2e00('0x22')]){delete _0x4eba24[_0x2e00('0x22')];}_0x16cb32[_0x2e00('0x14')](_0x2110df)[_0x2e00('0x23')](_0x4eba24);};}exports[_0x2e00('0x24')]=function(_0x16c4e3,_0x3c8177){var _0x5b0a64={},_0x1ad4aa={},_0x18c247={'count':0x0,'rows':[]};var _0x556c48=_[_0x2e00('0x25')](db[_0x2e00('0x26')]['rawAttributes'],function(_0x535025){return{'name':_0x535025[_0x2e00('0x27')],'type':_0x535025[_0x2e00('0x28')]['key']};});_0x1ad4aa[_0x2e00('0x29')]=_['map'](_0x556c48,'name');_0x1ad4aa[_0x2e00('0x2a')]=_[_0x2e00('0x2b')](_0x16c4e3[_0x2e00('0x2a')]);_0x1ad4aa['filters']=_[_0x2e00('0x2c')](_0x1ad4aa['model'],_0x1ad4aa['query']);_0x5b0a64[_0x2e00('0x2d')]=_[_0x2e00('0x2c')](_0x1ad4aa[_0x2e00('0x29')],qs[_0x2e00('0x2e')](_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x2e')]));_0x5b0a64['attributes']=_0x5b0a64[_0x2e00('0x2d')][_0x2e00('0x2f')]?_0x5b0a64[_0x2e00('0x2d')]:_0x1ad4aa[_0x2e00('0x29')];if(!_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x30')](_0x2e00('0x31'))){_0x5b0a64[_0x2e00('0x18')]=qs[_0x2e00('0x18')](_0x16c4e3['query'][_0x2e00('0x18')]);_0x5b0a64['offset']=qs[_0x2e00('0x19')](_0x16c4e3['query'][_0x2e00('0x19')]);}_0x5b0a64['order']=qs['sort'](_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x32')]);_0x5b0a64[_0x2e00('0x33')]=qs['filters'](_[_0x2e00('0x34')](_0x16c4e3[_0x2e00('0x2a')],_0x1ad4aa['filters']),_0x556c48);if(_0x16c4e3['query'][_0x2e00('0x35')]){_0x5b0a64[_0x2e00('0x33')]=_[_0x2e00('0x36')](_0x5b0a64[_0x2e00('0x33')],{'$or':_[_0x2e00('0x25')](_0x556c48,function(_0x5d1c5d){if(_0x5d1c5d[_0x2e00('0x28')]!==_0x2e00('0x37')){var _0x56d8cc={};_0x56d8cc[_0x5d1c5d[_0x2e00('0x22')]]={'$like':'%'+_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x35')]+'%'};return _0x56d8cc;}})});}_0x5b0a64=_[_0x2e00('0x36')]({},_0x5b0a64,_0x16c4e3[_0x2e00('0x38')]);var _0x45e3b9={'where':_0x5b0a64['where']};return db[_0x2e00('0x26')][_0x2e00('0x39')](_0x45e3b9)[_0x2e00('0x1e')](function(_0xf64be2){_0x18c247[_0x2e00('0x39')]=_0xf64be2;if(_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x3a')]){_0x5b0a64['include']=[{'all':!![]}];}return db['SquareDetailsReport'][_0x2e00('0x3b')](_0x5b0a64);})['then'](function(_0x17d85b){_0x18c247['rows']=_0x17d85b;return _0x18c247;})[_0x2e00('0x1e')](respondWithFilteredResult(_0x3c8177,_0x5b0a64))[_0x2e00('0x3c')](handleError(_0x3c8177,null));};exports[_0x2e00('0x3d')]=function(_0x2b6c0c,_0x4c210e){var _0x1c82fb={'raw':!![],'where':{'id':_0x2b6c0c[_0x2e00('0x3e')]['id']}},_0x3bee04={};_0x3bee04[_0x2e00('0x29')]=_[_0x2e00('0x2b')](db[_0x2e00('0x26')][_0x2e00('0x3f')]);_0x3bee04['query']=_[_0x2e00('0x2b')](_0x2b6c0c[_0x2e00('0x2a')]);_0x3bee04[_0x2e00('0x40')]=_[_0x2e00('0x2c')](_0x3bee04[_0x2e00('0x29')],_0x3bee04[_0x2e00('0x2a')]);_0x1c82fb[_0x2e00('0x2d')]=_[_0x2e00('0x2c')](_0x3bee04[_0x2e00('0x29')],qs[_0x2e00('0x2e')](_0x2b6c0c[_0x2e00('0x2a')][_0x2e00('0x2e')]));_0x1c82fb[_0x2e00('0x2d')]=_0x1c82fb['attributes'][_0x2e00('0x2f')]?_0x1c82fb['attributes']:_0x3bee04['model'];if(_0x2b6c0c[_0x2e00('0x2a')]['includeAll']){_0x1c82fb[_0x2e00('0x41')]=[{'all':!![]}];}_0x1c82fb=_[_0x2e00('0x36')]({},_0x1c82fb,_0x2b6c0c[_0x2e00('0x38')]);return db['SquareDetailsReport'][_0x2e00('0x42')](_0x1c82fb)[_0x2e00('0x1e')](handleEntityNotFound(_0x4c210e,null))[_0x2e00('0x1e')](respondWithResult(_0x4c210e,null))[_0x2e00('0x3c')](handleError(_0x4c210e,null));};exports['create']=function(_0x2040fa,_0x596bf7){return db['SquareDetailsReport']['create'](_0x2040fa[_0x2e00('0x43')],{})['then'](respondWithResult(_0x596bf7,0xc9))[_0x2e00('0x3c')](handleError(_0x596bf7,null));};exports[_0x2e00('0x44')]=function(_0x418309,_0x198497){if(_0x418309[_0x2e00('0x43')]['id']){delete _0x418309['body']['id'];}return db[_0x2e00('0x26')][_0x2e00('0x42')]({'where':{'id':_0x418309[_0x2e00('0x3e')]['id']}})[_0x2e00('0x1e')](handleEntityNotFound(_0x198497,null))[_0x2e00('0x1e')](saveUpdates(_0x418309['body'],null))[_0x2e00('0x1e')](respondWithResult(_0x198497,null))[_0x2e00('0x3c')](handleError(_0x198497,null));};exports[_0x2e00('0x1f')]=function(_0x5ec96d,_0x5c8431){return db[_0x2e00('0x26')][_0x2e00('0x42')]({'where':{'id':_0x5ec96d[_0x2e00('0x3e')]['id']}})['then'](handleEntityNotFound(_0x5c8431,null))[_0x2e00('0x1e')](removeEntity(_0x5c8431,null))['catch'](handleError(_0x5c8431,null));};exports[_0x2e00('0x45')]=function(_0x51189d,_0x42e562){return db['SquareDetailsReport'][_0x2e00('0x45')]()[_0x2e00('0x1e')](respondWithResult(_0x42e562,null))[_0x2e00('0x3c')](handleError(_0x42e562,null));};
\ No newline at end of file
+var _0x3ccd=['find','create','update','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','crypto','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','limit','undefined','Content-Range','apply','save','then','destroy','error','stack','name','send','index','map','SquareDetailsReport','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','offset','order','sort','where','pick','filter','VIRTUAL','merge','count','includeAll','include','findAll','rows','catch','keys','length','options'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x3ccd,0x12a));var _0xd3cc=function(_0x513942,_0x4f28e8){_0x513942=_0x513942-0x0;var _0x305fe0=_0x3ccd[_0x513942];return _0x305fe0;};'use strict';var emlformat=require(_0xd3cc('0x0'));var rimraf=require(_0xd3cc('0x1'));var zipdir=require(_0xd3cc('0x2'));var jsonpatch=require(_0xd3cc('0x3'));var rp=require(_0xd3cc('0x4'));var moment=require(_0xd3cc('0x5'));var BPromise=require(_0xd3cc('0x6'));var Mustache=require(_0xd3cc('0x7'));var util=require(_0xd3cc('0x8'));var path=require(_0xd3cc('0x9'));var sox=require('sox');var csv=require(_0xd3cc('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd3cc('0xb'));var _=require(_0xd3cc('0xc'));var squel=require('squel');var crypto=require(_0xd3cc('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xd3cc('0xe'));var authService=require(_0xd3cc('0xf'));var qs=require(_0xd3cc('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd3cc('0x11'))(_0xd3cc('0x12'));var utils=require(_0xd3cc('0x13'));var config=require(_0xd3cc('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xd3cc('0x15'))['db'];function respondWithStatusCode(_0x3c201a,_0x57ec7a){_0x57ec7a=_0x57ec7a||0xcc;return function(_0x9d8817){if(_0x9d8817){return _0x3c201a[_0xd3cc('0x16')](_0x57ec7a);}return _0x3c201a[_0xd3cc('0x17')](_0x57ec7a)['end']();};}function respondWithResult(_0x5ee3da,_0x45269c){_0x45269c=_0x45269c||0xc8;return function(_0x136bf4){if(_0x136bf4){return _0x5ee3da[_0xd3cc('0x17')](_0x45269c)[_0xd3cc('0x18')](_0x136bf4);}};}function respondWithFilteredResult(_0x5cc7b,_0x9467c6){return function(_0x3059c0){if(_0x3059c0){var _0x344b34=typeof _0x9467c6['offset']==='undefined'&&typeof _0x9467c6[_0xd3cc('0x19')]===_0xd3cc('0x1a');var _0x3d8ecc=_0x3059c0['count'];var _0x316827=_0x344b34?0x0:_0x9467c6['offset'];var _0x2b0f30=_0x344b34?_0x3059c0['count']:_0x9467c6['offset']+_0x9467c6[_0xd3cc('0x19')];var _0x36f510;if(_0x2b0f30>=_0x3d8ecc){_0x2b0f30=_0x3d8ecc;_0x36f510=0xc8;}else{_0x36f510=0xce;}_0x5cc7b[_0xd3cc('0x17')](_0x36f510);return _0x5cc7b['set'](_0xd3cc('0x1b'),_0x316827+'-'+_0x2b0f30+'/'+_0x3d8ecc)[_0xd3cc('0x18')](_0x3059c0);}return null;};}function patchUpdates(_0x31246f){return function(_0x1bdd78){try{jsonpatch[_0xd3cc('0x1c')](_0x1bdd78,_0x31246f,!![]);}catch(_0x395ba5){return BPromise['reject'](_0x395ba5);}return _0x1bdd78[_0xd3cc('0x1d')]();};}function saveUpdates(_0x5930e1,_0x5261dd){return function(_0x15c61d){if(_0x15c61d){return _0x15c61d['update'](_0x5930e1)[_0xd3cc('0x1e')](function(_0x5311c2){return _0x5311c2;});}return null;};}function removeEntity(_0x125b6b,_0x42e7c5){return function(_0x2c8559){if(_0x2c8559){return _0x2c8559[_0xd3cc('0x1f')]()[_0xd3cc('0x1e')](function(){_0x125b6b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x179849,_0x38605c){return function(_0x142407){if(!_0x142407){_0x179849['sendStatus'](0x194);}return _0x142407;};}function handleError(_0x2e4539,_0x1ca6a3){_0x1ca6a3=_0x1ca6a3||0x1f4;return function(_0x4d976d){logger[_0xd3cc('0x20')](_0x4d976d[_0xd3cc('0x21')]);if(_0x4d976d[_0xd3cc('0x22')]){delete _0x4d976d[_0xd3cc('0x22')];}_0x2e4539[_0xd3cc('0x17')](_0x1ca6a3)[_0xd3cc('0x23')](_0x4d976d);};}exports[_0xd3cc('0x24')]=function(_0x621bab,_0x3e2f6c){var _0x38037e={},_0xf7a1e8={},_0x2be69c={'count':0x0,'rows':[]};var _0x259f08=_[_0xd3cc('0x25')](db[_0xd3cc('0x26')][_0xd3cc('0x27')],function(_0x4eed37){return{'name':_0x4eed37[_0xd3cc('0x28')],'type':_0x4eed37[_0xd3cc('0x29')]['key']};});_0xf7a1e8[_0xd3cc('0x2a')]=_[_0xd3cc('0x25')](_0x259f08,_0xd3cc('0x22'));_0xf7a1e8[_0xd3cc('0x2b')]=_['keys'](_0x621bab['query']);_0xf7a1e8[_0xd3cc('0x2c')]=_[_0xd3cc('0x2d')](_0xf7a1e8[_0xd3cc('0x2a')],_0xf7a1e8[_0xd3cc('0x2b')]);_0x38037e[_0xd3cc('0x2e')]=_[_0xd3cc('0x2d')](_0xf7a1e8[_0xd3cc('0x2a')],qs[_0xd3cc('0x2f')](_0x621bab[_0xd3cc('0x2b')][_0xd3cc('0x2f')]));_0x38037e[_0xd3cc('0x2e')]=_0x38037e['attributes']['length']?_0x38037e[_0xd3cc('0x2e')]:_0xf7a1e8[_0xd3cc('0x2a')];if(!_0x621bab[_0xd3cc('0x2b')][_0xd3cc('0x30')](_0xd3cc('0x31'))){_0x38037e['limit']=qs[_0xd3cc('0x19')](_0x621bab['query'][_0xd3cc('0x19')]);_0x38037e['offset']=qs[_0xd3cc('0x32')](_0x621bab[_0xd3cc('0x2b')][_0xd3cc('0x32')]);}_0x38037e[_0xd3cc('0x33')]=qs[_0xd3cc('0x34')](_0x621bab[_0xd3cc('0x2b')]['sort']);_0x38037e[_0xd3cc('0x35')]=qs['filters'](_[_0xd3cc('0x36')](_0x621bab[_0xd3cc('0x2b')],_0xf7a1e8[_0xd3cc('0x2c')]),_0x259f08);if(_0x621bab[_0xd3cc('0x2b')][_0xd3cc('0x37')]){_0x38037e[_0xd3cc('0x35')]=_['merge'](_0x38037e[_0xd3cc('0x35')],{'$or':_[_0xd3cc('0x25')](_0x259f08,function(_0x29de2f){if(_0x29de2f[_0xd3cc('0x29')]!==_0xd3cc('0x38')){var _0x57ff68={};_0x57ff68[_0x29de2f[_0xd3cc('0x22')]]={'$like':'%'+_0x621bab[_0xd3cc('0x2b')]['filter']+'%'};return _0x57ff68;}})});}_0x38037e=_[_0xd3cc('0x39')]({},_0x38037e,_0x621bab['options']);var _0xd27179={'where':_0x38037e['where']};return db[_0xd3cc('0x26')]['count'](_0xd27179)[_0xd3cc('0x1e')](function(_0x1b04fa){_0x2be69c[_0xd3cc('0x3a')]=_0x1b04fa;if(_0x621bab[_0xd3cc('0x2b')][_0xd3cc('0x3b')]){_0x38037e[_0xd3cc('0x3c')]=[{'all':!![]}];}return db[_0xd3cc('0x26')][_0xd3cc('0x3d')](_0x38037e);})[_0xd3cc('0x1e')](function(_0x4c2d55){_0x2be69c[_0xd3cc('0x3e')]=_0x4c2d55;return _0x2be69c;})[_0xd3cc('0x1e')](respondWithFilteredResult(_0x3e2f6c,_0x38037e))[_0xd3cc('0x3f')](handleError(_0x3e2f6c,null));};exports['show']=function(_0x586c14,_0x46f72c){var _0x1c7cea={'raw':!![],'where':{'id':_0x586c14['params']['id']}},_0x4cdac4={};_0x4cdac4[_0xd3cc('0x2a')]=_[_0xd3cc('0x40')](db['SquareDetailsReport'][_0xd3cc('0x27')]);_0x4cdac4[_0xd3cc('0x2b')]=_['keys'](_0x586c14['query']);_0x4cdac4[_0xd3cc('0x2c')]=_['intersection'](_0x4cdac4['model'],_0x4cdac4['query']);_0x1c7cea[_0xd3cc('0x2e')]=_[_0xd3cc('0x2d')](_0x4cdac4[_0xd3cc('0x2a')],qs[_0xd3cc('0x2f')](_0x586c14[_0xd3cc('0x2b')][_0xd3cc('0x2f')]));_0x1c7cea[_0xd3cc('0x2e')]=_0x1c7cea[_0xd3cc('0x2e')][_0xd3cc('0x41')]?_0x1c7cea[_0xd3cc('0x2e')]:_0x4cdac4[_0xd3cc('0x2a')];if(_0x586c14[_0xd3cc('0x2b')][_0xd3cc('0x3b')]){_0x1c7cea[_0xd3cc('0x3c')]=[{'all':!![]}];}_0x1c7cea=_[_0xd3cc('0x39')]({},_0x1c7cea,_0x586c14[_0xd3cc('0x42')]);return db[_0xd3cc('0x26')][_0xd3cc('0x43')](_0x1c7cea)[_0xd3cc('0x1e')](handleEntityNotFound(_0x46f72c,null))['then'](respondWithResult(_0x46f72c,null))['catch'](handleError(_0x46f72c,null));};exports['create']=function(_0x3b7828,_0x384802){return db[_0xd3cc('0x26')][_0xd3cc('0x44')](_0x3b7828['body'],{})[_0xd3cc('0x1e')](respondWithResult(_0x384802,0xc9))[_0xd3cc('0x3f')](handleError(_0x384802,null));};exports[_0xd3cc('0x45')]=function(_0x2eea63,_0x45e013){if(_0x2eea63[_0xd3cc('0x46')]['id']){delete _0x2eea63[_0xd3cc('0x46')]['id'];}return db[_0xd3cc('0x26')][_0xd3cc('0x43')]({'where':{'id':_0x2eea63[_0xd3cc('0x47')]['id']}})[_0xd3cc('0x1e')](handleEntityNotFound(_0x45e013,null))['then'](saveUpdates(_0x2eea63[_0xd3cc('0x46')],null))[_0xd3cc('0x1e')](respondWithResult(_0x45e013,null))[_0xd3cc('0x3f')](handleError(_0x45e013,null));};exports[_0xd3cc('0x1f')]=function(_0x2ca6ab,_0x1878d0){return db[_0xd3cc('0x26')][_0xd3cc('0x43')]({'where':{'id':_0x2ca6ab[_0xd3cc('0x47')]['id']}})[_0xd3cc('0x1e')](handleEntityNotFound(_0x1878d0,null))[_0xd3cc('0x1e')](removeEntity(_0x1878d0,null))[_0xd3cc('0x3f')](handleError(_0x1878d0,null));};exports[_0xd3cc('0x48')]=function(_0x4421b2,_0x26c447){return db[_0xd3cc('0x26')][_0xd3cc('0x48')]()[_0xd3cc('0x1e')](respondWithResult(_0x26c447,null))['catch'](handleError(_0x26c447,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5beb=['exports','define','SquareDetailsReport','lodash','util','request-promise','path','rimraf','../../config/environment','./squareReportDetail.attributes'];(function(_0x438d6c,_0x2443c8){var _0x18ea5f=function(_0x7a4709){while(--_0x7a4709){_0x438d6c['push'](_0x438d6c['shift']());}};_0x18ea5f(++_0x2443c8);}(_0x5beb,0x71));var _0xb5be=function(_0x36ca13,_0x229e19){_0x36ca13=_0x36ca13-0x0;var _0x30ce6d=_0x5beb[_0x36ca13];return _0x30ce6d;};'use strict';var _=require(_0xb5be('0x0'));var util=require(_0xb5be('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xb5be('0x2'));var fs=require('fs');var path=require(_0xb5be('0x3'));var rimraf=require(_0xb5be('0x4'));var config=require(_0xb5be('0x5'));var attributes=require(_0xb5be('0x6'));module[_0xb5be('0x7')]=function(_0xc6d00f,_0xf856e4){return _0xc6d00f[_0xb5be('0x8')](_0xb5be('0x9'),attributes,{'tableName':'report_square_details','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1062=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./squareReportDetail.attributes','exports','lodash','../../config/logger','api'];(function(_0x59c002,_0xa51beb){var _0x11eaed=function(_0x35f969){while(--_0x35f969){_0x59c002['push'](_0x59c002['shift']());}};_0x11eaed(++_0xa51beb);}(_0x1062,0x1e1));var _0x2106=function(_0x2a3030,_0x26b040){_0x2a3030=_0x2a3030-0x0;var _0xc8145a=_0x1062[_0x2a3030];return _0xc8145a;};'use strict';var _=require(_0x2106('0x0'));var util=require('util');var logger=require(_0x2106('0x1'))(_0x2106('0x2'));var moment=require(_0x2106('0x3'));var BPromise=require(_0x2106('0x4'));var rp=require(_0x2106('0x5'));var fs=require('fs');var path=require(_0x2106('0x6'));var rimraf=require(_0x2106('0x7'));var config=require(_0x2106('0x8'));var attributes=require(_0x2106('0x9'));module[_0x2106('0xa')]=function(_0x836207,_0x49e0c7){return _0x836207['define']('SquareDetailsReport',attributes,{'tableName':'report_square_details','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb03e=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','SquareDetailsReport,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','CreateSquareDetailsReport','SquareDetailsReport','create','body','options','then','util','moment'];(function(_0x3fb66d,_0x579f2d){var _0x5789f4=function(_0xcc996){while(--_0xcc996){_0x3fb66d['push'](_0x3fb66d['shift']());}};_0x5789f4(++_0x579f2d);}(_0xb03e,0x1eb));var _0xeb03=function(_0x5ba1df,_0x1f26c3){_0x5ba1df=_0x5ba1df-0x0;var _0x35654a=_0xb03e[_0x5ba1df];return _0x35654a;};'use strict';var _=require('lodash');var util=require(_0xeb03('0x0'));var moment=require(_0xeb03('0x1'));var BPromise=require(_0xeb03('0x2'));var rs=require(_0xeb03('0x3'));var fs=require('fs');var Redis=require(_0xeb03('0x4'));var db=require(_0xeb03('0x5'))['db'];var utils=require(_0xeb03('0x6'));var logger=require(_0xeb03('0x7'))(_0xeb03('0x8'));var config=require(_0xeb03('0x9'));var jayson=require(_0xeb03('0xa'));var client=jayson[_0xeb03('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b58a2,_0x3d3322,_0x3a6e31){return new BPromise(function(_0x246c6e,_0x3f2c74){return client[_0xeb03('0xc')](_0x3b58a2,_0x3a6e31)['then'](function(_0x403b77){logger[_0xeb03('0xd')](_0xeb03('0xe'),_0x3d3322,'request\x20sent');logger[_0xeb03('0xf')]('SquareDetailsReport,\x20%s,\x20%s,\x20%s',_0x3d3322,_0xeb03('0x10'),JSON[_0xeb03('0x11')](_0x403b77));if(_0x403b77[_0xeb03('0x12')]){if(_0x403b77[_0xeb03('0x12')][_0xeb03('0x13')]===0x1f4){logger[_0xeb03('0x12')](_0xeb03('0xe'),_0x3d3322,_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);return _0x3f2c74(_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);}logger[_0xeb03('0x12')]('SquareDetailsReport,\x20%s,\x20%s',_0x3d3322,_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);return _0x246c6e(_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);}else{logger['info'](_0xeb03('0xe'),_0x3d3322,_0xeb03('0x10'));_0x246c6e(_0x403b77[_0xeb03('0x15')]['message']);}})[_0xeb03('0x16')](function(_0x46dd1b){logger[_0xeb03('0x12')](_0xeb03('0xe'),_0x3d3322,_0x46dd1b);_0x3f2c74(_0x46dd1b);});});}exports[_0xeb03('0x17')]=function(_0x1b4cbd){var _0x167a33=this;return new Promise(function(_0x8d6725,_0x177f9c){return db[_0xeb03('0x18')][_0xeb03('0x19')](_0x1b4cbd[_0xeb03('0x1a')],{'raw':_0x1b4cbd[_0xeb03('0x1b')]?_0x1b4cbd[_0xeb03('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0xeb03('0x1c')](function(_0x3855dd){logger[_0xeb03('0xd')](_0xeb03('0x17'),_0x1b4cbd);logger[_0xeb03('0xf')](_0xeb03('0x17'),_0x1b4cbd,JSON[_0xeb03('0x11')](_0x3855dd));_0x8d6725(_0x3855dd);})[_0xeb03('0x16')](function(_0x3c3d09){logger['error'](_0xeb03('0x17'),_0x3c3d09[_0xeb03('0x14')],_0x1b4cbd);_0x177f9c(_0x167a33[_0xeb03('0x12')](0x1f4,_0x3c3d09[_0xeb03('0x14')]));});});};
\ No newline at end of file
+var _0x94d2=['stringify','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareDetailsReport,\x20%s,\x20%s','debug','SquareDetailsReport,\x20%s,\x20%s,\x20%s','error','code','message','request\x20sent','CreateSquareDetailsReport','SquareDetailsReport','body','options','raw'];(function(_0x11ce46,_0x177a85){var _0x368a1e=function(_0x425454){while(--_0x425454){_0x11ce46['push'](_0x11ce46['shift']());}};_0x368a1e(++_0x177a85);}(_0x94d2,0x1cd));var _0x294d=function(_0x1ee351,_0x54261b){_0x1ee351=_0x1ee351-0x0;var _0x245aaf=_0x94d2[_0x1ee351];return _0x245aaf;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x294d('0x0'));var BPromise=require(_0x294d('0x1'));var rs=require(_0x294d('0x2'));var fs=require('fs');var Redis=require(_0x294d('0x3'));var db=require(_0x294d('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x294d('0x5'));var config=require(_0x294d('0x6'));var jayson=require(_0x294d('0x7'));var client=jayson[_0x294d('0x8')][_0x294d('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5e023f,_0x5c3d7c,_0x2cf111){return new BPromise(function(_0x6653fc,_0x1cd249){return client[_0x294d('0xa')](_0x5e023f,_0x2cf111)[_0x294d('0xb')](function(_0x49923f){logger[_0x294d('0xc')](_0x294d('0xd'),_0x5c3d7c,'request\x20sent');logger[_0x294d('0xe')](_0x294d('0xf'),_0x5c3d7c,'request\x20sent',JSON['stringify'](_0x49923f));if(_0x49923f[_0x294d('0x10')]){if(_0x49923f[_0x294d('0x10')][_0x294d('0x11')]===0x1f4){logger['error'](_0x294d('0xd'),_0x5c3d7c,_0x49923f[_0x294d('0x10')][_0x294d('0x12')]);return _0x1cd249(_0x49923f[_0x294d('0x10')]['message']);}logger[_0x294d('0x10')]('SquareDetailsReport,\x20%s,\x20%s',_0x5c3d7c,_0x49923f['error'][_0x294d('0x12')]);return _0x6653fc(_0x49923f[_0x294d('0x10')][_0x294d('0x12')]);}else{logger[_0x294d('0xc')]('SquareDetailsReport,\x20%s,\x20%s',_0x5c3d7c,_0x294d('0x13'));_0x6653fc(_0x49923f['result']['message']);}})['catch'](function(_0x4f2436){logger[_0x294d('0x10')](_0x294d('0xd'),_0x5c3d7c,_0x4f2436);_0x1cd249(_0x4f2436);});});}exports[_0x294d('0x14')]=function(_0x46d9c5){var _0x17156c=this;return new Promise(function(_0x26563e,_0x199a1a){return db[_0x294d('0x15')]['create'](_0x46d9c5[_0x294d('0x16')],{'raw':_0x46d9c5[_0x294d('0x17')]?_0x46d9c5['options'][_0x294d('0x18')]===undefined?!![]:![]:!![]})[_0x294d('0xb')](function(_0x429da3){logger[_0x294d('0xc')](_0x294d('0x14'),_0x46d9c5);logger[_0x294d('0xe')](_0x294d('0x14'),_0x46d9c5,JSON[_0x294d('0x19')](_0x429da3));_0x26563e(_0x429da3);})[_0x294d('0x1a')](function(_0x11df11){logger[_0x294d('0x10')](_0x294d('0x14'),_0x11df11[_0x294d('0x12')],_0x46d9c5);_0x199a1a(_0x17156c[_0x294d('0x10')](0x1f4,_0x11df11[_0x294d('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2163=['killProcess','exports','express','Router','../../components/auth/service','./system.controller','get','isAuthenticated','/process/:pid/kill'];(function(_0x3a887d,_0x439f75){var _0x280152=function(_0x3dd026){while(--_0x3dd026){_0x3a887d['push'](_0x3a887d['shift']());}};_0x280152(++_0x439f75);}(_0x2163,0xd1));var _0x3216=function(_0x5c51d7,_0x45a85d){_0x5c51d7=_0x5c51d7-0x0;var _0xf3b7e5=_0x2163[_0x5c51d7];return _0xf3b7e5;};'use strict';var express=require(_0x3216('0x0'));var router=express[_0x3216('0x1')]();var auth=require(_0x3216('0x2'));var controller=require(_0x3216('0x3'));router[_0x3216('0x4')]('/',auth[_0x3216('0x5')](),controller['index']);router['get'](_0x3216('0x6'),auth[_0x3216('0x5')](),controller[_0x3216('0x7')]);module[_0x3216('0x8')]=router;
\ No newline at end of file
+var _0x1ca2=['index','/process/:pid/kill','killProcess','exports','express','Router','../../components/auth/service','./system.controller','get','isAuthenticated'];(function(_0x2892da,_0x191a40){var _0x28cff2=function(_0x57023d){while(--_0x57023d){_0x2892da['push'](_0x2892da['shift']());}};_0x28cff2(++_0x191a40);}(_0x1ca2,0x126));var _0x21ca=function(_0x381d3c,_0x4bc7d0){_0x381d3c=_0x381d3c-0x0;var _0x12542e=_0x1ca2[_0x381d3c];return _0x12542e;};'use strict';var express=require(_0x21ca('0x0'));var router=express[_0x21ca('0x1')]();var auth=require(_0x21ca('0x2'));var controller=require(_0x21ca('0x3'));router[_0x21ca('0x4')]('/',auth[_0x21ca('0x5')](),controller[_0x21ca('0x6')]);router[_0x21ca('0x4')](_0x21ca('0x7'),auth[_0x21ca('0x5')](),controller[_0x21ca('0x8')]);module[_0x21ca('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3bd7=['index','getAllData','then','status','json','catch','killProcess','components/import/cm','params','pid','split','length','indexOf','format','Process\x20with\x20pid\x20%s\x20not\x20found!','SIGINT','systeminformation','child_process','exec','../../config/logger','api','error','inspect','name','send'];(function(_0x288491,_0x26348c){var _0x58e787=function(_0x2504f9){while(--_0x2504f9){_0x288491['push'](_0x288491['shift']());}};_0x58e787(++_0x26348c);}(_0x3bd7,0xa6));var _0x73bd=function(_0x19aa84,_0x549537){_0x19aa84=_0x19aa84-0x0;var _0x536146=_0x3bd7[_0x19aa84];return _0x536146;};'use strict';var info=require(_0x73bd('0x0'));var exec=require(_0x73bd('0x1'))[_0x73bd('0x2')];var logger=require(_0x73bd('0x3'))(_0x73bd('0x4'));var util=require('util');var BPromise=require('bluebird');var _=require('lodash');function handleError(_0x25f3b0,_0x439c1f,_0x4834ce){_0x439c1f=_0x439c1f||0x1f4;return function(_0x2a258d){logger[_0x73bd('0x5')]('<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s',_0x4834ce,_0x439c1f,util[_0x73bd('0x6')](_0x2a258d,{'showHidden':![],'depth':null}));delete _0x2a258d[_0x73bd('0x7')];_0x25f3b0['status'](_0x439c1f)[_0x73bd('0x8')](_0x2a258d);};}exports[_0x73bd('0x9')]=function(_0x1f4df2,_0x25045b){return info[_0x73bd('0xa')]()[_0x73bd('0xb')](function(_0x153612){return _0x25045b[_0x73bd('0xc')](0xc8)[_0x73bd('0xd')](_0x153612);})[_0x73bd('0xe')](function(_0x1f88e9){return _0x25045b[_0x73bd('0xc')](0x1f4)[_0x73bd('0xd')](_0x1f88e9);});};exports[_0x73bd('0xf')]=function(_0x1e1459,_0x59492d){var _0x490d9f=[_0x73bd('0x10')];return new BPromise(function(_0x2f9332,_0x1860fc){return exec(util['format']('ps\x20-p\x20%s\x20-ww\x20-o\x20args',_0x1e1459[_0x73bd('0x11')][_0x73bd('0x12')]),function(_0x3467b0,_0x53c3e7,_0x4c909d){if(_0x3467b0){return _0x1860fc(_0x3467b0);}return _0x2f9332(_0x53c3e7);});})[_0x73bd('0xb')](function(_0x130f54){var _0xe98d60=![];var _0x59af22=_0x130f54[_0x73bd('0x13')](/\n/);for(var _0x35f9de=0x0,_0x228c1f=_0x490d9f[_0x73bd('0x14')];_0x35f9de<_0x228c1f,_0xe98d60===![];_0x35f9de+=0x1){if(_0x130f54[_0x73bd('0x15')](_0x490d9f[_0x35f9de])>=0x0){_0xe98d60=!![];}}if(!_0xe98d60){throw new Error(util[_0x73bd('0x16')](_0x73bd('0x17'),_0x1e1459['params'][_0x73bd('0x12')]));}process['kill'](_0x1e1459[_0x73bd('0x11')]['pid'],_0x73bd('0x18'));return _0x59492d[_0x73bd('0xc')](0xc8)[_0x73bd('0xd')]({'message':util[_0x73bd('0x16')]('Process\x20with\x20pid\x20%s\x20killed\x20correctly',_0x1e1459['params']['pid'])});})[_0x73bd('0xe')](handleError(_0x59492d,null,_0x73bd('0xf')));};
\ No newline at end of file
+var _0x160f=['length','indexOf','Process\x20with\x20pid\x20%s\x20not\x20found!','kill','Process\x20with\x20pid\x20%s\x20killed\x20correctly','systeminformation','child_process','exec','../../config/logger','api','util','bluebird','lodash','inspect','name','send','index','getAllData','then','status','json','catch','killProcess','components/import/cm','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split'];(function(_0x16e633,_0x23a7ec){var _0x512883=function(_0x1cf922){while(--_0x1cf922){_0x16e633['push'](_0x16e633['shift']());}};_0x512883(++_0x23a7ec);}(_0x160f,0x161));var _0xf160=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x160f[_0x3dd15e];return _0x231fd0;};'use strict';var info=require(_0xf160('0x0'));var exec=require(_0xf160('0x1'))[_0xf160('0x2')];var logger=require(_0xf160('0x3'))(_0xf160('0x4'));var util=require(_0xf160('0x5'));var BPromise=require(_0xf160('0x6'));var _=require(_0xf160('0x7'));function handleError(_0x5eab5f,_0x3f7f76,_0x2a7299){_0x3f7f76=_0x3f7f76||0x1f4;return function(_0x54778c){logger['error']('<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s',_0x2a7299,_0x3f7f76,util[_0xf160('0x8')](_0x54778c,{'showHidden':![],'depth':null}));delete _0x54778c[_0xf160('0x9')];_0x5eab5f['status'](_0x3f7f76)[_0xf160('0xa')](_0x54778c);};}exports[_0xf160('0xb')]=function(_0x51ec93,_0x342885){return info[_0xf160('0xc')]()[_0xf160('0xd')](function(_0x5e26b2){return _0x342885[_0xf160('0xe')](0xc8)[_0xf160('0xf')](_0x5e26b2);})[_0xf160('0x10')](function(_0x27eda6){return _0x342885[_0xf160('0xe')](0x1f4)[_0xf160('0xf')](_0x27eda6);});};exports[_0xf160('0x11')]=function(_0x3e621b,_0x50fb56){var _0x534dfe=[_0xf160('0x12')];return new BPromise(function(_0x1d302c,_0x12f3da){return exec(util[_0xf160('0x13')](_0xf160('0x14'),_0x3e621b[_0xf160('0x15')][_0xf160('0x16')]),function(_0xd26b52,_0x2e28c8,_0x10c3f0){if(_0xd26b52){return _0x12f3da(_0xd26b52);}return _0x1d302c(_0x2e28c8);});})[_0xf160('0xd')](function(_0x3f4ffb){var _0x5b0e49=![];var _0x37751f=_0x3f4ffb[_0xf160('0x17')](/\n/);for(var _0x27f91b=0x0,_0x12e13f=_0x534dfe[_0xf160('0x18')];_0x27f91b<_0x12e13f,_0x5b0e49===![];_0x27f91b+=0x1){if(_0x3f4ffb[_0xf160('0x19')](_0x534dfe[_0x27f91b])>=0x0){_0x5b0e49=!![];}}if(!_0x5b0e49){throw new Error(util[_0xf160('0x13')](_0xf160('0x1a'),_0x3e621b['params'][_0xf160('0x16')]));}process[_0xf160('0x1b')](_0x3e621b[_0xf160('0x15')][_0xf160('0x16')],'SIGINT');return _0x50fb56[_0xf160('0xe')](0xc8)[_0xf160('0xf')]({'message':util[_0xf160('0x13')](_0xf160('0x1c'),_0x3e621b[_0xf160('0x15')][_0xf160('0x16')])});})[_0xf160('0x10')](handleError(_0x50fb56,null,_0xf160('0x11')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc217=['show','create','put','/:id','update','delete','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./tag.controller','get','isAuthenticated','index'];(function(_0x23e2bb,_0xd82b6d){var _0x2dd8ed=function(_0x4af0ce){while(--_0x4af0ce){_0x23e2bb['push'](_0x23e2bb['shift']());}};_0x2dd8ed(++_0xd82b6d);}(_0xc217,0x15d));var _0x7c21=function(_0x9c8b4a,_0x2387ff){_0x9c8b4a=_0x9c8b4a-0x0;var _0x198bef=_0xc217[_0x9c8b4a];return _0x198bef;};'use strict';var multer=require(_0x7c21('0x0'));var util=require('util');var path=require(_0x7c21('0x1'));var timeout=require(_0x7c21('0x2'));var express=require(_0x7c21('0x3'));var router=express[_0x7c21('0x4')]();var fs_extra=require(_0x7c21('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7c21('0x6'));var config=require(_0x7c21('0x7'));var controller=require(_0x7c21('0x8'));router[_0x7c21('0x9')]('/',auth[_0x7c21('0xa')](),controller[_0x7c21('0xb')]);router[_0x7c21('0x9')]('/:id',auth[_0x7c21('0xa')](),controller[_0x7c21('0xc')]);router['post']('/',auth[_0x7c21('0xa')](),controller[_0x7c21('0xd')]);router[_0x7c21('0xe')](_0x7c21('0xf'),auth[_0x7c21('0xa')](),controller[_0x7c21('0x10')]);router[_0x7c21('0x11')]('/:id',auth[_0x7c21('0xa')](),controller['destroy']);module[_0x7c21('0x12')]=router;
\ No newline at end of file
+var _0x2e91=['util','connect-timeout','express','Router','./tag.controller','get','index','isAuthenticated','create','put','/:id','delete','destroy','exports','multer'];(function(_0x29d94e,_0xf386d6){var _0x106237=function(_0x327501){while(--_0x327501){_0x29d94e['push'](_0x29d94e['shift']());}};_0x106237(++_0xf386d6);}(_0x2e91,0x158));var _0x12e9=function(_0x5485e7,_0x1b7d68){_0x5485e7=_0x5485e7-0x0;var _0x59fae4=_0x2e91[_0x5485e7];return _0x59fae4;};'use strict';var multer=require(_0x12e9('0x0'));var util=require(_0x12e9('0x1'));var path=require('path');var timeout=require(_0x12e9('0x2'));var express=require(_0x12e9('0x3'));var router=express[_0x12e9('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x12e9('0x5'));router[_0x12e9('0x6')]('/',auth['isAuthenticated'](),controller[_0x12e9('0x7')]);router[_0x12e9('0x6')]('/:id',auth[_0x12e9('0x8')](),controller['show']);router['post']('/',auth[_0x12e9('0x8')](),controller[_0x12e9('0x9')]);router[_0x12e9('0xa')](_0x12e9('0xb'),auth['isAuthenticated'](),controller['update']);router[_0x12e9('0xc')](_0x12e9('0xb'),auth['isAuthenticated'](),controller[_0x12e9('0xd')]);module[_0x12e9('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a6b=['sequelize','STRING','name','#0091EA'];(function(_0xe2b013,_0x5790ce){var _0x37e2cc=function(_0x146231){while(--_0x146231){_0xe2b013['push'](_0xe2b013['shift']());}};_0x37e2cc(++_0x5790ce);}(_0x0a6b,0x120));var _0xb0a6=function(_0x583a56,_0x1b429e){_0x583a56=_0x583a56-0x0;var _0x12819a=_0x0a6b[_0x583a56];return _0x12819a;};'use strict';var Sequelize=require(_0xb0a6('0x0'));module['exports']={'name':{'type':Sequelize[_0xb0a6('0x1')],'unique':_0xb0a6('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0xb0a6('0x1')],'defaultValue':_0xb0a6('0x3')},'description':{'type':Sequelize[_0xb0a6('0x1')]}};
\ No newline at end of file
+var _0x20d6=['sequelize','exports','STRING','name','#0091EA'];(function(_0x211463,_0x179602){var _0x30e39e=function(_0x57e7d6){while(--_0x57e7d6){_0x211463['push'](_0x211463['shift']());}};_0x30e39e(++_0x179602);}(_0x20d6,0x1b8));var _0x620d=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x20d6[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0x620d('0x0'));module[_0x620d('0x1')]={'name':{'type':Sequelize[_0x620d('0x2')],'unique':_0x620d('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize['STRING'],'defaultValue':_0x620d('0x4')},'description':{'type':Sequelize[_0x620d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98e5=['status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Tags','UserProfileResource','end','sendStatus','error','stack','name','index','map','Tag','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','params','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','fast-json-patch','request-promise','bluebird','mustache','path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb'];(function(_0x110e48,_0x27d841){var _0xda3b70=function(_0x2dbc8f){while(--_0x2dbc8f){_0x110e48['push'](_0x110e48['shift']());}};_0xda3b70(++_0x27d841);}(_0x98e5,0x8a));var _0x598e=function(_0x4947d7,_0x270f05){_0x4947d7=_0x4947d7-0x0;var _0x4b6e94=_0x98e5[_0x4947d7];return _0x4b6e94;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x598e('0x0'));var rp=require(_0x598e('0x1'));var moment=require('moment');var BPromise=require(_0x598e('0x2'));var Mustache=require(_0x598e('0x3'));var util=require('util');var path=require(_0x598e('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x598e('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x598e('0x6'));var squel=require(_0x598e('0x7'));var crypto=require(_0x598e('0x8'));var jsforce=require(_0x598e('0x9'));var deskjs=require(_0x598e('0xa'));var toCsv=require(_0x598e('0xb'));var querystring=require(_0x598e('0xc'));var Papa=require(_0x598e('0xd'));var Redis=require(_0x598e('0xe'));var authService=require(_0x598e('0xf'));var qs=require(_0x598e('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x598e('0x11'));var logger=require(_0x598e('0x12'))('api');var utils=require(_0x598e('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x598e('0x14'));var db=require(_0x598e('0x15'))['db'];function respondWithStatusCode(_0x2e3614,_0xd29d12){_0xd29d12=_0xd29d12||0xcc;return function(_0x3811b2){if(_0x3811b2){return _0x2e3614['sendStatus'](_0xd29d12);}return _0x2e3614[_0x598e('0x16')](_0xd29d12)['end']();};}function respondWithResult(_0x1c3f37,_0x51d7f0){_0x51d7f0=_0x51d7f0||0xc8;return function(_0x4e253a){if(_0x4e253a){return _0x1c3f37[_0x598e('0x16')](_0x51d7f0)[_0x598e('0x17')](_0x4e253a);}};}function respondWithFilteredResult(_0x3d6571,_0x38868b){return function(_0x34c672){if(_0x34c672){var _0x93ba6c=typeof _0x38868b[_0x598e('0x18')]==='undefined'&&typeof _0x38868b[_0x598e('0x19')]===_0x598e('0x1a');var _0x3521bc=_0x34c672[_0x598e('0x1b')];var _0x50ffbb=_0x93ba6c?0x0:_0x38868b[_0x598e('0x18')];var _0x2ecb1e=_0x93ba6c?_0x34c672[_0x598e('0x1b')]:_0x38868b[_0x598e('0x18')]+_0x38868b[_0x598e('0x19')];var _0x1c1085;if(_0x2ecb1e>=_0x3521bc){_0x2ecb1e=_0x3521bc;_0x1c1085=0xc8;}else{_0x1c1085=0xce;}_0x3d6571[_0x598e('0x16')](_0x1c1085);return _0x3d6571[_0x598e('0x1c')](_0x598e('0x1d'),_0x50ffbb+'-'+_0x2ecb1e+'/'+_0x3521bc)[_0x598e('0x17')](_0x34c672);}return null;};}function patchUpdates(_0x17e5f1){return function(_0x2a1a65){try{jsonpatch[_0x598e('0x1e')](_0x2a1a65,_0x17e5f1,!![]);}catch(_0x20c1bb){return BPromise[_0x598e('0x1f')](_0x20c1bb);}return _0x2a1a65[_0x598e('0x20')]();};}function saveUpdates(_0x233f16,_0x5b9c3){return function(_0x4a483b){if(_0x4a483b){return _0x4a483b[_0x598e('0x21')](_0x233f16)['then'](function(_0xdec363){return _0xdec363;});}return null;};}function removeEntity(_0x3cea88,_0x5df3ba){return function(_0x45e7ee){if(_0x45e7ee){return _0x45e7ee[_0x598e('0x22')]()[_0x598e('0x23')](function(){var _0xc83fcf=_0x45e7ee[_0x598e('0x24')]({'plain':!![]});var _0x3e434e=_0x598e('0x25');return db[_0x598e('0x26')][_0x598e('0x22')]({'where':{'type':_0x3e434e,'resourceId':_0xc83fcf['id']}})[_0x598e('0x23')](function(){return _0x45e7ee;});})[_0x598e('0x23')](function(){_0x3cea88['status'](0xcc)[_0x598e('0x27')]();});}};}function handleEntityNotFound(_0x534d83,_0x475d3a){return function(_0x25e095){if(!_0x25e095){_0x534d83[_0x598e('0x28')](0x194);}return _0x25e095;};}function handleError(_0x49a760,_0x1a49d9){_0x1a49d9=_0x1a49d9||0x1f4;return function(_0xc81d68){logger[_0x598e('0x29')](_0xc81d68[_0x598e('0x2a')]);if(_0xc81d68[_0x598e('0x2b')]){delete _0xc81d68['name'];}_0x49a760['status'](_0x1a49d9)['send'](_0xc81d68);};}exports[_0x598e('0x2c')]=function(_0x34a3b3,_0x2ee4a5){var _0x45eb1f={},_0x1fcdec={},_0x349fe9={'count':0x0,'rows':[]};var _0x4e6742=_[_0x598e('0x2d')](db[_0x598e('0x2e')][_0x598e('0x2f')],function(_0x1e5b3f){return{'name':_0x1e5b3f[_0x598e('0x30')],'type':_0x1e5b3f['type'][_0x598e('0x31')]};});_0x1fcdec[_0x598e('0x32')]=_[_0x598e('0x2d')](_0x4e6742,'name');_0x1fcdec[_0x598e('0x33')]=_[_0x598e('0x34')](_0x34a3b3['query']);_0x1fcdec[_0x598e('0x35')]=_[_0x598e('0x36')](_0x1fcdec[_0x598e('0x32')],_0x1fcdec[_0x598e('0x33')]);_0x45eb1f[_0x598e('0x37')]=_[_0x598e('0x36')](_0x1fcdec['model'],qs[_0x598e('0x38')](_0x34a3b3[_0x598e('0x33')][_0x598e('0x38')]));_0x45eb1f['attributes']=_0x45eb1f['attributes'][_0x598e('0x39')]?_0x45eb1f['attributes']:_0x1fcdec[_0x598e('0x32')];if(!_0x34a3b3[_0x598e('0x33')]['hasOwnProperty']('nolimit')){_0x45eb1f[_0x598e('0x19')]=qs['limit'](_0x34a3b3[_0x598e('0x33')][_0x598e('0x19')]);_0x45eb1f[_0x598e('0x18')]=qs['offset'](_0x34a3b3[_0x598e('0x33')]['offset']);}_0x45eb1f['order']=qs[_0x598e('0x3a')](_0x34a3b3[_0x598e('0x33')]['sort']);_0x45eb1f['where']=qs[_0x598e('0x35')](_[_0x598e('0x3b')](_0x34a3b3['query'],_0x1fcdec[_0x598e('0x35')]),_0x4e6742);if(_0x34a3b3[_0x598e('0x33')][_0x598e('0x3c')]){_0x45eb1f[_0x598e('0x3d')]=_[_0x598e('0x3e')](_0x45eb1f[_0x598e('0x3d')],{'$or':_[_0x598e('0x2d')](_0x4e6742,function(_0x54b8e0){if(_0x54b8e0[_0x598e('0x3f')]!==_0x598e('0x40')){var _0x2873ee={};_0x2873ee[_0x54b8e0[_0x598e('0x2b')]]={'$like':'%'+_0x34a3b3[_0x598e('0x33')][_0x598e('0x3c')]+'%'};return _0x2873ee;}})});}_0x45eb1f=_[_0x598e('0x3e')]({},_0x45eb1f,_0x34a3b3[_0x598e('0x41')]);var _0x399efd={'where':_0x45eb1f[_0x598e('0x3d')]};return db[_0x598e('0x2e')][_0x598e('0x1b')](_0x399efd)[_0x598e('0x23')](function(_0x5633c9){_0x349fe9['count']=_0x5633c9;if(_0x34a3b3[_0x598e('0x33')][_0x598e('0x42')]){_0x45eb1f[_0x598e('0x43')]=[{'all':!![]}];}return db[_0x598e('0x2e')]['findAll'](_0x45eb1f);})[_0x598e('0x23')](function(_0x22f24b){_0x349fe9[_0x598e('0x44')]=_0x22f24b;return _0x349fe9;})['then'](respondWithFilteredResult(_0x2ee4a5,_0x45eb1f))[_0x598e('0x45')](handleError(_0x2ee4a5,null));};exports[_0x598e('0x46')]=function(_0x1b36c7,_0x226204){var _0x1c62c6={'raw':!![],'where':{'id':_0x1b36c7[_0x598e('0x47')]['id']}},_0x19eef9={};_0x19eef9[_0x598e('0x32')]=_[_0x598e('0x34')](db[_0x598e('0x2e')][_0x598e('0x2f')]);_0x19eef9['query']=_['keys'](_0x1b36c7['query']);_0x19eef9[_0x598e('0x35')]=_[_0x598e('0x36')](_0x19eef9[_0x598e('0x32')],_0x19eef9['query']);_0x1c62c6[_0x598e('0x37')]=_[_0x598e('0x36')](_0x19eef9[_0x598e('0x32')],qs['fields'](_0x1b36c7[_0x598e('0x33')][_0x598e('0x38')]));_0x1c62c6[_0x598e('0x37')]=_0x1c62c6['attributes'][_0x598e('0x39')]?_0x1c62c6[_0x598e('0x37')]:_0x19eef9[_0x598e('0x32')];if(_0x1b36c7[_0x598e('0x33')][_0x598e('0x42')]){_0x1c62c6[_0x598e('0x43')]=[{'all':!![]}];}_0x1c62c6=_['merge']({},_0x1c62c6,_0x1b36c7[_0x598e('0x41')]);return db[_0x598e('0x2e')]['find'](_0x1c62c6)[_0x598e('0x23')](handleEntityNotFound(_0x226204,null))[_0x598e('0x23')](respondWithResult(_0x226204,null))[_0x598e('0x45')](handleError(_0x226204,null));};exports['create']=function(_0x59e67b,_0x57b11a){return db[_0x598e('0x2e')][_0x598e('0x48')](_0x59e67b['body'],{})['then'](function(_0x3d094f){var _0x1aa0c3=_0x59e67b['user']['get']({'plain':!![]});if(!_0x1aa0c3)throw new Error(_0x598e('0x49'));if(_0x1aa0c3[_0x598e('0x4a')]===_0x598e('0x4b')){var _0x34a43d=_0x3d094f['get']({'plain':!![]});var _0x514318=_0x598e('0x25');return db['UserProfileSection'][_0x598e('0x4c')]({'where':{'name':_0x514318,'userProfileId':_0x1aa0c3['userProfileId']},'raw':!![]})[_0x598e('0x23')](function(_0x2f7641){if(_0x2f7641&&_0x2f7641[_0x598e('0x4d')]===0x0){return db[_0x598e('0x26')][_0x598e('0x48')]({'name':_0x34a43d[_0x598e('0x2b')],'resourceId':_0x34a43d['id'],'type':_0x2f7641[_0x598e('0x2b')],'sectionId':_0x2f7641['id']},{})['then'](function(){return _0x3d094f;});}else{return _0x3d094f;}})[_0x598e('0x45')](function(_0x170ee8){logger[_0x598e('0x29')](_0x598e('0x4e'),_0x170ee8);throw _0x170ee8;});}return _0x3d094f;})['then'](respondWithResult(_0x57b11a,0xc9))[_0x598e('0x45')](handleError(_0x57b11a,null));};exports[_0x598e('0x21')]=function(_0x33268c,_0x4668aa){if(_0x33268c[_0x598e('0x4f')]['id']){delete _0x33268c[_0x598e('0x4f')]['id'];}return db[_0x598e('0x2e')]['find']({'where':{'id':_0x33268c[_0x598e('0x47')]['id']}})[_0x598e('0x23')](handleEntityNotFound(_0x4668aa,null))[_0x598e('0x23')](saveUpdates(_0x33268c[_0x598e('0x4f')],null))['then'](respondWithResult(_0x4668aa,null))[_0x598e('0x45')](handleError(_0x4668aa,null));};exports['destroy']=function(_0x529eeb,_0x41dd04){return db[_0x598e('0x2e')][_0x598e('0x4c')]({'where':{'id':_0x529eeb[_0x598e('0x47')]['id']}})[_0x598e('0x23')](handleEntityNotFound(_0x41dd04,null))[_0x598e('0x23')](removeEntity(_0x41dd04,null))[_0x598e('0x45')](handleError(_0x41dd04,null));};
\ No newline at end of file
+var _0x6f0d=['intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','options','include','rows','show','params','includeAll','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Tags','UserProfileSection','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','json','reject','update','destroy','then','get','UserProfileResource','stack','name','send','index','map','Tag','rawAttributes','fieldName','type','key','model','keys'];(function(_0x3e984c,_0x3d3581){var _0x29caa9=function(_0x376b4f){while(--_0x376b4f){_0x3e984c['push'](_0x3e984c['shift']());}};_0x29caa9(++_0x3d3581);}(_0x6f0d,0x16c));var _0xd6f0=function(_0x175f09,_0x22a40f){_0x175f09=_0x175f09-0x0;var _0x58e394=_0x6f0d[_0x175f09];return _0x58e394;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd6f0('0x0'));var zipdir=require(_0xd6f0('0x1'));var jsonpatch=require(_0xd6f0('0x2'));var rp=require(_0xd6f0('0x3'));var moment=require('moment');var BPromise=require(_0xd6f0('0x4'));var Mustache=require(_0xd6f0('0x5'));var util=require(_0xd6f0('0x6'));var path=require(_0xd6f0('0x7'));var sox=require(_0xd6f0('0x8'));var csv=require('to-csv');var ejs=require(_0xd6f0('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd6f0('0xa'));var squel=require(_0xd6f0('0xb'));var crypto=require(_0xd6f0('0xc'));var jsforce=require(_0xd6f0('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd6f0('0xe'));var Papa=require(_0xd6f0('0xf'));var Redis=require(_0xd6f0('0x10'));var authService=require(_0xd6f0('0x11'));var qs=require(_0xd6f0('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd6f0('0x13'));var logger=require(_0xd6f0('0x14'))(_0xd6f0('0x15'));var utils=require(_0xd6f0('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xd6f0('0x17'));var db=require(_0xd6f0('0x18'))['db'];function respondWithStatusCode(_0x306aad,_0x45973d){_0x45973d=_0x45973d||0xcc;return function(_0x109655){if(_0x109655){return _0x306aad[_0xd6f0('0x19')](_0x45973d);}return _0x306aad[_0xd6f0('0x1a')](_0x45973d)[_0xd6f0('0x1b')]();};}function respondWithResult(_0x246dad,_0x4ab979){_0x4ab979=_0x4ab979||0xc8;return function(_0x2b3f32){if(_0x2b3f32){return _0x246dad[_0xd6f0('0x1a')](_0x4ab979)['json'](_0x2b3f32);}};}function respondWithFilteredResult(_0x419b7e,_0x593abe){return function(_0x3f4851){if(_0x3f4851){var _0x154e3e=typeof _0x593abe[_0xd6f0('0x1c')]===_0xd6f0('0x1d')&&typeof _0x593abe[_0xd6f0('0x1e')]===_0xd6f0('0x1d');var _0x25da0c=_0x3f4851[_0xd6f0('0x1f')];var _0x2e71bd=_0x154e3e?0x0:_0x593abe[_0xd6f0('0x1c')];var _0x23ab6c=_0x154e3e?_0x3f4851[_0xd6f0('0x1f')]:_0x593abe[_0xd6f0('0x1c')]+_0x593abe[_0xd6f0('0x1e')];var _0x1f43d7;if(_0x23ab6c>=_0x25da0c){_0x23ab6c=_0x25da0c;_0x1f43d7=0xc8;}else{_0x1f43d7=0xce;}_0x419b7e[_0xd6f0('0x1a')](_0x1f43d7);return _0x419b7e['set']('Content-Range',_0x2e71bd+'-'+_0x23ab6c+'/'+_0x25da0c)[_0xd6f0('0x20')](_0x3f4851);}return null;};}function patchUpdates(_0x264104){return function(_0x1158dc){try{jsonpatch['apply'](_0x1158dc,_0x264104,!![]);}catch(_0x67afa7){return BPromise[_0xd6f0('0x21')](_0x67afa7);}return _0x1158dc['save']();};}function saveUpdates(_0x86dde0,_0x515687){return function(_0x1ee584){if(_0x1ee584){return _0x1ee584[_0xd6f0('0x22')](_0x86dde0)['then'](function(_0xb9e820){return _0xb9e820;});}return null;};}function removeEntity(_0x45e99c,_0x5ea2dd){return function(_0x3dbdc3){if(_0x3dbdc3){return _0x3dbdc3[_0xd6f0('0x23')]()[_0xd6f0('0x24')](function(){var _0x5b1a62=_0x3dbdc3[_0xd6f0('0x25')]({'plain':!![]});var _0x3dc166='Tags';return db[_0xd6f0('0x26')]['destroy']({'where':{'type':_0x3dc166,'resourceId':_0x5b1a62['id']}})[_0xd6f0('0x24')](function(){return _0x3dbdc3;});})[_0xd6f0('0x24')](function(){_0x45e99c[_0xd6f0('0x1a')](0xcc)[_0xd6f0('0x1b')]();});}};}function handleEntityNotFound(_0x4101bd,_0x715aab){return function(_0x12d6ec){if(!_0x12d6ec){_0x4101bd[_0xd6f0('0x19')](0x194);}return _0x12d6ec;};}function handleError(_0x48975d,_0x1ea941){_0x1ea941=_0x1ea941||0x1f4;return function(_0x1982d3){logger['error'](_0x1982d3[_0xd6f0('0x27')]);if(_0x1982d3[_0xd6f0('0x28')]){delete _0x1982d3[_0xd6f0('0x28')];}_0x48975d[_0xd6f0('0x1a')](_0x1ea941)[_0xd6f0('0x29')](_0x1982d3);};}exports[_0xd6f0('0x2a')]=function(_0x351fda,_0x3151f8){var _0x465cf9={},_0x43f72f={},_0x1dff9b={'count':0x0,'rows':[]};var _0x3e913a=_[_0xd6f0('0x2b')](db[_0xd6f0('0x2c')][_0xd6f0('0x2d')],function(_0x2d7c90){return{'name':_0x2d7c90[_0xd6f0('0x2e')],'type':_0x2d7c90[_0xd6f0('0x2f')][_0xd6f0('0x30')]};});_0x43f72f[_0xd6f0('0x31')]=_[_0xd6f0('0x2b')](_0x3e913a,_0xd6f0('0x28'));_0x43f72f['query']=_[_0xd6f0('0x32')](_0x351fda['query']);_0x43f72f['filters']=_[_0xd6f0('0x33')](_0x43f72f[_0xd6f0('0x31')],_0x43f72f[_0xd6f0('0x34')]);_0x465cf9[_0xd6f0('0x35')]=_[_0xd6f0('0x33')](_0x43f72f['model'],qs[_0xd6f0('0x36')](_0x351fda['query'][_0xd6f0('0x36')]));_0x465cf9[_0xd6f0('0x35')]=_0x465cf9[_0xd6f0('0x35')][_0xd6f0('0x37')]?_0x465cf9[_0xd6f0('0x35')]:_0x43f72f['model'];if(!_0x351fda['query'][_0xd6f0('0x38')](_0xd6f0('0x39'))){_0x465cf9['limit']=qs[_0xd6f0('0x1e')](_0x351fda['query'][_0xd6f0('0x1e')]);_0x465cf9[_0xd6f0('0x1c')]=qs[_0xd6f0('0x1c')](_0x351fda[_0xd6f0('0x34')][_0xd6f0('0x1c')]);}_0x465cf9[_0xd6f0('0x3a')]=qs[_0xd6f0('0x3b')](_0x351fda['query']['sort']);_0x465cf9[_0xd6f0('0x3c')]=qs[_0xd6f0('0x3d')](_[_0xd6f0('0x3e')](_0x351fda['query'],_0x43f72f['filters']),_0x3e913a);if(_0x351fda[_0xd6f0('0x34')][_0xd6f0('0x3f')]){_0x465cf9[_0xd6f0('0x3c')]=_[_0xd6f0('0x40')](_0x465cf9[_0xd6f0('0x3c')],{'$or':_[_0xd6f0('0x2b')](_0x3e913a,function(_0x2e9043){if(_0x2e9043[_0xd6f0('0x2f')]!=='VIRTUAL'){var _0x1af620={};_0x1af620[_0x2e9043[_0xd6f0('0x28')]]={'$like':'%'+_0x351fda[_0xd6f0('0x34')][_0xd6f0('0x3f')]+'%'};return _0x1af620;}})});}_0x465cf9=_['merge']({},_0x465cf9,_0x351fda[_0xd6f0('0x41')]);var _0x94ec6d={'where':_0x465cf9[_0xd6f0('0x3c')]};return db[_0xd6f0('0x2c')][_0xd6f0('0x1f')](_0x94ec6d)['then'](function(_0x332809){_0x1dff9b[_0xd6f0('0x1f')]=_0x332809;if(_0x351fda[_0xd6f0('0x34')]['includeAll']){_0x465cf9[_0xd6f0('0x42')]=[{'all':!![]}];}return db[_0xd6f0('0x2c')]['findAll'](_0x465cf9);})['then'](function(_0x9cffd4){_0x1dff9b[_0xd6f0('0x43')]=_0x9cffd4;return _0x1dff9b;})[_0xd6f0('0x24')](respondWithFilteredResult(_0x3151f8,_0x465cf9))['catch'](handleError(_0x3151f8,null));};exports[_0xd6f0('0x44')]=function(_0x2d32f0,_0x57c2b6){var _0x362509={'raw':!![],'where':{'id':_0x2d32f0[_0xd6f0('0x45')]['id']}},_0x3080eb={};_0x3080eb[_0xd6f0('0x31')]=_['keys'](db[_0xd6f0('0x2c')][_0xd6f0('0x2d')]);_0x3080eb[_0xd6f0('0x34')]=_[_0xd6f0('0x32')](_0x2d32f0[_0xd6f0('0x34')]);_0x3080eb[_0xd6f0('0x3d')]=_[_0xd6f0('0x33')](_0x3080eb[_0xd6f0('0x31')],_0x3080eb['query']);_0x362509[_0xd6f0('0x35')]=_[_0xd6f0('0x33')](_0x3080eb['model'],qs[_0xd6f0('0x36')](_0x2d32f0[_0xd6f0('0x34')][_0xd6f0('0x36')]));_0x362509[_0xd6f0('0x35')]=_0x362509['attributes'][_0xd6f0('0x37')]?_0x362509[_0xd6f0('0x35')]:_0x3080eb['model'];if(_0x2d32f0['query'][_0xd6f0('0x46')]){_0x362509['include']=[{'all':!![]}];}_0x362509=_[_0xd6f0('0x40')]({},_0x362509,_0x2d32f0[_0xd6f0('0x41')]);return db[_0xd6f0('0x2c')]['find'](_0x362509)[_0xd6f0('0x24')](handleEntityNotFound(_0x57c2b6,null))[_0xd6f0('0x24')](respondWithResult(_0x57c2b6,null))[_0xd6f0('0x47')](handleError(_0x57c2b6,null));};exports[_0xd6f0('0x48')]=function(_0xc4147e,_0x4c42ce){return db[_0xd6f0('0x2c')]['create'](_0xc4147e[_0xd6f0('0x49')],{})[_0xd6f0('0x24')](function(_0x2eb338){var _0x1dc320=_0xc4147e['user']['get']({'plain':!![]});if(!_0x1dc320)throw new Error(_0xd6f0('0x4a'));if(_0x1dc320[_0xd6f0('0x4b')]==='user'){var _0xa68b18=_0x2eb338['get']({'plain':!![]});var _0xb5fc29=_0xd6f0('0x4c');return db[_0xd6f0('0x4d')][_0xd6f0('0x4e')]({'where':{'name':_0xb5fc29,'userProfileId':_0x1dc320[_0xd6f0('0x4f')]},'raw':!![]})['then'](function(_0x232757){if(_0x232757&&_0x232757[_0xd6f0('0x50')]===0x0){return db[_0xd6f0('0x26')][_0xd6f0('0x48')]({'name':_0xa68b18[_0xd6f0('0x28')],'resourceId':_0xa68b18['id'],'type':_0x232757[_0xd6f0('0x28')],'sectionId':_0x232757['id']},{})[_0xd6f0('0x24')](function(){return _0x2eb338;});}else{return _0x2eb338;}})[_0xd6f0('0x47')](function(_0x5eb262){logger[_0xd6f0('0x51')](_0xd6f0('0x52'),_0x5eb262);throw _0x5eb262;});}return _0x2eb338;})[_0xd6f0('0x24')](respondWithResult(_0x4c42ce,0xc9))[_0xd6f0('0x47')](handleError(_0x4c42ce,null));};exports[_0xd6f0('0x22')]=function(_0x3c8861,_0x43563d){if(_0x3c8861[_0xd6f0('0x49')]['id']){delete _0x3c8861[_0xd6f0('0x49')]['id'];}return db['Tag'][_0xd6f0('0x4e')]({'where':{'id':_0x3c8861['params']['id']}})['then'](handleEntityNotFound(_0x43563d,null))[_0xd6f0('0x24')](saveUpdates(_0x3c8861['body'],null))['then'](respondWithResult(_0x43563d,null))[_0xd6f0('0x47')](handleError(_0x43563d,null));};exports[_0xd6f0('0x23')]=function(_0x8c6f9c,_0x47a159){return db[_0xd6f0('0x2c')][_0xd6f0('0x4e')]({'where':{'id':_0x8c6f9c[_0xd6f0('0x45')]['id']}})['then'](handleEntityNotFound(_0x47a159,null))[_0xd6f0('0x24')](removeEntity(_0x47a159,null))[_0xd6f0('0x47')](handleError(_0x47a159,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a16=['rimraf','../../config/environment','./tag.attributes','exports','tools_tags','api','moment','bluebird','path'];(function(_0x34933a,_0x327378){var _0x36abb4=function(_0x2d6814){while(--_0x2d6814){_0x34933a['push'](_0x34933a['shift']());}};_0x36abb4(++_0x327378);}(_0x6a16,0x113));var _0x66a1=function(_0x3f8cf6,_0x154026){_0x3f8cf6=_0x3f8cf6-0x0;var _0x2c3cc2=_0x6a16[_0x3f8cf6];return _0x2c3cc2;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x66a1('0x0'));var moment=require(_0x66a1('0x1'));var BPromise=require(_0x66a1('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x66a1('0x3'));var rimraf=require(_0x66a1('0x4'));var config=require(_0x66a1('0x5'));var attributes=require(_0x66a1('0x6'));module[_0x66a1('0x7')]=function(_0x4cb89d,_0x499804){return _0x4cb89d['define']('Tag',attributes,{'tableName':_0x66a1('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8dfc=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./tag.attributes','exports','define','Tag','tools_tags','lodash'];(function(_0x1d068c,_0x38c755){var _0x17e1e6=function(_0x15d6d2){while(--_0x15d6d2){_0x1d068c['push'](_0x1d068c['shift']());}};_0x17e1e6(++_0x38c755);}(_0x8dfc,0xdf));var _0xc8df=function(_0x217ff6,_0x36f75d){_0x217ff6=_0x217ff6-0x0;var _0x417c93=_0x8dfc[_0x217ff6];return _0x417c93;};'use strict';var _=require(_0xc8df('0x0'));var util=require(_0xc8df('0x1'));var logger=require(_0xc8df('0x2'))(_0xc8df('0x3'));var moment=require(_0xc8df('0x4'));var BPromise=require(_0xc8df('0x5'));var rp=require(_0xc8df('0x6'));var fs=require('fs');var path=require(_0xc8df('0x7'));var rimraf=require(_0xc8df('0x8'));var config=require('../../config/environment');var attributes=require(_0xc8df('0x9'));module[_0xc8df('0xa')]=function(_0x510ed2,_0x16ed3e){return _0x510ed2[_0xc8df('0xb')](_0xc8df('0xc'),attributes,{'tableName':_0xc8df('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99e9=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','Tag,\x20%s,\x20%s','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring'];(function(_0x6c77b1,_0x4399eb){var _0x1cee86=function(_0xf4f50){while(--_0xf4f50){_0x6c77b1['push'](_0x6c77b1['shift']());}};_0x1cee86(++_0x4399eb);}(_0x99e9,0xb4));var _0x999e=function(_0x1034bb,_0x4e20b3){_0x1034bb=_0x1034bb-0x0;var _0x453fdb=_0x99e9[_0x1034bb];return _0x453fdb;};'use strict';var _=require('lodash');var util=require(_0x999e('0x0'));var moment=require(_0x999e('0x1'));var BPromise=require(_0x999e('0x2'));var rs=require(_0x999e('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x999e('0x4'))['db'];var utils=require(_0x999e('0x5'));var logger=require(_0x999e('0x6'))('rpc');var config=require(_0x999e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x999e('0x8')][_0x999e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x100330,_0x18f337,_0x5c1c17){return new BPromise(function(_0x46aeae,_0x38a692){return client[_0x999e('0xa')](_0x100330,_0x5c1c17)[_0x999e('0xb')](function(_0x2c38cf){logger[_0x999e('0xc')](_0x999e('0xd'),_0x18f337,_0x999e('0xe'));logger[_0x999e('0xf')](_0x999e('0x10'),_0x18f337,_0x999e('0xe'),JSON[_0x999e('0x11')](_0x2c38cf));if(_0x2c38cf[_0x999e('0x12')]){if(_0x2c38cf[_0x999e('0x12')][_0x999e('0x13')]===0x1f4){logger[_0x999e('0x12')](_0x999e('0xd'),_0x18f337,_0x2c38cf['error'][_0x999e('0x14')]);return _0x38a692(_0x2c38cf['error'][_0x999e('0x14')]);}logger[_0x999e('0x12')](_0x999e('0xd'),_0x18f337,_0x2c38cf['error'][_0x999e('0x14')]);return _0x46aeae(_0x2c38cf['error'][_0x999e('0x14')]);}else{logger['info']('Tag,\x20%s,\x20%s',_0x18f337,_0x999e('0xe'));_0x46aeae(_0x2c38cf[_0x999e('0x15')][_0x999e('0x14')]);}})[_0x999e('0x16')](function(_0x1e9bff){logger[_0x999e('0x12')]('Tag,\x20%s,\x20%s',_0x18f337,_0x1e9bff);_0x38a692(_0x1e9bff);});});}
\ No newline at end of file
+var _0xb4e6=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','then','info','Tag,\x20%s,\x20%s','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x565ed7,_0x398228){var _0x183ad7=function(_0x5a43d7){while(--_0x5a43d7){_0x565ed7['push'](_0x565ed7['shift']());}};_0x183ad7(++_0x398228);}(_0xb4e6,0x1f4));var _0x6b4e=function(_0x20e7e3,_0x1529be){_0x20e7e3=_0x20e7e3-0x0;var _0x14b9de=_0xb4e6[_0x20e7e3];return _0x14b9de;};'use strict';var _=require(_0x6b4e('0x0'));var util=require('util');var moment=require(_0x6b4e('0x1'));var BPromise=require(_0x6b4e('0x2'));var rs=require(_0x6b4e('0x3'));var fs=require('fs');var Redis=require(_0x6b4e('0x4'));var db=require(_0x6b4e('0x5'))['db'];var utils=require(_0x6b4e('0x6'));var logger=require(_0x6b4e('0x7'))('rpc');var config=require(_0x6b4e('0x8'));var jayson=require(_0x6b4e('0x9'));var client=jayson[_0x6b4e('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0xd3138f,_0x570346,_0x4f00be){return new BPromise(function(_0x2311d9,_0x48c870){return client['request'](_0xd3138f,_0x4f00be)[_0x6b4e('0xb')](function(_0x2bd576){logger[_0x6b4e('0xc')](_0x6b4e('0xd'),_0x570346,_0x6b4e('0xe'));logger[_0x6b4e('0xf')](_0x6b4e('0x10'),_0x570346,'request\x20sent',JSON[_0x6b4e('0x11')](_0x2bd576));if(_0x2bd576[_0x6b4e('0x12')]){if(_0x2bd576['error'][_0x6b4e('0x13')]===0x1f4){logger[_0x6b4e('0x12')](_0x6b4e('0xd'),_0x570346,_0x2bd576[_0x6b4e('0x12')][_0x6b4e('0x14')]);return _0x48c870(_0x2bd576[_0x6b4e('0x12')][_0x6b4e('0x14')]);}logger['error'](_0x6b4e('0xd'),_0x570346,_0x2bd576[_0x6b4e('0x12')]['message']);return _0x2311d9(_0x2bd576[_0x6b4e('0x12')]['message']);}else{logger[_0x6b4e('0xc')](_0x6b4e('0xd'),_0x570346,_0x6b4e('0xe'));_0x2311d9(_0x2bd576[_0x6b4e('0x15')][_0x6b4e('0x14')]);}})[_0x6b4e('0x16')](function(_0x53a934){logger['error'](_0x6b4e('0xd'),_0x570346,_0x53a934);_0x48c870(_0x53a934);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x13ea00,_0x12f610){_0x13ea00=_0x13ea00-0x0;var _0x1f7347=_0xa9e0[_0x13ea00];return _0x1f7347;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0x4b055c,_0x4b870b){var _0x4b62bb=function(_0x4884c2){while(--_0x4884c2){_0x4b055c['push'](_0x4b055c['shift']());}};_0x4b62bb(++_0x4b870b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4baae2,_0x487ab6){_0x4baae2=_0x4baae2-0x0;var _0x1a2285=_0xa9e0[_0x4baae2];return _0x1a2285;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['exports','sequelize'];(function(_0x382aff,_0x115172){var _0x28a3e5=function(_0x3580cc){while(--_0x3580cc){_0x382aff['push'](_0x382aff['shift']());}};_0x28a3e5(++_0x115172);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xb10b=['name','sequelize','STRING'];(function(_0xaa352d,_0x4b7de4){var _0x525a08=function(_0x513536){while(--_0x513536){_0xaa352d['push'](_0xaa352d['shift']());}};_0x525a08(++_0x4b7de4);}(_0xb10b,0x12a));var _0xbb10=function(_0x2c6484,_0x4fe72c){_0x2c6484=_0x2c6484-0x0;var _0x3b9d94=_0xb10b[_0x2c6484];return _0x3b9d94;};'use strict';var Sequelize=require(_0xbb10('0x0'));module['exports']={'name':{'type':Sequelize[_0xbb10('0x1')],'allowNull':![],'unique':_0xbb10('0x2')},'description':{'type':Sequelize[_0xbb10('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa83=['json','limit','undefined','offset','count','Content-Range','save','update','destroy','then','get','Teams','UserProfileResource','stack','name','send','index','Team','fieldName','type','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getQueues','channel','isValidChannel','Sequelize','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queue','Queues','findOne','add','ids','removeQueues','addAgents','Voice','Chat','Mail','Sms','Fax','Whatsapp','sequelize','transaction','through','penalty','QueueId','TeamVoiceQueue','User','findOrCreate','emit','Queue:save','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','all','Openchannel','parse','Queue:remove','removeAgents','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','redis','defaults','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','end'];(function(_0x77d310,_0x2b2fe7){var _0x2cdce4=function(_0xbaa481){while(--_0xbaa481){_0x77d310['push'](_0x77d310['shift']());}};_0x2cdce4(++_0x2b2fe7);}(_0xaa83,0x16a));var _0x3aa8=function(_0x4defeb,_0x127aeb){_0x4defeb=_0x4defeb-0x0;var _0x2cde95=_0xaa83[_0x4defeb];return _0x2cde95;};'use strict';var emlformat=require(_0x3aa8('0x0'));var rimraf=require(_0x3aa8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3aa8('0x2'));var rp=require(_0x3aa8('0x3'));var moment=require(_0x3aa8('0x4'));var BPromise=require(_0x3aa8('0x5'));var Mustache=require(_0x3aa8('0x6'));var util=require(_0x3aa8('0x7'));var path=require(_0x3aa8('0x8'));var sox=require(_0x3aa8('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3aa8('0xa'));var _=require('lodash');var squel=require(_0x3aa8('0xb'));var crypto=require('crypto');var jsforce=require(_0x3aa8('0xc'));var deskjs=require(_0x3aa8('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x3aa8('0xe'));var Redis=require(_0x3aa8('0xf'));var authService=require(_0x3aa8('0x10'));var qs=require(_0x3aa8('0x11'));var as=require(_0x3aa8('0x12'));var hardwareService=require(_0x3aa8('0x13'));var logger=require(_0x3aa8('0x14'))('api');var utils=require(_0x3aa8('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x3aa8('0x16')]=_[_0x3aa8('0x17')](config[_0x3aa8('0x16')],{'host':_0x3aa8('0x18'),'port':0x18eb});var socket=require(_0x3aa8('0x19'))(new Redis(config[_0x3aa8('0x16')]));require(_0x3aa8('0x1a'))[_0x3aa8('0x1b')](socket);function respondWithStatusCode(_0xa225,_0x5a3b60){_0x5a3b60=_0x5a3b60||0xcc;return function(_0x5b4148){if(_0x5b4148){return _0xa225[_0x3aa8('0x1c')](_0x5a3b60);}return _0xa225[_0x3aa8('0x1d')](_0x5a3b60)[_0x3aa8('0x1e')]();};}function respondWithResult(_0x3b9354,_0x5ce838){_0x5ce838=_0x5ce838||0xc8;return function(_0x2a69cb){if(_0x2a69cb){return _0x3b9354['status'](_0x5ce838)[_0x3aa8('0x1f')](_0x2a69cb);}};}function respondWithFilteredResult(_0x524254,_0xb318de){return function(_0x2c18fe){if(_0x2c18fe){var _0x595506=typeof _0xb318de['offset']==='undefined'&&typeof _0xb318de[_0x3aa8('0x20')]===_0x3aa8('0x21');var _0x4583b7=_0x2c18fe['count'];var _0x48ba51=_0x595506?0x0:_0xb318de[_0x3aa8('0x22')];var _0x694788=_0x595506?_0x2c18fe[_0x3aa8('0x23')]:_0xb318de[_0x3aa8('0x22')]+_0xb318de['limit'];var _0x30e3bd;if(_0x694788>=_0x4583b7){_0x694788=_0x4583b7;_0x30e3bd=0xc8;}else{_0x30e3bd=0xce;}_0x524254[_0x3aa8('0x1d')](_0x30e3bd);return _0x524254['set'](_0x3aa8('0x24'),_0x48ba51+'-'+_0x694788+'/'+_0x4583b7)[_0x3aa8('0x1f')](_0x2c18fe);}return null;};}function patchUpdates(_0x15b116){return function(_0x1d6cee){try{jsonpatch['apply'](_0x1d6cee,_0x15b116,!![]);}catch(_0x34e431){return BPromise['reject'](_0x34e431);}return _0x1d6cee[_0x3aa8('0x25')]();};}function saveUpdates(_0x1d87b8,_0xa59b19){return function(_0x499f5b){if(_0x499f5b){return _0x499f5b[_0x3aa8('0x26')](_0x1d87b8)['then'](function(_0x1eac03){return _0x1eac03;});}return null;};}function removeEntity(_0x2f06f6,_0x48cc96){return function(_0x31724b){if(_0x31724b){return _0x31724b[_0x3aa8('0x27')]()[_0x3aa8('0x28')](function(){var _0x343533=_0x31724b[_0x3aa8('0x29')]({'plain':!![]});var _0x463822=_0x3aa8('0x2a');return db[_0x3aa8('0x2b')][_0x3aa8('0x27')]({'where':{'type':_0x463822,'resourceId':_0x343533['id']}})[_0x3aa8('0x28')](function(){return _0x31724b;});})[_0x3aa8('0x28')](function(){_0x2f06f6[_0x3aa8('0x1d')](0xcc)[_0x3aa8('0x1e')]();});}};}function handleEntityNotFound(_0x1a30f4,_0x3cd221){return function(_0x4a7504){if(!_0x4a7504){_0x1a30f4[_0x3aa8('0x1c')](0x194);}return _0x4a7504;};}function handleError(_0x378d8b,_0x27995a){_0x27995a=_0x27995a||0x1f4;return function(_0x4264a4){logger['error'](_0x4264a4[_0x3aa8('0x2c')]);if(_0x4264a4['name']){delete _0x4264a4[_0x3aa8('0x2d')];}_0x378d8b[_0x3aa8('0x1d')](_0x27995a)[_0x3aa8('0x2e')](_0x4264a4);};}exports[_0x3aa8('0x2f')]=function(_0x448caa,_0x13674d){var _0x31ce1e={},_0x46b095={},_0x4cfc83={'count':0x0,'rows':[]};var _0x553e7b=_['map'](db[_0x3aa8('0x30')]['rawAttributes'],function(_0x5295ee){return{'name':_0x5295ee[_0x3aa8('0x31')],'type':_0x5295ee[_0x3aa8('0x32')]['key']};});_0x46b095[_0x3aa8('0x33')]=_[_0x3aa8('0x34')](_0x553e7b,_0x3aa8('0x2d'));_0x46b095[_0x3aa8('0x35')]=_[_0x3aa8('0x36')](_0x448caa[_0x3aa8('0x35')]);_0x46b095[_0x3aa8('0x37')]=_['intersection'](_0x46b095[_0x3aa8('0x33')],_0x46b095[_0x3aa8('0x35')]);_0x31ce1e[_0x3aa8('0x38')]=_[_0x3aa8('0x39')](_0x46b095[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x3a')]));_0x31ce1e[_0x3aa8('0x38')]=_0x31ce1e[_0x3aa8('0x38')][_0x3aa8('0x3b')]?_0x31ce1e[_0x3aa8('0x38')]:_0x46b095[_0x3aa8('0x33')];if(!_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x3c')](_0x3aa8('0x3d'))){_0x31ce1e['limit']=qs['limit'](_0x448caa['query'][_0x3aa8('0x20')]);_0x31ce1e[_0x3aa8('0x22')]=qs[_0x3aa8('0x22')](_0x448caa['query'][_0x3aa8('0x22')]);}_0x31ce1e[_0x3aa8('0x3e')]=qs[_0x3aa8('0x3f')](_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x3f')]);_0x31ce1e['where']=qs[_0x3aa8('0x37')](_[_0x3aa8('0x40')](_0x448caa[_0x3aa8('0x35')],_0x46b095['filters']),_0x553e7b);if(_0x448caa['query'][_0x3aa8('0x41')]){_0x31ce1e[_0x3aa8('0x42')]=_[_0x3aa8('0x43')](_0x31ce1e[_0x3aa8('0x42')],{'$or':_['map'](_0x553e7b,function(_0x2f75e8){if(_0x2f75e8[_0x3aa8('0x32')]!==_0x3aa8('0x44')){var _0x576aeb={};_0x576aeb[_0x2f75e8[_0x3aa8('0x2d')]]={'$like':'%'+_0x448caa['query']['filter']+'%'};return _0x576aeb;}})});}_0x31ce1e=_[_0x3aa8('0x43')]({},_0x31ce1e,_0x448caa[_0x3aa8('0x45')]);var _0x558266={'where':_0x31ce1e['where']};return db['Team']['count'](_0x558266)['then'](function(_0x44473b){_0x4cfc83[_0x3aa8('0x23')]=_0x44473b;if(_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x46')]){_0x31ce1e[_0x3aa8('0x47')]=[{'all':!![]}];}return db[_0x3aa8('0x30')][_0x3aa8('0x48')](_0x31ce1e);})[_0x3aa8('0x28')](function(_0x212730){_0x4cfc83[_0x3aa8('0x49')]=_0x212730;return _0x4cfc83;})[_0x3aa8('0x28')](respondWithFilteredResult(_0x13674d,_0x31ce1e))[_0x3aa8('0x4a')](handleError(_0x13674d,null));};exports[_0x3aa8('0x4b')]=function(_0x4aa222,_0x4614a6){var _0xe9c1db={'raw':![],'where':{'id':_0x4aa222[_0x3aa8('0x4c')]['id']}},_0x53b775={};_0x53b775[_0x3aa8('0x33')]=_['keys'](db[_0x3aa8('0x30')][_0x3aa8('0x4d')]);_0x53b775[_0x3aa8('0x35')]=_[_0x3aa8('0x36')](_0x4aa222['query']);_0x53b775['filters']=_[_0x3aa8('0x39')](_0x53b775['model'],_0x53b775[_0x3aa8('0x35')]);_0xe9c1db[_0x3aa8('0x38')]=_[_0x3aa8('0x39')](_0x53b775[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x4aa222[_0x3aa8('0x35')][_0x3aa8('0x3a')]));_0xe9c1db[_0x3aa8('0x38')]=_0xe9c1db[_0x3aa8('0x38')][_0x3aa8('0x3b')]?_0xe9c1db[_0x3aa8('0x38')]:_0x53b775['model'];if(_0x4aa222[_0x3aa8('0x35')][_0x3aa8('0x46')]){_0xe9c1db[_0x3aa8('0x47')]=[{'all':!![]}];}_0xe9c1db=_['merge']({},_0xe9c1db,_0x4aa222[_0x3aa8('0x45')]);return db['Team'][_0x3aa8('0x4e')](_0xe9c1db)[_0x3aa8('0x28')](handleEntityNotFound(_0x4614a6,null))[_0x3aa8('0x28')](respondWithResult(_0x4614a6,null))[_0x3aa8('0x4a')](handleError(_0x4614a6,null));};exports[_0x3aa8('0x4f')]=function(_0x3bf033,_0x2e51b4){return db['Team'][_0x3aa8('0x4f')](_0x3bf033[_0x3aa8('0x50')],{})['then'](function(_0x4ba41b){var _0x57936b=_0x3bf033[_0x3aa8('0x51')][_0x3aa8('0x29')]({'plain':!![]});if(!_0x57936b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x57936b['role']===_0x3aa8('0x51')){var _0x3658d3=_0x4ba41b[_0x3aa8('0x29')]({'plain':!![]});var _0xecec5d=_0x3aa8('0x2a');return db[_0x3aa8('0x52')][_0x3aa8('0x4e')]({'where':{'name':_0xecec5d,'userProfileId':_0x57936b[_0x3aa8('0x53')]},'raw':!![]})[_0x3aa8('0x28')](function(_0x569637){if(_0x569637&&_0x569637[_0x3aa8('0x54')]===0x0){return db[_0x3aa8('0x2b')]['create']({'name':_0x3658d3[_0x3aa8('0x2d')],'resourceId':_0x3658d3['id'],'type':_0x569637[_0x3aa8('0x2d')],'sectionId':_0x569637['id']},{})['then'](function(){return _0x4ba41b;});}else{return _0x4ba41b;}})[_0x3aa8('0x4a')](function(_0x51a92e){logger[_0x3aa8('0x55')](_0x3aa8('0x56'),_0x51a92e);throw _0x51a92e;});}return _0x4ba41b;})[_0x3aa8('0x28')](respondWithResult(_0x2e51b4,0xc9))[_0x3aa8('0x4a')](handleError(_0x2e51b4,null));};exports[_0x3aa8('0x26')]=function(_0x40169c,_0x50f357){if(_0x40169c['body']['id']){delete _0x40169c['body']['id'];}return db[_0x3aa8('0x30')][_0x3aa8('0x4e')]({'where':{'id':_0x40169c[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x50f357,null))['then'](saveUpdates(_0x40169c[_0x3aa8('0x50')],null))[_0x3aa8('0x28')](respondWithResult(_0x50f357,null))['catch'](handleError(_0x50f357,null));};exports[_0x3aa8('0x27')]=function(_0x2f7e38,_0x3b9242){return db[_0x3aa8('0x30')][_0x3aa8('0x4e')]({'where':{'id':_0x2f7e38[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x3b9242,null))[_0x3aa8('0x28')](removeEntity(_0x3b9242,null))[_0x3aa8('0x4a')](handleError(_0x3b9242,null));};exports[_0x3aa8('0x57')]=function(_0x3eab6c,_0x4f68ef,_0xa09163){return db[_0x3aa8('0x30')]['findOne']({'where':{'id':_0x3eab6c['params']['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x4f68ef,null))[_0x3aa8('0x28')](function(_0x516ba2){if(!_0x3eab6c[_0x3aa8('0x35')][_0x3aa8('0x58')]||!utils[_0x3aa8('0x59')](_0x3eab6c[_0x3aa8('0x35')][_0x3aa8('0x58')])){throw new db[(_0x3aa8('0x5a'))][(_0x3aa8('0x5b'))](_0x3aa8('0x5c'));}var _0x4add4e={};var _0x174f78={};_0x174f78[_0x3aa8('0x33')]=_[_0x3aa8('0x36')](db[_[_0x3aa8('0x5d')](_0x3eab6c[_0x3aa8('0x35')]['channel'][_0x3aa8('0x5e')]())+_0x3aa8('0x5f')][_0x3aa8('0x4d')]);_0x174f78['query']=_[_0x3aa8('0x36')](_0x3eab6c['query']);_0x174f78[_0x3aa8('0x37')]=_[_0x3aa8('0x39')](_0x174f78[_0x3aa8('0x33')],_0x174f78['query']);_0x4add4e[_0x3aa8('0x38')]=_[_0x3aa8('0x39')](_0x174f78[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x3eab6c['query'][_0x3aa8('0x3a')]));_0x4add4e[_0x3aa8('0x38')]=_0x4add4e[_0x3aa8('0x38')]['length']?_0x4add4e[_0x3aa8('0x38')]:_0x174f78[_0x3aa8('0x33')];_0x4add4e[_0x3aa8('0x20')]=qs[_0x3aa8('0x20')](_0x3eab6c['query'][_0x3aa8('0x20')]);_0x4add4e[_0x3aa8('0x22')]=qs[_0x3aa8('0x22')](_0x3eab6c['query'][_0x3aa8('0x22')]);_0x4add4e['order']=qs['sort'](_0x3eab6c['query'][_0x3aa8('0x3f')]);_0x4add4e[_0x3aa8('0x42')]=qs[_0x3aa8('0x37')](_[_0x3aa8('0x40')](_0x3eab6c[_0x3aa8('0x35')],_0x174f78[_0x3aa8('0x37')]));_0x4add4e=_['merge']({},_0x4add4e,_0x3eab6c['options']);return _0x516ba2[_0x3aa8('0x29')+_[_0x3aa8('0x5d')](_0x3eab6c['query']['channel'][_0x3aa8('0x5e')]())+_0x3aa8('0x60')](_0x4add4e);})['then'](respondWithResult(_0x4f68ef,null))[_0x3aa8('0x4a')](handleError(_0x4f68ef,null));};exports['addQueues']=function(_0x3c8c2c,_0xb82619,_0xb20140){return db['Team'][_0x3aa8('0x61')]({'where':{'id':_0x3c8c2c['params']['id']}})[_0x3aa8('0x28')](function(_0x30f4af){if(_0x30f4af){if(!_0x3c8c2c[_0x3aa8('0x50')]['channel']||!utils[_0x3aa8('0x59')](_0x3c8c2c[_0x3aa8('0x50')][_0x3aa8('0x58')])){throw new db[(_0x3aa8('0x5a'))][(_0x3aa8('0x5b'))]('Unknown\x20channel');}return _0x30f4af[_0x3aa8('0x62')+_[_0x3aa8('0x5d')](_0x3c8c2c[_0x3aa8('0x50')][_0x3aa8('0x58')]['toLowerCase']())+'Queues'](_0x3c8c2c[_0x3aa8('0x50')][_0x3aa8('0x63')]);}return null;})[_0x3aa8('0x28')](handleEntityNotFound(_0xb82619,null))['then'](respondWithStatusCode(_0xb82619,null))[_0x3aa8('0x4a')](handleError(_0xb82619,null));};exports[_0x3aa8('0x64')]=function(_0x410bdf,_0xc0d797,_0x4aa0a9){return db[_0x3aa8('0x30')][_0x3aa8('0x61')]({'where':{'id':_0x410bdf[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](function(_0x5a5e01){if(_0x5a5e01){if(!_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x58')]||!utils['isValidChannel'](_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x58')])){throw new db[(_0x3aa8('0x5a'))][(_0x3aa8('0x5b'))](_0x3aa8('0x5c'));}return _0x5a5e01['remove'+_['capitalize'](_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x58')][_0x3aa8('0x5e')]())+'Queues'](_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x63')]);}return null;})[_0x3aa8('0x28')](handleEntityNotFound(_0xc0d797,null))[_0x3aa8('0x28')](respondWithStatusCode(_0xc0d797,null))[_0x3aa8('0x4a')](handleError(_0xc0d797,null));};exports[_0x3aa8('0x65')]=function(_0x300109,_0x356bda){return db['Team'][_0x3aa8('0x4e')]({'where':{'id':_0x300109[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x356bda,null))[_0x3aa8('0x28')](function(_0x59ed8d){if(_0x59ed8d){var _0x23a604=[_0x3aa8('0x66'),_0x3aa8('0x67'),_0x3aa8('0x68'),_0x3aa8('0x69'),_0x3aa8('0x6a'),'Openchannel',_0x3aa8('0x6b')];return db[_0x3aa8('0x6c')][_0x3aa8('0x6d')](function(_0x3a8249){var _0x4a910c=_[_0x3aa8('0x34')](_0x23a604,function(_0xf63d5f){var _0x55f7f4={'attributes':['id',_0x3aa8('0x2d')]};if(_0xf63d5f===_0x3aa8('0x66')){_0x55f7f4[_0x3aa8('0x6e')]={'attributes':[_0x3aa8('0x6f')]};}return _0x59ed8d[_0x3aa8('0x29')+_0xf63d5f+_0x3aa8('0x60')](_0x55f7f4)['then'](function(_0x42729c){var _0x7c4875=_['map'](_0x42729c,function(_0x53d622){var _0x50b66a=_[_0x3aa8('0x34')](_0x300109['body']['ids'],function(_0x42c8bf){var _0x46adea={'where':{'UserId':_0x42c8bf,[_0xf63d5f+_0x3aa8('0x70')]:_0x53d622['id']},'transaction':_0x3a8249};if(_0xf63d5f==='Voice'){_0x46adea[_0x3aa8('0x17')]={'penalty':_0x53d622[_0x3aa8('0x71')]['penalty']};}return db[_0x3aa8('0x72')+_0xf63d5f+_0x3aa8('0x5f')][_0x3aa8('0x73')](_0x46adea)[_0x3aa8('0x28')](function(){socket[_0x3aa8('0x74')](_0x3aa8('0x51')+_0xf63d5f+_0x3aa8('0x75'),{'UserId':_0x42c8bf,[_0xf63d5f+_0x3aa8('0x70')]:_0x53d622['id']});if(_0xf63d5f!==_0x3aa8('0x66'))return;return db['User'][_0x3aa8('0x48')]({'where':{'id':_0x300109[_0x3aa8('0x50')][_0x3aa8('0x63')],'online':0x1},'attributes':['id','name','online',_0x3aa8('0x76'),_0x3aa8('0x77')],'raw':!![]})[_0x3aa8('0x28')](function(_0x440bb4){var _0x2610ce=_[_0x3aa8('0x34')](_0x440bb4,function(_0x193af1){return db[_0x3aa8('0x78')][_0x3aa8('0x79')]({'membername':_0x193af1[_0x3aa8('0x2d')],'UserId':_0x193af1['id'],'queue_name':_0x53d622[_0x3aa8('0x2d')],'VoiceQueueId':_0x53d622['id'],'interface':_[_0x3aa8('0x7a')](_0x193af1['interface'])?util[_0x3aa8('0x7b')](_0x3aa8('0x7c'),_0x193af1[_0x3aa8('0x2d')]):_0x193af1[_0x3aa8('0x77')],'paused':_0x193af1[_0x3aa8('0x76')]||![],'penalty':_0x53d622[_0x3aa8('0x71')]['penalty']},{'transaction':_0x3a8249});});return Promise['all'](_0x2610ce);});});});return Promise[_0x3aa8('0x7d')](_0x50b66a);});return Promise[_0x3aa8('0x7d')](_0x7c4875);});});return Promise[_0x3aa8('0x7d')](_0x4a910c)[_0x3aa8('0x28')](function(){return _0x59ed8d[_0x3aa8('0x65')](_0x300109['body'][_0x3aa8('0x63')],{'transaction':_0x3a8249})['spread'](function(_0x52dc60){return _0x52dc60;});});});}})[_0x3aa8('0x28')](respondWithResult(_0x356bda,null))[_0x3aa8('0x4a')](handleError(_0x356bda,null));};exports['removeAgents']=function(_0x4de2ad,_0xf5ab5){return db[_0x3aa8('0x30')][_0x3aa8('0x4e')]({'where':{'id':_0x4de2ad[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0xf5ab5,null))[_0x3aa8('0x28')](function(_0x5d24f9){if(_0x5d24f9){var _0x55be1b=['Voice',_0x3aa8('0x67'),'Mail',_0x3aa8('0x69'),'Fax',_0x3aa8('0x7e'),_0x3aa8('0x6b')];return db[_0x3aa8('0x6c')]['transaction'](function(_0x1638be){var _0x358433=_[_0x3aa8('0x34')](_0x55be1b,function(_0x170839){var _0xb2a0b0={'attributes':['id',_0x3aa8('0x2d')]};return _0x5d24f9[_0x3aa8('0x29')+_0x170839+_0x3aa8('0x60')](_0xb2a0b0)[_0x3aa8('0x28')](function(_0x44511d){var _0x59aa40=_['map'](_0x44511d,function(_0x230967){return _0x230967['removeAgents'](_0x4de2ad[_0x3aa8('0x35')]['ids'],{'transaction':_0x1638be})[_0x3aa8('0x28')](function(){var _0x13c38c=JSON[_0x3aa8('0x7f')]('['+_0x4de2ad[_0x3aa8('0x35')]['ids']+']');var _0x3e293b=_[_0x3aa8('0x34')](_0x13c38c,function(_0x24a4b0){socket['emit'](_0x3aa8('0x51')+_0x170839+_0x3aa8('0x80'),{'UserId':Number(_0x24a4b0),[_0x170839+_0x3aa8('0x70')]:_0x230967['id']});if(_0x170839!=='Voice')return;return db[_0x3aa8('0x78')][_0x3aa8('0x27')]({'where':{'VoiceQueueId':_0x230967['id'],'UserId':_0x24a4b0},'transaction':_0x1638be});});return Promise[_0x3aa8('0x7d')](_0x3e293b);});});return Promise[_0x3aa8('0x7d')](_0x59aa40);});});return Promise[_0x3aa8('0x7d')](_0x358433)['then'](function(){return _0x5d24f9[_0x3aa8('0x81')](_0x4de2ad[_0x3aa8('0x35')][_0x3aa8('0x63')],{'transaction':_0x1638be});});});}})[_0x3aa8('0x28')](respondWithStatusCode(_0xf5ab5,null))[_0x3aa8('0x4a')](handleError(_0xf5ab5,null));};exports['getAgents']=function(_0x5db0d0,_0xafa5c,_0x2089fd){var _0x140e8a={};var _0x2e3134={};var _0x51557d;var _0x56cd1d;return db[_0x3aa8('0x30')]['findOne']({'where':{'id':_0x5db0d0[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0xafa5c,null))[_0x3aa8('0x28')](function(_0x1f9514){if(_0x1f9514){_0x51557d=_0x1f9514;_0x2e3134[_0x3aa8('0x33')]=_[_0x3aa8('0x36')](db[_0x3aa8('0x72')][_0x3aa8('0x4d')]);_0x2e3134['query']=_[_0x3aa8('0x36')](_0x5db0d0[_0x3aa8('0x35')]);_0x2e3134[_0x3aa8('0x37')]=_['intersection'](_0x2e3134[_0x3aa8('0x33')],_0x2e3134['query']);_0x140e8a['attributes']=_[_0x3aa8('0x39')](_0x2e3134[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x5db0d0[_0x3aa8('0x35')][_0x3aa8('0x3a')]));_0x140e8a[_0x3aa8('0x38')]=_0x140e8a[_0x3aa8('0x38')][_0x3aa8('0x3b')]?_0x140e8a[_0x3aa8('0x38')]:_0x2e3134['model'];_0x140e8a['order']=qs[_0x3aa8('0x3f')](_0x5db0d0[_0x3aa8('0x35')][_0x3aa8('0x3f')]);_0x140e8a[_0x3aa8('0x42')]=qs[_0x3aa8('0x37')](_[_0x3aa8('0x40')](_0x5db0d0['query'],_0x2e3134[_0x3aa8('0x37')]));if(_0x5db0d0['query'][_0x3aa8('0x41')]){_0x140e8a[_0x3aa8('0x42')]=_[_0x3aa8('0x43')](_0x140e8a['where'],{'$or':_[_0x3aa8('0x34')](_0x140e8a[_0x3aa8('0x38')],function(_0x5c13c0){var _0x110c42={};_0x110c42[_0x5c13c0]={'$like':'%'+_0x5db0d0['query']['filter']+'%'};return _0x110c42;})});}_0x140e8a=_[_0x3aa8('0x43')]({},_0x140e8a,_0x5db0d0['options']);return _0x51557d[_0x3aa8('0x82')](_0x140e8a);}})[_0x3aa8('0x28')](function(_0x1d3428){if(_0x1d3428){_0x56cd1d=_0x1d3428[_0x3aa8('0x3b')];if(!_0x5db0d0[_0x3aa8('0x35')]['hasOwnProperty']('nolimit')){_0x140e8a[_0x3aa8('0x20')]=qs[_0x3aa8('0x20')](_0x5db0d0[_0x3aa8('0x35')]['limit']);_0x140e8a[_0x3aa8('0x22')]=qs[_0x3aa8('0x22')](_0x5db0d0[_0x3aa8('0x35')]['offset']);}return _0x51557d['getAgents'](_0x140e8a);}})[_0x3aa8('0x28')](function(_0x55e475){if(_0x55e475){return _0x55e475?{'count':_0x56cd1d,'rows':_0x55e475}:null;}})[_0x3aa8('0x28')](respondWithResult(_0xafa5c,null))[_0x3aa8('0x4a')](handleError(_0xafa5c,null));};
\ No newline at end of file
+var _0x48d5=['through','TeamVoiceQueue','penalty','User','emit','QueueId','online','voicePause','interface','UserVoiceQueueRt','format','SIP/%s','all','upsert','addAgents','spread','removeAgents','Whatsapp','Queue:remove','getAgents','rimraf','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','end','undefined','count','offset','Content-Range','json','apply','save','error','stack','name','index','map','Team','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','then','catch','show','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','Teams','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','destroy','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','UserId','VoiceQueueId','UserVoiceQueue','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','sequelize','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','FaxQueueId','UserFaxQueue','OpenchannelQueueId','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','send','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queue','Queues','addQueues','findOne','removeQueues','remove','isArray','ids','Voice','Chat','Mail','Sms','Fax','Openchannel','transaction'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x48d5,0x14c));var _0x548d=function(_0x3396cd,_0x4047f0){_0x3396cd=_0x3396cd-0x0;var _0x2d6b4a=_0x48d5[_0x3396cd];return _0x2d6b4a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x548d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x548d('0x1'));var moment=require(_0x548d('0x2'));var BPromise=require(_0x548d('0x3'));var Mustache=require('mustache');var util=require(_0x548d('0x4'));var path=require(_0x548d('0x5'));var sox=require('sox');var csv=require(_0x548d('0x6'));var ejs=require(_0x548d('0x7'));var fs=require('fs');var fs_extra=require(_0x548d('0x8'));var _=require(_0x548d('0x9'));var squel=require('squel');var crypto=require(_0x548d('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x548d('0xb'));var Papa=require(_0x548d('0xc'));var Redis=require(_0x548d('0xd'));var authService=require(_0x548d('0xe'));var qs=require(_0x548d('0xf'));var as=require(_0x548d('0x10'));var hardwareService=require(_0x548d('0x11'));var logger=require(_0x548d('0x12'))(_0x548d('0x13'));var utils=require(_0x548d('0x14'));var config=require(_0x548d('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x548d('0x16'))['db'];config[_0x548d('0x17')]=_[_0x548d('0x18')](config[_0x548d('0x17')],{'host':_0x548d('0x19'),'port':0x18eb});var socket=require(_0x548d('0x1a'))(new Redis(config['redis']));require(_0x548d('0x1b'))[_0x548d('0x1c')](socket);function respondWithStatusCode(_0x5d7e9c,_0x2efcd2){_0x2efcd2=_0x2efcd2||0xcc;return function(_0x502fd8){if(_0x502fd8){return _0x5d7e9c[_0x548d('0x1d')](_0x2efcd2);}return _0x5d7e9c[_0x548d('0x1e')](_0x2efcd2)[_0x548d('0x1f')]();};}function respondWithResult(_0x430ef4,_0x41af6b){_0x41af6b=_0x41af6b||0xc8;return function(_0x2c0d17){if(_0x2c0d17){return _0x430ef4[_0x548d('0x1e')](_0x41af6b)['json'](_0x2c0d17);}};}function respondWithFilteredResult(_0x5eec0e,_0x80a996){return function(_0x190cdd){if(_0x190cdd){var _0x2711ea=typeof _0x80a996['offset']===_0x548d('0x20')&&typeof _0x80a996['limit']===_0x548d('0x20');var _0x29d5bf=_0x190cdd[_0x548d('0x21')];var _0x40b07c=_0x2711ea?0x0:_0x80a996[_0x548d('0x22')];var _0x46216c=_0x2711ea?_0x190cdd['count']:_0x80a996[_0x548d('0x22')]+_0x80a996['limit'];var _0x2a4e37;if(_0x46216c>=_0x29d5bf){_0x46216c=_0x29d5bf;_0x2a4e37=0xc8;}else{_0x2a4e37=0xce;}_0x5eec0e['status'](_0x2a4e37);return _0x5eec0e['set'](_0x548d('0x23'),_0x40b07c+'-'+_0x46216c+'/'+_0x29d5bf)[_0x548d('0x24')](_0x190cdd);}return null;};}function patchUpdates(_0x314d7b){return function(_0x4ab53f){try{jsonpatch[_0x548d('0x25')](_0x4ab53f,_0x314d7b,!![]);}catch(_0x2a3122){return BPromise['reject'](_0x2a3122);}return _0x4ab53f[_0x548d('0x26')]();};}function saveUpdates(_0x114cde,_0x2a5f91){return function(_0x22a67b){if(_0x22a67b){return _0x22a67b['update'](_0x114cde)['then'](function(_0x4f1ae5){return _0x4f1ae5;});}return null;};}function handleEntityNotFound(_0x2c9130,_0xadcd5b){return function(_0x5f524a){if(!_0x5f524a){_0x2c9130['sendStatus'](0x194);}return _0x5f524a;};}function handleError(_0x8bb745,_0x552e7c){_0x552e7c=_0x552e7c||0x1f4;return function(_0x355495){logger[_0x548d('0x27')](_0x355495[_0x548d('0x28')]);if(_0x355495[_0x548d('0x29')]){delete _0x355495[_0x548d('0x29')];}_0x8bb745[_0x548d('0x1e')](_0x552e7c)['send'](_0x355495);};}exports[_0x548d('0x2a')]=function(_0x2f6b93,_0xfe85b8){var _0x2c6e66={},_0x2c48d5={},_0x1d28d8={'count':0x0,'rows':[]};var _0x3b1039=_[_0x548d('0x2b')](db[_0x548d('0x2c')][_0x548d('0x2d')],function(_0x4db872){return{'name':_0x4db872[_0x548d('0x2e')],'type':_0x4db872[_0x548d('0x2f')][_0x548d('0x30')]};});_0x2c48d5[_0x548d('0x31')]=_['map'](_0x3b1039,_0x548d('0x29'));_0x2c48d5[_0x548d('0x32')]=_[_0x548d('0x33')](_0x2f6b93['query']);_0x2c48d5[_0x548d('0x34')]=_[_0x548d('0x35')](_0x2c48d5['model'],_0x2c48d5[_0x548d('0x32')]);_0x2c6e66[_0x548d('0x36')]=_['intersection'](_0x2c48d5[_0x548d('0x31')],qs[_0x548d('0x37')](_0x2f6b93[_0x548d('0x32')][_0x548d('0x37')]));_0x2c6e66[_0x548d('0x36')]=_0x2c6e66['attributes'][_0x548d('0x38')]?_0x2c6e66[_0x548d('0x36')]:_0x2c48d5[_0x548d('0x31')];if(!_0x2f6b93['query'][_0x548d('0x39')](_0x548d('0x3a'))){_0x2c6e66[_0x548d('0x3b')]=qs['limit'](_0x2f6b93['query'][_0x548d('0x3b')]);_0x2c6e66[_0x548d('0x22')]=qs[_0x548d('0x22')](_0x2f6b93[_0x548d('0x32')][_0x548d('0x22')]);}_0x2c6e66[_0x548d('0x3c')]=qs[_0x548d('0x3d')](_0x2f6b93[_0x548d('0x32')][_0x548d('0x3d')]);_0x2c6e66[_0x548d('0x3e')]=qs[_0x548d('0x34')](_[_0x548d('0x3f')](_0x2f6b93[_0x548d('0x32')],_0x2c48d5['filters']),_0x3b1039);if(_0x2f6b93['query'][_0x548d('0x40')]){_0x2c6e66[_0x548d('0x3e')]=_['merge'](_0x2c6e66['where'],{'$or':_['map'](_0x3b1039,function(_0x5c58f7){if(_0x5c58f7[_0x548d('0x2f')]!==_0x548d('0x41')){var _0x1bd87e={};_0x1bd87e[_0x5c58f7[_0x548d('0x29')]]={'$like':'%'+_0x2f6b93['query'][_0x548d('0x40')]+'%'};return _0x1bd87e;}})});}_0x2c6e66=_[_0x548d('0x42')]({},_0x2c6e66,_0x2f6b93[_0x548d('0x43')]);var _0x995984={'where':_0x2c6e66[_0x548d('0x3e')]};return db[_0x548d('0x2c')][_0x548d('0x21')](_0x995984)['then'](function(_0x405205){_0x1d28d8[_0x548d('0x21')]=_0x405205;if(_0x2f6b93[_0x548d('0x32')][_0x548d('0x44')]){_0x2c6e66['include']=[{'all':!![]}];}return db[_0x548d('0x2c')][_0x548d('0x45')](_0x2c6e66);})[_0x548d('0x46')](function(_0x485317){_0x1d28d8['rows']=_0x485317;return _0x1d28d8;})[_0x548d('0x46')](respondWithFilteredResult(_0xfe85b8,_0x2c6e66))[_0x548d('0x47')](handleError(_0xfe85b8,null));};exports[_0x548d('0x48')]=function(_0x3e7799,_0xed07ee){var _0x1aa8c0={'raw':![],'where':{'id':_0x3e7799['params']['id']}},_0xa23f0a={};_0xa23f0a[_0x548d('0x31')]=_[_0x548d('0x33')](db[_0x548d('0x2c')][_0x548d('0x2d')]);_0xa23f0a[_0x548d('0x32')]=_[_0x548d('0x33')](_0x3e7799[_0x548d('0x32')]);_0xa23f0a[_0x548d('0x34')]=_['intersection'](_0xa23f0a['model'],_0xa23f0a[_0x548d('0x32')]);_0x1aa8c0['attributes']=_[_0x548d('0x35')](_0xa23f0a[_0x548d('0x31')],qs['fields'](_0x3e7799['query'][_0x548d('0x37')]));_0x1aa8c0['attributes']=_0x1aa8c0['attributes']['length']?_0x1aa8c0[_0x548d('0x36')]:_0xa23f0a[_0x548d('0x31')];if(_0x3e7799[_0x548d('0x32')]['includeAll']){_0x1aa8c0[_0x548d('0x49')]=[{'all':!![]}];}_0x1aa8c0=_[_0x548d('0x42')]({},_0x1aa8c0,_0x3e7799[_0x548d('0x43')]);return db[_0x548d('0x2c')][_0x548d('0x4a')](_0x1aa8c0)[_0x548d('0x46')](handleEntityNotFound(_0xed07ee,null))['then'](respondWithResult(_0xed07ee,null))['catch'](handleError(_0xed07ee,null));};exports['create']=function(_0x4a6559,_0xffe593){return db[_0x548d('0x2c')][_0x548d('0x4b')](_0x4a6559[_0x548d('0x4c')],{})['then'](function(_0x8a464e){var _0xa223c7=_0x4a6559[_0x548d('0x4d')]['get']({'plain':!![]});if(!_0xa223c7)throw new Error(_0x548d('0x4e'));if(_0xa223c7['role']===_0x548d('0x4d')){var _0x5a6e82=_0x8a464e[_0x548d('0x4f')]({'plain':!![]});var _0x13778a=_0x548d('0x50');return db[_0x548d('0x51')][_0x548d('0x4a')]({'where':{'name':_0x13778a,'userProfileId':_0xa223c7[_0x548d('0x52')]},'raw':!![]})['then'](function(_0x105b24){if(_0x105b24&&_0x105b24[_0x548d('0x53')]===0x0){return db[_0x548d('0x54')][_0x548d('0x4b')]({'name':_0x5a6e82['name'],'resourceId':_0x5a6e82['id'],'type':_0x105b24['name'],'sectionId':_0x105b24['id']},{})['then'](function(){return _0x8a464e;});}else{return _0x8a464e;}})[_0x548d('0x47')](function(_0x39c832){logger['error'](_0x548d('0x55'),_0x39c832);throw _0x39c832;});}return _0x8a464e;})[_0x548d('0x46')](respondWithResult(_0xffe593,0xc9))['catch'](handleError(_0xffe593,null));};exports[_0x548d('0x56')]=function(_0x593fe7,_0x25ca9f){if(_0x593fe7[_0x548d('0x4c')]['id']){delete _0x593fe7['body']['id'];}return db[_0x548d('0x2c')][_0x548d('0x4a')]({'where':{'id':_0x593fe7[_0x548d('0x57')]['id']}})[_0x548d('0x46')](handleEntityNotFound(_0x25ca9f,null))[_0x548d('0x46')](saveUpdates(_0x593fe7[_0x548d('0x4c')],null))[_0x548d('0x46')](respondWithResult(_0x25ca9f,null))['catch'](handleError(_0x25ca9f,null));};exports[_0x548d('0x58')]=function(_0x49e623,_0x524f73){var _0x62b76c=_0x49e623[_0x548d('0x57')]['id'];var _0x2c4973=[];return db['sequelize']['transaction'](function(_0xa65c27){var _0x2d9270=_0x548d('0x59')+_0x62b76c;return db['sequelize'][_0x548d('0x32')](_0x2d9270,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')][_0x548d('0x5c')],'raw':!![],'transaction':_0xa65c27})[_0x548d('0x46')](function(_0x360ec9){_0x2c4973=_[_0x548d('0x2b')](_0x360ec9,function(_0x1d2523){return Number(_0x1d2523[_0x548d('0x5d')]);});})[_0x548d('0x46')](function(){var _0x481e4c='SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20'+_0x62b76c;return db['sequelize'][_0x548d('0x32')](_0x481e4c,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')][_0x548d('0x5c')],'raw':!![],'transaction':_0xa65c27});})[_0x548d('0x46')](function(_0x33423c){var _0x594071=_[_0x548d('0x2b')](_0x33423c,function(_0x414f04){return Number(_0x414f04[_0x548d('0x5e')]);});return db[_0x548d('0x5f')]['destroy']({'where':{'UserId':{'$in':_0x2c4973},'VoiceQueueId':{'$in':_0x594071}},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){var _0x54d8e3=_0x548d('0x60')+_0x62b76c;return db[_0x548d('0x61')][_0x548d('0x32')](_0x54d8e3,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')]['SELECT'],'raw':!![],'transaction':_0xa65c27});})[_0x548d('0x46')](function(_0x55cc5d){var _0x3d3812=_['map'](_0x55cc5d,function(_0x2086ac){return Number(_0x2086ac[_0x548d('0x62')]);});return db[_0x548d('0x63')][_0x548d('0x58')]({'where':{'UserId':{'$in':_0x2c4973},'MailQueueId':{'$in':_0x3d3812}},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){var _0x269b82=_0x548d('0x64')+_0x62b76c;return db[_0x548d('0x61')][_0x548d('0x32')](_0x269b82,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')][_0x548d('0x5c')],'raw':!![],'transaction':_0xa65c27});})['then'](function(_0x5dc6f9){var _0x1d60ba=_[_0x548d('0x2b')](_0x5dc6f9,function(_0x24a64c){return Number(_0x24a64c[_0x548d('0x65')]);});return db[_0x548d('0x66')][_0x548d('0x58')]({'where':{'UserId':{'$in':_0x2c4973},'SmsQueueId':{'$in':_0x1d60ba}},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){var _0x28bed3=_0x548d('0x67')+_0x62b76c;return db[_0x548d('0x61')][_0x548d('0x32')](_0x28bed3,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')][_0x548d('0x5c')],'raw':!![],'transaction':_0xa65c27});})[_0x548d('0x46')](function(_0x12bbd5){var _0x37dc4c=_[_0x548d('0x2b')](_0x12bbd5,function(_0x58648a){return Number(_0x58648a[_0x548d('0x68')]);});return db['UserChatQueue']['destroy']({'where':{'UserId':{'$in':_0x2c4973},'ChatQueueId':{'$in':_0x37dc4c}},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){var _0x1ae416='SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20'+_0x62b76c;return db[_0x548d('0x61')][_0x548d('0x32')](_0x1ae416,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')][_0x548d('0x5c')],'raw':!![],'transaction':_0xa65c27});})[_0x548d('0x46')](function(_0x5abc46){var _0x581349=_['map'](_0x5abc46,function(_0x77fe20){return Number(_0x77fe20[_0x548d('0x69')]);});return db[_0x548d('0x6a')]['destroy']({'where':{'UserId':{'$in':_0x2c4973},'FaxQueueId':{'$in':_0x581349}},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){var _0x5d06ae='SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20'+_0x62b76c;return db[_0x548d('0x61')][_0x548d('0x32')](_0x5d06ae,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')][_0x548d('0x5c')],'raw':!![],'transaction':_0xa65c27});})[_0x548d('0x46')](function(_0x241d5b){var _0x2048a6=_['map'](_0x241d5b,function(_0x187cb0){return Number(_0x187cb0[_0x548d('0x6b')]);});return db['UserOpenchannelQueue'][_0x548d('0x58')]({'where':{'UserId':{'$in':_0x2c4973},'OpenchannelQueueId':{'$in':_0x2048a6}},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){var _0x4b10e3=_0x548d('0x6c')+_0x62b76c;return db[_0x548d('0x61')][_0x548d('0x32')](_0x4b10e3,{'type':db[_0x548d('0x5a')][_0x548d('0x5b')][_0x548d('0x5c')],'raw':!![],'transaction':_0xa65c27});})[_0x548d('0x46')](function(_0x2379a9){var _0x383f34=_[_0x548d('0x2b')](_0x2379a9,function(_0x3b3b2a){return Number(_0x3b3b2a[_0x548d('0x6d')]);});return db[_0x548d('0x6e')][_0x548d('0x58')]({'where':{'UserId':{'$in':_0x2c4973},'WhatsappQueueId':{'$in':_0x383f34}},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){return db[_0x548d('0x6f')][_0x548d('0x4a')]({'where':{'TeamId':_0x62b76c}});})[_0x548d('0x46')](function(_0x7670a1){if(_0x7670a1===null){return;}return db[_0x548d('0x70')]['destroy']({'where':{'UserId':{'$in':_0x2c4973},'VoicePrefixId':_0x7670a1[_0x548d('0x71')]},'transaction':_0xa65c27});})[_0x548d('0x46')](function(){return db[_0x548d('0x2c')][_0x548d('0x58')]({'where':{'id':_0x62b76c},'cascade':!![],'transaction':_0xa65c27});})['then'](function(_0x471619){if(_0x471619===0x0){_0x524f73[_0x548d('0x1d')](0x194);}else{return db[_0x548d('0x54')][_0x548d('0x58')]({'where':{'type':_0x548d('0x50'),'resourceId':_0x62b76c},'cascade':!![],'transaction':_0xa65c27})[_0x548d('0x46')](function(){_0x524f73[_0x548d('0x1e')](0xcc)['end']();});}})[_0x548d('0x47')](function(_0x43b8e4){_0x524f73[_0x548d('0x1e')](0x1f4)[_0x548d('0x72')](_0x43b8e4);});});};exports['getQueues']=function(_0x483d4a,_0xafc9ed,_0x1a4db1){return db['Team']['findOne']({'where':{'id':_0x483d4a[_0x548d('0x57')]['id']}})['then'](handleEntityNotFound(_0xafc9ed,null))[_0x548d('0x46')](function(_0x14e420){if(!_0x483d4a['query'][_0x548d('0x73')]||!utils[_0x548d('0x74')](_0x483d4a[_0x548d('0x32')][_0x548d('0x73')])){throw new db[(_0x548d('0x5a'))][(_0x548d('0x75'))](_0x548d('0x76'));}var _0x1dfbd5={};var _0x194221={};_0x194221[_0x548d('0x31')]=_['keys'](db[_[_0x548d('0x77')](_0x483d4a['query'][_0x548d('0x73')][_0x548d('0x78')]())+_0x548d('0x79')][_0x548d('0x2d')]);_0x194221[_0x548d('0x32')]=_[_0x548d('0x33')](_0x483d4a[_0x548d('0x32')]);_0x194221[_0x548d('0x34')]=_['intersection'](_0x194221[_0x548d('0x31')],_0x194221[_0x548d('0x32')]);_0x1dfbd5['attributes']=_[_0x548d('0x35')](_0x194221[_0x548d('0x31')],qs[_0x548d('0x37')](_0x483d4a[_0x548d('0x32')][_0x548d('0x37')]));_0x1dfbd5[_0x548d('0x36')]=_0x1dfbd5[_0x548d('0x36')][_0x548d('0x38')]?_0x1dfbd5[_0x548d('0x36')]:_0x194221['model'];_0x1dfbd5[_0x548d('0x3b')]=qs[_0x548d('0x3b')](_0x483d4a[_0x548d('0x32')][_0x548d('0x3b')]);_0x1dfbd5[_0x548d('0x22')]=qs[_0x548d('0x22')](_0x483d4a[_0x548d('0x32')][_0x548d('0x22')]);_0x1dfbd5[_0x548d('0x3c')]=qs[_0x548d('0x3d')](_0x483d4a[_0x548d('0x32')]['sort']);_0x1dfbd5['where']=qs['filters'](_['pick'](_0x483d4a['query'],_0x194221[_0x548d('0x34')]));_0x1dfbd5=_['merge']({},_0x1dfbd5,_0x483d4a[_0x548d('0x43')]);return _0x14e420[_0x548d('0x4f')+_[_0x548d('0x77')](_0x483d4a['query'][_0x548d('0x73')][_0x548d('0x78')]())+_0x548d('0x7a')](_0x1dfbd5);})[_0x548d('0x46')](respondWithResult(_0xafc9ed,null))[_0x548d('0x47')](handleError(_0xafc9ed,null));};exports[_0x548d('0x7b')]=function(_0x190eec,_0x3784ec,_0x5e84ed){return db['Team'][_0x548d('0x7c')]({'where':{'id':_0x190eec[_0x548d('0x57')]['id']}})[_0x548d('0x46')](function(_0x14a537){if(_0x14a537){if(!_0x190eec['body'][_0x548d('0x73')]||!utils['isValidChannel'](_0x190eec[_0x548d('0x4c')]['channel'])){throw new db[(_0x548d('0x5a'))][(_0x548d('0x75'))](_0x548d('0x76'));}return _0x14a537['add'+_['capitalize'](_0x190eec[_0x548d('0x4c')][_0x548d('0x73')][_0x548d('0x78')]())+_0x548d('0x7a')](_0x190eec[_0x548d('0x4c')]['ids']);}return null;})[_0x548d('0x46')](handleEntityNotFound(_0x3784ec,null))[_0x548d('0x46')](respondWithStatusCode(_0x3784ec,null))[_0x548d('0x47')](handleError(_0x3784ec,null));};exports[_0x548d('0x7d')]=function(_0x539d7a,_0x236354,_0x52d9bc){return db[_0x548d('0x2c')][_0x548d('0x7c')]({'where':{'id':_0x539d7a[_0x548d('0x57')]['id']}})['then'](function(_0x3f918c){if(_0x3f918c){if(!_0x539d7a[_0x548d('0x32')][_0x548d('0x73')]||!utils[_0x548d('0x74')](_0x539d7a[_0x548d('0x32')]['channel'])){throw new db[(_0x548d('0x5a'))][(_0x548d('0x75'))](_0x548d('0x76'));}return _0x3f918c[_0x548d('0x7e')+_[_0x548d('0x77')](_0x539d7a[_0x548d('0x32')][_0x548d('0x73')]['toLowerCase']())+_0x548d('0x7a')](_0x539d7a[_0x548d('0x32')]['ids']);}return null;})[_0x548d('0x46')](handleEntityNotFound(_0x236354,null))[_0x548d('0x46')](respondWithStatusCode(_0x236354,null))[_0x548d('0x47')](handleError(_0x236354,null));};exports['addAgents']=function(_0x33d371,_0xb8d478){var _0x46c13f=_[_0x548d('0x7f')](_0x33d371[_0x548d('0x4c')][_0x548d('0x80')])?_0x33d371[_0x548d('0x4c')][_0x548d('0x80')]:[_0x33d371['body'][_0x548d('0x80')]];var _0x166f90=_0x33d371[_0x548d('0x57')]['id'];return db[_0x548d('0x2c')]['find']({'where':{'id':_0x166f90}})[_0x548d('0x46')](handleEntityNotFound(_0xb8d478,null))[_0x548d('0x46')](function(_0x367daf){if(_0x367daf){var _0x508b4b=[_0x548d('0x81'),_0x548d('0x82'),_0x548d('0x83'),_0x548d('0x84'),_0x548d('0x85'),_0x548d('0x86'),'Whatsapp'];return db[_0x548d('0x61')][_0x548d('0x87')](function(_0xa8ed8d){var _0xaa7d89=_[_0x548d('0x2b')](_0x508b4b,function(_0x1b9eed){var _0x3685a3={'attributes':['id',_0x548d('0x29')]};if(_0x1b9eed==='Voice'){_0x3685a3[_0x548d('0x88')]={'attributes':['penalty']};}return _0x367daf[_0x548d('0x4f')+_0x1b9eed+_0x548d('0x7a')](_0x3685a3)['then'](function(_0x2a6105){var _0x46092b=_[_0x548d('0x2b')](_0x2a6105,function(_0x24c6e1){var _0x429ea0=_[_0x548d('0x2b')](_0x46c13f,function(_0x5a96e7){var _0x2a20d7={'where':{'UserId':_0x5a96e7,[_0x1b9eed+'QueueId']:_0x24c6e1['id']},'transaction':_0xa8ed8d};if(_0x1b9eed==='Voice'){_0x2a20d7[_0x548d('0x18')]={'penalty':_0x24c6e1[_0x548d('0x89')][_0x548d('0x8a')]};}return db[_0x548d('0x8b')+_0x1b9eed+'Queue']['findOrCreate'](_0x2a20d7)[_0x548d('0x46')](function(){socket[_0x548d('0x8c')](_0x548d('0x4d')+_0x1b9eed+'Queue:save',{'UserId':_0x5a96e7,[_0x1b9eed+_0x548d('0x8d')]:_0x24c6e1['id']});if(_0x1b9eed!=='Voice'){return;}return db['User'][_0x548d('0x45')]({'where':{'id':_0x46c13f,'online':0x1},'attributes':['id',_0x548d('0x29'),_0x548d('0x8e'),_0x548d('0x8f'),_0x548d('0x90')],'raw':!![]})[_0x548d('0x46')](function(_0x51bf56){var _0x16db97=_[_0x548d('0x2b')](_0x51bf56,function(_0x459ae4){return db[_0x548d('0x91')]['upsert']({'membername':_0x459ae4[_0x548d('0x29')],'UserId':_0x459ae4['id'],'queue_name':_0x24c6e1['name'],'VoiceQueueId':_0x24c6e1['id'],'interface':_['isNil'](_0x459ae4[_0x548d('0x90')])?util[_0x548d('0x92')](_0x548d('0x93'),_0x459ae4[_0x548d('0x29')]):_0x459ae4[_0x548d('0x90')],'paused':_0x459ae4[_0x548d('0x8f')]||![],'penalty':_0x24c6e1[_0x548d('0x89')][_0x548d('0x8a')]},{'transaction':_0xa8ed8d});});return Promise['all'](_0x16db97);});});});return Promise['all'](_0x429ea0);});return Promise[_0x548d('0x94')](_0x46092b);})['then'](function(){return db[_0x548d('0x6f')][_0x548d('0x7c')]({'where':{'teamId':_0x166f90}})['then'](function(_0xd40274){if(_0xd40274){var _0x4c7aad=_[_0x548d('0x2b')](_0x46c13f,function(_0x13ddd7){db[_0x548d('0x70')][_0x548d('0x95')]({'UserId':_0x13ddd7,'VoicePrefixId':_0xd40274[_0x548d('0x71')]});});return Promise[_0x548d('0x94')](_0x4c7aad);}});});});return Promise[_0x548d('0x94')](_0xaa7d89)['then'](function(){return _0x367daf[_0x548d('0x96')](_0x46c13f,{'transaction':_0xa8ed8d})[_0x548d('0x97')](function(_0x5cea76){return _0x5cea76;});});});}})[_0x548d('0x46')](respondWithResult(_0xb8d478,null))['catch'](handleError(_0xb8d478,null));};exports[_0x548d('0x98')]=function(_0x389085,_0x28d24f){var _0x2a0325=_['isArray'](_0x389085[_0x548d('0x32')]['ids'])?_0x389085[_0x548d('0x32')][_0x548d('0x80')]:[_0x389085[_0x548d('0x32')][_0x548d('0x80')]];var _0xb6acc1=_0x389085[_0x548d('0x57')]['id'];return db[_0x548d('0x2c')]['find']({'where':{'id':_0xb6acc1}})['then'](handleEntityNotFound(_0x28d24f,null))[_0x548d('0x46')](function(_0x5116a5){if(_0x5116a5){var _0x21ef12=[_0x548d('0x81'),_0x548d('0x82'),_0x548d('0x83'),'Sms',_0x548d('0x85'),_0x548d('0x86'),_0x548d('0x99')];return db[_0x548d('0x61')][_0x548d('0x87')](function(_0x2e1102){var _0x4346c9=_[_0x548d('0x2b')](_0x21ef12,function(_0x144f68){var _0x752be={'attributes':['id',_0x548d('0x29')]};return _0x5116a5['get'+_0x144f68+_0x548d('0x7a')](_0x752be)[_0x548d('0x46')](function(_0x4e0266){var _0x1f89c3=_[_0x548d('0x2b')](_0x4e0266,function(_0x1a152){return _0x1a152[_0x548d('0x98')](_0x2a0325,{'transaction':_0x2e1102})[_0x548d('0x46')](function(){var _0x516a4a=_['map'](_0x2a0325,function(_0x219c6e){socket[_0x548d('0x8c')](_0x548d('0x4d')+_0x144f68+_0x548d('0x9a'),{'UserId':Number(_0x219c6e),[_0x144f68+_0x548d('0x8d')]:_0x1a152['id']});if(_0x144f68!=='Voice'){return;}return db[_0x548d('0x91')][_0x548d('0x58')]({'where':{'VoiceQueueId':_0x1a152['id'],'UserId':_0x219c6e},'transaction':_0x2e1102});});return Promise[_0x548d('0x94')](_0x516a4a);});});return Promise[_0x548d('0x94')](_0x1f89c3);});});return Promise['all'](_0x4346c9)[_0x548d('0x46')](function(){return _0x5116a5[_0x548d('0x98')](_0x2a0325,{'transaction':_0x2e1102});})['then'](function(){return db[_0x548d('0x6f')][_0x548d('0x7c')]({'where':{'teamId':_0xb6acc1}})[_0x548d('0x46')](function(_0x2ec8ae){if(_0x2ec8ae){var _0x424f1f=_['map'](_0x2a0325,function(_0x3ce79f){db['UserVoicePrefix'][_0x548d('0x58')]({'where':{'UserId':_0x3ce79f,'VoicePrefixId':_0x2ec8ae['VoicePrefixId']}});});return Promise[_0x548d('0x94')](_0x424f1f);}});});});}})[_0x548d('0x46')](respondWithStatusCode(_0x28d24f,null))[_0x548d('0x47')](handleError(_0x28d24f,null));};exports[_0x548d('0x9b')]=function(_0x322a7b,_0x7b040b,_0x4f7428){var _0x269ea8={};var _0x2b921c={};var _0x6e8c5f;var _0x469546;return db['Team']['findOne']({'where':{'id':_0x322a7b[_0x548d('0x57')]['id']}})[_0x548d('0x46')](handleEntityNotFound(_0x7b040b,null))[_0x548d('0x46')](function(_0x392f9f){if(_0x392f9f){_0x6e8c5f=_0x392f9f;_0x2b921c[_0x548d('0x31')]=_[_0x548d('0x33')](db[_0x548d('0x8b')][_0x548d('0x2d')]);_0x2b921c[_0x548d('0x32')]=_[_0x548d('0x33')](_0x322a7b[_0x548d('0x32')]);_0x2b921c[_0x548d('0x34')]=_['intersection'](_0x2b921c[_0x548d('0x31')],_0x2b921c[_0x548d('0x32')]);_0x269ea8[_0x548d('0x36')]=_[_0x548d('0x35')](_0x2b921c[_0x548d('0x31')],qs[_0x548d('0x37')](_0x322a7b[_0x548d('0x32')][_0x548d('0x37')]));_0x269ea8[_0x548d('0x36')]=_0x269ea8['attributes'][_0x548d('0x38')]?_0x269ea8[_0x548d('0x36')]:_0x2b921c[_0x548d('0x31')];_0x269ea8[_0x548d('0x3c')]=qs['sort'](_0x322a7b[_0x548d('0x32')][_0x548d('0x3d')]);_0x269ea8[_0x548d('0x3e')]=qs[_0x548d('0x34')](_[_0x548d('0x3f')](_0x322a7b[_0x548d('0x32')],_0x2b921c['filters']));if(_0x322a7b[_0x548d('0x32')][_0x548d('0x40')]){_0x269ea8['where']=_[_0x548d('0x42')](_0x269ea8[_0x548d('0x3e')],{'$or':_['map'](_0x269ea8['attributes'],function(_0x5d56e5){var _0xa3fa9a={};_0xa3fa9a[_0x5d56e5]={'$like':'%'+_0x322a7b['query']['filter']+'%'};return _0xa3fa9a;})});}_0x269ea8=_['merge']({},_0x269ea8,_0x322a7b[_0x548d('0x43')]);return _0x6e8c5f[_0x548d('0x9b')](_0x269ea8);}})[_0x548d('0x46')](function(_0x3cb6f7){if(_0x3cb6f7){_0x469546=_0x3cb6f7[_0x548d('0x38')];if(!_0x322a7b['query'][_0x548d('0x39')](_0x548d('0x3a'))){_0x269ea8[_0x548d('0x3b')]=qs[_0x548d('0x3b')](_0x322a7b[_0x548d('0x32')][_0x548d('0x3b')]);_0x269ea8[_0x548d('0x22')]=qs[_0x548d('0x22')](_0x322a7b[_0x548d('0x32')][_0x548d('0x22')]);}return _0x6e8c5f['getAgents'](_0x269ea8);}})[_0x548d('0x46')](function(_0x2951f0){if(_0x2951f0){return _0x2951f0?{'count':_0x469546,'rows':_0x2951f0}:null;}})[_0x548d('0x46')](respondWithResult(_0x7b040b,null))[_0x548d('0x47')](handleError(_0x7b040b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb699=['hasOwnProperty','hook','exports','../../mysqldb','Team','setMaxListeners','remove','emit'];(function(_0xf44a0,_0x3cfaa1){var _0x4032c5=function(_0x5432a3){while(--_0x5432a3){_0xf44a0['push'](_0xf44a0['shift']());}};_0x4032c5(++_0x3cfaa1);}(_0xb699,0x173));var _0x9b69=function(_0x1fda8f,_0x132b07){_0x1fda8f=_0x1fda8f-0x0;var _0xddd26=_0xb699[_0x1fda8f];return _0xddd26;};'use strict';var EventEmitter=require('events');var Team=require(_0x9b69('0x0'))['db'][_0x9b69('0x1')];var TeamEvents=new EventEmitter();TeamEvents[_0x9b69('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x9b69('0x3')};function emitEvent(_0x30a5a4){return function(_0x5204b3,_0x539a08,_0x2bdf88){TeamEvents[_0x9b69('0x4')](_0x30a5a4+':'+_0x5204b3['id'],_0x5204b3);TeamEvents[_0x9b69('0x4')](_0x30a5a4,_0x5204b3);_0x2bdf88(null);};}for(var e in events){if(events[_0x9b69('0x5')](e)){var event=events[e];Team[_0x9b69('0x6')](e,emitEvent(event));}}module[_0x9b69('0x7')]=TeamEvents;
\ No newline at end of file
+var _0x00c3=['setMaxListeners','save','emit','hasOwnProperty','hook','exports','../../mysqldb'];(function(_0x483102,_0x54e93d){var _0x5cc885=function(_0x54931c){while(--_0x54931c){_0x483102['push'](_0x483102['shift']());}};_0x5cc885(++_0x54e93d);}(_0x00c3,0x179));var _0x300c=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x00c3[_0x4565bf];return _0x5610ba;};'use strict';var EventEmitter=require('events');var Team=require(_0x300c('0x0'))['db']['Team'];var TeamEvents=new EventEmitter();TeamEvents[_0x300c('0x1')](0x0);var events={'afterCreate':_0x300c('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x44127a){return function(_0x576192,_0x276cee,_0x39815b){TeamEvents[_0x300c('0x3')](_0x44127a+':'+_0x576192['id'],_0x576192);TeamEvents[_0x300c('0x3')](_0x44127a,_0x576192);_0x39815b(null);};}for(var e in events){if(events[_0x300c('0x4')](e)){var event=events[e];Team[_0x300c('0x5')](e,emitEvent(event));}}module[_0x300c('0x6')]=TeamEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe96c=['../../config/environment','./team.attributes','exports','Team','teams','lodash','util','../../config/logger','api','moment','path','rimraf'];(function(_0x53aa0d,_0xab270a){var _0x58ea1c=function(_0x376986){while(--_0x376986){_0x53aa0d['push'](_0x53aa0d['shift']());}};_0x58ea1c(++_0xab270a);}(_0xe96c,0x95));var _0xce96=function(_0x3683bd,_0x23a18c){_0x3683bd=_0x3683bd-0x0;var _0x355d8c=_0xe96c[_0x3683bd];return _0x355d8c;};'use strict';var _=require(_0xce96('0x0'));var util=require(_0xce96('0x1'));var logger=require(_0xce96('0x2'))(_0xce96('0x3'));var moment=require(_0xce96('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xce96('0x5'));var rimraf=require(_0xce96('0x6'));var config=require(_0xce96('0x7'));var attributes=require(_0xce96('0x8'));module[_0xce96('0x9')]=function(_0x3fec57,_0xffd74e){return _0x3fec57['define'](_0xce96('0xa'),attributes,{'tableName':_0xce96('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0876=['path','rimraf','../../config/environment','./team.attributes','exports','teams','util','api','bluebird'];(function(_0x3dbb16,_0x881a4a){var _0x47afd9=function(_0x1db85e){while(--_0x1db85e){_0x3dbb16['push'](_0x3dbb16['shift']());}};_0x47afd9(++_0x881a4a);}(_0x0876,0x138));var _0x6087=function(_0x2377a9,_0x3a5104){_0x2377a9=_0x2377a9-0x0;var _0x4208d0=_0x0876[_0x2377a9];return _0x4208d0;};'use strict';var _=require('lodash');var util=require(_0x6087('0x0'));var logger=require('../../config/logger')(_0x6087('0x1'));var moment=require('moment');var BPromise=require(_0x6087('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6087('0x3'));var rimraf=require(_0x6087('0x4'));var config=require(_0x6087('0x5'));var attributes=require(_0x6087('0x6'));module[_0x6087('0x7')]=function(_0x59f98e,_0x5a3bc5){return _0x59f98e['define']('Team',attributes,{'tableName':_0x6087('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5870=['moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','http','redis','defaults','localhost','register','then','info','Team,\x20%s,\x20%s','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util'];(function(_0x246d05,_0x2af448){var _0x1218e4=function(_0x530ec3){while(--_0x530ec3){_0x246d05['push'](_0x246d05['shift']());}};_0x1218e4(++_0x2af448);}(_0x5870,0x88));var _0x0587=function(_0x1beef3,_0x57c4b8){_0x1beef3=_0x1beef3-0x0;var _0x5af964=_0x5870[_0x1beef3];return _0x5af964;};'use strict';var _=require(_0x0587('0x0'));var util=require(_0x0587('0x1'));var moment=require(_0x0587('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0587('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0587('0x4'));var logger=require(_0x0587('0x5'))(_0x0587('0x6'));var config=require(_0x0587('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x0587('0x8')]({'port':0x232a});config[_0x0587('0x9')]=_[_0x0587('0xa')](config[_0x0587('0x9')],{'host':_0x0587('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0587('0x9')]));require('./team.socket')[_0x0587('0xc')](socket);function respondWithRpcPromise(_0x10d9f4,_0x10b397,_0x718d0){return new BPromise(function(_0x13122f,_0x354a0e){return client['request'](_0x10d9f4,_0x718d0)[_0x0587('0xd')](function(_0x3563f0){logger[_0x0587('0xe')](_0x0587('0xf'),_0x10b397,_0x0587('0x10'));logger[_0x0587('0x11')](_0x0587('0x12'),_0x10b397,'request\x20sent',JSON['stringify'](_0x3563f0));if(_0x3563f0[_0x0587('0x13')]){if(_0x3563f0[_0x0587('0x13')]['code']===0x1f4){logger[_0x0587('0x13')](_0x0587('0xf'),_0x10b397,_0x3563f0[_0x0587('0x13')]['message']);return _0x354a0e(_0x3563f0[_0x0587('0x13')]['message']);}logger[_0x0587('0x13')]('Team,\x20%s,\x20%s',_0x10b397,_0x3563f0[_0x0587('0x13')][_0x0587('0x14')]);return _0x13122f(_0x3563f0[_0x0587('0x13')][_0x0587('0x14')]);}else{logger[_0x0587('0xe')](_0x0587('0xf'),_0x10b397,_0x0587('0x10'));_0x13122f(_0x3563f0[_0x0587('0x15')]['message']);}})[_0x0587('0x16')](function(_0x11909e){logger['error'](_0x0587('0xf'),_0x10b397,_0x11909e);_0x354a0e(_0x11909e);});});}
\ No newline at end of file
+var _0x9b94=['error','code','message','result','catch','lodash','moment','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','defaults','localhost','socket.io-emitter','redis','register','request','then','info','Team,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x2c2c61,_0xb1256d){var _0x424ee6=function(_0x5dff2a){while(--_0x5dff2a){_0x2c2c61['push'](_0x2c2c61['shift']());}};_0x424ee6(++_0xb1256d);}(_0x9b94,0xef));var _0x49b9=function(_0x2ffa95,_0x4c6cc5){_0x2ffa95=_0x2ffa95-0x0;var _0x26ef3b=_0x9b94[_0x2ffa95];return _0x26ef3b;};'use strict';var _=require(_0x49b9('0x0'));var util=require('util');var moment=require(_0x49b9('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x49b9('0x2'));var db=require(_0x49b9('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x49b9('0x4'))(_0x49b9('0x5'));var config=require('../../config/environment');var jayson=require(_0x49b9('0x6'));var client=jayson[_0x49b9('0x7')][_0x49b9('0x8')]({'port':0x232a});config['redis']=_[_0x49b9('0x9')](config['redis'],{'host':_0x49b9('0xa'),'port':0x18eb});var socket=require(_0x49b9('0xb'))(new Redis(config[_0x49b9('0xc')]));require('./team.socket')[_0x49b9('0xd')](socket);function respondWithRpcPromise(_0x15c3dd,_0x5bdbe0,_0x51047e){return new BPromise(function(_0x1f9617,_0x1aa18c){return client[_0x49b9('0xe')](_0x15c3dd,_0x51047e)[_0x49b9('0xf')](function(_0x1dbc14){logger[_0x49b9('0x10')](_0x49b9('0x11'),_0x5bdbe0,_0x49b9('0x12'));logger[_0x49b9('0x13')]('Team,\x20%s,\x20%s,\x20%s',_0x5bdbe0,_0x49b9('0x12'),JSON[_0x49b9('0x14')](_0x1dbc14));if(_0x1dbc14[_0x49b9('0x15')]){if(_0x1dbc14[_0x49b9('0x15')][_0x49b9('0x16')]===0x1f4){logger[_0x49b9('0x15')]('Team,\x20%s,\x20%s',_0x5bdbe0,_0x1dbc14[_0x49b9('0x15')]['message']);return _0x1aa18c(_0x1dbc14[_0x49b9('0x15')][_0x49b9('0x17')]);}logger[_0x49b9('0x15')]('Team,\x20%s,\x20%s',_0x5bdbe0,_0x1dbc14[_0x49b9('0x15')][_0x49b9('0x17')]);return _0x1f9617(_0x1dbc14['error']['message']);}else{logger[_0x49b9('0x10')](_0x49b9('0x11'),_0x5bdbe0,_0x49b9('0x12'));_0x1f9617(_0x1dbc14[_0x49b9('0x18')][_0x49b9('0x17')]);}})[_0x49b9('0x19')](function(_0x555a19){logger[_0x49b9('0x15')](_0x49b9('0x11'),_0x5bdbe0,_0x555a19);_0x1aa18c(_0x555a19);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cba=['save','remove','removeListener','register','length','team:','./team.events'];(function(_0x4737fe,_0x4913bf){var _0x3a7b94=function(_0x497571){while(--_0x497571){_0x4737fe['push'](_0x4737fe['shift']());}};_0x3a7b94(++_0x4913bf);}(_0x5cba,0x1cd));var _0xa5cb=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x5cba[_0x46698a];return _0x356db0;};'use strict';var TeamEvents=require(_0xa5cb('0x0'));var events=[_0xa5cb('0x1'),_0xa5cb('0x2'),'update'];function createListener(_0x401b35,_0x10afd7){return function(_0x2170fb){_0x10afd7['emit'](_0x401b35,_0x2170fb);};}function removeListener(_0x56d0a7,_0xda24c){return function(){TeamEvents[_0xa5cb('0x3')](_0x56d0a7,_0xda24c);};}exports[_0xa5cb('0x4')]=function(_0x50d450){for(var _0x162446=0x0,_0xce273d=events[_0xa5cb('0x5')];_0x162446<_0xce273d;_0x162446++){var _0x359c49=events[_0x162446];var _0x73b227=createListener(_0xa5cb('0x6')+_0x359c49,_0x50d450);TeamEvents['on'](_0x359c49,_0x73b227);}};
\ No newline at end of file
+var _0x7162=['team:','save','remove','update'];(function(_0x1e6e01,_0x532a61){var _0x2c6ab5=function(_0x289d6c){while(--_0x289d6c){_0x1e6e01['push'](_0x1e6e01['shift']());}};_0x2c6ab5(++_0x532a61);}(_0x7162,0x11d));var _0x2716=function(_0x252884,_0x117ddf){_0x252884=_0x252884-0x0;var _0x4de0e6=_0x7162[_0x252884];return _0x4de0e6;};'use strict';var TeamEvents=require('./team.events');var events=[_0x2716('0x0'),_0x2716('0x1'),_0x2716('0x2')];function createListener(_0x129304,_0x40a52e){return function(_0x51db46){_0x40a52e['emit'](_0x129304,_0x51db46);};}function removeListener(_0x3f3e8e,_0x59ddf6){return function(){TeamEvents['removeListener'](_0x3f3e8e,_0x59ddf6);};}exports['register']=function(_0x8894fc){for(var _0x103f72=0x0,_0x3e1484=events['length'];_0x103f72<_0x3e1484;_0x103f72++){var _0x4b099e=events[_0x103f72];var _0x4ea33d=createListener(_0x2716('0x3')+_0x4b099e,_0x8894fc);TeamEvents['on'](_0x4b099e,_0x4ea33d);}};
\ No newline at end of file
--- /dev/null
+// *************************************************************************
+// * *
+// * xCALLY Motion - The Omnichannel Contact Center *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
+// * *
+// *************************************************************************
+// * *
+// * Email: info@xcally.com *
+// * Website: https://www.xcally.com *
+// * *
+// *************************************************************************
+// * *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
+// * *
+// *************************************************************************
+var _0x8653=['INTEGER'];(function(_0x2965a4,_0xd649be){var _0x5e327d=function(_0x29c48a){while(--_0x29c48a){_0x2965a4['push'](_0x2965a4['shift']());}};_0x5e327d(++_0xd649be);}(_0x8653,0x17a));var _0x3865=function(_0x50fa0b,_0xe16273){_0x50fa0b=_0x50fa0b-0x0;var _0x3e055e=_0x8653[_0x50fa0b];return _0x3e055e;};'use strict';var Sequelize=require('sequelize');module['exports']={'TeamId':{'type':Sequelize['INTEGER']},'VoicePrefixId':{'type':Sequelize[_0x3865('0x0')]}};
\ No newline at end of file
--- /dev/null
+// *************************************************************************
+// * *
+// * xCALLY Motion - The Omnichannel Contact Center *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
+// * *
+// *************************************************************************
+// * *
+// * Email: info@xcally.com *
+// * Website: https://www.xcally.com *
+// * *
+// *************************************************************************
+// * *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
+// * *
+// *************************************************************************
+var _0xb627=['../../config/environment','./teamVoicePrefix.attributes','exports','TeamVoicePrefix','team_has_voice_prefixes','lodash','api','bluebird','request-promise','path','rimraf'];(function(_0x2352c3,_0x5e85de){var _0x52e5a9=function(_0x1d0f41){while(--_0x1d0f41){_0x2352c3['push'](_0x2352c3['shift']());}};_0x52e5a9(++_0x5e85de);}(_0xb627,0x144));var _0x7b62=function(_0x34b8be,_0x316d9e){_0x34b8be=_0x34b8be-0x0;var _0x4ddf82=_0xb627[_0x34b8be];return _0x4ddf82;};'use strict';var _=require(_0x7b62('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x7b62('0x1'));var moment=require('moment');var BPromise=require(_0x7b62('0x2'));var rp=require(_0x7b62('0x3'));var fs=require('fs');var path=require(_0x7b62('0x4'));var rimraf=require(_0x7b62('0x5'));var config=require(_0x7b62('0x6'));var attributes=require(_0x7b62('0x7'));module[_0x7b62('0x8')]=function(_0x4ad3e8,_0x71aec9){return _0x4ad3e8['define'](_0x7b62('0x9'),attributes,{'tableName':_0x7b62('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x282ee0,_0x39e9d5){var _0xd53a6d=function(_0x20d718){while(--_0x20d718){_0x282ee0['push'](_0x282ee0['shift']());}};_0xd53a6d(++_0x39e9d5);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x4849f6,_0x104836){_0x4849f6=_0x4849f6-0x0;var _0x1a3dcd=_0xcb91[_0x4849f6];return _0x1a3dcd;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
+var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x41f33d,_0x69df03){var _0x24b43e=function(_0x529f25){while(--_0x529f25){_0x41f33d['push'](_0x41f33d['shift']());}};_0x24b43e(++_0x69df03);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2c2=['exports','INTEGER','sequelize'];(function(_0x5a90ca,_0x425ba1){var _0x5e8677=function(_0x5cc9ba){while(--_0x5cc9ba){_0x5a90ca['push'](_0x5a90ca['shift']());}};_0x5e8677(++_0x425ba1);}(_0xe2c2,0xa1));var _0x2e2c=function(_0x1ebe47,_0x1f6468){_0x1ebe47=_0x1ebe47-0x0;var _0x110c96=_0xe2c2[_0x1ebe47];return _0x110c96;};'use strict';var Sequelize=require(_0x2e2c('0x0'));module[_0x2e2c('0x1')]={'penalty':{'type':Sequelize[_0x2e2c('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xddd3=['INTEGER','sequelize','exports'];(function(_0x24d312,_0x46ab29){var _0x2e7760=function(_0x46d239){while(--_0x46d239){_0x24d312['push'](_0x24d312['shift']());}};_0x2e7760(++_0x46ab29);}(_0xddd3,0x1b1));var _0x3ddd=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0xddd3[_0x411add];return _0x238242;};'use strict';var Sequelize=require(_0x3ddd('0x0'));module[_0x3ddd('0x1')]={'penalty':{'type':Sequelize[_0x3ddd('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3cc=['../../config/environment','./teamVoiceQueue.attributes','define','TeamVoiceQueue','team_has_voice_queues','lodash','util','../../config/logger','api','bluebird','request-promise','path'];(function(_0x39e8aa,_0x4574ea){var _0x455808=function(_0x1fbbe7){while(--_0x1fbbe7){_0x39e8aa['push'](_0x39e8aa['shift']());}};_0x455808(++_0x4574ea);}(_0xf3cc,0x10d));var _0xcf3c=function(_0x54a57e,_0x3a8ff9){_0x54a57e=_0x54a57e-0x0;var _0x56dc7f=_0xf3cc[_0x54a57e];return _0x56dc7f;};'use strict';var _=require(_0xcf3c('0x0'));var util=require(_0xcf3c('0x1'));var logger=require(_0xcf3c('0x2'))(_0xcf3c('0x3'));var moment=require('moment');var BPromise=require(_0xcf3c('0x4'));var rp=require(_0xcf3c('0x5'));var fs=require('fs');var path=require(_0xcf3c('0x6'));var rimraf=require('rimraf');var config=require(_0xcf3c('0x7'));var attributes=require(_0xcf3c('0x8'));module['exports']=function(_0x41f804,_0x2b5cae){return _0x41f804[_0xcf3c('0x9')](_0xcf3c('0xa'),attributes,{'tableName':_0xcf3c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1061=['request-promise','path','rimraf','../../config/environment','./teamVoiceQueue.attributes','exports','define','lodash','moment','bluebird'];(function(_0x444672,_0x4894c2){var _0x4ba0fc=function(_0x2a89d9){while(--_0x2a89d9){_0x444672['push'](_0x444672['shift']());}};_0x4ba0fc(++_0x4894c2);}(_0x1061,0x1b5));var _0x1106=function(_0x2bb9e4,_0x108733){_0x2bb9e4=_0x2bb9e4-0x0;var _0x2122cf=_0x1061[_0x2bb9e4];return _0x2122cf;};'use strict';var _=require(_0x1106('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x1106('0x1'));var BPromise=require(_0x1106('0x2'));var rp=require(_0x1106('0x3'));var fs=require('fs');var path=require(_0x1106('0x4'));var rimraf=require(_0x1106('0x5'));var config=require(_0x1106('0x6'));var attributes=require(_0x1106('0x7'));module[_0x1106('0x8')]=function(_0x5120c6,_0x1f098a){return _0x5120c6[_0x1106('0x9')]('TeamVoiceQueue',attributes,{'tableName':'team_has_voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x97da=['../../config/utils','../../config/logger','rpc','http','request','info','request\x20sent','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','TeamVoiceQueue,\x20%s,\x20%s','message','result','catch','lodash','moment','bluebird','ioredis'];(function(_0x1d47c3,_0x856818){var _0x220130=function(_0x1dddd6){while(--_0x1dddd6){_0x1d47c3['push'](_0x1d47c3['shift']());}};_0x220130(++_0x856818);}(_0x97da,0x164));var _0xa97d=function(_0x32e658,_0x3598c1){_0x32e658=_0x32e658-0x0;var _0x3d671a=_0x97da[_0x32e658];return _0x3d671a;};'use strict';var _=require(_0xa97d('0x0'));var util=require('util');var moment=require(_0xa97d('0x1'));var BPromise=require(_0xa97d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa97d('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xa97d('0x4'));var logger=require(_0xa97d('0x5'))(_0xa97d('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xa97d('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3cff27,_0x34446c,_0x3ecd45){return new BPromise(function(_0x36a463,_0x352267){return client[_0xa97d('0x8')](_0x3cff27,_0x3ecd45)['then'](function(_0x178e3b){logger[_0xa97d('0x9')]('TeamVoiceQueue,\x20%s,\x20%s',_0x34446c,_0xa97d('0xa'));logger[_0xa97d('0xb')](_0xa97d('0xc'),_0x34446c,_0xa97d('0xa'),JSON[_0xa97d('0xd')](_0x178e3b));if(_0x178e3b['error']){if(_0x178e3b[_0xa97d('0xe')][_0xa97d('0xf')]===0x1f4){logger[_0xa97d('0xe')](_0xa97d('0x10'),_0x34446c,_0x178e3b['error'][_0xa97d('0x11')]);return _0x352267(_0x178e3b[_0xa97d('0xe')]['message']);}logger['error'](_0xa97d('0x10'),_0x34446c,_0x178e3b['error'][_0xa97d('0x11')]);return _0x36a463(_0x178e3b[_0xa97d('0xe')][_0xa97d('0x11')]);}else{logger[_0xa97d('0x9')](_0xa97d('0x10'),_0x34446c,_0xa97d('0xa'));_0x36a463(_0x178e3b[_0xa97d('0x12')][_0xa97d('0x11')]);}})[_0xa97d('0x13')](function(_0x4f73f3){logger[_0xa97d('0xe')](_0xa97d('0x10'),_0x34446c,_0x4f73f3);_0x352267(_0x4f73f3);});});}
\ No newline at end of file
+var _0x9734=['../../config/environment','jayson/promise','client','http','request','then','info','TeamVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x51708f,_0x511834){var _0x5c60a3=function(_0x29fbec){while(--_0x29fbec){_0x51708f['push'](_0x51708f['shift']());}};_0x5c60a3(++_0x511834);}(_0x9734,0xe0));var _0x4973=function(_0x4d1c45,_0x6ff874){_0x4d1c45=_0x4d1c45-0x0;var _0x44775c=_0x9734[_0x4d1c45];return _0x44775c;};'use strict';var _=require('lodash');var util=require(_0x4973('0x0'));var moment=require('moment');var BPromise=require(_0x4973('0x1'));var rs=require(_0x4973('0x2'));var fs=require('fs');var Redis=require(_0x4973('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x4973('0x4'));var logger=require(_0x4973('0x5'))(_0x4973('0x6'));var config=require(_0x4973('0x7'));var jayson=require(_0x4973('0x8'));var client=jayson[_0x4973('0x9')][_0x4973('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe3309f,_0x1a6a3f,_0x15e1d2){return new BPromise(function(_0x2664f7,_0xf9beeb){return client[_0x4973('0xb')](_0xe3309f,_0x15e1d2)[_0x4973('0xc')](function(_0x4b9be7){logger[_0x4973('0xd')](_0x4973('0xe'),_0x1a6a3f,_0x4973('0xf'));logger[_0x4973('0x10')]('TeamVoiceQueue,\x20%s,\x20%s,\x20%s',_0x1a6a3f,_0x4973('0xf'),JSON[_0x4973('0x11')](_0x4b9be7));if(_0x4b9be7[_0x4973('0x12')]){if(_0x4b9be7['error'][_0x4973('0x13')]===0x1f4){logger['error'](_0x4973('0xe'),_0x1a6a3f,_0x4b9be7[_0x4973('0x12')][_0x4973('0x14')]);return _0xf9beeb(_0x4b9be7[_0x4973('0x12')][_0x4973('0x14')]);}logger[_0x4973('0x12')]('TeamVoiceQueue,\x20%s,\x20%s',_0x1a6a3f,_0x4b9be7[_0x4973('0x12')][_0x4973('0x14')]);return _0x2664f7(_0x4b9be7['error'][_0x4973('0x14')]);}else{logger[_0x4973('0xd')](_0x4973('0xe'),_0x1a6a3f,_0x4973('0xf'));_0x2664f7(_0x4b9be7['result']['message']);}})['catch'](function(_0x3f9c55){logger[_0x4973('0x12')]('TeamVoiceQueue,\x20%s,\x20%s',_0x1a6a3f,_0x3f9c55);_0xf9beeb(_0x3f9c55);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf94=['create','put','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./template.controller','get','isAuthenticated','index','/:id','show','post'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xdf94,0xad));var _0x4df9=function(_0x4fa425,_0x1ab234){_0x4fa425=_0x4fa425-0x0;var _0x27a72f=_0xdf94[_0x4fa425];return _0x27a72f;};'use strict';var multer=require('multer');var util=require(_0x4df9('0x0'));var path=require(_0x4df9('0x1'));var timeout=require(_0x4df9('0x2'));var express=require(_0x4df9('0x3'));var router=express[_0x4df9('0x4')]();var fs_extra=require(_0x4df9('0x5'));var auth=require(_0x4df9('0x6'));var interaction=require(_0x4df9('0x7'));var config=require(_0x4df9('0x8'));var controller=require(_0x4df9('0x9'));router[_0x4df9('0xa')]('/',auth[_0x4df9('0xb')](),controller[_0x4df9('0xc')]);router[_0x4df9('0xa')](_0x4df9('0xd'),auth[_0x4df9('0xb')](),controller[_0x4df9('0xe')]);router[_0x4df9('0xf')]('/',auth['isAuthenticated'](),controller[_0x4df9('0x10')]);router[_0x4df9('0x11')](_0x4df9('0xd'),auth[_0x4df9('0xb')](),controller[_0x4df9('0x12')]);router[_0x4df9('0x13')](_0x4df9('0xd'),auth['isAuthenticated'](),controller['destroy']);module[_0x4df9('0x14')]=router;
\ No newline at end of file
+var _0x69d4=['../../components/auth/service','../../config/environment','./template.controller','get','isAuthenticated','index','post','create','update','delete','destroy','exports','multer','util','connect-timeout','express','Router'];(function(_0x48522b,_0x28d112){var _0x511408=function(_0x103887){while(--_0x103887){_0x48522b['push'](_0x48522b['shift']());}};_0x511408(++_0x28d112);}(_0x69d4,0x83));var _0x469d=function(_0x4a53d,_0x58a95e){_0x4a53d=_0x4a53d-0x0;var _0x27410e=_0x69d4[_0x4a53d];return _0x27410e;};'use strict';var multer=require(_0x469d('0x0'));var util=require(_0x469d('0x1'));var path=require('path');var timeout=require(_0x469d('0x2'));var express=require(_0x469d('0x3'));var router=express[_0x469d('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x469d('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x469d('0x6'));var controller=require(_0x469d('0x7'));router[_0x469d('0x8')]('/',auth[_0x469d('0x9')](),controller[_0x469d('0xa')]);router[_0x469d('0x8')]('/:id',auth[_0x469d('0x9')](),controller['show']);router[_0x469d('0xb')]('/',auth[_0x469d('0x9')](),controller[_0x469d('0xc')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x469d('0xd')]);router[_0x469d('0xe')]('/:id',auth[_0x469d('0x9')](),controller[_0x469d('0xf')]);module[_0x469d('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc8f=['exports','STRING','TEXT','sequelize'];(function(_0xe3198e,_0x48b02a){var _0x36cb1c=function(_0x21ed07){while(--_0x21ed07){_0xe3198e['push'](_0xe3198e['shift']());}};_0x36cb1c(++_0x48b02a);}(_0xcc8f,0x1a3));var _0xfcc8=function(_0x4504e0,_0x1f0283){_0x4504e0=_0x4504e0-0x0;var _0x4b4676=_0xcc8f[_0x4504e0];return _0x4b4676;};'use strict';var Sequelize=require(_0xfcc8('0x0'));module[_0xfcc8('0x1')]={'name':{'type':Sequelize[_0xfcc8('0x2')]},'description':{'type':Sequelize[_0xfcc8('0x2')]},'html':{'type':Sequelize[_0xfcc8('0x3')]}};
\ No newline at end of file
+var _0xa1d9=['exports','STRING','TEXT'];(function(_0x45b2b7,_0x44122f){var _0x25c49b=function(_0xc1b134){while(--_0xc1b134){_0x45b2b7['push'](_0x45b2b7['shift']());}};_0x25c49b(++_0x44122f);}(_0xa1d9,0x123));var _0x9a1d=function(_0x527584,_0x327fa8){_0x527584=_0x527584-0x0;var _0x54510f=_0xa1d9[_0x527584];return _0x54510f;};'use strict';var Sequelize=require('sequelize');module[_0x9a1d('0x0')]={'name':{'type':Sequelize[_0x9a1d('0x1')]},'description':{'type':Sequelize[_0x9a1d('0x1')]},'html':{'type':Sequelize[_0x9a1d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1c2=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','count','limit','set','Content-Range','json','reject','save','update','then','destroy','Templates','end','stack','name','send','Template','rawAttributes','fieldName','type','model','map','filters','intersection','query','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','findAll','rows','catch','show','params','keys','fields','includeAll','include','find','user','get','role','autoAssociation','UserProfileResource','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc1c2,0x14f));var _0x2c1c=function(_0x1cf974,_0x1a4a09){_0x1cf974=_0x1cf974-0x0;var _0x16f0d2=_0xc1c2[_0x1cf974];return _0x16f0d2;};'use strict';var emlformat=require(_0x2c1c('0x0'));var rimraf=require(_0x2c1c('0x1'));var zipdir=require(_0x2c1c('0x2'));var jsonpatch=require(_0x2c1c('0x3'));var rp=require(_0x2c1c('0x4'));var moment=require(_0x2c1c('0x5'));var BPromise=require(_0x2c1c('0x6'));var Mustache=require('mustache');var util=require(_0x2c1c('0x7'));var path=require(_0x2c1c('0x8'));var sox=require(_0x2c1c('0x9'));var csv=require(_0x2c1c('0xa'));var ejs=require(_0x2c1c('0xb'));var fs=require('fs');var fs_extra=require(_0x2c1c('0xc'));var _=require('lodash');var squel=require(_0x2c1c('0xd'));var crypto=require(_0x2c1c('0xe'));var jsforce=require(_0x2c1c('0xf'));var deskjs=require(_0x2c1c('0x10'));var toCsv=require(_0x2c1c('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x2c1c('0x11'));var authService=require(_0x2c1c('0x12'));var qs=require(_0x2c1c('0x13'));var as=require(_0x2c1c('0x14'));var hardwareService=require(_0x2c1c('0x15'));var logger=require('../../config/logger')(_0x2c1c('0x16'));var utils=require(_0x2c1c('0x17'));var config=require(_0x2c1c('0x18'));var licenseUtil=require(_0x2c1c('0x19'));var db=require(_0x2c1c('0x1a'))['db'];function respondWithStatusCode(_0x266f66,_0x2c205f){_0x2c205f=_0x2c205f||0xcc;return function(_0x1d6e60){if(_0x1d6e60){return _0x266f66[_0x2c1c('0x1b')](_0x2c205f);}return _0x266f66['status'](_0x2c205f)['end']();};}function respondWithResult(_0x59fb7c,_0xc63f36){_0xc63f36=_0xc63f36||0xc8;return function(_0x5b5242){if(_0x5b5242){return _0x59fb7c[_0x2c1c('0x1c')](_0xc63f36)['json'](_0x5b5242);}};}function respondWithFilteredResult(_0x38d12f,_0x24f239){return function(_0x2eaaf1){if(_0x2eaaf1){var _0x33f48b=typeof _0x24f239[_0x2c1c('0x1d')]==='undefined'&&typeof _0x24f239['limit']==='undefined';var _0x25c555=_0x2eaaf1[_0x2c1c('0x1e')];var _0x3173a8=_0x33f48b?0x0:_0x24f239[_0x2c1c('0x1d')];var _0xa1d535=_0x33f48b?_0x2eaaf1[_0x2c1c('0x1e')]:_0x24f239[_0x2c1c('0x1d')]+_0x24f239[_0x2c1c('0x1f')];var _0x5eb55a;if(_0xa1d535>=_0x25c555){_0xa1d535=_0x25c555;_0x5eb55a=0xc8;}else{_0x5eb55a=0xce;}_0x38d12f['status'](_0x5eb55a);return _0x38d12f[_0x2c1c('0x20')](_0x2c1c('0x21'),_0x3173a8+'-'+_0xa1d535+'/'+_0x25c555)[_0x2c1c('0x22')](_0x2eaaf1);}return null;};}function patchUpdates(_0x3dfd45){return function(_0x57c1d1){try{jsonpatch['apply'](_0x57c1d1,_0x3dfd45,!![]);}catch(_0xec648f){return BPromise[_0x2c1c('0x23')](_0xec648f);}return _0x57c1d1[_0x2c1c('0x24')]();};}function saveUpdates(_0x193d17,_0x550448){return function(_0x287497){if(_0x287497){return _0x287497[_0x2c1c('0x25')](_0x193d17)[_0x2c1c('0x26')](function(_0x1fdfa5){return _0x1fdfa5;});}return null;};}function removeEntity(_0x147012,_0x1a3547){return function(_0x2ded89){if(_0x2ded89){return _0x2ded89[_0x2c1c('0x27')]()['then'](function(){var _0x2a7dd2=_0x2ded89['get']({'plain':!![]});var _0x2ec4a6=_0x2c1c('0x28');return db['UserProfileResource'][_0x2c1c('0x27')]({'where':{'type':_0x2ec4a6,'resourceId':_0x2a7dd2['id']}})[_0x2c1c('0x26')](function(){return _0x2ded89;});})['then'](function(){_0x147012['status'](0xcc)[_0x2c1c('0x29')]();});}};}function handleEntityNotFound(_0xa05d6c,_0x1a5118){return function(_0x35239b){if(!_0x35239b){_0xa05d6c[_0x2c1c('0x1b')](0x194);}return _0x35239b;};}function handleError(_0x1d6bb7,_0xe8fd10){_0xe8fd10=_0xe8fd10||0x1f4;return function(_0x32af27){logger['error'](_0x32af27[_0x2c1c('0x2a')]);if(_0x32af27[_0x2c1c('0x2b')]){delete _0x32af27[_0x2c1c('0x2b')];}_0x1d6bb7[_0x2c1c('0x1c')](_0xe8fd10)[_0x2c1c('0x2c')](_0x32af27);};}exports['index']=function(_0x221d75,_0x149be2){var _0x4aa417={},_0x451463={},_0x4000ec={'count':0x0,'rows':[]};var _0x41614c=_['map'](db[_0x2c1c('0x2d')][_0x2c1c('0x2e')],function(_0x34d223){return{'name':_0x34d223[_0x2c1c('0x2f')],'type':_0x34d223[_0x2c1c('0x30')]['key']};});_0x451463[_0x2c1c('0x31')]=_[_0x2c1c('0x32')](_0x41614c,_0x2c1c('0x2b'));_0x451463['query']=_['keys'](_0x221d75['query']);_0x451463[_0x2c1c('0x33')]=_[_0x2c1c('0x34')](_0x451463[_0x2c1c('0x31')],_0x451463[_0x2c1c('0x35')]);_0x4aa417[_0x2c1c('0x36')]=_[_0x2c1c('0x34')](_0x451463[_0x2c1c('0x31')],qs['fields'](_0x221d75[_0x2c1c('0x35')]['fields']));_0x4aa417[_0x2c1c('0x36')]=_0x4aa417['attributes'][_0x2c1c('0x37')]?_0x4aa417[_0x2c1c('0x36')]:_0x451463[_0x2c1c('0x31')];if(!_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x38')](_0x2c1c('0x39'))){_0x4aa417[_0x2c1c('0x1f')]=qs['limit'](_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x1f')]);_0x4aa417[_0x2c1c('0x1d')]=qs[_0x2c1c('0x1d')](_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x1d')]);}_0x4aa417[_0x2c1c('0x3a')]=qs[_0x2c1c('0x3b')](_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x3b')]);_0x4aa417[_0x2c1c('0x3c')]=qs[_0x2c1c('0x33')](_[_0x2c1c('0x3d')](_0x221d75['query'],_0x451463[_0x2c1c('0x33')]),_0x41614c);if(_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x3e')]){_0x4aa417[_0x2c1c('0x3c')]=_[_0x2c1c('0x3f')](_0x4aa417[_0x2c1c('0x3c')],{'$or':_[_0x2c1c('0x32')](_0x41614c,function(_0x226d6f){if(_0x226d6f['type']!=='VIRTUAL'){var _0x50bb74={};_0x50bb74[_0x226d6f[_0x2c1c('0x2b')]]={'$like':'%'+_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x3e')]+'%'};return _0x50bb74;}})});}_0x4aa417=_[_0x2c1c('0x3f')]({},_0x4aa417,_0x221d75[_0x2c1c('0x40')]);var _0x560ca9={'where':_0x4aa417[_0x2c1c('0x3c')]};return db[_0x2c1c('0x2d')][_0x2c1c('0x1e')](_0x560ca9)[_0x2c1c('0x26')](function(_0x4bec6c){_0x4000ec[_0x2c1c('0x1e')]=_0x4bec6c;if(_0x221d75[_0x2c1c('0x35')]['includeAll']){_0x4aa417['include']=[{'all':!![]}];}return db[_0x2c1c('0x2d')][_0x2c1c('0x41')](_0x4aa417);})['then'](function(_0x511059){_0x4000ec[_0x2c1c('0x42')]=_0x511059;return _0x4000ec;})[_0x2c1c('0x26')](respondWithFilteredResult(_0x149be2,_0x4aa417))[_0x2c1c('0x43')](handleError(_0x149be2,null));};exports[_0x2c1c('0x44')]=function(_0x3b53b9,_0x270cb6){var _0x392378={'raw':!![],'where':{'id':_0x3b53b9[_0x2c1c('0x45')]['id']}},_0x12a118={};_0x12a118[_0x2c1c('0x31')]=_[_0x2c1c('0x46')](db[_0x2c1c('0x2d')][_0x2c1c('0x2e')]);_0x12a118[_0x2c1c('0x35')]=_[_0x2c1c('0x46')](_0x3b53b9[_0x2c1c('0x35')]);_0x12a118[_0x2c1c('0x33')]=_[_0x2c1c('0x34')](_0x12a118['model'],_0x12a118[_0x2c1c('0x35')]);_0x392378[_0x2c1c('0x36')]=_['intersection'](_0x12a118['model'],qs[_0x2c1c('0x47')](_0x3b53b9[_0x2c1c('0x35')]['fields']));_0x392378[_0x2c1c('0x36')]=_0x392378['attributes'][_0x2c1c('0x37')]?_0x392378['attributes']:_0x12a118[_0x2c1c('0x31')];if(_0x3b53b9[_0x2c1c('0x35')][_0x2c1c('0x48')]){_0x392378[_0x2c1c('0x49')]=[{'all':!![]}];}_0x392378=_[_0x2c1c('0x3f')]({},_0x392378,_0x3b53b9[_0x2c1c('0x40')]);return db[_0x2c1c('0x2d')][_0x2c1c('0x4a')](_0x392378)[_0x2c1c('0x26')](handleEntityNotFound(_0x270cb6,null))[_0x2c1c('0x26')](respondWithResult(_0x270cb6,null))[_0x2c1c('0x43')](handleError(_0x270cb6,null));};exports['create']=function(_0x4ec672,_0xb1e800){return db[_0x2c1c('0x2d')]['create'](_0x4ec672['body'],{})[_0x2c1c('0x26')](function(_0x2ebc68){var _0x15faa4=_0x4ec672[_0x2c1c('0x4b')][_0x2c1c('0x4c')]({'plain':!![]});if(!_0x15faa4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x15faa4[_0x2c1c('0x4d')]===_0x2c1c('0x4b')){var _0x3f0a7=_0x2ebc68[_0x2c1c('0x4c')]({'plain':!![]});var _0x47b7a0='Templates';return db['UserProfileSection'][_0x2c1c('0x4a')]({'where':{'name':_0x47b7a0,'userProfileId':_0x15faa4['userProfileId']},'raw':!![]})[_0x2c1c('0x26')](function(_0x3ec552){if(_0x3ec552&&_0x3ec552[_0x2c1c('0x4e')]===0x0){return db[_0x2c1c('0x4f')][_0x2c1c('0x50')]({'name':_0x3f0a7[_0x2c1c('0x2b')],'resourceId':_0x3f0a7['id'],'type':_0x3ec552[_0x2c1c('0x2b')],'sectionId':_0x3ec552['id']},{})['then'](function(){return _0x2ebc68;});}else{return _0x2ebc68;}})['catch'](function(_0x359f01){logger[_0x2c1c('0x51')](_0x2c1c('0x52'),_0x359f01);throw _0x359f01;});}return _0x2ebc68;})[_0x2c1c('0x26')](respondWithResult(_0xb1e800,0xc9))[_0x2c1c('0x43')](handleError(_0xb1e800,null));};exports['update']=function(_0xd44ed7,_0x515840){if(_0xd44ed7[_0x2c1c('0x53')]['id']){delete _0xd44ed7['body']['id'];}return db[_0x2c1c('0x2d')][_0x2c1c('0x4a')]({'where':{'id':_0xd44ed7['params']['id']}})[_0x2c1c('0x26')](handleEntityNotFound(_0x515840,null))[_0x2c1c('0x26')](saveUpdates(_0xd44ed7[_0x2c1c('0x53')],null))['then'](respondWithResult(_0x515840,null))[_0x2c1c('0x43')](handleError(_0x515840,null));};exports[_0x2c1c('0x27')]=function(_0x141659,_0xbc24bc){return db[_0x2c1c('0x2d')][_0x2c1c('0x4a')]({'where':{'id':_0x141659[_0x2c1c('0x45')]['id']}})[_0x2c1c('0x26')](handleEntityNotFound(_0xbc24bc,null))[_0x2c1c('0x26')](removeEntity(_0xbc24bc,null))['catch'](handleError(_0xbc24bc,null));};
\ No newline at end of file
+var _0xb1ce=['../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','update','then','UserProfileResource','destroy','error','name','send','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','Template','show','find','catch','create','body','get','role','user','Templates','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x2ad3fd,_0x24c202){var _0x30fe82=function(_0x4937f0){while(--_0x4937f0){_0x2ad3fd['push'](_0x2ad3fd['shift']());}};_0x30fe82(++_0x24c202);}(_0xb1ce,0xd9));var _0xeb1c=function(_0x366ce9,_0x457a54){_0x366ce9=_0x366ce9-0x0;var _0x56a9a6=_0xb1ce[_0x366ce9];return _0x56a9a6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xeb1c('0x0'));var zipdir=require(_0xeb1c('0x1'));var jsonpatch=require(_0xeb1c('0x2'));var rp=require(_0xeb1c('0x3'));var moment=require(_0xeb1c('0x4'));var BPromise=require(_0xeb1c('0x5'));var Mustache=require(_0xeb1c('0x6'));var util=require(_0xeb1c('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xeb1c('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xeb1c('0x9'));var _=require(_0xeb1c('0xa'));var squel=require(_0xeb1c('0xb'));var crypto=require(_0xeb1c('0xc'));var jsforce=require(_0xeb1c('0xd'));var deskjs=require(_0xeb1c('0xe'));var toCsv=require('to-csv');var querystring=require(_0xeb1c('0xf'));var Papa=require(_0xeb1c('0x10'));var Redis=require(_0xeb1c('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xeb1c('0x12'));var as=require(_0xeb1c('0x13'));var hardwareService=require(_0xeb1c('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xeb1c('0x15'));var config=require(_0xeb1c('0x16'));var licenseUtil=require(_0xeb1c('0x17'));var db=require(_0xeb1c('0x18'))['db'];function respondWithStatusCode(_0x1b4b50,_0x2cb7da){_0x2cb7da=_0x2cb7da||0xcc;return function(_0x416ef8){if(_0x416ef8){return _0x1b4b50[_0xeb1c('0x19')](_0x2cb7da);}return _0x1b4b50['status'](_0x2cb7da)[_0xeb1c('0x1a')]();};}function respondWithResult(_0xfc8690,_0x3bb450){_0x3bb450=_0x3bb450||0xc8;return function(_0x343cf3){if(_0x343cf3){return _0xfc8690[_0xeb1c('0x1b')](_0x3bb450)[_0xeb1c('0x1c')](_0x343cf3);}};}function respondWithFilteredResult(_0x29dbdd,_0x5de10e){return function(_0x2e8e2f){if(_0x2e8e2f){var _0x5a5cc4=typeof _0x5de10e[_0xeb1c('0x1d')]===_0xeb1c('0x1e')&&typeof _0x5de10e[_0xeb1c('0x1f')]===_0xeb1c('0x1e');var _0x291878=_0x2e8e2f[_0xeb1c('0x20')];var _0x463899=_0x5a5cc4?0x0:_0x5de10e[_0xeb1c('0x1d')];var _0x509ad8=_0x5a5cc4?_0x2e8e2f[_0xeb1c('0x20')]:_0x5de10e['offset']+_0x5de10e['limit'];var _0x294154;if(_0x509ad8>=_0x291878){_0x509ad8=_0x291878;_0x294154=0xc8;}else{_0x294154=0xce;}_0x29dbdd['status'](_0x294154);return _0x29dbdd[_0xeb1c('0x21')]('Content-Range',_0x463899+'-'+_0x509ad8+'/'+_0x291878)[_0xeb1c('0x1c')](_0x2e8e2f);}return null;};}function patchUpdates(_0x3226c2){return function(_0x51862b){try{jsonpatch[_0xeb1c('0x22')](_0x51862b,_0x3226c2,!![]);}catch(_0x5ef876){return BPromise['reject'](_0x5ef876);}return _0x51862b['save']();};}function saveUpdates(_0x5a3431,_0x18afe2){return function(_0x1c9871){if(_0x1c9871){return _0x1c9871[_0xeb1c('0x23')](_0x5a3431)[_0xeb1c('0x24')](function(_0xb762ff){return _0xb762ff;});}return null;};}function removeEntity(_0x124e78,_0x592a84){return function(_0x186ac5){if(_0x186ac5){return _0x186ac5['destroy']()[_0xeb1c('0x24')](function(){var _0x2b5090=_0x186ac5['get']({'plain':!![]});var _0x5fc0f2='Templates';return db[_0xeb1c('0x25')][_0xeb1c('0x26')]({'where':{'type':_0x5fc0f2,'resourceId':_0x2b5090['id']}})[_0xeb1c('0x24')](function(){return _0x186ac5;});})['then'](function(){_0x124e78[_0xeb1c('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x305dd2,_0x3939d6){return function(_0x1facd6){if(!_0x1facd6){_0x305dd2[_0xeb1c('0x19')](0x194);}return _0x1facd6;};}function handleError(_0x18317f,_0x468f00){_0x468f00=_0x468f00||0x1f4;return function(_0x3f2385){logger[_0xeb1c('0x27')](_0x3f2385['stack']);if(_0x3f2385['name']){delete _0x3f2385[_0xeb1c('0x28')];}_0x18317f[_0xeb1c('0x1b')](_0x468f00)[_0xeb1c('0x29')](_0x3f2385);};}exports[_0xeb1c('0x2a')]=function(_0x3a24a2,_0x3da0e3){var _0x4c196f={},_0x359fff={},_0x322516={'count':0x0,'rows':[]};var _0x2aa2a1=_['map'](db['Template'][_0xeb1c('0x2b')],function(_0x8df004){return{'name':_0x8df004[_0xeb1c('0x2c')],'type':_0x8df004[_0xeb1c('0x2d')][_0xeb1c('0x2e')]};});_0x359fff[_0xeb1c('0x2f')]=_[_0xeb1c('0x30')](_0x2aa2a1,_0xeb1c('0x28'));_0x359fff[_0xeb1c('0x31')]=_['keys'](_0x3a24a2[_0xeb1c('0x31')]);_0x359fff[_0xeb1c('0x32')]=_[_0xeb1c('0x33')](_0x359fff[_0xeb1c('0x2f')],_0x359fff[_0xeb1c('0x31')]);_0x4c196f[_0xeb1c('0x34')]=_[_0xeb1c('0x33')](_0x359fff['model'],qs[_0xeb1c('0x35')](_0x3a24a2['query'][_0xeb1c('0x35')]));_0x4c196f['attributes']=_0x4c196f[_0xeb1c('0x34')][_0xeb1c('0x36')]?_0x4c196f[_0xeb1c('0x34')]:_0x359fff[_0xeb1c('0x2f')];if(!_0x3a24a2[_0xeb1c('0x31')][_0xeb1c('0x37')](_0xeb1c('0x38'))){_0x4c196f[_0xeb1c('0x1f')]=qs[_0xeb1c('0x1f')](_0x3a24a2['query']['limit']);_0x4c196f[_0xeb1c('0x1d')]=qs[_0xeb1c('0x1d')](_0x3a24a2[_0xeb1c('0x31')][_0xeb1c('0x1d')]);}_0x4c196f['order']=qs[_0xeb1c('0x39')](_0x3a24a2[_0xeb1c('0x31')][_0xeb1c('0x39')]);_0x4c196f[_0xeb1c('0x3a')]=qs[_0xeb1c('0x32')](_[_0xeb1c('0x3b')](_0x3a24a2[_0xeb1c('0x31')],_0x359fff[_0xeb1c('0x32')]),_0x2aa2a1);if(_0x3a24a2['query'][_0xeb1c('0x3c')]){_0x4c196f[_0xeb1c('0x3a')]=_[_0xeb1c('0x3d')](_0x4c196f[_0xeb1c('0x3a')],{'$or':_['map'](_0x2aa2a1,function(_0x248373){if(_0x248373[_0xeb1c('0x2d')]!==_0xeb1c('0x3e')){var _0x4cff1d={};_0x4cff1d[_0x248373[_0xeb1c('0x28')]]={'$like':'%'+_0x3a24a2[_0xeb1c('0x31')]['filter']+'%'};return _0x4cff1d;}})});}_0x4c196f=_[_0xeb1c('0x3d')]({},_0x4c196f,_0x3a24a2[_0xeb1c('0x3f')]);var _0xa7e743={'where':_0x4c196f[_0xeb1c('0x3a')]};return db['Template'][_0xeb1c('0x20')](_0xa7e743)[_0xeb1c('0x24')](function(_0x197c44){_0x322516['count']=_0x197c44;if(_0x3a24a2[_0xeb1c('0x31')][_0xeb1c('0x40')]){_0x4c196f[_0xeb1c('0x41')]=[{'all':!![]}];}return db[_0xeb1c('0x42')]['findAll'](_0x4c196f);})[_0xeb1c('0x24')](function(_0x521907){_0x322516['rows']=_0x521907;return _0x322516;})[_0xeb1c('0x24')](respondWithFilteredResult(_0x3da0e3,_0x4c196f))['catch'](handleError(_0x3da0e3,null));};exports[_0xeb1c('0x43')]=function(_0x555d3d,_0x19f302){var _0x5a294b={'raw':!![],'where':{'id':_0x555d3d['params']['id']}},_0x5d19c4={};_0x5d19c4[_0xeb1c('0x2f')]=_['keys'](db[_0xeb1c('0x42')][_0xeb1c('0x2b')]);_0x5d19c4[_0xeb1c('0x31')]=_['keys'](_0x555d3d[_0xeb1c('0x31')]);_0x5d19c4['filters']=_[_0xeb1c('0x33')](_0x5d19c4[_0xeb1c('0x2f')],_0x5d19c4['query']);_0x5a294b['attributes']=_[_0xeb1c('0x33')](_0x5d19c4['model'],qs[_0xeb1c('0x35')](_0x555d3d[_0xeb1c('0x31')]['fields']));_0x5a294b[_0xeb1c('0x34')]=_0x5a294b[_0xeb1c('0x34')][_0xeb1c('0x36')]?_0x5a294b['attributes']:_0x5d19c4[_0xeb1c('0x2f')];if(_0x555d3d[_0xeb1c('0x31')][_0xeb1c('0x40')]){_0x5a294b[_0xeb1c('0x41')]=[{'all':!![]}];}_0x5a294b=_[_0xeb1c('0x3d')]({},_0x5a294b,_0x555d3d[_0xeb1c('0x3f')]);return db[_0xeb1c('0x42')][_0xeb1c('0x44')](_0x5a294b)[_0xeb1c('0x24')](handleEntityNotFound(_0x19f302,null))[_0xeb1c('0x24')](respondWithResult(_0x19f302,null))[_0xeb1c('0x45')](handleError(_0x19f302,null));};exports[_0xeb1c('0x46')]=function(_0x330cb5,_0x434ca9){return db['Template'][_0xeb1c('0x46')](_0x330cb5[_0xeb1c('0x47')],{})[_0xeb1c('0x24')](function(_0x525d90){var _0x552aec=_0x330cb5['user'][_0xeb1c('0x48')]({'plain':!![]});if(!_0x552aec)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x552aec[_0xeb1c('0x49')]===_0xeb1c('0x4a')){var _0x22b8f6=_0x525d90[_0xeb1c('0x48')]({'plain':!![]});var _0x2f0674=_0xeb1c('0x4b');return db['UserProfileSection'][_0xeb1c('0x44')]({'where':{'name':_0x2f0674,'userProfileId':_0x552aec[_0xeb1c('0x4c')]},'raw':!![]})[_0xeb1c('0x24')](function(_0x1ccf61){if(_0x1ccf61&&_0x1ccf61[_0xeb1c('0x4d')]===0x0){return db[_0xeb1c('0x25')][_0xeb1c('0x46')]({'name':_0x22b8f6[_0xeb1c('0x28')],'resourceId':_0x22b8f6['id'],'type':_0x1ccf61[_0xeb1c('0x28')],'sectionId':_0x1ccf61['id']},{})[_0xeb1c('0x24')](function(){return _0x525d90;});}else{return _0x525d90;}})[_0xeb1c('0x45')](function(_0x2ff029){logger['error'](_0xeb1c('0x4e'),_0x2ff029);throw _0x2ff029;});}return _0x525d90;})[_0xeb1c('0x24')](respondWithResult(_0x434ca9,0xc9))[_0xeb1c('0x45')](handleError(_0x434ca9,null));};exports[_0xeb1c('0x23')]=function(_0x2adf32,_0x36fb27){if(_0x2adf32[_0xeb1c('0x47')]['id']){delete _0x2adf32[_0xeb1c('0x47')]['id'];}return db[_0xeb1c('0x42')][_0xeb1c('0x44')]({'where':{'id':_0x2adf32['params']['id']}})[_0xeb1c('0x24')](handleEntityNotFound(_0x36fb27,null))[_0xeb1c('0x24')](saveUpdates(_0x2adf32[_0xeb1c('0x47')],null))[_0xeb1c('0x24')](respondWithResult(_0x36fb27,null))['catch'](handleError(_0x36fb27,null));};exports[_0xeb1c('0x26')]=function(_0x111bfe,_0x1f0b23){return db[_0xeb1c('0x42')][_0xeb1c('0x44')]({'where':{'id':_0x111bfe['params']['id']}})[_0xeb1c('0x24')](handleEntityNotFound(_0x1f0b23,null))[_0xeb1c('0x24')](removeEntity(_0x1f0b23,null))['catch'](handleError(_0x1f0b23,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a9e=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','./template.attributes','exports','Template','tools_templates','lodash'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x1a9e,0xe3));var _0xe1a9=function(_0x1c1fb2,_0x30fc24){_0x1c1fb2=_0x1c1fb2-0x0;var _0xf0a074=_0x1a9e[_0x1c1fb2];return _0xf0a074;};'use strict';var _=require(_0xe1a9('0x0'));var util=require(_0xe1a9('0x1'));var logger=require(_0xe1a9('0x2'))(_0xe1a9('0x3'));var moment=require('moment');var BPromise=require(_0xe1a9('0x4'));var rp=require(_0xe1a9('0x5'));var fs=require('fs');var path=require(_0xe1a9('0x6'));var rimraf=require(_0xe1a9('0x7'));var config=require('../../config/environment');var attributes=require(_0xe1a9('0x8'));module[_0xe1a9('0x9')]=function(_0x3ca3f4,_0x78b059){return _0x3ca3f4['define'](_0xe1a9('0xa'),attributes,{'tableName':_0xe1a9('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5623=['Template','lodash','util','api','moment','request-promise','../../config/environment','./template.attributes','exports','define'];(function(_0x288e13,_0x47dd3a){var _0x225e86=function(_0x390e7d){while(--_0x390e7d){_0x288e13['push'](_0x288e13['shift']());}};_0x225e86(++_0x47dd3a);}(_0x5623,0x15f));var _0x3562=function(_0x2b012e,_0x47d700){_0x2b012e=_0x2b012e-0x0;var _0x55f1f0=_0x5623[_0x2b012e];return _0x55f1f0;};'use strict';var _=require(_0x3562('0x0'));var util=require(_0x3562('0x1'));var logger=require('../../config/logger')(_0x3562('0x2'));var moment=require(_0x3562('0x3'));var BPromise=require('bluebird');var rp=require(_0x3562('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x3562('0x5'));var attributes=require(_0x3562('0x6'));module[_0x3562('0x7')]=function(_0x2c947e,_0x39358e){return _0x2c947e[_0x3562('0x8')](_0x3562('0x9'),attributes,{'tableName':'tools_templates','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd291=['catch','findAll','options','raw','where','attributes','limit','include','map','model','GetTemplate','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','Template,\x20%s,\x20%s','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xd291,0x1af));var _0x1d29=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xd291[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x1d29('0x0'));var util=require(_0x1d29('0x1'));var moment=require('moment');var BPromise=require(_0x1d29('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1d29('0x3'));var db=require(_0x1d29('0x4'))['db'];var utils=require(_0x1d29('0x5'));var logger=require(_0x1d29('0x6'))(_0x1d29('0x7'));var config=require(_0x1d29('0x8'));var jayson=require(_0x1d29('0x9'));var client=jayson[_0x1d29('0xa')][_0x1d29('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x24123f,_0x530254,_0x5856ad){return new BPromise(function(_0x1ca0b6,_0x25ef3d){return client[_0x1d29('0xc')](_0x24123f,_0x5856ad)[_0x1d29('0xd')](function(_0x1c023c){logger['info'](_0x1d29('0xe'),_0x530254,_0x1d29('0xf'));logger[_0x1d29('0x10')](_0x1d29('0x11'),_0x530254,_0x1d29('0xf'),JSON[_0x1d29('0x12')](_0x1c023c));if(_0x1c023c[_0x1d29('0x13')]){if(_0x1c023c[_0x1d29('0x13')][_0x1d29('0x14')]===0x1f4){logger[_0x1d29('0x13')](_0x1d29('0xe'),_0x530254,_0x1c023c[_0x1d29('0x13')][_0x1d29('0x15')]);return _0x25ef3d(_0x1c023c[_0x1d29('0x13')][_0x1d29('0x15')]);}logger[_0x1d29('0x13')](_0x1d29('0xe'),_0x530254,_0x1c023c['error'][_0x1d29('0x15')]);return _0x1ca0b6(_0x1c023c[_0x1d29('0x13')][_0x1d29('0x15')]);}else{logger[_0x1d29('0x16')]('Template,\x20%s,\x20%s',_0x530254,_0x1d29('0xf'));_0x1ca0b6(_0x1c023c[_0x1d29('0x17')][_0x1d29('0x15')]);}})[_0x1d29('0x18')](function(_0x31bec5){logger['error'](_0x1d29('0xe'),_0x530254,_0x31bec5);_0x25ef3d(_0x31bec5);});});}exports['GetTemplate']=function(_0x512fc2){var _0x525554=this;return new Promise(function(_0x4abaa2,_0x603f48){return db['Template'][_0x1d29('0x19')]({'raw':_0x512fc2[_0x1d29('0x1a')]?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1b')]===undefined?!![]:![]:!![],'where':_0x512fc2['options']?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1c')]||null:null,'attributes':_0x512fc2[_0x1d29('0x1a')]?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1d')]||null:null,'limit':_0x512fc2[_0x1d29('0x1a')]?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1e')]||null:null,'include':_0x512fc2['options']?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1f')]?_[_0x1d29('0x20')](_0x512fc2[_0x1d29('0x1a')]['include'],function(_0x474bda){return{'model':db[_0x474bda['model']],'as':_0x474bda['as'],'attributes':_0x474bda[_0x1d29('0x1d')],'include':_0x474bda['include']?_[_0x1d29('0x20')](_0x474bda['include'],function(_0x494886){return{'model':db[_0x494886[_0x1d29('0x21')]],'as':_0x494886['as'],'attributes':_0x494886[_0x1d29('0x1d')],'include':_0x494886['include']?_[_0x1d29('0x20')](_0x494886[_0x1d29('0x1f')],function(_0x47f2a9){return{'model':db[_0x47f2a9[_0x1d29('0x21')]],'as':_0x47f2a9['as'],'attributes':_0x47f2a9[_0x1d29('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x1d29('0xd')](function(_0x37365d){logger[_0x1d29('0x16')](_0x1d29('0x22'),_0x512fc2);logger[_0x1d29('0x10')](_0x1d29('0x22'),_0x512fc2,JSON[_0x1d29('0x12')](_0x37365d));_0x4abaa2(_0x37365d);})['catch'](function(_0x2259cf){logger[_0x1d29('0x13')]('GetTemplate',_0x2259cf[_0x1d29('0x15')],_0x512fc2);_0x603f48(_0x525554[_0x1d29('0x13')](0x1f4,_0x2259cf[_0x1d29('0x15')]));});});};
\ No newline at end of file
+var _0x7749=['then','GetTemplate','catch','lodash','util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','Template,\x20%s,\x20%s','debug','Template,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','Template','findAll','options','raw','where','attributes','limit','include','map','model'];(function(_0x2cc05b,_0x10af47){var _0x1a1dd3=function(_0x4face3){while(--_0x4face3){_0x2cc05b['push'](_0x2cc05b['shift']());}};_0x1a1dd3(++_0x10af47);}(_0x7749,0x183));var _0x9774=function(_0x2aaac2,_0x313a75){_0x2aaac2=_0x2aaac2-0x0;var _0x5e0a23=_0x7749[_0x2aaac2];return _0x5e0a23;};'use strict';var _=require(_0x9774('0x0'));var util=require(_0x9774('0x1'));var moment=require('moment');var BPromise=require(_0x9774('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x9774('0x3'));var logger=require(_0x9774('0x4'))(_0x9774('0x5'));var config=require(_0x9774('0x6'));var jayson=require(_0x9774('0x7'));var client=jayson[_0x9774('0x8')][_0x9774('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xedcf8b,_0x28bdc9,_0x58e114){return new BPromise(function(_0x5ba4b4,_0x3a76c3){return client['request'](_0xedcf8b,_0x58e114)['then'](function(_0x599795){logger[_0x9774('0xa')](_0x9774('0xb'),_0x28bdc9,'request\x20sent');logger[_0x9774('0xc')](_0x9774('0xd'),_0x28bdc9,_0x9774('0xe'),JSON[_0x9774('0xf')](_0x599795));if(_0x599795[_0x9774('0x10')]){if(_0x599795['error']['code']===0x1f4){logger[_0x9774('0x10')]('Template,\x20%s,\x20%s',_0x28bdc9,_0x599795[_0x9774('0x10')][_0x9774('0x11')]);return _0x3a76c3(_0x599795[_0x9774('0x10')]['message']);}logger[_0x9774('0x10')]('Template,\x20%s,\x20%s',_0x28bdc9,_0x599795[_0x9774('0x10')][_0x9774('0x11')]);return _0x5ba4b4(_0x599795[_0x9774('0x10')][_0x9774('0x11')]);}else{logger['info'](_0x9774('0xb'),_0x28bdc9,_0x9774('0xe'));_0x5ba4b4(_0x599795[_0x9774('0x12')][_0x9774('0x11')]);}})['catch'](function(_0x29dcbf){logger[_0x9774('0x10')](_0x9774('0xb'),_0x28bdc9,_0x29dcbf);_0x3a76c3(_0x29dcbf);});});}exports['GetTemplate']=function(_0x12a2ff){var _0x3a801d=this;return new Promise(function(_0x3960cd,_0x166f8e){return db[_0x9774('0x13')][_0x9774('0x14')]({'raw':_0x12a2ff[_0x9774('0x15')]?_0x12a2ff['options'][_0x9774('0x16')]===undefined?!![]:![]:!![],'where':_0x12a2ff['options']?_0x12a2ff[_0x9774('0x15')][_0x9774('0x17')]||null:null,'attributes':_0x12a2ff['options']?_0x12a2ff[_0x9774('0x15')][_0x9774('0x18')]||null:null,'limit':_0x12a2ff['options']?_0x12a2ff['options'][_0x9774('0x19')]||null:null,'include':_0x12a2ff[_0x9774('0x15')]?_0x12a2ff['options'][_0x9774('0x1a')]?_[_0x9774('0x1b')](_0x12a2ff[_0x9774('0x15')]['include'],function(_0x1ffb57){return{'model':db[_0x1ffb57[_0x9774('0x1c')]],'as':_0x1ffb57['as'],'attributes':_0x1ffb57[_0x9774('0x18')],'include':_0x1ffb57['include']?_['map'](_0x1ffb57[_0x9774('0x1a')],function(_0x5a3cdc){return{'model':db[_0x5a3cdc[_0x9774('0x1c')]],'as':_0x5a3cdc['as'],'attributes':_0x5a3cdc[_0x9774('0x18')],'include':_0x5a3cdc[_0x9774('0x1a')]?_['map'](_0x5a3cdc[_0x9774('0x1a')],function(_0x220305){return{'model':db[_0x220305['model']],'as':_0x220305['as'],'attributes':_0x220305[_0x9774('0x18')]};}):[]};}):[]};}):[]:[]})[_0x9774('0x1d')](function(_0x1d1d6d){logger[_0x9774('0xa')](_0x9774('0x1e'),_0x12a2ff);logger[_0x9774('0xc')](_0x9774('0x1e'),_0x12a2ff,JSON[_0x9774('0xf')](_0x1d1d6d));_0x3960cd(_0x1d1d6d);})[_0x9774('0x1f')](function(_0x4b86c9){logger['error'](_0x9774('0x1e'),_0x4b86c9[_0x9774('0x11')],_0x12a2ff);_0x166f8e(_0x3a801d[_0x9774('0x10')](0x1f4,_0x4b86c9['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac0c=['addAnyCondition','addAction','put','delete','exports','util','express','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','/:id','show','/:id/all_conditions','getAllConditions','/:id/any_conditions','getAnyConditions','/:id/actions','getActions','post','create'];(function(_0x4803d9,_0x1c8142){var _0x2d2f0f=function(_0x53b959){while(--_0x53b959){_0x4803d9['push'](_0x4803d9['shift']());}};_0x2d2f0f(++_0x1c8142);}(_0xac0c,0xd4));var _0xcac0=function(_0x461eaa,_0x5b9604){_0x461eaa=_0x461eaa-0x0;var _0x3f2756=_0xac0c[_0x461eaa];return _0x3f2756;};'use strict';var multer=require('multer');var util=require(_0xcac0('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xcac0('0x1'));var router=express[_0xcac0('0x2')]();var fs_extra=require(_0xcac0('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xcac0('0x4'));var config=require('../../config/environment');var controller=require('./trigger.controller');router[_0xcac0('0x5')]('/',auth[_0xcac0('0x6')](),controller[_0xcac0('0x7')]);router[_0xcac0('0x5')](_0xcac0('0x8'),auth[_0xcac0('0x6')](),controller[_0xcac0('0x9')]);router[_0xcac0('0x5')](_0xcac0('0xa'),auth['isAuthenticated'](),controller[_0xcac0('0xb')]);router[_0xcac0('0x5')](_0xcac0('0xc'),auth[_0xcac0('0x6')](),controller[_0xcac0('0xd')]);router[_0xcac0('0x5')](_0xcac0('0xe'),auth[_0xcac0('0x6')](),controller[_0xcac0('0xf')]);router[_0xcac0('0x10')]('/',auth[_0xcac0('0x6')](),controller[_0xcac0('0x11')]);router[_0xcac0('0x10')]('/:id/all_conditions',auth[_0xcac0('0x6')](),controller['addAllCondition']);router['post']('/:id/any_conditions',auth[_0xcac0('0x6')](),controller[_0xcac0('0x12')]);router[_0xcac0('0x10')]('/:id/actions',auth[_0xcac0('0x6')](),controller[_0xcac0('0x13')]);router[_0xcac0('0x14')](_0xcac0('0x8'),auth[_0xcac0('0x6')](),controller['update']);router[_0xcac0('0x15')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xcac0('0x16')]=router;
\ No newline at end of file
+var _0xebc0=['isAuthenticated','show','getAllConditions','get','/:id/any_conditions','/:id/actions','getActions','post','create','/:id/all_conditions','addAllCondition','addAnyCondition','addAction','put','/:id','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./trigger.controller','index'];(function(_0x5b561d,_0x422b7c){var _0x431060=function(_0x401409){while(--_0x401409){_0x5b561d['push'](_0x5b561d['shift']());}};_0x431060(++_0x422b7c);}(_0xebc0,0xe5));var _0x0ebc=function(_0x49d848,_0x450be6){_0x49d848=_0x49d848-0x0;var _0x5349e4=_0xebc0[_0x49d848];return _0x5349e4;};'use strict';var multer=require(_0x0ebc('0x0'));var util=require(_0x0ebc('0x1'));var path=require(_0x0ebc('0x2'));var timeout=require('connect-timeout');var express=require(_0x0ebc('0x3'));var router=express[_0x0ebc('0x4')]();var fs_extra=require(_0x0ebc('0x5'));var auth=require(_0x0ebc('0x6'));var interaction=require(_0x0ebc('0x7'));var config=require(_0x0ebc('0x8'));var controller=require(_0x0ebc('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x0ebc('0xa')]);router['get']('/:id',auth[_0x0ebc('0xb')](),controller[_0x0ebc('0xc')]);router['get']('/:id/all_conditions',auth['isAuthenticated'](),controller[_0x0ebc('0xd')]);router[_0x0ebc('0xe')](_0x0ebc('0xf'),auth[_0x0ebc('0xb')](),controller['getAnyConditions']);router[_0x0ebc('0xe')](_0x0ebc('0x10'),auth[_0x0ebc('0xb')](),controller[_0x0ebc('0x11')]);router[_0x0ebc('0x12')]('/',auth[_0x0ebc('0xb')](),controller[_0x0ebc('0x13')]);router[_0x0ebc('0x12')](_0x0ebc('0x14'),auth[_0x0ebc('0xb')](),controller[_0x0ebc('0x15')]);router[_0x0ebc('0x12')]('/:id/any_conditions',auth[_0x0ebc('0xb')](),controller[_0x0ebc('0x16')]);router[_0x0ebc('0x12')](_0x0ebc('0x10'),auth[_0x0ebc('0xb')](),controller[_0x0ebc('0x17')]);router[_0x0ebc('0x18')](_0x0ebc('0x19'),auth[_0x0ebc('0xb')](),controller[_0x0ebc('0x1a')]);router[_0x0ebc('0x1b')](_0x0ebc('0x19'),auth['isAuthenticated'](),controller[_0x0ebc('0x1c')]);module[_0x0ebc('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53d8=['BOOLEAN','exports','STRING'];(function(_0x2a6809,_0x44edde){var _0x11c371=function(_0x1a4888){while(--_0x1a4888){_0x2a6809['push'](_0x2a6809['shift']());}};_0x11c371(++_0x44edde);}(_0x53d8,0x100));var _0x853d=function(_0x79029,_0x5cc182){_0x79029=_0x79029-0x0;var _0x32dbb9=_0x53d8[_0x79029];return _0x32dbb9;};'use strict';var Sequelize=require('sequelize');module[_0x853d('0x0')]={'name':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x853d('0x1')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize[_0x853d('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0x4569=['BOOLEAN','sequelize','exports','STRING'];(function(_0x30fb21,_0x5bd7eb){var _0x3a7aab=function(_0x1a45ee){while(--_0x1a45ee){_0x30fb21['push'](_0x30fb21['shift']());}};_0x3a7aab(++_0x5bd7eb);}(_0x4569,0xed));var _0x9456=function(_0x182277,_0x3f1d29){_0x182277=_0x182277-0x0;var _0x283c7b=_0x4569[_0x182277];return _0x283c7b;};'use strict';var Sequelize=require(_0x9456('0x0'));module[_0x9456('0x1')]={'name':{'type':Sequelize[_0x9456('0x2')]},'channel':{'type':Sequelize[_0x9456('0x2')]},'description':{'type':Sequelize[_0x9456('0x2')]},'status':{'type':Sequelize[_0x9456('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6357=['fieldName','type','query','keys','filters','intersection','model','attributes','fields','limit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','length','include','create','body','user','role','Triggers','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addAllCondition','TriggerAllId','Condition','addAnyCondition','getAllConditions','nolimit','getAnyConditions','hasOwnProperty','addAction','TriggerId','Action','getActions','findOne','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','count','set','Content-Range','reject','save','update','then','destroy','get','name','send','map','Trigger','rawAttributes'];(function(_0x20fb40,_0x37e7f){var _0x595b48=function(_0x3dc818){while(--_0x3dc818){_0x20fb40['push'](_0x20fb40['shift']());}};_0x595b48(++_0x37e7f);}(_0x6357,0x14d));var _0x7635=function(_0x19288f,_0x593b58){_0x19288f=_0x19288f-0x0;var _0x280b73=_0x6357[_0x19288f];return _0x280b73;};'use strict';var emlformat=require(_0x7635('0x0'));var rimraf=require(_0x7635('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7635('0x2'));var rp=require(_0x7635('0x3'));var moment=require(_0x7635('0x4'));var BPromise=require(_0x7635('0x5'));var Mustache=require(_0x7635('0x6'));var util=require(_0x7635('0x7'));var path=require('path');var sox=require(_0x7635('0x8'));var csv=require(_0x7635('0x9'));var ejs=require(_0x7635('0xa'));var fs=require('fs');var fs_extra=require(_0x7635('0xb'));var _=require('lodash');var squel=require(_0x7635('0xc'));var crypto=require(_0x7635('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x7635('0xe'));var toCsv=require(_0x7635('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x7635('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7635('0x10'));var as=require(_0x7635('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7635('0x12'))(_0x7635('0x13'));var utils=require(_0x7635('0x14'));var config=require(_0x7635('0x15'));var licenseUtil=require(_0x7635('0x16'));var db=require(_0x7635('0x17'))['db'];function respondWithStatusCode(_0x253654,_0xb3fab0){_0xb3fab0=_0xb3fab0||0xcc;return function(_0x226fbb){if(_0x226fbb){return _0x253654[_0x7635('0x18')](_0xb3fab0);}return _0x253654['status'](_0xb3fab0)[_0x7635('0x19')]();};}function respondWithResult(_0x153b7f,_0x4c7586){_0x4c7586=_0x4c7586||0xc8;return function(_0x2e413f){if(_0x2e413f){return _0x153b7f[_0x7635('0x1a')](_0x4c7586)['json'](_0x2e413f);}};}function respondWithFilteredResult(_0x19925e,_0x18fff5){return function(_0x1bbc5b){if(_0x1bbc5b){var _0xd59fb6=typeof _0x18fff5[_0x7635('0x1b')]===_0x7635('0x1c')&&typeof _0x18fff5['limit']===_0x7635('0x1c');var _0x42894a=_0x1bbc5b['count'];var _0x3d6c3a=_0xd59fb6?0x0:_0x18fff5['offset'];var _0x1108aa=_0xd59fb6?_0x1bbc5b[_0x7635('0x1d')]:_0x18fff5[_0x7635('0x1b')]+_0x18fff5['limit'];var _0x55d3f9;if(_0x1108aa>=_0x42894a){_0x1108aa=_0x42894a;_0x55d3f9=0xc8;}else{_0x55d3f9=0xce;}_0x19925e[_0x7635('0x1a')](_0x55d3f9);return _0x19925e[_0x7635('0x1e')](_0x7635('0x1f'),_0x3d6c3a+'-'+_0x1108aa+'/'+_0x42894a)['json'](_0x1bbc5b);}return null;};}function patchUpdates(_0x2a9810){return function(_0x3b047f){try{jsonpatch['apply'](_0x3b047f,_0x2a9810,!![]);}catch(_0x9edd){return BPromise[_0x7635('0x20')](_0x9edd);}return _0x3b047f[_0x7635('0x21')]();};}function saveUpdates(_0xb4d745,_0x427cbd){return function(_0x46ab0f){if(_0x46ab0f){return _0x46ab0f[_0x7635('0x22')](_0xb4d745)[_0x7635('0x23')](function(_0x111372){return _0x111372;});}return null;};}function removeEntity(_0x423230,_0x19504f){return function(_0x20a0d8){if(_0x20a0d8){return _0x20a0d8[_0x7635('0x24')]()['then'](function(){var _0x5e2052=_0x20a0d8[_0x7635('0x25')]({'plain':!![]});var _0x3e007f='Triggers';return db['UserProfileResource'][_0x7635('0x24')]({'where':{'type':_0x3e007f,'resourceId':_0x5e2052['id']}})['then'](function(){return _0x20a0d8;});})['then'](function(){_0x423230[_0x7635('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2be12a,_0x2554cb){return function(_0x164a1e){if(!_0x164a1e){_0x2be12a[_0x7635('0x18')](0x194);}return _0x164a1e;};}function handleError(_0xf8b615,_0x3ab450){_0x3ab450=_0x3ab450||0x1f4;return function(_0x598759){logger['error'](_0x598759['stack']);if(_0x598759['name']){delete _0x598759[_0x7635('0x26')];}_0xf8b615['status'](_0x3ab450)[_0x7635('0x27')](_0x598759);};}exports['index']=function(_0x3803fb,_0x2a9085){var _0x24adb4={},_0x2f6bd7={},_0x243250={'count':0x0,'rows':[]};var _0x21624f=_[_0x7635('0x28')](db[_0x7635('0x29')][_0x7635('0x2a')],function(_0x248186){return{'name':_0x248186[_0x7635('0x2b')],'type':_0x248186[_0x7635('0x2c')]['key']};});_0x2f6bd7['model']=_[_0x7635('0x28')](_0x21624f,'name');_0x2f6bd7[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0x3803fb['query']);_0x2f6bd7[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x2f6bd7[_0x7635('0x31')],_0x2f6bd7['query']);_0x24adb4[_0x7635('0x32')]=_[_0x7635('0x30')](_0x2f6bd7['model'],qs[_0x7635('0x33')](_0x3803fb[_0x7635('0x2d')]['fields']));_0x24adb4[_0x7635('0x32')]=_0x24adb4[_0x7635('0x32')]['length']?_0x24adb4[_0x7635('0x32')]:_0x2f6bd7[_0x7635('0x31')];if(!_0x3803fb[_0x7635('0x2d')]['hasOwnProperty']('nolimit')){_0x24adb4[_0x7635('0x34')]=qs[_0x7635('0x34')](_0x3803fb['query'][_0x7635('0x34')]);_0x24adb4[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0x3803fb[_0x7635('0x2d')][_0x7635('0x1b')]);}_0x24adb4[_0x7635('0x35')]=qs[_0x7635('0x36')](_0x3803fb[_0x7635('0x2d')][_0x7635('0x36')]);_0x24adb4['where']=qs[_0x7635('0x2f')](_[_0x7635('0x37')](_0x3803fb[_0x7635('0x2d')],_0x2f6bd7[_0x7635('0x2f')]),_0x21624f);if(_0x3803fb[_0x7635('0x2d')][_0x7635('0x38')]){_0x24adb4[_0x7635('0x39')]=_['merge'](_0x24adb4[_0x7635('0x39')],{'$or':_[_0x7635('0x28')](_0x21624f,function(_0x100864){if(_0x100864[_0x7635('0x2c')]!==_0x7635('0x3a')){var _0x528a0d={};_0x528a0d[_0x100864['name']]={'$like':'%'+_0x3803fb[_0x7635('0x2d')]['filter']+'%'};return _0x528a0d;}})});}_0x24adb4=_[_0x7635('0x3b')]({},_0x24adb4,_0x3803fb[_0x7635('0x3c')]);var _0x140c9e={'where':_0x24adb4[_0x7635('0x39')]};return db[_0x7635('0x29')]['count'](_0x140c9e)[_0x7635('0x23')](function(_0x2f09db){_0x243250['count']=_0x2f09db;if(_0x3803fb[_0x7635('0x2d')][_0x7635('0x3d')]){_0x24adb4['include']=[{'all':!![]}];}return db[_0x7635('0x29')][_0x7635('0x3e')](_0x24adb4);})['then'](function(_0xf8e1ff){_0x243250[_0x7635('0x3f')]=_0xf8e1ff;return _0x243250;})[_0x7635('0x23')](respondWithFilteredResult(_0x2a9085,_0x24adb4))[_0x7635('0x40')](handleError(_0x2a9085,null));};exports[_0x7635('0x41')]=function(_0x255eb1,_0x1c98c9){var _0x4f3b81={'raw':![],'where':{'id':_0x255eb1[_0x7635('0x42')]['id']}},_0x3764f4={};_0x3764f4[_0x7635('0x31')]=_[_0x7635('0x2e')](db[_0x7635('0x29')][_0x7635('0x2a')]);_0x3764f4[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0x255eb1['query']);_0x3764f4[_0x7635('0x2f')]=_['intersection'](_0x3764f4['model'],_0x3764f4['query']);_0x4f3b81[_0x7635('0x32')]=_['intersection'](_0x3764f4[_0x7635('0x31')],qs[_0x7635('0x33')](_0x255eb1[_0x7635('0x2d')][_0x7635('0x33')]));_0x4f3b81[_0x7635('0x32')]=_0x4f3b81['attributes'][_0x7635('0x43')]?_0x4f3b81[_0x7635('0x32')]:_0x3764f4['model'];if(_0x255eb1['query'][_0x7635('0x3d')]){_0x4f3b81[_0x7635('0x44')]=[{'all':!![]}];}_0x4f3b81=_[_0x7635('0x3b')]({},_0x4f3b81,_0x255eb1[_0x7635('0x3c')]);return db[_0x7635('0x29')]['find'](_0x4f3b81)[_0x7635('0x23')](handleEntityNotFound(_0x1c98c9,null))['then'](respondWithResult(_0x1c98c9,null))[_0x7635('0x40')](handleError(_0x1c98c9,null));};exports[_0x7635('0x45')]=function(_0xeb110c,_0x437c79){return db['Trigger'][_0x7635('0x45')](_0xeb110c[_0x7635('0x46')],{})[_0x7635('0x23')](function(_0x5e24ee){var _0x3902dd=_0xeb110c[_0x7635('0x47')][_0x7635('0x25')]({'plain':!![]});if(!_0x3902dd)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3902dd[_0x7635('0x48')]==='user'){var _0x3ae218=_0x5e24ee[_0x7635('0x25')]({'plain':!![]});var _0x5d4e70=_0x7635('0x49');return db[_0x7635('0x4a')][_0x7635('0x4b')]({'where':{'name':_0x5d4e70,'userProfileId':_0x3902dd[_0x7635('0x4c')]},'raw':!![]})[_0x7635('0x23')](function(_0xac65ca){if(_0xac65ca&&_0xac65ca[_0x7635('0x4d')]===0x0){return db[_0x7635('0x4e')][_0x7635('0x45')]({'name':_0x3ae218[_0x7635('0x26')],'resourceId':_0x3ae218['id'],'type':_0xac65ca[_0x7635('0x26')],'sectionId':_0xac65ca['id']},{})[_0x7635('0x23')](function(){return _0x5e24ee;});}else{return _0x5e24ee;}})['catch'](function(_0x2257e4){logger[_0x7635('0x4f')](_0x7635('0x50'),_0x2257e4);throw _0x2257e4;});}return _0x5e24ee;})[_0x7635('0x23')](respondWithResult(_0x437c79,0xc9))[_0x7635('0x40')](handleError(_0x437c79,null));};exports[_0x7635('0x22')]=function(_0x23c245,_0x4631e1){if(_0x23c245[_0x7635('0x46')]['id']){delete _0x23c245[_0x7635('0x46')]['id'];}return db[_0x7635('0x29')]['find']({'where':{'id':_0x23c245[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x4631e1,null))[_0x7635('0x23')](saveUpdates(_0x23c245[_0x7635('0x46')],null))[_0x7635('0x23')](respondWithResult(_0x4631e1,null))[_0x7635('0x40')](handleError(_0x4631e1,null));};exports[_0x7635('0x24')]=function(_0x335e56,_0x186218){return db['Trigger'][_0x7635('0x4b')]({'where':{'id':_0x335e56[_0x7635('0x42')]['id']}})['then'](handleEntityNotFound(_0x186218,null))['then'](removeEntity(_0x186218,null))[_0x7635('0x40')](handleError(_0x186218,null));};exports[_0x7635('0x51')]=function(_0x535e1,_0x1447da,_0x50f941){if(_0x535e1['body']['id']){delete _0x535e1[_0x7635('0x46')]['id'];}return db[_0x7635('0x29')]['find']({'where':{'id':_0x535e1[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x1447da,null))[_0x7635('0x23')](function(_0x2db1ab){if(_0x2db1ab){_0x535e1[_0x7635('0x46')][_0x7635('0x52')]=_0x2db1ab['id'];return db[_0x7635('0x53')][_0x7635('0x45')](_0x535e1[_0x7635('0x46')]);}})[_0x7635('0x23')](respondWithResult(_0x1447da,null))[_0x7635('0x40')](handleError(_0x1447da,null));};exports[_0x7635('0x54')]=function(_0x1a10b6,_0x478767,_0x25cf21){if(_0x1a10b6[_0x7635('0x46')]['id']){delete _0x1a10b6[_0x7635('0x46')]['id'];}return db['Trigger'][_0x7635('0x4b')]({'where':{'id':_0x1a10b6[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x478767,null))[_0x7635('0x23')](function(_0x1b652e){if(_0x1b652e){_0x1a10b6[_0x7635('0x46')]['TriggerAnyId']=_0x1b652e['id'];return db[_0x7635('0x53')]['create'](_0x1a10b6[_0x7635('0x46')]);}})[_0x7635('0x23')](respondWithResult(_0x478767,null))[_0x7635('0x40')](handleError(_0x478767,null));};exports[_0x7635('0x55')]=function(_0x554949,_0x259004,_0x1cff05){var _0x5199df={};var _0x42e8a7={};var _0x2c44dd;var _0x3f4890;return db[_0x7635('0x29')]['findOne']({'where':{'id':_0x554949[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x259004,null))[_0x7635('0x23')](function(_0x1006f7){if(_0x1006f7){_0x2c44dd=_0x1006f7;_0x42e8a7['model']=_[_0x7635('0x2e')](db[_0x7635('0x53')][_0x7635('0x2a')]);_0x42e8a7[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0x554949[_0x7635('0x2d')]);_0x42e8a7[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x42e8a7['model'],_0x42e8a7[_0x7635('0x2d')]);_0x5199df['attributes']=_[_0x7635('0x30')](_0x42e8a7[_0x7635('0x31')],qs[_0x7635('0x33')](_0x554949[_0x7635('0x2d')][_0x7635('0x33')]));_0x5199df[_0x7635('0x32')]=_0x5199df[_0x7635('0x32')][_0x7635('0x43')]?_0x5199df[_0x7635('0x32')]:_0x42e8a7[_0x7635('0x31')];_0x5199df['order']=qs['sort'](_0x554949[_0x7635('0x2d')][_0x7635('0x36')]);_0x5199df[_0x7635('0x39')]=qs[_0x7635('0x2f')](_[_0x7635('0x37')](_0x554949[_0x7635('0x2d')],_0x42e8a7[_0x7635('0x2f')]));if(_0x554949[_0x7635('0x2d')][_0x7635('0x38')]){_0x5199df[_0x7635('0x39')]=_['merge'](_0x5199df['where'],{'$or':_['map'](_0x5199df[_0x7635('0x32')],function(_0x3f9951){var _0x78d947={};_0x78d947[_0x3f9951]={'$like':'%'+_0x554949[_0x7635('0x2d')][_0x7635('0x38')]+'%'};return _0x78d947;})});}_0x5199df=_[_0x7635('0x3b')]({},_0x5199df,_0x554949[_0x7635('0x3c')]);return _0x2c44dd[_0x7635('0x55')](_0x5199df);}})[_0x7635('0x23')](function(_0x1f449d){if(_0x1f449d){_0x3f4890=_0x1f449d['length'];if(!_0x554949[_0x7635('0x2d')]['hasOwnProperty'](_0x7635('0x56'))){_0x5199df[_0x7635('0x34')]=qs[_0x7635('0x34')](_0x554949[_0x7635('0x2d')][_0x7635('0x34')]);_0x5199df[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0x554949[_0x7635('0x2d')][_0x7635('0x1b')]);}return _0x2c44dd[_0x7635('0x55')](_0x5199df);}})[_0x7635('0x23')](function(_0x1c08fa){if(_0x1c08fa){return _0x1c08fa?{'count':_0x3f4890,'rows':_0x1c08fa}:null;}})[_0x7635('0x23')](respondWithResult(_0x259004,null))[_0x7635('0x40')](handleError(_0x259004,null));};exports['getAnyConditions']=function(_0x43194a,_0x5c1391,_0x4675d4){var _0x9a116a={};var _0x28dd41={};var _0x17e5aa;var _0x3c8b3c;return db[_0x7635('0x29')]['findOne']({'where':{'id':_0x43194a['params']['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x5c1391,null))['then'](function(_0x5404e4){if(_0x5404e4){_0x17e5aa=_0x5404e4;_0x28dd41[_0x7635('0x31')]=_[_0x7635('0x2e')](db[_0x7635('0x53')][_0x7635('0x2a')]);_0x28dd41['query']=_[_0x7635('0x2e')](_0x43194a[_0x7635('0x2d')]);_0x28dd41[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x28dd41[_0x7635('0x31')],_0x28dd41['query']);_0x9a116a[_0x7635('0x32')]=_[_0x7635('0x30')](_0x28dd41['model'],qs['fields'](_0x43194a[_0x7635('0x2d')][_0x7635('0x33')]));_0x9a116a[_0x7635('0x32')]=_0x9a116a[_0x7635('0x32')]['length']?_0x9a116a[_0x7635('0x32')]:_0x28dd41['model'];_0x9a116a['order']=qs['sort'](_0x43194a[_0x7635('0x2d')][_0x7635('0x36')]);_0x9a116a[_0x7635('0x39')]=qs[_0x7635('0x2f')](_['pick'](_0x43194a[_0x7635('0x2d')],_0x28dd41['filters']));if(_0x43194a[_0x7635('0x2d')][_0x7635('0x38')]){_0x9a116a[_0x7635('0x39')]=_[_0x7635('0x3b')](_0x9a116a['where'],{'$or':_[_0x7635('0x28')](_0x9a116a[_0x7635('0x32')],function(_0x16b0c5){var _0x3e6458={};_0x3e6458[_0x16b0c5]={'$like':'%'+_0x43194a[_0x7635('0x2d')][_0x7635('0x38')]+'%'};return _0x3e6458;})});}_0x9a116a=_['merge']({},_0x9a116a,_0x43194a['options']);return _0x17e5aa[_0x7635('0x57')](_0x9a116a);}})[_0x7635('0x23')](function(_0x9a7ebe){if(_0x9a7ebe){_0x3c8b3c=_0x9a7ebe[_0x7635('0x43')];if(!_0x43194a[_0x7635('0x2d')][_0x7635('0x58')](_0x7635('0x56'))){_0x9a116a[_0x7635('0x34')]=qs['limit'](_0x43194a[_0x7635('0x2d')]['limit']);_0x9a116a[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0x43194a[_0x7635('0x2d')][_0x7635('0x1b')]);}return _0x17e5aa[_0x7635('0x57')](_0x9a116a);}})[_0x7635('0x23')](function(_0x681acb){if(_0x681acb){return _0x681acb?{'count':_0x3c8b3c,'rows':_0x681acb}:null;}})[_0x7635('0x23')](respondWithResult(_0x5c1391,null))[_0x7635('0x40')](handleError(_0x5c1391,null));};exports[_0x7635('0x59')]=function(_0x115560,_0xc2b6b9,_0x2bb04b){if(_0x115560[_0x7635('0x46')]['id']){delete _0x115560['body']['id'];}return db[_0x7635('0x29')][_0x7635('0x4b')]({'where':{'id':_0x115560[_0x7635('0x42')]['id']}})['then'](handleEntityNotFound(_0xc2b6b9,null))['then'](function(_0x1ec6eb){if(_0x1ec6eb){_0x115560[_0x7635('0x46')][_0x7635('0x5a')]=_0x1ec6eb['id'];return db[_0x7635('0x5b')][_0x7635('0x45')](_0x115560[_0x7635('0x46')]);}})[_0x7635('0x23')](respondWithResult(_0xc2b6b9,null))[_0x7635('0x40')](handleError(_0xc2b6b9,null));};exports[_0x7635('0x5c')]=function(_0xcf47ac,_0x972927,_0x59ec0a){var _0xe78b6d={};var _0x23417e={};var _0x3a2c1c;var _0x39c28c;return db['Trigger'][_0x7635('0x5d')]({'where':{'id':_0xcf47ac[_0x7635('0x42')]['id']}})['then'](handleEntityNotFound(_0x972927,null))[_0x7635('0x23')](function(_0x417847){if(_0x417847){_0x3a2c1c=_0x417847;_0x23417e['model']=_[_0x7635('0x2e')](db[_0x7635('0x5b')][_0x7635('0x2a')]);_0x23417e[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0xcf47ac[_0x7635('0x2d')]);_0x23417e[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x23417e[_0x7635('0x31')],_0x23417e['query']);_0xe78b6d[_0x7635('0x32')]=_[_0x7635('0x30')](_0x23417e[_0x7635('0x31')],qs[_0x7635('0x33')](_0xcf47ac[_0x7635('0x2d')]['fields']));_0xe78b6d[_0x7635('0x32')]=_0xe78b6d[_0x7635('0x32')][_0x7635('0x43')]?_0xe78b6d['attributes']:_0x23417e[_0x7635('0x31')];_0xe78b6d[_0x7635('0x35')]=qs['sort'](_0xcf47ac[_0x7635('0x2d')][_0x7635('0x36')]);_0xe78b6d[_0x7635('0x39')]=qs['filters'](_[_0x7635('0x37')](_0xcf47ac['query'],_0x23417e['filters']));if(_0xcf47ac[_0x7635('0x2d')][_0x7635('0x38')]){_0xe78b6d[_0x7635('0x39')]=_[_0x7635('0x3b')](_0xe78b6d[_0x7635('0x39')],{'$or':_[_0x7635('0x28')](_0xe78b6d[_0x7635('0x32')],function(_0x5cdbc2){var _0x46ea7d={};_0x46ea7d[_0x5cdbc2]={'$like':'%'+_0xcf47ac[_0x7635('0x2d')]['filter']+'%'};return _0x46ea7d;})});}_0xe78b6d=_['merge']({},_0xe78b6d,_0xcf47ac[_0x7635('0x3c')]);return _0x3a2c1c[_0x7635('0x5c')](_0xe78b6d);}})[_0x7635('0x23')](function(_0x278ec3){if(_0x278ec3){_0x39c28c=_0x278ec3[_0x7635('0x43')];if(!_0xcf47ac[_0x7635('0x2d')][_0x7635('0x58')]('nolimit')){_0xe78b6d[_0x7635('0x34')]=qs[_0x7635('0x34')](_0xcf47ac[_0x7635('0x2d')][_0x7635('0x34')]);_0xe78b6d[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0xcf47ac[_0x7635('0x2d')][_0x7635('0x1b')]);}return _0x3a2c1c[_0x7635('0x5c')](_0xe78b6d);}})[_0x7635('0x23')](function(_0x30ea02){if(_0x30ea02){return _0x30ea02?{'count':_0x39c28c,'rows':_0x30ea02}:null;}})[_0x7635('0x23')](respondWithResult(_0x972927,null))[_0x7635('0x40')](handleError(_0x972927,null));};
\ No newline at end of file
+var _0xa1c4=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addAllCondition','TriggerAllId','Condition','TriggerAnyId','findOne','getAllConditions','getAnyConditions','addAction','Action','getActions','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','get','UserProfileResource','error','name','send','index','map','Trigger','fieldName','type','key','model','query','keys','intersection','attributes','length','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','fields','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation'];(function(_0x5d4490,_0x4a96e7){var _0x3bb882=function(_0x143f32){while(--_0x143f32){_0x5d4490['push'](_0x5d4490['shift']());}};_0x3bb882(++_0x4a96e7);}(_0xa1c4,0x1f2));var _0x4a1c=function(_0x50bf5a,_0x807bba){_0x50bf5a=_0x50bf5a-0x0;var _0x4ddc1d=_0xa1c4[_0x50bf5a];return _0x4ddc1d;};'use strict';var emlformat=require(_0x4a1c('0x0'));var rimraf=require(_0x4a1c('0x1'));var zipdir=require(_0x4a1c('0x2'));var jsonpatch=require(_0x4a1c('0x3'));var rp=require('request-promise');var moment=require(_0x4a1c('0x4'));var BPromise=require(_0x4a1c('0x5'));var Mustache=require(_0x4a1c('0x6'));var util=require('util');var path=require(_0x4a1c('0x7'));var sox=require(_0x4a1c('0x8'));var csv=require('to-csv');var ejs=require(_0x4a1c('0x9'));var fs=require('fs');var fs_extra=require(_0x4a1c('0xa'));var _=require(_0x4a1c('0xb'));var squel=require(_0x4a1c('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4a1c('0xd'));var toCsv=require(_0x4a1c('0xe'));var querystring=require(_0x4a1c('0xf'));var Papa=require(_0x4a1c('0x10'));var Redis=require(_0x4a1c('0x11'));var authService=require(_0x4a1c('0x12'));var qs=require(_0x4a1c('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4a1c('0x14'));var logger=require(_0x4a1c('0x15'))(_0x4a1c('0x16'));var utils=require(_0x4a1c('0x17'));var config=require(_0x4a1c('0x18'));var licenseUtil=require(_0x4a1c('0x19'));var db=require(_0x4a1c('0x1a'))['db'];function respondWithStatusCode(_0x19e537,_0x33ad2a){_0x33ad2a=_0x33ad2a||0xcc;return function(_0x2e772d){if(_0x2e772d){return _0x19e537[_0x4a1c('0x1b')](_0x33ad2a);}return _0x19e537[_0x4a1c('0x1c')](_0x33ad2a)[_0x4a1c('0x1d')]();};}function respondWithResult(_0x285643,_0x3f94d7){_0x3f94d7=_0x3f94d7||0xc8;return function(_0x1ae076){if(_0x1ae076){return _0x285643[_0x4a1c('0x1c')](_0x3f94d7)[_0x4a1c('0x1e')](_0x1ae076);}};}function respondWithFilteredResult(_0x482c8e,_0x3358f0){return function(_0x1baf17){if(_0x1baf17){var _0x528d8b=typeof _0x3358f0['offset']===_0x4a1c('0x1f')&&typeof _0x3358f0[_0x4a1c('0x20')]===_0x4a1c('0x1f');var _0xbede00=_0x1baf17[_0x4a1c('0x21')];var _0x5ccf91=_0x528d8b?0x0:_0x3358f0[_0x4a1c('0x22')];var _0x547efe=_0x528d8b?_0x1baf17['count']:_0x3358f0[_0x4a1c('0x22')]+_0x3358f0[_0x4a1c('0x20')];var _0x1590ab;if(_0x547efe>=_0xbede00){_0x547efe=_0xbede00;_0x1590ab=0xc8;}else{_0x1590ab=0xce;}_0x482c8e[_0x4a1c('0x1c')](_0x1590ab);return _0x482c8e[_0x4a1c('0x23')](_0x4a1c('0x24'),_0x5ccf91+'-'+_0x547efe+'/'+_0xbede00)[_0x4a1c('0x1e')](_0x1baf17);}return null;};}function patchUpdates(_0x9aad64){return function(_0x3a5fe9){try{jsonpatch['apply'](_0x3a5fe9,_0x9aad64,!![]);}catch(_0x55e558){return BPromise[_0x4a1c('0x25')](_0x55e558);}return _0x3a5fe9[_0x4a1c('0x26')]();};}function saveUpdates(_0x158c99,_0x34c02d){return function(_0x464803){if(_0x464803){return _0x464803[_0x4a1c('0x27')](_0x158c99)[_0x4a1c('0x28')](function(_0x4d43fc){return _0x4d43fc;});}return null;};}function removeEntity(_0xa8b543,_0x44ed5c){return function(_0x560282){if(_0x560282){return _0x560282[_0x4a1c('0x29')]()[_0x4a1c('0x28')](function(){var _0x2ac582=_0x560282[_0x4a1c('0x2a')]({'plain':!![]});var _0x56138b='Triggers';return db[_0x4a1c('0x2b')][_0x4a1c('0x29')]({'where':{'type':_0x56138b,'resourceId':_0x2ac582['id']}})[_0x4a1c('0x28')](function(){return _0x560282;});})['then'](function(){_0xa8b543['status'](0xcc)[_0x4a1c('0x1d')]();});}};}function handleEntityNotFound(_0x16878a,_0x17d015){return function(_0x8e5fe0){if(!_0x8e5fe0){_0x16878a[_0x4a1c('0x1b')](0x194);}return _0x8e5fe0;};}function handleError(_0x19c199,_0x2c83a6){_0x2c83a6=_0x2c83a6||0x1f4;return function(_0x1f11bb){logger[_0x4a1c('0x2c')](_0x1f11bb['stack']);if(_0x1f11bb[_0x4a1c('0x2d')]){delete _0x1f11bb[_0x4a1c('0x2d')];}_0x19c199[_0x4a1c('0x1c')](_0x2c83a6)[_0x4a1c('0x2e')](_0x1f11bb);};}exports[_0x4a1c('0x2f')]=function(_0x231bc7,_0x1299dc){var _0x47abf4={},_0x466c0d={},_0x101b7a={'count':0x0,'rows':[]};var _0x47bd96=_[_0x4a1c('0x30')](db[_0x4a1c('0x31')]['rawAttributes'],function(_0x53a541){return{'name':_0x53a541[_0x4a1c('0x32')],'type':_0x53a541[_0x4a1c('0x33')][_0x4a1c('0x34')]};});_0x466c0d[_0x4a1c('0x35')]=_[_0x4a1c('0x30')](_0x47bd96,_0x4a1c('0x2d'));_0x466c0d[_0x4a1c('0x36')]=_[_0x4a1c('0x37')](_0x231bc7[_0x4a1c('0x36')]);_0x466c0d['filters']=_[_0x4a1c('0x38')](_0x466c0d['model'],_0x466c0d[_0x4a1c('0x36')]);_0x47abf4[_0x4a1c('0x39')]=_[_0x4a1c('0x38')](_0x466c0d[_0x4a1c('0x35')],qs['fields'](_0x231bc7[_0x4a1c('0x36')]['fields']));_0x47abf4[_0x4a1c('0x39')]=_0x47abf4['attributes'][_0x4a1c('0x3a')]?_0x47abf4[_0x4a1c('0x39')]:_0x466c0d['model'];if(!_0x231bc7[_0x4a1c('0x36')]['hasOwnProperty'](_0x4a1c('0x3b'))){_0x47abf4[_0x4a1c('0x20')]=qs[_0x4a1c('0x20')](_0x231bc7['query'][_0x4a1c('0x20')]);_0x47abf4[_0x4a1c('0x22')]=qs[_0x4a1c('0x22')](_0x231bc7['query'][_0x4a1c('0x22')]);}_0x47abf4[_0x4a1c('0x3c')]=qs[_0x4a1c('0x3d')](_0x231bc7[_0x4a1c('0x36')][_0x4a1c('0x3d')]);_0x47abf4['where']=qs[_0x4a1c('0x3e')](_[_0x4a1c('0x3f')](_0x231bc7[_0x4a1c('0x36')],_0x466c0d[_0x4a1c('0x3e')]),_0x47bd96);if(_0x231bc7[_0x4a1c('0x36')][_0x4a1c('0x40')]){_0x47abf4[_0x4a1c('0x41')]=_[_0x4a1c('0x42')](_0x47abf4['where'],{'$or':_[_0x4a1c('0x30')](_0x47bd96,function(_0x2f36a8){if(_0x2f36a8[_0x4a1c('0x33')]!==_0x4a1c('0x43')){var _0x3b3264={};_0x3b3264[_0x2f36a8[_0x4a1c('0x2d')]]={'$like':'%'+_0x231bc7[_0x4a1c('0x36')][_0x4a1c('0x40')]+'%'};return _0x3b3264;}})});}_0x47abf4=_[_0x4a1c('0x42')]({},_0x47abf4,_0x231bc7[_0x4a1c('0x44')]);var _0x34392f={'where':_0x47abf4['where']};return db['Trigger']['count'](_0x34392f)['then'](function(_0x1ef6a6){_0x101b7a[_0x4a1c('0x21')]=_0x1ef6a6;if(_0x231bc7[_0x4a1c('0x36')][_0x4a1c('0x45')]){_0x47abf4[_0x4a1c('0x46')]=[{'all':!![]}];}return db[_0x4a1c('0x31')]['findAll'](_0x47abf4);})['then'](function(_0x4a37a5){_0x101b7a[_0x4a1c('0x47')]=_0x4a37a5;return _0x101b7a;})[_0x4a1c('0x28')](respondWithFilteredResult(_0x1299dc,_0x47abf4))[_0x4a1c('0x48')](handleError(_0x1299dc,null));};exports[_0x4a1c('0x49')]=function(_0x2635bb,_0x2641e1){var _0x1d917b={'raw':![],'where':{'id':_0x2635bb[_0x4a1c('0x4a')]['id']}},_0x34d8bc={};_0x34d8bc['model']=_[_0x4a1c('0x37')](db[_0x4a1c('0x31')][_0x4a1c('0x4b')]);_0x34d8bc['query']=_['keys'](_0x2635bb[_0x4a1c('0x36')]);_0x34d8bc[_0x4a1c('0x3e')]=_['intersection'](_0x34d8bc[_0x4a1c('0x35')],_0x34d8bc[_0x4a1c('0x36')]);_0x1d917b[_0x4a1c('0x39')]=_[_0x4a1c('0x38')](_0x34d8bc[_0x4a1c('0x35')],qs[_0x4a1c('0x4c')](_0x2635bb[_0x4a1c('0x36')][_0x4a1c('0x4c')]));_0x1d917b[_0x4a1c('0x39')]=_0x1d917b[_0x4a1c('0x39')][_0x4a1c('0x3a')]?_0x1d917b[_0x4a1c('0x39')]:_0x34d8bc[_0x4a1c('0x35')];if(_0x2635bb[_0x4a1c('0x36')][_0x4a1c('0x45')]){_0x1d917b[_0x4a1c('0x46')]=[{'all':!![]}];}_0x1d917b=_[_0x4a1c('0x42')]({},_0x1d917b,_0x2635bb['options']);return db[_0x4a1c('0x31')]['find'](_0x1d917b)['then'](handleEntityNotFound(_0x2641e1,null))[_0x4a1c('0x28')](respondWithResult(_0x2641e1,null))[_0x4a1c('0x48')](handleError(_0x2641e1,null));};exports[_0x4a1c('0x4d')]=function(_0x4273d9,_0x172770){return db[_0x4a1c('0x31')][_0x4a1c('0x4d')](_0x4273d9['body'],{})[_0x4a1c('0x28')](function(_0x5ca419){var _0x3620aa=_0x4273d9[_0x4a1c('0x4e')][_0x4a1c('0x2a')]({'plain':!![]});if(!_0x3620aa)throw new Error(_0x4a1c('0x4f'));if(_0x3620aa[_0x4a1c('0x50')]===_0x4a1c('0x4e')){var _0x297898=_0x5ca419[_0x4a1c('0x2a')]({'plain':!![]});var _0x3bddef='Triggers';return db['UserProfileSection'][_0x4a1c('0x51')]({'where':{'name':_0x3bddef,'userProfileId':_0x3620aa[_0x4a1c('0x52')]},'raw':!![]})['then'](function(_0x5b07d6){if(_0x5b07d6&&_0x5b07d6[_0x4a1c('0x53')]===0x0){return db[_0x4a1c('0x2b')][_0x4a1c('0x4d')]({'name':_0x297898['name'],'resourceId':_0x297898['id'],'type':_0x5b07d6[_0x4a1c('0x2d')],'sectionId':_0x5b07d6['id']},{})[_0x4a1c('0x28')](function(){return _0x5ca419;});}else{return _0x5ca419;}})[_0x4a1c('0x48')](function(_0x1223eb){logger['error'](_0x4a1c('0x54'),_0x1223eb);throw _0x1223eb;});}return _0x5ca419;})[_0x4a1c('0x28')](respondWithResult(_0x172770,0xc9))[_0x4a1c('0x48')](handleError(_0x172770,null));};exports['update']=function(_0x2b58f1,_0x3443de){if(_0x2b58f1['body']['id']){delete _0x2b58f1[_0x4a1c('0x55')]['id'];}return db['Trigger'][_0x4a1c('0x51')]({'where':{'id':_0x2b58f1['params']['id']}})[_0x4a1c('0x28')](handleEntityNotFound(_0x3443de,null))[_0x4a1c('0x28')](saveUpdates(_0x2b58f1[_0x4a1c('0x55')],null))[_0x4a1c('0x28')](respondWithResult(_0x3443de,null))[_0x4a1c('0x48')](handleError(_0x3443de,null));};exports[_0x4a1c('0x29')]=function(_0x14d5dc,_0x54d05c){return db[_0x4a1c('0x31')][_0x4a1c('0x51')]({'where':{'id':_0x14d5dc[_0x4a1c('0x4a')]['id']}})[_0x4a1c('0x28')](handleEntityNotFound(_0x54d05c,null))[_0x4a1c('0x28')](removeEntity(_0x54d05c,null))[_0x4a1c('0x48')](handleError(_0x54d05c,null));};exports[_0x4a1c('0x56')]=function(_0x5dd279,_0x2405e8,_0x32ab10){if(_0x5dd279[_0x4a1c('0x55')]['id']){delete _0x5dd279[_0x4a1c('0x55')]['id'];}return db['Trigger'][_0x4a1c('0x51')]({'where':{'id':_0x5dd279[_0x4a1c('0x4a')]['id']}})[_0x4a1c('0x28')](handleEntityNotFound(_0x2405e8,null))[_0x4a1c('0x28')](function(_0x462983){if(_0x462983){_0x5dd279['body'][_0x4a1c('0x57')]=_0x462983['id'];return db[_0x4a1c('0x58')][_0x4a1c('0x4d')](_0x5dd279['body']);}})[_0x4a1c('0x28')](respondWithResult(_0x2405e8,null))[_0x4a1c('0x48')](handleError(_0x2405e8,null));};exports['addAnyCondition']=function(_0x1315df,_0x446b35,_0x13e058){if(_0x1315df[_0x4a1c('0x55')]['id']){delete _0x1315df['body']['id'];}return db[_0x4a1c('0x31')][_0x4a1c('0x51')]({'where':{'id':_0x1315df[_0x4a1c('0x4a')]['id']}})[_0x4a1c('0x28')](handleEntityNotFound(_0x446b35,null))[_0x4a1c('0x28')](function(_0x108642){if(_0x108642){_0x1315df[_0x4a1c('0x55')][_0x4a1c('0x59')]=_0x108642['id'];return db[_0x4a1c('0x58')][_0x4a1c('0x4d')](_0x1315df[_0x4a1c('0x55')]);}})['then'](respondWithResult(_0x446b35,null))['catch'](handleError(_0x446b35,null));};exports['getAllConditions']=function(_0xdfc5ae,_0x1c7181,_0x5dacb4){var _0x210cf5={};var _0x13cb2c={};var _0x3253d9;var _0x35e7a5;return db['Trigger'][_0x4a1c('0x5a')]({'where':{'id':_0xdfc5ae[_0x4a1c('0x4a')]['id']}})[_0x4a1c('0x28')](handleEntityNotFound(_0x1c7181,null))[_0x4a1c('0x28')](function(_0x2b7147){if(_0x2b7147){_0x3253d9=_0x2b7147;_0x13cb2c[_0x4a1c('0x35')]=_[_0x4a1c('0x37')](db['Condition'][_0x4a1c('0x4b')]);_0x13cb2c['query']=_[_0x4a1c('0x37')](_0xdfc5ae[_0x4a1c('0x36')]);_0x13cb2c[_0x4a1c('0x3e')]=_[_0x4a1c('0x38')](_0x13cb2c[_0x4a1c('0x35')],_0x13cb2c[_0x4a1c('0x36')]);_0x210cf5[_0x4a1c('0x39')]=_[_0x4a1c('0x38')](_0x13cb2c[_0x4a1c('0x35')],qs[_0x4a1c('0x4c')](_0xdfc5ae[_0x4a1c('0x36')][_0x4a1c('0x4c')]));_0x210cf5[_0x4a1c('0x39')]=_0x210cf5[_0x4a1c('0x39')][_0x4a1c('0x3a')]?_0x210cf5[_0x4a1c('0x39')]:_0x13cb2c['model'];_0x210cf5['order']=qs[_0x4a1c('0x3d')](_0xdfc5ae[_0x4a1c('0x36')]['sort']);_0x210cf5['where']=qs['filters'](_[_0x4a1c('0x3f')](_0xdfc5ae['query'],_0x13cb2c[_0x4a1c('0x3e')]));if(_0xdfc5ae[_0x4a1c('0x36')][_0x4a1c('0x40')]){_0x210cf5[_0x4a1c('0x41')]=_['merge'](_0x210cf5[_0x4a1c('0x41')],{'$or':_['map'](_0x210cf5['attributes'],function(_0x373088){var _0x44fa00={};_0x44fa00[_0x373088]={'$like':'%'+_0xdfc5ae[_0x4a1c('0x36')][_0x4a1c('0x40')]+'%'};return _0x44fa00;})});}_0x210cf5=_[_0x4a1c('0x42')]({},_0x210cf5,_0xdfc5ae[_0x4a1c('0x44')]);return _0x3253d9[_0x4a1c('0x5b')](_0x210cf5);}})[_0x4a1c('0x28')](function(_0x269bcc){if(_0x269bcc){_0x35e7a5=_0x269bcc[_0x4a1c('0x3a')];if(!_0xdfc5ae[_0x4a1c('0x36')]['hasOwnProperty']('nolimit')){_0x210cf5[_0x4a1c('0x20')]=qs['limit'](_0xdfc5ae[_0x4a1c('0x36')][_0x4a1c('0x20')]);_0x210cf5[_0x4a1c('0x22')]=qs[_0x4a1c('0x22')](_0xdfc5ae[_0x4a1c('0x36')]['offset']);}return _0x3253d9[_0x4a1c('0x5b')](_0x210cf5);}})[_0x4a1c('0x28')](function(_0x26835c){if(_0x26835c){return _0x26835c?{'count':_0x35e7a5,'rows':_0x26835c}:null;}})[_0x4a1c('0x28')](respondWithResult(_0x1c7181,null))[_0x4a1c('0x48')](handleError(_0x1c7181,null));};exports[_0x4a1c('0x5c')]=function(_0x4efb0b,_0x220f84,_0x42b218){var _0x522695={};var _0x22ffd0={};var _0x5e1550;var _0x54d4e0;return db[_0x4a1c('0x31')][_0x4a1c('0x5a')]({'where':{'id':_0x4efb0b['params']['id']}})[_0x4a1c('0x28')](handleEntityNotFound(_0x220f84,null))[_0x4a1c('0x28')](function(_0x276c06){if(_0x276c06){_0x5e1550=_0x276c06;_0x22ffd0[_0x4a1c('0x35')]=_[_0x4a1c('0x37')](db[_0x4a1c('0x58')][_0x4a1c('0x4b')]);_0x22ffd0[_0x4a1c('0x36')]=_['keys'](_0x4efb0b[_0x4a1c('0x36')]);_0x22ffd0[_0x4a1c('0x3e')]=_[_0x4a1c('0x38')](_0x22ffd0[_0x4a1c('0x35')],_0x22ffd0['query']);_0x522695[_0x4a1c('0x39')]=_[_0x4a1c('0x38')](_0x22ffd0[_0x4a1c('0x35')],qs[_0x4a1c('0x4c')](_0x4efb0b[_0x4a1c('0x36')][_0x4a1c('0x4c')]));_0x522695[_0x4a1c('0x39')]=_0x522695['attributes']['length']?_0x522695[_0x4a1c('0x39')]:_0x22ffd0[_0x4a1c('0x35')];_0x522695[_0x4a1c('0x3c')]=qs[_0x4a1c('0x3d')](_0x4efb0b[_0x4a1c('0x36')][_0x4a1c('0x3d')]);_0x522695[_0x4a1c('0x41')]=qs[_0x4a1c('0x3e')](_[_0x4a1c('0x3f')](_0x4efb0b['query'],_0x22ffd0['filters']));if(_0x4efb0b[_0x4a1c('0x36')][_0x4a1c('0x40')]){_0x522695[_0x4a1c('0x41')]=_[_0x4a1c('0x42')](_0x522695[_0x4a1c('0x41')],{'$or':_[_0x4a1c('0x30')](_0x522695[_0x4a1c('0x39')],function(_0xf07095){var _0x3cd749={};_0x3cd749[_0xf07095]={'$like':'%'+_0x4efb0b[_0x4a1c('0x36')][_0x4a1c('0x40')]+'%'};return _0x3cd749;})});}_0x522695=_['merge']({},_0x522695,_0x4efb0b[_0x4a1c('0x44')]);return _0x5e1550[_0x4a1c('0x5c')](_0x522695);}})[_0x4a1c('0x28')](function(_0x267f84){if(_0x267f84){_0x54d4e0=_0x267f84[_0x4a1c('0x3a')];if(!_0x4efb0b[_0x4a1c('0x36')]['hasOwnProperty'](_0x4a1c('0x3b'))){_0x522695[_0x4a1c('0x20')]=qs[_0x4a1c('0x20')](_0x4efb0b[_0x4a1c('0x36')][_0x4a1c('0x20')]);_0x522695['offset']=qs[_0x4a1c('0x22')](_0x4efb0b['query']['offset']);}return _0x5e1550['getAnyConditions'](_0x522695);}})[_0x4a1c('0x28')](function(_0x22ec1d){if(_0x22ec1d){return _0x22ec1d?{'count':_0x54d4e0,'rows':_0x22ec1d}:null;}})[_0x4a1c('0x28')](respondWithResult(_0x220f84,null))[_0x4a1c('0x48')](handleError(_0x220f84,null));};exports[_0x4a1c('0x5d')]=function(_0x2b3dc7,_0x5c056e,_0x5b97f9){if(_0x2b3dc7[_0x4a1c('0x55')]['id']){delete _0x2b3dc7[_0x4a1c('0x55')]['id'];}return db[_0x4a1c('0x31')]['find']({'where':{'id':_0x2b3dc7[_0x4a1c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5c056e,null))[_0x4a1c('0x28')](function(_0x45f468){if(_0x45f468){_0x2b3dc7[_0x4a1c('0x55')]['TriggerId']=_0x45f468['id'];return db[_0x4a1c('0x5e')]['create'](_0x2b3dc7[_0x4a1c('0x55')]);}})['then'](respondWithResult(_0x5c056e,null))['catch'](handleError(_0x5c056e,null));};exports[_0x4a1c('0x5f')]=function(_0x26aa78,_0x525534,_0x35fbc4){var _0x4cc510={};var _0x3a6cf9={};var _0x57c9b9;var _0x59c470;return db['Trigger']['findOne']({'where':{'id':_0x26aa78['params']['id']}})[_0x4a1c('0x28')](handleEntityNotFound(_0x525534,null))['then'](function(_0x19384d){if(_0x19384d){_0x57c9b9=_0x19384d;_0x3a6cf9[_0x4a1c('0x35')]=_[_0x4a1c('0x37')](db[_0x4a1c('0x5e')][_0x4a1c('0x4b')]);_0x3a6cf9[_0x4a1c('0x36')]=_[_0x4a1c('0x37')](_0x26aa78[_0x4a1c('0x36')]);_0x3a6cf9[_0x4a1c('0x3e')]=_[_0x4a1c('0x38')](_0x3a6cf9[_0x4a1c('0x35')],_0x3a6cf9['query']);_0x4cc510[_0x4a1c('0x39')]=_[_0x4a1c('0x38')](_0x3a6cf9['model'],qs[_0x4a1c('0x4c')](_0x26aa78['query']['fields']));_0x4cc510[_0x4a1c('0x39')]=_0x4cc510[_0x4a1c('0x39')][_0x4a1c('0x3a')]?_0x4cc510[_0x4a1c('0x39')]:_0x3a6cf9[_0x4a1c('0x35')];_0x4cc510['order']=qs[_0x4a1c('0x3d')](_0x26aa78[_0x4a1c('0x36')][_0x4a1c('0x3d')]);_0x4cc510[_0x4a1c('0x41')]=qs[_0x4a1c('0x3e')](_[_0x4a1c('0x3f')](_0x26aa78['query'],_0x3a6cf9[_0x4a1c('0x3e')]));if(_0x26aa78['query'][_0x4a1c('0x40')]){_0x4cc510[_0x4a1c('0x41')]=_[_0x4a1c('0x42')](_0x4cc510[_0x4a1c('0x41')],{'$or':_['map'](_0x4cc510[_0x4a1c('0x39')],function(_0x14f9fa){var _0x224b23={};_0x224b23[_0x14f9fa]={'$like':'%'+_0x26aa78['query'][_0x4a1c('0x40')]+'%'};return _0x224b23;})});}_0x4cc510=_[_0x4a1c('0x42')]({},_0x4cc510,_0x26aa78['options']);return _0x57c9b9[_0x4a1c('0x5f')](_0x4cc510);}})[_0x4a1c('0x28')](function(_0x196df5){if(_0x196df5){_0x59c470=_0x196df5[_0x4a1c('0x3a')];if(!_0x26aa78[_0x4a1c('0x36')][_0x4a1c('0x60')](_0x4a1c('0x3b'))){_0x4cc510[_0x4a1c('0x20')]=qs[_0x4a1c('0x20')](_0x26aa78['query'][_0x4a1c('0x20')]);_0x4cc510['offset']=qs[_0x4a1c('0x22')](_0x26aa78['query'][_0x4a1c('0x22')]);}return _0x57c9b9['getActions'](_0x4cc510);}})['then'](function(_0x4327d4){if(_0x4327d4){return _0x4327d4?{'count':_0x59c470,'rows':_0x4327d4}:null;}})[_0x4a1c('0x28')](respondWithResult(_0x525534,null))[_0x4a1c('0x48')](handleError(_0x525534,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a81=['../../config/logger','api','request-promise','rimraf','../../config/environment','define','tools_triggers','lodash','util'];(function(_0x1e4360,_0x930b9b){var _0x31e6b4=function(_0x49dd8e){while(--_0x49dd8e){_0x1e4360['push'](_0x1e4360['shift']());}};_0x31e6b4(++_0x930b9b);}(_0x4a81,0x1b7));var _0x14a8=function(_0x1bfca5,_0xe47f30){_0x1bfca5=_0x1bfca5-0x0;var _0x37dd8f=_0x4a81[_0x1bfca5];return _0x37dd8f;};'use strict';var _=require(_0x14a8('0x0'));var util=require(_0x14a8('0x1'));var logger=require(_0x14a8('0x2'))(_0x14a8('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x14a8('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x14a8('0x5'));var config=require(_0x14a8('0x6'));var attributes=require('./trigger.attributes');module['exports']=function(_0x2cd6d2,_0x4aa19e){return _0x2cd6d2[_0x14a8('0x7')]('Trigger',attributes,{'tableName':_0x14a8('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeea0=['./trigger.attributes','exports','define','Trigger','tools_triggers','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x9feeed,_0x1f4296){var _0x4b7c4f=function(_0xf99d90){while(--_0xf99d90){_0x9feeed['push'](_0x9feeed['shift']());}};_0x4b7c4f(++_0x1f4296);}(_0xeea0,0x91));var _0x0eea=function(_0x6ba59b,_0x17b0c8){_0x6ba59b=_0x6ba59b-0x0;var _0x26c24a=_0xeea0[_0x6ba59b];return _0x26c24a;};'use strict';var _=require(_0x0eea('0x0'));var util=require(_0x0eea('0x1'));var logger=require(_0x0eea('0x2'))(_0x0eea('0x3'));var moment=require(_0x0eea('0x4'));var BPromise=require('bluebird');var rp=require(_0x0eea('0x5'));var fs=require('fs');var path=require(_0x0eea('0x6'));var rimraf=require(_0x0eea('0x7'));var config=require(_0x0eea('0x8'));var attributes=require(_0x0eea('0x9'));module[_0x0eea('0xa')]=function(_0x2520ce,_0x47d7c8){return _0x2520ce[_0x0eea('0xb')](_0x0eea('0xc'),attributes,{'tableName':_0x0eea('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe38e=['findAll','options','where','attributes','limit','include','map','model','then','ShowTrigger','find','raw','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','Trigger,\x20%s,\x20%s','request\x20sent','debug','Trigger,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','GetTrigger','Trigger'];(function(_0x6bd820,_0x2160dc){var _0x51aee9=function(_0x480bf6){while(--_0x480bf6){_0x6bd820['push'](_0x6bd820['shift']());}};_0x51aee9(++_0x2160dc);}(_0xe38e,0x1e0));var _0xee38=function(_0x92171a,_0x1d6dc0){_0x92171a=_0x92171a-0x0;var _0x4d4c91=_0xe38e[_0x92171a];return _0x4d4c91;};'use strict';var _=require(_0xee38('0x0'));var util=require('util');var moment=require(_0xee38('0x1'));var BPromise=require(_0xee38('0x2'));var rs=require(_0xee38('0x3'));var fs=require('fs');var Redis=require(_0xee38('0x4'));var db=require(_0xee38('0x5'))['db'];var utils=require(_0xee38('0x6'));var logger=require(_0xee38('0x7'))('rpc');var config=require(_0xee38('0x8'));var jayson=require(_0xee38('0x9'));var client=jayson['client'][_0xee38('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x10bd47,_0x5266fc,_0x247011){return new BPromise(function(_0x529145,_0x173318){return client[_0xee38('0xb')](_0x10bd47,_0x247011)['then'](function(_0x2e9c9c){logger['info'](_0xee38('0xc'),_0x5266fc,_0xee38('0xd'));logger[_0xee38('0xe')](_0xee38('0xf'),_0x5266fc,_0xee38('0xd'),JSON[_0xee38('0x10')](_0x2e9c9c));if(_0x2e9c9c['error']){if(_0x2e9c9c[_0xee38('0x11')][_0xee38('0x12')]===0x1f4){logger[_0xee38('0x11')](_0xee38('0xc'),_0x5266fc,_0x2e9c9c[_0xee38('0x11')][_0xee38('0x13')]);return _0x173318(_0x2e9c9c[_0xee38('0x11')][_0xee38('0x13')]);}logger[_0xee38('0x11')](_0xee38('0xc'),_0x5266fc,_0x2e9c9c[_0xee38('0x11')][_0xee38('0x13')]);return _0x529145(_0x2e9c9c['error']['message']);}else{logger[_0xee38('0x14')](_0xee38('0xc'),_0x5266fc,_0xee38('0xd'));_0x529145(_0x2e9c9c['result']['message']);}})[_0xee38('0x15')](function(_0x1c6a28){logger[_0xee38('0x11')](_0xee38('0xc'),_0x5266fc,_0x1c6a28);_0x173318(_0x1c6a28);});});}exports[_0xee38('0x16')]=function(_0x4707e7){var _0x137974=this;return new Promise(function(_0x40afb0,_0x5b2b04){return db[_0xee38('0x17')][_0xee38('0x18')]({'raw':_0x4707e7[_0xee38('0x19')]?_0x4707e7['options']['raw']===undefined?!![]:![]:!![],'where':_0x4707e7['options']?_0x4707e7[_0xee38('0x19')][_0xee38('0x1a')]||null:null,'attributes':_0x4707e7['options']?_0x4707e7[_0xee38('0x19')][_0xee38('0x1b')]||null:null,'limit':_0x4707e7[_0xee38('0x19')]?_0x4707e7[_0xee38('0x19')][_0xee38('0x1c')]||null:null,'include':_0x4707e7[_0xee38('0x19')]?_0x4707e7['options'][_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x4707e7['options'][_0xee38('0x1d')],function(_0x44ad4d){return{'model':db[_0x44ad4d[_0xee38('0x1f')]],'as':_0x44ad4d['as'],'attributes':_0x44ad4d[_0xee38('0x1b')],'include':_0x44ad4d[_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x44ad4d['include'],function(_0x8de0d2){return{'model':db[_0x8de0d2[_0xee38('0x1f')]],'as':_0x8de0d2['as'],'attributes':_0x8de0d2[_0xee38('0x1b')],'include':_0x8de0d2[_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x8de0d2[_0xee38('0x1d')],function(_0x4f712c){return{'model':db[_0x4f712c['model']],'as':_0x4f712c['as'],'attributes':_0x4f712c[_0xee38('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xee38('0x20')](function(_0x4398e6){logger[_0xee38('0x14')](_0xee38('0x16'),_0x4707e7);logger[_0xee38('0xe')](_0xee38('0x16'),_0x4707e7,JSON[_0xee38('0x10')](_0x4398e6));_0x40afb0(_0x4398e6);})['catch'](function(_0x27ca35){logger['error'](_0xee38('0x16'),_0x27ca35['message'],_0x4707e7);_0x5b2b04(_0x137974[_0xee38('0x11')](0x1f4,_0x27ca35[_0xee38('0x13')]));});});};exports[_0xee38('0x21')]=function(_0x27fbe4){var _0x7e7e42=this;return new Promise(function(_0x127a01,_0x3fb7ca){return db[_0xee38('0x17')][_0xee38('0x22')]({'raw':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4[_0xee38('0x19')][_0xee38('0x23')]===undefined?!![]:![]:!![],'where':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4[_0xee38('0x19')][_0xee38('0x1a')]||null:null,'attributes':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4['options'][_0xee38('0x1b')]||null:null,'include':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4[_0xee38('0x19')][_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x27fbe4[_0xee38('0x19')][_0xee38('0x1d')],function(_0x3fb394){return{'model':db[_0x3fb394[_0xee38('0x1f')]],'as':_0x3fb394['as'],'attributes':_0x3fb394['attributes'],'include':_0x3fb394[_0xee38('0x1d')]?_['map'](_0x3fb394['include'],function(_0x6a41ed){return{'model':db[_0x6a41ed[_0xee38('0x1f')]],'as':_0x6a41ed['as'],'attributes':_0x6a41ed['attributes'],'include':_0x6a41ed[_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x6a41ed[_0xee38('0x1d')],function(_0xdfd088){return{'model':db[_0xdfd088[_0xee38('0x1f')]],'as':_0xdfd088['as'],'attributes':_0xdfd088[_0xee38('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xee38('0x20')](function(_0x56a163){logger[_0xee38('0x14')](_0xee38('0x21'),_0x27fbe4);logger[_0xee38('0xe')](_0xee38('0x21'),_0x27fbe4,JSON[_0xee38('0x10')](_0x56a163));_0x127a01(_0x56a163);})[_0xee38('0x15')](function(_0x13c2b0){logger[_0xee38('0x11')]('ShowTrigger',_0x13c2b0[_0xee38('0x13')],_0x27fbe4);_0x3fb7ca(_0x7e7e42['error'](0x1f4,_0x13c2b0[_0xee38('0x13')]));});});};
\ No newline at end of file
+var _0xcc6c=['debug','Trigger,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','Trigger','options','raw','limit','include','map','model','attributes','GetTrigger','ShowTrigger','find','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Trigger,\x20%s,\x20%s','request\x20sent'];(function(_0x3635ce,_0x33a6f9){var _0x97ecd0=function(_0x123d98){while(--_0x123d98){_0x3635ce['push'](_0x3635ce['shift']());}};_0x97ecd0(++_0x33a6f9);}(_0xcc6c,0x7f));var _0xccc6=function(_0x49458c,_0x18eeb9){_0x49458c=_0x49458c-0x0;var _0x1e2a36=_0xcc6c[_0x49458c];return _0x1e2a36;};'use strict';var _=require('lodash');var util=require(_0xccc6('0x0'));var moment=require(_0xccc6('0x1'));var BPromise=require(_0xccc6('0x2'));var rs=require(_0xccc6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xccc6('0x4'))['db'];var utils=require(_0xccc6('0x5'));var logger=require(_0xccc6('0x6'))(_0xccc6('0x7'));var config=require(_0xccc6('0x8'));var jayson=require(_0xccc6('0x9'));var client=jayson[_0xccc6('0xa')][_0xccc6('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3bb897,_0x1bfc91,_0x1fbc76){return new BPromise(function(_0x5bd29d,_0x258845){return client[_0xccc6('0xc')](_0x3bb897,_0x1fbc76)[_0xccc6('0xd')](function(_0x42803d){logger[_0xccc6('0xe')](_0xccc6('0xf'),_0x1bfc91,_0xccc6('0x10'));logger[_0xccc6('0x11')](_0xccc6('0x12'),_0x1bfc91,_0xccc6('0x10'),JSON[_0xccc6('0x13')](_0x42803d));if(_0x42803d[_0xccc6('0x14')]){if(_0x42803d['error'][_0xccc6('0x15')]===0x1f4){logger[_0xccc6('0x14')]('Trigger,\x20%s,\x20%s',_0x1bfc91,_0x42803d[_0xccc6('0x14')][_0xccc6('0x16')]);return _0x258845(_0x42803d[_0xccc6('0x14')]['message']);}logger[_0xccc6('0x14')](_0xccc6('0xf'),_0x1bfc91,_0x42803d[_0xccc6('0x14')][_0xccc6('0x16')]);return _0x5bd29d(_0x42803d['error'][_0xccc6('0x16')]);}else{logger[_0xccc6('0xe')](_0xccc6('0xf'),_0x1bfc91,_0xccc6('0x10'));_0x5bd29d(_0x42803d[_0xccc6('0x17')][_0xccc6('0x16')]);}})[_0xccc6('0x18')](function(_0x414d36){logger[_0xccc6('0x14')](_0xccc6('0xf'),_0x1bfc91,_0x414d36);_0x258845(_0x414d36);});});}exports['GetTrigger']=function(_0x5502cb){var _0x8f9596=this;return new Promise(function(_0x2c53f0,_0x5b067e){return db[_0xccc6('0x19')]['findAll']({'raw':_0x5502cb['options']?_0x5502cb[_0xccc6('0x1a')][_0xccc6('0x1b')]===undefined?!![]:![]:!![],'where':_0x5502cb[_0xccc6('0x1a')]?_0x5502cb[_0xccc6('0x1a')]['where']||null:null,'attributes':_0x5502cb[_0xccc6('0x1a')]?_0x5502cb[_0xccc6('0x1a')]['attributes']||null:null,'limit':_0x5502cb[_0xccc6('0x1a')]?_0x5502cb[_0xccc6('0x1a')][_0xccc6('0x1c')]||null:null,'include':_0x5502cb[_0xccc6('0x1a')]?_0x5502cb[_0xccc6('0x1a')][_0xccc6('0x1d')]?_[_0xccc6('0x1e')](_0x5502cb[_0xccc6('0x1a')][_0xccc6('0x1d')],function(_0x4fb187){return{'model':db[_0x4fb187[_0xccc6('0x1f')]],'as':_0x4fb187['as'],'attributes':_0x4fb187[_0xccc6('0x20')],'include':_0x4fb187[_0xccc6('0x1d')]?_['map'](_0x4fb187[_0xccc6('0x1d')],function(_0x47ceb2){return{'model':db[_0x47ceb2[_0xccc6('0x1f')]],'as':_0x47ceb2['as'],'attributes':_0x47ceb2[_0xccc6('0x20')],'include':_0x47ceb2[_0xccc6('0x1d')]?_['map'](_0x47ceb2[_0xccc6('0x1d')],function(_0x267b56){return{'model':db[_0x267b56['model']],'as':_0x267b56['as'],'attributes':_0x267b56[_0xccc6('0x20')]};}):[]};}):[]};}):[]:[]})[_0xccc6('0xd')](function(_0x22df16){logger[_0xccc6('0xe')](_0xccc6('0x21'),_0x5502cb);logger['debug'](_0xccc6('0x21'),_0x5502cb,JSON[_0xccc6('0x13')](_0x22df16));_0x2c53f0(_0x22df16);})[_0xccc6('0x18')](function(_0x1e2f51){logger[_0xccc6('0x14')](_0xccc6('0x21'),_0x1e2f51[_0xccc6('0x16')],_0x5502cb);_0x5b067e(_0x8f9596[_0xccc6('0x14')](0x1f4,_0x1e2f51[_0xccc6('0x16')]));});});};exports[_0xccc6('0x22')]=function(_0x4e0a3a){var _0x1f6d6c=this;return new Promise(function(_0x31dfbe,_0x62dd38){return db[_0xccc6('0x19')][_0xccc6('0x23')]({'raw':_0x4e0a3a[_0xccc6('0x1a')]?_0x4e0a3a[_0xccc6('0x1a')][_0xccc6('0x1b')]===undefined?!![]:![]:!![],'where':_0x4e0a3a['options']?_0x4e0a3a[_0xccc6('0x1a')]['where']||null:null,'attributes':_0x4e0a3a[_0xccc6('0x1a')]?_0x4e0a3a['options']['attributes']||null:null,'include':_0x4e0a3a[_0xccc6('0x1a')]?_0x4e0a3a['options'][_0xccc6('0x1d')]?_[_0xccc6('0x1e')](_0x4e0a3a['options'][_0xccc6('0x1d')],function(_0x55fa68){return{'model':db[_0x55fa68[_0xccc6('0x1f')]],'as':_0x55fa68['as'],'attributes':_0x55fa68['attributes'],'include':_0x55fa68[_0xccc6('0x1d')]?_['map'](_0x55fa68[_0xccc6('0x1d')],function(_0x55fc6d){return{'model':db[_0x55fc6d[_0xccc6('0x1f')]],'as':_0x55fc6d['as'],'attributes':_0x55fc6d[_0xccc6('0x20')],'include':_0x55fc6d[_0xccc6('0x1d')]?_[_0xccc6('0x1e')](_0x55fc6d[_0xccc6('0x1d')],function(_0x33658f){return{'model':db[_0x33658f[_0xccc6('0x1f')]],'as':_0x33658f['as'],'attributes':_0x33658f[_0xccc6('0x20')]};}):[]};}):[]};}):[]:[]})[_0xccc6('0xd')](function(_0x151f67){logger[_0xccc6('0xe')](_0xccc6('0x22'),_0x4e0a3a);logger[_0xccc6('0x11')](_0xccc6('0x22'),_0x4e0a3a,JSON['stringify'](_0x151f67));_0x31dfbe(_0x151f67);})[_0xccc6('0x18')](function(_0x3e2433){logger[_0xccc6('0x14')](_0xccc6('0x22'),_0x3e2433[_0xccc6('0x16')],_0x4e0a3a);_0x62dd38(_0x1f6d6c[_0xccc6('0x14')](0x1f4,_0x3e2433['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ed2=['../../components/interaction/service','./trunk.controller','get','isAuthenticated','/:id','show','post','clone','put','update','delete','destroy','exports','multer','util','connect-timeout','express','fs-extra'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x0ed2,0x1e1));var _0x20ed=function(_0x219313,_0x1ef10b){_0x219313=_0x219313-0x0;var _0x4613ec=_0x0ed2[_0x219313];return _0x4613ec;};'use strict';var multer=require(_0x20ed('0x0'));var util=require(_0x20ed('0x1'));var path=require('path');var timeout=require(_0x20ed('0x2'));var express=require(_0x20ed('0x3'));var router=express['Router']();var fs_extra=require(_0x20ed('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x20ed('0x5'));var config=require('../../config/environment');var controller=require(_0x20ed('0x6'));router[_0x20ed('0x7')]('/',auth[_0x20ed('0x8')](),controller['index']);router[_0x20ed('0x7')](_0x20ed('0x9'),auth[_0x20ed('0x8')](),controller[_0x20ed('0xa')]);router[_0x20ed('0xb')]('/:id/clone',auth[_0x20ed('0x8')](),controller[_0x20ed('0xc')]);router['post']('/',auth[_0x20ed('0x8')](),controller['create']);router[_0x20ed('0xd')](_0x20ed('0x9'),auth['isAuthenticated'](),controller[_0x20ed('0xe')]);router[_0x20ed('0xf')]('/:id',auth[_0x20ed('0x8')](),controller[_0x20ed('0x10')]);module[_0x20ed('0x11')]=router;
\ No newline at end of file
+var _0xfd4f=['/:id','show','post','/:id/clone','isAuthenticated','clone','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xfd4f,0x9e));var _0xffd4=function(_0x36d0d3,_0x2cff00){_0x36d0d3=_0x36d0d3-0x0;var _0x334f68=_0xfd4f[_0x36d0d3];return _0x334f68;};'use strict';var multer=require(_0xffd4('0x0'));var util=require('util');var path=require(_0xffd4('0x1'));var timeout=require(_0xffd4('0x2'));var express=require(_0xffd4('0x3'));var router=express[_0xffd4('0x4')]();var fs_extra=require(_0xffd4('0x5'));var auth=require(_0xffd4('0x6'));var interaction=require(_0xffd4('0x7'));var config=require(_0xffd4('0x8'));var controller=require('./trunk.controller');router[_0xffd4('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0xffd4('0x9')](_0xffd4('0xa'),auth['isAuthenticated'](),controller[_0xffd4('0xb')]);router[_0xffd4('0xc')](_0xffd4('0xd'),auth[_0xffd4('0xe')](),controller[_0xffd4('0xf')]);router[_0xffd4('0xc')]('/',auth[_0xffd4('0xe')](),controller['create']);router[_0xffd4('0x10')](_0xffd4('0xa'),auth[_0xffd4('0xe')](),controller[_0xffd4('0x11')]);router[_0xffd4('0x12')](_0xffd4('0xa'),auth[_0xffd4('0xe')](),controller[_0xffd4('0x13')]);module[_0xffd4('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa586=['user','peer','friend','from-voip-provider','ALLOWED_NOT_SCREENED','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','udp','setDataValue','transport','getDataValue','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','yes','nonat','outgoing','force_rport,comedia','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','join','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','INTEGER','\x22\x22\x20<>','always','refuse','uac','uas','fingerprint','active','passive','actpass','dynamic','update,nonat','BOOLEAN','sequelize','exports','STRING','name','ENUM'];(function(_0x41cff5,_0x1ca091){var _0x3704ce=function(_0x5422ed){while(--_0x5422ed){_0x41cff5['push'](_0x41cff5['shift']());}};_0x3704ce(++_0x1ca091);}(_0xa586,0x160));var _0x6a58=function(_0x34eb31,_0x8f0f70){_0x34eb31=_0x34eb31-0x0;var _0x254994=_0xa586[_0x34eb31];return _0x254994;};'use strict';var Sequelize=require(_0x6a58('0x0'));module[_0x6a58('0x1')]={'name':{'type':Sequelize[_0x6a58('0x2')],'allowNull':![],'unique':_0x6a58('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x6a58('0x4')]('friend',_0x6a58('0x5'),_0x6a58('0x6')),'allowNull':![],'defaultValue':_0x6a58('0x7')},'context':{'type':Sequelize[_0x6a58('0x2')],'allowNull':![],'defaultValue':_0x6a58('0x8')},'callingpres':{'type':Sequelize['ENUM'](_0x6a58('0x9'),'ALLOWED_PASSED_SCREEN',_0x6a58('0xa'),_0x6a58('0xb'),_0x6a58('0xc'),_0x6a58('0xd'),_0x6a58('0xe'),'PROHIB')},'deny':{'type':Sequelize[_0x6a58('0x2')]},'permit':{'type':Sequelize[_0x6a58('0x2')]},'secret':{'type':Sequelize[_0x6a58('0x2')]},'md5secret':{'type':Sequelize['STRING']},'remotesecret':{'type':Sequelize['STRING']},'transport':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0xf'),'set':function(_0x16d414){this[_0x6a58('0x10')](_0x6a58('0x11'),_0x16d414?_0x16d414['join'](','):null);},'get':function(){return this['getDataValue'](_0x6a58('0x11'))?this[_0x6a58('0x12')](_0x6a58('0x11'))[_0x6a58('0x13')](','):null;},'comment':_0x6a58('0x14')},'dtmfmode':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x15'),_0x6a58('0x16'),_0x6a58('0x17'),'inband','auto'),'defaultValue':_0x6a58('0x15')},'directmedia':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no',_0x6a58('0x19'),'update',_0x6a58('0x1a')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING']},'directmediadeny':{'type':Sequelize[_0x6a58('0x2')]},'nat':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x1b'),'set':function(_0x5bc4c8){this['setDataValue']('nat',_0x5bc4c8?_0x5bc4c8['join'](','):null);},'get':function(){return this[_0x6a58('0x12')](_0x6a58('0x1c'))?this[_0x6a58('0x12')](_0x6a58('0x1c'))[_0x6a58('0x13')](','):null;},'comment':_0x6a58('0x1d')},'callgroup':{'type':Sequelize[_0x6a58('0x2')]},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize[_0x6a58('0x2')]},'namedpickupgroup':{'type':Sequelize[_0x6a58('0x2')]},'language':{'type':Sequelize['STRING'],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING'],'allowNull':!![]},'disallow':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x1e')},'allow':{'type':Sequelize[_0x6a58('0x2')],'allowNull':![],'defaultValue':_0x6a58('0x1f'),'set':function(_0x725da6){this[_0x6a58('0x10')](_0x6a58('0x20'),_0x725da6?_0x725da6[_0x6a58('0x21')](';'):_0x6a58('0x1f'));},'get':function(){return this['getDataValue'](_0x6a58('0x20'))?this[_0x6a58('0x12')](_0x6a58('0x20'))[_0x6a58('0x13')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]'},'autoframing':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'insecure':{'type':Sequelize['STRING'],'defaultValue':_0x6a58('0x22'),'set':function(_0x38e946){this[_0x6a58('0x10')](_0x6a58('0x23'),_0x38e946?_0x38e946['join'](','):null);},'get':function(){return this[_0x6a58('0x12')](_0x6a58('0x23'))?this['getDataValue'](_0x6a58('0x23'))[_0x6a58('0x13')](','):null;},'comment':_0x6a58('0x24')},'trustrpid':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no',_0x6a58('0x25'))},'promiscredir':{'type':Sequelize['ENUM'](_0x6a58('0x18'),'no')},'useclientcode':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'accountcode':{'type':Sequelize[_0x6a58('0x26')](0xb)},'setvar':{'type':Sequelize[_0x6a58('0x2')]},'callerid':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x27')},'amaflags':{'type':Sequelize[_0x6a58('0x2')]},'callcounter':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0x6a58('0x26')](0xb)},'allowoverlap':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'allowsubscribe':{'type':Sequelize['ENUM'](_0x6a58('0x18'),'no')},'allowtransfer':{'type':Sequelize[_0x6a58('0x4')]('yes','no')},'ignoresdpversion':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'subscribecontext':{'type':Sequelize[_0x6a58('0x2')]},'template':{'type':Sequelize['STRING']},'videosupport':{'type':Sequelize['ENUM']('yes','no',_0x6a58('0x28')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x6a58('0x26')](0xb)},'rfc2833compensate':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'mailbox':{'type':Sequelize['STRING']},'session_timers':{'type':Sequelize[_0x6a58('0x4')]('accept',_0x6a58('0x29'),'originate')},'session_expires':{'type':Sequelize[_0x6a58('0x26')](0xb)},'session_minse':{'type':Sequelize[_0x6a58('0x26')](0xb)},'session_refresher':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x2a'),_0x6a58('0x2b')),'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize[_0x6a58('0x2')]},'regexten':{'type':Sequelize[_0x6a58('0x2')]},'fromdomain':{'type':Sequelize[_0x6a58('0x2')]},'fromuser':{'type':Sequelize[_0x6a58('0x2')]},'port':{'type':Sequelize[_0x6a58('0x26')](0x5)},'qualify':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'yes'},'keepalive':{'type':Sequelize[_0x6a58('0x26')](0xb)},'defaultip':{'type':Sequelize[_0x6a58('0x2')]},'defaultuser':{'type':Sequelize[_0x6a58('0x2')]},'rtptimeout':{'type':Sequelize[_0x6a58('0x26')](0xb)},'rtpholdtimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpkeepalive':{'type':Sequelize[_0x6a58('0x26')](0xb)},'sendrpid':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no','pai'),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x6a58('0x2')]},'callbackextension':{'type':Sequelize[_0x6a58('0x2')]},'timert1':{'type':Sequelize['INTEGER'](0xb)},'timerb':{'type':Sequelize[_0x6a58('0x26')](0xb)},'qualifyfreq':{'type':Sequelize[_0x6a58('0x26')](0xb)},'contactpermit':{'type':Sequelize[_0x6a58('0x2')]},'contactdeny':{'type':Sequelize[_0x6a58('0x2')]},'contactacl':{'type':Sequelize[_0x6a58('0x2')]},'unsolicited_mailbox':{'type':Sequelize[_0x6a58('0x2')]},'use_q850_reason':{'type':Sequelize[_0x6a58('0x2')]},'maxforwards':{'type':Sequelize['INTEGER'](0xb)},'encryption':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'force_avp':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'icesupport':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'dtlsenable':{'type':Sequelize[_0x6a58('0x4')]('yes','no')},'dtlsverify':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no',_0x6a58('0x2c'),'certificate')},'dtlsrekey':{'type':Sequelize[_0x6a58('0x26')](0xb)},'dtlscertfile':{'type':Sequelize['STRING']},'dtlsprivatekey':{'type':Sequelize[_0x6a58('0x2')]},'dtlscipher':{'type':Sequelize[_0x6a58('0x2')]},'dtlscafile':{'type':Sequelize['STRING']},'dtlscapath':{'type':Sequelize[_0x6a58('0x2')]},'dtlssetup':{'type':Sequelize['ENUM'](_0x6a58('0x2d'),_0x6a58('0x2e'),_0x6a58('0x2f')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x6a58('0x2')]},'usereqphone':{'type':Sequelize['ENUM'](_0x6a58('0x18'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING']},'recordofffeature':{'type':Sequelize['STRING']},'call_limit':{'type':Sequelize[_0x6a58('0x26')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize['ENUM']('yes','no')},'subscribemwi':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'vmexten':{'type':Sequelize['STRING']},'mohinterpret':{'type':Sequelize[_0x6a58('0x2')]},'mohsuggest':{'type':Sequelize[_0x6a58('0x2')]},'parkinglot':{'type':Sequelize[_0x6a58('0x2')]},'description':{'type':Sequelize[_0x6a58('0x2')]},'host':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x30')},'canreinvite':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no','nonat','update',_0x6a58('0x31')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x6a58('0x2')]},'otherFields':{'type':Sequelize[_0x6a58('0x2')]},'active':{'type':Sequelize[_0x6a58('0x32')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':'no'}};
\ No newline at end of file
+var _0x3833=['refuse','originate','uas','pai','fingerprint','certificate','passive','actpass','update,nonat','sequelize','exports','STRING','name','friend','user','peer','ENUM','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','setDataValue','transport','join','getDataValue','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','shortinfo','inband','auto','yes','nonat','update','force_rport,comedia','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','allow','ulaw;alaw;gsm','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','\x22\x22\x20<>','INTEGER','accept'];(function(_0x2285ee,_0x2c3c72){var _0x515e52=function(_0x381b4c){while(--_0x381b4c){_0x2285ee['push'](_0x2285ee['shift']());}};_0x515e52(++_0x2c3c72);}(_0x3833,0xfe));var _0x3383=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x3833[_0x21a9d9];return _0x46adce;};'use strict';var Sequelize=require(_0x3383('0x0'));module[_0x3383('0x1')]={'name':{'type':Sequelize[_0x3383('0x2')],'allowNull':![],'unique':_0x3383('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize['ENUM'](_0x3383('0x4'),_0x3383('0x5'),_0x3383('0x6')),'allowNull':![],'defaultValue':_0x3383('0x4')},'context':{'type':Sequelize[_0x3383('0x2')],'allowNull':![],'defaultValue':'from-voip-provider'},'callingpres':{'type':Sequelize[_0x3383('0x7')]('ALLOWED_NOT_SCREENED',_0x3383('0x8'),_0x3383('0x9'),_0x3383('0xa'),_0x3383('0xb'),_0x3383('0xc'),'PROHIB_FAILED_SCREEN','PROHIB')},'deny':{'type':Sequelize[_0x3383('0x2')]},'permit':{'type':Sequelize[_0x3383('0x2')]},'secret':{'type':Sequelize[_0x3383('0x2')]},'md5secret':{'type':Sequelize[_0x3383('0x2')]},'remotesecret':{'type':Sequelize[_0x3383('0x2')]},'transport':{'type':Sequelize['STRING'],'defaultValue':'udp','set':function(_0x5185fc){this[_0x3383('0xd')](_0x3383('0xe'),_0x5185fc?_0x5185fc[_0x3383('0xf')](','):null);},'get':function(){return this[_0x3383('0x10')](_0x3383('0xe'))?this[_0x3383('0x10')](_0x3383('0xe'))[_0x3383('0x11')](','):null;},'comment':_0x3383('0x12')},'dtmfmode':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x13'),'info',_0x3383('0x14'),_0x3383('0x15'),_0x3383('0x16')),'defaultValue':_0x3383('0x13')},'directmedia':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no',_0x3383('0x18'),_0x3383('0x19'),'outgoing'),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize['ENUM'](_0x3383('0x17'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING']},'directmediadeny':{'type':Sequelize[_0x3383('0x2')]},'nat':{'type':Sequelize[_0x3383('0x2')],'defaultValue':_0x3383('0x1a'),'set':function(_0x460c5c){this[_0x3383('0xd')](_0x3383('0x1b'),_0x460c5c?_0x460c5c[_0x3383('0xf')](','):null);},'get':function(){return this[_0x3383('0x10')](_0x3383('0x1b'))?this[_0x3383('0x10')](_0x3383('0x1b'))['split'](','):null;},'comment':_0x3383('0x1c')},'callgroup':{'type':Sequelize['STRING']},'namedcallgroup':{'type':Sequelize[_0x3383('0x2')]},'pickupgroup':{'type':Sequelize['STRING']},'namedpickupgroup':{'type':Sequelize[_0x3383('0x2')]},'language':{'type':Sequelize[_0x3383('0x2')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING'],'allowNull':!![]},'disallow':{'type':Sequelize[_0x3383('0x2')],'defaultValue':_0x3383('0x1d')},'allow':{'type':Sequelize[_0x3383('0x2')],'allowNull':![],'defaultValue':'ulaw;alaw;gsm','set':function(_0x20bfcc){this[_0x3383('0xd')](_0x3383('0x1e'),_0x20bfcc?_0x20bfcc[_0x3383('0xf')](';'):_0x3383('0x1f'));},'get':function(){return this[_0x3383('0x10')](_0x3383('0x1e'))?this[_0x3383('0x10')]('allow')[_0x3383('0x11')](';'):null;},'comment':_0x3383('0x20')},'autoframing':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no')},'insecure':{'type':Sequelize[_0x3383('0x2')],'defaultValue':_0x3383('0x21'),'set':function(_0x1ccbdd){this['setDataValue']('insecure',_0x1ccbdd?_0x1ccbdd[_0x3383('0xf')](','):null);},'get':function(){return this[_0x3383('0x10')](_0x3383('0x22'))?this[_0x3383('0x10')](_0x3383('0x22'))['split'](','):null;},'comment':_0x3383('0x23')},'trustrpid':{'type':Sequelize[_0x3383('0x7')]('yes','no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x3383('0x7')]('yes','no',_0x3383('0x24'))},'promiscredir':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no')},'useclientcode':{'type':Sequelize['ENUM'](_0x3383('0x17'),'no')},'accountcode':{'type':Sequelize['INTEGER'](0xb)},'setvar':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize['STRING'],'defaultValue':_0x3383('0x25')},'amaflags':{'type':Sequelize[_0x3383('0x2')]},'callcounter':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no'),'defaultValue':_0x3383('0x17')},'busylevel':{'type':Sequelize[_0x3383('0x26')](0xb)},'allowoverlap':{'type':Sequelize[_0x3383('0x7')]('yes','no')},'allowsubscribe':{'type':Sequelize[_0x3383('0x7')]('yes','no')},'allowtransfer':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no')},'ignoresdpversion':{'type':Sequelize[_0x3383('0x7')]('yes','no')},'subscribecontext':{'type':Sequelize[_0x3383('0x2')]},'template':{'type':Sequelize[_0x3383('0x2')]},'videosupport':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no','always'),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x3383('0x26')](0xb)},'rfc2833compensate':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no')},'mailbox':{'type':Sequelize[_0x3383('0x2')]},'session_timers':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x27'),_0x3383('0x28'),_0x3383('0x29'))},'session_expires':{'type':Sequelize[_0x3383('0x26')](0xb)},'session_minse':{'type':Sequelize[_0x3383('0x26')](0xb)},'session_refresher':{'type':Sequelize['ENUM']('uac',_0x3383('0x2a')),'defaultValue':_0x3383('0x2a')},'t38pt_usertpsource':{'type':Sequelize[_0x3383('0x2')]},'regexten':{'type':Sequelize[_0x3383('0x2')]},'fromdomain':{'type':Sequelize['STRING']},'fromuser':{'type':Sequelize[_0x3383('0x2')]},'port':{'type':Sequelize[_0x3383('0x26')](0x5)},'qualify':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no'),'defaultValue':_0x3383('0x17')},'keepalive':{'type':Sequelize[_0x3383('0x26')](0xb)},'defaultip':{'type':Sequelize[_0x3383('0x2')]},'defaultuser':{'type':Sequelize[_0x3383('0x2')]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpholdtimeout':{'type':Sequelize[_0x3383('0x26')](0xb)},'rtpkeepalive':{'type':Sequelize['INTEGER'](0xb)},'sendrpid':{'type':Sequelize['ENUM'](_0x3383('0x17'),'no',_0x3383('0x2b')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x3383('0x2')]},'callbackextension':{'type':Sequelize[_0x3383('0x2')]},'timert1':{'type':Sequelize['INTEGER'](0xb)},'timerb':{'type':Sequelize['INTEGER'](0xb)},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb)},'contactpermit':{'type':Sequelize['STRING']},'contactdeny':{'type':Sequelize[_0x3383('0x2')]},'contactacl':{'type':Sequelize['STRING']},'unsolicited_mailbox':{'type':Sequelize['STRING']},'use_q850_reason':{'type':Sequelize[_0x3383('0x2')]},'maxforwards':{'type':Sequelize[_0x3383('0x26')](0xb)},'encryption':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no')},'force_avp':{'type':Sequelize[_0x3383('0x7')]('yes','no')},'icesupport':{'type':Sequelize['ENUM'](_0x3383('0x17'),'no')},'dtlsenable':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no')},'dtlsverify':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no',_0x3383('0x2c'),_0x3383('0x2d'))},'dtlsrekey':{'type':Sequelize[_0x3383('0x26')](0xb)},'dtlscertfile':{'type':Sequelize[_0x3383('0x2')]},'dtlsprivatekey':{'type':Sequelize[_0x3383('0x2')]},'dtlscipher':{'type':Sequelize[_0x3383('0x2')]},'dtlscafile':{'type':Sequelize[_0x3383('0x2')]},'dtlscapath':{'type':Sequelize[_0x3383('0x2')]},'dtlssetup':{'type':Sequelize[_0x3383('0x7')]('active',_0x3383('0x2e'),_0x3383('0x2f')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x3383('0x2')]},'usereqphone':{'type':Sequelize[_0x3383('0x7')]('yes','no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x3383('0x2')]},'recordofffeature':{'type':Sequelize['STRING']},'call_limit':{'type':Sequelize[_0x3383('0x26')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no')},'subscribemwi':{'type':Sequelize[_0x3383('0x7')]('yes','no')},'vmexten':{'type':Sequelize[_0x3383('0x2')]},'mohinterpret':{'type':Sequelize[_0x3383('0x2')]},'mohsuggest':{'type':Sequelize[_0x3383('0x2')]},'parkinglot':{'type':Sequelize[_0x3383('0x2')]},'description':{'type':Sequelize[_0x3383('0x2')]},'host':{'type':Sequelize['STRING'],'defaultValue':'dynamic'},'canreinvite':{'type':Sequelize[_0x3383('0x7')](_0x3383('0x17'),'no',_0x3383('0x18'),_0x3383('0x19'),_0x3383('0x30')),'defaultValue':'no'},'registry':{'type':Sequelize['STRING']},'otherFields':{'type':Sequelize[_0x3383('0x2')]},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize['STRING'],'defaultValue':'no'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5b3=['then','info','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Trunk,\x20%s,\x20%s','request\x20sent','result','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','destroy','get','Trunks','UserProfileResource','stack','name','index','map','Trunk','rawAttributes','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','catch','clone','find','omit','createdAt','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','Reload','chan_sip.so','/etc/asterisk/sip_xcally_registers.conf','update','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request'];(function(_0xdd9a5f,_0x3ced93){var _0x3464b7=function(_0x35b534){while(--_0x35b534){_0xdd9a5f['push'](_0xdd9a5f['shift']());}};_0x3464b7(++_0x3ced93);}(_0xe5b3,0x133));var _0x3e5b=function(_0x5b7e27,_0x36fb5a){_0x5b7e27=_0x5b7e27-0x0;var _0xbfe91f=_0xe5b3[_0x5b7e27];return _0xbfe91f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3e5b('0x0'));var zipdir=require(_0x3e5b('0x1'));var jsonpatch=require(_0x3e5b('0x2'));var rp=require(_0x3e5b('0x3'));var moment=require(_0x3e5b('0x4'));var BPromise=require(_0x3e5b('0x5'));var Mustache=require(_0x3e5b('0x6'));var util=require(_0x3e5b('0x7'));var path=require(_0x3e5b('0x8'));var sox=require(_0x3e5b('0x9'));var csv=require(_0x3e5b('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3e5b('0xb'));var _=require(_0x3e5b('0xc'));var squel=require('squel');var crypto=require(_0x3e5b('0xd'));var jsforce=require(_0x3e5b('0xe'));var deskjs=require(_0x3e5b('0xf'));var toCsv=require(_0x3e5b('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x3e5b('0x10'));var authService=require(_0x3e5b('0x11'));var qs=require(_0x3e5b('0x12'));var as=require(_0x3e5b('0x13'));var hardwareService=require(_0x3e5b('0x14'));var logger=require('../../config/logger')(_0x3e5b('0x15'));var utils=require('../../config/utils');var config=require(_0x3e5b('0x16'));var licenseUtil=require(_0x3e5b('0x17'));var db=require(_0x3e5b('0x18'))['db'];var jayson=require(_0x3e5b('0x19'));var client=jayson[_0x3e5b('0x1a')][_0x3e5b('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x405e70,_0x560010,_0x39a2a1,_0x5f2f9c){return new BPromise(function(_0x51a188,_0x4d71a3){var _0x3754e3=_0x5f2f9c||client;return _0x3754e3[_0x3e5b('0x1c')](_0x405e70,_0x39a2a1)[_0x3e5b('0x1d')](function(_0x4fb471){logger[_0x3e5b('0x1e')]('Trunk,\x20%s,\x20%s',_0x560010,'request\x20sent');logger[_0x3e5b('0x1f')](_0x3e5b('0x20'),_0x560010,'request\x20sent',JSON[_0x3e5b('0x21')](_0x4fb471));if(_0x4fb471[_0x3e5b('0x22')]){if(_0x4fb471['error'][_0x3e5b('0x23')]===0x1f4){logger[_0x3e5b('0x22')]('Trunk,\x20%s,\x20%s',_0x560010,_0x4fb471['error'][_0x3e5b('0x24')]);return _0x4d71a3(_0x4fb471[_0x3e5b('0x22')][_0x3e5b('0x24')]);}logger[_0x3e5b('0x22')](_0x3e5b('0x25'),_0x560010,_0x4fb471[_0x3e5b('0x22')][_0x3e5b('0x24')]);return _0x51a188(_0x4fb471[_0x3e5b('0x22')][_0x3e5b('0x24')]);}else{logger[_0x3e5b('0x1e')](_0x3e5b('0x25'),_0x560010,_0x3e5b('0x26'));_0x51a188(_0x4fb471[_0x3e5b('0x27')][_0x3e5b('0x24')]);}})['catch'](function(_0x433f9c){logger[_0x3e5b('0x22')](_0x3e5b('0x25'),_0x560010,_0x433f9c);_0x4d71a3(_0x433f9c);});});}function respondWithStatusCode(_0x150674,_0x50039b){_0x50039b=_0x50039b||0xcc;return function(_0x1eb80f){if(_0x1eb80f){return _0x150674['sendStatus'](_0x50039b);}return _0x150674[_0x3e5b('0x28')](_0x50039b)[_0x3e5b('0x29')]();};}function respondWithResult(_0x4d5e61,_0x41b684){_0x41b684=_0x41b684||0xc8;return function(_0x2f6368){if(_0x2f6368){return _0x4d5e61[_0x3e5b('0x28')](_0x41b684)[_0x3e5b('0x2a')](_0x2f6368);}};}function respondWithFilteredResult(_0x3bb749,_0x26c7f2){return function(_0x160e87){if(_0x160e87){var _0x2ddf57=typeof _0x26c7f2['offset']===_0x3e5b('0x2b')&&typeof _0x26c7f2['limit']===_0x3e5b('0x2b');var _0x4fd64b=_0x160e87[_0x3e5b('0x2c')];var _0x1f6473=_0x2ddf57?0x0:_0x26c7f2[_0x3e5b('0x2d')];var _0x475b39=_0x2ddf57?_0x160e87[_0x3e5b('0x2c')]:_0x26c7f2[_0x3e5b('0x2d')]+_0x26c7f2[_0x3e5b('0x2e')];var _0x9c2123;if(_0x475b39>=_0x4fd64b){_0x475b39=_0x4fd64b;_0x9c2123=0xc8;}else{_0x9c2123=0xce;}_0x3bb749[_0x3e5b('0x28')](_0x9c2123);return _0x3bb749[_0x3e5b('0x2f')](_0x3e5b('0x30'),_0x1f6473+'-'+_0x475b39+'/'+_0x4fd64b)['json'](_0x160e87);}return null;};}function patchUpdates(_0x21bc10){return function(_0x1882aa){try{jsonpatch[_0x3e5b('0x31')](_0x1882aa,_0x21bc10,!![]);}catch(_0x2a14eb){return BPromise[_0x3e5b('0x32')](_0x2a14eb);}return _0x1882aa[_0x3e5b('0x33')]();};}function saveUpdates(_0x345927,_0x4c4e01){return function(_0x33f089){if(_0x33f089){return _0x33f089['update'](_0x345927)['then'](function(_0x32c6b0){return _0x32c6b0;});}return null;};}function removeEntity(_0x78d68a,_0x51ea0d){return function(_0x40e37d){if(_0x40e37d){return _0x40e37d[_0x3e5b('0x34')]()[_0x3e5b('0x1d')](function(){var _0x33e356=_0x40e37d[_0x3e5b('0x35')]({'plain':!![]});var _0x26f842=_0x3e5b('0x36');return db[_0x3e5b('0x37')][_0x3e5b('0x34')]({'where':{'type':_0x26f842,'resourceId':_0x33e356['id']}})[_0x3e5b('0x1d')](function(){return _0x40e37d;});})[_0x3e5b('0x1d')](function(){_0x78d68a[_0x3e5b('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x141b7e,_0xec45c5){return function(_0x53caa2){if(!_0x53caa2){_0x141b7e['sendStatus'](0x194);}return _0x53caa2;};}function handleError(_0x471196,_0x56d7ef){_0x56d7ef=_0x56d7ef||0x1f4;return function(_0x2939da){logger[_0x3e5b('0x22')](_0x2939da[_0x3e5b('0x38')]);if(_0x2939da[_0x3e5b('0x39')]){delete _0x2939da['name'];}_0x471196[_0x3e5b('0x28')](_0x56d7ef)['send'](_0x2939da);};}exports[_0x3e5b('0x3a')]=function(_0x5ec841,_0x47f7c8){var _0x48f414={},_0x10c202={},_0x174ebf={'count':0x0,'rows':[]};var _0x2eaa30=_[_0x3e5b('0x3b')](db[_0x3e5b('0x3c')][_0x3e5b('0x3d')],function(_0x5466ac){return{'name':_0x5466ac['fieldName'],'type':_0x5466ac['type']['key']};});_0x10c202['model']=_['map'](_0x2eaa30,'name');_0x10c202[_0x3e5b('0x3e')]=_[_0x3e5b('0x3f')](_0x5ec841[_0x3e5b('0x3e')]);_0x10c202[_0x3e5b('0x40')]=_[_0x3e5b('0x41')](_0x10c202[_0x3e5b('0x42')],_0x10c202[_0x3e5b('0x3e')]);_0x48f414[_0x3e5b('0x43')]=_[_0x3e5b('0x41')](_0x10c202[_0x3e5b('0x42')],qs[_0x3e5b('0x44')](_0x5ec841['query'][_0x3e5b('0x44')]));_0x48f414[_0x3e5b('0x43')]=_0x48f414[_0x3e5b('0x43')][_0x3e5b('0x45')]?_0x48f414[_0x3e5b('0x43')]:_0x10c202[_0x3e5b('0x42')];if(!_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x46')](_0x3e5b('0x47'))){_0x48f414[_0x3e5b('0x2e')]=qs[_0x3e5b('0x2e')](_0x5ec841['query']['limit']);_0x48f414['offset']=qs['offset'](_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x2d')]);}_0x48f414[_0x3e5b('0x48')]=qs[_0x3e5b('0x49')](_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x49')]);_0x48f414[_0x3e5b('0x4a')]=qs[_0x3e5b('0x40')](_[_0x3e5b('0x4b')](_0x5ec841[_0x3e5b('0x3e')],_0x10c202['filters']),_0x2eaa30);if(_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x4c')]){_0x48f414[_0x3e5b('0x4a')]=_[_0x3e5b('0x4d')](_0x48f414[_0x3e5b('0x4a')],{'$or':_['map'](_0x2eaa30,function(_0x588ee7){if(_0x588ee7['type']!==_0x3e5b('0x4e')){var _0x20af6a={};_0x20af6a[_0x588ee7[_0x3e5b('0x39')]]={'$like':'%'+_0x5ec841['query']['filter']+'%'};return _0x20af6a;}})});}_0x48f414=_[_0x3e5b('0x4d')]({},_0x48f414,_0x5ec841[_0x3e5b('0x4f')]);var _0x123947={'where':_0x48f414['where']};return db['Trunk'][_0x3e5b('0x2c')](_0x123947)['then'](function(_0x14b62a){_0x174ebf[_0x3e5b('0x2c')]=_0x14b62a;if(_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x50')]){_0x48f414[_0x3e5b('0x51')]=[{'all':!![]}];}return db[_0x3e5b('0x3c')][_0x3e5b('0x52')](_0x48f414);})[_0x3e5b('0x1d')](function(_0x339852){_0x174ebf['rows']=_0x339852;return _0x174ebf;})[_0x3e5b('0x1d')](respondWithFilteredResult(_0x47f7c8,_0x48f414))['catch'](handleError(_0x47f7c8,null));};exports[_0x3e5b('0x53')]=function(_0x2e7047,_0x26e11e){var _0x3d51fa={'raw':![],'where':{'id':_0x2e7047[_0x3e5b('0x54')]['id']}},_0x291e4d={};_0x291e4d[_0x3e5b('0x42')]=_[_0x3e5b('0x3f')](db[_0x3e5b('0x3c')][_0x3e5b('0x3d')]);_0x291e4d[_0x3e5b('0x3e')]=_[_0x3e5b('0x3f')](_0x2e7047[_0x3e5b('0x3e')]);_0x291e4d['filters']=_[_0x3e5b('0x41')](_0x291e4d[_0x3e5b('0x42')],_0x291e4d[_0x3e5b('0x3e')]);_0x3d51fa[_0x3e5b('0x43')]=_[_0x3e5b('0x41')](_0x291e4d[_0x3e5b('0x42')],qs['fields'](_0x2e7047[_0x3e5b('0x3e')][_0x3e5b('0x44')]));_0x3d51fa[_0x3e5b('0x43')]=_0x3d51fa[_0x3e5b('0x43')][_0x3e5b('0x45')]?_0x3d51fa[_0x3e5b('0x43')]:_0x291e4d[_0x3e5b('0x42')];if(_0x2e7047[_0x3e5b('0x3e')]['includeAll']){_0x3d51fa[_0x3e5b('0x51')]=[{'all':!![]}];}_0x3d51fa=_['merge']({},_0x3d51fa,_0x2e7047['options']);return db[_0x3e5b('0x3c')]['find'](_0x3d51fa)[_0x3e5b('0x1d')](handleEntityNotFound(_0x26e11e,null))[_0x3e5b('0x1d')](respondWithResult(_0x26e11e,null))[_0x3e5b('0x55')](handleError(_0x26e11e,null));};exports[_0x3e5b('0x56')]=function(_0x4a492b,_0x5ddeee){var _0x545712={'where':{'id':_0x4a492b[_0x3e5b('0x54')]['id']}},_0x581b94={};_0x581b94[_0x3e5b('0x42')]=_[_0x3e5b('0x3f')](db[_0x3e5b('0x3c')][_0x3e5b('0x3d')]);_0x545712['attributes']=_['intersection'](_0x581b94[_0x3e5b('0x42')],qs[_0x3e5b('0x44')](_0x4a492b[_0x3e5b('0x3e')][_0x3e5b('0x44')]));_0x545712[_0x3e5b('0x43')]=_0x545712['attributes']['length']?_0x545712['attributes']:_0x581b94['model'];if(_0x4a492b[_0x3e5b('0x3e')][_0x3e5b('0x50')]){_0x545712[_0x3e5b('0x51')]=[{'all':!![]}];}_0x545712=_[_0x3e5b('0x4d')]({},_0x545712,_0x4a492b[_0x3e5b('0x4f')]);return db[_0x3e5b('0x3c')][_0x3e5b('0x57')](_0x545712)[_0x3e5b('0x1d')](handleEntityNotFound(_0x5ddeee,null))['then'](function(_0x285db6){if(_0x285db6){var _0x29897b=_0x285db6[_0x3e5b('0x35')]({'plain':!![]});_0x29897b=qs[_0x3e5b('0x58')](_0x29897b,['id',_0x3e5b('0x59'),'updatedAt']);_0x4a492b[_0x3e5b('0x5a')]=_['omit'](_0x4a492b[_0x3e5b('0x5a')],['id',_0x3e5b('0x59'),'updatedAt']);return db['Trunk']['create'](_[_0x3e5b('0x4d')](_0x29897b,_0x4a492b['body']),{'include':_0x4a492b[_0x3e5b('0x3e')][_0x3e5b('0x50')]?[{'all':!![]}]:undefined})[_0x3e5b('0x1d')](function(_0x40197c){var _0x14f187=_0x4a492b['user']['get']({'plain':!![]});if(!_0x14f187)throw new Error(_0x3e5b('0x5b'));if(_0x14f187[_0x3e5b('0x5c')]===_0x3e5b('0x5d')){var _0x4dfb45=_0x40197c[_0x3e5b('0x35')]({'plain':!![]});var _0x3c5293=_0x3e5b('0x36');return db[_0x3e5b('0x5e')][_0x3e5b('0x57')]({'where':{'name':_0x3c5293,'userProfileId':_0x14f187[_0x3e5b('0x5f')]},'raw':!![]})[_0x3e5b('0x1d')](function(_0x4a1ce3){if(_0x4a1ce3&&_0x4a1ce3[_0x3e5b('0x60')]===0x0){return db[_0x3e5b('0x37')][_0x3e5b('0x61')]({'name':_0x4dfb45[_0x3e5b('0x39')],'resourceId':_0x4dfb45['id'],'type':_0x4a1ce3[_0x3e5b('0x39')],'sectionId':_0x4a1ce3['id']},{})[_0x3e5b('0x1d')](function(){return _0x40197c;});}else{return _0x40197c;}})[_0x3e5b('0x55')](function(_0x2411c3){logger[_0x3e5b('0x22')](_0x3e5b('0x62'),_0x2411c3);throw _0x2411c3;});}return _0x40197c;});}})['then'](respondWithResult(_0x5ddeee,0xc9))[_0x3e5b('0x55')](handleError(_0x5ddeee,null));};exports[_0x3e5b('0x61')]=function(_0x5af305,_0x177144,_0x31ef31){var _0x561c78;return db['Trunk']['create'](_0x5af305[_0x3e5b('0x5a')],{'raw':!![]})[_0x3e5b('0x1d')](function(_0x498e6d){_0x561c78=_0x498e6d;return db[_0x3e5b('0x3c')][_0x3e5b('0x52')]({'raw':!![]});})['then'](function(_0x3d3bf2){var _0x17f60f=fs[_0x3e5b('0x63')](path[_0x3e5b('0x64')](config[_0x3e5b('0x65')],_0x3e5b('0x66')),_0x3e5b('0x67'));var _0x410c7a=fs[_0x3e5b('0x63')](path['join'](config[_0x3e5b('0x65')],_0x3e5b('0x68')),_0x3e5b('0x67'));var _0x40103e=ejs[_0x3e5b('0x69')](_0x17f60f,{'trunks':_0x3d3bf2||[]});fs[_0x3e5b('0x6a')](_0x3e5b('0x6b'),_0x40103e);if(_0x561c78['registry']){var _0x590f0c=ejs[_0x3e5b('0x69')](_0x410c7a,{'trunks':_0x3d3bf2||[]});fs[_0x3e5b('0x6a')]('/etc/asterisk/sip_xcally_registers.conf',_0x590f0c);}})[_0x3e5b('0x1d')](function(){return respondWithRpcPromise(_0x3e5b('0x6c'),_0x3e5b('0x61'),{'module':_0x3e5b('0x6d')});})[_0x3e5b('0x1d')](function(){var _0x9deb09=_0x5af305[_0x3e5b('0x5d')]['get']({'plain':!![]});if(!_0x9deb09)throw new Error(_0x3e5b('0x5b'));if(_0x9deb09[_0x3e5b('0x5c')]==='user'){var _0x577747=_0x561c78['get']({'plain':!![]});return db[_0x3e5b('0x5e')][_0x3e5b('0x57')]({'where':{'name':_0x3e5b('0x36'),'userProfileId':_0x9deb09[_0x3e5b('0x5f')]},'raw':!![]})[_0x3e5b('0x1d')](function(_0x1ba550){if(_0x1ba550&&_0x1ba550['autoAssociation']===0x0){return db[_0x3e5b('0x37')][_0x3e5b('0x61')]({'name':_0x577747['name'],'resourceId':_0x577747['id'],'type':_0x1ba550[_0x3e5b('0x39')],'sectionId':_0x1ba550['id']},{})['then'](function(){return _0x561c78;});}else{return _0x561c78;}})['catch'](function(_0x211e73){logger[_0x3e5b('0x22')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x211e73);throw _0x211e73;});}return _0x561c78;})[_0x3e5b('0x1d')](respondWithResult(_0x177144,0xc9))[_0x3e5b('0x55')](handleError(_0x177144,null));};exports['update']=function(_0x2e36af,_0x185640,_0x14baa9){var _0x1425eb;return db[_0x3e5b('0x3c')][_0x3e5b('0x57')]({'where':{'id':_0x2e36af['params']['id']}})['then'](handleEntityNotFound(_0x185640,null))[_0x3e5b('0x1d')](saveUpdates(_0x2e36af['body'],null))['then'](function(_0x25d3d8){if(_0x25d3d8){_0x1425eb=_0x25d3d8;return db[_0x3e5b('0x3c')][_0x3e5b('0x52')]({'raw':!![]});}})['then'](function(_0x2e5fa3){if(_0x2e5fa3){var _0x4b8d19=fs[_0x3e5b('0x63')](path['join'](config[_0x3e5b('0x65')],_0x3e5b('0x66')),_0x3e5b('0x67'));var _0xdf2677=fs['readFileSync'](path[_0x3e5b('0x64')](config['root'],_0x3e5b('0x68')),_0x3e5b('0x67'));var _0x58ccf3=ejs[_0x3e5b('0x69')](_0x4b8d19,{'trunks':_0x2e5fa3||[]});fs[_0x3e5b('0x6a')](_0x3e5b('0x6b'),_0x58ccf3);var _0x5ad011=ejs[_0x3e5b('0x69')](_0xdf2677,{'trunks':_0x2e5fa3||[]});fs[_0x3e5b('0x6a')](_0x3e5b('0x6e'),_0x5ad011);return respondWithRpcPromise('Reload',_0x3e5b('0x6f'),{'module':_0x3e5b('0x6d')});}return null;})['then'](function(_0xd9d941){if(_0xd9d941){return _0x1425eb;}})[_0x3e5b('0x1d')](respondWithResult(_0x185640,null))[_0x3e5b('0x55')](handleError(_0x185640,null));};exports['destroy']=function(_0x3b3306,_0x30e079,_0x352f7e){var _0x1d7c05;return db['Trunk'][_0x3e5b('0x57')]({'where':{'id':_0x3b3306['params']['id']}})[_0x3e5b('0x1d')](handleEntityNotFound(_0x30e079,null))['then'](removeEntity(_0x30e079,null))[_0x3e5b('0x1d')](function(){return db[_0x3e5b('0x3c')]['findAll']({'raw':!![]});})[_0x3e5b('0x1d')](function(_0x2299b9){var _0x56ff9d=fs[_0x3e5b('0x63')](path[_0x3e5b('0x64')](config[_0x3e5b('0x65')],_0x3e5b('0x66')),'utf8');var _0x53328b=fs[_0x3e5b('0x63')](path[_0x3e5b('0x64')](config[_0x3e5b('0x65')],_0x3e5b('0x68')),_0x3e5b('0x67'));var _0x3d1193=ejs['render'](_0x56ff9d,{'trunks':_0x2299b9});var _0x5d6aae=ejs[_0x3e5b('0x69')](_0x53328b,{'trunks':_0x2299b9});fs[_0x3e5b('0x6a')](_0x3e5b('0x6b'),_0x3d1193);fs[_0x3e5b('0x6a')](_0x3e5b('0x6e'),_0x5d6aae);return respondWithRpcPromise(_0x3e5b('0x6c'),_0x3e5b('0x34'),{'module':_0x3e5b('0x6d')});})['catch'](handleError(_0x30e079,null));};
\ No newline at end of file
+var _0xe14d=['options','includeAll','include','findAll','rows','params','keys','rawAttributes','find','omit','createdAt','updatedAt','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','server/files/templates/trunk.ejs','utf8','root','server/files/templates/registry.ejs','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','Reload','UserProfileSection','autoAssociation','readFileSync','render','/etc/asterisk/sip_xcally_registers.conf','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','get','Trunks','UserProfileResource','destroy','stack','name','map','Trunk','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','nolimit','order','where','pick','filter','merge','VIRTUAL'];(function(_0x320596,_0x57dd75){var _0x1dbde8=function(_0x1b7e2a){while(--_0x1b7e2a){_0x320596['push'](_0x320596['shift']());}};_0x1dbde8(++_0x57dd75);}(_0xe14d,0x1ee));var _0xde14=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0xe14d[_0x1035c1];return _0x308d67;};'use strict';var emlformat=require(_0xde14('0x0'));var rimraf=require(_0xde14('0x1'));var zipdir=require(_0xde14('0x2'));var jsonpatch=require(_0xde14('0x3'));var rp=require('request-promise');var moment=require(_0xde14('0x4'));var BPromise=require(_0xde14('0x5'));var Mustache=require('mustache');var util=require(_0xde14('0x6'));var path=require(_0xde14('0x7'));var sox=require(_0xde14('0x8'));var csv=require(_0xde14('0x9'));var ejs=require(_0xde14('0xa'));var fs=require('fs');var fs_extra=require(_0xde14('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xde14('0xc'));var jsforce=require(_0xde14('0xd'));var deskjs=require(_0xde14('0xe'));var toCsv=require(_0xde14('0x9'));var querystring=require(_0xde14('0xf'));var Papa=require(_0xde14('0x10'));var Redis=require(_0xde14('0x11'));var authService=require(_0xde14('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xde14('0x13'));var hardwareService=require(_0xde14('0x14'));var logger=require(_0xde14('0x15'))(_0xde14('0x16'));var utils=require(_0xde14('0x17'));var config=require(_0xde14('0x18'));var licenseUtil=require(_0xde14('0x19'));var db=require(_0xde14('0x1a'))['db'];var jayson=require(_0xde14('0x1b'));var client=jayson[_0xde14('0x1c')][_0xde14('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x464624,_0x3521d4,_0x281c54,_0x1489e9){return new BPromise(function(_0x54c58b,_0x584959){var _0x23c878=_0x1489e9||client;return _0x23c878[_0xde14('0x1e')](_0x464624,_0x281c54)[_0xde14('0x1f')](function(_0x4c86ff){logger[_0xde14('0x20')](_0xde14('0x21'),_0x3521d4,_0xde14('0x22'));logger[_0xde14('0x23')](_0xde14('0x24'),_0x3521d4,_0xde14('0x22'),JSON[_0xde14('0x25')](_0x4c86ff));if(_0x4c86ff[_0xde14('0x26')]){if(_0x4c86ff[_0xde14('0x26')][_0xde14('0x27')]===0x1f4){logger['error'](_0xde14('0x21'),_0x3521d4,_0x4c86ff[_0xde14('0x26')][_0xde14('0x28')]);return _0x584959(_0x4c86ff[_0xde14('0x26')]['message']);}logger[_0xde14('0x26')]('Trunk,\x20%s,\x20%s',_0x3521d4,_0x4c86ff[_0xde14('0x26')]['message']);return _0x54c58b(_0x4c86ff[_0xde14('0x26')][_0xde14('0x28')]);}else{logger[_0xde14('0x20')](_0xde14('0x21'),_0x3521d4,_0xde14('0x22'));_0x54c58b(_0x4c86ff[_0xde14('0x29')][_0xde14('0x28')]);}})[_0xde14('0x2a')](function(_0xdd8d59){logger[_0xde14('0x26')](_0xde14('0x21'),_0x3521d4,_0xdd8d59);_0x584959(_0xdd8d59);});});}function respondWithStatusCode(_0xbaa078,_0x8f8033){_0x8f8033=_0x8f8033||0xcc;return function(_0x5ae4c1){if(_0x5ae4c1){return _0xbaa078[_0xde14('0x2b')](_0x8f8033);}return _0xbaa078[_0xde14('0x2c')](_0x8f8033)[_0xde14('0x2d')]();};}function respondWithResult(_0xbd05d6,_0x1bb7be){_0x1bb7be=_0x1bb7be||0xc8;return function(_0x21ef15){if(_0x21ef15){return _0xbd05d6[_0xde14('0x2c')](_0x1bb7be)[_0xde14('0x2e')](_0x21ef15);}};}function respondWithFilteredResult(_0x1618e1,_0x350a78){return function(_0x4eff65){if(_0x4eff65){var _0x309922=typeof _0x350a78[_0xde14('0x2f')]===_0xde14('0x30')&&typeof _0x350a78[_0xde14('0x31')]==='undefined';var _0x3fc2a4=_0x4eff65[_0xde14('0x32')];var _0x30c4a8=_0x309922?0x0:_0x350a78['offset'];var _0x4655fb=_0x309922?_0x4eff65['count']:_0x350a78[_0xde14('0x2f')]+_0x350a78[_0xde14('0x31')];var _0x3bb1da;if(_0x4655fb>=_0x3fc2a4){_0x4655fb=_0x3fc2a4;_0x3bb1da=0xc8;}else{_0x3bb1da=0xce;}_0x1618e1[_0xde14('0x2c')](_0x3bb1da);return _0x1618e1[_0xde14('0x33')](_0xde14('0x34'),_0x30c4a8+'-'+_0x4655fb+'/'+_0x3fc2a4)[_0xde14('0x2e')](_0x4eff65);}return null;};}function patchUpdates(_0x464666){return function(_0x4e7c5b){try{jsonpatch[_0xde14('0x35')](_0x4e7c5b,_0x464666,!![]);}catch(_0xbf49ac){return BPromise['reject'](_0xbf49ac);}return _0x4e7c5b[_0xde14('0x36')]();};}function saveUpdates(_0x4c9b15,_0x2e40ad){return function(_0x44e88a){if(_0x44e88a){return _0x44e88a[_0xde14('0x37')](_0x4c9b15)[_0xde14('0x1f')](function(_0x13c164){return _0x13c164;});}return null;};}function removeEntity(_0x57fc47,_0x26dfa9){return function(_0x57b98b){if(_0x57b98b){return _0x57b98b['destroy']()[_0xde14('0x1f')](function(){var _0x3c943b=_0x57b98b[_0xde14('0x38')]({'plain':!![]});var _0x319136=_0xde14('0x39');return db[_0xde14('0x3a')][_0xde14('0x3b')]({'where':{'type':_0x319136,'resourceId':_0x3c943b['id']}})[_0xde14('0x1f')](function(){return _0x57b98b;});})[_0xde14('0x1f')](function(){_0x57fc47['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c7136,_0x403007){return function(_0x20913d){if(!_0x20913d){_0x1c7136[_0xde14('0x2b')](0x194);}return _0x20913d;};}function handleError(_0x31cad4,_0x23813f){_0x23813f=_0x23813f||0x1f4;return function(_0x1f42ab){logger[_0xde14('0x26')](_0x1f42ab[_0xde14('0x3c')]);if(_0x1f42ab['name']){delete _0x1f42ab[_0xde14('0x3d')];}_0x31cad4['status'](_0x23813f)['send'](_0x1f42ab);};}exports['index']=function(_0xb0eba6,_0x258759){var _0x398f63={},_0x152dab={},_0x1228d8={'count':0x0,'rows':[]};var _0x8b5bb4=_[_0xde14('0x3e')](db[_0xde14('0x3f')]['rawAttributes'],function(_0xc2a39d){return{'name':_0xc2a39d[_0xde14('0x40')],'type':_0xc2a39d[_0xde14('0x41')][_0xde14('0x42')]};});_0x152dab[_0xde14('0x43')]=_[_0xde14('0x3e')](_0x8b5bb4,_0xde14('0x3d'));_0x152dab[_0xde14('0x44')]=_['keys'](_0xb0eba6[_0xde14('0x44')]);_0x152dab[_0xde14('0x45')]=_[_0xde14('0x46')](_0x152dab[_0xde14('0x43')],_0x152dab['query']);_0x398f63['attributes']=_[_0xde14('0x46')](_0x152dab[_0xde14('0x43')],qs[_0xde14('0x47')](_0xb0eba6[_0xde14('0x44')][_0xde14('0x47')]));_0x398f63['attributes']=_0x398f63[_0xde14('0x48')][_0xde14('0x49')]?_0x398f63[_0xde14('0x48')]:_0x152dab['model'];if(!_0xb0eba6[_0xde14('0x44')]['hasOwnProperty'](_0xde14('0x4a'))){_0x398f63['limit']=qs[_0xde14('0x31')](_0xb0eba6[_0xde14('0x44')][_0xde14('0x31')]);_0x398f63[_0xde14('0x2f')]=qs[_0xde14('0x2f')](_0xb0eba6[_0xde14('0x44')][_0xde14('0x2f')]);}_0x398f63[_0xde14('0x4b')]=qs['sort'](_0xb0eba6[_0xde14('0x44')]['sort']);_0x398f63[_0xde14('0x4c')]=qs['filters'](_[_0xde14('0x4d')](_0xb0eba6[_0xde14('0x44')],_0x152dab[_0xde14('0x45')]),_0x8b5bb4);if(_0xb0eba6[_0xde14('0x44')][_0xde14('0x4e')]){_0x398f63[_0xde14('0x4c')]=_[_0xde14('0x4f')](_0x398f63[_0xde14('0x4c')],{'$or':_['map'](_0x8b5bb4,function(_0x15859c){if(_0x15859c[_0xde14('0x41')]!==_0xde14('0x50')){var _0x4b1ef7={};_0x4b1ef7[_0x15859c['name']]={'$like':'%'+_0xb0eba6[_0xde14('0x44')][_0xde14('0x4e')]+'%'};return _0x4b1ef7;}})});}_0x398f63=_[_0xde14('0x4f')]({},_0x398f63,_0xb0eba6[_0xde14('0x51')]);var _0x39572b={'where':_0x398f63[_0xde14('0x4c')]};return db['Trunk'][_0xde14('0x32')](_0x39572b)['then'](function(_0xa408ec){_0x1228d8[_0xde14('0x32')]=_0xa408ec;if(_0xb0eba6['query'][_0xde14('0x52')]){_0x398f63[_0xde14('0x53')]=[{'all':!![]}];}return db[_0xde14('0x3f')][_0xde14('0x54')](_0x398f63);})[_0xde14('0x1f')](function(_0x1c87e1){_0x1228d8[_0xde14('0x55')]=_0x1c87e1;return _0x1228d8;})['then'](respondWithFilteredResult(_0x258759,_0x398f63))[_0xde14('0x2a')](handleError(_0x258759,null));};exports['show']=function(_0xfa80c8,_0x6aa9ab){var _0x237be4={'raw':![],'where':{'id':_0xfa80c8[_0xde14('0x56')]['id']}},_0x235202={};_0x235202[_0xde14('0x43')]=_[_0xde14('0x57')](db[_0xde14('0x3f')][_0xde14('0x58')]);_0x235202[_0xde14('0x44')]=_['keys'](_0xfa80c8[_0xde14('0x44')]);_0x235202[_0xde14('0x45')]=_[_0xde14('0x46')](_0x235202[_0xde14('0x43')],_0x235202[_0xde14('0x44')]);_0x237be4['attributes']=_[_0xde14('0x46')](_0x235202['model'],qs[_0xde14('0x47')](_0xfa80c8[_0xde14('0x44')][_0xde14('0x47')]));_0x237be4[_0xde14('0x48')]=_0x237be4[_0xde14('0x48')]['length']?_0x237be4['attributes']:_0x235202[_0xde14('0x43')];if(_0xfa80c8['query'][_0xde14('0x52')]){_0x237be4[_0xde14('0x53')]=[{'all':!![]}];}_0x237be4=_[_0xde14('0x4f')]({},_0x237be4,_0xfa80c8[_0xde14('0x51')]);return db[_0xde14('0x3f')][_0xde14('0x59')](_0x237be4)[_0xde14('0x1f')](handleEntityNotFound(_0x6aa9ab,null))[_0xde14('0x1f')](respondWithResult(_0x6aa9ab,null))[_0xde14('0x2a')](handleError(_0x6aa9ab,null));};exports['clone']=function(_0x205a94,_0x2c972b){var _0x1ea6d2={'where':{'id':_0x205a94[_0xde14('0x56')]['id']}},_0x21d226={};_0x21d226['model']=_[_0xde14('0x57')](db['Trunk'][_0xde14('0x58')]);_0x1ea6d2[_0xde14('0x48')]=_[_0xde14('0x46')](_0x21d226[_0xde14('0x43')],qs[_0xde14('0x47')](_0x205a94[_0xde14('0x44')][_0xde14('0x47')]));_0x1ea6d2[_0xde14('0x48')]=_0x1ea6d2['attributes']['length']?_0x1ea6d2['attributes']:_0x21d226[_0xde14('0x43')];if(_0x205a94['query']['includeAll']){_0x1ea6d2[_0xde14('0x53')]=[{'all':!![]}];}_0x1ea6d2=_[_0xde14('0x4f')]({},_0x1ea6d2,_0x205a94[_0xde14('0x51')]);return db[_0xde14('0x3f')][_0xde14('0x59')](_0x1ea6d2)[_0xde14('0x1f')](handleEntityNotFound(_0x2c972b,null))[_0xde14('0x1f')](function(_0x13f698){if(_0x13f698){var _0x2dd108=_0x13f698['get']({'plain':!![]});_0x2dd108=qs[_0xde14('0x5a')](_0x2dd108,['id',_0xde14('0x5b'),_0xde14('0x5c')]);_0x205a94['body']=_[_0xde14('0x5a')](_0x205a94['body'],['id',_0xde14('0x5b'),_0xde14('0x5c')]);return db[_0xde14('0x3f')][_0xde14('0x5d')](_[_0xde14('0x4f')](_0x2dd108,_0x205a94[_0xde14('0x5e')]),{'include':_0x205a94[_0xde14('0x44')]['includeAll']?[{'all':!![]}]:undefined})[_0xde14('0x1f')](function(_0x25ba7e){var _0x1a0bb1=_0x205a94[_0xde14('0x5f')][_0xde14('0x38')]({'plain':!![]});if(!_0x1a0bb1)throw new Error(_0xde14('0x60'));if(_0x1a0bb1[_0xde14('0x61')]==='user'){var _0x4a9e85=_0x25ba7e[_0xde14('0x38')]({'plain':!![]});var _0x19a162=_0xde14('0x39');return db['UserProfileSection'][_0xde14('0x59')]({'where':{'name':_0x19a162,'userProfileId':_0x1a0bb1[_0xde14('0x62')]},'raw':!![]})[_0xde14('0x1f')](function(_0x32e075){if(_0x32e075&&_0x32e075['autoAssociation']===0x0){return db['UserProfileResource'][_0xde14('0x5d')]({'name':_0x4a9e85[_0xde14('0x3d')],'resourceId':_0x4a9e85['id'],'type':_0x32e075[_0xde14('0x3d')],'sectionId':_0x32e075['id']},{})[_0xde14('0x1f')](function(){return _0x25ba7e;});}else{return _0x25ba7e;}})[_0xde14('0x2a')](function(_0x120284){logger[_0xde14('0x26')](_0xde14('0x63'),_0x120284);throw _0x120284;});}return _0x25ba7e;});}})[_0xde14('0x1f')](respondWithResult(_0x2c972b,0xc9))[_0xde14('0x2a')](handleError(_0x2c972b,null));};exports[_0xde14('0x5d')]=function(_0x299b69,_0x1ff577,_0x42329a){var _0x6a641f;return db[_0xde14('0x3f')][_0xde14('0x5d')](_0x299b69[_0xde14('0x5e')],{'raw':!![]})[_0xde14('0x1f')](function(_0x1b5d70){_0x6a641f=_0x1b5d70;return db[_0xde14('0x3f')][_0xde14('0x54')]({'raw':!![]});})[_0xde14('0x1f')](function(_0x4809fa){var _0x1084fb=fs['readFileSync'](path[_0xde14('0x64')](config['root'],_0xde14('0x65')),_0xde14('0x66'));var _0x3aaba2=fs['readFileSync'](path['join'](config[_0xde14('0x67')],_0xde14('0x68')),_0xde14('0x66'));var _0x430bdb=ejs['render'](_0x1084fb,{'trunks':_0x4809fa||[]});fs[_0xde14('0x69')](_0xde14('0x6a'),_0x430bdb);if(_0x6a641f[_0xde14('0x6b')]){var _0x500344=ejs['render'](_0x3aaba2,{'trunks':_0x4809fa||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0x500344);}})[_0xde14('0x1f')](function(){return respondWithRpcPromise(_0xde14('0x6c'),_0xde14('0x5d'),{'module':'chan_sip.so'});})[_0xde14('0x1f')](function(){var _0x37f7c3=_0x299b69[_0xde14('0x5f')][_0xde14('0x38')]({'plain':!![]});if(!_0x37f7c3)throw new Error(_0xde14('0x60'));if(_0x37f7c3[_0xde14('0x61')]==='user'){var _0x579a6c=_0x6a641f[_0xde14('0x38')]({'plain':!![]});return db[_0xde14('0x6d')]['find']({'where':{'name':_0xde14('0x39'),'userProfileId':_0x37f7c3[_0xde14('0x62')]},'raw':!![]})[_0xde14('0x1f')](function(_0x367ede){if(_0x367ede&&_0x367ede[_0xde14('0x6e')]===0x0){return db[_0xde14('0x3a')][_0xde14('0x5d')]({'name':_0x579a6c['name'],'resourceId':_0x579a6c['id'],'type':_0x367ede['name'],'sectionId':_0x367ede['id']},{})['then'](function(){return _0x6a641f;});}else{return _0x6a641f;}})['catch'](function(_0x3dbda9){logger[_0xde14('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3dbda9);throw _0x3dbda9;});}return _0x6a641f;})['then'](respondWithResult(_0x1ff577,0xc9))[_0xde14('0x2a')](handleError(_0x1ff577,null));};exports[_0xde14('0x37')]=function(_0xe2b9f5,_0x5805ec,_0x1aa75d){var _0x2b1e2e;return db['Trunk'][_0xde14('0x59')]({'where':{'id':_0xe2b9f5[_0xde14('0x56')]['id']}})[_0xde14('0x1f')](handleEntityNotFound(_0x5805ec,null))[_0xde14('0x1f')](saveUpdates(_0xe2b9f5['body'],null))[_0xde14('0x1f')](function(_0x5a5b25){if(_0x5a5b25){_0x2b1e2e=_0x5a5b25;return db[_0xde14('0x3f')][_0xde14('0x54')]({'raw':!![]});}})[_0xde14('0x1f')](function(_0x5f49d1){if(_0x5f49d1){var _0x283eb8=fs[_0xde14('0x6f')](path[_0xde14('0x64')](config[_0xde14('0x67')],_0xde14('0x65')),'utf8');var _0x53433d=fs[_0xde14('0x6f')](path[_0xde14('0x64')](config[_0xde14('0x67')],'server/files/templates/registry.ejs'),_0xde14('0x66'));var _0x1a12b5=ejs[_0xde14('0x70')](_0x283eb8,{'trunks':_0x5f49d1||[]});fs[_0xde14('0x69')](_0xde14('0x6a'),_0x1a12b5);var _0x2cc5b7=ejs[_0xde14('0x70')](_0x53433d,{'trunks':_0x5f49d1||[]});fs['writeFileSync'](_0xde14('0x71'),_0x2cc5b7);return respondWithRpcPromise(_0xde14('0x6c'),_0xde14('0x37'),{'module':_0xde14('0x72')});}return null;})[_0xde14('0x1f')](function(_0x1732d0){if(_0x1732d0){return _0x2b1e2e;}})[_0xde14('0x1f')](respondWithResult(_0x5805ec,null))['catch'](handleError(_0x5805ec,null));};exports[_0xde14('0x3b')]=function(_0x1bdeae,_0x5f4b92,_0x4543f1){var _0x4a0108;return db[_0xde14('0x3f')]['find']({'where':{'id':_0x1bdeae[_0xde14('0x56')]['id']}})[_0xde14('0x1f')](handleEntityNotFound(_0x5f4b92,null))[_0xde14('0x1f')](removeEntity(_0x5f4b92,null))[_0xde14('0x1f')](function(){return db[_0xde14('0x3f')][_0xde14('0x54')]({'raw':!![]});})['then'](function(_0x43a155){var _0x58cf06=fs[_0xde14('0x6f')](path['join'](config[_0xde14('0x67')],_0xde14('0x65')),_0xde14('0x66'));var _0x4a1114=fs[_0xde14('0x6f')](path[_0xde14('0x64')](config[_0xde14('0x67')],'server/files/templates/registry.ejs'),'utf8');var _0x495741=ejs['render'](_0x58cf06,{'trunks':_0x43a155});var _0x381d6d=ejs[_0xde14('0x70')](_0x4a1114,{'trunks':_0x43a155});fs['writeFileSync'](_0xde14('0x6a'),_0x495741);fs[_0xde14('0x69')](_0xde14('0x71'),_0x381d6d);return respondWithRpcPromise(_0xde14('0x6c'),_0xde14('0x3b'),{'module':'chan_sip.so'});})[_0xde14('0x2a')](handleError(_0x5f4b92,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf03a=['define','Trunk','tools_trunks','lodash','util','api','moment','request-promise','path','../../config/environment','exports'];(function(_0x5548f9,_0x527467){var _0x59e640=function(_0x27bc2a){while(--_0x27bc2a){_0x5548f9['push'](_0x5548f9['shift']());}};_0x59e640(++_0x527467);}(_0xf03a,0x18f));var _0xaf03=function(_0x362763,_0x392351){_0x362763=_0x362763-0x0;var _0x53d26c=_0xf03a[_0x362763];return _0x53d26c;};'use strict';var _=require(_0xaf03('0x0'));var util=require(_0xaf03('0x1'));var logger=require('../../config/logger')(_0xaf03('0x2'));var moment=require(_0xaf03('0x3'));var BPromise=require('bluebird');var rp=require(_0xaf03('0x4'));var fs=require('fs');var path=require(_0xaf03('0x5'));var rimraf=require('rimraf');var config=require(_0xaf03('0x6'));var attributes=require('./trunk.attributes');module[_0xaf03('0x7')]=function(_0x1747bb,_0x3b35d5){return _0x1747bb[_0xaf03('0x8')](_0xaf03('0x9'),attributes,{'tableName':_0xaf03('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x65a9=['rimraf','./trunk.attributes','exports','Trunk','tools_trunks','api','moment','bluebird','request-promise','path'];(function(_0x3a4221,_0x459e63){var _0x54fd91=function(_0x5eb418){while(--_0x5eb418){_0x3a4221['push'](_0x3a4221['shift']());}};_0x54fd91(++_0x459e63);}(_0x65a9,0x109));var _0x965a=function(_0x52007e,_0x332a29){_0x52007e=_0x52007e-0x0;var _0x2de4bc=_0x65a9[_0x52007e];return _0x2de4bc;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x965a('0x0'));var moment=require(_0x965a('0x1'));var BPromise=require(_0x965a('0x2'));var rp=require(_0x965a('0x3'));var fs=require('fs');var path=require(_0x965a('0x4'));var rimraf=require(_0x965a('0x5'));var config=require('../../config/environment');var attributes=require(_0x965a('0x6'));module[_0x965a('0x7')]=function(_0x27d24d,_0x5c2e8d){return _0x27d24d['define'](_0x965a('0x8'),attributes,{'tableName':_0x965a('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05c0=['message','info','Trunk,\x20%s,\x20%s','catch','GetTrunk','findAll','options','raw','where','attributes','include','model','map','stringify','Trunk','find','then','ShowTrunk','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','jayson/promise','client','http','request','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','error','code'];(function(_0x12b215,_0x30e755){var _0x2f5ccb=function(_0x1575ea){while(--_0x1575ea){_0x12b215['push'](_0x12b215['shift']());}};_0x2f5ccb(++_0x30e755);}(_0x05c0,0x13b));var _0x005c=function(_0x58453b,_0xc85ed9){_0x58453b=_0x58453b-0x0;var _0x517ec3=_0x05c0[_0x58453b];return _0x517ec3;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x005c('0x0'));var BPromise=require(_0x005c('0x1'));var rs=require(_0x005c('0x2'));var fs=require('fs');var Redis=require(_0x005c('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x005c('0x4'))(_0x005c('0x5'));var config=require('../../config/environment');var jayson=require(_0x005c('0x6'));var client=jayson[_0x005c('0x7')][_0x005c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1eb407,_0x2796c9,_0x378d7c){return new BPromise(function(_0x1add13,_0x8f5021){return client[_0x005c('0x9')](_0x1eb407,_0x378d7c)['then'](function(_0x474aa5){logger['info']('Trunk,\x20%s,\x20%s',_0x2796c9,'request\x20sent');logger[_0x005c('0xa')](_0x005c('0xb'),_0x2796c9,_0x005c('0xc'),JSON['stringify'](_0x474aa5));if(_0x474aa5[_0x005c('0xd')]){if(_0x474aa5[_0x005c('0xd')][_0x005c('0xe')]===0x1f4){logger[_0x005c('0xd')]('Trunk,\x20%s,\x20%s',_0x2796c9,_0x474aa5['error'][_0x005c('0xf')]);return _0x8f5021(_0x474aa5['error'][_0x005c('0xf')]);}logger[_0x005c('0xd')]('Trunk,\x20%s,\x20%s',_0x2796c9,_0x474aa5[_0x005c('0xd')][_0x005c('0xf')]);return _0x1add13(_0x474aa5[_0x005c('0xd')][_0x005c('0xf')]);}else{logger[_0x005c('0x10')](_0x005c('0x11'),_0x2796c9,_0x005c('0xc'));_0x1add13(_0x474aa5['result'][_0x005c('0xf')]);}})[_0x005c('0x12')](function(_0x496f95){logger[_0x005c('0xd')]('Trunk,\x20%s,\x20%s',_0x2796c9,_0x496f95);_0x8f5021(_0x496f95);});});}exports[_0x005c('0x13')]=function(_0x46376f){var _0x340aa6=this;return new Promise(function(_0x1b6c1c,_0x5a63fb){return db['Trunk'][_0x005c('0x14')]({'raw':_0x46376f[_0x005c('0x15')]?_0x46376f['options'][_0x005c('0x16')]===undefined?!![]:![]:!![],'where':_0x46376f['options']?_0x46376f[_0x005c('0x15')][_0x005c('0x17')]||null:null,'attributes':_0x46376f[_0x005c('0x15')]?_0x46376f[_0x005c('0x15')][_0x005c('0x18')]||null:null,'limit':_0x46376f[_0x005c('0x15')]?_0x46376f[_0x005c('0x15')]['limit']||null:null,'include':_0x46376f[_0x005c('0x15')]?_0x46376f[_0x005c('0x15')][_0x005c('0x19')]?_['map'](_0x46376f[_0x005c('0x15')][_0x005c('0x19')],function(_0x265c79){return{'model':db[_0x265c79[_0x005c('0x1a')]],'as':_0x265c79['as'],'attributes':_0x265c79[_0x005c('0x18')],'include':_0x265c79[_0x005c('0x19')]?_[_0x005c('0x1b')](_0x265c79[_0x005c('0x19')],function(_0x52b315){return{'model':db[_0x52b315[_0x005c('0x1a')]],'as':_0x52b315['as'],'attributes':_0x52b315[_0x005c('0x18')],'include':_0x52b315[_0x005c('0x19')]?_[_0x005c('0x1b')](_0x52b315[_0x005c('0x19')],function(_0x50d8a8){return{'model':db[_0x50d8a8['model']],'as':_0x50d8a8['as'],'attributes':_0x50d8a8['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3b2107){logger['info']('GetTrunk',_0x46376f);logger[_0x005c('0xa')](_0x005c('0x13'),_0x46376f,JSON[_0x005c('0x1c')](_0x3b2107));_0x1b6c1c(_0x3b2107);})[_0x005c('0x12')](function(_0x3bb609){logger['error'](_0x005c('0x13'),_0x3bb609[_0x005c('0xf')],_0x46376f);_0x5a63fb(_0x340aa6['error'](0x1f4,_0x3bb609['message']));});});};exports['ShowTrunk']=function(_0x52133c){var _0x238300=this;return new Promise(function(_0x4077b7,_0x162c75){return db[_0x005c('0x1d')][_0x005c('0x1e')]({'raw':_0x52133c[_0x005c('0x15')]?_0x52133c['options'][_0x005c('0x16')]===undefined?!![]:![]:!![],'where':_0x52133c[_0x005c('0x15')]?_0x52133c[_0x005c('0x15')][_0x005c('0x17')]||null:null,'attributes':_0x52133c['options']?_0x52133c[_0x005c('0x15')]['attributes']||null:null,'include':_0x52133c[_0x005c('0x15')]?_0x52133c[_0x005c('0x15')][_0x005c('0x19')]?_[_0x005c('0x1b')](_0x52133c['options'][_0x005c('0x19')],function(_0x576b67){return{'model':db[_0x576b67[_0x005c('0x1a')]],'as':_0x576b67['as'],'attributes':_0x576b67[_0x005c('0x18')],'include':_0x576b67[_0x005c('0x19')]?_[_0x005c('0x1b')](_0x576b67['include'],function(_0x895686){return{'model':db[_0x895686[_0x005c('0x1a')]],'as':_0x895686['as'],'attributes':_0x895686[_0x005c('0x18')],'include':_0x895686['include']?_[_0x005c('0x1b')](_0x895686[_0x005c('0x19')],function(_0x324932){return{'model':db[_0x324932['model']],'as':_0x324932['as'],'attributes':_0x324932[_0x005c('0x18')]};}):[]};}):[]};}):[]:[]})[_0x005c('0x1f')](function(_0x30043f){logger['info']('ShowTrunk',_0x52133c);logger[_0x005c('0xa')]('ShowTrunk',_0x52133c,JSON[_0x005c('0x1c')](_0x30043f));_0x4077b7(_0x30043f);})[_0x005c('0x12')](function(_0x8b98ed){logger['error'](_0x005c('0x20'),_0x8b98ed[_0x005c('0xf')],_0x52133c);_0x162c75(_0x238300[_0x005c('0xd')](0x1f4,_0x8b98ed[_0x005c('0xf')]));});});};
\ No newline at end of file
+var _0xf3f7=['map','model','attributes','then','stringify','find','ShowTrunk','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','error','code','message','catch','GetTrunk','Trunk','findAll','options','raw','where','limit','include'];(function(_0x12aa27,_0x35adbd){var _0x447f68=function(_0x5142c1){while(--_0x5142c1){_0x12aa27['push'](_0x12aa27['shift']());}};_0x447f68(++_0x35adbd);}(_0xf3f7,0x1c3));var _0x7f3f=function(_0x2802e0,_0x183281){_0x2802e0=_0x2802e0-0x0;var _0x25f0fc=_0xf3f7[_0x2802e0];return _0x25f0fc;};'use strict';var _=require(_0x7f3f('0x0'));var util=require(_0x7f3f('0x1'));var moment=require(_0x7f3f('0x2'));var BPromise=require(_0x7f3f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7f3f('0x4'));var db=require(_0x7f3f('0x5'))['db'];var utils=require(_0x7f3f('0x6'));var logger=require(_0x7f3f('0x7'))(_0x7f3f('0x8'));var config=require('../../config/environment');var jayson=require(_0x7f3f('0x9'));var client=jayson[_0x7f3f('0xa')][_0x7f3f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1c86a4,_0x295a59,_0x5937c7){return new BPromise(function(_0xdaf72,_0xe8ba91){return client[_0x7f3f('0xc')](_0x1c86a4,_0x5937c7)['then'](function(_0x490054){logger[_0x7f3f('0xd')](_0x7f3f('0xe'),_0x295a59,_0x7f3f('0xf'));logger[_0x7f3f('0x10')](_0x7f3f('0x11'),_0x295a59,_0x7f3f('0xf'),JSON['stringify'](_0x490054));if(_0x490054[_0x7f3f('0x12')]){if(_0x490054[_0x7f3f('0x12')][_0x7f3f('0x13')]===0x1f4){logger[_0x7f3f('0x12')]('Trunk,\x20%s,\x20%s',_0x295a59,_0x490054[_0x7f3f('0x12')][_0x7f3f('0x14')]);return _0xe8ba91(_0x490054[_0x7f3f('0x12')]['message']);}logger[_0x7f3f('0x12')](_0x7f3f('0xe'),_0x295a59,_0x490054[_0x7f3f('0x12')][_0x7f3f('0x14')]);return _0xdaf72(_0x490054[_0x7f3f('0x12')][_0x7f3f('0x14')]);}else{logger[_0x7f3f('0xd')](_0x7f3f('0xe'),_0x295a59,_0x7f3f('0xf'));_0xdaf72(_0x490054['result']['message']);}})[_0x7f3f('0x15')](function(_0x4d802f){logger[_0x7f3f('0x12')](_0x7f3f('0xe'),_0x295a59,_0x4d802f);_0xe8ba91(_0x4d802f);});});}exports[_0x7f3f('0x16')]=function(_0x10b3eb){var _0x5ab821=this;return new Promise(function(_0x1500da,_0x349ed3){return db[_0x7f3f('0x17')][_0x7f3f('0x18')]({'raw':_0x10b3eb[_0x7f3f('0x19')]?_0x10b3eb[_0x7f3f('0x19')][_0x7f3f('0x1a')]===undefined?!![]:![]:!![],'where':_0x10b3eb[_0x7f3f('0x19')]?_0x10b3eb[_0x7f3f('0x19')][_0x7f3f('0x1b')]||null:null,'attributes':_0x10b3eb['options']?_0x10b3eb[_0x7f3f('0x19')]['attributes']||null:null,'limit':_0x10b3eb[_0x7f3f('0x19')]?_0x10b3eb[_0x7f3f('0x19')][_0x7f3f('0x1c')]||null:null,'include':_0x10b3eb[_0x7f3f('0x19')]?_0x10b3eb['options'][_0x7f3f('0x1d')]?_[_0x7f3f('0x1e')](_0x10b3eb[_0x7f3f('0x19')][_0x7f3f('0x1d')],function(_0x741115){return{'model':db[_0x741115[_0x7f3f('0x1f')]],'as':_0x741115['as'],'attributes':_0x741115[_0x7f3f('0x20')],'include':_0x741115[_0x7f3f('0x1d')]?_[_0x7f3f('0x1e')](_0x741115[_0x7f3f('0x1d')],function(_0x37d5de){return{'model':db[_0x37d5de[_0x7f3f('0x1f')]],'as':_0x37d5de['as'],'attributes':_0x37d5de[_0x7f3f('0x20')],'include':_0x37d5de[_0x7f3f('0x1d')]?_[_0x7f3f('0x1e')](_0x37d5de[_0x7f3f('0x1d')],function(_0x15c97d){return{'model':db[_0x15c97d[_0x7f3f('0x1f')]],'as':_0x15c97d['as'],'attributes':_0x15c97d[_0x7f3f('0x20')]};}):[]};}):[]};}):[]:[]})[_0x7f3f('0x21')](function(_0x4e2fbd){logger[_0x7f3f('0xd')](_0x7f3f('0x16'),_0x10b3eb);logger[_0x7f3f('0x10')](_0x7f3f('0x16'),_0x10b3eb,JSON[_0x7f3f('0x22')](_0x4e2fbd));_0x1500da(_0x4e2fbd);})[_0x7f3f('0x15')](function(_0x4fd1ad){logger[_0x7f3f('0x12')](_0x7f3f('0x16'),_0x4fd1ad['message'],_0x10b3eb);_0x349ed3(_0x5ab821[_0x7f3f('0x12')](0x1f4,_0x4fd1ad[_0x7f3f('0x14')]));});});};exports['ShowTrunk']=function(_0x35c21f){var _0xe23455=this;return new Promise(function(_0x3634d6,_0x1546ff){return db['Trunk'][_0x7f3f('0x23')]({'raw':_0x35c21f[_0x7f3f('0x19')]?_0x35c21f[_0x7f3f('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x35c21f[_0x7f3f('0x19')]?_0x35c21f[_0x7f3f('0x19')]['where']||null:null,'attributes':_0x35c21f[_0x7f3f('0x19')]?_0x35c21f[_0x7f3f('0x19')][_0x7f3f('0x20')]||null:null,'include':_0x35c21f['options']?_0x35c21f[_0x7f3f('0x19')]['include']?_[_0x7f3f('0x1e')](_0x35c21f['options'][_0x7f3f('0x1d')],function(_0x43220c){return{'model':db[_0x43220c['model']],'as':_0x43220c['as'],'attributes':_0x43220c[_0x7f3f('0x20')],'include':_0x43220c[_0x7f3f('0x1d')]?_['map'](_0x43220c[_0x7f3f('0x1d')],function(_0x15d101){return{'model':db[_0x15d101[_0x7f3f('0x1f')]],'as':_0x15d101['as'],'attributes':_0x15d101[_0x7f3f('0x20')],'include':_0x15d101[_0x7f3f('0x1d')]?_['map'](_0x15d101[_0x7f3f('0x1d')],function(_0x1da001){return{'model':db[_0x1da001[_0x7f3f('0x1f')]],'as':_0x1da001['as'],'attributes':_0x1da001[_0x7f3f('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x127b83){logger[_0x7f3f('0xd')](_0x7f3f('0x24'),_0x35c21f);logger[_0x7f3f('0x10')](_0x7f3f('0x24'),_0x35c21f,JSON[_0x7f3f('0x22')](_0x127b83));_0x3634d6(_0x127b83);})['catch'](function(_0x76c46f){logger[_0x7f3f('0x12')](_0x7f3f('0x24'),_0x76c46f[_0x7f3f('0x14')],_0x35c21f);_0x1546ff(_0xe23455['error'](0x1f4,_0x76c46f['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4113=['/:id/whatsapp_interactions','addWhatsappInteractions','/:id/fax_accounts','addFaxAccounts','/:id/mail_accounts','addMailAccounts','addChatWebsites','addWhatsappAccounts','addSquareProjects','createApiKey','put','update','/:id/password','changePassword','delete','removeQueues','destroy','removeMailInteractions','removeFaxInteractions','removeWhatsappInteractions','removeFaxAccounts','removeMailAccounts','removeSmsAccounts','removeChatWebsites','removeWhatsappAccounts','removeSquareProjects','exports','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./user.controller','get','isAuthenticated','index','/describe','describe','/whoami','whoami','getPresence','/:id','/:id/contacts','getContacts','/:id/queues','getQueues','/:id/queues_rt','getVoiceQueuesRt','/:id/recordings','getRecordings','getScreenRecordings','/:id/chat/interactions','/:id/openchannel/interactions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','getSmsInteractions','/:id/fax/interactions','getWhatsappInteractions','/:id/teams','/:id/lists','getLists','getAgents','/:id/prefixes','getVoicePrefixes','getFaxAccounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/sms_accounts','/:id/chat_websites','getChatWebsites','/:id/whatsapp_accounts','getWhatsappAccounts','/:id/square_projects','getScheduledCalls','/:id/api_key','getApiKey','post','create','diskStorage','join','root','server/files/images/','format','%s-%s','now','single','file','addAvatar','/:id/login','/:id/logout','logout','/:id/unpause','unpause','/:id/mail_interactions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','/:id/openchannel_interactions','addOpenchannelInteractions'];(function(_0x49c7bd,_0x1432db){var _0x1ba37d=function(_0x30f525){while(--_0x30f525){_0x49c7bd['push'](_0x49c7bd['shift']());}};_0x1ba37d(++_0x1432db);}(_0x4113,0x1bf));var _0x3411=function(_0xf2dc59,_0x5364dc){_0xf2dc59=_0xf2dc59-0x0;var _0x3a5d7a=_0x4113[_0xf2dc59];return _0x3a5d7a;};'use strict';var multer=require(_0x3411('0x0'));var util=require(_0x3411('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x3411('0x2'));var router=express['Router']();var fs_extra=require(_0x3411('0x3'));var auth=require(_0x3411('0x4'));var interaction=require(_0x3411('0x5'));var config=require(_0x3411('0x6'));var controller=require(_0x3411('0x7'));router[_0x3411('0x8')]('/',auth[_0x3411('0x9')](),controller[_0x3411('0xa')]);router[_0x3411('0x8')](_0x3411('0xb'),auth['isAuthenticated'](),controller[_0x3411('0xc')]);router[_0x3411('0x8')](_0x3411('0xd'),auth[_0x3411('0x9')](),controller[_0x3411('0xe')]);router[_0x3411('0x8')]('/presence',auth[_0x3411('0x9')](),controller[_0x3411('0xf')]);router[_0x3411('0x8')](_0x3411('0x10'),auth[_0x3411('0x9')](),controller['show']);router[_0x3411('0x8')]('/:id/avatar',controller['getAvatar']);router[_0x3411('0x8')]('/:id/open_tabs',auth[_0x3411('0x9')](),controller['getOpenTabs']);router['get'](_0x3411('0x11'),auth[_0x3411('0x9')](),controller[_0x3411('0x12')]);router[_0x3411('0x8')](_0x3411('0x13'),auth[_0x3411('0x9')](),controller[_0x3411('0x14')]);router[_0x3411('0x8')](_0x3411('0x15'),auth['isAuthenticated'](),controller[_0x3411('0x16')]);router['get']('/:id/groups',auth[_0x3411('0x9')](),controller['getGroups']);router[_0x3411('0x8')](_0x3411('0x17'),auth[_0x3411('0x9')](),controller[_0x3411('0x18')]);router['get']('/:id/screen_recordings',auth[_0x3411('0x9')](),controller[_0x3411('0x19')]);router[_0x3411('0x8')](_0x3411('0x1a'),auth[_0x3411('0x9')](),controller['getChatInteractions']);router[_0x3411('0x8')](_0x3411('0x1b'),auth['isAuthenticated'](),controller[_0x3411('0x1c')]);router['get'](_0x3411('0x1d'),auth[_0x3411('0x9')](),controller[_0x3411('0x1e')]);router[_0x3411('0x8')](_0x3411('0x1f'),auth['isAuthenticated'](),controller[_0x3411('0x20')]);router['get'](_0x3411('0x21'),auth[_0x3411('0x9')](),controller['getFaxInteractions']);router[_0x3411('0x8')]('/:id/whatsapp/interactions',auth[_0x3411('0x9')](),controller[_0x3411('0x22')]);router[_0x3411('0x8')](_0x3411('0x23'),auth[_0x3411('0x9')](),controller['getTeams']);router[_0x3411('0x8')](_0x3411('0x24'),auth[_0x3411('0x9')](),controller[_0x3411('0x25')]);router[_0x3411('0x8')]('/:id/agents',auth[_0x3411('0x9')](),controller[_0x3411('0x26')]);router[_0x3411('0x8')](_0x3411('0x27'),auth['isAuthenticated'](),controller[_0x3411('0x28')]);router[_0x3411('0x8')]('/:id/fax_accounts',auth[_0x3411('0x9')](),controller[_0x3411('0x29')]);router['get']('/:id/mail_accounts',auth[_0x3411('0x9')](),controller[_0x3411('0x2a')]);router[_0x3411('0x8')](_0x3411('0x2b'),auth[_0x3411('0x9')](),controller[_0x3411('0x2c')]);router['get'](_0x3411('0x2d'),auth[_0x3411('0x9')](),controller['getSmsAccounts']);router[_0x3411('0x8')](_0x3411('0x2e'),auth[_0x3411('0x9')](),controller[_0x3411('0x2f')]);router[_0x3411('0x8')](_0x3411('0x30'),auth[_0x3411('0x9')](),controller[_0x3411('0x31')]);router[_0x3411('0x8')](_0x3411('0x32'),auth['isAuthenticated'](),controller['getSquareProjects']);router[_0x3411('0x8')]('/:id/scheduled_calls',auth[_0x3411('0x9')](),controller[_0x3411('0x33')]);router[_0x3411('0x8')](_0x3411('0x34'),auth['isAuthenticated'](),controller[_0x3411('0x35')]);router[_0x3411('0x36')](_0x3411('0x11'),auth[_0x3411('0x9')](),controller['addContacts']);router[_0x3411('0x36')]('/',auth[_0x3411('0x9')](),controller[_0x3411('0x37')]);router[_0x3411('0x36')]('/create_many',auth[_0x3411('0x9')](),controller['bulkCreate']);router['post'](_0x3411('0x13'),auth[_0x3411('0x9')](),controller['addQueues']);var upload=multer({'storage':multer[_0x3411('0x38')]({'destination':function(_0x1a48ab,_0x3fb9fd,_0x42e193){_0x42e193(null,path[_0x3411('0x39')](config[_0x3411('0x3a')],_0x3411('0x3b')));},'filename':function(_0x53daa1,_0x5e70d9,_0x54993c){_0x54993c(null,util[_0x3411('0x3c')](_0x3411('0x3d'),Date[_0x3411('0x3e')](),_0x5e70d9['originalname']));}})});router[_0x3411('0x36')]('/:id/avatar',upload[_0x3411('0x3f')](_0x3411('0x40')),controller[_0x3411('0x41')]);router[_0x3411('0x36')](_0x3411('0x42'),auth[_0x3411('0x9')](),controller['login']);router[_0x3411('0x36')](_0x3411('0x43'),auth[_0x3411('0x9')](),controller[_0x3411('0x44')]);router[_0x3411('0x36')]('/:id/pause',auth[_0x3411('0x9')](),controller['pause']);router[_0x3411('0x36')](_0x3411('0x45'),auth['isAuthenticated'](),controller[_0x3411('0x46')]);router[_0x3411('0x36')](_0x3411('0x23'),auth[_0x3411('0x9')](),controller['addTeams']);router[_0x3411('0x36')]('/:id/chat_interactions',auth[_0x3411('0x9')](),controller['addChatInteractions']);router[_0x3411('0x36')](_0x3411('0x47'),auth[_0x3411('0x9')](),controller['addMailInteractions']);router[_0x3411('0x36')](_0x3411('0x48'),auth[_0x3411('0x9')](),controller[_0x3411('0x49')]);router[_0x3411('0x36')](_0x3411('0x4a'),auth[_0x3411('0x9')](),controller[_0x3411('0x4b')]);router['post'](_0x3411('0x4c'),auth[_0x3411('0x9')](),controller[_0x3411('0x4d')]);router['post'](_0x3411('0x4e'),auth[_0x3411('0x9')](),controller[_0x3411('0x4f')]);router['post'](_0x3411('0x50'),auth[_0x3411('0x9')](),controller[_0x3411('0x51')]);router[_0x3411('0x36')](_0x3411('0x52'),auth[_0x3411('0x9')](),controller[_0x3411('0x53')]);router['post'](_0x3411('0x2b'),auth[_0x3411('0x9')](),controller['addOpenchannelAccounts']);router[_0x3411('0x36')](_0x3411('0x2d'),auth[_0x3411('0x9')](),controller['addSmsAccounts']);router[_0x3411('0x36')](_0x3411('0x2e'),auth[_0x3411('0x9')](),controller[_0x3411('0x54')]);router[_0x3411('0x36')](_0x3411('0x30'),auth[_0x3411('0x9')](),controller[_0x3411('0x55')]);router['post'](_0x3411('0x32'),auth[_0x3411('0x9')](),controller[_0x3411('0x56')]);router[_0x3411('0x36')](_0x3411('0x34'),auth[_0x3411('0x9')](),controller[_0x3411('0x57')]);router[_0x3411('0x58')](_0x3411('0x10'),auth[_0x3411('0x9')](),controller[_0x3411('0x59')]);router[_0x3411('0x58')](_0x3411('0x5a'),auth[_0x3411('0x9')](),controller[_0x3411('0x5b')]);router[_0x3411('0x5c')](_0x3411('0x13'),auth[_0x3411('0x9')](),controller[_0x3411('0x5d')]);router['delete']('/:id/teams',auth['isAuthenticated'](),controller['removeTeams']);router[_0x3411('0x5c')]('/:id',auth[_0x3411('0x9')](),controller[_0x3411('0x5e')]);router['delete']('/:id/chat_interactions',auth[_0x3411('0x9')](),controller['removeChatInteractions']);router[_0x3411('0x5c')](_0x3411('0x47'),auth['isAuthenticated'](),controller[_0x3411('0x5f')]);router[_0x3411('0x5c')](_0x3411('0x48'),auth['isAuthenticated'](),controller[_0x3411('0x60')]);router['delete']('/:id/sms_interactions',auth[_0x3411('0x9')](),controller['removeSmsInteractions']);router['delete'](_0x3411('0x4c'),auth['isAuthenticated'](),controller['removeOpenchannelInteractions']);router['delete'](_0x3411('0x4e'),auth[_0x3411('0x9')](),controller[_0x3411('0x61')]);router[_0x3411('0x5c')](_0x3411('0x50'),auth[_0x3411('0x9')](),controller[_0x3411('0x62')]);router[_0x3411('0x5c')](_0x3411('0x52'),auth[_0x3411('0x9')](),controller[_0x3411('0x63')]);router[_0x3411('0x5c')](_0x3411('0x2b'),auth['isAuthenticated'](),controller['removeOpenchannelAccounts']);router['delete'](_0x3411('0x2d'),auth['isAuthenticated'](),controller[_0x3411('0x64')]);router['delete'](_0x3411('0x2e'),auth[_0x3411('0x9')](),controller[_0x3411('0x65')]);router['delete'](_0x3411('0x30'),auth[_0x3411('0x9')](),controller[_0x3411('0x66')]);router['delete'](_0x3411('0x32'),auth['isAuthenticated'](),controller[_0x3411('0x67')]);router[_0x3411('0x5c')](_0x3411('0x34'),auth[_0x3411('0x9')](),controller['removeApiKey']);module[_0x3411('0x68')]=router;
\ No newline at end of file
+var _0x0df5=['pause','/:id/unpause','addTeams','/:id/chat_interactions','/:id/mail_interactions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','addOpenchannelInteractions','/:id/whatsapp_interactions','addFaxAccounts','addMailAccounts','addOpenchannelAccounts','addSmsAccounts','addWhatsappAccounts','/:id/api_key','createApiKey','put','/:id','update','/:id/password','changePassword','removeQueues','delete','/:id/teams','removeTeams','destroy','removeChatInteractions','removeMailInteractions','removeFaxInteractions','removeSmsInteractions','/:id/openchannel_interactions','removeOpenchannelInteractions','removeWhatsappInteractions','removeFaxAccounts','/:id/mail_accounts','/:id/openchannel_accounts','removeOpenchannelAccounts','removeSmsAccounts','removeChatWebsites','removeSquareProjects','removeApiKey','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./user.controller','get','index','/describe','isAuthenticated','describe','/whoami','/:id/avatar','getAvatar','/:id/open_tabs','getOpenTabs','/:id/contacts','getContacts','getQueues','getVoiceQueuesRt','getGroups','getRecordings','/:id/screen_recordings','getScreenRecordings','/:id/chat/interactions','/:id/openchannel/interactions','/:id/mail/interactions','/:id/fax/interactions','getFaxInteractions','getWhatsappInteractions','getTeams','/:id/lists','getLists','/:id/agents','getAgents','/:id/prefixes','getVoicePrefixes','/:id/fax_accounts','getFaxAccounts','getOpenchannelAccounts','/:id/sms_accounts','getSmsAccounts','/:id/chat_websites','/:id/whatsapp_accounts','getWhatsappAccounts','/:id/square_projects','getSquareProjects','/:id/scheduled_calls','getApiKey','post','addContacts','create','/:id/queues','diskStorage','join','server/files/images/','format','%s-%s','now','single','addAvatar','login','/:id/logout','logout'];(function(_0xff5773,_0x4d060c){var _0x4884d1=function(_0xacc614){while(--_0xacc614){_0xff5773['push'](_0xff5773['shift']());}};_0x4884d1(++_0x4d060c);}(_0x0df5,0x1ec));var _0x50df=function(_0x515175,_0x5821bd){_0x515175=_0x515175-0x0;var _0x11afed=_0x0df5[_0x515175];return _0x11afed;};'use strict';var multer=require(_0x50df('0x0'));var util=require(_0x50df('0x1'));var path=require('path');var timeout=require(_0x50df('0x2'));var express=require(_0x50df('0x3'));var router=express[_0x50df('0x4')]();var fs_extra=require(_0x50df('0x5'));var auth=require(_0x50df('0x6'));var interaction=require(_0x50df('0x7'));var config=require(_0x50df('0x8'));var controller=require(_0x50df('0x9'));router[_0x50df('0xa')]('/',auth['isAuthenticated'](),controller[_0x50df('0xb')]);router[_0x50df('0xa')](_0x50df('0xc'),auth[_0x50df('0xd')](),controller[_0x50df('0xe')]);router[_0x50df('0xa')](_0x50df('0xf'),auth[_0x50df('0xd')](),controller['whoami']);router[_0x50df('0xa')]('/presence',auth['isAuthenticated'](),controller['getPresence']);router['get']('/:id',auth[_0x50df('0xd')](),controller['show']);router[_0x50df('0xa')](_0x50df('0x10'),controller[_0x50df('0x11')]);router['get'](_0x50df('0x12'),auth[_0x50df('0xd')](),controller[_0x50df('0x13')]);router[_0x50df('0xa')](_0x50df('0x14'),auth['isAuthenticated'](),controller[_0x50df('0x15')]);router['get']('/:id/queues',auth[_0x50df('0xd')](),controller[_0x50df('0x16')]);router[_0x50df('0xa')]('/:id/queues_rt',auth[_0x50df('0xd')](),controller[_0x50df('0x17')]);router[_0x50df('0xa')]('/:id/groups',auth[_0x50df('0xd')](),controller[_0x50df('0x18')]);router['get']('/:id/recordings',auth[_0x50df('0xd')](),controller[_0x50df('0x19')]);router[_0x50df('0xa')](_0x50df('0x1a'),auth[_0x50df('0xd')](),controller[_0x50df('0x1b')]);router[_0x50df('0xa')](_0x50df('0x1c'),auth[_0x50df('0xd')](),controller['getChatInteractions']);router[_0x50df('0xa')](_0x50df('0x1d'),auth[_0x50df('0xd')](),controller['getOpenchannelInteractions']);router[_0x50df('0xa')](_0x50df('0x1e'),auth['isAuthenticated'](),controller['getMailInteractions']);router[_0x50df('0xa')]('/:id/sms/interactions',auth[_0x50df('0xd')](),controller['getSmsInteractions']);router[_0x50df('0xa')](_0x50df('0x1f'),auth[_0x50df('0xd')](),controller[_0x50df('0x20')]);router[_0x50df('0xa')]('/:id/whatsapp/interactions',auth['isAuthenticated'](),controller[_0x50df('0x21')]);router[_0x50df('0xa')]('/:id/teams',auth[_0x50df('0xd')](),controller[_0x50df('0x22')]);router[_0x50df('0xa')](_0x50df('0x23'),auth[_0x50df('0xd')](),controller[_0x50df('0x24')]);router['get'](_0x50df('0x25'),auth[_0x50df('0xd')](),controller[_0x50df('0x26')]);router[_0x50df('0xa')](_0x50df('0x27'),auth['isAuthenticated'](),controller[_0x50df('0x28')]);router[_0x50df('0xa')](_0x50df('0x29'),auth[_0x50df('0xd')](),controller[_0x50df('0x2a')]);router[_0x50df('0xa')]('/:id/mail_accounts',auth[_0x50df('0xd')](),controller['getMailAccounts']);router['get']('/:id/openchannel_accounts',auth[_0x50df('0xd')](),controller[_0x50df('0x2b')]);router[_0x50df('0xa')](_0x50df('0x2c'),auth[_0x50df('0xd')](),controller[_0x50df('0x2d')]);router[_0x50df('0xa')](_0x50df('0x2e'),auth[_0x50df('0xd')](),controller['getChatWebsites']);router[_0x50df('0xa')](_0x50df('0x2f'),auth[_0x50df('0xd')](),controller[_0x50df('0x30')]);router[_0x50df('0xa')](_0x50df('0x31'),auth['isAuthenticated'](),controller[_0x50df('0x32')]);router['get'](_0x50df('0x33'),auth[_0x50df('0xd')](),controller['getScheduledCalls']);router[_0x50df('0xa')]('/:id/api_key',auth[_0x50df('0xd')](),controller[_0x50df('0x34')]);router[_0x50df('0x35')](_0x50df('0x14'),auth[_0x50df('0xd')](),controller[_0x50df('0x36')]);router[_0x50df('0x35')]('/',auth['isAuthenticated'](),controller[_0x50df('0x37')]);router[_0x50df('0x35')]('/create_many',auth[_0x50df('0xd')](),controller['bulkCreate']);router['post'](_0x50df('0x38'),auth[_0x50df('0xd')](),controller['addQueues']);var upload=multer({'storage':multer[_0x50df('0x39')]({'destination':function(_0x10b11c,_0x1c043a,_0x37bb4b){_0x37bb4b(null,path[_0x50df('0x3a')](config['root'],_0x50df('0x3b')));},'filename':function(_0x21d503,_0x636998,_0x36ba3c){_0x36ba3c(null,util[_0x50df('0x3c')](_0x50df('0x3d'),Date[_0x50df('0x3e')](),_0x636998['originalname']));}})});router[_0x50df('0x35')]('/:id/avatar',upload[_0x50df('0x3f')]('file'),controller[_0x50df('0x40')]);router[_0x50df('0x35')]('/:id/login',auth[_0x50df('0xd')](),controller[_0x50df('0x41')]);router[_0x50df('0x35')](_0x50df('0x42'),auth[_0x50df('0xd')](),controller[_0x50df('0x43')]);router[_0x50df('0x35')]('/:id/pause',auth[_0x50df('0xd')](),controller[_0x50df('0x44')]);router[_0x50df('0x35')](_0x50df('0x45'),auth['isAuthenticated'](),controller['unpause']);router['post']('/:id/teams',auth[_0x50df('0xd')](),controller[_0x50df('0x46')]);router['post'](_0x50df('0x47'),auth[_0x50df('0xd')](),controller['addChatInteractions']);router[_0x50df('0x35')](_0x50df('0x48'),auth['isAuthenticated'](),controller['addMailInteractions']);router['post'](_0x50df('0x49'),auth['isAuthenticated'](),controller[_0x50df('0x4a')]);router[_0x50df('0x35')](_0x50df('0x4b'),auth[_0x50df('0xd')](),controller[_0x50df('0x4c')]);router[_0x50df('0x35')]('/:id/openchannel_interactions',auth['isAuthenticated'](),controller[_0x50df('0x4d')]);router['post'](_0x50df('0x4e'),auth[_0x50df('0xd')](),controller['addWhatsappInteractions']);router[_0x50df('0x35')](_0x50df('0x29'),auth[_0x50df('0xd')](),controller[_0x50df('0x4f')]);router[_0x50df('0x35')]('/:id/mail_accounts',auth[_0x50df('0xd')](),controller[_0x50df('0x50')]);router[_0x50df('0x35')]('/:id/openchannel_accounts',auth[_0x50df('0xd')](),controller[_0x50df('0x51')]);router[_0x50df('0x35')](_0x50df('0x2c'),auth['isAuthenticated'](),controller[_0x50df('0x52')]);router[_0x50df('0x35')](_0x50df('0x2e'),auth[_0x50df('0xd')](),controller['addChatWebsites']);router[_0x50df('0x35')](_0x50df('0x2f'),auth[_0x50df('0xd')](),controller[_0x50df('0x53')]);router[_0x50df('0x35')]('/:id/square_projects',auth[_0x50df('0xd')](),controller['addSquareProjects']);router['post'](_0x50df('0x54'),auth[_0x50df('0xd')](),controller[_0x50df('0x55')]);router[_0x50df('0x56')](_0x50df('0x57'),auth['isAuthenticated'](),controller[_0x50df('0x58')]);router[_0x50df('0x56')](_0x50df('0x59'),auth[_0x50df('0xd')](),controller[_0x50df('0x5a')]);router['delete'](_0x50df('0x38'),auth[_0x50df('0xd')](),controller[_0x50df('0x5b')]);router[_0x50df('0x5c')](_0x50df('0x5d'),auth[_0x50df('0xd')](),controller[_0x50df('0x5e')]);router['delete']('/:id',auth[_0x50df('0xd')](),controller[_0x50df('0x5f')]);router[_0x50df('0x5c')](_0x50df('0x47'),auth[_0x50df('0xd')](),controller[_0x50df('0x60')]);router[_0x50df('0x5c')](_0x50df('0x48'),auth[_0x50df('0xd')](),controller[_0x50df('0x61')]);router['delete'](_0x50df('0x49'),auth[_0x50df('0xd')](),controller[_0x50df('0x62')]);router['delete']('/:id/sms_interactions',auth['isAuthenticated'](),controller[_0x50df('0x63')]);router[_0x50df('0x5c')](_0x50df('0x64'),auth[_0x50df('0xd')](),controller[_0x50df('0x65')]);router[_0x50df('0x5c')](_0x50df('0x4e'),auth[_0x50df('0xd')](),controller[_0x50df('0x66')]);router[_0x50df('0x5c')](_0x50df('0x29'),auth[_0x50df('0xd')](),controller[_0x50df('0x67')]);router[_0x50df('0x5c')](_0x50df('0x68'),auth[_0x50df('0xd')](),controller['removeMailAccounts']);router['delete'](_0x50df('0x69'),auth[_0x50df('0xd')](),controller[_0x50df('0x6a')]);router['delete'](_0x50df('0x2c'),auth['isAuthenticated'](),controller[_0x50df('0x6b')]);router['delete']('/:id/chat_websites',auth[_0x50df('0xd')](),controller[_0x50df('0x6c')]);router[_0x50df('0x5c')](_0x50df('0x2f'),auth[_0x50df('0xd')](),controller['removeWhatsappAccounts']);router['delete'](_0x50df('0x31'),auth[_0x50df('0xd')](),controller[_0x50df('0x6d')]);router[_0x50df('0x5c')](_0x50df('0x54'),auth['isAuthenticated'](),controller[_0x50df('0x6e')]);module[_0x50df('0x6f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['shortinfo','inband','auto','update','force_rport,comedia','nat','all','ulaw;alaw;gsm','allow','split','yes','insecure','\x22\x22\x20<>','always','accept','refuse','uac','uas','fingerprint','certificate','active','passive','actpass','nonat','update,nonat','TEXT','showWebBar','get','isArray','udp','wss','encryption','avpf','force_avp','icesupport','dtlsenable','dtlsverify','dtlssetup','dtlscertfile','dtlsprivatekey','rtcp_mux','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','permissions','map','VIRTUAL','phoneBarEnableScreenRecordingByAgent','string','true','screenrecording','blocked','blockedAt','loginAttempts','UNSIGNED','sequelize','moment','exports','STRING','setDataValue','defaultuser','The\x20name\x20of\x20the\x20user','fullname','\x22%s\x22\x20<%s>','getDataValue','internal','toLowerCase','ENUM','admin','user','agent','telephone','local','INTEGER','accountcode','callerid','format','BOOLEAN','DATE','dynamic','peer','friend','from-sip','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','join','transport','rfc2833'];(function(_0x10ed54,_0x2f5328){var _0x5ca84e=function(_0x153d26){while(--_0x153d26){_0x10ed54['push'](_0x10ed54['shift']());}};_0x5ca84e(++_0x2f5328);}(_0xe14b,0x93));var _0xbe14=function(_0x474ec6,_0xe8f7a2){_0x474ec6=_0x474ec6-0x0;var _0x2eb009=_0xe14b[_0x474ec6];return _0x2eb009;};'use strict';var Sequelize=require(_0xbe14('0x0'));var moment=require(_0xbe14('0x1'));var util=require('util');var _=require('lodash');module[_0xbe14('0x2')]={'name':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x7d3665){this['setDataValue']('name',_0x7d3665);this[_0xbe14('0x4')](_0xbe14('0x5'),_0x7d3665);},'comment':_0xbe14('0x6')},'fullname':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'set':function(_0x1d9ade){this[_0xbe14('0x4')](_0xbe14('0x7'),_0x1d9ade);this['setDataValue']('callerid',util['format'](_0xbe14('0x8'),_0x1d9ade,this[_0xbe14('0x9')](_0xbe14('0xa'))));}},'alias':{'type':Sequelize[_0xbe14('0x3')]},'email':{'type':Sequelize['STRING'],'allowNull':![],'unique':'email','validate':{'isEmail':!![]},'set':function(_0x113243){if(_0x113243){this[_0xbe14('0x4')]('email',_0x113243[_0xbe14('0xb')]());}}},'role':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0xd'),_0xbe14('0xe'),_0xbe14('0xf'),_0xbe14('0x10')),'allowNull':![]},'password':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':_0xbe14('0x11')},'internal':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':![],'unique':_0xbe14('0xa'),'set':function(_0x33fd54){this[_0xbe14('0x4')]('internal',_0x33fd54);this['setDataValue'](_0xbe14('0x13'),_0x33fd54);this[_0xbe14('0x4')](_0xbe14('0x14'),util[_0xbe14('0x15')]('\x22%s\x22\x20<%s>',this[_0xbe14('0x9')](_0xbe14('0x7')),_0x33fd54));}},'salt':{'type':Sequelize[_0xbe14('0x3')]},'phone':{'type':Sequelize[_0xbe14('0x3')]},'mobile':{'type':Sequelize[_0xbe14('0x3')]},'address':{'type':Sequelize[_0xbe14('0x3')]},'zipcode':{'type':Sequelize[_0xbe14('0x3')]},'userpic':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0xbe14('0x3')]},'country':{'type':Sequelize[_0xbe14('0x3')]},'online':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0xbe14('0x17')]},'voicePause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'chatPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'mailPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'faxPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'smsPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':'DEFAULT\x20PAUSE'},'lastPauseAt':{'type':Sequelize[_0xbe14('0x17')]},'chatCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xbe14('0x12')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize['INTEGER'],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'chanspy':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'description':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'host':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x18')},'ipaddr':{'type':Sequelize['STRING'],'allowNull':!![]},'port':{'type':Sequelize[_0xbe14('0x12')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'regserver':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'useragent':{'type':Sequelize['STRING'],'allowNull':!![]},'lastms':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0xbe14('0xc')]('friend',_0xbe14('0xe'),_0xbe14('0x19')),'allowNull':!![],'defaultValue':_0xbe14('0x1a')},'context':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x1b')},'callingpres':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x1c'),_0xbe14('0x1d'),_0xbe14('0x1e'),_0xbe14('0x1f'),_0xbe14('0x20'),_0xbe14('0x21'),_0xbe14('0x22'),_0xbe14('0x23')),'allowNull':!![]},'deny':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'permit':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'secret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'transport':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':'udp','set':function(_0x2e33e1){this['setDataValue']('transport',_0x2e33e1?_0x2e33e1[_0xbe14('0x24')](','):null);},'get':function(){return this['getDataValue'](_0xbe14('0x25'))?this[_0xbe14('0x9')]('transport')['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x26'),'info',_0xbe14('0x27'),_0xbe14('0x28'),_0xbe14('0x29')),'allowNull':!![],'defaultValue':_0xbe14('0x26')},'directmedia':{'type':Sequelize[_0xbe14('0xc')]('yes','no','nonat',_0xbe14('0x2a'),'outgoing'),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'nat':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x2b'),'set':function(_0x172e79){this[_0xbe14('0x4')](_0xbe14('0x2c'),_0x172e79?_0x172e79[_0xbe14('0x24')](','):null);},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x2c'))?this[_0xbe14('0x9')](_0xbe14('0x2c'))['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0xbe14('0x3')]},'namedcallgroup':{'type':Sequelize[_0xbe14('0x3')]},'pickupgroup':{'type':Sequelize[_0xbe14('0x3')]},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0xbe14('0x3')]},'disallow':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'defaultValue':_0xbe14('0x2d')},'allow':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'defaultValue':_0xbe14('0x2e'),'set':function(_0x19fa30){this[_0xbe14('0x4')](_0xbe14('0x2f'),_0x19fa30?_0x19fa30['join'](';'):_0xbe14('0x2e'));},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x2f'))?this[_0xbe14('0x9')](_0xbe14('0x2f'))[_0xbe14('0x30')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]'},'autoframing':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'set':function(_0x36263c){this['setDataValue']('insecure',_0x36263c?_0x36263c[_0xbe14('0x24')](','):null);},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x32'))?this['getDataValue']('insecure')[_0xbe14('0x30')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]'},'trustrpid':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize['ENUM']('yes','no','never'),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'callerid':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x33')},'amaflags':{'type':Sequelize['STRING'],'allowNull':!![]},'callcounter':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':_0xbe14('0x31')},'busylevel':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize['STRING'],'allowNull':!![]},'template':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'videosupport':{'type':Sequelize[_0xbe14('0xc')]('yes','no',_0xbe14('0x34')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'session_timers':{'type':Sequelize['ENUM'](_0xbe14('0x35'),_0xbe14('0x36'),'originate'),'allowNull':!![]},'session_expires':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x37'),_0xbe14('0x38')),'allowNull':!![],'defaultValue':_0xbe14('0x38')},'t38pt_usertpsource':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'regexten':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'fromdomain':{'type':Sequelize['STRING'],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':_0xbe14('0x31')},'keepalive':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING'],'allowNull':!![]},'callbackextension':{'type':Sequelize['STRING'],'allowNull':!![]},'timert1':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize['STRING'],'allowNull':!![]},'contactdeny':{'type':Sequelize['STRING'],'allowNull':!![]},'contactacl':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize['STRING'],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no',_0xbe14('0x39'),_0xbe14('0x3a')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x3b'),_0xbe14('0x3c'),_0xbe14('0x3d')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING'],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'call_limit':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'mohsuggest':{'type':Sequelize['STRING'],'allowNull':!![]},'parkinglot':{'type':Sequelize['STRING'],'allowNull':!![]},'canreinvite':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no',_0xbe14('0x3e'),_0xbe14('0x2a'),_0xbe14('0x3f')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0xbe14('0x3')]},'resetPasswordExpires':{'type':Sequelize[_0xbe14('0x17')]},'passwordResetAt':{'type':Sequelize[_0xbe14('0x17')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0xbe14('0x40')]},'showWebBar':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0,'set':function(_0x603816){this[_0xbe14('0x4')](_0xbe14('0x41'),_0x603816);var _0xeb915b=this[_0xbe14('0x42')]({'plain':!![]});switch(_0x603816){case 0x0:case 0x1:var _0xcef8e3=_0xeb915b[_0xbe14('0x25')]?_[_0xbe14('0x43')](_0xeb915b[_0xbe14('0x25')])?_0xeb915b[_0xbe14('0x25')]['join']():_0xeb915b[_0xbe14('0x25')]:_0xbe14('0x44');if(_0xcef8e3===_0xbe14('0x45')){_0xcef8e3=_0xbe14('0x44');}this[_0xbe14('0x4')](_0xbe14('0x25'),_0xcef8e3);this[_0xbe14('0x4')](_0xbe14('0x46'),'no');this[_0xbe14('0x4')](_0xbe14('0x47'),null);this['setDataValue'](_0xbe14('0x48'),null);this[_0xbe14('0x4')](_0xbe14('0x49'),null);this[_0xbe14('0x4')](_0xbe14('0x4a'),null);this['setDataValue'](_0xbe14('0x4b'),null);this[_0xbe14('0x4')](_0xbe14('0x4c'),null);this[_0xbe14('0x4')](_0xbe14('0x4d'),null);this['setDataValue'](_0xbe14('0x4e'),null);this[_0xbe14('0x4')](_0xbe14('0x4f'),'no');break;case 0x2:this[_0xbe14('0x4')](_0xbe14('0x25'),_0xbe14('0x45'));this[_0xbe14('0x4')](_0xbe14('0x46'),'yes');this[_0xbe14('0x4')](_0xbe14('0x47'),_0xbe14('0x31'));this[_0xbe14('0x4')](_0xbe14('0x48'),_0xbe14('0x31'));this[_0xbe14('0x4')]('icesupport','yes');this[_0xbe14('0x4')](_0xbe14('0x4a'),_0xbe14('0x31'));this[_0xbe14('0x4')](_0xbe14('0x4b'),'no');this[_0xbe14('0x4')](_0xbe14('0x4c'),_0xbe14('0x3d'));this['setDataValue']('dtlscertfile',_0xeb915b[_0xbe14('0x4d')]||_0xbe14('0x50'));this[_0xbe14('0x4')]('dtlsprivatekey',_0xeb915b[_0xbe14('0x4e')]||_0xbe14('0x51'));this[_0xbe14('0x4')](_0xbe14('0x4f'),_0xbe14('0x31'));break;default:}}},'permissions':{'type':Sequelize[_0xbe14('0x40')],'set':function(_0x12e23a){this['setDataValue'](_0xbe14('0x52'),_0x12e23a?_0x12e23a[_0xbe14('0x24')](','):[]);},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x52'))?_[_0xbe14('0x53')](this[_0xbe14('0x9')](_0xbe14('0x52'))['split'](','),function(_0x3952c7){return parseInt(_0x3952c7,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarNoReplyNumber':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarBusyNumber':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarUnconditional':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarEnableJaws':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0xbe14('0x54')],'get':function(){return this['getDataValue'](_0xbe14('0x55'))?this[_0xbe14('0x9')](_0xbe14('0x55')):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'interface':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':null},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize['STRING'],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![],'set':function(_0x5d85d3){if(typeof _0x5d85d3===_0xbe14('0x56')){var _0x21837c=_0x5d85d3==='1'?!![]:_0x5d85d3==='0'?![]:_0x5d85d3===_0xbe14('0x57')?!![]:_0x5d85d3==='false'?![]:![];this[_0xbe14('0x4')](_0xbe14('0x58'),_0x21837c);}else{this[_0xbe14('0x4')]('screenrecording',_0x5d85d3);}}},'blocked':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![],'set':function(_0x590277){this[_0xbe14('0x4')](_0xbe14('0x59'),_0x590277);if(_0x590277===!![]){this['setDataValue'](_0xbe14('0x5a'),moment());this[_0xbe14('0x4')](_0xbe14('0x5b'),0x0);}else{this[_0xbe14('0x4')](_0xbe14('0x5a'),null);}}},'blockedAt':{'type':Sequelize[_0xbe14('0x17')],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'disabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0xbe14('0x12')](0x5)[_0xbe14('0x5c')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x36f3=['rfc2833','nonat','update','outgoing','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','allow','ulaw;alaw;gsm','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]','yes','insecure','never','\x22\x22\x20<>','always','accept','refuse','uac','uas','fingerprint','certificate','active','passive','actpass','update,nonat','showWebBar','get','isArray','wss','encryption','dtlssetup','dtlscertfile','dtlsprivatekey','rtcp_mux','avpf','force_avp','icesupport','dtlsenable','/etc/pki/tls/private/motion.key','TEXT','permissions','map','phoneBarEnableScreenRecordingByAgent','true','screenrecording','blocked','blockedAt','loginAttempts','UNSIGNED','moment','util','lodash','exports','STRING','name','setDataValue','defaultuser','The\x20name\x20of\x20the\x20user','fullname','callerid','format','\x22%s\x22\x20<%s>','getDataValue','internal','email','admin','agent','telephone','local','INTEGER','accountcode','BOOLEAN','DEFAULT\x20PAUSE','DATE','friend','user','peer','from-sip','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','transport','join','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','ENUM','inband'];(function(_0xa2765a,_0xf2376c){var _0x55ca0a=function(_0x366fd0){while(--_0x366fd0){_0xa2765a['push'](_0xa2765a['shift']());}};_0x55ca0a(++_0xf2376c);}(_0x36f3,0xe6));var _0x336f=function(_0x2d17ec,_0x54eb4d){_0x2d17ec=_0x2d17ec-0x0;var _0x162002=_0x36f3[_0x2d17ec];return _0x162002;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x336f('0x0'));var util=require(_0x336f('0x1'));var _=require(_0x336f('0x2'));module[_0x336f('0x3')]={'name':{'type':Sequelize[_0x336f('0x4')],'allowNull':![],'unique':_0x336f('0x5'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0xd7d95a){this[_0x336f('0x6')](_0x336f('0x5'),_0xd7d95a);this['setDataValue'](_0x336f('0x7'),_0xd7d95a);},'comment':_0x336f('0x8')},'fullname':{'type':Sequelize[_0x336f('0x4')],'allowNull':![],'set':function(_0x4ef72f){this['setDataValue'](_0x336f('0x9'),_0x4ef72f);this[_0x336f('0x6')](_0x336f('0xa'),util[_0x336f('0xb')](_0x336f('0xc'),_0x4ef72f,this[_0x336f('0xd')](_0x336f('0xe'))));}},'alias':{'type':Sequelize[_0x336f('0x4')]},'email':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x336f('0xf'),'validate':{'isEmail':!![]},'set':function(_0x3dff4a){if(_0x3dff4a){this[_0x336f('0x6')](_0x336f('0xf'),_0x3dff4a['toLowerCase']());}}},'role':{'type':Sequelize['ENUM'](_0x336f('0x10'),'user',_0x336f('0x11'),_0x336f('0x12')),'allowNull':![]},'password':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize[_0x336f('0x4')],'defaultValue':_0x336f('0x13')},'internal':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':![],'unique':_0x336f('0xe'),'set':function(_0x12c5e0){this[_0x336f('0x6')](_0x336f('0xe'),_0x12c5e0);this['setDataValue'](_0x336f('0x15'),_0x12c5e0);this[_0x336f('0x6')](_0x336f('0xa'),util[_0x336f('0xb')]('\x22%s\x22\x20<%s>',this[_0x336f('0xd')](_0x336f('0x9')),_0x12c5e0));}},'salt':{'type':Sequelize[_0x336f('0x4')]},'phone':{'type':Sequelize[_0x336f('0x4')]},'mobile':{'type':Sequelize['STRING']},'address':{'type':Sequelize[_0x336f('0x4')]},'zipcode':{'type':Sequelize[_0x336f('0x4')]},'userpic':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0x336f('0x4')]},'country':{'type':Sequelize[_0x336f('0x4')]},'online':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize['DATE']},'voicePause':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'chatPause':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'mailPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'faxPause':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'smsPause':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'pauseType':{'type':Sequelize['STRING'],'defaultValue':_0x336f('0x17')},'lastPauseAt':{'type':Sequelize[_0x336f('0x18')]},'chatCapacity':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0x336f('0x16')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0x336f('0x14')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize[_0x336f('0x14')](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize['INTEGER'],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'chanspy':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'description':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'host':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![],'defaultValue':'dynamic'},'ipaddr':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'port':{'type':Sequelize[_0x336f('0x14')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize['STRING'],'allowNull':!![]},'regserver':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'useragent':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'lastms':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'type':{'type':Sequelize['ENUM'](_0x336f('0x19'),_0x336f('0x1a'),_0x336f('0x1b')),'allowNull':!![],'defaultValue':_0x336f('0x19')},'context':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![],'defaultValue':_0x336f('0x1c')},'callingpres':{'type':Sequelize['ENUM']('ALLOWED_NOT_SCREENED',_0x336f('0x1d'),_0x336f('0x1e'),_0x336f('0x1f'),_0x336f('0x20'),_0x336f('0x21'),_0x336f('0x22'),_0x336f('0x23')),'allowNull':!![]},'deny':{'type':Sequelize['STRING'],'allowNull':!![]},'permit':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'secret':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'remotesecret':{'type':Sequelize['STRING'],'allowNull':!![]},'transport':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x336f('0x24'),'set':function(_0x35d46e){this['setDataValue'](_0x336f('0x25'),_0x35d46e?_0x35d46e[_0x336f('0x26')](','):null);},'get':function(){return this['getDataValue'](_0x336f('0x25'))?this[_0x336f('0xd')](_0x336f('0x25'))[_0x336f('0x27')](','):null;},'comment':_0x336f('0x28')},'dtmfmode':{'type':Sequelize[_0x336f('0x29')]('rfc2833','info','shortinfo',_0x336f('0x2a'),'auto'),'allowNull':!![],'defaultValue':_0x336f('0x2b')},'directmedia':{'type':Sequelize[_0x336f('0x29')]('yes','no',_0x336f('0x2c'),_0x336f('0x2d'),_0x336f('0x2e')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x336f('0x29')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING'],'allowNull':!![]},'directmediadeny':{'type':Sequelize['STRING'],'allowNull':!![]},'nat':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![],'defaultValue':'force_rport,comedia','set':function(_0x5eaa7a){this['setDataValue'](_0x336f('0x2f'),_0x5eaa7a?_0x5eaa7a[_0x336f('0x26')](','):null);},'get':function(){return this['getDataValue'](_0x336f('0x2f'))?this['getDataValue']('nat')[_0x336f('0x27')](','):null;},'comment':_0x336f('0x30')},'callgroup':{'type':Sequelize[_0x336f('0x4')]},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize['STRING']},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0x336f('0x4')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize[_0x336f('0x4')],'allowNull':![],'defaultValue':'all'},'allow':{'type':Sequelize[_0x336f('0x4')],'allowNull':![],'defaultValue':'ulaw;alaw;gsm','set':function(_0x442dae){this['setDataValue'](_0x336f('0x31'),_0x442dae?_0x442dae[_0x336f('0x26')](';'):_0x336f('0x32'));},'get':function(){return this[_0x336f('0xd')](_0x336f('0x31'))?this[_0x336f('0xd')](_0x336f('0x31'))[_0x336f('0x27')](';'):null;},'comment':_0x336f('0x33')},'autoframing':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![],'set':function(_0x1ad4de){this['setDataValue'](_0x336f('0x35'),_0x1ad4de?_0x1ad4de[_0x336f('0x26')](','):null);},'get':function(){return this[_0x336f('0xd')]('insecure')?this[_0x336f('0xd')](_0x336f('0x35'))[_0x336f('0x27')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]'},'trustrpid':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM'](_0x336f('0x34'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no',_0x336f('0x36')),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0x336f('0x29')]('yes','no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize['STRING'],'allowNull':!![]},'callerid':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![],'defaultValue':_0x336f('0x37')},'amaflags':{'type':Sequelize['STRING'],'allowNull':!![]},'callcounter':{'type':Sequelize[_0x336f('0x29')]('yes','no'),'allowNull':!![],'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize['STRING'],'allowNull':!![]},'template':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'videosupport':{'type':Sequelize['ENUM']('yes','no',_0x336f('0x38')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'session_timers':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x39'),_0x336f('0x3a'),'originate'),'allowNull':!![]},'session_expires':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x3b'),_0x336f('0x3c')),'allowNull':!![],'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize['STRING'],'allowNull':!![]},'regexten':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'qualify':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![],'defaultValue':_0x336f('0x34')},'keepalive':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize['STRING'],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize['ENUM'](_0x336f('0x34'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'timert1':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'contactacl':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no',_0x336f('0x3d'),_0x336f('0x3e')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x3f'),_0x336f('0x40'),_0x336f('0x41')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'recordofffeature':{'type':Sequelize['STRING'],'allowNull':!![]},'call_limit':{'type':Sequelize[_0x336f('0x14')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize['ENUM'](_0x336f('0x34'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'canreinvite':{'type':Sequelize['ENUM'](_0x336f('0x34'),'no',_0x336f('0x2c'),_0x336f('0x2d'),_0x336f('0x42')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0x336f('0x4')]},'resetPasswordExpires':{'type':Sequelize[_0x336f('0x18')]},'passwordResetAt':{'type':Sequelize[_0x336f('0x18')],'defaultValue':null},'previousPasswords':{'type':Sequelize['TEXT']},'showWebBar':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0,'set':function(_0x522003){this['setDataValue'](_0x336f('0x43'),_0x522003);var _0x398e52=this[_0x336f('0x44')]({'plain':!![]});switch(_0x522003){case 0x0:case 0x1:var _0x4a0e7a=_0x398e52[_0x336f('0x25')]?_[_0x336f('0x45')](_0x398e52[_0x336f('0x25')])?_0x398e52['transport']['join']():_0x398e52[_0x336f('0x25')]:_0x336f('0x24');if(_0x4a0e7a===_0x336f('0x46')){_0x4a0e7a=_0x336f('0x24');}this[_0x336f('0x6')]('transport',_0x4a0e7a);this[_0x336f('0x6')](_0x336f('0x47'),'no');this[_0x336f('0x6')]('avpf',null);this[_0x336f('0x6')]('force_avp',null);this[_0x336f('0x6')]('icesupport',null);this['setDataValue']('dtlsenable',null);this[_0x336f('0x6')]('dtlsverify',null);this[_0x336f('0x6')](_0x336f('0x48'),null);this[_0x336f('0x6')](_0x336f('0x49'),null);this[_0x336f('0x6')](_0x336f('0x4a'),null);this['setDataValue'](_0x336f('0x4b'),'no');break;case 0x2:this['setDataValue']('transport',_0x336f('0x46'));this[_0x336f('0x6')]('encryption','yes');this[_0x336f('0x6')](_0x336f('0x4c'),_0x336f('0x34'));this[_0x336f('0x6')](_0x336f('0x4d'),_0x336f('0x34'));this[_0x336f('0x6')](_0x336f('0x4e'),_0x336f('0x34'));this[_0x336f('0x6')](_0x336f('0x4f'),_0x336f('0x34'));this['setDataValue']('dtlsverify','no');this['setDataValue'](_0x336f('0x48'),_0x336f('0x41'));this[_0x336f('0x6')]('dtlscertfile',_0x398e52[_0x336f('0x49')]||'/etc/pki/tls/certs/motion.crt');this['setDataValue'](_0x336f('0x4a'),_0x398e52[_0x336f('0x4a')]||_0x336f('0x50'));this['setDataValue'](_0x336f('0x4b'),_0x336f('0x34'));break;default:}}},'permissions':{'type':Sequelize[_0x336f('0x51')],'set':function(_0x53fd7c){this[_0x336f('0x6')](_0x336f('0x52'),_0x53fd7c?_0x53fd7c[_0x336f('0x26')](','):[]);},'get':function(){return this['getDataValue']('permissions')?_[_0x336f('0x53')](this[_0x336f('0xd')](_0x336f('0x52'))[_0x336f('0x27')](','),function(_0x39c8e3){return parseInt(_0x39c8e3,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0x336f('0x4')]},'phoneBarNoReplyNumber':{'type':Sequelize['STRING']},'phoneBarBusyNumber':{'type':Sequelize[_0x336f('0x4')]},'phoneBarUnconditional':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0x336f('0x16')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0x336f('0x16')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0x336f('0x4')],'defaultValue':''},'crudPermissions':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0x336f('0x29')](_0x336f('0x34'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0x336f('0x16')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0x336f('0x4')]},'phoneBarEnableJaws':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x336f('0xd')](_0x336f('0x54'))?this[_0x336f('0xd')](_0x336f('0x54')):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![]},'interface':{'type':Sequelize[_0x336f('0x4')],'defaultValue':null},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0x336f('0x4')],'allowNull':!![]},'screenrecording':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'set':function(_0x349491){if(typeof _0x349491==='string'){var _0xf5257f=_0x349491==='1'?!![]:_0x349491==='0'?![]:_0x349491===_0x336f('0x55')?!![]:_0x349491==='false'?![]:![];this[_0x336f('0x6')](_0x336f('0x56'),_0xf5257f);}else{this['setDataValue'](_0x336f('0x56'),_0x349491);}}},'blocked':{'type':Sequelize[_0x336f('0x16')],'defaultValue':![],'set':function(_0x40aed1){this[_0x336f('0x6')](_0x336f('0x57'),_0x40aed1);if(_0x40aed1===!![]){this[_0x336f('0x6')](_0x336f('0x58'),moment());this[_0x336f('0x6')](_0x336f('0x59'),0x0);}else{this[_0x336f('0x6')](_0x336f('0x58'),null);}}},'blockedAt':{'type':Sequelize[_0x336f('0x18')],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0x336f('0x14')],'defaultValue':0x0},'disabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'settingsEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0x336f('0x14')](0x5)[_0x336f('0x5a')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0x336f('0x16')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x336f('0x16')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x336f('0x16')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4af8=['$notILike','$contains','firstName','lastName','Contact','VoiceQueue','getApiKey','retrieveApiKey','token','No\x20API\x20access\x20key\x20found!','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','generateApiKey','iat','nonce','apiKeyIat','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','queues','teams','lower','toString','asc','substring','uniqBy','orderBy','request','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','offline','idle','unavailable','ringing','voiceStatus','slice','charAt','toUpperCase','field','ui.','InteractionId','ui.createdAt','user_has_','OpenTabs','lodash','squel','jayson/promise','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','socket.io-emitter','register','redis','client','http','then','info','User,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','sendStatus','end','json','offset','undefined','limit','count','status','Content-Range','update','destroy','get','role','admin','Users','user','agent','Telephones','filter','map','value','includes','find','name','UserProfileResource','send','index','User','fieldName','type','password','getOptions','where','query','include','attributes','push','findAll','rows','openTabs','true','chat','dataValues','sms','fax','mail','whatsapp','all','show','params','model','differenceBy','keys','rawAttributes','filters','intersection','fields','merge','options','body','describe','addContacts','ids','Setting','findById','securePassword','max','internal','isNil','min_internal','sequelize','SELECT','length','from','voicemail','mailbox','fullname','email','permissions','102','103','113','110','105','106','107','108','100','114','create','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','checkUserLimits','settingsEnabled','userProfileId','VoiceMail','UserProfileSection','Agents','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Unauthorized','some','isEmpty','telephone','changePassword','oldPassword','newPassword','Sequelize','ValidationError','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','authenticate','Wrong\x20credentials','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','findOne','enforcePasswordHistory','passwordHistoryLimit','validatePasswordPattern','validatePasswordHistory','previousPasswords','addQueues','online','loginInPause','voicePause','interface','isValidChannel','Unknown\x20channel','capitalize','toLowerCase','QueueId','emit','voice','format','SIP/%s','UserVoiceQueueRt','upsert','channel','remove','Queues','addAvatar','userpic','file','join','server/files/images/logos/default_profile.png','download','existsSync','root','server/files/images/','getOpenTabs','openchannel','ChatOpenTabs','CHAT','createdAt','FaxOpenTabs','OpenchannelOpenTabs','OPENCHANNEL','MailOpenTabs','SmsOpenTabs','WhatsappOpenTabs','WHATSAPP','CmContact','sort','pick','getContacts','hasOwnProperty','includeAll','CmList','List','color','tag','nolimit','getQueues','Queue','order','Unknown\x20role','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','VoiceRecording','getScreenRecordings','ScreenRecording','getChatInteractions','ChatInteraction','getOpenchannelInteractions','OpenchannelInteraction','getMailInteractions','MailInteraction','SmsInteraction','getSmsInteractions','getFaxInteractions','FaxInteraction','getWhatsappInteractions','WhatsappInteraction','phone','LOCAL/%s@from-sip/n','intrf','user:%s','user:forcelogout','headers','x-forwarded-for','socket','remoteAddress','getVoiceQueues','UserVoiceQueue.penalty','each','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','LOGIN','device','PAUSE','bulkCreate','LOGININPAUSE','isMiddleware','resolve','logout','pause','QueuePause','updateAttributes','getChannels','DEFAULT\x20PAUSE','unpause','mailPause','chatPause','smsPause','pauseType','lastPauseAt','manual','set','%s%s','getTeams','addTeams','omit','Team','setDataValue','Voice','getChatQueues','Chat','Mail','getSmsQueues','getFaxQueues','Fax','getOpenchannelQueues','Openchannel','transaction','addAgent','getDataValue','Queue:save','Sms','getWhatsappQueues','Whatsapp','flatten','removeAgent','getLists','getAgents','addChatInteractions','spread','user_has_chat_interactions:save','removeChatInteractions','isArray','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','user_has_openchannel_interactions:save','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','getVoicePrefixes','getFaxAccounts','addFaxAccounts','removeFaxAccounts','getMailAccounts','MailAccount','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','SmsAccount','addSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getWhatsappAccounts','WhatsappAccount','addWhatsappAccounts','removeWhatsappAccounts','SquareProject','getSquareProjects','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','concat','$or','$gt','$gte','$lte','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike'];(function(_0x1df34d,_0x245995){var _0x2d7dbe=function(_0x10b14a){while(--_0x10b14a){_0x1df34d['push'](_0x1df34d['shift']());}};_0x2d7dbe(++_0x245995);}(_0x4af8,0x1ad));var _0x84af=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x4af8[_0x397e5f];return _0x5302b8;};'use strict';var moment=require('moment');var BPromise=require('bluebird');var util=require('util');var path=require('path');var fs=require('fs');var _=require(_0x84af('0x0'));var squel=require(_0x84af('0x1'));var jayson=require(_0x84af('0x2'));var Redis=require(_0x84af('0x3'));var authService=require('../../components/auth/service');var qs=require(_0x84af('0x4'));var logger=require(_0x84af('0x5'))('api');var utils=require(_0x84af('0x6'));var config=require(_0x84af('0x7'));var licenseUtil=require('../../config/license/util');var db=require(_0x84af('0x8'))['db'];var socket=require(_0x84af('0x9'))(new Redis(config['redis']));require('./user.socket')[_0x84af('0xa')](socket);config[_0x84af('0xb')]=_['defaults'](config[_0x84af('0xb')],{'host':'localhost','port':0x18eb});var client=jayson[_0x84af('0xc')][_0x84af('0xd')]({'port':0x232a});var values;function respondWithRpcPromise(_0x34aa9e,_0x55ac29,_0x4b3925,_0x31f283){return new BPromise(function(_0x4df0e5,_0x2a0d60){var _0xe60937=_0x31f283||client;return _0xe60937['request'](_0x34aa9e,_0x4b3925)[_0x84af('0xe')](function(_0x499c7e){logger[_0x84af('0xf')](_0x84af('0x10'),_0x55ac29,'request\x20sent');logger[_0x84af('0x11')]('User,\x20%s,\x20%s,\x20%s',_0x55ac29,_0x84af('0x12'),JSON[_0x84af('0x13')](_0x499c7e));if(_0x499c7e['error']){if(_0x499c7e[_0x84af('0x14')][_0x84af('0x15')]===0x1f4){logger['error'](_0x84af('0x10'),_0x55ac29,_0x499c7e['error'][_0x84af('0x16')]);return _0x2a0d60(_0x499c7e[_0x84af('0x14')]['message']);}logger['error'](_0x84af('0x10'),_0x55ac29,_0x499c7e[_0x84af('0x14')][_0x84af('0x16')]);return _0x4df0e5(_0x499c7e['error']['message']);}else{logger[_0x84af('0xf')](_0x84af('0x10'),_0x55ac29,_0x84af('0x12'));_0x4df0e5(_0x499c7e[_0x84af('0x17')][_0x84af('0x16')]);}})[_0x84af('0x18')](function(_0x44e19b){logger[_0x84af('0x14')](_0x84af('0x10'),_0x55ac29,_0x44e19b);_0x2a0d60(_0x44e19b);});});}function respondWithStatusCode(_0x52b819,_0x3daf8f){_0x3daf8f=_0x3daf8f||0xcc;return function(_0x12d0a3){if(_0x12d0a3){return _0x52b819[_0x84af('0x19')](_0x3daf8f);}return _0x52b819['status'](_0x3daf8f)[_0x84af('0x1a')]();};}function respondWithResult(_0xaea1ea,_0x14f54d){_0x14f54d=_0x14f54d||0xc8;return function(_0x5af3ce){if(_0x5af3ce){return _0xaea1ea['status'](_0x14f54d)[_0x84af('0x1b')](_0x5af3ce);}};}function respondWithFilteredResult(_0x2a73ff,_0xf72093){return function(_0x24aa07){if(_0x24aa07){var _0x21823e=typeof _0xf72093[_0x84af('0x1c')]===_0x84af('0x1d')&&typeof _0xf72093[_0x84af('0x1e')]===_0x84af('0x1d');var _0x33ec65=_0x24aa07[_0x84af('0x1f')];var _0x52ec78=_0x21823e?0x0:_0xf72093[_0x84af('0x1c')];var _0x418b7c=_0x21823e?_0x24aa07[_0x84af('0x1f')]:_0xf72093[_0x84af('0x1c')]+_0xf72093[_0x84af('0x1e')];var _0x881a95;if(_0x418b7c>=_0x33ec65){_0x418b7c=_0x33ec65;_0x881a95=0xc8;}else{_0x881a95=0xce;}_0x2a73ff[_0x84af('0x20')](_0x881a95);return _0x2a73ff['set'](_0x84af('0x21'),_0x52ec78+'-'+_0x418b7c+'/'+_0x33ec65)[_0x84af('0x1b')](_0x24aa07);}return null;};}function saveUpdates(_0x59417e){return function(_0x3d92d3){if(_0x3d92d3){return _0x3d92d3[_0x84af('0x22')](_0x59417e)[_0x84af('0xe')](function(_0x42fb39){return _0x42fb39;});}return null;};}function removeEntity(_0x5e124a){return function(_0x4fcf97){if(_0x4fcf97){return _0x4fcf97[_0x84af('0x23')]()[_0x84af('0xe')](function(){var _0x238d03=_0x4fcf97[_0x84af('0x24')]({'plain':!![]});if(_0x238d03[_0x84af('0x25')]===_0x84af('0x26'))return;var _0x47bdda=[{'name':_0x84af('0x27'),'value':_0x84af('0x28'),'ignore':!![]},{'name':'Agents','value':_0x84af('0x29'),'ignore':![]},{'name':_0x84af('0x2a'),'value':'telephone','ignore':![]}];var _0x4e5948=_(_0x47bdda)[_0x84af('0x2b')]('ignore')[_0x84af('0x2c')](_0x84af('0x2d'))['value']();if(_[_0x84af('0x2e')](_0x4e5948,_0x238d03[_0x84af('0x25')])){return;}var _0x3d10d0=_[_0x84af('0x2f')](_0x47bdda,[_0x84af('0x2d'),_0x238d03[_0x84af('0x25')]])[_0x84af('0x30')];return db[_0x84af('0x31')][_0x84af('0x23')]({'where':{'type':_0x3d10d0,'resourceId':_0x238d03['id']}})[_0x84af('0xe')](function(){return _0x4fcf97;});})['then'](function(){_0x5e124a[_0x84af('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4939d8){return function(_0xea9e91){if(!_0xea9e91){_0x4939d8['sendStatus'](0x194);}return _0xea9e91;};}function handleError(_0x5109bc,_0xc8c77c){_0xc8c77c=_0xc8c77c||0x1f4;return function(_0x284826){logger[_0x84af('0x14')](_0x284826['stack']);if(_0x284826[_0x84af('0x30')]){delete _0x284826[_0x84af('0x30')];}_0x5109bc['status'](_0xc8c77c)[_0x84af('0x32')](_0x284826);};}exports[_0x84af('0x33')]=function(_0x4b7dab,_0x4f88a7){var _0x43c7d2={},_0x48b1f5={'count':0x0,'rows':[]};var _0x2dca64=_(db[_0x84af('0x34')]['rawAttributes'])['map'](function(_0x34e43e){return{'name':_0x34e43e[_0x84af('0x35')],'type':_0x34e43e[_0x84af('0x36')]['key']};})[_0x84af('0x2b')](function(_0x514b2d){return!_['includes']([_0x84af('0x37'),'salt'],_0x514b2d[_0x84af('0x30')]);})[_0x84af('0x2d')]();_0x43c7d2=qs[_0x84af('0x38')](_0x2dca64,_0x4b7dab);var _0x50ed9b={'where':_0x43c7d2[_0x84af('0x39')]};return db[_0x84af('0x34')]['count'](_0x50ed9b)[_0x84af('0xe')](function(_0x355150){_0x48b1f5[_0x84af('0x1f')]=_0x355150;if(_0x4b7dab[_0x84af('0x3a')]['includeAll']){_0x43c7d2[_0x84af('0x3b')]=[{'all':!![]}];}if(!_[_0x84af('0x2e')](_0x43c7d2['attributes'],'id')){_0x43c7d2[_0x84af('0x3c')][_0x84af('0x3d')]('id');}return db[_0x84af('0x34')][_0x84af('0x3e')](_0x43c7d2);})['then'](function(_0x351da0){_0x48b1f5[_0x84af('0x3f')]=_0x351da0;if(_0x4b7dab[_0x84af('0x3a')][_0x84af('0x40')]===_0x84af('0x41')){var _0x23daf7=[];for(var _0x5a87f0=0x0;_0x5a87f0<_0x48b1f5[_0x84af('0x3f')]['length'];_0x5a87f0++){_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x42'),_0x48b1f5['rows'][_0x5a87f0][_0x84af('0x43')]));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x44'),_0x48b1f5[_0x84af('0x3f')][_0x5a87f0][_0x84af('0x43')]));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x45'),_0x48b1f5[_0x84af('0x3f')][_0x5a87f0][_0x84af('0x43')]));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x46'),_0x48b1f5['rows'][_0x5a87f0]['dataValues']));_0x23daf7[_0x84af('0x3d')](get_open_tabs('openchannel',_0x48b1f5['rows'][_0x5a87f0]['dataValues']));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x47'),_0x48b1f5[_0x84af('0x3f')][_0x5a87f0][_0x84af('0x43')]));}return BPromise[_0x84af('0x48')](_0x23daf7)[_0x84af('0xe')](function(_0x18aa31){return _0x48b1f5;});}else{return _0x48b1f5;}})['then'](respondWithFilteredResult(_0x4f88a7,_0x43c7d2))[_0x84af('0x18')](handleError(_0x4f88a7,null));};exports[_0x84af('0x49')]=function(_0x4adcb7,_0xf83cec){var _0x2a0725={'raw':![],'where':{'id':_0x4adcb7[_0x84af('0x4a')]['id']}},_0x58d824={};_0x58d824[_0x84af('0x4b')]=_[_0x84af('0x4c')](_[_0x84af('0x4d')](db[_0x84af('0x34')][_0x84af('0x4e')]),[_0x84af('0x37'),'salt']);_0x58d824[_0x84af('0x3a')]=_['keys'](_0x4adcb7[_0x84af('0x3a')]);_0x58d824[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x58d824[_0x84af('0x4b')],_0x58d824[_0x84af('0x3a')]);_0x2a0725[_0x84af('0x3c')]=_['intersection'](_0x58d824[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x4adcb7[_0x84af('0x3a')][_0x84af('0x51')]));_0x2a0725[_0x84af('0x3c')]=_0x2a0725[_0x84af('0x3c')]['length']?_0x2a0725[_0x84af('0x3c')]:_0x58d824['model'];if(_0x4adcb7[_0x84af('0x3a')]['includeAll']){_0x2a0725['include']=[{'all':!![]}];}_0x2a0725=_[_0x84af('0x52')]({},_0x2a0725,_0x4adcb7[_0x84af('0x53')]);if(!_[_0x84af('0x2e')](_0x2a0725[_0x84af('0x3c')],'id')){_0x2a0725[_0x84af('0x3c')][_0x84af('0x3d')]('id');}return db[_0x84af('0x34')][_0x84af('0x2f')](_0x2a0725)[_0x84af('0xe')](handleEntityNotFound(_0xf83cec,null))[_0x84af('0xe')](function(_0x3bf724){var _0x41aad6=[];values=_0x3bf724;if(_0x4adcb7[_0x84af('0x3a')][_0x84af('0x40')]===_0x84af('0x41')){_0x41aad6[_0x84af('0x3d')](get_open_tabs(_0x84af('0x42'),_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs(_0x84af('0x44'),_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs('openchannel',_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs('whatsapp',_0x3bf724[_0x84af('0x43')]));_0x41aad6['push'](get_open_tabs('fax',_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs('mail',_0x3bf724[_0x84af('0x43')]));return BPromise[_0x84af('0x48')](_0x41aad6);}else{return values;}})[_0x84af('0xe')](function(_0x26fd44){return values;})[_0x84af('0xe')](respondWithResult(_0xf83cec,null))[_0x84af('0x18')](handleError(_0xf83cec,null));};exports['update']=function(_0x1e4b4b,_0x273da1){if(_0x1e4b4b[_0x84af('0x54')]['id']){delete _0x1e4b4b[_0x84af('0x54')]['id'];}delete _0x1e4b4b[_0x84af('0x54')][_0x84af('0x25')];return db[_0x84af('0x34')]['find']({'where':{'id':_0x1e4b4b[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x273da1,null))[_0x84af('0xe')](saveUpdates(_0x1e4b4b['body'],null))[_0x84af('0xe')](respondWithResult(_0x273da1,null))[_0x84af('0x18')](handleError(_0x273da1,null));};exports['describe']=function(_0x5db63f,_0x3587d9){return db['User'][_0x84af('0x55')]()['then'](respondWithResult(_0x3587d9,null))['catch'](handleError(_0x3587d9,null));};exports['addContacts']=function(_0x4651db,_0x180f18){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x4651db['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x180f18,null))[_0x84af('0xe')](function(_0xf03b15){if(_0xf03b15){return _0xf03b15[_0x84af('0x56')](_0x4651db['body']['ids'],_['omit'](_0x4651db['body'],[_0x84af('0x57'),'id'])||{});}})['then'](respondWithResult(_0x180f18,null))[_0x84af('0x18')](handleError(_0x180f18,null));};function validateUser(_0x519803){return new BPromise(function(_0x2a43b8,_0x139c9f){if(_0x519803['internal'])return _0x2a43b8(_0x519803);return db[_0x84af('0x58')][_0x84af('0x59')](0x1)['then'](function(_0x2788cb){if(_0x2788cb[_0x84af('0x5a')])authService['validatePasswordPattern'](_0x519803[_0x84af('0x37')]);db[_0x84af('0x34')][_0x84af('0x5b')](_0x84af('0x5c'))[_0x84af('0xe')](function(_0x124abc){if(_[_0x84af('0x5d')](_0x124abc)){_0x519803['internal']=_0x2788cb[_0x84af('0x5e')]||0x1;return;}if(_[_0x84af('0x5d')](_0x2788cb['min_internal'])||_0x2788cb['min_internal']===_0x124abc){_0x519803[_0x84af('0x5c')]=_0x124abc+0x1;return;}if(_0x2788cb[_0x84af('0x5e')]>_0x124abc){_0x519803[_0x84af('0x5c')]=_0x2788cb[_0x84af('0x5e')];return;}return db[_0x84af('0x5f')][_0x84af('0x3a')]('select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)',{'type':db[_0x84af('0x5f')]['QueryTypes'][_0x84af('0x60')]})[_0x84af('0xe')](function(_0xec5628){if(_0xec5628&&_0xec5628[_0x84af('0x61')]){for(var _0x50825b=0x0,_0x9107d1=_0xec5628['length'];_0x50825b<_0x9107d1&&_[_0x84af('0x5d')](_0x519803[_0x84af('0x5c')]);_0x50825b++){if(_0x2788cb[_0x84af('0x5e')]<=_0xec5628[_0x50825b][_0x84af('0x62')]){_0x519803[_0x84af('0x5c')]=_0xec5628[_0x50825b][_0x84af('0x62')];}else if(_0x2788cb[_0x84af('0x5e')]>_0xec5628[_0x50825b]['from']&&_0x2788cb[_0x84af('0x5e')]<=_0xec5628[_0x50825b]['to']){_0x519803[_0x84af('0x5c')]=_0x2788cb['min_internal'];}}}if(_[_0x84af('0x5d')](_0x519803[_0x84af('0x5c')])){_0x519803[_0x84af('0x5c')]=_0x124abc+0x1;}return _0x2a43b8(_0x519803);});});})[_0x84af('0x18')](function(_0x25e3d7){_0x139c9f(_0x25e3d7);});});}function updateUser(_0xecacb5){return new BPromise(function(_0x173589,_0x4daa7b){try{if(_0xecacb5[_0x84af('0x63')]){_0xecacb5[_0x84af('0x64')]=_0xecacb5[_0x84af('0x5c')];_0xecacb5['VoiceMail']={'mailbox':_0xecacb5[_0x84af('0x5c')],'password':_0xecacb5[_0x84af('0x37')],'fullname':_0xecacb5[_0x84af('0x65')],'email':_0xecacb5[_0x84af('0x66')]};}if(_0xecacb5['role']===_0x84af('0x29')){if(!_0xecacb5['permissions'])_0xecacb5[_0x84af('0x67')]=['101',_0x84af('0x68'),_0x84af('0x69'),_0x84af('0x6a'),_0x84af('0x6b'),'104',_0x84af('0x6c'),_0x84af('0x6d'),_0x84af('0x6e'),_0x84af('0x6f'),'109',_0x84af('0x70'),'111',_0x84af('0x71'),'115'];}_0x173589(_0xecacb5);}catch(_0x27d3b9){_0x4daa7b(_0x27d3b9);}});}exports[_0x84af('0x72')]=function(_0x53368a,_0xad60f4){if(_0x53368a['user']['role']===_0x84af('0x29'))throw new Error('Unauthorized');if(_0x53368a['body'][_0x84af('0x25')]===_0x84af('0x28')&&_0x53368a[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error(_0x84af('0x73'));}if(_0x53368a['body'][_0x84af('0x25')]===_0x84af('0x26')&&_0x53368a[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error(_0x84af('0x74'));}return licenseUtil[_0x84af('0x75')]([_0x53368a['body']])['then'](function(){return validateUser(_0x53368a[_0x84af('0x54')]);})[_0x84af('0xe')](function(_0x552068){return updateUser(_0x552068)['then'](function(_0x3bb56c){if(_0x3bb56c[_0x84af('0x25')]===_0x84af('0x26')){_0x3bb56c[_0x84af('0x76')]=_0x53368a[_0x84af('0x28')]['settingsEnabled'];delete _0x3bb56c[_0x84af('0x77')];}return _0x3bb56c;});})[_0x84af('0xe')](function(_0x44505f){return db[_0x84af('0x34')][_0x84af('0x72')](_0x44505f,{'include':[{'model':db[_0x84af('0x78')],'as':'VoiceMail'}]});})[_0x84af('0xe')](function(_0x16f62e){if(_0x53368a[_0x84af('0x54')][_0x84af('0x25')]===_0x84af('0x28'))return _0x16f62e;if(_0x53368a[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x28'))return _0x16f62e;return db[_0x84af('0x79')][_0x84af('0x2f')]({'where':{'name':_0x16f62e[_0x84af('0x25')]===_0x84af('0x29')?_0x84af('0x7a'):_0x84af('0x2a'),'userProfileId':_0x53368a[_0x84af('0x28')][_0x84af('0x77')]},'raw':!![]})[_0x84af('0xe')](function(_0x1d5344){if(!_0x1d5344||_0x1d5344[_0x84af('0x7b')]!=0x0)return _0x16f62e;return db[_0x84af('0x31')][_0x84af('0x72')]({'name':_0x16f62e[_0x84af('0x30')],'resourceId':_0x16f62e['id'],'type':_0x1d5344[_0x84af('0x30')],'sectionId':_0x1d5344['id']},{})[_0x84af('0xe')](function(){return _0x16f62e;});})['catch'](function(_0x29add9){logger[_0x84af('0x14')](_0x84af('0x7c'),_0x29add9);throw _0x29add9;});})[_0x84af('0xe')](respondWithResult(_0xad60f4,0xc9))[_0x84af('0x18')](handleError(_0xad60f4,null));};exports['bulkCreate']=function(_0x48a8f5,_0x1675f3){var _0x1202a8=_0x48a8f5[_0x84af('0x54')];var _0x249cdc=[];if(_0x48a8f5[_0x84af('0x28')]['role']===_0x84af('0x29'))throw new Error(_0x84af('0x7d'));if(_[_0x84af('0x7e')](_0x1202a8,[_0x84af('0x25'),_0x84af('0x28')])&&_0x48a8f5[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user');}if(_[_0x84af('0x7e')](_0x1202a8,[_0x84af('0x25'),_0x84af('0x26')])&&_0x48a8f5[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator');}return licenseUtil['checkUserLimits'](_0x1202a8)[_0x84af('0xe')](function(){return validateUser(_0x1202a8[0x0]);})[_0x84af('0xe')](function(){for(var _0x39789c=0x1;_0x39789c<_0x1202a8[_0x84af('0x61')];_0x39789c++){var _0x1a62ff=_0x1202a8[_0x39789c-0x1][_0x84af('0x5c')];if(!_0x1202a8[_0x39789c][_0x84af('0x5c')])_0x1202a8[_0x39789c][_0x84af('0x5c')]=_0x1a62ff+0x1;_0x249cdc[_0x84af('0x3d')](validateUser(_0x1202a8[_0x39789c]));}return BPromise['all'](_0x249cdc);})[_0x84af('0xe')](function(){_0x249cdc=[];for(var _0xdb0d38=0x0;_0xdb0d38<_0x1202a8['length'];_0xdb0d38++){_0x249cdc[_0x84af('0x3d')](updateUser(_0x1202a8[_0xdb0d38]));}return BPromise[_0x84af('0x48')](_0x249cdc);})[_0x84af('0xe')](function(){return BPromise['each'](_0x1202a8,function(_0x13a4b7){return db[_0x84af('0x34')][_0x84af('0x72')](_0x13a4b7,{'include':[{'model':db[_0x84af('0x78')],'as':_0x84af('0x78')}]})[_0x84af('0xe')](function(_0x5d0781){_0x13a4b7['id']=_0x5d0781['id'];return _0x13a4b7;});});})['then'](function(_0xce6304){if(_0x48a8f5[_0x84af('0x54')][_0x84af('0x25')]===_0x84af('0x28'))return _0xce6304;if(_0x48a8f5[_0x84af('0x28')][_0x84af('0x25')]!=='user')return _0xce6304;var _0x3b947d=_[_0x84af('0x7e')](_0xce6304,function(_0x2e92be){return _0x2e92be[_0x84af('0x25')]==='agent'||_0x2e92be['role']==='telephone';});if(!_0x3b947d)return _0xce6304;return db[_0x84af('0x79')][_0x84af('0x3e')]({'where':{'name':{'$or':[_0x84af('0x7a'),_0x84af('0x2a')]},'userProfileId':_0x48a8f5[_0x84af('0x28')][_0x84af('0x77')]},'raw':!![]})[_0x84af('0xe')](function(_0x3c4fd0){if(_[_0x84af('0x7f')](_0x3c4fd0)||!_['some'](_0x3c4fd0,[_0x84af('0x7b'),0x0]))return _0xce6304;_0x249cdc=[];var _0x569b1c=_(_0x3c4fd0)['map'](function(_0x1a3043){if(_0x1a3043['autoAssociation']===0x1)return;return _0x1a3043[_0x84af('0x30')]===_0x84af('0x7a')?'agent':_0x84af('0x80');})['compact']()[_0x84af('0x2d')]();for(var _0x5303d=0x0;_0x5303d<_0xce6304[_0x84af('0x61')];_0x5303d++){if(!_[_0x84af('0x2e')](_0x569b1c,_0xce6304[_0x5303d]['role']))return;var _0x51ef30=_0xce6304[_0x5303d][_0x84af('0x25')]==='agent'?_0x84af('0x7a'):_0x84af('0x2a');_0x249cdc[_0x84af('0x3d')](db['UserProfileResource'][_0x84af('0x72')]({'name':_0xce6304[_0x5303d]['name'],'resourceId':_0xce6304[_0x5303d]['id'],'type':_0x51ef30,'sectionId':_['find'](_0x3c4fd0,[_0x84af('0x30'),_0x51ef30])['id']},{}));}return BPromise[_0x84af('0x48')](_0x249cdc);});})[_0x84af('0xe')](respondWithResult(_0x1675f3,0xc9))[_0x84af('0x18')](handleError(_0x1675f3,null));};exports[_0x84af('0x81')]=function(_0x25038e,_0xca68b){if(_0x25038e[_0x84af('0x54')]['id']){delete _0x25038e[_0x84af('0x54')]['id'];}return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x25038e[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](function(_0x24f837){if(!_0x24f837)return null;if(_0x24f837['id']===_0x25038e[_0x84af('0x28')]['id']){if(!_0x25038e['body'][_0x84af('0x82')]||!_0x25038e[_0x84af('0x54')][_0x84af('0x83')]){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x86'));}if(!_0x24f837[_0x84af('0x87')](_0x25038e[_0x84af('0x54')][_0x84af('0x82')])){throw new db[(_0x84af('0x84'))]['ValidationError'](_0x84af('0x88'));}if(_0x25038e[_0x84af('0x54')][_0x84af('0x82')]===_0x25038e[_0x84af('0x54')][_0x84af('0x83')]){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x89'));}}else if(_0x25038e[_0x84af('0x28')]['role']===_0x84af('0x26')){if(!_0x25038e[_0x84af('0x54')][_0x84af('0x83')]){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x8a'));}}else if(_0x25038e[_0x84af('0x28')][_0x84af('0x25')]==='user'){if(!_0x25038e[_0x84af('0x54')]['newPassword']){throw new db[(_0x84af('0x84'))]['ValidationError'](_0x84af('0x8a'));}if(_0x24f837[_0x84af('0x25')]!==_0x84af('0x29')){throw new db['Sequelize']['ValidationError'](_0x84af('0x7d'));}}else{throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x7d'));}return _0x24f837;})[_0x84af('0xe')](handleEntityNotFound(_0xca68b,null))[_0x84af('0xe')](function(_0x30d49a){return db[_0x84af('0x58')][_0x84af('0x8b')]({'attributes':['id','securePassword',_0x84af('0x8c'),_0x84af('0x8d')]})[_0x84af('0xe')](function(_0x229587){if(_0x229587[_0x84af('0x5a')])authService[_0x84af('0x8e')](_0x25038e[_0x84af('0x54')][_0x84af('0x83')]);if(!_0x229587[_0x84af('0x8c')]||!_0x30d49a['previousPasswords'])return _0x30d49a;authService[_0x84af('0x8f')](_0x25038e['body'][_0x84af('0x83')],_0x30d49a[_0x84af('0x90')],_0x229587[_0x84af('0x8d')]);return _0x30d49a;})[_0x84af('0xe')](saveUpdates({'password':_0x25038e[_0x84af('0x54')][_0x84af('0x83')],'passwordResetAt':_0x25038e[_0x84af('0x28')]['id']==_0x25038e[_0x84af('0x4a')]['id']?moment():null,'previousPasswords':authService['updatePasswordsHistory'](_0x25038e[_0x84af('0x54')][_0x84af('0x83')],_0x30d49a[_0x84af('0x90')])},null));})[_0x84af('0xe')](respondWithResult(_0xca68b,null))[_0x84af('0x18')](handleError(_0xca68b,null));};exports[_0x84af('0x91')]=function(_0x187d54,_0x576589){var _0x1a3f7e=_0x187d54[_0x84af('0x54')]['channel'];return db['User'][_0x84af('0x2f')]({'where':{'id':_0x187d54[_0x84af('0x4a')]['id']},'attributes':['id',_0x84af('0x30'),'role',_0x84af('0x92'),_0x84af('0x93'),_0x84af('0x94'),_0x84af('0x95')]})[_0x84af('0xe')](handleEntityNotFound(_0x576589,null))[_0x84af('0xe')](function(_0x10a83d){if(_0x10a83d){if(!utils[_0x84af('0x96')](_0x1a3f7e)){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x97'));}return _0x10a83d['add'+_[_0x84af('0x98')](_0x1a3f7e[_0x84af('0x99')]())+'Queues'](_0x187d54[_0x84af('0x54')][_0x84af('0x57')],{'penalty':_0x187d54[_0x84af('0x54')]['penalty']||0x0})['spread'](function(_0x27e09f){for(var _0x4f1f77=0x0;_0x4f1f77<_0x187d54[_0x84af('0x54')][_0x84af('0x57')][_0x84af('0x61')];_0x4f1f77+=0x1){var _0x2db283={'UserId':Number(_0x187d54[_0x84af('0x4a')]['id'])};_0x2db283[_[_0x84af('0x98')](_0x1a3f7e[_0x84af('0x99')]())+_0x84af('0x9a')]=Number(_0x187d54[_0x84af('0x54')][_0x84af('0x57')][_0x4f1f77]);socket[_0x84af('0x9b')](_0x84af('0x28')+_[_0x84af('0x98')](_0x1a3f7e[_0x84af('0x99')]())+'Queue:save',_0x2db283);}return _0x27e09f;})[_0x84af('0xe')](function(){if(_0x1a3f7e===_0x84af('0x9c')){return db['VoiceQueue'][_0x84af('0x3e')]({'where':{'id':_0x187d54[_0x84af('0x54')]['ids']||[]},'raw':!![],'attributes':['id',_0x84af('0x30')]});}})['then'](function(_0x43a0fc){var _0x20ca7c=_0x10a83d['get']({'plain':!![]});var _0x12903c=[];if(_0x1a3f7e===_0x84af('0x9c')&&_0x20ca7c[_0x84af('0x25')]===_0x84af('0x29')&&_0x20ca7c[_0x84af('0x92')]){for(var _0x575746=0x0;_0x575746<_0x43a0fc['length'];_0x575746+=0x1){_0x12903c[_0x84af('0x3d')]({'membername':_0x20ca7c[_0x84af('0x30')],'UserId':_0x20ca7c['id'],'queue_name':_0x43a0fc[_0x575746][_0x84af('0x30')],'VoiceQueueId':_0x43a0fc[_0x575746]['id'],'interface':_[_0x84af('0x5d')](_0x20ca7c[_0x84af('0x95')])?util[_0x84af('0x9d')](_0x84af('0x9e'),_0x20ca7c['name']):_0x20ca7c[_0x84af('0x95')],'paused':_0x20ca7c['voicePause']||![],'penalty':_0x187d54[_0x84af('0x54')]['penalty']||0x0});}return BPromise['each'](_0x12903c,function(_0x28e5da){return db[_0x84af('0x9f')][_0x84af('0xa0')](_0x28e5da);});}return _0x10a83d;});}})[_0x84af('0xe')](respondWithStatusCode(_0x576589,null))[_0x84af('0x18')](handleError(_0x576589,null));};exports['removeQueues']=function(_0x11d60b,_0x73596){var _0x3cdcfb;return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x11d60b[_0x84af('0x4a')]['id']},'attributes':['id','name',_0x84af('0x25')]})[_0x84af('0xe')](handleEntityNotFound(_0x73596,null))[_0x84af('0xe')](function(_0x350c47){if(_0x350c47){_0x3cdcfb=_0x350c47;if(!_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')]||!utils[_0x84af('0x96')](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')])){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x97'));}return _0x350c47[_0x84af('0xa2')+_[_0x84af('0x98')](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')][_0x84af('0x99')]())+_0x84af('0xa3')](_0x11d60b[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](function(_0x16c294){if(_['isArray'](_0x11d60b[_0x84af('0x3a')]['ids'])){for(var _0x3c21eb=0x0;_0x3c21eb<_0x11d60b[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x3c21eb+=0x1){var _0x2dfd87={'UserId':Number(_0x11d60b['params']['id'])};_0x2dfd87[_[_0x84af('0x98')](_0x11d60b['query'][_0x84af('0xa1')][_0x84af('0x99')]())+'QueueId']=Number(_0x11d60b[_0x84af('0x3a')]['ids'][_0x3c21eb]);socket[_0x84af('0x9b')](_0x84af('0x28')+_[_0x84af('0x98')](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')][_0x84af('0x99')]())+'Queue:remove',_0x2dfd87);}}else{var _0x2dfd87={'UserId':Number(_0x11d60b[_0x84af('0x4a')]['id'])};_0x2dfd87[_[_0x84af('0x98')](_0x11d60b[_0x84af('0x3a')]['channel'][_0x84af('0x99')]())+_0x84af('0x9a')]=Number(_0x11d60b[_0x84af('0x3a')][_0x84af('0x57')]);socket[_0x84af('0x9b')]('user'+_['capitalize'](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')][_0x84af('0x99')]())+'Queue:remove',_0x2dfd87);}return _0x16c294;})[_0x84af('0xe')](function(){if(_0x11d60b['query'][_0x84af('0xa1')]===_0x84af('0x9c')){return db['UserVoiceQueueRt'][_0x84af('0x23')]({'where':{'UserId':_0x11d60b[_0x84af('0x4a')]['id'],'VoiceQueueId':_0x11d60b[_0x84af('0x3a')]['ids']},'individualHooks':!![]})[_0x84af('0xe')](function(){return _0x3cdcfb;});}return _0x3cdcfb;})[_0x84af('0xe')](respondWithStatusCode(_0x73596,null))[_0x84af('0x18')](handleError(_0x73596,null));};exports[_0x84af('0xa4')]=function(_0x8273f3,_0x288249){_0x8273f3[_0x84af('0x54')][_0x84af('0xa5')]=_0x8273f3[_0x84af('0xa6')]['filename'];return db[_0x84af('0x34')]['find']({'where':{'id':_0x8273f3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x288249,null))[_0x84af('0xe')](saveUpdates(_0x8273f3[_0x84af('0x54')],null))[_0x84af('0xe')](respondWithResult(_0x288249,null))['catch'](handleError(_0x288249,null));};exports['getAvatar']=function(_0x4ac968,_0x49d056){var _0x4a0e38=path[_0x84af('0xa7')](config['root'],_0x84af('0xa8'));return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4ac968[_0x84af('0x4a')]['id']},'attributes':['id',_0x84af('0xa5')],'raw':!![]})['then'](handleEntityNotFound(_0x49d056,null))[_0x84af('0xe')](function(_0xe14c62){if(_0xe14c62){if(_[_0x84af('0x5d')](_0xe14c62[_0x84af('0xa5')])){return _0x49d056[_0x84af('0xa9')](_0x4a0e38);}else{if(!fs[_0x84af('0xaa')](path[_0x84af('0xa7')](config[_0x84af('0xab')],_0x84af('0xac'),_0xe14c62[_0x84af('0xa5')]))){return _0x49d056[_0x84af('0xa9')](_0x4a0e38);}return _0x49d056[_0x84af('0xa9')](path[_0x84af('0xa7')](config[_0x84af('0xab')],_0x84af('0xac'),_0xe14c62[_0x84af('0xa5')]));}}})['catch'](handleError(_0x49d056,null));};exports[_0x84af('0xad')]=function(_0x506652,_0x399c30){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x506652[_0x84af('0x4a')]['id']},'attributes':['id']})['then'](handleEntityNotFound(_0x399c30,null))[_0x84af('0xe')](function(_0x29d19f){var _0x571b1b=[];values=_0x29d19f['dataValues'];_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x42'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x44'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0xae'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x47'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs('fax',_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x46'),_0x29d19f[_0x84af('0x43')]));return BPromise[_0x84af('0x48')](_0x571b1b);})['then'](function(_0x14700d){var _0x20d99f=[];if(_0x14700d){for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xaf')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xaf')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':_0x84af('0xb0'),'id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb2')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values['FaxOpenTabs'][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':'FAX','id':_0xf3beb0['id'],'createdAt':_0xf3beb0['createdAt']});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb3')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb3')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':_0x84af('0xb4'),'id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values['MailOpenTabs'][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb5')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':'MAIL','id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb6')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb6')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':'SMS','id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb7')]['length'];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb7')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':_0x84af('0xb8'),'id':_0xf3beb0['id'],'createdAt':_0xf3beb0['createdAt']});}var _0x2f5b7a={'count':_0x20d99f[_0x84af('0x61')],'rows':_0x20d99f};return _0x2f5b7a;}else return null;})[_0x84af('0xe')](respondWithResult(_0x399c30,null))[_0x84af('0x18')](handleError(_0x399c30,null));};exports['getContacts']=function(_0x33bc1e,_0x133668){var _0x24bbdb={};var _0x16162e={};var _0x5e1ba2;var _0x2f013a;return db['User'][_0x84af('0x8b')]({'where':{'id':_0x33bc1e[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x133668,null))[_0x84af('0xe')](function(_0x9b1132){if(_0x9b1132){_0x5e1ba2=_0x9b1132;_0x16162e[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xb9')][_0x84af('0x4e')]);_0x16162e[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x33bc1e[_0x84af('0x3a')]);_0x16162e['filters']=_[_0x84af('0x50')](_0x16162e['model'],_0x16162e['query']);_0x24bbdb[_0x84af('0x3c')]=_['intersection'](_0x16162e[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x33bc1e[_0x84af('0x3a')][_0x84af('0x51')]));_0x24bbdb[_0x84af('0x3c')]=_0x24bbdb[_0x84af('0x3c')][_0x84af('0x61')]?_0x24bbdb[_0x84af('0x3c')]:_0x16162e[_0x84af('0x4b')];_0x24bbdb['order']=qs[_0x84af('0xba')](_0x33bc1e[_0x84af('0x3a')][_0x84af('0xba')]);_0x24bbdb[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x33bc1e[_0x84af('0x3a')],_0x16162e['filters']));if(_0x33bc1e[_0x84af('0x3a')][_0x84af('0x2b')]){_0x24bbdb[_0x84af('0x39')]=_['merge'](_0x24bbdb[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x24bbdb[_0x84af('0x3c')],function(_0x2d4ecd){var _0x37cede={};_0x37cede[_0x2d4ecd]={'$like':'%'+_0x33bc1e[_0x84af('0x3a')]['filter']+'%'};return _0x37cede;})});}_0x24bbdb=_[_0x84af('0x52')]({},_0x24bbdb,_0x33bc1e[_0x84af('0x53')]);return _0x5e1ba2[_0x84af('0xbc')](_0x24bbdb);}})[_0x84af('0xe')](function(_0x10b35e){if(_0x10b35e){_0x2f013a=_0x10b35e[_0x84af('0x61')];if(_0x33bc1e[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xbe'))){_0x24bbdb[_0x84af('0x3b')]=[{'model':db[_0x84af('0xbf')],'as':_0x84af('0xc0'),'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x84af('0x30'),_0x84af('0xc1')],'where':_0x33bc1e['query']['tag']?{'id':_0x33bc1e[_0x84af('0x3a')]['tag']}:undefined,'required':_0x33bc1e[_0x84af('0x3a')][_0x84af('0xc2')]?!![]:![]}];}if(!_0x33bc1e[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x24bbdb[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x33bc1e['query']['limit']);_0x24bbdb['offset']=qs[_0x84af('0x1c')](_0x33bc1e['query'][_0x84af('0x1c')]);}return _0x5e1ba2[_0x84af('0xbc')](_0x24bbdb);}})[_0x84af('0xe')](function(_0x180d3c){if(_0x180d3c){return _0x180d3c?{'count':_0x2f013a,'rows':_0x180d3c}:null;}})[_0x84af('0xe')](respondWithResult(_0x133668,null))[_0x84af('0x18')](handleError(_0x133668,null));};exports[_0x84af('0xc4')]=function(_0x3dea8b,_0x33450d){var _0x319f88;var _0x29ed11;var _0x28dfad={};var _0x5f0a56;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3dea8b[_0x84af('0x4a')]['id']},'attributes':['id','name',_0x84af('0x25')]})[_0x84af('0xe')](handleEntityNotFound(_0x33450d,null))[_0x84af('0xe')](function(_0x8c287c){if(!utils[_0x84af('0x96')](_0x3dea8b[_0x84af('0x3a')]['channel'])){throw new db['Sequelize'][(_0x84af('0x85'))](_0x84af('0x97'));}_0x319f88=_0x8c287c;var _0x1cf533={};_0x1cf533[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_[_0x84af('0x98')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0xa1')])+_0x84af('0xc5')][_0x84af('0x4e')]);_0x1cf533[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x3dea8b[_0x84af('0x3a')]);_0x1cf533['filters']=_[_0x84af('0x50')](_0x1cf533[_0x84af('0x4b')],_0x1cf533['query']);_0x28dfad[_0x84af('0x3c')]=_['intersection'](_0x1cf533[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0x51')]));_0x28dfad[_0x84af('0x3c')]=_0x28dfad[_0x84af('0x3c')][_0x84af('0x61')]?_0x28dfad[_0x84af('0x3c')]:_0x1cf533[_0x84af('0x4b')];_0x28dfad[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x3dea8b['query'][_0x84af('0xba')]);_0x28dfad[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3dea8b[_0x84af('0x3a')],_0x1cf533[_0x84af('0x4f')]));if(_0x3dea8b['query']['filter']){_0x28dfad[_0x84af('0x39')]=_[_0x84af('0x52')](_0x28dfad['where'],{'$or':_[_0x84af('0x2c')](_0x28dfad[_0x84af('0x3c')],function(_0x13cf2d){var _0xa0f07b={};_0xa0f07b[_0x13cf2d]={'$like':'%'+_0x3dea8b[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0xa0f07b;})});}_0x28dfad=_[_0x84af('0x52')]({},_0x28dfad,_0x3dea8b['options']);switch(_0x319f88[_0x84af('0x25')]){case _0x84af('0x26'):return db[_[_0x84af('0x98')](_0x3dea8b[_0x84af('0x3a')]['channel'])+_0x84af('0xc5')][_0x84af('0x3e')](_0x28dfad);case _0x84af('0x28'):case _0x84af('0x29'):return _0x319f88[_0x84af('0x24')+_[_0x84af('0x98')](_0x3dea8b['query'][_0x84af('0xa1')])+'Queues'](_0x28dfad);default:throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0xc7'));}})[_0x84af('0xe')](function(_0x4780ee){_0x5f0a56=_0x4780ee[_0x84af('0x61')];if(!_0x3dea8b[_0x84af('0x3a')][_0x84af('0xbd')]('nolimit')){_0x28dfad['limit']=qs[_0x84af('0x1e')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0x1e')]);_0x28dfad[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3dea8b['query']['offset']);}switch(_0x319f88['role']){case _0x84af('0x26'):return db[_['capitalize'](_0x3dea8b[_0x84af('0x3a')][_0x84af('0xa1')])+_0x84af('0xc5')][_0x84af('0x3e')](_0x28dfad);case _0x84af('0x28'):case _0x84af('0x29'):return _0x319f88[_0x84af('0x24')+_[_0x84af('0x98')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0xa1')])+_0x84af('0xa3')](_0x28dfad);}})[_0x84af('0xe')](function(_0x15a3cc){return{'count':_0x5f0a56,'rows':_0x15a3cc};})[_0x84af('0xe')](respondWithResult(_0x33450d,null))[_0x84af('0x18')](handleError(_0x33450d,null));};exports[_0x84af('0xc8')]=function(_0x1d08bc,_0x13285d){var _0x4b90ea={};var _0x3f6c66={};var _0x5aadaf;var _0x1f0d93;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x1d08bc[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x13285d,null))['then'](function(_0x2729ab){if(_0x2729ab){_0x5aadaf=_0x2729ab;_0x3f6c66[_0x84af('0x4b')]=_['keys'](db['UserVoiceQueueRt'][_0x84af('0x4e')]);_0x3f6c66[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x1d08bc[_0x84af('0x3a')]);_0x3f6c66['filters']=_[_0x84af('0x50')](_0x3f6c66[_0x84af('0x4b')],_0x3f6c66[_0x84af('0x3a')]);_0x4b90ea[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x3f6c66[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x1d08bc[_0x84af('0x3a')]['fields']));_0x4b90ea[_0x84af('0x3c')]=_0x4b90ea[_0x84af('0x3c')][_0x84af('0x61')]?_0x4b90ea['attributes']:_0x3f6c66[_0x84af('0x4b')];_0x4b90ea[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x1d08bc['query']['sort']);_0x4b90ea[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x1d08bc[_0x84af('0x3a')],_0x3f6c66[_0x84af('0x4f')]));if(_0x1d08bc[_0x84af('0x3a')][_0x84af('0x2b')]){_0x4b90ea['where']=_[_0x84af('0x52')](_0x4b90ea['where'],{'$or':_[_0x84af('0x2c')](_0x4b90ea[_0x84af('0x3c')],function(_0x3aebaa){var _0x9fa6db={};_0x9fa6db[_0x3aebaa]={'$like':'%'+_0x1d08bc[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x9fa6db;})});}_0x4b90ea=_['merge']({},_0x4b90ea,_0x1d08bc['options']);return _0x5aadaf[_0x84af('0xc8')](_0x4b90ea);}})[_0x84af('0xe')](function(_0x33cab1){if(_0x33cab1){_0x1f0d93=_0x33cab1[_0x84af('0x61')];if(!_0x1d08bc[_0x84af('0x3a')]['hasOwnProperty']('nolimit')){_0x4b90ea[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x1d08bc[_0x84af('0x3a')][_0x84af('0x1e')]);_0x4b90ea[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x1d08bc[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x5aadaf[_0x84af('0xc8')](_0x4b90ea);}})[_0x84af('0xe')](function(_0x25574b){if(_0x25574b){return _0x25574b?{'count':_0x1f0d93,'rows':_0x25574b}:null;}})[_0x84af('0xe')](respondWithResult(_0x13285d,null))['catch'](handleError(_0x13285d,null));};exports[_0x84af('0xc9')]=function(_0x5289ac,_0x471861){var _0x2742f9={};var _0x4640de={};var _0x415aae;var _0x5bd8f4;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x5289ac[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x471861,null))[_0x84af('0xe')](function(_0x18e055){if(_0x18e055){_0x415aae=_0x18e055;_0x4640de[_0x84af('0x4b')]=_['keys'](db[_0x84af('0xca')]['rawAttributes']);_0x4640de[_0x84af('0x3a')]=_['keys'](_0x5289ac['query']);_0x4640de[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x4640de[_0x84af('0x4b')],_0x4640de[_0x84af('0x3a')]);_0x2742f9[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x4640de[_0x84af('0x4b')],qs['fields'](_0x5289ac[_0x84af('0x3a')][_0x84af('0x51')]));_0x2742f9[_0x84af('0x3c')]=_0x2742f9[_0x84af('0x3c')]['length']?_0x2742f9[_0x84af('0x3c')]:_0x4640de[_0x84af('0x4b')];_0x2742f9['order']=qs[_0x84af('0xba')](_0x5289ac[_0x84af('0x3a')]['sort']);_0x2742f9[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x5289ac[_0x84af('0x3a')],_0x4640de[_0x84af('0x4f')]));if(_0x5289ac['query'][_0x84af('0x2b')]){_0x2742f9['where']=_[_0x84af('0x52')](_0x2742f9[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x2742f9[_0x84af('0x3c')],function(_0x2c1884){var _0x460140={};_0x460140[_0x2c1884]={'$like':'%'+_0x5289ac[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x460140;})});}_0x2742f9=_[_0x84af('0x52')]({},_0x2742f9,_0x5289ac[_0x84af('0x53')]);return _0x415aae[_0x84af('0xc9')](_0x2742f9);}})[_0x84af('0xe')](function(_0x27297e){if(_0x27297e){_0x5bd8f4=_0x27297e[_0x84af('0x61')];if(!_0x5289ac[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x2742f9[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x5289ac[_0x84af('0x3a')][_0x84af('0x1e')]);_0x2742f9[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x5289ac[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x415aae[_0x84af('0xc9')](_0x2742f9);}})['then'](function(_0x598ca7){if(_0x598ca7){return _0x598ca7?{'count':_0x5bd8f4,'rows':_0x598ca7}:null;}})[_0x84af('0xe')](respondWithResult(_0x471861,null))['catch'](handleError(_0x471861,null));};exports[_0x84af('0xcb')]=function(_0x3483f2,_0x6f7e14){var _0x35f30c={'raw':!![],'where':{}};var _0x3ed788={};var _0x2e053e={'count':0x0,'rows':[]};return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x3483f2[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x6f7e14,null))['then'](function(_0x58d47a){if(_0x58d47a){_0x3ed788[_0x84af('0x4b')]=_[_0x84af('0x4d')](db['VoiceRecording'][_0x84af('0x4e')]);_0x3ed788['query']=_[_0x84af('0x4d')](_0x3483f2[_0x84af('0x3a')]);_0x3ed788[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x3ed788['model'],_0x3ed788[_0x84af('0x3a')]);_0x35f30c[_0x84af('0x3c')]=_['intersection'](_0x3ed788[_0x84af('0x4b')],qs['fields'](_0x3483f2[_0x84af('0x3a')][_0x84af('0x51')]));_0x35f30c[_0x84af('0x3c')]=_0x35f30c[_0x84af('0x3c')][_0x84af('0x61')]?_0x35f30c['attributes']:_0x3ed788[_0x84af('0x4b')];if(!_0x3483f2['query'][_0x84af('0xbd')]('nolimit')){_0x35f30c['limit']=qs['limit'](_0x3483f2[_0x84af('0x3a')][_0x84af('0x1e')]);_0x35f30c[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3483f2['query'][_0x84af('0x1c')]);}_0x35f30c['order']=qs[_0x84af('0xba')](_0x3483f2[_0x84af('0x3a')][_0x84af('0xba')]);_0x35f30c['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3483f2[_0x84af('0x3a')],_0x3ed788[_0x84af('0x4f')]));_0x35f30c['where']['UserId']=_0x58d47a['id'];if(_0x3483f2[_0x84af('0x3a')][_0x84af('0x2b')]){_0x35f30c[_0x84af('0x39')]=_[_0x84af('0x52')](_0x35f30c[_0x84af('0x39')],{'$or':_['map'](_0x35f30c[_0x84af('0x3c')],function(_0x2cceda){var _0x437794={};_0x437794[_0x2cceda]={'$like':'%'+_0x3483f2[_0x84af('0x3a')]['filter']+'%'};return _0x437794;})});}_0x35f30c=_[_0x84af('0x52')]({},_0x35f30c,_0x3483f2[_0x84af('0x53')]);return db[_0x84af('0xcc')][_0x84af('0x1f')]({'where':_0x35f30c[_0x84af('0x39')]})[_0x84af('0xe')](function(_0x328690){_0x2e053e[_0x84af('0x1f')]=_0x328690;if(_0x3483f2[_0x84af('0x3a')][_0x84af('0xbe')]){_0x35f30c[_0x84af('0x3b')]=[{'all':!![]}];}return db['VoiceRecording'][_0x84af('0x3e')](_0x35f30c);})[_0x84af('0xe')](function(_0x16b25b){_0x2e053e[_0x84af('0x3f')]=_0x16b25b;return _0x2e053e;});}})[_0x84af('0xe')](respondWithFilteredResult(_0x6f7e14,_0x35f30c))[_0x84af('0x18')](handleError(_0x6f7e14,null));};exports[_0x84af('0xcd')]=function(_0x80d721,_0x3d0b43){var _0x498e44={'raw':!![],'where':{}};var _0x9e21bd={};var _0x1640a0={'count':0x0,'rows':[]};return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x80d721[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x3d0b43,null))[_0x84af('0xe')](function(_0x54a1ef){if(_0x54a1ef){_0x9e21bd[_0x84af('0x4b')]=_[_0x84af('0x4d')](db['ScreenRecording']['rawAttributes']);_0x9e21bd[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x80d721[_0x84af('0x3a')]);_0x9e21bd[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x9e21bd[_0x84af('0x4b')],_0x9e21bd[_0x84af('0x3a')]);_0x498e44[_0x84af('0x3c')]=_['intersection'](_0x9e21bd['model'],qs[_0x84af('0x51')](_0x80d721[_0x84af('0x3a')]['fields']));_0x498e44[_0x84af('0x3c')]=_0x498e44[_0x84af('0x3c')][_0x84af('0x61')]?_0x498e44['attributes']:_0x9e21bd['model'];if(!_0x80d721[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x498e44[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x80d721[_0x84af('0x3a')][_0x84af('0x1e')]);_0x498e44['offset']=qs[_0x84af('0x1c')](_0x80d721[_0x84af('0x3a')][_0x84af('0x1c')]);}_0x498e44[_0x84af('0xc6')]=qs['sort'](_0x80d721[_0x84af('0x3a')][_0x84af('0xba')]);_0x498e44[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x80d721['query'],_0x9e21bd[_0x84af('0x4f')]));_0x498e44[_0x84af('0x39')]['UserId']=_0x54a1ef['id'];if(_0x80d721[_0x84af('0x3a')]['filter']){_0x498e44[_0x84af('0x39')]=_[_0x84af('0x52')](_0x498e44['where'],{'$or':_[_0x84af('0x2c')](_0x498e44['attributes'],function(_0x4881b1){var _0x1c9a6e={};_0x1c9a6e[_0x4881b1]={'$like':'%'+_0x80d721[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x1c9a6e;})});}_0x498e44=_[_0x84af('0x52')]({},_0x498e44,_0x80d721[_0x84af('0x53')]);return db[_0x84af('0xce')][_0x84af('0x1f')]({'where':_0x498e44[_0x84af('0x39')]})[_0x84af('0xe')](function(_0x496d02){_0x1640a0[_0x84af('0x1f')]=_0x496d02;if(_0x80d721[_0x84af('0x3a')]['includeAll']){_0x498e44[_0x84af('0x3b')]=[{'all':!![]}];}return db[_0x84af('0xce')][_0x84af('0x3e')](_0x498e44);})['then'](function(_0x1ed146){_0x1640a0[_0x84af('0x3f')]=_0x1ed146;return _0x1640a0;});}})['then'](respondWithFilteredResult(_0x3d0b43,_0x498e44))[_0x84af('0x18')](handleError(_0x3d0b43,null));};exports[_0x84af('0xcf')]=function(_0x42ba54,_0xe5fc95){var _0x5e34be={};var _0x22bd7c={};var _0x546fce;var _0x25403a;return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x42ba54[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xe5fc95,null))['then'](function(_0x4f9a15){if(_0x4f9a15){_0x546fce=_0x4f9a15;_0x22bd7c[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xd0')][_0x84af('0x4e')]);_0x22bd7c[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x42ba54[_0x84af('0x3a')]);_0x22bd7c[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x22bd7c[_0x84af('0x4b')],_0x22bd7c[_0x84af('0x3a')]);_0x5e34be['attributes']=_[_0x84af('0x50')](_0x22bd7c[_0x84af('0x4b')],qs['fields'](_0x42ba54[_0x84af('0x3a')][_0x84af('0x51')]));_0x5e34be['attributes']=_0x5e34be['attributes'][_0x84af('0x61')]?_0x5e34be[_0x84af('0x3c')]:_0x22bd7c[_0x84af('0x4b')];_0x5e34be[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x42ba54['query'][_0x84af('0xba')]);_0x5e34be['where']=qs['filters'](_['pick'](_0x42ba54[_0x84af('0x3a')],_0x22bd7c[_0x84af('0x4f')]));if(_0x42ba54[_0x84af('0x3a')][_0x84af('0x2b')]){_0x5e34be[_0x84af('0x39')]=_[_0x84af('0x52')](_0x5e34be[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x5e34be[_0x84af('0x3c')],function(_0x53c7f4){var _0x1f224f={};_0x1f224f[_0x53c7f4]={'$like':'%'+_0x42ba54[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x1f224f;})});}_0x5e34be=_['merge']({},_0x5e34be,_0x42ba54['options']);return _0x546fce['getChatInteractions'](_0x5e34be);}})[_0x84af('0xe')](function(_0x5bc6c2){if(_0x5bc6c2){_0x25403a=_0x5bc6c2[_0x84af('0x61')];if(!_0x42ba54['query'][_0x84af('0xbd')]('nolimit')){_0x5e34be[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x42ba54[_0x84af('0x3a')][_0x84af('0x1e')]);_0x5e34be['offset']=qs['offset'](_0x42ba54[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x546fce[_0x84af('0xcf')](_0x5e34be);}})[_0x84af('0xe')](function(_0x490c1c){if(_0x490c1c){return _0x490c1c?{'count':_0x25403a,'rows':_0x490c1c}:null;}})[_0x84af('0xe')](respondWithResult(_0xe5fc95,null))[_0x84af('0x18')](handleError(_0xe5fc95,null));};exports[_0x84af('0xd1')]=function(_0xa437e4,_0x2b24c1){var _0x42dd51={};var _0x234ec6={};var _0x3235cb;var _0x23119b;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0xa437e4[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2b24c1,null))[_0x84af('0xe')](function(_0x1aecd2){if(_0x1aecd2){_0x3235cb=_0x1aecd2;_0x234ec6['model']=_[_0x84af('0x4d')](db[_0x84af('0xd2')][_0x84af('0x4e')]);_0x234ec6[_0x84af('0x3a')]=_['keys'](_0xa437e4[_0x84af('0x3a')]);_0x234ec6[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x234ec6[_0x84af('0x4b')],_0x234ec6[_0x84af('0x3a')]);_0x42dd51[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x234ec6[_0x84af('0x4b')],qs['fields'](_0xa437e4[_0x84af('0x3a')][_0x84af('0x51')]));_0x42dd51['attributes']=_0x42dd51[_0x84af('0x3c')][_0x84af('0x61')]?_0x42dd51[_0x84af('0x3c')]:_0x234ec6['model'];_0x42dd51[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0xa437e4[_0x84af('0x3a')]['sort']);_0x42dd51['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0xa437e4[_0x84af('0x3a')],_0x234ec6[_0x84af('0x4f')]));if(_0xa437e4['query'][_0x84af('0x2b')]){_0x42dd51[_0x84af('0x39')]=_[_0x84af('0x52')](_0x42dd51['where'],{'$or':_[_0x84af('0x2c')](_0x42dd51['attributes'],function(_0x44db87){var _0x2a3777={};_0x2a3777[_0x44db87]={'$like':'%'+_0xa437e4[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x2a3777;})});}_0x42dd51=_[_0x84af('0x52')]({},_0x42dd51,_0xa437e4['options']);return _0x3235cb[_0x84af('0xd1')](_0x42dd51);}})['then'](function(_0x4b5e07){if(_0x4b5e07){_0x23119b=_0x4b5e07[_0x84af('0x61')];if(!_0xa437e4[_0x84af('0x3a')]['hasOwnProperty']('nolimit')){_0x42dd51[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0xa437e4['query'][_0x84af('0x1e')]);_0x42dd51['offset']=qs['offset'](_0xa437e4['query'][_0x84af('0x1c')]);}return _0x3235cb[_0x84af('0xd1')](_0x42dd51);}})[_0x84af('0xe')](function(_0x18dc82){if(_0x18dc82){return _0x18dc82?{'count':_0x23119b,'rows':_0x18dc82}:null;}})[_0x84af('0xe')](respondWithResult(_0x2b24c1,null))[_0x84af('0x18')](handleError(_0x2b24c1,null));};exports[_0x84af('0xd3')]=function(_0x4bb501,_0x4c6c14){var _0x15fde9={'raw':!![],'where':{}};var _0xbbbb27={};var _0x47e882={'count':0x0,'rows':[]};return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x4bb501[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x4c6c14,null))[_0x84af('0xe')](function(_0xfdb3dd){if(_0xfdb3dd){_0xbbbb27[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xd4')][_0x84af('0x4e')]);_0xbbbb27[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x4bb501[_0x84af('0x3a')]);_0xbbbb27[_0x84af('0x4f')]=_['intersection'](_0xbbbb27[_0x84af('0x4b')],_0xbbbb27[_0x84af('0x3a')]);_0x15fde9['attributes']=_['intersection'](_0xbbbb27[_0x84af('0x4b')],qs['fields'](_0x4bb501[_0x84af('0x3a')][_0x84af('0x51')]));_0x15fde9[_0x84af('0x3c')]=_0x15fde9[_0x84af('0x3c')][_0x84af('0x61')]?_0x15fde9['attributes']:_0xbbbb27[_0x84af('0x4b')];if(!_0x4bb501[_0x84af('0x3a')]['hasOwnProperty'](_0x84af('0xc3'))){_0x15fde9[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x4bb501[_0x84af('0x3a')]['limit']);_0x15fde9[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x4bb501[_0x84af('0x3a')][_0x84af('0x1c')]);}_0x15fde9[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x4bb501['query']['sort']);_0x15fde9[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x4bb501[_0x84af('0x3a')],_0xbbbb27[_0x84af('0x4f')]));_0x15fde9['where']['UserId']=_0xfdb3dd['id'];if(_0x4bb501[_0x84af('0x3a')][_0x84af('0x2b')]){_0x15fde9[_0x84af('0x39')]=_[_0x84af('0x52')](_0x15fde9['where'],{'$or':_[_0x84af('0x2c')](_0x15fde9[_0x84af('0x3c')],function(_0x468561){var _0x4a6d69={};_0x4a6d69[_0x468561]={'$like':'%'+_0x4bb501[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x4a6d69;})});}_0x15fde9=_['merge']({},_0x15fde9,_0x4bb501[_0x84af('0x53')]);return db[_0x84af('0xd4')][_0x84af('0x1f')]({'where':_0x15fde9[_0x84af('0x39')]})[_0x84af('0xe')](function(_0x334287){_0x47e882[_0x84af('0x1f')]=_0x334287;if(_0x4bb501[_0x84af('0x3a')][_0x84af('0xbe')]){_0x15fde9['include']=[{'all':!![]}];}return db[_0x84af('0xd4')][_0x84af('0x3e')](_0x15fde9);})[_0x84af('0xe')](function(_0x1cb54d){_0x47e882[_0x84af('0x3f')]=_0x1cb54d;return _0x47e882;});}})[_0x84af('0xe')](respondWithFilteredResult(_0x4c6c14,_0x15fde9))[_0x84af('0x18')](handleError(_0x4c6c14,null));};exports['getSmsInteractions']=function(_0x247dae,_0x1205bf){var _0x376e60={};var _0x21c4de={};var _0x57d0be;var _0x39e4ae;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x247dae[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1205bf,null))[_0x84af('0xe')](function(_0x209695){if(_0x209695){_0x57d0be=_0x209695;_0x21c4de[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xd5')]['rawAttributes']);_0x21c4de['query']=_['keys'](_0x247dae[_0x84af('0x3a')]);_0x21c4de['filters']=_['intersection'](_0x21c4de[_0x84af('0x4b')],_0x21c4de['query']);_0x376e60[_0x84af('0x3c')]=_['intersection'](_0x21c4de[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x247dae['query'][_0x84af('0x51')]));_0x376e60[_0x84af('0x3c')]=_0x376e60['attributes'][_0x84af('0x61')]?_0x376e60[_0x84af('0x3c')]:_0x21c4de['model'];_0x376e60[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x247dae[_0x84af('0x3a')][_0x84af('0xba')]);_0x376e60[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x247dae[_0x84af('0x3a')],_0x21c4de[_0x84af('0x4f')]));if(_0x247dae['query'][_0x84af('0x2b')]){_0x376e60[_0x84af('0x39')]=_[_0x84af('0x52')](_0x376e60[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x376e60['attributes'],function(_0x5cfab2){var _0x38faf2={};_0x38faf2[_0x5cfab2]={'$like':'%'+_0x247dae[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x38faf2;})});}_0x376e60=_['merge']({},_0x376e60,_0x247dae['options']);return _0x57d0be[_0x84af('0xd6')](_0x376e60);}})[_0x84af('0xe')](function(_0x58f77a){if(_0x58f77a){_0x39e4ae=_0x58f77a['length'];if(!_0x247dae[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x376e60[_0x84af('0x1e')]=qs['limit'](_0x247dae[_0x84af('0x3a')]['limit']);_0x376e60[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x247dae['query'][_0x84af('0x1c')]);}return _0x57d0be[_0x84af('0xd6')](_0x376e60);}})[_0x84af('0xe')](function(_0xc79917){if(_0xc79917){return _0xc79917?{'count':_0x39e4ae,'rows':_0xc79917}:null;}})['then'](respondWithResult(_0x1205bf,null))[_0x84af('0x18')](handleError(_0x1205bf,null));};exports[_0x84af('0xd7')]=function(_0x3d7299,_0x2a2d5a){var _0x3e9b98={};var _0x3c7f00={};var _0x1a4267;var _0x125971;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3d7299[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2a2d5a,null))['then'](function(_0x5ae249){if(_0x5ae249){_0x1a4267=_0x5ae249;_0x3c7f00[_0x84af('0x4b')]=_['keys'](db[_0x84af('0xd8')][_0x84af('0x4e')]);_0x3c7f00[_0x84af('0x3a')]=_['keys'](_0x3d7299[_0x84af('0x3a')]);_0x3c7f00[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x3c7f00[_0x84af('0x4b')],_0x3c7f00[_0x84af('0x3a')]);_0x3e9b98['attributes']=_[_0x84af('0x50')](_0x3c7f00[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x3d7299[_0x84af('0x3a')][_0x84af('0x51')]));_0x3e9b98[_0x84af('0x3c')]=_0x3e9b98[_0x84af('0x3c')][_0x84af('0x61')]?_0x3e9b98[_0x84af('0x3c')]:_0x3c7f00[_0x84af('0x4b')];_0x3e9b98[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x3d7299[_0x84af('0x3a')][_0x84af('0xba')]);_0x3e9b98[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3d7299[_0x84af('0x3a')],_0x3c7f00[_0x84af('0x4f')]));if(_0x3d7299[_0x84af('0x3a')][_0x84af('0x2b')]){_0x3e9b98['where']=_[_0x84af('0x52')](_0x3e9b98['where'],{'$or':_[_0x84af('0x2c')](_0x3e9b98[_0x84af('0x3c')],function(_0x53d44e){var _0x552181={};_0x552181[_0x53d44e]={'$like':'%'+_0x3d7299[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x552181;})});}_0x3e9b98=_[_0x84af('0x52')]({},_0x3e9b98,_0x3d7299['options']);return _0x1a4267[_0x84af('0xd7')](_0x3e9b98);}})['then'](function(_0x2ad7ec){if(_0x2ad7ec){_0x125971=_0x2ad7ec['length'];if(!_0x3d7299[_0x84af('0x3a')]['hasOwnProperty'](_0x84af('0xc3'))){_0x3e9b98[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x3d7299[_0x84af('0x3a')][_0x84af('0x1e')]);_0x3e9b98['offset']=qs[_0x84af('0x1c')](_0x3d7299['query']['offset']);}return _0x1a4267[_0x84af('0xd7')](_0x3e9b98);}})[_0x84af('0xe')](function(_0x4cd591){if(_0x4cd591){return _0x4cd591?{'count':_0x125971,'rows':_0x4cd591}:null;}})[_0x84af('0xe')](respondWithResult(_0x2a2d5a,null))['catch'](handleError(_0x2a2d5a,null));};exports[_0x84af('0xd9')]=function(_0x430efe,_0x4e7eb3){var _0x17eee2={};var _0xf0552c={};var _0x545db8;var _0x3df6ae;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x430efe[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4e7eb3,null))[_0x84af('0xe')](function(_0x317507){if(_0x317507){_0x545db8=_0x317507;_0xf0552c[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xda')]['rawAttributes']);_0xf0552c[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x430efe[_0x84af('0x3a')]);_0xf0552c[_0x84af('0x4f')]=_[_0x84af('0x50')](_0xf0552c['model'],_0xf0552c[_0x84af('0x3a')]);_0x17eee2[_0x84af('0x3c')]=_['intersection'](_0xf0552c[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x430efe[_0x84af('0x3a')]['fields']));_0x17eee2[_0x84af('0x3c')]=_0x17eee2['attributes'][_0x84af('0x61')]?_0x17eee2['attributes']:_0xf0552c[_0x84af('0x4b')];_0x17eee2[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x430efe[_0x84af('0x3a')][_0x84af('0xba')]);_0x17eee2[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x430efe[_0x84af('0x3a')],_0xf0552c[_0x84af('0x4f')]));if(_0x430efe[_0x84af('0x3a')][_0x84af('0x2b')]){_0x17eee2[_0x84af('0x39')]=_[_0x84af('0x52')](_0x17eee2[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x17eee2[_0x84af('0x3c')],function(_0x4beae8){var _0x5c4253={};_0x5c4253[_0x4beae8]={'$like':'%'+_0x430efe[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x5c4253;})});}_0x17eee2=_['merge']({},_0x17eee2,_0x430efe['options']);return _0x545db8['getWhatsappInteractions'](_0x17eee2);}})['then'](function(_0x58006c){if(_0x58006c){_0x3df6ae=_0x58006c[_0x84af('0x61')];if(!_0x430efe[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x17eee2[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x430efe[_0x84af('0x3a')]['limit']);_0x17eee2['offset']=qs['offset'](_0x430efe[_0x84af('0x3a')]['offset']);}return _0x545db8[_0x84af('0xd9')](_0x17eee2);}})[_0x84af('0xe')](function(_0x5175e6){if(_0x5175e6){return _0x5175e6?{'count':_0x3df6ae,'rows':_0x5175e6}:null;}})[_0x84af('0xe')](respondWithResult(_0x4e7eb3,null))[_0x84af('0x18')](handleError(_0x4e7eb3,null));};exports['login']=function(_0x234b6f,_0x5dccbb,_0x47082d){var _0xc3f51c;var _0x3bf3ca;var _0x59a05b;var _0x54925c=!_[_0x84af('0x5d')](_0x234b6f['params']['id'])?_0x234b6f[_0x84af('0x4a')]['id']:!_['isNil'](_0x234b6f[_0x84af('0x28')]['id'])?_0x234b6f[_0x84af('0x28')]['id']:null;return db['User'][_0x84af('0x2f')]({'where':{'id':_0x54925c,'role':{'$or':['admin',_0x84af('0x28'),_0x84af('0x29')]}},'attributes':['id',_0x84af('0x30'),_0x84af('0xdb'),'mobile',_0x84af('0x25'),_0x84af('0x5c'),_0x84af('0x93')]})[_0x84af('0xe')](function(_0x1957ba){if(_0x1957ba){if(_0x1957ba[_0x84af('0x25')]===_0x84af('0x29')){_0xc3f51c=_0x1957ba;if(_0x234b6f[_0x84af('0x54')][_0x84af('0x95')]){_0x59a05b=util['format'](_0x84af('0xdc'),_0xc3f51c[_0x234b6f[_0x84af('0x54')][_0x84af('0x95')]]);}else if(_0x234b6f[_0x84af('0x54')][_0x84af('0xdd')]){_0x59a05b=util[_0x84af('0x9d')]('SIP/%s',_0x234b6f[_0x84af('0x54')]['intrf']);}else{_0x59a05b=util[_0x84af('0x9d')](_0x84af('0x9e'),_0xc3f51c['name']);}socket['to'](util[_0x84af('0x9d')](_0x84af('0xde'),_0xc3f51c[_0x84af('0x30')]))[_0x84af('0x9b')](_0x84af('0xdf'),{'user':{'id':_0xc3f51c['id'],'name':_0xc3f51c[_0x84af('0x30')]},'ip':_0x234b6f[_0x84af('0xe0')][_0x84af('0xe1')]||_0x234b6f['connection']['remoteAddress']||_0x234b6f[_0x84af('0xe2')]['remoteAddress']||_0x234b6f['connection'][_0x84af('0xe2')][_0x84af('0xe3')]});return db[_0x84af('0x9f')][_0x84af('0x23')]({'where':{'membername':_0xc3f51c[_0x84af('0x30')]},'individualHooks':!![]});}}else{throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))]('User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method');}})[_0x84af('0xe')](function(){if(_0xc3f51c){return _0xc3f51c[_0x84af('0xe4')]({'raw':!![]});}})[_0x84af('0xe')](function(_0x2d26d5){if(_0xc3f51c){var _0xf04387=[];if(_0x2d26d5){_0x3bf3ca=_0x2d26d5;if(_0x3bf3ca['length']){for(var _0x377f48=0x0;_0x377f48<_0x3bf3ca[_0x84af('0x61')];_0x377f48++){_0xf04387['push']({'membername':_0xc3f51c[_0x84af('0x30')],'UserId':_0xc3f51c['id'],'queue_name':_0x3bf3ca[_0x377f48][_0x84af('0x30')],'VoiceQueueId':_0x3bf3ca[_0x377f48]['id'],'interface':_0x59a05b,'paused':_0xc3f51c[_0x84af('0x93')]||![],'penalty':_0x3bf3ca[_0x377f48][_0x84af('0xe5')]||0x0});}return BPromise[_0x84af('0xe6')](_0xf04387,function(_0x538467){return db[_0x84af('0x9f')][_0x84af('0xa0')](_0x538467);});}}}})['then'](function(){if(_0xc3f51c){return db[_0x84af('0xe7')]['findAll']({'where':{'membername':_0xc3f51c[_0x84af('0x30')],'exitAt':null}});}})['then'](function(_0xf17afc){if(_0xc3f51c){var _0x4fdbed=[];_0xf17afc[_0x84af('0xe8')](function(_0x4dfb43){_0x4fdbed[_0x84af('0x3d')](_0x4dfb43[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))}));});return BPromise[_0x84af('0x48')](_0x4fdbed);}})[_0x84af('0xe')](function(){if(_0xc3f51c){var _0x9493d6=[];var _0x25ffaa=[];var _0x36ecce=utils['getChannels']();var _0x380b30={'membername':_0xc3f51c[_0x84af('0x30')],'interface':_0x59a05b,'enterAt':moment()['format'](_0x84af('0xe9')),'role':_0xc3f51c[_0x84af('0x25')],'internal':_0xc3f51c['internal']};_0x36ecce[_0x84af('0xe8')](function(_0x57facb){_0x9493d6[_0x84af('0x3d')](_[_0x84af('0x52')]({'channel':_0x57facb,'type':_0x84af('0xea'),'data1':_0x234b6f['body'][_0x84af('0xeb')],'data2':_0x59a05b},_0x380b30));if(_0xc3f51c['loginInPause']){_0x25ffaa[_0x84af('0x3d')](_[_0x84af('0x52')]({'channel':_0x57facb,'type':_0x84af('0xec'),'data1':'LOGININPAUSE'},_0x380b30));}});return db[_0x84af('0xe7')][_0x84af('0xed')](_0x9493d6['concat'](_0x25ffaa),{'individualHooks':!![]});}})['then'](function(){if(_0xc3f51c){return _0xc3f51c[_0x84af('0x22')]({'online':!![],'lastLoginAt':moment()['format'](_0x84af('0xe9')),'voicePause':_0xc3f51c[_0x84af('0x93')]||![],'mailPause':_0xc3f51c[_0x84af('0x93')]||![],'chatPause':_0xc3f51c[_0x84af('0x93')]||![],'faxPause':_0xc3f51c[_0x84af('0x93')]||![],'smsPause':_0xc3f51c[_0x84af('0x93')]||![],'openchannelPause':_0xc3f51c[_0x84af('0x93')]||![],'whatsappPause':_0xc3f51c[_0x84af('0x93')]||![],'pauseType':_0xc3f51c[_0x84af('0x93')]?_0x84af('0xee'):null,'interface':_0x59a05b,'lastPauseAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))});}})[_0x84af('0xe')](function(_0x112904){if(_0x234b6f[_0x84af('0xef')]){return _0x47082d();}else{return BPromise[_0x84af('0xf0')](_0x112904)[_0x84af('0xe')](respondWithResult(_0x5dccbb,null));}})[_0x84af('0x18')](handleError(_0x5dccbb,null));};exports[_0x84af('0xf1')]=function(_0x37d7af,_0x1d9833){var _0x5a09b9;return db['User'][_0x84af('0x2f')]({'where':{'id':_0x37d7af[_0x84af('0x4a')]['id'],'role':'agent'},'attributes':['id',_0x84af('0x30'),_0x84af('0x25')]})[_0x84af('0xe')](handleEntityNotFound(_0x1d9833,null))['then'](function(_0x12442d){if(_0x12442d){_0x5a09b9=_0x12442d;return db[_0x84af('0x9f')][_0x84af('0x23')]({'where':{'membername':_0x5a09b9[_0x84af('0x30')]},'individualHooks':!![]});}})['then'](function(){return db[_0x84af('0xe7')][_0x84af('0x3e')]({'where':{'membername':_0x5a09b9['name'],'exitAt':null}});})[_0x84af('0xe')](function(_0x4b466a){var _0x261722=[];_0x4b466a[_0x84af('0xe8')](function(_0x591737){_0x261722['push'](_0x591737[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))}));});return BPromise[_0x84af('0x48')](_0x261722);})[_0x84af('0xe')](function(){return _0x5a09b9[_0x84af('0x22')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0x84af('0xe')](respondWithResult(_0x1d9833,null))[_0x84af('0x18')](handleError(_0x1d9833,null));};exports[_0x84af('0xf2')]=function(_0x2dd9c3,_0x145f08){var _0x49c416;return db['UserVoiceQueueRt'][_0x84af('0x22')]({'paused':0x1},{'where':{'UserId':_0x2dd9c3[_0x84af('0x4a')]['id']},'individualHooks':!![]})[_0x84af('0xe')](function(){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2dd9c3[_0x84af('0x4a')]['id'],'role':'agent'},'attributes':['id',_0x84af('0x30'),_0x84af('0x25'),_0x84af('0x5c'),_0x84af('0x95')]});})[_0x84af('0xe')](handleEntityNotFound(_0x145f08,null))[_0x84af('0xe')](function(_0x483e62){if(_0x483e62){_0x49c416=_0x483e62;return respondWithRpcPromise(_0x84af('0xf3'),'pause',{'id':_0x49c416['id'],'name':_0x49c416['name'],'pause':!![]});}})[_0x84af('0xe')](function(){if(_0x49c416){return db[_0x84af('0xe7')][_0x84af('0x3e')]({'where':{'membername':_0x49c416[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}});}})['then'](function(_0x59c777){if(_0x59c777[_0x84af('0x61')]){var _0x5bb3e5=moment()['format'](_0x84af('0xe9'));for(var _0x44de60=0x0,_0x56b43f=_0x59c777[_0x84af('0x61')];_0x44de60<_0x56b43f;_0x44de60++){_0x59c777[_0x44de60][_0x84af('0xf4')]({'exitAt':_0x5bb3e5});}}})[_0x84af('0xe')](function(){var _0x36d850=[];var _0x1975f5=utils[_0x84af('0xf5')]();_0x1975f5['forEach'](function(_0x37d8b9){_0x36d850['push']({'channel':_0x37d8b9,'membername':_0x49c416[_0x84af('0x30')],'interface':_['isNil'](_0x49c416[_0x84af('0x95')])?util[_0x84af('0x9d')](_0x84af('0x9e'),_0x49c416[_0x84af('0x30')]):_0x49c416[_0x84af('0x95')],'type':_0x84af('0xec'),'enterAt':moment()[_0x84af('0x9d')](_0x84af('0xe9')),'data1':_0x2dd9c3[_0x84af('0x54')][_0x84af('0x36')]||_0x84af('0xf6'),'role':_0x49c416[_0x84af('0x25')],'internal':_0x49c416['internal']});});return db['MemberReport'][_0x84af('0xed')](_0x36d850,{'individualHooks':!![]});})['then'](function(){return _0x49c416['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x2dd9c3[_0x84af('0x54')][_0x84af('0x36')]||_0x84af('0xf6'),'lastPauseAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))});})['then'](respondWithResult(_0x145f08,null))[_0x84af('0x18')](handleError(_0x145f08,null));};exports[_0x84af('0xf7')]=function(_0x57e446,_0x2a446f){var _0x2473e5;return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x57e446['params']['id']},'attributes':['id',_0x84af('0x30'),_0x84af('0x25'),_0x84af('0x94'),_0x84af('0xf8'),_0x84af('0xf9'),'faxPause','openchannelPause',_0x84af('0xfa'),'whatsapppause',_0x84af('0xfb'),_0x84af('0xfc')]})[_0x84af('0xe')](handleEntityNotFound(_0x2a446f,null))[_0x84af('0xe')](function(_0x344aa8){if(_0x344aa8){_0x2473e5=_0x344aa8;if(_0x57e446['body']['channel']&&!utils[_0x84af('0x96')](_0x57e446['body'][_0x84af('0xa1')])){throw new db[(_0x84af('0x84'))]['ValidationError']('Unknown\x20channel');}switch(_0x57e446['body'][_0x84af('0xa1')]){case _0x84af('0x9c'):return respondWithRpcPromise(_0x84af('0xf3'),_0x84af('0xf7'),{'id':_0x2473e5['id'],'name':_0x2473e5[_0x84af('0x30')],'pause':![]})[_0x84af('0xe')](function(){return db[_0x84af('0x9f')][_0x84af('0x22')]({'paused':0x0},{'where':{'UserId':_0x2473e5['id']},'individualHooks':!![]});})[_0x84af('0xe')](function(){return db[_0x84af('0xe7')][_0x84af('0x2f')]({'where':{'channel':_0x57e446['body'][_0x84af('0xa1')],'membername':_0x2473e5[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}});})[_0x84af('0xe')](function(_0x3497b4){if(_0x3497b4){return _0x3497b4[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9')),'data2':_0x84af('0xfd')},{'individualHooks':!![]});}return null;})[_0x84af('0xe')](function(){return _0x2473e5[_0x84af('0x22')]({'voicePause':![]});});case _0x84af('0x46'):case _0x84af('0x42'):case _0x84af('0x45'):case _0x84af('0x44'):case _0x84af('0x47'):case _0x84af('0xae'):return db[_0x84af('0xe7')]['find']({'where':{'channel':_0x57e446[_0x84af('0x54')][_0x84af('0xa1')],'membername':_0x2473e5[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}})['then'](function(_0x5d52ae){if(_0x5d52ae){return _0x5d52ae['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':'manual'},{'individualHooks':!![]});}return null;})[_0x84af('0xe')](function(){var _0xb30184={};_[_0x84af('0xfe')](_0xb30184,util[_0x84af('0x9d')](_0x84af('0xff'),_0x57e446['body'][_0x84af('0xa1')],'Pause'),![]);return _0x2473e5['update'](_0xb30184);});default:return respondWithRpcPromise(_0x84af('0xf3'),'unpause',{'id':_0x2473e5['id'],'name':_0x2473e5[_0x84af('0x30')],'pause':![]})['then'](function(){return db[_0x84af('0x9f')][_0x84af('0x22')]({'paused':0x0},{'where':{'UserId':_0x2473e5['id']}});})[_0x84af('0xe')](function(){return db[_0x84af('0xe7')]['findAll']({'where':{'membername':_0x2473e5[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}});})['then'](function(_0x3bafdd){var _0x3df6e6=[];_0x3bafdd[_0x84af('0xe8')](function(_0x3ba4f8){_0x3df6e6[_0x84af('0x3d')](_0x3ba4f8[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9')),'data2':_0x84af('0xfd')}));});return BPromise[_0x84af('0x48')](_0x3df6e6);})['then'](function(){return _0x2473e5['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})['then'](respondWithResult(_0x2a446f,null))[_0x84af('0x18')](handleError(_0x2a446f,null));};exports[_0x84af('0x100')]=function(_0xd64845,_0x1c12ea){var _0x387ba5={};var _0x2fabd9={};var _0x16d39b;var _0x2b1500;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0xd64845['params']['id']}})['then'](handleEntityNotFound(_0x1c12ea,null))[_0x84af('0xe')](function(_0x467a92){if(_0x467a92){_0x16d39b=_0x467a92;_0x2fabd9[_0x84af('0x4b')]=_[_0x84af('0x4d')](db['Team'][_0x84af('0x4e')]);_0x2fabd9[_0x84af('0x3a')]=_['keys'](_0xd64845[_0x84af('0x3a')]);_0x2fabd9['filters']=_[_0x84af('0x50')](_0x2fabd9['model'],_0x2fabd9[_0x84af('0x3a')]);_0x387ba5['attributes']=_[_0x84af('0x50')](_0x2fabd9[_0x84af('0x4b')],qs[_0x84af('0x51')](_0xd64845['query'][_0x84af('0x51')]));_0x387ba5[_0x84af('0x3c')]=_0x387ba5[_0x84af('0x3c')][_0x84af('0x61')]?_0x387ba5[_0x84af('0x3c')]:_0x2fabd9['model'];_0x387ba5[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0xd64845[_0x84af('0x3a')][_0x84af('0xba')]);_0x387ba5[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0xd64845[_0x84af('0x3a')],_0x2fabd9[_0x84af('0x4f')]));if(_0xd64845[_0x84af('0x3a')]['filter']){_0x387ba5[_0x84af('0x39')]=_[_0x84af('0x52')](_0x387ba5['where'],{'$or':_[_0x84af('0x2c')](_0x387ba5[_0x84af('0x3c')],function(_0x724f28){var _0x2dfd55={};_0x2dfd55[_0x724f28]={'$like':'%'+_0xd64845[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x2dfd55;})});}_0x387ba5=_['merge']({},_0x387ba5,_0xd64845[_0x84af('0x53')]);return _0x16d39b[_0x84af('0x100')](_0x387ba5);}})[_0x84af('0xe')](function(_0x2d5c53){if(_0x2d5c53){_0x2b1500=_0x2d5c53['length'];if(!_0xd64845['query']['hasOwnProperty']('nolimit')){_0x387ba5[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0xd64845[_0x84af('0x3a')][_0x84af('0x1e')]);_0x387ba5['offset']=qs[_0x84af('0x1c')](_0xd64845[_0x84af('0x3a')]['offset']);}return _0x16d39b[_0x84af('0x100')](_0x387ba5);}})['then'](function(_0x1d877a){if(_0x1d877a){return _0x1d877a?{'count':_0x2b1500,'rows':_0x1d877a}:null;}})['then'](respondWithResult(_0x1c12ea,null))[_0x84af('0x18')](handleError(_0x1c12ea,null));};exports[_0x84af('0x101')]=function(_0x72f287,_0x5ec438){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x72f287[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5ec438,null))[_0x84af('0xe')](function(_0x1fb597){if(_0x1fb597){var _0x334abb=_0x1fb597[_0x84af('0x24')]({'plain':!![]});return _0x1fb597[_0x84af('0x101')](_0x72f287['body'][_0x84af('0x57')],_[_0x84af('0x102')](_0x72f287[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})['then'](function(){for(var _0x35f5c1=0x0;_0x35f5c1<_0x72f287['body'][_0x84af('0x57')][_0x84af('0x61')];_0x35f5c1++){var _0x28c319=[];db[_0x84af('0x103')][_0x84af('0x8b')]({'where':{'id':_0x72f287[_0x84af('0x54')][_0x84af('0x57')][_0x35f5c1]}})['then'](function(_0x5d2eeb){_0x28c319[_0x84af('0x3d')](_0x5d2eeb[_0x84af('0xe4')]()[_0x84af('0xe')](function(_0x12ae83){for(var _0x21d8d2=0x0;_0x21d8d2<_0x12ae83[_0x84af('0x61')];_0x21d8d2++){_0x12ae83[_0x21d8d2][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x105'));}return _0x12ae83;}));_0x28c319['push'](_0x5d2eeb[_0x84af('0x106')]()[_0x84af('0xe')](function(_0x48dd0d){for(var _0x29d8ef=0x0;_0x29d8ef<_0x48dd0d['length'];_0x29d8ef++){_0x48dd0d[_0x29d8ef][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x107'));}return _0x48dd0d;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb['getMailQueues']()[_0x84af('0xe')](function(_0x1d73cb){for(var _0x50392f=0x0;_0x50392f<_0x1d73cb[_0x84af('0x61')];_0x50392f++){_0x1d73cb[_0x50392f][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x108'));}return _0x1d73cb;}));_0x28c319['push'](_0x5d2eeb[_0x84af('0x109')]()[_0x84af('0xe')](function(_0x1fb9a8){for(var _0xf4f4ed=0x0;_0xf4f4ed<_0x1fb9a8[_0x84af('0x61')];_0xf4f4ed++){_0x1fb9a8[_0xf4f4ed][_0x84af('0x104')](_0x84af('0xa1'),'Sms');}return _0x1fb9a8;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb['getWhatsappQueues']()[_0x84af('0xe')](function(_0x144d34){for(var _0xd2280f=0x0;_0xd2280f<_0x144d34[_0x84af('0x61')];_0xd2280f++){_0x144d34[_0xd2280f][_0x84af('0x104')](_0x84af('0xa1'),'Whatsapp');}return _0x144d34;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb[_0x84af('0x10a')]()[_0x84af('0xe')](function(_0x439228){for(var _0x61cdab=0x0;_0x61cdab<_0x439228[_0x84af('0x61')];_0x61cdab++){_0x439228[_0x61cdab][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x10b'));}return _0x439228;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb[_0x84af('0x10c')]()['then'](function(_0x37720e){for(var _0x359db5=0x0;_0x359db5<_0x37720e[_0x84af('0x61')];_0x359db5++){_0x37720e[_0x359db5][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x10d'));}return _0x37720e;}));return BPromise['all'](_0x28c319);})['then'](function(_0x5438b4){var _0x3fa0b9=_['flatten'](_0x5438b4);_0x28c319=[];return db[_0x84af('0x5f')][_0x84af('0x10e')](function(_0x41abad){for(var _0xb893e8=0x0;_0xb893e8<_0x3fa0b9['length'];_0xb893e8++){_0x28c319[_0x84af('0x3d')](_0x3fa0b9[_0xb893e8][_0x84af('0x10f')](_0x334abb['id']),{'transaction':_0x41abad});}return BPromise[_0x84af('0x48')](_0x28c319)[_0x84af('0xe')](function(){if(_0x334abb[_0x84af('0x92')]){return BPromise[_0x84af('0xe6')](_[_0x84af('0x2b')](_0x3fa0b9,function(_0x5c9a22){return _0x5c9a22['getDataValue'](_0x84af('0xa1'))===_0x84af('0x105');}),function(_0x598b23){return db[_0x84af('0x9f')]['upsert']({'membername':_0x334abb[_0x84af('0x30')],'UserId':_0x334abb['id'],'queue_name':_0x598b23[_0x84af('0x30')],'VoiceQueueId':_0x598b23['id'],'interface':_[_0x84af('0x5d')](_0x334abb[_0x84af('0x95')])?util[_0x84af('0x9d')](_0x84af('0x9e'),_0x334abb[_0x84af('0x30')]):_0x334abb[_0x84af('0x95')],'paused':_0x334abb[_0x84af('0x94')]||![],'penalty':_0x334abb['penalty']},{'transaction':_0x41abad});});}else{return;}})['then'](function(){for(var _0x10fa66=0x0;_0x10fa66<_0x3fa0b9[_0x84af('0x61')];_0x10fa66++){var _0x562dcc=_0x3fa0b9[_0x10fa66][_0x84af('0x110')](_0x84af('0xa1'));var _0x4f4ae8=_0x562dcc+_0x84af('0x9a');socket[_0x84af('0x9b')](_0x84af('0x28')+_0x562dcc+_0x84af('0x111'),{'UserId':_0x334abb['id'],['queueField']:_0x3fa0b9[_0x10fa66]['id']});}});});});}});}})['then'](respondWithStatusCode(_0x5ec438,null))[_0x84af('0x18')](handleError(_0x5ec438,null));};exports['removeTeams']=function(_0x5cfdcd,_0x1fc965){return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x5cfdcd[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1fc965,null))['then'](function(_0x4f7395){if(_0x4f7395){var _0x577504=_0x4f7395[_0x84af('0x24')]({'plain':!![]});var _0x14df58=_0x5cfdcd[_0x84af('0x3a')][_0x84af('0x57')];return _0x4f7395['removeTeams'](_0x14df58)['then'](function(){for(var _0x11ee67=0x0;_0x11ee67<_0x14df58[_0x84af('0x61')];_0x11ee67++){var _0x14de29=[];db[_0x84af('0x103')][_0x84af('0x8b')]({'where':{'id':_0x14df58[_0x11ee67]}})[_0x84af('0xe')](function(_0x192ff6){_0x14de29[_0x84af('0x3d')](_0x192ff6[_0x84af('0xe4')]()['then'](function(_0x5025d7){for(var _0x1f4d64=0x0;_0x1f4d64<_0x5025d7[_0x84af('0x61')];_0x1f4d64++){_0x5025d7[_0x1f4d64][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x105'));}return _0x5025d7;}));_0x14de29[_0x84af('0x3d')](_0x192ff6[_0x84af('0x106')]()[_0x84af('0xe')](function(_0x594cdf){for(var _0x419d36=0x0;_0x419d36<_0x594cdf[_0x84af('0x61')];_0x419d36++){_0x594cdf[_0x419d36][_0x84af('0x104')]('channel',_0x84af('0x107'));}return _0x594cdf;}));_0x14de29['push'](_0x192ff6['getMailQueues']()[_0x84af('0xe')](function(_0x4b190b){for(var _0x35daa1=0x0;_0x35daa1<_0x4b190b[_0x84af('0x61')];_0x35daa1++){_0x4b190b[_0x35daa1][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x108'));}return _0x4b190b;}));_0x14de29[_0x84af('0x3d')](_0x192ff6[_0x84af('0x109')]()[_0x84af('0xe')](function(_0x17e0d3){for(var _0x1d1517=0x0;_0x1d1517<_0x17e0d3[_0x84af('0x61')];_0x1d1517++){_0x17e0d3[_0x1d1517][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x112'));}return _0x17e0d3;}));_0x14de29['push'](_0x192ff6[_0x84af('0x113')]()[_0x84af('0xe')](function(_0x1e6189){for(var _0x35f928=0x0;_0x35f928<_0x1e6189[_0x84af('0x61')];_0x35f928++){_0x1e6189[_0x35f928]['setDataValue'](_0x84af('0xa1'),_0x84af('0x114'));}return _0x1e6189;}));_0x14de29[_0x84af('0x3d')](_0x192ff6['getFaxQueues']()[_0x84af('0xe')](function(_0x29ea14){for(var _0x212e30=0x0;_0x212e30<_0x29ea14[_0x84af('0x61')];_0x212e30++){_0x29ea14[_0x212e30]['setDataValue'](_0x84af('0xa1'),_0x84af('0x10b'));}return _0x29ea14;}));_0x14de29[_0x84af('0x3d')](_0x192ff6['getOpenchannelQueues']()['then'](function(_0x4aa4b5){for(var _0x40bd9b=0x0;_0x40bd9b<_0x4aa4b5[_0x84af('0x61')];_0x40bd9b++){_0x4aa4b5[_0x40bd9b][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x10d'));}return _0x4aa4b5;}));return BPromise[_0x84af('0x48')](_0x14de29);})[_0x84af('0xe')](function(_0x246376){var _0x127823=_[_0x84af('0x115')](_0x246376);_0x14de29=[];return db[_0x84af('0x5f')][_0x84af('0x10e')](function(_0x3f6089){for(var _0x171474=0x0;_0x171474<_0x127823['length'];_0x171474++){_0x14de29['push'](_0x127823[_0x171474][_0x84af('0x116')](_0x577504['id']),{'transaction':_0x3f6089});}return BPromise['all'](_0x14de29)['then'](function(){if(_0x577504[_0x84af('0x92')]){return BPromise[_0x84af('0xe6')](_['filter'](_0x127823,function(_0x443c83){return _0x443c83[_0x84af('0x110')](_0x84af('0xa1'))===_0x84af('0x105');}),function(_0x463d85){return db['UserVoiceQueueRt'][_0x84af('0x23')]({'where':{'VoiceQueueId':_0x463d85['id'],'UserId':_0x577504['id']},'transaction':_0x3f6089});});}else{return;}})['then'](function(){for(var _0xe7fb3e=0x0;_0xe7fb3e<_0x127823[_0x84af('0x61')];_0xe7fb3e++){var _0x354385=_0x127823[_0xe7fb3e][_0x84af('0x110')](_0x84af('0xa1'));var _0xababb7=_0x354385+_0x84af('0x9a');socket[_0x84af('0x9b')]('user'+_0x354385+'Queue:remove',{'UserId':_0x577504['id'],['queueField']:_0x127823[_0xe7fb3e]['id']});}});});});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x1fc965,null))[_0x84af('0x18')](handleError(_0x1fc965,null));};exports[_0x84af('0x117')]=function(_0x57f2c3,_0x5ce69a){var _0x19960a={};var _0x1348d5={};var _0x4b95e2;var _0x15e85a;return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x57f2c3['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x5ce69a,null))['then'](function(_0x32d5b6){if(_0x32d5b6){_0x4b95e2=_0x32d5b6;_0x1348d5['model']=_[_0x84af('0x4d')](db[_0x84af('0xbf')]['rawAttributes']);_0x1348d5['query']=_['keys'](_0x57f2c3['query']);_0x1348d5[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x1348d5[_0x84af('0x4b')],_0x1348d5[_0x84af('0x3a')]);_0x19960a[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x1348d5['model'],qs[_0x84af('0x51')](_0x57f2c3[_0x84af('0x3a')][_0x84af('0x51')]));_0x19960a['attributes']=_0x19960a[_0x84af('0x3c')][_0x84af('0x61')]?_0x19960a[_0x84af('0x3c')]:_0x1348d5[_0x84af('0x4b')];_0x19960a[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x57f2c3['query'][_0x84af('0xba')]);_0x19960a['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x57f2c3[_0x84af('0x3a')],_0x1348d5[_0x84af('0x4f')]));if(_0x57f2c3[_0x84af('0x3a')]['filter']){_0x19960a['where']=_[_0x84af('0x52')](_0x19960a[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x19960a['attributes'],function(_0x36b41b){var _0x203ebe={};_0x203ebe[_0x36b41b]={'$like':'%'+_0x57f2c3['query'][_0x84af('0x2b')]+'%'};return _0x203ebe;})});}_0x19960a=_[_0x84af('0x52')]({},_0x19960a,_0x57f2c3['options']);return _0x4b95e2[_0x84af('0x117')](_0x19960a);}})['then'](function(_0xf09b0){if(_0xf09b0){_0x15e85a=_0xf09b0['length'];if(!_0x57f2c3[_0x84af('0x3a')][_0x84af('0xbd')]('nolimit')){_0x19960a['limit']=qs[_0x84af('0x1e')](_0x57f2c3[_0x84af('0x3a')][_0x84af('0x1e')]);_0x19960a[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x57f2c3[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x4b95e2[_0x84af('0x117')](_0x19960a);}})[_0x84af('0xe')](function(_0x41beb8){if(_0x41beb8){return _0x41beb8?{'count':_0x15e85a,'rows':_0x41beb8}:null;}})['then'](respondWithResult(_0x5ce69a,null))[_0x84af('0x18')](handleError(_0x5ce69a,null));};exports[_0x84af('0x118')]=function(_0x349382,_0x183c82){var _0x2fc3ba={};var _0x341e2c={};var _0x205940;var _0x2752df;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x349382[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x183c82,null))['then'](function(_0xde08dd){if(_0xde08dd){_0x205940=_0xde08dd;_0x341e2c[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x34')][_0x84af('0x4e')]);_0x341e2c[_0x84af('0x3a')]=_['keys'](_0x349382[_0x84af('0x3a')]);_0x341e2c[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x341e2c['model'],_0x341e2c['query']);_0x2fc3ba['attributes']=_[_0x84af('0x50')](_0x341e2c[_0x84af('0x4b')],qs['fields'](_0x349382['query'][_0x84af('0x51')]));_0x2fc3ba[_0x84af('0x3c')]=_0x2fc3ba[_0x84af('0x3c')][_0x84af('0x61')]?_0x2fc3ba[_0x84af('0x3c')]:_0x341e2c[_0x84af('0x4b')];_0x2fc3ba[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x349382['query'][_0x84af('0xba')]);_0x2fc3ba[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x349382[_0x84af('0x3a')],_0x341e2c['filters']));if(_0x349382[_0x84af('0x3a')][_0x84af('0x2b')]){_0x2fc3ba[_0x84af('0x39')]=_[_0x84af('0x52')](_0x2fc3ba['where'],{'$or':_[_0x84af('0x2c')](_0x2fc3ba[_0x84af('0x3c')],function(_0x617b12){var _0xd2eab7={};_0xd2eab7[_0x617b12]={'$like':'%'+_0x349382[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0xd2eab7;})});}_0x2fc3ba[_0x84af('0x4b')]=db[_0x84af('0x34')];_0x2fc3ba['as']='Agents';_0x2fc3ba=_[_0x84af('0x52')]({},_0x2fc3ba,_0x349382['options']);return _0x205940[_0x84af('0xe4')]({'include':[_0x2fc3ba]});}})[_0x84af('0xe')](function(_0x594dac){if(_0x594dac){var _0x4a11c7={},_0x46e655=[],_0xb9964d=0x0;for(var _0x57b67f=0x0;_0x57b67f<_0x594dac[_0x84af('0x61')];_0x57b67f+=0x1){for(var _0x1e079c=0x0,_0x10ea77;_0x1e079c<_0x594dac[_0x57b67f][_0x84af('0x7a')][_0x84af('0x61')];_0x1e079c+=0x1){_0x10ea77=_0x594dac[_0x57b67f][_0x84af('0x7a')][_0x1e079c][_0x84af('0x24')]({'plain':!![]});_0x4a11c7[_0x10ea77['id']]=_0x10ea77;}}_0x4a11c7=_['values'](_0x4a11c7);for(var _0x2e5d0c=qs[_0x84af('0x1c')](_0x349382[_0x84af('0x3a')][_0x84af('0x1c')]);_0x2e5d0c<_0x4a11c7['length']&&_0x46e655[_0x84af('0x61')]<qs['limit'](_0x349382[_0x84af('0x3a')][_0x84af('0x1e')]);_0x2e5d0c+=0x1){if(_0x4a11c7[_0x2e5d0c]){_0x46e655['push'](_0x4a11c7[_0x2e5d0c]);}}return{'count':_0x4a11c7['length'],'rows':_0x46e655};}})['then'](respondWithResult(_0x183c82,null))['catch'](handleError(_0x183c82,null));};exports[_0x84af('0x23')]=function(_0x2deaa0,_0x5914e5){if(_0x2deaa0[_0x84af('0x28')]['id']==_0x2deaa0[_0x84af('0x4a')]['id']){return _0x5914e5[_0x84af('0x20')](0x1f4)['send']({'message':'You\x20can\x27t\x20delete\x20yourself'});}return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2deaa0[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x5914e5,null))[_0x84af('0xe')](removeEntity(_0x5914e5,null))[_0x84af('0x18')](handleError(_0x5914e5,null));};exports[_0x84af('0x119')]=function(_0x1feba5,_0x42c28c){return db['User']['find']({'where':{'id':_0x1feba5[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x42c28c,null))[_0x84af('0xe')](function(_0x3d54a8){if(_0x3d54a8){return _0x3d54a8[_0x84af('0x119')](_0x1feba5[_0x84af('0x54')]['ids'],_[_0x84af('0x102')](_0x1feba5[_0x84af('0x54')],['ids','id'])||{})[_0x84af('0x11a')](function(){for(var _0x54586b=0x0;_0x54586b<_0x1feba5['body']['ids'][_0x84af('0x61')];_0x54586b+=0x1){socket[_0x84af('0x9b')](_0x84af('0x11b'),{'ChatInteractionId':Number(_0x1feba5[_0x84af('0x54')][_0x84af('0x57')][_0x54586b]),'UserId':Number(_0x1feba5[_0x84af('0x4a')]['id'])});}return _0x1feba5[_0x84af('0x54')][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x42c28c,null))[_0x84af('0x18')](handleError(_0x42c28c,null));};exports[_0x84af('0x11c')]=function(_0x2f2190,_0x535202){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2f2190[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x535202,null))[_0x84af('0xe')](function(_0x84d869){if(_0x84d869){return _0x84d869[_0x84af('0x11c')](_0x2f2190[_0x84af('0x3a')][_0x84af('0x57')])[_0x84af('0xe')](function(){if(_[_0x84af('0x11d')](_0x2f2190['query']['ids'])){for(var _0x5b403c=0x0;_0x5b403c<_0x2f2190[_0x84af('0x3a')]['ids']['length'];_0x5b403c+=0x1){socket['emit']('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x2f2190[_0x84af('0x3a')][_0x84af('0x57')][_0x5b403c]),'UserId':Number(_0x2f2190[_0x84af('0x4a')]['id'])});}}else{socket['emit'](_0x84af('0x11e'),{'ChatInteractionId':Number(_0x2f2190[_0x84af('0x3a')][_0x84af('0x57')]),'UserId':Number(_0x2f2190[_0x84af('0x4a')]['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x535202,null))[_0x84af('0x18')](handleError(_0x535202,null));};exports[_0x84af('0x11f')]=function(_0x24bc81,_0x524d79){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x24bc81[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x524d79,null))[_0x84af('0xe')](function(_0x5165d8){if(_0x5165d8){return _0x5165d8['addMailInteractions'](_0x24bc81[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x24bc81[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})[_0x84af('0x11a')](function(){for(var _0xdf923a=0x0;_0xdf923a<_0x24bc81[_0x84af('0x54')][_0x84af('0x57')]['length'];_0xdf923a+=0x1){socket['emit'](_0x84af('0x120'),{'MailInteractionId':Number(_0x24bc81[_0x84af('0x54')][_0x84af('0x57')][_0xdf923a]),'UserId':Number(_0x24bc81[_0x84af('0x4a')]['id'])});}return _0x24bc81[_0x84af('0x54')][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x524d79,null))[_0x84af('0x18')](handleError(_0x524d79,null));};exports[_0x84af('0x121')]=function(_0x257262,_0xb9aba5){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x257262[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xb9aba5,null))['then'](function(_0x3446c8){if(_0x3446c8){return _0x3446c8[_0x84af('0x121')](_0x257262[_0x84af('0x3a')]['ids'])[_0x84af('0xe')](function(){if(_[_0x84af('0x11d')](_0x257262[_0x84af('0x3a')][_0x84af('0x57')])){for(var _0x21db0f=0x0;_0x21db0f<_0x257262[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x21db0f+=0x1){socket['emit'](_0x84af('0x122'),{'MailInteractionId':Number(_0x257262[_0x84af('0x3a')][_0x84af('0x57')][_0x21db0f]),'UserId':Number(_0x257262[_0x84af('0x4a')]['id'])});}}else{socket[_0x84af('0x9b')](_0x84af('0x122'),{'MailInteractionId':Number(_0x257262[_0x84af('0x3a')]['ids']),'UserId':Number(_0x257262[_0x84af('0x4a')]['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0xb9aba5,null))[_0x84af('0x18')](handleError(_0xb9aba5,null));};exports[_0x84af('0x123')]=function(_0x25b172,_0x3a316f){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x25b172[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3a316f,null))[_0x84af('0xe')](function(_0x13cb78){if(_0x13cb78){return _0x13cb78[_0x84af('0x123')](_0x25b172['body'][_0x84af('0x57')],_[_0x84af('0x102')](_0x25b172[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})[_0x84af('0x11a')](function(){for(var _0x47b48e=0x0;_0x47b48e<_0x25b172[_0x84af('0x54')][_0x84af('0x57')][_0x84af('0x61')];_0x47b48e+=0x1){socket[_0x84af('0x9b')](_0x84af('0x124'),{'FaxInteractionId':Number(_0x25b172[_0x84af('0x54')][_0x84af('0x57')][_0x47b48e]),'UserId':Number(_0x25b172[_0x84af('0x4a')]['id'])});}return _0x25b172[_0x84af('0x54')]['ids'];});}})[_0x84af('0xe')](respondWithResult(_0x3a316f,null))[_0x84af('0x18')](handleError(_0x3a316f,null));};exports['removeFaxInteractions']=function(_0x2c42b3,_0x3f5440){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2c42b3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x3f5440,null))[_0x84af('0xe')](function(_0x376145){if(_0x376145){return _0x376145[_0x84af('0x125')](_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')])['then'](function(){if(_[_0x84af('0x11d')](_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')])){for(var _0x1701ac=0x0;_0x1701ac<_0x2c42b3[_0x84af('0x3a')]['ids'][_0x84af('0x61')];_0x1701ac+=0x1){socket['emit'](_0x84af('0x126'),{'FaxInteractionId':Number(_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')][_0x1701ac]),'UserId':Number(_0x2c42b3['params']['id'])});}}else{socket[_0x84af('0x9b')](_0x84af('0x126'),{'FaxInteractionId':Number(_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')]),'UserId':Number(_0x2c42b3['params']['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x3f5440,null))[_0x84af('0x18')](handleError(_0x3f5440,null));};exports[_0x84af('0x127')]=function(_0x4c7e1e,_0x3fadd1){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4c7e1e[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3fadd1,null))[_0x84af('0xe')](function(_0x591643){if(_0x591643){return _0x591643['addSmsInteractions'](_0x4c7e1e['body']['ids'],_['omit'](_0x4c7e1e[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})[_0x84af('0x11a')](function(){for(var _0x47cb4b=0x0;_0x47cb4b<_0x4c7e1e[_0x84af('0x54')][_0x84af('0x57')][_0x84af('0x61')];_0x47cb4b+=0x1){socket[_0x84af('0x9b')]('user_has_sms_interactions:save',{'SmsInteractionId':Number(_0x4c7e1e[_0x84af('0x54')][_0x84af('0x57')][_0x47cb4b]),'UserId':Number(_0x4c7e1e['params']['id'])});}return _0x4c7e1e[_0x84af('0x54')]['ids'];});}})[_0x84af('0xe')](respondWithResult(_0x3fadd1,null))[_0x84af('0x18')](handleError(_0x3fadd1,null));};exports['removeSmsInteractions']=function(_0x18e064,_0x2dfcbf){return db[_0x84af('0x34')]['find']({'where':{'id':_0x18e064[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2dfcbf,null))['then'](function(_0x4336bf){if(_0x4336bf){return _0x4336bf[_0x84af('0x128')](_0x18e064['query'][_0x84af('0x57')])[_0x84af('0xe')](function(){if(_[_0x84af('0x11d')](_0x18e064['query'][_0x84af('0x57')])){for(var _0x249141=0x0;_0x249141<_0x18e064[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x249141+=0x1){socket['emit'](_0x84af('0x129'),{'SmsInteractionId':Number(_0x18e064[_0x84af('0x3a')][_0x84af('0x57')][_0x249141]),'UserId':Number(_0x18e064[_0x84af('0x4a')]['id'])});}}else{socket[_0x84af('0x9b')](_0x84af('0x129'),{'SmsInteractionId':Number(_0x18e064[_0x84af('0x3a')]['ids']),'UserId':Number(_0x18e064[_0x84af('0x4a')]['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x2dfcbf,null))[_0x84af('0x18')](handleError(_0x2dfcbf,null));};exports[_0x84af('0x12a')]=function(_0x4e7022,_0x4447c7){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x4e7022[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x4447c7,null))[_0x84af('0xe')](function(_0x328565){if(_0x328565){return _0x328565[_0x84af('0x12a')](_0x4e7022[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x4e7022[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})['spread'](function(){for(var _0x21e44b=0x0;_0x21e44b<_0x4e7022[_0x84af('0x54')]['ids'][_0x84af('0x61')];_0x21e44b+=0x1){socket[_0x84af('0x9b')](_0x84af('0x12b'),{'OpenchannelInteractionId':Number(_0x4e7022['body']['ids'][_0x21e44b]),'UserId':Number(_0x4e7022['params']['id'])});}return _0x4e7022['body'][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x4447c7,null))[_0x84af('0x18')](handleError(_0x4447c7,null));};exports['removeOpenchannelInteractions']=function(_0x4cdab2,_0x42e2e8){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4cdab2[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x42e2e8,null))[_0x84af('0xe')](function(_0x2cec8a){if(_0x2cec8a){return _0x2cec8a[_0x84af('0x12c')](_0x4cdab2[_0x84af('0x3a')]['ids'])['then'](function(){if(_[_0x84af('0x11d')](_0x4cdab2[_0x84af('0x3a')][_0x84af('0x57')])){for(var _0x34d93f=0x0;_0x34d93f<_0x4cdab2[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x34d93f+=0x1){socket[_0x84af('0x9b')](_0x84af('0x12d'),{'OpenchannelInteractionId':Number(_0x4cdab2[_0x84af('0x3a')][_0x84af('0x57')][_0x34d93f]),'UserId':Number(_0x4cdab2[_0x84af('0x4a')]['id'])});}}else{socket[_0x84af('0x9b')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x4cdab2[_0x84af('0x3a')]['ids']),'UserId':Number(_0x4cdab2[_0x84af('0x4a')]['id'])});}});}})['then'](respondWithStatusCode(_0x42e2e8,null))[_0x84af('0x18')](handleError(_0x42e2e8,null));};exports['addWhatsappInteractions']=function(_0x463269,_0x14e645){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x463269['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x14e645,null))['then'](function(_0x2c61df){if(_0x2c61df){return _0x2c61df[_0x84af('0x12e')](_0x463269[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x463269[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})['spread'](function(){for(var _0x5e0247=0x0;_0x5e0247<_0x463269['body'][_0x84af('0x57')][_0x84af('0x61')];_0x5e0247+=0x1){socket[_0x84af('0x9b')](_0x84af('0x12f'),{'WhatsappInteractionId':Number(_0x463269[_0x84af('0x54')][_0x84af('0x57')][_0x5e0247]),'UserId':Number(_0x463269[_0x84af('0x4a')]['id'])});}return _0x463269[_0x84af('0x54')][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x14e645,null))[_0x84af('0x18')](handleError(_0x14e645,null));};exports['removeWhatsappInteractions']=function(_0x5d9998,_0x57070b){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x5d9998[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x57070b,null))[_0x84af('0xe')](function(_0x457fa0){if(_0x457fa0){return _0x457fa0['removeWhatsappInteractions'](_0x5d9998[_0x84af('0x3a')][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0x57070b,null))[_0x84af('0x18')](handleError(_0x57070b,null));};exports[_0x84af('0x130')]=function(_0xb0c451,_0x177d54){var _0x31025e={};var _0x5aa7c9={};var _0x10bda6;var _0x5f4dec;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0xb0c451[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x177d54,null))[_0x84af('0xe')](function(_0x37e5e7){if(_0x37e5e7){_0x10bda6=_0x37e5e7;_0x5aa7c9['model']=_[_0x84af('0x4d')](db['VoicePrefix'][_0x84af('0x4e')]);_0x5aa7c9['query']=_[_0x84af('0x4d')](_0xb0c451['query']);_0x5aa7c9[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x5aa7c9[_0x84af('0x4b')],_0x5aa7c9[_0x84af('0x3a')]);_0x31025e[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x5aa7c9[_0x84af('0x4b')],qs[_0x84af('0x51')](_0xb0c451[_0x84af('0x3a')][_0x84af('0x51')]));_0x31025e[_0x84af('0x3c')]=_0x31025e[_0x84af('0x3c')]['length']?_0x31025e[_0x84af('0x3c')]:_0x5aa7c9[_0x84af('0x4b')];_0x31025e[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0xb0c451[_0x84af('0x3a')][_0x84af('0xba')]);_0x31025e['where']=qs['filters'](_['pick'](_0xb0c451[_0x84af('0x3a')],_0x5aa7c9[_0x84af('0x4f')]));if(_0xb0c451[_0x84af('0x3a')][_0x84af('0x2b')]){_0x31025e[_0x84af('0x39')]=_['merge'](_0x31025e[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x31025e[_0x84af('0x3c')],function(_0x4724ef){var _0x24dbb3={};_0x24dbb3[_0x4724ef]={'$like':'%'+_0xb0c451[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x24dbb3;})});}_0x31025e=_['merge']({},_0x31025e,_0xb0c451['options']);return _0x10bda6[_0x84af('0x130')](_0x31025e);}})['then'](function(_0x2caebb){if(_0x2caebb){_0x5f4dec=_0x2caebb[_0x84af('0x61')];if(!_0xb0c451['query']['hasOwnProperty'](_0x84af('0xc3'))){_0x31025e['limit']=qs[_0x84af('0x1e')](_0xb0c451[_0x84af('0x3a')][_0x84af('0x1e')]);_0x31025e['offset']=qs[_0x84af('0x1c')](_0xb0c451[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x10bda6[_0x84af('0x130')](_0x31025e);}})[_0x84af('0xe')](function(_0x56fdf7){if(_0x56fdf7){return _0x56fdf7?{'count':_0x5f4dec,'rows':_0x56fdf7}:null;}})[_0x84af('0xe')](respondWithResult(_0x177d54,null))[_0x84af('0x18')](handleError(_0x177d54,null));};exports[_0x84af('0x131')]=function(_0x1a2d58,_0x1ac7d8){var _0x41bc39={};var _0x19f85f={};var _0x80ecc8;var _0x56ae77;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x1a2d58[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1ac7d8,null))[_0x84af('0xe')](function(_0x580228){if(_0x580228){_0x80ecc8=_0x580228;_0x19f85f['model']=_['keys'](db['FaxAccount'][_0x84af('0x4e')]);_0x19f85f[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x1a2d58[_0x84af('0x3a')]);_0x19f85f['filters']=_[_0x84af('0x50')](_0x19f85f[_0x84af('0x4b')],_0x19f85f[_0x84af('0x3a')]);_0x41bc39['attributes']=_[_0x84af('0x50')](_0x19f85f[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x1a2d58[_0x84af('0x3a')]['fields']));_0x41bc39[_0x84af('0x3c')]=_0x41bc39[_0x84af('0x3c')][_0x84af('0x61')]?_0x41bc39[_0x84af('0x3c')]:_0x19f85f[_0x84af('0x4b')];_0x41bc39[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x1a2d58[_0x84af('0x3a')][_0x84af('0xba')]);_0x41bc39['where']=qs[_0x84af('0x4f')](_['pick'](_0x1a2d58[_0x84af('0x3a')],_0x19f85f[_0x84af('0x4f')]));if(_0x1a2d58[_0x84af('0x3a')]['filter']){_0x41bc39['where']=_[_0x84af('0x52')](_0x41bc39[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x41bc39[_0x84af('0x3c')],function(_0x65cd99){var _0x21e62a={};_0x21e62a[_0x65cd99]={'$like':'%'+_0x1a2d58[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x21e62a;})});}_0x41bc39=_[_0x84af('0x52')]({},_0x41bc39,_0x1a2d58[_0x84af('0x53')]);return _0x80ecc8['getFaxAccounts'](_0x41bc39);}})['then'](function(_0x36677e){if(_0x36677e){_0x56ae77=_0x36677e[_0x84af('0x61')];if(!_0x1a2d58[_0x84af('0x3a')][_0x84af('0xbd')]('nolimit')){_0x41bc39[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x1a2d58['query'][_0x84af('0x1e')]);_0x41bc39[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x1a2d58[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x80ecc8[_0x84af('0x131')](_0x41bc39);}})['then'](function(_0x38ca18){if(_0x38ca18){return _0x38ca18?{'count':_0x56ae77,'rows':_0x38ca18}:null;}})[_0x84af('0xe')](respondWithResult(_0x1ac7d8,null))[_0x84af('0x18')](handleError(_0x1ac7d8,null));};exports[_0x84af('0x132')]=function(_0x9edc40,_0x10cbd6){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x9edc40[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x10cbd6,null))[_0x84af('0xe')](function(_0x205d6c){if(_0x205d6c){return _0x205d6c[_0x84af('0x132')](_0x9edc40[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x9edc40[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x10cbd6,null))[_0x84af('0x18')](handleError(_0x10cbd6,null));};exports[_0x84af('0x133')]=function(_0x55a4d0,_0x84cded){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x55a4d0[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x84cded,null))['then'](function(_0x49abe6){if(_0x49abe6){return _0x49abe6[_0x84af('0x133')](_0x55a4d0[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x84cded,null))[_0x84af('0x18')](handleError(_0x84cded,null));};exports[_0x84af('0x134')]=function(_0x2b42d8,_0x213ffe){var _0x2c2a03={};var _0x4f757f={};var _0x3c4f53;var _0x32587a;return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x2b42d8[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x213ffe,null))[_0x84af('0xe')](function(_0x13dccf){if(_0x13dccf){_0x3c4f53=_0x13dccf;_0x4f757f[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x135')][_0x84af('0x4e')]);_0x4f757f['query']=_[_0x84af('0x4d')](_0x2b42d8[_0x84af('0x3a')]);_0x4f757f[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x4f757f[_0x84af('0x4b')],_0x4f757f['query']);_0x2c2a03[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x4f757f[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x2b42d8['query'][_0x84af('0x51')]));_0x2c2a03[_0x84af('0x3c')]=_0x2c2a03[_0x84af('0x3c')][_0x84af('0x61')]?_0x2c2a03['attributes']:_0x4f757f[_0x84af('0x4b')];_0x2c2a03['order']=qs[_0x84af('0xba')](_0x2b42d8[_0x84af('0x3a')][_0x84af('0xba')]);_0x2c2a03[_0x84af('0x39')]=qs[_0x84af('0x4f')](_['pick'](_0x2b42d8[_0x84af('0x3a')],_0x4f757f[_0x84af('0x4f')]));if(_0x2b42d8['query'][_0x84af('0x2b')]){_0x2c2a03[_0x84af('0x39')]=_[_0x84af('0x52')](_0x2c2a03[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x2c2a03[_0x84af('0x3c')],function(_0x27e30c){var _0x5ac9dd={};_0x5ac9dd[_0x27e30c]={'$like':'%'+_0x2b42d8[_0x84af('0x3a')]['filter']+'%'};return _0x5ac9dd;})});}_0x2c2a03=_[_0x84af('0x52')]({},_0x2c2a03,_0x2b42d8[_0x84af('0x53')]);return _0x3c4f53[_0x84af('0x134')](_0x2c2a03);}})[_0x84af('0xe')](function(_0x4abc65){if(_0x4abc65){_0x32587a=_0x4abc65[_0x84af('0x61')];if(!_0x2b42d8[_0x84af('0x3a')]['hasOwnProperty']('nolimit')){_0x2c2a03[_0x84af('0x1e')]=qs['limit'](_0x2b42d8['query']['limit']);_0x2c2a03[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x2b42d8[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x3c4f53[_0x84af('0x134')](_0x2c2a03);}})['then'](function(_0xbd3f){if(_0xbd3f){return _0xbd3f?{'count':_0x32587a,'rows':_0xbd3f}:null;}})['then'](respondWithResult(_0x213ffe,null))[_0x84af('0x18')](handleError(_0x213ffe,null));};exports[_0x84af('0x136')]=function(_0x16e2a6,_0x1e26e4){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x16e2a6['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1e26e4,null))[_0x84af('0xe')](function(_0x32429a){if(_0x32429a){return _0x32429a[_0x84af('0x136')](_0x16e2a6['body'][_0x84af('0x57')],_[_0x84af('0x102')](_0x16e2a6[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x1e26e4,null))[_0x84af('0x18')](handleError(_0x1e26e4,null));};exports['removeMailAccounts']=function(_0x1c6472,_0xea572b){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x1c6472[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xea572b,null))['then'](function(_0xb40138){if(_0xb40138){return _0xb40138[_0x84af('0x137')](_0x1c6472[_0x84af('0x3a')][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0xea572b,null))[_0x84af('0x18')](handleError(_0xea572b,null));};exports[_0x84af('0x138')]=function(_0x55138c,_0x2bcf8f){var _0x3913aa={};var _0x38b185={};var _0x3634c4;var _0x36f54b;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x55138c[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2bcf8f,null))[_0x84af('0xe')](function(_0x32e341){if(_0x32e341){_0x3634c4=_0x32e341;_0x38b185['model']=_[_0x84af('0x4d')](db['OpenchannelAccount'][_0x84af('0x4e')]);_0x38b185[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x55138c[_0x84af('0x3a')]);_0x38b185[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x38b185[_0x84af('0x4b')],_0x38b185['query']);_0x3913aa[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x38b185[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x55138c[_0x84af('0x3a')]['fields']));_0x3913aa['attributes']=_0x3913aa['attributes'][_0x84af('0x61')]?_0x3913aa['attributes']:_0x38b185[_0x84af('0x4b')];_0x3913aa[_0x84af('0xc6')]=qs['sort'](_0x55138c[_0x84af('0x3a')][_0x84af('0xba')]);_0x3913aa[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x55138c[_0x84af('0x3a')],_0x38b185['filters']));if(_0x55138c['query'][_0x84af('0x2b')]){_0x3913aa[_0x84af('0x39')]=_[_0x84af('0x52')](_0x3913aa[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x3913aa['attributes'],function(_0x23f622){var _0x5d7495={};_0x5d7495[_0x23f622]={'$like':'%'+_0x55138c[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x5d7495;})});}_0x3913aa=_[_0x84af('0x52')]({},_0x3913aa,_0x55138c[_0x84af('0x53')]);return _0x3634c4[_0x84af('0x138')](_0x3913aa);}})[_0x84af('0xe')](function(_0x3461dc){if(_0x3461dc){_0x36f54b=_0x3461dc[_0x84af('0x61')];if(!_0x55138c['query'][_0x84af('0xbd')](_0x84af('0xc3'))){_0x3913aa[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x55138c[_0x84af('0x3a')]['limit']);_0x3913aa['offset']=qs['offset'](_0x55138c[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x3634c4[_0x84af('0x138')](_0x3913aa);}})['then'](function(_0x2b993d){if(_0x2b993d){return _0x2b993d?{'count':_0x36f54b,'rows':_0x2b993d}:null;}})['then'](respondWithResult(_0x2bcf8f,null))[_0x84af('0x18')](handleError(_0x2bcf8f,null));};exports['addOpenchannelAccounts']=function(_0x425d24,_0x29624b){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x425d24[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x29624b,null))[_0x84af('0xe')](function(_0x35c3e5){if(_0x35c3e5){return _0x35c3e5['addOpenchannelAccounts'](_0x425d24[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x425d24['body'],[_0x84af('0x57'),'id'])||{});}})['then'](respondWithResult(_0x29624b,null))[_0x84af('0x18')](handleError(_0x29624b,null));};exports[_0x84af('0x139')]=function(_0x2ea460,_0xb6ab16){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2ea460[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xb6ab16,null))[_0x84af('0xe')](function(_0x3340ab){if(_0x3340ab){return _0x3340ab[_0x84af('0x139')](_0x2ea460['query'][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0xb6ab16,null))[_0x84af('0x18')](handleError(_0xb6ab16,null));};exports[_0x84af('0x13a')]=function(_0x3d5945,_0xe0263c){var _0x2fd10d={};var _0x496aa5={};var _0x5d8958;var _0x1fcf08;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3d5945['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xe0263c,null))[_0x84af('0xe')](function(_0x4aa981){if(_0x4aa981){_0x5d8958=_0x4aa981;_0x496aa5[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x13b')][_0x84af('0x4e')]);_0x496aa5['query']=_[_0x84af('0x4d')](_0x3d5945['query']);_0x496aa5['filters']=_[_0x84af('0x50')](_0x496aa5[_0x84af('0x4b')],_0x496aa5[_0x84af('0x3a')]);_0x2fd10d[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x496aa5['model'],qs[_0x84af('0x51')](_0x3d5945[_0x84af('0x3a')]['fields']));_0x2fd10d[_0x84af('0x3c')]=_0x2fd10d[_0x84af('0x3c')][_0x84af('0x61')]?_0x2fd10d[_0x84af('0x3c')]:_0x496aa5[_0x84af('0x4b')];_0x2fd10d[_0x84af('0xc6')]=qs['sort'](_0x3d5945[_0x84af('0x3a')][_0x84af('0xba')]);_0x2fd10d[_0x84af('0x39')]=qs['filters'](_['pick'](_0x3d5945[_0x84af('0x3a')],_0x496aa5['filters']));if(_0x3d5945[_0x84af('0x3a')][_0x84af('0x2b')]){_0x2fd10d[_0x84af('0x39')]=_[_0x84af('0x52')](_0x2fd10d[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x2fd10d[_0x84af('0x3c')],function(_0x4d63da){var _0x1af3d7={};_0x1af3d7[_0x4d63da]={'$like':'%'+_0x3d5945['query'][_0x84af('0x2b')]+'%'};return _0x1af3d7;})});}_0x2fd10d=_[_0x84af('0x52')]({},_0x2fd10d,_0x3d5945[_0x84af('0x53')]);return _0x5d8958['getSmsAccounts'](_0x2fd10d);}})[_0x84af('0xe')](function(_0x4cd829){if(_0x4cd829){_0x1fcf08=_0x4cd829[_0x84af('0x61')];if(!_0x3d5945['query'][_0x84af('0xbd')]('nolimit')){_0x2fd10d[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x3d5945[_0x84af('0x3a')]['limit']);_0x2fd10d[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3d5945[_0x84af('0x3a')]['offset']);}return _0x5d8958['getSmsAccounts'](_0x2fd10d);}})[_0x84af('0xe')](function(_0x520c57){if(_0x520c57){return _0x520c57?{'count':_0x1fcf08,'rows':_0x520c57}:null;}})[_0x84af('0xe')](respondWithResult(_0xe0263c,null))[_0x84af('0x18')](handleError(_0xe0263c,null));};exports[_0x84af('0x13c')]=function(_0x97a8de,_0x30cd74){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x97a8de[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x30cd74,null))[_0x84af('0xe')](function(_0x1fb520){if(_0x1fb520){return _0x1fb520[_0x84af('0x13c')](_0x97a8de[_0x84af('0x54')][_0x84af('0x57')],_['omit'](_0x97a8de[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})['then'](respondWithResult(_0x30cd74,null))[_0x84af('0x18')](handleError(_0x30cd74,null));};exports[_0x84af('0x13d')]=function(_0x53b759,_0x5c3b54){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x53b759['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x5c3b54,null))[_0x84af('0xe')](function(_0x251850){if(_0x251850){return _0x251850['removeSmsAccounts'](_0x53b759[_0x84af('0x3a')][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0x5c3b54,null))[_0x84af('0x18')](handleError(_0x5c3b54,null));};exports[_0x84af('0x13e')]=function(_0x339e32,_0x22f2d4){var _0x30c1a5={};var _0x5eff86={};var _0x2daad8;var _0x190552;return db['User'][_0x84af('0x8b')]({'where':{'id':_0x339e32[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x22f2d4,null))[_0x84af('0xe')](function(_0x5b1440){if(_0x5b1440){_0x2daad8=_0x5b1440;_0x5eff86[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x13f')][_0x84af('0x4e')]);_0x5eff86[_0x84af('0x3a')]=_['keys'](_0x339e32[_0x84af('0x3a')]);_0x5eff86[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x5eff86['model'],_0x5eff86[_0x84af('0x3a')]);_0x30c1a5['attributes']=_[_0x84af('0x50')](_0x5eff86[_0x84af('0x4b')],qs['fields'](_0x339e32[_0x84af('0x3a')][_0x84af('0x51')]));_0x30c1a5['attributes']=_0x30c1a5[_0x84af('0x3c')][_0x84af('0x61')]?_0x30c1a5[_0x84af('0x3c')]:_0x5eff86[_0x84af('0x4b')];_0x30c1a5[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x339e32[_0x84af('0x3a')][_0x84af('0xba')]);_0x30c1a5['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x339e32[_0x84af('0x3a')],_0x5eff86[_0x84af('0x4f')]));if(_0x339e32[_0x84af('0x3a')][_0x84af('0x2b')]){_0x30c1a5[_0x84af('0x39')]=_['merge'](_0x30c1a5[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x30c1a5[_0x84af('0x3c')],function(_0x554943){var _0x30ab39={};_0x30ab39[_0x554943]={'$like':'%'+_0x339e32[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x30ab39;})});}_0x30c1a5=_[_0x84af('0x52')]({},_0x30c1a5,_0x339e32[_0x84af('0x53')]);return _0x2daad8[_0x84af('0x13e')](_0x30c1a5);}})[_0x84af('0xe')](function(_0x3142ad){if(_0x3142ad){_0x190552=_0x3142ad[_0x84af('0x61')];if(!_0x339e32[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x30c1a5[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x339e32['query'][_0x84af('0x1e')]);_0x30c1a5[_0x84af('0x1c')]=qs['offset'](_0x339e32[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x2daad8[_0x84af('0x13e')](_0x30c1a5);}})[_0x84af('0xe')](function(_0x355522){if(_0x355522){return _0x355522?{'count':_0x190552,'rows':_0x355522}:null;}})[_0x84af('0xe')](respondWithResult(_0x22f2d4,null))['catch'](handleError(_0x22f2d4,null));};exports[_0x84af('0x140')]=function(_0x201f14,_0x1c83a8){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x201f14[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1c83a8,null))[_0x84af('0xe')](function(_0x361336){if(_0x361336){return _0x361336['addChatWebsites'](_0x201f14[_0x84af('0x54')][_0x84af('0x57')],_['omit'](_0x201f14[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x1c83a8,null))[_0x84af('0x18')](handleError(_0x1c83a8,null));};exports['removeChatWebsites']=function(_0x38737c,_0x5a7bf3){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x38737c['params']['id']}})['then'](handleEntityNotFound(_0x5a7bf3,null))[_0x84af('0xe')](function(_0x4d4ad7){if(_0x4d4ad7){return _0x4d4ad7[_0x84af('0x141')](_0x38737c[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x5a7bf3,null))['catch'](handleError(_0x5a7bf3,null));};exports[_0x84af('0x142')]=function(_0x49af33,_0x4971c1){var _0x22c181={};var _0x972a3b={};var _0x1b9a4e;var _0x4eb5c4;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x49af33[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4971c1,null))[_0x84af('0xe')](function(_0x542429){if(_0x542429){_0x1b9a4e=_0x542429;_0x972a3b[_0x84af('0x4b')]=_['keys'](db[_0x84af('0x143')][_0x84af('0x4e')]);_0x972a3b[_0x84af('0x3a')]=_['keys'](_0x49af33[_0x84af('0x3a')]);_0x972a3b[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x972a3b[_0x84af('0x4b')],_0x972a3b[_0x84af('0x3a')]);_0x22c181[_0x84af('0x3c')]=_['intersection'](_0x972a3b[_0x84af('0x4b')],qs['fields'](_0x49af33['query'][_0x84af('0x51')]));_0x22c181[_0x84af('0x3c')]=_0x22c181[_0x84af('0x3c')][_0x84af('0x61')]?_0x22c181[_0x84af('0x3c')]:_0x972a3b[_0x84af('0x4b')];_0x22c181['order']=qs[_0x84af('0xba')](_0x49af33[_0x84af('0x3a')][_0x84af('0xba')]);_0x22c181[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x49af33[_0x84af('0x3a')],_0x972a3b[_0x84af('0x4f')]));if(_0x49af33['query'][_0x84af('0x2b')]){_0x22c181[_0x84af('0x39')]=_['merge'](_0x22c181[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x22c181[_0x84af('0x3c')],function(_0x132bf0){var _0x4840ab={};_0x4840ab[_0x132bf0]={'$like':'%'+_0x49af33[_0x84af('0x3a')]['filter']+'%'};return _0x4840ab;})});}_0x22c181=_[_0x84af('0x52')]({},_0x22c181,_0x49af33[_0x84af('0x53')]);return _0x1b9a4e[_0x84af('0x142')](_0x22c181);}})[_0x84af('0xe')](function(_0x516ff0){if(_0x516ff0){_0x4eb5c4=_0x516ff0[_0x84af('0x61')];if(!_0x49af33['query'][_0x84af('0xbd')](_0x84af('0xc3'))){_0x22c181[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x49af33['query'][_0x84af('0x1e')]);_0x22c181['offset']=qs['offset'](_0x49af33[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x1b9a4e[_0x84af('0x142')](_0x22c181);}})[_0x84af('0xe')](function(_0x304f27){if(_0x304f27){return _0x304f27?{'count':_0x4eb5c4,'rows':_0x304f27}:null;}})[_0x84af('0xe')](respondWithResult(_0x4971c1,null))['catch'](handleError(_0x4971c1,null));};exports[_0x84af('0x144')]=function(_0x360950,_0x2bcdfe){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x360950[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2bcdfe,null))[_0x84af('0xe')](function(_0x1c9250){if(_0x1c9250){return _0x1c9250[_0x84af('0x144')](_0x360950[_0x84af('0x54')]['ids'],_['omit'](_0x360950[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x2bcdfe,null))[_0x84af('0x18')](handleError(_0x2bcdfe,null));};exports['removeWhatsappAccounts']=function(_0x4acd25,_0x2b0c1e){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4acd25['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2b0c1e,null))['then'](function(_0x54d4e9){if(_0x54d4e9){return _0x54d4e9[_0x84af('0x145')](_0x4acd25[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x2b0c1e,null))['catch'](handleError(_0x2b0c1e,null));};exports['getSquareProjects']=function(_0x3e5ac9,_0x1472fe){var _0x347d7f={};var _0x41bfca={};var _0x56bba3;var _0x46af30;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3e5ac9[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1472fe,null))['then'](function(_0x1dc84a){if(_0x1dc84a){_0x56bba3=_0x1dc84a;_0x41bfca[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x146')][_0x84af('0x4e')]);_0x41bfca[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x3e5ac9['query']);_0x41bfca[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x41bfca[_0x84af('0x4b')],_0x41bfca[_0x84af('0x3a')]);_0x347d7f[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x41bfca[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x3e5ac9['query']['fields']));_0x347d7f[_0x84af('0x3c')]=_0x347d7f[_0x84af('0x3c')][_0x84af('0x61')]?_0x347d7f[_0x84af('0x3c')]:_0x41bfca['model'];_0x347d7f['order']=qs[_0x84af('0xba')](_0x3e5ac9[_0x84af('0x3a')][_0x84af('0xba')]);_0x347d7f['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3e5ac9[_0x84af('0x3a')],_0x41bfca[_0x84af('0x4f')]));if(_0x3e5ac9[_0x84af('0x3a')][_0x84af('0x2b')]){_0x347d7f[_0x84af('0x39')]=_[_0x84af('0x52')](_0x347d7f['where'],{'$or':_[_0x84af('0x2c')](_0x347d7f[_0x84af('0x3c')],function(_0x305808){var _0x6205ba={};_0x6205ba[_0x305808]={'$like':'%'+_0x3e5ac9['query']['filter']+'%'};return _0x6205ba;})});}_0x347d7f=_[_0x84af('0x52')]({},_0x347d7f,_0x3e5ac9[_0x84af('0x53')]);return _0x56bba3[_0x84af('0x147')](_0x347d7f);}})[_0x84af('0xe')](function(_0x2a0f75){if(_0x2a0f75){_0x46af30=_0x2a0f75[_0x84af('0x61')];if(!_0x3e5ac9[_0x84af('0x3a')]['hasOwnProperty'](_0x84af('0xc3'))){_0x347d7f['limit']=qs[_0x84af('0x1e')](_0x3e5ac9[_0x84af('0x3a')]['limit']);_0x347d7f[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3e5ac9[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x56bba3[_0x84af('0x147')](_0x347d7f);}})[_0x84af('0xe')](function(_0x4e1b57){if(_0x4e1b57){return _0x4e1b57?{'count':_0x46af30,'rows':_0x4e1b57}:null;}})[_0x84af('0xe')](respondWithResult(_0x1472fe,null))['catch'](handleError(_0x1472fe,null));};exports['addSquareProjects']=function(_0x5cd4e5,_0x215ecc){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x5cd4e5[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x215ecc,null))[_0x84af('0xe')](function(_0x413639){if(_0x413639){return _0x413639[_0x84af('0x148')](_0x5cd4e5[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x5cd4e5[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x215ecc,null))[_0x84af('0x18')](handleError(_0x215ecc,null));};exports[_0x84af('0x149')]=function(_0x37e4f9,_0x149031){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x37e4f9[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x149031,null))[_0x84af('0xe')](function(_0x3da599){if(_0x3da599){return _0x3da599[_0x84af('0x149')](_0x37e4f9[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x149031,null))[_0x84af('0x18')](handleError(_0x149031,null));};exports[_0x84af('0x14a')]=function(_0xcaff8a,_0xdd2738){var _0x4e2c85={},_0x106cd6={},_0x4f073a={'count':0x0,'rows':[]};var _0x21438d=db[_0x84af('0x14b')]['rawAttributes'];_0x106cd6[_0x84af('0x4b')]=_['keys'](_0x21438d);_0x106cd6[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0xcaff8a[_0x84af('0x3a')]);_0x106cd6['filters']=_[_0x84af('0x50')](_0x106cd6[_0x84af('0x4b')],_0x106cd6['query']);_0x106cd6['filters']=_[_0x84af('0x14c')](_0x106cd6[_0x84af('0x4f')],['$and',_0x84af('0x14d'),_0x84af('0x14e'),_0x84af('0x14f'),'$lt',_0x84af('0x150'),_0x84af('0x151'),'$eq',_0x84af('0x152'),_0x84af('0x153'),_0x84af('0x154'),_0x84af('0x155'),_0x84af('0x156'),_0x84af('0x157'),_0x84af('0x158'),'$iLike',_0x84af('0x159'),_0x84af('0x157'),'$overlap',_0x84af('0x15a'),'$contained','$any']);_0x4e2c85[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x106cd6[_0x84af('0x4b')],qs[_0x84af('0x51')](_0xcaff8a['query']['fields']));_0x4e2c85[_0x84af('0x3c')]=_0x4e2c85[_0x84af('0x3c')][_0x84af('0x61')]?_0x4e2c85['attributes']:_0x106cd6['model'];if(!_0xcaff8a['query'][_0x84af('0xbd')](_0x84af('0xc3'))){_0x4e2c85[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0xcaff8a[_0x84af('0x3a')]['limit']);_0x4e2c85[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0xcaff8a[_0x84af('0x3a')][_0x84af('0x1c')]);}_0x4e2c85[_0x84af('0xc6')]=qs['sort'](_0xcaff8a['query'][_0x84af('0xba')]);_0x4e2c85[_0x84af('0x39')]=qs['filters'](_['pick'](_0xcaff8a[_0x84af('0x3a')],_0x106cd6[_0x84af('0x4f')]));if(_0xcaff8a[_0x84af('0x3a')][_0x84af('0x2b')]){_0x4e2c85[_0x84af('0x39')]=_[_0x84af('0x52')](_0x4e2c85[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x4e2c85[_0x84af('0x3c')],function(_0x36e888){var _0x485046={};_0x485046[_0x36e888]={'$like':'%'+_0xcaff8a[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x485046;})});}_0x4e2c85[_0x84af('0x39')]={'$and':[_0x4e2c85[_0x84af('0x39')],{'$or':[{'UserId':_0xcaff8a[_0x84af('0x4a')]['id']},{'OwnerId':_0xcaff8a[_0x84af('0x4a')]['id']}]}]};_0x4e2c85=_[_0x84af('0x52')]({},_0x4e2c85,_0xcaff8a[_0x84af('0x53')]);var _0x118e68={'where':_0x4e2c85[_0x84af('0x39')]};return db[_0x84af('0x14b')]['count'](_0x118e68)['then'](function(_0x3e5451){_0x4f073a[_0x84af('0x1f')]=_0x3e5451;if(_0xcaff8a[_0x84af('0x3a')]['includeAll']){_0x4e2c85[_0x84af('0x3b')]=[{'attributes':['id',_0x84af('0x15b'),_0x84af('0x15c'),'phone'],'model':db['CmContact'],'as':_0x84af('0x15d')},{'attributes':['id',_0x84af('0x30'),'dialActive'],'model':db[_0x84af('0x15e')],'as':_0x84af('0xc5')}];}return db[_0x84af('0x14b')][_0x84af('0x3e')](_0x4e2c85);})['then'](function(_0x12e7fd){_0x4f073a[_0x84af('0x3f')]=_0x12e7fd;return _0x4f073a;})[_0x84af('0xe')](respondWithFilteredResult(_0xdd2738,_0x4e2c85))[_0x84af('0x18')](handleError(_0xdd2738,null));};exports[_0x84af('0x15f')]=function(_0x5ba985,_0x2d7376){if(!_[_0x84af('0x5d')](_0x5ba985[_0x84af('0x28')]['id'])&&(_0x5ba985[_0x84af('0x28')]['role']==_0x84af('0x26')||_0x5ba985[_0x84af('0x28')]['role']==_0x84af('0x28'))){return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x5ba985[_0x84af('0x4a')]['id']},'raw':!![]})['then'](function(_0x581e18){return authService[_0x84af('0x160')](_0x581e18);})[_0x84af('0xe')](function(_0x587ae2){if(_0x587ae2){return _0x2d7376[_0x84af('0x20')](0xc8)['json']({'api_key':_0x587ae2[_0x84af('0x161')]});}else{return _0x2d7376[_0x84af('0x20')](0xcc)[_0x84af('0x1b')]({'message':_0x84af('0x162')});}})[_0x84af('0x18')](handleError(_0x2d7376,0x193));}else{return _0x2d7376[_0x84af('0x20')](0x191)[_0x84af('0x1b')]({'message':_0x84af('0x163')});}};exports['createApiKey']=function(_0x6b77a3,_0x5b5b07){if(!_[_0x84af('0x5d')](_0x6b77a3[_0x84af('0x28')]['id'])&&(_0x6b77a3[_0x84af('0x28')][_0x84af('0x25')]==_0x84af('0x26')||_0x6b77a3[_0x84af('0x28')][_0x84af('0x25')]==_0x84af('0x28'))){return db[_0x84af('0x34')]['find']({'where':{'id':_0x6b77a3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](function(_0x5fb0c1){return authService[_0x84af('0x164')](_0x5fb0c1);})[_0x84af('0xe')](function(_0x3ba296){return db[_0x84af('0x34')][_0x84af('0x22')]({'apiKeyIat':_0x3ba296[_0x84af('0x165')],'apiKeyNonce':_0x3ba296[_0x84af('0x166')]},{'where':{'id':_0x6b77a3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](function(){return _0x5b5b07['status'](0xc8)['json']({'api_key':_0x3ba296['token']});});})[_0x84af('0x18')](handleError(_0x5b5b07,0x193));}else{return _0x5b5b07[_0x84af('0x20')](0x191)[_0x84af('0x1b')]({'message':_0x84af('0x163')});}};exports['removeApiKey']=function(_0x382709,_0x49bcb6){if(!_[_0x84af('0x5d')](_0x382709[_0x84af('0x28')]['id'])&&(_0x382709[_0x84af('0x28')][_0x84af('0x25')]==_0x84af('0x26')||_0x382709[_0x84af('0x28')][_0x84af('0x25')]=='user')){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x382709[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x49bcb6,null))['then'](function(_0x266f3c){if(_0x266f3c&&_0x266f3c['apiKeyNonce']&&_0x266f3c[_0x84af('0x167')])return _0x266f3c;else throw{'message':_0x84af('0x168')};})[_0x84af('0xe')](function(_0x30ee5c){return db[_0x84af('0x34')][_0x84af('0x22')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x382709['params']['id']}});})[_0x84af('0xe')](respondWithStatusCode(_0x49bcb6,0xc8))[_0x84af('0x18')](handleError(_0x49bcb6,0x193));}else{return _0x49bcb6[_0x84af('0x20')](0x191)['json']({'message':_0x84af('0x163')});}};exports[_0x84af('0x169')]=function(_0x5a6e6f,_0x5573d3){var _0x415579=_0x5a6e6f[_0x84af('0x28')][_0x84af('0x24')]({'plain':!![]});if(!_0x415579){return _0x5573d3['status'](0x191)[_0x84af('0x32')](_0x84af('0x16a'));}else{return _0x5573d3['status'](0xc8)[_0x84af('0x1b')](_0x415579);}};exports['getPresence']=function(_0x540700,_0x3c60a2){var _0x28a8ba={'offset':0x0},_0x1edce1={'count':0x0,'rows':[]};Promise['resolve']()[_0x84af('0xe')](function(){if(!_0x540700['query']['filter']&&!_0x540700[_0x84af('0x3a')]['teams']&&!_0x540700[_0x84af('0x3a')][_0x84af('0x16b')])return[];return Promise[_0x84af('0xf0')]()[_0x84af('0xe')](function(){var _0x3ab58d=[];if(!_[_0x84af('0x7f')](_0x540700[_0x84af('0x3a')][_0x84af('0x16c')])){_0x3ab58d[_0x84af('0x3d')](db[_0x84af('0x103')]['findAll']({'attributes':['id',_0x84af('0x30')],'where':{'id':_0x540700['query'][_0x84af('0x16c')]}}));}if(!_[_0x84af('0x7f')](_0x540700['query'][_0x84af('0x16b')])){_0x3ab58d[_0x84af('0x3d')](db[_0x84af('0x15e')]['findAll']({'attributes':['id',_0x84af('0x30')],'type':'inbound','where':{'id':_0x540700[_0x84af('0x3a')][_0x84af('0x16b')]}}));}return Promise['all'](_0x3ab58d);})[_0x84af('0xe')](function(_0x3c202e){var _0xa2b3be=_[_0x84af('0x115')](_0x3c202e)[_0x84af('0x2c')](function(_0x441696){return _0x441696[_0x84af('0x118')]({'attributes':['id','name',_0x84af('0x5c'),_0x84af('0x92')],'raw':!![]});});return Promise[_0x84af('0x48')](_0xa2b3be);})[_0x84af('0xe')](function(_0xdf733){var _0x12d7f7=_[_0x84af('0x115')](_0xdf733);if(!_0x540700[_0x84af('0x3a')][_0x84af('0x2b')])return _0x12d7f7;if(_[_0x84af('0x7f')](_0x12d7f7)){return db['User']['findAll']({'attributes':['id',_0x84af('0x30'),'internal',_0x84af('0x92')],'where':{'role':_0x84af('0x29'),'$or':[db[_0x84af('0x5f')][_0x84af('0x39')](db[_0x84af('0x5f')]['fn'](_0x84af('0x16d'),db['sequelize']['col'](_0x84af('0x30'))),{'$like':'%'+_0x540700[_0x84af('0x3a')][_0x84af('0x2b')][_0x84af('0x99')]()+'%'}),{'internal':{'$like':'%'+_0x540700[_0x84af('0x3a')]['filter']+'%'}}]},'raw':!![]});}else{return _(_0x12d7f7)[_0x84af('0x115')]()[_0x84af('0x2b')](function(_0x21660b){return _0x21660b[_0x84af('0x30')][_0x84af('0x99')]()[_0x84af('0x2e')](_0x540700[_0x84af('0x3a')]['filter']['toLowerCase']())||_0x21660b[_0x84af('0x5c')][_0x84af('0x16e')]()[_0x84af('0x2e')](_0x540700[_0x84af('0x3a')]['filter']);})['value']();}})[_0x84af('0xe')](function(_0x383e72){var _0x169eb0='name';var _0x4776c4='asc';if(_0x540700[_0x84af('0x3a')][_0x84af('0xba')]){var _0x4776c4=_0x540700['query']['sort'][0x0]==='-'?'desc':_0x84af('0x16f');var _0x169eb0=_0x4776c4===_0x84af('0x16f')?_0x540700[_0x84af('0x3a')][_0x84af('0xba')]:_0x540700[_0x84af('0x3a')][_0x84af('0xba')][_0x84af('0x170')](0x1);}return _(_0x383e72)[_0x84af('0x171')]('id')[_0x84af('0x172')]([function(_0xe8c4eb){return _0x169eb0==='name'?_0xe8c4eb[_0x169eb0]['toLowerCase']():_0xe8c4eb[_0x169eb0];}],[_0x4776c4])['map'](function(_0x3d91c6){return _[_0x84af('0xbb')](_0x3d91c6,['id',_0x84af('0x30'),_0x84af('0x5c'),_0x84af('0x92')]);})[_0x84af('0x2d')]();})['then'](function(_0x31abd2){return client[_0x84af('0x173')](_0x84af('0x7a'),_0x540700)[_0x84af('0xe')](function(_0x92ccad){if(_0x92ccad['error'])throw new Error(_0x84af('0x174'));var _0x5bb4f2=_0x92ccad[_0x84af('0x17')];var _0x2e6c48=jayson['client'][_0x84af('0xd')]({'port':0x232c});return _0x2e6c48[_0x84af('0x173')](_0x84af('0x7a'),_0x540700)[_0x84af('0xe')](function(_0x3260d1){if(_0x3260d1[_0x84af('0x14')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x5d9029=_0x3260d1[_0x84af('0x17')];return _[_0x84af('0x52')]({},_0x5d9029,_0x5bb4f2);});})[_0x84af('0xe')](function(_0x3e5547){return _['map'](_0x31abd2,function(_0x475852){var _0x46965f=_[_0x84af('0x2f')](_0x3e5547[_0x84af('0x3f')],['id',_0x475852['id']]);if(!_0x46965f||!_0x475852['online']){_0x475852[_0x84af('0x20')]=_0x84af('0x175');}else if(_0x46965f['voicePause']){_0x475852[_0x84af('0x20')]=_0x84af('0xf2');}else{_0x475852['status']=_[_0x84af('0x2e')]([_0x84af('0x176'),'unknown',_0x84af('0x177'),_0x84af('0x178'),null,undefined],_0x46965f[_0x84af('0x179')])?'online':'busy';}return _0x475852;});});});})['then'](function(_0x56742a){if(!_0x540700[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x28a8ba[_0x84af('0x1e')]=qs['limit'](_0x540700['query'][_0x84af('0x1e')]||0xa);_0x28a8ba[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x540700['query'][_0x84af('0x1c')]);}_0x1edce1[_0x84af('0x1f')]=_0x56742a[_0x84af('0x61')];_0x1edce1['rows']=_0x28a8ba[_0x84af('0x1e')]?_0x56742a[_0x84af('0x17a')](_0x28a8ba['offset'],_0x28a8ba[_0x84af('0x1c')]+_0x28a8ba[_0x84af('0x1e')]):_0x56742a;return _0x1edce1;})['then'](respondWithFilteredResult(_0x3c60a2,_0x28a8ba))[_0x84af('0x18')](handleError(_0x3c60a2,null));};function get_open_tabs(_0x3c12d1,_0x5f5063){var _0x4659d0=_0x3c12d1[_0x84af('0x17b')](0x0)[_0x84af('0x17c')]()+_0x3c12d1[_0x84af('0x17a')](0x1);var _0x23a45f={'type':db['Sequelize']['QueryTypes'][_0x84af('0x60')],'raw':!![]};return new BPromise(function(_0x22b7f9,_0x397170){var _0x28a5ab=squel['select']()[_0x84af('0x17d')](_0x84af('0x17e')+_0x4659d0+_0x84af('0x17f'),'id')['field'](_0x84af('0x180'))['from'](_0x84af('0x181')+_0x3c12d1+'_interactions','ui')[_0x84af('0x39')]('ui.UserId\x20=\x20?',_0x5f5063['id']);return db[_0x84af('0x5f')]['query'](_0x28a5ab[_0x84af('0x16e')](),_0x23a45f)[_0x84af('0xe')](function(_0x48564e){_0x5f5063[_0x4659d0+_0x84af('0x182')]=_0x48564e;_0x22b7f9(_0x48564e);})[_0x84af('0x18')](function(_0x179721){_0x397170(_0x179721);});});};
\ No newline at end of file
+var _0x2ef3=['OpenchannelInteraction','getMailInteractions','MailInteraction','getSmsInteractions','SmsInteraction','getFaxInteractions','FaxInteraction','getWhatsappInteractions','phone','mobile','format','LOCAL/%s@from-sip/n','intrf','user:%s','headers','x-forwarded-for','connection','remoteAddress','socket','User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method','getVoiceQueues','UserVoiceQueue.penalty','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','device','LOGININPAUSE','concat','isMiddleware','resolve','pause','QueuePause','PAUSE','updateAttributes','getChannels','DEFAULT\x20PAUSE','mailPause','chatPause','faxPause','pauseType','lastPauseAt','unpause','manual','%s%s','Pause','getTeams','Team','addTeams','setDataValue','getChatQueues','Chat','Mail','getSmsQueues','Sms','Whatsapp','Fax','Openchannel','flatten','transaction','addAgent','getDataValue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','removeTeams','getMailQueues','getWhatsappQueues','getOpenchannelQueues','Voice','getLists','getAgents','values','You\x20can\x27t\x20delete\x20yourself','user_has_chat_interactions:save','removeChatInteractions','isArray','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','user_has_openchannel_interactions:save','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','VoicePrefix','getVoicePrefixes','FaxAccount','getFaxAccounts','addFaxAccounts','removeFaxAccounts','getMailAccounts','addMailAccounts','OpenchannelAccount','getOpenchannelAccounts','addOpenchannelAccounts','removeOpenchannelAccounts','SmsAccount','getSmsAccounts','addSmsAccounts','removeSmsAccounts','getChatWebsites','addChatWebsites','removeChatWebsites','getWhatsappAccounts','WhatsappAccount','addWhatsappAccounts','removeWhatsappAccounts','SquareProject','getSquareProjects','addSquareProjects','removeSquareProjects','getScheduledCalls','$or','$gt','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$in','$like','$notLike','$iLike','$notILike','$contains','$contained','$any','CmHopper','firstName','lastName','Contact','VoiceQueue','getApiKey','No\x20API\x20access\x20key\x20found!','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','createApiKey','generateApiKey','token','removeApiKey','apiKeyNonce','apiKeyIat','API\x20key\x20not\x20available','Unable\x20to\x20retrieve\x20the\x20current\x20user','getPresence','teams','queues','inbound','lower','col','asc','desc','substring','uniqBy','orderBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','http','idle','unavailable','voiceStatus','busy','slice','toUpperCase','QueryTypes','select','field','ui.','InteractionId','ui.createdAt','_interactions','ui.UserId\x20=\x20?','toString','moment','bluebird','util','path','lodash','squel','ioredis','../../components/auth/service','../../config/logger','api','../../config/license/util','../../mysqldb','socket.io-emitter','redis','./user.socket','register','defaults','localhost','request','info','debug','request\x20sent','stringify','error','message','User,\x20%s,\x20%s','result','catch','sendStatus','end','json','offset','undefined','count','limit','status','set','update','then','destroy','get','role','admin','user','agent','Telephones','filter','ignore','map','value','find','name','UserProfileResource','send','index','rawAttributes','type','key','includes','password','salt','getOptions','where','query','includeAll','include','attributes','push','User','findAll','rows','openTabs','length','chat','dataValues','sms','fax','mail','openchannel','all','show','params','differenceBy','keys','filters','intersection','model','fields','merge','options','true','whatsapp','body','addContacts','omit','internal','Setting','securePassword','validatePasswordPattern','max','isNil','min_internal','sequelize','SELECT','from','VoiceMail','email','permissions','102','103','104','106','108','109','100','Unauthorized','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','checkUserLimits','settingsEnabled','userProfileId','UserProfileSection','Agents','create','bulkCreate','some','each','telephone','isEmpty','autoAssociation','compact','oldPassword','newPassword','ValidationError','authenticate','Sequelize','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','enforcePasswordHistory','previousPasswords','validatePasswordHistory','passwordHistoryLimit','updatePasswordsHistory','addQueues','channel','online','loginInPause','voicePause','interface','isValidChannel','add','capitalize','toLowerCase','penalty','spread','ids','QueueId','emit','voice','SIP/%s','upsert','Unknown\x20channel','remove','Queue:remove','UserVoiceQueueRt','userpic','filename','root','server/files/images/logos/default_profile.png','download','existsSync','join','getOpenTabs','ChatOpenTabs','CHAT','FaxOpenTabs','FAX','createdAt','MailOpenTabs','MAIL','SmsOpenTabs','SMS','WhatsappOpenTabs','WHATSAPP','getContacts','findOne','order','pick','hasOwnProperty','CmList','List','Tag','Tags','color','nolimit','Queue','Unknown\x20role','Queues','getVoiceQueuesRt','sort','getGroups','ChatGroup','getRecordings','UserId','VoiceRecording','getScreenRecordings','ScreenRecording','ChatInteraction','getChatInteractions','getOpenchannelInteractions'];(function(_0x33ad1f,_0xfc2fc8){var _0x26ef22=function(_0x58f97c){while(--_0x58f97c){_0x33ad1f['push'](_0x33ad1f['shift']());}};_0x26ef22(++_0xfc2fc8);}(_0x2ef3,0xba));var _0x32ef=function(_0x40a9f9,_0x55c206){_0x40a9f9=_0x40a9f9-0x0;var _0x19aede=_0x2ef3[_0x40a9f9];return _0x19aede;};'use strict';var moment=require(_0x32ef('0x0'));var BPromise=require(_0x32ef('0x1'));var util=require(_0x32ef('0x2'));var path=require(_0x32ef('0x3'));var fs=require('fs');var _=require(_0x32ef('0x4'));var squel=require(_0x32ef('0x5'));var jayson=require('jayson/promise');var Redis=require(_0x32ef('0x6'));var authService=require(_0x32ef('0x7'));var qs=require('../../components/parsers/qs');var logger=require(_0x32ef('0x8'))(_0x32ef('0x9'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x32ef('0xa'));var db=require(_0x32ef('0xb'))['db'];var socket=require(_0x32ef('0xc'))(new Redis(config[_0x32ef('0xd')]));require(_0x32ef('0xe'))[_0x32ef('0xf')](socket);config[_0x32ef('0xd')]=_[_0x32ef('0x10')](config[_0x32ef('0xd')],{'host':_0x32ef('0x11'),'port':0x18eb});var client=jayson['client']['http']({'port':0x232a});var values;function respondWithRpcPromise(_0x401d0b,_0x33281d,_0x45bfd5,_0x1499c2){return new BPromise(function(_0x5af651,_0x193714){var _0x5afcc2=_0x1499c2||client;return _0x5afcc2[_0x32ef('0x12')](_0x401d0b,_0x45bfd5)['then'](function(_0x3e98df){logger[_0x32ef('0x13')]('User,\x20%s,\x20%s',_0x33281d,'request\x20sent');logger[_0x32ef('0x14')]('User,\x20%s,\x20%s,\x20%s',_0x33281d,_0x32ef('0x15'),JSON[_0x32ef('0x16')](_0x3e98df));if(_0x3e98df[_0x32ef('0x17')]){if(_0x3e98df[_0x32ef('0x17')]['code']===0x1f4){logger['error']('User,\x20%s,\x20%s',_0x33281d,_0x3e98df[_0x32ef('0x17')][_0x32ef('0x18')]);return _0x193714(_0x3e98df[_0x32ef('0x17')]['message']);}logger['error'](_0x32ef('0x19'),_0x33281d,_0x3e98df[_0x32ef('0x17')][_0x32ef('0x18')]);return _0x5af651(_0x3e98df['error'][_0x32ef('0x18')]);}else{logger[_0x32ef('0x13')]('User,\x20%s,\x20%s',_0x33281d,_0x32ef('0x15'));_0x5af651(_0x3e98df[_0x32ef('0x1a')][_0x32ef('0x18')]);}})[_0x32ef('0x1b')](function(_0x445cda){logger[_0x32ef('0x17')]('User,\x20%s,\x20%s',_0x33281d,_0x445cda);_0x193714(_0x445cda);});});}function respondWithStatusCode(_0x3c5b78,_0x5cc3ef){_0x5cc3ef=_0x5cc3ef||0xcc;return function(_0x309866){if(_0x309866){return _0x3c5b78[_0x32ef('0x1c')](_0x5cc3ef);}return _0x3c5b78['status'](_0x5cc3ef)[_0x32ef('0x1d')]();};}function respondWithResult(_0x97780,_0x5e8898){_0x5e8898=_0x5e8898||0xc8;return function(_0x55f7f2){if(_0x55f7f2){return _0x97780['status'](_0x5e8898)[_0x32ef('0x1e')](_0x55f7f2);}};}function respondWithFilteredResult(_0xb30fab,_0x225feb){return function(_0x478bef){if(_0x478bef){var _0x59585f=typeof _0x225feb[_0x32ef('0x1f')]==='undefined'&&typeof _0x225feb['limit']===_0x32ef('0x20');var _0x14d4b3=_0x478bef[_0x32ef('0x21')];var _0x1dbe98=_0x59585f?0x0:_0x225feb[_0x32ef('0x1f')];var _0x234175=_0x59585f?_0x478bef[_0x32ef('0x21')]:_0x225feb[_0x32ef('0x1f')]+_0x225feb[_0x32ef('0x22')];var _0x2f52d7;if(_0x234175>=_0x14d4b3){_0x234175=_0x14d4b3;_0x2f52d7=0xc8;}else{_0x2f52d7=0xce;}_0xb30fab[_0x32ef('0x23')](_0x2f52d7);return _0xb30fab[_0x32ef('0x24')]('Content-Range',_0x1dbe98+'-'+_0x234175+'/'+_0x14d4b3)[_0x32ef('0x1e')](_0x478bef);}return null;};}function saveUpdates(_0x2f5d06){return function(_0x5a04cd){if(_0x5a04cd){return _0x5a04cd[_0x32ef('0x25')](_0x2f5d06)[_0x32ef('0x26')](function(_0x30b250){return _0x30b250;});}return null;};}function removeEntity(_0x26e207){return function(_0x50a95b){if(_0x50a95b){return _0x50a95b[_0x32ef('0x27')]()[_0x32ef('0x26')](function(){var _0x31dbc3=_0x50a95b[_0x32ef('0x28')]({'plain':!![]});if(_0x31dbc3[_0x32ef('0x29')]===_0x32ef('0x2a'))return;var _0x1a122d=[{'name':'Users','value':_0x32ef('0x2b'),'ignore':!![]},{'name':'Agents','value':_0x32ef('0x2c'),'ignore':![]},{'name':_0x32ef('0x2d'),'value':'telephone','ignore':![]}];var _0xcc2efb=_(_0x1a122d)[_0x32ef('0x2e')](_0x32ef('0x2f'))[_0x32ef('0x30')](_0x32ef('0x31'))['value']();if(_['includes'](_0xcc2efb,_0x31dbc3[_0x32ef('0x29')])){return;}var _0x5dadf7=_[_0x32ef('0x32')](_0x1a122d,[_0x32ef('0x31'),_0x31dbc3[_0x32ef('0x29')]])[_0x32ef('0x33')];return db[_0x32ef('0x34')][_0x32ef('0x27')]({'where':{'type':_0x5dadf7,'resourceId':_0x31dbc3['id']}})['then'](function(){return _0x50a95b;});})['then'](function(){_0x26e207['status'](0xcc)[_0x32ef('0x1d')]();});}};}function handleEntityNotFound(_0x3c4651){return function(_0x136b02){if(!_0x136b02){_0x3c4651['sendStatus'](0x194);}return _0x136b02;};}function handleError(_0x4fb402,_0x1c3633){_0x1c3633=_0x1c3633||0x1f4;return function(_0x2bd8a9){logger[_0x32ef('0x17')](_0x2bd8a9['stack']);if(_0x2bd8a9['name']){delete _0x2bd8a9[_0x32ef('0x33')];}_0x4fb402[_0x32ef('0x23')](_0x1c3633)[_0x32ef('0x35')](_0x2bd8a9);};}exports[_0x32ef('0x36')]=function(_0x3a7c49,_0x211c79){var _0x3223d5={},_0x21da90={'count':0x0,'rows':[]};var _0x7f2319=_(db['User'][_0x32ef('0x37')])[_0x32ef('0x30')](function(_0x14b54f){return{'name':_0x14b54f['fieldName'],'type':_0x14b54f[_0x32ef('0x38')][_0x32ef('0x39')]};})[_0x32ef('0x2e')](function(_0x393a89){return!_[_0x32ef('0x3a')]([_0x32ef('0x3b'),_0x32ef('0x3c')],_0x393a89[_0x32ef('0x33')]);})[_0x32ef('0x31')]();_0x3223d5=qs[_0x32ef('0x3d')](_0x7f2319,_0x3a7c49);var _0xb4db74={'where':_0x3223d5[_0x32ef('0x3e')]};return db['User'][_0x32ef('0x21')](_0xb4db74)[_0x32ef('0x26')](function(_0x26a40f){_0x21da90[_0x32ef('0x21')]=_0x26a40f;if(_0x3a7c49[_0x32ef('0x3f')][_0x32ef('0x40')]){_0x3223d5[_0x32ef('0x41')]=[{'all':!![]}];}if(!_['includes'](_0x3223d5['attributes'],'id')){_0x3223d5[_0x32ef('0x42')][_0x32ef('0x43')]('id');}return db[_0x32ef('0x44')][_0x32ef('0x45')](_0x3223d5);})['then'](function(_0x2901a1){_0x21da90[_0x32ef('0x46')]=_0x2901a1;if(_0x3a7c49['query'][_0x32ef('0x47')]==='true'){var _0xcb3c08=[];for(var _0x100ec7=0x0;_0x100ec7<_0x21da90[_0x32ef('0x46')][_0x32ef('0x48')];_0x100ec7++){_0xcb3c08[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x49'),_0x21da90[_0x32ef('0x46')][_0x100ec7][_0x32ef('0x4a')]));_0xcb3c08[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x4b'),_0x21da90['rows'][_0x100ec7][_0x32ef('0x4a')]));_0xcb3c08['push'](get_open_tabs(_0x32ef('0x4c'),_0x21da90[_0x32ef('0x46')][_0x100ec7][_0x32ef('0x4a')]));_0xcb3c08['push'](get_open_tabs(_0x32ef('0x4d'),_0x21da90[_0x32ef('0x46')][_0x100ec7][_0x32ef('0x4a')]));_0xcb3c08[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x4e'),_0x21da90[_0x32ef('0x46')][_0x100ec7][_0x32ef('0x4a')]));_0xcb3c08['push'](get_open_tabs('whatsapp',_0x21da90[_0x32ef('0x46')][_0x100ec7][_0x32ef('0x4a')]));}return BPromise[_0x32ef('0x4f')](_0xcb3c08)[_0x32ef('0x26')](function(_0x209361){return _0x21da90;});}else{return _0x21da90;}})[_0x32ef('0x26')](respondWithFilteredResult(_0x211c79,_0x3223d5))[_0x32ef('0x1b')](handleError(_0x211c79,null));};exports[_0x32ef('0x50')]=function(_0xc10e7,_0x1ebedf){var _0x35a294={'raw':![],'where':{'id':_0xc10e7[_0x32ef('0x51')]['id']}},_0x30ad49={};_0x30ad49['model']=_[_0x32ef('0x52')](_[_0x32ef('0x53')](db[_0x32ef('0x44')][_0x32ef('0x37')]),[_0x32ef('0x3b'),_0x32ef('0x3c')]);_0x30ad49[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0xc10e7[_0x32ef('0x3f')]);_0x30ad49[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x30ad49[_0x32ef('0x56')],_0x30ad49[_0x32ef('0x3f')]);_0x35a294[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x30ad49[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0xc10e7[_0x32ef('0x3f')]['fields']));_0x35a294['attributes']=_0x35a294[_0x32ef('0x42')][_0x32ef('0x48')]?_0x35a294[_0x32ef('0x42')]:_0x30ad49[_0x32ef('0x56')];if(_0xc10e7[_0x32ef('0x3f')][_0x32ef('0x40')]){_0x35a294[_0x32ef('0x41')]=[{'all':!![]}];}_0x35a294=_[_0x32ef('0x58')]({},_0x35a294,_0xc10e7[_0x32ef('0x59')]);if(!_[_0x32ef('0x3a')](_0x35a294[_0x32ef('0x42')],'id')){_0x35a294['attributes'][_0x32ef('0x43')]('id');}return db[_0x32ef('0x44')][_0x32ef('0x32')](_0x35a294)[_0x32ef('0x26')](handleEntityNotFound(_0x1ebedf,null))[_0x32ef('0x26')](function(_0x387cf0){var _0x52c588=[];values=_0x387cf0;if(_0xc10e7[_0x32ef('0x3f')][_0x32ef('0x47')]===_0x32ef('0x5a')){_0x52c588['push'](get_open_tabs(_0x32ef('0x49'),_0x387cf0['dataValues']));_0x52c588[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x4b'),_0x387cf0['dataValues']));_0x52c588[_0x32ef('0x43')](get_open_tabs('openchannel',_0x387cf0[_0x32ef('0x4a')]));_0x52c588[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x5b'),_0x387cf0[_0x32ef('0x4a')]));_0x52c588[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x4c'),_0x387cf0[_0x32ef('0x4a')]));_0x52c588['push'](get_open_tabs('mail',_0x387cf0[_0x32ef('0x4a')]));return BPromise['all'](_0x52c588);}else{return values;}})['then'](function(_0xb519e9){return values;})[_0x32ef('0x26')](respondWithResult(_0x1ebedf,null))[_0x32ef('0x1b')](handleError(_0x1ebedf,null));};exports[_0x32ef('0x25')]=function(_0x2468e6,_0x356704){if(_0x2468e6[_0x32ef('0x5c')]['id']){delete _0x2468e6[_0x32ef('0x5c')]['id'];}delete _0x2468e6[_0x32ef('0x5c')][_0x32ef('0x29')];return db['User']['find']({'where':{'id':_0x2468e6[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x356704,null))['then'](saveUpdates(_0x2468e6[_0x32ef('0x5c')],null))[_0x32ef('0x26')](respondWithResult(_0x356704,null))[_0x32ef('0x1b')](handleError(_0x356704,null));};exports['describe']=function(_0x2ac877,_0x3c31d0){return db[_0x32ef('0x44')]['describe']()['then'](respondWithResult(_0x3c31d0,null))[_0x32ef('0x1b')](handleError(_0x3c31d0,null));};exports['addContacts']=function(_0x17f447,_0x5bb114){return db['User'][_0x32ef('0x32')]({'where':{'id':_0x17f447[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x5bb114,null))['then'](function(_0x9c89a2){if(_0x9c89a2){return _0x9c89a2[_0x32ef('0x5d')](_0x17f447[_0x32ef('0x5c')]['ids'],_[_0x32ef('0x5e')](_0x17f447[_0x32ef('0x5c')],['ids','id'])||{});}})['then'](respondWithResult(_0x5bb114,null))[_0x32ef('0x1b')](handleError(_0x5bb114,null));};function validateUser(_0x3a6697){return new BPromise(function(_0x2518a0,_0x339625){if(_0x3a6697[_0x32ef('0x5f')])return _0x2518a0(_0x3a6697);return db[_0x32ef('0x60')]['findById'](0x1)[_0x32ef('0x26')](function(_0x63b65){if(_0x63b65[_0x32ef('0x61')])authService[_0x32ef('0x62')](_0x3a6697[_0x32ef('0x3b')]);db[_0x32ef('0x44')][_0x32ef('0x63')](_0x32ef('0x5f'))[_0x32ef('0x26')](function(_0x4fa4df){if(_[_0x32ef('0x64')](_0x4fa4df)){_0x3a6697[_0x32ef('0x5f')]=_0x63b65[_0x32ef('0x65')]||0x1;return;}if(_[_0x32ef('0x64')](_0x63b65[_0x32ef('0x65')])||_0x63b65['min_internal']===_0x4fa4df){_0x3a6697['internal']=_0x4fa4df+0x1;return;}if(_0x63b65[_0x32ef('0x65')]>_0x4fa4df){_0x3a6697[_0x32ef('0x5f')]=_0x63b65[_0x32ef('0x65')];return;}return db[_0x32ef('0x66')][_0x32ef('0x3f')]('select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)',{'type':db[_0x32ef('0x66')]['QueryTypes'][_0x32ef('0x67')]})[_0x32ef('0x26')](function(_0x48b6f4){if(_0x48b6f4&&_0x48b6f4['length']){for(var _0x2c9f7a=0x0,_0x1538d0=_0x48b6f4[_0x32ef('0x48')];_0x2c9f7a<_0x1538d0&&_['isNil'](_0x3a6697['internal']);_0x2c9f7a++){if(_0x63b65[_0x32ef('0x65')]<=_0x48b6f4[_0x2c9f7a][_0x32ef('0x68')]){_0x3a6697[_0x32ef('0x5f')]=_0x48b6f4[_0x2c9f7a][_0x32ef('0x68')];}else if(_0x63b65['min_internal']>_0x48b6f4[_0x2c9f7a][_0x32ef('0x68')]&&_0x63b65[_0x32ef('0x65')]<=_0x48b6f4[_0x2c9f7a]['to']){_0x3a6697[_0x32ef('0x5f')]=_0x63b65[_0x32ef('0x65')];}}}if(_[_0x32ef('0x64')](_0x3a6697[_0x32ef('0x5f')])){_0x3a6697[_0x32ef('0x5f')]=_0x4fa4df+0x1;}return _0x2518a0(_0x3a6697);});});})[_0x32ef('0x1b')](function(_0x3cdfe6){_0x339625(_0x3cdfe6);});});}function updateUser(_0x1d0448){return new BPromise(function(_0x132d9f,_0x3978cb){try{if(_0x1d0448['voicemail']){_0x1d0448['mailbox']=_0x1d0448[_0x32ef('0x5f')];_0x1d0448[_0x32ef('0x69')]={'mailbox':_0x1d0448['internal'],'password':_0x1d0448[_0x32ef('0x3b')],'fullname':_0x1d0448['fullname'],'email':_0x1d0448[_0x32ef('0x6a')]};}if(_0x1d0448[_0x32ef('0x29')]===_0x32ef('0x2c')){if(!_0x1d0448['permissions'])_0x1d0448[_0x32ef('0x6b')]=['101',_0x32ef('0x6c'),_0x32ef('0x6d'),'113','110',_0x32ef('0x6e'),'105',_0x32ef('0x6f'),'107',_0x32ef('0x70'),_0x32ef('0x71'),_0x32ef('0x72'),'111','114','115'];}_0x132d9f(_0x1d0448);}catch(_0x574fb3){_0x3978cb(_0x574fb3);}});}exports['create']=function(_0x267364,_0x13a374){if(_0x267364[_0x32ef('0x2b')][_0x32ef('0x29')]===_0x32ef('0x2c'))throw new Error(_0x32ef('0x73'));if(_0x267364['body'][_0x32ef('0x29')]==='user'&&_0x267364['user'][_0x32ef('0x29')]!=='admin'){throw new Error(_0x32ef('0x74'));}if(_0x267364[_0x32ef('0x5c')]['role']===_0x32ef('0x2a')&&_0x267364[_0x32ef('0x2b')][_0x32ef('0x29')]!==_0x32ef('0x2a')){throw new Error(_0x32ef('0x75'));}return licenseUtil[_0x32ef('0x76')]([_0x267364['body']])['then'](function(){return validateUser(_0x267364[_0x32ef('0x5c')]);})['then'](function(_0x41bbe1){return updateUser(_0x41bbe1)[_0x32ef('0x26')](function(_0x114d8e){if(_0x114d8e[_0x32ef('0x29')]===_0x32ef('0x2a')){_0x114d8e[_0x32ef('0x77')]=_0x267364['user'][_0x32ef('0x77')];delete _0x114d8e[_0x32ef('0x78')];}return _0x114d8e;});})[_0x32ef('0x26')](function(_0x2aeb11){return db[_0x32ef('0x44')]['create'](_0x2aeb11,{'include':[{'model':db['VoiceMail'],'as':_0x32ef('0x69')}]});})[_0x32ef('0x26')](function(_0x54d7ea){if(_0x267364[_0x32ef('0x5c')][_0x32ef('0x29')]===_0x32ef('0x2b'))return _0x54d7ea;if(_0x267364[_0x32ef('0x2b')][_0x32ef('0x29')]!==_0x32ef('0x2b'))return _0x54d7ea;return db[_0x32ef('0x79')][_0x32ef('0x32')]({'where':{'name':_0x54d7ea[_0x32ef('0x29')]==='agent'?_0x32ef('0x7a'):_0x32ef('0x2d'),'userProfileId':_0x267364['user'][_0x32ef('0x78')]},'raw':!![]})['then'](function(_0x18f96c){if(!_0x18f96c||_0x18f96c['autoAssociation']!=0x0)return _0x54d7ea;return db[_0x32ef('0x34')][_0x32ef('0x7b')]({'name':_0x54d7ea[_0x32ef('0x33')],'resourceId':_0x54d7ea['id'],'type':_0x18f96c[_0x32ef('0x33')],'sectionId':_0x18f96c['id']},{})['then'](function(){return _0x54d7ea;});})[_0x32ef('0x1b')](function(_0x31cff1){logger[_0x32ef('0x17')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x31cff1);throw _0x31cff1;});})['then'](respondWithResult(_0x13a374,0xc9))['catch'](handleError(_0x13a374,null));};exports[_0x32ef('0x7c')]=function(_0x12f5ef,_0x1ec12d){var _0x34fd2b=_0x12f5ef[_0x32ef('0x5c')];var _0x5a1696=[];if(_0x12f5ef[_0x32ef('0x2b')]['role']===_0x32ef('0x2c'))throw new Error(_0x32ef('0x73'));if(_[_0x32ef('0x7d')](_0x34fd2b,['role',_0x32ef('0x2b')])&&_0x12f5ef[_0x32ef('0x2b')][_0x32ef('0x29')]!==_0x32ef('0x2a')){throw new Error(_0x32ef('0x74'));}if(_['some'](_0x34fd2b,[_0x32ef('0x29'),'admin'])&&_0x12f5ef[_0x32ef('0x2b')][_0x32ef('0x29')]!=='admin'){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator');}return licenseUtil[_0x32ef('0x76')](_0x34fd2b)[_0x32ef('0x26')](function(){return validateUser(_0x34fd2b[0x0]);})[_0x32ef('0x26')](function(){for(var _0x3b9896=0x1;_0x3b9896<_0x34fd2b['length'];_0x3b9896++){var _0x356fd4=_0x34fd2b[_0x3b9896-0x1]['internal'];if(!_0x34fd2b[_0x3b9896]['internal'])_0x34fd2b[_0x3b9896][_0x32ef('0x5f')]=_0x356fd4+0x1;_0x5a1696['push'](validateUser(_0x34fd2b[_0x3b9896]));}return BPromise[_0x32ef('0x4f')](_0x5a1696);})[_0x32ef('0x26')](function(){_0x5a1696=[];for(var _0x20a92b=0x0;_0x20a92b<_0x34fd2b['length'];_0x20a92b++){_0x5a1696['push'](updateUser(_0x34fd2b[_0x20a92b]));}return BPromise[_0x32ef('0x4f')](_0x5a1696);})[_0x32ef('0x26')](function(){return BPromise[_0x32ef('0x7e')](_0x34fd2b,function(_0x3741f8){return db[_0x32ef('0x44')][_0x32ef('0x7b')](_0x3741f8,{'include':[{'model':db[_0x32ef('0x69')],'as':'VoiceMail'}]})[_0x32ef('0x26')](function(_0x8f0436){_0x3741f8['id']=_0x8f0436['id'];return _0x3741f8;});});})[_0x32ef('0x26')](function(_0x143ced){if(_0x12f5ef['body']['role']===_0x32ef('0x2b'))return _0x143ced;if(_0x12f5ef['user'][_0x32ef('0x29')]!==_0x32ef('0x2b'))return _0x143ced;var _0x50f13b=_['some'](_0x143ced,function(_0x5f2637){return _0x5f2637[_0x32ef('0x29')]===_0x32ef('0x2c')||_0x5f2637[_0x32ef('0x29')]===_0x32ef('0x7f');});if(!_0x50f13b)return _0x143ced;return db['UserProfileSection'][_0x32ef('0x45')]({'where':{'name':{'$or':[_0x32ef('0x7a'),_0x32ef('0x2d')]},'userProfileId':_0x12f5ef['user'][_0x32ef('0x78')]},'raw':!![]})['then'](function(_0x1b0063){if(_[_0x32ef('0x80')](_0x1b0063)||!_['some'](_0x1b0063,['autoAssociation',0x0]))return _0x143ced;_0x5a1696=[];var _0x2d6a9a=_(_0x1b0063)[_0x32ef('0x30')](function(_0x435538){if(_0x435538[_0x32ef('0x81')]===0x1)return;return _0x435538[_0x32ef('0x33')]===_0x32ef('0x7a')?_0x32ef('0x2c'):_0x32ef('0x7f');})[_0x32ef('0x82')]()['value']();for(var _0x10594a=0x0;_0x10594a<_0x143ced['length'];_0x10594a++){if(!_[_0x32ef('0x3a')](_0x2d6a9a,_0x143ced[_0x10594a][_0x32ef('0x29')]))return;var _0x1d9d57=_0x143ced[_0x10594a][_0x32ef('0x29')]===_0x32ef('0x2c')?'Agents':_0x32ef('0x2d');_0x5a1696[_0x32ef('0x43')](db[_0x32ef('0x34')][_0x32ef('0x7b')]({'name':_0x143ced[_0x10594a][_0x32ef('0x33')],'resourceId':_0x143ced[_0x10594a]['id'],'type':_0x1d9d57,'sectionId':_[_0x32ef('0x32')](_0x1b0063,[_0x32ef('0x33'),_0x1d9d57])['id']},{}));}return BPromise[_0x32ef('0x4f')](_0x5a1696);});})[_0x32ef('0x26')](respondWithResult(_0x1ec12d,0xc9))['catch'](handleError(_0x1ec12d,null));};exports['changePassword']=function(_0x4fb09e,_0x2e01fa){if(_0x4fb09e[_0x32ef('0x5c')]['id']){delete _0x4fb09e['body']['id'];}return db[_0x32ef('0x44')]['find']({'where':{'id':_0x4fb09e[_0x32ef('0x51')]['id']}})['then'](function(_0x519eda){if(!_0x519eda)return null;if(_0x519eda['id']===_0x4fb09e[_0x32ef('0x2b')]['id']){if(!_0x4fb09e[_0x32ef('0x5c')][_0x32ef('0x83')]||!_0x4fb09e[_0x32ef('0x5c')][_0x32ef('0x84')]){throw new db['Sequelize'][(_0x32ef('0x85'))]('Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword');}if(!_0x519eda[_0x32ef('0x86')](_0x4fb09e['body']['oldPassword'])){throw new db['Sequelize']['ValidationError']('Wrong\x20credentials');}if(_0x4fb09e[_0x32ef('0x5c')][_0x32ef('0x83')]===_0x4fb09e['body'][_0x32ef('0x84')]){throw new db[(_0x32ef('0x87'))][(_0x32ef('0x85'))](_0x32ef('0x88'));}}else if(_0x4fb09e[_0x32ef('0x2b')][_0x32ef('0x29')]==='admin'){if(!_0x4fb09e[_0x32ef('0x5c')]['newPassword']){throw new db[(_0x32ef('0x87'))][(_0x32ef('0x85'))]('Invalid\x20body\x20format.\x20Use\x20newPassword');}}else if(_0x4fb09e[_0x32ef('0x2b')]['role']===_0x32ef('0x2b')){if(!_0x4fb09e[_0x32ef('0x5c')][_0x32ef('0x84')]){throw new db[(_0x32ef('0x87'))]['ValidationError'](_0x32ef('0x89'));}if(_0x519eda[_0x32ef('0x29')]!==_0x32ef('0x2c')){throw new db[(_0x32ef('0x87'))]['ValidationError'](_0x32ef('0x73'));}}else{throw new db['Sequelize'][(_0x32ef('0x85'))](_0x32ef('0x73'));}return _0x519eda;})[_0x32ef('0x26')](handleEntityNotFound(_0x2e01fa,null))[_0x32ef('0x26')](function(_0x1cbb24){return db[_0x32ef('0x60')]['findOne']({'attributes':['id',_0x32ef('0x61'),'enforcePasswordHistory','passwordHistoryLimit']})[_0x32ef('0x26')](function(_0x1e5237){if(_0x1e5237[_0x32ef('0x61')])authService[_0x32ef('0x62')](_0x4fb09e['body'][_0x32ef('0x84')]);if(!_0x1e5237[_0x32ef('0x8a')]||!_0x1cbb24[_0x32ef('0x8b')])return _0x1cbb24;authService[_0x32ef('0x8c')](_0x4fb09e['body']['newPassword'],_0x1cbb24['previousPasswords'],_0x1e5237[_0x32ef('0x8d')]);return _0x1cbb24;})[_0x32ef('0x26')](saveUpdates({'password':_0x4fb09e[_0x32ef('0x5c')][_0x32ef('0x84')],'passwordResetAt':_0x4fb09e[_0x32ef('0x2b')]['id']==_0x4fb09e[_0x32ef('0x51')]['id']?moment():null,'previousPasswords':authService[_0x32ef('0x8e')](_0x4fb09e[_0x32ef('0x5c')][_0x32ef('0x84')],_0x1cbb24[_0x32ef('0x8b')])},null));})[_0x32ef('0x26')](respondWithResult(_0x2e01fa,null))['catch'](handleError(_0x2e01fa,null));};exports[_0x32ef('0x8f')]=function(_0x7c2649,_0x42d79b){var _0x349e03=_0x7c2649[_0x32ef('0x5c')][_0x32ef('0x90')];return db['User'][_0x32ef('0x32')]({'where':{'id':_0x7c2649[_0x32ef('0x51')]['id']},'attributes':['id',_0x32ef('0x33'),_0x32ef('0x29'),_0x32ef('0x91'),_0x32ef('0x92'),_0x32ef('0x93'),_0x32ef('0x94')]})[_0x32ef('0x26')](handleEntityNotFound(_0x42d79b,null))[_0x32ef('0x26')](function(_0x439146){if(_0x439146){if(!utils[_0x32ef('0x95')](_0x349e03)){throw new db[(_0x32ef('0x87'))][(_0x32ef('0x85'))]('Unknown\x20channel');}return _0x439146[_0x32ef('0x96')+_[_0x32ef('0x97')](_0x349e03[_0x32ef('0x98')]())+'Queues'](_0x7c2649[_0x32ef('0x5c')]['ids'],{'penalty':_0x7c2649[_0x32ef('0x5c')][_0x32ef('0x99')]||0x0})[_0x32ef('0x9a')](function(_0x5c2733){for(var _0x27aff9=0x0;_0x27aff9<_0x7c2649['body'][_0x32ef('0x9b')][_0x32ef('0x48')];_0x27aff9+=0x1){var _0x5b753c={'UserId':Number(_0x7c2649[_0x32ef('0x51')]['id'])};_0x5b753c[_[_0x32ef('0x97')](_0x349e03[_0x32ef('0x98')]())+_0x32ef('0x9c')]=Number(_0x7c2649[_0x32ef('0x5c')][_0x32ef('0x9b')][_0x27aff9]);socket[_0x32ef('0x9d')]('user'+_['capitalize'](_0x349e03[_0x32ef('0x98')]())+'Queue:save',_0x5b753c);}return _0x5c2733;})[_0x32ef('0x26')](function(){if(_0x349e03===_0x32ef('0x9e')){return db['VoiceQueue'][_0x32ef('0x45')]({'where':{'id':_0x7c2649[_0x32ef('0x5c')]['ids']||[]},'raw':!![],'attributes':['id',_0x32ef('0x33')]});}})[_0x32ef('0x26')](function(_0x3f09c9){var _0xa5f787=_0x439146[_0x32ef('0x28')]({'plain':!![]});var _0x599b18=[];if(_0x349e03===_0x32ef('0x9e')&&_0xa5f787[_0x32ef('0x29')]==='agent'&&_0xa5f787[_0x32ef('0x91')]){for(var _0xe7df49=0x0;_0xe7df49<_0x3f09c9[_0x32ef('0x48')];_0xe7df49+=0x1){_0x599b18[_0x32ef('0x43')]({'membername':_0xa5f787[_0x32ef('0x33')],'UserId':_0xa5f787['id'],'queue_name':_0x3f09c9[_0xe7df49]['name'],'VoiceQueueId':_0x3f09c9[_0xe7df49]['id'],'interface':_[_0x32ef('0x64')](_0xa5f787[_0x32ef('0x94')])?util['format'](_0x32ef('0x9f'),_0xa5f787[_0x32ef('0x33')]):_0xa5f787[_0x32ef('0x94')],'paused':_0xa5f787[_0x32ef('0x93')]||![],'penalty':_0x7c2649[_0x32ef('0x5c')][_0x32ef('0x99')]||0x0});}return BPromise[_0x32ef('0x7e')](_0x599b18,function(_0x482c46){return db['UserVoiceQueueRt'][_0x32ef('0xa0')](_0x482c46);});}return _0x439146;});}})[_0x32ef('0x26')](respondWithStatusCode(_0x42d79b,null))[_0x32ef('0x1b')](handleError(_0x42d79b,null));};exports['removeQueues']=function(_0x10c38e,_0x32fe54){var _0x49fef2;return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x10c38e['params']['id']},'attributes':['id','name',_0x32ef('0x29')]})[_0x32ef('0x26')](handleEntityNotFound(_0x32fe54,null))[_0x32ef('0x26')](function(_0x5a86f6){if(_0x5a86f6){_0x49fef2=_0x5a86f6;if(!_0x10c38e['query']['channel']||!utils[_0x32ef('0x95')](_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x90')])){throw new db['Sequelize'][(_0x32ef('0x85'))](_0x32ef('0xa1'));}return _0x5a86f6[_0x32ef('0xa2')+_['capitalize'](_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x90')]['toLowerCase']())+'Queues'](_0x10c38e[_0x32ef('0x3f')]['ids']);}})[_0x32ef('0x26')](function(_0x286ce3){if(_['isArray'](_0x10c38e['query'][_0x32ef('0x9b')])){for(var _0x4bb644=0x0;_0x4bb644<_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x9b')][_0x32ef('0x48')];_0x4bb644+=0x1){var _0x28d85a={'UserId':Number(_0x10c38e[_0x32ef('0x51')]['id'])};_0x28d85a[_[_0x32ef('0x97')](_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x90')][_0x32ef('0x98')]())+_0x32ef('0x9c')]=Number(_0x10c38e['query']['ids'][_0x4bb644]);socket[_0x32ef('0x9d')](_0x32ef('0x2b')+_[_0x32ef('0x97')](_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x90')][_0x32ef('0x98')]())+_0x32ef('0xa3'),_0x28d85a);}}else{var _0x28d85a={'UserId':Number(_0x10c38e[_0x32ef('0x51')]['id'])};_0x28d85a[_[_0x32ef('0x97')](_0x10c38e['query'][_0x32ef('0x90')][_0x32ef('0x98')]())+_0x32ef('0x9c')]=Number(_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x9b')]);socket[_0x32ef('0x9d')](_0x32ef('0x2b')+_[_0x32ef('0x97')](_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x90')][_0x32ef('0x98')]())+_0x32ef('0xa3'),_0x28d85a);}return _0x286ce3;})[_0x32ef('0x26')](function(){if(_0x10c38e['query'][_0x32ef('0x90')]===_0x32ef('0x9e')){return db[_0x32ef('0xa4')][_0x32ef('0x27')]({'where':{'UserId':_0x10c38e[_0x32ef('0x51')]['id'],'VoiceQueueId':_0x10c38e[_0x32ef('0x3f')][_0x32ef('0x9b')]},'individualHooks':!![]})[_0x32ef('0x26')](function(){return _0x49fef2;});}return _0x49fef2;})[_0x32ef('0x26')](respondWithStatusCode(_0x32fe54,null))[_0x32ef('0x1b')](handleError(_0x32fe54,null));};exports['addAvatar']=function(_0x1d7329,_0x85c779){_0x1d7329[_0x32ef('0x5c')][_0x32ef('0xa5')]=_0x1d7329['file'][_0x32ef('0xa6')];return db[_0x32ef('0x44')]['find']({'where':{'id':_0x1d7329['params']['id']}})['then'](handleEntityNotFound(_0x85c779,null))[_0x32ef('0x26')](saveUpdates(_0x1d7329[_0x32ef('0x5c')],null))[_0x32ef('0x26')](respondWithResult(_0x85c779,null))[_0x32ef('0x1b')](handleError(_0x85c779,null));};exports['getAvatar']=function(_0x5f2996,_0x1fc685){var _0x4f9e0a=path['join'](config[_0x32ef('0xa7')],_0x32ef('0xa8'));return db[_0x32ef('0x44')]['find']({'where':{'id':_0x5f2996['params']['id']},'attributes':['id','userpic'],'raw':!![]})[_0x32ef('0x26')](handleEntityNotFound(_0x1fc685,null))[_0x32ef('0x26')](function(_0x419764){if(_0x419764){if(_[_0x32ef('0x64')](_0x419764[_0x32ef('0xa5')])){return _0x1fc685[_0x32ef('0xa9')](_0x4f9e0a);}else{if(!fs[_0x32ef('0xaa')](path[_0x32ef('0xab')](config[_0x32ef('0xa7')],'server/files/images/',_0x419764['userpic']))){return _0x1fc685['download'](_0x4f9e0a);}return _0x1fc685[_0x32ef('0xa9')](path[_0x32ef('0xab')](config['root'],'server/files/images/',_0x419764[_0x32ef('0xa5')]));}}})['catch'](handleError(_0x1fc685,null));};exports[_0x32ef('0xac')]=function(_0x40e8d7,_0x7f710){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x40e8d7[_0x32ef('0x51')]['id']},'attributes':['id']})[_0x32ef('0x26')](handleEntityNotFound(_0x7f710,null))[_0x32ef('0x26')](function(_0x2e710c){var _0x5f290e=[];values=_0x2e710c[_0x32ef('0x4a')];_0x5f290e[_0x32ef('0x43')](get_open_tabs('chat',_0x2e710c['dataValues']));_0x5f290e[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x4b'),_0x2e710c[_0x32ef('0x4a')]));_0x5f290e[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x4e'),_0x2e710c[_0x32ef('0x4a')]));_0x5f290e[_0x32ef('0x43')](get_open_tabs('whatsapp',_0x2e710c[_0x32ef('0x4a')]));_0x5f290e[_0x32ef('0x43')](get_open_tabs(_0x32ef('0x4c'),_0x2e710c[_0x32ef('0x4a')]));_0x5f290e['push'](get_open_tabs('mail',_0x2e710c[_0x32ef('0x4a')]));return BPromise['all'](_0x5f290e);})[_0x32ef('0x26')](function(_0x62f5c6){var _0x323880=[];if(_0x62f5c6){for(var _0x451621=0x0;_0x451621<values[_0x32ef('0xad')][_0x32ef('0x48')];_0x451621++){var _0x59cd48=values[_0x32ef('0xad')][_0x451621];_0x323880['push']({'channel':_0x32ef('0xae'),'id':_0x59cd48['id'],'createdAt':_0x59cd48['createdAt']});}for(var _0x451621=0x0;_0x451621<values['FaxOpenTabs']['length'];_0x451621++){var _0x59cd48=values[_0x32ef('0xaf')][_0x451621];_0x323880['push']({'channel':_0x32ef('0xb0'),'id':_0x59cd48['id'],'createdAt':_0x59cd48['createdAt']});}for(var _0x451621=0x0;_0x451621<values['OpenchannelOpenTabs'][_0x32ef('0x48')];_0x451621++){var _0x59cd48=values['OpenchannelOpenTabs'][_0x451621];_0x323880[_0x32ef('0x43')]({'channel':'OPENCHANNEL','id':_0x59cd48['id'],'createdAt':_0x59cd48[_0x32ef('0xb1')]});}for(var _0x451621=0x0;_0x451621<values[_0x32ef('0xb2')][_0x32ef('0x48')];_0x451621++){var _0x59cd48=values['MailOpenTabs'][_0x451621];_0x323880[_0x32ef('0x43')]({'channel':_0x32ef('0xb3'),'id':_0x59cd48['id'],'createdAt':_0x59cd48[_0x32ef('0xb1')]});}for(var _0x451621=0x0;_0x451621<values[_0x32ef('0xb4')][_0x32ef('0x48')];_0x451621++){var _0x59cd48=values[_0x32ef('0xb4')][_0x451621];_0x323880['push']({'channel':_0x32ef('0xb5'),'id':_0x59cd48['id'],'createdAt':_0x59cd48['createdAt']});}for(var _0x451621=0x0;_0x451621<values[_0x32ef('0xb6')][_0x32ef('0x48')];_0x451621++){var _0x59cd48=values['WhatsappOpenTabs'][_0x451621];_0x323880[_0x32ef('0x43')]({'channel':_0x32ef('0xb7'),'id':_0x59cd48['id'],'createdAt':_0x59cd48[_0x32ef('0xb1')]});}var _0x10e7cc={'count':_0x323880[_0x32ef('0x48')],'rows':_0x323880};return _0x10e7cc;}else return null;})[_0x32ef('0x26')](respondWithResult(_0x7f710,null))[_0x32ef('0x1b')](handleError(_0x7f710,null));};exports[_0x32ef('0xb8')]=function(_0x73a49e,_0x156348){var _0x169a8e={};var _0x4d0170={};var _0x153792;var _0x530838;return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0x73a49e[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x156348,null))[_0x32ef('0x26')](function(_0x14ac0a){if(_0x14ac0a){_0x153792=_0x14ac0a;_0x4d0170[_0x32ef('0x56')]=_[_0x32ef('0x53')](db['CmContact'][_0x32ef('0x37')]);_0x4d0170[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x73a49e[_0x32ef('0x3f')]);_0x4d0170[_0x32ef('0x54')]=_['intersection'](_0x4d0170[_0x32ef('0x56')],_0x4d0170[_0x32ef('0x3f')]);_0x169a8e[_0x32ef('0x42')]=_['intersection'](_0x4d0170['model'],qs[_0x32ef('0x57')](_0x73a49e['query'][_0x32ef('0x57')]));_0x169a8e['attributes']=_0x169a8e[_0x32ef('0x42')][_0x32ef('0x48')]?_0x169a8e[_0x32ef('0x42')]:_0x4d0170[_0x32ef('0x56')];_0x169a8e[_0x32ef('0xba')]=qs['sort'](_0x73a49e[_0x32ef('0x3f')]['sort']);_0x169a8e['where']=qs['filters'](_[_0x32ef('0xbb')](_0x73a49e[_0x32ef('0x3f')],_0x4d0170[_0x32ef('0x54')]));if(_0x73a49e[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x169a8e['where']=_[_0x32ef('0x58')](_0x169a8e['where'],{'$or':_[_0x32ef('0x30')](_0x169a8e[_0x32ef('0x42')],function(_0x1f5ffe){var _0x3d438d={};_0x3d438d[_0x1f5ffe]={'$like':'%'+_0x73a49e['query']['filter']+'%'};return _0x3d438d;})});}_0x169a8e=_[_0x32ef('0x58')]({},_0x169a8e,_0x73a49e[_0x32ef('0x59')]);return _0x153792[_0x32ef('0xb8')](_0x169a8e);}})[_0x32ef('0x26')](function(_0x1cbd9a){if(_0x1cbd9a){_0x530838=_0x1cbd9a['length'];if(_0x73a49e['query'][_0x32ef('0xbc')]('includeAll')){_0x169a8e['include']=[{'model':db[_0x32ef('0xbd')],'as':_0x32ef('0xbe'),'required':![]},{'model':db[_0x32ef('0xbf')],'as':_0x32ef('0xc0'),'attributes':['id','name',_0x32ef('0xc1')],'where':_0x73a49e[_0x32ef('0x3f')]['tag']?{'id':_0x73a49e['query']['tag']}:undefined,'required':_0x73a49e[_0x32ef('0x3f')]['tag']?!![]:![]}];}if(!_0x73a49e[_0x32ef('0x3f')]['hasOwnProperty'](_0x32ef('0xc2'))){_0x169a8e[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x73a49e[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x169a8e[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x73a49e[_0x32ef('0x3f')]['offset']);}return _0x153792[_0x32ef('0xb8')](_0x169a8e);}})['then'](function(_0x3cb79f){if(_0x3cb79f){return _0x3cb79f?{'count':_0x530838,'rows':_0x3cb79f}:null;}})[_0x32ef('0x26')](respondWithResult(_0x156348,null))[_0x32ef('0x1b')](handleError(_0x156348,null));};exports['getQueues']=function(_0x1a4c97,_0x3aabc0){var _0x1c75f5;var _0x325145;var _0x4d7f2c={};var _0x17ba0f;return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0x1a4c97[_0x32ef('0x51')]['id']},'attributes':['id',_0x32ef('0x33'),'role']})[_0x32ef('0x26')](handleEntityNotFound(_0x3aabc0,null))[_0x32ef('0x26')](function(_0x1aa639){if(!utils[_0x32ef('0x95')](_0x1a4c97['query'][_0x32ef('0x90')])){throw new db['Sequelize'][(_0x32ef('0x85'))](_0x32ef('0xa1'));}_0x1c75f5=_0x1aa639;var _0x4859d2={};_0x4859d2[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_[_0x32ef('0x97')](_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0x90')])+_0x32ef('0xc3')][_0x32ef('0x37')]);_0x4859d2['query']=_[_0x32ef('0x53')](_0x1a4c97[_0x32ef('0x3f')]);_0x4859d2['filters']=_[_0x32ef('0x55')](_0x4859d2['model'],_0x4859d2['query']);_0x4d7f2c['attributes']=_[_0x32ef('0x55')](_0x4859d2[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x4d7f2c[_0x32ef('0x42')]=_0x4d7f2c[_0x32ef('0x42')][_0x32ef('0x48')]?_0x4d7f2c[_0x32ef('0x42')]:_0x4859d2[_0x32ef('0x56')];_0x4d7f2c['order']=qs['sort'](_0x1a4c97[_0x32ef('0x3f')]['sort']);_0x4d7f2c[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_['pick'](_0x1a4c97['query'],_0x4859d2[_0x32ef('0x54')]));if(_0x1a4c97['query'][_0x32ef('0x2e')]){_0x4d7f2c['where']=_[_0x32ef('0x58')](_0x4d7f2c[_0x32ef('0x3e')],{'$or':_['map'](_0x4d7f2c[_0x32ef('0x42')],function(_0x343b45){var _0x174d59={};_0x174d59[_0x343b45]={'$like':'%'+_0x1a4c97['query'][_0x32ef('0x2e')]+'%'};return _0x174d59;})});}_0x4d7f2c=_[_0x32ef('0x58')]({},_0x4d7f2c,_0x1a4c97['options']);switch(_0x1c75f5[_0x32ef('0x29')]){case _0x32ef('0x2a'):return db[_[_0x32ef('0x97')](_0x1a4c97[_0x32ef('0x3f')]['channel'])+'Queue'][_0x32ef('0x45')](_0x4d7f2c);case _0x32ef('0x2b'):case _0x32ef('0x2c'):return _0x1c75f5['get'+_[_0x32ef('0x97')](_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0x90')])+'Queues'](_0x4d7f2c);default:throw new db[(_0x32ef('0x87'))][(_0x32ef('0x85'))](_0x32ef('0xc4'));}})[_0x32ef('0x26')](function(_0x5d2302){_0x17ba0f=_0x5d2302[_0x32ef('0x48')];if(!_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x4d7f2c[_0x32ef('0x22')]=qs['limit'](_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x4d7f2c['offset']=qs[_0x32ef('0x1f')](_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0x1f')]);}switch(_0x1c75f5[_0x32ef('0x29')]){case _0x32ef('0x2a'):return db[_[_0x32ef('0x97')](_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0x90')])+_0x32ef('0xc3')][_0x32ef('0x45')](_0x4d7f2c);case _0x32ef('0x2b'):case _0x32ef('0x2c'):return _0x1c75f5[_0x32ef('0x28')+_[_0x32ef('0x97')](_0x1a4c97[_0x32ef('0x3f')][_0x32ef('0x90')])+_0x32ef('0xc5')](_0x4d7f2c);}})[_0x32ef('0x26')](function(_0x110b02){return{'count':_0x17ba0f,'rows':_0x110b02};})['then'](respondWithResult(_0x3aabc0,null))['catch'](handleError(_0x3aabc0,null));};exports[_0x32ef('0xc6')]=function(_0x137bbb,_0x73f701){var _0x2366bd={};var _0x355ade={};var _0x11b170;var _0x49b902;return db['User'][_0x32ef('0xb9')]({'where':{'id':_0x137bbb['params']['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x73f701,null))[_0x32ef('0x26')](function(_0x1696cc){if(_0x1696cc){_0x11b170=_0x1696cc;_0x355ade['model']=_[_0x32ef('0x53')](db[_0x32ef('0xa4')][_0x32ef('0x37')]);_0x355ade['query']=_[_0x32ef('0x53')](_0x137bbb['query']);_0x355ade[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x355ade['model'],_0x355ade['query']);_0x2366bd[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x355ade['model'],qs[_0x32ef('0x57')](_0x137bbb['query'][_0x32ef('0x57')]));_0x2366bd['attributes']=_0x2366bd[_0x32ef('0x42')]['length']?_0x2366bd[_0x32ef('0x42')]:_0x355ade[_0x32ef('0x56')];_0x2366bd[_0x32ef('0xba')]=qs['sort'](_0x137bbb[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x2366bd[_0x32ef('0x3e')]=qs['filters'](_[_0x32ef('0xbb')](_0x137bbb['query'],_0x355ade[_0x32ef('0x54')]));if(_0x137bbb[_0x32ef('0x3f')]['filter']){_0x2366bd[_0x32ef('0x3e')]=_['merge'](_0x2366bd[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x2366bd[_0x32ef('0x42')],function(_0x3af410){var _0x742a55={};_0x742a55[_0x3af410]={'$like':'%'+_0x137bbb[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x742a55;})});}_0x2366bd=_['merge']({},_0x2366bd,_0x137bbb[_0x32ef('0x59')]);return _0x11b170['getVoiceQueuesRt'](_0x2366bd);}})['then'](function(_0x4740d7){if(_0x4740d7){_0x49b902=_0x4740d7[_0x32ef('0x48')];if(!_0x137bbb[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x2366bd['limit']=qs[_0x32ef('0x22')](_0x137bbb[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x2366bd[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x137bbb[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x11b170[_0x32ef('0xc6')](_0x2366bd);}})[_0x32ef('0x26')](function(_0x3417c7){if(_0x3417c7){return _0x3417c7?{'count':_0x49b902,'rows':_0x3417c7}:null;}})[_0x32ef('0x26')](respondWithResult(_0x73f701,null))[_0x32ef('0x1b')](handleError(_0x73f701,null));};exports[_0x32ef('0xc8')]=function(_0xfcb193,_0x473a71){var _0x2aff00={};var _0x349dfa={};var _0x222b78;var _0x45b0d8;return db['User'][_0x32ef('0xb9')]({'where':{'id':_0xfcb193[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x473a71,null))[_0x32ef('0x26')](function(_0x471eec){if(_0x471eec){_0x222b78=_0x471eec;_0x349dfa['model']=_['keys'](db[_0x32ef('0xc9')][_0x32ef('0x37')]);_0x349dfa[_0x32ef('0x3f')]=_['keys'](_0xfcb193[_0x32ef('0x3f')]);_0x349dfa[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x349dfa[_0x32ef('0x56')],_0x349dfa[_0x32ef('0x3f')]);_0x2aff00[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x349dfa[_0x32ef('0x56')],qs['fields'](_0xfcb193[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x2aff00['attributes']=_0x2aff00[_0x32ef('0x42')][_0x32ef('0x48')]?_0x2aff00[_0x32ef('0x42')]:_0x349dfa['model'];_0x2aff00['order']=qs[_0x32ef('0xc7')](_0xfcb193[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x2aff00[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0xfcb193['query'],_0x349dfa[_0x32ef('0x54')]));if(_0xfcb193[_0x32ef('0x3f')]['filter']){_0x2aff00[_0x32ef('0x3e')]=_['merge'](_0x2aff00[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x2aff00[_0x32ef('0x42')],function(_0x999f55){var _0x527c1f={};_0x527c1f[_0x999f55]={'$like':'%'+_0xfcb193[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x527c1f;})});}_0x2aff00=_[_0x32ef('0x58')]({},_0x2aff00,_0xfcb193['options']);return _0x222b78[_0x32ef('0xc8')](_0x2aff00);}})[_0x32ef('0x26')](function(_0x1852a1){if(_0x1852a1){_0x45b0d8=_0x1852a1['length'];if(!_0xfcb193[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x2aff00['limit']=qs[_0x32ef('0x22')](_0xfcb193[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x2aff00[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0xfcb193[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x222b78['getGroups'](_0x2aff00);}})['then'](function(_0x25cebb){if(_0x25cebb){return _0x25cebb?{'count':_0x45b0d8,'rows':_0x25cebb}:null;}})[_0x32ef('0x26')](respondWithResult(_0x473a71,null))[_0x32ef('0x1b')](handleError(_0x473a71,null));};exports[_0x32ef('0xca')]=function(_0x30bbcb,_0x1db5d9){var _0x1c2a7d={'raw':!![],'where':{}};var _0x28810e={};var _0x2ab371={'count':0x0,'rows':[]};return db['User'][_0x32ef('0xb9')]({'where':{'id':_0x30bbcb[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x1db5d9,null))['then'](function(_0x5dd234){if(_0x5dd234){_0x28810e[_0x32ef('0x56')]=_['keys'](db['VoiceRecording'][_0x32ef('0x37')]);_0x28810e['query']=_[_0x32ef('0x53')](_0x30bbcb['query']);_0x28810e[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x28810e['model'],_0x28810e[_0x32ef('0x3f')]);_0x1c2a7d[_0x32ef('0x42')]=_['intersection'](_0x28810e[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x30bbcb[_0x32ef('0x3f')]['fields']));_0x1c2a7d['attributes']=_0x1c2a7d[_0x32ef('0x42')][_0x32ef('0x48')]?_0x1c2a7d[_0x32ef('0x42')]:_0x28810e[_0x32ef('0x56')];if(!_0x30bbcb[_0x32ef('0x3f')]['hasOwnProperty'](_0x32ef('0xc2'))){_0x1c2a7d[_0x32ef('0x22')]=qs['limit'](_0x30bbcb[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x1c2a7d[_0x32ef('0x1f')]=qs['offset'](_0x30bbcb[_0x32ef('0x3f')][_0x32ef('0x1f')]);}_0x1c2a7d[_0x32ef('0xba')]=qs['sort'](_0x30bbcb[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x1c2a7d[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x30bbcb[_0x32ef('0x3f')],_0x28810e[_0x32ef('0x54')]));_0x1c2a7d[_0x32ef('0x3e')][_0x32ef('0xcb')]=_0x5dd234['id'];if(_0x30bbcb[_0x32ef('0x3f')]['filter']){_0x1c2a7d[_0x32ef('0x3e')]=_['merge'](_0x1c2a7d['where'],{'$or':_['map'](_0x1c2a7d[_0x32ef('0x42')],function(_0xe882e4){var _0x10ed11={};_0x10ed11[_0xe882e4]={'$like':'%'+_0x30bbcb[_0x32ef('0x3f')]['filter']+'%'};return _0x10ed11;})});}_0x1c2a7d=_[_0x32ef('0x58')]({},_0x1c2a7d,_0x30bbcb[_0x32ef('0x59')]);return db[_0x32ef('0xcc')]['count']({'where':_0x1c2a7d[_0x32ef('0x3e')]})[_0x32ef('0x26')](function(_0x2c3840){_0x2ab371[_0x32ef('0x21')]=_0x2c3840;if(_0x30bbcb[_0x32ef('0x3f')]['includeAll']){_0x1c2a7d['include']=[{'all':!![]}];}return db[_0x32ef('0xcc')][_0x32ef('0x45')](_0x1c2a7d);})[_0x32ef('0x26')](function(_0x2afe9f){_0x2ab371[_0x32ef('0x46')]=_0x2afe9f;return _0x2ab371;});}})['then'](respondWithFilteredResult(_0x1db5d9,_0x1c2a7d))[_0x32ef('0x1b')](handleError(_0x1db5d9,null));};exports[_0x32ef('0xcd')]=function(_0xd9aeec,_0x1e09c6){var _0x527af9={'raw':!![],'where':{}};var _0x1b610c={};var _0x5b09a9={'count':0x0,'rows':[]};return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0xd9aeec[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x1e09c6,null))[_0x32ef('0x26')](function(_0x178332){if(_0x178332){_0x1b610c[_0x32ef('0x56')]=_[_0x32ef('0x53')](db['ScreenRecording'][_0x32ef('0x37')]);_0x1b610c[_0x32ef('0x3f')]=_['keys'](_0xd9aeec[_0x32ef('0x3f')]);_0x1b610c[_0x32ef('0x54')]=_['intersection'](_0x1b610c[_0x32ef('0x56')],_0x1b610c[_0x32ef('0x3f')]);_0x527af9[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x1b610c[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0xd9aeec['query'][_0x32ef('0x57')]));_0x527af9[_0x32ef('0x42')]=_0x527af9[_0x32ef('0x42')][_0x32ef('0x48')]?_0x527af9[_0x32ef('0x42')]:_0x1b610c[_0x32ef('0x56')];if(!_0xd9aeec[_0x32ef('0x3f')]['hasOwnProperty'](_0x32ef('0xc2'))){_0x527af9[_0x32ef('0x22')]=qs['limit'](_0xd9aeec[_0x32ef('0x3f')]['limit']);_0x527af9[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0xd9aeec['query'][_0x32ef('0x1f')]);}_0x527af9[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0xd9aeec[_0x32ef('0x3f')]['sort']);_0x527af9[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0xd9aeec[_0x32ef('0x3f')],_0x1b610c['filters']));_0x527af9['where']['UserId']=_0x178332['id'];if(_0xd9aeec[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x527af9['where']=_[_0x32ef('0x58')](_0x527af9['where'],{'$or':_[_0x32ef('0x30')](_0x527af9[_0x32ef('0x42')],function(_0x5302bc){var _0x1a00e5={};_0x1a00e5[_0x5302bc]={'$like':'%'+_0xd9aeec[_0x32ef('0x3f')]['filter']+'%'};return _0x1a00e5;})});}_0x527af9=_[_0x32ef('0x58')]({},_0x527af9,_0xd9aeec[_0x32ef('0x59')]);return db[_0x32ef('0xce')][_0x32ef('0x21')]({'where':_0x527af9[_0x32ef('0x3e')]})[_0x32ef('0x26')](function(_0x42c888){_0x5b09a9['count']=_0x42c888;if(_0xd9aeec['query'][_0x32ef('0x40')]){_0x527af9[_0x32ef('0x41')]=[{'all':!![]}];}return db[_0x32ef('0xce')][_0x32ef('0x45')](_0x527af9);})['then'](function(_0x46158b){_0x5b09a9[_0x32ef('0x46')]=_0x46158b;return _0x5b09a9;});}})[_0x32ef('0x26')](respondWithFilteredResult(_0x1e09c6,_0x527af9))[_0x32ef('0x1b')](handleError(_0x1e09c6,null));};exports['getChatInteractions']=function(_0x36383e,_0x1e5158){var _0x5c75a9={};var _0x988d97={};var _0x13c687;var _0x51af64;return db[_0x32ef('0x44')]['findOne']({'where':{'id':_0x36383e[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x1e5158,null))[_0x32ef('0x26')](function(_0x1c85f5){if(_0x1c85f5){_0x13c687=_0x1c85f5;_0x988d97[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0xcf')][_0x32ef('0x37')]);_0x988d97[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x36383e['query']);_0x988d97['filters']=_[_0x32ef('0x55')](_0x988d97[_0x32ef('0x56')],_0x988d97[_0x32ef('0x3f')]);_0x5c75a9[_0x32ef('0x42')]=_['intersection'](_0x988d97[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x36383e['query'][_0x32ef('0x57')]));_0x5c75a9[_0x32ef('0x42')]=_0x5c75a9['attributes']['length']?_0x5c75a9[_0x32ef('0x42')]:_0x988d97['model'];_0x5c75a9[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x36383e['query'][_0x32ef('0xc7')]);_0x5c75a9['where']=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x36383e[_0x32ef('0x3f')],_0x988d97[_0x32ef('0x54')]));if(_0x36383e[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x5c75a9[_0x32ef('0x3e')]=_['merge'](_0x5c75a9[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x5c75a9[_0x32ef('0x42')],function(_0x526bae){var _0x419a1c={};_0x419a1c[_0x526bae]={'$like':'%'+_0x36383e[_0x32ef('0x3f')]['filter']+'%'};return _0x419a1c;})});}_0x5c75a9=_[_0x32ef('0x58')]({},_0x5c75a9,_0x36383e[_0x32ef('0x59')]);return _0x13c687[_0x32ef('0xd0')](_0x5c75a9);}})[_0x32ef('0x26')](function(_0x1a6383){if(_0x1a6383){_0x51af64=_0x1a6383[_0x32ef('0x48')];if(!_0x36383e[_0x32ef('0x3f')][_0x32ef('0xbc')]('nolimit')){_0x5c75a9['limit']=qs['limit'](_0x36383e[_0x32ef('0x3f')]['limit']);_0x5c75a9['offset']=qs[_0x32ef('0x1f')](_0x36383e[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x13c687['getChatInteractions'](_0x5c75a9);}})[_0x32ef('0x26')](function(_0xfef1dd){if(_0xfef1dd){return _0xfef1dd?{'count':_0x51af64,'rows':_0xfef1dd}:null;}})[_0x32ef('0x26')](respondWithResult(_0x1e5158,null))[_0x32ef('0x1b')](handleError(_0x1e5158,null));};exports[_0x32ef('0xd1')]=function(_0x3aa395,_0x1e4429){var _0x3bff97={};var _0x2399fd={};var _0x184f20;var _0x2c1ee9;return db[_0x32ef('0x44')]['findOne']({'where':{'id':_0x3aa395[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x1e4429,null))['then'](function(_0x498fe4){if(_0x498fe4){_0x184f20=_0x498fe4;_0x2399fd['model']=_[_0x32ef('0x53')](db[_0x32ef('0xd2')]['rawAttributes']);_0x2399fd['query']=_[_0x32ef('0x53')](_0x3aa395[_0x32ef('0x3f')]);_0x2399fd['filters']=_[_0x32ef('0x55')](_0x2399fd[_0x32ef('0x56')],_0x2399fd['query']);_0x3bff97[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x2399fd['model'],qs[_0x32ef('0x57')](_0x3aa395['query'][_0x32ef('0x57')]));_0x3bff97[_0x32ef('0x42')]=_0x3bff97['attributes'][_0x32ef('0x48')]?_0x3bff97[_0x32ef('0x42')]:_0x2399fd[_0x32ef('0x56')];_0x3bff97[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x3aa395['query'][_0x32ef('0xc7')]);_0x3bff97['where']=qs[_0x32ef('0x54')](_['pick'](_0x3aa395[_0x32ef('0x3f')],_0x2399fd[_0x32ef('0x54')]));if(_0x3aa395[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x3bff97['where']=_[_0x32ef('0x58')](_0x3bff97[_0x32ef('0x3e')],{'$or':_['map'](_0x3bff97[_0x32ef('0x42')],function(_0x308846){var _0x223005={};_0x223005[_0x308846]={'$like':'%'+_0x3aa395[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x223005;})});}_0x3bff97=_[_0x32ef('0x58')]({},_0x3bff97,_0x3aa395[_0x32ef('0x59')]);return _0x184f20[_0x32ef('0xd1')](_0x3bff97);}})[_0x32ef('0x26')](function(_0x51412c){if(_0x51412c){_0x2c1ee9=_0x51412c[_0x32ef('0x48')];if(!_0x3aa395['query'][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x3bff97[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x3aa395[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x3bff97[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x3aa395[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x184f20[_0x32ef('0xd1')](_0x3bff97);}})[_0x32ef('0x26')](function(_0x106b36){if(_0x106b36){return _0x106b36?{'count':_0x2c1ee9,'rows':_0x106b36}:null;}})[_0x32ef('0x26')](respondWithResult(_0x1e4429,null))[_0x32ef('0x1b')](handleError(_0x1e4429,null));};exports[_0x32ef('0xd3')]=function(_0x41ef2f,_0x14722b){var _0xe8cc75={'raw':!![],'where':{}};var _0x4fa93c={};var _0x3cbf57={'count':0x0,'rows':[]};return db['User'][_0x32ef('0xb9')]({'where':{'id':_0x41ef2f[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x14722b,null))[_0x32ef('0x26')](function(_0x474293){if(_0x474293){_0x4fa93c[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0xd4')][_0x32ef('0x37')]);_0x4fa93c[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x41ef2f[_0x32ef('0x3f')]);_0x4fa93c['filters']=_[_0x32ef('0x55')](_0x4fa93c[_0x32ef('0x56')],_0x4fa93c[_0x32ef('0x3f')]);_0xe8cc75['attributes']=_[_0x32ef('0x55')](_0x4fa93c['model'],qs['fields'](_0x41ef2f[_0x32ef('0x3f')]['fields']));_0xe8cc75['attributes']=_0xe8cc75[_0x32ef('0x42')][_0x32ef('0x48')]?_0xe8cc75[_0x32ef('0x42')]:_0x4fa93c[_0x32ef('0x56')];if(!_0x41ef2f[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0xe8cc75[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x41ef2f[_0x32ef('0x3f')][_0x32ef('0x22')]);_0xe8cc75[_0x32ef('0x1f')]=qs['offset'](_0x41ef2f[_0x32ef('0x3f')]['offset']);}_0xe8cc75[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x41ef2f[_0x32ef('0x3f')]['sort']);_0xe8cc75[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x41ef2f[_0x32ef('0x3f')],_0x4fa93c[_0x32ef('0x54')]));_0xe8cc75[_0x32ef('0x3e')][_0x32ef('0xcb')]=_0x474293['id'];if(_0x41ef2f[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0xe8cc75[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0xe8cc75[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0xe8cc75[_0x32ef('0x42')],function(_0x18ed75){var _0xb61d95={};_0xb61d95[_0x18ed75]={'$like':'%'+_0x41ef2f[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0xb61d95;})});}_0xe8cc75=_[_0x32ef('0x58')]({},_0xe8cc75,_0x41ef2f[_0x32ef('0x59')]);return db['MailInteraction'][_0x32ef('0x21')]({'where':_0xe8cc75['where']})[_0x32ef('0x26')](function(_0x15c6a1){_0x3cbf57['count']=_0x15c6a1;if(_0x41ef2f[_0x32ef('0x3f')][_0x32ef('0x40')]){_0xe8cc75[_0x32ef('0x41')]=[{'all':!![]}];}return db[_0x32ef('0xd4')][_0x32ef('0x45')](_0xe8cc75);})[_0x32ef('0x26')](function(_0x5db712){_0x3cbf57['rows']=_0x5db712;return _0x3cbf57;});}})[_0x32ef('0x26')](respondWithFilteredResult(_0x14722b,_0xe8cc75))[_0x32ef('0x1b')](handleError(_0x14722b,null));};exports[_0x32ef('0xd5')]=function(_0x320c91,_0x113c1e){var _0x24b594={};var _0x1c546c={};var _0x1ff32e;var _0x41cb8c;return db['User'][_0x32ef('0xb9')]({'where':{'id':_0x320c91[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x113c1e,null))[_0x32ef('0x26')](function(_0xf22d14){if(_0xf22d14){_0x1ff32e=_0xf22d14;_0x1c546c[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0xd6')]['rawAttributes']);_0x1c546c[_0x32ef('0x3f')]=_['keys'](_0x320c91[_0x32ef('0x3f')]);_0x1c546c[_0x32ef('0x54')]=_['intersection'](_0x1c546c['model'],_0x1c546c['query']);_0x24b594[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x1c546c['model'],qs[_0x32ef('0x57')](_0x320c91[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x24b594[_0x32ef('0x42')]=_0x24b594[_0x32ef('0x42')]['length']?_0x24b594[_0x32ef('0x42')]:_0x1c546c['model'];_0x24b594[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x320c91[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x24b594[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_['pick'](_0x320c91[_0x32ef('0x3f')],_0x1c546c[_0x32ef('0x54')]));if(_0x320c91['query'][_0x32ef('0x2e')]){_0x24b594[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0x24b594[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x24b594[_0x32ef('0x42')],function(_0x1a92a2){var _0x1180e4={};_0x1180e4[_0x1a92a2]={'$like':'%'+_0x320c91[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x1180e4;})});}_0x24b594=_['merge']({},_0x24b594,_0x320c91[_0x32ef('0x59')]);return _0x1ff32e['getSmsInteractions'](_0x24b594);}})[_0x32ef('0x26')](function(_0x4f7208){if(_0x4f7208){_0x41cb8c=_0x4f7208['length'];if(!_0x320c91[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x24b594[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x320c91[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x24b594[_0x32ef('0x1f')]=qs['offset'](_0x320c91[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x1ff32e['getSmsInteractions'](_0x24b594);}})[_0x32ef('0x26')](function(_0x1b0319){if(_0x1b0319){return _0x1b0319?{'count':_0x41cb8c,'rows':_0x1b0319}:null;}})['then'](respondWithResult(_0x113c1e,null))[_0x32ef('0x1b')](handleError(_0x113c1e,null));};exports[_0x32ef('0xd7')]=function(_0x364ca1,_0x5761ff){var _0x1cb7c9={};var _0x29f49c={};var _0x31a8c2;var _0x30c799;return db['User']['findOne']({'where':{'id':_0x364ca1[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0x5761ff,null))[_0x32ef('0x26')](function(_0x3f9e45){if(_0x3f9e45){_0x31a8c2=_0x3f9e45;_0x29f49c['model']=_[_0x32ef('0x53')](db[_0x32ef('0xd8')][_0x32ef('0x37')]);_0x29f49c[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x364ca1[_0x32ef('0x3f')]);_0x29f49c['filters']=_[_0x32ef('0x55')](_0x29f49c['model'],_0x29f49c[_0x32ef('0x3f')]);_0x1cb7c9[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x29f49c[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x364ca1[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x1cb7c9[_0x32ef('0x42')]=_0x1cb7c9[_0x32ef('0x42')][_0x32ef('0x48')]?_0x1cb7c9[_0x32ef('0x42')]:_0x29f49c['model'];_0x1cb7c9[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x364ca1[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x1cb7c9['where']=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x364ca1[_0x32ef('0x3f')],_0x29f49c[_0x32ef('0x54')]));if(_0x364ca1['query'][_0x32ef('0x2e')]){_0x1cb7c9[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0x1cb7c9['where'],{'$or':_[_0x32ef('0x30')](_0x1cb7c9[_0x32ef('0x42')],function(_0x2751dd){var _0x277860={};_0x277860[_0x2751dd]={'$like':'%'+_0x364ca1[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x277860;})});}_0x1cb7c9=_[_0x32ef('0x58')]({},_0x1cb7c9,_0x364ca1['options']);return _0x31a8c2[_0x32ef('0xd7')](_0x1cb7c9);}})['then'](function(_0x5f1c7c){if(_0x5f1c7c){_0x30c799=_0x5f1c7c[_0x32ef('0x48')];if(!_0x364ca1[_0x32ef('0x3f')][_0x32ef('0xbc')]('nolimit')){_0x1cb7c9[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x364ca1['query'][_0x32ef('0x22')]);_0x1cb7c9[_0x32ef('0x1f')]=qs['offset'](_0x364ca1[_0x32ef('0x3f')]['offset']);}return _0x31a8c2[_0x32ef('0xd7')](_0x1cb7c9);}})[_0x32ef('0x26')](function(_0x52da88){if(_0x52da88){return _0x52da88?{'count':_0x30c799,'rows':_0x52da88}:null;}})[_0x32ef('0x26')](respondWithResult(_0x5761ff,null))[_0x32ef('0x1b')](handleError(_0x5761ff,null));};exports[_0x32ef('0xd9')]=function(_0x12262a,_0x280791){var _0x56a76c={};var _0x218858={};var _0x5e26d9;var _0x1b274e;return db[_0x32ef('0x44')]['findOne']({'where':{'id':_0x12262a['params']['id']}})['then'](handleEntityNotFound(_0x280791,null))[_0x32ef('0x26')](function(_0xc538a5){if(_0xc538a5){_0x5e26d9=_0xc538a5;_0x218858[_0x32ef('0x56')]=_[_0x32ef('0x53')](db['WhatsappInteraction'][_0x32ef('0x37')]);_0x218858[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x12262a[_0x32ef('0x3f')]);_0x218858[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x218858[_0x32ef('0x56')],_0x218858['query']);_0x56a76c[_0x32ef('0x42')]=_['intersection'](_0x218858[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x12262a[_0x32ef('0x3f')]['fields']));_0x56a76c['attributes']=_0x56a76c[_0x32ef('0x42')][_0x32ef('0x48')]?_0x56a76c[_0x32ef('0x42')]:_0x218858[_0x32ef('0x56')];_0x56a76c[_0x32ef('0xba')]=qs['sort'](_0x12262a[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x56a76c[_0x32ef('0x3e')]=qs['filters'](_['pick'](_0x12262a[_0x32ef('0x3f')],_0x218858[_0x32ef('0x54')]));if(_0x12262a[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x56a76c[_0x32ef('0x3e')]=_['merge'](_0x56a76c['where'],{'$or':_[_0x32ef('0x30')](_0x56a76c['attributes'],function(_0x5d0c73){var _0x4ee148={};_0x4ee148[_0x5d0c73]={'$like':'%'+_0x12262a[_0x32ef('0x3f')]['filter']+'%'};return _0x4ee148;})});}_0x56a76c=_[_0x32ef('0x58')]({},_0x56a76c,_0x12262a['options']);return _0x5e26d9[_0x32ef('0xd9')](_0x56a76c);}})['then'](function(_0x415a15){if(_0x415a15){_0x1b274e=_0x415a15[_0x32ef('0x48')];if(!_0x12262a['query'][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x56a76c[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x12262a[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x56a76c['offset']=qs[_0x32ef('0x1f')](_0x12262a[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x5e26d9[_0x32ef('0xd9')](_0x56a76c);}})[_0x32ef('0x26')](function(_0x120371){if(_0x120371){return _0x120371?{'count':_0x1b274e,'rows':_0x120371}:null;}})[_0x32ef('0x26')](respondWithResult(_0x280791,null))[_0x32ef('0x1b')](handleError(_0x280791,null));};exports['login']=function(_0x3169e4,_0x2931a9,_0xeef05a){var _0x3bbae5;var _0x139d53;var _0x281ede;var _0x48a855=!_['isNil'](_0x3169e4[_0x32ef('0x51')]['id'])?_0x3169e4[_0x32ef('0x51')]['id']:!_[_0x32ef('0x64')](_0x3169e4[_0x32ef('0x2b')]['id'])?_0x3169e4[_0x32ef('0x2b')]['id']:null;return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x48a855,'role':{'$or':['admin',_0x32ef('0x2b'),'agent']}},'attributes':['id',_0x32ef('0x33'),_0x32ef('0xda'),_0x32ef('0xdb'),_0x32ef('0x29'),_0x32ef('0x5f'),'loginInPause']})[_0x32ef('0x26')](function(_0x5ef29b){if(_0x5ef29b){if(_0x5ef29b[_0x32ef('0x29')]===_0x32ef('0x2c')){_0x3bbae5=_0x5ef29b;if(_0x3169e4[_0x32ef('0x5c')][_0x32ef('0x94')]){_0x281ede=util[_0x32ef('0xdc')](_0x32ef('0xdd'),_0x3bbae5[_0x3169e4[_0x32ef('0x5c')][_0x32ef('0x94')]]);}else if(_0x3169e4[_0x32ef('0x5c')][_0x32ef('0xde')]){_0x281ede=util[_0x32ef('0xdc')](_0x32ef('0x9f'),_0x3169e4['body']['intrf']);}else{_0x281ede=util[_0x32ef('0xdc')](_0x32ef('0x9f'),_0x3bbae5[_0x32ef('0x33')]);}socket['to'](util[_0x32ef('0xdc')](_0x32ef('0xdf'),_0x3bbae5['name']))[_0x32ef('0x9d')]('user:forcelogout',{'user':{'id':_0x3bbae5['id'],'name':_0x3bbae5['name']},'ip':_0x3169e4[_0x32ef('0xe0')][_0x32ef('0xe1')]||_0x3169e4[_0x32ef('0xe2')][_0x32ef('0xe3')]||_0x3169e4[_0x32ef('0xe4')]['remoteAddress']||_0x3169e4[_0x32ef('0xe2')][_0x32ef('0xe4')][_0x32ef('0xe3')]});return db['UserVoiceQueueRt']['destroy']({'where':{'membername':_0x3bbae5['name']},'individualHooks':!![]});}}else{throw new db[(_0x32ef('0x87'))][(_0x32ef('0x85'))](_0x32ef('0xe5'));}})[_0x32ef('0x26')](function(){if(_0x3bbae5){return _0x3bbae5[_0x32ef('0xe6')]({'raw':!![]});}})['then'](function(_0x3f6df6){if(_0x3bbae5){var _0x105e9e=[];if(_0x3f6df6){_0x139d53=_0x3f6df6;if(_0x139d53[_0x32ef('0x48')]){for(var _0x4b7d7d=0x0;_0x4b7d7d<_0x139d53[_0x32ef('0x48')];_0x4b7d7d++){_0x105e9e['push']({'membername':_0x3bbae5[_0x32ef('0x33')],'UserId':_0x3bbae5['id'],'queue_name':_0x139d53[_0x4b7d7d][_0x32ef('0x33')],'VoiceQueueId':_0x139d53[_0x4b7d7d]['id'],'interface':_0x281ede,'paused':_0x3bbae5[_0x32ef('0x92')]||![],'penalty':_0x139d53[_0x4b7d7d][_0x32ef('0xe7')]||0x0});}return BPromise[_0x32ef('0x7e')](_0x105e9e,function(_0x532bb4){return db[_0x32ef('0xa4')][_0x32ef('0xa0')](_0x532bb4);});}}}})[_0x32ef('0x26')](function(){if(_0x3bbae5){return db[_0x32ef('0xe8')]['findAll']({'where':{'membername':_0x3bbae5[_0x32ef('0x33')],'exitAt':null}});}})[_0x32ef('0x26')](function(_0x1859b5){if(_0x3bbae5){var _0x15a427=[];_0x1859b5[_0x32ef('0xe9')](function(_0x2187cc){_0x15a427[_0x32ef('0x43')](_0x2187cc[_0x32ef('0x25')]({'exitAt':moment()[_0x32ef('0xdc')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x32ef('0x4f')](_0x15a427);}})[_0x32ef('0x26')](function(){if(_0x3bbae5){var _0x2a0918=[];var _0x24918d=[];var _0x219042=utils['getChannels']();var _0x3ff669={'membername':_0x3bbae5[_0x32ef('0x33')],'interface':_0x281ede,'enterAt':moment()['format'](_0x32ef('0xea')),'role':_0x3bbae5[_0x32ef('0x29')],'internal':_0x3bbae5[_0x32ef('0x5f')]};_0x219042[_0x32ef('0xe9')](function(_0x3f69ca){_0x2a0918[_0x32ef('0x43')](_[_0x32ef('0x58')]({'channel':_0x3f69ca,'type':'LOGIN','data1':_0x3169e4[_0x32ef('0x5c')][_0x32ef('0xeb')],'data2':_0x281ede},_0x3ff669));if(_0x3bbae5[_0x32ef('0x92')]){_0x24918d[_0x32ef('0x43')](_['merge']({'channel':_0x3f69ca,'type':'PAUSE','data1':_0x32ef('0xec')},_0x3ff669));}});return db[_0x32ef('0xe8')][_0x32ef('0x7c')](_0x2a0918[_0x32ef('0xed')](_0x24918d),{'individualHooks':!![]});}})[_0x32ef('0x26')](function(){if(_0x3bbae5){return _0x3bbae5['update']({'online':!![],'lastLoginAt':moment()['format'](_0x32ef('0xea')),'voicePause':_0x3bbae5[_0x32ef('0x92')]||![],'mailPause':_0x3bbae5[_0x32ef('0x92')]||![],'chatPause':_0x3bbae5[_0x32ef('0x92')]||![],'faxPause':_0x3bbae5[_0x32ef('0x92')]||![],'smsPause':_0x3bbae5[_0x32ef('0x92')]||![],'openchannelPause':_0x3bbae5['loginInPause']||![],'whatsappPause':_0x3bbae5[_0x32ef('0x92')]||![],'pauseType':_0x3bbae5[_0x32ef('0x92')]?_0x32ef('0xec'):null,'interface':_0x281ede,'lastPauseAt':moment()[_0x32ef('0xdc')](_0x32ef('0xea'))});}})[_0x32ef('0x26')](function(_0x1ce194){if(_0x3169e4[_0x32ef('0xee')]){return _0xeef05a();}else{return BPromise[_0x32ef('0xef')](_0x1ce194)[_0x32ef('0x26')](respondWithResult(_0x2931a9,null));}})[_0x32ef('0x1b')](handleError(_0x2931a9,null));};exports['logout']=function(_0xbd65ba,_0x2c1bf9){var _0x14a11b;return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0xbd65ba[_0x32ef('0x51')]['id'],'role':_0x32ef('0x2c')},'attributes':['id',_0x32ef('0x33'),_0x32ef('0x29')]})[_0x32ef('0x26')](handleEntityNotFound(_0x2c1bf9,null))[_0x32ef('0x26')](function(_0x4b912d){if(_0x4b912d){_0x14a11b=_0x4b912d;return db[_0x32ef('0xa4')][_0x32ef('0x27')]({'where':{'membername':_0x14a11b[_0x32ef('0x33')]},'individualHooks':!![]});}})[_0x32ef('0x26')](function(){return db[_0x32ef('0xe8')][_0x32ef('0x45')]({'where':{'membername':_0x14a11b[_0x32ef('0x33')],'exitAt':null}});})[_0x32ef('0x26')](function(_0x4ac957){var _0x5ed9fd=[];_0x4ac957['forEach'](function(_0x1187e7){_0x5ed9fd[_0x32ef('0x43')](_0x1187e7[_0x32ef('0x25')]({'exitAt':moment()[_0x32ef('0xdc')](_0x32ef('0xea'))}));});return BPromise['all'](_0x5ed9fd);})[_0x32ef('0x26')](function(){return _0x14a11b['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})['then'](respondWithResult(_0x2c1bf9,null))[_0x32ef('0x1b')](handleError(_0x2c1bf9,null));};exports[_0x32ef('0xf0')]=function(_0x19b38b,_0x4733ab){var _0x57e271;return db[_0x32ef('0xa4')]['update']({'paused':0x1},{'where':{'UserId':_0x19b38b[_0x32ef('0x51')]['id']},'individualHooks':!![]})[_0x32ef('0x26')](function(){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x19b38b[_0x32ef('0x51')]['id'],'role':_0x32ef('0x2c')},'attributes':['id',_0x32ef('0x33'),_0x32ef('0x29'),_0x32ef('0x5f'),'interface']});})[_0x32ef('0x26')](handleEntityNotFound(_0x4733ab,null))[_0x32ef('0x26')](function(_0x23b614){if(_0x23b614){_0x57e271=_0x23b614;return respondWithRpcPromise(_0x32ef('0xf1'),'pause',{'id':_0x57e271['id'],'name':_0x57e271[_0x32ef('0x33')],'pause':!![]});}})[_0x32ef('0x26')](function(){if(_0x57e271){return db['MemberReport'][_0x32ef('0x45')]({'where':{'membername':_0x57e271[_0x32ef('0x33')],'type':_0x32ef('0xf2'),'exitAt':null}});}})[_0x32ef('0x26')](function(_0x2343c8){if(_0x2343c8['length']){var _0x49cd73=moment()[_0x32ef('0xdc')](_0x32ef('0xea'));for(var _0x5f2ef2=0x0,_0x2e4b11=_0x2343c8[_0x32ef('0x48')];_0x5f2ef2<_0x2e4b11;_0x5f2ef2++){_0x2343c8[_0x5f2ef2][_0x32ef('0xf3')]({'exitAt':_0x49cd73});}}})['then'](function(){var _0x5a2fb7=[];var _0x92bf2a=utils[_0x32ef('0xf4')]();_0x92bf2a[_0x32ef('0xe9')](function(_0x6a17a4){_0x5a2fb7[_0x32ef('0x43')]({'channel':_0x6a17a4,'membername':_0x57e271[_0x32ef('0x33')],'interface':_[_0x32ef('0x64')](_0x57e271['interface'])?util[_0x32ef('0xdc')]('SIP/%s',_0x57e271[_0x32ef('0x33')]):_0x57e271['interface'],'type':_0x32ef('0xf2'),'enterAt':moment()[_0x32ef('0xdc')](_0x32ef('0xea')),'data1':_0x19b38b[_0x32ef('0x5c')]['type']||_0x32ef('0xf5'),'role':_0x57e271['role'],'internal':_0x57e271[_0x32ef('0x5f')]});});return db['MemberReport'][_0x32ef('0x7c')](_0x5a2fb7,{'individualHooks':!![]});})[_0x32ef('0x26')](function(){return _0x57e271[_0x32ef('0x25')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x19b38b[_0x32ef('0x5c')]['type']||_0x32ef('0xf5'),'lastPauseAt':moment()['format'](_0x32ef('0xea'))});})[_0x32ef('0x26')](respondWithResult(_0x4733ab,null))[_0x32ef('0x1b')](handleError(_0x4733ab,null));};exports['unpause']=function(_0x130b2b,_0x180fa4){var _0x54c5ca;return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x130b2b[_0x32ef('0x51')]['id']},'attributes':['id',_0x32ef('0x33'),'role',_0x32ef('0x93'),_0x32ef('0xf6'),_0x32ef('0xf7'),_0x32ef('0xf8'),'openchannelPause','smsPause','whatsapppause',_0x32ef('0xf9'),_0x32ef('0xfa')]})[_0x32ef('0x26')](handleEntityNotFound(_0x180fa4,null))[_0x32ef('0x26')](function(_0x4687d1){if(_0x4687d1){_0x54c5ca=_0x4687d1;if(_0x130b2b['body'][_0x32ef('0x90')]&&!utils[_0x32ef('0x95')](_0x130b2b[_0x32ef('0x5c')][_0x32ef('0x90')])){throw new db[(_0x32ef('0x87'))][(_0x32ef('0x85'))](_0x32ef('0xa1'));}switch(_0x130b2b['body'][_0x32ef('0x90')]){case'voice':return respondWithRpcPromise(_0x32ef('0xf1'),_0x32ef('0xfb'),{'id':_0x54c5ca['id'],'name':_0x54c5ca[_0x32ef('0x33')],'pause':![]})['then'](function(){return db[_0x32ef('0xa4')][_0x32ef('0x25')]({'paused':0x0},{'where':{'UserId':_0x54c5ca['id']},'individualHooks':!![]});})[_0x32ef('0x26')](function(){return db['MemberReport']['find']({'where':{'channel':_0x130b2b[_0x32ef('0x5c')][_0x32ef('0x90')],'membername':_0x54c5ca[_0x32ef('0x33')],'type':_0x32ef('0xf2'),'exitAt':null}});})[_0x32ef('0x26')](function(_0x3cdd3a){if(_0x3cdd3a){return _0x3cdd3a[_0x32ef('0x25')]({'exitAt':moment()[_0x32ef('0xdc')](_0x32ef('0xea')),'data2':_0x32ef('0xfc')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x54c5ca['update']({'voicePause':![]});});case _0x32ef('0x4d'):case'chat':case _0x32ef('0x4c'):case'sms':case _0x32ef('0x5b'):case _0x32ef('0x4e'):return db[_0x32ef('0xe8')][_0x32ef('0x32')]({'where':{'channel':_0x130b2b[_0x32ef('0x5c')][_0x32ef('0x90')],'membername':_0x54c5ca['name'],'type':_0x32ef('0xf2'),'exitAt':null}})[_0x32ef('0x26')](function(_0x81cc8){if(_0x81cc8){return _0x81cc8['update']({'exitAt':moment()[_0x32ef('0xdc')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x32ef('0xfc')},{'individualHooks':!![]});}return null;})[_0x32ef('0x26')](function(){var _0x388304={};_[_0x32ef('0x24')](_0x388304,util['format'](_0x32ef('0xfd'),_0x130b2b['body'][_0x32ef('0x90')],_0x32ef('0xfe')),![]);return _0x54c5ca[_0x32ef('0x25')](_0x388304);});default:return respondWithRpcPromise('QueuePause',_0x32ef('0xfb'),{'id':_0x54c5ca['id'],'name':_0x54c5ca[_0x32ef('0x33')],'pause':![]})[_0x32ef('0x26')](function(){return db[_0x32ef('0xa4')][_0x32ef('0x25')]({'paused':0x0},{'where':{'UserId':_0x54c5ca['id']}});})[_0x32ef('0x26')](function(){return db[_0x32ef('0xe8')][_0x32ef('0x45')]({'where':{'membername':_0x54c5ca[_0x32ef('0x33')],'type':_0x32ef('0xf2'),'exitAt':null}});})['then'](function(_0x3558eb){var _0x4c36bd=[];_0x3558eb[_0x32ef('0xe9')](function(_0x50de1f){_0x4c36bd[_0x32ef('0x43')](_0x50de1f['update']({'exitAt':moment()[_0x32ef('0xdc')](_0x32ef('0xea')),'data2':'manual'}));});return BPromise['all'](_0x4c36bd);})[_0x32ef('0x26')](function(){return _0x54c5ca[_0x32ef('0x25')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})[_0x32ef('0x26')](respondWithResult(_0x180fa4,null))['catch'](handleError(_0x180fa4,null));};exports[_0x32ef('0xff')]=function(_0x4a19b5,_0x3f3a51){var _0xc28ca5={};var _0x185d8f={};var _0x2c3837;var _0x43382f;return db[_0x32ef('0x44')]['findOne']({'where':{'id':_0x4a19b5[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x3f3a51,null))[_0x32ef('0x26')](function(_0x349542){if(_0x349542){_0x2c3837=_0x349542;_0x185d8f[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0x100')][_0x32ef('0x37')]);_0x185d8f[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x4a19b5['query']);_0x185d8f[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x185d8f['model'],_0x185d8f[_0x32ef('0x3f')]);_0xc28ca5['attributes']=_['intersection'](_0x185d8f[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x4a19b5[_0x32ef('0x3f')][_0x32ef('0x57')]));_0xc28ca5['attributes']=_0xc28ca5[_0x32ef('0x42')][_0x32ef('0x48')]?_0xc28ca5[_0x32ef('0x42')]:_0x185d8f[_0x32ef('0x56')];_0xc28ca5[_0x32ef('0xba')]=qs['sort'](_0x4a19b5[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0xc28ca5[_0x32ef('0x3e')]=qs['filters'](_['pick'](_0x4a19b5['query'],_0x185d8f[_0x32ef('0x54')]));if(_0x4a19b5[_0x32ef('0x3f')]['filter']){_0xc28ca5['where']=_['merge'](_0xc28ca5[_0x32ef('0x3e')],{'$or':_['map'](_0xc28ca5['attributes'],function(_0x25fee1){var _0x11af22={};_0x11af22[_0x25fee1]={'$like':'%'+_0x4a19b5['query'][_0x32ef('0x2e')]+'%'};return _0x11af22;})});}_0xc28ca5=_[_0x32ef('0x58')]({},_0xc28ca5,_0x4a19b5[_0x32ef('0x59')]);return _0x2c3837['getTeams'](_0xc28ca5);}})[_0x32ef('0x26')](function(_0x463aad){if(_0x463aad){_0x43382f=_0x463aad[_0x32ef('0x48')];if(!_0x4a19b5[_0x32ef('0x3f')][_0x32ef('0xbc')]('nolimit')){_0xc28ca5[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x4a19b5[_0x32ef('0x3f')][_0x32ef('0x22')]);_0xc28ca5[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x4a19b5[_0x32ef('0x3f')]['offset']);}return _0x2c3837['getTeams'](_0xc28ca5);}})[_0x32ef('0x26')](function(_0x218bea){if(_0x218bea){return _0x218bea?{'count':_0x43382f,'rows':_0x218bea}:null;}})[_0x32ef('0x26')](respondWithResult(_0x3f3a51,null))[_0x32ef('0x1b')](handleError(_0x3f3a51,null));};exports['addTeams']=function(_0x5c1daa,_0x565ed6){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x5c1daa[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0x565ed6,null))[_0x32ef('0x26')](function(_0x5ddece){if(_0x5ddece){var _0x37b447=_0x5ddece[_0x32ef('0x28')]({'plain':!![]});return _0x5ddece[_0x32ef('0x101')](_0x5c1daa['body'][_0x32ef('0x9b')],_[_0x32ef('0x5e')](_0x5c1daa['body'],[_0x32ef('0x9b'),'id'])||{})[_0x32ef('0x26')](function(){for(var _0x43baaf=0x0;_0x43baaf<_0x5c1daa['body'][_0x32ef('0x9b')][_0x32ef('0x48')];_0x43baaf++){var _0x422745=[];var _0x95c02c={};db['Team']['findOne']({'where':{'id':_0x5c1daa[_0x32ef('0x5c')][_0x32ef('0x9b')][_0x43baaf]}})[_0x32ef('0x26')](function(_0x3385a9){_0x95c02c=_0x3385a9['dataValues'];_0x422745[_0x32ef('0x43')](_0x3385a9[_0x32ef('0xe6')]()[_0x32ef('0x26')](function(_0x2f9f8d){for(var _0x371ed1=0x0;_0x371ed1<_0x2f9f8d['length'];_0x371ed1++){_0x2f9f8d[_0x371ed1][_0x32ef('0x102')](_0x32ef('0x90'),'Voice');}return _0x2f9f8d;}));_0x422745[_0x32ef('0x43')](_0x3385a9[_0x32ef('0x103')]()[_0x32ef('0x26')](function(_0x3aea2a){for(var _0x4fc769=0x0;_0x4fc769<_0x3aea2a[_0x32ef('0x48')];_0x4fc769++){_0x3aea2a[_0x4fc769]['setDataValue'](_0x32ef('0x90'),_0x32ef('0x104'));}return _0x3aea2a;}));_0x422745['push'](_0x3385a9['getMailQueues']()[_0x32ef('0x26')](function(_0x4f0096){for(var _0x28c69f=0x0;_0x28c69f<_0x4f0096['length'];_0x28c69f++){_0x4f0096[_0x28c69f][_0x32ef('0x102')](_0x32ef('0x90'),_0x32ef('0x105'));}return _0x4f0096;}));_0x422745[_0x32ef('0x43')](_0x3385a9[_0x32ef('0x106')]()[_0x32ef('0x26')](function(_0x4e4462){for(var _0x39c342=0x0;_0x39c342<_0x4e4462[_0x32ef('0x48')];_0x39c342++){_0x4e4462[_0x39c342][_0x32ef('0x102')](_0x32ef('0x90'),_0x32ef('0x107'));}return _0x4e4462;}));_0x422745['push'](_0x3385a9['getWhatsappQueues']()[_0x32ef('0x26')](function(_0x478ca5){for(var _0x16e6f2=0x0;_0x16e6f2<_0x478ca5[_0x32ef('0x48')];_0x16e6f2++){_0x478ca5[_0x16e6f2][_0x32ef('0x102')](_0x32ef('0x90'),_0x32ef('0x108'));}return _0x478ca5;}));_0x422745['push'](_0x3385a9['getFaxQueues']()['then'](function(_0x3778da){for(var _0x536a34=0x0;_0x536a34<_0x3778da[_0x32ef('0x48')];_0x536a34++){_0x3778da[_0x536a34][_0x32ef('0x102')](_0x32ef('0x90'),_0x32ef('0x109'));}return _0x3778da;}));_0x422745[_0x32ef('0x43')](_0x3385a9['getOpenchannelQueues']()[_0x32ef('0x26')](function(_0x560096){for(var _0x138df0=0x0;_0x138df0<_0x560096['length'];_0x138df0++){_0x560096[_0x138df0][_0x32ef('0x102')]('channel',_0x32ef('0x10a'));}return _0x560096;}));return BPromise[_0x32ef('0x4f')](_0x422745);})['then'](function(_0x3acb08){var _0xeda766=_[_0x32ef('0x10b')](_0x3acb08);_0x422745=[];return db[_0x32ef('0x66')][_0x32ef('0x10c')](function(_0x3527cd){for(var _0xc0d116=0x0;_0xc0d116<_0xeda766[_0x32ef('0x48')];_0xc0d116++){_0x422745[_0x32ef('0x43')](_0xeda766[_0xc0d116][_0x32ef('0x10d')](_0x37b447['id']),{'transaction':_0x3527cd});}return BPromise[_0x32ef('0x4f')](_0x422745)[_0x32ef('0x26')](function(){if(_0x37b447[_0x32ef('0x91')]){return BPromise[_0x32ef('0x7e')](_[_0x32ef('0x2e')](_0xeda766,function(_0x24774b){return _0x24774b[_0x32ef('0x10e')]('channel')==='Voice';}),function(_0x5dd8ce){return db[_0x32ef('0xa4')][_0x32ef('0xa0')]({'membername':_0x37b447[_0x32ef('0x33')],'UserId':_0x37b447['id'],'queue_name':_0x5dd8ce[_0x32ef('0x33')],'VoiceQueueId':_0x5dd8ce['id'],'interface':_[_0x32ef('0x64')](_0x37b447[_0x32ef('0x94')])?util[_0x32ef('0xdc')](_0x32ef('0x9f'),_0x37b447['name']):_0x37b447[_0x32ef('0x94')],'paused':_0x37b447[_0x32ef('0x93')]||![],'penalty':_0x37b447[_0x32ef('0x99')]},{'transaction':_0x3527cd});});}else{return;}})[_0x32ef('0x26')](function(){for(var _0x127a77=0x0;_0x127a77<_0xeda766[_0x32ef('0x48')];_0x127a77++){var _0x25d0c9=_0xeda766[_0x127a77][_0x32ef('0x10e')](_0x32ef('0x90'));var _0x574463=_0x25d0c9+'QueueId';socket[_0x32ef('0x9d')]('user'+_0x25d0c9+'Queue:save',{'UserId':_0x37b447['id'],['queueField']:_0xeda766[_0x127a77]['id']});}});});})[_0x32ef('0x26')](function(){db[_0x32ef('0x10f')][_0x32ef('0xb9')]({'where':{'teamId':_0x95c02c['id']}})['then'](function(_0x571f43){if(_0x571f43){db[_0x32ef('0x110')][_0x32ef('0x7b')]({'UserId':_0x5c1daa['params']['id'],'VoicePrefixId':_0x571f43[_0x32ef('0x111')]});}});});}});}})[_0x32ef('0x26')](respondWithStatusCode(_0x565ed6,null))[_0x32ef('0x1b')](handleError(_0x565ed6,null));};exports[_0x32ef('0x112')]=function(_0x4ffee3,_0x126d3d){return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0x4ffee3[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x126d3d,null))[_0x32ef('0x26')](function(_0x3951d7){if(_0x3951d7){var _0x1756d3=_0x3951d7[_0x32ef('0x28')]({'plain':!![]});var _0x1b32da=_0x4ffee3[_0x32ef('0x3f')][_0x32ef('0x9b')];return _0x3951d7[_0x32ef('0x112')](_0x1b32da)['then'](function(){for(var _0x14f0d2=0x0;_0x14f0d2<_0x1b32da[_0x32ef('0x48')];_0x14f0d2++){var _0x25ec80=[];var _0x123d32={};db[_0x32ef('0x100')]['findOne']({'where':{'id':_0x1b32da[_0x14f0d2]}})['then'](function(_0x4ee687){_0x123d32=_0x4ee687['dataValues'];_0x25ec80[_0x32ef('0x43')](_0x4ee687[_0x32ef('0xe6')]()[_0x32ef('0x26')](function(_0x1e3391){for(var _0x38e2e4=0x0;_0x38e2e4<_0x1e3391[_0x32ef('0x48')];_0x38e2e4++){_0x1e3391[_0x38e2e4][_0x32ef('0x102')](_0x32ef('0x90'),'Voice');}return _0x1e3391;}));_0x25ec80['push'](_0x4ee687[_0x32ef('0x103')]()[_0x32ef('0x26')](function(_0x85cdc1){for(var _0x42a2d8=0x0;_0x42a2d8<_0x85cdc1[_0x32ef('0x48')];_0x42a2d8++){_0x85cdc1[_0x42a2d8][_0x32ef('0x102')](_0x32ef('0x90'),_0x32ef('0x104'));}return _0x85cdc1;}));_0x25ec80[_0x32ef('0x43')](_0x4ee687[_0x32ef('0x113')]()[_0x32ef('0x26')](function(_0x4e7ee2){for(var _0x41e510=0x0;_0x41e510<_0x4e7ee2['length'];_0x41e510++){_0x4e7ee2[_0x41e510][_0x32ef('0x102')](_0x32ef('0x90'),'Mail');}return _0x4e7ee2;}));_0x25ec80[_0x32ef('0x43')](_0x4ee687['getSmsQueues']()[_0x32ef('0x26')](function(_0x1bf151){for(var _0x2b30ea=0x0;_0x2b30ea<_0x1bf151['length'];_0x2b30ea++){_0x1bf151[_0x2b30ea][_0x32ef('0x102')](_0x32ef('0x90'),'Sms');}return _0x1bf151;}));_0x25ec80[_0x32ef('0x43')](_0x4ee687[_0x32ef('0x114')]()[_0x32ef('0x26')](function(_0x339269){for(var _0x150418=0x0;_0x150418<_0x339269[_0x32ef('0x48')];_0x150418++){_0x339269[_0x150418]['setDataValue'](_0x32ef('0x90'),_0x32ef('0x108'));}return _0x339269;}));_0x25ec80['push'](_0x4ee687['getFaxQueues']()['then'](function(_0x3beb3e){for(var _0x4553e7=0x0;_0x4553e7<_0x3beb3e[_0x32ef('0x48')];_0x4553e7++){_0x3beb3e[_0x4553e7][_0x32ef('0x102')](_0x32ef('0x90'),_0x32ef('0x109'));}return _0x3beb3e;}));_0x25ec80[_0x32ef('0x43')](_0x4ee687[_0x32ef('0x115')]()[_0x32ef('0x26')](function(_0x105f33){for(var _0x2ab3bc=0x0;_0x2ab3bc<_0x105f33[_0x32ef('0x48')];_0x2ab3bc++){_0x105f33[_0x2ab3bc][_0x32ef('0x102')](_0x32ef('0x90'),'Openchannel');}return _0x105f33;}));return BPromise['all'](_0x25ec80);})[_0x32ef('0x26')](function(_0x4a7f69){var _0x49c2a4=_['flatten'](_0x4a7f69);_0x25ec80=[];return db['sequelize'][_0x32ef('0x10c')](function(_0x485ab6){for(var _0x1d0ccd=0x0;_0x1d0ccd<_0x49c2a4[_0x32ef('0x48')];_0x1d0ccd++){_0x25ec80[_0x32ef('0x43')](_0x49c2a4[_0x1d0ccd]['removeAgent'](_0x1756d3['id']),{'transaction':_0x485ab6});}return BPromise[_0x32ef('0x4f')](_0x25ec80)[_0x32ef('0x26')](function(){if(_0x1756d3[_0x32ef('0x91')]){return BPromise[_0x32ef('0x7e')](_[_0x32ef('0x2e')](_0x49c2a4,function(_0xc0cb3f){return _0xc0cb3f[_0x32ef('0x10e')](_0x32ef('0x90'))===_0x32ef('0x116');}),function(_0xd4298){return db['UserVoiceQueueRt'][_0x32ef('0x27')]({'where':{'VoiceQueueId':_0xd4298['id'],'UserId':_0x1756d3['id']},'transaction':_0x485ab6});});}else{return;}})[_0x32ef('0x26')](function(){db['TeamVoicePrefix'][_0x32ef('0xb9')]({'where':{'teamId':_0x123d32['id']}})['then'](function(_0x2c6e76){if(_0x2c6e76){return db['UserVoicePrefix']['destroy']({'where':{'UserId':_0x1756d3['id'],'VoicePrefixId':_0x2c6e76[_0x32ef('0x4a')]['VoicePrefixId']}});}});})['then'](function(){for(var _0xff9164=0x0;_0xff9164<_0x49c2a4['length'];_0xff9164++){var _0x6c811e=_0x49c2a4[_0xff9164][_0x32ef('0x10e')](_0x32ef('0x90'));var _0x2b002e=_0x6c811e+_0x32ef('0x9c');socket['emit'](_0x32ef('0x2b')+_0x6c811e+_0x32ef('0xa3'),{'UserId':_0x1756d3['id'],['queueField']:_0x49c2a4[_0xff9164]['id']});}});});});}});}})[_0x32ef('0x26')](respondWithStatusCode(_0x126d3d,null))['catch'](handleError(_0x126d3d,null));};exports[_0x32ef('0x117')]=function(_0x6fb216,_0x3c0d29){var _0x295e63={};var _0x188c94={};var _0x2bb882;var _0x424693;return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0x6fb216['params']['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x3c0d29,null))['then'](function(_0x42089c){if(_0x42089c){_0x2bb882=_0x42089c;_0x188c94[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0xbd')][_0x32ef('0x37')]);_0x188c94[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x6fb216[_0x32ef('0x3f')]);_0x188c94[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x188c94[_0x32ef('0x56')],_0x188c94[_0x32ef('0x3f')]);_0x295e63[_0x32ef('0x42')]=_['intersection'](_0x188c94[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x6fb216[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x295e63[_0x32ef('0x42')]=_0x295e63[_0x32ef('0x42')][_0x32ef('0x48')]?_0x295e63[_0x32ef('0x42')]:_0x188c94[_0x32ef('0x56')];_0x295e63['order']=qs[_0x32ef('0xc7')](_0x6fb216[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x295e63[_0x32ef('0x3e')]=qs['filters'](_[_0x32ef('0xbb')](_0x6fb216['query'],_0x188c94['filters']));if(_0x6fb216[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x295e63['where']=_['merge'](_0x295e63[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x295e63[_0x32ef('0x42')],function(_0x4f5dc1){var _0x356c16={};_0x356c16[_0x4f5dc1]={'$like':'%'+_0x6fb216[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x356c16;})});}_0x295e63=_[_0x32ef('0x58')]({},_0x295e63,_0x6fb216[_0x32ef('0x59')]);return _0x2bb882[_0x32ef('0x117')](_0x295e63);}})[_0x32ef('0x26')](function(_0x2292d9){if(_0x2292d9){_0x424693=_0x2292d9[_0x32ef('0x48')];if(!_0x6fb216[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x295e63[_0x32ef('0x22')]=qs['limit'](_0x6fb216[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x295e63[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x6fb216[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x2bb882[_0x32ef('0x117')](_0x295e63);}})[_0x32ef('0x26')](function(_0x1d3604){if(_0x1d3604){return _0x1d3604?{'count':_0x424693,'rows':_0x1d3604}:null;}})[_0x32ef('0x26')](respondWithResult(_0x3c0d29,null))['catch'](handleError(_0x3c0d29,null));};exports[_0x32ef('0x118')]=function(_0x246e54,_0x286c7e){var _0x150100={};var _0x340405={};var _0x437066;var _0x3f8436;return db[_0x32ef('0x44')]['findOne']({'where':{'id':_0x246e54['params']['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x286c7e,null))[_0x32ef('0x26')](function(_0x1574ea){if(_0x1574ea){_0x437066=_0x1574ea;_0x340405[_0x32ef('0x56')]=_['keys'](db[_0x32ef('0x44')][_0x32ef('0x37')]);_0x340405[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x246e54[_0x32ef('0x3f')]);_0x340405[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x340405[_0x32ef('0x56')],_0x340405[_0x32ef('0x3f')]);_0x150100['attributes']=_[_0x32ef('0x55')](_0x340405[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x246e54[_0x32ef('0x3f')]['fields']));_0x150100[_0x32ef('0x42')]=_0x150100['attributes'][_0x32ef('0x48')]?_0x150100['attributes']:_0x340405[_0x32ef('0x56')];_0x150100[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x246e54[_0x32ef('0x3f')]['sort']);_0x150100[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x246e54['query'],_0x340405['filters']));if(_0x246e54[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x150100[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0x150100[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x150100[_0x32ef('0x42')],function(_0x27f352){var _0x30a340={};_0x30a340[_0x27f352]={'$like':'%'+_0x246e54['query'][_0x32ef('0x2e')]+'%'};return _0x30a340;})});}_0x150100[_0x32ef('0x56')]=db[_0x32ef('0x44')];_0x150100['as']=_0x32ef('0x7a');_0x150100=_[_0x32ef('0x58')]({},_0x150100,_0x246e54['options']);return _0x437066[_0x32ef('0xe6')]({'include':[_0x150100]});}})[_0x32ef('0x26')](function(_0x2bdbb2){if(_0x2bdbb2){var _0x319e9a={},_0x55e6a7=[],_0x213140=0x0;for(var _0x22e816=0x0;_0x22e816<_0x2bdbb2['length'];_0x22e816+=0x1){for(var _0x238871=0x0,_0x33d72e;_0x238871<_0x2bdbb2[_0x22e816]['Agents'][_0x32ef('0x48')];_0x238871+=0x1){_0x33d72e=_0x2bdbb2[_0x22e816][_0x32ef('0x7a')][_0x238871]['get']({'plain':!![]});_0x319e9a[_0x33d72e['id']]=_0x33d72e;}}_0x319e9a=_[_0x32ef('0x119')](_0x319e9a);for(var _0x2a0f0a=qs[_0x32ef('0x1f')](_0x246e54['query'][_0x32ef('0x1f')]);_0x2a0f0a<_0x319e9a[_0x32ef('0x48')]&&_0x55e6a7[_0x32ef('0x48')]<qs[_0x32ef('0x22')](_0x246e54[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x2a0f0a+=0x1){if(_0x319e9a[_0x2a0f0a]){_0x55e6a7[_0x32ef('0x43')](_0x319e9a[_0x2a0f0a]);}}return{'count':_0x319e9a[_0x32ef('0x48')],'rows':_0x55e6a7};}})[_0x32ef('0x26')](respondWithResult(_0x286c7e,null))[_0x32ef('0x1b')](handleError(_0x286c7e,null));};exports[_0x32ef('0x27')]=function(_0x49611a,_0x257b3f){if(_0x49611a[_0x32ef('0x2b')]['id']==_0x49611a[_0x32ef('0x51')]['id']){return _0x257b3f[_0x32ef('0x23')](0x1f4)['send']({'message':_0x32ef('0x11a')});}return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x49611a[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x257b3f,null))[_0x32ef('0x26')](removeEntity(_0x257b3f,null))[_0x32ef('0x1b')](handleError(_0x257b3f,null));};exports['addChatInteractions']=function(_0x4d9111,_0x56d020){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x4d9111[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x56d020,null))[_0x32ef('0x26')](function(_0x58b8cc){if(_0x58b8cc){return _0x58b8cc['addChatInteractions'](_0x4d9111[_0x32ef('0x5c')][_0x32ef('0x9b')],_[_0x32ef('0x5e')](_0x4d9111[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{})[_0x32ef('0x9a')](function(){for(var _0x42ca32=0x0;_0x42ca32<_0x4d9111['body'][_0x32ef('0x9b')][_0x32ef('0x48')];_0x42ca32+=0x1){socket['emit'](_0x32ef('0x11b'),{'ChatInteractionId':Number(_0x4d9111[_0x32ef('0x5c')][_0x32ef('0x9b')][_0x42ca32]),'UserId':Number(_0x4d9111[_0x32ef('0x51')]['id'])});}return _0x4d9111[_0x32ef('0x5c')]['ids'];});}})[_0x32ef('0x26')](respondWithResult(_0x56d020,null))[_0x32ef('0x1b')](handleError(_0x56d020,null));};exports[_0x32ef('0x11c')]=function(_0x1928cd,_0x57de3c){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x1928cd[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0x57de3c,null))[_0x32ef('0x26')](function(_0x3f6adc){if(_0x3f6adc){return _0x3f6adc['removeChatInteractions'](_0x1928cd['query'][_0x32ef('0x9b')])['then'](function(){if(_[_0x32ef('0x11d')](_0x1928cd[_0x32ef('0x3f')][_0x32ef('0x9b')])){for(var _0x163573=0x0;_0x163573<_0x1928cd[_0x32ef('0x3f')][_0x32ef('0x9b')]['length'];_0x163573+=0x1){socket[_0x32ef('0x9d')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x1928cd['query'][_0x32ef('0x9b')][_0x163573]),'UserId':Number(_0x1928cd[_0x32ef('0x51')]['id'])});}}else{socket[_0x32ef('0x9d')](_0x32ef('0x11e'),{'ChatInteractionId':Number(_0x1928cd['query'][_0x32ef('0x9b')]),'UserId':Number(_0x1928cd[_0x32ef('0x51')]['id'])});}});}})[_0x32ef('0x26')](respondWithStatusCode(_0x57de3c,null))[_0x32ef('0x1b')](handleError(_0x57de3c,null));};exports[_0x32ef('0x11f')]=function(_0x256072,_0x4529d3){return db['User'][_0x32ef('0x32')]({'where':{'id':_0x256072[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0x4529d3,null))['then'](function(_0x2441fa){if(_0x2441fa){return _0x2441fa[_0x32ef('0x11f')](_0x256072[_0x32ef('0x5c')][_0x32ef('0x9b')],_['omit'](_0x256072[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{})[_0x32ef('0x9a')](function(){for(var _0x3ec8a4=0x0;_0x3ec8a4<_0x256072[_0x32ef('0x5c')][_0x32ef('0x9b')][_0x32ef('0x48')];_0x3ec8a4+=0x1){socket['emit'](_0x32ef('0x120'),{'MailInteractionId':Number(_0x256072['body'][_0x32ef('0x9b')][_0x3ec8a4]),'UserId':Number(_0x256072['params']['id'])});}return _0x256072[_0x32ef('0x5c')][_0x32ef('0x9b')];});}})['then'](respondWithResult(_0x4529d3,null))[_0x32ef('0x1b')](handleError(_0x4529d3,null));};exports[_0x32ef('0x121')]=function(_0x12347d,_0xadbf0b){return db['User']['find']({'where':{'id':_0x12347d[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0xadbf0b,null))['then'](function(_0x394a5e){if(_0x394a5e){return _0x394a5e['removeMailInteractions'](_0x12347d[_0x32ef('0x3f')][_0x32ef('0x9b')])[_0x32ef('0x26')](function(){if(_[_0x32ef('0x11d')](_0x12347d['query'][_0x32ef('0x9b')])){for(var _0x2f6e73=0x0;_0x2f6e73<_0x12347d[_0x32ef('0x3f')]['ids'][_0x32ef('0x48')];_0x2f6e73+=0x1){socket['emit'](_0x32ef('0x122'),{'MailInteractionId':Number(_0x12347d[_0x32ef('0x3f')][_0x32ef('0x9b')][_0x2f6e73]),'UserId':Number(_0x12347d['params']['id'])});}}else{socket['emit'](_0x32ef('0x122'),{'MailInteractionId':Number(_0x12347d[_0x32ef('0x3f')]['ids']),'UserId':Number(_0x12347d[_0x32ef('0x51')]['id'])});}});}})[_0x32ef('0x26')](respondWithStatusCode(_0xadbf0b,null))[_0x32ef('0x1b')](handleError(_0xadbf0b,null));};exports[_0x32ef('0x123')]=function(_0x2d9d4e,_0x5e04ca){return db['User'][_0x32ef('0x32')]({'where':{'id':_0x2d9d4e[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x5e04ca,null))[_0x32ef('0x26')](function(_0x614af2){if(_0x614af2){return _0x614af2[_0x32ef('0x123')](_0x2d9d4e[_0x32ef('0x5c')][_0x32ef('0x9b')],_[_0x32ef('0x5e')](_0x2d9d4e['body'],[_0x32ef('0x9b'),'id'])||{})['spread'](function(){for(var _0x511524=0x0;_0x511524<_0x2d9d4e[_0x32ef('0x5c')][_0x32ef('0x9b')][_0x32ef('0x48')];_0x511524+=0x1){socket[_0x32ef('0x9d')](_0x32ef('0x124'),{'FaxInteractionId':Number(_0x2d9d4e[_0x32ef('0x5c')]['ids'][_0x511524]),'UserId':Number(_0x2d9d4e[_0x32ef('0x51')]['id'])});}return _0x2d9d4e[_0x32ef('0x5c')][_0x32ef('0x9b')];});}})[_0x32ef('0x26')](respondWithResult(_0x5e04ca,null))[_0x32ef('0x1b')](handleError(_0x5e04ca,null));};exports[_0x32ef('0x125')]=function(_0x1f526d,_0xa5e793){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x1f526d[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0xa5e793,null))[_0x32ef('0x26')](function(_0x4993e6){if(_0x4993e6){return _0x4993e6[_0x32ef('0x125')](_0x1f526d[_0x32ef('0x3f')]['ids'])['then'](function(){if(_[_0x32ef('0x11d')](_0x1f526d[_0x32ef('0x3f')]['ids'])){for(var _0x359d65=0x0;_0x359d65<_0x1f526d[_0x32ef('0x3f')]['ids']['length'];_0x359d65+=0x1){socket[_0x32ef('0x9d')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x1f526d[_0x32ef('0x3f')][_0x32ef('0x9b')][_0x359d65]),'UserId':Number(_0x1f526d[_0x32ef('0x51')]['id'])});}}else{socket['emit'](_0x32ef('0x126'),{'FaxInteractionId':Number(_0x1f526d['query'][_0x32ef('0x9b')]),'UserId':Number(_0x1f526d[_0x32ef('0x51')]['id'])});}});}})[_0x32ef('0x26')](respondWithStatusCode(_0xa5e793,null))['catch'](handleError(_0xa5e793,null));};exports[_0x32ef('0x127')]=function(_0x59d386,_0x5ee545){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x59d386[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0x5ee545,null))[_0x32ef('0x26')](function(_0x480bde){if(_0x480bde){return _0x480bde[_0x32ef('0x127')](_0x59d386[_0x32ef('0x5c')]['ids'],_['omit'](_0x59d386['body'],[_0x32ef('0x9b'),'id'])||{})['spread'](function(){for(var _0x45701a=0x0;_0x45701a<_0x59d386[_0x32ef('0x5c')][_0x32ef('0x9b')][_0x32ef('0x48')];_0x45701a+=0x1){socket['emit'](_0x32ef('0x128'),{'SmsInteractionId':Number(_0x59d386['body'][_0x32ef('0x9b')][_0x45701a]),'UserId':Number(_0x59d386[_0x32ef('0x51')]['id'])});}return _0x59d386[_0x32ef('0x5c')]['ids'];});}})[_0x32ef('0x26')](respondWithResult(_0x5ee545,null))[_0x32ef('0x1b')](handleError(_0x5ee545,null));};exports['removeSmsInteractions']=function(_0x418ec8,_0x1d2ac7){return db['User'][_0x32ef('0x32')]({'where':{'id':_0x418ec8[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x1d2ac7,null))['then'](function(_0x376a96){if(_0x376a96){return _0x376a96[_0x32ef('0x129')](_0x418ec8[_0x32ef('0x3f')][_0x32ef('0x9b')])[_0x32ef('0x26')](function(){if(_[_0x32ef('0x11d')](_0x418ec8[_0x32ef('0x3f')][_0x32ef('0x9b')])){for(var _0x2e6cc2=0x0;_0x2e6cc2<_0x418ec8['query'][_0x32ef('0x9b')][_0x32ef('0x48')];_0x2e6cc2+=0x1){socket[_0x32ef('0x9d')](_0x32ef('0x12a'),{'SmsInteractionId':Number(_0x418ec8['query'][_0x32ef('0x9b')][_0x2e6cc2]),'UserId':Number(_0x418ec8['params']['id'])});}}else{socket[_0x32ef('0x9d')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x418ec8[_0x32ef('0x3f')][_0x32ef('0x9b')]),'UserId':Number(_0x418ec8[_0x32ef('0x51')]['id'])});}});}})[_0x32ef('0x26')](respondWithStatusCode(_0x1d2ac7,null))['catch'](handleError(_0x1d2ac7,null));};exports[_0x32ef('0x12b')]=function(_0x26a61e,_0xe30ea0){return db['User']['find']({'where':{'id':_0x26a61e[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0xe30ea0,null))[_0x32ef('0x26')](function(_0xe4c0f1){if(_0xe4c0f1){return _0xe4c0f1[_0x32ef('0x12b')](_0x26a61e[_0x32ef('0x5c')][_0x32ef('0x9b')],_['omit'](_0x26a61e[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{})[_0x32ef('0x9a')](function(){for(var _0x3b3f22=0x0;_0x3b3f22<_0x26a61e['body']['ids'][_0x32ef('0x48')];_0x3b3f22+=0x1){socket[_0x32ef('0x9d')](_0x32ef('0x12c'),{'OpenchannelInteractionId':Number(_0x26a61e['body'][_0x32ef('0x9b')][_0x3b3f22]),'UserId':Number(_0x26a61e[_0x32ef('0x51')]['id'])});}return _0x26a61e['body'][_0x32ef('0x9b')];});}})['then'](respondWithResult(_0xe30ea0,null))['catch'](handleError(_0xe30ea0,null));};exports[_0x32ef('0x12d')]=function(_0x4c49c9,_0x2c3596){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x4c49c9[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x2c3596,null))[_0x32ef('0x26')](function(_0x244509){if(_0x244509){return _0x244509[_0x32ef('0x12d')](_0x4c49c9['query'][_0x32ef('0x9b')])[_0x32ef('0x26')](function(){if(_[_0x32ef('0x11d')](_0x4c49c9[_0x32ef('0x3f')][_0x32ef('0x9b')])){for(var _0x4f6aaf=0x0;_0x4f6aaf<_0x4c49c9[_0x32ef('0x3f')][_0x32ef('0x9b')][_0x32ef('0x48')];_0x4f6aaf+=0x1){socket['emit']('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x4c49c9[_0x32ef('0x3f')][_0x32ef('0x9b')][_0x4f6aaf]),'UserId':Number(_0x4c49c9[_0x32ef('0x51')]['id'])});}}else{socket[_0x32ef('0x9d')](_0x32ef('0x12e'),{'OpenchannelInteractionId':Number(_0x4c49c9[_0x32ef('0x3f')][_0x32ef('0x9b')]),'UserId':Number(_0x4c49c9[_0x32ef('0x51')]['id'])});}});}})[_0x32ef('0x26')](respondWithStatusCode(_0x2c3596,null))[_0x32ef('0x1b')](handleError(_0x2c3596,null));};exports[_0x32ef('0x12f')]=function(_0x24671b,_0x321e99){return db['User']['find']({'where':{'id':_0x24671b[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x321e99,null))['then'](function(_0x185a65){if(_0x185a65){return _0x185a65[_0x32ef('0x12f')](_0x24671b[_0x32ef('0x5c')][_0x32ef('0x9b')],_[_0x32ef('0x5e')](_0x24671b[_0x32ef('0x5c')],['ids','id'])||{})[_0x32ef('0x9a')](function(){for(var _0x2d53cd=0x0;_0x2d53cd<_0x24671b['body']['ids'][_0x32ef('0x48')];_0x2d53cd+=0x1){socket[_0x32ef('0x9d')](_0x32ef('0x130'),{'WhatsappInteractionId':Number(_0x24671b[_0x32ef('0x5c')]['ids'][_0x2d53cd]),'UserId':Number(_0x24671b[_0x32ef('0x51')]['id'])});}return _0x24671b[_0x32ef('0x5c')][_0x32ef('0x9b')];});}})[_0x32ef('0x26')](respondWithResult(_0x321e99,null))[_0x32ef('0x1b')](handleError(_0x321e99,null));};exports[_0x32ef('0x131')]=function(_0x4d801c,_0x573fa9){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x4d801c['params']['id']}})['then'](handleEntityNotFound(_0x573fa9,null))[_0x32ef('0x26')](function(_0x304863){if(_0x304863){return _0x304863[_0x32ef('0x131')](_0x4d801c[_0x32ef('0x3f')][_0x32ef('0x9b')]);}})['then'](respondWithStatusCode(_0x573fa9,null))[_0x32ef('0x1b')](handleError(_0x573fa9,null));};exports['getVoicePrefixes']=function(_0x133761,_0x5c7085){var _0x1f3ca5={};var _0x276e3e={};var _0x3a40a0;var _0x4a1a16;return db['User'][_0x32ef('0xb9')]({'where':{'id':_0x133761[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x5c7085,null))[_0x32ef('0x26')](function(_0xa1fcae){if(_0xa1fcae){_0x3a40a0=_0xa1fcae;_0x276e3e[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0x132')]['rawAttributes']);_0x276e3e['query']=_[_0x32ef('0x53')](_0x133761['query']);_0x276e3e[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x276e3e[_0x32ef('0x56')],_0x276e3e['query']);_0x1f3ca5[_0x32ef('0x42')]=_['intersection'](_0x276e3e[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x133761[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x1f3ca5['attributes']=_0x1f3ca5['attributes'][_0x32ef('0x48')]?_0x1f3ca5[_0x32ef('0x42')]:_0x276e3e[_0x32ef('0x56')];_0x1f3ca5['order']=qs['sort'](_0x133761[_0x32ef('0x3f')]['sort']);_0x1f3ca5[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x133761[_0x32ef('0x3f')],_0x276e3e[_0x32ef('0x54')]));if(_0x133761[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x1f3ca5[_0x32ef('0x3e')]=_['merge'](_0x1f3ca5['where'],{'$or':_['map'](_0x1f3ca5[_0x32ef('0x42')],function(_0x4fd621){var _0x124087={};_0x124087[_0x4fd621]={'$like':'%'+_0x133761[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x124087;})});}_0x1f3ca5=_[_0x32ef('0x58')]({},_0x1f3ca5,_0x133761[_0x32ef('0x59')]);return _0x3a40a0[_0x32ef('0x133')](_0x1f3ca5);}})[_0x32ef('0x26')](function(_0x60fe17){if(_0x60fe17){_0x4a1a16=_0x60fe17[_0x32ef('0x48')];if(!_0x133761[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x1f3ca5['limit']=qs[_0x32ef('0x22')](_0x133761[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x1f3ca5[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x133761[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x3a40a0[_0x32ef('0x133')](_0x1f3ca5);}})[_0x32ef('0x26')](function(_0x1f97b0){if(_0x1f97b0){return _0x1f97b0?{'count':_0x4a1a16,'rows':_0x1f97b0}:null;}})[_0x32ef('0x26')](respondWithResult(_0x5c7085,null))[_0x32ef('0x1b')](handleError(_0x5c7085,null));};exports['getFaxAccounts']=function(_0x4fd8fc,_0x542b35){var _0x1ad397={};var _0xbea95e={};var _0x368685;var _0x4f55c5;return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0x4fd8fc[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0x542b35,null))[_0x32ef('0x26')](function(_0x229f32){if(_0x229f32){_0x368685=_0x229f32;_0xbea95e[_0x32ef('0x56')]=_['keys'](db[_0x32ef('0x134')][_0x32ef('0x37')]);_0xbea95e[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x4fd8fc[_0x32ef('0x3f')]);_0xbea95e[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0xbea95e[_0x32ef('0x56')],_0xbea95e[_0x32ef('0x3f')]);_0x1ad397['attributes']=_[_0x32ef('0x55')](_0xbea95e[_0x32ef('0x56')],qs['fields'](_0x4fd8fc[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x1ad397[_0x32ef('0x42')]=_0x1ad397[_0x32ef('0x42')][_0x32ef('0x48')]?_0x1ad397[_0x32ef('0x42')]:_0xbea95e[_0x32ef('0x56')];_0x1ad397[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x4fd8fc[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x1ad397[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x4fd8fc[_0x32ef('0x3f')],_0xbea95e[_0x32ef('0x54')]));if(_0x4fd8fc['query'][_0x32ef('0x2e')]){_0x1ad397[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0x1ad397['where'],{'$or':_[_0x32ef('0x30')](_0x1ad397['attributes'],function(_0x54c0a9){var _0x1c8701={};_0x1c8701[_0x54c0a9]={'$like':'%'+_0x4fd8fc['query'][_0x32ef('0x2e')]+'%'};return _0x1c8701;})});}_0x1ad397=_[_0x32ef('0x58')]({},_0x1ad397,_0x4fd8fc[_0x32ef('0x59')]);return _0x368685[_0x32ef('0x135')](_0x1ad397);}})[_0x32ef('0x26')](function(_0x28f6d9){if(_0x28f6d9){_0x4f55c5=_0x28f6d9['length'];if(!_0x4fd8fc[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x1ad397[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x4fd8fc[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x1ad397[_0x32ef('0x1f')]=qs['offset'](_0x4fd8fc['query'][_0x32ef('0x1f')]);}return _0x368685[_0x32ef('0x135')](_0x1ad397);}})[_0x32ef('0x26')](function(_0x33b1bf){if(_0x33b1bf){return _0x33b1bf?{'count':_0x4f55c5,'rows':_0x33b1bf}:null;}})['then'](respondWithResult(_0x542b35,null))[_0x32ef('0x1b')](handleError(_0x542b35,null));};exports[_0x32ef('0x136')]=function(_0x518f43,_0x1a0ba2){return db['User']['find']({'where':{'id':_0x518f43[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0x1a0ba2,null))[_0x32ef('0x26')](function(_0xdca1ee){if(_0xdca1ee){return _0xdca1ee['addFaxAccounts'](_0x518f43[_0x32ef('0x5c')][_0x32ef('0x9b')],_[_0x32ef('0x5e')](_0x518f43[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{});}})[_0x32ef('0x26')](respondWithResult(_0x1a0ba2,null))[_0x32ef('0x1b')](handleError(_0x1a0ba2,null));};exports['removeFaxAccounts']=function(_0x70ea9d,_0xf2d356){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x70ea9d[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0xf2d356,null))['then'](function(_0x46ca08){if(_0x46ca08){return _0x46ca08[_0x32ef('0x137')](_0x70ea9d['query']['ids']);}})[_0x32ef('0x26')](respondWithStatusCode(_0xf2d356,null))[_0x32ef('0x1b')](handleError(_0xf2d356,null));};exports['getMailAccounts']=function(_0x2bbce6,_0x3915a9){var _0x32cc9d={};var _0x5ae0c5={};var _0x1fc065;var _0x239a3e;return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0x2bbce6[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x3915a9,null))[_0x32ef('0x26')](function(_0x55358a){if(_0x55358a){_0x1fc065=_0x55358a;_0x5ae0c5[_0x32ef('0x56')]=_[_0x32ef('0x53')](db['MailAccount']['rawAttributes']);_0x5ae0c5[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x2bbce6[_0x32ef('0x3f')]);_0x5ae0c5[_0x32ef('0x54')]=_['intersection'](_0x5ae0c5[_0x32ef('0x56')],_0x5ae0c5[_0x32ef('0x3f')]);_0x32cc9d['attributes']=_['intersection'](_0x5ae0c5[_0x32ef('0x56')],qs['fields'](_0x2bbce6[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x32cc9d[_0x32ef('0x42')]=_0x32cc9d[_0x32ef('0x42')][_0x32ef('0x48')]?_0x32cc9d[_0x32ef('0x42')]:_0x5ae0c5[_0x32ef('0x56')];_0x32cc9d[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x2bbce6['query'][_0x32ef('0xc7')]);_0x32cc9d[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_['pick'](_0x2bbce6['query'],_0x5ae0c5[_0x32ef('0x54')]));if(_0x2bbce6['query'][_0x32ef('0x2e')]){_0x32cc9d[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0x32cc9d[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x32cc9d[_0x32ef('0x42')],function(_0x3ec8ae){var _0x30d110={};_0x30d110[_0x3ec8ae]={'$like':'%'+_0x2bbce6[_0x32ef('0x3f')]['filter']+'%'};return _0x30d110;})});}_0x32cc9d=_[_0x32ef('0x58')]({},_0x32cc9d,_0x2bbce6[_0x32ef('0x59')]);return _0x1fc065[_0x32ef('0x138')](_0x32cc9d);}})[_0x32ef('0x26')](function(_0x1d32a2){if(_0x1d32a2){_0x239a3e=_0x1d32a2[_0x32ef('0x48')];if(!_0x2bbce6[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x32cc9d[_0x32ef('0x22')]=qs['limit'](_0x2bbce6[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x32cc9d[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x2bbce6['query'][_0x32ef('0x1f')]);}return _0x1fc065['getMailAccounts'](_0x32cc9d);}})[_0x32ef('0x26')](function(_0x3ace7f){if(_0x3ace7f){return _0x3ace7f?{'count':_0x239a3e,'rows':_0x3ace7f}:null;}})[_0x32ef('0x26')](respondWithResult(_0x3915a9,null))['catch'](handleError(_0x3915a9,null));};exports[_0x32ef('0x139')]=function(_0x58c0ea,_0x3698d4){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x58c0ea[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x3698d4,null))['then'](function(_0x647790){if(_0x647790){return _0x647790[_0x32ef('0x139')](_0x58c0ea[_0x32ef('0x5c')][_0x32ef('0x9b')],_['omit'](_0x58c0ea[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{});}})[_0x32ef('0x26')](respondWithResult(_0x3698d4,null))[_0x32ef('0x1b')](handleError(_0x3698d4,null));};exports['removeMailAccounts']=function(_0x4a1997,_0x288a92){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x4a1997[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x288a92,null))[_0x32ef('0x26')](function(_0x3d5df0){if(_0x3d5df0){return _0x3d5df0['removeMailAccounts'](_0x4a1997[_0x32ef('0x3f')]['ids']);}})[_0x32ef('0x26')](respondWithStatusCode(_0x288a92,null))[_0x32ef('0x1b')](handleError(_0x288a92,null));};exports['getOpenchannelAccounts']=function(_0x56e84a,_0x2618c9){var _0x57811b={};var _0x19130f={};var _0x58e216;var _0xa06667;return db['User'][_0x32ef('0xb9')]({'where':{'id':_0x56e84a['params']['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x2618c9,null))[_0x32ef('0x26')](function(_0x2c7438){if(_0x2c7438){_0x58e216=_0x2c7438;_0x19130f[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0x13a')][_0x32ef('0x37')]);_0x19130f['query']=_['keys'](_0x56e84a['query']);_0x19130f[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x19130f[_0x32ef('0x56')],_0x19130f[_0x32ef('0x3f')]);_0x57811b['attributes']=_[_0x32ef('0x55')](_0x19130f['model'],qs[_0x32ef('0x57')](_0x56e84a[_0x32ef('0x3f')]['fields']));_0x57811b[_0x32ef('0x42')]=_0x57811b['attributes'][_0x32ef('0x48')]?_0x57811b['attributes']:_0x19130f[_0x32ef('0x56')];_0x57811b[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x56e84a[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x57811b[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x56e84a[_0x32ef('0x3f')],_0x19130f[_0x32ef('0x54')]));if(_0x56e84a[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x57811b[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0x57811b[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x57811b[_0x32ef('0x42')],function(_0x59bc61){var _0x2298b0={};_0x2298b0[_0x59bc61]={'$like':'%'+_0x56e84a[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x2298b0;})});}_0x57811b=_['merge']({},_0x57811b,_0x56e84a['options']);return _0x58e216['getOpenchannelAccounts'](_0x57811b);}})[_0x32ef('0x26')](function(_0x2dc7bf){if(_0x2dc7bf){_0xa06667=_0x2dc7bf['length'];if(!_0x56e84a[_0x32ef('0x3f')][_0x32ef('0xbc')]('nolimit')){_0x57811b[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x56e84a[_0x32ef('0x3f')]['limit']);_0x57811b[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x56e84a[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x58e216[_0x32ef('0x13b')](_0x57811b);}})[_0x32ef('0x26')](function(_0x205b76){if(_0x205b76){return _0x205b76?{'count':_0xa06667,'rows':_0x205b76}:null;}})[_0x32ef('0x26')](respondWithResult(_0x2618c9,null))[_0x32ef('0x1b')](handleError(_0x2618c9,null));};exports[_0x32ef('0x13c')]=function(_0x3e4a28,_0x3bb832){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x3e4a28[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x3bb832,null))[_0x32ef('0x26')](function(_0x430899){if(_0x430899){return _0x430899[_0x32ef('0x13c')](_0x3e4a28['body'][_0x32ef('0x9b')],_['omit'](_0x3e4a28[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{});}})[_0x32ef('0x26')](respondWithResult(_0x3bb832,null))['catch'](handleError(_0x3bb832,null));};exports[_0x32ef('0x13d')]=function(_0x10946a,_0xa975e1){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x10946a[_0x32ef('0x51')]['id']}})['then'](handleEntityNotFound(_0xa975e1,null))[_0x32ef('0x26')](function(_0x38659f){if(_0x38659f){return _0x38659f[_0x32ef('0x13d')](_0x10946a['query'][_0x32ef('0x9b')]);}})[_0x32ef('0x26')](respondWithStatusCode(_0xa975e1,null))[_0x32ef('0x1b')](handleError(_0xa975e1,null));};exports['getSmsAccounts']=function(_0xc38695,_0x320d5e){var _0x1d955f={};var _0x5d9caa={};var _0x4858f5;var _0x323801;return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0xc38695[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x320d5e,null))[_0x32ef('0x26')](function(_0x755a25){if(_0x755a25){_0x4858f5=_0x755a25;_0x5d9caa[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0x13e')][_0x32ef('0x37')]);_0x5d9caa[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0xc38695[_0x32ef('0x3f')]);_0x5d9caa[_0x32ef('0x54')]=_['intersection'](_0x5d9caa['model'],_0x5d9caa[_0x32ef('0x3f')]);_0x1d955f['attributes']=_[_0x32ef('0x55')](_0x5d9caa[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0xc38695[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x1d955f[_0x32ef('0x42')]=_0x1d955f[_0x32ef('0x42')]['length']?_0x1d955f['attributes']:_0x5d9caa['model'];_0x1d955f['order']=qs[_0x32ef('0xc7')](_0xc38695[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x1d955f['where']=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0xc38695['query'],_0x5d9caa[_0x32ef('0x54')]));if(_0xc38695['query'][_0x32ef('0x2e')]){_0x1d955f[_0x32ef('0x3e')]=_['merge'](_0x1d955f[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x1d955f['attributes'],function(_0x57ac43){var _0x346f2d={};_0x346f2d[_0x57ac43]={'$like':'%'+_0xc38695[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x346f2d;})});}_0x1d955f=_[_0x32ef('0x58')]({},_0x1d955f,_0xc38695['options']);return _0x4858f5[_0x32ef('0x13f')](_0x1d955f);}})['then'](function(_0x44f2bf){if(_0x44f2bf){_0x323801=_0x44f2bf[_0x32ef('0x48')];if(!_0xc38695[_0x32ef('0x3f')]['hasOwnProperty'](_0x32ef('0xc2'))){_0x1d955f[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0xc38695[_0x32ef('0x3f')]['limit']);_0x1d955f[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0xc38695[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0x4858f5[_0x32ef('0x13f')](_0x1d955f);}})[_0x32ef('0x26')](function(_0xac9ccb){if(_0xac9ccb){return _0xac9ccb?{'count':_0x323801,'rows':_0xac9ccb}:null;}})['then'](respondWithResult(_0x320d5e,null))[_0x32ef('0x1b')](handleError(_0x320d5e,null));};exports['addSmsAccounts']=function(_0x9debeb,_0x4dfc19){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x9debeb[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x4dfc19,null))['then'](function(_0x99fe36){if(_0x99fe36){return _0x99fe36[_0x32ef('0x140')](_0x9debeb['body']['ids'],_[_0x32ef('0x5e')](_0x9debeb[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{});}})[_0x32ef('0x26')](respondWithResult(_0x4dfc19,null))[_0x32ef('0x1b')](handleError(_0x4dfc19,null));};exports[_0x32ef('0x141')]=function(_0x39842e,_0x57e48f){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x39842e[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x57e48f,null))[_0x32ef('0x26')](function(_0x4e9aeb){if(_0x4e9aeb){return _0x4e9aeb[_0x32ef('0x141')](_0x39842e[_0x32ef('0x3f')]['ids']);}})[_0x32ef('0x26')](respondWithStatusCode(_0x57e48f,null))['catch'](handleError(_0x57e48f,null));};exports[_0x32ef('0x142')]=function(_0x466128,_0x5cd1c3){var _0x26bd55={};var _0x2b67d2={};var _0x53f685;var _0x49e5f0;return db['User'][_0x32ef('0xb9')]({'where':{'id':_0x466128[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x5cd1c3,null))[_0x32ef('0x26')](function(_0x51a4d1){if(_0x51a4d1){_0x53f685=_0x51a4d1;_0x2b67d2[_0x32ef('0x56')]=_['keys'](db['ChatWebsite'][_0x32ef('0x37')]);_0x2b67d2[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x466128[_0x32ef('0x3f')]);_0x2b67d2['filters']=_[_0x32ef('0x55')](_0x2b67d2[_0x32ef('0x56')],_0x2b67d2[_0x32ef('0x3f')]);_0x26bd55['attributes']=_[_0x32ef('0x55')](_0x2b67d2[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x466128[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x26bd55[_0x32ef('0x42')]=_0x26bd55[_0x32ef('0x42')]['length']?_0x26bd55[_0x32ef('0x42')]:_0x2b67d2[_0x32ef('0x56')];_0x26bd55['order']=qs[_0x32ef('0xc7')](_0x466128[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x26bd55[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x466128[_0x32ef('0x3f')],_0x2b67d2['filters']));if(_0x466128[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x26bd55[_0x32ef('0x3e')]=_[_0x32ef('0x58')](_0x26bd55[_0x32ef('0x3e')],{'$or':_['map'](_0x26bd55['attributes'],function(_0x145e77){var _0x3cde8d={};_0x3cde8d[_0x145e77]={'$like':'%'+_0x466128[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x3cde8d;})});}_0x26bd55=_[_0x32ef('0x58')]({},_0x26bd55,_0x466128[_0x32ef('0x59')]);return _0x53f685[_0x32ef('0x142')](_0x26bd55);}})[_0x32ef('0x26')](function(_0x22ba51){if(_0x22ba51){_0x49e5f0=_0x22ba51[_0x32ef('0x48')];if(!_0x466128[_0x32ef('0x3f')][_0x32ef('0xbc')](_0x32ef('0xc2'))){_0x26bd55['limit']=qs[_0x32ef('0x22')](_0x466128[_0x32ef('0x3f')]['limit']);_0x26bd55[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x466128[_0x32ef('0x3f')]['offset']);}return _0x53f685[_0x32ef('0x142')](_0x26bd55);}})[_0x32ef('0x26')](function(_0xc0e79f){if(_0xc0e79f){return _0xc0e79f?{'count':_0x49e5f0,'rows':_0xc0e79f}:null;}})[_0x32ef('0x26')](respondWithResult(_0x5cd1c3,null))[_0x32ef('0x1b')](handleError(_0x5cd1c3,null));};exports[_0x32ef('0x143')]=function(_0x542aab,_0x1213a7){return db['User'][_0x32ef('0x32')]({'where':{'id':_0x542aab[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x1213a7,null))['then'](function(_0xb59c84){if(_0xb59c84){return _0xb59c84[_0x32ef('0x143')](_0x542aab[_0x32ef('0x5c')]['ids'],_[_0x32ef('0x5e')](_0x542aab[_0x32ef('0x5c')],[_0x32ef('0x9b'),'id'])||{});}})['then'](respondWithResult(_0x1213a7,null))[_0x32ef('0x1b')](handleError(_0x1213a7,null));};exports[_0x32ef('0x144')]=function(_0x5b4f60,_0x9815ee){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x5b4f60[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x9815ee,null))['then'](function(_0x2416ce){if(_0x2416ce){return _0x2416ce[_0x32ef('0x144')](_0x5b4f60[_0x32ef('0x3f')][_0x32ef('0x9b')]);}})[_0x32ef('0x26')](respondWithStatusCode(_0x9815ee,null))[_0x32ef('0x1b')](handleError(_0x9815ee,null));};exports[_0x32ef('0x145')]=function(_0x211939,_0x2541e0){var _0x442771={};var _0x1b9e44={};var _0xf85bce;var _0x5b7a19;return db[_0x32ef('0x44')]['findOne']({'where':{'id':_0x211939['params']['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x2541e0,null))['then'](function(_0x498813){if(_0x498813){_0xf85bce=_0x498813;_0x1b9e44[_0x32ef('0x56')]=_['keys'](db[_0x32ef('0x146')]['rawAttributes']);_0x1b9e44[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x211939[_0x32ef('0x3f')]);_0x1b9e44[_0x32ef('0x54')]=_[_0x32ef('0x55')](_0x1b9e44['model'],_0x1b9e44[_0x32ef('0x3f')]);_0x442771['attributes']=_[_0x32ef('0x55')](_0x1b9e44[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x211939[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x442771[_0x32ef('0x42')]=_0x442771[_0x32ef('0x42')][_0x32ef('0x48')]?_0x442771[_0x32ef('0x42')]:_0x1b9e44[_0x32ef('0x56')];_0x442771[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x211939[_0x32ef('0x3f')]['sort']);_0x442771[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x211939[_0x32ef('0x3f')],_0x1b9e44[_0x32ef('0x54')]));if(_0x211939[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x442771[_0x32ef('0x3e')]=_['merge'](_0x442771[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x442771[_0x32ef('0x42')],function(_0x3eacb3){var _0x3dbf89={};_0x3dbf89[_0x3eacb3]={'$like':'%'+_0x211939[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x3dbf89;})});}_0x442771=_[_0x32ef('0x58')]({},_0x442771,_0x211939[_0x32ef('0x59')]);return _0xf85bce[_0x32ef('0x145')](_0x442771);}})[_0x32ef('0x26')](function(_0x4a7b10){if(_0x4a7b10){_0x5b7a19=_0x4a7b10[_0x32ef('0x48')];if(!_0x211939[_0x32ef('0x3f')][_0x32ef('0xbc')]('nolimit')){_0x442771['limit']=qs[_0x32ef('0x22')](_0x211939[_0x32ef('0x3f')]['limit']);_0x442771[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x211939[_0x32ef('0x3f')][_0x32ef('0x1f')]);}return _0xf85bce[_0x32ef('0x145')](_0x442771);}})[_0x32ef('0x26')](function(_0x4348d4){if(_0x4348d4){return _0x4348d4?{'count':_0x5b7a19,'rows':_0x4348d4}:null;}})['then'](respondWithResult(_0x2541e0,null))[_0x32ef('0x1b')](handleError(_0x2541e0,null));};exports[_0x32ef('0x147')]=function(_0x1fc69f,_0x47d80e){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x1fc69f[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x47d80e,null))[_0x32ef('0x26')](function(_0xa93768){if(_0xa93768){return _0xa93768[_0x32ef('0x147')](_0x1fc69f[_0x32ef('0x5c')][_0x32ef('0x9b')],_[_0x32ef('0x5e')](_0x1fc69f['body'],[_0x32ef('0x9b'),'id'])||{});}})[_0x32ef('0x26')](respondWithResult(_0x47d80e,null))[_0x32ef('0x1b')](handleError(_0x47d80e,null));};exports[_0x32ef('0x148')]=function(_0x40df10,_0x19f573){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x40df10[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x19f573,null))[_0x32ef('0x26')](function(_0x45d737){if(_0x45d737){return _0x45d737['removeWhatsappAccounts'](_0x40df10['query'][_0x32ef('0x9b')]);}})[_0x32ef('0x26')](respondWithStatusCode(_0x19f573,null))[_0x32ef('0x1b')](handleError(_0x19f573,null));};exports['getSquareProjects']=function(_0x42bf31,_0x450d03){var _0x3cfd84={};var _0x2e7e05={};var _0x4046a0;var _0xa7a8c;return db[_0x32ef('0x44')]['findOne']({'where':{'id':_0x42bf31[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x450d03,null))[_0x32ef('0x26')](function(_0x5406a7){if(_0x5406a7){_0x4046a0=_0x5406a7;_0x2e7e05[_0x32ef('0x56')]=_[_0x32ef('0x53')](db[_0x32ef('0x149')]['rawAttributes']);_0x2e7e05[_0x32ef('0x3f')]=_[_0x32ef('0x53')](_0x42bf31[_0x32ef('0x3f')]);_0x2e7e05['filters']=_[_0x32ef('0x55')](_0x2e7e05[_0x32ef('0x56')],_0x2e7e05[_0x32ef('0x3f')]);_0x3cfd84[_0x32ef('0x42')]=_[_0x32ef('0x55')](_0x2e7e05[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x42bf31[_0x32ef('0x3f')][_0x32ef('0x57')]));_0x3cfd84['attributes']=_0x3cfd84[_0x32ef('0x42')][_0x32ef('0x48')]?_0x3cfd84[_0x32ef('0x42')]:_0x2e7e05[_0x32ef('0x56')];_0x3cfd84['order']=qs[_0x32ef('0xc7')](_0x42bf31[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x3cfd84[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x42bf31['query'],_0x2e7e05[_0x32ef('0x54')]));if(_0x42bf31[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x3cfd84['where']=_['merge'](_0x3cfd84['where'],{'$or':_['map'](_0x3cfd84['attributes'],function(_0x4565f7){var _0x24a8b3={};_0x24a8b3[_0x4565f7]={'$like':'%'+_0x42bf31[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'};return _0x24a8b3;})});}_0x3cfd84=_[_0x32ef('0x58')]({},_0x3cfd84,_0x42bf31[_0x32ef('0x59')]);return _0x4046a0[_0x32ef('0x14a')](_0x3cfd84);}})['then'](function(_0x2cac19){if(_0x2cac19){_0xa7a8c=_0x2cac19[_0x32ef('0x48')];if(!_0x42bf31[_0x32ef('0x3f')]['hasOwnProperty'](_0x32ef('0xc2'))){_0x3cfd84[_0x32ef('0x22')]=qs['limit'](_0x42bf31[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x3cfd84[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x42bf31['query'][_0x32ef('0x1f')]);}return _0x4046a0[_0x32ef('0x14a')](_0x3cfd84);}})[_0x32ef('0x26')](function(_0x47f96d){if(_0x47f96d){return _0x47f96d?{'count':_0xa7a8c,'rows':_0x47f96d}:null;}})[_0x32ef('0x26')](respondWithResult(_0x450d03,null))['catch'](handleError(_0x450d03,null));};exports[_0x32ef('0x14b')]=function(_0x370448,_0xb10c1f){return db['User'][_0x32ef('0x32')]({'where':{'id':_0x370448[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0xb10c1f,null))[_0x32ef('0x26')](function(_0x56c1a2){if(_0x56c1a2){return _0x56c1a2[_0x32ef('0x14b')](_0x370448['body'][_0x32ef('0x9b')],_['omit'](_0x370448['body'],[_0x32ef('0x9b'),'id'])||{});}})[_0x32ef('0x26')](respondWithResult(_0xb10c1f,null))['catch'](handleError(_0xb10c1f,null));};exports[_0x32ef('0x14c')]=function(_0x2a06a1,_0x4d20b6){return db[_0x32ef('0x44')][_0x32ef('0x32')]({'where':{'id':_0x2a06a1[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0x4d20b6,null))['then'](function(_0x336b7d){if(_0x336b7d){return _0x336b7d['removeSquareProjects'](_0x2a06a1[_0x32ef('0x3f')][_0x32ef('0x9b')]);}})['then'](respondWithStatusCode(_0x4d20b6,null))[_0x32ef('0x1b')](handleError(_0x4d20b6,null));};exports[_0x32ef('0x14d')]=function(_0x26e533,_0x534d9b){var _0x52750e={},_0x484865={},_0x3c02a1={'count':0x0,'rows':[]};var _0x162c04=db['CmHopper']['rawAttributes'];_0x484865['model']=_[_0x32ef('0x53')](_0x162c04);_0x484865[_0x32ef('0x3f')]=_['keys'](_0x26e533[_0x32ef('0x3f')]);_0x484865[_0x32ef('0x54')]=_['intersection'](_0x484865[_0x32ef('0x56')],_0x484865[_0x32ef('0x3f')]);_0x484865['filters']=_['concat'](_0x484865[_0x32ef('0x54')],['$and',_0x32ef('0x14e'),_0x32ef('0x14f'),_0x32ef('0x150'),_0x32ef('0x151'),_0x32ef('0x152'),_0x32ef('0x153'),_0x32ef('0x154'),_0x32ef('0x155'),_0x32ef('0x156'),_0x32ef('0x157'),_0x32ef('0x158'),'$notIn',_0x32ef('0x159'),_0x32ef('0x15a'),_0x32ef('0x15b'),_0x32ef('0x15c'),_0x32ef('0x159'),'$overlap',_0x32ef('0x15d'),_0x32ef('0x15e'),_0x32ef('0x15f')]);_0x52750e['attributes']=_['intersection'](_0x484865[_0x32ef('0x56')],qs[_0x32ef('0x57')](_0x26e533[_0x32ef('0x3f')]['fields']));_0x52750e[_0x32ef('0x42')]=_0x52750e[_0x32ef('0x42')][_0x32ef('0x48')]?_0x52750e['attributes']:_0x484865[_0x32ef('0x56')];if(!_0x26e533[_0x32ef('0x3f')][_0x32ef('0xbc')]('nolimit')){_0x52750e[_0x32ef('0x22')]=qs[_0x32ef('0x22')](_0x26e533[_0x32ef('0x3f')][_0x32ef('0x22')]);_0x52750e[_0x32ef('0x1f')]=qs[_0x32ef('0x1f')](_0x26e533[_0x32ef('0x3f')][_0x32ef('0x1f')]);}_0x52750e[_0x32ef('0xba')]=qs[_0x32ef('0xc7')](_0x26e533[_0x32ef('0x3f')][_0x32ef('0xc7')]);_0x52750e[_0x32ef('0x3e')]=qs[_0x32ef('0x54')](_[_0x32ef('0xbb')](_0x26e533['query'],_0x484865[_0x32ef('0x54')]));if(_0x26e533[_0x32ef('0x3f')][_0x32ef('0x2e')]){_0x52750e['where']=_[_0x32ef('0x58')](_0x52750e[_0x32ef('0x3e')],{'$or':_[_0x32ef('0x30')](_0x52750e[_0x32ef('0x42')],function(_0x5c25ce){var _0x292460={};_0x292460[_0x5c25ce]={'$like':'%'+_0x26e533['query'][_0x32ef('0x2e')]+'%'};return _0x292460;})});}_0x52750e[_0x32ef('0x3e')]={'$and':[_0x52750e[_0x32ef('0x3e')],{'$or':[{'UserId':_0x26e533[_0x32ef('0x51')]['id']},{'OwnerId':_0x26e533['params']['id']}]}]};_0x52750e=_[_0x32ef('0x58')]({},_0x52750e,_0x26e533['options']);var _0x51210d={'where':_0x52750e[_0x32ef('0x3e')]};return db[_0x32ef('0x160')][_0x32ef('0x21')](_0x51210d)[_0x32ef('0x26')](function(_0x4ca66){_0x3c02a1[_0x32ef('0x21')]=_0x4ca66;if(_0x26e533[_0x32ef('0x3f')]['includeAll']){_0x52750e[_0x32ef('0x41')]=[{'attributes':['id',_0x32ef('0x161'),_0x32ef('0x162'),_0x32ef('0xda')],'model':db['CmContact'],'as':_0x32ef('0x163')},{'attributes':['id',_0x32ef('0x33'),'dialActive'],'model':db[_0x32ef('0x164')],'as':_0x32ef('0xc3')}];}return db[_0x32ef('0x160')]['findAll'](_0x52750e);})[_0x32ef('0x26')](function(_0x3e2fa5){_0x3c02a1['rows']=_0x3e2fa5;return _0x3c02a1;})[_0x32ef('0x26')](respondWithFilteredResult(_0x534d9b,_0x52750e))[_0x32ef('0x1b')](handleError(_0x534d9b,null));};exports[_0x32ef('0x165')]=function(_0x5b78a3,_0x2db0f0){if(!_[_0x32ef('0x64')](_0x5b78a3[_0x32ef('0x2b')]['id'])&&(_0x5b78a3[_0x32ef('0x2b')][_0x32ef('0x29')]==_0x32ef('0x2a')||_0x5b78a3['user']['role']==_0x32ef('0x2b'))){return db[_0x32ef('0x44')][_0x32ef('0xb9')]({'where':{'id':_0x5b78a3[_0x32ef('0x51')]['id']},'raw':!![]})[_0x32ef('0x26')](function(_0x10caf4){return authService['retrieveApiKey'](_0x10caf4);})[_0x32ef('0x26')](function(_0x138a3e){if(_0x138a3e){return _0x2db0f0[_0x32ef('0x23')](0xc8)[_0x32ef('0x1e')]({'api_key':_0x138a3e['token']});}else{return _0x2db0f0[_0x32ef('0x23')](0xcc)[_0x32ef('0x1e')]({'message':_0x32ef('0x166')});}})[_0x32ef('0x1b')](handleError(_0x2db0f0,0x193));}else{return _0x2db0f0[_0x32ef('0x23')](0x191)[_0x32ef('0x1e')]({'message':_0x32ef('0x167')});}};exports[_0x32ef('0x168')]=function(_0x1ae5e9,_0x5eacbd){if(!_['isNil'](_0x1ae5e9[_0x32ef('0x2b')]['id'])&&(_0x1ae5e9[_0x32ef('0x2b')][_0x32ef('0x29')]==_0x32ef('0x2a')||_0x1ae5e9[_0x32ef('0x2b')][_0x32ef('0x29')]=='user')){return db['User'][_0x32ef('0x32')]({'where':{'id':_0x1ae5e9[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](function(_0x376ce1){return authService[_0x32ef('0x169')](_0x376ce1);})[_0x32ef('0x26')](function(_0x218854){return db[_0x32ef('0x44')][_0x32ef('0x25')]({'apiKeyIat':_0x218854['iat'],'apiKeyNonce':_0x218854['nonce']},{'where':{'id':_0x1ae5e9[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](function(){return _0x5eacbd[_0x32ef('0x23')](0xc8)['json']({'api_key':_0x218854[_0x32ef('0x16a')]});});})[_0x32ef('0x1b')](handleError(_0x5eacbd,0x193));}else{return _0x5eacbd[_0x32ef('0x23')](0x191)['json']({'message':_0x32ef('0x167')});}};exports[_0x32ef('0x16b')]=function(_0x5dcbbd,_0xb01db9){if(!_[_0x32ef('0x64')](_0x5dcbbd[_0x32ef('0x2b')]['id'])&&(_0x5dcbbd[_0x32ef('0x2b')]['role']==_0x32ef('0x2a')||_0x5dcbbd[_0x32ef('0x2b')]['role']=='user')){return db[_0x32ef('0x44')]['find']({'where':{'id':_0x5dcbbd[_0x32ef('0x51')]['id']}})[_0x32ef('0x26')](handleEntityNotFound(_0xb01db9,null))['then'](function(_0x3a2a60){if(_0x3a2a60&&_0x3a2a60[_0x32ef('0x16c')]&&_0x3a2a60[_0x32ef('0x16d')])return _0x3a2a60;else throw{'message':_0x32ef('0x16e')};})[_0x32ef('0x26')](function(_0x1813ae){return db[_0x32ef('0x44')][_0x32ef('0x25')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x5dcbbd['params']['id']}});})['then'](respondWithStatusCode(_0xb01db9,0xc8))['catch'](handleError(_0xb01db9,0x193));}else{return _0xb01db9[_0x32ef('0x23')](0x191)['json']({'message':_0x32ef('0x167')});}};exports['whoami']=function(_0x5d9007,_0x481043){var _0x4e3ed7=_0x5d9007['user']['get']({'plain':!![]});if(!_0x4e3ed7){return _0x481043['status'](0x191)[_0x32ef('0x35')](_0x32ef('0x16f'));}else{return _0x481043['status'](0xc8)[_0x32ef('0x1e')](_0x4e3ed7);}};exports[_0x32ef('0x170')]=function(_0x1d09a2,_0x43726c){var _0x1e5f5e={'offset':0x0},_0x400d1e={'count':0x0,'rows':[]};Promise[_0x32ef('0xef')]()[_0x32ef('0x26')](function(){if(!_0x1d09a2[_0x32ef('0x3f')]['filter']&&!_0x1d09a2[_0x32ef('0x3f')]['teams']&&!_0x1d09a2[_0x32ef('0x3f')]['queues'])return[];return Promise[_0x32ef('0xef')]()[_0x32ef('0x26')](function(){var _0x334297=[];if(!_[_0x32ef('0x80')](_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0x171')])){_0x334297[_0x32ef('0x43')](db['Team'][_0x32ef('0x45')]({'attributes':['id',_0x32ef('0x33')],'where':{'id':_0x1d09a2['query'][_0x32ef('0x171')]}}));}if(!_['isEmpty'](_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0x172')])){_0x334297['push'](db[_0x32ef('0x164')]['findAll']({'attributes':['id','name'],'type':_0x32ef('0x173'),'where':{'id':_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0x172')]}}));}return Promise[_0x32ef('0x4f')](_0x334297);})[_0x32ef('0x26')](function(_0x5ca9c8){var _0x3c96d3=_[_0x32ef('0x10b')](_0x5ca9c8)[_0x32ef('0x30')](function(_0x5e0d7d){return _0x5e0d7d[_0x32ef('0x118')]({'attributes':['id',_0x32ef('0x33'),_0x32ef('0x5f'),_0x32ef('0x91')],'raw':!![]});});return Promise['all'](_0x3c96d3);})[_0x32ef('0x26')](function(_0x56346d){var _0x2f5a46=_['flatten'](_0x56346d);if(!_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0x2e')])return _0x2f5a46;if(_[_0x32ef('0x80')](_0x2f5a46)){return db[_0x32ef('0x44')][_0x32ef('0x45')]({'attributes':['id',_0x32ef('0x33'),_0x32ef('0x5f'),'online'],'where':{'role':_0x32ef('0x2c'),'$or':[db['sequelize'][_0x32ef('0x3e')](db[_0x32ef('0x66')]['fn'](_0x32ef('0x174'),db[_0x32ef('0x66')][_0x32ef('0x175')](_0x32ef('0x33'))),{'$like':'%'+_0x1d09a2[_0x32ef('0x3f')]['filter'][_0x32ef('0x98')]()+'%'}),{'internal':{'$like':'%'+_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0x2e')]+'%'}}]},'raw':!![]});}else{return _(_0x2f5a46)[_0x32ef('0x10b')]()['filter'](function(_0x55506e){return _0x55506e[_0x32ef('0x33')][_0x32ef('0x98')]()[_0x32ef('0x3a')](_0x1d09a2['query'][_0x32ef('0x2e')][_0x32ef('0x98')]())||_0x55506e[_0x32ef('0x5f')]['toString']()['includes'](_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0x2e')]);})[_0x32ef('0x31')]();}})[_0x32ef('0x26')](function(_0x17c6fe){var _0x1ad723='name';var _0x36e281=_0x32ef('0x176');if(_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0xc7')]){var _0x36e281=_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0xc7')][0x0]==='-'?_0x32ef('0x177'):_0x32ef('0x176');var _0x1ad723=_0x36e281===_0x32ef('0x176')?_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0xc7')]:_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0xc7')][_0x32ef('0x178')](0x1);}return _(_0x17c6fe)[_0x32ef('0x179')]('id')[_0x32ef('0x17a')]([function(_0x141c77){return _0x1ad723===_0x32ef('0x33')?_0x141c77[_0x1ad723][_0x32ef('0x98')]():_0x141c77[_0x1ad723];}],[_0x36e281])[_0x32ef('0x30')](function(_0x12f4e6){return _[_0x32ef('0xbb')](_0x12f4e6,['id',_0x32ef('0x33'),_0x32ef('0x5f'),_0x32ef('0x91')]);})['value']();})[_0x32ef('0x26')](function(_0xf3027d){return client[_0x32ef('0x12')]('Agents',_0x1d09a2)[_0x32ef('0x26')](function(_0x657b58){if(_0x657b58['error'])throw new Error(_0x32ef('0x17b'));var _0x180134=_0x657b58[_0x32ef('0x1a')];var _0x4edba3=jayson['client'][_0x32ef('0x17c')]({'port':0x232c});return _0x4edba3[_0x32ef('0x12')]('Agents',_0x1d09a2)[_0x32ef('0x26')](function(_0x530db0){if(_0x530db0[_0x32ef('0x17')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x2d8e73=_0x530db0[_0x32ef('0x1a')];return _[_0x32ef('0x58')]({},_0x2d8e73,_0x180134);});})['then'](function(_0x551725){return _[_0x32ef('0x30')](_0xf3027d,function(_0x401a1c){var _0x325b13=_['find'](_0x551725[_0x32ef('0x46')],['id',_0x401a1c['id']]);if(!_0x325b13||!_0x401a1c[_0x32ef('0x91')]){_0x401a1c[_0x32ef('0x23')]='offline';}else if(_0x325b13[_0x32ef('0x93')]){_0x401a1c['status']='pause';}else{_0x401a1c[_0x32ef('0x23')]=_['includes']([_0x32ef('0x17d'),'unknown',_0x32ef('0x17e'),'ringing',null,undefined],_0x325b13[_0x32ef('0x17f')])?_0x32ef('0x91'):_0x32ef('0x180');}return _0x401a1c;});});});})[_0x32ef('0x26')](function(_0x38ceb3){if(!_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0xbc')]('nolimit')){_0x1e5f5e['limit']=qs[_0x32ef('0x22')](_0x1d09a2[_0x32ef('0x3f')]['limit']||0xa);_0x1e5f5e[_0x32ef('0x1f')]=qs['offset'](_0x1d09a2[_0x32ef('0x3f')][_0x32ef('0x1f')]);}_0x400d1e[_0x32ef('0x21')]=_0x38ceb3[_0x32ef('0x48')];_0x400d1e[_0x32ef('0x46')]=_0x1e5f5e[_0x32ef('0x22')]?_0x38ceb3[_0x32ef('0x181')](_0x1e5f5e[_0x32ef('0x1f')],_0x1e5f5e[_0x32ef('0x1f')]+_0x1e5f5e[_0x32ef('0x22')]):_0x38ceb3;return _0x400d1e;})[_0x32ef('0x26')](respondWithFilteredResult(_0x43726c,_0x1e5f5e))['catch'](handleError(_0x43726c,null));};function get_open_tabs(_0x13546f,_0x5d2a04){var _0x39ed56=_0x13546f['charAt'](0x0)[_0x32ef('0x182')]()+_0x13546f[_0x32ef('0x181')](0x1);var _0x4dfdbc={'type':db[_0x32ef('0x87')][_0x32ef('0x183')][_0x32ef('0x67')],'raw':!![]};return new BPromise(function(_0x492cd7,_0x106ff6){var _0x4138da=squel[_0x32ef('0x184')]()[_0x32ef('0x185')](_0x32ef('0x186')+_0x39ed56+_0x32ef('0x187'),'id')[_0x32ef('0x185')](_0x32ef('0x188'))[_0x32ef('0x68')]('user_has_'+_0x13546f+_0x32ef('0x189'),'ui')['where'](_0x32ef('0x18a'),_0x5d2a04['id']);return db['sequelize'][_0x32ef('0x3f')](_0x4138da[_0x32ef('0x18b')](),_0x4dfdbc)['then'](function(_0x935262){_0x5d2a04[_0x39ed56+'OpenTabs']=_0x935262;_0x492cd7(_0x935262);})[_0x32ef('0x1b')](function(_0x47b722){_0x106ff6(_0x47b722);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ebd=['events','../../mysqldb','User','save','update','remove','emit','hasOwnProperty','exports'];(function(_0x3640dd,_0xb59290){var _0x1e83c4=function(_0x281e9c){while(--_0x281e9c){_0x3640dd['push'](_0x3640dd['shift']());}};_0x1e83c4(++_0xb59290);}(_0x1ebd,0x90));var _0xd1eb=function(_0x3dab66,_0x39b5c1){_0x3dab66=_0x3dab66-0x0;var _0x2ccaa5=_0x1ebd[_0x3dab66];return _0x2ccaa5;};'use strict';var EventEmitter=require(_0xd1eb('0x0'));var User=require(_0xd1eb('0x1'))['db'][_0xd1eb('0x2')];var UserEvents=new EventEmitter();UserEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xd1eb('0x3'),'afterUpdate':_0xd1eb('0x4'),'afterDestroy':_0xd1eb('0x5')};function emitEvent(_0x5a58c9){return function(_0xc4cd70,_0x11af25,_0x2b320){UserEvents[_0xd1eb('0x6')](_0x5a58c9+':'+_0xc4cd70['id'],_0xc4cd70);UserEvents[_0xd1eb('0x6')](_0x5a58c9,_0xc4cd70);_0x2b320(null);};}for(var e in events){if(events[_0xd1eb('0x7')](e)){var event=events[e];User['hook'](e,emitEvent(event));}}module[_0xd1eb('0x8')]=UserEvents;
\ No newline at end of file
+var _0xe466=['remove','emit','hasOwnProperty','exports','events','../../mysqldb','User','setMaxListeners','save','update'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xe466,0x14e));var _0x6e46=function(_0x2e8c3a,_0x56ab17){_0x2e8c3a=_0x2e8c3a-0x0;var _0x4d7311=_0xe466[_0x2e8c3a];return _0x4d7311;};'use strict';var EventEmitter=require(_0x6e46('0x0'));var User=require(_0x6e46('0x1'))['db'][_0x6e46('0x2')];var UserEvents=new EventEmitter();UserEvents[_0x6e46('0x3')](0x0);var events={'afterCreate':_0x6e46('0x4'),'afterUpdate':_0x6e46('0x5'),'afterDestroy':_0x6e46('0x6')};function emitEvent(_0xec2ac0){return function(_0x3331d2,_0x2c4088,_0x33ba91){UserEvents[_0x6e46('0x7')](_0xec2ac0+':'+_0x3331d2['id'],_0x3331d2);UserEvents[_0x6e46('0x7')](_0xec2ac0,_0x3331d2);_0x33ba91(null);};}for(var e in events){if(events[_0x6e46('0x8')](e)){var event=events[e];User['hook'](e,emitEvent(event));}}module[_0x6e46('0x9')]=UserEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b36=['utf8','utf8_bin','UserProfile','find','userProfileId','privacyEnabled','updateMd5Password','catch','resolve','changed','updatePassword','VoiceExtension','bulkCreate','destroy','encryptPassword','function','Missing\x20Callback','base64','salt','pbkdf2Sync','pbkdf2','sha1','toString','indexOf','md5secret',':asterisk:','bluebird','crypto','md5','lodash','./user.attributes','google','length','context','from-sip','system','format','%s%s','prefix','Set','chanspy','record','push','merge','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','password','ChanSpy','SIP/%s,%s','name','options','StopMixMonitor','wav','gsm','CDR(type)=internal','extensionMonitor','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','VoiceChanSpy','findAll','then','internal','concat','exports','models','define','User','users'];(function(_0x2072f4,_0x1f2f7e){var _0x330448=function(_0x27be6a){while(--_0x27be6a){_0x2072f4['push'](_0x2072f4['shift']());}};_0x330448(++_0x1f2f7e);}(_0x6b36,0xa6));var _0x66b3=function(_0x245a1a,_0x1c8bed){_0x245a1a=_0x245a1a-0x0;var _0x4c0615=_0x6b36[_0x245a1a];return _0x4c0615;};'use strict';var BPromise=require(_0x66b3('0x0'));var crypto=require(_0x66b3('0x1'));var util=require('util');var md5=require(_0x66b3('0x2'));var _=require(_0x66b3('0x3'));var attributes=require(_0x66b3('0x4'));var authTypes=[_0x66b3('0x5')];var validatePresenceOf=function(_0xdd6624){return _0xdd6624&&_0xdd6624[_0x66b3('0x6')];};var getChanSpyApplications=function(_0x7287b9,_0x122ffb,_0x14778c){var _0x1b9108={'context':_0x7287b9[_0x66b3('0x7')]||_0x66b3('0x8'),'type':_0x66b3('0x9'),'isApp':![],'UserId':_0x7287b9['id']};var _0x1cd50e=[];for(var _0x57d0eb=0x0,_0x50967c=0x1;_0x57d0eb<_0x14778c[_0x66b3('0x6')];_0x57d0eb++,_0x50967c=0x1){var _0x5c3ecd={'exten':util[_0x66b3('0xa')](_0x66b3('0xb'),_0x14778c[_0x57d0eb][_0x66b3('0xc')],_0x122ffb),'ChanSpyId':_0x14778c[_0x57d0eb]['id']};_0x1cd50e['push'](_['merge']({'app':_0x66b3('0xd'),'appdata':util[_0x66b3('0xa')]('CDR(type)=%s',_0x66b3('0xe')),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));if(_0x14778c[_0x57d0eb][_0x66b3('0xf')]){_0x1cd50e[_0x66b3('0x10')](_[_0x66b3('0x11')]({'app':_0x66b3('0x12'),'appdata':util[_0x66b3('0xa')](_0x66b3('0x13'),_0x14778c[_0x57d0eb][_0x66b3('0x14')]),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));}if(_0x14778c[_0x57d0eb]['auth']){_0x1cd50e[_0x66b3('0x10')](_[_0x66b3('0x11')]({'app':'Authenticate','appdata':_0x14778c[_0x57d0eb][_0x66b3('0x15')],'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));}_0x1cd50e[_0x66b3('0x10')](_[_0x66b3('0x11')]({'app':_0x66b3('0x16'),'appdata':util[_0x66b3('0xa')](_0x66b3('0x17'),_0x7287b9[_0x66b3('0x18')],_0x14778c[_0x57d0eb][_0x66b3('0x19')]?_0x14778c[_0x57d0eb][_0x66b3('0x19')]['join'](''):''),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));if(_0x14778c[_0x57d0eb][_0x66b3('0xf')]){_0x1cd50e['push'](_[_0x66b3('0x11')]({'app':_0x66b3('0x1a'),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));}}return _0x1cd50e;};var getUserApplications=function(_0x24f20f,_0x11b521){var _0x4097f8=[_0x66b3('0x1b'),'WAV',_0x66b3('0x1c')];var _0x1e18b9={'context':_0x24f20f[_0x66b3('0x7')]||_0x66b3('0x8'),'exten':_0x11b521,'type':_0x66b3('0x9'),'isApp':![],'UserId':_0x24f20f['id']};var _0x443ce7=[{'app':'Set','appdata':_0x66b3('0x1d')}];if(_0x24f20f['extensionMonitor']&&_['includes'](_0x4097f8,_0x24f20f[_0x66b3('0x1e')])){_0x443ce7[_0x66b3('0x10')]({'app':'Set','appdata':_0x66b3('0x1f')});_0x443ce7[_0x66b3('0x10')]({'app':_0x66b3('0xd'),'appdata':util[_0x66b3('0xa')]('_XCALLY_MIXMONITOR_FORMAT=%s',_0x24f20f[_0x66b3('0x1e')])});_0x443ce7[_0x66b3('0x10')]({'app':'Dial','appdata':util[_0x66b3('0xa')](_0x66b3('0x20'),_0x24f20f['name'])});}else{_0x443ce7[_0x66b3('0x10')]({'app':'Dial','appdata':util['format'](_0x66b3('0x21'),_0x24f20f[_0x66b3('0x18')])});}_0x443ce7['push']({'app':'Hangup'});for(var _0x1e559a=0x0;_0x1e559a<_0x443ce7[_0x66b3('0x6')];_0x1e559a++){_0x443ce7[_0x1e559a]['priority']=_0x1e559a+0x1;_0x443ce7[_0x1e559a]=_['defaults'](_0x443ce7[_0x1e559a],_0x1e18b9);}return _0x443ce7;};var getChanSpyPromise=function(_0x450407,_0x4ff424){return new BPromise(function(_0xbe29e,_0x241464){return _0x450407[_0x66b3('0x22')][_0x66b3('0x23')]()[_0x66b3('0x24')](function(_0x32d552){if(_0x32d552){var _0x4dcf46=getChanSpyApplications(_0x4ff424,_0x4ff424['internal'],_0x32d552);if(_0x4ff424[_0x66b3('0x25')]!=_0x4ff424[_0x66b3('0x18')]){_0x4dcf46=_0x4dcf46[_0x66b3('0x26')](getChanSpyApplications(_0x4ff424,_0x4ff424[_0x66b3('0x18')],_0x32d552));}return _0xbe29e(_0x4dcf46);}return _0xbe29e([]);})['catch'](function(_0x4bfaf7){_0x241464(_0x4bfaf7);});});};module[_0x66b3('0x27')]=function(_0x3a1add,_0x503cad){var _0xbc3a1f=_0x3a1add[_0x66b3('0x28')];return _0x3a1add[_0x66b3('0x29')](_0x66b3('0x2a'),attributes,{'tableName':_0x66b3('0x2b'),'charset':_0x66b3('0x2c'),'collate':_0x66b3('0x2d'),'hooks':{'beforeCreate':function(_0x187b35,_0x39001c,_0x21b11f){var _0x4d515d=typeof _0x187b35['userProfileId']==='undefined'?BPromise['resolve'](null):_0xbc3a1f[_0x66b3('0x2e')][_0x66b3('0x2f')]({'where':{'id':_0x187b35[_0x66b3('0x30')]}});_0x4d515d[_0x66b3('0x24')](function(_0x224bc8){if(_0x224bc8){_0x187b35[_0x66b3('0x31')]=_0x224bc8[_0x66b3('0x31')];}})[_0x66b3('0x24')](function(){_0x187b35[_0x66b3('0x32')]();_0x187b35['updatePassword'](_0x21b11f);})[_0x66b3('0x33')](function(_0x541c83){_0x21b11f(_0x541c83);});},'beforeUpdate':function(_0x5a581b,_0x58df28,_0x13a21c){Promise[_0x66b3('0x34')]()['then'](function(){if(_0x5a581b[_0x66b3('0x35')](_0x66b3('0x30'))===![])return;return _0xbc3a1f[_0x66b3('0x2e')][_0x66b3('0x2f')]({'where':{'id':_0x5a581b[_0x66b3('0x30')]}})[_0x66b3('0x24')](function(_0x5c9f48){if(_0x5c9f48)_0x5a581b[_0x66b3('0x31')]=_0x5c9f48[_0x66b3('0x31')];return;});})[_0x66b3('0x24')](function(){if(_0x5a581b[_0x66b3('0x35')](_0x66b3('0x15'))){_0x5a581b[_0x66b3('0x32')]();return _0x5a581b[_0x66b3('0x36')](_0x13a21c);}_0x13a21c();})[_0x66b3('0x33')](function(_0x2d2931){_0x13a21c(_0x2d2931);});},'afterCreate':function(_0x2d0b45,_0x16e39c,_0x53165e){var _0x12072c=getUserApplications(_0x2d0b45,_0x2d0b45[_0x66b3('0x25')]);if(_0x2d0b45[_0x66b3('0x25')]!=_0x2d0b45[_0x66b3('0x18')]){_0x12072c=_0x12072c[_0x66b3('0x26')](getUserApplications(_0x2d0b45,_0x2d0b45[_0x66b3('0x18')]));}return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x38')](_0x12072c)[_0x66b3('0x24')](function(){if(_0x2d0b45[_0x66b3('0xe')]){return getChanSpyPromise(_0xbc3a1f,_0x2d0b45);}})['then'](function(_0x52b1d3){if(_0x52b1d3&&_0x52b1d3[_0x66b3('0x6')]){return _0xbc3a1f[_0x66b3('0x37')]['bulkCreate'](_0x52b1d3);}})[_0x66b3('0x24')](function(){_0x53165e();})[_0x66b3('0x33')](function(_0x1b0253){_0x53165e(_0x1b0253);});},'afterUpdate':function(_0x227b1a,_0x57d3fe,_0x5e8538){return BPromise['resolve']()[_0x66b3('0x24')](function(){if(_0x227b1a[_0x66b3('0x35')](_0x66b3('0xe'))||_0x227b1a['changed'](_0x66b3('0x7'))){return _0xbc3a1f[_0x66b3('0x37')]['destroy']({'where':{'UserId':_0x227b1a['id'],'type':_0x66b3('0x9'),'ChanSpyId':{'$ne':null}}})[_0x66b3('0x24')](function(){if(_0x227b1a[_0x66b3('0xe')]){return getChanSpyPromise(_0xbc3a1f,_0x227b1a)[_0x66b3('0x24')](function(_0x208e1a){if(_0x208e1a&&_0x208e1a[_0x66b3('0x6')]){return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x38')](_0x208e1a);}});}});}})[_0x66b3('0x24')](function(){if(_0x227b1a[_0x66b3('0x35')](_0x66b3('0x1e'))||_0x227b1a['changed'](_0x66b3('0x7'))){return _0xbc3a1f['VoiceExtension'][_0x66b3('0x39')]({'where':{'UserId':_0x227b1a['id'],'type':_0x66b3('0x9'),'ChanSpyId':null}})['then'](function(){var _0xb0da3f=getUserApplications(_0x227b1a,_0x227b1a[_0x66b3('0x25')]);if(_0x227b1a['internal']!=_0x227b1a[_0x66b3('0x18')]){_0xb0da3f=_0xb0da3f[_0x66b3('0x26')](getUserApplications(_0x227b1a,_0x227b1a['name']));}return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x38')](_0xb0da3f);});}})[_0x66b3('0x24')](function(){_0x5e8538();})[_0x66b3('0x33')](function(_0x38b9e6){_0x5e8538(_0x38b9e6);});},'afterDestroy':function(_0x165111,_0x21d5ee){return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x39')]({'where':{'UserId':_0x165111['id'],'type':_0x66b3('0x9')}});}},'instanceMethods':{'authenticate':function(_0x21c374,_0x178d9a){if(!_0x178d9a){return this['password']===this['encryptPassword'](_0x21c374);}var _0x78dee4=this;this[_0x66b3('0x3a')](_0x21c374,function(_0x2d9dbd,_0xacc915){if(_0x2d9dbd){_0x178d9a(_0x2d9dbd);}if(_0x78dee4['password']===_0xacc915){_0x178d9a(null,!![]);}else{_0x178d9a(null,![]);}});},'makeSalt':function(_0x27fde4,_0x237f3e){var _0x45e7dc=0x10;if(typeof arguments[0x0]===_0x66b3('0x3b')){_0x237f3e=arguments[0x0];_0x27fde4=_0x45e7dc;}else if(typeof arguments[0x1]===_0x66b3('0x3b')){_0x237f3e=arguments[0x1];}else{throw new Error(_0x66b3('0x3c'));}if(!_0x27fde4){_0x27fde4=_0x45e7dc;}return crypto['randomBytes'](_0x27fde4,function(_0x3fcac6,_0x431bfe){if(_0x3fcac6){_0x237f3e(_0x3fcac6);}return _0x237f3e(null,_0x431bfe['toString'](_0x66b3('0x3d')));});},'encryptPassword':function(_0x2252e4,_0xb384a8){if(!_0x2252e4||!this['salt']){return _0xb384a8?_0xb384a8(null):null;}var _0x230ce2=0x2710;var _0x5007b8=0x40;var _0xee628f=new Buffer(this[_0x66b3('0x3e')],_0x66b3('0x3d'));if(!_0xb384a8){return crypto[_0x66b3('0x3f')](_0x2252e4,_0xee628f,_0x230ce2,_0x5007b8,'sha1')['toString']('base64');}return crypto[_0x66b3('0x40')](_0x2252e4,_0xee628f,_0x230ce2,_0x5007b8,_0x66b3('0x41'),function(_0x4d1532,_0x551e43){if(_0x4d1532){_0xb384a8(_0x4d1532);}return _0xb384a8(null,_0x551e43[_0x66b3('0x42')]('base64'));});},'updatePassword':function(_0x5bd890){if(!this[_0x66b3('0x15')]){return _0x5bd890(null);}if(!validatePresenceOf(this[_0x66b3('0x15')])&&authTypes[_0x66b3('0x43')](this['provider'])===-0x1){_0x5bd890(new Error('Invalid\x20password'));}var _0x1333fd=this;this['makeSalt'](function(_0x26b7ab,_0x38dea9){if(_0x26b7ab){return _0x5bd890(_0x26b7ab);}_0x1333fd[_0x66b3('0x3e')]=_0x38dea9;_0x1333fd['encryptPassword'](_0x1333fd[_0x66b3('0x15')],function(_0x5ac811,_0xa62932){if(_0x5ac811){_0x5bd890(_0x5ac811);}_0x1333fd[_0x66b3('0x15')]=_0xa62932;_0x5bd890(null);});});},'updateMd5Password':function(){this[_0x66b3('0x44')]=md5(this['name']+_0x66b3('0x45')+this['password']);return this['md5secret'];}}});};
\ No newline at end of file
+var _0x596a=['WAV','from-sip','extensionMonitor','includes','Set','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','Hangup','priority','defaults','VoiceChanSpy','then','internal','concat','catch','exports','models','User','users','utf8','utf8_bin','userProfileId','find','privacyEnabled','updateMd5Password','updatePassword','resolve','UserProfile','changed','VoiceExtension','bulkCreate','destroy','encryptPassword','function','toString','base64','salt','pbkdf2Sync','pbkdf2','sha1','indexOf','Invalid\x20password','makeSalt',':asterisk:','md5secret','bluebird','crypto','util','md5','lodash','./user.attributes','google','length','context','system','format','%s%s','push','merge','CDR(type)=%s','chanspy','record','recordingFormat','auth','Authenticate','password','SIP/%s,%s','name','options','StopMixMonitor','wav'];(function(_0x958a4b,_0x2be115){var _0x16f516=function(_0x3a3acd){while(--_0x3a3acd){_0x958a4b['push'](_0x958a4b['shift']());}};_0x16f516(++_0x2be115);}(_0x596a,0x1de));var _0xa596=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x596a[_0x42cae2];return _0x5f256f;};'use strict';var BPromise=require(_0xa596('0x0'));var crypto=require(_0xa596('0x1'));var util=require(_0xa596('0x2'));var md5=require(_0xa596('0x3'));var _=require(_0xa596('0x4'));var attributes=require(_0xa596('0x5'));var authTypes=[_0xa596('0x6')];var validatePresenceOf=function(_0x5c4562){return _0x5c4562&&_0x5c4562[_0xa596('0x7')];};var getChanSpyApplications=function(_0x47e5c3,_0x56d531,_0x5aa6fc){var _0x340a07={'context':_0x47e5c3[_0xa596('0x8')]||'from-sip','type':_0xa596('0x9'),'isApp':![],'UserId':_0x47e5c3['id']};var _0x3d1aa4=[];for(var _0x3510a1=0x0,_0x1d9caf=0x1;_0x3510a1<_0x5aa6fc[_0xa596('0x7')];_0x3510a1++,_0x1d9caf=0x1){var _0x3c4419={'exten':util[_0xa596('0xa')](_0xa596('0xb'),_0x5aa6fc[_0x3510a1]['prefix'],_0x56d531),'ChanSpyId':_0x5aa6fc[_0x3510a1]['id']};_0x3d1aa4[_0xa596('0xc')](_[_0xa596('0xd')]({'app':'Set','appdata':util[_0xa596('0xa')](_0xa596('0xe'),_0xa596('0xf')),'priority':_0x1d9caf++},_0x340a07,_0x3c4419));if(_0x5aa6fc[_0x3510a1][_0xa596('0x10')]){_0x3d1aa4[_0xa596('0xc')](_[_0xa596('0xd')]({'app':'MixMonitor','appdata':util[_0xa596('0xa')]('${UNIQUEID}.%s,a',_0x5aa6fc[_0x3510a1][_0xa596('0x11')]),'priority':_0x1d9caf++},_0x340a07,_0x3c4419));}if(_0x5aa6fc[_0x3510a1][_0xa596('0x12')]){_0x3d1aa4[_0xa596('0xc')](_['merge']({'app':_0xa596('0x13'),'appdata':_0x5aa6fc[_0x3510a1][_0xa596('0x14')],'priority':_0x1d9caf++},_0x340a07,_0x3c4419));}_0x3d1aa4[_0xa596('0xc')](_[_0xa596('0xd')]({'app':'ChanSpy','appdata':util[_0xa596('0xa')](_0xa596('0x15'),_0x47e5c3[_0xa596('0x16')],_0x5aa6fc[_0x3510a1][_0xa596('0x17')]?_0x5aa6fc[_0x3510a1][_0xa596('0x17')]['join'](''):''),'priority':_0x1d9caf++},_0x340a07,_0x3c4419));if(_0x5aa6fc[_0x3510a1]['record']){_0x3d1aa4['push'](_[_0xa596('0xd')]({'app':_0xa596('0x18'),'priority':_0x1d9caf++},_0x340a07,_0x3c4419));}}return _0x3d1aa4;};var getUserApplications=function(_0x31a4be,_0x18aa4f){var _0x20628c=[_0xa596('0x19'),_0xa596('0x1a'),'gsm'];var _0x366603={'context':_0x31a4be[_0xa596('0x8')]||_0xa596('0x1b'),'exten':_0x18aa4f,'type':_0xa596('0x9'),'isApp':![],'UserId':_0x31a4be['id']};var _0x424173=[{'app':'Set','appdata':'CDR(type)=internal'}];if(_0x31a4be[_0xa596('0x1c')]&&_[_0xa596('0x1d')](_0x20628c,_0x31a4be[_0xa596('0x1c')])){_0x424173[_0xa596('0xc')]({'app':_0xa596('0x1e'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}'});_0x424173[_0xa596('0xc')]({'app':'Set','appdata':util['format']('_XCALLY_MIXMONITOR_FORMAT=%s',_0x31a4be['extensionMonitor'])});_0x424173['push']({'app':_0xa596('0x1f'),'appdata':util[_0xa596('0xa')](_0xa596('0x20'),_0x31a4be['name'])});}else{_0x424173['push']({'app':_0xa596('0x1f'),'appdata':util[_0xa596('0xa')](_0xa596('0x21'),_0x31a4be['name'])});}_0x424173[_0xa596('0xc')]({'app':_0xa596('0x22')});for(var _0x501b87=0x0;_0x501b87<_0x424173[_0xa596('0x7')];_0x501b87++){_0x424173[_0x501b87][_0xa596('0x23')]=_0x501b87+0x1;_0x424173[_0x501b87]=_[_0xa596('0x24')](_0x424173[_0x501b87],_0x366603);}return _0x424173;};var getChanSpyPromise=function(_0x3b0ac4,_0x5074d8){return new BPromise(function(_0x3f24d2,_0x457d62){return _0x3b0ac4[_0xa596('0x25')]['findAll']()[_0xa596('0x26')](function(_0x19b49a){if(_0x19b49a){var _0x2515d1=getChanSpyApplications(_0x5074d8,_0x5074d8[_0xa596('0x27')],_0x19b49a);if(_0x5074d8[_0xa596('0x27')]!=_0x5074d8[_0xa596('0x16')]){_0x2515d1=_0x2515d1[_0xa596('0x28')](getChanSpyApplications(_0x5074d8,_0x5074d8['name'],_0x19b49a));}return _0x3f24d2(_0x2515d1);}return _0x3f24d2([]);})[_0xa596('0x29')](function(_0x52c135){_0x457d62(_0x52c135);});});};module[_0xa596('0x2a')]=function(_0x10f0f9,_0x3fe1fe){var _0x3adaec=_0x10f0f9[_0xa596('0x2b')];return _0x10f0f9['define'](_0xa596('0x2c'),attributes,{'tableName':_0xa596('0x2d'),'charset':_0xa596('0x2e'),'collate':_0xa596('0x2f'),'hooks':{'beforeCreate':function(_0x4cd4cd,_0x2399d7,_0x56fbed){var _0x24166c=typeof _0x4cd4cd[_0xa596('0x30')]==='undefined'?BPromise['resolve'](null):_0x3adaec['UserProfile'][_0xa596('0x31')]({'where':{'id':_0x4cd4cd[_0xa596('0x30')]}});_0x24166c[_0xa596('0x26')](function(_0x25e720){if(_0x25e720){_0x4cd4cd[_0xa596('0x32')]=_0x25e720[_0xa596('0x32')];}})[_0xa596('0x26')](function(){_0x4cd4cd[_0xa596('0x33')]();_0x4cd4cd[_0xa596('0x34')](_0x56fbed);})[_0xa596('0x29')](function(_0x3370c6){_0x56fbed(_0x3370c6);});},'beforeUpdate':function(_0xc80e30,_0x14fbf4,_0x1f1ed4){Promise[_0xa596('0x35')]()[_0xa596('0x26')](function(){if(_0xc80e30['changed'](_0xa596('0x30'))===![])return;return _0x3adaec[_0xa596('0x36')][_0xa596('0x31')]({'where':{'id':_0xc80e30['userProfileId']}})[_0xa596('0x26')](function(_0x3a5115){if(_0x3a5115)_0xc80e30[_0xa596('0x32')]=_0x3a5115['privacyEnabled'];return;});})['then'](function(){if(_0xc80e30[_0xa596('0x37')](_0xa596('0x14'))){_0xc80e30['updateMd5Password']();return _0xc80e30[_0xa596('0x34')](_0x1f1ed4);}_0x1f1ed4();})[_0xa596('0x29')](function(_0x2eefa2){_0x1f1ed4(_0x2eefa2);});},'afterCreate':function(_0x1c863b,_0x4006af,_0x2be03b){var _0x58b707=getUserApplications(_0x1c863b,_0x1c863b[_0xa596('0x27')]);if(_0x1c863b[_0xa596('0x27')]!=_0x1c863b[_0xa596('0x16')]){_0x58b707=_0x58b707['concat'](getUserApplications(_0x1c863b,_0x1c863b['name']));}return _0x3adaec[_0xa596('0x38')]['bulkCreate'](_0x58b707)[_0xa596('0x26')](function(){if(_0x1c863b[_0xa596('0xf')]){return getChanSpyPromise(_0x3adaec,_0x1c863b);}})['then'](function(_0x334fef){if(_0x334fef&&_0x334fef[_0xa596('0x7')]){return _0x3adaec[_0xa596('0x38')][_0xa596('0x39')](_0x334fef);}})[_0xa596('0x26')](function(){_0x2be03b();})['catch'](function(_0x1ac1ad){_0x2be03b(_0x1ac1ad);});},'afterUpdate':function(_0x4c1278,_0x301726,_0x4a00d3){return BPromise['resolve']()[_0xa596('0x26')](function(){if(_0x4c1278[_0xa596('0x37')](_0xa596('0xf'))||_0x4c1278['changed'](_0xa596('0x8'))){return _0x3adaec[_0xa596('0x38')][_0xa596('0x3a')]({'where':{'UserId':_0x4c1278['id'],'type':_0xa596('0x9'),'ChanSpyId':{'$ne':null}}})[_0xa596('0x26')](function(){if(_0x4c1278['chanspy']){return getChanSpyPromise(_0x3adaec,_0x4c1278)[_0xa596('0x26')](function(_0x21586d){if(_0x21586d&&_0x21586d[_0xa596('0x7')]){return _0x3adaec[_0xa596('0x38')][_0xa596('0x39')](_0x21586d);}});}});}})[_0xa596('0x26')](function(){if(_0x4c1278[_0xa596('0x37')](_0xa596('0x1c'))||_0x4c1278[_0xa596('0x37')]('context')){return _0x3adaec['VoiceExtension'][_0xa596('0x3a')]({'where':{'UserId':_0x4c1278['id'],'type':_0xa596('0x9'),'ChanSpyId':null}})['then'](function(){var _0x1392dc=getUserApplications(_0x4c1278,_0x4c1278[_0xa596('0x27')]);if(_0x4c1278['internal']!=_0x4c1278[_0xa596('0x16')]){_0x1392dc=_0x1392dc[_0xa596('0x28')](getUserApplications(_0x4c1278,_0x4c1278[_0xa596('0x16')]));}return _0x3adaec[_0xa596('0x38')][_0xa596('0x39')](_0x1392dc);});}})['then'](function(){_0x4a00d3();})[_0xa596('0x29')](function(_0x14a498){_0x4a00d3(_0x14a498);});},'afterDestroy':function(_0x50b063,_0x3f7295){return _0x3adaec[_0xa596('0x38')][_0xa596('0x3a')]({'where':{'UserId':_0x50b063['id'],'type':'system'}});}},'instanceMethods':{'authenticate':function(_0x5cb3df,_0x3e67e8){if(!_0x3e67e8){return this[_0xa596('0x14')]===this['encryptPassword'](_0x5cb3df);}var _0x36f509=this;this[_0xa596('0x3b')](_0x5cb3df,function(_0x329aa8,_0x4a793e){if(_0x329aa8){_0x3e67e8(_0x329aa8);}if(_0x36f509[_0xa596('0x14')]===_0x4a793e){_0x3e67e8(null,!![]);}else{_0x3e67e8(null,![]);}});},'makeSalt':function(_0x322743,_0x6497d3){var _0x48cba9=0x10;if(typeof arguments[0x0]==='function'){_0x6497d3=arguments[0x0];_0x322743=_0x48cba9;}else if(typeof arguments[0x1]===_0xa596('0x3c')){_0x6497d3=arguments[0x1];}else{throw new Error('Missing\x20Callback');}if(!_0x322743){_0x322743=_0x48cba9;}return crypto['randomBytes'](_0x322743,function(_0x2b4d9e,_0x553aae){if(_0x2b4d9e){_0x6497d3(_0x2b4d9e);}return _0x6497d3(null,_0x553aae[_0xa596('0x3d')](_0xa596('0x3e')));});},'encryptPassword':function(_0x1339b5,_0x79d6be){if(!_0x1339b5||!this['salt']){return _0x79d6be?_0x79d6be(null):null;}var _0x5bfd03=0x2710;var _0x45d49c=0x40;var _0x343227=new Buffer(this[_0xa596('0x3f')],_0xa596('0x3e'));if(!_0x79d6be){return crypto[_0xa596('0x40')](_0x1339b5,_0x343227,_0x5bfd03,_0x45d49c,'sha1')[_0xa596('0x3d')](_0xa596('0x3e'));}return crypto[_0xa596('0x41')](_0x1339b5,_0x343227,_0x5bfd03,_0x45d49c,_0xa596('0x42'),function(_0x5687bf,_0x208421){if(_0x5687bf){_0x79d6be(_0x5687bf);}return _0x79d6be(null,_0x208421[_0xa596('0x3d')](_0xa596('0x3e')));});},'updatePassword':function(_0x5684a1){if(!this[_0xa596('0x14')]){return _0x5684a1(null);}if(!validatePresenceOf(this[_0xa596('0x14')])&&authTypes[_0xa596('0x43')](this['provider'])===-0x1){_0x5684a1(new Error(_0xa596('0x44')));}var _0x4a4373=this;this[_0xa596('0x45')](function(_0x49bcab,_0x2ec8ea){if(_0x49bcab){return _0x5684a1(_0x49bcab);}_0x4a4373[_0xa596('0x3f')]=_0x2ec8ea;_0x4a4373[_0xa596('0x3b')](_0x4a4373[_0xa596('0x14')],function(_0x540419,_0x17c7d2){if(_0x540419){_0x5684a1(_0x540419);}_0x4a4373['password']=_0x17c7d2;_0x5684a1(null);});});},'updateMd5Password':function(){this['md5secret']=md5(this[_0xa596('0x16')]+_0xa596('0x46')+this[_0xa596('0x14')]);return this[_0xa596('0x47')];}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7dc1=['whatsapp','set','%s%s','Pause','LogoutUser','destroy','all','mobile','loginInPause','SIP/%s','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','UserVoiceQueue.penalty','merge','LOGIN','callysquare','LOGININPAUSE','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','./user.socket','register','then','info','User,\x20%s,\x20%s','request\x20sent','User,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetUser','User','findAll','options','raw','where','attributes','limit','include','map','model','debug','find','ShowUser','PauseUser','name','role','internal','update','MemberReport','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','interface','body','bulkCreate','UnpauseUser','findOne','isValidChannel','channel','Unknown\x20channel','voice','UserVoiceQueueRt','system','mail','chat','fax','sms'];(function(_0x35a9fd,_0x540c82){var _0x26242e=function(_0x581b0f){while(--_0x581b0f){_0x35a9fd['push'](_0x35a9fd['shift']());}};_0x26242e(++_0x540c82);}(_0x7dc1,0x12a));var _0x17dc=function(_0x1c5bd7,_0x3d554f){_0x1c5bd7=_0x1c5bd7-0x0;var _0xbe5453=_0x7dc1[_0x1c5bd7];return _0xbe5453;};'use strict';var _=require(_0x17dc('0x0'));var util=require(_0x17dc('0x1'));var moment=require('moment');var BPromise=require(_0x17dc('0x2'));var rs=require(_0x17dc('0x3'));var fs=require('fs');var Redis=require(_0x17dc('0x4'));var db=require(_0x17dc('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x17dc('0x6'))(_0x17dc('0x7'));var config=require(_0x17dc('0x8'));var jayson=require(_0x17dc('0x9'));var client=jayson[_0x17dc('0xa')][_0x17dc('0xb')]({'port':0x232a});config[_0x17dc('0xc')]=_['defaults'](config[_0x17dc('0xc')],{'host':_0x17dc('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x17dc('0xc')]));require(_0x17dc('0xe'))[_0x17dc('0xf')](socket);function respondWithRpcPromise(_0x26c527,_0x16fc1e,_0xdccae8){return new BPromise(function(_0x594541,_0x9c7d6d){return client['request'](_0x26c527,_0xdccae8)[_0x17dc('0x10')](function(_0x1ce8d7){logger[_0x17dc('0x11')](_0x17dc('0x12'),_0x16fc1e,_0x17dc('0x13'));logger['debug'](_0x17dc('0x14'),_0x16fc1e,_0x17dc('0x13'),JSON[_0x17dc('0x15')](_0x1ce8d7));if(_0x1ce8d7[_0x17dc('0x16')]){if(_0x1ce8d7[_0x17dc('0x16')]['code']===0x1f4){logger[_0x17dc('0x16')](_0x17dc('0x12'),_0x16fc1e,_0x1ce8d7[_0x17dc('0x16')][_0x17dc('0x17')]);return _0x9c7d6d(_0x1ce8d7['error']['message']);}logger[_0x17dc('0x16')]('User,\x20%s,\x20%s',_0x16fc1e,_0x1ce8d7['error'][_0x17dc('0x17')]);return _0x594541(_0x1ce8d7[_0x17dc('0x16')][_0x17dc('0x17')]);}else{logger['info']('User,\x20%s,\x20%s',_0x16fc1e,'request\x20sent');_0x594541(_0x1ce8d7[_0x17dc('0x18')][_0x17dc('0x17')]);}})[_0x17dc('0x19')](function(_0x1240d1){logger[_0x17dc('0x16')](_0x17dc('0x12'),_0x16fc1e,_0x1240d1);_0x9c7d6d(_0x1240d1);});});}exports[_0x17dc('0x1a')]=function(_0x1e979a){var _0x30ac55=this;return new Promise(function(_0x551501,_0x5a8dca){return db[_0x17dc('0x1b')][_0x17dc('0x1c')]({'raw':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a['options'][_0x17dc('0x1e')]===undefined?!![]:![]:!![],'where':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x1f')]||null:null,'attributes':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x20')]||null:null,'limit':_0x1e979a['options']?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x21')]||null:null,'include':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x22')]?_[_0x17dc('0x23')](_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x22')],function(_0x450a7c){return{'model':db[_0x450a7c[_0x17dc('0x24')]],'as':_0x450a7c['as'],'attributes':_0x450a7c[_0x17dc('0x20')],'include':_0x450a7c[_0x17dc('0x22')]?_['map'](_0x450a7c['include'],function(_0x2a1e12){return{'model':db[_0x2a1e12['model']],'as':_0x2a1e12['as'],'attributes':_0x2a1e12[_0x17dc('0x20')],'include':_0x2a1e12[_0x17dc('0x22')]?_[_0x17dc('0x23')](_0x2a1e12[_0x17dc('0x22')],function(_0x18c31c){return{'model':db[_0x18c31c['model']],'as':_0x18c31c['as'],'attributes':_0x18c31c[_0x17dc('0x20')]};}):[]};}):[]};}):[]:[]})[_0x17dc('0x10')](function(_0x13d4de){logger[_0x17dc('0x11')](_0x17dc('0x1a'),_0x1e979a);logger[_0x17dc('0x25')](_0x17dc('0x1a'),_0x1e979a,JSON['stringify'](_0x13d4de));_0x551501(_0x13d4de);})['catch'](function(_0x320507){logger[_0x17dc('0x16')](_0x17dc('0x1a'),_0x320507[_0x17dc('0x17')],_0x1e979a);_0x5a8dca(_0x30ac55[_0x17dc('0x16')](0x1f4,_0x320507[_0x17dc('0x17')]));});});};exports['ShowUser']=function(_0x4a0d67){var _0x3fc155=this;return new Promise(function(_0x5468fa,_0x46a405){return db['User'][_0x17dc('0x26')]({'raw':_0x4a0d67['options']?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x1e')]===undefined?!![]:![]:!![],'where':_0x4a0d67[_0x17dc('0x1d')]?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x1f')]||null:null,'attributes':_0x4a0d67[_0x17dc('0x1d')]?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x20')]||null:null,'include':_0x4a0d67[_0x17dc('0x1d')]?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x22')]?_[_0x17dc('0x23')](_0x4a0d67['options'][_0x17dc('0x22')],function(_0xdbac77){return{'model':db[_0xdbac77['model']],'as':_0xdbac77['as'],'attributes':_0xdbac77[_0x17dc('0x20')],'include':_0xdbac77[_0x17dc('0x22')]?_[_0x17dc('0x23')](_0xdbac77[_0x17dc('0x22')],function(_0x41f534){return{'model':db[_0x41f534[_0x17dc('0x24')]],'as':_0x41f534['as'],'attributes':_0x41f534[_0x17dc('0x20')],'include':_0x41f534['include']?_[_0x17dc('0x23')](_0x41f534[_0x17dc('0x22')],function(_0x214fd7){return{'model':db[_0x214fd7[_0x17dc('0x24')]],'as':_0x214fd7['as'],'attributes':_0x214fd7[_0x17dc('0x20')]};}):[]};}):[]};}):[]:[]})[_0x17dc('0x10')](function(_0x1c87ef){logger[_0x17dc('0x11')]('ShowUser',_0x4a0d67);logger['debug'](_0x17dc('0x27'),_0x4a0d67,JSON['stringify'](_0x1c87ef));_0x5468fa(_0x1c87ef);})['catch'](function(_0x2c9481){logger[_0x17dc('0x16')](_0x17dc('0x27'),_0x2c9481[_0x17dc('0x17')],_0x4a0d67);_0x46a405(_0x3fc155[_0x17dc('0x16')](0x1f4,_0x2c9481[_0x17dc('0x17')]));});});};exports[_0x17dc('0x28')]=function(_0x472a52){var _0x1d1b13=this;return new Promise(function(_0x50c85e,_0x375cfb){var _0x4d4084;return db[_0x17dc('0x1b')][_0x17dc('0x26')]({'where':_0x472a52[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id',_0x17dc('0x29'),_0x17dc('0x2a'),_0x17dc('0x2b'),'interface']})[_0x17dc('0x10')](function(_0x5e530c){if(_0x5e530c){_0x4d4084=_0x5e530c;return db['UserVoiceQueueRt'][_0x17dc('0x2c')]({'paused':0x1},{'where':{'UserId':_0x4d4084['id']},'individualHooks':!![]});}})['then'](function(){if(_0x4d4084){return db[_0x17dc('0x2d')][_0x17dc('0x1c')]({'where':{'membername':_0x4d4084['name'],'type':_0x17dc('0x2e'),'exitAt':null}});}})[_0x17dc('0x10')](function(_0x17ac83){if(_0x4d4084){if(_0x17ac83&&_0x17ac83[_0x17dc('0x2f')]){var _0x4db744=moment()[_0x17dc('0x30')](_0x17dc('0x31'));for(var _0x554335=0x0,_0x364ad9=_0x17ac83[_0x17dc('0x2f')];_0x554335<_0x364ad9;_0x554335++){_0x17ac83[_0x554335][_0x17dc('0x32')]({'exitAt':_0x4db744});}}}})['then'](function(){if(_0x4d4084){var _0x1dca6c=[];var _0x3cea59=utils[_0x17dc('0x33')]();_0x3cea59[_0x17dc('0x34')](function(_0x2c4e7f){_0x1dca6c[_0x17dc('0x35')]({'channel':_0x2c4e7f,'membername':_0x4d4084['name'],'interface':_[_0x17dc('0x36')](_0x4d4084[_0x17dc('0x37')])?util[_0x17dc('0x30')]('SIP/%s',_0x4d4084['name']):_0x4d4084[_0x17dc('0x37')],'type':_0x17dc('0x2e'),'enterAt':moment()[_0x17dc('0x30')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x472a52[_0x17dc('0x38')]['type']||'DEFAULT\x20PAUSE','role':_0x4d4084['role'],'internal':_0x4d4084['internal'],'uniqueid':_0x472a52[_0x17dc('0x38')]['uniqueid']||null});});return db[_0x17dc('0x2d')][_0x17dc('0x39')](_0x1dca6c,{'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x4d4084){return _0x4d4084['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x472a52[_0x17dc('0x38')]['type']||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0x17dc('0x30')]('YYYY-MM-DD\x20HH:mm:ss')});}})[_0x17dc('0x10')](function(_0x32c0a3){_0x50c85e(_0x32c0a3);})['catch'](function(_0x404992){_0x375cfb(_0x1d1b13[_0x17dc('0x16')](0x1f4,_0x404992[_0x17dc('0x17')]));});});};exports[_0x17dc('0x3a')]=function(_0xea2535){var _0x901b=this;return new Promise(function(_0x1dbee5,_0x2d54fe){var _0x5b3677;return db['User'][_0x17dc('0x3b')]({'where':_0xea2535[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id','name']})[_0x17dc('0x10')](function(_0x3d8364){if(_0x3d8364){_0x5b3677=_0x3d8364;if(_0xea2535[_0x17dc('0x38')]['channel']&&!utils[_0x17dc('0x3c')](_0xea2535[_0x17dc('0x38')][_0x17dc('0x3d')])){throw new Error(_0x17dc('0x3e'));}switch(_0xea2535[_0x17dc('0x38')][_0x17dc('0x3d')]){case _0x17dc('0x3f'):return db[_0x17dc('0x40')]['update']({'paused':0x0},{'where':{'UserId':_0x5b3677['id']}})['then'](function(){return db['MemberReport'][_0x17dc('0x26')]({'where':{'channel':_0xea2535['body']['channel'],'membername':_0x5b3677['name'],'type':'PAUSE','exitAt':null}});})[_0x17dc('0x10')](function(_0x1b2220){if(_0x1b2220){return _0x1b2220[_0x17dc('0x2c')]({'exitAt':moment()['format'](_0x17dc('0x31')),'data2':_0x17dc('0x41')},{'individualHooks':!![]});}return null;})[_0x17dc('0x10')](function(){return _0x5b3677[_0x17dc('0x2c')]({'voicePause':![]});});case _0x17dc('0x42'):case _0x17dc('0x43'):case _0x17dc('0x44'):case _0x17dc('0x45'):case'openchannel':case _0x17dc('0x46'):return db[_0x17dc('0x2d')][_0x17dc('0x26')]({'where':{'channel':_0xea2535[_0x17dc('0x38')][_0x17dc('0x3d')],'membername':_0x5b3677[_0x17dc('0x29')],'type':_0x17dc('0x2e'),'exitAt':null}})[_0x17dc('0x10')](function(_0x3eaf91){return _0x3eaf91[_0x17dc('0x2c')]({'exitAt':moment()['format'](_0x17dc('0x31')),'data2':_0x17dc('0x41')},{'individualHooks':!![]});})[_0x17dc('0x10')](function(){var _0x57a4c1={};_[_0x17dc('0x47')](_0x57a4c1,util[_0x17dc('0x30')](_0x17dc('0x48'),_0xea2535['body'][_0x17dc('0x3d')],_0x17dc('0x49')),![]);return _0x5b3677['update'](_0x57a4c1);});default:return db[_0x17dc('0x40')]['update']({'paused':0x0},{'where':{'UserId':_0x5b3677['id']}})[_0x17dc('0x10')](function(){return db[_0x17dc('0x2d')]['findAll']({'where':{'membername':_0x5b3677[_0x17dc('0x29')],'type':_0x17dc('0x2e'),'exitAt':null}});})['then'](function(_0x2a2408){var _0x1a17ae=[];_0x2a2408[_0x17dc('0x34')](function(_0x4d1925){_0x1a17ae['push'](_0x4d1925[_0x17dc('0x2c')]({'exitAt':moment()[_0x17dc('0x30')](_0x17dc('0x31')),'data2':_0x17dc('0x41')}));});return BPromise['all'](_0x1a17ae);})[_0x17dc('0x10')](function(){return _0x5b3677[_0x17dc('0x2c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x17dc('0x10')](function(_0x295e2d){_0x1dbee5(_0x295e2d);})[_0x17dc('0x19')](function(_0x188257){_0x2d54fe(_0x901b[_0x17dc('0x16')](0x1f4,_0x188257[_0x17dc('0x17')]));});});};exports[_0x17dc('0x4a')]=function(_0xcc1cc3){var _0x2202e1=this;return new Promise(function(_0x49943b,_0x25da57){var _0x23c096;return db[_0x17dc('0x1b')][_0x17dc('0x3b')]({'where':_0xcc1cc3[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id',_0x17dc('0x29')]})[_0x17dc('0x10')](function(_0x1dc99f){if(_0x1dc99f){_0x23c096=_0x1dc99f;return db['UserVoiceQueueRt'][_0x17dc('0x4b')]({'where':{'membername':_0x23c096[_0x17dc('0x29')]},'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x23c096){return db['MemberReport'][_0x17dc('0x1c')]({'where':{'membername':_0x23c096[_0x17dc('0x29')],'exitAt':null}});}})[_0x17dc('0x10')](function(_0x3cd0ca){if(_0x23c096){if(_0x3cd0ca&&_0x3cd0ca[_0x17dc('0x2f')]){var _0x1e5d25=[];_0x3cd0ca[_0x17dc('0x34')](function(_0x2111ee){_0x1e5d25[_0x17dc('0x35')](_0x2111ee['update']({'exitAt':moment()['format'](_0x17dc('0x31'))}));});return BPromise[_0x17dc('0x4c')](_0x1e5d25);}}})['then'](function(){if(_0x23c096){return _0x23c096['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x2dc5e2){_0x49943b(_0x2dc5e2);})[_0x17dc('0x19')](function(_0x2f8448){_0x25da57(_0x2202e1['error'](0x1f4,_0x2f8448[_0x17dc('0x17')]));});});};exports['LoginUser']=function(_0x4de8d9){var _0xcee5f4=this;return new Promise(function(_0x529bdd,_0x2b94cb){var _0x30f1c5;var _0xe1fc10;var _0x297969;var _0x354f75;return db[_0x17dc('0x1b')][_0x17dc('0x3b')]({'where':_0x4de8d9[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id','name','role',_0x17dc('0x4d'),'phone',_0x17dc('0x2b'),_0x17dc('0x4e'),_0x17dc('0x37')]})[_0x17dc('0x10')](function(_0xe226d2){if(_0xe226d2){_0x30f1c5=_0xe226d2;_0x354f75=_0x4de8d9[_0x17dc('0x38')][_0x17dc('0x37')]?_0x4de8d9[_0x17dc('0x38')][_0x17dc('0x37')]:util[_0x17dc('0x30')](_0x17dc('0x4f'),_0x30f1c5['name']);return db[_0x17dc('0x1b')][_0x17dc('0x50')]({'where':{'role':_0x17dc('0x51'),'online':!![],'id':{'$ne':_0x30f1c5['id']}}});}})[_0x17dc('0x10')](function(_0x3cadf0){if(_0x3cadf0){_0x297969=_0x3cadf0;return require(_0x17dc('0x52'))[_0x17dc('0x53')]();}})[_0x17dc('0x10')](function(_0x2e30e7){if(_0x2e30e7&&_0x2e30e7[_0x17dc('0x54')]&&_0x297969>=_0x2e30e7['agents']){throw new Error(_0x17dc('0x55'));}})['then'](function(){if(_0x30f1c5){return db['UserVoiceQueueRt'][_0x17dc('0x4b')]({'where':{'membername':_0x30f1c5[_0x17dc('0x29')]},'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x30f1c5){return _0x30f1c5['getVoiceQueues']({'raw':!![]});}})[_0x17dc('0x10')](function(_0x2249cc){if(_0x30f1c5){if(_0x2249cc){var _0x59c59e=[];_0xe1fc10=_0x2249cc;if(_0xe1fc10[_0x17dc('0x2f')]){for(var _0x3d51af=0x0;_0x3d51af<_0xe1fc10[_0x17dc('0x2f')];_0x3d51af++){_0x59c59e[_0x17dc('0x35')](db['UserVoiceQueueRt'][_0x17dc('0x56')]({'membername':_0x30f1c5[_0x17dc('0x29')],'UserId':_0x30f1c5['id'],'queue_name':_0xe1fc10[_0x3d51af][_0x17dc('0x29')],'VoiceQueueId':_0xe1fc10[_0x3d51af]['id'],'interface':_0x354f75,'paused':_0x30f1c5[_0x17dc('0x4e')]||![],'penalty':_0xe1fc10[_0x3d51af][_0x17dc('0x57')]||0x0}));}return BPromise['all'](_0x59c59e);}}}})[_0x17dc('0x10')](function(){if(_0x30f1c5){return db[_0x17dc('0x2d')]['findAll']({'where':{'membername':_0x30f1c5[_0x17dc('0x29')],'exitAt':null}});}})['then'](function(_0x241700){if(_0x30f1c5){if(_0x241700&&_0x241700['length']){var _0x462e9a=[];_0x241700[_0x17dc('0x34')](function(_0x536b1f){_0x462e9a[_0x17dc('0x35')](_0x536b1f[_0x17dc('0x2c')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x17dc('0x4c')](_0x462e9a);}}})[_0x17dc('0x10')](function(_0x1aa965){if(_0x30f1c5){var _0x29d520=[];var _0x54127a=[];var _0x40600d=utils[_0x17dc('0x33')]();var _0x206f41={'membername':_0x30f1c5[_0x17dc('0x29')],'interface':_0x354f75,'enterAt':moment()[_0x17dc('0x30')](_0x17dc('0x31')),'role':_0x30f1c5[_0x17dc('0x2a')],'internal':_0x30f1c5[_0x17dc('0x2b')]};_0x40600d[_0x17dc('0x34')](function(_0xc339e9){_0x29d520['push'](_[_0x17dc('0x58')]({'channel':_0xc339e9,'type':_0x17dc('0x59'),'data1':_0x17dc('0x5a'),'data2':_0x354f75},_0x206f41));if(_0x30f1c5[_0x17dc('0x4e')]){_0x54127a['push'](_[_0x17dc('0x58')]({'channel':_0xc339e9,'type':_0x17dc('0x2e'),'data1':_0x17dc('0x5b')},_0x206f41));}});return db[_0x17dc('0x2d')][_0x17dc('0x39')](_0x29d520['concat'](_0x54127a),{'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x30f1c5){return _0x30f1c5[_0x17dc('0x2c')]({'online':!![],'lastLoginAt':moment()['format'](_0x17dc('0x31')),'voicePause':_0x30f1c5[_0x17dc('0x4e')]||![],'mailPause':_0x30f1c5[_0x17dc('0x4e')]||![],'chatPause':_0x30f1c5[_0x17dc('0x4e')]||![],'faxPause':_0x30f1c5[_0x17dc('0x4e')]||![],'smsPause':_0x30f1c5['loginInPause']||![],'openchannelPause':_0x30f1c5[_0x17dc('0x4e')]||![],'pauseType':_0x30f1c5['loginInPause']?_0x17dc('0x5b'):null,'lastPauseAt':moment()[_0x17dc('0x30')](_0x17dc('0x31')),'interface':_0x354f75});}})[_0x17dc('0x10')](function(_0x26779c){_0x529bdd(_0x26779c);})[_0x17dc('0x19')](function(_0x591c34){_0x2b94cb(_0xcee5f4[_0x17dc('0x16')](0x1f4,_0x591c34[_0x17dc('0x17')]));});});};
\ No newline at end of file
+var _0x7b69=['agents','Maximum\x20login\x20has\x20been\x20reached','upsert','UserVoiceQueue.penalty','merge','LOGININPAUSE','bulkCreate','concat','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./user.socket','register','request','then','info','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','error','code','message','User,\x20%s,\x20%s','result','catch','GetUser','User','findAll','options','raw','where','limit','include','map','model','attributes','ShowUser','find','stringify','PauseUser','name','role','internal','interface','MemberReport','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','getChannels','forEach','isNil','SIP/%s','body','type','DEFAULT\x20PAUSE','update','UnpauseUser','findOne','channel','isValidChannel','Unknown\x20channel','voice','UserVoiceQueueRt','system','mail','chat','fax','openchannel','set','%s%s','Pause','push','all','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense'];(function(_0x5343b2,_0x3489ab){var _0x113bd3=function(_0x2a7776){while(--_0x2a7776){_0x5343b2['push'](_0x5343b2['shift']());}};_0x113bd3(++_0x3489ab);}(_0x7b69,0x1e8));var _0x97b6=function(_0x4497a7,_0x408641){_0x4497a7=_0x4497a7-0x0;var _0x3fac9f=_0x7b69[_0x4497a7];return _0x3fac9f;};'use strict';var _=require(_0x97b6('0x0'));var util=require(_0x97b6('0x1'));var moment=require('moment');var BPromise=require(_0x97b6('0x2'));var rs=require(_0x97b6('0x3'));var fs=require('fs');var Redis=require(_0x97b6('0x4'));var db=require(_0x97b6('0x5'))['db'];var utils=require(_0x97b6('0x6'));var logger=require(_0x97b6('0x7'))(_0x97b6('0x8'));var config=require(_0x97b6('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x97b6('0xa')]['http']({'port':0x232a});config[_0x97b6('0xb')]=_[_0x97b6('0xc')](config['redis'],{'host':_0x97b6('0xd'),'port':0x18eb});var socket=require(_0x97b6('0xe'))(new Redis(config['redis']));require(_0x97b6('0xf'))[_0x97b6('0x10')](socket);function respondWithRpcPromise(_0x4870c9,_0x422931,_0x48f7c4){return new BPromise(function(_0x1864a5,_0x428fb2){return client[_0x97b6('0x11')](_0x4870c9,_0x48f7c4)[_0x97b6('0x12')](function(_0x21d799){logger[_0x97b6('0x13')]('User,\x20%s,\x20%s',_0x422931,_0x97b6('0x14'));logger[_0x97b6('0x15')](_0x97b6('0x16'),_0x422931,_0x97b6('0x14'),JSON['stringify'](_0x21d799));if(_0x21d799['error']){if(_0x21d799[_0x97b6('0x17')][_0x97b6('0x18')]===0x1f4){logger[_0x97b6('0x17')]('User,\x20%s,\x20%s',_0x422931,_0x21d799[_0x97b6('0x17')][_0x97b6('0x19')]);return _0x428fb2(_0x21d799[_0x97b6('0x17')]['message']);}logger[_0x97b6('0x17')](_0x97b6('0x1a'),_0x422931,_0x21d799[_0x97b6('0x17')][_0x97b6('0x19')]);return _0x1864a5(_0x21d799['error'][_0x97b6('0x19')]);}else{logger['info'](_0x97b6('0x1a'),_0x422931,_0x97b6('0x14'));_0x1864a5(_0x21d799[_0x97b6('0x1b')][_0x97b6('0x19')]);}})[_0x97b6('0x1c')](function(_0x3cb609){logger[_0x97b6('0x17')](_0x97b6('0x1a'),_0x422931,_0x3cb609);_0x428fb2(_0x3cb609);});});}exports[_0x97b6('0x1d')]=function(_0x24b1d2){var _0x5c8a6b=this;return new Promise(function(_0x1132b6,_0x9bc55e){return db[_0x97b6('0x1e')][_0x97b6('0x1f')]({'raw':_0x24b1d2[_0x97b6('0x20')]?_0x24b1d2['options'][_0x97b6('0x21')]===undefined?!![]:![]:!![],'where':_0x24b1d2[_0x97b6('0x20')]?_0x24b1d2[_0x97b6('0x20')][_0x97b6('0x22')]||null:null,'attributes':_0x24b1d2[_0x97b6('0x20')]?_0x24b1d2[_0x97b6('0x20')]['attributes']||null:null,'limit':_0x24b1d2[_0x97b6('0x20')]?_0x24b1d2[_0x97b6('0x20')][_0x97b6('0x23')]||null:null,'include':_0x24b1d2['options']?_0x24b1d2[_0x97b6('0x20')][_0x97b6('0x24')]?_[_0x97b6('0x25')](_0x24b1d2[_0x97b6('0x20')]['include'],function(_0x302646){return{'model':db[_0x302646[_0x97b6('0x26')]],'as':_0x302646['as'],'attributes':_0x302646[_0x97b6('0x27')],'include':_0x302646[_0x97b6('0x24')]?_['map'](_0x302646[_0x97b6('0x24')],function(_0x2a11af){return{'model':db[_0x2a11af[_0x97b6('0x26')]],'as':_0x2a11af['as'],'attributes':_0x2a11af[_0x97b6('0x27')],'include':_0x2a11af['include']?_[_0x97b6('0x25')](_0x2a11af[_0x97b6('0x24')],function(_0x1e21fe){return{'model':db[_0x1e21fe[_0x97b6('0x26')]],'as':_0x1e21fe['as'],'attributes':_0x1e21fe['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x4d033e){logger[_0x97b6('0x13')](_0x97b6('0x1d'),_0x24b1d2);logger[_0x97b6('0x15')](_0x97b6('0x1d'),_0x24b1d2,JSON['stringify'](_0x4d033e));_0x1132b6(_0x4d033e);})[_0x97b6('0x1c')](function(_0xee740b){logger[_0x97b6('0x17')](_0x97b6('0x1d'),_0xee740b[_0x97b6('0x19')],_0x24b1d2);_0x9bc55e(_0x5c8a6b[_0x97b6('0x17')](0x1f4,_0xee740b[_0x97b6('0x19')]));});});};exports[_0x97b6('0x28')]=function(_0xe28f72){var _0x37a3a0=this;return new Promise(function(_0x489e28,_0x598270){return db['User'][_0x97b6('0x29')]({'raw':_0xe28f72[_0x97b6('0x20')]?_0xe28f72[_0x97b6('0x20')][_0x97b6('0x21')]===undefined?!![]:![]:!![],'where':_0xe28f72[_0x97b6('0x20')]?_0xe28f72[_0x97b6('0x20')][_0x97b6('0x22')]||null:null,'attributes':_0xe28f72[_0x97b6('0x20')]?_0xe28f72[_0x97b6('0x20')][_0x97b6('0x27')]||null:null,'include':_0xe28f72[_0x97b6('0x20')]?_0xe28f72[_0x97b6('0x20')][_0x97b6('0x24')]?_[_0x97b6('0x25')](_0xe28f72[_0x97b6('0x20')]['include'],function(_0x2e1a6b){return{'model':db[_0x2e1a6b[_0x97b6('0x26')]],'as':_0x2e1a6b['as'],'attributes':_0x2e1a6b[_0x97b6('0x27')],'include':_0x2e1a6b[_0x97b6('0x24')]?_[_0x97b6('0x25')](_0x2e1a6b['include'],function(_0x595105){return{'model':db[_0x595105[_0x97b6('0x26')]],'as':_0x595105['as'],'attributes':_0x595105[_0x97b6('0x27')],'include':_0x595105[_0x97b6('0x24')]?_[_0x97b6('0x25')](_0x595105[_0x97b6('0x24')],function(_0x257190){return{'model':db[_0x257190[_0x97b6('0x26')]],'as':_0x257190['as'],'attributes':_0x257190[_0x97b6('0x27')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x381868){logger[_0x97b6('0x13')](_0x97b6('0x28'),_0xe28f72);logger[_0x97b6('0x15')](_0x97b6('0x28'),_0xe28f72,JSON[_0x97b6('0x2a')](_0x381868));_0x489e28(_0x381868);})['catch'](function(_0x47cc89){logger['error']('ShowUser',_0x47cc89[_0x97b6('0x19')],_0xe28f72);_0x598270(_0x37a3a0[_0x97b6('0x17')](0x1f4,_0x47cc89[_0x97b6('0x19')]));});});};exports[_0x97b6('0x2b')]=function(_0x56f610){var _0x3db66e=this;return new Promise(function(_0xf0b531,_0x24fb07){var _0x2e9401;return db[_0x97b6('0x1e')]['find']({'where':_0x56f610['options'][_0x97b6('0x22')]||{},'attributes':['id',_0x97b6('0x2c'),_0x97b6('0x2d'),_0x97b6('0x2e'),_0x97b6('0x2f')]})['then'](function(_0x1a75a4){if(_0x1a75a4){_0x2e9401=_0x1a75a4;return db['UserVoiceQueueRt']['update']({'paused':0x1},{'where':{'UserId':_0x2e9401['id']},'individualHooks':!![]});}})[_0x97b6('0x12')](function(){if(_0x2e9401){return db[_0x97b6('0x30')][_0x97b6('0x1f')]({'where':{'membername':_0x2e9401[_0x97b6('0x2c')],'type':_0x97b6('0x31'),'exitAt':null}});}})['then'](function(_0x1630c8){if(_0x2e9401){if(_0x1630c8&&_0x1630c8[_0x97b6('0x32')]){var _0x5623d3=moment()[_0x97b6('0x33')](_0x97b6('0x34'));for(var _0x2765a4=0x0,_0x528ccd=_0x1630c8[_0x97b6('0x32')];_0x2765a4<_0x528ccd;_0x2765a4++){_0x1630c8[_0x2765a4]['updateAttributes']({'exitAt':_0x5623d3});}}}})[_0x97b6('0x12')](function(){if(_0x2e9401){var _0x158055=[];var _0x40243e=utils[_0x97b6('0x35')]();_0x40243e[_0x97b6('0x36')](function(_0x35ea2f){_0x158055['push']({'channel':_0x35ea2f,'membername':_0x2e9401[_0x97b6('0x2c')],'interface':_[_0x97b6('0x37')](_0x2e9401['interface'])?util[_0x97b6('0x33')](_0x97b6('0x38'),_0x2e9401[_0x97b6('0x2c')]):_0x2e9401[_0x97b6('0x2f')],'type':_0x97b6('0x31'),'enterAt':moment()[_0x97b6('0x33')](_0x97b6('0x34')),'data1':_0x56f610[_0x97b6('0x39')][_0x97b6('0x3a')]||_0x97b6('0x3b'),'role':_0x2e9401[_0x97b6('0x2d')],'internal':_0x2e9401[_0x97b6('0x2e')],'uniqueid':_0x56f610[_0x97b6('0x39')]['uniqueid']||null});});return db[_0x97b6('0x30')]['bulkCreate'](_0x158055,{'individualHooks':!![]});}})[_0x97b6('0x12')](function(){if(_0x2e9401){return _0x2e9401[_0x97b6('0x3c')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x56f610[_0x97b6('0x39')][_0x97b6('0x3a')]||_0x97b6('0x3b'),'lastPauseAt':moment()[_0x97b6('0x33')]('YYYY-MM-DD\x20HH:mm:ss')});}})[_0x97b6('0x12')](function(_0x4c9f33){_0xf0b531(_0x4c9f33);})[_0x97b6('0x1c')](function(_0x1ded43){_0x24fb07(_0x3db66e[_0x97b6('0x17')](0x1f4,_0x1ded43[_0x97b6('0x19')]));});});};exports[_0x97b6('0x3d')]=function(_0x412126){var _0x26cf31=this;return new Promise(function(_0x458b32,_0x40b844){var _0x45d918;return db[_0x97b6('0x1e')][_0x97b6('0x3e')]({'where':_0x412126['options'][_0x97b6('0x22')]||{},'attributes':['id','name']})['then'](function(_0x4d95e2){if(_0x4d95e2){_0x45d918=_0x4d95e2;if(_0x412126['body'][_0x97b6('0x3f')]&&!utils[_0x97b6('0x40')](_0x412126[_0x97b6('0x39')]['channel'])){throw new Error(_0x97b6('0x41'));}switch(_0x412126[_0x97b6('0x39')][_0x97b6('0x3f')]){case _0x97b6('0x42'):return db[_0x97b6('0x43')][_0x97b6('0x3c')]({'paused':0x0},{'where':{'UserId':_0x45d918['id']}})[_0x97b6('0x12')](function(){return db[_0x97b6('0x30')][_0x97b6('0x29')]({'where':{'channel':_0x412126[_0x97b6('0x39')]['channel'],'membername':_0x45d918[_0x97b6('0x2c')],'type':_0x97b6('0x31'),'exitAt':null}});})['then'](function(_0x38f9b5){if(_0x38f9b5){return _0x38f9b5[_0x97b6('0x3c')]({'exitAt':moment()[_0x97b6('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x97b6('0x44')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x45d918['update']({'voicePause':![]});});case _0x97b6('0x45'):case _0x97b6('0x46'):case _0x97b6('0x47'):case'sms':case _0x97b6('0x48'):case'whatsapp':return db[_0x97b6('0x30')][_0x97b6('0x29')]({'where':{'channel':_0x412126[_0x97b6('0x39')]['channel'],'membername':_0x45d918['name'],'type':'PAUSE','exitAt':null}})[_0x97b6('0x12')](function(_0x465903){return _0x465903[_0x97b6('0x3c')]({'exitAt':moment()[_0x97b6('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x97b6('0x44')},{'individualHooks':!![]});})[_0x97b6('0x12')](function(){var _0x27dc8f={};_[_0x97b6('0x49')](_0x27dc8f,util[_0x97b6('0x33')](_0x97b6('0x4a'),_0x412126[_0x97b6('0x39')][_0x97b6('0x3f')],_0x97b6('0x4b')),![]);return _0x45d918[_0x97b6('0x3c')](_0x27dc8f);});default:return db[_0x97b6('0x43')][_0x97b6('0x3c')]({'paused':0x0},{'where':{'UserId':_0x45d918['id']}})[_0x97b6('0x12')](function(){return db[_0x97b6('0x30')]['findAll']({'where':{'membername':_0x45d918[_0x97b6('0x2c')],'type':_0x97b6('0x31'),'exitAt':null}});})['then'](function(_0x2157a0){var _0xaa3d7f=[];_0x2157a0['forEach'](function(_0x17ce4c){_0xaa3d7f[_0x97b6('0x4c')](_0x17ce4c[_0x97b6('0x3c')]({'exitAt':moment()[_0x97b6('0x33')](_0x97b6('0x34')),'data2':_0x97b6('0x44')}));});return BPromise[_0x97b6('0x4d')](_0xaa3d7f);})[_0x97b6('0x12')](function(){return _0x45d918[_0x97b6('0x3c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x97b6('0x12')](function(_0x1538a5){_0x458b32(_0x1538a5);})['catch'](function(_0x469f33){_0x40b844(_0x26cf31[_0x97b6('0x17')](0x1f4,_0x469f33[_0x97b6('0x19')]));});});};exports[_0x97b6('0x4e')]=function(_0x3b42da){var _0x3e7d70=this;return new Promise(function(_0x549d48,_0x55910e){var _0x502887;return db[_0x97b6('0x1e')]['findOne']({'where':_0x3b42da[_0x97b6('0x20')][_0x97b6('0x22')]||{},'attributes':['id',_0x97b6('0x2c')]})['then'](function(_0x5e5545){if(_0x5e5545){_0x502887=_0x5e5545;return db[_0x97b6('0x43')][_0x97b6('0x4f')]({'where':{'membername':_0x502887[_0x97b6('0x2c')]},'individualHooks':!![]});}})[_0x97b6('0x12')](function(){if(_0x502887){return db[_0x97b6('0x30')][_0x97b6('0x1f')]({'where':{'membername':_0x502887['name'],'exitAt':null}});}})[_0x97b6('0x12')](function(_0x1b8607){if(_0x502887){if(_0x1b8607&&_0x1b8607[_0x97b6('0x32')]){var _0x51e2a3=[];_0x1b8607[_0x97b6('0x36')](function(_0x57cc99){_0x51e2a3[_0x97b6('0x4c')](_0x57cc99['update']({'exitAt':moment()[_0x97b6('0x33')](_0x97b6('0x34'))}));});return BPromise[_0x97b6('0x4d')](_0x51e2a3);}}})[_0x97b6('0x12')](function(){if(_0x502887){return _0x502887['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x97b6('0x12')](function(_0x1b7834){_0x549d48(_0x1b7834);})[_0x97b6('0x1c')](function(_0x563fe4){_0x55910e(_0x3e7d70['error'](0x1f4,_0x563fe4[_0x97b6('0x19')]));});});};exports[_0x97b6('0x50')]=function(_0x2a9aa4){var _0x352f35=this;return new Promise(function(_0x39452e,_0x5b17f8){var _0x2baf69;var _0x3b9309;var _0x2878e9;var _0x4ce876;return db[_0x97b6('0x1e')][_0x97b6('0x3e')]({'where':_0x2a9aa4[_0x97b6('0x20')]['where']||{},'attributes':['id',_0x97b6('0x2c'),_0x97b6('0x2d'),_0x97b6('0x51'),_0x97b6('0x52'),_0x97b6('0x2e'),_0x97b6('0x53'),_0x97b6('0x2f')]})[_0x97b6('0x12')](function(_0x2033f5){if(_0x2033f5){_0x2baf69=_0x2033f5;_0x4ce876=_0x2a9aa4[_0x97b6('0x39')]['interface']?_0x2a9aa4[_0x97b6('0x39')][_0x97b6('0x2f')]:util[_0x97b6('0x33')]('SIP/%s',_0x2baf69[_0x97b6('0x2c')]);return db[_0x97b6('0x1e')][_0x97b6('0x54')]({'where':{'role':_0x97b6('0x55'),'online':!![],'id':{'$ne':_0x2baf69['id']}}});}})['then'](function(_0x401e4c){if(_0x401e4c){_0x2878e9=_0x401e4c;return require(_0x97b6('0x56'))[_0x97b6('0x57')]();}})[_0x97b6('0x12')](function(_0x9516f4){if(_0x9516f4&&_0x9516f4[_0x97b6('0x58')]&&_0x2878e9>=_0x9516f4['agents']){throw new Error(_0x97b6('0x59'));}})['then'](function(){if(_0x2baf69){return db[_0x97b6('0x43')][_0x97b6('0x4f')]({'where':{'membername':_0x2baf69[_0x97b6('0x2c')]},'individualHooks':!![]});}})[_0x97b6('0x12')](function(){if(_0x2baf69){return _0x2baf69['getVoiceQueues']({'raw':!![]});}})['then'](function(_0x251e79){if(_0x2baf69){if(_0x251e79){var _0x5b9fd3=[];_0x3b9309=_0x251e79;if(_0x3b9309[_0x97b6('0x32')]){for(var _0x58a36e=0x0;_0x58a36e<_0x3b9309[_0x97b6('0x32')];_0x58a36e++){_0x5b9fd3[_0x97b6('0x4c')](db[_0x97b6('0x43')][_0x97b6('0x5a')]({'membername':_0x2baf69['name'],'UserId':_0x2baf69['id'],'queue_name':_0x3b9309[_0x58a36e][_0x97b6('0x2c')],'VoiceQueueId':_0x3b9309[_0x58a36e]['id'],'interface':_0x4ce876,'paused':_0x2baf69[_0x97b6('0x53')]||![],'penalty':_0x3b9309[_0x58a36e][_0x97b6('0x5b')]||0x0}));}return BPromise[_0x97b6('0x4d')](_0x5b9fd3);}}}})[_0x97b6('0x12')](function(){if(_0x2baf69){return db[_0x97b6('0x30')][_0x97b6('0x1f')]({'where':{'membername':_0x2baf69[_0x97b6('0x2c')],'exitAt':null}});}})['then'](function(_0x43066e){if(_0x2baf69){if(_0x43066e&&_0x43066e['length']){var _0xd67fcc=[];_0x43066e[_0x97b6('0x36')](function(_0x134722){_0xd67fcc['push'](_0x134722['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x97b6('0x4d')](_0xd67fcc);}}})['then'](function(_0x3fffe6){if(_0x2baf69){var _0x1dbb5d=[];var _0x185ddc=[];var _0x41d180=utils[_0x97b6('0x35')]();var _0x2f0892={'membername':_0x2baf69['name'],'interface':_0x4ce876,'enterAt':moment()[_0x97b6('0x33')](_0x97b6('0x34')),'role':_0x2baf69[_0x97b6('0x2d')],'internal':_0x2baf69[_0x97b6('0x2e')]};_0x41d180[_0x97b6('0x36')](function(_0x51c57e){_0x1dbb5d[_0x97b6('0x4c')](_[_0x97b6('0x5c')]({'channel':_0x51c57e,'type':'LOGIN','data1':'callysquare','data2':_0x4ce876},_0x2f0892));if(_0x2baf69[_0x97b6('0x53')]){_0x185ddc[_0x97b6('0x4c')](_[_0x97b6('0x5c')]({'channel':_0x51c57e,'type':'PAUSE','data1':_0x97b6('0x5d')},_0x2f0892));}});return db['MemberReport'][_0x97b6('0x5e')](_0x1dbb5d[_0x97b6('0x5f')](_0x185ddc),{'individualHooks':!![]});}})[_0x97b6('0x12')](function(){if(_0x2baf69){return _0x2baf69['update']({'online':!![],'lastLoginAt':moment()[_0x97b6('0x33')](_0x97b6('0x34')),'voicePause':_0x2baf69['loginInPause']||![],'mailPause':_0x2baf69[_0x97b6('0x53')]||![],'chatPause':_0x2baf69['loginInPause']||![],'faxPause':_0x2baf69[_0x97b6('0x53')]||![],'smsPause':_0x2baf69['loginInPause']||![],'openchannelPause':_0x2baf69[_0x97b6('0x53')]||![],'pauseType':_0x2baf69[_0x97b6('0x53')]?_0x97b6('0x5d'):null,'lastPauseAt':moment()['format'](_0x97b6('0x34')),'interface':_0x4ce876});}})[_0x97b6('0x12')](function(_0x54c039){_0x39452e(_0x54c039);})[_0x97b6('0x1c')](function(_0x3b9d79){_0x5b17f8(_0x352f35[_0x97b6('0x17')](0x1f4,_0x3b9d79[_0x97b6('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa276=['update','emit','removeListener','length','user:','./user.events','save','remove'];(function(_0x4050e6,_0x283dc5){var _0x17099f=function(_0x1ca577){while(--_0x1ca577){_0x4050e6['push'](_0x4050e6['shift']());}};_0x17099f(++_0x283dc5);}(_0xa276,0xd5));var _0x6a27=function(_0x8cb8d,_0x114804){_0x8cb8d=_0x8cb8d-0x0;var _0x432282=_0xa276[_0x8cb8d];return _0x432282;};'use strict';var UserEvents=require(_0x6a27('0x0'));var events=[_0x6a27('0x1'),_0x6a27('0x2'),_0x6a27('0x3')];function createListener(_0x56410d,_0xe0f966){return function(_0xcc39d6){_0xe0f966[_0x6a27('0x4')](_0x56410d,_0xcc39d6);};}function removeListener(_0x2f2b9f,_0x26ecbc){return function(){UserEvents[_0x6a27('0x5')](_0x2f2b9f,_0x26ecbc);};}exports['register']=function(_0x54faaa){for(var _0x340965=0x0,_0x9aefa0=events[_0x6a27('0x6')];_0x340965<_0x9aefa0;_0x340965++){var _0x2e62ff=events[_0x340965];var _0x2c1ca7=createListener(_0x6a27('0x7')+_0x2e62ff,_0x54faaa);UserEvents['on'](_0x2e62ff,_0x2c1ca7);}};
\ No newline at end of file
+var _0x4616=['./user.events','save','update','removeListener','register','length','user:'];(function(_0xe1b2a8,_0x38f786){var _0x554804=function(_0x412030){while(--_0x412030){_0xe1b2a8['push'](_0xe1b2a8['shift']());}};_0x554804(++_0x38f786);}(_0x4616,0xd9));var _0x6461=function(_0x16b00d,_0x530d31){_0x16b00d=_0x16b00d-0x0;var _0x2fd052=_0x4616[_0x16b00d];return _0x2fd052;};'use strict';var UserEvents=require(_0x6461('0x0'));var events=[_0x6461('0x1'),'remove',_0x6461('0x2')];function createListener(_0x3328ac,_0x38eb52){return function(_0x1ae6dc){_0x38eb52['emit'](_0x3328ac,_0x1ae6dc);};}function removeListener(_0x38b123,_0x3f666){return function(){UserEvents[_0x6461('0x3')](_0x38b123,_0x3f666);};}exports[_0x6461('0x4')]=function(_0x5db152){for(var _0x4944b1=0x0,_0x37c616=events[_0x6461('0x5')];_0x4944b1<_0x37c616;_0x4944b1++){var _0x5cea5f=events[_0x4944b1];var _0x460291=createListener(_0x6461('0x6')+_0x5cea5f,_0x5db152);UserEvents['on'](_0x5cea5f,_0x460291);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x21c339,_0x3fd949){var _0xe136b7=function(_0x59e177){while(--_0x59e177){_0x21c339['push'](_0x21c339['shift']());}};_0xe136b7(++_0x3fd949);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
+var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0xa388a2,_0x40bde6){var _0x7ce7f6=function(_0x5a242a){while(--_0x5a242a){_0xa388a2['push'](_0xa388a2['shift']());}};_0x7ce7f6(++_0x40bde6);}(_0xa9e0,0x123));var _0x0a9e=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0xa9e0[_0x134c2e];return _0x2825db;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-'use strict';var Sequelize=require('sequelize');module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x9891=['INTEGER'];(function(_0x3ed9ed,_0x5841b0){var _0x4e9106=function(_0x20949b){while(--_0x20949b){_0x3ed9ed['push'](_0x3ed9ed['shift']());}};_0x4e9106(++_0x5841b0);}(_0x9891,0x1ee));var _0x1989=function(_0x44b3bd,_0x44c97d){_0x44b3bd=_0x44b3bd-0x0;var _0x1efc4a=_0x9891[_0x44b3bd];return _0x1efc4a;};'use strict';var Sequelize=require('sequelize');module['exports']={'penalty':{'type':Sequelize[_0x1989('0x0')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x107a=['request-promise','path','rimraf','../../config/environment','./userChatQueue.attributes','exports','define','UserChatQueue','api','moment','bluebird'];(function(_0x57873c,_0x1d9fe0){var _0x54b2e9=function(_0x308528){while(--_0x308528){_0x57873c['push'](_0x57873c['shift']());}};_0x54b2e9(++_0x1d9fe0);}(_0x107a,0x1cb));var _0xa107=function(_0x406379,_0xc64564){_0x406379=_0x406379-0x0;var _0xa2dde7=_0x107a[_0x406379];return _0xa2dde7;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0xa107('0x0'));var moment=require(_0xa107('0x1'));var BPromise=require(_0xa107('0x2'));var rp=require(_0xa107('0x3'));var fs=require('fs');var path=require(_0xa107('0x4'));var rimraf=require(_0xa107('0x5'));var config=require(_0xa107('0x6'));var attributes=require(_0xa107('0x7'));module[_0xa107('0x8')]=function(_0x2fd235,_0x4353cd){return _0x2fd235[_0xa107('0x9')](_0xa107('0xa'),attributes,{'tableName':'user_has_chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb00c=['lodash','util','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','UserChatQueue','user_has_chat_queues'];(function(_0x599f41,_0x4db732){var _0x2e4d58=function(_0x14c882){while(--_0x14c882){_0x599f41['push'](_0x599f41['shift']());}};_0x2e4d58(++_0x4db732);}(_0xb00c,0xe4));var _0xcb00=function(_0x54d52,_0x2473ba){_0x54d52=_0x54d52-0x0;var _0x968345=_0xb00c[_0x54d52];return _0x968345;};'use strict';var _=require(_0xcb00('0x0'));var util=require(_0xcb00('0x1'));var logger=require(_0xcb00('0x2'))('api');var moment=require('moment');var BPromise=require(_0xcb00('0x3'));var rp=require(_0xcb00('0x4'));var fs=require('fs');var path=require(_0xcb00('0x5'));var rimraf=require(_0xcb00('0x6'));var config=require(_0xcb00('0x7'));var attributes=require('./userChatQueue.attributes');module[_0xcb00('0x8')]=function(_0x430cc7,_0x3c7da5){return _0x430cc7[_0xcb00('0x9')](_0xcb00('0xa'),attributes,{'tableName':_0xcb00('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfbbe=['stringify','error','code','message','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','UserChatQueue,\x20%s,\x20%s,\x20%s'];(function(_0x580454,_0x52b6ed){var _0x1fe9ed=function(_0x2e9499){while(--_0x2e9499){_0x580454['push'](_0x580454['shift']());}};_0x1fe9ed(++_0x52b6ed);}(_0xfbbe,0xa6));var _0xefbb=function(_0x4ff09b,_0x53f67d){_0x4ff09b=_0x4ff09b-0x0;var _0x3f5c2e=_0xfbbe[_0x4ff09b];return _0x3f5c2e;};'use strict';var _=require(_0xefbb('0x0'));var util=require('util');var moment=require(_0xefbb('0x1'));var BPromise=require('bluebird');var rs=require(_0xefbb('0x2'));var fs=require('fs');var Redis=require(_0xefbb('0x3'));var db=require(_0xefbb('0x4'))['db'];var utils=require(_0xefbb('0x5'));var logger=require('../../config/logger')(_0xefbb('0x6'));var config=require(_0xefbb('0x7'));var jayson=require(_0xefbb('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x416cc3,_0x568160,_0x25159a){return new BPromise(function(_0x1157a8,_0x4a37b6){return client['request'](_0x416cc3,_0x25159a)[_0xefbb('0x9')](function(_0x283860){logger[_0xefbb('0xa')](_0xefbb('0xb'),_0x568160,_0xefbb('0xc'));logger['debug'](_0xefbb('0xd'),_0x568160,'request\x20sent',JSON[_0xefbb('0xe')](_0x283860));if(_0x283860['error']){if(_0x283860[_0xefbb('0xf')][_0xefbb('0x10')]===0x1f4){logger[_0xefbb('0xf')]('UserChatQueue,\x20%s,\x20%s',_0x568160,_0x283860['error'][_0xefbb('0x11')]);return _0x4a37b6(_0x283860[_0xefbb('0xf')][_0xefbb('0x11')]);}logger[_0xefbb('0xf')](_0xefbb('0xb'),_0x568160,_0x283860[_0xefbb('0xf')]['message']);return _0x1157a8(_0x283860[_0xefbb('0xf')][_0xefbb('0x11')]);}else{logger[_0xefbb('0xa')](_0xefbb('0xb'),_0x568160,_0xefbb('0xc'));_0x1157a8(_0x283860[_0xefbb('0x12')]['message']);}})[_0xefbb('0x13')](function(_0x55c41b){logger[_0xefbb('0xf')]('UserChatQueue,\x20%s,\x20%s',_0x568160,_0x55c41b);_0x4a37b6(_0x55c41b);});});}
\ No newline at end of file
+var _0xe7bf=['client','request','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','UserChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x4629ed,_0x59ef85){var _0x52ca04=function(_0x59dc63){while(--_0x59dc63){_0x4629ed['push'](_0x4629ed['shift']());}};_0x52ca04(++_0x59ef85);}(_0xe7bf,0x85));var _0xfe7b=function(_0x428319,_0x4e3729){_0x428319=_0x428319-0x0;var _0x836f81=_0xe7bf[_0x428319];return _0x836f81;};'use strict';var _=require(_0xfe7b('0x0'));var util=require(_0xfe7b('0x1'));var moment=require(_0xfe7b('0x2'));var BPromise=require(_0xfe7b('0x3'));var rs=require(_0xfe7b('0x4'));var fs=require('fs');var Redis=require(_0xfe7b('0x5'));var db=require(_0xfe7b('0x6'))['db'];var utils=require(_0xfe7b('0x7'));var logger=require(_0xfe7b('0x8'))(_0xfe7b('0x9'));var config=require(_0xfe7b('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xfe7b('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0xd28d10,_0x4e9079,_0xc1e0dd){return new BPromise(function(_0x27310b,_0x59305c){return client[_0xfe7b('0xc')](_0xd28d10,_0xc1e0dd)[_0xfe7b('0xd')](function(_0xe55cfa){logger[_0xfe7b('0xe')](_0xfe7b('0xf'),_0x4e9079,_0xfe7b('0x10'));logger['debug'](_0xfe7b('0x11'),_0x4e9079,_0xfe7b('0x10'),JSON[_0xfe7b('0x12')](_0xe55cfa));if(_0xe55cfa[_0xfe7b('0x13')]){if(_0xe55cfa['error'][_0xfe7b('0x14')]===0x1f4){logger[_0xfe7b('0x13')](_0xfe7b('0xf'),_0x4e9079,_0xe55cfa[_0xfe7b('0x13')]['message']);return _0x59305c(_0xe55cfa[_0xfe7b('0x13')][_0xfe7b('0x15')]);}logger['error']('UserChatQueue,\x20%s,\x20%s',_0x4e9079,_0xe55cfa['error'][_0xfe7b('0x15')]);return _0x27310b(_0xe55cfa[_0xfe7b('0x13')][_0xfe7b('0x15')]);}else{logger[_0xfe7b('0xe')]('UserChatQueue,\x20%s,\x20%s',_0x4e9079,_0xfe7b('0x10'));_0x27310b(_0xe55cfa[_0xfe7b('0x16')]['message']);}})[_0xfe7b('0x17')](function(_0x51501f){logger[_0xfe7b('0x13')]('UserChatQueue,\x20%s,\x20%s',_0x4e9079,_0x51501f);_0x59305c(_0x51501f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x21f96a,_0x46c129){var _0x541b40=function(_0x18b53d){while(--_0x18b53d){_0x21f96a['push'](_0x21f96a['shift']());}};_0x541b40(++_0x46c129);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x5678b5,_0x1c4aa8){_0x5678b5=_0x5678b5-0x0;var _0x4c09a5=_0xcb91[_0x5678b5];return _0x4c09a5;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x29d2d2,_0x3344){var _0x3f6476=function(_0x29c2a2){while(--_0x29c2a2){_0x29d2d2['push'](_0x29d2d2['shift']());}};_0x3f6476(++_0x3344);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1180=['INTEGER','exports'];(function(_0xb12993,_0x5dc5ff){var _0x53b167=function(_0x3e5f27){while(--_0x3e5f27){_0xb12993['push'](_0xb12993['shift']());}};_0x53b167(++_0x5dc5ff);}(_0x1180,0x133));var _0x0118=function(_0x542108,_0x321e6d){_0x542108=_0x542108-0x0;var _0x5c88b9=_0x1180[_0x542108];return _0x5c88b9;};'use strict';var Sequelize=require('sequelize');module[_0x0118('0x0')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x0118('0x1')],'defaultValue':0x0},'queue':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x27b8=['exports','INTEGER','STRING'];(function(_0x10a35d,_0x1da81e){var _0x3ef6a0=function(_0x2cb5b1){while(--_0x2cb5b1){_0x10a35d['push'](_0x10a35d['shift']());}};_0x3ef6a0(++_0x1da81e);}(_0x27b8,0x66));var _0x827b=function(_0x1b4b01,_0x48df9b){_0x1b4b01=_0x1b4b01-0x0;var _0x4caaed=_0x27b8[_0x1b4b01];return _0x4caaed;};'use strict';var Sequelize=require('sequelize');module[_0x827b('0x0')]={'penalty':{'type':Sequelize[_0x827b('0x1')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x827b('0x1')],'defaultValue':0x0},'queue':{'type':Sequelize[_0x827b('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x045f=['api','moment','request-promise','path','rimraf','./userFaxQueue.attributes','define','user_has_fax_queues','util','../../config/logger'];(function(_0x53d2bd,_0x51aec9){var _0x410f4a=function(_0x31a20c){while(--_0x31a20c){_0x53d2bd['push'](_0x53d2bd['shift']());}};_0x410f4a(++_0x51aec9);}(_0x045f,0xd0));var _0xf045=function(_0x2880bb,_0x37ccf5){_0x2880bb=_0x2880bb-0x0;var _0x357881=_0x045f[_0x2880bb];return _0x357881;};'use strict';var _=require('lodash');var util=require(_0xf045('0x0'));var logger=require(_0xf045('0x1'))(_0xf045('0x2'));var moment=require(_0xf045('0x3'));var BPromise=require('bluebird');var rp=require(_0xf045('0x4'));var fs=require('fs');var path=require(_0xf045('0x5'));var rimraf=require(_0xf045('0x6'));var config=require('../../config/environment');var attributes=require(_0xf045('0x7'));module['exports']=function(_0x1c07a8,_0x21321e){return _0x1c07a8[_0xf045('0x8')]('UserFaxQueue',attributes,{'tableName':_0xf045('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf85e=['lodash','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./userFaxQueue.attributes','exports','define','user_has_fax_queues'];(function(_0x1d5ba8,_0x412a52){var _0x1022a2=function(_0x187f11){while(--_0x187f11){_0x1d5ba8['push'](_0x1d5ba8['shift']());}};_0x1022a2(++_0x412a52);}(_0xf85e,0x198));var _0xef85=function(_0x4edce3,_0x2dc278){_0x4edce3=_0x4edce3-0x0;var _0x899ee8=_0xf85e[_0x4edce3];return _0x899ee8;};'use strict';var _=require(_0xef85('0x0'));var util=require('util');var logger=require(_0xef85('0x1'))(_0xef85('0x2'));var moment=require(_0xef85('0x3'));var BPromise=require('bluebird');var rp=require(_0xef85('0x4'));var fs=require('fs');var path=require(_0xef85('0x5'));var rimraf=require(_0xef85('0x6'));var config=require(_0xef85('0x7'));var attributes=require(_0xef85('0x8'));module[_0xef85('0x9')]=function(_0x584931,_0x1b50ee){return _0x584931[_0xef85('0xa')]('UserFaxQueue',attributes,{'tableName':_0xef85('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21e9=['request','info','UserFaxQueue,\x20%s,\x20%s','request\x20sent','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client'];(function(_0x21fb77,_0x4d1611){var _0x9814f7=function(_0x2f9092){while(--_0x2f9092){_0x21fb77['push'](_0x21fb77['shift']());}};_0x9814f7(++_0x4d1611);}(_0x21e9,0x1a7));var _0x921e=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x21e9[_0x5b644e];return _0x49c6bf;};'use strict';var _=require(_0x921e('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x921e('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x921e('0x2'));var db=require(_0x921e('0x3'))['db'];var utils=require(_0x921e('0x4'));var logger=require(_0x921e('0x5'))(_0x921e('0x6'));var config=require(_0x921e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x921e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x134566,_0x502aca,_0x5cc26c){return new BPromise(function(_0x48757d,_0x4cb4d8){return client[_0x921e('0x9')](_0x134566,_0x5cc26c)['then'](function(_0xb8d395){logger[_0x921e('0xa')](_0x921e('0xb'),_0x502aca,_0x921e('0xc'));logger['debug'](_0x921e('0xd'),_0x502aca,_0x921e('0xc'),JSON[_0x921e('0xe')](_0xb8d395));if(_0xb8d395[_0x921e('0xf')]){if(_0xb8d395['error']['code']===0x1f4){logger['error'](_0x921e('0xb'),_0x502aca,_0xb8d395[_0x921e('0xf')][_0x921e('0x10')]);return _0x4cb4d8(_0xb8d395['error'][_0x921e('0x10')]);}logger[_0x921e('0xf')]('UserFaxQueue,\x20%s,\x20%s',_0x502aca,_0xb8d395['error'][_0x921e('0x10')]);return _0x48757d(_0xb8d395[_0x921e('0xf')][_0x921e('0x10')]);}else{logger[_0x921e('0xa')]('UserFaxQueue,\x20%s,\x20%s',_0x502aca,'request\x20sent');_0x48757d(_0xb8d395[_0x921e('0x11')][_0x921e('0x10')]);}})['catch'](function(_0x518a00){logger['error'](_0x921e('0xb'),_0x502aca,_0x518a00);_0x4cb4d8(_0x518a00);});});}
\ No newline at end of file
+var _0xbd7f=['../../config/environment','jayson/promise','client','http','then','UserFaxQueue,\x20%s,\x20%s','request\x20sent','UserFaxQueue,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','lodash','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x362437,_0x16a9ef){var _0x2d3579=function(_0x4f04a0){while(--_0x4f04a0){_0x362437['push'](_0x362437['shift']());}};_0x2d3579(++_0x16a9ef);}(_0xbd7f,0x11f));var _0xfbd7=function(_0x9bd908,_0x3f5e34){_0x9bd908=_0x9bd908-0x0;var _0x41c07e=_0xbd7f[_0x9bd908];return _0x41c07e;};'use strict';var _=require(_0xfbd7('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfbd7('0x1'));var fs=require('fs');var Redis=require(_0xfbd7('0x2'));var db=require(_0xfbd7('0x3'))['db'];var utils=require(_0xfbd7('0x4'));var logger=require(_0xfbd7('0x5'))(_0xfbd7('0x6'));var config=require(_0xfbd7('0x7'));var jayson=require(_0xfbd7('0x8'));var client=jayson[_0xfbd7('0x9')][_0xfbd7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xd93b16,_0x42aaba,_0xc0595f){return new BPromise(function(_0x509206,_0x18e9a1){return client['request'](_0xd93b16,_0xc0595f)[_0xfbd7('0xb')](function(_0x126748){logger['info'](_0xfbd7('0xc'),_0x42aaba,_0xfbd7('0xd'));logger['debug'](_0xfbd7('0xe'),_0x42aaba,'request\x20sent',JSON['stringify'](_0x126748));if(_0x126748['error']){if(_0x126748[_0xfbd7('0xf')][_0xfbd7('0x10')]===0x1f4){logger[_0xfbd7('0xf')]('UserFaxQueue,\x20%s,\x20%s',_0x42aaba,_0x126748[_0xfbd7('0xf')][_0xfbd7('0x11')]);return _0x18e9a1(_0x126748[_0xfbd7('0xf')][_0xfbd7('0x11')]);}logger[_0xfbd7('0xf')](_0xfbd7('0xc'),_0x42aaba,_0x126748[_0xfbd7('0xf')][_0xfbd7('0x11')]);return _0x509206(_0x126748[_0xfbd7('0xf')]['message']);}else{logger[_0xfbd7('0x12')](_0xfbd7('0xc'),_0x42aaba,_0xfbd7('0xd'));_0x509206(_0x126748[_0xfbd7('0x13')][_0xfbd7('0x11')]);}})[_0xfbd7('0x14')](function(_0x2b8822){logger[_0xfbd7('0xf')](_0xfbd7('0xc'),_0x42aaba,_0x2b8822);_0x18e9a1(_0x2b8822);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0xcdec84,_0x10a9ac){var _0x28f670=function(_0x4b03a5){while(--_0x4b03a5){_0xcdec84['push'](_0xcdec84['shift']());}};_0x28f670(++_0x10a9ac);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x1aed80,_0x3ca6f6){_0x1aed80=_0x1aed80-0x0;var _0x43961e=_0xcb91[_0x1aed80];return _0x43961e;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
+var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x2eedc7,_0x2f7d83){var _0x413025=function(_0x407f48){while(--_0x407f48){_0x2eedc7['push'](_0x2eedc7['shift']());}};_0x413025(++_0x2f7d83);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xa9e0[_0x2b4411];return _0x8e41ef;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc3bd=['exports','INTEGER','sequelize'];(function(_0x306ad0,_0x220d37){var _0x6f2ee2=function(_0x5b155d){while(--_0x5b155d){_0x306ad0['push'](_0x306ad0['shift']());}};_0x6f2ee2(++_0x220d37);}(_0xc3bd,0x1e2));var _0xdc3b=function(_0x400e4c,_0x298a99){_0x400e4c=_0x400e4c-0x0;var _0x56e944=_0xc3bd[_0x400e4c];return _0x56e944;};'use strict';var Sequelize=require(_0xdc3b('0x0'));module[_0xdc3b('0x1')]={'penalty':{'type':Sequelize[_0xdc3b('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x183d=['exports','INTEGER'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0x183d,0x92));var _0xd183=function(_0x9f1398,_0x2c5082){_0x9f1398=_0x9f1398-0x0;var _0x4477ce=_0x183d[_0x9f1398];return _0x4477ce;};'use strict';var Sequelize=require('sequelize');module[_0xd183('0x0')]={'penalty':{'type':Sequelize[_0xd183('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3c4=['path','../../config/environment','./userMailQueue.attributes','define','UserMailQueue','user_has_mail_queues','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x4562bb,_0x5a8f8d){var _0x110188=function(_0x48aa24){while(--_0x48aa24){_0x4562bb['push'](_0x4562bb['shift']());}};_0x110188(++_0x5a8f8d);}(_0xd3c4,0xea));var _0x4d3c=function(_0x5b5040,_0x57bf3c){_0x5b5040=_0x5b5040-0x0;var _0x56d51c=_0xd3c4[_0x5b5040];return _0x56d51c;};'use strict';var _=require(_0x4d3c('0x0'));var util=require(_0x4d3c('0x1'));var logger=require(_0x4d3c('0x2'))(_0x4d3c('0x3'));var moment=require(_0x4d3c('0x4'));var BPromise=require(_0x4d3c('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4d3c('0x6'));var rimraf=require('rimraf');var config=require(_0x4d3c('0x7'));var attributes=require(_0x4d3c('0x8'));module['exports']=function(_0xc409cf,_0x30ef12){return _0xc409cf[_0x4d3c('0x9')](_0x4d3c('0xa'),attributes,{'tableName':_0x4d3c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcc20=['api','moment','request-promise','path','rimraf','../../config/environment','./userMailQueue.attributes','exports','define','UserMailQueue','user_has_mail_queues','lodash','../../config/logger'];(function(_0x1f3d15,_0x5176a8){var _0x48617b=function(_0x5e2eb8){while(--_0x5e2eb8){_0x1f3d15['push'](_0x1f3d15['shift']());}};_0x48617b(++_0x5176a8);}(_0xcc20,0x1ec));var _0x0cc2=function(_0x22ca96,_0x417faf){_0x22ca96=_0x22ca96-0x0;var _0x1da01b=_0xcc20[_0x22ca96];return _0x1da01b;};'use strict';var _=require(_0x0cc2('0x0'));var util=require('util');var logger=require(_0x0cc2('0x1'))(_0x0cc2('0x2'));var moment=require(_0x0cc2('0x3'));var BPromise=require('bluebird');var rp=require(_0x0cc2('0x4'));var fs=require('fs');var path=require(_0x0cc2('0x5'));var rimraf=require(_0x0cc2('0x6'));var config=require(_0x0cc2('0x7'));var attributes=require(_0x0cc2('0x8'));module[_0x0cc2('0x9')]=function(_0x292774,_0x407913){return _0x292774[_0x0cc2('0xa')](_0x0cc2('0xb'),attributes,{'tableName':_0x0cc2('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa41a=['rpc','../../config/environment','client','http','request','then','info','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x13c59b,_0x1b99ca){var _0x12fb85=function(_0x1f3a32){while(--_0x1f3a32){_0x13c59b['push'](_0x13c59b['shift']());}};_0x12fb85(++_0x1b99ca);}(_0xa41a,0x6b));var _0xaa41=function(_0x268ba7,_0x26c6a2){_0x268ba7=_0x268ba7-0x0;var _0x25524f=_0xa41a[_0x268ba7];return _0x25524f;};'use strict';var _=require(_0xaa41('0x0'));var util=require(_0xaa41('0x1'));var moment=require('moment');var BPromise=require(_0xaa41('0x2'));var rs=require(_0xaa41('0x3'));var fs=require('fs');var Redis=require(_0xaa41('0x4'));var db=require(_0xaa41('0x5'))['db'];var utils=require(_0xaa41('0x6'));var logger=require(_0xaa41('0x7'))(_0xaa41('0x8'));var config=require(_0xaa41('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xaa41('0xa')][_0xaa41('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x54bc5a,_0x5b1fff,_0x179545){return new BPromise(function(_0x202cce,_0x588ab4){return client[_0xaa41('0xc')](_0x54bc5a,_0x179545)[_0xaa41('0xd')](function(_0x409dab){logger[_0xaa41('0xe')](_0xaa41('0xf'),_0x5b1fff,_0xaa41('0x10'));logger[_0xaa41('0x11')](_0xaa41('0x12'),_0x5b1fff,_0xaa41('0x10'),JSON['stringify'](_0x409dab));if(_0x409dab[_0xaa41('0x13')]){if(_0x409dab[_0xaa41('0x13')]['code']===0x1f4){logger['error'](_0xaa41('0xf'),_0x5b1fff,_0x409dab['error'][_0xaa41('0x14')]);return _0x588ab4(_0x409dab[_0xaa41('0x13')][_0xaa41('0x14')]);}logger[_0xaa41('0x13')](_0xaa41('0xf'),_0x5b1fff,_0x409dab['error'][_0xaa41('0x14')]);return _0x202cce(_0x409dab[_0xaa41('0x13')][_0xaa41('0x14')]);}else{logger[_0xaa41('0xe')](_0xaa41('0xf'),_0x5b1fff,_0xaa41('0x10'));_0x202cce(_0x409dab[_0xaa41('0x15')]['message']);}})[_0xaa41('0x16')](function(_0x16b930){logger[_0xaa41('0x13')](_0xaa41('0xf'),_0x5b1fff,_0x16b930);_0x588ab4(_0x16b930);});});}
\ No newline at end of file
+var _0x1cb9=['error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x31e29a,_0x349c9b){var _0x32d892=function(_0x41cc86){while(--_0x41cc86){_0x31e29a['push'](_0x31e29a['shift']());}};_0x32d892(++_0x349c9b);}(_0x1cb9,0x14e));var _0x91cb=function(_0x2966cc,_0x5ebc46){_0x2966cc=_0x2966cc-0x0;var _0x45c33f=_0x1cb9[_0x2966cc];return _0x45c33f;};'use strict';var _=require(_0x91cb('0x0'));var util=require('util');var moment=require(_0x91cb('0x1'));var BPromise=require(_0x91cb('0x2'));var rs=require(_0x91cb('0x3'));var fs=require('fs');var Redis=require(_0x91cb('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x91cb('0x5'));var logger=require(_0x91cb('0x6'))('rpc');var config=require(_0x91cb('0x7'));var jayson=require(_0x91cb('0x8'));var client=jayson[_0x91cb('0x9')][_0x91cb('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3b9d98,_0x8f8a3b,_0x4c1f56){return new BPromise(function(_0x15c517,_0x5bda2f){return client[_0x91cb('0xb')](_0x3b9d98,_0x4c1f56)['then'](function(_0xa43e7a){logger[_0x91cb('0xc')](_0x91cb('0xd'),_0x8f8a3b,_0x91cb('0xe'));logger[_0x91cb('0xf')](_0x91cb('0x10'),_0x8f8a3b,_0x91cb('0xe'),JSON[_0x91cb('0x11')](_0xa43e7a));if(_0xa43e7a[_0x91cb('0x12')]){if(_0xa43e7a[_0x91cb('0x12')]['code']===0x1f4){logger[_0x91cb('0x12')](_0x91cb('0xd'),_0x8f8a3b,_0xa43e7a['error'][_0x91cb('0x13')]);return _0x5bda2f(_0xa43e7a[_0x91cb('0x12')][_0x91cb('0x13')]);}logger[_0x91cb('0x12')]('UserMailQueue,\x20%s,\x20%s',_0x8f8a3b,_0xa43e7a['error'][_0x91cb('0x13')]);return _0x15c517(_0xa43e7a[_0x91cb('0x12')]['message']);}else{logger['info'](_0x91cb('0xd'),_0x8f8a3b,_0x91cb('0xe'));_0x15c517(_0xa43e7a[_0x91cb('0x14')]['message']);}})[_0x91cb('0x15')](function(_0x135890){logger['error'](_0x91cb('0xd'),_0x8f8a3b,_0x135890);_0x5bda2f(_0x135890);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe28c=['exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./userNotification.controller','isAuthenticated','sendUserNotification'];(function(_0x1f50a2,_0x387c1a){var _0x33a8c0=function(_0x17d201){while(--_0x17d201){_0x1f50a2['push'](_0x1f50a2['shift']());}};_0x33a8c0(++_0x387c1a);}(_0xe28c,0x115));var _0xce28=function(_0x3ba938,_0x27414d){_0x3ba938=_0x3ba938-0x0;var _0x2aabff=_0xe28c[_0x3ba938];return _0x2aabff;};'use strict';var multer=require(_0xce28('0x0'));var util=require('util');var path=require(_0xce28('0x1'));var timeout=require(_0xce28('0x2'));var express=require(_0xce28('0x3'));var router=express[_0xce28('0x4')]();var fs_extra=require(_0xce28('0x5'));var auth=require(_0xce28('0x6'));var interaction=require(_0xce28('0x7'));var config=require('../../config/environment');var controller=require(_0xce28('0x8'));router['post']('/',auth[_0xce28('0x9')](),controller[_0xce28('0xa')]);module[_0xce28('0xb')]=router;
\ No newline at end of file
+var _0x1fee=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userNotification.controller','post','isAuthenticated','sendUserNotification','exports','multer','path','connect-timeout','Router'];(function(_0x2b5eae,_0x55010d){var _0x5f3ac9=function(_0x397bfc){while(--_0x397bfc){_0x2b5eae['push'](_0x2b5eae['shift']());}};_0x5f3ac9(++_0x55010d);}(_0x1fee,0x71));var _0xe1fe=function(_0x4cf232,_0x531d2f){_0x4cf232=_0x4cf232-0x0;var _0x5d11f6=_0x1fee[_0x4cf232];return _0x5d11f6;};'use strict';var multer=require(_0xe1fe('0x0'));var util=require('util');var path=require(_0xe1fe('0x1'));var timeout=require(_0xe1fe('0x2'));var express=require('express');var router=express[_0xe1fe('0x3')]();var fs_extra=require(_0xe1fe('0x4'));var auth=require(_0xe1fe('0x5'));var interaction=require(_0xe1fe('0x6'));var config=require(_0xe1fe('0x7'));var controller=require(_0xe1fe('0x8'));router[_0xe1fe('0x9')]('/',auth[_0xe1fe('0xa')](),controller[_0xe1fe('0xb')]);module[_0xe1fe('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa64c=['STRING','sequelize','exports','TEXT'];(function(_0x2beca1,_0x10a40c){var _0x3ad206=function(_0x57469e){while(--_0x57469e){_0x2beca1['push'](_0x2beca1['shift']());}};_0x3ad206(++_0x10a40c);}(_0xa64c,0x1a5));var _0xca64=function(_0x3d9e16,_0x4372d0){_0x3d9e16=_0x3d9e16-0x0;var _0x367bab=_0xa64c[_0x3d9e16];return _0x367bab;};'use strict';var Sequelize=require(_0xca64('0x0'));module[_0xca64('0x1')]={'body':{'type':Sequelize[_0xca64('0x2')]},'senderName':{'type':Sequelize[_0xca64('0x3')]},'recipientsId':{'type':Sequelize[_0xca64('0x2')]},'recipientsDescription':{'type':Sequelize[_0xca64('0x3')]},'beep':{'type':Sequelize['BOOLEAN']}};
\ No newline at end of file
+var _0x6e9b=['exports','TEXT','STRING','BOOLEAN'];(function(_0x1678c8,_0x1c32f4){var _0x387aa9=function(_0x2803bd){while(--_0x2803bd){_0x1678c8['push'](_0x1678c8['shift']());}};_0x387aa9(++_0x1c32f4);}(_0x6e9b,0x6c));var _0xb6e9=function(_0x5108fb,_0x53b8d2){_0x5108fb=_0x5108fb-0x0;var _0x35fee7=_0x6e9b[_0x5108fb];return _0x35fee7;};'use strict';var Sequelize=require('sequelize');module[_0xb6e9('0x0')]={'body':{'type':Sequelize[_0xb6e9('0x1')]},'senderName':{'type':Sequelize[_0xb6e9('0x2')]},'recipientsId':{'type':Sequelize['TEXT']},'recipientsDescription':{'type':Sequelize[_0xb6e9('0x2')]},'beep':{'type':Sequelize[_0xb6e9('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbba6=['fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','name','send','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','whatsappqueue','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','recipientsDescription','isEmpty','beep','recipientsId','sortBy','sequelize','transaction','UserNotification','forEach','userNotification:send','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','startCase','ids','includes','queue','replace','Queue','push','union','flatten','getAgents','map','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv'];(function(_0x33cb5f,_0x333504){var _0x39502a=function(_0x198a7e){while(--_0x198a7e){_0x33cb5f['push'](_0x33cb5f['shift']());}};_0x39502a(++_0x333504);}(_0xbba6,0xb6));var _0x6bba=function(_0x4e6b7d,_0x2420ea){_0x4e6b7d=_0x4e6b7d-0x0;var _0x59db61=_0xbba6[_0x4e6b7d];return _0x59db61;};'use strict';var emlformat=require(_0x6bba('0x0'));var rimraf=require(_0x6bba('0x1'));var zipdir=require(_0x6bba('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6bba('0x3'));var moment=require(_0x6bba('0x4'));var BPromise=require(_0x6bba('0x5'));var Mustache=require('mustache');var util=require(_0x6bba('0x6'));var path=require(_0x6bba('0x7'));var sox=require(_0x6bba('0x8'));var csv=require(_0x6bba('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6bba('0xa'));var _=require(_0x6bba('0xb'));var squel=require('squel');var crypto=require(_0x6bba('0xc'));var jsforce=require(_0x6bba('0xd'));var deskjs=require(_0x6bba('0xe'));var toCsv=require(_0x6bba('0x9'));var querystring=require(_0x6bba('0xf'));var Papa=require(_0x6bba('0x10'));var Redis=require(_0x6bba('0x11'));var authService=require(_0x6bba('0x12'));var qs=require(_0x6bba('0x13'));var as=require(_0x6bba('0x14'));var hardwareService=require(_0x6bba('0x15'));var logger=require('../../config/logger')(_0x6bba('0x16'));var utils=require(_0x6bba('0x17'));var config=require(_0x6bba('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x6bba('0x19'))['db'];config[_0x6bba('0x1a')]=_[_0x6bba('0x1b')](config[_0x6bba('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x6bba('0x1c'))(new Redis(config[_0x6bba('0x1a')]));require(_0x6bba('0x1d'))[_0x6bba('0x1e')](socket);function respondWithStatusCode(_0x27fca1,_0x58bb7f){_0x58bb7f=_0x58bb7f||0xcc;return function(_0x50f84b){if(_0x50f84b){return _0x27fca1[_0x6bba('0x1f')](_0x58bb7f);}return _0x27fca1[_0x6bba('0x20')](_0x58bb7f)[_0x6bba('0x21')]();};}function respondWithResult(_0x79a5b7,_0x4068b8){_0x4068b8=_0x4068b8||0xc8;return function(_0x5c4b1d){if(_0x5c4b1d){return _0x79a5b7['status'](_0x4068b8)[_0x6bba('0x22')](_0x5c4b1d);}};}function respondWithFilteredResult(_0x309e6c,_0x118e5c){return function(_0x5326dd){if(_0x5326dd){var _0x4fae84=typeof _0x118e5c[_0x6bba('0x23')]===_0x6bba('0x24')&&typeof _0x118e5c['limit']===_0x6bba('0x24');var _0x113742=_0x5326dd[_0x6bba('0x25')];var _0x2171fd=_0x4fae84?0x0:_0x118e5c[_0x6bba('0x23')];var _0x4458d8=_0x4fae84?_0x5326dd[_0x6bba('0x25')]:_0x118e5c[_0x6bba('0x23')]+_0x118e5c[_0x6bba('0x26')];var _0xcfecf7;if(_0x4458d8>=_0x113742){_0x4458d8=_0x113742;_0xcfecf7=0xc8;}else{_0xcfecf7=0xce;}_0x309e6c['status'](_0xcfecf7);return _0x309e6c[_0x6bba('0x27')](_0x6bba('0x28'),_0x2171fd+'-'+_0x4458d8+'/'+_0x113742)[_0x6bba('0x22')](_0x5326dd);}return null;};}function patchUpdates(_0x1ad9fd){return function(_0x4b1d5d){try{jsonpatch[_0x6bba('0x29')](_0x4b1d5d,_0x1ad9fd,!![]);}catch(_0x50baf8){return BPromise[_0x6bba('0x2a')](_0x50baf8);}return _0x4b1d5d[_0x6bba('0x2b')]();};}function saveUpdates(_0x145dec,_0x3ee07f){return function(_0x3f456e){if(_0x3f456e){return _0x3f456e[_0x6bba('0x2c')](_0x145dec)['then'](function(_0x108baa){return _0x108baa;});}return null;};}function removeEntity(_0x11d53f,_0x1b5fc0){return function(_0x318af6){if(_0x318af6){return _0x318af6[_0x6bba('0x2d')]()[_0x6bba('0x2e')](function(){_0x11d53f['status'](0xcc)[_0x6bba('0x21')]();});}};}function handleEntityNotFound(_0x28f4d6,_0x3b3a49){return function(_0x464d8a){if(!_0x464d8a){_0x28f4d6[_0x6bba('0x1f')](0x194);}return _0x464d8a;};}function handleError(_0x1198af,_0x3fc82f){_0x3fc82f=_0x3fc82f||0x1f4;return function(_0x289748){logger[_0x6bba('0x2f')](_0x289748['stack']);if(_0x289748[_0x6bba('0x30')]){delete _0x289748[_0x6bba('0x30')];}_0x1198af[_0x6bba('0x20')](_0x3fc82f)[_0x6bba('0x31')](_0x289748);};}exports['sendUserNotification']=function(_0x3bdd7b,_0x3e6484,_0x2060ab){if(!_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')](_0x6bba('0x34'))&&!_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')](_0x6bba('0x35'))){throw new db[(_0x6bba('0x36'))][(_0x6bba('0x37'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')]('TemplateId')&&!_0x3bdd7b['body'][_0x6bba('0x33')](_0x6bba('0x38'))){throw new db[(_0x6bba('0x36'))][(_0x6bba('0x37'))](_0x6bba('0x39'));}if(!_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')]('recipients')){throw new db['Sequelize'][(_0x6bba('0x37'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x3ccbc4=JSON[_0x6bba('0x3a')](_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x3b')]);}catch(_0x30fa51){logger[_0x6bba('0x2f')](_0x30fa51);throw new db['Sequelize'][(_0x6bba('0x37'))](_0x6bba('0x3c'));}var _0x5f033e=[_0x6bba('0x3d'),_0x6bba('0x3e'),_0x6bba('0x3f'),_0x6bba('0x40'),_0x6bba('0x41'),'voicequeue',_0x6bba('0x42'),'team','user'];if(_['some'](_0x3ccbc4,function(_0x265a1d){return!_['includes'](_0x5f033e,_0x265a1d[_0x6bba('0x43')][_0x6bba('0x44')]());})){throw new db[(_0x6bba('0x36'))][(_0x6bba('0x37'))](_0x6bba('0x45'));}}}var _0x1cbd15={};_0x1cbd15[_0x6bba('0x46')]=_0x3bdd7b[_0x6bba('0x32')]['hasOwnProperty'](_0x6bba('0x46'))?_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x46')]:_0x3bdd7b[_0x6bba('0x47')]['fullname'];_0x1cbd15[_0x6bba('0x48')]=_[_0x6bba('0x49')](_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x48')])?null:_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x48')];_0x1cbd15[_0x6bba('0x4a')]=_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x4a')]||![];_0x1cbd15['SenderId']=_0x3bdd7b[_0x6bba('0x47')]['id'];return getContent(_0x3bdd7b[_0x6bba('0x32')])[_0x6bba('0x2e')](function(_0x425989){_0x1cbd15[_0x6bba('0x32')]=_0x425989;return getRecipients(_0x3ccbc4);})[_0x6bba('0x2e')](function(_0x126692){_0x1cbd15[_0x6bba('0x4b')]=_[_0x6bba('0x4c')](_0x126692)['join'](',');return db[_0x6bba('0x4d')][_0x6bba('0x4e')](function(_0x2423f1){return db[_0x6bba('0x4f')]['create'](_0x1cbd15,{'raw':!![],'transaction':_0x2423f1})['then'](function(_0x432a7a){var _0x210d16={'sender':_0x1cbd15[_0x6bba('0x46')],'description':_0x1cbd15[_0x6bba('0x48')],'content':_0x1cbd15[_0x6bba('0x32')],'beep':_0x1cbd15[_0x6bba('0x4a')]};_0x126692[_0x6bba('0x50')](function(_0x50a916){_0x210d16['recipient']=_0x50a916;socket['emit'](_0x6bba('0x51'),_0x210d16);});return _0x432a7a;});});})['then'](respondWithResult(_0x3e6484,0xc9))['catch'](handleError(_0x3e6484,null));};function getContent(_0x220ddb){return new BPromise(function(_0xfa1950,_0x55368e){if(_0x220ddb[_0x6bba('0x34')]){_0xfa1950(_0x220ddb[_0x6bba('0x34')]);return;}return db['Template'][_0x6bba('0x52')]({'attributes':[_0x6bba('0x53')],'where':{'id':_0x220ddb[_0x6bba('0x35')]},'raw':!![]})[_0x6bba('0x2e')](function(_0x445249){if(!_0x445249)throw new db['Sequelize'][(_0x6bba('0x37'))](_0x6bba('0x54'));var _0x3e8697=Mustache['render'](_0x445249[_0x6bba('0x53')],_0x220ddb[_0x6bba('0x38')]);_0xfa1950(_0x3e8697);})['catch'](function(_0x5e87c3){_0x55368e(_0x5e87c3);});});}function getRecipients(_0xe2ff7f){return new BPromise(function(_0x5b4cf5,_0x1055e3){var _0x44ccf2=[];var _0x30137f=[];_0xe2ff7f[_0x6bba('0x50')](function(_0x28a666){var _0xd2dd60=_[_0x6bba('0x55')](_0x28a666[_0x6bba('0x43')][_0x6bba('0x44')]());if(_0xd2dd60==='User'){_0x44ccf2=_['union'](_0x44ccf2,_0x28a666[_0x6bba('0x56')]);}else{if(_[_0x6bba('0x57')](_0xd2dd60,_0x6bba('0x58')))_0xd2dd60=_0xd2dd60[_0x6bba('0x59')]('queue',_0x6bba('0x5a'));_0x28a666[_0x6bba('0x56')][_0x6bba('0x50')](function(_0x2c5353){_0x30137f[_0x6bba('0x5b')](getAgents(_0xd2dd60,_0x2c5353));});}});return BPromise['all'](_0x30137f)[_0x6bba('0x2e')](function(_0xcbb81a){_0x44ccf2=_[_0x6bba('0x5c')](_0x44ccf2,_[_0x6bba('0x5d')](_0xcbb81a));_0x5b4cf5(_0x44ccf2);})['catch'](function(_0x311440){_0x1055e3(_0x311440);});});}function getAgents(_0x3fa2b0,_0x1f0dcf){return new BPromise(function(_0x2f007e,_0x140dfb){return db[_0x3fa2b0][_0x6bba('0x52')]({'where':{'id':_0x1f0dcf}})[_0x6bba('0x2e')](function(_0x241f03){return _0x241f03[_0x6bba('0x5e')]({'attributes':['id'],'raw':!![]})['then'](function(_0x26b447){var _0x40f07f=_[_0x6bba('0x5f')](_0x26b447,'id');_0x2f007e(_0x40f07f);});})['catch'](function(_0x1f6b42){_0x140dfb(_0x1f6b42);});});}
\ No newline at end of file
+var _0x2f31=['voicequeue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','transaction','UserNotification','forEach','emit','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','union','ids','replace','queue','Queue','push','map','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','defaults','socket.io-emitter','./userNotification.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','update','destroy','then','send','hasOwnProperty','text','body','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','recipients','parse','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue'];(function(_0x3b085,_0x250543){var _0x476a57=function(_0x480941){while(--_0x480941){_0x3b085['push'](_0x3b085['shift']());}};_0x476a57(++_0x250543);}(_0x2f31,0xde));var _0x12f3=function(_0x287f9a,_0x4f3c46){_0x287f9a=_0x287f9a-0x0;var _0x153a77=_0x2f31[_0x287f9a];return _0x153a77;};'use strict';var emlformat=require(_0x12f3('0x0'));var rimraf=require(_0x12f3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x12f3('0x2'));var rp=require('request-promise');var moment=require(_0x12f3('0x3'));var BPromise=require(_0x12f3('0x4'));var Mustache=require(_0x12f3('0x5'));var util=require(_0x12f3('0x6'));var path=require(_0x12f3('0x7'));var sox=require('sox');var csv=require(_0x12f3('0x8'));var ejs=require(_0x12f3('0x9'));var fs=require('fs');var fs_extra=require(_0x12f3('0xa'));var _=require(_0x12f3('0xb'));var squel=require(_0x12f3('0xc'));var crypto=require(_0x12f3('0xd'));var jsforce=require(_0x12f3('0xe'));var deskjs=require(_0x12f3('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x12f3('0x10'));var Redis=require(_0x12f3('0x11'));var authService=require(_0x12f3('0x12'));var qs=require(_0x12f3('0x13'));var as=require(_0x12f3('0x14'));var hardwareService=require(_0x12f3('0x15'));var logger=require(_0x12f3('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x12f3('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x12f3('0x18'))['db'];config['redis']=_[_0x12f3('0x19')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x12f3('0x1a'))(new Redis(config['redis']));require(_0x12f3('0x1b'))['register'](socket);function respondWithStatusCode(_0x44dd98,_0x161831){_0x161831=_0x161831||0xcc;return function(_0x17f584){if(_0x17f584){return _0x44dd98[_0x12f3('0x1c')](_0x161831);}return _0x44dd98['status'](_0x161831)[_0x12f3('0x1d')]();};}function respondWithResult(_0x420f4c,_0x2c8ef8){_0x2c8ef8=_0x2c8ef8||0xc8;return function(_0xfd1a72){if(_0xfd1a72){return _0x420f4c[_0x12f3('0x1e')](_0x2c8ef8)[_0x12f3('0x1f')](_0xfd1a72);}};}function respondWithFilteredResult(_0x4f957a,_0x46bbbb){return function(_0x79aecb){if(_0x79aecb){var _0x5a46ee=typeof _0x46bbbb[_0x12f3('0x20')]===_0x12f3('0x21')&&typeof _0x46bbbb[_0x12f3('0x22')]===_0x12f3('0x21');var _0x5dc413=_0x79aecb[_0x12f3('0x23')];var _0x2495c8=_0x5a46ee?0x0:_0x46bbbb[_0x12f3('0x20')];var _0xfcd49c=_0x5a46ee?_0x79aecb[_0x12f3('0x23')]:_0x46bbbb[_0x12f3('0x20')]+_0x46bbbb['limit'];var _0x3a1b82;if(_0xfcd49c>=_0x5dc413){_0xfcd49c=_0x5dc413;_0x3a1b82=0xc8;}else{_0x3a1b82=0xce;}_0x4f957a[_0x12f3('0x1e')](_0x3a1b82);return _0x4f957a[_0x12f3('0x24')](_0x12f3('0x25'),_0x2495c8+'-'+_0xfcd49c+'/'+_0x5dc413)['json'](_0x79aecb);}return null;};}function patchUpdates(_0x3c0a76){return function(_0x1e15af){try{jsonpatch['apply'](_0x1e15af,_0x3c0a76,!![]);}catch(_0x5dac67){return BPromise[_0x12f3('0x26')](_0x5dac67);}return _0x1e15af['save']();};}function saveUpdates(_0x515e2a,_0x590500){return function(_0x1aca76){if(_0x1aca76){return _0x1aca76[_0x12f3('0x27')](_0x515e2a)['then'](function(_0x15f999){return _0x15f999;});}return null;};}function removeEntity(_0x1ddcb2,_0xa4a2c8){return function(_0x3cde20){if(_0x3cde20){return _0x3cde20[_0x12f3('0x28')]()[_0x12f3('0x29')](function(){_0x1ddcb2[_0x12f3('0x1e')](0xcc)[_0x12f3('0x1d')]();});}};}function handleEntityNotFound(_0x287493,_0x1309c1){return function(_0x209695){if(!_0x209695){_0x287493[_0x12f3('0x1c')](0x194);}return _0x209695;};}function handleError(_0x4c1145,_0x7f9825){_0x7f9825=_0x7f9825||0x1f4;return function(_0x33dfcc){logger['error'](_0x33dfcc['stack']);if(_0x33dfcc['name']){delete _0x33dfcc['name'];}_0x4c1145[_0x12f3('0x1e')](_0x7f9825)[_0x12f3('0x2a')](_0x33dfcc);};}exports['sendUserNotification']=function(_0x1372d8,_0x55aa64,_0x8101e5){if(!_0x1372d8['body'][_0x12f3('0x2b')](_0x12f3('0x2c'))&&!_0x1372d8[_0x12f3('0x2d')]['hasOwnProperty'](_0x12f3('0x2e'))){throw new db[(_0x12f3('0x2f'))][(_0x12f3('0x30'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x1372d8[_0x12f3('0x2d')][_0x12f3('0x2b')](_0x12f3('0x2e'))&&!_0x1372d8['body'][_0x12f3('0x2b')](_0x12f3('0x31'))){throw new db[(_0x12f3('0x2f'))][(_0x12f3('0x30'))](_0x12f3('0x32'));}if(!_0x1372d8[_0x12f3('0x2d')]['hasOwnProperty'](_0x12f3('0x33'))){throw new db[(_0x12f3('0x2f'))][(_0x12f3('0x30'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x59a86a=JSON[_0x12f3('0x34')](_0x1372d8[_0x12f3('0x2d')][_0x12f3('0x33')]);}catch(_0xa8401f){logger[_0x12f3('0x35')](_0xa8401f);throw new db[(_0x12f3('0x2f'))][(_0x12f3('0x30'))](_0x12f3('0x36'));}var _0x2439fd=[_0x12f3('0x37'),_0x12f3('0x38'),_0x12f3('0x39'),_0x12f3('0x3a'),_0x12f3('0x3b'),_0x12f3('0x3c'),'whatsappqueue',_0x12f3('0x3d'),_0x12f3('0x3e')];if(_[_0x12f3('0x3f')](_0x59a86a,function(_0x27bdba){return!_[_0x12f3('0x40')](_0x2439fd,_0x27bdba[_0x12f3('0x41')][_0x12f3('0x42')]());})){throw new db[(_0x12f3('0x2f'))][(_0x12f3('0x30'))](_0x12f3('0x43'));}}}var _0x247559={};_0x247559['senderName']=_0x1372d8[_0x12f3('0x2d')][_0x12f3('0x2b')](_0x12f3('0x44'))?_0x1372d8[_0x12f3('0x2d')][_0x12f3('0x44')]:_0x1372d8['user'][_0x12f3('0x45')];_0x247559['recipientsDescription']=_['isEmpty'](_0x1372d8['body'][_0x12f3('0x46')])?null:_0x1372d8[_0x12f3('0x2d')]['recipientsDescription'];_0x247559['beep']=_0x1372d8['body'][_0x12f3('0x47')]||![];_0x247559[_0x12f3('0x48')]=_0x1372d8[_0x12f3('0x3e')]['id'];return getContent(_0x1372d8[_0x12f3('0x2d')])['then'](function(_0x51c47c){_0x247559['body']=_0x51c47c;return getRecipients(_0x59a86a);})[_0x12f3('0x29')](function(_0x1df365){_0x247559[_0x12f3('0x49')]=_[_0x12f3('0x4a')](_0x1df365)[_0x12f3('0x4b')](',');return db['sequelize'][_0x12f3('0x4c')](function(_0x22f982){return db[_0x12f3('0x4d')]['create'](_0x247559,{'raw':!![],'transaction':_0x22f982})[_0x12f3('0x29')](function(_0x46162d){var _0x5587fc={'sender':_0x247559['senderName'],'description':_0x247559['recipientsDescription'],'content':_0x247559['body'],'beep':_0x247559[_0x12f3('0x47')]};_0x1df365[_0x12f3('0x4e')](function(_0x1c65dd){_0x5587fc['recipient']=_0x1c65dd;socket[_0x12f3('0x4f')](_0x12f3('0x50'),_0x5587fc);});return _0x46162d;});});})[_0x12f3('0x29')](respondWithResult(_0x55aa64,0xc9))[_0x12f3('0x51')](handleError(_0x55aa64,null));};function getContent(_0x431930){return new BPromise(function(_0xdea714,_0x11a374){if(_0x431930[_0x12f3('0x2c')]){_0xdea714(_0x431930[_0x12f3('0x2c')]);return;}return db[_0x12f3('0x52')][_0x12f3('0x53')]({'attributes':[_0x12f3('0x54')],'where':{'id':_0x431930[_0x12f3('0x2e')]},'raw':!![]})[_0x12f3('0x29')](function(_0xc4874d){if(!_0xc4874d)throw new db[(_0x12f3('0x2f'))][(_0x12f3('0x30'))](_0x12f3('0x55'));var _0x15c67f=Mustache[_0x12f3('0x56')](_0xc4874d[_0x12f3('0x54')],_0x431930['view']);_0xdea714(_0x15c67f);})[_0x12f3('0x51')](function(_0x2b0632){_0x11a374(_0x2b0632);});});}function getRecipients(_0xdf37a9){return new BPromise(function(_0x241732,_0x28d4a9){var _0x43efa4=[];var _0x191832=[];_0xdf37a9[_0x12f3('0x4e')](function(_0x17e5e6){var _0x344ade=_['startCase'](_0x17e5e6[_0x12f3('0x41')][_0x12f3('0x42')]());if(_0x344ade==='User'){_0x43efa4=_[_0x12f3('0x57')](_0x43efa4,_0x17e5e6[_0x12f3('0x58')]);}else{if(_[_0x12f3('0x40')](_0x344ade,'queue'))_0x344ade=_0x344ade[_0x12f3('0x59')](_0x12f3('0x5a'),_0x12f3('0x5b'));_0x17e5e6['ids'][_0x12f3('0x4e')](function(_0x24a402){_0x191832[_0x12f3('0x5c')](getAgents(_0x344ade,_0x24a402));});}});return BPromise['all'](_0x191832)['then'](function(_0x355656){_0x43efa4=_[_0x12f3('0x57')](_0x43efa4,_['flatten'](_0x355656));_0x241732(_0x43efa4);})[_0x12f3('0x51')](function(_0x393051){_0x28d4a9(_0x393051);});});}function getAgents(_0x40f42c,_0x1322f8){return new BPromise(function(_0x2e101b,_0x52a1e1){return db[_0x40f42c][_0x12f3('0x53')]({'where':{'id':_0x1322f8}})[_0x12f3('0x29')](function(_0x5ba887){return _0x5ba887['getAgents']({'attributes':['id'],'raw':!![]})[_0x12f3('0x29')](function(_0x34694d){var _0x531761=_[_0x12f3('0x5d')](_0x34694d,'id');_0x2e101b(_0x531761);});})[_0x12f3('0x51')](function(_0x40e52f){_0x52a1e1(_0x40e52f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5060=['emit','exports','events','UserNotification','setMaxListeners','save'];(function(_0x1040e4,_0x4b4c60){var _0x55da2f=function(_0x44d308){while(--_0x44d308){_0x1040e4['push'](_0x1040e4['shift']());}};_0x55da2f(++_0x4b4c60);}(_0x5060,0x122));var _0x0506=function(_0x486ec6,_0xdaacda){_0x486ec6=_0x486ec6-0x0;var _0x417267=_0x5060[_0x486ec6];return _0x417267;};'use strict';var EventEmitter=require(_0x0506('0x0'));var UserNotification=require('../../mysqldb')['db'][_0x0506('0x1')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x0506('0x2')](0x0);var events={'afterCreate':_0x0506('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x5a7993){return function(_0x387622,_0x3974b0,_0x200c5c){UserNotificationEvents['emit'](_0x5a7993+':'+_0x387622['id'],_0x387622);UserNotificationEvents[_0x0506('0x4')](_0x5a7993,_0x387622);_0x200c5c(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];UserNotification['hook'](e,emitEvent(event));}}module[_0x0506('0x5')]=UserNotificationEvents;
\ No newline at end of file
+var _0xee95=['emit','hasOwnProperty','exports','events','../../mysqldb','UserNotification','setMaxListeners','save','update','remove'];(function(_0x1ac053,_0x39267a){var _0x2d209a=function(_0x5106d2){while(--_0x5106d2){_0x1ac053['push'](_0x1ac053['shift']());}};_0x2d209a(++_0x39267a);}(_0xee95,0x85));var _0x5ee9=function(_0x339ed8,_0x5c0f01){_0x339ed8=_0x339ed8-0x0;var _0x4282f8=_0xee95[_0x339ed8];return _0x4282f8;};'use strict';var EventEmitter=require(_0x5ee9('0x0'));var UserNotification=require(_0x5ee9('0x1'))['db'][_0x5ee9('0x2')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x5ee9('0x3')](0x0);var events={'afterCreate':_0x5ee9('0x4'),'afterUpdate':_0x5ee9('0x5'),'afterDestroy':_0x5ee9('0x6')};function emitEvent(_0x5c60ae){return function(_0x34b536,_0x573bd2,_0x2af0fb){UserNotificationEvents[_0x5ee9('0x7')](_0x5c60ae+':'+_0x34b536['id'],_0x34b536);UserNotificationEvents['emit'](_0x5c60ae,_0x34b536);_0x2af0fb(null);};}for(var e in events){if(events[_0x5ee9('0x8')](e)){var event=events[e];UserNotification['hook'](e,emitEvent(event));}}module[_0x5ee9('0x9')]=UserNotificationEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b8a=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./userNotification.attributes','define','userNotifications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api'];(function(_0x239193,_0x1585ef){var _0x4f51c3=function(_0x8eba2c){while(--_0x8eba2c){_0x239193['push'](_0x239193['shift']());}};_0x4f51c3(++_0x1585ef);}(_0x8b8a,0xb0));var _0xa8b8=function(_0x11c9bd,_0x433241){_0x11c9bd=_0x11c9bd-0x0;var _0xcf348c=_0x8b8a[_0x11c9bd];return _0xcf348c;};'use strict';var _=require(_0xa8b8('0x0'));var util=require(_0xa8b8('0x1'));var logger=require(_0xa8b8('0x2'))(_0xa8b8('0x3'));var moment=require(_0xa8b8('0x4'));var BPromise=require(_0xa8b8('0x5'));var rp=require(_0xa8b8('0x6'));var fs=require('fs');var path=require(_0xa8b8('0x7'));var rimraf=require(_0xa8b8('0x8'));var config=require(_0xa8b8('0x9'));var attributes=require(_0xa8b8('0xa'));module['exports']=function(_0x3a09ce,_0xe773b5){return _0x3a09ce[_0xa8b8('0xb')]('UserNotification',attributes,{'tableName':_0xa8b8('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xa8b8('0xd'),'collate':_0xa8b8('0xe')});};
\ No newline at end of file
+var _0xe601=['./userNotification.attributes','exports','define','UserNotification','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x4cc1d0,_0x4b3c7d){var _0x1eafd6=function(_0xe23e4e){while(--_0xe23e4e){_0x4cc1d0['push'](_0x4cc1d0['shift']());}};_0x1eafd6(++_0x4b3c7d);}(_0xe601,0x139));var _0x1e60=function(_0x3584da,_0x41b9d6){_0x3584da=_0x3584da-0x0;var _0x29ed2e=_0xe601[_0x3584da];return _0x29ed2e;};'use strict';var _=require(_0x1e60('0x0'));var util=require(_0x1e60('0x1'));var logger=require(_0x1e60('0x2'))('api');var moment=require(_0x1e60('0x3'));var BPromise=require(_0x1e60('0x4'));var rp=require(_0x1e60('0x5'));var fs=require('fs');var path=require(_0x1e60('0x6'));var rimraf=require(_0x1e60('0x7'));var config=require(_0x1e60('0x8'));var attributes=require(_0x1e60('0x9'));module[_0x1e60('0xa')]=function(_0x31ed3f,_0x5515df){return _0x31ed3f[_0x1e60('0xb')](_0x1e60('0xc'),attributes,{'tableName':'userNotifications','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x1e60('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2da8=['client','http','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','request','then','info','UserNotification,\x20%s,\x20%s','request\x20sent','UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x406c99,_0x17dadb){var _0x165e75=function(_0x29b8ee){while(--_0x29b8ee){_0x406c99['push'](_0x406c99['shift']());}};_0x165e75(++_0x17dadb);}(_0x2da8,0xc7));var _0x82da=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x2da8[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x82da('0x0'));var util=require(_0x82da('0x1'));var moment=require('moment');var BPromise=require(_0x82da('0x2'));var rs=require(_0x82da('0x3'));var fs=require('fs');var Redis=require(_0x82da('0x4'));var db=require(_0x82da('0x5'))['db'];var utils=require(_0x82da('0x6'));var logger=require(_0x82da('0x7'))(_0x82da('0x8'));var config=require(_0x82da('0x9'));var jayson=require(_0x82da('0xa'));var client=jayson[_0x82da('0xb')][_0x82da('0xc')]({'port':0x232a});config[_0x82da('0xd')]=_[_0x82da('0xe')](config[_0x82da('0xd')],{'host':_0x82da('0xf'),'port':0x18eb});var socket=require(_0x82da('0x10'))(new Redis(config[_0x82da('0xd')]));require(_0x82da('0x11'))['register'](socket);function respondWithRpcPromise(_0xa56881,_0x42b322,_0x49fa85){return new BPromise(function(_0x42c8a3,_0x4f6195){return client[_0x82da('0x12')](_0xa56881,_0x49fa85)[_0x82da('0x13')](function(_0x385fac){logger[_0x82da('0x14')](_0x82da('0x15'),_0x42b322,_0x82da('0x16'));logger['debug'](_0x82da('0x17'),_0x42b322,_0x82da('0x16'),JSON[_0x82da('0x18')](_0x385fac));if(_0x385fac[_0x82da('0x19')]){if(_0x385fac['error'][_0x82da('0x1a')]===0x1f4){logger['error']('UserNotification,\x20%s,\x20%s',_0x42b322,_0x385fac[_0x82da('0x19')][_0x82da('0x1b')]);return _0x4f6195(_0x385fac['error']['message']);}logger[_0x82da('0x19')](_0x82da('0x15'),_0x42b322,_0x385fac[_0x82da('0x19')][_0x82da('0x1b')]);return _0x42c8a3(_0x385fac['error'][_0x82da('0x1b')]);}else{logger[_0x82da('0x14')](_0x82da('0x15'),_0x42b322,_0x82da('0x16'));_0x42c8a3(_0x385fac[_0x82da('0x1c')][_0x82da('0x1b')]);}})[_0x82da('0x1d')](function(_0x16de5e){logger['error']('UserNotification,\x20%s,\x20%s',_0x42b322,_0x16de5e);_0x4f6195(_0x16de5e);});});}
\ No newline at end of file
+var _0x9f83=['UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','socket.io-emitter','./userNotification.socket','register','request','info','UserNotification,\x20%s,\x20%s','request\x20sent'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0x9f83,0xc5));var _0x39f8=function(_0x1f4afb,_0x4309a3){_0x1f4afb=_0x1f4afb-0x0;var _0x24ca1c=_0x9f83[_0x1f4afb];return _0x24ca1c;};'use strict';var _=require(_0x39f8('0x0'));var util=require(_0x39f8('0x1'));var moment=require(_0x39f8('0x2'));var BPromise=require(_0x39f8('0x3'));var rs=require(_0x39f8('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x39f8('0x5'))(_0x39f8('0x6'));var config=require(_0x39f8('0x7'));var jayson=require(_0x39f8('0x8'));var client=jayson['client'][_0x39f8('0x9')]({'port':0x232a});config[_0x39f8('0xa')]=_[_0x39f8('0xb')](config[_0x39f8('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x39f8('0xc'))(new Redis(config[_0x39f8('0xa')]));require(_0x39f8('0xd'))[_0x39f8('0xe')](socket);function respondWithRpcPromise(_0x484f77,_0x177a45,_0x56ebe0){return new BPromise(function(_0x32f0ab,_0x490c34){return client[_0x39f8('0xf')](_0x484f77,_0x56ebe0)['then'](function(_0x1efb0c){logger[_0x39f8('0x10')](_0x39f8('0x11'),_0x177a45,_0x39f8('0x12'));logger['debug'](_0x39f8('0x13'),_0x177a45,_0x39f8('0x12'),JSON[_0x39f8('0x14')](_0x1efb0c));if(_0x1efb0c[_0x39f8('0x15')]){if(_0x1efb0c[_0x39f8('0x15')]['code']===0x1f4){logger[_0x39f8('0x15')](_0x39f8('0x11'),_0x177a45,_0x1efb0c[_0x39f8('0x15')]['message']);return _0x490c34(_0x1efb0c[_0x39f8('0x15')]['message']);}logger[_0x39f8('0x15')](_0x39f8('0x11'),_0x177a45,_0x1efb0c[_0x39f8('0x15')][_0x39f8('0x16')]);return _0x32f0ab(_0x1efb0c[_0x39f8('0x15')][_0x39f8('0x16')]);}else{logger[_0x39f8('0x10')]('UserNotification,\x20%s,\x20%s',_0x177a45,_0x39f8('0x12'));_0x32f0ab(_0x1efb0c[_0x39f8('0x17')]['message']);}})['catch'](function(_0x34126b){logger[_0x39f8('0x15')](_0x39f8('0x11'),_0x177a45,_0x34126b);_0x490c34(_0x34126b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0971=['update','emit','removeListener','register','save','remove'];(function(_0x75ce5b,_0x3b582f){var _0x22195e=function(_0x166668){while(--_0x166668){_0x75ce5b['push'](_0x75ce5b['shift']());}};_0x22195e(++_0x3b582f);}(_0x0971,0x10c));var _0x1097=function(_0x555069,_0x23d66a){_0x555069=_0x555069-0x0;var _0x100af7=_0x0971[_0x555069];return _0x100af7;};'use strict';var UserNotificationEvents=require('./userNotification.events');var events=[_0x1097('0x0'),_0x1097('0x1'),_0x1097('0x2')];function createListener(_0x1c3c3c,_0x32ae79){return function(_0x57372f){_0x32ae79[_0x1097('0x3')](_0x1c3c3c,_0x57372f);};}function removeListener(_0x47bedb,_0x35c9da){return function(){UserNotificationEvents[_0x1097('0x4')](_0x47bedb,_0x35c9da);};}exports[_0x1097('0x5')]=function(_0x2ff395){for(var _0x3a80d6=0x0,_0x150f67=events['length'];_0x3a80d6<_0x150f67;_0x3a80d6++){var _0x309bbd=events[_0x3a80d6];var _0x1370af=createListener('userNotification:'+_0x309bbd,_0x2ff395);UserNotificationEvents['on'](_0x309bbd,_0x1370af);}};
\ No newline at end of file
+var _0xf2aa=['removeListener','register','length','./userNotification.events','remove','emit'];(function(_0x2f324a,_0x14194d){var _0x28c150=function(_0x55ebeb){while(--_0x55ebeb){_0x2f324a['push'](_0x2f324a['shift']());}};_0x28c150(++_0x14194d);}(_0xf2aa,0x129));var _0xaf2a=function(_0x11f238,_0x418d9f){_0x11f238=_0x11f238-0x0;var _0x201974=_0xf2aa[_0x11f238];return _0x201974;};'use strict';var UserNotificationEvents=require(_0xaf2a('0x0'));var events=['save',_0xaf2a('0x1'),'update'];function createListener(_0x1a44b6,_0x7c5f75){return function(_0x2b40e5){_0x7c5f75[_0xaf2a('0x2')](_0x1a44b6,_0x2b40e5);};}function removeListener(_0x4dcbae,_0xbdba54){return function(){UserNotificationEvents[_0xaf2a('0x3')](_0x4dcbae,_0xbdba54);};}exports[_0xaf2a('0x4')]=function(_0x129eca){for(var _0xc8bf4d=0x0,_0x46eb54=events[_0xaf2a('0x5')];_0xc8bf4d<_0x46eb54;_0xc8bf4d++){var _0x246359=events[_0xc8bf4d];var _0x2dc814=createListener('userNotification:'+_0x246359,_0x129eca);UserNotificationEvents['on'](_0x246359,_0x2dc814);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x34404c,_0x49b8d1){var _0x46d1f2=function(_0x2cb37b){while(--_0x2cb37b){_0x34404c['push'](_0x34404c['shift']());}};_0x46d1f2(++_0x49b8d1);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x2caad7,_0x561a1d){var _0x3ee358=function(_0x228108){while(--_0x228108){_0x2caad7['push'](_0x2caad7['shift']());}};_0x3ee358(++_0x561a1d);}(_0x70e0,0x17b));var _0x070e=function(_0x1f0a4f,_0x30d4ce){_0x1f0a4f=_0x1f0a4f-0x0;var _0x103df1=_0x70e0[_0x1f0a4f];return _0x103df1;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7ec=['INTEGER','exports'];(function(_0x29f491,_0x1c37c1){var _0x132d07=function(_0x9c1d76){while(--_0x9c1d76){_0x29f491['push'](_0x29f491['shift']());}};_0x132d07(++_0x1c37c1);}(_0xc7ec,0xff));var _0xcc7e=function(_0x2d579f,_0x370e5d){_0x2d579f=_0x2d579f-0x0;var _0x1145da=_0xc7ec[_0x2d579f];return _0x1145da;};'use strict';var Sequelize=require('sequelize');module[_0xcc7e('0x0')]={'penalty':{'type':Sequelize[_0xcc7e('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x1f89=['exports','INTEGER','sequelize'];(function(_0x5bd669,_0x553211){var _0x5afe19=function(_0x594bb9){while(--_0x594bb9){_0x5bd669['push'](_0x5bd669['shift']());}};_0x5afe19(++_0x553211);}(_0x1f89,0x14c));var _0x91f8=function(_0x4f3955,_0x1c517f){_0x4f3955=_0x4f3955-0x0;var _0x42f963=_0x1f89[_0x4f3955];return _0x42f963;};'use strict';var Sequelize=require(_0x91f8('0x0'));module[_0x91f8('0x1')]={'penalty':{'type':Sequelize[_0x91f8('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa25c=['UserOpenchannelQueue','user_has_openchannel_queues','util','../../config/logger','api','moment','request-promise','../../config/environment','./userOpenchannelQueue.attributes','exports'];(function(_0x34d1a3,_0x402ed9){var _0x4da0d7=function(_0x552f80){while(--_0x552f80){_0x34d1a3['push'](_0x34d1a3['shift']());}};_0x4da0d7(++_0x402ed9);}(_0xa25c,0x1a6));var _0xca25=function(_0x3c3920,_0x286666){_0x3c3920=_0x3c3920-0x0;var _0x3a6ddb=_0xa25c[_0x3c3920];return _0x3a6ddb;};'use strict';var _=require('lodash');var util=require(_0xca25('0x0'));var logger=require(_0xca25('0x1'))(_0xca25('0x2'));var moment=require(_0xca25('0x3'));var BPromise=require('bluebird');var rp=require(_0xca25('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xca25('0x5'));var attributes=require(_0xca25('0x6'));module[_0xca25('0x7')]=function(_0xd22efd,_0x3cb32c){return _0xd22efd['define'](_0xca25('0x8'),attributes,{'tableName':_0xca25('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5e1f=['bluebird','rimraf','../../config/environment','./userOpenchannelQueue.attributes','define','UserOpenchannelQueue','user_has_openchannel_queues','lodash','util','../../config/logger'];(function(_0x4f7b1b,_0x4be8ee){var _0x23c370=function(_0x596af6){while(--_0x596af6){_0x4f7b1b['push'](_0x4f7b1b['shift']());}};_0x23c370(++_0x4be8ee);}(_0x5e1f,0x1b5));var _0xf5e1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5e1f[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xf5e1('0x0'));var util=require(_0xf5e1('0x1'));var logger=require(_0xf5e1('0x2'))('api');var moment=require('moment');var BPromise=require(_0xf5e1('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xf5e1('0x4'));var config=require(_0xf5e1('0x5'));var attributes=require(_0xf5e1('0x6'));module['exports']=function(_0x568474,_0xf762f4){return _0x568474[_0xf5e1('0x7')](_0xf5e1('0x8'),attributes,{'tableName':_0xf5e1('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6402=['UserOpenchannelQueue,\x20%s,\x20%s','message','result','lodash','util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x24237f,_0x4cf32c){var _0x48298e=function(_0x3f7511){while(--_0x3f7511){_0x24237f['push'](_0x24237f['shift']());}};_0x48298e(++_0x4cf32c);}(_0x6402,0x1d1));var _0x2640=function(_0x14d9ad,_0x4b60c0){_0x14d9ad=_0x14d9ad-0x0;var _0x3089c8=_0x6402[_0x14d9ad];return _0x3089c8;};'use strict';var _=require(_0x2640('0x0'));var util=require(_0x2640('0x1'));var moment=require('moment');var BPromise=require(_0x2640('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x2640('0x3'));var logger=require(_0x2640('0x4'))(_0x2640('0x5'));var config=require(_0x2640('0x6'));var jayson=require(_0x2640('0x7'));var client=jayson[_0x2640('0x8')][_0x2640('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1a7252,_0x69c0db,_0x57cf67){return new BPromise(function(_0x24ab13,_0x2df15f){return client[_0x2640('0xa')](_0x1a7252,_0x57cf67)[_0x2640('0xb')](function(_0x5e863e){logger[_0x2640('0xc')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x69c0db,_0x2640('0xd'));logger[_0x2640('0xe')](_0x2640('0xf'),_0x69c0db,_0x2640('0xd'),JSON[_0x2640('0x10')](_0x5e863e));if(_0x5e863e[_0x2640('0x11')]){if(_0x5e863e[_0x2640('0x11')][_0x2640('0x12')]===0x1f4){logger[_0x2640('0x11')](_0x2640('0x13'),_0x69c0db,_0x5e863e[_0x2640('0x11')]['message']);return _0x2df15f(_0x5e863e[_0x2640('0x11')][_0x2640('0x14')]);}logger[_0x2640('0x11')](_0x2640('0x13'),_0x69c0db,_0x5e863e[_0x2640('0x11')][_0x2640('0x14')]);return _0x24ab13(_0x5e863e[_0x2640('0x11')][_0x2640('0x14')]);}else{logger[_0x2640('0xc')](_0x2640('0x13'),_0x69c0db,'request\x20sent');_0x24ab13(_0x5e863e[_0x2640('0x15')][_0x2640('0x14')]);}})['catch'](function(_0x2c6ea8){logger[_0x2640('0x11')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x69c0db,_0x2c6ea8);_0x2df15f(_0x2c6ea8);});});}
\ No newline at end of file
+var _0xfedc=['../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','request','then','info','UserOpenchannelQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x126558,_0x143c9a){var _0x1f6d14=function(_0x2b0eea){while(--_0x2b0eea){_0x126558['push'](_0x126558['shift']());}};_0x1f6d14(++_0x143c9a);}(_0xfedc,0x6d));var _0xcfed=function(_0x2d8f6c,_0x44db4c){_0x2d8f6c=_0x2d8f6c-0x0;var _0x3a00f6=_0xfedc[_0x2d8f6c];return _0x3a00f6;};'use strict';var _=require(_0xcfed('0x0'));var util=require(_0xcfed('0x1'));var moment=require(_0xcfed('0x2'));var BPromise=require(_0xcfed('0x3'));var rs=require(_0xcfed('0x4'));var fs=require('fs');var Redis=require(_0xcfed('0x5'));var db=require(_0xcfed('0x6'))['db'];var utils=require(_0xcfed('0x7'));var logger=require(_0xcfed('0x8'))(_0xcfed('0x9'));var config=require('../../config/environment');var jayson=require(_0xcfed('0xa'));var client=jayson['client'][_0xcfed('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x80e558,_0x7b21ef,_0x39660b){return new BPromise(function(_0x3b1af1,_0x17f64a){return client[_0xcfed('0xc')](_0x80e558,_0x39660b)[_0xcfed('0xd')](function(_0x19faa8){logger[_0xcfed('0xe')](_0xcfed('0xf'),_0x7b21ef,'request\x20sent');logger[_0xcfed('0x10')]('UserOpenchannelQueue,\x20%s,\x20%s,\x20%s',_0x7b21ef,_0xcfed('0x11'),JSON[_0xcfed('0x12')](_0x19faa8));if(_0x19faa8[_0xcfed('0x13')]){if(_0x19faa8[_0xcfed('0x13')][_0xcfed('0x14')]===0x1f4){logger[_0xcfed('0x13')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x7b21ef,_0x19faa8['error'][_0xcfed('0x15')]);return _0x17f64a(_0x19faa8['error']['message']);}logger[_0xcfed('0x13')](_0xcfed('0xf'),_0x7b21ef,_0x19faa8['error'][_0xcfed('0x15')]);return _0x3b1af1(_0x19faa8[_0xcfed('0x13')][_0xcfed('0x15')]);}else{logger[_0xcfed('0xe')](_0xcfed('0xf'),_0x7b21ef,_0xcfed('0x11'));_0x3b1af1(_0x19faa8[_0xcfed('0x16')][_0xcfed('0x15')]);}})['catch'](function(_0x57d53e){logger[_0xcfed('0x13')](_0xcfed('0xf'),_0x7b21ef,_0x57d53e);_0x17f64a(_0x57d53e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d4e=['clone','addSections','addResources','update','destroy','delete','removeResources','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./userProfile.controller','get','isAuthenticated','index','describe','/:id','show','/:id/sections','getSections','/:id/resources','post','create','/:id/clone'];(function(_0x55eaaa,_0x408490){var _0x20972e=function(_0x2da9c5){while(--_0x2da9c5){_0x55eaaa['push'](_0x55eaaa['shift']());}};_0x20972e(++_0x408490);}(_0x0d4e,0x1ca));var _0xe0d4=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x0d4e[_0x4565bf];return _0x5610ba;};'use strict';var multer=require(_0xe0d4('0x0'));var util=require(_0xe0d4('0x1'));var path=require(_0xe0d4('0x2'));var timeout=require(_0xe0d4('0x3'));var express=require(_0xe0d4('0x4'));var router=express[_0xe0d4('0x5')]();var fs_extra=require(_0xe0d4('0x6'));var auth=require(_0xe0d4('0x7'));var interaction=require(_0xe0d4('0x8'));var config=require('../../config/environment');var controller=require(_0xe0d4('0x9'));router[_0xe0d4('0xa')]('/',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0xc')]);router['get']('/describe',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0xd')]);router[_0xe0d4('0xa')](_0xe0d4('0xe'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0xf')]);router[_0xe0d4('0xa')](_0xe0d4('0x10'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x11')]);router[_0xe0d4('0xa')](_0xe0d4('0x12'),auth[_0xe0d4('0xb')](),controller['getResources']);router[_0xe0d4('0x13')]('/',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x14')]);router[_0xe0d4('0x13')](_0xe0d4('0x15'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x16')]);router[_0xe0d4('0x13')](_0xe0d4('0x10'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x17')]);router[_0xe0d4('0x13')](_0xe0d4('0x12'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x18')]);router['put'](_0xe0d4('0xe'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x19')]);router['delete']('/:id',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x1a')]);router[_0xe0d4('0x1b')](_0xe0d4('0x10'),auth[_0xe0d4('0xb')](),controller['removeSections']);router[_0xe0d4('0x1b')](_0xe0d4('0x12'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x1c')]);module[_0xe0d4('0x1d')]=router;
\ No newline at end of file
+var _0xfc9d=['/:id/resources','put','/:id','delete','destroy','removeSections','exports','multer','util','express','../../components/interaction/service','../../config/environment','./userProfile.controller','get','isAuthenticated','describe','show','getSections','getResources','post','create','/:id/clone','/:id/sections','addSections'];(function(_0x1b48f6,_0x3ced4f){var _0x3c6b2a=function(_0x33d9de){while(--_0x33d9de){_0x1b48f6['push'](_0x1b48f6['shift']());}};_0x3c6b2a(++_0x3ced4f);}(_0xfc9d,0xdf));var _0xdfc9=function(_0x550637,_0x2f172a){_0x550637=_0x550637-0x0;var _0x24fea3=_0xfc9d[_0x550637];return _0x24fea3;};'use strict';var multer=require(_0xdfc9('0x0'));var util=require(_0xdfc9('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xdfc9('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xdfc9('0x3'));var config=require(_0xdfc9('0x4'));var controller=require(_0xdfc9('0x5'));router[_0xdfc9('0x6')]('/',auth['isAuthenticated'](),controller['index']);router[_0xdfc9('0x6')]('/describe',auth[_0xdfc9('0x7')](),controller[_0xdfc9('0x8')]);router[_0xdfc9('0x6')]('/:id',auth[_0xdfc9('0x7')](),controller[_0xdfc9('0x9')]);router[_0xdfc9('0x6')]('/:id/sections',auth[_0xdfc9('0x7')](),controller[_0xdfc9('0xa')]);router[_0xdfc9('0x6')]('/:id/resources',auth[_0xdfc9('0x7')](),controller[_0xdfc9('0xb')]);router[_0xdfc9('0xc')]('/',auth[_0xdfc9('0x7')](),controller[_0xdfc9('0xd')]);router[_0xdfc9('0xc')](_0xdfc9('0xe'),auth['isAuthenticated'](),controller['clone']);router[_0xdfc9('0xc')](_0xdfc9('0xf'),auth[_0xdfc9('0x7')](),controller[_0xdfc9('0x10')]);router[_0xdfc9('0xc')](_0xdfc9('0x11'),auth['isAuthenticated'](),controller['addResources']);router[_0xdfc9('0x12')](_0xdfc9('0x13'),auth[_0xdfc9('0x7')](),controller['update']);router[_0xdfc9('0x14')](_0xdfc9('0x13'),auth[_0xdfc9('0x7')](),controller[_0xdfc9('0x15')]);router[_0xdfc9('0x14')](_0xdfc9('0xf'),auth['isAuthenticated'](),controller[_0xdfc9('0x16')]);router[_0xdfc9('0x14')](_0xdfc9('0x11'),auth[_0xdfc9('0x7')](),controller['removeResources']);module[_0xdfc9('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ec1=['BOOLEAN','sequelize','exports','name','setDataValue','getDataValue','crudPermissions','split'];(function(_0x20534c,_0xe46275){var _0x1925cc=function(_0xd3ef7b){while(--_0xd3ef7b){_0x20534c['push'](_0x20534c['shift']());}};_0x1925cc(++_0xe46275);}(_0x7ec1,0x119));var _0x17ec=function(_0x7519aa,_0x507337){_0x7519aa=_0x7519aa-0x0;var _0xe0f828=_0x7ec1[_0x7519aa];return _0xe0f828;};'use strict';var Sequelize=require(_0x17ec('0x0'));module[_0x17ec('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x17ec('0x2')},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x2edea9){this[_0x17ec('0x3')]('crudPermissions',_0x2edea9?_0x2edea9['join'](''):[]);},'get':function(){return this[_0x17ec('0x4')](_0x17ec('0x5'))?this['getDataValue']('crudPermissions')[_0x17ec('0x6')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xc57e=['exports','STRING','setDataValue','crudPermissions','getDataValue','split','BOOLEAN'];(function(_0x41d9d4,_0x197ba2){var _0x5d1a26=function(_0x59b015){while(--_0x59b015){_0x41d9d4['push'](_0x41d9d4['shift']());}};_0x5d1a26(++_0x197ba2);}(_0xc57e,0x16c));var _0xec57=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0xc57e[_0x2c91e9];return _0x13f0ff;};'use strict';var Sequelize=require('sequelize');module[_0xec57('0x0')]={'name':{'type':Sequelize[_0xec57('0x1')],'allowNull':![],'unique':'name'},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x1b71e9){this[_0xec57('0x2')](_0xec57('0x3'),_0x1b71e9?_0x1b71e9['join'](''):[]);},'get':function(){return this[_0xec57('0x4')]('crudPermissions')?this[_0xec57('0x4')](_0xec57('0x3'))[_0xec57('0x5')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize[_0xec57('0x1')],'allowNull':!![]},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0xec57('0x6')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0xec57('0x6')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0xec57('0x6')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0xec57('0x6')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xec57('0x6')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0xec57('0x6')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xec57('0x6')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf643=['fieldName','type','model','keys','filters','query','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','merge','map','filter','UserProfile','includeAll','findAll','rows','catch','params','include','options','find','create','body','clone','get','omit','createdAt','crudPermissions','transaction','each','autoAssociation','UserProfileResource','updatedAt','userProfileId','Resources','UserProfileSection','update','describe','addSections','push','removeSections','getSections','includes','sectionId','isEmpty','enabled','subsections','findOne','forEach','resourceId','Plugin','sequelize','bulkCreate','ids','getResources','section','Missing\x20section\x20parameter','nolimit','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','sendStatus','end','status','json','offset','limit','count','set','reject','save','then','destroy','error','stack','name','rawAttributes'];(function(_0x53a9e9,_0x276ce3){var _0x4f2c2f=function(_0x3dd5ca){while(--_0x3dd5ca){_0x53a9e9['push'](_0x53a9e9['shift']());}};_0x4f2c2f(++_0x276ce3);}(_0xf643,0x122));var _0x3f64=function(_0x19ad58,_0x3195e0){_0x19ad58=_0x19ad58-0x0;var _0x3a7382=_0xf643[_0x19ad58];return _0x3a7382;};'use strict';var emlformat=require(_0x3f64('0x0'));var rimraf=require(_0x3f64('0x1'));var zipdir=require(_0x3f64('0x2'));var jsonpatch=require(_0x3f64('0x3'));var rp=require('request-promise');var moment=require(_0x3f64('0x4'));var BPromise=require(_0x3f64('0x5'));var Mustache=require('mustache');var util=require(_0x3f64('0x6'));var path=require(_0x3f64('0x7'));var sox=require(_0x3f64('0x8'));var csv=require(_0x3f64('0x9'));var ejs=require(_0x3f64('0xa'));var fs=require('fs');var fs_extra=require(_0x3f64('0xb'));var _=require(_0x3f64('0xc'));var squel=require(_0x3f64('0xd'));var crypto=require(_0x3f64('0xe'));var jsforce=require(_0x3f64('0xf'));var deskjs=require(_0x3f64('0x10'));var toCsv=require(_0x3f64('0x9'));var querystring=require(_0x3f64('0x11'));var Papa=require(_0x3f64('0x12'));var Redis=require(_0x3f64('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x3f64('0x14'));var as=require(_0x3f64('0x15'));var hardwareService=require(_0x3f64('0x16'));var logger=require('../../config/logger')(_0x3f64('0x17'));var utils=require(_0x3f64('0x18'));var config=require(_0x3f64('0x19'));var licenseUtil=require(_0x3f64('0x1a'));var db=require(_0x3f64('0x1b'))['db'];config[_0x3f64('0x1c')]=_[_0x3f64('0x1d')](config[_0x3f64('0x1c')],{'host':_0x3f64('0x1e'),'port':0x18eb});var socket=require(_0x3f64('0x1f'))(new Redis(config[_0x3f64('0x1c')]));require(_0x3f64('0x20'))['register'](socket);function respondWithStatusCode(_0x84d3a9,_0x1af45b){_0x1af45b=_0x1af45b||0xcc;return function(_0x3fb0bd){if(_0x3fb0bd){return _0x84d3a9[_0x3f64('0x21')](_0x1af45b);}return _0x84d3a9['status'](_0x1af45b)[_0x3f64('0x22')]();};}function respondWithResult(_0x1c17bb,_0x2650a1){_0x2650a1=_0x2650a1||0xc8;return function(_0x3e9c46){if(_0x3e9c46){return _0x1c17bb[_0x3f64('0x23')](_0x2650a1)[_0x3f64('0x24')](_0x3e9c46);}};}function respondWithFilteredResult(_0x3d5196,_0x5ac514){return function(_0xbcf1aa){if(_0xbcf1aa){var _0x7bca32=typeof _0x5ac514[_0x3f64('0x25')]==='undefined'&&typeof _0x5ac514[_0x3f64('0x26')]==='undefined';var _0x5177e2=_0xbcf1aa[_0x3f64('0x27')];var _0x38cea3=_0x7bca32?0x0:_0x5ac514[_0x3f64('0x25')];var _0x5b5d10=_0x7bca32?_0xbcf1aa[_0x3f64('0x27')]:_0x5ac514[_0x3f64('0x25')]+_0x5ac514[_0x3f64('0x26')];var _0x5f5507;if(_0x5b5d10>=_0x5177e2){_0x5b5d10=_0x5177e2;_0x5f5507=0xc8;}else{_0x5f5507=0xce;}_0x3d5196[_0x3f64('0x23')](_0x5f5507);return _0x3d5196[_0x3f64('0x28')]('Content-Range',_0x38cea3+'-'+_0x5b5d10+'/'+_0x5177e2)[_0x3f64('0x24')](_0xbcf1aa);}return null;};}function patchUpdates(_0x3faf46){return function(_0x53cd96){try{jsonpatch['apply'](_0x53cd96,_0x3faf46,!![]);}catch(_0x5b1628){return BPromise[_0x3f64('0x29')](_0x5b1628);}return _0x53cd96[_0x3f64('0x2a')]();};}function saveUpdates(_0x336b98,_0x1b49fe){return function(_0x112906){if(_0x112906){return _0x112906['update'](_0x336b98)[_0x3f64('0x2b')](function(_0x4702a3){return _0x4702a3;});}return null;};}function removeEntity(_0x151f1e,_0x142fe5){return function(_0x383780){if(_0x383780){return _0x383780[_0x3f64('0x2c')]()[_0x3f64('0x2b')](function(){_0x151f1e[_0x3f64('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x8d8f36,_0x4cb5e7){return function(_0x473b46){if(!_0x473b46){_0x8d8f36[_0x3f64('0x21')](0x194);}return _0x473b46;};}function handleError(_0x43f349,_0x2fac90){_0x2fac90=_0x2fac90||0x1f4;return function(_0x191a2d){logger[_0x3f64('0x2d')](_0x191a2d[_0x3f64('0x2e')]);if(_0x191a2d[_0x3f64('0x2f')]){delete _0x191a2d[_0x3f64('0x2f')];}_0x43f349[_0x3f64('0x23')](_0x2fac90)['send'](_0x191a2d);};}exports['index']=function(_0x25ec96,_0x5a03a8){var _0x34e8cc={},_0x4253d2={},_0x211da2={'count':0x0,'rows':[]};var _0x3df209=_['map'](db['UserProfile'][_0x3f64('0x30')],function(_0x21ced6){return{'name':_0x21ced6[_0x3f64('0x31')],'type':_0x21ced6[_0x3f64('0x32')]['key']};});_0x4253d2[_0x3f64('0x33')]=_['map'](_0x3df209,'name');_0x4253d2['query']=_[_0x3f64('0x34')](_0x25ec96['query']);_0x4253d2[_0x3f64('0x35')]=_['intersection'](_0x4253d2[_0x3f64('0x33')],_0x4253d2[_0x3f64('0x36')]);_0x34e8cc[_0x3f64('0x37')]=_[_0x3f64('0x38')](_0x4253d2['model'],qs[_0x3f64('0x39')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x39')]));_0x34e8cc['attributes']=_0x34e8cc['attributes'][_0x3f64('0x3a')]?_0x34e8cc['attributes']:_0x4253d2[_0x3f64('0x33')];if(!_0x25ec96[_0x3f64('0x36')][_0x3f64('0x3b')]('nolimit')){_0x34e8cc[_0x3f64('0x26')]=qs[_0x3f64('0x26')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x26')]);_0x34e8cc[_0x3f64('0x25')]=qs[_0x3f64('0x25')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x25')]);}_0x34e8cc[_0x3f64('0x3c')]=qs[_0x3f64('0x3d')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x3d')]);_0x34e8cc[_0x3f64('0x3e')]=qs[_0x3f64('0x35')](_['pick'](_0x25ec96[_0x3f64('0x36')],_0x4253d2[_0x3f64('0x35')]),_0x3df209);if(_0x25ec96[_0x3f64('0x36')]['filter']){_0x34e8cc[_0x3f64('0x3e')]=_[_0x3f64('0x3f')](_0x34e8cc[_0x3f64('0x3e')],{'$or':_[_0x3f64('0x40')](_0x3df209,function(_0x2f15a7){if(_0x2f15a7[_0x3f64('0x32')]!=='VIRTUAL'){var _0x46ac3b={};_0x46ac3b[_0x2f15a7['name']]={'$like':'%'+_0x25ec96[_0x3f64('0x36')][_0x3f64('0x41')]+'%'};return _0x46ac3b;}})});}_0x34e8cc=_[_0x3f64('0x3f')]({},_0x34e8cc,_0x25ec96['options']);var _0x4462fa={'where':_0x34e8cc[_0x3f64('0x3e')]};return db[_0x3f64('0x42')][_0x3f64('0x27')](_0x4462fa)['then'](function(_0x70ba90){_0x211da2[_0x3f64('0x27')]=_0x70ba90;if(_0x25ec96[_0x3f64('0x36')][_0x3f64('0x43')]){_0x34e8cc['include']=[{'all':!![]}];}return db['UserProfile'][_0x3f64('0x44')](_0x34e8cc);})[_0x3f64('0x2b')](function(_0x4f3ddd){_0x211da2[_0x3f64('0x45')]=_0x4f3ddd;return _0x211da2;})[_0x3f64('0x2b')](respondWithFilteredResult(_0x5a03a8,_0x34e8cc))[_0x3f64('0x46')](handleError(_0x5a03a8,null));};exports['show']=function(_0x115a30,_0x1949ef){var _0x48989a={'raw':![],'where':{'id':_0x115a30[_0x3f64('0x47')]['id']}},_0x1fb71b={};_0x1fb71b[_0x3f64('0x33')]=_[_0x3f64('0x34')](db[_0x3f64('0x42')][_0x3f64('0x30')]);_0x1fb71b[_0x3f64('0x36')]=_[_0x3f64('0x34')](_0x115a30[_0x3f64('0x36')]);_0x1fb71b[_0x3f64('0x35')]=_[_0x3f64('0x38')](_0x1fb71b[_0x3f64('0x33')],_0x1fb71b[_0x3f64('0x36')]);_0x48989a['attributes']=_['intersection'](_0x1fb71b[_0x3f64('0x33')],qs[_0x3f64('0x39')](_0x115a30[_0x3f64('0x36')][_0x3f64('0x39')]));_0x48989a['attributes']=_0x48989a[_0x3f64('0x37')][_0x3f64('0x3a')]?_0x48989a[_0x3f64('0x37')]:_0x1fb71b[_0x3f64('0x33')];if(_0x115a30[_0x3f64('0x36')][_0x3f64('0x43')]){_0x48989a[_0x3f64('0x48')]=[{'all':!![]}];}_0x48989a=_[_0x3f64('0x3f')]({},_0x48989a,_0x115a30[_0x3f64('0x49')]);return db['UserProfile'][_0x3f64('0x4a')](_0x48989a)[_0x3f64('0x2b')](handleEntityNotFound(_0x1949ef,null))[_0x3f64('0x2b')](respondWithResult(_0x1949ef,null))[_0x3f64('0x46')](handleError(_0x1949ef,null));};exports['create']=function(_0x397256,_0x15c946){return db['UserProfile'][_0x3f64('0x4b')](_0x397256[_0x3f64('0x4c')],{})[_0x3f64('0x2b')](respondWithResult(_0x15c946,0xc9))[_0x3f64('0x46')](handleError(_0x15c946,null));};exports[_0x3f64('0x4d')]=function(_0x500ae4,_0x491a04){var _0x7dfd7e={'where':{'id':_0x500ae4[_0x3f64('0x47')]['id']}},_0x481bfa={};_0x481bfa[_0x3f64('0x33')]=_[_0x3f64('0x34')](db['UserProfile'][_0x3f64('0x30')]);_0x7dfd7e[_0x3f64('0x37')]=_[_0x3f64('0x38')](_0x481bfa[_0x3f64('0x33')],qs['fields'](_0x500ae4[_0x3f64('0x36')]['fields']));_0x7dfd7e['attributes']=_0x7dfd7e[_0x3f64('0x37')][_0x3f64('0x3a')]?_0x7dfd7e[_0x3f64('0x37')]:_0x481bfa[_0x3f64('0x33')];if(_0x500ae4['query'][_0x3f64('0x43')]){_0x7dfd7e['include']=[{'all':!![]}];}_0x7dfd7e=_[_0x3f64('0x3f')]({},_0x7dfd7e,_0x500ae4['options']);return db['UserProfile'][_0x3f64('0x4a')](_0x7dfd7e)[_0x3f64('0x2b')](handleEntityNotFound(_0x491a04,null))[_0x3f64('0x2b')](function(_0x2cedca){if(_0x2cedca){var _0x1dfce6=_0x2cedca[_0x3f64('0x4e')]({'plain':!![]});_0x1dfce6=qs[_0x3f64('0x4f')](_0x1dfce6,['id',_0x3f64('0x50'),'updatedAt',_0x3f64('0x51')]);_0x500ae4[_0x3f64('0x4c')]=_[_0x3f64('0x4f')](_0x500ae4[_0x3f64('0x4c')],['id',_0x3f64('0x50'),'updatedAt']);return db['sequelize'][_0x3f64('0x52')](function(_0x1f5004){return db[_0x3f64('0x42')][_0x3f64('0x4b')](_['merge'](_0x1dfce6,_0x500ae4[_0x3f64('0x4c')]),{'include':_0x500ae4[_0x3f64('0x36')][_0x3f64('0x43')]?[{'all':!![]}]:undefined,'transaction':_0x1f5004})[_0x3f64('0x2b')](function(_0x1c40aa){var _0x579a56=_0x1c40aa[_0x3f64('0x4e')]({'plain':!![]});return db['UserProfileSection'][_0x3f64('0x44')]({'where':{'userProfileId':_0x500ae4[_0x3f64('0x47')]['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x5addb2){if(_0x5addb2){return BPromise[_0x3f64('0x53')](_0x5addb2,function(_0x16bf10){return new BPromise(function(_0x2e8e3c,_0x50d4aa){if(_0x16bf10[_0x3f64('0x54')]===null||_0x16bf10[_0x3f64('0x54')]===0x1)_0x2e8e3c(null);return db[_0x3f64('0x55')]['findAll']({'where':{'sectionId':_0x16bf10['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x421cb7){var _0x47bd9e=_[_0x3f64('0x40')](_0x421cb7,function(_0x2ea0fb){return qs[_0x3f64('0x4f')](_0x2ea0fb,['id','createdAt',_0x3f64('0x56'),'sectionId']);});_0x2e8e3c(_0x47bd9e);})['catch'](function(_0x34323d){_0x50d4aa(_0x34323d);});})[_0x3f64('0x2b')](function(_0x14b5cc){var _0x10eb25=qs[_0x3f64('0x4f')](_0x16bf10,['id',_0x3f64('0x50'),_0x3f64('0x56')]);_0x10eb25[_0x3f64('0x57')]=_0x579a56['id'];if(_0x14b5cc)_0x10eb25[_0x3f64('0x58')]=_0x14b5cc;return _0x10eb25;})['then'](function(_0x585be2){return db[_0x3f64('0x59')][_0x3f64('0x4b')](_0x585be2,{'include':[{'model':db['UserProfileResource'],'as':_0x3f64('0x58')}],'raw':!![],'transaction':_0x1f5004});});})['then'](function(){return _0x579a56;});}});});});}})[_0x3f64('0x2b')](respondWithResult(_0x491a04,0xc9))[_0x3f64('0x46')](handleError(_0x491a04,null));};exports[_0x3f64('0x5a')]=function(_0x356da9,_0x246c80){if(_0x356da9[_0x3f64('0x4c')]['id']){delete _0x356da9[_0x3f64('0x4c')]['id'];}return db['UserProfile'][_0x3f64('0x4a')]({'where':{'id':_0x356da9[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x246c80,null))[_0x3f64('0x2b')](saveUpdates(_0x356da9[_0x3f64('0x4c')],null))[_0x3f64('0x2b')](respondWithResult(_0x246c80,null))['catch'](handleError(_0x246c80,null));};exports['destroy']=function(_0x904840,_0x807c60){return db[_0x3f64('0x42')]['find']({'where':{'id':_0x904840[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x807c60,null))[_0x3f64('0x2b')](removeEntity(_0x807c60,null))[_0x3f64('0x46')](handleError(_0x807c60,null));};exports[_0x3f64('0x5b')]=function(_0x5af1ee,_0x128bc5){return db[_0x3f64('0x42')]['describe']()[_0x3f64('0x2b')](respondWithResult(_0x128bc5,null))[_0x3f64('0x46')](handleError(_0x128bc5,null));};exports[_0x3f64('0x5c')]=function(_0x52aa7a,_0x11efc3){var _0x5608a5=_0x52aa7a[_0x3f64('0x4c')];return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x52aa7a[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x11efc3,null))[_0x3f64('0x2b')](function(_0x2266d9){if(_0x2266d9){return db['sequelize']['transaction'](function(_0x50d3cf){return db[_0x3f64('0x59')][_0x3f64('0x2c')]({'where':{'userProfileId':_0x52aa7a[_0x3f64('0x47')]['id'],'sectionId':_[_0x3f64('0x40')](_0x5608a5,function(_0x39c8c2){return _0x39c8c2['sectionId'];})},'transaction':_0x50d3cf})[_0x3f64('0x2b')](function(){var _0x2314fb=_[_0x3f64('0x40')](_0x5608a5,function(_0x142442){_0x142442['userProfileId']=_0x52aa7a[_0x3f64('0x47')]['id'];return _0x142442;});var _0x2447cd=[];return BPromise[_0x3f64('0x53')](_0x2314fb,function(_0x539e90){return db[_0x3f64('0x59')][_0x3f64('0x4b')](_0x539e90,{'include':[{'model':db[_0x3f64('0x55')],'as':_0x3f64('0x58')}],'raw':!![],'transaction':_0x50d3cf})[_0x3f64('0x2b')](function(_0x1d6611){_0x2447cd[_0x3f64('0x5d')](_0x1d6611[_0x3f64('0x4e')]({'plain':!![]}));});})['then'](function(){return _0x2447cd;});});});}})['then'](function(_0x134e00){return _0x134e00;})[_0x3f64('0x2b')](respondWithResult(_0x11efc3,null))['catch'](handleError(_0x11efc3,null));};exports[_0x3f64('0x5e')]=function(_0x221df2,_0x366d55){var _0x4a0274;return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x221df2[_0x3f64('0x47')]['id']},'attributes':['id',_0x3f64('0x2f')]})[_0x3f64('0x2b')](handleEntityNotFound(_0x366d55,null))[_0x3f64('0x2b')](function(_0xc4f59f){if(_0xc4f59f){_0x4a0274=_0xc4f59f;return db[_0x3f64('0x59')][_0x3f64('0x2c')]({'where':{'userProfileId':_0x221df2[_0x3f64('0x47')]['id'],'sectionId':_0x221df2['query']['ids']}});}})['then'](function(){return _0x4a0274;})['then'](respondWithStatusCode(_0x366d55,null))[_0x3f64('0x46')](handleError(_0x366d55,null));};exports[_0x3f64('0x5f')]=function(_0x4821c7,_0x2dc3f4){var _0x2dea16=[];var _0xd369e6=[];return db[_0x3f64('0x59')]['findAll']({'where':{'userProfileId':_0x4821c7['params']['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x5375ac){_0x2dea16=_[_0x3f64('0x41')](_0x5375ac,function(_0x5870d4){return _0x5870d4['enabled']===0x1||_[_0x3f64('0x60')]([0x3eb,0x709],_0x5870d4[_0x3f64('0x61')]);});if(!_[_0x3f64('0x62')](_0x2dea16)){return _[_0x3f64('0x40')](_0x2dea16,function(_0x1c94d8){return _0x1c94d8['sectionId'];});}else{return;}})[_0x3f64('0x2b')](function(_0x3aa76b){if(_0x3aa76b)_0xd369e6=_0x3aa76b;if(_[_0x3f64('0x60')](_0xd369e6,0x64)){var _0x2814e1=_[_0x3f64('0x4a')](_0x2dea16,{'sectionId':0x64});return hasDefaultDashboard(_0x2814e1)[_0x3f64('0x2b')](function(_0x377cd5){return _[_0x3f64('0x40')](_0x2dea16,function(_0x278f81){if(_0x278f81[_0x3f64('0x61')]===0x64){_0x278f81['subsections']=_0x377cd5;}return _0x278f81;});});}else{return;}})['then'](function(_0x2ee21d){if(_0x2ee21d)_0x2dea16=_0x2ee21d;if(_[_0x3f64('0x60')](_0xd369e6,0x3eb)){var _0x5a7fd5=_['find'](_0x2dea16,{'sectionId':0x3eb});return getCustomDashboards(_0x5a7fd5)[_0x3f64('0x2b')](function(_0x439e65){return _[_0x3f64('0x40')](_0x2dea16,function(_0x1d29e3){if(_0x5a7fd5[_0x3f64('0x63')]){if(_0x1d29e3['sectionId']===0x3eb){_0x1d29e3[_0x3f64('0x64')]=_0x439e65;}}else{if(_0x1d29e3[_0x3f64('0x61')]===0x64){_0x1d29e3[_0x3f64('0x64')]=_0x439e65;}}return _0x1d29e3;});});}else{return;}})['then'](function(_0x5f405c){if(_0x5f405c)_0x2dea16=_0x5f405c;if(_['includes'](_0xd369e6,0x709)){var _0x3c8439=_['find'](_0x2dea16,{'sectionId':0x709});return getPlugins(_0x3c8439)['then'](function(_0x5003e5){if(_0x3c8439[_0x3f64('0x63')]){return _[_0x3f64('0x40')](_0x2dea16,function(_0x2eae86){if(_0x2eae86[_0x3f64('0x61')]===0x709){_0x2eae86['subsections']=_0x5003e5;}return _0x2eae86;});}else{var _0x48daaa={'sectionId':0x76c,'enabled':0x1,'subsections':_0x5003e5};var _0x2a2553=_['map'](_0x2dea16);_0x2a2553['push'](_0x48daaa);return _0x2a2553;}});}else{return;}})[_0x3f64('0x2b')](function(_0x551438){if(_0x551438)_0x2dea16=_0x551438;return _[_0x3f64('0x41')](_0x2dea16,[_0x3f64('0x63'),0x1]);})[_0x3f64('0x2b')](respondWithResult(_0x2dc3f4,null))[_0x3f64('0x46')](handleError(_0x2dc3f4,null));};function hasDefaultDashboard(_0xd02fb9){var _0x42608f=[0x65];return new BPromise(function(_0x2b5c3a,_0x5d8b44){try{if(_0xd02fb9[_0x3f64('0x54')]){_0x2b5c3a(_0x42608f);}else{return db[_0x3f64('0x55')][_0x3f64('0x65')]({'where':{'sectionId':_0xd02fb9['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x319d6b){_0x319d6b?_0x2b5c3a(_0x42608f):_0x2b5c3a();});}}catch(_0x48978d){_0x5d8b44(_0x48978d);}});}function getCustomDashboards(_0x55c84c){var _0x3d6758=[];return new BPromise(function(_0x5eee1b,_0x56deb6){try{if(_0x55c84c[_0x3f64('0x54')]){return db['Dashboard'][_0x3f64('0x44')]({'raw':!![]})[_0x3f64('0x2b')](function(_0x29f9e9){_0x29f9e9[_0x3f64('0x66')](function(_0x573fae){_0x3d6758[_0x3f64('0x5d')](_0x573fae['id']+0x1869f);});_0x5eee1b(_0x3d6758);});}else{return db[_0x3f64('0x55')][_0x3f64('0x44')]({'where':{'sectionId':_0x55c84c['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x234189){_0x234189[_0x3f64('0x66')](function(_0x45f376){_0x3d6758['push'](_0x45f376[_0x3f64('0x67')]+0x1869f);});_0x5eee1b(_0x3d6758);});}}catch(_0x5af0d8){_0x56deb6(_0x5af0d8);}});}function getPlugins(_0x36ef85){var _0x17aab8=[];return new BPromise(function(_0x547ee1,_0x4c94a8){try{if(_0x36ef85[_0x3f64('0x54')]){return db[_0x3f64('0x68')][_0x3f64('0x44')]({'raw':!![]})[_0x3f64('0x2b')](function(_0xf2faa9){_0xf2faa9['forEach'](function(_0x370825){_0x17aab8[_0x3f64('0x5d')](_0x370825['id']+0x15b38);});_0x547ee1(_0x17aab8);});}else{return db[_0x3f64('0x55')][_0x3f64('0x44')]({'where':{'sectionId':_0x36ef85['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x2430e7){_0x2430e7['forEach'](function(_0xa23c27){_0x17aab8[_0x3f64('0x5d')](_0xa23c27[_0x3f64('0x67')]+0x15b38);});_0x547ee1(_0x17aab8);});}}catch(_0x2580a7){_0x4c94a8(_0x2580a7);}});}exports['addResources']=function(_0x113f4a,_0x1a1d22){return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x113f4a[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x1a1d22,null))['then'](function(_0x33cbb4){if(_0x33cbb4){return db[_0x3f64('0x69')][_0x3f64('0x52')](function(_0x546ac2){return db[_0x3f64('0x59')][_0x3f64('0x44')]({'where':{'userProfileId':_0x113f4a['params']['id']},'attributes':['id'],'raw':!![]})[_0x3f64('0x2b')](function(_0x41c690){if(_0x41c690){return db[_0x3f64('0x59')]['destroy']({'where':{'userProfileId':_0x113f4a[_0x3f64('0x47')]['id'],'id':_[_0x3f64('0x40')](_0x41c690,function(_0x573871){return _0x573871['id'];})},'transaction':_0x546ac2});}})[_0x3f64('0x2b')](function(_0x38a87e){var _0x418d33=_[_0x3f64('0x40')](_0x113f4a[_0x3f64('0x4c')],function(_0x3c27a9){_0x3c27a9['userProfileId']=_0x113f4a['params']['id'];return _0x3c27a9;});return db[_0x3f64('0x59')][_0x3f64('0x6a')](_0x418d33,{'raw':!![],'transaction':_0x546ac2});})[_0x3f64('0x2b')](function(_0x58b0fc){var _0x23a926=_['filter'](_[_0x3f64('0x40')](_0x58b0fc,function(_0x511ed5){return _0x511ed5[_0x3f64('0x4e')]({'plain':!![]});}),{'includeAll':![]});if(_0x23a926){return db['UserProfileSection']['findAll']({'where':{'userProfileId':_0x113f4a[_0x3f64('0x47')]['id'],'sectionId':_['map'](_0x23a926,function(_0x51fd67){return _0x51fd67[_0x3f64('0x61')];})},'attributes':['id',_0x3f64('0x61')],'raw':!![]})[_0x3f64('0x2b')](function(_0x66bea8){var _0x475bd2=_[_0x3f64('0x40')](_0x113f4a[_0x3f64('0x4c')],function(_0x114391){_0x114391[_0x3f64('0x57')]=_0x113f4a['params']['id'];return _0x114391;});return db[_0x3f64('0x55')]['bulkCreate'](_0x475bd2,{'raw':!![],'transaction':_0x546ac2});});}})[_0x3f64('0x46')](handleError(_0x1a1d22,null));});}})[_0x3f64('0x2b')](function(_0x64a16b){var _0x30b4ac=_[_0x3f64('0x40')](_0x64a16b,function(_0x26a0cf){return _0x26a0cf[_0x3f64('0x4e')]({'plain':!![]});});})[_0x3f64('0x2b')](respondWithResult(_0x1a1d22,null))[_0x3f64('0x46')](handleError(_0x1a1d22,null));};exports['removeResources']=function(_0x2bb3ef,_0x17aa8e,_0xfd260d){return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x2bb3ef[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x17aa8e,null))['then'](function(_0xb3d6a8){if(_0xb3d6a8){return _0xb3d6a8['removeResources'](_0x2bb3ef[_0x3f64('0x36')][_0x3f64('0x6b')]);}})[_0x3f64('0x2b')](respondWithStatusCode(_0x17aa8e,null))[_0x3f64('0x46')](handleError(_0x17aa8e,null));};exports[_0x3f64('0x6c')]=function(_0x4677d3,_0x44a62c){var _0x59301b={};if(!_0x4677d3[_0x3f64('0x36')][_0x3f64('0x6d')])throw new Error(_0x3f64('0x6e'));if(!_0x4677d3[_0x3f64('0x36')][_0x3f64('0x3b')](_0x3f64('0x6f'))){_0x59301b[_0x3f64('0x26')]=qs[_0x3f64('0x26')](_0x4677d3[_0x3f64('0x36')]['limit']);_0x59301b[_0x3f64('0x25')]=qs['offset'](_0x4677d3[_0x3f64('0x36')][_0x3f64('0x25')]);}return db[_0x3f64('0x42')]['find']({'where':{'id':_0x4677d3['params']['id']}})[_0x3f64('0x2b')](function(_0x5eb816){if(!_0x5eb816)throw new Error(_0x3f64('0x70')+_0x4677d3[_0x3f64('0x47')]['id']);return db[_0x3f64('0x42')]['getResources'](_0x4677d3);})[_0x3f64('0x2b')](respondWithFilteredResult(_0x44a62c,_0x59301b))[_0x3f64('0x46')](handleError(_0x44a62c,null));};
\ No newline at end of file
+var _0x20d8=['update','describe','removeSections','ids','getSections','enabled','includes','subsections','push','forEach','resourceId','Plugin','addResources','bulkCreate','removeResources','getResources','section','Missing\x20section\x20parameter','hasOwnProperty','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./userProfile.socket','register','status','end','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','sendStatus','error','stack','name','send','index','map','UserProfile','model','keys','query','intersection','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','rawAttributes','includeAll','find','catch','create','clone','get','omit','createdAt','crudPermissions','body','updatedAt','sequelize','transaction','each','autoAssociation','UserProfileResource','sectionId','userProfileId','Resources','UserProfileSection'];(function(_0xe0da73,_0x29c19d){var _0x1352d9=function(_0x2b986b){while(--_0x2b986b){_0xe0da73['push'](_0xe0da73['shift']());}};_0x1352d9(++_0x29c19d);}(_0x20d8,0xee));var _0x820d=function(_0x10786c,_0x4a64c8){_0x10786c=_0x10786c-0x0;var _0x48c23f=_0x20d8[_0x10786c];return _0x48c23f;};'use strict';var emlformat=require(_0x820d('0x0'));var rimraf=require(_0x820d('0x1'));var zipdir=require(_0x820d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x820d('0x3'));var BPromise=require(_0x820d('0x4'));var Mustache=require(_0x820d('0x5'));var util=require(_0x820d('0x6'));var path=require(_0x820d('0x7'));var sox=require('sox');var csv=require(_0x820d('0x8'));var ejs=require(_0x820d('0x9'));var fs=require('fs');var fs_extra=require(_0x820d('0xa'));var _=require('lodash');var squel=require(_0x820d('0xb'));var crypto=require(_0x820d('0xc'));var jsforce=require(_0x820d('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x820d('0x8'));var querystring=require('querystring');var Papa=require(_0x820d('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x820d('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x820d('0x10'));var logger=require(_0x820d('0x11'))(_0x820d('0x12'));var utils=require('../../config/utils');var config=require(_0x820d('0x13'));var licenseUtil=require(_0x820d('0x14'));var db=require('../../mysqldb')['db'];config[_0x820d('0x15')]=_['defaults'](config[_0x820d('0x15')],{'host':_0x820d('0x16'),'port':0x18eb});var socket=require(_0x820d('0x17'))(new Redis(config[_0x820d('0x15')]));require(_0x820d('0x18'))[_0x820d('0x19')](socket);function respondWithStatusCode(_0x56b600,_0x528ccc){_0x528ccc=_0x528ccc||0xcc;return function(_0x1d7264){if(_0x1d7264){return _0x56b600['sendStatus'](_0x528ccc);}return _0x56b600[_0x820d('0x1a')](_0x528ccc)[_0x820d('0x1b')]();};}function respondWithResult(_0x455bfb,_0x5b5c83){_0x5b5c83=_0x5b5c83||0xc8;return function(_0x41549b){if(_0x41549b){return _0x455bfb[_0x820d('0x1a')](_0x5b5c83)[_0x820d('0x1c')](_0x41549b);}};}function respondWithFilteredResult(_0x1c0455,_0x4126fd){return function(_0x43d424){if(_0x43d424){var _0x1d65bb=typeof _0x4126fd[_0x820d('0x1d')]===_0x820d('0x1e')&&typeof _0x4126fd[_0x820d('0x1f')]===_0x820d('0x1e');var _0x29d8b5=_0x43d424[_0x820d('0x20')];var _0x35520c=_0x1d65bb?0x0:_0x4126fd[_0x820d('0x1d')];var _0x27d50d=_0x1d65bb?_0x43d424[_0x820d('0x20')]:_0x4126fd[_0x820d('0x1d')]+_0x4126fd[_0x820d('0x1f')];var _0x53dec9;if(_0x27d50d>=_0x29d8b5){_0x27d50d=_0x29d8b5;_0x53dec9=0xc8;}else{_0x53dec9=0xce;}_0x1c0455[_0x820d('0x1a')](_0x53dec9);return _0x1c0455[_0x820d('0x21')]('Content-Range',_0x35520c+'-'+_0x27d50d+'/'+_0x29d8b5)[_0x820d('0x1c')](_0x43d424);}return null;};}function patchUpdates(_0x2de355){return function(_0x118aec){try{jsonpatch[_0x820d('0x22')](_0x118aec,_0x2de355,!![]);}catch(_0x237856){return BPromise[_0x820d('0x23')](_0x237856);}return _0x118aec[_0x820d('0x24')]();};}function saveUpdates(_0x2beae7,_0x4650d0){return function(_0xc01843){if(_0xc01843){return _0xc01843['update'](_0x2beae7)[_0x820d('0x25')](function(_0x54c975){return _0x54c975;});}return null;};}function removeEntity(_0xa3bce,_0x16fbf0){return function(_0xa9fc92){if(_0xa9fc92){return _0xa9fc92[_0x820d('0x26')]()[_0x820d('0x25')](function(){_0xa3bce[_0x820d('0x1a')](0xcc)[_0x820d('0x1b')]();});}};}function handleEntityNotFound(_0x582010,_0x1b078a){return function(_0x284dae){if(!_0x284dae){_0x582010[_0x820d('0x27')](0x194);}return _0x284dae;};}function handleError(_0x537823,_0x42c235){_0x42c235=_0x42c235||0x1f4;return function(_0x5a0697){logger[_0x820d('0x28')](_0x5a0697[_0x820d('0x29')]);if(_0x5a0697[_0x820d('0x2a')]){delete _0x5a0697['name'];}_0x537823['status'](_0x42c235)[_0x820d('0x2b')](_0x5a0697);};}exports[_0x820d('0x2c')]=function(_0x4fab38,_0x5167d0){var _0x30ff53={},_0x215872={},_0x4cc5da={'count':0x0,'rows':[]};var _0x170fee=_[_0x820d('0x2d')](db[_0x820d('0x2e')]['rawAttributes'],function(_0x1e4b7f){return{'name':_0x1e4b7f['fieldName'],'type':_0x1e4b7f['type']['key']};});_0x215872[_0x820d('0x2f')]=_[_0x820d('0x2d')](_0x170fee,_0x820d('0x2a'));_0x215872['query']=_[_0x820d('0x30')](_0x4fab38[_0x820d('0x31')]);_0x215872['filters']=_[_0x820d('0x32')](_0x215872['model'],_0x215872[_0x820d('0x31')]);_0x30ff53[_0x820d('0x33')]=_[_0x820d('0x32')](_0x215872['model'],qs[_0x820d('0x34')](_0x4fab38['query'][_0x820d('0x34')]));_0x30ff53[_0x820d('0x33')]=_0x30ff53[_0x820d('0x33')][_0x820d('0x35')]?_0x30ff53[_0x820d('0x33')]:_0x215872['model'];if(!_0x4fab38[_0x820d('0x31')]['hasOwnProperty'](_0x820d('0x36'))){_0x30ff53[_0x820d('0x1f')]=qs['limit'](_0x4fab38[_0x820d('0x31')]['limit']);_0x30ff53[_0x820d('0x1d')]=qs['offset'](_0x4fab38['query'][_0x820d('0x1d')]);}_0x30ff53[_0x820d('0x37')]=qs[_0x820d('0x38')](_0x4fab38[_0x820d('0x31')]['sort']);_0x30ff53[_0x820d('0x39')]=qs[_0x820d('0x3a')](_['pick'](_0x4fab38['query'],_0x215872[_0x820d('0x3a')]),_0x170fee);if(_0x4fab38[_0x820d('0x31')][_0x820d('0x3b')]){_0x30ff53[_0x820d('0x39')]=_[_0x820d('0x3c')](_0x30ff53[_0x820d('0x39')],{'$or':_[_0x820d('0x2d')](_0x170fee,function(_0x51aa6c){if(_0x51aa6c['type']!==_0x820d('0x3d')){var _0xa3adab={};_0xa3adab[_0x51aa6c[_0x820d('0x2a')]]={'$like':'%'+_0x4fab38[_0x820d('0x31')]['filter']+'%'};return _0xa3adab;}})});}_0x30ff53=_[_0x820d('0x3c')]({},_0x30ff53,_0x4fab38[_0x820d('0x3e')]);var _0x2b2cba={'where':_0x30ff53[_0x820d('0x39')]};return db[_0x820d('0x2e')][_0x820d('0x20')](_0x2b2cba)['then'](function(_0xc01378){_0x4cc5da['count']=_0xc01378;if(_0x4fab38[_0x820d('0x31')]['includeAll']){_0x30ff53[_0x820d('0x3f')]=[{'all':!![]}];}return db[_0x820d('0x2e')][_0x820d('0x40')](_0x30ff53);})['then'](function(_0x14fc29){_0x4cc5da[_0x820d('0x41')]=_0x14fc29;return _0x4cc5da;})['then'](respondWithFilteredResult(_0x5167d0,_0x30ff53))['catch'](handleError(_0x5167d0,null));};exports[_0x820d('0x42')]=function(_0x4f8756,_0x22974e){var _0x28ba53={'raw':![],'where':{'id':_0x4f8756[_0x820d('0x43')]['id']}},_0x55d820={};_0x55d820[_0x820d('0x2f')]=_[_0x820d('0x30')](db[_0x820d('0x2e')][_0x820d('0x44')]);_0x55d820[_0x820d('0x31')]=_['keys'](_0x4f8756[_0x820d('0x31')]);_0x55d820[_0x820d('0x3a')]=_[_0x820d('0x32')](_0x55d820['model'],_0x55d820[_0x820d('0x31')]);_0x28ba53[_0x820d('0x33')]=_[_0x820d('0x32')](_0x55d820['model'],qs[_0x820d('0x34')](_0x4f8756[_0x820d('0x31')][_0x820d('0x34')]));_0x28ba53[_0x820d('0x33')]=_0x28ba53[_0x820d('0x33')]['length']?_0x28ba53[_0x820d('0x33')]:_0x55d820[_0x820d('0x2f')];if(_0x4f8756[_0x820d('0x31')][_0x820d('0x45')]){_0x28ba53[_0x820d('0x3f')]=[{'all':!![]}];}_0x28ba53=_[_0x820d('0x3c')]({},_0x28ba53,_0x4f8756['options']);return db[_0x820d('0x2e')][_0x820d('0x46')](_0x28ba53)[_0x820d('0x25')](handleEntityNotFound(_0x22974e,null))[_0x820d('0x25')](respondWithResult(_0x22974e,null))[_0x820d('0x47')](handleError(_0x22974e,null));};exports[_0x820d('0x48')]=function(_0x5005a8,_0x27b340){return db[_0x820d('0x2e')][_0x820d('0x48')](_0x5005a8['body'],{})['then'](respondWithResult(_0x27b340,0xc9))[_0x820d('0x47')](handleError(_0x27b340,null));};exports[_0x820d('0x49')]=function(_0x28d25a,_0x2f7a4d){var _0x5eb9c2={'where':{'id':_0x28d25a[_0x820d('0x43')]['id']}},_0x11a1f4={};_0x11a1f4[_0x820d('0x2f')]=_[_0x820d('0x30')](db[_0x820d('0x2e')][_0x820d('0x44')]);_0x5eb9c2['attributes']=_[_0x820d('0x32')](_0x11a1f4[_0x820d('0x2f')],qs[_0x820d('0x34')](_0x28d25a['query'][_0x820d('0x34')]));_0x5eb9c2[_0x820d('0x33')]=_0x5eb9c2['attributes']['length']?_0x5eb9c2['attributes']:_0x11a1f4[_0x820d('0x2f')];if(_0x28d25a[_0x820d('0x31')][_0x820d('0x45')]){_0x5eb9c2[_0x820d('0x3f')]=[{'all':!![]}];}_0x5eb9c2=_['merge']({},_0x5eb9c2,_0x28d25a['options']);return db[_0x820d('0x2e')][_0x820d('0x46')](_0x5eb9c2)[_0x820d('0x25')](handleEntityNotFound(_0x2f7a4d,null))[_0x820d('0x25')](function(_0x371514){if(_0x371514){var _0x5f1d41=_0x371514[_0x820d('0x4a')]({'plain':!![]});_0x5f1d41=qs[_0x820d('0x4b')](_0x5f1d41,['id',_0x820d('0x4c'),'updatedAt',_0x820d('0x4d')]);_0x28d25a['body']=_[_0x820d('0x4b')](_0x28d25a[_0x820d('0x4e')],['id',_0x820d('0x4c'),_0x820d('0x4f')]);return db[_0x820d('0x50')][_0x820d('0x51')](function(_0xac26c6){return db[_0x820d('0x2e')]['create'](_[_0x820d('0x3c')](_0x5f1d41,_0x28d25a['body']),{'include':_0x28d25a[_0x820d('0x31')][_0x820d('0x45')]?[{'all':!![]}]:undefined,'transaction':_0xac26c6})['then'](function(_0x2470d9){var _0x93ec68=_0x2470d9[_0x820d('0x4a')]({'plain':!![]});return db['UserProfileSection']['findAll']({'where':{'userProfileId':_0x28d25a[_0x820d('0x43')]['id']},'raw':!![]})[_0x820d('0x25')](function(_0x2d763b){if(_0x2d763b){return BPromise[_0x820d('0x52')](_0x2d763b,function(_0x4beacc){return new BPromise(function(_0xca554f,_0x1e3001){if(_0x4beacc[_0x820d('0x53')]===null||_0x4beacc['autoAssociation']===0x1)_0xca554f(null);return db[_0x820d('0x54')][_0x820d('0x40')]({'where':{'sectionId':_0x4beacc['id']},'raw':!![]})[_0x820d('0x25')](function(_0x474435){var _0x526008=_['map'](_0x474435,function(_0x27727a){return qs[_0x820d('0x4b')](_0x27727a,['id',_0x820d('0x4c'),_0x820d('0x4f'),_0x820d('0x55')]);});_0xca554f(_0x526008);})[_0x820d('0x47')](function(_0x57ec56){_0x1e3001(_0x57ec56);});})[_0x820d('0x25')](function(_0x32a2e7){var _0x17ec56=qs[_0x820d('0x4b')](_0x4beacc,['id',_0x820d('0x4c'),_0x820d('0x4f')]);_0x17ec56[_0x820d('0x56')]=_0x93ec68['id'];if(_0x32a2e7)_0x17ec56[_0x820d('0x57')]=_0x32a2e7;return _0x17ec56;})[_0x820d('0x25')](function(_0x3fa09b){return db[_0x820d('0x58')][_0x820d('0x48')](_0x3fa09b,{'include':[{'model':db[_0x820d('0x54')],'as':_0x820d('0x57')}],'raw':!![],'transaction':_0xac26c6});});})[_0x820d('0x25')](function(){return _0x93ec68;});}});});});}})['then'](respondWithResult(_0x2f7a4d,0xc9))[_0x820d('0x47')](handleError(_0x2f7a4d,null));};exports[_0x820d('0x59')]=function(_0x44fbec,_0x15128a){if(_0x44fbec[_0x820d('0x4e')]['id']){delete _0x44fbec[_0x820d('0x4e')]['id'];}return db[_0x820d('0x2e')][_0x820d('0x46')]({'where':{'id':_0x44fbec[_0x820d('0x43')]['id']}})[_0x820d('0x25')](handleEntityNotFound(_0x15128a,null))[_0x820d('0x25')](saveUpdates(_0x44fbec[_0x820d('0x4e')],null))['then'](respondWithResult(_0x15128a,null))[_0x820d('0x47')](handleError(_0x15128a,null));};exports[_0x820d('0x26')]=function(_0x3512ca,_0x17f68d){return db['UserProfile'][_0x820d('0x46')]({'where':{'id':_0x3512ca[_0x820d('0x43')]['id']}})['then'](handleEntityNotFound(_0x17f68d,null))[_0x820d('0x25')](removeEntity(_0x17f68d,null))['catch'](handleError(_0x17f68d,null));};exports[_0x820d('0x5a')]=function(_0x23c8f6,_0x35ca09){return db[_0x820d('0x2e')][_0x820d('0x5a')]()[_0x820d('0x25')](respondWithResult(_0x35ca09,null))['catch'](handleError(_0x35ca09,null));};exports['addSections']=function(_0x22214f,_0x47e645){var _0x2d54be=_0x22214f[_0x820d('0x4e')];return db[_0x820d('0x2e')]['find']({'where':{'id':_0x22214f[_0x820d('0x43')]['id']}})[_0x820d('0x25')](handleEntityNotFound(_0x47e645,null))[_0x820d('0x25')](function(_0x123ccb){if(_0x123ccb){return db[_0x820d('0x50')][_0x820d('0x51')](function(_0x138f4c){return db[_0x820d('0x58')][_0x820d('0x26')]({'where':{'userProfileId':_0x22214f['params']['id'],'sectionId':_[_0x820d('0x2d')](_0x2d54be,function(_0x2e9f66){return _0x2e9f66['sectionId'];})},'transaction':_0x138f4c})['then'](function(){var _0x26a22d=_[_0x820d('0x2d')](_0x2d54be,function(_0x43939f){_0x43939f[_0x820d('0x56')]=_0x22214f[_0x820d('0x43')]['id'];return _0x43939f;});var _0x510d05=[];return BPromise[_0x820d('0x52')](_0x26a22d,function(_0x120f4c){return db[_0x820d('0x58')]['create'](_0x120f4c,{'include':[{'model':db[_0x820d('0x54')],'as':_0x820d('0x57')}],'raw':!![],'transaction':_0x138f4c})[_0x820d('0x25')](function(_0x37bec6){_0x510d05['push'](_0x37bec6[_0x820d('0x4a')]({'plain':!![]}));});})[_0x820d('0x25')](function(){return _0x510d05;});});});}})[_0x820d('0x25')](function(_0x5cf5c1){return _0x5cf5c1;})[_0x820d('0x25')](respondWithResult(_0x47e645,null))[_0x820d('0x47')](handleError(_0x47e645,null));};exports[_0x820d('0x5b')]=function(_0x414f42,_0x2c4e40){var _0x3c0f60;return db['UserProfile'][_0x820d('0x46')]({'where':{'id':_0x414f42[_0x820d('0x43')]['id']},'attributes':['id',_0x820d('0x2a')]})[_0x820d('0x25')](handleEntityNotFound(_0x2c4e40,null))[_0x820d('0x25')](function(_0x2886d9){if(_0x2886d9){_0x3c0f60=_0x2886d9;return db['UserProfileSection']['destroy']({'where':{'userProfileId':_0x414f42['params']['id'],'sectionId':_0x414f42[_0x820d('0x31')][_0x820d('0x5c')]}});}})['then'](function(){return _0x3c0f60;})[_0x820d('0x25')](respondWithStatusCode(_0x2c4e40,null))[_0x820d('0x47')](handleError(_0x2c4e40,null));};exports[_0x820d('0x5d')]=function(_0x14e788,_0x407bfa){var _0x5703fb=[];var _0x14f16f=[];return db[_0x820d('0x58')]['findAll']({'where':{'userProfileId':_0x14e788[_0x820d('0x43')]['id']},'raw':!![]})[_0x820d('0x25')](function(_0x4c94e4){_0x5703fb=_[_0x820d('0x3b')](_0x4c94e4,function(_0xaf89bb){return _0xaf89bb[_0x820d('0x5e')]===0x1||_[_0x820d('0x5f')]([0x3eb,0x709],_0xaf89bb[_0x820d('0x55')]);});if(!_['isEmpty'](_0x5703fb)){return _['map'](_0x5703fb,function(_0x2b466c){return _0x2b466c[_0x820d('0x55')];});}else{return;}})[_0x820d('0x25')](function(_0x115d62){if(_0x115d62)_0x14f16f=_0x115d62;if(_[_0x820d('0x5f')](_0x14f16f,0x64)){var _0x563ef4=_[_0x820d('0x46')](_0x5703fb,{'sectionId':0x64});return hasDefaultDashboard(_0x563ef4)[_0x820d('0x25')](function(_0x2ca405){return _['map'](_0x5703fb,function(_0x101a1f){if(_0x101a1f[_0x820d('0x55')]===0x64){_0x101a1f[_0x820d('0x60')]=_0x2ca405;}return _0x101a1f;});});}else{return;}})['then'](function(_0x3b5203){if(_0x3b5203)_0x5703fb=_0x3b5203;if(_['includes'](_0x14f16f,0x3eb)){var _0x4907a7=_[_0x820d('0x46')](_0x5703fb,{'sectionId':0x3eb});return getCustomDashboards(_0x4907a7)[_0x820d('0x25')](function(_0x110187){return _[_0x820d('0x2d')](_0x5703fb,function(_0x7d3883){if(_0x4907a7[_0x820d('0x5e')]){if(_0x7d3883['sectionId']===0x3eb){_0x7d3883[_0x820d('0x60')]=_0x110187;}}else{if(_0x7d3883['sectionId']===0x64){_0x7d3883[_0x820d('0x60')]=_0x110187;}}return _0x7d3883;});});}else{return;}})['then'](function(_0x592083){if(_0x592083)_0x5703fb=_0x592083;if(_[_0x820d('0x5f')](_0x14f16f,0x709)){var _0x33e3b2=_[_0x820d('0x46')](_0x5703fb,{'sectionId':0x709});return getPlugins(_0x33e3b2)[_0x820d('0x25')](function(_0x34179a){if(_0x33e3b2[_0x820d('0x5e')]){return _[_0x820d('0x2d')](_0x5703fb,function(_0x217f29){if(_0x217f29[_0x820d('0x55')]===0x709){_0x217f29[_0x820d('0x60')]=_0x34179a;}return _0x217f29;});}else{var _0x497c35={'sectionId':0x76c,'enabled':0x1,'subsections':_0x34179a};var _0x23f6c9=_[_0x820d('0x2d')](_0x5703fb);_0x23f6c9[_0x820d('0x61')](_0x497c35);return _0x23f6c9;}});}else{return;}})[_0x820d('0x25')](function(_0xe0d31a){if(_0xe0d31a)_0x5703fb=_0xe0d31a;return _[_0x820d('0x3b')](_0x5703fb,[_0x820d('0x5e'),0x1]);})[_0x820d('0x25')](respondWithResult(_0x407bfa,null))[_0x820d('0x47')](handleError(_0x407bfa,null));};function hasDefaultDashboard(_0x39dca5){var _0x1c2694=[0x65];return new BPromise(function(_0x4bd3ff,_0x1f93da){try{if(_0x39dca5[_0x820d('0x53')]){_0x4bd3ff(_0x1c2694);}else{return db[_0x820d('0x54')]['findOne']({'where':{'sectionId':_0x39dca5['id']},'raw':!![]})['then'](function(_0x2074b6){_0x2074b6?_0x4bd3ff(_0x1c2694):_0x4bd3ff();});}}catch(_0x659a19){_0x1f93da(_0x659a19);}});}function getCustomDashboards(_0x11895f){var _0x238bb2=[];return new BPromise(function(_0x4e5865,_0x3417e4){try{if(_0x11895f[_0x820d('0x53')]){return db['Dashboard'][_0x820d('0x40')]({'raw':!![]})[_0x820d('0x25')](function(_0x469fa5){_0x469fa5[_0x820d('0x62')](function(_0x38f8e9){_0x238bb2[_0x820d('0x61')](_0x38f8e9['id']+0x1869f);});_0x4e5865(_0x238bb2);});}else{return db[_0x820d('0x54')][_0x820d('0x40')]({'where':{'sectionId':_0x11895f['id']},'raw':!![]})[_0x820d('0x25')](function(_0x761e12){_0x761e12[_0x820d('0x62')](function(_0x5a7537){_0x238bb2[_0x820d('0x61')](_0x5a7537[_0x820d('0x63')]+0x1869f);});_0x4e5865(_0x238bb2);});}}catch(_0x594d13){_0x3417e4(_0x594d13);}});}function getPlugins(_0x55d333){var _0x2a4c89=[];return new BPromise(function(_0x4ba933,_0x43c028){try{if(_0x55d333[_0x820d('0x53')]){return db[_0x820d('0x64')][_0x820d('0x40')]({'raw':!![]})[_0x820d('0x25')](function(_0x251b07){_0x251b07[_0x820d('0x62')](function(_0x37d4e6){_0x2a4c89['push'](_0x37d4e6['id']+0x15b38);});_0x4ba933(_0x2a4c89);});}else{return db[_0x820d('0x54')][_0x820d('0x40')]({'where':{'sectionId':_0x55d333['id']},'raw':!![]})[_0x820d('0x25')](function(_0x51330f){_0x51330f[_0x820d('0x62')](function(_0x5cb71a){_0x2a4c89[_0x820d('0x61')](_0x5cb71a[_0x820d('0x63')]+0x15b38);});_0x4ba933(_0x2a4c89);});}}catch(_0x44f6a3){_0x43c028(_0x44f6a3);}});}exports[_0x820d('0x65')]=function(_0x331a89,_0x8b8443){return db[_0x820d('0x2e')][_0x820d('0x46')]({'where':{'id':_0x331a89['params']['id']}})[_0x820d('0x25')](handleEntityNotFound(_0x8b8443,null))[_0x820d('0x25')](function(_0x50dd11){if(_0x50dd11){return db[_0x820d('0x50')]['transaction'](function(_0xe270a9){return db[_0x820d('0x58')]['findAll']({'where':{'userProfileId':_0x331a89[_0x820d('0x43')]['id']},'attributes':['id'],'raw':!![]})['then'](function(_0x20e4d4){if(_0x20e4d4){return db[_0x820d('0x58')][_0x820d('0x26')]({'where':{'userProfileId':_0x331a89[_0x820d('0x43')]['id'],'id':_[_0x820d('0x2d')](_0x20e4d4,function(_0x4cf48e){return _0x4cf48e['id'];})},'transaction':_0xe270a9});}})[_0x820d('0x25')](function(_0x15cafe){var _0x5608eb=_[_0x820d('0x2d')](_0x331a89[_0x820d('0x4e')],function(_0x1d5d2d){_0x1d5d2d[_0x820d('0x56')]=_0x331a89[_0x820d('0x43')]['id'];return _0x1d5d2d;});return db[_0x820d('0x58')]['bulkCreate'](_0x5608eb,{'raw':!![],'transaction':_0xe270a9});})['then'](function(_0x422cd8){var _0x5cf942=_[_0x820d('0x3b')](_[_0x820d('0x2d')](_0x422cd8,function(_0x3c0f72){return _0x3c0f72[_0x820d('0x4a')]({'plain':!![]});}),{'includeAll':![]});if(_0x5cf942){return db[_0x820d('0x58')]['findAll']({'where':{'userProfileId':_0x331a89[_0x820d('0x43')]['id'],'sectionId':_[_0x820d('0x2d')](_0x5cf942,function(_0x103e00){return _0x103e00['sectionId'];})},'attributes':['id','sectionId'],'raw':!![]})[_0x820d('0x25')](function(_0x18dbac){var _0x39c5dd=_[_0x820d('0x2d')](_0x331a89[_0x820d('0x4e')],function(_0xcfde3c){_0xcfde3c[_0x820d('0x56')]=_0x331a89['params']['id'];return _0xcfde3c;});return db['UserProfileResource'][_0x820d('0x66')](_0x39c5dd,{'raw':!![],'transaction':_0xe270a9});});}})[_0x820d('0x47')](handleError(_0x8b8443,null));});}})[_0x820d('0x25')](function(_0x2bb8cb){var _0x14b291=_[_0x820d('0x2d')](_0x2bb8cb,function(_0x1cd54a){return _0x1cd54a['get']({'plain':!![]});});})[_0x820d('0x25')](respondWithResult(_0x8b8443,null))['catch'](handleError(_0x8b8443,null));};exports[_0x820d('0x67')]=function(_0x24229e,_0x50f77f,_0x1eb962){return db['UserProfile'][_0x820d('0x46')]({'where':{'id':_0x24229e[_0x820d('0x43')]['id']}})[_0x820d('0x25')](handleEntityNotFound(_0x50f77f,null))[_0x820d('0x25')](function(_0x577b8d){if(_0x577b8d){return _0x577b8d['removeResources'](_0x24229e[_0x820d('0x31')][_0x820d('0x5c')]);}})[_0x820d('0x25')](respondWithStatusCode(_0x50f77f,null))[_0x820d('0x47')](handleError(_0x50f77f,null));};exports[_0x820d('0x68')]=function(_0x214913,_0x2c67ba){var _0x30171a={};if(!_0x214913[_0x820d('0x31')][_0x820d('0x69')])throw new Error(_0x820d('0x6a'));if(!_0x214913['query'][_0x820d('0x6b')](_0x820d('0x36'))){_0x30171a[_0x820d('0x1f')]=qs['limit'](_0x214913[_0x820d('0x31')]['limit']);_0x30171a[_0x820d('0x1d')]=qs[_0x820d('0x1d')](_0x214913[_0x820d('0x31')][_0x820d('0x1d')]);}return db[_0x820d('0x2e')]['find']({'where':{'id':_0x214913[_0x820d('0x43')]['id']}})[_0x820d('0x25')](function(_0xf8efea){if(!_0xf8efea)throw new Error(_0x820d('0x6c')+_0x214913[_0x820d('0x43')]['id']);return db[_0x820d('0x2e')][_0x820d('0x68')](_0x214913);})[_0x820d('0x25')](respondWithFilteredResult(_0x2c67ba,_0x30171a))[_0x820d('0x47')](handleError(_0x2c67ba,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf55=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save'];(function(_0x527a50,_0x11ce4a){var _0x41ad65=function(_0x44da90){while(--_0x44da90){_0x527a50['push'](_0x527a50['shift']());}};_0x41ad65(++_0x11ce4a);}(_0xdf55,0x83));var _0x5df5=function(_0x1f5236,_0xea7afc){_0x1f5236=_0x1f5236-0x0;var _0x2efe18=_0xdf55[_0x1f5236];return _0x2efe18;};'use strict';var EventEmitter=require(_0x5df5('0x0'));var UserProfile=require(_0x5df5('0x1'))['db']['UserProfile'];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x5df5('0x2')](0x0);var events={'afterCreate':_0x5df5('0x3'),'afterUpdate':'update','afterDestroy':_0x5df5('0x4')};function emitEvent(_0x773e15){return function(_0x381a4c,_0x521007,_0x289af4){UserProfileEvents[_0x5df5('0x5')](_0x773e15+':'+_0x381a4c['id'],_0x381a4c);UserProfileEvents[_0x5df5('0x5')](_0x773e15,_0x381a4c);_0x289af4(null);};}for(var e in events){if(events[_0x5df5('0x6')](e)){var event=events[e];UserProfile[_0x5df5('0x7')](e,emitEvent(event));}}module[_0x5df5('0x8')]=UserProfileEvents;
\ No newline at end of file
+var _0x7524=['emit','hasOwnProperty','hook','../../mysqldb','UserProfile','save','update'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7524,0xce));var _0x4752=function(_0x1d4504,_0x2982e6){_0x1d4504=_0x1d4504-0x0;var _0x3f5ba9=_0x7524[_0x1d4504];return _0x3f5ba9;};'use strict';var EventEmitter=require('events');var UserProfile=require(_0x4752('0x0'))['db'][_0x4752('0x1')];var UserProfileEvents=new EventEmitter();UserProfileEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x4752('0x2'),'afterUpdate':_0x4752('0x3'),'afterDestroy':'remove'};function emitEvent(_0x599e2b){return function(_0x3eae1a,_0x4d5e05,_0x3884b9){UserProfileEvents[_0x4752('0x4')](_0x599e2b+':'+_0x3eae1a['id'],_0x3eae1a);UserProfileEvents[_0x4752('0x4')](_0x599e2b,_0x3eae1a);_0x3884b9(null);};}for(var e in events){if(events[_0x4752('0x5')](e)){var event=events[e];UserProfile[_0x4752('0x6')](e,emitEvent(event));}}module['exports']=UserProfileEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['FaxQueue','faxaccounts','inboundroutes','internalroutes','outboundroutes','contexts','VoiceContext','voicemails','voicerecordings','VoiceRecording','membername','User','agent','Telephones','role','telephone','VoiceQueues','VoiceQueue','inbound','QueueCampaigns','queue','outbound','musiconholds','VoiceMusicOnHold','chanspies','VoiceChanSpy','VoicePrefix','ivrcampaigns','Campaign','MailQueue','mailaccounts','MailAccount','mailsubstatuses','OpenchannelQueue','OpenchannelAccount','smsqueues','SmsAccount','whatsappqueues','WhatsappQueue','teams','Team','queuecampaigns','users','telephones','Users','admin','Agents','ZendeskAccount','SalesforceAccount','FreshdeskAccount','sugarcrmaccounts','SugarcrmAccount','deskaccounts','DeskAccount','zohoaccounts','ZohoAccount','vtigeraccounts','CannedAnswer','Disposition','customdashboards','intervals','Interval','pauses','Pause','scheduler','Sound','tags','Tag','templates','Template','triggers','Trigger','trunks','Trunk','variables','Variable','plugins','Plugin','reportId','metrics','AnalyticMetric','charAt','toUpperCase','slice','Sequelize','QueryTypes','SELECT','select','ui.','ui.createdAt','user_has_','where','ui.UserId\x20=\x20?','query','toString','OpenTabs','define','UserProfile','user_profiles','section','mergeResources','isEmpty','length','push','UserProfileSection','params','all','ignore','find','autoAssociation','rawAttributes','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','offset','order','sort','pick','merge','key','VIRTUAL','foreignKey','options','includeAll','include','forEach','reportType','default','custom','count','Tags','tag','ThroughTags','color','rows','true','chat','dataValues','sms','fax','whatsapp','./userProfile.attributes','../../components/parsers/qs','squel','exports','models','filter','field','value','findAll','then','associatedResources','map','catch','model','name','AnalyticExtractedReport','type','squareprojects','childModel','SquareProject','odbc','SquareOdbc','squarerecordings','parentSections','SquareProjects','JscriptyProject','CmContact','Lists','lists','CmList','CmCustomField','chatqueues','chatwebsites','faxqueues'];(function(_0xbfcc82,_0x173126){var _0x4bf066=function(_0x5791ad){while(--_0x5791ad){_0xbfcc82['push'](_0xbfcc82['shift']());}};_0x4bf066(++_0x173126);}(_0x1261,0x144));var _0x1126=function(_0x24431a,_0x52459a){_0x24431a=_0x24431a-0x0;var _0x454ec7=_0x1261[_0x24431a];return _0x454ec7;};'use strict';var _=require('lodash');var attributes=require(_0x1126('0x0'));var qs=require(_0x1126('0x1'));var squel=require(_0x1126('0x2'));module[_0x1126('0x3')]=function(_0x39b786){var _0x350f3a=_0x39b786[_0x1126('0x4')];function _0x4245ca(_0x21a480,_0x75a851){return new Promise(function(_0x5a2189,_0x5c68c8){if(!_0x75a851)return _0x5a2189(null);var _0x40ba58=_0x75a851[_0x1126('0x5')]?{[_0x75a851['filter'][_0x1126('0x6')]]:_0x75a851[_0x1126('0x5')][_0x1126('0x7')]}:undefined;return _0x350f3a[_0x21a480][_0x1126('0x8')]({'where':_0x40ba58,'raw':!![]})[_0x1126('0x9')](function(_0x59cfa1){_0x75a851[_0x1126('0xa')]=_[_0x1126('0xb')](_0x59cfa1,'id');_0x5a2189(_0x75a851);})[_0x1126('0xc')](function(_0x5e72e2){_0x5c68c8(_0x5e72e2);});});}function _0x34571c(_0x5d581b,_0x52ef15){return new Promise(function(_0x15c071,_0x561b93){var _0x15e89b=_0x5d581b[_0x1126('0x5')]?{[_0x5d581b[_0x1126('0x5')][_0x1126('0x6')]]:_0x5d581b[_0x1126('0x5')][_0x1126('0x7')]}:undefined;return _0x350f3a[_0x5d581b[_0x1126('0xd')]][_0x1126('0x8')]({'where':_0x15e89b,'raw':!![]})[_0x1126('0x9')](function(_0x53a8f0){_0x52ef15['associatedResources']=_[_0x1126('0xb')](_0x53a8f0,function(_0x154e20){return _0x154e20[_0x1126('0xe')];});_0x15c071(_0x52ef15);})['catch'](function(_0x45149c){_0x561b93(_0x45149c);});});}function _0x4794a7(_0x35fe9f,_0x42f379,_0x257b5f){if(!_0x42f379)return Promise['resolve'](null);return new Promise(function(_0x245cd7,_0x1695f6){return _0x350f3a['UserProfileResource']['findAll']({'where':{'sectionId':_0x42f379['id']},'raw':!![]})[_0x1126('0x9')](function(_0x2b2487){if(_0x35fe9f['field']&&_0x35fe9f['field']!=='id'){_0x42f379[_0x1126('0xa')]=_['map'](_0x2b2487,function(_0x22ed37){return _0x22ed37[_0x35fe9f[_0x1126('0x6')]];});}else{if(_0x257b5f===_0x1126('0xf')){_0x42f379['associatedResources']=_[_0x1126('0xb')](_0x2b2487,function(_0x49d209){return{'id':_0x49d209['resourceId'],'type':_0x49d209[_0x1126('0x10')]};});}else{_0x42f379[_0x1126('0xa')]=_[_0x1126('0xb')](_0x2b2487,function(_0x36d254){return _0x36d254['resourceId'];});}}_0x245cd7(_0x42f379);})[_0x1126('0xc')](function(_0x477e6a){_0x1695f6(_0x477e6a);});});}function _0x48a08d(_0x2175fa,_0x59cd8e){var _0x529dd9={'parentSections':[]};switch(_0x2175fa['toLowerCase']()){case _0x1126('0x11'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x13');break;case _0x1126('0x14'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x15');break;case _0x1126('0x16'):_0x529dd9[_0x1126('0x12')]='SquareRecording';_0x529dd9[_0x1126('0x17')]=[{'name':_0x1126('0x18'),'field':_0x1126('0xe'),'foreignKey':'projectName'}];break;case'projects':_0x529dd9[_0x1126('0x12')]=_0x1126('0x19');break;case'contacts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x1a');_0x529dd9['parentSections']=[{'name':_0x1126('0x1b'),'field':'id','foreignKey':'ListId'}];break;case _0x1126('0x1c'):_0x529dd9['childModel']=_0x1126('0x1d');break;case'companies':_0x529dd9[_0x1126('0x12')]='CmCompany';break;case'globalcustomfields':_0x529dd9['childModel']=_0x1126('0x1e');break;case _0x1126('0x1f'):_0x529dd9[_0x1126('0x12')]='ChatQueue';break;case _0x1126('0x20'):_0x529dd9[_0x1126('0x12')]='ChatWebsite';break;case _0x1126('0x21'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x22');break;case _0x1126('0x23'):_0x529dd9['childModel']='FaxAccount';break;case _0x1126('0x24'):case _0x1126('0x25'):case _0x1126('0x26'):_0x529dd9[_0x1126('0x12')]='VoiceExtension';break;case _0x1126('0x27'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x28');break;case _0x1126('0x29'):_0x529dd9[_0x1126('0x12')]='VoiceMail';break;case _0x1126('0x2a'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x2b');_0x529dd9[_0x1126('0x17')]=[{'name':'Agents','field':'name','foreignKey':_0x1126('0x2c'),'model':_0x1126('0x2d'),'filter':{'field':'role','value':[_0x1126('0x2e')]}},{'name':_0x1126('0x2f'),'field':_0x1126('0xe'),'foreignKey':'membername','model':'User','filter':{'field':_0x1126('0x30'),'value':[_0x1126('0x31')]}},{'name':_0x1126('0x32'),'field':_0x1126('0xe'),'foreignKey':'queue','model':_0x1126('0x33'),'filter':{'field':'type','value':[_0x1126('0x34')]}},{'name':_0x1126('0x35'),'field':_0x1126('0xe'),'foreignKey':_0x1126('0x36'),'model':_0x1126('0x33'),'filter':{'field':'type','value':[_0x1126('0x37')]}}];break;case _0x1126('0x38'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x39');break;case _0x1126('0x3a'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x3b');break;case'voiceprefixes':_0x529dd9[_0x1126('0x12')]=_0x1126('0x3c');break;case _0x1126('0x3d'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x3e');break;case'mailqueues':_0x529dd9['childModel']=_0x1126('0x3f');break;case _0x1126('0x40'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x41');break;case _0x1126('0x42'):_0x529dd9[_0x1126('0x12')]='MailSubstatus';break;case'openchannelqueues':_0x529dd9['childModel']=_0x1126('0x43');break;case'openchannelaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x44');break;case _0x1126('0x45'):_0x529dd9[_0x1126('0x12')]='SmsQueue';break;case'smsaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x46');break;case _0x1126('0x47'):_0x529dd9['childModel']=_0x1126('0x48');break;case'whatsappaccounts':_0x529dd9[_0x1126('0x12')]='WhatsappAccount';break;case _0x1126('0x49'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x4a');break;case'voicequeues':case _0x1126('0x4b'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x33');if(_0x59cd8e){_0x529dd9['parentSections']=[{'name':'VoiceQueues'},{'name':'QueueCampaigns'}];}break;case _0x1126('0x4c'):case'agents':case _0x1126('0x4d'):_0x529dd9['childModel']=_0x1126('0x2d');if(_0x59cd8e){_0x529dd9[_0x1126('0x17')]=[{'name':_0x1126('0x4e'),'filter':{'field':_0x1126('0x30'),'value':[_0x1126('0x4f'),'user']},'ignore':!![]},{'name':_0x1126('0x50')},{'name':_0x1126('0x2f')}];}break;case'zendeskaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x51');break;case'salesforceaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x52');break;case'freshdeskaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x53');break;case _0x1126('0x54'):_0x529dd9['childModel']=_0x1126('0x55');break;case _0x1126('0x56'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x57');break;case _0x1126('0x58'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x59');break;case _0x1126('0x5a'):_0x529dd9['childModel']=_0x1126('0x2d');break;case'cannedanswers':_0x529dd9[_0x1126('0x12')]=_0x1126('0x5b');break;case'dispositions':_0x529dd9['childModel']=_0x1126('0x5c');break;case _0x1126('0x5d'):_0x529dd9[_0x1126('0x12')]='Dashboard';break;case _0x1126('0x5e'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x5f');break;case _0x1126('0x60'):_0x529dd9['childModel']=_0x1126('0x61');break;case _0x1126('0x62'):_0x529dd9['childModel']='Schedule';break;case'sounds':_0x529dd9['childModel']=_0x1126('0x63');break;case _0x1126('0x64'):_0x529dd9['childModel']=_0x1126('0x65');break;case _0x1126('0x66'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x67');break;case _0x1126('0x68'):_0x529dd9['childModel']=_0x1126('0x69');break;case _0x1126('0x6a'):_0x529dd9['childModel']=_0x1126('0x6b');break;case _0x1126('0x6c'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x6d');break;case _0x1126('0x6e'):_0x529dd9['childModel']=_0x1126('0x6f');break;case'extractedreports':_0x529dd9[_0x1126('0x12')]=_0x1126('0xf');_0x529dd9[_0x1126('0x17')]=[{'name':'Reports','field':'id','foreignKey':_0x1126('0x70')}];break;case _0x1126('0x71'):_0x529dd9['childModel']=_0x1126('0x72');break;}return _0x529dd9;}function _0x25038f(_0x9bad53,_0x5a5340){var _0x2fe6dc=_0x9bad53[_0x1126('0x73')](0x0)[_0x1126('0x74')]()+_0x9bad53[_0x1126('0x75')](0x1);var _0x128c94={'type':_0x350f3a[_0x1126('0x76')][_0x1126('0x77')][_0x1126('0x78')],'raw':!![]};return new Promise(function(_0x47e53d,_0x2b23e3){var _0x2db45e=squel[_0x1126('0x79')]()[_0x1126('0x6')](_0x1126('0x7a')+_0x2fe6dc+'InteractionId','id')[_0x1126('0x6')](_0x1126('0x7b'))['from'](_0x1126('0x7c')+_0x9bad53+'_interactions','ui')[_0x1126('0x7d')](_0x1126('0x7e'),_0x5a5340['id']);return _0x350f3a['sequelize'][_0x1126('0x7f')](_0x2db45e[_0x1126('0x80')](),_0x128c94)[_0x1126('0x9')](function(_0x592960){_0x5a5340[_0x2fe6dc+_0x1126('0x81')]=_0x592960;_0x47e53d(_0x592960);})['catch'](function(_0x558b6e){_0x2b23e3(_0x558b6e);});});}return _0x39b786[_0x1126('0x82')](_0x1126('0x83'),attributes,{'tableName':_0x1126('0x84'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x1230e9){var _0x3a76ec={'raw':![],'where':{}};var _0x1b4ebf={};var _0x1a0e26={'count':0x0,'rows':[]};var _0x5036d4=_0x1230e9[_0x1126('0x7f')][_0x1126('0x85')];var _0x116867=_0x1230e9[_0x1126('0x7f')][_0x1126('0x86')]||![];var _0x3cd788=_0x48a08d(_0x5036d4,_0x116867);if(!_0x3cd788['childModel'])throw new Error('Invalid\x20section\x20\x27'+_0x5036d4+'\x27');var _0x16a343=[{'name':_0x5036d4}];if(!_[_0x1126('0x87')](_0x3cd788['parentSections']))_0x16a343=_0x3cd788['parentSections'];var _0x5e9260=[];for(var _0x51a28d=0x0;_0x51a28d<_0x16a343[_0x1126('0x88')];_0x51a28d++){_0x5e9260[_0x1126('0x89')](_0x350f3a[_0x1126('0x8a')]['find']({'where':{'userProfileId':_0x1230e9[_0x1126('0x8b')]['id'],'name':_0x16a343[_0x51a28d][_0x1126('0xe')]},'raw':!![]}));}return Promise[_0x1126('0x8c')](_0x5e9260)[_0x1126('0x9')](function(_0x22d403){var _0x3f007b=_[_0x1126('0x5')](_0x22d403,function(_0x49a0a3){return _0x49a0a3?_0x49a0a3:undefined;});var _0x339aa6=_[_0x1126('0x5')](_0x16a343,[_0x1126('0x8d'),!![]]);var _0xd8171c=_[_0x1126('0x87')](_0x3f007b)&&_['isEmpty'](_0x339aa6)?null:_['union'](_0x339aa6,_0x3f007b);if(!_0xd8171c)return null;var _0x15cf3d=[];for(var _0x2643d7=0x0;_0x2643d7<_0xd8171c['length'];_0x2643d7++){var _0x3bf25d=_[_0x1126('0x8e')](_0x16a343,function(_0x366675){return _0xd8171c[_0x2643d7]?_0x366675[_0x1126('0xe')]===_0xd8171c[_0x2643d7][_0x1126('0xe')]:null;});if(_0x3bf25d){if(_0xd8171c[_0x2643d7][_0x1126('0x8d')]){_0x15cf3d[_0x1126('0x89')](_0x4245ca(_0x3cd788[_0x1126('0x12')],_0xd8171c[_0x2643d7]));}else{if(!_0xd8171c[_0x2643d7][_0x1126('0x8f')]){_0x15cf3d[_0x1126('0x89')](_0x4794a7(_0x3bf25d,_0xd8171c[_0x2643d7],_0x3cd788[_0x1126('0x12')]));}else{if(_0x3bf25d[_0x1126('0xd')]){_0x15cf3d[_0x1126('0x89')](_0x34571c(_0x3bf25d,_0xd8171c[_0x2643d7]));}}}}}return Promise['all'](_0x15cf3d);})[_0x1126('0x9')](function(_0x274343){var _0x2b61ae=_0x274343;var _0x53ea9a=null;if(_0x2b61ae){_0x53ea9a=_0x2b61ae['length']===0x1?_0x2b61ae[0x0]:null;}if(!_0x53ea9a&&!_0x2b61ae)return _0x1a0e26;var _0xe22fd2=_0x350f3a[_0x3cd788[_0x1126('0x12')]][_0x1126('0x90')];_0x1b4ebf[_0x1126('0xd')]=_['keys'](_0xe22fd2);_0x1b4ebf['query']=_['keys'](_0x1230e9[_0x1126('0x7f')]);_0x1b4ebf[_0x1126('0x91')]=_[_0x1126('0x92')](_0x1b4ebf[_0x1126('0xd')],_0x1b4ebf['query']);_0x3a76ec[_0x1126('0x93')]=_['intersection'](_0x1b4ebf[_0x1126('0xd')],qs[_0x1126('0x94')](_0x1230e9[_0x1126('0x7f')][_0x1126('0x94')]));_0x3a76ec[_0x1126('0x93')]=_0x3a76ec[_0x1126('0x93')][_0x1126('0x88')]?_0x3a76ec['attributes']:_0x1b4ebf[_0x1126('0xd')];if(!_0x1230e9['query'][_0x1126('0x95')](_0x1126('0x96'))){_0x3a76ec['limit']=qs[_0x1126('0x97')](_0x1230e9[_0x1126('0x7f')]['limit']);_0x3a76ec[_0x1126('0x98')]=qs[_0x1126('0x98')](_0x1230e9['query']['offset']);}_0x3a76ec[_0x1126('0x99')]=qs[_0x1126('0x9a')](_0x1230e9[_0x1126('0x7f')]['sort']);_0x3a76ec['where']=qs['filters'](_[_0x1126('0x9b')](_0x1230e9['query'],_0x1b4ebf['filters']));if(_0x1230e9[_0x1126('0x7f')]['filter']){_0x3a76ec[_0x1126('0x7d')]=_[_0x1126('0x9c')](_0x3a76ec['where'],{'$or':_[_0x1126('0xb')](_0xe22fd2,function(_0x375728){if(_0x375728[_0x1126('0x10')][_0x1126('0x9d')]!==_0x1126('0x9e')){var _0x5e9872={};_0x5e9872[_0x375728[_0x1126('0x6')]]={'$like':'%'+_0x1230e9[_0x1126('0x7f')]['filter']+'%'};return _0x5e9872;}})});}var _0xd182b1=[];var _0x2d6fcf=null;var _0x2c0908={};if(_0x53ea9a){_0x2d6fcf=_[_0x1126('0x8e')](_0x16a343,[_0x1126('0xe'),_0x53ea9a[_0x1126('0xe')]]);if(_0x2d6fcf[_0x1126('0x6')]){_0x2c0908={};if(_0x3cd788[_0x1126('0x12')]===_0x1126('0xf')){_0x2c0908[_0x2d6fcf[_0x1126('0x9f')]]=_[_0x1126('0xb')](_0x53ea9a[_0x1126('0xa')],'id');}else{_0x2c0908[_0x2d6fcf[_0x1126('0x9f')]]=_0x53ea9a[_0x1126('0xa')];}_0xd182b1[_0x1126('0x89')](_0x2c0908);}else{_0x3a76ec[_0x1126('0x7d')]['id']=_0x53ea9a['associatedResources'];}}else{for(var _0x31cfb5=0x0;_0x31cfb5<_0x2b61ae[_0x1126('0x88')];_0x31cfb5++){_0x2d6fcf=_[_0x1126('0x8e')](_0x16a343,[_0x1126('0xe'),_0x2b61ae[_0x31cfb5][_0x1126('0xe')]]);if(_0x2d6fcf['field']){_0x2c0908={};_0x2c0908[_0x2d6fcf[_0x1126('0x9f')]]=_0x2b61ae[_0x31cfb5]['associatedResources'];_0xd182b1['push'](_0x2c0908);}else{if(!_0x3a76ec[_0x1126('0x7d')]['id'])_0x3a76ec[_0x1126('0x7d')]['id']=[];_0x2b61ae[_0x31cfb5]['associatedResources']['forEach'](function(_0xaada05){_0x3a76ec[_0x1126('0x7d')]['id'][_0x1126('0x89')](_0xaada05);});}}}if(!_[_0x1126('0x87')](_0xd182b1)){_0x3a76ec[_0x1126('0x7d')]=_[_0x1126('0x9c')](_0x3a76ec[_0x1126('0x7d')],{'$and':{'$or':_0xd182b1}});}_0x3a76ec=_[_0x1126('0x9c')]({},_0x3a76ec,_0x1230e9[_0x1126('0xa0')]);if(_0x53ea9a&&!_0x53ea9a['autoAssociation']&&_0x3cd788[_0x1126('0x12')]===_0x1126('0xf')){if(_0x1230e9[_0x1126('0x7f')][_0x1126('0xa1')]){_0x3a76ec[_0x1126('0xa2')]=[{'all':!![]}];}return _0x350f3a[_0x3cd788[_0x1126('0x12')]]['findAll'](_0x3a76ec)[_0x1126('0x9')](function(_0x2cc4c8){var _0x194b3c=[];_0x2cc4c8[_0x1126('0xa3')](function(_0x12cdc6){var _0x1796eb;switch(_0x12cdc6[_0x1126('0xa4')]){case _0x1126('0xa5'):_0x1796eb=_[_0x1126('0x8e')](_0x53ea9a[_0x1126('0xa')],function(_0x5d6edb){return _0x5d6edb['id']===_0x12cdc6['reportId']&&_0x5d6edb[_0x1126('0x10')]==='DefaultReports';});break;case _0x1126('0xa6'):_0x1796eb=_['find'](_0x53ea9a[_0x1126('0xa')],function(_0x5059d3){return _0x5059d3['id']===_0x12cdc6[_0x1126('0x70')]&&_0x5059d3['type']==='CustomReports';});break;}if(_0x1796eb)_0x194b3c['push'](_0x12cdc6);});_0x1a0e26[_0x1126('0xa7')]=_0x194b3c[_0x1126('0x88')];_0x1a0e26['rows']=_0x194b3c;return _0x1a0e26;});}else{return _0x350f3a[_0x3cd788['childModel']][_0x1126('0xa7')]({'where':_0x3a76ec[_0x1126('0x7d')]})[_0x1126('0x9')](function(_0x5dfb8f){_0x1a0e26['count']=_0x5dfb8f;if(_0x1230e9[_0x1126('0x7f')]['includeAll']){if(_0x3cd788[_0x1126('0x12')]===_0x1126('0x1a')){_0x3a76ec[_0x1126('0xa2')]=[{'model':_0x350f3a[_0x1126('0x65')],'as':_0x1126('0xa8'),'attributes':['id','name','color'],'required':_0x1230e9[_0x1126('0x7f')][_0x1126('0xa9')]?!![]:![]},{'model':_0x350f3a[_0x1126('0x65')],'as':_0x1126('0xaa'),'attributes':['id',_0x1126('0xe'),_0x1126('0xab')],'through':_0x1230e9[_0x1126('0x7f')][_0x1126('0xa9')]?{'attributes':[],'where':{'TagId':_0x1230e9[_0x1126('0x7f')][_0x1126('0xa9')]||undefined}}:{},'required':_0x1230e9[_0x1126('0x7f')]['tag']?!![]:![]}];}else{_0x3a76ec[_0x1126('0xa2')]=[{'all':!![]}];}}return _0x350f3a[_0x3cd788['childModel']][_0x1126('0x8')](_0x3a76ec);})['then'](function(_0x4256e6){_0x1a0e26[_0x1126('0xac')]=_0x4256e6;if(_0x5036d4===_0x1126('0x50')&&_0x1230e9[_0x1126('0x7f')]['openTabs']===_0x1126('0xad')){var _0x834360=[];for(var _0x4b5d46=0x0;_0x4b5d46<_0x1a0e26['rows'][_0x1126('0x88')];_0x4b5d46++){_0x834360[_0x1126('0x89')](_0x25038f(_0x1126('0xae'),_0x1a0e26['rows'][_0x4b5d46][_0x1126('0xaf')]));_0x834360['push'](_0x25038f(_0x1126('0xb0'),_0x1a0e26[_0x1126('0xac')][_0x4b5d46]['dataValues']));_0x834360[_0x1126('0x89')](_0x25038f(_0x1126('0xb1'),_0x1a0e26[_0x1126('0xac')][_0x4b5d46][_0x1126('0xaf')]));_0x834360[_0x1126('0x89')](_0x25038f('mail',_0x1a0e26[_0x1126('0xac')][_0x4b5d46][_0x1126('0xaf')]));_0x834360[_0x1126('0x89')](_0x25038f('openchannel',_0x1a0e26['rows'][_0x4b5d46]['dataValues']));_0x834360[_0x1126('0x89')](_0x25038f(_0x1126('0xb2'),_0x1a0e26[_0x1126('0xac')][_0x4b5d46][_0x1126('0xaf')]));}return Promise['all'](_0x834360)[_0x1126('0x9')](function(){return _0x1a0e26;});}return _0x1a0e26;});}});}}});};
\ No newline at end of file
+var _0x11e5=['contexts','VoiceRecording','Agents','User','role','agent','membername','telephone','VoiceQueues','queue','VoiceQueue','type','inbound','QueueCampaigns','outbound','musiconholds','VoiceMusicOnHold','VoiceChanSpy','VoicePrefix','ivrcampaigns','Campaign','mailqueues','MailQueue','mailaccounts','MailAccount','mailsubstatuses','MailSubstatus','openchannelqueues','openchannelaccounts','OpenchannelAccount','smsqueues','smsaccounts','SmsAccount','whatsappaccounts','WhatsappAccount','voicequeues','queuecampaigns','users','agents','telephones','Users','admin','user','Telephones','zendeskaccounts','ZendeskAccount','salesforceaccounts','SalesforceAccount','freshdeskaccounts','FreshdeskAccount','sugarcrmaccounts','SugarcrmAccount','zohoaccounts','ZohoAccount','cannedanswers','CannedAnswer','dispositions','Disposition','customdashboards','Dashboard','pauses','Pause','sounds','Sound','tags','templates','Template','triggers','Trigger','trunks','variables','plugins','Plugin','extractedreports','Reports','reportId','slice','QueryTypes','SELECT','select','ui.createdAt','ui.UserId\x20=\x20?','query','OpenTabs','define','UserProfile','user_profiles','section','mergeResources','Invalid\x20section\x20\x27','length','UserProfileSection','params','all','ignore','isEmpty','union','find','push','rawAttributes','keys','intersection','fields','attributes','nolimit','limit','offset','order','sort','pick','filters','where','merge','key','VIRTUAL','foreignKey','forEach','options','autoAssociation','includeAll','include','reportType','default','DefaultReports','custom','rows','count','Tag','Tags','color','ThroughTags','tag','openTabs','chat','dataValues','sms','mail','openchannel','whatsapp','lodash','../../components/parsers/qs','squel','models','filter','value','findAll','then','associatedResources','map','catch','field','model','resolve','UserProfileResource','AnalyticExtractedReport','resourceId','childModel','odbc','SquareOdbc','squarerecordings','SquareRecording','parentSections','SquareProjects','name','projectName','projects','contacts','CmContact','Lists','lists','companies','CmCompany','globalcustomfields','chatqueues','ChatQueue','chatwebsites','faxqueues','FaxQueue','faxaccounts','FaxAccount','inboundroutes','internalroutes','VoiceExtension'];(function(_0x4be0b7,_0x3939a0){var _0x38cd8b=function(_0x28961f){while(--_0x28961f){_0x4be0b7['push'](_0x4be0b7['shift']());}};_0x38cd8b(++_0x3939a0);}(_0x11e5,0x8b));var _0x511e=function(_0x38d5b2,_0xe77bf4){_0x38d5b2=_0x38d5b2-0x0;var _0x5b4ba8=_0x11e5[_0x38d5b2];return _0x5b4ba8;};'use strict';var _=require(_0x511e('0x0'));var attributes=require('./userProfile.attributes');var qs=require(_0x511e('0x1'));var squel=require(_0x511e('0x2'));module['exports']=function(_0x2947e4){var _0x30fb24=_0x2947e4[_0x511e('0x3')];function _0x5cab33(_0x249e4d,_0x4fbd4f){return new Promise(function(_0x5923a7,_0x342539){if(!_0x4fbd4f)return _0x5923a7(null);var _0x323f8c=_0x4fbd4f[_0x511e('0x4')]?{[_0x4fbd4f['filter']['field']]:_0x4fbd4f[_0x511e('0x4')][_0x511e('0x5')]}:undefined;return _0x30fb24[_0x249e4d][_0x511e('0x6')]({'where':_0x323f8c,'raw':!![]})[_0x511e('0x7')](function(_0x4449c4){_0x4fbd4f[_0x511e('0x8')]=_[_0x511e('0x9')](_0x4449c4,'id');_0x5923a7(_0x4fbd4f);})[_0x511e('0xa')](function(_0x2f547a){_0x342539(_0x2f547a);});});}function _0x1c6def(_0x464085,_0x57f4f5){return new Promise(function(_0x7e50db,_0x5dd510){var _0x4d041f=_0x464085[_0x511e('0x4')]?{[_0x464085[_0x511e('0x4')][_0x511e('0xb')]]:_0x464085[_0x511e('0x4')][_0x511e('0x5')]}:undefined;return _0x30fb24[_0x464085[_0x511e('0xc')]]['findAll']({'where':_0x4d041f,'raw':!![]})[_0x511e('0x7')](function(_0x33fd64){_0x57f4f5['associatedResources']=_[_0x511e('0x9')](_0x33fd64,function(_0x43a329){return _0x43a329['name'];});_0x7e50db(_0x57f4f5);})[_0x511e('0xa')](function(_0x162c91){_0x5dd510(_0x162c91);});});}function _0x3b990b(_0x17fd4a,_0x5b6cd6,_0x3e0415){if(!_0x5b6cd6)return Promise[_0x511e('0xd')](null);return new Promise(function(_0x2e66b6,_0x577616){return _0x30fb24[_0x511e('0xe')]['findAll']({'where':{'sectionId':_0x5b6cd6['id']},'raw':!![]})[_0x511e('0x7')](function(_0x492c9f){if(_0x17fd4a['field']&&_0x17fd4a[_0x511e('0xb')]!=='id'){_0x5b6cd6['associatedResources']=_[_0x511e('0x9')](_0x492c9f,function(_0x325278){return _0x325278[_0x17fd4a[_0x511e('0xb')]];});}else{if(_0x3e0415===_0x511e('0xf')){_0x5b6cd6[_0x511e('0x8')]=_[_0x511e('0x9')](_0x492c9f,function(_0x3723ff){return{'id':_0x3723ff[_0x511e('0x10')],'type':_0x3723ff['type']};});}else{_0x5b6cd6[_0x511e('0x8')]=_[_0x511e('0x9')](_0x492c9f,function(_0x2ebf30){return _0x2ebf30[_0x511e('0x10')];});}}_0x2e66b6(_0x5b6cd6);})[_0x511e('0xa')](function(_0x18807b){_0x577616(_0x18807b);});});}function _0x886b6(_0x2f28fc,_0x211b90){var _0x26618d={'parentSections':[]};switch(_0x2f28fc['toLowerCase']()){case'squareprojects':_0x26618d[_0x511e('0x11')]='SquareProject';break;case _0x511e('0x12'):_0x26618d['childModel']=_0x511e('0x13');break;case _0x511e('0x14'):_0x26618d[_0x511e('0x11')]=_0x511e('0x15');_0x26618d[_0x511e('0x16')]=[{'name':_0x511e('0x17'),'field':_0x511e('0x18'),'foreignKey':_0x511e('0x19')}];break;case _0x511e('0x1a'):_0x26618d[_0x511e('0x11')]='JscriptyProject';break;case _0x511e('0x1b'):_0x26618d[_0x511e('0x11')]=_0x511e('0x1c');_0x26618d[_0x511e('0x16')]=[{'name':_0x511e('0x1d'),'field':'id','foreignKey':'ListId'}];break;case _0x511e('0x1e'):_0x26618d['childModel']='CmList';break;case _0x511e('0x1f'):_0x26618d[_0x511e('0x11')]=_0x511e('0x20');break;case _0x511e('0x21'):_0x26618d[_0x511e('0x11')]='CmCustomField';break;case _0x511e('0x22'):_0x26618d[_0x511e('0x11')]=_0x511e('0x23');break;case _0x511e('0x24'):_0x26618d[_0x511e('0x11')]='ChatWebsite';break;case _0x511e('0x25'):_0x26618d[_0x511e('0x11')]=_0x511e('0x26');break;case _0x511e('0x27'):_0x26618d[_0x511e('0x11')]=_0x511e('0x28');break;case _0x511e('0x29'):case _0x511e('0x2a'):case'outboundroutes':_0x26618d[_0x511e('0x11')]=_0x511e('0x2b');break;case _0x511e('0x2c'):_0x26618d[_0x511e('0x11')]='VoiceContext';break;case'voicemails':_0x26618d[_0x511e('0x11')]='VoiceMail';break;case'voicerecordings':_0x26618d[_0x511e('0x11')]=_0x511e('0x2d');_0x26618d[_0x511e('0x16')]=[{'name':_0x511e('0x2e'),'field':_0x511e('0x18'),'foreignKey':'membername','model':_0x511e('0x2f'),'filter':{'field':_0x511e('0x30'),'value':[_0x511e('0x31')]}},{'name':'Telephones','field':_0x511e('0x18'),'foreignKey':_0x511e('0x32'),'model':_0x511e('0x2f'),'filter':{'field':'role','value':[_0x511e('0x33')]}},{'name':_0x511e('0x34'),'field':'name','foreignKey':_0x511e('0x35'),'model':_0x511e('0x36'),'filter':{'field':_0x511e('0x37'),'value':[_0x511e('0x38')]}},{'name':_0x511e('0x39'),'field':_0x511e('0x18'),'foreignKey':_0x511e('0x35'),'model':_0x511e('0x36'),'filter':{'field':_0x511e('0x37'),'value':[_0x511e('0x3a')]}}];break;case _0x511e('0x3b'):_0x26618d['childModel']=_0x511e('0x3c');break;case'chanspies':_0x26618d['childModel']=_0x511e('0x3d');break;case'voiceprefixes':_0x26618d['childModel']=_0x511e('0x3e');break;case _0x511e('0x3f'):_0x26618d[_0x511e('0x11')]=_0x511e('0x40');break;case _0x511e('0x41'):_0x26618d[_0x511e('0x11')]=_0x511e('0x42');break;case _0x511e('0x43'):_0x26618d[_0x511e('0x11')]=_0x511e('0x44');break;case _0x511e('0x45'):_0x26618d[_0x511e('0x11')]=_0x511e('0x46');break;case _0x511e('0x47'):_0x26618d['childModel']='OpenchannelQueue';break;case _0x511e('0x48'):_0x26618d[_0x511e('0x11')]=_0x511e('0x49');break;case _0x511e('0x4a'):_0x26618d[_0x511e('0x11')]='SmsQueue';break;case _0x511e('0x4b'):_0x26618d[_0x511e('0x11')]=_0x511e('0x4c');break;case'whatsappqueues':_0x26618d['childModel']='WhatsappQueue';break;case _0x511e('0x4d'):_0x26618d[_0x511e('0x11')]=_0x511e('0x4e');break;case'teams':_0x26618d['childModel']='Team';break;case _0x511e('0x4f'):case _0x511e('0x50'):_0x26618d[_0x511e('0x11')]=_0x511e('0x36');if(_0x211b90){_0x26618d[_0x511e('0x16')]=[{'name':_0x511e('0x34')},{'name':_0x511e('0x39')}];}break;case _0x511e('0x51'):case _0x511e('0x52'):case _0x511e('0x53'):_0x26618d[_0x511e('0x11')]=_0x511e('0x2f');if(_0x211b90){_0x26618d[_0x511e('0x16')]=[{'name':_0x511e('0x54'),'filter':{'field':_0x511e('0x30'),'value':[_0x511e('0x55'),_0x511e('0x56')]},'ignore':!![]},{'name':_0x511e('0x2e')},{'name':_0x511e('0x57')}];}break;case _0x511e('0x58'):_0x26618d[_0x511e('0x11')]=_0x511e('0x59');break;case _0x511e('0x5a'):_0x26618d[_0x511e('0x11')]=_0x511e('0x5b');break;case _0x511e('0x5c'):_0x26618d[_0x511e('0x11')]=_0x511e('0x5d');break;case _0x511e('0x5e'):_0x26618d[_0x511e('0x11')]=_0x511e('0x5f');break;case'deskaccounts':_0x26618d[_0x511e('0x11')]='DeskAccount';break;case _0x511e('0x60'):_0x26618d[_0x511e('0x11')]=_0x511e('0x61');break;case'vtigeraccounts':_0x26618d[_0x511e('0x11')]=_0x511e('0x2f');break;case _0x511e('0x62'):_0x26618d['childModel']=_0x511e('0x63');break;case _0x511e('0x64'):_0x26618d['childModel']=_0x511e('0x65');break;case _0x511e('0x66'):_0x26618d[_0x511e('0x11')]=_0x511e('0x67');break;case'intervals':_0x26618d[_0x511e('0x11')]='Interval';break;case _0x511e('0x68'):_0x26618d[_0x511e('0x11')]=_0x511e('0x69');break;case'scheduler':_0x26618d[_0x511e('0x11')]='Schedule';break;case _0x511e('0x6a'):_0x26618d[_0x511e('0x11')]=_0x511e('0x6b');break;case _0x511e('0x6c'):_0x26618d[_0x511e('0x11')]='Tag';break;case _0x511e('0x6d'):_0x26618d[_0x511e('0x11')]=_0x511e('0x6e');break;case _0x511e('0x6f'):_0x26618d[_0x511e('0x11')]=_0x511e('0x70');break;case _0x511e('0x71'):_0x26618d[_0x511e('0x11')]='Trunk';break;case _0x511e('0x72'):_0x26618d[_0x511e('0x11')]='Variable';break;case _0x511e('0x73'):_0x26618d[_0x511e('0x11')]=_0x511e('0x74');break;case _0x511e('0x75'):_0x26618d[_0x511e('0x11')]=_0x511e('0xf');_0x26618d['parentSections']=[{'name':_0x511e('0x76'),'field':'id','foreignKey':_0x511e('0x77')}];break;case'metrics':_0x26618d[_0x511e('0x11')]='AnalyticMetric';break;}return _0x26618d;}function _0x22d48b(_0x4773f4,_0x59075b){var _0x58f1e4=_0x4773f4['charAt'](0x0)['toUpperCase']()+_0x4773f4[_0x511e('0x78')](0x1);var _0x49ddf0={'type':_0x30fb24['Sequelize'][_0x511e('0x79')][_0x511e('0x7a')],'raw':!![]};return new Promise(function(_0x4cbf27,_0x1f1afe){var _0x5a4581=squel[_0x511e('0x7b')]()['field']('ui.'+_0x58f1e4+'InteractionId','id')[_0x511e('0xb')](_0x511e('0x7c'))['from']('user_has_'+_0x4773f4+'_interactions','ui')['where'](_0x511e('0x7d'),_0x59075b['id']);return _0x30fb24['sequelize'][_0x511e('0x7e')](_0x5a4581['toString'](),_0x49ddf0)[_0x511e('0x7')](function(_0x14c2df){_0x59075b[_0x58f1e4+_0x511e('0x7f')]=_0x14c2df;_0x4cbf27(_0x14c2df);})[_0x511e('0xa')](function(_0x479cfb){_0x1f1afe(_0x479cfb);});});}return _0x2947e4[_0x511e('0x80')](_0x511e('0x81'),attributes,{'tableName':_0x511e('0x82'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x2b493f){var _0x318a31={'raw':![],'where':{}};var _0x584c81={};var _0x4eaec0={'count':0x0,'rows':[]};var _0x45a7b2=_0x2b493f[_0x511e('0x7e')][_0x511e('0x83')];var _0x537df4=_0x2b493f[_0x511e('0x7e')][_0x511e('0x84')]||![];var _0x1f962a=_0x886b6(_0x45a7b2,_0x537df4);if(!_0x1f962a[_0x511e('0x11')])throw new Error(_0x511e('0x85')+_0x45a7b2+'\x27');var _0x135ecb=[{'name':_0x45a7b2}];if(!_['isEmpty'](_0x1f962a['parentSections']))_0x135ecb=_0x1f962a['parentSections'];var _0x86f362=[];for(var _0x5525ed=0x0;_0x5525ed<_0x135ecb[_0x511e('0x86')];_0x5525ed++){_0x86f362['push'](_0x30fb24[_0x511e('0x87')]['find']({'where':{'userProfileId':_0x2b493f[_0x511e('0x88')]['id'],'name':_0x135ecb[_0x5525ed][_0x511e('0x18')]},'raw':!![]}));}return Promise[_0x511e('0x89')](_0x86f362)[_0x511e('0x7')](function(_0x9afcc4){var _0x52f3d9=_[_0x511e('0x4')](_0x9afcc4,function(_0x5d1433){return _0x5d1433?_0x5d1433:undefined;});var _0x435b2a=_[_0x511e('0x4')](_0x135ecb,[_0x511e('0x8a'),!![]]);var _0x515644=_[_0x511e('0x8b')](_0x52f3d9)&&_[_0x511e('0x8b')](_0x435b2a)?null:_[_0x511e('0x8c')](_0x435b2a,_0x52f3d9);if(!_0x515644)return null;var _0x15f360=[];for(var _0x50b93d=0x0;_0x50b93d<_0x515644['length'];_0x50b93d++){var _0x2fe9de=_[_0x511e('0x8d')](_0x135ecb,function(_0x5b1ba8){return _0x515644[_0x50b93d]?_0x5b1ba8[_0x511e('0x18')]===_0x515644[_0x50b93d]['name']:null;});if(_0x2fe9de){if(_0x515644[_0x50b93d][_0x511e('0x8a')]){_0x15f360[_0x511e('0x8e')](_0x5cab33(_0x1f962a['childModel'],_0x515644[_0x50b93d]));}else{if(!_0x515644[_0x50b93d]['autoAssociation']){_0x15f360[_0x511e('0x8e')](_0x3b990b(_0x2fe9de,_0x515644[_0x50b93d],_0x1f962a[_0x511e('0x11')]));}else{if(_0x2fe9de[_0x511e('0xc')]){_0x15f360['push'](_0x1c6def(_0x2fe9de,_0x515644[_0x50b93d]));}}}}}return Promise[_0x511e('0x89')](_0x15f360);})[_0x511e('0x7')](function(_0x28dede){var _0x3de67f=_0x28dede;var _0x13b95a=null;if(_0x3de67f){_0x13b95a=_0x3de67f[_0x511e('0x86')]===0x1?_0x3de67f[0x0]:null;}if(!_0x13b95a&&!_0x3de67f)return _0x4eaec0;var _0x3df2d1=_0x30fb24[_0x1f962a['childModel']][_0x511e('0x8f')];_0x584c81[_0x511e('0xc')]=_['keys'](_0x3df2d1);_0x584c81['query']=_[_0x511e('0x90')](_0x2b493f[_0x511e('0x7e')]);_0x584c81['filters']=_[_0x511e('0x91')](_0x584c81['model'],_0x584c81[_0x511e('0x7e')]);_0x318a31['attributes']=_['intersection'](_0x584c81[_0x511e('0xc')],qs[_0x511e('0x92')](_0x2b493f[_0x511e('0x7e')][_0x511e('0x92')]));_0x318a31[_0x511e('0x93')]=_0x318a31['attributes']['length']?_0x318a31[_0x511e('0x93')]:_0x584c81[_0x511e('0xc')];if(!_0x2b493f[_0x511e('0x7e')]['hasOwnProperty'](_0x511e('0x94'))){_0x318a31[_0x511e('0x95')]=qs['limit'](_0x2b493f['query'][_0x511e('0x95')]);_0x318a31[_0x511e('0x96')]=qs[_0x511e('0x96')](_0x2b493f[_0x511e('0x7e')][_0x511e('0x96')]);}_0x318a31[_0x511e('0x97')]=qs['sort'](_0x2b493f[_0x511e('0x7e')][_0x511e('0x98')]);_0x318a31['where']=qs['filters'](_[_0x511e('0x99')](_0x2b493f['query'],_0x584c81[_0x511e('0x9a')]));if(_0x2b493f['query']['filter']){_0x318a31[_0x511e('0x9b')]=_[_0x511e('0x9c')](_0x318a31[_0x511e('0x9b')],{'$or':_[_0x511e('0x9')](_0x3df2d1,function(_0x3b497b){if(_0x3b497b[_0x511e('0x37')][_0x511e('0x9d')]!==_0x511e('0x9e')){var _0x325df2={};_0x325df2[_0x3b497b[_0x511e('0xb')]]={'$like':'%'+_0x2b493f[_0x511e('0x7e')][_0x511e('0x4')]+'%'};return _0x325df2;}})});}var _0x3b4712=[];var _0x2f35cc=null;var _0x34325f={};if(_0x13b95a){_0x2f35cc=_[_0x511e('0x8d')](_0x135ecb,['name',_0x13b95a[_0x511e('0x18')]]);if(_0x2f35cc[_0x511e('0xb')]){_0x34325f={};if(_0x1f962a[_0x511e('0x11')]===_0x511e('0xf')){_0x34325f[_0x2f35cc[_0x511e('0x9f')]]=_[_0x511e('0x9')](_0x13b95a[_0x511e('0x8')],'id');}else{_0x34325f[_0x2f35cc[_0x511e('0x9f')]]=_0x13b95a[_0x511e('0x8')];}_0x3b4712[_0x511e('0x8e')](_0x34325f);}else{_0x318a31[_0x511e('0x9b')]['id']=_0x13b95a['associatedResources'];}}else{for(var _0x200470=0x0;_0x200470<_0x3de67f[_0x511e('0x86')];_0x200470++){_0x2f35cc=_[_0x511e('0x8d')](_0x135ecb,[_0x511e('0x18'),_0x3de67f[_0x200470]['name']]);if(_0x2f35cc[_0x511e('0xb')]){_0x34325f={};_0x34325f[_0x2f35cc[_0x511e('0x9f')]]=_0x3de67f[_0x200470][_0x511e('0x8')];_0x3b4712[_0x511e('0x8e')](_0x34325f);}else{if(!_0x318a31[_0x511e('0x9b')]['id'])_0x318a31[_0x511e('0x9b')]['id']=[];_0x3de67f[_0x200470][_0x511e('0x8')][_0x511e('0xa0')](function(_0x25e8cb){_0x318a31[_0x511e('0x9b')]['id']['push'](_0x25e8cb);});}}}if(!_[_0x511e('0x8b')](_0x3b4712)){_0x318a31[_0x511e('0x9b')]=_[_0x511e('0x9c')](_0x318a31[_0x511e('0x9b')],{'$and':{'$or':_0x3b4712}});}_0x318a31=_[_0x511e('0x9c')]({},_0x318a31,_0x2b493f[_0x511e('0xa1')]);if(_0x13b95a&&!_0x13b95a[_0x511e('0xa2')]&&_0x1f962a['childModel']==='AnalyticExtractedReport'){if(_0x2b493f[_0x511e('0x7e')][_0x511e('0xa3')]){_0x318a31[_0x511e('0xa4')]=[{'all':!![]}];}return _0x30fb24[_0x1f962a[_0x511e('0x11')]][_0x511e('0x6')](_0x318a31)[_0x511e('0x7')](function(_0x122d49){var _0x9e256b=[];_0x122d49[_0x511e('0xa0')](function(_0x1d39bb){var _0x55e8cc;switch(_0x1d39bb[_0x511e('0xa5')]){case _0x511e('0xa6'):_0x55e8cc=_[_0x511e('0x8d')](_0x13b95a[_0x511e('0x8')],function(_0x3d7e04){return _0x3d7e04['id']===_0x1d39bb['reportId']&&_0x3d7e04['type']===_0x511e('0xa7');});break;case _0x511e('0xa8'):_0x55e8cc=_[_0x511e('0x8d')](_0x13b95a[_0x511e('0x8')],function(_0x53f348){return _0x53f348['id']===_0x1d39bb[_0x511e('0x77')]&&_0x53f348[_0x511e('0x37')]==='CustomReports';});break;}if(_0x55e8cc)_0x9e256b[_0x511e('0x8e')](_0x1d39bb);});_0x4eaec0['count']=_0x9e256b[_0x511e('0x86')];_0x4eaec0[_0x511e('0xa9')]=_0x9e256b;return _0x4eaec0;});}else{return _0x30fb24[_0x1f962a[_0x511e('0x11')]][_0x511e('0xaa')]({'where':_0x318a31[_0x511e('0x9b')]})[_0x511e('0x7')](function(_0x9b2e83){_0x4eaec0[_0x511e('0xaa')]=_0x9b2e83;if(_0x2b493f[_0x511e('0x7e')][_0x511e('0xa3')]){if(_0x1f962a[_0x511e('0x11')]===_0x511e('0x1c')){_0x318a31[_0x511e('0xa4')]=[{'model':_0x30fb24[_0x511e('0xab')],'as':_0x511e('0xac'),'attributes':['id',_0x511e('0x18'),_0x511e('0xad')],'required':_0x2b493f[_0x511e('0x7e')]['tag']?!![]:![]},{'model':_0x30fb24[_0x511e('0xab')],'as':_0x511e('0xae'),'attributes':['id',_0x511e('0x18'),_0x511e('0xad')],'through':_0x2b493f[_0x511e('0x7e')]['tag']?{'attributes':[],'where':{'TagId':_0x2b493f[_0x511e('0x7e')][_0x511e('0xaf')]||undefined}}:{},'required':_0x2b493f[_0x511e('0x7e')]['tag']?!![]:![]}];}else{_0x318a31[_0x511e('0xa4')]=[{'all':!![]}];}}return _0x30fb24[_0x1f962a[_0x511e('0x11')]][_0x511e('0x6')](_0x318a31);})[_0x511e('0x7')](function(_0x513c38){_0x4eaec0['rows']=_0x513c38;if(_0x45a7b2==='Agents'&&_0x2b493f[_0x511e('0x7e')][_0x511e('0xb0')]==='true'){var _0x137568=[];for(var _0x49e3c7=0x0;_0x49e3c7<_0x4eaec0[_0x511e('0xa9')]['length'];_0x49e3c7++){_0x137568[_0x511e('0x8e')](_0x22d48b(_0x511e('0xb1'),_0x4eaec0['rows'][_0x49e3c7][_0x511e('0xb2')]));_0x137568[_0x511e('0x8e')](_0x22d48b(_0x511e('0xb3'),_0x4eaec0[_0x511e('0xa9')][_0x49e3c7][_0x511e('0xb2')]));_0x137568['push'](_0x22d48b('fax',_0x4eaec0['rows'][_0x49e3c7]['dataValues']));_0x137568['push'](_0x22d48b(_0x511e('0xb4'),_0x4eaec0[_0x511e('0xa9')][_0x49e3c7][_0x511e('0xb2')]));_0x137568['push'](_0x22d48b(_0x511e('0xb5'),_0x4eaec0[_0x511e('0xa9')][_0x49e3c7][_0x511e('0xb2')]));_0x137568[_0x511e('0x8e')](_0x22d48b(_0x511e('0xb6'),_0x4eaec0[_0x511e('0xa9')][_0x49e3c7][_0x511e('0xb2')]));}return Promise['all'](_0x137568)[_0x511e('0x7')](function(){return _0x4eaec0;});}return _0x4eaec0;});}});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfba8=['error','code','message','request\x20sent','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','request','then','info','UserProfile,\x20%s,\x20%s','UserProfile,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x4cc474,_0x46e635){var _0x27c99a=function(_0x184a48){while(--_0x184a48){_0x4cc474['push'](_0x4cc474['shift']());}};_0x27c99a(++_0x46e635);}(_0xfba8,0x1d6));var _0x8fba=function(_0x251308,_0x5eab0d){_0x251308=_0x251308-0x0;var _0x1017ab=_0xfba8[_0x251308];return _0x1017ab;};'use strict';var _=require(_0x8fba('0x0'));var util=require(_0x8fba('0x1'));var moment=require(_0x8fba('0x2'));var BPromise=require(_0x8fba('0x3'));var rs=require(_0x8fba('0x4'));var fs=require('fs');var Redis=require(_0x8fba('0x5'));var db=require(_0x8fba('0x6'))['db'];var utils=require(_0x8fba('0x7'));var logger=require(_0x8fba('0x8'))('rpc');var config=require(_0x8fba('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x8fba('0xa')][_0x8fba('0xb')]({'port':0x232a});config[_0x8fba('0xc')]=_[_0x8fba('0xd')](config[_0x8fba('0xc')],{'host':_0x8fba('0xe'),'port':0x18eb});var socket=require(_0x8fba('0xf'))(new Redis(config['redis']));require(_0x8fba('0x10'))['register'](socket);function respondWithRpcPromise(_0x352eda,_0x228103,_0x3816fc){return new BPromise(function(_0x139921,_0x47dda0){return client[_0x8fba('0x11')](_0x352eda,_0x3816fc)[_0x8fba('0x12')](function(_0x526513){logger[_0x8fba('0x13')](_0x8fba('0x14'),_0x228103,'request\x20sent');logger['debug'](_0x8fba('0x15'),_0x228103,'request\x20sent',JSON[_0x8fba('0x16')](_0x526513));if(_0x526513[_0x8fba('0x17')]){if(_0x526513[_0x8fba('0x17')][_0x8fba('0x18')]===0x1f4){logger[_0x8fba('0x17')](_0x8fba('0x14'),_0x228103,_0x526513['error']['message']);return _0x47dda0(_0x526513[_0x8fba('0x17')][_0x8fba('0x19')]);}logger[_0x8fba('0x17')](_0x8fba('0x14'),_0x228103,_0x526513[_0x8fba('0x17')][_0x8fba('0x19')]);return _0x139921(_0x526513['error'][_0x8fba('0x19')]);}else{logger[_0x8fba('0x13')](_0x8fba('0x14'),_0x228103,_0x8fba('0x1a'));_0x139921(_0x526513[_0x8fba('0x1b')][_0x8fba('0x19')]);}})[_0x8fba('0x1c')](function(_0x1e9cf9){logger['error'](_0x8fba('0x14'),_0x228103,_0x1e9cf9);_0x47dda0(_0x1e9cf9);});});}
\ No newline at end of file
+var _0x5bc1=['register','request','then','info','UserProfile,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','http','defaults','redis','localhost','socket.io-emitter','./userProfile.socket'];(function(_0x58ac34,_0x5b5bfb){var _0x3921ab=function(_0x172dd5){while(--_0x172dd5){_0x58ac34['push'](_0x58ac34['shift']());}};_0x3921ab(++_0x5b5bfb);}(_0x5bc1,0xb5));var _0x15bc=function(_0xf4129c,_0x44fcf1){_0xf4129c=_0xf4129c-0x0;var _0x426611=_0x5bc1[_0xf4129c];return _0x426611;};'use strict';var _=require('lodash');var util=require(_0x15bc('0x0'));var moment=require(_0x15bc('0x1'));var BPromise=require(_0x15bc('0x2'));var rs=require(_0x15bc('0x3'));var fs=require('fs');var Redis=require(_0x15bc('0x4'));var db=require(_0x15bc('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x15bc('0x6'));var config=require(_0x15bc('0x7'));var jayson=require(_0x15bc('0x8'));var client=jayson['client'][_0x15bc('0x9')]({'port':0x232a});config['redis']=_[_0x15bc('0xa')](config[_0x15bc('0xb')],{'host':_0x15bc('0xc'),'port':0x18eb});var socket=require(_0x15bc('0xd'))(new Redis(config[_0x15bc('0xb')]));require(_0x15bc('0xe'))[_0x15bc('0xf')](socket);function respondWithRpcPromise(_0x735271,_0x140fe5,_0x37302c){return new BPromise(function(_0x4c0eca,_0x18b502){return client[_0x15bc('0x10')](_0x735271,_0x37302c)[_0x15bc('0x11')](function(_0x4c24a7){logger[_0x15bc('0x12')](_0x15bc('0x13'),_0x140fe5,_0x15bc('0x14'));logger[_0x15bc('0x15')]('UserProfile,\x20%s,\x20%s,\x20%s',_0x140fe5,_0x15bc('0x14'),JSON[_0x15bc('0x16')](_0x4c24a7));if(_0x4c24a7[_0x15bc('0x17')]){if(_0x4c24a7[_0x15bc('0x17')][_0x15bc('0x18')]===0x1f4){logger[_0x15bc('0x17')](_0x15bc('0x13'),_0x140fe5,_0x4c24a7[_0x15bc('0x17')][_0x15bc('0x19')]);return _0x18b502(_0x4c24a7[_0x15bc('0x17')][_0x15bc('0x19')]);}logger[_0x15bc('0x17')](_0x15bc('0x13'),_0x140fe5,_0x4c24a7[_0x15bc('0x17')]['message']);return _0x4c0eca(_0x4c24a7[_0x15bc('0x17')][_0x15bc('0x19')]);}else{logger[_0x15bc('0x12')](_0x15bc('0x13'),_0x140fe5,_0x15bc('0x14'));_0x4c0eca(_0x4c24a7[_0x15bc('0x1a')][_0x15bc('0x19')]);}})[_0x15bc('0x1b')](function(_0x2cab32){logger[_0x15bc('0x17')](_0x15bc('0x13'),_0x140fe5,_0x2cab32);_0x18b502(_0x2cab32);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a72=['emit','removeListener','length','userProfile:','update'];(function(_0x2361a8,_0x389b91){var _0x50a261=function(_0x499241){while(--_0x499241){_0x2361a8['push'](_0x2361a8['shift']());}};_0x50a261(++_0x389b91);}(_0x0a72,0xea));var _0x20a7=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x0a72[_0x501510];return _0x1e6ee5;};'use strict';var UserProfileEvents=require('./userProfile.events');var events=['save','remove',_0x20a7('0x0')];function createListener(_0x336c06,_0x8ae54a){return function(_0x492c62){_0x8ae54a[_0x20a7('0x1')](_0x336c06,_0x492c62);};}function removeListener(_0x4171bf,_0x6e6058){return function(){UserProfileEvents[_0x20a7('0x2')](_0x4171bf,_0x6e6058);};}exports['register']=function(_0x1ebec9){for(var _0x4b4eb9=0x0,_0x5db46f=events[_0x20a7('0x3')];_0x4b4eb9<_0x5db46f;_0x4b4eb9++){var _0xe3dbe6=events[_0x4b4eb9];var _0x176c45=createListener(_0x20a7('0x4')+_0xe3dbe6,_0x1ebec9);UserProfileEvents['on'](_0xe3dbe6,_0x176c45);}};
\ No newline at end of file
+var _0xd2da=['update','emit','register','length','userProfile:','./userProfile.events','save','remove'];(function(_0x573051,_0x5e5fb7){var _0x29f583=function(_0x4afb64){while(--_0x4afb64){_0x573051['push'](_0x573051['shift']());}};_0x29f583(++_0x5e5fb7);}(_0xd2da,0x15d));var _0xad2d=function(_0x28669c,_0x1f62c4){_0x28669c=_0x28669c-0x0;var _0x4a3af6=_0xd2da[_0x28669c];return _0x4a3af6;};'use strict';var UserProfileEvents=require(_0xad2d('0x0'));var events=[_0xad2d('0x1'),_0xad2d('0x2'),_0xad2d('0x3')];function createListener(_0x597de0,_0x12bf3a){return function(_0x561c8b){_0x12bf3a[_0xad2d('0x4')](_0x597de0,_0x561c8b);};}function removeListener(_0xe9f205,_0xad77f1){return function(){UserProfileEvents['removeListener'](_0xe9f205,_0xad77f1);};}exports[_0xad2d('0x5')]=function(_0x16323d){for(var _0x205211=0x0,_0x10b492=events[_0xad2d('0x6')];_0x205211<_0x10b492;_0x205211++){var _0x156c96=events[_0x205211];var _0x2f747f=createListener(_0xad2d('0x7')+_0x156c96,_0x16323d);UserProfileEvents['on'](_0x156c96,_0x2f747f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5282=['destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileResource.controller','index','get','isAuthenticated','describe','/:id','show','post','create','put'];(function(_0x3cd067,_0x28233f){var _0xc52724=function(_0x3534a3){while(--_0x3534a3){_0x3cd067['push'](_0x3cd067['shift']());}};_0xc52724(++_0x28233f);}(_0x5282,0x9c));var _0x2528=function(_0x478c8a,_0x9afc92){_0x478c8a=_0x478c8a-0x0;var _0x3b6b3e=_0x5282[_0x478c8a];return _0x3b6b3e;};'use strict';var multer=require(_0x2528('0x0'));var util=require(_0x2528('0x1'));var path=require(_0x2528('0x2'));var timeout=require(_0x2528('0x3'));var express=require(_0x2528('0x4'));var router=express[_0x2528('0x5')]();var fs_extra=require(_0x2528('0x6'));var auth=require(_0x2528('0x7'));var interaction=require(_0x2528('0x8'));var config=require(_0x2528('0x9'));var controller=require(_0x2528('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x2528('0xb')]);router[_0x2528('0xc')]('/describe',auth[_0x2528('0xd')](),controller[_0x2528('0xe')]);router[_0x2528('0xc')](_0x2528('0xf'),auth[_0x2528('0xd')](),controller[_0x2528('0x10')]);router[_0x2528('0x11')]('/',auth[_0x2528('0xd')](),controller[_0x2528('0x12')]);router[_0x2528('0x13')](_0x2528('0xf'),auth[_0x2528('0xd')](),controller['update']);router['delete'](_0x2528('0xf'),auth[_0x2528('0xd')](),controller[_0x2528('0x14')]);module[_0x2528('0x15')]=router;
\ No newline at end of file
+var _0x8404=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileResource.controller','get','/describe','isAuthenticated','describe','/:id','show','post','put','destroy','multer'];(function(_0x10cb21,_0x4e0060){var _0xf8837f=function(_0x46bb79){while(--_0x46bb79){_0x10cb21['push'](_0x10cb21['shift']());}};_0xf8837f(++_0x4e0060);}(_0x8404,0x17b));var _0x4840=function(_0x30a6af,_0x45d571){_0x30a6af=_0x30a6af-0x0;var _0x5d6d36=_0x8404[_0x30a6af];return _0x5d6d36;};'use strict';var multer=require(_0x4840('0x0'));var util=require(_0x4840('0x1'));var path=require(_0x4840('0x2'));var timeout=require(_0x4840('0x3'));var express=require(_0x4840('0x4'));var router=express[_0x4840('0x5')]();var fs_extra=require(_0x4840('0x6'));var auth=require(_0x4840('0x7'));var interaction=require(_0x4840('0x8'));var config=require(_0x4840('0x9'));var controller=require(_0x4840('0xa'));router[_0x4840('0xb')]('/',auth['isAuthenticated'](),controller['index']);router[_0x4840('0xb')](_0x4840('0xc'),auth[_0x4840('0xd')](),controller[_0x4840('0xe')]);router[_0x4840('0xb')](_0x4840('0xf'),auth[_0x4840('0xd')](),controller[_0x4840('0x10')]);router[_0x4840('0x11')]('/',auth[_0x4840('0xd')](),controller['create']);router[_0x4840('0x12')](_0x4840('0xf'),auth['isAuthenticated'](),controller['update']);router['delete']('/:id',auth[_0x4840('0xd')](),controller[_0x4840('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x364b=['sequelize','STRING'];(function(_0x119b96,_0x587acd){var _0x516cbf=function(_0x5d4b36){while(--_0x5d4b36){_0x119b96['push'](_0x119b96['shift']());}};_0x516cbf(++_0x587acd);}(_0x364b,0x1ae));var _0xb364=function(_0x1d2d04,_0x231c57){_0x1d2d04=_0x1d2d04-0x0;var _0x3d405f=_0x364b[_0x1d2d04];return _0x3d405f;};'use strict';var Sequelize=require(_0xb364('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'resourceId':{'type':Sequelize['INTEGER'],'allowNull':![]},'type':{'type':Sequelize[_0xb364('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0x6d69=['STRING','sequelize','exports'];(function(_0x3ce408,_0x5c8428){var _0x31fe4c=function(_0x1bd9d0){while(--_0x1bd9d0){_0x3ce408['push'](_0x3ce408['shift']());}};_0x31fe4c(++_0x5c8428);}(_0x6d69,0x1c6));var _0x96d6=function(_0x496745,_0x369756){_0x496745=_0x496745-0x0;var _0x393a03=_0x6d69[_0x496745];return _0x393a03;};'use strict';var Sequelize=require(_0x96d6('0x0'));module[_0x96d6('0x1')]={'name':{'type':Sequelize[_0x96d6('0x2')],'allowNull':![]},'resourceId':{'type':Sequelize['INTEGER'],'allowNull':![]},'type':{'type':Sequelize[_0x96d6('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['index','UserProfileResource','fieldName','type','key','map','query','keys','model','fields','attributes','length','nolimit','order','sort','filters','filter','where','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','intersection','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','apply','save','update','then','sendStatus','error','stack','name','send'];(function(_0x2e9ded,_0x235e2b){var _0xc88a61=function(_0x1baa4b){while(--_0x1baa4b){_0x2e9ded['push'](_0x2e9ded['shift']());}};_0xc88a61(++_0x235e2b);}(_0xdb28,0x106));var _0x8db2=function(_0x3fe174,_0x3b0c5d){_0x3fe174=_0x3fe174-0x0;var _0x5f3784=_0xdb28[_0x3fe174];return _0x5f3784;};'use strict';var emlformat=require(_0x8db2('0x0'));var rimraf=require(_0x8db2('0x1'));var zipdir=require(_0x8db2('0x2'));var jsonpatch=require(_0x8db2('0x3'));var rp=require('request-promise');var moment=require(_0x8db2('0x4'));var BPromise=require(_0x8db2('0x5'));var Mustache=require(_0x8db2('0x6'));var util=require(_0x8db2('0x7'));var path=require(_0x8db2('0x8'));var sox=require('sox');var csv=require(_0x8db2('0x9'));var ejs=require(_0x8db2('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8db2('0xb'));var crypto=require(_0x8db2('0xc'));var jsforce=require(_0x8db2('0xd'));var deskjs=require(_0x8db2('0xe'));var toCsv=require(_0x8db2('0x9'));var querystring=require(_0x8db2('0xf'));var Papa=require(_0x8db2('0x10'));var Redis=require('ioredis');var authService=require(_0x8db2('0x11'));var qs=require(_0x8db2('0x12'));var as=require(_0x8db2('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8db2('0x14'))(_0x8db2('0x15'));var utils=require('../../config/utils');var config=require(_0x8db2('0x16'));var licenseUtil=require(_0x8db2('0x17'));var db=require(_0x8db2('0x18'))['db'];function respondWithStatusCode(_0x204f49,_0x37d017){_0x37d017=_0x37d017||0xcc;return function(_0x559fb1){if(_0x559fb1){return _0x204f49['sendStatus'](_0x37d017);}return _0x204f49[_0x8db2('0x19')](_0x37d017)[_0x8db2('0x1a')]();};}function respondWithResult(_0x350d61,_0x1d6a15){_0x1d6a15=_0x1d6a15||0xc8;return function(_0x227355){if(_0x227355){return _0x350d61[_0x8db2('0x19')](_0x1d6a15)[_0x8db2('0x1b')](_0x227355);}};}function respondWithFilteredResult(_0x3c96a7,_0x131252){return function(_0x16c8c2){if(_0x16c8c2){var _0x5489a9=typeof _0x131252[_0x8db2('0x1c')]===_0x8db2('0x1d')&&typeof _0x131252['limit']===_0x8db2('0x1d');var _0x44957d=_0x16c8c2[_0x8db2('0x1e')];var _0x3fddc2=_0x5489a9?0x0:_0x131252[_0x8db2('0x1c')];var _0x46ce14=_0x5489a9?_0x16c8c2['count']:_0x131252['offset']+_0x131252[_0x8db2('0x1f')];var _0x104e33;if(_0x46ce14>=_0x44957d){_0x46ce14=_0x44957d;_0x104e33=0xc8;}else{_0x104e33=0xce;}_0x3c96a7[_0x8db2('0x19')](_0x104e33);return _0x3c96a7[_0x8db2('0x20')]('Content-Range',_0x3fddc2+'-'+_0x46ce14+'/'+_0x44957d)[_0x8db2('0x1b')](_0x16c8c2);}return null;};}function patchUpdates(_0x36a9ff){return function(_0x260940){try{jsonpatch[_0x8db2('0x21')](_0x260940,_0x36a9ff,!![]);}catch(_0x3dbe8e){return BPromise['reject'](_0x3dbe8e);}return _0x260940[_0x8db2('0x22')]();};}function saveUpdates(_0x3e30e6,_0x18f69c){return function(_0x125be2){if(_0x125be2){return _0x125be2[_0x8db2('0x23')](_0x3e30e6)[_0x8db2('0x24')](function(_0x796ec1){return _0x796ec1;});}return null;};}function removeEntity(_0x5c6614,_0x256202){return function(_0x4f6516){if(_0x4f6516){return _0x4f6516['destroy']()['then'](function(){_0x5c6614['status'](0xcc)[_0x8db2('0x1a')]();});}};}function handleEntityNotFound(_0x29b5cd,_0x3be281){return function(_0x2baed0){if(!_0x2baed0){_0x29b5cd[_0x8db2('0x25')](0x194);}return _0x2baed0;};}function handleError(_0x8d4f54,_0x58cd9d){_0x58cd9d=_0x58cd9d||0x1f4;return function(_0x3544ba){logger[_0x8db2('0x26')](_0x3544ba[_0x8db2('0x27')]);if(_0x3544ba[_0x8db2('0x28')]){delete _0x3544ba['name'];}_0x8d4f54[_0x8db2('0x19')](_0x58cd9d)[_0x8db2('0x29')](_0x3544ba);};}exports[_0x8db2('0x2a')]=function(_0x1687ed,_0xbe5ece){var _0x21bae5={},_0xa54ea3={},_0x3124d5={'count':0x0,'rows':[]};var _0xbc5366=_['map'](db[_0x8db2('0x2b')]['rawAttributes'],function(_0x59cb77){return{'name':_0x59cb77[_0x8db2('0x2c')],'type':_0x59cb77[_0x8db2('0x2d')][_0x8db2('0x2e')]};});_0xa54ea3['model']=_[_0x8db2('0x2f')](_0xbc5366,'name');_0xa54ea3[_0x8db2('0x30')]=_[_0x8db2('0x31')](_0x1687ed[_0x8db2('0x30')]);_0xa54ea3['filters']=_['intersection'](_0xa54ea3[_0x8db2('0x32')],_0xa54ea3[_0x8db2('0x30')]);_0x21bae5['attributes']=_['intersection'](_0xa54ea3[_0x8db2('0x32')],qs[_0x8db2('0x33')](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x33')]));_0x21bae5[_0x8db2('0x34')]=_0x21bae5[_0x8db2('0x34')][_0x8db2('0x35')]?_0x21bae5[_0x8db2('0x34')]:_0xa54ea3[_0x8db2('0x32')];if(!_0x1687ed[_0x8db2('0x30')]['hasOwnProperty'](_0x8db2('0x36'))){_0x21bae5[_0x8db2('0x1f')]=qs['limit'](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x1f')]);_0x21bae5['offset']=qs['offset'](_0x1687ed[_0x8db2('0x30')]['offset']);}_0x21bae5[_0x8db2('0x37')]=qs[_0x8db2('0x38')](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x38')]);_0x21bae5['where']=qs[_0x8db2('0x39')](_['pick'](_0x1687ed[_0x8db2('0x30')],_0xa54ea3[_0x8db2('0x39')]),_0xbc5366);if(_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3a')]){_0x21bae5['where']=_['merge'](_0x21bae5[_0x8db2('0x3b')],{'$or':_[_0x8db2('0x2f')](_0xbc5366,function(_0x5dc2b4){if(_0x5dc2b4[_0x8db2('0x2d')]!==_0x8db2('0x3c')){var _0x656dd2={};_0x656dd2[_0x5dc2b4['name']]={'$like':'%'+_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3a')]+'%'};return _0x656dd2;}})});}_0x21bae5=_[_0x8db2('0x3d')]({},_0x21bae5,_0x1687ed[_0x8db2('0x3e')]);var _0x2e6f0c={'where':_0x21bae5[_0x8db2('0x3b')]};return db[_0x8db2('0x2b')][_0x8db2('0x1e')](_0x2e6f0c)[_0x8db2('0x24')](function(_0x63c561){_0x3124d5[_0x8db2('0x1e')]=_0x63c561;if(_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3f')]){_0x21bae5['include']=[{'all':!![]}];}return db[_0x8db2('0x2b')][_0x8db2('0x40')](_0x21bae5);})['then'](function(_0x49a7ae){_0x3124d5[_0x8db2('0x41')]=_0x49a7ae;return _0x3124d5;})['then'](respondWithFilteredResult(_0xbe5ece,_0x21bae5))[_0x8db2('0x42')](handleError(_0xbe5ece,null));};exports[_0x8db2('0x43')]=function(_0x313130,_0x307783){var _0xb4fe2c={'raw':![],'where':{'id':_0x313130[_0x8db2('0x44')]['id']}},_0x30d606={};_0x30d606['model']=_[_0x8db2('0x31')](db[_0x8db2('0x2b')][_0x8db2('0x45')]);_0x30d606[_0x8db2('0x30')]=_['keys'](_0x313130[_0x8db2('0x30')]);_0x30d606[_0x8db2('0x39')]=_[_0x8db2('0x46')](_0x30d606[_0x8db2('0x32')],_0x30d606['query']);_0xb4fe2c[_0x8db2('0x34')]=_['intersection'](_0x30d606[_0x8db2('0x32')],qs[_0x8db2('0x33')](_0x313130[_0x8db2('0x30')]['fields']));_0xb4fe2c['attributes']=_0xb4fe2c[_0x8db2('0x34')]['length']?_0xb4fe2c[_0x8db2('0x34')]:_0x30d606[_0x8db2('0x32')];if(_0x313130[_0x8db2('0x30')][_0x8db2('0x3f')]){_0xb4fe2c[_0x8db2('0x47')]=[{'all':!![]}];}_0xb4fe2c=_[_0x8db2('0x3d')]({},_0xb4fe2c,_0x313130[_0x8db2('0x3e')]);return db[_0x8db2('0x2b')][_0x8db2('0x48')](_0xb4fe2c)[_0x8db2('0x24')](handleEntityNotFound(_0x307783,null))[_0x8db2('0x24')](respondWithResult(_0x307783,null))[_0x8db2('0x42')](handleError(_0x307783,null));};exports['create']=function(_0x449109,_0x2ada52){return db[_0x8db2('0x2b')][_0x8db2('0x49')](_0x449109['body'],{})['then'](respondWithResult(_0x2ada52,0xc9))[_0x8db2('0x42')](handleError(_0x2ada52,null));};exports[_0x8db2('0x23')]=function(_0x164020,_0x4c66e5){if(_0x164020['body']['id']){delete _0x164020['body']['id'];}return db[_0x8db2('0x2b')][_0x8db2('0x48')]({'where':{'id':_0x164020[_0x8db2('0x44')]['id']}})[_0x8db2('0x24')](handleEntityNotFound(_0x4c66e5,null))[_0x8db2('0x24')](saveUpdates(_0x164020[_0x8db2('0x4a')],null))[_0x8db2('0x24')](respondWithResult(_0x4c66e5,null))['catch'](handleError(_0x4c66e5,null));};exports['destroy']=function(_0x3d29bc,_0x18c6ef){return db[_0x8db2('0x2b')][_0x8db2('0x48')]({'where':{'id':_0x3d29bc[_0x8db2('0x44')]['id']}})[_0x8db2('0x24')](handleEntityNotFound(_0x18c6ef,null))[_0x8db2('0x24')](removeEntity(_0x18c6ef,null))[_0x8db2('0x42')](handleError(_0x18c6ef,null));};exports[_0x8db2('0x4b')]=function(_0x426ae0,_0x3bc632){return db[_0x8db2('0x2b')][_0x8db2('0x4b')]()[_0x8db2('0x24')](respondWithResult(_0x3bc632,null))[_0x8db2('0x42')](handleError(_0x3bc632,null));};
\ No newline at end of file
+var _0x1623=['filters','intersection','attributes','fields','nolimit','order','sort','pick','filter','where','merge','options','UserProfileResource','findAll','rows','catch','show','params','length','find','create','body','describe','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','set','apply','save','update','then','destroy','sendStatus','error','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x1623,0xab));var _0x3162=function(_0x18e759,_0x39a9ca){_0x18e759=_0x18e759-0x0;var _0xf243b6=_0x1623[_0x18e759];return _0xf243b6;};'use strict';var emlformat=require(_0x3162('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x3162('0x1'));var rp=require(_0x3162('0x2'));var moment=require(_0x3162('0x3'));var BPromise=require(_0x3162('0x4'));var Mustache=require(_0x3162('0x5'));var util=require('util');var path=require('path');var sox=require(_0x3162('0x6'));var csv=require('to-csv');var ejs=require(_0x3162('0x7'));var fs=require('fs');var fs_extra=require(_0x3162('0x8'));var _=require('lodash');var squel=require(_0x3162('0x9'));var crypto=require(_0x3162('0xa'));var jsforce=require(_0x3162('0xb'));var deskjs=require(_0x3162('0xc'));var toCsv=require(_0x3162('0xd'));var querystring=require(_0x3162('0xe'));var Papa=require(_0x3162('0xf'));var Redis=require(_0x3162('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3162('0x11'));var hardwareService=require(_0x3162('0x12'));var logger=require(_0x3162('0x13'))(_0x3162('0x14'));var utils=require(_0x3162('0x15'));var config=require(_0x3162('0x16'));var licenseUtil=require(_0x3162('0x17'));var db=require(_0x3162('0x18'))['db'];function respondWithStatusCode(_0x157ab8,_0x4c3625){_0x4c3625=_0x4c3625||0xcc;return function(_0x2d11c5){if(_0x2d11c5){return _0x157ab8['sendStatus'](_0x4c3625);}return _0x157ab8[_0x3162('0x19')](_0x4c3625)[_0x3162('0x1a')]();};}function respondWithResult(_0x49d1ad,_0x4a393a){_0x4a393a=_0x4a393a||0xc8;return function(_0x198764){if(_0x198764){return _0x49d1ad[_0x3162('0x19')](_0x4a393a)[_0x3162('0x1b')](_0x198764);}};}function respondWithFilteredResult(_0x4b8a3b,_0x15e348){return function(_0x3d0bea){if(_0x3d0bea){var _0x2705d1=typeof _0x15e348['offset']===_0x3162('0x1c')&&typeof _0x15e348[_0x3162('0x1d')]===_0x3162('0x1c');var _0xc3ee06=_0x3d0bea[_0x3162('0x1e')];var _0x1eed46=_0x2705d1?0x0:_0x15e348[_0x3162('0x1f')];var _0x4b2bf3=_0x2705d1?_0x3d0bea[_0x3162('0x1e')]:_0x15e348[_0x3162('0x1f')]+_0x15e348[_0x3162('0x1d')];var _0x36ca97;if(_0x4b2bf3>=_0xc3ee06){_0x4b2bf3=_0xc3ee06;_0x36ca97=0xc8;}else{_0x36ca97=0xce;}_0x4b8a3b['status'](_0x36ca97);return _0x4b8a3b[_0x3162('0x20')]('Content-Range',_0x1eed46+'-'+_0x4b2bf3+'/'+_0xc3ee06)['json'](_0x3d0bea);}return null;};}function patchUpdates(_0xa5c62b){return function(_0x3e4d23){try{jsonpatch[_0x3162('0x21')](_0x3e4d23,_0xa5c62b,!![]);}catch(_0x523fab){return BPromise['reject'](_0x523fab);}return _0x3e4d23[_0x3162('0x22')]();};}function saveUpdates(_0x396372,_0x32c051){return function(_0x26c90d){if(_0x26c90d){return _0x26c90d[_0x3162('0x23')](_0x396372)[_0x3162('0x24')](function(_0x52ae25){return _0x52ae25;});}return null;};}function removeEntity(_0x1b2713,_0x5a4994){return function(_0xd283d6){if(_0xd283d6){return _0xd283d6[_0x3162('0x25')]()[_0x3162('0x24')](function(){_0x1b2713[_0x3162('0x19')](0xcc)[_0x3162('0x1a')]();});}};}function handleEntityNotFound(_0x3c543e,_0x30552f){return function(_0x5f8f7){if(!_0x5f8f7){_0x3c543e[_0x3162('0x26')](0x194);}return _0x5f8f7;};}function handleError(_0x356c5d,_0x8fa09f){_0x8fa09f=_0x8fa09f||0x1f4;return function(_0x2f62d7){logger[_0x3162('0x27')](_0x2f62d7['stack']);if(_0x2f62d7[_0x3162('0x28')]){delete _0x2f62d7['name'];}_0x356c5d[_0x3162('0x19')](_0x8fa09f)[_0x3162('0x29')](_0x2f62d7);};}exports[_0x3162('0x2a')]=function(_0x57f567,_0x4903e7){var _0xda0389={},_0xaa1f35={},_0x14df16={'count':0x0,'rows':[]};var _0x399148=_[_0x3162('0x2b')](db['UserProfileResource'][_0x3162('0x2c')],function(_0x4e3cc2){return{'name':_0x4e3cc2[_0x3162('0x2d')],'type':_0x4e3cc2[_0x3162('0x2e')][_0x3162('0x2f')]};});_0xaa1f35[_0x3162('0x30')]=_[_0x3162('0x2b')](_0x399148,_0x3162('0x28'));_0xaa1f35[_0x3162('0x31')]=_[_0x3162('0x32')](_0x57f567['query']);_0xaa1f35[_0x3162('0x33')]=_[_0x3162('0x34')](_0xaa1f35['model'],_0xaa1f35[_0x3162('0x31')]);_0xda0389[_0x3162('0x35')]=_['intersection'](_0xaa1f35['model'],qs[_0x3162('0x36')](_0x57f567['query'][_0x3162('0x36')]));_0xda0389[_0x3162('0x35')]=_0xda0389[_0x3162('0x35')]['length']?_0xda0389['attributes']:_0xaa1f35[_0x3162('0x30')];if(!_0x57f567[_0x3162('0x31')]['hasOwnProperty'](_0x3162('0x37'))){_0xda0389['limit']=qs[_0x3162('0x1d')](_0x57f567[_0x3162('0x31')][_0x3162('0x1d')]);_0xda0389[_0x3162('0x1f')]=qs[_0x3162('0x1f')](_0x57f567[_0x3162('0x31')][_0x3162('0x1f')]);}_0xda0389[_0x3162('0x38')]=qs[_0x3162('0x39')](_0x57f567[_0x3162('0x31')][_0x3162('0x39')]);_0xda0389['where']=qs[_0x3162('0x33')](_[_0x3162('0x3a')](_0x57f567[_0x3162('0x31')],_0xaa1f35['filters']),_0x399148);if(_0x57f567['query'][_0x3162('0x3b')]){_0xda0389[_0x3162('0x3c')]=_[_0x3162('0x3d')](_0xda0389[_0x3162('0x3c')],{'$or':_['map'](_0x399148,function(_0x4186b6){if(_0x4186b6['type']!=='VIRTUAL'){var _0x5dee49={};_0x5dee49[_0x4186b6[_0x3162('0x28')]]={'$like':'%'+_0x57f567[_0x3162('0x31')][_0x3162('0x3b')]+'%'};return _0x5dee49;}})});}_0xda0389=_['merge']({},_0xda0389,_0x57f567[_0x3162('0x3e')]);var _0x2ce9c6={'where':_0xda0389[_0x3162('0x3c')]};return db[_0x3162('0x3f')][_0x3162('0x1e')](_0x2ce9c6)['then'](function(_0x5447d6){_0x14df16[_0x3162('0x1e')]=_0x5447d6;if(_0x57f567[_0x3162('0x31')]['includeAll']){_0xda0389['include']=[{'all':!![]}];}return db[_0x3162('0x3f')][_0x3162('0x40')](_0xda0389);})[_0x3162('0x24')](function(_0x4883ac){_0x14df16[_0x3162('0x41')]=_0x4883ac;return _0x14df16;})[_0x3162('0x24')](respondWithFilteredResult(_0x4903e7,_0xda0389))[_0x3162('0x42')](handleError(_0x4903e7,null));};exports[_0x3162('0x43')]=function(_0x534708,_0x2617d3){var _0x282e3e={'raw':![],'where':{'id':_0x534708[_0x3162('0x44')]['id']}},_0x522cce={};_0x522cce[_0x3162('0x30')]=_['keys'](db[_0x3162('0x3f')][_0x3162('0x2c')]);_0x522cce['query']=_[_0x3162('0x32')](_0x534708['query']);_0x522cce[_0x3162('0x33')]=_[_0x3162('0x34')](_0x522cce[_0x3162('0x30')],_0x522cce[_0x3162('0x31')]);_0x282e3e[_0x3162('0x35')]=_[_0x3162('0x34')](_0x522cce['model'],qs[_0x3162('0x36')](_0x534708[_0x3162('0x31')][_0x3162('0x36')]));_0x282e3e['attributes']=_0x282e3e[_0x3162('0x35')][_0x3162('0x45')]?_0x282e3e['attributes']:_0x522cce[_0x3162('0x30')];if(_0x534708['query']['includeAll']){_0x282e3e['include']=[{'all':!![]}];}_0x282e3e=_[_0x3162('0x3d')]({},_0x282e3e,_0x534708[_0x3162('0x3e')]);return db[_0x3162('0x3f')][_0x3162('0x46')](_0x282e3e)[_0x3162('0x24')](handleEntityNotFound(_0x2617d3,null))[_0x3162('0x24')](respondWithResult(_0x2617d3,null))[_0x3162('0x42')](handleError(_0x2617d3,null));};exports[_0x3162('0x47')]=function(_0x3d2958,_0x28865c){return db[_0x3162('0x3f')][_0x3162('0x47')](_0x3d2958[_0x3162('0x48')],{})['then'](respondWithResult(_0x28865c,0xc9))[_0x3162('0x42')](handleError(_0x28865c,null));};exports['update']=function(_0x4f1dde,_0x12d791){if(_0x4f1dde[_0x3162('0x48')]['id']){delete _0x4f1dde[_0x3162('0x48')]['id'];}return db[_0x3162('0x3f')]['find']({'where':{'id':_0x4f1dde[_0x3162('0x44')]['id']}})['then'](handleEntityNotFound(_0x12d791,null))[_0x3162('0x24')](saveUpdates(_0x4f1dde[_0x3162('0x48')],null))['then'](respondWithResult(_0x12d791,null))[_0x3162('0x42')](handleError(_0x12d791,null));};exports['destroy']=function(_0x516599,_0x13e7c4){return db[_0x3162('0x3f')][_0x3162('0x46')]({'where':{'id':_0x516599[_0x3162('0x44')]['id']}})[_0x3162('0x24')](handleEntityNotFound(_0x13e7c4,null))[_0x3162('0x24')](removeEntity(_0x13e7c4,null))[_0x3162('0x42')](handleError(_0x13e7c4,null));};exports[_0x3162('0x49')]=function(_0x554a03,_0x48b81d){return db['UserProfileResource'][_0x3162('0x49')]()[_0x3162('0x24')](respondWithResult(_0x48b81d,null))[_0x3162('0x42')](handleError(_0x48b81d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x615d=['rimraf','../../config/environment','./userProfileResource.attributes','exports','define','user_profile_has_resources','compositeIndex','resourceId','lodash','../../config/logger','api','moment'];(function(_0x4858cc,_0x234db5){var _0x2d1300=function(_0x5929d0){while(--_0x5929d0){_0x4858cc['push'](_0x4858cc['shift']());}};_0x2d1300(++_0x234db5);}(_0x615d,0xc8));var _0xd615=function(_0x9b9c46,_0x3997a8){_0x9b9c46=_0x9b9c46-0x0;var _0x47ee52=_0x615d[_0x9b9c46];return _0x47ee52;};'use strict';var _=require(_0xd615('0x0'));var util=require('util');var logger=require(_0xd615('0x1'))(_0xd615('0x2'));var moment=require(_0xd615('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xd615('0x4'));var config=require(_0xd615('0x5'));var attributes=require(_0xd615('0x6'));module[_0xd615('0x7')]=function(_0x1aa4b8,_0x38d5d){return _0x1aa4b8[_0xd615('0x8')]('UserProfileResource',attributes,{'tableName':_0xd615('0x9'),'paranoid':![],'indexes':[{'name':_0xd615('0xa'),'fields':[_0xd615('0xb'),'sectionId']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x954c=['path','../../config/environment','./userProfileResource.attributes','exports','UserProfileResource','compositeIndex','sectionId','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x954c,0x132));var _0xc954=function(_0x45828d,_0x50aa1e){_0x45828d=_0x45828d-0x0;var _0x323bb4=_0x954c[_0x45828d];return _0x323bb4;};'use strict';var _=require(_0xc954('0x0'));var util=require(_0xc954('0x1'));var logger=require(_0xc954('0x2'))(_0xc954('0x3'));var moment=require('moment');var BPromise=require(_0xc954('0x4'));var rp=require(_0xc954('0x5'));var fs=require('fs');var path=require(_0xc954('0x6'));var rimraf=require('rimraf');var config=require(_0xc954('0x7'));var attributes=require(_0xc954('0x8'));module[_0xc954('0x9')]=function(_0x3cf6a5,_0x308404){return _0x3cf6a5['define'](_0xc954('0xa'),attributes,{'tableName':'user_profile_has_resources','paranoid':![],'indexes':[{'name':_0xc954('0xb'),'fields':['resourceId',_0xc954('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0ba=['request\x20sent','debug','UserProfileResource,\x20%s,\x20%s,\x20%s','stringify','error','code','message','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','UserProfileResource,\x20%s,\x20%s'];(function(_0x47c53e,_0x35f7f3){var _0x306afd=function(_0x599636){while(--_0x599636){_0x47c53e['push'](_0x47c53e['shift']());}};_0x306afd(++_0x35f7f3);}(_0xf0ba,0x7a));var _0xaf0b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xf0ba[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0xaf0b('0x0'));var util=require(_0xaf0b('0x1'));var moment=require(_0xaf0b('0x2'));var BPromise=require(_0xaf0b('0x3'));var rs=require(_0xaf0b('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xaf0b('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xaf0b('0x6'))(_0xaf0b('0x7'));var config=require(_0xaf0b('0x8'));var jayson=require(_0xaf0b('0x9'));var client=jayson[_0xaf0b('0xa')][_0xaf0b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x284ed6,_0x37f348,_0x2693f6){return new BPromise(function(_0x44540f,_0x3f1ae4){return client[_0xaf0b('0xc')](_0x284ed6,_0x2693f6)[_0xaf0b('0xd')](function(_0x1e6284){logger[_0xaf0b('0xe')](_0xaf0b('0xf'),_0x37f348,_0xaf0b('0x10'));logger[_0xaf0b('0x11')](_0xaf0b('0x12'),_0x37f348,'request\x20sent',JSON[_0xaf0b('0x13')](_0x1e6284));if(_0x1e6284['error']){if(_0x1e6284[_0xaf0b('0x14')][_0xaf0b('0x15')]===0x1f4){logger['error'](_0xaf0b('0xf'),_0x37f348,_0x1e6284[_0xaf0b('0x14')][_0xaf0b('0x16')]);return _0x3f1ae4(_0x1e6284[_0xaf0b('0x14')][_0xaf0b('0x16')]);}logger[_0xaf0b('0x14')]('UserProfileResource,\x20%s,\x20%s',_0x37f348,_0x1e6284['error']['message']);return _0x44540f(_0x1e6284['error'][_0xaf0b('0x16')]);}else{logger[_0xaf0b('0xe')](_0xaf0b('0xf'),_0x37f348,_0xaf0b('0x10'));_0x44540f(_0x1e6284['result'][_0xaf0b('0x16')]);}})['catch'](function(_0x4a3cf3){logger[_0xaf0b('0x14')](_0xaf0b('0xf'),_0x37f348,_0x4a3cf3);_0x3f1ae4(_0x4a3cf3);});});}
\ No newline at end of file
+var _0x7e5f=['debug','UserProfileResource,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','lodash','util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','info','UserProfileResource,\x20%s,\x20%s','request\x20sent'];(function(_0x4d8ed9,_0x2ae284){var _0x1e2140=function(_0x9cca89){while(--_0x9cca89){_0x4d8ed9['push'](_0x4d8ed9['shift']());}};_0x1e2140(++_0x2ae284);}(_0x7e5f,0x80));var _0xf7e5=function(_0x35f7f5,_0x4e2ee1){_0x35f7f5=_0x35f7f5-0x0;var _0x5567a4=_0x7e5f[_0x35f7f5];return _0x5567a4;};'use strict';var _=require(_0xf7e5('0x0'));var util=require(_0xf7e5('0x1'));var moment=require('moment');var BPromise=require(_0xf7e5('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xf7e5('0x3'));var logger=require(_0xf7e5('0x4'))(_0xf7e5('0x5'));var config=require(_0xf7e5('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xf7e5('0x7')][_0xf7e5('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x561911,_0x178b07,_0x3609b0){return new BPromise(function(_0x3a597e,_0x90e42f){return client['request'](_0x561911,_0x3609b0)['then'](function(_0x7dd28e){logger[_0xf7e5('0x9')](_0xf7e5('0xa'),_0x178b07,_0xf7e5('0xb'));logger[_0xf7e5('0xc')](_0xf7e5('0xd'),_0x178b07,_0xf7e5('0xb'),JSON[_0xf7e5('0xe')](_0x7dd28e));if(_0x7dd28e['error']){if(_0x7dd28e['error'][_0xf7e5('0xf')]===0x1f4){logger[_0xf7e5('0x10')](_0xf7e5('0xa'),_0x178b07,_0x7dd28e[_0xf7e5('0x10')][_0xf7e5('0x11')]);return _0x90e42f(_0x7dd28e['error']['message']);}logger['error'](_0xf7e5('0xa'),_0x178b07,_0x7dd28e['error'][_0xf7e5('0x11')]);return _0x3a597e(_0x7dd28e['error'][_0xf7e5('0x11')]);}else{logger[_0xf7e5('0x9')](_0xf7e5('0xa'),_0x178b07,_0xf7e5('0xb'));_0x3a597e(_0x7dd28e[_0xf7e5('0x12')][_0xf7e5('0x11')]);}})[_0xf7e5('0x13')](function(_0xfa91fc){logger[_0xf7e5('0x10')](_0xf7e5('0xa'),_0x178b07,_0xfa91fc);_0x90e42f(_0xfa91fc);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18a1=['/describe','describe','create','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./userProfileSection.controller','get','isAuthenticated','index'];(function(_0x32660b,_0x4019e7){var _0x5db00e=function(_0x5d5581){while(--_0x5d5581){_0x32660b['push'](_0x32660b['shift']());}};_0x5db00e(++_0x4019e7);}(_0x18a1,0x148));var _0x118a=function(_0x5aa705,_0xbebe0b){_0x5aa705=_0x5aa705-0x0;var _0x533cd4=_0x18a1[_0x5aa705];return _0x533cd4;};'use strict';var multer=require(_0x118a('0x0'));var util=require(_0x118a('0x1'));var path=require(_0x118a('0x2'));var timeout=require(_0x118a('0x3'));var express=require(_0x118a('0x4'));var router=express['Router']();var fs_extra=require(_0x118a('0x5'));var auth=require(_0x118a('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x118a('0x7'));var controller=require(_0x118a('0x8'));router[_0x118a('0x9')]('/',auth[_0x118a('0xa')](),controller[_0x118a('0xb')]);router[_0x118a('0x9')](_0x118a('0xc'),auth['isAuthenticated'](),controller[_0x118a('0xd')]);router[_0x118a('0x9')]('/:id',auth[_0x118a('0xa')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x118a('0xe')]);router['put'](_0x118a('0xf'),auth['isAuthenticated'](),controller[_0x118a('0x10')]);router[_0x118a('0x11')](_0x118a('0xf'),auth[_0x118a('0xa')](),controller[_0x118a('0x12')]);module[_0x118a('0x13')]=router;
\ No newline at end of file
+var _0xa323=['Router','fs-extra','../../components/interaction/service','../../config/environment','./userProfileSection.controller','get','isAuthenticated','/describe','describe','/:id','post','create','put','delete','destroy','exports','util','path','connect-timeout','express'];(function(_0x492938,_0x259656){var _0x216b83=function(_0x1aa306){while(--_0x1aa306){_0x492938['push'](_0x492938['shift']());}};_0x216b83(++_0x259656);}(_0xa323,0x178));var _0x3a32=function(_0x26c311,_0x26a54c){_0x26c311=_0x26c311-0x0;var _0x75f1b7=_0xa323[_0x26c311];return _0x75f1b7;};'use strict';var multer=require('multer');var util=require(_0x3a32('0x0'));var path=require(_0x3a32('0x1'));var timeout=require(_0x3a32('0x2'));var express=require(_0x3a32('0x3'));var router=express[_0x3a32('0x4')]();var fs_extra=require(_0x3a32('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x3a32('0x6'));var config=require(_0x3a32('0x7'));var controller=require(_0x3a32('0x8'));router[_0x3a32('0x9')]('/',auth[_0x3a32('0xa')](),controller['index']);router[_0x3a32('0x9')](_0x3a32('0xb'),auth[_0x3a32('0xa')](),controller[_0x3a32('0xc')]);router[_0x3a32('0x9')](_0x3a32('0xd'),auth[_0x3a32('0xa')](),controller['show']);router[_0x3a32('0xe')]('/',auth[_0x3a32('0xa')](),controller[_0x3a32('0xf')]);router[_0x3a32('0x10')](_0x3a32('0xd'),auth['isAuthenticated'](),controller['update']);router[_0x3a32('0x11')](_0x3a32('0xd'),auth[_0x3a32('0xa')](),controller[_0x3a32('0x12')]);module[_0x3a32('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5eb8=['STRING','INTEGER','BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split'];(function(_0x34f24c,_0x1a7fdb){var _0x82df82=function(_0x378d41){while(--_0x378d41){_0x34f24c['push'](_0x34f24c['shift']());}};_0x82df82(++_0x1a7fdb);}(_0x5eb8,0xb0));var _0x85eb=function(_0x2bfe52,_0x43946e){_0x2bfe52=_0x2bfe52-0x0;var _0x1cf649=_0x5eb8[_0x2bfe52];return _0x1cf649;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x85eb('0x0')],'allowNull':![]},'category':{'type':Sequelize[_0x85eb('0x0')],'allowNull':![]},'sectionId':{'type':Sequelize[_0x85eb('0x1')],'allowNull':![]},'enabled':{'type':Sequelize[_0x85eb('0x2')],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0x85eb('0x2')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0x85eb('0x0')],'set':function(_0x13b1df){this[_0x85eb('0x3')](_0x85eb('0x4'),_0x13b1df?_0x13b1df[_0x85eb('0x5')](''):[]);},'get':function(){return this[_0x85eb('0x6')](_0x85eb('0x4'))?this['getDataValue'](_0x85eb('0x4'))[_0x85eb('0x7')](''):[];}}};
\ No newline at end of file
+var _0xe2cf=['crudPermissions','join','getDataValue','exports','STRING','BOOLEAN'];(function(_0x35cb18,_0x278908){var _0x33183c=function(_0x32d5c8){while(--_0x32d5c8){_0x35cb18['push'](_0x35cb18['shift']());}};_0x33183c(++_0x278908);}(_0xe2cf,0x1a1));var _0xfe2c=function(_0x46d326,_0x358e38){_0x46d326=_0x46d326-0x0;var _0x5d50fa=_0xe2cf[_0x46d326];return _0x5d50fa;};'use strict';var Sequelize=require('sequelize');module[_0xfe2c('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'category':{'type':Sequelize[_0xfe2c('0x1')],'allowNull':![]},'sectionId':{'type':Sequelize['INTEGER'],'allowNull':![]},'enabled':{'type':Sequelize[_0xfe2c('0x2')],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0xfe2c('0x2')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0xfe2c('0x1')],'set':function(_0x11b6b8){this['setDataValue'](_0xfe2c('0x3'),_0x11b6b8?_0x11b6b8[_0xfe2c('0x4')](''):[]);},'get':function(){return this['getDataValue']('crudPermissions')?this[_0xfe2c('0x5')](_0xfe2c('0x3'))['split'](''):[];}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cd6=['rows','catch','show','keys','fields','find','create','body','params','describe','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','save','then','destroy','stack','name','map','UserProfileSection','rawAttributes','fieldName','type','key','model','query','intersection','length','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filters','merge','VIRTUAL','filter','options','includeAll','include','findAll'];(function(_0x33e132,_0xed44c){var _0x4af974=function(_0x99f25){while(--_0x99f25){_0x33e132['push'](_0x33e132['shift']());}};_0x4af974(++_0xed44c);}(_0x5cd6,0x9e));var _0x65cd=function(_0x1a8f86,_0x5ed9c4){_0x1a8f86=_0x1a8f86-0x0;var _0x20d876=_0x5cd6[_0x1a8f86];return _0x20d876;};'use strict';var emlformat=require(_0x65cd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x65cd('0x1'));var jsonpatch=require(_0x65cd('0x2'));var rp=require(_0x65cd('0x3'));var moment=require('moment');var BPromise=require(_0x65cd('0x4'));var Mustache=require(_0x65cd('0x5'));var util=require(_0x65cd('0x6'));var path=require(_0x65cd('0x7'));var sox=require('sox');var csv=require(_0x65cd('0x8'));var ejs=require(_0x65cd('0x9'));var fs=require('fs');var fs_extra=require(_0x65cd('0xa'));var _=require('lodash');var squel=require(_0x65cd('0xb'));var crypto=require(_0x65cd('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x65cd('0x8'));var querystring=require(_0x65cd('0xd'));var Papa=require(_0x65cd('0xe'));var Redis=require(_0x65cd('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x65cd('0x10'));var as=require(_0x65cd('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x65cd('0x12'))(_0x65cd('0x13'));var utils=require(_0x65cd('0x14'));var config=require(_0x65cd('0x15'));var licenseUtil=require(_0x65cd('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x26fc66,_0x1dd86a){_0x1dd86a=_0x1dd86a||0xcc;return function(_0xddc90c){if(_0xddc90c){return _0x26fc66[_0x65cd('0x17')](_0x1dd86a);}return _0x26fc66['status'](_0x1dd86a)[_0x65cd('0x18')]();};}function respondWithResult(_0x30bfda,_0xe29102){_0xe29102=_0xe29102||0xc8;return function(_0xd3a811){if(_0xd3a811){return _0x30bfda[_0x65cd('0x19')](_0xe29102)[_0x65cd('0x1a')](_0xd3a811);}};}function respondWithFilteredResult(_0x94538d,_0x850a4c){return function(_0x16c5c0){if(_0x16c5c0){var _0x2028a5=typeof _0x850a4c[_0x65cd('0x1b')]===_0x65cd('0x1c')&&typeof _0x850a4c['limit']===_0x65cd('0x1c');var _0x544fe4=_0x16c5c0[_0x65cd('0x1d')];var _0x5c1ce1=_0x2028a5?0x0:_0x850a4c[_0x65cd('0x1b')];var _0x24701c=_0x2028a5?_0x16c5c0['count']:_0x850a4c[_0x65cd('0x1b')]+_0x850a4c[_0x65cd('0x1e')];var _0x11e3b2;if(_0x24701c>=_0x544fe4){_0x24701c=_0x544fe4;_0x11e3b2=0xc8;}else{_0x11e3b2=0xce;}_0x94538d[_0x65cd('0x19')](_0x11e3b2);return _0x94538d[_0x65cd('0x1f')](_0x65cd('0x20'),_0x5c1ce1+'-'+_0x24701c+'/'+_0x544fe4)[_0x65cd('0x1a')](_0x16c5c0);}return null;};}function patchUpdates(_0x26d09c){return function(_0x1b58f5){try{jsonpatch[_0x65cd('0x21')](_0x1b58f5,_0x26d09c,!![]);}catch(_0x120529){return BPromise['reject'](_0x120529);}return _0x1b58f5[_0x65cd('0x22')]();};}function saveUpdates(_0x4eb6d9,_0x1b842c){return function(_0x508e0b){if(_0x508e0b){return _0x508e0b['update'](_0x4eb6d9)[_0x65cd('0x23')](function(_0x21426a){return _0x21426a;});}return null;};}function removeEntity(_0x7d44fd,_0x5009ca){return function(_0x3f168c){if(_0x3f168c){return _0x3f168c[_0x65cd('0x24')]()['then'](function(){_0x7d44fd['status'](0xcc)[_0x65cd('0x18')]();});}};}function handleEntityNotFound(_0xb98dc7,_0x1eaae7){return function(_0xb34e6e){if(!_0xb34e6e){_0xb98dc7[_0x65cd('0x17')](0x194);}return _0xb34e6e;};}function handleError(_0x5b7e5f,_0x570847){_0x570847=_0x570847||0x1f4;return function(_0x2b16c5){logger['error'](_0x2b16c5[_0x65cd('0x25')]);if(_0x2b16c5[_0x65cd('0x26')]){delete _0x2b16c5[_0x65cd('0x26')];}_0x5b7e5f[_0x65cd('0x19')](_0x570847)['send'](_0x2b16c5);};}exports['index']=function(_0x53734f,_0x42cfee){var _0x1a71f2={},_0x1ebef6={},_0x299d2d={'count':0x0,'rows':[]};var _0x198c58=_[_0x65cd('0x27')](db[_0x65cd('0x28')][_0x65cd('0x29')],function(_0x4c0c83){return{'name':_0x4c0c83[_0x65cd('0x2a')],'type':_0x4c0c83[_0x65cd('0x2b')][_0x65cd('0x2c')]};});_0x1ebef6[_0x65cd('0x2d')]=_[_0x65cd('0x27')](_0x198c58,_0x65cd('0x26'));_0x1ebef6[_0x65cd('0x2e')]=_['keys'](_0x53734f[_0x65cd('0x2e')]);_0x1ebef6['filters']=_[_0x65cd('0x2f')](_0x1ebef6['model'],_0x1ebef6[_0x65cd('0x2e')]);_0x1a71f2['attributes']=_[_0x65cd('0x2f')](_0x1ebef6[_0x65cd('0x2d')],qs['fields'](_0x53734f[_0x65cd('0x2e')]['fields']));_0x1a71f2['attributes']=_0x1a71f2['attributes'][_0x65cd('0x30')]?_0x1a71f2[_0x65cd('0x31')]:_0x1ebef6[_0x65cd('0x2d')];if(!_0x53734f[_0x65cd('0x2e')][_0x65cd('0x32')](_0x65cd('0x33'))){_0x1a71f2[_0x65cd('0x1e')]=qs['limit'](_0x53734f[_0x65cd('0x2e')]['limit']);_0x1a71f2[_0x65cd('0x1b')]=qs['offset'](_0x53734f[_0x65cd('0x2e')][_0x65cd('0x1b')]);}_0x1a71f2[_0x65cd('0x34')]=qs[_0x65cd('0x35')](_0x53734f['query'][_0x65cd('0x35')]);_0x1a71f2[_0x65cd('0x36')]=qs['filters'](_[_0x65cd('0x37')](_0x53734f[_0x65cd('0x2e')],_0x1ebef6[_0x65cd('0x38')]),_0x198c58);if(_0x53734f[_0x65cd('0x2e')]['filter']){_0x1a71f2[_0x65cd('0x36')]=_[_0x65cd('0x39')](_0x1a71f2[_0x65cd('0x36')],{'$or':_['map'](_0x198c58,function(_0x376a88){if(_0x376a88[_0x65cd('0x2b')]!==_0x65cd('0x3a')){var _0x10c373={};_0x10c373[_0x376a88[_0x65cd('0x26')]]={'$like':'%'+_0x53734f[_0x65cd('0x2e')][_0x65cd('0x3b')]+'%'};return _0x10c373;}})});}_0x1a71f2=_[_0x65cd('0x39')]({},_0x1a71f2,_0x53734f[_0x65cd('0x3c')]);var _0x33e217={'where':_0x1a71f2['where']};return db[_0x65cd('0x28')][_0x65cd('0x1d')](_0x33e217)[_0x65cd('0x23')](function(_0x3ff516){_0x299d2d[_0x65cd('0x1d')]=_0x3ff516;if(_0x53734f[_0x65cd('0x2e')][_0x65cd('0x3d')]){_0x1a71f2[_0x65cd('0x3e')]=[{'all':!![]}];}return db[_0x65cd('0x28')][_0x65cd('0x3f')](_0x1a71f2);})[_0x65cd('0x23')](function(_0x4693bc){_0x299d2d[_0x65cd('0x40')]=_0x4693bc;return _0x299d2d;})[_0x65cd('0x23')](respondWithFilteredResult(_0x42cfee,_0x1a71f2))[_0x65cd('0x41')](handleError(_0x42cfee,null));};exports[_0x65cd('0x42')]=function(_0x301a74,_0xf8b5a8){var _0x2df5b7={'raw':![],'where':{'id':_0x301a74['params']['id']}},_0x5ec400={};_0x5ec400[_0x65cd('0x2d')]=_[_0x65cd('0x43')](db['UserProfileSection'][_0x65cd('0x29')]);_0x5ec400[_0x65cd('0x2e')]=_[_0x65cd('0x43')](_0x301a74[_0x65cd('0x2e')]);_0x5ec400[_0x65cd('0x38')]=_[_0x65cd('0x2f')](_0x5ec400[_0x65cd('0x2d')],_0x5ec400[_0x65cd('0x2e')]);_0x2df5b7[_0x65cd('0x31')]=_[_0x65cd('0x2f')](_0x5ec400[_0x65cd('0x2d')],qs['fields'](_0x301a74[_0x65cd('0x2e')][_0x65cd('0x44')]));_0x2df5b7[_0x65cd('0x31')]=_0x2df5b7['attributes'][_0x65cd('0x30')]?_0x2df5b7[_0x65cd('0x31')]:_0x5ec400['model'];if(_0x301a74[_0x65cd('0x2e')][_0x65cd('0x3d')]){_0x2df5b7['include']=[{'all':!![]}];}_0x2df5b7=_[_0x65cd('0x39')]({},_0x2df5b7,_0x301a74[_0x65cd('0x3c')]);return db['UserProfileSection'][_0x65cd('0x45')](_0x2df5b7)['then'](handleEntityNotFound(_0xf8b5a8,null))[_0x65cd('0x23')](respondWithResult(_0xf8b5a8,null))['catch'](handleError(_0xf8b5a8,null));};exports['create']=function(_0x4b71ce,_0x267e6d){return db[_0x65cd('0x28')][_0x65cd('0x46')](_0x4b71ce[_0x65cd('0x47')],{})[_0x65cd('0x23')](respondWithResult(_0x267e6d,0xc9))[_0x65cd('0x41')](handleError(_0x267e6d,null));};exports['update']=function(_0x1a3b6e,_0xfadde5){if(_0x1a3b6e[_0x65cd('0x47')]['id']){delete _0x1a3b6e['body']['id'];}return db['UserProfileSection'][_0x65cd('0x45')]({'where':{'id':_0x1a3b6e[_0x65cd('0x48')]['id']}})[_0x65cd('0x23')](handleEntityNotFound(_0xfadde5,null))[_0x65cd('0x23')](saveUpdates(_0x1a3b6e[_0x65cd('0x47')],null))['then'](respondWithResult(_0xfadde5,null))['catch'](handleError(_0xfadde5,null));};exports[_0x65cd('0x24')]=function(_0x47cb0a,_0x3b0b74){return db['UserProfileSection'][_0x65cd('0x45')]({'where':{'id':_0x47cb0a[_0x65cd('0x48')]['id']}})['then'](handleEntityNotFound(_0x3b0b74,null))[_0x65cd('0x23')](removeEntity(_0x3b0b74,null))[_0x65cd('0x41')](handleError(_0x3b0b74,null));};exports['describe']=function(_0x28ddcc,_0x2745df){return db[_0x65cd('0x28')][_0x65cd('0x49')]()[_0x65cd('0x23')](respondWithResult(_0x2745df,null))['catch'](handleError(_0x2745df,null));};
\ No newline at end of file
+var _0xe900=['reject','update','destroy','then','error','stack','name','send','index','map','UserProfileSection','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply'];(function(_0x45783c,_0x49c56d){var _0x1161da=function(_0x3c5d41){while(--_0x3c5d41){_0x45783c['push'](_0x45783c['shift']());}};_0x1161da(++_0x49c56d);}(_0xe900,0x1eb));var _0x0e90=function(_0x1d86e0,_0x20afb7){_0x1d86e0=_0x1d86e0-0x0;var _0x2a4dfc=_0xe900[_0x1d86e0];return _0x2a4dfc;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0e90('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0e90('0x1'));var moment=require(_0x0e90('0x2'));var BPromise=require(_0x0e90('0x3'));var Mustache=require(_0x0e90('0x4'));var util=require(_0x0e90('0x5'));var path=require(_0x0e90('0x6'));var sox=require('sox');var csv=require(_0x0e90('0x7'));var ejs=require(_0x0e90('0x8'));var fs=require('fs');var fs_extra=require(_0x0e90('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x0e90('0xa'));var jsforce=require(_0x0e90('0xb'));var deskjs=require(_0x0e90('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0e90('0xd'));var Redis=require(_0x0e90('0xe'));var authService=require(_0x0e90('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x0e90('0x10'));var hardwareService=require(_0x0e90('0x11'));var logger=require(_0x0e90('0x12'))(_0x0e90('0x13'));var utils=require(_0x0e90('0x14'));var config=require(_0x0e90('0x15'));var licenseUtil=require(_0x0e90('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5b675e,_0xbdd73b){_0xbdd73b=_0xbdd73b||0xcc;return function(_0x46c186){if(_0x46c186){return _0x5b675e[_0x0e90('0x17')](_0xbdd73b);}return _0x5b675e[_0x0e90('0x18')](_0xbdd73b)[_0x0e90('0x19')]();};}function respondWithResult(_0xdf67d9,_0x4c5c65){_0x4c5c65=_0x4c5c65||0xc8;return function(_0x1a3e70){if(_0x1a3e70){return _0xdf67d9['status'](_0x4c5c65)['json'](_0x1a3e70);}};}function respondWithFilteredResult(_0x53328d,_0x25f751){return function(_0x44aac1){if(_0x44aac1){var _0x49ef80=typeof _0x25f751[_0x0e90('0x1a')]===_0x0e90('0x1b')&&typeof _0x25f751[_0x0e90('0x1c')]===_0x0e90('0x1b');var _0x212831=_0x44aac1[_0x0e90('0x1d')];var _0x200b2c=_0x49ef80?0x0:_0x25f751[_0x0e90('0x1a')];var _0x20928f=_0x49ef80?_0x44aac1[_0x0e90('0x1d')]:_0x25f751['offset']+_0x25f751[_0x0e90('0x1c')];var _0x149291;if(_0x20928f>=_0x212831){_0x20928f=_0x212831;_0x149291=0xc8;}else{_0x149291=0xce;}_0x53328d['status'](_0x149291);return _0x53328d[_0x0e90('0x1e')](_0x0e90('0x1f'),_0x200b2c+'-'+_0x20928f+'/'+_0x212831)[_0x0e90('0x20')](_0x44aac1);}return null;};}function patchUpdates(_0x16589b){return function(_0x1afe89){try{jsonpatch[_0x0e90('0x21')](_0x1afe89,_0x16589b,!![]);}catch(_0x461cad){return BPromise[_0x0e90('0x22')](_0x461cad);}return _0x1afe89['save']();};}function saveUpdates(_0x301979,_0x26c1b3){return function(_0x291692){if(_0x291692){return _0x291692[_0x0e90('0x23')](_0x301979)['then'](function(_0x13a983){return _0x13a983;});}return null;};}function removeEntity(_0x8d12f,_0x39eeeb){return function(_0x1c4196){if(_0x1c4196){return _0x1c4196[_0x0e90('0x24')]()[_0x0e90('0x25')](function(){_0x8d12f['status'](0xcc)[_0x0e90('0x19')]();});}};}function handleEntityNotFound(_0x1530d9,_0x7cf0a9){return function(_0x2f432b){if(!_0x2f432b){_0x1530d9[_0x0e90('0x17')](0x194);}return _0x2f432b;};}function handleError(_0x3382c7,_0x204a00){_0x204a00=_0x204a00||0x1f4;return function(_0x375179){logger[_0x0e90('0x26')](_0x375179[_0x0e90('0x27')]);if(_0x375179[_0x0e90('0x28')]){delete _0x375179[_0x0e90('0x28')];}_0x3382c7[_0x0e90('0x18')](_0x204a00)[_0x0e90('0x29')](_0x375179);};}exports[_0x0e90('0x2a')]=function(_0x34a718,_0x48f107){var _0x378241={},_0x530ed6={},_0x4069f9={'count':0x0,'rows':[]};var _0x205541=_[_0x0e90('0x2b')](db[_0x0e90('0x2c')][_0x0e90('0x2d')],function(_0x12f190){return{'name':_0x12f190['fieldName'],'type':_0x12f190[_0x0e90('0x2e')][_0x0e90('0x2f')]};});_0x530ed6['model']=_['map'](_0x205541,_0x0e90('0x28'));_0x530ed6[_0x0e90('0x30')]=_[_0x0e90('0x31')](_0x34a718['query']);_0x530ed6[_0x0e90('0x32')]=_[_0x0e90('0x33')](_0x530ed6[_0x0e90('0x34')],_0x530ed6[_0x0e90('0x30')]);_0x378241[_0x0e90('0x35')]=_[_0x0e90('0x33')](_0x530ed6[_0x0e90('0x34')],qs[_0x0e90('0x36')](_0x34a718['query']['fields']));_0x378241['attributes']=_0x378241[_0x0e90('0x35')][_0x0e90('0x37')]?_0x378241[_0x0e90('0x35')]:_0x530ed6[_0x0e90('0x34')];if(!_0x34a718[_0x0e90('0x30')]['hasOwnProperty'](_0x0e90('0x38'))){_0x378241[_0x0e90('0x1c')]=qs[_0x0e90('0x1c')](_0x34a718[_0x0e90('0x30')][_0x0e90('0x1c')]);_0x378241[_0x0e90('0x1a')]=qs[_0x0e90('0x1a')](_0x34a718[_0x0e90('0x30')]['offset']);}_0x378241['order']=qs[_0x0e90('0x39')](_0x34a718[_0x0e90('0x30')][_0x0e90('0x39')]);_0x378241[_0x0e90('0x3a')]=qs[_0x0e90('0x32')](_[_0x0e90('0x3b')](_0x34a718['query'],_0x530ed6[_0x0e90('0x32')]),_0x205541);if(_0x34a718[_0x0e90('0x30')][_0x0e90('0x3c')]){_0x378241[_0x0e90('0x3a')]=_[_0x0e90('0x3d')](_0x378241[_0x0e90('0x3a')],{'$or':_[_0x0e90('0x2b')](_0x205541,function(_0xc4f2aa){if(_0xc4f2aa['type']!==_0x0e90('0x3e')){var _0x51a68d={};_0x51a68d[_0xc4f2aa[_0x0e90('0x28')]]={'$like':'%'+_0x34a718['query'][_0x0e90('0x3c')]+'%'};return _0x51a68d;}})});}_0x378241=_['merge']({},_0x378241,_0x34a718[_0x0e90('0x3f')]);var _0x5693ea={'where':_0x378241[_0x0e90('0x3a')]};return db[_0x0e90('0x2c')][_0x0e90('0x1d')](_0x5693ea)[_0x0e90('0x25')](function(_0x446272){_0x4069f9['count']=_0x446272;if(_0x34a718['query'][_0x0e90('0x40')]){_0x378241[_0x0e90('0x41')]=[{'all':!![]}];}return db[_0x0e90('0x2c')][_0x0e90('0x42')](_0x378241);})[_0x0e90('0x25')](function(_0x1ba461){_0x4069f9[_0x0e90('0x43')]=_0x1ba461;return _0x4069f9;})[_0x0e90('0x25')](respondWithFilteredResult(_0x48f107,_0x378241))[_0x0e90('0x44')](handleError(_0x48f107,null));};exports[_0x0e90('0x45')]=function(_0x17b21c,_0x5a9fb5){var _0x4a31a2={'raw':![],'where':{'id':_0x17b21c[_0x0e90('0x46')]['id']}},_0x1c0d37={};_0x1c0d37['model']=_[_0x0e90('0x31')](db[_0x0e90('0x2c')]['rawAttributes']);_0x1c0d37['query']=_['keys'](_0x17b21c[_0x0e90('0x30')]);_0x1c0d37[_0x0e90('0x32')]=_[_0x0e90('0x33')](_0x1c0d37['model'],_0x1c0d37[_0x0e90('0x30')]);_0x4a31a2[_0x0e90('0x35')]=_[_0x0e90('0x33')](_0x1c0d37[_0x0e90('0x34')],qs[_0x0e90('0x36')](_0x17b21c[_0x0e90('0x30')]['fields']));_0x4a31a2[_0x0e90('0x35')]=_0x4a31a2[_0x0e90('0x35')][_0x0e90('0x37')]?_0x4a31a2['attributes']:_0x1c0d37[_0x0e90('0x34')];if(_0x17b21c['query'][_0x0e90('0x40')]){_0x4a31a2[_0x0e90('0x41')]=[{'all':!![]}];}_0x4a31a2=_[_0x0e90('0x3d')]({},_0x4a31a2,_0x17b21c[_0x0e90('0x3f')]);return db['UserProfileSection'][_0x0e90('0x47')](_0x4a31a2)[_0x0e90('0x25')](handleEntityNotFound(_0x5a9fb5,null))['then'](respondWithResult(_0x5a9fb5,null))['catch'](handleError(_0x5a9fb5,null));};exports[_0x0e90('0x48')]=function(_0x12eed4,_0x23aff3){return db[_0x0e90('0x2c')][_0x0e90('0x48')](_0x12eed4[_0x0e90('0x49')],{})['then'](respondWithResult(_0x23aff3,0xc9))[_0x0e90('0x44')](handleError(_0x23aff3,null));};exports[_0x0e90('0x23')]=function(_0x41e4c1,_0x373d2f){if(_0x41e4c1[_0x0e90('0x49')]['id']){delete _0x41e4c1['body']['id'];}return db['UserProfileSection'][_0x0e90('0x47')]({'where':{'id':_0x41e4c1[_0x0e90('0x46')]['id']}})[_0x0e90('0x25')](handleEntityNotFound(_0x373d2f,null))['then'](saveUpdates(_0x41e4c1[_0x0e90('0x49')],null))[_0x0e90('0x25')](respondWithResult(_0x373d2f,null))[_0x0e90('0x44')](handleError(_0x373d2f,null));};exports[_0x0e90('0x24')]=function(_0x1a4ae5,_0x499b2d){return db[_0x0e90('0x2c')][_0x0e90('0x47')]({'where':{'id':_0x1a4ae5[_0x0e90('0x46')]['id']}})[_0x0e90('0x25')](handleEntityNotFound(_0x499b2d,null))[_0x0e90('0x25')](removeEntity(_0x499b2d,null))['catch'](handleError(_0x499b2d,null));};exports[_0x0e90('0x4a')]=function(_0x26e821,_0x484d11){return db[_0x0e90('0x2c')]['describe']()[_0x0e90('0x25')](respondWithResult(_0x484d11,null))[_0x0e90('0x44')](handleError(_0x484d11,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd56c=['sectionId','userProfileId','lodash','util','../../config/logger','moment','path','rimraf','../../config/environment','./userProfileSection.attributes','exports','UserProfileSection','user_profile_has_sections','compositeIndex'];(function(_0x13e79b,_0x4473fe){var _0x46f951=function(_0x14df19){while(--_0x14df19){_0x13e79b['push'](_0x13e79b['shift']());}};_0x46f951(++_0x4473fe);}(_0xd56c,0xb8));var _0xcd56=function(_0xaafdd5,_0x4a4511){_0xaafdd5=_0xaafdd5-0x0;var _0x2aeb78=_0xd56c[_0xaafdd5];return _0x2aeb78;};'use strict';var _=require(_0xcd56('0x0'));var util=require(_0xcd56('0x1'));var logger=require(_0xcd56('0x2'))('api');var moment=require(_0xcd56('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xcd56('0x4'));var rimraf=require(_0xcd56('0x5'));var config=require(_0xcd56('0x6'));var attributes=require(_0xcd56('0x7'));module[_0xcd56('0x8')]=function(_0x5c6f73,_0x4ad3f9){return _0x5c6f73['define'](_0xcd56('0x9'),attributes,{'tableName':_0xcd56('0xa'),'paranoid':![],'indexes':[{'name':_0xcd56('0xb'),'fields':[_0xcd56('0xc'),_0xcd56('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x103f=['UserProfileSection','compositeIndex','sectionId','userProfileId','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','./userProfileSection.attributes','exports'];(function(_0xac0176,_0x5b695a){var _0x51ddc6=function(_0xcb867b){while(--_0xcb867b){_0xac0176['push'](_0xac0176['shift']());}};_0x51ddc6(++_0x5b695a);}(_0x103f,0x10e));var _0xf103=function(_0x41df7b,_0x5b4dcf){_0x41df7b=_0x41df7b-0x0;var _0x4affd8=_0x103f[_0x41df7b];return _0x4affd8;};'use strict';var _=require(_0xf103('0x0'));var util=require(_0xf103('0x1'));var logger=require(_0xf103('0x2'))(_0xf103('0x3'));var moment=require(_0xf103('0x4'));var BPromise=require(_0xf103('0x5'));var rp=require(_0xf103('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf103('0x7'));var config=require('../../config/environment');var attributes=require(_0xf103('0x8'));module[_0xf103('0x9')]=function(_0x1f84a3,_0x45492d){return _0x1f84a3['define'](_0xf103('0xa'),attributes,{'tableName':'user_profile_has_sections','paranoid':![],'indexes':[{'name':_0xf103('0xb'),'fields':[_0xf103('0xc'),_0xf103('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7cde=['error','code','message','result','catch','lodash','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','UserProfileSection,\x20%s,\x20%s','UserProfileSection,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x851e0c,_0x5d17d3){var _0x56f112=function(_0x17ecd7){while(--_0x17ecd7){_0x851e0c['push'](_0x851e0c['shift']());}};_0x56f112(++_0x5d17d3);}(_0x7cde,0x16a));var _0xe7cd=function(_0x3d2235,_0x247067){_0x3d2235=_0x3d2235-0x0;var _0x2a7938=_0x7cde[_0x3d2235];return _0x2a7938;};'use strict';var _=require(_0xe7cd('0x0'));var util=require('util');var moment=require(_0xe7cd('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe7cd('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xe7cd('0x3'));var logger=require(_0xe7cd('0x4'))(_0xe7cd('0x5'));var config=require(_0xe7cd('0x6'));var jayson=require(_0xe7cd('0x7'));var client=jayson[_0xe7cd('0x8')][_0xe7cd('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x202078,_0x16e79d,_0x27f595){return new BPromise(function(_0x17f57f,_0x5a8b58){return client['request'](_0x202078,_0x27f595)[_0xe7cd('0xa')](function(_0x3d4a75){logger[_0xe7cd('0xb')](_0xe7cd('0xc'),_0x16e79d,'request\x20sent');logger['debug'](_0xe7cd('0xd'),_0x16e79d,_0xe7cd('0xe'),JSON[_0xe7cd('0xf')](_0x3d4a75));if(_0x3d4a75[_0xe7cd('0x10')]){if(_0x3d4a75[_0xe7cd('0x10')][_0xe7cd('0x11')]===0x1f4){logger['error'](_0xe7cd('0xc'),_0x16e79d,_0x3d4a75['error'][_0xe7cd('0x12')]);return _0x5a8b58(_0x3d4a75['error'][_0xe7cd('0x12')]);}logger[_0xe7cd('0x10')](_0xe7cd('0xc'),_0x16e79d,_0x3d4a75[_0xe7cd('0x10')][_0xe7cd('0x12')]);return _0x17f57f(_0x3d4a75['error'][_0xe7cd('0x12')]);}else{logger[_0xe7cd('0xb')](_0xe7cd('0xc'),_0x16e79d,'request\x20sent');_0x17f57f(_0x3d4a75[_0xe7cd('0x13')]['message']);}})[_0xe7cd('0x14')](function(_0x40f242){logger[_0xe7cd('0x10')](_0xe7cd('0xc'),_0x16e79d,_0x40f242);_0x5a8b58(_0x40f242);});});}
\ No newline at end of file
+var _0xcb57=['lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','debug','UserProfileSection,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','UserProfileSection,\x20%s,\x20%s','message','result','catch'];(function(_0x186740,_0x1ca03a){var _0xb37f50=function(_0x10dc4d){while(--_0x10dc4d){_0x186740['push'](_0x186740['shift']());}};_0xb37f50(++_0x1ca03a);}(_0xcb57,0x8a));var _0x7cb5=function(_0x45783c,_0x49c56d){_0x45783c=_0x45783c-0x0;var _0x1161da=_0xcb57[_0x45783c];return _0x1161da;};'use strict';var _=require(_0x7cb5('0x0'));var util=require(_0x7cb5('0x1'));var moment=require('moment');var BPromise=require(_0x7cb5('0x2'));var rs=require(_0x7cb5('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7cb5('0x4'))['db'];var utils=require(_0x7cb5('0x5'));var logger=require(_0x7cb5('0x6'))(_0x7cb5('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x7cb5('0x8')][_0x7cb5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3cad77,_0x5aa339,_0x4df25c){return new BPromise(function(_0x22b6a5,_0x37c35f){return client[_0x7cb5('0xa')](_0x3cad77,_0x4df25c)[_0x7cb5('0xb')](function(_0x3b4dfc){logger[_0x7cb5('0xc')]('UserProfileSection,\x20%s,\x20%s',_0x5aa339,'request\x20sent');logger[_0x7cb5('0xd')](_0x7cb5('0xe'),_0x5aa339,_0x7cb5('0xf'),JSON[_0x7cb5('0x10')](_0x3b4dfc));if(_0x3b4dfc['error']){if(_0x3b4dfc[_0x7cb5('0x11')][_0x7cb5('0x12')]===0x1f4){logger[_0x7cb5('0x11')](_0x7cb5('0x13'),_0x5aa339,_0x3b4dfc[_0x7cb5('0x11')][_0x7cb5('0x14')]);return _0x37c35f(_0x3b4dfc[_0x7cb5('0x11')][_0x7cb5('0x14')]);}logger[_0x7cb5('0x11')]('UserProfileSection,\x20%s,\x20%s',_0x5aa339,_0x3b4dfc[_0x7cb5('0x11')][_0x7cb5('0x14')]);return _0x22b6a5(_0x3b4dfc['error']['message']);}else{logger[_0x7cb5('0xc')](_0x7cb5('0x13'),_0x5aa339,'request\x20sent');_0x22b6a5(_0x3b4dfc[_0x7cb5('0x15')][_0x7cb5('0x14')]);}})[_0x7cb5('0x16')](function(_0x53b337){logger['error'](_0x7cb5('0x13'),_0x5aa339,_0x53b337);_0x37c35f(_0x53b337);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x389636,_0x2717b4){var _0x4c013e=function(_0x5a0df2){while(--_0x5a0df2){_0x389636['push'](_0x389636['shift']());}};_0x4c013e(++_0x2717b4);}(_0x70e0,0x17b));var _0x070e=function(_0x2fafd8,_0xfd7f63){_0x2fafd8=_0x2fafd8-0x0;var _0x48c557=_0x70e0[_0x2fafd8];return _0x48c557;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x468e71,_0x171468){var _0x2c9045=function(_0x3607c1){while(--_0x3607c1){_0x468e71['push'](_0x468e71['shift']());}};_0x2c9045(++_0x171468);}(_0x9c44,0x178));var _0x49c4=function(_0x1d9aa0,_0x272488){_0x1d9aa0=_0x1d9aa0-0x0;var _0x226868=_0x9c44[_0x1d9aa0];return _0x226868;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2599=['exports','sequelize'];(function(_0x4fc9e6,_0xc51915){var _0x551d28=function(_0x1a603b){while(--_0x1a603b){_0x4fc9e6['push'](_0x4fc9e6['shift']());}};_0x551d28(++_0xc51915);}(_0x2599,0x117));var _0x9259=function(_0xfbcb3,_0x559e9a){_0xfbcb3=_0xfbcb3-0x0;var _0x5d8dc0=_0x2599[_0xfbcb3];return _0x5d8dc0;};'use strict';var Sequelize=require(_0x9259('0x0'));module[_0x9259('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xc0b5=['sequelize','exports'];(function(_0x4fa87d,_0xc9c294){var _0x22279f=function(_0x37f582){while(--_0x37f582){_0x4fa87d['push'](_0x4fa87d['shift']());}};_0x22279f(++_0xc9c294);}(_0xc0b5,0xdc));var _0x5c0b=function(_0x221a91,_0x36c80e){_0x221a91=_0x221a91-0x0;var _0x3d286b=_0xc0b5[_0x221a91];return _0x3d286b;};'use strict';var Sequelize=require(_0x5c0b('0x0'));module[_0x5c0b('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9582=['bluebird','path','rimraf','../../config/environment','./userSmsQueue.attributes','exports','define','UserSmsQueue','user_has_sms_queues','lodash','util','../../config/logger','api','moment'];(function(_0x5e9a4a,_0x3958ec){var _0x4e0b2c=function(_0x4b8ea9){while(--_0x4b8ea9){_0x5e9a4a['push'](_0x5e9a4a['shift']());}};_0x4e0b2c(++_0x3958ec);}(_0x9582,0x95));var _0x2958=function(_0x3a186f,_0x148945){_0x3a186f=_0x3a186f-0x0;var _0x4a3bc1=_0x9582[_0x3a186f];return _0x4a3bc1;};'use strict';var _=require(_0x2958('0x0'));var util=require(_0x2958('0x1'));var logger=require(_0x2958('0x2'))(_0x2958('0x3'));var moment=require(_0x2958('0x4'));var BPromise=require(_0x2958('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2958('0x6'));var rimraf=require(_0x2958('0x7'));var config=require(_0x2958('0x8'));var attributes=require(_0x2958('0x9'));module[_0x2958('0xa')]=function(_0xbde128,_0x88ffaa){return _0xbde128[_0x2958('0xb')](_0x2958('0xc'),attributes,{'tableName':_0x2958('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x199c=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','UserSmsQueue','user_has_sms_queues','../../config/logger'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x199c,0x1d8));var _0xc199=function(_0x35e398,_0x2e3b5b){_0x35e398=_0x35e398-0x0;var _0x17ac67=_0x199c[_0x35e398];return _0x17ac67;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xc199('0x0'))(_0xc199('0x1'));var moment=require(_0xc199('0x2'));var BPromise=require(_0xc199('0x3'));var rp=require(_0xc199('0x4'));var fs=require('fs');var path=require(_0xc199('0x5'));var rimraf=require(_0xc199('0x6'));var config=require(_0xc199('0x7'));var attributes=require('./userSmsQueue.attributes');module[_0xc199('0x8')]=function(_0x2ff172,_0x499721){return _0x2ff172['define'](_0xc199('0x9'),attributes,{'tableName':_0xc199('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7265=['UserSmsQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','then','UserSmsQueue,\x20%s,\x20%s','debug'];(function(_0x5a907f,_0x59b500){var _0x1032a7=function(_0x3c41ac){while(--_0x3c41ac){_0x5a907f['push'](_0x5a907f['shift']());}};_0x1032a7(++_0x59b500);}(_0x7265,0xef));var _0x5726=function(_0x52c251,_0x368c89){_0x52c251=_0x52c251-0x0;var _0x53bc10=_0x7265[_0x52c251];return _0x53bc10;};'use strict';var _=require(_0x5726('0x0'));var util=require(_0x5726('0x1'));var moment=require('moment');var BPromise=require(_0x5726('0x2'));var rs=require(_0x5726('0x3'));var fs=require('fs');var Redis=require(_0x5726('0x4'));var db=require(_0x5726('0x5'))['db'];var utils=require(_0x5726('0x6'));var logger=require(_0x5726('0x7'))('rpc');var config=require(_0x5726('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5726('0x9')][_0x5726('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1c8b1e,_0x2f5dbc,_0x551398){return new BPromise(function(_0x26fd46,_0x290610){return client['request'](_0x1c8b1e,_0x551398)[_0x5726('0xb')](function(_0x5753eb){logger['info'](_0x5726('0xc'),_0x2f5dbc,'request\x20sent');logger[_0x5726('0xd')](_0x5726('0xe'),_0x2f5dbc,_0x5726('0xf'),JSON[_0x5726('0x10')](_0x5753eb));if(_0x5753eb[_0x5726('0x11')]){if(_0x5753eb['error'][_0x5726('0x12')]===0x1f4){logger[_0x5726('0x11')](_0x5726('0xc'),_0x2f5dbc,_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);return _0x290610(_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);}logger['error']('UserSmsQueue,\x20%s,\x20%s',_0x2f5dbc,_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);return _0x26fd46(_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);}else{logger[_0x5726('0x14')]('UserSmsQueue,\x20%s,\x20%s',_0x2f5dbc,'request\x20sent');_0x26fd46(_0x5753eb[_0x5726('0x15')][_0x5726('0x13')]);}})[_0x5726('0x16')](function(_0x3d6d74){logger[_0x5726('0x11')]('UserSmsQueue,\x20%s,\x20%s',_0x2f5dbc,_0x3d6d74);_0x290610(_0x3d6d74);});});}
\ No newline at end of file
+var _0x1697=['code','message','result','catch','lodash','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','UserSmsQueue,\x20%s,\x20%s','request\x20sent','UserSmsQueue,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0xeaa57e,_0x2f5072){var _0x5dd286=function(_0x3a4f5b){while(--_0x3a4f5b){_0xeaa57e['push'](_0xeaa57e['shift']());}};_0x5dd286(++_0x2f5072);}(_0x1697,0x194));var _0x7169=function(_0x334841,_0x2bbc4c){_0x334841=_0x334841-0x0;var _0x5beb4b=_0x1697[_0x334841];return _0x5beb4b;};'use strict';var _=require(_0x7169('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x7169('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7169('0x2'))['db'];var utils=require(_0x7169('0x3'));var logger=require(_0x7169('0x4'))(_0x7169('0x5'));var config=require(_0x7169('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x7169('0x7')][_0x7169('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x38def6,_0x280d16,_0xe1aed5){return new BPromise(function(_0x334a13,_0x24376c){return client['request'](_0x38def6,_0xe1aed5)[_0x7169('0x9')](function(_0x12ca67){logger[_0x7169('0xa')](_0x7169('0xb'),_0x280d16,_0x7169('0xc'));logger['debug'](_0x7169('0xd'),_0x280d16,_0x7169('0xc'),JSON[_0x7169('0xe')](_0x12ca67));if(_0x12ca67[_0x7169('0xf')]){if(_0x12ca67['error'][_0x7169('0x10')]===0x1f4){logger[_0x7169('0xf')](_0x7169('0xb'),_0x280d16,_0x12ca67['error'][_0x7169('0x11')]);return _0x24376c(_0x12ca67[_0x7169('0xf')][_0x7169('0x11')]);}logger[_0x7169('0xf')](_0x7169('0xb'),_0x280d16,_0x12ca67['error']['message']);return _0x334a13(_0x12ca67[_0x7169('0xf')][_0x7169('0x11')]);}else{logger[_0x7169('0xa')](_0x7169('0xb'),_0x280d16,_0x7169('0xc'));_0x334a13(_0x12ca67[_0x7169('0x12')][_0x7169('0x11')]);}})[_0x7169('0x13')](function(_0x2ccab0){logger[_0x7169('0xf')]('UserSmsQueue,\x20%s,\x20%s',_0x280d16,_0x2ccab0);_0x24376c(_0x2ccab0);});});}
\ No newline at end of file
--- /dev/null
+// *************************************************************************
+// * *
+// * xCALLY Motion - The Omnichannel Contact Center *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
+// * *
+// *************************************************************************
+// * *
+// * Email: info@xcally.com *
+// * Website: https://www.xcally.com *
+// * *
+// *************************************************************************
+// * *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
+// * *
+// *************************************************************************
+var _0x48d8=['exports','INTEGER'];(function(_0x469b9b,_0x2e697f){var _0x4c8659=function(_0x2e61d2){while(--_0x2e61d2){_0x469b9b['push'](_0x469b9b['shift']());}};_0x4c8659(++_0x2e697f);}(_0x48d8,0x190));var _0x848d=function(_0x2d2113,_0x496760){_0x2d2113=_0x2d2113-0x0;var _0x4168ec=_0x48d8[_0x2d2113];return _0x4168ec;};'use strict';var Sequelize=require('sequelize');module[_0x848d('0x0')]={'UserId':{'type':Sequelize[_0x848d('0x1')]},'VoicePrefixId':{'type':Sequelize[_0x848d('0x1')]}};
\ No newline at end of file
--- /dev/null
+// *************************************************************************
+// * *
+// * xCALLY Motion - The Omnichannel Contact Center *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
+// * *
+// *************************************************************************
+// * *
+// * Email: info@xcally.com *
+// * Website: https://www.xcally.com *
+// * *
+// *************************************************************************
+// * *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
+// * *
+// *************************************************************************
+var _0xa9e0=['../../config/environment','./userVoicePrefix.attributes','exports','define','UserVoicePrefix','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x3ab084,_0xa9de4){var _0x3254ab=function(_0x35df2d){while(--_0x35df2d){_0x3ab084['push'](_0x3ab084['shift']());}};_0x3254ab(++_0xa9de4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2b10c6,_0x185590){_0x2b10c6=_0x2b10c6-0x0;var _0x3789d2=_0xa9e0[_0x2b10c6];return _0x3789d2;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'user_has_voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x5e8b25,_0x4403c4){var _0x262c8b=function(_0x28b542){while(--_0x28b542){_0x5e8b25['push'](_0x5e8b25['shift']());}};_0x262c8b(++_0x4403c4);}(_0xa9e0,0x123));var _0x0a9e=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0xa9e0[_0xa1e3e3];return _0xc980e9;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x217c20,_0x430613){var _0x1cb962=function(_0xb07932){while(--_0xb07932){_0x217c20['push'](_0x217c20['shift']());}};_0x1cb962(++_0x430613);}(_0x70e0,0x17b));var _0x070e=function(_0x143005,_0x187fa5){_0x143005=_0x143005-0x0;var _0x45c501=_0x70e0[_0x143005];return _0x45c501;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x244e=['INTEGER','sequelize'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x244e,0x1e9));var _0xe244=function(_0x129b64,_0xe7e804){_0x129b64=_0x129b64-0x0;var _0x338821=_0x244e[_0x129b64];return _0x338821;};'use strict';var Sequelize=require(_0xe244('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xe244('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe51b=['sequelize','exports'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0xe51b,0x92));var _0xbe51=function(_0x1ec3fa,_0x3e9940){_0x1ec3fa=_0x1ec3fa-0x0;var _0x349bee=_0xe51b[_0x1ec3fa];return _0x349bee;};'use strict';var Sequelize=require(_0xbe51('0x0'));module[_0xbe51('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e14=['UserVoiceQueue','user_has_voice_queues','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./userVoiceQueue.attributes','exports','define'];(function(_0x1db584,_0x4ade9c){var _0xf40db5=function(_0x1c0dd0){while(--_0x1c0dd0){_0x1db584['push'](_0x1db584['shift']());}};_0xf40db5(++_0x4ade9c);}(_0x4e14,0x10c));var _0x44e1=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0x4e14[_0x413feb];return _0x40ee88;};'use strict';var _=require(_0x44e1('0x0'));var util=require(_0x44e1('0x1'));var logger=require(_0x44e1('0x2'))(_0x44e1('0x3'));var moment=require(_0x44e1('0x4'));var BPromise=require(_0x44e1('0x5'));var rp=require(_0x44e1('0x6'));var fs=require('fs');var path=require(_0x44e1('0x7'));var rimraf=require('rimraf');var config=require(_0x44e1('0x8'));var attributes=require(_0x44e1('0x9'));module[_0x44e1('0xa')]=function(_0x50f330,_0x4bb1fd){return _0x50f330[_0x44e1('0xb')](_0x44e1('0xc'),attributes,{'tableName':_0x44e1('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x247b=['user_has_voice_queues','lodash','util','moment','bluebird','request-promise','path','rimraf','./userVoiceQueue.attributes','exports','define','UserVoiceQueue'];(function(_0x3a73bc,_0x550aef){var _0x32891b=function(_0x20b4cb){while(--_0x20b4cb){_0x3a73bc['push'](_0x3a73bc['shift']());}};_0x32891b(++_0x550aef);}(_0x247b,0xb5));var _0xb247=function(_0x44076c,_0x46d2c7){_0x44076c=_0x44076c-0x0;var _0x4b4e19=_0x247b[_0x44076c];return _0x4b4e19;};'use strict';var _=require(_0xb247('0x0'));var util=require(_0xb247('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xb247('0x2'));var BPromise=require(_0xb247('0x3'));var rp=require(_0xb247('0x4'));var fs=require('fs');var path=require(_0xb247('0x5'));var rimraf=require(_0xb247('0x6'));var config=require('../../config/environment');var attributes=require(_0xb247('0x7'));module[_0xb247('0x8')]=function(_0x5f2191,_0x3c7494){return _0x5f2191[_0xb247('0x9')](_0xb247('0xa'),attributes,{'tableName':_0xb247('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4210=['debug','UserVoiceQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','UserVoiceQueue,\x20%s,\x20%s'];(function(_0x50f6fb,_0x26af32){var _0x5c87f1=function(_0x3e4307){while(--_0x3e4307){_0x50f6fb['push'](_0x50f6fb['shift']());}};_0x5c87f1(++_0x26af32);}(_0x4210,0x64));var _0x0421=function(_0x2d2a99,_0x167a42){_0x2d2a99=_0x2d2a99-0x0;var _0x17d11a=_0x4210[_0x2d2a99];return _0x17d11a;};'use strict';var _=require(_0x0421('0x0'));var util=require(_0x0421('0x1'));var moment=require('moment');var BPromise=require(_0x0421('0x2'));var rs=require(_0x0421('0x3'));var fs=require('fs');var Redis=require(_0x0421('0x4'));var db=require(_0x0421('0x5'))['db'];var utils=require(_0x0421('0x6'));var logger=require('../../config/logger')(_0x0421('0x7'));var config=require(_0x0421('0x8'));var jayson=require(_0x0421('0x9'));var client=jayson[_0x0421('0xa')][_0x0421('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x10c154,_0x1c7dfb,_0xf42fb2){return new BPromise(function(_0x4c27d2,_0x5178d9){return client[_0x0421('0xc')](_0x10c154,_0xf42fb2)['then'](function(_0x32fb87){logger[_0x0421('0xd')](_0x0421('0xe'),_0x1c7dfb,'request\x20sent');logger[_0x0421('0xf')](_0x0421('0x10'),_0x1c7dfb,_0x0421('0x11'),JSON[_0x0421('0x12')](_0x32fb87));if(_0x32fb87[_0x0421('0x13')]){if(_0x32fb87[_0x0421('0x13')]['code']===0x1f4){logger['error']('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);return _0x5178d9(_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);}logger[_0x0421('0x13')]('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);return _0x4c27d2(_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);}else{logger[_0x0421('0xd')]('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x0421('0x11'));_0x4c27d2(_0x32fb87[_0x0421('0x15')][_0x0421('0x14')]);}})[_0x0421('0x16')](function(_0x50ac25){logger['error']('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x50ac25);_0x5178d9(_0x50ac25);});});}
\ No newline at end of file
+var _0xcad4=['bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','lodash','util','moment'];(function(_0xe69156,_0x3c8847){var _0x4e5968=function(_0x4220ac){while(--_0x4220ac){_0xe69156['push'](_0xe69156['shift']());}};_0x4e5968(++_0x3c8847);}(_0xcad4,0x1cb));var _0x4cad=function(_0x56adeb,_0xc0483){_0x56adeb=_0x56adeb-0x0;var _0xa61331=_0xcad4[_0x56adeb];return _0xa61331;};'use strict';var _=require(_0x4cad('0x0'));var util=require(_0x4cad('0x1'));var moment=require(_0x4cad('0x2'));var BPromise=require(_0x4cad('0x3'));var rs=require(_0x4cad('0x4'));var fs=require('fs');var Redis=require(_0x4cad('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x4cad('0x6'))(_0x4cad('0x7'));var config=require(_0x4cad('0x8'));var jayson=require(_0x4cad('0x9'));var client=jayson['client'][_0x4cad('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1b56fe,_0x225b73,_0x4c9a07){return new BPromise(function(_0x15bffa,_0x232c40){return client[_0x4cad('0xb')](_0x1b56fe,_0x4c9a07)[_0x4cad('0xc')](function(_0x4abd93){logger['info'](_0x4cad('0xd'),_0x225b73,_0x4cad('0xe'));logger['debug'](_0x4cad('0xf'),_0x225b73,'request\x20sent',JSON[_0x4cad('0x10')](_0x4abd93));if(_0x4abd93[_0x4cad('0x11')]){if(_0x4abd93[_0x4cad('0x11')][_0x4cad('0x12')]===0x1f4){logger[_0x4cad('0x11')](_0x4cad('0xd'),_0x225b73,_0x4abd93[_0x4cad('0x11')][_0x4cad('0x13')]);return _0x232c40(_0x4abd93[_0x4cad('0x11')][_0x4cad('0x13')]);}logger['error'](_0x4cad('0xd'),_0x225b73,_0x4abd93[_0x4cad('0x11')][_0x4cad('0x13')]);return _0x15bffa(_0x4abd93[_0x4cad('0x11')][_0x4cad('0x13')]);}else{logger[_0x4cad('0x14')](_0x4cad('0xd'),_0x225b73,_0x4cad('0xe'));_0x15bffa(_0x4abd93[_0x4cad('0x15')]['message']);}})['catch'](function(_0x461594){logger[_0x4cad('0x11')](_0x4cad('0xd'),_0x225b73,_0x461594);_0x232c40(_0x461594);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x1a0808,_0x5e690f){var _0x29a25c=function(_0x213ffb){while(--_0x213ffb){_0x1a0808['push'](_0x1a0808['shift']());}};_0x29a25c(++_0x5e690f);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
+var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x504f51,_0x18f316){var _0x4b6027=function(_0x4a5480){while(--_0x4a5480){_0x504f51['push'](_0x504f51['shift']());}};_0x4b6027(++_0x18f316);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x4067ac,_0x363603){_0x4067ac=_0x4067ac-0x0;var _0x53d74d=_0xcb91[_0x4067ac];return _0x53d74d;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9d9=['exports','INTEGER','Required\x20by\x20Asterisk','STRING','queue_interface'];(function(_0x492267,_0x4f71d5){var _0x1d250f=function(_0x670dc7){while(--_0x670dc7){_0x492267['push'](_0x492267['shift']());}};_0x1d250f(++_0x4f71d5);}(_0xd9d9,0x11d));var _0x9d9d=function(_0x23a132,_0x396da3){_0x23a132=_0x23a132-0x0;var _0x203d80=_0xd9d9[_0x23a132];return _0x203d80;};'use strict';var Sequelize=require('sequelize');module[_0x9d9d('0x0')]={'uniqueid':{'type':Sequelize[_0x9d9d('0x1')],'primaryKey':!![],'autoIncrement':!![],'comment':_0x9d9d('0x2')},'membername':{'type':Sequelize[_0x9d9d('0x3')],'allowNull':![],'comment':_0x9d9d('0x2')},'UserId':{'type':Sequelize[_0x9d9d('0x1')],'allowNull':![]},'queue_name':{'type':Sequelize[_0x9d9d('0x3')],'allowNull':![],'unique':_0x9d9d('0x4'),'comment':'Required\x20by\x20Asterisk'},'VoiceQueueId':{'type':Sequelize['INTEGER'],'allowNull':![]},'interface':{'type':Sequelize[_0x9d9d('0x3')],'allowNull':![],'unique':'queue_interface','comment':_0x9d9d('0x2')},'penalty':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'comment':_0x9d9d('0x2')},'paused':{'type':Sequelize[_0x9d9d('0x1')](0xb),'defaultValue':0x0,'comment':_0x9d9d('0x2')}};
\ No newline at end of file
+var _0x38e9=['queue_interface','sequelize','exports','INTEGER','Required\x20by\x20Asterisk','STRING'];(function(_0x2ee1da,_0xdd8b79){var _0x10e556=function(_0x576def){while(--_0x576def){_0x2ee1da['push'](_0x2ee1da['shift']());}};_0x10e556(++_0xdd8b79);}(_0x38e9,0x1b7));var _0x938e=function(_0x1fe8b9,_0xd87696){_0x1fe8b9=_0x1fe8b9-0x0;var _0x25d006=_0x38e9[_0x1fe8b9];return _0x25d006;};'use strict';var Sequelize=require(_0x938e('0x0'));module[_0x938e('0x1')]={'uniqueid':{'type':Sequelize[_0x938e('0x2')],'primaryKey':!![],'autoIncrement':!![],'comment':'Required\x20by\x20Asterisk'},'membername':{'type':Sequelize['STRING'],'allowNull':![],'comment':_0x938e('0x3')},'UserId':{'type':Sequelize[_0x938e('0x2')],'allowNull':![]},'queue_name':{'type':Sequelize[_0x938e('0x4')],'allowNull':![],'unique':'queue_interface','comment':_0x938e('0x3')},'VoiceQueueId':{'type':Sequelize[_0x938e('0x2')],'allowNull':![]},'interface':{'type':Sequelize[_0x938e('0x4')],'allowNull':![],'unique':_0x938e('0x5'),'comment':_0x938e('0x3')},'penalty':{'type':Sequelize[_0x938e('0x2')](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'},'paused':{'type':Sequelize[_0x938e('0x2')](0xb),'defaultValue':0x0,'comment':_0x938e('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb75c=['emit','hasOwnProperty','hook','events','save','update'];(function(_0x494f4d,_0x2807fa){var _0x3e7dfc=function(_0x14f2d2){while(--_0x14f2d2){_0x494f4d['push'](_0x494f4d['shift']());}};_0x3e7dfc(++_0x2807fa);}(_0xb75c,0xe1));var _0xcb75=function(_0x3740a4,_0x2fe37a){_0x3740a4=_0x3740a4-0x0;var _0x3dd54d=_0xb75c[_0x3740a4];return _0x3dd54d;};'use strict';var EventEmitter=require(_0xcb75('0x0'));var UserVoiceQueueRt=require('../../mysqldb')['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xcb75('0x1'),'afterUpdate':_0xcb75('0x2'),'afterDestroy':'remove'};function emitEvent(_0x4dd2ba){return function(_0x313126,_0x1a9061,_0x18edcc){UserVoiceQueueRtEvents[_0xcb75('0x3')](_0x4dd2ba+':'+_0x313126['id'],_0x313126);UserVoiceQueueRtEvents[_0xcb75('0x3')](_0x4dd2ba,_0x313126);_0x18edcc(null);};}for(var e in events){if(events[_0xcb75('0x4')](e)){var event=events[e];UserVoiceQueueRt[_0xcb75('0x5')](e,emitEvent(event));}}module['exports']=UserVoiceQueueRtEvents;
\ No newline at end of file
+var _0x921f=['../../mysqldb','UserVoiceQueueRt','setMaxListeners','save','update','remove','emit','hook','exports','events'];(function(_0x59c3dc,_0x47c81a){var _0x4a710c=function(_0x6b66b){while(--_0x6b66b){_0x59c3dc['push'](_0x59c3dc['shift']());}};_0x4a710c(++_0x47c81a);}(_0x921f,0xdb));var _0xf921=function(_0x3052d6,_0x4d1cb9){_0x3052d6=_0x3052d6-0x0;var _0x969660=_0x921f[_0x3052d6];return _0x969660;};'use strict';var EventEmitter=require(_0xf921('0x0'));var UserVoiceQueueRt=require(_0xf921('0x1'))['db'][_0xf921('0x2')];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0xf921('0x3')](0x0);var events={'afterCreate':_0xf921('0x4'),'afterUpdate':_0xf921('0x5'),'afterDestroy':_0xf921('0x6')};function emitEvent(_0x332847){return function(_0x2f4b8e,_0x48deb8,_0x4bd47e){UserVoiceQueueRtEvents[_0xf921('0x7')](_0x332847+':'+_0x2f4b8e['id'],_0x2f4b8e);UserVoiceQueueRtEvents[_0xf921('0x7')](_0x332847,_0x2f4b8e);_0x4bd47e(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];UserVoiceQueueRt[_0xf921('0x8')](e,emitEvent(event));}}module[_0xf921('0x9')]=UserVoiceQueueRtEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12e4=['define','UserVoiceQueueRt','user_has_voice_queues_rt','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./userVoiceQueueRt.attributes','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x12e4,0xac));var _0x412e=function(_0x5ab11b,_0x19fbdd){_0x5ab11b=_0x5ab11b-0x0;var _0x56c4e3=_0x12e4[_0x5ab11b];return _0x56c4e3;};'use strict';var _=require(_0x412e('0x0'));var util=require(_0x412e('0x1'));var logger=require('../../config/logger')(_0x412e('0x2'));var moment=require(_0x412e('0x3'));var BPromise=require(_0x412e('0x4'));var rp=require(_0x412e('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x412e('0x6'));var config=require(_0x412e('0x7'));var attributes=require(_0x412e('0x8'));module[_0x412e('0x9')]=function(_0x3da81c,_0x1691bd){return _0x3da81c[_0x412e('0xa')](_0x412e('0xb'),attributes,{'tableName':_0x412e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x334e=['../../config/logger','api','moment','bluebird','../../config/environment','./userVoiceQueueRt.attributes','exports','define','lodash','util'];(function(_0x5a0f4e,_0x160144){var _0x547be1=function(_0x12107a){while(--_0x12107a){_0x5a0f4e['push'](_0x5a0f4e['shift']());}};_0x547be1(++_0x160144);}(_0x334e,0xc6));var _0xe334=function(_0x26779a,_0xf8273f){_0x26779a=_0x26779a-0x0;var _0x233176=_0x334e[_0x26779a];return _0x233176;};'use strict';var _=require(_0xe334('0x0'));var util=require(_0xe334('0x1'));var logger=require(_0xe334('0x2'))(_0xe334('0x3'));var moment=require(_0xe334('0x4'));var BPromise=require(_0xe334('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xe334('0x6'));var attributes=require(_0xe334('0x7'));module[_0xe334('0x8')]=function(_0x28b545,_0x31c2fd){return _0x28b545[_0xe334('0x9')]('UserVoiceQueueRt',attributes,{'tableName':'user_has_voice_queues_rt','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b77=['message','result','GetVoiceQueueRtPauses','findAll','options','raw','where','sequelize','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','info','catch','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','./userVoiceQueueRt.socket','register','then','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x294d9a,_0x3b43d0){var _0x48f15f=function(_0x1cdfa2){while(--_0x1cdfa2){_0x294d9a['push'](_0x294d9a['shift']());}};_0x48f15f(++_0x3b43d0);}(_0x6b77,0x6f));var _0x76b7=function(_0x227ff6,_0xdf0020){_0x227ff6=_0x227ff6-0x0;var _0x2c5f91=_0x6b77[_0x227ff6];return _0x2c5f91;};'use strict';var _=require('lodash');var util=require(_0x76b7('0x0'));var moment=require(_0x76b7('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x76b7('0x2'));var db=require(_0x76b7('0x3'))['db'];var utils=require(_0x76b7('0x4'));var logger=require(_0x76b7('0x5'))('rpc');var config=require(_0x76b7('0x6'));var jayson=require(_0x76b7('0x7'));var client=jayson[_0x76b7('0x8')][_0x76b7('0x9')]({'port':0x232a});config['redis']=_[_0x76b7('0xa')](config[_0x76b7('0xb')],{'host':_0x76b7('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x76b7('0xb')]));require(_0x76b7('0xd'))[_0x76b7('0xe')](socket);function respondWithRpcPromise(_0x54f810,_0x2d9d09,_0x200f78){return new BPromise(function(_0x10f337,_0x2876e0){return client['request'](_0x54f810,_0x200f78)[_0x76b7('0xf')](function(_0xb87487){logger['info'](_0x76b7('0x10'),_0x2d9d09,_0x76b7('0x11'));logger[_0x76b7('0x12')]('UserVoiceQueueRt,\x20%s,\x20%s,\x20%s',_0x2d9d09,_0x76b7('0x11'),JSON[_0x76b7('0x13')](_0xb87487));if(_0xb87487[_0x76b7('0x14')]){if(_0xb87487[_0x76b7('0x14')]['code']===0x1f4){logger['error']('UserVoiceQueueRt,\x20%s,\x20%s',_0x2d9d09,_0xb87487[_0x76b7('0x14')][_0x76b7('0x15')]);return _0x2876e0(_0xb87487['error']['message']);}logger['error'](_0x76b7('0x10'),_0x2d9d09,_0xb87487[_0x76b7('0x14')][_0x76b7('0x15')]);return _0x10f337(_0xb87487[_0x76b7('0x14')]['message']);}else{logger['info'](_0x76b7('0x10'),_0x2d9d09,_0x76b7('0x11'));_0x10f337(_0xb87487[_0x76b7('0x16')][_0x76b7('0x15')]);}})['catch'](function(_0x2e31a0){logger[_0x76b7('0x14')](_0x76b7('0x10'),_0x2d9d09,_0x2e31a0);_0x2876e0(_0x2e31a0);});});}exports[_0x76b7('0x17')]=function(_0x476cd3){var _0x5e18bd=this;return new Promise(function(_0x5b8f04,_0x22bf88){return db['UserVoiceQueueRt'][_0x76b7('0x18')]({'raw':_0x476cd3[_0x76b7('0x19')]?_0x476cd3['options'][_0x76b7('0x1a')]===undefined?!![]:![]:!![],'where':_0x476cd3[_0x76b7('0x19')]?_0x476cd3['options'][_0x76b7('0x1b')]||null:null,'attributes':[[db[_0x76b7('0x1c')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x76b7('0x1c')]['literal'](_0x76b7('0x1d')))),_0x76b7('0x1e')]]})['then'](function(_0x5240ef){logger[_0x76b7('0x1f')](_0x76b7('0x17'),_0x476cd3);logger['debug']('GetVoiceQueueRtPauses',_0x476cd3,JSON[_0x76b7('0x13')](_0x5240ef));_0x5b8f04(_0x5240ef);})[_0x76b7('0x20')](function(_0x58d7fa){logger[_0x76b7('0x14')](_0x76b7('0x17'),_0x58d7fa[_0x76b7('0x15')],_0x476cd3);_0x22bf88(_0x5e18bd['error'](0x1f4,_0x58d7fa[_0x76b7('0x15')]));});});};
\ No newline at end of file
+var _0x419c=['result','UserVoiceQueueRt','options','where','COUNT','sequelize','outboundQueuePauses','then','debug','GetVoiceQueueRtPauses','stringify','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./userVoiceQueueRt.socket','register','request','request\x20sent','UserVoiceQueueRt,\x20%s,\x20%s,\x20%s','error','message','UserVoiceQueueRt,\x20%s,\x20%s'];(function(_0x234732,_0x2dc38b){var _0xed5bc7=function(_0x172e7b){while(--_0x172e7b){_0x234732['push'](_0x234732['shift']());}};_0xed5bc7(++_0x2dc38b);}(_0x419c,0x159));var _0xc419=function(_0x41d552,_0x1e59db){_0x41d552=_0x41d552-0x0;var _0x45d056=_0x419c[_0x41d552];return _0x45d056;};'use strict';var _=require(_0xc419('0x0'));var util=require('util');var moment=require(_0xc419('0x1'));var BPromise=require(_0xc419('0x2'));var rs=require(_0xc419('0x3'));var fs=require('fs');var Redis=require(_0xc419('0x4'));var db=require(_0xc419('0x5'))['db'];var utils=require(_0xc419('0x6'));var logger=require(_0xc419('0x7'))(_0xc419('0x8'));var config=require(_0xc419('0x9'));var jayson=require(_0xc419('0xa'));var client=jayson[_0xc419('0xb')][_0xc419('0xc')]({'port':0x232a});config[_0xc419('0xd')]=_[_0xc419('0xe')](config[_0xc419('0xd')],{'host':_0xc419('0xf'),'port':0x18eb});var socket=require(_0xc419('0x10'))(new Redis(config[_0xc419('0xd')]));require(_0xc419('0x11'))[_0xc419('0x12')](socket);function respondWithRpcPromise(_0x10cc7d,_0x2165b7,_0x591b3f){return new BPromise(function(_0x22a676,_0x5b67bd){return client[_0xc419('0x13')](_0x10cc7d,_0x591b3f)['then'](function(_0x10e91b){logger['info']('UserVoiceQueueRt,\x20%s,\x20%s',_0x2165b7,_0xc419('0x14'));logger['debug'](_0xc419('0x15'),_0x2165b7,_0xc419('0x14'),JSON['stringify'](_0x10e91b));if(_0x10e91b[_0xc419('0x16')]){if(_0x10e91b[_0xc419('0x16')]['code']===0x1f4){logger[_0xc419('0x16')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x2165b7,_0x10e91b['error'][_0xc419('0x17')]);return _0x5b67bd(_0x10e91b[_0xc419('0x16')][_0xc419('0x17')]);}logger[_0xc419('0x16')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x2165b7,_0x10e91b[_0xc419('0x16')]['message']);return _0x22a676(_0x10e91b[_0xc419('0x16')][_0xc419('0x17')]);}else{logger['info'](_0xc419('0x18'),_0x2165b7,_0xc419('0x14'));_0x22a676(_0x10e91b[_0xc419('0x19')]['message']);}})['catch'](function(_0x1a1a04){logger['error'](_0xc419('0x18'),_0x2165b7,_0x1a1a04);_0x5b67bd(_0x1a1a04);});});}exports['GetVoiceQueueRtPauses']=function(_0x5b88f6){var _0x41bdc8=this;return new Promise(function(_0xb1e83d,_0xf03658){return db[_0xc419('0x1a')]['findAll']({'raw':_0x5b88f6[_0xc419('0x1b')]?_0x5b88f6['options']['raw']===undefined?!![]:![]:!![],'where':_0x5b88f6['options']?_0x5b88f6[_0xc419('0x1b')][_0xc419('0x1c')]||null:null,'attributes':[[db['sequelize']['fn'](_0xc419('0x1d'),db['sequelize']['fn']('IF',db[_0xc419('0x1e')]['literal']('`paused`\x20=\x201,\x201,\x20null'))),_0xc419('0x1f')]]})[_0xc419('0x20')](function(_0x564d4f){logger['info']('GetVoiceQueueRtPauses',_0x5b88f6);logger[_0xc419('0x21')](_0xc419('0x22'),_0x5b88f6,JSON[_0xc419('0x23')](_0x564d4f));_0xb1e83d(_0x564d4f);})[_0xc419('0x24')](function(_0x9abbaf){logger['error'](_0xc419('0x22'),_0x9abbaf['message'],_0x5b88f6);_0xf03658(_0x41bdc8[_0xc419('0x16')](0x1f4,_0x9abbaf['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ad3=['./userVoiceQueueRt.events','save','remove','update','length','userVoiceQueueRt:'];(function(_0x1eec60,_0x4f4b84){var _0x15c4ce=function(_0x5b5443){while(--_0x5b5443){_0x1eec60['push'](_0x1eec60['shift']());}};_0x15c4ce(++_0x4f4b84);}(_0x7ad3,0x108));var _0x37ad=function(_0x576170,_0x1712ae){_0x576170=_0x576170-0x0;var _0x397c70=_0x7ad3[_0x576170];return _0x397c70;};'use strict';var UserVoiceQueueRtEvents=require(_0x37ad('0x0'));var events=[_0x37ad('0x1'),_0x37ad('0x2'),_0x37ad('0x3')];function createListener(_0x59b2ad,_0x30c8cf){return function(_0x4e59f0){_0x30c8cf['emit'](_0x59b2ad,_0x4e59f0);};}function removeListener(_0x1853b6,_0x57ce4c){return function(){UserVoiceQueueRtEvents['removeListener'](_0x1853b6,_0x57ce4c);};}exports['register']=function(_0x341527){for(var _0x9cb624=0x0,_0x39d395=events[_0x37ad('0x4')];_0x9cb624<_0x39d395;_0x9cb624++){var _0xd8b0fe=events[_0x9cb624];var _0x2b361a=createListener(_0x37ad('0x5')+_0xd8b0fe,_0x341527);UserVoiceQueueRtEvents['on'](_0xd8b0fe,_0x2b361a);}};
\ No newline at end of file
+var _0xafdd=['emit','removeListener','register','length','userVoiceQueueRt:','./userVoiceQueueRt.events','save','remove','update'];(function(_0x5c6652,_0x57ef7f){var _0x25728d=function(_0x5a40d2){while(--_0x5a40d2){_0x5c6652['push'](_0x5c6652['shift']());}};_0x25728d(++_0x57ef7f);}(_0xafdd,0x19a));var _0xdafd=function(_0x9cf8a2,_0x5acc81){_0x9cf8a2=_0x9cf8a2-0x0;var _0x530159=_0xafdd[_0x9cf8a2];return _0x530159;};'use strict';var UserVoiceQueueRtEvents=require(_0xdafd('0x0'));var events=[_0xdafd('0x1'),_0xdafd('0x2'),_0xdafd('0x3')];function createListener(_0xf13a21,_0x3ceef2){return function(_0x268b14){_0x3ceef2[_0xdafd('0x4')](_0xf13a21,_0x268b14);};}function removeListener(_0x5624f6,_0x283ab1){return function(){UserVoiceQueueRtEvents[_0xdafd('0x5')](_0x5624f6,_0x283ab1);};}exports[_0xdafd('0x6')]=function(_0x37f05a){for(var _0xfa4ad6=0x0,_0x57cfee=events[_0xdafd('0x7')];_0xfa4ad6<_0x57cfee;_0xfa4ad6++){var _0x53e09c=events[_0xfa4ad6];var _0x9b9c6b=createListener(_0xdafd('0x8')+_0x53e09c,_0x37f05a);UserVoiceQueueRtEvents['on'](_0x53e09c,_0x9b9c6b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x420d8d,_0x78b67f){var _0x4865d7=function(_0x2965df){while(--_0x2965df){_0x420d8d['push'](_0x420d8d['shift']());}};_0x4865d7(++_0x78b67f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4154a6,_0x2c0b8e){_0x4154a6=_0x4154a6-0x0;var _0x3b2786=_0xa9e0[_0x4154a6];return _0x3b2786;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0xb2e98d,_0x31daa1){var _0x56a0eb=function(_0x102910){while(--_0x102910){_0xb2e98d['push'](_0xb2e98d['shift']());}};_0x56a0eb(++_0x31daa1);}(_0x9c44,0x178));var _0x49c4=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x9c44[_0x2641f9];return _0x585741;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe091=['sequelize','exports'];(function(_0x1c97b8,_0x55253e){var _0x19d232=function(_0x346502){while(--_0x346502){_0x1c97b8['push'](_0x1c97b8['shift']());}};_0x19d232(++_0x55253e);}(_0xe091,0x1de));var _0x1e09=function(_0x487261,_0x4432b6){_0x487261=_0x487261-0x0;var _0x5663c5=_0xe091[_0x487261];return _0x5663c5;};'use strict';var Sequelize=require(_0x1e09('0x0'));module[_0x1e09('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x50fd=['exports','INTEGER'];(function(_0x4d8a6e,_0x2c2485){var _0x191119=function(_0xf2b385){while(--_0xf2b385){_0x4d8a6e['push'](_0x4d8a6e['shift']());}};_0x191119(++_0x2c2485);}(_0x50fd,0x186));var _0xd50f=function(_0x20d597,_0xc0b77f){_0x20d597=_0x20d597-0x0;var _0xb77e19=_0x50fd[_0x20d597];return _0xb77e19;};'use strict';var Sequelize=require('sequelize');module[_0xd50f('0x0')]={'penalty':{'type':Sequelize[_0xd50f('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x921e=['util','../../config/logger','api','moment','bluebird','path','rimraf','./userWhatsappQueue.attributes','exports','define','UserWhatsappQueue','user_has_whatsapp_queues'];(function(_0x574c15,_0x3f55c6){var _0x15a35d=function(_0x2d8ed6){while(--_0x2d8ed6){_0x574c15['push'](_0x574c15['shift']());}};_0x15a35d(++_0x3f55c6);}(_0x921e,0xa8));var _0xe921=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x921e[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0xe921('0x0'));var logger=require(_0xe921('0x1'))(_0xe921('0x2'));var moment=require(_0xe921('0x3'));var BPromise=require(_0xe921('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe921('0x5'));var rimraf=require(_0xe921('0x6'));var config=require('../../config/environment');var attributes=require(_0xe921('0x7'));module[_0xe921('0x8')]=function(_0x1a75f4,_0x348756){return _0x1a75f4[_0xe921('0x9')](_0xe921('0xa'),attributes,{'tableName':_0xe921('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5889=['path','../../config/environment','./userWhatsappQueue.attributes','define','UserWhatsappQueue','user_has_whatsapp_queues','lodash','util','../../config/logger','moment','bluebird'];(function(_0x3ca67a,_0x30c192){var _0x391e9b=function(_0x4e9fdd){while(--_0x4e9fdd){_0x3ca67a['push'](_0x3ca67a['shift']());}};_0x391e9b(++_0x30c192);}(_0x5889,0x171));var _0x9588=function(_0x1c8ff3,_0x5784dc){_0x1c8ff3=_0x1c8ff3-0x0;var _0x5ea359=_0x5889[_0x1c8ff3];return _0x5ea359;};'use strict';var _=require(_0x9588('0x0'));var util=require(_0x9588('0x1'));var logger=require(_0x9588('0x2'))('api');var moment=require(_0x9588('0x3'));var BPromise=require(_0x9588('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9588('0x5'));var rimraf=require('rimraf');var config=require(_0x9588('0x6'));var attributes=require(_0x9588('0x7'));module['exports']=function(_0x4d9fd9,_0x4b24fa){return _0x4d9fd9[_0x9588('0x8')](_0x9588('0x9'),attributes,{'tableName':_0x9588('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5153=['info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','request'];(function(_0x256422,_0x367394){var _0x55dddc=function(_0x1594bc){while(--_0x1594bc){_0x256422['push'](_0x256422['shift']());}};_0x55dddc(++_0x367394);}(_0x5153,0x1d1));var _0x3515=function(_0x34cbaf,_0x686a54){_0x34cbaf=_0x34cbaf-0x0;var _0x3f4aec=_0x5153[_0x34cbaf];return _0x3f4aec;};'use strict';var _=require('lodash');var util=require(_0x3515('0x0'));var moment=require(_0x3515('0x1'));var BPromise=require(_0x3515('0x2'));var rs=require(_0x3515('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x3515('0x4'));var logger=require(_0x3515('0x5'))(_0x3515('0x6'));var config=require(_0x3515('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x3515('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5854c2,_0x5ceb78,_0x4b9049){return new BPromise(function(_0x371882,_0x5014de){return client[_0x3515('0x9')](_0x5854c2,_0x4b9049)['then'](function(_0x5325c5){logger[_0x3515('0xa')](_0x3515('0xb'),_0x5ceb78,_0x3515('0xc'));logger[_0x3515('0xd')]('UserWhatsappQueue,\x20%s,\x20%s,\x20%s',_0x5ceb78,_0x3515('0xc'),JSON[_0x3515('0xe')](_0x5325c5));if(_0x5325c5['error']){if(_0x5325c5[_0x3515('0xf')][_0x3515('0x10')]===0x1f4){logger[_0x3515('0xf')](_0x3515('0xb'),_0x5ceb78,_0x5325c5[_0x3515('0xf')][_0x3515('0x11')]);return _0x5014de(_0x5325c5['error'][_0x3515('0x11')]);}logger[_0x3515('0xf')]('UserWhatsappQueue,\x20%s,\x20%s',_0x5ceb78,_0x5325c5['error'][_0x3515('0x11')]);return _0x371882(_0x5325c5[_0x3515('0xf')][_0x3515('0x11')]);}else{logger[_0x3515('0xa')](_0x3515('0xb'),_0x5ceb78,_0x3515('0xc'));_0x371882(_0x5325c5['result'][_0x3515('0x11')]);}})[_0x3515('0x12')](function(_0x111f9c){logger[_0x3515('0xf')](_0x3515('0xb'),_0x5ceb78,_0x111f9c);_0x5014de(_0x111f9c);});});}
\ No newline at end of file
+var _0xd6c0=['message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','info','debug','UserWhatsappQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','UserWhatsappQueue,\x20%s,\x20%s'];(function(_0x402265,_0x137911){var _0x700cc6=function(_0x64c5ee){while(--_0x64c5ee){_0x402265['push'](_0x402265['shift']());}};_0x700cc6(++_0x137911);}(_0xd6c0,0x128));var _0x0d6c=function(_0x5cf792,_0x59a0ad){_0x5cf792=_0x5cf792-0x0;var _0x514b2a=_0xd6c0[_0x5cf792];return _0x514b2a;};'use strict';var _=require(_0x0d6c('0x0'));var util=require(_0x0d6c('0x1'));var moment=require('moment');var BPromise=require(_0x0d6c('0x2'));var rs=require(_0x0d6c('0x3'));var fs=require('fs');var Redis=require(_0x0d6c('0x4'));var db=require(_0x0d6c('0x5'))['db'];var utils=require(_0x0d6c('0x6'));var logger=require(_0x0d6c('0x7'))(_0x0d6c('0x8'));var config=require(_0x0d6c('0x9'));var jayson=require(_0x0d6c('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x372cab,_0x74cc6a,_0x3857f5){return new BPromise(function(_0x1370b0,_0x22e42c){return client[_0x0d6c('0xb')](_0x372cab,_0x3857f5)['then'](function(_0x5b7df8){logger[_0x0d6c('0xc')]('UserWhatsappQueue,\x20%s,\x20%s',_0x74cc6a,'request\x20sent');logger[_0x0d6c('0xd')](_0x0d6c('0xe'),_0x74cc6a,'request\x20sent',JSON[_0x0d6c('0xf')](_0x5b7df8));if(_0x5b7df8[_0x0d6c('0x10')]){if(_0x5b7df8[_0x0d6c('0x10')][_0x0d6c('0x11')]===0x1f4){logger[_0x0d6c('0x10')](_0x0d6c('0x12'),_0x74cc6a,_0x5b7df8[_0x0d6c('0x10')][_0x0d6c('0x13')]);return _0x22e42c(_0x5b7df8[_0x0d6c('0x10')][_0x0d6c('0x13')]);}logger[_0x0d6c('0x10')](_0x0d6c('0x12'),_0x74cc6a,_0x5b7df8[_0x0d6c('0x10')]['message']);return _0x1370b0(_0x5b7df8[_0x0d6c('0x10')][_0x0d6c('0x13')]);}else{logger[_0x0d6c('0xc')](_0x0d6c('0x12'),_0x74cc6a,'request\x20sent');_0x1370b0(_0x5b7df8[_0x0d6c('0x14')][_0x0d6c('0x13')]);}})['catch'](function(_0x9cc9f){logger[_0x0d6c('0x10')](_0x0d6c('0x12'),_0x74cc6a,_0x9cc9f);_0x22e42c(_0x9cc9f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd493=['update','delete','destroy','multer','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','show','post','create','put'];(function(_0x599798,_0x2cbe80){var _0x592116=function(_0x572d13){while(--_0x572d13){_0x599798['push'](_0x599798['shift']());}};_0x592116(++_0x2cbe80);}(_0xd493,0x1bd));var _0x3d49=function(_0x409ba2,_0x479e82){_0x409ba2=_0x409ba2-0x0;var _0x445a93=_0xd493[_0x409ba2];return _0x445a93;};'use strict';var multer=require(_0x3d49('0x0'));var util=require('util');var path=require(_0x3d49('0x1'));var timeout=require(_0x3d49('0x2'));var express=require('express');var router=express[_0x3d49('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x3d49('0x4'));var config=require(_0x3d49('0x5'));var controller=require('./variable.controller');router['get']('/',auth[_0x3d49('0x6')](),controller[_0x3d49('0x7')]);router[_0x3d49('0x8')](_0x3d49('0x9'),auth['isAuthenticated'](),controller[_0x3d49('0xa')]);router[_0x3d49('0xb')]('/',auth[_0x3d49('0x6')](),controller[_0x3d49('0xc')]);router[_0x3d49('0xd')](_0x3d49('0x9'),auth[_0x3d49('0x6')](),controller[_0x3d49('0xe')]);router[_0x3d49('0xf')](_0x3d49('0x9'),auth['isAuthenticated'](),controller[_0x3d49('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xee39=['../../components/interaction/service','../../config/environment','./variable.controller','get','isAuthenticated','index','/:id','show','put','destroy','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x55d94e,_0x34a202){var _0x37110c=function(_0x43b958){while(--_0x43b958){_0x55d94e['push'](_0x55d94e['shift']());}};_0x37110c(++_0x34a202);}(_0xee39,0x1e6));var _0x9ee3=function(_0x4af698,_0x20318e){_0x4af698=_0x4af698-0x0;var _0x4c33b5=_0xee39[_0x4af698];return _0x4c33b5;};'use strict';var multer=require(_0x9ee3('0x0'));var util=require(_0x9ee3('0x1'));var path=require(_0x9ee3('0x2'));var timeout=require('connect-timeout');var express=require(_0x9ee3('0x3'));var router=express[_0x9ee3('0x4')]();var fs_extra=require(_0x9ee3('0x5'));var auth=require(_0x9ee3('0x6'));var interaction=require(_0x9ee3('0x7'));var config=require(_0x9ee3('0x8'));var controller=require(_0x9ee3('0x9'));router[_0x9ee3('0xa')]('/',auth[_0x9ee3('0xb')](),controller[_0x9ee3('0xc')]);router['get'](_0x9ee3('0xd'),auth[_0x9ee3('0xb')](),controller[_0x9ee3('0xe')]);router['post']('/',auth[_0x9ee3('0xb')](),controller['create']);router[_0x9ee3('0xf')]('/:id',auth[_0x9ee3('0xb')](),controller['update']);router['delete'](_0x9ee3('0xd'),auth['isAuthenticated'](),controller[_0x9ee3('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['sequelize','exports','STRING','name'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x008c,0x188));var _0xc008=function(_0x4495b6,_0x1660d5){_0x4495b6=_0x4495b6-0x0;var _0x2ff893=_0x008c[_0x4495b6];return _0x2ff893;};'use strict';var Sequelize=require(_0xc008('0x0'));module[_0xc008('0x1')]={'name':{'type':Sequelize[_0xc008('0x2')],'unique':_0xc008('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xc008('0x2')]}};
\ No newline at end of file
+var _0x5dcd=['exports','STRING','sequelize'];(function(_0x515283,_0x813dea){var _0x38f836=function(_0x40c8f4){while(--_0x40c8f4){_0x515283['push'](_0x515283['shift']());}};_0x38f836(++_0x813dea);}(_0x5dcd,0xf8));var _0xd5dc=function(_0x43cf7c,_0x51a65f){_0x43cf7c=_0x43cf7c-0x0;var _0x56fc91=_0x5dcd[_0x43cf7c];return _0x56fc91;};'use strict';var Sequelize=require(_0xd5dc('0x0'));module[_0xd5dc('0x1')]={'name':{'type':Sequelize[_0xd5dc('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xd5dc('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa826=['intersection','attributes','fields','length','limit','sort','where','pick','filter','merge','VIRTUAL','rows','show','params','includeAll','include','options','catch','create','body','user','role','Variables','UserProfileSection','find','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','request-promise','mustache','path','sox','lodash','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','count','status','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','name','send','index','map','Variable','rawAttributes','fieldName','type','key','model','query','filters'];(function(_0x432c68,_0x527b0f){var _0x5b0cf0=function(_0x1dd8c9){while(--_0x1dd8c9){_0x432c68['push'](_0x432c68['shift']());}};_0x5b0cf0(++_0x527b0f);}(_0xa826,0xfd));var _0x6a82=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa826[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6a82('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6a82('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6a82('0x2'));var util=require('util');var path=require(_0x6a82('0x3'));var sox=require(_0x6a82('0x4'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6a82('0x5'));var squel=require('squel');var crypto=require(_0x6a82('0x6'));var jsforce=require(_0x6a82('0x7'));var deskjs=require('desk.js');var toCsv=require(_0x6a82('0x8'));var querystring=require('querystring');var Papa=require(_0x6a82('0x9'));var Redis=require('ioredis');var authService=require(_0x6a82('0xa'));var qs=require(_0x6a82('0xb'));var as=require(_0x6a82('0xc'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6a82('0xd'))('api');var utils=require(_0x6a82('0xe'));var config=require(_0x6a82('0xf'));var licenseUtil=require(_0x6a82('0x10'));var db=require(_0x6a82('0x11'))['db'];function respondWithStatusCode(_0x14cbe4,_0xb9a9e7){_0xb9a9e7=_0xb9a9e7||0xcc;return function(_0x1c397a){if(_0x1c397a){return _0x14cbe4[_0x6a82('0x12')](_0xb9a9e7);}return _0x14cbe4['status'](_0xb9a9e7)[_0x6a82('0x13')]();};}function respondWithResult(_0x23a2c3,_0x3794a6){_0x3794a6=_0x3794a6||0xc8;return function(_0x4dbeb5){if(_0x4dbeb5){return _0x23a2c3['status'](_0x3794a6)[_0x6a82('0x14')](_0x4dbeb5);}};}function respondWithFilteredResult(_0x3e82ad,_0x39ccd9){return function(_0x58d22d){if(_0x58d22d){var _0x25d831=typeof _0x39ccd9[_0x6a82('0x15')]===_0x6a82('0x16')&&typeof _0x39ccd9['limit']===_0x6a82('0x16');var _0x334323=_0x58d22d[_0x6a82('0x17')];var _0x55974d=_0x25d831?0x0:_0x39ccd9['offset'];var _0x1cadf8=_0x25d831?_0x58d22d[_0x6a82('0x17')]:_0x39ccd9[_0x6a82('0x15')]+_0x39ccd9['limit'];var _0x302ea4;if(_0x1cadf8>=_0x334323){_0x1cadf8=_0x334323;_0x302ea4=0xc8;}else{_0x302ea4=0xce;}_0x3e82ad[_0x6a82('0x18')](_0x302ea4);return _0x3e82ad[_0x6a82('0x19')](_0x6a82('0x1a'),_0x55974d+'-'+_0x1cadf8+'/'+_0x334323)[_0x6a82('0x14')](_0x58d22d);}return null;};}function patchUpdates(_0x4a1536){return function(_0x4f529c){try{jsonpatch[_0x6a82('0x1b')](_0x4f529c,_0x4a1536,!![]);}catch(_0x31ec73){return BPromise[_0x6a82('0x1c')](_0x31ec73);}return _0x4f529c[_0x6a82('0x1d')]();};}function saveUpdates(_0x4794b3,_0x37959e){return function(_0x4d9924){if(_0x4d9924){return _0x4d9924[_0x6a82('0x1e')](_0x4794b3)[_0x6a82('0x1f')](function(_0x2a7ee4){return _0x2a7ee4;});}return null;};}function removeEntity(_0x4e991c,_0x2535b0){return function(_0x457e67){if(_0x457e67){return _0x457e67[_0x6a82('0x20')]()['then'](function(){var _0x460380=_0x457e67[_0x6a82('0x21')]({'plain':!![]});var _0x2ec64a='Variables';return db[_0x6a82('0x22')][_0x6a82('0x20')]({'where':{'type':_0x2ec64a,'resourceId':_0x460380['id']}})[_0x6a82('0x1f')](function(){return _0x457e67;});})[_0x6a82('0x1f')](function(){_0x4e991c[_0x6a82('0x18')](0xcc)[_0x6a82('0x13')]();});}};}function handleEntityNotFound(_0x47a844,_0x558429){return function(_0x421090){if(!_0x421090){_0x47a844[_0x6a82('0x12')](0x194);}return _0x421090;};}function handleError(_0x3d90ea,_0x2b2772){_0x2b2772=_0x2b2772||0x1f4;return function(_0x216bc8){logger['error'](_0x216bc8['stack']);if(_0x216bc8[_0x6a82('0x23')]){delete _0x216bc8['name'];}_0x3d90ea[_0x6a82('0x18')](_0x2b2772)[_0x6a82('0x24')](_0x216bc8);};}exports[_0x6a82('0x25')]=function(_0x5ee966,_0x5d2694){var _0x5aad8e={},_0x159933={},_0x550d9c={'count':0x0,'rows':[]};var _0x3243fd=_[_0x6a82('0x26')](db[_0x6a82('0x27')][_0x6a82('0x28')],function(_0x1f9a03){return{'name':_0x1f9a03[_0x6a82('0x29')],'type':_0x1f9a03[_0x6a82('0x2a')][_0x6a82('0x2b')]};});_0x159933[_0x6a82('0x2c')]=_[_0x6a82('0x26')](_0x3243fd,_0x6a82('0x23'));_0x159933[_0x6a82('0x2d')]=_['keys'](_0x5ee966[_0x6a82('0x2d')]);_0x159933[_0x6a82('0x2e')]=_[_0x6a82('0x2f')](_0x159933[_0x6a82('0x2c')],_0x159933[_0x6a82('0x2d')]);_0x5aad8e[_0x6a82('0x30')]=_[_0x6a82('0x2f')](_0x159933[_0x6a82('0x2c')],qs[_0x6a82('0x31')](_0x5ee966[_0x6a82('0x2d')][_0x6a82('0x31')]));_0x5aad8e['attributes']=_0x5aad8e['attributes'][_0x6a82('0x32')]?_0x5aad8e[_0x6a82('0x30')]:_0x159933[_0x6a82('0x2c')];if(!_0x5ee966[_0x6a82('0x2d')]['hasOwnProperty']('nolimit')){_0x5aad8e[_0x6a82('0x33')]=qs[_0x6a82('0x33')](_0x5ee966[_0x6a82('0x2d')]['limit']);_0x5aad8e['offset']=qs[_0x6a82('0x15')](_0x5ee966[_0x6a82('0x2d')]['offset']);}_0x5aad8e['order']=qs[_0x6a82('0x34')](_0x5ee966[_0x6a82('0x2d')]['sort']);_0x5aad8e[_0x6a82('0x35')]=qs[_0x6a82('0x2e')](_[_0x6a82('0x36')](_0x5ee966[_0x6a82('0x2d')],_0x159933[_0x6a82('0x2e')]),_0x3243fd);if(_0x5ee966['query'][_0x6a82('0x37')]){_0x5aad8e['where']=_[_0x6a82('0x38')](_0x5aad8e[_0x6a82('0x35')],{'$or':_[_0x6a82('0x26')](_0x3243fd,function(_0x50c5a4){if(_0x50c5a4[_0x6a82('0x2a')]!==_0x6a82('0x39')){var _0x5ea899={};_0x5ea899[_0x50c5a4['name']]={'$like':'%'+_0x5ee966[_0x6a82('0x2d')][_0x6a82('0x37')]+'%'};return _0x5ea899;}})});}_0x5aad8e=_[_0x6a82('0x38')]({},_0x5aad8e,_0x5ee966['options']);var _0x27bbd8={'where':_0x5aad8e[_0x6a82('0x35')]};return db[_0x6a82('0x27')]['count'](_0x27bbd8)[_0x6a82('0x1f')](function(_0x5120c6){_0x550d9c[_0x6a82('0x17')]=_0x5120c6;if(_0x5ee966[_0x6a82('0x2d')]['includeAll']){_0x5aad8e['include']=[{'all':!![]}];}return db['Variable']['findAll'](_0x5aad8e);})[_0x6a82('0x1f')](function(_0x452de3){_0x550d9c[_0x6a82('0x3a')]=_0x452de3;return _0x550d9c;})[_0x6a82('0x1f')](respondWithFilteredResult(_0x5d2694,_0x5aad8e))['catch'](handleError(_0x5d2694,null));};exports[_0x6a82('0x3b')]=function(_0x1c1165,_0x3f5748){var _0x3bea04={'raw':!![],'where':{'id':_0x1c1165[_0x6a82('0x3c')]['id']}},_0x5aae75={};_0x5aae75[_0x6a82('0x2c')]=_['keys'](db[_0x6a82('0x27')][_0x6a82('0x28')]);_0x5aae75['query']=_['keys'](_0x1c1165['query']);_0x5aae75[_0x6a82('0x2e')]=_[_0x6a82('0x2f')](_0x5aae75['model'],_0x5aae75['query']);_0x3bea04[_0x6a82('0x30')]=_[_0x6a82('0x2f')](_0x5aae75[_0x6a82('0x2c')],qs['fields'](_0x1c1165[_0x6a82('0x2d')][_0x6a82('0x31')]));_0x3bea04[_0x6a82('0x30')]=_0x3bea04[_0x6a82('0x30')][_0x6a82('0x32')]?_0x3bea04[_0x6a82('0x30')]:_0x5aae75[_0x6a82('0x2c')];if(_0x1c1165[_0x6a82('0x2d')][_0x6a82('0x3d')]){_0x3bea04[_0x6a82('0x3e')]=[{'all':!![]}];}_0x3bea04=_[_0x6a82('0x38')]({},_0x3bea04,_0x1c1165[_0x6a82('0x3f')]);return db[_0x6a82('0x27')]['find'](_0x3bea04)['then'](handleEntityNotFound(_0x3f5748,null))[_0x6a82('0x1f')](respondWithResult(_0x3f5748,null))[_0x6a82('0x40')](handleError(_0x3f5748,null));};exports['create']=function(_0x2978b9,_0x5a76d8){return db[_0x6a82('0x27')][_0x6a82('0x41')](_0x2978b9[_0x6a82('0x42')],{})[_0x6a82('0x1f')](function(_0x46fbdd){var _0x2e787c=_0x2978b9[_0x6a82('0x43')]['get']({'plain':!![]});if(!_0x2e787c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2e787c[_0x6a82('0x44')]===_0x6a82('0x43')){var _0x1261c3=_0x46fbdd['get']({'plain':!![]});var _0x19b7b1=_0x6a82('0x45');return db[_0x6a82('0x46')][_0x6a82('0x47')]({'where':{'name':_0x19b7b1,'userProfileId':_0x2e787c['userProfileId']},'raw':!![]})[_0x6a82('0x1f')](function(_0x5dd924){if(_0x5dd924&&_0x5dd924[_0x6a82('0x48')]===0x0){return db[_0x6a82('0x22')]['create']({'name':_0x1261c3[_0x6a82('0x23')],'resourceId':_0x1261c3['id'],'type':_0x5dd924['name'],'sectionId':_0x5dd924['id']},{})[_0x6a82('0x1f')](function(){return _0x46fbdd;});}else{return _0x46fbdd;}})[_0x6a82('0x40')](function(_0xd8ce72){logger[_0x6a82('0x49')](_0x6a82('0x4a'),_0xd8ce72);throw _0xd8ce72;});}return _0x46fbdd;})[_0x6a82('0x1f')](respondWithResult(_0x5a76d8,0xc9))[_0x6a82('0x40')](handleError(_0x5a76d8,null));};exports[_0x6a82('0x1e')]=function(_0x5607a5,_0x431a95){if(_0x5607a5[_0x6a82('0x42')]['id']){delete _0x5607a5[_0x6a82('0x42')]['id'];}return db[_0x6a82('0x27')][_0x6a82('0x47')]({'where':{'id':_0x5607a5[_0x6a82('0x3c')]['id']}})[_0x6a82('0x1f')](handleEntityNotFound(_0x431a95,null))[_0x6a82('0x1f')](saveUpdates(_0x5607a5[_0x6a82('0x42')],null))[_0x6a82('0x1f')](respondWithResult(_0x431a95,null))[_0x6a82('0x40')](handleError(_0x431a95,null));};exports[_0x6a82('0x20')]=function(_0x3f7919,_0x57bd19){return db[_0x6a82('0x27')]['find']({'where':{'id':_0x3f7919[_0x6a82('0x3c')]['id']}})[_0x6a82('0x1f')](handleEntityNotFound(_0x57bd19,null))['then'](removeEntity(_0x57bd19,null))[_0x6a82('0x40')](handleError(_0x57bd19,null));};
\ No newline at end of file
+var _0x1d53=['UserProfileResource','end','error','stack','name','send','map','rawAttributes','fieldName','query','keys','filters','model','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','include','Variable','findAll','rows','catch','show','length','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','eml-format','rimraf','zip-dir','moment','bluebird','path','sox','to-csv','ejs','squel','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/license/util','sendStatus','status','json','offset','limit','undefined','count','set','apply','reject','save','then','destroy','get','Variables'];(function(_0x156770,_0x21446d){var _0x5e82b0=function(_0x34e665){while(--_0x34e665){_0x156770['push'](_0x156770['shift']());}};_0x5e82b0(++_0x21446d);}(_0x1d53,0x1b9));var _0x31d5=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x1d53[_0x2be8c2];return _0x97f531;};'use strict';var emlformat=require(_0x31d5('0x0'));var rimraf=require(_0x31d5('0x1'));var zipdir=require(_0x31d5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x31d5('0x3'));var BPromise=require(_0x31d5('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x31d5('0x5'));var sox=require(_0x31d5('0x6'));var csv=require(_0x31d5('0x7'));var ejs=require(_0x31d5('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x31d5('0x9'));var crypto=require(_0x31d5('0xa'));var jsforce=require(_0x31d5('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x31d5('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x31d5('0xc'));var authService=require(_0x31d5('0xd'));var qs=require(_0x31d5('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x31d5('0xf'))('api');var utils=require(_0x31d5('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0x31d5('0x11'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4c41c6,_0x2d9ea3){_0x2d9ea3=_0x2d9ea3||0xcc;return function(_0x327491){if(_0x327491){return _0x4c41c6[_0x31d5('0x12')](_0x2d9ea3);}return _0x4c41c6['status'](_0x2d9ea3)['end']();};}function respondWithResult(_0x586adc,_0x41c635){_0x41c635=_0x41c635||0xc8;return function(_0xd86cba){if(_0xd86cba){return _0x586adc[_0x31d5('0x13')](_0x41c635)[_0x31d5('0x14')](_0xd86cba);}};}function respondWithFilteredResult(_0x3c651,_0x5c357b){return function(_0x58063d){if(_0x58063d){var _0x275ed6=typeof _0x5c357b[_0x31d5('0x15')]==='undefined'&&typeof _0x5c357b[_0x31d5('0x16')]===_0x31d5('0x17');var _0x446824=_0x58063d[_0x31d5('0x18')];var _0x14ad34=_0x275ed6?0x0:_0x5c357b[_0x31d5('0x15')];var _0x1761cd=_0x275ed6?_0x58063d[_0x31d5('0x18')]:_0x5c357b['offset']+_0x5c357b[_0x31d5('0x16')];var _0x42be97;if(_0x1761cd>=_0x446824){_0x1761cd=_0x446824;_0x42be97=0xc8;}else{_0x42be97=0xce;}_0x3c651[_0x31d5('0x13')](_0x42be97);return _0x3c651[_0x31d5('0x19')]('Content-Range',_0x14ad34+'-'+_0x1761cd+'/'+_0x446824)['json'](_0x58063d);}return null;};}function patchUpdates(_0xc75a93){return function(_0xc31f5c){try{jsonpatch[_0x31d5('0x1a')](_0xc31f5c,_0xc75a93,!![]);}catch(_0x623110){return BPromise[_0x31d5('0x1b')](_0x623110);}return _0xc31f5c[_0x31d5('0x1c')]();};}function saveUpdates(_0x38283b,_0x585710){return function(_0xaa4c65){if(_0xaa4c65){return _0xaa4c65['update'](_0x38283b)[_0x31d5('0x1d')](function(_0x9207d7){return _0x9207d7;});}return null;};}function removeEntity(_0x51a437,_0x55714a){return function(_0x58d7d6){if(_0x58d7d6){return _0x58d7d6[_0x31d5('0x1e')]()['then'](function(){var _0x1abce9=_0x58d7d6[_0x31d5('0x1f')]({'plain':!![]});var _0x58359e=_0x31d5('0x20');return db[_0x31d5('0x21')][_0x31d5('0x1e')]({'where':{'type':_0x58359e,'resourceId':_0x1abce9['id']}})[_0x31d5('0x1d')](function(){return _0x58d7d6;});})['then'](function(){_0x51a437[_0x31d5('0x13')](0xcc)[_0x31d5('0x22')]();});}};}function handleEntityNotFound(_0x49b37e,_0x470d9f){return function(_0x4529d1){if(!_0x4529d1){_0x49b37e[_0x31d5('0x12')](0x194);}return _0x4529d1;};}function handleError(_0x5e513d,_0x147536){_0x147536=_0x147536||0x1f4;return function(_0x2f8412){logger[_0x31d5('0x23')](_0x2f8412[_0x31d5('0x24')]);if(_0x2f8412[_0x31d5('0x25')]){delete _0x2f8412[_0x31d5('0x25')];}_0x5e513d['status'](_0x147536)[_0x31d5('0x26')](_0x2f8412);};}exports['index']=function(_0x29df9a,_0x564037){var _0x171af6={},_0x221d96={},_0x5a2c2={'count':0x0,'rows':[]};var _0x16a118=_[_0x31d5('0x27')](db['Variable'][_0x31d5('0x28')],function(_0x7b2d6b){return{'name':_0x7b2d6b[_0x31d5('0x29')],'type':_0x7b2d6b['type']['key']};});_0x221d96['model']=_[_0x31d5('0x27')](_0x16a118,_0x31d5('0x25'));_0x221d96[_0x31d5('0x2a')]=_[_0x31d5('0x2b')](_0x29df9a['query']);_0x221d96[_0x31d5('0x2c')]=_['intersection'](_0x221d96[_0x31d5('0x2d')],_0x221d96[_0x31d5('0x2a')]);_0x171af6[_0x31d5('0x2e')]=_[_0x31d5('0x2f')](_0x221d96[_0x31d5('0x2d')],qs[_0x31d5('0x30')](_0x29df9a[_0x31d5('0x2a')]['fields']));_0x171af6['attributes']=_0x171af6['attributes']['length']?_0x171af6['attributes']:_0x221d96[_0x31d5('0x2d')];if(!_0x29df9a[_0x31d5('0x2a')][_0x31d5('0x31')](_0x31d5('0x32'))){_0x171af6[_0x31d5('0x16')]=qs[_0x31d5('0x16')](_0x29df9a[_0x31d5('0x2a')][_0x31d5('0x16')]);_0x171af6[_0x31d5('0x15')]=qs[_0x31d5('0x15')](_0x29df9a[_0x31d5('0x2a')]['offset']);}_0x171af6[_0x31d5('0x33')]=qs[_0x31d5('0x34')](_0x29df9a[_0x31d5('0x2a')][_0x31d5('0x34')]);_0x171af6[_0x31d5('0x35')]=qs[_0x31d5('0x2c')](_['pick'](_0x29df9a[_0x31d5('0x2a')],_0x221d96[_0x31d5('0x2c')]),_0x16a118);if(_0x29df9a[_0x31d5('0x2a')][_0x31d5('0x36')]){_0x171af6[_0x31d5('0x35')]=_[_0x31d5('0x37')](_0x171af6['where'],{'$or':_[_0x31d5('0x27')](_0x16a118,function(_0x3ba3ff){if(_0x3ba3ff[_0x31d5('0x38')]!==_0x31d5('0x39')){var _0x15c1f0={};_0x15c1f0[_0x3ba3ff[_0x31d5('0x25')]]={'$like':'%'+_0x29df9a['query'][_0x31d5('0x36')]+'%'};return _0x15c1f0;}})});}_0x171af6=_[_0x31d5('0x37')]({},_0x171af6,_0x29df9a[_0x31d5('0x3a')]);var _0x1ad83b={'where':_0x171af6['where']};return db['Variable'][_0x31d5('0x18')](_0x1ad83b)[_0x31d5('0x1d')](function(_0x5ac373){_0x5a2c2[_0x31d5('0x18')]=_0x5ac373;if(_0x29df9a[_0x31d5('0x2a')]['includeAll']){_0x171af6[_0x31d5('0x3b')]=[{'all':!![]}];}return db[_0x31d5('0x3c')][_0x31d5('0x3d')](_0x171af6);})['then'](function(_0x214073){_0x5a2c2[_0x31d5('0x3e')]=_0x214073;return _0x5a2c2;})[_0x31d5('0x1d')](respondWithFilteredResult(_0x564037,_0x171af6))[_0x31d5('0x3f')](handleError(_0x564037,null));};exports[_0x31d5('0x40')]=function(_0x537290,_0x570dee){var _0x23a04c={'raw':!![],'where':{'id':_0x537290['params']['id']}},_0x338bf9={};_0x338bf9[_0x31d5('0x2d')]=_[_0x31d5('0x2b')](db['Variable'][_0x31d5('0x28')]);_0x338bf9['query']=_[_0x31d5('0x2b')](_0x537290['query']);_0x338bf9[_0x31d5('0x2c')]=_[_0x31d5('0x2f')](_0x338bf9[_0x31d5('0x2d')],_0x338bf9['query']);_0x23a04c['attributes']=_[_0x31d5('0x2f')](_0x338bf9[_0x31d5('0x2d')],qs['fields'](_0x537290[_0x31d5('0x2a')][_0x31d5('0x30')]));_0x23a04c[_0x31d5('0x2e')]=_0x23a04c['attributes'][_0x31d5('0x41')]?_0x23a04c['attributes']:_0x338bf9[_0x31d5('0x2d')];if(_0x537290[_0x31d5('0x2a')][_0x31d5('0x42')]){_0x23a04c[_0x31d5('0x3b')]=[{'all':!![]}];}_0x23a04c=_['merge']({},_0x23a04c,_0x537290[_0x31d5('0x3a')]);return db[_0x31d5('0x3c')][_0x31d5('0x43')](_0x23a04c)[_0x31d5('0x1d')](handleEntityNotFound(_0x570dee,null))['then'](respondWithResult(_0x570dee,null))['catch'](handleError(_0x570dee,null));};exports[_0x31d5('0x44')]=function(_0x4476eb,_0x23494e){return db[_0x31d5('0x3c')][_0x31d5('0x44')](_0x4476eb[_0x31d5('0x45')],{})[_0x31d5('0x1d')](function(_0x189af4){var _0x34db22=_0x4476eb['user'][_0x31d5('0x1f')]({'plain':!![]});if(!_0x34db22)throw new Error(_0x31d5('0x46'));if(_0x34db22[_0x31d5('0x47')]===_0x31d5('0x48')){var _0x500c52=_0x189af4[_0x31d5('0x1f')]({'plain':!![]});var _0x3b34e4=_0x31d5('0x20');return db[_0x31d5('0x49')][_0x31d5('0x43')]({'where':{'name':_0x3b34e4,'userProfileId':_0x34db22[_0x31d5('0x4a')]},'raw':!![]})[_0x31d5('0x1d')](function(_0x2e8a60){if(_0x2e8a60&&_0x2e8a60[_0x31d5('0x4b')]===0x0){return db[_0x31d5('0x21')][_0x31d5('0x44')]({'name':_0x500c52[_0x31d5('0x25')],'resourceId':_0x500c52['id'],'type':_0x2e8a60[_0x31d5('0x25')],'sectionId':_0x2e8a60['id']},{})[_0x31d5('0x1d')](function(){return _0x189af4;});}else{return _0x189af4;}})[_0x31d5('0x3f')](function(_0x4cf2da){logger['error'](_0x31d5('0x4c'),_0x4cf2da);throw _0x4cf2da;});}return _0x189af4;})[_0x31d5('0x1d')](respondWithResult(_0x23494e,0xc9))[_0x31d5('0x3f')](handleError(_0x23494e,null));};exports[_0x31d5('0x4d')]=function(_0x3f8b28,_0x3c796b){if(_0x3f8b28['body']['id']){delete _0x3f8b28[_0x31d5('0x45')]['id'];}return db[_0x31d5('0x3c')]['find']({'where':{'id':_0x3f8b28[_0x31d5('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3c796b,null))[_0x31d5('0x1d')](saveUpdates(_0x3f8b28['body'],null))[_0x31d5('0x1d')](respondWithResult(_0x3c796b,null))[_0x31d5('0x3f')](handleError(_0x3c796b,null));};exports[_0x31d5('0x1e')]=function(_0x97387b,_0x45fbd2){return db[_0x31d5('0x3c')][_0x31d5('0x43')]({'where':{'id':_0x97387b[_0x31d5('0x4e')]['id']}})[_0x31d5('0x1d')](handleEntityNotFound(_0x45fbd2,null))[_0x31d5('0x1d')](removeEntity(_0x45fbd2,null))['catch'](handleError(_0x45fbd2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4890=['moment','bluebird','path','rimraf','../../config/environment','./variable.attributes','tools_variables','lodash','util','api'];(function(_0xaf223f,_0x38582d){var _0x2a0bd9=function(_0x3bf545){while(--_0x3bf545){_0xaf223f['push'](_0xaf223f['shift']());}};_0x2a0bd9(++_0x38582d);}(_0x4890,0xb1));var _0x0489=function(_0x58dc25,_0x49b9d5){_0x58dc25=_0x58dc25-0x0;var _0x21b0a7=_0x4890[_0x58dc25];return _0x21b0a7;};'use strict';var _=require(_0x0489('0x0'));var util=require(_0x0489('0x1'));var logger=require('../../config/logger')(_0x0489('0x2'));var moment=require(_0x0489('0x3'));var BPromise=require(_0x0489('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0489('0x5'));var rimraf=require(_0x0489('0x6'));var config=require(_0x0489('0x7'));var attributes=require(_0x0489('0x8'));module['exports']=function(_0x5738c2,_0xe9ee1e){return _0x5738c2['define']('Variable',attributes,{'tableName':_0x0489('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x215a=['define','Variable','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./variable.attributes','exports'];(function(_0x47470f,_0x411315){var _0x5b16a4=function(_0x781291){while(--_0x781291){_0x47470f['push'](_0x47470f['shift']());}};_0x5b16a4(++_0x411315);}(_0x215a,0x160));var _0xa215=function(_0x58e469,_0x95ee3e){_0x58e469=_0x58e469-0x0;var _0x4c01c5=_0x215a[_0x58e469];return _0x4c01c5;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xa215('0x0'))(_0xa215('0x1'));var moment=require('moment');var BPromise=require(_0xa215('0x2'));var rp=require(_0xa215('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xa215('0x4'));var config=require(_0xa215('0x5'));var attributes=require(_0xa215('0x6'));module[_0xa215('0x7')]=function(_0x5955bf,_0x52a48c){return _0x5955bf[_0xa215('0x8')](_0xa215('0x9'),attributes,{'tableName':'tools_variables','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['info','request\x20sent','debug','stringify','error','code','message','Variable,\x20%s,\x20%s','result','catch','ShowVariable','find','options','where','attributes','include','map','model','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','request','then'];(function(_0x15a2cb,_0x571a10){var _0x26d3f6=function(_0x2e313f){while(--_0x2e313f){_0x15a2cb['push'](_0x15a2cb['shift']());}};_0x26d3f6(++_0x571a10);}(_0x5fc3,0xa8));var _0x35fc=function(_0x4b1032,_0x36952e){_0x4b1032=_0x4b1032-0x0;var _0x5a1d55=_0x5fc3[_0x4b1032];return _0x5a1d55;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var moment=require('moment');var BPromise=require(_0x35fc('0x2'));var rs=require(_0x35fc('0x3'));var fs=require('fs');var Redis=require(_0x35fc('0x4'));var db=require(_0x35fc('0x5'))['db'];var utils=require(_0x35fc('0x6'));var logger=require('../../config/logger')(_0x35fc('0x7'));var config=require(_0x35fc('0x8'));var jayson=require(_0x35fc('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x19a0d1,_0x508b32,_0x16e153){return new BPromise(function(_0x27524f,_0xc72d93){return client[_0x35fc('0xa')](_0x19a0d1,_0x16e153)[_0x35fc('0xb')](function(_0xf9d3a6){logger[_0x35fc('0xc')]('Variable,\x20%s,\x20%s',_0x508b32,_0x35fc('0xd'));logger[_0x35fc('0xe')]('Variable,\x20%s,\x20%s,\x20%s',_0x508b32,_0x35fc('0xd'),JSON[_0x35fc('0xf')](_0xf9d3a6));if(_0xf9d3a6['error']){if(_0xf9d3a6[_0x35fc('0x10')][_0x35fc('0x11')]===0x1f4){logger['error']('Variable,\x20%s,\x20%s',_0x508b32,_0xf9d3a6[_0x35fc('0x10')]['message']);return _0xc72d93(_0xf9d3a6[_0x35fc('0x10')][_0x35fc('0x12')]);}logger[_0x35fc('0x10')](_0x35fc('0x13'),_0x508b32,_0xf9d3a6[_0x35fc('0x10')]['message']);return _0x27524f(_0xf9d3a6['error']['message']);}else{logger['info'](_0x35fc('0x13'),_0x508b32,_0x35fc('0xd'));_0x27524f(_0xf9d3a6[_0x35fc('0x14')][_0x35fc('0x12')]);}})[_0x35fc('0x15')](function(_0x1121fa){logger['error'](_0x35fc('0x13'),_0x508b32,_0x1121fa);_0xc72d93(_0x1121fa);});});}exports[_0x35fc('0x16')]=function(_0x553677){var _0x41e165=this;return new Promise(function(_0x363e47,_0x2e513b){return db['Variable'][_0x35fc('0x17')]({'raw':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')][_0x35fc('0x19')]||null:null,'attributes':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')][_0x35fc('0x1a')]||null:null,'include':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')][_0x35fc('0x1b')]?_[_0x35fc('0x1c')](_0x553677['options'][_0x35fc('0x1b')],function(_0xd5399f){return{'model':db[_0xd5399f[_0x35fc('0x1d')]],'as':_0xd5399f['as'],'attributes':_0xd5399f[_0x35fc('0x1a')],'include':_0xd5399f[_0x35fc('0x1b')]?_['map'](_0xd5399f[_0x35fc('0x1b')],function(_0x4c587a){return{'model':db[_0x4c587a['model']],'as':_0x4c587a['as'],'attributes':_0x4c587a[_0x35fc('0x1a')],'include':_0x4c587a[_0x35fc('0x1b')]?_[_0x35fc('0x1c')](_0x4c587a['include'],function(_0x4086e9){return{'model':db[_0x4086e9['model']],'as':_0x4086e9['as'],'attributes':_0x4086e9[_0x35fc('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x35fc('0xb')](function(_0x5cb986){logger['info'](_0x35fc('0x16'),_0x553677);logger['debug'](_0x35fc('0x16'),_0x553677,JSON[_0x35fc('0xf')](_0x5cb986));_0x363e47(_0x5cb986);})['catch'](function(_0x26b7cb){logger[_0x35fc('0x10')](_0x35fc('0x16'),_0x26b7cb[_0x35fc('0x12')],_0x553677);_0x2e513b(_0x41e165[_0x35fc('0x10')](0x1f4,_0x26b7cb[_0x35fc('0x12')]));});});};
\ No newline at end of file
+var _0x1cb9=['include','map','model','then','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','Variable,\x20%s,\x20%s','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','ShowVariable','Variable','options','attributes'];(function(_0x595c1d,_0x48e097){var _0x4c65b9=function(_0x45db78){while(--_0x45db78){_0x595c1d['push'](_0x595c1d['shift']());}};_0x4c65b9(++_0x48e097);}(_0x1cb9,0x14e));var _0x91cb=function(_0x53634a,_0x506ccf){_0x53634a=_0x53634a-0x0;var _0x222e72=_0x1cb9[_0x53634a];return _0x222e72;};'use strict';var _=require(_0x91cb('0x0'));var util=require('util');var moment=require(_0x91cb('0x1'));var BPromise=require(_0x91cb('0x2'));var rs=require(_0x91cb('0x3'));var fs=require('fs');var Redis=require(_0x91cb('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x91cb('0x5'));var logger=require(_0x91cb('0x6'))('rpc');var config=require(_0x91cb('0x7'));var jayson=require(_0x91cb('0x8'));var client=jayson[_0x91cb('0x9')][_0x91cb('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3b9d98,_0x8f8a3b,_0x4c1f56){return new BPromise(function(_0x15c517,_0x5bda2f){return client[_0x91cb('0xb')](_0x3b9d98,_0x4c1f56)['then'](function(_0xa43e7a){logger[_0x91cb('0xc')](_0x91cb('0xd'),_0x8f8a3b,_0x91cb('0xe'));logger[_0x91cb('0xf')](_0x91cb('0x10'),_0x8f8a3b,_0x91cb('0xe'),JSON[_0x91cb('0x11')](_0xa43e7a));if(_0xa43e7a[_0x91cb('0x12')]){if(_0xa43e7a[_0x91cb('0x12')]['code']===0x1f4){logger[_0x91cb('0x12')](_0x91cb('0xd'),_0x8f8a3b,_0xa43e7a['error'][_0x91cb('0x13')]);return _0x5bda2f(_0xa43e7a[_0x91cb('0x12')][_0x91cb('0x13')]);}logger[_0x91cb('0x12')]('Variable,\x20%s,\x20%s',_0x8f8a3b,_0xa43e7a['error'][_0x91cb('0x13')]);return _0x15c517(_0xa43e7a[_0x91cb('0x12')]['message']);}else{logger['info'](_0x91cb('0xd'),_0x8f8a3b,_0x91cb('0xe'));_0x15c517(_0xa43e7a[_0x91cb('0x14')]['message']);}})[_0x91cb('0x15')](function(_0x135890){logger['error'](_0x91cb('0xd'),_0x8f8a3b,_0x135890);_0x5bda2f(_0x135890);});});}exports[_0x91cb('0x16')]=function(_0x1cd34b){var _0xcd1a78=this;return new Promise(function(_0x5cc1c3,_0x3fba4f){return db[_0x91cb('0x17')]['find']({'raw':_0x1cd34b[_0x91cb('0x18')]?_0x1cd34b['options']['raw']===undefined?!![]:![]:!![],'where':_0x1cd34b[_0x91cb('0x18')]?_0x1cd34b[_0x91cb('0x18')]['where']||null:null,'attributes':_0x1cd34b['options']?_0x1cd34b['options'][_0x91cb('0x19')]||null:null,'include':_0x1cd34b[_0x91cb('0x18')]?_0x1cd34b[_0x91cb('0x18')][_0x91cb('0x1a')]?_['map'](_0x1cd34b[_0x91cb('0x18')][_0x91cb('0x1a')],function(_0x1fa837){return{'model':db[_0x1fa837['model']],'as':_0x1fa837['as'],'attributes':_0x1fa837[_0x91cb('0x19')],'include':_0x1fa837[_0x91cb('0x1a')]?_[_0x91cb('0x1b')](_0x1fa837[_0x91cb('0x1a')],function(_0x3ca500){return{'model':db[_0x3ca500[_0x91cb('0x1c')]],'as':_0x3ca500['as'],'attributes':_0x3ca500[_0x91cb('0x19')],'include':_0x3ca500[_0x91cb('0x1a')]?_[_0x91cb('0x1b')](_0x3ca500['include'],function(_0x59bf3a){return{'model':db[_0x59bf3a[_0x91cb('0x1c')]],'as':_0x59bf3a['as'],'attributes':_0x59bf3a['attributes']};}):[]};}):[]};}):[]:[]})[_0x91cb('0x1d')](function(_0x34d372){logger[_0x91cb('0xc')]('ShowVariable',_0x1cd34b);logger[_0x91cb('0xf')]('ShowVariable',_0x1cd34b,JSON[_0x91cb('0x11')](_0x34d372));_0x5cc1c3(_0x34d372);})[_0x91cb('0x15')](function(_0x3b3ee6){logger[_0x91cb('0x12')](_0x91cb('0x16'),_0x3b3ee6['message'],_0x1cd34b);_0x3fba4f(_0xcd1a78[_0x91cb('0x12')](0x1f4,_0x3b3ee6['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x967e=['canUpdate','fetch','/reset','reset','/pull','pull','/restart','/migrations','migrations','Router','../../components/auth/service','./version.controller','get','/fetch','isAuthenticated'];(function(_0xafbc6a,_0x147cc2){var _0x34e0d4=function(_0x92177){while(--_0x92177){_0xafbc6a['push'](_0xafbc6a['shift']());}};_0x34e0d4(++_0x147cc2);}(_0x967e,0x1cb));var _0xe967=function(_0x3b2ca3,_0x712d27){_0x3b2ca3=_0x3b2ca3-0x0;var _0xaea45c=_0x967e[_0x3b2ca3];return _0xaea45c;};'use strict';var express=require('express');var router=express[_0xe967('0x0')]();var auth=require(_0xe967('0x1'));var controller=require(_0xe967('0x2'));router[_0xe967('0x3')]('/',controller['index']);router[_0xe967('0x3')](_0xe967('0x4'),auth[_0xe967('0x5')](),auth[_0xe967('0x6')](),controller[_0xe967('0x7')]);router[_0xe967('0x3')](_0xe967('0x8'),auth[_0xe967('0x5')](),auth[_0xe967('0x6')](),controller[_0xe967('0x9')]);router[_0xe967('0x3')](_0xe967('0xa'),auth[_0xe967('0x5')](),auth[_0xe967('0x6')](),controller[_0xe967('0xb')]);router[_0xe967('0x3')](_0xe967('0xc'),auth[_0xe967('0x5')](),controller['restart']);router[_0xe967('0x3')](_0xe967('0xd'),controller[_0xe967('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0x8a84=['isAuthenticated','reset','pull','restart','/migrations','migrations','exports','Router','../../components/auth/service','./version.controller','get','/fetch','canUpdate','fetch','/reset'];(function(_0xe7a81f,_0x458b3d){var _0x13e1f0=function(_0x5d1aeb){while(--_0x5d1aeb){_0xe7a81f['push'](_0xe7a81f['shift']());}};_0x13e1f0(++_0x458b3d);}(_0x8a84,0x124));var _0x48a8=function(_0x57bd4f,_0x42a4f5){_0x57bd4f=_0x57bd4f-0x0;var _0x25c08f=_0x8a84[_0x57bd4f];return _0x25c08f;};'use strict';var express=require('express');var router=express[_0x48a8('0x0')]();var auth=require(_0x48a8('0x1'));var controller=require(_0x48a8('0x2'));router[_0x48a8('0x3')]('/',controller['index']);router[_0x48a8('0x3')](_0x48a8('0x4'),auth['isAuthenticated'](),auth[_0x48a8('0x5')](),controller[_0x48a8('0x6')]);router[_0x48a8('0x3')](_0x48a8('0x7'),auth[_0x48a8('0x8')](),auth['canUpdate'](),controller[_0x48a8('0x9')]);router[_0x48a8('0x3')]('/pull',auth[_0x48a8('0x8')](),auth['canUpdate'](),controller[_0x48a8('0xa')]);router[_0x48a8('0x3')]('/restart',auth['isAuthenticated'](),controller[_0x48a8('0xb')]);router['get'](_0x48a8('0xc'),controller[_0x48a8('0xd')]);module[_0x48a8('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe47a=['2.0.0','status','json','origin','master','error','info','git\x20fetch','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','readdirSync','length','replace','push','sort','sequelize','Migration','join','server','.js','Database\x20migrated\x20successfully\x20from\x20version\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','child_process','exec','../../mysqldb','../../config/logger','simple-git','root','index','exports','fetch','tags','latest'];(function(_0x23db15,_0xfda5f9){var _0x213f2c=function(_0x525fd7){while(--_0x525fd7){_0x23db15['push'](_0x23db15['shift']());}};_0x213f2c(++_0xfda5f9);}(_0xe47a,0x180));var _0xae47=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xe47a[_0x167cc1];return _0x10bc4b;};'use strict';var Umzug=require(_0xae47('0x0'));var path=require(_0xae47('0x1'));var fs=require('fs');var _=require(_0xae47('0x2'));var pkginfo=require('pkginfo')(module,_0xae47('0x3'));var compareVersions=require(_0xae47('0x4'));var exec=require(_0xae47('0x5'))[_0xae47('0x6')];var db=require(_0xae47('0x7'))['db'];var config=require('../../config/environment');var pm2=require('../../config/pm2');var logger=require(_0xae47('0x8'))('update');var git=require(_0xae47('0x9'))(config[_0xae47('0xa')]);exports[_0xae47('0xb')]=function(_0x32661a,_0x1467a0){var _0x432d57={'current':module[_0xae47('0xc')][_0xae47('0x3')],'phonebar':0x2};if(_0x32661a['query']&&_0x32661a['query']['latest']){return git[_0xae47('0xd')]()[_0xae47('0xe')](function(_0x19a769,_0x404f24){_0x432d57[_0xae47('0xf')]=(_0x19a769?module[_0xae47('0xc')][_0xae47('0x3')]:_0x404f24[_0xae47('0xf')])||_0xae47('0x10');return _0x1467a0[_0xae47('0x11')](0xc8)['json'](_0x432d57);});}else{return _0x1467a0[_0xae47('0x11')](0xc8)[_0xae47('0x12')](_0x432d57);}};exports[_0xae47('0xd')]=function(_0x518849,_0x5b68d8){return git[_0xae47('0xd')]([_0xae47('0x13'),_0xae47('0x14')],function(_0x2336d6){if(_0x2336d6){logger[_0xae47('0x15')](_0x2336d6);return _0x5b68d8['status'](0x1f4)['json'](_0x2336d6);}logger[_0xae47('0x16')](_0xae47('0x17'));return _0x5b68d8[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':'git\x20fetch\x20origin\x20master'});});};exports[_0xae47('0x18')]=function(_0x32e9ef,_0x5ed1c0){return git['reset']([_0xae47('0x19'),_0xae47('0x1a')],function(_0x48e5f3){if(_0x48e5f3){logger[_0xae47('0x15')](_0x48e5f3);return _0x5ed1c0[_0xae47('0x11')](0x1f4)[_0xae47('0x12')](_0x48e5f3);}logger[_0xae47('0x16')](_0xae47('0x1b'));return _0x5ed1c0['status'](0xc8)[_0xae47('0x12')]({'output':_0xae47('0x1c')});});};exports[_0xae47('0x1d')]=function(_0x3c0559,_0xee908c){exec('npm\x20install\x20--production',function(_0x31d27f,_0x4ced40,_0x169fb7){logger['info'](_0x4ced40);logger[_0xae47('0x16')](_0x169fb7);if(_0x31d27f){logger['error'](_0x31d27f);return _0xee908c[_0xae47('0x11')](0x1f4)[_0xae47('0x12')](_0x31d27f);}return _0xee908c[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':_0x4ced40});});};exports[_0xae47('0x1e')]=function(_0x47558c,_0x914c9f){return pm2['restart'](_0xae47('0x1f'))[_0xae47('0x20')](function(_0x154925){logger['info'](_0xae47('0x21'),_0x154925);return _0x914c9f[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':_0xae47('0x22')});})['catch'](function(_0x4304c6){logger[_0xae47('0x15')](_0x4304c6);return _0x914c9f[_0xae47('0x11')](0x1f4)[_0xae47('0x12')](_0x4304c6);});};exports[_0xae47('0x23')]=function(_0x4406c5,_0x32dcd8){var _0x457136=fs[_0xae47('0x24')](path['join'](config['root'],'server',_0xae47('0x23')));var _0x31bea2=[];for(var _0x481fbc=0x0;_0x481fbc<_0x457136[_0xae47('0x25')];_0x481fbc++){var _0x300d5b=_0x457136[_0x481fbc][_0xae47('0x26')]('.js','');if(compareVersions(module[_0xae47('0xc')]['version'],_0x300d5b)===-0x1){_0x31bea2[_0xae47('0x27')](_0x300d5b);}}if(_0x31bea2['length']){var _0x23c305=_0x31bea2[_0xae47('0x28')](compareVersions);var _0x4e1fb4=new Umzug({'storage':_0xae47('0x29'),'storageOptions':{'model':db[_0xae47('0x2a')],'modelName':_0xae47('0x2a'),'columnName':_0xae47('0x3')},'migrations':{'params':[db[_0xae47('0x29')]['getQueryInterface'](),db['sequelize']['constructor'],function(){throw new Error('Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.');}],'path':path[_0xae47('0x2b')](config['root'],_0xae47('0x2c'),_0xae47('0x23')),'pattern':/\.js$/}});_0x4e1fb4['up']({'migrations':_['map'](_0x23c305,function(_0x3cc8ae){return _0x3cc8ae+_0xae47('0x2d');})})[_0xae47('0x20')](function(){return _0x32dcd8[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':_0xae47('0x2e')+module[_0xae47('0xc')]['version']+'\x20to\x20'+_[_0xae47('0x2f')](_0x23c305),'migrations':_[_0xae47('0x2b')](_0x23c305)});})['catch'](function(_0xa00825){if(_0xa00825 instanceof db[_0xae47('0x29')][_0xae47('0x30')]){return _0x32dcd8[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':'Database\x20already\x20up-to-date'});}else{return _0x32dcd8['status'](0x1f4)[_0xae47('0x12')](_0xa00825);}});}else{return _0x32dcd8[_0xae47('0x11')](0xc8)['json']({'output':_0xae47('0x31')});}};
\ No newline at end of file
+var _0xaa28=['path','lodash','pkginfo','version','compare-versions','child_process','../../config/environment','../../config/pm2','../../config/logger','update','simple-git','root','index','exports','latest','fetch','tags','2.0.0','status','json','master','error','info','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','motion2','then','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','join','length','replace','push','sort','sequelize','getQueryInterface','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','server','map','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','UniqueConstraintError','Database\x20already\x20up-to-date','umzug'];(function(_0x5e700a,_0x376b77){var _0x50e1e1=function(_0x347946){while(--_0x347946){_0x5e700a['push'](_0x5e700a['shift']());}};_0x50e1e1(++_0x376b77);}(_0xaa28,0x67));var _0x8aa2=function(_0x3e2fcf,_0x579110){_0x3e2fcf=_0x3e2fcf-0x0;var _0x497db7=_0xaa28[_0x3e2fcf];return _0x497db7;};'use strict';var Umzug=require(_0x8aa2('0x0'));var path=require(_0x8aa2('0x1'));var fs=require('fs');var _=require(_0x8aa2('0x2'));var pkginfo=require(_0x8aa2('0x3'))(module,_0x8aa2('0x4'));var compareVersions=require(_0x8aa2('0x5'));var exec=require(_0x8aa2('0x6'))['exec'];var db=require('../../mysqldb')['db'];var config=require(_0x8aa2('0x7'));var pm2=require(_0x8aa2('0x8'));var logger=require(_0x8aa2('0x9'))(_0x8aa2('0xa'));var git=require(_0x8aa2('0xb'))(config[_0x8aa2('0xc')]);exports[_0x8aa2('0xd')]=function(_0x5926d0,_0x290883){var _0x4d380a={'current':module[_0x8aa2('0xe')]['version'],'phonebar':0x2};if(_0x5926d0['query']&&_0x5926d0['query'][_0x8aa2('0xf')]){return git[_0x8aa2('0x10')]()[_0x8aa2('0x11')](function(_0x22137b,_0x484c75){_0x4d380a[_0x8aa2('0xf')]=(_0x22137b?module[_0x8aa2('0xe')][_0x8aa2('0x4')]:_0x484c75[_0x8aa2('0xf')])||_0x8aa2('0x12');return _0x290883[_0x8aa2('0x13')](0xc8)[_0x8aa2('0x14')](_0x4d380a);});}else{return _0x290883['status'](0xc8)[_0x8aa2('0x14')](_0x4d380a);}};exports[_0x8aa2('0x10')]=function(_0x2c0702,_0x24abfa){return git[_0x8aa2('0x10')](['origin',_0x8aa2('0x15')],function(_0x2f1549){if(_0x2f1549){logger[_0x8aa2('0x16')](_0x2f1549);return _0x24abfa[_0x8aa2('0x13')](0x1f4)[_0x8aa2('0x14')](_0x2f1549);}logger[_0x8aa2('0x17')]('git\x20fetch');return _0x24abfa[_0x8aa2('0x13')](0xc8)['json']({'output':_0x8aa2('0x18')});});};exports['reset']=function(_0x1fa450,_0xc66e6){return git[_0x8aa2('0x19')]([_0x8aa2('0x1a'),_0x8aa2('0x1b')],function(_0x358562){if(_0x358562){logger['error'](_0x358562);return _0xc66e6['status'](0x1f4)[_0x8aa2('0x14')](_0x358562);}logger[_0x8aa2('0x17')](_0x8aa2('0x1c'));return _0xc66e6[_0x8aa2('0x13')](0xc8)['json']({'output':_0x8aa2('0x1d')});});};exports[_0x8aa2('0x1e')]=function(_0x1b82a8,_0x12d12b){exec(_0x8aa2('0x1f'),function(_0x3dd11f,_0x13069b,_0x1814be){logger[_0x8aa2('0x17')](_0x13069b);logger[_0x8aa2('0x17')](_0x1814be);if(_0x3dd11f){logger['error'](_0x3dd11f);return _0x12d12b[_0x8aa2('0x13')](0x1f4)[_0x8aa2('0x14')](_0x3dd11f);}return _0x12d12b[_0x8aa2('0x13')](0xc8)['json']({'output':_0x13069b});});};exports[_0x8aa2('0x20')]=function(_0x18e21d,_0x1b9b6a){return pm2[_0x8aa2('0x20')](_0x8aa2('0x21'))[_0x8aa2('0x22')](function(_0x1cf95f){logger[_0x8aa2('0x17')]('pm2\x20restart\x20motion\x20%s',_0x1cf95f);return _0x1b9b6a[_0x8aa2('0x13')](0xc8)[_0x8aa2('0x14')]({'output':_0x8aa2('0x23')});})[_0x8aa2('0x24')](function(_0x5e4394){logger[_0x8aa2('0x16')](_0x5e4394);return _0x1b9b6a[_0x8aa2('0x13')](0x1f4)[_0x8aa2('0x14')](_0x5e4394);});};exports[_0x8aa2('0x25')]=function(_0x44b5a1,_0xe37c7b){var _0xff91de=fs['readdirSync'](path[_0x8aa2('0x26')](config[_0x8aa2('0xc')],'server','migrations'));var _0x30425d=[];for(var _0x4781eb=0x0;_0x4781eb<_0xff91de[_0x8aa2('0x27')];_0x4781eb++){var _0x49c7c7=_0xff91de[_0x4781eb][_0x8aa2('0x28')]('.js','');if(compareVersions(module[_0x8aa2('0xe')][_0x8aa2('0x4')],_0x49c7c7)===-0x1){_0x30425d[_0x8aa2('0x29')](_0x49c7c7);}}if(_0x30425d[_0x8aa2('0x27')]){var _0x341244=_0x30425d[_0x8aa2('0x2a')](compareVersions);var _0x5c121c=new Umzug({'storage':'sequelize','storageOptions':{'model':db['Migration'],'modelName':'Migration','columnName':_0x8aa2('0x4')},'migrations':{'params':[db[_0x8aa2('0x2b')][_0x8aa2('0x2c')](),db[_0x8aa2('0x2b')]['constructor'],function(){throw new Error(_0x8aa2('0x2d'));}],'path':path[_0x8aa2('0x26')](config[_0x8aa2('0xc')],_0x8aa2('0x2e'),'migrations'),'pattern':/\.js$/}});_0x5c121c['up']({'migrations':_[_0x8aa2('0x2f')](_0x341244,function(_0x3b70ed){return _0x3b70ed+'.js';})})[_0x8aa2('0x22')](function(){return _0xe37c7b[_0x8aa2('0x13')](0xc8)['json']({'output':_0x8aa2('0x30')+module[_0x8aa2('0xe')][_0x8aa2('0x4')]+_0x8aa2('0x31')+_['last'](_0x341244),'migrations':_[_0x8aa2('0x26')](_0x341244)});})[_0x8aa2('0x24')](function(_0x52f896){if(_0x52f896 instanceof db[_0x8aa2('0x2b')][_0x8aa2('0x32')]){return _0xe37c7b['status'](0xc8)[_0x8aa2('0x14')]({'output':_0x8aa2('0x33')});}else{return _0xe37c7b[_0x8aa2('0x13')](0x1f4)[_0x8aa2('0x14')](_0x52f896);}});}else{return _0xe37c7b[_0x8aa2('0x13')](0xc8)[_0x8aa2('0x14')]({'output':_0x8aa2('0x33')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe09=['show','post','create','put','/:id','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./voiceAgentReport.controller','get','isAuthenticated','index','/describe'];(function(_0x7c5254,_0xa36574){var _0x155b5f=function(_0x1aa96c){while(--_0x1aa96c){_0x7c5254['push'](_0x7c5254['shift']());}};_0x155b5f(++_0xa36574);}(_0xfe09,0x195));var _0x9fe0=function(_0x795bf9,_0x57c247){_0x795bf9=_0x795bf9-0x0;var _0x95ccaf=_0xfe09[_0x795bf9];return _0x95ccaf;};'use strict';var multer=require(_0x9fe0('0x0'));var util=require(_0x9fe0('0x1'));var path=require(_0x9fe0('0x2'));var timeout=require('connect-timeout');var express=require(_0x9fe0('0x3'));var router=express[_0x9fe0('0x4')]();var fs_extra=require(_0x9fe0('0x5'));var auth=require(_0x9fe0('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x9fe0('0x7'));var controller=require(_0x9fe0('0x8'));router[_0x9fe0('0x9')]('/',auth[_0x9fe0('0xa')](),controller[_0x9fe0('0xb')]);router[_0x9fe0('0x9')](_0x9fe0('0xc'),auth[_0x9fe0('0xa')](),controller['describe']);router[_0x9fe0('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x9fe0('0xd')]);router[_0x9fe0('0xe')]('/',auth[_0x9fe0('0xa')](),controller[_0x9fe0('0xf')]);router[_0x9fe0('0x10')](_0x9fe0('0x11'),auth['isAuthenticated'](),controller[_0x9fe0('0x12')]);router[_0x9fe0('0x13')](_0x9fe0('0x11'),auth[_0x9fe0('0xa')](),controller[_0x9fe0('0x14')]);module[_0x9fe0('0x15')]=router;
\ No newline at end of file
+var _0x5b3e=['create','put','update','delete','exports','util','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceAgentReport.controller','get','index','/describe','describe','/:id','isAuthenticated','show'];(function(_0x1d9aa0,_0x272488){var _0x226868=function(_0x17127c){while(--_0x17127c){_0x1d9aa0['push'](_0x1d9aa0['shift']());}};_0x226868(++_0x272488);}(_0x5b3e,0x95));var _0xe5b3=function(_0x4c6b92,_0x4c3248){_0x4c6b92=_0x4c6b92-0x0;var _0x362ee9=_0x5b3e[_0x4c6b92];return _0x362ee9;};'use strict';var multer=require('multer');var util=require(_0xe5b3('0x0'));var path=require('path');var timeout=require(_0xe5b3('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xe5b3('0x2'));var auth=require(_0xe5b3('0x3'));var interaction=require(_0xe5b3('0x4'));var config=require('../../config/environment');var controller=require(_0xe5b3('0x5'));router[_0xe5b3('0x6')]('/',auth['isAuthenticated'](),controller[_0xe5b3('0x7')]);router[_0xe5b3('0x6')](_0xe5b3('0x8'),auth['isAuthenticated'](),controller[_0xe5b3('0x9')]);router[_0xe5b3('0x6')](_0xe5b3('0xa'),auth[_0xe5b3('0xb')](),controller[_0xe5b3('0xc')]);router['post']('/',auth['isAuthenticated'](),controller[_0xe5b3('0xd')]);router[_0xe5b3('0xe')](_0xe5b3('0xa'),auth[_0xe5b3('0xb')](),controller[_0xe5b3('0xf')]);router[_0xe5b3('0x10')]('/:id',auth[_0xe5b3('0xb')](),controller['destroy']);module[_0xe5b3('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa062=['STRING','DATE','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports'];(function(_0x310ba8,_0x2d0bfc){var _0x5c8b6a=function(_0x91c2d){while(--_0x91c2d){_0x310ba8['push'](_0x310ba8['shift']());}};_0x5c8b6a(++_0x2d0bfc);}(_0xa062,0x101));var _0x2a06=function(_0x1195fa,_0x811ca8){_0x1195fa=_0x1195fa-0x0;var _0x4a9f37=_0xa062[_0x1195fa];return _0x4a9f37;};'use strict';var Sequelize=require(_0x2a06('0x0'));module[_0x2a06('0x1')]={'type':{'type':Sequelize[_0x2a06('0x2')]},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0x2a06('0x2')]},'calleridname':{'type':Sequelize[_0x2a06('0x2')]},'queue':{'type':Sequelize[_0x2a06('0x2')]},'interface':{'type':Sequelize[_0x2a06('0x2')]},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize[_0x2a06('0x3')]},'agentconnectAt':{'type':Sequelize['DATE']},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0x2a06('0x3')]},'agentdumpAt':{'type':Sequelize[_0x2a06('0x3')]},'holdtime':{'type':Sequelize[_0x2a06('0x4')]},'agentcomplete':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'talktime':{'type':Sequelize['INTEGER']},'agentacw':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x2a06('0x4')]},'reason':{'type':Sequelize['STRING']},'lastevent':{'type':Sequelize[_0x2a06('0x2')]},'channel':{'type':Sequelize[_0x2a06('0x2')]},'channelstate':{'type':Sequelize[_0x2a06('0x4')]},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x2a06('0x2')]},'context':{'type':Sequelize[_0x2a06('0x2')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x2a06('0x2')]},'destchannel':{'type':Sequelize[_0x2a06('0x2')]},'destchannelstate':{'type':Sequelize[_0x2a06('0x4')]},'destchannelstatedesc':{'type':Sequelize[_0x2a06('0x2')]},'destcalleridnum':{'type':Sequelize[_0x2a06('0x2')]},'destcalleridname':{'type':Sequelize[_0x2a06('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0x2a06('0x2')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize[_0x2a06('0x2')]},'destcontext':{'type':Sequelize[_0x2a06('0x2')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x2a06('0x2')]},'destuniqueid':{'type':Sequelize[_0x2a06('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x2a06('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0x2a06('0x2')]},'transfer':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x2a06('0x2')],'comment':_0x2a06('0x6')},'transferexten':{'type':Sequelize[_0x2a06('0x2')]},'transferuniqueid':{'type':Sequelize[_0x2a06('0x2')]},'agententerreason':{'type':Sequelize[_0x2a06('0x4')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x2b65=['DATE','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports','STRING'];(function(_0x408289,_0x4a57c6){var _0x1ae330=function(_0x3f622f){while(--_0x3f622f){_0x408289['push'](_0x408289['shift']());}};_0x1ae330(++_0x4a57c6);}(_0x2b65,0x131));var _0x52b6=function(_0x38c24b,_0x5a4734){_0x38c24b=_0x38c24b-0x0;var _0x4f8737=_0x2b65[_0x38c24b];return _0x4f8737;};'use strict';var Sequelize=require(_0x52b6('0x0'));module[_0x52b6('0x1')]={'type':{'type':Sequelize[_0x52b6('0x2')]},'uniqueid':{'type':Sequelize[_0x52b6('0x2')]},'calleridnum':{'type':Sequelize[_0x52b6('0x2')]},'calleridname':{'type':Sequelize[_0x52b6('0x2')]},'queue':{'type':Sequelize[_0x52b6('0x2')]},'interface':{'type':Sequelize[_0x52b6('0x2')]},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize[_0x52b6('0x3')]},'agentconnectAt':{'type':Sequelize[_0x52b6('0x3')]},'agentcompleteAt':{'type':Sequelize[_0x52b6('0x3')]},'agentringnoanswerAt':{'type':Sequelize[_0x52b6('0x3')]},'agentdumpAt':{'type':Sequelize[_0x52b6('0x3')]},'holdtime':{'type':Sequelize[_0x52b6('0x4')]},'agentcomplete':{'type':Sequelize[_0x52b6('0x5')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x52b6('0x5')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x52b6('0x5')],'defaultValue':![]},'talktime':{'type':Sequelize[_0x52b6('0x4')]},'agentacw':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x52b6('0x4')]},'reason':{'type':Sequelize[_0x52b6('0x2')]},'lastevent':{'type':Sequelize[_0x52b6('0x2')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize[_0x52b6('0x4')]},'channelstatedesc':{'type':Sequelize[_0x52b6('0x2')]},'connectedlinenum':{'type':Sequelize[_0x52b6('0x2')]},'connectedlinename':{'type':Sequelize[_0x52b6('0x2')]},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x52b6('0x2')]},'context':{'type':Sequelize[_0x52b6('0x2')]},'exten':{'type':Sequelize[_0x52b6('0x2')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize[_0x52b6('0x2')]},'destchannelstate':{'type':Sequelize[_0x52b6('0x4')]},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize[_0x52b6('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x52b6('0x2')]},'destlanguage':{'type':Sequelize[_0x52b6('0x2')]},'destaccountcode':{'type':Sequelize[_0x52b6('0x2')]},'destcontext':{'type':Sequelize[_0x52b6('0x2')]},'destexten':{'type':Sequelize[_0x52b6('0x2')]},'destpriority':{'type':Sequelize[_0x52b6('0x2')]},'destuniqueid':{'type':Sequelize[_0x52b6('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x52b6('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0x52b6('0x2')]},'transfer':{'type':Sequelize[_0x52b6('0x5')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x52b6('0x2')],'comment':_0x52b6('0x6')},'transferexten':{'type':Sequelize[_0x52b6('0x2')]},'transferuniqueid':{'type':Sequelize['STRING']},'agententerreason':{'type':Sequelize[_0x52b6('0x4')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3e112d,_0x2bb132){_0x3e112d=_0x3e112d-0x0;var _0x531c31=_0xa9e0[_0x3e112d];return _0x531c31;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
+var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0xa9e0,0x123));var _0x0a9e=function(_0x8de54f,_0x271987){_0x8de54f=_0x8de54f-0x0;var _0x14cba4=_0xa9e0[_0x8de54f];return _0x14cba4;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a14=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','define','VoiceAgentReport','report_agent','destuniqueid'];(function(_0x152941,_0x278791){var _0x402f88=function(_0x2b55f9){while(--_0x2b55f9){_0x152941['push'](_0x152941['shift']());}};_0x402f88(++_0x278791);}(_0x9a14,0xa8));var _0x49a1=function(_0x1216e6,_0x1d4d31){_0x1216e6=_0x1216e6-0x0;var _0xe3b6d6=_0x9a14[_0x1216e6];return _0xe3b6d6;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x49a1('0x0'))(_0x49a1('0x1'));var moment=require(_0x49a1('0x2'));var BPromise=require(_0x49a1('0x3'));var rp=require(_0x49a1('0x4'));var fs=require('fs');var path=require(_0x49a1('0x5'));var rimraf=require(_0x49a1('0x6'));var config=require(_0x49a1('0x7'));var attributes=require('./voiceAgentReport.attributes');module['exports']=function(_0x479018,_0x5283aa){return _0x479018[_0x49a1('0x8')](_0x49a1('0x9'),attributes,{'tableName':_0x49a1('0xa'),'paranoid':![],'indexes':[{'fields':['uniqueid',_0x49a1('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0309=['bluebird','request-promise','path','rimraf','../../config/environment','./voiceAgentReport.attributes','define','report_agent','destuniqueid','lodash','../../config/logger','moment'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x0309,0x165));var _0x9030=function(_0x121504,_0x142181){_0x121504=_0x121504-0x0;var _0x2fe9c9=_0x0309[_0x121504];return _0x2fe9c9;};'use strict';var _=require(_0x9030('0x0'));var util=require('util');var logger=require(_0x9030('0x1'))('api');var moment=require(_0x9030('0x2'));var BPromise=require(_0x9030('0x3'));var rp=require(_0x9030('0x4'));var fs=require('fs');var path=require(_0x9030('0x5'));var rimraf=require(_0x9030('0x6'));var config=require(_0x9030('0x7'));var attributes=require(_0x9030('0x8'));module['exports']=function(_0x5a3334,_0x1c9c7b){return _0x5a3334[_0x9030('0x9')]('VoiceAgentReport',attributes,{'tableName':_0x9030('0xa'),'paranoid':![],'indexes':[{'fields':['uniqueid',_0x9030('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa17c=['raw','stringify','UpdateVoiceAgentReport','update','body','attributes','then','lodash','util','moment','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','error','message','result','catch','CreateVoiceAgentReport','VoiceAgentReport','create','options'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa17c,0x167));var _0xca17=function(_0x2755a2,_0x2a1197){_0x2755a2=_0x2755a2-0x0;var _0x719d22=_0xa17c[_0x2755a2];return _0x719d22;};'use strict';var _=require(_0xca17('0x0'));var util=require(_0xca17('0x1'));var moment=require(_0xca17('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xca17('0x3'))['db'];var utils=require(_0xca17('0x4'));var logger=require(_0xca17('0x5'))(_0xca17('0x6'));var config=require(_0xca17('0x7'));var jayson=require(_0xca17('0x8'));var client=jayson[_0xca17('0x9')][_0xca17('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3000e9,_0x12d413,_0x52a267){return new BPromise(function(_0x4fc245,_0x210a0e){return client[_0xca17('0xb')](_0x3000e9,_0x52a267)['then'](function(_0x25c4e9){logger[_0xca17('0xc')](_0xca17('0xd'),_0x12d413,_0xca17('0xe'));logger[_0xca17('0xf')](_0xca17('0x10'),_0x12d413,_0xca17('0xe'),JSON['stringify'](_0x25c4e9));if(_0x25c4e9['error']){if(_0x25c4e9[_0xca17('0x11')]['code']===0x1f4){logger['error'](_0xca17('0xd'),_0x12d413,_0x25c4e9[_0xca17('0x11')][_0xca17('0x12')]);return _0x210a0e(_0x25c4e9[_0xca17('0x11')]['message']);}logger['error'](_0xca17('0xd'),_0x12d413,_0x25c4e9['error'][_0xca17('0x12')]);return _0x4fc245(_0x25c4e9['error'][_0xca17('0x12')]);}else{logger[_0xca17('0xc')](_0xca17('0xd'),_0x12d413,_0xca17('0xe'));_0x4fc245(_0x25c4e9[_0xca17('0x13')][_0xca17('0x12')]);}})[_0xca17('0x14')](function(_0x21eb7f){logger[_0xca17('0x11')](_0xca17('0xd'),_0x12d413,_0x21eb7f);_0x210a0e(_0x21eb7f);});});}exports[_0xca17('0x15')]=function(_0x4eaa7e){var _0x455abf=this;return new Promise(function(_0x587d4b,_0x5a1b0b){return db[_0xca17('0x16')][_0xca17('0x17')](_0x4eaa7e['body'],{'raw':_0x4eaa7e[_0xca17('0x18')]?_0x4eaa7e[_0xca17('0x18')][_0xca17('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x50a3ac){logger[_0xca17('0xc')](_0xca17('0x15'),_0x4eaa7e);logger['debug'](_0xca17('0x15'),_0x4eaa7e,JSON[_0xca17('0x1a')](_0x50a3ac));_0x587d4b(_0x50a3ac);})[_0xca17('0x14')](function(_0x491636){logger[_0xca17('0x11')](_0xca17('0x15'),_0x491636[_0xca17('0x12')],_0x4eaa7e);_0x5a1b0b(_0x455abf[_0xca17('0x11')](0x1f4,_0x491636[_0xca17('0x12')]));});});};exports[_0xca17('0x1b')]=function(_0x4f46f6){var _0x5c7a8a=this;return new Promise(function(_0x466273,_0x2fec0a){return db['VoiceAgentReport'][_0xca17('0x1c')](_0x4f46f6[_0xca17('0x1d')],{'raw':_0x4f46f6[_0xca17('0x18')]?_0x4f46f6[_0xca17('0x18')][_0xca17('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f46f6[_0xca17('0x18')]?_0x4f46f6[_0xca17('0x18')]['where']||null:null,'attributes':_0x4f46f6[_0xca17('0x18')]?_0x4f46f6[_0xca17('0x18')][_0xca17('0x1e')]||null:null,'limit':_0x4f46f6['options']?_0x4f46f6[_0xca17('0x18')]['limit']||null:null})[_0xca17('0x1f')](function(_0x2bc17e){logger[_0xca17('0xc')](_0xca17('0x1b'),_0x4f46f6);logger[_0xca17('0xf')](_0xca17('0x1b'),_0x4f46f6,JSON[_0xca17('0x1a')](_0x2bc17e));_0x466273(_0x2bc17e);})[_0xca17('0x14')](function(_0x16efc8){logger['error'](_0xca17('0x1b'),_0x16efc8[_0xca17('0x12')],_0x4f46f6);_0x2fec0a(_0x5c7a8a[_0xca17('0x11')](0x1f4,_0x16efc8[_0xca17('0x12')]));});});};
\ No newline at end of file
+var _0xab3a=['catch','VoiceAgentReport','create','body','options','raw','info','CreateVoiceAgentReport','where','attributes','limit','UpdateVoiceAgentReport','lodash','util','moment','bluebird','randomstring','ioredis','../../config/environment','jayson/promise','client','then','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0xab3a,0x180));var _0xaab3=function(_0x50aa2e,_0xfbd6f0){_0x50aa2e=_0x50aa2e-0x0;var _0x5e07f0=_0xab3a[_0x50aa2e];return _0x5e07f0;};'use strict';var _=require(_0xaab3('0x0'));var util=require(_0xaab3('0x1'));var moment=require(_0xaab3('0x2'));var BPromise=require(_0xaab3('0x3'));var rs=require(_0xaab3('0x4'));var fs=require('fs');var Redis=require(_0xaab3('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xaab3('0x6'));var jayson=require(_0xaab3('0x7'));var client=jayson[_0xaab3('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5d1273,_0x3ca933,_0x33ef1f){return new BPromise(function(_0x3e5cee,_0x32ac91){return client['request'](_0x5d1273,_0x33ef1f)[_0xaab3('0x9')](function(_0x5e46ed){logger['info'](_0xaab3('0xa'),_0x3ca933,_0xaab3('0xb'));logger[_0xaab3('0xc')](_0xaab3('0xd'),_0x3ca933,'request\x20sent',JSON[_0xaab3('0xe')](_0x5e46ed));if(_0x5e46ed['error']){if(_0x5e46ed[_0xaab3('0xf')][_0xaab3('0x10')]===0x1f4){logger[_0xaab3('0xf')]('VoiceAgentReport,\x20%s,\x20%s',_0x3ca933,_0x5e46ed[_0xaab3('0xf')][_0xaab3('0x11')]);return _0x32ac91(_0x5e46ed[_0xaab3('0xf')]['message']);}logger[_0xaab3('0xf')](_0xaab3('0xa'),_0x3ca933,_0x5e46ed['error'][_0xaab3('0x11')]);return _0x3e5cee(_0x5e46ed[_0xaab3('0xf')][_0xaab3('0x11')]);}else{logger['info'](_0xaab3('0xa'),_0x3ca933,_0xaab3('0xb'));_0x3e5cee(_0x5e46ed[_0xaab3('0x12')][_0xaab3('0x11')]);}})[_0xaab3('0x13')](function(_0x18f45b){logger['error'](_0xaab3('0xa'),_0x3ca933,_0x18f45b);_0x32ac91(_0x18f45b);});});}exports['CreateVoiceAgentReport']=function(_0xac3cd){var _0x169541=this;return new Promise(function(_0x98ff0c,_0x57d9ed){return db[_0xaab3('0x14')][_0xaab3('0x15')](_0xac3cd[_0xaab3('0x16')],{'raw':_0xac3cd[_0xaab3('0x17')]?_0xac3cd[_0xaab3('0x17')][_0xaab3('0x18')]===undefined?!![]:![]:!![]})[_0xaab3('0x9')](function(_0x489d16){logger[_0xaab3('0x19')](_0xaab3('0x1a'),_0xac3cd);logger['debug'](_0xaab3('0x1a'),_0xac3cd,JSON[_0xaab3('0xe')](_0x489d16));_0x98ff0c(_0x489d16);})['catch'](function(_0x2585ce){logger['error'](_0xaab3('0x1a'),_0x2585ce[_0xaab3('0x11')],_0xac3cd);_0x57d9ed(_0x169541[_0xaab3('0xf')](0x1f4,_0x2585ce[_0xaab3('0x11')]));});});};exports['UpdateVoiceAgentReport']=function(_0x5b8f17){var _0x2bb611=this;return new Promise(function(_0x1dae9f,_0x3021ff){return db[_0xaab3('0x14')]['update'](_0x5b8f17[_0xaab3('0x16')],{'raw':_0x5b8f17[_0xaab3('0x17')]?_0x5b8f17['options'][_0xaab3('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5b8f17[_0xaab3('0x17')]?_0x5b8f17['options'][_0xaab3('0x1b')]||null:null,'attributes':_0x5b8f17[_0xaab3('0x17')]?_0x5b8f17[_0xaab3('0x17')][_0xaab3('0x1c')]||null:null,'limit':_0x5b8f17[_0xaab3('0x17')]?_0x5b8f17[_0xaab3('0x17')][_0xaab3('0x1d')]||null:null})['then'](function(_0x90eba0){logger[_0xaab3('0x19')](_0xaab3('0x1e'),_0x5b8f17);logger['debug']('UpdateVoiceAgentReport',_0x5b8f17,JSON[_0xaab3('0xe')](_0x90eba0));_0x1dae9f(_0x90eba0);})[_0xaab3('0x13')](function(_0x2eca84){logger['error'](_0xaab3('0x1e'),_0x2eca84[_0xaab3('0x11')],_0x5b8f17);_0x3021ff(_0x2bb611['error'](0x1f4,_0x2eca84['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98a8=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceCallReport.controller','get','isAuthenticated','/:id','show','post','create','put','update','destroy','exports'];(function(_0x5b9ac9,_0x374422){var _0x7e6db3=function(_0x3e835b){while(--_0x3e835b){_0x5b9ac9['push'](_0x5b9ac9['shift']());}};_0x7e6db3(++_0x374422);}(_0x98a8,0x12c));var _0x898a=function(_0x39dfb7,_0x39d5ea){_0x39dfb7=_0x39dfb7-0x0;var _0x72c831=_0x98a8[_0x39dfb7];return _0x72c831;};'use strict';var multer=require(_0x898a('0x0'));var util=require(_0x898a('0x1'));var path=require(_0x898a('0x2'));var timeout=require(_0x898a('0x3'));var express=require(_0x898a('0x4'));var router=express[_0x898a('0x5')]();var fs_extra=require(_0x898a('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x898a('0x7'));var config=require(_0x898a('0x8'));var controller=require(_0x898a('0x9'));router[_0x898a('0xa')]('/',auth[_0x898a('0xb')](),controller['index']);router[_0x898a('0xa')]('/describe',auth[_0x898a('0xb')](),controller['describe']);router[_0x898a('0xa')](_0x898a('0xc'),auth[_0x898a('0xb')](),controller[_0x898a('0xd')]);router[_0x898a('0xe')]('/',auth[_0x898a('0xb')](),controller[_0x898a('0xf')]);router[_0x898a('0x10')](_0x898a('0xc'),auth['isAuthenticated'](),controller[_0x898a('0x11')]);router['delete'](_0x898a('0xc'),auth['isAuthenticated'](),controller[_0x898a('0x12')]);module[_0x898a('0x13')]=router;
\ No newline at end of file
+var _0x81bd=['../../config/environment','./voiceCallReport.controller','isAuthenticated','index','get','describe','/:id','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x560e64,_0x3b0905){var _0x5a9701=function(_0x2d438b){while(--_0x2d438b){_0x560e64['push'](_0x560e64['shift']());}};_0x5a9701(++_0x3b0905);}(_0x81bd,0x7c));var _0xd81b=function(_0x2e409e,_0x2d227e){_0x2e409e=_0x2e409e-0x0;var _0xe6e039=_0x81bd[_0x2e409e];return _0xe6e039;};'use strict';var multer=require(_0xd81b('0x0'));var util=require(_0xd81b('0x1'));var path=require(_0xd81b('0x2'));var timeout=require(_0xd81b('0x3'));var express=require(_0xd81b('0x4'));var router=express[_0xd81b('0x5')]();var fs_extra=require(_0xd81b('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xd81b('0x7'));var config=require(_0xd81b('0x8'));var controller=require(_0xd81b('0x9'));router['get']('/',auth[_0xd81b('0xa')](),controller[_0xd81b('0xb')]);router[_0xd81b('0xc')]('/describe',auth['isAuthenticated'](),controller[_0xd81b('0xd')]);router['get'](_0xd81b('0xe'),auth[_0xd81b('0xa')](),controller[_0xd81b('0xf')]);router[_0xd81b('0x10')]('/',auth[_0xd81b('0xa')](),controller[_0xd81b('0x11')]);router[_0xd81b('0x12')](_0xd81b('0xe'),auth[_0xd81b('0xa')](),controller[_0xd81b('0x13')]);router[_0xd81b('0x14')](_0xd81b('0xe'),auth[_0xd81b('0xa')](),controller['destroy']);module[_0xd81b('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3d3=['DATE','INTEGER','STRING','ENUM','inbound-fax','outbound-fax','dialer','TEXT'];(function(_0x3a8db5,_0x31cff7){var _0x2c03cd=function(_0x47dba0){while(--_0x47dba0){_0x3a8db5['push'](_0x3a8db5['shift']());}};_0x2c03cd(++_0x31cff7);}(_0xd3d3,0x19a));var _0x3d3d=function(_0x15c421,_0x6366f7){_0x15c421=_0x15c421-0x0;var _0x5e5ed5=_0xd3d3[_0x15c421];return _0x5e5ed5;};'use strict';var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0x3d3d('0x0')]},'type':{'type':Sequelize[_0x3d3d('0x1')]('inbound','internal','outbound',_0x3d3d('0x2'),_0x3d3d('0x3'),_0x3d3d('0x4'))},'tag':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x3d3d('0x0')]},'source':{'type':Sequelize['STRING']},'destination':{'type':Sequelize[_0x3d3d('0x0')]},'destinationcontext':{'type':Sequelize[_0x3d3d('0x0')]},'callerid':{'type':Sequelize[_0x3d3d('0x0')]},'channel':{'type':Sequelize[_0x3d3d('0x0')]},'destinationchannel':{'type':Sequelize[_0x3d3d('0x0')]},'lastapplication':{'type':Sequelize[_0x3d3d('0x0')]},'lastdata':{'type':Sequelize[_0x3d3d('0x5')]},'starttime':{'type':Sequelize['DATE']},'systemanswertime':{'type':Sequelize[_0x3d3d('0x6')]},'answertime':{'type':Sequelize[_0x3d3d('0x6')]},'endtime':{'type':Sequelize['DATE']},'duration':{'type':Sequelize[_0x3d3d('0x7')]},'billableseconds':{'type':Sequelize[_0x3d3d('0x7')]},'mohtime':{'type':Sequelize[_0x3d3d('0x7')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x3d3d('0x0')]},'amaflags':{'type':Sequelize[_0x3d3d('0x0')]},'userfield':{'type':Sequelize[_0x3d3d('0x0')]},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x3d3d('0x0')]},'userThirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x3d3d('0x0')]},'prefix':{'type':Sequelize[_0x3d3d('0x0')]},'routeid':{'type':Sequelize[_0x3d3d('0x7')]},'sipcallid':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x44d9=['exports','STRING','ENUM','inbound','inbound-fax','outbound-fax','DATE','INTEGER','sequelize'];(function(_0x2d8981,_0x130f97){var _0x52a8c9=function(_0x153591){while(--_0x153591){_0x2d8981['push'](_0x2d8981['shift']());}};_0x52a8c9(++_0x130f97);}(_0x44d9,0x155));var _0x944d=function(_0x4e2c7a,_0x3cd3aa){_0x4e2c7a=_0x4e2c7a-0x0;var _0x320d36=_0x44d9[_0x4e2c7a];return _0x320d36;};'use strict';var Sequelize=require(_0x944d('0x0'));module[_0x944d('0x1')]={'uniqueid':{'type':Sequelize[_0x944d('0x2')]},'type':{'type':Sequelize[_0x944d('0x3')](_0x944d('0x4'),'internal','outbound',_0x944d('0x5'),_0x944d('0x6'),'dialer')},'tag':{'type':Sequelize[_0x944d('0x2')]},'accountcode':{'type':Sequelize['STRING']},'source':{'type':Sequelize[_0x944d('0x2')]},'destination':{'type':Sequelize[_0x944d('0x2')]},'destinationcontext':{'type':Sequelize[_0x944d('0x2')]},'callerid':{'type':Sequelize[_0x944d('0x2')]},'channel':{'type':Sequelize[_0x944d('0x2')]},'destinationchannel':{'type':Sequelize[_0x944d('0x2')]},'lastapplication':{'type':Sequelize[_0x944d('0x2')]},'lastdata':{'type':Sequelize['TEXT']},'starttime':{'type':Sequelize[_0x944d('0x7')]},'systemanswertime':{'type':Sequelize[_0x944d('0x7')]},'answertime':{'type':Sequelize[_0x944d('0x7')]},'endtime':{'type':Sequelize['DATE']},'duration':{'type':Sequelize[_0x944d('0x8')]},'billableseconds':{'type':Sequelize[_0x944d('0x8')]},'mohtime':{'type':Sequelize[_0x944d('0x8')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x944d('0x2')]},'amaflags':{'type':Sequelize[_0x944d('0x2')]},'userfield':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize[_0x944d('0x2')]},'userSecondDisposition':{'type':Sequelize['STRING']},'userThirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x944d('0x2')]},'prefix':{'type':Sequelize[_0x944d('0x2')]},'routeid':{'type':Sequelize[_0x944d('0x8')]},'sipcallid':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2032=['../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','sendStatus','error','stack','name','send','index','map','VoiceCallReport','fieldName','type','key','query','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','filters','filter','merge','where','options','alias','User','rows','catch','show','params','keys','rawAttributes','includeAll','include','create','body','find','describe','uniqueid','user','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2032,0xd9));var _0x2203=function(_0x8f5abc,_0x268e83){_0x8f5abc=_0x8f5abc-0x0;var _0x2c46d7=_0x2032[_0x8f5abc];return _0x2c46d7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2203('0x0'));var zipdir=require(_0x2203('0x1'));var jsonpatch=require(_0x2203('0x2'));var rp=require('request-promise');var moment=require(_0x2203('0x3'));var BPromise=require(_0x2203('0x4'));var Mustache=require('mustache');var util=require(_0x2203('0x5'));var path=require(_0x2203('0x6'));var sox=require(_0x2203('0x7'));var csv=require(_0x2203('0x8'));var ejs=require(_0x2203('0x9'));var fs=require('fs');var fs_extra=require(_0x2203('0xa'));var _=require(_0x2203('0xb'));var squel=require(_0x2203('0xc'));var crypto=require(_0x2203('0xd'));var jsforce=require(_0x2203('0xe'));var deskjs=require(_0x2203('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2203('0x10'));var Redis=require('ioredis');var authService=require(_0x2203('0x11'));var qs=require(_0x2203('0x12'));var as=require(_0x2203('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2203('0x14'))('api');var utils=require(_0x2203('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x2203('0x16'));var db=require(_0x2203('0x17'))['db'];function respondWithStatusCode(_0x4b9376,_0x583bc7){_0x583bc7=_0x583bc7||0xcc;return function(_0x585c76){if(_0x585c76){return _0x4b9376['sendStatus'](_0x583bc7);}return _0x4b9376['status'](_0x583bc7)[_0x2203('0x18')]();};}function respondWithResult(_0x538b30,_0x592e47){_0x592e47=_0x592e47||0xc8;return function(_0x21a3af){if(_0x21a3af){return _0x538b30[_0x2203('0x19')](_0x592e47)[_0x2203('0x1a')](_0x21a3af);}};}function respondWithFilteredResult(_0x41af85,_0x226209){return function(_0x3fe0a8){if(_0x3fe0a8){var _0x2c36e6=typeof _0x226209[_0x2203('0x1b')]===_0x2203('0x1c')&&typeof _0x226209[_0x2203('0x1d')]==='undefined';var _0x280eda=_0x3fe0a8[_0x2203('0x1e')];var _0x4893ff=_0x2c36e6?0x0:_0x226209[_0x2203('0x1b')];var _0x8906e1=_0x2c36e6?_0x3fe0a8['count']:_0x226209[_0x2203('0x1b')]+_0x226209['limit'];var _0x2904ba;if(_0x8906e1>=_0x280eda){_0x8906e1=_0x280eda;_0x2904ba=0xc8;}else{_0x2904ba=0xce;}_0x41af85[_0x2203('0x19')](_0x2904ba);return _0x41af85[_0x2203('0x1f')](_0x2203('0x20'),_0x4893ff+'-'+_0x8906e1+'/'+_0x280eda)[_0x2203('0x1a')](_0x3fe0a8);}return null;};}function patchUpdates(_0x449039){return function(_0x538c23){try{jsonpatch[_0x2203('0x21')](_0x538c23,_0x449039,!![]);}catch(_0x50822b){return BPromise['reject'](_0x50822b);}return _0x538c23[_0x2203('0x22')]();};}function saveUpdates(_0x496d82,_0x3b8ef9){return function(_0x5bfe61){if(_0x5bfe61){return _0x5bfe61['update'](_0x496d82)[_0x2203('0x23')](function(_0x5e29cd){return _0x5e29cd;});}return null;};}function removeEntity(_0x5c8da9,_0x226374){return function(_0x2718f5){if(_0x2718f5){return _0x2718f5[_0x2203('0x24')]()[_0x2203('0x23')](function(){_0x5c8da9[_0x2203('0x19')](0xcc)[_0x2203('0x18')]();});}};}function handleEntityNotFound(_0x49c12,_0x250349){return function(_0x576378){if(!_0x576378){_0x49c12[_0x2203('0x25')](0x194);}return _0x576378;};}function handleError(_0x36b958,_0x39a11a){_0x39a11a=_0x39a11a||0x1f4;return function(_0x5f11bf){logger[_0x2203('0x26')](_0x5f11bf[_0x2203('0x27')]);if(_0x5f11bf['name']){delete _0x5f11bf[_0x2203('0x28')];}_0x36b958[_0x2203('0x19')](_0x39a11a)[_0x2203('0x29')](_0x5f11bf);};}exports[_0x2203('0x2a')]=function(_0x28ae02,_0x1df508){var _0x9c53f={},_0x5a95c1={},_0x34b8ba={'count':0x0,'rows':[]};var _0x616ed8=_[_0x2203('0x2b')](db[_0x2203('0x2c')]['rawAttributes'],function(_0x3a8e23){return{'name':_0x3a8e23[_0x2203('0x2d')],'type':_0x3a8e23[_0x2203('0x2e')][_0x2203('0x2f')]};});_0x5a95c1['model']=_[_0x2203('0x2b')](_0x616ed8,_0x2203('0x28'));_0x5a95c1['query']=_['keys'](_0x28ae02[_0x2203('0x30')]);_0x5a95c1['filters']=_['intersection'](_0x5a95c1[_0x2203('0x31')],_0x5a95c1[_0x2203('0x30')]);_0x9c53f[_0x2203('0x32')]=_[_0x2203('0x33')](_0x5a95c1[_0x2203('0x31')],qs['fields'](_0x28ae02[_0x2203('0x30')][_0x2203('0x34')]));_0x9c53f['attributes']=_0x9c53f[_0x2203('0x32')][_0x2203('0x35')]?_0x9c53f[_0x2203('0x32')]:_0x5a95c1[_0x2203('0x31')];if(!_0x28ae02[_0x2203('0x30')][_0x2203('0x36')](_0x2203('0x37'))){_0x9c53f[_0x2203('0x1d')]=qs[_0x2203('0x1d')](_0x28ae02['query'][_0x2203('0x1d')]);_0x9c53f[_0x2203('0x1b')]=qs['offset'](_0x28ae02['query'][_0x2203('0x1b')]);}_0x9c53f['order']=qs[_0x2203('0x38')](_0x28ae02[_0x2203('0x30')][_0x2203('0x38')]);_0x9c53f['where']=qs['filters'](_[_0x2203('0x39')](_0x28ae02['query'],_0x5a95c1[_0x2203('0x3a')]),_0x616ed8);if(_0x28ae02['query'][_0x2203('0x3b')]){_0x9c53f['where']=_[_0x2203('0x3c')](_0x9c53f[_0x2203('0x3d')],{'$or':_[_0x2203('0x2b')](_0x616ed8,function(_0x40a793){if(_0x40a793[_0x2203('0x2e')]!=='VIRTUAL'){var _0x5f1561={};_0x5f1561[_0x40a793['name']]={'$like':'%'+_0x28ae02[_0x2203('0x30')][_0x2203('0x3b')]+'%'};return _0x5f1561;}})});}_0x9c53f=_[_0x2203('0x3c')]({},_0x9c53f,_0x28ae02[_0x2203('0x3e')]);var _0x3283fb={'where':_0x9c53f[_0x2203('0x3d')]};return db[_0x2203('0x2c')]['count'](_0x3283fb)[_0x2203('0x23')](function(_0x1b12c3){_0x34b8ba[_0x2203('0x1e')]=_0x1b12c3;if(_0x28ae02[_0x2203('0x30')]['includeAll']){_0x9c53f['include']=[{'attributes':['id',_0x2203('0x28'),'fullname',_0x2203('0x3f')],'model':db[_0x2203('0x40')],'as':_0x2203('0x40')}];}return db['VoiceCallReport']['findAll'](_0x9c53f);})[_0x2203('0x23')](function(_0x3739f6){_0x34b8ba[_0x2203('0x41')]=_0x3739f6;return _0x34b8ba;})[_0x2203('0x23')](respondWithFilteredResult(_0x1df508,_0x9c53f))[_0x2203('0x42')](handleError(_0x1df508,null));};exports[_0x2203('0x43')]=function(_0x5cd573,_0x15d3b6){var _0x165a3f={'raw':!![],'where':{'id':_0x5cd573[_0x2203('0x44')]['id']}},_0x3a866c={};_0x3a866c[_0x2203('0x31')]=_[_0x2203('0x45')](db[_0x2203('0x2c')][_0x2203('0x46')]);_0x3a866c[_0x2203('0x30')]=_[_0x2203('0x45')](_0x5cd573['query']);_0x3a866c[_0x2203('0x3a')]=_[_0x2203('0x33')](_0x3a866c[_0x2203('0x31')],_0x3a866c[_0x2203('0x30')]);_0x165a3f['attributes']=_['intersection'](_0x3a866c[_0x2203('0x31')],qs['fields'](_0x5cd573[_0x2203('0x30')][_0x2203('0x34')]));_0x165a3f[_0x2203('0x32')]=_0x165a3f[_0x2203('0x32')]['length']?_0x165a3f[_0x2203('0x32')]:_0x3a866c[_0x2203('0x31')];if(_0x5cd573['query'][_0x2203('0x47')]){_0x165a3f[_0x2203('0x48')]=[{'all':!![]}];}_0x165a3f=_[_0x2203('0x3c')]({},_0x165a3f,_0x5cd573[_0x2203('0x3e')]);return db['VoiceCallReport']['find'](_0x165a3f)[_0x2203('0x23')](handleEntityNotFound(_0x15d3b6,null))['then'](respondWithResult(_0x15d3b6,null))['catch'](handleError(_0x15d3b6,null));};exports[_0x2203('0x49')]=function(_0x33b7b5,_0x1a2665){return db['VoiceCallReport']['create'](_0x33b7b5[_0x2203('0x4a')],{})[_0x2203('0x23')](respondWithResult(_0x1a2665,0xc9))[_0x2203('0x42')](handleError(_0x1a2665,null));};exports[_0x2203('0x24')]=function(_0x225b0e,_0x21fd78){return db['VoiceCallReport'][_0x2203('0x4b')]({'where':{'id':_0x225b0e['params']['id']}})[_0x2203('0x23')](handleEntityNotFound(_0x21fd78,null))[_0x2203('0x23')](removeEntity(_0x21fd78,null))[_0x2203('0x42')](handleError(_0x21fd78,null));};exports[_0x2203('0x4c')]=function(_0x58b9bb,_0x506795){return db[_0x2203('0x2c')][_0x2203('0x4c')]()[_0x2203('0x23')](respondWithResult(_0x506795,null))[_0x2203('0x42')](handleError(_0x506795,null));};exports['update']=function(_0x4de47a,_0x49999a){if(_0x4de47a[_0x2203('0x4a')][_0x2203('0x4d')]){delete _0x4de47a['body'][_0x2203('0x4d')];}return db[_0x2203('0x2c')]['find']({'where':{'uniqueid':_0x4de47a[_0x2203('0x44')]['id'],'UserId':{'$or':[null,_0x4de47a[_0x2203('0x4e')]['id']]}}})[_0x2203('0x23')](handleEntityNotFound(_0x49999a,null))[_0x2203('0x23')](saveUpdates(_0x4de47a['body'],null))[_0x2203('0x23')](respondWithResult(_0x49999a,null))['catch'](handleError(_0x49999a,null));};
\ No newline at end of file
+var _0xb10b=['desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','reject','update','then','destroy','end','error','stack','name','send','index','map','rawAttributes','fieldName','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','VIRTUAL','filter','merge','options','VoiceCallReport','includeAll','include','alias','User','rows','show','find','create','body','catch','params','describe','uniqueid','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce'];(function(_0x5e4087,_0x3f7e8c){var _0x4d6adb=function(_0x103167){while(--_0x103167){_0x5e4087['push'](_0x5e4087['shift']());}};_0x4d6adb(++_0x3f7e8c);}(_0xb10b,0x12a));var _0xbb10=function(_0x213518,_0x51e022){_0x213518=_0x213518-0x0;var _0x1baf75=_0xb10b[_0x213518];return _0x1baf75;};'use strict';var emlformat=require(_0xbb10('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbb10('0x1'));var jsonpatch=require(_0xbb10('0x2'));var rp=require(_0xbb10('0x3'));var moment=require('moment');var BPromise=require(_0xbb10('0x4'));var Mustache=require(_0xbb10('0x5'));var util=require(_0xbb10('0x6'));var path=require(_0xbb10('0x7'));var sox=require(_0xbb10('0x8'));var csv=require(_0xbb10('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbb10('0xa'));var _=require(_0xbb10('0xb'));var squel=require('squel');var crypto=require(_0xbb10('0xc'));var jsforce=require(_0xbb10('0xd'));var deskjs=require(_0xbb10('0xe'));var toCsv=require(_0xbb10('0x9'));var querystring=require(_0xbb10('0xf'));var Papa=require(_0xbb10('0x10'));var Redis=require(_0xbb10('0x11'));var authService=require(_0xbb10('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbb10('0x13'));var logger=require(_0xbb10('0x14'))(_0xbb10('0x15'));var utils=require('../../config/utils');var config=require(_0xbb10('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xbb10('0x17'))['db'];function respondWithStatusCode(_0x916a32,_0x285009){_0x285009=_0x285009||0xcc;return function(_0x193a27){if(_0x193a27){return _0x916a32[_0xbb10('0x18')](_0x285009);}return _0x916a32[_0xbb10('0x19')](_0x285009)['end']();};}function respondWithResult(_0x26e021,_0x42d7e4){_0x42d7e4=_0x42d7e4||0xc8;return function(_0x45b9d6){if(_0x45b9d6){return _0x26e021[_0xbb10('0x19')](_0x42d7e4)[_0xbb10('0x1a')](_0x45b9d6);}};}function respondWithFilteredResult(_0x2f2ebf,_0x24a57b){return function(_0x36b5e8){if(_0x36b5e8){var _0x3e26f4=typeof _0x24a57b[_0xbb10('0x1b')]==='undefined'&&typeof _0x24a57b[_0xbb10('0x1c')]===_0xbb10('0x1d');var _0x133ac2=_0x36b5e8[_0xbb10('0x1e')];var _0x378da8=_0x3e26f4?0x0:_0x24a57b[_0xbb10('0x1b')];var _0x575cca=_0x3e26f4?_0x36b5e8[_0xbb10('0x1e')]:_0x24a57b[_0xbb10('0x1b')]+_0x24a57b[_0xbb10('0x1c')];var _0x48b6e9;if(_0x575cca>=_0x133ac2){_0x575cca=_0x133ac2;_0x48b6e9=0xc8;}else{_0x48b6e9=0xce;}_0x2f2ebf[_0xbb10('0x19')](_0x48b6e9);return _0x2f2ebf[_0xbb10('0x1f')](_0xbb10('0x20'),_0x378da8+'-'+_0x575cca+'/'+_0x133ac2)[_0xbb10('0x1a')](_0x36b5e8);}return null;};}function patchUpdates(_0xdf237d){return function(_0x44e563){try{jsonpatch['apply'](_0x44e563,_0xdf237d,!![]);}catch(_0x12f888){return BPromise[_0xbb10('0x21')](_0x12f888);}return _0x44e563['save']();};}function saveUpdates(_0x4c4b0d,_0x8e2b97){return function(_0x311abe){if(_0x311abe){return _0x311abe[_0xbb10('0x22')](_0x4c4b0d)[_0xbb10('0x23')](function(_0x445761){return _0x445761;});}return null;};}function removeEntity(_0x1824b7,_0x407cb4){return function(_0x436104){if(_0x436104){return _0x436104[_0xbb10('0x24')]()[_0xbb10('0x23')](function(){_0x1824b7[_0xbb10('0x19')](0xcc)[_0xbb10('0x25')]();});}};}function handleEntityNotFound(_0x537898,_0x4fedac){return function(_0x4fb5e0){if(!_0x4fb5e0){_0x537898[_0xbb10('0x18')](0x194);}return _0x4fb5e0;};}function handleError(_0x3c5ae7,_0x2c89b9){_0x2c89b9=_0x2c89b9||0x1f4;return function(_0x4e25ff){logger[_0xbb10('0x26')](_0x4e25ff[_0xbb10('0x27')]);if(_0x4e25ff[_0xbb10('0x28')]){delete _0x4e25ff[_0xbb10('0x28')];}_0x3c5ae7[_0xbb10('0x19')](_0x2c89b9)[_0xbb10('0x29')](_0x4e25ff);};}exports[_0xbb10('0x2a')]=function(_0x4aabb9,_0x3796c7){var _0x21ac54={},_0xfc3595={},_0x2e0249={'count':0x0,'rows':[]};var _0x1d30aa=_[_0xbb10('0x2b')](db['VoiceCallReport'][_0xbb10('0x2c')],function(_0x4ee02e){return{'name':_0x4ee02e[_0xbb10('0x2d')],'type':_0x4ee02e['type'][_0xbb10('0x2e')]};});_0xfc3595[_0xbb10('0x2f')]=_[_0xbb10('0x2b')](_0x1d30aa,'name');_0xfc3595['query']=_[_0xbb10('0x30')](_0x4aabb9[_0xbb10('0x31')]);_0xfc3595['filters']=_[_0xbb10('0x32')](_0xfc3595[_0xbb10('0x2f')],_0xfc3595[_0xbb10('0x31')]);_0x21ac54[_0xbb10('0x33')]=_[_0xbb10('0x32')](_0xfc3595[_0xbb10('0x2f')],qs[_0xbb10('0x34')](_0x4aabb9['query'][_0xbb10('0x34')]));_0x21ac54[_0xbb10('0x33')]=_0x21ac54[_0xbb10('0x33')][_0xbb10('0x35')]?_0x21ac54[_0xbb10('0x33')]:_0xfc3595[_0xbb10('0x2f')];if(!_0x4aabb9[_0xbb10('0x31')][_0xbb10('0x36')](_0xbb10('0x37'))){_0x21ac54['limit']=qs[_0xbb10('0x1c')](_0x4aabb9[_0xbb10('0x31')][_0xbb10('0x1c')]);_0x21ac54[_0xbb10('0x1b')]=qs['offset'](_0x4aabb9[_0xbb10('0x31')]['offset']);}_0x21ac54['order']=qs[_0xbb10('0x38')](_0x4aabb9[_0xbb10('0x31')][_0xbb10('0x38')]);_0x21ac54[_0xbb10('0x39')]=qs[_0xbb10('0x3a')](_[_0xbb10('0x3b')](_0x4aabb9['query'],_0xfc3595[_0xbb10('0x3a')]),_0x1d30aa);if(_0x4aabb9[_0xbb10('0x31')]['filter']){_0x21ac54['where']=_['merge'](_0x21ac54[_0xbb10('0x39')],{'$or':_[_0xbb10('0x2b')](_0x1d30aa,function(_0x2b658a){if(_0x2b658a['type']!==_0xbb10('0x3c')){var _0x3e8538={};_0x3e8538[_0x2b658a[_0xbb10('0x28')]]={'$like':'%'+_0x4aabb9['query'][_0xbb10('0x3d')]+'%'};return _0x3e8538;}})});}_0x21ac54=_[_0xbb10('0x3e')]({},_0x21ac54,_0x4aabb9[_0xbb10('0x3f')]);var _0x446f49={'where':_0x21ac54['where']};return db[_0xbb10('0x40')][_0xbb10('0x1e')](_0x446f49)['then'](function(_0xe2040f){_0x2e0249[_0xbb10('0x1e')]=_0xe2040f;if(_0x4aabb9[_0xbb10('0x31')][_0xbb10('0x41')]){_0x21ac54[_0xbb10('0x42')]=[{'attributes':['id',_0xbb10('0x28'),'fullname',_0xbb10('0x43')],'model':db[_0xbb10('0x44')],'as':_0xbb10('0x44')}];}return db[_0xbb10('0x40')]['findAll'](_0x21ac54);})[_0xbb10('0x23')](function(_0x331751){_0x2e0249[_0xbb10('0x45')]=_0x331751;return _0x2e0249;})[_0xbb10('0x23')](respondWithFilteredResult(_0x3796c7,_0x21ac54))['catch'](handleError(_0x3796c7,null));};exports[_0xbb10('0x46')]=function(_0x202c60,_0x54ac18){var _0x5d9a4f={'raw':!![],'where':{'id':_0x202c60['params']['id']}},_0x38d78f={};_0x38d78f[_0xbb10('0x2f')]=_[_0xbb10('0x30')](db['VoiceCallReport'][_0xbb10('0x2c')]);_0x38d78f[_0xbb10('0x31')]=_[_0xbb10('0x30')](_0x202c60['query']);_0x38d78f[_0xbb10('0x3a')]=_[_0xbb10('0x32')](_0x38d78f[_0xbb10('0x2f')],_0x38d78f[_0xbb10('0x31')]);_0x5d9a4f[_0xbb10('0x33')]=_[_0xbb10('0x32')](_0x38d78f[_0xbb10('0x2f')],qs[_0xbb10('0x34')](_0x202c60[_0xbb10('0x31')][_0xbb10('0x34')]));_0x5d9a4f[_0xbb10('0x33')]=_0x5d9a4f[_0xbb10('0x33')]['length']?_0x5d9a4f[_0xbb10('0x33')]:_0x38d78f[_0xbb10('0x2f')];if(_0x202c60['query'][_0xbb10('0x41')]){_0x5d9a4f[_0xbb10('0x42')]=[{'all':!![]}];}_0x5d9a4f=_[_0xbb10('0x3e')]({},_0x5d9a4f,_0x202c60[_0xbb10('0x3f')]);return db[_0xbb10('0x40')][_0xbb10('0x47')](_0x5d9a4f)[_0xbb10('0x23')](handleEntityNotFound(_0x54ac18,null))['then'](respondWithResult(_0x54ac18,null))['catch'](handleError(_0x54ac18,null));};exports[_0xbb10('0x48')]=function(_0x76a208,_0x2b12bd){return db['VoiceCallReport']['create'](_0x76a208[_0xbb10('0x49')],{})[_0xbb10('0x23')](respondWithResult(_0x2b12bd,0xc9))[_0xbb10('0x4a')](handleError(_0x2b12bd,null));};exports[_0xbb10('0x24')]=function(_0x10159b,_0x22b315){return db[_0xbb10('0x40')][_0xbb10('0x47')]({'where':{'id':_0x10159b[_0xbb10('0x4b')]['id']}})[_0xbb10('0x23')](handleEntityNotFound(_0x22b315,null))['then'](removeEntity(_0x22b315,null))['catch'](handleError(_0x22b315,null));};exports[_0xbb10('0x4c')]=function(_0x467dba,_0x36ab7d){return db[_0xbb10('0x40')][_0xbb10('0x4c')]()[_0xbb10('0x23')](respondWithResult(_0x36ab7d,null))[_0xbb10('0x4a')](handleError(_0x36ab7d,null));};exports[_0xbb10('0x22')]=function(_0x1c0d8f,_0x1214f7){if(_0x1c0d8f[_0xbb10('0x49')][_0xbb10('0x4d')]){delete _0x1c0d8f[_0xbb10('0x49')][_0xbb10('0x4d')];}return db[_0xbb10('0x40')]['find']({'where':{'uniqueid':_0x1c0d8f[_0xbb10('0x4b')]['id'],'UserId':{'$or':[null,_0x1c0d8f['user']['id']]}}})[_0xbb10('0x23')](handleEntityNotFound(_0x1214f7,null))[_0xbb10('0x23')](saveUpdates(_0x1c0d8f[_0xbb10('0x49')],null))[_0xbb10('0x23')](respondWithResult(_0x1214f7,null))[_0xbb10('0x4a')](handleError(_0x1214f7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02e7=['bluebird','request-promise','path','rimraf','../../config/environment','./voiceCallReport.attributes','exports','define','VoiceCallReport','report_call','uniqueid','lodash','../../config/logger','api','moment'];(function(_0x3712db,_0x42fccb){var _0x9500ce=function(_0x30c638){while(--_0x30c638){_0x3712db['push'](_0x3712db['shift']());}};_0x9500ce(++_0x42fccb);}(_0x02e7,0x146));var _0x702e=function(_0x4ae626,_0x3854bb){_0x4ae626=_0x4ae626-0x0;var _0xad446f=_0x02e7[_0x4ae626];return _0xad446f;};'use strict';var _=require(_0x702e('0x0'));var util=require('util');var logger=require(_0x702e('0x1'))(_0x702e('0x2'));var moment=require(_0x702e('0x3'));var BPromise=require(_0x702e('0x4'));var rp=require(_0x702e('0x5'));var fs=require('fs');var path=require(_0x702e('0x6'));var rimraf=require(_0x702e('0x7'));var config=require(_0x702e('0x8'));var attributes=require(_0x702e('0x9'));module[_0x702e('0xa')]=function(_0x467ec0,_0x18343f){return _0x467ec0[_0x702e('0xb')](_0x702e('0xc'),attributes,{'tableName':_0x702e('0xd'),'paranoid':![],'indexes':[{'fields':[_0x702e('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6a7a=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./voiceCallReport.attributes','define','report_call','uniqueid','lodash','util','../../config/logger','api'];(function(_0x5b20d1,_0x319620){var _0x36dde5=function(_0x38d8f8){while(--_0x38d8f8){_0x5b20d1['push'](_0x5b20d1['shift']());}};_0x36dde5(++_0x319620);}(_0x6a7a,0x122));var _0xa6a7=function(_0x9efee2,_0x44b68d){_0x9efee2=_0x9efee2-0x0;var _0x323eb5=_0x6a7a[_0x9efee2];return _0x323eb5;};'use strict';var _=require(_0xa6a7('0x0'));var util=require(_0xa6a7('0x1'));var logger=require(_0xa6a7('0x2'))(_0xa6a7('0x3'));var moment=require(_0xa6a7('0x4'));var BPromise=require(_0xa6a7('0x5'));var rp=require(_0xa6a7('0x6'));var fs=require('fs');var path=require(_0xa6a7('0x7'));var rimraf=require(_0xa6a7('0x8'));var config=require(_0xa6a7('0x9'));var attributes=require(_0xa6a7('0xa'));module['exports']=function(_0x3b2200,_0x10b910){return _0x3b2200[_0xa6a7('0xb')]('VoiceCallReport',attributes,{'tableName':_0xa6a7('0xc'),'paranoid':![],'indexes':[{'fields':[_0xa6a7('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f86=['message','result','catch','GetVoiceCallReport','VoiceCallReport','findAll','options','raw','where','attributes','limit','include','map','model','then','CreateVoiceCallReport','create','body','UpdateVoiceCallReport','update','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','request\x20sent','debug','stringify','error','code','VoiceCallReport,\x20%s,\x20%s'];(function(_0x8aa458,_0x43b30d){var _0x3b7e29=function(_0x273ad5){while(--_0x273ad5){_0x8aa458['push'](_0x8aa458['shift']());}};_0x3b7e29(++_0x43b30d);}(_0x8f86,0xfe));var _0x68f8=function(_0x4cdc0c,_0x3e204e){_0x4cdc0c=_0x4cdc0c-0x0;var _0x1f47f1=_0x8f86[_0x4cdc0c];return _0x1f47f1;};'use strict';var _=require(_0x68f8('0x0'));var util=require(_0x68f8('0x1'));var moment=require(_0x68f8('0x2'));var BPromise=require(_0x68f8('0x3'));var rs=require(_0x68f8('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x68f8('0x5'));var logger=require(_0x68f8('0x6'))(_0x68f8('0x7'));var config=require(_0x68f8('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x68f8('0x9')][_0x68f8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xdf5586,_0x565d02,_0x23817f){return new BPromise(function(_0x2cb0cf,_0x3a88ff){return client[_0x68f8('0xb')](_0xdf5586,_0x23817f)['then'](function(_0x85a1a3){logger[_0x68f8('0xc')]('VoiceCallReport,\x20%s,\x20%s',_0x565d02,_0x68f8('0xd'));logger[_0x68f8('0xe')]('VoiceCallReport,\x20%s,\x20%s,\x20%s',_0x565d02,_0x68f8('0xd'),JSON[_0x68f8('0xf')](_0x85a1a3));if(_0x85a1a3[_0x68f8('0x10')]){if(_0x85a1a3['error'][_0x68f8('0x11')]===0x1f4){logger[_0x68f8('0x10')](_0x68f8('0x12'),_0x565d02,_0x85a1a3[_0x68f8('0x10')]['message']);return _0x3a88ff(_0x85a1a3[_0x68f8('0x10')][_0x68f8('0x13')]);}logger[_0x68f8('0x10')](_0x68f8('0x12'),_0x565d02,_0x85a1a3[_0x68f8('0x10')][_0x68f8('0x13')]);return _0x2cb0cf(_0x85a1a3[_0x68f8('0x10')][_0x68f8('0x13')]);}else{logger[_0x68f8('0xc')](_0x68f8('0x12'),_0x565d02,_0x68f8('0xd'));_0x2cb0cf(_0x85a1a3[_0x68f8('0x14')]['message']);}})[_0x68f8('0x15')](function(_0x30681a){logger[_0x68f8('0x10')]('VoiceCallReport,\x20%s,\x20%s',_0x565d02,_0x30681a);_0x3a88ff(_0x30681a);});});}exports[_0x68f8('0x16')]=function(_0x4d06b5){var _0x29b39c=this;return new Promise(function(_0x3a687a,_0x314f7d){return db[_0x68f8('0x17')][_0x68f8('0x18')]({'raw':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5['options'][_0x68f8('0x1a')]===undefined?!![]:![]:!![],'where':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1b')]||null:null,'attributes':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1c')]||null:null,'limit':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1d')]||null:null,'include':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1e')]?_[_0x68f8('0x1f')](_0x4d06b5['options']['include'],function(_0x524d){return{'model':db[_0x524d[_0x68f8('0x20')]],'as':_0x524d['as'],'attributes':_0x524d[_0x68f8('0x1c')],'include':_0x524d['include']?_[_0x68f8('0x1f')](_0x524d['include'],function(_0x2e48bf){return{'model':db[_0x2e48bf[_0x68f8('0x20')]],'as':_0x2e48bf['as'],'attributes':_0x2e48bf[_0x68f8('0x1c')],'include':_0x2e48bf[_0x68f8('0x1e')]?_['map'](_0x2e48bf['include'],function(_0x47e782){return{'model':db[_0x47e782['model']],'as':_0x47e782['as'],'attributes':_0x47e782['attributes']};}):[]};}):[]};}):[]:[]})[_0x68f8('0x21')](function(_0x505473){logger[_0x68f8('0xc')](_0x68f8('0x16'),_0x4d06b5);logger[_0x68f8('0xe')]('GetVoiceCallReport',_0x4d06b5,JSON['stringify'](_0x505473));_0x3a687a(_0x505473);})[_0x68f8('0x15')](function(_0x32f211){logger[_0x68f8('0x10')](_0x68f8('0x16'),_0x32f211[_0x68f8('0x13')],_0x4d06b5);_0x314f7d(_0x29b39c['error'](0x1f4,_0x32f211[_0x68f8('0x13')]));});});};exports[_0x68f8('0x22')]=function(_0x182c44){var _0x160eab=this;return new Promise(function(_0x4a3dbf,_0x59c255){return db[_0x68f8('0x17')][_0x68f8('0x23')](_0x182c44[_0x68f8('0x24')],{'raw':_0x182c44[_0x68f8('0x19')]?_0x182c44['options'][_0x68f8('0x1a')]===undefined?!![]:![]:!![]})[_0x68f8('0x21')](function(_0x1bd963){logger[_0x68f8('0xc')](_0x68f8('0x22'),_0x182c44);logger[_0x68f8('0xe')]('CreateVoiceCallReport',_0x182c44,JSON['stringify'](_0x1bd963));_0x4a3dbf(_0x1bd963);})['catch'](function(_0xc2b6ba){logger['error'](_0x68f8('0x22'),_0xc2b6ba['message'],_0x182c44);_0x59c255(_0x160eab['error'](0x1f4,_0xc2b6ba['message']));});});};exports[_0x68f8('0x25')]=function(_0xe2d7dd){var _0x450173=this;return new Promise(function(_0x187ca5,_0x3af37a){return db[_0x68f8('0x17')][_0x68f8('0x26')](_0xe2d7dd['body'],{'raw':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')][_0x68f8('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')]['where']||null:null,'attributes':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')][_0x68f8('0x1c')]||null:null,'limit':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')][_0x68f8('0x1d')]||null:null})[_0x68f8('0x21')](function(_0x1c1f29){logger[_0x68f8('0xc')]('UpdateVoiceCallReport',_0xe2d7dd);logger[_0x68f8('0xe')](_0x68f8('0x25'),_0xe2d7dd,JSON['stringify'](_0x1c1f29));_0x187ca5(_0x1c1f29);})[_0x68f8('0x15')](function(_0x367945){logger[_0x68f8('0x10')]('UpdateVoiceCallReport',_0x367945[_0x68f8('0x13')],_0xe2d7dd);_0x3af37a(_0x450173['error'](0x1f4,_0x367945[_0x68f8('0x13')]));});});};
\ No newline at end of file
+var _0xf594=['client','http','then','info','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','stringify','error','message','VoiceCallReport,\x20%s,\x20%s','result','catch','VoiceCallReport','findAll','options','raw','where','attributes','limit','include','model','map','GetVoiceCallReport','CreateVoiceCallReport','create','UpdateVoiceCallReport','update','body','util','bluebird','randomstring','../../config/utils','rpc','jayson/promise'];(function(_0x518ea1,_0x4bb44c){var _0x5713b3=function(_0x3195ce){while(--_0x3195ce){_0x518ea1['push'](_0x518ea1['shift']());}};_0x5713b3(++_0x4bb44c);}(_0xf594,0x135));var _0x4f59=function(_0x3b7f1a,_0x72e46d){_0x3b7f1a=_0x3b7f1a-0x0;var _0x3ed753=_0xf594[_0x3b7f1a];return _0x3ed753;};'use strict';var _=require('lodash');var util=require(_0x4f59('0x0'));var moment=require('moment');var BPromise=require(_0x4f59('0x1'));var rs=require(_0x4f59('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x4f59('0x3'));var logger=require('../../config/logger')(_0x4f59('0x4'));var config=require('../../config/environment');var jayson=require(_0x4f59('0x5'));var client=jayson[_0x4f59('0x6')][_0x4f59('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x28098f,_0x29db15,_0x2ac200){return new BPromise(function(_0x227561,_0x4a7b60){return client['request'](_0x28098f,_0x2ac200)[_0x4f59('0x8')](function(_0xafc1e4){logger[_0x4f59('0x9')]('VoiceCallReport,\x20%s,\x20%s',_0x29db15,_0x4f59('0xa'));logger[_0x4f59('0xb')](_0x4f59('0xc'),_0x29db15,'request\x20sent',JSON[_0x4f59('0xd')](_0xafc1e4));if(_0xafc1e4[_0x4f59('0xe')]){if(_0xafc1e4[_0x4f59('0xe')]['code']===0x1f4){logger[_0x4f59('0xe')]('VoiceCallReport,\x20%s,\x20%s',_0x29db15,_0xafc1e4['error'][_0x4f59('0xf')]);return _0x4a7b60(_0xafc1e4[_0x4f59('0xe')]['message']);}logger[_0x4f59('0xe')](_0x4f59('0x10'),_0x29db15,_0xafc1e4[_0x4f59('0xe')]['message']);return _0x227561(_0xafc1e4[_0x4f59('0xe')][_0x4f59('0xf')]);}else{logger['info'](_0x4f59('0x10'),_0x29db15,'request\x20sent');_0x227561(_0xafc1e4[_0x4f59('0x11')][_0x4f59('0xf')]);}})[_0x4f59('0x12')](function(_0x19e622){logger['error'](_0x4f59('0x10'),_0x29db15,_0x19e622);_0x4a7b60(_0x19e622);});});}exports['GetVoiceCallReport']=function(_0x445b82){var _0x4748ee=this;return new Promise(function(_0x340920,_0x22f89a){return db[_0x4f59('0x13')][_0x4f59('0x14')]({'raw':_0x445b82[_0x4f59('0x15')]?_0x445b82[_0x4f59('0x15')][_0x4f59('0x16')]===undefined?!![]:![]:!![],'where':_0x445b82['options']?_0x445b82['options'][_0x4f59('0x17')]||null:null,'attributes':_0x445b82['options']?_0x445b82[_0x4f59('0x15')][_0x4f59('0x18')]||null:null,'limit':_0x445b82[_0x4f59('0x15')]?_0x445b82[_0x4f59('0x15')][_0x4f59('0x19')]||null:null,'include':_0x445b82[_0x4f59('0x15')]?_0x445b82[_0x4f59('0x15')]['include']?_['map'](_0x445b82[_0x4f59('0x15')][_0x4f59('0x1a')],function(_0x26cddf){return{'model':db[_0x26cddf[_0x4f59('0x1b')]],'as':_0x26cddf['as'],'attributes':_0x26cddf['attributes'],'include':_0x26cddf['include']?_[_0x4f59('0x1c')](_0x26cddf['include'],function(_0x410207){return{'model':db[_0x410207[_0x4f59('0x1b')]],'as':_0x410207['as'],'attributes':_0x410207[_0x4f59('0x18')],'include':_0x410207['include']?_[_0x4f59('0x1c')](_0x410207['include'],function(_0xf72747){return{'model':db[_0xf72747['model']],'as':_0xf72747['as'],'attributes':_0xf72747[_0x4f59('0x18')]};}):[]};}):[]};}):[]:[]})[_0x4f59('0x8')](function(_0x4a9690){logger[_0x4f59('0x9')](_0x4f59('0x1d'),_0x445b82);logger[_0x4f59('0xb')](_0x4f59('0x1d'),_0x445b82,JSON[_0x4f59('0xd')](_0x4a9690));_0x340920(_0x4a9690);})[_0x4f59('0x12')](function(_0x26776a){logger[_0x4f59('0xe')](_0x4f59('0x1d'),_0x26776a[_0x4f59('0xf')],_0x445b82);_0x22f89a(_0x4748ee['error'](0x1f4,_0x26776a['message']));});});};exports[_0x4f59('0x1e')]=function(_0x12ed5d){var _0x138d69=this;return new Promise(function(_0x41e441,_0x337fca){return db[_0x4f59('0x13')][_0x4f59('0x1f')](_0x12ed5d['body'],{'raw':_0x12ed5d[_0x4f59('0x15')]?_0x12ed5d[_0x4f59('0x15')][_0x4f59('0x16')]===undefined?!![]:![]:!![]})['then'](function(_0x2c0877){logger[_0x4f59('0x9')]('CreateVoiceCallReport',_0x12ed5d);logger[_0x4f59('0xb')](_0x4f59('0x1e'),_0x12ed5d,JSON[_0x4f59('0xd')](_0x2c0877));_0x41e441(_0x2c0877);})[_0x4f59('0x12')](function(_0x7fd283){logger[_0x4f59('0xe')](_0x4f59('0x1e'),_0x7fd283[_0x4f59('0xf')],_0x12ed5d);_0x337fca(_0x138d69['error'](0x1f4,_0x7fd283['message']));});});};exports[_0x4f59('0x20')]=function(_0x45dc47){var _0x187dd6=this;return new Promise(function(_0x4d859c,_0x180ee3){return db[_0x4f59('0x13')][_0x4f59('0x21')](_0x45dc47[_0x4f59('0x22')],{'raw':_0x45dc47[_0x4f59('0x15')]?_0x45dc47[_0x4f59('0x15')][_0x4f59('0x16')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x45dc47['options']?_0x45dc47[_0x4f59('0x15')][_0x4f59('0x17')]||null:null,'attributes':_0x45dc47[_0x4f59('0x15')]?_0x45dc47[_0x4f59('0x15')][_0x4f59('0x18')]||null:null,'limit':_0x45dc47[_0x4f59('0x15')]?_0x45dc47[_0x4f59('0x15')]['limit']||null:null})[_0x4f59('0x8')](function(_0x5f05a6){logger[_0x4f59('0x9')](_0x4f59('0x20'),_0x45dc47);logger[_0x4f59('0xb')]('UpdateVoiceCallReport',_0x45dc47,JSON[_0x4f59('0xd')](_0x5f05a6));_0x4d859c(_0x5f05a6);})[_0x4f59('0x12')](function(_0x1b44d9){logger['error'](_0x4f59('0x20'),_0x1b44d9[_0x4f59('0xf')],_0x45dc47);_0x180ee3(_0x187dd6[_0x4f59('0xe')](0x1f4,_0x1b44d9['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb07=['create','put','update','delete','/:id','destroy','multer','util','express','Router','../../components/auth/service','./voiceChanSpy.controller','get','isAuthenticated','index','show'];(function(_0x80d530,_0x5675f6){var _0x1efb5f=function(_0x37b4b1){while(--_0x37b4b1){_0x80d530['push'](_0x80d530['shift']());}};_0x1efb5f(++_0x5675f6);}(_0xfb07,0xa6));var _0x7fb0=function(_0xe2fdd0,_0x56d29f){_0xe2fdd0=_0xe2fdd0-0x0;var _0x3316a5=_0xfb07[_0xe2fdd0];return _0x3316a5;};'use strict';var multer=require(_0x7fb0('0x0'));var util=require(_0x7fb0('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x7fb0('0x2'));var router=express[_0x7fb0('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x7fb0('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x7fb0('0x5'));router[_0x7fb0('0x6')]('/',auth[_0x7fb0('0x7')](),controller[_0x7fb0('0x8')]);router[_0x7fb0('0x6')]('/:id',auth[_0x7fb0('0x7')](),controller[_0x7fb0('0x9')]);router['post']('/',auth['isAuthenticated'](),controller[_0x7fb0('0xa')]);router[_0x7fb0('0xb')]('/:id',auth[_0x7fb0('0x7')](),controller[_0x7fb0('0xc')]);router[_0x7fb0('0xd')](_0x7fb0('0xe'),auth[_0x7fb0('0x7')](),controller[_0x7fb0('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0xcccb=['./voiceChanSpy.controller','get','isAuthenticated','index','/:id','show','post','put','update','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x5a9ceb,_0x1f1ab2){var _0x1d0c8a=function(_0x4ed891){while(--_0x4ed891){_0x5a9ceb['push'](_0x5a9ceb['shift']());}};_0x1d0c8a(++_0x1f1ab2);}(_0xcccb,0xe6));var _0xbccc=function(_0x58e00c,_0x5053e9){_0x58e00c=_0x58e00c-0x0;var _0x16834a=_0xcccb[_0x58e00c];return _0x16834a;};'use strict';var multer=require(_0xbccc('0x0'));var util=require(_0xbccc('0x1'));var path=require('path');var timeout=require(_0xbccc('0x2'));var express=require(_0xbccc('0x3'));var router=express[_0xbccc('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xbccc('0x5'));var interaction=require(_0xbccc('0x6'));var config=require(_0xbccc('0x7'));var controller=require(_0xbccc('0x8'));router[_0xbccc('0x9')]('/',auth[_0xbccc('0xa')](),controller[_0xbccc('0xb')]);router[_0xbccc('0x9')](_0xbccc('0xc'),auth['isAuthenticated'](),controller[_0xbccc('0xd')]);router[_0xbccc('0xe')]('/',auth['isAuthenticated'](),controller['create']);router[_0xbccc('0xf')](_0xbccc('0xc'),auth[_0xbccc('0xa')](),controller[_0xbccc('0x10')]);router['delete'](_0xbccc('0xc'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c3a=['STRING','name','options','join','getDataValue','split'];(function(_0x4d8a8f,_0x2afd4c){var _0xfc4adc=function(_0xb89886){while(--_0xb89886){_0x4d8a8f['push'](_0x4d8a8f['shift']());}};_0xfc4adc(++_0x2afd4c);}(_0x8c3a,0x144));var _0xa8c3=function(_0x311250,_0x1187c4){_0x311250=_0x311250-0x0;var _0x570d7f=_0x8c3a[_0x311250];return _0x570d7f;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xa8c3('0x0')]},'prefix':{'type':Sequelize[_0xa8c3('0x0')],'unique':_0xa8c3('0x1'),'allowNull':![]},'options':{'type':Sequelize[_0xa8c3('0x0')],'set':function(_0xa14760){this['setDataValue'](_0xa8c3('0x2'),_0xa14760?_0xa14760[_0xa8c3('0x3')](''):[]);},'get':function(){return this['getDataValue'](_0xa8c3('0x2'))?this[_0xa8c3('0x4')](_0xa8c3('0x2'))[_0xa8c3('0x5')](''):[];}},'auth':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'password':{'type':Sequelize[_0xa8c3('0x0')]},'record':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'recordingFormat':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xa8c3('0x0')]}};
\ No newline at end of file
+var _0xd8f8=['join','getDataValue','options','split','BOOLEAN','sequelize','exports','STRING','name'];(function(_0x538b47,_0x24b300){var _0x29d2df=function(_0x505219){while(--_0x505219){_0x538b47['push'](_0x538b47['shift']());}};_0x29d2df(++_0x24b300);}(_0xd8f8,0x10a));var _0x8d8f=function(_0x819464,_0x46fc91){_0x819464=_0x819464-0x0;var _0x49dcc0=_0xd8f8[_0x819464];return _0x49dcc0;};'use strict';var Sequelize=require(_0x8d8f('0x0'));module[_0x8d8f('0x1')]={'name':{'type':Sequelize[_0x8d8f('0x2')]},'prefix':{'type':Sequelize[_0x8d8f('0x2')],'unique':_0x8d8f('0x3'),'allowNull':![]},'options':{'type':Sequelize[_0x8d8f('0x2')],'set':function(_0x40a371){this['setDataValue']('options',_0x40a371?_0x40a371[_0x8d8f('0x4')](''):[]);},'get':function(){return this[_0x8d8f('0x5')]('options')?this['getDataValue'](_0x8d8f('0x6'))[_0x8d8f('0x7')](''):[];}},'auth':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'password':{'type':Sequelize['STRING']},'record':{'type':Sequelize[_0x8d8f('0x8')],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0x8d8f('0x2')]},'description':{'type':Sequelize[_0x8d8f('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d9e=['papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','json','offset','undefined','limit','count','status','Content-Range','apply','reject','save','update','then','ChanSpies','UserProfileResource','sendStatus','error','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','VoiceChanSpy','includeAll','include','findAll','rows','catch','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','destroy','eml-format','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring'];(function(_0x53c4f8,_0x44ccaf){var _0x416458=function(_0x2632aa){while(--_0x2632aa){_0x53c4f8['push'](_0x53c4f8['shift']());}};_0x416458(++_0x44ccaf);}(_0x4d9e,0x18c));var _0xe4d9=function(_0x1af721,_0x35cfab){_0x1af721=_0x1af721-0x0;var _0x411ce6=_0x4d9e[_0x1af721];return _0x411ce6;};'use strict';var emlformat=require(_0xe4d9('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe4d9('0x1'));var rp=require('request-promise');var moment=require(_0xe4d9('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xe4d9('0x3'));var util=require(_0xe4d9('0x4'));var path=require('path');var sox=require(_0xe4d9('0x5'));var csv=require(_0xe4d9('0x6'));var ejs=require(_0xe4d9('0x7'));var fs=require('fs');var fs_extra=require(_0xe4d9('0x8'));var _=require(_0xe4d9('0x9'));var squel=require(_0xe4d9('0xa'));var crypto=require('crypto');var jsforce=require(_0xe4d9('0xb'));var deskjs=require(_0xe4d9('0xc'));var toCsv=require(_0xe4d9('0x6'));var querystring=require(_0xe4d9('0xd'));var Papa=require(_0xe4d9('0xe'));var Redis=require(_0xe4d9('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xe4d9('0x10'));var as=require(_0xe4d9('0x11'));var hardwareService=require(_0xe4d9('0x12'));var logger=require(_0xe4d9('0x13'))(_0xe4d9('0x14'));var utils=require(_0xe4d9('0x15'));var config=require(_0xe4d9('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x580c50,_0x4e0d15){_0x4e0d15=_0x4e0d15||0xcc;return function(_0x564383){if(_0x564383){return _0x580c50['sendStatus'](_0x4e0d15);}return _0x580c50['status'](_0x4e0d15)['end']();};}function respondWithResult(_0x15c0eb,_0x3238d4){_0x3238d4=_0x3238d4||0xc8;return function(_0x3f884c){if(_0x3f884c){return _0x15c0eb['status'](_0x3238d4)[_0xe4d9('0x17')](_0x3f884c);}};}function respondWithFilteredResult(_0x3f6ce4,_0xe4f133){return function(_0x4283f7){if(_0x4283f7){var _0x58d0cf=typeof _0xe4f133[_0xe4d9('0x18')]===_0xe4d9('0x19')&&typeof _0xe4f133[_0xe4d9('0x1a')]==='undefined';var _0x4d2afd=_0x4283f7[_0xe4d9('0x1b')];var _0x112315=_0x58d0cf?0x0:_0xe4f133['offset'];var _0x2e1490=_0x58d0cf?_0x4283f7['count']:_0xe4f133[_0xe4d9('0x18')]+_0xe4f133[_0xe4d9('0x1a')];var _0x1ea096;if(_0x2e1490>=_0x4d2afd){_0x2e1490=_0x4d2afd;_0x1ea096=0xc8;}else{_0x1ea096=0xce;}_0x3f6ce4[_0xe4d9('0x1c')](_0x1ea096);return _0x3f6ce4['set'](_0xe4d9('0x1d'),_0x112315+'-'+_0x2e1490+'/'+_0x4d2afd)[_0xe4d9('0x17')](_0x4283f7);}return null;};}function patchUpdates(_0x151220){return function(_0x171224){try{jsonpatch[_0xe4d9('0x1e')](_0x171224,_0x151220,!![]);}catch(_0x1146fc){return BPromise[_0xe4d9('0x1f')](_0x1146fc);}return _0x171224[_0xe4d9('0x20')]();};}function saveUpdates(_0x562bab,_0x4fed7f){return function(_0x44f1aa){if(_0x44f1aa){return _0x44f1aa[_0xe4d9('0x21')](_0x562bab)['then'](function(_0x189dad){return _0x189dad;});}return null;};}function removeEntity(_0x50d377,_0x14f3d7){return function(_0x125320){if(_0x125320){return _0x125320['destroy']()[_0xe4d9('0x22')](function(){var _0x32e7da=_0x125320['get']({'plain':!![]});var _0xc5be1b=_0xe4d9('0x23');return db[_0xe4d9('0x24')]['destroy']({'where':{'type':_0xc5be1b,'resourceId':_0x32e7da['id']}})['then'](function(){return _0x125320;});})[_0xe4d9('0x22')](function(){_0x50d377[_0xe4d9('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5dddd2,_0x4954b5){return function(_0x529e2b){if(!_0x529e2b){_0x5dddd2[_0xe4d9('0x25')](0x194);}return _0x529e2b;};}function handleError(_0x48d481,_0x40ffd0){_0x40ffd0=_0x40ffd0||0x1f4;return function(_0x1f3d90){logger[_0xe4d9('0x26')](_0x1f3d90['stack']);if(_0x1f3d90[_0xe4d9('0x27')]){delete _0x1f3d90[_0xe4d9('0x27')];}_0x48d481[_0xe4d9('0x1c')](_0x40ffd0)[_0xe4d9('0x28')](_0x1f3d90);};}exports[_0xe4d9('0x29')]=function(_0x1904d1,_0x21b7a9){var _0x449cb8={},_0x1fb637={},_0x3e6ea7={'count':0x0,'rows':[]};var _0x519c18=_[_0xe4d9('0x2a')](db['VoiceChanSpy'][_0xe4d9('0x2b')],function(_0x349be3){return{'name':_0x349be3[_0xe4d9('0x2c')],'type':_0x349be3[_0xe4d9('0x2d')][_0xe4d9('0x2e')]};});_0x1fb637[_0xe4d9('0x2f')]=_['map'](_0x519c18,'name');_0x1fb637['query']=_[_0xe4d9('0x30')](_0x1904d1[_0xe4d9('0x31')]);_0x1fb637[_0xe4d9('0x32')]=_['intersection'](_0x1fb637['model'],_0x1fb637['query']);_0x449cb8['attributes']=_[_0xe4d9('0x33')](_0x1fb637[_0xe4d9('0x2f')],qs['fields'](_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x34')]));_0x449cb8['attributes']=_0x449cb8[_0xe4d9('0x35')][_0xe4d9('0x36')]?_0x449cb8[_0xe4d9('0x35')]:_0x1fb637[_0xe4d9('0x2f')];if(!_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x37')](_0xe4d9('0x38'))){_0x449cb8[_0xe4d9('0x1a')]=qs[_0xe4d9('0x1a')](_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x1a')]);_0x449cb8[_0xe4d9('0x18')]=qs[_0xe4d9('0x18')](_0x1904d1[_0xe4d9('0x31')]['offset']);}_0x449cb8[_0xe4d9('0x39')]=qs[_0xe4d9('0x3a')](_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x3a')]);_0x449cb8[_0xe4d9('0x3b')]=qs[_0xe4d9('0x32')](_[_0xe4d9('0x3c')](_0x1904d1[_0xe4d9('0x31')],_0x1fb637[_0xe4d9('0x32')]),_0x519c18);if(_0x1904d1['query']['filter']){_0x449cb8['where']=_[_0xe4d9('0x3d')](_0x449cb8[_0xe4d9('0x3b')],{'$or':_[_0xe4d9('0x2a')](_0x519c18,function(_0x2770a2){if(_0x2770a2[_0xe4d9('0x2d')]!==_0xe4d9('0x3e')){var _0x392cdd={};_0x392cdd[_0x2770a2['name']]={'$like':'%'+_0x1904d1['query']['filter']+'%'};return _0x392cdd;}})});}_0x449cb8=_[_0xe4d9('0x3d')]({},_0x449cb8,_0x1904d1[_0xe4d9('0x3f')]);var _0x5a908b={'where':_0x449cb8[_0xe4d9('0x3b')]};return db[_0xe4d9('0x40')][_0xe4d9('0x1b')](_0x5a908b)[_0xe4d9('0x22')](function(_0x5d0476){_0x3e6ea7[_0xe4d9('0x1b')]=_0x5d0476;if(_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x41')]){_0x449cb8[_0xe4d9('0x42')]=[{'all':!![]}];}return db[_0xe4d9('0x40')][_0xe4d9('0x43')](_0x449cb8);})[_0xe4d9('0x22')](function(_0x3e9653){_0x3e6ea7[_0xe4d9('0x44')]=_0x3e9653;return _0x3e6ea7;})[_0xe4d9('0x22')](respondWithFilteredResult(_0x21b7a9,_0x449cb8))[_0xe4d9('0x45')](handleError(_0x21b7a9,null));};exports['show']=function(_0x429be,_0x449230){var _0x4857fe={'raw':![],'where':{'id':_0x429be[_0xe4d9('0x46')]['id']}},_0x2b7e25={};_0x2b7e25['model']=_[_0xe4d9('0x30')](db[_0xe4d9('0x40')][_0xe4d9('0x2b')]);_0x2b7e25[_0xe4d9('0x31')]=_[_0xe4d9('0x30')](_0x429be[_0xe4d9('0x31')]);_0x2b7e25[_0xe4d9('0x32')]=_[_0xe4d9('0x33')](_0x2b7e25[_0xe4d9('0x2f')],_0x2b7e25[_0xe4d9('0x31')]);_0x4857fe['attributes']=_[_0xe4d9('0x33')](_0x2b7e25[_0xe4d9('0x2f')],qs[_0xe4d9('0x34')](_0x429be['query'][_0xe4d9('0x34')]));_0x4857fe[_0xe4d9('0x35')]=_0x4857fe[_0xe4d9('0x35')][_0xe4d9('0x36')]?_0x4857fe[_0xe4d9('0x35')]:_0x2b7e25[_0xe4d9('0x2f')];if(_0x429be[_0xe4d9('0x31')]['includeAll']){_0x4857fe[_0xe4d9('0x42')]=[{'all':!![]}];}_0x4857fe=_[_0xe4d9('0x3d')]({},_0x4857fe,_0x429be[_0xe4d9('0x3f')]);return db[_0xe4d9('0x40')][_0xe4d9('0x47')](_0x4857fe)[_0xe4d9('0x22')](handleEntityNotFound(_0x449230,null))['then'](respondWithResult(_0x449230,null))[_0xe4d9('0x45')](handleError(_0x449230,null));};exports[_0xe4d9('0x48')]=function(_0x87f230,_0x38468c){return db[_0xe4d9('0x40')][_0xe4d9('0x48')](_0x87f230['body'],{})[_0xe4d9('0x22')](function(_0x29e038){var _0x53e7c4=_0x87f230[_0xe4d9('0x49')]['get']({'plain':!![]});if(!_0x53e7c4)throw new Error(_0xe4d9('0x4a'));if(_0x53e7c4[_0xe4d9('0x4b')]==='user'){var _0x657961=_0x29e038['get']({'plain':!![]});var _0x27a5e4=_0xe4d9('0x23');return db[_0xe4d9('0x4c')]['find']({'where':{'name':_0x27a5e4,'userProfileId':_0x53e7c4[_0xe4d9('0x4d')]},'raw':!![]})[_0xe4d9('0x22')](function(_0x4d5ff9){if(_0x4d5ff9&&_0x4d5ff9[_0xe4d9('0x4e')]===0x0){return db[_0xe4d9('0x24')][_0xe4d9('0x48')]({'name':_0x657961[_0xe4d9('0x27')],'resourceId':_0x657961['id'],'type':_0x4d5ff9['name'],'sectionId':_0x4d5ff9['id']},{})['then'](function(){return _0x29e038;});}else{return _0x29e038;}})[_0xe4d9('0x45')](function(_0x40674d){logger[_0xe4d9('0x26')](_0xe4d9('0x4f'),_0x40674d);throw _0x40674d;});}return _0x29e038;})[_0xe4d9('0x22')](respondWithResult(_0x38468c,0xc9))[_0xe4d9('0x45')](handleError(_0x38468c,null));};exports['update']=function(_0x5a57ad,_0x2c5500){if(_0x5a57ad[_0xe4d9('0x50')]['id']){delete _0x5a57ad[_0xe4d9('0x50')]['id'];}return db[_0xe4d9('0x40')][_0xe4d9('0x47')]({'where':{'id':_0x5a57ad[_0xe4d9('0x46')]['id']}})['then'](handleEntityNotFound(_0x2c5500,null))[_0xe4d9('0x22')](saveUpdates(_0x5a57ad[_0xe4d9('0x50')],null))[_0xe4d9('0x22')](respondWithResult(_0x2c5500,null))['catch'](handleError(_0x2c5500,null));};exports[_0xe4d9('0x51')]=function(_0x2b6d70,_0x281fda){return db['VoiceChanSpy'][_0xe4d9('0x47')]({'where':{'id':_0x2b6d70['params']['id']}})[_0xe4d9('0x22')](handleEntityNotFound(_0x281fda,null))[_0xe4d9('0x22')](removeEntity(_0x281fda,null))[_0xe4d9('0x45')](handleError(_0x281fda,null));};
\ No newline at end of file
+var _0x8696=['create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','ChanSpies','UserProfileResource','stack','name','send','index','map','VoiceChanSpy','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','params','includeAll','find'];(function(_0x5ba6e8,_0xdccb96){var _0x559e90=function(_0x1a27a5){while(--_0x1a27a5){_0x5ba6e8['push'](_0x5ba6e8['shift']());}};_0x559e90(++_0xdccb96);}(_0x8696,0x143));var _0x6869=function(_0x1bbe3e,_0x577923){_0x1bbe3e=_0x1bbe3e-0x0;var _0x1f6a38=_0x8696[_0x1bbe3e];return _0x1f6a38;};'use strict';var emlformat=require(_0x6869('0x0'));var rimraf=require(_0x6869('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6869('0x2'));var rp=require('request-promise');var moment=require(_0x6869('0x3'));var BPromise=require(_0x6869('0x4'));var Mustache=require(_0x6869('0x5'));var util=require('util');var path=require(_0x6869('0x6'));var sox=require('sox');var csv=require(_0x6869('0x7'));var ejs=require(_0x6869('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6869('0x9'));var crypto=require(_0x6869('0xa'));var jsforce=require(_0x6869('0xb'));var deskjs=require(_0x6869('0xc'));var toCsv=require(_0x6869('0x7'));var querystring=require(_0x6869('0xd'));var Papa=require(_0x6869('0xe'));var Redis=require('ioredis');var authService=require(_0x6869('0xf'));var qs=require(_0x6869('0x10'));var as=require(_0x6869('0x11'));var hardwareService=require(_0x6869('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x6869('0x13'));var licenseUtil=require(_0x6869('0x14'));var db=require(_0x6869('0x15'))['db'];function respondWithStatusCode(_0x470a8d,_0x42958f){_0x42958f=_0x42958f||0xcc;return function(_0x5936ef){if(_0x5936ef){return _0x470a8d[_0x6869('0x16')](_0x42958f);}return _0x470a8d[_0x6869('0x17')](_0x42958f)['end']();};}function respondWithResult(_0xc603fc,_0x3d5c59){_0x3d5c59=_0x3d5c59||0xc8;return function(_0x1fda61){if(_0x1fda61){return _0xc603fc['status'](_0x3d5c59)[_0x6869('0x18')](_0x1fda61);}};}function respondWithFilteredResult(_0x4f943b,_0x16f86f){return function(_0x4e5705){if(_0x4e5705){var _0x143f04=typeof _0x16f86f[_0x6869('0x19')]===_0x6869('0x1a')&&typeof _0x16f86f[_0x6869('0x1b')]==='undefined';var _0x7d83d0=_0x4e5705[_0x6869('0x1c')];var _0x36da1f=_0x143f04?0x0:_0x16f86f['offset'];var _0x327094=_0x143f04?_0x4e5705[_0x6869('0x1c')]:_0x16f86f['offset']+_0x16f86f['limit'];var _0x333809;if(_0x327094>=_0x7d83d0){_0x327094=_0x7d83d0;_0x333809=0xc8;}else{_0x333809=0xce;}_0x4f943b['status'](_0x333809);return _0x4f943b[_0x6869('0x1d')](_0x6869('0x1e'),_0x36da1f+'-'+_0x327094+'/'+_0x7d83d0)['json'](_0x4e5705);}return null;};}function patchUpdates(_0x19259a){return function(_0x18b29e){try{jsonpatch['apply'](_0x18b29e,_0x19259a,!![]);}catch(_0x23d1a8){return BPromise[_0x6869('0x1f')](_0x23d1a8);}return _0x18b29e[_0x6869('0x20')]();};}function saveUpdates(_0x45c0ce,_0xb775a7){return function(_0x22c5cf){if(_0x22c5cf){return _0x22c5cf['update'](_0x45c0ce)['then'](function(_0x64583e){return _0x64583e;});}return null;};}function removeEntity(_0x1dc71e,_0x35f962){return function(_0x4e37ff){if(_0x4e37ff){return _0x4e37ff['destroy']()[_0x6869('0x21')](function(){var _0x220cb2=_0x4e37ff['get']({'plain':!![]});var _0x44e798=_0x6869('0x22');return db[_0x6869('0x23')]['destroy']({'where':{'type':_0x44e798,'resourceId':_0x220cb2['id']}})['then'](function(){return _0x4e37ff;});})[_0x6869('0x21')](function(){_0x1dc71e[_0x6869('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x424e44,_0x317225){return function(_0x35d9c4){if(!_0x35d9c4){_0x424e44[_0x6869('0x16')](0x194);}return _0x35d9c4;};}function handleError(_0x285d11,_0x25842e){_0x25842e=_0x25842e||0x1f4;return function(_0x551650){logger['error'](_0x551650[_0x6869('0x24')]);if(_0x551650[_0x6869('0x25')]){delete _0x551650[_0x6869('0x25')];}_0x285d11[_0x6869('0x17')](_0x25842e)[_0x6869('0x26')](_0x551650);};}exports[_0x6869('0x27')]=function(_0x81cfb8,_0x4c735f){var _0x389166={},_0x1eabdb={},_0x21b3ee={'count':0x0,'rows':[]};var _0x130bba=_[_0x6869('0x28')](db[_0x6869('0x29')][_0x6869('0x2a')],function(_0x59343b){return{'name':_0x59343b['fieldName'],'type':_0x59343b[_0x6869('0x2b')][_0x6869('0x2c')]};});_0x1eabdb[_0x6869('0x2d')]=_[_0x6869('0x28')](_0x130bba,'name');_0x1eabdb[_0x6869('0x2e')]=_[_0x6869('0x2f')](_0x81cfb8[_0x6869('0x2e')]);_0x1eabdb[_0x6869('0x30')]=_[_0x6869('0x31')](_0x1eabdb[_0x6869('0x2d')],_0x1eabdb[_0x6869('0x2e')]);_0x389166[_0x6869('0x32')]=_['intersection'](_0x1eabdb[_0x6869('0x2d')],qs[_0x6869('0x33')](_0x81cfb8[_0x6869('0x2e')][_0x6869('0x33')]));_0x389166[_0x6869('0x32')]=_0x389166['attributes']['length']?_0x389166[_0x6869('0x32')]:_0x1eabdb[_0x6869('0x2d')];if(!_0x81cfb8['query'][_0x6869('0x34')]('nolimit')){_0x389166[_0x6869('0x1b')]=qs[_0x6869('0x1b')](_0x81cfb8[_0x6869('0x2e')]['limit']);_0x389166['offset']=qs[_0x6869('0x19')](_0x81cfb8[_0x6869('0x2e')][_0x6869('0x19')]);}_0x389166['order']=qs['sort'](_0x81cfb8[_0x6869('0x2e')][_0x6869('0x35')]);_0x389166[_0x6869('0x36')]=qs[_0x6869('0x30')](_[_0x6869('0x37')](_0x81cfb8[_0x6869('0x2e')],_0x1eabdb[_0x6869('0x30')]),_0x130bba);if(_0x81cfb8[_0x6869('0x2e')][_0x6869('0x38')]){_0x389166[_0x6869('0x36')]=_[_0x6869('0x39')](_0x389166[_0x6869('0x36')],{'$or':_[_0x6869('0x28')](_0x130bba,function(_0x1013aa){if(_0x1013aa[_0x6869('0x2b')]!==_0x6869('0x3a')){var _0x9bc091={};_0x9bc091[_0x1013aa[_0x6869('0x25')]]={'$like':'%'+_0x81cfb8['query'][_0x6869('0x38')]+'%'};return _0x9bc091;}})});}_0x389166=_[_0x6869('0x39')]({},_0x389166,_0x81cfb8[_0x6869('0x3b')]);var _0x22bdc3={'where':_0x389166[_0x6869('0x36')]};return db[_0x6869('0x29')]['count'](_0x22bdc3)[_0x6869('0x21')](function(_0x1d223c){_0x21b3ee[_0x6869('0x1c')]=_0x1d223c;if(_0x81cfb8['query']['includeAll']){_0x389166[_0x6869('0x3c')]=[{'all':!![]}];}return db['VoiceChanSpy'][_0x6869('0x3d')](_0x389166);})[_0x6869('0x21')](function(_0x462a4f){_0x21b3ee[_0x6869('0x3e')]=_0x462a4f;return _0x21b3ee;})['then'](respondWithFilteredResult(_0x4c735f,_0x389166))[_0x6869('0x3f')](handleError(_0x4c735f,null));};exports['show']=function(_0x3a193e,_0x17da6a){var _0x470647={'raw':![],'where':{'id':_0x3a193e[_0x6869('0x40')]['id']}},_0x29fead={};_0x29fead[_0x6869('0x2d')]=_[_0x6869('0x2f')](db[_0x6869('0x29')][_0x6869('0x2a')]);_0x29fead[_0x6869('0x2e')]=_['keys'](_0x3a193e[_0x6869('0x2e')]);_0x29fead[_0x6869('0x30')]=_['intersection'](_0x29fead['model'],_0x29fead[_0x6869('0x2e')]);_0x470647[_0x6869('0x32')]=_[_0x6869('0x31')](_0x29fead[_0x6869('0x2d')],qs[_0x6869('0x33')](_0x3a193e['query'][_0x6869('0x33')]));_0x470647[_0x6869('0x32')]=_0x470647[_0x6869('0x32')]['length']?_0x470647[_0x6869('0x32')]:_0x29fead[_0x6869('0x2d')];if(_0x3a193e[_0x6869('0x2e')][_0x6869('0x41')]){_0x470647[_0x6869('0x3c')]=[{'all':!![]}];}_0x470647=_[_0x6869('0x39')]({},_0x470647,_0x3a193e[_0x6869('0x3b')]);return db[_0x6869('0x29')][_0x6869('0x42')](_0x470647)[_0x6869('0x21')](handleEntityNotFound(_0x17da6a,null))[_0x6869('0x21')](respondWithResult(_0x17da6a,null))[_0x6869('0x3f')](handleError(_0x17da6a,null));};exports[_0x6869('0x43')]=function(_0x50719c,_0x1b8109){return db[_0x6869('0x29')][_0x6869('0x43')](_0x50719c['body'],{})[_0x6869('0x21')](function(_0x318c4f){var _0x487c09=_0x50719c['user'][_0x6869('0x44')]({'plain':!![]});if(!_0x487c09)throw new Error(_0x6869('0x45'));if(_0x487c09['role']===_0x6869('0x46')){var _0x1f7fc0=_0x318c4f['get']({'plain':!![]});var _0x1e7b44=_0x6869('0x22');return db[_0x6869('0x47')][_0x6869('0x42')]({'where':{'name':_0x1e7b44,'userProfileId':_0x487c09[_0x6869('0x48')]},'raw':!![]})[_0x6869('0x21')](function(_0x130c6c){if(_0x130c6c&&_0x130c6c[_0x6869('0x49')]===0x0){return db[_0x6869('0x23')][_0x6869('0x43')]({'name':_0x1f7fc0[_0x6869('0x25')],'resourceId':_0x1f7fc0['id'],'type':_0x130c6c[_0x6869('0x25')],'sectionId':_0x130c6c['id']},{})[_0x6869('0x21')](function(){return _0x318c4f;});}else{return _0x318c4f;}})[_0x6869('0x3f')](function(_0x57aee8){logger[_0x6869('0x4a')](_0x6869('0x4b'),_0x57aee8);throw _0x57aee8;});}return _0x318c4f;})['then'](respondWithResult(_0x1b8109,0xc9))['catch'](handleError(_0x1b8109,null));};exports[_0x6869('0x4c')]=function(_0x8f4072,_0x1cda9c){if(_0x8f4072['body']['id']){delete _0x8f4072[_0x6869('0x4d')]['id'];}return db['VoiceChanSpy'][_0x6869('0x42')]({'where':{'id':_0x8f4072['params']['id']}})[_0x6869('0x21')](handleEntityNotFound(_0x1cda9c,null))[_0x6869('0x21')](saveUpdates(_0x8f4072['body'],null))[_0x6869('0x21')](respondWithResult(_0x1cda9c,null))['catch'](handleError(_0x1cda9c,null));};exports['destroy']=function(_0x2d2383,_0x2eaaef){return db[_0x6869('0x29')][_0x6869('0x42')]({'where':{'id':_0x2d2383['params']['id']}})[_0x6869('0x21')](handleEntityNotFound(_0x2eaaef,null))[_0x6869('0x21')](removeEntity(_0x2eaaef,null))[_0x6869('0x3f')](handleError(_0x2eaaef,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x10e6=['push','merge','Set','CDR(type)=%s','chanspy','record','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','SIP/%s,%s','join','length','concat','name','findAll','internal','agent','then','catch','exports','models','define','voice_chanspy','VoiceExtension','destroy','bulkCreate','bluebird','./voiceChanSpy.attributes','context','format','%s%s'];(function(_0x2f2a90,_0x58d5a4){var _0x1752fc=function(_0x17e651){while(--_0x17e651){_0x2f2a90['push'](_0x2f2a90['shift']());}};_0x1752fc(++_0x58d5a4);}(_0x10e6,0x1d7));var _0x610e=function(_0x93942f,_0xb48547){_0x93942f=_0x93942f-0x0;var _0x23fcd8=_0x10e6[_0x93942f];return _0x23fcd8;};'use strict';var _=require('lodash');var util=require('util');var BPromise=require(_0x610e('0x0'));var attributes=require(_0x610e('0x1'));var getUserApplications=function(_0xf4b90,_0x9dee4,_0x8e290f){var _0x5aa5dd=0x1;var _0x209d57=[];var _0x1a1146={'context':_0x9dee4[_0x610e('0x2')]||'from-sip','exten':util[_0x610e('0x3')](_0x610e('0x4'),_0xf4b90['prefix'],_0x8e290f),'type':'system','isApp':![],'ChanSpyId':_0xf4b90['id'],'UserId':_0x9dee4['id']};_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':_0x610e('0x7'),'appdata':util[_0x610e('0x3')](_0x610e('0x8'),_0x610e('0x9')),'priority':_0x5aa5dd++},_0x1a1146));if(_0xf4b90[_0x610e('0xa')]){_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':'MixMonitor','appdata':util[_0x610e('0x3')](_0x610e('0xb'),_0xf4b90[_0x610e('0xc')]),'priority':_0x5aa5dd++},_0x1a1146));}if(_0xf4b90[_0x610e('0xd')]){_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':_0x610e('0xe'),'appdata':_0xf4b90[_0x610e('0xf')],'priority':_0x5aa5dd++},_0x1a1146));}_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':_0x610e('0x10'),'appdata':util[_0x610e('0x3')](_0x610e('0x11'),_0x9dee4['name'],_0xf4b90['options']?_0xf4b90['options'][_0x610e('0x12')](''):''),'priority':_0x5aa5dd++},_0x1a1146));if(_0xf4b90[_0x610e('0xa')]){_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':'StopMixMonitor','priority':_0x5aa5dd++},_0x1a1146));}return _0x209d57;};var getChanSpyApplications=function(_0x4dd475,_0x23bf85){var _0x30ba14=[];for(var _0x4aa906=0x0,_0x58acf4=0x1;_0x4aa906<_0x23bf85[_0x610e('0x13')];_0x4aa906++,_0x58acf4=0x1){_0x30ba14=_0x30ba14[_0x610e('0x14')](getUserApplications(_0x4dd475,_0x23bf85[_0x4aa906],_0x23bf85[_0x4aa906]['internal']));if(_0x23bf85[_0x4aa906]['internal']!=_0x23bf85[_0x4aa906][_0x610e('0x15')]){_0x30ba14=_0x30ba14[_0x610e('0x14')](getUserApplications(_0x4dd475,_0x23bf85[_0x4aa906],_0x23bf85[_0x4aa906][_0x610e('0x15')]));}}return _0x30ba14;};var getChanSpyPromise=function(_0x3e0884,_0xebcfd5){return new BPromise(function(_0x1a1644,_0x554747){return _0x3e0884['User'][_0x610e('0x16')]({'attributes':['id',_0x610e('0x15'),_0x610e('0x17')],'where':{'role':_0x610e('0x18'),'chanspy':!![]},'raw':!![]})[_0x610e('0x19')](function(_0x44c2b4){if(_0x44c2b4){return _0x1a1644(getChanSpyApplications(_0xebcfd5,_0x44c2b4));}return _0x1a1644([]);})[_0x610e('0x1a')](function(_0x507a22){_0x554747(_0x507a22);});});};module[_0x610e('0x1b')]=function(_0x55aec0,_0x4ab5ff){var _0x31723d=_0x55aec0[_0x610e('0x1c')];return _0x55aec0[_0x610e('0x1d')]('VoiceChanSpy',attributes,{'tableName':_0x610e('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0xa65773,_0x33c2a0,_0x2490af){return getChanSpyPromise(_0x31723d,_0xa65773)[_0x610e('0x19')](function(_0x2f1e1d){if(_0x2f1e1d&&_0x2f1e1d[_0x610e('0x13')]){return _0x31723d[_0x610e('0x1f')]['bulkCreate'](_0x2f1e1d);}})[_0x610e('0x19')](function(){_0x2490af();})[_0x610e('0x1a')](function(_0x130dee){_0x2490af(_0x130dee);});},'afterUpdate':function(_0x31af35,_0x232b06,_0x28a819){return _0x31723d[_0x610e('0x1f')][_0x610e('0x20')]({'where':{'ChanSpyId':_0x31af35['id']}})[_0x610e('0x19')](function(){return getChanSpyPromise(_0x31723d,_0x31af35);})[_0x610e('0x19')](function(_0x966cc3){if(_0x966cc3&&_0x966cc3['length']){return _0x31723d[_0x610e('0x1f')][_0x610e('0x21')](_0x966cc3);}})[_0x610e('0x19')](function(){_0x28a819();})['catch'](function(_0x56ea67){_0x28a819(_0x56ea67);});},'afterDestroy':function(_0x5ef1e3,_0x23f08c,_0x4cf6b2){return _0x31723d[_0x610e('0x1f')]['destroy']({'where':{'ChanSpyId':_0x5ef1e3['id']}})['then'](function(){_0x4cf6b2();})['catch'](function(_0x3de887){_0x4cf6b2(_0x3de887);});}}});};
\ No newline at end of file
+var _0xbf1f=['User','findAll','then','catch','exports','models','VoiceChanSpy','length','VoiceExtension','destroy','bulkCreate','lodash','bluebird','./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','system','push','merge','Set','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','join','StopMixMonitor','concat','internal'];(function(_0x46d0c9,_0x526bfa){var _0x174506=function(_0x654bc6){while(--_0x654bc6){_0x46d0c9['push'](_0x46d0c9['shift']());}};_0x174506(++_0x526bfa);}(_0xbf1f,0x19b));var _0xfbf1=function(_0x48a24a,_0x3cb63c){_0x48a24a=_0x48a24a-0x0;var _0x5e35d8=_0xbf1f[_0x48a24a];return _0x5e35d8;};'use strict';var _=require(_0xfbf1('0x0'));var util=require('util');var BPromise=require(_0xfbf1('0x1'));var attributes=require(_0xfbf1('0x2'));var getUserApplications=function(_0x247f09,_0x1ddffa,_0x4b1c27){var _0x719777=0x1;var _0x545494=[];var _0x488ca1={'context':_0x1ddffa[_0xfbf1('0x3')]||_0xfbf1('0x4'),'exten':util[_0xfbf1('0x5')](_0xfbf1('0x6'),_0x247f09[_0xfbf1('0x7')],_0x4b1c27),'type':_0xfbf1('0x8'),'isApp':![],'ChanSpyId':_0x247f09['id'],'UserId':_0x1ddffa['id']};_0x545494[_0xfbf1('0x9')](_[_0xfbf1('0xa')]({'app':_0xfbf1('0xb'),'appdata':util[_0xfbf1('0x5')](_0xfbf1('0xc'),_0xfbf1('0xd')),'priority':_0x719777++},_0x488ca1));if(_0x247f09[_0xfbf1('0xe')]){_0x545494[_0xfbf1('0x9')](_[_0xfbf1('0xa')]({'app':_0xfbf1('0xf'),'appdata':util[_0xfbf1('0x5')](_0xfbf1('0x10'),_0x247f09[_0xfbf1('0x11')]),'priority':_0x719777++},_0x488ca1));}if(_0x247f09[_0xfbf1('0x12')]){_0x545494[_0xfbf1('0x9')](_['merge']({'app':_0xfbf1('0x13'),'appdata':_0x247f09[_0xfbf1('0x14')],'priority':_0x719777++},_0x488ca1));}_0x545494[_0xfbf1('0x9')](_[_0xfbf1('0xa')]({'app':_0xfbf1('0x15'),'appdata':util[_0xfbf1('0x5')](_0xfbf1('0x16'),_0x1ddffa[_0xfbf1('0x17')],_0x247f09[_0xfbf1('0x18')]?_0x247f09[_0xfbf1('0x18')][_0xfbf1('0x19')](''):''),'priority':_0x719777++},_0x488ca1));if(_0x247f09[_0xfbf1('0xe')]){_0x545494[_0xfbf1('0x9')](_['merge']({'app':_0xfbf1('0x1a'),'priority':_0x719777++},_0x488ca1));}return _0x545494;};var getChanSpyApplications=function(_0x3125b4,_0x42dc33){var _0x9c08d7=[];for(var _0x3e0440=0x0,_0x383e61=0x1;_0x3e0440<_0x42dc33['length'];_0x3e0440++,_0x383e61=0x1){_0x9c08d7=_0x9c08d7[_0xfbf1('0x1b')](getUserApplications(_0x3125b4,_0x42dc33[_0x3e0440],_0x42dc33[_0x3e0440][_0xfbf1('0x1c')]));if(_0x42dc33[_0x3e0440][_0xfbf1('0x1c')]!=_0x42dc33[_0x3e0440][_0xfbf1('0x17')]){_0x9c08d7=_0x9c08d7[_0xfbf1('0x1b')](getUserApplications(_0x3125b4,_0x42dc33[_0x3e0440],_0x42dc33[_0x3e0440][_0xfbf1('0x17')]));}}return _0x9c08d7;};var getChanSpyPromise=function(_0x250cb7,_0x235fa2){return new BPromise(function(_0x92a398,_0x3d65ef){return _0x250cb7[_0xfbf1('0x1d')][_0xfbf1('0x1e')]({'attributes':['id','name',_0xfbf1('0x1c')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0xfbf1('0x1f')](function(_0x1caff5){if(_0x1caff5){return _0x92a398(getChanSpyApplications(_0x235fa2,_0x1caff5));}return _0x92a398([]);})[_0xfbf1('0x20')](function(_0x2d84a1){_0x3d65ef(_0x2d84a1);});});};module[_0xfbf1('0x21')]=function(_0x239f9b,_0xdb8add){var _0xd57810=_0x239f9b[_0xfbf1('0x22')];return _0x239f9b['define'](_0xfbf1('0x23'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5ed2f6,_0x3345a8,_0x305702){return getChanSpyPromise(_0xd57810,_0x5ed2f6)[_0xfbf1('0x1f')](function(_0x4d73ef){if(_0x4d73ef&&_0x4d73ef[_0xfbf1('0x24')]){return _0xd57810[_0xfbf1('0x25')]['bulkCreate'](_0x4d73ef);}})[_0xfbf1('0x1f')](function(){_0x305702();})[_0xfbf1('0x20')](function(_0x3c570b){_0x305702(_0x3c570b);});},'afterUpdate':function(_0x562f40,_0xeb88c1,_0x56a4a1){return _0xd57810[_0xfbf1('0x25')][_0xfbf1('0x26')]({'where':{'ChanSpyId':_0x562f40['id']}})[_0xfbf1('0x1f')](function(){return getChanSpyPromise(_0xd57810,_0x562f40);})['then'](function(_0x3c0d18){if(_0x3c0d18&&_0x3c0d18['length']){return _0xd57810[_0xfbf1('0x25')][_0xfbf1('0x27')](_0x3c0d18);}})[_0xfbf1('0x1f')](function(){_0x56a4a1();})[_0xfbf1('0x20')](function(_0x51882d){_0x56a4a1(_0x51882d);});},'afterDestroy':function(_0x20e7aa,_0x55c427,_0x38f7f2){return _0xd57810['VoiceExtension']['destroy']({'where':{'ChanSpyId':_0x20e7aa['id']}})[_0xfbf1('0x1f')](function(){_0x38f7f2();})[_0xfbf1('0x20')](function(_0x31411b){_0x38f7f2(_0x31411b);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6324=['client','http','then','request\x20sent','debug','VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceChanSpy,\x20%s,\x20%s','message','info','result','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','jayson/promise'];(function(_0x1f291d,_0x414877){var _0x1c7cb9=function(_0x41390f){while(--_0x41390f){_0x1f291d['push'](_0x1f291d['shift']());}};_0x1c7cb9(++_0x414877);}(_0x6324,0x142));var _0x4632=function(_0x4b4dd0,_0x4b7586){_0x4b4dd0=_0x4b4dd0-0x0;var _0x42da25=_0x6324[_0x4b4dd0];return _0x42da25;};'use strict';var _=require(_0x4632('0x0'));var util=require(_0x4632('0x1'));var moment=require(_0x4632('0x2'));var BPromise=require(_0x4632('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4632('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4632('0x5'));var logger=require('../../config/logger')(_0x4632('0x6'));var config=require('../../config/environment');var jayson=require(_0x4632('0x7'));var client=jayson[_0x4632('0x8')][_0x4632('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x126e9a,_0x4a15b2,_0x17e860){return new BPromise(function(_0x44dd6d,_0x390a46){return client['request'](_0x126e9a,_0x17e860)[_0x4632('0xa')](function(_0x47824c){logger['info']('VoiceChanSpy,\x20%s,\x20%s',_0x4a15b2,_0x4632('0xb'));logger[_0x4632('0xc')](_0x4632('0xd'),_0x4a15b2,_0x4632('0xb'),JSON[_0x4632('0xe')](_0x47824c));if(_0x47824c[_0x4632('0xf')]){if(_0x47824c[_0x4632('0xf')][_0x4632('0x10')]===0x1f4){logger['error'](_0x4632('0x11'),_0x4a15b2,_0x47824c['error'][_0x4632('0x12')]);return _0x390a46(_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);}logger[_0x4632('0xf')]('VoiceChanSpy,\x20%s,\x20%s',_0x4a15b2,_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);return _0x44dd6d(_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);}else{logger[_0x4632('0x13')]('VoiceChanSpy,\x20%s,\x20%s',_0x4a15b2,'request\x20sent');_0x44dd6d(_0x47824c[_0x4632('0x14')][_0x4632('0x12')]);}})[_0x4632('0x15')](function(_0x125eb9){logger['error'](_0x4632('0x11'),_0x4a15b2,_0x125eb9);_0x390a46(_0x125eb9);});});}
\ No newline at end of file
+var _0x7341=['debug','VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceChanSpy,\x20%s,\x20%s','request\x20sent'];(function(_0x32b21e,_0x4ac3fc){var _0x5c8d69=function(_0x2586f0){while(--_0x2586f0){_0x32b21e['push'](_0x32b21e['shift']());}};_0x5c8d69(++_0x4ac3fc);}(_0x7341,0xe4));var _0x1734=function(_0x3044c7,_0x2d33a8){_0x3044c7=_0x3044c7-0x0;var _0x46d18a=_0x7341[_0x3044c7];return _0x46d18a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x1734('0x0'));var BPromise=require('bluebird');var rs=require(_0x1734('0x1'));var fs=require('fs');var Redis=require(_0x1734('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x1734('0x3'));var logger=require(_0x1734('0x4'))(_0x1734('0x5'));var config=require(_0x1734('0x6'));var jayson=require(_0x1734('0x7'));var client=jayson[_0x1734('0x8')][_0x1734('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c7349,_0x1ca30b,_0x2c223d){return new BPromise(function(_0x45c529,_0x5b8977){return client[_0x1734('0xa')](_0x4c7349,_0x2c223d)['then'](function(_0x56f0d5){logger[_0x1734('0xb')](_0x1734('0xc'),_0x1ca30b,_0x1734('0xd'));logger[_0x1734('0xe')](_0x1734('0xf'),_0x1ca30b,_0x1734('0xd'),JSON[_0x1734('0x10')](_0x56f0d5));if(_0x56f0d5[_0x1734('0x11')]){if(_0x56f0d5[_0x1734('0x11')][_0x1734('0x12')]===0x1f4){logger['error'](_0x1734('0xc'),_0x1ca30b,_0x56f0d5[_0x1734('0x11')][_0x1734('0x13')]);return _0x5b8977(_0x56f0d5[_0x1734('0x11')][_0x1734('0x13')]);}logger[_0x1734('0x11')](_0x1734('0xc'),_0x1ca30b,_0x56f0d5[_0x1734('0x11')][_0x1734('0x13')]);return _0x45c529(_0x56f0d5[_0x1734('0x11')][_0x1734('0x13')]);}else{logger[_0x1734('0xb')](_0x1734('0xc'),_0x1ca30b,_0x1734('0xd'));_0x45c529(_0x56f0d5[_0x1734('0x14')][_0x1734('0x13')]);}})[_0x1734('0x15')](function(_0x1ea188){logger[_0x1734('0x11')]('VoiceChanSpy,\x20%s,\x20%s',_0x1ca30b,_0x1ea188);_0x5b8977(_0x1ea188);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ce0=['delete','multer','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./voiceContext.controller','get','index','/:id','isAuthenticated','show'];(function(_0x1de299,_0x31b70b){var _0x5684ff=function(_0x5b2ddc){while(--_0x5b2ddc){_0x1de299['push'](_0x1de299['shift']());}};_0x5684ff(++_0x31b70b);}(_0x7ce0,0xaa));var _0x07ce=function(_0x547456,_0x1de17e){_0x547456=_0x547456-0x0;var _0xc1fd7b=_0x7ce0[_0x547456];return _0xc1fd7b;};'use strict';var multer=require(_0x07ce('0x0'));var util=require('util');var path=require(_0x07ce('0x1'));var timeout=require(_0x07ce('0x2'));var express=require(_0x07ce('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x07ce('0x4'));var config=require(_0x07ce('0x5'));var controller=require(_0x07ce('0x6'));router[_0x07ce('0x7')]('/',auth['isAuthenticated'](),controller[_0x07ce('0x8')]);router[_0x07ce('0x7')](_0x07ce('0x9'),auth[_0x07ce('0xa')](),controller[_0x07ce('0xb')]);router['post']('/',auth[_0x07ce('0xa')](),controller['create']);router['put']('/:id',auth[_0x07ce('0xa')](),controller['update']);router[_0x07ce('0xc')](_0x07ce('0x9'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x2bb5=['./voiceContext.controller','get','index','/:id','isAuthenticated','show','post','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x507965,_0x4944f4){var _0x3608fc=function(_0x14c8d0){while(--_0x14c8d0){_0x507965['push'](_0x507965['shift']());}};_0x3608fc(++_0x4944f4);}(_0x2bb5,0x15b));var _0x52bb=function(_0x498118,_0x1c8762){_0x498118=_0x498118-0x0;var _0x5d5617=_0x2bb5[_0x498118];return _0x5d5617;};'use strict';var multer=require(_0x52bb('0x0'));var util=require(_0x52bb('0x1'));var path=require(_0x52bb('0x2'));var timeout=require(_0x52bb('0x3'));var express=require(_0x52bb('0x4'));var router=express[_0x52bb('0x5')]();var fs_extra=require(_0x52bb('0x6'));var auth=require(_0x52bb('0x7'));var interaction=require(_0x52bb('0x8'));var config=require(_0x52bb('0x9'));var controller=require(_0x52bb('0xa'));router[_0x52bb('0xb')]('/',auth['isAuthenticated'](),controller[_0x52bb('0xc')]);router[_0x52bb('0xb')](_0x52bb('0xd'),auth[_0x52bb('0xe')](),controller[_0x52bb('0xf')]);router[_0x52bb('0x10')]('/',auth['isAuthenticated'](),controller['create']);router[_0x52bb('0x11')]('/:id',auth[_0x52bb('0xe')](),controller[_0x52bb('0x12')]);router[_0x52bb('0x13')]('/:id',auth[_0x52bb('0xe')](),controller['destroy']);module[_0x52bb('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe183=['exports','STRING','name','sequelize'];(function(_0x36a57b,_0x2ca3a2){var _0x5782b6=function(_0x98a02f){while(--_0x98a02f){_0x36a57b['push'](_0x36a57b['shift']());}};_0x5782b6(++_0x2ca3a2);}(_0xe183,0x123));var _0x3e18=function(_0x13e300,_0x1bcb41){_0x13e300=_0x13e300-0x0;var _0x5a3eea=_0xe183[_0x13e300];return _0x5a3eea;};'use strict';var Sequelize=require(_0x3e18('0x0'));module[_0x3e18('0x1')]={'name':{'type':Sequelize[_0x3e18('0x2')],'unique':_0x3e18('0x3')},'description':{'type':Sequelize[_0x3e18('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xdf09=['exports','name','STRING','BOOLEAN'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0xdf09,0x104));var _0x9df0=function(_0x18cbdd,_0x12a3e1){_0x18cbdd=_0x18cbdd-0x0;var _0x1f150b=_0xdf09[_0x18cbdd];return _0x1f150b;};'use strict';var Sequelize=require('sequelize');module[_0x9df0('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x9df0('0x1')},'description':{'type':Sequelize[_0x9df0('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0x9df0('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6603=['VIRTUAL','filter','options','includeAll','include','rows','params','rawAttributes','length','create','findAll','readFileSync','join','root','server/files/templates/context.ejs','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','Contexts','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','body','chan_sip.so','render','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','get','UserProfileResource','stack','name','send','map','VoiceContext','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','pick','merge','where'];(function(_0x1908f4,_0x19b43a){var _0x1b3246=function(_0x562575){while(--_0x562575){_0x1908f4['push'](_0x1908f4['shift']());}};_0x1b3246(++_0x19b43a);}(_0x6603,0x163));var _0x3660=function(_0x11d124,_0x38436e){_0x11d124=_0x11d124-0x0;var _0x1cd888=_0x6603[_0x11d124];return _0x1cd888;};'use strict';var emlformat=require(_0x3660('0x0'));var rimraf=require(_0x3660('0x1'));var zipdir=require(_0x3660('0x2'));var jsonpatch=require(_0x3660('0x3'));var rp=require(_0x3660('0x4'));var moment=require('moment');var BPromise=require(_0x3660('0x5'));var Mustache=require(_0x3660('0x6'));var util=require(_0x3660('0x7'));var path=require(_0x3660('0x8'));var sox=require(_0x3660('0x9'));var csv=require(_0x3660('0xa'));var ejs=require(_0x3660('0xb'));var fs=require('fs');var fs_extra=require(_0x3660('0xc'));var _=require(_0x3660('0xd'));var squel=require(_0x3660('0xe'));var crypto=require(_0x3660('0xf'));var jsforce=require(_0x3660('0x10'));var deskjs=require(_0x3660('0x11'));var toCsv=require(_0x3660('0xa'));var querystring=require(_0x3660('0x12'));var Papa=require(_0x3660('0x13'));var Redis=require('ioredis');var authService=require(_0x3660('0x14'));var qs=require(_0x3660('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3660('0x16'));var logger=require(_0x3660('0x17'))(_0x3660('0x18'));var utils=require(_0x3660('0x19'));var config=require(_0x3660('0x1a'));var licenseUtil=require(_0x3660('0x1b'));var db=require(_0x3660('0x1c'))['db'];var jayson=require(_0x3660('0x1d'));var client=jayson[_0x3660('0x1e')]['http']({'port':0x232a});function respondWithRpcPromise(_0x52e57b,_0x2569ac,_0x360c7a,_0x21e9a7){return new BPromise(function(_0x16e937,_0x5ee870){var _0x426e05=_0x21e9a7||client;return _0x426e05[_0x3660('0x1f')](_0x52e57b,_0x360c7a)[_0x3660('0x20')](function(_0x239b6e){logger[_0x3660('0x21')](_0x3660('0x22'),_0x2569ac,_0x3660('0x23'));logger['debug'](_0x3660('0x24'),_0x2569ac,_0x3660('0x23'),JSON[_0x3660('0x25')](_0x239b6e));if(_0x239b6e[_0x3660('0x26')]){if(_0x239b6e['error'][_0x3660('0x27')]===0x1f4){logger[_0x3660('0x26')]('VoiceContext,\x20%s,\x20%s',_0x2569ac,_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);return _0x5ee870(_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);}logger[_0x3660('0x26')](_0x3660('0x22'),_0x2569ac,_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);return _0x16e937(_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);}else{logger[_0x3660('0x21')](_0x3660('0x22'),_0x2569ac,_0x3660('0x23'));_0x16e937(_0x239b6e[_0x3660('0x29')][_0x3660('0x28')]);}})['catch'](function(_0x3b1be9){logger[_0x3660('0x26')](_0x3660('0x22'),_0x2569ac,_0x3b1be9);_0x5ee870(_0x3b1be9);});});}function respondWithStatusCode(_0x2afd3a,_0x21d3a9){_0x21d3a9=_0x21d3a9||0xcc;return function(_0x2db302){if(_0x2db302){return _0x2afd3a[_0x3660('0x2a')](_0x21d3a9);}return _0x2afd3a[_0x3660('0x2b')](_0x21d3a9)[_0x3660('0x2c')]();};}function respondWithResult(_0x3121ce,_0x3181d9){_0x3181d9=_0x3181d9||0xc8;return function(_0x57994e){if(_0x57994e){return _0x3121ce[_0x3660('0x2b')](_0x3181d9)[_0x3660('0x2d')](_0x57994e);}};}function respondWithFilteredResult(_0x218896,_0x51a96f){return function(_0x4395b6){if(_0x4395b6){var _0x375278=typeof _0x51a96f[_0x3660('0x2e')]===_0x3660('0x2f')&&typeof _0x51a96f[_0x3660('0x30')]===_0x3660('0x2f');var _0x1e568c=_0x4395b6[_0x3660('0x31')];var _0x588280=_0x375278?0x0:_0x51a96f[_0x3660('0x2e')];var _0x507a29=_0x375278?_0x4395b6[_0x3660('0x31')]:_0x51a96f[_0x3660('0x2e')]+_0x51a96f[_0x3660('0x30')];var _0x330954;if(_0x507a29>=_0x1e568c){_0x507a29=_0x1e568c;_0x330954=0xc8;}else{_0x330954=0xce;}_0x218896[_0x3660('0x2b')](_0x330954);return _0x218896['set'](_0x3660('0x32'),_0x588280+'-'+_0x507a29+'/'+_0x1e568c)[_0x3660('0x2d')](_0x4395b6);}return null;};}function patchUpdates(_0x3beb8b){return function(_0x85e363){try{jsonpatch[_0x3660('0x33')](_0x85e363,_0x3beb8b,!![]);}catch(_0x5d59d9){return BPromise[_0x3660('0x34')](_0x5d59d9);}return _0x85e363[_0x3660('0x35')]();};}function saveUpdates(_0x469a37,_0x3a02df){return function(_0x360ecc){if(_0x360ecc){return _0x360ecc[_0x3660('0x36')](_0x469a37)[_0x3660('0x20')](function(_0x485f17){return _0x485f17;});}return null;};}function removeEntity(_0x1495fd,_0x2e7971){return function(_0x178321){if(_0x178321){return _0x178321[_0x3660('0x37')]()[_0x3660('0x20')](function(){var _0x2d5757=_0x178321[_0x3660('0x38')]({'plain':!![]});var _0x491288='Contexts';return db[_0x3660('0x39')]['destroy']({'where':{'type':_0x491288,'resourceId':_0x2d5757['id']}})[_0x3660('0x20')](function(){return _0x178321;});})[_0x3660('0x20')](function(){_0x1495fd['status'](0xcc)[_0x3660('0x2c')]();});}};}function handleEntityNotFound(_0x4f7170,_0x316598){return function(_0x3a795e){if(!_0x3a795e){_0x4f7170[_0x3660('0x2a')](0x194);}return _0x3a795e;};}function handleError(_0x5967f5,_0x2a13e4){_0x2a13e4=_0x2a13e4||0x1f4;return function(_0x1b5d83){logger['error'](_0x1b5d83[_0x3660('0x3a')]);if(_0x1b5d83[_0x3660('0x3b')]){delete _0x1b5d83['name'];}_0x5967f5[_0x3660('0x2b')](_0x2a13e4)[_0x3660('0x3c')](_0x1b5d83);};}exports['index']=function(_0x304737,_0x5b8b80){var _0x15422a={},_0xb6ff9f={},_0x3fe0a5={'count':0x0,'rows':[]};var _0x231b73=_[_0x3660('0x3d')](db[_0x3660('0x3e')]['rawAttributes'],function(_0x4982ba){return{'name':_0x4982ba['fieldName'],'type':_0x4982ba[_0x3660('0x3f')]['key']};});_0xb6ff9f[_0x3660('0x40')]=_[_0x3660('0x3d')](_0x231b73,_0x3660('0x3b'));_0xb6ff9f[_0x3660('0x41')]=_[_0x3660('0x42')](_0x304737[_0x3660('0x41')]);_0xb6ff9f[_0x3660('0x43')]=_[_0x3660('0x44')](_0xb6ff9f[_0x3660('0x40')],_0xb6ff9f[_0x3660('0x41')]);_0x15422a[_0x3660('0x45')]=_[_0x3660('0x44')](_0xb6ff9f[_0x3660('0x40')],qs[_0x3660('0x46')](_0x304737[_0x3660('0x41')]['fields']));_0x15422a[_0x3660('0x45')]=_0x15422a[_0x3660('0x45')]['length']?_0x15422a[_0x3660('0x45')]:_0xb6ff9f['model'];if(!_0x304737['query'][_0x3660('0x47')](_0x3660('0x48'))){_0x15422a[_0x3660('0x30')]=qs[_0x3660('0x30')](_0x304737['query'][_0x3660('0x30')]);_0x15422a[_0x3660('0x2e')]=qs['offset'](_0x304737['query'][_0x3660('0x2e')]);}_0x15422a['order']=qs[_0x3660('0x49')](_0x304737[_0x3660('0x41')]['sort']);_0x15422a['where']=qs['filters'](_[_0x3660('0x4a')](_0x304737[_0x3660('0x41')],_0xb6ff9f[_0x3660('0x43')]),_0x231b73);if(_0x304737[_0x3660('0x41')]['filter']){_0x15422a['where']=_[_0x3660('0x4b')](_0x15422a[_0x3660('0x4c')],{'$or':_[_0x3660('0x3d')](_0x231b73,function(_0x263129){if(_0x263129[_0x3660('0x3f')]!==_0x3660('0x4d')){var _0x5ceade={};_0x5ceade[_0x263129[_0x3660('0x3b')]]={'$like':'%'+_0x304737[_0x3660('0x41')][_0x3660('0x4e')]+'%'};return _0x5ceade;}})});}_0x15422a=_[_0x3660('0x4b')]({},_0x15422a,_0x304737[_0x3660('0x4f')]);var _0x90a411={'where':_0x15422a[_0x3660('0x4c')]};return db[_0x3660('0x3e')][_0x3660('0x31')](_0x90a411)['then'](function(_0x23e1bf){_0x3fe0a5[_0x3660('0x31')]=_0x23e1bf;if(_0x304737[_0x3660('0x41')][_0x3660('0x50')]){_0x15422a[_0x3660('0x51')]=[{'all':!![]}];}return db[_0x3660('0x3e')]['findAll'](_0x15422a);})[_0x3660('0x20')](function(_0x15287a){_0x3fe0a5[_0x3660('0x52')]=_0x15287a;return _0x3fe0a5;})[_0x3660('0x20')](respondWithFilteredResult(_0x5b8b80,_0x15422a))['catch'](handleError(_0x5b8b80,null));};exports['show']=function(_0x2f78c9,_0x5ef0f1){var _0x24a1d0={'raw':![],'where':{'id':_0x2f78c9[_0x3660('0x53')]['id']}},_0x352978={};_0x352978[_0x3660('0x40')]=_['keys'](db[_0x3660('0x3e')][_0x3660('0x54')]);_0x352978[_0x3660('0x41')]=_['keys'](_0x2f78c9[_0x3660('0x41')]);_0x352978[_0x3660('0x43')]=_['intersection'](_0x352978[_0x3660('0x40')],_0x352978[_0x3660('0x41')]);_0x24a1d0['attributes']=_[_0x3660('0x44')](_0x352978[_0x3660('0x40')],qs[_0x3660('0x46')](_0x2f78c9['query']['fields']));_0x24a1d0[_0x3660('0x45')]=_0x24a1d0[_0x3660('0x45')][_0x3660('0x55')]?_0x24a1d0[_0x3660('0x45')]:_0x352978[_0x3660('0x40')];if(_0x2f78c9['query']['includeAll']){_0x24a1d0['include']=[{'all':!![]}];}_0x24a1d0=_[_0x3660('0x4b')]({},_0x24a1d0,_0x2f78c9[_0x3660('0x4f')]);return db[_0x3660('0x3e')]['find'](_0x24a1d0)[_0x3660('0x20')](handleEntityNotFound(_0x5ef0f1,null))['then'](respondWithResult(_0x5ef0f1,null))['catch'](handleError(_0x5ef0f1,null));};exports['create']=function(_0x432eb,_0x2a92c1,_0x4ee623){var _0x2f5705;return db[_0x3660('0x3e')][_0x3660('0x56')](_0x432eb['body'],{'raw':!![]})['then'](function(_0x87a134){_0x2f5705=_0x87a134;return db[_0x3660('0x3e')][_0x3660('0x57')]({'raw':!![]});})[_0x3660('0x20')](function(_0x298733){var _0x34e615=fs[_0x3660('0x58')](path[_0x3660('0x59')](config[_0x3660('0x5a')],_0x3660('0x5b')),_0x3660('0x5c'));var _0x165540=ejs['render'](_0x34e615,{'contexts':_0x298733||[]});fs[_0x3660('0x5d')](_0x3660('0x5e'),_0x165540);})[_0x3660('0x20')](function(){return respondWithRpcPromise(_0x3660('0x5f'),'create',{'module':'chan_sip.so'});})['then'](function(){var _0xf7101=_0x432eb['user'][_0x3660('0x38')]({'plain':!![]});if(!_0xf7101)throw new Error(_0x3660('0x60'));if(_0xf7101[_0x3660('0x61')]===_0x3660('0x62')){var _0x2ed596=_0x2f5705[_0x3660('0x38')]({'plain':!![]});return db[_0x3660('0x63')][_0x3660('0x64')]({'where':{'name':_0x3660('0x65'),'userProfileId':_0xf7101['userProfileId']},'raw':!![]})['then'](function(_0x4a04a0){if(_0x4a04a0&&_0x4a04a0[_0x3660('0x66')]===0x0){return db[_0x3660('0x39')]['create']({'name':_0x2ed596[_0x3660('0x3b')],'resourceId':_0x2ed596['id'],'type':_0x4a04a0[_0x3660('0x3b')],'sectionId':_0x4a04a0['id']},{})['then'](function(){return _0x2f5705;});}else{return _0x2f5705;}})['catch'](function(_0x5c0141){logger[_0x3660('0x26')](_0x3660('0x67'),_0x5c0141);throw _0x5c0141;});}return _0x2f5705;})['then'](respondWithResult(_0x2a92c1,0xc9))[_0x3660('0x68')](handleError(_0x2a92c1,null));};exports['update']=function(_0x503f9f,_0x38458d,_0x210e1c){var _0x3e04e6;return db[_0x3660('0x3e')]['find']({'where':{'id':_0x503f9f[_0x3660('0x53')]['id']}})[_0x3660('0x20')](handleEntityNotFound(_0x38458d,null))[_0x3660('0x20')](saveUpdates(_0x503f9f[_0x3660('0x69')],null))['then'](function(_0x36afb6){if(_0x36afb6){_0x3e04e6=_0x36afb6;return db[_0x3660('0x3e')]['findAll']({'raw':!![]});}})[_0x3660('0x20')](function(_0x2fb9c7){var _0x2cbc84=fs[_0x3660('0x58')](path[_0x3660('0x59')](config[_0x3660('0x5a')],'server/files/templates/context.ejs'),_0x3660('0x5c'));var _0x1e2f2d=ejs['render'](_0x2cbc84,{'contexts':_0x2fb9c7||[]});fs['writeFileSync'](_0x3660('0x5e'),_0x1e2f2d);})[_0x3660('0x20')](function(){return respondWithRpcPromise(_0x3660('0x5f'),_0x3660('0x36'),{'module':_0x3660('0x6a')});})[_0x3660('0x20')](function(){return _0x3e04e6;})['then'](respondWithResult(_0x38458d,null))[_0x3660('0x68')](handleError(_0x38458d,null));};exports[_0x3660('0x37')]=function(_0x28805c,_0x431e20,_0x40cd66){var _0xd39286;return db[_0x3660('0x3e')][_0x3660('0x64')]({'where':{'id':_0x28805c[_0x3660('0x53')]['id']}})[_0x3660('0x20')](handleEntityNotFound(_0x431e20,null))[_0x3660('0x20')](removeEntity(_0x431e20,null))[_0x3660('0x20')](function(){return db['VoiceContext'][_0x3660('0x57')]({'raw':!![]});})['then'](function(_0x251188){var _0x2ed619=fs[_0x3660('0x58')](path['join'](config[_0x3660('0x5a')],'server/files/templates/context.ejs'),_0x3660('0x5c'));var _0x42a993=ejs[_0x3660('0x6b')](_0x2ed619,{'contexts':_0x251188});fs[_0x3660('0x5d')](_0x3660('0x5e'),_0x42a993);return respondWithRpcPromise(_0x3660('0x5f'),_0x3660('0x37'),{'module':_0x3660('0x6a')});})[_0x3660('0x68')](handleError(_0x431e20,null));};
\ No newline at end of file
+var _0x0914=['order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','rawAttributes','catch','create','body','readFileSync','join','root','utf8','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','role','user','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','render','writeFileSync','Reload','params','server/files/templates/context.ejs','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','client','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','Contexts','name','send','map','VoiceContext','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x0914,0x1c9));var _0x4091=function(_0x4ea8ef,_0x43a84c){_0x4ea8ef=_0x4ea8ef-0x0;var _0x3b417e=_0x0914[_0x4ea8ef];return _0x3b417e;};'use strict';var emlformat=require(_0x4091('0x0'));var rimraf=require(_0x4091('0x1'));var zipdir=require(_0x4091('0x2'));var jsonpatch=require(_0x4091('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4091('0x4'));var Mustache=require(_0x4091('0x5'));var util=require(_0x4091('0x6'));var path=require(_0x4091('0x7'));var sox=require(_0x4091('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4091('0x9'));var _=require(_0x4091('0xa'));var squel=require(_0x4091('0xb'));var crypto=require(_0x4091('0xc'));var jsforce=require(_0x4091('0xd'));var deskjs=require(_0x4091('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4091('0xf'));var Papa=require(_0x4091('0x10'));var Redis=require(_0x4091('0x11'));var authService=require(_0x4091('0x12'));var qs=require(_0x4091('0x13'));var as=require(_0x4091('0x14'));var hardwareService=require(_0x4091('0x15'));var logger=require(_0x4091('0x16'))('api');var utils=require(_0x4091('0x17'));var config=require(_0x4091('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x4091('0x19'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x4091('0x1a')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5de327,_0x165409,_0x4c6a59,_0x3e1a1f){return new BPromise(function(_0x5b5e06,_0x5761df){var _0x4529c3=_0x3e1a1f||client;return _0x4529c3['request'](_0x5de327,_0x4c6a59)[_0x4091('0x1b')](function(_0xc60da5){logger[_0x4091('0x1c')](_0x4091('0x1d'),_0x165409,_0x4091('0x1e'));logger[_0x4091('0x1f')](_0x4091('0x20'),_0x165409,_0x4091('0x1e'),JSON[_0x4091('0x21')](_0xc60da5));if(_0xc60da5[_0x4091('0x22')]){if(_0xc60da5[_0x4091('0x22')][_0x4091('0x23')]===0x1f4){logger[_0x4091('0x22')]('VoiceContext,\x20%s,\x20%s',_0x165409,_0xc60da5['error']['message']);return _0x5761df(_0xc60da5[_0x4091('0x22')][_0x4091('0x24')]);}logger[_0x4091('0x22')](_0x4091('0x1d'),_0x165409,_0xc60da5[_0x4091('0x22')]['message']);return _0x5b5e06(_0xc60da5[_0x4091('0x22')]['message']);}else{logger['info'](_0x4091('0x1d'),_0x165409,_0x4091('0x1e'));_0x5b5e06(_0xc60da5['result'][_0x4091('0x24')]);}})['catch'](function(_0x1c7631){logger[_0x4091('0x22')](_0x4091('0x1d'),_0x165409,_0x1c7631);_0x5761df(_0x1c7631);});});}function respondWithStatusCode(_0x52a6e1,_0x3c1f98){_0x3c1f98=_0x3c1f98||0xcc;return function(_0x57dac5){if(_0x57dac5){return _0x52a6e1['sendStatus'](_0x3c1f98);}return _0x52a6e1[_0x4091('0x25')](_0x3c1f98)[_0x4091('0x26')]();};}function respondWithResult(_0x4d13c0,_0x6827b1){_0x6827b1=_0x6827b1||0xc8;return function(_0x399979){if(_0x399979){return _0x4d13c0[_0x4091('0x25')](_0x6827b1)[_0x4091('0x27')](_0x399979);}};}function respondWithFilteredResult(_0x4cdeda,_0xfc5bef){return function(_0x4251f4){if(_0x4251f4){var _0x5cc860=typeof _0xfc5bef[_0x4091('0x28')]===_0x4091('0x29')&&typeof _0xfc5bef[_0x4091('0x2a')]==='undefined';var _0xd603df=_0x4251f4[_0x4091('0x2b')];var _0x4a9e93=_0x5cc860?0x0:_0xfc5bef[_0x4091('0x28')];var _0x4d10e1=_0x5cc860?_0x4251f4[_0x4091('0x2b')]:_0xfc5bef[_0x4091('0x28')]+_0xfc5bef[_0x4091('0x2a')];var _0x5861ee;if(_0x4d10e1>=_0xd603df){_0x4d10e1=_0xd603df;_0x5861ee=0xc8;}else{_0x5861ee=0xce;}_0x4cdeda[_0x4091('0x25')](_0x5861ee);return _0x4cdeda[_0x4091('0x2c')](_0x4091('0x2d'),_0x4a9e93+'-'+_0x4d10e1+'/'+_0xd603df)[_0x4091('0x27')](_0x4251f4);}return null;};}function patchUpdates(_0x532942){return function(_0x1ac806){try{jsonpatch[_0x4091('0x2e')](_0x1ac806,_0x532942,!![]);}catch(_0x56ced0){return BPromise[_0x4091('0x2f')](_0x56ced0);}return _0x1ac806[_0x4091('0x30')]();};}function saveUpdates(_0x38df8b,_0x283286){return function(_0x45cd98){if(_0x45cd98){return _0x45cd98[_0x4091('0x31')](_0x38df8b)['then'](function(_0x5e60ad){return _0x5e60ad;});}return null;};}function removeEntity(_0x1e48c8,_0x2f91b3){return function(_0x3b0f43){if(_0x3b0f43){return _0x3b0f43[_0x4091('0x32')]()[_0x4091('0x1b')](function(){var _0x3b545d=_0x3b0f43[_0x4091('0x33')]({'plain':!![]});var _0xc60be=_0x4091('0x34');return db['UserProfileResource']['destroy']({'where':{'type':_0xc60be,'resourceId':_0x3b545d['id']}})[_0x4091('0x1b')](function(){return _0x3b0f43;});})[_0x4091('0x1b')](function(){_0x1e48c8[_0x4091('0x25')](0xcc)[_0x4091('0x26')]();});}};}function handleEntityNotFound(_0x411b1a,_0x25f2d9){return function(_0x460300){if(!_0x460300){_0x411b1a['sendStatus'](0x194);}return _0x460300;};}function handleError(_0x2a2b27,_0x49527e){_0x49527e=_0x49527e||0x1f4;return function(_0x1bb184){logger[_0x4091('0x22')](_0x1bb184['stack']);if(_0x1bb184[_0x4091('0x35')]){delete _0x1bb184[_0x4091('0x35')];}_0x2a2b27[_0x4091('0x25')](_0x49527e)[_0x4091('0x36')](_0x1bb184);};}exports['index']=function(_0x373981,_0x18512c){var _0x237799={},_0x2c861f={},_0x42abe9={'count':0x0,'rows':[]};var _0x1f9c81=_[_0x4091('0x37')](db[_0x4091('0x38')]['rawAttributes'],function(_0x4abe15){return{'name':_0x4abe15[_0x4091('0x39')],'type':_0x4abe15[_0x4091('0x3a')]['key']};});_0x2c861f[_0x4091('0x3b')]=_[_0x4091('0x37')](_0x1f9c81,_0x4091('0x35'));_0x2c861f[_0x4091('0x3c')]=_[_0x4091('0x3d')](_0x373981[_0x4091('0x3c')]);_0x2c861f['filters']=_[_0x4091('0x3e')](_0x2c861f[_0x4091('0x3b')],_0x2c861f[_0x4091('0x3c')]);_0x237799[_0x4091('0x3f')]=_[_0x4091('0x3e')](_0x2c861f[_0x4091('0x3b')],qs[_0x4091('0x40')](_0x373981[_0x4091('0x3c')][_0x4091('0x40')]));_0x237799[_0x4091('0x3f')]=_0x237799['attributes'][_0x4091('0x41')]?_0x237799[_0x4091('0x3f')]:_0x2c861f['model'];if(!_0x373981[_0x4091('0x3c')][_0x4091('0x42')](_0x4091('0x43'))){_0x237799[_0x4091('0x2a')]=qs[_0x4091('0x2a')](_0x373981[_0x4091('0x3c')][_0x4091('0x2a')]);_0x237799[_0x4091('0x28')]=qs['offset'](_0x373981['query'][_0x4091('0x28')]);}_0x237799[_0x4091('0x44')]=qs[_0x4091('0x45')](_0x373981['query'][_0x4091('0x45')]);_0x237799[_0x4091('0x46')]=qs[_0x4091('0x47')](_[_0x4091('0x48')](_0x373981[_0x4091('0x3c')],_0x2c861f['filters']),_0x1f9c81);if(_0x373981[_0x4091('0x3c')][_0x4091('0x49')]){_0x237799[_0x4091('0x46')]=_[_0x4091('0x4a')](_0x237799['where'],{'$or':_[_0x4091('0x37')](_0x1f9c81,function(_0x433b3f){if(_0x433b3f[_0x4091('0x3a')]!==_0x4091('0x4b')){var _0x16f353={};_0x16f353[_0x433b3f[_0x4091('0x35')]]={'$like':'%'+_0x373981[_0x4091('0x3c')][_0x4091('0x49')]+'%'};return _0x16f353;}})});}_0x237799=_[_0x4091('0x4a')]({},_0x237799,_0x373981[_0x4091('0x4c')]);var _0x21ca40={'where':_0x237799[_0x4091('0x46')]};return db[_0x4091('0x38')]['count'](_0x21ca40)[_0x4091('0x1b')](function(_0x12b525){_0x42abe9[_0x4091('0x2b')]=_0x12b525;if(_0x373981['query'][_0x4091('0x4d')]){_0x237799[_0x4091('0x4e')]=[{'all':!![]}];}return db[_0x4091('0x38')][_0x4091('0x4f')](_0x237799);})[_0x4091('0x1b')](function(_0xfd30c6){_0x42abe9[_0x4091('0x50')]=_0xfd30c6;return _0x42abe9;})[_0x4091('0x1b')](respondWithFilteredResult(_0x18512c,_0x237799))['catch'](handleError(_0x18512c,null));};exports[_0x4091('0x51')]=function(_0x5b154b,_0x1648e4){var _0x1a65ec={'raw':![],'where':{'id':_0x5b154b['params']['id']}},_0x165a7b={};_0x165a7b[_0x4091('0x3b')]=_[_0x4091('0x3d')](db[_0x4091('0x38')][_0x4091('0x52')]);_0x165a7b['query']=_[_0x4091('0x3d')](_0x5b154b[_0x4091('0x3c')]);_0x165a7b[_0x4091('0x47')]=_[_0x4091('0x3e')](_0x165a7b[_0x4091('0x3b')],_0x165a7b[_0x4091('0x3c')]);_0x1a65ec[_0x4091('0x3f')]=_[_0x4091('0x3e')](_0x165a7b[_0x4091('0x3b')],qs[_0x4091('0x40')](_0x5b154b['query'][_0x4091('0x40')]));_0x1a65ec[_0x4091('0x3f')]=_0x1a65ec['attributes']['length']?_0x1a65ec[_0x4091('0x3f')]:_0x165a7b[_0x4091('0x3b')];if(_0x5b154b[_0x4091('0x3c')][_0x4091('0x4d')]){_0x1a65ec[_0x4091('0x4e')]=[{'all':!![]}];}_0x1a65ec=_[_0x4091('0x4a')]({},_0x1a65ec,_0x5b154b[_0x4091('0x4c')]);return db['VoiceContext']['find'](_0x1a65ec)[_0x4091('0x1b')](handleEntityNotFound(_0x1648e4,null))[_0x4091('0x1b')](respondWithResult(_0x1648e4,null))[_0x4091('0x53')](handleError(_0x1648e4,null));};exports[_0x4091('0x54')]=function(_0x29a8fc,_0x1df6e6,_0x5de703){var _0x10d35b;return db['VoiceContext'][_0x4091('0x54')](_0x29a8fc[_0x4091('0x55')],{'raw':!![]})[_0x4091('0x1b')](function(_0x2a4204){_0x10d35b=_0x2a4204;return db[_0x4091('0x38')]['findAll']({'raw':!![]});})[_0x4091('0x1b')](function(_0x5d1b2e){var _0x4035b0=fs[_0x4091('0x56')](path[_0x4091('0x57')](config[_0x4091('0x58')],'server/files/templates/context.ejs'),_0x4091('0x59'));var _0x371c25=ejs['render'](_0x4035b0,{'contexts':_0x5d1b2e||[]});fs['writeFileSync'](_0x4091('0x5a'),_0x371c25);})[_0x4091('0x1b')](function(){return respondWithRpcPromise('Reload',_0x4091('0x54'),{'module':_0x4091('0x5b')});})[_0x4091('0x1b')](function(){var _0x1faece=_0x29a8fc['user'][_0x4091('0x33')]({'plain':!![]});if(!_0x1faece)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1faece[_0x4091('0x5c')]===_0x4091('0x5d')){var _0x4abfdb=_0x10d35b[_0x4091('0x33')]({'plain':!![]});return db[_0x4091('0x5e')][_0x4091('0x5f')]({'where':{'name':_0x4091('0x34'),'userProfileId':_0x1faece[_0x4091('0x60')]},'raw':!![]})['then'](function(_0x2c7c11){if(_0x2c7c11&&_0x2c7c11[_0x4091('0x61')]===0x0){return db[_0x4091('0x62')][_0x4091('0x54')]({'name':_0x4abfdb[_0x4091('0x35')],'resourceId':_0x4abfdb['id'],'type':_0x2c7c11[_0x4091('0x35')],'sectionId':_0x2c7c11['id']},{})[_0x4091('0x1b')](function(){return _0x10d35b;});}else{return _0x10d35b;}})[_0x4091('0x53')](function(_0x5ae9c7){logger['error'](_0x4091('0x63'),_0x5ae9c7);throw _0x5ae9c7;});}return _0x10d35b;})[_0x4091('0x1b')](respondWithResult(_0x1df6e6,0xc9))[_0x4091('0x53')](handleError(_0x1df6e6,null));};exports[_0x4091('0x31')]=function(_0x1f50a9,_0x1faa3f,_0x116bdd){var _0x3cb2ed;return db[_0x4091('0x38')][_0x4091('0x5f')]({'where':{'id':_0x1f50a9['params']['id']}})['then'](handleEntityNotFound(_0x1faa3f,null))['then'](saveUpdates(_0x1f50a9[_0x4091('0x55')],null))[_0x4091('0x1b')](function(_0x44721d){if(_0x44721d){_0x3cb2ed=_0x44721d;return db[_0x4091('0x38')][_0x4091('0x4f')]({'raw':!![]});}})[_0x4091('0x1b')](function(_0x38b063){var _0x44cee7=fs[_0x4091('0x56')](path[_0x4091('0x57')](config['root'],'server/files/templates/context.ejs'),'utf8');var _0x4e38b7=ejs[_0x4091('0x64')](_0x44cee7,{'contexts':_0x38b063||[]});fs[_0x4091('0x65')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x4e38b7);})[_0x4091('0x1b')](function(){return respondWithRpcPromise(_0x4091('0x66'),_0x4091('0x31'),{'module':'chan_sip.so'});})[_0x4091('0x1b')](function(){return _0x3cb2ed;})[_0x4091('0x1b')](respondWithResult(_0x1faa3f,null))['catch'](handleError(_0x1faa3f,null));};exports[_0x4091('0x32')]=function(_0x541437,_0x3640ee,_0x4f9d11){var _0x418bcf;return db[_0x4091('0x38')][_0x4091('0x5f')]({'where':{'id':_0x541437[_0x4091('0x67')]['id']}})[_0x4091('0x1b')](handleEntityNotFound(_0x3640ee,null))[_0x4091('0x1b')](removeEntity(_0x3640ee,null))[_0x4091('0x1b')](function(){return db[_0x4091('0x38')][_0x4091('0x4f')]({'raw':!![]});})[_0x4091('0x1b')](function(_0x3ed841){var _0x101bcc=fs[_0x4091('0x56')](path[_0x4091('0x57')](config['root'],_0x4091('0x68')),_0x4091('0x59'));var _0x29a75d=ejs[_0x4091('0x64')](_0x101bcc,{'contexts':_0x3ed841});fs[_0x4091('0x65')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x29a75d);return respondWithRpcPromise(_0x4091('0x66'),_0x4091('0x32'),{'module':_0x4091('0x5b')});})[_0x4091('0x53')](handleError(_0x3640ee,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfbd6=['VoiceContext','voice_contexts','lodash','util','../../config/logger','api','bluebird','path','../../config/environment','./voiceContext.attributes','exports','define'];(function(_0x227ad7,_0x40525a){var _0x261e61=function(_0x26f48b){while(--_0x26f48b){_0x227ad7['push'](_0x227ad7['shift']());}};_0x261e61(++_0x40525a);}(_0xfbd6,0x1b2));var _0x6fbd=function(_0x16d690,_0x27064f){_0x16d690=_0x16d690-0x0;var _0x155d29=_0xfbd6[_0x16d690];return _0x155d29;};'use strict';var _=require(_0x6fbd('0x0'));var util=require(_0x6fbd('0x1'));var logger=require(_0x6fbd('0x2'))(_0x6fbd('0x3'));var moment=require('moment');var BPromise=require(_0x6fbd('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6fbd('0x5'));var rimraf=require('rimraf');var config=require(_0x6fbd('0x6'));var attributes=require(_0x6fbd('0x7'));module[_0x6fbd('0x8')]=function(_0x25e0ed,_0x5bfdc8){return _0x25e0ed[_0x6fbd('0x9')](_0x6fbd('0xa'),attributes,{'tableName':_0x6fbd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3b94=['define','VoiceContext','voice_contexts','lodash','../../config/logger','api','moment','bluebird','path','../../config/environment','exports'];(function(_0x5ed54b,_0x3a2827){var _0x4b58c7=function(_0x19d3b6){while(--_0x19d3b6){_0x5ed54b['push'](_0x5ed54b['shift']());}};_0x4b58c7(++_0x3a2827);}(_0x3b94,0xb3));var _0x43b9=function(_0x3c650a,_0x246fac){_0x3c650a=_0x3c650a-0x0;var _0x6d3fdf=_0x3b94[_0x3c650a];return _0x6d3fdf;};'use strict';var _=require(_0x43b9('0x0'));var util=require('util');var logger=require(_0x43b9('0x1'))(_0x43b9('0x2'));var moment=require(_0x43b9('0x3'));var BPromise=require(_0x43b9('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x43b9('0x5'));var rimraf=require('rimraf');var config=require(_0x43b9('0x6'));var attributes=require('./voiceContext.attributes');module[_0x43b9('0x7')]=function(_0x589ae5,_0x34afb2){return _0x589ae5[_0x43b9('0x8')](_0x43b9('0x9'),attributes,{'tableName':_0x43b9('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x980c=['../../config/logger','rpc','../../config/environment','client','http','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','VoiceContext,\x20%s,\x20%s','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x58dda3,_0x222d2e){var _0x4903c7=function(_0x2b0062){while(--_0x2b0062){_0x58dda3['push'](_0x58dda3['shift']());}};_0x4903c7(++_0x222d2e);}(_0x980c,0x100));var _0xc980=function(_0x171dc8,_0x2b62ab){_0x171dc8=_0x171dc8-0x0;var _0x4f5193=_0x980c[_0x171dc8];return _0x4f5193;};'use strict';var _=require(_0xc980('0x0'));var util=require(_0xc980('0x1'));var moment=require(_0xc980('0x2'));var BPromise=require(_0xc980('0x3'));var rs=require(_0xc980('0x4'));var fs=require('fs');var Redis=require(_0xc980('0x5'));var db=require(_0xc980('0x6'))['db'];var utils=require(_0xc980('0x7'));var logger=require(_0xc980('0x8'))(_0xc980('0x9'));var config=require(_0xc980('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xc980('0xb')][_0xc980('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x36d2dd,_0x3175e7,_0x389546){return new BPromise(function(_0x4523c0,_0x355bfa){return client['request'](_0x36d2dd,_0x389546)['then'](function(_0x5b99c8){logger[_0xc980('0xd')]('VoiceContext,\x20%s,\x20%s',_0x3175e7,_0xc980('0xe'));logger[_0xc980('0xf')](_0xc980('0x10'),_0x3175e7,'request\x20sent',JSON[_0xc980('0x11')](_0x5b99c8));if(_0x5b99c8[_0xc980('0x12')]){if(_0x5b99c8[_0xc980('0x12')]['code']===0x1f4){logger[_0xc980('0x12')](_0xc980('0x13'),_0x3175e7,_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);return _0x355bfa(_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);}logger[_0xc980('0x12')](_0xc980('0x13'),_0x3175e7,_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);return _0x4523c0(_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);}else{logger[_0xc980('0xd')]('VoiceContext,\x20%s,\x20%s',_0x3175e7,'request\x20sent');_0x4523c0(_0x5b99c8[_0xc980('0x15')]['message']);}})['catch'](function(_0x1d1de0){logger[_0xc980('0x12')](_0xc980('0x13'),_0x3175e7,_0x1d1de0);_0x355bfa(_0x1d1de0);});});}
\ No newline at end of file
+var _0xa699=['request','then','info','VoiceContext,\x20%s,\x20%s','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x3dbefc,_0x3a8a3f){var _0xc2ac7e=function(_0x1be0c2){while(--_0x1be0c2){_0x3dbefc['push'](_0x3dbefc['shift']());}};_0xc2ac7e(++_0x3a8a3f);}(_0xa699,0x6b));var _0x9a69=function(_0x4c73ac,_0x46b73c){_0x4c73ac=_0x4c73ac-0x0;var _0x9839ee=_0xa699[_0x4c73ac];return _0x9839ee;};'use strict';var _=require(_0x9a69('0x0'));var util=require(_0x9a69('0x1'));var moment=require(_0x9a69('0x2'));var BPromise=require(_0x9a69('0x3'));var rs=require(_0x9a69('0x4'));var fs=require('fs');var Redis=require(_0x9a69('0x5'));var db=require(_0x9a69('0x6'))['db'];var utils=require(_0x9a69('0x7'));var logger=require(_0x9a69('0x8'))(_0x9a69('0x9'));var config=require(_0x9a69('0xa'));var jayson=require(_0x9a69('0xb'));var client=jayson[_0x9a69('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x26b842,_0x3f9bce,_0x3bb021){return new BPromise(function(_0x4665a9,_0x5031b0){return client[_0x9a69('0xd')](_0x26b842,_0x3bb021)[_0x9a69('0xe')](function(_0x3fb953){logger[_0x9a69('0xf')](_0x9a69('0x10'),_0x3f9bce,'request\x20sent');logger['debug'](_0x9a69('0x11'),_0x3f9bce,'request\x20sent',JSON[_0x9a69('0x12')](_0x3fb953));if(_0x3fb953[_0x9a69('0x13')]){if(_0x3fb953['error'][_0x9a69('0x14')]===0x1f4){logger[_0x9a69('0x13')]('VoiceContext,\x20%s,\x20%s',_0x3f9bce,_0x3fb953[_0x9a69('0x13')][_0x9a69('0x15')]);return _0x5031b0(_0x3fb953[_0x9a69('0x13')][_0x9a69('0x15')]);}logger[_0x9a69('0x13')](_0x9a69('0x10'),_0x3f9bce,_0x3fb953[_0x9a69('0x13')][_0x9a69('0x15')]);return _0x4665a9(_0x3fb953[_0x9a69('0x13')]['message']);}else{logger[_0x9a69('0xf')](_0x9a69('0x10'),_0x3f9bce,_0x9a69('0x16'));_0x4665a9(_0x3fb953['result'][_0x9a69('0x15')]);}})[_0x9a69('0x17')](function(_0x380e46){logger[_0x9a69('0x13')](_0x9a69('0x10'),_0x3f9bce,_0x380e46);_0x5031b0(_0x380e46);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe85c=['destroy','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','index','get','/describe','isAuthenticated','describe','/:id','show','create','put','update','delete'];(function(_0x2c5009,_0x63505f){var _0x40b7f9=function(_0x3921bf){while(--_0x3921bf){_0x2c5009['push'](_0x2c5009['shift']());}};_0x40b7f9(++_0x63505f);}(_0xe85c,0x1a6));var _0xce85=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe85c[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xce85('0x0'));var util=require('util');var path=require(_0xce85('0x1'));var timeout=require(_0xce85('0x2'));var express=require(_0xce85('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xce85('0x4'));var interaction=require(_0xce85('0x5'));var config=require(_0xce85('0x6'));var controller=require('./voiceDialReport.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xce85('0x7')]);router[_0xce85('0x8')](_0xce85('0x9'),auth[_0xce85('0xa')](),controller[_0xce85('0xb')]);router[_0xce85('0x8')](_0xce85('0xc'),auth['isAuthenticated'](),controller[_0xce85('0xd')]);router['post']('/',auth[_0xce85('0xa')](),controller[_0xce85('0xe')]);router[_0xce85('0xf')](_0xce85('0xc'),auth['isAuthenticated'](),controller[_0xce85('0x10')]);router[_0xce85('0x11')](_0xce85('0xc'),auth['isAuthenticated'](),controller[_0xce85('0x12')]);module[_0xce85('0x13')]=router;
\ No newline at end of file
+var _0xf3bb=['update','delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceDialReport.controller','get','isAuthenticated','index','/describe','/:id','show','create','put'];(function(_0x3ae93c,_0x579d7e){var _0xe06f19=function(_0x28a375){while(--_0x28a375){_0x3ae93c['push'](_0x3ae93c['shift']());}};_0xe06f19(++_0x579d7e);}(_0xf3bb,0x129));var _0xbf3b=function(_0x4e26ef,_0x1a3002){_0x4e26ef=_0x4e26ef-0x0;var _0x20a18b=_0xf3bb[_0x4e26ef];return _0x20a18b;};'use strict';var multer=require(_0xbf3b('0x0'));var util=require(_0xbf3b('0x1'));var path=require(_0xbf3b('0x2'));var timeout=require(_0xbf3b('0x3'));var express=require(_0xbf3b('0x4'));var router=express[_0xbf3b('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xbf3b('0x6'));var interaction=require(_0xbf3b('0x7'));var config=require(_0xbf3b('0x8'));var controller=require(_0xbf3b('0x9'));router[_0xbf3b('0xa')]('/',auth[_0xbf3b('0xb')](),controller[_0xbf3b('0xc')]);router[_0xbf3b('0xa')](_0xbf3b('0xd'),auth[_0xbf3b('0xb')](),controller['describe']);router[_0xbf3b('0xa')](_0xbf3b('0xe'),auth[_0xbf3b('0xb')](),controller[_0xbf3b('0xf')]);router['post']('/',auth[_0xbf3b('0xb')](),controller[_0xbf3b('0x10')]);router[_0xbf3b('0x11')](_0xbf3b('0xe'),auth[_0xbf3b('0xb')](),controller[_0xbf3b('0x12')]);router[_0xbf3b('0x13')](_0xbf3b('0xe'),auth[_0xbf3b('0xb')](),controller['destroy']);module[_0xbf3b('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d0e=['INTEGER','DATE','called,connect,complete','sequelize','exports','STRING'];(function(_0x3a84ac,_0x3e1a0a){var _0x3a7c1f=function(_0x54db98){while(--_0x54db98){_0x3a84ac['push'](_0x3a84ac['shift']());}};_0x3a7c1f(++_0x3e1a0a);}(_0x8d0e,0x1d7));var _0xe8d0=function(_0x295ee1,_0x27495a){_0x295ee1=_0x295ee1-0x0;var _0x790e8c=_0x8d0e[_0x295ee1];return _0x790e8c;};'use strict';var Sequelize=require(_0xe8d0('0x0'));module[_0xe8d0('0x1')]={'privilege':{'type':Sequelize[_0xe8d0('0x2')]},'channel':{'type':Sequelize[_0xe8d0('0x2')]},'channelstate':{'type':Sequelize[_0xe8d0('0x3')]},'channelstatedesc':{'type':Sequelize[_0xe8d0('0x2')]},'calleridnum':{'type':Sequelize[_0xe8d0('0x2')]},'calleridname':{'type':Sequelize[_0xe8d0('0x2')]},'connectedlinenum':{'type':Sequelize[_0xe8d0('0x2')]},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xe8d0('0x2')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xe8d0('0x2')]},'priority':{'type':Sequelize[_0xe8d0('0x3')]},'uniqueid':{'type':Sequelize[_0xe8d0('0x2')]},'linkedid':{'type':Sequelize[_0xe8d0('0x2')]},'destchannel':{'type':Sequelize[_0xe8d0('0x2')]},'destchannelstate':{'type':Sequelize[_0xe8d0('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0xe8d0('0x2')]},'destcalleridnum':{'type':Sequelize[_0xe8d0('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0xe8d0('0x2')]},'destconnectedlinename':{'type':Sequelize[_0xe8d0('0x2')]},'destlanguage':{'type':Sequelize[_0xe8d0('0x2')]},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize[_0xe8d0('0x2')]},'destpriority':{'type':Sequelize[_0xe8d0('0x3')]},'destuniqueid':{'type':Sequelize[_0xe8d0('0x2')]},'destlinkedid':{'type':Sequelize[_0xe8d0('0x2')]},'dialstring':{'type':Sequelize[_0xe8d0('0x2')]},'dialstatus':{'type':Sequelize[_0xe8d0('0x2')]},'starttime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize[_0xe8d0('0x4')]},'endtime':{'type':Sequelize[_0xe8d0('0x4')]},'lastevent':{'type':Sequelize['STRING'],'comment':_0xe8d0('0x5')},'routeId':{'type':Sequelize['INTEGER']},'duration':{'type':Sequelize['INTEGER']},'holdtime':{'type':Sequelize[_0xe8d0('0x3')]},'billableseconds':{'type':Sequelize[_0xe8d0('0x3')]}};
\ No newline at end of file
+var _0x9f62=['exports','STRING','INTEGER','DATE','called,connect,complete'];(function(_0x3b150c,_0x2f93f8){var _0x5cd414=function(_0x26305e){while(--_0x26305e){_0x3b150c['push'](_0x3b150c['shift']());}};_0x5cd414(++_0x2f93f8);}(_0x9f62,0x154));var _0x29f6=function(_0x2215d8,_0x5ad9d3){_0x2215d8=_0x2215d8-0x0;var _0x1d9374=_0x9f62[_0x2215d8];return _0x1d9374;};'use strict';var Sequelize=require('sequelize');module[_0x29f6('0x0')]={'privilege':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x29f6('0x1')]},'channelstate':{'type':Sequelize[_0x29f6('0x2')]},'channelstatedesc':{'type':Sequelize[_0x29f6('0x1')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x29f6('0x1')]},'connectedlinename':{'type':Sequelize[_0x29f6('0x1')]},'language':{'type':Sequelize[_0x29f6('0x1')]},'accountcode':{'type':Sequelize[_0x29f6('0x1')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x29f6('0x1')]},'priority':{'type':Sequelize[_0x29f6('0x2')]},'uniqueid':{'type':Sequelize[_0x29f6('0x1')]},'linkedid':{'type':Sequelize[_0x29f6('0x1')]},'destchannel':{'type':Sequelize[_0x29f6('0x1')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x29f6('0x1')]},'destconnectedlinename':{'type':Sequelize[_0x29f6('0x1')]},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0x29f6('0x1')]},'destexten':{'type':Sequelize[_0x29f6('0x1')]},'destpriority':{'type':Sequelize['INTEGER']},'destuniqueid':{'type':Sequelize[_0x29f6('0x1')]},'destlinkedid':{'type':Sequelize[_0x29f6('0x1')]},'dialstring':{'type':Sequelize['STRING']},'dialstatus':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x29f6('0x3')]},'lastevent':{'type':Sequelize[_0x29f6('0x1')],'comment':_0x29f6('0x4')},'routeId':{'type':Sequelize[_0x29f6('0x2')]},'duration':{'type':Sequelize[_0x29f6('0x2')]},'holdtime':{'type':Sequelize[_0x29f6('0x2')]},'billableseconds':{'type':Sequelize[_0x29f6('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20c6=['moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','undefined','count','offset','limit','status','set','Content-Range','json','reject','save','update','then','error','stack','name','send','index','map','VoiceDialReport','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','where','filter','type','VIRTUAL','options','findAll','rows','catch','show','includeAll','include','find','create','body','params','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x4ca288,_0x254dd8){var _0x2362c1=function(_0x5504d8){while(--_0x5504d8){_0x4ca288['push'](_0x4ca288['shift']());}};_0x2362c1(++_0x254dd8);}(_0x20c6,0x1db));var _0x620c=function(_0x37f2df,_0x3e4ade){_0x37f2df=_0x37f2df-0x0;var _0x54465c=_0x20c6[_0x37f2df];return _0x54465c;};'use strict';var emlformat=require(_0x620c('0x0'));var rimraf=require(_0x620c('0x1'));var zipdir=require(_0x620c('0x2'));var jsonpatch=require(_0x620c('0x3'));var rp=require(_0x620c('0x4'));var moment=require(_0x620c('0x5'));var BPromise=require(_0x620c('0x6'));var Mustache=require(_0x620c('0x7'));var util=require(_0x620c('0x8'));var path=require(_0x620c('0x9'));var sox=require(_0x620c('0xa'));var csv=require(_0x620c('0xb'));var ejs=require(_0x620c('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x620c('0xd'));var squel=require(_0x620c('0xe'));var crypto=require(_0x620c('0xf'));var jsforce=require(_0x620c('0x10'));var deskjs=require(_0x620c('0x11'));var toCsv=require(_0x620c('0xb'));var querystring=require(_0x620c('0x12'));var Papa=require('papaparse');var Redis=require(_0x620c('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x620c('0x14'));var as=require(_0x620c('0x15'));var hardwareService=require(_0x620c('0x16'));var logger=require(_0x620c('0x17'))(_0x620c('0x18'));var utils=require('../../config/utils');var config=require(_0x620c('0x19'));var licenseUtil=require(_0x620c('0x1a'));var db=require(_0x620c('0x1b'))['db'];function respondWithStatusCode(_0x288e50,_0x1200a7){_0x1200a7=_0x1200a7||0xcc;return function(_0x592ec6){if(_0x592ec6){return _0x288e50[_0x620c('0x1c')](_0x1200a7);}return _0x288e50['status'](_0x1200a7)[_0x620c('0x1d')]();};}function respondWithResult(_0x3db641,_0x1a4b32){_0x1a4b32=_0x1a4b32||0xc8;return function(_0x3276c5){if(_0x3276c5){return _0x3db641['status'](_0x1a4b32)['json'](_0x3276c5);}};}function respondWithFilteredResult(_0x5048eb,_0x473664){return function(_0x12ea0c){if(_0x12ea0c){var _0x37730c=typeof _0x473664['offset']==='undefined'&&typeof _0x473664['limit']===_0x620c('0x1e');var _0x4a5718=_0x12ea0c[_0x620c('0x1f')];var _0xebada3=_0x37730c?0x0:_0x473664[_0x620c('0x20')];var _0x2bb8ae=_0x37730c?_0x12ea0c['count']:_0x473664[_0x620c('0x20')]+_0x473664[_0x620c('0x21')];var _0x88179e;if(_0x2bb8ae>=_0x4a5718){_0x2bb8ae=_0x4a5718;_0x88179e=0xc8;}else{_0x88179e=0xce;}_0x5048eb[_0x620c('0x22')](_0x88179e);return _0x5048eb[_0x620c('0x23')](_0x620c('0x24'),_0xebada3+'-'+_0x2bb8ae+'/'+_0x4a5718)[_0x620c('0x25')](_0x12ea0c);}return null;};}function patchUpdates(_0x56f936){return function(_0x10bccf){try{jsonpatch['apply'](_0x10bccf,_0x56f936,!![]);}catch(_0x510000){return BPromise[_0x620c('0x26')](_0x510000);}return _0x10bccf[_0x620c('0x27')]();};}function saveUpdates(_0x51b9f7,_0x5e06ca){return function(_0x45400f){if(_0x45400f){return _0x45400f[_0x620c('0x28')](_0x51b9f7)[_0x620c('0x29')](function(_0x1a7bfa){return _0x1a7bfa;});}return null;};}function removeEntity(_0x21dc6a,_0x5e8c54){return function(_0x4dab42){if(_0x4dab42){return _0x4dab42['destroy']()[_0x620c('0x29')](function(){_0x21dc6a['status'](0xcc)[_0x620c('0x1d')]();});}};}function handleEntityNotFound(_0x684f21,_0x468ade){return function(_0x56d720){if(!_0x56d720){_0x684f21[_0x620c('0x1c')](0x194);}return _0x56d720;};}function handleError(_0x25f0b8,_0x574d7e){_0x574d7e=_0x574d7e||0x1f4;return function(_0x313fd4){logger[_0x620c('0x2a')](_0x313fd4[_0x620c('0x2b')]);if(_0x313fd4[_0x620c('0x2c')]){delete _0x313fd4[_0x620c('0x2c')];}_0x25f0b8[_0x620c('0x22')](_0x574d7e)[_0x620c('0x2d')](_0x313fd4);};}exports[_0x620c('0x2e')]=function(_0x20d790,_0x380a9b){var _0x3f0d25={},_0x2a778f={},_0x23893e={'count':0x0,'rows':[]};var _0x467f49=_[_0x620c('0x2f')](db[_0x620c('0x30')][_0x620c('0x31')],function(_0x38766b){return{'name':_0x38766b[_0x620c('0x32')],'type':_0x38766b['type'][_0x620c('0x33')]};});_0x2a778f['model']=_[_0x620c('0x2f')](_0x467f49,_0x620c('0x2c'));_0x2a778f[_0x620c('0x34')]=_[_0x620c('0x35')](_0x20d790[_0x620c('0x34')]);_0x2a778f[_0x620c('0x36')]=_[_0x620c('0x37')](_0x2a778f[_0x620c('0x38')],_0x2a778f[_0x620c('0x34')]);_0x3f0d25[_0x620c('0x39')]=_[_0x620c('0x37')](_0x2a778f[_0x620c('0x38')],qs[_0x620c('0x3a')](_0x20d790[_0x620c('0x34')][_0x620c('0x3a')]));_0x3f0d25['attributes']=_0x3f0d25['attributes'][_0x620c('0x3b')]?_0x3f0d25[_0x620c('0x39')]:_0x2a778f['model'];if(!_0x20d790[_0x620c('0x34')][_0x620c('0x3c')](_0x620c('0x3d'))){_0x3f0d25[_0x620c('0x21')]=qs[_0x620c('0x21')](_0x20d790[_0x620c('0x34')][_0x620c('0x21')]);_0x3f0d25[_0x620c('0x20')]=qs[_0x620c('0x20')](_0x20d790['query']['offset']);}_0x3f0d25[_0x620c('0x3e')]=qs['sort'](_0x20d790[_0x620c('0x34')]['sort']);_0x3f0d25[_0x620c('0x3f')]=qs[_0x620c('0x36')](_['pick'](_0x20d790[_0x620c('0x34')],_0x2a778f['filters']),_0x467f49);if(_0x20d790[_0x620c('0x34')][_0x620c('0x40')]){_0x3f0d25['where']=_['merge'](_0x3f0d25[_0x620c('0x3f')],{'$or':_[_0x620c('0x2f')](_0x467f49,function(_0x3c9ed0){if(_0x3c9ed0[_0x620c('0x41')]!==_0x620c('0x42')){var _0x474405={};_0x474405[_0x3c9ed0[_0x620c('0x2c')]]={'$like':'%'+_0x20d790[_0x620c('0x34')][_0x620c('0x40')]+'%'};return _0x474405;}})});}_0x3f0d25=_['merge']({},_0x3f0d25,_0x20d790[_0x620c('0x43')]);var _0x50afeb={'where':_0x3f0d25[_0x620c('0x3f')]};return db['VoiceDialReport'][_0x620c('0x1f')](_0x50afeb)[_0x620c('0x29')](function(_0x4b46b3){_0x23893e['count']=_0x4b46b3;if(_0x20d790[_0x620c('0x34')]['includeAll']){_0x3f0d25['include']=[{'all':!![]}];}return db[_0x620c('0x30')][_0x620c('0x44')](_0x3f0d25);})[_0x620c('0x29')](function(_0x550e3f){_0x23893e[_0x620c('0x45')]=_0x550e3f;return _0x23893e;})['then'](respondWithFilteredResult(_0x380a9b,_0x3f0d25))[_0x620c('0x46')](handleError(_0x380a9b,null));};exports[_0x620c('0x47')]=function(_0xcb1969,_0x1b7e66){var _0x586475={'raw':!![],'where':{'id':_0xcb1969['params']['id']}},_0x23cb4d={};_0x23cb4d['model']=_['keys'](db[_0x620c('0x30')][_0x620c('0x31')]);_0x23cb4d[_0x620c('0x34')]=_[_0x620c('0x35')](_0xcb1969[_0x620c('0x34')]);_0x23cb4d[_0x620c('0x36')]=_[_0x620c('0x37')](_0x23cb4d[_0x620c('0x38')],_0x23cb4d['query']);_0x586475[_0x620c('0x39')]=_[_0x620c('0x37')](_0x23cb4d['model'],qs[_0x620c('0x3a')](_0xcb1969[_0x620c('0x34')][_0x620c('0x3a')]));_0x586475[_0x620c('0x39')]=_0x586475['attributes'][_0x620c('0x3b')]?_0x586475[_0x620c('0x39')]:_0x23cb4d[_0x620c('0x38')];if(_0xcb1969[_0x620c('0x34')][_0x620c('0x48')]){_0x586475[_0x620c('0x49')]=[{'all':!![]}];}_0x586475=_['merge']({},_0x586475,_0xcb1969[_0x620c('0x43')]);return db[_0x620c('0x30')][_0x620c('0x4a')](_0x586475)[_0x620c('0x29')](handleEntityNotFound(_0x1b7e66,null))['then'](respondWithResult(_0x1b7e66,null))[_0x620c('0x46')](handleError(_0x1b7e66,null));};exports['create']=function(_0x31b425,_0x1dea47){return db[_0x620c('0x30')][_0x620c('0x4b')](_0x31b425[_0x620c('0x4c')],{})[_0x620c('0x29')](respondWithResult(_0x1dea47,0xc9))[_0x620c('0x46')](handleError(_0x1dea47,null));};exports['update']=function(_0x506e82,_0x4d805f){if(_0x506e82[_0x620c('0x4c')]['id']){delete _0x506e82[_0x620c('0x4c')]['id'];}return db['VoiceDialReport'][_0x620c('0x4a')]({'where':{'id':_0x506e82[_0x620c('0x4d')]['id']}})[_0x620c('0x29')](handleEntityNotFound(_0x4d805f,null))[_0x620c('0x29')](saveUpdates(_0x506e82[_0x620c('0x4c')],null))['then'](respondWithResult(_0x4d805f,null))['catch'](handleError(_0x4d805f,null));};exports[_0x620c('0x4e')]=function(_0x50d68d,_0x56c32c){return db['VoiceDialReport'][_0x620c('0x4a')]({'where':{'id':_0x50d68d[_0x620c('0x4d')]['id']}})[_0x620c('0x29')](handleEntityNotFound(_0x56c32c,null))[_0x620c('0x29')](removeEntity(_0x56c32c,null))[_0x620c('0x46')](handleError(_0x56c32c,null));};exports['describe']=function(_0x372713,_0x2ebba0){return db[_0x620c('0x30')][_0x620c('0x4f')]()[_0x620c('0x29')](respondWithResult(_0x2ebba0,null))[_0x620c('0x46')](handleError(_0x2ebba0,null));};
\ No newline at end of file
+var _0x51e3=['api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','count','limit','set','reject','save','then','destroy','end','stack','name','send','index','rawAttributes','type','map','keys','query','filters','model','attributes','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VoiceDialReport','includeAll','include','rows','show','params','intersection','length','find','create','body','catch','update','describe','eml-format','fast-json-patch','request-promise','moment','util','path','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger'];(function(_0x212bf5,_0x165cbd){var _0xfcad21=function(_0x4a4e6e){while(--_0x4a4e6e){_0x212bf5['push'](_0x212bf5['shift']());}};_0xfcad21(++_0x165cbd);}(_0x51e3,0x1d2));var _0x351e=function(_0x1d5c06,_0x53fdc0){_0x1d5c06=_0x1d5c06-0x0;var _0xaedef8=_0x51e3[_0x1d5c06];return _0xaedef8;};'use strict';var emlformat=require(_0x351e('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x351e('0x1'));var rp=require(_0x351e('0x2'));var moment=require(_0x351e('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x351e('0x4'));var path=require(_0x351e('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x351e('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x351e('0x7'));var squel=require(_0x351e('0x8'));var crypto=require(_0x351e('0x9'));var jsforce=require(_0x351e('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x351e('0xb'));var querystring=require(_0x351e('0xc'));var Papa=require(_0x351e('0xd'));var Redis=require('ioredis');var authService=require(_0x351e('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x351e('0xf'));var logger=require(_0x351e('0x10'))(_0x351e('0x11'));var utils=require(_0x351e('0x12'));var config=require(_0x351e('0x13'));var licenseUtil=require(_0x351e('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2fdb1c,_0x374b0b){_0x374b0b=_0x374b0b||0xcc;return function(_0x5774ec){if(_0x5774ec){return _0x2fdb1c[_0x351e('0x15')](_0x374b0b);}return _0x2fdb1c[_0x351e('0x16')](_0x374b0b)['end']();};}function respondWithResult(_0x4c9acc,_0x5bf56b){_0x5bf56b=_0x5bf56b||0xc8;return function(_0x3841e9){if(_0x3841e9){return _0x4c9acc['status'](_0x5bf56b)[_0x351e('0x17')](_0x3841e9);}};}function respondWithFilteredResult(_0x40e6e8,_0x5be93a){return function(_0x3c8219){if(_0x3c8219){var _0x1b835f=typeof _0x5be93a[_0x351e('0x18')]==='undefined'&&typeof _0x5be93a['limit']==='undefined';var _0x38acb6=_0x3c8219['count'];var _0x23c080=_0x1b835f?0x0:_0x5be93a[_0x351e('0x18')];var _0x528653=_0x1b835f?_0x3c8219[_0x351e('0x19')]:_0x5be93a[_0x351e('0x18')]+_0x5be93a[_0x351e('0x1a')];var _0x20696f;if(_0x528653>=_0x38acb6){_0x528653=_0x38acb6;_0x20696f=0xc8;}else{_0x20696f=0xce;}_0x40e6e8[_0x351e('0x16')](_0x20696f);return _0x40e6e8[_0x351e('0x1b')]('Content-Range',_0x23c080+'-'+_0x528653+'/'+_0x38acb6)[_0x351e('0x17')](_0x3c8219);}return null;};}function patchUpdates(_0x2be9e0){return function(_0x467c73){try{jsonpatch['apply'](_0x467c73,_0x2be9e0,!![]);}catch(_0x38a01e){return BPromise[_0x351e('0x1c')](_0x38a01e);}return _0x467c73[_0x351e('0x1d')]();};}function saveUpdates(_0x114161,_0x43302d){return function(_0x3062cb){if(_0x3062cb){return _0x3062cb['update'](_0x114161)[_0x351e('0x1e')](function(_0x4c0f0b){return _0x4c0f0b;});}return null;};}function removeEntity(_0x5ad140,_0x3b47ce){return function(_0x443917){if(_0x443917){return _0x443917[_0x351e('0x1f')]()[_0x351e('0x1e')](function(){_0x5ad140[_0x351e('0x16')](0xcc)[_0x351e('0x20')]();});}};}function handleEntityNotFound(_0x17e7ae,_0x378cce){return function(_0x283513){if(!_0x283513){_0x17e7ae[_0x351e('0x15')](0x194);}return _0x283513;};}function handleError(_0x20a687,_0x396039){_0x396039=_0x396039||0x1f4;return function(_0x29eab0){logger['error'](_0x29eab0[_0x351e('0x21')]);if(_0x29eab0[_0x351e('0x22')]){delete _0x29eab0[_0x351e('0x22')];}_0x20a687[_0x351e('0x16')](_0x396039)[_0x351e('0x23')](_0x29eab0);};}exports[_0x351e('0x24')]=function(_0x5138e0,_0xed3d26){var _0x2bbc18={},_0x5bcaec={},_0x17ab94={'count':0x0,'rows':[]};var _0x125949=_['map'](db['VoiceDialReport'][_0x351e('0x25')],function(_0x3896d7){return{'name':_0x3896d7['fieldName'],'type':_0x3896d7[_0x351e('0x26')]['key']};});_0x5bcaec['model']=_[_0x351e('0x27')](_0x125949,'name');_0x5bcaec['query']=_[_0x351e('0x28')](_0x5138e0[_0x351e('0x29')]);_0x5bcaec[_0x351e('0x2a')]=_['intersection'](_0x5bcaec[_0x351e('0x2b')],_0x5bcaec[_0x351e('0x29')]);_0x2bbc18[_0x351e('0x2c')]=_['intersection'](_0x5bcaec[_0x351e('0x2b')],qs[_0x351e('0x2d')](_0x5138e0[_0x351e('0x29')][_0x351e('0x2d')]));_0x2bbc18[_0x351e('0x2c')]=_0x2bbc18['attributes']['length']?_0x2bbc18[_0x351e('0x2c')]:_0x5bcaec[_0x351e('0x2b')];if(!_0x5138e0[_0x351e('0x29')]['hasOwnProperty'](_0x351e('0x2e'))){_0x2bbc18['limit']=qs[_0x351e('0x1a')](_0x5138e0[_0x351e('0x29')][_0x351e('0x1a')]);_0x2bbc18['offset']=qs['offset'](_0x5138e0[_0x351e('0x29')]['offset']);}_0x2bbc18[_0x351e('0x2f')]=qs[_0x351e('0x30')](_0x5138e0[_0x351e('0x29')]['sort']);_0x2bbc18[_0x351e('0x31')]=qs[_0x351e('0x2a')](_[_0x351e('0x32')](_0x5138e0[_0x351e('0x29')],_0x5bcaec[_0x351e('0x2a')]),_0x125949);if(_0x5138e0[_0x351e('0x29')][_0x351e('0x33')]){_0x2bbc18[_0x351e('0x31')]=_[_0x351e('0x34')](_0x2bbc18['where'],{'$or':_[_0x351e('0x27')](_0x125949,function(_0x49de84){if(_0x49de84['type']!==_0x351e('0x35')){var _0x54e98a={};_0x54e98a[_0x49de84[_0x351e('0x22')]]={'$like':'%'+_0x5138e0['query'][_0x351e('0x33')]+'%'};return _0x54e98a;}})});}_0x2bbc18=_[_0x351e('0x34')]({},_0x2bbc18,_0x5138e0[_0x351e('0x36')]);var _0xef551c={'where':_0x2bbc18[_0x351e('0x31')]};return db[_0x351e('0x37')][_0x351e('0x19')](_0xef551c)[_0x351e('0x1e')](function(_0x23d900){_0x17ab94[_0x351e('0x19')]=_0x23d900;if(_0x5138e0['query'][_0x351e('0x38')]){_0x2bbc18[_0x351e('0x39')]=[{'all':!![]}];}return db[_0x351e('0x37')]['findAll'](_0x2bbc18);})[_0x351e('0x1e')](function(_0x959b98){_0x17ab94[_0x351e('0x3a')]=_0x959b98;return _0x17ab94;})[_0x351e('0x1e')](respondWithFilteredResult(_0xed3d26,_0x2bbc18))['catch'](handleError(_0xed3d26,null));};exports[_0x351e('0x3b')]=function(_0x2ab34a,_0x17f0cf){var _0x25a869={'raw':!![],'where':{'id':_0x2ab34a[_0x351e('0x3c')]['id']}},_0x2934d3={};_0x2934d3['model']=_[_0x351e('0x28')](db[_0x351e('0x37')]['rawAttributes']);_0x2934d3['query']=_[_0x351e('0x28')](_0x2ab34a[_0x351e('0x29')]);_0x2934d3[_0x351e('0x2a')]=_[_0x351e('0x3d')](_0x2934d3[_0x351e('0x2b')],_0x2934d3[_0x351e('0x29')]);_0x25a869[_0x351e('0x2c')]=_[_0x351e('0x3d')](_0x2934d3[_0x351e('0x2b')],qs['fields'](_0x2ab34a['query']['fields']));_0x25a869[_0x351e('0x2c')]=_0x25a869[_0x351e('0x2c')][_0x351e('0x3e')]?_0x25a869[_0x351e('0x2c')]:_0x2934d3[_0x351e('0x2b')];if(_0x2ab34a[_0x351e('0x29')][_0x351e('0x38')]){_0x25a869[_0x351e('0x39')]=[{'all':!![]}];}_0x25a869=_[_0x351e('0x34')]({},_0x25a869,_0x2ab34a[_0x351e('0x36')]);return db[_0x351e('0x37')][_0x351e('0x3f')](_0x25a869)[_0x351e('0x1e')](handleEntityNotFound(_0x17f0cf,null))[_0x351e('0x1e')](respondWithResult(_0x17f0cf,null))['catch'](handleError(_0x17f0cf,null));};exports[_0x351e('0x40')]=function(_0x3aa317,_0x44b8bb){return db[_0x351e('0x37')][_0x351e('0x40')](_0x3aa317[_0x351e('0x41')],{})[_0x351e('0x1e')](respondWithResult(_0x44b8bb,0xc9))[_0x351e('0x42')](handleError(_0x44b8bb,null));};exports[_0x351e('0x43')]=function(_0x2e4906,_0x3aae7d){if(_0x2e4906['body']['id']){delete _0x2e4906[_0x351e('0x41')]['id'];}return db[_0x351e('0x37')][_0x351e('0x3f')]({'where':{'id':_0x2e4906[_0x351e('0x3c')]['id']}})['then'](handleEntityNotFound(_0x3aae7d,null))['then'](saveUpdates(_0x2e4906[_0x351e('0x41')],null))[_0x351e('0x1e')](respondWithResult(_0x3aae7d,null))[_0x351e('0x42')](handleError(_0x3aae7d,null));};exports[_0x351e('0x1f')]=function(_0x46ebef,_0x460ba9){return db[_0x351e('0x37')][_0x351e('0x3f')]({'where':{'id':_0x46ebef[_0x351e('0x3c')]['id']}})[_0x351e('0x1e')](handleEntityNotFound(_0x460ba9,null))[_0x351e('0x1e')](removeEntity(_0x460ba9,null))['catch'](handleError(_0x460ba9,null));};exports[_0x351e('0x44')]=function(_0x500b5c,_0x4ff86a){return db['VoiceDialReport'][_0x351e('0x44')]()[_0x351e('0x1e')](respondWithResult(_0x4ff86a,null))['catch'](handleError(_0x4ff86a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe6a5=['rimraf','./voiceDialReport.attributes','exports','define','VoiceDialReport','report_dial','uniqueid','api','moment','bluebird','request-promise'];(function(_0x4bb66f,_0x3cd682){var _0xf2772f=function(_0x2e3698){while(--_0x2e3698){_0x4bb66f['push'](_0x4bb66f['shift']());}};_0xf2772f(++_0x3cd682);}(_0xe6a5,0x13b));var _0x5e6a=function(_0x3ff3ca,_0x365693){_0x3ff3ca=_0x3ff3ca-0x0;var _0x2550ca=_0xe6a5[_0x3ff3ca];return _0x2550ca;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x5e6a('0x0'));var moment=require(_0x5e6a('0x1'));var BPromise=require(_0x5e6a('0x2'));var rp=require(_0x5e6a('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5e6a('0x4'));var config=require('../../config/environment');var attributes=require(_0x5e6a('0x5'));module[_0x5e6a('0x6')]=function(_0x15db90,_0x346e04){return _0x15db90[_0x5e6a('0x7')](_0x5e6a('0x8'),attributes,{'tableName':_0x5e6a('0x9'),'paranoid':![],'indexes':[{'fields':[_0x5e6a('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xae6b=['bluebird','request-promise','path','rimraf','exports','define','VoiceDialReport','uniqueid','lodash','../../config/logger','api','moment'];(function(_0x1c42a4,_0x10a808){var _0x262461=function(_0x52f897){while(--_0x52f897){_0x1c42a4['push'](_0x1c42a4['shift']());}};_0x262461(++_0x10a808);}(_0xae6b,0x158));var _0xbae6=function(_0xf7bf02,_0x13da13){_0xf7bf02=_0xf7bf02-0x0;var _0x4f263f=_0xae6b[_0xf7bf02];return _0x4f263f;};'use strict';var _=require(_0xbae6('0x0'));var util=require('util');var logger=require(_0xbae6('0x1'))(_0xbae6('0x2'));var moment=require(_0xbae6('0x3'));var BPromise=require(_0xbae6('0x4'));var rp=require(_0xbae6('0x5'));var fs=require('fs');var path=require(_0xbae6('0x6'));var rimraf=require(_0xbae6('0x7'));var config=require('../../config/environment');var attributes=require('./voiceDialReport.attributes');module[_0xbae6('0x8')]=function(_0x47597b,_0x24e0ad){return _0x47597b[_0xbae6('0x9')](_0xbae6('0xa'),attributes,{'tableName':'report_dial','paranoid':![],'indexes':[{'fields':[_0xbae6('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b5a=['attributes','limit','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','create','body','options','raw','CreateVoiceDialReport','UpdateVoiceDialReport','VoiceDialReport','update','where'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x7b5a,0x10c));var _0xa7b5=function(_0x52e0ee,_0x52f7c1){_0x52e0ee=_0x52e0ee-0x0;var _0x32534c=_0x7b5a[_0x52e0ee];return _0x32534c;};'use strict';var _=require(_0xa7b5('0x0'));var util=require(_0xa7b5('0x1'));var moment=require(_0xa7b5('0x2'));var BPromise=require(_0xa7b5('0x3'));var rs=require(_0xa7b5('0x4'));var fs=require('fs');var Redis=require(_0xa7b5('0x5'));var db=require(_0xa7b5('0x6'))['db'];var utils=require(_0xa7b5('0x7'));var logger=require(_0xa7b5('0x8'))(_0xa7b5('0x9'));var config=require(_0xa7b5('0xa'));var jayson=require(_0xa7b5('0xb'));var client=jayson[_0xa7b5('0xc')][_0xa7b5('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x115670,_0x2514bf,_0x1329a0){return new BPromise(function(_0x2e1933,_0x584aea){return client[_0xa7b5('0xe')](_0x115670,_0x1329a0)[_0xa7b5('0xf')](function(_0x1497f1){logger[_0xa7b5('0x10')](_0xa7b5('0x11'),_0x2514bf,_0xa7b5('0x12'));logger[_0xa7b5('0x13')](_0xa7b5('0x14'),_0x2514bf,_0xa7b5('0x12'),JSON[_0xa7b5('0x15')](_0x1497f1));if(_0x1497f1['error']){if(_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x17')]===0x1f4){logger[_0xa7b5('0x16')](_0xa7b5('0x11'),_0x2514bf,_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x18')]);return _0x584aea(_0x1497f1['error'][_0xa7b5('0x18')]);}logger[_0xa7b5('0x16')](_0xa7b5('0x11'),_0x2514bf,_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x18')]);return _0x2e1933(_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x18')]);}else{logger[_0xa7b5('0x10')](_0xa7b5('0x11'),_0x2514bf,_0xa7b5('0x12'));_0x2e1933(_0x1497f1[_0xa7b5('0x19')][_0xa7b5('0x18')]);}})[_0xa7b5('0x1a')](function(_0x5585ad){logger[_0xa7b5('0x16')]('VoiceDialReport,\x20%s,\x20%s',_0x2514bf,_0x5585ad);_0x584aea(_0x5585ad);});});}exports['CreateVoiceDialReport']=function(_0x348c1a){var _0x409fb3=this;return new Promise(function(_0x561113,_0x4f52a0){return db['VoiceDialReport'][_0xa7b5('0x1b')](_0x348c1a[_0xa7b5('0x1c')],{'raw':_0x348c1a[_0xa7b5('0x1d')]?_0x348c1a[_0xa7b5('0x1d')][_0xa7b5('0x1e')]===undefined?!![]:![]:!![]})['then'](function(_0x56a1d1){logger['info'](_0xa7b5('0x1f'),_0x348c1a);logger['debug'](_0xa7b5('0x1f'),_0x348c1a,JSON['stringify'](_0x56a1d1));_0x561113(_0x56a1d1);})[_0xa7b5('0x1a')](function(_0x337626){logger[_0xa7b5('0x16')](_0xa7b5('0x1f'),_0x337626[_0xa7b5('0x18')],_0x348c1a);_0x4f52a0(_0x409fb3[_0xa7b5('0x16')](0x1f4,_0x337626[_0xa7b5('0x18')]));});});};exports[_0xa7b5('0x20')]=function(_0x550280){var _0x1e210d=this;return new Promise(function(_0x5048fb,_0x3a28af){return db[_0xa7b5('0x21')][_0xa7b5('0x22')](_0x550280[_0xa7b5('0x1c')],{'raw':_0x550280['options']?_0x550280['options'][_0xa7b5('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x550280[_0xa7b5('0x1d')]?_0x550280[_0xa7b5('0x1d')][_0xa7b5('0x23')]||null:null,'attributes':_0x550280[_0xa7b5('0x1d')]?_0x550280['options'][_0xa7b5('0x24')]||null:null,'limit':_0x550280[_0xa7b5('0x1d')]?_0x550280['options'][_0xa7b5('0x25')]||null:null})[_0xa7b5('0xf')](function(_0x47556e){logger[_0xa7b5('0x10')](_0xa7b5('0x20'),_0x550280);logger['debug'](_0xa7b5('0x20'),_0x550280,JSON['stringify'](_0x47556e));_0x5048fb(_0x47556e);})[_0xa7b5('0x1a')](function(_0x698378){logger['error']('UpdateVoiceDialReport',_0x698378[_0xa7b5('0x18')],_0x550280);_0x3a28af(_0x1e210d[_0xa7b5('0x16')](0x1f4,_0x698378[_0xa7b5('0x18')]));});});};
\ No newline at end of file
+var _0x2460=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','error','message','catch','CreateVoiceDialReport','create','options','raw','then','stringify','update','where','attributes','UpdateVoiceDialReport','moment','bluebird'];(function(_0x11261a,_0x1e66f9){var _0xa98b3b=function(_0x1fa535){while(--_0x1fa535){_0x11261a['push'](_0x11261a['shift']());}};_0xa98b3b(++_0x1e66f9);}(_0x2460,0xac));var _0x0246=function(_0x4b33dd,_0x2d64c0){_0x4b33dd=_0x4b33dd-0x0;var _0x579efe=_0x2460[_0x4b33dd];return _0x579efe;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x0246('0x0'));var BPromise=require(_0x0246('0x1'));var rs=require(_0x0246('0x2'));var fs=require('fs');var Redis=require(_0x0246('0x3'));var db=require(_0x0246('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x0246('0x5'))(_0x0246('0x6'));var config=require(_0x0246('0x7'));var jayson=require(_0x0246('0x8'));var client=jayson[_0x0246('0x9')][_0x0246('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x31398f,_0x2fbecb,_0x2591ba){return new BPromise(function(_0x560384,_0xef3990){return client[_0x0246('0xb')](_0x31398f,_0x2591ba)['then'](function(_0x25e360){logger[_0x0246('0xc')](_0x0246('0xd'),_0x2fbecb,_0x0246('0xe'));logger[_0x0246('0xf')]('VoiceDialReport,\x20%s,\x20%s,\x20%s',_0x2fbecb,_0x0246('0xe'),JSON['stringify'](_0x25e360));if(_0x25e360[_0x0246('0x10')]){if(_0x25e360[_0x0246('0x10')]['code']===0x1f4){logger[_0x0246('0x10')](_0x0246('0xd'),_0x2fbecb,_0x25e360['error'][_0x0246('0x11')]);return _0xef3990(_0x25e360[_0x0246('0x10')][_0x0246('0x11')]);}logger[_0x0246('0x10')](_0x0246('0xd'),_0x2fbecb,_0x25e360['error'][_0x0246('0x11')]);return _0x560384(_0x25e360[_0x0246('0x10')]['message']);}else{logger['info'](_0x0246('0xd'),_0x2fbecb,_0x0246('0xe'));_0x560384(_0x25e360['result'][_0x0246('0x11')]);}})[_0x0246('0x12')](function(_0x12f8ea){logger[_0x0246('0x10')]('VoiceDialReport,\x20%s,\x20%s',_0x2fbecb,_0x12f8ea);_0xef3990(_0x12f8ea);});});}exports[_0x0246('0x13')]=function(_0x227212){var _0x5a8841=this;return new Promise(function(_0x2f45d8,_0x238b01){return db['VoiceDialReport'][_0x0246('0x14')](_0x227212['body'],{'raw':_0x227212[_0x0246('0x15')]?_0x227212['options'][_0x0246('0x16')]===undefined?!![]:![]:!![]})[_0x0246('0x17')](function(_0x536f82){logger[_0x0246('0xc')](_0x0246('0x13'),_0x227212);logger[_0x0246('0xf')](_0x0246('0x13'),_0x227212,JSON[_0x0246('0x18')](_0x536f82));_0x2f45d8(_0x536f82);})[_0x0246('0x12')](function(_0x14a00b){logger['error']('CreateVoiceDialReport',_0x14a00b[_0x0246('0x11')],_0x227212);_0x238b01(_0x5a8841[_0x0246('0x10')](0x1f4,_0x14a00b[_0x0246('0x11')]));});});};exports['UpdateVoiceDialReport']=function(_0x45c55e){var _0x402416=this;return new Promise(function(_0x5aa249,_0x3e1fb5){return db['VoiceDialReport'][_0x0246('0x19')](_0x45c55e['body'],{'raw':_0x45c55e[_0x0246('0x15')]?_0x45c55e['options'][_0x0246('0x16')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x45c55e['options']?_0x45c55e['options'][_0x0246('0x1a')]||null:null,'attributes':_0x45c55e[_0x0246('0x15')]?_0x45c55e[_0x0246('0x15')][_0x0246('0x1b')]||null:null,'limit':_0x45c55e[_0x0246('0x15')]?_0x45c55e[_0x0246('0x15')]['limit']||null:null})[_0x0246('0x17')](function(_0x546824){logger['info'](_0x0246('0x1c'),_0x45c55e);logger[_0x0246('0xf')]('UpdateVoiceDialReport',_0x45c55e,JSON[_0x0246('0x18')](_0x546824));_0x5aa249(_0x546824);})[_0x0246('0x12')](function(_0x3066fe){logger['error'](_0x0246('0x1c'),_0x3066fe[_0x0246('0x11')],_0x45c55e);_0x3e1fb5(_0x402416['error'](0x1f4,_0x3066fe['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1bf1=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceExtension.controller','index','get','/:id','isAuthenticated','show','post','/:id/applications','addApplications','delete','exports'];(function(_0x576f41,_0x5678d2){var _0x51f213=function(_0x4f5298){while(--_0x4f5298){_0x576f41['push'](_0x576f41['shift']());}};_0x51f213(++_0x5678d2);}(_0x1bf1,0x1b9));var _0x11bf=function(_0x5f2368,_0x29c539){_0x5f2368=_0x5f2368-0x0;var _0x11d9a3=_0x1bf1[_0x5f2368];return _0x11d9a3;};'use strict';var multer=require(_0x11bf('0x0'));var util=require(_0x11bf('0x1'));var path=require(_0x11bf('0x2'));var timeout=require(_0x11bf('0x3'));var express=require(_0x11bf('0x4'));var router=express[_0x11bf('0x5')]();var fs_extra=require(_0x11bf('0x6'));var auth=require(_0x11bf('0x7'));var interaction=require(_0x11bf('0x8'));var config=require(_0x11bf('0x9'));var controller=require(_0x11bf('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x11bf('0xb')]);router[_0x11bf('0xc')](_0x11bf('0xd'),auth[_0x11bf('0xe')](),controller[_0x11bf('0xf')]);router[_0x11bf('0x10')]('/',auth[_0x11bf('0xe')](),controller['create']);router['post'](_0x11bf('0x11'),auth[_0x11bf('0xe')](),controller[_0x11bf('0x12')]);router['put'](_0x11bf('0xd'),auth[_0x11bf('0xe')](),controller['update']);router[_0x11bf('0x13')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x11bf('0x14')]=router;
\ No newline at end of file
+var _0xb37e=['delete','destroy','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceExtension.controller','get','isAuthenticated','index','/:id','show','post','/:id/applications','addApplications','put','update'];(function(_0x3d131a,_0x2ee691){var _0x44c22d=function(_0xa7a9fe){while(--_0xa7a9fe){_0x3d131a['push'](_0x3d131a['shift']());}};_0x44c22d(++_0x2ee691);}(_0xb37e,0x1dd));var _0xeb37=function(_0xac0487,_0x5ea0a2){_0xac0487=_0xac0487-0x0;var _0x417aa5=_0xb37e[_0xac0487];return _0x417aa5;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xeb37('0x0'));var timeout=require(_0xeb37('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xeb37('0x2'));var auth=require(_0xeb37('0x3'));var interaction=require(_0xeb37('0x4'));var config=require(_0xeb37('0x5'));var controller=require(_0xeb37('0x6'));router[_0xeb37('0x7')]('/',auth[_0xeb37('0x8')](),controller[_0xeb37('0x9')]);router[_0xeb37('0x7')](_0xeb37('0xa'),auth['isAuthenticated'](),controller[_0xeb37('0xb')]);router['post']('/',auth[_0xeb37('0x8')](),controller['create']);router[_0xeb37('0xc')](_0xeb37('0xd'),auth[_0xeb37('0x8')](),controller[_0xeb37('0xe')]);router[_0xeb37('0xf')](_0xeb37('0xa'),auth[_0xeb37('0x8')](),controller[_0xeb37('0x10')]);router[_0xeb37('0x11')](_0xeb37('0xa'),auth[_0xeb37('0x8')](),controller[_0xeb37('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfab6=['inbound-fax','outbound-fax','system','any','BOOLEAN','INTEGER','wav','VIRTUAL','getDataValue','sequelize','exports','STRING','compositeIndex','NoOp','ENUM','inbound','outbound','internal'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfab6,0xab));var _0x6fab=function(_0x3ab9ee,_0x4a74b8){_0x3ab9ee=_0x3ab9ee-0x0;var _0x82ee88=_0xfab6[_0x3ab9ee];return _0x82ee88;};'use strict';var Sequelize=require(_0x6fab('0x0'));module[_0x6fab('0x1')]={'context':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'unique':_0x6fab('0x3'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'unique':'compositeIndex'},'priority':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'defaultValue':'1','unique':_0x6fab('0x3')},'tag':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x6fab('0x4')},'appdata':{'type':Sequelize['STRING'](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0x6fab('0x5')](_0x6fab('0x6'),_0x6fab('0x7'),_0x6fab('0x8'),_0x6fab('0x9'),_0x6fab('0xa'),_0x6fab('0xb'),_0x6fab('0xc')),'allowNull':![]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'defaultValue':'*,*,*,*'},'IntervalId':{'type':Sequelize['INTEGER']},'isApp':{'type':Sequelize[_0x6fab('0xd')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x6fab('0x2')],'defaultValue':null},'callerID':{'type':Sequelize['STRING'],'allowNull':!![]},'record':{'type':Sequelize[_0x6fab('0xd')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x6fab('0xe')]},'recordingFormat':{'type':Sequelize[_0x6fab('0x2')],'defaultValue':_0x6fab('0xf')},'answer':{'type':Sequelize[_0x6fab('0xd')],'defaultValue':!![]},'name':{'type':Sequelize[_0x6fab('0x10')],'get':function(_0x4f9755){return this[_0x6fab('0x11')]('exten');}},'alias':{'type':Sequelize[_0x6fab('0x2')],'allowNull':!![]}};
\ No newline at end of file
+var _0x9555=['INTEGER','BOOLEAN','getDataValue','sequelize','exports','STRING','compositeIndex','inbound','outbound','outbound-fax','system','any','*,*,*,*'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x9555,0x17c));var _0x5955=function(_0x329642,_0x5ef9a5){_0x329642=_0x329642-0x0;var _0x3d707c=_0x9555[_0x329642];return _0x3d707c;};'use strict';var Sequelize=require(_0x5955('0x0'));module[_0x5955('0x1')]={'context':{'type':Sequelize[_0x5955('0x2')],'allowNull':![],'unique':_0x5955('0x3'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0x5955('0x2')],'allowNull':![],'unique':_0x5955('0x3')},'priority':{'type':Sequelize[_0x5955('0x2')],'allowNull':![],'defaultValue':'1','unique':'compositeIndex'},'tag':{'type':Sequelize[_0x5955('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0x5955('0x2')],'allowNull':![],'defaultValue':'NoOp'},'appdata':{'type':Sequelize['STRING'](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize['ENUM'](_0x5955('0x4'),_0x5955('0x5'),'internal','inbound-fax',_0x5955('0x6'),_0x5955('0x7'),_0x5955('0x8')),'allowNull':![]},'description':{'type':Sequelize[_0x5955('0x2')]},'interval':{'type':Sequelize[_0x5955('0x2')],'allowNull':![],'defaultValue':_0x5955('0x9')},'IntervalId':{'type':Sequelize[_0x5955('0xa')]},'isApp':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize['STRING'],'defaultValue':null},'callerID':{'type':Sequelize[_0x5955('0x2')],'allowNull':!![]},'record':{'type':Sequelize[_0x5955('0xb')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x5955('0xa')]},'recordingFormat':{'type':Sequelize[_0x5955('0x2')],'defaultValue':'wav'},'answer':{'type':Sequelize[_0x5955('0xb')],'defaultValue':!![]},'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x11b79b){return this[_0x5955('0xc')]('exten');}},'alias':{'type':Sequelize['STRING'],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1519=['fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','VoiceExtension','includeAll','findAll','rows','catch','show','keys','intersection','create','body','outbound','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','OutboundRoutes','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','context','description','cutdigits','mandatoryDisposition','alias','sequelize','transaction','rewriteDial','toLowerCase','true','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','update','destroy','then','get','inbound','InternalRoutes','internal','filter','ignore','map','value','includes','type','find','name','UserProfileResource','error','send','index','rawAttributes','key','model','query','filters','attributes'];(function(_0x3d1253,_0x230512){var _0x47381b=function(_0x36471e){while(--_0x36471e){_0x3d1253['push'](_0x3d1253['shift']());}};_0x47381b(++_0x230512);}(_0x1519,0x1d5));var _0x9151=function(_0x35c088,_0x4c2fc5){_0x35c088=_0x35c088-0x0;var _0x6c36ee=_0x1519[_0x35c088];return _0x6c36ee;};'use strict';var emlformat=require(_0x9151('0x0'));var rimraf=require(_0x9151('0x1'));var zipdir=require(_0x9151('0x2'));var jsonpatch=require(_0x9151('0x3'));var rp=require('request-promise');var moment=require(_0x9151('0x4'));var BPromise=require(_0x9151('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x9151('0x6'));var ejs=require(_0x9151('0x7'));var fs=require('fs');var fs_extra=require(_0x9151('0x8'));var _=require(_0x9151('0x9'));var squel=require(_0x9151('0xa'));var crypto=require(_0x9151('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9151('0xc'));var Papa=require(_0x9151('0xd'));var Redis=require(_0x9151('0xe'));var authService=require(_0x9151('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9151('0x10'))(_0x9151('0x11'));var utils=require('../../config/utils');var config=require(_0x9151('0x12'));var licenseUtil=require(_0x9151('0x13'));var db=require('../../mysqldb')['db'];config[_0x9151('0x14')]=_[_0x9151('0x15')](config[_0x9151('0x14')],{'host':'localhost','port':0x18eb});var socket=require(_0x9151('0x16'))(new Redis(config[_0x9151('0x14')]));require(_0x9151('0x17'))[_0x9151('0x18')](socket);function respondWithStatusCode(_0xa181a0,_0x433e75){_0x433e75=_0x433e75||0xcc;return function(_0x3c4049){if(_0x3c4049){return _0xa181a0[_0x9151('0x19')](_0x433e75);}return _0xa181a0[_0x9151('0x1a')](_0x433e75)[_0x9151('0x1b')]();};}function respondWithResult(_0x2cf3fb,_0x43f1d5){_0x43f1d5=_0x43f1d5||0xc8;return function(_0x25adb2){if(_0x25adb2){return _0x2cf3fb[_0x9151('0x1a')](_0x43f1d5)[_0x9151('0x1c')](_0x25adb2);}};}function respondWithFilteredResult(_0x222b1d,_0xdf9e10){return function(_0x6bf51){if(_0x6bf51){var _0x5de367=typeof _0xdf9e10[_0x9151('0x1d')]===_0x9151('0x1e')&&typeof _0xdf9e10['limit']===_0x9151('0x1e');var _0x20eaec=_0x6bf51[_0x9151('0x1f')];var _0x42c539=_0x5de367?0x0:_0xdf9e10[_0x9151('0x1d')];var _0x4f44d5=_0x5de367?_0x6bf51[_0x9151('0x1f')]:_0xdf9e10[_0x9151('0x1d')]+_0xdf9e10[_0x9151('0x20')];var _0x439ffd;if(_0x4f44d5>=_0x20eaec){_0x4f44d5=_0x20eaec;_0x439ffd=0xc8;}else{_0x439ffd=0xce;}_0x222b1d['status'](_0x439ffd);return _0x222b1d['set'](_0x9151('0x21'),_0x42c539+'-'+_0x4f44d5+'/'+_0x20eaec)[_0x9151('0x1c')](_0x6bf51);}return null;};}function patchUpdates(_0x53e454){return function(_0x10192f){try{jsonpatch[_0x9151('0x22')](_0x10192f,_0x53e454,!![]);}catch(_0x355739){return BPromise[_0x9151('0x23')](_0x355739);}return _0x10192f['save']();};}function saveUpdates(_0x46852d,_0x26c6b3){return function(_0x45b406){if(_0x45b406){return _0x45b406[_0x9151('0x24')](_0x46852d)['then'](function(_0xc58152){return _0xc58152;});}return null;};}function removeEntity(_0x7d539c,_0x3d1d4e){return function(_0x674fc3){if(_0x674fc3){return _0x674fc3[_0x9151('0x25')]()[_0x9151('0x26')](function(){var _0x5bf12d=_0x674fc3[_0x9151('0x27')]({'plain':!![]});var _0x17053d=[{'name':'InboundRoutes','value':_0x9151('0x28'),'ignore':![]},{'name':'OutboundRoutes','value':'outbound','ignore':![]},{'name':_0x9151('0x29'),'value':_0x9151('0x2a'),'ignore':![]}];var _0x24cba7=_(_0x17053d)[_0x9151('0x2b')](_0x9151('0x2c'))[_0x9151('0x2d')](_0x9151('0x2e'))[_0x9151('0x2e')]();if(_[_0x9151('0x2f')](_0x24cba7,_0x5bf12d[_0x9151('0x30')])){return;}var _0x2c1398=_[_0x9151('0x31')](_0x17053d,[_0x9151('0x2e'),_0x5bf12d[_0x9151('0x30')]])[_0x9151('0x32')];return db[_0x9151('0x33')][_0x9151('0x25')]({'where':{'type':_0x2c1398,'resourceId':_0x5bf12d['id']}})['then'](function(){return _0x674fc3;});})['then'](function(){_0x7d539c[_0x9151('0x1a')](0xcc)[_0x9151('0x1b')]();});}};}function handleEntityNotFound(_0x415f0f,_0x1f0e0b){return function(_0x32135c){if(!_0x32135c){_0x415f0f['sendStatus'](0x194);}return _0x32135c;};}function handleError(_0x2e2811,_0xde09b5){_0xde09b5=_0xde09b5||0x1f4;return function(_0x2f0689){logger[_0x9151('0x34')](_0x2f0689['stack']);if(_0x2f0689[_0x9151('0x32')]){delete _0x2f0689[_0x9151('0x32')];}_0x2e2811['status'](_0xde09b5)[_0x9151('0x35')](_0x2f0689);};}exports[_0x9151('0x36')]=function(_0x10f398,_0xf6c9b3){var _0x3a0673={},_0x4842ec={},_0x13bb68={'count':0x0,'rows':[]};var _0x59f70f=_[_0x9151('0x2d')](db['VoiceExtension'][_0x9151('0x37')],function(_0x15d364){return{'name':_0x15d364['fieldName'],'type':_0x15d364[_0x9151('0x30')][_0x9151('0x38')]};});_0x4842ec[_0x9151('0x39')]=_[_0x9151('0x2d')](_0x59f70f,_0x9151('0x32'));_0x4842ec[_0x9151('0x3a')]=_['keys'](_0x10f398[_0x9151('0x3a')]);_0x4842ec[_0x9151('0x3b')]=_['intersection'](_0x4842ec[_0x9151('0x39')],_0x4842ec['query']);_0x3a0673[_0x9151('0x3c')]=_['intersection'](_0x4842ec[_0x9151('0x39')],qs['fields'](_0x10f398[_0x9151('0x3a')][_0x9151('0x3d')]));_0x3a0673['attributes']=_0x3a0673[_0x9151('0x3c')][_0x9151('0x3e')]?_0x3a0673['attributes']:_0x4842ec[_0x9151('0x39')];if(!_0x10f398[_0x9151('0x3a')][_0x9151('0x3f')](_0x9151('0x40'))){_0x3a0673[_0x9151('0x20')]=qs['limit'](_0x10f398[_0x9151('0x3a')][_0x9151('0x20')]);_0x3a0673[_0x9151('0x1d')]=qs[_0x9151('0x1d')](_0x10f398[_0x9151('0x3a')][_0x9151('0x1d')]);}_0x3a0673[_0x9151('0x41')]=qs[_0x9151('0x42')](_0x10f398[_0x9151('0x3a')][_0x9151('0x42')]);_0x3a0673[_0x9151('0x43')]=qs[_0x9151('0x3b')](_[_0x9151('0x44')](_0x10f398[_0x9151('0x3a')],_0x4842ec[_0x9151('0x3b')]),_0x59f70f);if(_0x10f398[_0x9151('0x3a')][_0x9151('0x2b')]){_0x3a0673[_0x9151('0x43')]=_[_0x9151('0x45')](_0x3a0673[_0x9151('0x43')],{'$or':_[_0x9151('0x2d')](_0x59f70f,function(_0x55bec7){if(_0x55bec7[_0x9151('0x30')]!==_0x9151('0x46')){var _0x2326ba={};_0x2326ba[_0x55bec7[_0x9151('0x32')]]={'$like':'%'+_0x10f398[_0x9151('0x3a')][_0x9151('0x2b')]+'%'};return _0x2326ba;}})});}_0x3a0673=_[_0x9151('0x45')]({},_0x3a0673,_0x10f398[_0x9151('0x47')]);var _0x436991={'where':_0x3a0673[_0x9151('0x43')]};return db[_0x9151('0x48')][_0x9151('0x1f')](_0x436991)['then'](function(_0xb9ba02){_0x13bb68[_0x9151('0x1f')]=_0xb9ba02;if(_0x10f398[_0x9151('0x3a')][_0x9151('0x49')]){_0x3a0673['include']=[{'all':!![]}];}return db[_0x9151('0x48')][_0x9151('0x4a')](_0x3a0673);})[_0x9151('0x26')](function(_0x54c535){_0x13bb68[_0x9151('0x4b')]=_0x54c535;return _0x13bb68;})[_0x9151('0x26')](respondWithFilteredResult(_0xf6c9b3,_0x3a0673))[_0x9151('0x4c')](handleError(_0xf6c9b3,null));};exports[_0x9151('0x4d')]=function(_0x26e81c,_0x477846){var _0x264478={'raw':![],'where':{'id':_0x26e81c['params']['id']}},_0x2da34d={};_0x2da34d[_0x9151('0x39')]=_[_0x9151('0x4e')](db[_0x9151('0x48')][_0x9151('0x37')]);_0x2da34d[_0x9151('0x3a')]=_[_0x9151('0x4e')](_0x26e81c[_0x9151('0x3a')]);_0x2da34d[_0x9151('0x3b')]=_[_0x9151('0x4f')](_0x2da34d[_0x9151('0x39')],_0x2da34d[_0x9151('0x3a')]);_0x264478[_0x9151('0x3c')]=_[_0x9151('0x4f')](_0x2da34d[_0x9151('0x39')],qs[_0x9151('0x3d')](_0x26e81c[_0x9151('0x3a')][_0x9151('0x3d')]));_0x264478[_0x9151('0x3c')]=_0x264478['attributes'][_0x9151('0x3e')]?_0x264478[_0x9151('0x3c')]:_0x2da34d['model'];if(_0x26e81c[_0x9151('0x3a')][_0x9151('0x49')]){_0x264478['include']=[{'all':!![]}];}_0x264478=_[_0x9151('0x45')]({},_0x264478,_0x26e81c[_0x9151('0x47')]);return db[_0x9151('0x48')][_0x9151('0x31')](_0x264478)[_0x9151('0x26')](handleEntityNotFound(_0x477846,null))[_0x9151('0x26')](respondWithResult(_0x477846,null))[_0x9151('0x4c')](handleError(_0x477846,null));};exports[_0x9151('0x25')]=function(_0xb55cdb,_0x449456){return db[_0x9151('0x48')]['find']({'where':{'id':_0xb55cdb['params']['id']}})['then'](handleEntityNotFound(_0x449456,null))['then'](removeEntity(_0x449456,null))[_0x9151('0x4c')](handleError(_0x449456,null));};exports[_0x9151('0x50')]=function(_0x39d8a2,_0x30cd29){if(_0x39d8a2[_0x9151('0x51')][_0x9151('0x30')]===_0x9151('0x52')&&!_['startsWith'](_0x39d8a2[_0x9151('0x51')][_0x9151('0x53')],'_')){_0x39d8a2[_0x9151('0x51')]['exten']='_'['concat'](_0x39d8a2[_0x9151('0x51')][_0x9151('0x53')]);}return db[_0x9151('0x48')][_0x9151('0x50')](_0x39d8a2[_0x9151('0x51')],{'raw':![]})['then'](function(_0x50354a){var _0x410d38=_0x39d8a2[_0x9151('0x54')][_0x9151('0x27')]({'plain':!![]});if(!_0x410d38)throw new Error(_0x9151('0x55'));if(_0x410d38['role']===_0x9151('0x54')){var _0x23d173=_0x50354a[_0x9151('0x27')]({'plain':!![]});var _0x13dd34=[{'name':'InboundRoutes','value':_0x9151('0x28')},{'name':_0x9151('0x56'),'value':_0x9151('0x52')},{'name':_0x9151('0x29'),'value':'internal'}];var _0x1315a3=_['find'](_0x13dd34,[_0x9151('0x2e'),_0x23d173[_0x9151('0x30')]])['name'];return db[_0x9151('0x57')]['find']({'where':{'name':_0x1315a3,'userProfileId':_0x410d38[_0x9151('0x58')]},'raw':!![]})[_0x9151('0x26')](function(_0x4cceb4){if(_0x4cceb4&&_0x4cceb4[_0x9151('0x59')]===0x0){return db['UserProfileResource'][_0x9151('0x50')]({'name':_0x23d173[_0x9151('0x32')],'resourceId':_0x23d173['id'],'type':_0x4cceb4[_0x9151('0x32')],'sectionId':_0x4cceb4['id']},{})['then'](function(){return _0x50354a;});}else{return _0x50354a;}})[_0x9151('0x4c')](function(_0x1e77fb){logger[_0x9151('0x34')](_0x9151('0x5a'),_0x1e77fb);throw _0x1e77fb;});}return _0x50354a;})[_0x9151('0x26')](respondWithResult(_0x30cd29,0xc9))[_0x9151('0x4c')](handleError(_0x30cd29,null));};exports[_0x9151('0x24')]=function(_0x3a7881,_0x1cf7b2){if(_0x3a7881[_0x9151('0x51')]['id']){delete _0x3a7881[_0x9151('0x51')]['id'];}return db[_0x9151('0x48')]['find']({'where':{'id':_0x3a7881[_0x9151('0x5b')]['id']}})[_0x9151('0x26')](handleEntityNotFound(_0x1cf7b2,null))['then'](function(_0x2e6b80){if(_0x2e6b80){return db['VoiceExtension'][_0x9151('0x24')](_[_0x9151('0x44')](_0x3a7881[_0x9151('0x51')],[_0x9151('0x53'),_0x9151('0x5c'),_0x9151('0x5d'),'recordingFormat',_0x9151('0x5e'),_0x9151('0x5f'),_0x9151('0x60')]),{'where':{'context':_0x2e6b80[_0x9151('0x5c')],'exten':_0x2e6b80['exten']},'individualHooks':!![]})[_0x9151('0x26')](function(_0x2fd3af){return _0x2fd3af;});}return null;})['then'](respondWithStatusCode(_0x1cf7b2,null))[_0x9151('0x4c')](handleError(_0x1cf7b2,null));};exports['addApplications']=function(_0x10ddf8,_0x5aac34){return db[_0x9151('0x48')]['findOne']({'where':{'id':_0x10ddf8[_0x9151('0x5b')]['id']}})['then'](function(_0x5d3e99){if(_0x5d3e99){return db[_0x9151('0x61')][_0x9151('0x62')](function(_0x41bdcc){return db[_0x9151('0x48')][_0x9151('0x25')]({'where':{'VoiceExtensionId':_0x10ddf8[_0x9151('0x5b')]['id']},'transaction':_0x41bdcc})[_0x9151('0x26')](function(){var _0x4f0a06=_[_0x9151('0x2d')](_0x10ddf8[_0x9151('0x51')],function(_0x3aadcd){_0x3aadcd['VoiceExtensionId']=_0x10ddf8['params']['id'];_0x3aadcd['isApp']=!![];return _0x3aadcd;});var _0x3c1b14=_0x10ddf8[_0x9151('0x3a')][_0x9151('0x63')]&&_0x10ddf8[_0x9151('0x3a')][_0x9151('0x63')][_0x9151('0x64')]()===_0x9151('0x65')?!![]:![];return _0x5d3e99[_0x9151('0x66')](_0x4f0a06,_0x3c1b14);})[_0x9151('0x26')](function(_0x379a8d){return db[_0x9151('0x48')][_0x9151('0x67')](_0x379a8d,{'transaction':_0x41bdcc});});})['then'](function(){return db[_0x9151('0x48')][_0x9151('0x68')]({'where':{'isApp':!![],'VoiceExtensionId':_0x10ddf8[_0x9151('0x5b')]['id']},'order':_0x9151('0x69')});});}})[_0x9151('0x26')](respondWithResult(_0x5aac34,null))[_0x9151('0x4c')](handleError(_0x5aac34,null));};
\ No newline at end of file
+var _0x8bc8=['VoiceExtensionId','isApp','createRouting','log','LOG\x20~\x20.then\x20~\x20routing','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','sendStatus','end','status','json','undefined','count','offset','limit','set','destroy','then','get','inbound','OutboundRoutes','InternalRoutes','internal','filter','map','value','type','UserProfileResource','error','stack','name','index','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','outbound','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','recordingFormat','cutdigits','alias','addApplications','sequelize','transaction'];(function(_0x5b6fde,_0x302b91){var _0x44847e=function(_0x5beaa3){while(--_0x5beaa3){_0x5b6fde['push'](_0x5b6fde['shift']());}};_0x44847e(++_0x302b91);}(_0x8bc8,0x1c0));var _0x88bc=function(_0x4c8812,_0xa9d102){_0x4c8812=_0x4c8812-0x0;var _0x42d129=_0x8bc8[_0x4c8812];return _0x42d129;};'use strict';var _=require('lodash');var Redis=require(_0x88bc('0x0'));var qs=require(_0x88bc('0x1'));var logger=require(_0x88bc('0x2'))(_0x88bc('0x3'));var config=require(_0x88bc('0x4'));var db=require('../../mysqldb')['db'];config[_0x88bc('0x5')]=_[_0x88bc('0x6')](config[_0x88bc('0x5')],{'host':_0x88bc('0x7'),'port':0x18eb});var socket=require(_0x88bc('0x8'))(new Redis(config[_0x88bc('0x5')]));require(_0x88bc('0x9'))['register'](socket);function respondWithStatusCode(_0x513867,_0xce299a){_0xce299a=_0xce299a||0xcc;return function(_0x63c072){if(_0x63c072){return _0x513867[_0x88bc('0xa')](_0xce299a);}return _0x513867['status'](_0xce299a)[_0x88bc('0xb')]();};}function respondWithResult(_0xa11133,_0xbfa2af){_0xbfa2af=_0xbfa2af||0xc8;return function(_0x1ed625){if(_0x1ed625){return _0xa11133[_0x88bc('0xc')](_0xbfa2af)[_0x88bc('0xd')](_0x1ed625);}};}function respondWithFilteredResult(_0x45adf5,_0x46dc6d){return function(_0x543466){if(_0x543466){var _0x65c809=typeof _0x46dc6d['offset']===_0x88bc('0xe')&&typeof _0x46dc6d['limit']===_0x88bc('0xe');var _0x53d9f5=_0x543466[_0x88bc('0xf')];var _0x26f72f=_0x65c809?0x0:_0x46dc6d[_0x88bc('0x10')];var _0xf1378c=_0x65c809?_0x543466[_0x88bc('0xf')]:_0x46dc6d['offset']+_0x46dc6d[_0x88bc('0x11')];var _0x42db9a;if(_0xf1378c>=_0x53d9f5){_0xf1378c=_0x53d9f5;_0x42db9a=0xc8;}else{_0x42db9a=0xce;}_0x45adf5[_0x88bc('0xc')](_0x42db9a);return _0x45adf5[_0x88bc('0x12')]('Content-Range',_0x26f72f+'-'+_0xf1378c+'/'+_0x53d9f5)[_0x88bc('0xd')](_0x543466);}return null;};}function removeEntity(_0x1aae0b){return function(_0x27085a){if(_0x27085a){return _0x27085a[_0x88bc('0x13')]()[_0x88bc('0x14')](function(){var _0x54cefa=_0x27085a[_0x88bc('0x15')]({'plain':!![]});var _0x843f20=[{'name':'InboundRoutes','value':_0x88bc('0x16'),'ignore':![]},{'name':_0x88bc('0x17'),'value':'outbound','ignore':![]},{'name':_0x88bc('0x18'),'value':_0x88bc('0x19'),'ignore':![]}];var _0x166236=_(_0x843f20)[_0x88bc('0x1a')]('ignore')[_0x88bc('0x1b')](_0x88bc('0x1c'))['value']();if(_['includes'](_0x166236,_0x54cefa[_0x88bc('0x1d')])){return;}var _0x328ae4=_['find'](_0x843f20,[_0x88bc('0x1c'),_0x54cefa[_0x88bc('0x1d')]])['name'];return db[_0x88bc('0x1e')][_0x88bc('0x13')]({'where':{'type':_0x328ae4,'resourceId':_0x54cefa['id']}})[_0x88bc('0x14')](function(){return _0x27085a;});})['then'](function(){_0x1aae0b[_0x88bc('0xc')](0xcc)[_0x88bc('0xb')]();});}};}function handleEntityNotFound(_0x10a61d){return function(_0x24899c){if(!_0x24899c){_0x10a61d[_0x88bc('0xa')](0x194);}return _0x24899c;};}function handleError(_0x3e0dc1,_0xe6d10d){_0xe6d10d=_0xe6d10d||0x1f4;return function(_0x5b87e8){logger[_0x88bc('0x1f')](_0x5b87e8[_0x88bc('0x20')]);if(_0x5b87e8[_0x88bc('0x21')]){delete _0x5b87e8[_0x88bc('0x21')];}_0x3e0dc1[_0x88bc('0xc')](_0xe6d10d)['send'](_0x5b87e8);};}exports[_0x88bc('0x22')]=function(_0x2d1ed7,_0x436af1){var _0x584551={},_0x42f5fb={},_0x3b198b={'count':0x0,'rows':[]};var _0x509511=_[_0x88bc('0x1b')](db[_0x88bc('0x23')][_0x88bc('0x24')],function(_0x25e5b7){return{'name':_0x25e5b7[_0x88bc('0x25')],'type':_0x25e5b7[_0x88bc('0x1d')][_0x88bc('0x26')]};});_0x42f5fb[_0x88bc('0x27')]=_[_0x88bc('0x1b')](_0x509511,_0x88bc('0x21'));_0x42f5fb[_0x88bc('0x28')]=_[_0x88bc('0x29')](_0x2d1ed7[_0x88bc('0x28')]);_0x42f5fb[_0x88bc('0x2a')]=_[_0x88bc('0x2b')](_0x42f5fb[_0x88bc('0x27')],_0x42f5fb[_0x88bc('0x28')]);_0x584551[_0x88bc('0x2c')]=_['intersection'](_0x42f5fb[_0x88bc('0x27')],qs['fields'](_0x2d1ed7[_0x88bc('0x28')][_0x88bc('0x2d')]));_0x584551[_0x88bc('0x2c')]=_0x584551[_0x88bc('0x2c')]['length']?_0x584551[_0x88bc('0x2c')]:_0x42f5fb['model'];if(!_0x2d1ed7[_0x88bc('0x28')]['hasOwnProperty'](_0x88bc('0x2e'))){_0x584551['limit']=qs[_0x88bc('0x11')](_0x2d1ed7['query'][_0x88bc('0x11')]);_0x584551['offset']=qs[_0x88bc('0x10')](_0x2d1ed7[_0x88bc('0x28')][_0x88bc('0x10')]);}_0x584551[_0x88bc('0x2f')]=qs[_0x88bc('0x30')](_0x2d1ed7[_0x88bc('0x28')][_0x88bc('0x30')]);_0x584551[_0x88bc('0x31')]=qs[_0x88bc('0x2a')](_[_0x88bc('0x32')](_0x2d1ed7[_0x88bc('0x28')],_0x42f5fb[_0x88bc('0x2a')]),_0x509511);if(_0x2d1ed7[_0x88bc('0x28')]['filter']){_0x584551[_0x88bc('0x31')]=_[_0x88bc('0x33')](_0x584551[_0x88bc('0x31')],{'$or':_[_0x88bc('0x1b')](_0x509511,function(_0x3eb6f0){if(_0x3eb6f0['type']!==_0x88bc('0x34')){var _0xb3d8c2={};_0xb3d8c2[_0x3eb6f0[_0x88bc('0x21')]]={'$like':'%'+_0x2d1ed7[_0x88bc('0x28')][_0x88bc('0x1a')]+'%'};return _0xb3d8c2;}})});}_0x584551=_[_0x88bc('0x33')]({},_0x584551,_0x2d1ed7[_0x88bc('0x35')]);var _0x284d8f={'where':_0x584551[_0x88bc('0x31')]};return db['VoiceExtension'][_0x88bc('0xf')](_0x284d8f)[_0x88bc('0x14')](function(_0x232bf1){_0x3b198b[_0x88bc('0xf')]=_0x232bf1;if(_0x2d1ed7['query'][_0x88bc('0x36')]){_0x584551[_0x88bc('0x37')]=[{'all':!![]}];}return db[_0x88bc('0x23')][_0x88bc('0x38')](_0x584551);})[_0x88bc('0x14')](function(_0x2ece9f){_0x3b198b[_0x88bc('0x39')]=_0x2ece9f;return _0x3b198b;})[_0x88bc('0x14')](respondWithFilteredResult(_0x436af1,_0x584551))[_0x88bc('0x3a')](handleError(_0x436af1,null));};exports[_0x88bc('0x3b')]=function(_0x4169b5,_0x362e2c){var _0x222a39={'raw':![],'where':{'id':_0x4169b5[_0x88bc('0x3c')]['id']}},_0x29cabc={};_0x29cabc[_0x88bc('0x27')]=_[_0x88bc('0x29')](db[_0x88bc('0x23')]['rawAttributes']);_0x29cabc[_0x88bc('0x28')]=_['keys'](_0x4169b5['query']);_0x29cabc['filters']=_['intersection'](_0x29cabc['model'],_0x29cabc[_0x88bc('0x28')]);_0x222a39[_0x88bc('0x2c')]=_[_0x88bc('0x2b')](_0x29cabc[_0x88bc('0x27')],qs[_0x88bc('0x2d')](_0x4169b5['query'][_0x88bc('0x2d')]));_0x222a39[_0x88bc('0x2c')]=_0x222a39[_0x88bc('0x2c')]['length']?_0x222a39['attributes']:_0x29cabc['model'];if(_0x4169b5[_0x88bc('0x28')][_0x88bc('0x36')]){_0x222a39[_0x88bc('0x37')]=[{'all':!![]}];}_0x222a39=_[_0x88bc('0x33')]({},_0x222a39,_0x4169b5[_0x88bc('0x35')]);return db[_0x88bc('0x23')][_0x88bc('0x3d')](_0x222a39)['then'](handleEntityNotFound(_0x362e2c,null))[_0x88bc('0x14')](respondWithResult(_0x362e2c,null))['catch'](handleError(_0x362e2c,null));};exports[_0x88bc('0x13')]=function(_0x1bf0a6,_0x2b3b06){return db[_0x88bc('0x23')]['find']({'where':{'id':_0x1bf0a6[_0x88bc('0x3c')]['id']}})['then'](handleEntityNotFound(_0x2b3b06,null))[_0x88bc('0x14')](removeEntity(_0x2b3b06,null))[_0x88bc('0x3a')](handleError(_0x2b3b06,null));};exports[_0x88bc('0x3e')]=function(_0x40bca6,_0x1c9f96){if(_0x40bca6[_0x88bc('0x3f')]['type']===_0x88bc('0x40')&&!_['startsWith'](_0x40bca6[_0x88bc('0x3f')][_0x88bc('0x41')],'_')){_0x40bca6[_0x88bc('0x3f')][_0x88bc('0x41')]='_'['concat'](_0x40bca6[_0x88bc('0x3f')]['exten']);}return db[_0x88bc('0x23')]['create'](_0x40bca6[_0x88bc('0x3f')],{'raw':![]})[_0x88bc('0x14')](function(_0x44e27f){var _0x25deb3=_0x40bca6[_0x88bc('0x42')][_0x88bc('0x15')]({'plain':!![]});if(!_0x25deb3)throw new Error(_0x88bc('0x43'));if(_0x25deb3[_0x88bc('0x44')]===_0x88bc('0x42')){var _0x37ce2f=_0x44e27f['get']({'plain':!![]});var _0x3a51bf=[{'name':'InboundRoutes','value':_0x88bc('0x16')},{'name':_0x88bc('0x17'),'value':_0x88bc('0x40')},{'name':_0x88bc('0x18'),'value':_0x88bc('0x19')}];var _0x7cad44=_[_0x88bc('0x3d')](_0x3a51bf,[_0x88bc('0x1c'),_0x37ce2f['type']])[_0x88bc('0x21')];return db[_0x88bc('0x45')]['find']({'where':{'name':_0x7cad44,'userProfileId':_0x25deb3['userProfileId']},'raw':!![]})[_0x88bc('0x14')](function(_0x5c2ba9){if(_0x5c2ba9&&_0x5c2ba9[_0x88bc('0x46')]===0x0){return db['UserProfileResource'][_0x88bc('0x3e')]({'name':_0x37ce2f[_0x88bc('0x21')],'resourceId':_0x37ce2f['id'],'type':_0x5c2ba9[_0x88bc('0x21')],'sectionId':_0x5c2ba9['id']},{})[_0x88bc('0x14')](function(){return _0x44e27f;});}else{return _0x44e27f;}})[_0x88bc('0x3a')](function(_0x567909){logger[_0x88bc('0x1f')](_0x88bc('0x47'),_0x567909);throw _0x567909;});}return _0x44e27f;})['then'](respondWithResult(_0x1c9f96,0xc9))[_0x88bc('0x3a')](handleError(_0x1c9f96,null));};exports[_0x88bc('0x48')]=function(_0xda00fb,_0x373167){if(_0xda00fb['body']['id']){delete _0xda00fb[_0x88bc('0x3f')]['id'];}return db['VoiceExtension'][_0x88bc('0x3d')]({'where':{'id':_0xda00fb[_0x88bc('0x3c')]['id']}})[_0x88bc('0x14')](handleEntityNotFound(_0x373167,null))[_0x88bc('0x14')](function(_0x1b9168){if(_0x1b9168){return db[_0x88bc('0x23')]['update'](_[_0x88bc('0x32')](_0xda00fb[_0x88bc('0x3f')],[_0x88bc('0x41'),_0x88bc('0x49'),'description',_0x88bc('0x4a'),_0x88bc('0x4b'),'mandatoryDisposition',_0x88bc('0x4c')]),{'where':{'context':_0x1b9168['context'],'exten':_0x1b9168[_0x88bc('0x41')]},'individualHooks':!![]})[_0x88bc('0x14')](function(_0x3d0bf4){return _0x3d0bf4;});}return null;})[_0x88bc('0x14')](respondWithStatusCode(_0x373167,null))[_0x88bc('0x3a')](handleError(_0x373167,null));};exports[_0x88bc('0x4d')]=function(_0x281c91,_0x3f3c72){return db[_0x88bc('0x23')]['findOne']({'where':{'id':_0x281c91[_0x88bc('0x3c')]['id']}})['then'](function(_0x1f50de){if(_0x1f50de){return db[_0x88bc('0x4e')][_0x88bc('0x4f')](function(_0x4c6f2e){return db[_0x88bc('0x23')]['destroy']({'where':{'VoiceExtensionId':_0x281c91[_0x88bc('0x3c')]['id']},'transaction':_0x4c6f2e})[_0x88bc('0x14')](function(){var _0x4bfaee=_[_0x88bc('0x1b')](_0x281c91[_0x88bc('0x3f')],function(_0x20fe4e){_0x20fe4e[_0x88bc('0x50')]=_0x281c91['params']['id'];_0x20fe4e[_0x88bc('0x51')]=!![];return _0x20fe4e;});return _0x1f50de[_0x88bc('0x52')](_0x4bfaee);})[_0x88bc('0x14')](function(_0x323981){console[_0x88bc('0x53')](_0x88bc('0x54'),_0x323981);return db[_0x88bc('0x23')][_0x88bc('0x55')](_0x323981,{'transaction':_0x4c6f2e});});})[_0x88bc('0x14')](function(){return db['VoiceExtension'][_0x88bc('0x56')]({'where':{'isApp':!![],'VoiceExtensionId':_0x281c91[_0x88bc('0x3c')]['id']},'order':_0x88bc('0x57')});});}})[_0x88bc('0x14')](respondWithResult(_0x3f3c72,null))['catch'](handleError(_0x3f3c72,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd444=['setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','VoiceExtension'];(function(_0x30abff,_0x5f2c5f){var _0x4c571e=function(_0x43de9a){while(--_0x43de9a){_0x30abff['push'](_0x30abff['shift']());}};_0x4c571e(++_0x5f2c5f);}(_0xd444,0x179));var _0x4d44=function(_0x487b0c,_0x14ff74){_0x487b0c=_0x487b0c-0x0;var _0x1adbdc=_0xd444[_0x487b0c];return _0x1adbdc;};'use strict';var EventEmitter=require(_0x4d44('0x0'));var VoiceExtension=require(_0x4d44('0x1'))['db'][_0x4d44('0x2')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0x4d44('0x3')](0x0);var events={'afterCreate':_0x4d44('0x4'),'afterUpdate':'update','afterDestroy':_0x4d44('0x5')};function emitEvent(_0x5012da){return function(_0x3bab04,_0x5be1ed,_0x16ea87){VoiceExtensionEvents[_0x4d44('0x6')](_0x5012da+':'+_0x3bab04['id'],_0x3bab04);VoiceExtensionEvents['emit'](_0x5012da,_0x3bab04);_0x16ea87(null);};}for(var e in events){if(events[_0x4d44('0x7')](e)){var event=events[e];VoiceExtension[_0x4d44('0x8')](e,emitEvent(event));}}module[_0x4d44('0x9')]=VoiceExtensionEvents;
\ No newline at end of file
+var _0x6745=['hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','update','remove','emit'];(function(_0x489e56,_0x2f2e37){var _0x1a1a12=function(_0x66b8d6){while(--_0x66b8d6){_0x489e56['push'](_0x489e56['shift']());}};_0x1a1a12(++_0x2f2e37);}(_0x6745,0x189));var _0x5674=function(_0x299454,_0x592058){_0x299454=_0x299454-0x0;var _0x4db61e=_0x6745[_0x299454];return _0x4db61e;};'use strict';var EventEmitter=require(_0x5674('0x0'));var VoiceExtension=require(_0x5674('0x1'))['db']['VoiceExtension'];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0x5674('0x2')](0x0);var events={'afterCreate':_0x5674('0x3'),'afterUpdate':_0x5674('0x4'),'afterDestroy':_0x5674('0x5')};function emitEvent(_0x14bd78){return function(_0x4d2190,_0x10bd44,_0x282826){VoiceExtensionEvents[_0x5674('0x6')](_0x14bd78+':'+_0x4d2190['id'],_0x4d2190);VoiceExtensionEvents[_0x5674('0x6')](_0x14bd78,_0x4d2190);_0x282826(null);};}for(var e in events){if(events[_0x5674('0x7')](e)){var event=events[e];VoiceExtension[_0x5674('0x8')](e,emitEvent(event));}}module[_0x5674('0x9')]=VoiceExtensionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c77=['${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','wav','timeout','options','url','trunk','param','phone','split','prefix','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','findAll','interval','IntervalId','then','length','*,*,*,*','intervals','toLowerCase','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','playback','app','appType','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','outboundDial','concat','last','priority','VoiceExtension','voice_extensions','Hangup','util','lodash','./voiceExtension.attributes','type','Set','CDR(type)=','context','exten','alias','NoOp','CDR(routeAlias)=','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','No\x20alias\x20set','CDR(destination)=','cutdigits'];(function(_0x378f75,_0x13a8ed){var _0x90addc=function(_0x3f4849){while(--_0x3f4849){_0x378f75['push'](_0x378f75['shift']());}};_0x90addc(++_0x13a8ed);}(_0x2c77,0x196));var _0x72c7=function(_0x5b6759,_0x11c2ee){_0x5b6759=_0x5b6759-0x0;var _0x339d49=_0x2c77[_0x5b6759];return _0x339d49;};'use strict';var util=require(_0x72c7('0x0'));var _=require(_0x72c7('0x1'));var attributes=require(_0x72c7('0x2'));module['exports']=function(_0x3df71b){var _0xcfa59c=_0x3df71b['models'];function _0x2fe903(_0x5392ad){var _0x1dba76=0x2;var _0x3fe366=[{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x72c7('0x4'),'appdata':_0x72c7('0x5')+_0x5392ad[_0x72c7('0x3')],'context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']},{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x5392ad[_0x72c7('0x8')]?_0x72c7('0x4'):_0x72c7('0x9'),'appdata':_0x5392ad[_0x72c7('0x8')]?_0x72c7('0xa')+_0x5392ad[_0x72c7('0x8')]:'No\x20alias\x20set','context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']}];if(_0x5392ad[_0x72c7('0x3')]===_0x72c7('0xb')){_0x3fe366[_0x72c7('0xc')]({'type':_0x72c7('0xb'),'app':_0x72c7('0x4'),'appdata':_0x72c7('0xd')+_0x5392ad['id'],'context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad['exten'],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']});}_0x3fe366[_0x72c7('0xc')]({'type':_0x5392ad['type'],'app':_0x72c7('0x4'),'appdata':_0x72c7('0xe'),'context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']},{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x72c7('0x4'),'appdata':_0x72c7('0xf'),'context':_0x5392ad['context'],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']},{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x72c7('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']});return _0x3fe366;}function _0x4636df(_0x53382d){var _0x14710f=0x2;var _0x1415d8=[{'type':_0x72c7('0x10'),'app':'Set','appdata':'CDR(type)=outbound','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x53382d[_0x72c7('0x8')]?_0x72c7('0x4'):_0x72c7('0x9'),'appdata':_0x53382d[_0x72c7('0x8')]?_0x72c7('0xa')+_0x53382d[_0x72c7('0x8')]:_0x72c7('0x11'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':'Set','appdata':_0x72c7('0x12')+(_0x53382d[_0x72c7('0x13')]?_0x72c7('0x14')+_0x53382d[_0x72c7('0x13')]+'}':_0x72c7('0x15')),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':_0x72c7('0xd')+_0x53382d['id'],'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x17')+(_0x14710f+0x2)+'):Goto('+(_0x14710f+0x1)+')','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':_0x53382d[_0x72c7('0x13')]?'CDR(prefix)=${EXTEN:0:'+_0x53382d['cutdigits']+'}':_0x72c7('0x18'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':_0x72c7('0x19'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':'Set','appdata':_0x72c7('0x1a')+_0x53382d['id'],'context':_0x53382d['context'],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']}];if(_0x53382d[_0x72c7('0x1b')](_0x72c7('0x1c'))&&_0x53382d['recordingFormat']!==_0x72c7('0x1d')){_0x1415d8[_0x72c7('0xc')]({'type':'outbound','app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x53382d['recordingFormat']||_0x72c7('0x1e'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']});}return _0x1415d8;}function _0x5e372b(_0x2c373d){var _0x37cb13=[{'name':'trunk','param':0x0},{'name':_0x72c7('0x1f'),'param':0x1},{'name':_0x72c7('0x20'),'param':0x2},{'name':_0x72c7('0x21'),'param':0x3}];var _0x3c0b62={};var _0x284c21=_0x2c373d['split'](',');var _0x49ac62=[];for(var _0x2b2a7b=0x0;_0x2b2a7b<_0x37cb13['length'];_0x2b2a7b++){switch(_0x37cb13[_0x2b2a7b]['name']){case'trunk':_0x3c0b62[_0x72c7('0x22')]=_0x284c21[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]['split']('/')[0x1];_0x3c0b62[_0x72c7('0x24')]=_0x284c21[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]][_0x72c7('0x25')]('/')[0x2];_0x3c0b62[_0x72c7('0x26')]=_0x3c0b62[_0x72c7('0x24')]?_0x3c0b62[_0x72c7('0x24')][_0x72c7('0x25')]('$')[0x0]:undefined;_0x3c0b62['phone']=route[_0x72c7('0x13')]?(_0x3c0b62[_0x72c7('0x26')]||'')+_0x72c7('0x14')+route[_0x72c7('0x13')]+'}':(_0x3c0b62['prefix']||'')+_0x72c7('0x15');_0x49ac62[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]=[_0x72c7('0x27'),_0x3c0b62[_0x72c7('0x22')],_0x3c0b62[_0x72c7('0x24')]][_0x72c7('0x28')]('/');break;case _0x72c7('0x20'):_0x3c0b62[_0x72c7('0x20')]=_0x284c21[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]];if(route['recordingFormat']!==_0x72c7('0x1d')){if(_0x3c0b62[_0x72c7('0x20')][_0x72c7('0x29')](_0x72c7('0x2a'))<0x0){_0x3c0b62[_0x72c7('0x20')]+=_0x72c7('0x2a');}}else{_0x3c0b62[_0x72c7('0x20')]=_0x3c0b62[_0x72c7('0x20')][_0x72c7('0x2b')](_0x72c7('0x2a'),'');}_0x49ac62[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]=_0x3c0b62[_0x72c7('0x20')];break;default:_0x49ac62[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]=_0x284c21[_0x37cb13[_0x2b2a7b]['param']];}}return _0x49ac62[_0x72c7('0x28')](',');}function _0x161679(_0xd06c5a,_0x50bb3b,_0xcb2b56,_0x4ddd18){return new Promise(function(_0x5b381c,_0x4399c3){var _0x4829b6=[];if(_['isEmpty'](_0x50bb3b))return _0x5b381c(_0x4829b6);_0xcfa59c['Interval'][_0x72c7('0x2c')]({'attributes':['id',_0x72c7('0x2d'),_0x72c7('0x2e')],'raw':!![]})[_0x72c7('0x2f')](function(_0xd1eb5d){for(var _0x3d2b7f=0x0,_0x1aa33c=0x0;_0x3d2b7f<_0x50bb3b[_0x72c7('0x30')];_0x3d2b7f++,_0x1aa33c=0x0){var _0xbc7e1e=_0x50bb3b[_0x3d2b7f];var _0x4c36bd=[];var _0x1957e0=[];if(_0xbc7e1e[_0x72c7('0x2d')]!==_0x72c7('0x31')){_0xbc7e1e[_0x72c7('0x32')]=[_0xbc7e1e[_0x72c7('0x2d')]];}else{_0xbc7e1e[_0x72c7('0x32')]=_0xbc7e1e[_0x72c7('0x2e')]?_['map'](_['filter'](_0xd1eb5d,{'IntervalId':_0xbc7e1e[_0x72c7('0x2e')]}),_0x72c7('0x2d')):[];}_0xbc7e1e[_0x72c7('0x6')]=_0xd06c5a[_0x72c7('0x6')];_0xbc7e1e[_0x72c7('0x7')]=_0xd06c5a[_0x72c7('0x7')];if(_0xbc7e1e[_0x72c7('0x3')])_0xbc7e1e[_0x72c7('0x3')]=_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')]();if(_0xd06c5a[_0x72c7('0x3')]===_0x72c7('0x10')){if(_0xbc7e1e[_0x72c7('0x1b')](_0x72c7('0x34'))&&_0xbc7e1e['tag']&&_0xbc7e1e[_0x72c7('0x34')]!=='--'){_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')](),'app':_0x72c7('0x4'),'appdata':'CDR(tag)='+_0xbc7e1e['tag'],'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e['intervals'][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e['type']['toLowerCase'](),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x35')+(_0xbc7e1e[_0x72c7('0x36')]?_0x72c7('0x37')+_0xbc7e1e[_0x72c7('0x36')]+')':_0x72c7('0x38')),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e['intervals'][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}else{if(_0xbc7e1e[_0x72c7('0x1b')]('answer')){if(['queue',_0x72c7('0x39')]['includes'](_0xbc7e1e[_0x72c7('0x3a')][_0x72c7('0x33')]())&&_0xbc7e1e[_0x72c7('0x3b')]!=='custom'){if(_0xbc7e1e['answer']){_0x4c36bd['push']({'type':_0xbc7e1e['type'][_0x72c7('0x33')](),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x3c'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a['exten'],'priority':_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')](),'app':_0x72c7('0x4'),'appdata':_0x72c7('0x3d'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a['exten'],'priority':_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}else{_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')](),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x3e'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e['intervals']['length']+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});_0x4c36bd['push']({'type':_0xbc7e1e['type'][_0x72c7('0x33')](),'app':_0x72c7('0x4'),'appdata':_0x72c7('0x3f'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}}}}for(var _0x5c3bdc=0x0;_0x5c3bdc<_0xbc7e1e[_0x72c7('0x32')]['length'];_0x5c3bdc++){var _0x5693ce=_0xcb2b56+_0xbc7e1e[_0x72c7('0x32')]['length'];var _0x42e009=_0x5c3bdc===_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]-0x1?_0xcb2b56+_0x4c36bd[_0x72c7('0x30')]+_0x1957e0[_0x72c7('0x30')]+0x2:_0xcb2b56+_0x5c3bdc+0x1;_0x4c36bd['splice'](_0x5c3bdc,0x0,{'type':_0xd06c5a[_0x72c7('0x3')],'app':'GotoIfTime','appdata':_0xbc7e1e[_0x72c7('0x32')][_0x5c3bdc]+'?'+_0xd06c5a[_0x72c7('0x6')]+',${EXTEN},'+_0x5693ce+':'+_0xd06c5a[_0x72c7('0x6')]+',${EXTEN},'+_0x42e009,'exten':_0xd06c5a[_0x72c7('0x7')],'context':_0xd06c5a[_0x72c7('0x6')],'priority':_0xcb2b56+_0x5c3bdc,'VoiceExtensionId':_0xd06c5a['id']});}if(_0x4ddd18&&_0xbc7e1e[_0x72c7('0x3b')]===_0x72c7('0x40'))_0xbc7e1e['appdata']=_0x5e372b(_0xbc7e1e['appdata']);_0xbc7e1e['priority']=_0x4c36bd[_0x72c7('0x30')]?_['last'](_0x4c36bd)['priority']+0x1:_0xcb2b56;_0x4829b6=_[_0x72c7('0x41')](_0x4829b6,_0x4c36bd,[_0xbc7e1e],_0x1957e0);_0xcb2b56=_[_0x72c7('0x42')](_0x4829b6)[_0x72c7('0x43')]+0x1;}return _0x5b381c(_0x4829b6);})['catch'](function(_0x2ac8f9){_0x4399c3(_0x2ac8f9);});});}return _0x3df71b['define'](_0x72c7('0x44'),attributes,{'tableName':_0x72c7('0x45'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x44870f,_0x5adf62){var _0x7550c8=this;var _0x137956=_0x7550c8[_0x72c7('0x3')]===_0x72c7('0x10')?_0x4636df(_0x7550c8):_0x2fe903(_0x7550c8);return _0x161679(_0x7550c8,_0x44870f,_[_0x72c7('0x42')](_0x137956)[_0x72c7('0x43')]+0x1,_0x5adf62)['then'](function(_0x1d1913){var _0x4ebbbe=_[_0x72c7('0x41')](_0x137956,_0x1d1913);_0x4ebbbe[_0x72c7('0xc')]({'type':_0x7550c8[_0x72c7('0x3')],'app':_0x72c7('0x46'),'exten':_0x7550c8[_0x72c7('0x7')],'context':_0x7550c8[_0x72c7('0x6')],'priority':_['last'](_0x4ebbbe)['priority']+0x1,'VoiceExtensionId':_0x7550c8['id']});return _0x4ebbbe;});}}});};
\ No newline at end of file
+var _0xb079=['U(xcally-mixmonitor-context)','replace','isEmpty','findAll','interval','IntervalId','then','*,*,*,*','intervals','map','filter','toLowerCase','tag','CDR(tag)=','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','playback','includes','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','priority','concat','last','catch','define','VoiceExtension','voice_extensions','get','Hangup','./voiceExtension.attributes','exports','models','type','Set','context','NoOp','alias','CDR(routeAlias)=','exten','inbound','push','CDR(routeid)=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','cutdigits','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-ANSWER=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','wav','trunk','timeout','url','split','length','name','phone','param','prefix','${EXTEN:','join','options','indexOf'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xb079,0x1c9));var _0x9b07=function(_0x47500c,_0x49602c){_0x47500c=_0x47500c-0x0;var _0x1d5b4d=_0xb079[_0x47500c];return _0x1d5b4d;};'use strict';var _=require('lodash');var attributes=require(_0x9b07('0x0'));module[_0x9b07('0x1')]=function(_0x447b2d){var _0x158a14=_0x447b2d[_0x9b07('0x2')];function _0x3c199c(_0x5dc42a){var _0x14a884=0x2;var _0x3bf703=[{'type':_0x5dc42a[_0x9b07('0x3')],'app':_0x9b07('0x4'),'appdata':'CDR(type)='+_0x5dc42a[_0x9b07('0x3')],'context':_0x5dc42a[_0x9b07('0x5')],'exten':_0x5dc42a['exten'],'priority':_0x14a884++,'VoiceExtensionId':_0x5dc42a['id']},{'type':_0x5dc42a[_0x9b07('0x3')],'app':_0x5dc42a['alias']?'Set':_0x9b07('0x6'),'appdata':_0x5dc42a[_0x9b07('0x7')]?_0x9b07('0x8')+_0x5dc42a[_0x9b07('0x7')]:'No\x20alias\x20set','context':_0x5dc42a[_0x9b07('0x5')],'exten':_0x5dc42a[_0x9b07('0x9')],'priority':_0x14a884++,'VoiceExtensionId':_0x5dc42a['id']}];if(_0x5dc42a[_0x9b07('0x3')]===_0x9b07('0xa')){_0x3bf703[_0x9b07('0xb')]({'type':_0x9b07('0xa'),'app':_0x9b07('0x4'),'appdata':_0x9b07('0xc')+_0x5dc42a['id'],'context':_0x5dc42a[_0x9b07('0x5')],'exten':_0x5dc42a[_0x9b07('0x9')],'priority':_0x14a884++,'VoiceExtensionId':_0x5dc42a['id']});}_0x3bf703[_0x9b07('0xb')]({'type':_0x5dc42a[_0x9b07('0x3')],'app':_0x9b07('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x5dc42a['context'],'exten':_0x5dc42a[_0x9b07('0x9')],'priority':_0x14a884++,'VoiceExtensionId':_0x5dc42a['id']},{'type':_0x5dc42a[_0x9b07('0x3')],'app':_0x9b07('0x4'),'appdata':_0x9b07('0xd'),'context':_0x5dc42a[_0x9b07('0x5')],'exten':_0x5dc42a['exten'],'priority':_0x14a884++,'VoiceExtensionId':_0x5dc42a['id']},{'type':_0x5dc42a[_0x9b07('0x3')],'app':_0x9b07('0x4'),'appdata':_0x9b07('0xe'),'context':_0x5dc42a['context'],'exten':_0x5dc42a[_0x9b07('0x9')],'priority':_0x14a884++,'VoiceExtensionId':_0x5dc42a['id']});return _0x3bf703;}function _0x1cddd5(_0x3fe8ae){var _0x130668=0x2;var _0x38f77c=[{'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':_0x9b07('0x10'),'context':_0x3fe8ae['context'],'exten':_0x3fe8ae['exten'],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':_0x3fe8ae['alias']?_0x9b07('0x4'):'NoOp','appdata':_0x3fe8ae[_0x9b07('0x7')]?_0x9b07('0x8')+_0x3fe8ae[_0x9b07('0x7')]:'No\x20alias\x20set','context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':'CDR(destination)='+(_0x3fe8ae[_0x9b07('0x11')]?'${EXTEN:'+_0x3fe8ae[_0x9b07('0x11')]+'}':_0x9b07('0x12')),'context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':'Set','appdata':_0x9b07('0xc')+_0x3fe8ae['id'],'context':_0x3fe8ae['context'],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':'ExecIf','appdata':_0x9b07('0x13')+(_0x130668+0x2)+'):Goto('+(_0x130668+0x1)+')','context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':_0x3fe8ae[_0x9b07('0x11')]?_0x9b07('0x14')+_0x3fe8ae[_0x9b07('0x11')]+'}':_0x9b07('0x15'),'context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':_0x9b07('0x16'),'context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae['exten'],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':_0x9b07('0xd'),'context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':_0x9b07('0xe'),'context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':_0x9b07('0x17')+_0x3fe8ae['id'],'context':_0x3fe8ae['context'],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']}];if(_0x3fe8ae[_0x9b07('0x18')](_0x9b07('0x19'))&&_0x3fe8ae[_0x9b07('0x19')]!==_0x9b07('0x1a')){_0x38f77c[_0x9b07('0xb')]({'type':_0x9b07('0xf'),'app':_0x9b07('0x4'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x3fe8ae[_0x9b07('0x5')],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']},{'type':_0x9b07('0xf'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x3fe8ae[_0x9b07('0x19')]||_0x9b07('0x1b'),'context':_0x3fe8ae['context'],'exten':_0x3fe8ae[_0x9b07('0x9')],'priority':_0x130668++,'VoiceExtensionId':_0x3fe8ae['id']});}return _0x38f77c;}function _0x575858(_0x383c00,_0x14104a){var _0x4091aa=[{'name':_0x9b07('0x1c'),'param':0x0},{'name':_0x9b07('0x1d'),'param':0x1},{'name':'options','param':0x2},{'name':_0x9b07('0x1e'),'param':0x3}];var _0x5c78ba={};var _0x67dfdf=_0x14104a[_0x9b07('0x1f')](',');var _0x51a0ce=[];for(var _0xeb08f8=0x0;_0xeb08f8<_0x4091aa[_0x9b07('0x20')];_0xeb08f8++){switch(_0x4091aa[_0xeb08f8][_0x9b07('0x21')]){case _0x9b07('0x1c'):_0x5c78ba[_0x9b07('0x1c')]=_0x67dfdf[_0x4091aa[_0xeb08f8]['param']][_0x9b07('0x1f')]('/')[0x1];_0x5c78ba[_0x9b07('0x22')]=_0x67dfdf[_0x4091aa[_0xeb08f8][_0x9b07('0x23')]][_0x9b07('0x1f')]('/')[0x2];_0x5c78ba['prefix']=_0x5c78ba[_0x9b07('0x22')]?_0x5c78ba[_0x9b07('0x22')][_0x9b07('0x1f')]('$')[0x0]:undefined;_0x5c78ba[_0x9b07('0x22')]=_0x383c00['cutdigits']?(_0x5c78ba[_0x9b07('0x24')]||'')+_0x9b07('0x25')+_0x383c00[_0x9b07('0x11')]+'}':(_0x5c78ba[_0x9b07('0x24')]||'')+_0x9b07('0x12');_0x51a0ce[_0x4091aa[_0xeb08f8][_0x9b07('0x23')]]=['SIP',_0x5c78ba[_0x9b07('0x1c')],_0x5c78ba[_0x9b07('0x22')]][_0x9b07('0x26')]('/');break;case _0x9b07('0x27'):_0x5c78ba[_0x9b07('0x27')]=_0x67dfdf[_0x4091aa[_0xeb08f8][_0x9b07('0x23')]];if(_0x383c00[_0x9b07('0x19')]!==_0x9b07('0x1a')){if(_0x5c78ba[_0x9b07('0x27')][_0x9b07('0x28')](_0x9b07('0x29'))<0x0){_0x5c78ba['options']+=_0x9b07('0x29');}}else{_0x5c78ba[_0x9b07('0x27')]=_0x5c78ba[_0x9b07('0x27')][_0x9b07('0x2a')](_0x9b07('0x29'),'');}_0x51a0ce[_0x4091aa[_0xeb08f8][_0x9b07('0x23')]]=_0x5c78ba[_0x9b07('0x27')];break;default:_0x51a0ce[_0x4091aa[_0xeb08f8][_0x9b07('0x23')]]=_0x67dfdf[_0x4091aa[_0xeb08f8][_0x9b07('0x23')]];}}return _0x51a0ce[_0x9b07('0x26')](',');}function _0x11e113(_0x2f88ab,_0x352a3d,_0x37524a){return new Promise(function(_0xb9be08,_0x21831e){var _0x43302e=[];if(_[_0x9b07('0x2b')](_0x352a3d))return _0xb9be08(_0x43302e);_0x158a14['Interval'][_0x9b07('0x2c')]({'attributes':['id',_0x9b07('0x2d'),_0x9b07('0x2e')],'raw':!![]})[_0x9b07('0x2f')](function(_0x131c7b){for(var _0x55ed63=0x0,_0x2268f1=0x0;_0x55ed63<_0x352a3d[_0x9b07('0x20')];_0x55ed63++,_0x2268f1=0x0){var _0x1501d5=_0x352a3d[_0x55ed63];var _0x59d089=[];var _0x5ecf45=[];delete _0x1501d5['id'];if(_0x1501d5[_0x9b07('0x2d')]!==_0x9b07('0x30')){_0x1501d5[_0x9b07('0x31')]=[_0x1501d5[_0x9b07('0x2d')]];}else{_0x1501d5[_0x9b07('0x31')]=_0x1501d5[_0x9b07('0x2e')]?_[_0x9b07('0x32')](_[_0x9b07('0x33')](_0x131c7b,{'IntervalId':_0x1501d5[_0x9b07('0x2e')]}),_0x9b07('0x2d')):[];}_0x1501d5[_0x9b07('0x5')]=_0x2f88ab[_0x9b07('0x5')];_0x1501d5['exten']=_0x2f88ab[_0x9b07('0x9')];if(_0x1501d5[_0x9b07('0x3')])_0x1501d5[_0x9b07('0x3')]=_0x1501d5['type'][_0x9b07('0x34')]();if(_0x2f88ab['type']==='outbound'){if(_0x1501d5[_0x9b07('0x18')](_0x9b07('0x35'))&&_0x1501d5['tag']&&_0x1501d5[_0x9b07('0x35')]!=='--'){_0x59d089['push']({'type':_0x1501d5[_0x9b07('0x3')][_0x9b07('0x34')](),'app':'Set','appdata':_0x9b07('0x36')+_0x1501d5[_0x9b07('0x35')],'context':_0x2f88ab[_0x9b07('0x5')],'exten':_0x2f88ab[_0x9b07('0x9')],'priority':_0x1501d5[_0x9b07('0x31')][_0x9b07('0x20')]+_0x37524a+_0x2268f1++,'VoiceExtensionId':_0x2f88ab['id']});}_0x59d089[_0x9b07('0xb')]({'type':_0x1501d5[_0x9b07('0x3')][_0x9b07('0x34')](),'app':_0x9b07('0x37'),'appdata':_0x9b07('0x38')+(_0x1501d5[_0x9b07('0x39')]?_0x9b07('0x3a')+_0x1501d5[_0x9b07('0x39')]+')':_0x9b07('0x3b')),'context':_0x2f88ab[_0x9b07('0x5')],'exten':_0x2f88ab[_0x9b07('0x9')],'priority':_0x1501d5[_0x9b07('0x31')][_0x9b07('0x20')]+_0x37524a+_0x2268f1++,'VoiceExtensionId':_0x2f88ab['id']});}else{if(_0x1501d5[_0x9b07('0x18')](_0x9b07('0x3c'))){if([_0x9b07('0x3d'),_0x9b07('0x3e')][_0x9b07('0x3f')](_0x1501d5[_0x9b07('0x40')]['toLowerCase']())&&_0x1501d5[_0x9b07('0x41')]!==_0x9b07('0x42')){if(_0x1501d5[_0x9b07('0x3c')]){_0x59d089[_0x9b07('0xb')]({'type':_0x1501d5[_0x9b07('0x3')][_0x9b07('0x34')](),'app':_0x9b07('0x37'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x2f88ab[_0x9b07('0x5')],'exten':_0x2f88ab[_0x9b07('0x9')],'priority':_0x1501d5[_0x9b07('0x31')][_0x9b07('0x20')]+_0x37524a+_0x2268f1++,'VoiceExtensionId':_0x2f88ab['id']});_0x59d089[_0x9b07('0xb')]({'type':_0x1501d5[_0x9b07('0x3')][_0x9b07('0x34')](),'app':_0x9b07('0x4'),'appdata':_0x9b07('0x43'),'context':_0x2f88ab[_0x9b07('0x5')],'exten':_0x2f88ab['exten'],'priority':_0x1501d5[_0x9b07('0x31')][_0x9b07('0x20')]+_0x37524a+_0x2268f1++,'VoiceExtensionId':_0x2f88ab['id']});}else{_0x59d089[_0x9b07('0xb')]({'type':_0x1501d5[_0x9b07('0x3')][_0x9b07('0x34')](),'app':_0x9b07('0x37'),'appdata':_0x9b07('0x44'),'context':_0x2f88ab[_0x9b07('0x5')],'exten':_0x2f88ab[_0x9b07('0x9')],'priority':_0x1501d5['intervals'][_0x9b07('0x20')]+_0x37524a+_0x2268f1++,'VoiceExtensionId':_0x2f88ab['id']});_0x59d089[_0x9b07('0xb')]({'type':_0x1501d5['type'][_0x9b07('0x34')](),'app':_0x9b07('0x4'),'appdata':_0x9b07('0x45'),'context':_0x2f88ab[_0x9b07('0x5')],'exten':_0x2f88ab[_0x9b07('0x9')],'priority':_0x1501d5[_0x9b07('0x31')][_0x9b07('0x20')]+_0x37524a+_0x2268f1++,'VoiceExtensionId':_0x2f88ab['id']});}}}}for(var _0x40d411=0x0;_0x40d411<_0x1501d5[_0x9b07('0x31')][_0x9b07('0x20')];_0x40d411++){var _0x501ca4=_0x37524a+_0x1501d5['intervals'][_0x9b07('0x20')];var _0x1ed6fc=_0x40d411===_0x1501d5[_0x9b07('0x31')]['length']-0x1?_0x37524a+_0x59d089['length']+_0x5ecf45[_0x9b07('0x20')]+0x2:_0x37524a+_0x40d411+0x1;_0x59d089[_0x9b07('0x46')](_0x40d411,0x0,{'type':_0x2f88ab['type'],'app':_0x9b07('0x47'),'appdata':_0x1501d5[_0x9b07('0x31')][_0x40d411]+'?'+_0x2f88ab[_0x9b07('0x5')]+',${EXTEN},'+_0x501ca4+':'+_0x2f88ab[_0x9b07('0x5')]+_0x9b07('0x48')+_0x1ed6fc,'exten':_0x2f88ab[_0x9b07('0x9')],'context':_0x2f88ab[_0x9b07('0x5')],'priority':_0x37524a+_0x40d411,'VoiceExtensionId':_0x2f88ab['id']});}if(_0x1501d5['appType']===_0x9b07('0x49'))_0x1501d5['appdata']=_0x575858(_0x2f88ab,_0x1501d5['appdata']);_0x1501d5[_0x9b07('0x4a')]=_0x59d089[_0x9b07('0x20')]?_['last'](_0x59d089)[_0x9b07('0x4a')]+0x1:_0x37524a;_0x43302e=_[_0x9b07('0x4b')](_0x43302e,_0x59d089,[_0x1501d5],_0x5ecf45);_0x37524a=_[_0x9b07('0x4c')](_0x43302e)[_0x9b07('0x4a')]+0x1;}return _0xb9be08(_0x43302e);})[_0x9b07('0x4d')](function(_0x7be411){_0x21831e(_0x7be411);});});}return _0x447b2d[_0x9b07('0x4e')](_0x9b07('0x4f'),attributes,{'tableName':_0x9b07('0x50'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x4a3afa){var _0x1f9b10=this[_0x9b07('0x51')]({'plain':!![]});var _0x213786=_0x1f9b10[_0x9b07('0x3')]===_0x9b07('0xf')?_0x1cddd5(_0x1f9b10):_0x3c199c(_0x1f9b10);return _0x11e113(_0x1f9b10,_0x4a3afa,_[_0x9b07('0x4c')](_0x213786)['priority']+0x1)['then'](function(_0x4bea81){var _0x5aec74=_['concat'](_0x213786,_0x4bea81);_0x5aec74[_0x9b07('0xb')]({'type':_0x1f9b10[_0x9b07('0x3')],'app':_0x9b07('0x52'),'exten':_0x1f9b10[_0x9b07('0x9')],'context':_0x1f9b10[_0x9b07('0x5')],'priority':_[_0x9b07('0x4c')](_0x5aec74)['priority']+0x1,'VoiceExtensionId':_0x1f9b10['id']});return _0x5aec74;});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa13d=['raw','where','attributes','limit','include','map','model','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','jayson/promise','client','redis','defaults','socket.io-emitter','./voiceExtension.socket','register','request','then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','debug','VoiceExtension,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceExtension','VoiceExtension','findAll','options'];(function(_0x1bb76d,_0x241409){var _0x516854=function(_0x448eae){while(--_0x448eae){_0x1bb76d['push'](_0x1bb76d['shift']());}};_0x516854(++_0x241409);}(_0xa13d,0x154));var _0xda13=function(_0x325112,_0x3646d7){_0x325112=_0x325112-0x0;var _0x3432f9=_0xa13d[_0x325112];return _0x3432f9;};'use strict';var _=require(_0xda13('0x0'));var util=require('util');var moment=require(_0xda13('0x1'));var BPromise=require(_0xda13('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xda13('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xda13('0x4'));var logger=require(_0xda13('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xda13('0x6'));var client=jayson[_0xda13('0x7')]['http']({'port':0x232a});config[_0xda13('0x8')]=_[_0xda13('0x9')](config[_0xda13('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xda13('0xa'))(new Redis(config[_0xda13('0x8')]));require(_0xda13('0xb'))[_0xda13('0xc')](socket);function respondWithRpcPromise(_0x1256f8,_0x29d821,_0xf307b6){return new BPromise(function(_0x202008,_0x139876){return client[_0xda13('0xd')](_0x1256f8,_0xf307b6)[_0xda13('0xe')](function(_0x3af482){logger[_0xda13('0xf')](_0xda13('0x10'),_0x29d821,_0xda13('0x11'));logger[_0xda13('0x12')](_0xda13('0x13'),_0x29d821,'request\x20sent',JSON[_0xda13('0x14')](_0x3af482));if(_0x3af482['error']){if(_0x3af482[_0xda13('0x15')][_0xda13('0x16')]===0x1f4){logger['error'](_0xda13('0x10'),_0x29d821,_0x3af482[_0xda13('0x15')][_0xda13('0x17')]);return _0x139876(_0x3af482[_0xda13('0x15')]['message']);}logger[_0xda13('0x15')](_0xda13('0x10'),_0x29d821,_0x3af482['error'][_0xda13('0x17')]);return _0x202008(_0x3af482['error'][_0xda13('0x17')]);}else{logger[_0xda13('0xf')](_0xda13('0x10'),_0x29d821,_0xda13('0x11'));_0x202008(_0x3af482[_0xda13('0x18')][_0xda13('0x17')]);}})[_0xda13('0x19')](function(_0x2790c8){logger['error'](_0xda13('0x10'),_0x29d821,_0x2790c8);_0x139876(_0x2790c8);});});}exports[_0xda13('0x1a')]=function(_0x19c00d){var _0x49cad2=this;return new Promise(function(_0x3ead85,_0x7a9700){return db[_0xda13('0x1b')][_0xda13('0x1c')]({'raw':_0x19c00d['options']?_0x19c00d[_0xda13('0x1d')][_0xda13('0x1e')]===undefined?!![]:![]:!![],'where':_0x19c00d[_0xda13('0x1d')]?_0x19c00d['options'][_0xda13('0x1f')]||null:null,'attributes':_0x19c00d[_0xda13('0x1d')]?_0x19c00d[_0xda13('0x1d')][_0xda13('0x20')]||null:null,'limit':_0x19c00d[_0xda13('0x1d')]?_0x19c00d[_0xda13('0x1d')][_0xda13('0x21')]||null:null,'include':_0x19c00d[_0xda13('0x1d')]?_0x19c00d['options'][_0xda13('0x22')]?_[_0xda13('0x23')](_0x19c00d[_0xda13('0x1d')][_0xda13('0x22')],function(_0x41cd49){return{'model':db[_0x41cd49['model']],'as':_0x41cd49['as'],'attributes':_0x41cd49['attributes'],'include':_0x41cd49[_0xda13('0x22')]?_['map'](_0x41cd49[_0xda13('0x22')],function(_0x386708){return{'model':db[_0x386708[_0xda13('0x24')]],'as':_0x386708['as'],'attributes':_0x386708[_0xda13('0x20')],'include':_0x386708[_0xda13('0x22')]?_[_0xda13('0x23')](_0x386708[_0xda13('0x22')],function(_0x206e00){return{'model':db[_0x206e00[_0xda13('0x24')]],'as':_0x206e00['as'],'attributes':_0x206e00['attributes']};}):[]};}):[]};}):[]:[]})[_0xda13('0xe')](function(_0x54c2f1){logger[_0xda13('0xf')](_0xda13('0x1a'),_0x19c00d);logger[_0xda13('0x12')](_0xda13('0x1a'),_0x19c00d,JSON['stringify'](_0x54c2f1));_0x3ead85(_0x54c2f1);})[_0xda13('0x19')](function(_0x383178){logger[_0xda13('0x15')](_0xda13('0x1a'),_0x383178[_0xda13('0x17')],_0x19c00d);_0x7a9700(_0x49cad2[_0xda13('0x15')](0x1f4,_0x383178[_0xda13('0x17')]));});});};
\ No newline at end of file
+var _0x3dba=['stringify','code','error','message','result','GetVoiceExtension','VoiceExtension','findAll','options','raw','where','attributes','map','include','model','catch','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','localhost','register','request','then','VoiceExtension,\x20%s,\x20%s','request\x20sent','debug','VoiceExtension,\x20%s,\x20%s,\x20%s'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x3dba,0x73));var _0xa3db=function(_0x38c7e3,_0x34b4bc){_0x38c7e3=_0x38c7e3-0x0;var _0x34b66f=_0x3dba[_0x38c7e3];return _0x34b66f;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xa3db('0x0'));var rs=require(_0xa3db('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa3db('0x2'))['db'];var utils=require(_0xa3db('0x3'));var logger=require(_0xa3db('0x4'))(_0xa3db('0x5'));var config=require(_0xa3db('0x6'));var jayson=require(_0xa3db('0x7'));var client=jayson[_0xa3db('0x8')]['http']({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0xa3db('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./voiceExtension.socket')[_0xa3db('0xa')](socket);function respondWithRpcPromise(_0x1d68f6,_0x3dbdc2,_0x18813f){return new BPromise(function(_0x17ac00,_0x282cfd){return client[_0xa3db('0xb')](_0x1d68f6,_0x18813f)[_0xa3db('0xc')](function(_0x6c9d3){logger['info'](_0xa3db('0xd'),_0x3dbdc2,_0xa3db('0xe'));logger[_0xa3db('0xf')](_0xa3db('0x10'),_0x3dbdc2,_0xa3db('0xe'),JSON[_0xa3db('0x11')](_0x6c9d3));if(_0x6c9d3['error']){if(_0x6c9d3['error'][_0xa3db('0x12')]===0x1f4){logger[_0xa3db('0x13')]('VoiceExtension,\x20%s,\x20%s',_0x3dbdc2,_0x6c9d3[_0xa3db('0x13')][_0xa3db('0x14')]);return _0x282cfd(_0x6c9d3[_0xa3db('0x13')][_0xa3db('0x14')]);}logger[_0xa3db('0x13')](_0xa3db('0xd'),_0x3dbdc2,_0x6c9d3[_0xa3db('0x13')][_0xa3db('0x14')]);return _0x17ac00(_0x6c9d3[_0xa3db('0x13')]['message']);}else{logger['info'](_0xa3db('0xd'),_0x3dbdc2,_0xa3db('0xe'));_0x17ac00(_0x6c9d3[_0xa3db('0x15')][_0xa3db('0x14')]);}})['catch'](function(_0x1b8ce1){logger[_0xa3db('0x13')](_0xa3db('0xd'),_0x3dbdc2,_0x1b8ce1);_0x282cfd(_0x1b8ce1);});});}exports[_0xa3db('0x16')]=function(_0x2cdd17){var _0x199a7c=this;return new Promise(function(_0x439bb2,_0x2c817c){return db[_0xa3db('0x17')][_0xa3db('0x18')]({'raw':_0x2cdd17[_0xa3db('0x19')]?_0x2cdd17[_0xa3db('0x19')][_0xa3db('0x1a')]===undefined?!![]:![]:!![],'where':_0x2cdd17[_0xa3db('0x19')]?_0x2cdd17[_0xa3db('0x19')][_0xa3db('0x1b')]||null:null,'attributes':_0x2cdd17[_0xa3db('0x19')]?_0x2cdd17[_0xa3db('0x19')][_0xa3db('0x1c')]||null:null,'limit':_0x2cdd17['options']?_0x2cdd17[_0xa3db('0x19')]['limit']||null:null,'include':_0x2cdd17[_0xa3db('0x19')]?_0x2cdd17[_0xa3db('0x19')]['include']?_[_0xa3db('0x1d')](_0x2cdd17[_0xa3db('0x19')][_0xa3db('0x1e')],function(_0x5e71f2){return{'model':db[_0x5e71f2[_0xa3db('0x1f')]],'as':_0x5e71f2['as'],'attributes':_0x5e71f2[_0xa3db('0x1c')],'include':_0x5e71f2[_0xa3db('0x1e')]?_[_0xa3db('0x1d')](_0x5e71f2[_0xa3db('0x1e')],function(_0x53e89f){return{'model':db[_0x53e89f[_0xa3db('0x1f')]],'as':_0x53e89f['as'],'attributes':_0x53e89f[_0xa3db('0x1c')],'include':_0x53e89f[_0xa3db('0x1e')]?_[_0xa3db('0x1d')](_0x53e89f[_0xa3db('0x1e')],function(_0x2f8602){return{'model':db[_0x2f8602[_0xa3db('0x1f')]],'as':_0x2f8602['as'],'attributes':_0x2f8602[_0xa3db('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xa3db('0xc')](function(_0x2ecde3){logger['info'](_0xa3db('0x16'),_0x2cdd17);logger[_0xa3db('0xf')](_0xa3db('0x16'),_0x2cdd17,JSON['stringify'](_0x2ecde3));_0x439bb2(_0x2ecde3);})[_0xa3db('0x20')](function(_0x3b3436){logger['error'](_0xa3db('0x16'),_0x3b3436[_0xa3db('0x14')],_0x2cdd17);_0x2c817c(_0x199a7c[_0xa3db('0x13')](0x1f4,_0x3b3436['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['update','emit','removeListener','register','length','voiceExtension:','./voiceExtension.events','save','remove'];(function(_0x564adf,_0x861a9){var _0x506f27=function(_0x1d7327){while(--_0x1d7327){_0x564adf['push'](_0x564adf['shift']());}};_0x506f27(++_0x861a9);}(_0x2ef3,0xba));var _0x32ef=function(_0x13ddff,_0x31c86f){_0x13ddff=_0x13ddff-0x0;var _0x34467f=_0x2ef3[_0x13ddff];return _0x34467f;};'use strict';var VoiceExtensionEvents=require(_0x32ef('0x0'));var events=[_0x32ef('0x1'),_0x32ef('0x2'),_0x32ef('0x3')];function createListener(_0x3944df,_0x38047b){return function(_0x48106c){_0x38047b[_0x32ef('0x4')](_0x3944df,_0x48106c);};}function removeListener(_0x38b7f3,_0x524ab6){return function(){VoiceExtensionEvents[_0x32ef('0x5')](_0x38b7f3,_0x524ab6);};}exports[_0x32ef('0x6')]=function(_0x4c8104){for(var _0x5dfa09=0x0,_0x2c0089=events[_0x32ef('0x7')];_0x5dfa09<_0x2c0089;_0x5dfa09++){var _0x367c39=events[_0x5dfa09];var _0x2fb8eb=createListener(_0x32ef('0x8')+_0x367c39,_0x4c8104);VoiceExtensionEvents['on'](_0x367c39,_0x2fb8eb);}};
\ No newline at end of file
+var _0x7a54=['remove','emit','removeListener','register','length','voiceExtension:','./voiceExtension.events','save'];(function(_0x550f39,_0x35a131){var _0xcf0e0c=function(_0x1933a8){while(--_0x1933a8){_0x550f39['push'](_0x550f39['shift']());}};_0xcf0e0c(++_0x35a131);}(_0x7a54,0x106));var _0x47a5=function(_0x284acd,_0x2dcedc){_0x284acd=_0x284acd-0x0;var _0x48afa5=_0x7a54[_0x284acd];return _0x48afa5;};'use strict';var VoiceExtensionEvents=require(_0x47a5('0x0'));var events=[_0x47a5('0x1'),_0x47a5('0x2'),'update'];function createListener(_0x1d33e,_0x4086cd){return function(_0x4880bf){_0x4086cd[_0x47a5('0x3')](_0x1d33e,_0x4880bf);};}function removeListener(_0x11bf85,_0x2a1a7e){return function(){VoiceExtensionEvents[_0x47a5('0x4')](_0x11bf85,_0x2a1a7e);};}exports[_0x47a5('0x5')]=function(_0x545a97){for(var _0x3d5629=0x0,_0x59199c=events[_0x47a5('0x6')];_0x3d5629<_0x59199c;_0x3d5629++){var _0x30e405=events[_0x3d5629];var _0x506eda=createListener(_0x47a5('0x7')+_0x30e405,_0x545a97);VoiceExtensionEvents['on'](_0x30e405,_0x506eda);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c60=['exports','multer','util','path','connect-timeout','Router','./voiceMail.controller','get','isAuthenticated','index','/:id','/:id/messages','getMessages','put','update','destroy'];(function(_0x1bbae2,_0xd2886c){var _0x222775=function(_0x30f6fc){while(--_0x30f6fc){_0x1bbae2['push'](_0x1bbae2['shift']());}};_0x222775(++_0xd2886c);}(_0x4c60,0xc1));var _0x04c6=function(_0x4adad0,_0x5840c3){_0x4adad0=_0x4adad0-0x0;var _0x57b347=_0x4c60[_0x4adad0];return _0x57b347;};'use strict';var multer=require(_0x04c6('0x0'));var util=require(_0x04c6('0x1'));var path=require(_0x04c6('0x2'));var timeout=require(_0x04c6('0x3'));var express=require('express');var router=express[_0x04c6('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x04c6('0x5'));router[_0x04c6('0x6')]('/',auth[_0x04c6('0x7')](),controller[_0x04c6('0x8')]);router[_0x04c6('0x6')](_0x04c6('0x9'),auth[_0x04c6('0x7')](),controller['show']);router[_0x04c6('0x6')](_0x04c6('0xa'),auth[_0x04c6('0x7')](),controller[_0x04c6('0xb')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x04c6('0xc')]('/:id',auth[_0x04c6('0x7')](),controller[_0x04c6('0xd')]);router['delete'](_0x04c6('0x9'),auth[_0x04c6('0x7')](),controller[_0x04c6('0xe')]);module[_0x04c6('0xf')]=router;
\ No newline at end of file
+var _0x2542=['put','update','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMail.controller','get','index','/:id','isAuthenticated','show','/:id/messages','getMessages','post'];(function(_0x2990ca,_0x602b60){var _0x115623=function(_0x22abb9){while(--_0x22abb9){_0x2990ca['push'](_0x2990ca['shift']());}};_0x115623(++_0x602b60);}(_0x2542,0x169));var _0x2254=function(_0x4c50a8,_0x90c411){_0x4c50a8=_0x4c50a8-0x0;var _0x323ae7=_0x2542[_0x4c50a8];return _0x323ae7;};'use strict';var multer=require(_0x2254('0x0'));var util=require(_0x2254('0x1'));var path=require(_0x2254('0x2'));var timeout=require(_0x2254('0x3'));var express=require('express');var router=express[_0x2254('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x2254('0x5'));var interaction=require(_0x2254('0x6'));var config=require(_0x2254('0x7'));var controller=require(_0x2254('0x8'));router[_0x2254('0x9')]('/',auth['isAuthenticated'](),controller[_0x2254('0xa')]);router[_0x2254('0x9')](_0x2254('0xb'),auth[_0x2254('0xc')](),controller[_0x2254('0xd')]);router[_0x2254('0x9')](_0x2254('0xe'),auth[_0x2254('0xc')](),controller[_0x2254('0xf')]);router[_0x2254('0x10')]('/',auth[_0x2254('0xc')](),controller['create']);router[_0x2254('0x11')](_0x2254('0xb'),auth[_0x2254('0xc')](),controller[_0x2254('0x12')]);router['delete']('/:id',auth[_0x2254('0xc')](),controller[_0x2254('0x13')]);module[_0x2254('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf66c=['INTEGER','VIRTUAL','getDataValue','fullname','\x20-\x20','mailbox','exports','STRING','contest_mailbox','string','trim','ENUM','yes'];(function(_0x1cacbc,_0x1ea422){var _0x252031=function(_0x1101cd){while(--_0x1101cd){_0x1cacbc['push'](_0x1cacbc['shift']());}};_0x252031(++_0x1ea422);}(_0xf66c,0x7b));var _0xcf66=function(_0x3069df,_0x4a9393){_0x3069df=_0x3069df-0x0;var _0x52b7c3=_0xf66c[_0x3069df];return _0x52b7c3;};'use strict';var Sequelize=require('sequelize');module[_0xcf66('0x0')]={'customer_id':{'type':Sequelize[_0xcf66('0x1')]},'context':{'type':Sequelize[_0xcf66('0x1')],'defaultValue':'from-voicemail','unique':_0xcf66('0x2')},'mailbox':{'type':Sequelize['STRING'],'defaultValue':'','allowNull':![],'unique':'contest_mailbox'},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0xcf66('0x1')]},'email':{'type':Sequelize[_0xcf66('0x1')],'validate':{'isEmail':!![]},'set':function(_0x3317be){this['setDataValue']('email',typeof _0x3317be===_0xcf66('0x3')&&_0x3317be[_0xcf66('0x4')]()?_0x3317be[_0xcf66('0x4')]():null);}},'pager':{'type':Sequelize[_0xcf66('0x1')]},'tz':{'type':Sequelize[_0xcf66('0x1')],'defaultValue':'central'},'attach':{'type':Sequelize[_0xcf66('0x5')]('yes','no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'saycid':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'dialout':{'type':Sequelize[_0xcf66('0x1')]},'callback':{'type':Sequelize['STRING']},'review':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize['ENUM'](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':'TINYINT(4)','defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0xcf66('0x5')]('yes','no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'forcename':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'stamp':{'type':'TIMESTAMP'},'emailsubject':{'type':Sequelize[_0xcf66('0x1')]},'emailbody':{'type':Sequelize[_0xcf66('0x1')]},'maxsecs':{'type':Sequelize[_0xcf66('0x7')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0xcf66('0x7')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0xcf66('0x8')],'get':function(){return this[_0xcf66('0x9')](_0xcf66('0xa'))+_0xcf66('0xb')+this[_0xcf66('0x9')](_0xcf66('0xc'));}}};
\ No newline at end of file
+var _0x1d05=['exports','STRING','from-voicemail','contest_mailbox','email','string','trim','central','ENUM','yes','TIMESTAMP','INTEGER','VIRTUAL','getDataValue','fullname','\x20-\x20'];(function(_0x3410f7,_0x89b816){var _0x135c15=function(_0x245f82){while(--_0x245f82){_0x3410f7['push'](_0x3410f7['shift']());}};_0x135c15(++_0x89b816);}(_0x1d05,0x170));var _0x51d0=function(_0x49b655,_0x287c0a){_0x49b655=_0x49b655-0x0;var _0x1c95ad=_0x1d05[_0x49b655];return _0x1c95ad;};'use strict';var Sequelize=require('sequelize');module[_0x51d0('0x0')]={'customer_id':{'type':Sequelize[_0x51d0('0x1')]},'context':{'type':Sequelize[_0x51d0('0x1')],'defaultValue':_0x51d0('0x2'),'unique':_0x51d0('0x3')},'mailbox':{'type':Sequelize['STRING'],'defaultValue':'','allowNull':![],'unique':_0x51d0('0x3')},'password':{'type':Sequelize[_0x51d0('0x1')]},'fullname':{'type':Sequelize[_0x51d0('0x1')]},'email':{'type':Sequelize[_0x51d0('0x1')],'validate':{'isEmail':!![]},'set':function(_0x8ac6f0){this['setDataValue'](_0x51d0('0x4'),typeof _0x8ac6f0===_0x51d0('0x5')&&_0x8ac6f0[_0x51d0('0x6')]()?_0x8ac6f0['trim']():null);}},'pager':{'type':Sequelize[_0x51d0('0x1')]},'tz':{'type':Sequelize['STRING'],'defaultValue':_0x51d0('0x7')},'attach':{'type':Sequelize[_0x51d0('0x8')](_0x51d0('0x9'),'no'),'defaultValue':_0x51d0('0x9'),'allowNull':![]},'saycid':{'type':Sequelize[_0x51d0('0x8')]('yes','no'),'defaultValue':_0x51d0('0x9'),'allowNull':![]},'dialout':{'type':Sequelize['STRING']},'callback':{'type':Sequelize[_0x51d0('0x1')]},'review':{'type':Sequelize[_0x51d0('0x8')](_0x51d0('0x9'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0x51d0('0x8')](_0x51d0('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize['ENUM'](_0x51d0('0x9'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x51d0('0x8')](_0x51d0('0x9'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':'TINYINT(4)','defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0x51d0('0x8')](_0x51d0('0x9'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize['ENUM'](_0x51d0('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0x51d0('0x8')]('yes','no'),'defaultValue':_0x51d0('0x9'),'allowNull':![]},'forcename':{'type':Sequelize[_0x51d0('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x51d0('0x8')](_0x51d0('0x9'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x51d0('0x8')]('yes','no'),'defaultValue':_0x51d0('0x9'),'allowNull':![]},'stamp':{'type':_0x51d0('0xa')},'emailsubject':{'type':Sequelize[_0x51d0('0x1')]},'emailbody':{'type':Sequelize['STRING']},'maxsecs':{'type':Sequelize[_0x51d0('0xb')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize['INTEGER'](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0x51d0('0xc')],'get':function(){return this[_0x51d0('0xd')](_0x51d0('0xe'))+_0x51d0('0xf')+this[_0x51d0('0xd')]('mailbox');}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1775=['hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','include','params','includeAll','find','catch','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','findOne','rawAttributes','mailbox','options','VoiceMailMessage','findAndCountAll','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','then','destroy','Voicemails','UserProfileResource','name','send','index','VoiceMail','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length'];(function(_0xd601b2,_0x53cb15){var _0x3b0eec=function(_0x5abce7){while(--_0x5abce7){_0xd601b2['push'](_0xd601b2['shift']());}};_0x3b0eec(++_0x53cb15);}(_0x1775,0x1db));var _0x5177=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x1775[_0x17d9e3];return _0x14192d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5177('0x0'));var zipdir=require(_0x5177('0x1'));var jsonpatch=require(_0x5177('0x2'));var rp=require(_0x5177('0x3'));var moment=require(_0x5177('0x4'));var BPromise=require(_0x5177('0x5'));var Mustache=require(_0x5177('0x6'));var util=require(_0x5177('0x7'));var path=require(_0x5177('0x8'));var sox=require(_0x5177('0x9'));var csv=require(_0x5177('0xa'));var ejs=require(_0x5177('0xb'));var fs=require('fs');var fs_extra=require(_0x5177('0xc'));var _=require(_0x5177('0xd'));var squel=require(_0x5177('0xe'));var crypto=require(_0x5177('0xf'));var jsforce=require(_0x5177('0x10'));var deskjs=require(_0x5177('0x11'));var toCsv=require(_0x5177('0xa'));var querystring=require(_0x5177('0x12'));var Papa=require(_0x5177('0x13'));var Redis=require(_0x5177('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5177('0x15'));var hardwareService=require(_0x5177('0x16'));var logger=require(_0x5177('0x17'))(_0x5177('0x18'));var utils=require(_0x5177('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x5177('0x1a'));var db=require(_0x5177('0x1b'))['db'];function respondWithStatusCode(_0xc613b9,_0x3c4ced){_0x3c4ced=_0x3c4ced||0xcc;return function(_0x111e99){if(_0x111e99){return _0xc613b9[_0x5177('0x1c')](_0x3c4ced);}return _0xc613b9[_0x5177('0x1d')](_0x3c4ced)[_0x5177('0x1e')]();};}function respondWithResult(_0x3e6224,_0x1eb9dd){_0x1eb9dd=_0x1eb9dd||0xc8;return function(_0x41bef4){if(_0x41bef4){return _0x3e6224[_0x5177('0x1d')](_0x1eb9dd)[_0x5177('0x1f')](_0x41bef4);}};}function respondWithFilteredResult(_0x31aff8,_0x1b32e6){return function(_0x175ca6){if(_0x175ca6){var _0x2ab5e5=typeof _0x1b32e6[_0x5177('0x20')]===_0x5177('0x21')&&typeof _0x1b32e6['limit']===_0x5177('0x21');var _0x41e687=_0x175ca6[_0x5177('0x22')];var _0x1b4102=_0x2ab5e5?0x0:_0x1b32e6['offset'];var _0x3e6944=_0x2ab5e5?_0x175ca6[_0x5177('0x22')]:_0x1b32e6[_0x5177('0x20')]+_0x1b32e6['limit'];var _0x86f5f8;if(_0x3e6944>=_0x41e687){_0x3e6944=_0x41e687;_0x86f5f8=0xc8;}else{_0x86f5f8=0xce;}_0x31aff8['status'](_0x86f5f8);return _0x31aff8[_0x5177('0x23')](_0x5177('0x24'),_0x1b4102+'-'+_0x3e6944+'/'+_0x41e687)[_0x5177('0x1f')](_0x175ca6);}return null;};}function patchUpdates(_0x27b732){return function(_0x451e5c){try{jsonpatch[_0x5177('0x25')](_0x451e5c,_0x27b732,!![]);}catch(_0x174c4f){return BPromise[_0x5177('0x26')](_0x174c4f);}return _0x451e5c[_0x5177('0x27')]();};}function saveUpdates(_0x2a95cc,_0x23dad2){return function(_0x3b0c37){if(_0x3b0c37){return _0x3b0c37['update'](_0x2a95cc)[_0x5177('0x28')](function(_0x556f96){return _0x556f96;});}return null;};}function removeEntity(_0x30b60f,_0x2c68d8){return function(_0x3b39b5){if(_0x3b39b5){return _0x3b39b5[_0x5177('0x29')]()['then'](function(){var _0x2503ef=_0x3b39b5['get']({'plain':!![]});var _0x564139=_0x5177('0x2a');return db[_0x5177('0x2b')]['destroy']({'where':{'type':_0x564139,'resourceId':_0x2503ef['id']}})[_0x5177('0x28')](function(){return _0x3b39b5;});})['then'](function(){_0x30b60f[_0x5177('0x1d')](0xcc)[_0x5177('0x1e')]();});}};}function handleEntityNotFound(_0x58846c,_0x3e021a){return function(_0x2554ec){if(!_0x2554ec){_0x58846c[_0x5177('0x1c')](0x194);}return _0x2554ec;};}function handleError(_0x7f86e,_0xe98ff1){_0xe98ff1=_0xe98ff1||0x1f4;return function(_0x1cef5d){logger['error'](_0x1cef5d['stack']);if(_0x1cef5d[_0x5177('0x2c')]){delete _0x1cef5d[_0x5177('0x2c')];}_0x7f86e[_0x5177('0x1d')](_0xe98ff1)[_0x5177('0x2d')](_0x1cef5d);};}exports[_0x5177('0x2e')]=function(_0x8134f9,_0x31eb9f){var _0x72dced={},_0x49f6f1={},_0x42e1db={'count':0x0,'rows':[]};var _0x2233a2=_['map'](db[_0x5177('0x2f')]['rawAttributes'],function(_0x172b36){return{'name':_0x172b36[_0x5177('0x30')],'type':_0x172b36[_0x5177('0x31')]['key']};});_0x49f6f1['model']=_[_0x5177('0x32')](_0x2233a2,_0x5177('0x2c'));_0x49f6f1[_0x5177('0x33')]=_[_0x5177('0x34')](_0x8134f9[_0x5177('0x33')]);_0x49f6f1[_0x5177('0x35')]=_[_0x5177('0x36')](_0x49f6f1[_0x5177('0x37')],_0x49f6f1['query']);_0x72dced[_0x5177('0x38')]=_[_0x5177('0x36')](_0x49f6f1['model'],qs[_0x5177('0x39')](_0x8134f9[_0x5177('0x33')][_0x5177('0x39')]));_0x72dced[_0x5177('0x38')]=_0x72dced[_0x5177('0x38')][_0x5177('0x3a')]?_0x72dced['attributes']:_0x49f6f1[_0x5177('0x37')];if(!_0x8134f9[_0x5177('0x33')][_0x5177('0x3b')](_0x5177('0x3c'))){_0x72dced[_0x5177('0x3d')]=qs[_0x5177('0x3d')](_0x8134f9[_0x5177('0x33')]['limit']);_0x72dced[_0x5177('0x20')]=qs[_0x5177('0x20')](_0x8134f9['query']['offset']);}_0x72dced[_0x5177('0x3e')]=qs[_0x5177('0x3f')](_0x8134f9[_0x5177('0x33')][_0x5177('0x3f')]);_0x72dced[_0x5177('0x40')]=qs[_0x5177('0x35')](_[_0x5177('0x41')](_0x8134f9[_0x5177('0x33')],_0x49f6f1[_0x5177('0x35')]),_0x2233a2);if(_0x8134f9[_0x5177('0x33')][_0x5177('0x42')]){_0x72dced[_0x5177('0x40')]=_[_0x5177('0x43')](_0x72dced['where'],{'$or':_[_0x5177('0x32')](_0x2233a2,function(_0x2a4db1){if(_0x2a4db1['type']!==_0x5177('0x44')){var _0x56f297={};_0x56f297[_0x2a4db1[_0x5177('0x2c')]]={'$like':'%'+_0x8134f9[_0x5177('0x33')][_0x5177('0x42')]+'%'};return _0x56f297;}})});}_0x72dced=_['merge']({},_0x72dced,_0x8134f9['options']);var _0x210510={'where':_0x72dced[_0x5177('0x40')]};return db[_0x5177('0x2f')][_0x5177('0x22')](_0x210510)[_0x5177('0x28')](function(_0x3e710d){_0x42e1db[_0x5177('0x22')]=_0x3e710d;if(_0x8134f9[_0x5177('0x33')]['includeAll']){_0x72dced[_0x5177('0x45')]=[{'all':!![]}];}return db['VoiceMail']['findAll'](_0x72dced);})[_0x5177('0x28')](function(_0x17dc98){_0x42e1db['rows']=_0x17dc98;return _0x42e1db;})[_0x5177('0x28')](respondWithFilteredResult(_0x31eb9f,_0x72dced))['catch'](handleError(_0x31eb9f,null));};exports['show']=function(_0x46c833,_0x1769cd){var _0x262c71={'raw':!![],'where':{'id':_0x46c833[_0x5177('0x46')]['id']}},_0x3776b8={};_0x3776b8[_0x5177('0x37')]=_[_0x5177('0x34')](db['VoiceMail']['rawAttributes']);_0x3776b8[_0x5177('0x33')]=_['keys'](_0x46c833[_0x5177('0x33')]);_0x3776b8[_0x5177('0x35')]=_[_0x5177('0x36')](_0x3776b8[_0x5177('0x37')],_0x3776b8['query']);_0x262c71[_0x5177('0x38')]=_[_0x5177('0x36')](_0x3776b8[_0x5177('0x37')],qs[_0x5177('0x39')](_0x46c833[_0x5177('0x33')][_0x5177('0x39')]));_0x262c71[_0x5177('0x38')]=_0x262c71[_0x5177('0x38')][_0x5177('0x3a')]?_0x262c71[_0x5177('0x38')]:_0x3776b8[_0x5177('0x37')];if(_0x46c833['query'][_0x5177('0x47')]){_0x262c71['include']=[{'all':!![]}];}_0x262c71=_['merge']({},_0x262c71,_0x46c833['options']);return db[_0x5177('0x2f')][_0x5177('0x48')](_0x262c71)['then'](handleEntityNotFound(_0x1769cd,null))[_0x5177('0x28')](respondWithResult(_0x1769cd,null))[_0x5177('0x49')](handleError(_0x1769cd,null));};exports[_0x5177('0x4a')]=function(_0x4891fe,_0x1d4ae4){return db['VoiceMail']['create'](_0x4891fe['body'],{})[_0x5177('0x28')](function(_0x37d5dd){var _0x1300d7=_0x4891fe['user']['get']({'plain':!![]});if(!_0x1300d7)throw new Error(_0x5177('0x4b'));if(_0x1300d7['role']===_0x5177('0x4c')){var _0x9dd7a2=_0x37d5dd[_0x5177('0x4d')]({'plain':!![]});var _0x31a6e1=_0x5177('0x2a');return db[_0x5177('0x4e')][_0x5177('0x48')]({'where':{'name':_0x31a6e1,'userProfileId':_0x1300d7[_0x5177('0x4f')]},'raw':!![]})[_0x5177('0x28')](function(_0x217aca){if(_0x217aca&&_0x217aca[_0x5177('0x50')]===0x0){return db[_0x5177('0x2b')][_0x5177('0x4a')]({'name':_0x9dd7a2['name'],'resourceId':_0x9dd7a2['id'],'type':_0x217aca['name'],'sectionId':_0x217aca['id']},{})[_0x5177('0x28')](function(){return _0x37d5dd;});}else{return _0x37d5dd;}})['catch'](function(_0x649c6f){logger['error'](_0x5177('0x51'),_0x649c6f);throw _0x649c6f;});}return _0x37d5dd;})[_0x5177('0x28')](respondWithResult(_0x1d4ae4,0xc9))[_0x5177('0x49')](handleError(_0x1d4ae4,null));};exports['update']=function(_0x5be224,_0x19884e){if(_0x5be224[_0x5177('0x52')]['id']){delete _0x5be224[_0x5177('0x52')]['id'];}return db[_0x5177('0x2f')]['find']({'where':{'id':_0x5be224['params']['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x19884e,null))[_0x5177('0x28')](saveUpdates(_0x5be224[_0x5177('0x52')],null))[_0x5177('0x28')](respondWithResult(_0x19884e,null))['catch'](handleError(_0x19884e,null));};exports[_0x5177('0x29')]=function(_0x143aff,_0x3a18ad){return db['VoiceMail'][_0x5177('0x48')]({'where':{'id':_0x143aff[_0x5177('0x46')]['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x3a18ad,null))['then'](removeEntity(_0x3a18ad,null))[_0x5177('0x49')](handleError(_0x3a18ad,null));};exports['getMessages']=function(_0x40dfd6,_0x39fb92,_0x3268bd){return db['VoiceMail'][_0x5177('0x53')]({'where':{'id':_0x40dfd6[_0x5177('0x46')]['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x39fb92,null))[_0x5177('0x28')](function(_0xc7a59e){var _0x74589e;var _0x37380c={},_0x267599={};_0x267599['model']=_['keys'](db['VoiceMailMessage'][_0x5177('0x54')]);_0x267599[_0x5177('0x33')]=_[_0x5177('0x34')](_0x40dfd6[_0x5177('0x33')]);_0x267599[_0x5177('0x35')]=_[_0x5177('0x36')](_0x267599['model'],_0x267599['query']);_0x37380c[_0x5177('0x38')]=_[_0x5177('0x36')](_0x267599[_0x5177('0x37')],qs[_0x5177('0x39')](_0x40dfd6[_0x5177('0x33')][_0x5177('0x39')]));_0x37380c[_0x5177('0x38')]=_0x37380c[_0x5177('0x38')][_0x5177('0x3a')]?_0x37380c['attributes']:_0x267599[_0x5177('0x37')];if(!_0x40dfd6[_0x5177('0x33')]['hasOwnProperty'](_0x5177('0x3c'))){_0x37380c[_0x5177('0x3d')]=qs['limit'](_0x40dfd6[_0x5177('0x33')][_0x5177('0x3d')]);_0x37380c[_0x5177('0x20')]=qs['offset'](_0x40dfd6[_0x5177('0x33')][_0x5177('0x20')]);}_0x37380c['order']=qs['sort'](_0x40dfd6[_0x5177('0x33')]['sort']);_0x37380c[_0x5177('0x40')]=qs['filters'](_[_0x5177('0x41')](_0x40dfd6[_0x5177('0x33')],_0x267599['filters']));if(_0x40dfd6[_0x5177('0x33')][_0x5177('0x42')]){_0x37380c[_0x5177('0x40')]=_[_0x5177('0x43')](_0x37380c[_0x5177('0x40')],{'$or':_[_0x5177('0x32')](_0x37380c[_0x5177('0x38')],function(_0x58ebdd){var _0x26b733={};_0x26b733[_0x58ebdd]={'$like':'%'+_0x40dfd6['query']['filter']+'%'};return _0x26b733;})});}_0x37380c[_0x5177('0x40')]=_[_0x5177('0x43')](_0x37380c['where'],{'mailboxuser':_0xc7a59e[_0x5177('0x55')]});_0x37380c=_[_0x5177('0x43')]({},_0x37380c,_0x40dfd6[_0x5177('0x56')]);return db[_0x5177('0x57')][_0x5177('0x58')](_0x37380c)[_0x5177('0x28')](respondWithFilteredResult(_0x39fb92,_0x37380c));})[_0x5177('0x49')](handleError(_0x39fb92,null));};
\ No newline at end of file
+var _0x1775=['hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','include','params','includeAll','find','catch','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','findOne','rawAttributes','mailbox','options','VoiceMailMessage','findAndCountAll','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','then','destroy','Voicemails','UserProfileResource','name','send','index','VoiceMail','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length'];(function(_0x3a4324,_0x3052dc){var _0x586440=function(_0x3bbcf8){while(--_0x3bbcf8){_0x3a4324['push'](_0x3a4324['shift']());}};_0x586440(++_0x3052dc);}(_0x1775,0x1db));var _0x5177=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x1775[_0x3947c9];return _0x2e7871;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5177('0x0'));var zipdir=require(_0x5177('0x1'));var jsonpatch=require(_0x5177('0x2'));var rp=require(_0x5177('0x3'));var moment=require(_0x5177('0x4'));var BPromise=require(_0x5177('0x5'));var Mustache=require(_0x5177('0x6'));var util=require(_0x5177('0x7'));var path=require(_0x5177('0x8'));var sox=require(_0x5177('0x9'));var csv=require(_0x5177('0xa'));var ejs=require(_0x5177('0xb'));var fs=require('fs');var fs_extra=require(_0x5177('0xc'));var _=require(_0x5177('0xd'));var squel=require(_0x5177('0xe'));var crypto=require(_0x5177('0xf'));var jsforce=require(_0x5177('0x10'));var deskjs=require(_0x5177('0x11'));var toCsv=require(_0x5177('0xa'));var querystring=require(_0x5177('0x12'));var Papa=require(_0x5177('0x13'));var Redis=require(_0x5177('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5177('0x15'));var hardwareService=require(_0x5177('0x16'));var logger=require(_0x5177('0x17'))(_0x5177('0x18'));var utils=require(_0x5177('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x5177('0x1a'));var db=require(_0x5177('0x1b'))['db'];function respondWithStatusCode(_0xc613b9,_0x3c4ced){_0x3c4ced=_0x3c4ced||0xcc;return function(_0x111e99){if(_0x111e99){return _0xc613b9[_0x5177('0x1c')](_0x3c4ced);}return _0xc613b9[_0x5177('0x1d')](_0x3c4ced)[_0x5177('0x1e')]();};}function respondWithResult(_0x3e6224,_0x1eb9dd){_0x1eb9dd=_0x1eb9dd||0xc8;return function(_0x41bef4){if(_0x41bef4){return _0x3e6224[_0x5177('0x1d')](_0x1eb9dd)[_0x5177('0x1f')](_0x41bef4);}};}function respondWithFilteredResult(_0x31aff8,_0x1b32e6){return function(_0x175ca6){if(_0x175ca6){var _0x2ab5e5=typeof _0x1b32e6[_0x5177('0x20')]===_0x5177('0x21')&&typeof _0x1b32e6['limit']===_0x5177('0x21');var _0x41e687=_0x175ca6[_0x5177('0x22')];var _0x1b4102=_0x2ab5e5?0x0:_0x1b32e6['offset'];var _0x3e6944=_0x2ab5e5?_0x175ca6[_0x5177('0x22')]:_0x1b32e6[_0x5177('0x20')]+_0x1b32e6['limit'];var _0x86f5f8;if(_0x3e6944>=_0x41e687){_0x3e6944=_0x41e687;_0x86f5f8=0xc8;}else{_0x86f5f8=0xce;}_0x31aff8['status'](_0x86f5f8);return _0x31aff8[_0x5177('0x23')](_0x5177('0x24'),_0x1b4102+'-'+_0x3e6944+'/'+_0x41e687)[_0x5177('0x1f')](_0x175ca6);}return null;};}function patchUpdates(_0x27b732){return function(_0x451e5c){try{jsonpatch[_0x5177('0x25')](_0x451e5c,_0x27b732,!![]);}catch(_0x174c4f){return BPromise[_0x5177('0x26')](_0x174c4f);}return _0x451e5c[_0x5177('0x27')]();};}function saveUpdates(_0x2a95cc,_0x23dad2){return function(_0x3b0c37){if(_0x3b0c37){return _0x3b0c37['update'](_0x2a95cc)[_0x5177('0x28')](function(_0x556f96){return _0x556f96;});}return null;};}function removeEntity(_0x30b60f,_0x2c68d8){return function(_0x3b39b5){if(_0x3b39b5){return _0x3b39b5[_0x5177('0x29')]()['then'](function(){var _0x2503ef=_0x3b39b5['get']({'plain':!![]});var _0x564139=_0x5177('0x2a');return db[_0x5177('0x2b')]['destroy']({'where':{'type':_0x564139,'resourceId':_0x2503ef['id']}})[_0x5177('0x28')](function(){return _0x3b39b5;});})['then'](function(){_0x30b60f[_0x5177('0x1d')](0xcc)[_0x5177('0x1e')]();});}};}function handleEntityNotFound(_0x58846c,_0x3e021a){return function(_0x2554ec){if(!_0x2554ec){_0x58846c[_0x5177('0x1c')](0x194);}return _0x2554ec;};}function handleError(_0x7f86e,_0xe98ff1){_0xe98ff1=_0xe98ff1||0x1f4;return function(_0x1cef5d){logger['error'](_0x1cef5d['stack']);if(_0x1cef5d[_0x5177('0x2c')]){delete _0x1cef5d[_0x5177('0x2c')];}_0x7f86e[_0x5177('0x1d')](_0xe98ff1)[_0x5177('0x2d')](_0x1cef5d);};}exports[_0x5177('0x2e')]=function(_0x8134f9,_0x31eb9f){var _0x72dced={},_0x49f6f1={},_0x42e1db={'count':0x0,'rows':[]};var _0x2233a2=_['map'](db[_0x5177('0x2f')]['rawAttributes'],function(_0x172b36){return{'name':_0x172b36[_0x5177('0x30')],'type':_0x172b36[_0x5177('0x31')]['key']};});_0x49f6f1['model']=_[_0x5177('0x32')](_0x2233a2,_0x5177('0x2c'));_0x49f6f1[_0x5177('0x33')]=_[_0x5177('0x34')](_0x8134f9[_0x5177('0x33')]);_0x49f6f1[_0x5177('0x35')]=_[_0x5177('0x36')](_0x49f6f1[_0x5177('0x37')],_0x49f6f1['query']);_0x72dced[_0x5177('0x38')]=_[_0x5177('0x36')](_0x49f6f1['model'],qs[_0x5177('0x39')](_0x8134f9[_0x5177('0x33')][_0x5177('0x39')]));_0x72dced[_0x5177('0x38')]=_0x72dced[_0x5177('0x38')][_0x5177('0x3a')]?_0x72dced['attributes']:_0x49f6f1[_0x5177('0x37')];if(!_0x8134f9[_0x5177('0x33')][_0x5177('0x3b')](_0x5177('0x3c'))){_0x72dced[_0x5177('0x3d')]=qs[_0x5177('0x3d')](_0x8134f9[_0x5177('0x33')]['limit']);_0x72dced[_0x5177('0x20')]=qs[_0x5177('0x20')](_0x8134f9['query']['offset']);}_0x72dced[_0x5177('0x3e')]=qs[_0x5177('0x3f')](_0x8134f9[_0x5177('0x33')][_0x5177('0x3f')]);_0x72dced[_0x5177('0x40')]=qs[_0x5177('0x35')](_[_0x5177('0x41')](_0x8134f9[_0x5177('0x33')],_0x49f6f1[_0x5177('0x35')]),_0x2233a2);if(_0x8134f9[_0x5177('0x33')][_0x5177('0x42')]){_0x72dced[_0x5177('0x40')]=_[_0x5177('0x43')](_0x72dced['where'],{'$or':_[_0x5177('0x32')](_0x2233a2,function(_0x2a4db1){if(_0x2a4db1['type']!==_0x5177('0x44')){var _0x56f297={};_0x56f297[_0x2a4db1[_0x5177('0x2c')]]={'$like':'%'+_0x8134f9[_0x5177('0x33')][_0x5177('0x42')]+'%'};return _0x56f297;}})});}_0x72dced=_['merge']({},_0x72dced,_0x8134f9['options']);var _0x210510={'where':_0x72dced[_0x5177('0x40')]};return db[_0x5177('0x2f')][_0x5177('0x22')](_0x210510)[_0x5177('0x28')](function(_0x3e710d){_0x42e1db[_0x5177('0x22')]=_0x3e710d;if(_0x8134f9[_0x5177('0x33')]['includeAll']){_0x72dced[_0x5177('0x45')]=[{'all':!![]}];}return db['VoiceMail']['findAll'](_0x72dced);})[_0x5177('0x28')](function(_0x17dc98){_0x42e1db['rows']=_0x17dc98;return _0x42e1db;})[_0x5177('0x28')](respondWithFilteredResult(_0x31eb9f,_0x72dced))['catch'](handleError(_0x31eb9f,null));};exports['show']=function(_0x46c833,_0x1769cd){var _0x262c71={'raw':!![],'where':{'id':_0x46c833[_0x5177('0x46')]['id']}},_0x3776b8={};_0x3776b8[_0x5177('0x37')]=_[_0x5177('0x34')](db['VoiceMail']['rawAttributes']);_0x3776b8[_0x5177('0x33')]=_['keys'](_0x46c833[_0x5177('0x33')]);_0x3776b8[_0x5177('0x35')]=_[_0x5177('0x36')](_0x3776b8[_0x5177('0x37')],_0x3776b8['query']);_0x262c71[_0x5177('0x38')]=_[_0x5177('0x36')](_0x3776b8[_0x5177('0x37')],qs[_0x5177('0x39')](_0x46c833[_0x5177('0x33')][_0x5177('0x39')]));_0x262c71[_0x5177('0x38')]=_0x262c71[_0x5177('0x38')][_0x5177('0x3a')]?_0x262c71[_0x5177('0x38')]:_0x3776b8[_0x5177('0x37')];if(_0x46c833['query'][_0x5177('0x47')]){_0x262c71['include']=[{'all':!![]}];}_0x262c71=_['merge']({},_0x262c71,_0x46c833['options']);return db[_0x5177('0x2f')][_0x5177('0x48')](_0x262c71)['then'](handleEntityNotFound(_0x1769cd,null))[_0x5177('0x28')](respondWithResult(_0x1769cd,null))[_0x5177('0x49')](handleError(_0x1769cd,null));};exports[_0x5177('0x4a')]=function(_0x4891fe,_0x1d4ae4){return db['VoiceMail']['create'](_0x4891fe['body'],{})[_0x5177('0x28')](function(_0x37d5dd){var _0x1300d7=_0x4891fe['user']['get']({'plain':!![]});if(!_0x1300d7)throw new Error(_0x5177('0x4b'));if(_0x1300d7['role']===_0x5177('0x4c')){var _0x9dd7a2=_0x37d5dd[_0x5177('0x4d')]({'plain':!![]});var _0x31a6e1=_0x5177('0x2a');return db[_0x5177('0x4e')][_0x5177('0x48')]({'where':{'name':_0x31a6e1,'userProfileId':_0x1300d7[_0x5177('0x4f')]},'raw':!![]})[_0x5177('0x28')](function(_0x217aca){if(_0x217aca&&_0x217aca[_0x5177('0x50')]===0x0){return db[_0x5177('0x2b')][_0x5177('0x4a')]({'name':_0x9dd7a2['name'],'resourceId':_0x9dd7a2['id'],'type':_0x217aca['name'],'sectionId':_0x217aca['id']},{})[_0x5177('0x28')](function(){return _0x37d5dd;});}else{return _0x37d5dd;}})['catch'](function(_0x649c6f){logger['error'](_0x5177('0x51'),_0x649c6f);throw _0x649c6f;});}return _0x37d5dd;})[_0x5177('0x28')](respondWithResult(_0x1d4ae4,0xc9))[_0x5177('0x49')](handleError(_0x1d4ae4,null));};exports['update']=function(_0x5be224,_0x19884e){if(_0x5be224[_0x5177('0x52')]['id']){delete _0x5be224[_0x5177('0x52')]['id'];}return db[_0x5177('0x2f')]['find']({'where':{'id':_0x5be224['params']['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x19884e,null))[_0x5177('0x28')](saveUpdates(_0x5be224[_0x5177('0x52')],null))[_0x5177('0x28')](respondWithResult(_0x19884e,null))['catch'](handleError(_0x19884e,null));};exports[_0x5177('0x29')]=function(_0x143aff,_0x3a18ad){return db['VoiceMail'][_0x5177('0x48')]({'where':{'id':_0x143aff[_0x5177('0x46')]['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x3a18ad,null))['then'](removeEntity(_0x3a18ad,null))[_0x5177('0x49')](handleError(_0x3a18ad,null));};exports['getMessages']=function(_0x40dfd6,_0x39fb92,_0x3268bd){return db['VoiceMail'][_0x5177('0x53')]({'where':{'id':_0x40dfd6[_0x5177('0x46')]['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x39fb92,null))[_0x5177('0x28')](function(_0xc7a59e){var _0x74589e;var _0x37380c={},_0x267599={};_0x267599['model']=_['keys'](db['VoiceMailMessage'][_0x5177('0x54')]);_0x267599[_0x5177('0x33')]=_[_0x5177('0x34')](_0x40dfd6[_0x5177('0x33')]);_0x267599[_0x5177('0x35')]=_[_0x5177('0x36')](_0x267599['model'],_0x267599['query']);_0x37380c[_0x5177('0x38')]=_[_0x5177('0x36')](_0x267599[_0x5177('0x37')],qs[_0x5177('0x39')](_0x40dfd6[_0x5177('0x33')][_0x5177('0x39')]));_0x37380c[_0x5177('0x38')]=_0x37380c[_0x5177('0x38')][_0x5177('0x3a')]?_0x37380c['attributes']:_0x267599[_0x5177('0x37')];if(!_0x40dfd6[_0x5177('0x33')]['hasOwnProperty'](_0x5177('0x3c'))){_0x37380c[_0x5177('0x3d')]=qs['limit'](_0x40dfd6[_0x5177('0x33')][_0x5177('0x3d')]);_0x37380c[_0x5177('0x20')]=qs['offset'](_0x40dfd6[_0x5177('0x33')][_0x5177('0x20')]);}_0x37380c['order']=qs['sort'](_0x40dfd6[_0x5177('0x33')]['sort']);_0x37380c[_0x5177('0x40')]=qs['filters'](_[_0x5177('0x41')](_0x40dfd6[_0x5177('0x33')],_0x267599['filters']));if(_0x40dfd6[_0x5177('0x33')][_0x5177('0x42')]){_0x37380c[_0x5177('0x40')]=_[_0x5177('0x43')](_0x37380c[_0x5177('0x40')],{'$or':_[_0x5177('0x32')](_0x37380c[_0x5177('0x38')],function(_0x58ebdd){var _0x26b733={};_0x26b733[_0x58ebdd]={'$like':'%'+_0x40dfd6['query']['filter']+'%'};return _0x26b733;})});}_0x37380c[_0x5177('0x40')]=_[_0x5177('0x43')](_0x37380c['where'],{'mailboxuser':_0xc7a59e[_0x5177('0x55')]});_0x37380c=_[_0x5177('0x43')]({},_0x37380c,_0x40dfd6[_0x5177('0x56')]);return db[_0x5177('0x57')][_0x5177('0x58')](_0x37380c)[_0x5177('0x28')](respondWithFilteredResult(_0x39fb92,_0x37380c));})[_0x5177('0x49')](handleError(_0x39fb92,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x597c=['voice_voicemail','mailbox_context','mailbox','context','util','api','moment','bluebird','request-promise','path','../../config/environment','./voiceMail.attributes','define','VoiceMail'];(function(_0x2333c2,_0x2da0ad){var _0x557550=function(_0x42b672){while(--_0x42b672){_0x2333c2['push'](_0x2333c2['shift']());}};_0x557550(++_0x2da0ad);}(_0x597c,0x1b6));var _0xc597=function(_0xf8b747,_0x10e2c4){_0xf8b747=_0xf8b747-0x0;var _0x2ff996=_0x597c[_0xf8b747];return _0x2ff996;};'use strict';var _=require('lodash');var util=require(_0xc597('0x0'));var logger=require('../../config/logger')(_0xc597('0x1'));var moment=require(_0xc597('0x2'));var BPromise=require(_0xc597('0x3'));var rp=require(_0xc597('0x4'));var fs=require('fs');var path=require(_0xc597('0x5'));var rimraf=require('rimraf');var config=require(_0xc597('0x6'));var attributes=require(_0xc597('0x7'));module['exports']=function(_0x21e555,_0x55bdd2){return _0x21e555[_0xc597('0x8')](_0xc597('0x9'),attributes,{'tableName':_0xc597('0xa'),'paranoid':![],'indexes':[{'name':_0xc597('0xb'),'fields':[_0xc597('0xc'),_0xc597('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x55bd=['moment','bluebird','request-promise','path','rimraf','./voiceMail.attributes','exports','define','VoiceMail','voice_voicemail','mailbox','context','lodash','util','../../config/logger','api'];(function(_0x4089c7,_0x120195){var _0x33dd04=function(_0x4e4fea){while(--_0x4e4fea){_0x4089c7['push'](_0x4089c7['shift']());}};_0x33dd04(++_0x120195);}(_0x55bd,0xdc));var _0xd55b=function(_0x1badb1,_0x375ec6){_0x1badb1=_0x1badb1-0x0;var _0x260dae=_0x55bd[_0x1badb1];return _0x260dae;};'use strict';var _=require(_0xd55b('0x0'));var util=require(_0xd55b('0x1'));var logger=require(_0xd55b('0x2'))(_0xd55b('0x3'));var moment=require(_0xd55b('0x4'));var BPromise=require(_0xd55b('0x5'));var rp=require(_0xd55b('0x6'));var fs=require('fs');var path=require(_0xd55b('0x7'));var rimraf=require(_0xd55b('0x8'));var config=require('../../config/environment');var attributes=require(_0xd55b('0x9'));module[_0xd55b('0xa')]=function(_0x14d554,_0x1af80d){return _0x14d554[_0xd55b('0xb')](_0xd55b('0xc'),attributes,{'tableName':_0xd55b('0xd'),'paranoid':![],'indexes':[{'name':'mailbox_context','fields':[_0xd55b('0xe'),_0xd55b('0xf')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea55=['jayson/promise','client','http','request','info','VoiceMail,\x20%s,\x20%s','debug','VoiceMail,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x5b0b02,_0x29b273){var _0x30259f=function(_0x5249db){while(--_0x5249db){_0x5b0b02['push'](_0x5b0b02['shift']());}};_0x30259f(++_0x29b273);}(_0xea55,0x176));var _0x5ea5=function(_0x4b5e57,_0x2af7c5){_0x4b5e57=_0x4b5e57-0x0;var _0x47359f=_0xea55[_0x4b5e57];return _0x47359f;};'use strict';var _=require(_0x5ea5('0x0'));var util=require(_0x5ea5('0x1'));var moment=require(_0x5ea5('0x2'));var BPromise=require(_0x5ea5('0x3'));var rs=require(_0x5ea5('0x4'));var fs=require('fs');var Redis=require(_0x5ea5('0x5'));var db=require(_0x5ea5('0x6'))['db'];var utils=require(_0x5ea5('0x7'));var logger=require(_0x5ea5('0x8'))(_0x5ea5('0x9'));var config=require('../../config/environment');var jayson=require(_0x5ea5('0xa'));var client=jayson[_0x5ea5('0xb')][_0x5ea5('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2f9730,_0xfb623b,_0x5e90dc){return new BPromise(function(_0x5f224d,_0xad668e){return client[_0x5ea5('0xd')](_0x2f9730,_0x5e90dc)['then'](function(_0x8daa64){logger[_0x5ea5('0xe')](_0x5ea5('0xf'),_0xfb623b,'request\x20sent');logger[_0x5ea5('0x10')](_0x5ea5('0x11'),_0xfb623b,'request\x20sent',JSON[_0x5ea5('0x12')](_0x8daa64));if(_0x8daa64[_0x5ea5('0x13')]){if(_0x8daa64[_0x5ea5('0x13')]['code']===0x1f4){logger[_0x5ea5('0x13')](_0x5ea5('0xf'),_0xfb623b,_0x8daa64[_0x5ea5('0x13')]['message']);return _0xad668e(_0x8daa64[_0x5ea5('0x13')][_0x5ea5('0x14')]);}logger[_0x5ea5('0x13')](_0x5ea5('0xf'),_0xfb623b,_0x8daa64[_0x5ea5('0x13')][_0x5ea5('0x14')]);return _0x5f224d(_0x8daa64[_0x5ea5('0x13')][_0x5ea5('0x14')]);}else{logger[_0x5ea5('0xe')](_0x5ea5('0xf'),_0xfb623b,_0x5ea5('0x15'));_0x5f224d(_0x8daa64[_0x5ea5('0x16')]['message']);}})[_0x5ea5('0x17')](function(_0xc87c3b){logger[_0x5ea5('0x13')](_0x5ea5('0xf'),_0xfb623b,_0xc87c3b);_0xad668e(_0xc87c3b);});});}
\ No newline at end of file
+var _0x417b=['code','message','catch','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','VoiceMail,\x20%s,\x20%s','request\x20sent','debug','error'];(function(_0x4866ef,_0x5193d7){var _0x5b8add=function(_0xe567c){while(--_0xe567c){_0x4866ef['push'](_0x4866ef['shift']());}};_0x5b8add(++_0x5193d7);}(_0x417b,0xb7));var _0xb417=function(_0x14c71a,_0x4afbcd){_0x14c71a=_0x14c71a-0x0;var _0x4f6540=_0x417b[_0x14c71a];return _0x4f6540;};'use strict';var _=require(_0xb417('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xb417('0x1'));var rs=require(_0xb417('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb417('0x3'))['db'];var utils=require(_0xb417('0x4'));var logger=require(_0xb417('0x5'))(_0xb417('0x6'));var config=require('../../config/environment');var jayson=require(_0xb417('0x7'));var client=jayson[_0xb417('0x8')][_0xb417('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xa76fe5,_0x44a06a,_0x209650){return new BPromise(function(_0x23c5e7,_0x1fac91){return client[_0xb417('0xa')](_0xa76fe5,_0x209650)[_0xb417('0xb')](function(_0x5ed703){logger[_0xb417('0xc')](_0xb417('0xd'),_0x44a06a,_0xb417('0xe'));logger[_0xb417('0xf')]('VoiceMail,\x20%s,\x20%s,\x20%s',_0x44a06a,_0xb417('0xe'),JSON['stringify'](_0x5ed703));if(_0x5ed703['error']){if(_0x5ed703[_0xb417('0x10')][_0xb417('0x11')]===0x1f4){logger['error']('VoiceMail,\x20%s,\x20%s',_0x44a06a,_0x5ed703[_0xb417('0x10')][_0xb417('0x12')]);return _0x1fac91(_0x5ed703['error'][_0xb417('0x12')]);}logger[_0xb417('0x10')](_0xb417('0xd'),_0x44a06a,_0x5ed703[_0xb417('0x10')]['message']);return _0x23c5e7(_0x5ed703[_0xb417('0x10')][_0xb417('0x12')]);}else{logger[_0xb417('0xc')](_0xb417('0xd'),_0x44a06a,_0xb417('0xe'));_0x23c5e7(_0x5ed703['result'][_0xb417('0x12')]);}})[_0xb417('0x13')](function(_0x4c3ef6){logger[_0xb417('0x10')]('VoiceMail,\x20%s,\x20%s',_0x44a06a,_0x4c3ef6);_0x1fac91(_0x4c3ef6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40dd=['util','path','connect-timeout','Router','fs-extra','../../components/auth/service','get','isAuthenticated','index','/:id','show','/:id/download','download','post','create','put','destroy','exports','multer'];(function(_0x58641f,_0x37a8f4){var _0x503f3f=function(_0x3448e6){while(--_0x3448e6){_0x58641f['push'](_0x58641f['shift']());}};_0x503f3f(++_0x37a8f4);}(_0x40dd,0x1ed));var _0xd40d=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0x40dd[_0x491a7f];return _0x3d8f44;};'use strict';var multer=require(_0xd40d('0x0'));var util=require(_0xd40d('0x1'));var path=require(_0xd40d('0x2'));var timeout=require(_0xd40d('0x3'));var express=require('express');var router=express[_0xd40d('0x4')]();var fs_extra=require(_0xd40d('0x5'));var auth=require(_0xd40d('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./voiceMailMessage.controller');router[_0xd40d('0x7')]('/',auth[_0xd40d('0x8')](),controller[_0xd40d('0x9')]);router['get'](_0xd40d('0xa'),auth[_0xd40d('0x8')](),controller[_0xd40d('0xb')]);router[_0xd40d('0x7')](_0xd40d('0xc'),auth[_0xd40d('0x8')](),controller[_0xd40d('0xd')]);router[_0xd40d('0xe')]('/',auth[_0xd40d('0x8')](),controller[_0xd40d('0xf')]);router[_0xd40d('0x10')](_0xd40d('0xa'),auth[_0xd40d('0x8')](),controller['update']);router['delete']('/:id',auth[_0xd40d('0x8')](),controller[_0xd40d('0x11')]);module[_0xd40d('0x12')]=router;
\ No newline at end of file
+var _0x5d0a=['connect-timeout','express','Router','fs-extra','../../components/auth/service','get','isAuthenticated','index','/:id','show','/:id/download','download','post','create','update','delete','destroy','exports','path'];(function(_0x56e53b,_0x27fa9f){var _0x2ac35c=function(_0x51b9ce){while(--_0x51b9ce){_0x56e53b['push'](_0x56e53b['shift']());}};_0x2ac35c(++_0x27fa9f);}(_0x5d0a,0x155));var _0xa5d0=function(_0x5410f4,_0xfc25c5){_0x5410f4=_0x5410f4-0x0;var _0x3347c2=_0x5d0a[_0x5410f4];return _0x3347c2;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xa5d0('0x0'));var timeout=require(_0xa5d0('0x1'));var express=require(_0xa5d0('0x2'));var router=express[_0xa5d0('0x3')]();var fs_extra=require(_0xa5d0('0x4'));var auth=require(_0xa5d0('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./voiceMailMessage.controller');router[_0xa5d0('0x6')]('/',auth[_0xa5d0('0x7')](),controller[_0xa5d0('0x8')]);router['get'](_0xa5d0('0x9'),auth[_0xa5d0('0x7')](),controller[_0xa5d0('0xa')]);router[_0xa5d0('0x6')](_0xa5d0('0xb'),auth[_0xa5d0('0x7')](),controller[_0xa5d0('0xc')]);router[_0xa5d0('0xd')]('/',auth['isAuthenticated'](),controller[_0xa5d0('0xe')]);router['put'](_0xa5d0('0x9'),auth[_0xa5d0('0x7')](),controller[_0xa5d0('0xf')]);router[_0xa5d0('0x10')](_0xa5d0('0x9'),auth[_0xa5d0('0x7')](),controller[_0xa5d0('0x11')]);module[_0xa5d0('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x135f=['long','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize','exports','STRING','BLOB'];(function(_0xd09668,_0x1435b2){var _0x68726=function(_0x54a030){while(--_0x54a030){_0xd09668['push'](_0xd09668['shift']());}};_0x68726(++_0x1435b2);}(_0x135f,0x92));var _0xf135=function(_0x21bbe5,_0x5791c4){_0x21bbe5=_0x21bbe5-0x0;var _0x23246b=_0x135f[_0x21bbe5];return _0x23246b;};'use strict';var Sequelize=require(_0xf135('0x0'));module[_0xf135('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x1b64f3){return this['getDataValue']('id');}},'msgnum':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'context':{'type':Sequelize['STRING'],'defaultValue':''},'macrocontext':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'callerid':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'origtime':{'type':Sequelize['STRING'],'defaultValue':''},'duration':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'mailboxcontext':{'type':Sequelize['STRING'],'defaultValue':''},'recording':{'type':Sequelize[_0xf135('0x3')](_0xf135('0x4')),'defaultValue':null},'flag':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'msg_id':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'stamp':{'type':'TIMESTAMP','defaultValue':Sequelize['literal'](_0xf135('0x5'))}};
\ No newline at end of file
+var _0x4ceb=['sequelize','VIRTUAL','getDataValue','INTEGER','STRING','BLOB','long','TIMESTAMP','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x4ceb,0x90));var _0xb4ce=function(_0x3ab9ee,_0x4a74b8){_0x3ab9ee=_0x3ab9ee-0x0;var _0x82ee88=_0x4ceb[_0x3ab9ee];return _0x82ee88;};'use strict';var Sequelize=require(_0xb4ce('0x0'));module['exports']={'name':{'type':Sequelize[_0xb4ce('0x1')],'get':function(_0x10072b){return this[_0xb4ce('0x2')]('id');}},'msgnum':{'type':Sequelize[_0xb4ce('0x3')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0xb4ce('0x4')],'defaultValue':''},'context':{'type':Sequelize[_0xb4ce('0x4')],'defaultValue':''},'macrocontext':{'type':Sequelize['STRING'],'defaultValue':''},'callerid':{'type':Sequelize[_0xb4ce('0x4')],'defaultValue':''},'origtime':{'type':Sequelize[_0xb4ce('0x4')],'defaultValue':''},'duration':{'type':Sequelize['STRING'],'defaultValue':''},'mailboxuser':{'type':Sequelize['STRING'],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0xb4ce('0x4')],'defaultValue':''},'recording':{'type':Sequelize[_0xb4ce('0x5')](_0xb4ce('0x6')),'defaultValue':null},'flag':{'type':Sequelize[_0xb4ce('0x4')],'defaultValue':''},'msg_id':{'type':Sequelize[_0xb4ce('0x4')],'defaultValue':''},'stamp':{'type':_0xb4ce('0x7'),'defaultValue':Sequelize['literal'](_0xb4ce('0x8'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3754=['fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','type','VIRTUAL','filter','options','findAll','catch','params','keys','rawAttributes','include','find','body','download','recording','Sequelize','ValidationError','VoiceMailMessage\x20not\x20found','attachment','Content-Disposition','attachment;\x20filename=\x22','msg_id','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','VoiceMailMessage','fieldName','key','model','differenceBy','query','attributes','intersection'];(function(_0x54c6cf,_0x452c6e){var _0x450076=function(_0x501454){while(--_0x501454){_0x54c6cf['push'](_0x54c6cf['shift']());}};_0x450076(++_0x452c6e);}(_0x3754,0x166));var _0x4375=function(_0x433b3d,_0x50a7bf){_0x433b3d=_0x433b3d-0x0;var _0x4eddb7=_0x3754[_0x433b3d];return _0x4eddb7;};'use strict';var emlformat=require(_0x4375('0x0'));var rimraf=require(_0x4375('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4375('0x2'));var rp=require(_0x4375('0x3'));var moment=require(_0x4375('0x4'));var BPromise=require(_0x4375('0x5'));var Mustache=require(_0x4375('0x6'));var util=require(_0x4375('0x7'));var path=require(_0x4375('0x8'));var sox=require(_0x4375('0x9'));var csv=require(_0x4375('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x4375('0xb'));var crypto=require(_0x4375('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4375('0xa'));var querystring=require(_0x4375('0xd'));var Papa=require(_0x4375('0xe'));var Redis=require(_0x4375('0xf'));var authService=require(_0x4375('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x4375('0x11'));var hardwareService=require(_0x4375('0x12'));var logger=require(_0x4375('0x13'))(_0x4375('0x14'));var utils=require('../../config/utils');var config=require(_0x4375('0x15'));var licenseUtil=require(_0x4375('0x16'));var db=require(_0x4375('0x17'))['db'];function respondWithStatusCode(_0x4d62d2,_0x75312e){_0x75312e=_0x75312e||0xcc;return function(_0x6f9155){if(_0x6f9155){return _0x4d62d2['sendStatus'](_0x75312e);}return _0x4d62d2[_0x4375('0x18')](_0x75312e)[_0x4375('0x19')]();};}function respondWithResult(_0x5bbc0f,_0x3dcb03){_0x3dcb03=_0x3dcb03||0xc8;return function(_0x1a2be6){if(_0x1a2be6){return _0x5bbc0f[_0x4375('0x18')](_0x3dcb03)['json'](_0x1a2be6);}};}function respondWithFilteredResult(_0x5296d7,_0x206092){return function(_0x2d028d){if(_0x2d028d){var _0x27b508=typeof _0x206092[_0x4375('0x1a')]===_0x4375('0x1b')&&typeof _0x206092[_0x4375('0x1c')]===_0x4375('0x1b');var _0x230230=_0x2d028d['count'];var _0x432c47=_0x27b508?0x0:_0x206092[_0x4375('0x1a')];var _0x54cb3f=_0x27b508?_0x2d028d[_0x4375('0x1d')]:_0x206092[_0x4375('0x1a')]+_0x206092[_0x4375('0x1c')];var _0x8c4c;if(_0x54cb3f>=_0x230230){_0x54cb3f=_0x230230;_0x8c4c=0xc8;}else{_0x8c4c=0xce;}_0x5296d7['status'](_0x8c4c);return _0x5296d7[_0x4375('0x1e')](_0x4375('0x1f'),_0x432c47+'-'+_0x54cb3f+'/'+_0x230230)['json'](_0x2d028d);}return null;};}function patchUpdates(_0x3a78a3){return function(_0x505dde){try{jsonpatch[_0x4375('0x20')](_0x505dde,_0x3a78a3,!![]);}catch(_0x19735e){return BPromise[_0x4375('0x21')](_0x19735e);}return _0x505dde[_0x4375('0x22')]();};}function saveUpdates(_0x472dfc,_0xb791b4){return function(_0x4bdae5){if(_0x4bdae5){return _0x4bdae5[_0x4375('0x23')](_0x472dfc)[_0x4375('0x24')](function(_0xf81e08){return _0xf81e08;});}return null;};}function removeEntity(_0x104b40,_0x42eb8f){return function(_0x2422c4){if(_0x2422c4){return _0x2422c4[_0x4375('0x25')]()[_0x4375('0x24')](function(){_0x104b40[_0x4375('0x18')](0xcc)[_0x4375('0x19')]();});}};}function handleEntityNotFound(_0x59f350,_0x11f773){return function(_0x15bcb3){if(!_0x15bcb3){_0x59f350['sendStatus'](0x194);}return _0x15bcb3;};}function handleError(_0x1e56e3,_0x14448a){_0x14448a=_0x14448a||0x1f4;return function(_0x1853d9){logger[_0x4375('0x26')](_0x1853d9[_0x4375('0x27')]);if(_0x1853d9[_0x4375('0x28')]){delete _0x1853d9[_0x4375('0x28')];}_0x1e56e3[_0x4375('0x18')](_0x14448a)[_0x4375('0x29')](_0x1853d9);};}exports[_0x4375('0x2a')]=function(_0x2fddda,_0x1add6b){var _0x551425={},_0x314695={},_0x2b59a3={'count':0x0,'rows':[]};var _0x3f35b1=_[_0x4375('0x2b')](db[_0x4375('0x2c')]['rawAttributes'],function(_0x3af904){return{'name':_0x3af904[_0x4375('0x2d')],'type':_0x3af904['type'][_0x4375('0x2e')]};});_0x314695[_0x4375('0x2f')]=_[_0x4375('0x30')](_[_0x4375('0x2b')](_0x3f35b1,'name'),['name']);_0x314695[_0x4375('0x31')]=_['keys'](_0x2fddda[_0x4375('0x31')]);_0x314695['filters']=_['intersection'](_0x314695[_0x4375('0x2f')],_0x314695[_0x4375('0x31')]);_0x551425[_0x4375('0x32')]=_[_0x4375('0x33')](_0x314695['model'],qs[_0x4375('0x34')](_0x2fddda[_0x4375('0x31')][_0x4375('0x34')]));_0x551425['attributes']=_0x551425[_0x4375('0x32')][_0x4375('0x35')]?_0x551425['attributes']:_0x314695['model'];if(!_0x2fddda['query'][_0x4375('0x36')](_0x4375('0x37'))){_0x551425[_0x4375('0x1c')]=qs[_0x4375('0x1c')](_0x2fddda[_0x4375('0x31')][_0x4375('0x1c')]);_0x551425[_0x4375('0x1a')]=qs[_0x4375('0x1a')](_0x2fddda['query']['offset']);}_0x551425['order']=qs['sort'](_0x2fddda['query'][_0x4375('0x38')]);_0x551425[_0x4375('0x39')]=qs[_0x4375('0x3a')](_[_0x4375('0x3b')](_0x2fddda[_0x4375('0x31')],_0x314695[_0x4375('0x3a')]),_0x3f35b1);if(_0x2fddda['query']['filter']){_0x551425['where']=_[_0x4375('0x3c')](_0x551425[_0x4375('0x39')],{'$or':_['map'](_0x3f35b1,function(_0x371b32){if(_0x371b32[_0x4375('0x3d')]!==_0x4375('0x3e')){var _0x1cfd2f={};_0x1cfd2f[_0x371b32[_0x4375('0x28')]]={'$like':'%'+_0x2fddda['query'][_0x4375('0x3f')]+'%'};return _0x1cfd2f;}})});}_0x551425=_['merge']({},_0x551425,_0x2fddda[_0x4375('0x40')]);var _0x95424c={'where':_0x551425[_0x4375('0x39')]};return db[_0x4375('0x2c')][_0x4375('0x1d')](_0x95424c)['then'](function(_0x4186e9){_0x2b59a3['count']=_0x4186e9;if(_0x2fddda[_0x4375('0x31')]['includeAll']){_0x551425['include']=[{'all':!![]}];}return db['VoiceMailMessage'][_0x4375('0x41')](_0x551425);})[_0x4375('0x24')](function(_0x589b10){_0x2b59a3['rows']=_0x589b10;return _0x2b59a3;})[_0x4375('0x24')](respondWithFilteredResult(_0x1add6b,_0x551425))[_0x4375('0x42')](handleError(_0x1add6b,null));};exports['show']=function(_0x54ac6f,_0x43bb2d){var _0x16c1fd={'raw':!![],'where':{'id':_0x54ac6f[_0x4375('0x43')]['id']}},_0x3bc0b3={};_0x3bc0b3[_0x4375('0x2f')]=_[_0x4375('0x44')](db[_0x4375('0x2c')][_0x4375('0x45')]);_0x3bc0b3['query']=_[_0x4375('0x44')](_0x54ac6f[_0x4375('0x31')]);_0x3bc0b3[_0x4375('0x3a')]=_[_0x4375('0x33')](_0x3bc0b3[_0x4375('0x2f')],_0x3bc0b3[_0x4375('0x31')]);_0x16c1fd[_0x4375('0x32')]=_[_0x4375('0x33')](_0x3bc0b3[_0x4375('0x2f')],qs[_0x4375('0x34')](_0x54ac6f['query'][_0x4375('0x34')]));_0x16c1fd[_0x4375('0x32')]=_0x16c1fd[_0x4375('0x32')][_0x4375('0x35')]?_0x16c1fd[_0x4375('0x32')]:_0x3bc0b3[_0x4375('0x2f')];if(_0x54ac6f[_0x4375('0x31')]['includeAll']){_0x16c1fd[_0x4375('0x46')]=[{'all':!![]}];}_0x16c1fd=_[_0x4375('0x3c')]({},_0x16c1fd,_0x54ac6f[_0x4375('0x40')]);return db[_0x4375('0x2c')][_0x4375('0x47')](_0x16c1fd)[_0x4375('0x24')](handleEntityNotFound(_0x43bb2d,null))[_0x4375('0x24')](respondWithResult(_0x43bb2d,null))['catch'](handleError(_0x43bb2d,null));};exports['create']=function(_0x2e6bc8,_0x15ecb6){return db[_0x4375('0x2c')]['create'](_0x2e6bc8[_0x4375('0x48')],{})[_0x4375('0x24')](respondWithResult(_0x15ecb6,0xc9))['catch'](handleError(_0x15ecb6,null));};exports[_0x4375('0x23')]=function(_0x4389ce,_0xfde4b7){if(_0x4389ce['body']['id']){delete _0x4389ce[_0x4375('0x48')]['id'];}return db[_0x4375('0x2c')][_0x4375('0x47')]({'where':{'id':_0x4389ce[_0x4375('0x43')]['id']}})[_0x4375('0x24')](handleEntityNotFound(_0xfde4b7,null))[_0x4375('0x24')](saveUpdates(_0x4389ce[_0x4375('0x48')],null))[_0x4375('0x24')](respondWithResult(_0xfde4b7,null))[_0x4375('0x42')](handleError(_0xfde4b7,null));};exports[_0x4375('0x25')]=function(_0x452bac,_0xae7e50){return db['VoiceMailMessage']['find']({'where':{'id':_0x452bac[_0x4375('0x43')]['id']}})[_0x4375('0x24')](handleEntityNotFound(_0xae7e50,null))[_0x4375('0x24')](removeEntity(_0xae7e50,null))[_0x4375('0x42')](handleError(_0xae7e50,null));};exports[_0x4375('0x49')]=function(_0x5b6741,_0x4a58f8,_0x23b260){return db[_0x4375('0x2c')][_0x4375('0x47')]({'where':{'id':_0x5b6741[_0x4375('0x43')]['id']},'attributes':['id',_0x4375('0x4a'),'msg_id']})['then'](handleEntityNotFound(_0x4a58f8,null))[_0x4375('0x24')](function(_0x3fc6aa){if(_0x3fc6aa){if(!_0x3fc6aa[_0x4375('0x4a')]){throw new db[(_0x4375('0x4b'))][(_0x4375('0x4c'))](_0x4375('0x4d'));}var _0x2a6bfb={'Content-Type':'audio/wav','Content-Disposition':_0x4375('0x4e')};if(_0x3fc6aa['msg_id']){_0x2a6bfb[_0x4375('0x4f')]=_0x4375('0x50')+_0x3fc6aa[_0x4375('0x51')]+'.wav\x22';}_0x4a58f8[_0x4375('0x1e')](_0x2a6bfb);return _0x4a58f8[_0x4375('0x29')](new Buffer(_0x3fc6aa[_0x4375('0x4a')]));}})[_0x4375('0x42')](handleError(_0x4a58f8,null));};
\ No newline at end of file
+var _0x9e67=['util','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','json','undefined','limit','offset','count','Content-Range','apply','save','update','then','destroy','end','sendStatus','error','stack','send','map','fieldName','type','key','name','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','VoiceMailMessage','include','findAll','rows','show','params','rawAttributes','keys','includeAll','find','catch','create','body','download','recording','msg_id','ValidationError','audio/wav','attachment','Content-Disposition','.wav\x22','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache'];(function(_0x36fd99,_0x489822){var _0x3db617=function(_0x5af403){while(--_0x5af403){_0x36fd99['push'](_0x36fd99['shift']());}};_0x3db617(++_0x489822);}(_0x9e67,0xa3));var _0x79e6=function(_0x175d7a,_0x4ae54e){_0x175d7a=_0x175d7a-0x0;var _0x5aa1e1=_0x9e67[_0x175d7a];return _0x5aa1e1;};'use strict';var emlformat=require(_0x79e6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x79e6('0x1'));var jsonpatch=require(_0x79e6('0x2'));var rp=require(_0x79e6('0x3'));var moment=require(_0x79e6('0x4'));var BPromise=require(_0x79e6('0x5'));var Mustache=require(_0x79e6('0x6'));var util=require(_0x79e6('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x79e6('0x8'));var ejs=require(_0x79e6('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x79e6('0xa'));var squel=require(_0x79e6('0xb'));var crypto=require(_0x79e6('0xc'));var jsforce=require(_0x79e6('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x79e6('0x8'));var querystring=require(_0x79e6('0xe'));var Papa=require(_0x79e6('0xf'));var Redis=require(_0x79e6('0x10'));var authService=require(_0x79e6('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x79e6('0x12'));var hardwareService=require(_0x79e6('0x13'));var logger=require(_0x79e6('0x14'))(_0x79e6('0x15'));var utils=require(_0x79e6('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x79e6('0x17'));var db=require(_0x79e6('0x18'))['db'];function respondWithStatusCode(_0xf7b9a3,_0x575175){_0x575175=_0x575175||0xcc;return function(_0x142084){if(_0x142084){return _0xf7b9a3['sendStatus'](_0x575175);}return _0xf7b9a3['status'](_0x575175)['end']();};}function respondWithResult(_0x3d98c4,_0x5625d0){_0x5625d0=_0x5625d0||0xc8;return function(_0x5ec997){if(_0x5ec997){return _0x3d98c4[_0x79e6('0x19')](_0x5625d0)[_0x79e6('0x1a')](_0x5ec997);}};}function respondWithFilteredResult(_0x316ad2,_0x2c14e0){return function(_0x5a8be1){if(_0x5a8be1){var _0x25ee1d=typeof _0x2c14e0['offset']===_0x79e6('0x1b')&&typeof _0x2c14e0[_0x79e6('0x1c')]===_0x79e6('0x1b');var _0x484c22=_0x5a8be1['count'];var _0x411875=_0x25ee1d?0x0:_0x2c14e0[_0x79e6('0x1d')];var _0x657a2f=_0x25ee1d?_0x5a8be1[_0x79e6('0x1e')]:_0x2c14e0[_0x79e6('0x1d')]+_0x2c14e0[_0x79e6('0x1c')];var _0x12a07f;if(_0x657a2f>=_0x484c22){_0x657a2f=_0x484c22;_0x12a07f=0xc8;}else{_0x12a07f=0xce;}_0x316ad2[_0x79e6('0x19')](_0x12a07f);return _0x316ad2['set'](_0x79e6('0x1f'),_0x411875+'-'+_0x657a2f+'/'+_0x484c22)[_0x79e6('0x1a')](_0x5a8be1);}return null;};}function patchUpdates(_0x462004){return function(_0x2e71ab){try{jsonpatch[_0x79e6('0x20')](_0x2e71ab,_0x462004,!![]);}catch(_0x5b81ee){return BPromise['reject'](_0x5b81ee);}return _0x2e71ab[_0x79e6('0x21')]();};}function saveUpdates(_0x14f7a3,_0x4d20e2){return function(_0xd922c9){if(_0xd922c9){return _0xd922c9[_0x79e6('0x22')](_0x14f7a3)[_0x79e6('0x23')](function(_0xfb7f54){return _0xfb7f54;});}return null;};}function removeEntity(_0x5750e4,_0x4b0131){return function(_0x274616){if(_0x274616){return _0x274616[_0x79e6('0x24')]()['then'](function(){_0x5750e4['status'](0xcc)[_0x79e6('0x25')]();});}};}function handleEntityNotFound(_0x2c4ac8,_0x564b76){return function(_0x49c34a){if(!_0x49c34a){_0x2c4ac8[_0x79e6('0x26')](0x194);}return _0x49c34a;};}function handleError(_0x2b3276,_0x336a12){_0x336a12=_0x336a12||0x1f4;return function(_0xe706b5){logger[_0x79e6('0x27')](_0xe706b5[_0x79e6('0x28')]);if(_0xe706b5['name']){delete _0xe706b5['name'];}_0x2b3276[_0x79e6('0x19')](_0x336a12)[_0x79e6('0x29')](_0xe706b5);};}exports['index']=function(_0x21fbd5,_0x5cd7f7){var _0x52ffbc={},_0x24461e={},_0x54c2e0={'count':0x0,'rows':[]};var _0x4996bd=_[_0x79e6('0x2a')](db['VoiceMailMessage']['rawAttributes'],function(_0xedc9a7){return{'name':_0xedc9a7[_0x79e6('0x2b')],'type':_0xedc9a7[_0x79e6('0x2c')][_0x79e6('0x2d')]};});_0x24461e['model']=_['differenceBy'](_[_0x79e6('0x2a')](_0x4996bd,_0x79e6('0x2e')),[_0x79e6('0x2e')]);_0x24461e[_0x79e6('0x2f')]=_['keys'](_0x21fbd5['query']);_0x24461e['filters']=_[_0x79e6('0x30')](_0x24461e[_0x79e6('0x31')],_0x24461e[_0x79e6('0x2f')]);_0x52ffbc['attributes']=_[_0x79e6('0x30')](_0x24461e[_0x79e6('0x31')],qs[_0x79e6('0x32')](_0x21fbd5['query']['fields']));_0x52ffbc[_0x79e6('0x33')]=_0x52ffbc[_0x79e6('0x33')][_0x79e6('0x34')]?_0x52ffbc[_0x79e6('0x33')]:_0x24461e[_0x79e6('0x31')];if(!_0x21fbd5['query'][_0x79e6('0x35')](_0x79e6('0x36'))){_0x52ffbc[_0x79e6('0x1c')]=qs['limit'](_0x21fbd5[_0x79e6('0x2f')][_0x79e6('0x1c')]);_0x52ffbc[_0x79e6('0x1d')]=qs['offset'](_0x21fbd5[_0x79e6('0x2f')][_0x79e6('0x1d')]);}_0x52ffbc[_0x79e6('0x37')]=qs[_0x79e6('0x38')](_0x21fbd5['query'][_0x79e6('0x38')]);_0x52ffbc['where']=qs[_0x79e6('0x39')](_[_0x79e6('0x3a')](_0x21fbd5[_0x79e6('0x2f')],_0x24461e[_0x79e6('0x39')]),_0x4996bd);if(_0x21fbd5[_0x79e6('0x2f')][_0x79e6('0x3b')]){_0x52ffbc[_0x79e6('0x3c')]=_[_0x79e6('0x3d')](_0x52ffbc[_0x79e6('0x3c')],{'$or':_[_0x79e6('0x2a')](_0x4996bd,function(_0x51e678){if(_0x51e678[_0x79e6('0x2c')]!==_0x79e6('0x3e')){var _0xc0ec5b={};_0xc0ec5b[_0x51e678[_0x79e6('0x2e')]]={'$like':'%'+_0x21fbd5[_0x79e6('0x2f')][_0x79e6('0x3b')]+'%'};return _0xc0ec5b;}})});}_0x52ffbc=_['merge']({},_0x52ffbc,_0x21fbd5[_0x79e6('0x3f')]);var _0x6b65e0={'where':_0x52ffbc['where']};return db[_0x79e6('0x40')][_0x79e6('0x1e')](_0x6b65e0)['then'](function(_0x50307b){_0x54c2e0[_0x79e6('0x1e')]=_0x50307b;if(_0x21fbd5['query']['includeAll']){_0x52ffbc[_0x79e6('0x41')]=[{'all':!![]}];}return db[_0x79e6('0x40')][_0x79e6('0x42')](_0x52ffbc);})[_0x79e6('0x23')](function(_0x28ae21){_0x54c2e0[_0x79e6('0x43')]=_0x28ae21;return _0x54c2e0;})[_0x79e6('0x23')](respondWithFilteredResult(_0x5cd7f7,_0x52ffbc))['catch'](handleError(_0x5cd7f7,null));};exports[_0x79e6('0x44')]=function(_0x1b533e,_0xbee73e){var _0x180ed7={'raw':!![],'where':{'id':_0x1b533e[_0x79e6('0x45')]['id']}},_0x22d082={};_0x22d082['model']=_['keys'](db[_0x79e6('0x40')][_0x79e6('0x46')]);_0x22d082['query']=_[_0x79e6('0x47')](_0x1b533e[_0x79e6('0x2f')]);_0x22d082[_0x79e6('0x39')]=_[_0x79e6('0x30')](_0x22d082[_0x79e6('0x31')],_0x22d082[_0x79e6('0x2f')]);_0x180ed7['attributes']=_[_0x79e6('0x30')](_0x22d082[_0x79e6('0x31')],qs['fields'](_0x1b533e['query'][_0x79e6('0x32')]));_0x180ed7['attributes']=_0x180ed7[_0x79e6('0x33')][_0x79e6('0x34')]?_0x180ed7['attributes']:_0x22d082['model'];if(_0x1b533e['query'][_0x79e6('0x48')]){_0x180ed7[_0x79e6('0x41')]=[{'all':!![]}];}_0x180ed7=_[_0x79e6('0x3d')]({},_0x180ed7,_0x1b533e[_0x79e6('0x3f')]);return db['VoiceMailMessage'][_0x79e6('0x49')](_0x180ed7)['then'](handleEntityNotFound(_0xbee73e,null))[_0x79e6('0x23')](respondWithResult(_0xbee73e,null))[_0x79e6('0x4a')](handleError(_0xbee73e,null));};exports[_0x79e6('0x4b')]=function(_0x1e10ce,_0x5ca769){return db['VoiceMailMessage'][_0x79e6('0x4b')](_0x1e10ce[_0x79e6('0x4c')],{})[_0x79e6('0x23')](respondWithResult(_0x5ca769,0xc9))['catch'](handleError(_0x5ca769,null));};exports[_0x79e6('0x22')]=function(_0xb400f8,_0x51ad74){if(_0xb400f8['body']['id']){delete _0xb400f8['body']['id'];}return db[_0x79e6('0x40')]['find']({'where':{'id':_0xb400f8[_0x79e6('0x45')]['id']}})[_0x79e6('0x23')](handleEntityNotFound(_0x51ad74,null))[_0x79e6('0x23')](saveUpdates(_0xb400f8['body'],null))['then'](respondWithResult(_0x51ad74,null))[_0x79e6('0x4a')](handleError(_0x51ad74,null));};exports[_0x79e6('0x24')]=function(_0x5d40b2,_0x20f302){return db[_0x79e6('0x40')][_0x79e6('0x49')]({'where':{'id':_0x5d40b2[_0x79e6('0x45')]['id']}})['then'](handleEntityNotFound(_0x20f302,null))['then'](removeEntity(_0x20f302,null))['catch'](handleError(_0x20f302,null));};exports[_0x79e6('0x4d')]=function(_0x1f2738,_0x2c4b3d,_0x4b1ee0){return db[_0x79e6('0x40')][_0x79e6('0x49')]({'where':{'id':_0x1f2738[_0x79e6('0x45')]['id']},'attributes':['id',_0x79e6('0x4e'),_0x79e6('0x4f')]})[_0x79e6('0x23')](handleEntityNotFound(_0x2c4b3d,null))[_0x79e6('0x23')](function(_0x2cecad){if(_0x2cecad){if(!_0x2cecad['recording']){throw new db['Sequelize'][(_0x79e6('0x50'))]('VoiceMailMessage\x20not\x20found');}var _0x1f8de5={'Content-Type':_0x79e6('0x51'),'Content-Disposition':_0x79e6('0x52')};if(_0x2cecad['msg_id']){_0x1f8de5[_0x79e6('0x53')]='attachment;\x20filename=\x22'+_0x2cecad[_0x79e6('0x4f')]+_0x79e6('0x54');}_0x2c4b3d['set'](_0x1f8de5);return _0x2c4b3d[_0x79e6('0x29')](new Buffer(_0x2cecad[_0x79e6('0x4e')]));}})[_0x79e6('0x4a')](handleError(_0x2c4b3d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x82a0=['dir','lodash','util','moment','bluebird','request-promise','path','rimraf','./voiceMailMessage.attributes','exports','define','VoiceMailMessage','voice_voicemail_messages'];(function(_0x5d64f3,_0x374d1a){var _0x2e5c81=function(_0x1de19d){while(--_0x1de19d){_0x5d64f3['push'](_0x5d64f3['shift']());}};_0x2e5c81(++_0x374d1a);}(_0x82a0,0xd1));var _0x082a=function(_0x2442b9,_0x3d87e9){_0x2442b9=_0x2442b9-0x0;var _0x31b571=_0x82a0[_0x2442b9];return _0x31b571;};'use strict';var _=require(_0x082a('0x0'));var util=require(_0x082a('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x082a('0x2'));var BPromise=require(_0x082a('0x3'));var rp=require(_0x082a('0x4'));var fs=require('fs');var path=require(_0x082a('0x5'));var rimraf=require(_0x082a('0x6'));var config=require('../../config/environment');var attributes=require(_0x082a('0x7'));module[_0x082a('0x8')]=function(_0x644d8b,_0x2f8d53){return _0x644d8b[_0x082a('0x9')](_0x082a('0xa'),attributes,{'tableName':_0x082a('0xb'),'paranoid':![],'indexes':[{'name':'dir','fields':[_0x082a('0xc')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x4e25=['api','moment','request-promise','path','rimraf','./voiceMailMessage.attributes','exports','define','voice_voicemail_messages','dir','util','../../config/logger'];(function(_0x730fe6,_0x24d742){var _0x46c9cb=function(_0x6340a6){while(--_0x6340a6){_0x730fe6['push'](_0x730fe6['shift']());}};_0x46c9cb(++_0x24d742);}(_0x4e25,0x17e));var _0x54e2=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x4e25[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0x54e2('0x0'));var logger=require(_0x54e2('0x1'))(_0x54e2('0x2'));var moment=require(_0x54e2('0x3'));var BPromise=require('bluebird');var rp=require(_0x54e2('0x4'));var fs=require('fs');var path=require(_0x54e2('0x5'));var rimraf=require(_0x54e2('0x6'));var config=require('../../config/environment');var attributes=require(_0x54e2('0x7'));module[_0x54e2('0x8')]=function(_0x1430d2,_0x197e9a){return _0x1430d2[_0x54e2('0x9')]('VoiceMailMessage',attributes,{'tableName':_0x54e2('0xa'),'paranoid':![],'indexes':[{'name':'dir','fields':[_0x54e2('0xb')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x513b=['randomstring','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','VoiceMailMessage,\x20%s,\x20%s','request\x20sent','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird'];(function(_0x4cdf1d,_0x354903){var _0x295988=function(_0x408988){while(--_0x408988){_0x4cdf1d['push'](_0x4cdf1d['shift']());}};_0x295988(++_0x354903);}(_0x513b,0xb9));var _0xb513=function(_0x391435,_0x33e747){_0x391435=_0x391435-0x0;var _0x2f6b37=_0x513b[_0x391435];return _0x2f6b37;};'use strict';var _=require(_0xb513('0x0'));var util=require(_0xb513('0x1'));var moment=require(_0xb513('0x2'));var BPromise=require(_0xb513('0x3'));var rs=require(_0xb513('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xb513('0x5'))('rpc');var config=require(_0xb513('0x6'));var jayson=require(_0xb513('0x7'));var client=jayson[_0xb513('0x8')][_0xb513('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x550a63,_0x127263,_0x2e3834){return new BPromise(function(_0x440e02,_0x232f79){return client['request'](_0x550a63,_0x2e3834)[_0xb513('0xa')](function(_0x5424a8){logger[_0xb513('0xb')](_0xb513('0xc'),_0x127263,_0xb513('0xd'));logger[_0xb513('0xe')](_0xb513('0xf'),_0x127263,_0xb513('0xd'),JSON[_0xb513('0x10')](_0x5424a8));if(_0x5424a8['error']){if(_0x5424a8[_0xb513('0x11')][_0xb513('0x12')]===0x1f4){logger[_0xb513('0x11')]('VoiceMailMessage,\x20%s,\x20%s',_0x127263,_0x5424a8[_0xb513('0x11')]['message']);return _0x232f79(_0x5424a8[_0xb513('0x11')][_0xb513('0x13')]);}logger[_0xb513('0x11')](_0xb513('0xc'),_0x127263,_0x5424a8['error'][_0xb513('0x13')]);return _0x440e02(_0x5424a8['error'][_0xb513('0x13')]);}else{logger['info']('VoiceMailMessage,\x20%s,\x20%s',_0x127263,_0xb513('0xd'));_0x440e02(_0x5424a8['result'][_0xb513('0x13')]);}})[_0xb513('0x14')](function(_0x636cf0){logger[_0xb513('0x11')](_0xb513('0xc'),_0x127263,_0x636cf0);_0x232f79(_0x636cf0);});});}
\ No newline at end of file
+var _0x0237=['VoiceMailMessage,\x20%s,\x20%s','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','error','code','message','request\x20sent','catch','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x47546a,_0x3601f3){var _0x9eaf97=function(_0x2eae79){while(--_0x2eae79){_0x47546a['push'](_0x47546a['shift']());}};_0x9eaf97(++_0x3601f3);}(_0x0237,0x110));var _0x7023=function(_0x4cdc00,_0x239a67){_0x4cdc00=_0x4cdc00-0x0;var _0x33de35=_0x0237[_0x4cdc00];return _0x33de35;};'use strict';var _=require('lodash');var util=require(_0x7023('0x0'));var moment=require(_0x7023('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7023('0x2'));var db=require(_0x7023('0x3'))['db'];var utils=require(_0x7023('0x4'));var logger=require(_0x7023('0x5'))(_0x7023('0x6'));var config=require(_0x7023('0x7'));var jayson=require(_0x7023('0x8'));var client=jayson[_0x7023('0x9')][_0x7023('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3a3b6c,_0x1ad61b,_0x35aae3){return new BPromise(function(_0x1ed021,_0xe5a8c){return client[_0x7023('0xb')](_0x3a3b6c,_0x35aae3)[_0x7023('0xc')](function(_0x59ff81){logger[_0x7023('0xd')](_0x7023('0xe'),_0x1ad61b,'request\x20sent');logger[_0x7023('0xf')](_0x7023('0x10'),_0x1ad61b,'request\x20sent',JSON['stringify'](_0x59ff81));if(_0x59ff81[_0x7023('0x11')]){if(_0x59ff81[_0x7023('0x11')][_0x7023('0x12')]===0x1f4){logger['error']('VoiceMailMessage,\x20%s,\x20%s',_0x1ad61b,_0x59ff81[_0x7023('0x11')][_0x7023('0x13')]);return _0xe5a8c(_0x59ff81['error'][_0x7023('0x13')]);}logger['error'](_0x7023('0xe'),_0x1ad61b,_0x59ff81['error'][_0x7023('0x13')]);return _0x1ed021(_0x59ff81[_0x7023('0x11')][_0x7023('0x13')]);}else{logger[_0x7023('0xd')](_0x7023('0xe'),_0x1ad61b,_0x7023('0x14'));_0x1ed021(_0x59ff81['result'][_0x7023('0x13')]);}})[_0x7023('0x15')](function(_0x20331c){logger[_0x7023('0x11')](_0x7023('0xe'),_0x1ad61b,_0x20331c);_0xe5a8c(_0x20331c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabe6=['getSounds','post','create','put','update','delete','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMusicOnHold.controller','index','get','/:id','show','/:id/sounds','isAuthenticated'];(function(_0x3b8edd,_0x5f323a){var _0x21722a=function(_0x27604f){while(--_0x27604f){_0x3b8edd['push'](_0x3b8edd['shift']());}};_0x21722a(++_0x5f323a);}(_0xabe6,0x18d));var _0x6abe=function(_0x571401,_0x419282){_0x571401=_0x571401-0x0;var _0x32959d=_0xabe6[_0x571401];return _0x32959d;};'use strict';var multer=require(_0x6abe('0x0'));var util=require(_0x6abe('0x1'));var path=require(_0x6abe('0x2'));var timeout=require(_0x6abe('0x3'));var express=require(_0x6abe('0x4'));var router=express[_0x6abe('0x5')]();var fs_extra=require(_0x6abe('0x6'));var auth=require(_0x6abe('0x7'));var interaction=require(_0x6abe('0x8'));var config=require(_0x6abe('0x9'));var controller=require(_0x6abe('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x6abe('0xb')]);router[_0x6abe('0xc')](_0x6abe('0xd'),auth['isAuthenticated'](),controller[_0x6abe('0xe')]);router[_0x6abe('0xc')](_0x6abe('0xf'),auth[_0x6abe('0x10')](),controller[_0x6abe('0x11')]);router[_0x6abe('0x12')]('/',auth['isAuthenticated'](),controller[_0x6abe('0x13')]);router[_0x6abe('0x12')]('/:id/sounds',auth['isAuthenticated'](),controller['addSound']);router[_0x6abe('0x14')]('/:id',auth[_0x6abe('0x10')](),controller[_0x6abe('0x15')]);router[_0x6abe('0x16')]('/:id',auth[_0x6abe('0x10')](),controller['destroy']);router[_0x6abe('0x16')]('/:id/sounds/:id2',auth[_0x6abe('0x10')](),controller['removeSound']);module['exports']=router;
\ No newline at end of file
+var _0x4ce2=['post','addSound','put','delete','destroy','removeSound','multer','path','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./voiceMusicOnHold.controller','get','isAuthenticated','index','/:id','/:id/sounds','getSounds'];(function(_0x3a3668,_0x45707d){var _0x2d1f7a=function(_0x341aca){while(--_0x341aca){_0x3a3668['push'](_0x3a3668['shift']());}};_0x2d1f7a(++_0x45707d);}(_0x4ce2,0xd7));var _0x24ce=function(_0x480474,_0xc810cd){_0x480474=_0x480474-0x0;var _0x56c3e5=_0x4ce2[_0x480474];return _0x56c3e5;};'use strict';var multer=require(_0x24ce('0x0'));var util=require('util');var path=require(_0x24ce('0x1'));var timeout=require(_0x24ce('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x24ce('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x24ce('0x4'));var config=require(_0x24ce('0x5'));var controller=require(_0x24ce('0x6'));router[_0x24ce('0x7')]('/',auth[_0x24ce('0x8')](),controller[_0x24ce('0x9')]);router[_0x24ce('0x7')](_0x24ce('0xa'),auth[_0x24ce('0x8')](),controller['show']);router[_0x24ce('0x7')](_0x24ce('0xb'),auth['isAuthenticated'](),controller[_0x24ce('0xc')]);router[_0x24ce('0xd')]('/',auth[_0x24ce('0x8')](),controller['create']);router[_0x24ce('0xd')](_0x24ce('0xb'),auth[_0x24ce('0x8')](),controller[_0x24ce('0xe')]);router[_0x24ce('0xf')](_0x24ce('0xa'),auth[_0x24ce('0x8')](),controller['update']);router[_0x24ce('0x10')](_0x24ce('0xa'),auth[_0x24ce('0x8')](),controller[_0x24ce('0x11')]);router['delete']('/:id/sounds/:id2',auth['isAuthenticated'](),controller[_0x24ce('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe25b=['custom','files','mp3nb','mp3','alpha','exports','STRING','ENUM'];(function(_0x2a56ad,_0x2b94bf){var _0x425175=function(_0x342f20){while(--_0x342f20){_0x2a56ad['push'](_0x2a56ad['shift']());}};_0x425175(++_0x2b94bf);}(_0xe25b,0xfd));var _0xbe25=function(_0x57d074,_0x444670){_0x57d074=_0x57d074-0x0;var _0x1aa706=_0xe25b[_0x57d074];return _0x1aa706;};'use strict';var Sequelize=require('sequelize');module[_0xbe25('0x0')]={'name':{'type':Sequelize[_0xbe25('0x1')],'allowNull':![],'unique':'name'},'mode':{'type':Sequelize[_0xbe25('0x2')](_0xbe25('0x3'),_0xbe25('0x4'),_0xbe25('0x5'),'quietmp3nb','quietmp3',_0xbe25('0x6')),'allowNull':!![],'defaultValue':'files'},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize['STRING'],'allowNull':!![]},'digit':{'type':Sequelize['STRING'],'allowNull':!![]},'sort':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xbe25('0x7')},'format':{'type':Sequelize[_0xbe25('0x1')],'allowNull':!![]},'stamp':{'type':'TIMESTAMP'},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xf1cf=['files','alpha','TIMESTAMP','BOOLEAN','sequelize','exports','STRING','ENUM','custom','mp3nb','quietmp3nb','quietmp3'];(function(_0x3de8a4,_0x289a5c){var _0x4635cf=function(_0x2bddb8){while(--_0x2bddb8){_0x3de8a4['push'](_0x3de8a4['shift']());}};_0x4635cf(++_0x289a5c);}(_0xf1cf,0x184));var _0xff1c=function(_0x5b6d73,_0x9fe695){_0x5b6d73=_0x5b6d73-0x0;var _0x4fce56=_0xf1cf[_0x5b6d73];return _0x4fce56;};'use strict';var Sequelize=require(_0xff1c('0x0'));module[_0xff1c('0x1')]={'name':{'type':Sequelize[_0xff1c('0x2')],'allowNull':![],'unique':'name'},'mode':{'type':Sequelize[_0xff1c('0x3')](_0xff1c('0x4'),'files',_0xff1c('0x5'),_0xff1c('0x6'),_0xff1c('0x7'),'mp3'),'allowNull':!![],'defaultValue':_0xff1c('0x8')},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize[_0xff1c('0x2')],'allowNull':!![]},'digit':{'type':Sequelize[_0xff1c('0x2')],'allowNull':!![]},'sort':{'type':Sequelize[_0xff1c('0x2')],'allowNull':!![],'defaultValue':_0xff1c('0x9')},'format':{'type':Sequelize['STRING'],'allowNull':!![]},'stamp':{'type':_0xff1c('0xa')},'defaultEntry':{'type':Sequelize[_0xff1c('0xb')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7936=['id2','getSounds','eml-format','rimraf','zip-dir','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','stack','name','index','VoiceMusicOnHold','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','length','nolimit','order','sort','where','map','VIRTUAL','filter','merge','includeAll','include','findAll','rows','catch','show','params','fields','options','find','body','create','sequelize','mode','join','root','server/files/moh','files','mkdirSync','directory','0777','user','role','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','forEach','unlinkSync','Sequelize','ValidationError','message','addSound','Sound','findOne','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','save_name','extname','removeSound'];(function(_0x58d9b7,_0x51b168){var _0x47138b=function(_0x455d72){while(--_0x455d72){_0x58d9b7['push'](_0x58d9b7['shift']());}};_0x47138b(++_0x51b168);}(_0x7936,0x1be));var _0x6793=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7936[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x6793('0x0'));var rimraf=require(_0x6793('0x1'));var zipdir=require(_0x6793('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x6793('0x3'));var BPromise=require(_0x6793('0x4'));var Mustache=require('mustache');var util=require(_0x6793('0x5'));var path=require(_0x6793('0x6'));var sox=require(_0x6793('0x7'));var csv=require(_0x6793('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6793('0x9'));var _=require(_0x6793('0xa'));var squel=require(_0x6793('0xb'));var crypto=require(_0x6793('0xc'));var jsforce=require(_0x6793('0xd'));var deskjs=require(_0x6793('0xe'));var toCsv=require(_0x6793('0x8'));var querystring=require(_0x6793('0xf'));var Papa=require('papaparse');var Redis=require(_0x6793('0x10'));var authService=require(_0x6793('0x11'));var qs=require(_0x6793('0x12'));var as=require(_0x6793('0x13'));var hardwareService=require(_0x6793('0x14'));var logger=require(_0x6793('0x15'))(_0x6793('0x16'));var utils=require(_0x6793('0x17'));var config=require(_0x6793('0x18'));var licenseUtil=require(_0x6793('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b3876,_0x142519){_0x142519=_0x142519||0xcc;return function(_0x483e00){if(_0x483e00){return _0x2b3876[_0x6793('0x1a')](_0x142519);}return _0x2b3876['status'](_0x142519)['end']();};}function respondWithResult(_0x273257,_0x3ac87f){_0x3ac87f=_0x3ac87f||0xc8;return function(_0x2f2f1d){if(_0x2f2f1d){return _0x273257[_0x6793('0x1b')](_0x3ac87f)[_0x6793('0x1c')](_0x2f2f1d);}};}function respondWithFilteredResult(_0x4221fd,_0x1b00e4){return function(_0x4a1d21){if(_0x4a1d21){var _0x646586=typeof _0x1b00e4[_0x6793('0x1d')]===_0x6793('0x1e')&&typeof _0x1b00e4[_0x6793('0x1f')]==='undefined';var _0xd1640=_0x4a1d21[_0x6793('0x20')];var _0x2a008f=_0x646586?0x0:_0x1b00e4[_0x6793('0x1d')];var _0xfd21de=_0x646586?_0x4a1d21[_0x6793('0x20')]:_0x1b00e4['offset']+_0x1b00e4[_0x6793('0x1f')];var _0x5f127d;if(_0xfd21de>=_0xd1640){_0xfd21de=_0xd1640;_0x5f127d=0xc8;}else{_0x5f127d=0xce;}_0x4221fd[_0x6793('0x1b')](_0x5f127d);return _0x4221fd[_0x6793('0x21')](_0x6793('0x22'),_0x2a008f+'-'+_0xfd21de+'/'+_0xd1640)[_0x6793('0x1c')](_0x4a1d21);}return null;};}function patchUpdates(_0x5e733e){return function(_0x2ec1e9){try{jsonpatch[_0x6793('0x23')](_0x2ec1e9,_0x5e733e,!![]);}catch(_0x5a8bd7){return BPromise['reject'](_0x5a8bd7);}return _0x2ec1e9[_0x6793('0x24')]();};}function saveUpdates(_0x167116,_0x56a6f8){return function(_0x536822){if(_0x536822){return _0x536822[_0x6793('0x25')](_0x167116)[_0x6793('0x26')](function(_0x537d7d){return _0x537d7d;});}return null;};}function removeEntity(_0x4a8cab,_0x194b59){return function(_0x2df306){if(_0x2df306){return _0x2df306[_0x6793('0x27')]()[_0x6793('0x26')](function(){var _0x25bfdf=_0x2df306[_0x6793('0x28')]({'plain':!![]});var _0x2d4015=_0x6793('0x29');return db[_0x6793('0x2a')][_0x6793('0x27')]({'where':{'type':_0x2d4015,'resourceId':_0x25bfdf['id']}})['then'](function(){return _0x2df306;});})[_0x6793('0x26')](function(){_0x4a8cab['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3b87c1,_0x1f5e66){return function(_0xbde471){if(!_0xbde471){_0x3b87c1[_0x6793('0x1a')](0x194);}return _0xbde471;};}function handleError(_0x46166b,_0x18096a){_0x18096a=_0x18096a||0x1f4;return function(_0x946a21){logger['error'](_0x946a21[_0x6793('0x2b')]);if(_0x946a21[_0x6793('0x2c')]){delete _0x946a21[_0x6793('0x2c')];}_0x46166b[_0x6793('0x1b')](_0x18096a)['send'](_0x946a21);};}exports[_0x6793('0x2d')]=function(_0x4b05c0,_0x171f3b){var _0x506979={},_0x169ecb={},_0x482c1a={'count':0x0,'rows':[]};var _0x495d5a=_['map'](db[_0x6793('0x2e')][_0x6793('0x2f')],function(_0x5c19d8){return{'name':_0x5c19d8['fieldName'],'type':_0x5c19d8[_0x6793('0x30')][_0x6793('0x31')]};});_0x169ecb[_0x6793('0x32')]=_['map'](_0x495d5a,_0x6793('0x2c'));_0x169ecb['query']=_[_0x6793('0x33')](_0x4b05c0[_0x6793('0x34')]);_0x169ecb[_0x6793('0x35')]=_[_0x6793('0x36')](_0x169ecb[_0x6793('0x32')],_0x169ecb[_0x6793('0x34')]);_0x506979[_0x6793('0x37')]=_[_0x6793('0x36')](_0x169ecb[_0x6793('0x32')],qs['fields'](_0x4b05c0[_0x6793('0x34')]['fields']));_0x506979[_0x6793('0x37')]=_0x506979[_0x6793('0x37')][_0x6793('0x38')]?_0x506979['attributes']:_0x169ecb[_0x6793('0x32')];if(!_0x4b05c0[_0x6793('0x34')]['hasOwnProperty'](_0x6793('0x39'))){_0x506979[_0x6793('0x1f')]=qs[_0x6793('0x1f')](_0x4b05c0[_0x6793('0x34')][_0x6793('0x1f')]);_0x506979['offset']=qs[_0x6793('0x1d')](_0x4b05c0[_0x6793('0x34')][_0x6793('0x1d')]);}_0x506979[_0x6793('0x3a')]=qs[_0x6793('0x3b')](_0x4b05c0[_0x6793('0x34')][_0x6793('0x3b')]);delete _0x4b05c0[_0x6793('0x34')][_0x6793('0x3b')];_0x506979[_0x6793('0x3c')]=qs[_0x6793('0x35')](_['pick'](_0x4b05c0[_0x6793('0x34')],_0x169ecb[_0x6793('0x35')]),_0x495d5a);if(_0x4b05c0[_0x6793('0x34')]['filter']){_0x506979[_0x6793('0x3c')]=_['merge'](_0x506979[_0x6793('0x3c')],{'$or':_[_0x6793('0x3d')](_0x495d5a,function(_0x462435){if(_0x462435['type']!==_0x6793('0x3e')){var _0x1829b6={};_0x1829b6[_0x462435[_0x6793('0x2c')]]={'$like':'%'+_0x4b05c0['query'][_0x6793('0x3f')]+'%'};return _0x1829b6;}})});}_0x506979=_[_0x6793('0x40')]({},_0x506979,_0x4b05c0['options']);var _0x395de8={'where':_0x506979[_0x6793('0x3c')]};return db[_0x6793('0x2e')]['count'](_0x395de8)['then'](function(_0xdb0dba){_0x482c1a[_0x6793('0x20')]=_0xdb0dba;if(_0x4b05c0['query'][_0x6793('0x41')]){_0x506979[_0x6793('0x42')]=[{'all':!![]}];}return db[_0x6793('0x2e')][_0x6793('0x43')](_0x506979);})[_0x6793('0x26')](function(_0x3098f6){_0x482c1a[_0x6793('0x44')]=_0x3098f6;return _0x482c1a;})[_0x6793('0x26')](respondWithFilteredResult(_0x171f3b,_0x506979))[_0x6793('0x45')](handleError(_0x171f3b,null));};exports[_0x6793('0x46')]=function(_0x4eec6c,_0x2ab900){var _0x371126={'raw':![],'where':{'id':_0x4eec6c[_0x6793('0x47')]['id']}},_0x2aa15a={};_0x2aa15a[_0x6793('0x32')]=_[_0x6793('0x33')](db[_0x6793('0x2e')]['rawAttributes']);_0x2aa15a[_0x6793('0x34')]=_['keys'](_0x4eec6c[_0x6793('0x34')]);_0x2aa15a[_0x6793('0x35')]=_['intersection'](_0x2aa15a['model'],_0x2aa15a[_0x6793('0x34')]);_0x371126[_0x6793('0x37')]=_[_0x6793('0x36')](_0x2aa15a[_0x6793('0x32')],qs['fields'](_0x4eec6c[_0x6793('0x34')][_0x6793('0x48')]));_0x371126[_0x6793('0x37')]=_0x371126[_0x6793('0x37')][_0x6793('0x38')]?_0x371126[_0x6793('0x37')]:_0x2aa15a['model'];if(_0x4eec6c[_0x6793('0x34')]['includeAll']){_0x371126[_0x6793('0x42')]=[{'all':!![]}];}_0x371126=_['merge']({},_0x371126,_0x4eec6c[_0x6793('0x49')]);return db[_0x6793('0x2e')]['find'](_0x371126)[_0x6793('0x26')](handleEntityNotFound(_0x2ab900,null))[_0x6793('0x26')](respondWithResult(_0x2ab900,null))[_0x6793('0x45')](handleError(_0x2ab900,null));};exports[_0x6793('0x25')]=function(_0x4ea254,_0x4bbc1c){if(_0x4ea254['body']['id']){delete _0x4ea254['body']['id'];}return db[_0x6793('0x2e')][_0x6793('0x4a')]({'where':{'id':_0x4ea254[_0x6793('0x47')]['id']}})[_0x6793('0x26')](handleEntityNotFound(_0x4bbc1c,null))[_0x6793('0x26')](saveUpdates(_0x4ea254[_0x6793('0x4b')],null))['then'](respondWithResult(_0x4bbc1c,null))['catch'](handleError(_0x4bbc1c,null));};exports[_0x6793('0x4c')]=function(_0x2894b8,_0x5b72de,_0x37ab09){return db[_0x6793('0x4d')]['transaction'](function(_0x977dc5){if(_0x2894b8[_0x6793('0x4b')][_0x6793('0x4e')]==='files'){_0x2894b8[_0x6793('0x4b')]['directory']=path[_0x6793('0x4f')](config[_0x6793('0x50')],_0x6793('0x51'),_0x2894b8[_0x6793('0x4b')]['name']);}return db[_0x6793('0x2e')][_0x6793('0x4c')](_0x2894b8[_0x6793('0x4b')],{'transaction':_0x977dc5})[_0x6793('0x26')](function(_0x46fd9d){if(_0x2894b8['body'][_0x6793('0x4e')]===_0x6793('0x52')){fs[_0x6793('0x53')](_0x46fd9d[_0x6793('0x54')],parseInt(_0x6793('0x55'),0x8));}var _0xccbad6=_0x2894b8[_0x6793('0x56')][_0x6793('0x28')]({'plain':!![]});if(!_0xccbad6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xccbad6[_0x6793('0x57')]==='user'){var _0x23fa0f=_0x46fd9d[_0x6793('0x28')]({'plain':!![]});return db['UserProfileSection'][_0x6793('0x4a')]({'where':{'name':'MusicOnHolds','userProfileId':_0xccbad6[_0x6793('0x58')]},'raw':!![]})['then'](function(_0x202cb6){if(_0x202cb6&&_0x202cb6[_0x6793('0x59')]===0x0){return db[_0x6793('0x2a')][_0x6793('0x4c')]({'name':_0x23fa0f[_0x6793('0x2c')],'resourceId':_0x23fa0f['id'],'type':_0x202cb6['name'],'sectionId':_0x202cb6['id']},{})['then'](function(){return _0x46fd9d;});}else{return _0x46fd9d;}})[_0x6793('0x45')](function(_0x31c5c9){logger[_0x6793('0x5a')](_0x6793('0x5b'),_0x31c5c9);});}return _0x46fd9d;});})[_0x6793('0x26')](respondWithResult(_0x5b72de,0xc9))['catch'](handleError(_0x5b72de,null));};exports[_0x6793('0x27')]=function(_0x2c97dc,_0xf0c731,_0x4844ab){var _0x383810;return db['VoiceMusicOnHold'][_0x6793('0x4a')]({'where':{'id':_0x2c97dc[_0x6793('0x47')]['id']}})[_0x6793('0x26')](function(_0x2d7647){if(_0x2d7647){return db['sequelize'][_0x6793('0x5c')](function(_0x5eee08){return _0x2d7647[_0x6793('0x27')]({'transaction':_0x5eee08,'raw':!![]})[_0x6793('0x26')](function(_0x24502f){if(_0x24502f[_0x6793('0x54')]){fs['readdirSync'](_0x24502f['directory'])[_0x6793('0x5d')](function(_0x2eb53d){fs[_0x6793('0x5e')](path[_0x6793('0x4f')](_0x24502f[_0x6793('0x54')],_0x2eb53d));});fs['rmdirSync'](_0x24502f[_0x6793('0x54')]);}return _0x24502f;});})[_0x6793('0x45')](function(_0x50f590){throw new db[(_0x6793('0x5f'))][(_0x6793('0x60'))](_0x50f590[_0x6793('0x61')]);});}})[_0x6793('0x26')](handleEntityNotFound(_0xf0c731,null))[_0x6793('0x26')](removeEntity(_0xf0c731,null))[_0x6793('0x45')](handleError(_0xf0c731,null));};exports[_0x6793('0x62')]=function(_0x4d0d82,_0x36ce42,_0x1fda5b){return db['sequelize'][_0x6793('0x5c')](function(_0x2f31f5){var _0x4f6abc;return db[_0x6793('0x2e')][_0x6793('0x4a')]({'where':{'id':_0x4d0d82[_0x6793('0x47')]['id']}})[_0x6793('0x26')](function(_0x246b53){if(_0x246b53){_0x4f6abc=_0x246b53;return _0x246b53[_0x6793('0x62')](_0x4d0d82[_0x6793('0x4b')]['id'],{'transaction':_0x2f31f5});}})[_0x6793('0x26')](function(_0x55268f){if(_0x55268f){return db[_0x6793('0x63')][_0x6793('0x64')]({'where':{'id':_0x4d0d82[_0x6793('0x4b')]['id']},'attributes':['id',_0x6793('0x2c'),'save_name',_0x6793('0x65'),_0x6793('0x66')],'raw':!![]});}})[_0x6793('0x26')](function(_0x2b729f){if(_0x2b729f){var _0x254011=path[_0x6793('0x4f')](config[_0x6793('0x50')],_0x6793('0x67'),util[_0x6793('0x68')](_0x6793('0x69'),path['basename'](_0x2b729f[_0x6793('0x6a')],path[_0x6793('0x6b')](_0x2b729f[_0x6793('0x6a')])),_0x2b729f[_0x6793('0x65')]));var _0x3d7915=path[_0x6793('0x4f')](config[_0x6793('0x50')],_0x6793('0x51'),_0x4f6abc[_0x6793('0x2c')],util['format'](_0x6793('0x69'),_0x2b729f[_0x6793('0x2c')],_0x2b729f[_0x6793('0x65')]));fs['symlinkSync'](_0x254011,_0x3d7915);return _0x2b729f;}})[_0x6793('0x45')](function(_0x1a2cdf){throw new db['Sequelize']['ValidationError'](_0x1a2cdf[_0x6793('0x61')]);});})[_0x6793('0x26')](handleEntityNotFound(_0x36ce42,null))[_0x6793('0x26')](respondWithResult(_0x36ce42,0xc9))[_0x6793('0x45')](handleError(_0x36ce42,null));};exports[_0x6793('0x6c')]=function(_0x369d67,_0x163356,_0x5333d5){return db[_0x6793('0x4d')][_0x6793('0x5c')](function(_0x360cb2){var _0x123e0b;return db[_0x6793('0x2e')][_0x6793('0x64')]({'where':{'id':_0x369d67['params']['id']}})[_0x6793('0x26')](handleEntityNotFound(_0x163356,null))[_0x6793('0x26')](function(_0x37bfb1){if(_0x37bfb1){_0x123e0b=_0x37bfb1;return _0x37bfb1[_0x6793('0x6c')](_0x369d67[_0x6793('0x47')][_0x6793('0x6d')]);}})[_0x6793('0x26')](function(_0x5a8248){if(_0x5a8248){return db[_0x6793('0x63')]['findOne']({'where':{'id':_0x369d67['params'][_0x6793('0x6d')]},'attributes':['id',_0x6793('0x2c'),'save_name',_0x6793('0x65'),_0x6793('0x66')],'raw':!![]});}})[_0x6793('0x26')](function(_0x16d7c6){if(_0x16d7c6){fs[_0x6793('0x5e')](path[_0x6793('0x4f')](_0x123e0b[_0x6793('0x54')],util['format'](_0x6793('0x69'),_0x16d7c6[_0x6793('0x2c')],_0x16d7c6[_0x6793('0x65')])));return _0x16d7c6;}})[_0x6793('0x45')](function(_0x4e8b7b){throw new db['Sequelize']['ValidationError'](_0x4e8b7b['message']);});})[_0x6793('0x26')](handleEntityNotFound(_0x163356,null))[_0x6793('0x26')](respondWithStatusCode(_0x163356,0xcc))[_0x6793('0x45')](handleError(_0x163356,null));};exports[_0x6793('0x6e')]=function(_0x2b2772,_0x5f2f7f,_0x324d90){var _0x2540fb={};var _0x254744={};var _0x4993f0;var _0x27fbad;return db[_0x6793('0x2e')][_0x6793('0x64')]({'where':{'id':_0x2b2772[_0x6793('0x47')]['id']}})['then'](handleEntityNotFound(_0x5f2f7f,null))[_0x6793('0x26')](function(_0x54385f){if(_0x54385f){_0x4993f0=_0x54385f;_0x254744[_0x6793('0x32')]=_[_0x6793('0x33')](db[_0x6793('0x63')][_0x6793('0x2f')]);_0x254744[_0x6793('0x34')]=_[_0x6793('0x33')](_0x2b2772['query']);_0x254744[_0x6793('0x35')]=_['intersection'](_0x254744[_0x6793('0x32')],_0x254744['query']);_0x2540fb[_0x6793('0x37')]=_[_0x6793('0x36')](_0x254744[_0x6793('0x32')],qs[_0x6793('0x48')](_0x2b2772['query']['fields']));_0x2540fb[_0x6793('0x37')]=_0x2540fb[_0x6793('0x37')][_0x6793('0x38')]?_0x2540fb[_0x6793('0x37')]:_0x254744[_0x6793('0x32')];_0x2540fb['order']=qs['sort'](_0x2b2772['query']['sort']);_0x2540fb[_0x6793('0x3c')]=qs[_0x6793('0x35')](_['pick'](_0x2b2772['query'],_0x254744['filters']));if(_0x2b2772[_0x6793('0x34')][_0x6793('0x3f')]){_0x2540fb['where']=_[_0x6793('0x40')](_0x2540fb[_0x6793('0x3c')],{'$or':_[_0x6793('0x3d')](_0x2540fb['attributes'],function(_0x407be5){var _0x173856={};_0x173856[_0x407be5]={'$like':'%'+_0x2b2772[_0x6793('0x34')][_0x6793('0x3f')]+'%'};return _0x173856;})});}_0x2540fb=_[_0x6793('0x40')]({},_0x2540fb,_0x2b2772['options']);return _0x4993f0[_0x6793('0x6e')](_0x2540fb);}})['then'](function(_0x199ba0){if(_0x199ba0){_0x27fbad=_0x199ba0[_0x6793('0x38')];if(!_0x2b2772[_0x6793('0x34')]['hasOwnProperty'](_0x6793('0x39'))){_0x2540fb[_0x6793('0x1f')]=qs[_0x6793('0x1f')](_0x2b2772[_0x6793('0x34')][_0x6793('0x1f')]);_0x2540fb['offset']=qs[_0x6793('0x1d')](_0x2b2772[_0x6793('0x34')]['offset']);}return _0x4993f0[_0x6793('0x6e')](_0x2540fb);}})[_0x6793('0x26')](function(_0x37d8a7){if(_0x37d8a7){return _0x37d8a7?{'count':_0x27fbad,'rows':_0x37d8a7}:null;}})['then'](respondWithResult(_0x5f2f7f,null))['catch'](handleError(_0x5f2f7f,null));};
\ No newline at end of file
+var _0x6edb=['files','mkdirSync','0777','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','readdirSync','forEach','unlinkSync','join','rmdirSync','Sequelize','ValidationError','addSound','Sound','findOne','save_name','converted_format','%s.%s','basename','extname','server/files/moh','format','symlinkSync','message','id2','createdAt','getSounds','order','zip-dir','request-promise','moment','bluebird','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','destroy','get','MusicOnHolds','then','sendStatus','error','name','send','index','fieldName','keys','query','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','sort','pick','filter','merge','where','map','VIRTUAL','options','VoiceMusicOnHold','includeAll','include','findAll','rows','catch','show','params','rawAttributes','body','find','sequelize','mode','directory','root','create'];(function(_0x1b4960,_0x478b50){var _0x499b69=function(_0x5e7b75){while(--_0x5e7b75){_0x1b4960['push'](_0x1b4960['shift']());}};_0x499b69(++_0x478b50);}(_0x6edb,0x1e5));var _0xb6ed=function(_0x51c699,_0x38d5f4){_0x51c699=_0x51c699-0x0;var _0x418e9f=_0x6edb[_0x51c699];return _0x418e9f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb6ed('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb6ed('0x1'));var moment=require(_0xb6ed('0x2'));var BPromise=require(_0xb6ed('0x3'));var Mustache=require('mustache');var util=require(_0xb6ed('0x4'));var path=require(_0xb6ed('0x5'));var sox=require(_0xb6ed('0x6'));var csv=require('to-csv');var ejs=require(_0xb6ed('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb6ed('0x8'));var squel=require(_0xb6ed('0x9'));var crypto=require('crypto');var jsforce=require(_0xb6ed('0xa'));var deskjs=require(_0xb6ed('0xb'));var toCsv=require(_0xb6ed('0xc'));var querystring=require(_0xb6ed('0xd'));var Papa=require(_0xb6ed('0xe'));var Redis=require('ioredis');var authService=require(_0xb6ed('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xb6ed('0x10'));var hardwareService=require(_0xb6ed('0x11'));var logger=require(_0xb6ed('0x12'))(_0xb6ed('0x13'));var utils=require(_0xb6ed('0x14'));var config=require(_0xb6ed('0x15'));var licenseUtil=require(_0xb6ed('0x16'));var db=require(_0xb6ed('0x17'))['db'];function respondWithStatusCode(_0x1274f2,_0x308222){_0x308222=_0x308222||0xcc;return function(_0x31bb74){if(_0x31bb74){return _0x1274f2['sendStatus'](_0x308222);}return _0x1274f2[_0xb6ed('0x18')](_0x308222)[_0xb6ed('0x19')]();};}function respondWithResult(_0x29c818,_0x4c9da8){_0x4c9da8=_0x4c9da8||0xc8;return function(_0x20d089){if(_0x20d089){return _0x29c818[_0xb6ed('0x18')](_0x4c9da8)['json'](_0x20d089);}};}function respondWithFilteredResult(_0x4f0512,_0x162969){return function(_0x549005){if(_0x549005){var _0x49551c=typeof _0x162969[_0xb6ed('0x1a')]===_0xb6ed('0x1b')&&typeof _0x162969[_0xb6ed('0x1c')]===_0xb6ed('0x1b');var _0x16445=_0x549005[_0xb6ed('0x1d')];var _0x5ecb47=_0x49551c?0x0:_0x162969[_0xb6ed('0x1a')];var _0x44258a=_0x49551c?_0x549005[_0xb6ed('0x1d')]:_0x162969[_0xb6ed('0x1a')]+_0x162969[_0xb6ed('0x1c')];var _0x3bfeb4;if(_0x44258a>=_0x16445){_0x44258a=_0x16445;_0x3bfeb4=0xc8;}else{_0x3bfeb4=0xce;}_0x4f0512['status'](_0x3bfeb4);return _0x4f0512[_0xb6ed('0x1e')](_0xb6ed('0x1f'),_0x5ecb47+'-'+_0x44258a+'/'+_0x16445)[_0xb6ed('0x20')](_0x549005);}return null;};}function patchUpdates(_0x413f07){return function(_0x14c5ed){try{jsonpatch[_0xb6ed('0x21')](_0x14c5ed,_0x413f07,!![]);}catch(_0x4728d3){return BPromise[_0xb6ed('0x22')](_0x4728d3);}return _0x14c5ed['save']();};}function saveUpdates(_0x17e091,_0x344cac){return function(_0x2e4156){if(_0x2e4156){return _0x2e4156[_0xb6ed('0x23')](_0x17e091)['then'](function(_0xc7a521){return _0xc7a521;});}return null;};}function removeEntity(_0x3b0340,_0x5c9172){return function(_0x30a242){if(_0x30a242){return _0x30a242[_0xb6ed('0x24')]()['then'](function(){var _0x12779=_0x30a242[_0xb6ed('0x25')]({'plain':!![]});var _0x5d4912=_0xb6ed('0x26');return db['UserProfileResource'][_0xb6ed('0x24')]({'where':{'type':_0x5d4912,'resourceId':_0x12779['id']}})[_0xb6ed('0x27')](function(){return _0x30a242;});})['then'](function(){_0x3b0340[_0xb6ed('0x18')](0xcc)[_0xb6ed('0x19')]();});}};}function handleEntityNotFound(_0xf2ef84,_0x4163f2){return function(_0x3a2c41){if(!_0x3a2c41){_0xf2ef84[_0xb6ed('0x28')](0x194);}return _0x3a2c41;};}function handleError(_0x1baaf8,_0x5717fa){_0x5717fa=_0x5717fa||0x1f4;return function(_0x591e19){logger[_0xb6ed('0x29')](_0x591e19['stack']);if(_0x591e19[_0xb6ed('0x2a')]){delete _0x591e19[_0xb6ed('0x2a')];}_0x1baaf8[_0xb6ed('0x18')](_0x5717fa)[_0xb6ed('0x2b')](_0x591e19);};}exports[_0xb6ed('0x2c')]=function(_0x892593,_0x4a4ae9){var _0x326ee3={},_0x5bd771={},_0xb30916={'count':0x0,'rows':[]};var _0x487403=_['map'](db['VoiceMusicOnHold']['rawAttributes'],function(_0x2a85b1){return{'name':_0x2a85b1[_0xb6ed('0x2d')],'type':_0x2a85b1['type']['key']};});_0x5bd771['model']=_['map'](_0x487403,_0xb6ed('0x2a'));_0x5bd771['query']=_[_0xb6ed('0x2e')](_0x892593[_0xb6ed('0x2f')]);_0x5bd771[_0xb6ed('0x30')]=_[_0xb6ed('0x31')](_0x5bd771['model'],_0x5bd771['query']);_0x326ee3[_0xb6ed('0x32')]=_[_0xb6ed('0x31')](_0x5bd771['model'],qs[_0xb6ed('0x33')](_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x33')]));_0x326ee3['attributes']=_0x326ee3[_0xb6ed('0x32')][_0xb6ed('0x34')]?_0x326ee3[_0xb6ed('0x32')]:_0x5bd771[_0xb6ed('0x35')];if(!_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x36')](_0xb6ed('0x37'))){_0x326ee3['limit']=qs[_0xb6ed('0x1c')](_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x1c')]);_0x326ee3[_0xb6ed('0x1a')]=qs[_0xb6ed('0x1a')](_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x1a')]);}_0x326ee3['order']=qs['sort'](_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x38')]);delete _0x892593[_0xb6ed('0x2f')][_0xb6ed('0x38')];_0x326ee3['where']=qs[_0xb6ed('0x30')](_[_0xb6ed('0x39')](_0x892593['query'],_0x5bd771[_0xb6ed('0x30')]),_0x487403);if(_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x3a')]){_0x326ee3['where']=_[_0xb6ed('0x3b')](_0x326ee3[_0xb6ed('0x3c')],{'$or':_[_0xb6ed('0x3d')](_0x487403,function(_0x425229){if(_0x425229['type']!==_0xb6ed('0x3e')){var _0x4b22df={};_0x4b22df[_0x425229['name']]={'$like':'%'+_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x3a')]+'%'};return _0x4b22df;}})});}_0x326ee3=_[_0xb6ed('0x3b')]({},_0x326ee3,_0x892593[_0xb6ed('0x3f')]);var _0x2f7bd6={'where':_0x326ee3[_0xb6ed('0x3c')]};return db[_0xb6ed('0x40')]['count'](_0x2f7bd6)[_0xb6ed('0x27')](function(_0x1fb6ca){_0xb30916[_0xb6ed('0x1d')]=_0x1fb6ca;if(_0x892593[_0xb6ed('0x2f')][_0xb6ed('0x41')]){_0x326ee3[_0xb6ed('0x42')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0xb6ed('0x43')](_0x326ee3);})[_0xb6ed('0x27')](function(_0x20d99c){_0xb30916[_0xb6ed('0x44')]=_0x20d99c;return _0xb30916;})[_0xb6ed('0x27')](respondWithFilteredResult(_0x4a4ae9,_0x326ee3))[_0xb6ed('0x45')](handleError(_0x4a4ae9,null));};exports[_0xb6ed('0x46')]=function(_0x20446b,_0x221d3a){var _0x53e0d9={'raw':![],'where':{'id':_0x20446b[_0xb6ed('0x47')]['id']}},_0x5f1599={};_0x5f1599[_0xb6ed('0x35')]=_[_0xb6ed('0x2e')](db['VoiceMusicOnHold'][_0xb6ed('0x48')]);_0x5f1599['query']=_['keys'](_0x20446b[_0xb6ed('0x2f')]);_0x5f1599[_0xb6ed('0x30')]=_[_0xb6ed('0x31')](_0x5f1599['model'],_0x5f1599[_0xb6ed('0x2f')]);_0x53e0d9['attributes']=_['intersection'](_0x5f1599[_0xb6ed('0x35')],qs[_0xb6ed('0x33')](_0x20446b[_0xb6ed('0x2f')]['fields']));_0x53e0d9['attributes']=_0x53e0d9[_0xb6ed('0x32')]['length']?_0x53e0d9[_0xb6ed('0x32')]:_0x5f1599[_0xb6ed('0x35')];if(_0x20446b[_0xb6ed('0x2f')]['includeAll']){_0x53e0d9[_0xb6ed('0x42')]=[{'all':!![]}];}_0x53e0d9=_['merge']({},_0x53e0d9,_0x20446b[_0xb6ed('0x3f')]);return db['VoiceMusicOnHold']['find'](_0x53e0d9)['then'](handleEntityNotFound(_0x221d3a,null))[_0xb6ed('0x27')](respondWithResult(_0x221d3a,null))[_0xb6ed('0x45')](handleError(_0x221d3a,null));};exports[_0xb6ed('0x23')]=function(_0x4caeab,_0x5861e1){if(_0x4caeab[_0xb6ed('0x49')]['id']){delete _0x4caeab[_0xb6ed('0x49')]['id'];}return db[_0xb6ed('0x40')][_0xb6ed('0x4a')]({'where':{'id':_0x4caeab[_0xb6ed('0x47')]['id']}})[_0xb6ed('0x27')](handleEntityNotFound(_0x5861e1,null))[_0xb6ed('0x27')](saveUpdates(_0x4caeab['body'],null))['then'](respondWithResult(_0x5861e1,null))[_0xb6ed('0x45')](handleError(_0x5861e1,null));};exports['create']=function(_0x7ac728,_0x52b8e1,_0xd44bca){return db[_0xb6ed('0x4b')]['transaction'](function(_0x22331a){if(_0x7ac728[_0xb6ed('0x49')][_0xb6ed('0x4c')]==='files'){_0x7ac728[_0xb6ed('0x49')][_0xb6ed('0x4d')]=path['join'](config[_0xb6ed('0x4e')],'server/files/moh',_0x7ac728['body']['name']);}return db['VoiceMusicOnHold'][_0xb6ed('0x4f')](_0x7ac728[_0xb6ed('0x49')],{'transaction':_0x22331a})[_0xb6ed('0x27')](function(_0x563a66){if(_0x7ac728[_0xb6ed('0x49')][_0xb6ed('0x4c')]===_0xb6ed('0x50')){fs[_0xb6ed('0x51')](_0x563a66[_0xb6ed('0x4d')],parseInt(_0xb6ed('0x52'),0x8));}var _0x8f9465=_0x7ac728['user'][_0xb6ed('0x25')]({'plain':!![]});if(!_0x8f9465)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x8f9465['role']===_0xb6ed('0x53')){var _0x49fac4=_0x563a66[_0xb6ed('0x25')]({'plain':!![]});return db[_0xb6ed('0x54')][_0xb6ed('0x4a')]({'where':{'name':'MusicOnHolds','userProfileId':_0x8f9465[_0xb6ed('0x55')]},'raw':!![]})['then'](function(_0x1b8160){if(_0x1b8160&&_0x1b8160[_0xb6ed('0x56')]===0x0){return db[_0xb6ed('0x57')][_0xb6ed('0x4f')]({'name':_0x49fac4[_0xb6ed('0x2a')],'resourceId':_0x49fac4['id'],'type':_0x1b8160[_0xb6ed('0x2a')],'sectionId':_0x1b8160['id']},{})[_0xb6ed('0x27')](function(){return _0x563a66;});}else{return _0x563a66;}})['catch'](function(_0x4309c2){logger[_0xb6ed('0x29')](_0xb6ed('0x58'),_0x4309c2);});}return _0x563a66;});})[_0xb6ed('0x27')](respondWithResult(_0x52b8e1,0xc9))[_0xb6ed('0x45')](handleError(_0x52b8e1,null));};exports['destroy']=function(_0x3fe44d,_0x33ea94,_0x5e0f1f){var _0x46147f;return db[_0xb6ed('0x40')]['find']({'where':{'id':_0x3fe44d['params']['id']}})[_0xb6ed('0x27')](function(_0x1bcf3f){if(_0x1bcf3f){return db[_0xb6ed('0x4b')][_0xb6ed('0x59')](function(_0x58eaf4){return _0x1bcf3f[_0xb6ed('0x24')]({'transaction':_0x58eaf4,'raw':!![]})[_0xb6ed('0x27')](function(_0xe0f870){if(_0xe0f870[_0xb6ed('0x4d')]){fs[_0xb6ed('0x5a')](_0xe0f870[_0xb6ed('0x4d')])[_0xb6ed('0x5b')](function(_0x1f645a){fs[_0xb6ed('0x5c')](path[_0xb6ed('0x5d')](_0xe0f870[_0xb6ed('0x4d')],_0x1f645a));});fs[_0xb6ed('0x5e')](_0xe0f870[_0xb6ed('0x4d')]);}return _0xe0f870;});})[_0xb6ed('0x45')](function(_0x445b72){throw new db[(_0xb6ed('0x5f'))][(_0xb6ed('0x60'))](_0x445b72['message']);});}})[_0xb6ed('0x27')](handleEntityNotFound(_0x33ea94,null))[_0xb6ed('0x27')](removeEntity(_0x33ea94,null))[_0xb6ed('0x45')](handleError(_0x33ea94,null));};exports[_0xb6ed('0x61')]=function(_0xf12145,_0x2ccb0b,_0xc88ee0){return db[_0xb6ed('0x4b')][_0xb6ed('0x59')](function(_0x499d39){var _0x38fc12;return db[_0xb6ed('0x40')][_0xb6ed('0x4a')]({'where':{'id':_0xf12145[_0xb6ed('0x47')]['id']}})[_0xb6ed('0x27')](function(_0x2851b8){if(_0x2851b8){_0x38fc12=_0x2851b8;return _0x2851b8[_0xb6ed('0x61')](_0xf12145[_0xb6ed('0x49')]['id'],{'transaction':_0x499d39});}})['then'](function(_0x257e9d){if(_0x257e9d){return db[_0xb6ed('0x62')][_0xb6ed('0x63')]({'where':{'id':_0xf12145['body']['id']},'attributes':['id',_0xb6ed('0x2a'),_0xb6ed('0x64'),_0xb6ed('0x65'),'createdAt'],'raw':!![]});}})[_0xb6ed('0x27')](function(_0x5ec907){if(_0x5ec907){var _0x44a986=path[_0xb6ed('0x5d')](config[_0xb6ed('0x4e')],'server/files/sounds/converted',util['format'](_0xb6ed('0x66'),path[_0xb6ed('0x67')](_0x5ec907[_0xb6ed('0x64')],path[_0xb6ed('0x68')](_0x5ec907['save_name'])),_0x5ec907['converted_format']));var _0x1037a3=path[_0xb6ed('0x5d')](config[_0xb6ed('0x4e')],_0xb6ed('0x69'),_0x38fc12[_0xb6ed('0x2a')],util[_0xb6ed('0x6a')](_0xb6ed('0x66'),_0x5ec907[_0xb6ed('0x2a')],_0x5ec907['converted_format']));fs[_0xb6ed('0x6b')](_0x44a986,_0x1037a3);return _0x5ec907;}})['catch'](function(_0x322422){throw new db[(_0xb6ed('0x5f'))]['ValidationError'](_0x322422[_0xb6ed('0x6c')]);});})[_0xb6ed('0x27')](handleEntityNotFound(_0x2ccb0b,null))[_0xb6ed('0x27')](respondWithResult(_0x2ccb0b,0xc9))['catch'](handleError(_0x2ccb0b,null));};exports['removeSound']=function(_0x65689c,_0x541a1,_0x146eca){return db['sequelize'][_0xb6ed('0x59')](function(_0x41fa0b){var _0x5c00c4;return db[_0xb6ed('0x40')][_0xb6ed('0x63')]({'where':{'id':_0x65689c['params']['id']}})[_0xb6ed('0x27')](handleEntityNotFound(_0x541a1,null))[_0xb6ed('0x27')](function(_0x357f10){if(_0x357f10){_0x5c00c4=_0x357f10;return _0x357f10['removeSound'](_0x65689c[_0xb6ed('0x47')][_0xb6ed('0x6d')]);}})[_0xb6ed('0x27')](function(_0x325d28){if(_0x325d28){return db[_0xb6ed('0x62')][_0xb6ed('0x63')]({'where':{'id':_0x65689c[_0xb6ed('0x47')][_0xb6ed('0x6d')]},'attributes':['id',_0xb6ed('0x2a'),_0xb6ed('0x64'),_0xb6ed('0x65'),_0xb6ed('0x6e')],'raw':!![]});}})[_0xb6ed('0x27')](function(_0x151380){if(_0x151380){fs[_0xb6ed('0x5c')](path[_0xb6ed('0x5d')](_0x5c00c4[_0xb6ed('0x4d')],util[_0xb6ed('0x6a')](_0xb6ed('0x66'),_0x151380[_0xb6ed('0x2a')],_0x151380[_0xb6ed('0x65')])));return _0x151380;}})[_0xb6ed('0x45')](function(_0x212440){throw new db[(_0xb6ed('0x5f'))][(_0xb6ed('0x60'))](_0x212440[_0xb6ed('0x6c')]);});})['then'](handleEntityNotFound(_0x541a1,null))[_0xb6ed('0x27')](respondWithStatusCode(_0x541a1,0xcc))['catch'](handleError(_0x541a1,null));};exports[_0xb6ed('0x6f')]=function(_0x455aa2,_0x480aab,_0x391b14){var _0x39d2aa={};var _0x9b16ce={};var _0x5162d1;var _0x42d657;return db[_0xb6ed('0x40')]['findOne']({'where':{'id':_0x455aa2[_0xb6ed('0x47')]['id']}})[_0xb6ed('0x27')](handleEntityNotFound(_0x480aab,null))['then'](function(_0x41b857){if(_0x41b857){_0x5162d1=_0x41b857;_0x9b16ce[_0xb6ed('0x35')]=_[_0xb6ed('0x2e')](db[_0xb6ed('0x62')]['rawAttributes']);_0x9b16ce[_0xb6ed('0x2f')]=_[_0xb6ed('0x2e')](_0x455aa2[_0xb6ed('0x2f')]);_0x9b16ce[_0xb6ed('0x30')]=_['intersection'](_0x9b16ce[_0xb6ed('0x35')],_0x9b16ce[_0xb6ed('0x2f')]);_0x39d2aa[_0xb6ed('0x32')]=_['intersection'](_0x9b16ce['model'],qs[_0xb6ed('0x33')](_0x455aa2[_0xb6ed('0x2f')][_0xb6ed('0x33')]));_0x39d2aa['attributes']=_0x39d2aa['attributes'][_0xb6ed('0x34')]?_0x39d2aa['attributes']:_0x9b16ce[_0xb6ed('0x35')];_0x39d2aa[_0xb6ed('0x70')]=qs[_0xb6ed('0x38')](_0x455aa2['query'][_0xb6ed('0x38')]);_0x39d2aa[_0xb6ed('0x3c')]=qs[_0xb6ed('0x30')](_['pick'](_0x455aa2[_0xb6ed('0x2f')],_0x9b16ce[_0xb6ed('0x30')]));if(_0x455aa2[_0xb6ed('0x2f')][_0xb6ed('0x3a')]){_0x39d2aa[_0xb6ed('0x3c')]=_['merge'](_0x39d2aa[_0xb6ed('0x3c')],{'$or':_[_0xb6ed('0x3d')](_0x39d2aa['attributes'],function(_0x3c4d05){var _0x487db7={};_0x487db7[_0x3c4d05]={'$like':'%'+_0x455aa2[_0xb6ed('0x2f')][_0xb6ed('0x3a')]+'%'};return _0x487db7;})});}_0x39d2aa=_[_0xb6ed('0x3b')]({},_0x39d2aa,_0x455aa2[_0xb6ed('0x3f')]);return _0x5162d1[_0xb6ed('0x6f')](_0x39d2aa);}})[_0xb6ed('0x27')](function(_0x2bb0ba){if(_0x2bb0ba){_0x42d657=_0x2bb0ba['length'];if(!_0x455aa2[_0xb6ed('0x2f')]['hasOwnProperty']('nolimit')){_0x39d2aa['limit']=qs['limit'](_0x455aa2[_0xb6ed('0x2f')][_0xb6ed('0x1c')]);_0x39d2aa[_0xb6ed('0x1a')]=qs['offset'](_0x455aa2[_0xb6ed('0x2f')][_0xb6ed('0x1a')]);}return _0x5162d1[_0xb6ed('0x6f')](_0x39d2aa);}})[_0xb6ed('0x27')](function(_0x17a9fa){if(_0x17a9fa){return _0x17a9fa?{'count':_0x42d657,'rows':_0x17a9fa}:null;}})[_0xb6ed('0x27')](respondWithResult(_0x480aab,null))[_0xb6ed('0x45')](handleError(_0x480aab,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80a8=['moment','bluebird','path','../../config/environment','exports','VoiceMusicOnHold','lodash','../../config/logger'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x80a8,0xf6));var _0x880a=function(_0x324645,_0xdc9c60){_0x324645=_0x324645-0x0;var _0x518909=_0x80a8[_0x324645];return _0x518909;};'use strict';var _=require(_0x880a('0x0'));var util=require('util');var logger=require(_0x880a('0x1'))('api');var moment=require(_0x880a('0x2'));var BPromise=require(_0x880a('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x880a('0x4'));var rimraf=require('rimraf');var config=require(_0x880a('0x5'));var attributes=require('./voiceMusicOnHold.attributes');module[_0x880a('0x6')]=function(_0x12d77f,_0x1caf45){return _0x12d77f['define'](_0x880a('0x7'),attributes,{'tableName':'voice_musiconhold','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb335=['./voiceMusicOnHold.attributes','exports','VoiceMusicOnHold','voice_musiconhold','lodash','util','../../config/logger','request-promise','rimraf','../../config/environment'];(function(_0x29702d,_0x32905e){var _0x5d72f7=function(_0x249ca1){while(--_0x249ca1){_0x29702d['push'](_0x29702d['shift']());}};_0x5d72f7(++_0x32905e);}(_0xb335,0x11c));var _0x5b33=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb335[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x5b33('0x0'));var util=require(_0x5b33('0x1'));var logger=require(_0x5b33('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x5b33('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5b33('0x4'));var config=require(_0x5b33('0x5'));var attributes=require(_0x5b33('0x6'));module[_0x5b33('0x7')]=function(_0x2073f8,_0x831a3f){return _0x2073f8['define'](_0x5b33('0x8'),attributes,{'tableName':_0x5b33('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['code','VoiceMusicOnHold,\x20%s,\x20%s','message','result','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','info','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x380fcb,_0x2e9c69){var _0x19e012=function(_0x4de3a0){while(--_0x4de3a0){_0x380fcb['push'](_0x380fcb['shift']());}};_0x19e012(++_0x2e9c69);}(_0x70e0,0x17b));var _0x070e=function(_0x3e7ba6,_0x3fdbef){_0x3e7ba6=_0x3e7ba6-0x0;var _0x1a02fc=_0x70e0[_0x3e7ba6];return _0x1a02fc;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var moment=require(_0x070e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x070e('0x3'));var db=require(_0x070e('0x4'))['db'];var utils=require(_0x070e('0x5'));var logger=require(_0x070e('0x6'))('rpc');var config=require(_0x070e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x070e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x56e420,_0x5032e5,_0x35ab0c){return new BPromise(function(_0x1e11f0,_0x604664){return client[_0x070e('0x9')](_0x56e420,_0x35ab0c)[_0x070e('0xa')](function(_0x68a09e){logger[_0x070e('0xb')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,'request\x20sent');logger[_0x070e('0xc')](_0x070e('0xd'),_0x5032e5,_0x070e('0xe'),JSON[_0x070e('0xf')](_0x68a09e));if(_0x68a09e[_0x070e('0x10')]){if(_0x68a09e[_0x070e('0x10')][_0x070e('0x11')]===0x1f4){logger[_0x070e('0x10')](_0x070e('0x12'),_0x5032e5,_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);return _0x604664(_0x68a09e['error']['message']);}logger[_0x070e('0x10')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x68a09e['error']['message']);return _0x1e11f0(_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);}else{logger['info']('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x070e('0xe'));_0x1e11f0(_0x68a09e[_0x070e('0x14')][_0x070e('0x13')]);}})[_0x070e('0x15')](function(_0x5bc71e){logger['error'](_0x070e('0x12'),_0x5032e5,_0x5bc71e);_0x604664(_0x5bc71e);});});}
\ No newline at end of file
+var _0x34e8=['lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','VoiceMusicOnHold,\x20%s,\x20%s','request\x20sent','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x34606f,_0xc9de6e){var _0x47964f=function(_0x5f0c24){while(--_0x5f0c24){_0x34606f['push'](_0x34606f['shift']());}};_0x47964f(++_0xc9de6e);}(_0x34e8,0x12c));var _0x834e=function(_0x37f9f2,_0x17e224){_0x37f9f2=_0x37f9f2-0x0;var _0x21c871=_0x34e8[_0x37f9f2];return _0x21c871;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var moment=require(_0x834e('0x2'));var BPromise=require(_0x834e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x834e('0x4'));var db=require(_0x834e('0x5'))['db'];var utils=require(_0x834e('0x6'));var logger=require(_0x834e('0x7'))(_0x834e('0x8'));var config=require(_0x834e('0x9'));var jayson=require(_0x834e('0xa'));var client=jayson['client'][_0x834e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x52056d,_0x3e16d2,_0x3cc2e3){return new BPromise(function(_0x3a3ef6,_0x2e69e2){return client[_0x834e('0xc')](_0x52056d,_0x3cc2e3)[_0x834e('0xd')](function(_0x363786){logger[_0x834e('0xe')](_0x834e('0xf'),_0x3e16d2,_0x834e('0x10'));logger[_0x834e('0x11')](_0x834e('0x12'),_0x3e16d2,_0x834e('0x10'),JSON[_0x834e('0x13')](_0x363786));if(_0x363786[_0x834e('0x14')]){if(_0x363786[_0x834e('0x14')][_0x834e('0x15')]===0x1f4){logger['error'](_0x834e('0xf'),_0x3e16d2,_0x363786[_0x834e('0x14')]['message']);return _0x2e69e2(_0x363786[_0x834e('0x14')][_0x834e('0x16')]);}logger[_0x834e('0x14')](_0x834e('0xf'),_0x3e16d2,_0x363786['error'][_0x834e('0x16')]);return _0x3a3ef6(_0x363786[_0x834e('0x14')]['message']);}else{logger[_0x834e('0xe')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x3e16d2,_0x834e('0x10'));_0x3a3ef6(_0x363786[_0x834e('0x17')]['message']);}})[_0x834e('0x18')](function(_0x22106e){logger[_0x834e('0x14')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x3e16d2,_0x22106e);_0x2e69e2(_0x22106e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6eef=['getAgents','post','create','addAgents','put','delete','destroy','removeAgents','exports','multer','connect-timeout','express','Router','./voicePrefix.controller','isAuthenticated','index','get','/describe','describe','/:id','show','/:id/users'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0x6eef,0x127));var _0xf6ee=function(_0x1dac7a,_0x1828ce){_0x1dac7a=_0x1dac7a-0x0;var _0x4cb363=_0x6eef[_0x1dac7a];return _0x4cb363;};'use strict';var multer=require(_0xf6ee('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xf6ee('0x1'));var express=require(_0xf6ee('0x2'));var router=express[_0xf6ee('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf6ee('0x4'));router['get']('/',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x6')]);router[_0xf6ee('0x7')](_0xf6ee('0x8'),auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x9')]);router[_0xf6ee('0x7')](_0xf6ee('0xa'),auth['isAuthenticated'](),controller[_0xf6ee('0xb')]);router[_0xf6ee('0x7')](_0xf6ee('0xc'),auth[_0xf6ee('0x5')](),controller[_0xf6ee('0xd')]);router[_0xf6ee('0xe')]('/',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0xf')]);router[_0xf6ee('0xe')]('/:id/users',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x10')]);router[_0xf6ee('0x11')](_0xf6ee('0xa'),auth[_0xf6ee('0x5')](),controller['update']);router[_0xf6ee('0x12')]('/:id',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x13')]);router['delete'](_0xf6ee('0xc'),auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x14')]);module[_0xf6ee('0x15')]=router;
\ No newline at end of file
+var _0x3a16=['removeAgents','removeTeams','multer','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voicePrefix.controller','get','isAuthenticated','index','describe','show','/:id/users','/:id/teams','getTeams','create','post','addAgents','put','/:id','update','delete'];(function(_0x1a8dae,_0x27c270){var _0x475ecd=function(_0x327dce){while(--_0x327dce){_0x1a8dae['push'](_0x1a8dae['shift']());}};_0x475ecd(++_0x27c270);}(_0x3a16,0x192));var _0x63a1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3a16[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x63a1('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x63a1('0x1'));var express=require(_0x63a1('0x2'));var router=express[_0x63a1('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x63a1('0x4'));var interaction=require(_0x63a1('0x5'));var config=require(_0x63a1('0x6'));var controller=require(_0x63a1('0x7'));router[_0x63a1('0x8')]('/',auth[_0x63a1('0x9')](),controller[_0x63a1('0xa')]);router['get']('/describe',auth[_0x63a1('0x9')](),controller[_0x63a1('0xb')]);router[_0x63a1('0x8')]('/:id',auth[_0x63a1('0x9')](),controller[_0x63a1('0xc')]);router[_0x63a1('0x8')](_0x63a1('0xd'),auth['isAuthenticated'](),controller['getAgents']);router[_0x63a1('0x8')](_0x63a1('0xe'),auth[_0x63a1('0x9')](),controller[_0x63a1('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0x63a1('0x10')]);router[_0x63a1('0x11')](_0x63a1('0xd'),auth['isAuthenticated'](),controller[_0x63a1('0x12')]);router['post'](_0x63a1('0xe'),auth[_0x63a1('0x9')](),controller['addTeams']);router[_0x63a1('0x13')](_0x63a1('0x14'),auth[_0x63a1('0x9')](),controller[_0x63a1('0x15')]);router[_0x63a1('0x16')](_0x63a1('0x14'),auth[_0x63a1('0x9')](),controller['destroy']);router['delete'](_0x63a1('0xd'),auth[_0x63a1('0x9')](),controller[_0x63a1('0x17')]);router['delete']('/:id/teams',auth['isAuthenticated'](),controller[_0x63a1('0x18')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a4d=['INTEGER','sequelize','exports','name','VIRTUAL','getDataValue','STRING'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x2a4d,0x19e));var _0xd2a4=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x2a4d[_0x2641f9];return _0x585741;};'use strict';var Sequelize=require(_0xd2a4('0x0'));module[_0xd2a4('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xd2a4('0x2')},'prefix':{'type':Sequelize[_0xd2a4('0x3')],'get':function(_0x288b86){return'system-'+this[_0xd2a4('0x4')](_0xd2a4('0x2'))+'-';}},'description':{'type':Sequelize[_0xd2a4('0x5')]},'callerIdAll':{'type':Sequelize['STRING']},'VoiceExtensionId':{'type':Sequelize[_0xd2a4('0x6')]}};
\ No newline at end of file
+var _0xd085=['INTEGER','exports','STRING','name','VIRTUAL','system-','getDataValue'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xd085,0x17b));var _0x5d08=function(_0x28611e,_0x586726){_0x28611e=_0x28611e-0x0;var _0x530f69=_0xd085[_0x28611e];return _0x530f69;};'use strict';var Sequelize=require('sequelize');module[_0x5d08('0x0')]={'name':{'type':Sequelize[_0x5d08('0x1')],'allowNull':![],'unique':_0x5d08('0x2')},'prefix':{'type':Sequelize[_0x5d08('0x3')],'get':function(_0x51e00c){return _0x5d08('0x4')+this[_0x5d08('0x5')](_0x5d08('0x2'))+'-';}},'description':{'type':Sequelize['STRING']},'callerIdAll':{'type':Sequelize[_0x5d08('0x1')]},'VoiceExtensionId':{'type':Sequelize[_0x5d08('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9176=['ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','localhost','socket.io-emitter','redis','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','VoicePrefixes','UserProfileResource','end','error','name','VoicePrefix','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','length','find','params','describe','create','sequelize','transaction','body','VoiceExtension','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','context','from-sip','exten','app','system','description','Voice\x20Prefix\x20Extension','prefix','NoOp','Voice\x20Prefix','VoicePrefixId','VoiceExtensionId','bulkCreate','push','CDR(prefix)=','callerIdAll','PREFIX-CALLERIDALL=','No\x20callerid\x20available','goto','${EXTEN:','charAt','findById','addAgents','ids','spread','userVoicePrefix:save','removeAgents','isArray','emit','userVoicePrefix:remove','getAgents','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv'];(function(_0xb0a29c,_0x202fac){var _0x1a8625=function(_0xa5a40c){while(--_0xa5a40c){_0xb0a29c['push'](_0xb0a29c['shift']());}};_0x1a8625(++_0x202fac);}(_0x9176,0x164));var _0x6917=function(_0x98ecff,_0x1796a5){_0x98ecff=_0x98ecff-0x0;var _0x4695ff=_0x9176[_0x98ecff];return _0x4695ff;};'use strict';var emlformat=require(_0x6917('0x0'));var rimraf=require(_0x6917('0x1'));var zipdir=require(_0x6917('0x2'));var jsonpatch=require(_0x6917('0x3'));var rp=require(_0x6917('0x4'));var moment=require(_0x6917('0x5'));var BPromise=require(_0x6917('0x6'));var Mustache=require(_0x6917('0x7'));var util=require('util');var path=require('path');var sox=require(_0x6917('0x8'));var csv=require(_0x6917('0x9'));var ejs=require(_0x6917('0xa'));var fs=require('fs');var fs_extra=require(_0x6917('0xb'));var _=require(_0x6917('0xc'));var squel=require('squel');var crypto=require(_0x6917('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x6917('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6917('0xf'));var Papa=require(_0x6917('0x10'));var Redis=require(_0x6917('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x6917('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6917('0x13'));var logger=require(_0x6917('0x14'))(_0x6917('0x15'));var utils=require(_0x6917('0x16'));var config=require(_0x6917('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x6917('0x18'),'port':0x18eb});var socket=require(_0x6917('0x19'))(new Redis(config[_0x6917('0x1a')]));require('./voicePrefix.socket')[_0x6917('0x1b')](socket);function respondWithStatusCode(_0x527e54,_0x25d226){_0x25d226=_0x25d226||0xcc;return function(_0x483d59){if(_0x483d59){return _0x527e54[_0x6917('0x1c')](_0x25d226);}return _0x527e54[_0x6917('0x1d')](_0x25d226)['end']();};}function respondWithResult(_0x2862dd,_0x51e35f){_0x51e35f=_0x51e35f||0xc8;return function(_0x5926a1){if(_0x5926a1){return _0x2862dd[_0x6917('0x1d')](_0x51e35f)[_0x6917('0x1e')](_0x5926a1);}};}function respondWithFilteredResult(_0x25a0f5,_0x595f08){return function(_0x36e72e){if(_0x36e72e){var _0x4c8187=typeof _0x595f08[_0x6917('0x1f')]===_0x6917('0x20')&&typeof _0x595f08[_0x6917('0x21')]===_0x6917('0x20');var _0x48f70f=_0x36e72e[_0x6917('0x22')];var _0x39eeb9=_0x4c8187?0x0:_0x595f08[_0x6917('0x1f')];var _0x1728f4=_0x4c8187?_0x36e72e[_0x6917('0x22')]:_0x595f08[_0x6917('0x1f')]+_0x595f08[_0x6917('0x21')];var _0x587f6b;if(_0x1728f4>=_0x48f70f){_0x1728f4=_0x48f70f;_0x587f6b=0xc8;}else{_0x587f6b=0xce;}_0x25a0f5['status'](_0x587f6b);return _0x25a0f5[_0x6917('0x23')](_0x6917('0x24'),_0x39eeb9+'-'+_0x1728f4+'/'+_0x48f70f)[_0x6917('0x1e')](_0x36e72e);}return null;};}function patchUpdates(_0x5133b7){return function(_0x51ef16){try{jsonpatch['apply'](_0x51ef16,_0x5133b7,!![]);}catch(_0x2bf352){return BPromise[_0x6917('0x25')](_0x2bf352);}return _0x51ef16[_0x6917('0x26')]();};}function saveUpdates(_0x38f605,_0x2fb633){return function(_0x3e2545){if(_0x3e2545){return _0x3e2545[_0x6917('0x27')](_0x38f605)[_0x6917('0x28')](function(_0x520ef4){return _0x520ef4;});}return null;};}function removeEntity(_0x362624,_0x3f18c5){return function(_0x358d07){if(_0x358d07){return _0x358d07[_0x6917('0x29')]()[_0x6917('0x28')](function(){var _0x39ce29=_0x358d07[_0x6917('0x2a')]({'plain':!![]});var _0x4b9c77=_0x6917('0x2b');return db[_0x6917('0x2c')][_0x6917('0x29')]({'where':{'type':_0x4b9c77,'resourceId':_0x39ce29['id']}})[_0x6917('0x28')](function(){return _0x358d07;});})['then'](function(){_0x362624[_0x6917('0x1d')](0xcc)[_0x6917('0x2d')]();});}};}function handleEntityNotFound(_0x6b22e5,_0x3032f2){return function(_0x255737){if(!_0x255737){_0x6b22e5[_0x6917('0x1c')](0x194);}return _0x255737;};}function handleError(_0x237abe,_0x13ed12){_0x13ed12=_0x13ed12||0x1f4;return function(_0x1fbdd9){logger[_0x6917('0x2e')](_0x1fbdd9['stack']);if(_0x1fbdd9[_0x6917('0x2f')]){delete _0x1fbdd9['name'];}_0x237abe[_0x6917('0x1d')](_0x13ed12)['send'](_0x1fbdd9);};}exports['index']=function(_0x1bb42a,_0x3cf1f7){var _0x4419f3={},_0x471a1e={},_0xf08b9={'count':0x0,'rows':[]};var _0x17e7ad=_['map'](db[_0x6917('0x30')][_0x6917('0x31')],function(_0x368774){return{'name':_0x368774[_0x6917('0x32')],'type':_0x368774[_0x6917('0x33')][_0x6917('0x34')]};});_0x471a1e[_0x6917('0x35')]=_[_0x6917('0x36')](_0x17e7ad,_0x6917('0x2f'));_0x471a1e[_0x6917('0x37')]=_[_0x6917('0x38')](_0x1bb42a[_0x6917('0x37')]);_0x471a1e[_0x6917('0x39')]=_[_0x6917('0x3a')](_0x471a1e[_0x6917('0x35')],_0x471a1e[_0x6917('0x37')]);_0x4419f3['attributes']=_[_0x6917('0x3a')](_0x471a1e[_0x6917('0x35')],qs[_0x6917('0x3b')](_0x1bb42a[_0x6917('0x37')][_0x6917('0x3b')]));_0x4419f3[_0x6917('0x3c')]=_0x4419f3[_0x6917('0x3c')]['length']?_0x4419f3[_0x6917('0x3c')]:_0x471a1e['model'];if(!_0x1bb42a[_0x6917('0x37')][_0x6917('0x3d')](_0x6917('0x3e'))){_0x4419f3[_0x6917('0x21')]=qs[_0x6917('0x21')](_0x1bb42a['query'][_0x6917('0x21')]);_0x4419f3[_0x6917('0x1f')]=qs[_0x6917('0x1f')](_0x1bb42a['query'][_0x6917('0x1f')]);}_0x4419f3[_0x6917('0x3f')]=qs[_0x6917('0x40')](_0x1bb42a[_0x6917('0x37')][_0x6917('0x40')]);_0x4419f3[_0x6917('0x41')]=qs['filters'](_[_0x6917('0x42')](_0x1bb42a[_0x6917('0x37')],_0x471a1e[_0x6917('0x39')]),_0x17e7ad);if(_0x1bb42a[_0x6917('0x37')][_0x6917('0x43')]){_0x4419f3[_0x6917('0x41')]=_[_0x6917('0x44')](_0x4419f3[_0x6917('0x41')],{'$or':_[_0x6917('0x36')](_0x17e7ad,function(_0x3742c0){if(_0x3742c0['type']!==_0x6917('0x45')){var _0x468540={};_0x468540[_0x3742c0[_0x6917('0x2f')]]={'$like':'%'+_0x1bb42a[_0x6917('0x37')][_0x6917('0x43')]+'%'};return _0x468540;}})});}_0x4419f3=_['merge']({},_0x4419f3,_0x1bb42a[_0x6917('0x46')]);var _0x9991bd={'where':_0x4419f3[_0x6917('0x41')]};return db['VoicePrefix'][_0x6917('0x22')](_0x9991bd)['then'](function(_0x3f5b14){_0xf08b9[_0x6917('0x22')]=_0x3f5b14;if(_0x1bb42a[_0x6917('0x37')][_0x6917('0x47')]){_0x4419f3[_0x6917('0x48')]=[{'all':!![]}];}return db[_0x6917('0x30')][_0x6917('0x49')](_0x4419f3);})['then'](function(_0x5534f7){_0xf08b9[_0x6917('0x4a')]=_0x5534f7;return _0xf08b9;})[_0x6917('0x28')](respondWithFilteredResult(_0x3cf1f7,_0x4419f3))[_0x6917('0x4b')](handleError(_0x3cf1f7,null));};exports['show']=function(_0x13e0d2,_0x499704){var _0x17c3a9={'raw':![],'where':{'id':_0x13e0d2['params']['id']}},_0x4b7f9d={};_0x4b7f9d[_0x6917('0x35')]=_[_0x6917('0x38')](db[_0x6917('0x30')][_0x6917('0x31')]);_0x4b7f9d[_0x6917('0x37')]=_[_0x6917('0x38')](_0x13e0d2[_0x6917('0x37')]);_0x4b7f9d[_0x6917('0x39')]=_[_0x6917('0x3a')](_0x4b7f9d[_0x6917('0x35')],_0x4b7f9d['query']);_0x17c3a9[_0x6917('0x3c')]=_[_0x6917('0x3a')](_0x4b7f9d[_0x6917('0x35')],qs[_0x6917('0x3b')](_0x13e0d2['query'][_0x6917('0x3b')]));_0x17c3a9[_0x6917('0x3c')]=_0x17c3a9['attributes'][_0x6917('0x4c')]?_0x17c3a9[_0x6917('0x3c')]:_0x4b7f9d[_0x6917('0x35')];if(_0x13e0d2['query'][_0x6917('0x47')]){_0x17c3a9[_0x6917('0x48')]=[{'all':!![]}];}_0x17c3a9=_['merge']({},_0x17c3a9,_0x13e0d2['options']);return db[_0x6917('0x30')][_0x6917('0x4d')](_0x17c3a9)[_0x6917('0x28')](handleEntityNotFound(_0x499704,null))['then'](respondWithResult(_0x499704,null))[_0x6917('0x4b')](handleError(_0x499704,null));};exports[_0x6917('0x29')]=function(_0x337218,_0x4da089){return db[_0x6917('0x30')]['find']({'where':{'id':_0x337218[_0x6917('0x4e')]['id']}})[_0x6917('0x28')](handleEntityNotFound(_0x4da089,null))[_0x6917('0x28')](removeEntity(_0x4da089,null))[_0x6917('0x4b')](handleError(_0x4da089,null));};exports[_0x6917('0x4f')]=function(_0x4e6376,_0x4d7aa3){return db['VoicePrefix']['describe']()['then'](respondWithResult(_0x4d7aa3,null))[_0x6917('0x4b')](handleError(_0x4d7aa3,null));};exports[_0x6917('0x50')]=function(_0x137659,_0x19ec2a){var _0x322696;return db[_0x6917('0x51')][_0x6917('0x52')](function(_0x3801dc){return db['VoicePrefix'][_0x6917('0x50')](_0x137659[_0x6917('0x53')],{'transaction':_0x3801dc})['then'](function(_0x13b324){_0x322696=_0x13b324[_0x6917('0x2a')]({'plain':!![]});return db[_0x6917('0x54')][_0x6917('0x4d')]({'where':{'id':_0x322696['VoiceExtensionId']},'raw':!![]})[_0x6917('0x28')](function(_0x171803){return createVoicePrefixExtensions(_0x322696,_0x171803,_0x3801dc);});});})['then'](function(){var _0x212f04=_0x137659['user'][_0x6917('0x2a')]({'plain':!![]});if(!_0x212f04)throw new Error(_0x6917('0x55'));if(_0x212f04['role']===_0x6917('0x56')){var _0x199d1c=_0x322696;return db[_0x6917('0x57')][_0x6917('0x4d')]({'where':{'name':_0x6917('0x2b'),'userProfileId':_0x212f04[_0x6917('0x58')]},'raw':!![]})[_0x6917('0x28')](function(_0x2371d6){if(_0x2371d6&&_0x2371d6[_0x6917('0x59')]===0x0){return db['UserProfileResource'][_0x6917('0x50')]({'name':_0x199d1c[_0x6917('0x2f')],'resourceId':_0x199d1c['id'],'type':_0x2371d6['name'],'sectionId':_0x2371d6['id']},{})[_0x6917('0x28')](function(){return _0x322696;});}else{return _0x322696;}})[_0x6917('0x4b')](function(_0x4b563d){logger[_0x6917('0x2e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4b563d);throw _0x4b563d;});}return _0x322696;})[_0x6917('0x28')](respondWithResult(_0x19ec2a,null))[_0x6917('0x4b')](handleError(_0x19ec2a,null));};function Extension(_0x582882,_0x18860c,_0x467e4f,_0x49a335){this[_0x6917('0x5a')]=_0x6917('0x5b');this[_0x6917('0x5c')]=_0x582882;this[_0x6917('0x5d')]=_0x467e4f;this['type']=_0x6917('0x5e');this[_0x6917('0x5f')]=_0x6917('0x60');this['priority']=_0x18860c;this['appdata']=_0x49a335;}function createVoicePrefixExtensions(_0x19f6a5,_0x3da07e,_0x486d71){return new BPromise(function(_0x1a3d4e,_0x1d9a8f){var _0x3ff25d=new Extension(formatPrefixName(_0x19f6a5[_0x6917('0x61')]),0x1,_0x6917('0x62'),_0x6917('0x63'));_0x3ff25d[_0x6917('0x64')]=_0x19f6a5['id'];return db[_0x6917('0x54')][_0x6917('0x50')](_0x3ff25d,{'transaction':_0x486d71})[_0x6917('0x28')](function(_0x51f4db){var _0x38b551=_0x51f4db['get']({'plain':!![]});var _0x195afb=_[_0x6917('0x36')](addVoicePrefixExtensions(_0x19f6a5,_0x3da07e),function(_0x56f342){_0x56f342[_0x6917('0x65')]=_0x38b551['id'];_0x56f342[_0x6917('0x64')]=_0x19f6a5['id'];return _0x56f342;});return db[_0x6917('0x54')][_0x6917('0x66')](_0x195afb,{'transaction':_0x486d71})[_0x6917('0x28')](function(_0x4efa7c){if(!_0x4efa7c){return _0x1d9a8f('Extensions\x20creation\x20failed');}else{return _0x1a3d4e(_0x4efa7c);}})[_0x6917('0x4b')](function(_0xfe4f31){return _0x1d9a8f(_0xfe4f31);});});;});};function addVoicePrefixExtensions(_0x4f8621,_0x1ee375){var _0x4f506c=[];var _0xfaffb8=formatPrefixName(_0x4f8621[_0x6917('0x61')]);_0x4f506c[_0x6917('0x67')](new Extension(_0xfaffb8,0x2,'Set',_0x6917('0x68')+_0x4f8621[_0x6917('0x2f')]));if(_0x4f8621[_0x6917('0x69')]){_0x4f506c['push'](new Extension(_0xfaffb8,0x3,'Set',_0x6917('0x6a')+_0x4f8621[_0x6917('0x69')]));}else{_0x4f506c[_0x6917('0x67')](new Extension(_0xfaffb8,0x3,_0x6917('0x62'),_0x6917('0x6b')));}_0x4f506c['push'](new Extension(_0xfaffb8,0x4,_0x6917('0x6c'),_0x1ee375['context']+','+_0x6917('0x6d')+(0x8+_0x4f8621[_0x6917('0x2f')][_0x6917('0x4c')])+'}'+','+0x1));return _0x4f506c;}function formatPrefixName(_0x277c2e){var _0x2c4cc9='_';for(var _0x1aae1f=0x0;_0x1aae1f<_0x277c2e[_0x6917('0x4c')];_0x1aae1f++){if(_0x277c2e['charAt'](_0x1aae1f)=='-'){_0x2c4cc9+=_0x277c2e[_0x6917('0x6e')](_0x1aae1f);}else{_0x2c4cc9+='['+_0x277c2e[_0x6917('0x6e')](_0x1aae1f)+']';}}_0x2c4cc9+='.';return _0x2c4cc9;}exports[_0x6917('0x27')]=function(_0x362fe1,_0x5cad0d,_0x346b61){var _0x129eb6=_0x362fe1[_0x6917('0x53')];_0x129eb6['prefix']='system-'+_0x129eb6[_0x6917('0x2f')]+'-';return db['sequelize'][_0x6917('0x52')](function(_0x44a4d2){return db[_0x6917('0x30')][_0x6917('0x27')](_0x129eb6,{'where':{'id':_0x129eb6['id']},'transaction':_0x44a4d2})[_0x6917('0x28')](function(){return db[_0x6917('0x54')]['destroy']({'where':{'VoicePrefixId':_0x129eb6['id']},'transaction':_0x44a4d2})[_0x6917('0x28')](function(){return db['VoiceExtension'][_0x6917('0x4d')]({'where':{'id':_0x129eb6[_0x6917('0x65')]},'raw':!![]})[_0x6917('0x28')](function(_0x1c8735){return createVoicePrefixExtensions(_0x129eb6,_0x1c8735,_0x44a4d2);});});});})[_0x6917('0x28')](function(){return db[_0x6917('0x30')][_0x6917('0x6f')](_0x129eb6['id']);})[_0x6917('0x28')](respondWithResult(_0x5cad0d,null))[_0x6917('0x4b')](handleError(_0x5cad0d,null));};exports[_0x6917('0x70')]=function(_0x321c95,_0x557519,_0x2673f3){return db[_0x6917('0x30')][_0x6917('0x4d')]({'where':{'id':_0x321c95['params']['id']}})['then'](handleEntityNotFound(_0x557519,null))[_0x6917('0x28')](function(_0x1c13a3){if(_0x1c13a3){return _0x1c13a3[_0x6917('0x70')](_0x321c95[_0x6917('0x53')][_0x6917('0x71')],_['omit'](_0x321c95[_0x6917('0x53')],[_0x6917('0x71'),'id'])||{})[_0x6917('0x72')](function(_0x1e3e15){for(var _0x26c638=0x0;_0x26c638<_0x321c95[_0x6917('0x53')]['ids']['length'];_0x26c638+=0x1){socket['emit'](_0x6917('0x73'),{'UserId':Number(_0x321c95['body'][_0x6917('0x71')][_0x26c638]),'VoicePrefixId':Number(_0x321c95[_0x6917('0x4e')]['id'])});}return _0x1e3e15;});}})[_0x6917('0x28')](respondWithResult(_0x557519,null))[_0x6917('0x4b')](handleError(_0x557519,null));};exports['removeAgents']=function(_0x2fe3a4,_0x549341,_0x343b00){return db[_0x6917('0x30')]['find']({'where':{'id':_0x2fe3a4[_0x6917('0x4e')]['id']}})[_0x6917('0x28')](handleEntityNotFound(_0x549341,null))[_0x6917('0x28')](function(_0x4cb949){if(_0x4cb949){return _0x4cb949[_0x6917('0x74')](_0x2fe3a4[_0x6917('0x37')][_0x6917('0x71')])[_0x6917('0x28')](function(){if(_[_0x6917('0x75')](_0x2fe3a4[_0x6917('0x37')][_0x6917('0x71')])){for(var _0x514b0d=0x0;_0x514b0d<_0x2fe3a4['query']['ids']['length'];_0x514b0d+=0x1){socket[_0x6917('0x76')]('userVoicePrefix:remove',{'UserId':Number(_0x2fe3a4[_0x6917('0x37')][_0x6917('0x71')][_0x514b0d]),'VoicePrefixId':Number(_0x2fe3a4['params']['id'])});}}else{socket[_0x6917('0x76')](_0x6917('0x77'),{'UserId':Number(_0x2fe3a4['query'][_0x6917('0x71')]),'VoicePrefixId':Number(_0x2fe3a4[_0x6917('0x4e')]['id'])});}});}})[_0x6917('0x28')](respondWithStatusCode(_0x549341,null))[_0x6917('0x4b')](handleError(_0x549341,null));};exports[_0x6917('0x78')]=function(_0x5ebce3,_0x4cde76,_0x1df14d){var _0xdb3cc2={};var _0x3aeee0={};var _0x441cd1;var _0x2f0894;return db['VoicePrefix'][_0x6917('0x79')]({'where':{'id':_0x5ebce3['params']['id']}})[_0x6917('0x28')](handleEntityNotFound(_0x4cde76,null))[_0x6917('0x28')](function(_0x3340fa){if(_0x3340fa){_0x441cd1=_0x3340fa;_0x3aeee0['model']=_[_0x6917('0x38')](db['User'][_0x6917('0x31')]);_0x3aeee0[_0x6917('0x37')]=_[_0x6917('0x38')](_0x5ebce3['query']);_0x3aeee0[_0x6917('0x39')]=_[_0x6917('0x3a')](_0x3aeee0[_0x6917('0x35')],_0x3aeee0[_0x6917('0x37')]);_0xdb3cc2[_0x6917('0x3c')]=_[_0x6917('0x3a')](_0x3aeee0['model'],qs[_0x6917('0x3b')](_0x5ebce3[_0x6917('0x37')][_0x6917('0x3b')]));_0xdb3cc2[_0x6917('0x3c')]=_0xdb3cc2[_0x6917('0x3c')][_0x6917('0x4c')]?_0xdb3cc2['attributes']:_0x3aeee0[_0x6917('0x35')];_0xdb3cc2[_0x6917('0x3f')]=qs['sort'](_0x5ebce3['query']['sort']);_0xdb3cc2[_0x6917('0x41')]=qs[_0x6917('0x39')](_[_0x6917('0x42')](_0x5ebce3[_0x6917('0x37')],_0x3aeee0[_0x6917('0x39')]));if(_0x5ebce3[_0x6917('0x37')][_0x6917('0x43')]){_0xdb3cc2[_0x6917('0x41')]=_['merge'](_0xdb3cc2['where'],{'$or':_[_0x6917('0x36')](_0xdb3cc2[_0x6917('0x3c')],function(_0xd4cb4){var _0x2d0a6d={};_0x2d0a6d[_0xd4cb4]={'$like':'%'+_0x5ebce3[_0x6917('0x37')][_0x6917('0x43')]+'%'};return _0x2d0a6d;})});}_0xdb3cc2=_[_0x6917('0x44')]({},_0xdb3cc2,_0x5ebce3[_0x6917('0x46')]);return _0x441cd1[_0x6917('0x78')](_0xdb3cc2);}})[_0x6917('0x28')](function(_0x2454b8){if(_0x2454b8){_0x2f0894=_0x2454b8[_0x6917('0x4c')];if(!_0x5ebce3['query'][_0x6917('0x3d')](_0x6917('0x3e'))){_0xdb3cc2[_0x6917('0x21')]=qs[_0x6917('0x21')](_0x5ebce3[_0x6917('0x37')]['limit']);_0xdb3cc2[_0x6917('0x1f')]=qs['offset'](_0x5ebce3[_0x6917('0x37')]['offset']);}return _0x441cd1[_0x6917('0x78')](_0xdb3cc2);}})[_0x6917('0x28')](function(_0x4f5659){if(_0x4f5659){return _0x4f5659?{'count':_0x2f0894,'rows':_0x4f5659}:null;}})['then'](respondWithResult(_0x4cde76,null))[_0x6917('0x4b')](handleError(_0x4cde76,null));};
\ No newline at end of file
+var _0xeb3b=['params','rawAttributes','find','destroy','describe','sequelize','create','body','VoiceExtension','VoiceExtensionId','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','exten','app','system','description','Voice\x20Prefix\x20Extension','priority','prefix','NoOp','Voice\x20Prefix','VoicePrefixId','bulkCreate','Extensions\x20creation\x20failed','push','Set','CDR(prefix)=','callerIdAll','PREFIX-CALLERIDALL=','No\x20callerid\x20available','goto','${EXTEN:','charAt','system-','findById','addAgents','ids','omit','spread','removeAgents','userVoicePrefix:remove','emit','getAgents','findOne','order','pick','nolimit','getTeams','Team','addTeams','findAll','User','Agents','online','voicePause','interface','flatMap','transaction','each','TeamVoicePrefix','upsert','UserVoicePrefix','findOrCreate','select','field','tq.TeamId','from','team_has_voice_prefixes','join','user_has_teams','VoicePrefixId\x20=\x20?','clone','ut.UserId\x20=\x20?','SELECT','every','TeamId','includes','all','union','compact','value','removeTeams','isEmpty','forEach','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','sendStatus','status','offset','limit','undefined','count','set','json','apply','save','update','then','get','VoicePrefixes','UserProfileResource','end','error','name','send','index','map','VoicePrefix','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','sort','where','filter','merge','options','includeAll','include','rows','catch','show'];(function(_0x45b5ab,_0x5f2cfc){var _0x3392ea=function(_0x588f83){while(--_0x588f83){_0x45b5ab['push'](_0x45b5ab['shift']());}};_0x3392ea(++_0x5f2cfc);}(_0xeb3b,0x19e));var _0xbeb3=function(_0x3485f8,_0x1b66cf){_0x3485f8=_0x3485f8-0x0;var _0x1fbba7=_0xeb3b[_0x3485f8];return _0x1fbba7;};'use strict';var emlformat=require(_0xbeb3('0x0'));var rimraf=require(_0xbeb3('0x1'));var zipdir=require(_0xbeb3('0x2'));var jsonpatch=require(_0xbeb3('0x3'));var rp=require(_0xbeb3('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbeb3('0x5'));var util=require('util');var path=require(_0xbeb3('0x6'));var sox=require('sox');var csv=require(_0xbeb3('0x7'));var ejs=require(_0xbeb3('0x8'));var fs=require('fs');var fs_extra=require(_0xbeb3('0x9'));var _=require(_0xbeb3('0xa'));var squel=require(_0xbeb3('0xb'));var crypto=require(_0xbeb3('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xbeb3('0xd'));var toCsv=require(_0xbeb3('0x7'));var querystring=require(_0xbeb3('0xe'));var Papa=require(_0xbeb3('0xf'));var Redis=require(_0xbeb3('0x10'));var authService=require(_0xbeb3('0x11'));var qs=require(_0xbeb3('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbeb3('0x13'));var logger=require(_0xbeb3('0x14'))('api');var utils=require(_0xbeb3('0x15'));var config=require(_0xbeb3('0x16'));var licenseUtil=require(_0xbeb3('0x17'));var db=require(_0xbeb3('0x18'))['db'];config[_0xbeb3('0x19')]=_[_0xbeb3('0x1a')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xbeb3('0x1b'))(new Redis(config[_0xbeb3('0x19')]));require('./voicePrefix.socket')['register'](socket);function respondWithStatusCode(_0xed9879,_0x40f586){_0x40f586=_0x40f586||0xcc;return function(_0x395d2b){if(_0x395d2b){return _0xed9879[_0xbeb3('0x1c')](_0x40f586);}return _0xed9879[_0xbeb3('0x1d')](_0x40f586)['end']();};}function respondWithResult(_0x1aeaee,_0x5970a1){_0x5970a1=_0x5970a1||0xc8;return function(_0x80ef55){if(_0x80ef55){return _0x1aeaee['status'](_0x5970a1)['json'](_0x80ef55);}};}function respondWithFilteredResult(_0x4f8481,_0x9bc0a4){return function(_0x44a4bb){if(_0x44a4bb){var _0x32275b=typeof _0x9bc0a4[_0xbeb3('0x1e')]==='undefined'&&typeof _0x9bc0a4[_0xbeb3('0x1f')]===_0xbeb3('0x20');var _0xe2cc47=_0x44a4bb['count'];var _0x4af96f=_0x32275b?0x0:_0x9bc0a4[_0xbeb3('0x1e')];var _0x57e8b6=_0x32275b?_0x44a4bb[_0xbeb3('0x21')]:_0x9bc0a4['offset']+_0x9bc0a4['limit'];var _0xfa2736;if(_0x57e8b6>=_0xe2cc47){_0x57e8b6=_0xe2cc47;_0xfa2736=0xc8;}else{_0xfa2736=0xce;}_0x4f8481[_0xbeb3('0x1d')](_0xfa2736);return _0x4f8481[_0xbeb3('0x22')]('Content-Range',_0x4af96f+'-'+_0x57e8b6+'/'+_0xe2cc47)[_0xbeb3('0x23')](_0x44a4bb);}return null;};}function patchUpdates(_0x18ea0f){return function(_0x5e047e){try{jsonpatch[_0xbeb3('0x24')](_0x5e047e,_0x18ea0f,!![]);}catch(_0x366bdb){return BPromise['reject'](_0x366bdb);}return _0x5e047e[_0xbeb3('0x25')]();};}function saveUpdates(_0x278fe4,_0x16b079){return function(_0x42c6c3){if(_0x42c6c3){return _0x42c6c3[_0xbeb3('0x26')](_0x278fe4)[_0xbeb3('0x27')](function(_0x84921a){return _0x84921a;});}return null;};}function removeEntity(_0x340581,_0x46fe17){return function(_0x59f27c){if(_0x59f27c){return _0x59f27c['destroy']()[_0xbeb3('0x27')](function(){var _0x520116=_0x59f27c[_0xbeb3('0x28')]({'plain':!![]});var _0xda808c=_0xbeb3('0x29');return db[_0xbeb3('0x2a')]['destroy']({'where':{'type':_0xda808c,'resourceId':_0x520116['id']}})[_0xbeb3('0x27')](function(){return _0x59f27c;});})['then'](function(){_0x340581[_0xbeb3('0x1d')](0xcc)[_0xbeb3('0x2b')]();});}};}function handleEntityNotFound(_0x5bd93d,_0x483198){return function(_0x9b8f13){if(!_0x9b8f13){_0x5bd93d['sendStatus'](0x194);}return _0x9b8f13;};}function handleError(_0x51f7ef,_0x520b8e){_0x520b8e=_0x520b8e||0x1f4;return function(_0x5bfef7){logger[_0xbeb3('0x2c')](_0x5bfef7['stack']);if(_0x5bfef7[_0xbeb3('0x2d')]){delete _0x5bfef7[_0xbeb3('0x2d')];}_0x51f7ef[_0xbeb3('0x1d')](_0x520b8e)[_0xbeb3('0x2e')](_0x5bfef7);};}exports[_0xbeb3('0x2f')]=function(_0x12f7d4,_0x411cd3){var _0x30fcd4={},_0x2dc0d4={},_0x3002e3={'count':0x0,'rows':[]};var _0x4ead3b=_[_0xbeb3('0x30')](db[_0xbeb3('0x31')]['rawAttributes'],function(_0xb46de){return{'name':_0xb46de[_0xbeb3('0x32')],'type':_0xb46de[_0xbeb3('0x33')][_0xbeb3('0x34')]};});_0x2dc0d4['model']=_[_0xbeb3('0x30')](_0x4ead3b,_0xbeb3('0x2d'));_0x2dc0d4[_0xbeb3('0x35')]=_[_0xbeb3('0x36')](_0x12f7d4[_0xbeb3('0x35')]);_0x2dc0d4[_0xbeb3('0x37')]=_[_0xbeb3('0x38')](_0x2dc0d4[_0xbeb3('0x39')],_0x2dc0d4[_0xbeb3('0x35')]);_0x30fcd4['attributes']=_[_0xbeb3('0x38')](_0x2dc0d4['model'],qs[_0xbeb3('0x3a')](_0x12f7d4[_0xbeb3('0x35')][_0xbeb3('0x3a')]));_0x30fcd4[_0xbeb3('0x3b')]=_0x30fcd4[_0xbeb3('0x3b')][_0xbeb3('0x3c')]?_0x30fcd4[_0xbeb3('0x3b')]:_0x2dc0d4[_0xbeb3('0x39')];if(!_0x12f7d4['query'][_0xbeb3('0x3d')]('nolimit')){_0x30fcd4['limit']=qs['limit'](_0x12f7d4[_0xbeb3('0x35')][_0xbeb3('0x1f')]);_0x30fcd4[_0xbeb3('0x1e')]=qs[_0xbeb3('0x1e')](_0x12f7d4[_0xbeb3('0x35')][_0xbeb3('0x1e')]);}_0x30fcd4['order']=qs[_0xbeb3('0x3e')](_0x12f7d4[_0xbeb3('0x35')][_0xbeb3('0x3e')]);_0x30fcd4['where']=qs['filters'](_['pick'](_0x12f7d4[_0xbeb3('0x35')],_0x2dc0d4[_0xbeb3('0x37')]),_0x4ead3b);if(_0x12f7d4[_0xbeb3('0x35')]['filter']){_0x30fcd4[_0xbeb3('0x3f')]=_['merge'](_0x30fcd4[_0xbeb3('0x3f')],{'$or':_[_0xbeb3('0x30')](_0x4ead3b,function(_0x12156b){if(_0x12156b[_0xbeb3('0x33')]!=='VIRTUAL'){var _0x5676da={};_0x5676da[_0x12156b[_0xbeb3('0x2d')]]={'$like':'%'+_0x12f7d4[_0xbeb3('0x35')][_0xbeb3('0x40')]+'%'};return _0x5676da;}})});}_0x30fcd4=_[_0xbeb3('0x41')]({},_0x30fcd4,_0x12f7d4[_0xbeb3('0x42')]);var _0x1c31f1={'where':_0x30fcd4[_0xbeb3('0x3f')]};return db[_0xbeb3('0x31')]['count'](_0x1c31f1)[_0xbeb3('0x27')](function(_0x39f2d2){_0x3002e3[_0xbeb3('0x21')]=_0x39f2d2;if(_0x12f7d4[_0xbeb3('0x35')][_0xbeb3('0x43')]){_0x30fcd4[_0xbeb3('0x44')]=[{'all':!![]}];}return db[_0xbeb3('0x31')]['findAll'](_0x30fcd4);})[_0xbeb3('0x27')](function(_0xd0403f){_0x3002e3[_0xbeb3('0x45')]=_0xd0403f;return _0x3002e3;})[_0xbeb3('0x27')](respondWithFilteredResult(_0x411cd3,_0x30fcd4))[_0xbeb3('0x46')](handleError(_0x411cd3,null));};exports[_0xbeb3('0x47')]=function(_0x390c95,_0x42e9a2){var _0x1a213d={'raw':![],'where':{'id':_0x390c95[_0xbeb3('0x48')]['id']}},_0x18a485={};_0x18a485[_0xbeb3('0x39')]=_[_0xbeb3('0x36')](db['VoicePrefix'][_0xbeb3('0x49')]);_0x18a485[_0xbeb3('0x35')]=_[_0xbeb3('0x36')](_0x390c95['query']);_0x18a485['filters']=_[_0xbeb3('0x38')](_0x18a485[_0xbeb3('0x39')],_0x18a485[_0xbeb3('0x35')]);_0x1a213d[_0xbeb3('0x3b')]=_['intersection'](_0x18a485[_0xbeb3('0x39')],qs['fields'](_0x390c95['query'][_0xbeb3('0x3a')]));_0x1a213d[_0xbeb3('0x3b')]=_0x1a213d[_0xbeb3('0x3b')][_0xbeb3('0x3c')]?_0x1a213d['attributes']:_0x18a485[_0xbeb3('0x39')];if(_0x390c95[_0xbeb3('0x35')][_0xbeb3('0x43')]){_0x1a213d['include']=[{'all':!![]}];}_0x1a213d=_[_0xbeb3('0x41')]({},_0x1a213d,_0x390c95['options']);return db['VoicePrefix'][_0xbeb3('0x4a')](_0x1a213d)[_0xbeb3('0x27')](handleEntityNotFound(_0x42e9a2,null))[_0xbeb3('0x27')](respondWithResult(_0x42e9a2,null))['catch'](handleError(_0x42e9a2,null));};exports[_0xbeb3('0x4b')]=function(_0x312b28,_0x367942){return db['VoicePrefix'][_0xbeb3('0x4a')]({'where':{'id':_0x312b28['params']['id']}})[_0xbeb3('0x27')](handleEntityNotFound(_0x367942,null))['then'](removeEntity(_0x367942,null))[_0xbeb3('0x46')](handleError(_0x367942,null));};exports[_0xbeb3('0x4c')]=function(_0x3294c9,_0x3b48e2){return db[_0xbeb3('0x31')][_0xbeb3('0x4c')]()[_0xbeb3('0x27')](respondWithResult(_0x3b48e2,null))[_0xbeb3('0x46')](handleError(_0x3b48e2,null));};exports['create']=function(_0xde022c,_0x2416c0){var _0xa852bb;return db[_0xbeb3('0x4d')]['transaction'](function(_0x2771e3){return db[_0xbeb3('0x31')][_0xbeb3('0x4e')](_0xde022c[_0xbeb3('0x4f')],{'transaction':_0x2771e3})['then'](function(_0x2d980d){_0xa852bb=_0x2d980d['get']({'plain':!![]});return db[_0xbeb3('0x50')][_0xbeb3('0x4a')]({'where':{'id':_0xa852bb[_0xbeb3('0x51')]},'raw':!![]})['then'](function(_0x43379e){return createVoicePrefixExtensions(_0xa852bb,_0x43379e,_0x2771e3);});});})[_0xbeb3('0x27')](function(){var _0x1afd05=_0xde022c[_0xbeb3('0x52')][_0xbeb3('0x28')]({'plain':!![]});if(!_0x1afd05)throw new Error(_0xbeb3('0x53'));if(_0x1afd05[_0xbeb3('0x54')]===_0xbeb3('0x52')){var _0x27024e=_0xa852bb;return db[_0xbeb3('0x55')]['find']({'where':{'name':_0xbeb3('0x29'),'userProfileId':_0x1afd05[_0xbeb3('0x56')]},'raw':!![]})[_0xbeb3('0x27')](function(_0x8660b4){if(_0x8660b4&&_0x8660b4[_0xbeb3('0x57')]===0x0){return db['UserProfileResource']['create']({'name':_0x27024e[_0xbeb3('0x2d')],'resourceId':_0x27024e['id'],'type':_0x8660b4[_0xbeb3('0x2d')],'sectionId':_0x8660b4['id']},{})['then'](function(){return _0xa852bb;});}else{return _0xa852bb;}})[_0xbeb3('0x46')](function(_0x405354){logger[_0xbeb3('0x2c')](_0xbeb3('0x58'),_0x405354);throw _0x405354;});}return _0xa852bb;})[_0xbeb3('0x27')](respondWithResult(_0x2416c0,null))[_0xbeb3('0x46')](handleError(_0x2416c0,null));};function Extension(_0x15128c,_0x5d813b,_0x31bda5,_0x40b0c0){this[_0xbeb3('0x59')]='from-sip';this[_0xbeb3('0x5a')]=_0x15128c;this[_0xbeb3('0x5b')]=_0x31bda5;this['type']=_0xbeb3('0x5c');this[_0xbeb3('0x5d')]=_0xbeb3('0x5e');this[_0xbeb3('0x5f')]=_0x5d813b;this['appdata']=_0x40b0c0;}function createVoicePrefixExtensions(_0x553e8c,_0x278d22,_0x52888c){return new BPromise(function(_0x1c8857,_0x59f2e3){var _0x2d36cb=new Extension(formatPrefixName(_0x553e8c[_0xbeb3('0x60')]),0x1,_0xbeb3('0x61'),_0xbeb3('0x62'));_0x2d36cb[_0xbeb3('0x63')]=_0x553e8c['id'];return db[_0xbeb3('0x50')][_0xbeb3('0x4e')](_0x2d36cb,{'transaction':_0x52888c})[_0xbeb3('0x27')](function(_0xc78a7a){var _0x17718a=_0xc78a7a[_0xbeb3('0x28')]({'plain':!![]});var _0x143c0c=_[_0xbeb3('0x30')](addVoicePrefixExtensions(_0x553e8c,_0x278d22),function(_0x450ea3){_0x450ea3[_0xbeb3('0x51')]=_0x17718a['id'];_0x450ea3[_0xbeb3('0x63')]=_0x553e8c['id'];return _0x450ea3;});return db[_0xbeb3('0x50')][_0xbeb3('0x64')](_0x143c0c,{'transaction':_0x52888c})['then'](function(_0x15c890){if(!_0x15c890){return _0x59f2e3(_0xbeb3('0x65'));}else{return _0x1c8857(_0x15c890);}})[_0xbeb3('0x46')](function(_0x3dd579){return _0x59f2e3(_0x3dd579);});});;});};function addVoicePrefixExtensions(_0x1dfb62,_0x515c6a){var _0x39546e=[];var _0x53e04c=formatPrefixName(_0x1dfb62[_0xbeb3('0x60')]);_0x39546e[_0xbeb3('0x66')](new Extension(_0x53e04c,0x2,_0xbeb3('0x67'),_0xbeb3('0x68')+_0x1dfb62[_0xbeb3('0x2d')]));if(_0x1dfb62[_0xbeb3('0x69')]){_0x39546e[_0xbeb3('0x66')](new Extension(_0x53e04c,0x3,_0xbeb3('0x67'),_0xbeb3('0x6a')+_0x1dfb62[_0xbeb3('0x69')]));}else{_0x39546e[_0xbeb3('0x66')](new Extension(_0x53e04c,0x3,_0xbeb3('0x61'),_0xbeb3('0x6b')));}_0x39546e[_0xbeb3('0x66')](new Extension(_0x53e04c,0x4,_0xbeb3('0x6c'),_0x515c6a[_0xbeb3('0x59')]+','+_0xbeb3('0x6d')+(0x8+_0x1dfb62[_0xbeb3('0x2d')][_0xbeb3('0x3c')])+'}'+','+0x1));return _0x39546e;}function formatPrefixName(_0x166f45){var _0x44191f='_';for(var _0x1dc478=0x0;_0x1dc478<_0x166f45[_0xbeb3('0x3c')];_0x1dc478++){if(_0x166f45[_0xbeb3('0x6e')](_0x1dc478)=='-'){_0x44191f+=_0x166f45[_0xbeb3('0x6e')](_0x1dc478);}else{_0x44191f+='['+_0x166f45[_0xbeb3('0x6e')](_0x1dc478)+']';}}_0x44191f+='.';return _0x44191f;}exports[_0xbeb3('0x26')]=function(_0x12e49d,_0x22acf9,_0x378f38){var _0xe9ad41=_0x12e49d[_0xbeb3('0x4f')];_0xe9ad41[_0xbeb3('0x60')]=_0xbeb3('0x6f')+_0xe9ad41[_0xbeb3('0x2d')]+'-';return db[_0xbeb3('0x4d')]['transaction'](function(_0x32fa71){return db[_0xbeb3('0x31')]['update'](_0xe9ad41,{'where':{'id':_0xe9ad41['id']},'transaction':_0x32fa71})[_0xbeb3('0x27')](function(){return db[_0xbeb3('0x50')][_0xbeb3('0x4b')]({'where':{'VoicePrefixId':_0xe9ad41['id']},'transaction':_0x32fa71})['then'](function(){return db['VoiceExtension'][_0xbeb3('0x4a')]({'where':{'id':_0xe9ad41[_0xbeb3('0x51')]},'raw':!![]})[_0xbeb3('0x27')](function(_0xebc0bc){return createVoicePrefixExtensions(_0xe9ad41,_0xebc0bc,_0x32fa71);});});});})[_0xbeb3('0x27')](function(){return db['VoicePrefix'][_0xbeb3('0x70')](_0xe9ad41['id']);})[_0xbeb3('0x27')](respondWithResult(_0x22acf9,null))[_0xbeb3('0x46')](handleError(_0x22acf9,null));};exports[_0xbeb3('0x71')]=function(_0x1b619a,_0x48f3e0,_0x1502a2){return db['VoicePrefix']['find']({'where':{'id':_0x1b619a[_0xbeb3('0x48')]['id']}})['then'](handleEntityNotFound(_0x48f3e0,null))[_0xbeb3('0x27')](function(_0x262563){if(_0x262563){return _0x262563[_0xbeb3('0x71')](_0x1b619a[_0xbeb3('0x4f')][_0xbeb3('0x72')],_[_0xbeb3('0x73')](_0x1b619a[_0xbeb3('0x4f')],['ids','id'])||{})[_0xbeb3('0x74')](function(_0xde4a75){for(var _0x367541=0x0;_0x367541<_0x1b619a['body']['ids'][_0xbeb3('0x3c')];_0x367541+=0x1){socket['emit']('userVoicePrefix:save',{'UserId':Number(_0x1b619a['body'][_0xbeb3('0x72')][_0x367541]),'VoicePrefixId':Number(_0x1b619a[_0xbeb3('0x48')]['id'])});}return _0xde4a75;});}})[_0xbeb3('0x27')](respondWithResult(_0x48f3e0,null))[_0xbeb3('0x46')](handleError(_0x48f3e0,null));};exports['removeAgents']=function(_0x52dc94,_0xe45627,_0x16d9dd){return db[_0xbeb3('0x31')]['find']({'where':{'id':_0x52dc94['params']['id']}})[_0xbeb3('0x27')](handleEntityNotFound(_0xe45627,null))[_0xbeb3('0x27')](function(_0x28b9c2){if(_0x28b9c2){return _0x28b9c2[_0xbeb3('0x75')](_0x52dc94[_0xbeb3('0x35')][_0xbeb3('0x72')])[_0xbeb3('0x27')](function(){if(_['isArray'](_0x52dc94['query'][_0xbeb3('0x72')])){for(var _0x3013d4=0x0;_0x3013d4<_0x52dc94['query']['ids'][_0xbeb3('0x3c')];_0x3013d4+=0x1){socket['emit'](_0xbeb3('0x76'),{'UserId':Number(_0x52dc94[_0xbeb3('0x35')][_0xbeb3('0x72')][_0x3013d4]),'VoicePrefixId':Number(_0x52dc94[_0xbeb3('0x48')]['id'])});}}else{socket[_0xbeb3('0x77')](_0xbeb3('0x76'),{'UserId':Number(_0x52dc94[_0xbeb3('0x35')][_0xbeb3('0x72')]),'VoicePrefixId':Number(_0x52dc94[_0xbeb3('0x48')]['id'])});}});}})[_0xbeb3('0x27')](respondWithStatusCode(_0xe45627,null))[_0xbeb3('0x46')](handleError(_0xe45627,null));};exports[_0xbeb3('0x78')]=function(_0x466d62,_0x153d12,_0xf931d){var _0x3f0f18={};var _0x29fd6c={};var _0x82ade6;var _0x5be6ad;return db['VoicePrefix'][_0xbeb3('0x79')]({'where':{'id':_0x466d62[_0xbeb3('0x48')]['id']}})['then'](handleEntityNotFound(_0x153d12,null))[_0xbeb3('0x27')](function(_0x5d23d4){if(_0x5d23d4){_0x82ade6=_0x5d23d4;_0x29fd6c[_0xbeb3('0x39')]=_[_0xbeb3('0x36')](db['User'][_0xbeb3('0x49')]);_0x29fd6c[_0xbeb3('0x35')]=_[_0xbeb3('0x36')](_0x466d62[_0xbeb3('0x35')]);_0x29fd6c[_0xbeb3('0x37')]=_[_0xbeb3('0x38')](_0x29fd6c[_0xbeb3('0x39')],_0x29fd6c[_0xbeb3('0x35')]);_0x3f0f18[_0xbeb3('0x3b')]=_[_0xbeb3('0x38')](_0x29fd6c[_0xbeb3('0x39')],qs[_0xbeb3('0x3a')](_0x466d62['query'][_0xbeb3('0x3a')]));_0x3f0f18[_0xbeb3('0x3b')]=_0x3f0f18[_0xbeb3('0x3b')][_0xbeb3('0x3c')]?_0x3f0f18[_0xbeb3('0x3b')]:_0x29fd6c['model'];_0x3f0f18[_0xbeb3('0x7a')]=qs[_0xbeb3('0x3e')](_0x466d62['query'][_0xbeb3('0x3e')]);_0x3f0f18['where']=qs['filters'](_[_0xbeb3('0x7b')](_0x466d62[_0xbeb3('0x35')],_0x29fd6c[_0xbeb3('0x37')]));if(_0x466d62['query'][_0xbeb3('0x40')]){_0x3f0f18[_0xbeb3('0x3f')]=_[_0xbeb3('0x41')](_0x3f0f18['where'],{'$or':_[_0xbeb3('0x30')](_0x3f0f18[_0xbeb3('0x3b')],function(_0x201677){var _0x54a50e={};_0x54a50e[_0x201677]={'$like':'%'+_0x466d62[_0xbeb3('0x35')][_0xbeb3('0x40')]+'%'};return _0x54a50e;})});}_0x3f0f18=_[_0xbeb3('0x41')]({},_0x3f0f18,_0x466d62[_0xbeb3('0x42')]);return _0x82ade6[_0xbeb3('0x78')](_0x3f0f18);}})['then'](function(_0xdb820a){if(_0xdb820a){_0x5be6ad=_0xdb820a['length'];if(!_0x466d62[_0xbeb3('0x35')][_0xbeb3('0x3d')](_0xbeb3('0x7c'))){_0x3f0f18['limit']=qs[_0xbeb3('0x1f')](_0x466d62[_0xbeb3('0x35')][_0xbeb3('0x1f')]);_0x3f0f18[_0xbeb3('0x1e')]=qs[_0xbeb3('0x1e')](_0x466d62[_0xbeb3('0x35')]['offset']);}return _0x82ade6['getAgents'](_0x3f0f18);}})[_0xbeb3('0x27')](function(_0x393b66){if(_0x393b66){return _0x393b66?{'count':_0x5be6ad,'rows':_0x393b66}:null;}})[_0xbeb3('0x27')](respondWithResult(_0x153d12,null))['catch'](handleError(_0x153d12,null));};exports[_0xbeb3('0x7d')]=function(_0x4d5d73,_0x26a52d,_0x332543){var _0x4f44fb={};var _0x5c13e0={};var _0x2a9a98;var _0x560a0c;return db[_0xbeb3('0x31')][_0xbeb3('0x79')]({'where':{'id':_0x4d5d73['params']['id']}})[_0xbeb3('0x27')](handleEntityNotFound(_0x26a52d,null))['then'](function(_0x179de1){if(_0x179de1){_0x2a9a98=_0x179de1;_0x5c13e0['model']=_[_0xbeb3('0x36')](db[_0xbeb3('0x7e')][_0xbeb3('0x49')]);_0x5c13e0[_0xbeb3('0x35')]=_[_0xbeb3('0x36')](_0x4d5d73[_0xbeb3('0x35')]);_0x5c13e0[_0xbeb3('0x37')]=_[_0xbeb3('0x38')](_0x5c13e0['model'],_0x5c13e0['query']);_0x4f44fb[_0xbeb3('0x3b')]=_[_0xbeb3('0x38')](_0x5c13e0[_0xbeb3('0x39')],qs['fields'](_0x4d5d73[_0xbeb3('0x35')][_0xbeb3('0x3a')]));_0x4f44fb[_0xbeb3('0x3b')]=_0x4f44fb[_0xbeb3('0x3b')][_0xbeb3('0x3c')]?_0x4f44fb['attributes']:_0x5c13e0[_0xbeb3('0x39')];_0x4f44fb[_0xbeb3('0x7a')]=qs[_0xbeb3('0x3e')](_0x4d5d73['query'][_0xbeb3('0x3e')]);_0x4f44fb[_0xbeb3('0x3f')]=qs[_0xbeb3('0x37')](_[_0xbeb3('0x7b')](_0x4d5d73[_0xbeb3('0x35')],_0x5c13e0[_0xbeb3('0x37')]));if(_0x4d5d73[_0xbeb3('0x35')]['filter']){_0x4f44fb[_0xbeb3('0x3f')]=_[_0xbeb3('0x41')](_0x4f44fb[_0xbeb3('0x3f')],{'$or':_[_0xbeb3('0x30')](_0x4f44fb[_0xbeb3('0x3b')],function(_0x3e53af){var _0x52ef84={};_0x52ef84[_0x3e53af]={'$like':'%'+_0x4d5d73[_0xbeb3('0x35')][_0xbeb3('0x40')]+'%'};return _0x52ef84;})});}_0x4f44fb=_[_0xbeb3('0x41')]({},_0x4f44fb,_0x4d5d73['options']);return _0x2a9a98['getTeams'](_0x4f44fb);}})['then'](function(_0x14a29d){if(_0x14a29d){_0x560a0c=_0x14a29d['length'];if(!_0x4d5d73['query'][_0xbeb3('0x3d')]('nolimit')){_0x4f44fb['limit']=qs[_0xbeb3('0x1f')](_0x4d5d73['query'][_0xbeb3('0x1f')]);_0x4f44fb[_0xbeb3('0x1e')]=qs[_0xbeb3('0x1e')](_0x4d5d73['query'][_0xbeb3('0x1e')]);}return _0x2a9a98['getTeams'](_0x4f44fb);}})[_0xbeb3('0x27')](function(_0x104dd9){if(_0x104dd9){return _0x104dd9?{'count':_0x560a0c,'rows':_0x104dd9}:null;}})[_0xbeb3('0x27')](respondWithResult(_0x26a52d,null))[_0xbeb3('0x46')](handleError(_0x26a52d,null));};exports[_0xbeb3('0x7f')]=function(_0x3732be,_0x121994,_0x4e400e){var _0x226858=_0x3732be['body']['ids'];var _0x564ec8;return db['Team'][_0xbeb3('0x80')]({'where':{'id':_0x226858},'attributes':['id'],'include':[{'model':db[_0xbeb3('0x81')],'as':_0xbeb3('0x82'),'attributes':['id','name',_0xbeb3('0x83'),_0xbeb3('0x84'),_0xbeb3('0x85')],'raw':!![]}]})[_0xbeb3('0x27')](function(_0x212e32){if(_0x212e32){_0x564ec8=_0x212e32;var _0x432cdf=_[_0xbeb3('0x86')](_0x212e32,function(_0x475b09){var _0x1703ff=_0x475b09['get']({'plain':!![]});return _0x1703ff[_0xbeb3('0x82')];});return db['VoicePrefix'][_0xbeb3('0x4a')]({'where':{'id':_0x3732be[_0xbeb3('0x48')]['id']}})[_0xbeb3('0x27')](function(_0x25f2b4){return db['sequelize'][_0xbeb3('0x87')](function(_0x531dd8){return _0x25f2b4[_0xbeb3('0x7f')](_0x226858,{'transaction':_0x531dd8})[_0xbeb3('0x27')](function(){return BPromise[_0xbeb3('0x88')](_0x564ec8,function(_0x53f0c3){return db[_0xbeb3('0x89')][_0xbeb3('0x8a')]({'TeamId':_0x53f0c3['id'],'VoicePrefixId':_0x3732be[_0xbeb3('0x48')]['id']},{'transaction':_0x531dd8});});})[_0xbeb3('0x27')](function(){return BPromise[_0xbeb3('0x88')](_0x432cdf,function(_0x26897b){return db[_0xbeb3('0x8b')][_0xbeb3('0x8c')]({'where':{'UserId':_0x26897b['id'],'VoicePrefixId':_0x3732be[_0xbeb3('0x48')]['id']},'transaction':_0x531dd8});});})[_0xbeb3('0x27')](function(){_0x432cdf['forEach'](function(_0x6480d0){socket[_0xbeb3('0x77')]('userVoicePrefix:save',{'UserId':_0x6480d0['id'],'VoicePrefixId':_0x25f2b4['id']});});});});});}})[_0xbeb3('0x27')](respondWithStatusCode(_0x121994,null))[_0xbeb3('0x46')](handleError(_0x121994,null));};exports['removeTeams']=function(_0x296b8f,_0x76df64,_0x2744ed){return db['Team']['findAll']({'where':{'id':_0x296b8f[_0xbeb3('0x35')][_0xbeb3('0x72')]},'attributes':['id'],'include':[{'model':db[_0xbeb3('0x81')],'as':_0xbeb3('0x82'),'attributes':['id'],'raw':!![]}]})[_0xbeb3('0x27')](handleEntityNotFound(_0x76df64,null))['then'](function(_0x2dea1d){var _0x5f266f=_['map'](_0x2dea1d,'id');var _0x38b933=[];var _0xfbecae=[];var _0x8e33e8=squel[_0xbeb3('0x8d')]();_0x8e33e8[_0xbeb3('0x8e')](_0xbeb3('0x8f'))[_0xbeb3('0x90')](_0xbeb3('0x91'),'tq')[_0xbeb3('0x92')](_0xbeb3('0x93'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0xbeb3('0x3f')](_0xbeb3('0x94'),_0x296b8f[_0xbeb3('0x48')]['id']);for(var _0xdf203a=0x0;_0xdf203a<_0x2dea1d[_0xbeb3('0x3c')];_0xdf203a+=0x1){let _0xa80e4a=_0x2dea1d[_0xdf203a];for(var _0x41ab0a=0x0;_0x41ab0a<_0xa80e4a[_0xbeb3('0x82')][_0xbeb3('0x3c')];_0x41ab0a+=0x1){let _0x845f14=_0xa80e4a['Agents'][_0x41ab0a];var _0x2c805=_0x8e33e8[_0xbeb3('0x95')]();_0x2c805[_0xbeb3('0x3f')](_0xbeb3('0x96'),_0x845f14['id']);_0xfbecae[_0xbeb3('0x66')](db[_0xbeb3('0x4d')][_0xbeb3('0x35')](_0x2c805['toString'](),{'type':db[_0xbeb3('0x4d')]['QueryTypes'][_0xbeb3('0x97')]})[_0xbeb3('0x27')](function(_0x5d5ca6){if(_0x5d5ca6[_0xbeb3('0x3c')]===0x1){return _0x845f14['id'];}else{var _0xea74ad=_[_0xbeb3('0x98')](_['map'](_0x5d5ca6,_0xbeb3('0x99')),function(_0x2601bd){return _[_0xbeb3('0x9a')](_0x5f266f,_0x2601bd);});if(_0xea74ad){return _0x845f14['id'];}}}));}}return BPromise[_0xbeb3('0x9b')](_0xfbecae)[_0xbeb3('0x27')](function(_0x1fe82c){_0x38b933=_(_0x38b933)[_0xbeb3('0x9c')](_0x1fe82c)[_0xbeb3('0x9d')]()[_0xbeb3('0x9e')]();return db['VoicePrefix'][_0xbeb3('0x4a')]({'where':{'id':_0x296b8f['params']['id']}})[_0xbeb3('0x27')](function(_0x29b9fb){return db[_0xbeb3('0x4d')][_0xbeb3('0x87')](function(_0x1ab1bf){return _0x29b9fb[_0xbeb3('0x9f')](_0x296b8f[_0xbeb3('0x35')]['ids'],{'transaction':_0x1ab1bf})[_0xbeb3('0x27')](function(){if(!_[_0xbeb3('0xa0')](_0x38b933)){return _0x29b9fb['removeAgents'](_0x38b933,{'transaction':_0x1ab1bf});}})[_0xbeb3('0x27')](function(){_0x38b933[_0xbeb3('0xa1')](function(_0x4ec623){socket['emit'](_0xbeb3('0x76'),{'UserId':_0x4ec623,'VoicePrefixId':_0x29b9fb['id']});});});});});});})[_0xbeb3('0x27')](respondWithStatusCode(_0x76df64,null))[_0xbeb3('0x46')](handleError(_0x76df64,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x657a=['exports','events','../../mysqldb','VoicePrefix','setMaxListeners','save','update','remove','emit','hook'];(function(_0x308520,_0x1cb4d2){var _0x661170=function(_0x49a22d){while(--_0x49a22d){_0x308520['push'](_0x308520['shift']());}};_0x661170(++_0x1cb4d2);}(_0x657a,0x19b));var _0xa657=function(_0x1e93fa,_0x210f48){_0x1e93fa=_0x1e93fa-0x0;var _0xd4e1e6=_0x657a[_0x1e93fa];return _0xd4e1e6;};'use strict';var EventEmitter=require(_0xa657('0x0'));var VoicePrefix=require(_0xa657('0x1'))['db'][_0xa657('0x2')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0xa657('0x3')](0x0);var events={'afterCreate':_0xa657('0x4'),'afterUpdate':_0xa657('0x5'),'afterDestroy':_0xa657('0x6')};function emitEvent(_0x551ef1){return function(_0x4abb7c,_0x4a1713,_0x10d291){VoicePrefixEvents[_0xa657('0x7')](_0x551ef1+':'+_0x4abb7c['id'],_0x4abb7c);VoicePrefixEvents[_0xa657('0x7')](_0x551ef1,_0x4abb7c);_0x10d291(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoicePrefix[_0xa657('0x8')](e,emitEvent(event));}}module[_0xa657('0x9')]=VoicePrefixEvents;
\ No newline at end of file
+var _0xe626=['hook','exports','events','../../mysqldb','VoicePrefix','save','update','remove','emit','hasOwnProperty'];(function(_0x4cab86,_0xc9414){var _0x4a0762=function(_0x10bbff){while(--_0x10bbff){_0x4cab86['push'](_0x4cab86['shift']());}};_0x4a0762(++_0xc9414);}(_0xe626,0x124));var _0x6e62=function(_0xf136bc,_0x4cb677){_0xf136bc=_0xf136bc-0x0;var _0x447aa6=_0xe626[_0xf136bc];return _0x447aa6;};'use strict';var EventEmitter=require(_0x6e62('0x0'));var VoicePrefix=require(_0x6e62('0x1'))['db'][_0x6e62('0x2')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6e62('0x3'),'afterUpdate':_0x6e62('0x4'),'afterDestroy':_0x6e62('0x5')};function emitEvent(_0x166d6b){return function(_0x10cb1a,_0x2992f3,_0xa26913){VoicePrefixEvents[_0x6e62('0x6')](_0x166d6b+':'+_0x10cb1a['id'],_0x10cb1a);VoicePrefixEvents[_0x6e62('0x6')](_0x166d6b,_0x10cb1a);_0xa26913(null);};}for(var e in events){if(events[_0x6e62('0x7')](e)){var event=events[e];VoicePrefix[_0x6e62('0x8')](e,emitEvent(event));}}module[_0x6e62('0x9')]=VoicePrefixEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb66=['voice_prefixes','lodash','../../config/logger','moment','bluebird','rimraf','../../config/environment','./voicePrefix.attributes','exports','define','VoicePrefix'];(function(_0x575898,_0x238618){var _0x2fb5e9=function(_0x5101aa){while(--_0x5101aa){_0x575898['push'](_0x575898['shift']());}};_0x2fb5e9(++_0x238618);}(_0xeb66,0x85));var _0x6eb6=function(_0x403243,_0x2448bd){_0x403243=_0x403243-0x0;var _0x294458=_0xeb66[_0x403243];return _0x294458;};'use strict';var _=require(_0x6eb6('0x0'));var util=require('util');var logger=require(_0x6eb6('0x1'))('api');var moment=require(_0x6eb6('0x2'));var BPromise=require(_0x6eb6('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x6eb6('0x4'));var config=require(_0x6eb6('0x5'));var attributes=require(_0x6eb6('0x6'));module[_0x6eb6('0x7')]=function(_0x3bfa3c,_0x1ca278){return _0x3bfa3c[_0x6eb6('0x8')](_0x6eb6('0x9'),attributes,{'tableName':_0x6eb6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa428=['voice_prefixes','util','../../config/logger','moment','bluebird','path','rimraf','./voicePrefix.attributes','exports','VoicePrefix'];(function(_0x33bc0d,_0x57aa0d){var _0x97447a=function(_0x16191a){while(--_0x16191a){_0x33bc0d['push'](_0x33bc0d['shift']());}};_0x97447a(++_0x57aa0d);}(_0xa428,0x187));var _0x8a42=function(_0x45af38,_0x4db8f7){_0x45af38=_0x45af38-0x0;var _0x1c22b0=_0xa428[_0x45af38];return _0x1c22b0;};'use strict';var _=require('lodash');var util=require(_0x8a42('0x0'));var logger=require(_0x8a42('0x1'))('api');var moment=require(_0x8a42('0x2'));var BPromise=require(_0x8a42('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8a42('0x4'));var rimraf=require(_0x8a42('0x5'));var config=require('../../config/environment');var attributes=require(_0x8a42('0x6'));module[_0x8a42('0x7')]=function(_0x471ece,_0xba43fa){return _0x471ece['define'](_0x8a42('0x8'),attributes,{'tableName':_0x8a42('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ff9=['util','bluebird','randomstring','../../config/utils','../../config/environment','jayson/promise','http','defaults','redis','socket.io-emitter','./voicePrefix.socket','register','request','then','info','VoicePrefix,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash'];(function(_0x4a9165,_0x345ce0){var _0x4ea35d=function(_0x546c5a){while(--_0x546c5a){_0x4a9165['push'](_0x4a9165['shift']());}};_0x4ea35d(++_0x345ce0);}(_0x5ff9,0xa0));var _0x95ff=function(_0x30bbd8,_0x5b98d9){_0x30bbd8=_0x30bbd8-0x0;var _0x16448a=_0x5ff9[_0x30bbd8];return _0x16448a;};'use strict';var _=require(_0x95ff('0x0'));var util=require(_0x95ff('0x1'));var moment=require('moment');var BPromise=require(_0x95ff('0x2'));var rs=require(_0x95ff('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x95ff('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x95ff('0x5'));var jayson=require(_0x95ff('0x6'));var client=jayson['client'][_0x95ff('0x7')]({'port':0x232a});config['redis']=_[_0x95ff('0x8')](config[_0x95ff('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x95ff('0xa'))(new Redis(config['redis']));require(_0x95ff('0xb'))[_0x95ff('0xc')](socket);function respondWithRpcPromise(_0x4807b6,_0x17b39b,_0x1f3e2d){return new BPromise(function(_0x2a1750,_0x4f5bb9){return client[_0x95ff('0xd')](_0x4807b6,_0x1f3e2d)[_0x95ff('0xe')](function(_0x39d786){logger[_0x95ff('0xf')](_0x95ff('0x10'),_0x17b39b,_0x95ff('0x11'));logger['debug']('VoicePrefix,\x20%s,\x20%s,\x20%s',_0x17b39b,_0x95ff('0x11'),JSON[_0x95ff('0x12')](_0x39d786));if(_0x39d786[_0x95ff('0x13')]){if(_0x39d786[_0x95ff('0x13')]['code']===0x1f4){logger[_0x95ff('0x13')](_0x95ff('0x10'),_0x17b39b,_0x39d786['error'][_0x95ff('0x14')]);return _0x4f5bb9(_0x39d786[_0x95ff('0x13')]['message']);}logger['error'](_0x95ff('0x10'),_0x17b39b,_0x39d786[_0x95ff('0x13')][_0x95ff('0x14')]);return _0x2a1750(_0x39d786['error'][_0x95ff('0x14')]);}else{logger['info']('VoicePrefix,\x20%s,\x20%s',_0x17b39b,_0x95ff('0x11'));_0x2a1750(_0x39d786[_0x95ff('0x15')][_0x95ff('0x14')]);}})[_0x95ff('0x16')](function(_0x5e7132){logger[_0x95ff('0x13')](_0x95ff('0x10'),_0x17b39b,_0x5e7132);_0x4f5bb9(_0x5e7132);});});}
\ No newline at end of file
+var _0xb422=['localhost','socket.io-emitter','register','then','VoicePrefix,\x20%s,\x20%s','request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','error','message','info','result','catch','bluebird','../../mysqldb','../../config/logger','../../config/environment','client','http','redis'];(function(_0x2e7237,_0x5be71b){var _0x2cf3cc=function(_0x4ab597){while(--_0x4ab597){_0x2e7237['push'](_0x2e7237['shift']());}};_0x2cf3cc(++_0x5be71b);}(_0xb422,0x85));var _0x2b42=function(_0x4ab6fc,_0x74d68a){_0x4ab6fc=_0x4ab6fc-0x0;var _0x187477=_0xb422[_0x4ab6fc];return _0x187477;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x2b42('0x0'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2b42('0x1'))['db'];var utils=require('../../config/utils');var logger=require(_0x2b42('0x2'))('rpc');var config=require(_0x2b42('0x3'));var jayson=require('jayson/promise');var client=jayson[_0x2b42('0x4')][_0x2b42('0x5')]({'port':0x232a});config[_0x2b42('0x6')]=_['defaults'](config[_0x2b42('0x6')],{'host':_0x2b42('0x7'),'port':0x18eb});var socket=require(_0x2b42('0x8'))(new Redis(config['redis']));require('./voicePrefix.socket')[_0x2b42('0x9')](socket);function respondWithRpcPromise(_0x5dc850,_0x132066,_0xcc84af){return new BPromise(function(_0x1dcab0,_0x1ec844){return client['request'](_0x5dc850,_0xcc84af)[_0x2b42('0xa')](function(_0x18f30b){logger['info'](_0x2b42('0xb'),_0x132066,_0x2b42('0xc'));logger[_0x2b42('0xd')](_0x2b42('0xe'),_0x132066,'request\x20sent',JSON['stringify'](_0x18f30b));if(_0x18f30b[_0x2b42('0xf')]){if(_0x18f30b[_0x2b42('0xf')]['code']===0x1f4){logger[_0x2b42('0xf')](_0x2b42('0xb'),_0x132066,_0x18f30b[_0x2b42('0xf')][_0x2b42('0x10')]);return _0x1ec844(_0x18f30b[_0x2b42('0xf')][_0x2b42('0x10')]);}logger[_0x2b42('0xf')](_0x2b42('0xb'),_0x132066,_0x18f30b[_0x2b42('0xf')][_0x2b42('0x10')]);return _0x1dcab0(_0x18f30b['error'][_0x2b42('0x10')]);}else{logger[_0x2b42('0x11')](_0x2b42('0xb'),_0x132066,_0x2b42('0xc'));_0x1dcab0(_0x18f30b[_0x2b42('0x12')][_0x2b42('0x10')]);}})[_0x2b42('0x13')](function(_0x4728f4){logger['error'](_0x2b42('0xb'),_0x132066,_0x4728f4);_0x1ec844(_0x4728f4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9348=['update','emit','removeListener','register','voicePrefix:','./voicePrefix.events','save','remove'];(function(_0x226761,_0x2f4bbf){var _0x2f2cd5=function(_0x2d5c10){while(--_0x2d5c10){_0x226761['push'](_0x226761['shift']());}};_0x2f2cd5(++_0x2f4bbf);}(_0x9348,0x10d));var _0x8934=function(_0x310b13,_0x3b5c6d){_0x310b13=_0x310b13-0x0;var _0xc2655d=_0x9348[_0x310b13];return _0xc2655d;};'use strict';var VoicePrefixEvents=require(_0x8934('0x0'));var events=[_0x8934('0x1'),_0x8934('0x2'),_0x8934('0x3')];function createListener(_0x46a231,_0x4a2577){return function(_0x34d032){_0x4a2577[_0x8934('0x4')](_0x46a231,_0x34d032);};}function removeListener(_0x5f34d7,_0x34f94c){return function(){VoicePrefixEvents[_0x8934('0x5')](_0x5f34d7,_0x34f94c);};}exports[_0x8934('0x6')]=function(_0x2bce03){for(var _0x4c70d7=0x0,_0x3ee9b9=events['length'];_0x4c70d7<_0x3ee9b9;_0x4c70d7++){var _0x284a62=events[_0x4c70d7];var _0x3734c5=createListener(_0x8934('0x7')+_0x284a62,_0x2bce03);VoicePrefixEvents['on'](_0x284a62,_0x3734c5);}};
\ No newline at end of file
+var _0x37b4=['remove','update','emit','voicePrefix:','./voicePrefix.events'];(function(_0xe088cd,_0x38d843){var _0x3d5903=function(_0xf091f){while(--_0xf091f){_0xe088cd['push'](_0xe088cd['shift']());}};_0x3d5903(++_0x38d843);}(_0x37b4,0xef));var _0x437b=function(_0x27def7,_0x3f0835){_0x27def7=_0x27def7-0x0;var _0x581cbc=_0x37b4[_0x27def7];return _0x581cbc;};'use strict';var VoicePrefixEvents=require(_0x437b('0x0'));var events=['save',_0x437b('0x1'),_0x437b('0x2')];function createListener(_0xc42699,_0x5bc1e3){return function(_0x308d00){_0x5bc1e3[_0x437b('0x3')](_0xc42699,_0x308d00);};}function removeListener(_0x317df4,_0x3d353d){return function(){VoicePrefixEvents['removeListener'](_0x317df4,_0x3d353d);};}exports['register']=function(_0x1bab79){for(var _0x560099=0x0,_0x3c7dea=events['length'];_0x560099<_0x3c7dea;_0x560099++){var _0x226e3c=events[_0x560099];var _0x5df980=createListener(_0x437b('0x4')+_0x226e3c,_0x1bab79);VoicePrefixEvents['on'](_0x226e3c,_0x5df980);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7a3=['/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/teams','getAgents','/:id/members','getMembers','post','create','/:id/clone','clone','/:id/users','/:id/lists','addLists','/:id/blacklists','update','delete','removeTeams','removeAgents','removeLists','removeBlackLists','exports','multer','path','express','Router','../../components/auth/service','../../components/interaction/service','./voiceQueue.controller','isAuthenticated','index','get','/:id','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories'];(function(_0x4e1d03,_0x786f3a){var _0x362d4b=function(_0x1924d2){while(--_0x1924d2){_0x4e1d03['push'](_0x4e1d03['shift']());}};_0x362d4b(++_0x786f3a);}(_0xb7a3,0x14f));var _0x3b7a=function(_0x1aea0a,_0xe117e1){_0x1aea0a=_0x1aea0a-0x0;var _0x439123=_0xb7a3[_0x1aea0a];return _0x439123;};'use strict';var multer=require(_0x3b7a('0x0'));var util=require('util');var path=require(_0x3b7a('0x1'));var timeout=require('connect-timeout');var express=require(_0x3b7a('0x2'));var router=express[_0x3b7a('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x3b7a('0x4'));var interaction=require(_0x3b7a('0x5'));var config=require('../../config/environment');var controller=require(_0x3b7a('0x6'));router['get']('/',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x8')]);router[_0x3b7a('0x9')](_0x3b7a('0xa'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0xb')]);router['get'](_0x3b7a('0xc'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0xd')]);router[_0x3b7a('0x9')](_0x3b7a('0xe'),auth['isAuthenticated'](),controller[_0x3b7a('0xf')]);router[_0x3b7a('0x9')](_0x3b7a('0x10'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x11')]);router[_0x3b7a('0x9')](_0x3b7a('0x12'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x13')]);router[_0x3b7a('0x9')](_0x3b7a('0x14'),auth[_0x3b7a('0x7')](),controller['getTeams']);router['get']('/:id/users',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x15')]);router['get'](_0x3b7a('0x16'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x17')]);router[_0x3b7a('0x9')]('/:id/lists',auth['isAuthenticated'](),controller['getLists']);router[_0x3b7a('0x9')]('/:id/blacklists',auth['isAuthenticated'](),controller['getBlackLists']);router[_0x3b7a('0x18')]('/',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x19')]);router[_0x3b7a('0x18')](_0x3b7a('0x1a'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x1b')]);router[_0x3b7a('0x18')](_0x3b7a('0x14'),auth[_0x3b7a('0x7')](),controller['addTeams']);router[_0x3b7a('0x18')](_0x3b7a('0x1c'),auth[_0x3b7a('0x7')](),controller['addAgents']);router[_0x3b7a('0x18')](_0x3b7a('0x1d'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x1e')]);router[_0x3b7a('0x18')](_0x3b7a('0x1f'),auth[_0x3b7a('0x7')](),controller['addBlackLists']);router['put'](_0x3b7a('0xa'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x20')]);router['delete'](_0x3b7a('0xa'),auth[_0x3b7a('0x7')](),controller['destroy']);router[_0x3b7a('0x21')](_0x3b7a('0x14'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x22')]);router[_0x3b7a('0x21')](_0x3b7a('0x1c'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x23')]);router[_0x3b7a('0x21')]('/:id/lists',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x24')]);router[_0x3b7a('0x21')]('/:id/blacklists',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x25')]);module[_0x3b7a('0x26')]=router;
\ No newline at end of file
+var _0x6800=['isAuthenticated','show','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/users','/:id/members','getMembers','/:id/lists','getBlackLists','post','create','/:id/clone','clone','/:id/teams','addAgents','addLists','put','/:id','update','delete','destroy','removeTeams','removeAgents','removeBlackLists','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get'];(function(_0x3d5ad8,_0x338d1c){var _0x40bf6a=function(_0x4be312){while(--_0x4be312){_0x3d5ad8['push'](_0x3d5ad8['shift']());}};_0x40bf6a(++_0x338d1c);}(_0x6800,0x1d6));var _0x0680=function(_0x1e6059,_0x3b6730){_0x1e6059=_0x1e6059-0x0;var _0x59c48b=_0x6800[_0x1e6059];return _0x59c48b;};'use strict';var multer=require(_0x0680('0x0'));var util=require(_0x0680('0x1'));var path=require(_0x0680('0x2'));var timeout=require(_0x0680('0x3'));var express=require(_0x0680('0x4'));var router=express['Router']();var fs_extra=require(_0x0680('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0680('0x6'));var config=require(_0x0680('0x7'));var controller=require(_0x0680('0x8'));router[_0x0680('0x9')]('/',auth[_0x0680('0xa')](),controller['index']);router[_0x0680('0x9')]('/:id',auth[_0x0680('0xa')](),controller[_0x0680('0xb')]);router['get']('/:id/hoppers',auth['isAuthenticated'](),controller[_0x0680('0xc')]);router['get'](_0x0680('0xd'),auth[_0x0680('0xa')](),controller[_0x0680('0xe')]);router['get'](_0x0680('0xf'),auth['isAuthenticated'](),controller[_0x0680('0x10')]);router[_0x0680('0x9')](_0x0680('0x11'),auth['isAuthenticated'](),controller[_0x0680('0x12')]);router[_0x0680('0x9')]('/:id/teams',auth[_0x0680('0xa')](),controller['getTeams']);router['get'](_0x0680('0x13'),auth[_0x0680('0xa')](),controller['getAgents']);router[_0x0680('0x9')](_0x0680('0x14'),auth['isAuthenticated'](),controller[_0x0680('0x15')]);router[_0x0680('0x9')](_0x0680('0x16'),auth[_0x0680('0xa')](),controller['getLists']);router[_0x0680('0x9')]('/:id/blacklists',auth[_0x0680('0xa')](),controller[_0x0680('0x17')]);router[_0x0680('0x18')]('/',auth['isAuthenticated'](),controller[_0x0680('0x19')]);router[_0x0680('0x18')](_0x0680('0x1a'),auth['isAuthenticated'](),controller[_0x0680('0x1b')]);router[_0x0680('0x18')](_0x0680('0x1c'),auth['isAuthenticated'](),controller['addTeams']);router[_0x0680('0x18')](_0x0680('0x13'),auth[_0x0680('0xa')](),controller[_0x0680('0x1d')]);router[_0x0680('0x18')]('/:id/lists',auth[_0x0680('0xa')](),controller[_0x0680('0x1e')]);router[_0x0680('0x18')]('/:id/blacklists',auth['isAuthenticated'](),controller['addBlackLists']);router[_0x0680('0x1f')](_0x0680('0x20'),auth[_0x0680('0xa')](),controller[_0x0680('0x21')]);router[_0x0680('0x22')](_0x0680('0x20'),auth['isAuthenticated'](),controller[_0x0680('0x23')]);router[_0x0680('0x22')](_0x0680('0x1c'),auth[_0x0680('0xa')](),controller[_0x0680('0x24')]);router['delete'](_0x0680('0x13'),auth[_0x0680('0xa')](),controller[_0x0680('0x25')]);router[_0x0680('0x22')](_0x0680('0x16'),auth[_0x0680('0xa')](),controller['removeLists']);router[_0x0680('0x22')]('/:id/blacklists',auth['isAuthenticated'](),controller[_0x0680('0x26')]);module[_0x0680('0x27')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8efc=['ENUM','outbound','inbound','ringall','leastrecent','fewestcalls','random','rrmemory','wrandom','setDataValue','strategy','type','getDataValue','dialMethod','booked','roundrobin','progressive','INTEGER','yes','all','once','TEXT','periodic_announce','join','joinempty','split','leavewhenempty','BOOLEAN','wrapuptime','Active/Disactive\x20Campaign','preview','power','predictive','UNSIGNED','Max\x209999\x20channels,\x200\x20means\x20unlimited.','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.','FLOAT','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','tTxX','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','ASC','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDisposition','STRING'];(function(_0x470fc6,_0x13f6f7){var _0x1c2a18=function(_0x5ac869){while(--_0x5ac869){_0x470fc6['push'](_0x470fc6['shift']());}};_0x1c2a18(++_0x13f6f7);}(_0x8efc,0x8f));var _0xc8ef=function(_0x34ca5a,_0x2f14b1){_0x34ca5a=_0x34ca5a-0x0;var _0x38c2be=_0x8efc[_0x34ca5a];return _0x38c2be;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0xc8ef('0x1')]('inbound',_0xc8ef('0x2')),'allowNull':![],'defaultValue':_0xc8ef('0x3')},'musiconhold':{'type':Sequelize['STRING'],'defaultValue':'default'},'announce':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':''},'strategy':{'type':Sequelize['ENUM']('rr',_0xc8ef('0x4'),_0xc8ef('0x5'),_0xc8ef('0x6'),_0xc8ef('0x7'),_0xc8ef('0x8'),'linear',_0xc8ef('0x9'),'rrordered'),'allowNull':![],'defaultValue':_0xc8ef('0x4'),'set':function(_0xbdd184){this[_0xc8ef('0xa')](_0xc8ef('0xb'),_0xbdd184?_0xbdd184:'rrmemory');},'get':function(){var _0x504d31=this['getDataValue'](_0xc8ef('0xc'));var _0x20b2ef=this[_0xc8ef('0xd')](_0xc8ef('0xe'));var _0x4fceb6=this[_0xc8ef('0xd')](_0xc8ef('0xb'));if(_0x504d31===_0xc8ef('0x3')){return _0x4fceb6;}if(_0x20b2ef===_0xc8ef('0xf')&&_0x4fceb6===_0xc8ef('0x8')||_0x20b2ef===_0xc8ef('0xf')&&_0x4fceb6===_0xc8ef('0x10')){return _0x4fceb6;}if(_0x20b2ef===_0xc8ef('0x11')||_0x20b2ef==='predictive'||_0x20b2ef==='power'){return _0x4fceb6;}return null;}},'servicelevel':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0xc8ef('0x12')](0xb)},'timeout':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0xc8ef('0x0')]},'weight':{'type':Sequelize[_0xc8ef('0x12')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0xc8ef('0x13')},'autopause':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no',_0xc8ef('0x14')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize['INTEGER'](0xb)},'autopausebusy':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize['ENUM'](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0xc8ef('0x1')]('yes','no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':!![]},'membergosub':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0xc8ef('0x1')]('yes','no'),'defaultValue':'yes'},'announce_holdtime':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no',_0xc8ef('0x15')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0xc8ef('0x1')]('yes','no')},'announce_position_limit':{'type':Sequelize['INTEGER'](0xb)},'announce_round_seconds':{'type':Sequelize[_0xc8ef('0x1')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0xc8ef('0x0')]},'queue_youarenext':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize['STRING'],'defaultValue':null},'queue_seconds':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0xc8ef('0x0')]},'queue_quantity1':{'type':Sequelize[_0xc8ef('0x0')]},'queue_quantity2':{'type':Sequelize['STRING']},'queue_periodic_announce':{'type':Sequelize[_0xc8ef('0x0')]},'queue_less_than':{'type':Sequelize[_0xc8ef('0x0')]},'periodic_announce':{'type':Sequelize[_0xc8ef('0x16')],'set':function(_0x559d77){this[_0xc8ef('0xa')](_0xc8ef('0x17'),_0x559d77?_0x559d77[_0xc8ef('0x18')](','):[]);},'get':function(){return this[_0xc8ef('0xd')](_0xc8ef('0x17'))?this['getDataValue'](_0xc8ef('0x17'))['split'](','):[];}},'joinempty':{'type':Sequelize['STRING'],'defaultValue':_0xc8ef('0x13'),'set':function(_0x594711){this[_0xc8ef('0xa')]('joinempty',_0x594711?_0x594711['join'](','):undefined);},'get':function(){return this[_0xc8ef('0xd')](_0xc8ef('0x19'))?this[_0xc8ef('0xd')](_0xc8ef('0x19'))[_0xc8ef('0x1a')](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':'no','set':function(_0x4c7ca3){this[_0xc8ef('0xa')](_0xc8ef('0x1b'),_0x4c7ca3?_0x4c7ca3['join'](','):undefined);},'get':function(){return this[_0xc8ef('0xd')]('leavewhenempty')?this['getDataValue'](_0xc8ef('0x1b'))[_0xc8ef('0x1a')](','):undefined;}},'reportholdtime':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize['ENUM'](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0xc8ef('0x0')]},'description':{'type':Sequelize[_0xc8ef('0x0')]},'acw':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'set':function(_0x5d32c8){this[_0xc8ef('0xa')]('acw',_0x5d32c8);if(_0x5d32c8){if(this['getDataValue'](_0xc8ef('0x1d'))<0x2){this[_0xc8ef('0xa')](_0xc8ef('0x1d'),0x2);}}}},'acwTimeout':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'comment':_0xc8ef('0x1e')},'dialMethod':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x1f'),_0xc8ef('0x11'),_0xc8ef('0x20'),_0xc8ef('0x21'),_0xc8ef('0xf')),'defaultValue':_0xc8ef('0x11'),'comment':'Dial\x20Method.'},'dialLimitChannel':{'type':Sequelize['INTEGER'](0x4)[_0xc8ef('0x22')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xc8ef('0x23')},'dialLimitQueue':{'type':Sequelize[_0xc8ef('0x12')](0x4)[_0xc8ef('0x22')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xc8ef('0x24')},'dialPowerLevel':{'type':Sequelize['FLOAT'](0x2)[_0xc8ef('0x22')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0xc8ef('0x25')},'dialPredictiveOptimization':{'type':Sequelize['ENUM'](_0xc8ef('0x26'),_0xc8ef('0x27')),'defaultValue':_0xc8ef('0x27'),'comment':_0xc8ef('0x28')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0xc8ef('0x29')](0x2)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':'Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)'},'dialPredictiveInterval':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0xc8ef('0x2a')},'dialOriginateCallerIdName':{'type':Sequelize[_0xc8ef('0x0')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xc8ef('0x0')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x2b')},'dialQueueOptions':{'type':Sequelize['STRING'],'defaultValue':_0xc8ef('0x2c'),'comment':_0xc8ef('0x2d')},'dialQueueTimeout':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueProject':{'type':Sequelize[_0xc8ef('0x0')],'comment':_0xc8ef('0x2e')},'dialCongestionMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x2f')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x30')},'dialBusyMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x31')},'dialBusyRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xc8ef('0x33')},'dialTimezone':{'type':Sequelize['STRING'],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':_0xc8ef('0x34')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize['ENUM']('always','never',_0xc8ef('0x35')),'defaultValue':_0xc8ef('0x36')},'dialAMDActive':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'comment':_0xc8ef('0x37')},'dialAMDInitialSilence':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':'#AMD\x20Initial\x20Silence'},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0xc8ef('0x22')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xc8ef('0x38')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xc8ef('0x12')](0x9)[_0xc8ef('0x22')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xc8ef('0x39')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xc8ef('0x3a')},'dialAMDMinWordLength':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0xc8ef('0x3b')},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)[_0xc8ef('0x22')],'defaultValue':0x32,'validate':{'min':0x0},'comment':'#AMD\x20Between\x20Words\x20Silence'},'dialAMDMaximumNumberOfWords':{'type':Sequelize['INTEGER'](0x9)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xc8ef('0x3c')},'dialAMDMaximumWordLength':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xc8ef('0x3d')},'dialRecallMeTimeout':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'comment':'Active/Disactive\x20Recall\x20In\x20Queue'},'dialOrderByScheduledAt':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x3e'),_0xc8ef('0x3f')),'defaultValue':_0xc8ef('0x3e')},'dialQueueProject2':{'type':Sequelize[_0xc8ef('0x0')],'comment':_0xc8ef('0x2e')},'dialAgiAfterHangupClient':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Random\x20Last\x20Digit\x20(min:1,\x20max:15)'},'dialCutDigit':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xc8ef('0x40')},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x41')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x42')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAbandonedMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Abandoned\x20Retry\x20(min:1,\x20max:999)'},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x43')},'dialMachineMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x44')},'dialAgentRejectMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x45')},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'mandatoryDispositionPauseId':{'type':Sequelize[_0xc8ef('0x12')],'allowNull':!![],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':![],'comment':_0xc8ef('0x46'),'set':function(_0x437c05){if(!_0x437c05)this[_0xc8ef('0xa')]('mandatoryDispositionPauseId',null);this[_0xc8ef('0xa')](_0xc8ef('0x47'),_0x437c05);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
+var _0x72a2=['Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','never','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','exports','STRING','name','ENUM','inbound','default','leastrecent','fewestcalls','random','rrmemory','rrordered','strategy','getDataValue','dialMethod','booked','roundrobin','progressive','predictive','power','INTEGER','yes','all','once','TEXT','setDataValue','periodic_announce','split','joinempty','join','BOOLEAN','acw','wrapuptime','Active/Disactive\x20Campaign','Dial\x20Method.','UNSIGNED','Max\x209999\x20channels,\x200\x20means\x20unlimited.','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.'];(function(_0x180582,_0x593c31){var _0x5b2638=function(_0x9e4e06){while(--_0x9e4e06){_0x180582['push'](_0x180582['shift']());}};_0x5b2638(++_0x593c31);}(_0x72a2,0x161));var _0x272a=function(_0xddc4f1,_0x458ec0){_0xddc4f1=_0xddc4f1-0x0;var _0x52ff6a=_0x72a2[_0xddc4f1];return _0x52ff6a;};'use strict';var Sequelize=require('sequelize');module[_0x272a('0x0')]={'name':{'type':Sequelize[_0x272a('0x1')],'allowNull':![],'unique':_0x272a('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x4'),'outbound'),'allowNull':![],'defaultValue':_0x272a('0x4')},'musiconhold':{'type':Sequelize['STRING'],'defaultValue':_0x272a('0x5')},'announce':{'type':Sequelize['STRING'],'defaultValue':''},'strategy':{'type':Sequelize['ENUM']('rr','ringall',_0x272a('0x6'),_0x272a('0x7'),_0x272a('0x8'),_0x272a('0x9'),'linear','wrandom',_0x272a('0xa')),'allowNull':![],'defaultValue':'ringall','set':function(_0x830fb6){this['setDataValue'](_0x272a('0xb'),_0x830fb6?_0x830fb6:_0x272a('0x9'));},'get':function(){var _0x103fff=this[_0x272a('0xc')]('type');var _0x4e1381=this[_0x272a('0xc')](_0x272a('0xd'));var _0x5c2e7a=this[_0x272a('0xc')](_0x272a('0xb'));if(_0x103fff===_0x272a('0x4')){return _0x5c2e7a;}if(_0x4e1381===_0x272a('0xe')&&_0x5c2e7a===_0x272a('0x9')||_0x4e1381==='booked'&&_0x5c2e7a===_0x272a('0xf')){return _0x5c2e7a;}if(_0x4e1381===_0x272a('0x10')||_0x4e1381===_0x272a('0x11')||_0x4e1381===_0x272a('0x12')){return _0x5c2e7a;}return null;}},'servicelevel':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0x272a('0x13')](0xb)},'timeout':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0xf},'retry':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize['STRING']},'weight':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize['ENUM'](_0x272a('0x14'),'no'),'defaultValue':'yes'},'autopause':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no',_0x272a('0x15')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x272a('0x13')](0xb)},'autopausebusy':{'type':Sequelize['ENUM'](_0x272a('0x14'),'no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x272a('0x13')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x272a('0x3')]('yes','no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0x272a('0x1')],'allowNull':!![]},'membergosub':{'type':Sequelize[_0x272a('0x1')],'allowNull':!![]},'announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize[_0x272a('0x13')](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x272a('0x3')]('yes','no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x272a('0x3')]('yes','no'),'defaultValue':_0x272a('0x14')},'announce_holdtime':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no',_0x272a('0x16')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x272a('0x1')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no')},'announce_position_limit':{'type':Sequelize[_0x272a('0x13')](0xb)},'announce_round_seconds':{'type':Sequelize[_0x272a('0x3')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize['STRING'],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x272a('0x1')]},'queue_youarenext':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'queue_minute':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize['STRING'],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0x272a('0x1')]},'queue_quantity1':{'type':Sequelize[_0x272a('0x1')]},'queue_quantity2':{'type':Sequelize[_0x272a('0x1')]},'queue_periodic_announce':{'type':Sequelize[_0x272a('0x1')]},'queue_less_than':{'type':Sequelize[_0x272a('0x1')]},'periodic_announce':{'type':Sequelize[_0x272a('0x17')],'set':function(_0x14d866){this[_0x272a('0x18')](_0x272a('0x19'),_0x14d866?_0x14d866['join'](','):[]);},'get':function(){return this['getDataValue']('periodic_announce')?this[_0x272a('0xc')]('periodic_announce')[_0x272a('0x1a')](','):[];}},'joinempty':{'type':Sequelize[_0x272a('0x1')],'defaultValue':'yes','set':function(_0x17c49f){this[_0x272a('0x18')](_0x272a('0x1b'),_0x17c49f?_0x17c49f[_0x272a('0x1c')](','):undefined);},'get':function(){return this[_0x272a('0xc')](_0x272a('0x1b'))?this[_0x272a('0xc')](_0x272a('0x1b'))['split'](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0x272a('0x1')],'defaultValue':'no','set':function(_0x708c46){this[_0x272a('0x18')]('leavewhenempty',_0x708c46?_0x708c46[_0x272a('0x1c')](','):undefined);},'get':function(){return this['getDataValue']('leavewhenempty')?this[_0x272a('0xc')]('leavewhenempty')[_0x272a('0x1a')](','):undefined;}},'reportholdtime':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x14'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0x272a('0x13')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize['ENUM'](_0x272a('0x14'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0x272a('0x1')]},'description':{'type':Sequelize[_0x272a('0x1')]},'acw':{'type':Sequelize[_0x272a('0x1d')],'defaultValue':0x0,'set':function(_0x17b44c){this[_0x272a('0x18')](_0x272a('0x1e'),_0x17b44c);if(_0x17b44c){if(this['getDataValue'](_0x272a('0x1f'))<0x2){this[_0x272a('0x18')](_0x272a('0x1f'),0x2);}}}},'acwTimeout':{'type':Sequelize[_0x272a('0x13')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x272a('0x1d')],'defaultValue':0x0,'comment':_0x272a('0x20')},'dialMethod':{'type':Sequelize['ENUM']('preview',_0x272a('0x10'),_0x272a('0x12'),_0x272a('0x11'),_0x272a('0xe')),'defaultValue':_0x272a('0x10'),'comment':_0x272a('0x21')},'dialLimitChannel':{'type':Sequelize[_0x272a('0x13')](0x4)[_0x272a('0x22')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x272a('0x23')},'dialLimitQueue':{'type':Sequelize[_0x272a('0x13')](0x4)[_0x272a('0x22')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x272a('0x24')},'dialPowerLevel':{'type':Sequelize[_0x272a('0x25')](0x2)[_0x272a('0x22')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x272a('0x26')},'dialPredictiveOptimization':{'type':Sequelize['ENUM'](_0x272a('0x27'),_0x272a('0x28')),'defaultValue':'dropRate','comment':_0x272a('0x29')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0x272a('0x25')](0x2)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0x272a('0x2a')},'dialPredictiveInterval':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x272a('0x2b')},'dialOriginateCallerIdName':{'type':Sequelize['STRING']},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x272a('0x1')]},'dialOriginateTimeout':{'type':Sequelize[_0x272a('0x13')](0x3)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueOptions':{'type':Sequelize[_0x272a('0x1')],'defaultValue':'tTxX','comment':_0x272a('0x2c')},'dialQueueTimeout':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x272a('0x2d')},'dialQueueProject':{'type':Sequelize[_0x272a('0x1')],'comment':_0x272a('0x2e')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x272a('0x2f')},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x272a('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x272a('0x30')},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x272a('0x31')},'dialBusyRetryFrequency':{'type':Sequelize[_0x272a('0x13')](0x5)[_0x272a('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x272a('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x272a('0x13')](0x3)['UNSIGNED'],'defaultValue':0x3,'comment':_0x272a('0x33')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x272a('0x13')](0x5)[_0x272a('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':'#Global\x20Max\x20Retry\x20(min:1,\x20max:999)'},'dialTimezone':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x272a('0x1')],'defaultValue':_0x272a('0x34')},'dialPrefix':{'type':Sequelize[_0x272a('0x1')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x35'),_0x272a('0x36'),'onlyIfOpen'),'defaultValue':'always'},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize[_0x272a('0x13')](0x9)[_0x272a('0x22')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x272a('0x37')},'dialAMDGreeting':{'type':Sequelize[_0x272a('0x13')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x272a('0x38')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x272a('0x13')](0x9)['UNSIGNED'],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x272a('0x39')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x272a('0x13')](0x9)[_0x272a('0x22')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x272a('0x3a')},'dialAMDMinWordLength':{'type':Sequelize[_0x272a('0x13')](0x9)[_0x272a('0x22')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x272a('0x3b')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x272a('0x13')](0x9)[_0x272a('0x22')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x272a('0x3c')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x272a('0x13')](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize[_0x272a('0x13')](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x272a('0x3d')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x272a('0x13')](0x9)[_0x272a('0x22')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x272a('0x3e')},'dialRecallMeTimeout':{'type':Sequelize[_0x272a('0x13')](0x5)['UNSIGNED'],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize[_0x272a('0x1d')],'defaultValue':0x0,'comment':'Active/Disactive\x20Recall\x20In\x20Queue'},'dialOrderByScheduledAt':{'type':Sequelize[_0x272a('0x3')](_0x272a('0x3f'),_0x272a('0x40')),'defaultValue':_0x272a('0x3f')},'dialQueueProject2':{'type':Sequelize[_0x272a('0x1')],'comment':_0x272a('0x2e')},'dialAgiAfterHangupClient':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x272a('0x1d')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x272a('0x41')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x272a('0x42')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)'},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x272a('0x13')](0x5)[_0x272a('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x272a('0x43')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x272a('0x44')},'dialDropRetryFrequency':{'type':Sequelize[_0x272a('0x13')](0x5)[_0x272a('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAbandonedMaxRetry':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x272a('0x45')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x272a('0x13')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x272a('0x46')},'dialMachineMaxRetry':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x272a('0x47')},'dialMachineRetryFrequency':{'type':Sequelize[_0x272a('0x13')](0x5)[_0x272a('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x272a('0x48')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x272a('0x49')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x272a('0x13')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x272a('0x4a')},'mandatoryDispositionPauseId':{'type':Sequelize[_0x272a('0x13')],'allowNull':!![],'comment':_0x272a('0x4b')},'mandatoryDisposition':{'type':Sequelize[_0x272a('0x1d')],'defaultValue':![],'comment':_0x272a('0x4c'),'set':function(_0x4dbe1b){if(!_0x4dbe1b)this[_0x272a('0x18')](_0x272a('0x4d'),null);this[_0x272a('0x18')](_0x272a('0x4e'),_0x4dbe1b);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x272a('0x13')](0x3)[_0x272a('0x22')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a49=['onlyIfOpen','fromQuery','COALESCE(phone,\x27\x27)','removeLists','getBlackLists','addBlackLists','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueue.socket','register','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','QueueCampaigns','outbound','filter','map','type','find','value','name','UserProfileResource','status','stack','send','VoiceQueue','fieldName','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','filters','pick','merge','VIRTUAL','options','include','findAll','catch','show','params','length','includeAll','create','body','user','role','inbound','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','rawAttributes','omit','updatedAt','createdAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','VoiceQueues','findOne','order','VoiceQueueId','CmHopper','rows','getHopperHistories','CmHopperHistory','CmHopperFinal','CmHopperBlack','getTeams','addTeams','Team','User','online','interface','flatMap','Agents','forEach','penalty','sequelize','transaction','each','TeamVoiceQueue','upsert','UserVoiceQueueRt','isNil','format','voicePause','userVoiceQueue:save','ids','select','field','tq.TeamId','from','team_has_voice_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','includes','all','union','compact','removeTeams','isEmpty','removeAgents','emit','userVoiceQueue:remove','addAgents','spread','SIP/%s','isArray','getAgents','getMembers','getLists','CmList','addLists','dialCheckDuplicateType','always','insert','into','cm_hopper','scheduledAt','ContactId','phone','NOW()','CmListId','ListId','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper_final','VoiceQueueId\x20=\x20?'];(function(_0x32bdd4,_0x143a69){var _0x4b54d3=function(_0x5c38d6){while(--_0x5c38d6){_0x32bdd4['push'](_0x32bdd4['shift']());}};_0x4b54d3(++_0x143a69);}(_0x1a49,0x17d));var _0x91a4=function(_0x2896a6,_0x228d54){_0x2896a6=_0x2896a6-0x0;var _0x745759=_0x1a49[_0x2896a6];return _0x745759;};'use strict';var emlformat=require(_0x91a4('0x0'));var rimraf=require(_0x91a4('0x1'));var zipdir=require(_0x91a4('0x2'));var jsonpatch=require(_0x91a4('0x3'));var rp=require(_0x91a4('0x4'));var moment=require(_0x91a4('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x91a4('0x6'));var util=require(_0x91a4('0x7'));var path=require(_0x91a4('0x8'));var sox=require(_0x91a4('0x9'));var csv=require(_0x91a4('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x91a4('0xb'));var _=require(_0x91a4('0xc'));var squel=require('squel');var crypto=require(_0x91a4('0xd'));var jsforce=require(_0x91a4('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x91a4('0xf'));var Papa=require(_0x91a4('0x10'));var Redis=require(_0x91a4('0x11'));var authService=require(_0x91a4('0x12'));var qs=require(_0x91a4('0x13'));var as=require(_0x91a4('0x14'));var hardwareService=require(_0x91a4('0x15'));var logger=require('../../config/logger')(_0x91a4('0x16'));var utils=require(_0x91a4('0x17'));var config=require(_0x91a4('0x18'));var licenseUtil=require(_0x91a4('0x19'));var db=require(_0x91a4('0x1a'))['db'];config[_0x91a4('0x1b')]=_[_0x91a4('0x1c')](config[_0x91a4('0x1b')],{'host':_0x91a4('0x1d'),'port':0x18eb});var socket=require(_0x91a4('0x1e'))(new Redis(config[_0x91a4('0x1b')]));require(_0x91a4('0x1f'))[_0x91a4('0x20')](socket);function respondWithStatusCode(_0x1d9ce6,_0xaf68de){_0xaf68de=_0xaf68de||0xcc;return function(_0x5f4010){if(_0x5f4010){return _0x1d9ce6['sendStatus'](_0xaf68de);}return _0x1d9ce6['status'](_0xaf68de)[_0x91a4('0x21')]();};}function respondWithResult(_0x4f60f4,_0x35dc42){_0x35dc42=_0x35dc42||0xc8;return function(_0x209cf8){if(_0x209cf8){return _0x4f60f4['status'](_0x35dc42)[_0x91a4('0x22')](_0x209cf8);}};}function respondWithFilteredResult(_0x14bb20,_0x405a82){return function(_0x2b8d09){if(_0x2b8d09){var _0x4e53ed=typeof _0x405a82[_0x91a4('0x23')]===_0x91a4('0x24')&&typeof _0x405a82['limit']===_0x91a4('0x24');var _0x4d7187=_0x2b8d09[_0x91a4('0x25')];var _0x278a67=_0x4e53ed?0x0:_0x405a82[_0x91a4('0x23')];var _0x472ccd=_0x4e53ed?_0x2b8d09[_0x91a4('0x25')]:_0x405a82['offset']+_0x405a82[_0x91a4('0x26')];var _0x19a7cb;if(_0x472ccd>=_0x4d7187){_0x472ccd=_0x4d7187;_0x19a7cb=0xc8;}else{_0x19a7cb=0xce;}_0x14bb20['status'](_0x19a7cb);return _0x14bb20[_0x91a4('0x27')](_0x91a4('0x28'),_0x278a67+'-'+_0x472ccd+'/'+_0x4d7187)[_0x91a4('0x22')](_0x2b8d09);}return null;};}function patchUpdates(_0x171ebe){return function(_0x1971ac){try{jsonpatch['apply'](_0x1971ac,_0x171ebe,!![]);}catch(_0x51d7f2){return BPromise[_0x91a4('0x29')](_0x51d7f2);}return _0x1971ac[_0x91a4('0x2a')]();};}function saveUpdates(_0x3ab138,_0x10adf0){return function(_0x55a0a4){if(_0x55a0a4){return _0x55a0a4[_0x91a4('0x2b')](_0x3ab138)[_0x91a4('0x2c')](function(_0x417a8a){return _0x417a8a;});}return null;};}function removeEntity(_0x4e291c,_0x36ef7d){return function(_0x39d240){if(_0x39d240){return _0x39d240[_0x91a4('0x2d')]()[_0x91a4('0x2c')](function(){var _0x32c577=_0x39d240[_0x91a4('0x2e')]({'plain':!![]});var _0x5a92fd=[{'name':'VoiceQueues','value':'inbound','ignore':![]},{'name':_0x91a4('0x2f'),'value':_0x91a4('0x30'),'ignore':![]}];var _0x33aee4=_(_0x5a92fd)[_0x91a4('0x31')]('ignore')[_0x91a4('0x32')]('value')['value']();if(_['includes'](_0x33aee4,_0x32c577[_0x91a4('0x33')])){return;}var _0x2cac38=_[_0x91a4('0x34')](_0x5a92fd,[_0x91a4('0x35'),_0x32c577[_0x91a4('0x33')]])[_0x91a4('0x36')];return db[_0x91a4('0x37')][_0x91a4('0x2d')]({'where':{'type':_0x2cac38,'resourceId':_0x32c577['id']}})[_0x91a4('0x2c')](function(){return _0x39d240;});})[_0x91a4('0x2c')](function(){_0x4e291c[_0x91a4('0x38')](0xcc)[_0x91a4('0x21')]();});}};}function handleEntityNotFound(_0x4637b2,_0x285bb8){return function(_0x255ba4){if(!_0x255ba4){_0x4637b2['sendStatus'](0x194);}return _0x255ba4;};}function handleError(_0x4e7f90,_0xb8b5fa){_0xb8b5fa=_0xb8b5fa||0x1f4;return function(_0x3d8b1a){logger['error'](_0x3d8b1a[_0x91a4('0x39')]);if(_0x3d8b1a['name']){delete _0x3d8b1a['name'];}_0x4e7f90['status'](_0xb8b5fa)[_0x91a4('0x3a')](_0x3d8b1a);};}exports['index']=function(_0x2d0fb8,_0x5cfa5c){var _0x238733={},_0x47ad80={},_0x33e879={'count':0x0,'rows':[]};var _0x3dd5a5=_[_0x91a4('0x32')](db[_0x91a4('0x3b')]['rawAttributes'],function(_0x11db9d){return{'name':_0x11db9d[_0x91a4('0x3c')],'type':_0x11db9d[_0x91a4('0x33')][_0x91a4('0x3d')]};});_0x47ad80[_0x91a4('0x3e')]=_[_0x91a4('0x32')](_0x3dd5a5,_0x91a4('0x36'));_0x47ad80[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x2d0fb8[_0x91a4('0x3f')]);_0x47ad80['filters']=_[_0x91a4('0x41')](_0x47ad80[_0x91a4('0x3e')],_0x47ad80[_0x91a4('0x3f')]);_0x238733['attributes']=_[_0x91a4('0x41')](_0x47ad80['model'],qs[_0x91a4('0x42')](_0x2d0fb8['query'][_0x91a4('0x42')]));_0x238733[_0x91a4('0x43')]=_0x238733[_0x91a4('0x43')]['length']?_0x238733['attributes']:_0x47ad80['model'];if(!_0x2d0fb8['query'][_0x91a4('0x44')](_0x91a4('0x45'))){_0x238733[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x238733[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x238733['order']=qs[_0x91a4('0x46')](_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x238733[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x2d0fb8[_0x91a4('0x3f')],_0x47ad80[_0x91a4('0x48')]),_0x3dd5a5);if(_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x238733[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x238733[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x3dd5a5,function(_0x598919){if(_0x598919[_0x91a4('0x33')]!==_0x91a4('0x4b')){var _0x32cf77={};_0x32cf77[_0x598919[_0x91a4('0x36')]]={'$like':'%'+_0x2d0fb8['query'][_0x91a4('0x31')]+'%'};return _0x32cf77;}})});}_0x238733=_[_0x91a4('0x4a')]({},_0x238733,_0x2d0fb8[_0x91a4('0x4c')]);var _0x50616c={'where':_0x238733[_0x91a4('0x47')]};return db[_0x91a4('0x3b')]['count'](_0x50616c)['then'](function(_0xbff9cb){_0x33e879[_0x91a4('0x25')]=_0xbff9cb;if(_0x2d0fb8[_0x91a4('0x3f')]['includeAll']){_0x238733[_0x91a4('0x4d')]=[{'all':!![]}];}return db[_0x91a4('0x3b')][_0x91a4('0x4e')](_0x238733);})['then'](function(_0x1cd3d6){_0x33e879['rows']=_0x1cd3d6;return _0x33e879;})[_0x91a4('0x2c')](respondWithFilteredResult(_0x5cfa5c,_0x238733))[_0x91a4('0x4f')](handleError(_0x5cfa5c,null));};exports[_0x91a4('0x50')]=function(_0x5148d4,_0x541e71){var _0x4859a3={'raw':![],'where':{'id':_0x5148d4[_0x91a4('0x51')]['id']}},_0x14ba8d={};_0x14ba8d['model']=_[_0x91a4('0x40')](db[_0x91a4('0x3b')]['rawAttributes']);_0x14ba8d[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x5148d4[_0x91a4('0x3f')]);_0x14ba8d[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x14ba8d['model'],_0x14ba8d[_0x91a4('0x3f')]);_0x4859a3['attributes']=_[_0x91a4('0x41')](_0x14ba8d['model'],qs[_0x91a4('0x42')](_0x5148d4[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x4859a3[_0x91a4('0x43')]=_0x4859a3['attributes'][_0x91a4('0x52')]?_0x4859a3[_0x91a4('0x43')]:_0x14ba8d['model'];if(_0x5148d4[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x4859a3[_0x91a4('0x4d')]=[{'all':!![]}];}_0x4859a3=_['merge']({},_0x4859a3,_0x5148d4['options']);return db[_0x91a4('0x3b')][_0x91a4('0x34')](_0x4859a3)[_0x91a4('0x2c')](handleEntityNotFound(_0x541e71,null))[_0x91a4('0x2c')](respondWithResult(_0x541e71,null))[_0x91a4('0x4f')](handleError(_0x541e71,null));};exports[_0x91a4('0x54')]=function(_0x1ce963,_0x51bd68){return db[_0x91a4('0x3b')]['create'](_0x1ce963[_0x91a4('0x55')],{})[_0x91a4('0x2c')](function(_0x47e733){var _0x3fc03b=_0x1ce963[_0x91a4('0x56')][_0x91a4('0x2e')]({'plain':!![]});if(!_0x3fc03b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3fc03b[_0x91a4('0x57')]===_0x91a4('0x56')){var _0x415390=_0x47e733[_0x91a4('0x2e')]({'plain':!![]});var _0x5c4533=[{'name':'VoiceQueues','value':_0x91a4('0x58')},{'name':_0x91a4('0x2f'),'value':_0x91a4('0x30')}];var _0x22627c=_[_0x91a4('0x34')](_0x5c4533,[_0x91a4('0x35'),_0x415390['type']])['name'];return db[_0x91a4('0x59')][_0x91a4('0x34')]({'where':{'name':_0x22627c,'userProfileId':_0x3fc03b[_0x91a4('0x5a')]},'raw':!![]})[_0x91a4('0x2c')](function(_0x2a6289){if(_0x2a6289&&_0x2a6289[_0x91a4('0x5b')]===0x0){return db['UserProfileResource'][_0x91a4('0x54')]({'name':_0x415390[_0x91a4('0x36')],'resourceId':_0x415390['id'],'type':_0x2a6289[_0x91a4('0x36')],'sectionId':_0x2a6289['id']},{})['then'](function(){return _0x47e733;});}else{return _0x47e733;}})[_0x91a4('0x4f')](function(_0x1c8810){logger[_0x91a4('0x5c')](_0x91a4('0x5d'),_0x1c8810);throw _0x1c8810;});}return _0x47e733;})[_0x91a4('0x2c')](respondWithResult(_0x51bd68,0xc9))[_0x91a4('0x4f')](handleError(_0x51bd68,null));};exports[_0x91a4('0x5e')]=function(_0x4ce5c4,_0x37f5c4){var _0x4ce097={'where':{'id':_0x4ce5c4[_0x91a4('0x51')]['id']}},_0x27c2c={};_0x27c2c[_0x91a4('0x3e')]=_['keys'](db[_0x91a4('0x3b')][_0x91a4('0x5f')]);_0x4ce097['attributes']=_[_0x91a4('0x41')](_0x27c2c[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x4ce5c4['query'][_0x91a4('0x42')]));_0x4ce097[_0x91a4('0x43')]=_0x4ce097[_0x91a4('0x43')][_0x91a4('0x52')]?_0x4ce097[_0x91a4('0x43')]:_0x27c2c[_0x91a4('0x3e')];if(_0x4ce5c4[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x4ce097[_0x91a4('0x4d')]=[{'all':!![]}];}_0x4ce097=_[_0x91a4('0x4a')]({},_0x4ce097,_0x4ce5c4['options']);return db[_0x91a4('0x3b')]['find'](_0x4ce097)[_0x91a4('0x2c')](handleEntityNotFound(_0x37f5c4,null))[_0x91a4('0x2c')](function(_0x1f06c7){if(_0x1f06c7){var _0x2199cf=_0x1f06c7[_0x91a4('0x2e')]({'plain':!![]});_0x2199cf=qs[_0x91a4('0x60')](_0x2199cf,['id','createdAt',_0x91a4('0x61')]);_0x4ce5c4['body']=_[_0x91a4('0x60')](_0x4ce5c4[_0x91a4('0x55')],['id',_0x91a4('0x62'),_0x91a4('0x61')]);return db['VoiceQueue'][_0x91a4('0x54')](_[_0x91a4('0x4a')](_0x2199cf,_0x4ce5c4[_0x91a4('0x55')]),{'include':_0x4ce5c4[_0x91a4('0x3f')][_0x91a4('0x53')]?[{'all':!![]}]:undefined})[_0x91a4('0x2c')](function(_0x17b4e7){var _0x2a7e16=_0x4ce5c4[_0x91a4('0x56')]['get']({'plain':!![]});if(!_0x2a7e16)throw new Error(_0x91a4('0x63'));if(_0x2a7e16[_0x91a4('0x57')]===_0x91a4('0x56')){var _0xf9f03c=_0x17b4e7[_0x91a4('0x2e')]({'plain':!![]});var _0x105e27=[{'name':_0x91a4('0x64'),'value':_0x91a4('0x58')},{'name':_0x91a4('0x2f'),'value':_0x91a4('0x30')}];var _0x429a94=_[_0x91a4('0x34')](_0x105e27,['value',_0xf9f03c[_0x91a4('0x33')]])[_0x91a4('0x36')];return db[_0x91a4('0x59')][_0x91a4('0x34')]({'where':{'name':_0x429a94,'userProfileId':_0x2a7e16[_0x91a4('0x5a')]},'raw':!![]})[_0x91a4('0x2c')](function(_0x24f73b){if(_0x24f73b&&_0x24f73b[_0x91a4('0x5b')]===0x0){return db[_0x91a4('0x37')][_0x91a4('0x54')]({'name':_0xf9f03c['name'],'resourceId':_0xf9f03c['id'],'type':_0x24f73b[_0x91a4('0x36')],'sectionId':_0x24f73b['id']},{})[_0x91a4('0x2c')](function(){return _0x17b4e7;});}else{return _0x17b4e7;}})['catch'](function(_0x3c5c15){logger[_0x91a4('0x5c')](_0x91a4('0x5d'),_0x3c5c15);throw _0x3c5c15;});}return _0x17b4e7;});}})[_0x91a4('0x2c')](respondWithResult(_0x37f5c4,0xc9))[_0x91a4('0x4f')](handleError(_0x37f5c4,null));};exports[_0x91a4('0x2b')]=function(_0x22a398,_0x3ec969){if(_0x22a398[_0x91a4('0x55')]['id']){delete _0x22a398[_0x91a4('0x55')]['id'];}return db['VoiceQueue'][_0x91a4('0x34')]({'where':{'id':_0x22a398['params']['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x3ec969,null))[_0x91a4('0x2c')](saveUpdates(_0x22a398[_0x91a4('0x55')],null))[_0x91a4('0x2c')](respondWithResult(_0x3ec969,null))['catch'](handleError(_0x3ec969,null));};exports[_0x91a4('0x2d')]=function(_0x33c4f5,_0x2b34d2){return db['VoiceQueue'][_0x91a4('0x34')]({'where':{'id':_0x33c4f5[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x2b34d2,null))['then'](removeEntity(_0x2b34d2,null))[_0x91a4('0x4f')](handleError(_0x2b34d2,null));};exports['getHoppers']=function(_0x4b8d60,_0x21df54,_0x473217){var _0x32f4ea={'raw':![],'where':{}};var _0x22f752={};var _0x39ca4d={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x91a4('0x65')]({'where':{'id':_0x4b8d60[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x21df54,null))['then'](function(_0x2faef3){if(_0x2faef3){_0x22f752[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db['CmHopper'][_0x91a4('0x5f')]);_0x22f752['query']=_['keys'](_0x4b8d60[_0x91a4('0x3f')]);_0x22f752[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x22f752[_0x91a4('0x3e')],_0x22f752['query']);_0x32f4ea[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x22f752[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x4b8d60['query'][_0x91a4('0x42')]));_0x32f4ea['attributes']=_0x32f4ea['attributes'][_0x91a4('0x52')]?_0x32f4ea[_0x91a4('0x43')]:_0x22f752[_0x91a4('0x3e')];if(!_0x4b8d60['query']['hasOwnProperty'](_0x91a4('0x45'))){_0x32f4ea[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x32f4ea[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x32f4ea[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x32f4ea[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x4b8d60[_0x91a4('0x3f')],_0x22f752[_0x91a4('0x48')]));_0x32f4ea['where'][_0x91a4('0x67')]=_0x2faef3['id'];if(_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x32f4ea[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x32f4ea[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x32f4ea[_0x91a4('0x43')],function(_0x2e92d1){var _0x218621={};_0x218621[_0x2e92d1]={'$like':'%'+_0x4b8d60['query'][_0x91a4('0x31')]+'%'};return _0x218621;})});}_0x32f4ea=_[_0x91a4('0x4a')]({},_0x32f4ea,_0x4b8d60['options']);return db['CmHopper'][_0x91a4('0x25')]({'where':_0x32f4ea['where']})[_0x91a4('0x2c')](function(_0x301b7a){_0x39ca4d[_0x91a4('0x25')]=_0x301b7a;if(_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x32f4ea['include']=[{'all':!![]}];}return db[_0x91a4('0x68')][_0x91a4('0x4e')](_0x32f4ea);})[_0x91a4('0x2c')](function(_0x268461){_0x39ca4d[_0x91a4('0x69')]=_0x268461;return _0x39ca4d;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x21df54,_0x32f4ea))[_0x91a4('0x4f')](handleError(_0x21df54,null));};exports[_0x91a4('0x6a')]=function(_0x4de867,_0x5e482f,_0x548d36){var _0x13db23={'raw':!![],'where':{}};var _0x39ba06={};var _0x260ba0={'count':0x0,'rows':[]};return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x4de867['params']['id']}})['then'](handleEntityNotFound(_0x5e482f,null))[_0x91a4('0x2c')](function(_0x1f1c78){if(_0x1f1c78){_0x39ba06['model']=_['keys'](db['CmHopperHistory'][_0x91a4('0x5f')]);_0x39ba06[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x4de867[_0x91a4('0x3f')]);_0x39ba06[_0x91a4('0x48')]=_['intersection'](_0x39ba06[_0x91a4('0x3e')],_0x39ba06[_0x91a4('0x3f')]);_0x13db23['attributes']=_[_0x91a4('0x41')](_0x39ba06[_0x91a4('0x3e')],qs['fields'](_0x4de867[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x13db23[_0x91a4('0x43')]=_0x13db23[_0x91a4('0x43')]['length']?_0x13db23[_0x91a4('0x43')]:_0x39ba06[_0x91a4('0x3e')];if(!_0x4de867['query'][_0x91a4('0x44')](_0x91a4('0x45'))){_0x13db23['limit']=qs[_0x91a4('0x26')](_0x4de867[_0x91a4('0x3f')]['limit']);_0x13db23['offset']=qs[_0x91a4('0x23')](_0x4de867[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x13db23[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x4de867['query'][_0x91a4('0x46')]);_0x13db23[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x4de867['query'],_0x39ba06['filters']));_0x13db23['where'][_0x91a4('0x67')]=_0x1f1c78['id'];if(_0x4de867[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x13db23[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x13db23[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x13db23[_0x91a4('0x43')],function(_0x4b8213){var _0x5f1d5e={};_0x5f1d5e[_0x4b8213]={'$like':'%'+_0x4de867[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x5f1d5e;})});}_0x13db23=_[_0x91a4('0x4a')]({},_0x13db23,_0x4de867[_0x91a4('0x4c')]);return db[_0x91a4('0x6b')][_0x91a4('0x25')]({'where':_0x13db23[_0x91a4('0x47')]})[_0x91a4('0x2c')](function(_0x47d377){_0x260ba0['count']=_0x47d377;if(_0x4de867[_0x91a4('0x3f')]['includeAll']){_0x13db23[_0x91a4('0x4d')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x91a4('0x4e')](_0x13db23);})['then'](function(_0x72db8c){_0x260ba0[_0x91a4('0x69')]=_0x72db8c;return _0x260ba0;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x5e482f,_0x13db23))[_0x91a4('0x4f')](handleError(_0x5e482f,null));};exports['getHopperFinals']=function(_0x31a83e,_0x235e3c,_0x3fa815){var _0x4835bb={'raw':!![],'where':{}};var _0x447c6b={};var _0x260cde={'count':0x0,'rows':[]};return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x31a83e[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x235e3c,null))[_0x91a4('0x2c')](function(_0x1a517a){if(_0x1a517a){_0x447c6b['model']=_[_0x91a4('0x40')](db['CmHopperFinal'][_0x91a4('0x5f')]);_0x447c6b['query']=_[_0x91a4('0x40')](_0x31a83e[_0x91a4('0x3f')]);_0x447c6b['filters']=_[_0x91a4('0x41')](_0x447c6b[_0x91a4('0x3e')],_0x447c6b[_0x91a4('0x3f')]);_0x4835bb[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x447c6b['model'],qs[_0x91a4('0x42')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x4835bb[_0x91a4('0x43')]=_0x4835bb[_0x91a4('0x43')][_0x91a4('0x52')]?_0x4835bb[_0x91a4('0x43')]:_0x447c6b['model'];if(!_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x44')](_0x91a4('0x45'))){_0x4835bb['limit']=qs[_0x91a4('0x26')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x4835bb[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x4835bb[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x4835bb[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x31a83e[_0x91a4('0x3f')],_0x447c6b[_0x91a4('0x48')]));_0x4835bb[_0x91a4('0x47')]['VoiceQueueId']=_0x1a517a['id'];if(_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x4835bb['where']=_['merge'](_0x4835bb[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x4835bb[_0x91a4('0x43')],function(_0x14a821){var _0x51c6ad={};_0x51c6ad[_0x14a821]={'$like':'%'+_0x31a83e[_0x91a4('0x3f')]['filter']+'%'};return _0x51c6ad;})});}_0x4835bb=_['merge']({},_0x4835bb,_0x31a83e[_0x91a4('0x4c')]);return db['CmHopperFinal'][_0x91a4('0x25')]({'where':_0x4835bb[_0x91a4('0x47')]})[_0x91a4('0x2c')](function(_0x4a0ced){_0x260cde[_0x91a4('0x25')]=_0x4a0ced;if(_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x4835bb[_0x91a4('0x4d')]=[{'all':!![]}];}return db[_0x91a4('0x6c')][_0x91a4('0x4e')](_0x4835bb);})[_0x91a4('0x2c')](function(_0x184354){_0x260cde[_0x91a4('0x69')]=_0x184354;return _0x260cde;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x235e3c,_0x4835bb))['catch'](handleError(_0x235e3c,null));};exports['getHopperBlacks']=function(_0x12fe13,_0x3767dd,_0x2a5dfa){var _0x31ea5d={'raw':!![],'where':{}};var _0x18ce39={};var _0x511cda={'count':0x0,'rows':[]};return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x12fe13[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x3767dd,null))[_0x91a4('0x2c')](function(_0x4819f4){if(_0x4819f4){_0x18ce39['model']=_['keys'](db[_0x91a4('0x6d')][_0x91a4('0x5f')]);_0x18ce39[_0x91a4('0x3f')]=_['keys'](_0x12fe13[_0x91a4('0x3f')]);_0x18ce39[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x18ce39['model'],_0x18ce39[_0x91a4('0x3f')]);_0x31ea5d['attributes']=_['intersection'](_0x18ce39['model'],qs[_0x91a4('0x42')](_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x31ea5d[_0x91a4('0x43')]=_0x31ea5d[_0x91a4('0x43')][_0x91a4('0x52')]?_0x31ea5d[_0x91a4('0x43')]:_0x18ce39[_0x91a4('0x3e')];if(!_0x12fe13[_0x91a4('0x3f')]['hasOwnProperty'](_0x91a4('0x45'))){_0x31ea5d[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x31ea5d[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x12fe13['query'][_0x91a4('0x23')]);}_0x31ea5d[_0x91a4('0x66')]=qs['sort'](_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x31ea5d[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x12fe13[_0x91a4('0x3f')],_0x18ce39[_0x91a4('0x48')]));_0x31ea5d[_0x91a4('0x47')][_0x91a4('0x67')]=_0x4819f4['id'];if(_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x31ea5d[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x31ea5d[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x31ea5d[_0x91a4('0x43')],function(_0x32f92a){var _0x1430b1={};_0x1430b1[_0x32f92a]={'$like':'%'+_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x1430b1;})});}_0x31ea5d=_['merge']({},_0x31ea5d,_0x12fe13[_0x91a4('0x4c')]);return db[_0x91a4('0x6d')][_0x91a4('0x25')]({'where':_0x31ea5d[_0x91a4('0x47')]})[_0x91a4('0x2c')](function(_0x487d70){_0x511cda['count']=_0x487d70;if(_0x12fe13[_0x91a4('0x3f')]['includeAll']){_0x31ea5d[_0x91a4('0x4d')]=[{'all':!![]}];}return db[_0x91a4('0x6d')][_0x91a4('0x4e')](_0x31ea5d);})[_0x91a4('0x2c')](function(_0x34e97f){_0x511cda['rows']=_0x34e97f;return _0x511cda;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x3767dd,_0x31ea5d))[_0x91a4('0x4f')](handleError(_0x3767dd,null));};exports['getTeams']=function(_0x59a7b7,_0xbf249d,_0x54cd8d){var _0x4beada={};var _0x31fb68={};var _0x26626e;var _0x446e42;return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x59a7b7['params']['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0xbf249d,null))['then'](function(_0x5ba106){if(_0x5ba106){_0x26626e=_0x5ba106;_0x31fb68[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db['Team'][_0x91a4('0x5f')]);_0x31fb68[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x59a7b7[_0x91a4('0x3f')]);_0x31fb68['filters']=_[_0x91a4('0x41')](_0x31fb68[_0x91a4('0x3e')],_0x31fb68[_0x91a4('0x3f')]);_0x4beada[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x31fb68['model'],qs[_0x91a4('0x42')](_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x4beada[_0x91a4('0x43')]=_0x4beada[_0x91a4('0x43')][_0x91a4('0x52')]?_0x4beada[_0x91a4('0x43')]:_0x31fb68[_0x91a4('0x3e')];_0x4beada[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x59a7b7[_0x91a4('0x3f')]['sort']);_0x4beada[_0x91a4('0x47')]=qs['filters'](_[_0x91a4('0x49')](_0x59a7b7[_0x91a4('0x3f')],_0x31fb68['filters']));if(_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x4beada['where']=_[_0x91a4('0x4a')](_0x4beada[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x4beada['attributes'],function(_0x1cb442){var _0x275099={};_0x275099[_0x1cb442]={'$like':'%'+_0x59a7b7[_0x91a4('0x3f')]['filter']+'%'};return _0x275099;})});}_0x4beada=_['merge']({},_0x4beada,_0x59a7b7[_0x91a4('0x4c')]);return _0x26626e['getTeams'](_0x4beada);}})['then'](function(_0x121c26){if(_0x121c26){_0x446e42=_0x121c26['length'];if(!_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x44')]('nolimit')){_0x4beada[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x4beada[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x59a7b7['query'][_0x91a4('0x23')]);}return _0x26626e[_0x91a4('0x6e')](_0x4beada);}})['then'](function(_0x18fd8e){if(_0x18fd8e){return _0x18fd8e?{'count':_0x446e42,'rows':_0x18fd8e}:null;}})[_0x91a4('0x2c')](respondWithResult(_0xbf249d,null))[_0x91a4('0x4f')](handleError(_0xbf249d,null));};exports[_0x91a4('0x6f')]=function(_0x3710e1,_0x56a7d4,_0x35c918){var _0x2eec0a=_0x3710e1['body']['teams'];var _0x3cbfd8=_['map'](_0x2eec0a,'id');return db[_0x91a4('0x70')]['findAll']({'where':{'id':_0x3cbfd8},'attributes':['id'],'include':[{'model':db[_0x91a4('0x71')],'as':'Agents','attributes':['id',_0x91a4('0x36'),_0x91a4('0x72'),'voicePause',_0x91a4('0x73')],'raw':!![]}]})[_0x91a4('0x2c')](function(_0x54ca92){if(_0x54ca92){var _0x45b1e3=_[_0x91a4('0x74')](_0x54ca92,function(_0x178c1c){var _0x10197e=_0x178c1c[_0x91a4('0x2e')]({'plain':!![]});_0x10197e[_0x91a4('0x75')][_0x91a4('0x76')](function(_0x847728){_0x847728['penalty']=_[_0x91a4('0x34')](_0x2eec0a,{'id':_0x10197e['id']})[_0x91a4('0x77')];});return _0x10197e[_0x91a4('0x75')];});return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x3710e1[_0x91a4('0x51')]['id']}})['then'](function(_0x458779){return db[_0x91a4('0x78')][_0x91a4('0x79')](function(_0x4c96c1){return _0x458779[_0x91a4('0x6f')](_0x3cbfd8,{'transaction':_0x4c96c1})['then'](function(){return BPromise[_0x91a4('0x7a')](_0x2eec0a,function(_0x4bc1a1){return db[_0x91a4('0x7b')][_0x91a4('0x7c')]({'TeamId':_0x4bc1a1['id'],'VoiceQueueId':_0x3710e1[_0x91a4('0x51')]['id'],'penalty':_0x4bc1a1['penalty']},{'transaction':_0x4c96c1});});})[_0x91a4('0x2c')](function(){return BPromise[_0x91a4('0x7a')](_0x45b1e3,function(_0x4484bd){return db['UserVoiceQueue']['findOrCreate']({'where':{'UserId':_0x4484bd['id'],'VoiceQueueId':_0x3710e1[_0x91a4('0x51')]['id']},'defaults':{'penalty':_0x4484bd[_0x91a4('0x77')]},'transaction':_0x4c96c1});});})[_0x91a4('0x2c')](function(){return BPromise[_0x91a4('0x7a')](_[_0x91a4('0x31')](_0x45b1e3,{'online':!![]}),function(_0x134354){return db[_0x91a4('0x7d')]['upsert']({'membername':_0x134354[_0x91a4('0x36')],'UserId':_0x134354['id'],'queue_name':_0x458779[_0x91a4('0x36')],'VoiceQueueId':_0x458779['id'],'interface':_[_0x91a4('0x7e')](_0x134354[_0x91a4('0x73')])?util[_0x91a4('0x7f')]('SIP/%s',_0x134354[_0x91a4('0x36')]):_0x134354[_0x91a4('0x73')],'paused':_0x134354[_0x91a4('0x80')]||![],'penalty':_0x134354[_0x91a4('0x77')]},{'transaction':_0x4c96c1});});})[_0x91a4('0x2c')](function(){_0x45b1e3[_0x91a4('0x76')](function(_0x2aba8f){socket['emit'](_0x91a4('0x81'),{'UserId':_0x2aba8f['id'],'VoiceQueueId':_0x458779['id']});});});});});}})[_0x91a4('0x2c')](respondWithStatusCode(_0x56a7d4,null))[_0x91a4('0x4f')](handleError(_0x56a7d4,null));};exports['removeTeams']=function(_0x10df41,_0x400949,_0x5c0e09){return db[_0x91a4('0x70')][_0x91a4('0x4e')]({'where':{'id':_0x10df41['query'][_0x91a4('0x82')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x91a4('0x75'),'attributes':['id'],'raw':!![]}]})[_0x91a4('0x2c')](handleEntityNotFound(_0x400949,null))[_0x91a4('0x2c')](function(_0x36aa33){var _0x230f2b=_[_0x91a4('0x32')](_0x36aa33,'id');var _0x192994=[];var _0x198631=[];var _0x5228ea=squel[_0x91a4('0x83')]();_0x5228ea[_0x91a4('0x84')](_0x91a4('0x85'))[_0x91a4('0x86')](_0x91a4('0x87'),'tq')[_0x91a4('0x88')](_0x91a4('0x89'),'ut',_0x91a4('0x8a'))[_0x91a4('0x47')]('VoiceQueueId\x20=\x20?',_0x10df41[_0x91a4('0x51')]['id']);for(var _0x45d985=0x0;_0x45d985<_0x36aa33['length'];_0x45d985+=0x1){let _0x58a2d5=_0x36aa33[_0x45d985];for(var _0x3a5a79=0x0;_0x3a5a79<_0x58a2d5[_0x91a4('0x75')][_0x91a4('0x52')];_0x3a5a79+=0x1){let _0x4c4700=_0x58a2d5[_0x91a4('0x75')][_0x3a5a79];var _0x34fc04=_0x5228ea[_0x91a4('0x5e')]();_0x34fc04['where'](_0x91a4('0x8b'),_0x4c4700['id']);_0x198631[_0x91a4('0x8c')](db[_0x91a4('0x78')][_0x91a4('0x3f')](_0x34fc04[_0x91a4('0x8d')](),{'type':db[_0x91a4('0x78')][_0x91a4('0x8e')]['SELECT']})[_0x91a4('0x2c')](function(_0x284aad){if(_0x284aad[_0x91a4('0x52')]===0x1){return _0x4c4700['id'];}else{var _0x167b15=_[_0x91a4('0x8f')](_[_0x91a4('0x32')](_0x284aad,'TeamId'),function(_0x13d17a){return _[_0x91a4('0x90')](_0x230f2b,_0x13d17a);});if(_0x167b15){return _0x4c4700['id'];}}}));}}return BPromise[_0x91a4('0x91')](_0x198631)[_0x91a4('0x2c')](function(_0xc4a9d2){_0x192994=_(_0x192994)[_0x91a4('0x92')](_0xc4a9d2)[_0x91a4('0x93')]()['value']();return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x10df41[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](function(_0x23b689){return db['sequelize'][_0x91a4('0x79')](function(_0x51a2f8){return _0x23b689[_0x91a4('0x94')](_0x10df41[_0x91a4('0x3f')][_0x91a4('0x82')],{'transaction':_0x51a2f8})['then'](function(){if(!_[_0x91a4('0x95')](_0x192994)){return _0x23b689[_0x91a4('0x96')](_0x192994,{'transaction':_0x51a2f8})['then'](function(){return db[_0x91a4('0x7d')]['destroy']({'where':{'VoiceQueueId':_0x10df41[_0x91a4('0x51')]['id'],'UserId':_0x192994},'transaction':_0x51a2f8});});}})['then'](function(){_0x192994[_0x91a4('0x76')](function(_0x8ab52a){socket[_0x91a4('0x97')](_0x91a4('0x98'),{'UserId':_0x8ab52a,'VoiceQueueId':_0x23b689['id']});});});});});});})[_0x91a4('0x2c')](respondWithStatusCode(_0x400949,null))[_0x91a4('0x4f')](handleError(_0x400949,null));};exports['addAgents']=function(_0x62974e,_0x2e1d27,_0x83d2ac){var _0x51ad88,_0x334cd1;return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x62974e[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x2e1d27,null))[_0x91a4('0x2c')](function(_0x511422){if(_0x511422){_0x334cd1=_0x511422;return _0x511422[_0x91a4('0x99')](_0x62974e['body'][_0x91a4('0x82')],_[_0x91a4('0x60')](_0x62974e[_0x91a4('0x55')],[_0x91a4('0x82'),'id'])||{})[_0x91a4('0x9a')](function(_0x34a58c){for(var _0x37ce45=0x0;_0x37ce45<_0x62974e['body']['ids'][_0x91a4('0x52')];_0x37ce45+=0x1){socket[_0x91a4('0x97')](_0x91a4('0x81'),{'UserId':Number(_0x62974e[_0x91a4('0x55')][_0x91a4('0x82')][_0x37ce45]),'VoiceQueueId':Number(_0x62974e[_0x91a4('0x51')]['id'])});}return _0x34a58c;});}})[_0x91a4('0x2c')](function(_0xf3386c){_0x51ad88=_0xf3386c||[];if(_0x334cd1){return db[_0x91a4('0x71')][_0x91a4('0x4e')]({'where':{'id':_0x62974e[_0x91a4('0x55')]['ids']},'attributes':['id','name',_0x91a4('0x72'),_0x91a4('0x80'),'interface'],'raw':!![]});}})[_0x91a4('0x2c')](function(_0xe04ad6){if(!_['isEmpty'](_0xe04ad6)){var _0x1ed516=[];for(var _0x107156=0x0;_0x107156<_0xe04ad6[_0x91a4('0x52')];_0x107156++){if(_0xe04ad6[_0x107156][_0x91a4('0x72')]){_0x1ed516[_0x91a4('0x8c')](db[_0x91a4('0x7d')][_0x91a4('0x7c')]({'membername':_0xe04ad6[_0x107156][_0x91a4('0x36')],'UserId':_0xe04ad6[_0x107156]['id'],'queue_name':_0x334cd1[_0x91a4('0x36')],'VoiceQueueId':_0x334cd1['id'],'interface':_[_0x91a4('0x7e')](_0xe04ad6[_0x107156]['interface'])?util[_0x91a4('0x7f')](_0x91a4('0x9b'),_0xe04ad6[_0x107156][_0x91a4('0x36')]):_0xe04ad6[_0x107156][_0x91a4('0x73')],'paused':_0xe04ad6[_0x107156][_0x91a4('0x80')]||![],'penalty':_0x62974e[_0x91a4('0x55')]['penalty']||0x0}));}}return BPromise[_0x91a4('0x91')](_0x1ed516);}})[_0x91a4('0x2c')](function(){return _0x51ad88;})[_0x91a4('0x2c')](respondWithResult(_0x2e1d27,null))['catch'](handleError(_0x2e1d27,null));};exports['removeAgents']=function(_0x34ad11,_0x1661e7,_0x2d437b){return db[_0x91a4('0x3b')]['find']({'where':{'id':_0x34ad11['params']['id']}})['then'](handleEntityNotFound(_0x1661e7,null))[_0x91a4('0x2c')](function(_0x115689){if(_0x115689){return _0x115689['removeAgents'](_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')])[_0x91a4('0x2c')](function(){if(_[_0x91a4('0x9c')](_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')])){for(var _0x3ac1ed=0x0;_0x3ac1ed<_0x34ad11['query'][_0x91a4('0x82')][_0x91a4('0x52')];_0x3ac1ed+=0x1){socket[_0x91a4('0x97')]('userVoiceQueue:remove',{'UserId':Number(_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')][_0x3ac1ed]),'VoiceQueueId':Number(_0x34ad11['params']['id'])});}}else{socket[_0x91a4('0x97')](_0x91a4('0x98'),{'UserId':Number(_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')]),'VoiceQueueId':Number(_0x34ad11[_0x91a4('0x51')]['id'])});}});}})[_0x91a4('0x2c')](function(_0x43bc8d){return db['UserVoiceQueueRt']['destroy']({'where':{'VoiceQueueId':_0x34ad11['params']['id'],'UserId':_0x34ad11[_0x91a4('0x3f')]['ids']}})[_0x91a4('0x2c')](function(){return _0x43bc8d;});})[_0x91a4('0x2c')](respondWithStatusCode(_0x1661e7,null))[_0x91a4('0x4f')](handleError(_0x1661e7,null));};exports[_0x91a4('0x9d')]=function(_0x5b0e8e,_0x38ade5,_0x573df9){var _0x359cec={};var _0x51141d={};var _0x3b2e63;var _0x1893a0;return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x5b0e8e[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x38ade5,null))[_0x91a4('0x2c')](function(_0x2fe5d0){if(_0x2fe5d0){_0x3b2e63=_0x2fe5d0;_0x51141d[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db['User'][_0x91a4('0x5f')]);_0x51141d[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x5b0e8e['query']);_0x51141d[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x51141d[_0x91a4('0x3e')],_0x51141d[_0x91a4('0x3f')]);_0x359cec[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x51141d[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x359cec[_0x91a4('0x43')]=_0x359cec[_0x91a4('0x43')][_0x91a4('0x52')]?_0x359cec[_0x91a4('0x43')]:_0x51141d[_0x91a4('0x3e')];_0x359cec[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x359cec[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x5b0e8e['query'],_0x51141d['filters']));if(_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x359cec['where']=_['merge'](_0x359cec[_0x91a4('0x47')],{'$or':_['map'](_0x359cec[_0x91a4('0x43')],function(_0x969b82){var _0x32fbd2={};_0x32fbd2[_0x969b82]={'$like':'%'+_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x32fbd2;})});}_0x359cec=_[_0x91a4('0x4a')]({},_0x359cec,_0x5b0e8e[_0x91a4('0x4c')]);return _0x3b2e63[_0x91a4('0x9d')](_0x359cec);}})['then'](function(_0x2870e2){if(_0x2870e2){_0x1893a0=_0x2870e2['length'];if(!_0x5b0e8e['query'][_0x91a4('0x44')]('nolimit')){_0x359cec[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x359cec['offset']=qs['offset'](_0x5b0e8e[_0x91a4('0x3f')]['offset']);}return _0x3b2e63[_0x91a4('0x9d')](_0x359cec);}})[_0x91a4('0x2c')](function(_0x37ee32){if(_0x37ee32){return _0x37ee32?{'count':_0x1893a0,'rows':_0x37ee32}:null;}})[_0x91a4('0x2c')](respondWithResult(_0x38ade5,null))[_0x91a4('0x4f')](handleError(_0x38ade5,null));};exports[_0x91a4('0x9e')]=function(_0x4c0fde,_0x26d43c,_0x301cc3){var _0x4904d6={};var _0x8eecae={};var _0x4b2775;var _0x46ea9d;return db['VoiceQueue'][_0x91a4('0x65')]({'where':{'id':_0x4c0fde[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x26d43c,null))[_0x91a4('0x2c')](function(_0x34ea29){if(_0x34ea29){_0x4b2775=_0x34ea29;_0x8eecae['model']=_[_0x91a4('0x40')](db[_0x91a4('0x7d')]['rawAttributes']);_0x8eecae[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x4c0fde['query']);_0x8eecae[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x8eecae[_0x91a4('0x3e')],_0x8eecae[_0x91a4('0x3f')]);_0x4904d6[_0x91a4('0x43')]=_['intersection'](_0x8eecae['model'],qs[_0x91a4('0x42')](_0x4c0fde['query'][_0x91a4('0x42')]));_0x4904d6[_0x91a4('0x43')]=_0x4904d6['attributes'][_0x91a4('0x52')]?_0x4904d6['attributes']:_0x8eecae[_0x91a4('0x3e')];_0x4904d6[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x4c0fde['query']['sort']);_0x4904d6[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_['pick'](_0x4c0fde[_0x91a4('0x3f')],_0x8eecae[_0x91a4('0x48')]));if(_0x4c0fde[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x4904d6[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x4904d6[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x4904d6['attributes'],function(_0x5090aa){var _0x57a30d={};_0x57a30d[_0x5090aa]={'$like':'%'+_0x4c0fde[_0x91a4('0x3f')]['filter']+'%'};return _0x57a30d;})});}_0x4904d6=_[_0x91a4('0x4a')]({},_0x4904d6,_0x4c0fde[_0x91a4('0x4c')]);return _0x4b2775[_0x91a4('0x9e')](_0x4904d6);}})[_0x91a4('0x2c')](function(_0x5d3d50){if(_0x5d3d50){_0x46ea9d=_0x5d3d50['length'];if(!_0x4c0fde['query'][_0x91a4('0x44')](_0x91a4('0x45'))){_0x4904d6[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x4c0fde[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x4904d6[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x4c0fde[_0x91a4('0x3f')][_0x91a4('0x23')]);}return _0x4b2775[_0x91a4('0x9e')](_0x4904d6);}})['then'](function(_0xd4936d){return _0xd4936d?{'count':_0x46ea9d,'rows':_0xd4936d}:null;})['then'](respondWithResult(_0x26d43c,null))[_0x91a4('0x4f')](handleError(_0x26d43c,null));};exports[_0x91a4('0x9f')]=function(_0x21ecb4,_0x417a43,_0x41ac1f){var _0x510756={};var _0x583fcd={};var _0x23812e;var _0x18f4d8;return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x21ecb4[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x417a43,null))[_0x91a4('0x2c')](function(_0x4bb9f8){if(_0x4bb9f8){_0x23812e=_0x4bb9f8;_0x583fcd[_0x91a4('0x3e')]=_['keys'](db[_0x91a4('0xa0')][_0x91a4('0x5f')]);_0x583fcd[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x21ecb4[_0x91a4('0x3f')]);_0x583fcd['filters']=_[_0x91a4('0x41')](_0x583fcd[_0x91a4('0x3e')],_0x583fcd[_0x91a4('0x3f')]);_0x510756[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x583fcd[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x21ecb4['query']['fields']));_0x510756[_0x91a4('0x43')]=_0x510756[_0x91a4('0x43')][_0x91a4('0x52')]?_0x510756[_0x91a4('0x43')]:_0x583fcd['model'];_0x510756[_0x91a4('0x66')]=qs['sort'](_0x21ecb4['query'][_0x91a4('0x46')]);_0x510756[_0x91a4('0x47')]=qs['filters'](_[_0x91a4('0x49')](_0x21ecb4['query'],_0x583fcd[_0x91a4('0x48')]));if(_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x510756['where']=_[_0x91a4('0x4a')](_0x510756['where'],{'$or':_[_0x91a4('0x32')](_0x510756[_0x91a4('0x43')],function(_0x443373){var _0x44e33d={};_0x44e33d[_0x443373]={'$like':'%'+_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x44e33d;})});}_0x510756=_[_0x91a4('0x4a')]({},_0x510756,_0x21ecb4[_0x91a4('0x4c')]);return _0x23812e[_0x91a4('0x9f')](_0x510756);}})['then'](function(_0x147202){if(_0x147202){_0x18f4d8=_0x147202[_0x91a4('0x52')];if(!_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x44')](_0x91a4('0x45'))){_0x510756['limit']=qs[_0x91a4('0x26')](_0x21ecb4['query'][_0x91a4('0x26')]);_0x510756[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x23')]);}return _0x23812e[_0x91a4('0x9f')](_0x510756);}})['then'](function(_0x2d14cb){if(_0x2d14cb){return _0x2d14cb?{'count':_0x18f4d8,'rows':_0x2d14cb}:null;}})[_0x91a4('0x2c')](respondWithResult(_0x417a43,null))[_0x91a4('0x4f')](handleError(_0x417a43,null));};exports[_0x91a4('0xa1')]=function(_0x25815e,_0x92b73b,_0x20c440){var _0x26aec1,_0x2fb0f6;return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x25815e['params']['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x92b73b,null))[_0x91a4('0x2c')](function(_0x105ded){if(_0x105ded){_0x2fb0f6=_0x105ded;return _0x105ded[_0x91a4('0xa1')](_0x25815e[_0x91a4('0x55')]['ids'],_[_0x91a4('0x60')](_0x25815e[_0x91a4('0x55')],['ids','id'])||{});}return null;})['spread'](function(_0x3dbd54){var _0x18ee9a;_0x26aec1=_0x3dbd54||[];var _0x32c6ca=[];if(_0x3dbd54){for(var _0x18f3d1=0x0;_0x18f3d1<_0x3dbd54[_0x91a4('0x52')];_0x18f3d1+=0x1){var _0x16b81f=_0x3dbd54[_0x18f3d1][_0x91a4('0x2e')]({'plain':!![]});_0x2fb0f6[_0x91a4('0xa2')]=_0x25815e['body']['dialCheckDuplicateType']?_0x25815e['body'][_0x91a4('0xa2')]:_0x2fb0f6[_0x91a4('0xa2')];switch(_0x2fb0f6[_0x91a4('0xa2')]){case _0x91a4('0xa3'):_0x18ee9a=squel[_0x91a4('0xa4')]()[_0x91a4('0xa5')](_0x91a4('0xa6'))['fromQuery'](['phone',_0x91a4('0xa7'),_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),_0x91a4('0x62'),_0x91a4('0x61')],squel[_0x91a4('0x83')]()['field']('phone',_0x91a4('0xa9'))['field'](_0x91a4('0xaa'),_0x91a4('0xa7'))[_0x91a4('0x84')]('id',_0x91a4('0xa8'))[_0x91a4('0x84')](_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')](),_0x91a4('0xac'))[_0x91a4('0x84')](_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),_0x91a4('0x67'))[_0x91a4('0x84')](_0x91a4('0xaa'),'createdAt')['field']('NOW()',_0x91a4('0x61'))[_0x91a4('0x86')](_0x91a4('0xad'))['where'](_0x91a4('0xae'))[_0x91a4('0x47')](_0x91a4('0xaf'),_0x16b81f[_0x91a4('0xab')]['toString']())[_0x91a4('0x47')](_0x91a4('0xb0'))[_0x91a4('0x47')](_0x91a4('0xb1'),squel[_0x91a4('0x83')]()[_0x91a4('0x84')]('COALESCE(calleridnum,\x27\x27)')['from'](_0x91a4('0xb2'))['where'](_0x91a4('0xb3'),_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')]()))['where']('phone\x20NOT\x20IN\x20(?)',squel[_0x91a4('0x83')]()['field']('COALESCE(phone,\x27\x27)')['from'](_0x91a4('0xa6'))['where'](_0x91a4('0xb3'),_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')]())))[_0x91a4('0x8d')]();break;case _0x91a4('0xb4'):_0x18ee9a=squel[_0x91a4('0xa4')]()[_0x91a4('0xa5')](_0x91a4('0xa6'))[_0x91a4('0xb5')]([_0x91a4('0xa9'),_0x91a4('0xa7'),_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),'createdAt',_0x91a4('0x61')],squel[_0x91a4('0x83')]()[_0x91a4('0x84')](_0x91a4('0xa9'),_0x91a4('0xa9'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0xa7'))[_0x91a4('0x84')]('id',_0x91a4('0xa8'))['field'](_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')](),'ListId')[_0x91a4('0x84')](_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),_0x91a4('0x67'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x62'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x61'))['from'](_0x91a4('0xad'))['where'](_0x91a4('0xae'))['where']('ListId\x20=\x20?',_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')]())['where'](_0x91a4('0xb0'))[_0x91a4('0x47')](_0x91a4('0xb1'),squel['select']()[_0x91a4('0x84')](_0x91a4('0xb6'))['from'](_0x91a4('0xa6'))[_0x91a4('0x47')](_0x91a4('0xb3'),_0x25815e[_0x91a4('0x51')]['id']['toString']())))[_0x91a4('0x8d')]();break;default:_0x18ee9a=squel[_0x91a4('0xa4')]()[_0x91a4('0xa5')](_0x91a4('0xa6'))[_0x91a4('0xb5')]([_0x91a4('0xa9'),'scheduledAt',_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),_0x91a4('0x62'),'updatedAt'],squel[_0x91a4('0x83')]()[_0x91a4('0x84')](_0x91a4('0xa9'),_0x91a4('0xa9'))['field']('NOW()',_0x91a4('0xa7'))[_0x91a4('0x84')]('id',_0x91a4('0xa8'))['field'](_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')](),_0x91a4('0xac'))[_0x91a4('0x84')](_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),'VoiceQueueId')[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x62'))[_0x91a4('0x84')](_0x91a4('0xaa'),'updatedAt')[_0x91a4('0x86')](_0x91a4('0xad'))[_0x91a4('0x47')](_0x91a4('0xae'))[_0x91a4('0x47')](_0x91a4('0xaf'),_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')]())['where'](_0x91a4('0xb0')))['toString']();}_0x32c6ca[_0x91a4('0x8c')](db[_0x91a4('0x78')]['query'](_0x18ee9a));}return BPromise[_0x91a4('0x91')](_0x32c6ca);}})[_0x91a4('0x2c')](function(){return _0x26aec1;})['then'](respondWithResult(_0x92b73b,null))[_0x91a4('0x4f')](handleError(_0x92b73b,null));};exports[_0x91a4('0xb7')]=function(_0x3310ad,_0x46bf79,_0x1cb9a3){return db['VoiceQueue']['find']({'where':{'id':_0x3310ad[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x46bf79,null))[_0x91a4('0x2c')](function(_0x1451c8){if(_0x1451c8){return _0x1451c8['removeLists'](_0x3310ad['query'][_0x91a4('0x82')]);}})[_0x91a4('0x2c')](function(_0x54cae8){if(_0x54cae8){return db[_0x91a4('0x68')][_0x91a4('0x2d')]({'where':{'ListId':_0x3310ad[_0x91a4('0x3f')][_0x91a4('0x82')],'VoiceQueueId':_0x3310ad['params']['id']}})[_0x91a4('0x2c')](function(){return _0x54cae8;});}})[_0x91a4('0x2c')](respondWithStatusCode(_0x46bf79,null))['catch'](handleError(_0x46bf79,null));};exports[_0x91a4('0xb8')]=function(_0x58c463,_0x75f9ea,_0x1667a9){var _0x561494={};var _0x1bc2ce={};var _0x22c4f3;var _0x12ed8d;return db['VoiceQueue'][_0x91a4('0x65')]({'where':{'id':_0x58c463[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x75f9ea,null))['then'](function(_0x3bfef9){if(_0x3bfef9){_0x22c4f3=_0x3bfef9;_0x1bc2ce[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db[_0x91a4('0xa0')][_0x91a4('0x5f')]);_0x1bc2ce[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x58c463[_0x91a4('0x3f')]);_0x1bc2ce['filters']=_['intersection'](_0x1bc2ce[_0x91a4('0x3e')],_0x1bc2ce[_0x91a4('0x3f')]);_0x561494[_0x91a4('0x43')]=_['intersection'](_0x1bc2ce[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x58c463[_0x91a4('0x3f')]['fields']));_0x561494[_0x91a4('0x43')]=_0x561494[_0x91a4('0x43')]['length']?_0x561494['attributes']:_0x1bc2ce[_0x91a4('0x3e')];_0x561494[_0x91a4('0x66')]=qs['sort'](_0x58c463[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x561494[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x58c463[_0x91a4('0x3f')],_0x1bc2ce[_0x91a4('0x48')]));if(_0x58c463['query'][_0x91a4('0x31')]){_0x561494['where']=_[_0x91a4('0x4a')](_0x561494[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x561494[_0x91a4('0x43')],function(_0x122c8b){var _0x59fa27={};_0x59fa27[_0x122c8b]={'$like':'%'+_0x58c463[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x59fa27;})});}_0x561494=_[_0x91a4('0x4a')]({},_0x561494,_0x58c463[_0x91a4('0x4c')]);return _0x22c4f3[_0x91a4('0xb8')](_0x561494);}})[_0x91a4('0x2c')](function(_0x564a1c){if(_0x564a1c){_0x12ed8d=_0x564a1c['length'];if(!_0x58c463[_0x91a4('0x3f')][_0x91a4('0x44')]('nolimit')){_0x561494[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x58c463['query']['limit']);_0x561494[_0x91a4('0x23')]=qs['offset'](_0x58c463[_0x91a4('0x3f')][_0x91a4('0x23')]);}return _0x22c4f3['getBlackLists'](_0x561494);}})[_0x91a4('0x2c')](function(_0x30e4bf){if(_0x30e4bf){return _0x30e4bf?{'count':_0x12ed8d,'rows':_0x30e4bf}:null;}})['then'](respondWithResult(_0x75f9ea,null))[_0x91a4('0x4f')](handleError(_0x75f9ea,null));};exports[_0x91a4('0xb9')]=function(_0x3d1fdf,_0x5aad9c,_0x3d3171){var _0x53aa9a,_0x5708c7;return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x3d1fdf[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x5aad9c,null))['then'](function(_0x246219){if(_0x246219){_0x5708c7=_0x246219;return _0x246219[_0x91a4('0xb9')](_0x3d1fdf[_0x91a4('0x55')][_0x91a4('0x82')],_[_0x91a4('0x60')](_0x3d1fdf[_0x91a4('0x55')],[_0x91a4('0x82'),'id'])||{});}return null;})[_0x91a4('0x9a')](function(_0x142df3){var _0x19a05a;_0x53aa9a=_0x142df3||[];var _0x15be35=[];if(_0x142df3){for(var _0x509309=0x0;_0x509309<_0x142df3[_0x91a4('0x52')];_0x509309+=0x1){var _0x42a1d3=_0x142df3[_0x509309]['get']({'plain':!![]});_0x19a05a=squel[_0x91a4('0xa4')]()['into']('cm_hopper_black')[_0x91a4('0xb5')]([_0x91a4('0xa9'),_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),_0x91a4('0x62'),'updatedAt'],squel[_0x91a4('0x83')]()[_0x91a4('0x84')]('phone','phone')[_0x91a4('0x84')]('id','ContactId')[_0x91a4('0x84')](_0x42a1d3[_0x91a4('0xab')][_0x91a4('0x8d')](),_0x91a4('0xac'))[_0x91a4('0x84')](_0x3d1fdf[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),_0x91a4('0x67'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x62'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x61'))[_0x91a4('0x86')]('cm_contacts')[_0x91a4('0x47')](_0x91a4('0xae'))[_0x91a4('0x47')](_0x91a4('0xaf'),_0x42a1d3[_0x91a4('0xab')][_0x91a4('0x8d')]())['where'](_0x91a4('0xb0')))[_0x91a4('0x8d')]();_0x15be35[_0x91a4('0x8c')](db[_0x91a4('0x78')]['query'](_0x19a05a));}return BPromise[_0x91a4('0x91')](_0x15be35);}})[_0x91a4('0x2c')](function(){return _0x53aa9a;})[_0x91a4('0x2c')](respondWithResult(_0x5aad9c,null))[_0x91a4('0x4f')](handleError(_0x5aad9c,null));};exports[_0x91a4('0xba')]=function(_0x55f8af,_0x52f533,_0x595111){return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x55f8af[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x52f533,null))[_0x91a4('0x2c')](function(_0x39516c){if(_0x39516c){return _0x39516c[_0x91a4('0xba')](_0x55f8af['query']['ids']);}})[_0x91a4('0x2c')](function(_0x1891b9){if(_0x1891b9){return db[_0x91a4('0x6d')][_0x91a4('0x2d')]({'where':{'ListId':_0x55f8af['query'][_0x91a4('0x82')],'VoiceQueueId':_0x55f8af[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](function(){return _0x1891b9;});}})[_0x91a4('0x2c')](respondWithStatusCode(_0x52f533,null))[_0x91a4('0x4f')](handleError(_0x52f533,null));};
\ No newline at end of file
+var _0x0e83=['params','createdAt','updatedAt','userProfileId','getHoppers','CmHopper','VoiceQueueId','rows','getHopperHistories','CmHopperHistory','getHopperFinals','findOne','CmHopperFinal','getHopperBlacks','CmHopperBlack','getTeams','addTeams','teams','Team','User','Agents','online','voicePause','flatMap','forEach','penalty','each','upsert','findOrCreate','interface','format','SIP/%s','emit','userVoiceQueue:save','ids','field','tq.TeamId','from','team_has_voice_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoiceQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','every','TeamId','includes','union','compact','isEmpty','removeAgents','UserVoiceQueueRt','addAgents','omit','spread','userVoiceQueue:remove','getAgents','getMembers','getLists','addLists','dialCheckDuplicateType','always','insert','into','cm_hopper','fromQuery','phone','ContactId','CmListId','ListId','NOW()','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','select','COALESCE(calleridnum,\x27\x27)','onlyIfOpen','scheduledAt','COALESCE(phone,\x27\x27)','all','removeLists','getBlackLists','CmList','addBlackLists','cm_hopper_black','removeBlackLists','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./voiceQueue.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','then','destroy','VoiceQueues','inbound','outbound','ignore','map','value','type','find','name','UserProfileResource','stack','send','index','VoiceQueue','rawAttributes','fieldName','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','include','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','QueueCampaigns','UserProfileSection','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone'];(function(_0x289a73,_0x37f9a2){var _0x460ba0=function(_0x412de5){while(--_0x412de5){_0x289a73['push'](_0x289a73['shift']());}};_0x460ba0(++_0x37f9a2);}(_0x0e83,0x116));var _0x30e8=function(_0x2d34d6,_0x397ff9){_0x2d34d6=_0x2d34d6-0x0;var _0x1d3d12=_0x0e83[_0x2d34d6];return _0x1d3d12;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x30e8('0x0'));var jsonpatch=require(_0x30e8('0x1'));var rp=require(_0x30e8('0x2'));var moment=require(_0x30e8('0x3'));var BPromise=require(_0x30e8('0x4'));var Mustache=require('mustache');var util=require(_0x30e8('0x5'));var path=require(_0x30e8('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x30e8('0x7'));var _=require(_0x30e8('0x8'));var squel=require(_0x30e8('0x9'));var crypto=require(_0x30e8('0xa'));var jsforce=require(_0x30e8('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x30e8('0xc'));var querystring=require(_0x30e8('0xd'));var Papa=require(_0x30e8('0xe'));var Redis=require(_0x30e8('0xf'));var authService=require(_0x30e8('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x30e8('0x11'))(_0x30e8('0x12'));var utils=require(_0x30e8('0x13'));var config=require(_0x30e8('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x30e8('0x15'))['db'];config['redis']=_[_0x30e8('0x16')](config[_0x30e8('0x17')],{'host':_0x30e8('0x18'),'port':0x18eb});var socket=require(_0x30e8('0x19'))(new Redis(config[_0x30e8('0x17')]));require(_0x30e8('0x1a'))[_0x30e8('0x1b')](socket);function respondWithStatusCode(_0x213300,_0x35072a){_0x35072a=_0x35072a||0xcc;return function(_0x1e48e5){if(_0x1e48e5){return _0x213300[_0x30e8('0x1c')](_0x35072a);}return _0x213300[_0x30e8('0x1d')](_0x35072a)[_0x30e8('0x1e')]();};}function respondWithResult(_0x156570,_0x523cc5){_0x523cc5=_0x523cc5||0xc8;return function(_0x3dfbce){if(_0x3dfbce){return _0x156570[_0x30e8('0x1d')](_0x523cc5)[_0x30e8('0x1f')](_0x3dfbce);}};}function respondWithFilteredResult(_0x501f20,_0x1ef65e){return function(_0x3fb1db){if(_0x3fb1db){var _0x22679d=typeof _0x1ef65e[_0x30e8('0x20')]==='undefined'&&typeof _0x1ef65e[_0x30e8('0x21')]===_0x30e8('0x22');var _0x7efa20=_0x3fb1db['count'];var _0x20a101=_0x22679d?0x0:_0x1ef65e['offset'];var _0x428867=_0x22679d?_0x3fb1db[_0x30e8('0x23')]:_0x1ef65e['offset']+_0x1ef65e[_0x30e8('0x21')];var _0x27e6f0;if(_0x428867>=_0x7efa20){_0x428867=_0x7efa20;_0x27e6f0=0xc8;}else{_0x27e6f0=0xce;}_0x501f20[_0x30e8('0x1d')](_0x27e6f0);return _0x501f20[_0x30e8('0x24')](_0x30e8('0x25'),_0x20a101+'-'+_0x428867+'/'+_0x7efa20)['json'](_0x3fb1db);}return null;};}function patchUpdates(_0x34c210){return function(_0x479c29){try{jsonpatch[_0x30e8('0x26')](_0x479c29,_0x34c210,!![]);}catch(_0x23f143){return BPromise['reject'](_0x23f143);}return _0x479c29[_0x30e8('0x27')]();};}function saveUpdates(_0x3de5c5,_0x20aa94){return function(_0x3bbf49){if(_0x3bbf49){return _0x3bbf49[_0x30e8('0x28')](_0x3de5c5)[_0x30e8('0x29')](function(_0x3a9408){return _0x3a9408;});}return null;};}function removeEntity(_0x46f336,_0xe58bd3){return function(_0x52379c){if(_0x52379c){return _0x52379c[_0x30e8('0x2a')]()[_0x30e8('0x29')](function(){var _0x225d8c=_0x52379c['get']({'plain':!![]});var _0x5532a2=[{'name':_0x30e8('0x2b'),'value':_0x30e8('0x2c'),'ignore':![]},{'name':'QueueCampaigns','value':_0x30e8('0x2d'),'ignore':![]}];var _0x271874=_(_0x5532a2)['filter'](_0x30e8('0x2e'))[_0x30e8('0x2f')](_0x30e8('0x30'))[_0x30e8('0x30')]();if(_['includes'](_0x271874,_0x225d8c[_0x30e8('0x31')])){return;}var _0x4f7231=_[_0x30e8('0x32')](_0x5532a2,[_0x30e8('0x30'),_0x225d8c['type']])[_0x30e8('0x33')];return db[_0x30e8('0x34')][_0x30e8('0x2a')]({'where':{'type':_0x4f7231,'resourceId':_0x225d8c['id']}})[_0x30e8('0x29')](function(){return _0x52379c;});})[_0x30e8('0x29')](function(){_0x46f336['status'](0xcc)[_0x30e8('0x1e')]();});}};}function handleEntityNotFound(_0x3e6d06,_0x3f6759){return function(_0x101258){if(!_0x101258){_0x3e6d06['sendStatus'](0x194);}return _0x101258;};}function handleError(_0x45ddd0,_0x189482){_0x189482=_0x189482||0x1f4;return function(_0x5d6b8f){logger['error'](_0x5d6b8f[_0x30e8('0x35')]);if(_0x5d6b8f[_0x30e8('0x33')]){delete _0x5d6b8f['name'];}_0x45ddd0['status'](_0x189482)[_0x30e8('0x36')](_0x5d6b8f);};}exports[_0x30e8('0x37')]=function(_0x31592a,_0x39616a){var _0x46c1a8={},_0x2b7cdf={},_0x2f1bca={'count':0x0,'rows':[]};var _0x56760f=_[_0x30e8('0x2f')](db[_0x30e8('0x38')][_0x30e8('0x39')],function(_0x1b7209){return{'name':_0x1b7209[_0x30e8('0x3a')],'type':_0x1b7209[_0x30e8('0x31')]['key']};});_0x2b7cdf['model']=_[_0x30e8('0x2f')](_0x56760f,_0x30e8('0x33'));_0x2b7cdf[_0x30e8('0x3b')]=_[_0x30e8('0x3c')](_0x31592a[_0x30e8('0x3b')]);_0x2b7cdf[_0x30e8('0x3d')]=_[_0x30e8('0x3e')](_0x2b7cdf['model'],_0x2b7cdf[_0x30e8('0x3b')]);_0x46c1a8[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x2b7cdf[_0x30e8('0x40')],qs['fields'](_0x31592a[_0x30e8('0x3b')][_0x30e8('0x41')]));_0x46c1a8['attributes']=_0x46c1a8[_0x30e8('0x3f')][_0x30e8('0x42')]?_0x46c1a8['attributes']:_0x2b7cdf[_0x30e8('0x40')];if(!_0x31592a[_0x30e8('0x3b')][_0x30e8('0x43')](_0x30e8('0x44'))){_0x46c1a8['limit']=qs[_0x30e8('0x21')](_0x31592a[_0x30e8('0x3b')]['limit']);_0x46c1a8[_0x30e8('0x20')]=qs['offset'](_0x31592a[_0x30e8('0x3b')][_0x30e8('0x20')]);}_0x46c1a8[_0x30e8('0x45')]=qs[_0x30e8('0x46')](_0x31592a[_0x30e8('0x3b')][_0x30e8('0x46')]);_0x46c1a8[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_[_0x30e8('0x48')](_0x31592a['query'],_0x2b7cdf[_0x30e8('0x3d')]),_0x56760f);if(_0x31592a['query'][_0x30e8('0x49')]){_0x46c1a8['where']=_[_0x30e8('0x4a')](_0x46c1a8[_0x30e8('0x47')],{'$or':_[_0x30e8('0x2f')](_0x56760f,function(_0x2ab8e1){if(_0x2ab8e1['type']!==_0x30e8('0x4b')){var _0x55254a={};_0x55254a[_0x2ab8e1[_0x30e8('0x33')]]={'$like':'%'+_0x31592a[_0x30e8('0x3b')]['filter']+'%'};return _0x55254a;}})});}_0x46c1a8=_[_0x30e8('0x4a')]({},_0x46c1a8,_0x31592a[_0x30e8('0x4c')]);var _0x2dd52d={'where':_0x46c1a8[_0x30e8('0x47')]};return db[_0x30e8('0x38')][_0x30e8('0x23')](_0x2dd52d)[_0x30e8('0x29')](function(_0x1eecf2){_0x2f1bca[_0x30e8('0x23')]=_0x1eecf2;if(_0x31592a[_0x30e8('0x3b')][_0x30e8('0x4d')]){_0x46c1a8['include']=[{'all':!![]}];}return db[_0x30e8('0x38')][_0x30e8('0x4e')](_0x46c1a8);})[_0x30e8('0x29')](function(_0x50ae9e){_0x2f1bca['rows']=_0x50ae9e;return _0x2f1bca;})['then'](respondWithFilteredResult(_0x39616a,_0x46c1a8))[_0x30e8('0x4f')](handleError(_0x39616a,null));};exports[_0x30e8('0x50')]=function(_0x31c63d,_0x32c9d4){var _0x526180={'raw':![],'where':{'id':_0x31c63d['params']['id']}},_0x522faf={};_0x522faf['model']=_[_0x30e8('0x3c')](db[_0x30e8('0x38')][_0x30e8('0x39')]);_0x522faf[_0x30e8('0x3b')]=_['keys'](_0x31c63d[_0x30e8('0x3b')]);_0x522faf['filters']=_[_0x30e8('0x3e')](_0x522faf['model'],_0x522faf[_0x30e8('0x3b')]);_0x526180['attributes']=_[_0x30e8('0x3e')](_0x522faf[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x31c63d['query'][_0x30e8('0x41')]));_0x526180[_0x30e8('0x3f')]=_0x526180[_0x30e8('0x3f')][_0x30e8('0x42')]?_0x526180['attributes']:_0x522faf[_0x30e8('0x40')];if(_0x31c63d[_0x30e8('0x3b')]['includeAll']){_0x526180[_0x30e8('0x51')]=[{'all':!![]}];}_0x526180=_[_0x30e8('0x4a')]({},_0x526180,_0x31c63d['options']);return db['VoiceQueue']['find'](_0x526180)['then'](handleEntityNotFound(_0x32c9d4,null))['then'](respondWithResult(_0x32c9d4,null))['catch'](handleError(_0x32c9d4,null));};exports[_0x30e8('0x52')]=function(_0x145569,_0x482dfa){return db['VoiceQueue'][_0x30e8('0x52')](_0x145569[_0x30e8('0x53')],{})['then'](function(_0x48dee1){var _0x126d8b=_0x145569[_0x30e8('0x54')][_0x30e8('0x55')]({'plain':!![]});if(!_0x126d8b)throw new Error(_0x30e8('0x56'));if(_0x126d8b[_0x30e8('0x57')]===_0x30e8('0x54')){var _0x151dc6=_0x48dee1[_0x30e8('0x55')]({'plain':!![]});var _0xf8d96=[{'name':'VoiceQueues','value':'inbound'},{'name':_0x30e8('0x58'),'value':_0x30e8('0x2d')}];var _0x422677=_[_0x30e8('0x32')](_0xf8d96,['value',_0x151dc6[_0x30e8('0x31')]])[_0x30e8('0x33')];return db[_0x30e8('0x59')][_0x30e8('0x32')]({'where':{'name':_0x422677,'userProfileId':_0x126d8b['userProfileId']},'raw':!![]})[_0x30e8('0x29')](function(_0x3ca66f){if(_0x3ca66f&&_0x3ca66f[_0x30e8('0x5a')]===0x0){return db['UserProfileResource'][_0x30e8('0x52')]({'name':_0x151dc6[_0x30e8('0x33')],'resourceId':_0x151dc6['id'],'type':_0x3ca66f[_0x30e8('0x33')],'sectionId':_0x3ca66f['id']},{})['then'](function(){return _0x48dee1;});}else{return _0x48dee1;}})[_0x30e8('0x4f')](function(_0x46fadf){logger[_0x30e8('0x5b')](_0x30e8('0x5c'),_0x46fadf);throw _0x46fadf;});}return _0x48dee1;})[_0x30e8('0x29')](respondWithResult(_0x482dfa,0xc9))[_0x30e8('0x4f')](handleError(_0x482dfa,null));};exports[_0x30e8('0x5d')]=function(_0x13c314,_0x2f3473){var _0x7a5c11={'where':{'id':_0x13c314[_0x30e8('0x5e')]['id']}},_0x264a94={};_0x264a94[_0x30e8('0x40')]=_[_0x30e8('0x3c')](db['VoiceQueue']['rawAttributes']);_0x7a5c11[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x264a94[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x13c314[_0x30e8('0x3b')][_0x30e8('0x41')]));_0x7a5c11[_0x30e8('0x3f')]=_0x7a5c11['attributes']['length']?_0x7a5c11[_0x30e8('0x3f')]:_0x264a94['model'];if(_0x13c314[_0x30e8('0x3b')]['includeAll']){_0x7a5c11[_0x30e8('0x51')]=[{'all':!![]}];}_0x7a5c11=_[_0x30e8('0x4a')]({},_0x7a5c11,_0x13c314[_0x30e8('0x4c')]);return db['VoiceQueue']['find'](_0x7a5c11)['then'](handleEntityNotFound(_0x2f3473,null))[_0x30e8('0x29')](function(_0x5f51f6){if(_0x5f51f6){var _0x1dc952=_0x5f51f6['get']({'plain':!![]});_0x1dc952=qs['omit'](_0x1dc952,['id',_0x30e8('0x5f'),_0x30e8('0x60')]);_0x13c314[_0x30e8('0x53')]=_['omit'](_0x13c314['body'],['id',_0x30e8('0x5f'),_0x30e8('0x60')]);return db[_0x30e8('0x38')][_0x30e8('0x52')](_[_0x30e8('0x4a')](_0x1dc952,_0x13c314[_0x30e8('0x53')]),{'include':_0x13c314[_0x30e8('0x3b')][_0x30e8('0x4d')]?[{'all':!![]}]:undefined})[_0x30e8('0x29')](function(_0x3ce106){var _0x5edcc7=_0x13c314[_0x30e8('0x54')][_0x30e8('0x55')]({'plain':!![]});if(!_0x5edcc7)throw new Error(_0x30e8('0x56'));if(_0x5edcc7[_0x30e8('0x57')]===_0x30e8('0x54')){var _0x260a0d=_0x3ce106[_0x30e8('0x55')]({'plain':!![]});var _0x18e3d4=[{'name':'VoiceQueues','value':'inbound'},{'name':'QueueCampaigns','value':_0x30e8('0x2d')}];var _0x27a1af=_['find'](_0x18e3d4,[_0x30e8('0x30'),_0x260a0d['type']])[_0x30e8('0x33')];return db[_0x30e8('0x59')][_0x30e8('0x32')]({'where':{'name':_0x27a1af,'userProfileId':_0x5edcc7[_0x30e8('0x61')]},'raw':!![]})['then'](function(_0x291a20){if(_0x291a20&&_0x291a20[_0x30e8('0x5a')]===0x0){return db[_0x30e8('0x34')][_0x30e8('0x52')]({'name':_0x260a0d[_0x30e8('0x33')],'resourceId':_0x260a0d['id'],'type':_0x291a20['name'],'sectionId':_0x291a20['id']},{})[_0x30e8('0x29')](function(){return _0x3ce106;});}else{return _0x3ce106;}})[_0x30e8('0x4f')](function(_0x2baebb){logger[_0x30e8('0x5b')](_0x30e8('0x5c'),_0x2baebb);throw _0x2baebb;});}return _0x3ce106;});}})[_0x30e8('0x29')](respondWithResult(_0x2f3473,0xc9))[_0x30e8('0x4f')](handleError(_0x2f3473,null));};exports['update']=function(_0x266b78,_0x213b39){if(_0x266b78[_0x30e8('0x53')]['id']){delete _0x266b78['body']['id'];}return db['VoiceQueue'][_0x30e8('0x32')]({'where':{'id':_0x266b78[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x213b39,null))[_0x30e8('0x29')](saveUpdates(_0x266b78['body'],null))[_0x30e8('0x29')](respondWithResult(_0x213b39,null))[_0x30e8('0x4f')](handleError(_0x213b39,null));};exports['destroy']=function(_0x35894e,_0x214227){return db[_0x30e8('0x38')][_0x30e8('0x32')]({'where':{'id':_0x35894e[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x214227,null))['then'](removeEntity(_0x214227,null))[_0x30e8('0x4f')](handleError(_0x214227,null));};exports[_0x30e8('0x62')]=function(_0x5df2ba,_0x2bbf50,_0x121d66){var _0x59ed11={'raw':![],'where':{}};var _0x4afd32={};var _0x2e1655={'count':0x0,'rows':[]};return db[_0x30e8('0x38')]['findOne']({'where':{'id':_0x5df2ba[_0x30e8('0x5e')]['id']}})['then'](handleEntityNotFound(_0x2bbf50,null))[_0x30e8('0x29')](function(_0x18dabd){if(_0x18dabd){_0x4afd32[_0x30e8('0x40')]=_['keys'](db[_0x30e8('0x63')][_0x30e8('0x39')]);_0x4afd32[_0x30e8('0x3b')]=_[_0x30e8('0x3c')](_0x5df2ba['query']);_0x4afd32[_0x30e8('0x3d')]=_['intersection'](_0x4afd32[_0x30e8('0x40')],_0x4afd32[_0x30e8('0x3b')]);_0x59ed11[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x4afd32[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x5df2ba[_0x30e8('0x3b')][_0x30e8('0x41')]));_0x59ed11[_0x30e8('0x3f')]=_0x59ed11[_0x30e8('0x3f')][_0x30e8('0x42')]?_0x59ed11[_0x30e8('0x3f')]:_0x4afd32[_0x30e8('0x40')];if(!_0x5df2ba['query'][_0x30e8('0x43')](_0x30e8('0x44'))){_0x59ed11[_0x30e8('0x21')]=qs['limit'](_0x5df2ba[_0x30e8('0x3b')]['limit']);_0x59ed11['offset']=qs[_0x30e8('0x20')](_0x5df2ba[_0x30e8('0x3b')]['offset']);}_0x59ed11[_0x30e8('0x45')]=qs['sort'](_0x5df2ba[_0x30e8('0x3b')][_0x30e8('0x46')]);_0x59ed11[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_[_0x30e8('0x48')](_0x5df2ba[_0x30e8('0x3b')],_0x4afd32[_0x30e8('0x3d')]));_0x59ed11['where'][_0x30e8('0x64')]=_0x18dabd['id'];if(_0x5df2ba[_0x30e8('0x3b')][_0x30e8('0x49')]){_0x59ed11[_0x30e8('0x47')]=_[_0x30e8('0x4a')](_0x59ed11[_0x30e8('0x47')],{'$or':_[_0x30e8('0x2f')](_0x59ed11[_0x30e8('0x3f')],function(_0x44f5e7){var _0x4346a7={};_0x4346a7[_0x44f5e7]={'$like':'%'+_0x5df2ba[_0x30e8('0x3b')]['filter']+'%'};return _0x4346a7;})});}_0x59ed11=_['merge']({},_0x59ed11,_0x5df2ba[_0x30e8('0x4c')]);return db[_0x30e8('0x63')]['count']({'where':_0x59ed11[_0x30e8('0x47')]})[_0x30e8('0x29')](function(_0x3e9cdb){_0x2e1655[_0x30e8('0x23')]=_0x3e9cdb;if(_0x5df2ba[_0x30e8('0x3b')][_0x30e8('0x4d')]){_0x59ed11[_0x30e8('0x51')]=[{'all':!![]}];}return db[_0x30e8('0x63')]['findAll'](_0x59ed11);})['then'](function(_0x18f58e){_0x2e1655[_0x30e8('0x65')]=_0x18f58e;return _0x2e1655;});}})['then'](respondWithFilteredResult(_0x2bbf50,_0x59ed11))[_0x30e8('0x4f')](handleError(_0x2bbf50,null));};exports[_0x30e8('0x66')]=function(_0x57b1d3,_0x414dd9,_0x13294e){var _0x5aa6dc={'raw':!![],'where':{}};var _0x55c4c8={};var _0x317589={'count':0x0,'rows':[]};return db[_0x30e8('0x38')]['findOne']({'where':{'id':_0x57b1d3['params']['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x414dd9,null))[_0x30e8('0x29')](function(_0x5114da){if(_0x5114da){_0x55c4c8[_0x30e8('0x40')]=_['keys'](db[_0x30e8('0x67')][_0x30e8('0x39')]);_0x55c4c8[_0x30e8('0x3b')]=_[_0x30e8('0x3c')](_0x57b1d3[_0x30e8('0x3b')]);_0x55c4c8[_0x30e8('0x3d')]=_['intersection'](_0x55c4c8[_0x30e8('0x40')],_0x55c4c8[_0x30e8('0x3b')]);_0x5aa6dc[_0x30e8('0x3f')]=_['intersection'](_0x55c4c8[_0x30e8('0x40')],qs['fields'](_0x57b1d3[_0x30e8('0x3b')][_0x30e8('0x41')]));_0x5aa6dc['attributes']=_0x5aa6dc[_0x30e8('0x3f')][_0x30e8('0x42')]?_0x5aa6dc[_0x30e8('0x3f')]:_0x55c4c8['model'];if(!_0x57b1d3['query'][_0x30e8('0x43')](_0x30e8('0x44'))){_0x5aa6dc[_0x30e8('0x21')]=qs['limit'](_0x57b1d3[_0x30e8('0x3b')][_0x30e8('0x21')]);_0x5aa6dc[_0x30e8('0x20')]=qs[_0x30e8('0x20')](_0x57b1d3['query'][_0x30e8('0x20')]);}_0x5aa6dc[_0x30e8('0x45')]=qs['sort'](_0x57b1d3['query'][_0x30e8('0x46')]);_0x5aa6dc[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_['pick'](_0x57b1d3[_0x30e8('0x3b')],_0x55c4c8[_0x30e8('0x3d')]));_0x5aa6dc[_0x30e8('0x47')][_0x30e8('0x64')]=_0x5114da['id'];if(_0x57b1d3['query'][_0x30e8('0x49')]){_0x5aa6dc[_0x30e8('0x47')]=_['merge'](_0x5aa6dc[_0x30e8('0x47')],{'$or':_[_0x30e8('0x2f')](_0x5aa6dc[_0x30e8('0x3f')],function(_0x53afbb){var _0x44d5eb={};_0x44d5eb[_0x53afbb]={'$like':'%'+_0x57b1d3[_0x30e8('0x3b')][_0x30e8('0x49')]+'%'};return _0x44d5eb;})});}_0x5aa6dc=_[_0x30e8('0x4a')]({},_0x5aa6dc,_0x57b1d3[_0x30e8('0x4c')]);return db[_0x30e8('0x67')][_0x30e8('0x23')]({'where':_0x5aa6dc[_0x30e8('0x47')]})[_0x30e8('0x29')](function(_0x492ae7){_0x317589[_0x30e8('0x23')]=_0x492ae7;if(_0x57b1d3[_0x30e8('0x3b')][_0x30e8('0x4d')]){_0x5aa6dc['include']=[{'all':!![]}];}return db[_0x30e8('0x67')][_0x30e8('0x4e')](_0x5aa6dc);})[_0x30e8('0x29')](function(_0x3f9e61){_0x317589[_0x30e8('0x65')]=_0x3f9e61;return _0x317589;});}})[_0x30e8('0x29')](respondWithFilteredResult(_0x414dd9,_0x5aa6dc))[_0x30e8('0x4f')](handleError(_0x414dd9,null));};exports[_0x30e8('0x68')]=function(_0x5423ec,_0x17daee,_0x2f0b02){var _0x18f41c={'raw':!![],'where':{}};var _0x14785b={};var _0x37b206={'count':0x0,'rows':[]};return db[_0x30e8('0x38')][_0x30e8('0x69')]({'where':{'id':_0x5423ec[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x17daee,null))['then'](function(_0x13ab57){if(_0x13ab57){_0x14785b[_0x30e8('0x40')]=_[_0x30e8('0x3c')](db[_0x30e8('0x6a')][_0x30e8('0x39')]);_0x14785b[_0x30e8('0x3b')]=_[_0x30e8('0x3c')](_0x5423ec[_0x30e8('0x3b')]);_0x14785b['filters']=_['intersection'](_0x14785b[_0x30e8('0x40')],_0x14785b[_0x30e8('0x3b')]);_0x18f41c[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x14785b[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x5423ec[_0x30e8('0x3b')]['fields']));_0x18f41c[_0x30e8('0x3f')]=_0x18f41c[_0x30e8('0x3f')][_0x30e8('0x42')]?_0x18f41c[_0x30e8('0x3f')]:_0x14785b[_0x30e8('0x40')];if(!_0x5423ec['query']['hasOwnProperty'](_0x30e8('0x44'))){_0x18f41c[_0x30e8('0x21')]=qs[_0x30e8('0x21')](_0x5423ec[_0x30e8('0x3b')][_0x30e8('0x21')]);_0x18f41c[_0x30e8('0x20')]=qs[_0x30e8('0x20')](_0x5423ec['query'][_0x30e8('0x20')]);}_0x18f41c['order']=qs[_0x30e8('0x46')](_0x5423ec['query'][_0x30e8('0x46')]);_0x18f41c[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_['pick'](_0x5423ec[_0x30e8('0x3b')],_0x14785b[_0x30e8('0x3d')]));_0x18f41c[_0x30e8('0x47')][_0x30e8('0x64')]=_0x13ab57['id'];if(_0x5423ec[_0x30e8('0x3b')][_0x30e8('0x49')]){_0x18f41c['where']=_[_0x30e8('0x4a')](_0x18f41c[_0x30e8('0x47')],{'$or':_['map'](_0x18f41c[_0x30e8('0x3f')],function(_0x12d202){var _0x4d0a16={};_0x4d0a16[_0x12d202]={'$like':'%'+_0x5423ec['query'][_0x30e8('0x49')]+'%'};return _0x4d0a16;})});}_0x18f41c=_[_0x30e8('0x4a')]({},_0x18f41c,_0x5423ec[_0x30e8('0x4c')]);return db[_0x30e8('0x6a')][_0x30e8('0x23')]({'where':_0x18f41c[_0x30e8('0x47')]})[_0x30e8('0x29')](function(_0x261a19){_0x37b206[_0x30e8('0x23')]=_0x261a19;if(_0x5423ec[_0x30e8('0x3b')]['includeAll']){_0x18f41c[_0x30e8('0x51')]=[{'all':!![]}];}return db[_0x30e8('0x6a')][_0x30e8('0x4e')](_0x18f41c);})[_0x30e8('0x29')](function(_0x53fcbf){_0x37b206[_0x30e8('0x65')]=_0x53fcbf;return _0x37b206;});}})[_0x30e8('0x29')](respondWithFilteredResult(_0x17daee,_0x18f41c))[_0x30e8('0x4f')](handleError(_0x17daee,null));};exports[_0x30e8('0x6b')]=function(_0x5bfec1,_0x2e4f1e,_0x3cdb00){var _0x1b5a46={'raw':!![],'where':{}};var _0x269a45={};var _0x3d6aeb={'count':0x0,'rows':[]};return db[_0x30e8('0x38')][_0x30e8('0x69')]({'where':{'id':_0x5bfec1['params']['id']}})['then'](handleEntityNotFound(_0x2e4f1e,null))[_0x30e8('0x29')](function(_0x41e48b){if(_0x41e48b){_0x269a45[_0x30e8('0x40')]=_[_0x30e8('0x3c')](db[_0x30e8('0x6c')][_0x30e8('0x39')]);_0x269a45['query']=_[_0x30e8('0x3c')](_0x5bfec1[_0x30e8('0x3b')]);_0x269a45[_0x30e8('0x3d')]=_[_0x30e8('0x3e')](_0x269a45[_0x30e8('0x40')],_0x269a45[_0x30e8('0x3b')]);_0x1b5a46[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x269a45[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x5bfec1[_0x30e8('0x3b')][_0x30e8('0x41')]));_0x1b5a46['attributes']=_0x1b5a46['attributes']['length']?_0x1b5a46[_0x30e8('0x3f')]:_0x269a45[_0x30e8('0x40')];if(!_0x5bfec1[_0x30e8('0x3b')]['hasOwnProperty'](_0x30e8('0x44'))){_0x1b5a46[_0x30e8('0x21')]=qs[_0x30e8('0x21')](_0x5bfec1[_0x30e8('0x3b')][_0x30e8('0x21')]);_0x1b5a46[_0x30e8('0x20')]=qs[_0x30e8('0x20')](_0x5bfec1[_0x30e8('0x3b')][_0x30e8('0x20')]);}_0x1b5a46[_0x30e8('0x45')]=qs[_0x30e8('0x46')](_0x5bfec1[_0x30e8('0x3b')]['sort']);_0x1b5a46[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_[_0x30e8('0x48')](_0x5bfec1[_0x30e8('0x3b')],_0x269a45[_0x30e8('0x3d')]));_0x1b5a46[_0x30e8('0x47')][_0x30e8('0x64')]=_0x41e48b['id'];if(_0x5bfec1[_0x30e8('0x3b')][_0x30e8('0x49')]){_0x1b5a46['where']=_[_0x30e8('0x4a')](_0x1b5a46['where'],{'$or':_[_0x30e8('0x2f')](_0x1b5a46['attributes'],function(_0x22da92){var _0x798dd9={};_0x798dd9[_0x22da92]={'$like':'%'+_0x5bfec1['query'][_0x30e8('0x49')]+'%'};return _0x798dd9;})});}_0x1b5a46=_[_0x30e8('0x4a')]({},_0x1b5a46,_0x5bfec1[_0x30e8('0x4c')]);return db[_0x30e8('0x6c')][_0x30e8('0x23')]({'where':_0x1b5a46['where']})[_0x30e8('0x29')](function(_0x1d5b98){_0x3d6aeb['count']=_0x1d5b98;if(_0x5bfec1['query']['includeAll']){_0x1b5a46[_0x30e8('0x51')]=[{'all':!![]}];}return db['CmHopperBlack'][_0x30e8('0x4e')](_0x1b5a46);})[_0x30e8('0x29')](function(_0x1812c2){_0x3d6aeb['rows']=_0x1812c2;return _0x3d6aeb;});}})[_0x30e8('0x29')](respondWithFilteredResult(_0x2e4f1e,_0x1b5a46))['catch'](handleError(_0x2e4f1e,null));};exports[_0x30e8('0x6d')]=function(_0x4049a6,_0x160c8d,_0x4b59ab){var _0x560d68={};var _0x4c20b9={};var _0x2c5b7c;var _0x29035a;return db[_0x30e8('0x38')][_0x30e8('0x69')]({'where':{'id':_0x4049a6[_0x30e8('0x5e')]['id']}})['then'](handleEntityNotFound(_0x160c8d,null))['then'](function(_0x1a6656){if(_0x1a6656){_0x2c5b7c=_0x1a6656;_0x4c20b9['model']=_[_0x30e8('0x3c')](db['Team']['rawAttributes']);_0x4c20b9[_0x30e8('0x3b')]=_[_0x30e8('0x3c')](_0x4049a6[_0x30e8('0x3b')]);_0x4c20b9[_0x30e8('0x3d')]=_[_0x30e8('0x3e')](_0x4c20b9[_0x30e8('0x40')],_0x4c20b9['query']);_0x560d68[_0x30e8('0x3f')]=_['intersection'](_0x4c20b9[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x4049a6[_0x30e8('0x3b')]['fields']));_0x560d68[_0x30e8('0x3f')]=_0x560d68[_0x30e8('0x3f')][_0x30e8('0x42')]?_0x560d68[_0x30e8('0x3f')]:_0x4c20b9[_0x30e8('0x40')];_0x560d68['order']=qs['sort'](_0x4049a6[_0x30e8('0x3b')][_0x30e8('0x46')]);_0x560d68[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_[_0x30e8('0x48')](_0x4049a6['query'],_0x4c20b9[_0x30e8('0x3d')]));if(_0x4049a6[_0x30e8('0x3b')][_0x30e8('0x49')]){_0x560d68[_0x30e8('0x47')]=_[_0x30e8('0x4a')](_0x560d68[_0x30e8('0x47')],{'$or':_[_0x30e8('0x2f')](_0x560d68[_0x30e8('0x3f')],function(_0x276121){var _0x44f478={};_0x44f478[_0x276121]={'$like':'%'+_0x4049a6['query'][_0x30e8('0x49')]+'%'};return _0x44f478;})});}_0x560d68=_[_0x30e8('0x4a')]({},_0x560d68,_0x4049a6[_0x30e8('0x4c')]);return _0x2c5b7c[_0x30e8('0x6d')](_0x560d68);}})[_0x30e8('0x29')](function(_0x236e4e){if(_0x236e4e){_0x29035a=_0x236e4e[_0x30e8('0x42')];if(!_0x4049a6['query'][_0x30e8('0x43')]('nolimit')){_0x560d68[_0x30e8('0x21')]=qs[_0x30e8('0x21')](_0x4049a6[_0x30e8('0x3b')]['limit']);_0x560d68[_0x30e8('0x20')]=qs[_0x30e8('0x20')](_0x4049a6[_0x30e8('0x3b')][_0x30e8('0x20')]);}return _0x2c5b7c[_0x30e8('0x6d')](_0x560d68);}})['then'](function(_0x4841cd){if(_0x4841cd){return _0x4841cd?{'count':_0x29035a,'rows':_0x4841cd}:null;}})[_0x30e8('0x29')](respondWithResult(_0x160c8d,null))[_0x30e8('0x4f')](handleError(_0x160c8d,null));};exports[_0x30e8('0x6e')]=function(_0x438851,_0x3382c2,_0xe5f4f4){var _0x45134e=_0x438851[_0x30e8('0x53')][_0x30e8('0x6f')];var _0x3e6434=_[_0x30e8('0x2f')](_0x45134e,'id');return db[_0x30e8('0x70')][_0x30e8('0x4e')]({'where':{'id':_0x3e6434},'attributes':['id'],'include':[{'model':db[_0x30e8('0x71')],'as':_0x30e8('0x72'),'attributes':['id','name',_0x30e8('0x73'),_0x30e8('0x74'),'interface'],'raw':!![]}]})[_0x30e8('0x29')](function(_0x4783a9){if(_0x4783a9){var _0x48c025=_[_0x30e8('0x75')](_0x4783a9,function(_0x2be7e0){var _0x25b255=_0x2be7e0[_0x30e8('0x55')]({'plain':!![]});_0x25b255['Agents'][_0x30e8('0x76')](function(_0x55218d){_0x55218d[_0x30e8('0x77')]=_[_0x30e8('0x32')](_0x45134e,{'id':_0x25b255['id']})[_0x30e8('0x77')];});return _0x25b255[_0x30e8('0x72')];});return db[_0x30e8('0x38')][_0x30e8('0x32')]({'where':{'id':_0x438851[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](function(_0x52fa5a){return db['sequelize']['transaction'](function(_0x3abd03){return _0x52fa5a[_0x30e8('0x6e')](_0x3e6434,{'transaction':_0x3abd03})['then'](function(){return BPromise[_0x30e8('0x78')](_0x45134e,function(_0x403d44){return db['TeamVoiceQueue'][_0x30e8('0x79')]({'TeamId':_0x403d44['id'],'VoiceQueueId':_0x438851[_0x30e8('0x5e')]['id'],'penalty':_0x403d44[_0x30e8('0x77')]},{'transaction':_0x3abd03});});})[_0x30e8('0x29')](function(){return BPromise[_0x30e8('0x78')](_0x48c025,function(_0x38d550){return db['UserVoiceQueue'][_0x30e8('0x7a')]({'where':{'UserId':_0x38d550['id'],'VoiceQueueId':_0x438851[_0x30e8('0x5e')]['id']},'defaults':{'penalty':_0x38d550[_0x30e8('0x77')]},'transaction':_0x3abd03});});})[_0x30e8('0x29')](function(){return BPromise[_0x30e8('0x78')](_[_0x30e8('0x49')](_0x48c025,{'online':!![]}),function(_0x40e014){return db['UserVoiceQueueRt'][_0x30e8('0x79')]({'membername':_0x40e014[_0x30e8('0x33')],'UserId':_0x40e014['id'],'queue_name':_0x52fa5a[_0x30e8('0x33')],'VoiceQueueId':_0x52fa5a['id'],'interface':_['isNil'](_0x40e014[_0x30e8('0x7b')])?util[_0x30e8('0x7c')](_0x30e8('0x7d'),_0x40e014[_0x30e8('0x33')]):_0x40e014[_0x30e8('0x7b')],'paused':_0x40e014[_0x30e8('0x74')]||![],'penalty':_0x40e014[_0x30e8('0x77')]},{'transaction':_0x3abd03});});})[_0x30e8('0x29')](function(){_0x48c025[_0x30e8('0x76')](function(_0x284a8e){socket[_0x30e8('0x7e')](_0x30e8('0x7f'),{'UserId':_0x284a8e['id'],'VoiceQueueId':_0x52fa5a['id']});});});});});}})[_0x30e8('0x29')](respondWithStatusCode(_0x3382c2,null))[_0x30e8('0x4f')](handleError(_0x3382c2,null));};exports['removeTeams']=function(_0x429d75,_0x12fd98,_0x3f504a){return db[_0x30e8('0x70')][_0x30e8('0x4e')]({'where':{'id':_0x429d75['query'][_0x30e8('0x80')]},'attributes':['id'],'include':[{'model':db[_0x30e8('0x71')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x30e8('0x29')](handleEntityNotFound(_0x12fd98,null))[_0x30e8('0x29')](function(_0x444859){var _0x4f510a=_['map'](_0x444859,'id');var _0x258cfd=[];var _0x52677d=[];var _0x567524=squel['select']();_0x567524[_0x30e8('0x81')](_0x30e8('0x82'))[_0x30e8('0x83')](_0x30e8('0x84'),'tq')[_0x30e8('0x85')](_0x30e8('0x86'),'ut',_0x30e8('0x87'))[_0x30e8('0x47')](_0x30e8('0x88'),_0x429d75[_0x30e8('0x5e')]['id']);for(var _0x2b49dc=0x0;_0x2b49dc<_0x444859[_0x30e8('0x42')];_0x2b49dc+=0x1){let _0x56ccfe=_0x444859[_0x2b49dc];for(var _0x2c6240=0x0;_0x2c6240<_0x56ccfe[_0x30e8('0x72')][_0x30e8('0x42')];_0x2c6240+=0x1){let _0x3d5a43=_0x56ccfe[_0x30e8('0x72')][_0x2c6240];var _0x3e729d=_0x567524[_0x30e8('0x5d')]();_0x3e729d['where'](_0x30e8('0x89'),_0x3d5a43['id']);_0x52677d[_0x30e8('0x8a')](db[_0x30e8('0x8b')][_0x30e8('0x3b')](_0x3e729d[_0x30e8('0x8c')](),{'type':db[_0x30e8('0x8b')][_0x30e8('0x8d')]['SELECT']})[_0x30e8('0x29')](function(_0x18d614){if(_0x18d614['length']===0x1){return _0x3d5a43['id'];}else{var _0x3b9604=_[_0x30e8('0x8e')](_[_0x30e8('0x2f')](_0x18d614,_0x30e8('0x8f')),function(_0x16606c){return _[_0x30e8('0x90')](_0x4f510a,_0x16606c);});if(_0x3b9604){return _0x3d5a43['id'];}}}));}}return BPromise['all'](_0x52677d)[_0x30e8('0x29')](function(_0x554272){_0x258cfd=_(_0x258cfd)[_0x30e8('0x91')](_0x554272)[_0x30e8('0x92')]()[_0x30e8('0x30')]();return db['VoiceQueue'][_0x30e8('0x32')]({'where':{'id':_0x429d75[_0x30e8('0x5e')]['id']}})['then'](function(_0x25bb71){return db[_0x30e8('0x8b')]['transaction'](function(_0x503190){return _0x25bb71['removeTeams'](_0x429d75[_0x30e8('0x3b')][_0x30e8('0x80')],{'transaction':_0x503190})[_0x30e8('0x29')](function(){if(!_[_0x30e8('0x93')](_0x258cfd)){return _0x25bb71[_0x30e8('0x94')](_0x258cfd,{'transaction':_0x503190})[_0x30e8('0x29')](function(){return db[_0x30e8('0x95')][_0x30e8('0x2a')]({'where':{'VoiceQueueId':_0x429d75[_0x30e8('0x5e')]['id'],'UserId':_0x258cfd},'transaction':_0x503190});});}})[_0x30e8('0x29')](function(){_0x258cfd[_0x30e8('0x76')](function(_0x2ccbb8){socket[_0x30e8('0x7e')]('userVoiceQueue:remove',{'UserId':_0x2ccbb8,'VoiceQueueId':_0x25bb71['id']});});});});});});})[_0x30e8('0x29')](respondWithStatusCode(_0x12fd98,null))['catch'](handleError(_0x12fd98,null));};exports['addAgents']=function(_0x557634,_0x475c66,_0x44bea4){var _0x51c2a6,_0xc3abd1;return db[_0x30e8('0x38')][_0x30e8('0x32')]({'where':{'id':_0x557634[_0x30e8('0x5e')]['id']}})['then'](handleEntityNotFound(_0x475c66,null))[_0x30e8('0x29')](function(_0x224734){if(_0x224734){_0xc3abd1=_0x224734;return _0x224734[_0x30e8('0x96')](_0x557634[_0x30e8('0x53')]['ids'],_[_0x30e8('0x97')](_0x557634['body'],[_0x30e8('0x80'),'id'])||{})[_0x30e8('0x98')](function(_0x5cfede){for(var _0x403438=0x0;_0x403438<_0x557634[_0x30e8('0x53')][_0x30e8('0x80')]['length'];_0x403438+=0x1){socket[_0x30e8('0x7e')](_0x30e8('0x7f'),{'UserId':Number(_0x557634['body'][_0x30e8('0x80')][_0x403438]),'VoiceQueueId':Number(_0x557634[_0x30e8('0x5e')]['id'])});}return _0x5cfede;});}})[_0x30e8('0x29')](function(_0x4142e6){_0x51c2a6=_0x4142e6||[];if(_0xc3abd1){return db[_0x30e8('0x71')][_0x30e8('0x4e')]({'where':{'id':_0x557634[_0x30e8('0x53')][_0x30e8('0x80')]},'attributes':['id',_0x30e8('0x33'),_0x30e8('0x73'),_0x30e8('0x74'),_0x30e8('0x7b')],'raw':!![]});}})['then'](function(_0x170896){if(!_[_0x30e8('0x93')](_0x170896)){var _0x1bfa1b=[];for(var _0x22e543=0x0;_0x22e543<_0x170896[_0x30e8('0x42')];_0x22e543++){if(_0x170896[_0x22e543][_0x30e8('0x73')]){_0x1bfa1b[_0x30e8('0x8a')](db[_0x30e8('0x95')][_0x30e8('0x79')]({'membername':_0x170896[_0x22e543]['name'],'UserId':_0x170896[_0x22e543]['id'],'queue_name':_0xc3abd1[_0x30e8('0x33')],'VoiceQueueId':_0xc3abd1['id'],'interface':_['isNil'](_0x170896[_0x22e543]['interface'])?util[_0x30e8('0x7c')](_0x30e8('0x7d'),_0x170896[_0x22e543]['name']):_0x170896[_0x22e543][_0x30e8('0x7b')],'paused':_0x170896[_0x22e543][_0x30e8('0x74')]||![],'penalty':_0x557634[_0x30e8('0x53')]['penalty']||0x0}));}}return BPromise['all'](_0x1bfa1b);}})[_0x30e8('0x29')](function(){return _0x51c2a6;})['then'](respondWithResult(_0x475c66,null))[_0x30e8('0x4f')](handleError(_0x475c66,null));};exports[_0x30e8('0x94')]=function(_0x3c56cd,_0x445fc9,_0x82af59){return db[_0x30e8('0x38')][_0x30e8('0x32')]({'where':{'id':_0x3c56cd[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x445fc9,null))[_0x30e8('0x29')](function(_0x995918){if(_0x995918){return _0x995918[_0x30e8('0x94')](_0x3c56cd[_0x30e8('0x3b')][_0x30e8('0x80')])['then'](function(){if(_['isArray'](_0x3c56cd['query']['ids'])){for(var _0x420c6c=0x0;_0x420c6c<_0x3c56cd[_0x30e8('0x3b')][_0x30e8('0x80')][_0x30e8('0x42')];_0x420c6c+=0x1){socket[_0x30e8('0x7e')](_0x30e8('0x99'),{'UserId':Number(_0x3c56cd[_0x30e8('0x3b')][_0x30e8('0x80')][_0x420c6c]),'VoiceQueueId':Number(_0x3c56cd[_0x30e8('0x5e')]['id'])});}}else{socket[_0x30e8('0x7e')](_0x30e8('0x99'),{'UserId':Number(_0x3c56cd[_0x30e8('0x3b')][_0x30e8('0x80')]),'VoiceQueueId':Number(_0x3c56cd[_0x30e8('0x5e')]['id'])});}});}})[_0x30e8('0x29')](function(_0x4c8e01){return db[_0x30e8('0x95')][_0x30e8('0x2a')]({'where':{'VoiceQueueId':_0x3c56cd[_0x30e8('0x5e')]['id'],'UserId':_0x3c56cd['query']['ids']}})['then'](function(){return _0x4c8e01;});})[_0x30e8('0x29')](respondWithStatusCode(_0x445fc9,null))[_0x30e8('0x4f')](handleError(_0x445fc9,null));};exports['getAgents']=function(_0x50bdd8,_0x5ed7ef,_0x32a9ec){var _0x451a75={};var _0x2e5a09={};var _0x2e8efe;var _0x224edb;return db[_0x30e8('0x38')][_0x30e8('0x69')]({'where':{'id':_0x50bdd8['params']['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x5ed7ef,null))[_0x30e8('0x29')](function(_0x70f010){if(_0x70f010){_0x2e8efe=_0x70f010;_0x2e5a09[_0x30e8('0x40')]=_['keys'](db[_0x30e8('0x71')]['rawAttributes']);_0x2e5a09['query']=_['keys'](_0x50bdd8[_0x30e8('0x3b')]);_0x2e5a09['filters']=_['intersection'](_0x2e5a09['model'],_0x2e5a09[_0x30e8('0x3b')]);_0x451a75[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x2e5a09[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x50bdd8[_0x30e8('0x3b')]['fields']));_0x451a75[_0x30e8('0x3f')]=_0x451a75[_0x30e8('0x3f')][_0x30e8('0x42')]?_0x451a75[_0x30e8('0x3f')]:_0x2e5a09[_0x30e8('0x40')];_0x451a75[_0x30e8('0x45')]=qs[_0x30e8('0x46')](_0x50bdd8[_0x30e8('0x3b')][_0x30e8('0x46')]);_0x451a75[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_[_0x30e8('0x48')](_0x50bdd8[_0x30e8('0x3b')],_0x2e5a09[_0x30e8('0x3d')]));if(_0x50bdd8[_0x30e8('0x3b')][_0x30e8('0x49')]){_0x451a75[_0x30e8('0x47')]=_[_0x30e8('0x4a')](_0x451a75[_0x30e8('0x47')],{'$or':_[_0x30e8('0x2f')](_0x451a75[_0x30e8('0x3f')],function(_0x2e9281){var _0x42e251={};_0x42e251[_0x2e9281]={'$like':'%'+_0x50bdd8[_0x30e8('0x3b')][_0x30e8('0x49')]+'%'};return _0x42e251;})});}_0x451a75=_['merge']({},_0x451a75,_0x50bdd8['options']);return _0x2e8efe['getAgents'](_0x451a75);}})[_0x30e8('0x29')](function(_0x5c64fe){if(_0x5c64fe){_0x224edb=_0x5c64fe[_0x30e8('0x42')];if(!_0x50bdd8['query'][_0x30e8('0x43')](_0x30e8('0x44'))){_0x451a75['limit']=qs[_0x30e8('0x21')](_0x50bdd8['query'][_0x30e8('0x21')]);_0x451a75[_0x30e8('0x20')]=qs[_0x30e8('0x20')](_0x50bdd8[_0x30e8('0x3b')][_0x30e8('0x20')]);}return _0x2e8efe[_0x30e8('0x9a')](_0x451a75);}})[_0x30e8('0x29')](function(_0x5c8be8){if(_0x5c8be8){return _0x5c8be8?{'count':_0x224edb,'rows':_0x5c8be8}:null;}})[_0x30e8('0x29')](respondWithResult(_0x5ed7ef,null))[_0x30e8('0x4f')](handleError(_0x5ed7ef,null));};exports[_0x30e8('0x9b')]=function(_0xf03f85,_0x58e1fd,_0x1037d3){var _0xa5252c={};var _0x59909c={};var _0x35604a;var _0x321ee1;return db[_0x30e8('0x38')][_0x30e8('0x69')]({'where':{'id':_0xf03f85[_0x30e8('0x5e')]['id']}})['then'](handleEntityNotFound(_0x58e1fd,null))[_0x30e8('0x29')](function(_0x335a42){if(_0x335a42){_0x35604a=_0x335a42;_0x59909c[_0x30e8('0x40')]=_[_0x30e8('0x3c')](db[_0x30e8('0x95')]['rawAttributes']);_0x59909c['query']=_[_0x30e8('0x3c')](_0xf03f85[_0x30e8('0x3b')]);_0x59909c[_0x30e8('0x3d')]=_[_0x30e8('0x3e')](_0x59909c['model'],_0x59909c[_0x30e8('0x3b')]);_0xa5252c[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x59909c[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0xf03f85[_0x30e8('0x3b')][_0x30e8('0x41')]));_0xa5252c[_0x30e8('0x3f')]=_0xa5252c[_0x30e8('0x3f')]['length']?_0xa5252c[_0x30e8('0x3f')]:_0x59909c[_0x30e8('0x40')];_0xa5252c[_0x30e8('0x45')]=qs[_0x30e8('0x46')](_0xf03f85[_0x30e8('0x3b')][_0x30e8('0x46')]);_0xa5252c[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_['pick'](_0xf03f85[_0x30e8('0x3b')],_0x59909c['filters']));if(_0xf03f85[_0x30e8('0x3b')][_0x30e8('0x49')]){_0xa5252c[_0x30e8('0x47')]=_[_0x30e8('0x4a')](_0xa5252c[_0x30e8('0x47')],{'$or':_[_0x30e8('0x2f')](_0xa5252c[_0x30e8('0x3f')],function(_0x583edd){var _0x289c99={};_0x289c99[_0x583edd]={'$like':'%'+_0xf03f85[_0x30e8('0x3b')]['filter']+'%'};return _0x289c99;})});}_0xa5252c=_[_0x30e8('0x4a')]({},_0xa5252c,_0xf03f85[_0x30e8('0x4c')]);return _0x35604a[_0x30e8('0x9b')](_0xa5252c);}})[_0x30e8('0x29')](function(_0x2e4dd2){if(_0x2e4dd2){_0x321ee1=_0x2e4dd2[_0x30e8('0x42')];if(!_0xf03f85[_0x30e8('0x3b')]['hasOwnProperty'](_0x30e8('0x44'))){_0xa5252c[_0x30e8('0x21')]=qs[_0x30e8('0x21')](_0xf03f85[_0x30e8('0x3b')][_0x30e8('0x21')]);_0xa5252c[_0x30e8('0x20')]=qs[_0x30e8('0x20')](_0xf03f85[_0x30e8('0x3b')][_0x30e8('0x20')]);}return _0x35604a[_0x30e8('0x9b')](_0xa5252c);}})[_0x30e8('0x29')](function(_0x4e1d10){return _0x4e1d10?{'count':_0x321ee1,'rows':_0x4e1d10}:null;})['then'](respondWithResult(_0x58e1fd,null))['catch'](handleError(_0x58e1fd,null));};exports['getLists']=function(_0x23d182,_0x38e96e,_0x317016){var _0x2eef6c={};var _0x373827={};var _0x624393;var _0x5df1be;return db['VoiceQueue'][_0x30e8('0x69')]({'where':{'id':_0x23d182[_0x30e8('0x5e')]['id']}})['then'](handleEntityNotFound(_0x38e96e,null))[_0x30e8('0x29')](function(_0x556f84){if(_0x556f84){_0x624393=_0x556f84;_0x373827[_0x30e8('0x40')]=_['keys'](db['CmList'][_0x30e8('0x39')]);_0x373827['query']=_[_0x30e8('0x3c')](_0x23d182[_0x30e8('0x3b')]);_0x373827[_0x30e8('0x3d')]=_[_0x30e8('0x3e')](_0x373827[_0x30e8('0x40')],_0x373827[_0x30e8('0x3b')]);_0x2eef6c[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x373827[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x23d182[_0x30e8('0x3b')][_0x30e8('0x41')]));_0x2eef6c[_0x30e8('0x3f')]=_0x2eef6c[_0x30e8('0x3f')]['length']?_0x2eef6c[_0x30e8('0x3f')]:_0x373827[_0x30e8('0x40')];_0x2eef6c[_0x30e8('0x45')]=qs[_0x30e8('0x46')](_0x23d182[_0x30e8('0x3b')][_0x30e8('0x46')]);_0x2eef6c[_0x30e8('0x47')]=qs['filters'](_['pick'](_0x23d182[_0x30e8('0x3b')],_0x373827[_0x30e8('0x3d')]));if(_0x23d182[_0x30e8('0x3b')][_0x30e8('0x49')]){_0x2eef6c['where']=_['merge'](_0x2eef6c[_0x30e8('0x47')],{'$or':_['map'](_0x2eef6c[_0x30e8('0x3f')],function(_0x1b4a21){var _0x30dea6={};_0x30dea6[_0x1b4a21]={'$like':'%'+_0x23d182[_0x30e8('0x3b')]['filter']+'%'};return _0x30dea6;})});}_0x2eef6c=_[_0x30e8('0x4a')]({},_0x2eef6c,_0x23d182[_0x30e8('0x4c')]);return _0x624393[_0x30e8('0x9c')](_0x2eef6c);}})['then'](function(_0x328c6b){if(_0x328c6b){_0x5df1be=_0x328c6b[_0x30e8('0x42')];if(!_0x23d182['query'][_0x30e8('0x43')](_0x30e8('0x44'))){_0x2eef6c[_0x30e8('0x21')]=qs[_0x30e8('0x21')](_0x23d182[_0x30e8('0x3b')][_0x30e8('0x21')]);_0x2eef6c[_0x30e8('0x20')]=qs[_0x30e8('0x20')](_0x23d182[_0x30e8('0x3b')][_0x30e8('0x20')]);}return _0x624393[_0x30e8('0x9c')](_0x2eef6c);}})[_0x30e8('0x29')](function(_0x58a089){if(_0x58a089){return _0x58a089?{'count':_0x5df1be,'rows':_0x58a089}:null;}})[_0x30e8('0x29')](respondWithResult(_0x38e96e,null))[_0x30e8('0x4f')](handleError(_0x38e96e,null));};exports[_0x30e8('0x9d')]=function(_0x537328,_0x2ac836,_0x40f807){var _0x37ebb1,_0x3136e7;return db[_0x30e8('0x38')]['find']({'where':{'id':_0x537328['params']['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x2ac836,null))[_0x30e8('0x29')](function(_0x54a98d){if(_0x54a98d){_0x3136e7=_0x54a98d;return _0x54a98d[_0x30e8('0x9d')](_0x537328[_0x30e8('0x53')]['ids'],_[_0x30e8('0x97')](_0x537328[_0x30e8('0x53')],[_0x30e8('0x80'),'id'])||{});}return null;})[_0x30e8('0x98')](function(_0x5a6837){var _0x44eb46;_0x37ebb1=_0x5a6837||[];var _0x207d54=[];if(_0x5a6837){for(var _0x45957f=0x0;_0x45957f<_0x5a6837['length'];_0x45957f+=0x1){var _0x5d1d09=_0x5a6837[_0x45957f][_0x30e8('0x55')]({'plain':!![]});_0x3136e7[_0x30e8('0x9e')]=_0x537328[_0x30e8('0x53')]['dialCheckDuplicateType']?_0x537328[_0x30e8('0x53')][_0x30e8('0x9e')]:_0x3136e7[_0x30e8('0x9e')];switch(_0x3136e7[_0x30e8('0x9e')]){case _0x30e8('0x9f'):_0x44eb46=squel[_0x30e8('0xa0')]()[_0x30e8('0xa1')](_0x30e8('0xa2'))[_0x30e8('0xa3')]([_0x30e8('0xa4'),'scheduledAt',_0x30e8('0xa5'),'ListId','VoiceQueueId',_0x30e8('0x5f'),_0x30e8('0x60')],squel['select']()['field'](_0x30e8('0xa4'),_0x30e8('0xa4'))[_0x30e8('0x81')]('NOW()','scheduledAt')[_0x30e8('0x81')]('id',_0x30e8('0xa5'))[_0x30e8('0x81')](_0x5d1d09[_0x30e8('0xa6')][_0x30e8('0x8c')](),_0x30e8('0xa7'))[_0x30e8('0x81')](_0x537328[_0x30e8('0x5e')]['id'][_0x30e8('0x8c')](),_0x30e8('0x64'))[_0x30e8('0x81')](_0x30e8('0xa8'),_0x30e8('0x5f'))[_0x30e8('0x81')]('NOW()',_0x30e8('0x60'))['from'](_0x30e8('0xa9'))[_0x30e8('0x47')](_0x30e8('0xaa'))[_0x30e8('0x47')](_0x30e8('0xab'),_0x5d1d09[_0x30e8('0xa6')][_0x30e8('0x8c')]())[_0x30e8('0x47')](_0x30e8('0xac'))[_0x30e8('0x47')](_0x30e8('0xad'),squel[_0x30e8('0xae')]()['field'](_0x30e8('0xaf'))[_0x30e8('0x83')]('cm_hopper_final')[_0x30e8('0x47')]('VoiceQueueId\x20=\x20?',_0x537328[_0x30e8('0x5e')]['id'][_0x30e8('0x8c')]()))[_0x30e8('0x47')](_0x30e8('0xad'),squel[_0x30e8('0xae')]()[_0x30e8('0x81')]('COALESCE(phone,\x27\x27)')[_0x30e8('0x83')](_0x30e8('0xa2'))[_0x30e8('0x47')](_0x30e8('0x88'),_0x537328[_0x30e8('0x5e')]['id'][_0x30e8('0x8c')]())))[_0x30e8('0x8c')]();break;case _0x30e8('0xb0'):_0x44eb46=squel[_0x30e8('0xa0')]()[_0x30e8('0xa1')](_0x30e8('0xa2'))[_0x30e8('0xa3')](['phone','scheduledAt',_0x30e8('0xa5'),_0x30e8('0xa7'),_0x30e8('0x64'),'createdAt',_0x30e8('0x60')],squel['select']()[_0x30e8('0x81')]('phone',_0x30e8('0xa4'))[_0x30e8('0x81')](_0x30e8('0xa8'),_0x30e8('0xb1'))[_0x30e8('0x81')]('id',_0x30e8('0xa5'))[_0x30e8('0x81')](_0x5d1d09[_0x30e8('0xa6')][_0x30e8('0x8c')](),_0x30e8('0xa7'))[_0x30e8('0x81')](_0x537328[_0x30e8('0x5e')]['id'][_0x30e8('0x8c')](),'VoiceQueueId')['field'](_0x30e8('0xa8'),_0x30e8('0x5f'))[_0x30e8('0x81')]('NOW()','updatedAt')['from'](_0x30e8('0xa9'))[_0x30e8('0x47')](_0x30e8('0xaa'))[_0x30e8('0x47')](_0x30e8('0xab'),_0x5d1d09[_0x30e8('0xa6')][_0x30e8('0x8c')]())[_0x30e8('0x47')](_0x30e8('0xac'))[_0x30e8('0x47')](_0x30e8('0xad'),squel[_0x30e8('0xae')]()['field'](_0x30e8('0xb2'))[_0x30e8('0x83')]('cm_hopper')['where'](_0x30e8('0x88'),_0x537328['params']['id'][_0x30e8('0x8c')]())))[_0x30e8('0x8c')]();break;default:_0x44eb46=squel[_0x30e8('0xa0')]()[_0x30e8('0xa1')](_0x30e8('0xa2'))[_0x30e8('0xa3')](['phone','scheduledAt',_0x30e8('0xa5'),_0x30e8('0xa7'),_0x30e8('0x64'),_0x30e8('0x5f'),'updatedAt'],squel[_0x30e8('0xae')]()[_0x30e8('0x81')](_0x30e8('0xa4'),'phone')['field'](_0x30e8('0xa8'),_0x30e8('0xb1'))[_0x30e8('0x81')]('id','ContactId')[_0x30e8('0x81')](_0x5d1d09[_0x30e8('0xa6')][_0x30e8('0x8c')](),'ListId')['field'](_0x537328[_0x30e8('0x5e')]['id'][_0x30e8('0x8c')](),_0x30e8('0x64'))[_0x30e8('0x81')](_0x30e8('0xa8'),_0x30e8('0x5f'))['field'](_0x30e8('0xa8'),_0x30e8('0x60'))[_0x30e8('0x83')]('cm_contacts')['where']('deletedAt\x20IS\x20NULL')['where'](_0x30e8('0xab'),_0x5d1d09[_0x30e8('0xa6')][_0x30e8('0x8c')]())[_0x30e8('0x47')](_0x30e8('0xac')))[_0x30e8('0x8c')]();}_0x207d54[_0x30e8('0x8a')](db[_0x30e8('0x8b')][_0x30e8('0x3b')](_0x44eb46));}return BPromise[_0x30e8('0xb3')](_0x207d54);}})[_0x30e8('0x29')](function(){return _0x37ebb1;})[_0x30e8('0x29')](respondWithResult(_0x2ac836,null))[_0x30e8('0x4f')](handleError(_0x2ac836,null));};exports[_0x30e8('0xb4')]=function(_0x30547b,_0xe37a0d,_0x1acf30){return db['VoiceQueue'][_0x30e8('0x32')]({'where':{'id':_0x30547b[_0x30e8('0x5e')]['id']}})['then'](handleEntityNotFound(_0xe37a0d,null))[_0x30e8('0x29')](function(_0x30489c){if(_0x30489c){return _0x30489c[_0x30e8('0xb4')](_0x30547b[_0x30e8('0x3b')][_0x30e8('0x80')]);}})['then'](function(_0x92cf63){if(_0x92cf63){return db[_0x30e8('0x63')][_0x30e8('0x2a')]({'where':{'ListId':_0x30547b[_0x30e8('0x3b')]['ids'],'VoiceQueueId':_0x30547b[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](function(){return _0x92cf63;});}})['then'](respondWithStatusCode(_0xe37a0d,null))['catch'](handleError(_0xe37a0d,null));};exports[_0x30e8('0xb5')]=function(_0x4ca194,_0x4ee0e9,_0x21b8c9){var _0x41d530={};var _0x43e1a6={};var _0x413f78;var _0x18cc23;return db['VoiceQueue'][_0x30e8('0x69')]({'where':{'id':_0x4ca194[_0x30e8('0x5e')]['id']}})['then'](handleEntityNotFound(_0x4ee0e9,null))[_0x30e8('0x29')](function(_0x1a8ec9){if(_0x1a8ec9){_0x413f78=_0x1a8ec9;_0x43e1a6[_0x30e8('0x40')]=_[_0x30e8('0x3c')](db[_0x30e8('0xb6')][_0x30e8('0x39')]);_0x43e1a6[_0x30e8('0x3b')]=_['keys'](_0x4ca194['query']);_0x43e1a6[_0x30e8('0x3d')]=_[_0x30e8('0x3e')](_0x43e1a6[_0x30e8('0x40')],_0x43e1a6[_0x30e8('0x3b')]);_0x41d530[_0x30e8('0x3f')]=_[_0x30e8('0x3e')](_0x43e1a6[_0x30e8('0x40')],qs[_0x30e8('0x41')](_0x4ca194[_0x30e8('0x3b')]['fields']));_0x41d530[_0x30e8('0x3f')]=_0x41d530['attributes'][_0x30e8('0x42')]?_0x41d530[_0x30e8('0x3f')]:_0x43e1a6[_0x30e8('0x40')];_0x41d530[_0x30e8('0x45')]=qs[_0x30e8('0x46')](_0x4ca194[_0x30e8('0x3b')][_0x30e8('0x46')]);_0x41d530[_0x30e8('0x47')]=qs[_0x30e8('0x3d')](_['pick'](_0x4ca194[_0x30e8('0x3b')],_0x43e1a6[_0x30e8('0x3d')]));if(_0x4ca194[_0x30e8('0x3b')][_0x30e8('0x49')]){_0x41d530[_0x30e8('0x47')]=_['merge'](_0x41d530[_0x30e8('0x47')],{'$or':_[_0x30e8('0x2f')](_0x41d530['attributes'],function(_0x4e8f6f){var _0x3419e2={};_0x3419e2[_0x4e8f6f]={'$like':'%'+_0x4ca194[_0x30e8('0x3b')]['filter']+'%'};return _0x3419e2;})});}_0x41d530=_[_0x30e8('0x4a')]({},_0x41d530,_0x4ca194['options']);return _0x413f78[_0x30e8('0xb5')](_0x41d530);}})[_0x30e8('0x29')](function(_0x532352){if(_0x532352){_0x18cc23=_0x532352[_0x30e8('0x42')];if(!_0x4ca194[_0x30e8('0x3b')][_0x30e8('0x43')]('nolimit')){_0x41d530[_0x30e8('0x21')]=qs[_0x30e8('0x21')](_0x4ca194['query'][_0x30e8('0x21')]);_0x41d530['offset']=qs[_0x30e8('0x20')](_0x4ca194[_0x30e8('0x3b')][_0x30e8('0x20')]);}return _0x413f78[_0x30e8('0xb5')](_0x41d530);}})[_0x30e8('0x29')](function(_0x72bcc3){if(_0x72bcc3){return _0x72bcc3?{'count':_0x18cc23,'rows':_0x72bcc3}:null;}})[_0x30e8('0x29')](respondWithResult(_0x4ee0e9,null))['catch'](handleError(_0x4ee0e9,null));};exports['addBlackLists']=function(_0x280de5,_0x3e696e,_0x5da084){var _0x3293ed,_0x4d8603;return db['VoiceQueue'][_0x30e8('0x32')]({'where':{'id':_0x280de5[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x3e696e,null))[_0x30e8('0x29')](function(_0x346288){if(_0x346288){_0x4d8603=_0x346288;return _0x346288[_0x30e8('0xb7')](_0x280de5[_0x30e8('0x53')][_0x30e8('0x80')],_[_0x30e8('0x97')](_0x280de5[_0x30e8('0x53')],['ids','id'])||{});}return null;})['spread'](function(_0x294f92){var _0x20a00f;_0x3293ed=_0x294f92||[];var _0x2644de=[];if(_0x294f92){for(var _0x144cac=0x0;_0x144cac<_0x294f92['length'];_0x144cac+=0x1){var _0x333dc3=_0x294f92[_0x144cac]['get']({'plain':!![]});_0x20a00f=squel[_0x30e8('0xa0')]()['into'](_0x30e8('0xb8'))[_0x30e8('0xa3')]([_0x30e8('0xa4'),'ContactId',_0x30e8('0xa7'),_0x30e8('0x64'),_0x30e8('0x5f'),_0x30e8('0x60')],squel[_0x30e8('0xae')]()['field']('phone',_0x30e8('0xa4'))['field']('id','ContactId')[_0x30e8('0x81')](_0x333dc3['CmListId'][_0x30e8('0x8c')](),_0x30e8('0xa7'))[_0x30e8('0x81')](_0x280de5['params']['id'][_0x30e8('0x8c')](),_0x30e8('0x64'))[_0x30e8('0x81')](_0x30e8('0xa8'),_0x30e8('0x5f'))[_0x30e8('0x81')](_0x30e8('0xa8'),_0x30e8('0x60'))[_0x30e8('0x83')](_0x30e8('0xa9'))['where'](_0x30e8('0xaa'))[_0x30e8('0x47')](_0x30e8('0xab'),_0x333dc3['CmListId'][_0x30e8('0x8c')]())['where']('phone\x20IS\x20NOT\x20NULL'))[_0x30e8('0x8c')]();_0x2644de[_0x30e8('0x8a')](db[_0x30e8('0x8b')]['query'](_0x20a00f));}return BPromise['all'](_0x2644de);}})['then'](function(){return _0x3293ed;})['then'](respondWithResult(_0x3e696e,null))[_0x30e8('0x4f')](handleError(_0x3e696e,null));};exports['removeBlackLists']=function(_0x86e310,_0x1d7fc2,_0x3abae1){return db[_0x30e8('0x38')]['find']({'where':{'id':_0x86e310[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](handleEntityNotFound(_0x1d7fc2,null))[_0x30e8('0x29')](function(_0x4f804d){if(_0x4f804d){return _0x4f804d[_0x30e8('0xb9')](_0x86e310['query'][_0x30e8('0x80')]);}})[_0x30e8('0x29')](function(_0xdacc73){if(_0xdacc73){return db[_0x30e8('0x6c')][_0x30e8('0x2a')]({'where':{'ListId':_0x86e310[_0x30e8('0x3b')]['ids'],'VoiceQueueId':_0x86e310[_0x30e8('0x5e')]['id']}})[_0x30e8('0x29')](function(){return _0xdacc73;});}})[_0x30e8('0x29')](respondWithStatusCode(_0x1d7fc2,null))[_0x30e8('0x4f')](handleError(_0x1d7fc2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fdb=['setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x2bdfe6,_0x149413){var _0x594727=function(_0xc766d7){while(--_0xc766d7){_0x2bdfe6['push'](_0x2bdfe6['shift']());}};_0x594727(++_0x149413);}(_0x1fdb,0x1d3));var _0xb1fd=function(_0x2610f9,_0x1b0035){_0x2610f9=_0x2610f9-0x0;var _0x2f74ed=_0x1fdb[_0x2610f9];return _0x2f74ed;};'use strict';var EventEmitter=require(_0xb1fd('0x0'));var VoiceQueue=require('../../mysqldb')['db']['VoiceQueue'];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0xb1fd('0x1')](0x0);var events={'afterCreate':_0xb1fd('0x2'),'afterUpdate':_0xb1fd('0x3'),'afterDestroy':_0xb1fd('0x4')};function emitEvent(_0x4490ea){return function(_0x29fd85,_0x4adcbf,_0x355c85){VoiceQueueEvents['emit'](_0x4490ea+':'+_0x29fd85['id'],_0x29fd85);VoiceQueueEvents[_0xb1fd('0x5')](_0x4490ea,_0x29fd85);_0x355c85(null);};}for(var e in events){if(events[_0xb1fd('0x6')](e)){var event=events[e];VoiceQueue[_0xb1fd('0x7')](e,emitEvent(event));}}module[_0xb1fd('0x8')]=VoiceQueueEvents;
\ No newline at end of file
+var _0xb7f7=['../../mysqldb','VoiceQueue','setMaxListeners','emit','hasOwnProperty','hook','exports'];(function(_0x714227,_0x15307b){var _0x535f2a=function(_0x59670c){while(--_0x59670c){_0x714227['push'](_0x714227['shift']());}};_0x535f2a(++_0x15307b);}(_0xb7f7,0xee));var _0x7b7f=function(_0x2ce20d,_0x3403fa){_0x2ce20d=_0x2ce20d-0x0;var _0x21f577=_0xb7f7[_0x2ce20d];return _0x21f577;};'use strict';var EventEmitter=require('events');var VoiceQueue=require(_0x7b7f('0x0'))['db'][_0x7b7f('0x1')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0x7b7f('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x424b8b){return function(_0x4706c4,_0x351b06,_0x25a2d8){VoiceQueueEvents[_0x7b7f('0x3')](_0x424b8b+':'+_0x4706c4['id'],_0x4706c4);VoiceQueueEvents['emit'](_0x424b8b,_0x4706c4);_0x25a2d8(null);};}for(var e in events){if(events[_0x7b7f('0x4')](e)){var event=events[e];VoiceQueue[_0x7b7f('0x5')](e,emitEvent(event));}}module[_0x7b7f('0x6')]=VoiceQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['voice_queues','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./voiceQueue.attributes','exports','VoiceQueue'];(function(_0x11d74d,_0x2c1875){var _0x4f020c=function(_0xc92c8f){while(--_0xc92c8f){_0x11d74d['push'](_0x11d74d['shift']());}};_0x4f020c(++_0x2c1875);}(_0x34e8,0x12c));var _0x834e=function(_0x45c601,_0x312ade){_0x45c601=_0x45c601-0x0;var _0x3eca35=_0x34e8[_0x45c601];return _0x3eca35;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var logger=require(_0x834e('0x2'))(_0x834e('0x3'));var moment=require('moment');var BPromise=require(_0x834e('0x4'));var rp=require(_0x834e('0x5'));var fs=require('fs');var path=require(_0x834e('0x6'));var rimraf=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var attributes=require(_0x834e('0x9'));module[_0x834e('0xa')]=function(_0x4a2018,_0x858aa1){return _0x4a2018['define'](_0x834e('0xb'),attributes,{'tableName':_0x834e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xedd9=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./voiceQueue.attributes','exports','VoiceQueue','util'];(function(_0x1ffce6,_0x9f5f58){var _0x5b2e5b=function(_0x1b32a3){while(--_0x1b32a3){_0x1ffce6['push'](_0x1ffce6['shift']());}};_0x5b2e5b(++_0x9f5f58);}(_0xedd9,0xfc));var _0x9edd=function(_0x489948,_0x550de9){_0x489948=_0x489948-0x0;var _0x2920e6=_0xedd9[_0x489948];return _0x2920e6;};'use strict';var _=require('lodash');var util=require(_0x9edd('0x0'));var logger=require(_0x9edd('0x1'))(_0x9edd('0x2'));var moment=require(_0x9edd('0x3'));var BPromise=require(_0x9edd('0x4'));var rp=require(_0x9edd('0x5'));var fs=require('fs');var path=require(_0x9edd('0x6'));var rimraf=require(_0x9edd('0x7'));var config=require('../../config/environment');var attributes=require(_0x9edd('0x8'));module[_0x9edd('0x9')]=function(_0x268f9e,_0x34c1a7){return _0x268f9e['define'](_0x9edd('0xa'),attributes,{'tableName':'voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa1d=['moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./voiceQueue.socket','register','request','then','info','debug','request\x20sent','stringify','error','message','VoiceQueue,\x20%s,\x20%s','result','catch','GetVoiceQueue','VoiceQueue','findAll','raw','options','include','model','attributes','map','ShowVoiceQueue','find','util'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0xfa1d,0x1c7));var _0xdfa1=function(_0x1b745b,_0x3e2d40){_0x1b745b=_0x1b745b-0x0;var _0x120a9d=_0xfa1d[_0x1b745b];return _0x120a9d;};'use strict';var _=require('lodash');var util=require(_0xdfa1('0x0'));var moment=require(_0xdfa1('0x1'));var BPromise=require('bluebird');var rs=require(_0xdfa1('0x2'));var fs=require('fs');var Redis=require(_0xdfa1('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xdfa1('0x4'))(_0xdfa1('0x5'));var config=require(_0xdfa1('0x6'));var jayson=require(_0xdfa1('0x7'));var client=jayson[_0xdfa1('0x8')][_0xdfa1('0x9')]({'port':0x232a});config['redis']=_[_0xdfa1('0xa')](config[_0xdfa1('0xb')],{'host':_0xdfa1('0xc'),'port':0x18eb});var socket=require(_0xdfa1('0xd'))(new Redis(config[_0xdfa1('0xb')]));require(_0xdfa1('0xe'))[_0xdfa1('0xf')](socket);function respondWithRpcPromise(_0x1b8a24,_0x511ac1,_0x45b45b){return new BPromise(function(_0x1292e7,_0x1b8fda){return client[_0xdfa1('0x10')](_0x1b8a24,_0x45b45b)[_0xdfa1('0x11')](function(_0x2c1742){logger[_0xdfa1('0x12')]('VoiceQueue,\x20%s,\x20%s',_0x511ac1,'request\x20sent');logger[_0xdfa1('0x13')]('VoiceQueue,\x20%s,\x20%s,\x20%s',_0x511ac1,_0xdfa1('0x14'),JSON[_0xdfa1('0x15')](_0x2c1742));if(_0x2c1742[_0xdfa1('0x16')]){if(_0x2c1742[_0xdfa1('0x16')]['code']===0x1f4){logger[_0xdfa1('0x16')]('VoiceQueue,\x20%s,\x20%s',_0x511ac1,_0x2c1742[_0xdfa1('0x16')][_0xdfa1('0x17')]);return _0x1b8fda(_0x2c1742['error'][_0xdfa1('0x17')]);}logger['error']('VoiceQueue,\x20%s,\x20%s',_0x511ac1,_0x2c1742[_0xdfa1('0x16')][_0xdfa1('0x17')]);return _0x1292e7(_0x2c1742[_0xdfa1('0x16')][_0xdfa1('0x17')]);}else{logger[_0xdfa1('0x12')](_0xdfa1('0x18'),_0x511ac1,_0xdfa1('0x14'));_0x1292e7(_0x2c1742[_0xdfa1('0x19')][_0xdfa1('0x17')]);}})[_0xdfa1('0x1a')](function(_0x2f3fd1){logger[_0xdfa1('0x16')]('VoiceQueue,\x20%s,\x20%s',_0x511ac1,_0x2f3fd1);_0x1b8fda(_0x2f3fd1);});});}exports[_0xdfa1('0x1b')]=function(_0x174969){var _0x47c495=this;return new Promise(function(_0x38e30d,_0x4f2e24){return db[_0xdfa1('0x1c')][_0xdfa1('0x1d')]({'raw':_0x174969['options']?_0x174969['options'][_0xdfa1('0x1e')]===undefined?!![]:![]:!![],'where':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')]['where']||null:null,'attributes':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')]['attributes']||null:null,'limit':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')]['limit']||null:null,'include':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')][_0xdfa1('0x20')]?_['map'](_0x174969['options'][_0xdfa1('0x20')],function(_0x543b08){return{'model':db[_0x543b08[_0xdfa1('0x21')]],'as':_0x543b08['as'],'attributes':_0x543b08[_0xdfa1('0x22')],'include':_0x543b08[_0xdfa1('0x20')]?_[_0xdfa1('0x23')](_0x543b08[_0xdfa1('0x20')],function(_0x2ae303){return{'model':db[_0x2ae303[_0xdfa1('0x21')]],'as':_0x2ae303['as'],'attributes':_0x2ae303[_0xdfa1('0x22')],'include':_0x2ae303[_0xdfa1('0x20')]?_[_0xdfa1('0x23')](_0x2ae303[_0xdfa1('0x20')],function(_0x45c298){return{'model':db[_0x45c298['model']],'as':_0x45c298['as'],'attributes':_0x45c298['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x2055a3){logger[_0xdfa1('0x12')](_0xdfa1('0x1b'),_0x174969);logger[_0xdfa1('0x13')]('GetVoiceQueue',_0x174969,JSON[_0xdfa1('0x15')](_0x2055a3));_0x38e30d(_0x2055a3);})[_0xdfa1('0x1a')](function(_0x4f1b59){logger[_0xdfa1('0x16')](_0xdfa1('0x1b'),_0x4f1b59[_0xdfa1('0x17')],_0x174969);_0x4f2e24(_0x47c495[_0xdfa1('0x16')](0x1f4,_0x4f1b59['message']));});});};exports[_0xdfa1('0x24')]=function(_0x164dd2){var _0x4b50fe=this;return new Promise(function(_0x23b4d4,_0x290104){return db[_0xdfa1('0x1c')][_0xdfa1('0x25')]({'raw':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2[_0xdfa1('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2[_0xdfa1('0x1f')]['where']||null:null,'attributes':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2['options'][_0xdfa1('0x22')]||null:null,'include':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2[_0xdfa1('0x1f')]['include']?_[_0xdfa1('0x23')](_0x164dd2[_0xdfa1('0x1f')]['include'],function(_0x532d75){return{'model':db[_0x532d75['model']],'as':_0x532d75['as'],'attributes':_0x532d75['attributes'],'include':_0x532d75[_0xdfa1('0x20')]?_[_0xdfa1('0x23')](_0x532d75[_0xdfa1('0x20')],function(_0x2432fc){return{'model':db[_0x2432fc[_0xdfa1('0x21')]],'as':_0x2432fc['as'],'attributes':_0x2432fc[_0xdfa1('0x22')],'include':_0x2432fc[_0xdfa1('0x20')]?_['map'](_0x2432fc['include'],function(_0x1b172d){return{'model':db[_0x1b172d[_0xdfa1('0x21')]],'as':_0x1b172d['as'],'attributes':_0x1b172d[_0xdfa1('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3792c6){logger[_0xdfa1('0x12')](_0xdfa1('0x24'),_0x164dd2);logger[_0xdfa1('0x13')](_0xdfa1('0x24'),_0x164dd2,JSON[_0xdfa1('0x15')](_0x3792c6));_0x23b4d4(_0x3792c6);})['catch'](function(_0x3bf56d){logger['error']('ShowVoiceQueue',_0x3bf56d[_0xdfa1('0x17')],_0x164dd2);_0x290104(_0x4b50fe['error'](0x1f4,_0x3bf56d[_0xdfa1('0x17')]));});});};
\ No newline at end of file
+var _0x6ede=['../../config/utils','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./voiceQueue.socket','request','info','VoiceQueue,\x20%s,\x20%s','request\x20sent','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','GetVoiceQueue','VoiceQueue','findAll','options','raw','where','attributes','include','map','model','then','ShowVoiceQueue','find','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x399ce5,_0xb502f0){var _0x27a470=function(_0x269fc8){while(--_0x269fc8){_0x399ce5['push'](_0x399ce5['shift']());}};_0x27a470(++_0xb502f0);}(_0x6ede,0xc6));var _0xe6ed=function(_0x22093a,_0xa7acf1){_0x22093a=_0x22093a-0x0;var _0x2f4989=_0x6ede[_0x22093a];return _0x2f4989;};'use strict';var _=require(_0xe6ed('0x0'));var util=require(_0xe6ed('0x1'));var moment=require(_0xe6ed('0x2'));var BPromise=require(_0xe6ed('0x3'));var rs=require(_0xe6ed('0x4'));var fs=require('fs');var Redis=require(_0xe6ed('0x5'));var db=require(_0xe6ed('0x6'))['db'];var utils=require(_0xe6ed('0x7'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xe6ed('0x8'));var client=jayson[_0xe6ed('0x9')][_0xe6ed('0xa')]({'port':0x232a});config[_0xe6ed('0xb')]=_[_0xe6ed('0xc')](config['redis'],{'host':_0xe6ed('0xd'),'port':0x18eb});var socket=require(_0xe6ed('0xe'))(new Redis(config[_0xe6ed('0xb')]));require(_0xe6ed('0xf'))['register'](socket);function respondWithRpcPromise(_0x29a49c,_0x1f9c12,_0x2f27b4){return new BPromise(function(_0x3fdc2a,_0x4520fc){return client[_0xe6ed('0x10')](_0x29a49c,_0x2f27b4)['then'](function(_0x2eb1e5){logger[_0xe6ed('0x11')](_0xe6ed('0x12'),_0x1f9c12,_0xe6ed('0x13'));logger[_0xe6ed('0x14')](_0xe6ed('0x15'),_0x1f9c12,_0xe6ed('0x13'),JSON[_0xe6ed('0x16')](_0x2eb1e5));if(_0x2eb1e5['error']){if(_0x2eb1e5['error'][_0xe6ed('0x17')]===0x1f4){logger[_0xe6ed('0x18')](_0xe6ed('0x12'),_0x1f9c12,_0x2eb1e5[_0xe6ed('0x18')][_0xe6ed('0x19')]);return _0x4520fc(_0x2eb1e5[_0xe6ed('0x18')][_0xe6ed('0x19')]);}logger[_0xe6ed('0x18')]('VoiceQueue,\x20%s,\x20%s',_0x1f9c12,_0x2eb1e5['error'][_0xe6ed('0x19')]);return _0x3fdc2a(_0x2eb1e5[_0xe6ed('0x18')]['message']);}else{logger['info']('VoiceQueue,\x20%s,\x20%s',_0x1f9c12,_0xe6ed('0x13'));_0x3fdc2a(_0x2eb1e5[_0xe6ed('0x1a')][_0xe6ed('0x19')]);}})[_0xe6ed('0x1b')](function(_0x105db8){logger[_0xe6ed('0x18')](_0xe6ed('0x12'),_0x1f9c12,_0x105db8);_0x4520fc(_0x105db8);});});}exports[_0xe6ed('0x1c')]=function(_0x57298e){var _0x2271a0=this;return new Promise(function(_0x31296e,_0x2cdcc0){return db[_0xe6ed('0x1d')][_0xe6ed('0x1e')]({'raw':_0x57298e[_0xe6ed('0x1f')]?_0x57298e[_0xe6ed('0x1f')][_0xe6ed('0x20')]===undefined?!![]:![]:!![],'where':_0x57298e[_0xe6ed('0x1f')]?_0x57298e[_0xe6ed('0x1f')][_0xe6ed('0x21')]||null:null,'attributes':_0x57298e[_0xe6ed('0x1f')]?_0x57298e[_0xe6ed('0x1f')][_0xe6ed('0x22')]||null:null,'limit':_0x57298e[_0xe6ed('0x1f')]?_0x57298e[_0xe6ed('0x1f')]['limit']||null:null,'include':_0x57298e['options']?_0x57298e[_0xe6ed('0x1f')][_0xe6ed('0x23')]?_[_0xe6ed('0x24')](_0x57298e[_0xe6ed('0x1f')][_0xe6ed('0x23')],function(_0x52ef48){return{'model':db[_0x52ef48[_0xe6ed('0x25')]],'as':_0x52ef48['as'],'attributes':_0x52ef48[_0xe6ed('0x22')],'include':_0x52ef48[_0xe6ed('0x23')]?_['map'](_0x52ef48['include'],function(_0x1b43cf){return{'model':db[_0x1b43cf[_0xe6ed('0x25')]],'as':_0x1b43cf['as'],'attributes':_0x1b43cf[_0xe6ed('0x22')],'include':_0x1b43cf[_0xe6ed('0x23')]?_['map'](_0x1b43cf[_0xe6ed('0x23')],function(_0x56726b){return{'model':db[_0x56726b[_0xe6ed('0x25')]],'as':_0x56726b['as'],'attributes':_0x56726b[_0xe6ed('0x22')]};}):[]};}):[]};}):[]:[]})[_0xe6ed('0x26')](function(_0x437f43){logger['info'](_0xe6ed('0x1c'),_0x57298e);logger[_0xe6ed('0x14')](_0xe6ed('0x1c'),_0x57298e,JSON['stringify'](_0x437f43));_0x31296e(_0x437f43);})[_0xe6ed('0x1b')](function(_0x2e4aa1){logger['error'](_0xe6ed('0x1c'),_0x2e4aa1[_0xe6ed('0x19')],_0x57298e);_0x2cdcc0(_0x2271a0[_0xe6ed('0x18')](0x1f4,_0x2e4aa1['message']));});});};exports[_0xe6ed('0x27')]=function(_0x334a17){var _0x1bdebb=this;return new Promise(function(_0xbfb83d,_0x1e01bf){return db[_0xe6ed('0x1d')][_0xe6ed('0x28')]({'raw':_0x334a17[_0xe6ed('0x1f')]?_0x334a17[_0xe6ed('0x1f')][_0xe6ed('0x20')]===undefined?!![]:![]:!![],'where':_0x334a17[_0xe6ed('0x1f')]?_0x334a17['options']['where']||null:null,'attributes':_0x334a17[_0xe6ed('0x1f')]?_0x334a17[_0xe6ed('0x1f')][_0xe6ed('0x22')]||null:null,'include':_0x334a17[_0xe6ed('0x1f')]?_0x334a17['options']['include']?_[_0xe6ed('0x24')](_0x334a17['options'][_0xe6ed('0x23')],function(_0x3476f7){return{'model':db[_0x3476f7[_0xe6ed('0x25')]],'as':_0x3476f7['as'],'attributes':_0x3476f7['attributes'],'include':_0x3476f7[_0xe6ed('0x23')]?_['map'](_0x3476f7['include'],function(_0x5c261d){return{'model':db[_0x5c261d['model']],'as':_0x5c261d['as'],'attributes':_0x5c261d[_0xe6ed('0x22')],'include':_0x5c261d[_0xe6ed('0x23')]?_['map'](_0x5c261d[_0xe6ed('0x23')],function(_0x33b551){return{'model':db[_0x33b551['model']],'as':_0x33b551['as'],'attributes':_0x33b551['attributes']};}):[]};}):[]};}):[]:[]})[_0xe6ed('0x26')](function(_0x36d8b4){logger['info'](_0xe6ed('0x27'),_0x334a17);logger['debug']('ShowVoiceQueue',_0x334a17,JSON['stringify'](_0x36d8b4));_0xbfb83d(_0x36d8b4);})['catch'](function(_0xf91d86){logger[_0xe6ed('0x18')]('ShowVoiceQueue',_0xf91d86['message'],_0x334a17);_0x1e01bf(_0x1bdebb[_0xe6ed('0x18')](0x1f4,_0xf91d86['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8441=['voiceQueue:','./voiceQueue.events','save','remove','update','emit','removeListener','register','length'];(function(_0x3dd2aa,_0x12aaff){var _0x76e71a=function(_0x522e73){while(--_0x522e73){_0x3dd2aa['push'](_0x3dd2aa['shift']());}};_0x76e71a(++_0x12aaff);}(_0x8441,0x169));var _0x1844=function(_0x3a07d7,_0x310017){_0x3a07d7=_0x3a07d7-0x0;var _0x524afb=_0x8441[_0x3a07d7];return _0x524afb;};'use strict';var VoiceQueueEvents=require(_0x1844('0x0'));var events=[_0x1844('0x1'),_0x1844('0x2'),_0x1844('0x3')];function createListener(_0x14202f,_0x4c8db5){return function(_0x507d97){_0x4c8db5[_0x1844('0x4')](_0x14202f,_0x507d97);};}function removeListener(_0x2f7892,_0x2c6293){return function(){VoiceQueueEvents[_0x1844('0x5')](_0x2f7892,_0x2c6293);};}exports[_0x1844('0x6')]=function(_0x4c3e1c){for(var _0x505575=0x0,_0x362826=events[_0x1844('0x7')];_0x505575<_0x362826;_0x505575++){var _0x4e5273=events[_0x505575];var _0x266a47=createListener(_0x1844('0x8')+_0x4e5273,_0x4c3e1c);VoiceQueueEvents['on'](_0x4e5273,_0x266a47);}};
\ No newline at end of file
+var _0x1637=['update','emit','removeListener','length','voiceQueue:','./voiceQueue.events','save','remove'];(function(_0x5f5cce,_0x138cc5){var _0x705ecf=function(_0x28bc5d){while(--_0x28bc5d){_0x5f5cce['push'](_0x5f5cce['shift']());}};_0x705ecf(++_0x138cc5);}(_0x1637,0xbd));var _0x7163=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x1637[_0x13d07a];return _0x5ee0ee;};'use strict';var VoiceQueueEvents=require(_0x7163('0x0'));var events=[_0x7163('0x1'),_0x7163('0x2'),_0x7163('0x3')];function createListener(_0x384b38,_0x54b8e8){return function(_0x2ecc5e){_0x54b8e8[_0x7163('0x4')](_0x384b38,_0x2ecc5e);};}function removeListener(_0x3e3ff6,_0x5c4d64){return function(){VoiceQueueEvents[_0x7163('0x5')](_0x3e3ff6,_0x5c4d64);};}exports['register']=function(_0x121797){for(var _0x16fb20=0x0,_0x20abe8=events[_0x7163('0x6')];_0x16fb20<_0x20abe8;_0x16fb20++){var _0x5dd43f=events[_0x16fb20];var _0x42ad3a=createListener(_0x7163('0x7')+_0x5dd43f,_0x121797);VoiceQueueEvents['on'](_0x5dd43f,_0x42ad3a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd97b=['multer','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueueReport.controller','get','index','/describe','isAuthenticated','describe','/index','getVoiceQueuesReport','show','post','create','put','update','delete','exports'];(function(_0x725b8e,_0xc22b48){var _0x43ac45=function(_0x46bb4a){while(--_0x46bb4a){_0x725b8e['push'](_0x725b8e['shift']());}};_0x43ac45(++_0xc22b48);}(_0xd97b,0x1e4));var _0xbd97=function(_0x21a936,_0xb0790c){_0x21a936=_0x21a936-0x0;var _0x5746c8=_0xd97b[_0x21a936];return _0x5746c8;};'use strict';var multer=require(_0xbd97('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbd97('0x1'));var router=express[_0xbd97('0x2')]();var fs_extra=require(_0xbd97('0x3'));var auth=require(_0xbd97('0x4'));var interaction=require(_0xbd97('0x5'));var config=require(_0xbd97('0x6'));var controller=require(_0xbd97('0x7'));router[_0xbd97('0x8')]('/',auth['isAuthenticated'](),controller[_0xbd97('0x9')]);router[_0xbd97('0x8')](_0xbd97('0xa'),auth[_0xbd97('0xb')](),controller[_0xbd97('0xc')]);router[_0xbd97('0x8')](_0xbd97('0xd'),auth[_0xbd97('0xb')](),controller[_0xbd97('0xe')]);router[_0xbd97('0x8')]('/:id',auth[_0xbd97('0xb')](),controller[_0xbd97('0xf')]);router[_0xbd97('0x10')]('/',auth[_0xbd97('0xb')](),controller[_0xbd97('0x11')]);router[_0xbd97('0x12')]('/:id',auth[_0xbd97('0xb')](),controller[_0xbd97('0x13')]);router[_0xbd97('0x14')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xbd97('0x15')]=router;
\ No newline at end of file
+var _0x3d9c=['express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceQueueReport.controller','get','index','/describe','isAuthenticated','describe','/index','getVoiceQueuesReport','/:id','show','post','create','put','destroy','exports','util','path','connect-timeout'];(function(_0x3675db,_0x3a5668){var _0x5b0a5b=function(_0x5536a6){while(--_0x5536a6){_0x3675db['push'](_0x3675db['shift']());}};_0x5b0a5b(++_0x3a5668);}(_0x3d9c,0x111));var _0xc3d9=function(_0x4d67e7,_0x16a1a8){_0x4d67e7=_0x4d67e7-0x0;var _0x3c81b4=_0x3d9c[_0x4d67e7];return _0x3c81b4;};'use strict';var multer=require('multer');var util=require(_0xc3d9('0x0'));var path=require(_0xc3d9('0x1'));var timeout=require(_0xc3d9('0x2'));var express=require(_0xc3d9('0x3'));var router=express[_0xc3d9('0x4')]();var fs_extra=require(_0xc3d9('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xc3d9('0x6'));var config=require(_0xc3d9('0x7'));var controller=require(_0xc3d9('0x8'));router[_0xc3d9('0x9')]('/',auth['isAuthenticated'](),controller[_0xc3d9('0xa')]);router[_0xc3d9('0x9')](_0xc3d9('0xb'),auth[_0xc3d9('0xc')](),controller[_0xc3d9('0xd')]);router[_0xc3d9('0x9')](_0xc3d9('0xe'),auth[_0xc3d9('0xc')](),controller[_0xc3d9('0xf')]);router[_0xc3d9('0x9')](_0xc3d9('0x10'),auth['isAuthenticated'](),controller[_0xc3d9('0x11')]);router[_0xc3d9('0x12')]('/',auth[_0xc3d9('0xc')](),controller[_0xc3d9('0x13')]);router[_0xc3d9('0x14')]('/:id',auth[_0xc3d9('0xc')](),controller['update']);router['delete'](_0xc3d9('0x10'),auth[_0xc3d9('0xc')](),controller[_0xc3d9('0x15')]);module[_0xc3d9('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8ab=['moment','STRING','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds','setDataValue','queuecallerleaveAt','INTEGER','BOOLEAN','DATE','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','FORWARD,\x20BLIND,\x20ATTENDED'];(function(_0x404afb,_0x6e2ab2){var _0x19b697=function(_0x5bca8f){while(--_0x5bca8f){_0x404afb['push'](_0x404afb['shift']());}};_0x19b697(++_0x6e2ab2);}(_0xc8ab,0x10a));var _0xbc8a=function(_0x444ba8,_0x375704){_0x444ba8=_0x444ba8-0x0;var _0x325f47=_0xc8ab[_0x444ba8];return _0x325f47;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xbc8a('0x0'));module['exports']={'type':{'type':Sequelize[_0xbc8a('0x1')]},'uniqueid':{'type':Sequelize[_0xbc8a('0x1')]},'calleridnum':{'type':Sequelize[_0xbc8a('0x1')]},'calleridname':{'type':Sequelize[_0xbc8a('0x1')]},'queue':{'type':Sequelize[_0xbc8a('0x1')]},'queuecallerjoinAt':{'type':Sequelize['DATE']},'queuecallerleaveAt':{'type':Sequelize['DATE'],'set':function(_0xc5d90f){var _0x16a027=moment(_0xc5d90f);var _0x22400e=moment(this['getDataValue'](_0xbc8a('0x2')))[_0xbc8a('0x3')](_0xbc8a('0x4'));var _0x12ee09=_0x16a027[_0xbc8a('0x5')](_0x22400e,_0xbc8a('0x6'));this[_0xbc8a('0x7')](_0xbc8a('0x8'),_0xc5d90f);this[_0xbc8a('0x7')]('holdtime',_0x12ee09||null);}},'position':{'type':Sequelize[_0xbc8a('0x9')]},'count':{'type':Sequelize[_0xbc8a('0x9')]},'queuecallerabandon':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0xbc8a('0xb')]},'queuecallercomplete':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0xbc8a('0xb')]},'queuecallerexit':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize['DATE']},'queuecallerexitreason':{'type':Sequelize[_0xbc8a('0x1')],'comment':_0xbc8a('0xc')},'originalposition':{'type':Sequelize[_0xbc8a('0x9')]},'channel':{'type':Sequelize[_0xbc8a('0x1')]},'connectedlinenum':{'type':Sequelize[_0xbc8a('0x1')]},'connectedlinename':{'type':Sequelize[_0xbc8a('0x1')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xbc8a('0x1')]},'priority':{'type':Sequelize['STRING']},'holdtime':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize[_0xbc8a('0x9')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0xbc8a('0x1')]},'transfer':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0xbc8a('0xd')},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize[_0xbc8a('0x1')]},'disposition':{'type':Sequelize[_0xbc8a('0x1')]},'secondDisposition':{'type':Sequelize[_0xbc8a('0x1')]},'thirdDisposition':{'type':Sequelize[_0xbc8a('0x1')]},'queuecallerenterreason':{'type':Sequelize[_0xbc8a('0x9')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x5daa=['format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds','setDataValue','queuecallerleaveAt','holdtime','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','moment','exports','STRING','DATE','getDataValue','queuecallerjoinAt'];(function(_0x39e5a1,_0x3c80e5){var _0x29f7bf=function(_0x5d16a5){while(--_0x5d16a5){_0x39e5a1['push'](_0x39e5a1['shift']());}};_0x29f7bf(++_0x3c80e5);}(_0x5daa,0xe7));var _0xa5da=function(_0x28894d,_0x1232b6){_0x28894d=_0x28894d-0x0;var _0x4031be=_0x5daa[_0x28894d];return _0x4031be;};'use strict';var Sequelize=require(_0xa5da('0x0'));var moment=require(_0xa5da('0x1'));module[_0xa5da('0x2')]={'type':{'type':Sequelize[_0xa5da('0x3')]},'uniqueid':{'type':Sequelize[_0xa5da('0x3')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0xa5da('0x3')]},'queuecallerjoinAt':{'type':Sequelize['DATE']},'queuecallerleaveAt':{'type':Sequelize[_0xa5da('0x4')],'set':function(_0x15d192){var _0x4d3575=moment(_0x15d192);var _0x4e9c89=moment(this[_0xa5da('0x5')](_0xa5da('0x6')))[_0xa5da('0x7')](_0xa5da('0x8'));var _0x1f869e=_0x4d3575[_0xa5da('0x9')](_0x4e9c89,_0xa5da('0xa'));this[_0xa5da('0xb')](_0xa5da('0xc'),_0x15d192);this[_0xa5da('0xb')](_0xa5da('0xd'),_0x1f869e||null);}},'position':{'type':Sequelize[_0xa5da('0xe')]},'count':{'type':Sequelize[_0xa5da('0xe')]},'queuecallerabandon':{'type':Sequelize[_0xa5da('0xf')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0xa5da('0x4')]},'queuecallercomplete':{'type':Sequelize[_0xa5da('0xf')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0xa5da('0x4')]},'queuecallerexit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0xa5da('0x4')]},'queuecallerexitreason':{'type':Sequelize['STRING'],'comment':'COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT'},'originalposition':{'type':Sequelize[_0xa5da('0xe')]},'channel':{'type':Sequelize[_0xa5da('0x3')]},'connectedlinenum':{'type':Sequelize[_0xa5da('0x3')]},'connectedlinename':{'type':Sequelize[_0xa5da('0x3')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xa5da('0x3')]},'exten':{'type':Sequelize[_0xa5da('0x3')]},'priority':{'type':Sequelize[_0xa5da('0x3')]},'holdtime':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize[_0xa5da('0xe')],'defaultValue':0x0},'assigned':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize['STRING']},'transfer':{'type':Sequelize[_0xa5da('0xf')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0xa5da('0x3')],'comment':_0xa5da('0x10')},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xa5da('0x3')]},'queuecallerenterreason':{'type':Sequelize[_0xa5da('0xe')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3317=['where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','find','create','body','params','destroy','describe','getVoiceQueuesReport','rawAttributes','rows','eml-format','rimraf','zip-dir','request-promise','bluebird','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','sendStatus','status','end','json','offset','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','index','VoiceQueueReport','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x3317,0x67));var _0x7331=function(_0x59c301,_0x359c50){_0x59c301=_0x59c301-0x0;var _0x3866b9=_0x3317[_0x59c301];return _0x3866b9;};'use strict';var emlformat=require(_0x7331('0x0'));var rimraf=require(_0x7331('0x1'));var zipdir=require(_0x7331('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7331('0x3'));var moment=require('moment');var BPromise=require(_0x7331('0x4'));var Mustache=require('mustache');var util=require(_0x7331('0x5'));var path=require('path');var sox=require(_0x7331('0x6'));var csv=require(_0x7331('0x7'));var ejs=require(_0x7331('0x8'));var fs=require('fs');var fs_extra=require(_0x7331('0x9'));var _=require('lodash');var squel=require(_0x7331('0xa'));var crypto=require(_0x7331('0xb'));var jsforce=require(_0x7331('0xc'));var deskjs=require(_0x7331('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7331('0xe'));var Papa=require(_0x7331('0xf'));var Redis=require('ioredis');var authService=require(_0x7331('0x10'));var qs=require(_0x7331('0x11'));var as=require(_0x7331('0x12'));var hardwareService=require(_0x7331('0x13'));var logger=require(_0x7331('0x14'))(_0x7331('0x15'));var utils=require(_0x7331('0x16'));var config=require(_0x7331('0x17'));var licenseUtil=require(_0x7331('0x18'));var db=require(_0x7331('0x19'))['db'];config[_0x7331('0x1a')]=_['defaults'](config[_0x7331('0x1a')],{'host':_0x7331('0x1b'),'port':0x18eb});var socket=require(_0x7331('0x1c'))(new Redis(config[_0x7331('0x1a')]));require(_0x7331('0x1d'))['register'](socket);function respondWithStatusCode(_0x4e4fd6,_0x5e4e08){_0x5e4e08=_0x5e4e08||0xcc;return function(_0x59f6e3){if(_0x59f6e3){return _0x4e4fd6[_0x7331('0x1e')](_0x5e4e08);}return _0x4e4fd6[_0x7331('0x1f')](_0x5e4e08)[_0x7331('0x20')]();};}function respondWithResult(_0x42a3bd,_0x5f9afa){_0x5f9afa=_0x5f9afa||0xc8;return function(_0x5befdf){if(_0x5befdf){return _0x42a3bd[_0x7331('0x1f')](_0x5f9afa)[_0x7331('0x21')](_0x5befdf);}};}function respondWithFilteredResult(_0x204eb0,_0x189528){return function(_0x1d3934){if(_0x1d3934){var _0xb3306=typeof _0x189528[_0x7331('0x22')]==='undefined'&&typeof _0x189528['limit']==='undefined';var _0x52e63b=_0x1d3934[_0x7331('0x23')];var _0x22e0dc=_0xb3306?0x0:_0x189528[_0x7331('0x22')];var _0x4d5fdd=_0xb3306?_0x1d3934[_0x7331('0x23')]:_0x189528[_0x7331('0x22')]+_0x189528['limit'];var _0x292224;if(_0x4d5fdd>=_0x52e63b){_0x4d5fdd=_0x52e63b;_0x292224=0xc8;}else{_0x292224=0xce;}_0x204eb0[_0x7331('0x1f')](_0x292224);return _0x204eb0[_0x7331('0x24')](_0x7331('0x25'),_0x22e0dc+'-'+_0x4d5fdd+'/'+_0x52e63b)[_0x7331('0x21')](_0x1d3934);}return null;};}function patchUpdates(_0x5bbfdc){return function(_0x76aea){try{jsonpatch[_0x7331('0x26')](_0x76aea,_0x5bbfdc,!![]);}catch(_0x24bde5){return BPromise[_0x7331('0x27')](_0x24bde5);}return _0x76aea[_0x7331('0x28')]();};}function saveUpdates(_0x2fb41e,_0x342ccb){return function(_0x5ee936){if(_0x5ee936){return _0x5ee936[_0x7331('0x29')](_0x2fb41e)[_0x7331('0x2a')](function(_0x2ce827){return _0x2ce827;});}return null;};}function removeEntity(_0x53495d,_0x2ff92c){return function(_0x328643){if(_0x328643){return _0x328643['destroy']()['then'](function(){_0x53495d['status'](0xcc)[_0x7331('0x20')]();});}};}function handleEntityNotFound(_0x3cad91,_0x3a1881){return function(_0x7f14f2){if(!_0x7f14f2){_0x3cad91[_0x7331('0x1e')](0x194);}return _0x7f14f2;};}function handleError(_0x5ce9a0,_0x3aa801){_0x3aa801=_0x3aa801||0x1f4;return function(_0x23ca91){logger[_0x7331('0x2b')](_0x23ca91[_0x7331('0x2c')]);if(_0x23ca91['name']){delete _0x23ca91[_0x7331('0x2d')];}_0x5ce9a0['status'](_0x3aa801)['send'](_0x23ca91);};}exports[_0x7331('0x2e')]=function(_0x2abfef,_0x30440f){var _0x2376a2={},_0x42d319={},_0x3cd46b={'count':0x0,'rows':[]};var _0x4d8b85=_['map'](db[_0x7331('0x2f')]['rawAttributes'],function(_0x12b154){return{'name':_0x12b154[_0x7331('0x30')],'type':_0x12b154[_0x7331('0x31')][_0x7331('0x32')]};});_0x42d319[_0x7331('0x33')]=_[_0x7331('0x34')](_0x4d8b85,_0x7331('0x2d'));_0x42d319[_0x7331('0x35')]=_[_0x7331('0x36')](_0x2abfef[_0x7331('0x35')]);_0x42d319[_0x7331('0x37')]=_[_0x7331('0x38')](_0x42d319[_0x7331('0x33')],_0x42d319[_0x7331('0x35')]);_0x2376a2[_0x7331('0x39')]=_[_0x7331('0x38')](_0x42d319[_0x7331('0x33')],qs[_0x7331('0x3a')](_0x2abfef[_0x7331('0x35')][_0x7331('0x3a')]));_0x2376a2[_0x7331('0x39')]=_0x2376a2['attributes'][_0x7331('0x3b')]?_0x2376a2[_0x7331('0x39')]:_0x42d319[_0x7331('0x33')];if(!_0x2abfef[_0x7331('0x35')][_0x7331('0x3c')](_0x7331('0x3d'))){_0x2376a2[_0x7331('0x3e')]=qs[_0x7331('0x3e')](_0x2abfef[_0x7331('0x35')][_0x7331('0x3e')]);_0x2376a2[_0x7331('0x22')]=qs[_0x7331('0x22')](_0x2abfef[_0x7331('0x35')]['offset']);}_0x2376a2[_0x7331('0x3f')]=qs[_0x7331('0x40')](_0x2abfef[_0x7331('0x35')][_0x7331('0x40')]);_0x2376a2[_0x7331('0x41')]=qs['filters'](_[_0x7331('0x42')](_0x2abfef['query'],_0x42d319['filters']),_0x4d8b85);if(_0x2abfef[_0x7331('0x35')][_0x7331('0x43')]){_0x2376a2['where']=_[_0x7331('0x44')](_0x2376a2[_0x7331('0x41')],{'$or':_[_0x7331('0x34')](_0x4d8b85,function(_0x3246f5){if(_0x3246f5['type']!==_0x7331('0x45')){var _0x3284eb={};_0x3284eb[_0x3246f5[_0x7331('0x2d')]]={'$like':'%'+_0x2abfef[_0x7331('0x35')][_0x7331('0x43')]+'%'};return _0x3284eb;}})});}_0x2376a2=_[_0x7331('0x44')]({},_0x2376a2,_0x2abfef[_0x7331('0x46')]);var _0x2903a7={'where':_0x2376a2[_0x7331('0x41')]};return db['VoiceQueueReport']['count'](_0x2903a7)[_0x7331('0x2a')](function(_0x362038){_0x3cd46b[_0x7331('0x23')]=_0x362038;if(_0x2abfef['query'][_0x7331('0x47')]){_0x2376a2[_0x7331('0x48')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0x7331('0x49')](_0x2376a2);})[_0x7331('0x2a')](function(_0x2e389d){_0x3cd46b['rows']=_0x2e389d;return _0x3cd46b;})['then'](respondWithFilteredResult(_0x30440f,_0x2376a2))[_0x7331('0x4a')](handleError(_0x30440f,null));};exports['show']=function(_0x132ff6,_0x389a7c){var _0x4b1a3b={'raw':![],'where':{'id':_0x132ff6['params']['id']}},_0xb2f9ac={};_0xb2f9ac['model']=_[_0x7331('0x36')](db[_0x7331('0x2f')]['rawAttributes']);_0xb2f9ac[_0x7331('0x35')]=_[_0x7331('0x36')](_0x132ff6['query']);_0xb2f9ac[_0x7331('0x37')]=_[_0x7331('0x38')](_0xb2f9ac['model'],_0xb2f9ac[_0x7331('0x35')]);_0x4b1a3b[_0x7331('0x39')]=_[_0x7331('0x38')](_0xb2f9ac[_0x7331('0x33')],qs[_0x7331('0x3a')](_0x132ff6['query']['fields']));_0x4b1a3b['attributes']=_0x4b1a3b[_0x7331('0x39')]['length']?_0x4b1a3b[_0x7331('0x39')]:_0xb2f9ac[_0x7331('0x33')];if(_0x132ff6[_0x7331('0x35')][_0x7331('0x47')]){_0x4b1a3b[_0x7331('0x48')]=[{'all':!![]}];}_0x4b1a3b=_[_0x7331('0x44')]({},_0x4b1a3b,_0x132ff6[_0x7331('0x46')]);return db[_0x7331('0x2f')][_0x7331('0x4b')](_0x4b1a3b)[_0x7331('0x2a')](handleEntityNotFound(_0x389a7c,null))[_0x7331('0x2a')](respondWithResult(_0x389a7c,null))['catch'](handleError(_0x389a7c,null));};exports[_0x7331('0x4c')]=function(_0x1673d5,_0x26b480){return db['VoiceQueueReport'][_0x7331('0x4c')](_0x1673d5['body'],{})[_0x7331('0x2a')](respondWithResult(_0x26b480,0xc9))[_0x7331('0x4a')](handleError(_0x26b480,null));};exports[_0x7331('0x29')]=function(_0x37c0b1,_0x59002d){if(_0x37c0b1['body']['id']){delete _0x37c0b1[_0x7331('0x4d')]['id'];}return db[_0x7331('0x2f')][_0x7331('0x4b')]({'where':{'id':_0x37c0b1[_0x7331('0x4e')]['id']}})[_0x7331('0x2a')](handleEntityNotFound(_0x59002d,null))[_0x7331('0x2a')](saveUpdates(_0x37c0b1[_0x7331('0x4d')],null))[_0x7331('0x2a')](respondWithResult(_0x59002d,null))[_0x7331('0x4a')](handleError(_0x59002d,null));};exports[_0x7331('0x4f')]=function(_0x541d77,_0x165030){return db['VoiceQueueReport'][_0x7331('0x4b')]({'where':{'id':_0x541d77[_0x7331('0x4e')]['id']}})[_0x7331('0x2a')](handleEntityNotFound(_0x165030,null))[_0x7331('0x2a')](removeEntity(_0x165030,null))['catch'](handleError(_0x165030,null));};exports[_0x7331('0x50')]=function(_0x493b00,_0x346e27){return db[_0x7331('0x2f')]['describe']()[_0x7331('0x2a')](respondWithResult(_0x346e27,null))['catch'](handleError(_0x346e27,null));};exports[_0x7331('0x51')]=function(_0x3de05c,_0x56221c){var _0xa41873={},_0x41f84d={},_0x298890={'count':0x0,'rows':[]};_0x41f84d[_0x7331('0x33')]=_[_0x7331('0x36')](db[_0x7331('0x2f')][_0x7331('0x52')]);_0x41f84d[_0x7331('0x35')]=_[_0x7331('0x36')](_0x3de05c[_0x7331('0x35')]);_0x41f84d[_0x7331('0x37')]=_[_0x7331('0x38')](_0x41f84d[_0x7331('0x33')],_0x41f84d[_0x7331('0x35')]);_0xa41873[_0x7331('0x39')]=_[_0x7331('0x38')](_0x41f84d[_0x7331('0x33')],qs[_0x7331('0x3a')](_0x3de05c[_0x7331('0x35')]['fields']));_0xa41873[_0x7331('0x39')]=_0xa41873[_0x7331('0x39')][_0x7331('0x3b')]?_0xa41873[_0x7331('0x39')]:_0x41f84d[_0x7331('0x33')];if(!_0x3de05c['query'][_0x7331('0x3c')]('nolimit')){_0xa41873['limit']=qs['limit'](_0x3de05c[_0x7331('0x35')][_0x7331('0x3e')]);_0xa41873[_0x7331('0x22')]=qs[_0x7331('0x22')](_0x3de05c[_0x7331('0x35')]['offset']);}_0xa41873['order']=qs[_0x7331('0x40')](_0x3de05c[_0x7331('0x35')]['sort']);_0xa41873[_0x7331('0x41')]=qs['filters'](_[_0x7331('0x42')](_0x3de05c['query'],_0x41f84d['filters']));if(_0x3de05c[_0x7331('0x35')][_0x7331('0x43')]){_0xa41873[_0x7331('0x41')]=_[_0x7331('0x44')](_0xa41873[_0x7331('0x41')],{'$or':_[_0x7331('0x34')](_0xa41873[_0x7331('0x39')],function(_0x43e12d){var _0x5d4f24={};_0x5d4f24[_0x43e12d]={'$like':'%'+_0x3de05c[_0x7331('0x35')][_0x7331('0x43')]+'%'};return _0x5d4f24;})});}_0xa41873=_[_0x7331('0x44')]({},_0xa41873,_0x3de05c[_0x7331('0x46')]);var _0x493d7f={'where':_0xa41873['where']};return db['VoiceQueueReport'][_0x7331('0x23')](_0x493d7f)[_0x7331('0x2a')](function(_0x582aac){_0x298890[_0x7331('0x23')]=_0x582aac;if(_0x3de05c['query']['includeAll']){_0xa41873[_0x7331('0x48')]=[{'all':!![]}];}return db[_0x7331('0x2f')]['findAll'](_0xa41873);})['then'](function(_0x2cd9b7){_0x298890[_0x7331('0x53')]=_0x2cd9b7;return _0x298890;})[_0x7331('0x2a')](respondWithFilteredResult(_0x56221c,_0xa41873,'getVoiceQueuesReport'))[_0x7331('0x4a')](handleError(_0x56221c,null,_0x7331('0x51')));};
\ No newline at end of file
+var _0xf00b=['findAll','catch','show','params','find','create','body','describe','pick','options','getVoiceQueuesReport','rimraf','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','end','status','json','offset','undefined','count','limit','set','apply','reject','save','update','then','destroy','error','stack','name','send','map','VoiceQueueReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','includeAll','include'];(function(_0x18ceb7,_0x391446){var _0x2c5b33=function(_0x52589b){while(--_0x52589b){_0x18ceb7['push'](_0x18ceb7['shift']());}};_0x2c5b33(++_0x391446);}(_0xf00b,0x14f));var _0xbf00=function(_0x4d64a4,_0x1dceda){_0x4d64a4=_0x4d64a4-0x0;var _0x1b5010=_0xf00b[_0x4d64a4];return _0x1b5010;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbf00('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xbf00('0x1'));var BPromise=require(_0xbf00('0x2'));var Mustache=require(_0xbf00('0x3'));var util=require(_0xbf00('0x4'));var path=require(_0xbf00('0x5'));var sox=require('sox');var csv=require(_0xbf00('0x6'));var ejs=require(_0xbf00('0x7'));var fs=require('fs');var fs_extra=require(_0xbf00('0x8'));var _=require(_0xbf00('0x9'));var squel=require(_0xbf00('0xa'));var crypto=require(_0xbf00('0xb'));var jsforce=require(_0xbf00('0xc'));var deskjs=require(_0xbf00('0xd'));var toCsv=require(_0xbf00('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xbf00('0xe'));var authService=require(_0xbf00('0xf'));var qs=require(_0xbf00('0x10'));var as=require(_0xbf00('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xbf00('0x12'))(_0xbf00('0x13'));var utils=require('../../config/utils');var config=require(_0xbf00('0x14'));var licenseUtil=require(_0xbf00('0x15'));var db=require(_0xbf00('0x16'))['db'];config[_0xbf00('0x17')]=_['defaults'](config['redis'],{'host':_0xbf00('0x18'),'port':0x18eb});var socket=require(_0xbf00('0x19'))(new Redis(config['redis']));require(_0xbf00('0x1a'))[_0xbf00('0x1b')](socket);function respondWithStatusCode(_0x323e2b,_0x255e48){_0x255e48=_0x255e48||0xcc;return function(_0x1b4034){if(_0x1b4034){return _0x323e2b[_0xbf00('0x1c')](_0x255e48);}return _0x323e2b['status'](_0x255e48)[_0xbf00('0x1d')]();};}function respondWithResult(_0x4e0365,_0x294c26){_0x294c26=_0x294c26||0xc8;return function(_0x2ca087){if(_0x2ca087){return _0x4e0365[_0xbf00('0x1e')](_0x294c26)[_0xbf00('0x1f')](_0x2ca087);}};}function respondWithFilteredResult(_0x47311f,_0x36236a){return function(_0x109041){if(_0x109041){var _0x2ea328=typeof _0x36236a[_0xbf00('0x20')]===_0xbf00('0x21')&&typeof _0x36236a['limit']==='undefined';var _0x2557e3=_0x109041['count'];var _0x343ddc=_0x2ea328?0x0:_0x36236a['offset'];var _0x26692f=_0x2ea328?_0x109041[_0xbf00('0x22')]:_0x36236a['offset']+_0x36236a[_0xbf00('0x23')];var _0x468d7b;if(_0x26692f>=_0x2557e3){_0x26692f=_0x2557e3;_0x468d7b=0xc8;}else{_0x468d7b=0xce;}_0x47311f[_0xbf00('0x1e')](_0x468d7b);return _0x47311f[_0xbf00('0x24')]('Content-Range',_0x343ddc+'-'+_0x26692f+'/'+_0x2557e3)[_0xbf00('0x1f')](_0x109041);}return null;};}function patchUpdates(_0x27a53f){return function(_0x2c5a2a){try{jsonpatch[_0xbf00('0x25')](_0x2c5a2a,_0x27a53f,!![]);}catch(_0x238607){return BPromise[_0xbf00('0x26')](_0x238607);}return _0x2c5a2a[_0xbf00('0x27')]();};}function saveUpdates(_0x340b93,_0x36e26e){return function(_0x4c6e67){if(_0x4c6e67){return _0x4c6e67[_0xbf00('0x28')](_0x340b93)[_0xbf00('0x29')](function(_0x2ba1d0){return _0x2ba1d0;});}return null;};}function removeEntity(_0x5086a9,_0x54bf84){return function(_0x40bb27){if(_0x40bb27){return _0x40bb27[_0xbf00('0x2a')]()[_0xbf00('0x29')](function(){_0x5086a9[_0xbf00('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x144658,_0x5f1ca1){return function(_0x5a976b){if(!_0x5a976b){_0x144658[_0xbf00('0x1c')](0x194);}return _0x5a976b;};}function handleError(_0x5e20d1,_0x325be3){_0x325be3=_0x325be3||0x1f4;return function(_0x8e5350){logger[_0xbf00('0x2b')](_0x8e5350[_0xbf00('0x2c')]);if(_0x8e5350[_0xbf00('0x2d')]){delete _0x8e5350[_0xbf00('0x2d')];}_0x5e20d1[_0xbf00('0x1e')](_0x325be3)[_0xbf00('0x2e')](_0x8e5350);};}exports['index']=function(_0x1e2681,_0x40b200){var _0x11ea49={},_0x237d02={},_0x14fc43={'count':0x0,'rows':[]};var _0x3c3682=_[_0xbf00('0x2f')](db[_0xbf00('0x30')][_0xbf00('0x31')],function(_0x22f04c){return{'name':_0x22f04c[_0xbf00('0x32')],'type':_0x22f04c['type'][_0xbf00('0x33')]};});_0x237d02[_0xbf00('0x34')]=_[_0xbf00('0x2f')](_0x3c3682,_0xbf00('0x2d'));_0x237d02[_0xbf00('0x35')]=_[_0xbf00('0x36')](_0x1e2681['query']);_0x237d02[_0xbf00('0x37')]=_[_0xbf00('0x38')](_0x237d02[_0xbf00('0x34')],_0x237d02[_0xbf00('0x35')]);_0x11ea49['attributes']=_[_0xbf00('0x38')](_0x237d02[_0xbf00('0x34')],qs[_0xbf00('0x39')](_0x1e2681[_0xbf00('0x35')]['fields']));_0x11ea49[_0xbf00('0x3a')]=_0x11ea49['attributes'][_0xbf00('0x3b')]?_0x11ea49[_0xbf00('0x3a')]:_0x237d02[_0xbf00('0x34')];if(!_0x1e2681[_0xbf00('0x35')][_0xbf00('0x3c')](_0xbf00('0x3d'))){_0x11ea49[_0xbf00('0x23')]=qs[_0xbf00('0x23')](_0x1e2681['query'][_0xbf00('0x23')]);_0x11ea49[_0xbf00('0x20')]=qs[_0xbf00('0x20')](_0x1e2681[_0xbf00('0x35')][_0xbf00('0x20')]);}_0x11ea49[_0xbf00('0x3e')]=qs[_0xbf00('0x3f')](_0x1e2681[_0xbf00('0x35')][_0xbf00('0x3f')]);_0x11ea49[_0xbf00('0x40')]=qs['filters'](_['pick'](_0x1e2681[_0xbf00('0x35')],_0x237d02[_0xbf00('0x37')]),_0x3c3682);if(_0x1e2681[_0xbf00('0x35')]['filter']){_0x11ea49[_0xbf00('0x40')]=_[_0xbf00('0x41')](_0x11ea49[_0xbf00('0x40')],{'$or':_[_0xbf00('0x2f')](_0x3c3682,function(_0x23215e){if(_0x23215e['type']!==_0xbf00('0x42')){var _0x36da6d={};_0x36da6d[_0x23215e['name']]={'$like':'%'+_0x1e2681[_0xbf00('0x35')][_0xbf00('0x43')]+'%'};return _0x36da6d;}})});}_0x11ea49=_[_0xbf00('0x41')]({},_0x11ea49,_0x1e2681['options']);var _0x4647b5={'where':_0x11ea49[_0xbf00('0x40')]};return db['VoiceQueueReport'][_0xbf00('0x22')](_0x4647b5)[_0xbf00('0x29')](function(_0x2e3450){_0x14fc43[_0xbf00('0x22')]=_0x2e3450;if(_0x1e2681['query'][_0xbf00('0x44')]){_0x11ea49[_0xbf00('0x45')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0xbf00('0x46')](_0x11ea49);})['then'](function(_0x45903b){_0x14fc43['rows']=_0x45903b;return _0x14fc43;})[_0xbf00('0x29')](respondWithFilteredResult(_0x40b200,_0x11ea49))[_0xbf00('0x47')](handleError(_0x40b200,null));};exports[_0xbf00('0x48')]=function(_0x3add03,_0x4fbea0){var _0x213b9d={'raw':![],'where':{'id':_0x3add03[_0xbf00('0x49')]['id']}},_0x4c8b80={};_0x4c8b80[_0xbf00('0x34')]=_['keys'](db['VoiceQueueReport']['rawAttributes']);_0x4c8b80[_0xbf00('0x35')]=_[_0xbf00('0x36')](_0x3add03['query']);_0x4c8b80[_0xbf00('0x37')]=_['intersection'](_0x4c8b80['model'],_0x4c8b80[_0xbf00('0x35')]);_0x213b9d[_0xbf00('0x3a')]=_[_0xbf00('0x38')](_0x4c8b80[_0xbf00('0x34')],qs[_0xbf00('0x39')](_0x3add03[_0xbf00('0x35')]['fields']));_0x213b9d[_0xbf00('0x3a')]=_0x213b9d['attributes'][_0xbf00('0x3b')]?_0x213b9d[_0xbf00('0x3a')]:_0x4c8b80[_0xbf00('0x34')];if(_0x3add03[_0xbf00('0x35')][_0xbf00('0x44')]){_0x213b9d['include']=[{'all':!![]}];}_0x213b9d=_[_0xbf00('0x41')]({},_0x213b9d,_0x3add03['options']);return db[_0xbf00('0x30')][_0xbf00('0x4a')](_0x213b9d)['then'](handleEntityNotFound(_0x4fbea0,null))[_0xbf00('0x29')](respondWithResult(_0x4fbea0,null))[_0xbf00('0x47')](handleError(_0x4fbea0,null));};exports[_0xbf00('0x4b')]=function(_0x409338,_0x33431e){return db[_0xbf00('0x30')]['create'](_0x409338[_0xbf00('0x4c')],{})[_0xbf00('0x29')](respondWithResult(_0x33431e,0xc9))[_0xbf00('0x47')](handleError(_0x33431e,null));};exports[_0xbf00('0x28')]=function(_0x324347,_0x1f31f8){if(_0x324347[_0xbf00('0x4c')]['id']){delete _0x324347[_0xbf00('0x4c')]['id'];}return db[_0xbf00('0x30')][_0xbf00('0x4a')]({'where':{'id':_0x324347[_0xbf00('0x49')]['id']}})[_0xbf00('0x29')](handleEntityNotFound(_0x1f31f8,null))[_0xbf00('0x29')](saveUpdates(_0x324347[_0xbf00('0x4c')],null))['then'](respondWithResult(_0x1f31f8,null))['catch'](handleError(_0x1f31f8,null));};exports[_0xbf00('0x2a')]=function(_0x262018,_0x25d4ed){return db['VoiceQueueReport'][_0xbf00('0x4a')]({'where':{'id':_0x262018[_0xbf00('0x49')]['id']}})[_0xbf00('0x29')](handleEntityNotFound(_0x25d4ed,null))['then'](removeEntity(_0x25d4ed,null))[_0xbf00('0x47')](handleError(_0x25d4ed,null));};exports[_0xbf00('0x4d')]=function(_0xdb96c1,_0x49578e){return db['VoiceQueueReport'][_0xbf00('0x4d')]()[_0xbf00('0x29')](respondWithResult(_0x49578e,null))[_0xbf00('0x47')](handleError(_0x49578e,null));};exports['getVoiceQueuesReport']=function(_0x97edfb,_0x2b6897){var _0x1bad9e={},_0x47fe62={},_0x2b8c3e={'count':0x0,'rows':[]};_0x47fe62[_0xbf00('0x34')]=_[_0xbf00('0x36')](db[_0xbf00('0x30')]['rawAttributes']);_0x47fe62[_0xbf00('0x35')]=_[_0xbf00('0x36')](_0x97edfb[_0xbf00('0x35')]);_0x47fe62[_0xbf00('0x37')]=_[_0xbf00('0x38')](_0x47fe62['model'],_0x47fe62[_0xbf00('0x35')]);_0x1bad9e[_0xbf00('0x3a')]=_[_0xbf00('0x38')](_0x47fe62[_0xbf00('0x34')],qs[_0xbf00('0x39')](_0x97edfb[_0xbf00('0x35')][_0xbf00('0x39')]));_0x1bad9e[_0xbf00('0x3a')]=_0x1bad9e['attributes'][_0xbf00('0x3b')]?_0x1bad9e[_0xbf00('0x3a')]:_0x47fe62[_0xbf00('0x34')];if(!_0x97edfb[_0xbf00('0x35')]['hasOwnProperty'](_0xbf00('0x3d'))){_0x1bad9e[_0xbf00('0x23')]=qs['limit'](_0x97edfb[_0xbf00('0x35')][_0xbf00('0x23')]);_0x1bad9e[_0xbf00('0x20')]=qs[_0xbf00('0x20')](_0x97edfb[_0xbf00('0x35')][_0xbf00('0x20')]);}_0x1bad9e[_0xbf00('0x3e')]=qs['sort'](_0x97edfb[_0xbf00('0x35')][_0xbf00('0x3f')]);_0x1bad9e[_0xbf00('0x40')]=qs[_0xbf00('0x37')](_[_0xbf00('0x4e')](_0x97edfb[_0xbf00('0x35')],_0x47fe62[_0xbf00('0x37')]));if(_0x97edfb[_0xbf00('0x35')]['filter']){_0x1bad9e['where']=_[_0xbf00('0x41')](_0x1bad9e[_0xbf00('0x40')],{'$or':_[_0xbf00('0x2f')](_0x1bad9e[_0xbf00('0x3a')],function(_0x88a398){var _0x939aa={};_0x939aa[_0x88a398]={'$like':'%'+_0x97edfb['query'][_0xbf00('0x43')]+'%'};return _0x939aa;})});}_0x1bad9e=_[_0xbf00('0x41')]({},_0x1bad9e,_0x97edfb[_0xbf00('0x4f')]);var _0x35f91b={'where':_0x1bad9e[_0xbf00('0x40')]};return db['VoiceQueueReport']['count'](_0x35f91b)[_0xbf00('0x29')](function(_0x289bd2){_0x2b8c3e[_0xbf00('0x22')]=_0x289bd2;if(_0x97edfb[_0xbf00('0x35')][_0xbf00('0x44')]){_0x1bad9e[_0xbf00('0x45')]=[{'all':!![]}];}return db[_0xbf00('0x30')]['findAll'](_0x1bad9e);})[_0xbf00('0x29')](function(_0x42c95c){_0x2b8c3e['rows']=_0x42c95c;return _0x2b8c3e;})[_0xbf00('0x29')](respondWithFilteredResult(_0x2b6897,_0x1bad9e,_0xbf00('0x50')))['catch'](handleError(_0x2b6897,null,_0xbf00('0x50')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec88=['../../mysqldb','VoiceQueueReport','setMaxListeners','save','update','remove','emit','hasOwnProperty','events'];(function(_0x2b5ccc,_0x43f8ca){var _0x22aa1a=function(_0x1ce936){while(--_0x1ce936){_0x2b5ccc['push'](_0x2b5ccc['shift']());}};_0x22aa1a(++_0x43f8ca);}(_0xec88,0x1af));var _0x8ec8=function(_0x219977,_0x2ccc9b){_0x219977=_0x219977-0x0;var _0x50cde7=_0xec88[_0x219977];return _0x50cde7;};'use strict';var EventEmitter=require(_0x8ec8('0x0'));var VoiceQueueReport=require(_0x8ec8('0x1'))['db'][_0x8ec8('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0x8ec8('0x3')](0x0);var events={'afterCreate':_0x8ec8('0x4'),'afterUpdate':_0x8ec8('0x5'),'afterDestroy':_0x8ec8('0x6')};function emitEvent(_0x348e72){return function(_0x1a464b,_0x51cc7a,_0x531c60){VoiceQueueReportEvents['emit'](_0x348e72+':'+_0x1a464b['id'],_0x1a464b);VoiceQueueReportEvents[_0x8ec8('0x7')](_0x348e72,_0x1a464b);_0x531c60(null);};}for(var e in events){if(events[_0x8ec8('0x8')](e)){var event=events[e];VoiceQueueReport['hook'](e,emitEvent(event));}}module['exports']=VoiceQueueReportEvents;
\ No newline at end of file
+var _0xa27b=['exports','../../mysqldb','VoiceQueueReport','save','update','emit','hasOwnProperty'];(function(_0x2ae870,_0x1cd95a){var _0x301e88=function(_0x4ceae5){while(--_0x4ceae5){_0x2ae870['push'](_0x2ae870['shift']());}};_0x301e88(++_0x1cd95a);}(_0xa27b,0x174));var _0xba27=function(_0x3b7be7,_0x499482){_0x3b7be7=_0x3b7be7-0x0;var _0xa955ad=_0xa27b[_0x3b7be7];return _0xa955ad;};'use strict';var EventEmitter=require('events');var VoiceQueueReport=require(_0xba27('0x0'))['db'][_0xba27('0x1')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xba27('0x2'),'afterUpdate':_0xba27('0x3'),'afterDestroy':'remove'};function emitEvent(_0x4d828c){return function(_0x2a403b,_0x460320,_0x2036ca){VoiceQueueReportEvents['emit'](_0x4d828c+':'+_0x2a403b['id'],_0x2a403b);VoiceQueueReportEvents[_0xba27('0x4')](_0x4d828c,_0x2a403b);_0x2036ca(null);};}for(var e in events){if(events[_0xba27('0x5')](e)){var event=events[e];VoiceQueueReport['hook'](e,emitEvent(event));}}module[_0xba27('0x6')]=VoiceQueueReportEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf5b8=['exports','define','VoiceQueueReport','report_queue','uniqueid','lodash','moment','bluebird','request-promise','path'];(function(_0x3dec17,_0x54285d){var _0x1e3c0f=function(_0x568f8a){while(--_0x568f8a){_0x3dec17['push'](_0x3dec17['shift']());}};_0x1e3c0f(++_0x54285d);}(_0xf5b8,0xcd));var _0x8f5b=function(_0x21a164,_0x8464a7){_0x21a164=_0x21a164-0x0;var _0x512412=_0xf5b8[_0x21a164];return _0x512412;};'use strict';var _=require(_0x8f5b('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x8f5b('0x1'));var BPromise=require(_0x8f5b('0x2'));var rp=require(_0x8f5b('0x3'));var fs=require('fs');var path=require(_0x8f5b('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./voiceQueueReport.attributes');module[_0x8f5b('0x5')]=function(_0x3d12a0,_0x18ee33){return _0x3d12a0[_0x8f5b('0x6')](_0x8f5b('0x7'),attributes,{'tableName':_0x8f5b('0x8'),'paranoid':![],'indexes':[{'fields':[_0x8f5b('0x9')]},{'fields':['calleridnum']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x331c=['request-promise','rimraf','../../config/environment','./voiceQueueReport.attributes','define','VoiceQueueReport','report_queue','uniqueid','util','bluebird'];(function(_0x1c0fa0,_0x43e1e7){var _0x47525f=function(_0x2a2f5a){while(--_0x2a2f5a){_0x1c0fa0['push'](_0x1c0fa0['shift']());}};_0x47525f(++_0x43e1e7);}(_0x331c,0xe4));var _0xc331=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0x331c[_0x5c351c];return _0x26f3b3;};'use strict';var _=require('lodash');var util=require(_0xc331('0x0'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xc331('0x1'));var rp=require(_0xc331('0x2'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc331('0x3'));var config=require(_0xc331('0x4'));var attributes=require(_0xc331('0x5'));module['exports']=function(_0x1f6f78,_0x588301){return _0x1f6f78[_0xc331('0x6')](_0xc331('0x7'),attributes,{'tableName':_0xc331('0x8'),'paranoid':![],'indexes':[{'fields':[_0xc331('0x9')]},{'fields':['calleridnum']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x483e=['then','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','code','error','message','info','result','catch','GetVoiceQueueReport','VoiceQueueReport','findAll','options','raw','attributes','limit','include','model','stringify','CreateVoiceQueueReport','create','body','update','where','UpdateVoiceQueueReport','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','client','http','redis','defaults','socket.io-emitter','./voiceQueueReport.socket','register','request'];(function(_0xbf400c,_0x37e1e7){var _0x2ee697=function(_0x3c2668){while(--_0x3c2668){_0xbf400c['push'](_0xbf400c['shift']());}};_0x2ee697(++_0x37e1e7);}(_0x483e,0xbf));var _0xe483=function(_0x3a1ea5,_0x349f01){_0x3a1ea5=_0x3a1ea5-0x0;var _0xfac9b2=_0x483e[_0x3a1ea5];return _0xfac9b2;};'use strict';var _=require(_0xe483('0x0'));var util=require('util');var moment=require(_0xe483('0x1'));var BPromise=require(_0xe483('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe483('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xe483('0x4'));var logger=require(_0xe483('0x5'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xe483('0x6')][_0xe483('0x7')]({'port':0x232a});config[_0xe483('0x8')]=_[_0xe483('0x9')](config[_0xe483('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xe483('0xa'))(new Redis(config[_0xe483('0x8')]));require(_0xe483('0xb'))[_0xe483('0xc')](socket);function respondWithRpcPromise(_0x12006e,_0x2f056c,_0x199c3a){return new BPromise(function(_0x2712f3,_0x23477d){return client[_0xe483('0xd')](_0x12006e,_0x199c3a)[_0xe483('0xe')](function(_0x300039){logger['info'](_0xe483('0xf'),_0x2f056c,_0xe483('0x10'));logger[_0xe483('0x11')](_0xe483('0x12'),_0x2f056c,_0xe483('0x10'),JSON['stringify'](_0x300039));if(_0x300039['error']){if(_0x300039['error'][_0xe483('0x13')]===0x1f4){logger[_0xe483('0x14')](_0xe483('0xf'),_0x2f056c,_0x300039['error'][_0xe483('0x15')]);return _0x23477d(_0x300039[_0xe483('0x14')][_0xe483('0x15')]);}logger[_0xe483('0x14')](_0xe483('0xf'),_0x2f056c,_0x300039[_0xe483('0x14')][_0xe483('0x15')]);return _0x2712f3(_0x300039[_0xe483('0x14')]['message']);}else{logger[_0xe483('0x16')]('VoiceQueueReport,\x20%s,\x20%s',_0x2f056c,_0xe483('0x10'));_0x2712f3(_0x300039[_0xe483('0x17')]['message']);}})[_0xe483('0x18')](function(_0x54ab53){logger[_0xe483('0x14')](_0xe483('0xf'),_0x2f056c,_0x54ab53);_0x23477d(_0x54ab53);});});}exports[_0xe483('0x19')]=function(_0x7ffa63){var _0x20b189=this;return new Promise(function(_0x2f5c13,_0x2d31a2){return db[_0xe483('0x1a')][_0xe483('0x1b')]({'raw':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x1d')]===undefined?!![]:![]:!![],'where':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')]['where']||null:null,'attributes':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x1e')]||null:null,'limit':_0x7ffa63['options']?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x1f')]||null:null,'include':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x20')]?_['map'](_0x7ffa63['options'][_0xe483('0x20')],function(_0x4b76ca){return{'model':db[_0x4b76ca[_0xe483('0x21')]],'as':_0x4b76ca['as'],'attributes':_0x4b76ca[_0xe483('0x1e')],'include':_0x4b76ca[_0xe483('0x20')]?_['map'](_0x4b76ca[_0xe483('0x20')],function(_0x3b4039){return{'model':db[_0x3b4039[_0xe483('0x21')]],'as':_0x3b4039['as'],'attributes':_0x3b4039[_0xe483('0x1e')],'include':_0x3b4039[_0xe483('0x20')]?_['map'](_0x3b4039[_0xe483('0x20')],function(_0x5d810a){return{'model':db[_0x5d810a[_0xe483('0x21')]],'as':_0x5d810a['as'],'attributes':_0x5d810a[_0xe483('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x514fe0){logger['info'](_0xe483('0x19'),_0x7ffa63);logger[_0xe483('0x11')](_0xe483('0x19'),_0x7ffa63,JSON[_0xe483('0x22')](_0x514fe0));_0x2f5c13(_0x514fe0);})['catch'](function(_0x4501a4){logger[_0xe483('0x14')](_0xe483('0x19'),_0x4501a4[_0xe483('0x15')],_0x7ffa63);_0x2d31a2(_0x20b189[_0xe483('0x14')](0x1f4,_0x4501a4[_0xe483('0x15')]));});});};exports[_0xe483('0x23')]=function(_0x240fb4){var _0x25d2a5=this;return new Promise(function(_0x1e80c0,_0x2fe8c3){return db[_0xe483('0x1a')][_0xe483('0x24')](_0x240fb4[_0xe483('0x25')],{'raw':_0x240fb4[_0xe483('0x1c')]?_0x240fb4[_0xe483('0x1c')][_0xe483('0x1d')]===undefined?!![]:![]:!![]})['then'](function(_0x32d911){logger[_0xe483('0x16')]('CreateVoiceQueueReport',_0x240fb4);logger[_0xe483('0x11')](_0xe483('0x23'),_0x240fb4,JSON['stringify'](_0x32d911));_0x1e80c0(_0x32d911);})['catch'](function(_0x492e2f){logger['error'](_0xe483('0x23'),_0x492e2f[_0xe483('0x15')],_0x240fb4);_0x2fe8c3(_0x25d2a5[_0xe483('0x14')](0x1f4,_0x492e2f[_0xe483('0x15')]));});});};exports['UpdateVoiceQueueReport']=function(_0x4e68a5){var _0x449f06=this;return new Promise(function(_0x53c6d2,_0x302602){return db[_0xe483('0x1a')][_0xe483('0x26')](_0x4e68a5[_0xe483('0x25')],{'raw':_0x4e68a5['options']?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4e68a5[_0xe483('0x1c')]?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x27')]||null:null,'attributes':_0x4e68a5[_0xe483('0x1c')]?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x1e')]||null:null,'limit':_0x4e68a5[_0xe483('0x1c')]?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x1f')]||null:null})['then'](function(_0x16ebda){logger['info'](_0xe483('0x28'),_0x4e68a5);logger['debug']('UpdateVoiceQueueReport',_0x4e68a5,JSON['stringify'](_0x16ebda));_0x53c6d2(_0x16ebda);})[_0xe483('0x18')](function(_0x57ea72){logger[_0xe483('0x14')](_0xe483('0x28'),_0x57ea72[_0xe483('0x15')],_0x4e68a5);_0x302602(_0x449f06[_0xe483('0x14')](0x1f4,_0x57ea72[_0xe483('0x15')]));});});};
\ No newline at end of file
+var _0x1328=['CreateVoiceQueueReport','create','body','UpdateVoiceQueueReport','update','where','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','then','info','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceQueueReport','VoiceQueueReport','findAll','options','raw','attributes','limit','map','include','model'];(function(_0x4bf61a,_0x3a649b){var _0x27f463=function(_0x62b90){while(--_0x62b90){_0x4bf61a['push'](_0x4bf61a['shift']());}};_0x27f463(++_0x3a649b);}(_0x1328,0x11e));var _0x8132=function(_0x125ff8,_0x41925f){_0x125ff8=_0x125ff8-0x0;var _0x2d9ef=_0x1328[_0x125ff8];return _0x2d9ef;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x8132('0x0'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8132('0x1'));var db=require(_0x8132('0x2'))['db'];var utils=require(_0x8132('0x3'));var logger=require(_0x8132('0x4'))('rpc');var config=require(_0x8132('0x5'));var jayson=require(_0x8132('0x6'));var client=jayson[_0x8132('0x7')]['http']({'port':0x232a});config['redis']=_[_0x8132('0x8')](config[_0x8132('0x9')],{'host':_0x8132('0xa'),'port':0x18eb});var socket=require(_0x8132('0xb'))(new Redis(config[_0x8132('0x9')]));require('./voiceQueueReport.socket')['register'](socket);function respondWithRpcPromise(_0x1a3469,_0xde83f3,_0x13eb56){return new BPromise(function(_0x73e6b1,_0x1c338d){return client['request'](_0x1a3469,_0x13eb56)[_0x8132('0xc')](function(_0x49a2e0){logger[_0x8132('0xd')](_0x8132('0xe'),_0xde83f3,_0x8132('0xf'));logger[_0x8132('0x10')](_0x8132('0x11'),_0xde83f3,_0x8132('0xf'),JSON[_0x8132('0x12')](_0x49a2e0));if(_0x49a2e0['error']){if(_0x49a2e0[_0x8132('0x13')][_0x8132('0x14')]===0x1f4){logger[_0x8132('0x13')]('VoiceQueueReport,\x20%s,\x20%s',_0xde83f3,_0x49a2e0['error'][_0x8132('0x15')]);return _0x1c338d(_0x49a2e0[_0x8132('0x13')][_0x8132('0x15')]);}logger[_0x8132('0x13')](_0x8132('0xe'),_0xde83f3,_0x49a2e0[_0x8132('0x13')][_0x8132('0x15')]);return _0x73e6b1(_0x49a2e0[_0x8132('0x13')][_0x8132('0x15')]);}else{logger[_0x8132('0xd')](_0x8132('0xe'),_0xde83f3,_0x8132('0xf'));_0x73e6b1(_0x49a2e0[_0x8132('0x16')][_0x8132('0x15')]);}})[_0x8132('0x17')](function(_0x148281){logger[_0x8132('0x13')](_0x8132('0xe'),_0xde83f3,_0x148281);_0x1c338d(_0x148281);});});}exports[_0x8132('0x18')]=function(_0x2c208d){var _0x293a4e=this;return new Promise(function(_0x170aaa,_0xbc17a7){return db[_0x8132('0x19')][_0x8132('0x1a')]({'raw':_0x2c208d[_0x8132('0x1b')]?_0x2c208d[_0x8132('0x1b')][_0x8132('0x1c')]===undefined?!![]:![]:!![],'where':_0x2c208d['options']?_0x2c208d[_0x8132('0x1b')]['where']||null:null,'attributes':_0x2c208d[_0x8132('0x1b')]?_0x2c208d[_0x8132('0x1b')][_0x8132('0x1d')]||null:null,'limit':_0x2c208d['options']?_0x2c208d[_0x8132('0x1b')][_0x8132('0x1e')]||null:null,'include':_0x2c208d[_0x8132('0x1b')]?_0x2c208d[_0x8132('0x1b')]['include']?_[_0x8132('0x1f')](_0x2c208d[_0x8132('0x1b')][_0x8132('0x20')],function(_0x140c27){return{'model':db[_0x140c27[_0x8132('0x21')]],'as':_0x140c27['as'],'attributes':_0x140c27[_0x8132('0x1d')],'include':_0x140c27['include']?_['map'](_0x140c27[_0x8132('0x20')],function(_0x6bc2a8){return{'model':db[_0x6bc2a8['model']],'as':_0x6bc2a8['as'],'attributes':_0x6bc2a8[_0x8132('0x1d')],'include':_0x6bc2a8['include']?_[_0x8132('0x1f')](_0x6bc2a8[_0x8132('0x20')],function(_0x280c88){return{'model':db[_0x280c88[_0x8132('0x21')]],'as':_0x280c88['as'],'attributes':_0x280c88['attributes']};}):[]};}):[]};}):[]:[]})[_0x8132('0xc')](function(_0x46cb9d){logger[_0x8132('0xd')](_0x8132('0x18'),_0x2c208d);logger['debug'](_0x8132('0x18'),_0x2c208d,JSON[_0x8132('0x12')](_0x46cb9d));_0x170aaa(_0x46cb9d);})[_0x8132('0x17')](function(_0x873e00){logger[_0x8132('0x13')](_0x8132('0x18'),_0x873e00[_0x8132('0x15')],_0x2c208d);_0xbc17a7(_0x293a4e['error'](0x1f4,_0x873e00[_0x8132('0x15')]));});});};exports[_0x8132('0x22')]=function(_0x53f6ad){var _0x230ab3=this;return new Promise(function(_0x593f9f,_0x3339b9){return db[_0x8132('0x19')][_0x8132('0x23')](_0x53f6ad[_0x8132('0x24')],{'raw':_0x53f6ad['options']?_0x53f6ad[_0x8132('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0x8132('0xc')](function(_0x4a758e){logger[_0x8132('0xd')](_0x8132('0x22'),_0x53f6ad);logger['debug'](_0x8132('0x22'),_0x53f6ad,JSON[_0x8132('0x12')](_0x4a758e));_0x593f9f(_0x4a758e);})[_0x8132('0x17')](function(_0x1d7cff){logger[_0x8132('0x13')](_0x8132('0x22'),_0x1d7cff[_0x8132('0x15')],_0x53f6ad);_0x3339b9(_0x230ab3['error'](0x1f4,_0x1d7cff['message']));});});};exports[_0x8132('0x25')]=function(_0x5501e1){var _0x2c420e=this;return new Promise(function(_0x59288e,_0x385c5c){return db[_0x8132('0x19')][_0x8132('0x26')](_0x5501e1[_0x8132('0x24')],{'raw':_0x5501e1[_0x8132('0x1b')]?_0x5501e1[_0x8132('0x1b')][_0x8132('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5501e1[_0x8132('0x1b')]?_0x5501e1['options'][_0x8132('0x27')]||null:null,'attributes':_0x5501e1[_0x8132('0x1b')]?_0x5501e1['options'][_0x8132('0x1d')]||null:null,'limit':_0x5501e1[_0x8132('0x1b')]?_0x5501e1[_0x8132('0x1b')][_0x8132('0x1e')]||null:null})[_0x8132('0xc')](function(_0x51a674){logger[_0x8132('0xd')](_0x8132('0x25'),_0x5501e1);logger[_0x8132('0x10')](_0x8132('0x25'),_0x5501e1,JSON[_0x8132('0x12')](_0x51a674));_0x59288e(_0x51a674);})[_0x8132('0x17')](function(_0x316bdc){logger['error'](_0x8132('0x25'),_0x316bdc[_0x8132('0x15')],_0x5501e1);_0x385c5c(_0x2c420e[_0x8132('0x13')](0x1f4,_0x316bdc['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x943c=['./voiceQueueReport.events','save','remove','update','emit','removeListener','register','length','voiceQueueReport:'];(function(_0x230044,_0x256f82){var _0x3215fb=function(_0x37e153){while(--_0x37e153){_0x230044['push'](_0x230044['shift']());}};_0x3215fb(++_0x256f82);}(_0x943c,0xd8));var _0xc943=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x943c[_0x3dd15e];return _0x231fd0;};'use strict';var VoiceQueueReportEvents=require(_0xc943('0x0'));var events=[_0xc943('0x1'),_0xc943('0x2'),_0xc943('0x3')];function createListener(_0x55a907,_0x5067dc){return function(_0x32ff2c){_0x5067dc[_0xc943('0x4')](_0x55a907,_0x32ff2c);};}function removeListener(_0xa24827,_0x5b7d1d){return function(){VoiceQueueReportEvents[_0xc943('0x5')](_0xa24827,_0x5b7d1d);};}exports[_0xc943('0x6')]=function(_0x3307ef){for(var _0xaff37f=0x0,_0x1b73ad=events[_0xc943('0x7')];_0xaff37f<_0x1b73ad;_0xaff37f++){var _0x3f718f=events[_0xaff37f];var _0x56e665=createListener(_0xc943('0x8')+_0x3f718f,_0x3307ef);VoiceQueueReportEvents['on'](_0x3f718f,_0x56e665);}};
\ No newline at end of file
+var _0xe1dc=['remove','update','register','length','voiceQueueReport:','./voiceQueueReport.events','save'];(function(_0x16406c,_0x65184){var _0x3162bd=function(_0x1e80a0){while(--_0x1e80a0){_0x16406c['push'](_0x16406c['shift']());}};_0x3162bd(++_0x65184);}(_0xe1dc,0x8a));var _0xce1d=function(_0x536e4a,_0x78dc6c){_0x536e4a=_0x536e4a-0x0;var _0x1c3344=_0xe1dc[_0x536e4a];return _0x1c3344;};'use strict';var VoiceQueueReportEvents=require(_0xce1d('0x0'));var events=[_0xce1d('0x1'),_0xce1d('0x2'),_0xce1d('0x3')];function createListener(_0xe03a5b,_0x353517){return function(_0x341b17){_0x353517['emit'](_0xe03a5b,_0x341b17);};}function removeListener(_0xcc6bdf,_0x509109){return function(){VoiceQueueReportEvents['removeListener'](_0xcc6bdf,_0x509109);};}exports[_0xce1d('0x4')]=function(_0x232005){for(var _0x2782b7=0x0,_0x110cc2=events[_0xce1d('0x5')];_0x2782b7<_0x110cc2;_0x2782b7++){var _0x62d18b=events[_0x2782b7];var _0x4b9a85=createListener(_0xce1d('0x6')+_0x62d18b,_0x232005);VoiceQueueReportEvents['on'](_0x62d18b,_0x4b9a85);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb17f=['update','delete','/:id','destroy','exports','multer','util','path','express','fs-extra','../../components/interaction/service','../../config/environment','./voiceQueuesLog.controller','get','isAuthenticated','index','show'];(function(_0x24dfd2,_0x504fac){var _0x3abda1=function(_0x55bc85){while(--_0x55bc85){_0x24dfd2['push'](_0x24dfd2['shift']());}};_0x3abda1(++_0x504fac);}(_0xb17f,0x1ae));var _0xfb17=function(_0x58b9c3,_0x54f931){_0x58b9c3=_0x58b9c3-0x0;var _0x24b746=_0xb17f[_0x58b9c3];return _0x24b746;};'use strict';var multer=require(_0xfb17('0x0'));var util=require(_0xfb17('0x1'));var path=require(_0xfb17('0x2'));var timeout=require('connect-timeout');var express=require(_0xfb17('0x3'));var router=express['Router']();var fs_extra=require(_0xfb17('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xfb17('0x5'));var config=require(_0xfb17('0x6'));var controller=require(_0xfb17('0x7'));router[_0xfb17('0x8')]('/',auth[_0xfb17('0x9')](),controller[_0xfb17('0xa')]);router[_0xfb17('0x8')]('/:id',auth[_0xfb17('0x9')](),controller[_0xfb17('0xb')]);router['post']('/',auth[_0xfb17('0x9')](),controller['create']);router['put']('/:id',auth[_0xfb17('0x9')](),controller[_0xfb17('0xc')]);router[_0xfb17('0xd')](_0xfb17('0xe'),auth[_0xfb17('0x9')](),controller[_0xfb17('0xf')]);module[_0xfb17('0x10')]=router;
\ No newline at end of file
+var _0x6666=['fs-extra','../../config/environment','./voiceQueuesLog.controller','get','isAuthenticated','index','/:id','show','create','put','update','destroy','multer','Router'];(function(_0x31dcf2,_0x114ccb){var _0x35b86c=function(_0x4a9d33){while(--_0x4a9d33){_0x31dcf2['push'](_0x31dcf2['shift']());}};_0x35b86c(++_0x114ccb);}(_0x6666,0x6e));var _0x6666=function(_0x15a634,_0x4feb86){_0x15a634=_0x15a634-0x0;var _0xf4f7a0=_0x6666[_0x15a634];return _0xf4f7a0;};'use strict';var multer=require(_0x6666('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x6666('0x1')]();var fs_extra=require(_0x6666('0x2'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x6666('0x3'));var controller=require(_0x6666('0x4'));router[_0x6666('0x5')]('/',auth[_0x6666('0x6')](),controller[_0x6666('0x7')]);router[_0x6666('0x5')](_0x6666('0x8'),auth[_0x6666('0x6')](),controller[_0x6666('0x9')]);router['post']('/',auth[_0x6666('0x6')](),controller[_0x6666('0xa')]);router[_0x6666('0xb')]('/:id',auth['isAuthenticated'](),controller[_0x6666('0xc')]);router['delete'](_0x6666('0x8'),auth['isAuthenticated'](),controller[_0x6666('0xd')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf98=['DATE','format','YYYY-MM-DD\x20HH:mm:ss','moment','exports','STRING'];(function(_0x1f1cc7,_0x26f365){var _0x5f49e9=function(_0x45c75a){while(--_0x45c75a){_0x1f1cc7['push'](_0x1f1cc7['shift']());}};_0x5f49e9(++_0x26f365);}(_0xcf98,0x8d));var _0x8cf9=function(_0x12d7f0,_0x4fc73a){_0x12d7f0=_0x12d7f0-0x0;var _0xdce07d=_0xcf98[_0x12d7f0];return _0xdce07d;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x8cf9('0x0'));module[_0x8cf9('0x1')]={'time':{'type':Sequelize[_0x8cf9('0x2')]},'callid':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x8cf9('0x3')],'allowNull':![],'defaultValue':moment()[_0x8cf9('0x4')](_0x8cf9('0x5'))}};
\ No newline at end of file
+var _0xc734=['sequelize','moment','exports','STRING','DATE','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x4d1ce8,_0x1a778e){var _0x129384=function(_0x15e43b){while(--_0x15e43b){_0x4d1ce8['push'](_0x4d1ce8['shift']());}};_0x129384(++_0x1a778e);}(_0xc734,0x108));var _0x4c73=function(_0x37a79c,_0x2b19f0){_0x37a79c=_0x37a79c-0x0;var _0x561d89=_0xc734[_0x37a79c];return _0x561d89;};'use strict';var Sequelize=require(_0x4c73('0x0'));var moment=require(_0x4c73('0x1'));module[_0x4c73('0x2')]={'time':{'type':Sequelize[_0x4c73('0x3')]},'callid':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x4c73('0x3')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x4c73('0x4')],'allowNull':![],'defaultValue':moment()['format'](_0x4c73('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x471e=['key','query','filters','intersection','model','attributes','fields','length','nolimit','sort','pick','filter','merge','where','VIRTUAL','VoiceQueuesLog','includeAll','include','findAll','rows','show','params','keys','find','catch','create','update','body','rimraf','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes'];(function(_0x785d77,_0x47c9fe){var _0x1a9fc1=function(_0x413a86){while(--_0x413a86){_0x785d77['push'](_0x785d77['shift']());}};_0x1a9fc1(++_0x47c9fe);}(_0x471e,0x67));var _0xe471=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x471e[_0x2641f9];return _0x585741;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe471('0x0'));var zipdir=require(_0xe471('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe471('0x2'));var moment=require('moment');var BPromise=require(_0xe471('0x3'));var Mustache=require('mustache');var util=require(_0xe471('0x4'));var path=require(_0xe471('0x5'));var sox=require(_0xe471('0x6'));var csv=require(_0xe471('0x7'));var ejs=require(_0xe471('0x8'));var fs=require('fs');var fs_extra=require(_0xe471('0x9'));var _=require(_0xe471('0xa'));var squel=require(_0xe471('0xb'));var crypto=require(_0xe471('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe471('0xd'));var toCsv=require(_0xe471('0x7'));var querystring=require(_0xe471('0xe'));var Papa=require(_0xe471('0xf'));var Redis=require(_0xe471('0x10'));var authService=require(_0xe471('0x11'));var qs=require(_0xe471('0x12'));var as=require(_0xe471('0x13'));var hardwareService=require(_0xe471('0x14'));var logger=require(_0xe471('0x15'))(_0xe471('0x16'));var utils=require('../../config/utils');var config=require(_0xe471('0x17'));var licenseUtil=require(_0xe471('0x18'));var db=require(_0xe471('0x19'))['db'];function respondWithStatusCode(_0x4d226d,_0x5214ae){_0x5214ae=_0x5214ae||0xcc;return function(_0x5eff59){if(_0x5eff59){return _0x4d226d['sendStatus'](_0x5214ae);}return _0x4d226d[_0xe471('0x1a')](_0x5214ae)[_0xe471('0x1b')]();};}function respondWithResult(_0x38093c,_0x4263f1){_0x4263f1=_0x4263f1||0xc8;return function(_0x40898a){if(_0x40898a){return _0x38093c[_0xe471('0x1a')](_0x4263f1)[_0xe471('0x1c')](_0x40898a);}};}function respondWithFilteredResult(_0x36f30d,_0x79f378){return function(_0x45c34a){if(_0x45c34a){var _0x87e494=typeof _0x79f378[_0xe471('0x1d')]===_0xe471('0x1e')&&typeof _0x79f378[_0xe471('0x1f')]===_0xe471('0x1e');var _0x23bb9f=_0x45c34a[_0xe471('0x20')];var _0x4ab156=_0x87e494?0x0:_0x79f378['offset'];var _0x139786=_0x87e494?_0x45c34a[_0xe471('0x20')]:_0x79f378[_0xe471('0x1d')]+_0x79f378[_0xe471('0x1f')];var _0x2be279;if(_0x139786>=_0x23bb9f){_0x139786=_0x23bb9f;_0x2be279=0xc8;}else{_0x2be279=0xce;}_0x36f30d[_0xe471('0x1a')](_0x2be279);return _0x36f30d['set'](_0xe471('0x21'),_0x4ab156+'-'+_0x139786+'/'+_0x23bb9f)['json'](_0x45c34a);}return null;};}function patchUpdates(_0x5aac81){return function(_0x29d77d){try{jsonpatch[_0xe471('0x22')](_0x29d77d,_0x5aac81,!![]);}catch(_0x1b426e){return BPromise[_0xe471('0x23')](_0x1b426e);}return _0x29d77d[_0xe471('0x24')]();};}function saveUpdates(_0xac97b5,_0x3b3c23){return function(_0x2751a2){if(_0x2751a2){return _0x2751a2['update'](_0xac97b5)[_0xe471('0x25')](function(_0x1b7b4d){return _0x1b7b4d;});}return null;};}function removeEntity(_0x35e998,_0x4a9b6e){return function(_0x1fc21d){if(_0x1fc21d){return _0x1fc21d[_0xe471('0x26')]()['then'](function(){_0x35e998['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1238ae,_0x49d250){return function(_0x10508d){if(!_0x10508d){_0x1238ae[_0xe471('0x27')](0x194);}return _0x10508d;};}function handleError(_0x4945cb,_0x465f9e){_0x465f9e=_0x465f9e||0x1f4;return function(_0x58e97e){logger[_0xe471('0x28')](_0x58e97e[_0xe471('0x29')]);if(_0x58e97e['name']){delete _0x58e97e[_0xe471('0x2a')];}_0x4945cb[_0xe471('0x1a')](_0x465f9e)[_0xe471('0x2b')](_0x58e97e);};}exports[_0xe471('0x2c')]=function(_0x31050d,_0x5a0ad1){var _0x408b8={},_0x581512={},_0x47126a={'count':0x0,'rows':[]};var _0xe5ed1d=_[_0xe471('0x2d')](db['VoiceQueuesLog'][_0xe471('0x2e')],function(_0x59e7da){return{'name':_0x59e7da['fieldName'],'type':_0x59e7da['type'][_0xe471('0x2f')]};});_0x581512['model']=_[_0xe471('0x2d')](_0xe5ed1d,_0xe471('0x2a'));_0x581512[_0xe471('0x30')]=_['keys'](_0x31050d[_0xe471('0x30')]);_0x581512[_0xe471('0x31')]=_[_0xe471('0x32')](_0x581512[_0xe471('0x33')],_0x581512[_0xe471('0x30')]);_0x408b8[_0xe471('0x34')]=_['intersection'](_0x581512[_0xe471('0x33')],qs[_0xe471('0x35')](_0x31050d[_0xe471('0x30')][_0xe471('0x35')]));_0x408b8[_0xe471('0x34')]=_0x408b8[_0xe471('0x34')][_0xe471('0x36')]?_0x408b8[_0xe471('0x34')]:_0x581512['model'];if(!_0x31050d['query']['hasOwnProperty'](_0xe471('0x37'))){_0x408b8[_0xe471('0x1f')]=qs[_0xe471('0x1f')](_0x31050d['query']['limit']);_0x408b8[_0xe471('0x1d')]=qs[_0xe471('0x1d')](_0x31050d[_0xe471('0x30')]['offset']);}_0x408b8['order']=qs[_0xe471('0x38')](_0x31050d[_0xe471('0x30')]['sort']);_0x408b8['where']=qs[_0xe471('0x31')](_[_0xe471('0x39')](_0x31050d[_0xe471('0x30')],_0x581512['filters']),_0xe5ed1d);if(_0x31050d[_0xe471('0x30')][_0xe471('0x3a')]){_0x408b8['where']=_[_0xe471('0x3b')](_0x408b8[_0xe471('0x3c')],{'$or':_[_0xe471('0x2d')](_0xe5ed1d,function(_0x4074b9){if(_0x4074b9['type']!==_0xe471('0x3d')){var _0x594216={};_0x594216[_0x4074b9[_0xe471('0x2a')]]={'$like':'%'+_0x31050d[_0xe471('0x30')][_0xe471('0x3a')]+'%'};return _0x594216;}})});}_0x408b8=_[_0xe471('0x3b')]({},_0x408b8,_0x31050d['options']);var _0x1f1cd1={'where':_0x408b8[_0xe471('0x3c')]};return db[_0xe471('0x3e')][_0xe471('0x20')](_0x1f1cd1)[_0xe471('0x25')](function(_0xd1bf2){_0x47126a[_0xe471('0x20')]=_0xd1bf2;if(_0x31050d[_0xe471('0x30')][_0xe471('0x3f')]){_0x408b8[_0xe471('0x40')]=[{'all':!![]}];}return db[_0xe471('0x3e')][_0xe471('0x41')](_0x408b8);})[_0xe471('0x25')](function(_0x33fbb7){_0x47126a[_0xe471('0x42')]=_0x33fbb7;return _0x47126a;})[_0xe471('0x25')](respondWithFilteredResult(_0x5a0ad1,_0x408b8))['catch'](handleError(_0x5a0ad1,null));};exports[_0xe471('0x43')]=function(_0x567199,_0x528ad9){var _0x28a806={'raw':!![],'where':{'id':_0x567199[_0xe471('0x44')]['id']}},_0x49313b={};_0x49313b[_0xe471('0x33')]=_[_0xe471('0x45')](db[_0xe471('0x3e')][_0xe471('0x2e')]);_0x49313b[_0xe471('0x30')]=_[_0xe471('0x45')](_0x567199[_0xe471('0x30')]);_0x49313b[_0xe471('0x31')]=_[_0xe471('0x32')](_0x49313b[_0xe471('0x33')],_0x49313b[_0xe471('0x30')]);_0x28a806[_0xe471('0x34')]=_['intersection'](_0x49313b[_0xe471('0x33')],qs[_0xe471('0x35')](_0x567199[_0xe471('0x30')][_0xe471('0x35')]));_0x28a806[_0xe471('0x34')]=_0x28a806[_0xe471('0x34')]['length']?_0x28a806[_0xe471('0x34')]:_0x49313b[_0xe471('0x33')];if(_0x567199[_0xe471('0x30')][_0xe471('0x3f')]){_0x28a806[_0xe471('0x40')]=[{'all':!![]}];}_0x28a806=_[_0xe471('0x3b')]({},_0x28a806,_0x567199['options']);return db[_0xe471('0x3e')][_0xe471('0x46')](_0x28a806)[_0xe471('0x25')](handleEntityNotFound(_0x528ad9,null))['then'](respondWithResult(_0x528ad9,null))[_0xe471('0x47')](handleError(_0x528ad9,null));};exports[_0xe471('0x48')]=function(_0x5b1c0c,_0x193918){return db[_0xe471('0x3e')][_0xe471('0x48')](_0x5b1c0c['body'],{})[_0xe471('0x25')](respondWithResult(_0x193918,0xc9))[_0xe471('0x47')](handleError(_0x193918,null));};exports[_0xe471('0x49')]=function(_0x514a8c,_0x57cbcc){if(_0x514a8c[_0xe471('0x4a')]['id']){delete _0x514a8c[_0xe471('0x4a')]['id'];}return db['VoiceQueuesLog'][_0xe471('0x46')]({'where':{'id':_0x514a8c[_0xe471('0x44')]['id']}})['then'](handleEntityNotFound(_0x57cbcc,null))['then'](saveUpdates(_0x514a8c[_0xe471('0x4a')],null))[_0xe471('0x25')](respondWithResult(_0x57cbcc,null))[_0xe471('0x47')](handleError(_0x57cbcc,null));};exports[_0xe471('0x26')]=function(_0x264727,_0x4c9e0f){return db[_0xe471('0x3e')][_0xe471('0x46')]({'where':{'id':_0x264727[_0xe471('0x44')]['id']}})[_0xe471('0x25')](handleEntityNotFound(_0x4c9e0f,null))['then'](removeEntity(_0x4c9e0f,null))['catch'](handleError(_0x4c9e0f,null));};
\ No newline at end of file
+var _0x90ab=['../../mysqldb','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','where','pick','filter','merge','options','includeAll','include','VoiceQueuesLog','findAll','rows','catch','params','rawAttributes','create','body','find','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util'];(function(_0x8a969d,_0x339d9f){var _0x1d8dc7=function(_0x283ec0){while(--_0x283ec0){_0x8a969d['push'](_0x8a969d['shift']());}};_0x1d8dc7(++_0x339d9f);}(_0x90ab,0x1e9));var _0xb90a=function(_0x2e7577,_0xee78c1){_0x2e7577=_0x2e7577-0x0;var _0x364cf3=_0x90ab[_0x2e7577];return _0x364cf3;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb90a('0x0'));var jsonpatch=require(_0xb90a('0x1'));var rp=require(_0xb90a('0x2'));var moment=require(_0xb90a('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xb90a('0x4'));var util=require('util');var path=require(_0xb90a('0x5'));var sox=require(_0xb90a('0x6'));var csv=require('to-csv');var ejs=require(_0xb90a('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb90a('0x8'));var squel=require(_0xb90a('0x9'));var crypto=require('crypto');var jsforce=require(_0xb90a('0xa'));var deskjs=require(_0xb90a('0xb'));var toCsv=require(_0xb90a('0xc'));var querystring=require(_0xb90a('0xd'));var Papa=require('papaparse');var Redis=require(_0xb90a('0xe'));var authService=require(_0xb90a('0xf'));var qs=require(_0xb90a('0x10'));var as=require(_0xb90a('0x11'));var hardwareService=require(_0xb90a('0x12'));var logger=require('../../config/logger')(_0xb90a('0x13'));var utils=require('../../config/utils');var config=require(_0xb90a('0x14'));var licenseUtil=require(_0xb90a('0x15'));var db=require(_0xb90a('0x16'))['db'];function respondWithStatusCode(_0x4b2dba,_0x5250a5){_0x5250a5=_0x5250a5||0xcc;return function(_0x32ca9e){if(_0x32ca9e){return _0x4b2dba[_0xb90a('0x17')](_0x5250a5);}return _0x4b2dba[_0xb90a('0x18')](_0x5250a5)[_0xb90a('0x19')]();};}function respondWithResult(_0x58015c,_0x44c21b){_0x44c21b=_0x44c21b||0xc8;return function(_0x4b0fe9){if(_0x4b0fe9){return _0x58015c['status'](_0x44c21b)['json'](_0x4b0fe9);}};}function respondWithFilteredResult(_0x333e6f,_0x454a3a){return function(_0xe834a6){if(_0xe834a6){var _0xc93ae5=typeof _0x454a3a['offset']===_0xb90a('0x1a')&&typeof _0x454a3a['limit']==='undefined';var _0x5bdeb0=_0xe834a6[_0xb90a('0x1b')];var _0x202707=_0xc93ae5?0x0:_0x454a3a[_0xb90a('0x1c')];var _0x2c15ec=_0xc93ae5?_0xe834a6[_0xb90a('0x1b')]:_0x454a3a[_0xb90a('0x1c')]+_0x454a3a[_0xb90a('0x1d')];var _0x55c4c0;if(_0x2c15ec>=_0x5bdeb0){_0x2c15ec=_0x5bdeb0;_0x55c4c0=0xc8;}else{_0x55c4c0=0xce;}_0x333e6f[_0xb90a('0x18')](_0x55c4c0);return _0x333e6f[_0xb90a('0x1e')](_0xb90a('0x1f'),_0x202707+'-'+_0x2c15ec+'/'+_0x5bdeb0)[_0xb90a('0x20')](_0xe834a6);}return null;};}function patchUpdates(_0xffcb5b){return function(_0x44f89e){try{jsonpatch[_0xb90a('0x21')](_0x44f89e,_0xffcb5b,!![]);}catch(_0x2b0230){return BPromise[_0xb90a('0x22')](_0x2b0230);}return _0x44f89e[_0xb90a('0x23')]();};}function saveUpdates(_0x833c3d,_0x1a9012){return function(_0xbee8fe){if(_0xbee8fe){return _0xbee8fe[_0xb90a('0x24')](_0x833c3d)[_0xb90a('0x25')](function(_0x58f07b){return _0x58f07b;});}return null;};}function removeEntity(_0x2574fa,_0x4f999b){return function(_0x359beb){if(_0x359beb){return _0x359beb[_0xb90a('0x26')]()[_0xb90a('0x25')](function(){_0x2574fa[_0xb90a('0x18')](0xcc)[_0xb90a('0x19')]();});}};}function handleEntityNotFound(_0x41af64,_0x346f24){return function(_0xed8aa3){if(!_0xed8aa3){_0x41af64['sendStatus'](0x194);}return _0xed8aa3;};}function handleError(_0x20a21d,_0x1abce0){_0x1abce0=_0x1abce0||0x1f4;return function(_0x373374){logger['error'](_0x373374[_0xb90a('0x27')]);if(_0x373374[_0xb90a('0x28')]){delete _0x373374['name'];}_0x20a21d[_0xb90a('0x18')](_0x1abce0)[_0xb90a('0x29')](_0x373374);};}exports[_0xb90a('0x2a')]=function(_0x596934,_0x3275af){var _0x5c598a={},_0xa1bec1={},_0x4b9dc0={'count':0x0,'rows':[]};var _0x48091e=_[_0xb90a('0x2b')](db['VoiceQueuesLog']['rawAttributes'],function(_0x3aacc9){return{'name':_0x3aacc9[_0xb90a('0x2c')],'type':_0x3aacc9[_0xb90a('0x2d')][_0xb90a('0x2e')]};});_0xa1bec1[_0xb90a('0x2f')]=_[_0xb90a('0x2b')](_0x48091e,_0xb90a('0x28'));_0xa1bec1[_0xb90a('0x30')]=_[_0xb90a('0x31')](_0x596934[_0xb90a('0x30')]);_0xa1bec1[_0xb90a('0x32')]=_['intersection'](_0xa1bec1[_0xb90a('0x2f')],_0xa1bec1[_0xb90a('0x30')]);_0x5c598a['attributes']=_[_0xb90a('0x33')](_0xa1bec1[_0xb90a('0x2f')],qs[_0xb90a('0x34')](_0x596934[_0xb90a('0x30')][_0xb90a('0x34')]));_0x5c598a['attributes']=_0x5c598a[_0xb90a('0x35')][_0xb90a('0x36')]?_0x5c598a[_0xb90a('0x35')]:_0xa1bec1[_0xb90a('0x2f')];if(!_0x596934['query'][_0xb90a('0x37')]('nolimit')){_0x5c598a[_0xb90a('0x1d')]=qs[_0xb90a('0x1d')](_0x596934[_0xb90a('0x30')][_0xb90a('0x1d')]);_0x5c598a['offset']=qs[_0xb90a('0x1c')](_0x596934['query']['offset']);}_0x5c598a[_0xb90a('0x38')]=qs['sort'](_0x596934[_0xb90a('0x30')]['sort']);_0x5c598a[_0xb90a('0x39')]=qs[_0xb90a('0x32')](_[_0xb90a('0x3a')](_0x596934['query'],_0xa1bec1[_0xb90a('0x32')]),_0x48091e);if(_0x596934['query'][_0xb90a('0x3b')]){_0x5c598a[_0xb90a('0x39')]=_[_0xb90a('0x3c')](_0x5c598a[_0xb90a('0x39')],{'$or':_[_0xb90a('0x2b')](_0x48091e,function(_0x13b509){if(_0x13b509[_0xb90a('0x2d')]!=='VIRTUAL'){var _0x4b9780={};_0x4b9780[_0x13b509[_0xb90a('0x28')]]={'$like':'%'+_0x596934['query']['filter']+'%'};return _0x4b9780;}})});}_0x5c598a=_['merge']({},_0x5c598a,_0x596934[_0xb90a('0x3d')]);var _0x3cb3f8={'where':_0x5c598a['where']};return db['VoiceQueuesLog'][_0xb90a('0x1b')](_0x3cb3f8)[_0xb90a('0x25')](function(_0x37b8c5){_0x4b9dc0['count']=_0x37b8c5;if(_0x596934[_0xb90a('0x30')][_0xb90a('0x3e')]){_0x5c598a[_0xb90a('0x3f')]=[{'all':!![]}];}return db[_0xb90a('0x40')][_0xb90a('0x41')](_0x5c598a);})[_0xb90a('0x25')](function(_0x21ace9){_0x4b9dc0[_0xb90a('0x42')]=_0x21ace9;return _0x4b9dc0;})['then'](respondWithFilteredResult(_0x3275af,_0x5c598a))[_0xb90a('0x43')](handleError(_0x3275af,null));};exports['show']=function(_0x5ac59e,_0x559e25){var _0x26c2af={'raw':!![],'where':{'id':_0x5ac59e[_0xb90a('0x44')]['id']}},_0x38589e={};_0x38589e[_0xb90a('0x2f')]=_[_0xb90a('0x31')](db[_0xb90a('0x40')][_0xb90a('0x45')]);_0x38589e[_0xb90a('0x30')]=_[_0xb90a('0x31')](_0x5ac59e['query']);_0x38589e[_0xb90a('0x32')]=_[_0xb90a('0x33')](_0x38589e[_0xb90a('0x2f')],_0x38589e[_0xb90a('0x30')]);_0x26c2af[_0xb90a('0x35')]=_[_0xb90a('0x33')](_0x38589e[_0xb90a('0x2f')],qs[_0xb90a('0x34')](_0x5ac59e['query']['fields']));_0x26c2af['attributes']=_0x26c2af[_0xb90a('0x35')][_0xb90a('0x36')]?_0x26c2af[_0xb90a('0x35')]:_0x38589e[_0xb90a('0x2f')];if(_0x5ac59e[_0xb90a('0x30')][_0xb90a('0x3e')]){_0x26c2af[_0xb90a('0x3f')]=[{'all':!![]}];}_0x26c2af=_[_0xb90a('0x3c')]({},_0x26c2af,_0x5ac59e['options']);return db[_0xb90a('0x40')]['find'](_0x26c2af)[_0xb90a('0x25')](handleEntityNotFound(_0x559e25,null))[_0xb90a('0x25')](respondWithResult(_0x559e25,null))[_0xb90a('0x43')](handleError(_0x559e25,null));};exports[_0xb90a('0x46')]=function(_0x366e4f,_0x37c3a0){return db['VoiceQueuesLog'][_0xb90a('0x46')](_0x366e4f[_0xb90a('0x47')],{})[_0xb90a('0x25')](respondWithResult(_0x37c3a0,0xc9))['catch'](handleError(_0x37c3a0,null));};exports[_0xb90a('0x24')]=function(_0xfad118,_0xfed90a){if(_0xfad118[_0xb90a('0x47')]['id']){delete _0xfad118['body']['id'];}return db['VoiceQueuesLog'][_0xb90a('0x48')]({'where':{'id':_0xfad118[_0xb90a('0x44')]['id']}})[_0xb90a('0x25')](handleEntityNotFound(_0xfed90a,null))[_0xb90a('0x25')](saveUpdates(_0xfad118['body'],null))[_0xb90a('0x25')](respondWithResult(_0xfed90a,null))['catch'](handleError(_0xfed90a,null));};exports[_0xb90a('0x26')]=function(_0xfbab31,_0x30dd9b){return db[_0xb90a('0x40')][_0xb90a('0x48')]({'where':{'id':_0xfbab31[_0xb90a('0x44')]['id']}})['then'](handleEntityNotFound(_0x30dd9b,null))['then'](removeEntity(_0x30dd9b,null))[_0xb90a('0x43')](handleError(_0x30dd9b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c65=['../../config/environment','./voiceQueuesLog.attributes','define','VoiceQueuesLog','voice_queues_log','event_dtm','dtm','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x1e3a2f,_0x1f08bb){var _0xc67b0b=function(_0x1a5363){while(--_0x1a5363){_0x1e3a2f['push'](_0x1e3a2f['shift']());}};_0xc67b0b(++_0x1f08bb);}(_0x0c65,0x19d));var _0x50c6=function(_0x31d558,_0xb34593){_0x31d558=_0x31d558-0x0;var _0x1e561b=_0x0c65[_0x31d558];return _0x1e561b;};'use strict';var _=require(_0x50c6('0x0'));var util=require('util');var logger=require(_0x50c6('0x1'))(_0x50c6('0x2'));var moment=require(_0x50c6('0x3'));var BPromise=require(_0x50c6('0x4'));var rp=require(_0x50c6('0x5'));var fs=require('fs');var path=require(_0x50c6('0x6'));var rimraf=require('rimraf');var config=require(_0x50c6('0x7'));var attributes=require(_0x50c6('0x8'));module['exports']=function(_0x4087c4,_0x55d805){return _0x4087c4[_0x50c6('0x9')](_0x50c6('0xa'),attributes,{'tableName':_0x50c6('0xb'),'paranoid':![],'indexes':[{'name':_0x50c6('0xc'),'fields':['event',_0x50c6('0xd')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x5718=['define','voice_queues_log','event_dtm','event','dtm','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x574ef6,_0x4cf4ab){var _0x5dc934=function(_0x3498b2){while(--_0x3498b2){_0x574ef6['push'](_0x574ef6['shift']());}};_0x5dc934(++_0x4cf4ab);}(_0x5718,0xb9));var _0x8571=function(_0x1b534c,_0x2fe090){_0x1b534c=_0x1b534c-0x0;var _0x5db369=_0x5718[_0x1b534c];return _0x5db369;};'use strict';var _=require(_0x8571('0x0'));var util=require(_0x8571('0x1'));var logger=require(_0x8571('0x2'))(_0x8571('0x3'));var moment=require(_0x8571('0x4'));var BPromise=require(_0x8571('0x5'));var rp=require(_0x8571('0x6'));var fs=require('fs');var path=require(_0x8571('0x7'));var rimraf=require(_0x8571('0x8'));var config=require(_0x8571('0x9'));var attributes=require('./voiceQueuesLog.attributes');module['exports']=function(_0x5ee879,_0x1f1b51){return _0x5ee879[_0x8571('0xa')]('VoiceQueuesLog',attributes,{'tableName':_0x8571('0xb'),'paranoid':![],'indexes':[{'name':_0x8571('0xc'),'fields':[_0x8571('0xd'),_0x8571('0xe')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80fb=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','message','catch'];(function(_0x24cabb,_0x8a4fdc){var _0x1a2882=function(_0x1ecda4){while(--_0x1ecda4){_0x24cabb['push'](_0x24cabb['shift']());}};_0x1a2882(++_0x8a4fdc);}(_0x80fb,0x11e));var _0xb80f=function(_0x50aa2e,_0xfbd6f0){_0x50aa2e=_0x50aa2e-0x0;var _0x5e07f0=_0x80fb[_0x50aa2e];return _0x5e07f0;};'use strict';var _=require('lodash');var util=require(_0xb80f('0x0'));var moment=require(_0xb80f('0x1'));var BPromise=require('bluebird');var rs=require(_0xb80f('0x2'));var fs=require('fs');var Redis=require(_0xb80f('0x3'));var db=require(_0xb80f('0x4'))['db'];var utils=require(_0xb80f('0x5'));var logger=require(_0xb80f('0x6'))(_0xb80f('0x7'));var config=require(_0xb80f('0x8'));var jayson=require(_0xb80f('0x9'));var client=jayson['client'][_0xb80f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x251de5,_0x44cc46,_0x2083ab){return new BPromise(function(_0x28027c,_0x1094bb){return client[_0xb80f('0xb')](_0x251de5,_0x2083ab)[_0xb80f('0xc')](function(_0x197faa){logger[_0xb80f('0xd')](_0xb80f('0xe'),_0x44cc46,_0xb80f('0xf'));logger[_0xb80f('0x10')](_0xb80f('0x11'),_0x44cc46,_0xb80f('0xf'),JSON[_0xb80f('0x12')](_0x197faa));if(_0x197faa['error']){if(_0x197faa[_0xb80f('0x13')]['code']===0x1f4){logger[_0xb80f('0x13')](_0xb80f('0xe'),_0x44cc46,_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);return _0x1094bb(_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);}logger[_0xb80f('0x13')](_0xb80f('0xe'),_0x44cc46,_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);return _0x28027c(_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);}else{logger[_0xb80f('0xd')](_0xb80f('0xe'),_0x44cc46,_0xb80f('0xf'));_0x28027c(_0x197faa['result'][_0xb80f('0x14')]);}})[_0xb80f('0x15')](function(_0x541c7b){logger['error'](_0xb80f('0xe'),_0x44cc46,_0x541c7b);_0x1094bb(_0x541c7b);});});}
\ No newline at end of file
+var _0x43b7=['info','request\x20sent','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceQueuesLog,\x20%s,\x20%s','message','result','lodash','bluebird','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x305183,_0x4a7431){var _0x23caab=function(_0x1a08dc){while(--_0x1a08dc){_0x305183['push'](_0x305183['shift']());}};_0x23caab(++_0x4a7431);}(_0x43b7,0x183));var _0x743b=function(_0x2b9ddc,_0x15ac0f){_0x2b9ddc=_0x2b9ddc-0x0;var _0x34f382=_0x43b7[_0x2b9ddc];return _0x34f382;};'use strict';var _=require(_0x743b('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x743b('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x743b('0x2'));var db=require(_0x743b('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x743b('0x4'));var config=require(_0x743b('0x5'));var jayson=require(_0x743b('0x6'));var client=jayson[_0x743b('0x7')][_0x743b('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1b25ec,_0x2560ad,_0x515ed3){return new BPromise(function(_0x542c29,_0x5c3a06){return client['request'](_0x1b25ec,_0x515ed3)['then'](function(_0xfb58b2){logger[_0x743b('0x9')]('VoiceQueuesLog,\x20%s,\x20%s',_0x2560ad,_0x743b('0xa'));logger['debug'](_0x743b('0xb'),_0x2560ad,_0x743b('0xa'),JSON[_0x743b('0xc')](_0xfb58b2));if(_0xfb58b2[_0x743b('0xd')]){if(_0xfb58b2[_0x743b('0xd')][_0x743b('0xe')]===0x1f4){logger[_0x743b('0xd')](_0x743b('0xf'),_0x2560ad,_0xfb58b2[_0x743b('0xd')][_0x743b('0x10')]);return _0x5c3a06(_0xfb58b2[_0x743b('0xd')]['message']);}logger[_0x743b('0xd')](_0x743b('0xf'),_0x2560ad,_0xfb58b2[_0x743b('0xd')][_0x743b('0x10')]);return _0x542c29(_0xfb58b2[_0x743b('0xd')]['message']);}else{logger[_0x743b('0x9')](_0x743b('0xf'),_0x2560ad,_0x743b('0xa'));_0x542c29(_0xfb58b2[_0x743b('0x11')]['message']);}})['catch'](function(_0x34db76){logger['error'](_0x743b('0xf'),_0x2560ad,_0x34db76);_0x5c3a06(_0x34db76);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d7c=['delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceRecording.controller','isAuthenticated','get','/:id/download','download','/:id/downloads','/:id/transcribe','post'];(function(_0x31da02,_0xf7b075){var _0x17fa29=function(_0x56c06f){while(--_0x56c06f){_0x31da02['push'](_0x31da02['shift']());}};_0x17fa29(++_0xf7b075);}(_0x2d7c,0x107));var _0xc2d7=function(_0x32ad2d,_0x188218){_0x32ad2d=_0x32ad2d-0x0;var _0x2e5aa2=_0x2d7c[_0x32ad2d];return _0x2e5aa2;};'use strict';var multer=require(_0xc2d7('0x0'));var util=require(_0xc2d7('0x1'));var path=require(_0xc2d7('0x2'));var timeout=require(_0xc2d7('0x3'));var express=require(_0xc2d7('0x4'));var router=express[_0xc2d7('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xc2d7('0x6'));var interaction=require(_0xc2d7('0x7'));var config=require(_0xc2d7('0x8'));var controller=require(_0xc2d7('0x9'));router['get']('/',auth[_0xc2d7('0xa')](),controller['index']);router['get']('/describe',auth[_0xc2d7('0xa')](),controller['describe']);router[_0xc2d7('0xb')]('/:id',auth[_0xc2d7('0xa')](),controller['show']);router[_0xc2d7('0xb')](_0xc2d7('0xc'),auth[_0xc2d7('0xa')](),controller[_0xc2d7('0xd')]);router[_0xc2d7('0xb')](_0xc2d7('0xe'),controller['downloads']);router[_0xc2d7('0xb')](_0xc2d7('0xf'),auth[_0xc2d7('0xa')](),controller['downloadTranscribe']);router[_0xc2d7('0x10')]('/',auth[_0xc2d7('0xa')](),controller['create']);router[_0xc2d7('0x10')](_0xc2d7('0xf'),auth['isAuthenticated'](),controller['runTranscribe']);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0xc2d7('0x11')]('/:id',auth[_0xc2d7('0xa')](),controller[_0xc2d7('0x12')]);module[_0xc2d7('0x13')]=router;
\ No newline at end of file
+var _0xd04a=['show','/:id/download','download','/:id/downloads','/:id/transcribe','create','post','runTranscribe','put','/:id','delete','destroy','exports','multer','util','path','express','../../components/auth/service','../../config/environment','./voiceRecording.controller','get','/describe','isAuthenticated','describe'];(function(_0x2f20f8,_0x54a3f2){var _0xfcb1b7=function(_0xfd0c0d){while(--_0xfd0c0d){_0x2f20f8['push'](_0x2f20f8['shift']());}};_0xfcb1b7(++_0x54a3f2);}(_0xd04a,0x85));var _0xad04=function(_0x141b49,_0x249428){_0x141b49=_0x141b49-0x0;var _0xb4cd2b=_0xd04a[_0x141b49];return _0xb4cd2b;};'use strict';var multer=require(_0xad04('0x0'));var util=require(_0xad04('0x1'));var path=require(_0xad04('0x2'));var timeout=require('connect-timeout');var express=require(_0xad04('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xad04('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xad04('0x5'));var controller=require(_0xad04('0x6'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xad04('0x7')](_0xad04('0x8'),auth[_0xad04('0x9')](),controller[_0xad04('0xa')]);router[_0xad04('0x7')]('/:id',auth[_0xad04('0x9')](),controller[_0xad04('0xb')]);router[_0xad04('0x7')](_0xad04('0xc'),auth['isAuthenticated'](),controller[_0xad04('0xd')]);router[_0xad04('0x7')](_0xad04('0xe'),controller['downloads']);router['get'](_0xad04('0xf'),auth[_0xad04('0x9')](),controller['downloadTranscribe']);router['post']('/',auth[_0xad04('0x9')](),controller[_0xad04('0x10')]);router[_0xad04('0x11')](_0xad04('0xf'),auth[_0xad04('0x9')](),controller[_0xad04('0x12')]);router[_0xad04('0x13')](_0xad04('0x14'),auth[_0xad04('0x9')](),controller['update']);router[_0xad04('0x15')](_0xad04('0x14'),auth['isAuthenticated'](),controller[_0xad04('0x16')]);module[_0xad04('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf0bcac,_0x531755){_0xf0bcac=_0xf0bcac-0x0;var _0x4e4c65=_0xa9e0[_0xf0bcac];return _0x4e4c65;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
+var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0xa9e0,0x123));var _0x0a9e=function(_0x34bf97,_0xc60f9d){_0x34bf97=_0x34bf97-0x0;var _0x292719=_0xa9e0[_0x34bf97];return _0x292719;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe53a=['[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','tempSentiment','updateAttributes','fileText','root','/server/files/transcribes/transcribe_','.txt','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','querystring','papaparse','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','limit','offset','count','set','Content-Range','json','reject','save','then','destroy','sendStatus','error','stack','name','send','map','VoiceRecording','rawAttributes','fieldName','type','key','model','format','query','intersection','attributes','fields','length','order','sort','filters','filter','where','merge','options','includeAll','include','rows','catch','keys','create','body','update','find','describe','download','../../components/encryptor','uniqueid','params','value','%s.cypher','existsSync','decryptFile','recording','ValidationError','filename','extname','Not\x20found','downloads','sequelize','token','$and','push','secrets','Sequelize','VoiceRecording\x20not\x20found','unlink','Entity\x20not\x20found','info','isNil','File:\x20\x22','unlinkSync','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','listBuckets','createBucket','upload','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','Location','bucket','location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJobName','transcribeName','TranscriptionJob','runTranscribe','findOne','Setting','transcribeAccountId','language','Transcribe\x20not\x20configured','runSentiment','sentiment','sentimentAccountId','Sentiment\x20Analysis\x20not\x20configured','Cloud\x20Provider\x20not\x20available','data1','transcribeRegion','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','data2','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','transcribeStatus'];(function(_0x5d184e,_0x5a9ea6){var _0x2ff1e7=function(_0x1a774a){while(--_0x1a774a){_0x5d184e['push'](_0x5d184e['shift']());}};_0x2ff1e7(++_0x5a9ea6);}(_0xe53a,0x95));var _0xae53=function(_0x2c4c6c,_0x563ef8){_0x2c4c6c=_0x2c4c6c-0x0;var _0x5f4a07=_0xe53a[_0x2c4c6c];return _0x5f4a07;};'use strict';var emlformat=require(_0xae53('0x0'));var rimraf=require(_0xae53('0x1'));var zipdir=require(_0xae53('0x2'));var jsonpatch=require(_0xae53('0x3'));var rp=require(_0xae53('0x4'));var moment=require(_0xae53('0x5'));var BPromise=require(_0xae53('0x6'));var Mustache=require(_0xae53('0x7'));var util=require(_0xae53('0x8'));var path=require(_0xae53('0x9'));var sox=require(_0xae53('0xa'));var csv=require(_0xae53('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xae53('0xc'));var _=require(_0xae53('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xae53('0xb'));var querystring=require(_0xae53('0xe'));var Papa=require(_0xae53('0xf'));var AWS=require('aws-sdk');var uuidv4=require(_0xae53('0x10'));var Redis=require(_0xae53('0x11'));var authService=require(_0xae53('0x12'));var qs=require(_0xae53('0x13'));var as=require(_0xae53('0x14'));var hardwareService=require(_0xae53('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0xae53('0x16'));var config=require(_0xae53('0x17'));var licenseUtil=require(_0xae53('0x18'));var db=require(_0xae53('0x19'))['db'];function respondWithStatusCode(_0x5d4b6d,_0x464530){_0x464530=_0x464530||0xcc;return function(_0x440584){if(_0x440584){return _0x5d4b6d['sendStatus'](_0x464530);}return _0x5d4b6d[_0xae53('0x1a')](_0x464530)[_0xae53('0x1b')]();};}function respondWithResult(_0x128e20,_0x279225){_0x279225=_0x279225||0xc8;return function(_0x24bff8){if(_0x24bff8){return _0x128e20[_0xae53('0x1a')](_0x279225)['json'](_0x24bff8);}};}function respondWithFilteredResult(_0x41a5cc,_0x10d60c){return function(_0x4abf43){if(_0x4abf43){var _0x3686e4=typeof _0x10d60c['offset']===_0xae53('0x1c')&&typeof _0x10d60c[_0xae53('0x1d')]==='undefined';var _0x239977=_0x4abf43['count'];var _0x349a1a=_0x3686e4?0x0:_0x10d60c[_0xae53('0x1e')];var _0x472cc5=_0x3686e4?_0x4abf43[_0xae53('0x1f')]:_0x10d60c[_0xae53('0x1e')]+_0x10d60c[_0xae53('0x1d')];var _0x4d0d07;if(_0x472cc5>=_0x239977){_0x472cc5=_0x239977;_0x4d0d07=0xc8;}else{_0x4d0d07=0xce;}_0x41a5cc[_0xae53('0x1a')](_0x4d0d07);return _0x41a5cc[_0xae53('0x20')](_0xae53('0x21'),_0x349a1a+'-'+_0x472cc5+'/'+_0x239977)[_0xae53('0x22')](_0x4abf43);}return null;};}function patchUpdates(_0x49857a){return function(_0x5d23be){try{jsonpatch['apply'](_0x5d23be,_0x49857a,!![]);}catch(_0x2584cf){return BPromise[_0xae53('0x23')](_0x2584cf);}return _0x5d23be[_0xae53('0x24')]();};}function saveUpdates(_0x3df0aa,_0x511b96){return function(_0x357156){if(_0x357156){return _0x357156['update'](_0x3df0aa)[_0xae53('0x25')](function(_0x3b16d6){return _0x3b16d6;});}return null;};}function removeEntity(_0x32d090,_0x2125b5){return function(_0x275fb4){if(_0x275fb4){return _0x275fb4[_0xae53('0x26')]()[_0xae53('0x25')](function(){_0x32d090[_0xae53('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3bc396,_0x553ebf){return function(_0x36ce15){if(!_0x36ce15){_0x3bc396[_0xae53('0x27')](0x194);}return _0x36ce15;};}function handleError(_0x28799d,_0x2ed98e){_0x2ed98e=_0x2ed98e||0x1f4;return function(_0x482cec){logger[_0xae53('0x28')](_0x482cec[_0xae53('0x29')]);if(_0x482cec[_0xae53('0x2a')]){delete _0x482cec[_0xae53('0x2a')];}_0x28799d[_0xae53('0x1a')](_0x2ed98e)[_0xae53('0x2b')](_0x482cec);};}exports['index']=function(_0x2e2a65,_0x2ce8ed){var _0x33bcbf={},_0xa80db0={},_0x577153={'count':0x0,'rows':[]};var _0x27b4a6=_[_0xae53('0x2c')](db[_0xae53('0x2d')][_0xae53('0x2e')],function(_0x319cff){return{'name':_0x319cff[_0xae53('0x2f')],'type':_0x319cff[_0xae53('0x30')][_0xae53('0x31')]};});_0xa80db0[_0xae53('0x32')]=_['differenceBy'](_[_0xae53('0x2c')](_0x27b4a6,_0xae53('0x2a')),[_0xae53('0x33')]);_0xa80db0[_0xae53('0x34')]=_['keys'](_0x2e2a65[_0xae53('0x34')]);_0xa80db0['filters']=_[_0xae53('0x35')](_0xa80db0['model'],_0xa80db0[_0xae53('0x34')]);_0x33bcbf[_0xae53('0x36')]=_['intersection'](_0xa80db0[_0xae53('0x32')],qs[_0xae53('0x37')](_0x2e2a65[_0xae53('0x34')][_0xae53('0x37')]));_0x33bcbf[_0xae53('0x36')]=_0x33bcbf['attributes'][_0xae53('0x38')]?_0x33bcbf['attributes']:_0xa80db0['model'];if(!_0x2e2a65[_0xae53('0x34')]['hasOwnProperty']('nolimit')){_0x33bcbf[_0xae53('0x1d')]=qs[_0xae53('0x1d')](_0x2e2a65[_0xae53('0x34')][_0xae53('0x1d')]);_0x33bcbf[_0xae53('0x1e')]=qs['offset'](_0x2e2a65[_0xae53('0x34')][_0xae53('0x1e')]);}_0x33bcbf[_0xae53('0x39')]=qs[_0xae53('0x3a')](_0x2e2a65[_0xae53('0x34')][_0xae53('0x3a')]);_0x33bcbf['where']=qs[_0xae53('0x3b')](_['pick'](_0x2e2a65[_0xae53('0x34')],_0xa80db0['filters']),_0x27b4a6);if(_0x2e2a65['query'][_0xae53('0x3c')]){_0x33bcbf[_0xae53('0x3d')]=_[_0xae53('0x3e')](_0x33bcbf[_0xae53('0x3d')],{'$or':_[_0xae53('0x2c')](_0x27b4a6,function(_0x293f1a){if(_0x293f1a[_0xae53('0x30')]!=='VIRTUAL'){var _0x1eaa64={};_0x1eaa64[_0x293f1a[_0xae53('0x2a')]]={'$like':'%'+_0x2e2a65[_0xae53('0x34')][_0xae53('0x3c')]+'%'};return _0x1eaa64;}})});}_0x33bcbf=_[_0xae53('0x3e')]({},_0x33bcbf,_0x2e2a65[_0xae53('0x3f')]);var _0x28279c={'where':_0x33bcbf[_0xae53('0x3d')]};return db['VoiceRecording'][_0xae53('0x1f')](_0x28279c)[_0xae53('0x25')](function(_0xdd557c){_0x577153[_0xae53('0x1f')]=_0xdd557c;if(_0x2e2a65['query'][_0xae53('0x40')]){_0x33bcbf[_0xae53('0x41')]=[{'all':!![]}];}return db['VoiceRecording']['findAll'](_0x33bcbf);})[_0xae53('0x25')](function(_0x106524){_0x577153[_0xae53('0x42')]=_0x106524;return _0x577153;})['then'](respondWithFilteredResult(_0x2ce8ed,_0x33bcbf))[_0xae53('0x43')](handleError(_0x2ce8ed,null));};exports['show']=function(_0x2d4d41,_0x31b306){var _0x573dfe={'raw':![],'where':{'id':_0x2d4d41['params']['id']}},_0x4ce707={};_0x4ce707['model']=_[_0xae53('0x44')](db['VoiceRecording'][_0xae53('0x2e')]);_0x4ce707['query']=_[_0xae53('0x44')](_0x2d4d41[_0xae53('0x34')]);_0x4ce707['filters']=_[_0xae53('0x35')](_0x4ce707[_0xae53('0x32')],_0x4ce707[_0xae53('0x34')]);_0x573dfe[_0xae53('0x36')]=_[_0xae53('0x35')](_0x4ce707['model'],qs['fields'](_0x2d4d41[_0xae53('0x34')]['fields']));_0x573dfe[_0xae53('0x36')]=_0x573dfe[_0xae53('0x36')]['length']?_0x573dfe[_0xae53('0x36')]:_0x4ce707['model'];if(_0x2d4d41[_0xae53('0x34')][_0xae53('0x40')]){_0x573dfe[_0xae53('0x41')]=[{'all':!![]}];}_0x573dfe=_[_0xae53('0x3e')]({},_0x573dfe,_0x2d4d41['options']);return db[_0xae53('0x2d')]['find'](_0x573dfe)[_0xae53('0x25')](handleEntityNotFound(_0x31b306,null))['then'](respondWithResult(_0x31b306,null))['catch'](handleError(_0x31b306,null));};exports[_0xae53('0x45')]=function(_0x3e410f,_0x1aac9b){return db[_0xae53('0x2d')][_0xae53('0x45')](_0x3e410f[_0xae53('0x46')],{})[_0xae53('0x25')](respondWithResult(_0x1aac9b,0xc9))[_0xae53('0x43')](handleError(_0x1aac9b,null));};exports[_0xae53('0x47')]=function(_0x4fd18f,_0x13c1c8){if(_0x4fd18f[_0xae53('0x46')]['id']){delete _0x4fd18f['body']['id'];}return db[_0xae53('0x2d')][_0xae53('0x48')]({'where':{'id':_0x4fd18f['params']['id']}})[_0xae53('0x25')](handleEntityNotFound(_0x13c1c8,null))[_0xae53('0x25')](saveUpdates(_0x4fd18f[_0xae53('0x46')],null))[_0xae53('0x25')](respondWithResult(_0x13c1c8,null))[_0xae53('0x43')](handleError(_0x13c1c8,null));};exports['describe']=function(_0x3cef4a,_0xb5a79c){return db[_0xae53('0x2d')][_0xae53('0x49')]()[_0xae53('0x25')](respondWithResult(_0xb5a79c,null))[_0xae53('0x43')](handleError(_0xb5a79c,null));};exports[_0xae53('0x4a')]=function(_0x55f458,_0x56586e,_0x157c55){var _0xbbeb34=require(_0xae53('0x4b'));var _0x329fc0=![];var _0x47a22b={};if(_0x55f458['query'][_0xae53('0x30')]&&_0x55f458[_0xae53('0x34')][_0xae53('0x30')]===_0xae53('0x4c')){_0x47a22b[_0xae53('0x4c')]=_0x55f458[_0xae53('0x4d')]['id'];}else{_0x47a22b['id']=_0x55f458[_0xae53('0x4d')]['id'];}return db[_0xae53('0x2d')][_0xae53('0x48')]({'where':_0x47a22b,'attributes':['id',_0xae53('0x4e')],'raw':!![]})['then'](handleEntityNotFound(_0x56586e,null))[_0xae53('0x25')](function(_0x2b668d){if(_0x2b668d){var _0xd574c0=_0x2b668d[_0xae53('0x4e')];var _0x429264=util['format'](_0xae53('0x4f'),_0xd574c0);if(fs[_0xae53('0x50')](_0x429264)){_0x329fc0=!![];return _0xbbeb34[_0xae53('0x51')](_0x429264,_0xd574c0,config['secrets'][_0xae53('0x52')])['then'](function(){return _0x2b668d;});}return _0x2b668d;}})['then'](function(_0x342c7){if(_0x342c7){var _0x4b0f42=_0x342c7['value'];if(!fs[_0xae53('0x50')](_0x4b0f42)){throw new db['Sequelize'][(_0xae53('0x53'))]('VoiceRecording\x20not\x20found');}if(_0x342c7[_0xae53('0x54')]){return _0x56586e[_0xae53('0x4a')](_0x4b0f42,_0x342c7[_0xae53('0x54')]+path[_0xae53('0x55')](_0x4b0f42),function(){if(_0x329fc0){fs['unlink'](_0x4b0f42);}});}else{return _0x56586e['download'](_0x4b0f42,function(_0x2021ad){if(_0x329fc0){fs['unlink'](_0x4b0f42);}});}}})[_0xae53('0x43')](function(_0x5229ff){if(_0x5229ff['message']==='VoiceRecording\x20not\x20found'){_0x56586e[_0xae53('0x1a')](0x194)['send'](_0xae53('0x56'));}else{return handleError(_0x56586e,null);}});};exports[_0xae53('0x57')]=function(_0x3a3b66,_0x369f3d,_0x492a68){var _0xf790b9=require(_0xae53('0x4b'));var _0x24ec11=![];var _0x412d95={'$and':[db[_0xae53('0x58')][_0xae53('0x3d')](db[_0xae53('0x58')]['fn']('MD5',db['sequelize']['col'](_0xae53('0x4c'))),_0x3a3b66[_0xae53('0x34')][_0xae53('0x59')])]};if(_0x3a3b66[_0xae53('0x34')]['type']&&_0x3a3b66[_0xae53('0x34')][_0xae53('0x30')]===_0xae53('0x4c')){_0x412d95[_0xae53('0x5a')][_0xae53('0x5b')]({'uniqueid':_0x3a3b66[_0xae53('0x4d')]['id']});}else{_0x412d95[_0xae53('0x5a')][_0xae53('0x5b')]({'id':_0x3a3b66[_0xae53('0x4d')]['id']});}return db[_0xae53('0x2d')][_0xae53('0x48')]({'where':_0x412d95,'attributes':['id',_0xae53('0x4e')],'raw':!![]})[_0xae53('0x25')](handleEntityNotFound(_0x369f3d,null))['then'](function(_0x559cf3){if(_0x559cf3){var _0x4eb5f2=util['format'](_0xae53('0x4f'),_0x559cf3[_0xae53('0x4e')]);if(fs[_0xae53('0x50')](_0x4eb5f2)){_0x24ec11=!![];return _0xf790b9['decryptFile'](_0x4eb5f2,_0x559cf3['value'],config[_0xae53('0x5c')]['recording'])[_0xae53('0x25')](function(){return _0x559cf3;});}return _0x559cf3;}})['then'](function(_0x35b4e9){if(_0x35b4e9){if(!fs['existsSync'](_0x35b4e9[_0xae53('0x4e')])){throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))](_0xae53('0x5e'));}if(_0x35b4e9[_0xae53('0x54')]){return _0x369f3d[_0xae53('0x4a')](_0x35b4e9[_0xae53('0x4e')],_0x35b4e9[_0xae53('0x54')]+path[_0xae53('0x55')](_0x35b4e9['value']),function(){if(_0x24ec11){fs['unlink'](_0x35b4e9[_0xae53('0x4e')]);}});}else{return _0x369f3d['download'](_0x35b4e9[_0xae53('0x4e')],function(_0x19f13d){if(_0x24ec11){fs[_0xae53('0x5f')](_0x35b4e9[_0xae53('0x4e')]);}});}}})['catch'](handleError(_0x369f3d,null));};exports[_0xae53('0x26')]=function(_0x1fae0b,_0xcaa2c){return db[_0xae53('0x2d')]['find']({'where':{'id':_0x1fae0b['params']['id']}})['then'](function(_0x11f4b7){if(_['isNil'](_0x11f4b7)){throw new ReferenceError(_0xae53('0x60'));}return _0x11f4b7;})['then'](function(_0x1f5b80){var _0x4738cf=_0x1f5b80[_0xae53('0x4e')];logger[_0xae53('0x61')]('cancellazione\x20fisica\x20documento\x20%s',_0x4738cf);if(!_[_0xae53('0x62')](_0x1f5b80[_0xae53('0x4e')])&&fs[_0xae53('0x50')](_0x4738cf)){logger[_0xae53('0x61')](_0xae53('0x63')+_0x4738cf+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xae53('0x64')](_0x4738cf);}_0x4738cf=_0x4738cf+_0xae53('0x65');if(!_[_0xae53('0x62')](_0x1f5b80[_0xae53('0x4e')])&&fs[_0xae53('0x50')](_0x4738cf)){logger[_0xae53('0x61')]('File:\x20\x22'+_0x4738cf+_0xae53('0x66'));fs[_0xae53('0x64')](_0x4738cf);}return _0x1f5b80;})[_0xae53('0x25')](function(_0x4c71d7){if(!_0x4c71d7)throw new InternalError();return _0x4c71d7[_0xae53('0x26')]();})['then'](function(){_0xcaa2c[_0xae53('0x1a')](0xcc)[_0xae53('0x1b')]();})[_0xae53('0x43')](handleError(_0xcaa2c,null));};function getBucketslist(_0x1915ab,_0x50638e,_0x41a36b){return new Promise(function(_0x3a3290,_0x2bb980){var _0x2d7a14=new AWS['S3']({'accessKeyId':_0x50638e,'secretAccessKey':_0x1915ab,'region':_0x41a36b});_0x2d7a14[_0xae53('0x67')]({},function(_0x1e1186,_0x257893){if(_0x1e1186){return _0x2bb980(_0x1e1186);}else{return _0x3a3290(_0x257893);}});});}function createBucket(_0x12a7ac,_0x2d6c9a,_0x168b54,_0x58c6fc){return new Promise(function(_0x4fbea4,_0x513742){var _0xa63ab1=new AWS['S3']({'accessKeyId':_0x2d6c9a,'secretAccessKey':_0x12a7ac,'region':_0x168b54});_0xa63ab1[_0xae53('0x68')]({'Bucket':_0x58c6fc},function(_0x3f9b9b,_0x5e68de){if(_0x3f9b9b){return _0x513742(_0x3f9b9b);}else{return _0x4fbea4(_0x5e68de);}});});}function uploadFile(_0x30f90b,_0x23fd6b,_0x4fc2d1,_0xfafd3b,_0x5b315b,_0x1dad7e){return new Promise(function(_0x26209f,_0x2ac948){var _0x4c75c4=new AWS['S3']({'accessKeyId':_0x23fd6b,'secretAccessKey':_0x30f90b,'region':_0x4fc2d1});_0x4c75c4[_0xae53('0x69')]({'Bucket':_0xfafd3b,'Key':_0x5b315b,'Body':_0x1dad7e},function(_0x295874,_0x143c74){if(_0x295874){return _0x2ac948(_0x295874);}else{return _0x26209f(_0x143c74);}});});}function startTranscribe(_0x12257f,_0x5e0302,_0xa22e7e,_0x1c6b91,_0x40c70f,_0x3c7d9e){return new Promise(function(_0x2db380,_0x2b2137){var _0x269fa8=new AWS['TranscribeService']({'accessKeyId':_0x5e0302,'secretAccessKey':_0x12257f,'region':_0xa22e7e});_0x269fa8[_0xae53('0x6a')]({'TranscriptionJobName':_0x1c6b91,'LanguageCode':_0x40c70f,'Media':{'MediaFileUri':_0x3c7d9e}},function(_0x48406a,_0x1bc335){if(_0x48406a){return _0x2b2137(_0x48406a);}else{return _0x2db380(_0x1bc335);}});});}function transcribe(_0x487721,_0x370f33,_0x180a9a,_0x598c23,_0x45ad97,_0x57cb89,_0x630357){return new Promise(function(_0x773de6,_0x3b6657){var _0x3c8185={};logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x6b'),_0x487721,_0x45ad97));return uploadFile(_0x370f33,_0x180a9a,_0x598c23,_0x45ad97,path[_0xae53('0x6c')](_0x57cb89),fs[_0xae53('0x6d')](_0x57cb89))[_0xae53('0x25')](function(_0x3f6165){logger['info'](util[_0xae53('0x33')]('[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)',_0x487721,_0x45ad97,_0x3f6165[_0xae53('0x6e')]));_0x3c8185[_0xae53('0x6f')]=_0x3f6165['Bucket'];_0x3c8185[_0xae53('0x70')]=_0x3f6165[_0xae53('0x6e')];logger['info'](util[_0xae53('0x33')](_0xae53('0x71'),_0x487721));return startTranscribe(_0x370f33,_0x180a9a,_0x598c23,uuidv4(),_0x630357,_0x3f6165[_0xae53('0x6e')]);})[_0xae53('0x25')](function(_0x56ec8b){logger['info'](util[_0xae53('0x33')](_0xae53('0x72'),_0x487721,_0x56ec8b['TranscriptionJob'][_0xae53('0x73')]));_0x3c8185[_0xae53('0x74')]=_0x56ec8b['TranscriptionJob'][_0xae53('0x73')];_0x3c8185['transcribeStatus']=_0x56ec8b[_0xae53('0x75')]['TranscriptionJobStatus'];return _0x773de6(_0x3c8185);})[_0xae53('0x43')](function(_0x42fa0f){return _0x3b6657(_0x42fa0f);});});}exports[_0xae53('0x76')]=function(_0x2513e2,_0xcdb12b,_0x4f2685){var _0xe38bca;var _0x4e84ef;var _0x32132;var _0x29b9d8=require(_0xae53('0x4b'));return db[_0xae53('0x2d')][_0xae53('0x77')]({'where':{'id':_0x2513e2[_0xae53('0x4d')]['id']}})[_0xae53('0x25')](function(_0x2da2a0){if(_0x2da2a0){var _0x1190b1=util[_0xae53('0x33')](_0xae53('0x4f'),_0x2da2a0[_0xae53('0x4e')]);if(fs['existsSync'](_0x1190b1)){cypher=!![];return _0x29b9d8[_0xae53('0x51')](_0x1190b1,_0x2da2a0['value'],config[_0xae53('0x5c')][_0xae53('0x52')])[_0xae53('0x25')](function(){return _0x2da2a0;});}return _0x2da2a0;}})['then'](function(_0x4cdf59){if(!_0x4cdf59){throw new db['Sequelize'][(_0xae53('0x53'))]('Voice\x20Recording\x20not\x20found');}_0x4e84ef=_0x4cdf59;return db[_0xae53('0x78')][_0xae53('0x77')]({'where':{'id':0x1}});})['then'](handleEntityNotFound(_0xcdb12b,null))[_0xae53('0x25')](function(_0x263813){if(_0x263813){_0xe38bca=_0x263813;if(!_0xe38bca['transcribe']||!_0xe38bca[_0xae53('0x79')]||!_0xe38bca['transcribeRegion']||!_0xe38bca[_0xae53('0x7a')]||!_0xe38bca[_0xae53('0x6f')]){throw new db[(_0xae53('0x5d'))]['ValidationError'](_0xae53('0x7b'));}if(_0x2513e2['body'][_0xae53('0x7c')]&&(!_0xe38bca[_0xae53('0x7d')]||!_0xe38bca[_0xae53('0x7e')]||!_0xe38bca['sentimentRegion']||!_0xe38bca[_0xae53('0x7a')]||!_0xe38bca[_0xae53('0x6f')])){throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))](_0xae53('0x7f'));}return db['CloudProvider'][_0xae53('0x77')]({'where':{'id':_0xe38bca[_0xae53('0x79')]}});}})[_0xae53('0x25')](function(_0x2e8127){if(!_0x2e8127){throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))](_0xae53('0x80'));}if(!_0x2e8127['data1']||!_0x2e8127['data2']){throw new db['Sequelize']['ValidationError']('Cloud\x20Provider\x20not\x20configured');}_0x32132=_0x2e8127;return getBucketslist(_0x32132[_0xae53('0x81')],_0x32132['data2'],_0xe38bca[_0xae53('0x82')]);})[_0xae53('0x25')](function(_0x2f69fc){if(_0x2f69fc&&_0x2f69fc['Buckets']){var _0x17e2b1=_['find'](_0x2f69fc['Buckets'],function(_0x2550fb){return _0x2550fb['Name']===_0xe38bca['bucket'];});if(!_0x17e2b1){logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x83'),_0x2513e2['params']['id'],_0xe38bca[_0xae53('0x6f')]));return createBucket(_0x32132[_0xae53('0x81')],_0x32132[_0xae53('0x84')],_0xe38bca[_0xae53('0x82')],_0xe38bca[_0xae53('0x6f')]);}logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x85'),_0x2513e2[_0xae53('0x4d')]['id'],_0xe38bca['bucket']));return;}})[_0xae53('0x25')](function(_0x2d5e65){if(_0x4e84ef[_0xae53('0x86')]==='NEW'){return transcribe(_0x2513e2['params']['id'],_0x32132[_0xae53('0x81')],_0x32132[_0xae53('0x84')],_0xe38bca['transcribeRegion'],_0xe38bca['bucket'],_0x4e84ef['value'],_0xe38bca[_0xae53('0x7a')]);}else{logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x87'),_0x2513e2[_0xae53('0x4d')]['id']));return{'transcribeStatus':'IN_PROGRESS'};}})['then'](function(_0x13973b){if(_0x13973b){_0x13973b[_0xae53('0x88')]=_0x2513e2[_0xae53('0x46')][_0xae53('0x7c')];return _0x4e84ef[_0xae53('0x89')](_0x13973b);}})[_0xae53('0x25')](respondWithResult(_0xcdb12b,null))[_0xae53('0x43')](handleError(_0xcdb12b,null));};function writeFile(_0x1a346b,_0x385ef2){return new Promise(function(_0x54eca6,_0x48bd62){fs['writeFile'](_0x385ef2,_0x1a346b,function(_0x32b400,_0x230e9e){if(_0x32b400){return _0x48bd62(_0x32b400);}else{return _0x54eca6(_0x230e9e);}});});}exports['downloadTranscribe']=function(_0xa474dc,_0x4897a7,_0x412221){return db[_0xae53('0x2d')]['findOne']({'where':{'id':_0xa474dc[_0xae53('0x4d')]['id']}})[_0xae53('0x25')](handleEntityNotFound(_0x4897a7))[_0xae53('0x25')](function(_0x791b2d){if(_0x791b2d&&_0x791b2d[_0xae53('0x8a')]){var _0x5d99eb=_0x791b2d['fileText'];var _0x35a15b=config[_0xae53('0x8b')]+_0xae53('0x8c')+_0x791b2d['id']+_0xae53('0x8d');if(fs[_0xae53('0x50')](_0x35a15b)){return _0x35a15b;}return writeFile(_0x5d99eb,_0x35a15b)[_0xae53('0x25')](function(){return _0x35a15b;});}else{throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))]('Transcript\x20not\x20available');}})[_0xae53('0x25')](function(_0x28e987){return _0x4897a7['download'](_0x28e987);})[_0xae53('0x43')](handleError(_0x4897a7));};
\ No newline at end of file
+var _0xbded=['TranscriptionJobStatus','runTranscribe','findOne','Voice\x20Recording\x20not\x20found','Setting','transcribe','transcribeRegion','language','runSentiment','sentiment','sentimentAccountId','CloudProvider','transcribeAccountId','Cloud\x20Provider\x20not\x20available','data2','Cloud\x20Provider\x20not\x20configured','data1','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','transcribeStatus','NEW','IN_PROGRESS','tempSentiment','writeFile','downloadTranscribe','fileText','.txt','Transcript\x20not\x20available','rimraf','request-promise','util','path','sox','ejs','fs-extra','squel','desk.js','aws-sdk','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','error','name','send','index','map','VoiceRecording','rawAttributes','fieldName','type','key','differenceBy','format','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','catch','show','keys','find','create','body','describe','download','../../components/encryptor','uniqueid','params','value','decryptFile','secrets','recording','Sequelize','ValidationError','VoiceRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','downloads','sequelize','MD5','col','token','$and','%s.cypher','existsSync','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','end','listBuckets','createBucket','upload','TranscribeService','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','bucket','Bucket','location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJob','transcribeName','TranscriptionJobName'];(function(_0x46e7f6,_0x59d4ef){var _0x5dbce7=function(_0x58bc73){while(--_0x58bc73){_0x46e7f6['push'](_0x46e7f6['shift']());}};_0x5dbce7(++_0x59d4ef);}(_0xbded,0x1e5));var _0xdbde=function(_0x34c1b5,_0x3171ab){_0x34c1b5=_0x34c1b5-0x0;var _0x1bac02=_0xbded[_0x34c1b5];return _0x1bac02;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xdbde('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xdbde('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xdbde('0x2'));var path=require(_0xdbde('0x3'));var sox=require(_0xdbde('0x4'));var csv=require('to-csv');var ejs=require(_0xdbde('0x5'));var fs=require('fs');var fs_extra=require(_0xdbde('0x6'));var _=require('lodash');var squel=require(_0xdbde('0x7'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xdbde('0x8'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var AWS=require(_0xdbde('0x9'));var uuidv4=require(_0xdbde('0xa'));var Redis=require(_0xdbde('0xb'));var authService=require(_0xdbde('0xc'));var qs=require(_0xdbde('0xd'));var as=require(_0xdbde('0xe'));var hardwareService=require(_0xdbde('0xf'));var logger=require(_0xdbde('0x10'))(_0xdbde('0x11'));var utils=require(_0xdbde('0x12'));var config=require(_0xdbde('0x13'));var licenseUtil=require(_0xdbde('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x58fe47,_0x39e638){_0x39e638=_0x39e638||0xcc;return function(_0x18dde7){if(_0x18dde7){return _0x58fe47[_0xdbde('0x15')](_0x39e638);}return _0x58fe47[_0xdbde('0x16')](_0x39e638)['end']();};}function respondWithResult(_0x21a06a,_0x24cc6d){_0x24cc6d=_0x24cc6d||0xc8;return function(_0x4b6cfb){if(_0x4b6cfb){return _0x21a06a[_0xdbde('0x16')](_0x24cc6d)[_0xdbde('0x17')](_0x4b6cfb);}};}function respondWithFilteredResult(_0x5dc592,_0x570244){return function(_0x354adb){if(_0x354adb){var _0x434bc2=typeof _0x570244[_0xdbde('0x18')]===_0xdbde('0x19')&&typeof _0x570244[_0xdbde('0x1a')]==='undefined';var _0x51d415=_0x354adb[_0xdbde('0x1b')];var _0x2a41dd=_0x434bc2?0x0:_0x570244[_0xdbde('0x18')];var _0x3c43af=_0x434bc2?_0x354adb[_0xdbde('0x1b')]:_0x570244[_0xdbde('0x18')]+_0x570244[_0xdbde('0x1a')];var _0x1146a7;if(_0x3c43af>=_0x51d415){_0x3c43af=_0x51d415;_0x1146a7=0xc8;}else{_0x1146a7=0xce;}_0x5dc592['status'](_0x1146a7);return _0x5dc592[_0xdbde('0x1c')](_0xdbde('0x1d'),_0x2a41dd+'-'+_0x3c43af+'/'+_0x51d415)['json'](_0x354adb);}return null;};}function patchUpdates(_0x3d9c73){return function(_0x464950){try{jsonpatch[_0xdbde('0x1e')](_0x464950,_0x3d9c73,!![]);}catch(_0x30bbfa){return BPromise[_0xdbde('0x1f')](_0x30bbfa);}return _0x464950[_0xdbde('0x20')]();};}function saveUpdates(_0x26d2ff,_0x2a3e2c){return function(_0x46288c){if(_0x46288c){return _0x46288c[_0xdbde('0x21')](_0x26d2ff)['then'](function(_0xddb95b){return _0xddb95b;});}return null;};}function removeEntity(_0x29b96f,_0x1d2b07){return function(_0x32768b){if(_0x32768b){return _0x32768b[_0xdbde('0x22')]()[_0xdbde('0x23')](function(){_0x29b96f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x17e007,_0x56ccee){return function(_0x119f00){if(!_0x119f00){_0x17e007[_0xdbde('0x15')](0x194);}return _0x119f00;};}function handleError(_0x54345e,_0x5bc5ba){_0x5bc5ba=_0x5bc5ba||0x1f4;return function(_0x5cee93){logger[_0xdbde('0x24')](_0x5cee93['stack']);if(_0x5cee93[_0xdbde('0x25')]){delete _0x5cee93[_0xdbde('0x25')];}_0x54345e[_0xdbde('0x16')](_0x5bc5ba)[_0xdbde('0x26')](_0x5cee93);};}exports[_0xdbde('0x27')]=function(_0x2faac3,_0x45983d){var _0x57ec08={},_0x536ca1={},_0x11b67d={'count':0x0,'rows':[]};var _0x1bb638=_[_0xdbde('0x28')](db[_0xdbde('0x29')][_0xdbde('0x2a')],function(_0x1f8303){return{'name':_0x1f8303[_0xdbde('0x2b')],'type':_0x1f8303[_0xdbde('0x2c')][_0xdbde('0x2d')]};});_0x536ca1['model']=_[_0xdbde('0x2e')](_['map'](_0x1bb638,_0xdbde('0x25')),[_0xdbde('0x2f')]);_0x536ca1[_0xdbde('0x30')]=_['keys'](_0x2faac3[_0xdbde('0x30')]);_0x536ca1[_0xdbde('0x31')]=_[_0xdbde('0x32')](_0x536ca1[_0xdbde('0x33')],_0x536ca1[_0xdbde('0x30')]);_0x57ec08['attributes']=_[_0xdbde('0x32')](_0x536ca1[_0xdbde('0x33')],qs['fields'](_0x2faac3[_0xdbde('0x30')][_0xdbde('0x34')]));_0x57ec08['attributes']=_0x57ec08[_0xdbde('0x35')][_0xdbde('0x36')]?_0x57ec08[_0xdbde('0x35')]:_0x536ca1[_0xdbde('0x33')];if(!_0x2faac3['query'][_0xdbde('0x37')]('nolimit')){_0x57ec08[_0xdbde('0x1a')]=qs['limit'](_0x2faac3[_0xdbde('0x30')]['limit']);_0x57ec08[_0xdbde('0x18')]=qs['offset'](_0x2faac3[_0xdbde('0x30')]['offset']);}_0x57ec08[_0xdbde('0x38')]=qs[_0xdbde('0x39')](_0x2faac3[_0xdbde('0x30')]['sort']);_0x57ec08[_0xdbde('0x3a')]=qs[_0xdbde('0x31')](_[_0xdbde('0x3b')](_0x2faac3[_0xdbde('0x30')],_0x536ca1[_0xdbde('0x31')]),_0x1bb638);if(_0x2faac3[_0xdbde('0x30')][_0xdbde('0x3c')]){_0x57ec08[_0xdbde('0x3a')]=_['merge'](_0x57ec08[_0xdbde('0x3a')],{'$or':_['map'](_0x1bb638,function(_0x36e718){if(_0x36e718[_0xdbde('0x2c')]!==_0xdbde('0x3d')){var _0x28a6bb={};_0x28a6bb[_0x36e718[_0xdbde('0x25')]]={'$like':'%'+_0x2faac3[_0xdbde('0x30')][_0xdbde('0x3c')]+'%'};return _0x28a6bb;}})});}_0x57ec08=_[_0xdbde('0x3e')]({},_0x57ec08,_0x2faac3[_0xdbde('0x3f')]);var _0xf12e2e={'where':_0x57ec08['where']};return db['VoiceRecording']['count'](_0xf12e2e)[_0xdbde('0x23')](function(_0x5e04fb){_0x11b67d['count']=_0x5e04fb;if(_0x2faac3[_0xdbde('0x30')][_0xdbde('0x40')]){_0x57ec08[_0xdbde('0x41')]=[{'all':!![]}];}return db[_0xdbde('0x29')]['findAll'](_0x57ec08);})[_0xdbde('0x23')](function(_0x17a9f4){_0x11b67d[_0xdbde('0x42')]=_0x17a9f4;return _0x11b67d;})[_0xdbde('0x23')](respondWithFilteredResult(_0x45983d,_0x57ec08))[_0xdbde('0x43')](handleError(_0x45983d,null));};exports[_0xdbde('0x44')]=function(_0x4ccac1,_0x4b88c8){var _0xb8275a={'raw':![],'where':{'id':_0x4ccac1['params']['id']}},_0x315869={};_0x315869[_0xdbde('0x33')]=_[_0xdbde('0x45')](db[_0xdbde('0x29')][_0xdbde('0x2a')]);_0x315869['query']=_['keys'](_0x4ccac1[_0xdbde('0x30')]);_0x315869['filters']=_[_0xdbde('0x32')](_0x315869['model'],_0x315869[_0xdbde('0x30')]);_0xb8275a['attributes']=_['intersection'](_0x315869['model'],qs[_0xdbde('0x34')](_0x4ccac1[_0xdbde('0x30')][_0xdbde('0x34')]));_0xb8275a['attributes']=_0xb8275a['attributes'][_0xdbde('0x36')]?_0xb8275a[_0xdbde('0x35')]:_0x315869['model'];if(_0x4ccac1[_0xdbde('0x30')][_0xdbde('0x40')]){_0xb8275a[_0xdbde('0x41')]=[{'all':!![]}];}_0xb8275a=_['merge']({},_0xb8275a,_0x4ccac1[_0xdbde('0x3f')]);return db['VoiceRecording'][_0xdbde('0x46')](_0xb8275a)[_0xdbde('0x23')](handleEntityNotFound(_0x4b88c8,null))['then'](respondWithResult(_0x4b88c8,null))[_0xdbde('0x43')](handleError(_0x4b88c8,null));};exports[_0xdbde('0x47')]=function(_0x57b7cf,_0x4b211c){return db[_0xdbde('0x29')][_0xdbde('0x47')](_0x57b7cf['body'],{})['then'](respondWithResult(_0x4b211c,0xc9))['catch'](handleError(_0x4b211c,null));};exports['update']=function(_0x44e1c3,_0x3f874b){if(_0x44e1c3[_0xdbde('0x48')]['id']){delete _0x44e1c3['body']['id'];}return db['VoiceRecording']['find']({'where':{'id':_0x44e1c3['params']['id']}})[_0xdbde('0x23')](handleEntityNotFound(_0x3f874b,null))[_0xdbde('0x23')](saveUpdates(_0x44e1c3[_0xdbde('0x48')],null))['then'](respondWithResult(_0x3f874b,null))[_0xdbde('0x43')](handleError(_0x3f874b,null));};exports['describe']=function(_0x22eb38,_0x26b4b1){return db[_0xdbde('0x29')][_0xdbde('0x49')]()['then'](respondWithResult(_0x26b4b1,null))[_0xdbde('0x43')](handleError(_0x26b4b1,null));};exports[_0xdbde('0x4a')]=function(_0x224216,_0x5b0092,_0x3348db){var _0x5bbdad=require(_0xdbde('0x4b'));var _0x545a52=![];var _0x52e91d={};if(_0x224216[_0xdbde('0x30')][_0xdbde('0x2c')]&&_0x224216[_0xdbde('0x30')][_0xdbde('0x2c')]==='uniqueid'){_0x52e91d[_0xdbde('0x4c')]=_0x224216[_0xdbde('0x4d')]['id'];}else{_0x52e91d['id']=_0x224216['params']['id'];}return db[_0xdbde('0x29')][_0xdbde('0x46')]({'where':_0x52e91d,'attributes':['id',_0xdbde('0x4e')],'raw':!![]})[_0xdbde('0x23')](handleEntityNotFound(_0x5b0092,null))[_0xdbde('0x23')](function(_0xdebcd0){if(_0xdebcd0){var _0x10da50=_0xdebcd0[_0xdbde('0x4e')];var _0x461556=util[_0xdbde('0x2f')]('%s.cypher',_0x10da50);if(fs['existsSync'](_0x461556)){_0x545a52=!![];return _0x5bbdad[_0xdbde('0x4f')](_0x461556,_0x10da50,config[_0xdbde('0x50')][_0xdbde('0x51')])[_0xdbde('0x23')](function(){return _0xdebcd0;});}return _0xdebcd0;}})[_0xdbde('0x23')](function(_0x18d631){if(_0x18d631){var _0x833f18=_0x18d631['value'];if(!fs['existsSync'](_0x833f18)){throw new db[(_0xdbde('0x52'))][(_0xdbde('0x53'))](_0xdbde('0x54'));}if(_0x18d631[_0xdbde('0x55')]){return _0x5b0092[_0xdbde('0x4a')](_0x833f18,_0x18d631['filename']+path[_0xdbde('0x56')](_0x833f18),function(){if(_0x545a52){fs[_0xdbde('0x57')](_0x833f18);}});}else{return _0x5b0092[_0xdbde('0x4a')](_0x833f18,function(_0x590e4){if(_0x545a52){fs[_0xdbde('0x57')](_0x833f18);}});}}})[_0xdbde('0x43')](function(_0x4af34d){if(_0x4af34d[_0xdbde('0x58')]===_0xdbde('0x54')){_0x5b0092[_0xdbde('0x16')](0x194)['send'](_0xdbde('0x59'));}else{return handleError(_0x5b0092,null);}});};exports[_0xdbde('0x5a')]=function(_0x59569f,_0x5176a8,_0x3520b5){var _0x4662f7=require(_0xdbde('0x4b'));var _0x3420e3=![];var _0x4573b6={'$and':[db[_0xdbde('0x5b')][_0xdbde('0x3a')](db[_0xdbde('0x5b')]['fn'](_0xdbde('0x5c'),db[_0xdbde('0x5b')][_0xdbde('0x5d')](_0xdbde('0x4c'))),_0x59569f[_0xdbde('0x30')][_0xdbde('0x5e')])]};if(_0x59569f[_0xdbde('0x30')][_0xdbde('0x2c')]&&_0x59569f[_0xdbde('0x30')][_0xdbde('0x2c')]==='uniqueid'){_0x4573b6[_0xdbde('0x5f')]['push']({'uniqueid':_0x59569f[_0xdbde('0x4d')]['id']});}else{_0x4573b6[_0xdbde('0x5f')]['push']({'id':_0x59569f['params']['id']});}return db[_0xdbde('0x29')][_0xdbde('0x46')]({'where':_0x4573b6,'attributes':['id',_0xdbde('0x4e')],'raw':!![]})[_0xdbde('0x23')](handleEntityNotFound(_0x5176a8,null))[_0xdbde('0x23')](function(_0x436795){if(_0x436795){var _0x123ab5=util[_0xdbde('0x2f')](_0xdbde('0x60'),_0x436795[_0xdbde('0x4e')]);if(fs['existsSync'](_0x123ab5)){_0x3420e3=!![];return _0x4662f7['decryptFile'](_0x123ab5,_0x436795[_0xdbde('0x4e')],config[_0xdbde('0x50')]['recording'])[_0xdbde('0x23')](function(){return _0x436795;});}return _0x436795;}})['then'](function(_0x326496){if(_0x326496){if(!fs[_0xdbde('0x61')](_0x326496[_0xdbde('0x4e')])){throw new db[(_0xdbde('0x52'))][(_0xdbde('0x53'))](_0xdbde('0x54'));}if(_0x326496[_0xdbde('0x55')]){return _0x5176a8['download'](_0x326496['value'],_0x326496['filename']+path['extname'](_0x326496[_0xdbde('0x4e')]),function(){if(_0x3420e3){fs['unlink'](_0x326496[_0xdbde('0x4e')]);}});}else{return _0x5176a8[_0xdbde('0x4a')](_0x326496[_0xdbde('0x4e')],function(_0xcff9aa){if(_0x3420e3){fs[_0xdbde('0x57')](_0x326496[_0xdbde('0x4e')]);}});}}})[_0xdbde('0x43')](handleError(_0x5176a8,null));};exports[_0xdbde('0x22')]=function(_0xecfed9,_0x35a99f){return db['VoiceRecording'][_0xdbde('0x46')]({'where':{'id':_0xecfed9[_0xdbde('0x4d')]['id']}})[_0xdbde('0x23')](function(_0x5b5e01){if(_[_0xdbde('0x62')](_0x5b5e01)){throw new ReferenceError(_0xdbde('0x63'));}return _0x5b5e01;})[_0xdbde('0x23')](function(_0x11fac7){var _0x324838=_0x11fac7['value'];logger[_0xdbde('0x64')](_0xdbde('0x65'),_0x324838);if(!_['isNil'](_0x11fac7[_0xdbde('0x4e')])&&fs[_0xdbde('0x61')](_0x324838)){logger[_0xdbde('0x64')](_0xdbde('0x66')+_0x324838+_0xdbde('0x67'));fs[_0xdbde('0x68')](_0x324838);}_0x324838=_0x324838+'.cypher';if(!_[_0xdbde('0x62')](_0x11fac7['value'])&&fs[_0xdbde('0x61')](_0x324838)){logger[_0xdbde('0x64')]('File:\x20\x22'+_0x324838+_0xdbde('0x67'));fs[_0xdbde('0x68')](_0x324838);}return _0x11fac7;})[_0xdbde('0x23')](function(_0x17635){if(!_0x17635)throw new InternalError();return _0x17635[_0xdbde('0x22')]();})[_0xdbde('0x23')](function(){_0x35a99f['status'](0xcc)[_0xdbde('0x69')]();})[_0xdbde('0x43')](handleError(_0x35a99f,null));};function getBucketslist(_0x4f90d9,_0x4d1e1c,_0x51c25f){return new Promise(function(_0x3178c8,_0xbc57a0){var _0x4f539a=new AWS['S3']({'accessKeyId':_0x4d1e1c,'secretAccessKey':_0x4f90d9,'region':_0x51c25f});_0x4f539a[_0xdbde('0x6a')]({},function(_0x3546e7,_0x48706b){if(_0x3546e7){return _0xbc57a0(_0x3546e7);}else{return _0x3178c8(_0x48706b);}});});}function createBucket(_0x127614,_0x49a8e8,_0x52de67,_0x51c58b){return new Promise(function(_0x2ebb46,_0x22f1e0){var _0x4e9a11=new AWS['S3']({'accessKeyId':_0x49a8e8,'secretAccessKey':_0x127614,'region':_0x52de67});_0x4e9a11[_0xdbde('0x6b')]({'Bucket':_0x51c58b},function(_0x5b3bdf,_0x517789){if(_0x5b3bdf){return _0x22f1e0(_0x5b3bdf);}else{return _0x2ebb46(_0x517789);}});});}function uploadFile(_0x1e7c4c,_0x164998,_0x560794,_0x3d1442,_0x2b79d0,_0xb88dd6){return new Promise(function(_0x5603bc,_0x445bfb){var _0x5d4a7d=new AWS['S3']({'accessKeyId':_0x164998,'secretAccessKey':_0x1e7c4c,'region':_0x560794});_0x5d4a7d[_0xdbde('0x6c')]({'Bucket':_0x3d1442,'Key':_0x2b79d0,'Body':_0xb88dd6},function(_0x99c281,_0x9ed18c){if(_0x99c281){return _0x445bfb(_0x99c281);}else{return _0x5603bc(_0x9ed18c);}});});}function startTranscribe(_0x41158b,_0x398f4e,_0x228cbe,_0x45a24c,_0x1153f1,_0x191cf3){return new Promise(function(_0x4f5014,_0x56970e){var _0x3776bc=new AWS[(_0xdbde('0x6d'))]({'accessKeyId':_0x398f4e,'secretAccessKey':_0x41158b,'region':_0x228cbe});_0x3776bc['startTranscriptionJob']({'TranscriptionJobName':_0x45a24c,'LanguageCode':_0x1153f1,'Media':{'MediaFileUri':_0x191cf3}},function(_0x3d0d67,_0x93c9b8){if(_0x3d0d67){return _0x56970e(_0x3d0d67);}else{return _0x4f5014(_0x93c9b8);}});});}function transcribe(_0xf2ad2,_0x4bd076,_0x266fd9,_0x2d2910,_0x4ea1c8,_0x33bf0b,_0x4b6f5d){return new Promise(function(_0x249568,_0x114a98){var _0x4406bc={};logger[_0xdbde('0x64')](util['format'](_0xdbde('0x6e'),_0xf2ad2,_0x4ea1c8));return uploadFile(_0x4bd076,_0x266fd9,_0x2d2910,_0x4ea1c8,path[_0xdbde('0x6f')](_0x33bf0b),fs[_0xdbde('0x70')](_0x33bf0b))[_0xdbde('0x23')](function(_0xb0dbd0){logger[_0xdbde('0x64')](util[_0xdbde('0x2f')](_0xdbde('0x71'),_0xf2ad2,_0x4ea1c8,_0xb0dbd0[_0xdbde('0x72')]));_0x4406bc[_0xdbde('0x73')]=_0xb0dbd0[_0xdbde('0x74')];_0x4406bc[_0xdbde('0x75')]=_0xb0dbd0[_0xdbde('0x72')];logger[_0xdbde('0x64')](util[_0xdbde('0x2f')](_0xdbde('0x76'),_0xf2ad2));return startTranscribe(_0x4bd076,_0x266fd9,_0x2d2910,uuidv4(),_0x4b6f5d,_0xb0dbd0['Location']);})[_0xdbde('0x23')](function(_0x56ef96){logger['info'](util[_0xdbde('0x2f')](_0xdbde('0x77'),_0xf2ad2,_0x56ef96[_0xdbde('0x78')]['TranscriptionJobName']));_0x4406bc[_0xdbde('0x79')]=_0x56ef96['TranscriptionJob'][_0xdbde('0x7a')];_0x4406bc['transcribeStatus']=_0x56ef96[_0xdbde('0x78')][_0xdbde('0x7b')];return _0x249568(_0x4406bc);})[_0xdbde('0x43')](function(_0x5e86f9){return _0x114a98(_0x5e86f9);});});}exports[_0xdbde('0x7c')]=function(_0x2577ec,_0x1426e0,_0x4d2e9c){var _0x4d7968;var _0x1b9363;var _0x57abfd;var _0xd933de=require(_0xdbde('0x4b'));return db[_0xdbde('0x29')][_0xdbde('0x7d')]({'where':{'id':_0x2577ec[_0xdbde('0x4d')]['id']}})[_0xdbde('0x23')](function(_0x343a34){if(_0x343a34){var _0x5701c6=util[_0xdbde('0x2f')]('%s.cypher',_0x343a34[_0xdbde('0x4e')]);if(fs[_0xdbde('0x61')](_0x5701c6)){cypher=!![];return _0xd933de['decryptFile'](_0x5701c6,_0x343a34[_0xdbde('0x4e')],config['secrets'][_0xdbde('0x51')])[_0xdbde('0x23')](function(){return _0x343a34;});}return _0x343a34;}})['then'](function(_0x551d04){if(!_0x551d04){throw new db[(_0xdbde('0x52'))]['ValidationError'](_0xdbde('0x7e'));}_0x1b9363=_0x551d04;return db[_0xdbde('0x7f')][_0xdbde('0x7d')]({'where':{'id':0x1}});})[_0xdbde('0x23')](handleEntityNotFound(_0x1426e0,null))[_0xdbde('0x23')](function(_0x20bbfd){if(_0x20bbfd){_0x4d7968=_0x20bbfd;if(!_0x4d7968[_0xdbde('0x80')]||!_0x4d7968['transcribeAccountId']||!_0x4d7968[_0xdbde('0x81')]||!_0x4d7968[_0xdbde('0x82')]||!_0x4d7968['bucket']){throw new db['Sequelize'][(_0xdbde('0x53'))]('Transcribe\x20not\x20configured');}if(_0x2577ec[_0xdbde('0x48')][_0xdbde('0x83')]&&(!_0x4d7968[_0xdbde('0x84')]||!_0x4d7968[_0xdbde('0x85')]||!_0x4d7968['sentimentRegion']||!_0x4d7968['language']||!_0x4d7968[_0xdbde('0x73')])){throw new db[(_0xdbde('0x52'))][(_0xdbde('0x53'))]('Sentiment\x20Analysis\x20not\x20configured');}return db[_0xdbde('0x86')][_0xdbde('0x7d')]({'where':{'id':_0x4d7968[_0xdbde('0x87')]}});}})[_0xdbde('0x23')](function(_0x3ec73e){if(!_0x3ec73e){throw new db[(_0xdbde('0x52'))][(_0xdbde('0x53'))](_0xdbde('0x88'));}if(!_0x3ec73e['data1']||!_0x3ec73e[_0xdbde('0x89')]){throw new db[(_0xdbde('0x52'))][(_0xdbde('0x53'))](_0xdbde('0x8a'));}_0x57abfd=_0x3ec73e;return getBucketslist(_0x57abfd[_0xdbde('0x8b')],_0x57abfd[_0xdbde('0x89')],_0x4d7968['transcribeRegion']);})[_0xdbde('0x23')](function(_0x480bd5){if(_0x480bd5&&_0x480bd5[_0xdbde('0x8c')]){var _0x18bb3b=_['find'](_0x480bd5[_0xdbde('0x8c')],function(_0x408892){return _0x408892[_0xdbde('0x8d')]===_0x4d7968[_0xdbde('0x73')];});if(!_0x18bb3b){logger[_0xdbde('0x64')](util['format'](_0xdbde('0x8e'),_0x2577ec[_0xdbde('0x4d')]['id'],_0x4d7968[_0xdbde('0x73')]));return createBucket(_0x57abfd[_0xdbde('0x8b')],_0x57abfd[_0xdbde('0x89')],_0x4d7968[_0xdbde('0x81')],_0x4d7968[_0xdbde('0x73')]);}logger['info'](util[_0xdbde('0x2f')]('[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available',_0x2577ec[_0xdbde('0x4d')]['id'],_0x4d7968[_0xdbde('0x73')]));return;}})[_0xdbde('0x23')](function(_0x201274){if(_0x1b9363[_0xdbde('0x8f')]===_0xdbde('0x90')){return transcribe(_0x2577ec[_0xdbde('0x4d')]['id'],_0x57abfd[_0xdbde('0x8b')],_0x57abfd[_0xdbde('0x89')],_0x4d7968[_0xdbde('0x81')],_0x4d7968[_0xdbde('0x73')],_0x1b9363[_0xdbde('0x4e')],_0x4d7968[_0xdbde('0x82')]);}else{logger[_0xdbde('0x64')](util[_0xdbde('0x2f')]('[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested',_0x2577ec[_0xdbde('0x4d')]['id']));return{'transcribeStatus':_0xdbde('0x91')};}})['then'](function(_0x5c025d){if(_0x5c025d){_0x5c025d[_0xdbde('0x92')]=_0x2577ec[_0xdbde('0x48')]['runSentiment'];return _0x1b9363['updateAttributes'](_0x5c025d);}})[_0xdbde('0x23')](respondWithResult(_0x1426e0,null))[_0xdbde('0x43')](handleError(_0x1426e0,null));};function writeFile(_0x108fb1,_0x1e8951){return new Promise(function(_0x17077b,_0x2b2067){fs[_0xdbde('0x93')](_0x1e8951,_0x108fb1,function(_0x90222c,_0x3eade5){if(_0x90222c){return _0x2b2067(_0x90222c);}else{return _0x17077b(_0x3eade5);}});});}exports[_0xdbde('0x94')]=function(_0x119149,_0x1fdc02,_0x44489d){return db[_0xdbde('0x29')]['findOne']({'where':{'id':_0x119149['params']['id']}})['then'](handleEntityNotFound(_0x1fdc02))[_0xdbde('0x23')](function(_0x1d1d05){if(_0x1d1d05&&_0x1d1d05[_0xdbde('0x95')]){var _0x43827b=_0x1d1d05[_0xdbde('0x95')];var _0x2b629b=config['root']+'/server/files/transcribes/transcribe_'+_0x1d1d05['id']+_0xdbde('0x96');if(fs[_0xdbde('0x61')](_0x2b629b)){return _0x2b629b;}return writeFile(_0x43827b,_0x2b629b)[_0xdbde('0x23')](function(){return _0x2b629b;});}else{throw new db[(_0xdbde('0x52'))]['ValidationError'](_0xdbde('0x97'));}})[_0xdbde('0x23')](function(_0x34f0fd){return _0x1fdc02[_0xdbde('0x4a')](_0x34f0fd);})['catch'](handleError(_0x1fdc02));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a1c=['util','moment','request-promise','path','../../config/environment','VoiceRecording','voice_recordings','uniqueid'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x9a1c,0x150));var _0xc9a1=function(_0x255ea6,_0x4e394d){_0x255ea6=_0x255ea6-0x0;var _0x45302c=_0x9a1c[_0x255ea6];return _0x45302c;};'use strict';var _=require('lodash');var util=require(_0xc9a1('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xc9a1('0x1'));var BPromise=require('bluebird');var rp=require(_0xc9a1('0x2'));var fs=require('fs');var path=require(_0xc9a1('0x3'));var rimraf=require('rimraf');var config=require(_0xc9a1('0x4'));var attributes=require('./voiceRecording.attributes');module['exports']=function(_0x3fbece,_0x52d914){return _0x3fbece['define'](_0xc9a1('0x5'),attributes,{'tableName':_0xc9a1('0x6'),'paranoid':![],'indexes':[{'name':_0xc9a1('0x7'),'fields':[_0xc9a1('0x7')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb520=['VoiceRecording','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','rimraf','exports','define'];(function(_0x53b53f,_0x2cbc77){var _0x500a1f=function(_0x2ccf44){while(--_0x2ccf44){_0x53b53f['push'](_0x53b53f['shift']());}};_0x500a1f(++_0x2cbc77);}(_0xb520,0x162));var _0x0b52=function(_0x234956,_0x12ffe8){_0x234956=_0x234956-0x0;var _0x28cc18=_0xb520[_0x234956];return _0x28cc18;};'use strict';var _=require(_0x0b52('0x0'));var util=require(_0x0b52('0x1'));var logger=require(_0x0b52('0x2'))(_0x0b52('0x3'));var moment=require(_0x0b52('0x4'));var BPromise=require(_0x0b52('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x0b52('0x6'));var config=require('../../config/environment');var attributes=require('./voiceRecording.attributes');module[_0x0b52('0x7')]=function(_0x2449f5,_0x311065){return _0x2449f5[_0x0b52('0x8')](_0x0b52('0x9'),attributes,{'tableName':'voice_recordings','paranoid':![],'indexes':[{'name':_0x0b52('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6050=['existsSync','value','format','%s.cypher','encryptFile','secrets','recording','unlink','CreateVoiceRecording\x20file\x20encrypted','CreateVoiceRecording','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','http','request','then','VoiceRecording,\x20%s,\x20%s','request\x20sent','debug','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','UpdateVoiceRecording','VoiceRecording','update','body','options','raw','where','attributes','../../components/encryptor','Setting','findOne','callRecordingEncryption'];(function(_0x7d1bab,_0x5ae021){var _0x3d5224=function(_0xe376da){while(--_0xe376da){_0x7d1bab['push'](_0x7d1bab['shift']());}};_0x3d5224(++_0x5ae021);}(_0x6050,0x196));var _0x0605=function(_0x49f3e3,_0x44f5d2){_0x49f3e3=_0x49f3e3-0x0;var _0x3ba012=_0x6050[_0x49f3e3];return _0x3ba012;};'use strict';var _=require(_0x0605('0x0'));var util=require(_0x0605('0x1'));var moment=require(_0x0605('0x2'));var BPromise=require(_0x0605('0x3'));var rs=require(_0x0605('0x4'));var fs=require('fs');var Redis=require(_0x0605('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x0605('0x6'));var logger=require(_0x0605('0x7'))(_0x0605('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x0605('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x578623,_0x58f7d2,_0x5660ad){return new BPromise(function(_0x1629bf,_0x11b8b5){return client[_0x0605('0xa')](_0x578623,_0x5660ad)[_0x0605('0xb')](function(_0x44fdd3){logger['info'](_0x0605('0xc'),_0x58f7d2,_0x0605('0xd'));logger[_0x0605('0xe')](_0x0605('0xf'),_0x58f7d2,_0x0605('0xd'),JSON[_0x0605('0x10')](_0x44fdd3));if(_0x44fdd3[_0x0605('0x11')]){if(_0x44fdd3[_0x0605('0x11')][_0x0605('0x12')]===0x1f4){logger[_0x0605('0x11')](_0x0605('0xc'),_0x58f7d2,_0x44fdd3[_0x0605('0x11')][_0x0605('0x13')]);return _0x11b8b5(_0x44fdd3[_0x0605('0x11')][_0x0605('0x13')]);}logger[_0x0605('0x11')](_0x0605('0xc'),_0x58f7d2,_0x44fdd3[_0x0605('0x11')][_0x0605('0x13')]);return _0x1629bf(_0x44fdd3['error'][_0x0605('0x13')]);}else{logger[_0x0605('0x14')](_0x0605('0xc'),_0x58f7d2,'request\x20sent');_0x1629bf(_0x44fdd3['result'][_0x0605('0x13')]);}})[_0x0605('0x15')](function(_0xa83443){logger[_0x0605('0x11')](_0x0605('0xc'),_0x58f7d2,_0xa83443);_0x11b8b5(_0xa83443);});});}exports[_0x0605('0x16')]=function(_0x2b7b5a){var _0x1d57ba=this;return new Promise(function(_0x193520,_0x40abb2){return db[_0x0605('0x17')][_0x0605('0x18')](_0x2b7b5a[_0x0605('0x19')],{'raw':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a['options'][_0x0605('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a[_0x0605('0x1a')][_0x0605('0x1c')]||null:null,'attributes':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a[_0x0605('0x1a')][_0x0605('0x1d')]||null:null,'limit':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a[_0x0605('0x1a')]['limit']||null:null})[_0x0605('0xb')](function(_0x4fe293){logger[_0x0605('0x14')](_0x0605('0x16'),_0x2b7b5a);logger[_0x0605('0xe')](_0x0605('0x16'),_0x2b7b5a,JSON[_0x0605('0x10')](_0x4fe293));_0x193520(_0x4fe293);})[_0x0605('0x15')](function(_0x2ea61d){logger[_0x0605('0x11')](_0x0605('0x16'),_0x2ea61d[_0x0605('0x13')],_0x2b7b5a);_0x40abb2(_0x1d57ba[_0x0605('0x11')](0x1f4,_0x2ea61d[_0x0605('0x13')]));});});};exports['CreateVoiceRecording']=function(_0x6bc204){var _0x3c8e36=this;return new Promise(function(_0x4b1e0c,_0x4d9a31){var _0x55ebd8=require(_0x0605('0x1e'));var _0x226825;return db[_0x0605('0x1f')][_0x0605('0x20')]({'attributes':['id',_0x0605('0x21')],'where':{'id':0x1},'raw':!![]})[_0x0605('0xb')](function(_0x4e32ef){_0x226825=_0x4e32ef;return db[_0x0605('0x17')]['create'](_0x6bc204[_0x0605('0x19')]);})[_0x0605('0xb')](function(_0x421c26){if(_0x226825[_0x0605('0x21')]&&fs[_0x0605('0x22')](_0x421c26[_0x0605('0x23')])){var _0x56dd1a=util[_0x0605('0x24')](_0x0605('0x25'),_0x421c26[_0x0605('0x23')]);return _0x55ebd8[_0x0605('0x26')](_0x421c26[_0x0605('0x23')],_0x56dd1a,config[_0x0605('0x27')][_0x0605('0x28')])[_0x0605('0xb')](function(){fs[_0x0605('0x29')](_0x421c26[_0x0605('0x23')]);logger[_0x0605('0x14')](_0x0605('0x2a'));return _0x421c26;});}return _0x421c26;})[_0x0605('0xb')](function(_0x992e4f){logger[_0x0605('0x14')](_0x0605('0x2b'),_0x6bc204);logger[_0x0605('0xe')](_0x0605('0x2b'),_0x6bc204,JSON[_0x0605('0x10')](_0x992e4f));_0x4b1e0c(_0x992e4f);})[_0x0605('0x15')](function(_0x3a1c75){logger[_0x0605('0x11')](_0x0605('0x2b'),_0x3a1c75[_0x0605('0x13')],_0x6bc204);_0x4d9a31(_0x3c8e36[_0x0605('0x11')](0x1f4,_0x3a1c75[_0x0605('0x13')]));});});};
\ No newline at end of file
+var _0x5b12=['Setting','callRecordingEncryption','create','body','value','format','%s.cypher','secrets','recording','unlink','CreateVoiceRecording\x20file\x20encrypted','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','client','request','then','info','request\x20sent','debug','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceRecording,\x20%s,\x20%s','message','catch','UpdateVoiceRecording','VoiceRecording','options','raw','attributes','CreateVoiceRecording','../../components/encryptor'];(function(_0x2eb38f,_0x17b21e){var _0x179f7e=function(_0x1323cc){while(--_0x1323cc){_0x2eb38f['push'](_0x2eb38f['shift']());}};_0x179f7e(++_0x17b21e);}(_0x5b12,0xa3));var _0x25b1=function(_0x2d0b0b,_0x59f115){_0x2d0b0b=_0x2d0b0b-0x0;var _0x2381c4=_0x5b12[_0x2d0b0b];return _0x2381c4;};'use strict';var _=require(_0x25b1('0x0'));var util=require(_0x25b1('0x1'));var moment=require(_0x25b1('0x2'));var BPromise=require('bluebird');var rs=require(_0x25b1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x25b1('0x4'))['db'];var utils=require(_0x25b1('0x5'));var logger=require('../../config/logger')(_0x25b1('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x25b1('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5bb95b,_0x1f715d,_0x28c980){return new BPromise(function(_0x451c66,_0x2a46e0){return client[_0x25b1('0x8')](_0x5bb95b,_0x28c980)[_0x25b1('0x9')](function(_0x3346ed){logger[_0x25b1('0xa')]('VoiceRecording,\x20%s,\x20%s',_0x1f715d,_0x25b1('0xb'));logger[_0x25b1('0xc')](_0x25b1('0xd'),_0x1f715d,_0x25b1('0xb'),JSON[_0x25b1('0xe')](_0x3346ed));if(_0x3346ed[_0x25b1('0xf')]){if(_0x3346ed[_0x25b1('0xf')][_0x25b1('0x10')]===0x1f4){logger[_0x25b1('0xf')](_0x25b1('0x11'),_0x1f715d,_0x3346ed[_0x25b1('0xf')][_0x25b1('0x12')]);return _0x2a46e0(_0x3346ed[_0x25b1('0xf')][_0x25b1('0x12')]);}logger[_0x25b1('0xf')](_0x25b1('0x11'),_0x1f715d,_0x3346ed['error'][_0x25b1('0x12')]);return _0x451c66(_0x3346ed[_0x25b1('0xf')]['message']);}else{logger[_0x25b1('0xa')](_0x25b1('0x11'),_0x1f715d,_0x25b1('0xb'));_0x451c66(_0x3346ed['result']['message']);}})[_0x25b1('0x13')](function(_0x573ec2){logger[_0x25b1('0xf')](_0x25b1('0x11'),_0x1f715d,_0x573ec2);_0x2a46e0(_0x573ec2);});});}exports[_0x25b1('0x14')]=function(_0x27ccc9){var _0x1f78c2=this;return new Promise(function(_0x2a7d14,_0x17024a){return db[_0x25b1('0x15')]['update'](_0x27ccc9['body'],{'raw':_0x27ccc9[_0x25b1('0x16')]?_0x27ccc9['options'][_0x25b1('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x27ccc9['options']?_0x27ccc9[_0x25b1('0x16')]['where']||null:null,'attributes':_0x27ccc9[_0x25b1('0x16')]?_0x27ccc9['options'][_0x25b1('0x18')]||null:null,'limit':_0x27ccc9['options']?_0x27ccc9['options']['limit']||null:null})[_0x25b1('0x9')](function(_0x150436){logger['info'](_0x25b1('0x14'),_0x27ccc9);logger[_0x25b1('0xc')](_0x25b1('0x14'),_0x27ccc9,JSON[_0x25b1('0xe')](_0x150436));_0x2a7d14(_0x150436);})[_0x25b1('0x13')](function(_0x5e6b6b){logger[_0x25b1('0xf')](_0x25b1('0x14'),_0x5e6b6b[_0x25b1('0x12')],_0x27ccc9);_0x17024a(_0x1f78c2[_0x25b1('0xf')](0x1f4,_0x5e6b6b[_0x25b1('0x12')]));});});};exports[_0x25b1('0x19')]=function(_0x5d9ed7){var _0x3c05c6=this;return new Promise(function(_0x27dd68,_0x3d279f){var _0x5bc8fc=require(_0x25b1('0x1a'));var _0x9e175f;return db[_0x25b1('0x1b')]['findOne']({'attributes':['id',_0x25b1('0x1c')],'where':{'id':0x1},'raw':!![]})['then'](function(_0x19ecd1){_0x9e175f=_0x19ecd1;return db[_0x25b1('0x15')][_0x25b1('0x1d')](_0x5d9ed7[_0x25b1('0x1e')]);})[_0x25b1('0x9')](function(_0x300a14){if(_0x9e175f[_0x25b1('0x1c')]&&fs['existsSync'](_0x300a14[_0x25b1('0x1f')])){var _0xca56f0=util[_0x25b1('0x20')](_0x25b1('0x21'),_0x300a14[_0x25b1('0x1f')]);return _0x5bc8fc['encryptFile'](_0x300a14[_0x25b1('0x1f')],_0xca56f0,config[_0x25b1('0x22')][_0x25b1('0x23')])[_0x25b1('0x9')](function(){fs[_0x25b1('0x24')](_0x300a14['value']);logger['info'](_0x25b1('0x25'));return _0x300a14;});}return _0x300a14;})['then'](function(_0x446984){logger[_0x25b1('0xa')](_0x25b1('0x19'),_0x5d9ed7);logger['debug']('CreateVoiceRecording',_0x5d9ed7,JSON[_0x25b1('0xe')](_0x446984));_0x27dd68(_0x446984);})[_0x25b1('0x13')](function(_0x26d3bc){logger['error'](_0x25b1('0x19'),_0x26d3bc[_0x25b1('0x12')],_0x5d9ed7);_0x3d279f(_0x3c05c6[_0x25b1('0xf')](0x1f4,_0x26d3bc[_0x25b1('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d8f=['get','isAuthenticated','/describe','describe','/:id','create','delete','destroy','util','path','express','Router','fs-extra','../../config/environment'];(function(_0x52229d,_0x51df5d){var _0x340aeb=function(_0x44515f){while(--_0x44515f){_0x52229d['push'](_0x52229d['shift']());}};_0x340aeb(++_0x51df5d);}(_0x4d8f,0x190));var _0xf4d8=function(_0x53fac0,_0x4d45c0){_0x53fac0=_0x53fac0-0x0;var _0x15fedc=_0x4d8f[_0x53fac0];return _0x15fedc;};'use strict';var multer=require('multer');var util=require(_0xf4d8('0x0'));var path=require(_0xf4d8('0x1'));var timeout=require('connect-timeout');var express=require(_0xf4d8('0x2'));var router=express[_0xf4d8('0x3')]();var fs_extra=require(_0xf4d8('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xf4d8('0x5'));var controller=require('./voiceTransferReport.controller');router[_0xf4d8('0x6')]('/',auth[_0xf4d8('0x7')](),controller['index']);router[_0xf4d8('0x6')](_0xf4d8('0x8'),auth[_0xf4d8('0x7')](),controller[_0xf4d8('0x9')]);router['get'](_0xf4d8('0xa'),auth[_0xf4d8('0x7')](),controller['show']);router['post']('/',auth[_0xf4d8('0x7')](),controller[_0xf4d8('0xb')]);router['put']('/:id',auth[_0xf4d8('0x7')](),controller['update']);router[_0xf4d8('0xc')](_0xf4d8('0xa'),auth[_0xf4d8('0x7')](),controller[_0xf4d8('0xd')]);module['exports']=router;
\ No newline at end of file
+var _0x68a2=['Router','fs-extra','../../components/auth/service','./voiceTransferReport.controller','isAuthenticated','index','/describe','describe','/:id','put','delete','destroy','multer','connect-timeout','express'];(function(_0x5d1d99,_0x10ca23){var _0x2957ec=function(_0x4f4ba){while(--_0x4f4ba){_0x5d1d99['push'](_0x5d1d99['shift']());}};_0x2957ec(++_0x10ca23);}(_0x68a2,0x1b0));var _0x268a=function(_0xf01a44,_0x2cf8dc){_0xf01a44=_0xf01a44-0x0;var _0x4bd3b7=_0x68a2[_0xf01a44];return _0x4bd3b7;};'use strict';var multer=require(_0x268a('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x268a('0x1'));var express=require(_0x268a('0x2'));var router=express[_0x268a('0x3')]();var fs_extra=require(_0x268a('0x4'));var auth=require(_0x268a('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x268a('0x6'));router['get']('/',auth[_0x268a('0x7')](),controller[_0x268a('0x8')]);router['get'](_0x268a('0x9'),auth[_0x268a('0x7')](),controller[_0x268a('0xa')]);router['get'](_0x268a('0xb'),auth[_0x268a('0x7')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x268a('0xc')](_0x268a('0xb'),auth[_0x268a('0x7')](),controller['update']);router[_0x268a('0xd')](_0x268a('0xb'),auth[_0x268a('0x7')](),controller[_0x268a('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x363e=['attended','STRING','ENUM','Yes','sequelize','moment','blind'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x363e,0x66));var _0xe363=function(_0x1df03c,_0x48610f){_0x1df03c=_0x1df03c-0x0;var _0x59b296=_0x363e[_0x1df03c];return _0x59b296;};'use strict';var Sequelize=require(_0xe363('0x0'));var moment=require(_0xe363('0x1'));module['exports']={'type':{'type':Sequelize['ENUM'](_0xe363('0x2'),_0xe363('0x3'))},'result':{'type':Sequelize[_0xe363('0x4')]},'transfererchannel':{'type':Sequelize[_0xe363('0x4')]},'transferercalleridnum':{'type':Sequelize[_0xe363('0x4')]},'transferercalleridname':{'type':Sequelize[_0xe363('0x4')]},'transfererconnectedlinenum':{'type':Sequelize[_0xe363('0x4')]},'transfererconnectedlinename':{'type':Sequelize['STRING']},'transfereraccountcode':{'type':Sequelize[_0xe363('0x4')]},'transferercontext':{'type':Sequelize[_0xe363('0x4')]},'transfererexten':{'type':Sequelize[_0xe363('0x4')]},'transfererlinkedid':{'type':Sequelize[_0xe363('0x4')]},'transfereechannel':{'type':Sequelize['STRING']},'transfereecalleridnum':{'type':Sequelize[_0xe363('0x4')]},'transfereecalleridname':{'type':Sequelize[_0xe363('0x4')]},'transfereeconnectedlinenum':{'type':Sequelize[_0xe363('0x4')]},'transfereeconnectedlinename':{'type':Sequelize[_0xe363('0x4')]},'transfereeaccountcode':{'type':Sequelize[_0xe363('0x4')]},'transfereecontext':{'type':Sequelize[_0xe363('0x4')]},'transfereeexten':{'type':Sequelize[_0xe363('0x4')]},'transfereelinkedid':{'type':Sequelize[_0xe363('0x4')]},'isexternal':{'type':Sequelize[_0xe363('0x5')](_0xe363('0x6'),'No')},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x54d2=['blind','attended','STRING','Yes'];(function(_0x5f1456,_0x3f70da){var _0x4b6fd5=function(_0x350d4e){while(--_0x350d4e){_0x5f1456['push'](_0x5f1456['shift']());}};_0x4b6fd5(++_0x3f70da);}(_0x54d2,0x17c));var _0x254d=function(_0x64a5a0,_0x5f598e){_0x64a5a0=_0x64a5a0-0x0;var _0x531585=_0x54d2[_0x64a5a0];return _0x531585;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');module['exports']={'type':{'type':Sequelize['ENUM'](_0x254d('0x0'),_0x254d('0x1'))},'result':{'type':Sequelize['STRING']},'transfererchannel':{'type':Sequelize[_0x254d('0x2')]},'transferercalleridnum':{'type':Sequelize[_0x254d('0x2')]},'transferercalleridname':{'type':Sequelize[_0x254d('0x2')]},'transfererconnectedlinenum':{'type':Sequelize[_0x254d('0x2')]},'transfererconnectedlinename':{'type':Sequelize['STRING']},'transfereraccountcode':{'type':Sequelize[_0x254d('0x2')]},'transferercontext':{'type':Sequelize[_0x254d('0x2')]},'transfererexten':{'type':Sequelize['STRING']},'transfererlinkedid':{'type':Sequelize[_0x254d('0x2')]},'transfereechannel':{'type':Sequelize[_0x254d('0x2')]},'transfereecalleridnum':{'type':Sequelize[_0x254d('0x2')]},'transfereecalleridname':{'type':Sequelize[_0x254d('0x2')]},'transfereeconnectedlinenum':{'type':Sequelize[_0x254d('0x2')]},'transfereeconnectedlinename':{'type':Sequelize[_0x254d('0x2')]},'transfereeaccountcode':{'type':Sequelize[_0x254d('0x2')]},'transfereecontext':{'type':Sequelize[_0x254d('0x2')]},'transfereeexten':{'type':Sequelize[_0x254d('0x2')]},'transfereelinkedid':{'type':Sequelize['STRING']},'isexternal':{'type':Sequelize['ENUM'](_0x254d('0x3'),'No')},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb80c=['path','to-csv','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','apply','reject','save','then','destroy','error','name','send','VoiceTransferReport','fieldName','type','model','map','query','filters','attributes','intersection','fields','length','nolimit','limit','order','sort','pick','filter','where','options','includeAll','findAll','catch','show','params','keys','rawAttributes','merge','find','create','body','update','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb80c,0x88));var _0xcb80=function(_0x2711b6,_0x4a4d74){_0x2711b6=_0x2711b6-0x0;var _0x11bae2=_0xb80c[_0x2711b6];return _0x11bae2;};'use strict';var emlformat=require(_0xcb80('0x0'));var rimraf=require(_0xcb80('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcb80('0x2'));var rp=require(_0xcb80('0x3'));var moment=require(_0xcb80('0x4'));var BPromise=require(_0xcb80('0x5'));var Mustache=require(_0xcb80('0x6'));var util=require(_0xcb80('0x7'));var path=require(_0xcb80('0x8'));var sox=require('sox');var csv=require(_0xcb80('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xcb80('0xa'));var crypto=require(_0xcb80('0xb'));var jsforce=require(_0xcb80('0xc'));var deskjs=require(_0xcb80('0xd'));var toCsv=require(_0xcb80('0x9'));var querystring=require(_0xcb80('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xcb80('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xcb80('0x10'));var hardwareService=require(_0xcb80('0x11'));var logger=require(_0xcb80('0x12'))(_0xcb80('0x13'));var utils=require('../../config/utils');var config=require(_0xcb80('0x14'));var licenseUtil=require(_0xcb80('0x15'));var db=require(_0xcb80('0x16'))['db'];function respondWithStatusCode(_0xa47dbd,_0x2b6bea){_0x2b6bea=_0x2b6bea||0xcc;return function(_0xc27a5e){if(_0xc27a5e){return _0xa47dbd[_0xcb80('0x17')](_0x2b6bea);}return _0xa47dbd[_0xcb80('0x18')](_0x2b6bea)[_0xcb80('0x19')]();};}function respondWithResult(_0x31c258,_0x599ca0){_0x599ca0=_0x599ca0||0xc8;return function(_0x20ed47){if(_0x20ed47){return _0x31c258[_0xcb80('0x18')](_0x599ca0)['json'](_0x20ed47);}};}function respondWithFilteredResult(_0x44470f,_0x44101a){return function(_0x5122da){if(_0x5122da){var _0x5461d9=typeof _0x44101a[_0xcb80('0x1a')]==='undefined'&&typeof _0x44101a['limit']===_0xcb80('0x1b');var _0x33956f=_0x5122da[_0xcb80('0x1c')];var _0x12c299=_0x5461d9?0x0:_0x44101a[_0xcb80('0x1a')];var _0x4dea6f=_0x5461d9?_0x5122da[_0xcb80('0x1c')]:_0x44101a[_0xcb80('0x1a')]+_0x44101a['limit'];var _0x45cd88;if(_0x4dea6f>=_0x33956f){_0x4dea6f=_0x33956f;_0x45cd88=0xc8;}else{_0x45cd88=0xce;}_0x44470f[_0xcb80('0x18')](_0x45cd88);return _0x44470f[_0xcb80('0x1d')](_0xcb80('0x1e'),_0x12c299+'-'+_0x4dea6f+'/'+_0x33956f)[_0xcb80('0x1f')](_0x5122da);}return null;};}function patchUpdates(_0x3a230e){return function(_0x4ee8cf){try{jsonpatch[_0xcb80('0x20')](_0x4ee8cf,_0x3a230e,!![]);}catch(_0x269dd6){return BPromise[_0xcb80('0x21')](_0x269dd6);}return _0x4ee8cf[_0xcb80('0x22')]();};}function saveUpdates(_0x49be79,_0x314120){return function(_0x45734f){if(_0x45734f){return _0x45734f['update'](_0x49be79)[_0xcb80('0x23')](function(_0x45ee9a){return _0x45ee9a;});}return null;};}function removeEntity(_0x130a93,_0x407b3b){return function(_0x285810){if(_0x285810){return _0x285810[_0xcb80('0x24')]()['then'](function(){_0x130a93[_0xcb80('0x18')](0xcc)[_0xcb80('0x19')]();});}};}function handleEntityNotFound(_0x33ca9e,_0x564042){return function(_0x212a72){if(!_0x212a72){_0x33ca9e[_0xcb80('0x17')](0x194);}return _0x212a72;};}function handleError(_0x300105,_0x2cfae6){_0x2cfae6=_0x2cfae6||0x1f4;return function(_0x5add6b){logger[_0xcb80('0x25')](_0x5add6b['stack']);if(_0x5add6b['name']){delete _0x5add6b[_0xcb80('0x26')];}_0x300105[_0xcb80('0x18')](_0x2cfae6)[_0xcb80('0x27')](_0x5add6b);};}exports['index']=function(_0x55bcb2,_0x479320){var _0x20a821={},_0x7c63ba={},_0x59a8ca={'count':0x0,'rows':[]};var _0x57047d=_['map'](db[_0xcb80('0x28')]['rawAttributes'],function(_0x3bab50){return{'name':_0x3bab50[_0xcb80('0x29')],'type':_0x3bab50[_0xcb80('0x2a')]['key']};});_0x7c63ba[_0xcb80('0x2b')]=_[_0xcb80('0x2c')](_0x57047d,_0xcb80('0x26'));_0x7c63ba[_0xcb80('0x2d')]=_['keys'](_0x55bcb2[_0xcb80('0x2d')]);_0x7c63ba[_0xcb80('0x2e')]=_['intersection'](_0x7c63ba[_0xcb80('0x2b')],_0x7c63ba[_0xcb80('0x2d')]);_0x20a821[_0xcb80('0x2f')]=_[_0xcb80('0x30')](_0x7c63ba[_0xcb80('0x2b')],qs[_0xcb80('0x31')](_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x31')]));_0x20a821[_0xcb80('0x2f')]=_0x20a821[_0xcb80('0x2f')][_0xcb80('0x32')]?_0x20a821['attributes']:_0x7c63ba[_0xcb80('0x2b')];if(!_0x55bcb2[_0xcb80('0x2d')]['hasOwnProperty'](_0xcb80('0x33'))){_0x20a821[_0xcb80('0x34')]=qs[_0xcb80('0x34')](_0x55bcb2[_0xcb80('0x2d')]['limit']);_0x20a821[_0xcb80('0x1a')]=qs[_0xcb80('0x1a')](_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x1a')]);}_0x20a821[_0xcb80('0x35')]=qs[_0xcb80('0x36')](_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x36')]);_0x20a821['where']=qs[_0xcb80('0x2e')](_[_0xcb80('0x37')](_0x55bcb2['query'],_0x7c63ba[_0xcb80('0x2e')]),_0x57047d);if(_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x38')]){_0x20a821[_0xcb80('0x39')]=_['merge'](_0x20a821[_0xcb80('0x39')],{'$or':_['map'](_0x57047d,function(_0x2e9f6a){if(_0x2e9f6a[_0xcb80('0x2a')]!=='VIRTUAL'){var _0xa00727={};_0xa00727[_0x2e9f6a['name']]={'$like':'%'+_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x38')]+'%'};return _0xa00727;}})});}_0x20a821=_['merge']({},_0x20a821,_0x55bcb2[_0xcb80('0x3a')]);var _0xe04006={'where':_0x20a821[_0xcb80('0x39')]};return db[_0xcb80('0x28')][_0xcb80('0x1c')](_0xe04006)[_0xcb80('0x23')](function(_0xcb6df5){_0x59a8ca[_0xcb80('0x1c')]=_0xcb6df5;if(_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x3b')]){_0x20a821['include']=[{'all':!![]}];}return db['VoiceTransferReport'][_0xcb80('0x3c')](_0x20a821);})['then'](function(_0x26eeca){_0x59a8ca['rows']=_0x26eeca;return _0x59a8ca;})['then'](respondWithFilteredResult(_0x479320,_0x20a821))[_0xcb80('0x3d')](handleError(_0x479320,null));};exports[_0xcb80('0x3e')]=function(_0x8dbcc,_0xe257ab){var _0x321f8d={'raw':!![],'where':{'id':_0x8dbcc[_0xcb80('0x3f')]['id']}},_0x147ab3={};_0x147ab3['model']=_[_0xcb80('0x40')](db['VoiceTransferReport'][_0xcb80('0x41')]);_0x147ab3[_0xcb80('0x2d')]=_[_0xcb80('0x40')](_0x8dbcc[_0xcb80('0x2d')]);_0x147ab3['filters']=_[_0xcb80('0x30')](_0x147ab3['model'],_0x147ab3[_0xcb80('0x2d')]);_0x321f8d[_0xcb80('0x2f')]=_[_0xcb80('0x30')](_0x147ab3[_0xcb80('0x2b')],qs[_0xcb80('0x31')](_0x8dbcc[_0xcb80('0x2d')]['fields']));_0x321f8d[_0xcb80('0x2f')]=_0x321f8d[_0xcb80('0x2f')][_0xcb80('0x32')]?_0x321f8d['attributes']:_0x147ab3['model'];if(_0x8dbcc[_0xcb80('0x2d')][_0xcb80('0x3b')]){_0x321f8d['include']=[{'all':!![]}];}_0x321f8d=_[_0xcb80('0x42')]({},_0x321f8d,_0x8dbcc['options']);return db[_0xcb80('0x28')][_0xcb80('0x43')](_0x321f8d)[_0xcb80('0x23')](handleEntityNotFound(_0xe257ab,null))['then'](respondWithResult(_0xe257ab,null))[_0xcb80('0x3d')](handleError(_0xe257ab,null));};exports[_0xcb80('0x44')]=function(_0x2ed638,_0x338135){return db[_0xcb80('0x28')][_0xcb80('0x44')](_0x2ed638[_0xcb80('0x45')],{})[_0xcb80('0x23')](respondWithResult(_0x338135,0xc9))[_0xcb80('0x3d')](handleError(_0x338135,null));};exports[_0xcb80('0x46')]=function(_0x57bb8a,_0x325cd3){if(_0x57bb8a[_0xcb80('0x45')]['id']){delete _0x57bb8a['body']['id'];}return db[_0xcb80('0x28')][_0xcb80('0x43')]({'where':{'id':_0x57bb8a[_0xcb80('0x3f')]['id']}})[_0xcb80('0x23')](handleEntityNotFound(_0x325cd3,null))[_0xcb80('0x23')](saveUpdates(_0x57bb8a[_0xcb80('0x45')],null))['then'](respondWithResult(_0x325cd3,null))['catch'](handleError(_0x325cd3,null));};exports['destroy']=function(_0x552732,_0x2a8ed3){return db[_0xcb80('0x28')][_0xcb80('0x43')]({'where':{'id':_0x552732[_0xcb80('0x3f')]['id']}})[_0xcb80('0x23')](handleEntityNotFound(_0x2a8ed3,null))[_0xcb80('0x23')](removeEntity(_0x2a8ed3,null))['catch'](handleError(_0x2a8ed3,null));};exports[_0xcb80('0x47')]=function(_0x43a54b,_0x1df4b8){return db[_0xcb80('0x28')][_0xcb80('0x47')]()[_0xcb80('0x23')](respondWithResult(_0x1df4b8,null))['catch'](handleError(_0x1df4b8,null));};
\ No newline at end of file
+var _0x39a7=['key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','merge','VIRTUAL','options','includeAll','include','show','params','keys','find','catch','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','offset','limit','count','status','set','Content-Range','json','reject','save','update','then','destroy','end','sendStatus','error','stack','name','index','map','VoiceTransferReport','rawAttributes','fieldName','type'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x39a7,0xe8));var _0x739a=function(_0x1f8069,_0x10b62c){_0x1f8069=_0x1f8069-0x0;var _0x1c2603=_0x39a7[_0x1f8069];return _0x1c2603;};'use strict';var emlformat=require(_0x739a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x739a('0x1'));var jsonpatch=require(_0x739a('0x2'));var rp=require(_0x739a('0x3'));var moment=require(_0x739a('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x739a('0x5'));var path=require(_0x739a('0x6'));var sox=require(_0x739a('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x739a('0x8'));var _=require(_0x739a('0x9'));var squel=require(_0x739a('0xa'));var crypto=require('crypto');var jsforce=require(_0x739a('0xb'));var deskjs=require(_0x739a('0xc'));var toCsv=require(_0x739a('0xd'));var querystring=require(_0x739a('0xe'));var Papa=require('papaparse');var Redis=require(_0x739a('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x739a('0x10'));var hardwareService=require(_0x739a('0x11'));var logger=require(_0x739a('0x12'))('api');var utils=require(_0x739a('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x739a('0x14'))['db'];function respondWithStatusCode(_0x366b91,_0x4e4a6b){_0x4e4a6b=_0x4e4a6b||0xcc;return function(_0x258e1a){if(_0x258e1a){return _0x366b91['sendStatus'](_0x4e4a6b);}return _0x366b91['status'](_0x4e4a6b)['end']();};}function respondWithResult(_0x3d02cb,_0x1f356f){_0x1f356f=_0x1f356f||0xc8;return function(_0x5cdfe2){if(_0x5cdfe2){return _0x3d02cb['status'](_0x1f356f)['json'](_0x5cdfe2);}};}function respondWithFilteredResult(_0x5772d8,_0x23e552){return function(_0x445cd4){if(_0x445cd4){var _0x12f4c0=typeof _0x23e552[_0x739a('0x15')]==='undefined'&&typeof _0x23e552[_0x739a('0x16')]==='undefined';var _0x17dfcc=_0x445cd4['count'];var _0x54e0f2=_0x12f4c0?0x0:_0x23e552[_0x739a('0x15')];var _0x123b74=_0x12f4c0?_0x445cd4[_0x739a('0x17')]:_0x23e552['offset']+_0x23e552['limit'];var _0x50e122;if(_0x123b74>=_0x17dfcc){_0x123b74=_0x17dfcc;_0x50e122=0xc8;}else{_0x50e122=0xce;}_0x5772d8[_0x739a('0x18')](_0x50e122);return _0x5772d8[_0x739a('0x19')](_0x739a('0x1a'),_0x54e0f2+'-'+_0x123b74+'/'+_0x17dfcc)[_0x739a('0x1b')](_0x445cd4);}return null;};}function patchUpdates(_0x490251){return function(_0x3e66a1){try{jsonpatch['apply'](_0x3e66a1,_0x490251,!![]);}catch(_0x507686){return BPromise[_0x739a('0x1c')](_0x507686);}return _0x3e66a1[_0x739a('0x1d')]();};}function saveUpdates(_0x1769c5,_0x1b2adc){return function(_0x5ab68e){if(_0x5ab68e){return _0x5ab68e[_0x739a('0x1e')](_0x1769c5)[_0x739a('0x1f')](function(_0x273518){return _0x273518;});}return null;};}function removeEntity(_0x19846a,_0x59e81b){return function(_0xb2576f){if(_0xb2576f){return _0xb2576f[_0x739a('0x20')]()['then'](function(){_0x19846a['status'](0xcc)[_0x739a('0x21')]();});}};}function handleEntityNotFound(_0x3a792a,_0x588760){return function(_0x106a17){if(!_0x106a17){_0x3a792a[_0x739a('0x22')](0x194);}return _0x106a17;};}function handleError(_0x57ab61,_0x2e5620){_0x2e5620=_0x2e5620||0x1f4;return function(_0x4c187d){logger[_0x739a('0x23')](_0x4c187d[_0x739a('0x24')]);if(_0x4c187d[_0x739a('0x25')]){delete _0x4c187d['name'];}_0x57ab61[_0x739a('0x18')](_0x2e5620)['send'](_0x4c187d);};}exports[_0x739a('0x26')]=function(_0x30bd95,_0x614725){var _0x64fbd2={},_0x21af92={},_0x5907a8={'count':0x0,'rows':[]};var _0x839d50=_[_0x739a('0x27')](db[_0x739a('0x28')][_0x739a('0x29')],function(_0x20cc3d){return{'name':_0x20cc3d[_0x739a('0x2a')],'type':_0x20cc3d[_0x739a('0x2b')][_0x739a('0x2c')]};});_0x21af92[_0x739a('0x2d')]=_[_0x739a('0x27')](_0x839d50,'name');_0x21af92[_0x739a('0x2e')]=_['keys'](_0x30bd95[_0x739a('0x2e')]);_0x21af92[_0x739a('0x2f')]=_[_0x739a('0x30')](_0x21af92[_0x739a('0x2d')],_0x21af92[_0x739a('0x2e')]);_0x64fbd2[_0x739a('0x31')]=_[_0x739a('0x30')](_0x21af92['model'],qs[_0x739a('0x32')](_0x30bd95[_0x739a('0x2e')][_0x739a('0x32')]));_0x64fbd2[_0x739a('0x31')]=_0x64fbd2[_0x739a('0x31')][_0x739a('0x33')]?_0x64fbd2['attributes']:_0x21af92[_0x739a('0x2d')];if(!_0x30bd95[_0x739a('0x2e')][_0x739a('0x34')](_0x739a('0x35'))){_0x64fbd2[_0x739a('0x16')]=qs[_0x739a('0x16')](_0x30bd95[_0x739a('0x2e')]['limit']);_0x64fbd2[_0x739a('0x15')]=qs['offset'](_0x30bd95[_0x739a('0x2e')][_0x739a('0x15')]);}_0x64fbd2['order']=qs[_0x739a('0x36')](_0x30bd95[_0x739a('0x2e')]['sort']);_0x64fbd2['where']=qs[_0x739a('0x2f')](_['pick'](_0x30bd95[_0x739a('0x2e')],_0x21af92[_0x739a('0x2f')]),_0x839d50);if(_0x30bd95[_0x739a('0x2e')]['filter']){_0x64fbd2[_0x739a('0x37')]=_[_0x739a('0x38')](_0x64fbd2[_0x739a('0x37')],{'$or':_[_0x739a('0x27')](_0x839d50,function(_0x2394ef){if(_0x2394ef[_0x739a('0x2b')]!==_0x739a('0x39')){var _0x4c90b0={};_0x4c90b0[_0x2394ef[_0x739a('0x25')]]={'$like':'%'+_0x30bd95[_0x739a('0x2e')]['filter']+'%'};return _0x4c90b0;}})});}_0x64fbd2=_['merge']({},_0x64fbd2,_0x30bd95[_0x739a('0x3a')]);var _0x45d536={'where':_0x64fbd2[_0x739a('0x37')]};return db['VoiceTransferReport'][_0x739a('0x17')](_0x45d536)['then'](function(_0x40d869){_0x5907a8[_0x739a('0x17')]=_0x40d869;if(_0x30bd95[_0x739a('0x2e')][_0x739a('0x3b')]){_0x64fbd2[_0x739a('0x3c')]=[{'all':!![]}];}return db[_0x739a('0x28')]['findAll'](_0x64fbd2);})[_0x739a('0x1f')](function(_0x4021da){_0x5907a8['rows']=_0x4021da;return _0x5907a8;})[_0x739a('0x1f')](respondWithFilteredResult(_0x614725,_0x64fbd2))['catch'](handleError(_0x614725,null));};exports[_0x739a('0x3d')]=function(_0x4f0bdb,_0x59f197){var _0x476159={'raw':!![],'where':{'id':_0x4f0bdb[_0x739a('0x3e')]['id']}},_0x1e3b5b={};_0x1e3b5b[_0x739a('0x2d')]=_[_0x739a('0x3f')](db['VoiceTransferReport'][_0x739a('0x29')]);_0x1e3b5b['query']=_[_0x739a('0x3f')](_0x4f0bdb[_0x739a('0x2e')]);_0x1e3b5b['filters']=_[_0x739a('0x30')](_0x1e3b5b['model'],_0x1e3b5b[_0x739a('0x2e')]);_0x476159[_0x739a('0x31')]=_['intersection'](_0x1e3b5b[_0x739a('0x2d')],qs[_0x739a('0x32')](_0x4f0bdb['query'][_0x739a('0x32')]));_0x476159[_0x739a('0x31')]=_0x476159[_0x739a('0x31')][_0x739a('0x33')]?_0x476159[_0x739a('0x31')]:_0x1e3b5b[_0x739a('0x2d')];if(_0x4f0bdb['query'][_0x739a('0x3b')]){_0x476159[_0x739a('0x3c')]=[{'all':!![]}];}_0x476159=_[_0x739a('0x38')]({},_0x476159,_0x4f0bdb[_0x739a('0x3a')]);return db[_0x739a('0x28')][_0x739a('0x40')](_0x476159)[_0x739a('0x1f')](handleEntityNotFound(_0x59f197,null))['then'](respondWithResult(_0x59f197,null))[_0x739a('0x41')](handleError(_0x59f197,null));};exports[_0x739a('0x42')]=function(_0x289aeb,_0x7119e1){return db[_0x739a('0x28')][_0x739a('0x42')](_0x289aeb['body'],{})[_0x739a('0x1f')](respondWithResult(_0x7119e1,0xc9))[_0x739a('0x41')](handleError(_0x7119e1,null));};exports['update']=function(_0x492b83,_0x5107e5){if(_0x492b83[_0x739a('0x43')]['id']){delete _0x492b83[_0x739a('0x43')]['id'];}return db['VoiceTransferReport']['find']({'where':{'id':_0x492b83[_0x739a('0x3e')]['id']}})[_0x739a('0x1f')](handleEntityNotFound(_0x5107e5,null))[_0x739a('0x1f')](saveUpdates(_0x492b83['body'],null))['then'](respondWithResult(_0x5107e5,null))['catch'](handleError(_0x5107e5,null));};exports[_0x739a('0x20')]=function(_0xad31a4,_0x102d7a){return db[_0x739a('0x28')][_0x739a('0x40')]({'where':{'id':_0xad31a4[_0x739a('0x3e')]['id']}})[_0x739a('0x1f')](handleEntityNotFound(_0x102d7a,null))[_0x739a('0x1f')](removeEntity(_0x102d7a,null))[_0x739a('0x41')](handleError(_0x102d7a,null));};exports[_0x739a('0x44')]=function(_0x4856a3,_0x20fedb){return db['VoiceTransferReport'][_0x739a('0x44')]()[_0x739a('0x1f')](respondWithResult(_0x20fedb,null))[_0x739a('0x41')](handleError(_0x20fedb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x078b=['api','moment','bluebird','path','rimraf','exports','VoiceTransferReport','lodash','util','../../config/logger'];(function(_0x1477ef,_0x54a5d6){var _0x164acd=function(_0x139149){while(--_0x139149){_0x1477ef['push'](_0x1477ef['shift']());}};_0x164acd(++_0x54a5d6);}(_0x078b,0x1dd));var _0xb078=function(_0x447b45,_0xb4612a){_0x447b45=_0x447b45-0x0;var _0x46c049=_0x078b[_0x447b45];return _0x46c049;};'use strict';var _=require(_0xb078('0x0'));var util=require(_0xb078('0x1'));var logger=require(_0xb078('0x2'))(_0xb078('0x3'));var moment=require(_0xb078('0x4'));var BPromise=require(_0xb078('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb078('0x6'));var rimraf=require(_0xb078('0x7'));var config=require('../../config/environment');var attributes=require('./voiceTransferReport.attributes');module[_0xb078('0x8')]=function(_0x38ff58,_0x5f5b02){return _0x38ff58['define'](_0xb078('0x9'),attributes,{'tableName':'report_call_transfer','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x11e1=['report_call_transfer','lodash','util','moment','bluebird','request-promise','path','../../config/environment','exports','VoiceTransferReport'];(function(_0x932e09,_0x45f0d7){var _0x3c8ed4=function(_0x3c7238){while(--_0x3c7238){_0x932e09['push'](_0x932e09['shift']());}};_0x3c8ed4(++_0x45f0d7);}(_0x11e1,0x191));var _0x111e=function(_0x1e3708,_0x3a2b3e){_0x1e3708=_0x1e3708-0x0;var _0x9d5849=_0x11e1[_0x1e3708];return _0x9d5849;};'use strict';var _=require(_0x111e('0x0'));var util=require(_0x111e('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x111e('0x2'));var BPromise=require(_0x111e('0x3'));var rp=require(_0x111e('0x4'));var fs=require('fs');var path=require(_0x111e('0x5'));var rimraf=require('rimraf');var config=require(_0x111e('0x6'));var attributes=require('./voiceTransferReport.attributes');module[_0x111e('0x7')]=function(_0x56224d,_0x8c5b94){return _0x56224d['define'](_0x111e('0x8'),attributes,{'tableName':_0x111e('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d20=['VoiceTransferReport','body','options','raw','then','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','info','VoiceTransferReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','CreateVoiceTransferReport'];(function(_0x1a014b,_0x48acae){var _0x462258=function(_0x1473be){while(--_0x1473be){_0x1a014b['push'](_0x1a014b['shift']());}};_0x462258(++_0x48acae);}(_0x8d20,0x11d));var _0x08d2=function(_0x472745,_0xaf38c){_0x472745=_0x472745-0x0;var _0x17b35e=_0x8d20[_0x472745];return _0x17b35e;};'use strict';var _=require(_0x08d2('0x0'));var util=require('util');var moment=require(_0x08d2('0x1'));var BPromise=require(_0x08d2('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x08d2('0x3'));var db=require(_0x08d2('0x4'))['db'];var utils=require(_0x08d2('0x5'));var logger=require(_0x08d2('0x6'))(_0x08d2('0x7'));var config=require('../../config/environment');var jayson=require(_0x08d2('0x8'));var client=jayson[_0x08d2('0x9')][_0x08d2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xbb006e,_0x4be443,_0x2f6c8e){return new BPromise(function(_0x225c5b,_0xe74f64){return client[_0x08d2('0xb')](_0xbb006e,_0x2f6c8e)['then'](function(_0xe31872){logger[_0x08d2('0xc')](_0x08d2('0xd'),_0x4be443,_0x08d2('0xe'));logger[_0x08d2('0xf')]('VoiceTransferReport,\x20%s,\x20%s,\x20%s',_0x4be443,_0x08d2('0xe'),JSON[_0x08d2('0x10')](_0xe31872));if(_0xe31872['error']){if(_0xe31872[_0x08d2('0x11')][_0x08d2('0x12')]===0x1f4){logger['error']('VoiceTransferReport,\x20%s,\x20%s',_0x4be443,_0xe31872[_0x08d2('0x11')][_0x08d2('0x13')]);return _0xe74f64(_0xe31872['error'][_0x08d2('0x13')]);}logger['error'](_0x08d2('0xd'),_0x4be443,_0xe31872['error'][_0x08d2('0x13')]);return _0x225c5b(_0xe31872['error']['message']);}else{logger['info']('VoiceTransferReport,\x20%s,\x20%s',_0x4be443,_0x08d2('0xe'));_0x225c5b(_0xe31872[_0x08d2('0x14')][_0x08d2('0x13')]);}})[_0x08d2('0x15')](function(_0x5cab51){logger[_0x08d2('0x11')](_0x08d2('0xd'),_0x4be443,_0x5cab51);_0xe74f64(_0x5cab51);});});}exports[_0x08d2('0x16')]=function(_0x46560e){var _0x4aec04=this;return new Promise(function(_0x1ef5d3,_0xd31a70){return db[_0x08d2('0x17')]['create'](_0x46560e[_0x08d2('0x18')],{'raw':_0x46560e['options']?_0x46560e[_0x08d2('0x19')][_0x08d2('0x1a')]===undefined?!![]:![]:!![]})[_0x08d2('0x1b')](function(_0x4366fa){logger[_0x08d2('0xc')](_0x08d2('0x16'),_0x46560e);logger['debug']('CreateVoiceTransferReport',_0x46560e,JSON['stringify'](_0x4366fa));_0x1ef5d3(_0x4366fa);})[_0x08d2('0x15')](function(_0x52fda9){logger[_0x08d2('0x11')]('CreateVoiceTransferReport',_0x52fda9[_0x08d2('0x13')],_0x46560e);_0xd31a70(_0x4aec04[_0x08d2('0x11')](0x1f4,_0x52fda9[_0x08d2('0x13')]));});});};
\ No newline at end of file
+var _0xf07d=['request\x20sent','debug','error','code','message','info','catch','CreateVoiceTransferReport','VoiceTransferReport','create','body','options','raw','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','jayson/promise','client','then','VoiceTransferReport,\x20%s,\x20%s'];(function(_0x47e7cb,_0x4c1b8d){var _0x2a8874=function(_0x36498f){while(--_0x36498f){_0x47e7cb['push'](_0x47e7cb['shift']());}};_0x2a8874(++_0x4c1b8d);}(_0xf07d,0x76));var _0xdf07=function(_0x342987,_0x547a7b){_0x342987=_0x342987-0x0;var _0x508695=_0xf07d[_0x342987];return _0x508695;};'use strict';var _=require(_0xdf07('0x0'));var util=require(_0xdf07('0x1'));var moment=require(_0xdf07('0x2'));var BPromise=require(_0xdf07('0x3'));var rs=require(_0xdf07('0x4'));var fs=require('fs');var Redis=require(_0xdf07('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xdf07('0x6'))(_0xdf07('0x7'));var config=require('../../config/environment');var jayson=require(_0xdf07('0x8'));var client=jayson[_0xdf07('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2c724b,_0x2e5724,_0x11b798){return new BPromise(function(_0x2d0f87,_0x4c7ced){return client['request'](_0x2c724b,_0x11b798)[_0xdf07('0xa')](function(_0x12d632){logger['info'](_0xdf07('0xb'),_0x2e5724,_0xdf07('0xc'));logger[_0xdf07('0xd')]('VoiceTransferReport,\x20%s,\x20%s,\x20%s',_0x2e5724,_0xdf07('0xc'),JSON['stringify'](_0x12d632));if(_0x12d632[_0xdf07('0xe')]){if(_0x12d632[_0xdf07('0xe')][_0xdf07('0xf')]===0x1f4){logger[_0xdf07('0xe')](_0xdf07('0xb'),_0x2e5724,_0x12d632[_0xdf07('0xe')][_0xdf07('0x10')]);return _0x4c7ced(_0x12d632[_0xdf07('0xe')]['message']);}logger[_0xdf07('0xe')]('VoiceTransferReport,\x20%s,\x20%s',_0x2e5724,_0x12d632[_0xdf07('0xe')][_0xdf07('0x10')]);return _0x2d0f87(_0x12d632[_0xdf07('0xe')][_0xdf07('0x10')]);}else{logger[_0xdf07('0x11')](_0xdf07('0xb'),_0x2e5724,_0xdf07('0xc'));_0x2d0f87(_0x12d632['result'][_0xdf07('0x10')]);}})[_0xdf07('0x12')](function(_0x2b1668){logger[_0xdf07('0xe')](_0xdf07('0xb'),_0x2e5724,_0x2b1668);_0x4c7ced(_0x2b1668);});});}exports[_0xdf07('0x13')]=function(_0x48d53e){var _0x146692=this;return new Promise(function(_0x395a96,_0x407422){return db[_0xdf07('0x14')][_0xdf07('0x15')](_0x48d53e[_0xdf07('0x16')],{'raw':_0x48d53e['options']?_0x48d53e[_0xdf07('0x17')][_0xdf07('0x18')]===undefined?!![]:![]:!![]})['then'](function(_0x537f9c){logger['info'](_0xdf07('0x13'),_0x48d53e);logger[_0xdf07('0xd')](_0xdf07('0x13'),_0x48d53e,JSON[_0xdf07('0x19')](_0x537f9c));_0x395a96(_0x537f9c);})['catch'](function(_0xeb7f93){logger[_0xdf07('0xe')](_0xdf07('0x13'),_0xeb7f93['message'],_0x48d53e);_0x407422(_0x146692[_0xdf07('0xe')](0x1f4,_0xeb7f93[_0xdf07('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd574=['calls','/transfer','exports','express','Router','../../components/auth/service','./webbar.controller','post','/originate','canUpdate','/hangup','isAuthenticated','/answer','/hold','/unhold','unhold','/calls'];(function(_0x22ea4f,_0x1adcb9){var _0x1a451d=function(_0x160d13){while(--_0x160d13){_0x22ea4f['push'](_0x22ea4f['shift']());}};_0x1a451d(++_0x1adcb9);}(_0xd574,0xcf));var _0x4d57=function(_0x368ba8,_0x47782a){_0x368ba8=_0x368ba8-0x0;var _0x519996=_0xd574[_0x368ba8];return _0x519996;};'use strict';var express=require(_0x4d57('0x0'));var router=express[_0x4d57('0x1')]();var auth=require(_0x4d57('0x2'));var controller=require(_0x4d57('0x3'));router[_0x4d57('0x4')](_0x4d57('0x5'),auth['isAuthenticated'](),auth[_0x4d57('0x6')](),controller['originate']);router[_0x4d57('0x4')](_0x4d57('0x7'),auth[_0x4d57('0x8')](),auth['canUpdate'](),controller['hangup']);router[_0x4d57('0x4')](_0x4d57('0x9'),auth[_0x4d57('0x8')](),auth['canUpdate'](),controller['answer']);router[_0x4d57('0x4')](_0x4d57('0xa'),auth[_0x4d57('0x8')](),auth[_0x4d57('0x6')](),controller['hold']);router[_0x4d57('0x4')](_0x4d57('0xb'),auth[_0x4d57('0x8')](),auth[_0x4d57('0x6')](),controller[_0x4d57('0xc')]);router['post'](_0x4d57('0xd'),auth[_0x4d57('0x8')](),auth[_0x4d57('0x6')](),controller[_0x4d57('0xe')]);router[_0x4d57('0x4')](_0x4d57('0xf'),auth['isAuthenticated'](),auth[_0x4d57('0x6')](),controller['transfer']);module[_0x4d57('0x10')]=router;
\ No newline at end of file
+var _0xb42f=['unhold','/calls','/transfer','transfer','express','Router','../../components/auth/service','post','/originate','isAuthenticated','originate','/hangup','canUpdate','hangup','/answer','answer','/hold','hold','/unhold'];(function(_0xc6be3a,_0x540e05){var _0x56a310=function(_0x50a144){while(--_0x50a144){_0xc6be3a['push'](_0xc6be3a['shift']());}};_0x56a310(++_0x540e05);}(_0xb42f,0x134));var _0xfb42=function(_0x194d42,_0x138502){_0x194d42=_0x194d42-0x0;var _0x1cebed=_0xb42f[_0x194d42];return _0x1cebed;};'use strict';var express=require(_0xfb42('0x0'));var router=express[_0xfb42('0x1')]();var auth=require(_0xfb42('0x2'));var controller=require('./webbar.controller');router[_0xfb42('0x3')](_0xfb42('0x4'),auth[_0xfb42('0x5')](),auth['canUpdate'](),controller[_0xfb42('0x6')]);router[_0xfb42('0x3')](_0xfb42('0x7'),auth[_0xfb42('0x5')](),auth[_0xfb42('0x8')](),controller[_0xfb42('0x9')]);router[_0xfb42('0x3')](_0xfb42('0xa'),auth[_0xfb42('0x5')](),auth[_0xfb42('0x8')](),controller[_0xfb42('0xb')]);router[_0xfb42('0x3')](_0xfb42('0xc'),auth[_0xfb42('0x5')](),auth[_0xfb42('0x8')](),controller[_0xfb42('0xd')]);router[_0xfb42('0x3')](_0xfb42('0xe'),auth[_0xfb42('0x5')](),auth[_0xfb42('0x8')](),controller[_0xfb42('0xf')]);router[_0xfb42('0x3')](_0xfb42('0x10'),auth[_0xfb42('0x5')](),auth['canUpdate'](),controller['calls']);router[_0xfb42('0x3')](_0xfb42('0x11'),auth[_0xfb42('0x5')](),auth[_0xfb42('0x8')](),controller[_0xfb42('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5db8=['callerId','callbackUrl','entityFound:','format','user:%s','webbar:originate','originate\x20executed!','hangup','hangup\x20fired:','sessionId','webbar:hangup','hangup\x20executed!','answer','answer\x20fired:','webbar:answer','answer\x20executed!','hold','hold\x20fired:','webbar:hold','hold\x20executed!','webbar:unhold','unhold\x20executed!','calls','calls\x20fired:','VoiceChannels','UserId','transfer','transfer\x20fired:','transferNumber','webbar:transfer','transfer\x20executed!','path','lodash','../../mysqldb','util','bluebird','jayson/promise','../../config/logger','webbarapi','ioredis','redis','localhost','socket.io-emitter','validate','userId\x20is\x20required','callNumber\x20is\x20required','string','number','sessionId\x20is\x20required','transferNumber\x20is\x20required','info','stringify','emit','handleError:','error','stack','name','status','send','NotFound','request','code','message','result','catch','findOne','agent','then','all','filter','rows','length','\x20not\x20found!','originate','originate\x20fired:','body','json','userId'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x5db8,0xbb));var _0x85db=function(_0x531a19,_0x43e019){_0x531a19=_0x531a19-0x0;var _0x4845d2=_0x5db8[_0x531a19];return _0x4845d2;};'use strict';var path=require(_0x85db('0x0'));var fs=require('fs');var _=require(_0x85db('0x1'));var db=require(_0x85db('0x2'))['db'];var config=require('../../config/environment');var util=require(_0x85db('0x3'));var BPromise=require(_0x85db('0x4'));var jayson=require(_0x85db('0x5'));var amiClient=jayson['client']['http']({'port':0x232a});var logger=require(_0x85db('0x6'))(_0x85db('0x7'));var Redis=require(_0x85db('0x8'));config[_0x85db('0x9')]=_['defaults'](config['redis'],{'host':_0x85db('0xa'),'port':0x18eb});var io=require(_0x85db('0xb'))(new Redis(config[_0x85db('0x9')]));var Schema=require(_0x85db('0xc'));var originateValidation=new Schema({'userId':{'type':'number','required':[!![],_0x85db('0xd')]},'callNumber':{'type':'string','required':[!![],_0x85db('0xe')]},'callerId':{'type':_0x85db('0xf')},'callbackUrl':{'type':_0x85db('0xf')}});var hangupValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':'string','required':![]}});var answerValidation=new Schema({'userId':{'type':'number','required':[!![],_0x85db('0xd')]},'sessionId':{'type':_0x85db('0xf'),'required':![]}});var transferValidation=new Schema({'userId':{'type':'number','required':[!![],_0x85db('0xd')]},'sessionId':{'type':'string','required':[!![],_0x85db('0x11')]},'transferNumber':{'type':_0x85db('0xf'),'required':[!![],_0x85db('0x12')]}});var holdValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]},'sessionId':{'type':_0x85db('0xf'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]},'sessionId':{'type':_0x85db('0xf'),'required':![]}});var callsValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]}});var conferenceValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]}});function emit(_0x5ccfef,_0x27bd65,_0x175622){logger[_0x85db('0x13')](_0x5ccfef,_0x27bd65,JSON[_0x85db('0x14')](_0x175622));io['to'](_0x5ccfef)[_0x85db('0x15')](_0x27bd65,_0x175622);}function handleError(_0x396afa){return function(_0x3209b3){console['log'](_0x85db('0x16'),_0x3209b3,_0x3209b3 instanceof RangeError);logger[_0x85db('0x17')](_0x3209b3[_0x85db('0x18')]);if(_0x3209b3 instanceof RangeError){if(_0x3209b3[_0x85db('0x19')]){delete _0x3209b3[_0x85db('0x19')];}_0x396afa[_0x85db('0x1a')](0x194)[_0x85db('0x1b')](_0x3209b3);}else{if(_0x3209b3[_0x85db('0x19')]){delete _0x3209b3[_0x85db('0x19')];}_0x396afa[_0x85db('0x1a')](0x1f4)['send'](_0x3209b3);}};}function checkError(){return function(_0x36a2af){if(!_0x36a2af){throw new RangeError(_0x85db('0x1c'));}return _0x36a2af;};}function respondWithRpcPromise(_0xc812d2,_0x470c81){return new BPromise(function(_0x44c122,_0x3842d7){var _0x3a7148=amiClient;return _0x3a7148[_0x85db('0x1d')](_0xc812d2,_0x470c81)['then'](function(_0xfffea2){if(_0xfffea2[_0x85db('0x17')]){if(_0xfffea2[_0x85db('0x17')][_0x85db('0x1e')]===0x1f4){return _0x3842d7(_0xfffea2[_0x85db('0x17')][_0x85db('0x1f')]);}return _0x44c122(_0xfffea2['error'][_0x85db('0x1f')]);}else{_0x44c122(_0xfffea2[_0x85db('0x20')]);}})[_0x85db('0x21')](function(_0x54ba03){_0x3842d7(_0x54ba03);});});}function getAgent(_0x5467ad){return db['User'][_0x85db('0x22')]({'where':{'id':_0x5467ad,'role':_0x85db('0x23')}})[_0x85db('0x24')](checkError());}function getAgentCheckSession(_0x51b748,_0x71c6f4){return new BPromise(function(_0xc2abb8,_0xdfff49){var _0x574bcc=respondWithRpcPromise('VoiceChannels');var _0x299013=getAgent(_0x51b748);Promise[_0x85db('0x25')]([_0x574bcc,_0x299013])[_0x85db('0x24')](function(_0x226540){var _0x397afc=_0x226540[0x0];var _0x16ee2a=_0x226540[0x1];var _0x8af4a4=_[_0x85db('0x26')](_0x397afc[_0x85db('0x27')],function(_0x1edc8d){return _0x1edc8d['UserId']==_0x16ee2a['id']&&_0x1edc8d['sessionId']==_0x71c6f4;});if(_0x8af4a4[_0x85db('0x28')]==0x1){_0xc2abb8(_0x16ee2a);}else{_0xdfff49(new RangeError('sessionId\x20'+_0x71c6f4+_0x85db('0x29')));}});});}exports[_0x85db('0x2a')]=function(_0x5abdb7,_0x1d15b0){logger[_0x85db('0x13')](_0x85db('0x2b'),_0x5abdb7[_0x85db('0x2c')]);var _0x515a06=originateValidation[_0x85db('0xc')](_0x5abdb7[_0x85db('0x2c')]);if(_0x515a06[_0x85db('0x28')]>0x0){return _0x1d15b0[_0x85db('0x1a')](0x190)[_0x85db('0x2d')](_0x515a06);}var _0x4808a4=_0x5abdb7[_0x85db('0x2c')][_0x85db('0x2e')];var _0x232175=_0x5abdb7[_0x85db('0x2c')]['callNumber'];var _0xfe3cd9=_0x5abdb7[_0x85db('0x2c')][_0x85db('0x2f')];var _0x536398=_0x5abdb7['body'][_0x85db('0x30')];return getAgent(_0x4808a4)[_0x85db('0x24')](function(_0x4980b7){logger[_0x85db('0x13')](_0x85db('0x31'),_0x4980b7[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x4980b7[_0x85db('0x19')]),_0x85db('0x34'),{'callNumber':_0x232175,'callerId':_0xfe3cd9,'callbackUrl':_0x536398});return _0x1d15b0[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x35')});})[_0x85db('0x21')](handleError(_0x1d15b0));};exports[_0x85db('0x36')]=function(_0x54bc6f,_0x35e938){logger[_0x85db('0x13')](_0x85db('0x37'),_0x54bc6f[_0x85db('0x2c')]);var _0x57a77a=hangupValidation[_0x85db('0xc')](_0x54bc6f[_0x85db('0x2c')]);if(_0x57a77a[_0x85db('0x28')]>0x0){return _0x35e938[_0x85db('0x1a')](0x190)['json'](_0x57a77a);}var _0x5dfe91=_0x54bc6f['body']['userId'];var _0x4d5ff9=_0x54bc6f[_0x85db('0x2c')][_0x85db('0x38')];return getAgent(_0x5dfe91)[_0x85db('0x24')](function(_0x17f649){logger[_0x85db('0x13')]('entityFound:',_0x17f649['name']);emit(util[_0x85db('0x32')]('user:%s',_0x17f649[_0x85db('0x19')]),_0x85db('0x39'),{'sessionId':_0x4d5ff9});return _0x35e938['status'](0xc8)['json']({'error':![],'message':_0x85db('0x3a')});})[_0x85db('0x21')](handleError(_0x35e938));};exports[_0x85db('0x3b')]=function(_0x73eb93,_0x24f8dc){logger['info'](_0x85db('0x3c'),_0x73eb93[_0x85db('0x2c')]);var _0x115720=answerValidation['validate'](_0x73eb93['body']);if(_0x115720['length']>0x0){return _0x24f8dc[_0x85db('0x1a')](0x190)[_0x85db('0x2d')](_0x115720);}var _0x116cb3=_0x73eb93['body']['userId'];var _0x3e4dbc=_0x73eb93['body'][_0x85db('0x38')];return getAgent(_0x116cb3)[_0x85db('0x24')](function(_0x374515){logger['info'](_0x85db('0x31'),_0x374515[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x374515[_0x85db('0x19')]),_0x85db('0x3d'),{'sessionId':_0x3e4dbc});return _0x24f8dc[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x3e')});})['catch'](handleError(_0x24f8dc));};exports[_0x85db('0x3f')]=function(_0x1b9ab8,_0x30c7a0){logger[_0x85db('0x13')](_0x85db('0x40'),_0x1b9ab8[_0x85db('0x2c')]);var _0x4acd1c=holdValidation[_0x85db('0xc')](_0x1b9ab8[_0x85db('0x2c')]);if(_0x4acd1c[_0x85db('0x28')]>0x0){return _0x30c7a0['status'](0x190)['json'](_0x4acd1c);}var _0x1350ae=_0x1b9ab8['body'][_0x85db('0x2e')];var _0x85181f=_0x1b9ab8[_0x85db('0x2c')][_0x85db('0x38')];return getAgent(_0x1350ae)[_0x85db('0x24')](function(_0x5e1455){logger['info'](_0x85db('0x31'),_0x5e1455[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x5e1455[_0x85db('0x19')]),_0x85db('0x41'),{'sessionId':_0x85181f});return _0x30c7a0[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x42')});})[_0x85db('0x21')](handleError(_0x30c7a0));};exports['unhold']=function(_0x69c505,_0x2c4ae4){logger['info']('unhold\x20fired:',_0x69c505[_0x85db('0x2c')]);var _0x306be6=unholdValidation['validate'](_0x69c505['body']);if(_0x306be6[_0x85db('0x28')]>0x0){return _0x2c4ae4[_0x85db('0x1a')](0x190)['json'](_0x306be6);}var _0x101388=_0x69c505[_0x85db('0x2c')][_0x85db('0x2e')];var _0xd3cedb=_0x69c505[_0x85db('0x2c')][_0x85db('0x38')];return getAgent(_0x101388)[_0x85db('0x24')](function(_0x438ce7){logger[_0x85db('0x13')](_0x85db('0x31'),_0x438ce7['name']);emit(util['format'](_0x85db('0x33'),_0x438ce7[_0x85db('0x19')]),_0x85db('0x43'),{'sessionId':_0xd3cedb});return _0x2c4ae4[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x44')});})[_0x85db('0x21')](handleError(_0x2c4ae4));};exports[_0x85db('0x45')]=function(_0x34b54e,_0x1e6f60){logger[_0x85db('0x13')](_0x85db('0x46'),_0x1e6f60[_0x85db('0x2c')]);var _0x425e61=callsValidation['validate'](_0x34b54e[_0x85db('0x2c')]);if(_0x425e61[_0x85db('0x28')]>0x0){return _0x1e6f60['status'](0x190)[_0x85db('0x2d')](_0x425e61);}var _0x40a009=_0x34b54e[_0x85db('0x2c')][_0x85db('0x2e')];var _0x992a63=respondWithRpcPromise(_0x85db('0x47'));var _0x43b095=getAgent(_0x40a009);return Promise['all']([_0x992a63,_0x43b095])[_0x85db('0x24')](function(_0x355be9){var _0x4d7e50=_0x355be9[0x0];var _0x5b38c6=_0x355be9[0x1];var _0x1e910e=_['filter'](_0x4d7e50[_0x85db('0x27')],function(_0x42ca02){return _0x42ca02[_0x85db('0x48')]==_0x5b38c6['id'];});return _0x1e6f60[_0x85db('0x1a')](0xc8)['json']({'count':_0x1e910e[_0x85db('0x28')],'rows':_0x1e910e});})['catch'](handleError(_0x1e6f60));};exports['conference']=function(_0x493ab3,_0x367e3e){logger[_0x85db('0x13')]('conference\x20fired:',_0x493ab3[_0x85db('0x2c')]);var _0x1249a6=conferenceValidation['validate'](_0x493ab3[_0x85db('0x2c')]);if(_0x1249a6[_0x85db('0x28')]>0x0){return _0x367e3e[_0x85db('0x1a')](0x190)[_0x85db('0x2d')](_0x1249a6);}var _0x42eddd=_0x493ab3[_0x85db('0x2c')]['userId'];return getAgent(_0x42eddd)[_0x85db('0x24')](function(_0x427250){logger[_0x85db('0x13')](_0x85db('0x31'),_0x427250[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x427250[_0x85db('0x19')]),'webbar:conference');return _0x367e3e['status'](0xc8)['json']({'error':![],'message':'conference\x20executed!'});})[_0x85db('0x21')](handleError(_0x367e3e));};exports[_0x85db('0x49')]=function(_0x88626d,_0x239027){logger[_0x85db('0x13')](_0x85db('0x4a'),_0x88626d['body']);var _0x367ebe=transferValidation[_0x85db('0xc')](_0x88626d[_0x85db('0x2c')]);if(_0x367ebe[_0x85db('0x28')]>0x0){return _0x239027['status'](0x190)[_0x85db('0x2d')](_0x367ebe);}var _0x3dc6f0=_0x88626d[_0x85db('0x2c')][_0x85db('0x2e')];var _0x4d042c=_0x88626d[_0x85db('0x2c')][_0x85db('0x38')];var _0x2af26e=_0x88626d[_0x85db('0x2c')][_0x85db('0x4b')];return getAgent(_0x3dc6f0)['then'](function(_0x4667a5){logger[_0x85db('0x13')](_0x85db('0x31'),_0x4667a5[_0x85db('0x19')]);emit(util[_0x85db('0x32')]('user:%s',_0x4667a5[_0x85db('0x19')]),_0x85db('0x4c'),{'sessionId':_0x4d042c,'transferNumber':_0x2af26e});return _0x239027[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x4d')});})['catch'](handleError(_0x239027));};
\ No newline at end of file
+var _0x4c6d=['webbar:hold','hold\x20executed!','unhold','unhold\x20fired:','unhold\x20executed!','calls','calls\x20fired:','conference','conference\x20fired:','webbar:conference','transfer','transfer\x20fired:','transferNumber','transfer\x20executed!','path','lodash','../../mysqldb','../../config/environment','util','jayson/promise','client','http','webbarapi','ioredis','defaults','redis','localhost','validate','number','string','callNumber\x20is\x20required','userId\x20is\x20required','transferNumber\x20is\x20required','info','emit','log','handleError:','stack','name','send','status','request','then','error','code','message','result','User','agent','VoiceChannels','all','filter','rows','UserId','sessionId','length','\x20not\x20found!','originate','body','json','userId','callerId','callbackUrl','entityFound:','format','user:%s','originate\x20executed!','catch','hangup','hangup\x20fired:','hangup\x20executed!','answer\x20fired:','webbar:answer','hold','hold\x20fired:'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x4c6d,0x1d0));var _0xd4c6=function(_0x41ceed,_0xb593fd){_0x41ceed=_0x41ceed-0x0;var _0x32d18e=_0x4c6d[_0x41ceed];return _0x32d18e;};'use strict';var path=require(_0xd4c6('0x0'));var fs=require('fs');var _=require(_0xd4c6('0x1'));var db=require(_0xd4c6('0x2'))['db'];var config=require(_0xd4c6('0x3'));var util=require(_0xd4c6('0x4'));var BPromise=require('bluebird');var jayson=require(_0xd4c6('0x5'));var amiClient=jayson[_0xd4c6('0x6')][_0xd4c6('0x7')]({'port':0x232a});var logger=require('../../config/logger')(_0xd4c6('0x8'));var Redis=require(_0xd4c6('0x9'));config['redis']=_[_0xd4c6('0xa')](config[_0xd4c6('0xb')],{'host':_0xd4c6('0xc'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xd4c6('0xb')]));var Schema=require(_0xd4c6('0xd'));var originateValidation=new Schema({'userId':{'type':_0xd4c6('0xe'),'required':[!![],'userId\x20is\x20required']},'callNumber':{'type':_0xd4c6('0xf'),'required':[!![],_0xd4c6('0x10')]},'callerId':{'type':_0xd4c6('0xf')},'callbackUrl':{'type':'string'}});var hangupValidation=new Schema({'userId':{'type':_0xd4c6('0xe'),'required':[!![],_0xd4c6('0x11')]},'sessionId':{'type':_0xd4c6('0xf'),'required':![]}});var answerValidation=new Schema({'userId':{'type':_0xd4c6('0xe'),'required':[!![],_0xd4c6('0x11')]},'sessionId':{'type':_0xd4c6('0xf'),'required':![]}});var transferValidation=new Schema({'userId':{'type':'number','required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0xd4c6('0xf'),'required':[!![],'sessionId\x20is\x20required']},'transferNumber':{'type':_0xd4c6('0xf'),'required':[!![],_0xd4c6('0x12')]}});var holdValidation=new Schema({'userId':{'type':_0xd4c6('0xe'),'required':[!![],_0xd4c6('0x11')]},'sessionId':{'type':_0xd4c6('0xf'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0xd4c6('0xe'),'required':[!![],_0xd4c6('0x11')]},'sessionId':{'type':'string','required':![]}});var callsValidation=new Schema({'userId':{'type':'number','required':[!![],_0xd4c6('0x11')]}});var conferenceValidation=new Schema({'userId':{'type':_0xd4c6('0xe'),'required':[!![],_0xd4c6('0x11')]}});function emit(_0x25204d,_0x3cb95c,_0x3da1f4){logger[_0xd4c6('0x13')](_0x25204d,_0x3cb95c,JSON['stringify'](_0x3da1f4));io['to'](_0x25204d)[_0xd4c6('0x14')](_0x3cb95c,_0x3da1f4);}function handleError(_0x44126c){return function(_0x23a16f){console[_0xd4c6('0x15')](_0xd4c6('0x16'),_0x23a16f,_0x23a16f instanceof RangeError);logger['error'](_0x23a16f[_0xd4c6('0x17')]);if(_0x23a16f instanceof RangeError){if(_0x23a16f[_0xd4c6('0x18')]){delete _0x23a16f[_0xd4c6('0x18')];}_0x44126c['status'](0x194)[_0xd4c6('0x19')](_0x23a16f);}else{if(_0x23a16f[_0xd4c6('0x18')]){delete _0x23a16f[_0xd4c6('0x18')];}_0x44126c[_0xd4c6('0x1a')](0x1f4)['send'](_0x23a16f);}};}function checkError(){return function(_0x1c8427){if(!_0x1c8427){throw new RangeError('NotFound');}return _0x1c8427;};}function respondWithRpcPromise(_0x37f552,_0x150e28){return new BPromise(function(_0x2750c9,_0x222813){var _0xf536e0=amiClient;return _0xf536e0[_0xd4c6('0x1b')](_0x37f552,_0x150e28)[_0xd4c6('0x1c')](function(_0x3f99e8){if(_0x3f99e8[_0xd4c6('0x1d')]){if(_0x3f99e8[_0xd4c6('0x1d')][_0xd4c6('0x1e')]===0x1f4){return _0x222813(_0x3f99e8[_0xd4c6('0x1d')]['message']);}return _0x2750c9(_0x3f99e8['error'][_0xd4c6('0x1f')]);}else{_0x2750c9(_0x3f99e8[_0xd4c6('0x20')]);}})['catch'](function(_0x1dee19){_0x222813(_0x1dee19);});});}function getAgent(_0x3a2c50){return db[_0xd4c6('0x21')]['findOne']({'where':{'id':_0x3a2c50,'role':_0xd4c6('0x22')}})[_0xd4c6('0x1c')](checkError());}function getAgentCheckSession(_0x5614f3,_0x406ed0){return new BPromise(function(_0x8ce066,_0x25ea15){var _0x488e7e=respondWithRpcPromise(_0xd4c6('0x23'));var _0x3b656d=getAgent(_0x5614f3);Promise[_0xd4c6('0x24')]([_0x488e7e,_0x3b656d])[_0xd4c6('0x1c')](function(_0x2e8c34){var _0x160330=_0x2e8c34[0x0];var _0x41a8d2=_0x2e8c34[0x1];var _0x1f32d8=_[_0xd4c6('0x25')](_0x160330[_0xd4c6('0x26')],function(_0x441119){return _0x441119[_0xd4c6('0x27')]==_0x41a8d2['id']&&_0x441119[_0xd4c6('0x28')]==_0x406ed0;});if(_0x1f32d8[_0xd4c6('0x29')]==0x1){_0x8ce066(_0x41a8d2);}else{_0x25ea15(new RangeError('sessionId\x20'+_0x406ed0+_0xd4c6('0x2a')));}});});}exports[_0xd4c6('0x2b')]=function(_0x32deb7,_0x38d423){logger['info']('originate\x20fired:',_0x32deb7['body']);var _0x103ac3=originateValidation[_0xd4c6('0xd')](_0x32deb7[_0xd4c6('0x2c')]);if(_0x103ac3[_0xd4c6('0x29')]>0x0){return _0x38d423[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x103ac3);}var _0x1615ff=_0x32deb7['body'][_0xd4c6('0x2e')];var _0x3ae596=_0x32deb7[_0xd4c6('0x2c')]['callNumber'];var _0x24a716=_0x32deb7[_0xd4c6('0x2c')][_0xd4c6('0x2f')];var _0x4c69af=_0x32deb7[_0xd4c6('0x2c')][_0xd4c6('0x30')];return getAgent(_0x1615ff)[_0xd4c6('0x1c')](function(_0xe5aa2d){logger['info'](_0xd4c6('0x31'),_0xe5aa2d[_0xd4c6('0x18')]);emit(util[_0xd4c6('0x32')](_0xd4c6('0x33'),_0xe5aa2d[_0xd4c6('0x18')]),'webbar:originate',{'callNumber':_0x3ae596,'callerId':_0x24a716,'callbackUrl':_0x4c69af});return _0x38d423[_0xd4c6('0x1a')](0xc8)[_0xd4c6('0x2d')]({'error':![],'message':_0xd4c6('0x34')});})[_0xd4c6('0x35')](handleError(_0x38d423));};exports[_0xd4c6('0x36')]=function(_0x2cdb9d,_0x554666){logger[_0xd4c6('0x13')](_0xd4c6('0x37'),_0x2cdb9d[_0xd4c6('0x2c')]);var _0x5f4060=hangupValidation[_0xd4c6('0xd')](_0x2cdb9d[_0xd4c6('0x2c')]);if(_0x5f4060[_0xd4c6('0x29')]>0x0){return _0x554666[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x5f4060);}var _0x20a4e8=_0x2cdb9d[_0xd4c6('0x2c')][_0xd4c6('0x2e')];var _0x2e1768=_0x2cdb9d['body'][_0xd4c6('0x28')];return getAgent(_0x20a4e8)['then'](function(_0x55063c){logger[_0xd4c6('0x13')](_0xd4c6('0x31'),_0x55063c[_0xd4c6('0x18')]);emit(util[_0xd4c6('0x32')](_0xd4c6('0x33'),_0x55063c['name']),'webbar:hangup',{'sessionId':_0x2e1768});return _0x554666[_0xd4c6('0x1a')](0xc8)[_0xd4c6('0x2d')]({'error':![],'message':_0xd4c6('0x38')});})[_0xd4c6('0x35')](handleError(_0x554666));};exports['answer']=function(_0x211d47,_0x494811){logger[_0xd4c6('0x13')](_0xd4c6('0x39'),_0x211d47[_0xd4c6('0x2c')]);var _0x51585c=answerValidation[_0xd4c6('0xd')](_0x211d47[_0xd4c6('0x2c')]);if(_0x51585c[_0xd4c6('0x29')]>0x0){return _0x494811[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x51585c);}var _0x3ef1b0=_0x211d47[_0xd4c6('0x2c')][_0xd4c6('0x2e')];var _0x343d94=_0x211d47['body'][_0xd4c6('0x28')];return getAgent(_0x3ef1b0)[_0xd4c6('0x1c')](function(_0xefcd5){logger['info'](_0xd4c6('0x31'),_0xefcd5[_0xd4c6('0x18')]);emit(util[_0xd4c6('0x32')]('user:%s',_0xefcd5['name']),_0xd4c6('0x3a'),{'sessionId':_0x343d94});return _0x494811[_0xd4c6('0x1a')](0xc8)[_0xd4c6('0x2d')]({'error':![],'message':'answer\x20executed!'});})[_0xd4c6('0x35')](handleError(_0x494811));};exports[_0xd4c6('0x3b')]=function(_0x1a53e9,_0x258a95){logger[_0xd4c6('0x13')](_0xd4c6('0x3c'),_0x1a53e9['body']);var _0x22298a=holdValidation[_0xd4c6('0xd')](_0x1a53e9[_0xd4c6('0x2c')]);if(_0x22298a[_0xd4c6('0x29')]>0x0){return _0x258a95[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x22298a);}var _0x34fb42=_0x1a53e9[_0xd4c6('0x2c')]['userId'];var _0x4f26fc=_0x1a53e9[_0xd4c6('0x2c')][_0xd4c6('0x28')];return getAgent(_0x34fb42)[_0xd4c6('0x1c')](function(_0x5bb875){logger[_0xd4c6('0x13')](_0xd4c6('0x31'),_0x5bb875[_0xd4c6('0x18')]);emit(util['format'](_0xd4c6('0x33'),_0x5bb875[_0xd4c6('0x18')]),_0xd4c6('0x3d'),{'sessionId':_0x4f26fc});return _0x258a95[_0xd4c6('0x1a')](0xc8)['json']({'error':![],'message':_0xd4c6('0x3e')});})[_0xd4c6('0x35')](handleError(_0x258a95));};exports[_0xd4c6('0x3f')]=function(_0x14279d,_0x291837){logger[_0xd4c6('0x13')](_0xd4c6('0x40'),_0x14279d['body']);var _0x304f96=unholdValidation[_0xd4c6('0xd')](_0x14279d[_0xd4c6('0x2c')]);if(_0x304f96['length']>0x0){return _0x291837[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x304f96);}var _0x46bf10=_0x14279d[_0xd4c6('0x2c')][_0xd4c6('0x2e')];var _0x3e6df8=_0x14279d[_0xd4c6('0x2c')]['sessionId'];return getAgent(_0x46bf10)[_0xd4c6('0x1c')](function(_0x4a3092){logger['info'](_0xd4c6('0x31'),_0x4a3092['name']);emit(util[_0xd4c6('0x32')]('user:%s',_0x4a3092[_0xd4c6('0x18')]),'webbar:unhold',{'sessionId':_0x3e6df8});return _0x291837['status'](0xc8)[_0xd4c6('0x2d')]({'error':![],'message':_0xd4c6('0x41')});})[_0xd4c6('0x35')](handleError(_0x291837));};exports[_0xd4c6('0x42')]=function(_0x5639b6,_0x241e6c){logger[_0xd4c6('0x13')](_0xd4c6('0x43'),_0x241e6c[_0xd4c6('0x2c')]);var _0x5e52db=callsValidation[_0xd4c6('0xd')](_0x5639b6[_0xd4c6('0x2c')]);if(_0x5e52db[_0xd4c6('0x29')]>0x0){return _0x241e6c[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x5e52db);}var _0x1525a4=_0x5639b6[_0xd4c6('0x2c')][_0xd4c6('0x2e')];var _0x106710=respondWithRpcPromise(_0xd4c6('0x23'));var _0xe07a2d=getAgent(_0x1525a4);return Promise['all']([_0x106710,_0xe07a2d])['then'](function(_0x2dab4a){var _0x11c37d=_0x2dab4a[0x0];var _0x558ce2=_0x2dab4a[0x1];var _0x5179af=_['filter'](_0x11c37d[_0xd4c6('0x26')],function(_0x218250){return _0x218250['UserId']==_0x558ce2['id'];});return _0x241e6c['status'](0xc8)[_0xd4c6('0x2d')]({'count':_0x5179af[_0xd4c6('0x29')],'rows':_0x5179af});})[_0xd4c6('0x35')](handleError(_0x241e6c));};exports[_0xd4c6('0x44')]=function(_0x226549,_0x516e12){logger[_0xd4c6('0x13')](_0xd4c6('0x45'),_0x226549[_0xd4c6('0x2c')]);var _0x26cff1=conferenceValidation[_0xd4c6('0xd')](_0x226549[_0xd4c6('0x2c')]);if(_0x26cff1[_0xd4c6('0x29')]>0x0){return _0x516e12[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x26cff1);}var _0x20b5b9=_0x226549[_0xd4c6('0x2c')][_0xd4c6('0x2e')];return getAgent(_0x20b5b9)[_0xd4c6('0x1c')](function(_0x5a0400){logger['info'](_0xd4c6('0x31'),_0x5a0400['name']);emit(util['format']('user:%s',_0x5a0400[_0xd4c6('0x18')]),_0xd4c6('0x46'));return _0x516e12[_0xd4c6('0x1a')](0xc8)[_0xd4c6('0x2d')]({'error':![],'message':'conference\x20executed!'});})[_0xd4c6('0x35')](handleError(_0x516e12));};exports[_0xd4c6('0x47')]=function(_0x53dcea,_0x705041){logger[_0xd4c6('0x13')](_0xd4c6('0x48'),_0x53dcea[_0xd4c6('0x2c')]);var _0x5cf823=transferValidation[_0xd4c6('0xd')](_0x53dcea[_0xd4c6('0x2c')]);if(_0x5cf823['length']>0x0){return _0x705041[_0xd4c6('0x1a')](0x190)[_0xd4c6('0x2d')](_0x5cf823);}var _0x5ae295=_0x53dcea[_0xd4c6('0x2c')][_0xd4c6('0x2e')];var _0x4cdf5f=_0x53dcea[_0xd4c6('0x2c')]['sessionId'];var _0x7aef4=_0x53dcea[_0xd4c6('0x2c')][_0xd4c6('0x49')];return getAgent(_0x5ae295)[_0xd4c6('0x1c')](function(_0x2a8448){logger[_0xd4c6('0x13')]('entityFound:',_0x2a8448[_0xd4c6('0x18')]);emit(util['format'](_0xd4c6('0x33'),_0x2a8448[_0xd4c6('0x18')]),'webbar:transfer',{'sessionId':_0x4cdf5f,'transferNumber':_0x7aef4});return _0x705041[_0xd4c6('0x1a')](0xc8)[_0xd4c6('0x2d')]({'error':![],'message':_0xd4c6('0x4a')});})['catch'](handleError(_0x705041));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93e9=['/describe','/:id','show','/:id/dispositions','/:id/canned_answers','/:id/applications','getApplications','post','create','addDisposition','addAnswer','/:id/users','addApplications','/:id/notify','/:id/send','send','put','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./whatsappAccount.controller','get','isAuthenticated','index'];(function(_0x2d460c,_0x4f08c0){var _0xf6fc4c=function(_0x4fb81c){while(--_0x4fb81c){_0x2d460c['push'](_0x2d460c['shift']());}};_0xf6fc4c(++_0x4f08c0);}(_0x93e9,0xcc));var _0x993e=function(_0x5df641,_0x1e66a0){_0x5df641=_0x5df641-0x0;var _0x1a943e=_0x93e9[_0x5df641];return _0x1a943e;};'use strict';var multer=require(_0x993e('0x0'));var util=require(_0x993e('0x1'));var path=require(_0x993e('0x2'));var timeout=require(_0x993e('0x3'));var express=require(_0x993e('0x4'));var router=express[_0x993e('0x5')]();var fs_extra=require(_0x993e('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x993e('0x7'));var controller=require(_0x993e('0x8'));router[_0x993e('0x9')]('/',auth[_0x993e('0xa')](),controller[_0x993e('0xb')]);router[_0x993e('0x9')](_0x993e('0xc'),auth[_0x993e('0xa')](),controller['describe']);router[_0x993e('0x9')](_0x993e('0xd'),auth[_0x993e('0xa')](),controller[_0x993e('0xe')]);router[_0x993e('0x9')](_0x993e('0xf'),auth[_0x993e('0xa')](),controller['getDispositions']);router[_0x993e('0x9')](_0x993e('0x10'),auth['isAuthenticated'](),controller['getAnswers']);router[_0x993e('0x9')]('/:id/users',auth[_0x993e('0xa')](),controller['getAgents']);router['get'](_0x993e('0x11'),auth[_0x993e('0xa')](),controller[_0x993e('0x12')]);router[_0x993e('0x13')]('/',auth[_0x993e('0xa')](),controller[_0x993e('0x14')]);router[_0x993e('0x13')](_0x993e('0xf'),auth[_0x993e('0xa')](),controller[_0x993e('0x15')]);router[_0x993e('0x13')](_0x993e('0x10'),auth[_0x993e('0xa')](),controller[_0x993e('0x16')]);router[_0x993e('0x13')](_0x993e('0x17'),auth[_0x993e('0xa')](),controller['addAgents']);router[_0x993e('0x13')](_0x993e('0x11'),auth[_0x993e('0xa')](),controller[_0x993e('0x18')]);router[_0x993e('0x13')](_0x993e('0x19'),controller['notify']);router[_0x993e('0x13')](_0x993e('0x1a'),auth[_0x993e('0xa')](),controller[_0x993e('0x1b')]);router[_0x993e('0x1c')](_0x993e('0xd'),auth[_0x993e('0xa')](),controller[_0x993e('0x1d')]);router['delete'](_0x993e('0xd'),auth['isAuthenticated'](),controller[_0x993e('0x1e')]);router[_0x993e('0x1f')](_0x993e('0xf'),auth['isAuthenticated'](),controller[_0x993e('0x20')]);router[_0x993e('0x1f')](_0x993e('0x10'),auth[_0x993e('0xa')](),controller[_0x993e('0x21')]);router[_0x993e('0x1f')](_0x993e('0x17'),auth[_0x993e('0xa')](),controller[_0x993e('0x22')]);module[_0x993e('0x23')]=router;
\ No newline at end of file
+var _0x7a54=['index','/describe','isAuthenticated','/:id/dispositions','getDispositions','getAnswers','/:id/users','getAgents','getApplications','post','create','/:id/canned_answers','addAnswer','addAgents','addApplications','/:id/notify','notify','/:id/send','send','/:id','delete','removeDispositions','removeAgents','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappAccount.controller','get'];(function(_0x5a4a08,_0x2b237f){var _0xdcff44=function(_0x3eb4ff){while(--_0x3eb4ff){_0x5a4a08['push'](_0x5a4a08['shift']());}};_0xdcff44(++_0x2b237f);}(_0x7a54,0x106));var _0x47a5=function(_0x3c8b91,_0x5664dc){_0x3c8b91=_0x3c8b91-0x0;var _0x19cad2=_0x7a54[_0x3c8b91];return _0x19cad2;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['describe']);router[_0x47a5('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x47a5('0x9')](_0x47a5('0xd'),auth['isAuthenticated'](),controller[_0x47a5('0xe')]);router['get']('/:id/canned_answers',auth[_0x47a5('0xc')](),controller[_0x47a5('0xf')]);router[_0x47a5('0x9')](_0x47a5('0x10'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x11')]);router[_0x47a5('0x9')]('/:id/applications',auth[_0x47a5('0xc')](),controller[_0x47a5('0x12')]);router[_0x47a5('0x13')]('/',auth[_0x47a5('0xc')](),controller[_0x47a5('0x14')]);router[_0x47a5('0x13')](_0x47a5('0xd'),auth[_0x47a5('0xc')](),controller['addDisposition']);router[_0x47a5('0x13')](_0x47a5('0x15'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x16')]);router[_0x47a5('0x13')]('/:id/users',auth['isAuthenticated'](),controller[_0x47a5('0x17')]);router['post']('/:id/applications',auth[_0x47a5('0xc')](),controller[_0x47a5('0x18')]);router[_0x47a5('0x13')](_0x47a5('0x19'),controller[_0x47a5('0x1a')]);router[_0x47a5('0x13')](_0x47a5('0x1b'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x1c')]);router['put'](_0x47a5('0x1d'),auth[_0x47a5('0xc')](),controller['update']);router[_0x47a5('0x1e')](_0x47a5('0x1d'),auth[_0x47a5('0xc')](),controller['destroy']);router[_0x47a5('0x1e')](_0x47a5('0xd'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x1f')]);router['delete'](_0x47a5('0x15'),auth[_0x47a5('0xc')](),controller['removeAnswers']);router[_0x47a5('0x1e')](_0x47a5('0x10'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x20')]);module[_0x47a5('0x21')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb04=['Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','sequelize','randomstring','exports','name','STRING','generate','ENUM','twilio','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER'];(function(_0x3d9e6e,_0x80b08a){var _0x540ed0=function(_0x4f238c){while(--_0x4f238c){_0x3d9e6e['push'](_0x3d9e6e['shift']());}};_0x540ed0(++_0x80b08a);}(_0xcb04,0x111));var _0x4cb0=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xcb04[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x4cb0('0x0'));var rs=require(_0x4cb0('0x1'));module[_0x4cb0('0x2')]={'name':{'type':Sequelize['STRING'],'unique':_0x4cb0('0x3'),'allowNull':![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'remote':{'type':Sequelize[_0x4cb0('0x4')],'allowNull':![]},'token':{'type':Sequelize[_0x4cb0('0x4')],'defaultValue':function(){return rs[_0x4cb0('0x5')]();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x4cb0('0x6')](_0x4cb0('0x7'))},'accountSid':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0x4cb0('0x8')],'defaultValue':function(){return _0x4cb0('0x9');}},'notificationSound':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4cb0('0xb')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4cb0('0xb')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x4cb0('0xb')],'comment':_0x4cb0('0xc')},'mandatoryDisposition':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![],'comment':_0x4cb0('0xd'),'set':function(_0x4a0094){if(!_0x4a0094){this[_0x4cb0('0xe')]('mandatoryDispositionPauseId',null);}this[_0x4cb0('0xe')]('mandatoryDisposition',_0x4a0094);}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x0a71=['ENUM','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','randomstring','exports','name','STRING','generate'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x0a71,0x113));var _0x10a7=function(_0x5dea53,_0x27c45d){_0x5dea53=_0x5dea53-0x0;var _0x443233=_0x0a71[_0x5dea53];return _0x443233;};'use strict';var Sequelize=require('sequelize');var rs=require(_0x10a7('0x0'));module[_0x10a7('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x10a7('0x2'),'allowNull':![]},'key':{'type':Sequelize[_0x10a7('0x3')],'allowNull':![]},'remote':{'type':Sequelize[_0x10a7('0x3')],'allowNull':![]},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs[_0x10a7('0x4')]();}},'phone':{'type':Sequelize[_0x10a7('0x3')]},'type':{'type':Sequelize[_0x10a7('0x5')]('twilio','sinch')},'accountSid':{'type':Sequelize[_0x10a7('0x3')]},'baseUrl':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize[_0x10a7('0x3')]},'notificationTemplate':{'type':Sequelize[_0x10a7('0x6')],'defaultValue':function(){return _0x10a7('0x7');}},'notificationSound':{'type':Sequelize[_0x10a7('0x8')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0x10a7('0x8')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x10a7('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x10a7('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x10a7('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x10a7('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x10a7('0xa'),'set':function(_0xc1f8a4){if(!_0xc1f8a4){this[_0x10a7('0xb')](_0x10a7('0xc'),null);}this[_0x10a7('0xb')](_0x10a7('0xd'),_0xc1f8a4);}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0939=['interaction','autoclose','push','close','*,*,*,*','created','ContactId','AttachmentId','unshift','waitForTheAssignedAgent','Start','startRouting','receiveMessage','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','text/xml','to\x20is\x20mandatory','List','DESC','out','WhatsappMessage','dataValues','Messages','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./whatsappAccount.socket','register','jayson/promise','http','request','then','info','request\x20sent','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','WhatsappAccount,\x20%s,\x20%s','result','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','get','WhatsappAccounts','UserProfileResource','destroy','sendStatus','stack','name','send','index','Pause','mandatoryDispositionPause','map','WhatsappAccount','rawAttributes','fieldName','key','query','keys','intersection','model','fields','length','attributes','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','type','options','includeAll','include','rows','show','params','find','catch','create','user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','WhatsappAccountId','Disposition','getDispositions','findOne','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addAgents','spread','emit','userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','getAgents','User','addApplications','sequelize','transaction','WhatsappApplication','bulkCreate','findAndCountAll','priority','getApplications','notify','account','applications','orderBy','Applications','asc','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','mobile','from','From','replace','MessageSid','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','CmList','Contacts','contact','WhatsappInteraction'];(function(_0x5a364d,_0x3f85ba){var _0x2386e7=function(_0x5732f2){while(--_0x5732f2){_0x5a364d['push'](_0x5a364d['shift']());}};_0x2386e7(++_0x3f85ba);}(_0x0939,0xd4));var _0x9093=function(_0x38cc08,_0x33eadd){_0x38cc08=_0x38cc08-0x0;var _0x4bff3f=_0x0939[_0x38cc08];return _0x4bff3f;};'use strict';var emlformat=require(_0x9093('0x0'));var rimraf=require(_0x9093('0x1'));var zipdir=require(_0x9093('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9093('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9093('0x4'));var util=require(_0x9093('0x5'));var path=require(_0x9093('0x6'));var sox=require(_0x9093('0x7'));var csv=require(_0x9093('0x8'));var ejs=require(_0x9093('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9093('0xa'));var squel=require(_0x9093('0xb'));var crypto=require(_0x9093('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9093('0xd'));var toCsv=require(_0x9093('0x8'));var querystring=require('querystring');var Papa=require(_0x9093('0xe'));var Redis=require(_0x9093('0xf'));var authService=require(_0x9093('0x10'));var qs=require(_0x9093('0x11'));var as=require(_0x9093('0x12'));var hardwareService=require(_0x9093('0x13'));var logger=require(_0x9093('0x14'))('api');var utils=require(_0x9093('0x15'));var config=require(_0x9093('0x16'));var licenseUtil=require(_0x9093('0x17'));var db=require(_0x9093('0x18'))['db'];config[_0x9093('0x19')]=_[_0x9093('0x1a')](config[_0x9093('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x9093('0x1b'))(new Redis(config['redis']));require(_0x9093('0x1c'))[_0x9093('0x1d')](socket);var jayson=require(_0x9093('0x1e'));var client=jayson['client'][_0x9093('0x1f')]({'port':0x232c});function respondWithRpcPromise(_0x415c91,_0x2e9ec3,_0x19d74b,_0x4cf7be){return new BPromise(function(_0x12c7f3,_0x4f80a4){var _0x5b45f2=_0x4cf7be||client;return _0x5b45f2[_0x9093('0x20')](_0x415c91,_0x19d74b)[_0x9093('0x21')](function(_0x22538f){logger[_0x9093('0x22')]('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x9093('0x23'));logger[_0x9093('0x24')](_0x9093('0x25'),_0x2e9ec3,_0x9093('0x23'),JSON[_0x9093('0x26')](_0x22538f));if(_0x22538f[_0x9093('0x27')]){if(_0x22538f[_0x9093('0x27')][_0x9093('0x28')]===0x1f4){logger[_0x9093('0x27')]('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x22538f[_0x9093('0x27')][_0x9093('0x29')]);return _0x4f80a4(_0x22538f[_0x9093('0x27')]['message']);}logger[_0x9093('0x27')](_0x9093('0x2a'),_0x2e9ec3,_0x22538f[_0x9093('0x27')][_0x9093('0x29')]);return _0x12c7f3(_0x22538f[_0x9093('0x27')][_0x9093('0x29')]);}else{logger[_0x9093('0x22')]('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x9093('0x23'));_0x12c7f3(_0x22538f[_0x9093('0x2b')][_0x9093('0x29')]);}})['catch'](function(_0x59e698){logger['error']('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x59e698);_0x4f80a4(_0x59e698);});});}function respondWithStatusCode(_0x580ff6,_0x4023b6){_0x4023b6=_0x4023b6||0xcc;return function(_0x54d509){if(_0x54d509){return _0x580ff6['sendStatus'](_0x4023b6);}return _0x580ff6[_0x9093('0x2c')](_0x4023b6)[_0x9093('0x2d')]();};}function respondWithResult(_0x185cd9,_0x38db68){_0x38db68=_0x38db68||0xc8;return function(_0x178d91){if(_0x178d91){return _0x185cd9[_0x9093('0x2c')](_0x38db68)[_0x9093('0x2e')](_0x178d91);}};}function respondWithFilteredResult(_0x1b4910,_0x39e643){return function(_0x46b34a){if(_0x46b34a){var _0x5e0ae4=typeof _0x39e643[_0x9093('0x2f')]==='undefined'&&typeof _0x39e643[_0x9093('0x30')]==='undefined';var _0x5a4d11=_0x46b34a[_0x9093('0x31')];var _0x2b4ea7=_0x5e0ae4?0x0:_0x39e643[_0x9093('0x2f')];var _0x24454b=_0x5e0ae4?_0x46b34a[_0x9093('0x31')]:_0x39e643[_0x9093('0x2f')]+_0x39e643[_0x9093('0x30')];var _0x37f14e;if(_0x24454b>=_0x5a4d11){_0x24454b=_0x5a4d11;_0x37f14e=0xc8;}else{_0x37f14e=0xce;}_0x1b4910[_0x9093('0x2c')](_0x37f14e);return _0x1b4910[_0x9093('0x32')](_0x9093('0x33'),_0x2b4ea7+'-'+_0x24454b+'/'+_0x5a4d11)[_0x9093('0x2e')](_0x46b34a);}return null;};}function patchUpdates(_0x1260ce){return function(_0xed1b0d){try{jsonpatch[_0x9093('0x34')](_0xed1b0d,_0x1260ce,!![]);}catch(_0x2a688e){return BPromise[_0x9093('0x35')](_0x2a688e);}return _0xed1b0d[_0x9093('0x36')]();};}function saveUpdates(_0x283222,_0x30a8c2){return function(_0x3507b6){if(_0x3507b6){return _0x3507b6[_0x9093('0x37')](_0x283222)['then'](function(_0x6775c6){return _0x6775c6;});}return null;};}function removeEntity(_0x18dea5,_0x4735ae){return function(_0x534374){if(_0x534374){return _0x534374['destroy']()[_0x9093('0x21')](function(){var _0x46f7ca=_0x534374[_0x9093('0x38')]({'plain':!![]});var _0x53cc3b=_0x9093('0x39');return db[_0x9093('0x3a')][_0x9093('0x3b')]({'where':{'type':_0x53cc3b,'resourceId':_0x46f7ca['id']}})[_0x9093('0x21')](function(){return _0x534374;});})[_0x9093('0x21')](function(){_0x18dea5[_0x9093('0x2c')](0xcc)[_0x9093('0x2d')]();});}};}function handleEntityNotFound(_0x56a94f,_0x359830){return function(_0x19620b){if(!_0x19620b){_0x56a94f[_0x9093('0x3c')](0x194);}return _0x19620b;};}function handleError(_0xbc2ddf,_0x1314ca){_0x1314ca=_0x1314ca||0x1f4;return function(_0x63d231){logger[_0x9093('0x27')](_0x63d231[_0x9093('0x3d')]);if(_0x63d231[_0x9093('0x3e')]){delete _0x63d231['name'];}_0xbc2ddf[_0x9093('0x2c')](_0x1314ca)[_0x9093('0x3f')](_0x63d231);};}exports[_0x9093('0x40')]=function(_0x42360c,_0x62369e){var _0x2630d4={'include':[{'model':db[_0x9093('0x41')],'as':_0x9093('0x42')}]},_0x46d11d={},_0x229e9f={'count':0x0,'rows':[]};var _0x591329=_[_0x9093('0x43')](db[_0x9093('0x44')][_0x9093('0x45')],function(_0x170db4){return{'name':_0x170db4[_0x9093('0x46')],'type':_0x170db4['type'][_0x9093('0x47')]};});_0x46d11d['model']=_[_0x9093('0x43')](_0x591329,_0x9093('0x3e'));_0x46d11d[_0x9093('0x48')]=_[_0x9093('0x49')](_0x42360c[_0x9093('0x48')]);_0x46d11d['filters']=_[_0x9093('0x4a')](_0x46d11d[_0x9093('0x4b')],_0x46d11d[_0x9093('0x48')]);_0x2630d4['attributes']=_['intersection'](_0x46d11d[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x42360c['query']['fields']));_0x2630d4['attributes']=_0x2630d4['attributes'][_0x9093('0x4d')]?_0x2630d4[_0x9093('0x4e')]:_0x46d11d['model'];if(!_0x42360c[_0x9093('0x48')][_0x9093('0x4f')](_0x9093('0x50'))){_0x2630d4['limit']=qs[_0x9093('0x30')](_0x42360c[_0x9093('0x48')][_0x9093('0x30')]);_0x2630d4[_0x9093('0x2f')]=qs[_0x9093('0x2f')](_0x42360c['query'][_0x9093('0x2f')]);}_0x2630d4[_0x9093('0x51')]=qs[_0x9093('0x52')](_0x42360c[_0x9093('0x48')][_0x9093('0x52')]);_0x2630d4['where']=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x42360c[_0x9093('0x48')],_0x46d11d[_0x9093('0x53')]),_0x591329);if(_0x42360c[_0x9093('0x48')][_0x9093('0x55')]){_0x2630d4[_0x9093('0x56')]=_[_0x9093('0x57')](_0x2630d4[_0x9093('0x56')],{'$or':_[_0x9093('0x43')](_0x591329,function(_0x1a1ef7){if(_0x1a1ef7[_0x9093('0x58')]!=='VIRTUAL'){var _0x16d6e9={};_0x16d6e9[_0x1a1ef7['name']]={'$like':'%'+_0x42360c[_0x9093('0x48')]['filter']+'%'};return _0x16d6e9;}})});}_0x2630d4=_[_0x9093('0x57')]({},_0x2630d4,_0x42360c[_0x9093('0x59')]);var _0x2bb3bf={'where':_0x2630d4[_0x9093('0x56')]};return db[_0x9093('0x44')][_0x9093('0x31')](_0x2bb3bf)['then'](function(_0x2924b7){_0x229e9f[_0x9093('0x31')]=_0x2924b7;if(_0x42360c[_0x9093('0x48')][_0x9093('0x5a')]){_0x2630d4[_0x9093('0x5b')]=[{'all':!![]}];}return db[_0x9093('0x44')]['findAll'](_0x2630d4);})[_0x9093('0x21')](function(_0x45fb7b){_0x229e9f[_0x9093('0x5c')]=_0x45fb7b;return _0x229e9f;})[_0x9093('0x21')](respondWithFilteredResult(_0x62369e,_0x2630d4))['catch'](handleError(_0x62369e,null));};exports[_0x9093('0x5d')]=function(_0xdfe1d7,_0x297b3f){var _0x119a0a={'raw':![],'where':{'id':_0xdfe1d7[_0x9093('0x5e')]['id']},'include':[{'model':db[_0x9093('0x41')],'as':_0x9093('0x42')}]},_0x159c9d={};_0x159c9d[_0x9093('0x4b')]=_['keys'](db['WhatsappAccount']['rawAttributes']);_0x159c9d[_0x9093('0x48')]=_[_0x9093('0x49')](_0xdfe1d7[_0x9093('0x48')]);_0x159c9d['filters']=_[_0x9093('0x4a')](_0x159c9d[_0x9093('0x4b')],_0x159c9d['query']);_0x119a0a['attributes']=_['intersection'](_0x159c9d['model'],qs['fields'](_0xdfe1d7[_0x9093('0x48')][_0x9093('0x4c')]));_0x119a0a[_0x9093('0x4e')]=_0x119a0a[_0x9093('0x4e')][_0x9093('0x4d')]?_0x119a0a[_0x9093('0x4e')]:_0x159c9d['model'];if(_0xdfe1d7[_0x9093('0x48')][_0x9093('0x5a')]){_0x119a0a[_0x9093('0x5b')]=[{'all':!![]}];}_0x119a0a=_[_0x9093('0x57')]({},_0x119a0a,_0xdfe1d7[_0x9093('0x59')]);return db[_0x9093('0x44')][_0x9093('0x5f')](_0x119a0a)[_0x9093('0x21')](handleEntityNotFound(_0x297b3f,null))[_0x9093('0x21')](respondWithResult(_0x297b3f,null))[_0x9093('0x60')](handleError(_0x297b3f,null));};exports[_0x9093('0x61')]=function(_0x28343f,_0x4951f6){return db[_0x9093('0x44')]['create'](_0x28343f['body'],{})[_0x9093('0x21')](function(_0x287aee){var _0x147e75=_0x28343f[_0x9093('0x62')][_0x9093('0x38')]({'plain':!![]});if(!_0x147e75)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x147e75[_0x9093('0x63')]===_0x9093('0x62')){var _0x18dffd=_0x287aee[_0x9093('0x38')]({'plain':!![]});var _0x347eff='WhatsappAccounts';return db[_0x9093('0x64')][_0x9093('0x5f')]({'where':{'name':_0x347eff,'userProfileId':_0x147e75['userProfileId']},'raw':!![]})[_0x9093('0x21')](function(_0x498795){if(_0x498795&&_0x498795[_0x9093('0x65')]===0x0){return db[_0x9093('0x3a')][_0x9093('0x61')]({'name':_0x18dffd['name'],'resourceId':_0x18dffd['id'],'type':_0x498795['name'],'sectionId':_0x498795['id']},{})[_0x9093('0x21')](function(){return _0x287aee;});}else{return _0x287aee;}})[_0x9093('0x60')](function(_0x4183f5){logger['error'](_0x9093('0x66'),_0x4183f5);throw _0x4183f5;});}return _0x287aee;})[_0x9093('0x21')](respondWithResult(_0x4951f6,0xc9))[_0x9093('0x60')](handleError(_0x4951f6,null));};exports[_0x9093('0x37')]=function(_0x139925,_0x13c648){if(_0x139925[_0x9093('0x67')]['id']){delete _0x139925[_0x9093('0x67')]['id'];}return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x139925[_0x9093('0x5e')]['id']},'include':[{'model':db[_0x9093('0x41')],'as':_0x9093('0x42')}]})[_0x9093('0x21')](handleEntityNotFound(_0x13c648,null))[_0x9093('0x21')](saveUpdates(_0x139925['body'],null))[_0x9093('0x21')](respondWithResult(_0x13c648,null))['catch'](handleError(_0x13c648,null));};exports[_0x9093('0x3b')]=function(_0x48c1c9,_0x578d52){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x48c1c9[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x578d52,null))['then'](removeEntity(_0x578d52,null))[_0x9093('0x60')](handleError(_0x578d52,null));};exports['describe']=function(_0x6caac2,_0x4a10fe){return db[_0x9093('0x44')][_0x9093('0x68')]()[_0x9093('0x21')](respondWithResult(_0x4a10fe,null))[_0x9093('0x60')](handleError(_0x4a10fe,null));};exports[_0x9093('0x69')]=function(_0x173687,_0x496e1e,_0x5a62c8){if(_0x173687[_0x9093('0x67')]['id']){delete _0x173687['body']['id'];}return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x173687[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x496e1e,null))['then'](function(_0x5be8cc){if(_0x5be8cc){_0x173687['body'][_0x9093('0x6a')]=_0x5be8cc['id'];return db[_0x9093('0x6b')][_0x9093('0x61')](_0x173687[_0x9093('0x67')]);}})['then'](respondWithResult(_0x496e1e,null))[_0x9093('0x60')](handleError(_0x496e1e,null));};exports[_0x9093('0x6c')]=function(_0x2b203d,_0x20bafb,_0x3446fd){var _0x5d3a03={'raw':![],'where':{}};var _0x4a18f0={};var _0x5af7f2={'count':0x0,'rows':[]};return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x2b203d['params']['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x20bafb,null))[_0x9093('0x21')](function(_0x266a48){if(_0x266a48){_0x4a18f0[_0x9093('0x4b')]=_[_0x9093('0x49')](db[_0x9093('0x6b')][_0x9093('0x45')]);_0x4a18f0[_0x9093('0x48')]=_[_0x9093('0x49')](_0x2b203d[_0x9093('0x48')]);_0x4a18f0[_0x9093('0x53')]=_[_0x9093('0x4a')](_0x4a18f0['model'],_0x4a18f0['query']);_0x5d3a03[_0x9093('0x4e')]=_['intersection'](_0x4a18f0[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x2b203d['query'][_0x9093('0x4c')]));_0x5d3a03[_0x9093('0x4e')]=_0x5d3a03[_0x9093('0x4e')][_0x9093('0x4d')]?_0x5d3a03[_0x9093('0x4e')]:_0x4a18f0['model'];if(!_0x2b203d[_0x9093('0x48')][_0x9093('0x4f')](_0x9093('0x50'))){_0x5d3a03[_0x9093('0x30')]=qs[_0x9093('0x30')](_0x2b203d[_0x9093('0x48')][_0x9093('0x30')]);_0x5d3a03[_0x9093('0x2f')]=qs['offset'](_0x2b203d['query'][_0x9093('0x2f')]);}_0x5d3a03[_0x9093('0x51')]=qs[_0x9093('0x52')](_0x2b203d[_0x9093('0x48')][_0x9093('0x52')]);_0x5d3a03['where']=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x2b203d[_0x9093('0x48')],_0x4a18f0[_0x9093('0x53')]));_0x5d3a03[_0x9093('0x56')][_0x9093('0x6a')]=_0x266a48['id'];if(_0x2b203d[_0x9093('0x48')][_0x9093('0x55')]){_0x5d3a03[_0x9093('0x56')]=_[_0x9093('0x57')](_0x5d3a03['where'],{'$or':_[_0x9093('0x43')](_0x5d3a03[_0x9093('0x4e')],function(_0x1598a1){var _0x3ba80f={};_0x3ba80f[_0x1598a1]={'$like':'%'+_0x2b203d['query'][_0x9093('0x55')]+'%'};return _0x3ba80f;})});}_0x5d3a03=_[_0x9093('0x57')]({},_0x5d3a03,_0x2b203d['options']);return db[_0x9093('0x6b')][_0x9093('0x31')]({'where':_0x5d3a03[_0x9093('0x56')]})[_0x9093('0x21')](function(_0x3da883){_0x5af7f2['count']=_0x3da883;if(_0x2b203d[_0x9093('0x48')][_0x9093('0x5a')]){_0x5d3a03[_0x9093('0x5b')]=[{'all':!![]}];}return db[_0x9093('0x6b')][_0x9093('0x6e')](_0x5d3a03);})['then'](function(_0x1961b0){_0x5af7f2[_0x9093('0x5c')]=_0x1961b0;return _0x5af7f2;});}})[_0x9093('0x21')](respondWithFilteredResult(_0x20bafb,_0x5d3a03))[_0x9093('0x60')](handleError(_0x20bafb,null));};exports[_0x9093('0x6f')]=function(_0x856616,_0x43c3fe,_0x692d37){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x856616[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x43c3fe,null))['then'](function(_0xcbff56){if(_0xcbff56){return _0xcbff56[_0x9093('0x6f')](_0x856616[_0x9093('0x48')][_0x9093('0x70')]);}})[_0x9093('0x21')](respondWithStatusCode(_0x43c3fe,null))[_0x9093('0x60')](handleError(_0x43c3fe,null));};exports[_0x9093('0x71')]=function(_0x14fc17,_0x9a91a7,_0x4b7820){if(_0x14fc17[_0x9093('0x67')]['id']){delete _0x14fc17[_0x9093('0x67')]['id'];}return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x14fc17[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x9a91a7,null))[_0x9093('0x21')](function(_0x219118){if(_0x219118){_0x14fc17[_0x9093('0x67')][_0x9093('0x6a')]=_0x219118['id'];return db[_0x9093('0x72')][_0x9093('0x61')](_0x14fc17['body']);}})['then'](respondWithResult(_0x9a91a7,null))[_0x9093('0x60')](handleError(_0x9a91a7,null));};exports[_0x9093('0x73')]=function(_0x4a0e34,_0x369d0c,_0xd92ea9){var _0x29e83d={'raw':![],'where':{}};var _0x50baa7={};var _0x3b858d={'count':0x0,'rows':[]};return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x4a0e34[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x369d0c,null))[_0x9093('0x21')](function(_0x2b4ebc){if(_0x2b4ebc){_0x50baa7[_0x9093('0x4b')]=_[_0x9093('0x49')](db['CannedAnswer']['rawAttributes']);_0x50baa7[_0x9093('0x48')]=_[_0x9093('0x49')](_0x4a0e34[_0x9093('0x48')]);_0x50baa7[_0x9093('0x53')]=_['intersection'](_0x50baa7[_0x9093('0x4b')],_0x50baa7[_0x9093('0x48')]);_0x29e83d[_0x9093('0x4e')]=_[_0x9093('0x4a')](_0x50baa7[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x4a0e34[_0x9093('0x48')][_0x9093('0x4c')]));_0x29e83d[_0x9093('0x4e')]=_0x29e83d[_0x9093('0x4e')][_0x9093('0x4d')]?_0x29e83d[_0x9093('0x4e')]:_0x50baa7[_0x9093('0x4b')];if(!_0x4a0e34[_0x9093('0x48')][_0x9093('0x4f')](_0x9093('0x50'))){_0x29e83d[_0x9093('0x30')]=qs['limit'](_0x4a0e34[_0x9093('0x48')][_0x9093('0x30')]);_0x29e83d[_0x9093('0x2f')]=qs['offset'](_0x4a0e34['query'][_0x9093('0x2f')]);}_0x29e83d[_0x9093('0x51')]=qs[_0x9093('0x52')](_0x4a0e34[_0x9093('0x48')][_0x9093('0x52')]);_0x29e83d[_0x9093('0x56')]=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x4a0e34['query'],_0x50baa7[_0x9093('0x53')]));_0x29e83d['where'][_0x9093('0x6a')]=_0x2b4ebc['id'];if(_0x4a0e34[_0x9093('0x48')]['filter']){_0x29e83d[_0x9093('0x56')]=_[_0x9093('0x57')](_0x29e83d['where'],{'$or':_[_0x9093('0x43')](_0x29e83d[_0x9093('0x4e')],function(_0x32dd83){var _0x5ac8eb={};_0x5ac8eb[_0x32dd83]={'$like':'%'+_0x4a0e34[_0x9093('0x48')][_0x9093('0x55')]+'%'};return _0x5ac8eb;})});}_0x29e83d=_[_0x9093('0x57')]({},_0x29e83d,_0x4a0e34[_0x9093('0x59')]);return db[_0x9093('0x72')][_0x9093('0x31')]({'where':_0x29e83d[_0x9093('0x56')]})[_0x9093('0x21')](function(_0x55c133){_0x3b858d[_0x9093('0x31')]=_0x55c133;if(_0x4a0e34[_0x9093('0x48')][_0x9093('0x5a')]){_0x29e83d[_0x9093('0x5b')]=[{'all':!![]}];}return db[_0x9093('0x72')][_0x9093('0x6e')](_0x29e83d);})[_0x9093('0x21')](function(_0x5a3924){_0x3b858d[_0x9093('0x5c')]=_0x5a3924;return _0x3b858d;});}})['then'](respondWithFilteredResult(_0x369d0c,_0x29e83d))['catch'](handleError(_0x369d0c,null));};exports[_0x9093('0x74')]=function(_0x2c0ea2,_0x28315a,_0x14f0a1){return db['WhatsappAccount']['find']({'where':{'id':_0x2c0ea2['params']['id']}})['then'](handleEntityNotFound(_0x28315a,null))['then'](function(_0x328d92){if(_0x328d92){return _0x328d92[_0x9093('0x74')](_0x2c0ea2[_0x9093('0x48')][_0x9093('0x70')]);}})['then'](respondWithStatusCode(_0x28315a,null))[_0x9093('0x60')](handleError(_0x28315a,null));};exports['addAgents']=function(_0x4d7a7e,_0x2511fa,_0x533e2b){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x4d7a7e[_0x9093('0x5e')]['id']}})['then'](handleEntityNotFound(_0x2511fa,null))[_0x9093('0x21')](function(_0x26c617){if(_0x26c617){return _0x26c617[_0x9093('0x75')](_0x4d7a7e['body'][_0x9093('0x70')],_['omit'](_0x4d7a7e[_0x9093('0x67')],['ids','id'])||{})[_0x9093('0x76')](function(_0x3139ca){for(var _0x160837=0x0;_0x160837<_0x4d7a7e[_0x9093('0x67')][_0x9093('0x70')][_0x9093('0x4d')];_0x160837+=0x1){socket[_0x9093('0x77')](_0x9093('0x78'),{'UserId':Number(_0x4d7a7e['body'][_0x9093('0x70')][_0x160837]),'WhatsappAccountId':Number(_0x4d7a7e[_0x9093('0x5e')]['id'])});}return _0x3139ca;});}})['then'](respondWithResult(_0x2511fa,null))[_0x9093('0x60')](handleError(_0x2511fa,null));};exports[_0x9093('0x79')]=function(_0x50199d,_0x3a42e1,_0x33299b){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x50199d[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x3a42e1,null))[_0x9093('0x21')](function(_0xb3d6ec){if(_0xb3d6ec){return _0xb3d6ec[_0x9093('0x79')](_0x50199d[_0x9093('0x48')][_0x9093('0x70')])[_0x9093('0x21')](function(){if(_[_0x9093('0x7a')](_0x50199d[_0x9093('0x48')][_0x9093('0x70')])){for(var _0x3fab42=0x0;_0x3fab42<_0x50199d['query'][_0x9093('0x70')][_0x9093('0x4d')];_0x3fab42+=0x1){socket[_0x9093('0x77')](_0x9093('0x7b'),{'UserId':Number(_0x50199d['query'][_0x9093('0x70')][_0x3fab42]),'WhatsappAccountId':Number(_0x50199d[_0x9093('0x5e')]['id'])});}}else{socket[_0x9093('0x77')]('userWhatsappAccount:remove',{'UserId':Number(_0x50199d[_0x9093('0x48')]['ids']),'WhatsappAccountId':Number(_0x50199d[_0x9093('0x5e')]['id'])});}});}})[_0x9093('0x21')](respondWithStatusCode(_0x3a42e1,null))['catch'](handleError(_0x3a42e1,null));};exports[_0x9093('0x7c')]=function(_0x17007d,_0x5152cf,_0x475c6b){var _0x10ea39={};var _0x2969bb={};var _0x399cfa;var _0x1dba73;return db[_0x9093('0x44')]['findOne']({'where':{'id':_0x17007d[_0x9093('0x5e')]['id']}})['then'](handleEntityNotFound(_0x5152cf,null))[_0x9093('0x21')](function(_0x565e59){if(_0x565e59){_0x399cfa=_0x565e59;_0x2969bb[_0x9093('0x4b')]=_[_0x9093('0x49')](db[_0x9093('0x7d')]['rawAttributes']);_0x2969bb[_0x9093('0x48')]=_[_0x9093('0x49')](_0x17007d['query']);_0x2969bb[_0x9093('0x53')]=_[_0x9093('0x4a')](_0x2969bb[_0x9093('0x4b')],_0x2969bb[_0x9093('0x48')]);_0x10ea39[_0x9093('0x4e')]=_[_0x9093('0x4a')](_0x2969bb[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x17007d[_0x9093('0x48')][_0x9093('0x4c')]));_0x10ea39[_0x9093('0x4e')]=_0x10ea39['attributes'][_0x9093('0x4d')]?_0x10ea39['attributes']:_0x2969bb[_0x9093('0x4b')];_0x10ea39['order']=qs['sort'](_0x17007d[_0x9093('0x48')][_0x9093('0x52')]);_0x10ea39[_0x9093('0x56')]=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x17007d['query'],_0x2969bb['filters']));if(_0x17007d[_0x9093('0x48')][_0x9093('0x55')]){_0x10ea39[_0x9093('0x56')]=_[_0x9093('0x57')](_0x10ea39[_0x9093('0x56')],{'$or':_[_0x9093('0x43')](_0x10ea39[_0x9093('0x4e')],function(_0x16e3b8){var _0x50f5f6={};_0x50f5f6[_0x16e3b8]={'$like':'%'+_0x17007d[_0x9093('0x48')][_0x9093('0x55')]+'%'};return _0x50f5f6;})});}_0x10ea39=_[_0x9093('0x57')]({},_0x10ea39,_0x17007d[_0x9093('0x59')]);return _0x399cfa[_0x9093('0x7c')](_0x10ea39);}})[_0x9093('0x21')](function(_0x456d60){if(_0x456d60){_0x1dba73=_0x456d60[_0x9093('0x4d')];if(!_0x17007d['query'][_0x9093('0x4f')]('nolimit')){_0x10ea39[_0x9093('0x30')]=qs['limit'](_0x17007d[_0x9093('0x48')][_0x9093('0x30')]);_0x10ea39[_0x9093('0x2f')]=qs[_0x9093('0x2f')](_0x17007d[_0x9093('0x48')][_0x9093('0x2f')]);}return _0x399cfa[_0x9093('0x7c')](_0x10ea39);}})[_0x9093('0x21')](function(_0x1825e4){if(_0x1825e4){return _0x1825e4?{'count':_0x1dba73,'rows':_0x1825e4}:null;}})[_0x9093('0x21')](respondWithResult(_0x5152cf,null))[_0x9093('0x60')](handleError(_0x5152cf,null));};exports[_0x9093('0x7e')]=function(_0x45a625,_0x384543,_0xcde082){return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x45a625['params']['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x384543,null))['then'](function(_0x4efe57){if(_0x4efe57){return db[_0x9093('0x7f')][_0x9093('0x80')](function(_0x268914){return db[_0x9093('0x81')][_0x9093('0x3b')]({'where':{'WhatsappAccountId':_0x45a625['params']['id']},'transaction':_0x268914})['then'](function(_0x38649e){var _0xfd9ff5=_[_0x9093('0x43')](_0x45a625[_0x9093('0x67')],function(_0x1020d3){_0x1020d3[_0x9093('0x6a')]=_0x45a625[_0x9093('0x5e')]['id'];return _0x1020d3;});return db[_0x9093('0x81')][_0x9093('0x82')](_0xfd9ff5,{'transaction':_0x268914});});})[_0x9093('0x21')](function(){return db[_0x9093('0x81')][_0x9093('0x83')]({'where':{'WhatsappAccountId':_0x45a625[_0x9093('0x5e')]['id']},'order':_0x9093('0x84')});});}})[_0x9093('0x21')](respondWithResult(_0x384543,null))[_0x9093('0x60')](handleError(_0x384543,null));};exports[_0x9093('0x85')]=function(_0x2a3918,_0xaebf5e,_0x5f763a){var _0x6e8a44={};var _0x2af92e={};var _0x50f9e3;var _0x4517e1;return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x2a3918[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0xaebf5e,null))[_0x9093('0x21')](function(_0x21340d){if(_0x21340d){_0x50f9e3=_0x21340d;_0x2af92e['model']=_[_0x9093('0x49')](db[_0x9093('0x81')][_0x9093('0x45')]);_0x2af92e[_0x9093('0x48')]=_[_0x9093('0x49')](_0x2a3918[_0x9093('0x48')]);_0x2af92e[_0x9093('0x53')]=_[_0x9093('0x4a')](_0x2af92e[_0x9093('0x4b')],_0x2af92e[_0x9093('0x48')]);_0x6e8a44[_0x9093('0x4e')]=_[_0x9093('0x4a')](_0x2af92e[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x2a3918[_0x9093('0x48')][_0x9093('0x4c')]));_0x6e8a44[_0x9093('0x4e')]=_0x6e8a44[_0x9093('0x4e')][_0x9093('0x4d')]?_0x6e8a44['attributes']:_0x2af92e[_0x9093('0x4b')];_0x6e8a44['order']=qs[_0x9093('0x52')](_0x2a3918['query']['sort']);_0x6e8a44['where']=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x2a3918[_0x9093('0x48')],_0x2af92e[_0x9093('0x53')]));if(_0x2a3918[_0x9093('0x48')]['filter']){_0x6e8a44[_0x9093('0x56')]=_[_0x9093('0x57')](_0x6e8a44[_0x9093('0x56')],{'$or':_[_0x9093('0x43')](_0x6e8a44[_0x9093('0x4e')],function(_0x4e637f){var _0x561a02={};_0x561a02[_0x4e637f]={'$like':'%'+_0x2a3918[_0x9093('0x48')][_0x9093('0x55')]+'%'};return _0x561a02;})});}_0x6e8a44=_[_0x9093('0x57')]({},_0x6e8a44,_0x2a3918['options']);return _0x50f9e3[_0x9093('0x85')](_0x6e8a44);}})[_0x9093('0x21')](function(_0x1f746c){if(_0x1f746c){_0x4517e1=_0x1f746c[_0x9093('0x4d')];if(!_0x2a3918[_0x9093('0x48')][_0x9093('0x4f')]('nolimit')){_0x6e8a44[_0x9093('0x30')]=qs['limit'](_0x2a3918[_0x9093('0x48')][_0x9093('0x30')]);_0x6e8a44[_0x9093('0x2f')]=qs[_0x9093('0x2f')](_0x2a3918[_0x9093('0x48')]['offset']);}return _0x50f9e3[_0x9093('0x85')](_0x6e8a44);}})['then'](function(_0x49ca4a){if(_0x49ca4a){return _0x49ca4a?{'count':_0x4517e1,'rows':_0x49ca4a}:null;}})[_0x9093('0x21')](respondWithResult(_0xaebf5e,null))['catch'](handleError(_0xaebf5e,null));};exports[_0x9093('0x86')]=function(_0x18bd0f,_0x563997,_0x107ee0){var _0x4f396f={'channel':'whatsapp'};var _0x33232a=[];var _0x30862f=[];var _0x80173d={};return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x18bd0f['params']['id']},'include':[{'model':db[_0x9093('0x81')],'as':'Applications'}]})['then'](handleEntityNotFound(_0x563997,null))[_0x9093('0x21')](function(_0x2043ec){_0x4f396f[_0x9093('0x87')]=_0x2043ec;_0x4f396f[_0x9093('0x88')]=_[_0x9093('0x89')](_0x2043ec[_0x9093('0x8a')],[_0x9093('0x84')],[_0x9093('0x8b')]);if(_0x4f396f[_0x9093('0x87')][_0x9093('0x8a')]){delete _0x4f396f[_0x9093('0x87')][_0x9093('0x8a')];}return db[_0x9093('0x8c')][_0x9093('0x68')]();})[_0x9093('0x21')](function(_0x5d37f3){if(!_0x5d37f3){throw new db[(_0x9093('0x8d'))][(_0x9093('0x8e'))](_0x9093('0x8f'));}_0x33232a=_[_0x9093('0x90')](_[_0x9093('0x49')](_0x5d37f3),[_0x9093('0x91'),_0x9093('0x92')]);_0x30862f=_[_0x9093('0x90')](_[_0x9093('0x49')](_0x5d37f3),[_0x9093('0x91'),_0x9093('0x92'),_0x9093('0x93'),_0x9093('0x94')]);_0x4f396f[_0x9093('0x67')]={'mapKey':_0x9093('0x95')};if(_0x4f396f[_0x9093('0x87')][_0x9093('0x58')]&&_0x4f396f[_0x9093('0x87')][_0x9093('0x58')]==='twilio'){_0x4f396f[_0x9093('0x67')][_0x9093('0x96')]=_0x18bd0f[_0x9093('0x67')][_0x9093('0x97')][_0x9093('0x98')]('whatsapp:','');_0x4f396f[_0x9093('0x67')][_0x9093('0x67')]=_0x18bd0f[_0x9093('0x67')]['Body'];_0x4f396f['body']['messageId']=_0x18bd0f[_0x9093('0x67')][_0x9093('0x99')];}if(_0x4f396f[_0x9093('0x67')]['id']){delete _0x4f396f[_0x9093('0x67')]['id'];}if(_['isNil'](_0x4f396f['body'][_0x9093('0x96')])){throw new db['Sequelize'][(_0x9093('0x8e'))](_0x9093('0x9a'));}if(_[_0x9093('0x9b')](_0x4f396f['body'][_0x9093('0x67')])||_0x4f396f['body'][_0x9093('0x67')]===''){throw new db[(_0x9093('0x8d'))][(_0x9093('0x8e'))](_0x9093('0x9c'));}if(_[_0x9093('0x9b')](_0x4f396f[_0x9093('0x67')]['mapKey'])){throw new db['Sequelize'][(_0x9093('0x8e'))](_0x9093('0x9d')+_0x30862f);}if(!_[_0x9093('0x9e')](_0x30862f,_0x4f396f[_0x9093('0x67')][_0x9093('0x9f')])){throw new db[(_0x9093('0x8d'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x30862f);}_0x80173d[_0x4f396f[_0x9093('0x67')][_0x9093('0x9f')]]=_0x4f396f[_0x9093('0x67')][_0x9093('0x96')];return db[_0x9093('0xa0')][_0x9093('0x5f')]({'where':{'id':_0x4f396f[_0x9093('0x87')][_0x9093('0x94')]},'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x80173d,'limit':0x1,'order':[[_0x9093('0x92'),'DESC']]}]});})['then'](handleEntityNotFound(_0x563997,null))['then'](function(_0x41666d){if(_0x41666d){_0x4f396f['list']=_['omit'](_0x41666d,[_0x9093('0xa1')]);if(_0x41666d[_0x9093('0xa1')]['length']){return _0x41666d[_0x9093('0xa1')][0x0];}var _0x30821f=_[_0x9093('0x1a')](_0x4f396f[_0x9093('0x67')],{'firstName':_0x4f396f[_0x9093('0x67')][_0x9093('0x96')],'ListId':_0x41666d['id']});_0x30821f[_0x4f396f[_0x9093('0x67')][_0x9093('0x9f')]]=_0x4f396f[_0x9093('0x67')]['from'];return db[_0x9093('0x8c')]['create'](_0x30821f,{'fields':_0x33232a,'raw':!![]});}})['then'](handleEntityNotFound(_0x563997,null))[_0x9093('0x21')](function(_0x3da1bc){if(_0x3da1bc){_0x4f396f[_0x9093('0xa2')]=_0x3da1bc;var _0x38616f={'ContactId':_0x3da1bc['id'],'phone':_0x4f396f[_0x9093('0x67')][_0x9093('0x96')],'WhatsappAccountId':_0x18bd0f[_0x9093('0x5e')]['id']};var _0x55f9ce={'ContactId':_0x3da1bc['id'],'WhatsappAccountId':_0x18bd0f['params']['id'],'closed':![]};return db['WhatsappInteraction'][_0x9093('0x5f')]({'where':_0x55f9ce})[_0x9093('0x21')](function(_0xe4fa61){if(_0xe4fa61){return[_0xe4fa61,![]];}return db[_0x9093('0xa3')][_0x9093('0x61')](_0x38616f)[_0x9093('0x21')](function(_0x557e37){return[_0x557e37,!![]];});});}})[_0x9093('0x76')](function(_0x30b888,_0x359b3d){_0x4f396f[_0x9093('0xa4')]=_0x30b888[_0x9093('0x38')]({'plain':!![]});_0x4f396f[_0x9093('0xa4')]['created']=![];if(_0x359b3d){if(_0x4f396f['account'][_0x9093('0xa5')]){_0x4f396f[_0x9093('0x88')][_0x9093('0xa6')]({'id':0x0,'priority':_0x4f396f[_0x9093('0x88')][_0x9093('0x4d')]+0x1,'app':_0x9093('0xa7'),'appdata':'unmanaged','interval':_0x9093('0xa8')});}_0x4f396f[_0x9093('0xa4')][_0x9093('0xa9')]=!![];}return db['WhatsappMessage'][_0x9093('0x61')]({'phone':_0x4f396f[_0x9093('0x67')][_0x9093('0x96')],'messageId':_0x4f396f['body']['messageId'],'body':_0x4f396f['body'][_0x9093('0x67')],'WhatsappAccountId':_0x18bd0f[_0x9093('0x5e')]['id'],'WhatsappInteractionId':_0x30b888['id'],'direction':'in','ContactId':_0x30b888[_0x9093('0xaa')],'AttachmentId':_0x4f396f['body'][_0x9093('0xab')]});})[_0x9093('0x21')](function(_0x43c918){_0x4f396f['message']=_0x43c918;if(_0x4f396f['interaction']['UserId']){return db[_0x9093('0x7d')][_0x9093('0x5f')]({'attributes':['id',_0x9093('0x3e')],'where':{'id':_0x4f396f[_0x9093('0xa4')]['UserId']}})[_0x9093('0x21')](function(_0x570eee){if(_0x570eee){_0x4f396f['applications'][_0x9093('0xac')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x570eee[_0x9093('0x3e')]+','+(_0x4f396f['account'][_0x9093('0xad')]||0xa),'interval':_0x9093('0xa8')});}return respondWithRpcPromise(_0x9093('0xae'),_0x9093('0xaf'),_0x4f396f);});}return respondWithRpcPromise('Start','startRouting',_0x4f396f);})[_0x9093('0x21')](function(_0x317386){if(_0x317386){var _0xf308c8=0xc8;var _0x28dc46=_0x9093('0xb0');logger[_0x9093('0x22')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x28dc46,_0xf308c8,_0x9093('0xb1'));logger['debug'](_0x9093('0xb2'),_0x28dc46,_0xf308c8,'entity\x20found',JSON[_0x9093('0x26')](_0x317386));if(_0x4f396f[_0x9093('0x87')]['type']==='twilio'){return _0x563997['status'](_0xf308c8)[_0x9093('0x32')](_0x9093('0xb3'),_0x9093('0xb4'))['send']('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x563997[_0x9093('0x2c')](_0xf308c8)[_0x9093('0x2e')](_0x317386);}}})[_0x9093('0x60')](handleError(_0x563997,null));};exports[_0x9093('0x3f')]=function(_0x2edc71,_0x3bec27,_0x3df101){var _0xb14615,_0x59ba5b,_0x17dc5b;if(_[_0x9093('0x9b')](_0x2edc71['body']['body'])||_0x2edc71[_0x9093('0x67')][_0x9093('0x67')]===''){throw new db['Sequelize']['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x9093('0x9b')](_0x2edc71[_0x9093('0x67')]['to'])){throw new db[(_0x9093('0x8d'))]['ValidationError'](_0x9093('0xb5'));}_0xb14615=_0x2edc71[_0x9093('0x67')]['to'];return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x2edc71[_0x9093('0x5e')]['id']},'include':[{'model':db[_0x9093('0xa0')],'as':_0x9093('0xb6'),'include':[{'model':db[_0x9093('0x8c')],'as':'Contacts','where':{'mobile':_0xb14615},'limit':0x1,'order':[[_0x9093('0x92'),_0x9093('0xb7')]]}]}]})[_0x9093('0x21')](handleEntityNotFound(_0x3bec27,null))[_0x9093('0x21')](function(_0x4a8333){if(_0x4a8333&&_0x4a8333[_0x9093('0xb6')]){_0x59ba5b=_0x4a8333[_0x9093('0x38')]({'plain':!![]});if(_0x59ba5b[_0x9093('0xb6')]&&_0x59ba5b[_0x9093('0xb6')][_0x9093('0xa1')]['length']){return _0x59ba5b[_0x9093('0xb6')][_0x9093('0xa1')][0x0];}return db[_0x9093('0x8c')][_0x9093('0x61')](_[_0x9093('0x1a')](_0x2edc71['body'],{'firstName':_0xb14615,'mobile':_0xb14615,'phone':_0xb14615,'ListId':_0x59ba5b[_0x9093('0x94')]}));}})[_0x9093('0x21')](handleEntityNotFound(_0x3bec27,null))[_0x9093('0x21')](function(_0xa12a1b){if(_0xa12a1b){_0x17dc5b=_0xa12a1b;return db['WhatsappInteraction']['find']({'where':{'ContactId':_0x17dc5b['id'],'closed':![],'WhatsappAccountId':_0x59ba5b['id']}})['then'](function(_0x4acc32){if(_0x4acc32){return[_0x4acc32,![]];}return db[_0x9093('0xa3')]['create']({'UserId':_0x2edc71[_0x9093('0x62')]['id'],'ContactId':_0x17dc5b['id'],'WhatsappAccountId':_0x59ba5b['id'],'phone':_0xb14615,'firstMsgDirection':_0x9093('0xb8'),'Messages':[_['merge'](_0x2edc71['body'],{'read':![],'body':_0x2edc71[_0x9093('0x67')][_0x9093('0x67')],'phone':_0xb14615,'WhatsappAccountId':_0x59ba5b['id'],'UserId':_0x2edc71[_0x9093('0x62')]['id'],'ContactId':_0x17dc5b['id']})]},{'include':[{'model':db[_0x9093('0xb9')],'as':'Messages'}]})[_0x9093('0x21')](function(_0x2716db){return[_0x2716db,!![]];});});}})[_0x9093('0x76')](function(_0x3c852e,_0xd52e7c){if(_0xd52e7c){return _0x3c852e;}return db[_0x9093('0xb9')]['create'](_['merge'](_0x2edc71[_0x9093('0x67')],{'read':![],'body':_0x2edc71['body'][_0x9093('0x67')],'phone':_0xb14615,'WhatsappAccountId':_0x59ba5b['id'],'WhatsappInteractionId':_0x3c852e['id'],'UserId':_0x2edc71[_0x9093('0x62')]['id'],'ContactId':_0x17dc5b['id']}))[_0x9093('0x21')](function(_0x374540){_0x3c852e[_0x9093('0xba')][_0x9093('0xbb')]=[];_0x3c852e[_0x9093('0xba')]['Messages']['push'](_0x374540['dataValues']);return _0x3c852e;});})[_0x9093('0x21')](respondWithResult(_0x3bec27,null))[_0x9093('0x60')](handleError(_0x3bec27,null));};
\ No newline at end of file
+var _0x7d74=['WhatsappAccounts','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','WhatsappAccountId','Disposition','getDispositions','removeDispositions','ids','addAnswer','CannedAnswer','findOne','rows','removeAnswers','addAgents','omit','spread','removeAgents','emit','userWhatsappAccount:remove','getAgents','User','addApplications','sequelize','transaction','WhatsappApplication','findAndCountAll','priority','getApplications','notify','whatsapp','Applications','account','sinch','statuses','state','read','WhatsappMessage','timestamp','applications','orderBy','asc','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','updatedAt','CompanyId','ListId','twilio','from','From','replace','Body','messageId','notifications','message_id','isNil','from\x20is\x20mandatory','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','contact','WhatsappInteraction','interaction','created','push','close','unmanaged','*,*,*,*','ContactId','AttachmentId','UserId','agent','waitForTheAssignedAgent','Start','startRouting','receiveMessage','WhatsappAccount,\x20%s,\x20%s,\x20%s','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','entity\x20found','set','body\x20is\x20mandatory\x20and\x20not\x20empty','to\x20is\x20mandatory','List','DESC','user','out','Messages','dataValues','eml-format','rimraf','request-promise','moment','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./whatsappAccount.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','code','WhatsappAccount,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','undefined','count','offset','limit','Content-Range','json','apply','reject','save','update','destroy','UserProfileResource','stack','name','send','index','Pause','mandatoryDispositionPause','WhatsappAccount','rawAttributes','fieldName','type','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','params','keys','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get'];(function(_0x4ac1d0,_0x516c27){var _0x202219=function(_0x1f7016){while(--_0x1f7016){_0x4ac1d0['push'](_0x4ac1d0['shift']());}};_0x202219(++_0x516c27);}(_0x7d74,0x11e));var _0x47d7=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x7d74[_0x21a9d9];return _0x46adce;};'use strict';var emlformat=require(_0x47d7('0x0'));var rimraf=require(_0x47d7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x47d7('0x2'));var moment=require(_0x47d7('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x47d7('0x4'));var util=require('util');var path=require(_0x47d7('0x5'));var sox=require('sox');var csv=require(_0x47d7('0x6'));var ejs=require(_0x47d7('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x47d7('0x8'));var squel=require(_0x47d7('0x9'));var crypto=require(_0x47d7('0xa'));var jsforce=require(_0x47d7('0xb'));var deskjs=require(_0x47d7('0xc'));var toCsv=require(_0x47d7('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47d7('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x47d7('0xe'));var as=require(_0x47d7('0xf'));var hardwareService=require(_0x47d7('0x10'));var logger=require(_0x47d7('0x11'))(_0x47d7('0x12'));var utils=require(_0x47d7('0x13'));var config=require(_0x47d7('0x14'));var licenseUtil=require(_0x47d7('0x15'));var db=require(_0x47d7('0x16'))['db'];config[_0x47d7('0x17')]=_[_0x47d7('0x18')](config[_0x47d7('0x17')],{'host':_0x47d7('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x47d7('0x17')]));require(_0x47d7('0x1a'))[_0x47d7('0x1b')](socket);var jayson=require(_0x47d7('0x1c'));var client=jayson[_0x47d7('0x1d')][_0x47d7('0x1e')]({'port':0x232c});function respondWithRpcPromise(_0x3d5936,_0x44a8db,_0x231e8d,_0x57f096){return new BPromise(function(_0x36ba07,_0x1f0031){var _0x6eac23=_0x57f096||client;return _0x6eac23[_0x47d7('0x1f')](_0x3d5936,_0x231e8d)[_0x47d7('0x20')](function(_0x498d97){logger[_0x47d7('0x21')]('WhatsappAccount,\x20%s,\x20%s',_0x44a8db,_0x47d7('0x22'));logger[_0x47d7('0x23')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x44a8db,_0x47d7('0x22'),JSON[_0x47d7('0x24')](_0x498d97));if(_0x498d97[_0x47d7('0x25')]){if(_0x498d97[_0x47d7('0x25')][_0x47d7('0x26')]===0x1f4){logger[_0x47d7('0x25')](_0x47d7('0x27'),_0x44a8db,_0x498d97[_0x47d7('0x25')]['message']);return _0x1f0031(_0x498d97[_0x47d7('0x25')]['message']);}logger['error']('WhatsappAccount,\x20%s,\x20%s',_0x44a8db,_0x498d97[_0x47d7('0x25')][_0x47d7('0x28')]);return _0x36ba07(_0x498d97[_0x47d7('0x25')][_0x47d7('0x28')]);}else{logger[_0x47d7('0x21')](_0x47d7('0x27'),_0x44a8db,_0x47d7('0x22'));_0x36ba07(_0x498d97[_0x47d7('0x29')][_0x47d7('0x28')]);}})[_0x47d7('0x2a')](function(_0x1048eb){logger[_0x47d7('0x25')](_0x47d7('0x27'),_0x44a8db,_0x1048eb);_0x1f0031(_0x1048eb);});});}function respondWithStatusCode(_0x186400,_0x1d5399){_0x1d5399=_0x1d5399||0xcc;return function(_0x4da238){if(_0x4da238){return _0x186400[_0x47d7('0x2b')](_0x1d5399);}return _0x186400[_0x47d7('0x2c')](_0x1d5399)[_0x47d7('0x2d')]();};}function respondWithResult(_0x351cee,_0x9a0f62){_0x9a0f62=_0x9a0f62||0xc8;return function(_0x3a5416){if(_0x3a5416){return _0x351cee[_0x47d7('0x2c')](_0x9a0f62)['json'](_0x3a5416);}};}function respondWithFilteredResult(_0x343286,_0x69fb5f){return function(_0x305626){if(_0x305626){var _0x2de0ca=typeof _0x69fb5f['offset']===_0x47d7('0x2e')&&typeof _0x69fb5f['limit']===_0x47d7('0x2e');var _0x773e24=_0x305626[_0x47d7('0x2f')];var _0x127216=_0x2de0ca?0x0:_0x69fb5f[_0x47d7('0x30')];var _0x3f5ae5=_0x2de0ca?_0x305626[_0x47d7('0x2f')]:_0x69fb5f[_0x47d7('0x30')]+_0x69fb5f[_0x47d7('0x31')];var _0xfa1da1;if(_0x3f5ae5>=_0x773e24){_0x3f5ae5=_0x773e24;_0xfa1da1=0xc8;}else{_0xfa1da1=0xce;}_0x343286[_0x47d7('0x2c')](_0xfa1da1);return _0x343286['set'](_0x47d7('0x32'),_0x127216+'-'+_0x3f5ae5+'/'+_0x773e24)[_0x47d7('0x33')](_0x305626);}return null;};}function patchUpdates(_0x3268e2){return function(_0x5142ee){try{jsonpatch[_0x47d7('0x34')](_0x5142ee,_0x3268e2,!![]);}catch(_0x7a18a3){return BPromise[_0x47d7('0x35')](_0x7a18a3);}return _0x5142ee[_0x47d7('0x36')]();};}function saveUpdates(_0x5d9258,_0x58684d){return function(_0x313d57){if(_0x313d57){return _0x313d57[_0x47d7('0x37')](_0x5d9258)[_0x47d7('0x20')](function(_0x1e7da9){return _0x1e7da9;});}return null;};}function removeEntity(_0x3a3034,_0x4ebc0f){return function(_0x46c083){if(_0x46c083){return _0x46c083[_0x47d7('0x38')]()['then'](function(){var _0x412e45=_0x46c083['get']({'plain':!![]});var _0x4d1786='WhatsappAccounts';return db[_0x47d7('0x39')]['destroy']({'where':{'type':_0x4d1786,'resourceId':_0x412e45['id']}})[_0x47d7('0x20')](function(){return _0x46c083;});})['then'](function(){_0x3a3034[_0x47d7('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x442ef2,_0x4fb39e){return function(_0x3bf576){if(!_0x3bf576){_0x442ef2['sendStatus'](0x194);}return _0x3bf576;};}function handleError(_0x392f42,_0x23969e){_0x23969e=_0x23969e||0x1f4;return function(_0x4b054d){logger[_0x47d7('0x25')](_0x4b054d[_0x47d7('0x3a')]);if(_0x4b054d[_0x47d7('0x3b')]){delete _0x4b054d[_0x47d7('0x3b')];}_0x392f42[_0x47d7('0x2c')](_0x23969e)[_0x47d7('0x3c')](_0x4b054d);};}exports[_0x47d7('0x3d')]=function(_0x3f9384,_0x5cfaa3){var _0x512c11={'include':[{'model':db[_0x47d7('0x3e')],'as':_0x47d7('0x3f')}]},_0x416924={},_0x4d5d36={'count':0x0,'rows':[]};var _0x382f63=_['map'](db[_0x47d7('0x40')][_0x47d7('0x41')],function(_0x4e77dc){return{'name':_0x4e77dc[_0x47d7('0x42')],'type':_0x4e77dc[_0x47d7('0x43')]['key']};});_0x416924[_0x47d7('0x44')]=_[_0x47d7('0x45')](_0x382f63,_0x47d7('0x3b'));_0x416924[_0x47d7('0x46')]=_['keys'](_0x3f9384[_0x47d7('0x46')]);_0x416924[_0x47d7('0x47')]=_[_0x47d7('0x48')](_0x416924[_0x47d7('0x44')],_0x416924['query']);_0x512c11['attributes']=_[_0x47d7('0x48')](_0x416924[_0x47d7('0x44')],qs[_0x47d7('0x49')](_0x3f9384[_0x47d7('0x46')][_0x47d7('0x49')]));_0x512c11['attributes']=_0x512c11[_0x47d7('0x4a')][_0x47d7('0x4b')]?_0x512c11[_0x47d7('0x4a')]:_0x416924[_0x47d7('0x44')];if(!_0x3f9384[_0x47d7('0x46')][_0x47d7('0x4c')](_0x47d7('0x4d'))){_0x512c11[_0x47d7('0x31')]=qs['limit'](_0x3f9384[_0x47d7('0x46')][_0x47d7('0x31')]);_0x512c11['offset']=qs[_0x47d7('0x30')](_0x3f9384[_0x47d7('0x46')][_0x47d7('0x30')]);}_0x512c11[_0x47d7('0x4e')]=qs[_0x47d7('0x4f')](_0x3f9384['query'][_0x47d7('0x4f')]);_0x512c11[_0x47d7('0x50')]=qs[_0x47d7('0x47')](_[_0x47d7('0x51')](_0x3f9384[_0x47d7('0x46')],_0x416924['filters']),_0x382f63);if(_0x3f9384[_0x47d7('0x46')][_0x47d7('0x52')]){_0x512c11['where']=_[_0x47d7('0x53')](_0x512c11[_0x47d7('0x50')],{'$or':_['map'](_0x382f63,function(_0x1251ee){if(_0x1251ee['type']!=='VIRTUAL'){var _0x48a567={};_0x48a567[_0x1251ee[_0x47d7('0x3b')]]={'$like':'%'+_0x3f9384[_0x47d7('0x46')]['filter']+'%'};return _0x48a567;}})});}_0x512c11=_[_0x47d7('0x53')]({},_0x512c11,_0x3f9384[_0x47d7('0x54')]);var _0xdccc40={'where':_0x512c11['where']};return db['WhatsappAccount'][_0x47d7('0x2f')](_0xdccc40)['then'](function(_0xefd15e){_0x4d5d36[_0x47d7('0x2f')]=_0xefd15e;if(_0x3f9384[_0x47d7('0x46')][_0x47d7('0x55')]){_0x512c11[_0x47d7('0x56')]=[{'all':!![]}];}return db[_0x47d7('0x40')][_0x47d7('0x57')](_0x512c11);})[_0x47d7('0x20')](function(_0x601007){_0x4d5d36['rows']=_0x601007;return _0x4d5d36;})['then'](respondWithFilteredResult(_0x5cfaa3,_0x512c11))[_0x47d7('0x2a')](handleError(_0x5cfaa3,null));};exports['show']=function(_0x4d96ba,_0x4d1d71){var _0x5d70bb={'raw':![],'where':{'id':_0x4d96ba[_0x47d7('0x58')]['id']},'include':[{'model':db[_0x47d7('0x3e')],'as':'mandatoryDispositionPause'}]},_0x288fd0={};_0x288fd0[_0x47d7('0x44')]=_[_0x47d7('0x59')](db[_0x47d7('0x40')][_0x47d7('0x41')]);_0x288fd0[_0x47d7('0x46')]=_[_0x47d7('0x59')](_0x4d96ba[_0x47d7('0x46')]);_0x288fd0[_0x47d7('0x47')]=_[_0x47d7('0x48')](_0x288fd0[_0x47d7('0x44')],_0x288fd0[_0x47d7('0x46')]);_0x5d70bb['attributes']=_['intersection'](_0x288fd0[_0x47d7('0x44')],qs[_0x47d7('0x49')](_0x4d96ba[_0x47d7('0x46')][_0x47d7('0x49')]));_0x5d70bb[_0x47d7('0x4a')]=_0x5d70bb[_0x47d7('0x4a')]['length']?_0x5d70bb[_0x47d7('0x4a')]:_0x288fd0['model'];if(_0x4d96ba['query'][_0x47d7('0x55')]){_0x5d70bb[_0x47d7('0x56')]=[{'all':!![]}];}_0x5d70bb=_[_0x47d7('0x53')]({},_0x5d70bb,_0x4d96ba['options']);return db['WhatsappAccount']['find'](_0x5d70bb)['then'](handleEntityNotFound(_0x4d1d71,null))[_0x47d7('0x20')](respondWithResult(_0x4d1d71,null))['catch'](handleError(_0x4d1d71,null));};exports[_0x47d7('0x5a')]=function(_0xfd8d54,_0x2dfe3f){return db['WhatsappAccount'][_0x47d7('0x5a')](_0xfd8d54['body'],{})[_0x47d7('0x20')](function(_0x5652cd){var _0x26e350=_0xfd8d54['user']['get']({'plain':!![]});if(!_0x26e350)throw new Error(_0x47d7('0x5b'));if(_0x26e350[_0x47d7('0x5c')]==='user'){var _0xdf9cee=_0x5652cd[_0x47d7('0x5d')]({'plain':!![]});var _0x201d5b=_0x47d7('0x5e');return db['UserProfileSection'][_0x47d7('0x5f')]({'where':{'name':_0x201d5b,'userProfileId':_0x26e350['userProfileId']},'raw':!![]})['then'](function(_0x1e00f4){if(_0x1e00f4&&_0x1e00f4[_0x47d7('0x60')]===0x0){return db[_0x47d7('0x39')][_0x47d7('0x5a')]({'name':_0xdf9cee[_0x47d7('0x3b')],'resourceId':_0xdf9cee['id'],'type':_0x1e00f4[_0x47d7('0x3b')],'sectionId':_0x1e00f4['id']},{})[_0x47d7('0x20')](function(){return _0x5652cd;});}else{return _0x5652cd;}})[_0x47d7('0x2a')](function(_0x410595){logger[_0x47d7('0x25')](_0x47d7('0x61'),_0x410595);throw _0x410595;});}return _0x5652cd;})[_0x47d7('0x20')](respondWithResult(_0x2dfe3f,0xc9))['catch'](handleError(_0x2dfe3f,null));};exports['update']=function(_0x4af3c3,_0x4d237b){if(_0x4af3c3[_0x47d7('0x62')]['id']){delete _0x4af3c3[_0x47d7('0x62')]['id'];}return db[_0x47d7('0x40')][_0x47d7('0x5f')]({'where':{'id':_0x4af3c3[_0x47d7('0x58')]['id']},'include':[{'model':db[_0x47d7('0x3e')],'as':_0x47d7('0x3f')}]})['then'](handleEntityNotFound(_0x4d237b,null))[_0x47d7('0x20')](saveUpdates(_0x4af3c3[_0x47d7('0x62')],null))[_0x47d7('0x20')](respondWithResult(_0x4d237b,null))[_0x47d7('0x2a')](handleError(_0x4d237b,null));};exports[_0x47d7('0x38')]=function(_0x31e8a5,_0x88e3b7){return db[_0x47d7('0x40')][_0x47d7('0x5f')]({'where':{'id':_0x31e8a5[_0x47d7('0x58')]['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x88e3b7,null))[_0x47d7('0x20')](removeEntity(_0x88e3b7,null))[_0x47d7('0x2a')](handleError(_0x88e3b7,null));};exports[_0x47d7('0x63')]=function(_0x502272,_0x68e62){return db[_0x47d7('0x40')][_0x47d7('0x63')]()[_0x47d7('0x20')](respondWithResult(_0x68e62,null))[_0x47d7('0x2a')](handleError(_0x68e62,null));};exports[_0x47d7('0x64')]=function(_0x407b6e,_0x4987ae,_0x212ae5){if(_0x407b6e[_0x47d7('0x62')]['id']){delete _0x407b6e[_0x47d7('0x62')]['id'];}return db[_0x47d7('0x40')]['find']({'where':{'id':_0x407b6e[_0x47d7('0x58')]['id']}})['then'](handleEntityNotFound(_0x4987ae,null))['then'](function(_0x278ccf){if(_0x278ccf){_0x407b6e[_0x47d7('0x62')][_0x47d7('0x65')]=_0x278ccf['id'];return db[_0x47d7('0x66')][_0x47d7('0x5a')](_0x407b6e[_0x47d7('0x62')]);}})[_0x47d7('0x20')](respondWithResult(_0x4987ae,null))['catch'](handleError(_0x4987ae,null));};exports[_0x47d7('0x67')]=function(_0x5955df,_0x169e9f,_0x31a01f){var _0x7697b3={'raw':![],'where':{}};var _0x13e94e={};var _0x5daaa9={'count':0x0,'rows':[]};return db[_0x47d7('0x40')]['findOne']({'where':{'id':_0x5955df['params']['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x169e9f,null))['then'](function(_0x183594){if(_0x183594){_0x13e94e[_0x47d7('0x44')]=_['keys'](db[_0x47d7('0x66')][_0x47d7('0x41')]);_0x13e94e['query']=_[_0x47d7('0x59')](_0x5955df['query']);_0x13e94e[_0x47d7('0x47')]=_[_0x47d7('0x48')](_0x13e94e[_0x47d7('0x44')],_0x13e94e[_0x47d7('0x46')]);_0x7697b3[_0x47d7('0x4a')]=_[_0x47d7('0x48')](_0x13e94e[_0x47d7('0x44')],qs['fields'](_0x5955df[_0x47d7('0x46')]['fields']));_0x7697b3['attributes']=_0x7697b3[_0x47d7('0x4a')]['length']?_0x7697b3[_0x47d7('0x4a')]:_0x13e94e[_0x47d7('0x44')];if(!_0x5955df['query'][_0x47d7('0x4c')](_0x47d7('0x4d'))){_0x7697b3[_0x47d7('0x31')]=qs[_0x47d7('0x31')](_0x5955df[_0x47d7('0x46')][_0x47d7('0x31')]);_0x7697b3[_0x47d7('0x30')]=qs['offset'](_0x5955df[_0x47d7('0x46')][_0x47d7('0x30')]);}_0x7697b3[_0x47d7('0x4e')]=qs[_0x47d7('0x4f')](_0x5955df[_0x47d7('0x46')][_0x47d7('0x4f')]);_0x7697b3['where']=qs[_0x47d7('0x47')](_['pick'](_0x5955df[_0x47d7('0x46')],_0x13e94e[_0x47d7('0x47')]));_0x7697b3['where'][_0x47d7('0x65')]=_0x183594['id'];if(_0x5955df[_0x47d7('0x46')][_0x47d7('0x52')]){_0x7697b3[_0x47d7('0x50')]=_['merge'](_0x7697b3[_0x47d7('0x50')],{'$or':_[_0x47d7('0x45')](_0x7697b3[_0x47d7('0x4a')],function(_0x6a0c28){var _0x5dd0b9={};_0x5dd0b9[_0x6a0c28]={'$like':'%'+_0x5955df[_0x47d7('0x46')][_0x47d7('0x52')]+'%'};return _0x5dd0b9;})});}_0x7697b3=_[_0x47d7('0x53')]({},_0x7697b3,_0x5955df[_0x47d7('0x54')]);return db['Disposition']['count']({'where':_0x7697b3[_0x47d7('0x50')]})[_0x47d7('0x20')](function(_0x2f7dc5){_0x5daaa9[_0x47d7('0x2f')]=_0x2f7dc5;if(_0x5955df[_0x47d7('0x46')][_0x47d7('0x55')]){_0x7697b3[_0x47d7('0x56')]=[{'all':!![]}];}return db['Disposition'][_0x47d7('0x57')](_0x7697b3);})['then'](function(_0x4dd3b8){_0x5daaa9['rows']=_0x4dd3b8;return _0x5daaa9;});}})[_0x47d7('0x20')](respondWithFilteredResult(_0x169e9f,_0x7697b3))[_0x47d7('0x2a')](handleError(_0x169e9f,null));};exports[_0x47d7('0x68')]=function(_0x140529,_0x4a0cce,_0x251792){return db[_0x47d7('0x40')][_0x47d7('0x5f')]({'where':{'id':_0x140529[_0x47d7('0x58')]['id']}})['then'](handleEntityNotFound(_0x4a0cce,null))[_0x47d7('0x20')](function(_0x3cc30e){if(_0x3cc30e){return _0x3cc30e[_0x47d7('0x68')](_0x140529['query'][_0x47d7('0x69')]);}})['then'](respondWithStatusCode(_0x4a0cce,null))[_0x47d7('0x2a')](handleError(_0x4a0cce,null));};exports[_0x47d7('0x6a')]=function(_0x1f3d10,_0x317fab,_0x16608c){if(_0x1f3d10[_0x47d7('0x62')]['id']){delete _0x1f3d10[_0x47d7('0x62')]['id'];}return db[_0x47d7('0x40')][_0x47d7('0x5f')]({'where':{'id':_0x1f3d10['params']['id']}})['then'](handleEntityNotFound(_0x317fab,null))['then'](function(_0x5d5f32){if(_0x5d5f32){_0x1f3d10[_0x47d7('0x62')][_0x47d7('0x65')]=_0x5d5f32['id'];return db[_0x47d7('0x6b')][_0x47d7('0x5a')](_0x1f3d10[_0x47d7('0x62')]);}})['then'](respondWithResult(_0x317fab,null))[_0x47d7('0x2a')](handleError(_0x317fab,null));};exports['getAnswers']=function(_0xd3cdae,_0x5c8f58,_0x3abbd5){var _0x4d535b={'raw':![],'where':{}};var _0x3fbace={};var _0x4a0fe4={'count':0x0,'rows':[]};return db[_0x47d7('0x40')][_0x47d7('0x6c')]({'where':{'id':_0xd3cdae['params']['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x5c8f58,null))[_0x47d7('0x20')](function(_0xcbc338){if(_0xcbc338){_0x3fbace[_0x47d7('0x44')]=_['keys'](db['CannedAnswer'][_0x47d7('0x41')]);_0x3fbace[_0x47d7('0x46')]=_['keys'](_0xd3cdae[_0x47d7('0x46')]);_0x3fbace[_0x47d7('0x47')]=_[_0x47d7('0x48')](_0x3fbace[_0x47d7('0x44')],_0x3fbace[_0x47d7('0x46')]);_0x4d535b[_0x47d7('0x4a')]=_[_0x47d7('0x48')](_0x3fbace['model'],qs['fields'](_0xd3cdae[_0x47d7('0x46')][_0x47d7('0x49')]));_0x4d535b[_0x47d7('0x4a')]=_0x4d535b[_0x47d7('0x4a')][_0x47d7('0x4b')]?_0x4d535b[_0x47d7('0x4a')]:_0x3fbace[_0x47d7('0x44')];if(!_0xd3cdae[_0x47d7('0x46')][_0x47d7('0x4c')]('nolimit')){_0x4d535b['limit']=qs['limit'](_0xd3cdae[_0x47d7('0x46')][_0x47d7('0x31')]);_0x4d535b[_0x47d7('0x30')]=qs[_0x47d7('0x30')](_0xd3cdae[_0x47d7('0x46')][_0x47d7('0x30')]);}_0x4d535b[_0x47d7('0x4e')]=qs[_0x47d7('0x4f')](_0xd3cdae[_0x47d7('0x46')]['sort']);_0x4d535b[_0x47d7('0x50')]=qs['filters'](_[_0x47d7('0x51')](_0xd3cdae[_0x47d7('0x46')],_0x3fbace[_0x47d7('0x47')]));_0x4d535b['where'][_0x47d7('0x65')]=_0xcbc338['id'];if(_0xd3cdae['query'][_0x47d7('0x52')]){_0x4d535b[_0x47d7('0x50')]=_[_0x47d7('0x53')](_0x4d535b['where'],{'$or':_[_0x47d7('0x45')](_0x4d535b[_0x47d7('0x4a')],function(_0x12af14){var _0x49af9e={};_0x49af9e[_0x12af14]={'$like':'%'+_0xd3cdae[_0x47d7('0x46')][_0x47d7('0x52')]+'%'};return _0x49af9e;})});}_0x4d535b=_[_0x47d7('0x53')]({},_0x4d535b,_0xd3cdae[_0x47d7('0x54')]);return db[_0x47d7('0x6b')][_0x47d7('0x2f')]({'where':_0x4d535b['where']})[_0x47d7('0x20')](function(_0x9f89df){_0x4a0fe4[_0x47d7('0x2f')]=_0x9f89df;if(_0xd3cdae['query'][_0x47d7('0x55')]){_0x4d535b[_0x47d7('0x56')]=[{'all':!![]}];}return db['CannedAnswer'][_0x47d7('0x57')](_0x4d535b);})[_0x47d7('0x20')](function(_0x422397){_0x4a0fe4[_0x47d7('0x6d')]=_0x422397;return _0x4a0fe4;});}})['then'](respondWithFilteredResult(_0x5c8f58,_0x4d535b))[_0x47d7('0x2a')](handleError(_0x5c8f58,null));};exports[_0x47d7('0x6e')]=function(_0x338d21,_0x18c2fc,_0x3944a0){return db[_0x47d7('0x40')][_0x47d7('0x5f')]({'where':{'id':_0x338d21[_0x47d7('0x58')]['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x18c2fc,null))[_0x47d7('0x20')](function(_0x1bcb3f){if(_0x1bcb3f){return _0x1bcb3f[_0x47d7('0x6e')](_0x338d21[_0x47d7('0x46')][_0x47d7('0x69')]);}})[_0x47d7('0x20')](respondWithStatusCode(_0x18c2fc,null))[_0x47d7('0x2a')](handleError(_0x18c2fc,null));};exports[_0x47d7('0x6f')]=function(_0x2b67c5,_0x2a7cb5,_0x1682d8){return db[_0x47d7('0x40')]['find']({'where':{'id':_0x2b67c5[_0x47d7('0x58')]['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x2a7cb5,null))[_0x47d7('0x20')](function(_0x2dd039){if(_0x2dd039){return _0x2dd039[_0x47d7('0x6f')](_0x2b67c5[_0x47d7('0x62')][_0x47d7('0x69')],_[_0x47d7('0x70')](_0x2b67c5[_0x47d7('0x62')],[_0x47d7('0x69'),'id'])||{})[_0x47d7('0x71')](function(_0x4946a8){for(var _0x140663=0x0;_0x140663<_0x2b67c5[_0x47d7('0x62')]['ids'][_0x47d7('0x4b')];_0x140663+=0x1){socket['emit']('userWhatsappAccount:save',{'UserId':Number(_0x2b67c5['body'][_0x47d7('0x69')][_0x140663]),'WhatsappAccountId':Number(_0x2b67c5[_0x47d7('0x58')]['id'])});}return _0x4946a8;});}})[_0x47d7('0x20')](respondWithResult(_0x2a7cb5,null))[_0x47d7('0x2a')](handleError(_0x2a7cb5,null));};exports[_0x47d7('0x72')]=function(_0x4ec8d6,_0x456330,_0x16dc9c){return db[_0x47d7('0x40')][_0x47d7('0x5f')]({'where':{'id':_0x4ec8d6[_0x47d7('0x58')]['id']}})['then'](handleEntityNotFound(_0x456330,null))[_0x47d7('0x20')](function(_0xc44dfe){if(_0xc44dfe){return _0xc44dfe[_0x47d7('0x72')](_0x4ec8d6[_0x47d7('0x46')][_0x47d7('0x69')])['then'](function(){if(_['isArray'](_0x4ec8d6[_0x47d7('0x46')][_0x47d7('0x69')])){for(var _0x507336=0x0;_0x507336<_0x4ec8d6[_0x47d7('0x46')][_0x47d7('0x69')]['length'];_0x507336+=0x1){socket[_0x47d7('0x73')](_0x47d7('0x74'),{'UserId':Number(_0x4ec8d6[_0x47d7('0x46')][_0x47d7('0x69')][_0x507336]),'WhatsappAccountId':Number(_0x4ec8d6['params']['id'])});}}else{socket[_0x47d7('0x73')](_0x47d7('0x74'),{'UserId':Number(_0x4ec8d6[_0x47d7('0x46')][_0x47d7('0x69')]),'WhatsappAccountId':Number(_0x4ec8d6[_0x47d7('0x58')]['id'])});}});}})[_0x47d7('0x20')](respondWithStatusCode(_0x456330,null))[_0x47d7('0x2a')](handleError(_0x456330,null));};exports[_0x47d7('0x75')]=function(_0x36fad5,_0x45e003,_0xcf20dc){var _0x333c78={};var _0x49916b={};var _0x5cc8d3;var _0x18357a;return db['WhatsappAccount'][_0x47d7('0x6c')]({'where':{'id':_0x36fad5['params']['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x45e003,null))[_0x47d7('0x20')](function(_0x32f3f1){if(_0x32f3f1){_0x5cc8d3=_0x32f3f1;_0x49916b[_0x47d7('0x44')]=_[_0x47d7('0x59')](db[_0x47d7('0x76')][_0x47d7('0x41')]);_0x49916b['query']=_['keys'](_0x36fad5[_0x47d7('0x46')]);_0x49916b[_0x47d7('0x47')]=_[_0x47d7('0x48')](_0x49916b[_0x47d7('0x44')],_0x49916b[_0x47d7('0x46')]);_0x333c78[_0x47d7('0x4a')]=_['intersection'](_0x49916b[_0x47d7('0x44')],qs[_0x47d7('0x49')](_0x36fad5[_0x47d7('0x46')][_0x47d7('0x49')]));_0x333c78[_0x47d7('0x4a')]=_0x333c78['attributes'][_0x47d7('0x4b')]?_0x333c78[_0x47d7('0x4a')]:_0x49916b[_0x47d7('0x44')];_0x333c78[_0x47d7('0x4e')]=qs[_0x47d7('0x4f')](_0x36fad5[_0x47d7('0x46')][_0x47d7('0x4f')]);_0x333c78[_0x47d7('0x50')]=qs[_0x47d7('0x47')](_[_0x47d7('0x51')](_0x36fad5[_0x47d7('0x46')],_0x49916b[_0x47d7('0x47')]));if(_0x36fad5['query']['filter']){_0x333c78[_0x47d7('0x50')]=_['merge'](_0x333c78[_0x47d7('0x50')],{'$or':_['map'](_0x333c78[_0x47d7('0x4a')],function(_0x4897b1){var _0x3b4a87={};_0x3b4a87[_0x4897b1]={'$like':'%'+_0x36fad5[_0x47d7('0x46')][_0x47d7('0x52')]+'%'};return _0x3b4a87;})});}_0x333c78=_[_0x47d7('0x53')]({},_0x333c78,_0x36fad5['options']);return _0x5cc8d3['getAgents'](_0x333c78);}})[_0x47d7('0x20')](function(_0x20ca23){if(_0x20ca23){_0x18357a=_0x20ca23[_0x47d7('0x4b')];if(!_0x36fad5['query'][_0x47d7('0x4c')]('nolimit')){_0x333c78[_0x47d7('0x31')]=qs[_0x47d7('0x31')](_0x36fad5[_0x47d7('0x46')][_0x47d7('0x31')]);_0x333c78[_0x47d7('0x30')]=qs['offset'](_0x36fad5[_0x47d7('0x46')][_0x47d7('0x30')]);}return _0x5cc8d3['getAgents'](_0x333c78);}})[_0x47d7('0x20')](function(_0x48e18d){if(_0x48e18d){return _0x48e18d?{'count':_0x18357a,'rows':_0x48e18d}:null;}})[_0x47d7('0x20')](respondWithResult(_0x45e003,null))[_0x47d7('0x2a')](handleError(_0x45e003,null));};exports[_0x47d7('0x77')]=function(_0x1d6399,_0x512124,_0x5ef8c3){return db[_0x47d7('0x40')]['findOne']({'where':{'id':_0x1d6399[_0x47d7('0x58')]['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x512124,null))[_0x47d7('0x20')](function(_0x18476e){if(_0x18476e){return db[_0x47d7('0x78')][_0x47d7('0x79')](function(_0x285841){return db[_0x47d7('0x7a')][_0x47d7('0x38')]({'where':{'WhatsappAccountId':_0x1d6399[_0x47d7('0x58')]['id']},'transaction':_0x285841})[_0x47d7('0x20')](function(_0x3fa26a){var _0x3fbc14=_[_0x47d7('0x45')](_0x1d6399[_0x47d7('0x62')],function(_0xb86e83){_0xb86e83[_0x47d7('0x65')]=_0x1d6399[_0x47d7('0x58')]['id'];return _0xb86e83;});return db['WhatsappApplication']['bulkCreate'](_0x3fbc14,{'transaction':_0x285841});});})[_0x47d7('0x20')](function(){return db[_0x47d7('0x7a')][_0x47d7('0x7b')]({'where':{'WhatsappAccountId':_0x1d6399[_0x47d7('0x58')]['id']},'order':_0x47d7('0x7c')});});}})[_0x47d7('0x20')](respondWithResult(_0x512124,null))[_0x47d7('0x2a')](handleError(_0x512124,null));};exports[_0x47d7('0x7d')]=function(_0x36c24f,_0x4259f6,_0x1b2294){var _0x2668f8={};var _0x5637f0={};var _0x201a00;var _0x19684c;return db[_0x47d7('0x40')][_0x47d7('0x6c')]({'where':{'id':_0x36c24f[_0x47d7('0x58')]['id']}})[_0x47d7('0x20')](handleEntityNotFound(_0x4259f6,null))[_0x47d7('0x20')](function(_0x376493){if(_0x376493){_0x201a00=_0x376493;_0x5637f0['model']=_[_0x47d7('0x59')](db[_0x47d7('0x7a')][_0x47d7('0x41')]);_0x5637f0[_0x47d7('0x46')]=_[_0x47d7('0x59')](_0x36c24f[_0x47d7('0x46')]);_0x5637f0[_0x47d7('0x47')]=_[_0x47d7('0x48')](_0x5637f0['model'],_0x5637f0[_0x47d7('0x46')]);_0x2668f8[_0x47d7('0x4a')]=_[_0x47d7('0x48')](_0x5637f0['model'],qs[_0x47d7('0x49')](_0x36c24f[_0x47d7('0x46')][_0x47d7('0x49')]));_0x2668f8['attributes']=_0x2668f8[_0x47d7('0x4a')]['length']?_0x2668f8[_0x47d7('0x4a')]:_0x5637f0[_0x47d7('0x44')];_0x2668f8[_0x47d7('0x4e')]=qs[_0x47d7('0x4f')](_0x36c24f[_0x47d7('0x46')][_0x47d7('0x4f')]);_0x2668f8[_0x47d7('0x50')]=qs[_0x47d7('0x47')](_['pick'](_0x36c24f['query'],_0x5637f0[_0x47d7('0x47')]));if(_0x36c24f['query']['filter']){_0x2668f8[_0x47d7('0x50')]=_[_0x47d7('0x53')](_0x2668f8['where'],{'$or':_['map'](_0x2668f8[_0x47d7('0x4a')],function(_0x9d22e1){var _0x4e4bb8={};_0x4e4bb8[_0x9d22e1]={'$like':'%'+_0x36c24f[_0x47d7('0x46')][_0x47d7('0x52')]+'%'};return _0x4e4bb8;})});}_0x2668f8=_[_0x47d7('0x53')]({},_0x2668f8,_0x36c24f[_0x47d7('0x54')]);return _0x201a00['getApplications'](_0x2668f8);}})[_0x47d7('0x20')](function(_0x4f5b5a){if(_0x4f5b5a){_0x19684c=_0x4f5b5a[_0x47d7('0x4b')];if(!_0x36c24f['query']['hasOwnProperty'](_0x47d7('0x4d'))){_0x2668f8[_0x47d7('0x31')]=qs[_0x47d7('0x31')](_0x36c24f[_0x47d7('0x46')][_0x47d7('0x31')]);_0x2668f8[_0x47d7('0x30')]=qs[_0x47d7('0x30')](_0x36c24f[_0x47d7('0x46')]['offset']);}return _0x201a00[_0x47d7('0x7d')](_0x2668f8);}})['then'](function(_0x21c1cc){if(_0x21c1cc){return _0x21c1cc?{'count':_0x19684c,'rows':_0x21c1cc}:null;}})[_0x47d7('0x20')](respondWithResult(_0x4259f6,null))['catch'](handleError(_0x4259f6,null));};exports[_0x47d7('0x7e')]=function(_0x294409,_0x180601,_0x4323fa){var _0x1f1d4e={'channel':_0x47d7('0x7f')};var _0xf2caaa=[];var _0x1a859b=[];var _0x4cb9d0={};return db[_0x47d7('0x40')][_0x47d7('0x5f')]({'where':{'id':_0x294409[_0x47d7('0x58')]['id']},'include':[{'model':db[_0x47d7('0x7a')],'as':_0x47d7('0x80')}]})['then'](handleEntityNotFound(_0x180601,null))[_0x47d7('0x20')](function(_0x3ebbd2){_0x1f1d4e[_0x47d7('0x81')]=_0x3ebbd2;if(_0x1f1d4e[_0x47d7('0x81')]&&_0x1f1d4e['account'][_0x47d7('0x43')]===_0x47d7('0x82')&&_0x294409[_0x47d7('0x62')][_0x47d7('0x83')]&&_0x294409[_0x47d7('0x62')]['statuses'][0x0][_0x47d7('0x84')]===_0x47d7('0x85')){if(_0x294409['body']['statuses'][0x0][_0x47d7('0x84')]!=='read')return;return db[_0x47d7('0x86')][_0x47d7('0x37')]({'read':!![],'readAt':_0x294409[_0x47d7('0x62')][_0x47d7('0x83')][0x0][_0x47d7('0x87')]},{'where':{'messageId':_0x294409['body'][_0x47d7('0x83')][0x0]['message_id']},'individualHooks':!![]})[_0x47d7('0x20')](function(_0x1445bc){return _0x180601[_0x47d7('0x2c')](0xc8)[_0x47d7('0x33')](_0x1445bc);});}_0x1f1d4e[_0x47d7('0x88')]=_[_0x47d7('0x89')](_0x3ebbd2[_0x47d7('0x80')],['priority'],[_0x47d7('0x8a')]);if(_0x1f1d4e[_0x47d7('0x81')][_0x47d7('0x80')]){delete _0x1f1d4e[_0x47d7('0x81')][_0x47d7('0x80')];}return db[_0x47d7('0x8b')][_0x47d7('0x63')]()['then'](function(_0x2e6fab){if(!_0x2e6fab){throw new db[(_0x47d7('0x8c'))][(_0x47d7('0x8d'))](_0x47d7('0x8e'));}_0xf2caaa=_[_0x47d7('0x8f')](_[_0x47d7('0x59')](_0x2e6fab),['createdAt',_0x47d7('0x90')]);_0x1a859b=_[_0x47d7('0x8f')](_['keys'](_0x2e6fab),['createdAt',_0x47d7('0x90'),_0x47d7('0x91'),_0x47d7('0x92')]);_0x1f1d4e['body']={'mapKey':'mobile'};if(_0x1f1d4e['account']&&_0x1f1d4e['account']['type']===_0x47d7('0x93')){_0x1f1d4e['body'][_0x47d7('0x94')]=_0x294409[_0x47d7('0x62')][_0x47d7('0x95')][_0x47d7('0x96')]('whatsapp:','');_0x1f1d4e['body'][_0x47d7('0x62')]=_0x294409['body'][_0x47d7('0x97')];_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x98')]=_0x294409[_0x47d7('0x62')]['MessageSid'];}if(_0x1f1d4e['account']&&_0x1f1d4e[_0x47d7('0x81')][_0x47d7('0x43')]===_0x47d7('0x82')){_0x1f1d4e[_0x47d7('0x62')]['from']=_0x294409[_0x47d7('0x62')][_0x47d7('0x99')][0x0][_0x47d7('0x94')];_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x62')]=_0x294409[_0x47d7('0x62')][_0x47d7('0x99')][0x0][_0x47d7('0x28')][_0x47d7('0x62')];_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x98')]=_0x294409[_0x47d7('0x62')][_0x47d7('0x99')][0x0][_0x47d7('0x9a')];}if(_0x1f1d4e['body']['id']){delete _0x1f1d4e[_0x47d7('0x62')]['id'];}if(_[_0x47d7('0x9b')](_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x94')])){throw new db[(_0x47d7('0x8c'))][(_0x47d7('0x8d'))](_0x47d7('0x9c'));}if(_[_0x47d7('0x9b')](_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x62')])||_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x62')]===''){throw new db[(_0x47d7('0x8c'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x47d7('0x9b')](_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x9d')])){throw new db['Sequelize'][(_0x47d7('0x8d'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x1a859b);}if(!_[_0x47d7('0x9e')](_0x1a859b,_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x9d')])){throw new db[(_0x47d7('0x8c'))][(_0x47d7('0x8d'))](_0x47d7('0x9f')+_0x1a859b);}_0x4cb9d0[_0x1f1d4e[_0x47d7('0x62')]['mapKey']]=_0x1f1d4e[_0x47d7('0x62')]['from'];return db[_0x47d7('0xa0')][_0x47d7('0x5f')]({'where':{'id':_0x1f1d4e[_0x47d7('0x81')][_0x47d7('0x92')]},'include':[{'model':db['CmContact'],'as':_0x47d7('0xa1'),'where':_0x4cb9d0,'limit':0x1,'order':[[_0x47d7('0x90'),'DESC']]}]});})['then'](handleEntityNotFound(_0x180601,null))[_0x47d7('0x20')](function(_0x337e98){if(_0x337e98){_0x1f1d4e['list']=_['omit'](_0x337e98,[_0x47d7('0xa1')]);if(_0x337e98[_0x47d7('0xa1')][_0x47d7('0x4b')]){return _0x337e98[_0x47d7('0xa1')][0x0];}var _0x4ee65d=_[_0x47d7('0x18')](_0x1f1d4e['body'],{'firstName':_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x94')],'ListId':_0x337e98['id']});_0x4ee65d[_0x1f1d4e['body']['mapKey']]=_0x1f1d4e[_0x47d7('0x62')]['from'];return db['CmContact']['create'](_0x4ee65d,{'fields':_0xf2caaa,'raw':!![]});}})[_0x47d7('0x20')](handleEntityNotFound(_0x180601,null))[_0x47d7('0x20')](function(_0x20f4c5){if(_0x20f4c5){_0x1f1d4e[_0x47d7('0xa2')]=_0x20f4c5;var _0x5b4cb5={'ContactId':_0x20f4c5['id'],'phone':_0x1f1d4e['body'][_0x47d7('0x94')],'WhatsappAccountId':_0x294409[_0x47d7('0x58')]['id']};var _0x5d6e36={'ContactId':_0x20f4c5['id'],'WhatsappAccountId':_0x294409[_0x47d7('0x58')]['id'],'closed':![]};return db[_0x47d7('0xa3')]['find']({'where':_0x5d6e36})[_0x47d7('0x20')](function(_0xa8b5d3){if(_0xa8b5d3){return[_0xa8b5d3,![]];}return db[_0x47d7('0xa3')][_0x47d7('0x5a')](_0x5b4cb5)[_0x47d7('0x20')](function(_0x184b4d){return[_0x184b4d,!![]];});});}})[_0x47d7('0x71')](function(_0x2d18a1,_0x4b06ea){_0x1f1d4e['interaction']=_0x2d18a1[_0x47d7('0x5d')]({'plain':!![]});_0x1f1d4e[_0x47d7('0xa4')][_0x47d7('0xa5')]=![];if(_0x4b06ea){if(_0x1f1d4e[_0x47d7('0x81')]['autoclose']){_0x1f1d4e[_0x47d7('0x88')][_0x47d7('0xa6')]({'id':0x0,'priority':_0x1f1d4e[_0x47d7('0x88')][_0x47d7('0x4b')]+0x1,'app':_0x47d7('0xa7'),'appdata':_0x47d7('0xa8'),'interval':_0x47d7('0xa9')});}_0x1f1d4e[_0x47d7('0xa4')][_0x47d7('0xa5')]=!![];}return db[_0x47d7('0x86')][_0x47d7('0x5a')]({'phone':_0x1f1d4e['body']['from'],'messageId':_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x98')],'body':_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0x62')],'WhatsappAccountId':_0x294409[_0x47d7('0x58')]['id'],'WhatsappInteractionId':_0x2d18a1['id'],'direction':'in','ContactId':_0x2d18a1[_0x47d7('0xaa')],'AttachmentId':_0x1f1d4e[_0x47d7('0x62')][_0x47d7('0xab')]});})[_0x47d7('0x20')](function(_0x105ecb){_0x1f1d4e[_0x47d7('0x28')]=_0x105ecb;if(_0x1f1d4e['interaction'][_0x47d7('0xac')]){return db[_0x47d7('0x76')][_0x47d7('0x5f')]({'attributes':['id',_0x47d7('0x3b')],'where':{'id':_0x1f1d4e[_0x47d7('0xa4')][_0x47d7('0xac')]}})[_0x47d7('0x20')](function(_0x35d471){if(_0x35d471){_0x1f1d4e[_0x47d7('0x88')]['unshift']({'id':0x0,'priority':0x0,'app':_0x47d7('0xad'),'appdata':_0x35d471[_0x47d7('0x3b')]+','+(_0x1f1d4e[_0x47d7('0x81')][_0x47d7('0xae')]||0xa),'interval':_0x47d7('0xa9')});}return respondWithRpcPromise(_0x47d7('0xaf'),_0x47d7('0xb0'),_0x1f1d4e);});}return respondWithRpcPromise('Start','startRouting',_0x1f1d4e);})[_0x47d7('0x20')](function(_0x4993e4){if(_0x4993e4){var _0x515e17=0xc8;var _0x42ac25=_0x47d7('0xb1');logger[_0x47d7('0x21')](_0x47d7('0xb2'),_0x42ac25,_0x515e17,'entity\x20found');logger[_0x47d7('0x23')](_0x47d7('0xb3'),_0x42ac25,_0x515e17,_0x47d7('0xb4'),JSON[_0x47d7('0x24')](_0x4993e4));if(_0x1f1d4e[_0x47d7('0x81')][_0x47d7('0x43')]==='twilio'){return _0x180601['status'](_0x515e17)[_0x47d7('0xb5')]('Content-Type','text/xml')[_0x47d7('0x3c')]('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x180601['status'](_0x515e17)[_0x47d7('0x33')](_0x4993e4);}}});})['catch'](handleError(_0x180601,null));};exports[_0x47d7('0x3c')]=function(_0x178f82,_0x527d09,_0x309d83){var _0x1c785c,_0x1238db,_0xf8e18b;if(_[_0x47d7('0x9b')](_0x178f82['body'][_0x47d7('0x62')])||_0x178f82[_0x47d7('0x62')][_0x47d7('0x62')]===''){throw new db[(_0x47d7('0x8c'))][(_0x47d7('0x8d'))](_0x47d7('0xb6'));}if(_[_0x47d7('0x9b')](_0x178f82[_0x47d7('0x62')]['to'])){throw new db[(_0x47d7('0x8c'))]['ValidationError'](_0x47d7('0xb7'));}_0x1c785c=_0x178f82[_0x47d7('0x62')]['to'];return db['WhatsappAccount'][_0x47d7('0x5f')]({'where':{'id':_0x178f82[_0x47d7('0x58')]['id']},'include':[{'model':db[_0x47d7('0xa0')],'as':_0x47d7('0xb8'),'include':[{'model':db[_0x47d7('0x8b')],'as':_0x47d7('0xa1'),'where':{'mobile':_0x1c785c},'limit':0x1,'order':[[_0x47d7('0x90'),_0x47d7('0xb9')]]}]}]})[_0x47d7('0x20')](handleEntityNotFound(_0x527d09,null))['then'](function(_0x56acd8){if(_0x56acd8&&_0x56acd8['List']){_0x1238db=_0x56acd8['get']({'plain':!![]});if(_0x1238db[_0x47d7('0xb8')]&&_0x1238db[_0x47d7('0xb8')][_0x47d7('0xa1')]['length']){return _0x1238db[_0x47d7('0xb8')][_0x47d7('0xa1')][0x0];}return db['CmContact']['create'](_[_0x47d7('0x18')](_0x178f82[_0x47d7('0x62')],{'firstName':_0x1c785c,'mobile':_0x1c785c,'phone':_0x1c785c,'ListId':_0x1238db['ListId']}));}})[_0x47d7('0x20')](handleEntityNotFound(_0x527d09,null))[_0x47d7('0x20')](function(_0x54872f){if(_0x54872f){_0xf8e18b=_0x54872f;return db[_0x47d7('0xa3')]['find']({'where':{'ContactId':_0xf8e18b['id'],'closed':![],'WhatsappAccountId':_0x1238db['id']}})['then'](function(_0x18eb25){if(_0x18eb25){return[_0x18eb25,![]];}return db['WhatsappInteraction'][_0x47d7('0x5a')]({'UserId':_0x178f82[_0x47d7('0xba')]['id'],'ContactId':_0xf8e18b['id'],'WhatsappAccountId':_0x1238db['id'],'phone':_0x1c785c,'firstMsgDirection':_0x47d7('0xbb'),'Messages':[_['merge'](_0x178f82[_0x47d7('0x62')],{'read':![],'body':_0x178f82[_0x47d7('0x62')]['body'],'phone':_0x1c785c,'WhatsappAccountId':_0x1238db['id'],'UserId':_0x178f82[_0x47d7('0xba')]['id'],'ContactId':_0xf8e18b['id']})]},{'include':[{'model':db['WhatsappMessage'],'as':_0x47d7('0xbc')}]})[_0x47d7('0x20')](function(_0x1335b5){return[_0x1335b5,!![]];});});}})[_0x47d7('0x71')](function(_0x7fa7dc,_0x64a385){if(_0x64a385){return _0x7fa7dc;}return db['WhatsappMessage'][_0x47d7('0x5a')](_['merge'](_0x178f82[_0x47d7('0x62')],{'read':![],'body':_0x178f82[_0x47d7('0x62')][_0x47d7('0x62')],'phone':_0x1c785c,'WhatsappAccountId':_0x1238db['id'],'WhatsappInteractionId':_0x7fa7dc['id'],'UserId':_0x178f82[_0x47d7('0xba')]['id'],'ContactId':_0xf8e18b['id']}))['then'](function(_0x3f4095){_0x7fa7dc[_0x47d7('0xbd')]['Messages']=[];_0x7fa7dc['dataValues']['Messages']['push'](_0x3f4095[_0x47d7('0xbd')]);return _0x7fa7dc;});})['then'](respondWithResult(_0x527d09,null))[_0x47d7('0x2a')](handleError(_0x527d09,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf95=['events','../../mysqldb','setMaxListeners','save','remove','emit','hasOwnProperty','hook'];(function(_0x9f9752,_0x2aa7f5){var _0x480442=function(_0x52285e){while(--_0x52285e){_0x9f9752['push'](_0x9f9752['shift']());}};_0x480442(++_0x2aa7f5);}(_0xcf95,0x1c8));var _0x5cf9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcf95[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0x5cf9('0x0'));var WhatsappAccount=require(_0x5cf9('0x1'))['db']['WhatsappAccount'];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x5cf9('0x2')](0x0);var events={'afterCreate':_0x5cf9('0x3'),'afterUpdate':'update','afterDestroy':_0x5cf9('0x4')};function emitEvent(_0x312bbf){return function(_0x47972d,_0x116d20,_0x1a4b78){WhatsappAccountEvents[_0x5cf9('0x5')](_0x312bbf+':'+_0x47972d['id'],_0x47972d);WhatsappAccountEvents[_0x5cf9('0x5')](_0x312bbf,_0x47972d);_0x1a4b78(null);};}for(var e in events){if(events[_0x5cf9('0x6')](e)){var event=events[e];WhatsappAccount[_0x5cf9('0x7')](e,emitEvent(event));}}module['exports']=WhatsappAccountEvents;
\ No newline at end of file
+var _0x3990=['hasOwnProperty','events','../../mysqldb','WhatsappAccount','setMaxListeners','update','emit'];(function(_0x32713e,_0x16708d){var _0x50e9ad=function(_0x1bde5a){while(--_0x1bde5a){_0x32713e['push'](_0x32713e['shift']());}};_0x50e9ad(++_0x16708d);}(_0x3990,0x13c));var _0x0399=function(_0x237ead,_0x1869d8){_0x237ead=_0x237ead-0x0;var _0x3f78bf=_0x3990[_0x237ead];return _0x3f78bf;};'use strict';var EventEmitter=require(_0x0399('0x0'));var WhatsappAccount=require(_0x0399('0x1'))['db'][_0x0399('0x2')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x0399('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x0399('0x4'),'afterDestroy':'remove'};function emitEvent(_0x2b019e){return function(_0x5469ae,_0x4d92a0,_0x377f7f){WhatsappAccountEvents[_0x0399('0x5')](_0x2b019e+':'+_0x5469ae['id'],_0x5469ae);WhatsappAccountEvents[_0x0399('0x5')](_0x2b019e,_0x5469ae);_0x377f7f(null);};}for(var e in events){if(events[_0x0399('0x6')](e)){var event=events[e];WhatsappAccount['hook'](e,emitEvent(event));}}module['exports']=WhatsappAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4c7=['path','../../config/environment','./whatsappAccount.attributes','define','whatsapp_accounts','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x4674d0,_0x5b3e6c){var _0x39abf2=function(_0x3bc69e){while(--_0x3bc69e){_0x4674d0['push'](_0x4674d0['shift']());}};_0x39abf2(++_0x5b3e6c);}(_0xd4c7,0x1d3));var _0x7d4c=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0xd4c7[_0x126558];return _0x1f6d14;};'use strict';var _=require(_0x7d4c('0x0'));var util=require(_0x7d4c('0x1'));var logger=require(_0x7d4c('0x2'))(_0x7d4c('0x3'));var moment=require(_0x7d4c('0x4'));var BPromise=require(_0x7d4c('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7d4c('0x6'));var rimraf=require('rimraf');var config=require(_0x7d4c('0x7'));var attributes=require(_0x7d4c('0x8'));module['exports']=function(_0x584c53,_0x3ee910){return _0x584c53[_0x7d4c('0x9')]('WhatsappAccount',attributes,{'tableName':_0x7d4c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb083=['util','../../config/logger','api','path','rimraf','./whatsappAccount.attributes','exports','define','WhatsappAccount','whatsapp_accounts'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xb083,0x10e));var _0x3b08=function(_0x3d686b,_0x532d50){_0x3d686b=_0x3d686b-0x0;var _0x26da89=_0xb083[_0x3d686b];return _0x26da89;};'use strict';var _=require('lodash');var util=require(_0x3b08('0x0'));var logger=require(_0x3b08('0x1'))(_0x3b08('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x3b08('0x3'));var rimraf=require(_0x3b08('0x4'));var config=require('../../config/environment');var attributes=require(_0x3b08('0x5'));module[_0x3b08('0x6')]=function(_0x41ee90,_0xe5ea4){return _0x41ee90[_0x3b08('0x7')](_0x3b08('0x8'),attributes,{'tableName':_0x3b08('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa24d=['attributes','include','model','map','ShowWhatsappAccount','catch','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','info','request\x20sent','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappAccount,\x20%s,\x20%s','message','result','WhatsappAccount','options','raw','where'];(function(_0x11fb16,_0x29a381){var _0x343de1=function(_0x4a69f7){while(--_0x4a69f7){_0x11fb16['push'](_0x11fb16['shift']());}};_0x343de1(++_0x29a381);}(_0xa24d,0x182));var _0xda24=function(_0xf74ddb,_0x8383bd){_0xf74ddb=_0xf74ddb-0x0;var _0x44e4cd=_0xa24d[_0xf74ddb];return _0x44e4cd;};'use strict';var _=require('lodash');var util=require(_0xda24('0x0'));var moment=require(_0xda24('0x1'));var BPromise=require(_0xda24('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xda24('0x3'));var db=require(_0xda24('0x4'))['db'];var utils=require(_0xda24('0x5'));var logger=require(_0xda24('0x6'))(_0xda24('0x7'));var config=require(_0xda24('0x8'));var jayson=require(_0xda24('0x9'));var client=jayson[_0xda24('0xa')][_0xda24('0xb')]({'port':0x232a});config[_0xda24('0xc')]=_[_0xda24('0xd')](config[_0xda24('0xc')],{'host':_0xda24('0xe'),'port':0x18eb});var socket=require(_0xda24('0xf'))(new Redis(config[_0xda24('0xc')]));require('./whatsappAccount.socket')[_0xda24('0x10')](socket);function respondWithRpcPromise(_0x52c983,_0xcc4f81,_0x159b83){return new BPromise(function(_0x2af064,_0x37761d){return client[_0xda24('0x11')](_0x52c983,_0x159b83)[_0xda24('0x12')](function(_0x1560cd){logger[_0xda24('0x13')]('WhatsappAccount,\x20%s,\x20%s',_0xcc4f81,_0xda24('0x14'));logger['debug'](_0xda24('0x15'),_0xcc4f81,_0xda24('0x14'),JSON[_0xda24('0x16')](_0x1560cd));if(_0x1560cd[_0xda24('0x17')]){if(_0x1560cd[_0xda24('0x17')][_0xda24('0x18')]===0x1f4){logger['error'](_0xda24('0x19'),_0xcc4f81,_0x1560cd['error'][_0xda24('0x1a')]);return _0x37761d(_0x1560cd[_0xda24('0x17')]['message']);}logger['error'](_0xda24('0x19'),_0xcc4f81,_0x1560cd[_0xda24('0x17')][_0xda24('0x1a')]);return _0x2af064(_0x1560cd[_0xda24('0x17')]['message']);}else{logger['info']('WhatsappAccount,\x20%s,\x20%s',_0xcc4f81,_0xda24('0x14'));_0x2af064(_0x1560cd[_0xda24('0x1b')][_0xda24('0x1a')]);}})['catch'](function(_0x40ee76){logger[_0xda24('0x17')](_0xda24('0x19'),_0xcc4f81,_0x40ee76);_0x37761d(_0x40ee76);});});}exports['ShowWhatsappAccount']=function(_0x3f428f){var _0xdd0a4e=this;return new Promise(function(_0x400bb2,_0x5a4d57){return db[_0xda24('0x1c')]['find']({'raw':_0x3f428f[_0xda24('0x1d')]?_0x3f428f[_0xda24('0x1d')][_0xda24('0x1e')]===undefined?!![]:![]:!![],'where':_0x3f428f[_0xda24('0x1d')]?_0x3f428f[_0xda24('0x1d')][_0xda24('0x1f')]||null:null,'attributes':_0x3f428f[_0xda24('0x1d')]?_0x3f428f['options'][_0xda24('0x20')]||null:null,'include':_0x3f428f[_0xda24('0x1d')]?_0x3f428f[_0xda24('0x1d')][_0xda24('0x21')]?_['map'](_0x3f428f[_0xda24('0x1d')][_0xda24('0x21')],function(_0x2b05d3){return{'model':db[_0x2b05d3[_0xda24('0x22')]],'as':_0x2b05d3['as'],'attributes':_0x2b05d3[_0xda24('0x20')],'include':_0x2b05d3['include']?_[_0xda24('0x23')](_0x2b05d3[_0xda24('0x21')],function(_0x4d232c){return{'model':db[_0x4d232c['model']],'as':_0x4d232c['as'],'attributes':_0x4d232c[_0xda24('0x20')],'include':_0x4d232c[_0xda24('0x21')]?_[_0xda24('0x23')](_0x4d232c['include'],function(_0x3420c5){return{'model':db[_0x3420c5['model']],'as':_0x3420c5['as'],'attributes':_0x3420c5[_0xda24('0x20')]};}):[]};}):[]};}):[]:[]})[_0xda24('0x12')](function(_0x4662d8){logger['info'](_0xda24('0x24'),_0x3f428f);logger['debug'](_0xda24('0x24'),_0x3f428f,JSON[_0xda24('0x16')](_0x4662d8));_0x400bb2(_0x4662d8);})[_0xda24('0x25')](function(_0x41370c){logger[_0xda24('0x17')](_0xda24('0x24'),_0x41370c[_0xda24('0x1a')],_0x3f428f);_0x5a4d57(_0xdd0a4e[_0xda24('0x17')](0x1f4,_0x41370c['message']));});});};
\ No newline at end of file
+var _0xb126=['./whatsappAccount.socket','request','then','request\x20sent','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','WhatsappAccount,\x20%s,\x20%s','result','catch','WhatsappAccount','find','options','raw','attributes','include','map','model','info','ShowWhatsappAccount','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','redis','localhost','socket.io-emitter'];(function(_0x2f69e,_0x325a70){var _0x4bfcf5=function(_0x17648e){while(--_0x17648e){_0x2f69e['push'](_0x2f69e['shift']());}};_0x4bfcf5(++_0x325a70);}(_0xb126,0x127));var _0x6b12=function(_0x5bf316,_0x42567e){_0x5bf316=_0x5bf316-0x0;var _0xece8fc=_0xb126[_0x5bf316];return _0xece8fc;};'use strict';var _=require(_0x6b12('0x0'));var util=require(_0x6b12('0x1'));var moment=require(_0x6b12('0x2'));var BPromise=require(_0x6b12('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6b12('0x4'))['db'];var utils=require(_0x6b12('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x6b12('0x6'));var jayson=require(_0x6b12('0x7'));var client=jayson['client']['http']({'port':0x232a});config[_0x6b12('0x8')]=_['defaults'](config[_0x6b12('0x8')],{'host':_0x6b12('0x9'),'port':0x18eb});var socket=require(_0x6b12('0xa'))(new Redis(config[_0x6b12('0x8')]));require(_0x6b12('0xb'))['register'](socket);function respondWithRpcPromise(_0x272e37,_0xfa2634,_0x39ec3d){return new BPromise(function(_0x517e99,_0x4c7155){return client[_0x6b12('0xc')](_0x272e37,_0x39ec3d)[_0x6b12('0xd')](function(_0x2ff2ec){logger['info']('WhatsappAccount,\x20%s,\x20%s',_0xfa2634,_0x6b12('0xe'));logger[_0x6b12('0xf')](_0x6b12('0x10'),_0xfa2634,_0x6b12('0xe'),JSON[_0x6b12('0x11')](_0x2ff2ec));if(_0x2ff2ec[_0x6b12('0x12')]){if(_0x2ff2ec[_0x6b12('0x12')][_0x6b12('0x13')]===0x1f4){logger['error']('WhatsappAccount,\x20%s,\x20%s',_0xfa2634,_0x2ff2ec[_0x6b12('0x12')][_0x6b12('0x14')]);return _0x4c7155(_0x2ff2ec['error'][_0x6b12('0x14')]);}logger[_0x6b12('0x12')](_0x6b12('0x15'),_0xfa2634,_0x2ff2ec[_0x6b12('0x12')][_0x6b12('0x14')]);return _0x517e99(_0x2ff2ec[_0x6b12('0x12')]['message']);}else{logger['info'](_0x6b12('0x15'),_0xfa2634,_0x6b12('0xe'));_0x517e99(_0x2ff2ec[_0x6b12('0x16')]['message']);}})[_0x6b12('0x17')](function(_0xc3008d){logger[_0x6b12('0x12')]('WhatsappAccount,\x20%s,\x20%s',_0xfa2634,_0xc3008d);_0x4c7155(_0xc3008d);});});}exports['ShowWhatsappAccount']=function(_0x6fc531){var _0x50e37f=this;return new Promise(function(_0x521033,_0x31f21a){return db[_0x6b12('0x18')][_0x6b12('0x19')]({'raw':_0x6fc531[_0x6b12('0x1a')]?_0x6fc531[_0x6b12('0x1a')][_0x6b12('0x1b')]===undefined?!![]:![]:!![],'where':_0x6fc531['options']?_0x6fc531[_0x6b12('0x1a')]['where']||null:null,'attributes':_0x6fc531[_0x6b12('0x1a')]?_0x6fc531[_0x6b12('0x1a')][_0x6b12('0x1c')]||null:null,'include':_0x6fc531[_0x6b12('0x1a')]?_0x6fc531['options'][_0x6b12('0x1d')]?_[_0x6b12('0x1e')](_0x6fc531['options']['include'],function(_0x123363){return{'model':db[_0x123363[_0x6b12('0x1f')]],'as':_0x123363['as'],'attributes':_0x123363[_0x6b12('0x1c')],'include':_0x123363[_0x6b12('0x1d')]?_[_0x6b12('0x1e')](_0x123363[_0x6b12('0x1d')],function(_0x24093b){return{'model':db[_0x24093b[_0x6b12('0x1f')]],'as':_0x24093b['as'],'attributes':_0x24093b['attributes'],'include':_0x24093b['include']?_['map'](_0x24093b[_0x6b12('0x1d')],function(_0x39b991){return{'model':db[_0x39b991[_0x6b12('0x1f')]],'as':_0x39b991['as'],'attributes':_0x39b991['attributes']};}):[]};}):[]};}):[]:[]})[_0x6b12('0xd')](function(_0x286ee0){logger[_0x6b12('0x20')](_0x6b12('0x21'),_0x6fc531);logger['debug'](_0x6b12('0x21'),_0x6fc531,JSON[_0x6b12('0x11')](_0x286ee0));_0x521033(_0x286ee0);})[_0x6b12('0x17')](function(_0x2764a){logger['error'](_0x6b12('0x21'),_0x2764a[_0x6b12('0x14')],_0x6fc531);_0x31f21a(_0x50e37f[_0x6b12('0x12')](0x1f4,_0x2764a[_0x6b12('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x584f=['whatsappAccount:','./whatsappAccount.events','update','emit','removeListener','register','length'];(function(_0x1ff9bc,_0x168fb6){var _0x42e952=function(_0x800b41){while(--_0x800b41){_0x1ff9bc['push'](_0x1ff9bc['shift']());}};_0x42e952(++_0x168fb6);}(_0x584f,0xda));var _0xf584=function(_0x5e1f24,_0x442000){_0x5e1f24=_0x5e1f24-0x0;var _0x53823d=_0x584f[_0x5e1f24];return _0x53823d;};'use strict';var WhatsappAccountEvents=require(_0xf584('0x0'));var events=['save','remove',_0xf584('0x1')];function createListener(_0x1c410b,_0x901dd5){return function(_0x46dd95){_0x901dd5[_0xf584('0x2')](_0x1c410b,_0x46dd95);};}function removeListener(_0x4b7d6d,_0x1e58b6){return function(){WhatsappAccountEvents[_0xf584('0x3')](_0x4b7d6d,_0x1e58b6);};}exports[_0xf584('0x4')]=function(_0x162ec2){for(var _0x7a961c=0x0,_0x3c795a=events[_0xf584('0x5')];_0x7a961c<_0x3c795a;_0x7a961c++){var _0x56a999=events[_0x7a961c];var _0x59ffe3=createListener(_0xf584('0x6')+_0x56a999,_0x162ec2);WhatsappAccountEvents['on'](_0x56a999,_0x59ffe3);}};
\ No newline at end of file
+var _0x9989=['update','removeListener','length','./whatsappAccount.events','save'];(function(_0xb94070,_0x5c6650){var _0x3dbb3f=function(_0x3730fd){while(--_0x3730fd){_0xb94070['push'](_0xb94070['shift']());}};_0x3dbb3f(++_0x5c6650);}(_0x9989,0x1cf));var _0x9998=function(_0x1f76bb,_0x2275e2){_0x1f76bb=_0x1f76bb-0x0;var _0x355cfd=_0x9989[_0x1f76bb];return _0x355cfd;};'use strict';var WhatsappAccountEvents=require(_0x9998('0x0'));var events=[_0x9998('0x1'),'remove',_0x9998('0x2')];function createListener(_0x5c90bf,_0x250238){return function(_0x15638e){_0x250238['emit'](_0x5c90bf,_0x15638e);};}function removeListener(_0x237aa4,_0x38c452){return function(){WhatsappAccountEvents[_0x9998('0x3')](_0x237aa4,_0x38c452);};}exports['register']=function(_0x10db39){for(var _0xf0fd9f=0x0,_0x423693=events[_0x9998('0x4')];_0xf0fd9f<_0x423693;_0xf0fd9f++){var _0x3c5c40=events[_0xf0fd9f];var _0x6c5075=createListener('whatsappAccount:'+_0x3c5c40,_0x10db39);WhatsappAccountEvents['on'](_0x3c5c40,_0x6c5075);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x828b=['multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','./whatsappApplication.controller','get','index','/:id','isAuthenticated','show','post','create','update','destroy','exports'];(function(_0x23bf40,_0x541706){var _0x3a7916=function(_0x346057){while(--_0x346057){_0x23bf40['push'](_0x23bf40['shift']());}};_0x3a7916(++_0x541706);}(_0x828b,0x187));var _0xb828=function(_0x386cef,_0x112e10){_0x386cef=_0x386cef-0x0;var _0x2f866f=_0x828b[_0x386cef];return _0x2f866f;};'use strict';var multer=require(_0xb828('0x0'));var util=require('util');var path=require(_0xb828('0x1'));var timeout=require(_0xb828('0x2'));var express=require('express');var router=express[_0xb828('0x3')]();var fs_extra=require(_0xb828('0x4'));var auth=require(_0xb828('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xb828('0x6'));router[_0xb828('0x7')]('/',auth['isAuthenticated'](),controller[_0xb828('0x8')]);router['get'](_0xb828('0x9'),auth[_0xb828('0xa')](),controller[_0xb828('0xb')]);router[_0xb828('0xc')]('/',auth[_0xb828('0xa')](),controller[_0xb828('0xd')]);router['put'](_0xb828('0x9'),auth[_0xb828('0xa')](),controller[_0xb828('0xe')]);router['delete'](_0xb828('0x9'),auth[_0xb828('0xa')](),controller[_0xb828('0xf')]);module[_0xb828('0x10')]=router;
\ No newline at end of file
+var _0xbe42=['/:id','update','delete','exports','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappApplication.controller','get','isAuthenticated','index','post','create','put'];(function(_0x199c4d,_0x2c6fd9){var _0x42d717=function(_0x3265c5){while(--_0x3265c5){_0x199c4d['push'](_0x199c4d['shift']());}};_0x42d717(++_0x2c6fd9);}(_0xbe42,0x1b4));var _0x2be4=function(_0xe2c95e,_0x3e6545){_0xe2c95e=_0xe2c95e-0x0;var _0x42ce6f=_0xbe42[_0xe2c95e];return _0x42ce6f;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x2be4('0x0'));var timeout=require(_0x2be4('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x2be4('0x2'));var auth=require(_0x2be4('0x3'));var interaction=require(_0x2be4('0x4'));var config=require('../../config/environment');var controller=require(_0x2be4('0x5'));router[_0x2be4('0x6')]('/',auth[_0x2be4('0x7')](),controller[_0x2be4('0x8')]);router[_0x2be4('0x6')]('/:id',auth[_0x2be4('0x7')](),controller['show']);router[_0x2be4('0x9')]('/',auth[_0x2be4('0x7')](),controller[_0x2be4('0xa')]);router[_0x2be4('0xb')](_0x2be4('0xc'),auth[_0x2be4('0x7')](),controller[_0x2be4('0xd')]);router[_0x2be4('0xe')]('/:id',auth[_0x2be4('0x7')](),controller['destroy']);module[_0x2be4('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4aab=['TEXT','STRING','*,*,*,*','sequelize','exports','INTEGER','noop'];(function(_0x321728,_0x1fbc48){var _0x211876=function(_0x5bf9fc){while(--_0x5bf9fc){_0x321728['push'](_0x321728['shift']());}};_0x211876(++_0x1fbc48);}(_0x4aab,0x65));var _0xb4aa=function(_0x3af444,_0x590610){_0x3af444=_0x3af444-0x0;var _0x2305da=_0x4aab[_0x3af444];return _0x2305da;};'use strict';var Sequelize=require(_0xb4aa('0x0'));module[_0xb4aa('0x1')]={'priority':{'type':Sequelize[_0xb4aa('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xb4aa('0x3')},'appdata':{'type':Sequelize[_0xb4aa('0x4')]()},'description':{'type':Sequelize[_0xb4aa('0x5')]},'interval':{'type':Sequelize[_0xb4aa('0x5')],'defaultValue':_0xb4aa('0x6')}};
\ No newline at end of file
+var _0x908f=['sequelize','exports','INTEGER','STRING','noop','TEXT','*,*,*,*'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0x908f,0x70));var _0xf908=function(_0x137c16,_0x1cdbe2){_0x137c16=_0x137c16-0x0;var _0x2df557=_0x908f[_0x137c16];return _0x2df557;};'use strict';var Sequelize=require(_0xf908('0x0'));module[_0xf908('0x1')]={'priority':{'type':Sequelize[_0xf908('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xf908('0x3')],'allowNull':![],'defaultValue':_0xf908('0x4')},'appdata':{'type':Sequelize[_0xf908('0x5')]()},'description':{'type':Sequelize[_0xf908('0x3')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0xf908('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbca0=['bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','update','then','destroy','error','stack','name','send','index','WhatsappApplication','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','create','body','catch','find','eml-format','rimraf','moment'];(function(_0x2827f9,_0x2682a8){var _0x5a00a5=function(_0x5b2dec){while(--_0x5b2dec){_0x2827f9['push'](_0x2827f9['shift']());}};_0x5a00a5(++_0x2682a8);}(_0xbca0,0x8b));var _0x0bca=function(_0x2df39a,_0x254933){_0x2df39a=_0x2df39a-0x0;var _0xf72a2c=_0xbca0[_0x2df39a];return _0xf72a2c;};'use strict';var emlformat=require(_0x0bca('0x0'));var rimraf=require(_0x0bca('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0bca('0x2'));var BPromise=require(_0x0bca('0x3'));var Mustache=require(_0x0bca('0x4'));var util=require(_0x0bca('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x0bca('0x6'));var ejs=require(_0x0bca('0x7'));var fs=require('fs');var fs_extra=require(_0x0bca('0x8'));var _=require(_0x0bca('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0bca('0xa'));var toCsv=require(_0x0bca('0x6'));var querystring=require(_0x0bca('0xb'));var Papa=require(_0x0bca('0xc'));var Redis=require(_0x0bca('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x0bca('0xe'));var hardwareService=require(_0x0bca('0xf'));var logger=require(_0x0bca('0x10'))(_0x0bca('0x11'));var utils=require(_0x0bca('0x12'));var config=require(_0x0bca('0x13'));var licenseUtil=require(_0x0bca('0x14'));var db=require(_0x0bca('0x15'))['db'];function respondWithStatusCode(_0x4533bf,_0x465266){_0x465266=_0x465266||0xcc;return function(_0x14921d){if(_0x14921d){return _0x4533bf[_0x0bca('0x16')](_0x465266);}return _0x4533bf[_0x0bca('0x17')](_0x465266)[_0x0bca('0x18')]();};}function respondWithResult(_0x244f59,_0x2ceb98){_0x2ceb98=_0x2ceb98||0xc8;return function(_0x20d6bf){if(_0x20d6bf){return _0x244f59[_0x0bca('0x17')](_0x2ceb98)[_0x0bca('0x19')](_0x20d6bf);}};}function respondWithFilteredResult(_0x4c7ba8,_0x1b0f06){return function(_0x464fbf){if(_0x464fbf){var _0x13c80a=typeof _0x1b0f06[_0x0bca('0x1a')]===_0x0bca('0x1b')&&typeof _0x1b0f06[_0x0bca('0x1c')]===_0x0bca('0x1b');var _0x512830=_0x464fbf[_0x0bca('0x1d')];var _0x3589e9=_0x13c80a?0x0:_0x1b0f06[_0x0bca('0x1a')];var _0x1111c3=_0x13c80a?_0x464fbf[_0x0bca('0x1d')]:_0x1b0f06[_0x0bca('0x1a')]+_0x1b0f06[_0x0bca('0x1c')];var _0x4c4e25;if(_0x1111c3>=_0x512830){_0x1111c3=_0x512830;_0x4c4e25=0xc8;}else{_0x4c4e25=0xce;}_0x4c7ba8[_0x0bca('0x17')](_0x4c4e25);return _0x4c7ba8['set']('Content-Range',_0x3589e9+'-'+_0x1111c3+'/'+_0x512830)[_0x0bca('0x19')](_0x464fbf);}return null;};}function patchUpdates(_0x3fbfad){return function(_0xcc2790){try{jsonpatch[_0x0bca('0x1e')](_0xcc2790,_0x3fbfad,!![]);}catch(_0x202caa){return BPromise[_0x0bca('0x1f')](_0x202caa);}return _0xcc2790['save']();};}function saveUpdates(_0x10d170,_0x3c7c51){return function(_0x5c0a6c){if(_0x5c0a6c){return _0x5c0a6c[_0x0bca('0x20')](_0x10d170)[_0x0bca('0x21')](function(_0x3e66b9){return _0x3e66b9;});}return null;};}function removeEntity(_0x37e43c,_0xa96ced){return function(_0x40565a){if(_0x40565a){return _0x40565a[_0x0bca('0x22')]()['then'](function(){_0x37e43c[_0x0bca('0x17')](0xcc)[_0x0bca('0x18')]();});}};}function handleEntityNotFound(_0x2cece9,_0x2617bc){return function(_0xbe494){if(!_0xbe494){_0x2cece9[_0x0bca('0x16')](0x194);}return _0xbe494;};}function handleError(_0x1fafc9,_0xabafd1){_0xabafd1=_0xabafd1||0x1f4;return function(_0x18cab1){logger[_0x0bca('0x23')](_0x18cab1[_0x0bca('0x24')]);if(_0x18cab1[_0x0bca('0x25')]){delete _0x18cab1[_0x0bca('0x25')];}_0x1fafc9[_0x0bca('0x17')](_0xabafd1)[_0x0bca('0x26')](_0x18cab1);};}exports[_0x0bca('0x27')]=function(_0x3d687c,_0x1b7e2b){var _0x1be2b7={},_0x3810ed={},_0x262959={'count':0x0,'rows':[]};var _0x1e7566=_['map'](db[_0x0bca('0x28')][_0x0bca('0x29')],function(_0x18cdaa){return{'name':_0x18cdaa[_0x0bca('0x2a')],'type':_0x18cdaa[_0x0bca('0x2b')]['key']};});_0x3810ed['model']=_[_0x0bca('0x2c')](_0x1e7566,_0x0bca('0x25'));_0x3810ed[_0x0bca('0x2d')]=_[_0x0bca('0x2e')](_0x3d687c[_0x0bca('0x2d')]);_0x3810ed[_0x0bca('0x2f')]=_[_0x0bca('0x30')](_0x3810ed[_0x0bca('0x31')],_0x3810ed[_0x0bca('0x2d')]);_0x1be2b7[_0x0bca('0x32')]=_[_0x0bca('0x30')](_0x3810ed[_0x0bca('0x31')],qs[_0x0bca('0x33')](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x33')]));_0x1be2b7[_0x0bca('0x32')]=_0x1be2b7[_0x0bca('0x32')][_0x0bca('0x34')]?_0x1be2b7[_0x0bca('0x32')]:_0x3810ed[_0x0bca('0x31')];if(!_0x3d687c[_0x0bca('0x2d')]['hasOwnProperty'](_0x0bca('0x35'))){_0x1be2b7[_0x0bca('0x1c')]=qs[_0x0bca('0x1c')](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x1c')]);_0x1be2b7[_0x0bca('0x1a')]=qs[_0x0bca('0x1a')](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x1a')]);}_0x1be2b7[_0x0bca('0x36')]=qs['sort'](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x37')]);_0x1be2b7[_0x0bca('0x38')]=qs[_0x0bca('0x2f')](_[_0x0bca('0x39')](_0x3d687c[_0x0bca('0x2d')],_0x3810ed[_0x0bca('0x2f')]),_0x1e7566);if(_0x3d687c['query'][_0x0bca('0x3a')]){_0x1be2b7[_0x0bca('0x38')]=_[_0x0bca('0x3b')](_0x1be2b7[_0x0bca('0x38')],{'$or':_[_0x0bca('0x2c')](_0x1e7566,function(_0xd4247c){if(_0xd4247c[_0x0bca('0x2b')]!==_0x0bca('0x3c')){var _0x22674d={};_0x22674d[_0xd4247c[_0x0bca('0x25')]]={'$like':'%'+_0x3d687c[_0x0bca('0x2d')]['filter']+'%'};return _0x22674d;}})});}_0x1be2b7=_[_0x0bca('0x3b')]({},_0x1be2b7,_0x3d687c[_0x0bca('0x3d')]);var _0x119cdf={'where':_0x1be2b7[_0x0bca('0x38')]};return db['WhatsappApplication'][_0x0bca('0x1d')](_0x119cdf)[_0x0bca('0x21')](function(_0x4c1505){_0x262959['count']=_0x4c1505;if(_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x3e')]){_0x1be2b7[_0x0bca('0x3f')]=[{'all':!![]}];}return db['WhatsappApplication']['findAll'](_0x1be2b7);})['then'](function(_0x3b81fc){_0x262959[_0x0bca('0x40')]=_0x3b81fc;return _0x262959;})['then'](respondWithFilteredResult(_0x1b7e2b,_0x1be2b7))['catch'](handleError(_0x1b7e2b,null));};exports[_0x0bca('0x41')]=function(_0x5f20e5,_0x3244ef){var _0x3db89c={'raw':!![],'where':{'id':_0x5f20e5[_0x0bca('0x42')]['id']}},_0x11ac00={};_0x11ac00[_0x0bca('0x31')]=_['keys'](db[_0x0bca('0x28')][_0x0bca('0x29')]);_0x11ac00['query']=_['keys'](_0x5f20e5[_0x0bca('0x2d')]);_0x11ac00['filters']=_[_0x0bca('0x30')](_0x11ac00[_0x0bca('0x31')],_0x11ac00[_0x0bca('0x2d')]);_0x3db89c[_0x0bca('0x32')]=_[_0x0bca('0x30')](_0x11ac00[_0x0bca('0x31')],qs[_0x0bca('0x33')](_0x5f20e5[_0x0bca('0x2d')][_0x0bca('0x33')]));_0x3db89c['attributes']=_0x3db89c['attributes'][_0x0bca('0x34')]?_0x3db89c[_0x0bca('0x32')]:_0x11ac00[_0x0bca('0x31')];if(_0x5f20e5[_0x0bca('0x2d')]['includeAll']){_0x3db89c[_0x0bca('0x3f')]=[{'all':!![]}];}_0x3db89c=_['merge']({},_0x3db89c,_0x5f20e5['options']);return db[_0x0bca('0x28')]['find'](_0x3db89c)[_0x0bca('0x21')](handleEntityNotFound(_0x3244ef,null))['then'](respondWithResult(_0x3244ef,null))['catch'](handleError(_0x3244ef,null));};exports[_0x0bca('0x43')]=function(_0x14231b,_0x6c5cf0){return db['WhatsappApplication']['create'](_0x14231b[_0x0bca('0x44')],{})[_0x0bca('0x21')](respondWithResult(_0x6c5cf0,0xc9))[_0x0bca('0x45')](handleError(_0x6c5cf0,null));};exports[_0x0bca('0x20')]=function(_0x2931cf,_0x3a5f1d){if(_0x2931cf['body']['id']){delete _0x2931cf[_0x0bca('0x44')]['id'];}return db['WhatsappApplication'][_0x0bca('0x46')]({'where':{'id':_0x2931cf[_0x0bca('0x42')]['id']}})[_0x0bca('0x21')](handleEntityNotFound(_0x3a5f1d,null))[_0x0bca('0x21')](saveUpdates(_0x2931cf[_0x0bca('0x44')],null))['then'](respondWithResult(_0x3a5f1d,null))['catch'](handleError(_0x3a5f1d,null));};exports[_0x0bca('0x22')]=function(_0x46cfa6,_0x563086){return db[_0x0bca('0x28')][_0x0bca('0x46')]({'where':{'id':_0x46cfa6[_0x0bca('0x42')]['id']}})[_0x0bca('0x21')](handleEntityNotFound(_0x563086,null))['then'](removeEntity(_0x563086,null))[_0x0bca('0x45')](handleError(_0x563086,null));};
\ No newline at end of file
+var _0xfb11=['options','includeAll','include','rows','params','find','catch','create','body','eml-format','zip-dir','fast-json-patch','moment','mustache','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','reject','update','then','destroy','error','stack','name','send','index','map','WhatsappApplication','rawAttributes','type','key','keys','query','intersection','model','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge'];(function(_0x215954,_0x59b51e){var _0x2f8a10=function(_0x5f0033){while(--_0x5f0033){_0x215954['push'](_0x215954['shift']());}};_0x2f8a10(++_0x59b51e);}(_0xfb11,0x1ad));var _0x1fb1=function(_0x3ce3c,_0x319337){_0x3ce3c=_0x3ce3c-0x0;var _0x55a2c9=_0xfb11[_0x3ce3c];return _0x55a2c9;};'use strict';var emlformat=require(_0x1fb1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1fb1('0x1'));var jsonpatch=require(_0x1fb1('0x2'));var rp=require('request-promise');var moment=require(_0x1fb1('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x1fb1('0x4'));var util=require('util');var path=require(_0x1fb1('0x5'));var sox=require(_0x1fb1('0x6'));var csv=require('to-csv');var ejs=require(_0x1fb1('0x7'));var fs=require('fs');var fs_extra=require(_0x1fb1('0x8'));var _=require('lodash');var squel=require(_0x1fb1('0x9'));var crypto=require(_0x1fb1('0xa'));var jsforce=require(_0x1fb1('0xb'));var deskjs=require(_0x1fb1('0xc'));var toCsv=require(_0x1fb1('0xd'));var querystring=require(_0x1fb1('0xe'));var Papa=require(_0x1fb1('0xf'));var Redis=require(_0x1fb1('0x10'));var authService=require(_0x1fb1('0x11'));var qs=require(_0x1fb1('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1fb1('0x13'));var logger=require('../../config/logger')(_0x1fb1('0x14'));var utils=require('../../config/utils');var config=require(_0x1fb1('0x15'));var licenseUtil=require(_0x1fb1('0x16'));var db=require(_0x1fb1('0x17'))['db'];function respondWithStatusCode(_0x10bcac,_0x333229){_0x333229=_0x333229||0xcc;return function(_0x14f290){if(_0x14f290){return _0x10bcac['sendStatus'](_0x333229);}return _0x10bcac[_0x1fb1('0x18')](_0x333229)[_0x1fb1('0x19')]();};}function respondWithResult(_0x2c5be1,_0x44f24c){_0x44f24c=_0x44f24c||0xc8;return function(_0xd83038){if(_0xd83038){return _0x2c5be1[_0x1fb1('0x18')](_0x44f24c)[_0x1fb1('0x1a')](_0xd83038);}};}function respondWithFilteredResult(_0x316fe5,_0x358b58){return function(_0x4cbe42){if(_0x4cbe42){var _0x5c8d23=typeof _0x358b58[_0x1fb1('0x1b')]===_0x1fb1('0x1c')&&typeof _0x358b58[_0x1fb1('0x1d')]==='undefined';var _0x161ca3=_0x4cbe42[_0x1fb1('0x1e')];var _0x24d4df=_0x5c8d23?0x0:_0x358b58[_0x1fb1('0x1b')];var _0x33c6b6=_0x5c8d23?_0x4cbe42[_0x1fb1('0x1e')]:_0x358b58[_0x1fb1('0x1b')]+_0x358b58[_0x1fb1('0x1d')];var _0x4041ea;if(_0x33c6b6>=_0x161ca3){_0x33c6b6=_0x161ca3;_0x4041ea=0xc8;}else{_0x4041ea=0xce;}_0x316fe5['status'](_0x4041ea);return _0x316fe5[_0x1fb1('0x1f')]('Content-Range',_0x24d4df+'-'+_0x33c6b6+'/'+_0x161ca3)['json'](_0x4cbe42);}return null;};}function patchUpdates(_0xdf9c1b){return function(_0x313d9a){try{jsonpatch[_0x1fb1('0x20')](_0x313d9a,_0xdf9c1b,!![]);}catch(_0x54ad97){return BPromise[_0x1fb1('0x21')](_0x54ad97);}return _0x313d9a['save']();};}function saveUpdates(_0x5c76f5,_0x532c63){return function(_0x31178c){if(_0x31178c){return _0x31178c[_0x1fb1('0x22')](_0x5c76f5)[_0x1fb1('0x23')](function(_0x10924f){return _0x10924f;});}return null;};}function removeEntity(_0x303a06,_0x53b8af){return function(_0x4272c7){if(_0x4272c7){return _0x4272c7[_0x1fb1('0x24')]()[_0x1fb1('0x23')](function(){_0x303a06[_0x1fb1('0x18')](0xcc)[_0x1fb1('0x19')]();});}};}function handleEntityNotFound(_0x1353a4,_0x3680b5){return function(_0x2de1d4){if(!_0x2de1d4){_0x1353a4['sendStatus'](0x194);}return _0x2de1d4;};}function handleError(_0x1b25b3,_0x1aac7d){_0x1aac7d=_0x1aac7d||0x1f4;return function(_0x46ff60){logger[_0x1fb1('0x25')](_0x46ff60[_0x1fb1('0x26')]);if(_0x46ff60[_0x1fb1('0x27')]){delete _0x46ff60[_0x1fb1('0x27')];}_0x1b25b3[_0x1fb1('0x18')](_0x1aac7d)[_0x1fb1('0x28')](_0x46ff60);};}exports[_0x1fb1('0x29')]=function(_0x5e99e7,_0x497017){var _0x39fc43={},_0xe8ec0a={},_0x2f6c88={'count':0x0,'rows':[]};var _0x520ee2=_[_0x1fb1('0x2a')](db[_0x1fb1('0x2b')][_0x1fb1('0x2c')],function(_0x1b71cb){return{'name':_0x1b71cb['fieldName'],'type':_0x1b71cb[_0x1fb1('0x2d')][_0x1fb1('0x2e')]};});_0xe8ec0a['model']=_[_0x1fb1('0x2a')](_0x520ee2,'name');_0xe8ec0a['query']=_[_0x1fb1('0x2f')](_0x5e99e7[_0x1fb1('0x30')]);_0xe8ec0a['filters']=_[_0x1fb1('0x31')](_0xe8ec0a[_0x1fb1('0x32')],_0xe8ec0a[_0x1fb1('0x30')]);_0x39fc43[_0x1fb1('0x33')]=_[_0x1fb1('0x31')](_0xe8ec0a['model'],qs[_0x1fb1('0x34')](_0x5e99e7[_0x1fb1('0x30')][_0x1fb1('0x34')]));_0x39fc43[_0x1fb1('0x33')]=_0x39fc43[_0x1fb1('0x33')][_0x1fb1('0x35')]?_0x39fc43[_0x1fb1('0x33')]:_0xe8ec0a[_0x1fb1('0x32')];if(!_0x5e99e7[_0x1fb1('0x30')]['hasOwnProperty'](_0x1fb1('0x36'))){_0x39fc43['limit']=qs[_0x1fb1('0x1d')](_0x5e99e7['query'][_0x1fb1('0x1d')]);_0x39fc43['offset']=qs['offset'](_0x5e99e7[_0x1fb1('0x30')][_0x1fb1('0x1b')]);}_0x39fc43[_0x1fb1('0x37')]=qs[_0x1fb1('0x38')](_0x5e99e7['query'][_0x1fb1('0x38')]);_0x39fc43[_0x1fb1('0x39')]=qs[_0x1fb1('0x3a')](_['pick'](_0x5e99e7[_0x1fb1('0x30')],_0xe8ec0a[_0x1fb1('0x3a')]),_0x520ee2);if(_0x5e99e7[_0x1fb1('0x30')][_0x1fb1('0x3b')]){_0x39fc43[_0x1fb1('0x39')]=_[_0x1fb1('0x3c')](_0x39fc43[_0x1fb1('0x39')],{'$or':_['map'](_0x520ee2,function(_0x3a8a63){if(_0x3a8a63[_0x1fb1('0x2d')]!=='VIRTUAL'){var _0x473894={};_0x473894[_0x3a8a63['name']]={'$like':'%'+_0x5e99e7[_0x1fb1('0x30')][_0x1fb1('0x3b')]+'%'};return _0x473894;}})});}_0x39fc43=_[_0x1fb1('0x3c')]({},_0x39fc43,_0x5e99e7[_0x1fb1('0x3d')]);var _0x1a0b32={'where':_0x39fc43[_0x1fb1('0x39')]};return db[_0x1fb1('0x2b')][_0x1fb1('0x1e')](_0x1a0b32)[_0x1fb1('0x23')](function(_0x2c023e){_0x2f6c88[_0x1fb1('0x1e')]=_0x2c023e;if(_0x5e99e7[_0x1fb1('0x30')][_0x1fb1('0x3e')]){_0x39fc43[_0x1fb1('0x3f')]=[{'all':!![]}];}return db[_0x1fb1('0x2b')]['findAll'](_0x39fc43);})[_0x1fb1('0x23')](function(_0xca1fd3){_0x2f6c88[_0x1fb1('0x40')]=_0xca1fd3;return _0x2f6c88;})[_0x1fb1('0x23')](respondWithFilteredResult(_0x497017,_0x39fc43))['catch'](handleError(_0x497017,null));};exports['show']=function(_0xf6f17d,_0xef42e0){var _0x307faf={'raw':!![],'where':{'id':_0xf6f17d[_0x1fb1('0x41')]['id']}},_0x3edc8a={};_0x3edc8a[_0x1fb1('0x32')]=_[_0x1fb1('0x2f')](db[_0x1fb1('0x2b')][_0x1fb1('0x2c')]);_0x3edc8a[_0x1fb1('0x30')]=_['keys'](_0xf6f17d[_0x1fb1('0x30')]);_0x3edc8a['filters']=_['intersection'](_0x3edc8a[_0x1fb1('0x32')],_0x3edc8a[_0x1fb1('0x30')]);_0x307faf[_0x1fb1('0x33')]=_[_0x1fb1('0x31')](_0x3edc8a['model'],qs['fields'](_0xf6f17d[_0x1fb1('0x30')][_0x1fb1('0x34')]));_0x307faf[_0x1fb1('0x33')]=_0x307faf[_0x1fb1('0x33')][_0x1fb1('0x35')]?_0x307faf[_0x1fb1('0x33')]:_0x3edc8a[_0x1fb1('0x32')];if(_0xf6f17d[_0x1fb1('0x30')][_0x1fb1('0x3e')]){_0x307faf['include']=[{'all':!![]}];}_0x307faf=_['merge']({},_0x307faf,_0xf6f17d[_0x1fb1('0x3d')]);return db['WhatsappApplication'][_0x1fb1('0x42')](_0x307faf)[_0x1fb1('0x23')](handleEntityNotFound(_0xef42e0,null))[_0x1fb1('0x23')](respondWithResult(_0xef42e0,null))[_0x1fb1('0x43')](handleError(_0xef42e0,null));};exports[_0x1fb1('0x44')]=function(_0x3c3fbf,_0x5af135){return db[_0x1fb1('0x2b')][_0x1fb1('0x44')](_0x3c3fbf[_0x1fb1('0x45')],{})['then'](respondWithResult(_0x5af135,0xc9))[_0x1fb1('0x43')](handleError(_0x5af135,null));};exports['update']=function(_0x6e105b,_0xba4fa7){if(_0x6e105b[_0x1fb1('0x45')]['id']){delete _0x6e105b['body']['id'];}return db[_0x1fb1('0x2b')][_0x1fb1('0x42')]({'where':{'id':_0x6e105b['params']['id']}})[_0x1fb1('0x23')](handleEntityNotFound(_0xba4fa7,null))[_0x1fb1('0x23')](saveUpdates(_0x6e105b[_0x1fb1('0x45')],null))['then'](respondWithResult(_0xba4fa7,null))['catch'](handleError(_0xba4fa7,null));};exports['destroy']=function(_0x31a85a,_0x2365b5){return db[_0x1fb1('0x2b')][_0x1fb1('0x42')]({'where':{'id':_0x31a85a[_0x1fb1('0x41')]['id']}})[_0x1fb1('0x23')](handleEntityNotFound(_0x2365b5,null))['then'](removeEntity(_0x2365b5,null))['catch'](handleError(_0x2365b5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28e3=['bluebird','request-promise','path','rimraf','../../config/environment','./whatsappApplication.attributes','exports','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api'];(function(_0x48d861,_0x5747b6){var _0xdea746=function(_0x1bd079){while(--_0x1bd079){_0x48d861['push'](_0x48d861['shift']());}};_0xdea746(++_0x5747b6);}(_0x28e3,0x106));var _0x328e=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x28e3[_0x1caf6a];return _0x1bf493;};'use strict';var _=require(_0x328e('0x0'));var util=require(_0x328e('0x1'));var logger=require(_0x328e('0x2'))(_0x328e('0x3'));var moment=require('moment');var BPromise=require(_0x328e('0x4'));var rp=require(_0x328e('0x5'));var fs=require('fs');var path=require(_0x328e('0x6'));var rimraf=require(_0x328e('0x7'));var config=require(_0x328e('0x8'));var attributes=require(_0x328e('0x9'));module[_0x328e('0xa')]=function(_0x439182,_0x5e5bcf){return _0x439182['define']('WhatsappApplication',attributes,{'tableName':_0x328e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x328e('0xc'),'collate':_0x328e('0xd')});};
\ No newline at end of file
+var _0xe64a=['util','../../config/logger','api','moment','bluebird','request-promise','path','define','WhatsappApplication','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','lodash'];(function(_0x4fca8e,_0x4c2162){var _0x23f51d=function(_0x4e42ae){while(--_0x4e42ae){_0x4fca8e['push'](_0x4fca8e['shift']());}};_0x23f51d(++_0x4c2162);}(_0xe64a,0x1e0));var _0xae64=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe64a[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xae64('0x0'));var util=require(_0xae64('0x1'));var logger=require(_0xae64('0x2'))(_0xae64('0x3'));var moment=require(_0xae64('0x4'));var BPromise=require(_0xae64('0x5'));var rp=require(_0xae64('0x6'));var fs=require('fs');var path=require(_0xae64('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./whatsappApplication.attributes');module['exports']=function(_0x2b1046,_0x896007){return _0x2b1046[_0xae64('0x8')](_0xae64('0x9'),attributes,{'tableName':_0xae64('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xae64('0xb'),'collate':_0xae64('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24ca=['request\x20sent','debug','WhatsappApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','WhatsappApplication,\x20%s,\x20%s'];(function(_0x32717e,_0x2db7c2){var _0x4f182=function(_0x283a3f){while(--_0x283a3f){_0x32717e['push'](_0x32717e['shift']());}};_0x4f182(++_0x2db7c2);}(_0x24ca,0x1bc));var _0xa24c=function(_0x10291b,_0x518773){_0x10291b=_0x10291b-0x0;var _0x1d5fbe=_0x24ca[_0x10291b];return _0x1d5fbe;};'use strict';var _=require(_0xa24c('0x0'));var util=require('util');var moment=require(_0xa24c('0x1'));var BPromise=require(_0xa24c('0x2'));var rs=require(_0xa24c('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa24c('0x4'))['db'];var utils=require(_0xa24c('0x5'));var logger=require(_0xa24c('0x6'))(_0xa24c('0x7'));var config=require(_0xa24c('0x8'));var jayson=require(_0xa24c('0x9'));var client=jayson[_0xa24c('0xa')][_0xa24c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2dd348,_0x257264,_0x9a5013){return new BPromise(function(_0x481196,_0x42d89c){return client[_0xa24c('0xc')](_0x2dd348,_0x9a5013)[_0xa24c('0xd')](function(_0x5eac78){logger[_0xa24c('0xe')](_0xa24c('0xf'),_0x257264,_0xa24c('0x10'));logger[_0xa24c('0x11')](_0xa24c('0x12'),_0x257264,_0xa24c('0x10'),JSON[_0xa24c('0x13')](_0x5eac78));if(_0x5eac78[_0xa24c('0x14')]){if(_0x5eac78[_0xa24c('0x14')]['code']===0x1f4){logger[_0xa24c('0x14')](_0xa24c('0xf'),_0x257264,_0x5eac78[_0xa24c('0x14')][_0xa24c('0x15')]);return _0x42d89c(_0x5eac78['error'][_0xa24c('0x15')]);}logger[_0xa24c('0x14')](_0xa24c('0xf'),_0x257264,_0x5eac78[_0xa24c('0x14')][_0xa24c('0x15')]);return _0x481196(_0x5eac78[_0xa24c('0x14')][_0xa24c('0x15')]);}else{logger['info']('WhatsappApplication,\x20%s,\x20%s',_0x257264,_0xa24c('0x10'));_0x481196(_0x5eac78[_0xa24c('0x16')]['message']);}})['catch'](function(_0x221d21){logger[_0xa24c('0x14')]('WhatsappApplication,\x20%s,\x20%s',_0x257264,_0x221d21);_0x42d89c(_0x221d21);});});}
\ No newline at end of file
+var _0x0e85=['bluebird','randomstring','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','WhatsappApplication,\x20%s,\x20%s','request\x20sent','debug','WhatsappApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util'];(function(_0x9e18e9,_0x2dc272){var _0x1051b0=function(_0x3557d9){while(--_0x3557d9){_0x9e18e9['push'](_0x9e18e9['shift']());}};_0x1051b0(++_0x2dc272);}(_0x0e85,0x7c));var _0x50e8=function(_0x411017,_0x4a8117){_0x411017=_0x411017-0x0;var _0x2adeea=_0x0e85[_0x411017];return _0x2adeea;};'use strict';var _=require(_0x50e8('0x0'));var util=require(_0x50e8('0x1'));var moment=require('moment');var BPromise=require(_0x50e8('0x2'));var rs=require(_0x50e8('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x50e8('0x4'))('rpc');var config=require(_0x50e8('0x5'));var jayson=require(_0x50e8('0x6'));var client=jayson[_0x50e8('0x7')][_0x50e8('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5e8b01,_0x3ce904,_0x108edc){return new BPromise(function(_0x42665e,_0x988da0){return client[_0x50e8('0x9')](_0x5e8b01,_0x108edc)[_0x50e8('0xa')](function(_0x5825f5){logger[_0x50e8('0xb')](_0x50e8('0xc'),_0x3ce904,_0x50e8('0xd'));logger[_0x50e8('0xe')](_0x50e8('0xf'),_0x3ce904,_0x50e8('0xd'),JSON[_0x50e8('0x10')](_0x5825f5));if(_0x5825f5[_0x50e8('0x11')]){if(_0x5825f5['error']['code']===0x1f4){logger[_0x50e8('0x11')](_0x50e8('0xc'),_0x3ce904,_0x5825f5['error']['message']);return _0x988da0(_0x5825f5[_0x50e8('0x11')][_0x50e8('0x12')]);}logger[_0x50e8('0x11')](_0x50e8('0xc'),_0x3ce904,_0x5825f5['error'][_0x50e8('0x12')]);return _0x42665e(_0x5825f5[_0x50e8('0x11')][_0x50e8('0x12')]);}else{logger['info']('WhatsappApplication,\x20%s,\x20%s',_0x3ce904,_0x50e8('0xd'));_0x42665e(_0x5825f5[_0x50e8('0x13')][_0x50e8('0x12')]);}})[_0x50e8('0x14')](function(_0x211731){logger[_0x50e8('0x11')]('WhatsappApplication,\x20%s,\x20%s',_0x3ce904,_0x211731);_0x988da0(_0x211731);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7da7=['util','path','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','describe','/:id','/:id/messages','/:id/download','download','create','post','addMessage','tracked','whatsapp','whatsappinteraction:addtags','put','whatsappinteraction:update','whatsappinteraction:destroy','destroy','delete','/:id/tags','removeTags','multer'];(function(_0xaf25ae,_0x2001c1){var _0x49732d=function(_0x5b764d){while(--_0x5b764d){_0xaf25ae['push'](_0xaf25ae['shift']());}};_0x49732d(++_0x2001c1);}(_0x7da7,0x10d));var _0x77da=function(_0x301c34,_0x15701e){_0x301c34=_0x301c34-0x0;var _0x1a8c5a=_0x7da7[_0x301c34];return _0x1a8c5a;};'use strict';var multer=require(_0x77da('0x0'));var util=require(_0x77da('0x1'));var path=require(_0x77da('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x77da('0x3')]();var fs_extra=require(_0x77da('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x77da('0x5'));var config=require(_0x77da('0x6'));var controller=require('./whatsappInteraction.controller');router[_0x77da('0x7')]('/',auth[_0x77da('0x8')](),controller['index']);router[_0x77da('0x7')]('/describe',auth[_0x77da('0x8')](),controller[_0x77da('0x9')]);router[_0x77da('0x7')](_0x77da('0xa'),auth[_0x77da('0x8')](),controller['show']);router[_0x77da('0x7')](_0x77da('0xb'),auth[_0x77da('0x8')](),controller['getMessages']);router[_0x77da('0x7')](_0x77da('0xc'),auth[_0x77da('0x8')](),controller[_0x77da('0xd')]);router['post']('/',auth[_0x77da('0x8')](),controller[_0x77da('0xe')]);router[_0x77da('0xf')]('/:id/messages',auth['isAuthenticated'](),controller[_0x77da('0x10')]);router[_0x77da('0xf')]('/:id/tags',auth[_0x77da('0x8')](),interaction[_0x77da('0x11')](_0x77da('0x12'),_0x77da('0x13')),controller['addTags']);router[_0x77da('0x14')]('/:id',auth[_0x77da('0x8')](),interaction[_0x77da('0x11')](_0x77da('0x12'),_0x77da('0x15')),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),interaction[_0x77da('0x11')](_0x77da('0x12'),_0x77da('0x16')),controller[_0x77da('0x17')]);router[_0x77da('0x18')](_0x77da('0x19'),auth[_0x77da('0x8')](),controller[_0x77da('0x1a')]);module['exports']=router;
\ No newline at end of file
+var _0x86f4=['get','isAuthenticated','index','/describe','/:id','show','/:id/messages','getMessages','/:id/download','download','post','create','addMessage','/:id/tags','tracked','addTags','put','whatsapp','delete','destroy','removeTags','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x2c5fe4,_0x2ae8e5){var _0x20a6cf=function(_0x55e50f){while(--_0x55e50f){_0x2c5fe4['push'](_0x2c5fe4['shift']());}};_0x20a6cf(++_0x2ae8e5);}(_0x86f4,0x18a));var _0x486f=function(_0x13bf7a,_0x11a14a){_0x13bf7a=_0x13bf7a-0x0;var _0x4caf9b=_0x86f4[_0x13bf7a];return _0x4caf9b;};'use strict';var multer=require(_0x486f('0x0'));var util=require(_0x486f('0x1'));var path=require(_0x486f('0x2'));var timeout=require(_0x486f('0x3'));var express=require(_0x486f('0x4'));var router=express[_0x486f('0x5')]();var fs_extra=require(_0x486f('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x486f('0x7'));var config=require(_0x486f('0x8'));var controller=require('./whatsappInteraction.controller');router[_0x486f('0x9')]('/',auth[_0x486f('0xa')](),controller[_0x486f('0xb')]);router[_0x486f('0x9')](_0x486f('0xc'),auth[_0x486f('0xa')](),controller['describe']);router[_0x486f('0x9')](_0x486f('0xd'),auth[_0x486f('0xa')](),controller[_0x486f('0xe')]);router[_0x486f('0x9')](_0x486f('0xf'),auth[_0x486f('0xa')](),controller[_0x486f('0x10')]);router[_0x486f('0x9')](_0x486f('0x11'),auth[_0x486f('0xa')](),controller[_0x486f('0x12')]);router[_0x486f('0x13')]('/',auth[_0x486f('0xa')](),controller[_0x486f('0x14')]);router[_0x486f('0x13')](_0x486f('0xf'),auth['isAuthenticated'](),controller[_0x486f('0x15')]);router['post'](_0x486f('0x16'),auth[_0x486f('0xa')](),interaction[_0x486f('0x17')]('whatsapp','whatsappinteraction:addtags'),controller[_0x486f('0x18')]);router[_0x486f('0x19')]('/:id',auth[_0x486f('0xa')](),interaction[_0x486f('0x17')](_0x486f('0x1a'),'whatsappinteraction:update'),controller['update']);router[_0x486f('0x1b')](_0x486f('0xd'),auth[_0x486f('0xa')](),interaction[_0x486f('0x17')]('whatsapp','whatsappinteraction:destroy'),controller[_0x486f('0x1c')]);router[_0x486f('0x1b')](_0x486f('0x16'),auth[_0x486f('0xa')](),controller[_0x486f('0x1d')]);module[_0x486f('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2494=['DATE','STRING','out','ENUM','sequelize','exports','BOOLEAN'];(function(_0x2b010e,_0x3dddb7){var _0x47cdb5=function(_0x1f3c64){while(--_0x1f3c64){_0x2b010e['push'](_0x2b010e['shift']());}};_0x47cdb5(++_0x3dddb7);}(_0x2494,0x82));var _0x4249=function(_0x52c831,_0x5e8f5b){_0x52c831=_0x52c831-0x0;var _0x426682=_0x2494[_0x52c831];return _0x426682;};'use strict';var Sequelize=require(_0x4249('0x0'));var moment=require('moment');module[_0x4249('0x1')]={'closed':{'type':Sequelize[_0x4249('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x4249('0x3')]},'disposition':{'type':Sequelize[_0x4249('0x4')]},'secondDisposition':{'type':Sequelize[_0x4249('0x4')]},'thirdDisposition':{'type':Sequelize[_0x4249('0x4')]},'note':{'type':Sequelize['STRING']},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x4249('0x3')]},'firstMsgDirection':{'type':Sequelize['ENUM']('in',_0x4249('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x4249('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x4249('0x6')]('in','out'),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x4249('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0xea31=['ENUM','out','sequelize','exports','BOOLEAN','DATE','STRING'];(function(_0x52e566,_0x271d09){var _0x3709a0=function(_0x17b662){while(--_0x17b662){_0x52e566['push'](_0x52e566['shift']());}};_0x3709a0(++_0x271d09);}(_0xea31,0x6b));var _0x1ea3=function(_0x12686c,_0x4a58db){_0x12686c=_0x12686c-0x0;var _0x4a72b7=_0xea31[_0x12686c];return _0x4a72b7;};'use strict';var Sequelize=require(_0x1ea3('0x0'));var moment=require('moment');module[_0x1ea3('0x1')]={'closed':{'type':Sequelize[_0x1ea3('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x1ea3('0x3')]},'disposition':{'type':Sequelize[_0x1ea3('0x4')]},'secondDisposition':{'type':Sequelize[_0x1ea3('0x4')]},'thirdDisposition':{'type':Sequelize[_0x1ea3('0x4')]},'note':{'type':Sequelize[_0x1ea3('0x4')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x1ea3('0x3')]},'firstMsgDirection':{'type':Sequelize[_0x1ea3('0x5')]('in',_0x1ea3('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x1ea3('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x1ea3('0x5')]('in','out'),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x1ea3('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb647=['jsforce','desk.js','papaparse','../../components/auth/service','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./whatsappInteraction.socket','register','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','error','name','send','Users','fullname','TagIds','forEach','Tags','catch','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','select','field','from','tools_tags','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','users','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','o.id\x20=\x20i.UserId','whatsapp_accounts','a.id\x20=\x20i.WhatsappAccountId','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','it.WhatsappInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','having','`\x20>\x200','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','end','Tag','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','isEmpty','concat','createdAt','parse','$gte','$lte','null','\x20IS\x20NULL','`unreadMessages`\x20>\x200','isArray','tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','SELECT','order','contactName','DESC','t.id\x20IN\x20?','WhatsappAccountId','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','agent','user','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','i.WhatsappAccountId\x20IN\x20?','role','sequelize','toString','merge','WhatsappInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','c.firstName','Contact.firstName','c.lastName','c.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','groupBy','WhatsappInteractionId','push','all','rows','show','params','keys','include','options','create','addMessage','WhatsappMessage','ids','omit','getMessages','findOne','split','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','spread','color','whatsappInteractionTags:save','removeTags','download','unix','root','server','files','tmp','join','attachments','CmContact','lastName','Attachment','Messages','direction','secret','WhatsappAccount','Owner','get','closed','closedAt','disposition','existsSync','pipe','createWriteStream','basename','out','Contact','firstName','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb647,0xdb));var _0x7b64=function(_0x499b16,_0x46ba40){_0x499b16=_0x499b16-0x0;var _0x2e3d73=_0xb647[_0x499b16];return _0x2e3d73;};'use strict';var emlformat=require(_0x7b64('0x0'));var rimraf=require(_0x7b64('0x1'));var zipdir=require(_0x7b64('0x2'));var jsonpatch=require(_0x7b64('0x3'));var rp=require(_0x7b64('0x4'));var moment=require(_0x7b64('0x5'));var BPromise=require(_0x7b64('0x6'));var Mustache=require(_0x7b64('0x7'));var util=require('util');var path=require(_0x7b64('0x8'));var sox=require('sox');var csv=require(_0x7b64('0x9'));var ejs=require(_0x7b64('0xa'));var fs=require('fs');var fs_extra=require(_0x7b64('0xb'));var _=require(_0x7b64('0xc'));var squel=require(_0x7b64('0xd'));var crypto=require(_0x7b64('0xe'));var jsforce=require(_0x7b64('0xf'));var deskjs=require(_0x7b64('0x10'));var toCsv=require(_0x7b64('0x9'));var querystring=require('querystring');var Papa=require(_0x7b64('0x11'));var Redis=require('ioredis');var authService=require(_0x7b64('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x7b64('0x13'));var hardwareService=require(_0x7b64('0x14'));var logger=require('../../config/logger')(_0x7b64('0x15'));var utils=require(_0x7b64('0x16'));var config=require(_0x7b64('0x17'));var licenseUtil=require(_0x7b64('0x18'));var db=require(_0x7b64('0x19'))['db'];config[_0x7b64('0x1a')]=_[_0x7b64('0x1b')](config['redis'],{'host':_0x7b64('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x7b64('0x1d'))[_0x7b64('0x1e')](socket);function respondWithStatusCode(_0x1d256d,_0x10ce62){_0x10ce62=_0x10ce62||0xcc;return function(_0x33ebe7){if(_0x33ebe7){return _0x1d256d[_0x7b64('0x1f')](_0x10ce62);}return _0x1d256d[_0x7b64('0x20')](_0x10ce62)['end']();};}function respondWithResult(_0xca026a,_0x40066b){_0x40066b=_0x40066b||0xc8;return function(_0x16ff72){if(_0x16ff72){return _0xca026a[_0x7b64('0x20')](_0x40066b)[_0x7b64('0x21')](_0x16ff72);}};}function respondWithFilteredResult(_0x4aa38d,_0x3935c3){return function(_0x1a248a){if(_0x1a248a){var _0x58517e=typeof _0x3935c3[_0x7b64('0x22')]===_0x7b64('0x23')&&typeof _0x3935c3['limit']===_0x7b64('0x23');var _0x1c5986=_0x1a248a[_0x7b64('0x24')];var _0x404cd2=_0x58517e?0x0:_0x3935c3['offset'];var _0x123a3b=_0x58517e?_0x1a248a[_0x7b64('0x24')]:_0x3935c3['offset']+_0x3935c3[_0x7b64('0x25')];var _0x509719;if(_0x123a3b>=_0x1c5986){_0x123a3b=_0x1c5986;_0x509719=0xc8;}else{_0x509719=0xce;}_0x4aa38d[_0x7b64('0x20')](_0x509719);return _0x4aa38d['set'](_0x7b64('0x26'),_0x404cd2+'-'+_0x123a3b+'/'+_0x1c5986)[_0x7b64('0x21')](_0x1a248a);}return null;};}function patchUpdates(_0x2b8350){return function(_0x379e90){try{jsonpatch[_0x7b64('0x27')](_0x379e90,_0x2b8350,!![]);}catch(_0x3c0d97){return BPromise[_0x7b64('0x28')](_0x3c0d97);}return _0x379e90[_0x7b64('0x29')]();};}function saveUpdates(_0x17e7f1,_0x78a6d1){return function(_0xec557c){if(_0xec557c){return _0xec557c[_0x7b64('0x2a')](_0x17e7f1)[_0x7b64('0x2b')](function(_0x42efa1){return _0x42efa1;});}return null;};}function removeEntity(_0x50d06c,_0xc61df8){return function(_0x5d9586){if(_0x5d9586){return _0x5d9586[_0x7b64('0x2c')]()[_0x7b64('0x2b')](function(){_0x50d06c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x38738c,_0x1e1ba7){return function(_0x1a8d6b){if(!_0x1a8d6b){_0x38738c[_0x7b64('0x1f')](0x194);}return _0x1a8d6b;};}function handleError(_0x43db8b,_0x3c9fad){_0x3c9fad=_0x3c9fad||0x1f4;return function(_0x6740b2){logger[_0x7b64('0x2d')](_0x6740b2['stack']);if(_0x6740b2[_0x7b64('0x2e')]){delete _0x6740b2[_0x7b64('0x2e')];}_0x43db8b['status'](_0x3c9fad)[_0x7b64('0x2f')](_0x6740b2);};}function getInteractionUsers(_0x2bcefa,_0x369402){return new BPromise(function(_0x23be27,_0x144327){try{if(_0x369402[_0x2bcefa['id']]){_0x2bcefa[_0x7b64('0x30')]=_['map'](_0x369402[_0x2bcefa['id']],function(_0x5bf639){return{'id':_0x5bf639['id'],'fullname':_0x5bf639[_0x7b64('0x31')]};});}}catch(_0x3fb4a8){_0x144327(_0x3fb4a8);}_0x23be27(_0x2bcefa);});}function getInteractionTags(_0x49e402,_0x508c6d){return new BPromise(function(_0x345664,_0x4914d5){try{if(_0x49e402[_0x7b64('0x32')]){_0x49e402['Tags']=[];_0x49e402['TagIds']['split'](',')[_0x7b64('0x33')](function(_0x20c30f){_0x49e402[_0x7b64('0x34')]['push'](_0x508c6d[_0x20c30f]);});}delete _0x49e402[_0x7b64('0x32')];}catch(_0x51cff5){_0x4914d5(_0x51cff5);}_0x345664(_0x49e402);});}function updateWhatsappInteraction(_0x2a74e4,_0x7e1083,_0x2afabd){return new BPromise(function(_0x29a777,_0x2ebe5f){return getInteractionUsers(_0x2a74e4,_0x2afabd)['then'](function(_0x24164a){return getInteractionTags(_0x24164a,_0x7e1083);})[_0x7b64('0x2b')](function(_0x2d0e9){_0x29a777(_0x2d0e9);})[_0x7b64('0x35')](function(_0x546b44){_0x2ebe5f(_0x546b44);});});}exports[_0x7b64('0x36')]=function(_0x4578ed,_0x262cb4){var _0x1c02bc={},_0x5d0864={},_0x27e008={'count':0x0,'rows':[]};var _0x1c0be6=_['map'](db['WhatsappInteraction'][_0x7b64('0x37')],function(_0x46f9ce){return{'name':_0x46f9ce[_0x7b64('0x38')],'type':_0x46f9ce[_0x7b64('0x39')][_0x7b64('0x3a')]};});_0x5d0864[_0x7b64('0x3b')]=_[_0x7b64('0x3c')](_0x1c0be6,_0x7b64('0x2e'));_0x5d0864[_0x7b64('0x3d')]=_['keys'](_0x4578ed[_0x7b64('0x3d')]);_0x5d0864[_0x7b64('0x3e')]=_[_0x7b64('0x3f')](_0x5d0864[_0x7b64('0x3b')],_0x5d0864[_0x7b64('0x3d')]);_0x1c02bc[_0x7b64('0x40')]=_[_0x7b64('0x3f')](_0x5d0864[_0x7b64('0x3b')],qs[_0x7b64('0x41')](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x41')]));_0x1c02bc[_0x7b64('0x40')]=_0x1c02bc[_0x7b64('0x40')][_0x7b64('0x42')]?_0x1c02bc[_0x7b64('0x40')]:_0x5d0864[_0x7b64('0x3b')];if(!_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x43')](_0x7b64('0x44'))){_0x1c02bc[_0x7b64('0x25')]=qs['limit'](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x25')]);_0x1c02bc[_0x7b64('0x22')]=qs['offset'](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x22')]);}_0x1c02bc['order']=qs[_0x7b64('0x45')](_0x4578ed[_0x7b64('0x3d')]['sort']);_0x1c02bc[_0x7b64('0x46')]=qs['filters'](_[_0x7b64('0x47')](_0x4578ed[_0x7b64('0x3d')],_0x5d0864[_0x7b64('0x3e')]),_0x1c0be6);var _0x488ee6=[];var _0x3147d5=squel[_0x7b64('0x48')]()[_0x7b64('0x49')]('id')[_0x7b64('0x49')](_0x7b64('0x2e'))[_0x7b64('0x49')]('color')[_0x7b64('0x4a')](_0x7b64('0x4b'));var _0x1129cf=squel[_0x7b64('0x48')]()[_0x7b64('0x49')]('u.id')['field']('u.fullname')['field'](_0x7b64('0x4c'))[_0x7b64('0x4a')](_0x7b64('0x4d'),'ui')[_0x7b64('0x4e')](_0x7b64('0x4f'),'u',_0x7b64('0x50'));var _0x3c32d0=squel[_0x7b64('0x48')]()[_0x7b64('0x4a')](_0x7b64('0x51'),'i')[_0x7b64('0x4e')](_0x7b64('0x52'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0x7b64('0x4f'),'o',_0x7b64('0x53'))[_0x7b64('0x4e')](_0x7b64('0x54'),'a',_0x7b64('0x55'))['left_join'](_0x7b64('0x56'),'me',_0x7b64('0x57'))[_0x7b64('0x4e')]('whatsapp_interaction_has_tags','it',_0x7b64('0x58'))[_0x7b64('0x4e')](_0x7b64('0x4b'),'t',_0x7b64('0x59'));var _0x18c5b0=squel['expr']();var _0x439955=[];var _0x38d907=squel['expr']();var _0x3656b8;if(_0x4578ed[_0x7b64('0x3d')]['search']){_0x3656b8=as[_0x7b64('0x5a')](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x5b')]);var _0x30bf26=_0x3656b8[_0x7b64('0x5c')];for(var _0x79cbc9=0x0;_0x79cbc9<_0x3656b8[_0x7b64('0x5d')][_0x7b64('0x42')];_0x79cbc9++){var _0x360a47=_0x3656b8[_0x7b64('0x5d')][_0x79cbc9];var _0xa7550a='i';var _0x1dfd23=_[_0x7b64('0x5e')](_0x1c0be6,[_0x7b64('0x2e'),_0x360a47[_0x7b64('0x49')]]);if(!_0x1dfd23){switch(_0x360a47[_0x7b64('0x49')]){case _0x7b64('0x5f'):if(_0x360a47[_0x7b64('0x60')]==0x1){_0x3c32d0['having']('`'+_0x360a47[_0x7b64('0x49')]+'`\x20=\x200');}else{_0x3c32d0[_0x7b64('0x61')]('`'+_0x360a47[_0x7b64('0x49')]+_0x7b64('0x62'));}break;case'Contact':if(_0x360a47['operator']===_0x7b64('0x63')){if(_0x360a47['value']['split']('\x20')[_0x7b64('0x42')]>0x1){_0x18c5b0[_0x30bf26](_0x7b64('0x64'),qs[_0x7b64('0x65')](_0x360a47['value']),null);}else{var _0x1fd98a='%'+_0x360a47[_0x7b64('0x60')]+'%';_0x18c5b0[_0x30bf26](_0x7b64('0x66'),_0x1fd98a,_0x1fd98a,_0x1fd98a);}}else{_0x1dfd23=_[_0x7b64('0x5e')](_0x1c0be6,[_0x7b64('0x2e'),'ContactId']);_0x360a47['field']=_0x7b64('0x67');_0x117d52=as[_0x7b64('0x68')](_0xa7550a,_0x1dfd23[_0x7b64('0x39')],_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52[_0x7b64('0x69')],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6a')],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6b')]);}break;case _0x7b64('0x6c'):var _0x4999c3=_0x360a47[_0x7b64('0x60')]['split'](',')[_0x7b64('0x3c')](function(_0x508272){return Number(_0x508272);});_0x4999c3['forEach'](function(_0x56ca4b){_0x38d907['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x56ca4b+',%');});_0x439955=_[_0x7b64('0x6d')](_0x439955,_0x4999c3);break;case _0x7b64('0x6e'):if(_0x360a47['operator']===_0x7b64('0x63')){_0x18c5b0[_0x30bf26](_0x7b64('0x6f'),'%'+_0x360a47[_0x7b64('0x60')]+'%',null);}else{_0x1dfd23=_['find'](_0x1c0be6,[_0x7b64('0x2e'),_0x7b64('0x70')]);_0x360a47['field']='UserId';_0x117d52=as[_0x7b64('0x68')](_0xa7550a,_0x1dfd23['type'],_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52['text'],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6a')],_0x117d52['value']['end']);}break;case _0x7b64('0x71'):_0x117d52=as[_0x7b64('0x68')]('me',null,_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52['text'],_0x117d52[_0x7b64('0x60')]['start'],_0x117d52[_0x7b64('0x60')]['end']);break;}}else{var _0x117d52=as[_0x7b64('0x68')](_0xa7550a,_0x1dfd23[_0x7b64('0x39')],_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52[_0x7b64('0x69')],_0x117d52[_0x7b64('0x60')]['start'],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6b')]);}}}else{var _0x93f8d=_(_0x4578ed[_0x7b64('0x3d')])['keys']()[_0x7b64('0x3c')](function(_0x323c06){return _[_0x7b64('0x72')](_0x1c0be6,['name',_0x323c06])?_0x323c06:undefined;})[_0x7b64('0x73')]()['value']();if(!_[_0x7b64('0x74')](_0x93f8d)){_0x93f8d[_0x7b64('0x33')](function(_0x56bcc0){if(_0x56bcc0==='WhatsappAccountId'){_0x3c32d0[_0x7b64('0x46')]('i.WhatsappAccountId\x20IN\x20?',[][_0x7b64('0x75')](_0x4578ed[_0x7b64('0x3d')][_0x56bcc0]));}else if(_0x56bcc0===_0x7b64('0x76')){var _0x2f647e=JSON[_0x7b64('0x77')](_0x4578ed[_0x7b64('0x3d')][_0x56bcc0])[_0x7b64('0x78')];var _0x231c1b=JSON['parse'](_0x4578ed[_0x7b64('0x3d')][_0x56bcc0])[_0x7b64('0x79')];_0x3c32d0['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2f647e,_0x231c1b);}else{if(_0x4578ed[_0x7b64('0x3d')][_0x56bcc0]===_0x7b64('0x7a')){_0x3c32d0['where']('i.'+_0x56bcc0+_0x7b64('0x7b'));}else{_0x3c32d0[_0x7b64('0x46')]('i.'+_0x56bcc0+'\x20=\x20?',_0x4578ed[_0x7b64('0x3d')][_0x56bcc0]);}}});}if(_0x4578ed[_0x7b64('0x3d')]['read']){if(_0x4578ed['query']['read']==0x1){_0x3c32d0[_0x7b64('0x61')]('`unreadMessages`\x20=\x200');}else{_0x3c32d0[_0x7b64('0x61')](_0x7b64('0x7c'));}}if(_0x4578ed[_0x7b64('0x3d')]['tag']){_0x439955=_[_0x7b64('0x7d')](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x7e')])?_0x4578ed['query']['tag']:new Array(_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x7e')]);_0x439955['forEach'](function(_0x162e69){_0x38d907['or'](_0x7b64('0x7f'),'%,'+_0x162e69+',%');});}if(_0x4578ed['query'][_0x7b64('0x80')]){var _0x2e92a5=_0x4578ed['query'][_0x7b64('0x80')][_0x7b64('0x81')]('\x5c','\x5c\x5c')[_0x7b64('0x81')](/'/g,'\x27\x27');if(qs[_0x7b64('0x82')](_0x2e92a5)){_0x18c5b0['or'](_0x7b64('0x83'),_0x2e92a5+'%')['or'](_0x7b64('0x84'),_0x2e92a5+'%');}else{_0x18c5b0['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x2e92a5))['or'](_0x7b64('0x85'),_0x2e92a5+'%');}}}_0x3c32d0[_0x7b64('0x46')](_0x18c5b0);_0x3c32d0['group'](_0x7b64('0x86'));var _0x13e09a={'type':db[_0x7b64('0x87')]['QueryTypes'][_0x7b64('0x88')],'raw':!![]};var _0x4223ab=_0x3c32d0['clone']();_0x4223ab[_0x7b64('0x49')]('i.id');_0x4223ab[_0x7b64('0x49')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x7b64('0x5f'));if(_0x1c02bc[_0x7b64('0x89')]){_0x1c02bc['order'][_0x7b64('0x33')](function(_0x59ccc8){var _0x1bfacf=_0x59ccc8[0x0]===_0x7b64('0x8a')?_0x59ccc8[0x0]:'i.'+_0x59ccc8[0x0];_0x3c32d0['order'](_0x1bfacf,_0x59ccc8[0x1]===_0x7b64('0x8b')?![]:!![]);});}if(!_[_0x7b64('0x74')](_0x439955)){_0x3c32d0[_0x7b64('0x61')](_0x38d907);_0x4223ab['where'](_0x7b64('0x8c'),_0x439955);}BPromise['resolve']()['then'](function(){if(!_0x3656b8){if(_0x4578ed['query'][_0x7b64('0x8d')])return;_0x4223ab[_0x7b64('0x46')](_0x7b64('0x8e'));_0x3c32d0[_0x7b64('0x46')](_0x7b64('0x8e'));return;}if(_0x4578ed['user']['role']!==_0x7b64('0x8f'))return;return _0x4578ed[_0x7b64('0x90')][_0x7b64('0x91')]({'attributes':['id'],'raw':!![]})[_0x7b64('0x2b')](function(_0x45d18e){if(_['isEmpty'](_0x45d18e)){_0x4223ab[_0x7b64('0x46')]('i.WhatsappAccountId\x20IS\x20NULL');_0x3c32d0[_0x7b64('0x46')](_0x7b64('0x92'));}else{_0x4223ab[_0x7b64('0x46')]('i.WhatsappAccountId\x20IN\x20?',_[_0x7b64('0x3c')](_0x45d18e,'id'));_0x3c32d0['where'](_0x7b64('0x93'),_[_0x7b64('0x3c')](_0x45d18e,'id'));}});})['then'](function(){if(_0x4578ed[_0x7b64('0x90')][_0x7b64('0x94')]===_0x7b64('0x8f')&&!_0x3656b8&&!_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x8d')])return[];return db[_0x7b64('0x95')][_0x7b64('0x3d')](_0x4223ab['toString'](),_0x13e09a);})[_0x7b64('0x2b')](function(_0x5d75ae){_0x27e008[_0x7b64('0x24')]=_0x5d75ae[_0x7b64('0x42')];if(_0x27e008[_0x7b64('0x24')]===0x0)return[];return db[_0x7b64('0x95')][_0x7b64('0x3d')](_0x3147d5[_0x7b64('0x96')](),_0x13e09a)[_0x7b64('0x2b')](function(_0x4cd35c){_0x488ee6=_['keyBy'](_0x4cd35c,'id');_0x13e09a=_[_0x7b64('0x97')](_0x13e09a,{'model':db[_0x7b64('0x98')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x41')]){_0x1c02bc[_0x7b64('0x40')][_0x7b64('0x33')](function(_0x3a9620){_0x3c32d0[_0x7b64('0x49')]('i.'+_0x3a9620);});}else{_0x3c32d0[_0x7b64('0x49')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x7b64('0x5f'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0x99'),_0x7b64('0x9a'));_0x3c32d0['field'](_0x7b64('0x9b'),_0x7b64('0x9c'));_0x3c32d0[_0x7b64('0x49')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0x7b64('0x8a'));_0x3c32d0[_0x7b64('0x49')]('i.*');_0x3c32d0[_0x7b64('0x49')](_0x7b64('0x9d'),_0x7b64('0x9e'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0x9f'),'Contact.lastName');_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa0'),'Contact.email');_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa1'),_0x7b64('0xa2'));_0x3c32d0[_0x7b64('0x49')]('c.mobile',_0x7b64('0xa3'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa4'),_0x7b64('0xa5'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa6'),_0x7b64('0xa7'));_0x3c32d0[_0x7b64('0x49')]('o.internal',_0x7b64('0xa8'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa9'),_0x7b64('0x32'));}if(_0x1c02bc['limit'])_0x3c32d0[_0x7b64('0x25')](_0x1c02bc['limit']);if(_0x1c02bc[_0x7b64('0x22')])_0x3c32d0[_0x7b64('0x22')](_0x1c02bc[_0x7b64('0x22')]);return db['sequelize']['query'](_0x3c32d0[_0x7b64('0x96')](),_0x13e09a);})[_0x7b64('0x2b')](function(_0x1ff303){if(_0x1ff303[_0x7b64('0x42')]>0x0)_0x1129cf[_0x7b64('0x46')](_0x7b64('0xaa'),_['map'](_0x1ff303,'id'));return db[_0x7b64('0x95')]['query'](_0x1129cf[_0x7b64('0x96')](),_0x13e09a)['then'](function(_0x1174c1){var _0x37420b=_[_0x7b64('0xab')](_0x1174c1,_0x7b64('0xac'));var _0x5d09af=[];_0x1ff303[_0x7b64('0x33')](function(_0xb7bfbb){_0x5d09af[_0x7b64('0xad')](updateWhatsappInteraction(_0xb7bfbb,_0x488ee6,_0x37420b));});return BPromise[_0x7b64('0xae')](_0x5d09af);});});})[_0x7b64('0x2b')](function(_0x3b446e){_0x27e008[_0x7b64('0xaf')]=_0x3b446e;return _0x27e008;})[_0x7b64('0x2b')](respondWithFilteredResult(_0x262cb4,_0x1c02bc))[_0x7b64('0x35')](handleError(_0x262cb4,null));};exports[_0x7b64('0xb0')]=function(_0x1b7a46,_0x4d089c){var _0x1626b8={'raw':![],'where':{'id':_0x1b7a46[_0x7b64('0xb1')]['id']}},_0x98a85d={};_0x98a85d[_0x7b64('0x3b')]=_[_0x7b64('0xb2')](db[_0x7b64('0x98')][_0x7b64('0x37')]);_0x98a85d['query']=_[_0x7b64('0xb2')](_0x1b7a46[_0x7b64('0x3d')]);_0x98a85d[_0x7b64('0x3e')]=_[_0x7b64('0x3f')](_0x98a85d[_0x7b64('0x3b')],_0x98a85d[_0x7b64('0x3d')]);_0x1626b8['attributes']=_[_0x7b64('0x3f')](_0x98a85d[_0x7b64('0x3b')],qs[_0x7b64('0x41')](_0x1b7a46[_0x7b64('0x3d')][_0x7b64('0x41')]));_0x1626b8[_0x7b64('0x40')]=_0x1626b8[_0x7b64('0x40')]['length']?_0x1626b8[_0x7b64('0x40')]:_0x98a85d[_0x7b64('0x3b')];if(_0x1b7a46[_0x7b64('0x3d')]['includeAll']){_0x1626b8[_0x7b64('0xb3')]=[{'all':!![]}];}_0x1626b8=_[_0x7b64('0x97')]({},_0x1626b8,_0x1b7a46[_0x7b64('0xb4')]);return db[_0x7b64('0x98')][_0x7b64('0x5e')](_0x1626b8)[_0x7b64('0x2b')](handleEntityNotFound(_0x4d089c,null))[_0x7b64('0x2b')](respondWithResult(_0x4d089c,null))['catch'](handleError(_0x4d089c,null));};exports[_0x7b64('0xb5')]=function(_0x50dc2f,_0x31ef56){return db[_0x7b64('0x98')][_0x7b64('0xb5')](_0x50dc2f[_0x7b64('0x71')],{})[_0x7b64('0x2b')](respondWithResult(_0x31ef56,0xc9))[_0x7b64('0x35')](handleError(_0x31ef56,null));};exports[_0x7b64('0x2a')]=function(_0x54790a,_0x385691){if(_0x54790a['body']['id']){delete _0x54790a['body']['id'];}return db[_0x7b64('0x98')][_0x7b64('0x5e')]({'where':{'id':_0x54790a['params']['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x385691,null))[_0x7b64('0x2b')](saveUpdates(_0x54790a[_0x7b64('0x71')],null))[_0x7b64('0x2b')](respondWithResult(_0x385691,null))[_0x7b64('0x35')](handleError(_0x385691,null));};exports[_0x7b64('0x2c')]=function(_0x46c88c,_0x2b8547){return db[_0x7b64('0x98')]['find']({'where':{'id':_0x46c88c[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x2b8547,null))[_0x7b64('0x2b')](removeEntity(_0x2b8547,null))[_0x7b64('0x35')](handleError(_0x2b8547,null));};exports['describe']=function(_0x29632f,_0x5f49d4){return db['WhatsappInteraction']['describe']()[_0x7b64('0x2b')](respondWithResult(_0x5f49d4,null))[_0x7b64('0x35')](handleError(_0x5f49d4,null));};exports[_0x7b64('0xb6')]=function(_0x22ba0e,_0x9b6286,_0x53b8fb){return db[_0x7b64('0xb7')]['find']({'where':{'id':_0x22ba0e[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x9b6286,null))[_0x7b64('0x2b')](function(_0x5ba8c8){if(_0x5ba8c8){return _0x5ba8c8[_0x7b64('0xb6')](_0x22ba0e[_0x7b64('0x71')][_0x7b64('0xb8')],_[_0x7b64('0xb9')](_0x22ba0e[_0x7b64('0x71')],[_0x7b64('0xb8'),'id'])||{});}})[_0x7b64('0x2b')](respondWithResult(_0x9b6286,null))[_0x7b64('0x35')](handleError(_0x9b6286,null));};exports[_0x7b64('0xba')]=function(_0x5822da,_0x41e506,_0x1761a9){var _0xde9bbc={'raw':![],'where':{}};var _0x54a1a4={};var _0x4a1232={'count':0x0,'rows':[]};return db[_0x7b64('0x98')][_0x7b64('0xbb')]({'where':{'id':_0x5822da[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x41e506,null))[_0x7b64('0x2b')](function(_0x5d06ce){if(_0x5d06ce){_0x54a1a4[_0x7b64('0x3b')]=_[_0x7b64('0xb2')](db[_0x7b64('0xb7')]['rawAttributes']);_0x54a1a4[_0x7b64('0x3d')]=_[_0x7b64('0xb2')](_0x5822da[_0x7b64('0x3d')]);_0x54a1a4[_0x7b64('0x3e')]=_['intersection'](_0x54a1a4['model'],_0x54a1a4[_0x7b64('0x3d')]);_0xde9bbc[_0x7b64('0x40')]=_[_0x7b64('0x3f')](_0x54a1a4['model'],qs['fields'](_0x5822da[_0x7b64('0x3d')]['fields']));_0xde9bbc['attributes']=_0xde9bbc[_0x7b64('0x40')][_0x7b64('0x42')]?_0xde9bbc[_0x7b64('0x40')]:_0x54a1a4[_0x7b64('0x3b')];if(!_0x5822da[_0x7b64('0x3d')]['hasOwnProperty'](_0x7b64('0x44'))){_0xde9bbc[_0x7b64('0x25')]=qs[_0x7b64('0x25')](_0x5822da[_0x7b64('0x3d')][_0x7b64('0x25')]);_0xde9bbc['offset']=qs[_0x7b64('0x22')](_0x5822da[_0x7b64('0x3d')][_0x7b64('0x22')]);}_0xde9bbc[_0x7b64('0x89')]=qs[_0x7b64('0x45')](_0x5822da[_0x7b64('0x3d')][_0x7b64('0x45')]);_0xde9bbc[_0x7b64('0x46')]=qs[_0x7b64('0x3e')](_[_0x7b64('0x47')](_0x5822da[_0x7b64('0x3d')],_0x54a1a4[_0x7b64('0x3e')]));_0xde9bbc[_0x7b64('0x46')][_0x7b64('0xac')]=_0x5d06ce['id'];if(_0x5822da['query'][_0x7b64('0x80')]){_0xde9bbc[_0x7b64('0x46')]=_[_0x7b64('0x97')](_0xde9bbc[_0x7b64('0x46')],{'$or':_[_0x7b64('0x3c')](_0xde9bbc[_0x7b64('0x40')],function(_0x247fff){var _0x3ed315={};_0x3ed315[_0x247fff]={'$like':'%'+_0x5822da[_0x7b64('0x3d')][_0x7b64('0x80')]+'%'};return _0x3ed315;})});}if(_0x5822da[_0x7b64('0x3d')][_0x7b64('0x78')]){var _0x76a11a=_0x5822da[_0x7b64('0x3d')][_0x7b64('0x78')][_0x7b64('0xbc')](',');var _0x521e1b={};_0x521e1b[_0x76a11a[0x0]]={'$gte':moment(_0x76a11a[0x1])[_0x7b64('0xbd')](_0x7b64('0xbe'))};_0xde9bbc[_0x7b64('0x46')]=_['merge'](_0xde9bbc['where'],_0x521e1b);}_0xde9bbc=_[_0x7b64('0x97')]({},_0xde9bbc,_0x5822da[_0x7b64('0xb4')]);return db[_0x7b64('0xb7')][_0x7b64('0x24')]({'where':_0xde9bbc[_0x7b64('0x46')]})['then'](function(_0xb56cc3){_0x4a1232[_0x7b64('0x24')]=_0xb56cc3;if(_0x5822da[_0x7b64('0x3d')]['includeAll']){_0xde9bbc[_0x7b64('0xb3')]=[{'all':!![]}];}return db[_0x7b64('0xb7')][_0x7b64('0xbf')](_0xde9bbc);})[_0x7b64('0x2b')](function(_0x4f4fe8){_0x4a1232[_0x7b64('0xaf')]=_0x4f4fe8;return _0x4a1232;});}})[_0x7b64('0x2b')](respondWithFilteredResult(_0x41e506,_0xde9bbc))[_0x7b64('0x35')](handleError(_0x41e506,null));};exports[_0x7b64('0xc0')]=function(_0x438ea3,_0x11eab2,_0x162f0c){return db[_0x7b64('0x98')][_0x7b64('0x5e')]({'where':{'id':_0x438ea3[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x11eab2,null))[_0x7b64('0x2b')](function(_0x5700ac){if(_0x5700ac){return _0x5700ac[_0x7b64('0xc1')](_0x438ea3['body'][_0x7b64('0xb8')],_[_0x7b64('0xb9')](_0x438ea3['body'],[_0x7b64('0xb8'),'id'])||{})[_0x7b64('0xc2')](function(){return db[_0x7b64('0x6c')][_0x7b64('0xbf')]({'attributes':['id','name',_0x7b64('0xc3')],'where':{'id':_0x438ea3['body']['ids']}});})[_0x7b64('0x2b')](function(_0x187243){socket['emit'](_0x7b64('0xc4'),{'id':Number(_0x438ea3[_0x7b64('0xb1')]['id']),'tags':_0x187243||[]});return{'id':Number(_0x438ea3['params']['id']),'tags':_0x187243||[]};});}})['then'](respondWithResult(_0x11eab2,null))['catch'](handleError(_0x11eab2,null));};exports[_0x7b64('0xc5')]=function(_0x207450,_0x23b248,_0x2f83b6){return db['WhatsappInteraction'][_0x7b64('0x5e')]({'where':{'id':_0x207450['params']['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x23b248,null))['then'](function(_0x4c5860){if(_0x4c5860){return _0x4c5860['removeTags'](_0x207450[_0x7b64('0x3d')][_0x7b64('0xb8')]);}})[_0x7b64('0x2b')](respondWithStatusCode(_0x23b248,null))[_0x7b64('0x35')](handleError(_0x23b248,null));};exports[_0x7b64('0xc6')]=function(_0x22557c,_0x42a7e6){var _0x5ac4a2=moment()[_0x7b64('0xc7')]()[_0x7b64('0x96')]();var _0x147ef6=path['join'](config[_0x7b64('0xc8')],_0x7b64('0xc9'),_0x7b64('0xca'),_0x7b64('0xcb'));var _0x403c66=path[_0x7b64('0xcc')](config[_0x7b64('0xc8')],'server','files',_0x7b64('0xcd'));var _0x55b4f8=path[_0x7b64('0xcc')](_0x147ef6,_0x5ac4a2);var _0x177b96=util[_0x7b64('0xbd')]('transcript-%d-%s.zip',_0x22557c[_0x7b64('0xb1')]['id'],_0x5ac4a2);var _0x1b8e3d=path[_0x7b64('0xcc')](_0x147ef6,_0x177b96);var _0x549c99=[];_0x549c99['push']({'model':db['User'],'as':_0x7b64('0x6e'),'attributes':['id',_0x7b64('0x31')],'raw':!![]});_0x549c99[_0x7b64('0xad')]({'model':db[_0x7b64('0xce')],'as':'Contact','attributes':['id','firstName',_0x7b64('0xcf')],'raw':!![]});if(_0x22557c['query']['attachments']){_0x549c99[_0x7b64('0xad')]({'model':db[_0x7b64('0xd0')],'as':_0x7b64('0xd0'),'raw':!![]});}var _0x458ca3=[{'model':db[_0x7b64('0xb7')],'as':_0x7b64('0xd1'),'attributes':['id',_0x7b64('0x71'),_0x7b64('0x76'),_0x7b64('0xd2'),_0x7b64('0xd3'),'read'],'include':_0x549c99}];_0x458ca3['push']({'model':db[_0x7b64('0xd4')],'as':'Account','attributes':['id',_0x7b64('0x2e')]});_0x458ca3['push']({'model':db['User'],'as':_0x7b64('0xd5'),'attributes':['id','fullname']});return db[_0x7b64('0x98')]['find']({'where':{'id':_0x22557c[_0x7b64('0xb1')]['id']},'include':_0x458ca3})[_0x7b64('0x2b')](handleEntityNotFound(_0x42a7e6,null))[_0x7b64('0x2b')](function(_0xba7fc1){if(_0xba7fc1){var _0x5c2c0c=_0xba7fc1[_0x7b64('0xd6')]({'plain':!![]});fs['mkdirSync'](_0x55b4f8);var _0x36f183={'channel':'Whatsapp','account':_0x5c2c0c['Account'][_0x7b64('0x2e')],'agent':_0x5c2c0c['Owner']?_0x5c2c0c['Owner'][_0x7b64('0x31')]:'N.A.','createdAt':moment(_0x5c2c0c['createdAt'])[_0x7b64('0xbd')](_0x7b64('0xbe'))[_0x7b64('0x96')](),'closedAt':_0x5c2c0c[_0x7b64('0xd7')]?moment(_0x5c2c0c[_0x7b64('0xd8')])[_0x7b64('0xbd')](_0x7b64('0xbe'))[_0x7b64('0x96')]():'','disposition':_0x5c2c0c[_0x7b64('0xd9')],'messages':_(_0x5c2c0c['Messages'])[_0x7b64('0x80')]({'secret':![]})[_0x7b64('0x3c')](function(_0x51ecdb){if(_0x51ecdb[_0x7b64('0xd0')]){var _0x4dbfac=path[_0x7b64('0xcc')](_0x403c66,_0x51ecdb[_0x7b64('0xd0')]['basename']);if(fs[_0x7b64('0xda')](_0x4dbfac)){fs['createReadStream'](_0x4dbfac)[_0x7b64('0xdb')](fs[_0x7b64('0xdc')](path[_0x7b64('0xcc')](_0x55b4f8,_0x51ecdb[_0x7b64('0xd0')][_0x7b64('0xdd')])));}}return{'date':moment(_0x51ecdb[_0x7b64('0x76')])[_0x7b64('0xbd')](_0x7b64('0xbe'))['toString'](),'sender':_0x51ecdb[_0x7b64('0xd2')]===_0x7b64('0xde')?_0x51ecdb['User']?_0x51ecdb[_0x7b64('0x6e')][_0x7b64('0x31')]:'System':_0x51ecdb[_0x7b64('0xdf')][_0x7b64('0xe0')]+(_0x51ecdb['Contact'][_0x7b64('0xcf')]?'\x20'+_0x51ecdb[_0x7b64('0xdf')][_0x7b64('0xcf')]:''),'body':_0x51ecdb[_0x7b64('0xd0')]?_0x51ecdb[_0x7b64('0xd0')][_0x7b64('0xdd')]:_0x51ecdb[_0x7b64('0x71')],'direction':_0x51ecdb['direction']===_0x7b64('0xde')?'A':'C','secret':_0x51ecdb['secret'],'read':_0x51ecdb['read'],'attachment':_0x51ecdb[_0x7b64('0xd0')]};})[_0x7b64('0x60')]()};return ejs[_0x7b64('0xe1')](path[_0x7b64('0xcc')](config[_0x7b64('0xc8')],_0x7b64('0xc9'),_0x7b64('0xe2'),_0x7b64('0xe3')),{'interaction':_0x36f183})[_0x7b64('0x2b')](function(_0x44c372){var _0x48efbc=path['join'](_0x55b4f8,_0x7b64('0xe4')+_0x5c2c0c['id']+'-'+_0x5ac4a2+_0x7b64('0xe5'));var _0x1a361b={'path':_0x48efbc,'channel':'Whatsapp','interactionId':_0x5c2c0c['id']};return pdf[_0x7b64('0xe6')](_0x44c372,_0x1a361b);})['then'](function(){return new BPromise(function(_0x513dc5,_0x3bd21d){zipdir(_0x55b4f8,{'saveTo':_0x1b8e3d},function(_0x1dcf88,_0x51bb63){if(_0x1dcf88)return _0x3bd21d(_0x1dcf88);return _0x513dc5(_0x51bb63);});})[_0x7b64('0x2b')](function(){return new BPromise(function(_0x17c47c,_0x597cc4){rimraf(_0x55b4f8,function(_0x376daa){if(_0x376daa)_0x597cc4(_0x376daa);return _0x17c47c();});});})[_0x7b64('0x2b')](function(){return _0x42a7e6[_0x7b64('0xc6')](_0x1b8e3d,_0x177b96,function(_0x1ff0ed){if(_0x1ff0ed){console[_0x7b64('0xe7')](_0x7b64('0xe8'),_0x1ff0ed);}else{fs[_0x7b64('0xe9')](_0x1b8e3d);}});});});}else{return _0x42a7e6[_0x7b64('0x1f')](0xc8);}})[_0x7b64('0x35')](handleError(_0x42a7e6,null));};
\ No newline at end of file
+var _0x6b1c=['firstName','Contact','out','secret','renderFile','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','index','WhatsappInteraction','rawAttributes','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','select','field','from','tools_tags','u.id','u.fullname','ui.WhatsappInteractionId','user_has_whatsapp_interactions','users','u.id\x20=\x20ui.UserId','whatsapp_interactions','left_join','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','whatsapp_accounts','a.id\x20=\x20i.WhatsappAccountId','whatsapp_interaction_has_tags','it.WhatsappInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20=\x200','`\x20>\x200','operator','value','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','compact','isEmpty','i.WhatsappAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','resolve','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','agent','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','WhatsappAccountId','toString','sequelize','merge','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.WhatsappInteractionId\x20IN\x20?','groupBy','WhatsappInteractionId','all','rows','show','params','keys','includeAll','include','options','create','describe','addMessage','WhatsappMessage','ids','omit','getMessages','findOne','filter','findAll','addTags','setTags','spread','color','emit','whatsappInteractionTags:save','removeTags','download','join','root','server','files','tmp','attachments','format','CmContact','lastName','Attachment','Messages','direction','WhatsappAccount','Account','Owner','get','mkdirSync','Whatsapp','N.A.','YYYY-MM-DD\x20HH:mm:ss','closed','existsSync','pipe','basename'];(function(_0x5010df,_0x321a81){var _0x1ebdcd=function(_0x1ba111){while(--_0x1ba111){_0x5010df['push'](_0x5010df['shift']());}};_0x1ebdcd(++_0x321a81);}(_0x6b1c,0xf3));var _0xc6b1=function(_0x234cb4,_0x128512){_0x234cb4=_0x234cb4-0x0;var _0x29e00d=_0x6b1c[_0x234cb4];return _0x29e00d;};'use strict';var emlformat=require(_0xc6b1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc6b1('0x1'));var jsonpatch=require(_0xc6b1('0x2'));var rp=require(_0xc6b1('0x3'));var moment=require(_0xc6b1('0x4'));var BPromise=require(_0xc6b1('0x5'));var Mustache=require(_0xc6b1('0x6'));var util=require('util');var path=require(_0xc6b1('0x7'));var sox=require('sox');var csv=require(_0xc6b1('0x8'));var ejs=require(_0xc6b1('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc6b1('0xa'));var squel=require(_0xc6b1('0xb'));var crypto=require(_0xc6b1('0xc'));var jsforce=require(_0xc6b1('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc6b1('0x8'));var querystring=require(_0xc6b1('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xc6b1('0xf'));var qs=require(_0xc6b1('0x10'));var as=require(_0xc6b1('0x11'));var pdf=require(_0xc6b1('0x12'));var hardwareService=require(_0xc6b1('0x13'));var logger=require(_0xc6b1('0x14'))('api');var utils=require(_0xc6b1('0x15'));var config=require(_0xc6b1('0x16'));var licenseUtil=require(_0xc6b1('0x17'));var db=require(_0xc6b1('0x18'))['db'];config[_0xc6b1('0x19')]=_['defaults'](config[_0xc6b1('0x19')],{'host':_0xc6b1('0x1a'),'port':0x18eb});var socket=require(_0xc6b1('0x1b'))(new Redis(config[_0xc6b1('0x19')]));require('./whatsappInteraction.socket')['register'](socket);function respondWithStatusCode(_0x4607ee,_0x12079c){_0x12079c=_0x12079c||0xcc;return function(_0x37ea66){if(_0x37ea66){return _0x4607ee[_0xc6b1('0x1c')](_0x12079c);}return _0x4607ee[_0xc6b1('0x1d')](_0x12079c)[_0xc6b1('0x1e')]();};}function respondWithResult(_0x4ba242,_0x4fbf72){_0x4fbf72=_0x4fbf72||0xc8;return function(_0xaed550){if(_0xaed550){return _0x4ba242[_0xc6b1('0x1d')](_0x4fbf72)[_0xc6b1('0x1f')](_0xaed550);}};}function respondWithFilteredResult(_0x4c1fec,_0x2c4bae){return function(_0x40a267){if(_0x40a267){var _0x5d732e=typeof _0x2c4bae[_0xc6b1('0x20')]===_0xc6b1('0x21')&&typeof _0x2c4bae[_0xc6b1('0x22')]==='undefined';var _0x24e135=_0x40a267[_0xc6b1('0x23')];var _0x193c78=_0x5d732e?0x0:_0x2c4bae[_0xc6b1('0x20')];var _0x57a253=_0x5d732e?_0x40a267['count']:_0x2c4bae[_0xc6b1('0x20')]+_0x2c4bae[_0xc6b1('0x22')];var _0x9ac881;if(_0x57a253>=_0x24e135){_0x57a253=_0x24e135;_0x9ac881=0xc8;}else{_0x9ac881=0xce;}_0x4c1fec[_0xc6b1('0x1d')](_0x9ac881);return _0x4c1fec[_0xc6b1('0x24')](_0xc6b1('0x25'),_0x193c78+'-'+_0x57a253+'/'+_0x24e135)[_0xc6b1('0x1f')](_0x40a267);}return null;};}function patchUpdates(_0xda9ac){return function(_0x3cb0d0){try{jsonpatch[_0xc6b1('0x26')](_0x3cb0d0,_0xda9ac,!![]);}catch(_0x267e1f){return BPromise[_0xc6b1('0x27')](_0x267e1f);}return _0x3cb0d0[_0xc6b1('0x28')]();};}function saveUpdates(_0x9a919c,_0x311b3f){return function(_0x3976df){if(_0x3976df){return _0x3976df['update'](_0x9a919c)[_0xc6b1('0x29')](function(_0x5afcb5){return _0x5afcb5;});}return null;};}function removeEntity(_0x2b657d,_0x2b0a39){return function(_0x1339f1){if(_0x1339f1){return _0x1339f1[_0xc6b1('0x2a')]()['then'](function(){_0x2b657d[_0xc6b1('0x1d')](0xcc)[_0xc6b1('0x1e')]();});}};}function handleEntityNotFound(_0x168187,_0x71ce3e){return function(_0x443774){if(!_0x443774){_0x168187[_0xc6b1('0x1c')](0x194);}return _0x443774;};}function handleError(_0x23ab88,_0x497dac){_0x497dac=_0x497dac||0x1f4;return function(_0x196927){logger[_0xc6b1('0x2b')](_0x196927[_0xc6b1('0x2c')]);if(_0x196927[_0xc6b1('0x2d')]){delete _0x196927[_0xc6b1('0x2d')];}_0x23ab88[_0xc6b1('0x1d')](_0x497dac)['send'](_0x196927);};}function getInteractionUsers(_0x2c85bf,_0x1ffd49){return new BPromise(function(_0x2a7e40,_0x4dd229){try{if(_0x1ffd49[_0x2c85bf['id']]){_0x2c85bf[_0xc6b1('0x2e')]=_[_0xc6b1('0x2f')](_0x1ffd49[_0x2c85bf['id']],function(_0x167ff2){return{'id':_0x167ff2['id'],'fullname':_0x167ff2[_0xc6b1('0x30')]};});}}catch(_0x4e35de){_0x4dd229(_0x4e35de);}_0x2a7e40(_0x2c85bf);});}function getInteractionTags(_0x4a4839,_0x453a9c){return new BPromise(function(_0x5dc371,_0xe55de5){try{if(_0x4a4839[_0xc6b1('0x31')]){_0x4a4839[_0xc6b1('0x32')]=[];_0x4a4839[_0xc6b1('0x31')][_0xc6b1('0x33')](',')[_0xc6b1('0x34')](function(_0x38c9fb){_0x4a4839[_0xc6b1('0x32')][_0xc6b1('0x35')](_0x453a9c[_0x38c9fb]);});}delete _0x4a4839[_0xc6b1('0x31')];}catch(_0x57436b){_0xe55de5(_0x57436b);}_0x5dc371(_0x4a4839);});}function updateWhatsappInteraction(_0x5a5c1c,_0x2e2758,_0x4a560b){return new BPromise(function(_0x1aea81,_0x216f43){return getInteractionUsers(_0x5a5c1c,_0x4a560b)[_0xc6b1('0x29')](function(_0x23413f){return getInteractionTags(_0x23413f,_0x2e2758);})[_0xc6b1('0x29')](function(_0x17613b){_0x1aea81(_0x17613b);})[_0xc6b1('0x36')](function(_0x185d26){_0x216f43(_0x185d26);});});}exports[_0xc6b1('0x37')]=function(_0x54e0d5,_0x1683ef){var _0x470aa6={},_0x393938={},_0x2e284e={'count':0x0,'rows':[]};var _0x455a41=_[_0xc6b1('0x2f')](db[_0xc6b1('0x38')][_0xc6b1('0x39')],function(_0x4fac76){return{'name':_0x4fac76['fieldName'],'type':_0x4fac76['type']['key']};});_0x393938[_0xc6b1('0x3a')]=_[_0xc6b1('0x2f')](_0x455a41,_0xc6b1('0x2d'));_0x393938[_0xc6b1('0x3b')]=_['keys'](_0x54e0d5[_0xc6b1('0x3b')]);_0x393938[_0xc6b1('0x3c')]=_[_0xc6b1('0x3d')](_0x393938['model'],_0x393938[_0xc6b1('0x3b')]);_0x470aa6[_0xc6b1('0x3e')]=_[_0xc6b1('0x3d')](_0x393938[_0xc6b1('0x3a')],qs[_0xc6b1('0x3f')](_0x54e0d5[_0xc6b1('0x3b')]['fields']));_0x470aa6[_0xc6b1('0x3e')]=_0x470aa6[_0xc6b1('0x3e')][_0xc6b1('0x40')]?_0x470aa6[_0xc6b1('0x3e')]:_0x393938['model'];if(!_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x41')](_0xc6b1('0x42'))){_0x470aa6[_0xc6b1('0x22')]=qs[_0xc6b1('0x22')](_0x54e0d5['query']['limit']);_0x470aa6[_0xc6b1('0x20')]=qs['offset'](_0x54e0d5[_0xc6b1('0x3b')]['offset']);}_0x470aa6[_0xc6b1('0x43')]=qs[_0xc6b1('0x44')](_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x44')]);_0x470aa6[_0xc6b1('0x45')]=qs[_0xc6b1('0x3c')](_[_0xc6b1('0x46')](_0x54e0d5[_0xc6b1('0x3b')],_0x393938[_0xc6b1('0x3c')]),_0x455a41);var _0x394e00=[];var _0x21d473=squel[_0xc6b1('0x47')]()[_0xc6b1('0x48')]('id')[_0xc6b1('0x48')](_0xc6b1('0x2d'))[_0xc6b1('0x48')]('color')[_0xc6b1('0x49')](_0xc6b1('0x4a'));var _0x254958=squel[_0xc6b1('0x47')]()['field'](_0xc6b1('0x4b'))['field'](_0xc6b1('0x4c'))[_0xc6b1('0x48')](_0xc6b1('0x4d'))[_0xc6b1('0x49')](_0xc6b1('0x4e'),'ui')['left_join'](_0xc6b1('0x4f'),'u',_0xc6b1('0x50'));var _0x13acb7=squel[_0xc6b1('0x47')]()[_0xc6b1('0x49')](_0xc6b1('0x51'),'i')[_0xc6b1('0x52')]('cm_contacts','c',_0xc6b1('0x53'))[_0xc6b1('0x52')](_0xc6b1('0x4f'),'o',_0xc6b1('0x54'))['left_join'](_0xc6b1('0x55'),'a',_0xc6b1('0x56'))[_0xc6b1('0x52')]('whatsapp_messages','me','me.WhatsappInteractionId\x20=\x20i.id')[_0xc6b1('0x52')](_0xc6b1('0x57'),'it',_0xc6b1('0x58'))[_0xc6b1('0x52')](_0xc6b1('0x4a'),'t',_0xc6b1('0x59'));var _0x19037d=squel[_0xc6b1('0x5a')]();var _0x1e1ded=[];var _0x17b7a3=squel[_0xc6b1('0x5a')]();var _0x5ba94b;if(_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x5b')]){_0x5ba94b=as[_0xc6b1('0x5c')](_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x5b')]);var _0x149e21=_0x5ba94b[_0xc6b1('0x5d')];for(var _0x17de4e=0x0;_0x17de4e<_0x5ba94b['conditions'][_0xc6b1('0x40')];_0x17de4e++){var _0x21f5da=_0x5ba94b[_0xc6b1('0x5e')][_0x17de4e];var _0x3ff121='i';var _0x11eecd=_[_0xc6b1('0x5f')](_0x455a41,[_0xc6b1('0x2d'),_0x21f5da[_0xc6b1('0x48')]]);if(!_0x11eecd){switch(_0x21f5da[_0xc6b1('0x48')]){case _0xc6b1('0x60'):if(_0x21f5da['value']==0x1){_0x13acb7[_0xc6b1('0x61')]('`'+_0x21f5da[_0xc6b1('0x48')]+_0xc6b1('0x62'));}else{_0x13acb7['having']('`'+_0x21f5da['field']+_0xc6b1('0x63'));}break;case'Contact':if(_0x21f5da[_0xc6b1('0x64')]==='$substring'){if(_0x21f5da[_0xc6b1('0x65')]['split']('\x20')['length']>0x1){_0x19037d[_0x149e21]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xc6b1('0x66')](_0x21f5da[_0xc6b1('0x65')]),null);}else{var _0x1e8f0c='%'+_0x21f5da[_0xc6b1('0x65')]+'%';_0x19037d[_0x149e21](_0xc6b1('0x67'),_0x1e8f0c,_0x1e8f0c,_0x1e8f0c);}}else{_0x11eecd=_['find'](_0x455a41,[_0xc6b1('0x2d'),_0xc6b1('0x68')]);_0x21f5da[_0xc6b1('0x48')]=_0xc6b1('0x68');_0x384ed1=as[_0xc6b1('0x69')](_0x3ff121,_0x11eecd[_0xc6b1('0x6a')],_0x21f5da);_0x19037d[_0x149e21](_0x384ed1[_0xc6b1('0x6b')],_0x384ed1[_0xc6b1('0x65')][_0xc6b1('0x6c')],_0x384ed1['value']['end']);}break;case _0xc6b1('0x6d'):var _0x21fc47=_0x21f5da[_0xc6b1('0x65')]['split'](',')[_0xc6b1('0x2f')](function(_0x1d4488){return Number(_0x1d4488);});_0x21fc47[_0xc6b1('0x34')](function(_0x273afa){_0x17b7a3['or'](_0xc6b1('0x6e'),'%,'+_0x273afa+',%');});_0x1e1ded=_[_0xc6b1('0x6f')](_0x1e1ded,_0x21fc47);break;case _0xc6b1('0x70'):if(_0x21f5da[_0xc6b1('0x64')]==='$substring'){_0x19037d[_0x149e21](_0xc6b1('0x71'),'%'+_0x21f5da[_0xc6b1('0x65')]+'%',null);}else{_0x11eecd=_['find'](_0x455a41,[_0xc6b1('0x2d'),'UserId']);_0x21f5da[_0xc6b1('0x48')]=_0xc6b1('0x72');_0x384ed1=as[_0xc6b1('0x69')](_0x3ff121,_0x11eecd[_0xc6b1('0x6a')],_0x21f5da);_0x19037d[_0x149e21](_0x384ed1[_0xc6b1('0x6b')],_0x384ed1[_0xc6b1('0x65')][_0xc6b1('0x6c')],_0x384ed1['value'][_0xc6b1('0x1e')]);}break;case _0xc6b1('0x73'):_0x384ed1=as['buildExpression']('me',null,_0x21f5da);_0x19037d[_0x149e21](_0x384ed1[_0xc6b1('0x6b')],_0x384ed1[_0xc6b1('0x65')]['start'],_0x384ed1[_0xc6b1('0x65')][_0xc6b1('0x1e')]);break;}}else{var _0x384ed1=as[_0xc6b1('0x69')](_0x3ff121,_0x11eecd[_0xc6b1('0x6a')],_0x21f5da);_0x19037d[_0x149e21](_0x384ed1['text'],_0x384ed1[_0xc6b1('0x65')][_0xc6b1('0x6c')],_0x384ed1[_0xc6b1('0x65')][_0xc6b1('0x1e')]);}}}else{var _0x3f1c65=_(_0x54e0d5['query'])['keys']()[_0xc6b1('0x2f')](function(_0xadaa7){return _['some'](_0x455a41,['name',_0xadaa7])?_0xadaa7:undefined;})[_0xc6b1('0x74')]()['value']();if(!_[_0xc6b1('0x75')](_0x3f1c65)){_0x3f1c65[_0xc6b1('0x34')](function(_0x297701){if(_0x297701==='WhatsappAccountId'){_0x13acb7[_0xc6b1('0x45')](_0xc6b1('0x76'),[][_0xc6b1('0x77')](_0x54e0d5[_0xc6b1('0x3b')][_0x297701]));}else if(_0x297701===_0xc6b1('0x78')){var _0x2aae10=JSON[_0xc6b1('0x79')](_0x54e0d5[_0xc6b1('0x3b')][_0x297701])[_0xc6b1('0x7a')];var _0x1bd882=JSON['parse'](_0x54e0d5['query'][_0x297701])[_0xc6b1('0x7b')];_0x13acb7[_0xc6b1('0x45')](_0xc6b1('0x7c'),_0x2aae10,_0x1bd882);}else{if(_0x54e0d5[_0xc6b1('0x3b')][_0x297701]===_0xc6b1('0x7d')){_0x13acb7[_0xc6b1('0x45')]('i.'+_0x297701+_0xc6b1('0x7e'));}else{_0x13acb7[_0xc6b1('0x45')]('i.'+_0x297701+'\x20=\x20?',_0x54e0d5[_0xc6b1('0x3b')][_0x297701]);}}});}if(_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x7f')]){if(_0x54e0d5[_0xc6b1('0x3b')]['read']==0x1){_0x13acb7[_0xc6b1('0x61')](_0xc6b1('0x80'));}else{_0x13acb7[_0xc6b1('0x61')](_0xc6b1('0x81'));}}if(_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x82')]){_0x1e1ded=_[_0xc6b1('0x83')](_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x82')])?_0x54e0d5[_0xc6b1('0x3b')]['tag']:new Array(_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x82')]);_0x1e1ded[_0xc6b1('0x34')](function(_0x2b0035){_0x17b7a3['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2b0035+',%');});}if(_0x54e0d5[_0xc6b1('0x3b')]['filter']){var _0x1f663d=_0x54e0d5['query']['filter'][_0xc6b1('0x84')]('\x5c','\x5c\x5c')[_0xc6b1('0x84')](/'/g,'\x27\x27');if(qs[_0xc6b1('0x85')](_0x1f663d)){_0x19037d['or'](_0xc6b1('0x86'),_0x1f663d+'%')['or'](_0xc6b1('0x87'),_0x1f663d+'%');}else{_0x19037d['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xc6b1('0x66')](_0x1f663d))['or'](_0xc6b1('0x88'),_0x1f663d+'%');}}}_0x13acb7[_0xc6b1('0x45')](_0x19037d);_0x13acb7[_0xc6b1('0x89')](_0xc6b1('0x8a'));var _0x117ca0={'type':db[_0xc6b1('0x8b')]['QueryTypes']['SELECT'],'raw':!![]};var _0x126c46=_0x13acb7['clone']();_0x126c46[_0xc6b1('0x48')](_0xc6b1('0x8a'));_0x126c46[_0xc6b1('0x48')](_0xc6b1('0x8c'),_0xc6b1('0x60'));if(_0x470aa6[_0xc6b1('0x43')]){_0x470aa6[_0xc6b1('0x43')][_0xc6b1('0x34')](function(_0x394b16){var _0x41ac3f=_0x394b16[0x0]===_0xc6b1('0x8d')?_0x394b16[0x0]:'i.'+_0x394b16[0x0];_0x13acb7[_0xc6b1('0x43')](_0x41ac3f,_0x394b16[0x1]===_0xc6b1('0x8e')?![]:!![]);});}if(!_[_0xc6b1('0x75')](_0x1e1ded)){_0x13acb7[_0xc6b1('0x61')](_0x17b7a3);_0x126c46[_0xc6b1('0x45')](_0xc6b1('0x8f'),_0x1e1ded);}BPromise[_0xc6b1('0x90')]()[_0xc6b1('0x29')](function(){if(!_0x5ba94b){if(_0x54e0d5['query']['WhatsappAccountId'])return;_0x126c46[_0xc6b1('0x45')]('i.WhatsappAccountId\x20IS\x20NOT\x20NULL');_0x13acb7[_0xc6b1('0x45')](_0xc6b1('0x91'));return;}if(_0x54e0d5[_0xc6b1('0x92')]['role']!==_0xc6b1('0x93'))return;return _0x54e0d5[_0xc6b1('0x92')][_0xc6b1('0x94')]({'attributes':['id'],'raw':!![]})[_0xc6b1('0x29')](function(_0x2b5af9){if(_[_0xc6b1('0x75')](_0x2b5af9)){_0x126c46['where'](_0xc6b1('0x95'));_0x13acb7[_0xc6b1('0x45')](_0xc6b1('0x95'));}else{_0x126c46[_0xc6b1('0x45')]('i.WhatsappAccountId\x20IN\x20?',_[_0xc6b1('0x2f')](_0x2b5af9,'id'));_0x13acb7[_0xc6b1('0x45')]('i.WhatsappAccountId\x20IN\x20?',_[_0xc6b1('0x2f')](_0x2b5af9,'id'));}});})['then'](function(){if(_0x54e0d5[_0xc6b1('0x92')]['role']===_0xc6b1('0x93')&&!_0x5ba94b&&!_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x96')])return[];return db['sequelize']['query'](_0x126c46[_0xc6b1('0x97')](),_0x117ca0);})[_0xc6b1('0x29')](function(_0xa98b5a){_0x2e284e['count']=_0xa98b5a['length'];if(_0x2e284e[_0xc6b1('0x23')]===0x0)return[];return db[_0xc6b1('0x98')][_0xc6b1('0x3b')](_0x21d473['toString'](),_0x117ca0)[_0xc6b1('0x29')](function(_0x38ea39){_0x394e00=_['keyBy'](_0x38ea39,'id');_0x117ca0=_[_0xc6b1('0x99')](_0x117ca0,{'model':db[_0xc6b1('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x54e0d5[_0xc6b1('0x3b')][_0xc6b1('0x3f')]){_0x470aa6[_0xc6b1('0x3e')]['forEach'](function(_0x356de7){_0x13acb7[_0xc6b1('0x48')]('i.'+_0x356de7);});}else{_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0x8c'),_0xc6b1('0x60'));_0x13acb7[_0xc6b1('0x48')]('a.key','Account.key');_0x13acb7[_0xc6b1('0x48')]('a.mandatoryDisposition',_0xc6b1('0x9a'));_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0x9b'),_0xc6b1('0x8d'));_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0x9c'));_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0x9d'),_0xc6b1('0x9e'));_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0x9f'),_0xc6b1('0xa0'));_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0xa1'),'Contact.email');_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0xa2'),_0xc6b1('0xa3'));_0x13acb7[_0xc6b1('0x48')]('c.mobile',_0xc6b1('0xa4'));_0x13acb7[_0xc6b1('0x48')]('c.fax',_0xc6b1('0xa5'));_0x13acb7[_0xc6b1('0x48')](_0xc6b1('0xa6'),_0xc6b1('0xa7'));_0x13acb7['field'](_0xc6b1('0xa8'),_0xc6b1('0xa9'));_0x13acb7[_0xc6b1('0x48')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0xc6b1('0x31'));}if(_0x470aa6[_0xc6b1('0x22')])_0x13acb7[_0xc6b1('0x22')](_0x470aa6['limit']);if(_0x470aa6[_0xc6b1('0x20')])_0x13acb7['offset'](_0x470aa6['offset']);return db[_0xc6b1('0x98')]['query'](_0x13acb7[_0xc6b1('0x97')](),_0x117ca0);})[_0xc6b1('0x29')](function(_0x50bb14){if(_0x50bb14[_0xc6b1('0x40')]>0x0)_0x254958[_0xc6b1('0x45')](_0xc6b1('0xaa'),_['map'](_0x50bb14,'id'));return db[_0xc6b1('0x98')][_0xc6b1('0x3b')](_0x254958['toString'](),_0x117ca0)['then'](function(_0x172320){var _0x48a9e5=_[_0xc6b1('0xab')](_0x172320,_0xc6b1('0xac'));var _0x4f36b3=[];_0x50bb14['forEach'](function(_0x58a7f3){_0x4f36b3[_0xc6b1('0x35')](updateWhatsappInteraction(_0x58a7f3,_0x394e00,_0x48a9e5));});return BPromise[_0xc6b1('0xad')](_0x4f36b3);});});})['then'](function(_0x3737ea){_0x2e284e[_0xc6b1('0xae')]=_0x3737ea;return _0x2e284e;})[_0xc6b1('0x29')](respondWithFilteredResult(_0x1683ef,_0x470aa6))[_0xc6b1('0x36')](handleError(_0x1683ef,null));};exports[_0xc6b1('0xaf')]=function(_0x13872b,_0x4f352e){var _0x221435={'raw':![],'where':{'id':_0x13872b[_0xc6b1('0xb0')]['id']}},_0x474f2f={};_0x474f2f['model']=_[_0xc6b1('0xb1')](db[_0xc6b1('0x38')][_0xc6b1('0x39')]);_0x474f2f[_0xc6b1('0x3b')]=_[_0xc6b1('0xb1')](_0x13872b['query']);_0x474f2f[_0xc6b1('0x3c')]=_[_0xc6b1('0x3d')](_0x474f2f[_0xc6b1('0x3a')],_0x474f2f['query']);_0x221435[_0xc6b1('0x3e')]=_[_0xc6b1('0x3d')](_0x474f2f[_0xc6b1('0x3a')],qs['fields'](_0x13872b[_0xc6b1('0x3b')][_0xc6b1('0x3f')]));_0x221435[_0xc6b1('0x3e')]=_0x221435[_0xc6b1('0x3e')][_0xc6b1('0x40')]?_0x221435[_0xc6b1('0x3e')]:_0x474f2f[_0xc6b1('0x3a')];if(_0x13872b[_0xc6b1('0x3b')][_0xc6b1('0xb2')]){_0x221435[_0xc6b1('0xb3')]=[{'all':!![]}];}_0x221435=_[_0xc6b1('0x99')]({},_0x221435,_0x13872b[_0xc6b1('0xb4')]);return db['WhatsappInteraction'][_0xc6b1('0x5f')](_0x221435)[_0xc6b1('0x29')](handleEntityNotFound(_0x4f352e,null))['then'](respondWithResult(_0x4f352e,null))['catch'](handleError(_0x4f352e,null));};exports[_0xc6b1('0xb5')]=function(_0x2170a2,_0xd2eba5){return db[_0xc6b1('0x38')][_0xc6b1('0xb5')](_0x2170a2['body'],{})[_0xc6b1('0x29')](respondWithResult(_0xd2eba5,0xc9))[_0xc6b1('0x36')](handleError(_0xd2eba5,null));};exports['update']=function(_0xfc26c7,_0x47a611){if(_0xfc26c7['body']['id']){delete _0xfc26c7[_0xc6b1('0x73')]['id'];}return db[_0xc6b1('0x38')][_0xc6b1('0x5f')]({'where':{'id':_0xfc26c7[_0xc6b1('0xb0')]['id']}})[_0xc6b1('0x29')](handleEntityNotFound(_0x47a611,null))['then'](saveUpdates(_0xfc26c7['body'],null))[_0xc6b1('0x29')](respondWithResult(_0x47a611,null))[_0xc6b1('0x36')](handleError(_0x47a611,null));};exports[_0xc6b1('0x2a')]=function(_0x3bfe4e,_0x45e1a2){return db[_0xc6b1('0x38')][_0xc6b1('0x5f')]({'where':{'id':_0x3bfe4e[_0xc6b1('0xb0')]['id']}})['then'](handleEntityNotFound(_0x45e1a2,null))['then'](removeEntity(_0x45e1a2,null))['catch'](handleError(_0x45e1a2,null));};exports[_0xc6b1('0xb6')]=function(_0x388a0d,_0x53ac07){return db[_0xc6b1('0x38')][_0xc6b1('0xb6')]()[_0xc6b1('0x29')](respondWithResult(_0x53ac07,null))['catch'](handleError(_0x53ac07,null));};exports[_0xc6b1('0xb7')]=function(_0x3bb63a,_0x4d8a35,_0x4098fb){return db[_0xc6b1('0xb8')][_0xc6b1('0x5f')]({'where':{'id':_0x3bb63a[_0xc6b1('0xb0')]['id']}})[_0xc6b1('0x29')](handleEntityNotFound(_0x4d8a35,null))['then'](function(_0x1f56c5){if(_0x1f56c5){return _0x1f56c5['addMessage'](_0x3bb63a[_0xc6b1('0x73')][_0xc6b1('0xb9')],_[_0xc6b1('0xba')](_0x3bb63a[_0xc6b1('0x73')],['ids','id'])||{});}})[_0xc6b1('0x29')](respondWithResult(_0x4d8a35,null))[_0xc6b1('0x36')](handleError(_0x4d8a35,null));};exports[_0xc6b1('0xbb')]=function(_0x3270bc,_0x21d032,_0xcd0d00){var _0x5b1fae={'raw':![],'where':{}};var _0x2790b0={};var _0x22f264={'count':0x0,'rows':[]};return db[_0xc6b1('0x38')][_0xc6b1('0xbc')]({'where':{'id':_0x3270bc[_0xc6b1('0xb0')]['id']}})[_0xc6b1('0x29')](handleEntityNotFound(_0x21d032,null))[_0xc6b1('0x29')](function(_0x4e7180){if(_0x4e7180){_0x2790b0[_0xc6b1('0x3a')]=_[_0xc6b1('0xb1')](db[_0xc6b1('0xb8')][_0xc6b1('0x39')]);_0x2790b0[_0xc6b1('0x3b')]=_[_0xc6b1('0xb1')](_0x3270bc[_0xc6b1('0x3b')]);_0x2790b0[_0xc6b1('0x3c')]=_[_0xc6b1('0x3d')](_0x2790b0[_0xc6b1('0x3a')],_0x2790b0[_0xc6b1('0x3b')]);_0x5b1fae[_0xc6b1('0x3e')]=_[_0xc6b1('0x3d')](_0x2790b0[_0xc6b1('0x3a')],qs[_0xc6b1('0x3f')](_0x3270bc[_0xc6b1('0x3b')]['fields']));_0x5b1fae[_0xc6b1('0x3e')]=_0x5b1fae[_0xc6b1('0x3e')][_0xc6b1('0x40')]?_0x5b1fae[_0xc6b1('0x3e')]:_0x2790b0[_0xc6b1('0x3a')];if(!_0x3270bc['query'][_0xc6b1('0x41')](_0xc6b1('0x42'))){_0x5b1fae[_0xc6b1('0x22')]=qs[_0xc6b1('0x22')](_0x3270bc[_0xc6b1('0x3b')][_0xc6b1('0x22')]);_0x5b1fae[_0xc6b1('0x20')]=qs[_0xc6b1('0x20')](_0x3270bc[_0xc6b1('0x3b')]['offset']);}_0x5b1fae[_0xc6b1('0x43')]=qs[_0xc6b1('0x44')](_0x3270bc[_0xc6b1('0x3b')][_0xc6b1('0x44')]);_0x5b1fae[_0xc6b1('0x45')]=qs[_0xc6b1('0x3c')](_[_0xc6b1('0x46')](_0x3270bc['query'],_0x2790b0[_0xc6b1('0x3c')]));_0x5b1fae[_0xc6b1('0x45')][_0xc6b1('0xac')]=_0x4e7180['id'];if(_0x3270bc['query']['filter']){_0x5b1fae[_0xc6b1('0x45')]=_[_0xc6b1('0x99')](_0x5b1fae[_0xc6b1('0x45')],{'$or':_['map'](_0x5b1fae[_0xc6b1('0x3e')],function(_0xed220f){var _0xc60c75={};_0xc60c75[_0xed220f]={'$like':'%'+_0x3270bc[_0xc6b1('0x3b')][_0xc6b1('0xbd')]+'%'};return _0xc60c75;})});}if(_0x3270bc['query'][_0xc6b1('0x7a')]){var _0x5a9954=_0x3270bc[_0xc6b1('0x3b')][_0xc6b1('0x7a')]['split'](',');var _0x5f0578={};_0x5f0578[_0x5a9954[0x0]]={'$gte':moment(_0x5a9954[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x5b1fae[_0xc6b1('0x45')]=_[_0xc6b1('0x99')](_0x5b1fae[_0xc6b1('0x45')],_0x5f0578);}_0x5b1fae=_[_0xc6b1('0x99')]({},_0x5b1fae,_0x3270bc[_0xc6b1('0xb4')]);return db['WhatsappMessage'][_0xc6b1('0x23')]({'where':_0x5b1fae[_0xc6b1('0x45')]})[_0xc6b1('0x29')](function(_0x445e31){_0x22f264[_0xc6b1('0x23')]=_0x445e31;if(_0x3270bc['query'][_0xc6b1('0xb2')]){_0x5b1fae['include']=[{'all':!![]}];}return db[_0xc6b1('0xb8')][_0xc6b1('0xbe')](_0x5b1fae);})['then'](function(_0x2c6555){_0x22f264[_0xc6b1('0xae')]=_0x2c6555;return _0x22f264;});}})['then'](respondWithFilteredResult(_0x21d032,_0x5b1fae))[_0xc6b1('0x36')](handleError(_0x21d032,null));};exports[_0xc6b1('0xbf')]=function(_0x5a7eb7,_0x10e8b0,_0x249acf){return db[_0xc6b1('0x38')]['find']({'where':{'id':_0x5a7eb7[_0xc6b1('0xb0')]['id']}})[_0xc6b1('0x29')](handleEntityNotFound(_0x10e8b0,null))['then'](function(_0x3c3641){if(_0x3c3641){return _0x3c3641[_0xc6b1('0xc0')](_0x5a7eb7[_0xc6b1('0x73')][_0xc6b1('0xb9')],_[_0xc6b1('0xba')](_0x5a7eb7['body'],['ids','id'])||{})[_0xc6b1('0xc1')](function(){return db[_0xc6b1('0x6d')]['findAll']({'attributes':['id',_0xc6b1('0x2d'),_0xc6b1('0xc2')],'where':{'id':_0x5a7eb7['body'][_0xc6b1('0xb9')]}});})['then'](function(_0x181a22){socket[_0xc6b1('0xc3')](_0xc6b1('0xc4'),{'id':Number(_0x5a7eb7[_0xc6b1('0xb0')]['id']),'tags':_0x181a22||[]});return{'id':Number(_0x5a7eb7['params']['id']),'tags':_0x181a22||[]};});}})[_0xc6b1('0x29')](respondWithResult(_0x10e8b0,null))[_0xc6b1('0x36')](handleError(_0x10e8b0,null));};exports[_0xc6b1('0xc5')]=function(_0x2fab1f,_0x2e3bd6,_0xfc2715){return db[_0xc6b1('0x38')]['find']({'where':{'id':_0x2fab1f['params']['id']}})[_0xc6b1('0x29')](handleEntityNotFound(_0x2e3bd6,null))[_0xc6b1('0x29')](function(_0x11e612){if(_0x11e612){return _0x11e612[_0xc6b1('0xc5')](_0x2fab1f[_0xc6b1('0x3b')]['ids']);}})[_0xc6b1('0x29')](respondWithStatusCode(_0x2e3bd6,null))[_0xc6b1('0x36')](handleError(_0x2e3bd6,null));};exports[_0xc6b1('0xc6')]=function(_0x4c720e,_0x292b58){var _0x3c4cc1=moment()['unix']()[_0xc6b1('0x97')]();var _0x5f68e6=path[_0xc6b1('0xc7')](config[_0xc6b1('0xc8')],_0xc6b1('0xc9'),_0xc6b1('0xca'),_0xc6b1('0xcb'));var _0x1dbf5d=path[_0xc6b1('0xc7')](config[_0xc6b1('0xc8')],_0xc6b1('0xc9'),_0xc6b1('0xca'),_0xc6b1('0xcc'));var _0x5eec9b=path['join'](_0x5f68e6,_0x3c4cc1);var _0x500a66=util[_0xc6b1('0xcd')]('transcript-%d-%s.zip',_0x4c720e['params']['id'],_0x3c4cc1);var _0x2918cf=path['join'](_0x5f68e6,_0x500a66);var _0xd0908e=[];_0xd0908e['push']({'model':db[_0xc6b1('0x70')],'as':'User','attributes':['id',_0xc6b1('0x30')],'raw':!![]});_0xd0908e[_0xc6b1('0x35')]({'model':db[_0xc6b1('0xce')],'as':'Contact','attributes':['id','firstName',_0xc6b1('0xcf')],'raw':!![]});if(_0x4c720e[_0xc6b1('0x3b')][_0xc6b1('0xcc')]){_0xd0908e['push']({'model':db[_0xc6b1('0xd0')],'as':_0xc6b1('0xd0'),'raw':!![]});}var _0x279a2b=[{'model':db['WhatsappMessage'],'as':_0xc6b1('0xd1'),'attributes':['id',_0xc6b1('0x73'),_0xc6b1('0x78'),_0xc6b1('0xd2'),'secret','read'],'include':_0xd0908e}];_0x279a2b[_0xc6b1('0x35')]({'model':db[_0xc6b1('0xd3')],'as':_0xc6b1('0xd4'),'attributes':['id','name']});_0x279a2b[_0xc6b1('0x35')]({'model':db['User'],'as':_0xc6b1('0xd5'),'attributes':['id',_0xc6b1('0x30')]});return db[_0xc6b1('0x38')]['find']({'where':{'id':_0x4c720e['params']['id']},'include':_0x279a2b})[_0xc6b1('0x29')](handleEntityNotFound(_0x292b58,null))[_0xc6b1('0x29')](function(_0x4e525e){if(_0x4e525e){var _0x1aed30=_0x4e525e[_0xc6b1('0xd6')]({'plain':!![]});fs[_0xc6b1('0xd7')](_0x5eec9b);var _0x1fbaf5={'channel':_0xc6b1('0xd8'),'account':_0x1aed30[_0xc6b1('0xd4')]['name'],'agent':_0x1aed30[_0xc6b1('0xd5')]?_0x1aed30['Owner'][_0xc6b1('0x30')]:_0xc6b1('0xd9'),'createdAt':moment(_0x1aed30[_0xc6b1('0x78')])['format'](_0xc6b1('0xda'))[_0xc6b1('0x97')](),'closedAt':_0x1aed30[_0xc6b1('0xdb')]?moment(_0x1aed30['closedAt'])[_0xc6b1('0xcd')]('YYYY-MM-DD\x20HH:mm:ss')[_0xc6b1('0x97')]():'','disposition':_0x1aed30['disposition'],'messages':_(_0x1aed30[_0xc6b1('0xd1')])[_0xc6b1('0xbd')]({'secret':![]})['map'](function(_0x1de042){if(_0x1de042[_0xc6b1('0xd0')]){var _0x1aed8e=path[_0xc6b1('0xc7')](_0x1dbf5d,_0x1de042['Attachment']['basename']);if(fs[_0xc6b1('0xdc')](_0x1aed8e)){fs['createReadStream'](_0x1aed8e)[_0xc6b1('0xdd')](fs['createWriteStream'](path[_0xc6b1('0xc7')](_0x5eec9b,_0x1de042[_0xc6b1('0xd0')][_0xc6b1('0xde')])));}}return{'date':moment(_0x1de042[_0xc6b1('0x78')])['format'](_0xc6b1('0xda'))[_0xc6b1('0x97')](),'sender':_0x1de042[_0xc6b1('0xd2')]==='out'?_0x1de042[_0xc6b1('0x70')]?_0x1de042[_0xc6b1('0x70')]['fullname']:'System':_0x1de042['Contact'][_0xc6b1('0xdf')]+(_0x1de042['Contact'][_0xc6b1('0xcf')]?'\x20'+_0x1de042[_0xc6b1('0xe0')][_0xc6b1('0xcf')]:''),'body':_0x1de042[_0xc6b1('0xd0')]?_0x1de042[_0xc6b1('0xd0')][_0xc6b1('0xde')]:_0x1de042[_0xc6b1('0x73')],'direction':_0x1de042['direction']===_0xc6b1('0xe1')?'A':'C','secret':_0x1de042[_0xc6b1('0xe2')],'read':_0x1de042[_0xc6b1('0x7f')],'attachment':_0x1de042['Attachment']};})[_0xc6b1('0x65')]()};return ejs[_0xc6b1('0xe3')](path[_0xc6b1('0xc7')](config['root'],_0xc6b1('0xc9'),'views',_0xc6b1('0xe4')),{'interaction':_0x1fbaf5})['then'](function(_0x53f98b){var _0x452a17=path[_0xc6b1('0xc7')](_0x5eec9b,_0xc6b1('0xe5')+_0x1aed30['id']+'-'+_0x3c4cc1+_0xc6b1('0xe6'));var _0x13bc99={'path':_0x452a17,'channel':_0xc6b1('0xd8'),'interactionId':_0x1aed30['id']};return pdf[_0xc6b1('0xe7')](_0x53f98b,_0x13bc99);})[_0xc6b1('0x29')](function(){return new BPromise(function(_0x19e374,_0xb37340){zipdir(_0x5eec9b,{'saveTo':_0x2918cf},function(_0x4b9c89,_0x7f543d){if(_0x4b9c89)return _0xb37340(_0x4b9c89);return _0x19e374(_0x7f543d);});})[_0xc6b1('0x29')](function(){return new BPromise(function(_0x2c4edc,_0x55d2ef){rimraf(_0x5eec9b,function(_0x51a079){if(_0x51a079)_0x55d2ef(_0x51a079);return _0x2c4edc();});});})['then'](function(){return _0x292b58[_0xc6b1('0xc6')](_0x2918cf,_0x500a66,function(_0x40f58f){if(_0x40f58f){console[_0xc6b1('0xe8')]('err',_0x40f58f);}else{fs['unlinkSync'](_0x2918cf);}});});});}else{return _0x292b58[_0xc6b1('0x1c')](0xc8);}})[_0xc6b1('0x36')](handleError(_0x292b58,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb49a=['update','getUsers','then','setDataValue','map','findAll','length','emit','catch','hasOwnProperty','exports','events','../../mysqldb','WhatsappInteraction','WhatsappMessage','save'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0xb49a,0xfb));var _0xab49=function(_0x1785e8,_0x492aac){_0x1785e8=_0x1785e8-0x0;var _0x5e6021=_0xb49a[_0x1785e8];return _0x5e6021;};'use strict';var EventEmitter=require(_0xab49('0x0'));var WhatsappInteraction=require(_0xab49('0x1'))['db'][_0xab49('0x2')];var WhatsappMessage=require(_0xab49('0x1'))['db'][_0xab49('0x3')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xab49('0x4'),'afterUpdate':_0xab49('0x5'),'afterDestroy':'remove'};function emitEvent(_0x543eb0){return function(_0x14200b,_0x287cd5,_0x1cae1d){_0x14200b[_0xab49('0x6')]({'attributes':['id'],'raw':!![]})[_0xab49('0x7')](function(_0x26a98a){_0x14200b[_0xab49('0x8')]('Users',_0x26a98a[_0xab49('0x9')](function(_0x7de4b6){return{'id':_0x7de4b6['id']};}));return WhatsappMessage[_0xab49('0xa')]({'where':{'WhatsappInteractionId':_0x14200b['id'],'direction':'in','read':![]},'raw':!![]});})[_0xab49('0x7')](function(_0x69cb46){_0x14200b['setDataValue']('unreadMessages',_0x69cb46[_0xab49('0xb')]);WhatsappInteractionEvents[_0xab49('0xc')](_0x543eb0+':'+_0x14200b['id'],_0x14200b);WhatsappInteractionEvents[_0xab49('0xc')](_0x543eb0,_0x14200b);_0x1cae1d(null);})[_0xab49('0xd')](_0x1cae1d(null));};}for(var e in events){if(events[_0xab49('0xe')](e)){var event=events[e];WhatsappInteraction['hook'](e,emitEvent(event));}}module[_0xab49('0xf')]=WhatsappInteractionEvents;
\ No newline at end of file
+var _0x0aaf=['setMaxListeners','save','remove','getUsers','setDataValue','Users','findAll','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports','WhatsappInteraction','../../mysqldb','WhatsappMessage'];(function(_0x24cbb8,_0x477ebd){var _0x173903=function(_0x2e5148){while(--_0x2e5148){_0x24cbb8['push'](_0x24cbb8['shift']());}};_0x173903(++_0x477ebd);}(_0x0aaf,0x1c8));var _0xf0aa=function(_0x22e101,_0x412840){_0x22e101=_0x22e101-0x0;var _0xa51f61=_0x0aaf[_0x22e101];return _0xa51f61;};'use strict';var EventEmitter=require('events');var WhatsappInteraction=require('../../mysqldb')['db'][_0xf0aa('0x0')];var WhatsappMessage=require(_0xf0aa('0x1'))['db'][_0xf0aa('0x2')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents[_0xf0aa('0x3')](0x0);var events={'afterCreate':_0xf0aa('0x4'),'afterUpdate':'update','afterDestroy':_0xf0aa('0x5')};function emitEvent(_0x2f72d3){return function(_0x4e013e,_0x322cf5,_0x4c20b5){_0x4e013e[_0xf0aa('0x6')]({'attributes':['id'],'raw':!![]})['then'](function(_0xe4a744){_0x4e013e[_0xf0aa('0x7')](_0xf0aa('0x8'),_0xe4a744['map'](function(_0x14137c){return{'id':_0x14137c['id']};}));return WhatsappMessage[_0xf0aa('0x9')]({'where':{'WhatsappInteractionId':_0x4e013e['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x475284){_0x4e013e[_0xf0aa('0x7')](_0xf0aa('0xa'),_0x475284[_0xf0aa('0xb')]);WhatsappInteractionEvents[_0xf0aa('0xc')](_0x2f72d3+':'+_0x4e013e['id'],_0x4e013e);WhatsappInteractionEvents[_0xf0aa('0xc')](_0x2f72d3,_0x4e013e);_0x4c20b5(null);})[_0xf0aa('0xd')](_0x4c20b5(null));};}for(var e in events){if(events[_0xf0aa('0xe')](e)){var event=events[e];WhatsappInteraction[_0xf0aa('0xf')](e,emitEvent(event));}}module[_0xf0aa('0x10')]=WhatsappInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd393=['WhatsappInteraction','whatsapp_interactions','changed','closedAt','format','lodash','util','../../config/logger','moment','bluebird','request-promise','path','../../config/environment','./whatsappInteraction.attributes','exports','define'];(function(_0x28d107,_0x194228){var _0x2c0036=function(_0x34cc56){while(--_0x34cc56){_0x28d107['push'](_0x28d107['shift']());}};_0x2c0036(++_0x194228);}(_0xd393,0x175));var _0x3d39=function(_0x5f34b6,_0x47fa46){_0x5f34b6=_0x5f34b6-0x0;var _0x4c189e=_0xd393[_0x5f34b6];return _0x4c189e;};'use strict';var _=require(_0x3d39('0x0'));var util=require(_0x3d39('0x1'));var logger=require(_0x3d39('0x2'))('api');var moment=require(_0x3d39('0x3'));var BPromise=require(_0x3d39('0x4'));var rp=require(_0x3d39('0x5'));var fs=require('fs');var path=require(_0x3d39('0x6'));var rimraf=require('rimraf');var config=require(_0x3d39('0x7'));var attributes=require(_0x3d39('0x8'));module[_0x3d39('0x9')]=function(_0x42faa2,_0x396884){return _0x42faa2[_0x3d39('0xa')](_0x3d39('0xb'),attributes,{'tableName':_0x3d39('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x50292d,_0x1aaef0,_0xc3355b){if(_0x50292d[_0x3d39('0xd')]('closed')){_0x50292d[_0x3d39('0xe')]=moment()[_0x3d39('0xf')]('YYYY-MM-DD\x20HH:mm:ss');}_0xc3355b(null,_0x50292d);}}});};
\ No newline at end of file
+var _0x0cbd=['bluebird','request-promise','path','./whatsappInteraction.attributes','exports','define','WhatsappInteraction','whatsapp_interactions','changed','closedAt','api','moment'];(function(_0x2375f7,_0x4e7c41){var _0x3b2ca3=function(_0x1ea87a){while(--_0x1ea87a){_0x2375f7['push'](_0x2375f7['shift']());}};_0x3b2ca3(++_0x4e7c41);}(_0x0cbd,0x196));var _0xd0cb=function(_0x2b12d4,_0x2c47d9){_0x2b12d4=_0x2b12d4-0x0;var _0x4c67bb=_0x0cbd[_0x2b12d4];return _0x4c67bb;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0xd0cb('0x0'));var moment=require(_0xd0cb('0x1'));var BPromise=require(_0xd0cb('0x2'));var rp=require(_0xd0cb('0x3'));var fs=require('fs');var path=require(_0xd0cb('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xd0cb('0x5'));module[_0xd0cb('0x6')]=function(_0x589ebf,_0x20a5e1){return _0x589ebf[_0xd0cb('0x7')](_0xd0cb('0x8'),attributes,{'tableName':_0xd0cb('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x2cbaaa,_0x1c4a1b,_0x3ad5cf){if(_0x2cbaaa[_0xd0cb('0xa')]('closed')){_0x2cbaaa[_0xd0cb('0xb')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}_0x3ad5cf(null,_0x2cbaaa);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c9d=['client','http','redis','defaults','localhost','register','then','info','WhatsappInteraction,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','UpdateWhatsappInteraction','WhatsappInteraction','update','body','options','raw','where','attributes','limit','debug','AddTagsToWhatsappInteraction','addTags','ids','spread','AddTags','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','jayson/promise'];(function(_0x2f02a6,_0x503e2f){var _0xfc37f6=function(_0x3b2213){while(--_0x3b2213){_0x2f02a6['push'](_0x2f02a6['shift']());}};_0xfc37f6(++_0x503e2f);}(_0x0c9d,0x121));var _0xd0c9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c9d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xd0c9('0x0'));var util=require('util');var moment=require(_0xd0c9('0x1'));var BPromise=require(_0xd0c9('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd0c9('0x3'));var db=require(_0xd0c9('0x4'))['db'];var utils=require(_0xd0c9('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xd0c9('0x6'));var client=jayson[_0xd0c9('0x7')][_0xd0c9('0x8')]({'port':0x232a});config[_0xd0c9('0x9')]=_[_0xd0c9('0xa')](config['redis'],{'host':_0xd0c9('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd0c9('0x9')]));require('./whatsappInteraction.socket')[_0xd0c9('0xc')](socket);function respondWithRpcPromise(_0xae99b7,_0x3480d2,_0x11d0f2){return new BPromise(function(_0x9e2384,_0x1ee84a){return client['request'](_0xae99b7,_0x11d0f2)[_0xd0c9('0xd')](function(_0x221395){logger[_0xd0c9('0xe')](_0xd0c9('0xf'),_0x3480d2,'request\x20sent');logger['debug']('WhatsappInteraction,\x20%s,\x20%s,\x20%s',_0x3480d2,_0xd0c9('0x10'),JSON[_0xd0c9('0x11')](_0x221395));if(_0x221395['error']){if(_0x221395[_0xd0c9('0x12')]['code']===0x1f4){logger[_0xd0c9('0x12')](_0xd0c9('0xf'),_0x3480d2,_0x221395['error'][_0xd0c9('0x13')]);return _0x1ee84a(_0x221395['error'][_0xd0c9('0x13')]);}logger[_0xd0c9('0x12')]('WhatsappInteraction,\x20%s,\x20%s',_0x3480d2,_0x221395[_0xd0c9('0x12')][_0xd0c9('0x13')]);return _0x9e2384(_0x221395[_0xd0c9('0x12')][_0xd0c9('0x13')]);}else{logger[_0xd0c9('0xe')](_0xd0c9('0xf'),_0x3480d2,'request\x20sent');_0x9e2384(_0x221395[_0xd0c9('0x14')][_0xd0c9('0x13')]);}})[_0xd0c9('0x15')](function(_0x45cc72){logger[_0xd0c9('0x12')](_0xd0c9('0xf'),_0x3480d2,_0x45cc72);_0x1ee84a(_0x45cc72);});});}exports[_0xd0c9('0x16')]=function(_0x168000){var _0x13fe25=this;return new Promise(function(_0x52604d,_0x3155d1){return db[_0xd0c9('0x17')][_0xd0c9('0x18')](_0x168000[_0xd0c9('0x19')],{'raw':_0x168000[_0xd0c9('0x1a')]?_0x168000[_0xd0c9('0x1a')][_0xd0c9('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x168000[_0xd0c9('0x1a')]?_0x168000['options'][_0xd0c9('0x1c')]||null:null,'attributes':_0x168000[_0xd0c9('0x1a')]?_0x168000[_0xd0c9('0x1a')][_0xd0c9('0x1d')]||null:null,'limit':_0x168000[_0xd0c9('0x1a')]?_0x168000['options'][_0xd0c9('0x1e')]||null:null})[_0xd0c9('0xd')](function(_0x1b0f62){logger['info']('UpdateWhatsappInteraction',_0x168000);logger[_0xd0c9('0x1f')](_0xd0c9('0x16'),_0x168000,JSON['stringify'](_0x1b0f62));_0x52604d(_0x1b0f62);})[_0xd0c9('0x15')](function(_0x3000f0){logger[_0xd0c9('0x12')](_0xd0c9('0x16'),_0x3000f0[_0xd0c9('0x13')],_0x168000);_0x3155d1(_0x13fe25[_0xd0c9('0x12')](0x1f4,_0x3000f0['message']));});});};exports[_0xd0c9('0x20')]=function(_0x435488){return new Promise(function(_0x42d2fc,_0x1b4a3a){return db['WhatsappInteraction']['find']({'where':_0x435488[_0xd0c9('0x1a')]?_0x435488[_0xd0c9('0x1a')][_0xd0c9('0x1c')]||null:null})[_0xd0c9('0xd')](function(_0x4a9868){if(_0x4a9868){return _0x4a9868[_0xd0c9('0x21')](_0x435488['body'][_0xd0c9('0x22')],_['omit'](_0x435488[_0xd0c9('0x19')],['ids','id'])||{});}})[_0xd0c9('0x23')](function(_0x393b9f){logger[_0xd0c9('0xe')]('AddTags',_0x435488);logger[_0xd0c9('0x1f')](_0xd0c9('0x24'),_0x435488,JSON[_0xd0c9('0x11')](_0x393b9f));_0x42d2fc(_0x393b9f);})[_0xd0c9('0x15')](function(_0x550d0d){logger[_0xd0c9('0x12')]('AddTags',_0x550d0d[_0xd0c9('0x13')],_0x435488);_0x1b4a3a(_this[_0xd0c9('0x12')](0x1f4,_0x550d0d['message']));});});};
\ No newline at end of file
+var _0xbf66=['body','options','raw','where','limit','UpdateWhatsappInteraction','AddTagsToWhatsappInteraction','find','addTags','ids','spread','AddTags','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','defaults','redis','localhost','socket.io-emitter','./whatsappInteraction.socket','register','request','then','info','WhatsappInteraction,\x20%s,\x20%s','request\x20sent','debug','WhatsappInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','WhatsappInteraction','update'];(function(_0xf86b0b,_0x42246f){var _0x5042dc=function(_0x18d0ae){while(--_0x18d0ae){_0xf86b0b['push'](_0xf86b0b['shift']());}};_0x5042dc(++_0x42246f);}(_0xbf66,0x1e5));var _0x6bf6=function(_0xc6dfa2,_0x5c864f){_0xc6dfa2=_0xc6dfa2-0x0;var _0x2fb362=_0xbf66[_0xc6dfa2];return _0x2fb362;};'use strict';var _=require(_0x6bf6('0x0'));var util=require(_0x6bf6('0x1'));var moment=require('moment');var BPromise=require(_0x6bf6('0x2'));var rs=require(_0x6bf6('0x3'));var fs=require('fs');var Redis=require(_0x6bf6('0x4'));var db=require(_0x6bf6('0x5'))['db'];var utils=require(_0x6bf6('0x6'));var logger=require(_0x6bf6('0x7'))(_0x6bf6('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x6bf6('0x9')][_0x6bf6('0xa')]({'port':0x232a});config['redis']=_[_0x6bf6('0xb')](config[_0x6bf6('0xc')],{'host':_0x6bf6('0xd'),'port':0x18eb});var socket=require(_0x6bf6('0xe'))(new Redis(config[_0x6bf6('0xc')]));require(_0x6bf6('0xf'))[_0x6bf6('0x10')](socket);function respondWithRpcPromise(_0x51ea9b,_0x50b640,_0x5a0119){return new BPromise(function(_0x352d76,_0x19a584){return client[_0x6bf6('0x11')](_0x51ea9b,_0x5a0119)[_0x6bf6('0x12')](function(_0x312998){logger[_0x6bf6('0x13')](_0x6bf6('0x14'),_0x50b640,_0x6bf6('0x15'));logger[_0x6bf6('0x16')](_0x6bf6('0x17'),_0x50b640,'request\x20sent',JSON[_0x6bf6('0x18')](_0x312998));if(_0x312998[_0x6bf6('0x19')]){if(_0x312998[_0x6bf6('0x19')]['code']===0x1f4){logger[_0x6bf6('0x19')]('WhatsappInteraction,\x20%s,\x20%s',_0x50b640,_0x312998['error'][_0x6bf6('0x1a')]);return _0x19a584(_0x312998[_0x6bf6('0x19')][_0x6bf6('0x1a')]);}logger['error'](_0x6bf6('0x14'),_0x50b640,_0x312998['error'][_0x6bf6('0x1a')]);return _0x352d76(_0x312998[_0x6bf6('0x19')][_0x6bf6('0x1a')]);}else{logger['info'](_0x6bf6('0x14'),_0x50b640,'request\x20sent');_0x352d76(_0x312998[_0x6bf6('0x1b')][_0x6bf6('0x1a')]);}})[_0x6bf6('0x1c')](function(_0x336c31){logger['error'](_0x6bf6('0x14'),_0x50b640,_0x336c31);_0x19a584(_0x336c31);});});}exports['UpdateWhatsappInteraction']=function(_0x3a5d36){var _0x215e5f=this;return new Promise(function(_0x46d048,_0x840875){return db[_0x6bf6('0x1d')][_0x6bf6('0x1e')](_0x3a5d36[_0x6bf6('0x1f')],{'raw':_0x3a5d36['options']?_0x3a5d36[_0x6bf6('0x20')][_0x6bf6('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3a5d36[_0x6bf6('0x20')]?_0x3a5d36[_0x6bf6('0x20')][_0x6bf6('0x22')]||null:null,'attributes':_0x3a5d36[_0x6bf6('0x20')]?_0x3a5d36[_0x6bf6('0x20')]['attributes']||null:null,'limit':_0x3a5d36[_0x6bf6('0x20')]?_0x3a5d36['options'][_0x6bf6('0x23')]||null:null})[_0x6bf6('0x12')](function(_0x40bfa9){logger['info']('UpdateWhatsappInteraction',_0x3a5d36);logger[_0x6bf6('0x16')](_0x6bf6('0x24'),_0x3a5d36,JSON['stringify'](_0x40bfa9));_0x46d048(_0x40bfa9);})[_0x6bf6('0x1c')](function(_0x289333){logger[_0x6bf6('0x19')](_0x6bf6('0x24'),_0x289333[_0x6bf6('0x1a')],_0x3a5d36);_0x840875(_0x215e5f[_0x6bf6('0x19')](0x1f4,_0x289333[_0x6bf6('0x1a')]));});});};exports[_0x6bf6('0x25')]=function(_0x5635b8){return new Promise(function(_0xa0b253,_0x4c2cc0){return db['WhatsappInteraction'][_0x6bf6('0x26')]({'where':_0x5635b8[_0x6bf6('0x20')]?_0x5635b8[_0x6bf6('0x20')][_0x6bf6('0x22')]||null:null})['then'](function(_0x2809ce){if(_0x2809ce){return _0x2809ce[_0x6bf6('0x27')](_0x5635b8[_0x6bf6('0x1f')][_0x6bf6('0x28')],_['omit'](_0x5635b8[_0x6bf6('0x1f')],[_0x6bf6('0x28'),'id'])||{});}})[_0x6bf6('0x29')](function(_0x44aba2){logger[_0x6bf6('0x13')]('AddTags',_0x5635b8);logger[_0x6bf6('0x16')](_0x6bf6('0x2a'),_0x5635b8,JSON[_0x6bf6('0x18')](_0x44aba2));_0xa0b253(_0x44aba2);})[_0x6bf6('0x1c')](function(_0x4e2e5a){logger[_0x6bf6('0x19')](_0x6bf6('0x2a'),_0x4e2e5a[_0x6bf6('0x1a')],_0x5635b8);_0x4c2cc0(_this[_0x6bf6('0x19')](0x1f4,_0x4e2e5a['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9292=['update','emit','removeListener','register','length','whatsappInteraction:','./whatsappInteraction.events','save','remove'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x9292,0x189));var _0x2929=function(_0x26ea2f,_0x3e9249){_0x26ea2f=_0x26ea2f-0x0;var _0x4f492c=_0x9292[_0x26ea2f];return _0x4f492c;};'use strict';var WhatsappInteractionEvents=require(_0x2929('0x0'));var events=[_0x2929('0x1'),_0x2929('0x2'),_0x2929('0x3')];function createListener(_0x38df12,_0x24d2f6){return function(_0x1ebf89){_0x24d2f6[_0x2929('0x4')](_0x38df12,_0x1ebf89);};}function removeListener(_0xeae1d2,_0x8dff02){return function(){WhatsappInteractionEvents[_0x2929('0x5')](_0xeae1d2,_0x8dff02);};}exports[_0x2929('0x6')]=function(_0x483749){for(var _0x3f5ae7=0x0,_0x36edfb=events[_0x2929('0x7')];_0x3f5ae7<_0x36edfb;_0x3f5ae7++){var _0x23ef40=events[_0x3f5ae7];var _0x13247a=createListener(_0x2929('0x8')+_0x23ef40,_0x483749);WhatsappInteractionEvents['on'](_0x23ef40,_0x13247a);}};
\ No newline at end of file
+var _0xaee7=['emit','removeListener','register','whatsappInteraction:','./whatsappInteraction.events','save','update'];(function(_0x55e1d1,_0x3c9376){var _0x1165db=function(_0x5b0120){while(--_0x5b0120){_0x55e1d1['push'](_0x55e1d1['shift']());}};_0x1165db(++_0x3c9376);}(_0xaee7,0x185));var _0x7aee=function(_0x40aec9,_0x43ab43){_0x40aec9=_0x40aec9-0x0;var _0x37f182=_0xaee7[_0x40aec9];return _0x37f182;};'use strict';var WhatsappInteractionEvents=require(_0x7aee('0x0'));var events=[_0x7aee('0x1'),'remove',_0x7aee('0x2')];function createListener(_0x455e35,_0x3f85bc){return function(_0x6c2839){_0x3f85bc[_0x7aee('0x3')](_0x455e35,_0x6c2839);};}function removeListener(_0x2a8212,_0x8184d8){return function(){WhatsappInteractionEvents[_0x7aee('0x4')](_0x2a8212,_0x8184d8);};}exports[_0x7aee('0x5')]=function(_0x5d52e3){for(var _0x537224=0x0,_0x3317d8=events['length'];_0x537224<_0x3317d8;_0x537224++){var _0x29df57=events[_0x537224];var _0x332622=createListener(_0x7aee('0x6')+_0x29df57,_0x5d52e3);WhatsappInteractionEvents['on'](_0x29df57,_0x332622);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55b0=['status','put','/:id/accept','accept','/:id/reject','delete','destroy','exports','multer','util','express','Router','fs-extra','../../components/auth/service','../../config/environment','./whatsappMessage.controller','isAuthenticated','get','/describe','/:id','show','post','whatsappmessage:create','create'];(function(_0xcd5a3d,_0x3c5b33){var _0xd43207=function(_0x17d976){while(--_0x17d976){_0xcd5a3d['push'](_0xcd5a3d['shift']());}};_0xd43207(++_0x3c5b33);}(_0x55b0,0x110));var _0x055b=function(_0x3c3b7e,_0x5193ce){_0x3c3b7e=_0x3c3b7e-0x0;var _0xcdd9e7=_0x55b0[_0x3c3b7e];return _0xcdd9e7;};'use strict';var multer=require(_0x055b('0x0'));var util=require(_0x055b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x055b('0x2'));var router=express[_0x055b('0x3')]();var fs_extra=require(_0x055b('0x4'));var auth=require(_0x055b('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x055b('0x6'));var controller=require(_0x055b('0x7'));router['get']('/',auth[_0x055b('0x8')](),controller['index']);router[_0x055b('0x9')](_0x055b('0xa'),auth[_0x055b('0x8')](),controller['describe']);router[_0x055b('0x9')](_0x055b('0xb'),auth[_0x055b('0x8')](),controller[_0x055b('0xc')]);router[_0x055b('0xd')]('/',auth[_0x055b('0x8')](),interaction['tracked']('whatsapp',_0x055b('0xe')),controller[_0x055b('0xf')]);router['post']('/:id/status',controller[_0x055b('0x10')]);router[_0x055b('0x11')](_0x055b('0xb'),auth[_0x055b('0x8')](),controller['update']);router[_0x055b('0x11')](_0x055b('0x12'),auth[_0x055b('0x8')](),controller[_0x055b('0x13')]);router[_0x055b('0x11')](_0x055b('0x14'),auth[_0x055b('0x8')](),controller['reject']);router[_0x055b('0x15')]('/:id',auth[_0x055b('0x8')](),controller[_0x055b('0x16')]);module[_0x055b('0x17')]=router;
\ No newline at end of file
+var _0x37ee=['reject','delete','destroy','exports','util','path','connect-timeout','../../components/auth/service','../../config/environment','isAuthenticated','index','get','/describe','describe','/:id','show','post','whatsapp','whatsappmessage:create','create','/:id/status','status','put','update','/:id/accept','accept','/:id/reject'];(function(_0x18ff6a,_0x331e15){var _0x26661c=function(_0x1bb099){while(--_0x1bb099){_0x18ff6a['push'](_0x18ff6a['shift']());}};_0x26661c(++_0x331e15);}(_0x37ee,0x12d));var _0xe37e=function(_0x5219b0,_0x4120f7){_0x5219b0=_0x5219b0-0x0;var _0x3257fc=_0x37ee[_0x5219b0];return _0x3257fc;};'use strict';var multer=require('multer');var util=require(_0xe37e('0x0'));var path=require(_0xe37e('0x1'));var timeout=require(_0xe37e('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xe37e('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xe37e('0x4'));var controller=require('./whatsappMessage.controller');router['get']('/',auth[_0xe37e('0x5')](),controller[_0xe37e('0x6')]);router[_0xe37e('0x7')](_0xe37e('0x8'),auth[_0xe37e('0x5')](),controller[_0xe37e('0x9')]);router['get'](_0xe37e('0xa'),auth[_0xe37e('0x5')](),controller[_0xe37e('0xb')]);router[_0xe37e('0xc')]('/',auth[_0xe37e('0x5')](),interaction['tracked'](_0xe37e('0xd'),_0xe37e('0xe')),controller[_0xe37e('0xf')]);router['post'](_0xe37e('0x10'),controller[_0xe37e('0x11')]);router[_0xe37e('0x12')](_0xe37e('0xa'),auth[_0xe37e('0x5')](),controller[_0xe37e('0x13')]);router[_0xe37e('0x12')](_0xe37e('0x14'),auth[_0xe37e('0x5')](),controller[_0xe37e('0x15')]);router[_0xe37e('0x12')](_0xe37e('0x16'),auth['isAuthenticated'](),controller[_0xe37e('0x17')]);router[_0xe37e('0x18')](_0xe37e('0xa'),auth[_0xe37e('0x5')](),controller[_0xe37e('0x19')]);module[_0xe37e('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a47=['TEXT','medium','ENUM','out','STRING','DATE','sequelize','exports'];(function(_0x16d80f,_0xbabe9d){var _0x2ec7f6=function(_0x191e8e){while(--_0x191e8e){_0x16d80f['push'](_0x16d80f['shift']());}};_0x2ec7f6(++_0xbabe9d);}(_0x8a47,0x17e));var _0x78a4=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x8a47[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x78a4('0x0'));module[_0x78a4('0x1')]={'body':{'type':Sequelize[_0x78a4('0x2')](_0x78a4('0x3')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x78a4('0x4')]('in',_0x78a4('0x5')),'defaultValue':_0x78a4('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0x78a4('0x6')](0xbe)},'phone':{'type':Sequelize['STRING']},'readAt':{'type':Sequelize[_0x78a4('0x7')]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'providerName':{'type':Sequelize[_0x78a4('0x6')]},'providerResponse':{'type':Sequelize[_0x78a4('0x2')]}};
\ No newline at end of file
+var _0x22c4=['STRING','sequelize','TEXT','medium','BOOLEAN','ENUM','out','DATE'];(function(_0x31082b,_0x15108a){var _0x3b41f7=function(_0x5bf19c){while(--_0x5bf19c){_0x31082b['push'](_0x31082b['shift']());}};_0x3b41f7(++_0x15108a);}(_0x22c4,0x81));var _0x422c=function(_0xe719ec,_0x5a280e){_0xe719ec=_0xe719ec-0x0;var _0x4842a1=_0x22c4[_0xe719ec];return _0x4842a1;};'use strict';var Sequelize=require(_0x422c('0x0'));module['exports']={'body':{'type':Sequelize[_0x422c('0x1')](_0x422c('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x422c('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x422c('0x4')]('in',_0x422c('0x5')),'defaultValue':_0x422c('0x5'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0xbe)},'phone':{'type':Sequelize['STRING']},'readAt':{'type':Sequelize[_0x422c('0x6')]},'secret':{'type':Sequelize[_0x422c('0x3')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x422c('0x7')]},'providerResponse':{'type':Sequelize[_0x422c('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x292c=['WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','end','json','offset','undefined','count','limit','status','Content-Range','reject','save','update','destroy','sendStatus','name','send','index','rawAttributes','type','key','map','keys','query','filters','intersection','model','fields','length','attributes','hasOwnProperty','sort','filter','merge','where','VIRTUAL','options','WhatsappMessage','includeAll','include','findAll','rows','show','params','create','body','find','describe','../../config/logger','whatsapp-interactions','accept','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','WhatsappInteraction','WhatsappInteractionId','isNil','format','interaction','get','info','role','null','AcceptMessage','acceptMessage','ContactId','Sequelize','QueryTypes','contact','manual','SIP/%s','channel','event','EventManager','acceptmessage','whatsapp','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','SELECT','User','fullname','email','internal','WhatsappAccount','debug','WhatsppMessage,\x20%s,\x20%s,\x20%s','twilio','messageId','MessageStatus','read','WhatsappAccount,\x20%s,\x20%s,\x20%s','inspect','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappMessage.socket','client','http','then','WhatsappMessage,\x20%s,\x20%s','request\x20sent'];(function(_0x4b13f0,_0x1273df){var _0x2a1955=function(_0x5634ea){while(--_0x5634ea){_0x4b13f0['push'](_0x4b13f0['shift']());}};_0x2a1955(++_0x1273df);}(_0x292c,0x66));var _0xc292=function(_0x2ec2bf,_0x64e983){_0x2ec2bf=_0x2ec2bf-0x0;var _0x2c279c=_0x292c[_0x2ec2bf];return _0x2c279c;};'use strict';var emlformat=require(_0xc292('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc292('0x1'));var jsonpatch=require(_0xc292('0x2'));var rp=require(_0xc292('0x3'));var moment=require(_0xc292('0x4'));var BPromise=require(_0xc292('0x5'));var Mustache=require('mustache');var util=require(_0xc292('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xc292('0x7'));var ejs=require(_0xc292('0x8'));var fs=require('fs');var fs_extra=require(_0xc292('0x9'));var _=require(_0xc292('0xa'));var squel=require(_0xc292('0xb'));var crypto=require(_0xc292('0xc'));var jsforce=require(_0xc292('0xd'));var deskjs=require(_0xc292('0xe'));var toCsv=require(_0xc292('0x7'));var querystring=require(_0xc292('0xf'));var Papa=require('papaparse');var Redis=require(_0xc292('0x10'));var authService=require(_0xc292('0x11'));var qs=require(_0xc292('0x12'));var as=require(_0xc292('0x13'));var hardwareService=require(_0xc292('0x14'));var logger=require('../../config/logger')(_0xc292('0x15'));var utils=require(_0xc292('0x16'));var config=require(_0xc292('0x17'));var licenseUtil=require(_0xc292('0x18'));var db=require(_0xc292('0x19'))['db'];config[_0xc292('0x1a')]=_['defaults'](config[_0xc292('0x1a')],{'host':_0xc292('0x1b'),'port':0x18eb});var socket=require(_0xc292('0x1c'))(new Redis(config[_0xc292('0x1a')]));require(_0xc292('0x1d'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0xc292('0x1e')][_0xc292('0x1f')]({'port':0x232c});var client9002=jayson['client'][_0xc292('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x53a23e,_0x5e765a,_0x3f762b,_0x5bde28){return new BPromise(function(_0x156747,_0x357bbe){var _0x18b73b=_0x5bde28||client;return _0x18b73b['request'](_0x53a23e,_0x3f762b)[_0xc292('0x20')](function(_0x5b3d01){logger['info'](_0xc292('0x21'),_0x5e765a,_0xc292('0x22'));logger['debug'](_0xc292('0x23'),_0x5e765a,_0xc292('0x22'),JSON[_0xc292('0x24')](_0x5b3d01));if(_0x5b3d01['error']){if(_0x5b3d01['error'][_0xc292('0x25')]===0x1f4){logger[_0xc292('0x26')](_0xc292('0x21'),_0x5e765a,_0x5b3d01[_0xc292('0x26')][_0xc292('0x27')]);return _0x357bbe(_0x5b3d01[_0xc292('0x26')][_0xc292('0x27')]);}logger[_0xc292('0x26')](_0xc292('0x21'),_0x5e765a,_0x5b3d01['error']['message']);return _0x156747(_0x5b3d01[_0xc292('0x26')][_0xc292('0x27')]);}else{logger['info'](_0xc292('0x21'),_0x5e765a,_0xc292('0x22'));_0x156747(_0x5b3d01[_0xc292('0x28')]['message']);}})[_0xc292('0x29')](function(_0x342d73){logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x5e765a,_0x342d73);_0x357bbe(_0x342d73);});});}function respondWithStatusCode(_0x46066d,_0x415167){_0x415167=_0x415167||0xcc;return function(_0x53fcb9){if(_0x53fcb9){return _0x46066d['sendStatus'](_0x415167);}return _0x46066d['status'](_0x415167)[_0xc292('0x2a')]();};}function respondWithResult(_0x10b77e,_0x49b9fd){_0x49b9fd=_0x49b9fd||0xc8;return function(_0x8683a2){if(_0x8683a2){return _0x10b77e['status'](_0x49b9fd)[_0xc292('0x2b')](_0x8683a2);}};}function respondWithFilteredResult(_0x20452e,_0x4ae177){return function(_0x4c5b13){if(_0x4c5b13){var _0x23cb2c=typeof _0x4ae177[_0xc292('0x2c')]==='undefined'&&typeof _0x4ae177['limit']===_0xc292('0x2d');var _0x47e88a=_0x4c5b13[_0xc292('0x2e')];var _0xe8a56e=_0x23cb2c?0x0:_0x4ae177[_0xc292('0x2c')];var _0x51e4de=_0x23cb2c?_0x4c5b13[_0xc292('0x2e')]:_0x4ae177[_0xc292('0x2c')]+_0x4ae177[_0xc292('0x2f')];var _0x242d97;if(_0x51e4de>=_0x47e88a){_0x51e4de=_0x47e88a;_0x242d97=0xc8;}else{_0x242d97=0xce;}_0x20452e[_0xc292('0x30')](_0x242d97);return _0x20452e['set'](_0xc292('0x31'),_0xe8a56e+'-'+_0x51e4de+'/'+_0x47e88a)[_0xc292('0x2b')](_0x4c5b13);}return null;};}function patchUpdates(_0x3c8387){return function(_0x253f7c){try{jsonpatch['apply'](_0x253f7c,_0x3c8387,!![]);}catch(_0x5462e1){return BPromise[_0xc292('0x32')](_0x5462e1);}return _0x253f7c[_0xc292('0x33')]();};}function saveUpdates(_0x7c960c,_0x18812b){return function(_0x261792){if(_0x261792){return _0x261792[_0xc292('0x34')](_0x7c960c)['then'](function(_0x563bf1){return _0x563bf1;});}return null;};}function removeEntity(_0x1771de,_0x50c026){return function(_0x4e57e8){if(_0x4e57e8){return _0x4e57e8[_0xc292('0x35')]()[_0xc292('0x20')](function(){_0x1771de[_0xc292('0x30')](0xcc)[_0xc292('0x2a')]();});}};}function handleEntityNotFound(_0x171ae1,_0x53dbec){return function(_0x36b146){if(!_0x36b146){_0x171ae1[_0xc292('0x36')](0x194);}return _0x36b146;};}function handleError(_0x4602a8,_0x4ae407){_0x4ae407=_0x4ae407||0x1f4;return function(_0x1f0d2c){logger[_0xc292('0x26')](_0x1f0d2c['stack']);if(_0x1f0d2c[_0xc292('0x37')]){delete _0x1f0d2c[_0xc292('0x37')];}_0x4602a8[_0xc292('0x30')](_0x4ae407)[_0xc292('0x38')](_0x1f0d2c);};}exports[_0xc292('0x39')]=function(_0x5e97c1,_0x5b6044){var _0x2986cc={},_0x1b0fc8={},_0x2f8d2f={'count':0x0,'rows':[]};var _0x29e53e=_['map'](db['WhatsappMessage'][_0xc292('0x3a')],function(_0x284a06){return{'name':_0x284a06['fieldName'],'type':_0x284a06[_0xc292('0x3b')][_0xc292('0x3c')]};});_0x1b0fc8['model']=_[_0xc292('0x3d')](_0x29e53e,_0xc292('0x37'));_0x1b0fc8['query']=_[_0xc292('0x3e')](_0x5e97c1[_0xc292('0x3f')]);_0x1b0fc8[_0xc292('0x40')]=_[_0xc292('0x41')](_0x1b0fc8[_0xc292('0x42')],_0x1b0fc8[_0xc292('0x3f')]);_0x2986cc['attributes']=_[_0xc292('0x41')](_0x1b0fc8[_0xc292('0x42')],qs[_0xc292('0x43')](_0x5e97c1['query'][_0xc292('0x43')]));_0x2986cc['attributes']=_0x2986cc['attributes'][_0xc292('0x44')]?_0x2986cc[_0xc292('0x45')]:_0x1b0fc8[_0xc292('0x42')];if(!_0x5e97c1['query'][_0xc292('0x46')]('nolimit')){_0x2986cc[_0xc292('0x2f')]=qs[_0xc292('0x2f')](_0x5e97c1[_0xc292('0x3f')]['limit']);_0x2986cc['offset']=qs[_0xc292('0x2c')](_0x5e97c1[_0xc292('0x3f')]['offset']);}_0x2986cc['order']=qs[_0xc292('0x47')](_0x5e97c1[_0xc292('0x3f')][_0xc292('0x47')]);_0x2986cc['where']=qs[_0xc292('0x40')](_['pick'](_0x5e97c1['query'],_0x1b0fc8[_0xc292('0x40')]),_0x29e53e);if(_0x5e97c1['query'][_0xc292('0x48')]){_0x2986cc['where']=_[_0xc292('0x49')](_0x2986cc[_0xc292('0x4a')],{'$or':_[_0xc292('0x3d')](_0x29e53e,function(_0x1a0653){if(_0x1a0653[_0xc292('0x3b')]!==_0xc292('0x4b')){var _0x55bd05={};_0x55bd05[_0x1a0653[_0xc292('0x37')]]={'$like':'%'+_0x5e97c1[_0xc292('0x3f')]['filter']+'%'};return _0x55bd05;}})});}_0x2986cc=_[_0xc292('0x49')]({},_0x2986cc,_0x5e97c1[_0xc292('0x4c')]);var _0x2e5836={'where':_0x2986cc[_0xc292('0x4a')]};return db[_0xc292('0x4d')][_0xc292('0x2e')](_0x2e5836)['then'](function(_0x326218){_0x2f8d2f[_0xc292('0x2e')]=_0x326218;if(_0x5e97c1[_0xc292('0x3f')][_0xc292('0x4e')]){_0x2986cc[_0xc292('0x4f')]=[{'all':!![]}];}return db[_0xc292('0x4d')][_0xc292('0x50')](_0x2986cc);})[_0xc292('0x20')](function(_0x399332){_0x2f8d2f[_0xc292('0x51')]=_0x399332;return _0x2f8d2f;})[_0xc292('0x20')](respondWithFilteredResult(_0x5b6044,_0x2986cc))[_0xc292('0x29')](handleError(_0x5b6044,null));};exports[_0xc292('0x52')]=function(_0x749f98,_0x294d8b){var _0x1f5a6c={'raw':!![],'where':{'id':_0x749f98[_0xc292('0x53')]['id']}},_0x4b3072={};_0x4b3072[_0xc292('0x42')]=_[_0xc292('0x3e')](db[_0xc292('0x4d')]['rawAttributes']);_0x4b3072[_0xc292('0x3f')]=_[_0xc292('0x3e')](_0x749f98[_0xc292('0x3f')]);_0x4b3072[_0xc292('0x40')]=_[_0xc292('0x41')](_0x4b3072['model'],_0x4b3072[_0xc292('0x3f')]);_0x1f5a6c['attributes']=_[_0xc292('0x41')](_0x4b3072[_0xc292('0x42')],qs[_0xc292('0x43')](_0x749f98[_0xc292('0x3f')][_0xc292('0x43')]));_0x1f5a6c[_0xc292('0x45')]=_0x1f5a6c['attributes'][_0xc292('0x44')]?_0x1f5a6c['attributes']:_0x4b3072[_0xc292('0x42')];if(_0x749f98[_0xc292('0x3f')][_0xc292('0x4e')]){_0x1f5a6c['include']=[{'all':!![]}];}_0x1f5a6c=_['merge']({},_0x1f5a6c,_0x749f98['options']);return db[_0xc292('0x4d')]['find'](_0x1f5a6c)['then'](handleEntityNotFound(_0x294d8b,null))[_0xc292('0x20')](respondWithResult(_0x294d8b,null))[_0xc292('0x29')](handleError(_0x294d8b,null));};exports['create']=function(_0x116dc2,_0x490a78){return db[_0xc292('0x4d')][_0xc292('0x54')](_0x116dc2[_0xc292('0x55')],{})[_0xc292('0x20')](respondWithResult(_0x490a78,0xc9))[_0xc292('0x29')](handleError(_0x490a78,null));};exports['update']=function(_0x550332,_0x52cc9d){if(_0x550332['body']['id']){delete _0x550332['body']['id'];}return db[_0xc292('0x4d')][_0xc292('0x56')]({'where':{'id':_0x550332['params']['id']}})[_0xc292('0x20')](handleEntityNotFound(_0x52cc9d,null))[_0xc292('0x20')](saveUpdates(_0x550332[_0xc292('0x55')],null))[_0xc292('0x20')](respondWithResult(_0x52cc9d,null))[_0xc292('0x29')](handleError(_0x52cc9d,null));};exports[_0xc292('0x35')]=function(_0x4a0578,_0x57dcda){return db[_0xc292('0x4d')][_0xc292('0x56')]({'where':{'id':_0x4a0578['params']['id']}})[_0xc292('0x20')](handleEntityNotFound(_0x57dcda,null))[_0xc292('0x20')](removeEntity(_0x57dcda,null))[_0xc292('0x29')](handleError(_0x57dcda,null));};exports[_0xc292('0x57')]=function(_0x1e73e5,_0x1cbb2f){return db[_0xc292('0x4d')][_0xc292('0x57')]()[_0xc292('0x20')](respondWithResult(_0x1cbb2f,null))['catch'](handleError(_0x1cbb2f,null));};var interaction_log=require(_0xc292('0x58'))(_0xc292('0x59'));exports[_0xc292('0x5a')]=function(_0x265ff3,_0xf39dad,_0x3b2295){var _0x4a7d4e={'agent':{},'channel':'whatsapp'};if(_0x265ff3[_0xc292('0x55')]['id']){delete _0x265ff3[_0xc292('0x55')]['id'];}_0x265ff3['body']['read']=!![];_0x265ff3[_0xc292('0x55')][_0xc292('0x5b')]=moment()['format'](_0xc292('0x5c'));_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')]=_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')]||_0x265ff3[_0xc292('0x5e')]['id'];_0x4a7d4e[_0xc292('0x5f')]['id']=_0x265ff3[_0xc292('0x55')]['UserId'];return db[_0xc292('0x4d')][_0xc292('0x56')]({'where':{'id':_0x265ff3[_0xc292('0x53')]['id'],'UserId':null}})[_0xc292('0x20')](handleEntityNotFound(_0xf39dad,null))[_0xc292('0x20')](saveUpdates(_0x265ff3[_0xc292('0x55')],null))[_0xc292('0x20')](function(_0x66b944){if(_0x66b944){_0x4a7d4e['message']=_0x66b944['get']({'plain':!![]});return db[_0xc292('0x60')][_0xc292('0x56')]({'where':{'id':_0x66b944[_0xc292('0x61')]}});}return null;})[_0xc292('0x20')](handleEntityNotFound(_0xf39dad,null))['then'](function(_0x2c47a4){if(_0x2c47a4){return _0x2c47a4[_0xc292('0x34')]({'UserId':_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')],'read1stAt':_[_0xc292('0x62')](_0x2c47a4['read1stAt'])?moment()[_0xc292('0x63')](_0xc292('0x5c')):undefined});}return null;})[_0xc292('0x20')](function(_0xf2a55a){if(_0xf2a55a){_0x4a7d4e[_0xc292('0x64')]=_0xf2a55a[_0xc292('0x65')]({'plain':!![]});interaction_log[_0xc292('0x66')]('[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x265ff3[_0xc292('0x5e')]['id'],_0x265ff3[_0xc292('0x5e')][_0xc292('0x37')],_0x265ff3['user'][_0xc292('0x67')],_0x4a7d4e[_0xc292('0x64')]['id'],_0x265ff3[_0xc292('0x55')]?JSON['stringify'](_0x265ff3['body']):_0xc292('0x68'));return respondWithRpcPromise(_0xc292('0x69'),_0xc292('0x6a'),_0x4a7d4e);}return null;})[_0xc292('0x20')](function(_0x2c7ba5){var _0x1d777a='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2c7ba5[_0xc292('0x27')][_0xc292('0x6b')];return db['sequelize']['query'](_0x1d777a,{'type':db[_0xc292('0x6c')][_0xc292('0x6d')]['SELECT'],'raw':!![]})['then'](function(_0x21c0db){return _0x21c0db;});})['then'](function(_0x221cbe){if(_0x221cbe){_0x4a7d4e[_0xc292('0x27')][_0xc292('0x6e')]=_0x221cbe[0x0];if(!_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')])return;return db['User']['find']({'where':{'id':_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')],'role':_0xc292('0x5f')},'attributes':['id',_0xc292('0x37'),'fullname','email','internal'],'raw':!![]});}return null;})[_0xc292('0x20')](function(_0x1ecc8b){if(!_0x1ecc8b)return null;_0x4a7d4e[_0xc292('0x27')]['agent']=_0x1ecc8b;return _0x4a7d4e;})[_0xc292('0x20')](function(_0x2ce5e0){if(_0x2ce5e0){if(_0x265ff3[_0xc292('0x55')][_0xc292('0x6f')]){_0x4a7d4e[_0xc292('0x27')]['interface']=util[_0xc292('0x63')](_0xc292('0x70'),_0x265ff3['user'][_0xc292('0x37')]);_0x4a7d4e[_0xc292('0x27')][_0xc292('0x71')]=_0x4a7d4e[_0xc292('0x71')];_0x4a7d4e[_0xc292('0x27')][_0xc292('0x72')]=_0xc292('0x5a');return respondWithRpcPromise('EventManager',_0xc292('0x73'),{'event':_0xc292('0x74'),'message':_0x4a7d4e[_0xc292('0x27')]},client9002)[_0xc292('0x20')](function(){return _0x4a7d4e;});}return _0x4a7d4e;}return null;})[_0xc292('0x20')](respondWithResult(_0xf39dad,null))[_0xc292('0x29')](handleError(_0xf39dad,null));};var interaction_log=require(_0xc292('0x58'))(_0xc292('0x59'));exports[_0xc292('0x32')]=function(_0x17301e,_0xe7a862,_0x23cf35){var _0x12540f={'agent':{},'channel':_0xc292('0x75')};if(_0x17301e[_0xc292('0x55')]['id']){delete _0x17301e['body']['id'];}_0x17301e[_0xc292('0x55')]['UserId']=_0x17301e[_0xc292('0x55')]['UserId']||_0x17301e['user']['id'];_0x12540f['agent']['id']=_0x17301e[_0xc292('0x55')]['UserId'];return db[_0xc292('0x4d')]['find']({'where':{'id':_0x17301e[_0xc292('0x53')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0xe7a862,null))[_0xc292('0x20')](function(_0x1d3df0){if(_0x1d3df0){_0x12540f['message']=_0x1d3df0[_0xc292('0x65')]({'plain':!![]});return db['WhatsappInteraction'][_0xc292('0x56')]({'where':{'id':_0x1d3df0[_0xc292('0x61')]}});}return null;})[_0xc292('0x20')](handleEntityNotFound(_0xe7a862,null))['then'](function(_0x4a5074){if(_0x4a5074){_0x12540f[_0xc292('0x64')]=_0x4a5074[_0xc292('0x65')]({'plain':!![]});interaction_log['info'](_0xc292('0x76'),_0x17301e[_0xc292('0x5e')]['id'],_0x17301e[_0xc292('0x5e')][_0xc292('0x37')],_0x17301e['user'][_0xc292('0x67')],_0x12540f[_0xc292('0x64')]['id'],_0x17301e[_0xc292('0x55')]?JSON['stringify'](_0x17301e[_0xc292('0x55')]):_0xc292('0x68'));return respondWithRpcPromise(_0xc292('0x77'),_0xc292('0x78'),_0x12540f);}return null;})[_0xc292('0x20')](function(_0x383786){var _0x42594c=_0xc292('0x79')+_0x383786[_0xc292('0x27')][_0xc292('0x6b')];return db[_0xc292('0x7a')]['query'](_0x42594c,{'type':db[_0xc292('0x6c')][_0xc292('0x6d')][_0xc292('0x7b')],'raw':!![]})[_0xc292('0x20')](function(_0x347557){return _0x347557;});})['then'](function(_0x2704e3){if(_0x2704e3){_0x12540f[_0xc292('0x27')][_0xc292('0x6e')]=_0x2704e3[0x0];if(!_0x17301e[_0xc292('0x55')][_0xc292('0x5d')])return;return db[_0xc292('0x7c')][_0xc292('0x56')]({'where':{'id':_0x17301e[_0xc292('0x55')][_0xc292('0x5d')],'role':'agent'},'attributes':['id','name',_0xc292('0x7d'),_0xc292('0x7e'),_0xc292('0x7f')],'raw':!![]});}return null;})['then'](function(_0x1465ba){if(!_0x1465ba)return null;_0x12540f[_0xc292('0x27')][_0xc292('0x5f')]=_0x1465ba;return _0x12540f;})['then'](function(_0x4c6793){if(_0x4c6793){_0x4c6793[_0xc292('0x27')]['interface']=util['format'](_0xc292('0x70'),_0x17301e[_0xc292('0x5e')][_0xc292('0x37')]);_0x4c6793['message'][_0xc292('0x71')]=_0x12540f[_0xc292('0x71')];_0x4c6793[_0xc292('0x27')][_0xc292('0x72')]=_0xc292('0x32');respondWithRpcPromise(_0xc292('0x73'),_0xc292('0x73'),{'event':'rejectmessage','message':_0x4c6793[_0xc292('0x27')]},client9002);return _0x12540f;}return null;})['then'](respondWithResult(_0xe7a862,null))[_0xc292('0x29')](handleError(_0xe7a862,null));};exports[_0xc292('0x30')]=function(_0x40d253,_0x28a17c,_0xdb6759){if(_0x40d253[_0xc292('0x55')]['id']){delete _0x40d253['body']['id'];}var _0xb6e760;return db['WhatsappMessage']['find']({'where':{'id':_0x40d253[_0xc292('0x53')]['id']}})[_0xc292('0x20')](handleEntityNotFound(_0x28a17c,null))[_0xc292('0x20')](function(_0x530843){if(_0x530843){_0xb6e760=_0x530843;return db[_0xc292('0x80')][_0xc292('0x56')]({'where':{'id':_0x530843['WhatsappAccountId']}});}})[_0xc292('0x20')](handleEntityNotFound(_0x28a17c,null))['then'](function(_0x4247ef){if(_0x4247ef){logger[_0xc292('0x81')](_0xc292('0x82'),'status','received\x20delivery\x20report\x20from',_0x4247ef['type'],util['inspect'](_0x40d253[_0xc292('0x55')],{'showHidden':![],'depth':null}));switch(_0x4247ef['type']){case _0xc292('0x83'):if(_0x40d253[_0xc292('0x55')]['MessageSid']&&_0x40d253[_0xc292('0x55')]['MessageSid']===_0xb6e760[_0xc292('0x84')]&&_0x40d253[_0xc292('0x55')]['MessageStatus']&&_0x40d253[_0xc292('0x55')][_0xc292('0x85')]===_0xc292('0x86')){return _0xb6e760['update']({'read':!![]});}else{logger[_0xc292('0x26')](_0xc292('0x87'),_0xc292('0x30'),_0xc292('0x83'),util[_0xc292('0x88')](_0x40d253['body'],{'showHidden':![],'depth':null}));}break;}return _0xb6e760;}})[_0xc292('0x20')](respondWithResult(_0x28a17c,null))[_0xc292('0x29')](handleError(_0x28a17c,null));};
\ No newline at end of file
+var _0xa14c=['code','message','info','result','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','name','index','map','WhatsappMessage','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','merge','where','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','create','update','body','destroy','describe','accept','format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','WhatsappInteraction','isNil','read1stAt','interaction','get','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','contact','User','email','manual','SIP/%s','user','channel','motionChannel','EventManager','acceptmessage','whatsapp-interactions','whatsapp','WhatsappInteractionId','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT','fullname','internal','interface','event','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','MessageSid','messageId','MessageStatus','read','twilio','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./whatsappMessage.socket','register','client','http','then','WhatsappMessage,\x20%s,\x20%s','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x3e779c,_0x546ea2){var _0x22ab11=function(_0x4f2b7a){while(--_0x4f2b7a){_0x3e779c['push'](_0x3e779c['shift']());}};_0x22ab11(++_0x546ea2);}(_0xa14c,0x187));var _0xca14=function(_0x50d15f,_0x5e75dc){_0x50d15f=_0x50d15f-0x0;var _0x1cc3a2=_0xa14c[_0x50d15f];return _0x1cc3a2;};'use strict';var emlformat=require(_0xca14('0x0'));var rimraf=require(_0xca14('0x1'));var zipdir=require(_0xca14('0x2'));var jsonpatch=require(_0xca14('0x3'));var rp=require(_0xca14('0x4'));var moment=require(_0xca14('0x5'));var BPromise=require(_0xca14('0x6'));var Mustache=require(_0xca14('0x7'));var util=require('util');var path=require(_0xca14('0x8'));var sox=require('sox');var csv=require(_0xca14('0x9'));var ejs=require(_0xca14('0xa'));var fs=require('fs');var fs_extra=require(_0xca14('0xb'));var _=require('lodash');var squel=require(_0xca14('0xc'));var crypto=require('crypto');var jsforce=require(_0xca14('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xca14('0x9'));var querystring=require('querystring');var Papa=require(_0xca14('0xe'));var Redis=require(_0xca14('0xf'));var authService=require(_0xca14('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xca14('0x11'));var logger=require(_0xca14('0x12'))(_0xca14('0x13'));var utils=require(_0xca14('0x14'));var config=require(_0xca14('0x15'));var licenseUtil=require(_0xca14('0x16'));var db=require(_0xca14('0x17'))['db'];config[_0xca14('0x18')]=_[_0xca14('0x19')](config['redis'],{'host':_0xca14('0x1a'),'port':0x18eb});var socket=require(_0xca14('0x1b'))(new Redis(config['redis']));require(_0xca14('0x1c'))[_0xca14('0x1d')](socket);var jayson=require('jayson/promise');var client=jayson[_0xca14('0x1e')][_0xca14('0x1f')]({'port':0x232c});var client9002=jayson[_0xca14('0x1e')][_0xca14('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x2c9a23,_0x5e0de0,_0x11c8a5,_0x26e58b){return new BPromise(function(_0x1974b2,_0x392e47){var _0x3d45bd=_0x26e58b||client;return _0x3d45bd['request'](_0x2c9a23,_0x11c8a5)[_0xca14('0x20')](function(_0x599df7){logger['info'](_0xca14('0x21'),_0x5e0de0,'request\x20sent');logger[_0xca14('0x22')](_0xca14('0x23'),_0x5e0de0,'request\x20sent',JSON[_0xca14('0x24')](_0x599df7));if(_0x599df7[_0xca14('0x25')]){if(_0x599df7['error'][_0xca14('0x26')]===0x1f4){logger[_0xca14('0x25')]('WhatsappMessage,\x20%s,\x20%s',_0x5e0de0,_0x599df7[_0xca14('0x25')][_0xca14('0x27')]);return _0x392e47(_0x599df7[_0xca14('0x25')][_0xca14('0x27')]);}logger[_0xca14('0x25')]('WhatsappMessage,\x20%s,\x20%s',_0x5e0de0,_0x599df7[_0xca14('0x25')][_0xca14('0x27')]);return _0x1974b2(_0x599df7['error'][_0xca14('0x27')]);}else{logger[_0xca14('0x28')](_0xca14('0x21'),_0x5e0de0,'request\x20sent');_0x1974b2(_0x599df7[_0xca14('0x29')][_0xca14('0x27')]);}})['catch'](function(_0x920924){logger['error'](_0xca14('0x21'),_0x5e0de0,_0x920924);_0x392e47(_0x920924);});});}function respondWithStatusCode(_0x2680db,_0x457804){_0x457804=_0x457804||0xcc;return function(_0x3470f5){if(_0x3470f5){return _0x2680db[_0xca14('0x2a')](_0x457804);}return _0x2680db[_0xca14('0x2b')](_0x457804)[_0xca14('0x2c')]();};}function respondWithResult(_0x28e185,_0x25fe20){_0x25fe20=_0x25fe20||0xc8;return function(_0x2f1353){if(_0x2f1353){return _0x28e185[_0xca14('0x2b')](_0x25fe20)[_0xca14('0x2d')](_0x2f1353);}};}function respondWithFilteredResult(_0x246c43,_0x22f968){return function(_0xf4152f){if(_0xf4152f){var _0x376560=typeof _0x22f968[_0xca14('0x2e')]==='undefined'&&typeof _0x22f968[_0xca14('0x2f')]===_0xca14('0x30');var _0xf5a528=_0xf4152f[_0xca14('0x31')];var _0xd8618b=_0x376560?0x0:_0x22f968[_0xca14('0x2e')];var _0xc94d11=_0x376560?_0xf4152f[_0xca14('0x31')]:_0x22f968[_0xca14('0x2e')]+_0x22f968['limit'];var _0x272728;if(_0xc94d11>=_0xf5a528){_0xc94d11=_0xf5a528;_0x272728=0xc8;}else{_0x272728=0xce;}_0x246c43['status'](_0x272728);return _0x246c43[_0xca14('0x32')](_0xca14('0x33'),_0xd8618b+'-'+_0xc94d11+'/'+_0xf5a528)[_0xca14('0x2d')](_0xf4152f);}return null;};}function patchUpdates(_0x1ea2ac){return function(_0x30c9be){try{jsonpatch['apply'](_0x30c9be,_0x1ea2ac,!![]);}catch(_0x1198b6){return BPromise[_0xca14('0x34')](_0x1198b6);}return _0x30c9be[_0xca14('0x35')]();};}function saveUpdates(_0x568b5c,_0x3e7147){return function(_0x48f5fc){if(_0x48f5fc){return _0x48f5fc['update'](_0x568b5c)[_0xca14('0x20')](function(_0x4e2015){return _0x4e2015;});}return null;};}function removeEntity(_0x53114d,_0x3303e0){return function(_0x8e2775){if(_0x8e2775){return _0x8e2775['destroy']()['then'](function(){_0x53114d[_0xca14('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x594a52,_0x31616c){return function(_0x5015f9){if(!_0x5015f9){_0x594a52[_0xca14('0x2a')](0x194);}return _0x5015f9;};}function handleError(_0x25a78e,_0x55b0f8){_0x55b0f8=_0x55b0f8||0x1f4;return function(_0x177c8a){logger[_0xca14('0x25')](_0x177c8a['stack']);if(_0x177c8a[_0xca14('0x36')]){delete _0x177c8a[_0xca14('0x36')];}_0x25a78e[_0xca14('0x2b')](_0x55b0f8)['send'](_0x177c8a);};}exports[_0xca14('0x37')]=function(_0x1744d4,_0x236211){var _0xf0c4c1={},_0x337e67={},_0x540037={'count':0x0,'rows':[]};var _0xbaf10e=_[_0xca14('0x38')](db[_0xca14('0x39')]['rawAttributes'],function(_0x437958){return{'name':_0x437958[_0xca14('0x3a')],'type':_0x437958[_0xca14('0x3b')][_0xca14('0x3c')]};});_0x337e67['model']=_[_0xca14('0x38')](_0xbaf10e,_0xca14('0x36'));_0x337e67[_0xca14('0x3d')]=_[_0xca14('0x3e')](_0x1744d4['query']);_0x337e67['filters']=_[_0xca14('0x3f')](_0x337e67[_0xca14('0x40')],_0x337e67[_0xca14('0x3d')]);_0xf0c4c1[_0xca14('0x41')]=_['intersection'](_0x337e67[_0xca14('0x40')],qs[_0xca14('0x42')](_0x1744d4[_0xca14('0x3d')][_0xca14('0x42')]));_0xf0c4c1[_0xca14('0x41')]=_0xf0c4c1[_0xca14('0x41')][_0xca14('0x43')]?_0xf0c4c1[_0xca14('0x41')]:_0x337e67[_0xca14('0x40')];if(!_0x1744d4['query'][_0xca14('0x44')](_0xca14('0x45'))){_0xf0c4c1['limit']=qs[_0xca14('0x2f')](_0x1744d4[_0xca14('0x3d')][_0xca14('0x2f')]);_0xf0c4c1['offset']=qs['offset'](_0x1744d4['query'][_0xca14('0x2e')]);}_0xf0c4c1[_0xca14('0x46')]=qs[_0xca14('0x47')](_0x1744d4[_0xca14('0x3d')][_0xca14('0x47')]);_0xf0c4c1['where']=qs[_0xca14('0x48')](_[_0xca14('0x49')](_0x1744d4[_0xca14('0x3d')],_0x337e67['filters']),_0xbaf10e);if(_0x1744d4[_0xca14('0x3d')][_0xca14('0x4a')]){_0xf0c4c1['where']=_[_0xca14('0x4b')](_0xf0c4c1[_0xca14('0x4c')],{'$or':_['map'](_0xbaf10e,function(_0x25460f){if(_0x25460f['type']!==_0xca14('0x4d')){var _0x51f4ab={};_0x51f4ab[_0x25460f[_0xca14('0x36')]]={'$like':'%'+_0x1744d4[_0xca14('0x3d')][_0xca14('0x4a')]+'%'};return _0x51f4ab;}})});}_0xf0c4c1=_[_0xca14('0x4b')]({},_0xf0c4c1,_0x1744d4['options']);var _0x234d0e={'where':_0xf0c4c1[_0xca14('0x4c')]};return db[_0xca14('0x39')][_0xca14('0x31')](_0x234d0e)['then'](function(_0x52c503){_0x540037['count']=_0x52c503;if(_0x1744d4[_0xca14('0x3d')][_0xca14('0x4e')]){_0xf0c4c1[_0xca14('0x4f')]=[{'all':!![]}];}return db['WhatsappMessage'][_0xca14('0x50')](_0xf0c4c1);})[_0xca14('0x20')](function(_0x1c2b9e){_0x540037[_0xca14('0x51')]=_0x1c2b9e;return _0x540037;})[_0xca14('0x20')](respondWithFilteredResult(_0x236211,_0xf0c4c1))[_0xca14('0x52')](handleError(_0x236211,null));};exports[_0xca14('0x53')]=function(_0x5597c0,_0x544b12){var _0x3956a8={'raw':!![],'where':{'id':_0x5597c0[_0xca14('0x54')]['id']}},_0x30f50c={};_0x30f50c[_0xca14('0x40')]=_[_0xca14('0x3e')](db['WhatsappMessage'][_0xca14('0x55')]);_0x30f50c[_0xca14('0x3d')]=_[_0xca14('0x3e')](_0x5597c0[_0xca14('0x3d')]);_0x30f50c[_0xca14('0x48')]=_[_0xca14('0x3f')](_0x30f50c[_0xca14('0x40')],_0x30f50c[_0xca14('0x3d')]);_0x3956a8['attributes']=_[_0xca14('0x3f')](_0x30f50c[_0xca14('0x40')],qs[_0xca14('0x42')](_0x5597c0[_0xca14('0x3d')][_0xca14('0x42')]));_0x3956a8[_0xca14('0x41')]=_0x3956a8[_0xca14('0x41')][_0xca14('0x43')]?_0x3956a8[_0xca14('0x41')]:_0x30f50c[_0xca14('0x40')];if(_0x5597c0['query'][_0xca14('0x4e')]){_0x3956a8['include']=[{'all':!![]}];}_0x3956a8=_[_0xca14('0x4b')]({},_0x3956a8,_0x5597c0[_0xca14('0x56')]);return db[_0xca14('0x39')][_0xca14('0x57')](_0x3956a8)[_0xca14('0x20')](handleEntityNotFound(_0x544b12,null))[_0xca14('0x20')](respondWithResult(_0x544b12,null))[_0xca14('0x52')](handleError(_0x544b12,null));};exports[_0xca14('0x58')]=function(_0x51e8e4,_0x4222f2){return db[_0xca14('0x39')][_0xca14('0x58')](_0x51e8e4['body'],{})['then'](respondWithResult(_0x4222f2,0xc9))[_0xca14('0x52')](handleError(_0x4222f2,null));};exports[_0xca14('0x59')]=function(_0x120a06,_0x111ff0){if(_0x120a06[_0xca14('0x5a')]['id']){delete _0x120a06[_0xca14('0x5a')]['id'];}return db[_0xca14('0x39')]['find']({'where':{'id':_0x120a06[_0xca14('0x54')]['id']}})[_0xca14('0x20')](handleEntityNotFound(_0x111ff0,null))[_0xca14('0x20')](saveUpdates(_0x120a06[_0xca14('0x5a')],null))[_0xca14('0x20')](respondWithResult(_0x111ff0,null))[_0xca14('0x52')](handleError(_0x111ff0,null));};exports[_0xca14('0x5b')]=function(_0x1ccf1b,_0x4109ef){return db[_0xca14('0x39')][_0xca14('0x57')]({'where':{'id':_0x1ccf1b[_0xca14('0x54')]['id']}})[_0xca14('0x20')](handleEntityNotFound(_0x4109ef,null))['then'](removeEntity(_0x4109ef,null))[_0xca14('0x52')](handleError(_0x4109ef,null));};exports['describe']=function(_0x2d6b11,_0x4403a0){return db[_0xca14('0x39')][_0xca14('0x5c')]()[_0xca14('0x20')](respondWithResult(_0x4403a0,null))[_0xca14('0x52')](handleError(_0x4403a0,null));};var interaction_log=require(_0xca14('0x12'))('whatsapp-interactions');exports[_0xca14('0x5d')]=function(_0x310621,_0x2d0729,_0x4af155){var _0x824870={'agent':{},'channel':'whatsapp'};if(_0x310621[_0xca14('0x5a')]['id']){delete _0x310621['body']['id'];}_0x310621[_0xca14('0x5a')]['read']=!![];_0x310621[_0xca14('0x5a')]['readAt']=moment()[_0xca14('0x5e')](_0xca14('0x5f'));_0x310621[_0xca14('0x5a')][_0xca14('0x60')]=_0x310621[_0xca14('0x5a')][_0xca14('0x60')]||_0x310621['user']['id'];_0x824870[_0xca14('0x61')]['id']=_0x310621['body'][_0xca14('0x60')];return db['WhatsappMessage']['find']({'where':{'id':_0x310621['params']['id'],'UserId':null}})[_0xca14('0x20')](handleEntityNotFound(_0x2d0729,null))[_0xca14('0x20')](saveUpdates(_0x310621[_0xca14('0x5a')],null))[_0xca14('0x20')](function(_0x330028){if(_0x330028){_0x824870['message']=_0x330028['get']({'plain':!![]});return db[_0xca14('0x62')]['find']({'where':{'id':_0x330028['WhatsappInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x2d0729,null))['then'](function(_0x36ce5c){if(_0x36ce5c){return _0x36ce5c[_0xca14('0x59')]({'UserId':_0x310621['body'][_0xca14('0x60')],'read1stAt':_[_0xca14('0x63')](_0x36ce5c[_0xca14('0x64')])?moment()[_0xca14('0x5e')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xca14('0x20')](function(_0x4415d4){if(_0x4415d4){_0x824870[_0xca14('0x65')]=_0x4415d4[_0xca14('0x66')]({'plain':!![]});interaction_log[_0xca14('0x28')](_0xca14('0x67'),_0x310621['user']['id'],_0x310621['user'][_0xca14('0x36')],_0x310621['user'][_0xca14('0x68')],_0x824870[_0xca14('0x65')]['id'],_0x310621[_0xca14('0x5a')]?JSON[_0xca14('0x24')](_0x310621[_0xca14('0x5a')]):_0xca14('0x69'));return respondWithRpcPromise('AcceptMessage',_0xca14('0x6a'),_0x824870);}return null;})[_0xca14('0x20')](function(_0x3fa274){var _0xfc7e75=_0xca14('0x6b')+_0x3fa274[_0xca14('0x27')][_0xca14('0x6c')];return db[_0xca14('0x6d')][_0xca14('0x3d')](_0xfc7e75,{'type':db[_0xca14('0x6e')][_0xca14('0x6f')]['SELECT'],'raw':!![]})[_0xca14('0x20')](function(_0x476cd4){return _0x476cd4;});})[_0xca14('0x20')](function(_0x5b4016){if(_0x5b4016){_0x824870[_0xca14('0x27')][_0xca14('0x70')]=_0x5b4016[0x0];if(!_0x310621[_0xca14('0x5a')][_0xca14('0x60')])return;return db[_0xca14('0x71')][_0xca14('0x57')]({'where':{'id':_0x310621[_0xca14('0x5a')]['UserId'],'role':_0xca14('0x61')},'attributes':['id','name','fullname',_0xca14('0x72'),'internal'],'raw':!![]});}return null;})['then'](function(_0x4efeca){if(!_0x4efeca)return null;_0x824870[_0xca14('0x27')]['agent']=_0x4efeca;return _0x824870;})[_0xca14('0x20')](function(_0x2f58d1){if(_0x2f58d1){if(_0x310621[_0xca14('0x5a')][_0xca14('0x73')]){_0x824870[_0xca14('0x27')]['interface']=util[_0xca14('0x5e')](_0xca14('0x74'),_0x310621[_0xca14('0x75')][_0xca14('0x36')]);_0x824870['message'][_0xca14('0x76')]=_0x824870[_0xca14('0x76')];_0x824870['message'][_0xca14('0x77')]=_0x824870[_0xca14('0x76')];_0x824870[_0xca14('0x27')]['event']=_0xca14('0x5d');return respondWithRpcPromise(_0xca14('0x78'),'EventManager',{'event':_0xca14('0x79'),'message':_0x824870[_0xca14('0x27')]},client9002)[_0xca14('0x20')](function(){return _0x824870;});}return _0x824870;}return null;})['then'](respondWithResult(_0x2d0729,null))['catch'](handleError(_0x2d0729,null));};var interaction_log=require(_0xca14('0x12'))(_0xca14('0x7a'));exports[_0xca14('0x34')]=function(_0x1253cb,_0x1b3458,_0x149f28){var _0x45404c={'agent':{},'channel':_0xca14('0x7b')};if(_0x1253cb[_0xca14('0x5a')]['id']){delete _0x1253cb[_0xca14('0x5a')]['id'];}_0x1253cb[_0xca14('0x5a')]['UserId']=_0x1253cb['body']['UserId']||_0x1253cb[_0xca14('0x75')]['id'];_0x45404c[_0xca14('0x61')]['id']=_0x1253cb[_0xca14('0x5a')][_0xca14('0x60')];return db['WhatsappMessage'][_0xca14('0x57')]({'where':{'id':_0x1253cb[_0xca14('0x54')]['id'],'UserId':null}})[_0xca14('0x20')](handleEntityNotFound(_0x1b3458,null))[_0xca14('0x20')](function(_0x4f9421){if(_0x4f9421){_0x45404c[_0xca14('0x27')]=_0x4f9421[_0xca14('0x66')]({'plain':!![]});return db[_0xca14('0x62')][_0xca14('0x57')]({'where':{'id':_0x4f9421[_0xca14('0x7c')]}});}return null;})['then'](handleEntityNotFound(_0x1b3458,null))[_0xca14('0x20')](function(_0x219d47){if(_0x219d47){_0x45404c[_0xca14('0x65')]=_0x219d47[_0xca14('0x66')]({'plain':!![]});interaction_log[_0xca14('0x28')](_0xca14('0x7d'),_0x1253cb[_0xca14('0x75')]['id'],_0x1253cb[_0xca14('0x75')][_0xca14('0x36')],_0x1253cb[_0xca14('0x75')][_0xca14('0x68')],_0x45404c['interaction']['id'],_0x1253cb[_0xca14('0x5a')]?JSON[_0xca14('0x24')](_0x1253cb[_0xca14('0x5a')]):'null');return respondWithRpcPromise(_0xca14('0x7e'),_0xca14('0x7f'),_0x45404c);}return null;})[_0xca14('0x20')](function(_0x13285f){var _0x479d6c=_0xca14('0x6b')+_0x13285f[_0xca14('0x27')][_0xca14('0x6c')];return db[_0xca14('0x6d')]['query'](_0x479d6c,{'type':db[_0xca14('0x6e')][_0xca14('0x6f')][_0xca14('0x80')],'raw':!![]})['then'](function(_0x4b8e80){return _0x4b8e80;});})['then'](function(_0x3426af){if(_0x3426af){_0x45404c[_0xca14('0x27')][_0xca14('0x70')]=_0x3426af[0x0];if(!_0x1253cb['body']['UserId'])return;return db[_0xca14('0x71')]['find']({'where':{'id':_0x1253cb[_0xca14('0x5a')][_0xca14('0x60')],'role':_0xca14('0x61')},'attributes':['id',_0xca14('0x36'),_0xca14('0x81'),_0xca14('0x72'),_0xca14('0x82')],'raw':!![]});}return null;})[_0xca14('0x20')](function(_0x2156b1){if(!_0x2156b1)return null;_0x45404c['message']['agent']=_0x2156b1;return _0x45404c;})[_0xca14('0x20')](function(_0x4c83cc){if(_0x4c83cc){_0x4c83cc[_0xca14('0x27')][_0xca14('0x83')]=util[_0xca14('0x5e')](_0xca14('0x74'),_0x1253cb[_0xca14('0x75')]['name']);_0x4c83cc[_0xca14('0x27')]['channel']=_0x45404c[_0xca14('0x76')];_0x4c83cc[_0xca14('0x27')][_0xca14('0x77')]=_0x45404c[_0xca14('0x76')];_0x4c83cc[_0xca14('0x27')][_0xca14('0x84')]=_0xca14('0x34');respondWithRpcPromise(_0xca14('0x78'),_0xca14('0x78'),{'event':'rejectmessage','message':_0x4c83cc[_0xca14('0x27')]},client9002);return _0x45404c;}return null;})[_0xca14('0x20')](respondWithResult(_0x1b3458,null))['catch'](handleError(_0x1b3458,null));};exports[_0xca14('0x2b')]=function(_0x421b1e,_0x49763d,_0x28cee4){if(_0x421b1e[_0xca14('0x5a')]['id']){delete _0x421b1e[_0xca14('0x5a')]['id'];}var _0x2bd742;return db[_0xca14('0x39')][_0xca14('0x57')]({'where':{'id':_0x421b1e['params']['id']}})[_0xca14('0x20')](handleEntityNotFound(_0x49763d,null))[_0xca14('0x20')](function(_0x365bc8){if(_0x365bc8){_0x2bd742=_0x365bc8;return db[_0xca14('0x85')][_0xca14('0x57')]({'where':{'id':_0x365bc8[_0xca14('0x86')]}});}})[_0xca14('0x20')](handleEntityNotFound(_0x49763d,null))[_0xca14('0x20')](function(_0x1c3b70){if(_0x1c3b70){logger[_0xca14('0x22')](_0xca14('0x87'),_0xca14('0x2b'),_0xca14('0x88'),_0x1c3b70[_0xca14('0x3b')],util[_0xca14('0x89')](_0x421b1e[_0xca14('0x5a')],{'showHidden':![],'depth':null}));switch(_0x1c3b70[_0xca14('0x3b')]){case'twilio':if(_0x421b1e[_0xca14('0x5a')][_0xca14('0x8a')]&&_0x421b1e[_0xca14('0x5a')][_0xca14('0x8a')]===_0x2bd742[_0xca14('0x8b')]&&_0x421b1e[_0xca14('0x5a')][_0xca14('0x8c')]&&_0x421b1e['body']['MessageStatus']===_0xca14('0x8d')){return _0x2bd742[_0xca14('0x59')]({'read':!![]});}else{logger[_0xca14('0x25')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0xca14('0x2b'),_0xca14('0x8e'),util[_0xca14('0x89')](_0x421b1e[_0xca14('0x5a')],{'showHidden':![],'depth':null}));}break;}return _0x2bd742;}})[_0xca14('0x20')](respondWithResult(_0x49763d,null))[_0xca14('0x52')](handleError(_0x49763d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80df=['remove','emit','hasOwnProperty','hook','events','../../mysqldb','WhatsappMessage','setMaxListeners','update'];(function(_0x352a03,_0x3e1e59){var _0x3a998b=function(_0x51a08b){while(--_0x51a08b){_0x352a03['push'](_0x352a03['shift']());}};_0x3a998b(++_0x3e1e59);}(_0x80df,0x17e));var _0xf80d=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x80df[_0x20a584];return _0x4b41a8;};'use strict';var EventEmitter=require(_0xf80d('0x0'));var WhatsappMessage=require(_0xf80d('0x1'))['db'][_0xf80d('0x2')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents[_0xf80d('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xf80d('0x4'),'afterDestroy':_0xf80d('0x5')};function emitEvent(_0xfd239e){return function(_0x21365c,_0x15d302,_0xa6b1bb){WhatsappMessageEvents[_0xf80d('0x6')](_0xfd239e+':'+_0x21365c['id'],_0x21365c);WhatsappMessageEvents[_0xf80d('0x6')](_0xfd239e,_0x21365c);_0xa6b1bb(null);};}for(var e in events){if(events[_0xf80d('0x7')](e)){var event=events[e];WhatsappMessage[_0xf80d('0x8')](e,emitEvent(event));}}module['exports']=WhatsappMessageEvents;
\ No newline at end of file
+var _0x6215=['events','../../mysqldb','WhatsappMessage','save','update','remove','hook','exports'];(function(_0x200834,_0x33ed16){var _0x582388=function(_0x204fb6){while(--_0x204fb6){_0x200834['push'](_0x200834['shift']());}};_0x582388(++_0x33ed16);}(_0x6215,0x198));var _0x5621=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6215[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0x5621('0x0'));var WhatsappMessage=require(_0x5621('0x1'))['db'][_0x5621('0x2')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x5621('0x3'),'afterUpdate':_0x5621('0x4'),'afterDestroy':_0x5621('0x5')};function emitEvent(_0x173213){return function(_0x204284,_0x13397a,_0x492c6d){WhatsappMessageEvents['emit'](_0x173213+':'+_0x204284['id'],_0x204284);WhatsappMessageEvents['emit'](_0x173213,_0x204284);_0x492c6d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappMessage[_0x5621('0x6')](e,emitEvent(event));}}module[_0x5621('0x7')]=WhatsappMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ffd=['util','../../config/logger','api','bluebird','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','messageId','fti_whatsapp_messages','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','findOne','then','update','catch','error','WhatsappAccount','find','WhatsappAccountId','type','twilio','phone','accountSid','authToken','create','body','whatsapp:','remote','/api/whatsapp/messages/','token','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','finally','utf8mb4','lodash'];(function(_0x50e417,_0x1e68a6){var _0x193295=function(_0x5bd92b){while(--_0x5bd92b){_0x50e417['push'](_0x50e417['shift']());}};_0x193295(++_0x1e68a6);}(_0x6ffd,0x16f));var _0xd6ff=function(_0x3cdc7e,_0x401e1e){_0x3cdc7e=_0x3cdc7e-0x0;var _0x48c81d=_0x6ffd[_0x3cdc7e];return _0x48c81d;};'use strict';var _=require(_0xd6ff('0x0'));var util=require(_0xd6ff('0x1'));var logger=require(_0xd6ff('0x2'))(_0xd6ff('0x3'));var moment=require('moment');var BPromise=require(_0xd6ff('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xd6ff('0x5'));var attributes=require(_0xd6ff('0x6'));module[_0xd6ff('0x7')]=function(_0x176f1c,_0x3b5d12){return _0x176f1c[_0xd6ff('0x8')](_0xd6ff('0x9'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0xd6ff('0xa'),'fields':['messageId']},{'name':_0xd6ff('0xb'),'fields':['body'],'type':_0xd6ff('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x43e197,_0x50c986,_0x124a03){var _0x359195=_0x176f1c[_0xd6ff('0xd')];var _0xaffd49=_0x43e197[_0xd6ff('0xe')]({'plain':!![]});if(_0xaffd49[_0xd6ff('0xf')][_0xd6ff('0x10')]()==='in'||_0xaffd49['direction'][_0xd6ff('0x10')]()===_0xd6ff('0x11')&&!_0xaffd49[_0xd6ff('0x12')]&&!_[_0xd6ff('0x13')](_0xaffd49[_0xd6ff('0x14')])){_0x359195[_0xd6ff('0x15')][_0xd6ff('0x16')]({'where':{'id':_0xaffd49['WhatsappInteractionId']}})[_0xd6ff('0x17')](function(_0x294f9d){if(_0x294f9d){_0x294f9d[_0xd6ff('0x18')]({'lastMsgAt':_0xaffd49['createdAt'],'lastMsgDirection':_0xaffd49[_0xd6ff('0xf')][_0xd6ff('0x10')]()});}})[_0xd6ff('0x19')](function(_0xd63158){console[_0xd6ff('0x1a')](_0xd63158);});}if(_0xaffd49[_0xd6ff('0xf')]===_0xd6ff('0x11')&&!_0xaffd49[_0xd6ff('0x12')]){var _0x43d6ab;_0x359195[_0xd6ff('0x1b')][_0xd6ff('0x1c')]({'where':{'id':_0xaffd49[_0xd6ff('0x1d')]},'raw':!![]})[_0xd6ff('0x17')](function(_0x1e0abe){_0x43d6ab=_0x1e0abe;if(_0x43d6ab&&_0x43d6ab[_0xd6ff('0x1e')]){switch(_0x43d6ab['type']){case _0xd6ff('0x1f'):var _0x3e7421=require(_0xd6ff('0x1f'));if(_0x43d6ab['accountSid']&&_0x43d6ab['authToken']&&_0x43d6ab[_0xd6ff('0x20')]){var _0x52f11a=new _0x3e7421(_0x43d6ab[_0xd6ff('0x21')],_0x43d6ab[_0xd6ff('0x22')]);_0x52f11a['messages'][_0xd6ff('0x23')]({'body':_0xaffd49[_0xd6ff('0x24')],'to':'whatsapp:'+_0xaffd49[_0xd6ff('0x20')],'from':_0xd6ff('0x25')+_0x43d6ab[_0xd6ff('0x20')],'statusCallback':_0x43d6ab[_0xd6ff('0x26')]+_0xd6ff('0x27')+_0xaffd49['id']+'/status?token='+_0x43d6ab[_0xd6ff('0x28')]})[_0xd6ff('0x17')](function(_0x574d0a){if(_0x574d0a['sid']){return _0x43e197[_0xd6ff('0x18')]({'messageId':_0x574d0a['sid']});}})[_0xd6ff('0x19')](function(_0x2dd771){logger[_0xd6ff('0x1a')](_0xd6ff('0x29'),_0xd6ff('0x2a'),'twilio',util[_0xd6ff('0x2b')](_0x2dd771,{'showHidden':![],'depth':null}));});}else{logger[_0xd6ff('0x1a')](_0xd6ff('0x29'),'afterCreate',_0xd6ff('0x1f'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;}}})[_0xd6ff('0x2c')](function(){_0x124a03();});}else{_0x124a03();}}},'charset':_0xd6ff('0x2d'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x1f93=['path','rimraf','exports','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','get','toLowerCase','out','secret','UserId','WhatsappInteraction','then','update','createdAt','direction','catch','error','WhatsappAccount','WhatsappAccountId','type','twilio','accountSid','authToken','phone','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','utf8mb4','utf8mb4_unicode_ci','lodash','api','moment','bluebird','request-promise','node-fetch'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x1f93,0x112));var _0x31f9=function(_0x31bf12,_0x4d3b14){_0x31bf12=_0x31bf12-0x0;var _0x12e1d4=_0x1f93[_0x31bf12];return _0x12e1d4;};'use strict';var _=require(_0x31f9('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x31f9('0x1'));var moment=require(_0x31f9('0x2'));var BPromise=require(_0x31f9('0x3'));var rp=require(_0x31f9('0x4'));var fetch=require(_0x31f9('0x5'));var fs=require('fs');var path=require(_0x31f9('0x6'));var rimraf=require(_0x31f9('0x7'));var config=require('../../config/environment');var attributes=require('./whatsappMessage.attributes');module[_0x31f9('0x8')]=function(_0x332e7c,_0x1e514d){return _0x332e7c[_0x31f9('0x9')](_0x31f9('0xa'),attributes,{'tableName':_0x31f9('0xb'),'paranoid':![],'indexes':[{'name':_0x31f9('0xc'),'fields':[_0x31f9('0xc')]},{'name':_0x31f9('0xd'),'fields':[_0x31f9('0xe')],'type':_0x31f9('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x336020,_0x1e635c,_0x56898e){var _0x26ea60=_0x332e7c['models'];var _0x301553=_0x336020[_0x31f9('0x10')]({'plain':!![]});if(_0x301553['direction'][_0x31f9('0x11')]()==='in'||_0x301553['direction'][_0x31f9('0x11')]()===_0x31f9('0x12')&&!_0x301553[_0x31f9('0x13')]&&!_['isNil'](_0x301553[_0x31f9('0x14')])){_0x26ea60[_0x31f9('0x15')]['findOne']({'where':{'id':_0x301553['WhatsappInteractionId']}})[_0x31f9('0x16')](function(_0x1b2997){if(_0x1b2997){_0x1b2997[_0x31f9('0x17')]({'lastMsgAt':_0x301553[_0x31f9('0x18')],'lastMsgDirection':_0x301553[_0x31f9('0x19')][_0x31f9('0x11')]()});}})[_0x31f9('0x1a')](function(_0x523af8){console[_0x31f9('0x1b')](_0x523af8);});}if(_0x301553[_0x31f9('0x19')]===_0x31f9('0x12')&&!_0x301553[_0x31f9('0x13')]){var _0xdf302d;_0x26ea60[_0x31f9('0x1c')]['find']({'where':{'id':_0x301553[_0x31f9('0x1d')]},'raw':!![]})['then'](function(_0x538de6){_0xdf302d=_0x538de6;if(_0xdf302d&&_0xdf302d[_0x31f9('0x1e')]){switch(_0xdf302d[_0x31f9('0x1e')]){case _0x31f9('0x1f'):var _0x345a7d=require('twilio');if(_0xdf302d[_0x31f9('0x20')]&&_0xdf302d[_0x31f9('0x21')]&&_0xdf302d[_0x31f9('0x22')]){var _0x33fdf1=new _0x345a7d(_0xdf302d[_0x31f9('0x20')],_0xdf302d['authToken']);_0x33fdf1['messages']['create']({'body':_0x301553[_0x31f9('0xe')],'to':'whatsapp:'+_0x301553[_0x31f9('0x22')],'from':_0x31f9('0x23')+_0xdf302d[_0x31f9('0x22')],'statusCallback':_0xdf302d[_0x31f9('0x24')]+_0x31f9('0x25')+_0x301553['id']+_0x31f9('0x26')+_0xdf302d[_0x31f9('0x27')]})[_0x31f9('0x16')](function(_0x3b9907){if(_0x3b9907[_0x31f9('0x28')]){return _0x336020[_0x31f9('0x17')]({'messageId':_0x3b9907[_0x31f9('0x28')]});}})[_0x31f9('0x1a')](function(_0x3593a4){logger[_0x31f9('0x1b')](_0x31f9('0x29'),_0x31f9('0x2a'),'twilio',util['inspect'](_0x3593a4,{'showHidden':![],'depth':null}));});}else{logger[_0x31f9('0x1b')](_0x31f9('0x29'),_0x31f9('0x2a'),'twilio',_0x31f9('0x2b'));}break;case _0x31f9('0x2c'):var _0x272ef5=_0xdf302d[_0x31f9('0x20')];var _0x562ffc=_0xdf302d[_0x31f9('0x22')];var _0x273e3e=_0xdf302d[_0x31f9('0x21')];var _0x1f1540=_0xdf302d[_0x31f9('0x2d')]+_0x31f9('0x2e')+_0x272ef5+_0x31f9('0x2f');var _0x1bc482={'to':[_0x301553[_0x31f9('0x22')]],'message':{'type':_0x31f9('0x30'),'text':_0x301553['body']}};var _0x5bfed1={'method':_0x31f9('0x31'),'uri':_0x1f1540,'headers':{'Authorization':_0x31f9('0x32')+_0x273e3e,'Content-Type':_0x31f9('0x33')},'body':_0x1bc482,'json':!![]};rp(_0x5bfed1)[_0x31f9('0x16')](function(_0x10cce2){console['log']('LOG\x20~\x20~\x20SEND',_0x10cce2);if(_0x10cce2[_0x31f9('0x34')][0x0][_0x31f9('0x35')]){return _0x336020[_0x31f9('0x17')]({'messageId':_0x10cce2[_0x31f9('0x34')][0x0][_0x31f9('0x35')]});}})[_0x31f9('0x1a')](function(_0x584f00){console['log'](_0x584f00);});break;}}})['finally'](function(){_0x56898e();});}else{_0x56898e();}}},'charset':_0x31f9('0x36'),'collate':_0x31f9('0x37')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2535=['../../config/utils','rpc','../../config/environment','client','http','redis','defaults','socket.io-emitter','./whatsappMessage.socket','register','then','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','WhatsappMessage','create','body','options','raw','CreateWhatsappMessage','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x4f50d6,_0x100adc){var _0x412340=function(_0x71d209){while(--_0x71d209){_0x4f50d6['push'](_0x4f50d6['shift']());}};_0x412340(++_0x100adc);}(_0x2535,0x14e));var _0x5253=function(_0xd9e0bb,_0x182f87){_0xd9e0bb=_0xd9e0bb-0x0;var _0x4926c2=_0x2535[_0xd9e0bb];return _0x4926c2;};'use strict';var _=require(_0x5253('0x0'));var util=require(_0x5253('0x1'));var moment=require(_0x5253('0x2'));var BPromise=require(_0x5253('0x3'));var rs=require(_0x5253('0x4'));var fs=require('fs');var Redis=require(_0x5253('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x5253('0x6'));var logger=require('../../config/logger')(_0x5253('0x7'));var config=require(_0x5253('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5253('0x9')][_0x5253('0xa')]({'port':0x232a});config[_0x5253('0xb')]=_[_0x5253('0xc')](config[_0x5253('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x5253('0xd'))(new Redis(config[_0x5253('0xb')]));require(_0x5253('0xe'))[_0x5253('0xf')](socket);function respondWithRpcPromise(_0x30deaa,_0x27f754,_0x4655e7){return new BPromise(function(_0xebe9ee,_0x1cda52){return client['request'](_0x30deaa,_0x4655e7)[_0x5253('0x10')](function(_0x45105e){logger[_0x5253('0x11')](_0x5253('0x12'),_0x27f754,_0x5253('0x13'));logger[_0x5253('0x14')](_0x5253('0x15'),_0x27f754,_0x5253('0x13'),JSON[_0x5253('0x16')](_0x45105e));if(_0x45105e[_0x5253('0x17')]){if(_0x45105e[_0x5253('0x17')][_0x5253('0x18')]===0x1f4){logger['error'](_0x5253('0x12'),_0x27f754,_0x45105e[_0x5253('0x17')]['message']);return _0x1cda52(_0x45105e[_0x5253('0x17')][_0x5253('0x19')]);}logger[_0x5253('0x17')](_0x5253('0x12'),_0x27f754,_0x45105e['error'][_0x5253('0x19')]);return _0xebe9ee(_0x45105e['error'][_0x5253('0x19')]);}else{logger[_0x5253('0x11')](_0x5253('0x12'),_0x27f754,'request\x20sent');_0xebe9ee(_0x45105e[_0x5253('0x1a')][_0x5253('0x19')]);}})[_0x5253('0x1b')](function(_0x2324f8){logger[_0x5253('0x17')](_0x5253('0x12'),_0x27f754,_0x2324f8);_0x1cda52(_0x2324f8);});});}exports['CreateWhatsappMessage']=function(_0x1a8078){var _0x2368d1=this;return new Promise(function(_0x4819fa,_0x1ed474){return db[_0x5253('0x1c')][_0x5253('0x1d')](_0x1a8078[_0x5253('0x1e')],{'raw':_0x1a8078[_0x5253('0x1f')]?_0x1a8078[_0x5253('0x1f')][_0x5253('0x20')]===undefined?!![]:![]:!![]})['then'](function(_0x106ab2){logger['info'](_0x5253('0x21'),_0x1a8078);logger[_0x5253('0x14')](_0x5253('0x21'),_0x1a8078,JSON[_0x5253('0x16')](_0x106ab2));_0x4819fa(_0x106ab2);})[_0x5253('0x1b')](function(_0x31d2ab){logger[_0x5253('0x17')]('CreateWhatsappMessage',_0x31d2ab['message'],_0x1a8078);_0x1ed474(_0x2368d1[_0x5253('0x17')](0x1f4,_0x31d2ab[_0x5253('0x19')]));});});};
\ No newline at end of file
+var _0xfc74=['CreateWhatsappMessage','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','localhost','socket.io-emitter','register','request','then','info','WhatsappMessage,\x20%s,\x20%s','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch','WhatsappMessage','create','body','raw'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xfc74,0x156));var _0x4fc7=function(_0x483008,_0x3735cc){_0x483008=_0x483008-0x0;var _0x1b501f=_0xfc74[_0x483008];return _0x1b501f;};'use strict';var _=require(_0x4fc7('0x0'));var util=require(_0x4fc7('0x1'));var moment=require('moment');var BPromise=require(_0x4fc7('0x2'));var rs=require(_0x4fc7('0x3'));var fs=require('fs');var Redis=require(_0x4fc7('0x4'));var db=require(_0x4fc7('0x5'))['db'];var utils=require(_0x4fc7('0x6'));var logger=require(_0x4fc7('0x7'))(_0x4fc7('0x8'));var config=require(_0x4fc7('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x4fc7('0xa')]['http']({'port':0x232a});config[_0x4fc7('0xb')]=_['defaults'](config['redis'],{'host':_0x4fc7('0xc'),'port':0x18eb});var socket=require(_0x4fc7('0xd'))(new Redis(config[_0x4fc7('0xb')]));require('./whatsappMessage.socket')[_0x4fc7('0xe')](socket);function respondWithRpcPromise(_0x10209a,_0x5f12dc,_0x4a96cb){return new BPromise(function(_0x15301e,_0x5c29a8){return client[_0x4fc7('0xf')](_0x10209a,_0x4a96cb)[_0x4fc7('0x10')](function(_0xf1d5ca){logger[_0x4fc7('0x11')](_0x4fc7('0x12'),_0x5f12dc,'request\x20sent');logger[_0x4fc7('0x13')](_0x4fc7('0x14'),_0x5f12dc,_0x4fc7('0x15'),JSON['stringify'](_0xf1d5ca));if(_0xf1d5ca[_0x4fc7('0x16')]){if(_0xf1d5ca[_0x4fc7('0x16')]['code']===0x1f4){logger[_0x4fc7('0x16')](_0x4fc7('0x12'),_0x5f12dc,_0xf1d5ca['error']['message']);return _0x5c29a8(_0xf1d5ca['error']['message']);}logger[_0x4fc7('0x16')]('WhatsappMessage,\x20%s,\x20%s',_0x5f12dc,_0xf1d5ca[_0x4fc7('0x16')][_0x4fc7('0x17')]);return _0x15301e(_0xf1d5ca['error']['message']);}else{logger[_0x4fc7('0x11')](_0x4fc7('0x12'),_0x5f12dc,'request\x20sent');_0x15301e(_0xf1d5ca[_0x4fc7('0x18')]['message']);}})[_0x4fc7('0x19')](function(_0x491e12){logger[_0x4fc7('0x16')](_0x4fc7('0x12'),_0x5f12dc,_0x491e12);_0x5c29a8(_0x491e12);});});}exports['CreateWhatsappMessage']=function(_0x5c1988){var _0x72243a=this;return new Promise(function(_0x4b5751,_0x59ead6){return db[_0x4fc7('0x1a')][_0x4fc7('0x1b')](_0x5c1988[_0x4fc7('0x1c')],{'raw':_0x5c1988['options']?_0x5c1988['options'][_0x4fc7('0x1d')]===undefined?!![]:![]:!![]})[_0x4fc7('0x10')](function(_0x5194d8){logger[_0x4fc7('0x11')](_0x4fc7('0x1e'),_0x5c1988);logger['debug']('CreateWhatsappMessage',_0x5c1988,JSON['stringify'](_0x5194d8));_0x4b5751(_0x5194d8);})[_0x4fc7('0x19')](function(_0x1f0867){logger[_0x4fc7('0x16')](_0x4fc7('0x1e'),_0x1f0867[_0x4fc7('0x17')],_0x5c1988);_0x59ead6(_0x72243a[_0x4fc7('0x16')](0x1f4,_0x1f0867['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6120=['update','emit','removeListener','register','length','whatsappMessage:','./whatsappMessage.events','save','remove'];(function(_0x13ae3b,_0x4ddd7c){var _0x145764=function(_0x4ab5e0){while(--_0x4ab5e0){_0x13ae3b['push'](_0x13ae3b['shift']());}};_0x145764(++_0x4ddd7c);}(_0x6120,0x141));var _0x0612=function(_0x9c705b,_0x536709){_0x9c705b=_0x9c705b-0x0;var _0x46034b=_0x6120[_0x9c705b];return _0x46034b;};'use strict';var WhatsappMessageEvents=require(_0x0612('0x0'));var events=[_0x0612('0x1'),_0x0612('0x2'),_0x0612('0x3')];function createListener(_0x11ecc4,_0x394122){return function(_0x1d8d32){_0x394122[_0x0612('0x4')](_0x11ecc4,_0x1d8d32);};}function removeListener(_0x59a757,_0x5cb18d){return function(){WhatsappMessageEvents[_0x0612('0x5')](_0x59a757,_0x5cb18d);};}exports[_0x0612('0x6')]=function(_0x3a438c){for(var _0x588eb2=0x0,_0x409448=events[_0x0612('0x7')];_0x588eb2<_0x409448;_0x588eb2++){var _0xe30f2f=events[_0x588eb2];var _0x4ac162=createListener(_0x0612('0x8')+_0xe30f2f,_0x3a438c);WhatsappMessageEvents['on'](_0xe30f2f,_0x4ac162);}};
\ No newline at end of file
+var _0x6d2e=['./whatsappMessage.events','save','update','length','whatsappMessage:'];(function(_0x21755e,_0x3c261f){var _0x48b662=function(_0x5e4397){while(--_0x5e4397){_0x21755e['push'](_0x21755e['shift']());}};_0x48b662(++_0x3c261f);}(_0x6d2e,0x1a9));var _0xe6d2=function(_0x9a825b,_0x35c63e){_0x9a825b=_0x9a825b-0x0;var _0x4e5706=_0x6d2e[_0x9a825b];return _0x4e5706;};'use strict';var WhatsappMessageEvents=require(_0xe6d2('0x0'));var events=[_0xe6d2('0x1'),'remove',_0xe6d2('0x2')];function createListener(_0x290d25,_0x348774){return function(_0x15914d){_0x348774['emit'](_0x290d25,_0x15914d);};}function removeListener(_0x2d0051,_0x2ac46d){return function(){WhatsappMessageEvents['removeListener'](_0x2d0051,_0x2ac46d);};}exports['register']=function(_0x14292c){for(var _0x6f26b6=0x0,_0x250080=events[_0xe6d2('0x3')];_0x6f26b6<_0x250080;_0x6f26b6++){var _0x47e65a=events[_0x6f26b6];var _0x215e20=createListener(_0xe6d2('0x4')+_0x47e65a,_0x14292c);WhatsappMessageEvents['on'](_0x47e65a,_0x215e20);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4ae=['getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','/:id','delete','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappQueue.controller','get','isAuthenticated','index','/describe','describe','show','getMembers','/:id/teams'];(function(_0x188ed5,_0x124b02){var _0x3359b2=function(_0x5153c6){while(--_0x5153c6){_0x188ed5['push'](_0x188ed5['shift']());}};_0x3359b2(++_0x124b02);}(_0xa4ae,0xc0));var _0xea4a=function(_0x330d1f,_0x47c710){_0x330d1f=_0x330d1f-0x0;var _0x1df784=_0xa4ae[_0x330d1f];return _0x1df784;};'use strict';var multer=require(_0xea4a('0x0'));var util=require(_0xea4a('0x1'));var path=require(_0xea4a('0x2'));var timeout=require(_0xea4a('0x3'));var express=require(_0xea4a('0x4'));var router=express[_0xea4a('0x5')]();var fs_extra=require(_0xea4a('0x6'));var auth=require(_0xea4a('0x7'));var interaction=require(_0xea4a('0x8'));var config=require('../../config/environment');var controller=require(_0xea4a('0x9'));router[_0xea4a('0xa')]('/',auth[_0xea4a('0xb')](),controller[_0xea4a('0xc')]);router[_0xea4a('0xa')](_0xea4a('0xd'),auth['isAuthenticated'](),controller[_0xea4a('0xe')]);router[_0xea4a('0xa')]('/:id',auth[_0xea4a('0xb')](),controller[_0xea4a('0xf')]);router[_0xea4a('0xa')]('/:id/members',auth['isAuthenticated'](),controller[_0xea4a('0x10')]);router[_0xea4a('0xa')](_0xea4a('0x11'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x12')]);router['get'](_0xea4a('0x13'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x14')]);router[_0xea4a('0x15')]('/',auth[_0xea4a('0xb')](),controller[_0xea4a('0x16')]);router['post'](_0xea4a('0x11'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x17')]);router[_0xea4a('0x15')]('/:id/users',auth['isAuthenticated'](),controller[_0xea4a('0x18')]);router['put'](_0xea4a('0x19'),auth['isAuthenticated'](),controller['update']);router[_0xea4a('0x1a')](_0xea4a('0x19'),auth[_0xea4a('0xb')](),controller['destroy']);router[_0xea4a('0x1a')](_0xea4a('0x11'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x1b')]);router[_0xea4a('0x1a')](_0xea4a('0x13'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x1c')]);module[_0xea4a('0x1d')]=router;
\ No newline at end of file
+var _0x7299=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/describe','isAuthenticated','/:id','show','getMembers','/:id/teams','getTeams','getAgents','post','addTeams','/:id/users','addAgents','put','delete','destroy','removeTeams','exports','multer','util','connect-timeout','express'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7299,0x1ac));var _0x9729=function(_0x2706fd,_0x558552){_0x2706fd=_0x2706fd-0x0;var _0x250261=_0x7299[_0x2706fd];return _0x250261;};'use strict';var multer=require(_0x9729('0x0'));var util=require(_0x9729('0x1'));var path=require('path');var timeout=require(_0x9729('0x2'));var express=require(_0x9729('0x3'));var router=express['Router']();var fs_extra=require(_0x9729('0x4'));var auth=require(_0x9729('0x5'));var interaction=require(_0x9729('0x6'));var config=require(_0x9729('0x7'));var controller=require('./whatsappQueue.controller');router[_0x9729('0x8')]('/',auth['isAuthenticated'](),controller[_0x9729('0x9')]);router['get'](_0x9729('0xa'),auth[_0x9729('0xb')](),controller['describe']);router[_0x9729('0x8')](_0x9729('0xc'),auth[_0x9729('0xb')](),controller[_0x9729('0xd')]);router[_0x9729('0x8')]('/:id/members',auth[_0x9729('0xb')](),controller[_0x9729('0xe')]);router['get'](_0x9729('0xf'),auth[_0x9729('0xb')](),controller[_0x9729('0x10')]);router[_0x9729('0x8')]('/:id/users',auth[_0x9729('0xb')](),controller[_0x9729('0x11')]);router[_0x9729('0x12')]('/',auth[_0x9729('0xb')](),controller['create']);router[_0x9729('0x12')]('/:id/teams',auth[_0x9729('0xb')](),controller[_0x9729('0x13')]);router[_0x9729('0x12')](_0x9729('0x14'),auth[_0x9729('0xb')](),controller[_0x9729('0x15')]);router[_0x9729('0x16')](_0x9729('0xc'),auth[_0x9729('0xb')](),controller['update']);router[_0x9729('0x17')](_0x9729('0xc'),auth['isAuthenticated'](),controller[_0x9729('0x18')]);router[_0x9729('0x17')]('/:id/teams',auth[_0x9729('0xb')](),controller[_0x9729('0x19')]);router[_0x9729('0x17')](_0x9729('0x14'),auth['isAuthenticated'](),controller['removeAgents']);module[_0x9729('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6170=['ENUM','rrmemory','beepall','sequelize','exports','STRING','name'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x6170,0x17d));var _0x0617=function(_0x403a67,_0xe90e15){_0x403a67=_0x403a67-0x0;var _0x2a7f9d=_0x6170[_0x403a67];return _0x2a7f9d;};'use strict';var Sequelize=require(_0x0617('0x0'));module[_0x0617('0x1')]={'name':{'type':Sequelize[_0x0617('0x2')],'unique':_0x0617('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x0617('0x4')](_0x0617('0x5'),_0x0617('0x6'),'roundrobin')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x9086=['rrmemory','beepall','roundrobin','sequelize','exports','name','INTEGER','ENUM'];(function(_0x3098d1,_0x4c6dc9){var _0x80fc9c=function(_0x54a889){while(--_0x54a889){_0x3098d1['push'](_0x3098d1['shift']());}};_0x80fc9c(++_0x4c6dc9);}(_0x9086,0x10b));var _0x6908=function(_0x558010,_0x4a71e6){_0x558010=_0x558010-0x0;var _0x3b9dba=_0x9086[_0x558010];return _0x3b9dba;};'use strict';var Sequelize=require(_0x6908('0x0'));module[_0x6908('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x6908('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0x6908('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x6908('0x4')](_0x6908('0x5'),_0x6908('0x6'),_0x6908('0x7'))},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ed9=['role','UserProfileSection','userProfileId','autoAssociation','catch','describe','getMembers','findOne','UserWhatsappQueue','WhatsappQueueId','User','findAndCountAll','agent','updatedAt','createdAt','%s/%s','SIP','getTeams','Team','addTeams','ids','Agents','online','flatMap','sequelize','transaction','findOrCreate','forEach','emit','removeTeams','select','tq.TeamId','team_has_whatsapp_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','userWhatsappQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','zip-dir','request-promise','moment','bluebird','mustache','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappQueue.socket','register','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','WhatsappQueues','UserProfileResource','sendStatus','error','name','send','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','WhatsappQueue','includeAll','include','findAll','rows','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x458bfd,_0x4c2b6e){var _0x1d5efc=function(_0x2b3215){while(--_0x2b3215){_0x458bfd['push'](_0x458bfd['shift']());}};_0x1d5efc(++_0x4c2b6e);}(_0x9ed9,0x147));var _0x99ed=function(_0x19795e,_0x3104c9){_0x19795e=_0x19795e-0x0;var _0x27cb02=_0x9ed9[_0x19795e];return _0x27cb02;};'use strict';var emlformat=require(_0x99ed('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x99ed('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x99ed('0x2'));var moment=require(_0x99ed('0x3'));var BPromise=require(_0x99ed('0x4'));var Mustache=require(_0x99ed('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x99ed('0x6'));var _=require(_0x99ed('0x7'));var squel=require(_0x99ed('0x8'));var crypto=require(_0x99ed('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x99ed('0xa'));var toCsv=require(_0x99ed('0xb'));var querystring=require(_0x99ed('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x99ed('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x99ed('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x99ed('0xf'))(_0x99ed('0x10'));var utils=require(_0x99ed('0x11'));var config=require(_0x99ed('0x12'));var licenseUtil=require(_0x99ed('0x13'));var db=require(_0x99ed('0x14'))['db'];config['redis']=_['defaults'](config[_0x99ed('0x15')],{'host':_0x99ed('0x16'),'port':0x18eb});var socket=require(_0x99ed('0x17'))(new Redis(config[_0x99ed('0x15')]));require(_0x99ed('0x18'))[_0x99ed('0x19')](socket);function respondWithStatusCode(_0x15ac97,_0x453529){_0x453529=_0x453529||0xcc;return function(_0x1358b0){if(_0x1358b0){return _0x15ac97['sendStatus'](_0x453529);}return _0x15ac97[_0x99ed('0x1a')](_0x453529)[_0x99ed('0x1b')]();};}function respondWithResult(_0x5b03b7,_0x57d355){_0x57d355=_0x57d355||0xc8;return function(_0x1749a8){if(_0x1749a8){return _0x5b03b7[_0x99ed('0x1a')](_0x57d355)[_0x99ed('0x1c')](_0x1749a8);}};}function respondWithFilteredResult(_0x2a5edc,_0x5c9a07){return function(_0x490008){if(_0x490008){var _0xd5cdcd=typeof _0x5c9a07[_0x99ed('0x1d')]===_0x99ed('0x1e')&&typeof _0x5c9a07['limit']==='undefined';var _0x4d42fa=_0x490008[_0x99ed('0x1f')];var _0x49b242=_0xd5cdcd?0x0:_0x5c9a07[_0x99ed('0x1d')];var _0x451c0e=_0xd5cdcd?_0x490008[_0x99ed('0x1f')]:_0x5c9a07[_0x99ed('0x1d')]+_0x5c9a07[_0x99ed('0x20')];var _0x480682;if(_0x451c0e>=_0x4d42fa){_0x451c0e=_0x4d42fa;_0x480682=0xc8;}else{_0x480682=0xce;}_0x2a5edc[_0x99ed('0x1a')](_0x480682);return _0x2a5edc[_0x99ed('0x21')](_0x99ed('0x22'),_0x49b242+'-'+_0x451c0e+'/'+_0x4d42fa)[_0x99ed('0x1c')](_0x490008);}return null;};}function patchUpdates(_0x5d0c51){return function(_0x175195){try{jsonpatch['apply'](_0x175195,_0x5d0c51,!![]);}catch(_0x1587fa){return BPromise[_0x99ed('0x23')](_0x1587fa);}return _0x175195[_0x99ed('0x24')]();};}function saveUpdates(_0x218f4d,_0x3eda1b){return function(_0x5543dc){if(_0x5543dc){return _0x5543dc[_0x99ed('0x25')](_0x218f4d)[_0x99ed('0x26')](function(_0x409d13){return _0x409d13;});}return null;};}function removeEntity(_0x3647a9,_0x2121a9){return function(_0x31da3b){if(_0x31da3b){return _0x31da3b[_0x99ed('0x27')]()['then'](function(){var _0x3c5240=_0x31da3b[_0x99ed('0x28')]({'plain':!![]});var _0x2e01fd=_0x99ed('0x29');return db[_0x99ed('0x2a')]['destroy']({'where':{'type':_0x2e01fd,'resourceId':_0x3c5240['id']}})[_0x99ed('0x26')](function(){return _0x31da3b;});})['then'](function(){_0x3647a9[_0x99ed('0x1a')](0xcc)[_0x99ed('0x1b')]();});}};}function handleEntityNotFound(_0x4d236c,_0x3d8e2f){return function(_0x4fb74c){if(!_0x4fb74c){_0x4d236c[_0x99ed('0x2b')](0x194);}return _0x4fb74c;};}function handleError(_0x2c6ea9,_0x121c34){_0x121c34=_0x121c34||0x1f4;return function(_0x34195d){logger[_0x99ed('0x2c')](_0x34195d['stack']);if(_0x34195d[_0x99ed('0x2d')]){delete _0x34195d['name'];}_0x2c6ea9['status'](_0x121c34)[_0x99ed('0x2e')](_0x34195d);};}exports['index']=function(_0x2e0341,_0x1e97a9){var _0x1378ce={},_0x30cf20={},_0xa217ef={'count':0x0,'rows':[]};var _0x36903e=_[_0x99ed('0x2f')](db['WhatsappQueue']['rawAttributes'],function(_0x8377b2){return{'name':_0x8377b2[_0x99ed('0x30')],'type':_0x8377b2[_0x99ed('0x31')][_0x99ed('0x32')]};});_0x30cf20[_0x99ed('0x33')]=_[_0x99ed('0x2f')](_0x36903e,_0x99ed('0x2d'));_0x30cf20[_0x99ed('0x34')]=_[_0x99ed('0x35')](_0x2e0341[_0x99ed('0x34')]);_0x30cf20[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0x30cf20[_0x99ed('0x33')],_0x30cf20[_0x99ed('0x34')]);_0x1378ce[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0x30cf20['model'],qs[_0x99ed('0x39')](_0x2e0341[_0x99ed('0x34')][_0x99ed('0x39')]));_0x1378ce['attributes']=_0x1378ce[_0x99ed('0x38')][_0x99ed('0x3a')]?_0x1378ce[_0x99ed('0x38')]:_0x30cf20[_0x99ed('0x33')];if(!_0x2e0341[_0x99ed('0x34')][_0x99ed('0x3b')](_0x99ed('0x3c'))){_0x1378ce[_0x99ed('0x20')]=qs['limit'](_0x2e0341['query'][_0x99ed('0x20')]);_0x1378ce['offset']=qs[_0x99ed('0x1d')](_0x2e0341['query'][_0x99ed('0x1d')]);}_0x1378ce[_0x99ed('0x3d')]=qs[_0x99ed('0x3e')](_0x2e0341[_0x99ed('0x34')]['sort']);_0x1378ce[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_[_0x99ed('0x40')](_0x2e0341[_0x99ed('0x34')],_0x30cf20[_0x99ed('0x36')]),_0x36903e);if(_0x2e0341[_0x99ed('0x34')][_0x99ed('0x41')]){_0x1378ce[_0x99ed('0x3f')]=_[_0x99ed('0x42')](_0x1378ce['where'],{'$or':_['map'](_0x36903e,function(_0x74db8b){if(_0x74db8b[_0x99ed('0x31')]!=='VIRTUAL'){var _0x5a600c={};_0x5a600c[_0x74db8b['name']]={'$like':'%'+_0x2e0341[_0x99ed('0x34')][_0x99ed('0x41')]+'%'};return _0x5a600c;}})});}_0x1378ce=_[_0x99ed('0x42')]({},_0x1378ce,_0x2e0341[_0x99ed('0x43')]);var _0x22611b={'where':_0x1378ce['where']};return db[_0x99ed('0x44')][_0x99ed('0x1f')](_0x22611b)[_0x99ed('0x26')](function(_0x53f5fc){_0xa217ef[_0x99ed('0x1f')]=_0x53f5fc;if(_0x2e0341[_0x99ed('0x34')][_0x99ed('0x45')]){_0x1378ce[_0x99ed('0x46')]=[{'all':!![]}];}return db[_0x99ed('0x44')][_0x99ed('0x47')](_0x1378ce);})[_0x99ed('0x26')](function(_0x3022de){_0xa217ef[_0x99ed('0x48')]=_0x3022de;return _0xa217ef;})['then'](respondWithFilteredResult(_0x1e97a9,_0x1378ce))['catch'](handleError(_0x1e97a9,null));};exports[_0x99ed('0x49')]=function(_0x2c1eb9,_0x352879){var _0x19b0c3={'raw':!![],'where':{'id':_0x2c1eb9[_0x99ed('0x4a')]['id']}},_0xd2741e={};_0xd2741e['model']=_[_0x99ed('0x35')](db[_0x99ed('0x44')][_0x99ed('0x4b')]);_0xd2741e[_0x99ed('0x34')]=_[_0x99ed('0x35')](_0x2c1eb9[_0x99ed('0x34')]);_0xd2741e[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0xd2741e['model'],_0xd2741e[_0x99ed('0x34')]);_0x19b0c3[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0xd2741e[_0x99ed('0x33')],qs['fields'](_0x2c1eb9[_0x99ed('0x34')][_0x99ed('0x39')]));_0x19b0c3[_0x99ed('0x38')]=_0x19b0c3[_0x99ed('0x38')]['length']?_0x19b0c3['attributes']:_0xd2741e[_0x99ed('0x33')];if(_0x2c1eb9[_0x99ed('0x34')][_0x99ed('0x45')]){_0x19b0c3['include']=[{'all':!![]}];}_0x19b0c3=_['merge']({},_0x19b0c3,_0x2c1eb9['options']);return db[_0x99ed('0x44')][_0x99ed('0x4c')](_0x19b0c3)['then'](handleEntityNotFound(_0x352879,null))[_0x99ed('0x26')](respondWithResult(_0x352879,null))['catch'](handleError(_0x352879,null));};exports[_0x99ed('0x4d')]=function(_0x833ea,_0x4a5b67){return db[_0x99ed('0x44')][_0x99ed('0x4d')](_0x833ea[_0x99ed('0x4e')],{})['then'](function(_0x351bf8){var _0x5b720a=_0x833ea[_0x99ed('0x4f')]['get']({'plain':!![]});if(!_0x5b720a)throw new Error(_0x99ed('0x50'));if(_0x5b720a[_0x99ed('0x51')]===_0x99ed('0x4f')){var _0x58f6c5=_0x351bf8['get']({'plain':!![]});var _0x4a6eab=_0x99ed('0x29');return db[_0x99ed('0x52')][_0x99ed('0x4c')]({'where':{'name':_0x4a6eab,'userProfileId':_0x5b720a[_0x99ed('0x53')]},'raw':!![]})[_0x99ed('0x26')](function(_0x5e7def){if(_0x5e7def&&_0x5e7def[_0x99ed('0x54')]===0x0){return db[_0x99ed('0x2a')]['create']({'name':_0x58f6c5[_0x99ed('0x2d')],'resourceId':_0x58f6c5['id'],'type':_0x5e7def[_0x99ed('0x2d')],'sectionId':_0x5e7def['id']},{})[_0x99ed('0x26')](function(){return _0x351bf8;});}else{return _0x351bf8;}})[_0x99ed('0x55')](function(_0x45cfb7){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x45cfb7);throw _0x45cfb7;});}return _0x351bf8;})[_0x99ed('0x26')](respondWithResult(_0x4a5b67,0xc9))[_0x99ed('0x55')](handleError(_0x4a5b67,null));};exports[_0x99ed('0x25')]=function(_0x3b5024,_0x3c314f){if(_0x3b5024[_0x99ed('0x4e')]['id']){delete _0x3b5024[_0x99ed('0x4e')]['id'];}return db[_0x99ed('0x44')]['find']({'where':{'id':_0x3b5024['params']['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x3c314f,null))[_0x99ed('0x26')](saveUpdates(_0x3b5024[_0x99ed('0x4e')],null))[_0x99ed('0x26')](respondWithResult(_0x3c314f,null))[_0x99ed('0x55')](handleError(_0x3c314f,null));};exports['destroy']=function(_0xdf6b50,_0x1d63eb){return db[_0x99ed('0x44')][_0x99ed('0x4c')]({'where':{'id':_0xdf6b50['params']['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x1d63eb,null))['then'](removeEntity(_0x1d63eb,null))[_0x99ed('0x55')](handleError(_0x1d63eb,null));};exports[_0x99ed('0x56')]=function(_0x193c8e,_0x1683d9){return db[_0x99ed('0x44')][_0x99ed('0x56')]()['then'](respondWithResult(_0x1683d9,null))[_0x99ed('0x55')](handleError(_0x1683d9,null));};exports[_0x99ed('0x57')]=function(_0x32d19f,_0x576933,_0x3018f5){var _0x29a1c6={'raw':!![],'where':{}},_0x4d41cc={},_0x5eeaa3;return db[_0x99ed('0x44')][_0x99ed('0x58')]({'where':{'id':_0x32d19f[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x576933,null))[_0x99ed('0x26')](function(_0x1a0353){if(_0x1a0353){_0x5eeaa3=_0x1a0353[_0x99ed('0x28')]({'plain':!![]});_0x4d41cc[_0x99ed('0x33')]=_[_0x99ed('0x35')](db[_0x99ed('0x59')][_0x99ed('0x4b')]);_0x4d41cc[_0x99ed('0x34')]=_['keys'](_0x32d19f['query']);_0x4d41cc[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0x4d41cc[_0x99ed('0x33')],_0x4d41cc[_0x99ed('0x34')]);_0x29a1c6[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0x4d41cc['model'],qs[_0x99ed('0x39')](_0x32d19f['query'][_0x99ed('0x39')]));_0x29a1c6[_0x99ed('0x38')]=_0x29a1c6['attributes'][_0x99ed('0x3a')]?_0x29a1c6[_0x99ed('0x38')]:_0x4d41cc[_0x99ed('0x33')];if(!_0x32d19f[_0x99ed('0x34')]['hasOwnProperty'](_0x99ed('0x3c'))){_0x29a1c6['limit']=qs[_0x99ed('0x20')](_0x32d19f[_0x99ed('0x34')]['limit']);_0x29a1c6[_0x99ed('0x1d')]=qs['offset'](_0x32d19f[_0x99ed('0x34')]['offset']);}_0x29a1c6[_0x99ed('0x3d')]=qs[_0x99ed('0x3e')](_0x32d19f[_0x99ed('0x34')]['sort']);_0x29a1c6[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_['pick'](_0x32d19f[_0x99ed('0x34')],_0x4d41cc[_0x99ed('0x36')]));_0x29a1c6[_0x99ed('0x3f')][_0x99ed('0x5a')]=_0x1a0353['id'];if(_0x32d19f[_0x99ed('0x34')][_0x99ed('0x41')]){_0x29a1c6['where']=_[_0x99ed('0x42')](_0x29a1c6['where'],{'$or':_[_0x99ed('0x2f')](_0x29a1c6[_0x99ed('0x38')],function(_0x553b84){var _0x2de82f={};_0x2de82f[_0x553b84]={'$like':'%'+_0x32d19f[_0x99ed('0x34')][_0x99ed('0x41')]+'%'};return _0x2de82f;})});}_0x29a1c6=_[_0x99ed('0x42')]({},_0x29a1c6,_0x32d19f[_0x99ed('0x43')]);return db[_0x99ed('0x59')]['findAll'](_0x29a1c6);}})['then'](function(_0x44bc6c){if(_0x44bc6c){return db[_0x99ed('0x5b')][_0x99ed('0x5c')]({'where':{'id':_[_0x99ed('0x2f')](_0x44bc6c,'UserId'),'role':_0x99ed('0x5d')},'attributes':['id',_0x99ed('0x2d'),'whatsappPause',_0x99ed('0x5e'),_0x99ed('0x5f')]});}})[_0x99ed('0x26')](function(_0x18ba64){if(_0x18ba64){return{'count':_0x18ba64['count'],'rows':_[_0x99ed('0x2f')](_0x18ba64[_0x99ed('0x48')],function(_0x4ccc92){return{'membername':_0x4ccc92[_0x99ed('0x2d')],'UserId':_0x4ccc92['id'],'queue_name':_0x5eeaa3[_0x99ed('0x2d')],'WhatsappQueueId':_0x5eeaa3['id'],'interface':util['format'](_0x99ed('0x60'),_0x99ed('0x61'),_0x4ccc92[_0x99ed('0x2d')]),'penalty':0x0,'paused':_0x4ccc92['whatsappPause'],'createdAt':_0x4ccc92[_0x99ed('0x5f')],'updatedAt':_0x4ccc92[_0x99ed('0x5e')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x576933,_0x29a1c6))[_0x99ed('0x55')](handleError(_0x576933,null));};exports[_0x99ed('0x62')]=function(_0x12631c,_0x52515f,_0x301c94){var _0x3ff800={};var _0x7acca6={};var _0x2a6612;var _0x4444ce;return db[_0x99ed('0x44')]['findOne']({'where':{'id':_0x12631c['params']['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x52515f,null))[_0x99ed('0x26')](function(_0x5aad91){if(_0x5aad91){_0x2a6612=_0x5aad91;_0x7acca6[_0x99ed('0x33')]=_[_0x99ed('0x35')](db[_0x99ed('0x63')]['rawAttributes']);_0x7acca6[_0x99ed('0x34')]=_[_0x99ed('0x35')](_0x12631c[_0x99ed('0x34')]);_0x7acca6['filters']=_[_0x99ed('0x37')](_0x7acca6['model'],_0x7acca6['query']);_0x3ff800['attributes']=_[_0x99ed('0x37')](_0x7acca6[_0x99ed('0x33')],qs[_0x99ed('0x39')](_0x12631c[_0x99ed('0x34')]['fields']));_0x3ff800[_0x99ed('0x38')]=_0x3ff800['attributes']['length']?_0x3ff800[_0x99ed('0x38')]:_0x7acca6['model'];_0x3ff800[_0x99ed('0x3d')]=qs['sort'](_0x12631c[_0x99ed('0x34')][_0x99ed('0x3e')]);_0x3ff800[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_['pick'](_0x12631c[_0x99ed('0x34')],_0x7acca6[_0x99ed('0x36')]));if(_0x12631c['query'][_0x99ed('0x41')]){_0x3ff800[_0x99ed('0x3f')]=_[_0x99ed('0x42')](_0x3ff800['where'],{'$or':_[_0x99ed('0x2f')](_0x3ff800[_0x99ed('0x38')],function(_0x429ef5){var _0x21d9f8={};_0x21d9f8[_0x429ef5]={'$like':'%'+_0x12631c[_0x99ed('0x34')][_0x99ed('0x41')]+'%'};return _0x21d9f8;})});}_0x3ff800=_[_0x99ed('0x42')]({},_0x3ff800,_0x12631c['options']);return _0x2a6612[_0x99ed('0x62')](_0x3ff800);}})[_0x99ed('0x26')](function(_0x4d3065){if(_0x4d3065){_0x4444ce=_0x4d3065[_0x99ed('0x3a')];if(!_0x12631c[_0x99ed('0x34')][_0x99ed('0x3b')](_0x99ed('0x3c'))){_0x3ff800[_0x99ed('0x20')]=qs['limit'](_0x12631c[_0x99ed('0x34')][_0x99ed('0x20')]);_0x3ff800['offset']=qs[_0x99ed('0x1d')](_0x12631c[_0x99ed('0x34')][_0x99ed('0x1d')]);}return _0x2a6612['getTeams'](_0x3ff800);}})[_0x99ed('0x26')](function(_0x115032){if(_0x115032){return _0x115032?{'count':_0x4444ce,'rows':_0x115032}:null;}})[_0x99ed('0x26')](respondWithResult(_0x52515f,null))[_0x99ed('0x55')](handleError(_0x52515f,null));};exports[_0x99ed('0x64')]=function(_0x26926b,_0x4aedf6,_0x5ebae4){var _0x40bc59=_0x26926b[_0x99ed('0x4e')][_0x99ed('0x65')];return db[_0x99ed('0x63')][_0x99ed('0x47')]({'where':{'id':_0x40bc59},'attributes':['id'],'include':[{'model':db[_0x99ed('0x5b')],'as':_0x99ed('0x66'),'attributes':['id',_0x99ed('0x2d'),_0x99ed('0x67'),'voicePause','interface'],'raw':!![]}]})['then'](function(_0x2fcd75){if(_0x2fcd75){var _0x293a39=_[_0x99ed('0x68')](_0x2fcd75,function(_0x4ef648){var _0xa1bfd7=_0x4ef648[_0x99ed('0x28')]({'plain':!![]});return _0xa1bfd7[_0x99ed('0x66')];});return db['WhatsappQueue'][_0x99ed('0x4c')]({'where':{'id':_0x26926b[_0x99ed('0x4a')]['id']}})['then'](function(_0x2dce4c){return db[_0x99ed('0x69')][_0x99ed('0x6a')](function(_0x1555cc){return _0x2dce4c[_0x99ed('0x64')](_0x40bc59,{'transaction':_0x1555cc})[_0x99ed('0x26')](function(){return BPromise['each'](_0x293a39,function(_0x50bc30){return db[_0x99ed('0x59')][_0x99ed('0x6b')]({'where':{'UserId':_0x50bc30['id'],'WhatsappQueueId':_0x26926b[_0x99ed('0x4a')]['id']},'transaction':_0x1555cc});});})[_0x99ed('0x26')](function(){_0x293a39[_0x99ed('0x6c')](function(_0x2a47ec){socket[_0x99ed('0x6d')]('userWhatsappQueue:save',{'UserId':_0x2a47ec['id'],'WhatsappQueueId':_0x2dce4c['id']});});});});});}})['then'](respondWithStatusCode(_0x4aedf6,null))[_0x99ed('0x55')](handleError(_0x4aedf6,null));};exports[_0x99ed('0x6e')]=function(_0x2550b0,_0x4d697a,_0x24d9ee){return db['Team'][_0x99ed('0x47')]({'where':{'id':_0x2550b0[_0x99ed('0x34')][_0x99ed('0x65')]},'attributes':['id'],'include':[{'model':db[_0x99ed('0x5b')],'as':_0x99ed('0x66'),'attributes':['id'],'raw':!![]}]})[_0x99ed('0x26')](handleEntityNotFound(_0x4d697a,null))[_0x99ed('0x26')](function(_0x857751){var _0x372952=_['map'](_0x857751,'id');var _0x588cf3=[];var _0x349dea=[];var _0x3b34e9=squel[_0x99ed('0x6f')]();_0x3b34e9['field'](_0x99ed('0x70'))['from'](_0x99ed('0x71'),'tq')['join'](_0x99ed('0x72'),'ut',_0x99ed('0x73'))[_0x99ed('0x3f')](_0x99ed('0x74'),_0x2550b0[_0x99ed('0x4a')]['id']);for(var _0x4cc51c=0x0;_0x4cc51c<_0x857751['length'];_0x4cc51c+=0x1){let _0x5c85cb=_0x857751[_0x4cc51c];for(var _0x42b257=0x0;_0x42b257<_0x5c85cb[_0x99ed('0x66')][_0x99ed('0x3a')];_0x42b257+=0x1){let _0x61d297=_0x5c85cb['Agents'][_0x42b257];var _0x33e6e6=_0x3b34e9[_0x99ed('0x75')]();_0x33e6e6[_0x99ed('0x3f')](_0x99ed('0x76'),_0x61d297['id']);_0x349dea[_0x99ed('0x77')](db[_0x99ed('0x69')][_0x99ed('0x34')](_0x33e6e6[_0x99ed('0x78')](),{'type':db[_0x99ed('0x69')][_0x99ed('0x79')]['SELECT']})['then'](function(_0x125334){if(_0x125334[_0x99ed('0x3a')]===0x1){return _0x61d297['id'];}else{var _0x571b6f=_['every'](_[_0x99ed('0x2f')](_0x125334,_0x99ed('0x7a')),function(_0x45f934){return _[_0x99ed('0x7b')](_0x372952,_0x45f934);});if(_0x571b6f){return _0x61d297['id'];}}}));}}return BPromise[_0x99ed('0x7c')](_0x349dea)[_0x99ed('0x26')](function(_0x313c5e){_0x588cf3=_(_0x588cf3)[_0x99ed('0x7d')](_0x313c5e)[_0x99ed('0x7e')]()[_0x99ed('0x7f')]();return db[_0x99ed('0x44')][_0x99ed('0x4c')]({'where':{'id':_0x2550b0[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](function(_0x4fd139){return db[_0x99ed('0x69')]['transaction'](function(_0x2d7d75){return _0x4fd139[_0x99ed('0x6e')](_0x2550b0[_0x99ed('0x34')][_0x99ed('0x65')],{'transaction':_0x2d7d75})[_0x99ed('0x26')](function(){if(!_[_0x99ed('0x80')](_0x588cf3)){return _0x4fd139[_0x99ed('0x81')](_0x588cf3,{'transaction':_0x2d7d75});}})[_0x99ed('0x26')](function(){_0x588cf3[_0x99ed('0x6c')](function(_0x5a48ae){socket[_0x99ed('0x6d')](_0x99ed('0x82'),{'UserId':_0x5a48ae,'WhatsappQueueId':_0x4fd139['id']});});});});});});})[_0x99ed('0x26')](respondWithStatusCode(_0x4d697a,null))[_0x99ed('0x55')](handleError(_0x4d697a,null));};exports[_0x99ed('0x83')]=function(_0x11534c,_0x2eb3f2,_0x37586c){return db[_0x99ed('0x44')][_0x99ed('0x4c')]({'where':{'id':_0x11534c[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x2eb3f2,null))[_0x99ed('0x26')](function(_0x24cff9){if(_0x24cff9){return _0x24cff9['addAgents'](_0x11534c[_0x99ed('0x4e')][_0x99ed('0x65')],_[_0x99ed('0x84')](_0x11534c[_0x99ed('0x4e')],[_0x99ed('0x65'),'id'])||{})[_0x99ed('0x85')](function(_0x22a9af){for(var _0x2e6481=0x0;_0x2e6481<_0x11534c[_0x99ed('0x4e')][_0x99ed('0x65')][_0x99ed('0x3a')];_0x2e6481+=0x1){socket[_0x99ed('0x6d')]('userWhatsappQueue:save',{'UserId':Number(_0x11534c[_0x99ed('0x4e')][_0x99ed('0x65')][_0x2e6481]),'WhatsappQueueId':Number(_0x11534c[_0x99ed('0x4a')]['id'])});}return _0x22a9af;});}})['then'](respondWithResult(_0x2eb3f2,null))[_0x99ed('0x55')](handleError(_0x2eb3f2,null));};exports[_0x99ed('0x81')]=function(_0x3f4ba6,_0x2dcbab,_0x1f5f5b){return db[_0x99ed('0x44')]['find']({'where':{'id':_0x3f4ba6[_0x99ed('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2dcbab,null))[_0x99ed('0x26')](function(_0x44c54a){if(_0x44c54a){return _0x44c54a[_0x99ed('0x81')](_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')])[_0x99ed('0x26')](function(){if(_[_0x99ed('0x86')](_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')])){for(var _0x44c370=0x0;_0x44c370<_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')][_0x99ed('0x3a')];_0x44c370+=0x1){socket[_0x99ed('0x6d')]('userWhatsappQueue:remove',{'UserId':Number(_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')][_0x44c370]),'WhatsappQueueId':Number(_0x3f4ba6[_0x99ed('0x4a')]['id'])});}}else{socket[_0x99ed('0x6d')]('userWhatsappQueue:remove',{'UserId':Number(_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')]),'WhatsappQueueId':Number(_0x3f4ba6[_0x99ed('0x4a')]['id'])});}});}})[_0x99ed('0x26')](respondWithStatusCode(_0x2dcbab,null))[_0x99ed('0x55')](handleError(_0x2dcbab,null));};exports[_0x99ed('0x87')]=function(_0x16c193,_0x52e630,_0x1da706){var _0x221036={};var _0x40ccfa={};var _0x19a102;var _0x1a9727;return db[_0x99ed('0x44')]['findOne']({'where':{'id':_0x16c193[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x52e630,null))[_0x99ed('0x26')](function(_0x40ff43){if(_0x40ff43){_0x19a102=_0x40ff43;_0x40ccfa[_0x99ed('0x33')]=_[_0x99ed('0x35')](db[_0x99ed('0x5b')]['rawAttributes']);_0x40ccfa[_0x99ed('0x34')]=_['keys'](_0x16c193[_0x99ed('0x34')]);_0x40ccfa[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0x40ccfa[_0x99ed('0x33')],_0x40ccfa[_0x99ed('0x34')]);_0x221036[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0x40ccfa[_0x99ed('0x33')],qs[_0x99ed('0x39')](_0x16c193[_0x99ed('0x34')][_0x99ed('0x39')]));_0x221036[_0x99ed('0x38')]=_0x221036[_0x99ed('0x38')][_0x99ed('0x3a')]?_0x221036[_0x99ed('0x38')]:_0x40ccfa['model'];_0x221036[_0x99ed('0x3d')]=qs['sort'](_0x16c193[_0x99ed('0x34')]['sort']);_0x221036[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_[_0x99ed('0x40')](_0x16c193['query'],_0x40ccfa[_0x99ed('0x36')]));if(_0x16c193[_0x99ed('0x34')][_0x99ed('0x41')]){_0x221036[_0x99ed('0x3f')]=_[_0x99ed('0x42')](_0x221036[_0x99ed('0x3f')],{'$or':_[_0x99ed('0x2f')](_0x221036[_0x99ed('0x38')],function(_0xdf585a){var _0x3a958e={};_0x3a958e[_0xdf585a]={'$like':'%'+_0x16c193[_0x99ed('0x34')]['filter']+'%'};return _0x3a958e;})});}_0x221036=_[_0x99ed('0x42')]({},_0x221036,_0x16c193[_0x99ed('0x43')]);return _0x19a102[_0x99ed('0x87')](_0x221036);}})['then'](function(_0x32f68e){if(_0x32f68e){_0x1a9727=_0x32f68e['length'];if(!_0x16c193['query'][_0x99ed('0x3b')]('nolimit')){_0x221036[_0x99ed('0x20')]=qs[_0x99ed('0x20')](_0x16c193['query'][_0x99ed('0x20')]);_0x221036['offset']=qs[_0x99ed('0x1d')](_0x16c193[_0x99ed('0x34')][_0x99ed('0x1d')]);}return _0x19a102[_0x99ed('0x87')](_0x221036);}})[_0x99ed('0x26')](function(_0x4bf335){if(_0x4bf335){return _0x4bf335?{'count':_0x1a9727,'rows':_0x4bf335}:null;}})[_0x99ed('0x26')](respondWithResult(_0x52e630,null))[_0x99ed('0x55')](handleError(_0x52e630,null));};
\ No newline at end of file
+var _0x8d8f=['offset','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','UserWhatsappQueue','nolimit','findAndCountAll','UserId','whatsappPause','updatedAt','format','%s/%s','SIP','createdAt','getTeams','findOne','Team','addTeams','ids','voicePause','interface','flatMap','Agents','sequelize','transaction','forEach','removeTeams','select','field','tq.TeamId','team_has_whatsapp_queues','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','every','includes','union','compact','value','isEmpty','emit','addAgents','omit','spread','userWhatsappQueue:save','removeAgents','userWhatsappQueue:remove','getAgents','User','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./whatsappQueue.socket','register','sendStatus','status','end','json','undefined','limit','count','set','apply','reject','save','update','get','destroy','then','error','name','index','map','WhatsappQueue','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty'];(function(_0x18056f,_0x9ed645){var _0x3a88a9=function(_0x468a19){while(--_0x468a19){_0x18056f['push'](_0x18056f['shift']());}};_0x3a88a9(++_0x9ed645);}(_0x8d8f,0x1e7));var _0xf8d8=function(_0x1a06b6,_0x25f709){_0x1a06b6=_0x1a06b6-0x0;var _0x4a4754=_0x8d8f[_0x1a06b6];return _0x4a4754;};'use strict';var emlformat=require(_0xf8d8('0x0'));var rimraf=require(_0xf8d8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf8d8('0x2'));var rp=require('request-promise');var moment=require(_0xf8d8('0x3'));var BPromise=require(_0xf8d8('0x4'));var Mustache=require(_0xf8d8('0x5'));var util=require(_0xf8d8('0x6'));var path=require(_0xf8d8('0x7'));var sox=require('sox');var csv=require(_0xf8d8('0x8'));var ejs=require(_0xf8d8('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf8d8('0xa'));var squel=require(_0xf8d8('0xb'));var crypto=require('crypto');var jsforce=require(_0xf8d8('0xc'));var deskjs=require(_0xf8d8('0xd'));var toCsv=require(_0xf8d8('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf8d8('0xe'));var authService=require(_0xf8d8('0xf'));var qs=require(_0xf8d8('0x10'));var as=require(_0xf8d8('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf8d8('0x12'))('api');var utils=require(_0xf8d8('0x13'));var config=require(_0xf8d8('0x14'));var licenseUtil=require(_0xf8d8('0x15'));var db=require(_0xf8d8('0x16'))['db'];config[_0xf8d8('0x17')]=_[_0xf8d8('0x18')](config[_0xf8d8('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0xf8d8('0x19'))(new Redis(config[_0xf8d8('0x17')]));require(_0xf8d8('0x1a'))[_0xf8d8('0x1b')](socket);function respondWithStatusCode(_0x4881fd,_0x1b82c1){_0x1b82c1=_0x1b82c1||0xcc;return function(_0x3ad751){if(_0x3ad751){return _0x4881fd[_0xf8d8('0x1c')](_0x1b82c1);}return _0x4881fd[_0xf8d8('0x1d')](_0x1b82c1)[_0xf8d8('0x1e')]();};}function respondWithResult(_0x2271f5,_0x57ec94){_0x57ec94=_0x57ec94||0xc8;return function(_0x43e5b2){if(_0x43e5b2){return _0x2271f5[_0xf8d8('0x1d')](_0x57ec94)[_0xf8d8('0x1f')](_0x43e5b2);}};}function respondWithFilteredResult(_0x2bdf26,_0x201896){return function(_0x40231f){if(_0x40231f){var _0x5a05c7=typeof _0x201896['offset']===_0xf8d8('0x20')&&typeof _0x201896[_0xf8d8('0x21')]===_0xf8d8('0x20');var _0x56fe13=_0x40231f[_0xf8d8('0x22')];var _0x1dd14e=_0x5a05c7?0x0:_0x201896['offset'];var _0x2030c1=_0x5a05c7?_0x40231f['count']:_0x201896['offset']+_0x201896[_0xf8d8('0x21')];var _0x13c476;if(_0x2030c1>=_0x56fe13){_0x2030c1=_0x56fe13;_0x13c476=0xc8;}else{_0x13c476=0xce;}_0x2bdf26[_0xf8d8('0x1d')](_0x13c476);return _0x2bdf26[_0xf8d8('0x23')]('Content-Range',_0x1dd14e+'-'+_0x2030c1+'/'+_0x56fe13)[_0xf8d8('0x1f')](_0x40231f);}return null;};}function patchUpdates(_0x4f8c62){return function(_0x45c04d){try{jsonpatch[_0xf8d8('0x24')](_0x45c04d,_0x4f8c62,!![]);}catch(_0x15b77){return BPromise[_0xf8d8('0x25')](_0x15b77);}return _0x45c04d[_0xf8d8('0x26')]();};}function saveUpdates(_0x124b82,_0x4f6225){return function(_0x1b4e6a){if(_0x1b4e6a){return _0x1b4e6a[_0xf8d8('0x27')](_0x124b82)['then'](function(_0x2ba5f1){return _0x2ba5f1;});}return null;};}function removeEntity(_0x203954,_0x514b9b){return function(_0x248f8f){if(_0x248f8f){return _0x248f8f['destroy']()['then'](function(){var _0x524a49=_0x248f8f[_0xf8d8('0x28')]({'plain':!![]});var _0x182b68='WhatsappQueues';return db['UserProfileResource'][_0xf8d8('0x29')]({'where':{'type':_0x182b68,'resourceId':_0x524a49['id']}})['then'](function(){return _0x248f8f;});})[_0xf8d8('0x2a')](function(){_0x203954[_0xf8d8('0x1d')](0xcc)[_0xf8d8('0x1e')]();});}};}function handleEntityNotFound(_0xd94cd3,_0x4c6270){return function(_0xc22ff){if(!_0xc22ff){_0xd94cd3['sendStatus'](0x194);}return _0xc22ff;};}function handleError(_0x264f40,_0x45586c){_0x45586c=_0x45586c||0x1f4;return function(_0x3e1a75){logger[_0xf8d8('0x2b')](_0x3e1a75['stack']);if(_0x3e1a75[_0xf8d8('0x2c')]){delete _0x3e1a75[_0xf8d8('0x2c')];}_0x264f40[_0xf8d8('0x1d')](_0x45586c)['send'](_0x3e1a75);};}exports[_0xf8d8('0x2d')]=function(_0x46edb7,_0x3b244f){var _0x426855={},_0x6cf2e6={},_0x2eb4de={'count':0x0,'rows':[]};var _0x1f514c=_[_0xf8d8('0x2e')](db[_0xf8d8('0x2f')][_0xf8d8('0x30')],function(_0xd5c4a0){return{'name':_0xd5c4a0[_0xf8d8('0x31')],'type':_0xd5c4a0[_0xf8d8('0x32')][_0xf8d8('0x33')]};});_0x6cf2e6[_0xf8d8('0x34')]=_[_0xf8d8('0x2e')](_0x1f514c,'name');_0x6cf2e6[_0xf8d8('0x35')]=_[_0xf8d8('0x36')](_0x46edb7[_0xf8d8('0x35')]);_0x6cf2e6[_0xf8d8('0x37')]=_[_0xf8d8('0x38')](_0x6cf2e6[_0xf8d8('0x34')],_0x6cf2e6[_0xf8d8('0x35')]);_0x426855[_0xf8d8('0x39')]=_[_0xf8d8('0x38')](_0x6cf2e6[_0xf8d8('0x34')],qs[_0xf8d8('0x3a')](_0x46edb7[_0xf8d8('0x35')][_0xf8d8('0x3a')]));_0x426855[_0xf8d8('0x39')]=_0x426855['attributes'][_0xf8d8('0x3b')]?_0x426855[_0xf8d8('0x39')]:_0x6cf2e6[_0xf8d8('0x34')];if(!_0x46edb7[_0xf8d8('0x35')][_0xf8d8('0x3c')]('nolimit')){_0x426855[_0xf8d8('0x21')]=qs[_0xf8d8('0x21')](_0x46edb7[_0xf8d8('0x35')][_0xf8d8('0x21')]);_0x426855[_0xf8d8('0x3d')]=qs[_0xf8d8('0x3d')](_0x46edb7[_0xf8d8('0x35')][_0xf8d8('0x3d')]);}_0x426855[_0xf8d8('0x3e')]=qs[_0xf8d8('0x3f')](_0x46edb7['query'][_0xf8d8('0x3f')]);_0x426855['where']=qs['filters'](_[_0xf8d8('0x40')](_0x46edb7[_0xf8d8('0x35')],_0x6cf2e6[_0xf8d8('0x37')]),_0x1f514c);if(_0x46edb7['query'][_0xf8d8('0x41')]){_0x426855[_0xf8d8('0x42')]=_['merge'](_0x426855[_0xf8d8('0x42')],{'$or':_[_0xf8d8('0x2e')](_0x1f514c,function(_0x511667){if(_0x511667[_0xf8d8('0x32')]!==_0xf8d8('0x43')){var _0x38708e={};_0x38708e[_0x511667[_0xf8d8('0x2c')]]={'$like':'%'+_0x46edb7[_0xf8d8('0x35')][_0xf8d8('0x41')]+'%'};return _0x38708e;}})});}_0x426855=_[_0xf8d8('0x44')]({},_0x426855,_0x46edb7[_0xf8d8('0x45')]);var _0x11547f={'where':_0x426855[_0xf8d8('0x42')]};return db[_0xf8d8('0x2f')]['count'](_0x11547f)['then'](function(_0x19913c){_0x2eb4de['count']=_0x19913c;if(_0x46edb7['query'][_0xf8d8('0x46')]){_0x426855[_0xf8d8('0x47')]=[{'all':!![]}];}return db[_0xf8d8('0x2f')][_0xf8d8('0x48')](_0x426855);})[_0xf8d8('0x2a')](function(_0x25266a){_0x2eb4de[_0xf8d8('0x49')]=_0x25266a;return _0x2eb4de;})[_0xf8d8('0x2a')](respondWithFilteredResult(_0x3b244f,_0x426855))['catch'](handleError(_0x3b244f,null));};exports[_0xf8d8('0x4a')]=function(_0x13385f,_0x35d731){var _0x3472c2={'raw':!![],'where':{'id':_0x13385f[_0xf8d8('0x4b')]['id']}},_0x529e41={};_0x529e41[_0xf8d8('0x34')]=_['keys'](db['WhatsappQueue']['rawAttributes']);_0x529e41['query']=_[_0xf8d8('0x36')](_0x13385f[_0xf8d8('0x35')]);_0x529e41[_0xf8d8('0x37')]=_['intersection'](_0x529e41[_0xf8d8('0x34')],_0x529e41[_0xf8d8('0x35')]);_0x3472c2[_0xf8d8('0x39')]=_['intersection'](_0x529e41[_0xf8d8('0x34')],qs[_0xf8d8('0x3a')](_0x13385f['query'][_0xf8d8('0x3a')]));_0x3472c2['attributes']=_0x3472c2[_0xf8d8('0x39')][_0xf8d8('0x3b')]?_0x3472c2[_0xf8d8('0x39')]:_0x529e41[_0xf8d8('0x34')];if(_0x13385f[_0xf8d8('0x35')][_0xf8d8('0x46')]){_0x3472c2['include']=[{'all':!![]}];}_0x3472c2=_[_0xf8d8('0x44')]({},_0x3472c2,_0x13385f[_0xf8d8('0x45')]);return db[_0xf8d8('0x2f')][_0xf8d8('0x4c')](_0x3472c2)['then'](handleEntityNotFound(_0x35d731,null))['then'](respondWithResult(_0x35d731,null))[_0xf8d8('0x4d')](handleError(_0x35d731,null));};exports[_0xf8d8('0x4e')]=function(_0x43299f,_0x59929c){return db['WhatsappQueue'][_0xf8d8('0x4e')](_0x43299f[_0xf8d8('0x4f')],{})['then'](function(_0x98e471){var _0x98cc3=_0x43299f[_0xf8d8('0x50')][_0xf8d8('0x28')]({'plain':!![]});if(!_0x98cc3)throw new Error(_0xf8d8('0x51'));if(_0x98cc3['role']===_0xf8d8('0x50')){var _0x385e2c=_0x98e471[_0xf8d8('0x28')]({'plain':!![]});var _0x3187ab='WhatsappQueues';return db[_0xf8d8('0x52')]['find']({'where':{'name':_0x3187ab,'userProfileId':_0x98cc3[_0xf8d8('0x53')]},'raw':!![]})[_0xf8d8('0x2a')](function(_0x2408eb){if(_0x2408eb&&_0x2408eb[_0xf8d8('0x54')]===0x0){return db[_0xf8d8('0x55')]['create']({'name':_0x385e2c[_0xf8d8('0x2c')],'resourceId':_0x385e2c['id'],'type':_0x2408eb[_0xf8d8('0x2c')],'sectionId':_0x2408eb['id']},{})[_0xf8d8('0x2a')](function(){return _0x98e471;});}else{return _0x98e471;}})[_0xf8d8('0x4d')](function(_0x355464){logger[_0xf8d8('0x2b')](_0xf8d8('0x56'),_0x355464);throw _0x355464;});}return _0x98e471;})['then'](respondWithResult(_0x59929c,0xc9))[_0xf8d8('0x4d')](handleError(_0x59929c,null));};exports[_0xf8d8('0x27')]=function(_0x5b1442,_0x4712c4){if(_0x5b1442[_0xf8d8('0x4f')]['id']){delete _0x5b1442[_0xf8d8('0x4f')]['id'];}return db['WhatsappQueue'][_0xf8d8('0x4c')]({'where':{'id':_0x5b1442[_0xf8d8('0x4b')]['id']}})[_0xf8d8('0x2a')](handleEntityNotFound(_0x4712c4,null))['then'](saveUpdates(_0x5b1442[_0xf8d8('0x4f')],null))['then'](respondWithResult(_0x4712c4,null))[_0xf8d8('0x4d')](handleError(_0x4712c4,null));};exports[_0xf8d8('0x29')]=function(_0x255993,_0x2e761e){return db['WhatsappQueue'][_0xf8d8('0x4c')]({'where':{'id':_0x255993['params']['id']}})['then'](handleEntityNotFound(_0x2e761e,null))['then'](removeEntity(_0x2e761e,null))[_0xf8d8('0x4d')](handleError(_0x2e761e,null));};exports[_0xf8d8('0x57')]=function(_0x561e1c,_0x45a563){return db[_0xf8d8('0x2f')][_0xf8d8('0x57')]()[_0xf8d8('0x2a')](respondWithResult(_0x45a563,null))[_0xf8d8('0x4d')](handleError(_0x45a563,null));};exports[_0xf8d8('0x58')]=function(_0x193fb7,_0x305728,_0xe20043){var _0x563ab4={'raw':!![],'where':{}},_0x8fe2f0={},_0x3ee1c1;return db['WhatsappQueue']['findOne']({'where':{'id':_0x193fb7[_0xf8d8('0x4b')]['id']}})[_0xf8d8('0x2a')](handleEntityNotFound(_0x305728,null))[_0xf8d8('0x2a')](function(_0xf0f8ea){if(_0xf0f8ea){_0x3ee1c1=_0xf0f8ea[_0xf8d8('0x28')]({'plain':!![]});_0x8fe2f0[_0xf8d8('0x34')]=_['keys'](db[_0xf8d8('0x59')][_0xf8d8('0x30')]);_0x8fe2f0[_0xf8d8('0x35')]=_[_0xf8d8('0x36')](_0x193fb7['query']);_0x8fe2f0[_0xf8d8('0x37')]=_[_0xf8d8('0x38')](_0x8fe2f0['model'],_0x8fe2f0[_0xf8d8('0x35')]);_0x563ab4[_0xf8d8('0x39')]=_[_0xf8d8('0x38')](_0x8fe2f0[_0xf8d8('0x34')],qs[_0xf8d8('0x3a')](_0x193fb7[_0xf8d8('0x35')]['fields']));_0x563ab4['attributes']=_0x563ab4[_0xf8d8('0x39')]['length']?_0x563ab4[_0xf8d8('0x39')]:_0x8fe2f0[_0xf8d8('0x34')];if(!_0x193fb7[_0xf8d8('0x35')][_0xf8d8('0x3c')](_0xf8d8('0x5a'))){_0x563ab4[_0xf8d8('0x21')]=qs[_0xf8d8('0x21')](_0x193fb7[_0xf8d8('0x35')][_0xf8d8('0x21')]);_0x563ab4[_0xf8d8('0x3d')]=qs[_0xf8d8('0x3d')](_0x193fb7[_0xf8d8('0x35')]['offset']);}_0x563ab4['order']=qs[_0xf8d8('0x3f')](_0x193fb7[_0xf8d8('0x35')][_0xf8d8('0x3f')]);_0x563ab4[_0xf8d8('0x42')]=qs[_0xf8d8('0x37')](_['pick'](_0x193fb7[_0xf8d8('0x35')],_0x8fe2f0[_0xf8d8('0x37')]));_0x563ab4[_0xf8d8('0x42')]['WhatsappQueueId']=_0xf0f8ea['id'];if(_0x193fb7[_0xf8d8('0x35')][_0xf8d8('0x41')]){_0x563ab4[_0xf8d8('0x42')]=_[_0xf8d8('0x44')](_0x563ab4[_0xf8d8('0x42')],{'$or':_[_0xf8d8('0x2e')](_0x563ab4['attributes'],function(_0x12cf0d){var _0x31c399={};_0x31c399[_0x12cf0d]={'$like':'%'+_0x193fb7[_0xf8d8('0x35')]['filter']+'%'};return _0x31c399;})});}_0x563ab4=_[_0xf8d8('0x44')]({},_0x563ab4,_0x193fb7['options']);return db['UserWhatsappQueue']['findAll'](_0x563ab4);}})[_0xf8d8('0x2a')](function(_0x4a54e6){if(_0x4a54e6){return db['User'][_0xf8d8('0x5b')]({'where':{'id':_[_0xf8d8('0x2e')](_0x4a54e6,_0xf8d8('0x5c')),'role':'agent'},'attributes':['id',_0xf8d8('0x2c'),_0xf8d8('0x5d'),_0xf8d8('0x5e'),'createdAt']});}})['then'](function(_0xe74d4d){if(_0xe74d4d){return{'count':_0xe74d4d[_0xf8d8('0x22')],'rows':_['map'](_0xe74d4d[_0xf8d8('0x49')],function(_0x5b9458){return{'membername':_0x5b9458['name'],'UserId':_0x5b9458['id'],'queue_name':_0x3ee1c1[_0xf8d8('0x2c')],'WhatsappQueueId':_0x3ee1c1['id'],'interface':util[_0xf8d8('0x5f')](_0xf8d8('0x60'),_0xf8d8('0x61'),_0x5b9458[_0xf8d8('0x2c')]),'penalty':0x0,'paused':_0x5b9458[_0xf8d8('0x5d')],'createdAt':_0x5b9458[_0xf8d8('0x62')],'updatedAt':_0x5b9458[_0xf8d8('0x5e')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xf8d8('0x2a')](respondWithFilteredResult(_0x305728,_0x563ab4))[_0xf8d8('0x4d')](handleError(_0x305728,null));};exports[_0xf8d8('0x63')]=function(_0x45336c,_0x3fce18,_0x2a7b3e){var _0x216c74={};var _0x44417a={};var _0x45fed1;var _0x36f0bf;return db[_0xf8d8('0x2f')][_0xf8d8('0x64')]({'where':{'id':_0x45336c[_0xf8d8('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3fce18,null))[_0xf8d8('0x2a')](function(_0x2b4dbc){if(_0x2b4dbc){_0x45fed1=_0x2b4dbc;_0x44417a['model']=_[_0xf8d8('0x36')](db[_0xf8d8('0x65')][_0xf8d8('0x30')]);_0x44417a[_0xf8d8('0x35')]=_[_0xf8d8('0x36')](_0x45336c[_0xf8d8('0x35')]);_0x44417a['filters']=_[_0xf8d8('0x38')](_0x44417a[_0xf8d8('0x34')],_0x44417a[_0xf8d8('0x35')]);_0x216c74[_0xf8d8('0x39')]=_[_0xf8d8('0x38')](_0x44417a[_0xf8d8('0x34')],qs[_0xf8d8('0x3a')](_0x45336c['query'][_0xf8d8('0x3a')]));_0x216c74[_0xf8d8('0x39')]=_0x216c74[_0xf8d8('0x39')][_0xf8d8('0x3b')]?_0x216c74[_0xf8d8('0x39')]:_0x44417a[_0xf8d8('0x34')];_0x216c74[_0xf8d8('0x3e')]=qs[_0xf8d8('0x3f')](_0x45336c[_0xf8d8('0x35')][_0xf8d8('0x3f')]);_0x216c74[_0xf8d8('0x42')]=qs[_0xf8d8('0x37')](_[_0xf8d8('0x40')](_0x45336c[_0xf8d8('0x35')],_0x44417a[_0xf8d8('0x37')]));if(_0x45336c[_0xf8d8('0x35')][_0xf8d8('0x41')]){_0x216c74['where']=_[_0xf8d8('0x44')](_0x216c74[_0xf8d8('0x42')],{'$or':_[_0xf8d8('0x2e')](_0x216c74[_0xf8d8('0x39')],function(_0x353d4a){var _0x5aaf7e={};_0x5aaf7e[_0x353d4a]={'$like':'%'+_0x45336c[_0xf8d8('0x35')][_0xf8d8('0x41')]+'%'};return _0x5aaf7e;})});}_0x216c74=_[_0xf8d8('0x44')]({},_0x216c74,_0x45336c['options']);return _0x45fed1[_0xf8d8('0x63')](_0x216c74);}})['then'](function(_0x2a62ce){if(_0x2a62ce){_0x36f0bf=_0x2a62ce[_0xf8d8('0x3b')];if(!_0x45336c[_0xf8d8('0x35')][_0xf8d8('0x3c')](_0xf8d8('0x5a'))){_0x216c74['limit']=qs['limit'](_0x45336c['query']['limit']);_0x216c74['offset']=qs[_0xf8d8('0x3d')](_0x45336c['query']['offset']);}return _0x45fed1[_0xf8d8('0x63')](_0x216c74);}})[_0xf8d8('0x2a')](function(_0x29aa8a){if(_0x29aa8a){return _0x29aa8a?{'count':_0x36f0bf,'rows':_0x29aa8a}:null;}})[_0xf8d8('0x2a')](respondWithResult(_0x3fce18,null))[_0xf8d8('0x4d')](handleError(_0x3fce18,null));};exports[_0xf8d8('0x66')]=function(_0x254749,_0x3b6f3f,_0x530afa){var _0x3597a9=_0x254749[_0xf8d8('0x4f')][_0xf8d8('0x67')];return db[_0xf8d8('0x65')][_0xf8d8('0x48')]({'where':{'id':_0x3597a9},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id','name','online',_0xf8d8('0x68'),_0xf8d8('0x69')],'raw':!![]}]})[_0xf8d8('0x2a')](function(_0x288b17){if(_0x288b17){var _0x21793c=_[_0xf8d8('0x6a')](_0x288b17,function(_0xd7204d){var _0x4b109e=_0xd7204d[_0xf8d8('0x28')]({'plain':!![]});return _0x4b109e[_0xf8d8('0x6b')];});return db['WhatsappQueue'][_0xf8d8('0x4c')]({'where':{'id':_0x254749['params']['id']}})[_0xf8d8('0x2a')](function(_0x2e7c56){return db[_0xf8d8('0x6c')][_0xf8d8('0x6d')](function(_0xc27a4c){return _0x2e7c56['addTeams'](_0x3597a9,{'transaction':_0xc27a4c})['then'](function(){return BPromise['each'](_0x21793c,function(_0x5a78ed){return db[_0xf8d8('0x59')]['findOrCreate']({'where':{'UserId':_0x5a78ed['id'],'WhatsappQueueId':_0x254749[_0xf8d8('0x4b')]['id']},'transaction':_0xc27a4c});});})[_0xf8d8('0x2a')](function(){_0x21793c[_0xf8d8('0x6e')](function(_0x5e4a3d){socket['emit']('userWhatsappQueue:save',{'UserId':_0x5e4a3d['id'],'WhatsappQueueId':_0x2e7c56['id']});});});});});}})[_0xf8d8('0x2a')](respondWithStatusCode(_0x3b6f3f,null))[_0xf8d8('0x4d')](handleError(_0x3b6f3f,null));};exports[_0xf8d8('0x6f')]=function(_0x1af4da,_0x24d054,_0x990e92){return db[_0xf8d8('0x65')][_0xf8d8('0x48')]({'where':{'id':_0x1af4da[_0xf8d8('0x35')][_0xf8d8('0x67')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xf8d8('0x6b'),'attributes':['id'],'raw':!![]}]})[_0xf8d8('0x2a')](handleEntityNotFound(_0x24d054,null))[_0xf8d8('0x2a')](function(_0xfb224e){var _0x1ce6c6=_[_0xf8d8('0x2e')](_0xfb224e,'id');var _0x4ce85d=[];var _0x131bf0=[];var _0x3d52df=squel[_0xf8d8('0x70')]();_0x3d52df[_0xf8d8('0x71')](_0xf8d8('0x72'))['from'](_0xf8d8('0x73'),'tq')['join']('user_has_teams','ut',_0xf8d8('0x74'))[_0xf8d8('0x42')](_0xf8d8('0x75'),_0x1af4da[_0xf8d8('0x4b')]['id']);for(var _0x211def=0x0;_0x211def<_0xfb224e[_0xf8d8('0x3b')];_0x211def+=0x1){let _0x3b9837=_0xfb224e[_0x211def];for(var _0x3875e2=0x0;_0x3875e2<_0x3b9837[_0xf8d8('0x6b')][_0xf8d8('0x3b')];_0x3875e2+=0x1){let _0xf70099=_0x3b9837[_0xf8d8('0x6b')][_0x3875e2];var _0x48cb49=_0x3d52df['clone']();_0x48cb49[_0xf8d8('0x42')](_0xf8d8('0x76'),_0xf70099['id']);_0x131bf0['push'](db['sequelize'][_0xf8d8('0x35')](_0x48cb49[_0xf8d8('0x77')](),{'type':db['sequelize'][_0xf8d8('0x78')][_0xf8d8('0x79')]})[_0xf8d8('0x2a')](function(_0x2fda8d){if(_0x2fda8d[_0xf8d8('0x3b')]===0x1){return _0xf70099['id'];}else{var _0x514855=_[_0xf8d8('0x7a')](_[_0xf8d8('0x2e')](_0x2fda8d,'TeamId'),function(_0x15458b){return _[_0xf8d8('0x7b')](_0x1ce6c6,_0x15458b);});if(_0x514855){return _0xf70099['id'];}}}));}}return BPromise['all'](_0x131bf0)[_0xf8d8('0x2a')](function(_0x1dfba0){_0x4ce85d=_(_0x4ce85d)[_0xf8d8('0x7c')](_0x1dfba0)[_0xf8d8('0x7d')]()[_0xf8d8('0x7e')]();return db[_0xf8d8('0x2f')]['find']({'where':{'id':_0x1af4da[_0xf8d8('0x4b')]['id']}})[_0xf8d8('0x2a')](function(_0x23fc1d){return db['sequelize'][_0xf8d8('0x6d')](function(_0x553728){return _0x23fc1d['removeTeams'](_0x1af4da[_0xf8d8('0x35')][_0xf8d8('0x67')],{'transaction':_0x553728})[_0xf8d8('0x2a')](function(){if(!_[_0xf8d8('0x7f')](_0x4ce85d)){return _0x23fc1d['removeAgents'](_0x4ce85d,{'transaction':_0x553728});}})[_0xf8d8('0x2a')](function(){_0x4ce85d['forEach'](function(_0x1ac67a){socket[_0xf8d8('0x80')]('userWhatsappQueue:remove',{'UserId':_0x1ac67a,'WhatsappQueueId':_0x23fc1d['id']});});});});});});})[_0xf8d8('0x2a')](respondWithStatusCode(_0x24d054,null))[_0xf8d8('0x4d')](handleError(_0x24d054,null));};exports[_0xf8d8('0x81')]=function(_0x42247f,_0x25614c,_0x4a7369){return db[_0xf8d8('0x2f')]['find']({'where':{'id':_0x42247f['params']['id']}})[_0xf8d8('0x2a')](handleEntityNotFound(_0x25614c,null))[_0xf8d8('0x2a')](function(_0x392184){if(_0x392184){return _0x392184[_0xf8d8('0x81')](_0x42247f['body']['ids'],_[_0xf8d8('0x82')](_0x42247f['body'],[_0xf8d8('0x67'),'id'])||{})[_0xf8d8('0x83')](function(_0x4e7093){for(var _0x2039f7=0x0;_0x2039f7<_0x42247f[_0xf8d8('0x4f')][_0xf8d8('0x67')][_0xf8d8('0x3b')];_0x2039f7+=0x1){socket[_0xf8d8('0x80')](_0xf8d8('0x84'),{'UserId':Number(_0x42247f[_0xf8d8('0x4f')]['ids'][_0x2039f7]),'WhatsappQueueId':Number(_0x42247f[_0xf8d8('0x4b')]['id'])});}return _0x4e7093;});}})[_0xf8d8('0x2a')](respondWithResult(_0x25614c,null))[_0xf8d8('0x4d')](handleError(_0x25614c,null));};exports[_0xf8d8('0x85')]=function(_0x192b80,_0x466134,_0x3642d0){return db['WhatsappQueue'][_0xf8d8('0x4c')]({'where':{'id':_0x192b80['params']['id']}})['then'](handleEntityNotFound(_0x466134,null))['then'](function(_0x3b6c55){if(_0x3b6c55){return _0x3b6c55[_0xf8d8('0x85')](_0x192b80['query']['ids'])[_0xf8d8('0x2a')](function(){if(_['isArray'](_0x192b80[_0xf8d8('0x35')][_0xf8d8('0x67')])){for(var _0x3fc5a1=0x0;_0x3fc5a1<_0x192b80[_0xf8d8('0x35')]['ids'][_0xf8d8('0x3b')];_0x3fc5a1+=0x1){socket[_0xf8d8('0x80')](_0xf8d8('0x86'),{'UserId':Number(_0x192b80[_0xf8d8('0x35')][_0xf8d8('0x67')][_0x3fc5a1]),'WhatsappQueueId':Number(_0x192b80['params']['id'])});}}else{socket['emit']('userWhatsappQueue:remove',{'UserId':Number(_0x192b80['query'][_0xf8d8('0x67')]),'WhatsappQueueId':Number(_0x192b80[_0xf8d8('0x4b')]['id'])});}});}})[_0xf8d8('0x2a')](respondWithStatusCode(_0x466134,null))[_0xf8d8('0x4d')](handleError(_0x466134,null));};exports[_0xf8d8('0x87')]=function(_0x162458,_0x107b80,_0x54e66e){var _0x24b80c={};var _0x38a16e={};var _0xacded9;var _0x2d7669;return db[_0xf8d8('0x2f')][_0xf8d8('0x64')]({'where':{'id':_0x162458['params']['id']}})[_0xf8d8('0x2a')](handleEntityNotFound(_0x107b80,null))[_0xf8d8('0x2a')](function(_0x350307){if(_0x350307){_0xacded9=_0x350307;_0x38a16e[_0xf8d8('0x34')]=_[_0xf8d8('0x36')](db[_0xf8d8('0x88')][_0xf8d8('0x30')]);_0x38a16e[_0xf8d8('0x35')]=_[_0xf8d8('0x36')](_0x162458[_0xf8d8('0x35')]);_0x38a16e['filters']=_[_0xf8d8('0x38')](_0x38a16e['model'],_0x38a16e[_0xf8d8('0x35')]);_0x24b80c['attributes']=_[_0xf8d8('0x38')](_0x38a16e['model'],qs['fields'](_0x162458[_0xf8d8('0x35')][_0xf8d8('0x3a')]));_0x24b80c[_0xf8d8('0x39')]=_0x24b80c[_0xf8d8('0x39')][_0xf8d8('0x3b')]?_0x24b80c[_0xf8d8('0x39')]:_0x38a16e[_0xf8d8('0x34')];_0x24b80c[_0xf8d8('0x3e')]=qs[_0xf8d8('0x3f')](_0x162458[_0xf8d8('0x35')]['sort']);_0x24b80c[_0xf8d8('0x42')]=qs[_0xf8d8('0x37')](_[_0xf8d8('0x40')](_0x162458['query'],_0x38a16e[_0xf8d8('0x37')]));if(_0x162458[_0xf8d8('0x35')]['filter']){_0x24b80c[_0xf8d8('0x42')]=_['merge'](_0x24b80c['where'],{'$or':_[_0xf8d8('0x2e')](_0x24b80c[_0xf8d8('0x39')],function(_0x4e3013){var _0xbe6ea8={};_0xbe6ea8[_0x4e3013]={'$like':'%'+_0x162458[_0xf8d8('0x35')][_0xf8d8('0x41')]+'%'};return _0xbe6ea8;})});}_0x24b80c=_['merge']({},_0x24b80c,_0x162458[_0xf8d8('0x45')]);return _0xacded9[_0xf8d8('0x87')](_0x24b80c);}})[_0xf8d8('0x2a')](function(_0x56e577){if(_0x56e577){_0x2d7669=_0x56e577[_0xf8d8('0x3b')];if(!_0x162458[_0xf8d8('0x35')][_0xf8d8('0x3c')](_0xf8d8('0x5a'))){_0x24b80c[_0xf8d8('0x21')]=qs['limit'](_0x162458[_0xf8d8('0x35')][_0xf8d8('0x21')]);_0x24b80c[_0xf8d8('0x3d')]=qs[_0xf8d8('0x3d')](_0x162458[_0xf8d8('0x35')][_0xf8d8('0x3d')]);}return _0xacded9[_0xf8d8('0x87')](_0x24b80c);}})['then'](function(_0x5c500c){if(_0x5c500c){return _0x5c500c?{'count':_0x2d7669,'rows':_0x5c500c}:null;}})[_0xf8d8('0x2a')](respondWithResult(_0x107b80,null))[_0xf8d8('0x4d')](handleError(_0x107b80,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee67=['save','update','remove','emit','hasOwnProperty','hook','exports','events','WhatsappQueue'];(function(_0x439b3f,_0x7c82b5){var _0x2f52f5=function(_0x23bc45){while(--_0x23bc45){_0x439b3f['push'](_0x439b3f['shift']());}};_0x2f52f5(++_0x7c82b5);}(_0xee67,0xdf));var _0x7ee6=function(_0x10dd5f,_0x8af6dc){_0x10dd5f=_0x10dd5f-0x0;var _0xd0ce06=_0xee67[_0x10dd5f];return _0xd0ce06;};'use strict';var EventEmitter=require(_0x7ee6('0x0'));var WhatsappQueue=require('../../mysqldb')['db'][_0x7ee6('0x1')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x7ee6('0x2'),'afterUpdate':_0x7ee6('0x3'),'afterDestroy':_0x7ee6('0x4')};function emitEvent(_0x4fe266){return function(_0x5e95af,_0x419cfe,_0x845cb4){WhatsappQueueEvents[_0x7ee6('0x5')](_0x4fe266+':'+_0x5e95af['id'],_0x5e95af);WhatsappQueueEvents[_0x7ee6('0x5')](_0x4fe266,_0x5e95af);_0x845cb4(null);};}for(var e in events){if(events[_0x7ee6('0x6')](e)){var event=events[e];WhatsappQueue[_0x7ee6('0x7')](e,emitEvent(event));}}module[_0x7ee6('0x8')]=WhatsappQueueEvents;
\ No newline at end of file
+var _0x16c9=['remove','emit','hook','events','WhatsappQueue','setMaxListeners','save','update'];(function(_0xb27038,_0x168df8){var _0x329900=function(_0x4440f3){while(--_0x4440f3){_0xb27038['push'](_0xb27038['shift']());}};_0x329900(++_0x168df8);}(_0x16c9,0xd3));var _0x916c=function(_0x5b8cf5,_0x21eab0){_0x5b8cf5=_0x5b8cf5-0x0;var _0x5bce68=_0x16c9[_0x5b8cf5];return _0x5bce68;};'use strict';var EventEmitter=require(_0x916c('0x0'));var WhatsappQueue=require('../../mysqldb')['db'][_0x916c('0x1')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents[_0x916c('0x2')](0x0);var events={'afterCreate':_0x916c('0x3'),'afterUpdate':_0x916c('0x4'),'afterDestroy':_0x916c('0x5')};function emitEvent(_0x4dcd50){return function(_0x630e57,_0x27385e,_0x2988f7){WhatsappQueueEvents[_0x916c('0x6')](_0x4dcd50+':'+_0x630e57['id'],_0x630e57);WhatsappQueueEvents['emit'](_0x4dcd50,_0x630e57);_0x2988f7(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappQueue[_0x916c('0x7')](e,emitEvent(event));}}module['exports']=WhatsappQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6966=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./whatsappQueue.attributes','exports','define','WhatsappQueue','whatsapp_queues'];(function(_0x39522f,_0x4370a0){var _0x79b4ba=function(_0x1ded45){while(--_0x1ded45){_0x39522f['push'](_0x39522f['shift']());}};_0x79b4ba(++_0x4370a0);}(_0x6966,0x150));var _0x6696=function(_0x1366e3,_0x234eb3){_0x1366e3=_0x1366e3-0x0;var _0x53ecdc=_0x6966[_0x1366e3];return _0x53ecdc;};'use strict';var _=require(_0x6696('0x0'));var util=require(_0x6696('0x1'));var logger=require(_0x6696('0x2'))(_0x6696('0x3'));var moment=require(_0x6696('0x4'));var BPromise=require(_0x6696('0x5'));var rp=require(_0x6696('0x6'));var fs=require('fs');var path=require(_0x6696('0x7'));var rimraf=require(_0x6696('0x8'));var config=require('../../config/environment');var attributes=require(_0x6696('0x9'));module[_0x6696('0xa')]=function(_0xe5660d,_0x4e9ac2){return _0xe5660d[_0x6696('0xb')](_0x6696('0xc'),attributes,{'tableName':_0x6696('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0ca8=['exports','define','whatsapp_queues','lodash','util','../../config/logger','api','moment','path','rimraf','./whatsappQueue.attributes'];(function(_0x2aba94,_0x52e54a){var _0x2c5874=function(_0x400bd7){while(--_0x400bd7){_0x2aba94['push'](_0x2aba94['shift']());}};_0x2c5874(++_0x52e54a);}(_0x0ca8,0x92));var _0x80ca=function(_0x1c2d9a,_0x4e34a4){_0x1c2d9a=_0x1c2d9a-0x0;var _0x24def0=_0x0ca8[_0x1c2d9a];return _0x24def0;};'use strict';var _=require(_0x80ca('0x0'));var util=require(_0x80ca('0x1'));var logger=require(_0x80ca('0x2'))(_0x80ca('0x3'));var moment=require(_0x80ca('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x80ca('0x5'));var rimraf=require(_0x80ca('0x6'));var config=require('../../config/environment');var attributes=require(_0x80ca('0x7'));module[_0x80ca('0x8')]=function(_0x241f59,_0x55e91c){return _0x241f59[_0x80ca('0x9')]('WhatsappQueue',attributes,{'tableName':_0x80ca('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65a3=['raw','where','attributes','limit','include','map','model','then','debug','stringify','ShowWhatsappQueue','find','util','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./whatsappQueue.socket','request','info','WhatsappQueue,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetWhatsappQueue','WhatsappQueue','findAll','options'];(function(_0x5de278,_0x3ad4da){var _0x54ff4b=function(_0x438bf1){while(--_0x438bf1){_0x5de278['push'](_0x5de278['shift']());}};_0x54ff4b(++_0x3ad4da);}(_0x65a3,0xcf));var _0x365a=function(_0x174167,_0x438943){_0x174167=_0x174167-0x0;var _0x2d6f8d=_0x65a3[_0x174167];return _0x2d6f8d;};'use strict';var _=require('lodash');var util=require(_0x365a('0x0'));var moment=require('moment');var BPromise=require(_0x365a('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x365a('0x2'));var db=require(_0x365a('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x365a('0x4'))(_0x365a('0x5'));var config=require(_0x365a('0x6'));var jayson=require(_0x365a('0x7'));var client=jayson[_0x365a('0x8')][_0x365a('0x9')]({'port':0x232a});config[_0x365a('0xa')]=_[_0x365a('0xb')](config['redis'],{'host':_0x365a('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x365a('0xa')]));require(_0x365a('0xd'))['register'](socket);function respondWithRpcPromise(_0x23295e,_0x4123ca,_0x7834a9){return new BPromise(function(_0x39cf3d,_0x49eae4){return client[_0x365a('0xe')](_0x23295e,_0x7834a9)['then'](function(_0x255585){logger[_0x365a('0xf')](_0x365a('0x10'),_0x4123ca,_0x365a('0x11'));logger['debug']('WhatsappQueue,\x20%s,\x20%s,\x20%s',_0x4123ca,'request\x20sent',JSON['stringify'](_0x255585));if(_0x255585[_0x365a('0x12')]){if(_0x255585[_0x365a('0x12')][_0x365a('0x13')]===0x1f4){logger[_0x365a('0x12')](_0x365a('0x10'),_0x4123ca,_0x255585[_0x365a('0x12')]['message']);return _0x49eae4(_0x255585[_0x365a('0x12')][_0x365a('0x14')]);}logger[_0x365a('0x12')](_0x365a('0x10'),_0x4123ca,_0x255585[_0x365a('0x12')][_0x365a('0x14')]);return _0x39cf3d(_0x255585[_0x365a('0x12')][_0x365a('0x14')]);}else{logger[_0x365a('0xf')]('WhatsappQueue,\x20%s,\x20%s',_0x4123ca,'request\x20sent');_0x39cf3d(_0x255585[_0x365a('0x15')][_0x365a('0x14')]);}})[_0x365a('0x16')](function(_0x15e027){logger[_0x365a('0x12')](_0x365a('0x10'),_0x4123ca,_0x15e027);_0x49eae4(_0x15e027);});});}exports[_0x365a('0x17')]=function(_0x55966e){var _0x3852d5=this;return new Promise(function(_0x30c0c6,_0x36f687){return db[_0x365a('0x18')][_0x365a('0x19')]({'raw':_0x55966e[_0x365a('0x1a')]?_0x55966e['options'][_0x365a('0x1b')]===undefined?!![]:![]:!![],'where':_0x55966e[_0x365a('0x1a')]?_0x55966e[_0x365a('0x1a')][_0x365a('0x1c')]||null:null,'attributes':_0x55966e['options']?_0x55966e['options'][_0x365a('0x1d')]||null:null,'limit':_0x55966e['options']?_0x55966e['options'][_0x365a('0x1e')]||null:null,'include':_0x55966e['options']?_0x55966e[_0x365a('0x1a')][_0x365a('0x1f')]?_[_0x365a('0x20')](_0x55966e[_0x365a('0x1a')][_0x365a('0x1f')],function(_0x1ff118){return{'model':db[_0x1ff118[_0x365a('0x21')]],'as':_0x1ff118['as'],'attributes':_0x1ff118[_0x365a('0x1d')],'include':_0x1ff118[_0x365a('0x1f')]?_[_0x365a('0x20')](_0x1ff118[_0x365a('0x1f')],function(_0xe0b66b){return{'model':db[_0xe0b66b[_0x365a('0x21')]],'as':_0xe0b66b['as'],'attributes':_0xe0b66b[_0x365a('0x1d')],'include':_0xe0b66b[_0x365a('0x1f')]?_[_0x365a('0x20')](_0xe0b66b[_0x365a('0x1f')],function(_0x18ef4d){return{'model':db[_0x18ef4d[_0x365a('0x21')]],'as':_0x18ef4d['as'],'attributes':_0x18ef4d[_0x365a('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x365a('0x22')](function(_0xa285cd){logger['info'](_0x365a('0x17'),_0x55966e);logger[_0x365a('0x23')](_0x365a('0x17'),_0x55966e,JSON[_0x365a('0x24')](_0xa285cd));_0x30c0c6(_0xa285cd);})[_0x365a('0x16')](function(_0x552503){logger[_0x365a('0x12')](_0x365a('0x17'),_0x552503[_0x365a('0x14')],_0x55966e);_0x36f687(_0x3852d5[_0x365a('0x12')](0x1f4,_0x552503[_0x365a('0x14')]));});});};exports[_0x365a('0x25')]=function(_0x40cd98){var _0x1310df=this;return new Promise(function(_0x4760bf,_0x515b92){return db[_0x365a('0x18')][_0x365a('0x26')]({'raw':_0x40cd98[_0x365a('0x1a')]?_0x40cd98[_0x365a('0x1a')][_0x365a('0x1b')]===undefined?!![]:![]:!![],'where':_0x40cd98[_0x365a('0x1a')]?_0x40cd98[_0x365a('0x1a')][_0x365a('0x1c')]||null:null,'attributes':_0x40cd98['options']?_0x40cd98['options'][_0x365a('0x1d')]||null:null,'include':_0x40cd98[_0x365a('0x1a')]?_0x40cd98[_0x365a('0x1a')]['include']?_[_0x365a('0x20')](_0x40cd98['options'][_0x365a('0x1f')],function(_0xe92bc6){return{'model':db[_0xe92bc6[_0x365a('0x21')]],'as':_0xe92bc6['as'],'attributes':_0xe92bc6[_0x365a('0x1d')],'include':_0xe92bc6[_0x365a('0x1f')]?_[_0x365a('0x20')](_0xe92bc6[_0x365a('0x1f')],function(_0x1401b0){return{'model':db[_0x1401b0[_0x365a('0x21')]],'as':_0x1401b0['as'],'attributes':_0x1401b0['attributes'],'include':_0x1401b0['include']?_[_0x365a('0x20')](_0x1401b0[_0x365a('0x1f')],function(_0x438fa1){return{'model':db[_0x438fa1[_0x365a('0x21')]],'as':_0x438fa1['as'],'attributes':_0x438fa1[_0x365a('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x365a('0x22')](function(_0x567277){logger[_0x365a('0xf')](_0x365a('0x25'),_0x40cd98);logger['debug']('ShowWhatsappQueue',_0x40cd98,JSON[_0x365a('0x24')](_0x567277));_0x4760bf(_0x567277);})[_0x365a('0x16')](function(_0x4c87e0){logger[_0x365a('0x12')](_0x365a('0x25'),_0x4c87e0['message'],_0x40cd98);_0x515b92(_0x1310df['error'](0x1f4,_0x4c87e0[_0x365a('0x14')]));});});};
\ No newline at end of file
+var _0xd452=['client','http','redis','defaults','socket.io-emitter','./whatsappQueue.socket','then','info','WhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueue,\x20%s,\x20%s,\x20%s','error','message','result','catch','findAll','options','raw','where','limit','map','include','model','attributes','GetWhatsappQueue','ShowWhatsappQueue','WhatsappQueue','find','stringify','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xd452,0xba));var _0x2d45=function(_0x2df724,_0x411382){_0x2df724=_0x2df724-0x0;var _0x1b2504=_0xd452[_0x2df724];return _0x1b2504;};'use strict';var _=require(_0x2d45('0x0'));var util=require('util');var moment=require(_0x2d45('0x1'));var BPromise=require('bluebird');var rs=require(_0x2d45('0x2'));var fs=require('fs');var Redis=require(_0x2d45('0x3'));var db=require(_0x2d45('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x2d45('0x5'))(_0x2d45('0x6'));var config=require(_0x2d45('0x7'));var jayson=require(_0x2d45('0x8'));var client=jayson[_0x2d45('0x9')][_0x2d45('0xa')]({'port':0x232a});config[_0x2d45('0xb')]=_[_0x2d45('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x2d45('0xd'))(new Redis(config['redis']));require(_0x2d45('0xe'))['register'](socket);function respondWithRpcPromise(_0x5366c0,_0x199862,_0x5b3669){return new BPromise(function(_0x12c51e,_0x4ccdf8){return client['request'](_0x5366c0,_0x5b3669)[_0x2d45('0xf')](function(_0x56e429){logger[_0x2d45('0x10')](_0x2d45('0x11'),_0x199862,_0x2d45('0x12'));logger[_0x2d45('0x13')](_0x2d45('0x14'),_0x199862,'request\x20sent',JSON['stringify'](_0x56e429));if(_0x56e429[_0x2d45('0x15')]){if(_0x56e429[_0x2d45('0x15')]['code']===0x1f4){logger[_0x2d45('0x15')](_0x2d45('0x11'),_0x199862,_0x56e429[_0x2d45('0x15')][_0x2d45('0x16')]);return _0x4ccdf8(_0x56e429['error'][_0x2d45('0x16')]);}logger[_0x2d45('0x15')](_0x2d45('0x11'),_0x199862,_0x56e429[_0x2d45('0x15')][_0x2d45('0x16')]);return _0x12c51e(_0x56e429[_0x2d45('0x15')][_0x2d45('0x16')]);}else{logger[_0x2d45('0x10')](_0x2d45('0x11'),_0x199862,_0x2d45('0x12'));_0x12c51e(_0x56e429[_0x2d45('0x17')][_0x2d45('0x16')]);}})[_0x2d45('0x18')](function(_0xf1f845){logger[_0x2d45('0x15')](_0x2d45('0x11'),_0x199862,_0xf1f845);_0x4ccdf8(_0xf1f845);});});}exports['GetWhatsappQueue']=function(_0x2ad56e){var _0x18d2b5=this;return new Promise(function(_0x229f13,_0x585050){return db['WhatsappQueue'][_0x2d45('0x19')]({'raw':_0x2ad56e[_0x2d45('0x1a')]?_0x2ad56e[_0x2d45('0x1a')][_0x2d45('0x1b')]===undefined?!![]:![]:!![],'where':_0x2ad56e[_0x2d45('0x1a')]?_0x2ad56e[_0x2d45('0x1a')][_0x2d45('0x1c')]||null:null,'attributes':_0x2ad56e[_0x2d45('0x1a')]?_0x2ad56e['options']['attributes']||null:null,'limit':_0x2ad56e['options']?_0x2ad56e[_0x2d45('0x1a')][_0x2d45('0x1d')]||null:null,'include':_0x2ad56e[_0x2d45('0x1a')]?_0x2ad56e[_0x2d45('0x1a')]['include']?_[_0x2d45('0x1e')](_0x2ad56e['options'][_0x2d45('0x1f')],function(_0x48d15f){return{'model':db[_0x48d15f[_0x2d45('0x20')]],'as':_0x48d15f['as'],'attributes':_0x48d15f[_0x2d45('0x21')],'include':_0x48d15f[_0x2d45('0x1f')]?_[_0x2d45('0x1e')](_0x48d15f[_0x2d45('0x1f')],function(_0x8a661c){return{'model':db[_0x8a661c[_0x2d45('0x20')]],'as':_0x8a661c['as'],'attributes':_0x8a661c['attributes'],'include':_0x8a661c[_0x2d45('0x1f')]?_[_0x2d45('0x1e')](_0x8a661c['include'],function(_0x4b1c98){return{'model':db[_0x4b1c98[_0x2d45('0x20')]],'as':_0x4b1c98['as'],'attributes':_0x4b1c98['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5b9ad1){logger[_0x2d45('0x10')](_0x2d45('0x22'),_0x2ad56e);logger[_0x2d45('0x13')](_0x2d45('0x22'),_0x2ad56e,JSON['stringify'](_0x5b9ad1));_0x229f13(_0x5b9ad1);})[_0x2d45('0x18')](function(_0x406897){logger[_0x2d45('0x15')](_0x2d45('0x22'),_0x406897[_0x2d45('0x16')],_0x2ad56e);_0x585050(_0x18d2b5[_0x2d45('0x15')](0x1f4,_0x406897[_0x2d45('0x16')]));});});};exports[_0x2d45('0x23')]=function(_0x16d656){var _0x3a810d=this;return new Promise(function(_0x2f8378,_0xb748c7){return db[_0x2d45('0x24')][_0x2d45('0x25')]({'raw':_0x16d656[_0x2d45('0x1a')]?_0x16d656['options'][_0x2d45('0x1b')]===undefined?!![]:![]:!![],'where':_0x16d656[_0x2d45('0x1a')]?_0x16d656[_0x2d45('0x1a')][_0x2d45('0x1c')]||null:null,'attributes':_0x16d656['options']?_0x16d656['options'][_0x2d45('0x21')]||null:null,'include':_0x16d656['options']?_0x16d656[_0x2d45('0x1a')][_0x2d45('0x1f')]?_[_0x2d45('0x1e')](_0x16d656[_0x2d45('0x1a')]['include'],function(_0x1a03a5){return{'model':db[_0x1a03a5['model']],'as':_0x1a03a5['as'],'attributes':_0x1a03a5[_0x2d45('0x21')],'include':_0x1a03a5[_0x2d45('0x1f')]?_['map'](_0x1a03a5[_0x2d45('0x1f')],function(_0x2f72f6){return{'model':db[_0x2f72f6['model']],'as':_0x2f72f6['as'],'attributes':_0x2f72f6[_0x2d45('0x21')],'include':_0x2f72f6[_0x2d45('0x1f')]?_[_0x2d45('0x1e')](_0x2f72f6['include'],function(_0x5c9157){return{'model':db[_0x5c9157[_0x2d45('0x20')]],'as':_0x5c9157['as'],'attributes':_0x5c9157[_0x2d45('0x21')]};}):[]};}):[]};}):[]:[]})[_0x2d45('0xf')](function(_0x24c18a){logger[_0x2d45('0x10')](_0x2d45('0x23'),_0x16d656);logger[_0x2d45('0x13')](_0x2d45('0x23'),_0x16d656,JSON[_0x2d45('0x26')](_0x24c18a));_0x2f8378(_0x24c18a);})['catch'](function(_0x4da027){logger[_0x2d45('0x15')]('ShowWhatsappQueue',_0x4da027[_0x2d45('0x16')],_0x16d656);_0xb748c7(_0x3a810d['error'](0x1f4,_0x4da027[_0x2d45('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28e5=['emit','removeListener','register','length','whatsappQueue:','save','remove'];(function(_0x5abe08,_0x52e46c){var _0x2e8d9b=function(_0x91dab2){while(--_0x91dab2){_0x5abe08['push'](_0x5abe08['shift']());}};_0x2e8d9b(++_0x52e46c);}(_0x28e5,0x1be));var _0x528e=function(_0xb9ab21,_0x4ba733){_0xb9ab21=_0xb9ab21-0x0;var _0x623364=_0x28e5[_0xb9ab21];return _0x623364;};'use strict';var WhatsappQueueEvents=require('./whatsappQueue.events');var events=[_0x528e('0x0'),_0x528e('0x1'),'update'];function createListener(_0x39756a,_0x7ec8f1){return function(_0x403738){_0x7ec8f1[_0x528e('0x2')](_0x39756a,_0x403738);};}function removeListener(_0x540c43,_0x3c47a4){return function(){WhatsappQueueEvents[_0x528e('0x3')](_0x540c43,_0x3c47a4);};}exports[_0x528e('0x4')]=function(_0x9c1b27){for(var _0x8ff699=0x0,_0x2f0e52=events[_0x528e('0x5')];_0x8ff699<_0x2f0e52;_0x8ff699++){var _0x12cfa2=events[_0x8ff699];var _0x1c3efa=createListener(_0x528e('0x6')+_0x12cfa2,_0x9c1b27);WhatsappQueueEvents['on'](_0x12cfa2,_0x1c3efa);}};
\ No newline at end of file
+var _0x3329=['removeListener','register','length','whatsappQueue:','save','remove','update','emit'];(function(_0x3de23d,_0x136075){var _0x5acbd9=function(_0x15b871){while(--_0x15b871){_0x3de23d['push'](_0x3de23d['shift']());}};_0x5acbd9(++_0x136075);}(_0x3329,0xac));var _0x9332=function(_0x716991,_0x39e69f){_0x716991=_0x716991-0x0;var _0x452f6d=_0x3329[_0x716991];return _0x452f6d;};'use strict';var WhatsappQueueEvents=require('./whatsappQueue.events');var events=[_0x9332('0x0'),_0x9332('0x1'),_0x9332('0x2')];function createListener(_0x404694,_0x43979e){return function(_0x4c600c){_0x43979e[_0x9332('0x3')](_0x404694,_0x4c600c);};}function removeListener(_0x130709,_0x54f476){return function(){WhatsappQueueEvents[_0x9332('0x4')](_0x130709,_0x54f476);};}exports[_0x9332('0x5')]=function(_0x25365d){for(var _0x38ab1c=0x0,_0x1fe6bc=events[_0x9332('0x6')];_0x38ab1c<_0x1fe6bc;_0x38ab1c++){var _0x99b758=events[_0x38ab1c];var _0x1043b0=createListener(_0x9332('0x7')+_0x99b758,_0x25365d);WhatsappQueueEvents['on'](_0x99b758,_0x1043b0);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x626a=['describe','/:id','post','create','update','destroy','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueueReport.controller','get','isAuthenticated','index','/describe'];(function(_0x525bfb,_0x13118b){var _0x173240=function(_0x5606ec){while(--_0x5606ec){_0x525bfb['push'](_0x525bfb['shift']());}};_0x173240(++_0x13118b);}(_0x626a,0x10a));var _0xa626=function(_0x2b8db8,_0xff0a99){_0x2b8db8=_0x2b8db8-0x0;var _0x5733e7=_0x626a[_0x2b8db8];return _0x5733e7;};'use strict';var multer=require(_0xa626('0x0'));var util=require(_0xa626('0x1'));var path=require(_0xa626('0x2'));var timeout=require(_0xa626('0x3'));var express=require('express');var router=express[_0xa626('0x4')]();var fs_extra=require(_0xa626('0x5'));var auth=require(_0xa626('0x6'));var interaction=require(_0xa626('0x7'));var config=require(_0xa626('0x8'));var controller=require(_0xa626('0x9'));router[_0xa626('0xa')]('/',auth[_0xa626('0xb')](),controller[_0xa626('0xc')]);router['get'](_0xa626('0xd'),auth['isAuthenticated'](),controller[_0xa626('0xe')]);router[_0xa626('0xa')](_0xa626('0xf'),auth['isAuthenticated'](),controller['show']);router[_0xa626('0x10')]('/',auth[_0xa626('0xb')](),controller[_0xa626('0x11')]);router['put']('/:id',auth[_0xa626('0xb')](),controller[_0xa626('0x12')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xa626('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x8620=['path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueueReport.controller','get','isAuthenticated','/describe','describe','/:id','show','post','create','put','update','destroy','exports','multer','util'];(function(_0x3f4471,_0x1cc8be){var _0x16c1f7=function(_0x5891cc){while(--_0x5891cc){_0x3f4471['push'](_0x3f4471['shift']());}};_0x16c1f7(++_0x1cc8be);}(_0x8620,0x178));var _0x0862=function(_0x4b223c,_0x112aca){_0x4b223c=_0x4b223c-0x0;var _0x21d0bf=_0x8620[_0x4b223c];return _0x21d0bf;};'use strict';var multer=require(_0x0862('0x0'));var util=require(_0x0862('0x1'));var path=require(_0x0862('0x2'));var timeout=require('connect-timeout');var express=require(_0x0862('0x3'));var router=express['Router']();var fs_extra=require(_0x0862('0x4'));var auth=require(_0x0862('0x5'));var interaction=require(_0x0862('0x6'));var config=require(_0x0862('0x7'));var controller=require(_0x0862('0x8'));router[_0x0862('0x9')]('/',auth[_0x0862('0xa')](),controller['index']);router[_0x0862('0x9')](_0x0862('0xb'),auth['isAuthenticated'](),controller[_0x0862('0xc')]);router[_0x0862('0x9')](_0x0862('0xd'),auth[_0x0862('0xa')](),controller[_0x0862('0xe')]);router[_0x0862('0xf')]('/',auth[_0x0862('0xa')](),controller[_0x0862('0x10')]);router[_0x0862('0x11')](_0x0862('0xd'),auth['isAuthenticated'](),controller[_0x0862('0x12')]);router['delete'](_0x0862('0xd'),auth[_0x0862('0xa')](),controller[_0x0862('0x13')]);module[_0x0862('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x40c0b6,_0x57fb12){var _0x2650a1=function(_0x38281d){while(--_0x38281d){_0x40c0b6['push'](_0x40c0b6['shift']());}};_0x2650a1(++_0x57fb12);}(_0x9957,0x93));var _0x7995=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x9957[_0x3b380d];return _0x54502b;};'use strict';var Sequelize=require(_0x7995('0x0'));module[_0x7995('0x1')]={'uniqueid':{'type':Sequelize[_0x7995('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x7995('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x7995('0x3')]},'acceptAt':{'type':Sequelize[_0x7995('0x3')]},'exitAt':{'type':Sequelize[_0x7995('0x3')]},'reason':{'type':Sequelize[_0x7995('0x2')]}};
\ No newline at end of file
+var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x3ec54c,_0x203cf1){var _0x35e31b=function(_0x1730c5){while(--_0x1730c5){_0x3ec54c['push'](_0x3ec54c['shift']());}};_0x35e31b(++_0x203cf1);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var Sequelize=require(_0x7995('0x0'));module[_0x7995('0x1')]={'uniqueid':{'type':Sequelize[_0x7995('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x7995('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x7995('0x3')]},'acceptAt':{'type':Sequelize[_0x7995('0x3')]},'exitAt':{'type':Sequelize[_0x7995('0x3')]},'reason':{'type':Sequelize[_0x7995('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c9a=['eml-format','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','WhatsappQueueReport','rawAttributes','fieldName','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','params','find','create','body','describe'];(function(_0x4d32e9,_0x390d44){var _0x2d9ece=function(_0xabbd89){while(--_0xabbd89){_0x4d32e9['push'](_0x4d32e9['shift']());}};_0x2d9ece(++_0x390d44);}(_0x1c9a,0x98));var _0xa1c9=function(_0x84510c,_0x40747c){_0x84510c=_0x84510c-0x0;var _0xddd784=_0x1c9a[_0x84510c];return _0xddd784;};'use strict';var emlformat=require(_0xa1c9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa1c9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa1c9('0x2'));var moment=require(_0xa1c9('0x3'));var BPromise=require(_0xa1c9('0x4'));var Mustache=require('mustache');var util=require(_0xa1c9('0x5'));var path=require(_0xa1c9('0x6'));var sox=require(_0xa1c9('0x7'));var csv=require(_0xa1c9('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa1c9('0x9'));var _=require('lodash');var squel=require(_0xa1c9('0xa'));var crypto=require(_0xa1c9('0xb'));var jsforce=require(_0xa1c9('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa1c9('0x8'));var querystring=require(_0xa1c9('0xd'));var Papa=require(_0xa1c9('0xe'));var Redis=require(_0xa1c9('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xa1c9('0x10'));var as=require(_0xa1c9('0x11'));var hardwareService=require(_0xa1c9('0x12'));var logger=require(_0xa1c9('0x13'))(_0xa1c9('0x14'));var utils=require(_0xa1c9('0x15'));var config=require(_0xa1c9('0x16'));var licenseUtil=require(_0xa1c9('0x17'));var db=require(_0xa1c9('0x18'))['db'];function respondWithStatusCode(_0x17ee28,_0x57e2a8){_0x57e2a8=_0x57e2a8||0xcc;return function(_0x341233){if(_0x341233){return _0x17ee28[_0xa1c9('0x19')](_0x57e2a8);}return _0x17ee28[_0xa1c9('0x1a')](_0x57e2a8)[_0xa1c9('0x1b')]();};}function respondWithResult(_0x13f4e9,_0x4c70dd){_0x4c70dd=_0x4c70dd||0xc8;return function(_0x335dda){if(_0x335dda){return _0x13f4e9[_0xa1c9('0x1a')](_0x4c70dd)[_0xa1c9('0x1c')](_0x335dda);}};}function respondWithFilteredResult(_0xd9bca1,_0x2d825c){return function(_0x1bbc94){if(_0x1bbc94){var _0x44ab5b=typeof _0x2d825c[_0xa1c9('0x1d')]===_0xa1c9('0x1e')&&typeof _0x2d825c[_0xa1c9('0x1f')]==='undefined';var _0x11ca10=_0x1bbc94[_0xa1c9('0x20')];var _0x224ae4=_0x44ab5b?0x0:_0x2d825c['offset'];var _0x2fb81e=_0x44ab5b?_0x1bbc94['count']:_0x2d825c[_0xa1c9('0x1d')]+_0x2d825c[_0xa1c9('0x1f')];var _0x204d54;if(_0x2fb81e>=_0x11ca10){_0x2fb81e=_0x11ca10;_0x204d54=0xc8;}else{_0x204d54=0xce;}_0xd9bca1['status'](_0x204d54);return _0xd9bca1[_0xa1c9('0x21')](_0xa1c9('0x22'),_0x224ae4+'-'+_0x2fb81e+'/'+_0x11ca10)[_0xa1c9('0x1c')](_0x1bbc94);}return null;};}function patchUpdates(_0x4edf37){return function(_0x41e6d2){try{jsonpatch[_0xa1c9('0x23')](_0x41e6d2,_0x4edf37,!![]);}catch(_0x4c6dbb){return BPromise[_0xa1c9('0x24')](_0x4c6dbb);}return _0x41e6d2[_0xa1c9('0x25')]();};}function saveUpdates(_0x9f201f,_0x4d05d0){return function(_0x29f1b1){if(_0x29f1b1){return _0x29f1b1[_0xa1c9('0x26')](_0x9f201f)[_0xa1c9('0x27')](function(_0x23a461){return _0x23a461;});}return null;};}function removeEntity(_0x24a5da,_0x4a0a0c){return function(_0x50b16b){if(_0x50b16b){return _0x50b16b[_0xa1c9('0x28')]()['then'](function(){_0x24a5da[_0xa1c9('0x1a')](0xcc)[_0xa1c9('0x1b')]();});}};}function handleEntityNotFound(_0x1c6f37,_0x3059eb){return function(_0x339ed1){if(!_0x339ed1){_0x1c6f37['sendStatus'](0x194);}return _0x339ed1;};}function handleError(_0x1925e7,_0x3ca2a8){_0x3ca2a8=_0x3ca2a8||0x1f4;return function(_0x20cbe1){logger['error'](_0x20cbe1[_0xa1c9('0x29')]);if(_0x20cbe1[_0xa1c9('0x2a')]){delete _0x20cbe1[_0xa1c9('0x2a')];}_0x1925e7['status'](_0x3ca2a8)[_0xa1c9('0x2b')](_0x20cbe1);};}exports[_0xa1c9('0x2c')]=function(_0x594137,_0x38936f){var _0x48ce34={},_0xdf6d0c={},_0x2404c3={'count':0x0,'rows':[]};var _0x88ba11=_[_0xa1c9('0x2d')](db[_0xa1c9('0x2e')][_0xa1c9('0x2f')],function(_0x42fcb2){return{'name':_0x42fcb2[_0xa1c9('0x30')],'type':_0x42fcb2['type']['key']};});_0xdf6d0c[_0xa1c9('0x31')]=_[_0xa1c9('0x2d')](_0x88ba11,_0xa1c9('0x2a'));_0xdf6d0c[_0xa1c9('0x32')]=_[_0xa1c9('0x33')](_0x594137['query']);_0xdf6d0c['filters']=_['intersection'](_0xdf6d0c[_0xa1c9('0x31')],_0xdf6d0c[_0xa1c9('0x32')]);_0x48ce34[_0xa1c9('0x34')]=_[_0xa1c9('0x35')](_0xdf6d0c[_0xa1c9('0x31')],qs[_0xa1c9('0x36')](_0x594137[_0xa1c9('0x32')]['fields']));_0x48ce34[_0xa1c9('0x34')]=_0x48ce34['attributes'][_0xa1c9('0x37')]?_0x48ce34['attributes']:_0xdf6d0c[_0xa1c9('0x31')];if(!_0x594137[_0xa1c9('0x32')][_0xa1c9('0x38')]('nolimit')){_0x48ce34[_0xa1c9('0x1f')]=qs[_0xa1c9('0x1f')](_0x594137[_0xa1c9('0x32')][_0xa1c9('0x1f')]);_0x48ce34['offset']=qs['offset'](_0x594137[_0xa1c9('0x32')][_0xa1c9('0x1d')]);}_0x48ce34[_0xa1c9('0x39')]=qs[_0xa1c9('0x3a')](_0x594137[_0xa1c9('0x32')][_0xa1c9('0x3a')]);_0x48ce34[_0xa1c9('0x3b')]=qs[_0xa1c9('0x3c')](_[_0xa1c9('0x3d')](_0x594137[_0xa1c9('0x32')],_0xdf6d0c['filters']),_0x88ba11);if(_0x594137[_0xa1c9('0x32')][_0xa1c9('0x3e')]){_0x48ce34[_0xa1c9('0x3b')]=_[_0xa1c9('0x3f')](_0x48ce34[_0xa1c9('0x3b')],{'$or':_[_0xa1c9('0x2d')](_0x88ba11,function(_0x5011a3){if(_0x5011a3[_0xa1c9('0x40')]!==_0xa1c9('0x41')){var _0x29d871={};_0x29d871[_0x5011a3['name']]={'$like':'%'+_0x594137[_0xa1c9('0x32')][_0xa1c9('0x3e')]+'%'};return _0x29d871;}})});}_0x48ce34=_['merge']({},_0x48ce34,_0x594137[_0xa1c9('0x42')]);var _0x25502f={'where':_0x48ce34['where']};return db['WhatsappQueueReport'][_0xa1c9('0x20')](_0x25502f)[_0xa1c9('0x27')](function(_0x34a6b8){_0x2404c3[_0xa1c9('0x20')]=_0x34a6b8;if(_0x594137[_0xa1c9('0x32')][_0xa1c9('0x43')]){_0x48ce34[_0xa1c9('0x44')]=[{'all':!![]}];}return db[_0xa1c9('0x2e')][_0xa1c9('0x45')](_0x48ce34);})[_0xa1c9('0x27')](function(_0x5ac71f){_0x2404c3['rows']=_0x5ac71f;return _0x2404c3;})[_0xa1c9('0x27')](respondWithFilteredResult(_0x38936f,_0x48ce34))[_0xa1c9('0x46')](handleError(_0x38936f,null));};exports['show']=function(_0x30ce3b,_0x102a33){var _0x43de42={'raw':!![],'where':{'id':_0x30ce3b[_0xa1c9('0x47')]['id']}},_0x36c846={};_0x36c846[_0xa1c9('0x31')]=_[_0xa1c9('0x33')](db[_0xa1c9('0x2e')][_0xa1c9('0x2f')]);_0x36c846[_0xa1c9('0x32')]=_[_0xa1c9('0x33')](_0x30ce3b['query']);_0x36c846[_0xa1c9('0x3c')]=_['intersection'](_0x36c846[_0xa1c9('0x31')],_0x36c846['query']);_0x43de42[_0xa1c9('0x34')]=_['intersection'](_0x36c846[_0xa1c9('0x31')],qs[_0xa1c9('0x36')](_0x30ce3b['query'][_0xa1c9('0x36')]));_0x43de42[_0xa1c9('0x34')]=_0x43de42['attributes'][_0xa1c9('0x37')]?_0x43de42[_0xa1c9('0x34')]:_0x36c846[_0xa1c9('0x31')];if(_0x30ce3b[_0xa1c9('0x32')][_0xa1c9('0x43')]){_0x43de42[_0xa1c9('0x44')]=[{'all':!![]}];}_0x43de42=_['merge']({},_0x43de42,_0x30ce3b[_0xa1c9('0x42')]);return db[_0xa1c9('0x2e')][_0xa1c9('0x48')](_0x43de42)[_0xa1c9('0x27')](handleEntityNotFound(_0x102a33,null))[_0xa1c9('0x27')](respondWithResult(_0x102a33,null))['catch'](handleError(_0x102a33,null));};exports['create']=function(_0x4cf00a,_0x15329c){return db[_0xa1c9('0x2e')][_0xa1c9('0x49')](_0x4cf00a['body'],{})[_0xa1c9('0x27')](respondWithResult(_0x15329c,0xc9))[_0xa1c9('0x46')](handleError(_0x15329c,null));};exports['update']=function(_0x43ee79,_0x4bdf5d){if(_0x43ee79['body']['id']){delete _0x43ee79[_0xa1c9('0x4a')]['id'];}return db[_0xa1c9('0x2e')][_0xa1c9('0x48')]({'where':{'id':_0x43ee79[_0xa1c9('0x47')]['id']}})[_0xa1c9('0x27')](handleEntityNotFound(_0x4bdf5d,null))[_0xa1c9('0x27')](saveUpdates(_0x43ee79[_0xa1c9('0x4a')],null))[_0xa1c9('0x27')](respondWithResult(_0x4bdf5d,null))[_0xa1c9('0x46')](handleError(_0x4bdf5d,null));};exports[_0xa1c9('0x28')]=function(_0x2b2065,_0x1bed85){return db[_0xa1c9('0x2e')][_0xa1c9('0x48')]({'where':{'id':_0x2b2065[_0xa1c9('0x47')]['id']}})[_0xa1c9('0x27')](handleEntityNotFound(_0x1bed85,null))[_0xa1c9('0x27')](removeEntity(_0x1bed85,null))[_0xa1c9('0x46')](handleError(_0x1bed85,null));};exports[_0xa1c9('0x4b')]=function(_0x4a968e,_0x55dc05){return db[_0xa1c9('0x2e')][_0xa1c9('0x4b')]()[_0xa1c9('0x27')](respondWithResult(_0x55dc05,null))[_0xa1c9('0x46')](handleError(_0x55dc05,null));};
\ No newline at end of file
+var _0x34b7=['WhatsappQueueReport','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','show','params','includeAll','include','find','catch','create','body','update','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','end','error','name','send','index','map'];(function(_0x5e36d1,_0x471178){var _0x950b9e=function(_0x1872f3){while(--_0x1872f3){_0x5e36d1['push'](_0x5e36d1['shift']());}};_0x950b9e(++_0x471178);}(_0x34b7,0x196));var _0x734b=function(_0x4b7af6,_0x2bb0cd){_0x4b7af6=_0x4b7af6-0x0;var _0x4215b5=_0x34b7[_0x4b7af6];return _0x4215b5;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x734b('0x0'));var jsonpatch=require(_0x734b('0x1'));var rp=require(_0x734b('0x2'));var moment=require(_0x734b('0x3'));var BPromise=require(_0x734b('0x4'));var Mustache=require(_0x734b('0x5'));var util=require('util');var path=require('path');var sox=require(_0x734b('0x6'));var csv=require(_0x734b('0x7'));var ejs=require(_0x734b('0x8'));var fs=require('fs');var fs_extra=require(_0x734b('0x9'));var _=require(_0x734b('0xa'));var squel=require(_0x734b('0xb'));var crypto=require('crypto');var jsforce=require(_0x734b('0xc'));var deskjs=require(_0x734b('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x734b('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x734b('0xf'));var as=require(_0x734b('0x10'));var hardwareService=require(_0x734b('0x11'));var logger=require(_0x734b('0x12'))(_0x734b('0x13'));var utils=require(_0x734b('0x14'));var config=require(_0x734b('0x15'));var licenseUtil=require(_0x734b('0x16'));var db=require(_0x734b('0x17'))['db'];function respondWithStatusCode(_0x1e0fca,_0x189a82){_0x189a82=_0x189a82||0xcc;return function(_0xff9ddf){if(_0xff9ddf){return _0x1e0fca[_0x734b('0x18')](_0x189a82);}return _0x1e0fca[_0x734b('0x19')](_0x189a82)['end']();};}function respondWithResult(_0x18fc18,_0x252510){_0x252510=_0x252510||0xc8;return function(_0x47791c){if(_0x47791c){return _0x18fc18[_0x734b('0x19')](_0x252510)[_0x734b('0x1a')](_0x47791c);}};}function respondWithFilteredResult(_0x2e00ad,_0x2372bd){return function(_0x2c03bd){if(_0x2c03bd){var _0xa6d111=typeof _0x2372bd[_0x734b('0x1b')]===_0x734b('0x1c')&&typeof _0x2372bd['limit']===_0x734b('0x1c');var _0x2ee290=_0x2c03bd[_0x734b('0x1d')];var _0x5edbe9=_0xa6d111?0x0:_0x2372bd['offset'];var _0x56a95c=_0xa6d111?_0x2c03bd[_0x734b('0x1d')]:_0x2372bd[_0x734b('0x1b')]+_0x2372bd[_0x734b('0x1e')];var _0x41ba87;if(_0x56a95c>=_0x2ee290){_0x56a95c=_0x2ee290;_0x41ba87=0xc8;}else{_0x41ba87=0xce;}_0x2e00ad[_0x734b('0x19')](_0x41ba87);return _0x2e00ad[_0x734b('0x1f')](_0x734b('0x20'),_0x5edbe9+'-'+_0x56a95c+'/'+_0x2ee290)[_0x734b('0x1a')](_0x2c03bd);}return null;};}function patchUpdates(_0x67eed){return function(_0x1d2b27){try{jsonpatch[_0x734b('0x21')](_0x1d2b27,_0x67eed,!![]);}catch(_0x3d0ffd){return BPromise[_0x734b('0x22')](_0x3d0ffd);}return _0x1d2b27[_0x734b('0x23')]();};}function saveUpdates(_0x56f807,_0x1e4dcc){return function(_0x7856d7){if(_0x7856d7){return _0x7856d7['update'](_0x56f807)[_0x734b('0x24')](function(_0x1f81de){return _0x1f81de;});}return null;};}function removeEntity(_0x1a7908,_0x11fb8e){return function(_0x46d432){if(_0x46d432){return _0x46d432[_0x734b('0x25')]()[_0x734b('0x24')](function(){_0x1a7908[_0x734b('0x19')](0xcc)[_0x734b('0x26')]();});}};}function handleEntityNotFound(_0x3abbe6,_0x44ffa9){return function(_0x148abe){if(!_0x148abe){_0x3abbe6[_0x734b('0x18')](0x194);}return _0x148abe;};}function handleError(_0x566d55,_0x49732b){_0x49732b=_0x49732b||0x1f4;return function(_0x13cc5a){logger[_0x734b('0x27')](_0x13cc5a['stack']);if(_0x13cc5a[_0x734b('0x28')]){delete _0x13cc5a[_0x734b('0x28')];}_0x566d55[_0x734b('0x19')](_0x49732b)[_0x734b('0x29')](_0x13cc5a);};}exports[_0x734b('0x2a')]=function(_0x1b8295,_0x3ba39c){var _0x5c6c5d={},_0x1f3652={},_0x436efe={'count':0x0,'rows':[]};var _0x42e9ae=_[_0x734b('0x2b')](db[_0x734b('0x2c')][_0x734b('0x2d')],function(_0x1fed72){return{'name':_0x1fed72[_0x734b('0x2e')],'type':_0x1fed72[_0x734b('0x2f')][_0x734b('0x30')]};});_0x1f3652['model']=_[_0x734b('0x2b')](_0x42e9ae,_0x734b('0x28'));_0x1f3652['query']=_[_0x734b('0x31')](_0x1b8295[_0x734b('0x32')]);_0x1f3652[_0x734b('0x33')]=_[_0x734b('0x34')](_0x1f3652[_0x734b('0x35')],_0x1f3652[_0x734b('0x32')]);_0x5c6c5d[_0x734b('0x36')]=_[_0x734b('0x34')](_0x1f3652[_0x734b('0x35')],qs[_0x734b('0x37')](_0x1b8295[_0x734b('0x32')][_0x734b('0x37')]));_0x5c6c5d[_0x734b('0x36')]=_0x5c6c5d[_0x734b('0x36')][_0x734b('0x38')]?_0x5c6c5d['attributes']:_0x1f3652[_0x734b('0x35')];if(!_0x1b8295['query'][_0x734b('0x39')](_0x734b('0x3a'))){_0x5c6c5d[_0x734b('0x1e')]=qs[_0x734b('0x1e')](_0x1b8295[_0x734b('0x32')][_0x734b('0x1e')]);_0x5c6c5d['offset']=qs['offset'](_0x1b8295[_0x734b('0x32')]['offset']);}_0x5c6c5d[_0x734b('0x3b')]=qs['sort'](_0x1b8295[_0x734b('0x32')]['sort']);_0x5c6c5d[_0x734b('0x3c')]=qs['filters'](_[_0x734b('0x3d')](_0x1b8295[_0x734b('0x32')],_0x1f3652[_0x734b('0x33')]),_0x42e9ae);if(_0x1b8295[_0x734b('0x32')][_0x734b('0x3e')]){_0x5c6c5d[_0x734b('0x3c')]=_[_0x734b('0x3f')](_0x5c6c5d['where'],{'$or':_[_0x734b('0x2b')](_0x42e9ae,function(_0x317d32){if(_0x317d32['type']!==_0x734b('0x40')){var _0x309b31={};_0x309b31[_0x317d32[_0x734b('0x28')]]={'$like':'%'+_0x1b8295[_0x734b('0x32')]['filter']+'%'};return _0x309b31;}})});}_0x5c6c5d=_[_0x734b('0x3f')]({},_0x5c6c5d,_0x1b8295[_0x734b('0x41')]);var _0x4efb1f={'where':_0x5c6c5d[_0x734b('0x3c')]};return db[_0x734b('0x2c')]['count'](_0x4efb1f)[_0x734b('0x24')](function(_0x2d8f31){_0x436efe[_0x734b('0x1d')]=_0x2d8f31;if(_0x1b8295[_0x734b('0x32')]['includeAll']){_0x5c6c5d['include']=[{'all':!![]}];}return db[_0x734b('0x2c')]['findAll'](_0x5c6c5d);})['then'](function(_0x121a00){_0x436efe['rows']=_0x121a00;return _0x436efe;})[_0x734b('0x24')](respondWithFilteredResult(_0x3ba39c,_0x5c6c5d))['catch'](handleError(_0x3ba39c,null));};exports[_0x734b('0x42')]=function(_0x337106,_0xe4fe38){var _0x4c3fdc={'raw':!![],'where':{'id':_0x337106[_0x734b('0x43')]['id']}},_0x5cf3a0={};_0x5cf3a0['model']=_['keys'](db[_0x734b('0x2c')][_0x734b('0x2d')]);_0x5cf3a0['query']=_[_0x734b('0x31')](_0x337106['query']);_0x5cf3a0[_0x734b('0x33')]=_[_0x734b('0x34')](_0x5cf3a0[_0x734b('0x35')],_0x5cf3a0['query']);_0x4c3fdc[_0x734b('0x36')]=_[_0x734b('0x34')](_0x5cf3a0[_0x734b('0x35')],qs[_0x734b('0x37')](_0x337106['query']['fields']));_0x4c3fdc['attributes']=_0x4c3fdc[_0x734b('0x36')]['length']?_0x4c3fdc['attributes']:_0x5cf3a0[_0x734b('0x35')];if(_0x337106['query'][_0x734b('0x44')]){_0x4c3fdc[_0x734b('0x45')]=[{'all':!![]}];}_0x4c3fdc=_[_0x734b('0x3f')]({},_0x4c3fdc,_0x337106[_0x734b('0x41')]);return db['WhatsappQueueReport'][_0x734b('0x46')](_0x4c3fdc)['then'](handleEntityNotFound(_0xe4fe38,null))[_0x734b('0x24')](respondWithResult(_0xe4fe38,null))[_0x734b('0x47')](handleError(_0xe4fe38,null));};exports[_0x734b('0x48')]=function(_0x5cdacb,_0x370326){return db['WhatsappQueueReport'][_0x734b('0x48')](_0x5cdacb[_0x734b('0x49')],{})['then'](respondWithResult(_0x370326,0xc9))[_0x734b('0x47')](handleError(_0x370326,null));};exports[_0x734b('0x4a')]=function(_0x145ced,_0x38125a){if(_0x145ced[_0x734b('0x49')]['id']){delete _0x145ced['body']['id'];}return db[_0x734b('0x2c')]['find']({'where':{'id':_0x145ced[_0x734b('0x43')]['id']}})['then'](handleEntityNotFound(_0x38125a,null))[_0x734b('0x24')](saveUpdates(_0x145ced[_0x734b('0x49')],null))[_0x734b('0x24')](respondWithResult(_0x38125a,null))[_0x734b('0x47')](handleError(_0x38125a,null));};exports[_0x734b('0x25')]=function(_0x4b70f2,_0x4c0378){return db['WhatsappQueueReport'][_0x734b('0x46')]({'where':{'id':_0x4b70f2[_0x734b('0x43')]['id']}})['then'](handleEntityNotFound(_0x4c0378,null))[_0x734b('0x24')](removeEntity(_0x4c0378,null))[_0x734b('0x47')](handleError(_0x4c0378,null));};exports['describe']=function(_0x167173,_0x3a9749){return db[_0x734b('0x2c')]['describe']()[_0x734b('0x24')](respondWithResult(_0x3a9749,null))[_0x734b('0x47')](handleError(_0x3a9749,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca21=['exports','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid','util','../../config/logger','api','moment','request-promise','rimraf','./whatsappQueueReport.attributes'];(function(_0x2b9e76,_0x467e25){var _0x4c014e=function(_0x165284){while(--_0x165284){_0x2b9e76['push'](_0x2b9e76['shift']());}};_0x4c014e(++_0x467e25);}(_0xca21,0xdd));var _0x1ca2=function(_0x4ac24d,_0x55e6d3){_0x4ac24d=_0x4ac24d-0x0;var _0x220f5e=_0xca21[_0x4ac24d];return _0x220f5e;};'use strict';var _=require('lodash');var util=require(_0x1ca2('0x0'));var logger=require(_0x1ca2('0x1'))(_0x1ca2('0x2'));var moment=require(_0x1ca2('0x3'));var BPromise=require('bluebird');var rp=require(_0x1ca2('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1ca2('0x5'));var config=require('../../config/environment');var attributes=require(_0x1ca2('0x6'));module[_0x1ca2('0x7')]=function(_0x26d2d0,_0x285588){return _0x26d2d0[_0x1ca2('0x8')](_0x1ca2('0x9'),attributes,{'tableName':_0x1ca2('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x1ca2('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xa365=['bluebird','request-promise','path','rimraf','../../config/environment','./whatsappQueueReport.attributes','exports','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid','lodash','util','api','moment'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xa365,0xdd));var _0x5a36=function(_0x4936e4,_0x4eb6ff){_0x4936e4=_0x4936e4-0x0;var _0x48f367=_0xa365[_0x4936e4];return _0x48f367;};'use strict';var _=require(_0x5a36('0x0'));var util=require(_0x5a36('0x1'));var logger=require('../../config/logger')(_0x5a36('0x2'));var moment=require(_0x5a36('0x3'));var BPromise=require(_0x5a36('0x4'));var rp=require(_0x5a36('0x5'));var fs=require('fs');var path=require(_0x5a36('0x6'));var rimraf=require(_0x5a36('0x7'));var config=require(_0x5a36('0x8'));var attributes=require(_0x5a36('0x9'));module[_0x5a36('0xa')]=function(_0x5a8e15,_0x20f823){return _0x5a8e15[_0x5a36('0xb')](_0x5a36('0xc'),attributes,{'tableName':_0x5a36('0xd'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x5a36('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ae0=['bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','client','http','request','then','WhatsappQueueReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','error','message','info','result','catch','CreateWhatsappQueueReport','create','options','raw','UpdateWhatsappQueueReport','WhatsappQueueReport','body','attributes','limit','stringify','lodash','util','moment'];(function(_0x384b96,_0x20de9a){var _0x269b9f=function(_0x10cbf3){while(--_0x10cbf3){_0x384b96['push'](_0x384b96['shift']());}};_0x269b9f(++_0x20de9a);}(_0x2ae0,0xbd));var _0x02ae=function(_0x3d466b,_0x2ca6e7){_0x3d466b=_0x3d466b-0x0;var _0x45015b=_0x2ae0[_0x3d466b];return _0x45015b;};'use strict';var _=require(_0x02ae('0x0'));var util=require(_0x02ae('0x1'));var moment=require(_0x02ae('0x2'));var BPromise=require(_0x02ae('0x3'));var rs=require(_0x02ae('0x4'));var fs=require('fs');var Redis=require(_0x02ae('0x5'));var db=require(_0x02ae('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x02ae('0x7'));var jayson=require(_0x02ae('0x8'));var client=jayson[_0x02ae('0x9')][_0x02ae('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x485bf2,_0x1f6183,_0x52209e){return new BPromise(function(_0x2f5055,_0x4ac8c7){return client[_0x02ae('0xb')](_0x485bf2,_0x52209e)[_0x02ae('0xc')](function(_0x5caddb){logger['info'](_0x02ae('0xd'),_0x1f6183,_0x02ae('0xe'));logger[_0x02ae('0xf')](_0x02ae('0x10'),_0x1f6183,'request\x20sent',JSON['stringify'](_0x5caddb));if(_0x5caddb['error']){if(_0x5caddb['error']['code']===0x1f4){logger[_0x02ae('0x11')]('WhatsappQueueReport,\x20%s,\x20%s',_0x1f6183,_0x5caddb[_0x02ae('0x11')][_0x02ae('0x12')]);return _0x4ac8c7(_0x5caddb[_0x02ae('0x11')][_0x02ae('0x12')]);}logger[_0x02ae('0x11')](_0x02ae('0xd'),_0x1f6183,_0x5caddb[_0x02ae('0x11')][_0x02ae('0x12')]);return _0x2f5055(_0x5caddb['error'][_0x02ae('0x12')]);}else{logger[_0x02ae('0x13')]('WhatsappQueueReport,\x20%s,\x20%s',_0x1f6183,_0x02ae('0xe'));_0x2f5055(_0x5caddb[_0x02ae('0x14')]['message']);}})[_0x02ae('0x15')](function(_0xce4fbc){logger['error'](_0x02ae('0xd'),_0x1f6183,_0xce4fbc);_0x4ac8c7(_0xce4fbc);});});}exports[_0x02ae('0x16')]=function(_0x3fb876){var _0x3c3780=this;return new Promise(function(_0xe5de4e,_0x283cd0){return db['WhatsappQueueReport'][_0x02ae('0x17')](_0x3fb876['body'],{'raw':_0x3fb876[_0x02ae('0x18')]?_0x3fb876['options'][_0x02ae('0x19')]===undefined?!![]:![]:!![]})[_0x02ae('0xc')](function(_0x405bab){logger[_0x02ae('0x13')](_0x02ae('0x16'),_0x3fb876);logger[_0x02ae('0xf')](_0x02ae('0x16'),_0x3fb876,JSON['stringify'](_0x405bab));_0xe5de4e(_0x405bab);})[_0x02ae('0x15')](function(_0x258294){logger[_0x02ae('0x11')](_0x02ae('0x16'),_0x258294[_0x02ae('0x12')],_0x3fb876);_0x283cd0(_0x3c3780[_0x02ae('0x11')](0x1f4,_0x258294[_0x02ae('0x12')]));});});};exports[_0x02ae('0x1a')]=function(_0x208744){var _0x36f778=this;return new Promise(function(_0x36c428,_0x2799b7){return db[_0x02ae('0x1b')]['update'](_0x208744[_0x02ae('0x1c')],{'raw':_0x208744[_0x02ae('0x18')]?_0x208744['options'][_0x02ae('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x208744['options']?_0x208744['options']['where']||null:null,'attributes':_0x208744[_0x02ae('0x18')]?_0x208744[_0x02ae('0x18')][_0x02ae('0x1d')]||null:null,'limit':_0x208744[_0x02ae('0x18')]?_0x208744[_0x02ae('0x18')][_0x02ae('0x1e')]||null:null})[_0x02ae('0xc')](function(_0x3ff675){logger['info'](_0x02ae('0x1a'),_0x208744);logger[_0x02ae('0xf')](_0x02ae('0x1a'),_0x208744,JSON[_0x02ae('0x1f')](_0x3ff675));_0x36c428(_0x3ff675);})[_0x02ae('0x15')](function(_0x1a6950){logger[_0x02ae('0x11')]('UpdateWhatsappQueueReport',_0x1a6950[_0x02ae('0x12')],_0x208744);_0x2799b7(_0x36f778['error'](0x1f4,_0x1a6950[_0x02ae('0x12')]));});});};
\ No newline at end of file
+var _0x5fbd=['UpdateWhatsappQueueReport','update','where','attributes','limit','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','jayson/promise','http','then','info','request\x20sent','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','error','code','WhatsappQueueReport,\x20%s,\x20%s','message','result','catch','CreateWhatsappQueueReport','WhatsappQueueReport','create','body','options','raw','debug'];(function(_0xd93b26,_0x12bbf2){var _0x25f668=function(_0x133ff7){while(--_0x133ff7){_0xd93b26['push'](_0xd93b26['shift']());}};_0x25f668(++_0x12bbf2);}(_0x5fbd,0x192));var _0xd5fb=function(_0x1ed64f,_0x3a9696){_0x1ed64f=_0x1ed64f-0x0;var _0x12c806=_0x5fbd[_0x1ed64f];return _0x12c806;};'use strict';var _=require(_0xd5fb('0x0'));var util=require(_0xd5fb('0x1'));var moment=require(_0xd5fb('0x2'));var BPromise=require(_0xd5fb('0x3'));var rs=require(_0xd5fb('0x4'));var fs=require('fs');var Redis=require(_0xd5fb('0x5'));var db=require(_0xd5fb('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xd5fb('0x7'));var config=require('../../config/environment');var jayson=require(_0xd5fb('0x8'));var client=jayson['client'][_0xd5fb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29a95b,_0x35fd72,_0x14177){return new BPromise(function(_0x1ceb5e,_0x3b3c24){return client['request'](_0x29a95b,_0x14177)[_0xd5fb('0xa')](function(_0xa0e18b){logger[_0xd5fb('0xb')]('WhatsappQueueReport,\x20%s,\x20%s',_0x35fd72,_0xd5fb('0xc'));logger['debug'](_0xd5fb('0xd'),_0x35fd72,_0xd5fb('0xc'),JSON['stringify'](_0xa0e18b));if(_0xa0e18b[_0xd5fb('0xe')]){if(_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0xf')]===0x1f4){logger[_0xd5fb('0xe')](_0xd5fb('0x10'),_0x35fd72,_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);return _0x3b3c24(_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);}logger[_0xd5fb('0xe')]('WhatsappQueueReport,\x20%s,\x20%s',_0x35fd72,_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);return _0x1ceb5e(_0xa0e18b['error'][_0xd5fb('0x11')]);}else{logger[_0xd5fb('0xb')](_0xd5fb('0x10'),_0x35fd72,_0xd5fb('0xc'));_0x1ceb5e(_0xa0e18b[_0xd5fb('0x12')][_0xd5fb('0x11')]);}})[_0xd5fb('0x13')](function(_0x36f90b){logger[_0xd5fb('0xe')](_0xd5fb('0x10'),_0x35fd72,_0x36f90b);_0x3b3c24(_0x36f90b);});});}exports[_0xd5fb('0x14')]=function(_0x3f2f2d){var _0x530455=this;return new Promise(function(_0x323f15,_0x4bb600){return db[_0xd5fb('0x15')][_0xd5fb('0x16')](_0x3f2f2d[_0xd5fb('0x17')],{'raw':_0x3f2f2d[_0xd5fb('0x18')]?_0x3f2f2d[_0xd5fb('0x18')][_0xd5fb('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x435783){logger['info']('CreateWhatsappQueueReport',_0x3f2f2d);logger[_0xd5fb('0x1a')](_0xd5fb('0x14'),_0x3f2f2d,JSON['stringify'](_0x435783));_0x323f15(_0x435783);})['catch'](function(_0x4ba030){logger[_0xd5fb('0xe')]('CreateWhatsappQueueReport',_0x4ba030['message'],_0x3f2f2d);_0x4bb600(_0x530455[_0xd5fb('0xe')](0x1f4,_0x4ba030[_0xd5fb('0x11')]));});});};exports[_0xd5fb('0x1b')]=function(_0x11124c){var _0x49c7d6=this;return new Promise(function(_0x4fe4d0,_0x37e440){return db['WhatsappQueueReport'][_0xd5fb('0x1c')](_0x11124c['body'],{'raw':_0x11124c['options']?_0x11124c[_0xd5fb('0x18')][_0xd5fb('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x11124c[_0xd5fb('0x18')]?_0x11124c[_0xd5fb('0x18')][_0xd5fb('0x1d')]||null:null,'attributes':_0x11124c[_0xd5fb('0x18')]?_0x11124c[_0xd5fb('0x18')][_0xd5fb('0x1e')]||null:null,'limit':_0x11124c['options']?_0x11124c[_0xd5fb('0x18')][_0xd5fb('0x1f')]||null:null})['then'](function(_0x32a262){logger[_0xd5fb('0xb')](_0xd5fb('0x1b'),_0x11124c);logger[_0xd5fb('0x1a')](_0xd5fb('0x1b'),_0x11124c,JSON[_0xd5fb('0x20')](_0x32a262));_0x4fe4d0(_0x32a262);})[_0xd5fb('0x13')](function(_0x164893){logger[_0xd5fb('0xe')](_0xd5fb('0x1b'),_0x164893[_0xd5fb('0x11')],_0x11124c);_0x37e440(_0x49c7d6['error'](0x1f4,_0x164893[_0xd5fb('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6fba=['isAuthenticated','/describe','describe','get','/:id','show','create','put','update','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller'];(function(_0x5a7e3c,_0xdc9219){var _0x59252b=function(_0x29655c){while(--_0x29655c){_0x5a7e3c['push'](_0x5a7e3c['shift']());}};_0x59252b(++_0xdc9219);}(_0x6fba,0x15e));var _0xa6fb=function(_0x117360,_0x674a6b){_0x117360=_0x117360-0x0;var _0x2f8cfb=_0x6fba[_0x117360];return _0x2f8cfb;};'use strict';var multer=require(_0xa6fb('0x0'));var util=require(_0xa6fb('0x1'));var path=require(_0xa6fb('0x2'));var timeout=require(_0xa6fb('0x3'));var express=require('express');var router=express[_0xa6fb('0x4')]();var fs_extra=require(_0xa6fb('0x5'));var auth=require(_0xa6fb('0x6'));var interaction=require(_0xa6fb('0x7'));var config=require(_0xa6fb('0x8'));var controller=require(_0xa6fb('0x9'));router['get']('/',auth[_0xa6fb('0xa')](),controller['index']);router['get'](_0xa6fb('0xb'),auth[_0xa6fb('0xa')](),controller[_0xa6fb('0xc')]);router[_0xa6fb('0xd')](_0xa6fb('0xe'),auth[_0xa6fb('0xa')](),controller[_0xa6fb('0xf')]);router['post']('/',auth[_0xa6fb('0xa')](),controller[_0xa6fb('0x10')]);router[_0xa6fb('0x11')](_0xa6fb('0xe'),auth[_0xa6fb('0xa')](),controller[_0xa6fb('0x12')]);router['delete']('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xa6fb('0x13')]=router;
\ No newline at end of file
+var _0xfe4b=['util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappTransferReport.controller','get','isAuthenticated','/:id','show','post','create','put','update','exports','multer'];(function(_0x4773fa,_0x226c9e){var _0xe195cf=function(_0x3aebd2){while(--_0x3aebd2){_0x4773fa['push'](_0x4773fa['shift']());}};_0xe195cf(++_0x226c9e);}(_0xfe4b,0x1c1));var _0xbfe4=function(_0xb1cf84,_0x813740){_0xb1cf84=_0xb1cf84-0x0;var _0x4bad2e=_0xfe4b[_0xb1cf84];return _0x4bad2e;};'use strict';var multer=require(_0xbfe4('0x0'));var util=require(_0xbfe4('0x1'));var path=require(_0xbfe4('0x2'));var timeout=require('connect-timeout');var express=require(_0xbfe4('0x3'));var router=express[_0xbfe4('0x4')]();var fs_extra=require(_0xbfe4('0x5'));var auth=require(_0xbfe4('0x6'));var interaction=require(_0xbfe4('0x7'));var config=require('../../config/environment');var controller=require(_0xbfe4('0x8'));router[_0xbfe4('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0xbfe4('0x9')]('/describe',auth[_0xbfe4('0xa')](),controller['describe']);router[_0xbfe4('0x9')](_0xbfe4('0xb'),auth[_0xbfe4('0xa')](),controller[_0xbfe4('0xc')]);router[_0xbfe4('0xd')]('/',auth[_0xbfe4('0xa')](),controller[_0xbfe4('0xe')]);router[_0xbfe4('0xf')](_0xbfe4('0xb'),auth[_0xbfe4('0xa')](),controller[_0xbfe4('0x10')]);router['delete'](_0xbfe4('0xb'),auth[_0xbfe4('0xa')](),controller['destroy']);module[_0xbfe4('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab75=['exports','STRING','agent','queue','DATE','sequelize'];(function(_0x508c0a,_0x1bcd5e){var _0x1c19b7=function(_0x21300d){while(--_0x21300d){_0x508c0a['push'](_0x508c0a['shift']());}};_0x1c19b7(++_0x1bcd5e);}(_0xab75,0x11f));var _0x5ab7=function(_0x57fc34,_0x18867a){_0x57fc34=_0x57fc34-0x0;var _0x5a00b7=_0xab75[_0x57fc34];return _0x5a00b7;};'use strict';var Sequelize=require(_0x5ab7('0x0'));module[_0x5ab7('0x1')]={'uniqueid':{'type':Sequelize[_0x5ab7('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM']('account',_0x5ab7('0x3'),_0x5ab7('0x4')),'allowNull':![]},'transferredAt':{'type':Sequelize[_0x5ab7('0x5')]}};
\ No newline at end of file
+var _0x867f=['STRING','account','agent','queue','sequelize','exports'];(function(_0x53209e,_0x300d2a){var _0x542bf6=function(_0x27e70d){while(--_0x27e70d){_0x53209e['push'](_0x53209e['shift']());}};_0x542bf6(++_0x300d2a);}(_0x867f,0xdc));var _0xf867=function(_0x549928,_0x363b7a){_0x549928=_0x549928-0x0;var _0x941e27=_0x867f[_0x549928];return _0x941e27;};'use strict';var Sequelize=require(_0xf867('0x0'));module[_0xf867('0x1')]={'uniqueid':{'type':Sequelize[_0xf867('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xf867('0x3'),_0xf867('0x4'),_0xf867('0x5')),'allowNull':![]},'transferredAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe99=['pick','filters','filter','merge','VIRTUAL','options','WhatsappTransferReport','includeAll','rows','catch','show','params','include','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where'];(function(_0x2f64f3,_0x378ea8){var _0x56cc2e=function(_0x40c52a){while(--_0x40c52a){_0x2f64f3['push'](_0x2f64f3['shift']());}};_0x56cc2e(++_0x378ea8);}(_0xbe99,0x1de));var _0x9be9=function(_0x423dd4,_0x287532){_0x423dd4=_0x423dd4-0x0;var _0xb29406=_0xbe99[_0x423dd4];return _0xb29406;};'use strict';var emlformat=require(_0x9be9('0x0'));var rimraf=require(_0x9be9('0x1'));var zipdir=require(_0x9be9('0x2'));var jsonpatch=require(_0x9be9('0x3'));var rp=require(_0x9be9('0x4'));var moment=require(_0x9be9('0x5'));var BPromise=require(_0x9be9('0x6'));var Mustache=require(_0x9be9('0x7'));var util=require('util');var path=require(_0x9be9('0x8'));var sox=require(_0x9be9('0x9'));var csv=require(_0x9be9('0xa'));var ejs=require(_0x9be9('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9be9('0xc'));var squel=require('squel');var crypto=require(_0x9be9('0xd'));var jsforce=require(_0x9be9('0xe'));var deskjs=require(_0x9be9('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9be9('0x10'));var authService=require(_0x9be9('0x11'));var qs=require(_0x9be9('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9be9('0x13'));var logger=require(_0x9be9('0x14'))(_0x9be9('0x15'));var utils=require(_0x9be9('0x16'));var config=require(_0x9be9('0x17'));var licenseUtil=require(_0x9be9('0x18'));var db=require(_0x9be9('0x19'))['db'];function respondWithStatusCode(_0x461146,_0x278fec){_0x278fec=_0x278fec||0xcc;return function(_0x9f3ce4){if(_0x9f3ce4){return _0x461146[_0x9be9('0x1a')](_0x278fec);}return _0x461146[_0x9be9('0x1b')](_0x278fec)[_0x9be9('0x1c')]();};}function respondWithResult(_0x39e093,_0x1510d7){_0x1510d7=_0x1510d7||0xc8;return function(_0xed191e){if(_0xed191e){return _0x39e093[_0x9be9('0x1b')](_0x1510d7)[_0x9be9('0x1d')](_0xed191e);}};}function respondWithFilteredResult(_0x694e8,_0x4247ef){return function(_0x3cab55){if(_0x3cab55){var _0x4f2684=typeof _0x4247ef[_0x9be9('0x1e')]===_0x9be9('0x1f')&&typeof _0x4247ef[_0x9be9('0x20')]===_0x9be9('0x1f');var _0x118b3b=_0x3cab55['count'];var _0x4b3e3a=_0x4f2684?0x0:_0x4247ef[_0x9be9('0x1e')];var _0x50dc32=_0x4f2684?_0x3cab55[_0x9be9('0x21')]:_0x4247ef[_0x9be9('0x1e')]+_0x4247ef['limit'];var _0x30ad38;if(_0x50dc32>=_0x118b3b){_0x50dc32=_0x118b3b;_0x30ad38=0xc8;}else{_0x30ad38=0xce;}_0x694e8[_0x9be9('0x1b')](_0x30ad38);return _0x694e8[_0x9be9('0x22')](_0x9be9('0x23'),_0x4b3e3a+'-'+_0x50dc32+'/'+_0x118b3b)['json'](_0x3cab55);}return null;};}function patchUpdates(_0x114490){return function(_0x19d37a){try{jsonpatch['apply'](_0x19d37a,_0x114490,!![]);}catch(_0x2793c2){return BPromise[_0x9be9('0x24')](_0x2793c2);}return _0x19d37a[_0x9be9('0x25')]();};}function saveUpdates(_0x6afa74,_0x1ce5c3){return function(_0x306a67){if(_0x306a67){return _0x306a67[_0x9be9('0x26')](_0x6afa74)[_0x9be9('0x27')](function(_0x4c94a5){return _0x4c94a5;});}return null;};}function removeEntity(_0x46d438,_0x359af9){return function(_0x2cb9b0){if(_0x2cb9b0){return _0x2cb9b0[_0x9be9('0x28')]()[_0x9be9('0x27')](function(){_0x46d438[_0x9be9('0x1b')](0xcc)[_0x9be9('0x1c')]();});}};}function handleEntityNotFound(_0x37eff3,_0x44370f){return function(_0x58736c){if(!_0x58736c){_0x37eff3[_0x9be9('0x1a')](0x194);}return _0x58736c;};}function handleError(_0x4ba11d,_0xa69bf5){_0xa69bf5=_0xa69bf5||0x1f4;return function(_0x419ac9){logger['error'](_0x419ac9[_0x9be9('0x29')]);if(_0x419ac9[_0x9be9('0x2a')]){delete _0x419ac9[_0x9be9('0x2a')];}_0x4ba11d[_0x9be9('0x1b')](_0xa69bf5)[_0x9be9('0x2b')](_0x419ac9);};}exports[_0x9be9('0x2c')]=function(_0x25af83,_0xa015f3){var _0x580fe8={},_0x3efd5c={},_0x177c3d={'count':0x0,'rows':[]};var _0x429f61=_['map'](db['WhatsappTransferReport'][_0x9be9('0x2d')],function(_0x384c15){return{'name':_0x384c15[_0x9be9('0x2e')],'type':_0x384c15[_0x9be9('0x2f')][_0x9be9('0x30')]};});_0x3efd5c[_0x9be9('0x31')]=_[_0x9be9('0x32')](_0x429f61,_0x9be9('0x2a'));_0x3efd5c[_0x9be9('0x33')]=_[_0x9be9('0x34')](_0x25af83[_0x9be9('0x33')]);_0x3efd5c['filters']=_[_0x9be9('0x35')](_0x3efd5c['model'],_0x3efd5c[_0x9be9('0x33')]);_0x580fe8[_0x9be9('0x36')]=_['intersection'](_0x3efd5c[_0x9be9('0x31')],qs[_0x9be9('0x37')](_0x25af83['query'][_0x9be9('0x37')]));_0x580fe8[_0x9be9('0x36')]=_0x580fe8['attributes'][_0x9be9('0x38')]?_0x580fe8[_0x9be9('0x36')]:_0x3efd5c[_0x9be9('0x31')];if(!_0x25af83[_0x9be9('0x33')][_0x9be9('0x39')](_0x9be9('0x3a'))){_0x580fe8[_0x9be9('0x20')]=qs['limit'](_0x25af83[_0x9be9('0x33')][_0x9be9('0x20')]);_0x580fe8[_0x9be9('0x1e')]=qs[_0x9be9('0x1e')](_0x25af83[_0x9be9('0x33')][_0x9be9('0x1e')]);}_0x580fe8['order']=qs[_0x9be9('0x3b')](_0x25af83[_0x9be9('0x33')][_0x9be9('0x3b')]);_0x580fe8[_0x9be9('0x3c')]=qs['filters'](_[_0x9be9('0x3d')](_0x25af83['query'],_0x3efd5c[_0x9be9('0x3e')]),_0x429f61);if(_0x25af83[_0x9be9('0x33')][_0x9be9('0x3f')]){_0x580fe8[_0x9be9('0x3c')]=_[_0x9be9('0x40')](_0x580fe8['where'],{'$or':_[_0x9be9('0x32')](_0x429f61,function(_0x5bb9f5){if(_0x5bb9f5[_0x9be9('0x2f')]!==_0x9be9('0x41')){var _0x56be66={};_0x56be66[_0x5bb9f5[_0x9be9('0x2a')]]={'$like':'%'+_0x25af83[_0x9be9('0x33')][_0x9be9('0x3f')]+'%'};return _0x56be66;}})});}_0x580fe8=_[_0x9be9('0x40')]({},_0x580fe8,_0x25af83[_0x9be9('0x42')]);var _0x30bcb2={'where':_0x580fe8['where']};return db[_0x9be9('0x43')]['count'](_0x30bcb2)[_0x9be9('0x27')](function(_0x46b8b3){_0x177c3d[_0x9be9('0x21')]=_0x46b8b3;if(_0x25af83[_0x9be9('0x33')][_0x9be9('0x44')]){_0x580fe8['include']=[{'all':!![]}];}return db[_0x9be9('0x43')]['findAll'](_0x580fe8);})[_0x9be9('0x27')](function(_0x489fdd){_0x177c3d[_0x9be9('0x45')]=_0x489fdd;return _0x177c3d;})[_0x9be9('0x27')](respondWithFilteredResult(_0xa015f3,_0x580fe8))[_0x9be9('0x46')](handleError(_0xa015f3,null));};exports[_0x9be9('0x47')]=function(_0x4967fb,_0xb5264e){var _0x330052={'raw':!![],'where':{'id':_0x4967fb[_0x9be9('0x48')]['id']}},_0x257f2a={};_0x257f2a[_0x9be9('0x31')]=_[_0x9be9('0x34')](db[_0x9be9('0x43')][_0x9be9('0x2d')]);_0x257f2a[_0x9be9('0x33')]=_[_0x9be9('0x34')](_0x4967fb[_0x9be9('0x33')]);_0x257f2a[_0x9be9('0x3e')]=_[_0x9be9('0x35')](_0x257f2a[_0x9be9('0x31')],_0x257f2a['query']);_0x330052[_0x9be9('0x36')]=_[_0x9be9('0x35')](_0x257f2a[_0x9be9('0x31')],qs[_0x9be9('0x37')](_0x4967fb[_0x9be9('0x33')][_0x9be9('0x37')]));_0x330052[_0x9be9('0x36')]=_0x330052[_0x9be9('0x36')][_0x9be9('0x38')]?_0x330052[_0x9be9('0x36')]:_0x257f2a['model'];if(_0x4967fb[_0x9be9('0x33')][_0x9be9('0x44')]){_0x330052[_0x9be9('0x49')]=[{'all':!![]}];}_0x330052=_[_0x9be9('0x40')]({},_0x330052,_0x4967fb[_0x9be9('0x42')]);return db[_0x9be9('0x43')]['find'](_0x330052)['then'](handleEntityNotFound(_0xb5264e,null))[_0x9be9('0x27')](respondWithResult(_0xb5264e,null))['catch'](handleError(_0xb5264e,null));};exports['create']=function(_0x4f5c7b,_0x1d287a){return db[_0x9be9('0x43')]['create'](_0x4f5c7b[_0x9be9('0x4a')],{})[_0x9be9('0x27')](respondWithResult(_0x1d287a,0xc9))[_0x9be9('0x46')](handleError(_0x1d287a,null));};exports[_0x9be9('0x26')]=function(_0x58086d,_0x2ddd33){if(_0x58086d[_0x9be9('0x4a')]['id']){delete _0x58086d['body']['id'];}return db[_0x9be9('0x43')][_0x9be9('0x4b')]({'where':{'id':_0x58086d[_0x9be9('0x48')]['id']}})[_0x9be9('0x27')](handleEntityNotFound(_0x2ddd33,null))[_0x9be9('0x27')](saveUpdates(_0x58086d[_0x9be9('0x4a')],null))[_0x9be9('0x27')](respondWithResult(_0x2ddd33,null))[_0x9be9('0x46')](handleError(_0x2ddd33,null));};exports['destroy']=function(_0x3670be,_0x1568dd){return db[_0x9be9('0x43')][_0x9be9('0x4b')]({'where':{'id':_0x3670be[_0x9be9('0x48')]['id']}})[_0x9be9('0x27')](handleEntityNotFound(_0x1568dd,null))[_0x9be9('0x27')](removeEntity(_0x1568dd,null))[_0x9be9('0x46')](handleError(_0x1568dd,null));};exports[_0x9be9('0x4c')]=function(_0x26888d,_0x18f2d1){return db[_0x9be9('0x43')][_0x9be9('0x4c')]()['then'](respondWithResult(_0x18f2d1,null))['catch'](handleError(_0x18f2d1,null));};
\ No newline at end of file
+var _0xb04a=['WhatsappTransferReport','fieldName','type','model','keys','query','attributes','fields','length','hasOwnProperty','limit','order','sort','filters','pick','where','merge','VIRTUAL','filter','includeAll','include','rows','catch','show','rawAttributes','intersection','create','body','find','params','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map'];(function(_0x5584ce,_0x4701e7){var _0x4461e0=function(_0x6ab250){while(--_0x6ab250){_0x5584ce['push'](_0x5584ce['shift']());}};_0x4461e0(++_0x4701e7);}(_0xb04a,0x1ed));var _0xab04=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb04a[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xab04('0x0'));var rimraf=require(_0xab04('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xab04('0x2'));var rp=require(_0xab04('0x3'));var moment=require(_0xab04('0x4'));var BPromise=require(_0xab04('0x5'));var Mustache=require(_0xab04('0x6'));var util=require(_0xab04('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xab04('0x8'));var ejs=require(_0xab04('0x9'));var fs=require('fs');var fs_extra=require(_0xab04('0xa'));var _=require(_0xab04('0xb'));var squel=require(_0xab04('0xc'));var crypto=require(_0xab04('0xd'));var jsforce=require(_0xab04('0xe'));var deskjs=require(_0xab04('0xf'));var toCsv=require(_0xab04('0x8'));var querystring=require('querystring');var Papa=require(_0xab04('0x10'));var Redis=require(_0xab04('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xab04('0x12'));var as=require(_0xab04('0x13'));var hardwareService=require(_0xab04('0x14'));var logger=require(_0xab04('0x15'))('api');var utils=require(_0xab04('0x16'));var config=require(_0xab04('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xab04('0x18'))['db'];function respondWithStatusCode(_0xec3947,_0x287196){_0x287196=_0x287196||0xcc;return function(_0x54cd4c){if(_0x54cd4c){return _0xec3947[_0xab04('0x19')](_0x287196);}return _0xec3947[_0xab04('0x1a')](_0x287196)[_0xab04('0x1b')]();};}function respondWithResult(_0x864b03,_0x5a252d){_0x5a252d=_0x5a252d||0xc8;return function(_0x3a132f){if(_0x3a132f){return _0x864b03[_0xab04('0x1a')](_0x5a252d)[_0xab04('0x1c')](_0x3a132f);}};}function respondWithFilteredResult(_0x5a7525,_0x4b6656){return function(_0x26cf10){if(_0x26cf10){var _0x24aa02=typeof _0x4b6656[_0xab04('0x1d')]===_0xab04('0x1e')&&typeof _0x4b6656['limit']==='undefined';var _0x325e85=_0x26cf10[_0xab04('0x1f')];var _0x2f2238=_0x24aa02?0x0:_0x4b6656['offset'];var _0x4a73c7=_0x24aa02?_0x26cf10[_0xab04('0x1f')]:_0x4b6656[_0xab04('0x1d')]+_0x4b6656['limit'];var _0x108c89;if(_0x4a73c7>=_0x325e85){_0x4a73c7=_0x325e85;_0x108c89=0xc8;}else{_0x108c89=0xce;}_0x5a7525[_0xab04('0x1a')](_0x108c89);return _0x5a7525[_0xab04('0x20')](_0xab04('0x21'),_0x2f2238+'-'+_0x4a73c7+'/'+_0x325e85)[_0xab04('0x1c')](_0x26cf10);}return null;};}function patchUpdates(_0x530cb8){return function(_0x15c6a5){try{jsonpatch[_0xab04('0x22')](_0x15c6a5,_0x530cb8,!![]);}catch(_0xcaa1e2){return BPromise[_0xab04('0x23')](_0xcaa1e2);}return _0x15c6a5[_0xab04('0x24')]();};}function saveUpdates(_0x4ec94d,_0x3a39bf){return function(_0x582b41){if(_0x582b41){return _0x582b41[_0xab04('0x25')](_0x4ec94d)[_0xab04('0x26')](function(_0x54e2e4){return _0x54e2e4;});}return null;};}function removeEntity(_0x2e7128,_0x5cf159){return function(_0x1aedc5){if(_0x1aedc5){return _0x1aedc5[_0xab04('0x27')]()[_0xab04('0x26')](function(){_0x2e7128[_0xab04('0x1a')](0xcc)[_0xab04('0x1b')]();});}};}function handleEntityNotFound(_0x114f08,_0xc747df){return function(_0x4d077b){if(!_0x4d077b){_0x114f08[_0xab04('0x19')](0x194);}return _0x4d077b;};}function handleError(_0x3d4514,_0x226d3a){_0x226d3a=_0x226d3a||0x1f4;return function(_0x573a61){logger[_0xab04('0x28')](_0x573a61[_0xab04('0x29')]);if(_0x573a61[_0xab04('0x2a')]){delete _0x573a61[_0xab04('0x2a')];}_0x3d4514[_0xab04('0x1a')](_0x226d3a)[_0xab04('0x2b')](_0x573a61);};}exports[_0xab04('0x2c')]=function(_0x301a66,_0x3251f6){var _0x5c1d26={},_0x46d90e={},_0x284d43={'count':0x0,'rows':[]};var _0x4855c3=_[_0xab04('0x2d')](db[_0xab04('0x2e')]['rawAttributes'],function(_0x38762d){return{'name':_0x38762d[_0xab04('0x2f')],'type':_0x38762d[_0xab04('0x30')]['key']};});_0x46d90e[_0xab04('0x31')]=_[_0xab04('0x2d')](_0x4855c3,_0xab04('0x2a'));_0x46d90e['query']=_[_0xab04('0x32')](_0x301a66[_0xab04('0x33')]);_0x46d90e['filters']=_['intersection'](_0x46d90e[_0xab04('0x31')],_0x46d90e[_0xab04('0x33')]);_0x5c1d26[_0xab04('0x34')]=_['intersection'](_0x46d90e[_0xab04('0x31')],qs[_0xab04('0x35')](_0x301a66[_0xab04('0x33')][_0xab04('0x35')]));_0x5c1d26['attributes']=_0x5c1d26[_0xab04('0x34')][_0xab04('0x36')]?_0x5c1d26[_0xab04('0x34')]:_0x46d90e[_0xab04('0x31')];if(!_0x301a66['query'][_0xab04('0x37')]('nolimit')){_0x5c1d26[_0xab04('0x38')]=qs['limit'](_0x301a66['query']['limit']);_0x5c1d26[_0xab04('0x1d')]=qs[_0xab04('0x1d')](_0x301a66['query'][_0xab04('0x1d')]);}_0x5c1d26[_0xab04('0x39')]=qs[_0xab04('0x3a')](_0x301a66[_0xab04('0x33')]['sort']);_0x5c1d26['where']=qs[_0xab04('0x3b')](_[_0xab04('0x3c')](_0x301a66[_0xab04('0x33')],_0x46d90e[_0xab04('0x3b')]),_0x4855c3);if(_0x301a66[_0xab04('0x33')]['filter']){_0x5c1d26[_0xab04('0x3d')]=_[_0xab04('0x3e')](_0x5c1d26[_0xab04('0x3d')],{'$or':_[_0xab04('0x2d')](_0x4855c3,function(_0x1bf264){if(_0x1bf264[_0xab04('0x30')]!==_0xab04('0x3f')){var _0x570798={};_0x570798[_0x1bf264['name']]={'$like':'%'+_0x301a66[_0xab04('0x33')][_0xab04('0x40')]+'%'};return _0x570798;}})});}_0x5c1d26=_[_0xab04('0x3e')]({},_0x5c1d26,_0x301a66['options']);var _0x3151de={'where':_0x5c1d26[_0xab04('0x3d')]};return db[_0xab04('0x2e')]['count'](_0x3151de)[_0xab04('0x26')](function(_0x304f22){_0x284d43[_0xab04('0x1f')]=_0x304f22;if(_0x301a66[_0xab04('0x33')][_0xab04('0x41')]){_0x5c1d26[_0xab04('0x42')]=[{'all':!![]}];}return db[_0xab04('0x2e')]['findAll'](_0x5c1d26);})[_0xab04('0x26')](function(_0x397df8){_0x284d43[_0xab04('0x43')]=_0x397df8;return _0x284d43;})['then'](respondWithFilteredResult(_0x3251f6,_0x5c1d26))[_0xab04('0x44')](handleError(_0x3251f6,null));};exports[_0xab04('0x45')]=function(_0x472de6,_0x248294){var _0x4a79dc={'raw':!![],'where':{'id':_0x472de6['params']['id']}},_0x4fe481={};_0x4fe481['model']=_[_0xab04('0x32')](db[_0xab04('0x2e')][_0xab04('0x46')]);_0x4fe481[_0xab04('0x33')]=_[_0xab04('0x32')](_0x472de6[_0xab04('0x33')]);_0x4fe481[_0xab04('0x3b')]=_[_0xab04('0x47')](_0x4fe481[_0xab04('0x31')],_0x4fe481['query']);_0x4a79dc[_0xab04('0x34')]=_[_0xab04('0x47')](_0x4fe481[_0xab04('0x31')],qs[_0xab04('0x35')](_0x472de6[_0xab04('0x33')]['fields']));_0x4a79dc['attributes']=_0x4a79dc[_0xab04('0x34')]['length']?_0x4a79dc[_0xab04('0x34')]:_0x4fe481[_0xab04('0x31')];if(_0x472de6[_0xab04('0x33')][_0xab04('0x41')]){_0x4a79dc[_0xab04('0x42')]=[{'all':!![]}];}_0x4a79dc=_[_0xab04('0x3e')]({},_0x4a79dc,_0x472de6['options']);return db[_0xab04('0x2e')]['find'](_0x4a79dc)[_0xab04('0x26')](handleEntityNotFound(_0x248294,null))['then'](respondWithResult(_0x248294,null))[_0xab04('0x44')](handleError(_0x248294,null));};exports[_0xab04('0x48')]=function(_0x5532fd,_0x1ea0df){return db[_0xab04('0x2e')][_0xab04('0x48')](_0x5532fd[_0xab04('0x49')],{})['then'](respondWithResult(_0x1ea0df,0xc9))[_0xab04('0x44')](handleError(_0x1ea0df,null));};exports[_0xab04('0x25')]=function(_0xe2f28a,_0x13e1f5){if(_0xe2f28a[_0xab04('0x49')]['id']){delete _0xe2f28a[_0xab04('0x49')]['id'];}return db[_0xab04('0x2e')][_0xab04('0x4a')]({'where':{'id':_0xe2f28a[_0xab04('0x4b')]['id']}})[_0xab04('0x26')](handleEntityNotFound(_0x13e1f5,null))['then'](saveUpdates(_0xe2f28a[_0xab04('0x49')],null))['then'](respondWithResult(_0x13e1f5,null))[_0xab04('0x44')](handleError(_0x13e1f5,null));};exports[_0xab04('0x27')]=function(_0x3e0053,_0x4cddb4){return db['WhatsappTransferReport'][_0xab04('0x4a')]({'where':{'id':_0x3e0053[_0xab04('0x4b')]['id']}})[_0xab04('0x26')](handleEntityNotFound(_0x4cddb4,null))[_0xab04('0x26')](removeEntity(_0x4cddb4,null))[_0xab04('0x44')](handleError(_0x4cddb4,null));};exports[_0xab04('0x4c')]=function(_0x41d326,_0x232454){return db[_0xab04('0x2e')][_0xab04('0x4c')]()['then'](respondWithResult(_0x232454,null))[_0xab04('0x44')](handleError(_0x232454,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2292=['uniqueid','lodash','util','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappTransferReport.attributes','exports','define','WhatsappTransferReport','report_whatsapp_transfer'];(function(_0xc9be25,_0x1fc8de){var _0x229673=function(_0x3504c6){while(--_0x3504c6){_0xc9be25['push'](_0xc9be25['shift']());}};_0x229673(++_0x1fc8de);}(_0x2292,0x71));var _0x2229=function(_0x1d3019,_0x8dbbd5){_0x1d3019=_0x1d3019-0x0;var _0x36458e=_0x2292[_0x1d3019];return _0x36458e;};'use strict';var _=require(_0x2229('0x0'));var util=require(_0x2229('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x2229('0x2'));var BPromise=require(_0x2229('0x3'));var rp=require(_0x2229('0x4'));var fs=require('fs');var path=require(_0x2229('0x5'));var rimraf=require(_0x2229('0x6'));var config=require(_0x2229('0x7'));var attributes=require(_0x2229('0x8'));module[_0x2229('0x9')]=function(_0x267495,_0x4918e2){return _0x267495[_0x2229('0xa')](_0x2229('0xb'),attributes,{'tableName':_0x2229('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x2229('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8829=['lodash','util','moment','bluebird','request-promise','path','rimraf','exports','define','WhatsappTransferReport','uniqueid'];(function(_0x5b2a9f,_0x4e2abe){var _0x2fba35=function(_0x285f64){while(--_0x285f64){_0x5b2a9f['push'](_0x5b2a9f['shift']());}};_0x2fba35(++_0x4e2abe);}(_0x8829,0x108));var _0x9882=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8829[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x9882('0x0'));var util=require(_0x9882('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x9882('0x2'));var BPromise=require(_0x9882('0x3'));var rp=require(_0x9882('0x4'));var fs=require('fs');var path=require(_0x9882('0x5'));var rimraf=require(_0x9882('0x6'));var config=require('../../config/environment');var attributes=require('./whatsappTransferReport.attributes');module[_0x9882('0x7')]=function(_0x526cc0,_0x5f0b69){return _0x526cc0[_0x9882('0x8')](_0x9882('0x9'),attributes,{'tableName':'report_whatsapp_transfer','paranoid':![],'indexes':[{'name':_0x9882('0xa'),'fields':[_0x9882('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ab4=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','request','then','request\x20sent','debug','stringify','error','code','WhatsappTransferReport,\x20%s,\x20%s','message','info','result','lodash','util','moment','bluebird','randomstring'];(function(_0x5b5b93,_0x3921d4){var _0x1da432=function(_0x5bfefc){while(--_0x5bfefc){_0x5b5b93['push'](_0x5b5b93['shift']());}};_0x1da432(++_0x3921d4);}(_0x6ab4,0x1c9));var _0x46ab=function(_0x2647a0,_0x462d4a){_0x2647a0=_0x2647a0-0x0;var _0xf80786=_0x6ab4[_0x2647a0];return _0xf80786;};'use strict';var _=require(_0x46ab('0x0'));var util=require(_0x46ab('0x1'));var moment=require(_0x46ab('0x2'));var BPromise=require(_0x46ab('0x3'));var rs=require(_0x46ab('0x4'));var fs=require('fs');var Redis=require(_0x46ab('0x5'));var db=require(_0x46ab('0x6'))['db'];var utils=require(_0x46ab('0x7'));var logger=require(_0x46ab('0x8'))(_0x46ab('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x46ab('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x34ddd3,_0x187197,_0x2ff02a){return new BPromise(function(_0x43bfbb,_0x266ccb){return client[_0x46ab('0xb')](_0x34ddd3,_0x2ff02a)[_0x46ab('0xc')](function(_0x6e6601){logger['info']('WhatsappTransferReport,\x20%s,\x20%s',_0x187197,_0x46ab('0xd'));logger[_0x46ab('0xe')]('WhatsappTransferReport,\x20%s,\x20%s,\x20%s',_0x187197,_0x46ab('0xd'),JSON[_0x46ab('0xf')](_0x6e6601));if(_0x6e6601[_0x46ab('0x10')]){if(_0x6e6601[_0x46ab('0x10')][_0x46ab('0x11')]===0x1f4){logger[_0x46ab('0x10')](_0x46ab('0x12'),_0x187197,_0x6e6601[_0x46ab('0x10')][_0x46ab('0x13')]);return _0x266ccb(_0x6e6601['error'][_0x46ab('0x13')]);}logger[_0x46ab('0x10')](_0x46ab('0x12'),_0x187197,_0x6e6601[_0x46ab('0x10')][_0x46ab('0x13')]);return _0x43bfbb(_0x6e6601['error'][_0x46ab('0x13')]);}else{logger[_0x46ab('0x14')]('WhatsappTransferReport,\x20%s,\x20%s',_0x187197,_0x46ab('0xd'));_0x43bfbb(_0x6e6601[_0x46ab('0x15')][_0x46ab('0x13')]);}})['catch'](function(_0x332a91){logger[_0x46ab('0x10')](_0x46ab('0x12'),_0x187197,_0x332a91);_0x266ccb(_0x332a91);});});}
\ No newline at end of file
+var _0x54dc=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','info','WhatsappTransferReport,\x20%s,\x20%s','debug','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result'];(function(_0x160d95,_0x1f42b3){var _0x57c03b=function(_0x371703){while(--_0x371703){_0x160d95['push'](_0x160d95['shift']());}};_0x57c03b(++_0x1f42b3);}(_0x54dc,0x6f));var _0xc54d=function(_0x45ee03,_0x2f5319){_0x45ee03=_0x45ee03-0x0;var _0x13d535=_0x54dc[_0x45ee03];return _0x13d535;};'use strict';var _=require(_0xc54d('0x0'));var util=require(_0xc54d('0x1'));var moment=require(_0xc54d('0x2'));var BPromise=require(_0xc54d('0x3'));var rs=require(_0xc54d('0x4'));var fs=require('fs');var Redis=require(_0xc54d('0x5'));var db=require(_0xc54d('0x6'))['db'];var utils=require(_0xc54d('0x7'));var logger=require(_0xc54d('0x8'))(_0xc54d('0x9'));var config=require(_0xc54d('0xa'));var jayson=require('jayson/promise');var client=jayson['client'][_0xc54d('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x59af71,_0x287563,_0x413783){return new BPromise(function(_0x5f06f8,_0x58ba57){return client[_0xc54d('0xc')](_0x59af71,_0x413783)['then'](function(_0x3e5242){logger[_0xc54d('0xd')](_0xc54d('0xe'),_0x287563,'request\x20sent');logger[_0xc54d('0xf')](_0xc54d('0x10'),_0x287563,_0xc54d('0x11'),JSON['stringify'](_0x3e5242));if(_0x3e5242[_0xc54d('0x12')]){if(_0x3e5242[_0xc54d('0x12')]['code']===0x1f4){logger[_0xc54d('0x12')]('WhatsappTransferReport,\x20%s,\x20%s',_0x287563,_0x3e5242[_0xc54d('0x12')][_0xc54d('0x13')]);return _0x58ba57(_0x3e5242[_0xc54d('0x12')]['message']);}logger[_0xc54d('0x12')]('WhatsappTransferReport,\x20%s,\x20%s',_0x287563,_0x3e5242[_0xc54d('0x12')]['message']);return _0x5f06f8(_0x3e5242['error'][_0xc54d('0x13')]);}else{logger[_0xc54d('0xd')](_0xc54d('0xe'),_0x287563,_0xc54d('0x11'));_0x5f06f8(_0x3e5242[_0xc54d('0x14')][_0xc54d('0x13')]);}})[_0xc54d('0x15')](function(_0x136986){logger[_0xc54d('0x12')](_0xc54d('0xe'),_0x287563,_0x136986);_0x58ba57(_0x136986);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fee=['join','Offline\x20apps:','status','seedDB','./config/seedDB','default','./config/license','catch','error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','exit','./mysqldb','./rpc','./config/environment','./config/logger','app','./config/pm2','./config/pm2/config','./config/schedule','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','sequelize','sync','then','listen','start','info','Online\x20apps:','map','filter','name'];(function(_0x5cdc1a,_0x3376e4){var _0x3102d9=function(_0x2c51e8){while(--_0x2c51e8){_0x5cdc1a['push'](_0x5cdc1a['shift']());}};_0x3102d9(++_0x3376e4);}(_0x1fee,0x8b));var _0xe1fe=function(_0x293de1,_0x2e2866){_0x293de1=_0x293de1-0x0;var _0x4b3c01=_0x1fee[_0x293de1];return _0x4b3c01;};'use strict';var _=require('lodash');var mysqldb=require(_0xe1fe('0x0'));var rpc=require(_0xe1fe('0x1'));var config=require(_0xe1fe('0x2'));var logger=require(_0xe1fe('0x3'))(_0xe1fe('0x4'));var pm2=require(_0xe1fe('0x5'));var pm2Config=require(_0xe1fe('0x6'));var schedule=require(_0xe1fe('0x7'));var chat=require(_0xe1fe('0x8'));var whatsapp=require(_0xe1fe('0x9'));var transcribe=require(_0xe1fe('0xa'));function main(){return mysqldb['db'][_0xe1fe('0xb')][_0xe1fe('0xc')]()[_0xe1fe('0xd')](function(){return rpc[_0xe1fe('0xe')]();})[_0xe1fe('0xd')](function(_0xb46a1){logger['info'](_0xb46a1);return chat[_0xe1fe('0xf')]();})[_0xe1fe('0xd')](function(){return whatsapp[_0xe1fe('0xf')]();})[_0xe1fe('0xd')](function(){return schedule[_0xe1fe('0xf')]();})['then'](function(){return transcribe[_0xe1fe('0xf')]();})[_0xe1fe('0xd')](function(_0x379f15){logger[_0xe1fe('0x10')](_0x379f15);return pm2[_0xe1fe('0xf')](pm2Config);})[_0xe1fe('0xd')](function(_0x39b6c0){logger[_0xe1fe('0x10')](_0xe1fe('0x11'),_[_0xe1fe('0x12')](_[_0xe1fe('0x13')](_0x39b6c0,{'status':'online'}),_0xe1fe('0x14'))[_0xe1fe('0x15')]());logger['info'](_0xe1fe('0x16'),_[_0xe1fe('0x12')](_['filter'](_0x39b6c0,function(_0x2ece36){return _0x2ece36[_0xe1fe('0x17')]!=='online';}),_0xe1fe('0x14'))[_0xe1fe('0x15')]()||'None');config[_0xe1fe('0x18')]&&require(_0xe1fe('0x19'))[_0xe1fe('0x1a')]();require(_0xe1fe('0x1b'))[_0xe1fe('0x1a')]();})[_0xe1fe('0x1c')](function(_0xc4b64c){logger[_0xe1fe('0x1d')](_0xe1fe('0x1e'),_0xc4b64c);process[_0xe1fe('0x1f')](0x1);});}main();
\ No newline at end of file
+var _0xf223=['error','exit','./mysqldb','./rpc','./config/environment','app','./config/pm2','./config/pm2/config','./config/schedule','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','sequelize','sync','then','info','start','Online\x20apps:','filter','online','name','join','Offline\x20apps:','map','status','None','./config/seedDB','default','catch'];(function(_0x50aa2e,_0xfbd6f0){var _0x5e07f0=function(_0x3ed540){while(--_0x3ed540){_0x50aa2e['push'](_0x50aa2e['shift']());}};_0x5e07f0(++_0xfbd6f0);}(_0xf223,0x107));var _0x3f22=function(_0x2cd176,_0x176f09){_0x2cd176=_0x2cd176-0x0;var _0x8b7cff=_0xf223[_0x2cd176];return _0x8b7cff;};'use strict';var _=require('lodash');var mysqldb=require(_0x3f22('0x0'));var rpc=require(_0x3f22('0x1'));var config=require(_0x3f22('0x2'));var logger=require('./config/logger')(_0x3f22('0x3'));var pm2=require(_0x3f22('0x4'));var pm2Config=require(_0x3f22('0x5'));var schedule=require(_0x3f22('0x6'));var chat=require(_0x3f22('0x7'));var whatsapp=require(_0x3f22('0x8'));var transcribe=require(_0x3f22('0x9'));function main(){return mysqldb['db'][_0x3f22('0xa')][_0x3f22('0xb')]()[_0x3f22('0xc')](function(){return rpc['listen']();})[_0x3f22('0xc')](function(_0x5561e){logger[_0x3f22('0xd')](_0x5561e);return chat[_0x3f22('0xe')]();})[_0x3f22('0xc')](function(){return whatsapp['start']();})['then'](function(){return schedule['start']();})[_0x3f22('0xc')](function(){return transcribe[_0x3f22('0xe')]();})[_0x3f22('0xc')](function(_0x3f405a){logger['info'](_0x3f405a);return pm2[_0x3f22('0xe')](pm2Config);})['then'](function(_0xc8bb2e){logger[_0x3f22('0xd')](_0x3f22('0xf'),_['map'](_[_0x3f22('0x10')](_0xc8bb2e,{'status':_0x3f22('0x11')}),_0x3f22('0x12'))[_0x3f22('0x13')]());logger[_0x3f22('0xd')](_0x3f22('0x14'),_[_0x3f22('0x15')](_[_0x3f22('0x10')](_0xc8bb2e,function(_0x18567d){return _0x18567d[_0x3f22('0x16')]!=='online';}),_0x3f22('0x12'))[_0x3f22('0x13')]()||_0x3f22('0x17'));config['seedDB']&&require(_0x3f22('0x18'))[_0x3f22('0x19')]();require('./config/license')[_0x3f22('0x19')]();})[_0x3f22('0x1a')](function(_0x356b11){logger[_0x3f22('0x1b')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x356b11);process[_0x3f22('0x1c')](0x1);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa206=['bluebird','util','moment','session','role','fullname','name','email','userpic','permissions','md5secret','voicePause','smsPause','openchannelPause','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswerDelay','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','use','user','ChatInteraction','findOne','params','closed','disposition','then','unmanaged','json','Unmanaged.','Forbidden.','catch','isAuthenticated','headers','authorization','User','find','authenticate','status','Wrong\x20credentials.','startsWith','Bearer','Unknown\x20authorization\x20format','query','apikey','getUuid','sub','allowedLoginAttempts','blockDuration','isEqual','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','blocked','blockedAt','add','minutes','Invalid\x20API\x20access\x20key','User\x20object\x20not\x20found.','getLicense','update','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','redirect','send','retrieveApiKey','isNil','apiKeyNonce','apiKeyIat','generateApiKey','validatePasswordPattern','test','Sequelize','ValidationError','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','decryptString','length','unshift','join','promisify','sign','secret','secrets','payload','options','randomBytes','toString','floor','now','HS512','../../mysqldb','../../config/license/util','../encryptor','lodash','jsonwebtoken','basic-auth','crypto'];(function(_0x36fe9b,_0x518d1b){var _0x113065=function(_0x4f78d4){while(--_0x4f78d4){_0x36fe9b['push'](_0x36fe9b['shift']());}};_0x113065(++_0x518d1b);}(_0xa206,0xed));var _0x6a20=function(_0x11f8ab,_0x14c79c){_0x11f8ab=_0x11f8ab-0x0;var _0xe10e93=_0xa206[_0x11f8ab];return _0xe10e93;};'use strict';var db=require(_0x6a20('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0x6a20('0x1'));var encryptor=require(_0x6a20('0x2'));var _=require(_0x6a20('0x3'));var jwt=require(_0x6a20('0x4'));var expressJwt=require('express-jwt');var compose=require('composable-middleware');var basicAuth=require(_0x6a20('0x5'));var crypto=require(_0x6a20('0x6'));var BPromise=require(_0x6a20('0x7'));var util=require(_0x6a20('0x8'));var moment=require(_0x6a20('0x9'));var validateJwt=expressJwt({'secret':config['secrets'][_0x6a20('0xa')]});var userAttributes=['id',_0x6a20('0xb'),_0x6a20('0xc'),_0x6a20('0xd'),'internal',_0x6a20('0xe'),_0x6a20('0xf'),_0x6a20('0x10'),_0x6a20('0x11'),_0x6a20('0x12'),'chatPause','mailPause','faxPause',_0x6a20('0x13'),_0x6a20('0x14'),'pauseType','showWebBar',_0x6a20('0x15'),_0x6a20('0x16'),_0x6a20('0x17'),_0x6a20('0x18'),_0x6a20('0x19'),_0x6a20('0x1a'),'phoneBarAutoAnswer',_0x6a20('0x1b'),'phoneBarDnd','phoneBarEnableRecording',_0x6a20('0x1c'),_0x6a20('0x1d'),_0x6a20('0x1e'),_0x6a20('0x1f'),_0x6a20('0x20'),_0x6a20('0x21'),_0x6a20('0x22'),_0x6a20('0x23'),_0x6a20('0x24'),_0x6a20('0x25'),_0x6a20('0x26'),_0x6a20('0x27'),_0x6a20('0x28'),_0x6a20('0x29'),_0x6a20('0x2a')];exports[_0x6a20('0x2b')]=function(){return this['isAuthenticated'](!![])[_0x6a20('0x2c')](function(_0x1e6eae,_0x2d88b5,_0x1a819c){if(_0x1e6eae[_0x6a20('0x2d')]){_0x1a819c();}else{return db[_0x6a20('0x2e')][_0x6a20('0x2f')]({'where':{'id':_0x1e6eae[_0x6a20('0x30')]['id']},'attributes':['id',_0x6a20('0x31'),_0x6a20('0x32')],'raw':!![]})[_0x6a20('0x33')](function(_0x3f23ad){if(_0x3f23ad&&_0x3f23ad[_0x6a20('0x31')]){return _0x2d88b5['status'](_0x3f23ad['disposition']===_0x6a20('0x34')?0x195:0x193)[_0x6a20('0x35')]({'message':_0x3f23ad[_0x6a20('0x32')]===_0x6a20('0x34')?_0x6a20('0x36'):_0x6a20('0x37')});}else{_0x1a819c();}})[_0x6a20('0x38')](function(_0x368e99){_0x1a819c(_0x368e99);});}});};exports[_0x6a20('0x39')]=function isAuthenticated(_0x163b2b){return compose()['use'](function(_0xb0dee,_0x1e36e1,_0x591fe5){var _0x3245cd;if(_0xb0dee[_0x6a20('0x3a')][_0x6a20('0x3b')]){if(_['startsWith'](_0xb0dee['headers']['authorization'],'Basic')){var _0x3a4804=basicAuth(_0xb0dee);db[_0x6a20('0x3c')][_0x6a20('0x3d')]({'where':{'name':_0x3a4804[_0x6a20('0xd')]}})[_0x6a20('0x33')](function(_0x5d82bd){if(!_0x5d82bd||!_0x5d82bd[_0x6a20('0x3e')](_0x3a4804['pass'])){return _0x1e36e1[_0x6a20('0x3f')](0x191)[_0x6a20('0x35')]({'message':_0x6a20('0x40')});}_0xb0dee['user']={'id':_0x5d82bd['id']};_0x591fe5();})[_0x6a20('0x38')](function(_0x20f28d){_0x591fe5(_0x20f28d);});}else if(_[_0x6a20('0x41')](_0xb0dee[_0x6a20('0x3a')][_0x6a20('0x3b')],_0x6a20('0x42'))){validateJwt(_0xb0dee,_0x1e36e1,_0x591fe5);}else{if(_0x163b2b){_0x591fe5();}else{return _0x1e36e1[_0x6a20('0x3f')](0x193)[_0x6a20('0x35')]({'message':_0x6a20('0x43')});}}}else if(_0xb0dee[_0x6a20('0x44')][_0x6a20('0x45')]){try{var _0x29b6d5={'audience':hardwareConf[_0x6a20('0x46')](),'issuer':hardwareConf[_0x6a20('0x46')]()};verifyJwt(_0xb0dee['query'][_0x6a20('0x45')],_0x29b6d5)[_0x6a20('0x33')](function(_0xa5a5ae){return db['User']['find']({'where':{'id':_0xa5a5ae[_0x6a20('0x47')]}})[_0x6a20('0x33')](function(_0x354230){_0x3245cd=_0x354230;return db['Setting'][_0x6a20('0x2f')]({'where':{'id':0x1},'attributes':[_0x6a20('0x48'),_0x6a20('0x49')],'raw':!![]});})['then'](function(_0x2caad2){if(!_0x3245cd||!_[_0x6a20('0x4a')](_0x3245cd['apiKeyNonce'],_0xa5a5ae[_0x6a20('0x4b')])){return _0x1e36e1['status'](0x191)[_0x6a20('0x35')]({'message':_0x6a20('0x4c')});}if(_0x3245cd[_0x6a20('0x4d')]){return _0x1e36e1['status'](0x191)[_0x6a20('0x35')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x3245cd[_0x6a20('0x4e')]){if(_0x2caad2[_0x6a20('0x49')]>0x0){if(moment(_0x3245cd[_0x6a20('0x4f')])[_0x6a20('0x50')](_0x2caad2[_0x6a20('0x49')],_0x6a20('0x51'))>moment()){return _0x1e36e1[_0x6a20('0x3f')](0x191)['json']({'message':_0x6a20('0x52')});}}else{return _0x1e36e1[_0x6a20('0x3f')](0x191)[_0x6a20('0x35')]({'message':_0x6a20('0x52')});}}_0xb0dee[_0x6a20('0x2d')]={'id':_0x3245cd['id']};_0x591fe5();});})['catch'](function(){return _0x1e36e1['status'](0x191)['json']({'message':_0x6a20('0x52')});});}catch(_0xb2d46c){_0x591fe5(_0xb2d46c);}}else if(_0x163b2b){_0x591fe5();}else{return _0x1e36e1[_0x6a20('0x3f')](0x193)[_0x6a20('0x35')]({'message':_0x6a20('0x43')});}})[_0x6a20('0x2c')](function(_0x3ba1c7,_0x112827,_0x39e9b1){if(_0x3ba1c7[_0x6a20('0x2d')]){db[_0x6a20('0x3c')]['find']({'where':{'id':_0x3ba1c7[_0x6a20('0x2d')]['id']},'attributes':userAttributes})[_0x6a20('0x33')](function(_0x67bef5){if(!_0x67bef5){return _0x112827[_0x6a20('0x3f')](0x194)[_0x6a20('0x35')]({'message':'User\x20not\x20found.'});}_0x3ba1c7[_0x6a20('0x2d')]=_0x67bef5;_0x39e9b1();})[_0x6a20('0x38')](function(_0x363ea0){_0x39e9b1(_0x363ea0);});}else if(_0x163b2b){_0x39e9b1();}else{return _0x112827[_0x6a20('0x3f')](0x194)[_0x6a20('0x35')]({'message':_0x6a20('0x53')});}});};exports['canUpdate']=function canUpdate(){return compose()[_0x6a20('0x2c')](function(_0x613f5b,_0xf8a8f3,_0x4a0eda){return licenseUtil[_0x6a20('0x54')]()['then'](function(_0x320bab){if(_0x320bab[_0x6a20('0x55')]){_0x4a0eda();}else{return _0xf8a8f3[_0x6a20('0x3f')](0x193)[_0x6a20('0x35')]({'message':'Forbidden'});}})[_0x6a20('0x38')](function(_0x2e56e4){_0x4a0eda(_0x2e56e4);});});};exports[_0x6a20('0x56')]=function(_0x2a05c6,_0x2bb51e,_0x2522be){_0x2a05c6[_0x6a20('0x56')]=!![];return _0x2522be();};exports[_0x6a20('0x57')]=function signToken(_0x57f668){return signJwt(_0x57f668);};exports[_0x6a20('0x58')]=function(_0x984852,_0x25a9db){if(!_0x984852['user']){return _0x25a9db['status'](0x194)[_0x6a20('0x35')]({'message':_0x6a20('0x59')});}var _0x2b78e6={'payload':{'id':_0x984852['user']['id'],'role':_0x984852[_0x6a20('0x2d')][_0x6a20('0xb')]},'options':{'expiresIn':0x15180}};return signJwt(_0x2b78e6)[_0x6a20('0x33')](function(_0xe2f3cb){_0x25a9db[_0x6a20('0x5a')]('motion.token',_0xe2f3cb);_0x25a9db[_0x6a20('0x5b')]('/dashboards/general');})[_0x6a20('0x38')](function(_0xb83190){return _0x25a9db[_0x6a20('0x3f')](0x1f4)[_0x6a20('0x5c')](_0xb83190);});};exports[_0x6a20('0x5d')]=function(_0x3299f7){if(_[_0x6a20('0x5e')](_0x3299f7[_0x6a20('0x5f')])||_[_0x6a20('0x5e')](_0x3299f7[_0x6a20('0x60')])){return null;}else{return createJwt(_0x3299f7);}};exports[_0x6a20('0x61')]=function(_0x555a18){_0x555a18[_0x6a20('0x5f')]=generateNonce();_0x555a18['apiKeyIat']=generateIssuedAt();return createJwt(_0x555a18);};exports['regenerateApiKey']=function(_0x3e315,_0x276d49){var _0x21912e=_0x3e315[_0x6a20('0x44')][_0x6a20('0x45')];if(_0x21912e){var _0x2761b2={'nonce':_0x276d49['apiKeyNonce'],'iat':_0x276d49[_0x6a20('0x60')],'audience':hardwareConf[_0x6a20('0x46')](),'issuer':hardwareConf[_0x6a20('0x46')]()};return verifyJwt(_0x21912e,_0x2761b2)[_0x6a20('0x33')](function(){return generateApiKey(_0x276d49);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0x6a20('0x62')]=function(_0x1fe990){var _0x346dab=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x346dab[_0x6a20('0x63')](_0x1fe990))throw new db[(_0x6a20('0x64'))][(_0x6a20('0x65'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');return;};exports['validatePasswordHistory']=function(_0x9f2544,_0x18af59,_0x3a37b1){var _0x42086c=encryptor['decryptString'](_0x18af59)[_0x6a20('0x66')](',');for(var _0x40a67e=0x0;_0x40a67e<_0x3a37b1;_0x40a67e++){if(!_0x42086c[_0x40a67e])break;if(_0x9f2544['toLowerCase']()===_0x42086c[_0x40a67e][_0x6a20('0x67')]()){var _0x49481d=util[_0x6a20('0x68')](_0x6a20('0x69'),_0x3a37b1);if(_0x3a37b1===0x1){_0x49481d=_0x6a20('0x6a');}throw new db[(_0x6a20('0x64'))]['ValidationError'](_0x49481d);}}return;};exports['updatePasswordsHistory']=function(_0x6ad9ef,_0x1e4290){var _0x197567=_0x1e4290?encryptor[_0x6a20('0x6b')](_0x1e4290)['split'](','):[];if(_0x197567[_0x6a20('0x6c')]===0x5){_0x197567['splice'](-0x1,0x1);}_0x197567[_0x6a20('0x6d')](_0x6ad9ef);return encryptor['encryptString'](_0x197567[_0x6a20('0x6e')](','));};function signJwt(_0x3cad03){var _0xbdabe1=BPromise[_0x6a20('0x6f')](jwt[_0x6a20('0x70')],{'context':jwt});var _0x3118db=_0x3cad03[_0x6a20('0x71')]||config[_0x6a20('0x72')][_0x6a20('0xa')];return new BPromise(function(_0x58754c,_0x852800){_0xbdabe1(_0x3cad03[_0x6a20('0x73')],_0x3118db,_0x3cad03[_0x6a20('0x74')])[_0x6a20('0x33')](function(_0x709693){_0x58754c(_0x709693);})[_0x6a20('0x38')](function(_0x1caaa2){_0x852800(_0x1caaa2);});});}function verifyJwt(_0x5bb2c4,_0x3cf03d,_0x98b85d){var _0x51f264=BPromise[_0x6a20('0x6f')](jwt['verify'],{'context':jwt});var _0x11d014=_0x98b85d||config[_0x6a20('0x72')][_0x6a20('0xa')];return new BPromise(function(_0x4db820,_0x3abf15){_0x51f264(_0x5bb2c4,_0x11d014,_0x3cf03d)['then'](function(_0x2edab2){_0x4db820(_0x2edab2);})[_0x6a20('0x38')](function(_0x21ae8e){_0x3abf15(_0x21ae8e);});});}function generateNonce(){return crypto[_0x6a20('0x75')](0x10)[_0x6a20('0x76')]('hex');}function generateIssuedAt(){return Math[_0x6a20('0x77')](Date[_0x6a20('0x78')]()/0x3e8)[_0x6a20('0x76')]();}function createJwt(_0x185655){var _0x45f6d1={'payload':{'iat':_0x185655[_0x6a20('0x60')],'nonce':_0x185655[_0x6a20('0x5f')]},'options':{'algorithm':_0x6a20('0x79'),'subject':_0x185655['id'][_0x6a20('0x76')](),'issuer':hardwareConf[_0x6a20('0x46')](),'audience':hardwareConf[_0x6a20('0x46')]()}};return signJwt(_0x45f6d1)[_0x6a20('0x33')](function(_0xbc3cc3){return{'iat':_0x185655[_0x6a20('0x60')],'nonce':_0x185655[_0x6a20('0x5f')],'token':_0xbc3cc3};});}
\ No newline at end of file
+var _0xf082=['/dashboards/general','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','apikey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','validatePasswordHistory','split','toLowerCase','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','decryptString','length','unshift','encryptString','sign','secret','promisify','verify','toString','hex','floor','now','HS512','../../mysqldb','../../config/license/hardware','../../config/license/util','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','secrets','session','fullname','name','email','userpic','permissions','md5secret','voicePause','chatPause','mailPause','smsPause','openchannelPause','showWebBar','lastLoginAt','lastPauseAt','allowmessenger','passwordResetAt','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarExpires','phoneBarPrefixRequired','hotdesk','interface','privacyEnabled','settingsEnabled','wssPort','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','use','user','ChatInteraction','findOne','params','closed','disposition','status','unmanaged','json','Unmanaged.','Forbidden.','isAuthenticated','headers','authorization','Basic','User','find','then','pass','Wrong\x20credentials.','startsWith','Bearer','Unknown\x20authorization\x20format','query','getUuid','allowedLoginAttempts','blockDuration','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','add','catch','canUpdate','Forbidden','isMiddleware','signToken','setTokenCookie','role','cookie','motion.token','redirect'];(function(_0x4c5013,_0x4198a1){var _0x2d1a74=function(_0x6dd2a){while(--_0x6dd2a){_0x4c5013['push'](_0x4c5013['shift']());}};_0x2d1a74(++_0x4198a1);}(_0xf082,0x106));var _0x2f08=function(_0x21b39c,_0x33edbc){_0x21b39c=_0x21b39c-0x0;var _0x5908e9=_0xf082[_0x21b39c];return _0x5908e9;};'use strict';var db=require(_0x2f08('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require(_0x2f08('0x1'));var licenseUtil=require(_0x2f08('0x2'));var encryptor=require(_0x2f08('0x3'));var _=require(_0x2f08('0x4'));var jwt=require(_0x2f08('0x5'));var expressJwt=require(_0x2f08('0x6'));var compose=require(_0x2f08('0x7'));var basicAuth=require(_0x2f08('0x8'));var crypto=require(_0x2f08('0x9'));var BPromise=require(_0x2f08('0xa'));var util=require(_0x2f08('0xb'));var moment=require('moment');var validateJwt=expressJwt({'secret':config[_0x2f08('0xc')][_0x2f08('0xd')]});var userAttributes=['id','role',_0x2f08('0xe'),_0x2f08('0xf'),'internal',_0x2f08('0x10'),_0x2f08('0x11'),_0x2f08('0x12'),_0x2f08('0x13'),_0x2f08('0x14'),_0x2f08('0x15'),_0x2f08('0x16'),'faxPause',_0x2f08('0x17'),_0x2f08('0x18'),'pauseType',_0x2f08('0x19'),_0x2f08('0x1a'),_0x2f08('0x1b'),'crudPermissions',_0x2f08('0x1c'),_0x2f08('0x1d'),'alias',_0x2f08('0x1e'),_0x2f08('0x1f'),_0x2f08('0x20'),_0x2f08('0x21'),_0x2f08('0x22'),'phoneBarEnableSettings',_0x2f08('0x23'),_0x2f08('0x24'),'phoneBarRemoteControl','phoneBarRemoteControlPort',_0x2f08('0x25'),_0x2f08('0x26'),'userProfileId',_0x2f08('0x27'),_0x2f08('0x28'),_0x2f08('0x29'),'downloadVoiceRecordings',_0x2f08('0x2a'),_0x2f08('0x2b')];exports[_0x2f08('0x2c')]=function(){return this['isAuthenticated'](!![])[_0x2f08('0x2d')](function(_0x263784,_0x1b29ca,_0x492d58){if(_0x263784[_0x2f08('0x2e')]){_0x492d58();}else{return db[_0x2f08('0x2f')][_0x2f08('0x30')]({'where':{'id':_0x263784[_0x2f08('0x31')]['id']},'attributes':['id',_0x2f08('0x32'),_0x2f08('0x33')],'raw':!![]})['then'](function(_0x3b3a54){if(_0x3b3a54&&_0x3b3a54[_0x2f08('0x32')]){return _0x1b29ca[_0x2f08('0x34')](_0x3b3a54['disposition']===_0x2f08('0x35')?0x195:0x193)[_0x2f08('0x36')]({'message':_0x3b3a54[_0x2f08('0x33')]===_0x2f08('0x35')?_0x2f08('0x37'):_0x2f08('0x38')});}else{_0x492d58();}})['catch'](function(_0x170754){_0x492d58(_0x170754);});}});};exports[_0x2f08('0x39')]=function isAuthenticated(_0x414a1b){return compose()[_0x2f08('0x2d')](function(_0x44e5f5,_0x5c323a,_0x2a25ce){var _0x44af12;if(_0x44e5f5[_0x2f08('0x3a')][_0x2f08('0x3b')]){if(_['startsWith'](_0x44e5f5[_0x2f08('0x3a')][_0x2f08('0x3b')],_0x2f08('0x3c'))){var _0x78b8fe=basicAuth(_0x44e5f5);db[_0x2f08('0x3d')][_0x2f08('0x3e')]({'where':{'name':_0x78b8fe[_0x2f08('0xf')]}})[_0x2f08('0x3f')](function(_0x12d34e){if(!_0x12d34e||!_0x12d34e['authenticate'](_0x78b8fe[_0x2f08('0x40')])){return _0x5c323a['status'](0x191)[_0x2f08('0x36')]({'message':_0x2f08('0x41')});}_0x44e5f5[_0x2f08('0x2e')]={'id':_0x12d34e['id']};_0x2a25ce();})['catch'](function(_0x43917a){_0x2a25ce(_0x43917a);});}else if(_[_0x2f08('0x42')](_0x44e5f5[_0x2f08('0x3a')][_0x2f08('0x3b')],_0x2f08('0x43'))){validateJwt(_0x44e5f5,_0x5c323a,_0x2a25ce);}else{if(_0x414a1b){_0x2a25ce();}else{return _0x5c323a[_0x2f08('0x34')](0x193)['json']({'message':_0x2f08('0x44')});}}}else if(_0x44e5f5[_0x2f08('0x45')]['apikey']){try{var _0xf26391={'audience':hardwareConf[_0x2f08('0x46')](),'issuer':hardwareConf[_0x2f08('0x46')]()};verifyJwt(_0x44e5f5['query']['apikey'],_0xf26391)[_0x2f08('0x3f')](function(_0x14971e){return db[_0x2f08('0x3d')]['find']({'where':{'id':_0x14971e['sub']}})['then'](function(_0x3943fc){_0x44af12=_0x3943fc;return db['Setting'][_0x2f08('0x30')]({'where':{'id':0x1},'attributes':[_0x2f08('0x47'),_0x2f08('0x48')],'raw':!![]});})[_0x2f08('0x3f')](function(_0x43a37d){if(!_0x44af12||!_['isEqual'](_0x44af12[_0x2f08('0x49')],_0x14971e[_0x2f08('0x4a')])){return _0x5c323a[_0x2f08('0x34')](0x191)[_0x2f08('0x36')]({'message':_0x2f08('0x4b')});}if(_0x44af12[_0x2f08('0x4c')]){return _0x5c323a[_0x2f08('0x34')](0x191)['json']({'message':_0x2f08('0x4d')});}if(_0x44af12['blocked']){if(_0x43a37d[_0x2f08('0x48')]>0x0){if(moment(_0x44af12['blockedAt'])[_0x2f08('0x4e')](_0x43a37d[_0x2f08('0x48')],'minutes')>moment()){return _0x5c323a['status'](0x191)[_0x2f08('0x36')]({'message':_0x2f08('0x4d')});}}else{return _0x5c323a[_0x2f08('0x34')](0x191)['json']({'message':_0x2f08('0x4d')});}}_0x44e5f5[_0x2f08('0x2e')]={'id':_0x44af12['id']};_0x2a25ce();});})[_0x2f08('0x4f')](function(){return _0x5c323a[_0x2f08('0x34')](0x191)[_0x2f08('0x36')]({'message':_0x2f08('0x4d')});});}catch(_0x4eec64){_0x2a25ce(_0x4eec64);}}else if(_0x414a1b){_0x2a25ce();}else{return _0x5c323a[_0x2f08('0x34')](0x193)[_0x2f08('0x36')]({'message':_0x2f08('0x44')});}})[_0x2f08('0x2d')](function(_0x558139,_0x58d89d,_0x48dca9){if(_0x558139['user']){db[_0x2f08('0x3d')][_0x2f08('0x3e')]({'where':{'id':_0x558139[_0x2f08('0x2e')]['id']},'attributes':userAttributes})[_0x2f08('0x3f')](function(_0x2f0753){if(!_0x2f0753){return _0x58d89d[_0x2f08('0x34')](0x194)[_0x2f08('0x36')]({'message':'User\x20not\x20found.'});}_0x558139[_0x2f08('0x2e')]=_0x2f0753;_0x48dca9();})[_0x2f08('0x4f')](function(_0x75ebc){_0x48dca9(_0x75ebc);});}else if(_0x414a1b){_0x48dca9();}else{return _0x58d89d[_0x2f08('0x34')](0x194)[_0x2f08('0x36')]({'message':'User\x20object\x20not\x20found.'});}});};exports[_0x2f08('0x50')]=function canUpdate(){return compose()['use'](function(_0x20041f,_0x50f080,_0x38a175){return licenseUtil['getLicense']()['then'](function(_0x57271f){if(_0x57271f['update']){_0x38a175();}else{return _0x50f080[_0x2f08('0x34')](0x193)[_0x2f08('0x36')]({'message':_0x2f08('0x51')});}})[_0x2f08('0x4f')](function(_0x37fb1d){_0x38a175(_0x37fb1d);});});};exports[_0x2f08('0x52')]=function(_0x5b32de,_0x32ded6,_0x165873){_0x5b32de[_0x2f08('0x52')]=!![];return _0x165873();};exports[_0x2f08('0x53')]=function signToken(_0x3b7400){return signJwt(_0x3b7400);};exports[_0x2f08('0x54')]=function(_0x445a20,_0x41b582){if(!_0x445a20[_0x2f08('0x2e')]){return _0x41b582[_0x2f08('0x34')](0x194)[_0x2f08('0x36')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x259b59={'payload':{'id':_0x445a20[_0x2f08('0x2e')]['id'],'role':_0x445a20[_0x2f08('0x2e')][_0x2f08('0x55')]},'options':{'expiresIn':0x15180}};return signJwt(_0x259b59)[_0x2f08('0x3f')](function(_0x29ee91){_0x41b582[_0x2f08('0x56')](_0x2f08('0x57'),_0x29ee91);_0x41b582[_0x2f08('0x58')](_0x2f08('0x59'));})['catch'](function(_0x8fcb5d){return _0x41b582[_0x2f08('0x34')](0x1f4)['send'](_0x8fcb5d);});};exports[_0x2f08('0x5a')]=function(_0x447289){if(_[_0x2f08('0x5b')](_0x447289[_0x2f08('0x49')])||_[_0x2f08('0x5b')](_0x447289[_0x2f08('0x5c')])){return null;}else{return createJwt(_0x447289);}};exports[_0x2f08('0x5d')]=function(_0x5b9c4c){_0x5b9c4c[_0x2f08('0x49')]=generateNonce();_0x5b9c4c['apiKeyIat']=generateIssuedAt();return createJwt(_0x5b9c4c);};exports[_0x2f08('0x5e')]=function(_0x137e1e,_0x27f134){var _0x44b447=_0x137e1e[_0x2f08('0x45')][_0x2f08('0x5f')];if(_0x44b447){var _0x5cf08a={'nonce':_0x27f134['apiKeyNonce'],'iat':_0x27f134[_0x2f08('0x5c')],'audience':hardwareConf[_0x2f08('0x46')](),'issuer':hardwareConf[_0x2f08('0x46')]()};return verifyJwt(_0x44b447,_0x5cf08a)[_0x2f08('0x3f')](function(){return generateApiKey(_0x27f134);});}else{throw{'message':_0x2f08('0x60')};}};exports['validatePasswordPattern']=function(_0x564421){var _0x518adf=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x518adf['test'](_0x564421))throw new db[(_0x2f08('0x61'))][(_0x2f08('0x62'))](_0x2f08('0x63'));return;};exports[_0x2f08('0x64')]=function(_0x3c98ad,_0x214c82,_0x502d8e){var _0x12a12d=encryptor['decryptString'](_0x214c82)[_0x2f08('0x65')](',');for(var _0x4c4050=0x0;_0x4c4050<_0x502d8e;_0x4c4050++){if(!_0x12a12d[_0x4c4050])break;if(_0x3c98ad[_0x2f08('0x66')]()===_0x12a12d[_0x4c4050][_0x2f08('0x66')]()){var _0x5e14b2=util['format'](_0x2f08('0x67'),_0x502d8e);if(_0x502d8e===0x1){_0x5e14b2='The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.';}throw new db[(_0x2f08('0x61'))][(_0x2f08('0x62'))](_0x5e14b2);}}return;};exports['updatePasswordsHistory']=function(_0x52406e,_0x96e45c){var _0x45c351=_0x96e45c?encryptor[_0x2f08('0x68')](_0x96e45c)[_0x2f08('0x65')](','):[];if(_0x45c351[_0x2f08('0x69')]===0x5){_0x45c351['splice'](-0x1,0x1);}_0x45c351[_0x2f08('0x6a')](_0x52406e);return encryptor[_0x2f08('0x6b')](_0x45c351['join'](','));};function signJwt(_0x191662){var _0x30866a=BPromise['promisify'](jwt[_0x2f08('0x6c')],{'context':jwt});var _0x487dbd=_0x191662[_0x2f08('0x6d')]||config['secrets'][_0x2f08('0xd')];return new BPromise(function(_0x2f70f8,_0x4216d0){_0x30866a(_0x191662['payload'],_0x487dbd,_0x191662['options'])[_0x2f08('0x3f')](function(_0x5070f5){_0x2f70f8(_0x5070f5);})[_0x2f08('0x4f')](function(_0xb03aa0){_0x4216d0(_0xb03aa0);});});}function verifyJwt(_0x21a397,_0x28e534,_0x33467){var _0xa29c05=BPromise[_0x2f08('0x6e')](jwt[_0x2f08('0x6f')],{'context':jwt});var _0x24878a=_0x33467||config['secrets'][_0x2f08('0xd')];return new BPromise(function(_0x219f8b,_0x3d9870){_0xa29c05(_0x21a397,_0x24878a,_0x28e534)[_0x2f08('0x3f')](function(_0x5a3a6a){_0x219f8b(_0x5a3a6a);})['catch'](function(_0x532cc0){_0x3d9870(_0x532cc0);});});}function generateNonce(){return crypto['randomBytes'](0x10)[_0x2f08('0x70')](_0x2f08('0x71'));}function generateIssuedAt(){return Math[_0x2f08('0x72')](Date[_0x2f08('0x73')]()/0x3e8)['toString']();}function createJwt(_0x1a5ec7){var _0x50cb75={'payload':{'iat':_0x1a5ec7[_0x2f08('0x5c')],'nonce':_0x1a5ec7[_0x2f08('0x49')]},'options':{'algorithm':_0x2f08('0x74'),'subject':_0x1a5ec7['id'][_0x2f08('0x70')](),'issuer':hardwareConf[_0x2f08('0x46')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x50cb75)[_0x2f08('0x3f')](function(_0x2b79c8){return{'iat':_0x1a5ec7[_0x2f08('0x5c')],'nonce':_0x1a5ec7[_0x2f08('0x49')],'token':_0x2b79c8};});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef88=['encryptString','createCipher','utf8','base64','decryptString','secret','createDecipher','bluebird','lodash','../../config/environment','../../config/logger','app','session','aes192','encrypt','algorithm','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','test','filter','indexOf','hasOwnProperty','encryptFile','createReadStream','data','update','binary','end','final','write','decryptFile','createWriteStream','close'];(function(_0x3e2ae7,_0x338ad3){var _0x26c1db=function(_0x3a836f){while(--_0x3a836f){_0x3e2ae7['push'](_0x3e2ae7['shift']());}};_0x26c1db(++_0x338ad3);}(_0xef88,0xe7));var _0x8ef8=function(_0x153663,_0x3ef313){_0x153663=_0x153663-0x0;var _0xfcdd26=_0xef88[_0x153663];return _0xfcdd26;};'use strict';var crypto=require('crypto');var fs=require('fs');var BPromise=require(_0x8ef8('0x0'));var _=require(_0x8ef8('0x1'));var config=require(_0x8ef8('0x2'));var logger=require(_0x8ef8('0x3'))(_0x8ef8('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config['secrets'][_0x8ef8('0x5')],'algorithm':'aes-256-ctr'};const fileOptions={'algorithm':_0x8ef8('0x6')};if(config[_0x8ef8('0x7')]&&config[_0x8ef8('0x7')][_0x8ef8('0x8')]){var isSupported=isAlgorithmSupported(config[_0x8ef8('0x7')][_0x8ef8('0x8')]);if(isSupported){fileOptions['algorithm']=config['encrypt']['algorithm'];}else{var supportedAlgorithms=getSupportedCiphers()['join'](',\x20');logger['error'](config[_0x8ef8('0x7')][_0x8ef8('0x8')],_0x8ef8('0x9'),supportedAlgorithms);}}function isASupportedCipher(_0x4cc865){return AES_SUPPORTED_RX[_0x8ef8('0xa')](_0x4cc865);}function getSupportedCiphers(){return crypto['getCiphers']()[_0x8ef8('0xb')](isASupportedCipher);}function isAlgorithmSupported(_0x183752){return getSupportedCiphers()[_0x8ef8('0xc')](_0x183752)>-0x1;}function combineOptions(_0x2efea0){var _0x365aea={};for(var _0x2c51d5 in fileOptions){if(fileOptions[_0x8ef8('0xd')](_0x2c51d5)){_0x365aea[_0x2c51d5]=fileOptions[_0x2c51d5];}}if(_0x2efea0){for(var _0x1b5e52 in _0x2efea0){if(_0x2efea0['hasOwnProperty'](_0x1b5e52)){_0x365aea[_0x1b5e52]=_0x2efea0[_0x1b5e52];}}}return _0x365aea;}exports[_0x8ef8('0xe')]=function(_0x160a11,_0x2cd79b,_0x2e2be6,_0x208318){return new BPromise(function(_0x202ea2,_0x1ac6db){_0x208318=combineOptions(_0x208318);var _0x5123b3=new Buffer(_0x2e2be6);var _0x401d9a=fs[_0x8ef8('0xf')](_0x160a11);var _0x2037ce=fs['createWriteStream'](_0x2cd79b);var _0x5501cd=crypto['createCipher'](_0x208318[_0x8ef8('0x8')],_0x5123b3);_0x401d9a['on'](_0x8ef8('0x10'),function(_0x2550c4){var _0x18fa8b=new Buffer(_0x5501cd[_0x8ef8('0x11')](_0x2550c4),_0x8ef8('0x12'));_0x2037ce['write'](_0x18fa8b);});_0x401d9a['on'](_0x8ef8('0x13'),function(){try{var _0x141a36=new Buffer(_0x5501cd[_0x8ef8('0x14')]('binary'),_0x8ef8('0x12'));_0x2037ce[_0x8ef8('0x15')](_0x141a36);_0x2037ce[_0x8ef8('0x13')]();_0x2037ce['on']('close',function(){return _0x202ea2(_0x2cd79b);});}catch(_0x130671){fs['unlink'](_0x2cd79b);return _0x1ac6db(_0x130671);}});});};exports[_0x8ef8('0x16')]=function(_0x3d963d,_0x341660,_0x428283,_0x264c9c){return new BPromise(function(_0x1ee821,_0x1387f8){_0x264c9c=combineOptions(_0x264c9c);var _0x440a79=new Buffer(_0x428283);var _0x3607bb=fs[_0x8ef8('0xf')](_0x3d963d);var _0x5e4c22=fs[_0x8ef8('0x17')](_0x341660);var _0x1d5c92=crypto['createDecipher'](_0x264c9c[_0x8ef8('0x8')],_0x440a79);_0x3607bb['on'](_0x8ef8('0x10'),function(_0x268598){var _0x381b5b=new Buffer(_0x1d5c92[_0x8ef8('0x11')](_0x268598),_0x8ef8('0x12'));_0x5e4c22[_0x8ef8('0x15')](_0x381b5b);});_0x3607bb['on'](_0x8ef8('0x13'),function(){try{var _0x174a6f=new Buffer(_0x1d5c92['final'](_0x8ef8('0x12')),'binary');_0x5e4c22[_0x8ef8('0x15')](_0x174a6f);_0x5e4c22[_0x8ef8('0x13')]();_0x5e4c22['on'](_0x8ef8('0x18'),function(){return _0x1ee821(_0x341660);});}catch(_0x51b8f7){fs['unlink'](_0x341660);return _0x1387f8(_0x51b8f7);}});});};exports[_0x8ef8('0x19')]=function(_0x8df66d,_0xcaa7a9,_0x4c36c5){var _0x3370d5=_0x4c36c5||stringOptions[_0x8ef8('0x8')];var _0x24ec91=_0xcaa7a9||stringOptions['secret'];var _0x495a10=crypto[_0x8ef8('0x1a')](_0x3370d5,_0x24ec91);var _0x1420c2=_0x495a10[_0x8ef8('0x11')](_0x8df66d,_0x8ef8('0x1b'),_0x8ef8('0x1c'));_0x1420c2+=_0x495a10[_0x8ef8('0x14')](_0x8ef8('0x1c'));return _0x1420c2;};exports[_0x8ef8('0x1d')]=function(_0x1f9c95,_0x5f289a,_0x19ac77){var _0x51fd29=_0x19ac77||stringOptions[_0x8ef8('0x8')];var _0xbde1b5=_0x5f289a||stringOptions[_0x8ef8('0x1e')];var _0x42fb6c=crypto[_0x8ef8('0x1f')](_0x51fd29,_0xbde1b5);var _0x21bcb4=_0x42fb6c[_0x8ef8('0x11')](_0x1f9c95,_0x8ef8('0x1c'),_0x8ef8('0x1b'));_0x21bcb4+=_0x42fb6c['final'](_0x8ef8('0x1b'));return _0x21bcb4;};
\ No newline at end of file
+var _0x18d0=['data','binary','write','end','final','close','unlink','createDecipher','update','encryptString','secret','createCipher','utf8','base64','decryptString','crypto','bluebird','lodash','../../config/environment','secrets','session','aes-256-ctr','algorithm','encrypt','join','error','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','indexOf','hasOwnProperty','encryptFile','createReadStream','createWriteStream'];(function(_0x1a89ca,_0x27394b){var _0x29cbb2=function(_0x31e1f4){while(--_0x31e1f4){_0x1a89ca['push'](_0x1a89ca['shift']());}};_0x29cbb2(++_0x27394b);}(_0x18d0,0x6f));var _0x018d=function(_0x5d2803,_0xf375bd){_0x5d2803=_0x5d2803-0x0;var _0xdcad2c=_0x18d0[_0x5d2803];return _0xdcad2c;};'use strict';var crypto=require(_0x018d('0x0'));var fs=require('fs');var BPromise=require(_0x018d('0x1'));var _=require(_0x018d('0x2'));var config=require(_0x018d('0x3'));var logger=require('../../config/logger')('app');const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0x018d('0x4')][_0x018d('0x5')],'algorithm':_0x018d('0x6')};const fileOptions={'algorithm':'aes192'};if(config['encrypt']&&config['encrypt'][_0x018d('0x7')]){var isSupported=isAlgorithmSupported(config[_0x018d('0x8')][_0x018d('0x7')]);if(isSupported){fileOptions[_0x018d('0x7')]=config[_0x018d('0x8')][_0x018d('0x7')];}else{var supportedAlgorithms=getSupportedCiphers()[_0x018d('0x9')](',\x20');logger[_0x018d('0xa')](config[_0x018d('0x8')]['algorithm'],_0x018d('0xb'),supportedAlgorithms);}}function isASupportedCipher(_0x9a778d){return AES_SUPPORTED_RX['test'](_0x9a778d);}function getSupportedCiphers(){return crypto['getCiphers']()['filter'](isASupportedCipher);}function isAlgorithmSupported(_0x4c2e6b){return getSupportedCiphers()[_0x018d('0xc')](_0x4c2e6b)>-0x1;}function combineOptions(_0xefcdc){var _0x5c0040={};for(var _0x2fd9f7 in fileOptions){if(fileOptions[_0x018d('0xd')](_0x2fd9f7)){_0x5c0040[_0x2fd9f7]=fileOptions[_0x2fd9f7];}}if(_0xefcdc){for(var _0x21b53e in _0xefcdc){if(_0xefcdc[_0x018d('0xd')](_0x21b53e)){_0x5c0040[_0x21b53e]=_0xefcdc[_0x21b53e];}}}return _0x5c0040;}exports[_0x018d('0xe')]=function(_0x309b77,_0x30af0f,_0xc998a1,_0x44e4bd){return new BPromise(function(_0x169bb8,_0x1dcad9){_0x44e4bd=combineOptions(_0x44e4bd);var _0x5717dc=new Buffer(_0xc998a1);var _0x548682=fs[_0x018d('0xf')](_0x309b77);var _0x4bf73b=fs[_0x018d('0x10')](_0x30af0f);var _0x45f2d4=crypto['createCipher'](_0x44e4bd[_0x018d('0x7')],_0x5717dc);_0x548682['on'](_0x018d('0x11'),function(_0xb76404){var _0x4a2bc5=new Buffer(_0x45f2d4['update'](_0xb76404),_0x018d('0x12'));_0x4bf73b[_0x018d('0x13')](_0x4a2bc5);});_0x548682['on'](_0x018d('0x14'),function(){try{var _0x3f589e=new Buffer(_0x45f2d4[_0x018d('0x15')]('binary'),_0x018d('0x12'));_0x4bf73b['write'](_0x3f589e);_0x4bf73b[_0x018d('0x14')]();_0x4bf73b['on'](_0x018d('0x16'),function(){return _0x169bb8(_0x30af0f);});}catch(_0x42f01b){fs[_0x018d('0x17')](_0x30af0f);return _0x1dcad9(_0x42f01b);}});});};exports['decryptFile']=function(_0x45de23,_0x4e300f,_0x11a256,_0x15aa96){return new BPromise(function(_0x22df04,_0x3608df){_0x15aa96=combineOptions(_0x15aa96);var _0x314922=new Buffer(_0x11a256);var _0x24bed2=fs[_0x018d('0xf')](_0x45de23);var _0x37ae7a=fs[_0x018d('0x10')](_0x4e300f);var _0x10ca6f=crypto[_0x018d('0x18')](_0x15aa96[_0x018d('0x7')],_0x314922);_0x24bed2['on']('data',function(_0x1b490e){var _0x22230e=new Buffer(_0x10ca6f[_0x018d('0x19')](_0x1b490e),_0x018d('0x12'));_0x37ae7a[_0x018d('0x13')](_0x22230e);});_0x24bed2['on']('end',function(){try{var _0x5c1fd4=new Buffer(_0x10ca6f[_0x018d('0x15')](_0x018d('0x12')),'binary');_0x37ae7a[_0x018d('0x13')](_0x5c1fd4);_0x37ae7a[_0x018d('0x14')]();_0x37ae7a['on'](_0x018d('0x16'),function(){return _0x22df04(_0x4e300f);});}catch(_0x396b2f){fs[_0x018d('0x17')](_0x4e300f);return _0x3608df(_0x396b2f);}});});};exports[_0x018d('0x1a')]=function(_0x41e404,_0x20054e,_0x5960f6){var _0x2e511c=_0x5960f6||stringOptions[_0x018d('0x7')];var _0x25ae39=_0x20054e||stringOptions[_0x018d('0x1b')];var _0x2d0272=crypto[_0x018d('0x1c')](_0x2e511c,_0x25ae39);var _0x12c6ad=_0x2d0272[_0x018d('0x19')](_0x41e404,_0x018d('0x1d'),_0x018d('0x1e'));_0x12c6ad+=_0x2d0272[_0x018d('0x15')]('base64');return _0x12c6ad;};exports[_0x018d('0x1f')]=function(_0x244d60,_0x3c104f,_0x1e55ad){var _0x6681b0=_0x1e55ad||stringOptions[_0x018d('0x7')];var _0x434102=_0x3c104f||stringOptions[_0x018d('0x1b')];var _0x3ede4e=crypto['createDecipher'](_0x6681b0,_0x434102);var _0x5dec93=_0x3ede4e[_0x018d('0x19')](_0x244d60,_0x018d('0x1e'),_0x018d('0x1d'));_0x5dec93+=_0x3ede4e[_0x018d('0x15')]('utf8');return _0x5dec93;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb94=['rimraf','../../mysqldb','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','find','split','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.csv','length','existsSync','join','each','then','%s%d.%s','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','finally','util','path','lodash','to-csv','bluebird'];(function(_0x365d14,_0x235cfd){var _0x35cadb=function(_0xa95f8c){while(--_0xa95f8c){_0x365d14['push'](_0x365d14['shift']());}};_0x35cadb(++_0x235cfd);}(_0xdb94,0xab));var _0x4db9=function(_0x33c1a7,_0x59d695){_0x33c1a7=_0x33c1a7-0x0;var _0x3a26e6=_0xdb94[_0x33c1a7];return _0x3a26e6;};'use strict';var util=require(_0x4db9('0x0'));var path=require(_0x4db9('0x1'));var _=require(_0x4db9('0x2'));var csv=require(_0x4db9('0x3'));var fs=require('fs');var BPromise=require(_0x4db9('0x4'));var zipdir=require('zip-dir');var rimraf=require(_0x4db9('0x5'));var db=require(_0x4db9('0x6'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x4db9('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x4db9('0x8')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x196ede,_0x50c27a){var _0x14deb9={'status':_0x196ede};var _0x26248b={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x50c27a){_0x14deb9[_0x4db9('0x9')]=_0x50c27a;}return db[_0x4db9('0xa')][_0x4db9('0xb')](_0x14deb9,_0x26248b);}function main(){var _0x242116=0x1388;var _0x45c0e4;logger[_0x4db9('0xc')](util[_0x4db9('0xd')](_0x4db9('0xe'),EXTRACTED_REPORT_ID,_0x4db9('0xf')));return db['Setting'][_0x4db9('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4db9('0x11'),'splitSizeCsv']})['then'](function(_0x31222b){if(_0x31222b){_0x45c0e4=_0x31222b;_0x242116=_0x45c0e4['splitSizeCsv']||0x1388;}})['then'](function(){return dbH[_0x4db9('0x12')][_0x4db9('0x13')](util['format'](_0x4db9('0x14'),QUERY),{'type':dbH[_0x4db9('0x12')][_0x4db9('0x15')][_0x4db9('0x16')]});})['then'](function(_0x5e04ab){if(!_0x5e04ab[0x0][_0x4db9('0x17')]){return analyticExtractedReport(_0x4db9('0x18'));}var _0x4a037f=[];var _0xadc104=0x0;var _0x4976=!![];if(_0x5e04ab&&_0x5e04ab['length']){var _0x5a85c4=_0x5e04ab[0x0][_0x4db9('0x17')]%(_0xadc104+_0x242116);if(_0x45c0e4[_0x4db9('0x11')]){for(;_0x4976;_0xadc104+=_0x242116,_0x5a85c4=_0x5e04ab[0x0][_0x4db9('0x17')]%(_0xadc104+_0x242116)){if(_0x5a85c4==0x0||_0x5a85c4==_0x5e04ab[0x0][_0x4db9('0x17')]){_0x4976=![];}_0x4a037f[_0x4db9('0x19')](dbH['sequelize'][_0x4db9('0x13')](util[_0x4db9('0xd')](_0x4db9('0x1a'),QUERY,_0x242116,_0xadc104),{'type':dbH['sequelize'][_0x4db9('0x15')][_0x4db9('0x16')]}));}}else{_0x4a037f[_0x4db9('0x19')](dbH['sequelize'][_0x4db9('0x13')](QUERY,{'type':dbH[_0x4db9('0x12')][_0x4db9('0x15')][_0x4db9('0x16')]}));}}var _0xf4f3fe=path[_0x4db9('0x1b')](PATH);var _0x3585d5=path['basename'](PATH,_0x4db9('0x1c'));var _0x3252d0=_0x45c0e4[_0x4db9('0x11')]&&_0x4a037f[_0x4db9('0x1d')]>0x1;var _0x4aaa84=[];if(!fs[_0x4db9('0x1e')](path[_0x4db9('0x1f')](_0xf4f3fe,_0x3585d5))&&_0x3252d0){fs['mkdirSync'](path[_0x4db9('0x1f')](_0xf4f3fe,_0x3585d5));}return BPromise[_0x4db9('0x20')](_0x4a037f,function(_0x2987c6){_0x4aaa84['push'](_0x2987c6);})[_0x4db9('0x21')](function(){for(var _0xd250c5=0x0;_0xd250c5<_0x4aaa84[_0x4db9('0x1d')];_0xd250c5+=0x1){var _0x2d330e;var _0x3f9f7e=_0x4aaa84[_0xd250c5];if(_0x3252d0){_0x2d330e=path[_0x4db9('0x1f')](_0xf4f3fe,_0x3585d5,util[_0x4db9('0xd')](_0x4db9('0x22'),_0x3585d5,_0xd250c5,_0x4db9('0x23')));}else{_0x2d330e=path[_0x4db9('0x1f')](_0xf4f3fe,util[_0x4db9('0xd')](_0x4db9('0x24'),_0x3585d5,_0x4db9('0x23')));}fs[_0x4db9('0x25')](_0x2d330e,csv(_0x3f9f7e));}})['then'](function(){if(_0x3252d0){zipdir(path['join'](_0xf4f3fe,_0x3585d5),{'saveTo':path[_0x4db9('0x1f')](_0xf4f3fe,util[_0x4db9('0xd')](_0x4db9('0x24'),_0x3585d5,_0x4db9('0x26')))},function(_0x2af884,_0x459131){});rimraf(path['join'](_0xf4f3fe,_0x3585d5),function(){});}})[_0x4db9('0x21')](function(){logger['info'](util[_0x4db9('0xd')](_0x4db9('0x27'),EXTRACTED_REPORT_ID,_0x4db9('0xf')));return analyticExtractedReport(_0x4db9('0x28'),_0x3252d0?util[_0x4db9('0xd')]('%s.%s',_0x3585d5,_0x3252d0?'zip':_0x4db9('0x23')):null);});})['catch'](function(_0x337d74){logger[_0x4db9('0xc')](util['format'](_0x4db9('0x29'),EXTRACTED_REPORT_ID,_0x4db9('0xf')),util[_0x4db9('0x2a')](_0x337d74,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x4db9('0x2b')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
+var _0xbbec=['finally','exit','util','lodash','to-csv','bluebird','zip-dir','../../mysqldb','dbH','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','sequelize','query','SELECT','then','num','Empty','isInteger','push','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','dirname','basename','length','existsSync','join','mkdirSync','each','csv','writeFileSync','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','%s.%s','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed'];(function(_0x3d4698,_0x2c9d8c){var _0x58c0f9=function(_0x5a32b7){while(--_0x5a32b7){_0x3d4698['push'](_0x3d4698['shift']());}};_0x58c0f9(++_0x2c9d8c);}(_0xbbec,0x1ec));var _0xcbbe=function(_0x1817a8,_0x23a441){_0x1817a8=_0x1817a8-0x0;var _0x2b66bc=_0xbbec[_0x1817a8];return _0x2b66bc;};'use strict';var util=require(_0xcbbe('0x0'));var path=require('path');var _=require(_0xcbbe('0x1'));var csv=require(_0xcbbe('0x2'));var fs=require('fs');var BPromise=require(_0xcbbe('0x3'));var zipdir=require(_0xcbbe('0x4'));var rimraf=require('rimraf');var db=require(_0xcbbe('0x5'))['db'];var dbH=require(_0xcbbe('0x5'))[_0xcbbe('0x6')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xcbbe('0x7')][0x2]);var QUERY=process[_0xcbbe('0x7')][0x3];var PATH=process[_0xcbbe('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x472f17,_0x3e2fb8){var _0x1e6c9b={'status':_0x472f17};var _0x2143d9={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3e2fb8){_0x1e6c9b[_0xcbbe('0x8')]=_0x3e2fb8;}return db[_0xcbbe('0x9')][_0xcbbe('0xa')](_0x1e6c9b,_0x2143d9);}function main(){var _0x2779ae=0x1388;var _0xc9fc9;logger[_0xcbbe('0xb')](util[_0xcbbe('0xc')](_0xcbbe('0xd'),EXTRACTED_REPORT_ID,_0xcbbe('0xe')));return db[_0xcbbe('0xf')][_0xcbbe('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xcbbe('0x11'),_0xcbbe('0x12')]})['then'](function(_0x151157){if(_0x151157){_0xc9fc9=_0x151157;_0x2779ae=_0xc9fc9[_0xcbbe('0x12')]||0x1388;}})['then'](function(){return dbH[_0xcbbe('0x13')][_0xcbbe('0x14')](util[_0xcbbe('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xcbbe('0x13')]['QueryTypes'][_0xcbbe('0x15')]});})[_0xcbbe('0x16')](function(_0x1e4228){if(!_0x1e4228[0x0][_0xcbbe('0x17')]){return analyticExtractedReport(_0xcbbe('0x18'));}var _0x580b44=[];var _0x2d84f9=0x0;if(_0xc9fc9['split']){if(_0x1e4228&&_0x1e4228['length']){var _0x1fc904=_['range'](_0x1e4228[0x0]['num']/_0x2779ae);var _0xc1ce9e=Number[_0xcbbe('0x19')](_0x1e4228[0x0][_0xcbbe('0x17')]/_0x2779ae)?_0x1e4228[0x0]['num']%_0x2779ae:0x0;_0x1fc904['forEach'](function(_0x21a3e6){if(_0x21a3e6>0x0){_0x2d84f9+=_0x2779ae;}_0x580b44[_0xcbbe('0x1a')](dbH[_0xcbbe('0x13')][_0xcbbe('0x14')](util[_0xcbbe('0xc')](_0xcbbe('0x1b'),QUERY,_0x2779ae,_0x2d84f9),{'type':dbH[_0xcbbe('0x13')][_0xcbbe('0x1c')]['SELECT']}));});if(_0xc1ce9e>0x0){_0x2d84f9+=_0x2779ae;_0x580b44[_0xcbbe('0x1a')](dbH[_0xcbbe('0x13')][_0xcbbe('0x14')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0xc1ce9e,_0x2d84f9),{'type':dbH['sequelize'][_0xcbbe('0x1c')][_0xcbbe('0x15')]}));}}}else{_0x580b44[_0xcbbe('0x1a')](dbH[_0xcbbe('0x13')]['query'](QUERY,{'type':dbH[_0xcbbe('0x13')][_0xcbbe('0x1c')][_0xcbbe('0x15')]}));}var _0x542447=path[_0xcbbe('0x1d')](PATH);var _0x1905ea=path[_0xcbbe('0x1e')](PATH,'.csv');var _0x7369c=_0xc9fc9['split']&&_0x580b44[_0xcbbe('0x1f')]>0x1;var _0x74b43=[];if(!fs[_0xcbbe('0x20')](path[_0xcbbe('0x21')](_0x542447,_0x1905ea))&&_0x7369c){fs[_0xcbbe('0x22')](path[_0xcbbe('0x21')](_0x542447,_0x1905ea));}return BPromise[_0xcbbe('0x23')](_0x580b44,function(_0x4e5c0f){_0x74b43[_0xcbbe('0x1a')](_0x4e5c0f);})[_0xcbbe('0x16')](function(){for(var _0x2a63f1=0x0;_0x2a63f1<_0x74b43[_0xcbbe('0x1f')];_0x2a63f1+=0x1){var _0xc7ac11;var _0x492eea=_0x74b43[_0x2a63f1];if(_0x7369c){_0xc7ac11=path[_0xcbbe('0x21')](_0x542447,_0x1905ea,util[_0xcbbe('0xc')]('%s%d.%s',_0x1905ea,_0x2a63f1,_0xcbbe('0x24')));}else{_0xc7ac11=path[_0xcbbe('0x21')](_0x542447,util[_0xcbbe('0xc')]('%s.%s',_0x1905ea,_0xcbbe('0x24')));}fs[_0xcbbe('0x25')](_0xc7ac11,csv(_0x492eea));}})[_0xcbbe('0x16')](function(){if(_0x7369c){return new Promise(function(_0x35c68e){zipdir(path[_0xcbbe('0x21')](_0x542447,_0x1905ea),{'saveTo':path[_0xcbbe('0x21')](_0x542447,util[_0xcbbe('0xc')]('%s.%s',_0x1905ea,_0xcbbe('0x26')))},function(_0x4ccd56,_0x14b6d2){rimraf(path[_0xcbbe('0x21')](_0x542447,_0x1905ea),function(){});_0x35c68e(_0xcbbe('0x27'));});});}})[_0xcbbe('0x16')](function(){logger[_0xcbbe('0xb')](util[_0xcbbe('0xc')](_0xcbbe('0x28'),EXTRACTED_REPORT_ID,_0xcbbe('0xe')));return analyticExtractedReport(_0xcbbe('0x29'),_0x7369c?util['format'](_0xcbbe('0x2a'),_0x1905ea,_0x7369c?'zip':'csv'):null);});})[_0xcbbe('0x2b')](function(_0x14fb08){logger[_0xcbbe('0xb')](util[_0xcbbe('0xc')](_0xcbbe('0x2c'),EXTRACTED_REPORT_ID,_0xcbbe('0xe')),util[_0xcbbe('0x2d')](_0x14fb08,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xcbbe('0x2e'));})[_0xcbbe('0x2f')](function(){process[_0xcbbe('0x30')](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57a9=['finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','channel','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','createPdfFromHTML','createPdfKitDocument','util','path','moment','html-to-pdfmake','zip-dir','rimraf','jsdom','JSDOM','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','tableHeader','map','pick','toString','value','fill','body','push','concat','chunk','keys','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','length','header','pageBreak','before','landscape','\x20/\x20','footer','Arial','black','right','num','Empty','dirname','join','%s.%s','Setting','find','then','splitSizePdf','split','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','existsSync','mkdirSync','all','flatten','%s%d.%s','pdf','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','PDF','findOne','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x57a9,0x1d4));var _0x957a=function(_0x2d3ff1,_0x11b580){_0x2d3ff1=_0x2d3ff1-0x0;var _0x5c0b25=_0x57a9[_0x2d3ff1];return _0x5c0b25;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0x957a('0x0'));var path=require(_0x957a('0x1'));var moment=require(_0x957a('0x2'));var htmlToPdfmake=require(_0x957a('0x3'));var PdfPrinter=require('pdfmake/src/printer');var zipdir=require(_0x957a('0x4'));var rimraf=require(_0x957a('0x5'));var JSDOM=require(_0x957a('0x6'))[_0x957a('0x7')];var window=new JSDOM('')['window'];var db=require(_0x957a('0x8'))['db'];var dbH=require(_0x957a('0x8'))[_0x957a('0x9')];var logger=require(_0x957a('0xa'))(_0x957a('0xb'));var EXTRACTED_REPORT_ID=Number(process[_0x957a('0xc')][0x2]);var QUERY=process[_0x957a('0xc')][0x3];var PATH=process[_0x957a('0xc')][0x4];var NAME=process[_0x957a('0xc')][0x5];var FORMAT=_0x957a('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0xe9841f,_0x26bc62){var _0x43cc54={'status':_0xe9841f};var _0x4a0597={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x26bc62){_0x43cc54[_0x957a('0xe')]=_0x26bc62;}return db[_0x957a('0xf')][_0x957a('0x10')](_0x43cc54,_0x4a0597);}function getHeaders(_0x3311d0){return _['map'](_0x3311d0,function(_0x5ab045){return{'text':_0x5ab045,'style':_0x957a('0x11')};});}function getRows(_0x17903a,_0x261c1b){return _[_0x957a('0x12')](_0x261c1b,function(_0x52a050){return _(_0x52a050)[_0x957a('0x13')](_0x17903a)[_0x957a('0x12')](function(_0x3526af){return _0x3526af?_[_0x957a('0x14')](_0x3526af):'';})[_0x957a('0x15')]();});}function createTable(_0x10d5ca,_0x5064cc){var _0x304732={'widths':_[_0x957a('0x16')](Array(_0x10d5ca['length']),0x91),'heights':function(_0x2aeef6){return _0x2aeef6===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x463487=getHeaders(_0x10d5ca);_0x304732[_0x957a('0x17')][_0x957a('0x18')](_0x463487);var _0x4cf770=getRows(_0x10d5ca,_0x5064cc);_0x304732[_0x957a('0x17')]=_0x304732[_0x957a('0x17')][_0x957a('0x19')](_0x4cf770);return _0x304732;}function createTables(_0x201fc1){var _0x2ee8e2=[];var _0x431b99=_[_0x957a('0x1a')](Object[_0x957a('0x1b')](_0x201fc1[0x0]),0x5);_0x431b99['forEach'](function(_0x470101){_0x2ee8e2[_0x957a('0x18')](createTable(_0x470101,_0x201fc1));});return _0x2ee8e2;}function getPDFDocDefinition(_0x476312){var _0x374fed=util[_0x957a('0x1c')](_0x957a('0x1d'),NAME,EXTRACTED_REPORT[_0x957a('0x1e')],moment(EXTRACTED_REPORT[_0x957a('0x1f')])[_0x957a('0x1c')](FORMAT),moment(EXTRACTED_REPORT['endDate'])['format'](FORMAT));var _0x3a48f3=[];for(var _0x320aa8=0x0;_0x320aa8<_0x476312[_0x957a('0x20')];_0x320aa8++){var _0x5e2960=[];if(_0x320aa8===0x0){_0x5e2960[_0x957a('0x18')]({'text':_0x374fed,'style':_0x957a('0x21')});}var _0x9beb16={'table':_0x476312[_0x320aa8]};if(_0x320aa8>0x0){_0x9beb16[_0x957a('0x22')]=_0x957a('0x23');_0x9beb16['margin']=[0x0,0x46,0x0,0x0];}_0x5e2960[_0x957a('0x18')](_0x9beb16);_0x3a48f3['push'](_0x5e2960);}return{'pageSize':'A4','pageOrientation':_0x957a('0x24'),'content':_0x3a48f3,'footer':function(_0x58d7a2,_0x4e5005){return{'text':_0x58d7a2[_0x957a('0x14')]()+_0x957a('0x25')+_0x4e5005,'style':_0x957a('0x26')};},'defaultStyle':{'font':_0x957a('0x27')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x957a('0x28')},'footer':{'alignment':_0x957a('0x29'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x38c95b){var _0x9b88fd=0x1388;var _0x43328a;if(!_0x38c95b[0x0][_0x957a('0x2a')]){return analyticExtractedReport(_0x957a('0x2b'));}var _0x1d1e4f=[];var _0x33c5f4=0x0;var _0x230279=!![];var _0x577f13=path[_0x957a('0x2c')](PATH);var _0x5530c5=path['basename'](PATH,'.pdf');var _0x2de673=path[_0x957a('0x2d')](_0x577f13,util[_0x957a('0x1c')](_0x957a('0x2e'),_0x5530c5,'pdf'));var _0xe50f30=![];return db[_0x957a('0x2f')][_0x957a('0x30')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizePdf']})[_0x957a('0x31')](function(_0x532e8b){if(_0x532e8b){_0x43328a=_0x532e8b;_0x9b88fd=_0x43328a[_0x957a('0x32')]||0x3e8;}})[_0x957a('0x31')](function(){if(_0x38c95b&&_0x38c95b[_0x957a('0x20')]){var _0x454cb5=_0x38c95b[0x0][_0x957a('0x2a')]%(_0x33c5f4+_0x9b88fd);if(_0x43328a[_0x957a('0x33')]){for(;_0x230279;_0x33c5f4+=_0x9b88fd,_0x454cb5=_0x38c95b[0x0]['num']%(_0x33c5f4+_0x9b88fd)){if(_0x454cb5==0x0||_0x454cb5==_0x38c95b[0x0][_0x957a('0x2a')]){_0x230279=![];}_0x1d1e4f[_0x957a('0x18')](dbH[_0x957a('0x34')][_0x957a('0x35')](util[_0x957a('0x1c')](_0x957a('0x36'),QUERY,_0x9b88fd,_0x33c5f4),{'type':dbH[_0x957a('0x34')][_0x957a('0x37')]['SELECT']}));}}else{_0x1d1e4f[_0x957a('0x18')](dbH['sequelize'][_0x957a('0x35')](QUERY,{'type':dbH[_0x957a('0x34')][_0x957a('0x37')][_0x957a('0x38')]}));}}_0xe50f30=_0x43328a[_0x957a('0x33')]&&_0x1d1e4f[_0x957a('0x20')]>0x1;if(!fs[_0x957a('0x39')](path[_0x957a('0x2d')](_0x577f13,_0x5530c5))&&_0xe50f30){fs[_0x957a('0x3a')](path[_0x957a('0x2d')](_0x577f13,_0x5530c5));}return Promise[_0x957a('0x3b')](_0x1d1e4f);})['then'](function(_0x154e08){return createTables(_[_0x957a('0x3c')](_0x154e08));})[_0x957a('0x31')](function(_0x6a8cd2){var _0x19cb07=getPDFDocDefinition(_0x6a8cd2);var _0x5990a1=getPDFPrinter();var _0x425924=_0x5990a1['createPdfKitDocument'](_0x19cb07);if(_0xe50f30)_0x2de673=path[_0x957a('0x2d')](_0x577f13,_0x5530c5,util[_0x957a('0x1c')](_0x957a('0x3d'),_0x5530c5,index,_0x957a('0x3e')));return writePDFDocument(_0x425924,_0x2de673);})[_0x957a('0x31')](function(){if(!_0xe50f30)return;zipdir(path['join'](_0x577f13,_0x5530c5),{'saveTo':path[_0x957a('0x2d')](_0x577f13,util[_0x957a('0x1c')]('%s.%s',_0x5530c5,_0x957a('0x3f')))},function(_0x2f3cba){if(_0x2f3cba)throw _0x2f3cba;return;});})['then'](function(){if(!_0xe50f30)return;rimraf(path[_0x957a('0x2d')](_0x577f13,_0x5530c5),function(){});})[_0x957a('0x31')](function(){logger[_0x957a('0x40')](util[_0x957a('0x1c')](_0x957a('0x41'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x957a('0x42'),_0xe50f30?util[_0x957a('0x1c')](_0x957a('0x2e'),_0x5530c5,_0xe50f30?'zip':'pdf'):null);});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x957a('0x40')](util[_0x957a('0x1c')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x957a('0x43')));return db[_0x957a('0xf')][_0x957a('0x44')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x957a('0x31')](function(_0x26370e){EXTRACTED_REPORT=_0x26370e;return dbH[_0x957a('0x34')][_0x957a('0x35')](util[_0x957a('0x1c')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x957a('0x34')]['QueryTypes'][_0x957a('0x38')]});})[_0x957a('0x31')](extractReport)['catch'](function(_0x5ac732){logger[_0x957a('0x40')](util['format'](_0x957a('0x45'),EXTRACTED_REPORT_ID,'PDF'),util[_0x957a('0x46')](_0x5ac732,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x957a('0x47'));})[_0x957a('0x48')](function(){process[_0x957a('0x49')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x3e81b6=new PdfPrinter({'Arial':{'normal':__dirname+_0x957a('0x4a'),'bold':__dirname+_0x957a('0x4b'),'italics':__dirname+_0x957a('0x4c'),'bolditalics':__dirname+_0x957a('0x4d')}});return _0x3e81b6;}function getPDFDocDefinitionFromHTML(_0x410878,_0x5b3aba){var _0x5877ee=util[_0x957a('0x1c')]('%s\x20#%d',_0x5b3aba[_0x957a('0x4e')],_0x5b3aba[_0x957a('0x4f')]);var _0x3d7e03=moment()['format'](_0x957a('0x50'))[_0x957a('0x14')]();var _0x44f448=htmlToPdfmake(_0x410878,{'window':window,'tableAutoSize':!![]});return{'content':[_0x44f448],'defaultStyle':{'font':_0x957a('0x27')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x957a('0x51'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x957a('0x51'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x957a('0x51')}},'header':function(){return[{'text':_0x957a('0x52'),'style':'header'}];},'footer':function(_0x56cdb2,_0x3d4312){return[{'text':util[_0x957a('0x1c')](_0x957a('0x53'),_0x5877ee,_0x56cdb2,_0x3d4312,_0x3d7e03),'style':'footer'}];}};}function writePDFDocument(_0x2eec6a,_0x26f631){return new Promise(function(_0x4c4011,_0x43862c){var _0x371089=_0x2eec6a[_0x957a('0x54')](fs[_0x957a('0x55')](_0x26f631));_0x371089['on'](_0x957a('0x56'),function(){_0x4c4011('finish');});_0x371089['on'](_0x957a('0x57'),function(_0x47c0fa){_0x43862c(_0x47c0fa);});_0x2eec6a['end']();});}exports[_0x957a('0x58')]=function(_0x574894,_0x2b9663){var _0x57d44a=getPDFPrinter();var _0x570aa4=getPDFDocDefinitionFromHTML(_0x574894,_0x2b9663);var _0x25baa0=_0x57d44a[_0x957a('0x59')](_0x570aa4);return writePDFDocument(_0x25baa0,_0x2b9663[_0x957a('0x1')])['catch'](function(_0x38f116){throw _0x38f116;});};
\ No newline at end of file
+var _0xa2b9=['fill','length','auto','body','concat','chunk','keys','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','startDate','pageBreak','margin','push','\x20/\x20','footer','black','right','num','Empty','Setting','find','split','then','range','isInteger','sequelize','query','QueryTypes','SELECT','dirname','basename','existsSync','join','mkdirSync','each','createPdfKitDocument','pdf','%s.%s','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','interactionId','YYYY-MM-DD','center','header','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','end','createPdfFromHTML','lodash','util','path','moment','html-to-pdfmake','zip-dir','rimraf','jsdom','JSDOM','bluebird','dbH','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','map','tableHeader','toString','value'];(function(_0x229643,_0x71e2a3){var _0x15ce21=function(_0xe2cc94){while(--_0xe2cc94){_0x229643['push'](_0x229643['shift']());}};_0x15ce21(++_0x71e2a3);}(_0xa2b9,0x1df));var _0x9a2b=function(_0x6bab10,_0x502973){_0x6bab10=_0x6bab10-0x0;var _0x3b45cf=_0xa2b9[_0x6bab10];return _0x3b45cf;};'use strict';var _=require(_0x9a2b('0x0'));var fs=require('fs');var util=require(_0x9a2b('0x1'));var path=require(_0x9a2b('0x2'));var moment=require(_0x9a2b('0x3'));var htmlToPdfmake=require(_0x9a2b('0x4'));var PdfPrinter=require('pdfmake/src/printer');var zipdir=require(_0x9a2b('0x5'));var rimraf=require(_0x9a2b('0x6'));var JSDOM=require(_0x9a2b('0x7'))[_0x9a2b('0x8')];var window=new JSDOM('')['window'];var BPromise=require(_0x9a2b('0x9'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0x9a2b('0xa')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x9a2b('0xb')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x9a2b('0xb')][0x4];var NAME=process['argv'][0x5];var FORMAT=_0x9a2b('0xc');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x2da1bf,_0x27381d){var _0x1c375d={'status':_0x2da1bf};var _0x4c08a4={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x27381d){_0x1c375d[_0x9a2b('0xd')]=_0x27381d;}return db[_0x9a2b('0xe')]['update'](_0x1c375d,_0x4c08a4);}function getHeaders(_0x7a8f80){return _[_0x9a2b('0xf')](_0x7a8f80,function(_0x5a2d10){return{'text':_0x5a2d10,'style':_0x9a2b('0x10')};});}function getRows(_0x425c79,_0x2f593e){return _['map'](_0x2f593e,function(_0x5866a8){return _(_0x5866a8)['pick'](_0x425c79)[_0x9a2b('0xf')](function(_0x22728a){return _0x22728a?_[_0x9a2b('0x11')](_0x22728a):'';})[_0x9a2b('0x12')]();});}function createTable(_0x3060e6,_0x16efae){var _0x1f785f={'widths':_[_0x9a2b('0x13')](Array(_0x3060e6[_0x9a2b('0x14')]),0x91),'heights':function(_0xfbddc7){return _0xfbddc7===0x0?_0x9a2b('0x15'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x1d6d0d=getHeaders(_0x3060e6);_0x1f785f[_0x9a2b('0x16')]['push'](_0x1d6d0d);var _0x31190b=getRows(_0x3060e6,_0x16efae);_0x1f785f['body']=_0x1f785f['body'][_0x9a2b('0x17')](_0x31190b);return _0x1f785f;}function createTables(_0x2b8b54){var _0x17476b=[];var _0x4868f2=_[_0x9a2b('0x18')](Object[_0x9a2b('0x19')](_0x2b8b54[0x0]),0x5);_0x4868f2['forEach'](function(_0x2d2c90){_0x17476b['push'](createTable(_0x2d2c90,_0x2b8b54));});return _0x17476b;}function getPDFDocDefinition(_0x4afdc4){var _0x1c279b=util[_0x9a2b('0x1a')](_0x9a2b('0x1b'),NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT[_0x9a2b('0x1c')])[_0x9a2b('0x1a')](FORMAT),moment(EXTRACTED_REPORT['endDate'])['format'](FORMAT));var _0x3c917a=[];for(var _0x2945d6=0x0;_0x2945d6<_0x4afdc4[_0x9a2b('0x14')];_0x2945d6++){var _0x6c410=[];if(_0x2945d6===0x0){_0x6c410['push']({'text':_0x1c279b,'style':'header'});}var _0x1aa265={'table':_0x4afdc4[_0x2945d6]};if(_0x2945d6>0x0){_0x1aa265[_0x9a2b('0x1d')]='before';_0x1aa265[_0x9a2b('0x1e')]=[0x0,0x46,0x0,0x0];}_0x6c410[_0x9a2b('0x1f')](_0x1aa265);_0x3c917a[_0x9a2b('0x1f')](_0x6c410);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x3c917a,'footer':function(_0x39a957,_0x318d14){return{'text':_0x39a957[_0x9a2b('0x11')]()+_0x9a2b('0x20')+_0x318d14,'style':_0x9a2b('0x21')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x9a2b('0x22')},'footer':{'alignment':_0x9a2b('0x23'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x340fa4){var _0x25d925=0x1388;var _0x17687d;if(!_0x340fa4[0x0][_0x9a2b('0x24')]){return analyticExtractedReport(_0x9a2b('0x25'));}return db[_0x9a2b('0x26')][_0x9a2b('0x27')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x9a2b('0x28'),'splitSizePdf']})[_0x9a2b('0x29')](function(_0x56c77a){if(_0x56c77a){_0x17687d=_0x56c77a;_0x25d925=_0x17687d['splitSizePdf']||0x3e8;}})[_0x9a2b('0x29')](function(){var _0x3dc0fc=[];var _0x400a00=0x0;if(_0x17687d[_0x9a2b('0x28')]){if(_0x340fa4&&_0x340fa4['length']){var _0x23ea76=_[_0x9a2b('0x2a')](_0x340fa4[0x0][_0x9a2b('0x24')]/_0x25d925);var _0x59ffa1=Number[_0x9a2b('0x2b')](_0x340fa4[0x0]['num']/_0x25d925)?_0x340fa4[0x0][_0x9a2b('0x24')]%_0x25d925:0x0;_0x23ea76['forEach'](function(_0x4c4a42){if(_0x4c4a42>0x0){_0x400a00+=_0x25d925;}_0x3dc0fc['push'](dbH[_0x9a2b('0x2c')][_0x9a2b('0x2d')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x25d925,_0x400a00),{'type':dbH[_0x9a2b('0x2c')][_0x9a2b('0x2e')]['SELECT']}));});if(_0x59ffa1>0x0){_0x400a00+=_0x25d925;_0x3dc0fc[_0x9a2b('0x1f')](dbH['sequelize']['query'](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x59ffa1,_0x400a00),{'type':dbH['sequelize'][_0x9a2b('0x2e')]['SELECT']}));}}}else{_0x3dc0fc[_0x9a2b('0x1f')](dbH[_0x9a2b('0x2c')][_0x9a2b('0x2d')](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0x9a2b('0x2f')]}));}var _0x19d1aa=path[_0x9a2b('0x30')](PATH);var _0x395449=path[_0x9a2b('0x31')](PATH,'.pdf');var _0x5d923c=_0x17687d[_0x9a2b('0x28')]&&_0x3dc0fc[_0x9a2b('0x14')]>0x1;var _0x282c0a=[];if(!fs[_0x9a2b('0x32')](path[_0x9a2b('0x33')](_0x19d1aa,_0x395449))&&_0x5d923c){fs[_0x9a2b('0x34')](path[_0x9a2b('0x33')](_0x19d1aa,_0x395449));}return BPromise[_0x9a2b('0x35')](_0x3dc0fc,function(_0x532dc1){_0x282c0a['push'](_0x532dc1);})['then'](function(){var _0x3d58ed=[];for(var _0x517805=0x0;_0x517805<_0x282c0a['length'];_0x517805+=0x1){var _0x371e77=_0x282c0a[_0x517805];var _0x44eb14=createTables(_['flatten'](_0x371e77));var _0x31568a;var _0x547aeb=getPDFDocDefinition(_0x44eb14);var _0x2e6487=getPDFPrinter();var _0x3aa246=_0x2e6487[_0x9a2b('0x36')](_0x547aeb);if(_0x5d923c){_0x31568a=path['join'](_0x19d1aa,_0x395449,util[_0x9a2b('0x1a')]('%s%d.%s',_0x395449,_0x517805,_0x9a2b('0x37')));}else{_0x31568a=path[_0x9a2b('0x33')](_0x19d1aa,util['format'](_0x9a2b('0x38'),_0x395449,_0x9a2b('0x37')));}_0x3d58ed['push'](writePDFDocument(_0x3aa246,_0x31568a));}return Promise['all'](_0x3d58ed);})['then'](function(){if(_0x5d923c){return new Promise(function(_0x16d612){zipdir(path['join'](_0x19d1aa,_0x395449),{'saveTo':path[_0x9a2b('0x33')](_0x19d1aa,util[_0x9a2b('0x1a')]('%s.%s',_0x395449,'zip'))},function(){rimraf(path[_0x9a2b('0x33')](_0x19d1aa,_0x395449),function(){});_0x16d612(_0x9a2b('0x39'));});});}})[_0x9a2b('0x29')](function(){if(!_0x5d923c)return;rimraf(path[_0x9a2b('0x33')](_0x19d1aa,_0x395449),function(){});})[_0x9a2b('0x29')](function(){logger[_0x9a2b('0x3a')](util[_0x9a2b('0x1a')](_0x9a2b('0x3b'),EXTRACTED_REPORT_ID,_0x9a2b('0x3c')));return analyticExtractedReport(_0x9a2b('0x3d'),_0x5d923c?util[_0x9a2b('0x1a')](_0x9a2b('0x38'),_0x395449,_0x5d923c?'zip':'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x9a2b('0x3a')](util[_0x9a2b('0x1a')](_0x9a2b('0x3e'),EXTRACTED_REPORT_ID,_0x9a2b('0x3c')));return db['AnalyticExtractedReport'][_0x9a2b('0x3f')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x9a2b('0x29')](function(_0x577dab){EXTRACTED_REPORT=_0x577dab;return dbH[_0x9a2b('0x2c')][_0x9a2b('0x2d')](util[_0x9a2b('0x1a')](_0x9a2b('0x40'),QUERY),{'type':dbH[_0x9a2b('0x2c')][_0x9a2b('0x2e')]['SELECT']});})[_0x9a2b('0x29')](extractReport)['catch'](function(_0x19a2a7){logger['info'](util[_0x9a2b('0x1a')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'PDF'),util['inspect'](_0x19a2a7,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x9a2b('0x41'));})[_0x9a2b('0x42')](function(){process[_0x9a2b('0x43')](EXIT_CODE);});}main();function getPDFPrinter(){var _0xde66f4=new PdfPrinter({'Arial':{'normal':__dirname+_0x9a2b('0x44'),'bold':__dirname+_0x9a2b('0x45'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0x9a2b('0x46')}});return _0xde66f4;}function getPDFDocDefinitionFromHTML(_0x172e64,_0x1dee2f){var _0x2748e8=util['format'](_0x9a2b('0x47'),_0x1dee2f['channel'],_0x1dee2f[_0x9a2b('0x48')]);var _0xeaff4a=moment()[_0x9a2b('0x1a')](_0x9a2b('0x49'))[_0x9a2b('0x11')]();var _0x2ea601=htmlToPdfmake(_0x172e64,{'window':window,'tableAutoSize':!![]});return{'content':[_0x2ea601],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x9a2b('0x4a'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x9a2b('0x4a'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x9a2b('0x4a')}},'header':function(){return[{'text':'Interaction\x20Transcript','style':_0x9a2b('0x4b')}];},'footer':function(_0x5821a0,_0x554c14){return[{'text':util[_0x9a2b('0x1a')](_0x9a2b('0x4c'),_0x2748e8,_0x5821a0,_0x554c14,_0xeaff4a),'style':'footer'}];}};}function writePDFDocument(_0x28ef07,_0x105f30){return new Promise(function(_0x5f17c8,_0x51501c){var _0x1d8a81=_0x28ef07[_0x9a2b('0x4d')](fs[_0x9a2b('0x4e')](_0x105f30));_0x1d8a81['on'](_0x9a2b('0x4f'),function(){_0x5f17c8(_0x9a2b('0x4f'));});_0x1d8a81['on'](_0x9a2b('0x50'),function(_0x193fc3){_0x51501c(_0x193fc3);});_0x28ef07[_0x9a2b('0x51')]();});}exports[_0x9a2b('0x52')]=function(_0x56ddf8,_0x16996d){var _0x535f99=getPDFPrinter();var _0x34831f=getPDFDocDefinitionFromHTML(_0x56ddf8,_0x16996d);var _0xc27351=_0x535f99[_0x9a2b('0x36')](_0x34831f);return writePDFDocument(_0xc27351,_0x16996d[_0x9a2b('0x2')])['catch'](function(_0x56d795){throw _0x56d795;});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe8d1=['bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','num','Empty','split','push','SELECT','dirname','basename','length','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','writeFileSync','binary','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','util','json2xls'];(function(_0x1cad18,_0x1965a4){var _0x2166b8=function(_0x589f70){while(--_0x589f70){_0x1cad18['push'](_0x1cad18['shift']());}};_0x2166b8(++_0x1965a4);}(_0xe8d1,0x176));var _0x1e8d=function(_0x118da4,_0x2e192e){_0x118da4=_0x118da4-0x0;var _0x40dfbb=_0xe8d1[_0x118da4];return _0x40dfbb;};'use strict';var util=require(_0x1e8d('0x0'));var path=require('path');var _=require('lodash');var fs=require('fs');var json2xls=require(_0x1e8d('0x1'));var BPromise=require(_0x1e8d('0x2'));var zipdir=require(_0x1e8d('0x3'));var rimraf=require(_0x1e8d('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0x1e8d('0x5'))[_0x1e8d('0x6')];var logger=require(_0x1e8d('0x7'))(_0x1e8d('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x1e8d('0x9')][0x2]);var QUERY=process[_0x1e8d('0x9')][0x3];var PATH=process[_0x1e8d('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x23b4fc,_0x26eb01){var _0x10486c={'status':_0x23b4fc};var _0x1707f6={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x26eb01){_0x10486c['savename']=_0x26eb01;}return db['AnalyticExtractedReport'][_0x1e8d('0xa')](_0x10486c,_0x1707f6);}function main(){var _0x3b2f88=0x1388;var _0x1502d6;logger[_0x1e8d('0xb')](util[_0x1e8d('0xc')](_0x1e8d('0xd'),EXTRACTED_REPORT_ID,_0x1e8d('0xe')));return db[_0x1e8d('0xf')][_0x1e8d('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x1e8d('0x11')]})[_0x1e8d('0x12')](function(_0x4ab0d3){if(_0x4ab0d3){_0x1502d6=_0x4ab0d3;_0x3b2f88=_0x1502d6[_0x1e8d('0x11')]||0x1388;}})[_0x1e8d('0x12')](function(){return dbH[_0x1e8d('0x13')][_0x1e8d('0x14')](util[_0x1e8d('0xc')](_0x1e8d('0x15'),QUERY),{'type':dbH['sequelize'][_0x1e8d('0x16')]['SELECT']});})[_0x1e8d('0x12')](function(_0x32a47f){if(!_0x32a47f[0x0][_0x1e8d('0x17')]){return analyticExtractedReport(_0x1e8d('0x18'));}var _0x432ec1=[];var _0x71e382=0x0;var _0x48cdaa=!![];if(_0x1502d6[_0x1e8d('0x19')]){if(_0x32a47f&&_0x32a47f['length']){var _0x1e84ec=_0x32a47f[0x0][_0x1e8d('0x17')]%(_0x71e382+_0x3b2f88);for(;_0x48cdaa;_0x71e382+=_0x3b2f88,_0x1e84ec=_0x32a47f[0x0]['num']%(_0x71e382+_0x3b2f88)){if(_0x1e84ec==0x0||_0x1e84ec==_0x32a47f[0x0]['num']){_0x48cdaa=![];}_0x432ec1[_0x1e8d('0x1a')](dbH[_0x1e8d('0x13')][_0x1e8d('0x14')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x3b2f88,_0x71e382),{'type':dbH[_0x1e8d('0x13')][_0x1e8d('0x16')][_0x1e8d('0x1b')]}));}}}else{_0x432ec1[_0x1e8d('0x1a')](dbH['sequelize'][_0x1e8d('0x14')](QUERY,{'type':dbH[_0x1e8d('0x13')]['QueryTypes']['SELECT']}));}var _0x43ae37=path[_0x1e8d('0x1c')](PATH);var _0x206296=path[_0x1e8d('0x1d')](PATH,'.xlsx');var _0x15faa4=_0x1502d6[_0x1e8d('0x19')]&&_0x432ec1[_0x1e8d('0x1e')]>0x1;var _0x27ac25=[];if(!fs[_0x1e8d('0x1f')](path[_0x1e8d('0x20')](_0x43ae37,_0x206296))&&_0x15faa4){fs[_0x1e8d('0x21')](path[_0x1e8d('0x20')](_0x43ae37,_0x206296));}return BPromise[_0x1e8d('0x22')](_0x432ec1,function(_0xd7ca61){_0x27ac25[_0x1e8d('0x1a')](_0xd7ca61);})['then'](function(){for(var _0x56f70b=0x0;_0x56f70b<_0x27ac25[_0x1e8d('0x1e')];_0x56f70b+=0x1){var _0x33de47;var _0x3b63db=_0x27ac25[_0x56f70b];if(_0x15faa4){_0x33de47=path[_0x1e8d('0x20')](_0x43ae37,_0x206296,util[_0x1e8d('0xc')](_0x1e8d('0x23'),_0x206296,_0x56f70b,_0x1e8d('0x24')));}else{_0x33de47=path[_0x1e8d('0x20')](_0x43ae37,util[_0x1e8d('0xc')](_0x1e8d('0x25'),_0x206296,_0x1e8d('0x24')));}fs[_0x1e8d('0x26')](_0x33de47,json2xls(_0x3b63db),_0x1e8d('0x27'));}})[_0x1e8d('0x12')](function(){if(_0x15faa4){zipdir(path['join'](_0x43ae37,_0x206296),{'saveTo':path['join'](_0x43ae37,util[_0x1e8d('0xc')](_0x1e8d('0x25'),_0x206296,_0x1e8d('0x28')))},function(_0x26997d,_0x3bef31){});rimraf(path[_0x1e8d('0x20')](_0x43ae37,_0x206296),function(){});}})[_0x1e8d('0x12')](function(){logger[_0x1e8d('0xb')](util[_0x1e8d('0xc')](_0x1e8d('0x29'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x1e8d('0x2a'),_0x15faa4?util[_0x1e8d('0xc')](_0x1e8d('0x25'),_0x206296,_0x15faa4?_0x1e8d('0x28'):_0x1e8d('0x24')):null);});})[_0x1e8d('0x2b')](function(_0x3f64b7){logger[_0x1e8d('0xb')](util[_0x1e8d('0xc')](_0x1e8d('0x2c'),EXTRACTED_REPORT_ID,_0x1e8d('0xe')),util['inspect'](_0x3f64b7,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1e8d('0x2d'));})[_0x1e8d('0x2e')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
+var _0x47cb=['info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','util','path','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','find','split','then','splitSizeXlsx','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','length','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.xlsx','existsSync','mkdirSync','join','%s%d.%s','%s.%s','xlsx','writeFileSync','zip\x20finished'];(function(_0x20c6c4,_0x7a89a0){var _0x3ff330=function(_0x40e46c){while(--_0x40e46c){_0x20c6c4['push'](_0x20c6c4['shift']());}};_0x3ff330(++_0x7a89a0);}(_0x47cb,0x74));var _0xb47c=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x47cb[_0x14add3];return _0x4a174f;};'use strict';var util=require(_0xb47c('0x0'));var path=require(_0xb47c('0x1'));var _=require(_0xb47c('0x2'));var fs=require('fs');var json2xls=require(_0xb47c('0x3'));var BPromise=require(_0xb47c('0x4'));var zipdir=require(_0xb47c('0x5'));var rimraf=require(_0xb47c('0x6'));var db=require(_0xb47c('0x7'))['db'];var dbH=require('../../mysqldb')[_0xb47c('0x8')];var logger=require(_0xb47c('0x9'))(_0xb47c('0xa'));var EXTRACTED_REPORT_ID=Number(process[_0xb47c('0xb')][0x2]);var QUERY=process[_0xb47c('0xb')][0x3];var PATH=process[_0xb47c('0xb')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x341cce,_0x1234b5){var _0x2f25ac={'status':_0x341cce};var _0x3fe803={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1234b5){_0x2f25ac[_0xb47c('0xc')]=_0x1234b5;}return db[_0xb47c('0xd')][_0xb47c('0xe')](_0x2f25ac,_0x3fe803);}function main(){var _0x2e04d7=0x1388;var _0x336f67;logger['info'](util[_0xb47c('0xf')](_0xb47c('0x10'),EXTRACTED_REPORT_ID,_0xb47c('0x11')));return db['Setting'][_0xb47c('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xb47c('0x13'),'splitSizeXlsx']})[_0xb47c('0x14')](function(_0x80cf99){if(_0x80cf99){_0x336f67=_0x80cf99;_0x2e04d7=_0x336f67[_0xb47c('0x15')]||0x1388;}})['then'](function(){return dbH[_0xb47c('0x16')][_0xb47c('0x17')](util[_0xb47c('0xf')](_0xb47c('0x18'),QUERY),{'type':dbH[_0xb47c('0x16')][_0xb47c('0x19')][_0xb47c('0x1a')]});})[_0xb47c('0x14')](function(_0xca925c){if(!_0xca925c[0x0][_0xb47c('0x1b')]){return analyticExtractedReport(_0xb47c('0x1c'));}var _0x4a335e=[];var _0x33dbe3=0x0;if(_0x336f67[_0xb47c('0x13')]){if(_0xca925c&&_0xca925c[_0xb47c('0x1d')]){var _0x4b8f13=_[_0xb47c('0x1e')](_0xca925c[0x0][_0xb47c('0x1b')]/_0x2e04d7);var _0x2749ff=Number[_0xb47c('0x1f')](_0xca925c[0x0][_0xb47c('0x1b')]/_0x2e04d7)?_0xca925c[0x0][_0xb47c('0x1b')]%_0x2e04d7:0x0;_0x4b8f13[_0xb47c('0x20')](function(_0x2a67da){if(_0x2a67da>0x0){_0x33dbe3+=_0x2e04d7;}_0x4a335e[_0xb47c('0x21')](dbH[_0xb47c('0x16')][_0xb47c('0x17')](util[_0xb47c('0xf')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x2e04d7,_0x33dbe3),{'type':dbH[_0xb47c('0x16')][_0xb47c('0x19')][_0xb47c('0x1a')]}));});if(_0x2749ff>0x0){_0x33dbe3+=_0x2e04d7;_0x4a335e['push'](dbH['sequelize']['query'](util[_0xb47c('0xf')](_0xb47c('0x22'),QUERY,_0x2749ff,_0x33dbe3),{'type':dbH[_0xb47c('0x16')]['QueryTypes'][_0xb47c('0x1a')]}));}}}else{_0x4a335e['push'](dbH[_0xb47c('0x16')][_0xb47c('0x17')](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0xb47c('0x1a')]}));}var _0x71d3ac=path[_0xb47c('0x23')](PATH);var _0x39d0ff=path[_0xb47c('0x24')](PATH,_0xb47c('0x25'));var _0x14a73e=_0x336f67[_0xb47c('0x13')]&&_0x4a335e[_0xb47c('0x1d')]>0x1;var _0x1ce9dc=[];if(!fs[_0xb47c('0x26')](path['join'](_0x71d3ac,_0x39d0ff))&&_0x14a73e){fs[_0xb47c('0x27')](path[_0xb47c('0x28')](_0x71d3ac,_0x39d0ff));}return BPromise['each'](_0x4a335e,function(_0x4e2e9f){_0x1ce9dc[_0xb47c('0x21')](_0x4e2e9f);})[_0xb47c('0x14')](function(){for(var _0x38c4df=0x0;_0x38c4df<_0x1ce9dc[_0xb47c('0x1d')];_0x38c4df+=0x1){var _0x587835;var _0xf3633=_0x1ce9dc[_0x38c4df];if(_0x14a73e){_0x587835=path[_0xb47c('0x28')](_0x71d3ac,_0x39d0ff,util['format'](_0xb47c('0x29'),_0x39d0ff,_0x38c4df,'xlsx'));}else{_0x587835=path[_0xb47c('0x28')](_0x71d3ac,util[_0xb47c('0xf')](_0xb47c('0x2a'),_0x39d0ff,_0xb47c('0x2b')));}fs[_0xb47c('0x2c')](_0x587835,json2xls(_0xf3633),'binary');}})['then'](function(){if(_0x14a73e){return new Promise(function(_0x2c0e34){zipdir(path['join'](_0x71d3ac,_0x39d0ff),{'saveTo':path[_0xb47c('0x28')](_0x71d3ac,util[_0xb47c('0xf')]('%s.%s',_0x39d0ff,'zip'))},function(_0x5ecfab,_0x4fbca5){rimraf(path[_0xb47c('0x28')](_0x71d3ac,_0x39d0ff),function(){});_0x2c0e34(_0xb47c('0x2d'));});});}})['then'](function(){logger[_0xb47c('0x2e')](util['format'](_0xb47c('0x2f'),EXTRACTED_REPORT_ID,_0xb47c('0x11')));return analyticExtractedReport(_0xb47c('0x30'),_0x14a73e?util[_0xb47c('0xf')](_0xb47c('0x2a'),_0x39d0ff,_0x14a73e?_0xb47c('0x31'):'xlsx'):null);});})[_0xb47c('0x32')](function(_0x2003f2){logger[_0xb47c('0x2e')](util[_0xb47c('0xf')](_0xb47c('0x33'),EXTRACTED_REPORT_ID,_0xb47c('0x11')),util['inspect'](_0x2003f2,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xb47c('0x34'));})[_0xb47c('0x35')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05f6=['XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval','tag','hasOwnProperty','callerID','indexOf','app','toLowerCase','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','catch','error','lodash','util','Interval','findAll','then','intervals','models','IntervalId','VoiceExtension','uniq','map','exten','filter','groupBy','queue','playback','priority','extensions','extension','type','Set','format','CDR(type)=%s','context','inbound','push','VoiceExtensionId','outbound','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','XCALLY-MOTION-ANSWER=0'];(function(_0x1692ef,_0x276342){var _0x39582f=function(_0x322ff6){while(--_0x322ff6){_0x1692ef['push'](_0x1692ef['shift']());}};_0x39582f(++_0x276342);}(_0x05f6,0x1b9));var _0x605f=function(_0x5261be,_0x26ba65){_0x5261be=_0x5261be-0x0;var _0x132f97=_0x05f6[_0x5261be];return _0x132f97;};'use strict';var _=require(_0x605f('0x0'));var util=require(_0x605f('0x1'));function rewrite(_0x16b7a3,_0x3d9b06){var _0x16809c=this;return _0x16b7a3['models'][_0x605f('0x2')][_0x605f('0x3')]({'raw':!![]})[_0x605f('0x4')](function(_0x1ce628){_0x16809c[_0x605f('0x5')]=_0x1ce628;return _0x16b7a3[_0x605f('0x6')]['VoiceExtension'][_0x605f('0x3')]({'where':{'IntervalId':_0x3d9b06[_0x605f('0x7')]},'raw':!![]});})[_0x605f('0x4')](function(_0x562b9e){return _0x16b7a3[_0x605f('0x6')][_0x605f('0x8')][_0x605f('0x3')]({'where':{'exten':{'$in':_[_0x605f('0x9')](_[_0x605f('0xa')](_0x562b9e,_0x605f('0xb')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x605f('0x4')](function(_0x35b879){var _0x23b567=_[_0x605f('0xc')](_0x35b879,{'priority':'1'});var _0x20c010=_[_0x605f('0xc')](_0x35b879,{'isApp':0x1});var _0x1883f7=_[_0x605f('0xd')](_0x20c010,_0x605f('0xb'));var _0x23cf1b=[_0x605f('0xe'),_0x605f('0xf')];var _0x53fc94=[];var _0x931e3c=[];for(var _0x399d09 in _0x1883f7){if(_0x1883f7['hasOwnProperty'](_0x399d09)){_0x16809c[_0x605f('0x10')]=0x2;_0x16809c[_0x605f('0x11')]=[];_0x16809c[_0x605f('0x12')]=_['find'](_0x23b567,{'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')]});_0x16809c[_0x605f('0x11')]['push']({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':util[_0x605f('0x15')](_0x605f('0x16'),_0x1883f7[_0x399d09][0x0]['type']),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']});if(_0x1883f7[_0x399d09][0x0][_0x605f('0x13')]===_0x605f('0x18')){_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':'CDR(routeid)='+_0x1883f7[_0x399d09][0x0]['VoiceExtensionId'],'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}else if(_0x1883f7[_0x399d09][0x0][_0x605f('0x13')]===_0x605f('0x1b')){if(_0x16809c[_0x605f('0x12')]){_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x1c')+(_0x16809c[_0x605f('0x12')]['cutdigits']?'${EXTEN:'+_0x16809c[_0x605f('0x12')][_0x605f('0x1d')]+'}':_0x605f('0x1e')),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']});}_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':'CDR(routeid)='+_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')],'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});var _0x3156ef=_0x16809c[_0x605f('0x10')]++;_0x16809c['extensions'][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':_0x605f('0x20')+(_0x3156ef+0x2)+_0x605f('0x21')+(_0x3156ef+0x1)+')','context':_0x1883f7[_0x399d09][0x0]['context'],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x3156ef,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});if(_0x16809c[_0x605f('0x12')]){_0x16809c['extensions']['push']({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':_0x16809c[_0x605f('0x12')]['cutdigits']?_0x605f('0x22')+_0x16809c['extension'][_0x605f('0x1d')]+'}':_0x605f('0x23'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0]['exten'],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x24')+_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')],'context':_0x1883f7[_0x399d09][0x0]['context'],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});if(_0x16809c[_0x605f('0x12')]&&_0x16809c[_0x605f('0x12')]['hasOwnProperty']('recordingFormat')&&_0x16809c[_0x605f('0x12')][_0x605f('0x25')]!==_0x605f('0x26')){_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x27'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});_0x16809c['extensions'][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x16809c[_0x605f('0x12')][_0x605f('0x25')]||_0x605f('0x28'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0]['exten'],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}}_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x29'),'context':_0x1883f7[_0x399d09][0x0]['context'],'exten':_0x1883f7[_0x399d09][0x0]['exten'],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':'Set','appdata':_0x605f('0x2a'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']});_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':_0x605f('0x2b'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});for(var _0x5c20a9=0x0,_0x389476=0x0;_0x5c20a9<_0x1883f7[_0x399d09][_0x605f('0x2c')];_0x5c20a9+=0x1,_0x389476=0x0){var _0x49bd2e=_0x1883f7[_0x399d09][_0x5c20a9];if(_0x49bd2e[_0x605f('0x13')]){_0x49bd2e[_0x605f('0x13')]=_0x49bd2e['type']['toLowerCase']();}var _0x4399d5=[];var _0x5a59cd=[];delete _0x49bd2e['id'];delete _0x49bd2e[_0x605f('0x2d')];delete _0x49bd2e[_0x605f('0x2e')];var _0x1d988b=_0x49bd2e[_0x605f('0x2f')]!=='*,*,*,*'?[_0x49bd2e[_0x605f('0x2f')]]:_0x49bd2e[_0x605f('0x7')]?_[_0x605f('0xa')](_[_0x605f('0xc')](_0x16809c[_0x605f('0x5')],{'IntervalId':_0x49bd2e['IntervalId']}),_0x605f('0x2f')):[];if(_0x49bd2e['hasOwnProperty']('tag')){if(_0x49bd2e['tag']&&_0x49bd2e['tag']!=='--'){_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':'CDR(tag)='+_0x49bd2e[_0x605f('0x30')],'context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b['length']+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});}}if(_0x49bd2e[_0x605f('0x13')]===_0x605f('0x1b')&&_0x49bd2e[_0x605f('0x31')](_0x605f('0x32'))){if(_0x49bd2e[_0x605f('0x32')]){_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e['type'],'app':_0x605f('0x1f'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x49bd2e[_0x605f('0x32')]+')','context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e[_0x605f('0x1a')]});}else{_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});}}if(_0x49bd2e[_0x605f('0x31')]('answer')){if(_0x23cf1b[_0x605f('0x33')](_0x49bd2e[_0x605f('0x34')][_0x605f('0x35')]())>=0x0&&_0x49bd2e[_0x605f('0x36')]!==_0x605f('0x37')){if(_0x49bd2e[_0x605f('0x38')]){_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':_0x605f('0x39'),'context':_0x49bd2e['context'],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x49bd2e['context'],'exten':_0x49bd2e['exten'],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c['priority']+_0x389476++,'VoiceExtensionId':_0x49bd2e[_0x605f('0x1a')]});}else{_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':_0x605f('0x3a'),'context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x3b'),'context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e['exten'],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e[_0x605f('0x1a')]});}}}for(var _0x440cda=0x0;_0x440cda<_0x1d988b['length'];_0x440cda+=0x1){var _0x44211a=_0x16809c[_0x605f('0x10')]+_0x1d988b['length'];var _0x54faf5=_0x440cda===_0x1d988b[_0x605f('0x2c')]-0x1?_0x16809c['priority']+_0x4399d5[_0x605f('0x2c')]+_0x5a59cd[_0x605f('0x2c')]+0x2:_0x16809c['priority']+_0x440cda+0x1;_0x4399d5['splice'](_0x440cda,0x0,{'type':_0x49bd2e['type'],'app':_0x605f('0x3c'),'appdata':_0x1d988b[_0x440cda]+'?'+_0x49bd2e[_0x605f('0x17')]+_0x605f('0x3d')+_0x44211a+':'+_0x49bd2e[_0x605f('0x17')]+',${EXTEN},'+_0x54faf5,'exten':_0x49bd2e[_0x605f('0xb')],'context':_0x49bd2e[_0x605f('0x17')],'priority':_0x16809c[_0x605f('0x10')]+_0x440cda,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}_0x49bd2e[_0x605f('0x10')]=_0x4399d5[_0x605f('0x2c')]?_[_0x605f('0x3e')](_0x4399d5)['priority']+0x1:_0x16809c[_0x605f('0x10')];_0x16809c[_0x605f('0x10')]=(_0x5a59cd[_0x605f('0x2c')]?_['last'](_0x5a59cd)[_0x605f('0x10')]:_0x49bd2e[_0x605f('0x10')])+0x1;_0x16809c[_0x605f('0x11')]=_[_0x605f('0x3f')](_0x16809c[_0x605f('0x11')],_0x4399d5,[_0x49bd2e],_0x5a59cd);}_0x16809c['extensions'][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x40'),'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'priority':_0x16809c['priority'],'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});_0x53fc94[_0x605f('0x19')](_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']);_0x931e3c=_['concat'](_0x931e3c,_0x16809c[_0x605f('0x11')]);}}return _0x16b7a3[_0x605f('0x41')](function(_0x3ddb12){return _0x16b7a3[_0x605f('0x6')]['VoiceExtension'][_0x605f('0x42')]({'where':{'VoiceExtensionId':{'$in':_0x53fc94}},'transaction':_0x3ddb12})[_0x605f('0x4')](function(_0x35a7b0){return _0x16b7a3[_0x605f('0x6')][_0x605f('0x8')]['bulkCreate'](_['sortBy'](_0x931e3c,_0x605f('0x10')),{'transaction':_0x3ddb12});});});})[_0x605f('0x43')](function(_0x501235){console[_0x605f('0x44')](_0x501235);});}exports['rewrite']=rewrite;
\ No newline at end of file
+var _0x887e=['recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','length','toLowerCase','createdAt','updatedAt','interval','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','last','concat','Hangup','transaction','catch','rewrite','lodash','util','models','findAll','then','intervals','VoiceExtension','IntervalId','map','exten','filter','groupBy','queue','playback','hasOwnProperty','extensions','find','push','type','Set','format','CDR(type)=%s','priority','VoiceExtensionId','CDR(routeid)=','context','outbound','CDR(destination)=','extension','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix'];(function(_0x14842f,_0x1e605c){var _0x388e42=function(_0xcf5ccb){while(--_0xcf5ccb){_0x14842f['push'](_0x14842f['shift']());}};_0x388e42(++_0x1e605c);}(_0x887e,0xe5));var _0xe887=function(_0x23c434,_0x22b505){_0x23c434=_0x23c434-0x0;var _0x34009e=_0x887e[_0x23c434];return _0x34009e;};'use strict';var _=require(_0xe887('0x0'));var util=require(_0xe887('0x1'));function rewrite(_0x585bf4,_0x402a9f){var _0x32b34b=this;return _0x585bf4[_0xe887('0x2')]['Interval'][_0xe887('0x3')]({'raw':!![]})[_0xe887('0x4')](function(_0x177e6f){_0x32b34b[_0xe887('0x5')]=_0x177e6f;return _0x585bf4[_0xe887('0x2')][_0xe887('0x6')][_0xe887('0x3')]({'where':{'IntervalId':_0x402a9f[_0xe887('0x7')]},'raw':!![]});})[_0xe887('0x4')](function(_0xe2857a){return _0x585bf4['models'][_0xe887('0x6')]['findAll']({'where':{'exten':{'$in':_['uniq'](_[_0xe887('0x8')](_0xe2857a,_0xe887('0x9')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})['then'](function(_0x44f187){var _0x4f9031=_['filter'](_0x44f187,{'priority':'1'});var _0xb15bc3=_[_0xe887('0xa')](_0x44f187,{'isApp':0x1});var _0x3c9b11=_[_0xe887('0xb')](_0xb15bc3,_0xe887('0x9'));var _0x38279d=[_0xe887('0xc'),_0xe887('0xd')];var _0x3ddb79=[];var _0xa72df=[];for(var _0x2fed99 in _0x3c9b11){if(_0x3c9b11[_0xe887('0xe')](_0x2fed99)){_0x32b34b['priority']=0x2;_0x32b34b[_0xe887('0xf')]=[];_0x32b34b['extension']=_[_0xe887('0x10')](_0x4f9031,{'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')]});_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':util[_0xe887('0x14')](_0xe887('0x15'),_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')]),'context':_0x3c9b11[_0x2fed99][0x0]['context'],'exten':_0x3c9b11[_0x2fed99][0x0]['exten'],'priority':_0x32b34b[_0xe887('0x16')]++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});if(_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')]==='inbound'){_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':_0xe887('0x18')+_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')],'context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0]['exten'],'priority':_0x32b34b[_0xe887('0x16')]++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});}else if(_0x3c9b11[_0x2fed99][0x0]['type']===_0xe887('0x1a')){if(_0x32b34b['extension']){_0x32b34b[_0xe887('0xf')]['push']({'type':_0x3c9b11[_0x2fed99][0x0]['type'],'app':'Set','appdata':_0xe887('0x1b')+(_0x32b34b[_0xe887('0x1c')][_0xe887('0x1d')]?'${EXTEN:'+_0x32b34b['extension'][_0xe887('0x1d')]+'}':_0xe887('0x1e')),'context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'priority':_0x32b34b['priority']++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});}_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':'CDR(routeid)='+_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')],'context':_0x3c9b11[_0x2fed99][0x0]['context'],'exten':_0x3c9b11[_0x2fed99][0x0]['exten'],'priority':_0x32b34b['priority']++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});var _0x2cbc64=_0x32b34b[_0xe887('0x16')]++;_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x1f'),'appdata':_0xe887('0x20')+(_0x2cbc64+0x2)+_0xe887('0x21')+(_0x2cbc64+0x1)+')','context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'priority':_0x2cbc64,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});if(_0x32b34b['extension']){_0x32b34b['extensions'][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':_0x32b34b[_0xe887('0x1c')][_0xe887('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x32b34b[_0xe887('0x1c')][_0xe887('0x1d')]+'}':_0xe887('0x22'),'context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0]['exten'],'priority':_0x32b34b['priority']++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0]['VoiceExtensionId']});}_0x32b34b['extensions']['push']({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':'Set','appdata':'outboundrouteid='+_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')],'context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'priority':_0x32b34b[_0xe887('0x16')]++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});if(_0x32b34b[_0xe887('0x1c')]&&_0x32b34b[_0xe887('0x1c')][_0xe887('0xe')](_0xe887('0x23'))&&_0x32b34b[_0xe887('0x1c')][_0xe887('0x23')]!==_0xe887('0x24')){_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0]['type'],'app':'Set','appdata':_0xe887('0x25'),'context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'priority':_0x32b34b[_0xe887('0x16')]++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});_0x32b34b['extensions'][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0]['type'],'app':_0xe887('0x13'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x32b34b[_0xe887('0x1c')]['recordingFormat']||_0xe887('0x26'),'context':_0x3c9b11[_0x2fed99][0x0]['context'],'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'priority':_0x32b34b['priority']++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0]['VoiceExtensionId']});}}_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0]['exten'],'priority':_0x32b34b['priority']++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'priority':_0x32b34b['priority']++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});_0x32b34b[_0xe887('0xf')][_0xe887('0x11')]({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':'MONITOR_OPTIONS=ab','context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'priority':_0x32b34b[_0xe887('0x16')]++,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0]['VoiceExtensionId']});for(var _0x87ab6f=0x0,_0x15c67e=0x0;_0x87ab6f<_0x3c9b11[_0x2fed99][_0xe887('0x27')];_0x87ab6f+=0x1,_0x15c67e=0x0){var _0x3794ca=_0x3c9b11[_0x2fed99][_0x87ab6f];if(_0x3794ca[_0xe887('0x12')]){_0x3794ca[_0xe887('0x12')]=_0x3794ca['type'][_0xe887('0x28')]();}var _0x22819d=[];var _0x2fd6fe=[];delete _0x3794ca['id'];delete _0x3794ca[_0xe887('0x29')];delete _0x3794ca[_0xe887('0x2a')];var _0x1b9d1b=_0x3794ca['interval']!=='*,*,*,*'?[_0x3794ca[_0xe887('0x2b')]]:_0x3794ca[_0xe887('0x7')]?_[_0xe887('0x8')](_['filter'](_0x32b34b[_0xe887('0x5')],{'IntervalId':_0x3794ca[_0xe887('0x7')]}),_0xe887('0x2b')):[];if(_0x3794ca[_0xe887('0xe')](_0xe887('0x2c'))){if(_0x3794ca[_0xe887('0x2c')]&&_0x3794ca[_0xe887('0x2c')]!=='--'){_0x22819d[_0xe887('0x11')]({'type':_0x3794ca[_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':_0xe887('0x2d')+_0x3794ca[_0xe887('0x2c')],'context':_0x3794ca[_0xe887('0x19')],'exten':_0x3794ca['exten'],'priority':_0x1b9d1b[_0xe887('0x27')]+_0x32b34b[_0xe887('0x16')]+_0x15c67e++,'VoiceExtensionId':_0x3794ca[_0xe887('0x17')]});}}if(_0x3794ca[_0xe887('0x12')]==='outbound'&&_0x3794ca[_0xe887('0xe')](_0xe887('0x2e'))){if(_0x3794ca['callerID']){_0x22819d[_0xe887('0x11')]({'type':_0x3794ca[_0xe887('0x12')],'app':_0xe887('0x1f'),'appdata':_0xe887('0x2f')+_0x3794ca[_0xe887('0x2e')]+')','context':_0x3794ca['context'],'exten':_0x3794ca[_0xe887('0x9')],'priority':_0x1b9d1b[_0xe887('0x27')]+_0x32b34b['priority']+_0x15c67e++,'VoiceExtensionId':_0x3794ca['VoiceExtensionId']});}else{_0x22819d['push']({'type':_0x3794ca['type'],'app':_0xe887('0x1f'),'appdata':_0xe887('0x30'),'context':_0x3794ca[_0xe887('0x19')],'exten':_0x3794ca[_0xe887('0x9')],'priority':_0x1b9d1b['length']+_0x32b34b['priority']+_0x15c67e++,'VoiceExtensionId':_0x3794ca[_0xe887('0x17')]});}}if(_0x3794ca[_0xe887('0xe')](_0xe887('0x31'))){if(_0x38279d[_0xe887('0x32')](_0x3794ca[_0xe887('0x33')]['toLowerCase']())>=0x0&&_0x3794ca[_0xe887('0x34')]!==_0xe887('0x35')){if(_0x3794ca[_0xe887('0x31')]){_0x22819d[_0xe887('0x11')]({'type':_0x3794ca['type'],'app':_0xe887('0x1f'),'appdata':_0xe887('0x36'),'context':_0x3794ca[_0xe887('0x19')],'exten':_0x3794ca[_0xe887('0x9')],'priority':_0x1b9d1b[_0xe887('0x27')]+_0x32b34b[_0xe887('0x16')]+_0x15c67e++,'VoiceExtensionId':_0x3794ca[_0xe887('0x17')]});_0x22819d[_0xe887('0x11')]({'type':_0x3794ca[_0xe887('0x12')],'app':'Set','appdata':_0xe887('0x37'),'context':_0x3794ca[_0xe887('0x19')],'exten':_0x3794ca[_0xe887('0x9')],'priority':_0x1b9d1b[_0xe887('0x27')]+_0x32b34b[_0xe887('0x16')]+_0x15c67e++,'VoiceExtensionId':_0x3794ca[_0xe887('0x17')]});}else{_0x22819d[_0xe887('0x11')]({'type':_0x3794ca['type'],'app':'ExecIf','appdata':_0xe887('0x38'),'context':_0x3794ca[_0xe887('0x19')],'exten':_0x3794ca[_0xe887('0x9')],'priority':_0x1b9d1b[_0xe887('0x27')]+_0x32b34b['priority']+_0x15c67e++,'VoiceExtensionId':_0x3794ca[_0xe887('0x17')]});_0x22819d['push']({'type':_0x3794ca[_0xe887('0x12')],'app':_0xe887('0x13'),'appdata':_0xe887('0x39'),'context':_0x3794ca[_0xe887('0x19')],'exten':_0x3794ca['exten'],'priority':_0x1b9d1b[_0xe887('0x27')]+_0x32b34b[_0xe887('0x16')]+_0x15c67e++,'VoiceExtensionId':_0x3794ca[_0xe887('0x17')]});}}}for(var _0x1b7d3a=0x0;_0x1b7d3a<_0x1b9d1b[_0xe887('0x27')];_0x1b7d3a+=0x1){var _0x534418=_0x32b34b[_0xe887('0x16')]+_0x1b9d1b[_0xe887('0x27')];var _0x4eed24=_0x1b7d3a===_0x1b9d1b[_0xe887('0x27')]-0x1?_0x32b34b[_0xe887('0x16')]+_0x22819d[_0xe887('0x27')]+_0x2fd6fe[_0xe887('0x27')]+0x2:_0x32b34b[_0xe887('0x16')]+_0x1b7d3a+0x1;_0x22819d[_0xe887('0x3a')](_0x1b7d3a,0x0,{'type':_0x3794ca[_0xe887('0x12')],'app':'GotoIfTime','appdata':_0x1b9d1b[_0x1b7d3a]+'?'+_0x3794ca[_0xe887('0x19')]+',${EXTEN},'+_0x534418+':'+_0x3794ca[_0xe887('0x19')]+_0xe887('0x3b')+_0x4eed24,'exten':_0x3794ca['exten'],'context':_0x3794ca[_0xe887('0x19')],'priority':_0x32b34b[_0xe887('0x16')]+_0x1b7d3a,'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});}_0x3794ca[_0xe887('0x16')]=_0x22819d['length']?_[_0xe887('0x3c')](_0x22819d)['priority']+0x1:_0x32b34b['priority'];_0x32b34b['priority']=(_0x2fd6fe['length']?_[_0xe887('0x3c')](_0x2fd6fe)[_0xe887('0x16')]:_0x3794ca[_0xe887('0x16')])+0x1;_0x32b34b['extensions']=_[_0xe887('0x3d')](_0x32b34b[_0xe887('0xf')],_0x22819d,[_0x3794ca],_0x2fd6fe);}_0x32b34b[_0xe887('0xf')]['push']({'type':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x12')],'app':_0xe887('0x3e'),'exten':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x9')],'context':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x19')],'priority':_0x32b34b[_0xe887('0x16')],'VoiceExtensionId':_0x3c9b11[_0x2fed99][0x0][_0xe887('0x17')]});_0x3ddb79[_0xe887('0x11')](_0x3c9b11[_0x2fed99][0x0]['VoiceExtensionId']);_0xa72df=_[_0xe887('0x3d')](_0xa72df,_0x32b34b[_0xe887('0xf')]);}}return _0x585bf4[_0xe887('0x3f')](function(_0x500e83){return _0x585bf4['models']['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x3ddb79}},'transaction':_0x500e83})[_0xe887('0x4')](function(_0x319c74){return _0x585bf4[_0xe887('0x2')]['VoiceExtension']['bulkCreate'](_['sortBy'](_0xa72df,_0xe887('0x16')),{'transaction':_0x500e83});});});})[_0xe887('0x40')](function(_0x2860f2){console['error'](_0x2860f2);});}exports[_0xe887('0x41')]=rewrite;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc43b=['Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','defaults','redis','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20binding\x20parameters!','zipObject','split','error','contact','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','isValid','email','email\x20format\x20is\x20not\x20valid!','ListId','find','Duplicate\x20Contact','CmContact','create','keys','length','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','cmContact','checkHopper','inspect','insert','into','cm_hopper','ContactId','createdAt','updatedAt','select','field','NOW()','from','cm_contacts','deletedAt\x20IS\x20NULL','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','toString','fromQuery','scheduledAt','id\x20IN\x20?','str','calleridnum','\x20=\x20?','cm_hopper_black','VoiceQueue','dialCheckDuplicateType','Lists','then','get','always','sequelize','query','VoiceQueueId','all','findAll','outbound','CmList','BlackLists','Campaign','onlyIfOpen','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','stringify','emit','contact:csv_','resume','resolve','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','duplicate','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error'];(function(_0x4d613c,_0x55f220){var _0x301fe3=function(_0x5eec0b){while(--_0x5eec0b){_0x4d613c['push'](_0x4d613c['shift']());}};_0x301fe3(++_0x55f220);}(_0xc43b,0x71));var _0xbc43=function(_0x35885a,_0x42fed7){_0x35885a=_0x35885a-0x0;var _0xe86249=_0xc43b[_0x35885a];return _0xe86249;};'use strict';var BPromise=require(_0xbc43('0x0'));var util=require(_0xbc43('0x1'));var _=require('lodash');var fs=require('fs');var squel=require(_0xbc43('0x2'));var Papa=require(_0xbc43('0x3'));var Redis=require(_0xbc43('0x4'));var db=require(_0xbc43('0x5'))['db'];var config=require(_0xbc43('0x6'));var logger=require(_0xbc43('0x7'))(_0xbc43('0x8'));config['redis']=_[_0xbc43('0x9')](config[_0xbc43('0xa')],{'host':_0xbc43('0xb'),'port':0x18eb});var socket=require(_0xbc43('0xc'))(new Redis(config['redis']));require(_0xbc43('0xd'))[_0xbc43('0xe')](socket);try{if(!process[_0xbc43('0xf')][0x2]||process[_0xbc43('0xf')][0x2]===_0xbc43('0x10')||process[_0xbc43('0xf')][0x2]===_0xbc43('0x11')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process['argv'][0x2];if(!process[_0xbc43('0xf')][0x3]||process[_0xbc43('0xf')][0x3]===_0xbc43('0x10')||process['argv'][0x3]===_0xbc43('0x11')||!process['argv'][0x4]||process[_0xbc43('0xf')][0x4]===_0xbc43('0x10')||process[_0xbc43('0xf')][0x4]==='null'){throw new Error(_0xbc43('0x12'));}var FIELDS=_[_0xbc43('0x13')](process['argv'][0x3][_0xbc43('0x14')](','),process[_0xbc43('0xf')][0x4][_0xbc43('0x14')](','));if(!process[_0xbc43('0xf')][0x5]||process[_0xbc43('0xf')][0x5]===_0xbc43('0x10')||process['argv'][0x5]===_0xbc43('0x11')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process[_0xbc43('0xf')][0x5];var COMPANYID=process[_0xbc43('0xf')][0x6]&&process[_0xbc43('0xf')][0x6]!==_0xbc43('0x10')&&process[_0xbc43('0xf')][0x6]!==_0xbc43('0x11')?process['argv'][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0xbc43('0xf')][0x7]!==_0xbc43('0x10')&&process[_0xbc43('0xf')][0x7]!==_0xbc43('0x11')?process[_0xbc43('0xf')][0x7]:null;if(!process[_0xbc43('0xf')][0x8]||process[_0xbc43('0xf')][0x8]===_0xbc43('0x10')||process[_0xbc43('0xf')][0x8]===_0xbc43('0x11')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0xbc43('0xf')][0x8];}catch(_0x2b39c4){logger[_0xbc43('0x15')](_0x2b39c4);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x40c7e2,_0x32c8a4,_0x414778,_0x7700bc){var _0x1970f5={'message':_0x32c8a4};_0x1970f5[_0x40c7e2]=!![];if(_0x414778){_0x1970f5[_0xbc43('0x16')]=_0x414778;}if(_0x7700bc){_0x1970f5['index']=_0x7700bc;}return _0x1970f5;}function isEmail(_0x3bbc1f){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/['test'](_0x3bbc1f);}function checkRow(_0x4a47eb,_0x20b685,_0x2cf65b){return new BPromise(function(_0x49a600,_0x12aba4){if(_[_0xbc43('0x17')](_0x4a47eb)){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x18'),null,_0x2cf65b));}if(_0x4a47eb[_0xbc43('0x19')]&&_0x4a47eb[_0xbc43('0x19')]['length']){var _0x172186=_[_0xbc43('0x1a')](_0x4a47eb[_0xbc43('0x19')],_0xbc43('0x1b'))[_0xbc43('0x1c')](';');return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0x172186,null,_0x2cf65b));}var _0x87985c={};for(var _0x28ec98 in FIELDS){if(FIELDS[_0xbc43('0x1d')](_0x28ec98)&&FIELDS[_0x28ec98]){_0x87985c[_0x28ec98]=_0x4a47eb[_0xbc43('0x1e')][0x0][FIELDS[_0x28ec98]]||_0x4a47eb['data'][0x0]['\ufeff'+FIELDS[_0x28ec98]];}}if(!_0x87985c[_0xbc43('0x1f')]){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x20'),null,_0x2cf65b));}if(!_0x87985c[_0xbc43('0x21')]){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x22'),null,_0x2cf65b));}if(_0x87985c['birthDate']){var _0x193c9f=moment(_0x87985c[_0xbc43('0x23')],'YYYY-MM-DD');if(!_0x193c9f[_0xbc43('0x24')]()){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),'birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x2cf65b));}}if(_0x87985c[_0xbc43('0x25')]){if(!isEmail(_0x87985c[_0xbc43('0x25')])){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x26'),null,_0x2cf65b));}}_0x87985c[_0xbc43('0x27')]=LISTID;_0x87985c['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x20b685){var _0x1805ed={};for(var _0x37a7d1=0x0,_0x4415e4=DUPLICATES['length'];_0x37a7d1<_0x4415e4;_0x37a7d1+=0x1){_0x1805ed[DUPLICATES[_0x37a7d1]]=_0x87985c[DUPLICATES[_0x37a7d1]];}var _0x13bc71=_[_0xbc43('0x28')](_0x20b685,_0x1805ed);if(_0x13bc71){return _0x12aba4(handleCheckRowError('duplicate',_0xbc43('0x29'),_0x13bc71,_0x2cf65b));}}return db[_0xbc43('0x2a')][_0xbc43('0x2b')](_0x87985c,{'raw':!![],'hooks':![],'fields':_[_0xbc43('0x2c')](_0x87985c)})['then'](function(_0x15569b){if(DUPLICATES&&DUPLICATES[_0xbc43('0x2d')]&&_0x20b685){_0x20b685[_0xbc43('0x2e')](_[_0xbc43('0x2f')](_0x87985c,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x15569b['id'];return _0x49a600();})[_0xbc43('0x30')](function(_0x564af6){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x31')+(_0x564af6[_0xbc43('0x1b')]||JSON['stringify'](_0x564af6)),null,_0x2cf65b));});});}function checkHopper(){function _0x1965ec(){return function(_0xce577b){logger[_0xbc43('0x15')](_0xbc43('0x32'),_0xbc43('0x33'),util[_0xbc43('0x34')](_0xce577b,{'showHidden':![],'depth':null}));};}var _0x12da7c=function(_0x2cf4f3,_0x126b78){var _0x522516=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x37'))['fromQuery']([_0xbc43('0x21'),'scheduledAt',_0xbc43('0x38'),_0xbc43('0x27'),_0x126b78,_0xbc43('0x39'),_0xbc43('0x3a')],squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'),_0xbc43('0x21'))[_0xbc43('0x3c')](_0xbc43('0x3d'),'scheduledAt')[_0xbc43('0x3c')]('id',_0xbc43('0x38'))[_0xbc43('0x3c')](LISTID['toString'](),_0xbc43('0x27'))['field'](_0x2cf4f3['id']['toString'](),_0x126b78)[_0xbc43('0x3c')]('NOW()',_0xbc43('0x39'))[_0xbc43('0x3c')](_0xbc43('0x3d'),_0xbc43('0x3a'))[_0xbc43('0x3e')](_0xbc43('0x3f'))['where'](_0xbc43('0x40'))[_0xbc43('0x41')](_0xbc43('0x42'),LISTID['toString']())[_0xbc43('0x41')](_0xbc43('0x43'))['where'](_0xbc43('0x44'),squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'))[_0xbc43('0x3e')]('cm_hopper')[_0xbc43('0x41')](_0x126b78+'\x20=\x20?',_0x2cf4f3['id']['toString']())))[_0xbc43('0x45')]();return _0x522516;};var _0x3cd1e8=function(_0x3e7d98,_0x36d51b){var _0x3fde87=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x37'))[_0xbc43('0x46')]([_0xbc43('0x21'),'scheduledAt',_0xbc43('0x38'),_0xbc43('0x27'),_0x36d51b,_0xbc43('0x39'),_0xbc43('0x3a')],squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'),'phone')['field'](_0xbc43('0x3d'),_0xbc43('0x47'))[_0xbc43('0x3c')]('id',_0xbc43('0x38'))['field'](LISTID[_0xbc43('0x45')](),_0xbc43('0x27'))[_0xbc43('0x3c')](_0x3e7d98['id'][_0xbc43('0x45')](),_0x36d51b)[_0xbc43('0x3c')](_0xbc43('0x3d'),_0xbc43('0x39'))['field'](_0xbc43('0x3d'),_0xbc43('0x3a'))[_0xbc43('0x3e')]('cm_contacts')['where'](_0xbc43('0x40'))[_0xbc43('0x41')](_0xbc43('0x42'),LISTID['toString']())['where'](_0xbc43('0x48'),squel[_0xbc43('0x49')](hopperContacts))['where'](_0xbc43('0x43'))[_0xbc43('0x41')]('phone\x20NOT\x20IN\x20(?)',squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x4a'))[_0xbc43('0x3e')]('cm_hopper_final')[_0xbc43('0x41')](_0x36d51b+_0xbc43('0x4b'),_0x3e7d98['id']['toString']()))[_0xbc43('0x41')](_0xbc43('0x44'),squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'))['from'](_0xbc43('0x37'))[_0xbc43('0x41')](_0x36d51b+_0xbc43('0x4b'),_0x3e7d98['id']['toString']())))[_0xbc43('0x45')]();return _0x3fde87;};function _0x1ebce1(_0x194887,_0x347eb1){var _0x316280=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x37'))[_0xbc43('0x46')](['phone',_0xbc43('0x47'),'ContactId',_0xbc43('0x27'),_0x347eb1,_0xbc43('0x39'),_0xbc43('0x3a')],squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')]('phone',_0xbc43('0x21'))['field'](_0xbc43('0x3d'),_0xbc43('0x47'))[_0xbc43('0x3c')]('id','ContactId')[_0xbc43('0x3c')](LISTID[_0xbc43('0x45')](),_0xbc43('0x27'))[_0xbc43('0x3c')](_0x194887['id']['toString'](),_0x347eb1)[_0xbc43('0x3c')](_0xbc43('0x3d'),'createdAt')[_0xbc43('0x3c')](_0xbc43('0x3d'),_0xbc43('0x3a'))[_0xbc43('0x3e')](_0xbc43('0x3f'))[_0xbc43('0x41')]('deletedAt\x20IS\x20NULL')[_0xbc43('0x41')](_0xbc43('0x42'),LISTID[_0xbc43('0x45')]())[_0xbc43('0x41')](_0xbc43('0x48'),squel[_0xbc43('0x49')](hopperContacts))[_0xbc43('0x41')](_0xbc43('0x43')))[_0xbc43('0x45')]();return _0x316280;}function _0x80b669(_0x3c4fff,_0x163b21){var _0x257130=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x4c'))[_0xbc43('0x46')]([_0xbc43('0x21'),_0xbc43('0x38'),'ListId',_0x163b21,_0xbc43('0x39'),_0xbc43('0x3a')],squel['select']()['field'](_0xbc43('0x21'),_0xbc43('0x21'))[_0xbc43('0x3c')]('id','ContactId')['field'](LISTID[_0xbc43('0x45')](),_0xbc43('0x27'))[_0xbc43('0x3c')](_0x3c4fff['id'][_0xbc43('0x45')](),_0x163b21)[_0xbc43('0x3c')](_0xbc43('0x3d'),'createdAt')[_0xbc43('0x3c')]('NOW()',_0xbc43('0x3a'))[_0xbc43('0x3e')](_0xbc43('0x3f'))[_0xbc43('0x41')](_0xbc43('0x40'))[_0xbc43('0x41')](_0xbc43('0x42'),LISTID['toString']())[_0xbc43('0x41')](_0xbc43('0x48'),squel[_0xbc43('0x49')](hopperContacts))[_0xbc43('0x41')](_0xbc43('0x43')))[_0xbc43('0x45')]();return _0x257130;}return db[_0xbc43('0x4d')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0xbc43('0x4e')],'include':[{'model':db['CmList'],'as':_0xbc43('0x4f'),'where':{'id':LISTID}}]})[_0xbc43('0x50')](function(_0x305dd5){var _0x49857f=[];if(_0x305dd5){var _0x392aaa;for(var _0x222487=0x0,_0x150962;_0x222487<_0x305dd5['length'];_0x222487+=0x1){_0x150962=_0x305dd5[_0x222487][_0xbc43('0x51')]({'plain':!![]});switch(_0x150962[_0xbc43('0x4e')]){case _0xbc43('0x52'):_0x49857f[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x3cd1e8(_0x150962,_0xbc43('0x55')))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));break;case'onlyIfOpen':_0x49857f[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x12da7c(_0x150962,_0xbc43('0x55')))[_0xbc43('0x50')](function(){})['catch'](_0x1965ec()));break;default:_0x49857f[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x1ebce1(_0x150962,'VoiceQueueId'))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));}}}return _0x49857f;})[_0xbc43('0x56')]()['then'](function(){return db[_0xbc43('0x4d')][_0xbc43('0x57')]({'where':{'type':_0xbc43('0x58')},'attributes':['id'],'include':[{'model':db[_0xbc43('0x59')],'as':_0xbc43('0x5a'),'where':{'id':LISTID}}]})[_0xbc43('0x50')](function(_0x39c214){var _0x50738=[];if(_0x39c214){var _0x575c4c;for(var _0x4b240d=0x0,_0x427efb;_0x4b240d<_0x39c214[_0xbc43('0x2d')];_0x4b240d+=0x1){_0x427efb=_0x39c214[_0x4b240d][_0xbc43('0x51')]({'plain':!![]});_0x50738[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x80b669(_0x427efb,_0xbc43('0x55')))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));}}return _0x50738;})[_0xbc43('0x56')]();})['then'](function(){return db[_0xbc43('0x5b')][_0xbc43('0x57')]({'attributes':['id',_0xbc43('0x4e')],'include':[{'model':db[_0xbc43('0x59')],'as':_0xbc43('0x4f'),'where':{'id':LISTID}}]})[_0xbc43('0x50')](function(_0x178ee7){var _0x4a2677=[];if(_0x178ee7){for(var _0x5b3d85=0x0,_0x1b74b5;_0x5b3d85<_0x178ee7[_0xbc43('0x2d')];_0x5b3d85+=0x1){_0x1b74b5=_0x178ee7[_0x5b3d85]['get']({'plain':!![]});switch(_0x1b74b5[_0xbc43('0x4e')]){case _0xbc43('0x52'):_0x4a2677[_0xbc43('0x2e')](db[_0xbc43('0x53')]['query'](_0x3cd1e8(_0x1b74b5,'CampaignId'))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));break;case _0xbc43('0x5c'):_0x4a2677[_0xbc43('0x2e')](db['sequelize'][_0xbc43('0x54')](_0x12da7c(_0x1b74b5,_0xbc43('0x5d')))[_0xbc43('0x50')](function(){})['catch'](_0x1965ec()));break;default:_0x4a2677[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x1ebce1(_0x1b74b5,_0xbc43('0x5d')))['then'](function(){})[_0xbc43('0x30')](_0x1965ec()));}}}return _0x4a2677;})[_0xbc43('0x56')]();})[_0xbc43('0x50')](function(){return db[_0xbc43('0x5b')][_0xbc43('0x57')]({'attributes':['id'],'include':[{'model':db[_0xbc43('0x59')],'as':'BlackLists','where':{'id':LISTID}}]})['then'](function(_0x5365d2){var _0x57e809=[];if(_0x5365d2){for(var _0x17e1f=0x0,_0x327f00;_0x17e1f<_0x5365d2[_0xbc43('0x2d')];_0x17e1f+=0x1){_0x327f00=_0x5365d2[_0x17e1f]['get']({'plain':!![]});_0x57e809['push'](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x80b669(_0x327f00,_0xbc43('0x5d')))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));}}return _0x57e809;})['all']();})[_0xbc43('0x30')](function(_0x58e81d){logger['error'](_0xbc43('0x5e'),_0xbc43('0x5f'),_0x58e81d[_0xbc43('0x1b')]);});}var processPromises=function(_0x268153){return BPromise['all'](promises)[_0xbc43('0x50')](function(_0x4d25cc){})[_0xbc43('0x30')](function(_0x2405b){logger['error'](_0xbc43('0x60'),JSON[_0xbc43('0x61')](_0x2405b));})['finally'](function(){socket[_0xbc43('0x62')](_0xbc43('0x63')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x268153){return _0x268153[_0xbc43('0x64')]();}});};var endCsv=function(){return BPromise[_0xbc43('0x65')]()[_0xbc43('0x50')](function(){if(hopperContacts){return checkHopper();}})[_0xbc43('0x50')](function(){socket[_0xbc43('0x62')](_0xbc43('0x63')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x1ae5d5){logger[_0xbc43('0x15')]('Unable\x20to\x20delete\x20temp\x20file:',JSON[_0xbc43('0x61')](_0x1ae5d5));}finally{process[_0xbc43('0x66')](0x0);}});};process['on'](_0xbc43('0x67'),function(){logger[_0xbc43('0x68')](_0xbc43('0x69'));endCsv();});function main(){return BPromise[_0xbc43('0x65')]()[_0xbc43('0x50')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xbc43('0x14')](',');return db[_0xbc43('0x2a')][_0xbc43('0x57')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xbc43('0x50')](function(_0x4912dd){var _0x7467f2=fs[_0xbc43('0x6a')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xbc43('0x6b')](_0x7467f2,{'header':!![],'skipEmptyLines':!![],'step':function(_0x4b0d8a,_0x2584fc){total+=0x1;var _0x30c3d1=total;promises['push'](checkRow(_0x4b0d8a,_0x4912dd,_0x30c3d1)[_0xbc43('0x50')](function(){success+=0x1;})[_0xbc43('0x30')](function(_0x35de60){if(_0x35de60['error']){errors+=0x1;delete _0x35de60[_0xbc43('0x15')];}else if(_0x35de60[_0xbc43('0x6c')]){duplicates+=0x1;delete _0x35de60[_0xbc43('0x6c')];}rows['push'](_0x35de60);}));if(total%0xc8===0x0){_0x2584fc['pause']();return processPromises(_0x2584fc);}},'complete':function(){return processPromises()[_0xbc43('0x50')](function(){logger[_0xbc43('0x68')](_0xbc43('0x6d'));endCsv();});},'error':function(_0x33c6cb,_0x37f674){logger[_0xbc43('0x68')](_0xbc43('0x6e'),JSON[_0xbc43('0x61')](_0x33c6cb));endCsv();}});})[_0xbc43('0x30')](function(_0x99af07){logger[_0xbc43('0x15')](_0xbc43('0x6f'),JSON['stringify'](_0x99af07));});}main();
\ No newline at end of file
+var _0x8d7a=['stringify','cmContact','checkHopper','insert','into','cm_hopper','updatedAt','select','field','NOW()','scheduledAt','ContactId','toString','createdAt','from','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','where','\x20=\x20?','id\x20IN\x20?','phone\x20NOT\x20IN\x20(?)','calleridnum','cm_hopper_final','cm_contacts','str','cm_hopper_black','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','get','always','onlyIfOpen','sequelize','query','VoiceQueueId','all','BlackLists','Campaign','Lists','CampaignId','cmContact,\x20%s,\x20%s','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','resolve','Unable\x20to\x20delete\x20temp\x20file:','exit','CSV\x20import\x20process\x20stopped!','parse','info','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','lodash','papaparse','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','contact','index','test','error','errors','length','map','message','join','data','firstName','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','then','push','catch','Error\x20while\x20creating\x20contact:\x20'];(function(_0x5dffac,_0x291be7){var _0x1861b1=function(_0x2d17bc){while(--_0x2d17bc){_0x5dffac['push'](_0x5dffac['shift']());}};_0x1861b1(++_0x291be7);}(_0x8d7a,0x1dd));var _0xa8d7=function(_0x2c7b42,_0x42d8c6){_0x2c7b42=_0x2c7b42-0x0;var _0x36146d=_0x8d7a[_0x2c7b42];return _0x36146d;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require(_0xa8d7('0x0'));var fs=require('fs');var squel=require('squel');var Papa=require(_0xa8d7('0x1'));var Redis=require('ioredis');var db=require(_0xa8d7('0x2'))['db'];var config=require(_0xa8d7('0x3'));var logger=require(_0xa8d7('0x4'))('api');config[_0xa8d7('0x5')]=_[_0xa8d7('0x6')](config[_0xa8d7('0x5')],{'host':_0xa8d7('0x7'),'port':0x18eb});var socket=require(_0xa8d7('0x8'))(new Redis(config[_0xa8d7('0x5')]));require(_0xa8d7('0x9'))[_0xa8d7('0xa')](socket);try{if(!process[_0xa8d7('0xb')][0x2]||process[_0xa8d7('0xb')][0x2]===_0xa8d7('0xc')||process[_0xa8d7('0xb')][0x2]===_0xa8d7('0xd')){throw new Error(_0xa8d7('0xe'));}var FILEPATH=process[_0xa8d7('0xb')][0x2];if(!process[_0xa8d7('0xb')][0x3]||process[_0xa8d7('0xb')][0x3]===_0xa8d7('0xc')||process[_0xa8d7('0xb')][0x3]===_0xa8d7('0xd')||!process['argv'][0x4]||process['argv'][0x4]===_0xa8d7('0xc')||process[_0xa8d7('0xb')][0x4]===_0xa8d7('0xd')){throw new Error(_0xa8d7('0xf'));}var FIELDS=_[_0xa8d7('0x10')](process['argv'][0x3][_0xa8d7('0x11')](','),process[_0xa8d7('0xb')][0x4]['split'](','));if(!process[_0xa8d7('0xb')][0x5]||process[_0xa8d7('0xb')][0x5]===_0xa8d7('0xc')||process[_0xa8d7('0xb')][0x5]===_0xa8d7('0xd')){throw new Error(_0xa8d7('0x12'));}var LISTID=process[_0xa8d7('0xb')][0x5];var COMPANYID=process[_0xa8d7('0xb')][0x6]&&process['argv'][0x6]!==_0xa8d7('0xc')&&process['argv'][0x6]!==_0xa8d7('0xd')?process[_0xa8d7('0xb')][0x6]:null;var DUPLICATES=process[_0xa8d7('0xb')][0x7]&&process[_0xa8d7('0xb')][0x7]!==_0xa8d7('0xc')&&process[_0xa8d7('0xb')][0x7]!=='null'?process[_0xa8d7('0xb')][0x7]:null;if(!process['argv'][0x8]||process[_0xa8d7('0xb')][0x8]==='undefined'||process[_0xa8d7('0xb')][0x8]==='null'){throw new Error(_0xa8d7('0x13'));}var SOCKET_TIMESTAMP=process[_0xa8d7('0xb')][0x8];}catch(_0x173f57){logger['error'](_0x173f57);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x72977c,_0x58b6ee,_0x120055,_0x499b5d){var _0x43a800={'message':_0x58b6ee};_0x43a800[_0x72977c]=!![];if(_0x120055){_0x43a800[_0xa8d7('0x14')]=_0x120055;}if(_0x499b5d){_0x43a800[_0xa8d7('0x15')]=_0x499b5d;}return _0x43a800;}function isEmail(_0x343bba){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xa8d7('0x16')](_0x343bba);}function checkRow(_0x1903ec,_0x45d27d,_0x1b546f){return new BPromise(function(_0x1fdb8b,_0x164182){if(_['isNil'](_0x1903ec)){return _0x164182(handleCheckRowError(_0xa8d7('0x17'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x1b546f));}if(_0x1903ec['errors']&&_0x1903ec[_0xa8d7('0x18')][_0xa8d7('0x19')]){var _0x5a1da5=_[_0xa8d7('0x1a')](_0x1903ec['errors'],_0xa8d7('0x1b'))[_0xa8d7('0x1c')](';');return _0x164182(handleCheckRowError(_0xa8d7('0x17'),_0x5a1da5,null,_0x1b546f));}var _0x50ff48={};for(var _0x35d9c5 in FIELDS){if(FIELDS['hasOwnProperty'](_0x35d9c5)&&FIELDS[_0x35d9c5]){_0x50ff48[_0x35d9c5]=_0x1903ec[_0xa8d7('0x1d')][0x0][FIELDS[_0x35d9c5]]||_0x1903ec[_0xa8d7('0x1d')][0x0]['\ufeff'+FIELDS[_0x35d9c5]];}}if(!_0x50ff48[_0xa8d7('0x1e')]){return _0x164182(handleCheckRowError('error','firstName\x20not\x20specified!',null,_0x1b546f));}if(!_0x50ff48[_0xa8d7('0x1f')]){return _0x164182(handleCheckRowError('error',_0xa8d7('0x20'),null,_0x1b546f));}if(_0x50ff48[_0xa8d7('0x21')]){var _0x390528=moment(_0x50ff48[_0xa8d7('0x21')],_0xa8d7('0x22'));if(!_0x390528['isValid']()){return _0x164182(handleCheckRowError('error',_0xa8d7('0x23'),null,_0x1b546f));}}if(_0x50ff48[_0xa8d7('0x24')]){if(!isEmail(_0x50ff48['email'])){return _0x164182(handleCheckRowError(_0xa8d7('0x17'),'email\x20format\x20is\x20not\x20valid!',null,_0x1b546f));}}_0x50ff48[_0xa8d7('0x25')]=LISTID;_0x50ff48[_0xa8d7('0x26')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x45d27d){var _0x3311ef={};for(var _0x5df1c0=0x0,_0x2a9afb=DUPLICATES[_0xa8d7('0x19')];_0x5df1c0<_0x2a9afb;_0x5df1c0+=0x1){_0x3311ef[DUPLICATES[_0x5df1c0]]=_0x50ff48[DUPLICATES[_0x5df1c0]];}var _0x276703=_[_0xa8d7('0x27')](_0x45d27d,_0x3311ef);if(_0x276703){return _0x164182(handleCheckRowError(_0xa8d7('0x28'),_0xa8d7('0x29'),_0x276703,_0x1b546f));}}return db[_0xa8d7('0x2a')][_0xa8d7('0x2b')](_0x50ff48,{'raw':!![],'hooks':![],'fields':_['keys'](_0x50ff48)})[_0xa8d7('0x2c')](function(_0x460814){if(DUPLICATES&&DUPLICATES[_0xa8d7('0x19')]&&_0x45d27d){_0x45d27d[_0xa8d7('0x2d')](_['pick'](_0x50ff48,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x460814['id'];return _0x1fdb8b();})[_0xa8d7('0x2e')](function(_0x7bf759){return _0x164182(handleCheckRowError(_0xa8d7('0x17'),_0xa8d7('0x2f')+(_0x7bf759['message']||JSON[_0xa8d7('0x30')](_0x7bf759)),null,_0x1b546f));});});}function checkHopper(){function _0x2610f3(){return function(_0x3a9224){logger[_0xa8d7('0x17')](_0xa8d7('0x31'),_0xa8d7('0x32'),util['inspect'](_0x3a9224,{'showHidden':![],'depth':null}));};}var _0x5671b7=function(_0x4ceb72,_0x5262ff){var _0x45d284=squel[_0xa8d7('0x33')]()[_0xa8d7('0x34')](_0xa8d7('0x35'))['fromQuery']([_0xa8d7('0x1f'),'scheduledAt','ContactId',_0xa8d7('0x25'),_0x5262ff,'createdAt',_0xa8d7('0x36')],squel[_0xa8d7('0x37')]()['field'](_0xa8d7('0x1f'),_0xa8d7('0x1f'))[_0xa8d7('0x38')](_0xa8d7('0x39'),_0xa8d7('0x3a'))['field']('id',_0xa8d7('0x3b'))[_0xa8d7('0x38')](LISTID[_0xa8d7('0x3c')](),'ListId')[_0xa8d7('0x38')](_0x4ceb72['id']['toString'](),_0x5262ff)[_0xa8d7('0x38')](_0xa8d7('0x39'),_0xa8d7('0x3d'))[_0xa8d7('0x38')](_0xa8d7('0x39'),_0xa8d7('0x36'))[_0xa8d7('0x3e')]('cm_contacts')['where'](_0xa8d7('0x3f'))['where'](_0xa8d7('0x40'),LISTID[_0xa8d7('0x3c')]())[_0xa8d7('0x41')]('phone\x20IS\x20NOT\x20NULL')[_0xa8d7('0x41')]('phone\x20NOT\x20IN\x20(?)',squel[_0xa8d7('0x37')]()[_0xa8d7('0x38')](_0xa8d7('0x1f'))[_0xa8d7('0x3e')]('cm_hopper')[_0xa8d7('0x41')](_0x5262ff+_0xa8d7('0x42'),_0x4ceb72['id'][_0xa8d7('0x3c')]())))['toString']();return _0x45d284;};var _0x555744=function(_0x241a92,_0x19e11a){var _0x3e96c5=squel[_0xa8d7('0x33')]()[_0xa8d7('0x34')]('cm_hopper')['fromQuery']([_0xa8d7('0x1f'),_0xa8d7('0x3a'),'ContactId',_0xa8d7('0x25'),_0x19e11a,_0xa8d7('0x3d'),_0xa8d7('0x36')],squel['select']()[_0xa8d7('0x38')]('phone',_0xa8d7('0x1f'))[_0xa8d7('0x38')]('NOW()',_0xa8d7('0x3a'))[_0xa8d7('0x38')]('id',_0xa8d7('0x3b'))[_0xa8d7('0x38')](LISTID[_0xa8d7('0x3c')](),_0xa8d7('0x25'))['field'](_0x241a92['id']['toString'](),_0x19e11a)[_0xa8d7('0x38')](_0xa8d7('0x39'),_0xa8d7('0x3d'))[_0xa8d7('0x38')](_0xa8d7('0x39'),'updatedAt')[_0xa8d7('0x3e')]('cm_contacts')[_0xa8d7('0x41')](_0xa8d7('0x3f'))[_0xa8d7('0x41')]('ListId\x20=\x20?',LISTID[_0xa8d7('0x3c')]())[_0xa8d7('0x41')](_0xa8d7('0x43'),squel['str'](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL')[_0xa8d7('0x41')](_0xa8d7('0x44'),squel[_0xa8d7('0x37')]()[_0xa8d7('0x38')](_0xa8d7('0x45'))['from'](_0xa8d7('0x46'))[_0xa8d7('0x41')](_0x19e11a+_0xa8d7('0x42'),_0x241a92['id'][_0xa8d7('0x3c')]()))[_0xa8d7('0x41')](_0xa8d7('0x44'),squel[_0xa8d7('0x37')]()[_0xa8d7('0x38')]('phone')['from'](_0xa8d7('0x35'))[_0xa8d7('0x41')](_0x19e11a+_0xa8d7('0x42'),_0x241a92['id']['toString']())))[_0xa8d7('0x3c')]();return _0x3e96c5;};function _0x5879a1(_0x518bee,_0x2ef5ea){var _0x34af7d=squel['insert']()['into'](_0xa8d7('0x35'))['fromQuery']([_0xa8d7('0x1f'),_0xa8d7('0x3a'),_0xa8d7('0x3b'),_0xa8d7('0x25'),_0x2ef5ea,_0xa8d7('0x3d'),_0xa8d7('0x36')],squel[_0xa8d7('0x37')]()[_0xa8d7('0x38')](_0xa8d7('0x1f'),_0xa8d7('0x1f'))[_0xa8d7('0x38')](_0xa8d7('0x39'),_0xa8d7('0x3a'))[_0xa8d7('0x38')]('id',_0xa8d7('0x3b'))[_0xa8d7('0x38')](LISTID[_0xa8d7('0x3c')](),_0xa8d7('0x25'))[_0xa8d7('0x38')](_0x518bee['id'][_0xa8d7('0x3c')](),_0x2ef5ea)[_0xa8d7('0x38')]('NOW()',_0xa8d7('0x3d'))[_0xa8d7('0x38')](_0xa8d7('0x39'),_0xa8d7('0x36'))[_0xa8d7('0x3e')](_0xa8d7('0x47'))[_0xa8d7('0x41')](_0xa8d7('0x3f'))['where']('ListId\x20=\x20?',LISTID[_0xa8d7('0x3c')]())[_0xa8d7('0x41')](_0xa8d7('0x43'),squel[_0xa8d7('0x48')](hopperContacts))[_0xa8d7('0x41')]('phone\x20IS\x20NOT\x20NULL'))[_0xa8d7('0x3c')]();return _0x34af7d;}function _0x272cd2(_0x34a1d0,_0x5ca4ca){var _0x5f38ab=squel['insert']()['into'](_0xa8d7('0x49'))['fromQuery']([_0xa8d7('0x1f'),_0xa8d7('0x3b'),'ListId',_0x5ca4ca,_0xa8d7('0x3d'),'updatedAt'],squel['select']()[_0xa8d7('0x38')](_0xa8d7('0x1f'),_0xa8d7('0x1f'))['field']('id','ContactId')[_0xa8d7('0x38')](LISTID[_0xa8d7('0x3c')](),_0xa8d7('0x25'))[_0xa8d7('0x38')](_0x34a1d0['id']['toString'](),_0x5ca4ca)['field']('NOW()',_0xa8d7('0x3d'))[_0xa8d7('0x38')](_0xa8d7('0x39'),'updatedAt')[_0xa8d7('0x3e')](_0xa8d7('0x47'))[_0xa8d7('0x41')](_0xa8d7('0x3f'))['where']('ListId\x20=\x20?',LISTID['toString']())[_0xa8d7('0x41')]('id\x20IN\x20?',squel[_0xa8d7('0x48')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL'))[_0xa8d7('0x3c')]();return _0x5f38ab;}return db[_0xa8d7('0x4a')][_0xa8d7('0x4b')]({'where':{'type':_0xa8d7('0x4c')},'attributes':['id',_0xa8d7('0x4d')],'include':[{'model':db[_0xa8d7('0x4e')],'as':'Lists','where':{'id':LISTID}}]})['then'](function(_0xca57d1){var _0x268d32=[];if(_0xca57d1){var _0x45c4b2;for(var _0x4bf5c2=0x0,_0x33dbda;_0x4bf5c2<_0xca57d1['length'];_0x4bf5c2+=0x1){_0x33dbda=_0xca57d1[_0x4bf5c2][_0xa8d7('0x4f')]({'plain':!![]});switch(_0x33dbda['dialCheckDuplicateType']){case _0xa8d7('0x50'):_0x268d32[_0xa8d7('0x2d')](db['sequelize']['query'](_0x555744(_0x33dbda,'VoiceQueueId'))['then'](function(){})[_0xa8d7('0x2e')](_0x2610f3()));break;case _0xa8d7('0x51'):_0x268d32[_0xa8d7('0x2d')](db[_0xa8d7('0x52')][_0xa8d7('0x53')](_0x5671b7(_0x33dbda,_0xa8d7('0x54')))[_0xa8d7('0x2c')](function(){})[_0xa8d7('0x2e')](_0x2610f3()));break;default:_0x268d32[_0xa8d7('0x2d')](db[_0xa8d7('0x52')][_0xa8d7('0x53')](_0x5879a1(_0x33dbda,_0xa8d7('0x54')))[_0xa8d7('0x2c')](function(){})[_0xa8d7('0x2e')](_0x2610f3()));}}}return _0x268d32;})[_0xa8d7('0x55')]()[_0xa8d7('0x2c')](function(){return db[_0xa8d7('0x4a')][_0xa8d7('0x4b')]({'where':{'type':_0xa8d7('0x4c')},'attributes':['id'],'include':[{'model':db[_0xa8d7('0x4e')],'as':_0xa8d7('0x56'),'where':{'id':LISTID}}]})[_0xa8d7('0x2c')](function(_0x4affad){var _0x87f575=[];if(_0x4affad){var _0x31e415;for(var _0x1ae337=0x0,_0x18420c;_0x1ae337<_0x4affad[_0xa8d7('0x19')];_0x1ae337+=0x1){_0x18420c=_0x4affad[_0x1ae337][_0xa8d7('0x4f')]({'plain':!![]});_0x87f575[_0xa8d7('0x2d')](db[_0xa8d7('0x52')][_0xa8d7('0x53')](_0x272cd2(_0x18420c,_0xa8d7('0x54')))[_0xa8d7('0x2c')](function(){})[_0xa8d7('0x2e')](_0x2610f3()));}}return _0x87f575;})[_0xa8d7('0x55')]();})['then'](function(){return db[_0xa8d7('0x57')]['findAll']({'attributes':['id',_0xa8d7('0x4d')],'include':[{'model':db[_0xa8d7('0x4e')],'as':_0xa8d7('0x58'),'where':{'id':LISTID}}]})[_0xa8d7('0x2c')](function(_0xde10a2){var _0x143059=[];if(_0xde10a2){for(var _0x1cf504=0x0,_0x2a25d2;_0x1cf504<_0xde10a2[_0xa8d7('0x19')];_0x1cf504+=0x1){_0x2a25d2=_0xde10a2[_0x1cf504][_0xa8d7('0x4f')]({'plain':!![]});switch(_0x2a25d2['dialCheckDuplicateType']){case _0xa8d7('0x50'):_0x143059[_0xa8d7('0x2d')](db[_0xa8d7('0x52')]['query'](_0x555744(_0x2a25d2,_0xa8d7('0x59')))[_0xa8d7('0x2c')](function(){})[_0xa8d7('0x2e')](_0x2610f3()));break;case _0xa8d7('0x51'):_0x143059[_0xa8d7('0x2d')](db[_0xa8d7('0x52')]['query'](_0x5671b7(_0x2a25d2,'CampaignId'))[_0xa8d7('0x2c')](function(){})[_0xa8d7('0x2e')](_0x2610f3()));break;default:_0x143059[_0xa8d7('0x2d')](db['sequelize']['query'](_0x5879a1(_0x2a25d2,_0xa8d7('0x59')))[_0xa8d7('0x2c')](function(){})[_0xa8d7('0x2e')](_0x2610f3()));}}}return _0x143059;})[_0xa8d7('0x55')]();})[_0xa8d7('0x2c')](function(){return db[_0xa8d7('0x57')][_0xa8d7('0x4b')]({'attributes':['id'],'include':[{'model':db[_0xa8d7('0x4e')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xa8d7('0x2c')](function(_0x443e13){var _0x4980d8=[];if(_0x443e13){for(var _0x3fe78f=0x0,_0x593e4d;_0x3fe78f<_0x443e13['length'];_0x3fe78f+=0x1){_0x593e4d=_0x443e13[_0x3fe78f]['get']({'plain':!![]});_0x4980d8['push'](db[_0xa8d7('0x52')][_0xa8d7('0x53')](_0x272cd2(_0x593e4d,_0xa8d7('0x59')))[_0xa8d7('0x2c')](function(){})[_0xa8d7('0x2e')](_0x2610f3()));}}return _0x4980d8;})[_0xa8d7('0x55')]();})[_0xa8d7('0x2e')](function(_0x415bf2){logger[_0xa8d7('0x17')](_0xa8d7('0x5a'),'generalCheckHopper',_0x415bf2[_0xa8d7('0x1b')]);});}var processPromises=function(_0x52ed19){return BPromise[_0xa8d7('0x55')](promises)[_0xa8d7('0x2c')](function(_0x4b09e3){})[_0xa8d7('0x2e')](function(_0x2ed1a4){logger[_0xa8d7('0x17')](_0xa8d7('0x5b'),JSON[_0xa8d7('0x30')](_0x2ed1a4));})[_0xa8d7('0x5c')](function(){socket[_0xa8d7('0x5d')](_0xa8d7('0x5e')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x52ed19){return _0x52ed19[_0xa8d7('0x5f')]();}});};var endCsv=function(){return BPromise[_0xa8d7('0x60')]()[_0xa8d7('0x2c')](function(){if(hopperContacts){return checkHopper();}})[_0xa8d7('0x2c')](function(){socket[_0xa8d7('0x5d')](_0xa8d7('0x5e')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x203673){logger[_0xa8d7('0x17')](_0xa8d7('0x61'),JSON[_0xa8d7('0x30')](_0x203673));}finally{process[_0xa8d7('0x62')](0x0);}});};process['on']('SIGINT',function(){logger['info'](_0xa8d7('0x63'));endCsv();});function main(){return BPromise[_0xa8d7('0x60')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xa8d7('0x11')](',');return db['CmContact'][_0xa8d7('0x4b')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xa8d7('0x2c')](function(_0x30ebbb){var _0x340f34=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xa8d7('0x64')](_0x340f34,{'header':!![],'skipEmptyLines':!![],'step':function(_0x28cb5b,_0x2f71fb){total+=0x1;var _0x198ab=total;promises[_0xa8d7('0x2d')](checkRow(_0x28cb5b,_0x30ebbb,_0x198ab)[_0xa8d7('0x2c')](function(){success+=0x1;})[_0xa8d7('0x2e')](function(_0x3f28c9){if(_0x3f28c9[_0xa8d7('0x17')]){errors+=0x1;delete _0x3f28c9['error'];}else if(_0x3f28c9[_0xa8d7('0x28')]){duplicates+=0x1;delete _0x3f28c9[_0xa8d7('0x28')];}rows[_0xa8d7('0x2d')](_0x3f28c9);}));if(total%0xc8===0x0){_0x2f71fb['pause']();return processPromises(_0x2f71fb);}},'complete':function(){return processPromises()[_0xa8d7('0x2c')](function(){logger[_0xa8d7('0x65')](_0xa8d7('0x66'));endCsv();});},'error':function(_0x5e16ca,_0x28f160){logger[_0xa8d7('0x65')](_0xa8d7('0x67'),JSON[_0xa8d7('0x30')](_0x5e16ca));endCsv();}});})[_0xa8d7('0x2e')](function(_0x291c88){logger['error'](_0xa8d7('0x68'),JSON['stringify'](_0x291c88));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1d3=['ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','path','lodash','papaparse','util','squel','../../../mysqldb','../../../config/environment','../../../config/logger','import','defaults','redis','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','join','cm_contacts.phone','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.UserId','insert','into','fromQuery','scheduledat','ContactId','createdAt','updatedAt','priority','UserId','fields','cm_contacts','.CmListId','.CmListId\x20=\x20?','cm_hopper','\x22always\x22','cm_hopper_black','ListId','cm_contacts.ListId\x20=\x20','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','ListId\x20=\x20?','\x20=\x20?','keys','CompanyId',')\x20NOT\x20IN\x20?','MIN(id)','min_id','group','toString','info','Received\x20SIGINT','error','message','errors','push','code','sequelize','query','spread','catch','main','stringify','send','start','.csv','parse','createReadStream','data','length','trim','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNumber','includes','agent\x20not\x20exists','email','dateOfBirth','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','\x20not\x20specified','appendFileSync','rows','Abort\x20parser','abort','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','isNil','DROP\x20TABLE\x20','voice_queues_has_cm_lists','voice_queues','voice_queues_has_cm_blacklists','VoiceQueueId','campaigns','CampaignId','campaigns_has_cm_blacklists','each','then','finish','affectedRows','emit','contact:import:','unlink','exit','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','root','server/files/tmp','existsSync','file\x20doesn\x27t\x20exists','binding','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName','firstName\x20is\x20mandatory'];(function(_0x1d9aae,_0x222fcb){var _0x50461a=function(_0x4dc8cd){while(--_0x4dc8cd){_0x1d9aae['push'](_0x1d9aae['shift']());}};_0x50461a(++_0x222fcb);}(_0xf1d3,0x10d));var _0x3f1d=function(_0x16e364,_0x51a81e){_0x16e364=_0x16e364-0x0;var _0x12bb35=_0xf1d3[_0x16e364];return _0x12bb35;};'use strict';var fs=require('fs');var path=require(_0x3f1d('0x0'));var _=require(_0x3f1d('0x1'));var Papa=require(_0x3f1d('0x2'));var util=require(_0x3f1d('0x3'));var BPromise=require('bluebird');var moment=require('moment');var squel=require(_0x3f1d('0x4'));var Redis=require('ioredis');var db=require(_0x3f1d('0x5'))['db'];var config=require(_0x3f1d('0x6'));var logger=require(_0x3f1d('0x7'))(_0x3f1d('0x8'));config['redis']=_[_0x3f1d('0x9')](config[_0x3f1d('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x3f1d('0xb'))(new Redis(config[_0x3f1d('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x3f1d('0xc')](_0x3f1d('0xd'));function isEmail(_0x27e4fc){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x3f1d('0xe')](_0x27e4fc);}function selectNotIn(_0x23dfa0,_0x25b2c3,_0x35b2ac,_0x48df40,_0x34309a){return squel[_0x3f1d('0xf')]()[_0x3f1d('0x10')](_0x3f1d('0x11'))[_0x3f1d('0x12')](_0x48df40)['join'](_0x25b2c3,null,_0x25b2c3+_0x3f1d('0x13')+_0x48df40+'.'+_0x35b2ac)[_0x3f1d('0x14')](_0x48df40+'.'+_0x35b2ac+_0x3f1d('0x15')+_0x23dfa0+'.'+_0x35b2ac)[_0x3f1d('0x14')](_0x25b2c3+_0x3f1d('0x16')+_0x34309a[_0x3f1d('0x17')]()+')');}function insertCmHopper(_0xd76e94,_0x58ed74,_0x535e5b,_0x2bbe00,_0x28a3dc){var _0x2acf95=[_0x3f1d('0x18'),'cm_contacts.scheduledat',_0x3f1d('0x19'),_0x3f1d('0x1a'),_0x58ed74+'.'+_0x2bbe00,_0x3f1d('0x1b'),_0x3f1d('0x1c'),'cm_contacts.priority',_0x3f1d('0x1d'),'\x22'+_0x28a3dc+'\x22'];return squel[_0x3f1d('0x1e')]()[_0x3f1d('0x1f')]('cm_hopper')[_0x3f1d('0x20')]([_0x3f1d('0x11'),_0x3f1d('0x21'),_0x3f1d('0x22'),'ListId',_0x2bbe00,_0x3f1d('0x23'),_0x3f1d('0x24'),_0x3f1d('0x25'),_0x3f1d('0x26'),'recallme'],squel[_0x3f1d('0xf')]()[_0x3f1d('0x27')](_0x2acf95)[_0x3f1d('0x12')](_0x58ed74)[_0x3f1d('0x17')](_0x3f1d('0x28'),null,'cm_contacts.ListId\x20=\x20'+_0x58ed74+_0x3f1d('0x29'))['join'](_0x535e5b,null,_0x535e5b+_0x3f1d('0x13')+_0x58ed74+'.'+_0x2bbe00)[_0x3f1d('0x14')](_0x58ed74+_0x3f1d('0x2a'),_0xd76e94)[_0x3f1d('0x14')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x3f1d('0x14')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x58ed74,_0x535e5b,_0x2bbe00,_0x3f1d('0x2b'),['\x22always\x22','\x22onlyIfOpen\x22']))[_0x3f1d('0x14')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x58ed74,_0x535e5b,_0x2bbe00,_0x3f1d('0x2b'),[_0x3f1d('0x2c')])))['toString']();}function insertCmHopperBlack(_0x447ca6,_0x5a011f,_0x43aa52,_0x3b639b){var _0x32161b=[_0x3f1d('0x18'),_0x3f1d('0x19'),'cm_contacts.ListId',_0x5a011f+'.'+_0x3b639b,_0x3f1d('0x1b'),'cm_contacts.updatedAt'];return squel['insert']()[_0x3f1d('0x1f')](_0x3f1d('0x2d'))[_0x3f1d('0x20')]([_0x3f1d('0x11'),'ContactId',_0x3f1d('0x2e'),_0x3b639b,_0x3f1d('0x23'),_0x3f1d('0x24')],squel['select']()[_0x3f1d('0x27')](_0x32161b)[_0x3f1d('0x12')](_0x5a011f)[_0x3f1d('0x17')](_0x3f1d('0x28'),null,_0x3f1d('0x2f')+_0x5a011f+_0x3f1d('0x29'))[_0x3f1d('0x17')](_0x43aa52,null,_0x43aa52+_0x3f1d('0x13')+_0x5a011f+'.'+_0x3b639b)[_0x3f1d('0x14')](_0x5a011f+_0x3f1d('0x2a'),_0x447ca6)[_0x3f1d('0x14')](_0x3f1d('0x30'),NOW)[_0x3f1d('0x14')](_0x3f1d('0x31'),squel['select']()['field'](_0x3f1d('0x11'))[_0x3f1d('0x12')](_0x3f1d('0x2d'))[_0x3f1d('0x14')](_0x3f1d('0x32'),_0x447ca6)[_0x3f1d('0x14')](_0x3b639b+_0x3f1d('0x33'),_0x5a011f+'.'+_0x3b639b)))['toString']();}function insertCmContact(_0x35554a,_0x359337,_0x452c02,_0x45b255){var _0x1367fd=_['concat'](_[_0x3f1d('0x34')](_0x45b255),[_0x3f1d('0x2e'),_0x3f1d('0x35'),_0x3f1d('0x23'),_0x3f1d('0x24')]);return squel[_0x3f1d('0x1e')]()['into'](_0x3f1d('0x28'))[_0x3f1d('0x20')](_0x1367fd,squel[_0x3f1d('0xf')]()[_0x3f1d('0x27')](_0x1367fd)['from'](_0x359337)[_0x3f1d('0x14')]('('+_0x452c02[_0x3f1d('0x17')](',')+_0x3f1d('0x36'),squel[_0x3f1d('0xf')]()[_0x3f1d('0x27')](_0x452c02)[_0x3f1d('0x12')](_0x3f1d('0x28'))[_0x3f1d('0x14')]('ListId\x20=\x20?',_0x35554a)['where']('deletedAt\x20IS\x20NULL'))['where']('id\x20IN\x20?',squel['select']()['field'](_0x3f1d('0x37'),_0x3f1d('0x38'))[_0x3f1d('0x12')](_0x359337)[_0x3f1d('0x39')](_0x452c02[_0x3f1d('0x17')](','))))[_0x3f1d('0x3a')]();}function handleStop(){logger[_0x3f1d('0x3b')](_0x3f1d('0x3c'));stopped=!![];}function handleUncaughtException(_0xf02e9a){logger[_0x3f1d('0x3d')](_0xf02e9a[_0x3f1d('0x3e')]);process['exit'](0x1);}function handleError(_0x1b3ccf,_0x1151a7){stats[_0x3f1d('0x3f')][_0x3f1d('0x40')]({'name':_0x1151a7[_0x3f1d('0x41')],'message':_0x1151a7[_0x3f1d('0x3e')],'row':_0x1b3ccf});}function handleQuery(_0x4e6049){logger[_0x3f1d('0x3b')](_0x4e6049);return db[_0x3f1d('0x42')][_0x3f1d('0x43')](_0x4e6049)[_0x3f1d('0x44')](function(_0x2d849e){results['push'](_0x2d849e);})[_0x3f1d('0x45')](function(_0x2e583a){logger[_0x3f1d('0x3d')](_0x2e583a[_0x3f1d('0x3e')]);});}function main(_0x25e164,_0x31f523,_0x214b5d,_0x4db2a3){logger[_0x3f1d('0x3b')](_0x3f1d('0x46'),_0x25e164,JSON[_0x3f1d('0x47')](_0x31f523));process[_0x3f1d('0x48')](_0x3f1d('0x49'));var _0x47e719=_0x31f523['binding'];var _0x1dcac4=_0x31f523['socket_timestamp'];var _0x59ad0e=path[_0x3f1d('0x17')](config['root'],'server/files/tmp',_0x1dcac4+_0x3f1d('0x4a'));var _0x474b71=_['keys'](_0x47e719)[_0x3f1d('0x17')]();logger[_0x3f1d('0x3b')]('header',_0x474b71);fs['writeFileSync'](_0x59ad0e,_0x474b71+'\x0a');Papa[_0x3f1d('0x4b')](fs[_0x3f1d('0x4c')](_0x25e164),{'header':!![],'skipEmptyLines':!![],'step':function(_0x23fac5,_0x21aafc){try{for(var _0x15969b=0x0,_0x497cdb=[];_0x15969b<_0x23fac5[_0x3f1d('0x4d')][_0x3f1d('0x4e')];_0x15969b++){stats['rows']+=0x1;if(_0x23fac5[_0x3f1d('0x3f')][_0x15969b]){handleError(_0x23fac5[_0x3f1d('0x4d')][_0x15969b],_0x23fac5[_0x3f1d('0x3f')][_0x15969b]);}else{var _0x1acd76=[];for(var _0xeabd5 in _0x47e719){if(_0x47e719['hasOwnProperty'](_0xeabd5)){if(_0x23fac5[_0x3f1d('0x4d')][_0x15969b][_0x47e719[_0xeabd5]]){var _0x4767f7=_[_0x3f1d('0x4f')](_0x23fac5['data'][_0x15969b][_0x47e719[_0xeabd5]]['replace'](/"/g,'\x27'));switch(_0xeabd5){case _0x3f1d('0x21'):var _0x57df22=moment(_0x4767f7,_0x3f1d('0xd'),!![]);if(_0x57df22[_0x3f1d('0x50')]()){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}else{_0x1acd76[_0x3f1d('0x40')](_0x3f1d('0x51'));}break;case _0x3f1d('0x25'):var _0x352014=parseInt(_0x4767f7);_0x4767f7=_['isNaN'](_0x352014)||_0x352014<0x0||_0x352014>0x4?_0x4db2a3?0x3:0x2:_0x352014;_0x497cdb['push']('\x22'+_0x4767f7+'\x22');break;case _0x3f1d('0x26'):var _0x5d2cf8=parseInt(_0x4767f7);if(_[_0x3f1d('0x52')](_0x5d2cf8)&&_[_0x3f1d('0x53')](_0x214b5d,_0x5d2cf8)){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x5d2cf8+'\x22');}else{_0x1acd76['push'](_0x3f1d('0x54'));}break;case _0x3f1d('0x55'):if(isEmail(_0x4767f7)){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}else{_0x1acd76[_0x3f1d('0x40')]('email\x20wrong\x20format');}break;case _0x3f1d('0x56'):var _0x32f63d=moment(_0x4767f7,'YYYY-MM-DD',!![]);if(_0x32f63d[_0x3f1d('0x50')]()){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}else{_0x1acd76['push'](_0x3f1d('0x57'));}break;default:_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}}else{switch(_0xeabd5){case'firstName':case _0x3f1d('0x11'):_0x1acd76[_0x3f1d('0x40')](_0xeabd5+_0x3f1d('0x58'));break;default:_0x497cdb[_0x3f1d('0x40')]('\x22\x22');}}}}if(_0x1acd76[_0x3f1d('0x4e')]){handleError(_0x23fac5['data'][_0x15969b],{'code':'SystemRow','message':_0x1acd76['join']()});}else{fs[_0x3f1d('0x59')](_0x59ad0e,_0x497cdb[_0x3f1d('0x17')]()+'\x0a');}_0x497cdb=[];}if(!(stats[_0x3f1d('0x5a')]%0xc8)){socket['emit']('contact:import:'+_0x1dcac4,stats);stats['errors']=[];}}if(stopped){logger[_0x3f1d('0x3b')](_0x3f1d('0x5b'));_0x21aafc[_0x3f1d('0x5c')]();}}catch(_0x5e7812){handleError(_0x23fac5[_0x3f1d('0x4d')][_0x15969b],{'code':'SystemError','message':_0x5e7812[_0x3f1d('0x3e')]});logger[_0x3f1d('0x3d')](_0x3f1d('0x5d'),_0x5e7812[_0x3f1d('0x3e')]);}},'complete':function(){try{var _0x5e93e1=[];var _0x436953=_0x3f1d('0x28');if(_0x31f523[_0x3f1d('0x5e')]&&_0x31f523[_0x3f1d('0x5e')][_0x3f1d('0x4e')]){_0x436953=_0x3f1d('0x5f')+_0x1dcac4;_0x5e93e1[_0x3f1d('0x40')](_0x3f1d('0x60')+_0x436953+_0x3f1d('0x61'));}var _0x47a91e=util[_0x3f1d('0xc')]('LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x59ad0e,_0x436953,_0x474b71,_0x31f523[_0x3f1d('0x2e')],_0x31f523[_0x3f1d('0x35')]||null,NOW,NOW);if(_[_0x3f1d('0x62')](_0x47e719[_0x3f1d('0x21')])){_0x47a91e+=',\x20scheduledAt\x20=\x20NOW()';}_0x5e93e1['push'](_0x47a91e);if(_0x31f523['duplicates']&&_0x31f523['duplicates']['length']){_0x5e93e1[_0x3f1d('0x40')](insertCmContact(_0x31f523[_0x3f1d('0x2e')],_0x436953,_0x31f523[_0x3f1d('0x5e')],_0x47e719));_0x5e93e1[_0x3f1d('0x40')](_0x3f1d('0x63')+_0x436953+';');}_0x5e93e1[_0x3f1d('0x40')](insertCmHopper(_0x31f523['ListId'],_0x3f1d('0x64'),_0x3f1d('0x65'),'VoiceQueueId',_0x4db2a3));_0x5e93e1['push'](insertCmHopperBlack(_0x31f523[_0x3f1d('0x2e')],_0x3f1d('0x66'),'voice_queues',_0x3f1d('0x67')));_0x5e93e1[_0x3f1d('0x40')](insertCmHopper(_0x31f523[_0x3f1d('0x2e')],'campaigns_has_cm_lists',_0x3f1d('0x68'),_0x3f1d('0x69'),_0x4db2a3));_0x5e93e1[_0x3f1d('0x40')](insertCmHopperBlack(_0x31f523[_0x3f1d('0x2e')],_0x3f1d('0x6a'),_0x3f1d('0x68'),'CampaignId'));BPromise[_0x3f1d('0x6b')](_0x5e93e1,handleQuery)[_0x3f1d('0x6c')](function(_0x493882){stats[_0x3f1d('0x6d')]=!![];stats['affectedRows']=_0x31f523['duplicates']&&_0x31f523['duplicates'][_0x3f1d('0x4e')]?results[0x2]['affectedRows']:results[0x0][_0x3f1d('0x6e')];socket[_0x3f1d('0x6f')](_0x3f1d('0x70')+_0x1dcac4,stats);fs['unlink'](_0x25e164);fs[_0x3f1d('0x71')](_0x59ad0e);process['exit'](0x0);})[_0x3f1d('0x45')](function(_0x28e1ad){logger[_0x3f1d('0x3d')](_0x28e1ad['message']);process[_0x3f1d('0x72')](0x1);});}catch(_0x5a285c){logger['error'](_0x3f1d('0x73'),_0x5a285c[_0x3f1d('0x3e')]);process[_0x3f1d('0x72')](0x1);}},'error':function(_0x2488a6,_0x481ad9,_0x55cc0f,_0x5c78ac){throw new Error(_0x5c78ac);}});}function validate(){if(process[_0x3f1d('0x74')]&&process[_0x3f1d('0x74')][_0x3f1d('0x4e')]<0x4){throw new Error(_0x3f1d('0x75'));}var _0x4f09b6=path[_0x3f1d('0x17')](config[_0x3f1d('0x76')],_0x3f1d('0x77'),process[_0x3f1d('0x74')][0x2]);if(!fs[_0x3f1d('0x78')](_0x4f09b6)){throw new Error(_0x3f1d('0x79'));}var _0x53278c={};try{_0x53278c=JSON[_0x3f1d('0x4b')](process['argv'][0x3]);if(!_0x53278c[_0x3f1d('0x7a')]){throw new Error(_0x3f1d('0x7b'));}if(!_0x53278c['binding'][_0x3f1d('0x11')]){throw new Error(_0x3f1d('0x7c'));}if(!_0x53278c[_0x3f1d('0x7a')][_0x3f1d('0x7d')]){throw new Error(_0x3f1d('0x7e'));}var _0x7e79da=0x0;if(_0x53278c['binding']['UserId']){_0x7e79da=0x1;}if(!_0x53278c[_0x3f1d('0x2e')]){throw new Error(_0x3f1d('0x7f'));}}catch(_0x4f4915){throw new Error(_0x3f1d('0x80'));}var _0xa57e5=[];try{_0xa57e5=_[_0x3f1d('0x81')](JSON['parse'](process['argv'][0x4]),'id');}catch(_0xea3b36){logger[_0x3f1d('0x3b')](_0x3f1d('0x82'));}main(_0x4f09b6,_0x53278c,_0xa57e5,_0x7e79da);}validate();process['on'](_0x3f1d('0x83'),handleStop);process['on']('uncaughtException',handleUncaughtException);
\ No newline at end of file
+var _0x2517=['cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','cm_hopper','fromQuery','scheduledat','ContactId','ListId','createdAt','updatedAt','priority','UserId','recallme','fields','join','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.id','cm_contacts.ListId','cm_hopper_black','cm_contacts','\x20=\x20?','concat','keys','CompanyId','into',')\x20NOT\x20IN\x20?','ListId\x20=\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','field','MIN(id)','min_id','info','Received\x20SIGINT','error','message','exit','errors','code','sequelize','query','spread','push','catch','stringify','send','start','binding','root','server/files/tmp','.csv','header','writeFileSync','createReadStream','data','length','rows','hasOwnProperty','trim','replace','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','isValid','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','appendFileSync','emit','contact:import:','Abort\x20parser','abort','SystemError','duplicates','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27','DROP\x20TABLE\x20','voice_queues_has_cm_lists','VoiceQueueId','voice_queues_has_cm_blacklists','voice_queues','campaigns_has_cm_lists','campaigns','each','then','finish','affectedRows','unlink','complete','argv','existsSync','file\x20doesn\x27t\x20exists','parse','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','path','lodash','papaparse','util','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/logger','import','redis','localhost','socket.io-emitter','format','select','phone','from','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.createdAt'];(function(_0x5e657d,_0x3f52b0){var _0xfbf9bd=function(_0x15f466){while(--_0x15f466){_0x5e657d['push'](_0x5e657d['shift']());}};_0xfbf9bd(++_0x3f52b0);}(_0x2517,0xfe));var _0x7251=function(_0xead38f,_0x40a5c9){_0xead38f=_0xead38f-0x0;var _0x5f3c40=_0x2517[_0xead38f];return _0x5f3c40;};'use strict';var fs=require('fs');var path=require(_0x7251('0x0'));var _=require(_0x7251('0x1'));var Papa=require(_0x7251('0x2'));var util=require(_0x7251('0x3'));var BPromise=require(_0x7251('0x4'));var moment=require(_0x7251('0x5'));var squel=require(_0x7251('0x6'));var Redis=require(_0x7251('0x7'));var db=require(_0x7251('0x8'))['db'];var config=require('../../../config/environment');var logger=require(_0x7251('0x9'))(_0x7251('0xa'));config[_0x7251('0xb')]=_['defaults'](config[_0x7251('0xb')],{'host':_0x7251('0xc'),'port':0x18eb});var socket=require(_0x7251('0xd'))(new Redis(config[_0x7251('0xb')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x7251('0xe')]('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x4e3f44){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/['test'](_0x4e3f44);}function selectNotIn(_0x5ce5bb,_0x288698,_0x4eea64,_0x4f793a,_0x182ef5){return squel[_0x7251('0xf')]()['field'](_0x7251('0x10'))[_0x7251('0x11')](_0x4f793a)['join'](_0x288698,null,_0x288698+'.id\x20=\x20'+_0x4f793a+'.'+_0x4eea64)[_0x7251('0x12')](_0x4f793a+'.'+_0x4eea64+_0x7251('0x13')+_0x5ce5bb+'.'+_0x4eea64)[_0x7251('0x12')](_0x288698+_0x7251('0x14')+_0x182ef5['join']()+')');}function insertCmHopper(_0x41ce9b,_0x480fe7,_0x41569b,_0x586f41,_0x48a0cb){var _0x553cd5=[_0x7251('0x15'),_0x7251('0x16'),'cm_contacts.id','cm_contacts.ListId',_0x480fe7+'.'+_0x586f41,_0x7251('0x17'),_0x7251('0x18'),_0x7251('0x19'),_0x7251('0x1a'),'\x22'+_0x48a0cb+'\x22'];return squel[_0x7251('0x1b')]()['into'](_0x7251('0x1c'))[_0x7251('0x1d')]([_0x7251('0x10'),_0x7251('0x1e'),_0x7251('0x1f'),_0x7251('0x20'),_0x586f41,_0x7251('0x21'),_0x7251('0x22'),_0x7251('0x23'),_0x7251('0x24'),_0x7251('0x25')],squel[_0x7251('0xf')]()[_0x7251('0x26')](_0x553cd5)[_0x7251('0x11')](_0x480fe7)[_0x7251('0x27')]('cm_contacts',null,_0x7251('0x28')+_0x480fe7+_0x7251('0x29'))['join'](_0x41569b,null,_0x41569b+'.id\x20=\x20'+_0x480fe7+'.'+_0x586f41)['where'](_0x480fe7+_0x7251('0x2a'),_0x41ce9b)[_0x7251('0x12')](_0x7251('0x2b'),NOW)[_0x7251('0x12')](_0x7251('0x2c'),selectNotIn(_0x480fe7,_0x41569b,_0x586f41,_0x7251('0x1c'),[_0x7251('0x2d'),_0x7251('0x2e')]))['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x480fe7,_0x41569b,_0x586f41,_0x7251('0x1c'),[_0x7251('0x2d')])))[_0x7251('0x2f')]();}function insertCmHopperBlack(_0x4bb0d3,_0x4123eb,_0x22dcbe,_0x17ccb7){var _0x6650be=['cm_contacts.phone',_0x7251('0x30'),_0x7251('0x31'),_0x4123eb+'.'+_0x17ccb7,_0x7251('0x17'),_0x7251('0x18')];return squel[_0x7251('0x1b')]()['into'](_0x7251('0x32'))[_0x7251('0x1d')]([_0x7251('0x10'),_0x7251('0x1f'),_0x7251('0x20'),_0x17ccb7,_0x7251('0x21'),_0x7251('0x22')],squel['select']()[_0x7251('0x26')](_0x6650be)[_0x7251('0x11')](_0x4123eb)[_0x7251('0x27')](_0x7251('0x33'),null,'cm_contacts.ListId\x20=\x20'+_0x4123eb+_0x7251('0x29'))[_0x7251('0x27')](_0x22dcbe,null,_0x22dcbe+'.id\x20=\x20'+_0x4123eb+'.'+_0x17ccb7)[_0x7251('0x12')](_0x4123eb+_0x7251('0x2a'),_0x4bb0d3)[_0x7251('0x12')](_0x7251('0x2b'),NOW)[_0x7251('0x12')](_0x7251('0x2c'),squel[_0x7251('0xf')]()['field'](_0x7251('0x10'))[_0x7251('0x11')]('cm_hopper_black')['where']('ListId\x20=\x20?',_0x4bb0d3)[_0x7251('0x12')](_0x17ccb7+_0x7251('0x34'),_0x4123eb+'.'+_0x17ccb7)))[_0x7251('0x2f')]();}function insertCmContact(_0x5dab61,_0x1aa3cc,_0x34f702,_0x5f1567){var _0x55785b=_[_0x7251('0x35')](_[_0x7251('0x36')](_0x5f1567),[_0x7251('0x20'),_0x7251('0x37'),_0x7251('0x21'),_0x7251('0x22')]);return squel[_0x7251('0x1b')]()[_0x7251('0x38')](_0x7251('0x33'))[_0x7251('0x1d')](_0x55785b,squel[_0x7251('0xf')]()[_0x7251('0x26')](_0x55785b)[_0x7251('0x11')](_0x1aa3cc)[_0x7251('0x12')]('('+_0x34f702[_0x7251('0x27')](',')+_0x7251('0x39'),squel[_0x7251('0xf')]()[_0x7251('0x26')](_0x34f702)[_0x7251('0x11')]('cm_contacts')['where'](_0x7251('0x3a'),_0x5dab61)[_0x7251('0x12')](_0x7251('0x3b')))[_0x7251('0x12')](_0x7251('0x3c'),squel[_0x7251('0xf')]()[_0x7251('0x3d')](_0x7251('0x3e'),_0x7251('0x3f'))[_0x7251('0x11')](_0x1aa3cc)['group'](_0x34f702[_0x7251('0x27')](','))))[_0x7251('0x2f')]();}function handleStop(){logger[_0x7251('0x40')](_0x7251('0x41'));stopped=!![];}function handleUncaughtException(_0x3ac477){logger[_0x7251('0x42')](_0x3ac477[_0x7251('0x43')]);process[_0x7251('0x44')](0x1);}function handleError(_0x4337de,_0x1c19ed){stats[_0x7251('0x45')]['push']({'name':_0x1c19ed[_0x7251('0x46')],'message':_0x1c19ed['message'],'row':_0x4337de});}function handleQuery(_0x3639cc){logger[_0x7251('0x40')](_0x3639cc);return db[_0x7251('0x47')][_0x7251('0x48')](_0x3639cc)[_0x7251('0x49')](function(_0x106643){results[_0x7251('0x4a')](_0x106643);})[_0x7251('0x4b')](function(_0x134be2){logger[_0x7251('0x42')](_0x134be2[_0x7251('0x43')]);});}function main(_0x461c06,_0x2a66ed,_0x4e92ea,_0x50f39d){logger['info']('main',_0x461c06,JSON[_0x7251('0x4c')](_0x2a66ed));process[_0x7251('0x4d')](_0x7251('0x4e'));var _0x10c50e=_0x2a66ed[_0x7251('0x4f')];var _0x29f3e6=_0x2a66ed['socket_timestamp'];var _0x5d342a=path[_0x7251('0x27')](config[_0x7251('0x50')],_0x7251('0x51'),_0x29f3e6+_0x7251('0x52'));var _0x171e15=_[_0x7251('0x36')](_0x10c50e)[_0x7251('0x27')]();logger[_0x7251('0x40')](_0x7251('0x53'),_0x171e15);fs[_0x7251('0x54')](_0x5d342a,_0x171e15+'\x0a');Papa['parse'](fs[_0x7251('0x55')](_0x461c06),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1742f1,_0xd6394a){try{for(var _0x35661b=0x0,_0x316b30=[];_0x35661b<_0x1742f1[_0x7251('0x56')][_0x7251('0x57')];_0x35661b++){stats[_0x7251('0x58')]+=0x1;if(_0x1742f1[_0x7251('0x45')][_0x35661b]){handleError(_0x1742f1[_0x7251('0x56')][_0x35661b],_0x1742f1[_0x7251('0x45')][_0x35661b]);}else{var _0x3b581b=[];for(var _0x20ae7b in _0x10c50e){if(_0x10c50e[_0x7251('0x59')](_0x20ae7b)){if(_0x1742f1[_0x7251('0x56')][_0x35661b][_0x10c50e[_0x20ae7b]]){var _0x42412d=_[_0x7251('0x5a')](_0x1742f1[_0x7251('0x56')][_0x35661b][_0x10c50e[_0x20ae7b]][_0x7251('0x5b')](/"/g,'\x27'));switch(_0x20ae7b){case _0x7251('0x1e'):var _0x336738=moment(_0x42412d,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0x336738['isValid']()){_0x316b30[_0x7251('0x4a')]('\x22'+_0x42412d+'\x22');}else{_0x3b581b[_0x7251('0x4a')](_0x7251('0x5c'));}break;case _0x7251('0x23'):var _0x333d40=parseInt(_0x42412d);_0x42412d=_[_0x7251('0x5d')](_0x333d40)||_0x333d40<0x0||_0x333d40>0x4?_0x50f39d?0x3:0x2:_0x333d40;_0x316b30[_0x7251('0x4a')]('\x22'+_0x42412d+'\x22');break;case _0x7251('0x24'):var _0x56066d=parseInt(_0x42412d);if(_[_0x7251('0x5e')](_0x56066d)&&_['includes'](_0x4e92ea,_0x56066d)){_0x316b30[_0x7251('0x4a')]('\x22'+_0x56066d+'\x22');}else{_0x3b581b['push'](_0x7251('0x5f'));}break;case _0x7251('0x60'):if(isEmail(_0x42412d)){_0x316b30[_0x7251('0x4a')]('\x22'+_0x42412d+'\x22');}else{_0x3b581b[_0x7251('0x4a')](_0x7251('0x61'));}break;case _0x7251('0x62'):var _0x36f5ed=moment(_0x42412d,_0x7251('0x63'),!![]);if(_0x36f5ed[_0x7251('0x64')]()){_0x316b30[_0x7251('0x4a')]('\x22'+_0x42412d+'\x22');}else{_0x3b581b[_0x7251('0x4a')](_0x7251('0x65'));}break;default:_0x316b30[_0x7251('0x4a')]('\x22'+_0x42412d+'\x22');}}else{switch(_0x20ae7b){case _0x7251('0x66'):case'phone':_0x3b581b[_0x7251('0x4a')](_0x20ae7b+_0x7251('0x67'));break;default:_0x316b30[_0x7251('0x4a')]('\x22\x22');}}}}if(_0x3b581b[_0x7251('0x57')]){handleError(_0x1742f1[_0x7251('0x56')][_0x35661b],{'code':'SystemRow','message':_0x3b581b['join']()});}else{fs[_0x7251('0x68')](_0x5d342a,_0x316b30['join']()+'\x0a');}_0x316b30=[];}if(!(stats['rows']%0xc8)){socket[_0x7251('0x69')](_0x7251('0x6a')+_0x29f3e6,stats);stats[_0x7251('0x45')]=[];}}if(stopped){logger[_0x7251('0x40')](_0x7251('0x6b'));_0xd6394a[_0x7251('0x6c')]();}}catch(_0x46cd79){handleError(_0x1742f1[_0x7251('0x56')][_0x35661b],{'code':_0x7251('0x6d'),'message':_0x46cd79['message']});logger['error']('step',_0x46cd79['message']);}},'complete':function(){try{var _0x3dce48=[];var _0x4c7861=_0x7251('0x33');if(_0x2a66ed[_0x7251('0x6e')]&&_0x2a66ed['duplicates'][_0x7251('0x57')]){_0x4c7861='cm_contacts_'+_0x29f3e6;_0x3dce48[_0x7251('0x4a')](_0x7251('0x6f')+_0x4c7861+_0x7251('0x70'));}var _0x4c5590=util[_0x7251('0xe')](_0x7251('0x71'),_0x5d342a,_0x4c7861,_0x171e15,_0x2a66ed[_0x7251('0x20')],_0x2a66ed['CompanyId']||null,NOW,NOW);if(_['isNil'](_0x10c50e[_0x7251('0x1e')])){_0x4c5590+=',\x20scheduledAt\x20=\x20NOW()';}_0x3dce48[_0x7251('0x4a')](_0x4c5590);if(_0x2a66ed[_0x7251('0x6e')]&&_0x2a66ed['duplicates'][_0x7251('0x57')]){_0x3dce48[_0x7251('0x4a')](insertCmContact(_0x2a66ed[_0x7251('0x20')],_0x4c7861,_0x2a66ed['duplicates'],_0x10c50e));_0x3dce48[_0x7251('0x4a')](_0x7251('0x72')+_0x4c7861+';');}_0x3dce48[_0x7251('0x4a')](insertCmHopper(_0x2a66ed['ListId'],_0x7251('0x73'),'voice_queues',_0x7251('0x74'),_0x50f39d));_0x3dce48['push'](insertCmHopperBlack(_0x2a66ed[_0x7251('0x20')],_0x7251('0x75'),_0x7251('0x76'),_0x7251('0x74')));_0x3dce48[_0x7251('0x4a')](insertCmHopper(_0x2a66ed[_0x7251('0x20')],_0x7251('0x77'),_0x7251('0x78'),'CampaignId',_0x50f39d));_0x3dce48[_0x7251('0x4a')](insertCmHopperBlack(_0x2a66ed[_0x7251('0x20')],'campaigns_has_cm_blacklists',_0x7251('0x78'),'CampaignId'));BPromise[_0x7251('0x79')](_0x3dce48,handleQuery)[_0x7251('0x7a')](function(_0x587866){stats[_0x7251('0x7b')]=!![];stats[_0x7251('0x7c')]=_0x2a66ed['duplicates']&&_0x2a66ed[_0x7251('0x6e')][_0x7251('0x57')]?results[0x2]['affectedRows']:results[0x0][_0x7251('0x7c')];socket['emit'](_0x7251('0x6a')+_0x29f3e6,stats);fs[_0x7251('0x7d')](_0x461c06);fs[_0x7251('0x7d')](_0x5d342a);process[_0x7251('0x44')](0x0);})[_0x7251('0x4b')](function(_0x38eb11){logger[_0x7251('0x42')](_0x38eb11[_0x7251('0x43')]);process[_0x7251('0x44')](0x1);});}catch(_0x403927){logger[_0x7251('0x42')](_0x7251('0x7e'),_0x403927[_0x7251('0x43')]);process[_0x7251('0x44')](0x1);}},'error':function(_0x2df063,_0x2690e3,_0x76069a,_0x1c7ae1){throw new Error(_0x1c7ae1);}});}function validate(){if(process[_0x7251('0x7f')]&&process[_0x7251('0x7f')][_0x7251('0x57')]<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x5e61d6=path[_0x7251('0x27')](config[_0x7251('0x50')],_0x7251('0x51'),process[_0x7251('0x7f')][0x2]);if(!fs[_0x7251('0x80')](_0x5e61d6)){throw new Error(_0x7251('0x81'));}var _0x457508={};try{_0x457508=JSON[_0x7251('0x82')](process['argv'][0x3]);if(!_0x457508['binding']){throw new Error(_0x7251('0x83'));}if(!_0x457508[_0x7251('0x4f')][_0x7251('0x10')]){throw new Error(_0x7251('0x84'));}if(!_0x457508[_0x7251('0x4f')][_0x7251('0x66')]){throw new Error(_0x7251('0x85'));}var _0x5c8af5=0x0;if(_0x457508[_0x7251('0x4f')][_0x7251('0x24')]){_0x5c8af5=0x1;}if(!_0x457508[_0x7251('0x20')]){throw new Error(_0x7251('0x86'));}}catch(_0x3fc2d4){throw new Error('body\x20id\x20mandatory');}var _0x1bed56=[];try{_0x1bed56=_[_0x7251('0x87')](JSON['parse'](process[_0x7251('0x7f')][0x4]),'id');}catch(_0x588f97){logger[_0x7251('0x40')](_0x7251('0x88'));}main(_0x5e61d6,_0x457508,_0x1bed56,_0x5c8af5);}validate();process['on'](_0x7251('0x89'),handleStop);process['on'](_0x7251('0x8a'),handleUncaughtException);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9095=['destcalleridnum','getDescriptions','inbound','string','***\x20Call\x20Info\x20***','keyValue','Caller\x20Number','Caller\x20Name','calleridname','Call\x20To','destexten','Queue','UniqueId','uniqueid','Date','agentcalledAt','***\x20Agent\x20Info\x20***','Agent\x20Name','destcalleridname','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentconnectAt','agentcompleteAt','Hold\x20Time','holdtime','outbound','Called\x20Number','Member\x20Name','membername','Answer\x20Time','answertime','Complete\x20Time','endtime','Duration','Billable\x20Time','billableseconds','getSubjects','[xCALLY\x20Ticket]','toLowerCase','voice','push','variable','queue','calleridnum','Outbound\x20Call'];(function(_0x47e7cb,_0x4c1b8d){var _0x2a8874=function(_0x36498f){while(--_0x36498f){_0x47e7cb['push'](_0x47e7cb['shift']());}};_0x2a8874(++_0x4c1b8d);}(_0x9095,0x195));var _0x5909=function(_0x3c504b,_0x437693){_0x3c504b=_0x3c504b-0x0;var _0x2e5354=_0x9095[_0x3c504b];return _0x2e5354;};'use strict';exports[_0x5909('0x0')]=function(_0x4fde5f,_0xff4219){var _0x5a7adf=[{'type':'string','content':_0x5909('0x1'),'variableName':null}];switch(_0x4fde5f[_0x5909('0x2')]()){case _0x5909('0x3'):switch(_0xff4219[_0x5909('0x2')]()){case'inbound':_0x5a7adf[_0x5909('0x4')]({'type':_0x5909('0x5'),'content':'','variableName':_0x5909('0x6')});_0x5a7adf[_0x5909('0x4')]({'type':_0x5909('0x5'),'content':'','variableName':_0x5909('0x7')});break;case'outbound':_0x5a7adf[_0x5909('0x4')]({'type':'string','content':_0x5909('0x8'),'variableName':null});_0x5a7adf[_0x5909('0x4')]({'type':_0x5909('0x5'),'content':'','variableName':_0x5909('0x9')});break;}}return _0x5a7adf;};exports[_0x5909('0xa')]=function(_0x41a553,_0x34b3cc){var _0x31d389=[];switch(_0x41a553[_0x5909('0x2')]()){case _0x5909('0x3'):switch(_0x34b3cc[_0x5909('0x2')]()){case _0x5909('0xb'):_0x31d389=[{'type':_0x5909('0xc'),'content':_0x5909('0xd'),'key':null,'keyType':null,'variableName':null},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0xf'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x7')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x10'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x11')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x12'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x13')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x14'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x6')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x15'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x16')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x17'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x18')},{'type':_0x5909('0xc'),'content':_0x5909('0x19'),'key':null,'keyType':null,'variableName':null},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x1a'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x1b')},{'type':'keyValue','content':'','key':'Agent\x20Number','keyType':_0x5909('0x5'),'variableName':_0x5909('0x9')},{'type':_0x5909('0xc'),'content':_0x5909('0x1c'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':_0x5909('0x1d'),'keyType':'variable','variableName':_0x5909('0x18')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x1e'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x1f')},{'type':_0x5909('0xe'),'content':'','key':'Agent\x20Complete','keyType':_0x5909('0x5'),'variableName':_0x5909('0x20')},{'type':'keyValue','content':'','key':_0x5909('0x21'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x22')},{'type':_0x5909('0xe'),'content':'','key':'Talk\x20Time','keyType':'variable','variableName':'talktime'}];break;case _0x5909('0x23'):_0x31d389=[{'type':'string','content':'***\x20Call\x20Info\x20***','variableName':null},{'type':'keyValue','content':'','key':_0x5909('0x24'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':_0x5909('0x9')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x25'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':_0x5909('0x26')},{'type':'keyValue','content':'','key':_0x5909('0x15'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':'uniqueid'},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x17'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':'starttime'},{'type':_0x5909('0xc'),'content':'***\x20Time\x20Info\x20***'},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x27'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':_0x5909('0x28')},{'type':'keyValue','content':'','key':_0x5909('0x29'),'keyType':'variable','keyContent':'','variableName':_0x5909('0x2a')},{'type':'keyValue','content':'','key':_0x5909('0x2b'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':'duration'},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x2c'),'keyType':'variable','keyContent':'','variableName':_0x5909('0x2d')}];break;}}return _0x31d389;};
\ No newline at end of file
+var _0x9505=['[xCALLY\x20Ticket]','voice','toLowerCase','inbound','variable','queue','push','Outbound\x20Call','destcalleridnum','getDescriptions','***\x20Call\x20Info\x20***','calleridnum','Caller\x20Name','keyValue','Call\x20To','destexten','Queue','uniqueid','Date','***\x20Agent\x20Info\x20***','Agent\x20Name','destcalleridname','Agent\x20Number','***\x20Time\x20Info\x20***','Agent\x20Ring','agentcalledAt','Agent\x20Connect','agentconnectAt','Agent\x20Complete','agentcompleteAt','holdtime','talktime','Member\x20Name','membername','UniqueId','starttime','Answer\x20Time','answertime','endtime','Duration','duration','Billable\x20Time','billableseconds','string'];(function(_0x3c99cd,_0x40b74e){var _0x21fff0=function(_0x28724e){while(--_0x28724e){_0x3c99cd['push'](_0x3c99cd['shift']());}};_0x21fff0(++_0x40b74e);}(_0x9505,0xdb));var _0x5950=function(_0x20eed2,_0x1a093f){_0x20eed2=_0x20eed2-0x0;var _0x39fbf1=_0x9505[_0x20eed2];return _0x39fbf1;};'use strict';exports['getSubjects']=function(_0x5e426f,_0x5c1922){var _0x58831f=[{'type':_0x5950('0x0'),'content':_0x5950('0x1'),'variableName':null}];switch(_0x5e426f['toLowerCase']()){case _0x5950('0x2'):switch(_0x5c1922[_0x5950('0x3')]()){case _0x5950('0x4'):_0x58831f['push']({'type':_0x5950('0x5'),'content':'','variableName':_0x5950('0x6')});_0x58831f[_0x5950('0x7')]({'type':_0x5950('0x5'),'content':'','variableName':'calleridnum'});break;case'outbound':_0x58831f[_0x5950('0x7')]({'type':_0x5950('0x0'),'content':_0x5950('0x8'),'variableName':null});_0x58831f[_0x5950('0x7')]({'type':_0x5950('0x5'),'content':'','variableName':_0x5950('0x9')});break;}}return _0x58831f;};exports[_0x5950('0xa')]=function(_0x2c419e,_0x4a1c44){var _0x1d7504=[];switch(_0x2c419e[_0x5950('0x3')]()){case _0x5950('0x2'):switch(_0x4a1c44[_0x5950('0x3')]()){case _0x5950('0x4'):_0x1d7504=[{'type':_0x5950('0x0'),'content':_0x5950('0xb'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':'Caller\x20Number','keyType':_0x5950('0x5'),'variableName':_0x5950('0xc')},{'type':'keyValue','content':'','key':_0x5950('0xd'),'keyType':'variable','variableName':'calleridname'},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0xf'),'keyType':'variable','variableName':_0x5950('0x10')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x11'),'keyType':_0x5950('0x5'),'variableName':_0x5950('0x6')},{'type':_0x5950('0xe'),'content':'','key':'UniqueId','keyType':'variable','variableName':_0x5950('0x12')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x13'),'keyType':_0x5950('0x5'),'variableName':'agentcalledAt'},{'type':_0x5950('0x0'),'content':_0x5950('0x14'),'key':null,'keyType':null,'variableName':null},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x15'),'keyType':'variable','variableName':_0x5950('0x16')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x17'),'keyType':_0x5950('0x5'),'variableName':_0x5950('0x9')},{'type':_0x5950('0x0'),'content':_0x5950('0x18'),'key':null,'keyType':null,'variableName':null},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x19'),'keyType':_0x5950('0x5'),'variableName':_0x5950('0x1a')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x1b'),'keyType':_0x5950('0x5'),'variableName':_0x5950('0x1c')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x1d'),'keyType':_0x5950('0x5'),'variableName':_0x5950('0x1e')},{'type':_0x5950('0xe'),'content':'','key':'Hold\x20Time','keyType':_0x5950('0x5'),'variableName':_0x5950('0x1f')},{'type':_0x5950('0xe'),'content':'','key':'Talk\x20Time','keyType':_0x5950('0x5'),'variableName':_0x5950('0x20')}];break;case'outbound':_0x1d7504=[{'type':'string','content':_0x5950('0xb'),'variableName':null},{'type':_0x5950('0xe'),'content':'','key':'Called\x20Number','keyType':'variable','keyContent':'','variableName':'destcalleridnum'},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x21'),'keyType':_0x5950('0x5'),'keyContent':'','variableName':_0x5950('0x22')},{'type':'keyValue','content':'','key':_0x5950('0x23'),'keyType':_0x5950('0x5'),'keyContent':'','variableName':_0x5950('0x12')},{'type':'keyValue','content':'','key':'Date','keyType':_0x5950('0x5'),'keyContent':'','variableName':_0x5950('0x24')},{'type':_0x5950('0x0'),'content':_0x5950('0x18')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x25'),'keyType':_0x5950('0x5'),'keyContent':'','variableName':_0x5950('0x26')},{'type':_0x5950('0xe'),'content':'','key':'Complete\x20Time','keyType':_0x5950('0x5'),'keyContent':'','variableName':_0x5950('0x27')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x28'),'keyType':_0x5950('0x5'),'keyContent':'','variableName':_0x5950('0x29')},{'type':_0x5950('0xe'),'content':'','key':_0x5950('0x2a'),'keyType':_0x5950('0x5'),'keyContent':'','variableName':_0x5950('0x2b')}];break;}}return _0x1d7504;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73a9=['error','user','body','omit','html','mobile','../../mysqldb','openchannel-interactions','mail-interactions','../../config/logger','sms-interactions','whatsapp-interactions','upperFirst','InteractionId','unknown','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','toUpperCase','name','role','stringify','then','update','catch'];(function(_0x146549,_0x52c57e){var _0x42245d=function(_0x54f352){while(--_0x54f352){_0x146549['push'](_0x146549['shift']());}};_0x42245d(++_0x52c57e);}(_0x73a9,0x1bb));var _0x973a=function(_0x47df57,_0x4e0a04){_0x47df57=_0x47df57-0x0;var _0x517582=_0x73a9[_0x47df57];return _0x517582;};'use strict';var _=require('lodash');var db=require(_0x973a('0x0'))['db'];var loggers={'openchannel':require('../../config/logger')(_0x973a('0x1')),'mail':require('../../config/logger')(_0x973a('0x2')),'fax':require(_0x973a('0x3'))('fax-interactions'),'sms':require('../../config/logger')(_0x973a('0x4')),'chat':require(_0x973a('0x3'))('chat-interactions'),'whatsapp':require('../../config/logger')(_0x973a('0x5'))};function getInteractionId(_0x2294ac,_0x3f782a,_0x39426e){if(_0x2294ac&&_0x2294ac[_[_0x973a('0x6')](_0x39426e)+_0x973a('0x7')]){return _0x2294ac[_['upperFirst'](_0x39426e)+'InteractionId'];}else if(_0x2294ac&&_0x2294ac['id']){return _0x2294ac['id'];}else if(_0x3f782a&&_0x3f782a['id']){return _0x3f782a['id'];}else{return _0x973a('0x8');}}function log(_0x183eaf,_0x207005,_0x2264a8,_0x5f3b67,_0x417984,_0x49b3a6){loggers[_0x417984['toLowerCase']()][_0x183eaf](_0x973a('0x9'),_0x49b3a6[_0x973a('0xa')](),_0x207005?_0x207005['id']:null,_0x207005?_0x207005[_0x973a('0xb')]:null,_0x207005?_0x207005[_0x973a('0xc')]:null,getInteractionId(_0x2264a8,_0x5f3b67,_0x417984),_0x2264a8?JSON[_0x973a('0xd')](_0x2264a8):'null');}function updateUser(_0xb518fd,_0x363d4c,_0x11c6fb,_0x45ae35,_0x4175a0){db[_[_0x973a('0x6')](_0x45ae35)+'Interaction']['findOne']({'where':{'id':getInteractionId(_0x363d4c,_0x11c6fb,_0x45ae35)}})[_0x973a('0xe')](function(_0x5a2f03){if(_0x5a2f03){return _0x5a2f03[_0x973a('0xf')]({'UserId':_0xb518fd?_0xb518fd['id']:null});}})['then'](function(_0x57df2c){if(_0x57df2c){log('info',_0xb518fd,_0x363d4c,_0x11c6fb,_0x45ae35,_0x4175a0);}})[_0x973a('0x10')](function(){log(_0x973a('0x11'),_0xb518fd,_0x363d4c,_0x11c6fb,_0x45ae35,_0x4175a0);});}exports['tracked']=function(_0x4adaa9,_0x5edd18){return function(_0x1af177,_0x12be3d,_0x3e2dd8){var _0x3f1b77=_0x1af177[_0x973a('0x12')];var _0x5ef81a={};var _0x801b5b=_0x1af177['query'];if(_0x5ef81a){_0x5ef81a=_['clone'](_0x1af177[_0x973a('0x13')]);_0x5ef81a=_[_0x973a('0x14')](_0x5ef81a,['body',_0x973a('0x15'),'phone','fax',_0x973a('0x16')]);}updateUser(_0x3f1b77,_0x5ef81a,_0x801b5b,_0x4adaa9,_0x5edd18);_0x3e2dd8(null);};};
\ No newline at end of file
+var _0x30b4=['stringify','null','Interaction','then','update','info','catch','error','tracked','user','clone','omit','body','html','phone','openchannel-interactions','../../config/logger','mail-interactions','fax-interactions','sms-interactions','chat-interactions','whatsapp-interactions','upperFirst','InteractionId','unknown','toLowerCase','toUpperCase','name'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0x30b4,0x127));var _0x430b=function(_0x226ad1,_0x2858e2){_0x226ad1=_0x226ad1-0x0;var _0x16b625=_0x30b4[_0x226ad1];return _0x16b625;};'use strict';var _=require('lodash');var db=require('../../mysqldb')['db'];var loggers={'openchannel':require('../../config/logger')(_0x430b('0x0')),'mail':require(_0x430b('0x1'))(_0x430b('0x2')),'fax':require(_0x430b('0x1'))(_0x430b('0x3')),'sms':require('../../config/logger')(_0x430b('0x4')),'chat':require(_0x430b('0x1'))(_0x430b('0x5')),'whatsapp':require(_0x430b('0x1'))(_0x430b('0x6'))};function getInteractionId(_0x422daa,_0x3fa6e8,_0x41c53b){if(_0x422daa&&_0x422daa[_[_0x430b('0x7')](_0x41c53b)+_0x430b('0x8')]){return _0x422daa[_[_0x430b('0x7')](_0x41c53b)+_0x430b('0x8')];}else if(_0x422daa&&_0x422daa['id']){return _0x422daa['id'];}else if(_0x3fa6e8&&_0x3fa6e8['id']){return _0x3fa6e8['id'];}else{return _0x430b('0x9');}}function log(_0x328157,_0xe34f2e,_0x251ff6,_0x22d7d0,_0x5b174b,_0x2523fa){loggers[_0x5b174b[_0x430b('0xa')]()][_0x328157]('[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2523fa[_0x430b('0xb')](),_0xe34f2e?_0xe34f2e['id']:null,_0xe34f2e?_0xe34f2e[_0x430b('0xc')]:null,_0xe34f2e?_0xe34f2e['role']:null,getInteractionId(_0x251ff6,_0x22d7d0,_0x5b174b),_0x251ff6?JSON[_0x430b('0xd')](_0x251ff6):_0x430b('0xe'));}function updateUser(_0x136a4e,_0x4f4be9,_0x514bbf,_0x15c05c,_0x2da2ff){db[_['upperFirst'](_0x15c05c)+_0x430b('0xf')]['findOne']({'where':{'id':getInteractionId(_0x4f4be9,_0x514bbf,_0x15c05c)}})[_0x430b('0x10')](function(_0x1fd145){if(_0x1fd145){return _0x1fd145[_0x430b('0x11')]({'UserId':_0x136a4e?_0x136a4e['id']:null});}})[_0x430b('0x10')](function(_0x25c55d){if(_0x25c55d){log(_0x430b('0x12'),_0x136a4e,_0x4f4be9,_0x514bbf,_0x15c05c,_0x2da2ff);}})[_0x430b('0x13')](function(){log(_0x430b('0x14'),_0x136a4e,_0x4f4be9,_0x514bbf,_0x15c05c,_0x2da2ff);});}exports[_0x430b('0x15')]=function(_0x499eb2,_0x450a23){return function(_0x2d12e4,_0x55df3d,_0x12c70e){var _0x5bbfaf=_0x2d12e4[_0x430b('0x16')];var _0x263400={};var _0x55a794=_0x2d12e4['query'];if(_0x263400){_0x263400=_[_0x430b('0x17')](_0x2d12e4['body']);_0x263400=_[_0x430b('0x18')](_0x263400,[_0x430b('0x19'),_0x430b('0x1a'),_0x430b('0x1b'),'fax','mobile']);}updateUser(_0x5bbfaf,_0x263400,_0x55a794,_0x499eb2,_0x450a23);_0x12c70e(null);};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f96=['license','split','createDecipher','format','%s:%s:%s','base64','utf8','final','parse','use','License','then','count','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','User','admin','user','isUserLimit','crypto','util','../../mysqldb','data1'];(function(_0x4df671,_0x12b67f){var _0x3f9658=function(_0x26151d){while(--_0x26151d){_0x4df671['push'](_0x4df671['shift']());}};_0x3f9658(++_0x12b67f);}(_0x2f96,0x104));var _0x62f9=function(_0x1fe8a4,_0xd9c7a7){_0x1fe8a4=_0x1fe8a4-0x0;var _0x5703e4=_0x2f96[_0x1fe8a4];return _0x5703e4;};'use strict';var crypto=require(_0x62f9('0x0'));var util=require(_0x62f9('0x1'));var compose=require('composable-middleware');var db=require(_0x62f9('0x2'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x37a517,_0x24390b){if(_0x37a517&&_0x24390b){if(_0x24390b[_0x62f9('0x3')]&&_0x24390b[_0x62f9('0x4')]){var _0x47ce99=_0x24390b[_0x62f9('0x3')];var _0x2cdcdd=_0x24390b['license'];var _0x3505d4=_0x47ce99[_0x62f9('0x5')]('-')[0x4];var _0x5a689b=_0x47ce99[_0x62f9('0x5')]('-')[0x0];var _0x4cb4ae=crypto[_0x62f9('0x6')]('aes-256-ctr',util[_0x62f9('0x7')](_0x62f9('0x8'),_0x3505d4,_0x47ce99,_0x5a689b));var _0xe36750=_0x4cb4ae['update'](_0x2cdcdd,_0x62f9('0x9'),_0x62f9('0xa'));_0xe36750+=_0x4cb4ae[_0x62f9('0xb')]('utf8');var _0x4a7f81=JSON[_0x62f9('0xc')](_0xe36750);return _0x4a7f81['hasOwnProperty'](_0x37a517)?_0x4a7f81[_0x37a517]:null;}}return null;}function isLimit(_0x32d455,_0x39ea84,_0x49f154,_0x13fb67){var _0x5aadd0=_0x39ea84;return compose()[_0x62f9('0xd')](function(_0x85be,_0xfc5c7f,_0xd74351){return db[_0x62f9('0xe')]['findOne']({'where':{'id':0x1},'raw':!![]})[_0x62f9('0xf')](function(_0x2c36dc){var _0x403144=getValueFromLicense(_0x32d455,_0x2c36dc);return _0x403144?_0x403144:_0x5aadd0;})[_0x62f9('0xf')](function(_0x22c0fb){_0x5aadd0=_0x22c0fb;return _0x49f154[_0x62f9('0x10')](_0x13fb67);})[_0x62f9('0xf')](function(_0xd43d37){if(_0xd43d37>=_0x5aadd0){return _0xfc5c7f['status'](0x193)[_0x62f9('0x11')]({'message':util[_0x62f9('0x7')](_0x62f9('0x12'),_0x32d455)});}_0xd74351();})[_0x62f9('0x13')](function(_0x1ee563){_0xd74351(_0x1ee563);});});}function isUserLimit(){return isLimit('users',0x1,db[_0x62f9('0x14')],{'where':{'$or':[{'role':_0x62f9('0x15')},{'role':_0x62f9('0x16')}]}});}exports[_0x62f9('0x17')]=isUserLimit;
\ No newline at end of file
+var _0x796f=['License','findOne','then','count','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','User','admin','isUserLimit','crypto','util','composable-middleware','../../config/environment','data1','license','createDecipher','aes-256-ctr','format','update','base64','utf8','parse','hasOwnProperty','use'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x796f,0x78));var _0xf796=function(_0x392223,_0x155967){_0x392223=_0x392223-0x0;var _0x17b2e7=_0x796f[_0x392223];return _0x17b2e7;};'use strict';var crypto=require(_0xf796('0x0'));var util=require(_0xf796('0x1'));var compose=require(_0xf796('0x2'));var db=require('../../mysqldb')['db'];var config=require(_0xf796('0x3'));function getValueFromLicense(_0x4da2d6,_0x10de66){if(_0x4da2d6&&_0x10de66){if(_0x10de66[_0xf796('0x4')]&&_0x10de66[_0xf796('0x5')]){var _0x4ea7b9=_0x10de66[_0xf796('0x4')];var _0x9e6f61=_0x10de66['license'];var _0x3109fc=_0x4ea7b9['split']('-')[0x4];var _0x579162=_0x4ea7b9['split']('-')[0x0];var _0x431dbf=crypto[_0xf796('0x6')](_0xf796('0x7'),util[_0xf796('0x8')]('%s:%s:%s',_0x3109fc,_0x4ea7b9,_0x579162));var _0xaead57=_0x431dbf[_0xf796('0x9')](_0x9e6f61,_0xf796('0xa'),_0xf796('0xb'));_0xaead57+=_0x431dbf['final'](_0xf796('0xb'));var _0x5ae1c9=JSON[_0xf796('0xc')](_0xaead57);return _0x5ae1c9[_0xf796('0xd')](_0x4da2d6)?_0x5ae1c9[_0x4da2d6]:null;}}return null;}function isLimit(_0xa789fd,_0x54d9d1,_0x5cbdb2,_0x4a1b67){var _0x3bd333=_0x54d9d1;return compose()[_0xf796('0xe')](function(_0x38314b,_0x2c3523,_0x1dae30){return db[_0xf796('0xf')][_0xf796('0x10')]({'where':{'id':0x1},'raw':!![]})['then'](function(_0x1f3061){var _0xfa0948=getValueFromLicense(_0xa789fd,_0x1f3061);return _0xfa0948?_0xfa0948:_0x3bd333;})[_0xf796('0x11')](function(_0x57efed){_0x3bd333=_0x57efed;return _0x5cbdb2[_0xf796('0x12')](_0x4a1b67);})[_0xf796('0x11')](function(_0xc83bd9){if(_0xc83bd9>=_0x3bd333){return _0x2c3523[_0xf796('0x13')](0x193)[_0xf796('0x14')]({'message':util[_0xf796('0x8')](_0xf796('0x15'),_0xa789fd)});}_0x1dae30();})[_0xf796('0x16')](function(_0x462975){_0x1dae30(_0x462975);});});}function isUserLimit(){return isLimit(_0xf796('0x17'),0x1,db[_0xf796('0x18')],{'where':{'$or':[{'role':_0xf796('0x19')},{'role':'user'}]}});}exports[_0xf796('0x1a')]=isUserLimit;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x42bc=['$in','<>\x20?','$substring','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','$lte','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','$notIn','start','$startsWith','pop','utcOffset','hours','minutes','seconds','lodash','moment','sqlOperator','startsWith','and','replace','[$and]','[$or]','split','slice','forEach','shift','indexOf','conditions','push','buildExpression','DATE','operator','$between','value','includes','$gt','add','days','format','YYYY-MM-DD','castTo','text','CAST(','\x20AS\x20','field','$ne','\x20OR\x20'];(function(_0x4e03c8,_0x20c2dd){var _0x6cb7d6=function(_0xf41762){while(--_0xf41762){_0x4e03c8['push'](_0x4e03c8['shift']());}};_0x6cb7d6(++_0x20c2dd);}(_0x42bc,0x7e));var _0xc42b=function(_0x181fba,_0x3e23f4){_0x181fba=_0x181fba-0x0;var _0x509d8d=_0x42bc[_0x181fba];return _0x509d8d;};'use strict';var _=require(_0xc42b('0x0'));var moment=require(_0xc42b('0x1'));exports['parseSearch']=function(_0x15ce91){var _0x2b79b7={'conditions':[]};_0x2b79b7[_0xc42b('0x2')]=_[_0xc42b('0x3')](_0x15ce91,'[$or]')?'or':_0xc42b('0x4');var _0x26d3ae=_0x15ce91[_0xc42b('0x5')](_0xc42b('0x6'),'')[_0xc42b('0x5')](_0xc42b('0x7'),'')[_0xc42b('0x8')]('||');for(var _0xcc2378=0x0;_0xcc2378<_0x26d3ae['length'];_0xcc2378++){var _0x225e19=_0x26d3ae[_0xcc2378][_0xc42b('0x8')](':=');var _0x535e4b=_0x225e19[0x0];var _0x105a4a=_0x225e19[_0xc42b('0x9')](0x1);_0x105a4a[_0xc42b('0xa')](function(_0x47b284){var _0x280c0b=_0x47b284['split']('[')[_0xc42b('0xb')]();var _0xaf575=_0x47b284['match'](/\[(.*?)\]/g);_0xaf575[_0xc42b('0xa')](function(_0x2d226a){var _0x1257cd=_0x2d226a[_0xc42b('0x8')]('[')['filter'](function(_0x4de788){return _0x4de788[_0xc42b('0xc')](']')>-0x1;})['map'](function(_0x29579d){return _0x29579d[_0xc42b('0x8')](']')[0x0];})[0x0];_0x2b79b7[_0xc42b('0xd')][_0xc42b('0xe')]({'field':_0x535e4b,'operator':_0x280c0b,'value':_0x1257cd});});});}return _0x2b79b7;};exports[_0xc42b('0xf')]=function(_0x49b4ef,_0x39ce10,_0x1600ea){var _0x3dbf5a={};if(_0x39ce10===_0xc42b('0x10')){if(_0x1600ea[_0xc42b('0x11')]==='$eq'){_0x1600ea[_0xc42b('0x11')]=_0xc42b('0x12');_0x1600ea[_0xc42b('0x13')]+=','+_0x1600ea[_0xc42b('0x13')];}else if(_[_0xc42b('0x14')]([_0xc42b('0x15'),'$lte'],_0x1600ea[_0xc42b('0x11')])){_0x1600ea['value']=moment(_0x1600ea[_0xc42b('0x13')])[_0xc42b('0x16')](0x1,_0xc42b('0x17'))[_0xc42b('0x18')](_0xc42b('0x19'));}}if(_0x1600ea[_0xc42b('0x1a')]){_0x39ce10=_0x1600ea[_0xc42b('0x1a')];_0x3dbf5a[_0xc42b('0x1b')]=_0xc42b('0x1c')+_0x49b4ef+'.'+_0x1600ea['field']+_0xc42b('0x1d')+_0x1600ea[_0xc42b('0x1a')]+')\x20'+parseOperator(_0x1600ea['operator']);}else{_0x3dbf5a[_0xc42b('0x1b')]=_0x49b4ef+'.'+_0x1600ea[_0xc42b('0x1e')]+'\x20'+parseOperator(_0x1600ea['operator']);}if(_[_0xc42b('0x14')]([_0xc42b('0x1f'),'$notIn'],_0x1600ea[_0xc42b('0x11')]))_0x3dbf5a['text']='('+_0x3dbf5a[_0xc42b('0x1b')]+_0xc42b('0x20')+_0x49b4ef+'.'+_0x1600ea[_0xc42b('0x1e')]+'\x20IS\x20NULL)';_0x3dbf5a[_0xc42b('0x13')]=parseValue(_0x39ce10,_0x1600ea[_0xc42b('0x11')],_0x1600ea[_0xc42b('0x13')]);return _0x3dbf5a;};function parseOperator(_0x440347){var _0x49bc43;switch(_0x440347){case _0xc42b('0x21'):_0x49bc43='IN\x20?';break;case'$notIn':_0x49bc43='NOT\x20IN\x20?';break;case'$eq':_0x49bc43='=\x20?';break;case _0xc42b('0x1f'):_0x49bc43=_0xc42b('0x22');break;case _0xc42b('0x23'):case'$startsWith':case _0xc42b('0x24'):_0x49bc43=_0xc42b('0x25');break;case _0xc42b('0x26'):_0x49bc43=_0xc42b('0x27');break;case _0xc42b('0x15'):_0x49bc43=_0xc42b('0x28');break;case _0xc42b('0x29'):_0x49bc43='<=\x20?';break;case _0xc42b('0x2a'):_0x49bc43=_0xc42b('0x2b');break;case _0xc42b('0x12'):_0x49bc43=_0xc42b('0x2c');break;}return _0x49bc43;}function parseValue(_0x156209,_0x13aa9c,_0x2f24ec){var _0x42587c={'start':undefined,'end':undefined};switch(_0x13aa9c){case _0xc42b('0x21'):case _0xc42b('0x2d'):_0x42587c[_0xc42b('0x2e')]=_0x2f24ec[_0xc42b('0x8')](',');break;case _0xc42b('0x23'):_0x42587c[_0xc42b('0x2e')]='%'+_0x2f24ec+'%';break;case _0xc42b('0x2f'):_0x42587c[_0xc42b('0x2e')]=_0x2f24ec+'%';break;case _0xc42b('0x24'):_0x42587c['start']='%'+_0x2f24ec;break;case _0xc42b('0x12'):var _0x59a2d5=_0x2f24ec['split'](',');var _0x2f24ec=_0x59a2d5['shift']();var _0x5569c0=_0x59a2d5[_0xc42b('0x30')]();if(_0x156209===_0xc42b('0x10')){_0x2f24ec=moment(_0x2f24ec)[_0xc42b('0x31')](0x0,!![])[_0xc42b('0x18')]();_0x5569c0=moment(_0x5569c0)[_0xc42b('0x31')](0x0,!![])[_0xc42b('0x16')](0x17,_0xc42b('0x32'))[_0xc42b('0x16')](0x3b,_0xc42b('0x33'))[_0xc42b('0x16')](0x3b,_0xc42b('0x34'))['format']();}_0x42587c={'start':_0x2f24ec,'end':_0x5569c0};break;default:_0x42587c['start']=_0x2f24ec;break;}return _0x42587c;}
\ No newline at end of file
+var _0xa122=['>\x20?','$lte','<=\x20?','$gte','>=\x20?','$in','start','$startsWith','pop','utcOffset','format','hours','minutes','seconds','parseSearch','sqlOperator','startsWith','[$or]','and','replace','[$and]','split','slice','forEach','shift','filter','map','conditions','push','buildExpression','DATE','operator','$eq','$between','value','$gt','add','days','YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','includes','$ne','\x20OR\x20','$notIn','=\x20?','<>\x20?','$substring','$endsWith','$lt','<\x20?'];(function(_0x93a23e,_0xa070c0){var _0x449575=function(_0x5f455b){while(--_0x5f455b){_0x93a23e['push'](_0x93a23e['shift']());}};_0x449575(++_0xa070c0);}(_0xa122,0x7a));var _0x2a12=function(_0x4b6614,_0xfa7944){_0x4b6614=_0x4b6614-0x0;var _0x93d54f=_0xa122[_0x4b6614];return _0x93d54f;};'use strict';var _=require('lodash');var moment=require('moment');exports[_0x2a12('0x0')]=function(_0x206bb1){var _0x28b796={'conditions':[]};_0x28b796[_0x2a12('0x1')]=_[_0x2a12('0x2')](_0x206bb1,_0x2a12('0x3'))?'or':_0x2a12('0x4');var _0x5469a8=_0x206bb1[_0x2a12('0x5')](_0x2a12('0x6'),'')[_0x2a12('0x5')](_0x2a12('0x3'),'')[_0x2a12('0x7')]('||');for(var _0x2f53af=0x0;_0x2f53af<_0x5469a8['length'];_0x2f53af++){var _0x3e22ab=_0x5469a8[_0x2f53af][_0x2a12('0x7')](':=');var _0xadb4ec=_0x3e22ab[0x0];var _0x4fd81b=_0x3e22ab[_0x2a12('0x8')](0x1);_0x4fd81b[_0x2a12('0x9')](function(_0x298867){var _0x330b4c=_0x298867[_0x2a12('0x7')]('[')[_0x2a12('0xa')]();var _0x31a406=_0x298867['match'](/\[(.*?)\]/g);_0x31a406[_0x2a12('0x9')](function(_0x5c760d){var _0xa1742=_0x5c760d[_0x2a12('0x7')]('[')[_0x2a12('0xb')](function(_0x5e04d6){return _0x5e04d6['indexOf'](']')>-0x1;})[_0x2a12('0xc')](function(_0x124b59){return _0x124b59[_0x2a12('0x7')](']')[0x0];})[0x0];_0x28b796[_0x2a12('0xd')][_0x2a12('0xe')]({'field':_0xadb4ec,'operator':_0x330b4c,'value':_0xa1742});});});}return _0x28b796;};exports[_0x2a12('0xf')]=function(_0xb8bae1,_0x4c4431,_0x1b3cad){var _0x32a214={};if(_0x4c4431===_0x2a12('0x10')){if(_0x1b3cad[_0x2a12('0x11')]===_0x2a12('0x12')){_0x1b3cad['operator']=_0x2a12('0x13');_0x1b3cad[_0x2a12('0x14')]+=','+_0x1b3cad[_0x2a12('0x14')];}else if(_['includes']([_0x2a12('0x15'),'$lte'],_0x1b3cad[_0x2a12('0x11')])){_0x1b3cad[_0x2a12('0x14')]=moment(_0x1b3cad[_0x2a12('0x14')])[_0x2a12('0x16')](0x1,_0x2a12('0x17'))['format'](_0x2a12('0x18'));}}if(_0x1b3cad['castTo']){_0x4c4431=_0x1b3cad[_0x2a12('0x19')];_0x32a214[_0x2a12('0x1a')]=_0x2a12('0x1b')+_0xb8bae1+'.'+_0x1b3cad[_0x2a12('0x1c')]+_0x2a12('0x1d')+_0x1b3cad[_0x2a12('0x19')]+')\x20'+parseOperator(_0x1b3cad['operator']);}else{_0x32a214['text']=_0xb8bae1+'.'+_0x1b3cad[_0x2a12('0x1c')]+'\x20'+parseOperator(_0x1b3cad[_0x2a12('0x11')]);}if(_[_0x2a12('0x1e')]([_0x2a12('0x1f'),'$notIn'],_0x1b3cad[_0x2a12('0x11')]))_0x32a214[_0x2a12('0x1a')]='('+_0x32a214[_0x2a12('0x1a')]+_0x2a12('0x20')+_0xb8bae1+'.'+_0x1b3cad[_0x2a12('0x1c')]+'\x20IS\x20NULL)';_0x32a214[_0x2a12('0x14')]=parseValue(_0x4c4431,_0x1b3cad[_0x2a12('0x11')],_0x1b3cad[_0x2a12('0x14')]);return _0x32a214;};function parseOperator(_0x103d61){var _0x9a2a8a;switch(_0x103d61){case'$in':_0x9a2a8a='IN\x20?';break;case _0x2a12('0x21'):_0x9a2a8a='NOT\x20IN\x20?';break;case _0x2a12('0x12'):_0x9a2a8a=_0x2a12('0x22');break;case'$ne':_0x9a2a8a=_0x2a12('0x23');break;case _0x2a12('0x24'):case'$startsWith':case _0x2a12('0x25'):_0x9a2a8a='LIKE\x20?';break;case _0x2a12('0x26'):_0x9a2a8a=_0x2a12('0x27');break;case _0x2a12('0x15'):_0x9a2a8a=_0x2a12('0x28');break;case _0x2a12('0x29'):_0x9a2a8a=_0x2a12('0x2a');break;case _0x2a12('0x2b'):_0x9a2a8a=_0x2a12('0x2c');break;case _0x2a12('0x13'):_0x9a2a8a='BETWEEN\x20?\x20AND\x20?';break;}return _0x9a2a8a;}function parseValue(_0x276566,_0xb71c35,_0x1d807c){var _0x332047={'start':undefined,'end':undefined};switch(_0xb71c35){case _0x2a12('0x2d'):case _0x2a12('0x21'):_0x332047[_0x2a12('0x2e')]=_0x1d807c['split'](',');break;case _0x2a12('0x24'):_0x332047[_0x2a12('0x2e')]='%'+_0x1d807c+'%';break;case _0x2a12('0x2f'):_0x332047[_0x2a12('0x2e')]=_0x1d807c+'%';break;case'$endsWith':_0x332047[_0x2a12('0x2e')]='%'+_0x1d807c;break;case _0x2a12('0x13'):var _0x2b21c5=_0x1d807c[_0x2a12('0x7')](',');var _0x1d807c=_0x2b21c5[_0x2a12('0xa')]();var _0x4c2baa=_0x2b21c5[_0x2a12('0x30')]();if(_0x276566===_0x2a12('0x10')){_0x1d807c=moment(_0x1d807c)[_0x2a12('0x31')](0x0,!![])[_0x2a12('0x32')]();_0x4c2baa=moment(_0x4c2baa)[_0x2a12('0x31')](0x0,!![])[_0x2a12('0x16')](0x17,_0x2a12('0x33'))[_0x2a12('0x16')](0x3b,_0x2a12('0x34'))[_0x2a12('0x16')](0x3b,_0x2a12('0x35'))[_0x2a12('0x32')]();}_0x332047={'start':_0x1d807c,'end':_0x4c2baa};break;default:_0x332047[_0x2a12('0x2e')]=_0x1d807c;break;}return _0x332047;}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf33c=['col','unsigned','substr','omit','isObject','isString','length','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','forEach','replace','push','join','getOptions','query','$id','model','intersection','limit','order','sort','where','pick','merge','VIRTUAL','lower','options','sequelize','moment','parse','keys','includes','fields','split','filters','isEmpty','find','type','$gte','YYYY-MM-DD','format','$lte','utc','subtract','name','uniqueid','isArray','offset','map','indexOf','priority','cast'];(function(_0x318256,_0xa773f3){var _0xb1e352=function(_0x4bb14e){while(--_0x4bb14e){_0x318256['push'](_0x318256['shift']());}};_0xb1e352(++_0xa773f3);}(_0xf33c,0x176));var _0xcf33=function(_0x4b537b,_0x1ff51d){_0x4b537b=_0x4b537b-0x0;var _0x5548c3=_0xf33c[_0x4b537b];return _0x5548c3;};'use strict';var _=require('lodash');var sequelize=require(_0xcf33('0x0'));var moment=require(_0xcf33('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x43e331){var _0x70dddc=['ne'];try{var _0x275316=JSON[_0xcf33('0x2')](_0x43e331);var _0x12c2c8=Object[_0xcf33('0x3')](_0x275316)[0x0];return _0x70dddc[_0xcf33('0x4')](_0x12c2c8);}catch(_0x1d41ca){return![];}}function getOperatorValue(_0x266523){var _0x169c92=JSON[_0xcf33('0x2')](_0x266523);var _0x36bf5d=Object[_0xcf33('0x3')](_0x169c92)[0x0];var _0x32a827=_0x169c92[_0x36bf5d];return{['$'+_0x36bf5d]:_0x32a827};}exports[_0xcf33('0x5')]=function(_0x3da842){var _0x22c736=null;if(_0x3da842){_0x22c736=_0x3da842[_0xcf33('0x6')](',');}return _0x22c736;};exports[_0xcf33('0x7')]=function(_0x4db0c3,_0x2f9fbe){var _0x4f01d3={};if(!_[_0xcf33('0x8')](_0x4db0c3)){_['forOwn'](_0x4db0c3,function(_0x47efcd,_0x471f10){try{if(_0x2f9fbe){var _0x576b52=_[_0xcf33('0x9')](_0x2f9fbe,{'name':_0x471f10})||{};if(hasSequelizeOperator(_0x47efcd)){_0x4f01d3[_0x471f10]=getOperatorValue(_0x47efcd);}else if(_0x576b52[_0xcf33('0xa')]==='DATE'&&_['isPlainObject'](_0x47efcd)){var _0x436c39=JSON['parse'](_0x47efcd);var _0x484f75={'$gte':moment(moment(_0x436c39[_0xcf33('0xb')])['format'](_0xcf33('0xc')))['utc']()[_0xcf33('0xd')](),'$lte':moment(moment(_0x436c39[_0xcf33('0xe')])[_0xcf33('0xd')]('YYYY-MM-DD'))[_0xcf33('0xf')]()[_0xcf33('0x10')](0x1,'s')['format']()};_0x4f01d3[_0x471f10]=_0x484f75;}else if(_0x576b52[_0xcf33('0x11')]===_0xcf33('0x12')){_0x4f01d3[_0x471f10]=_0x47efcd;}else{_0x4f01d3[_0x471f10]=_[_0xcf33('0x13')](_0x47efcd)?_0x47efcd:JSON[_0xcf33('0x2')](_0x47efcd);}}else{_0x4f01d3[_0x471f10]=_[_0xcf33('0x13')](_0x47efcd)?_0x47efcd:JSON[_0xcf33('0x2')](_0x47efcd);}}catch(_0x5ae860){_0x4f01d3[_0x471f10]=_0x47efcd[_0xcf33('0x6')](',');}});}return _0x4f01d3;};exports['limit']=function(_0x45cc33){_0x45cc33=parseInt(_0x45cc33,0xa);if(!_0x45cc33||_0x45cc33<0x0){_0x45cc33=LIMIT_VALUE;}return _0x45cc33;};exports[_0xcf33('0x14')]=function(_0x1a3a40){_0x1a3a40=parseInt(_0x1a3a40,0xa);if(!_0x1a3a40||_0x1a3a40<0x0){_0x1a3a40=0x0;}return _0x1a3a40;};exports['sort']=function(_0x329673){var _0x215f93,_0x149de1=null;if(_0x329673){_0x215f93=_0x329673['split'](',');_0x149de1=_[_0xcf33('0x15')](_0x215f93,function(_0x5f2f59){if(_0x5f2f59[_0xcf33('0x16')]('-')===0x0){return[_0x5f2f59===_0xcf33('0x17')?sequelize[_0xcf33('0x18')](sequelize[_0xcf33('0x19')](_0xcf33('0x17')),_0xcf33('0x1a')):_0x5f2f59[_0xcf33('0x1b')](0x1),'DESC'];}else{return[_0x5f2f59===_0xcf33('0x17')?sequelize['cast'](sequelize['col'](_0xcf33('0x17')),_0xcf33('0x1a')):_0x5f2f59,'ASC'];}});}return _0x149de1;};exports[_0xcf33('0x1c')]=function(_0x3ebed4,_0x4c0be0){if(_[_0xcf33('0x8')](_0x3ebed4)){return _0x3ebed4;}if(_[_0xcf33('0x13')](_0x3ebed4)){for(var _0x57bf12=0x0;_0x57bf12<_0x3ebed4['length'];_0x57bf12+=0x1){_0x3ebed4[_0x57bf12]=this[_0xcf33('0x1c')](_0x3ebed4[_0x57bf12],_0x4c0be0);}return _0x3ebed4;}if(!_[_0xcf33('0x1d')](_0x3ebed4)){return _0x3ebed4;}if(_[_0xcf33('0x1e')](_0x4c0be0)){_0x4c0be0=[_0x4c0be0];}if(!_['isArray'](_0x4c0be0)){return _0x3ebed4;}for(var _0x1bd752=0x0;_0x1bd752<_0x4c0be0[_0xcf33('0x1f')];_0x1bd752+=0x1){_[_0xcf33('0x20')](_0x3ebed4,_0x4c0be0[_0x1bd752]);}for(var _0x50ddd4 in _0x3ebed4){if(_0x3ebed4[_0xcf33('0x21')](_0x50ddd4)){_0x3ebed4[_0x50ddd4]=this[_0xcf33('0x1c')](_0x3ebed4[_0x50ddd4],_0x4c0be0);}}return _0x3ebed4;};exports[_0xcf33('0x22')]=function(_0x47ae89){return _0x47ae89[_0xcf33('0x23')](RegExp(_0xcf33('0x24')))?!![]:![];};exports[_0xcf33('0x25')]=function(_0x22c8d5){return _0x22c8d5[_0xcf33('0x23')](/^\S+@\S+$/)?!![]:![];};exports[_0xcf33('0x26')]=function(_0x5089de){var _0x2a33d1=[];_0x5089de[_0xcf33('0x6')](/[ ,]+/)[_0xcf33('0x27')](function(_0x383b0f){_0x383b0f=_0x383b0f[_0xcf33('0x28')](/([^:]")"+/g,'$1');_0x383b0f='+'+_0x383b0f+'*';if(_0x383b0f[_0xcf33('0x4')]('@'))_0x383b0f='\x22'+_0x383b0f+'\x22';_0x2a33d1[_0xcf33('0x29')](_0x383b0f);});return _0x2a33d1[_0xcf33('0x2a')]('\x20');};exports[_0xcf33('0x2b')]=function(_0x2b933c,_0x5aea3f,_0x206af0){var _0x320fc0={},_0x170691={};if(_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x2d')]){_0x5aea3f[_0xcf33('0x2c')]['id']=_0x5aea3f[_0xcf33('0x2c')]['$id'];delete _0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x2d')];}_0x320fc0[_0xcf33('0x2e')]=_[_0xcf33('0x15')](_0x2b933c,_0xcf33('0x11'));_0x320fc0[_0xcf33('0x2c')]=_['keys'](_0x5aea3f['query']);_0x320fc0[_0xcf33('0x7')]=_[_0xcf33('0x2f')](_0x320fc0[_0xcf33('0x2e')],_0x320fc0['query']);_0x170691['attributes']=_[_0xcf33('0x2f')](_0x320fc0[_0xcf33('0x2e')],this['fields'](_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x5')]));_0x170691['attributes']=_0x170691['attributes']['length']?_0x170691['attributes']:_0x320fc0[_0xcf33('0x2e')];if(!_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x21')]('nolimit')){_0x170691['limit']=this[_0xcf33('0x30')](_0x5aea3f['query'][_0xcf33('0x30')]);_0x170691[_0xcf33('0x14')]=this[_0xcf33('0x14')](_0x5aea3f[_0xcf33('0x2c')]['offset']);}_0x170691[_0xcf33('0x31')]=this[_0xcf33('0x32')](_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x32')]);_0x170691[_0xcf33('0x33')]=this[_0xcf33('0x7')](_[_0xcf33('0x34')](_0x5aea3f[_0xcf33('0x2c')],_0x320fc0['filters']),_0x2b933c);if(_0x5aea3f[_0xcf33('0x2c')]['filter']){_0x170691[_0xcf33('0x33')]=_[_0xcf33('0x35')](_0x170691[_0xcf33('0x33')],{'$or':_[_0xcf33('0x15')](_0x2b933c,function(_0x3b9fd4){if(_0x3b9fd4[_0xcf33('0xa')]!==_0xcf33('0x36')){if(_0x206af0){return sequelize[_0xcf33('0x33')](sequelize['fn'](_0xcf33('0x37'),sequelize['col'](_0x3b9fd4['name'])),{'$like':sequelize['fn']('lower','%'+_0x5aea3f['query']['filter']+'%')});}else{var _0x5daa6c={};_0x5daa6c[_0x3b9fd4[_0xcf33('0x11')]]={'$like':'%'+_0x5aea3f['query']['filter']+'%'};return _0x5daa6c;}}})});}_0x170691=_[_0xcf33('0x35')]({},_0x170691,_0x5aea3f[_0xcf33('0x38')]);return _0x170691;};
\ No newline at end of file
+var _0x94d3=['model','filters','intersection','attributes','fields','hasOwnProperty','where','pick','merge','lower','filter','options','lodash','sequelize','moment','keys','parse','split','isEmpty','forOwn','find','type','isPlainObject','$gte','format','YYYY-MM-DD','utc','$lte','subtract','name','isArray','limit','offset','sort','map','priority','cast','col','unsigned','ASC','omit','length','isString','isNumeric','match','isEmail','forEach','replace','includes','push','join','getOptions','query'];(function(_0x2a8a31,_0x5e551b){var _0x2c199e=function(_0x404738){while(--_0x404738){_0x2a8a31['push'](_0x2a8a31['shift']());}};_0x2c199e(++_0x5e551b);}(_0x94d3,0x1b4));var _0x394d=function(_0x33cd42,_0x37725a){_0x33cd42=_0x33cd42-0x0;var _0x234c55=_0x94d3[_0x33cd42];return _0x234c55;};'use strict';var _=require(_0x394d('0x0'));var sequelize=require(_0x394d('0x1'));var moment=require(_0x394d('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x1538f1){var _0x56571c=['ne'];try{var _0x1694b9=JSON['parse'](_0x1538f1);var _0xe77376=Object[_0x394d('0x3')](_0x1694b9)[0x0];return _0x56571c['includes'](_0xe77376);}catch(_0x53fc0b){return![];}}function getOperatorValue(_0x409dd7){var _0xcb9ec7=JSON[_0x394d('0x4')](_0x409dd7);var _0x221bae=Object[_0x394d('0x3')](_0xcb9ec7)[0x0];var _0x348a0a=_0xcb9ec7[_0x221bae];return{['$'+_0x221bae]:_0x348a0a};}exports['fields']=function(_0x529faf){var _0x15cd8b=null;if(_0x529faf){_0x15cd8b=_0x529faf[_0x394d('0x5')](',');}return _0x15cd8b;};exports['filters']=function(_0x2cefc2,_0x436ef0){var _0x11bc7b={};if(!_[_0x394d('0x6')](_0x2cefc2)){_[_0x394d('0x7')](_0x2cefc2,function(_0x2be379,_0xd125ff){try{if(_0x436ef0){var _0x4b4c86=_[_0x394d('0x8')](_0x436ef0,{'name':_0xd125ff})||{};if(hasSequelizeOperator(_0x2be379)){_0x11bc7b[_0xd125ff]=getOperatorValue(_0x2be379);}else if(_0x4b4c86[_0x394d('0x9')]==='DATE'&&_[_0x394d('0xa')](_0x2be379)){var _0xf00048=JSON[_0x394d('0x4')](_0x2be379);var _0x2161d7={'$gte':moment(moment(_0xf00048[_0x394d('0xb')])[_0x394d('0xc')](_0x394d('0xd')))[_0x394d('0xe')]()['format'](),'$lte':moment(moment(_0xf00048[_0x394d('0xf')])[_0x394d('0xc')](_0x394d('0xd')))['utc']()[_0x394d('0x10')](0x1,'s')[_0x394d('0xc')]()};_0x11bc7b[_0xd125ff]=_0x2161d7;}else if(_0x4b4c86[_0x394d('0x11')]==='uniqueid'){_0x11bc7b[_0xd125ff]=_0x2be379;}else{_0x11bc7b[_0xd125ff]=_[_0x394d('0x12')](_0x2be379)?_0x2be379:JSON[_0x394d('0x4')](_0x2be379);}}else{_0x11bc7b[_0xd125ff]=_[_0x394d('0x12')](_0x2be379)?_0x2be379:JSON['parse'](_0x2be379);}}catch(_0x4d57fc){_0x11bc7b[_0xd125ff]=_0x2be379[_0x394d('0x5')](',');}});}return _0x11bc7b;};exports[_0x394d('0x13')]=function(_0x27a4ec){_0x27a4ec=parseInt(_0x27a4ec,0xa);if(!_0x27a4ec||_0x27a4ec<0x0){_0x27a4ec=LIMIT_VALUE;}return _0x27a4ec;};exports[_0x394d('0x14')]=function(_0x663d5c){_0x663d5c=parseInt(_0x663d5c,0xa);if(!_0x663d5c||_0x663d5c<0x0){_0x663d5c=0x0;}return _0x663d5c;};exports[_0x394d('0x15')]=function(_0x10bc7a){var _0x1c0760,_0xd0f1b4=null;if(_0x10bc7a){_0x1c0760=_0x10bc7a[_0x394d('0x5')](',');_0xd0f1b4=_[_0x394d('0x16')](_0x1c0760,function(_0x57a871){if(_0x57a871['indexOf']('-')===0x0){return[_0x57a871===_0x394d('0x17')?sequelize[_0x394d('0x18')](sequelize[_0x394d('0x19')](_0x394d('0x17')),'unsigned'):_0x57a871['substr'](0x1),'DESC'];}else{return[_0x57a871===_0x394d('0x17')?sequelize[_0x394d('0x18')](sequelize[_0x394d('0x19')]('priority'),_0x394d('0x1a')):_0x57a871,_0x394d('0x1b')];}});}return _0xd0f1b4;};exports[_0x394d('0x1c')]=function(_0x1e55f1,_0x4a1182){if(_[_0x394d('0x6')](_0x1e55f1)){return _0x1e55f1;}if(_[_0x394d('0x12')](_0x1e55f1)){for(var _0x2ca39d=0x0;_0x2ca39d<_0x1e55f1[_0x394d('0x1d')];_0x2ca39d+=0x1){_0x1e55f1[_0x2ca39d]=this['omit'](_0x1e55f1[_0x2ca39d],_0x4a1182);}return _0x1e55f1;}if(!_['isObject'](_0x1e55f1)){return _0x1e55f1;}if(_[_0x394d('0x1e')](_0x4a1182)){_0x4a1182=[_0x4a1182];}if(!_[_0x394d('0x12')](_0x4a1182)){return _0x1e55f1;}for(var _0x57a864=0x0;_0x57a864<_0x4a1182['length'];_0x57a864+=0x1){_['unset'](_0x1e55f1,_0x4a1182[_0x57a864]);}for(var _0x34551b in _0x1e55f1){if(_0x1e55f1['hasOwnProperty'](_0x34551b)){_0x1e55f1[_0x34551b]=this[_0x394d('0x1c')](_0x1e55f1[_0x34551b],_0x4a1182);}}return _0x1e55f1;};exports[_0x394d('0x1f')]=function(_0x91c203){return _0x91c203[_0x394d('0x20')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0x394d('0x21')]=function(_0x26f459){return _0x26f459[_0x394d('0x20')](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0x2f5ea0){var _0x1f449d=[];_0x2f5ea0[_0x394d('0x5')](/[ ,]+/)[_0x394d('0x22')](function(_0x29c0f8){_0x29c0f8=_0x29c0f8[_0x394d('0x23')](/([^:]")"+/g,'$1');_0x29c0f8='+'+_0x29c0f8+'*';if(_0x29c0f8[_0x394d('0x24')]('@'))_0x29c0f8='\x22'+_0x29c0f8+'\x22';_0x1f449d[_0x394d('0x25')](_0x29c0f8);});return _0x1f449d[_0x394d('0x26')]('\x20');};exports[_0x394d('0x27')]=function(_0x3ebfac,_0xf40353,_0x44c706){var _0x591b38={},_0x31db52={};if(_0xf40353[_0x394d('0x28')]['$id']){_0xf40353[_0x394d('0x28')]['id']=_0xf40353[_0x394d('0x28')]['$id'];delete _0xf40353[_0x394d('0x28')]['$id'];}_0x591b38[_0x394d('0x29')]=_['map'](_0x3ebfac,_0x394d('0x11'));_0x591b38[_0x394d('0x28')]=_[_0x394d('0x3')](_0xf40353['query']);_0x591b38[_0x394d('0x2a')]=_[_0x394d('0x2b')](_0x591b38[_0x394d('0x29')],_0x591b38[_0x394d('0x28')]);_0x31db52[_0x394d('0x2c')]=_[_0x394d('0x2b')](_0x591b38[_0x394d('0x29')],this[_0x394d('0x2d')](_0xf40353[_0x394d('0x28')]['fields']));_0x31db52[_0x394d('0x2c')]=_0x31db52[_0x394d('0x2c')][_0x394d('0x1d')]?_0x31db52[_0x394d('0x2c')]:_0x591b38[_0x394d('0x29')];if(!_0xf40353[_0x394d('0x28')][_0x394d('0x2e')]('nolimit')){_0x31db52[_0x394d('0x13')]=this['limit'](_0xf40353[_0x394d('0x28')][_0x394d('0x13')]);_0x31db52[_0x394d('0x14')]=this['offset'](_0xf40353[_0x394d('0x28')][_0x394d('0x14')]);}_0x31db52['order']=this['sort'](_0xf40353[_0x394d('0x28')][_0x394d('0x15')]);_0x31db52[_0x394d('0x2f')]=this[_0x394d('0x2a')](_[_0x394d('0x30')](_0xf40353['query'],_0x591b38[_0x394d('0x2a')]),_0x3ebfac);if(_0xf40353[_0x394d('0x28')]['filter']){_0x31db52[_0x394d('0x2f')]=_[_0x394d('0x31')](_0x31db52['where'],{'$or':_[_0x394d('0x16')](_0x3ebfac,function(_0x419a82){if(_0x419a82[_0x394d('0x9')]!=='VIRTUAL'){if(_0x44c706){return sequelize[_0x394d('0x2f')](sequelize['fn'](_0x394d('0x32'),sequelize[_0x394d('0x19')](_0x419a82[_0x394d('0x11')])),{'$like':sequelize['fn']('lower','%'+_0xf40353['query'][_0x394d('0x33')]+'%')});}else{var _0x55f2c9={};_0x55f2c9[_0x419a82[_0x394d('0x11')]]={'$like':'%'+_0xf40353[_0x394d('0x28')][_0x394d('0x33')]+'%'};return _0x55f2c9;}}})});}_0x31db52=_[_0x394d('0x31')]({},_0x31db52,_0xf40353[_0x394d('0x34')]);return _0x31db52;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf58f=['./environment','../mysqldb','get','set','appPath','join','root','public','test','client','json\x20replacer','toISOString','split','static','views','engine','html','ejs','view\x20engine','use','urlencoded','50mb','initialize','express','serve-favicon','body-parser','method-override','cookie-parser','errorhandler','passport','cors','moment'];(function(_0xc83285,_0x3860f3){var _0x59ef36=function(_0x375eaf){while(--_0x375eaf){_0xc83285['push'](_0xc83285['shift']());}};_0x59ef36(++_0x3860f3);}(_0xf58f,0xb7));var _0xff58=function(_0x35d673,_0x5263b1){_0x35d673=_0x35d673-0x0;var _0xe39ad0=_0xf58f[_0x35d673];return _0xe39ad0;};'use strict';var express=require(_0xff58('0x0'));var favicon=require(_0xff58('0x1'));var bodyParser=require(_0xff58('0x2'));var methodOverride=require(_0xff58('0x3'));var cookieParser=require(_0xff58('0x4'));var errorHandler=require(_0xff58('0x5'));var path=require('path');var passport=require(_0xff58('0x6'));var cors=require(_0xff58('0x7'));var moment=require(_0xff58('0x8'));var config=require(_0xff58('0x9'));var db=require(_0xff58('0xa'))['db'];exports['default']=function(_0x159052){var _0xefd596=_0x159052[_0xff58('0xb')]('env');if(_0xefd596==='production'){_0x159052[_0xff58('0xc')](_0xff58('0xd'),path[_0xff58('0xe')](config[_0xff58('0xf')],_0xff58('0x10')));}if(_0xefd596==='development'||_0xefd596===_0xff58('0x11')){_0x159052[_0xff58('0xc')]('appPath',path['join'](config[_0xff58('0xf')],_0xff58('0x12')));_0x159052['use'](errorHandler());}_0x159052[_0xff58('0xc')](_0xff58('0x13'),function(_0x37ff87,_0x1ba923){if(this[_0x37ff87]instanceof Date){_0x1ba923=this[_0x37ff87][_0xff58('0x14')]()[_0xff58('0x15')]('.')[0x0]+'Z';}return _0x1ba923;});_0x159052['use'](express[_0xff58('0x16')](_0x159052[_0xff58('0xb')](_0xff58('0xd'))));_0x159052[_0xff58('0xc')](_0xff58('0x17'),config[_0xff58('0xf')]+'/server/views');_0x159052[_0xff58('0x18')](_0xff58('0x19'),require(_0xff58('0x1a'))['renderFile']);_0x159052[_0xff58('0xc')](_0xff58('0x1b'),_0xff58('0x19'));_0x159052[_0xff58('0x1c')](bodyParser[_0xff58('0x1d')]({'limit':_0xff58('0x1e'),'extended':!![]}));_0x159052['use'](bodyParser['json']({'limit':_0xff58('0x1e')}));_0x159052[_0xff58('0x1c')](cors());_0x159052[_0xff58('0x1c')](methodOverride());_0x159052[_0xff58('0x1c')](cookieParser());_0x159052[_0xff58('0x1c')](passport[_0xff58('0x1f')]());};
\ No newline at end of file
+var _0xeb12=['express','serve-favicon','body-parser','method-override','cookie-parser','errorhandler','path','cors','moment','./environment','../mysqldb','default','get','env','set','appPath','join','development','root','client','use','json\x20replacer','toISOString','static','views','/server/views','html','ejs','view\x20engine','urlencoded','json','50mb','initialize'];(function(_0x25d467,_0x10b801){var _0x399ff6=function(_0x5b595d){while(--_0x5b595d){_0x25d467['push'](_0x25d467['shift']());}};_0x399ff6(++_0x10b801);}(_0xeb12,0x108));var _0x2eb1=function(_0x44d797,_0x276017){_0x44d797=_0x44d797-0x0;var _0x4005c2=_0xeb12[_0x44d797];return _0x4005c2;};'use strict';var express=require(_0x2eb1('0x0'));var favicon=require(_0x2eb1('0x1'));var bodyParser=require(_0x2eb1('0x2'));var methodOverride=require(_0x2eb1('0x3'));var cookieParser=require(_0x2eb1('0x4'));var errorHandler=require(_0x2eb1('0x5'));var path=require(_0x2eb1('0x6'));var passport=require('passport');var cors=require(_0x2eb1('0x7'));var moment=require(_0x2eb1('0x8'));var config=require(_0x2eb1('0x9'));var db=require(_0x2eb1('0xa'))['db'];exports[_0x2eb1('0xb')]=function(_0x1b6212){var _0x7c6690=_0x1b6212[_0x2eb1('0xc')](_0x2eb1('0xd'));if(_0x7c6690==='production'){_0x1b6212[_0x2eb1('0xe')](_0x2eb1('0xf'),path[_0x2eb1('0x10')](config['root'],'public'));}if(_0x7c6690===_0x2eb1('0x11')||_0x7c6690==='test'){_0x1b6212[_0x2eb1('0xe')]('appPath',path[_0x2eb1('0x10')](config[_0x2eb1('0x12')],_0x2eb1('0x13')));_0x1b6212[_0x2eb1('0x14')](errorHandler());}_0x1b6212['set'](_0x2eb1('0x15'),function(_0x1b648a,_0x3b2e94){if(this[_0x1b648a]instanceof Date){_0x3b2e94=this[_0x1b648a][_0x2eb1('0x16')]()['split']('.')[0x0]+'Z';}return _0x3b2e94;});_0x1b6212[_0x2eb1('0x14')](express[_0x2eb1('0x17')](_0x1b6212[_0x2eb1('0xc')](_0x2eb1('0xf'))));_0x1b6212[_0x2eb1('0xe')](_0x2eb1('0x18'),config[_0x2eb1('0x12')]+_0x2eb1('0x19'));_0x1b6212['engine'](_0x2eb1('0x1a'),require(_0x2eb1('0x1b'))['renderFile']);_0x1b6212[_0x2eb1('0xe')](_0x2eb1('0x1c'),_0x2eb1('0x1a'));_0x1b6212[_0x2eb1('0x14')](bodyParser[_0x2eb1('0x1d')]({'limit':'50mb','extended':!![]}));_0x1b6212['use'](bodyParser[_0x2eb1('0x1e')]({'limit':_0x2eb1('0x1f')}));_0x1b6212['use'](cors());_0x1b6212[_0x2eb1('0x14')](methodOverride());_0x1b6212[_0x2eb1('0x14')](cookieParser());_0x1b6212[_0x2eb1('0x14')](passport[_0x2eb1('0x20')]());};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6efc=['hex','getUuid','licenseToken','test','win32','dmidecode\x20--string\x20system-uuid','utf8','hostname','macAddress','ipAddress','substring','lodash','crypto','bimedia-machine-uuid','child_process','networkInterfaces','orderBy','length','filter','family','IPv4','internal','concat','head','mac','address','127.0.0.1','getFirstInterface','cpus','map','model','join','createHash','md5','update','digest'];(function(_0x5d31f3,_0x4239b0){var _0x1cc88c=function(_0x1be8fc){while(--_0x1be8fc){_0x5d31f3['push'](_0x5d31f3['shift']());}};_0x1cc88c(++_0x4239b0);}(_0x6efc,0x1bb));var _0xc6ef=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6efc[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc6ef('0x0'));var os=require('os');var crypto=require(_0xc6ef('0x1'));var machine=require(_0xc6ef('0x2'));var exec=require(_0xc6ef('0x3'))['execSync'];var config=require('../environment');function getInterfaces(){var _0x12f011=[];var _0x318372=os[_0xc6ef('0x4')]();var _0x461332=_[_0xc6ef('0x5')](_['keys'](_0x318372));for(var _0x452e62=0x0;_0x452e62<_0x461332[_0xc6ef('0x6')];_0x452e62++){var _0x7be7a=_0x318372[_0x461332[_0x452e62]][_0xc6ef('0x7')](function(_0xb3ee8){return _0xb3ee8[_0xc6ef('0x8')]===_0xc6ef('0x9')&&_0xb3ee8[_0xc6ef('0xa')]===![];});_0x12f011=_0x12f011[_0xc6ef('0xb')](_0x7be7a);}return _0x12f011;}function getFirstInterface(){var _0x5384d5=_[_0xc6ef('0xc')](getInterfaces());return{'macAddress':_0x5384d5&&_0x5384d5['mac']?_0x5384d5[_0xc6ef('0xd')]:'00:00:00:00:00:00','ipAddress':_0x5384d5&&_0x5384d5[_0xc6ef('0xe')]?_0x5384d5[_0xc6ef('0xe')]:_0xc6ef('0xf')};}exports[_0xc6ef('0x10')]=getFirstInterface;function getCPUhash(){var _0xb792c1=_['orderBy'](os[_0xc6ef('0x11')]()[_0xc6ef('0x12')](function(_0x50e703){return _0x50e703[_0xc6ef('0x13')];}))[_0xc6ef('0x14')](':');return crypto[_0xc6ef('0x15')](_0xc6ef('0x16'))[_0xc6ef('0x17')](_0xb792c1)[_0xc6ef('0x18')](_0xc6ef('0x19'));}exports[_0xc6ef('0x1a')]=function(){var _0x84abab=os['platform']();var _0xb130df=/[0-9a-f-]{36}/;if(config[_0xc6ef('0x1b')]&&_0xb130df[_0xc6ef('0x1c')](config[_0xc6ef('0x1b')])){return config[_0xc6ef('0x1b')];}else if(_0x84abab===_0xc6ef('0x1d')){return exec(_0xc6ef('0x1e'),{'encoding':_0xc6ef('0x1f')})['replace']('\x0d\x0a','');}else{var _0x9cab1b=getFirstInterface();var _0x59b754=getCPUhash();var _0x37dbfa=_0x59b754+'|'+os[_0xc6ef('0x20')]()+'|'+_0x9cab1b[_0xc6ef('0x21')]+'|'+_0x9cab1b[_0xc6ef('0x22')];var _0x131706=crypto[_0xc6ef('0x15')](_0xc6ef('0x16'))[_0xc6ef('0x17')](_0x37dbfa)[_0xc6ef('0x18')](_0xc6ef('0x19'));return _0x131706[_0xc6ef('0x23')](0x0,0x8)+'-'+_0x131706['substring'](0x8,0xc)+'-'+_0x131706[_0xc6ef('0x23')](0xc,0x10)+'-'+_0x131706[_0xc6ef('0x23')](0x10,0x14)+'-'+_0x131706[_0xc6ef('0x23')](0x14);}};
\ No newline at end of file
+var _0x2f4f=['child_process','../environment','networkInterfaces','orderBy','keys','length','IPv4','internal','concat','head','mac','00:00:00:00:00:00','address','getFirstInterface','cpus','map','model','createHash','md5','update','hex','getUuid','licenseToken','win32','utf8','replace','hostname','macAddress','substring','lodash','crypto','bimedia-machine-uuid'];(function(_0x2b2c1c,_0x2408c6){var _0x460cab=function(_0x79877c){while(--_0x79877c){_0x2b2c1c['push'](_0x2b2c1c['shift']());}};_0x460cab(++_0x2408c6);}(_0x2f4f,0x19d));var _0xf2f4=function(_0x1b0f39,_0x5b01fa){_0x1b0f39=_0x1b0f39-0x0;var _0x37732e=_0x2f4f[_0x1b0f39];return _0x37732e;};'use strict';var _=require(_0xf2f4('0x0'));var os=require('os');var crypto=require(_0xf2f4('0x1'));var machine=require(_0xf2f4('0x2'));var exec=require(_0xf2f4('0x3'))['execSync'];var config=require(_0xf2f4('0x4'));function getInterfaces(){var _0x17b8fa=[];var _0x10cf4f=os[_0xf2f4('0x5')]();var _0x1e06ec=_[_0xf2f4('0x6')](_[_0xf2f4('0x7')](_0x10cf4f));for(var _0x5984ad=0x0;_0x5984ad<_0x1e06ec[_0xf2f4('0x8')];_0x5984ad++){var _0x5de80e=_0x10cf4f[_0x1e06ec[_0x5984ad]]['filter'](function(_0x36e28f){return _0x36e28f['family']===_0xf2f4('0x9')&&_0x36e28f[_0xf2f4('0xa')]===![];});_0x17b8fa=_0x17b8fa[_0xf2f4('0xb')](_0x5de80e);}return _0x17b8fa;}function getFirstInterface(){var _0x3276a5=_[_0xf2f4('0xc')](getInterfaces());return{'macAddress':_0x3276a5&&_0x3276a5[_0xf2f4('0xd')]?_0x3276a5[_0xf2f4('0xd')]:_0xf2f4('0xe'),'ipAddress':_0x3276a5&&_0x3276a5[_0xf2f4('0xf')]?_0x3276a5[_0xf2f4('0xf')]:'127.0.0.1'};}exports[_0xf2f4('0x10')]=getFirstInterface;function getCPUhash(){var _0x4c9ba2=_[_0xf2f4('0x6')](os[_0xf2f4('0x11')]()[_0xf2f4('0x12')](function(_0x2554cf){return _0x2554cf[_0xf2f4('0x13')];}))['join'](':');return crypto[_0xf2f4('0x14')](_0xf2f4('0x15'))[_0xf2f4('0x16')](_0x4c9ba2)['digest'](_0xf2f4('0x17'));}exports[_0xf2f4('0x18')]=function(){var _0x1835ad=os['platform']();var _0x5a0ef7=/[0-9a-f-]{36}/;if(config[_0xf2f4('0x19')]&&_0x5a0ef7['test'](config[_0xf2f4('0x19')])){return config[_0xf2f4('0x19')];}else if(_0x1835ad===_0xf2f4('0x1a')){return exec('dmidecode\x20--string\x20system-uuid',{'encoding':_0xf2f4('0x1b')})[_0xf2f4('0x1c')]('\x0d\x0a','');}else{var _0xc036c7=getFirstInterface();var _0x20bcb3=getCPUhash();var _0x40c97a=_0x20bcb3+'|'+os[_0xf2f4('0x1d')]()+'|'+_0xc036c7[_0xf2f4('0x1e')]+'|'+_0xc036c7['ipAddress'];var _0x372364=crypto[_0xf2f4('0x14')](_0xf2f4('0x15'))[_0xf2f4('0x16')](_0x40c97a)['digest'](_0xf2f4('0x17'));return _0x372364['substring'](0x0,0x8)+'-'+_0x372364['substring'](0x8,0xc)+'-'+_0x372364[_0xf2f4('0x1f')](0xc,0x10)+'-'+_0x372364['substring'](0x10,0x14)+'-'+_0x372364['substring'](0x14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe72e=['../logger','license','https://www.xcallymotion.com','%s/api/servers/%s/check?version=%s','exports','format','%s/api/servers/%s/check?version=%s&oldtoken=%s','then','catch','get','data1','data2','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','toUpperCase','YYYY-MM-DD\x20HH:mm','encryptString','decryptString','days','DEMO\x20START\x20AT\x20%s','error','message','finally','getUuid','License','findOrCreate','SERVICE\x20LICENSE\x20STARTED\x20%s','default','moment','request-promise','bluebird','pkginfo','version','../../mysqldb'];(function(_0x197c08,_0x4b3267){var _0x1d0710=function(_0x393ebd){while(--_0x393ebd){_0x197c08['push'](_0x197c08['shift']());}};_0x1d0710(++_0x4b3267);}(_0xe72e,0x18a));var _0xee72=function(_0x271b34,_0xcf6cbe){_0x271b34=_0x271b34-0x0;var _0x143156=_0xe72e[_0x271b34];return _0x143156;};'use strict';var util=require('util');var moment=require(_0xee72('0x0'));var rp=require(_0xee72('0x1'));var BPromise=require(_0xee72('0x2'));var pkginfo=require(_0xee72('0x3'))(module,_0xee72('0x4'));var db=require(_0xee72('0x5'))['db'];var encryptor=require('../../components/encryptor');var hardware=require('./hardware');var logger=require(_0xee72('0x6'))(_0xee72('0x7'));var HOST=_0xee72('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x5773ca){return new BPromise(function(_0xdb63bb,_0x553cd2){var _0x8b00df=util['format'](_0xee72('0x9'),HOST,_0x5773ca,module[_0xee72('0xa')][_0xee72('0x4')]);if(oldToken){_0x8b00df=util[_0xee72('0xb')](_0xee72('0xc'),HOST,_0x5773ca,module[_0xee72('0xa')][_0xee72('0x4')],oldToken);}var _0x184bf2={'uri':_0x8b00df,'method':'GET','timeout':0xea60,'json':!![]};return rp(_0x184bf2)[_0xee72('0xd')](function(_0x226ef9){_0xdb63bb(_0x226ef9);})[_0xee72('0xe')](function(_0x48d186){_0x553cd2(_0x48d186);});});}function manageLicense(_0x25ae58,_0x252b1c){var _0x30f821=_0x252b1c[_0xee72('0xf')]({'plain':!![]});if(!isOldTokenSent&&_0x30f821[_0xee72('0x10')]!==_0x25ae58&&!_0x30f821['data2']){oldToken=_0x30f821[_0xee72('0x10')];}httpRequest(_0x25ae58)['then'](function(_0x3df923){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x3df923['active']){isOldTokenSent=![];if(!_0x30f821[_0xee72('0x7')]&&_0x30f821[_0xee72('0x7')]!=_0x3df923['license']||_0x30f821[_0xee72('0x7')]&&_0x30f821[_0xee72('0x11')]){logger[_0xee72('0x12')](_0xee72('0x13'));}if(_0x30f821['license']&&!_0x30f821['data2']&&_0x30f821[_0xee72('0x7')]!=_0x3df923['license']){logger[_0xee72('0x12')](_0xee72('0x14'));}if(_0x30f821['license']&&!_0x30f821[_0xee72('0x11')]&&_0x30f821[_0xee72('0x7')]==_0x3df923[_0xee72('0x7')]){return _0x252b1c;}return _0x252b1c[_0xee72('0x15')]({'data1':_0x25ae58,'data2':null,'license':_0x3df923['license']});}else{if(_0x3df923[_0xee72('0x7')]||_0x30f821[_0xee72('0x7')]){if(!_0x30f821[_0xee72('0x11')]){if(_0x30f821['data1']==_0x25ae58){GRAY_PERIOD_REASON=_0xee72('0x16');logger[_0xee72('0x12')](_0xee72('0x17'));}else{GRAY_PERIOD_REASON=_0xee72('0x18');logger[_0xee72('0x12')](_0xee72('0x19'),_0x30f821[_0xee72('0x10')],_0x25ae58);}logger[_0xee72('0x12')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON[_0xee72('0x1a')](),moment()[_0xee72('0xb')](_0xee72('0x1b')));return _0x252b1c[_0xee72('0x15')]({'data2':encryptor[_0xee72('0x1c')](moment()[_0xee72('0xb')](_0xee72('0x1b')))});}else{if(moment()['diff'](encryptor[_0xee72('0x1d')](_0x30f821[_0xee72('0x11')]),_0xee72('0x1e'))>DAYS){logger[_0xee72('0x12')](_0xee72('0x1f'),moment()[_0xee72('0xb')]('YYYY-MM-DD\x20HH:mm'));isOldTokenSent=![];return _0x252b1c[_0xee72('0x15')]({'data1':_0x25ae58,'data2':null,'license':null});}}}else{if(_0x30f821[_0xee72('0x10')]!=_0x25ae58){logger[_0xee72('0x12')](_0xee72('0x19'),_0x30f821[_0xee72('0x10')],_0x25ae58);return _0x252b1c[_0xee72('0x15')]({'data1':_0x25ae58,'data2':null,'license':null});}}}return _0x252b1c;})[_0xee72('0xd')](function(_0xfc6dc6){_0x252b1c=_0xfc6dc6;})['catch'](function(_0x22b771){logger[_0xee72('0x20')](_0x22b771[_0xee72('0x21')]);})[_0xee72('0x22')](function(){setTimeout(function(){manageLicense(hardware[_0xee72('0x23')](),_0x252b1c);},TIME);});}function defaultLicense(){var _0xdd853a=hardware[_0xee72('0x23')]();if(_0xdd853a){return db[_0xee72('0x24')][_0xee72('0x25')]({'where':{'id':0x1},'defaults':{'data1':_0xdd853a}})['spread'](function(_0x13faed,_0x4122f0){logger[_0xee72('0x12')](_0xee72('0x26'),_0xdd853a);manageLicense(_0xdd853a,_0x13faed);})['catch'](function(_0x3a7082){logger['error'](_0x3a7082['message']);});}}exports[_0xee72('0x27')]=defaultLicense;
\ No newline at end of file
+var _0xc110=['info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','data2','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','toUpperCase','YYYY-MM-DD\x20HH:mm','update','encryptString','diff','decryptString','days','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','message','finally','getUuid','License','findOrCreate','spread','catch','default','moment','request-promise','bluebird','pkginfo','../../components/encryptor','./hardware','license','https://www.xcallymotion.com','version','format','%s/api/servers/%s/check?version=%s&oldtoken=%s','exports','GET','then','get','data1'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc110,0x14f));var _0x0c11=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc110[_0x3dd15e];return _0x231fd0;};'use strict';var util=require('util');var moment=require(_0x0c11('0x0'));var rp=require(_0x0c11('0x1'));var BPromise=require(_0x0c11('0x2'));var pkginfo=require(_0x0c11('0x3'))(module,'version');var db=require('../../mysqldb')['db'];var encryptor=require(_0x0c11('0x4'));var hardware=require(_0x0c11('0x5'));var logger=require('../logger')(_0x0c11('0x6'));var HOST=_0x0c11('0x7');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x59150f){return new BPromise(function(_0x223991,_0x11b19d){var _0x3c0e2b=util['format']('%s/api/servers/%s/check?version=%s',HOST,_0x59150f,module['exports'][_0x0c11('0x8')]);if(oldToken){_0x3c0e2b=util[_0x0c11('0x9')](_0x0c11('0xa'),HOST,_0x59150f,module[_0x0c11('0xb')][_0x0c11('0x8')],oldToken);}var _0x410624={'uri':_0x3c0e2b,'method':_0x0c11('0xc'),'timeout':0xea60,'json':!![]};return rp(_0x410624)[_0x0c11('0xd')](function(_0x5a2226){_0x223991(_0x5a2226);})['catch'](function(_0x147c3b){_0x11b19d(_0x147c3b);});});}function manageLicense(_0x1e2c28,_0x561aa6){var _0x1abd55=_0x561aa6[_0x0c11('0xe')]({'plain':!![]});if(!isOldTokenSent&&_0x1abd55[_0x0c11('0xf')]!==_0x1e2c28&&!_0x1abd55['data2']){oldToken=_0x1abd55[_0x0c11('0xf')];}httpRequest(_0x1e2c28)['then'](function(_0x5dcb08){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x5dcb08['active']){isOldTokenSent=![];if(!_0x1abd55[_0x0c11('0x6')]&&_0x1abd55[_0x0c11('0x6')]!=_0x5dcb08[_0x0c11('0x6')]||_0x1abd55[_0x0c11('0x6')]&&_0x1abd55['data2']){logger[_0x0c11('0x10')](_0x0c11('0x11'));}if(_0x1abd55[_0x0c11('0x6')]&&!_0x1abd55['data2']&&_0x1abd55[_0x0c11('0x6')]!=_0x5dcb08['license']){logger[_0x0c11('0x10')](_0x0c11('0x12'));}if(_0x1abd55[_0x0c11('0x6')]&&!_0x1abd55['data2']&&_0x1abd55['license']==_0x5dcb08[_0x0c11('0x6')]){return _0x561aa6;}return _0x561aa6['update']({'data1':_0x1e2c28,'data2':null,'license':_0x5dcb08['license']});}else{if(_0x5dcb08[_0x0c11('0x6')]||_0x1abd55[_0x0c11('0x6')]){if(!_0x1abd55[_0x0c11('0x13')]){if(_0x1abd55[_0x0c11('0xf')]==_0x1e2c28){GRAY_PERIOD_REASON=_0x0c11('0x14');logger[_0x0c11('0x10')](_0x0c11('0x15'));}else{GRAY_PERIOD_REASON='Changed';logger['info']('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x1abd55[_0x0c11('0xf')],_0x1e2c28);}logger[_0x0c11('0x10')](_0x0c11('0x16'),GRAY_PERIOD_REASON[_0x0c11('0x17')](),moment()['format'](_0x0c11('0x18')));return _0x561aa6[_0x0c11('0x19')]({'data2':encryptor[_0x0c11('0x1a')](moment()['format']('YYYY-MM-DD\x20HH:mm'))});}else{if(moment()[_0x0c11('0x1b')](encryptor[_0x0c11('0x1c')](_0x1abd55['data2']),_0x0c11('0x1d'))>DAYS){logger['info']('DEMO\x20START\x20AT\x20%s',moment()[_0x0c11('0x9')](_0x0c11('0x18')));isOldTokenSent=![];return _0x561aa6[_0x0c11('0x19')]({'data1':_0x1e2c28,'data2':null,'license':null});}}}else{if(_0x1abd55[_0x0c11('0xf')]!=_0x1e2c28){logger[_0x0c11('0x10')](_0x0c11('0x1e'),_0x1abd55['data1'],_0x1e2c28);return _0x561aa6[_0x0c11('0x19')]({'data1':_0x1e2c28,'data2':null,'license':null});}}}return _0x561aa6;})['then'](function(_0x5dfdeb){_0x561aa6=_0x5dfdeb;})['catch'](function(_0x3c2b68){logger['error'](_0x3c2b68[_0x0c11('0x1f')]);})[_0x0c11('0x20')](function(){setTimeout(function(){manageLicense(hardware[_0x0c11('0x21')](),_0x561aa6);},TIME);});}function defaultLicense(){var _0x13bbfb=hardware[_0x0c11('0x21')]();if(_0x13bbfb){return db[_0x0c11('0x22')][_0x0c11('0x23')]({'where':{'id':0x1},'defaults':{'data1':_0x13bbfb}})[_0x0c11('0x24')](function(_0x2b6fee,_0x2cdb53){logger[_0x0c11('0x10')]('SERVICE\x20LICENSE\x20STARTED\x20%s',_0x13bbfb);manageLicense(_0x13bbfb,_0x2b6fee);})[_0x0c11('0x25')](function(_0x50a099){logger['error'](_0x50a099['message']);});}}exports[_0x0c11('0x26')]=defaultLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf77=['telephones','admin','pick','countBy','License\x20limit\x20reached\x20for\x20telephones','catch','exports','util','lodash','moment','bluebird','./hardware','../../mysqldb','Demo\x20license','getUuid','Breaking\x20license','License','defaults','then','uuid','data1','license','License\x20key\x20value\x20not\x20found','data2','split','decryptString','format','%s:%s:%s','demo','machineUuid','deadline','days','grayReason','disabled','message','User','findAll','role','sequelize','COUNT','count','user','telephone','users'];(function(_0x14fe1a,_0x5bc7c8){var _0x540aa8=function(_0x175327){while(--_0x175327){_0x14fe1a['push'](_0x14fe1a['shift']());}};_0x540aa8(++_0x5bc7c8);}(_0xaf77,0x167));var _0x7af7=function(_0x5afb81,_0x38b44f){_0x5afb81=_0x5afb81-0x0;var _0xd6b2ac=_0xaf77[_0x5afb81];return _0xd6b2ac;};'use strict';var util=require(_0x7af7('0x0'));var _=require(_0x7af7('0x1'));var moment=require(_0x7af7('0x2'));var BPromise=require(_0x7af7('0x3'));var hardware=require(_0x7af7('0x4'));var encryptor=require('../../components/encryptor');var db=require(_0x7af7('0x5'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0x7af7('0x6'),'machineUuid':hardware[_0x7af7('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x7af7('0x8'),'machineUuid':hardware[_0x7af7('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x347325){return new BPromise(function(_0x5baaeb,_0x1bcf1f){return db[_0x7af7('0x9')]['find'](_[_0x7af7('0xa')](_0x347325,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x216a6a){return checkLicense(_0x216a6a,null);})[_0x7af7('0xb')](function(_0x21826c){_0x5baaeb(_0x21826c);return;})['catch'](function(_0x787840){_0x1bcf1f(_0x787840);});});}function checkLicense(_0x107b96,_0x37c499){if(!_0x107b96){demoLicense[_0x7af7('0xc')]=_0x107b96[_0x7af7('0xd')];return demoLicense;}try{var _0x302cfa=_0x37c499||_0x107b96[_0x7af7('0xe')];if(_['isEmpty'](_0x302cfa)){throw new Error(_0x7af7('0xf'));}var _0x21fe9a=_0x107b96[_0x7af7('0xd')];var _0x1a49c4=_0x107b96[_0x7af7('0x10')];var _0x1048ae=_0x21fe9a[_0x7af7('0x11')]('-')[0x4];var _0x59d5fe=_0x21fe9a['split']('-')[0x0];var _0xd517d0=encryptor[_0x7af7('0x12')](_0x302cfa,util[_0x7af7('0x13')](_0x7af7('0x14'),_0x1048ae,_0x21fe9a,_0x59d5fe));var _0x1ff228=JSON['parse'](_0xd517d0);_0x1ff228[_0x7af7('0x15')]=![];_0x1ff228[_0x7af7('0xc')]=_0x21fe9a;_0x1ff228[_0x7af7('0x16')]=hardware[_0x7af7('0x7')]();if(_0x1a49c4){var _0x915e38=encryptor[_0x7af7('0x12')](_0x1a49c4);_0x1ff228['gray']=_0x915e38;_0x1ff228[_0x7af7('0x17')]=moment(_0x915e38)['add'](0x7,_0x7af7('0x18'))[_0x7af7('0x13')]();_0x1ff228[_0x7af7('0x19')]=_0x1ff228['uuid']!=_0x1ff228[_0x7af7('0x16')]?'changed':_0x7af7('0x1a');}return _0x1ff228;}catch(_0x3a53c4){breakingLicense[_0x7af7('0xc')]=_0x107b96[_0x7af7('0xd')];breakingLicense[_0x7af7('0x1b')]=_0x3a53c4[_0x7af7('0x1b')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x30a54e,_0x1192c2){getLicense()[_0x7af7('0xb')](function(_0x2db426){return db[_0x7af7('0x1c')][_0x7af7('0x1d')]({'attributes':[_0x7af7('0x1e'),[db[_0x7af7('0x1f')]['fn'](_0x7af7('0x20'),db[_0x7af7('0x1f')]['col'](_0x7af7('0x1e'))),_0x7af7('0x21')]],'group':'role','where':{'role':{'$or':['admin',_0x7af7('0x22'),_0x7af7('0x23')]}},'raw':!![]})['then'](function(_0x5af733){var _0x384687={'user':_0x2db426[_0x7af7('0x24')]||0x0,'telephone':_0x2db426[_0x7af7('0x25')]||0x0};_0x5af733['forEach'](function(_0x23960c){var _0x5bb7db=_0x23960c[_0x7af7('0x1e')]===_0x7af7('0x26')?_0x7af7('0x22'):_0x23960c[_0x7af7('0x1e')];_0x384687[_0x5bb7db]-=_0x23960c[_0x7af7('0x21')];if(_0x384687[_0x5bb7db]<0x0)_0x384687[_0x5bb7db]=0x0;});_0x30a54e(_0x384687);return;});})['catch'](function(_0x409419){_0x1192c2(_0x409419);});});}function checkUserLimits(_0x3d3e17){return new BPromise(function(_0x1bc21c,_0x1ae955){getLimits()[_0x7af7('0xb')](function(_0x137adc){var _0x1d8d68=_[_0x7af7('0x27')](_[_0x7af7('0x28')](_0x3d3e17,_0x7af7('0x1e')),[_0x7af7('0x26'),_0x7af7('0x22'),'telephone']);var _0x2d191e=(_0x1d8d68[_0x7af7('0x26')]||0x0)+(_0x1d8d68[_0x7af7('0x22')]||0x0);var _0x34e2e0=_0x1d8d68[_0x7af7('0x23')]||0x0;if(_0x2d191e>_0x137adc['user'])return _0x1ae955('License\x20limit\x20reached\x20for\x20users');if(_0x34e2e0>_0x137adc[_0x7af7('0x23')])return _0x1ae955(_0x7af7('0x29'));return _0x1bc21c();})[_0x7af7('0x2a')](function(_0x3dca96){_0x1ae955(_0x3dca96);});});}module[_0x7af7('0x2b')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
+var _0xa965=['../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','Demo\x20license','getUuid','Breaking\x20license','License','find','then','catch','uuid','data1','license','License\x20key\x20value\x20not\x20found','split','decryptString','parse','demo','gray','deadline','add','days','format','grayReason','changed','disabled','message','User','role','sequelize','COUNT','col','count','admin','user','telephone','users','forEach','pick','License\x20limit\x20reached\x20for\x20telephones','util','lodash','moment','bluebird','./hardware'];(function(_0x183b21,_0x271b8e){var _0x4dbe1b=function(_0x32e3e2){while(--_0x32e3e2){_0x183b21['push'](_0x183b21['shift']());}};_0x4dbe1b(++_0x271b8e);}(_0xa965,0x109));var _0x5a96=function(_0x20c59f,_0x583d0a){_0x20c59f=_0x20c59f-0x0;var _0x2b6df8=_0xa965[_0x20c59f];return _0x2b6df8;};'use strict';var util=require(_0x5a96('0x0'));var _=require(_0x5a96('0x1'));var moment=require(_0x5a96('0x2'));var BPromise=require(_0x5a96('0x3'));var hardware=require(_0x5a96('0x4'));var encryptor=require(_0x5a96('0x5'));var db=require(_0x5a96('0x6'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x5a96('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0x5a96('0x8'),'machineUuid':hardware[_0x5a96('0x9')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x5a96('0xa'),'machineUuid':hardware[_0x5a96('0x9')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x40f089){return new BPromise(function(_0x55d239,_0xe4fde){return db[_0x5a96('0xb')][_0x5a96('0xc')](_['defaults'](_0x40f089,{'raw':!![],'where':{'id':0x1}}))[_0x5a96('0xd')](function(_0x323087){return checkLicense(_0x323087,null);})[_0x5a96('0xd')](function(_0x43c412){_0x55d239(_0x43c412);return;})[_0x5a96('0xe')](function(_0x51f7c7){_0xe4fde(_0x51f7c7);});});}function checkLicense(_0x642068,_0xa5796d){if(!_0x642068){demoLicense[_0x5a96('0xf')]=_0x642068[_0x5a96('0x10')];return demoLicense;}try{var _0x578e9b=_0xa5796d||_0x642068[_0x5a96('0x11')];if(_['isEmpty'](_0x578e9b)){throw new Error(_0x5a96('0x12'));}var _0x33c574=_0x642068[_0x5a96('0x10')];var _0x23c6e0=_0x642068['data2'];var _0x30c694=_0x33c574[_0x5a96('0x13')]('-')[0x4];var _0x470cfc=_0x33c574[_0x5a96('0x13')]('-')[0x0];var _0x1a6e4a=encryptor[_0x5a96('0x14')](_0x578e9b,util['format']('%s:%s:%s',_0x30c694,_0x33c574,_0x470cfc));var _0xc34ef1=JSON[_0x5a96('0x15')](_0x1a6e4a);_0xc34ef1[_0x5a96('0x16')]=![];_0xc34ef1[_0x5a96('0xf')]=_0x33c574;_0xc34ef1['machineUuid']=hardware[_0x5a96('0x9')]();if(_0x23c6e0){var _0x9950b5=encryptor['decryptString'](_0x23c6e0);_0xc34ef1[_0x5a96('0x17')]=_0x9950b5;_0xc34ef1[_0x5a96('0x18')]=moment(_0x9950b5)[_0x5a96('0x19')](0x7,_0x5a96('0x1a'))[_0x5a96('0x1b')]();_0xc34ef1[_0x5a96('0x1c')]=_0xc34ef1[_0x5a96('0xf')]!=_0xc34ef1['machineUuid']?_0x5a96('0x1d'):_0x5a96('0x1e');}return _0xc34ef1;}catch(_0x522c34){breakingLicense[_0x5a96('0xf')]=_0x642068[_0x5a96('0x10')];breakingLicense[_0x5a96('0x1f')]=_0x522c34[_0x5a96('0x1f')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x373ece,_0xaaf272){getLicense()[_0x5a96('0xd')](function(_0x49bb48){return db[_0x5a96('0x20')]['findAll']({'attributes':[_0x5a96('0x21'),[db[_0x5a96('0x22')]['fn'](_0x5a96('0x23'),db[_0x5a96('0x22')][_0x5a96('0x24')](_0x5a96('0x21'))),_0x5a96('0x25')]],'group':_0x5a96('0x21'),'where':{'role':{'$or':[_0x5a96('0x26'),_0x5a96('0x27'),_0x5a96('0x28')]}},'raw':!![]})[_0x5a96('0xd')](function(_0x39cb78){var _0x4272fa={'user':_0x49bb48[_0x5a96('0x29')]||0x0,'telephone':_0x49bb48['telephones']||0x0};_0x39cb78[_0x5a96('0x2a')](function(_0x4675f5){var _0x67fa79=_0x4675f5['role']===_0x5a96('0x26')?_0x5a96('0x27'):_0x4675f5['role'];_0x4272fa[_0x67fa79]-=_0x4675f5['count'];if(_0x4272fa[_0x67fa79]<0x0)_0x4272fa[_0x67fa79]=0x0;});_0x373ece(_0x4272fa);return;});})['catch'](function(_0x342325){_0xaaf272(_0x342325);});});}function checkUserLimits(_0x2de756){return new BPromise(function(_0x325622,_0x51c114){getLimits()[_0x5a96('0xd')](function(_0x161119){var _0x1c15c9=_[_0x5a96('0x2b')](_['countBy'](_0x2de756,'role'),['admin',_0x5a96('0x27'),_0x5a96('0x28')]);var _0x101740=(_0x1c15c9['admin']||0x0)+(_0x1c15c9[_0x5a96('0x27')]||0x0);var _0x15f89a=_0x1c15c9[_0x5a96('0x28')]||0x0;if(_0x101740>_0x161119['user'])return _0x51c114('License\x20limit\x20reached\x20for\x20users');if(_0x15f89a>_0x161119[_0x5a96('0x28')])return _0x51c114(_0x5a96('0x2c'));return _0x325622();})['catch'](function(_0x3c6008){_0x51c114(_0x3c6008);});});}module['exports']={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x056b=['app-id','secret','http://localhost:9000','myappanuglar-secret'];(function(_0x131f1d,_0xa0c348){var _0x2433c4=function(_0x2cfa29){while(--_0x2cfa29){_0x131f1d['push'](_0x131f1d['shift']());}};_0x2433c4(++_0xa0c348);}(_0x056b,0xb6));var _0xb056=function(_0x17799e,_0x176154){_0x17799e=_0x17799e-0x0;var _0x27e472=_0x056b[_0x17799e];return _0x27e472;};'use strict';module['exports']={'DOMAIN':_0xb056('0x0'),'SESSION_SECRET':_0xb056('0x1'),'GOOGLE_ID':_0xb056('0x2'),'GOOGLE_SECRET':_0xb056('0x3'),'DEBUG':''};
\ No newline at end of file
+var _0xa30a=['http://localhost:9000','myappanuglar-secret','secret','exports'];(function(_0x29cb4f,_0x26a21d){var _0x51e06d=function(_0x3ce158){while(--_0x3ce158){_0x29cb4f['push'](_0x29cb4f['shift']());}};_0x51e06d(++_0x26a21d);}(_0xa30a,0xd7));var _0xaa30=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xa30a[_0x20a584];return _0x4b41a8;};'use strict';module[_0xaa30('0x0')]={'DOMAIN':_0xaa30('0x1'),'SESSION_SECRET':_0xaa30('0x2'),'GOOGLE_ID':'app-id','GOOGLE_SECRET':_0xaa30('0x3'),'DEBUG':''};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5176=['env','debugLevel','moment','util','path','INFO','join','log','xcally','format','%s-%s.log','message','{{{','replace','}}}','[%s]\x20[%s]\x20%s\x20-\x20%s','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','Logger','File','error','%s-%s','info','transports','Console'];(function(_0x3c915a,_0x4595d9){var _0x18fb7d=function(_0x3ffaea){while(--_0x3ffaea){_0x3c915a['push'](_0x3c915a['shift']());}};_0x18fb7d(++_0x4595d9);}(_0x5176,0x1b2));var _0x6517=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x5176[_0x122ef9];return _0x42fba0;};'use strict';var moment=require(_0x6517('0x0'));var winston=require('winston');var util=require(_0x6517('0x1'));var path=require(_0x6517('0x2'));var debugLevel=_0x6517('0x3');function filename(_0x155493,_0x32eaf1){return path[_0x6517('0x4')]('/var',_0x6517('0x5'),_0x6517('0x6'),util[_0x6517('0x7')](_0x6517('0x8'),_0x155493,_0x32eaf1));}function formatter(_0x54bfd2,_0xf1265c){_0xf1265c[_0x6517('0x9')]=_0xf1265c[_0x6517('0x9')]['replace'](/@@{/g,_0x6517('0xa'))[_0x6517('0xb')](/}@@/g,_0x6517('0xc'))[_0x6517('0xb')](/@{/g,'{{')['replace'](/}@/g,'}}');return util['format'](_0x6517('0xd'),moment()[_0x6517('0x7')](_0x6517('0xe')),_0xf1265c[_0x6517('0xf')][_0x6517('0x10')](),_0x54bfd2,_0xf1265c['message']);}module[_0x6517('0x11')]=function(_0x5e2f81){return new winston[(_0x6517('0x12'))]({'transports':[new winston['transports'][(_0x6517('0x13'))]({'name':util[_0x6517('0x7')]('%s-%s',_0x5e2f81,_0x6517('0x14')),'filename':filename(_0x5e2f81,_0x6517('0x14')),'level':_0x6517('0x14'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x5209ef){return formatter(_0x5e2f81,_0x5209ef);}}),new winston['transports']['File']({'name':util[_0x6517('0x7')](_0x6517('0x15'),_0x5e2f81,'info'),'filename':filename(_0x5e2f81,_0x6517('0x16')),'level':'info','json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x3625e8){return formatter(_0x5e2f81,_0x3625e8);}}),new winston[(_0x6517('0x17'))][(_0x6517('0x18'))]({'level':process[_0x6517('0x19')][_0x6517('0x1a')]||debugLevel,'json':![],'formatter':function(_0x450e4b){return formatter(_0x5e2f81,_0x450e4b);}})]});};
\ No newline at end of file
+var _0x35ec=['error','info','debugLevel','moment','winston','util','path','INFO','join','/var','log','xcally','format','%s-%s.log','message','replace','[%s]\x20[%s]\x20%s\x20-\x20%s','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','Logger','transports','File','%s-%s'];(function(_0xc77e05,_0x2b0b77){var _0x4dc84d=function(_0x30beb9){while(--_0x30beb9){_0xc77e05['push'](_0xc77e05['shift']());}};_0x4dc84d(++_0x2b0b77);}(_0x35ec,0x17a));var _0xc35e=function(_0x296a8f,_0xc2cd79){_0x296a8f=_0x296a8f-0x0;var _0x545d75=_0x35ec[_0x296a8f];return _0x545d75;};'use strict';var moment=require(_0xc35e('0x0'));var winston=require(_0xc35e('0x1'));var util=require(_0xc35e('0x2'));var path=require(_0xc35e('0x3'));var debugLevel=_0xc35e('0x4');function filename(_0x4f5993,_0x3baaa1){return path[_0xc35e('0x5')](_0xc35e('0x6'),_0xc35e('0x7'),_0xc35e('0x8'),util[_0xc35e('0x9')](_0xc35e('0xa'),_0x4f5993,_0x3baaa1));}function formatter(_0xe9c95e,_0x45e94b){_0x45e94b[_0xc35e('0xb')]=_0x45e94b[_0xc35e('0xb')][_0xc35e('0xc')](/@@{/g,'{{{')['replace'](/}@@/g,'}}}')[_0xc35e('0xc')](/@{/g,'{{')[_0xc35e('0xc')](/}@/g,'}}');return util['format'](_0xc35e('0xd'),moment()['format'](_0xc35e('0xe')),_0x45e94b[_0xc35e('0xf')][_0xc35e('0x10')](),_0xe9c95e,_0x45e94b[_0xc35e('0xb')]);}module[_0xc35e('0x11')]=function(_0x1ca91e){return new winston[(_0xc35e('0x12'))]({'transports':[new winston[(_0xc35e('0x13'))][(_0xc35e('0x14'))]({'name':util[_0xc35e('0x9')](_0xc35e('0x15'),_0x1ca91e,_0xc35e('0x16')),'filename':filename(_0x1ca91e,_0xc35e('0x16')),'level':_0xc35e('0x16'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x31d695){return formatter(_0x1ca91e,_0x31d695);}}),new winston[(_0xc35e('0x13'))]['File']({'name':util[_0xc35e('0x9')]('%s-%s',_0x1ca91e,'info'),'filename':filename(_0x1ca91e,_0xc35e('0x17')),'level':_0xc35e('0x17'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x41d0d4){return formatter(_0x1ca91e,_0x41d0d4);}}),new winston['transports']['Console']({'level':process['env'][_0xc35e('0x18')]||debugLevel,'json':![],'formatter':function(_0x2a6975){return formatter(_0x1ca91e,_0x2a6975);}})]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf3e=['xdr','../../services/xdr/index.js','express','../../services/express/index.js','ami','join','agi','email','../../services/email/index.js','../../services/routing/index.js'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xbf3e,0x188));var _0xebf3=function(_0x4e28ba,_0x219334){_0x4e28ba=_0x4e28ba-0x0;var _0x28c841=_0xbf3e[_0x4e28ba];return _0x28c841;};'use strict';var path=require('path');var os=require('os');var config={'apps':[{'name':_0xebf3('0x0'),'script':path['join'](__dirname,_0xebf3('0x1'))},{'name':_0xebf3('0x2'),'script':path[_0xebf3('0x3')](__dirname,'../../services/ami/index.js')},{'name':_0xebf3('0x4'),'script':path[_0xebf3('0x3')](__dirname,'../../services/agi/index.js')},{'name':_0xebf3('0x5'),'script':path[_0xebf3('0x3')](__dirname,_0xebf3('0x6'))},{'name':'routing','script':path[_0xebf3('0x3')](__dirname,_0xebf3('0x7'))},{'name':_0xebf3('0x8'),'script':path[_0xebf3('0x3')](__dirname,_0xebf3('0x9'))}]};module['exports']=config;
\ No newline at end of file
+var _0xeeeb=['ami','join','agi','email','../../services/email/index.js','routing','../../services/routing/index.js','xdr','../../services/xdr/index.js','path','express','../../services/express/index.js'];(function(_0x10c51f,_0x11270f){var _0x56a0cd=function(_0x563ac6){while(--_0x563ac6){_0x10c51f['push'](_0x10c51f['shift']());}};_0x56a0cd(++_0x11270f);}(_0xeeeb,0x141));var _0xbeee=function(_0x12ab29,_0x118533){_0x12ab29=_0x12ab29-0x0;var _0x34550d=_0xeeeb[_0x12ab29];return _0x34550d;};'use strict';var path=require(_0xbeee('0x0'));var os=require('os');var config={'apps':[{'name':_0xbeee('0x1'),'script':path['join'](__dirname,_0xbeee('0x2'))},{'name':_0xbeee('0x3'),'script':path[_0xbeee('0x4')](__dirname,'../../services/ami/index.js')},{'name':_0xbeee('0x5'),'script':path[_0xbeee('0x4')](__dirname,'../../services/agi/index.js')},{'name':_0xbeee('0x6'),'script':path['join'](__dirname,_0xbeee('0x7'))},{'name':_0xbeee('0x8'),'script':path[_0xbeee('0x4')](__dirname,_0xbeee('0x9'))},{'name':_0xbeee('0xa'),'script':path[_0xbeee('0x4')](__dirname,_0xbeee('0xb'))}]};module['exports']=config;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf960=['./config','start','disconnect','then','restart','list','describe','delete','dump','saved','pm2','bluebird'];(function(_0x5c6114,_0x4c5dd5){var _0x54420a=function(_0x4b2287){while(--_0x4b2287){_0x5c6114['push'](_0x5c6114['shift']());}};_0x54420a(++_0x4c5dd5);}(_0xf960,0x1ea));var _0x0f96=function(_0x2b91c5,_0x3b6db5){_0x2b91c5=_0x2b91c5-0x0;var _0xbd5531=_0xf960[_0x2b91c5];return _0xbd5531;};'use strict';var pm2=require(_0x0f96('0x0'));var BPromise=require(_0x0f96('0x1'));var config=require(_0x0f96('0x2'));function connect(){return new BPromise(function(_0x3e7b9c,_0x5c7e66){return pm2['connect'](function(_0x44a555){if(_0x44a555){return _0x5c7e66(_0x44a555);}return _0x3e7b9c('connected');});});};exports[_0x0f96('0x3')]=function(_0x31d0a6){return connect()['then'](function(){return new BPromise(function(_0x3eb2e9,_0x310729){return pm2['start'](_0x31d0a6,function(_0x54a387,_0x5bbf80){if(_0x54a387){return _0x310729(_0x54a387);}pm2[_0x0f96('0x4')]();return _0x3eb2e9(_0x5bbf80);});});});};exports['stop']=function(_0x441ea2){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x58ad56,_0x189c9e){return pm2['stop'](_0x441ea2,function(_0x4cc56b,_0x3c8051){if(_0x4cc56b){return _0x189c9e(_0x4cc56b);}pm2['disconnect']();return _0x58ad56(_0x3c8051);});});});};exports[_0x0f96('0x6')]=function(_0x5a9ccb){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x499bff,_0x122314){return pm2[_0x0f96('0x6')](_0x5a9ccb,function(_0x3cf154,_0x2c62dc){if(_0x3cf154){return _0x122314(_0x3cf154);}pm2['disconnect']();return _0x499bff(_0x2c62dc);});});});};exports[_0x0f96('0x7')]=function(){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x369148,_0xa57402){return pm2[_0x0f96('0x7')](function(_0x317e48,_0x487524){if(_0x317e48){return _0xa57402(_0x317e48);}pm2[_0x0f96('0x4')]();return _0x369148(_0x487524);});});});};exports[_0x0f96('0x8')]=function(_0x1d8259){return connect()['then'](function(){return new BPromise(function(_0x1adc0a,_0x571557){return pm2[_0x0f96('0x8')](_0x1d8259,function(_0x519c91,_0x8fe54a){if(_0x519c91){return _0x571557(_0x519c91);}pm2[_0x0f96('0x4')]();return _0x1adc0a(_0x8fe54a);});});});};exports[_0x0f96('0x9')]=function(_0x1ec40d){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x4c7921,_0x591c8d){return pm2[_0x0f96('0x9')](_0x1ec40d,function(_0x27fd8a,_0x28aec7){if(_0x27fd8a){return _0x591c8d(_0x27fd8a);}pm2[_0x0f96('0x4')]();return _0x4c7921(_0x28aec7);});});});};exports[_0x0f96('0xa')]=function(){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x41e501,_0x590f8b){return pm2['dump'](function(_0x85b291){if(_0x85b291){return _0x590f8b(_0x85b291);}return _0x41e501(_0x0f96('0xb'));});});});};
\ No newline at end of file
+var _0x725a=['pm2','bluebird','./config','connect','start','stop','then','disconnect','restart','list','describe','delete','dump'];(function(_0x2e039a,_0xdae0ab){var _0x4a50b2=function(_0x4e83e5){while(--_0x4e83e5){_0x2e039a['push'](_0x2e039a['shift']());}};_0x4a50b2(++_0xdae0ab);}(_0x725a,0x12b));var _0xa725=function(_0x57a50d,_0x2871f8){_0x57a50d=_0x57a50d-0x0;var _0x1b25b3=_0x725a[_0x57a50d];return _0x1b25b3;};'use strict';var pm2=require(_0xa725('0x0'));var BPromise=require(_0xa725('0x1'));var config=require(_0xa725('0x2'));function connect(){return new BPromise(function(_0x3c30ae,_0x3f800e){return pm2[_0xa725('0x3')](function(_0x2be1f0){if(_0x2be1f0){return _0x3f800e(_0x2be1f0);}return _0x3c30ae('connected');});});};exports[_0xa725('0x4')]=function(_0x15eccf){return connect()['then'](function(){return new BPromise(function(_0x33c3e0,_0x209b10){return pm2[_0xa725('0x4')](_0x15eccf,function(_0x5bc125,_0x5a887f){if(_0x5bc125){return _0x209b10(_0x5bc125);}pm2['disconnect']();return _0x33c3e0(_0x5a887f);});});});};exports[_0xa725('0x5')]=function(_0x22246f){return connect()[_0xa725('0x6')](function(){return new BPromise(function(_0x574823,_0x4705fe){return pm2['stop'](_0x22246f,function(_0x5c6662,_0x587bc3){if(_0x5c6662){return _0x4705fe(_0x5c6662);}pm2[_0xa725('0x7')]();return _0x574823(_0x587bc3);});});});};exports['restart']=function(_0x3fa908){return connect()['then'](function(){return new BPromise(function(_0x11091c,_0x49968c){return pm2[_0xa725('0x8')](_0x3fa908,function(_0x3cf2f6,_0x4f103f){if(_0x3cf2f6){return _0x49968c(_0x3cf2f6);}pm2[_0xa725('0x7')]();return _0x11091c(_0x4f103f);});});});};exports[_0xa725('0x9')]=function(){return connect()[_0xa725('0x6')](function(){return new BPromise(function(_0x1279ba,_0x2014d1){return pm2[_0xa725('0x9')](function(_0x20e8f9,_0x155b37){if(_0x20e8f9){return _0x2014d1(_0x20e8f9);}pm2['disconnect']();return _0x1279ba(_0x155b37);});});});};exports[_0xa725('0xa')]=function(_0x5d4e33){return connect()['then'](function(){return new BPromise(function(_0x7dd145,_0x110918){return pm2[_0xa725('0xa')](_0x5d4e33,function(_0x22083b,_0x4aa938){if(_0x22083b){return _0x110918(_0x22083b);}pm2[_0xa725('0x7')]();return _0x7dd145(_0x4aa938);});});});};exports['delete']=function(_0x3e0f11){return connect()[_0xa725('0x6')](function(){return new BPromise(function(_0x3ce6ec,_0x4b6d88){return pm2[_0xa725('0xb')](_0x3e0f11,function(_0xbe35ae,_0x4c8b79){if(_0xbe35ae){return _0x4b6d88(_0xbe35ae);}pm2[_0xa725('0x7')]();return _0x3ce6ec(_0x4c8b79);});});});};exports[_0xa725('0xc')]=function(){return connect()['then'](function(){return new BPromise(function(_0x25f566,_0xd8e11f){return pm2[_0xa725('0xc')](function(_0x11e08b){if(_0x11e08b){return _0xd8e11f(_0x11e08b);}return _0x25f566('saved');});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53da=['timeout','YYYY-MM-DD\x20HH:mm:ss','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','start','moment','ioredis','util','../../config/environment','../../mysqldb','schedule','redis','localhost','socket.io-emitter','Setting','chatTimeout','then','ChatInteraction','findAll','lastMsgAt','subtract','minutes','length','info','[CHAT]\x20Interactions\x20to\x20close:','update','system'];(function(_0x40dbeb,_0x4c472e){var _0x3df2f5=function(_0x1b7598){while(--_0x1b7598){_0x40dbeb['push'](_0x40dbeb['shift']());}};_0x3df2f5(++_0x4c472e);}(_0x53da,0x1da));var _0xa53d=function(_0x255bd9,_0x57a26c){_0x255bd9=_0x255bd9-0x0;var _0x3ba6c5=_0x53da[_0x255bd9];return _0x3ba6c5;};'use strict';var _=require('lodash');var moment=require(_0xa53d('0x0'));var Redis=require(_0xa53d('0x1'));var util=require(_0xa53d('0x2'));var config=require(_0xa53d('0x3'));var db=require(_0xa53d('0x4'))['db'];var logger=require('../logger')(_0xa53d('0x5'));config[_0xa53d('0x6')]=_['defaults'](config['redis'],{'host':_0xa53d('0x7'),'port':0x18eb});var io=require(_0xa53d('0x8'))(new Redis(config[_0xa53d('0x6')]));function closeInteractions(){var _0xe65ca9=0x0;var _0x8e2c78=[];return db[_0xa53d('0x9')]['find']({'raw':!![],'attributes':['id',_0xa53d('0xa')],'where':{'id':0x1}})[_0xa53d('0xb')](function(_0x5e05ac){_0xe65ca9=_0x5e05ac['chatTimeout'];if(_0xe65ca9){return db[_0xa53d('0xc')][_0xa53d('0xd')]({'raw':!![],'attributes':['id',_0xa53d('0xe')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xa53d('0xf')](_0x5e05ac[_0xa53d('0xa')],_0xa53d('0x10'))}}});}else{return[];}})[_0xa53d('0xb')](function(_0x3bfbf7){if(_0x3bfbf7&&_0x3bfbf7[_0xa53d('0x11')]){_0x8e2c78=_['map'](_0x3bfbf7||[],'id');logger[_0xa53d('0x12')](_0xa53d('0x13'),_0x8e2c78['join']());return db['ChatInteraction'][_0xa53d('0x14')]({'closeReason':_0xa53d('0x15'),'disposition':_0xa53d('0x16'),'closed':!![],'closedAt':moment()['format'](_0xa53d('0x17'))},{'where':{'id':_0x8e2c78}});}})[_0xa53d('0xb')](function(){if(_0x8e2c78&&_0x8e2c78[_0xa53d('0x11')]){logger['info'](_0xa53d('0x18'),_0x8e2c78['join']());for(var _0x3db020=0x0;_0x3db020<_0x8e2c78[_0xa53d('0x11')];_0x3db020++){io[_0xa53d('0x19')](_0xa53d('0x1a'),{'id':_0x8e2c78[_0x3db020],'closed':!![]});}}})[_0xa53d('0x1b')](function(_0x42c051){logger[_0xa53d('0x1c')](_0xa53d('0x1d'),_0x42c051?util['inspect'](_0x42c051,{'showHidden':![],'depth':null}):'');});}exports[_0xa53d('0x1e')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0xc35c=['schedule','redis','defaults','localhost','socket.io-emitter','Setting','find','then','chatTimeout','ChatInteraction','lastMsgAt','minutes','map','info','join','update','system','timeout','format','YYYY-MM-DD\x20HH:mm:ss','length','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','catch','error','[CHAT]\x20Error\x20closing\x20interactions','inspect','start','lodash','moment','ioredis','../../config/environment','../logger'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xc35c,0xdb));var _0xcc35=function(_0x59bde6,_0x594345){_0x59bde6=_0x59bde6-0x0;var _0x4557cc=_0xc35c[_0x59bde6];return _0x4557cc;};'use strict';var _=require(_0xcc35('0x0'));var moment=require(_0xcc35('0x1'));var Redis=require(_0xcc35('0x2'));var util=require('util');var config=require(_0xcc35('0x3'));var db=require('../../mysqldb')['db'];var logger=require(_0xcc35('0x4'))(_0xcc35('0x5'));config[_0xcc35('0x6')]=_[_0xcc35('0x7')](config[_0xcc35('0x6')],{'host':_0xcc35('0x8'),'port':0x18eb});var io=require(_0xcc35('0x9'))(new Redis(config['redis']));function closeInteractions(){var _0x196fd7=0x0;var _0x306dd6=[];return db[_0xcc35('0xa')][_0xcc35('0xb')]({'raw':!![],'attributes':['id','chatTimeout'],'where':{'id':0x1}})[_0xcc35('0xc')](function(_0x41e51a){_0x196fd7=_0x41e51a[_0xcc35('0xd')];if(_0x196fd7){return db[_0xcc35('0xe')]['findAll']({'raw':!![],'attributes':['id',_0xcc35('0xf')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()['subtract'](_0x41e51a['chatTimeout'],_0xcc35('0x10'))}}});}else{return[];}})[_0xcc35('0xc')](function(_0x808090){if(_0x808090&&_0x808090['length']){_0x306dd6=_[_0xcc35('0x11')](_0x808090||[],'id');logger[_0xcc35('0x12')]('[CHAT]\x20Interactions\x20to\x20close:',_0x306dd6[_0xcc35('0x13')]());return db[_0xcc35('0xe')][_0xcc35('0x14')]({'closeReason':_0xcc35('0x15'),'disposition':_0xcc35('0x16'),'closed':!![],'closedAt':moment()[_0xcc35('0x17')](_0xcc35('0x18'))},{'where':{'id':_0x306dd6}});}})['then'](function(){if(_0x306dd6&&_0x306dd6[_0xcc35('0x19')]){logger[_0xcc35('0x12')](_0xcc35('0x1a'),_0x306dd6[_0xcc35('0x13')]());for(var _0x61f5ef=0x0;_0x61f5ef<_0x306dd6['length'];_0x61f5ef++){io['emit']('chatInteraction:update',{'id':_0x306dd6[_0x61f5ef],'closed':!![]});}}})[_0xcc35('0x1b')](function(_0x38ec44){logger[_0xcc35('0x1c')](_0xcc35('0x1d'),_0x38ec44?util[_0xcc35('0x1e')](_0x38ec44,{'showHidden':![],'depth':null}):'');});}exports[_0xcc35('0x1f')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1108=['MailAccount','Smtp','service','host','port','secure','authentication','auth','pass','format','name','user','bcc','subtractNumber','join','../../files/reports','basename','savename','extname','zip','existsSync','status','Sent','message','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','attachments','empty\x20file,\x20email\x20not\x20sent','SendMail','then','error','email\x20sent','error\x20mail','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','keys','jobs','toString','keyBy','difference','intersection','length','stop','my\x20id','resolve','run\x20job','cron','active','add','add\x20cron','exists','startAt','endAt','update','deleteJob','stop\x20cron','run','start','util','path','moment','cron-job-manager','jayson/promise','bluebird','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','email'];(function(_0x51679b,_0x2d621c){var _0x4085f3=function(_0x14c945){while(--_0x14c945){_0x51679b['push'](_0x51679b['shift']());}};_0x4085f3(++_0x2d621c);}(_0x1108,0xa3));var _0x8110=function(_0x4bb94b,_0x50628a){_0x4bb94b=_0x4bb94b-0x0;var _0x36dcc6=_0x1108[_0x4bb94b];return _0x36dcc6;};'use strict';var fs=require('fs');var util=require(_0x8110('0x0'));var path=require(_0x8110('0x1'));var _=require('lodash');var moment=require(_0x8110('0x2'));var CronJobManager=require(_0x8110('0x3'));var jayson=require(_0x8110('0x4'));var BPromise=require(_0x8110('0x5'));var logger=require('../logger')('schedule');var db=require(_0x8110('0x6'))['db'];var analyticCustomReportController=require(_0x8110('0x7'));var analyticDefaultReportController=require(_0x8110('0x8'));var client=jayson[_0x8110('0x9')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4aa754,_0x1f571e){return function(){logger[_0x8110('0xa')](_0x8110('0xb'),_0x4aa754[_0x8110('0xc')]);var _0x3d90b5=!![];var _0x58a178={'tls':{'rejectUnauthorized':![]}};if(_0x4aa754[_0x8110('0xd')][_0x8110('0xe')]['service']){_0x58a178[_0x8110('0xf')]=_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0xf')];}else{_0x58a178[_0x8110('0x10')]=_0x4aa754[_0x8110('0xd')][_0x8110('0xe')]['host'];_0x58a178[_0x8110('0x11')]=_0x4aa754['MailAccount'][_0x8110('0xe')][_0x8110('0x11')];_0x58a178['secure']=_0x4aa754[_0x8110('0xd')]['Smtp'][_0x8110('0x12')];}if(_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0x13')]){_0x58a178[_0x8110('0x14')]={'user':_0x4aa754['MailAccount']['Smtp']['user'],'pass':_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0x15')]};}var _0x4a6442={'account':_0x58a178,'message':{'from':util[_0x8110('0x16')]('\x22%s\x22\x20<%s>',_0x4aa754[_0x8110('0xd')][_0x8110('0x17')],_0x4aa754['MailAccount']['email']||_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0x18')]),'to':_0x4aa754[_0x8110('0xc')],'cc':_0x4aa754['cc'],'bcc':_0x4aa754[_0x8110('0x19')],'subject':util['format']('Report\x20%s\x20last\x20%s\x20%s',_0x1f571e[_0x8110('0x17')],_0x4aa754[_0x8110('0x1a')],_0x4aa754['subtractUnit'])}};var _0x284b0f=path[_0x8110('0x1b')](__dirname,_0x8110('0x1c'));var _0x1c57f3=_0x1f571e['savename'];var _0x215528=util[_0x8110('0x16')]('%s.%s',path[_0x8110('0x1d')](_0x1f571e[_0x8110('0x1e')],path[_0x8110('0x1f')](_0x1f571e[_0x8110('0x1e')])),_0x8110('0x20'));var _0x523a06=path[_0x8110('0x1b')](_0x284b0f,_0x1c57f3);var _0x31a375=path[_0x8110('0x1b')](_0x284b0f,_0x215528);if(fs[_0x8110('0x21')](_0x523a06)){_0x1f571e[_0x8110('0x22')]=_0x8110('0x23');_0x4a6442['message']['attachments']=[{'filename':_0x1c57f3,'path':_0x523a06}];_0x4a6442[_0x8110('0x24')][_0x8110('0x25')]=util[_0x8110('0x16')](_0x8110('0x26'),JSON[_0x8110('0x27')](_0x1f571e,null,0x2));}else if(fs[_0x8110('0x21')](_0x31a375)){_0x1f571e[_0x8110('0x22')]=_0x8110('0x23');_0x4a6442[_0x8110('0x24')][_0x8110('0x28')]=[{'filename':_0x215528,'path':_0x31a375}];}else{_0x4a6442['message'][_0x8110('0x25')]='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x4aa754['sendIfEmpty']){_0x3d90b5=![];logger[_0x8110('0xa')](_0x8110('0x29'));}}if(_0x3d90b5){return client['request'](_0x8110('0x2a'),_0x4a6442)[_0x8110('0x2b')](function(_0x237ed1){if(_0x237ed1[_0x8110('0x2c')]){return logger['error']('error\x20mail',JSON[_0x8110('0x27')](_0x237ed1));}return logger[_0x8110('0xa')](_0x8110('0x2d'));})['catch'](function(_0x16b8a0){return logger[_0x8110('0x2c')](_0x8110('0x2e'),JSON[_0x8110('0x27')](_0x16b8a0));});}};}function handleError(){return function(_0x9a3ca5){return logger['error'](JSON[_0x8110('0x27')](_0x9a3ca5));};}function handleResult(_0xc4ff53){return function(_0x497008){logger['info'](_0x8110('0x2f'),JSON[_0x8110('0x27')](_0x497008));if(_0xc4ff53[_0x8110('0xd')]&&_0xc4ff53[_0x8110('0xd')][_0x8110('0xe')]&&!_[_0x8110('0x30')](_0xc4ff53['email'])){setTimeout(handleSendEmail(_0xc4ff53,_0x497008),0x3c*0x3e8);}};}function handleJob(_0x3fe389){return function(){try{if(_[_0x8110('0x30')](_0x3fe389[_0x8110('0x1a')])){return logger[_0x8110('0xa')](_0x8110('0x31'));}if(_[_0x8110('0x30')](_0x3fe389[_0x8110('0x32')])){return logger[_0x8110('0xa')](_0x8110('0x33'));}var _0x583db7={'startDate':moment()[_0x8110('0x34')](_0x3fe389[_0x8110('0x1a')],_0x3fe389[_0x8110('0x32')])[_0x8110('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0x8110('0x16')](_0x8110('0x35')),'type':_0x8110('0x36'),'output':_0x3fe389[_0x8110('0x37')],'name':_0x3fe389[_0x8110('0x17')]};if(!_['isNil'](_0x3fe389[_0x8110('0x38')])){logger['info'](_0x8110('0x39'),_0x3fe389[_0x8110('0x38')]);return analyticDefaultReportController[_0x8110('0x3a')]({'id':_0x3fe389['DefaultReportId']},_0x583db7)['then'](handleResult(_0x3fe389))[_0x8110('0x3b')](handleError());}if(!_[_0x8110('0x30')](_0x3fe389[_0x8110('0x3c')])){logger[_0x8110('0xa')](_0x8110('0x3d'),_0x3fe389['CustomReportId']);return analyticCustomReportController[_0x8110('0x3a')]({'id':_0x3fe389['CustomReportId']},_0x583db7)['then'](handleResult(_0x3fe389))[_0x8110('0x3b')](handleError());}}catch(_0x3deb79){logger[_0x8110('0x2c')](JSON[_0x8110('0x27')](_0x3deb79));}return logger[_0x8110('0xa')](_0x8110('0x3e'));};}function getJobs(_0x5a64d1){var _0x2ebcf2={};if(_0x5a64d1){_0x2ebcf2['id']=_0x5a64d1;}return db[_0x8110('0x3f')][_0x8110('0x40')]({'where':_0x2ebcf2,'include':[{'model':db['MailAccount'],'attributes':['id',_0x8110('0x17'),_0x8110('0xc')],'include':[{'model':db['MailServerOut'],'as':'Smtp'}]}]})['then'](function(_0x52a0e5){var _0x4bf8ec=_[_0x8110('0x41')](manager[_0x8110('0x42')]);var _0x5091d1=_['map'](_0x52a0e5,function(_0x249786){return _0x249786['id'][_0x8110('0x43')]();});var _0x1b64e8=_[_0x8110('0x44')](_0x52a0e5,function(_0x36dbe7){return _0x36dbe7['id'][_0x8110('0x43')]();});var _0x2a1534=_0x5a64d1?_0x5091d1:_[_0x8110('0x45')](_0x5091d1,_0x4bf8ec);var _0x2bd430=_[_0x8110('0x46')](_0x5091d1,_0x4bf8ec);var _0x42e54a=_[_0x8110('0x45')](_0x4bf8ec,_0x5091d1);var _0xd638f9;var _0x274ad1;for(_0xd638f9=0x0;_0xd638f9<_0x42e54a[_0x8110('0x47')]&&!_0x5a64d1;_0xd638f9+=0x1){_0x274ad1=_0x42e54a[_0xd638f9][_0x8110('0x43')]();if(manager['exists'](_0x274ad1)){manager[_0x8110('0x48')](_0x274ad1);manager['deleteJob'](_0x274ad1);logger['info']('delete\x20cron',_0x274ad1);}}logger[_0x8110('0xa')]('toRun',JSON[_0x8110('0x27')](_0x2a1534));for(_0xd638f9=0x0;_0xd638f9<_0x2a1534[_0x8110('0x47')];_0xd638f9+=0x1){_0x274ad1=_0x2a1534[_0xd638f9][_0x8110('0x43')]();logger[_0x8110('0xa')]('index',_0x274ad1);if(_0x5a64d1){logger[_0x8110('0xa')](_0x8110('0x49'),_0x5a64d1);logger[_0x8110('0xa')](JSON[_0x8110('0x27')](_0x1b64e8[_0x274ad1]));BPromise[_0x8110('0x4a')]()[_0x8110('0x2b')](handleJob(_0x1b64e8[_0x274ad1]));logger['info'](_0x8110('0x4b'),_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}else if(_0x1b64e8[_0x274ad1][_0x8110('0x4c')]&&_0x1b64e8[_0x274ad1][_0x8110('0x4d')]&&moment()['isBetween'](_0x1b64e8[_0x274ad1]['startAt'],_0x1b64e8[_0x274ad1]['endAt'])){manager[_0x8110('0x4e')](_0x274ad1,_0x1b64e8[_0x274ad1][_0x8110('0x4c')],handleJob(_0x1b64e8[_0x274ad1]));manager['start'](_0x274ad1);logger[_0x8110('0xa')](_0x8110('0x4f'),_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}else if(manager[_0x8110('0x50')](_0x274ad1)){manager[_0x8110('0x48')](_0x274ad1);manager['deleteJob'](_0x274ad1);logger[_0x8110('0xa')]('stop\x20cron',_0x1b64e8[_0x274ad1]['name'],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}}for(_0xd638f9=0x0,_0x274ad1;_0xd638f9<_0x2bd430['length']&&!_0x5a64d1;_0xd638f9+=0x1){_0x274ad1=_0x2bd430[_0xd638f9][_0x8110('0x43')]();if(manager[_0x8110('0x50')](_0x274ad1)){if(_0x1b64e8[_0x274ad1][_0x8110('0x4c')]&&_0x1b64e8[_0x274ad1][_0x8110('0x4d')]&&moment()['isBetween'](_0x1b64e8[_0x274ad1][_0x8110('0x51')],_0x1b64e8[_0x274ad1][_0x8110('0x52')])){manager[_0x8110('0x53')](_0x274ad1,_0x1b64e8[_0x274ad1][_0x8110('0x4c')],handleJob(_0x1b64e8[_0x274ad1]));logger[_0x8110('0xa')]('update\x20cron',_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1]['cron']);}else{manager[_0x8110('0x48')](_0x274ad1);manager[_0x8110('0x54')](_0x274ad1);logger[_0x8110('0xa')](_0x8110('0x55'),_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}}}})['catch'](function(_0x1a3074){logger[_0x8110('0x2c')](JSON['stringify'](_0x1a3074));});}exports[_0x8110('0x56')]=function(_0x2532dd){return getJobs(_0x2532dd);};exports[_0x8110('0x57')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
+var _0x566f=['MailServerOut','keys','jobs','map','toString','keyBy','difference','length','exists','stop','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','run\x20job','cron','isBetween','startAt','endAt','add','start','stop\x20cron','active','update','update\x20cron','run','util','lodash','cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','user','pass','\x22%s\x22\x20<%s>','name','bcc','format','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','../../files/reports','savename','%s.%s','basename','extname','join','existsSync','status','message','stringify','Sent','attachments','text','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','SendMail','error','email\x20sent','catch','error\x20mail','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit','subtractUnit\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','exec\x20defaul\x20report\x20id:%s','DefaultReportId','then','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule'];(function(_0x44748e,_0x5254c1){var _0x1287f5=function(_0x2e6afe){while(--_0x2e6afe){_0x44748e['push'](_0x44748e['shift']());}};_0x1287f5(++_0x5254c1);}(_0x566f,0x1d9));var _0xf566=function(_0x3ab593,_0x47a446){_0x3ab593=_0x3ab593-0x0;var _0x2eca2b=_0x566f[_0x3ab593];return _0x2eca2b;};'use strict';var fs=require('fs');var util=require(_0xf566('0x0'));var path=require('path');var _=require(_0xf566('0x1'));var moment=require('moment');var CronJobManager=require(_0xf566('0x2'));var jayson=require(_0xf566('0x3'));var BPromise=require(_0xf566('0x4'));var logger=require(_0xf566('0x5'))(_0xf566('0x6'));var db=require(_0xf566('0x7'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0xf566('0x8'));var client=jayson[_0xf566('0x9')][_0xf566('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4279cb,_0x5e7984){return function(){logger[_0xf566('0xb')](_0xf566('0xc'),_0x4279cb[_0xf566('0xd')]);var _0x142be0=!![];var _0x37df86={'tls':{'rejectUnauthorized':![]}};if(_0x4279cb[_0xf566('0xe')][_0xf566('0xf')][_0xf566('0x10')]){_0x37df86[_0xf566('0x10')]=_0x4279cb[_0xf566('0xe')][_0xf566('0xf')][_0xf566('0x10')];}else{_0x37df86['host']=_0x4279cb[_0xf566('0xe')]['Smtp'][_0xf566('0x11')];_0x37df86['port']=_0x4279cb[_0xf566('0xe')][_0xf566('0xf')][_0xf566('0x12')];_0x37df86['secure']=_0x4279cb[_0xf566('0xe')][_0xf566('0xf')][_0xf566('0x13')];}if(_0x4279cb[_0xf566('0xe')][_0xf566('0xf')]['authentication']){_0x37df86['auth']={'user':_0x4279cb['MailAccount'][_0xf566('0xf')][_0xf566('0x14')],'pass':_0x4279cb['MailAccount'][_0xf566('0xf')][_0xf566('0x15')]};}var _0x484f14={'account':_0x37df86,'message':{'from':util['format'](_0xf566('0x16'),_0x4279cb[_0xf566('0xe')][_0xf566('0x17')],_0x4279cb[_0xf566('0xe')][_0xf566('0xd')]||_0x4279cb[_0xf566('0xe')]['Smtp'][_0xf566('0x14')]),'to':_0x4279cb[_0xf566('0xd')],'cc':_0x4279cb['cc'],'bcc':_0x4279cb[_0xf566('0x18')],'subject':util[_0xf566('0x19')](_0xf566('0x1a'),_0x5e7984[_0xf566('0x17')],_0x4279cb[_0xf566('0x1b')],_0x4279cb['subtractUnit'])}};var _0x39baa4=path['join'](__dirname,_0xf566('0x1c'));var _0x269959=_0x5e7984[_0xf566('0x1d')];var _0x57cc85=util[_0xf566('0x19')](_0xf566('0x1e'),path[_0xf566('0x1f')](_0x5e7984[_0xf566('0x1d')],path[_0xf566('0x20')](_0x5e7984['savename'])),'zip');var _0x283e58=path[_0xf566('0x21')](_0x39baa4,_0x269959);var _0x887edc=path[_0xf566('0x21')](_0x39baa4,_0x57cc85);if(fs[_0xf566('0x22')](_0x283e58)){_0x5e7984[_0xf566('0x23')]='Sent';_0x484f14['message']['attachments']=[{'filename':_0x269959,'path':_0x283e58}];_0x484f14[_0xf566('0x24')]['text']=util[_0xf566('0x19')]('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON[_0xf566('0x25')](_0x5e7984,null,0x2));}else if(fs[_0xf566('0x22')](_0x887edc)){_0x5e7984[_0xf566('0x23')]=_0xf566('0x26');_0x484f14[_0xf566('0x24')][_0xf566('0x27')]=[{'filename':_0x57cc85,'path':_0x887edc}];}else{_0x484f14[_0xf566('0x24')][_0xf566('0x28')]=_0xf566('0x29');if(!_0x4279cb[_0xf566('0x2a')]){_0x142be0=![];logger['info'](_0xf566('0x2b'));}}if(_0x142be0){return client['request'](_0xf566('0x2c'),_0x484f14)['then'](function(_0x24b2d0){if(_0x24b2d0[_0xf566('0x2d')]){return logger[_0xf566('0x2d')]('error\x20mail',JSON['stringify'](_0x24b2d0));}return logger[_0xf566('0xb')](_0xf566('0x2e'));})[_0xf566('0x2f')](function(_0x53d765){return logger['error'](_0xf566('0x30'),JSON[_0xf566('0x25')](_0x53d765));});}};}function handleError(){return function(_0x3f4700){return logger[_0xf566('0x2d')](JSON[_0xf566('0x25')](_0x3f4700));};}function handleResult(_0x19ed11){return function(_0x19a5c0){logger['info']('data',JSON[_0xf566('0x25')](_0x19a5c0));if(_0x19ed11[_0xf566('0xe')]&&_0x19ed11[_0xf566('0xe')][_0xf566('0xf')]&&!_[_0xf566('0x31')](_0x19ed11[_0xf566('0xd')])){setTimeout(handleSendEmail(_0x19ed11,_0x19a5c0),0x3c*0x3e8);}};}function handleJob(_0x3b23f3){return function(){try{if(_['isNil'](_0x3b23f3[_0xf566('0x1b')])){return logger[_0xf566('0xb')](_0xf566('0x32'));}if(_[_0xf566('0x31')](_0x3b23f3[_0xf566('0x33')])){return logger[_0xf566('0xb')](_0xf566('0x34'));}var _0x3e712b={'startDate':moment()['subtract'](_0x3b23f3[_0xf566('0x1b')],_0x3b23f3[_0xf566('0x33')])[_0xf566('0x19')](_0xf566('0x35')),'endDate':moment()['format'](_0xf566('0x35')),'type':'scheduled','output':_0x3b23f3['output'],'name':_0x3b23f3['name']};if(!_[_0xf566('0x31')](_0x3b23f3['DefaultReportId'])){logger[_0xf566('0xb')](_0xf566('0x36'),_0x3b23f3[_0xf566('0x37')]);return analyticDefaultReportController['runReport']({'id':_0x3b23f3['DefaultReportId']},_0x3e712b)[_0xf566('0x38')](handleResult(_0x3b23f3))['catch'](handleError());}if(!_[_0xf566('0x31')](_0x3b23f3[_0xf566('0x39')])){logger[_0xf566('0xb')](_0xf566('0x3a'),_0x3b23f3[_0xf566('0x39')]);return analyticCustomReportController['runReport']({'id':_0x3b23f3[_0xf566('0x39')]},_0x3e712b)[_0xf566('0x38')](handleResult(_0x3b23f3))[_0xf566('0x2f')](handleError());}}catch(_0x4a396e){logger[_0xf566('0x2d')](JSON['stringify'](_0x4a396e));}return logger[_0xf566('0xb')](_0xf566('0x3b'));};}function getJobs(_0x362189){var _0x1db9a5={};if(_0x362189){_0x1db9a5['id']=_0x362189;}return db[_0xf566('0x3c')]['findAll']({'where':_0x1db9a5,'include':[{'model':db[_0xf566('0xe')],'attributes':['id',_0xf566('0x17'),_0xf566('0xd')],'include':[{'model':db[_0xf566('0x3d')],'as':'Smtp'}]}]})[_0xf566('0x38')](function(_0x1b1bc9){var _0x5dae54=_[_0xf566('0x3e')](manager[_0xf566('0x3f')]);var _0x520b7c=_[_0xf566('0x40')](_0x1b1bc9,function(_0x1ddfaf){return _0x1ddfaf['id'][_0xf566('0x41')]();});var _0x23409d=_[_0xf566('0x42')](_0x1b1bc9,function(_0x4db7ff){return _0x4db7ff['id']['toString']();});var _0x4ef30d=_0x362189?_0x520b7c:_[_0xf566('0x43')](_0x520b7c,_0x5dae54);var _0x534ac7=_['intersection'](_0x520b7c,_0x5dae54);var _0x5b67d9=_[_0xf566('0x43')](_0x5dae54,_0x520b7c);var _0xa882e7;var _0x389104;for(_0xa882e7=0x0;_0xa882e7<_0x5b67d9[_0xf566('0x44')]&&!_0x362189;_0xa882e7+=0x1){_0x389104=_0x5b67d9[_0xa882e7][_0xf566('0x41')]();if(manager[_0xf566('0x45')](_0x389104)){manager[_0xf566('0x46')](_0x389104);manager[_0xf566('0x47')](_0x389104);logger[_0xf566('0xb')](_0xf566('0x48'),_0x389104);}}logger[_0xf566('0xb')](_0xf566('0x49'),JSON[_0xf566('0x25')](_0x4ef30d));for(_0xa882e7=0x0;_0xa882e7<_0x4ef30d['length'];_0xa882e7+=0x1){_0x389104=_0x4ef30d[_0xa882e7][_0xf566('0x41')]();logger[_0xf566('0xb')](_0xf566('0x4a'),_0x389104);if(_0x362189){logger[_0xf566('0xb')](_0xf566('0x4b'),_0x362189);logger[_0xf566('0xb')](JSON[_0xf566('0x25')](_0x23409d[_0x389104]));BPromise[_0xf566('0x4c')]()['then'](handleJob(_0x23409d[_0x389104]));logger['info'](_0xf566('0x4d'),_0x23409d[_0x389104][_0xf566('0x17')],_0x23409d[_0x389104][_0xf566('0x4e')]);}else if(_0x23409d[_0x389104]['cron']&&_0x23409d[_0x389104]['active']&&moment()[_0xf566('0x4f')](_0x23409d[_0x389104][_0xf566('0x50')],_0x23409d[_0x389104][_0xf566('0x51')])){manager[_0xf566('0x52')](_0x389104,_0x23409d[_0x389104][_0xf566('0x4e')],handleJob(_0x23409d[_0x389104]));manager[_0xf566('0x53')](_0x389104);logger[_0xf566('0xb')]('add\x20cron',_0x23409d[_0x389104][_0xf566('0x17')],_0x23409d[_0x389104][_0xf566('0x4e')]);}else if(manager[_0xf566('0x45')](_0x389104)){manager[_0xf566('0x46')](_0x389104);manager[_0xf566('0x47')](_0x389104);logger[_0xf566('0xb')](_0xf566('0x54'),_0x23409d[_0x389104][_0xf566('0x17')],_0x23409d[_0x389104][_0xf566('0x4e')]);}}for(_0xa882e7=0x0,_0x389104;_0xa882e7<_0x534ac7[_0xf566('0x44')]&&!_0x362189;_0xa882e7+=0x1){_0x389104=_0x534ac7[_0xa882e7][_0xf566('0x41')]();if(manager['exists'](_0x389104)){if(_0x23409d[_0x389104]['cron']&&_0x23409d[_0x389104][_0xf566('0x55')]&&moment()['isBetween'](_0x23409d[_0x389104][_0xf566('0x50')],_0x23409d[_0x389104][_0xf566('0x51')])){manager[_0xf566('0x56')](_0x389104,_0x23409d[_0x389104][_0xf566('0x4e')],handleJob(_0x23409d[_0x389104]));logger[_0xf566('0xb')](_0xf566('0x57'),_0x23409d[_0x389104]['name'],_0x23409d[_0x389104][_0xf566('0x4e')]);}else{manager[_0xf566('0x46')](_0x389104);manager['deleteJob'](_0x389104);logger['info'](_0xf566('0x54'),_0x23409d[_0x389104][_0xf566('0x17')],_0x23409d[_0x389104][_0xf566('0x4e')]);}}}})[_0xf566('0x2f')](function(_0x34ce8f){logger[_0xf566('0x2d')](JSON[_0xf566('0x25')](_0x34ce8f));});}exports[_0xf566('0x58')]=function(_0xe73722){return getJobs(_0xe73722);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee5b=['Mixed','catch','name','SequelizeValidationError','error','inspect','VoiceRecording','findAll','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','Cloud\x20Provider\x20not\x20available','forEach','all','start','lodash','request-promise','util','../../mysqldb','../../config/logger','transcribe','Comprehend','detectSentiment','substring','info','format','data1','transcribeRegion','then','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','transcribeName','TranscriptionJobStatus','fileText','TranscriptionJob','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','transcript','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentimentAccountId','sentimentRegion','language','bucket','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','data2','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','SentimentScore','Neutral','FAILED','sentiment','findOne','Cloud\x20Provider\x20not\x20configured','Sentiment','Negative'];(function(_0x40fa2e,_0x3b0dff){var _0xb52924=function(_0xf049aa){while(--_0xf049aa){_0x40fa2e['push'](_0x40fa2e['shift']());}};_0xb52924(++_0x3b0dff);}(_0xee5b,0x1f4));var _0xbee5=function(_0x844d5c,_0x16e61e){_0x844d5c=_0x844d5c-0x0;var _0x15be5d=_0xee5b[_0x844d5c];return _0x15be5d;};var _=require(_0xbee5('0x0'));var AWS=require('aws-sdk');var rp=require(_0xbee5('0x1'));var util=require(_0xbee5('0x2'));var BPromise=require('bluebird');var db=require(_0xbee5('0x3'))['db'];var logger=require(_0xbee5('0x4'))(_0xbee5('0x5'));function getTranscriptionJob(_0x210159,_0x4bd202,_0x5200b1,_0x2e8127){return new Promise(function(_0x2c0bde,_0xab6e4d){var _0x804ab8=new AWS['TranscribeService']({'accessKeyId':_0x4bd202,'secretAccessKey':_0x210159,'region':_0x5200b1});_0x804ab8['getTranscriptionJob']({'TranscriptionJobName':_0x2e8127},function(_0x53d5b9,_0x5baf5c){if(_0x53d5b9){return _0xab6e4d(_0x53d5b9);}else{return _0x2c0bde(_0x5baf5c);}});});}function sentiment(_0x5536bd,_0x20c66c,_0x7dda04,_0x45c2c7,_0x20f717){return new Promise(function(_0x4a15bf,_0x143bd6){var _0x305921=new AWS[(_0xbee5('0x6'))]({'accessKeyId':_0x20c66c,'secretAccessKey':_0x5536bd,'region':_0x7dda04});_0x305921[_0xbee5('0x7')]({'Text':_0x45c2c7,'LanguageCode':_0x20f717[_0xbee5('0x8')](0x0,0x2)},function(_0x1509c7,_0x105e16){if(_0x1509c7){return _0x143bd6(_0x1509c7);}else{return _0x4a15bf(_0x105e16);}});});}function checkTranscribeJob(_0x17ee3c,_0xcef158,_0x48f771){var _0x14e032;return new BPromise(function(_0x532a78,_0x183877){logger[_0xbee5('0x9')](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)',_0x17ee3c['id'],_0x17ee3c['transcribeName']));return getTranscriptionJob(_0x48f771[_0xbee5('0xb')],_0x48f771['data2'],_0xcef158[_0xbee5('0xc')],_0x17ee3c['transcribeName'])[_0xbee5('0xd')](function(_0x141878){logger[_0xbee5('0x9')](util['format'](_0xbee5('0xe'),_0x17ee3c['id'],_0x17ee3c[_0xbee5('0xf')],_0x141878['TranscriptionJob'][_0xbee5('0x10')]));if(!_0x17ee3c[_0xbee5('0x11')]){switch(_0x141878[_0xbee5('0x12')][_0xbee5('0x10')]){case _0xbee5('0x13'):var _0xac51f5={'transcribeStatus':_0x141878[_0xbee5('0x12')][_0xbee5('0x10')],'fileUri':_0x141878[_0xbee5('0x12')][_0xbee5('0x14')][_0xbee5('0x15')]};logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x16'),_0x17ee3c['id']));return rp({'uri':_0x141878[_0xbee5('0x12')]['Transcript']['TranscriptFileUri'],'json':!![]})[_0xbee5('0xd')](function(_0x48bfb5){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x17'),_0x17ee3c['id']));if(_0x48bfb5&&_0x48bfb5[_0xbee5('0x18')]&&_0x48bfb5[_0xbee5('0x18')][_0xbee5('0x19')]&&_0x48bfb5[_0xbee5('0x18')][_0xbee5('0x19')][_0xbee5('0x1a')]){_0xac51f5['fileText']='';for(var _0x5b43b3=0x0;_0x5b43b3<_0x48bfb5['results']['transcripts']['length'];_0x5b43b3++){_0xac51f5[_0xbee5('0x11')]+=_0x48bfb5[_0xbee5('0x18')][_0xbee5('0x19')][_0x5b43b3][_0xbee5('0x1b')]+'';}}return _0x17ee3c[_0xbee5('0x1c')](_0xac51f5);})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util['format'](_0xbee5('0x1d'),_0x17ee3c['id']));if(!_0x17ee3c[_0xbee5('0x1e')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x21'));}if(!_0xcef158['sentiment']||!_0xcef158[_0xbee5('0x22')]||!_0xcef158[_0xbee5('0x23')]||!_0xcef158[_0xbee5('0x24')]||!_0xcef158[_0xbee5('0x25')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x26'));}if(!_0xac51f5[_0xbee5('0x11')]){throw new Error(_0xbee5('0x27'));}if(_0xcef158['sentimentAccountId']===_0x48f771['id']){return _0x48f771;}else{return db[_0xbee5('0x28')]['findOne']({'where':{'id':_settings[_0xbee5('0x22')]}});}})['then'](function(_0x2d20cd){if(!_0x2d20cd){throw new db['Sequelize'][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x2d20cd[_0xbee5('0xb')]||!_0x2d20cd[_0xbee5('0x29')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20configured');}_0x14e032=_0x2d20cd;logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x2a'),_0x17ee3c['id']));return sentiment(_0x14e032[_0xbee5('0xb')],_0x14e032['data2'],_0xcef158[_0xbee5('0x23')],_0xac51f5[_0xbee5('0x11')],_0xcef158[_0xbee5('0x24')]);})[_0xbee5('0xd')](function(_0x4c3428){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x2b'),_0x17ee3c['id']));return _0x17ee3c[_0xbee5('0x1c')]({'sentiment':_0x4c3428['Sentiment'],'sPositive':_0x4c3428[_0xbee5('0x2c')]['Positive'],'sNegative':_0x4c3428[_0xbee5('0x2c')]['Negative'],'sMixed':_0x4c3428['SentimentScore']['Mixed'],'sNeutral':_0x4c3428[_0xbee5('0x2c')][_0xbee5('0x2d')]});})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x1d'),_0x17ee3c['id']));_0x532a78();});case _0xbee5('0x2e'):return _0x17ee3c[_0xbee5('0x1c')]({'transcribeStatus':'FAILED','failureReason':_0x141878[_0xbee5('0x12')]['FailureReason']})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x1d'),_0x17ee3c['id']));_0x532a78();});default:logger['info'](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed',_0x17ee3c['id']));break;}}else{return BPromise['resolve']()[_0xbee5('0xd')](function(){if(!_0x17ee3c[_0xbee5('0x1e')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0xcef158[_0xbee5('0x2f')]||!_0xcef158[_0xbee5('0x22')]||!_0xcef158[_0xbee5('0x23')]||!_0xcef158[_0xbee5('0x24')]||!_0xcef158[_0xbee5('0x25')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x26'));}if(!_0x17ee3c[_0xbee5('0x11')]){throw new Error(_0xbee5('0x27'));}if(_0xcef158['sentimentAccountId']===_0x48f771['id']){return _0x48f771;}else{return db[_0xbee5('0x28')][_0xbee5('0x30')]({'where':{'id':_settings['sentimentAccountId']}});}})[_0xbee5('0xd')](function(_0xebbcc5){if(!_0xebbcc5){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0xebbcc5['data1']||!_0xebbcc5['data2']){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x31'));}_0x14e032=_0xebbcc5;logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x2a'),_0x17ee3c['id']));return sentiment(_0x14e032[_0xbee5('0xb')],_0x14e032[_0xbee5('0x29')],_0xcef158[_0xbee5('0x23')],_0x17ee3c['fileText'],_0xcef158['language']);})[_0xbee5('0xd')](function(_0x51726a){logger[_0xbee5('0x9')](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0x17ee3c['id']));return _0x17ee3c[_0xbee5('0x1c')]({'sentiment':_0x51726a[_0xbee5('0x32')],'sPositive':_0x51726a['SentimentScore']['Positive'],'sNegative':_0x51726a[_0xbee5('0x2c')][_0xbee5('0x33')],'sMixed':_0x51726a['SentimentScore'][_0xbee5('0x34')],'sNeutral':_0x51726a[_0xbee5('0x2c')]['Neutral'],'transcribeStatus':_0xbee5('0x13')});})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x1d'),_0x17ee3c['id']));_0x532a78();});}})[_0xbee5('0x35')](function(_0x228deb){if(_0x228deb){if(!_0x228deb['name']||_0x228deb[_0xbee5('0x36')]!==_0xbee5('0x37')){logger[_0xbee5('0x38')](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis',_0x17ee3c['id']),util[_0xbee5('0x39')](_0x228deb,{'showHidden':![],'depth':null}));}}_0x532a78();});});}function checkTranscribe(){var _0xd91d62;var _0xa1736c;var _0x4aa21a;return db[_0xbee5('0x3a')][_0xbee5('0x3b')]({'where':{'transcribeStatus':'IN_PROGRESS'}})['then'](function(_0x54a570){if(!_0x54a570||!_0x54a570[_0xbee5('0x1a')]){throw new db['Sequelize'][(_0xbee5('0x20'))](_0xbee5('0x3c'));}_0xd91d62=_0x54a570;return db[_0xbee5('0x3d')][_0xbee5('0x30')]({'where':{'id':0x1}});})[_0xbee5('0xd')](function(_0x296fc8){if(!_0x296fc8){throw new db['Sequelize'][(_0xbee5('0x20'))](_0xbee5('0x3e'));}_0xa1736c=_0x296fc8;if(!_0xa1736c[_0xbee5('0x5')]||!_0xa1736c[_0xbee5('0x3f')]||!_0xa1736c['transcribeRegion']||!_0xa1736c[_0xbee5('0x24')]||!_0xa1736c['bucket']){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x40'));}return db[_0xbee5('0x28')][_0xbee5('0x30')]({'where':{'id':_0xa1736c[_0xbee5('0x3f')]}});})[_0xbee5('0xd')](function(_0x35f1d1){if(!_0x35f1d1){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x41'));}if(!_0x35f1d1[_0xbee5('0xb')]||!_0x35f1d1[_0xbee5('0x29')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20configured');}_0x4aa21a=_0x35f1d1;var _0xdab892=[];_0xd91d62[_0xbee5('0x42')](function(_0x128b03){_0xdab892['push'](checkTranscribeJob(_0x128b03,_0xa1736c,_0x4aa21a));});return BPromise[_0xbee5('0x43')](_0xdab892);})[_0xbee5('0x35')](function(_0x21d9c6){if(_0x21d9c6){if(!_0x21d9c6['name']||_0x21d9c6[_0xbee5('0x36')]!=='SequelizeValidationError'){logger[_0xbee5('0x38')](util['inspect'](_0x21d9c6,{'showHidden':![],'depth':null}));}}});}exports[_0xbee5('0x44')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
+var _0x1572=['Sentiment','SentimentScore','Mixed','FAILED','FailureReason','tempSentiment','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Positive','Negative','Neutral','catch','name','error','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','VoiceRecording','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeRegion','Transcribe\x20not\x20configured','forEach','push','all','SequelizeValidationError','inspect','lodash','aws-sdk','request-promise','util','bluebird','../../mysqldb','../../config/logger','transcribe','TranscribeService','getTranscriptionJob','Comprehend','detectSentiment','info','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','then','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJob','TranscriptionJobStatus','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','fileText','transcript','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentRegion','language','bucket','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','sentimentAccountId','CloudProvider','findOne','data1','data2','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis'];(function(_0x39999c,_0x38659a){var _0x4a232d=function(_0x13d570){while(--_0x13d570){_0x39999c['push'](_0x39999c['shift']());}};_0x4a232d(++_0x38659a);}(_0x1572,0xf5));var _0x2157=function(_0x4c1979,_0x74a3ba){_0x4c1979=_0x4c1979-0x0;var _0x180b3e=_0x1572[_0x4c1979];return _0x180b3e;};var _=require(_0x2157('0x0'));var AWS=require(_0x2157('0x1'));var rp=require(_0x2157('0x2'));var util=require(_0x2157('0x3'));var BPromise=require(_0x2157('0x4'));var db=require(_0x2157('0x5'))['db'];var logger=require(_0x2157('0x6'))(_0x2157('0x7'));function getTranscriptionJob(_0x214311,_0x30e5c6,_0x2cb065,_0x3c3eb5){return new Promise(function(_0x2f13ab,_0x9e1c46){var _0x286be0=new AWS[(_0x2157('0x8'))]({'accessKeyId':_0x30e5c6,'secretAccessKey':_0x214311,'region':_0x2cb065});_0x286be0[_0x2157('0x9')]({'TranscriptionJobName':_0x3c3eb5},function(_0x91bf75,_0x5e9959){if(_0x91bf75){return _0x9e1c46(_0x91bf75);}else{return _0x2f13ab(_0x5e9959);}});});}function sentiment(_0x2ee42e,_0x4cd82d,_0x91d81,_0xaa87db,_0x17d4c0){return new Promise(function(_0x366643,_0x2ae8d5){var _0x3bcff9=new AWS[(_0x2157('0xa'))]({'accessKeyId':_0x4cd82d,'secretAccessKey':_0x2ee42e,'region':_0x91d81});_0x3bcff9[_0x2157('0xb')]({'Text':_0xaa87db,'LanguageCode':_0x17d4c0['substring'](0x0,0x2)},function(_0x3ff739,_0x2088ab){if(_0x3ff739){return _0x2ae8d5(_0x3ff739);}else{return _0x366643(_0x2088ab);}});});}function checkTranscribeJob(_0xd969d2,_0x1434ee,_0x5d64d3){var _0x32683b;return new BPromise(function(_0x418d29,_0xba98c0){logger[_0x2157('0xc')](util[_0x2157('0xd')](_0x2157('0xe'),_0xd969d2['id'],_0xd969d2[_0x2157('0xf')]));return getTranscriptionJob(_0x5d64d3['data1'],_0x5d64d3['data2'],_0x1434ee['transcribeRegion'],_0xd969d2[_0x2157('0xf')])[_0x2157('0x10')](function(_0x371461){logger[_0x2157('0xc')](util[_0x2157('0xd')](_0x2157('0x11'),_0xd969d2['id'],_0xd969d2[_0x2157('0xf')],_0x371461[_0x2157('0x12')][_0x2157('0x13')]));if(!_0xd969d2['fileText']){switch(_0x371461[_0x2157('0x12')][_0x2157('0x13')]){case _0x2157('0x14'):var _0x5c6661={'transcribeStatus':_0x371461[_0x2157('0x12')][_0x2157('0x13')],'fileUri':_0x371461[_0x2157('0x12')][_0x2157('0x15')][_0x2157('0x16')]};logger['info'](util['format']('[RECORDING:%d]\x20Get\x20transcript',_0xd969d2['id']));return rp({'uri':_0x371461[_0x2157('0x12')]['Transcript'][_0x2157('0x16')],'json':!![]})[_0x2157('0x10')](function(_0x537ada){logger['info'](util[_0x2157('0xd')](_0x2157('0x17'),_0xd969d2['id']));if(_0x537ada&&_0x537ada[_0x2157('0x18')]&&_0x537ada[_0x2157('0x18')]['transcripts']&&_0x537ada[_0x2157('0x18')][_0x2157('0x19')]['length']){_0x5c6661['fileText']='';for(var _0x138c0e=0x0;_0x138c0e<_0x537ada[_0x2157('0x18')][_0x2157('0x19')][_0x2157('0x1a')];_0x138c0e++){_0x5c6661[_0x2157('0x1b')]+=_0x537ada[_0x2157('0x18')]['transcripts'][_0x138c0e][_0x2157('0x1c')]+'';}}return _0xd969d2[_0x2157('0x1d')](_0x5c6661);})[_0x2157('0x10')](function(){logger[_0x2157('0xc')](util[_0x2157('0xd')](_0x2157('0x1e'),_0xd969d2['id']));if(!_0xd969d2['tempSentiment']){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x21'));}if(!_0x1434ee[_0x2157('0x22')]||!_0x1434ee['sentimentAccountId']||!_0x1434ee[_0x2157('0x23')]||!_0x1434ee[_0x2157('0x24')]||!_0x1434ee[_0x2157('0x25')]){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x26'));}if(!_0x5c6661[_0x2157('0x1b')]){throw new Error(_0x2157('0x27'));}if(_0x1434ee[_0x2157('0x28')]===_0x5d64d3['id']){return _0x5d64d3;}else{return db[_0x2157('0x29')][_0x2157('0x2a')]({'where':{'id':_settings[_0x2157('0x28')]}});}})[_0x2157('0x10')](function(_0x3c887e){if(!_0x3c887e){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x3c887e[_0x2157('0x2b')]||!_0x3c887e[_0x2157('0x2c')]){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x2d'));}_0x32683b=_0x3c887e;logger[_0x2157('0xc')](util[_0x2157('0xd')](_0x2157('0x2e'),_0xd969d2['id']));return sentiment(_0x32683b[_0x2157('0x2b')],_0x32683b['data2'],_0x1434ee['sentimentRegion'],_0x5c6661[_0x2157('0x1b')],_0x1434ee[_0x2157('0x24')]);})['then'](function(_0x6096fe){logger[_0x2157('0xc')](util[_0x2157('0xd')]('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0xd969d2['id']));return _0xd969d2[_0x2157('0x1d')]({'sentiment':_0x6096fe[_0x2157('0x2f')],'sPositive':_0x6096fe[_0x2157('0x30')]['Positive'],'sNegative':_0x6096fe[_0x2157('0x30')]['Negative'],'sMixed':_0x6096fe[_0x2157('0x30')][_0x2157('0x31')],'sNeutral':_0x6096fe[_0x2157('0x30')]['Neutral']});})[_0x2157('0x10')](function(){logger[_0x2157('0xc')](util['format']('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0xd969d2['id']));_0x418d29();});case _0x2157('0x32'):return _0xd969d2[_0x2157('0x1d')]({'transcribeStatus':'FAILED','failureReason':_0x371461[_0x2157('0x12')][_0x2157('0x33')]})['then'](function(){logger[_0x2157('0xc')](util['format']('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0xd969d2['id']));_0x418d29();});default:logger[_0x2157('0xc')](util[_0x2157('0xd')]('[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed',_0xd969d2['id']));break;}}else{return BPromise['resolve']()[_0x2157('0x10')](function(){if(!_0xd969d2[_0x2157('0x34')]){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x21'));}if(!_0x1434ee[_0x2157('0x22')]||!_0x1434ee[_0x2157('0x28')]||!_0x1434ee['sentimentRegion']||!_0x1434ee[_0x2157('0x24')]||!_0x1434ee[_0x2157('0x25')]){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x26'));}if(!_0xd969d2[_0x2157('0x1b')]){throw new Error('Transcript\x20not\x20available');}if(_0x1434ee['sentimentAccountId']===_0x5d64d3['id']){return _0x5d64d3;}else{return db['CloudProvider'][_0x2157('0x2a')]({'where':{'id':_settings['sentimentAccountId']}});}})[_0x2157('0x10')](function(_0x10cfc3){if(!_0x10cfc3){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x10cfc3[_0x2157('0x2b')]||!_0x10cfc3[_0x2157('0x2c')]){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x2d'));}_0x32683b=_0x10cfc3;logger[_0x2157('0xc')](util[_0x2157('0xd')]('[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis',_0xd969d2['id']));return sentiment(_0x32683b[_0x2157('0x2b')],_0x32683b[_0x2157('0x2c')],_0x1434ee['sentimentRegion'],_0xd969d2[_0x2157('0x1b')],_0x1434ee[_0x2157('0x24')]);})[_0x2157('0x10')](function(_0x5289e0){logger[_0x2157('0xc')](util[_0x2157('0xd')](_0x2157('0x35'),_0xd969d2['id']));return _0xd969d2[_0x2157('0x1d')]({'sentiment':_0x5289e0[_0x2157('0x2f')],'sPositive':_0x5289e0['SentimentScore'][_0x2157('0x36')],'sNegative':_0x5289e0['SentimentScore'][_0x2157('0x37')],'sMixed':_0x5289e0[_0x2157('0x30')][_0x2157('0x31')],'sNeutral':_0x5289e0[_0x2157('0x30')][_0x2157('0x38')],'transcribeStatus':_0x2157('0x14')});})['then'](function(){logger[_0x2157('0xc')](util[_0x2157('0xd')](_0x2157('0x1e'),_0xd969d2['id']));_0x418d29();});}})[_0x2157('0x39')](function(_0x5e04ca){if(_0x5e04ca){if(!_0x5e04ca[_0x2157('0x3a')]||_0x5e04ca[_0x2157('0x3a')]!=='SequelizeValidationError'){logger[_0x2157('0x3b')](util[_0x2157('0xd')](_0x2157('0x3c'),_0xd969d2['id']),util['inspect'](_0x5e04ca,{'showHidden':![],'depth':null}));}}_0x418d29();});});}function checkTranscribe(){var _0x2d0963;var _0x545b46;var _0xb6b619;return db[_0x2157('0x3d')]['findAll']({'where':{'transcribeStatus':_0x2157('0x3e')}})[_0x2157('0x10')](function(_0x1f18f1){if(!_0x1f18f1||!_0x1f18f1[_0x2157('0x1a')]){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x3f'));}_0x2d0963=_0x1f18f1;return db[_0x2157('0x40')][_0x2157('0x2a')]({'where':{'id':0x1}});})['then'](function(_0x3c7cbf){if(!_0x3c7cbf){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))](_0x2157('0x41'));}_0x545b46=_0x3c7cbf;if(!_0x545b46[_0x2157('0x7')]||!_0x545b46['transcribeAccountId']||!_0x545b46[_0x2157('0x42')]||!_0x545b46['language']||!_0x545b46['bucket']){throw new db[(_0x2157('0x1f'))]['ValidationError'](_0x2157('0x43'));}return db[_0x2157('0x29')][_0x2157('0x2a')]({'where':{'id':_0x545b46['transcribeAccountId']}});})[_0x2157('0x10')](function(_0x2aba0a){if(!_0x2aba0a){throw new db[(_0x2157('0x1f'))][(_0x2157('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x2aba0a[_0x2157('0x2b')]||!_0x2aba0a[_0x2157('0x2c')]){throw new db['Sequelize'][(_0x2157('0x20'))](_0x2157('0x2d'));}_0xb6b619=_0x2aba0a;var _0x44ee05=[];_0x2d0963[_0x2157('0x44')](function(_0x1dc792){_0x44ee05[_0x2157('0x45')](checkTranscribeJob(_0x1dc792,_0x545b46,_0xb6b619));});return BPromise[_0x2157('0x46')](_0x44ee05);})[_0x2157('0x39')](function(_0x4aca70){if(_0x4aca70){if(!_0x4aca70[_0x2157('0x3a')]||_0x4aca70[_0x2157('0x3a')]!==_0x2157('0x47')){logger[_0x2157('0x3b')](util[_0x2157('0x48')](_0x4aca70,{'showHidden':![],'depth':null}));}}});}exports['start']=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d76=['[WHATSAPP]\x20Interactions\x20to\x20close:','join','WhatsappInteraction','timeout','format','YYYY-MM-DD\x20HH:mm:ss','emit','whatsappInteraction:update','error','inspect','lodash','moment','../../config/environment','../../mysqldb','../logger','schedule','redis','defaults','localhost','socket.io-emitter','lastMsgAt','subtract','then','length','map','info'];(function(_0x322522,_0x4db288){var _0x293bcf=function(_0xf108b8){while(--_0xf108b8){_0x322522['push'](_0x322522['shift']());}};_0x293bcf(++_0x4db288);}(_0x1d76,0x1c4));var _0x61d7=function(_0x19bfff,_0x3a02e2){_0x19bfff=_0x19bfff-0x0;var _0x4b54e9=_0x1d76[_0x19bfff];return _0x4b54e9;};'use strict';var _=require(_0x61d7('0x0'));var moment=require(_0x61d7('0x1'));var Redis=require('ioredis');var util=require('util');var config=require(_0x61d7('0x2'));var db=require(_0x61d7('0x3'))['db'];var logger=require(_0x61d7('0x4'))(_0x61d7('0x5'));config[_0x61d7('0x6')]=_[_0x61d7('0x7')](config[_0x61d7('0x6')],{'host':_0x61d7('0x8'),'port':0x18eb});var io=require(_0x61d7('0x9'))(new Redis(config[_0x61d7('0x6')]));function closeInteractions(){var _0x4e5cc8=[];return db['WhatsappInteraction']['findAll']({'raw':!![],'attributes':['id',_0x61d7('0xa')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0x61d7('0xb')](0x18,'hours')}}})[_0x61d7('0xc')](function(_0x196dbd){if(_0x196dbd&&_0x196dbd[_0x61d7('0xd')]){_0x4e5cc8=_[_0x61d7('0xe')](_0x196dbd||[],'id');logger[_0x61d7('0xf')](_0x61d7('0x10'),_0x4e5cc8[_0x61d7('0x11')]());return db[_0x61d7('0x12')]['update']({'closeReason':'system','disposition':_0x61d7('0x13'),'closed':!![],'closedAt':moment()[_0x61d7('0x14')](_0x61d7('0x15'))},{'where':{'id':_0x4e5cc8}});}})['then'](function(){if(_0x4e5cc8&&_0x4e5cc8[_0x61d7('0xd')]){logger[_0x61d7('0xf')]('[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:',_0x4e5cc8[_0x61d7('0x11')]());for(var _0x316b0b=0x0;_0x316b0b<_0x4e5cc8['length'];_0x316b0b++){io[_0x61d7('0x16')](_0x61d7('0x17'),{'id':_0x4e5cc8[_0x316b0b],'closed':!![]});}}})['catch'](function(_0x2f74cb){logger[_0x61d7('0x18')]('[WHATSAPP]\x20Error\x20closing\x20interactions',_0x2f74cb?util[_0x61d7('0x19')](_0x2f74cb,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x8491=['subtract','hours','then','length','map','info','join','update','system','timeout','YYYY-MM-DD\x20HH:mm:ss','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','emit','whatsappInteraction:update','error','inspect','start','moment','ioredis','util','../../config/environment','../../mysqldb','../logger','schedule','redis','defaults','localhost','WhatsappInteraction','findAll','lastMsgAt'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x8491,0xc5));var _0x1849=function(_0x2dadb9,_0x42cfe6){_0x2dadb9=_0x2dadb9-0x0;var _0x2f0097=_0x8491[_0x2dadb9];return _0x2f0097;};'use strict';var _=require('lodash');var moment=require(_0x1849('0x0'));var Redis=require(_0x1849('0x1'));var util=require(_0x1849('0x2'));var config=require(_0x1849('0x3'));var db=require(_0x1849('0x4'))['db'];var logger=require(_0x1849('0x5'))(_0x1849('0x6'));config[_0x1849('0x7')]=_[_0x1849('0x8')](config['redis'],{'host':_0x1849('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1849('0x7')]));function closeInteractions(){var _0x474b12=[];return db[_0x1849('0xa')][_0x1849('0xb')]({'raw':!![],'attributes':['id',_0x1849('0xc')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0x1849('0xd')](0x18,_0x1849('0xe'))}}})[_0x1849('0xf')](function(_0x359234){if(_0x359234&&_0x359234[_0x1849('0x10')]){_0x474b12=_[_0x1849('0x11')](_0x359234||[],'id');logger[_0x1849('0x12')]('[WHATSAPP]\x20Interactions\x20to\x20close:',_0x474b12[_0x1849('0x13')]());return db[_0x1849('0xa')][_0x1849('0x14')]({'closeReason':_0x1849('0x15'),'disposition':_0x1849('0x16'),'closed':!![],'closedAt':moment()['format'](_0x1849('0x17'))},{'where':{'id':_0x474b12}});}})[_0x1849('0xf')](function(){if(_0x474b12&&_0x474b12[_0x1849('0x10')]){logger['info'](_0x1849('0x18'),_0x474b12[_0x1849('0x13')]());for(var _0xcf507=0x0;_0xcf507<_0x474b12[_0x1849('0x10')];_0xcf507++){io[_0x1849('0x19')](_0x1849('0x1a'),{'id':_0x474b12[_0xcf507],'closed':!![]});}}})['catch'](function(_0x2d651d){logger[_0x1849('0x1b')]('[WHATSAPP]\x20Error\x20closing\x20interactions',_0x2d651d?util[_0x1849('0x1c')](_0x2d651d,{'showHidden':![],'depth':null}):'');});}exports[_0x1849('0x1d')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6dc=['then','log','finished\x20populating','contacts1','CmHopper','bulkCreate','contacts2','hopper2','catch','push','Innocenzo','innocenzo.biondo','@xcally.com','now','Biondo','CmContact','destroy'];(function(_0x5e1173,_0x100d4b){var _0x5c6542=function(_0x85f414){while(--_0x85f414){_0x5e1173['push'](_0x5e1173['shift']());}};_0x5c6542(++_0x100d4b);}(_0xd6dc,0x16e));var _0xcd6d=function(_0x4223db,_0x1991ba){_0x4223db=_0x4223db-0x0;var _0x3aff88=_0xd6dc[_0x4223db];return _0x3aff88;};'use strict';var util=require('util');var db=require('../mysqldb')['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0xcd6d('0x0')]({'id':i,'firstName':_0xcd6d('0x1')+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0xcd6d('0x2')+i+_0xcd6d('0x3')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper['push']({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0xcd6d('0x4')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0xcd6d('0x0')]({'id':i,'firstName':_0xcd6d('0x1')+i,'lastName':_0xcd6d('0x5')+i,'phone':0xf879fb460+i,'email':_0xcd6d('0x2')+i+_0xcd6d('0x3')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0xcd6d('0x0')]({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xcd6d('0x4')](),'updatedAt':Date['now']()});}db[_0xcd6d('0x6')][_0xcd6d('0x7')]({'where':{}})[_0xcd6d('0x8')](function(){return db[_0xcd6d('0x6')]['bulkCreate'](contacts);})['then'](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),_0xcd6d('0xb'));return db[_0xcd6d('0xc')][_0xcd6d('0x7')]({'where':{}});})['then'](function(){return db[_0xcd6d('0xc')][_0xcd6d('0xd')](hopper);})['then'](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),'hopper1');return db[_0xcd6d('0x6')]['bulkCreate'](contacts2);})[_0xcd6d('0x8')](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),_0xcd6d('0xe'));return db['CmHopper']['bulkCreate'](hopper2);})[_0xcd6d('0x8')](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),_0xcd6d('0xf'));})[_0xcd6d('0x10')](function(_0x1955a4){console[_0xcd6d('0x9')](_0x1955a4);});
\ No newline at end of file
+var _0x6b1d=['innocenzo.biondo','@xcally.com','now','CmContact','destroy','then','bulkCreate','log','finished\x20populating','CmHopper','hopper1','contacts2','hopper2','catch','util','push','Innocenzo','Biondo'];(function(_0x2f3412,_0x2b8d24){var _0x4071d6=function(_0x5af33d){while(--_0x5af33d){_0x2f3412['push'](_0x2f3412['shift']());}};_0x4071d6(++_0x2b8d24);}(_0x6b1d,0x164));var _0xd6b1=function(_0x435348,_0x617493){_0x435348=_0x435348-0x0;var _0x35d479=_0x6b1d[_0x435348];return _0x35d479;};'use strict';var util=require(_0xd6b1('0x0'));var db=require('../mysqldb')['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0xd6b1('0x1')]({'id':i,'firstName':_0xd6b1('0x2')+i,'lastName':_0xd6b1('0x3')+i,'phone':0xf879fb460+i,'email':_0xd6b1('0x4')+i+_0xd6b1('0x5')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0xd6b1('0x1')]({'id':i,'active':![],'scheduledat':Date[_0xd6b1('0x6')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xd6b1('0x6')](),'updatedAt':Date[_0xd6b1('0x6')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0xd6b1('0x1')]({'id':i,'firstName':'Innocenzo'+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0xd6b1('0x4')+i+'@xcally.com'});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0xd6b1('0x1')]({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xd6b1('0x6')](),'updatedAt':Date[_0xd6b1('0x6')]()});}db[_0xd6b1('0x7')][_0xd6b1('0x8')]({'where':{}})[_0xd6b1('0x9')](function(){return db[_0xd6b1('0x7')][_0xd6b1('0xa')](contacts);})[_0xd6b1('0x9')](function(){console[_0xd6b1('0xb')](_0xd6b1('0xc'),'contacts1');return db[_0xd6b1('0xd')][_0xd6b1('0x8')]({'where':{}});})[_0xd6b1('0x9')](function(){return db[_0xd6b1('0xd')][_0xd6b1('0xa')](hopper);})[_0xd6b1('0x9')](function(){console['log']('finished\x20populating',_0xd6b1('0xe'));return db[_0xd6b1('0x7')][_0xd6b1('0xa')](contacts2);})[_0xd6b1('0x9')](function(){console[_0xd6b1('0xb')](_0xd6b1('0xc'),_0xd6b1('0xf'));return db[_0xd6b1('0xd')][_0xd6b1('0xa')](hopper2);})[_0xd6b1('0x9')](function(){console[_0xd6b1('0xb')](_0xd6b1('0xc'),_0xd6b1('0x10'));})[_0xd6b1('0x11')](function(_0x218812){console[_0xd6b1('0xb')](_0x218812);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63a0=['log','add\x20user','catch','util','../mysqldb','format','%s%s','agent','%s%s@xcally.com','password','friend','udp','wss','all','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','User'];(function(_0x4417a6,_0x326366){var _0x56efb3=function(_0x15c4d0){while(--_0x15c4d0){_0x4417a6['push'](_0x4417a6['shift']());}};_0x56efb3(++_0x326366);}(_0x63a0,0xcb));var _0x063a=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x63a0[_0xa464c9];return _0x3d73c4;};'use strict';var util=require(_0x063a('0x0'));var db=require(_0x063a('0x1'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users['push']({'name':util[_0x063a('0x2')](_0x063a('0x3'),_0x063a('0x4'),i),'fullname':util['format'](_0x063a('0x3'),_0x063a('0x4'),i),'email':util[_0x063a('0x2')](_0x063a('0x5'),_0x063a('0x4'),i),'role':_0x063a('0x4'),'password':_0x063a('0x6'),'internal':0xfa0+i,'type':_0x063a('0x7'),'transport':[_0x063a('0x8'),'ws',_0x063a('0x9')],'disallow':[_0x063a('0xa')],'allow':['ulaw'],'defaultuser':util[_0x063a('0x2')](_0x063a('0x3'),_0x063a('0x4'),i),'encryption':_0x063a('0xb'),'avpf':_0x063a('0xb'),'force_avp':_0x063a('0xb'),'icesupport':'yes','dtlsenable':_0x063a('0xb'),'dtlsverify':'no','dtlscertfile':_0x063a('0xc'),'dtlsprivatekey':_0x063a('0xd'),'dtlssetup':_0x063a('0xe'),'callerid':util[_0x063a('0x2')](_0x063a('0xf'),util[_0x063a('0x2')](_0x063a('0x3'),'agent',i),0xfa0+i)});}db[_0x063a('0x10')]['bulkCreate'](users)['then'](function(){console[_0x063a('0x11')](_0x063a('0x12'));})[_0x063a('0x13')](function(_0x5ac8ac){console[_0x063a('0x11')](_0x5ac8ac);});
\ No newline at end of file
+var _0xf28e=['friend','udp','wss','all','ulaw','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','log','add\x20user','catch','util','../mysqldb','%s%s','format','agent','password'];(function(_0x4709c0,_0x3396c7){var _0x13348b=function(_0x426235){while(--_0x426235){_0x4709c0['push'](_0x4709c0['shift']());}};_0x13348b(++_0x3396c7);}(_0xf28e,0xd2));var _0xef28=function(_0x1d04b5,_0x30792c){_0x1d04b5=_0x1d04b5-0x0;var _0x161342=_0xf28e[_0x1d04b5];return _0x161342;};'use strict';var util=require(_0xef28('0x0'));var db=require(_0xef28('0x1'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users['push']({'name':util['format'](_0xef28('0x2'),'agent',i),'fullname':util[_0xef28('0x3')](_0xef28('0x2'),_0xef28('0x4'),i),'email':util['format']('%s%s@xcally.com',_0xef28('0x4'),i),'role':_0xef28('0x4'),'password':_0xef28('0x5'),'internal':0xfa0+i,'type':_0xef28('0x6'),'transport':[_0xef28('0x7'),'ws',_0xef28('0x8')],'disallow':[_0xef28('0x9')],'allow':[_0xef28('0xa')],'defaultuser':util[_0xef28('0x3')](_0xef28('0x2'),_0xef28('0x4'),i),'encryption':_0xef28('0xb'),'avpf':'yes','force_avp':_0xef28('0xb'),'icesupport':'yes','dtlsenable':_0xef28('0xb'),'dtlsverify':'no','dtlscertfile':_0xef28('0xc'),'dtlsprivatekey':_0xef28('0xd'),'dtlssetup':_0xef28('0xe'),'callerid':util[_0xef28('0x3')]('\x22%s\x22\x20<%s>',util[_0xef28('0x3')]('%s%s',_0xef28('0x4'),i),0xfa0+i)});}db['User']['bulkCreate'](users)['then'](function(){console[_0xef28('0xf')](_0xef28('0x10'));})[_0xef28('0x11')](function(_0x4aead0){console[_0xef28('0xf')](_0x4aead0);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x26c2=['util','bluebird','../mysqldb','./environment','Agents','name','role','agent','telephone','ivr','UserProfileSection','findOne','then','autoAssociation','VoiceQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Trunks','IvrCampaigns','resourceId','map','User','where','Campaign','type','format','%s:queue:%s','length','user:%s','handshake','find','userProfileId','query','ChatInteraction','ChatInteractions','MailInteraction','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteractions','voice:inbound','voice:outbound','hasOwnProperty','include','push','VoiceQueue','ChatQueue','FaxQueue','MailQueue','OpenchannelQueue','user','ChatQueues','WhatsappQueue','Trunk','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','all','voice','chat','fax','openchannel','whatsapp','telephone:%s','trunk:%s','leave','emit','user_has_chat_interactions:remove','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','SmsInteractions','removeSmsInteractions','removeOpenchannelInteractions','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','log','SocketIO\x20','nsp','disconnect','DISCONNECTED'];(function(_0x4ae024,_0x2e3bfc){var _0x1b0f81=function(_0x52417d){while(--_0x52417d){_0x4ae024['push'](_0x4ae024['shift']());}};_0x1b0f81(++_0x2e3bfc);}(_0x26c2,0x1d6));var _0x226c=function(_0x3234a1,_0x5edc97){_0x3234a1=_0x3234a1-0x0;var _0xf6782f=_0x26c2[_0x3234a1];return _0xf6782f;};'use strict';var _=require('lodash');var util=require(_0x226c('0x0'));var BPromise=require(_0x226c('0x1'));var db=require(_0x226c('0x2'))['db'];var config=require(_0x226c('0x3'));var queryQueues={'attributes':['id','name'],'include':[{'as':_0x226c('0x4'),'model':db['User'],'attributes':['id',_0x226c('0x5'),_0x226c('0x6')],'raw':!![],'where':{'role':_0x226c('0x7')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x226c('0x5')],'where':{'role':_0x226c('0x8')}};var queryTrunks={'raw':!![],'attributes':['id',_0x226c('0x5')]};var queryAgents={'raw':!![],'attributes':['id',_0x226c('0x5')],'where':{'role':'agent'}};var queryCampaigns={'raw':!![],'attributes':['id','name','type'],'where':{'type':_0x226c('0x9')}};function getAssociatedResources(_0x1677ee,_0x5a8a66,_0x475e09){return db[_0x226c('0xa')][_0x226c('0xb')]({'where':{'name':_0x1677ee,'userProfileId':_0x5a8a66},'raw':!![]})[_0x226c('0xc')](function(_0x1ae421){if(_0x1ae421){if(_0x1ae421[_0x226c('0xd')]){switch(_0x1677ee){case _0x226c('0xe'):case'ChatQueues':case'FaxQueues':case _0x226c('0xf'):case _0x226c('0x10'):case _0x226c('0x11'):case _0x226c('0x12'):return db[_0x475e09]['findAll'](queryQueues);case'Telephones':return db[_0x475e09][_0x226c('0x13')](queryTelephones);case _0x226c('0x14'):return db[_0x475e09][_0x226c('0x13')](queryTrunks);case _0x226c('0x15'):return db[_0x475e09][_0x226c('0x13')](queryCampaigns);}}else{return db['UserProfileResource'][_0x226c('0x13')]({'attributes':[_0x226c('0x16')],'where':{'sectionId':_0x1ae421['id']},'raw':!![]})[_0x226c('0xc')](function(_0x4b542b){if(_0x4b542b){var _0x19d62d={'where':{'id':_[_0x226c('0x17')](_0x4b542b,_0x226c('0x16'))},'raw':!![]};switch(_0x475e09){case _0x226c('0x18'):_0x19d62d[_0x226c('0x19')][_0x226c('0x6')]=_0x226c('0x8');break;case _0x226c('0x1a'):_0x19d62d[_0x226c('0x19')][_0x226c('0x1b')]=_0x226c('0x9');break;}return db[_0x475e09][_0x226c('0x13')](_0x19d62d);}else{return[];}});}}else{return[];}})[_0x226c('0xc')](function(_0x53c323){return _0x53c323;});}function joinOrLeaveQueues(_0x34242a,_0x1d3ee8,_0x1abe31,_0x49f43d){_0x34242a[_0x1d3ee8](util[_0x226c('0x1c')](_0x226c('0x1d'),_0x1abe31,_0x49f43d['name']));if(_0x49f43d[_0x226c('0x4')]){for(var _0x29c441=0x0;_0x29c441<_0x49f43d[_0x226c('0x4')][_0x226c('0x1e')];_0x29c441+=0x1){_0x34242a[_0x1d3ee8](util[_0x226c('0x1c')](_0x226c('0x1f'),_0x49f43d['Agents'][_0x29c441][_0x226c('0x5')]));}}}function joinOrLeave(_0x3df28f,_0x17ab5f,_0x3f2643){var _0x392717;if(_0x3df28f[_0x226c('0x20')]['query']['id']){db[_0x226c('0x18')][_0x226c('0x21')]({'attributes':['id',_0x226c('0x5'),'role',_0x226c('0x22')],'where':{'id':_0x3df28f['handshake'][_0x226c('0x23')]['id']},'include':[{'model':db[_0x226c('0x24')],'as':_0x226c('0x25'),'attributes':['id'],'raw':!![]},{'model':db[_0x226c('0x26')],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db['FaxInteraction'],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db['SmsInteraction'],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x226c('0x27')],'as':_0x226c('0x28'),'attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':_0x226c('0x29'),'attributes':['id'],'raw':!![]}]})[_0x226c('0xc')](function(_0x1bec1a){if(_0x1bec1a){_0x392717=_0x1bec1a;_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')](_0x226c('0x1f'),_0x1bec1a['name']));var _0x2c861c=[];switch(_0x1bec1a[_0x226c('0x6')]){case'admin':_0x3df28f[_0x17ab5f](_0x226c('0x2a'));_0x3df28f[_0x17ab5f](_0x226c('0x2b'));if(queryQueues[_0x226c('0x2c')]('include')){delete queryQueues[_0x226c('0x2d')];}_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x2f')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x30')][_0x226c('0x13')](queryQueues));_0x2c861c['push'](db[_0x226c('0x31')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db['SmsQueue'][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x32')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x33')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db['WhatsappQueue'][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x18')][_0x226c('0x13')](queryTelephones));_0x2c861c[_0x226c('0x2e')](db['Trunk']['findAll'](queryTrunks));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x1a')][_0x226c('0x13')](queryCampaigns));_0x2c861c['push'](db['User'][_0x226c('0x13')](queryAgents));break;case _0x226c('0x34'):_0x3df28f[_0x17ab5f](_0x226c('0x2a'));_0x3df28f[_0x17ab5f]('voice:outbound');_0x2c861c[_0x226c('0x2e')](getAssociatedResources('VoiceQueues',_0x1bec1a[_0x226c('0x22')],'VoiceQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x35'),_0x1bec1a[_0x226c('0x22')],'ChatQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources('FaxQueues',_0x1bec1a[_0x226c('0x22')],_0x226c('0x31')));_0x2c861c[_0x226c('0x2e')](getAssociatedResources('SmsQueues',_0x1bec1a[_0x226c('0x22')],'SmsQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x10'),_0x1bec1a[_0x226c('0x22')],_0x226c('0x32')));_0x2c861c[_0x226c('0x2e')](getAssociatedResources('OpenchannelQueues',_0x1bec1a[_0x226c('0x22')],'OpenchannelQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x12'),_0x1bec1a[_0x226c('0x22')],_0x226c('0x36')));_0x2c861c['push'](getAssociatedResources('Telephones',_0x1bec1a['userProfileId'],_0x226c('0x18')));_0x2c861c['push'](getAssociatedResources('Trunks',_0x1bec1a[_0x226c('0x22')],_0x226c('0x37')));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x15'),_0x1bec1a[_0x226c('0x22')],_0x226c('0x1a')));_0x2c861c[_0x226c('0x2e')](db['User'][_0x226c('0x13')](queryAgents));break;case _0x226c('0x7'):_0x3df28f[_0x17ab5f](_0x226c('0x2a'));_0x3df28f[_0x17ab5f]('voice:outbound');_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x38')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x39')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c['push'](_0x1bec1a[_0x226c('0x3a')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x3b')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x3c')]({'attributes':['id','name']}));_0x2c861c['push'](_0x1bec1a[_0x226c('0x3d')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a['getWhatsappQueues']({'attributes':['id','name']}));break;}return BPromise[_0x226c('0x3e')](_0x2c861c);}})[_0x226c('0xc')](function(_0x452ce8){if(_0x452ce8&&_0x452ce8[_0x226c('0x1e')]){for(var _0x343637=0x0;_0x343637<_0x452ce8[_0x226c('0x1e')];_0x343637+=0x1){for(var _0x25736e=0x0;_0x25736e<_0x452ce8[_0x343637][_0x226c('0x1e')];_0x25736e+=0x1){switch(_0x343637){case 0x0:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x3f'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x1:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x40'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x2:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x41'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x3:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,'sms',_0x452ce8[_0x343637][_0x25736e]);break;case 0x4:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,'mail',_0x452ce8[_0x343637][_0x25736e]);break;case 0x5:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x42'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x6:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x43'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x7:if(_0x392717[_0x226c('0x6')]!==_0x226c('0x7'))_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')](_0x226c('0x44'),_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;case 0x8:if(_0x392717[_0x226c('0x6')]!==_0x226c('0x7'))_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')](_0x226c('0x45'),_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;case 0x9:if(_0x392717[_0x226c('0x6')]!==_0x226c('0x7'))_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')]('campaign:%s:%s',_0x452ce8[_0x343637][_0x25736e]['type'],_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;case 0xa:_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')]('user:%s',_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;}}}}})[_0x226c('0xc')](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x5ac059=_['map'](_0x392717[_0x226c('0x25')],'id');return _0x392717['removeChatInteractions'](_0x5ac059)[_0x226c('0xc')](function(){for(var _0x3adfba=0x0;_0x3adfba<_0x5ac059['length'];_0x3adfba+=0x1){_0x3f2643[_0x226c('0x47')](_0x226c('0x48'),{'ChatInteractionId':Number(_0x5ac059[_0x3adfba]),'UserId':Number(_0x392717['id'])});}});}})['then'](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x416f8f=_[_0x226c('0x17')](_0x392717['MailInteractions'],'id');return _0x392717['removeMailInteractions'](_0x416f8f)[_0x226c('0xc')](function(){for(var _0x3feeff=0x0;_0x3feeff<_0x416f8f['length'];_0x3feeff+=0x1){_0x3f2643['emit'](_0x226c('0x49'),{'MailInteractionId':Number(_0x416f8f[_0x3feeff]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f==='leave'){var _0x1f8603=_[_0x226c('0x17')](_0x392717['FaxInteractions'],'id');return _0x392717[_0x226c('0x4a')](_0x1f8603)[_0x226c('0xc')](function(){for(var _0x4d93e3=0x0;_0x4d93e3<_0x1f8603[_0x226c('0x1e')];_0x4d93e3+=0x1){_0x3f2643[_0x226c('0x47')](_0x226c('0x4b'),{'FaxInteractionId':Number(_0x1f8603[_0x4d93e3]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x471b46=_[_0x226c('0x17')](_0x392717[_0x226c('0x4c')],'id');return _0x392717[_0x226c('0x4d')](_0x471b46)[_0x226c('0xc')](function(){for(var _0x462883=0x0;_0x462883<_0x471b46[_0x226c('0x1e')];_0x462883+=0x1){_0x3f2643[_0x226c('0x47')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x471b46[_0x462883]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x338b64=_['map'](_0x392717[_0x226c('0x28')],'id');return _0x392717[_0x226c('0x4e')](_0x338b64)['then'](function(){for(var _0x177128=0x0;_0x177128<_0x338b64[_0x226c('0x1e')];_0x177128+=0x1){_0x3f2643[_0x226c('0x47')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x338b64[_0x177128]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f==='leave'){var _0x52c46d=_['map'](_0x392717[_0x226c('0x29')],'id');return _0x392717[_0x226c('0x4f')](_0x52c46d)['then'](function(){for(var _0x27ec6=0x0;_0x27ec6<_0x52c46d[_0x226c('0x1e')];_0x27ec6+=0x1){_0x3f2643[_0x226c('0x47')](_0x226c('0x50'),{'WhatsappInteractionId':Number(_0x52c46d[_0x27ec6]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0x51')](function(_0x9c1231){_0x3df28f['log'](_0x9c1231);});}}function onDisconnect(_0x335860,_0x41a803){joinOrLeave(_0x335860,_0x226c('0x46'),_0x41a803);}function onConnect(_0x332d0c){joinOrLeave(_0x332d0c,'join');}exports[_0x226c('0x52')]=function(_0xe75fee){_0xe75fee['on'](_0x226c('0x53'),function(_0x553f60){_0x553f60[_0x226c('0x54')](0x0);_0x553f60[_0x226c('0x55')]=_0x553f60[_0x226c('0x56')][_0x226c('0x53')][_0x226c('0x57')]+':'+_0x553f60[_0x226c('0x56')]['connection'][_0x226c('0x58')];_0x553f60['connectedAt']=new Date();_0x553f60[_0x226c('0x59')]=function(_0x326174){console['log'](_0x226c('0x5a')+_0x553f60[_0x226c('0x5b')]['name']+'['+_0x553f60['address']+']',_0x326174);};_0x553f60['on'](_0x226c('0x5c'),function(){onDisconnect(_0x553f60,_0xe75fee);_0x553f60[_0x226c('0x59')](_0x226c('0x5d'));});onConnect(_0x553f60);_0x553f60[_0x226c('0x59')]('CONNECTED');});};
\ No newline at end of file
+var _0xfb11=['removeSmsInteractions','emit','removeOpenchannelInteractions','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','setMaxListeners','request','remoteAddress','connection','remotePort','SocketIO\x20','disconnect','CONNECTED','lodash','bluebird','../mysqldb','name','User','role','agent','telephone','type','ivr','UserProfileSection','findOne','then','autoAssociation','ChatQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','resourceId','where','Campaign','%s:queue:%s','Agents','handshake','query','find','userProfileId','ChatInteraction','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','format','admin','voice:outbound','hasOwnProperty','include','push','FaxQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','user','voice:inbound','VoiceQueues','VoiceQueue','ChatQueue','FaxQueues','SmsQueue','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','all','length','chat','fax','sms','openchannel','trunk:%s','campaign:%s:%s','user:%s','map','removeChatInteractions','user_has_chat_interactions:remove','leave','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xfb11,0x1ad));var _0x1fb1=function(_0x5317b5,_0x4dfd6e){_0x5317b5=_0x5317b5-0x0;var _0x3b7ce2=_0xfb11[_0x5317b5];return _0x3b7ce2;};'use strict';var _=require(_0x1fb1('0x0'));var util=require('util');var BPromise=require(_0x1fb1('0x1'));var db=require(_0x1fb1('0x2'))['db'];var config=require('./environment');var queryQueues={'attributes':['id',_0x1fb1('0x3')],'include':[{'as':'Agents','model':db[_0x1fb1('0x4')],'attributes':['id','name',_0x1fb1('0x5')],'raw':!![],'where':{'role':_0x1fb1('0x6')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id','name'],'where':{'role':_0x1fb1('0x7')}};var queryTrunks={'raw':!![],'attributes':['id',_0x1fb1('0x3')]};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0x1fb1('0x6')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x1fb1('0x3'),_0x1fb1('0x8')],'where':{'type':_0x1fb1('0x9')}};function getAssociatedResources(_0x161e1b,_0x2d6be9,_0x438d15){return db[_0x1fb1('0xa')][_0x1fb1('0xb')]({'where':{'name':_0x161e1b,'userProfileId':_0x2d6be9},'raw':!![]})[_0x1fb1('0xc')](function(_0x5bb066){if(_0x5bb066){if(_0x5bb066[_0x1fb1('0xd')]){switch(_0x161e1b){case'VoiceQueues':case _0x1fb1('0xe'):case'FaxQueues':case _0x1fb1('0xf'):case _0x1fb1('0x10'):case _0x1fb1('0x11'):case _0x1fb1('0x12'):return db[_0x438d15][_0x1fb1('0x13')](queryQueues);case _0x1fb1('0x14'):return db[_0x438d15]['findAll'](queryTelephones);case _0x1fb1('0x15'):return db[_0x438d15][_0x1fb1('0x13')](queryTrunks);case _0x1fb1('0x16'):return db[_0x438d15][_0x1fb1('0x13')](queryCampaigns);}}else{return db[_0x1fb1('0x17')][_0x1fb1('0x13')]({'attributes':[_0x1fb1('0x18')],'where':{'sectionId':_0x5bb066['id']},'raw':!![]})[_0x1fb1('0xc')](function(_0x358b58){if(_0x358b58){var _0x4cbe42={'where':{'id':_['map'](_0x358b58,_0x1fb1('0x18'))},'raw':!![]};switch(_0x438d15){case _0x1fb1('0x4'):_0x4cbe42[_0x1fb1('0x19')]['role']=_0x1fb1('0x7');break;case _0x1fb1('0x1a'):_0x4cbe42[_0x1fb1('0x19')][_0x1fb1('0x8')]=_0x1fb1('0x9');break;}return db[_0x438d15][_0x1fb1('0x13')](_0x4cbe42);}else{return[];}});}}else{return[];}})[_0x1fb1('0xc')](function(_0x373e3c){return _0x373e3c;});}function joinOrLeaveQueues(_0x4041ea,_0x5c4169,_0xa6d7b8,_0x55ba5b){_0x4041ea[_0x5c4169](util['format'](_0x1fb1('0x1b'),_0xa6d7b8,_0x55ba5b[_0x1fb1('0x3')]));if(_0x55ba5b[_0x1fb1('0x1c')]){for(var _0x54ad97=0x0;_0x54ad97<_0x55ba5b[_0x1fb1('0x1c')]['length'];_0x54ad97+=0x1){_0x4041ea[_0x5c4169](util['format']('user:%s',_0x55ba5b[_0x1fb1('0x1c')][_0x54ad97][_0x1fb1('0x3')]));}}}function joinOrLeave(_0x12c1d0,_0x10924f,_0x303a06){var _0x53b8af;if(_0x12c1d0[_0x1fb1('0x1d')][_0x1fb1('0x1e')]['id']){db[_0x1fb1('0x4')][_0x1fb1('0x1f')]({'attributes':['id',_0x1fb1('0x3'),_0x1fb1('0x5'),_0x1fb1('0x20')],'where':{'id':_0x12c1d0[_0x1fb1('0x1d')]['query']['id']},'include':[{'model':db[_0x1fb1('0x21')],'as':_0x1fb1('0x22'),'attributes':['id'],'raw':!![]},{'model':db[_0x1fb1('0x23')],'as':_0x1fb1('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0x1fb1('0x25')],'as':_0x1fb1('0x26'),'attributes':['id'],'raw':!![]},{'model':db[_0x1fb1('0x27')],'as':_0x1fb1('0x28'),'attributes':['id'],'raw':!![]},{'model':db[_0x1fb1('0x29')],'as':_0x1fb1('0x2a'),'attributes':['id'],'raw':!![]},{'model':db[_0x1fb1('0x2b')],'as':_0x1fb1('0x2c'),'attributes':['id'],'raw':!![]}]})[_0x1fb1('0xc')](function(_0xe8ec0a){if(_0xe8ec0a){_0x53b8af=_0xe8ec0a;_0x12c1d0[_0x10924f](util[_0x1fb1('0x2d')]('user:%s',_0xe8ec0a[_0x1fb1('0x3')]));var _0x316f7c=[];switch(_0xe8ec0a[_0x1fb1('0x5')]){case _0x1fb1('0x2e'):_0x12c1d0[_0x10924f]('voice:inbound');_0x12c1d0[_0x10924f](_0x1fb1('0x2f'));if(queryQueues[_0x1fb1('0x30')]('include')){delete queryQueues[_0x1fb1('0x31')];}_0x316f7c['push'](db['VoiceQueue'][_0x1fb1('0x13')](queryQueues));_0x316f7c[_0x1fb1('0x32')](db['ChatQueue'][_0x1fb1('0x13')](queryQueues));_0x316f7c[_0x1fb1('0x32')](db[_0x1fb1('0x33')][_0x1fb1('0x13')](queryQueues));_0x316f7c[_0x1fb1('0x32')](db['SmsQueue'][_0x1fb1('0x13')](queryQueues));_0x316f7c[_0x1fb1('0x32')](db[_0x1fb1('0x34')][_0x1fb1('0x13')](queryQueues));_0x316f7c[_0x1fb1('0x32')](db[_0x1fb1('0x35')][_0x1fb1('0x13')](queryQueues));_0x316f7c[_0x1fb1('0x32')](db[_0x1fb1('0x36')]['findAll'](queryQueues));_0x316f7c[_0x1fb1('0x32')](db['User'][_0x1fb1('0x13')](queryTelephones));_0x316f7c['push'](db[_0x1fb1('0x37')]['findAll'](queryTrunks));_0x316f7c['push'](db[_0x1fb1('0x1a')][_0x1fb1('0x13')](queryCampaigns));_0x316f7c[_0x1fb1('0x32')](db[_0x1fb1('0x4')]['findAll'](queryAgents));break;case _0x1fb1('0x38'):_0x12c1d0[_0x10924f](_0x1fb1('0x39'));_0x12c1d0[_0x10924f](_0x1fb1('0x2f'));_0x316f7c['push'](getAssociatedResources(_0x1fb1('0x3a'),_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x3b')));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources(_0x1fb1('0xe'),_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x3c')));_0x316f7c['push'](getAssociatedResources(_0x1fb1('0x3d'),_0xe8ec0a[_0x1fb1('0x20')],'FaxQueue'));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources('SmsQueues',_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x3e')));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources(_0x1fb1('0x10'),_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x34')));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources(_0x1fb1('0x11'),_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x35')));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources(_0x1fb1('0x12'),_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x36')));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources('Telephones',_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x4')));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources(_0x1fb1('0x15'),_0xe8ec0a['userProfileId'],'Trunk'));_0x316f7c[_0x1fb1('0x32')](getAssociatedResources(_0x1fb1('0x16'),_0xe8ec0a[_0x1fb1('0x20')],_0x1fb1('0x1a')));_0x316f7c[_0x1fb1('0x32')](db[_0x1fb1('0x4')][_0x1fb1('0x13')](queryAgents));break;case _0x1fb1('0x6'):_0x12c1d0[_0x10924f](_0x1fb1('0x39'));_0x12c1d0[_0x10924f](_0x1fb1('0x2f'));_0x316f7c['push'](_0xe8ec0a[_0x1fb1('0x3f')]({'attributes':['id','name']}));_0x316f7c['push'](_0xe8ec0a[_0x1fb1('0x40')]({'attributes':['id',_0x1fb1('0x3')]}));_0x316f7c[_0x1fb1('0x32')](_0xe8ec0a[_0x1fb1('0x41')]({'attributes':['id','name']}));_0x316f7c['push'](_0xe8ec0a[_0x1fb1('0x42')]({'attributes':['id',_0x1fb1('0x3')]}));_0x316f7c[_0x1fb1('0x32')](_0xe8ec0a[_0x1fb1('0x43')]({'attributes':['id',_0x1fb1('0x3')]}));_0x316f7c[_0x1fb1('0x32')](_0xe8ec0a[_0x1fb1('0x44')]({'attributes':['id',_0x1fb1('0x3')]}));_0x316f7c[_0x1fb1('0x32')](_0xe8ec0a['getWhatsappQueues']({'attributes':['id','name']}));break;}return BPromise[_0x1fb1('0x45')](_0x316f7c);}})['then'](function(_0x475e71){if(_0x475e71&&_0x475e71[_0x1fb1('0x46')]){for(var _0x103560=0x0;_0x103560<_0x475e71[_0x1fb1('0x46')];_0x103560+=0x1){for(var _0x3c37af=0x0;_0x3c37af<_0x475e71[_0x103560][_0x1fb1('0x46')];_0x3c37af+=0x1){switch(_0x103560){case 0x0:joinOrLeaveQueues(_0x12c1d0,_0x10924f,'voice',_0x475e71[_0x103560][_0x3c37af]);break;case 0x1:joinOrLeaveQueues(_0x12c1d0,_0x10924f,_0x1fb1('0x47'),_0x475e71[_0x103560][_0x3c37af]);break;case 0x2:joinOrLeaveQueues(_0x12c1d0,_0x10924f,_0x1fb1('0x48'),_0x475e71[_0x103560][_0x3c37af]);break;case 0x3:joinOrLeaveQueues(_0x12c1d0,_0x10924f,_0x1fb1('0x49'),_0x475e71[_0x103560][_0x3c37af]);break;case 0x4:joinOrLeaveQueues(_0x12c1d0,_0x10924f,'mail',_0x475e71[_0x103560][_0x3c37af]);break;case 0x5:joinOrLeaveQueues(_0x12c1d0,_0x10924f,_0x1fb1('0x4a'),_0x475e71[_0x103560][_0x3c37af]);break;case 0x6:joinOrLeaveQueues(_0x12c1d0,_0x10924f,'whatsapp',_0x475e71[_0x103560][_0x3c37af]);break;case 0x7:if(_0x53b8af[_0x1fb1('0x5')]!==_0x1fb1('0x6'))_0x12c1d0[_0x10924f](util[_0x1fb1('0x2d')]('telephone:%s',_0x475e71[_0x103560][_0x3c37af][_0x1fb1('0x3')]));break;case 0x8:if(_0x53b8af[_0x1fb1('0x5')]!=='agent')_0x12c1d0[_0x10924f](util[_0x1fb1('0x2d')](_0x1fb1('0x4b'),_0x475e71[_0x103560][_0x3c37af][_0x1fb1('0x3')]));break;case 0x9:if(_0x53b8af['role']!=='agent')_0x12c1d0[_0x10924f](util['format'](_0x1fb1('0x4c'),_0x475e71[_0x103560][_0x3c37af][_0x1fb1('0x8')],_0x475e71[_0x103560][_0x3c37af][_0x1fb1('0x3')]));break;case 0xa:_0x12c1d0[_0x10924f](util[_0x1fb1('0x2d')](_0x1fb1('0x4d'),_0x475e71[_0x103560][_0x3c37af][_0x1fb1('0x3')]));break;}}}}})['then'](function(){if(_0x10924f==='leave'){var _0x267c36=_[_0x1fb1('0x4e')](_0x53b8af[_0x1fb1('0x22')],'id');return _0x53b8af[_0x1fb1('0x4f')](_0x267c36)['then'](function(){for(var _0x4c53fe=0x0;_0x4c53fe<_0x267c36[_0x1fb1('0x46')];_0x4c53fe+=0x1){_0x303a06['emit'](_0x1fb1('0x50'),{'ChatInteractionId':Number(_0x267c36[_0x4c53fe]),'UserId':Number(_0x53b8af['id'])});}});}})['then'](function(){if(_0x10924f===_0x1fb1('0x51')){var _0x5ad2be=_[_0x1fb1('0x4e')](_0x53b8af[_0x1fb1('0x24')],'id');return _0x53b8af[_0x1fb1('0x52')](_0x5ad2be)[_0x1fb1('0xc')](function(){for(var _0x1b197c=0x0;_0x1b197c<_0x5ad2be['length'];_0x1b197c+=0x1){_0x303a06['emit'](_0x1fb1('0x53'),{'MailInteractionId':Number(_0x5ad2be[_0x1b197c]),'UserId':Number(_0x53b8af['id'])});}});}})[_0x1fb1('0xc')](function(){if(_0x10924f==='leave'){var _0x5c9695=_[_0x1fb1('0x4e')](_0x53b8af[_0x1fb1('0x26')],'id');return _0x53b8af[_0x1fb1('0x54')](_0x5c9695)[_0x1fb1('0xc')](function(){for(var _0x439670=0x0;_0x439670<_0x5c9695[_0x1fb1('0x46')];_0x439670+=0x1){_0x303a06['emit'](_0x1fb1('0x55'),{'FaxInteractionId':Number(_0x5c9695[_0x439670]),'UserId':Number(_0x53b8af['id'])});}});}})[_0x1fb1('0xc')](function(){if(_0x10924f===_0x1fb1('0x51')){var _0x285df6=_[_0x1fb1('0x4e')](_0x53b8af[_0x1fb1('0x28')],'id');return _0x53b8af[_0x1fb1('0x56')](_0x285df6)['then'](function(){for(var _0x1fd9e1=0x0;_0x1fd9e1<_0x285df6[_0x1fb1('0x46')];_0x1fd9e1+=0x1){_0x303a06[_0x1fb1('0x57')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x285df6[_0x1fd9e1]),'UserId':Number(_0x53b8af['id'])});}});}})[_0x1fb1('0xc')](function(){if(_0x10924f===_0x1fb1('0x51')){var _0xeeb8ce=_['map'](_0x53b8af[_0x1fb1('0x2a')],'id');return _0x53b8af[_0x1fb1('0x58')](_0xeeb8ce)[_0x1fb1('0xc')](function(){for(var _0x4232cf=0x0;_0x4232cf<_0xeeb8ce[_0x1fb1('0x46')];_0x4232cf+=0x1){_0x303a06[_0x1fb1('0x57')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0xeeb8ce[_0x4232cf]),'UserId':Number(_0x53b8af['id'])});}});}})['then'](function(){if(_0x10924f===_0x1fb1('0x51')){var _0x1d7478=_[_0x1fb1('0x4e')](_0x53b8af[_0x1fb1('0x2c')],'id');return _0x53b8af[_0x1fb1('0x59')](_0x1d7478)[_0x1fb1('0xc')](function(){for(var _0x428fc9=0x0;_0x428fc9<_0x1d7478['length'];_0x428fc9+=0x1){_0x303a06[_0x1fb1('0x57')](_0x1fb1('0x5a'),{'WhatsappInteractionId':Number(_0x1d7478[_0x428fc9]),'UserId':Number(_0x53b8af['id'])});}});}})[_0x1fb1('0x5b')](function(_0x2c0c36){_0x12c1d0[_0x1fb1('0x5c')](_0x2c0c36);});}}function onDisconnect(_0xd87c55,_0x5659b1){joinOrLeave(_0xd87c55,_0x1fb1('0x51'),_0x5659b1);}function onConnect(_0x417c9e){joinOrLeave(_0x417c9e,_0x1fb1('0x5d'));}exports[_0x1fb1('0x5e')]=function(_0x3d3bfa){_0x3d3bfa['on']('connection',function(_0x441fcb){_0x441fcb[_0x1fb1('0x5f')](0x0);_0x441fcb['address']=_0x441fcb[_0x1fb1('0x60')]['connection'][_0x1fb1('0x61')]+':'+_0x441fcb[_0x1fb1('0x60')][_0x1fb1('0x62')][_0x1fb1('0x63')];_0x441fcb['connectedAt']=new Date();_0x441fcb[_0x1fb1('0x5c')]=function(_0x3fda2b){console[_0x1fb1('0x5c')](_0x1fb1('0x64')+_0x441fcb['nsp'][_0x1fb1('0x3')]+'['+_0x441fcb['address']+']',_0x3fda2b);};_0x441fcb['on'](_0x1fb1('0x65'),function(){onDisconnect(_0x441fcb,_0x3d3bfa);_0x441fcb[_0x1fb1('0x5c')]('DISCONNECTED');});onConnect(_0x441fcb);_0x441fcb[_0x1fb1('0x5c')](_0x1fb1('0x66'));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cff=['closed','query','Sequelize','UserId','default','length','hasOwnProperty','model','hook','callback','condition','util','../../mysqldb','jayson/promise','triggers','client','http','Chat','ChatInteraction','newinteraction','afterUpdate','ChatMessage','afterCreate','newmessage','Sms','SmsInteraction','closedinteraction','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','event','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','User','find','name','fullname','email','internal','interface','format','SIP/%s','channel','agent','incomingmessage','outgoingmessage','opened','ContactId','contact','changed'];(function(_0x321b7c,_0x512102){var _0x1d377c=function(_0x1f5f43){while(--_0x1f5f43){_0x321b7c['push'](_0x321b7c['shift']());}};_0x1d377c(++_0x512102);}(_0x8cff,0x1a9));var _0xf8cf=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8cff[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xf8cf('0x0'));var db=require(_0xf8cf('0x1'))['db'];var jayson=require(_0xf8cf('0x2'));var logger=require('../logger')(_0xf8cf('0x3'));var _=require('lodash');var client=jayson[_0xf8cf('0x4')][_0xf8cf('0x5')]({'port':0x232a});var triggers=[{'channel':_0xf8cf('0x6'),'model':_0xf8cf('0x7'),'event':'afterCreate','condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x6'),'model':_0xf8cf('0x7'),'event':_0xf8cf('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0xf8cf('0xa'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0xc'),'callback':afterCreateMessage},{'channel':_0xf8cf('0xd'),'model':_0xf8cf('0xe'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0xd'),'model':'SmsInteraction','event':_0xf8cf('0x9'),'condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':'Sms','model':'SmsMessage','event':_0xf8cf('0xb'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf8cf('0x10'),'model':_0xf8cf('0x11'),'event':'afterCreate','condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x10'),'model':'WhatsappInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf8cf('0x10'),'model':_0xf8cf('0x12'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0xc'),'callback':afterCreateMessage},{'channel':_0xf8cf('0x13'),'model':_0xf8cf('0x14'),'event':_0xf8cf('0xb'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xf8cf('0x13'),'model':_0xf8cf('0x14'),'event':_0xf8cf('0x9'),'condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':_0xf8cf('0x13'),'model':_0xf8cf('0x15'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf8cf('0x16'),'model':_0xf8cf('0x17'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x16'),'model':_0xf8cf('0x17'),'event':'afterUpdate','condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':_0xf8cf('0x16'),'model':_0xf8cf('0x18'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0xc'),'callback':afterCreateMessage},{'channel':_0xf8cf('0x19'),'model':_0xf8cf('0x1a'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x19'),'model':_0xf8cf('0x1a'),'event':'afterUpdate','condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':_0xf8cf('0x19'),'model':_0xf8cf('0x1b'),'event':'afterCreate','condition':_0xf8cf('0xc'),'callback':afterCreateMessage}];function request(_0x1fae14){return client['request'](_0xf8cf('0x1c'),_0x1fae14)[_0xf8cf('0x1d')](function(_0x23f2b1){logger[_0xf8cf('0x1e')](_0xf8cf('0x1f'),'EventManager',_0x23f2b1);if(_0x23f2b1['error']){if(_0x23f2b1[_0xf8cf('0x20')][_0xf8cf('0x21')]===0x1f4){logger[_0xf8cf('0x20')](_0xf8cf('0x1f'),_0xf8cf('0x1c'),_0x23f2b1[_0xf8cf('0x20')]);}}})[_0xf8cf('0x22')](function(_0x460884){logger[_0xf8cf('0x20')](_0xf8cf('0x1f'),_0xf8cf('0x1c'),_0x460884);});}function afterCreateMessage(_0x3d891b,_0x392a27){return function(_0x128d66,_0x21a33b){_0x128d66=_0x128d66[_0xf8cf('0x23')]({'plain':!![]});_0x128d66['channel']=_0x3d891b;_0x128d66[_0xf8cf('0x24')]=_0x128d66['direction'];var _0x5eeb82=_0xf8cf('0x25')+_0x128d66['ContactId'];return db[_0xf8cf('0x26')]['query'](_0x5eeb82,{'type':db['Sequelize'][_0xf8cf('0x27')][_0xf8cf('0x28')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x5203fd){return _0x5203fd;})[_0xf8cf('0x1d')](function(_0x4eef78){if(_0x4eef78){_0x128d66['contact']=_0x4eef78[0x0];}if(_0x128d66['UserId']){return db[_0xf8cf('0x29')][_0xf8cf('0x2a')]({'where':{'id':_0x128d66['UserId']},'attributes':['id',_0xf8cf('0x2b'),_0xf8cf('0x2c'),_0xf8cf('0x2d'),_0xf8cf('0x2e')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x1ea635){_0x128d66[_0xf8cf('0x2f')]=util[_0xf8cf('0x30')](_0xf8cf('0x31'),_0x1ea635[_0xf8cf('0x2b')]);_0x128d66[_0xf8cf('0x32')]=_0x3d891b;_0x128d66[_0xf8cf('0x33')]=_0x1ea635;return request({'event':_0xf8cf('0x34'),'message':_0x128d66});})[_0xf8cf('0x22')](function(_0x29de3b){console['error'](_0x29de3b);});}else{return request({'event':_0xf8cf('0x35'),'message':_0x128d66});}});};}function afterCreate(_0x5f1ed9,_0x4c6b05){return function(_0x274856,_0x540388){_0x274856=_0x274856[_0xf8cf('0x23')]({'plain':!![]});_0x274856[_0xf8cf('0x32')]=_0x5f1ed9;_0x274856[_0xf8cf('0x24')]=_0xf8cf('0x36');var _0x5b2f62=_0xf8cf('0x25')+_0x274856[_0xf8cf('0x37')];return db[_0xf8cf('0x26')]['query'](_0x5b2f62,{'type':db['Sequelize'][_0xf8cf('0x27')][_0xf8cf('0x28')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x15dcc9){return _0x15dcc9;})['then'](function(_0x5b9ea7){if(_0x5b9ea7){_0x274856[_0xf8cf('0x38')]=_0x5b9ea7[0x0];}return request({'event':_0x4c6b05,'message':_0x274856});});};}function afterUpdate(_0xd735d9,_0x58c9c7){return function(_0x1fa0c2,_0x32f516){if(_0x1fa0c2[_0xf8cf('0x39')](_0xf8cf('0x3a'))&&_0x1fa0c2['closed']){_0x1fa0c2=_0x1fa0c2[_0xf8cf('0x23')]({'plain':!![]});_0x1fa0c2['channel']=_0xd735d9;_0x1fa0c2['event']=_0xf8cf('0x3a');var _0xc47daf='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1fa0c2[_0xf8cf('0x37')];return db['sequelize'][_0xf8cf('0x3b')](_0xc47daf,{'type':db[_0xf8cf('0x3c')][_0xf8cf('0x27')]['SELECT'],'raw':!![]})[_0xf8cf('0x1d')](function(_0x334edd){return _0x334edd;})['then'](function(_0x5343fa){if(_0x5343fa){_0x1fa0c2[_0xf8cf('0x38')]=_0x5343fa[0x0];}if(_0x1fa0c2[_0xf8cf('0x3d')]){return db[_0xf8cf('0x29')][_0xf8cf('0x2a')]({'where':{'id':_0x1fa0c2['UserId']},'attributes':['id',_0xf8cf('0x2b'),_0xf8cf('0x2c'),'email',_0xf8cf('0x2e')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x105d6d){_0x1fa0c2[_0xf8cf('0x2f')]=util[_0xf8cf('0x30')](_0xf8cf('0x31'),_0x105d6d['name']);_0x1fa0c2[_0xf8cf('0x33')]=_0x105d6d;return request({'event':_0x58c9c7,'message':_0x1fa0c2});})[_0xf8cf('0x22')](function(_0x2f436a){console['error'](_0x2f436a);});}else{return request({'event':_0x58c9c7,'message':_0x1fa0c2});}});}};}exports[_0xf8cf('0x3e')]=function(){for(var _0x40c508=0x0;_0x40c508<triggers[_0xf8cf('0x3f')];_0x40c508+=0x1){if(db[_0xf8cf('0x40')](triggers[_0x40c508][_0xf8cf('0x41')])){db[triggers[_0x40c508][_0xf8cf('0x41')]][_0xf8cf('0x42')](triggers[_0x40c508][_0xf8cf('0x24')],triggers[_0x40c508][_0xf8cf('0x43')](triggers[_0x40c508][_0xf8cf('0x32')]['toLowerCase'](),triggers[_0x40c508][_0xf8cf('0x44')]));}}};
\ No newline at end of file
+var _0x78e0=['query','Sequelize','QueryTypes','SELECT','then','contact','UserId','User','find','name','fullname','email','internal','interface','SIP/%s','outgoingmessage','get','opened','changed','closed','substatus','format','agent','default','length','hasOwnProperty','model','toLowerCase','util','../../mysqldb','jayson/promise','../logger','triggers','lodash','http','ChatInteraction','afterCreate','Chat','afterUpdate','closedinteraction','newinteraction','SmsInteraction','SmsMessage','newmessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','EventManager','info','error','code','Trigger,\x20%s','catch','channel','motionChannel','event','direction','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize'];(function(_0x431bae,_0xfec86c){var _0x3a4789=function(_0x4b4b6f){while(--_0x4b4b6f){_0x431bae['push'](_0x431bae['shift']());}};_0x3a4789(++_0xfec86c);}(_0x78e0,0xe5));var _0x078e=function(_0x2b3b3a,_0x3226e0){_0x2b3b3a=_0x2b3b3a-0x0;var _0x4b1b2c=_0x78e0[_0x2b3b3a];return _0x4b1b2c;};'use strict';var util=require(_0x078e('0x0'));var db=require(_0x078e('0x1'))['db'];var jayson=require(_0x078e('0x2'));var logger=require(_0x078e('0x3'))(_0x078e('0x4'));var _=require(_0x078e('0x5'));var client=jayson['client'][_0x078e('0x6')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x078e('0x7'),'event':_0x078e('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x078e('0x9'),'model':_0x078e('0x7'),'event':_0x078e('0xa'),'condition':_0x078e('0xb'),'callback':afterUpdate},{'channel':_0x078e('0x9'),'model':'ChatMessage','event':_0x078e('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Sms','model':'SmsInteraction','event':_0x078e('0x8'),'condition':_0x078e('0xc'),'callback':afterCreate},{'channel':'Sms','model':_0x078e('0xd'),'event':_0x078e('0xa'),'condition':_0x078e('0xb'),'callback':afterUpdate},{'channel':'Sms','model':_0x078e('0xe'),'event':_0x078e('0x8'),'condition':_0x078e('0xf'),'callback':afterCreateMessage},{'channel':_0x078e('0x10'),'model':_0x078e('0x11'),'event':'afterCreate','condition':_0x078e('0xc'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x078e('0x11'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x078e('0x10'),'model':_0x078e('0x12'),'event':_0x078e('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x078e('0x13'),'model':_0x078e('0x14'),'event':_0x078e('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x078e('0x13'),'model':_0x078e('0x14'),'event':'afterUpdate','condition':_0x078e('0xb'),'callback':afterUpdate},{'channel':_0x078e('0x13'),'model':_0x078e('0x15'),'event':_0x078e('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x078e('0x16'),'model':_0x078e('0x17'),'event':_0x078e('0x8'),'condition':_0x078e('0xc'),'callback':afterCreate},{'channel':_0x078e('0x16'),'model':_0x078e('0x17'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x078e('0x16'),'model':_0x078e('0x18'),'event':'afterCreate','condition':_0x078e('0xf'),'callback':afterCreateMessage},{'channel':'Openchannel','model':'OpenchannelInteraction','event':_0x078e('0x8'),'condition':_0x078e('0xc'),'callback':afterCreate},{'channel':_0x078e('0x19'),'model':'OpenchannelInteraction','event':'afterUpdate','condition':_0x078e('0xb'),'callback':afterUpdate},{'channel':'Openchannel','model':'OpenchannelMessage','event':_0x078e('0x8'),'condition':_0x078e('0xf'),'callback':afterCreateMessage}];function request(_0x494d5e){return client['request'](_0x078e('0x1a'),_0x494d5e)['then'](function(_0x4c85af){logger[_0x078e('0x1b')]('Trigger,\x20%s',_0x078e('0x1a'),_0x4c85af);if(_0x4c85af[_0x078e('0x1c')]){if(_0x4c85af['error'][_0x078e('0x1d')]===0x1f4){logger[_0x078e('0x1c')](_0x078e('0x1e'),_0x078e('0x1a'),_0x4c85af[_0x078e('0x1c')]);}}})[_0x078e('0x1f')](function(_0x41289c){logger['error']('Trigger,\x20%s',_0x078e('0x1a'),_0x41289c);});}function afterCreateMessage(_0x28073e,_0x19e092){return function(_0x59ea25,_0x9bd023){_0x59ea25=_0x59ea25['get']({'plain':!![]});_0x59ea25[_0x078e('0x20')]=_0x28073e;_0x59ea25[_0x078e('0x21')]=_0x28073e;_0x59ea25[_0x078e('0x22')]=_0x59ea25[_0x078e('0x23')];var _0x1c114a=_0x078e('0x24')+_0x59ea25[_0x078e('0x25')];return db[_0x078e('0x26')][_0x078e('0x27')](_0x1c114a,{'type':db[_0x078e('0x28')][_0x078e('0x29')][_0x078e('0x2a')],'raw':!![]})['then'](function(_0x1e44a3){return _0x1e44a3;})[_0x078e('0x2b')](function(_0x40d17f){if(_0x40d17f){_0x59ea25[_0x078e('0x2c')]=_0x40d17f[0x0];}if(_0x59ea25[_0x078e('0x2d')]){return db[_0x078e('0x2e')][_0x078e('0x2f')]({'where':{'id':_0x59ea25['UserId']},'attributes':['id',_0x078e('0x30'),_0x078e('0x31'),_0x078e('0x32'),_0x078e('0x33')],'raw':!![]})[_0x078e('0x2b')](function(_0xbeab56){_0x59ea25[_0x078e('0x34')]=util['format'](_0x078e('0x35'),_0xbeab56['name']);_0x59ea25[_0x078e('0x20')]=_0x28073e;_0x59ea25['agent']=_0xbeab56;return request({'event':'incomingmessage','message':_0x59ea25});})[_0x078e('0x1f')](function(_0x183308){console[_0x078e('0x1c')](_0x183308);});}else{return request({'event':_0x078e('0x36'),'message':_0x59ea25});}});};}function afterCreate(_0x2c7666,_0x5ea3b6){return function(_0x3cd3,_0xf19572){_0x3cd3=_0x3cd3[_0x078e('0x37')]({'plain':!![]});_0x3cd3[_0x078e('0x20')]=_0x2c7666;_0x3cd3[_0x078e('0x21')]=_0x2c7666;_0x3cd3[_0x078e('0x22')]=_0x078e('0x38');var _0x2d2e6d='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x3cd3[_0x078e('0x25')];return db[_0x078e('0x26')][_0x078e('0x27')](_0x2d2e6d,{'type':db[_0x078e('0x28')]['QueryTypes'][_0x078e('0x2a')],'raw':!![]})[_0x078e('0x2b')](function(_0x40376a){return _0x40376a;})[_0x078e('0x2b')](function(_0x5c75a6){if(_0x5c75a6){_0x3cd3['contact']=_0x5c75a6[0x0];}return request({'event':_0x5ea3b6,'message':_0x3cd3});});};}function afterUpdate(_0x50f02f){return function(_0x1cc399){var _0x174e0f=_0x1cc399[_0x078e('0x39')](_0x078e('0x3a'))&&_0x1cc399[_0x078e('0x3a')];var _0x11deae=_0x1cc399[_0x078e('0x39')](_0x078e('0x3b'));if(_0x174e0f||_0x11deae){var _0x3b1526=_0x174e0f?_0x078e('0xb'):_0x078e('0x3b');var _0x4c88bf=_0x1cc399[_0x078e('0x37')]({'plain':!![]});_0x4c88bf[_0x078e('0x20')]=_0x50f02f;_0x4c88bf[_0x078e('0x21')]=_0x50f02f;_0x4c88bf['event']=_0x174e0f?_0x078e('0x3a'):_0x078e('0x3b');var _0x496439=_0x078e('0x24')+_0x4c88bf['ContactId'];return db[_0x078e('0x26')]['query'](_0x496439,{'type':db[_0x078e('0x28')]['QueryTypes'][_0x078e('0x2a')],'raw':!![]})[_0x078e('0x2b')](function(_0x56d228){if(_0x56d228){_0x4c88bf['contact']=_0x56d228[0x0];}if(_0x4c88bf['UserId']){return db[_0x078e('0x2e')][_0x078e('0x2f')]({'where':{'id':_0x4c88bf[_0x078e('0x2d')]},'attributes':['id',_0x078e('0x30'),_0x078e('0x31'),_0x078e('0x32'),_0x078e('0x33')],'raw':!![]})[_0x078e('0x2b')](function(_0x19c520){_0x4c88bf[_0x078e('0x34')]=util[_0x078e('0x3c')](_0x078e('0x35'),_0x19c520[_0x078e('0x30')]);_0x4c88bf[_0x078e('0x3d')]=_0x19c520;return request({'event':_0x3b1526,'message':_0x4c88bf});})['catch'](function(_0x231161){console[_0x078e('0x1c')](_0x231161);});}else{return request({'event':_0x3b1526,'message':_0x4c88bf});}});}};}exports[_0x078e('0x3e')]=function(){for(var _0x2449cf=0x0;_0x2449cf<triggers[_0x078e('0x3f')];_0x2449cf+=0x1){if(db[_0x078e('0x40')](triggers[_0x2449cf][_0x078e('0x41')])){db[triggers[_0x2449cf]['model']]['hook'](triggers[_0x2449cf]['event'],triggers[_0x2449cf]['callback'](triggers[_0x2449cf]['channel'][_0x078e('0x42')](),triggers[_0x2449cf]['condition']));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a46=['User','count','then','catch','lodash','bluebird','../mysqldb','./license/util','voice','mail','whatsapp','openchannel','isValidChannel','clearBlockUser','isUndefined','blockedAt','updateAttributes','getLicense','agent'];(function(_0x1027fb,_0x242fe3){var _0x1329ba=function(_0x1209c1){while(--_0x1209c1){_0x1027fb['push'](_0x1027fb['shift']());}};_0x1329ba(++_0x242fe3);}(_0x0a46,0xc2));var _0x60a4=function(_0x10528c,_0x5bdce7){_0x10528c=_0x10528c-0x0;var _0x1327ee=_0x0a46[_0x10528c];return _0x1327ee;};'use strict';var _=require(_0x60a4('0x0'));var BPromise=require(_0x60a4('0x1'));var db=require(_0x60a4('0x2'))['db'];var util=require(_0x60a4('0x3'));var channels=[_0x60a4('0x4'),_0x60a4('0x5'),'chat','fax','sms',_0x60a4('0x6'),_0x60a4('0x7')];exports['getChannels']=function(){return channels;};exports[_0x60a4('0x8')]=function(_0x4835a7){_0x4835a7=_0x4835a7['toLowerCase']();return _['includes'](channels,_0x4835a7);};exports[_0x60a4('0x9')]=function(_0x308c8c,_0x49647d,_0x42ab9d,_0x5426cc){var _0x5b9e3b={'loginAttempts':_0x49647d,'blocked':_0x42ab9d};if(!_[_0x60a4('0xa')](_0x5426cc)){_0x5b9e3b[_0x60a4('0xb')]=_0x5426cc;}return _0x308c8c[_0x60a4('0xc')](_0x5b9e3b);};exports[_0x60a4('0xd')]=function(_0x426836){return new BPromise(function(_0x497e54,_0x1fa534){var _0x244ff5=0x0;if(_0x426836['role']!==_0x60a4('0xe')){_0x497e54(_0x426836);}db[_0x60a4('0xf')][_0x60a4('0x10')]({'where':{'role':_0x60a4('0xe'),'online':!![],'id':{'$ne':_0x426836['id']}}})[_0x60a4('0x11')](function(_0x20bd85){_0x244ff5=_0x20bd85;return util[_0x60a4('0xd')]();})[_0x60a4('0x11')](function(_0x18b501){if(_0x18b501&&_0x18b501['agents']&&_0x244ff5>=_0x18b501['agents']){throw Error('Maximum\x20login\x20has\x20been\x20reached');}_0x497e54(_0x426836);})[_0x60a4('0x12')](function(_0x16a923){_0x1fa534(_0x16a923);});});};
\ No newline at end of file
+var _0x6f16=['sms','whatsapp','openchannel','getChannels','isValidChannel','toLowerCase','includes','clearBlockUser','blockedAt','updateAttributes','getLicense','agent','User','count','then','agents','Maximum\x20login\x20has\x20been\x20reached','lodash','bluebird','../mysqldb','./license/util','voice','mail','chat','fax'];(function(_0x50a004,_0x193d84){var _0x5e9992=function(_0x3c8c37){while(--_0x3c8c37){_0x50a004['push'](_0x50a004['shift']());}};_0x5e9992(++_0x193d84);}(_0x6f16,0xa7));var _0x66f1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6f16[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x66f1('0x0'));var BPromise=require(_0x66f1('0x1'));var db=require(_0x66f1('0x2'))['db'];var util=require(_0x66f1('0x3'));var channels=[_0x66f1('0x4'),_0x66f1('0x5'),_0x66f1('0x6'),_0x66f1('0x7'),_0x66f1('0x8'),_0x66f1('0x9'),_0x66f1('0xa')];exports[_0x66f1('0xb')]=function(){return channels;};exports[_0x66f1('0xc')]=function(_0x15148e){_0x15148e=_0x15148e[_0x66f1('0xd')]();return _[_0x66f1('0xe')](channels,_0x15148e);};exports[_0x66f1('0xf')]=function(_0x33c84c,_0x279c1e,_0x6114d1,_0x342b30){var _0x5cf783={'loginAttempts':_0x279c1e,'blocked':_0x6114d1};if(!_['isUndefined'](_0x342b30)){_0x5cf783[_0x66f1('0x10')]=_0x342b30;}return _0x33c84c[_0x66f1('0x11')](_0x5cf783);};exports[_0x66f1('0x12')]=function(_0x44c433){return new BPromise(function(_0x44c8b2,_0x5c1a73){var _0x29d408=0x0;if(_0x44c433['role']!==_0x66f1('0x13')){_0x44c8b2(_0x44c433);}db[_0x66f1('0x14')][_0x66f1('0x15')]({'where':{'role':_0x66f1('0x13'),'online':!![],'id':{'$ne':_0x44c433['id']}}})['then'](function(_0x269f2c){_0x29d408=_0x269f2c;return util[_0x66f1('0x12')]();})[_0x66f1('0x16')](function(_0x45155c){if(_0x45155c&&_0x45155c[_0x66f1('0x17')]&&_0x29d408>=_0x45155c[_0x66f1('0x17')]){throw Error(_0x66f1('0x18'));}_0x44c8b2(_0x44c433);})['catch'](function(_0x626d9c){_0x5c1a73(_0x626d9c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x563b=['404','status','json','exports'];(function(_0x11a220,_0x4e470a){var _0x20d8fe=function(_0xbedfd){while(--_0xbedfd){_0x11a220['push'](_0x11a220['shift']());}};_0x20d8fe(++_0x4e470a);}(_0x563b,0x12f));var _0xb563=function(_0x4e1c78,_0x476732){_0x4e1c78=_0x4e1c78-0x0;var _0x3750be=_0x563b[_0x4e1c78];return _0x3750be;};'use strict';module[_0xb563('0x0')][0x194]=function pageNotFound(_0x5c2989,_0x3d3057){var _0x5c68b6=_0xb563('0x1');var _0x43dfa5=0x194;var _0xea8172={'status':_0x43dfa5};_0x3d3057[_0xb563('0x2')](_0xea8172[_0xb563('0x2')]);_0x3d3057['render'](_0x5c68b6,{},function(_0x57ef90,_0x39aebd){if(_0x57ef90){return _0x3d3057[_0xb563('0x2')](_0xea8172[_0xb563('0x2')])[_0xb563('0x3')](_0xea8172);}_0x3d3057['send'](_0x39aebd);});};
\ No newline at end of file
+var _0x7453=['status','send','exports','404'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x7453,0xc6));var _0x3745=function(_0x48c913,_0x1e9a4f){_0x48c913=_0x48c913-0x0;var _0x1d0547=_0x7453[_0x48c913];return _0x1d0547;};'use strict';module[_0x3745('0x0')][0x194]=function pageNotFound(_0x5ebd7b,_0x1d06db){var _0x4a99af=_0x3745('0x1');var _0x2976c6=0x194;var _0x136acd={'status':_0x2976c6};_0x1d06db[_0x3745('0x2')](_0x136acd['status']);_0x1d06db['render'](_0x4a99af,{},function(_0x1846ec,_0x15146c){if(_0x1846ec){return _0x1d06db[_0x3745('0x2')](_0x136acd['status'])['json'](_0x136acd);}_0x1d06db[_0x3745('0x3')](_0x15146c);});};
\ No newline at end of file
--- /dev/null
+'use strict';\r
+\r
+var BPromise = require('bluebird');\r
+var util = require('util');\r
+\r
+var logger = require('../config/logger')('migration');\r
+\r
+var Sequence = function() {};\r
+\r
+Sequence.prototype.enqueue = function(fn) {\r
+ this.tail = this.tail ? this.tail.finally(fn) : fn();\r
+};\r
+\r
+var Migration = function(queryInterface) {\r
+ this.queryInterface = queryInterface;\r
+ this.sequence = new Sequence();\r
+};\r
+\r
+Migration.prototype.changeColumn = function(table, column, type) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface\r
+ .changeColumn(table, column, type)\r
+ .then(function() {\r
+ logger.info('Changed column %s in table %s', column, table);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(JSON.stringify(err));\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.addColumn = function(table, column, type) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface\r
+ .addColumn(table, column, type)\r
+ .then(function() {\r
+ logger.info('Added column %s to %s', column, table);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(JSON.stringify(err));\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.dropTable = function(table) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface\r
+ .dropTable(table, {\r
+ force: true\r
+ })\r
+ .then(function() {\r
+ logger.info('table dropped %s', table);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(JSON.stringify(err));\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.addIndex = function(table, column, indexName) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface\r
+ .addIndex(table, column, {\r
+ indexName: indexName\r
+ })\r
+ .then(function() {\r
+ logger.info('addIndex %s %s %s', table, column.join(','), indexName);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(JSON.stringify(err));\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.removeIndex = function(table, indexName) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface\r
+ .removeIndex(table, indexName)\r
+ .then(function() {\r
+ logger.info('removeIndex %s %s', table, indexName);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(JSON.stringify(err));\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.query = function(sql) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface.sequelize\r
+ .query(sql)\r
+ .then(function() {\r
+ logger.info('query %s', sql);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(JSON.stringify(err));\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.removeColumn = function(table, column) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface\r
+ .removeColumn(table, column)\r
+ .then(function() {\r
+ logger.info('Removed column %s from %s', column, table);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(\r
+ util.inspect(err, {\r
+ showHidden: false,\r
+ depth: null\r
+ })\r
+ );\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {\r
+ var _this = this;\r
+ this.sequence.enqueue(function() {\r
+ return _this.queryInterface\r
+ .renameColumn(table, oldColumn, newColumn)\r
+ .then(function() {\r
+ logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);\r
+ })\r
+ .catch(function(err) {\r
+ logger.info(\r
+ util.inspect(err, {\r
+ showHidden: false,\r
+ depth: null\r
+ })\r
+ );\r
+ });\r
+ });\r
+};\r
+\r
+Migration.prototype.final = function(resolve) {\r
+ this.sequence.enqueue(function() {\r
+ return resolve();\r
+ });\r
+};\r
+\r
+module.exports = {\r
+ up: function(queryInterface, Sequelize) {\r
+ return new BPromise(function(resolve) {\r
+ var migration = new Migration(queryInterface);\r
+\r
+ // START FINAL\r
+ migration.final(resolve);\r
+ // END FINAL\r
+ });\r
+ },\r
+\r
+ down: function(queryInterface, Sequelize) {\r
+ // var migration = new Migration(queryInterface);\r
+ }\r
+};
\ No newline at end of file
--- /dev/null
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+ this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+ this.queryInterface = queryInterface;
+ this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .changeColumn(table, column, type)
+ .then(function() {
+ logger.info('Changed column %s in table %s', column, table);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .addColumn(table, column, type)
+ .then(function() {
+ logger.info('Added column %s to %s', column, table);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.dropTable = function(table) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .dropTable(table, {
+ force: true
+ })
+ .then(function() {
+ logger.info('table dropped %s', table);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .addIndex(table, column, {
+ indexName: indexName
+ })
+ .then(function() {
+ logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .removeIndex(table, indexName)
+ .then(function() {
+ logger.info('removeIndex %s %s', table, indexName);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.query = function(sql) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface.sequelize
+ .query(sql)
+ .then(function() {
+ logger.info('query %s', sql);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .removeColumn(table, column)
+ .then(function() {
+ logger.info('Removed column %s from %s', column, table);
+ })
+ .catch(function(err) {
+ logger.info(
+ util.inspect(err, {
+ showHidden: false,
+ depth: null
+ })
+ );
+ });
+ });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .renameColumn(table, oldColumn, newColumn)
+ .then(function() {
+ logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+ })
+ .catch(function(err) {
+ logger.info(
+ util.inspect(err, {
+ showHidden: false,
+ depth: null
+ })
+ );
+ });
+ });
+};
+
+Migration.prototype.final = function(resolve) {
+ this.sequence.enqueue(function() {
+ return resolve();
+ });
+};
+
+module.exports = {
+ up: function(queryInterface, Sequelize) {
+ return new BPromise(function(resolve) {
+ var migration = new Migration(queryInterface);
+
+ // START whatsapp
+ migration.addColumn('whatsapp_accounts', 'baseUrl', {
+ type: Sequelize.STRING
+ });
+
+ migration.changeColumn('whatsapp_accounts', 'type', {
+ type: Sequelize.ENUM('twilio', 'sinch')
+ });
+
+ // START FINAL
+ migration.final(resolve);
+ // END FINAL
+ });
+ },
+
+ down: function(queryInterface, Sequelize) {
+ // var migration = new Migration(queryInterface);
+ }
+};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9390=['../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskAccount/intDeskAccount.model','DeskConfiguration','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','../api/intZohoField/intZohoField.model','../api/intZendeskAccount/intZendeskAccount.model','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskConfiguration','FreshdeskField','../api/intFreshdeskField/intFreshdeskField.model','VtigerAccount','VtigerConfiguration','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','ServicenowField','../api/intServicenowField/intServicenowField.model','Dynamics365Account','../api/intDynamics365Account/intDynamics365Account.model','Dynamics365Field','../api/intDynamics365Field/intDynamics365Field.model','../api/intFreshsalesAccount/intFreshsalesAccount.model','FreshsalesConfiguration','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','FreshsalesField','../api/intFreshsalesField/intFreshsalesField.model','Network','../api/network/network.model','ChatQueueReport','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','JscriptySessionReport','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','Setting','../api/setting/setting.model','SquareOdbc','../api/squareOdbc/squareOdbc.model','SquareProject','../api/squareProject/squareProject.model','SquareRecording','../api/squareRecording/squareRecording.model','SquareMessage','../api/squareMessage/squareMessage.model','Team','../api/team/team.model','License','../api/license/license.model','Campaign','../api/campaign/campaign.model','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','../api/plugin/plugin.model','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','FaxTransferReport','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','../api/cmList/cmList.model','VoicePrefix','UserProfile','../api/userProfile/userProfile.model','UserProfileSection','../api/userProfileSection/userProfileSection.model','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','../api/whatsappAccount/whatsappAccount.model','WhatsappInteraction','../api/whatsappInteraction/whatsappInteraction.model','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','WhatsappQueueReport','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','../api/whatsappTransferReport/whatsappTransferReport.model','WhatsappQueue','../api/whatsappQueue/whatsappQueue.model','../api/cloudProvider/cloudProvider.model','TeamVoiceQueue','../api/teamVoiceQueue/teamVoiceQueue.model','hasOne','VoiceMail','cascade','UserId','hasMany','Recordings','VoiceQueuesRt','VoiceExtension','HopperFinals','HopperHistory','ReportAgentPreview','OpenchannelInteraction','OpenchannelInteractions','ChatInteractions','SmsInteractions','FaxInteraction','MailInteractions','WhatsappInteractions','SenderId','belongsTo','userProfileId','ChatGroup','Groups','chat_group_has_users','CmContact','Contacts','belongsToMany','Lists','cm_user_has_lists','user_has_teams','user_has_mail_interactions','FaxInteractions','user_has_fax_interactions','user_has_sms_interactions','user_has_openchannel_interactions','user_has_whatsapp_interactions','VoiceQueues','MailQueue','MailQueues','ChatQueue','ChatQueues','FaxQueues','SmsQueue','SmsQueues','OpenchannelQueues','UserOpenchannelQueue','CmList','user_has_voice_prefixes','ChatWebsites','user_has_chat_websites','FaxAccount','FaxAccounts','user_has_fax_accounts','OpenchannelAccounts','user_has_openchannel_accounts','SmsAccounts','user_has_sms_accounts','WhatsappAccount','user_has_whatsapp_accounts','SquareProjects','SpiedAgents','ChanSpyId','Applications','Sounds','moh_has_sounds','CmHopper','VoiceQueueId','HopperHistories','HopperBlacks','JscriptySessions','TrunkId','TrunkBackup','TrunkBackupId','Interval','IntervalId','Pause','mandatoryDispositionPause','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','Teams','BlackLists','mailboxuser','mailbox','VoiceAgentReport','uniqueid','Contact','ContactId','MailServerIn','MailAccountId','Imap','Smtp','Dispositions','Answers','MailMessage','Messages','Interactions','List','ListId','user_has_mail_accounts','team_has_mail_queues','MailInteractionId','Account','Owner','Tag','mail_interaction_has_tags','Tags','ThroughTags','Users','Attachments','Interaction','ChatWebsiteId','ChatOfflineMessageId','restrict','MailQueueReport','FaxAccountId','TagId','FaxInteractionId','fax_interaction_has_tags','team_has_fax_queues','FaxQueueReport','SmsAccountId','SmsMessage','SmsApplication','sms_interaction_has_tags','SmsInteractionId','team_has_sms_queues','OpenchannelAccountId','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','AttachmentId','ProactiveActions','ChatApplication','Agent','Queue','ChatInteractionId','chat_interaction_has_tags','ChatInternalMessage','ChatGroupId','Members','CompanyId','Hoppers','cm_user_has_contacts','cm_contact_has_tags','CampaignId','OwnerId','All','OneAll','AutomationAllId','Any','OneAny','AutomationAnyId','Actions','AutomationId','ParentId','MailApplications','ChatApplications','FaxApplications','SmsApplications','Schedule','AnalyticCustomReport','CustomReportId','Mohs','whatsapp_interaction_has_tags','Trigger','TriggerAllId','AnyConditions','AnyCondition','TriggerAnyId','TriggerId','Fields','DefaultReportId','MetricId','Configurations','AccountId','Subjects','SubjectId','DescriptionId','Subject','Description','Field','FieldId','VariableId','SugarcrmField','Descriptions','int_desk_configuration_has_tags','ZohoField','ZendeskConfiguration','ZendeskAccount','int_zendesk_configuration_has_tags','FreshdeskAccount','int_freshdesk_configuration_has_tags','ServicenowAccount','Dynamics365Configuration','FreshsalesAccount','FromId','ToId','SessionId','ProjectId','team_has_chat_queues','team_has_openchannel_queues','WhatsappQueues','SquareProjectId','campaigns_has_cm_lists','campaigns_has_cm_blacklists','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToAgent','ToMailQueueId','ToQueue','ToMailAccountId','ToUserId','ToChatQueueId','ToAccount','FromFaxAccountId','ToFaxQueueId','ToFaxAccountId','FromOpenchannelAccountId','ToOpenchannelQueueId','ToOpenchannelAccountId','FromSmsAccountId','ToSmsAccountId','CustomFields','Extensions','UserProfileSections','UserProfileResource','Resources','sectionId','WhatsappAccountId','WhatsappApplication','WhatsappInteractionId','FromWhatsappAccountId','ToQueueId','WhatsappQueueId','team_has_whatsapp_queues','exports','../config/environment','lodash','determine','sequelize','defaultsDeep','xcall','xC@LL1234','127.0.0.1','name','utf8','sequelizeHistory','motion2','utf8mb4','database','password','options','username','User','import','../api/user/user.model','VoiceChanSpy','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceContext/voiceContext.model','VoiceMusicOnHold','VoiceQueue','VoiceRecording','ScreenRecording','../api/screenRecording/screenRecording.model','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','../api/memberReport/memberReport.model','Trunk','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','UserVoiceQueueRt','UserVoiceQueue','UserChatQueue','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','../api/userFaxQueue/userFaxQueue.model','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','../api/userWhatsappQueue/userWhatsappQueue.model','../api/mailServerIn/mailServerIn.model','MailServerOut','../api/mailServerOut/mailServerOut.model','MailAccount','../api/mailQueue/mailQueue.model','MailSubstatus','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailInteraction/mailInteraction.model','MailApplication','../api/mailApplication/mailApplication.model','../api/mailQueueReport/mailQueueReport.model','Dashboard','DashboardItem','../api/dashboardItem/dashboardItem.model','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxMessage','../api/faxMessage/faxMessage.model','FaxQueue','../api/faxQueue/faxQueue.model','SmsAccount','../api/smsAccount/smsAccount.model','../api/smsApplication/smsApplication.model','SmsInteraction','../api/smsInteraction/smsInteraction.model','../api/smsMessage/smsMessage.model','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','OpenchannelApplication','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','ChatWebsite','../api/chatWebsite/chatWebsite.model','OpenchannelQueueReport','../api/openchannelQueueReport/openchannelQueueReport.model','../api/chatApplication/chatApplication.model','ChatInteraction','../api/chatInteraction/chatInteraction.model','ChatMessage','../api/chatMessage/chatMessage.model','ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','../api/chatQueue/chatQueue.model','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','../api/cmContact/cmContact.model','../api/cmHopper/cmHopper.model','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','CmHopperFinal','../api/cmHopperFinal/cmHopperFinal.model','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','../api/reportAgentPreview/reportAgentPreview.model','CmCustomField','../api/cmCustomField/cmCustomField.model','Action','Automation','CannedAnswer','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','../api/cdr/cdr.model','VoiceQueuesLog','Sound','../api/sound/sound.model','Template','Variable','../api/variable/variable.model','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticMetric','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount'];(function(_0x107f10,_0x5529f2){var _0x811cab=function(_0xc160ea){while(--_0xc160ea){_0x107f10['push'](_0x107f10['shift']());}};_0x811cab(++_0x5529f2);}(_0x9390,0x161));var _0x0939=function(_0x57bfbc,_0x499458){_0x57bfbc=_0x57bfbc-0x0;var _0x33d25a=_0x9390[_0x57bfbc];return _0x33d25a;};'use strict';var config=require(_0x0939('0x0'));var Sequelize=require('sequelize');var _=require(_0x0939('0x1'));var jstz=require('jstz');var timezone=jstz[_0x0939('0x2')]();config[_0x0939('0x3')]=_[_0x0939('0x4')](config[_0x0939('0x3')],{'database':'motion2','username':_0x0939('0x5'),'password':_0x0939('0x6'),'options':{'host':_0x0939('0x7'),'port':0xcea,'dialect':'mysql','dialectOptions':{'charset':'utf8mb4'},'logging':![],'timezone':timezone[_0x0939('0x8')](),'define':{'charset':_0x0939('0x9'),'collate':'utf8_general_ci'}}});config['sequelizeHistory']=_[_0x0939('0x4')](config[_0x0939('0xa')],{'database':_0x0939('0xb'),'username':'xcall','password':_0x0939('0x6'),'options':{'host':_0x0939('0x7'),'port':0xcea,'dialect':'mysql','dialectOptions':{'charset':_0x0939('0xc')},'logging':![],'timezone':timezone[_0x0939('0x8')](),'define':{'charset':_0x0939('0x9'),'collate':'utf8_general_ci'}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x0939('0x3')][_0x0939('0xd')],config['sequelize']['username'],config[_0x0939('0x3')][_0x0939('0xe')],config[_0x0939('0x3')][_0x0939('0xf')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x0939('0xa')][_0x0939('0xd')],config[_0x0939('0xa')][_0x0939('0x10')],config[_0x0939('0xa')][_0x0939('0xe')],config['sequelizeHistory'][_0x0939('0xf')])};db[_0x0939('0x11')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x13'));db[_0x0939('0x14')]=db[_0x0939('0x3')]['import'](_0x0939('0x15'));db[_0x0939('0x16')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x17'));db['VoiceExtension']=db[_0x0939('0x3')]['import']('../api/voiceExtension/voiceExtension.model');db[_0x0939('0x18')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceMusicOnHold/voiceMusicOnHold.model');db[_0x0939('0x19')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceQueue/voiceQueue.model');db[_0x0939('0x1a')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceRecording/voiceRecording.model');db[_0x0939('0x1b')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x1c'));db['VoiceMail']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x1d'));db[_0x0939('0x1e')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x1f'));db[_0x0939('0x20')]=db[_0x0939('0x3')]['import'](_0x0939('0x21'));db[_0x0939('0x22')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x23'));db['VoiceAgentReport']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceAgentReport/voiceAgentReport.model');db[_0x0939('0x24')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x25'));db[_0x0939('0x26')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x27'));db[_0x0939('0x28')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x29'));db[_0x0939('0x2a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x2b'));db[_0x0939('0x2c')]=db['sequelize'][_0x0939('0x12')]('../api/userVoiceQueueRt/userVoiceQueueRt.model');db[_0x0939('0x2d')]=db[_0x0939('0x3')]['import']('../api/userVoiceQueue/userVoiceQueue.model');db[_0x0939('0x2e')]=db[_0x0939('0x3')]['import'](_0x0939('0x2f'));db[_0x0939('0x30')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x31'));db[_0x0939('0x32')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x33'));db[_0x0939('0x34')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x35'));db['UserOpenchannelQueue']=db['sequelize'][_0x0939('0x12')](_0x0939('0x36'));db[_0x0939('0x37')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x38'));db['MailServerIn']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x39'));db[_0x0939('0x3a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x3b'));db[_0x0939('0x3c')]=db['sequelize'][_0x0939('0x12')]('../api/mailAccount/mailAccount.model');db['MailQueue']=db[_0x0939('0x3')]['import'](_0x0939('0x3d'));db[_0x0939('0x3e')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x3f'));db[_0x0939('0x40')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x41'));db['MailMessage']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/mailMessage/mailMessage.model');db[_0x0939('0x42')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x43'));db['MailQueueReport']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x44'));db[_0x0939('0x45')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/dashboard/dashboard.model');db[_0x0939('0x46')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x47'));db['FaxAccount']=db['sequelize']['import'](_0x0939('0x48'));db[_0x0939('0x49')]=db[_0x0939('0x3')]['import'](_0x0939('0x4a'));db['FaxInteraction']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/faxInteraction/faxInteraction.model');db[_0x0939('0x4b')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x4c'));db[_0x0939('0x4d')]=db[_0x0939('0x3')]['import'](_0x0939('0x4e'));db['FaxQueueReport']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/faxQueueReport/faxQueueReport.model');db[_0x0939('0x4f')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x50'));db['SmsApplication']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x51'));db[_0x0939('0x52')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x53'));db['SmsMessage']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x54'));db['SmsQueue']=db[_0x0939('0x3')]['import'](_0x0939('0x55'));db[_0x0939('0x56')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x57'));db[_0x0939('0x58')]=db[_0x0939('0x3')]['import']('../api/openchannelApplication/openchannelApplication.model');db['OpenchannelInteraction']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x59'));db[_0x0939('0x5a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x5b'));db[_0x0939('0x5c')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/openchannelQueue/openchannelQueue.model');db[_0x0939('0x5d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x5e'));db[_0x0939('0x5f')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x60'));db['ChatApplication']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x61'));db[_0x0939('0x62')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x63'));db[_0x0939('0x64')]=db['sequelize']['import'](_0x0939('0x65'));db[_0x0939('0x66')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x67'));db['ChatQueue']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x68'));db['ChatGroup']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/chatGroup/chatGroup.model');db[_0x0939('0x69')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x6a'));db[_0x0939('0x6b')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x6c'));db['CmContact']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x6d'));db['CmHopper']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x6e'));db[_0x0939('0x6f')]=db['sequelize']['import'](_0x0939('0x70'));db[_0x0939('0x71')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x72'));db[_0x0939('0x73')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x74'));db['ReportAgentPreview']=db[_0x0939('0x3')]['import'](_0x0939('0x75'));db[_0x0939('0x76')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x77'));db[_0x0939('0x78')]=db[_0x0939('0x3')]['import']('../api/action/action.model');db[_0x0939('0x79')]=db['sequelize'][_0x0939('0x12')]('../api/automation/automation.model');db[_0x0939('0x7a')]=db['sequelize'][_0x0939('0x12')]('../api/cannedAnswer/cannedAnswer.model');db[_0x0939('0x7b')]=db[_0x0939('0x3')]['import'](_0x0939('0x7c'));db[_0x0939('0x7d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x7e'));db['Interval']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/interval/interval.model');db['Pause']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/pause/pause.model');db['Cdr']=db[_0x0939('0x3')]['import'](_0x0939('0x7f'));db[_0x0939('0x80')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceQueuesLog/voiceQueuesLog.model');db['Schedule']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/schedule/schedule.model');db[_0x0939('0x81')]=db[_0x0939('0x3')]['import'](_0x0939('0x82'));db['Tag']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/tag/tag.model');db[_0x0939('0x83')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/template/template.model');db['Trigger']=db[_0x0939('0x3')]['import']('../api/trigger/trigger.model');db[_0x0939('0x84')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x85'));db[_0x0939('0x86')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x87'));db[_0x0939('0x88')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x89'));db['AnalyticCustomReport']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/analyticCustomReport/analyticCustomReport.model');db[_0x0939('0x8a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x8b'));db['AnalyticExtractedReport']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x8c'));db[_0x0939('0x8d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x8e'));db[_0x0939('0x8f')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x90'));db['AnalyticTreeReport']=db[_0x0939('0x3')]['import'](_0x0939('0x91'));db[_0x0939('0x92')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x93'));db[_0x0939('0x94')]=db[_0x0939('0x3')]['import'](_0x0939('0x95'));db[_0x0939('0x96')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x97'));db[_0x0939('0x98')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x99'));db[_0x0939('0x9a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x9b'));db['SugarcrmField']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x9c'));db[_0x0939('0x9d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x9e'));db[_0x0939('0x9f')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xa0'));db[_0x0939('0xa1')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xa2'));db[_0x0939('0xa3')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xa4'));db[_0x0939('0xa5')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xa6'));db['ZohoField']=db['sequelize'][_0x0939('0x12')](_0x0939('0xa7'));db['ZendeskAccount']=db['sequelize']['import'](_0x0939('0xa8'));db['ZendeskConfiguration']=db[_0x0939('0x3')]['import'](_0x0939('0xa9'));db[_0x0939('0xaa')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xab'));db['FreshdeskAccount']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/intFreshdeskAccount/intFreshdeskAccount.model');db[_0x0939('0xac')]=db['sequelize'][_0x0939('0x12')]('../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model');db[_0x0939('0xad')]=db[_0x0939('0x3')]['import'](_0x0939('0xae'));db[_0x0939('0xaf')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/intVtigerAccount/intVtigerAccount.model');db[_0x0939('0xb0')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb1'));db[_0x0939('0xb2')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb3'));db['ServicenowAccount']=db[_0x0939('0x3')]['import'](_0x0939('0xb4'));db[_0x0939('0xb5')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb6'));db[_0x0939('0xb7')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb8'));db[_0x0939('0xb9')]=db[_0x0939('0x3')]['import'](_0x0939('0xba'));db['Dynamics365Configuration']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/intDynamics365Configuration/intDynamics365Configuration.model');db[_0x0939('0xbb')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xbc'));db['FreshsalesAccount']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xbd'));db[_0x0939('0xbe')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xbf'));db[_0x0939('0xc0')]=db['sequelize']['import'](_0x0939('0xc1'));db[_0x0939('0x86')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x87'));db[_0x0939('0xc2')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xc3'));db[_0x0939('0xc4')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/chatQueueReport/chatQueueReport.model');db['ChatInternalMessage']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xc5'));db[_0x0939('0xc6')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xc7'));db[_0x0939('0xc8')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/jscriptyQuestionReport/jscriptyQuestionReport.model');db[_0x0939('0xc9')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xca'));db[_0x0939('0xcb')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xcc'));db[_0x0939('0xcd')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xce'));db[_0x0939('0xcf')]=db[_0x0939('0x3')]['import'](_0x0939('0xd0'));db[_0x0939('0xd1')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/jscriptyProject/jscriptyProject.model');db[_0x0939('0xd2')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xd3'));db[_0x0939('0xd4')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xd5'));db[_0x0939('0xd6')]=db[_0x0939('0x3')]['import'](_0x0939('0xd7'));db[_0x0939('0xd8')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xd9'));db[_0x0939('0xda')]=db[_0x0939('0x3')]['import'](_0x0939('0xdb'));db[_0x0939('0xdc')]=db['sequelize']['import'](_0x0939('0xdd'));db[_0x0939('0xde')]=db[_0x0939('0x3')]['import'](_0x0939('0xdf'));db[_0x0939('0xe0')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xe1'));db[_0x0939('0xe2')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xe3'));db[_0x0939('0xe4')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xe5'));db['Plugin']=db[_0x0939('0x3')]['import'](_0x0939('0xe6'));db[_0x0939('0xe7')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xe8'));db[_0x0939('0xe9')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/chatTransferReport/chatTransferReport.model');db[_0x0939('0xea')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/faxTransferReport/faxTransferReport.model');db[_0x0939('0xeb')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xec'));db[_0x0939('0xed')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/smsTransferReport/smsTransferReport.model');db['CmList']=db[_0x0939('0x3')]['import'](_0x0939('0xee'));db[_0x0939('0xef')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voicePrefix/voicePrefix.model');db[_0x0939('0xf0')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xf1'));db[_0x0939('0xf2')]=db[_0x0939('0x3')]['import'](_0x0939('0xf3'));db['UserProfileResource']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xf4'));db[_0x0939('0xf5')]=db[_0x0939('0x3')]['import'](_0x0939('0xf6'));db['WhatsappAccount']=db[_0x0939('0x3')]['import'](_0x0939('0xf7'));db['WhatsappApplication']=db['sequelize'][_0x0939('0x12')]('../api/whatsappApplication/whatsappApplication.model');db[_0x0939('0xf8')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xf9'));db[_0x0939('0xfa')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xfb'));db[_0x0939('0xfc')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xfd'));db[_0x0939('0xfe')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xff'));db[_0x0939('0x100')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x101'));db['CloudProvider']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x102'));db[_0x0939('0x103')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x104'));db[_0x0939('0x11')][_0x0939('0x105')](db[_0x0939('0x106')],{'as':'VoiceMail','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x108')});db['User'][_0x0939('0x109')](db['VoiceRecording'],{'as':_0x0939('0x10a'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db['UserVoiceQueueRt'],{'as':_0x0939('0x10b'),'foreignKey':'UserId'});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':'Extensions','onDelete':'cascade','hooks':!![]});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x71')],{'as':_0x0939('0x10d'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x73')],{'as':_0x0939('0x10e'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')]['hasMany'](db[_0x0939('0x10f')],{'as':'ReportAgentPreview','foreignKey':_0x0939('0x108')});db[_0x0939('0x11')]['hasMany'](db[_0x0939('0x110')],{'as':_0x0939('0x111'),'foreignKey':'UserId'});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x62')],{'as':_0x0939('0x112'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x52')],{'as':_0x0939('0x113'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')]['hasMany'](db[_0x0939('0x114')],{'as':'FaxInteractions','foreignKey':'UserId'});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x40')],{'as':_0x0939('0x115'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0xf8')],{'as':_0x0939('0x116'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0xf5')],{'as':'UserNotifications','foreignKey':_0x0939('0x117')});db[_0x0939('0x11')][_0x0939('0x118')](db[_0x0939('0xf0')],{'as':'UserProfile','foreignKey':_0x0939('0x119')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x11a')],{'as':_0x0939('0x11b'),'through':_0x0939('0x11c')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x11d')],{'as':_0x0939('0x11e'),'through':'cm_user_has_contacts'});db[_0x0939('0x11')][_0x0939('0x11f')](db['CmList'],{'as':_0x0939('0x120'),'through':_0x0939('0x121')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0xdc')],{'through':_0x0939('0x122')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x40')],{'as':_0x0939('0x115'),'through':_0x0939('0x123')});db[_0x0939('0x11')][_0x0939('0x11f')](db['ChatInteraction'],{'as':'ChatInteractions','through':'user_has_chat_interactions'});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x114')],{'as':_0x0939('0x124'),'through':_0x0939('0x125')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x52')],{'as':_0x0939('0x113'),'through':_0x0939('0x126')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x110')],{'as':_0x0939('0x111'),'through':_0x0939('0x127')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0xf8')],{'as':'WhatsappInteractions','through':_0x0939('0x128')});db['User'][_0x0939('0x11f')](db['VoiceQueue'],{'as':_0x0939('0x129'),'through':_0x0939('0x2d'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x12a')],{'as':_0x0939('0x12b'),'through':_0x0939('0x30'),'required':![]});db['User'][_0x0939('0x11f')](db[_0x0939('0x12c')],{'as':_0x0939('0x12d'),'through':'UserChatQueue','required':![],'hooks':!![]});db[_0x0939('0x11')][_0x0939('0x11f')](db['FaxQueue'],{'as':_0x0939('0x12e'),'through':_0x0939('0x32'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x12f')],{'as':_0x0939('0x130'),'through':_0x0939('0x34'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x5c')],{'as':_0x0939('0x131'),'through':_0x0939('0x132'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db['WhatsappQueue'],{'as':'WhatsappQueues','through':_0x0939('0x37'),'required':![]});db['User'][_0x0939('0x11f')](db[_0x0939('0x133')],{'through':_0x0939('0x121')});db[_0x0939('0x11')][_0x0939('0x11f')](db['VoicePrefix'],{'as':'VoicePrefixes','through':_0x0939('0x134'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x5d')],{'as':_0x0939('0x135'),'through':_0x0939('0x136')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x137')],{'as':_0x0939('0x138'),'through':_0x0939('0x139')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x3c')],{'as':'MailAccounts','through':'user_has_mail_accounts'});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x56')],{'as':_0x0939('0x13a'),'through':_0x0939('0x13b')});db[_0x0939('0x11')][_0x0939('0x11f')](db['SmsAccount'],{'as':_0x0939('0x13c'),'through':_0x0939('0x13d')});db['User']['belongsToMany'](db[_0x0939('0x13e')],{'as':'WhatsappAccounts','through':_0x0939('0x13f')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0xd6')],{'as':_0x0939('0x140'),'through':'user_has_square_projects'});db[_0x0939('0x14')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':_0x0939('0x141'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x142')});db['VoiceContext'][_0x0939('0x109')](db[_0x0939('0x10c')],{'onDelete':_0x0939('0x107')});db[_0x0939('0x10c')][_0x0939('0x109')](db['VoiceExtension'],{'as':_0x0939('0x143'),'onDelete':_0x0939('0x107')});db[_0x0939('0x18')][_0x0939('0x11f')](db[_0x0939('0x81')],{'as':_0x0939('0x144'),'through':_0x0939('0x145')});db[_0x0939('0x19')]['hasMany'](db['UserVoiceQueueRt'],{'as':'Members','foreignKey':'VoiceQueueId'});db[_0x0939('0x19')][_0x0939('0x109')](db[_0x0939('0x146')],{'as':'Hoppers','foreignKey':_0x0939('0x147')});db[_0x0939('0x19')]['hasMany'](db[_0x0939('0x71')],{'as':'HopperFinals','foreignKey':'VoiceQueueId'});db[_0x0939('0x19')][_0x0939('0x109')](db['CmHopperHistory'],{'as':_0x0939('0x148'),'foreignKey':'VoiceQueueId'});db[_0x0939('0x19')][_0x0939('0x109')](db[_0x0939('0x10f')],{'as':_0x0939('0x10f'),'foreignKey':_0x0939('0x147')});db['VoiceQueue']['hasMany'](db[_0x0939('0x6f')],{'as':_0x0939('0x149'),'foreignKey':_0x0939('0x147')});db[_0x0939('0x19')][_0x0939('0x109')](db[_0x0939('0xc9')],{'as':_0x0939('0x14a'),'foreignKey':_0x0939('0x147')});db['VoiceQueue'][_0x0939('0x118')](db[_0x0939('0x28')],{'as':_0x0939('0x28'),'foreignKey':_0x0939('0x14b')});db[_0x0939('0x19')][_0x0939('0x118')](db[_0x0939('0x28')],{'as':_0x0939('0x14c'),'foreignKey':_0x0939('0x14d')});db['VoiceQueue'][_0x0939('0x118')](db[_0x0939('0x14e')],{'as':_0x0939('0x14e'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x19')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x19')]['belongsToMany'](db[_0x0939('0x133')],{'as':'Lists','through':_0x0939('0x153')});db[_0x0939('0x19')]['belongsToMany'](db['User'],{'as':_0x0939('0x154'),'through':_0x0939('0x2d')});db[_0x0939('0x19')][_0x0939('0x11f')](db['Team'],{'as':_0x0939('0x155'),'through':_0x0939('0x103')});db[_0x0939('0x19')][_0x0939('0x11f')](db[_0x0939('0x133')],{'as':_0x0939('0x156'),'through':'voice_queues_has_cm_blacklists'});db[_0x0939('0x1a')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x11'),'foreignKey':_0x0939('0x108')});db['ScreenRecording'][_0x0939('0x118')](db['User'],{'as':'User','foreignKey':'UserId'});db[_0x0939('0x106')][_0x0939('0x109')](db[_0x0939('0x1e')],{'as':'Messages','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x157'),'sourceKey':_0x0939('0x158')});db[_0x0939('0x1e')][_0x0939('0x118')](db[_0x0939('0x106')],{'foreignKey':_0x0939('0x157'),'targetKey':_0x0939('0x158')});db[_0x0939('0x20')][_0x0939('0x109')](db['VoiceQueueReport'],{'as':'QueueCalls','foreignKey':'uniqueid','constraints':![]});db[_0x0939('0x20')][_0x0939('0x109')](db[_0x0939('0x159')],{'as':'AgentReports','foreignKey':_0x0939('0x15a'),'constraints':![]});db['VoiceCallReport'][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x11'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x20')][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x15d')]['belongsTo'](db[_0x0939('0x3c')],{'as':'MailAccount','foreignKey':'MailAccountId'});db[_0x0939('0x3a')][_0x0939('0x118')](db['MailAccount'],{'as':_0x0939('0x3c'),'foreignKey':_0x0939('0x15e')});db[_0x0939('0x3c')][_0x0939('0x105')](db['MailServerIn'],{'as':_0x0939('0x15f'),'onDelete':_0x0939('0x107')});db[_0x0939('0x3c')][_0x0939('0x105')](db[_0x0939('0x3a')],{'as':_0x0939('0x160'),'onDelete':_0x0939('0x107')});db['MailAccount'][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':'MailAccountId','onDelete':_0x0939('0x107')});db['MailAccount'][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':'MailAccountId'});db['MailAccount']['hasMany'](db[_0x0939('0x163')],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x15e')});db[_0x0939('0x3c')][_0x0939('0x109')](db['MailInteraction'],{'as':_0x0939('0x165')});db['MailAccount'][_0x0939('0x109')](db[_0x0939('0x42')],{'as':_0x0939('0x143')});db[_0x0939('0x3c')]['belongsTo'](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db['MailAccount'][_0x0939('0x118')](db[_0x0939('0x83')],{'as':_0x0939('0x83'),'foreignKey':'TemplateId'});db[_0x0939('0x3c')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x3c')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x168')});db[_0x0939('0x12a')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x30')});db[_0x0939('0x12a')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':_0x0939('0x169'),'as':_0x0939('0x155')});db[_0x0939('0x40')][_0x0939('0x109')](db[_0x0939('0x163')],{'as':'Messages','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x16a')});db[_0x0939('0x40')]['belongsTo'](db[_0x0939('0x3c')],{'as':_0x0939('0x16b'),'foreignKey':'MailAccountId'});db['MailInteraction'][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x40')][_0x0939('0x118')](db['User'],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x40')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x16e'),'as':_0x0939('0x16f')});db[_0x0939('0x40')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':'mail_interaction_has_tags','as':_0x0939('0x170')});db[_0x0939('0x40')]['belongsToMany'](db['User'],{'as':_0x0939('0x171'),'through':_0x0939('0x123'),'foreignKey':_0x0939('0x16a')});db[_0x0939('0x163')][_0x0939('0x109')](db[_0x0939('0xe4')],{'as':_0x0939('0x172'),'onDelete':'cascade'});db[_0x0939('0x163')][_0x0939('0x118')](db['User'],{'as':'User'});db[_0x0939('0x163')][_0x0939('0x118')](db[_0x0939('0x11d')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x15b')});db['MailMessage']['belongsTo'](db[_0x0939('0x40')],{'as':_0x0939('0x173'),'foreignKey':'MailInteractionId'});db['MailMessage']['belongsTo'](db['MailAccount'],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x15e')});db[_0x0939('0x163')]['belongsTo'](db[_0x0939('0x5d')],{'as':_0x0939('0x5d'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x163')][_0x0939('0x118')](db[_0x0939('0x66')],{'as':_0x0939('0x66'),'foreignKey':_0x0939('0x175')});db[_0x0939('0x42')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db['MailApplication']['belongsTo'](db[_0x0939('0x12a')],{'onDelete':'restrict'});db[_0x0939('0x42')][_0x0939('0x118')](db[_0x0939('0x3c')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x42')][_0x0939('0x118')](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db['MailApplication'][_0x0939('0x118')](db[_0x0939('0x16d')],{'onDelete':_0x0939('0x176'),'foreignKey':'TagId'});db['MailQueueReport'][_0x0939('0x118')](db[_0x0939('0x3c')],{});db[_0x0939('0x177')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':'List','foreignKey':_0x0939('0x167')});db[_0x0939('0x177')]['belongsTo'](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x177')][_0x0939('0x118')](db['MailInteraction'],{});db[_0x0939('0x177')][_0x0939('0x118')](db[_0x0939('0x163')],{});db['MailQueueReport'][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0x177')]['belongsTo'](db[_0x0939('0x12a')],{});db['Dashboard']['hasMany'](db[_0x0939('0x46')],{'as':'Items','onDelete':_0x0939('0x107')});db[_0x0939('0x137')][_0x0939('0x109')](db['Disposition'],{'as':_0x0939('0x161'),'foreignKey':_0x0939('0x178'),'onDelete':_0x0939('0x107')});db[_0x0939('0x137')][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x178')});db[_0x0939('0x137')][_0x0939('0x109')](db[_0x0939('0x114')],{'as':_0x0939('0x165')});db[_0x0939('0x137')]['hasMany'](db[_0x0939('0x49')],{'as':_0x0939('0x143')});db[_0x0939('0x137')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':'Exntensions','onDelete':_0x0939('0x107')});db['FaxAccount'][_0x0939('0x109')](db[_0x0939('0x4b')],{'as':'Messages'});db[_0x0939('0x137')][_0x0939('0x118')](db[_0x0939('0x28')],{'as':_0x0939('0x28')});db['FaxAccount'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x137')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x0939('0x137')][_0x0939('0x11f')](db['User'],{'as':'Agents','through':_0x0939('0x139')});db[_0x0939('0x49')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db['FaxApplication'][_0x0939('0x118')](db[_0x0939('0x4d')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x49')]['belongsTo'](db[_0x0939('0x137')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x49')][_0x0939('0x118')](db['Tag'],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x179')});db[_0x0939('0x114')][_0x0939('0x109')](db[_0x0939('0x4b')],{'as':_0x0939('0x164'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x17a')});db[_0x0939('0x114')][_0x0939('0x118')](db['FaxAccount'],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x178')});db[_0x0939('0x114')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':'ContactId'});db[_0x0939('0x114')][_0x0939('0x118')](db['User'],{'as':'Owner','foreignKey':_0x0939('0x108')});db['FaxInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x17b'),'as':_0x0939('0x16f')});db[_0x0939('0x114')]['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x17b'),'as':_0x0939('0x170')});db[_0x0939('0x114')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':_0x0939('0x125'),'foreignKey':_0x0939('0x17a')});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x11')});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0x114')],{'as':_0x0939('0x173'),'foreignKey':_0x0939('0x17a')});db[_0x0939('0x4b')]['belongsTo'](db['CmContact'],{'onDelete':_0x0939('0x107'),'as':'Contact'});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0xe4')],{'as':'Attachment','foreignKey':'AttachmentId'});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0x137')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x178')});db[_0x0939('0x4d')][_0x0939('0x11f')](db['User'],{'as':_0x0939('0x154'),'through':'UserFaxQueue'});db[_0x0939('0x4d')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':_0x0939('0x17c'),'as':'Teams'});db['FaxQueueReport']['belongsTo'](db[_0x0939('0x137')],{});db[_0x0939('0x17d')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x17d')]['belongsTo'](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x17d')]['belongsTo'](db[_0x0939('0x114')],{});db[_0x0939('0x17d')][_0x0939('0x118')](db['FaxMessage'],{});db[_0x0939('0x17d')][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0x17d')][_0x0939('0x118')](db['FaxQueue'],{});db[_0x0939('0x4f')][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':'SmsAccountId','onDelete':_0x0939('0x107')});db[_0x0939('0x4f')]['hasMany'](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x17e')});db[_0x0939('0x4f')]['hasMany'](db[_0x0939('0x17f')],{'as':_0x0939('0x164'),'foreignKey':'SmsAccountId'});db[_0x0939('0x4f')][_0x0939('0x109')](db[_0x0939('0x52')],{'as':'Interactions'});db[_0x0939('0x4f')][_0x0939('0x109')](db[_0x0939('0x180')],{'as':_0x0939('0x143')});db[_0x0939('0x4f')]['belongsTo'](db['CmList'],{'as':'List','foreignKey':_0x0939('0x167')});db[_0x0939('0x4f')][_0x0939('0x118')](db['Pause'],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db['SmsAccount'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x13d')});db['SmsApplication'][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x180')][_0x0939('0x118')](db[_0x0939('0x12f')],{'onDelete':_0x0939('0x176')});db['SmsApplication']['belongsTo'](db[_0x0939('0x4f')],{'onDelete':'restrict'});db['SmsApplication']['belongsTo'](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db['SmsApplication'][_0x0939('0x118')](db[_0x0939('0x16d')],{'onDelete':_0x0939('0x176'),'foreignKey':'TagId'});db['SmsInteraction'][_0x0939('0x109')](db[_0x0939('0x17f')],{'as':_0x0939('0x164'),'onDelete':'cascade','foreignKey':'SmsInteractionId'});db['SmsInteraction'][_0x0939('0x118')](db[_0x0939('0x4f')],{'as':_0x0939('0x16b'),'foreignKey':'SmsAccountId'});db[_0x0939('0x52')]['belongsTo'](db['CmContact'],{'as':'Contact','foreignKey':_0x0939('0x15c')});db[_0x0939('0x52')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x108')});db['SmsInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x181'),'as':_0x0939('0x16f')});db[_0x0939('0x52')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x181'),'as':'ThroughTags'});db[_0x0939('0x52')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':_0x0939('0x126'),'foreignKey':_0x0939('0x182')});db[_0x0939('0x17f')]['belongsTo'](db[_0x0939('0x11')],{'as':_0x0939('0x11')});db[_0x0939('0x17f')][_0x0939('0x118')](db['CmContact'],{'onDelete':'cascade','as':_0x0939('0x15b')});db[_0x0939('0x17f')][_0x0939('0x118')](db[_0x0939('0x52')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x173'),'foreignKey':'SmsInteractionId'});db[_0x0939('0x17f')][_0x0939('0x118')](db[_0x0939('0x4f')],{'as':'Account','foreignKey':'SmsAccountId'});db[_0x0939('0x12f')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Agents','through':'UserSmsQueue','foreignKey':'SmsQueueId'});db[_0x0939('0x12f')]['belongsToMany'](db['Team'],{'through':_0x0939('0x183'),'as':'Teams'});db[_0x0939('0x56')]['hasMany'](db['Disposition'],{'as':_0x0939('0x161'),'foreignKey':_0x0939('0x184'),'onDelete':_0x0939('0x107')});db[_0x0939('0x56')][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x184')});db['OpenchannelAccount'][_0x0939('0x109')](db[_0x0939('0x110')],{'as':'Interactions','foreignKey':_0x0939('0x184')});db[_0x0939('0x56')][_0x0939('0x109')](db['OpenchannelMessage'],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x184')});db[_0x0939('0x56')][_0x0939('0x109')](db[_0x0939('0x58')],{'as':'Applications','foreignKey':_0x0939('0x184')});db['OpenchannelAccount'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db['OpenchannelAccount'][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x56')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Agents','through':_0x0939('0x13b')});db['OpenchannelApplication'][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x58')][_0x0939('0x118')](db['OpenchannelQueue'],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x185')});db[_0x0939('0x58')][_0x0939('0x118')](db[_0x0939('0x56')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x184')});db[_0x0939('0x58')][_0x0939('0x118')](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x58')]['belongsTo'](db['Tag'],{'onDelete':'restrict','foreignKey':_0x0939('0x179')});db[_0x0939('0x110')]['hasMany'](db['OpenchannelMessage'],{'as':'Messages','onDelete':'cascade','foreignKey':_0x0939('0x186')});db[_0x0939('0x110')][_0x0939('0x118')](db[_0x0939('0x56')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x184')});db['OpenchannelInteraction'][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':'Contact','foreignKey':_0x0939('0x15c')});db['OpenchannelInteraction'][_0x0939('0x118')](db[_0x0939('0x11')],{'as':'Owner','foreignKey':_0x0939('0x108')});db[_0x0939('0x110')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x187'),'as':_0x0939('0x16f')});db['OpenchannelInteraction'][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x187'),'as':_0x0939('0x170')});db['OpenchannelInteraction'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Users','through':_0x0939('0x127'),'foreignKey':'OpenchannelInteractionId'});db[_0x0939('0x5a')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':'cascade','as':_0x0939('0x11')});db['OpenchannelMessage']['belongsTo'](db['CmContact'],{'onDelete':_0x0939('0x107'),'as':'Contact'});db[_0x0939('0x5a')][_0x0939('0x118')](db[_0x0939('0x110')],{'onDelete':'cascade','as':_0x0939('0x173'),'foreignKey':_0x0939('0x186')});db['OpenchannelMessage']['belongsTo'](db[_0x0939('0xe4')],{'as':_0x0939('0xe4'),'foreignKey':_0x0939('0x188')});db[_0x0939('0x5a')][_0x0939('0x118')](db[_0x0939('0x56')],{'as':'Account','foreignKey':'OpenchannelAccountId'});db['OpenchannelQueue'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x132'),'foreignKey':_0x0939('0x185')});db[_0x0939('0x5c')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':'team_has_openchannel_queues','as':_0x0939('0x155')});db[_0x0939('0x5d')]['hasMany'](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':_0x0939('0x174'),'onDelete':_0x0939('0x107')});db[_0x0939('0x5d')]['hasMany'](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x5d')]['hasMany'](db['ChatProactiveAction'],{'as':_0x0939('0x189')});db[_0x0939('0x5d')][_0x0939('0x109')](db['ChatInteraction'],{'as':'Interactions'});db[_0x0939('0x5d')][_0x0939('0x109')](db['ChatApplication'],{'as':'Applications'});db[_0x0939('0x5d')][_0x0939('0x109')](db[_0x0939('0x64')],{'as':_0x0939('0x164')});db['ChatWebsite']['belongsTo'](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':'ListId'});db['ChatWebsite'][_0x0939('0x118')](db[_0x0939('0x14e')],{'as':_0x0939('0x14e'),'foreignKey':'IntervalId'});db[_0x0939('0x5d')]['belongsTo'](db['MailAccount'],{'as':'MailAccount','foreignKey':_0x0939('0x15e')});db[_0x0939('0x5d')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db['ChatWebsite'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x136')});db['OpenchannelQueueReport'][_0x0939('0x118')](db['OpenchannelAccount'],{});db[_0x0939('0x5f')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':'ListId'});db[_0x0939('0x5f')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x5f')][_0x0939('0x118')](db['OpenchannelInteraction'],{});db['OpenchannelQueueReport'][_0x0939('0x118')](db[_0x0939('0x5a')],{});db[_0x0939('0x5f')][_0x0939('0x118')](db['User'],{});db[_0x0939('0x5f')][_0x0939('0x118')](db[_0x0939('0x5c')],{});db[_0x0939('0x18a')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x18b'),'foreignKey':_0x0939('0x108'),'onDelete':'restrict'});db[_0x0939('0x18a')][_0x0939('0x118')](db['ChatQueue'],{'as':_0x0939('0x18c'),'foreignKey':'ChatQueueId','onDelete':'restrict'});db[_0x0939('0x18a')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':'Website','foreignKey':'ChatWebsiteId','onDelete':_0x0939('0x176')});db[_0x0939('0x18a')][_0x0939('0x118')](db['Tag'],{'onDelete':_0x0939('0x176'),'foreignKey':'TagId'});db[_0x0939('0x62')]['hasMany'](db[_0x0939('0x64')],{'as':_0x0939('0x164'),'onDelete':'cascade','foreignKey':_0x0939('0x18d')});db[_0x0939('0x62')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x62')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x62')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x16c'),'foreignKey':'UserId'});db['ChatInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x18e'),'as':_0x0939('0x16f')});db['ChatInteraction'][_0x0939('0x11f')](db['Tag'],{'through':_0x0939('0x18e'),'as':'ThroughTags'});db[_0x0939('0x62')]['belongsToMany'](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':'user_has_chat_interactions','foreignKey':'ChatInteractionId'});db[_0x0939('0x64')][_0x0939('0x118')](db['User'],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x11')});db[_0x0939('0x64')][_0x0939('0x118')](db['CmContact'],{'onDelete':'cascade','as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x64')]['belongsTo'](db[_0x0939('0x62')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x173'),'foreignKey':_0x0939('0x18d')});db[_0x0939('0x64')][_0x0939('0x118')](db['Attachment'],{'as':'Attachment','foreignKey':'AttachmentId'});db[_0x0939('0x64')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x66')][_0x0939('0x109')](db['Attachment'],{'as':_0x0939('0x172'),'foreignKey':_0x0939('0x175'),'onDelete':_0x0939('0x107'),'hooks':!![]});db[_0x0939('0x66')]['belongsTo'](db['CmContact'],{'onDelete':'cascade','as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db['ChatOfflineMessage'][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x12c')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x2e'),'hooks':!![]});db[_0x0939('0x12c')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':'team_has_chat_queues','as':_0x0939('0x155')});db[_0x0939('0x11a')][_0x0939('0x109')](db[_0x0939('0x18f')],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x190'),'onDelete':'cascade'});db[_0x0939('0x11a')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x191'),'through':_0x0939('0x11c')});db[_0x0939('0x69')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':'Website','foreignKey':_0x0939('0x174')});db[_0x0939('0x6b')][_0x0939('0x109')](db['CmContact'],{'as':_0x0939('0x11e'),'foreignKey':_0x0939('0x192')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x146')],{'as':_0x0939('0x193'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x71')],{'as':_0x0939('0x10d'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db['CmHopperHistory'],{'as':_0x0939('0x148'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x10f')],{'as':_0x0939('0x10f'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0xc9')],{'as':_0x0939('0x14a'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x110')],{'as':_0x0939('0x111'),'foreignKey':_0x0939('0x15c'),'onDelete':_0x0939('0x176')});db['CmContact'][_0x0939('0x109')](db['ChatInteraction'],{'as':_0x0939('0x112'),'foreignKey':_0x0939('0x15c'),'onDelete':'restrict'});db[_0x0939('0x11d')]['hasMany'](db[_0x0939('0x52')],{'as':_0x0939('0x113'),'foreignKey':_0x0939('0x15c'),'onDelete':'restrict'});db[_0x0939('0x11d')]['hasMany'](db[_0x0939('0x114')],{'as':_0x0939('0x124'),'foreignKey':_0x0939('0x15c'),'onDelete':'restrict'});db['CmContact'][_0x0939('0x109')](db[_0x0939('0x40')],{'as':_0x0939('0x115'),'foreignKey':_0x0939('0x15c'),'onDelete':_0x0939('0x176')});db[_0x0939('0x11d')][_0x0939('0x118')](db[_0x0939('0x6b')],{'as':'Company','foreignKey':'CompanyId'});db[_0x0939('0x11d')][_0x0939('0x118')](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167'),'onDelete':_0x0939('0x107')});db['CmContact']['belongsToMany'](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':_0x0939('0x194')});db[_0x0939('0x11d')][_0x0939('0x11f')](db['Tag'],{'as':_0x0939('0x16f'),'through':_0x0939('0x195')});db[_0x0939('0x11d')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x195'),'as':_0x0939('0x170')});db[_0x0939('0x146')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c'),'onDelete':'cascade'});db['CmHopper']['belongsTo'](db[_0x0939('0x133')],{'as':'List','foreignKey':_0x0939('0x167'),'onDelete':_0x0939('0x107')});db[_0x0939('0x146')][_0x0939('0x118')](db['User'],{'as':'Agent','foreignKey':_0x0939('0x108')});db[_0x0939('0x146')][_0x0939('0x118')](db[_0x0939('0x19')],{'as':'Queue','foreignKey':_0x0939('0x147'),'onDelete':_0x0939('0x107')});db[_0x0939('0x146')][_0x0939('0x118')](db['Campaign'],{'as':_0x0939('0xe0'),'foreignKey':_0x0939('0x196'),'onDelete':_0x0939('0x107')});db[_0x0939('0x146')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x197')});db[_0x0939('0x6f')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c'),'onDelete':_0x0939('0x107')});db[_0x0939('0x6f')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167'),'onDelete':_0x0939('0x107')});db[_0x0939('0x6f')][_0x0939('0x118')](db[_0x0939('0x19')],{'as':'Queue','foreignKey':_0x0939('0x147'),'onDelete':_0x0939('0x107')});db[_0x0939('0x6f')][_0x0939('0x118')](db['Campaign'],{'as':_0x0939('0xe0'),'foreignKey':_0x0939('0x196'),'onDelete':_0x0939('0x107')});db[_0x0939('0x79')]['hasMany'](db[_0x0939('0x7d')],{'as':{'plural':_0x0939('0x198'),'singular':_0x0939('0x199')},'foreignKey':_0x0939('0x19a'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['Automation'][_0x0939('0x109')](db['Condition'],{'as':{'plural':_0x0939('0x19b'),'singular':_0x0939('0x19c')},'foreignKey':_0x0939('0x19d'),'onDelete':_0x0939('0x107'),'hooks':!![]});db[_0x0939('0x79')][_0x0939('0x109')](db[_0x0939('0x78')],{'as':_0x0939('0x19e'),'foreignKey':_0x0939('0x19f'),'onDelete':_0x0939('0x107'),'hooks':!![]});db[_0x0939('0x7b')][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':'Dispositions','foreignKey':_0x0939('0x1a0'),'onDelete':'cascade'});db['Interval'][_0x0939('0x109')](db['Interval'],{'as':'Intervals','foreignKey':_0x0939('0x14f'),'onDelete':'cascade','hooks':!![],'required':![]});db['Interval'][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':'Extensions','foreignKey':_0x0939('0x14f'),'onDelete':'restrict'});db[_0x0939('0x14e')][_0x0939('0x109')](db[_0x0939('0x42')],{'as':_0x0939('0x1a1'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x14e')][_0x0939('0x109')](db['ChatApplication'],{'as':_0x0939('0x1a2'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x14e')][_0x0939('0x109')](db['FaxApplication'],{'as':_0x0939('0x1a3'),'foreignKey':'IntervalId'});db[_0x0939('0x14e')][_0x0939('0x109')](db[_0x0939('0x180')],{'as':_0x0939('0x1a4'),'foreignKey':_0x0939('0x14f')});db['Schedule'][_0x0939('0x118')](db[_0x0939('0x3c')],{});db['Schedule'][_0x0939('0x118')](db[_0x0939('0x8a')],{'foreignKey':'DefaultReportId'});db[_0x0939('0x1a5')][_0x0939('0x118')](db[_0x0939('0x1a6')],{'foreignKey':_0x0939('0x1a7')});db[_0x0939('0x81')]['belongsToMany'](db[_0x0939('0x18')],{'as':_0x0939('0x1a8'),'through':_0x0939('0x145'),'onDelete':'restrict'});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x11d')],{'through':_0x0939('0x195')});db[_0x0939('0x16d')]['belongsToMany'](db['ChatInteraction'],{'through':_0x0939('0x18e')});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x40')],{'through':_0x0939('0x16e')});db['Tag'][_0x0939('0x11f')](db[_0x0939('0x52')],{'through':'sms_interaction_has_tags'});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x114')],{'through':_0x0939('0x17b')});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x110')],{'through':_0x0939('0x187')});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0xf8')],{'through':_0x0939('0x1a9')});db[_0x0939('0x1aa')]['hasMany'](db[_0x0939('0x7d')],{'as':{'plural':'AllConditions','singular':'AllCondition'},'foreignKey':_0x0939('0x1ab'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['Trigger'][_0x0939('0x109')](db[_0x0939('0x7d')],{'as':{'plural':_0x0939('0x1ac'),'singular':_0x0939('0x1ad')},'foreignKey':_0x0939('0x1ae'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['Trigger'][_0x0939('0x109')](db['Action'],{'as':_0x0939('0x19e'),'foreignKey':_0x0939('0x1af'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['AnalyticCustomReport'][_0x0939('0x109')](db['AnalyticFieldReport'],{'as':_0x0939('0x1b0'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1a7'),'hooks':!![]});db[_0x0939('0x8a')][_0x0939('0x109')](db[_0x0939('0x8f')],{'as':_0x0939('0x1b0'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b1')});db[_0x0939('0x8d')][_0x0939('0x109')](db['AnalyticFieldReport'],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1b2')});db[_0x0939('0x8f')][_0x0939('0x118')](db[_0x0939('0x8d')],{'foreignKey':_0x0939('0x1b2')});db[_0x0939('0x92')][_0x0939('0x109')](db[_0x0939('0x94')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x94')][_0x0939('0x109')](db[_0x0939('0x96')],{'as':_0x0939('0x1b5'),'onDelete':'cascade','foreignKey':_0x0939('0x1b6')});db[_0x0939('0x94')][_0x0939('0x109')](db[_0x0939('0x96')],{'as':'Descriptions','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db['SalesforceConfiguration']['hasMany'](db[_0x0939('0x96')],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':'FieldId'});db[_0x0939('0x94')][_0x0939('0x118')](db[_0x0939('0x92')],{'as':'Account','foreignKey':_0x0939('0x1b4')});db['SalesforceField'][_0x0939('0x109')](db[_0x0939('0x96')],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x96')]['hasMany'](db[_0x0939('0x96')],{'as':_0x0939('0x1b9'),'foreignKey':'DescriptionId'});db['SalesforceField']['hasMany'](db[_0x0939('0x96')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x96')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db['SugarcrmAccount'][_0x0939('0x109')](db['SugarcrmConfiguration'],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x9a')][_0x0939('0x109')](db['SugarcrmField'],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x9a')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0x9a')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':'Fields','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x9a')][_0x0939('0x118')](db['SugarcrmAccount'],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db[_0x0939('0x1bd')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1bd')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db['SugarcrmField'][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x1bd')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':'VariableId'});db['DeskAccount']['hasMany'](db[_0x0939('0x9f')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':'AccountId'});db[_0x0939('0x9f')]['hasMany'](db[_0x0939('0xa1')],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x9f')][_0x0939('0x109')](db[_0x0939('0xa1')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db['DeskConfiguration']['hasMany'](db[_0x0939('0xa1')],{'as':_0x0939('0x1b0'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x9f')][_0x0939('0x118')](db[_0x0939('0x9d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x9f')]['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x1bf')});db[_0x0939('0xa1')]['hasMany'](db[_0x0939('0xa1')],{'as':'Subject','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xa1')][_0x0939('0x109')](db['DeskField'],{'as':_0x0939('0x1b9'),'foreignKey':'DescriptionId'});db[_0x0939('0xa1')]['hasMany'](db[_0x0939('0xa1')],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db['DeskField']['belongsTo'](db['Variable'],{'as':'Variable','foreignKey':_0x0939('0x1bc')});db[_0x0939('0xa3')]['hasMany'](db[_0x0939('0xa5')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':'AccountId'});db['ZohoConfiguration'][_0x0939('0x109')](db[_0x0939('0x1c0')],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xa5')][_0x0939('0x109')](db[_0x0939('0x1c0')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db['ZohoConfiguration']['hasMany'](db[_0x0939('0x1c0')],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1bb')});db[_0x0939('0xa5')]['belongsTo'](db[_0x0939('0xa3')],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db['ZohoField']['hasMany'](db['ZohoField'],{'as':'Subject','foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1c0')][_0x0939('0x109')](db[_0x0939('0x1c0')],{'as':_0x0939('0x1b9'),'foreignKey':'DescriptionId'});db[_0x0939('0x1c0')]['hasMany'](db['ZohoField'],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db['ZohoField'][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db['ZendeskAccount']['hasMany'](db['ZendeskConfiguration'],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db['ZendeskConfiguration'][_0x0939('0x109')](db['ZendeskField'],{'as':_0x0939('0x1b5'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1c1')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':_0x0939('0x1be'),'foreignKey':'DescriptionId'});db[_0x0939('0x1c1')]['hasMany'](db[_0x0939('0xaa')],{'as':_0x0939('0x1b0'),'foreignKey':_0x0939('0x1bb')});db['ZendeskConfiguration'][_0x0939('0x118')](db[_0x0939('0x1c2')],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db[_0x0939('0x1c1')]['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x1c3')});db[_0x0939('0xaa')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':'Subject','foreignKey':'SubjectId'});db[_0x0939('0xaa')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':'Description','foreignKey':_0x0939('0x1b7')});db[_0x0939('0xaa')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db['ZendeskField'][_0x0939('0x118')](db['Variable'],{'as':_0x0939('0x84'),'foreignKey':'VariableId'});db[_0x0939('0x1c4')]['hasMany'](db[_0x0939('0xac')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db['FreshdeskConfiguration']['hasMany'](db[_0x0939('0xad')],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db['FreshdeskConfiguration'][_0x0939('0x109')](db[_0x0939('0xad')],{'as':'Descriptions','onDelete':_0x0939('0x107'),'foreignKey':'DescriptionId'});db[_0x0939('0xac')][_0x0939('0x109')](db[_0x0939('0xad')],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1bb')});db[_0x0939('0xac')]['belongsTo'](db[_0x0939('0x1c4')],{'as':'Account','foreignKey':_0x0939('0x1b4')});db[_0x0939('0xac')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x1c5')});db[_0x0939('0xad')][_0x0939('0x109')](db['FreshdeskField'],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xad')]['hasMany'](db['FreshdeskField'],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xad')][_0x0939('0x109')](db['FreshdeskField'],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db[_0x0939('0xad')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db['VtigerAccount'][_0x0939('0x109')](db[_0x0939('0xb0')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':'AccountId'});db[_0x0939('0xb0')][_0x0939('0x109')](db[_0x0939('0xb2')],{'as':_0x0939('0x1b5'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xb0')][_0x0939('0x109')](db[_0x0939('0xb2')],{'as':_0x0939('0x1be'),'foreignKey':'DescriptionId'});db[_0x0939('0xb0')]['hasMany'](db['VtigerField'],{'as':_0x0939('0x1b0'),'foreignKey':_0x0939('0x1bb')});db['VtigerConfiguration'][_0x0939('0x118')](db[_0x0939('0xaf')],{'as':'Account','foreignKey':_0x0939('0x1b4')});db['VtigerField'][_0x0939('0x109')](db['VtigerField'],{'as':_0x0939('0x1b8'),'foreignKey':'SubjectId'});db[_0x0939('0xb2')][_0x0939('0x109')](db['VtigerField'],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xb2')][_0x0939('0x109')](db['VtigerField'],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0xb2')]['belongsTo'](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db[_0x0939('0x1c6')][_0x0939('0x109')](db[_0x0939('0xb5')],{'as':'Configurations','onDelete':'cascade','foreignKey':'AccountId'});db['ServicenowConfiguration'][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':'Subjects','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xb5')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':'Descriptions','foreignKey':_0x0939('0x1b7')});db[_0x0939('0xb5')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':_0x0939('0x1b0'),'foreignKey':_0x0939('0x1bb')});db['ServicenowConfiguration'][_0x0939('0x118')](db[_0x0939('0x1c6')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0xb7')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':_0x0939('0x1b8'),'foreignKey':'SubjectId'});db[_0x0939('0xb7')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db['ServicenowField']['hasMany'](db[_0x0939('0xb7')],{'as':'Field','foreignKey':_0x0939('0x1bb')});db[_0x0939('0xb7')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':'VariableId'});db[_0x0939('0xb9')][_0x0939('0x109')](db[_0x0939('0x1c7')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x1c7')][_0x0939('0x109')](db['Dynamics365Field'],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1c7')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0x1c7')][_0x0939('0x109')](db['Dynamics365Field'],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1bb')});db[_0x0939('0x1c7')][_0x0939('0x118')](db[_0x0939('0xb9')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0xbb')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xbb')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xbb')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db['Dynamics365Field'][_0x0939('0x118')](db[_0x0939('0x84')],{'as':'Variable','foreignKey':'VariableId'});db[_0x0939('0x1c8')]['hasMany'](db[_0x0939('0xbe')],{'as':_0x0939('0x1b3'),'onDelete':'cascade','foreignKey':_0x0939('0x1b4')});db[_0x0939('0xbe')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':'Subjects','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xbe')]['hasMany'](db['FreshsalesField'],{'as':_0x0939('0x1be'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xbe')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':_0x0939('0x1b0'),'foreignKey':'FieldId'});db[_0x0939('0xbe')][_0x0939('0x118')](db[_0x0939('0x1c8')],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db[_0x0939('0xc0')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':'Subject','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xc0')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xc0')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db['FreshsalesField'][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db[_0x0939('0xc4')][_0x0939('0x118')](db[_0x0939('0x5d')],{});db[_0x0939('0xc4')][_0x0939('0x118')](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0xc4')][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xc4')]['belongsTo'](db[_0x0939('0x62')],{});db[_0x0939('0xc4')]['belongsTo'](db[_0x0939('0x64')],{});db[_0x0939('0xc4')][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0xc4')]['belongsTo'](db[_0x0939('0x12c')],{});db[_0x0939('0x18f')][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1c9')});db[_0x0939('0x18f')][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1ca')});db[_0x0939('0xc9')]['hasMany'](db[_0x0939('0xc8')],{'foreignKey':_0x0939('0x1cb'),'onDelete':_0x0939('0x107')});db['JscriptySessionReport'][_0x0939('0x109')](db[_0x0939('0xc6')],{'foreignKey':'SessionId','onDelete':_0x0939('0x107')});db[_0x0939('0xcb')][_0x0939('0x118')](db[_0x0939('0x4f')],{});db['SmsQueueReport'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':'List','foreignKey':_0x0939('0x167')});db[_0x0939('0xcb')]['belongsTo'](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xcb')][_0x0939('0x118')](db[_0x0939('0x52')],{});db['SmsQueueReport']['belongsTo'](db[_0x0939('0x17f')],{});db['SmsQueueReport'][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0xcb')][_0x0939('0x118')](db[_0x0939('0x12f')],{});db['JscriptyProject']['hasMany'](db['JscriptySessionReport'],{'foreignKey':_0x0939('0x1cc')});db['JscriptyProject'][_0x0939('0x109')](db['JscriptyQuestionReport'],{'foreignKey':'ProjectId'});db['JscriptyProject'][_0x0939('0x109')](db['JscriptyAnswerReport'],{'foreignKey':_0x0939('0x1cc')});db[_0x0939('0xd6')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Users','through':'user_has_square_projects'});db['Team'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':'user_has_teams'});db[_0x0939('0xdc')][_0x0939('0x11f')](db[_0x0939('0x19')],{'through':'TeamVoiceQueue','as':'VoiceQueues'});db['Team'][_0x0939('0x11f')](db[_0x0939('0x12a')],{'through':_0x0939('0x169'),'as':_0x0939('0x12b')});db[_0x0939('0xdc')][_0x0939('0x11f')](db[_0x0939('0x12c')],{'through':_0x0939('0x1cd'),'as':_0x0939('0x12d')});db[_0x0939('0xdc')]['belongsToMany'](db[_0x0939('0x4d')],{'through':_0x0939('0x17c'),'as':'FaxQueues'});db[_0x0939('0xdc')][_0x0939('0x11f')](db['SmsQueue'],{'through':_0x0939('0x183'),'as':_0x0939('0x130')});db[_0x0939('0xdc')][_0x0939('0x11f')](db['OpenchannelQueue'],{'through':_0x0939('0x1ce'),'as':'OpenchannelQueues'});db['Team']['belongsToMany'](db['WhatsappQueue'],{'through':'team_has_whatsapp_queues','as':_0x0939('0x1cf')});db['Campaign'][_0x0939('0x109')](db[_0x0939('0x146')],{'as':'Hoppers','foreignKey':'CampaignId'});db[_0x0939('0xe0')][_0x0939('0x109')](db[_0x0939('0x71')],{'as':'HopperFinals','foreignKey':_0x0939('0x196')});db[_0x0939('0xe0')][_0x0939('0x109')](db[_0x0939('0x73')],{'as':_0x0939('0x148'),'foreignKey':_0x0939('0x196')});db[_0x0939('0xe0')]['hasMany'](db[_0x0939('0x6f')],{'as':_0x0939('0x149'),'foreignKey':_0x0939('0x196')});db['Campaign'][_0x0939('0x118')](db['Trunk'],{'as':_0x0939('0x28'),'foreignKey':_0x0939('0x14b')});db[_0x0939('0xe0')]['belongsTo'](db[_0x0939('0x28')],{'as':_0x0939('0x14c'),'foreignKey':_0x0939('0x14d')});db[_0x0939('0xe0')][_0x0939('0x118')](db[_0x0939('0x14e')],{'as':_0x0939('0x14e'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0xe0')]['belongsTo'](db[_0x0939('0xd6')],{'as':_0x0939('0xd6'),'foreignKey':_0x0939('0x1d0')});db[_0x0939('0xe0')][_0x0939('0x11f')](db[_0x0939('0x133')],{'as':_0x0939('0x120'),'through':_0x0939('0x1d1')});db[_0x0939('0xe0')][_0x0939('0x11f')](db[_0x0939('0x133')],{'as':_0x0939('0x156'),'through':_0x0939('0x1d2')});db[_0x0939('0xe4')][_0x0939('0x118')](db[_0x0939('0x66')],{'as':'ChatOfflineMessage','foreignKey':_0x0939('0x175')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x163')],{});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x40')],{});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x3c')],{'foreignKey':_0x0939('0x1d3'),'as':_0x0939('0x1d4')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db[_0x0939('0xe7')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':'ToUserId','as':_0x0939('0x1d7')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x12a')],{'foreignKey':_0x0939('0x1d8'),'as':_0x0939('0x1d9')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x3c')],{'foreignKey':_0x0939('0x1da'),'as':'ToAccount'});db[_0x0939('0xe9')][_0x0939('0x118')](db['ChatMessage'],{});db[_0x0939('0xe9')]['belongsTo'](db['ChatInteraction'],{});db[_0x0939('0xe9')][_0x0939('0x118')](db[_0x0939('0x5d')],{'foreignKey':'FromChatWebsiteId','as':_0x0939('0x1d4')});db[_0x0939('0xe9')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':'FromAgent'});db[_0x0939('0xe9')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':_0x0939('0x1d7')});db[_0x0939('0xe9')][_0x0939('0x118')](db['ChatQueue'],{'foreignKey':_0x0939('0x1dc'),'as':'ToQueue'});db[_0x0939('0xe9')][_0x0939('0x118')](db[_0x0939('0x5d')],{'foreignKey':'ToChatWebsiteId','as':_0x0939('0x1dd')});db[_0x0939('0xea')][_0x0939('0x118')](db[_0x0939('0x4b')],{});db[_0x0939('0xea')]['belongsTo'](db[_0x0939('0x114')],{});db['FaxTransferReport'][_0x0939('0x118')](db[_0x0939('0x137')],{'foreignKey':_0x0939('0x1de'),'as':_0x0939('0x1d4')});db[_0x0939('0xea')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db[_0x0939('0xea')][_0x0939('0x118')](db['User'],{'foreignKey':_0x0939('0x1db'),'as':'ToAgent'});db['FaxTransferReport'][_0x0939('0x118')](db[_0x0939('0x4d')],{'foreignKey':_0x0939('0x1df'),'as':_0x0939('0x1d9')});db[_0x0939('0xea')]['belongsTo'](db[_0x0939('0x137')],{'foreignKey':_0x0939('0x1e0'),'as':_0x0939('0x1dd')});db['OpenchannelTransferReport']['belongsTo'](db['OpenchannelMessage'],{});db[_0x0939('0xeb')][_0x0939('0x118')](db[_0x0939('0x110')],{});db[_0x0939('0xeb')][_0x0939('0x118')](db['OpenchannelAccount'],{'foreignKey':_0x0939('0x1e1'),'as':_0x0939('0x1d4')});db[_0x0939('0xeb')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db[_0x0939('0xeb')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':_0x0939('0x1d7')});db['OpenchannelTransferReport']['belongsTo'](db['OpenchannelQueue'],{'foreignKey':_0x0939('0x1e2'),'as':_0x0939('0x1d9')});db['OpenchannelTransferReport']['belongsTo'](db[_0x0939('0x56')],{'foreignKey':_0x0939('0x1e3'),'as':'ToAccount'});db[_0x0939('0xed')][_0x0939('0x118')](db[_0x0939('0x17f')],{});db['SmsTransferReport'][_0x0939('0x118')](db[_0x0939('0x52')],{});db[_0x0939('0xed')][_0x0939('0x118')](db[_0x0939('0x4f')],{'foreignKey':_0x0939('0x1e4'),'as':'FromAccount'});db[_0x0939('0xed')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db['SmsTransferReport'][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':_0x0939('0x1d7')});db['SmsTransferReport'][_0x0939('0x118')](db['SmsQueue'],{'foreignKey':'ToSmsQueueId','as':'ToQueue'});db[_0x0939('0xed')]['belongsTo'](db[_0x0939('0x4f')],{'foreignKey':_0x0939('0x1e5'),'as':_0x0939('0x1dd')});db[_0x0939('0x133')][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':'ListId','onDelete':_0x0939('0x107')});db['CmList'][_0x0939('0x109')](db[_0x0939('0x76')],{'as':_0x0939('0x1e6'),'foreignKey':'ListId'});db[_0x0939('0x133')][_0x0939('0x109')](db[_0x0939('0x11d')],{'as':_0x0939('0x11e'),'onDelete':'cascade','foreignKey':_0x0939('0x167')});db['CmList']['hasMany'](db[_0x0939('0x71')],{'as':_0x0939('0x10d'),'foreignKey':_0x0939('0x167')});db['CmList']['hasMany'](db[_0x0939('0x73')],{'as':'HopperHistory','foreignKey':_0x0939('0x167')});db['CmList'][_0x0939('0x109')](db[_0x0939('0x10f')],{'as':_0x0939('0x10f'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x133')][_0x0939('0x11f')](db['VoiceQueue'],{'as':'Queues','through':_0x0939('0x153')});db[_0x0939('0x133')][_0x0939('0x11f')](db['User'],{'as':_0x0939('0x154'),'through':'cm_user_has_lists'});db[_0x0939('0xef')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':_0x0939('0x1e7'),'onDelete':_0x0939('0x107')});db[_0x0939('0xef')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x134')});db['UserProfile'][_0x0939('0x109')](db['User'],{'as':_0x0939('0x171'),'foreignKey':_0x0939('0x119')});db[_0x0939('0xf0')]['hasMany'](db[_0x0939('0xf2')],{'as':_0x0939('0x1e8'),'foreignKey':_0x0939('0x119'),'onDelete':_0x0939('0x107')});db[_0x0939('0xf2')][_0x0939('0x109')](db[_0x0939('0x1e9')],{'as':_0x0939('0x1ea'),'foreignKey':_0x0939('0x1eb'),'onDelete':_0x0939('0x107')});db[_0x0939('0x13e')]['hasMany'](db[_0x0939('0x7b')],{'as':'Dispositions','foreignKey':_0x0939('0x1ec'),'onDelete':_0x0939('0x107')});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':'WhatsappAccountId'});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0xfa')],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x1ec')});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0xf8')],{'as':_0x0939('0x165')});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0x1ed')],{'as':_0x0939('0x143')});db[_0x0939('0x13e')]['belongsTo'](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x13e')]['belongsTo'](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x13e')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x13f')});db[_0x0939('0x1ed')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x1ed')]['belongsTo'](db['WhatsappQueue'],{'onDelete':_0x0939('0x176')});db[_0x0939('0x1ed')][_0x0939('0x118')](db[_0x0939('0x13e')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x1ed')][_0x0939('0x118')](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x1ed')][_0x0939('0x118')](db[_0x0939('0x16d')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x179')});db[_0x0939('0xf8')]['hasMany'](db[_0x0939('0xfa')],{'as':_0x0939('0x164'),'onDelete':'cascade','foreignKey':_0x0939('0x1ee')});db[_0x0939('0xf8')][_0x0939('0x118')](db['WhatsappAccount'],{'as':_0x0939('0x16b'),'foreignKey':'WhatsappAccountId'});db['WhatsappInteraction'][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xf8')][_0x0939('0x118')](db['User'],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x108')});db[_0x0939('0xf8')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x1a9'),'as':_0x0939('0x16f')});db['WhatsappInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x1a9'),'as':_0x0939('0x170')});db[_0x0939('0xf8')]['belongsToMany'](db[_0x0939('0x11')],{'as':'Users','through':_0x0939('0x128'),'foreignKey':_0x0939('0x1ee')});db['WhatsappMessage']['belongsTo'](db[_0x0939('0x11')],{'as':_0x0939('0x11')});db[_0x0939('0xfa')][_0x0939('0x118')](db['CmContact'],{'onDelete':_0x0939('0x107'),'as':'Contact'});db['WhatsappMessage'][_0x0939('0x118')](db['WhatsappInteraction'],{'onDelete':_0x0939('0x107'),'as':'Interaction','foreignKey':_0x0939('0x1ee')});db['WhatsappMessage'][_0x0939('0x118')](db[_0x0939('0x13e')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1ec')});db['WhatsappQueueReport'][_0x0939('0x118')](db[_0x0939('0x13e')],{});db['WhatsappQueueReport'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db['WhatsappQueueReport'][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xfc')][_0x0939('0x118')](db[_0x0939('0xf8')],{});db[_0x0939('0xfc')][_0x0939('0x118')](db[_0x0939('0x100')],{});db[_0x0939('0xfc')][_0x0939('0x118')](db[_0x0939('0xfa')],{});db['WhatsappQueueReport'][_0x0939('0x118')](db['User'],{});db[_0x0939('0xfe')][_0x0939('0x118')](db['WhatsappMessage'],{});db[_0x0939('0xfe')][_0x0939('0x118')](db['WhatsappInteraction'],{});db[_0x0939('0xfe')][_0x0939('0x118')](db[_0x0939('0x13e')],{'foreignKey':_0x0939('0x1ef'),'as':'FromAccount'});db[_0x0939('0xfe')]['belongsTo'](db[_0x0939('0x13e')],{'foreignKey':'ToWhatsappAccountId','as':_0x0939('0x1dd')});db['WhatsappTransferReport']['belongsTo'](db['WhatsappQueue'],{'foreignKey':_0x0939('0x1f0'),'as':'ToQueue'});db[_0x0939('0xfe')][_0x0939('0x118')](db['User'],{'foreignKey':_0x0939('0x1d5'),'as':'FromAgent'});db[_0x0939('0xfe')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':'ToAgent'});db['WhatsappQueue'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':'UserWhatsappQueue','foreignKey':_0x0939('0x1f1')});db[_0x0939('0x100')][_0x0939('0x11f')](db['Team'],{'through':_0x0939('0x1f2'),'as':_0x0939('0x155')});module[_0x0939('0x1f3')]={'db':db,'dbH':dbH};
\ No newline at end of file
+var _0xa571=['../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','../api/smsTransferReport/smsTransferReport.model','CmList','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','UserProfile','../api/userProfile/userProfile.model','../api/userProfileSection/userProfileSection.model','UserProfileResource','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','WhatsappAccount','WhatsappApplication','../api/whatsappApplication/whatsappApplication.model','../api/whatsappInteraction/whatsappInteraction.model','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','WhatsappTransferReport','WhatsappQueue','../api/whatsappQueue/whatsappQueue.model','../api/cloudProvider/cloudProvider.model','TeamVoiceQueue','../api/teamVoiceQueue/teamVoiceQueue.model','TeamVoicePrefix','../api/teamVoicePrefix/teamVoicePrefix.model','UserVoicePrefix','User','hasOne','Recordings','UserId','hasMany','VoiceQueuesRt','Extensions','cascade','CmHopperFinal','HopperFinals','HopperHistory','ReportAgentPreview','OpenchannelInteractions','ChatInteractions','FaxInteraction','FaxInteractions','MailInteractions','WhatsappInteraction','WhatsappInteractions','UserNotifications','belongsTo','userProfileId','belongsToMany','chat_group_has_users','Contacts','Lists','user_has_teams','user_has_mail_interactions','user_has_chat_interactions','user_has_fax_interactions','user_has_sms_interactions','user_has_openchannel_interactions','user_has_whatsapp_interactions','VoiceQueues','VoicePrefixes','MailQueue','UserMailQueue','ChatQueues','FaxQueues','OpenchannelQueues','cm_user_has_lists','ChatWebsite','ChatWebsites','user_has_chat_websites','FaxAccounts','user_has_fax_accounts','SmsAccounts','user_has_sms_accounts','WhatsappAccounts','user_has_whatsapp_accounts','SquareProjects','SpiedAgents','ChanSpyId','Applications','Sounds','CmHopper','Hoppers','VoiceQueueId','HopperBlacks','JscriptySessions','TrunkId','TrunkBackup','TrunkBackupId','IntervalId','mandatoryDispositionPause','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','Teams','BlackLists','voice_queues_has_cm_blacklists','VoiceRecording','Messages','mailboxuser','mailbox','QueueCalls','uniqueid','VoiceAgentReport','AgentReports','ContactId','MailAccountId','Imap','Smtp','Dispositions','Answers','Interactions','List','TemplateId','user_has_mail_accounts','team_has_mail_queues','MailInteractionId','Account','Contact','mail_interaction_has_tags','Tags','ThroughTags','Users','Attachments','Interaction','ChatOfflineMessage','ChatOfflineMessageId','restrict','ListId','Dashboard','Items','FaxAccountId','Exntensions','TagId','FaxInteractionId','Owner','fax_interaction_has_tags','AttachmentId','team_has_fax_queues','FaxQueueReport','SmsAccountId','sms_interaction_has_tags','SmsInteractionId','team_has_sms_queues','OpenchannelAccountId','OpenchannelMessage','OpenchannelQueueId','openchannel_interaction_has_tags','OpenchannelInteractionId','ChatWebsiteId','ProactiveActions','ChatApplication','Agent','Queue','ChatQueueId','ChatInteractionId','chat_interaction_has_tags','UserChatQueue','team_has_chat_queues','ChatInternalMessage','ChatGroupId','Website','HopperHistories','Company','cm_user_has_contacts','cm_contact_has_tags','CampaignId','OwnerId','All','Any','OneAny','AutomationAnyId','Actions','ParentId','Intervals','MailApplications','FaxApplications','SmsApplications','DefaultReportId','CustomReportId','moh_has_sounds','whatsapp_interaction_has_tags','AllConditions','AllCondition','TriggerAllId','AnyConditions','AnyCondition','TriggerAnyId','TriggerId','Fields','AnalyticMetric','MetricId','Configurations','AccountId','Subjects','SubjectId','Descriptions','DescriptionId','FieldId','SalesforceAccount','Subject','Description','Field','Variable','VariableId','SugarcrmConfiguration','DeskField','int_desk_configuration_has_tags','ZohoConfiguration','ZendeskAccount','ZendeskField','int_zendesk_configuration_has_tags','int_freshdesk_configuration_has_tags','ServicenowConfiguration','Dynamics365Field','Dynamics365Account','FreshsalesConfiguration','FreshsalesField','ToId','JscriptyQuestionReport','SessionId','JscriptyAnswerReport','ProjectId','user_has_square_projects','MailQueues','SmsQueues','WhatsappQueues','campaigns_has_cm_lists','campaigns_has_cm_blacklists','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToUserId','ToAgent','ToMailQueueId','ToMailAccountId','ToAccount','FromChatWebsiteId','ToChatQueueId','ToQueue','ToFaxQueueId','ToFaxAccountId','FromOpenchannelAccountId','ToOpenchannelQueueId','FromSmsAccountId','CmCustomField','CustomFields','Queues','UserProfileSection','UserProfileSections','sectionId','WhatsappAccountId','WhatsappInteractionId','WhatsappQueueReport','FromWhatsappAccountId','ToWhatsappAccountId','ToQueueId','WhatsappQueueId','team_has_whatsapp_queues','../config/environment','sequelize','lodash','jstz','defaultsDeep','xcall','127.0.0.1','mysql','utf8mb4','name','utf8','utf8_general_ci','sequelizeHistory','motion2','xC@LL1234','username','password','options','VoiceChanSpy','import','VoiceContext','VoiceExtension','../api/voiceExtension/voiceExtension.model','VoiceMusicOnHold','../api/voiceMusicOnHold/voiceMusicOnHold.model','VoiceQueue','../api/voiceRecording/voiceRecording.model','ScreenRecording','../api/screenRecording/screenRecording.model','VoiceMail','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','../api/memberReport/memberReport.model','Trunk','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','UserVoiceQueueRt','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','../api/userMailQueue/userMailQueue.model','UserFaxQueue','../api/userFaxQueue/userFaxQueue.model','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','MailServerIn','../api/mailServerIn/mailServerIn.model','MailServerOut','../api/mailServerOut/mailServerOut.model','MailAccount','../api/mailQueue/mailQueue.model','../api/mailSubstatus/mailSubstatus.model','MailInteraction','MailMessage','MailApplication','../api/mailApplication/mailApplication.model','MailQueueReport','../api/dashboard/dashboard.model','DashboardItem','../api/dashboardItem/dashboardItem.model','FaxAccount','FaxApplication','../api/faxApplication/faxApplication.model','../api/faxInteraction/faxInteraction.model','FaxMessage','../api/faxMessage/faxMessage.model','FaxQueue','../api/faxQueue/faxQueue.model','../api/faxQueueReport/faxQueueReport.model','SmsAccount','SmsApplication','../api/smsApplication/smsApplication.model','SmsInteraction','../api/smsInteraction/smsInteraction.model','SmsMessage','../api/smsMessage/smsMessage.model','SmsQueue','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','OpenchannelApplication','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelQueue','OpenchannelQueueReport','../api/chatApplication/chatApplication.model','ChatInteraction','../api/chatInteraction/chatInteraction.model','ChatMessage','../api/chatOfflineMessage/chatOfflineMessage.model','ChatQueue','../api/chatQueue/chatQueue.model','ChatGroup','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','CmContact','../api/cmHopper/cmHopper.model','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','../api/cmHopperFinal/cmHopperFinal.model','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','../api/reportAgentPreview/reportAgentPreview.model','../api/cmCustomField/cmCustomField.model','Action','../api/action/action.model','Automation','../api/automation/automation.model','CannedAnswer','Disposition','../api/disposition/disposition.model','Condition','Interval','../api/interval/interval.model','Pause','../api/pause/pause.model','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','Tag','../api/tag/tag.model','Template','Trigger','../api/trigger/trigger.model','../api/variable/variable.model','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticCustomReport','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','../api/analyticExtractedReport/analyticExtractedReport.model','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','AnalyticTreeReport','../api/analyticTreeReport/analyticTreeReport.model','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskAccount/intDeskAccount.model','DeskConfiguration','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','../api/intZohoField/intZohoField.model','../api/intZendeskAccount/intZendeskAccount.model','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','FreshdeskConfiguration','FreshdeskField','VtigerAccount','../api/intVtigerAccount/intVtigerAccount.model','VtigerConfiguration','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','ServicenowAccount','../api/intServicenowConfiguration/intServicenowConfiguration.model','ServicenowField','../api/intServicenowField/intServicenowField.model','../api/intDynamics365Account/intDynamics365Account.model','Dynamics365Configuration','../api/intDynamics365Field/intDynamics365Field.model','FreshsalesAccount','../api/intFreshsalesAccount/intFreshsalesAccount.model','../api/intFreshsalesField/intFreshsalesField.model','Network','../api/network/network.model','ChatQueueReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','../api/jscriptyProject/jscriptyProject.model','Setting','../api/setting/setting.model','SquareOdbc','../api/squareOdbc/squareOdbc.model','SquareProject','../api/squareProject/squareProject.model','../api/squareRecording/squareRecording.model','SquareMessage','../api/squareMessage/squareMessage.model','Team','../api/team/team.model','License','Campaign','../api/campaign/campaign.model','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','Plugin','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','../api/faxTransferReport/faxTransferReport.model','OpenchannelTransferReport'];(function(_0xf67acd,_0x1256f7){var _0x34766d=function(_0x21cc6f){while(--_0x21cc6f){_0xf67acd['push'](_0xf67acd['shift']());}};_0x34766d(++_0x1256f7);}(_0xa571,0x107));var _0x1a57=function(_0x588834,_0x141d48){_0x588834=_0x588834-0x0;var _0x387b9c=_0xa571[_0x588834];return _0x387b9c;};'use strict';var config=require(_0x1a57('0x0'));var Sequelize=require(_0x1a57('0x1'));var _=require(_0x1a57('0x2'));var jstz=require(_0x1a57('0x3'));var timezone=jstz['determine']();config[_0x1a57('0x1')]=_[_0x1a57('0x4')](config['sequelize'],{'database':'motion2','username':_0x1a57('0x5'),'password':'xC@LL1234','options':{'host':_0x1a57('0x6'),'port':0xcea,'dialect':_0x1a57('0x7'),'dialectOptions':{'charset':_0x1a57('0x8')},'logging':![],'timezone':timezone[_0x1a57('0x9')](),'define':{'charset':_0x1a57('0xa'),'collate':_0x1a57('0xb')}}});config['sequelizeHistory']=_[_0x1a57('0x4')](config[_0x1a57('0xc')],{'database':_0x1a57('0xd'),'username':'xcall','password':_0x1a57('0xe'),'options':{'host':_0x1a57('0x6'),'port':0xcea,'dialect':_0x1a57('0x7'),'dialectOptions':{'charset':_0x1a57('0x8')},'logging':![],'timezone':timezone[_0x1a57('0x9')](),'define':{'charset':_0x1a57('0xa'),'collate':_0x1a57('0xb')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x1a57('0x1')]['database'],config['sequelize'][_0x1a57('0xf')],config[_0x1a57('0x1')][_0x1a57('0x10')],config['sequelize'][_0x1a57('0x11')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x1a57('0xc')]['database'],config[_0x1a57('0xc')]['username'],config[_0x1a57('0xc')][_0x1a57('0x10')],config[_0x1a57('0xc')][_0x1a57('0x11')])};db['User']=db[_0x1a57('0x1')]['import']('../api/user/user.model');db[_0x1a57('0x12')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/voiceChanSpy/voiceChanSpy.model');db[_0x1a57('0x14')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/voiceContext/voiceContext.model');db[_0x1a57('0x15')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x16'));db[_0x1a57('0x17')]=db['sequelize']['import'](_0x1a57('0x18'));db[_0x1a57('0x19')]=db[_0x1a57('0x1')]['import']('../api/voiceQueue/voiceQueue.model');db['VoiceRecording']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x1a'));db[_0x1a57('0x1b')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x1c'));db[_0x1a57('0x1d')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x1e'));db[_0x1a57('0x1f')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x20'));db[_0x1a57('0x21')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x22'));db[_0x1a57('0x23')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/voiceDialReport/voiceDialReport.model');db['VoiceAgentReport']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/voiceAgentReport/voiceAgentReport.model');db[_0x1a57('0x24')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x25'));db['MemberReport']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x26'));db[_0x1a57('0x27')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x28'));db[_0x1a57('0x29')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x2a'));db[_0x1a57('0x2b')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x2c'));db[_0x1a57('0x2d')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x2e'));db['UserChatQueue']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/userChatQueue/userChatQueue.model');db['UserMailQueue']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x2f'));db[_0x1a57('0x30')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x31'));db[_0x1a57('0x32')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x33'));db[_0x1a57('0x34')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x35'));db[_0x1a57('0x36')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/userWhatsappQueue/userWhatsappQueue.model');db[_0x1a57('0x37')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x38'));db[_0x1a57('0x39')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x3a'));db[_0x1a57('0x3b')]=db['sequelize']['import']('../api/mailAccount/mailAccount.model');db['MailQueue']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x3c'));db['MailSubstatus']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x3d'));db[_0x1a57('0x3e')]=db['sequelize'][_0x1a57('0x13')]('../api/mailInteraction/mailInteraction.model');db[_0x1a57('0x3f')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/mailMessage/mailMessage.model');db[_0x1a57('0x40')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x41'));db[_0x1a57('0x42')]=db['sequelize'][_0x1a57('0x13')]('../api/mailQueueReport/mailQueueReport.model');db['Dashboard']=db[_0x1a57('0x1')]['import'](_0x1a57('0x43'));db[_0x1a57('0x44')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x45'));db[_0x1a57('0x46')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/faxAccount/faxAccount.model');db[_0x1a57('0x47')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x48'));db['FaxInteraction']=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x49'));db[_0x1a57('0x4a')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x4b'));db[_0x1a57('0x4c')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x4d'));db['FaxQueueReport']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x4e'));db[_0x1a57('0x4f')]=db['sequelize'][_0x1a57('0x13')]('../api/smsAccount/smsAccount.model');db[_0x1a57('0x50')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x51'));db[_0x1a57('0x52')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x53'));db[_0x1a57('0x54')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x55'));db[_0x1a57('0x56')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x57'));db[_0x1a57('0x58')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x59'));db[_0x1a57('0x5a')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x5b'));db[_0x1a57('0x5c')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x5d'));db['OpenchannelMessage']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/openchannelMessage/openchannelMessage.model');db[_0x1a57('0x5e')]=db[_0x1a57('0x1')]['import']('../api/openchannelQueue/openchannelQueue.model');db['ChatWebsite']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/chatWebsite/chatWebsite.model');db[_0x1a57('0x5f')]=db[_0x1a57('0x1')]['import']('../api/openchannelQueueReport/openchannelQueueReport.model');db['ChatApplication']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x60'));db[_0x1a57('0x61')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x62'));db[_0x1a57('0x63')]=db['sequelize']['import']('../api/chatMessage/chatMessage.model');db['ChatOfflineMessage']=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x64'));db[_0x1a57('0x65')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x66'));db[_0x1a57('0x67')]=db[_0x1a57('0x1')]['import']('../api/chatGroup/chatGroup.model');db['ChatProactiveAction']=db[_0x1a57('0x1')]['import'](_0x1a57('0x68'));db[_0x1a57('0x69')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x6a'));db[_0x1a57('0x6b')]=db[_0x1a57('0x1')]['import']('../api/cmContact/cmContact.model');db['CmHopper']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x6c'));db[_0x1a57('0x6d')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x6e'));db['CmHopperFinal']=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x6f'));db[_0x1a57('0x70')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x71'));db['ReportAgentPreview']=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x72'));db['CmCustomField']=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x73'));db[_0x1a57('0x74')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x75'));db[_0x1a57('0x76')]=db['sequelize']['import'](_0x1a57('0x77'));db[_0x1a57('0x78')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/cannedAnswer/cannedAnswer.model');db[_0x1a57('0x79')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x7a'));db[_0x1a57('0x7b')]=db['sequelize']['import']('../api/condition/condition.model');db[_0x1a57('0x7c')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x7d'));db[_0x1a57('0x7e')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x7f'));db['Cdr']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/cdr/cdr.model');db['VoiceQueuesLog']=db[_0x1a57('0x1')]['import'](_0x1a57('0x80'));db[_0x1a57('0x81')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x82'));db[_0x1a57('0x83')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/sound/sound.model');db[_0x1a57('0x84')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x85'));db[_0x1a57('0x86')]=db[_0x1a57('0x1')]['import']('../api/template/template.model');db[_0x1a57('0x87')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x88'));db['Variable']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x89'));db[_0x1a57('0x8a')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x8b'));db[_0x1a57('0x8c')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x8d'));db[_0x1a57('0x8e')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x8f'));db[_0x1a57('0x90')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x91'));db[_0x1a57('0x92')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x93'));db['AnalyticMetric']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x94'));db[_0x1a57('0x95')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x96'));db[_0x1a57('0x97')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x98'));db['SalesforceAccount']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x99'));db[_0x1a57('0x9a')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x9b'));db[_0x1a57('0x9c')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x9d'));db[_0x1a57('0x9e')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x9f'));db['SugarcrmConfiguration']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xa0'));db[_0x1a57('0xa1')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xa2'));db[_0x1a57('0xa3')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xa4'));db[_0x1a57('0xa5')]=db[_0x1a57('0x1')]['import']('../api/intDeskConfiguration/intDeskConfiguration.model');db['DeskField']=db['sequelize']['import'](_0x1a57('0xa6'));db[_0x1a57('0xa7')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xa8'));db['ZohoConfiguration']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xa9'));db[_0x1a57('0xaa')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xab'));db['ZendeskAccount']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xac'));db[_0x1a57('0xad')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xae'));db['ZendeskField']=db[_0x1a57('0x1')]['import'](_0x1a57('0xaf'));db[_0x1a57('0xb0')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/intFreshdeskAccount/intFreshdeskAccount.model');db[_0x1a57('0xb1')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model');db[_0x1a57('0xb2')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/intFreshdeskField/intFreshdeskField.model');db[_0x1a57('0xb3')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xb4'));db[_0x1a57('0xb5')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xb6'));db[_0x1a57('0xb7')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/intVtigerField/intVtigerField.model');db[_0x1a57('0xb8')]=db['sequelize'][_0x1a57('0x13')]('../api/intServicenowAccount/intServicenowAccount.model');db['ServicenowConfiguration']=db['sequelize']['import'](_0x1a57('0xb9'));db[_0x1a57('0xba')]=db[_0x1a57('0x1')]['import'](_0x1a57('0xbb'));db['Dynamics365Account']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xbc'));db[_0x1a57('0xbd')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/intDynamics365Configuration/intDynamics365Configuration.model');db['Dynamics365Field']=db[_0x1a57('0x1')]['import'](_0x1a57('0xbe'));db[_0x1a57('0xbf')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xc0'));db['FreshsalesConfiguration']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model');db['FreshsalesField']=db[_0x1a57('0x1')]['import'](_0x1a57('0xc1'));db[_0x1a57('0x8a')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0x8b'));db[_0x1a57('0xc2')]=db[_0x1a57('0x1')]['import'](_0x1a57('0xc3'));db[_0x1a57('0xc4')]=db[_0x1a57('0x1')]['import']('../api/chatQueueReport/chatQueueReport.model');db['ChatInternalMessage']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/chatInternalMessage/chatInternalMessage.model');db['JscriptyAnswerReport']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xc5'));db['JscriptyQuestionReport']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xc6'));db[_0x1a57('0xc7')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xc8'));db[_0x1a57('0xc9')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xca'));db[_0x1a57('0xcb')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/squareReport/squareReport.model');db[_0x1a57('0xcc')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xcd'));db[_0x1a57('0xce')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xcf'));db[_0x1a57('0xd0')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xd1'));db[_0x1a57('0xd2')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xd3'));db[_0x1a57('0xd4')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xd5'));db['SquareRecording']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xd6'));db[_0x1a57('0xd7')]=db[_0x1a57('0x1')]['import'](_0x1a57('0xd8'));db[_0x1a57('0xd9')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xda'));db[_0x1a57('0xdb')]=db[_0x1a57('0x1')]['import']('../api/license/license.model');db[_0x1a57('0xdc')]=db[_0x1a57('0x1')]['import'](_0x1a57('0xdd'));db[_0x1a57('0xde')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xdf'));db[_0x1a57('0xe0')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xe1'));db[_0x1a57('0xe2')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/plugin/plugin.model');db[_0x1a57('0xe3')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xe4'));db[_0x1a57('0xe5')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xe6'));db[_0x1a57('0xe7')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xe8'));db[_0x1a57('0xe9')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xea'));db[_0x1a57('0xeb')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xec'));db[_0x1a57('0xed')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xee'));db[_0x1a57('0xef')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xf0'));db[_0x1a57('0xf1')]=db['sequelize']['import'](_0x1a57('0xf2'));db['UserProfileSection']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xf3'));db[_0x1a57('0xf4')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xf5'));db[_0x1a57('0xf6')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xf7'));db[_0x1a57('0xf8')]=db[_0x1a57('0x1')]['import']('../api/whatsappAccount/whatsappAccount.model');db[_0x1a57('0xf9')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0xfa'));db['WhatsappInteraction']=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xfb'));db[_0x1a57('0xfc')]=db[_0x1a57('0x1')][_0x1a57('0x13')](_0x1a57('0xfd'));db['WhatsappQueueReport']=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/whatsappQueueReport/whatsappQueueReport.model');db[_0x1a57('0xfe')]=db[_0x1a57('0x1')][_0x1a57('0x13')]('../api/whatsappTransferReport/whatsappTransferReport.model');db[_0x1a57('0xff')]=db['sequelize']['import'](_0x1a57('0x100'));db['CloudProvider']=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x101'));db[_0x1a57('0x102')]=db[_0x1a57('0x1')]['import'](_0x1a57('0x103'));db[_0x1a57('0x104')]=db['sequelize'][_0x1a57('0x13')](_0x1a57('0x105'));db[_0x1a57('0x106')]=db[_0x1a57('0x1')]['import']('../api/userVoicePrefix/userVoicePrefix.model');db[_0x1a57('0x107')][_0x1a57('0x108')](db[_0x1a57('0x1d')],{'as':_0x1a57('0x1d'),'onDelete':'cascade','foreignKey':'UserId'});db[_0x1a57('0x107')]['hasMany'](db['VoiceRecording'],{'as':_0x1a57('0x109'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')][_0x1a57('0x10b')](db[_0x1a57('0x2b')],{'as':_0x1a57('0x10c'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')][_0x1a57('0x10b')](db[_0x1a57('0x15')],{'as':_0x1a57('0x10d'),'onDelete':_0x1a57('0x10e'),'hooks':!![]});db[_0x1a57('0x107')]['hasMany'](db[_0x1a57('0x10f')],{'as':_0x1a57('0x110'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')][_0x1a57('0x10b')](db[_0x1a57('0x70')],{'as':_0x1a57('0x111'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')][_0x1a57('0x10b')](db['ReportAgentPreview'],{'as':_0x1a57('0x112'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')][_0x1a57('0x10b')](db[_0x1a57('0x5c')],{'as':_0x1a57('0x113'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')]['hasMany'](db[_0x1a57('0x61')],{'as':_0x1a57('0x114'),'foreignKey':'UserId'});db[_0x1a57('0x107')][_0x1a57('0x10b')](db[_0x1a57('0x52')],{'as':'SmsInteractions','foreignKey':_0x1a57('0x10a')});db['User'][_0x1a57('0x10b')](db[_0x1a57('0x115')],{'as':_0x1a57('0x116'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')]['hasMany'](db[_0x1a57('0x3e')],{'as':_0x1a57('0x117'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')][_0x1a57('0x10b')](db[_0x1a57('0x118')],{'as':_0x1a57('0x119'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x107')][_0x1a57('0x10b')](db[_0x1a57('0xf6')],{'as':_0x1a57('0x11a'),'foreignKey':'SenderId'});db['User'][_0x1a57('0x11b')](db['UserProfile'],{'as':_0x1a57('0xf1'),'foreignKey':_0x1a57('0x11c')});db['User'][_0x1a57('0x11d')](db[_0x1a57('0x67')],{'as':'Groups','through':_0x1a57('0x11e')});db['User'][_0x1a57('0x11d')](db[_0x1a57('0x6b')],{'as':_0x1a57('0x11f'),'through':'cm_user_has_contacts'});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0xed')],{'as':_0x1a57('0x120'),'through':'cm_user_has_lists'});db[_0x1a57('0x107')][_0x1a57('0x11d')](db['Team'],{'through':_0x1a57('0x121')});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x3e')],{'as':'MailInteractions','through':_0x1a57('0x122')});db[_0x1a57('0x107')][_0x1a57('0x11d')](db['ChatInteraction'],{'as':_0x1a57('0x114'),'through':_0x1a57('0x123')});db[_0x1a57('0x107')]['belongsToMany'](db['FaxInteraction'],{'as':_0x1a57('0x116'),'through':_0x1a57('0x124')});db[_0x1a57('0x107')]['belongsToMany'](db[_0x1a57('0x52')],{'as':'SmsInteractions','through':_0x1a57('0x125')});db['User']['belongsToMany'](db[_0x1a57('0x5c')],{'as':_0x1a57('0x113'),'through':_0x1a57('0x126')});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x118')],{'as':_0x1a57('0x119'),'through':_0x1a57('0x127')});db['User']['belongsToMany'](db['VoiceQueue'],{'as':_0x1a57('0x128'),'through':'UserVoiceQueue','required':![]});db[_0x1a57('0x107')]['belongsToMany'](db[_0x1a57('0xef')],{'as':_0x1a57('0x129'),'through':_0x1a57('0x106'),'required':![]});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x12a')],{'as':'MailQueues','through':_0x1a57('0x12b'),'required':![]});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x65')],{'as':_0x1a57('0x12c'),'through':'UserChatQueue','required':![],'hooks':!![]});db[_0x1a57('0x107')]['belongsToMany'](db[_0x1a57('0x4c')],{'as':_0x1a57('0x12d'),'through':_0x1a57('0x30'),'required':![]});db[_0x1a57('0x107')]['belongsToMany'](db[_0x1a57('0x56')],{'as':'SmsQueues','through':'UserSmsQueue','required':![]});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x5e')],{'as':_0x1a57('0x12e'),'through':'UserOpenchannelQueue','required':![]});db['User'][_0x1a57('0x11d')](db[_0x1a57('0xff')],{'as':'WhatsappQueues','through':_0x1a57('0x36'),'required':![]});db['User'][_0x1a57('0x11d')](db[_0x1a57('0xed')],{'through':_0x1a57('0x12f')});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x130')],{'as':_0x1a57('0x131'),'through':_0x1a57('0x132')});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x46')],{'as':_0x1a57('0x133'),'through':_0x1a57('0x134')});db[_0x1a57('0x107')][_0x1a57('0x11d')](db['MailAccount'],{'as':'MailAccounts','through':'user_has_mail_accounts'});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x58')],{'as':'OpenchannelAccounts','through':'user_has_openchannel_accounts'});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0x4f')],{'as':_0x1a57('0x135'),'through':_0x1a57('0x136')});db['User'][_0x1a57('0x11d')](db[_0x1a57('0xf8')],{'as':_0x1a57('0x137'),'through':_0x1a57('0x138')});db[_0x1a57('0x107')][_0x1a57('0x11d')](db[_0x1a57('0xd4')],{'as':_0x1a57('0x139'),'through':'user_has_square_projects'});db['VoiceChanSpy']['hasMany'](db[_0x1a57('0x15')],{'as':_0x1a57('0x13a'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x13b')});db[_0x1a57('0x14')][_0x1a57('0x10b')](db[_0x1a57('0x15')],{'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x15')]['hasMany'](db[_0x1a57('0x15')],{'as':_0x1a57('0x13c'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x17')]['belongsToMany'](db[_0x1a57('0x83')],{'as':_0x1a57('0x13d'),'through':'moh_has_sounds'});db[_0x1a57('0x19')][_0x1a57('0x10b')](db[_0x1a57('0x2b')],{'as':'Members','foreignKey':'VoiceQueueId'});db[_0x1a57('0x19')][_0x1a57('0x10b')](db[_0x1a57('0x13e')],{'as':_0x1a57('0x13f'),'foreignKey':_0x1a57('0x140')});db[_0x1a57('0x19')][_0x1a57('0x10b')](db['CmHopperFinal'],{'as':_0x1a57('0x110'),'foreignKey':_0x1a57('0x140')});db[_0x1a57('0x19')][_0x1a57('0x10b')](db[_0x1a57('0x70')],{'as':'HopperHistories','foreignKey':'VoiceQueueId'});db[_0x1a57('0x19')][_0x1a57('0x10b')](db[_0x1a57('0x112')],{'as':_0x1a57('0x112'),'foreignKey':_0x1a57('0x140')});db['VoiceQueue'][_0x1a57('0x10b')](db[_0x1a57('0x6d')],{'as':_0x1a57('0x141'),'foreignKey':_0x1a57('0x140')});db[_0x1a57('0x19')][_0x1a57('0x10b')](db[_0x1a57('0xc7')],{'as':_0x1a57('0x142'),'foreignKey':'VoiceQueueId'});db['VoiceQueue'][_0x1a57('0x11b')](db[_0x1a57('0x27')],{'as':_0x1a57('0x27'),'foreignKey':_0x1a57('0x143')});db[_0x1a57('0x19')]['belongsTo'](db['Trunk'],{'as':_0x1a57('0x144'),'foreignKey':_0x1a57('0x145')});db[_0x1a57('0x19')][_0x1a57('0x11b')](db['Interval'],{'as':'Interval','foreignKey':_0x1a57('0x146')});db[_0x1a57('0x19')][_0x1a57('0x11b')](db[_0x1a57('0x7e')],{'as':_0x1a57('0x147'),'foreignKey':_0x1a57('0x148')});db[_0x1a57('0x19')]['belongsToMany'](db[_0x1a57('0xed')],{'as':'Lists','through':_0x1a57('0x149')});db[_0x1a57('0x19')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x2d')});db['VoiceQueue'][_0x1a57('0x11d')](db['Team'],{'as':_0x1a57('0x14b'),'through':'TeamVoiceQueue'});db[_0x1a57('0x19')][_0x1a57('0x11d')](db['CmList'],{'as':_0x1a57('0x14c'),'through':_0x1a57('0x14d')});db[_0x1a57('0x14e')][_0x1a57('0x11b')](db['User'],{'as':_0x1a57('0x107'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x1b')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':'User','foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x1d')][_0x1a57('0x10b')](db[_0x1a57('0x1f')],{'as':_0x1a57('0x14f'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x150'),'sourceKey':_0x1a57('0x151')});db[_0x1a57('0x1f')]['belongsTo'](db[_0x1a57('0x1d')],{'foreignKey':'mailboxuser','targetKey':_0x1a57('0x151')});db[_0x1a57('0x21')]['hasMany'](db[_0x1a57('0x24')],{'as':_0x1a57('0x152'),'foreignKey':_0x1a57('0x153'),'constraints':![]});db[_0x1a57('0x21')]['hasMany'](db[_0x1a57('0x154')],{'as':_0x1a57('0x155'),'foreignKey':'uniqueid','constraints':![]});db[_0x1a57('0x21')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':_0x1a57('0x107'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x21')][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':'Contact','foreignKey':_0x1a57('0x156')});db['MailServerIn'][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{'as':_0x1a57('0x3b'),'foreignKey':_0x1a57('0x157')});db[_0x1a57('0x39')][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{'as':_0x1a57('0x3b'),'foreignKey':'MailAccountId'});db[_0x1a57('0x3b')][_0x1a57('0x108')](db[_0x1a57('0x37')],{'as':_0x1a57('0x158'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x3b')]['hasOne'](db[_0x1a57('0x39')],{'as':_0x1a57('0x159'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x3b')]['hasMany'](db[_0x1a57('0x79')],{'as':_0x1a57('0x15a'),'foreignKey':'MailAccountId','onDelete':_0x1a57('0x10e')});db['MailAccount']['hasMany'](db[_0x1a57('0x78')],{'as':_0x1a57('0x15b'),'foreignKey':'MailAccountId'});db[_0x1a57('0x3b')][_0x1a57('0x10b')](db[_0x1a57('0x3f')],{'as':_0x1a57('0x14f'),'foreignKey':_0x1a57('0x157')});db[_0x1a57('0x3b')][_0x1a57('0x10b')](db[_0x1a57('0x3e')],{'as':_0x1a57('0x15c')});db['MailAccount'][_0x1a57('0x10b')](db[_0x1a57('0x40')],{'as':_0x1a57('0x13c')});db[_0x1a57('0x3b')][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':'ListId'});db[_0x1a57('0x3b')][_0x1a57('0x11b')](db[_0x1a57('0x86')],{'as':'Template','foreignKey':_0x1a57('0x15e')});db[_0x1a57('0x3b')][_0x1a57('0x11b')](db['Pause'],{'as':_0x1a57('0x147'),'foreignKey':'mandatoryDispositionPauseId'});db['MailAccount']['belongsToMany'](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x15f')});db[_0x1a57('0x12a')]['belongsToMany'](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x12b')});db['MailQueue'][_0x1a57('0x11d')](db[_0x1a57('0xd9')],{'through':_0x1a57('0x160'),'as':_0x1a57('0x14b')});db['MailInteraction'][_0x1a57('0x10b')](db[_0x1a57('0x3f')],{'as':_0x1a57('0x14f'),'onDelete':'cascade','foreignKey':_0x1a57('0x161')});db[_0x1a57('0x3e')][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x157')});db[_0x1a57('0x3e')][_0x1a57('0x11b')](db['CmContact'],{'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x3e')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':'Owner','foreignKey':_0x1a57('0x10a')});db['MailInteraction'][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':_0x1a57('0x164'),'as':_0x1a57('0x165')});db[_0x1a57('0x3e')]['belongsToMany'](db['Tag'],{'through':_0x1a57('0x164'),'as':_0x1a57('0x166')});db['MailInteraction'][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x167'),'through':'user_has_mail_interactions','foreignKey':'MailInteractionId'});db['MailMessage'][_0x1a57('0x10b')](db['Attachment'],{'as':_0x1a57('0x168'),'onDelete':'cascade'});db[_0x1a57('0x3f')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':'User'});db['MailMessage'][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x163')});db['MailMessage']['belongsTo'](db[_0x1a57('0x3e')],{'as':_0x1a57('0x169'),'foreignKey':'MailInteractionId'});db[_0x1a57('0x3f')][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x157')});db['MailMessage']['belongsTo'](db[_0x1a57('0x130')],{'as':_0x1a57('0x130'),'foreignKey':'ChatWebsiteId'});db[_0x1a57('0x3f')]['belongsTo'](db['ChatOfflineMessage'],{'as':_0x1a57('0x16a'),'foreignKey':_0x1a57('0x16b')});db[_0x1a57('0x40')][_0x1a57('0x11b')](db['User'],{'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x40')][_0x1a57('0x11b')](db[_0x1a57('0x12a')],{'onDelete':'restrict'});db[_0x1a57('0x40')][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x40')][_0x1a57('0x11b')](db[_0x1a57('0x7c')],{'onDelete':'restrict','foreignKey':_0x1a57('0x146')});db[_0x1a57('0x40')][_0x1a57('0x11b')](db[_0x1a57('0x84')],{'onDelete':'restrict','foreignKey':'TagId'});db[_0x1a57('0x42')][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{});db[_0x1a57('0x42')][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d')});db['MailQueueReport']['belongsTo'](db['CmContact'],{'as':'Contact','foreignKey':_0x1a57('0x156')});db[_0x1a57('0x42')]['belongsTo'](db[_0x1a57('0x3e')],{});db[_0x1a57('0x42')][_0x1a57('0x11b')](db[_0x1a57('0x3f')],{});db[_0x1a57('0x42')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{});db[_0x1a57('0x42')][_0x1a57('0x11b')](db[_0x1a57('0x12a')],{});db[_0x1a57('0x16e')][_0x1a57('0x10b')](db[_0x1a57('0x44')],{'as':_0x1a57('0x16f'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x46')][_0x1a57('0x10b')](db['Disposition'],{'as':_0x1a57('0x15a'),'foreignKey':_0x1a57('0x170'),'onDelete':_0x1a57('0x10e')});db['FaxAccount']['hasMany'](db[_0x1a57('0x78')],{'as':_0x1a57('0x15b'),'foreignKey':_0x1a57('0x170')});db[_0x1a57('0x46')][_0x1a57('0x10b')](db['FaxInteraction'],{'as':_0x1a57('0x15c')});db[_0x1a57('0x46')][_0x1a57('0x10b')](db['FaxApplication'],{'as':'Applications'});db[_0x1a57('0x46')][_0x1a57('0x10b')](db[_0x1a57('0x15')],{'as':_0x1a57('0x171'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x46')][_0x1a57('0x10b')](db[_0x1a57('0x4a')],{'as':_0x1a57('0x14f')});db['FaxAccount']['belongsTo'](db['Trunk'],{'as':_0x1a57('0x27')});db[_0x1a57('0x46')][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d')});db[_0x1a57('0x46')][_0x1a57('0x11b')](db[_0x1a57('0x7e')],{'as':_0x1a57('0x147'),'foreignKey':_0x1a57('0x148')});db[_0x1a57('0x46')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x134')});db[_0x1a57('0x47')]['belongsTo'](db[_0x1a57('0x107')],{'onDelete':_0x1a57('0x16c')});db['FaxApplication'][_0x1a57('0x11b')](db[_0x1a57('0x4c')],{'onDelete':'restrict'});db[_0x1a57('0x47')]['belongsTo'](db[_0x1a57('0x46')],{'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x47')][_0x1a57('0x11b')](db['Tag'],{'onDelete':_0x1a57('0x16c'),'foreignKey':_0x1a57('0x172')});db[_0x1a57('0x115')]['hasMany'](db[_0x1a57('0x4a')],{'as':_0x1a57('0x14f'),'onDelete':'cascade','foreignKey':_0x1a57('0x173')});db[_0x1a57('0x115')][_0x1a57('0x11b')](db['FaxAccount'],{'as':'Account','foreignKey':_0x1a57('0x170')});db['FaxInteraction'][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x115')]['belongsTo'](db[_0x1a57('0x107')],{'as':_0x1a57('0x174'),'foreignKey':_0x1a57('0x10a')});db['FaxInteraction'][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':_0x1a57('0x175'),'as':_0x1a57('0x165')});db['FaxInteraction'][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':_0x1a57('0x175'),'as':_0x1a57('0x166')});db[_0x1a57('0x115')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':'Users','through':_0x1a57('0x124'),'foreignKey':'FaxInteractionId'});db[_0x1a57('0x4a')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x107')});db[_0x1a57('0x4a')][_0x1a57('0x11b')](db[_0x1a57('0x115')],{'as':'Interaction','foreignKey':_0x1a57('0x173')});db[_0x1a57('0x4a')][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x163')});db[_0x1a57('0x4a')][_0x1a57('0x11b')](db[_0x1a57('0xe0')],{'as':_0x1a57('0xe0'),'foreignKey':_0x1a57('0x176')});db[_0x1a57('0x4a')][_0x1a57('0x11b')](db['FaxAccount'],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x170')});db['FaxQueue'][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':'UserFaxQueue'});db[_0x1a57('0x4c')][_0x1a57('0x11d')](db[_0x1a57('0xd9')],{'through':_0x1a57('0x177'),'as':_0x1a57('0x14b')});db[_0x1a57('0x178')][_0x1a57('0x11b')](db['FaxAccount'],{});db[_0x1a57('0x178')]['belongsTo'](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':'ListId'});db['FaxQueueReport'][_0x1a57('0x11b')](db['CmContact'],{'as':'Contact','foreignKey':_0x1a57('0x156')});db[_0x1a57('0x178')][_0x1a57('0x11b')](db[_0x1a57('0x115')],{});db['FaxQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0x4a')],{});db[_0x1a57('0x178')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{});db[_0x1a57('0x178')][_0x1a57('0x11b')](db[_0x1a57('0x4c')],{});db[_0x1a57('0x4f')]['hasMany'](db['Disposition'],{'as':'Dispositions','foreignKey':_0x1a57('0x179'),'onDelete':_0x1a57('0x10e')});db['SmsAccount'][_0x1a57('0x10b')](db[_0x1a57('0x78')],{'as':_0x1a57('0x15b'),'foreignKey':_0x1a57('0x179')});db[_0x1a57('0x4f')][_0x1a57('0x10b')](db[_0x1a57('0x54')],{'as':'Messages','foreignKey':_0x1a57('0x179')});db['SmsAccount']['hasMany'](db['SmsInteraction'],{'as':_0x1a57('0x15c')});db[_0x1a57('0x4f')][_0x1a57('0x10b')](db['SmsApplication'],{'as':_0x1a57('0x13c')});db[_0x1a57('0x4f')][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':'List','foreignKey':_0x1a57('0x16d')});db['SmsAccount']['belongsTo'](db['Pause'],{'as':_0x1a57('0x147'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x1a57('0x4f')]['belongsToMany'](db['User'],{'as':'Agents','through':'user_has_sms_accounts'});db[_0x1a57('0x50')]['belongsTo'](db[_0x1a57('0x107')],{'onDelete':'restrict'});db[_0x1a57('0x50')][_0x1a57('0x11b')](db['SmsQueue'],{'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x50')][_0x1a57('0x11b')](db[_0x1a57('0x4f')],{'onDelete':'restrict'});db[_0x1a57('0x50')]['belongsTo'](db['Interval'],{'onDelete':_0x1a57('0x16c'),'foreignKey':'IntervalId'});db[_0x1a57('0x50')][_0x1a57('0x11b')](db['Tag'],{'onDelete':_0x1a57('0x16c'),'foreignKey':_0x1a57('0x172')});db[_0x1a57('0x52')][_0x1a57('0x10b')](db[_0x1a57('0x54')],{'as':_0x1a57('0x14f'),'onDelete':'cascade','foreignKey':'SmsInteractionId'});db[_0x1a57('0x52')][_0x1a57('0x11b')](db[_0x1a57('0x4f')],{'as':'Account','foreignKey':_0x1a57('0x179')});db['SmsInteraction'][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x52')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':_0x1a57('0x174'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x52')]['belongsToMany'](db[_0x1a57('0x84')],{'through':'sms_interaction_has_tags','as':_0x1a57('0x165')});db[_0x1a57('0x52')][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':_0x1a57('0x17a'),'as':_0x1a57('0x166')});db[_0x1a57('0x52')][_0x1a57('0x11d')](db['User'],{'as':_0x1a57('0x167'),'through':_0x1a57('0x125'),'foreignKey':_0x1a57('0x17b')});db['SmsMessage'][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':_0x1a57('0x107')});db[_0x1a57('0x54')][_0x1a57('0x11b')](db['CmContact'],{'onDelete':_0x1a57('0x10e'),'as':'Contact'});db[_0x1a57('0x54')][_0x1a57('0x11b')](db['SmsInteraction'],{'onDelete':'cascade','as':_0x1a57('0x169'),'foreignKey':'SmsInteractionId'});db[_0x1a57('0x54')]['belongsTo'](db[_0x1a57('0x4f')],{'as':'Account','foreignKey':'SmsAccountId'});db['SmsQueue'][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x32'),'foreignKey':'SmsQueueId'});db[_0x1a57('0x56')]['belongsToMany'](db[_0x1a57('0xd9')],{'through':_0x1a57('0x17c'),'as':_0x1a57('0x14b')});db[_0x1a57('0x58')][_0x1a57('0x10b')](db[_0x1a57('0x79')],{'as':_0x1a57('0x15a'),'foreignKey':_0x1a57('0x17d'),'onDelete':'cascade'});db[_0x1a57('0x58')]['hasMany'](db[_0x1a57('0x78')],{'as':_0x1a57('0x15b'),'foreignKey':'OpenchannelAccountId'});db[_0x1a57('0x58')][_0x1a57('0x10b')](db[_0x1a57('0x5c')],{'as':_0x1a57('0x15c'),'foreignKey':_0x1a57('0x17d')});db[_0x1a57('0x58')][_0x1a57('0x10b')](db[_0x1a57('0x17e')],{'as':_0x1a57('0x14f'),'foreignKey':_0x1a57('0x17d')});db[_0x1a57('0x58')][_0x1a57('0x10b')](db[_0x1a57('0x5a')],{'as':'Applications','foreignKey':_0x1a57('0x17d')});db['OpenchannelAccount'][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d')});db[_0x1a57('0x58')][_0x1a57('0x11b')](db[_0x1a57('0x7e')],{'as':_0x1a57('0x147'),'foreignKey':_0x1a57('0x148')});db['OpenchannelAccount'][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':'user_has_openchannel_accounts'});db[_0x1a57('0x5a')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x5a')][_0x1a57('0x11b')](db[_0x1a57('0x5e')],{'onDelete':_0x1a57('0x16c'),'foreignKey':_0x1a57('0x17f')});db['OpenchannelApplication'][_0x1a57('0x11b')](db[_0x1a57('0x58')],{'onDelete':'restrict','foreignKey':_0x1a57('0x17d')});db[_0x1a57('0x5a')][_0x1a57('0x11b')](db['Interval'],{'onDelete':_0x1a57('0x16c'),'foreignKey':'IntervalId'});db[_0x1a57('0x5a')][_0x1a57('0x11b')](db[_0x1a57('0x84')],{'onDelete':_0x1a57('0x16c'),'foreignKey':_0x1a57('0x172')});db[_0x1a57('0x5c')]['hasMany'](db[_0x1a57('0x17e')],{'as':'Messages','onDelete':_0x1a57('0x10e'),'foreignKey':'OpenchannelInteractionId'});db[_0x1a57('0x5c')]['belongsTo'](db[_0x1a57('0x58')],{'as':_0x1a57('0x162'),'foreignKey':'OpenchannelAccountId'});db['OpenchannelInteraction'][_0x1a57('0x11b')](db['CmContact'],{'as':'Contact','foreignKey':_0x1a57('0x156')});db[_0x1a57('0x5c')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':_0x1a57('0x174'),'foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x5c')][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':_0x1a57('0x180'),'as':_0x1a57('0x165')});db[_0x1a57('0x5c')][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':'openchannel_interaction_has_tags','as':_0x1a57('0x166')});db[_0x1a57('0x5c')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':'Users','through':_0x1a57('0x126'),'foreignKey':'OpenchannelInteractionId'});db[_0x1a57('0x17e')][_0x1a57('0x11b')](db['User'],{'onDelete':'cascade','as':_0x1a57('0x107')});db[_0x1a57('0x17e')]['belongsTo'](db[_0x1a57('0x6b')],{'onDelete':'cascade','as':_0x1a57('0x163')});db[_0x1a57('0x17e')][_0x1a57('0x11b')](db['OpenchannelInteraction'],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x169'),'foreignKey':_0x1a57('0x181')});db[_0x1a57('0x17e')][_0x1a57('0x11b')](db[_0x1a57('0xe0')],{'as':_0x1a57('0xe0'),'foreignKey':'AttachmentId'});db[_0x1a57('0x17e')]['belongsTo'](db[_0x1a57('0x58')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x17d')});db[_0x1a57('0x5e')][_0x1a57('0x11d')](db['User'],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x34'),'foreignKey':_0x1a57('0x17f')});db[_0x1a57('0x5e')]['belongsToMany'](db['Team'],{'through':'team_has_openchannel_queues','as':_0x1a57('0x14b')});db[_0x1a57('0x130')][_0x1a57('0x10b')](db[_0x1a57('0x79')],{'as':'Dispositions','foreignKey':_0x1a57('0x182'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x130')][_0x1a57('0x10b')](db['CannedAnswer'],{'as':_0x1a57('0x15b'),'foreignKey':_0x1a57('0x182')});db['ChatWebsite'][_0x1a57('0x10b')](db['ChatProactiveAction'],{'as':_0x1a57('0x183')});db[_0x1a57('0x130')]['hasMany'](db[_0x1a57('0x61')],{'as':_0x1a57('0x15c')});db[_0x1a57('0x130')]['hasMany'](db[_0x1a57('0x184')],{'as':_0x1a57('0x13c')});db[_0x1a57('0x130')]['hasMany'](db['ChatMessage'],{'as':_0x1a57('0x14f')});db[_0x1a57('0x130')][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':'ListId'});db[_0x1a57('0x130')][_0x1a57('0x11b')](db[_0x1a57('0x7c')],{'as':_0x1a57('0x7c'),'foreignKey':_0x1a57('0x146')});db[_0x1a57('0x130')][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{'as':'MailAccount','foreignKey':_0x1a57('0x157')});db[_0x1a57('0x130')][_0x1a57('0x11b')](db['Pause'],{'as':'mandatoryDispositionPause','foreignKey':_0x1a57('0x148')});db['ChatWebsite']['belongsToMany'](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':'user_has_chat_websites'});db['OpenchannelQueueReport']['belongsTo'](db[_0x1a57('0x58')],{});db['OpenchannelQueueReport']['belongsTo'](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d')});db[_0x1a57('0x5f')][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x5f')][_0x1a57('0x11b')](db[_0x1a57('0x5c')],{});db['OpenchannelQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0x17e')],{});db[_0x1a57('0x5f')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{});db['OpenchannelQueueReport'][_0x1a57('0x11b')](db['OpenchannelQueue'],{});db[_0x1a57('0x184')]['belongsTo'](db[_0x1a57('0x107')],{'as':_0x1a57('0x185'),'foreignKey':_0x1a57('0x10a'),'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x184')]['belongsTo'](db[_0x1a57('0x65')],{'as':_0x1a57('0x186'),'foreignKey':_0x1a57('0x187'),'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x184')]['belongsTo'](db[_0x1a57('0x130')],{'as':'Website','foreignKey':'ChatWebsiteId','onDelete':_0x1a57('0x16c')});db['ChatApplication'][_0x1a57('0x11b')](db[_0x1a57('0x84')],{'onDelete':_0x1a57('0x16c'),'foreignKey':_0x1a57('0x172')});db[_0x1a57('0x61')]['hasMany'](db[_0x1a57('0x63')],{'as':_0x1a57('0x14f'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x188')});db['ChatInteraction'][_0x1a57('0x11b')](db[_0x1a57('0x130')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x182')});db[_0x1a57('0x61')]['belongsTo'](db['CmContact'],{'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x61')][_0x1a57('0x11b')](db['User'],{'as':_0x1a57('0x174'),'foreignKey':_0x1a57('0x10a')});db['ChatInteraction'][_0x1a57('0x11d')](db['Tag'],{'through':_0x1a57('0x189'),'as':'Tags'});db['ChatInteraction'][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':'chat_interaction_has_tags','as':_0x1a57('0x166')});db[_0x1a57('0x61')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x167'),'through':'user_has_chat_interactions','foreignKey':_0x1a57('0x188')});db['ChatMessage'][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x107')});db['ChatMessage'][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x63')][_0x1a57('0x11b')](db['ChatInteraction'],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x169'),'foreignKey':_0x1a57('0x188')});db[_0x1a57('0x63')]['belongsTo'](db['Attachment'],{'as':_0x1a57('0xe0'),'foreignKey':_0x1a57('0x176')});db['ChatMessage'][_0x1a57('0x11b')](db[_0x1a57('0x130')],{'as':_0x1a57('0x162'),'foreignKey':'ChatWebsiteId'});db[_0x1a57('0x16a')][_0x1a57('0x10b')](db[_0x1a57('0xe0')],{'as':_0x1a57('0x168'),'foreignKey':_0x1a57('0x16b'),'onDelete':_0x1a57('0x10e'),'hooks':!![]});db['ChatOfflineMessage'][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db['ChatOfflineMessage'][_0x1a57('0x11b')](db['ChatWebsite'],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x182')});db[_0x1a57('0x65')]['belongsToMany'](db['User'],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x18a'),'hooks':!![]});db[_0x1a57('0x65')][_0x1a57('0x11d')](db['Team'],{'through':_0x1a57('0x18b'),'as':_0x1a57('0x14b')});db[_0x1a57('0x67')][_0x1a57('0x10b')](db[_0x1a57('0x18c')],{'as':_0x1a57('0x14f'),'foreignKey':_0x1a57('0x18d'),'onDelete':_0x1a57('0x10e')});db['ChatGroup'][_0x1a57('0x11d')](db['User'],{'as':'Members','through':_0x1a57('0x11e')});db['ChatProactiveAction'][_0x1a57('0x11b')](db[_0x1a57('0x130')],{'as':_0x1a57('0x18e'),'foreignKey':_0x1a57('0x182')});db[_0x1a57('0x69')][_0x1a57('0x10b')](db[_0x1a57('0x6b')],{'as':_0x1a57('0x11f'),'foreignKey':'CompanyId'});db[_0x1a57('0x6b')][_0x1a57('0x10b')](db[_0x1a57('0x13e')],{'as':_0x1a57('0x13f'),'foreignKey':_0x1a57('0x156')});db['CmContact']['hasMany'](db[_0x1a57('0x10f')],{'as':_0x1a57('0x110'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x6b')]['hasMany'](db['CmHopperHistory'],{'as':_0x1a57('0x18f'),'foreignKey':_0x1a57('0x156')});db['CmContact'][_0x1a57('0x10b')](db['ReportAgentPreview'],{'as':_0x1a57('0x112'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x6b')][_0x1a57('0x10b')](db['JscriptySessionReport'],{'as':_0x1a57('0x142'),'foreignKey':'ContactId'});db[_0x1a57('0x6b')][_0x1a57('0x10b')](db[_0x1a57('0x5c')],{'as':_0x1a57('0x113'),'foreignKey':_0x1a57('0x156'),'onDelete':'restrict'});db['CmContact'][_0x1a57('0x10b')](db['ChatInteraction'],{'as':_0x1a57('0x114'),'foreignKey':'ContactId','onDelete':_0x1a57('0x16c')});db['CmContact'][_0x1a57('0x10b')](db[_0x1a57('0x52')],{'as':'SmsInteractions','foreignKey':_0x1a57('0x156'),'onDelete':'restrict'});db[_0x1a57('0x6b')][_0x1a57('0x10b')](db[_0x1a57('0x115')],{'as':'FaxInteractions','foreignKey':_0x1a57('0x156'),'onDelete':_0x1a57('0x16c')});db['CmContact']['hasMany'](db[_0x1a57('0x3e')],{'as':'MailInteractions','foreignKey':_0x1a57('0x156'),'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x6b')][_0x1a57('0x11b')](db[_0x1a57('0x69')],{'as':_0x1a57('0x190'),'foreignKey':'CompanyId'});db['CmContact'][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x6b')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x167'),'through':_0x1a57('0x191')});db['CmContact'][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'as':_0x1a57('0x165'),'through':_0x1a57('0x192')});db[_0x1a57('0x6b')]['belongsToMany'](db[_0x1a57('0x84')],{'through':'cm_contact_has_tags','as':'ThroughTags'});db[_0x1a57('0x13e')][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':_0x1a57('0x163'),'foreignKey':'ContactId','onDelete':_0x1a57('0x10e')});db['CmHopper'][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x13e')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':_0x1a57('0x185'),'foreignKey':_0x1a57('0x10a')});db['CmHopper'][_0x1a57('0x11b')](db[_0x1a57('0x19')],{'as':_0x1a57('0x186'),'foreignKey':_0x1a57('0x140'),'onDelete':'cascade'});db[_0x1a57('0x13e')][_0x1a57('0x11b')](db[_0x1a57('0xdc')],{'as':'Campaign','foreignKey':_0x1a57('0x193'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x13e')][_0x1a57('0x11b')](db['User'],{'as':_0x1a57('0x174'),'foreignKey':_0x1a57('0x194')});db[_0x1a57('0x6d')]['belongsTo'](db[_0x1a57('0x6b')],{'as':_0x1a57('0x163'),'foreignKey':'ContactId','onDelete':_0x1a57('0x10e')});db[_0x1a57('0x6d')][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d'),'onDelete':'cascade'});db['CmHopperBlack'][_0x1a57('0x11b')](db['VoiceQueue'],{'as':_0x1a57('0x186'),'foreignKey':_0x1a57('0x140'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x6d')][_0x1a57('0x11b')](db['Campaign'],{'as':_0x1a57('0xdc'),'foreignKey':_0x1a57('0x193'),'onDelete':_0x1a57('0x10e')});db['Automation'][_0x1a57('0x10b')](db[_0x1a57('0x7b')],{'as':{'plural':_0x1a57('0x195'),'singular':'OneAll'},'foreignKey':'AutomationAllId','onDelete':_0x1a57('0x10e'),'hooks':!![]});db[_0x1a57('0x76')][_0x1a57('0x10b')](db['Condition'],{'as':{'plural':_0x1a57('0x196'),'singular':_0x1a57('0x197')},'foreignKey':_0x1a57('0x198'),'onDelete':'cascade','hooks':!![]});db[_0x1a57('0x76')][_0x1a57('0x10b')](db['Action'],{'as':_0x1a57('0x199'),'foreignKey':'AutomationId','onDelete':_0x1a57('0x10e'),'hooks':!![]});db[_0x1a57('0x79')][_0x1a57('0x10b')](db['Disposition'],{'as':'Dispositions','foreignKey':_0x1a57('0x19a'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x7c')][_0x1a57('0x10b')](db[_0x1a57('0x7c')],{'as':_0x1a57('0x19b'),'foreignKey':_0x1a57('0x146'),'onDelete':'cascade','hooks':!![],'required':![]});db['Interval']['hasMany'](db[_0x1a57('0x15')],{'as':_0x1a57('0x10d'),'foreignKey':_0x1a57('0x146'),'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x7c')]['hasMany'](db['MailApplication'],{'as':_0x1a57('0x19c'),'foreignKey':_0x1a57('0x146')});db[_0x1a57('0x7c')][_0x1a57('0x10b')](db[_0x1a57('0x184')],{'as':'ChatApplications','foreignKey':_0x1a57('0x146')});db[_0x1a57('0x7c')][_0x1a57('0x10b')](db[_0x1a57('0x47')],{'as':_0x1a57('0x19d'),'foreignKey':'IntervalId'});db[_0x1a57('0x7c')]['hasMany'](db[_0x1a57('0x50')],{'as':_0x1a57('0x19e'),'foreignKey':_0x1a57('0x146')});db[_0x1a57('0x81')][_0x1a57('0x11b')](db[_0x1a57('0x3b')],{});db['Schedule'][_0x1a57('0x11b')](db[_0x1a57('0x90')],{'foreignKey':_0x1a57('0x19f')});db[_0x1a57('0x81')][_0x1a57('0x11b')](db[_0x1a57('0x8e')],{'foreignKey':_0x1a57('0x1a0')});db[_0x1a57('0x83')][_0x1a57('0x11d')](db[_0x1a57('0x17')],{'as':'Mohs','through':_0x1a57('0x1a1'),'onDelete':_0x1a57('0x16c')});db[_0x1a57('0x84')]['belongsToMany'](db[_0x1a57('0x6b')],{'through':_0x1a57('0x192')});db[_0x1a57('0x84')][_0x1a57('0x11d')](db[_0x1a57('0x61')],{'through':'chat_interaction_has_tags'});db[_0x1a57('0x84')]['belongsToMany'](db[_0x1a57('0x3e')],{'through':_0x1a57('0x164')});db[_0x1a57('0x84')][_0x1a57('0x11d')](db['SmsInteraction'],{'through':'sms_interaction_has_tags'});db[_0x1a57('0x84')][_0x1a57('0x11d')](db[_0x1a57('0x115')],{'through':_0x1a57('0x175')});db[_0x1a57('0x84')][_0x1a57('0x11d')](db[_0x1a57('0x5c')],{'through':_0x1a57('0x180')});db[_0x1a57('0x84')][_0x1a57('0x11d')](db[_0x1a57('0x118')],{'through':_0x1a57('0x1a2')});db[_0x1a57('0x87')][_0x1a57('0x10b')](db['Condition'],{'as':{'plural':_0x1a57('0x1a3'),'singular':_0x1a57('0x1a4')},'foreignKey':_0x1a57('0x1a5'),'onDelete':_0x1a57('0x10e'),'hooks':!![]});db['Trigger']['hasMany'](db[_0x1a57('0x7b')],{'as':{'plural':_0x1a57('0x1a6'),'singular':_0x1a57('0x1a7')},'foreignKey':_0x1a57('0x1a8'),'onDelete':_0x1a57('0x10e'),'hooks':!![]});db[_0x1a57('0x87')][_0x1a57('0x10b')](db[_0x1a57('0x74')],{'as':'Actions','foreignKey':_0x1a57('0x1a9'),'onDelete':'cascade','hooks':!![]});db[_0x1a57('0x8e')][_0x1a57('0x10b')](db[_0x1a57('0x95')],{'as':'Fields','onDelete':'cascade','foreignKey':'CustomReportId','hooks':!![]});db[_0x1a57('0x90')][_0x1a57('0x10b')](db[_0x1a57('0x95')],{'as':_0x1a57('0x1aa'),'onDelete':_0x1a57('0x10e'),'foreignKey':'DefaultReportId'});db[_0x1a57('0x1ab')]['hasMany'](db[_0x1a57('0x95')],{'as':_0x1a57('0x1aa'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1ac')});db[_0x1a57('0x95')]['belongsTo'](db[_0x1a57('0x1ab')],{'foreignKey':_0x1a57('0x1ac')});db['SalesforceAccount'][_0x1a57('0x10b')](db['SalesforceConfiguration'],{'as':_0x1a57('0x1ad'),'onDelete':'cascade','foreignKey':_0x1a57('0x1ae')});db['SalesforceConfiguration'][_0x1a57('0x10b')](db[_0x1a57('0x9c')],{'as':_0x1a57('0x1af'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0x9a')][_0x1a57('0x10b')](db[_0x1a57('0x9c')],{'as':_0x1a57('0x1b1'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b2')});db['SalesforceConfiguration'][_0x1a57('0x10b')](db[_0x1a57('0x9c')],{'as':_0x1a57('0x1aa'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0x9a')][_0x1a57('0x11b')](db[_0x1a57('0x1b4')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0x9c')][_0x1a57('0x10b')](db['SalesforceField'],{'as':_0x1a57('0x1b5'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0x9c')][_0x1a57('0x10b')](db[_0x1a57('0x9c')],{'as':_0x1a57('0x1b6'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0x9c')][_0x1a57('0x10b')](db[_0x1a57('0x9c')],{'as':_0x1a57('0x1b7'),'foreignKey':'FieldId'});db[_0x1a57('0x9c')][_0x1a57('0x11b')](db[_0x1a57('0x1b8')],{'as':_0x1a57('0x1b8'),'foreignKey':_0x1a57('0x1b9')});db[_0x1a57('0x9e')][_0x1a57('0x10b')](db[_0x1a57('0x1ba')],{'as':'Configurations','onDelete':'cascade','foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0x1ba')][_0x1a57('0x10b')](db[_0x1a57('0xa1')],{'as':'Subjects','onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0x1ba')]['hasMany'](db[_0x1a57('0xa1')],{'as':_0x1a57('0x1b1'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0x1ba')]['hasMany'](db[_0x1a57('0xa1')],{'as':_0x1a57('0x1aa'),'onDelete':_0x1a57('0x10e'),'foreignKey':'FieldId'});db[_0x1a57('0x1ba')]['belongsTo'](db[_0x1a57('0x9e')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1ae')});db['SugarcrmField'][_0x1a57('0x10b')](db[_0x1a57('0xa1')],{'as':_0x1a57('0x1b5'),'foreignKey':'SubjectId'});db['SugarcrmField'][_0x1a57('0x10b')](db[_0x1a57('0xa1')],{'as':_0x1a57('0x1b6'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0xa1')][_0x1a57('0x10b')](db[_0x1a57('0xa1')],{'as':_0x1a57('0x1b7'),'foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0xa1')]['belongsTo'](db[_0x1a57('0x1b8')],{'as':'Variable','foreignKey':'VariableId'});db[_0x1a57('0xa3')][_0x1a57('0x10b')](db[_0x1a57('0xa5')],{'as':'Configurations','onDelete':_0x1a57('0x10e'),'foreignKey':'AccountId'});db[_0x1a57('0xa5')][_0x1a57('0x10b')](db[_0x1a57('0x1bb')],{'as':'Subjects','onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0xa5')][_0x1a57('0x10b')](db['DeskField'],{'as':_0x1a57('0x1b1'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0xa5')][_0x1a57('0x10b')](db['DeskField'],{'as':_0x1a57('0x1aa'),'onDelete':_0x1a57('0x10e'),'foreignKey':'FieldId'});db[_0x1a57('0xa5')]['belongsTo'](db[_0x1a57('0xa3')],{'as':'Account','foreignKey':'AccountId'});db[_0x1a57('0xa5')]['belongsToMany'](db[_0x1a57('0x84')],{'through':_0x1a57('0x1bc')});db[_0x1a57('0x1bb')][_0x1a57('0x10b')](db[_0x1a57('0x1bb')],{'as':_0x1a57('0x1b5'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0x1bb')][_0x1a57('0x10b')](db['DeskField'],{'as':_0x1a57('0x1b6'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0x1bb')][_0x1a57('0x10b')](db[_0x1a57('0x1bb')],{'as':_0x1a57('0x1b7'),'foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0x1bb')]['belongsTo'](db[_0x1a57('0x1b8')],{'as':_0x1a57('0x1b8'),'foreignKey':_0x1a57('0x1b9')});db[_0x1a57('0xa7')][_0x1a57('0x10b')](db[_0x1a57('0x1bd')],{'as':_0x1a57('0x1ad'),'onDelete':_0x1a57('0x10e'),'foreignKey':'AccountId'});db[_0x1a57('0x1bd')][_0x1a57('0x10b')](db['ZohoField'],{'as':'Subjects','onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0x1bd')]['hasMany'](db['ZohoField'],{'as':_0x1a57('0x1b1'),'onDelete':_0x1a57('0x10e'),'foreignKey':'DescriptionId'});db[_0x1a57('0x1bd')][_0x1a57('0x10b')](db['ZohoField'],{'as':'Fields','onDelete':_0x1a57('0x10e'),'foreignKey':'FieldId'});db['ZohoConfiguration'][_0x1a57('0x11b')](db[_0x1a57('0xa7')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0xaa')]['hasMany'](db[_0x1a57('0xaa')],{'as':_0x1a57('0x1b5'),'foreignKey':_0x1a57('0x1b0')});db['ZohoField'][_0x1a57('0x10b')](db['ZohoField'],{'as':'Description','foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0xaa')][_0x1a57('0x10b')](db[_0x1a57('0xaa')],{'as':'Field','foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0xaa')]['belongsTo'](db['Variable'],{'as':_0x1a57('0x1b8'),'foreignKey':'VariableId'});db[_0x1a57('0x1be')][_0x1a57('0x10b')](db[_0x1a57('0xad')],{'as':'Configurations','onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0xad')]['hasMany'](db[_0x1a57('0x1bf')],{'as':_0x1a57('0x1af'),'foreignKey':'SubjectId'});db[_0x1a57('0xad')]['hasMany'](db[_0x1a57('0x1bf')],{'as':_0x1a57('0x1b1'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0xad')][_0x1a57('0x10b')](db[_0x1a57('0x1bf')],{'as':_0x1a57('0x1aa'),'foreignKey':'FieldId'});db[_0x1a57('0xad')]['belongsTo'](db[_0x1a57('0x1be')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0xad')][_0x1a57('0x11d')](db['Tag'],{'through':_0x1a57('0x1c0')});db[_0x1a57('0x1bf')]['hasMany'](db['ZendeskField'],{'as':_0x1a57('0x1b5'),'foreignKey':'SubjectId'});db[_0x1a57('0x1bf')]['hasMany'](db[_0x1a57('0x1bf')],{'as':_0x1a57('0x1b6'),'foreignKey':'DescriptionId'});db[_0x1a57('0x1bf')][_0x1a57('0x10b')](db[_0x1a57('0x1bf')],{'as':_0x1a57('0x1b7'),'foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0x1bf')][_0x1a57('0x11b')](db[_0x1a57('0x1b8')],{'as':'Variable','foreignKey':_0x1a57('0x1b9')});db[_0x1a57('0xb0')][_0x1a57('0x10b')](db['FreshdeskConfiguration'],{'as':_0x1a57('0x1ad'),'onDelete':_0x1a57('0x10e'),'foreignKey':'AccountId'});db[_0x1a57('0xb1')][_0x1a57('0x10b')](db[_0x1a57('0xb2')],{'as':_0x1a57('0x1af'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0xb1')][_0x1a57('0x10b')](db[_0x1a57('0xb2')],{'as':_0x1a57('0x1b1'),'onDelete':'cascade','foreignKey':'DescriptionId'});db[_0x1a57('0xb1')]['hasMany'](db[_0x1a57('0xb2')],{'as':_0x1a57('0x1aa'),'onDelete':_0x1a57('0x10e'),'foreignKey':'FieldId'});db['FreshdeskConfiguration'][_0x1a57('0x11b')](db[_0x1a57('0xb0')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0xb1')]['belongsToMany'](db[_0x1a57('0x84')],{'through':_0x1a57('0x1c1')});db['FreshdeskField'][_0x1a57('0x10b')](db[_0x1a57('0xb2')],{'as':_0x1a57('0x1b5'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0xb2')][_0x1a57('0x10b')](db[_0x1a57('0xb2')],{'as':_0x1a57('0x1b6'),'foreignKey':_0x1a57('0x1b2')});db['FreshdeskField'][_0x1a57('0x10b')](db[_0x1a57('0xb2')],{'as':_0x1a57('0x1b7'),'foreignKey':'FieldId'});db[_0x1a57('0xb2')][_0x1a57('0x11b')](db[_0x1a57('0x1b8')],{'as':_0x1a57('0x1b8'),'foreignKey':'VariableId'});db[_0x1a57('0xb3')][_0x1a57('0x10b')](db[_0x1a57('0xb5')],{'as':_0x1a57('0x1ad'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0xb5')][_0x1a57('0x10b')](db[_0x1a57('0xb7')],{'as':_0x1a57('0x1af'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0xb5')][_0x1a57('0x10b')](db[_0x1a57('0xb7')],{'as':_0x1a57('0x1b1'),'foreignKey':_0x1a57('0x1b2')});db['VtigerConfiguration'][_0x1a57('0x10b')](db[_0x1a57('0xb7')],{'as':'Fields','foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0xb5')]['belongsTo'](db[_0x1a57('0xb3')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0xb7')]['hasMany'](db[_0x1a57('0xb7')],{'as':_0x1a57('0x1b5'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0xb7')][_0x1a57('0x10b')](db[_0x1a57('0xb7')],{'as':_0x1a57('0x1b6'),'foreignKey':_0x1a57('0x1b2')});db['VtigerField']['hasMany'](db[_0x1a57('0xb7')],{'as':'Field','foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0xb7')][_0x1a57('0x11b')](db['Variable'],{'as':'Variable','foreignKey':_0x1a57('0x1b9')});db[_0x1a57('0xb8')][_0x1a57('0x10b')](db[_0x1a57('0x1c2')],{'as':_0x1a57('0x1ad'),'onDelete':'cascade','foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0x1c2')][_0x1a57('0x10b')](db['ServicenowField'],{'as':'Subjects','foreignKey':'SubjectId'});db[_0x1a57('0x1c2')][_0x1a57('0x10b')](db['ServicenowField'],{'as':_0x1a57('0x1b1'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0x1c2')]['hasMany'](db[_0x1a57('0xba')],{'as':_0x1a57('0x1aa'),'foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0x1c2')][_0x1a57('0x11b')](db[_0x1a57('0xb8')],{'as':_0x1a57('0x162'),'foreignKey':'AccountId'});db[_0x1a57('0xba')][_0x1a57('0x10b')](db[_0x1a57('0xba')],{'as':_0x1a57('0x1b5'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0xba')][_0x1a57('0x10b')](db[_0x1a57('0xba')],{'as':_0x1a57('0x1b6'),'foreignKey':'DescriptionId'});db[_0x1a57('0xba')][_0x1a57('0x10b')](db[_0x1a57('0xba')],{'as':_0x1a57('0x1b7'),'foreignKey':'FieldId'});db['ServicenowField'][_0x1a57('0x11b')](db[_0x1a57('0x1b8')],{'as':_0x1a57('0x1b8'),'foreignKey':'VariableId'});db['Dynamics365Account'][_0x1a57('0x10b')](db[_0x1a57('0xbd')],{'as':_0x1a57('0x1ad'),'onDelete':_0x1a57('0x10e'),'foreignKey':'AccountId'});db[_0x1a57('0xbd')][_0x1a57('0x10b')](db[_0x1a57('0x1c3')],{'as':_0x1a57('0x1af'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b0')});db[_0x1a57('0xbd')]['hasMany'](db['Dynamics365Field'],{'as':_0x1a57('0x1b1'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0xbd')][_0x1a57('0x10b')](db[_0x1a57('0x1c3')],{'as':_0x1a57('0x1aa'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0xbd')][_0x1a57('0x11b')](db[_0x1a57('0x1c4')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1ae')});db[_0x1a57('0x1c3')][_0x1a57('0x10b')](db[_0x1a57('0x1c3')],{'as':_0x1a57('0x1b5'),'foreignKey':'SubjectId'});db['Dynamics365Field'][_0x1a57('0x10b')](db[_0x1a57('0x1c3')],{'as':_0x1a57('0x1b6'),'foreignKey':'DescriptionId'});db[_0x1a57('0x1c3')][_0x1a57('0x10b')](db[_0x1a57('0x1c3')],{'as':'Field','foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0x1c3')][_0x1a57('0x11b')](db[_0x1a57('0x1b8')],{'as':_0x1a57('0x1b8'),'foreignKey':_0x1a57('0x1b9')});db[_0x1a57('0xbf')]['hasMany'](db['FreshsalesConfiguration'],{'as':_0x1a57('0x1ad'),'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1ae')});db['FreshsalesConfiguration'][_0x1a57('0x10b')](db['FreshsalesField'],{'as':'Subjects','foreignKey':'SubjectId'});db[_0x1a57('0x1c5')]['hasMany'](db[_0x1a57('0x1c6')],{'as':_0x1a57('0x1b1'),'foreignKey':_0x1a57('0x1b2')});db['FreshsalesConfiguration']['hasMany'](db['FreshsalesField'],{'as':_0x1a57('0x1aa'),'foreignKey':_0x1a57('0x1b3')});db['FreshsalesConfiguration'][_0x1a57('0x11b')](db[_0x1a57('0xbf')],{'as':_0x1a57('0x162'),'foreignKey':'AccountId'});db[_0x1a57('0x1c6')]['hasMany'](db[_0x1a57('0x1c6')],{'as':_0x1a57('0x1b5'),'foreignKey':'SubjectId'});db[_0x1a57('0x1c6')]['hasMany'](db[_0x1a57('0x1c6')],{'as':_0x1a57('0x1b6'),'foreignKey':_0x1a57('0x1b2')});db[_0x1a57('0x1c6')][_0x1a57('0x10b')](db[_0x1a57('0x1c6')],{'as':_0x1a57('0x1b7'),'foreignKey':_0x1a57('0x1b3')});db[_0x1a57('0x1c6')]['belongsTo'](db['Variable'],{'as':'Variable','foreignKey':'VariableId'});db[_0x1a57('0xc4')]['belongsTo'](db[_0x1a57('0x130')],{});db[_0x1a57('0xc4')]['belongsTo'](db['CmList'],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d')});db[_0x1a57('0xc4')][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':'Contact','foreignKey':_0x1a57('0x156')});db[_0x1a57('0xc4')][_0x1a57('0x11b')](db[_0x1a57('0x61')],{});db['ChatQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0x63')],{});db['ChatQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0x107')],{});db[_0x1a57('0xc4')][_0x1a57('0x11b')](db[_0x1a57('0x65')],{});db[_0x1a57('0x18c')]['belongsTo'](db['User'],{'onDelete':'cascade','foreignKey':'FromId'});db[_0x1a57('0x18c')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x1c7')});db['JscriptySessionReport'][_0x1a57('0x10b')](db[_0x1a57('0x1c8')],{'foreignKey':_0x1a57('0x1c9'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0xc7')][_0x1a57('0x10b')](db[_0x1a57('0x1ca')],{'foreignKey':_0x1a57('0x1c9'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0xc9')][_0x1a57('0x11b')](db[_0x1a57('0x4f')],{});db['SmsQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':'List','foreignKey':_0x1a57('0x16d')});db[_0x1a57('0xc9')][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':_0x1a57('0x163'),'foreignKey':'ContactId'});db[_0x1a57('0xc9')][_0x1a57('0x11b')](db['SmsInteraction'],{});db['SmsQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0x54')],{});db['SmsQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0x107')],{});db['SmsQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0x56')],{});db[_0x1a57('0xce')][_0x1a57('0x10b')](db[_0x1a57('0xc7')],{'foreignKey':_0x1a57('0x1cb')});db[_0x1a57('0xce')]['hasMany'](db[_0x1a57('0x1c8')],{'foreignKey':'ProjectId'});db['JscriptyProject'][_0x1a57('0x10b')](db[_0x1a57('0x1ca')],{'foreignKey':_0x1a57('0x1cb')});db[_0x1a57('0xd4')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x167'),'through':_0x1a57('0x1cc')});db[_0x1a57('0xd9')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':'user_has_teams'});db['Team'][_0x1a57('0x11d')](db[_0x1a57('0x19')],{'through':'TeamVoiceQueue','as':_0x1a57('0x128')});db['Team']['belongsToMany'](db['MailQueue'],{'through':_0x1a57('0x160'),'as':_0x1a57('0x1cd')});db[_0x1a57('0xd9')][_0x1a57('0x11d')](db[_0x1a57('0x65')],{'through':_0x1a57('0x18b'),'as':_0x1a57('0x12c')});db[_0x1a57('0xd9')][_0x1a57('0x11d')](db[_0x1a57('0x4c')],{'through':'team_has_fax_queues','as':_0x1a57('0x12d')});db[_0x1a57('0xd9')][_0x1a57('0x11d')](db[_0x1a57('0x56')],{'through':_0x1a57('0x17c'),'as':_0x1a57('0x1ce')});db[_0x1a57('0xd9')][_0x1a57('0x11d')](db[_0x1a57('0x5e')],{'through':'team_has_openchannel_queues','as':_0x1a57('0x12e')});db[_0x1a57('0xd9')][_0x1a57('0x11d')](db[_0x1a57('0xff')],{'through':'team_has_whatsapp_queues','as':_0x1a57('0x1cf')});db[_0x1a57('0xd9')][_0x1a57('0x11d')](db[_0x1a57('0xef')],{'through':_0x1a57('0x104'),'as':_0x1a57('0x129')});db[_0x1a57('0xdc')]['hasMany'](db[_0x1a57('0x13e')],{'as':_0x1a57('0x13f'),'foreignKey':'CampaignId'});db['Campaign']['hasMany'](db['CmHopperFinal'],{'as':_0x1a57('0x110'),'foreignKey':_0x1a57('0x193')});db[_0x1a57('0xdc')][_0x1a57('0x10b')](db[_0x1a57('0x70')],{'as':_0x1a57('0x18f'),'foreignKey':_0x1a57('0x193')});db[_0x1a57('0xdc')][_0x1a57('0x10b')](db[_0x1a57('0x6d')],{'as':'HopperBlacks','foreignKey':_0x1a57('0x193')});db[_0x1a57('0xdc')][_0x1a57('0x11b')](db[_0x1a57('0x27')],{'as':_0x1a57('0x27'),'foreignKey':'TrunkId'});db[_0x1a57('0xdc')][_0x1a57('0x11b')](db[_0x1a57('0x27')],{'as':_0x1a57('0x144'),'foreignKey':_0x1a57('0x145')});db[_0x1a57('0xdc')][_0x1a57('0x11b')](db[_0x1a57('0x7c')],{'as':'Interval','foreignKey':'IntervalId'});db['Campaign']['belongsTo'](db[_0x1a57('0xd4')],{'as':_0x1a57('0xd4'),'foreignKey':'SquareProjectId'});db[_0x1a57('0xdc')][_0x1a57('0x11d')](db['CmList'],{'as':_0x1a57('0x120'),'through':_0x1a57('0x1d0')});db[_0x1a57('0xdc')][_0x1a57('0x11d')](db[_0x1a57('0xed')],{'as':'BlackLists','through':_0x1a57('0x1d1')});db[_0x1a57('0xe0')][_0x1a57('0x11b')](db['ChatOfflineMessage'],{'as':_0x1a57('0x16a'),'foreignKey':_0x1a57('0x16b')});db[_0x1a57('0xe3')][_0x1a57('0x11b')](db[_0x1a57('0x3f')],{});db['MailTransferReport'][_0x1a57('0x11b')](db[_0x1a57('0x3e')],{});db[_0x1a57('0xe3')][_0x1a57('0x11b')](db['MailAccount'],{'foreignKey':_0x1a57('0x1d2'),'as':_0x1a57('0x1d3')});db['MailTransferReport'][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':_0x1a57('0x1d4'),'as':_0x1a57('0x1d5')});db[_0x1a57('0xe3')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':_0x1a57('0x1d6'),'as':_0x1a57('0x1d7')});db[_0x1a57('0xe3')]['belongsTo'](db[_0x1a57('0x12a')],{'foreignKey':_0x1a57('0x1d8'),'as':'ToQueue'});db['MailTransferReport'][_0x1a57('0x11b')](db['MailAccount'],{'foreignKey':_0x1a57('0x1d9'),'as':_0x1a57('0x1da')});db[_0x1a57('0xe5')][_0x1a57('0x11b')](db['ChatMessage'],{});db[_0x1a57('0xe5')][_0x1a57('0x11b')](db['ChatInteraction'],{});db[_0x1a57('0xe5')]['belongsTo'](db[_0x1a57('0x130')],{'foreignKey':_0x1a57('0x1db'),'as':_0x1a57('0x1d3')});db[_0x1a57('0xe5')]['belongsTo'](db['User'],{'foreignKey':'FromUserId','as':_0x1a57('0x1d5')});db[_0x1a57('0xe5')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':_0x1a57('0x1d6'),'as':_0x1a57('0x1d7')});db[_0x1a57('0xe5')]['belongsTo'](db[_0x1a57('0x65')],{'foreignKey':_0x1a57('0x1dc'),'as':_0x1a57('0x1dd')});db[_0x1a57('0xe5')][_0x1a57('0x11b')](db[_0x1a57('0x130')],{'foreignKey':'ToChatWebsiteId','as':_0x1a57('0x1da')});db[_0x1a57('0xe7')]['belongsTo'](db[_0x1a57('0x4a')],{});db[_0x1a57('0xe7')]['belongsTo'](db[_0x1a57('0x115')],{});db[_0x1a57('0xe7')][_0x1a57('0x11b')](db[_0x1a57('0x46')],{'foreignKey':'FromFaxAccountId','as':'FromAccount'});db[_0x1a57('0xe7')][_0x1a57('0x11b')](db['User'],{'foreignKey':_0x1a57('0x1d4'),'as':_0x1a57('0x1d5')});db[_0x1a57('0xe7')]['belongsTo'](db['User'],{'foreignKey':_0x1a57('0x1d6'),'as':_0x1a57('0x1d7')});db[_0x1a57('0xe7')][_0x1a57('0x11b')](db[_0x1a57('0x4c')],{'foreignKey':_0x1a57('0x1de'),'as':_0x1a57('0x1dd')});db['FaxTransferReport']['belongsTo'](db[_0x1a57('0x46')],{'foreignKey':_0x1a57('0x1df'),'as':_0x1a57('0x1da')});db[_0x1a57('0xe9')]['belongsTo'](db[_0x1a57('0x17e')],{});db[_0x1a57('0xe9')][_0x1a57('0x11b')](db['OpenchannelInteraction'],{});db[_0x1a57('0xe9')][_0x1a57('0x11b')](db[_0x1a57('0x58')],{'foreignKey':_0x1a57('0x1e0'),'as':'FromAccount'});db[_0x1a57('0xe9')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':'FromUserId','as':_0x1a57('0x1d5')});db[_0x1a57('0xe9')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':'ToUserId','as':'ToAgent'});db[_0x1a57('0xe9')]['belongsTo'](db[_0x1a57('0x5e')],{'foreignKey':_0x1a57('0x1e1'),'as':_0x1a57('0x1dd')});db[_0x1a57('0xe9')][_0x1a57('0x11b')](db['OpenchannelAccount'],{'foreignKey':'ToOpenchannelAccountId','as':_0x1a57('0x1da')});db['SmsTransferReport'][_0x1a57('0x11b')](db['SmsMessage'],{});db[_0x1a57('0xeb')]['belongsTo'](db[_0x1a57('0x52')],{});db['SmsTransferReport'][_0x1a57('0x11b')](db[_0x1a57('0x4f')],{'foreignKey':_0x1a57('0x1e2'),'as':_0x1a57('0x1d3')});db[_0x1a57('0xeb')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':_0x1a57('0x1d4'),'as':_0x1a57('0x1d5')});db[_0x1a57('0xeb')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':_0x1a57('0x1d6'),'as':_0x1a57('0x1d7')});db[_0x1a57('0xeb')][_0x1a57('0x11b')](db[_0x1a57('0x56')],{'foreignKey':'ToSmsQueueId','as':'ToQueue'});db[_0x1a57('0xeb')]['belongsTo'](db[_0x1a57('0x4f')],{'foreignKey':'ToSmsAccountId','as':_0x1a57('0x1da')});db[_0x1a57('0xed')]['hasMany'](db[_0x1a57('0x79')],{'as':_0x1a57('0x15a'),'foreignKey':_0x1a57('0x16d'),'onDelete':'cascade'});db[_0x1a57('0xed')][_0x1a57('0x10b')](db[_0x1a57('0x1e3')],{'as':_0x1a57('0x1e4'),'foreignKey':'ListId'});db['CmList']['hasMany'](db['CmContact'],{'as':'Contacts','onDelete':_0x1a57('0x10e'),'foreignKey':_0x1a57('0x16d')});db['CmList'][_0x1a57('0x10b')](db[_0x1a57('0x10f')],{'as':_0x1a57('0x110'),'foreignKey':_0x1a57('0x16d')});db[_0x1a57('0xed')][_0x1a57('0x10b')](db[_0x1a57('0x70')],{'as':_0x1a57('0x111'),'foreignKey':_0x1a57('0x16d')});db['CmList'][_0x1a57('0x10b')](db[_0x1a57('0x112')],{'as':_0x1a57('0x112'),'foreignKey':_0x1a57('0x16d')});db[_0x1a57('0xed')][_0x1a57('0x11d')](db[_0x1a57('0x19')],{'as':_0x1a57('0x1e5'),'through':_0x1a57('0x149')});db[_0x1a57('0xed')]['belongsToMany'](db['User'],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x12f')});db[_0x1a57('0xef')]['hasMany'](db[_0x1a57('0x15')],{'as':_0x1a57('0x10d'),'onDelete':'cascade'});db[_0x1a57('0xef')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':'UserVoicePrefix'});db[_0x1a57('0xef')][_0x1a57('0x11d')](db[_0x1a57('0xd9')],{'through':_0x1a57('0x104'),'as':_0x1a57('0x14b')});db[_0x1a57('0xf1')]['hasMany'](db[_0x1a57('0x107')],{'as':_0x1a57('0x167'),'foreignKey':_0x1a57('0x11c')});db[_0x1a57('0xf1')][_0x1a57('0x10b')](db[_0x1a57('0x1e6')],{'as':_0x1a57('0x1e7'),'foreignKey':_0x1a57('0x11c'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0x1e6')]['hasMany'](db[_0x1a57('0xf4')],{'as':'Resources','foreignKey':_0x1a57('0x1e8'),'onDelete':_0x1a57('0x10e')});db['WhatsappAccount'][_0x1a57('0x10b')](db['Disposition'],{'as':_0x1a57('0x15a'),'foreignKey':_0x1a57('0x1e9'),'onDelete':_0x1a57('0x10e')});db[_0x1a57('0xf8')][_0x1a57('0x10b')](db[_0x1a57('0x78')],{'as':_0x1a57('0x15b'),'foreignKey':_0x1a57('0x1e9')});db[_0x1a57('0xf8')][_0x1a57('0x10b')](db[_0x1a57('0xfc')],{'as':'Messages','foreignKey':_0x1a57('0x1e9')});db[_0x1a57('0xf8')][_0x1a57('0x10b')](db[_0x1a57('0x118')],{'as':_0x1a57('0x15c')});db[_0x1a57('0xf8')]['hasMany'](db[_0x1a57('0xf9')],{'as':_0x1a57('0x13c')});db[_0x1a57('0xf8')][_0x1a57('0x11b')](db['CmList'],{'as':'List','foreignKey':_0x1a57('0x16d')});db[_0x1a57('0xf8')][_0x1a57('0x11b')](db['Pause'],{'as':_0x1a57('0x147'),'foreignKey':_0x1a57('0x148')});db['WhatsappAccount']['belongsToMany'](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x138')});db['WhatsappApplication']['belongsTo'](db[_0x1a57('0x107')],{'onDelete':_0x1a57('0x16c')});db[_0x1a57('0xf9')][_0x1a57('0x11b')](db['WhatsappQueue'],{'onDelete':_0x1a57('0x16c')});db['WhatsappApplication'][_0x1a57('0x11b')](db[_0x1a57('0xf8')],{'onDelete':_0x1a57('0x16c')});db[_0x1a57('0xf9')][_0x1a57('0x11b')](db[_0x1a57('0x7c')],{'onDelete':_0x1a57('0x16c'),'foreignKey':_0x1a57('0x146')});db[_0x1a57('0xf9')][_0x1a57('0x11b')](db[_0x1a57('0x84')],{'onDelete':_0x1a57('0x16c'),'foreignKey':_0x1a57('0x172')});db[_0x1a57('0x118')][_0x1a57('0x10b')](db[_0x1a57('0xfc')],{'as':'Messages','onDelete':'cascade','foreignKey':_0x1a57('0x1ea')});db['WhatsappInteraction']['belongsTo'](db[_0x1a57('0xf8')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1e9')});db[_0x1a57('0x118')][_0x1a57('0x11b')](db['CmContact'],{'as':_0x1a57('0x163'),'foreignKey':_0x1a57('0x156')});db[_0x1a57('0x118')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'as':'Owner','foreignKey':_0x1a57('0x10a')});db[_0x1a57('0x118')]['belongsToMany'](db[_0x1a57('0x84')],{'through':_0x1a57('0x1a2'),'as':_0x1a57('0x165')});db[_0x1a57('0x118')][_0x1a57('0x11d')](db[_0x1a57('0x84')],{'through':_0x1a57('0x1a2'),'as':_0x1a57('0x166')});db['WhatsappInteraction'][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x167'),'through':_0x1a57('0x127'),'foreignKey':_0x1a57('0x1ea')});db[_0x1a57('0xfc')]['belongsTo'](db[_0x1a57('0x107')],{'as':_0x1a57('0x107')});db[_0x1a57('0xfc')][_0x1a57('0x11b')](db['CmContact'],{'onDelete':'cascade','as':_0x1a57('0x163')});db[_0x1a57('0xfc')][_0x1a57('0x11b')](db[_0x1a57('0x118')],{'onDelete':_0x1a57('0x10e'),'as':_0x1a57('0x169'),'foreignKey':_0x1a57('0x1ea')});db[_0x1a57('0xfc')][_0x1a57('0x11b')](db[_0x1a57('0xf8')],{'as':_0x1a57('0x162'),'foreignKey':_0x1a57('0x1e9')});db[_0x1a57('0x1eb')][_0x1a57('0x11b')](db['WhatsappAccount'],{});db['WhatsappQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0xed')],{'as':_0x1a57('0x15d'),'foreignKey':_0x1a57('0x16d')});db[_0x1a57('0x1eb')][_0x1a57('0x11b')](db[_0x1a57('0x6b')],{'as':'Contact','foreignKey':_0x1a57('0x156')});db[_0x1a57('0x1eb')]['belongsTo'](db['WhatsappInteraction'],{});db['WhatsappQueueReport'][_0x1a57('0x11b')](db[_0x1a57('0xff')],{});db[_0x1a57('0x1eb')][_0x1a57('0x11b')](db[_0x1a57('0xfc')],{});db[_0x1a57('0x1eb')]['belongsTo'](db[_0x1a57('0x107')],{});db[_0x1a57('0xfe')]['belongsTo'](db['WhatsappMessage'],{});db[_0x1a57('0xfe')][_0x1a57('0x11b')](db[_0x1a57('0x118')],{});db[_0x1a57('0xfe')]['belongsTo'](db[_0x1a57('0xf8')],{'foreignKey':_0x1a57('0x1ec'),'as':_0x1a57('0x1d3')});db[_0x1a57('0xfe')][_0x1a57('0x11b')](db['WhatsappAccount'],{'foreignKey':_0x1a57('0x1ed'),'as':_0x1a57('0x1da')});db[_0x1a57('0xfe')][_0x1a57('0x11b')](db['WhatsappQueue'],{'foreignKey':_0x1a57('0x1ee'),'as':_0x1a57('0x1dd')});db[_0x1a57('0xfe')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':'FromUserId','as':_0x1a57('0x1d5')});db[_0x1a57('0xfe')][_0x1a57('0x11b')](db[_0x1a57('0x107')],{'foreignKey':_0x1a57('0x1d6'),'as':'ToAgent'});db[_0x1a57('0xff')][_0x1a57('0x11d')](db[_0x1a57('0x107')],{'as':_0x1a57('0x14a'),'through':_0x1a57('0x36'),'foreignKey':_0x1a57('0x1ef')});db[_0x1a57('0xff')][_0x1a57('0x11d')](db[_0x1a57('0xd9')],{'through':_0x1a57('0x1f0'),'as':_0x1a57('0x14b')});module['exports']={'db':db,'dbH':dbH};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4a8=['/api/voice/agents/reports','./api/voiceAgentReport','/api/voice/queues/reports','./api/voiceQueueReport','/api/trunks','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','/api/mail/out_servers','./api/mailServerOut','/api/mail/accounts','./api/mailAccount','/api/mail/queues','/api/mail/substatuses','./api/mailSubstatus','/api/mail/interactions','./api/mailInteraction','/api/mail/messages','./api/mailMessage','./api/mailApplication','/api/dashboards','/api/dashboards/items','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','/api/fax/applications','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','./api/faxMessage','/api/fax/queues','./api/faxQueue','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','./api/smsAccount','/api/sms/applications','./api/smsApplication','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','./api/smsMessage','/api/sms/queues','/api/openchannel/accounts','./api/openchannelAccount','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','./api/openchannelMessage','./api/openchannelQueue','/api/chat/websites','/api/openchannel/reports/queue','/api/chat/applications','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','./api/chatMessage','/api/chat/offline_messages','./api/chatOfflineMessage','./api/chatQueue','./api/chatGroup','/api/chat/proactive_actions','./api/chatProactiveAction','./api/cmCompany','/api/cm/contacts','./api/cmContact','./api/cmHopper','./api/cmHopperBlack','/api/cm/hopper_final','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','/api/cm/custom_fields','./api/cmCustomField','/api/actions','./api/action','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','./api/disposition','/api/intervals','./api/pause','/api/voiceQueuesLog','./api/voiceQueuesLog','/api/schedules','./api/schedule','./api/sound','./api/tag','/api/templates','./api/template','/api/triggers','./api/trigger','/api/variables','./api/variable','/api/integrations','./api/integration','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports','./api/analyticCustomReport','/api/analytics/default_reports','./api/analyticDefaultReport','./api/analyticExtractedReport','/api/analytics/metrics','./api/analyticMetric','/api/analytics/field_reports','./api/analyticFieldReport','/api/analytics/tree_reports','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','./api/intSalesforceField','/api/integrations/sugarcrm/configurations','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','/api/integrations/zoho/accounts','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZendeskAccount','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','./api/intZendeskField','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','./api/intVtigerConfiguration','/api/integrations/vtiger/fields','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','./api/intServicenowConfiguration','/api/integrations/servicenow/fields','./api/intServicenowField','/api/integrations/dynamics365/accounts','/api/integrations/freshsales/accounts','/api/integrations/freshsales/configurations','./api/intFreshsalesConfiguration','/api/integrations/freshsales/fields','./api/intFreshsalesField','/api/networks','/api/chat/reports/queue','./api/chatInternalMessage','./api/jscriptyAnswerReport','/api/jscripty/questions/reports','./api/jscriptyQuestionReport','/api/jscripty/sessions/reports','./api/jscriptySessionReport','/api/sms/reports/queue','./api/smsQueueReport','/api/square/reports','./api/squareReport','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','/api/settings','./api/squareOdbc','/api/square/projects','/api/square/recordings','/api/square/messages','./api/team','/api/license','./api/license','/api/campaigns','/api/migrations','/api/attachments','./api/attachment','/api/plugins','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','/api/chat/reports/transfer','./api/chatTransferReport','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','/api/sms/reports/transfer','./api/smsTransferReport','./api/cmList','./api/voicePrefix','/api/userProfiles','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','/api/userProfile/resources','./api/userProfileResource','/api/userNotifications','./api/whatsappAccount','/api/whatsapp/applications','./api/whatsappApplication','/api/whatsapp/interactions','./api/whatsappInteraction','/api/whatsapp/messages','./api/whatsappMessage','/api/whatsapp/reports/queue','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','/api/whatsapp/queues','./api/whatsappQueue','/api/cloudProviders','./api/cloudProvider','/api/realtime','./api/authLocal','/api/auth/google','/api/jira','/api/rpc','./api/rpc','/api/version','./api/version','./api/system','/api/pm2','./api/pm2','/api/webbar','/apidoc','static','root','/www','/demo','join','/snippet','snippet','/plugins','/server/files/plugins','route','/:url(api|auth|components|app|bower_components|assets)/*','get','sendFile','resolve','appPath','/index.html','username','password','newPassword','apiKey','firstName','lastName','phone','mobile','fax','email','clientSecret','securityToken','code','accessKey','tenantId','channelSecret','accessToken','accessTokenSecret','authToken','consumerKey','consumerSecret','calleridname','calleridnum','exten','vidaooApiKey','privateKey','accesskeyid','secretaccesskey','key','pass','accountSid','dsn','secret','isPlainObject','isArray','length','isString','@@{','}@@','includes','express-winston','util','./errors','./config/logger','api','auth','\x20body=%s','body','format','method','headers','x-forwarded-for','connection','remoteAddress','statusCode','responseTime','user','inspect','use','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','role','agent_name','test','url','/api/users','/api/voice/chanspy','./api/voiceChanSpy','/api/voice/contexts','./api/voiceContext','./api/voiceExtension','/api/voice/mohs','./api/voiceMusicOnHold','./api/voiceQueue','/api/voice/recordings','./api/voiceRecording','/api/screen/recordings','./api/screenRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceDialReport'];(function(_0x1f4f41,_0x4e0e7a){var _0x5e51c4=function(_0x5a8b27){while(--_0x5a8b27){_0x1f4f41['push'](_0x1f4f41['shift']());}};_0x5e51c4(++_0x4e0e7a);}(_0xd4a8,0x117));var _0x8d4a=function(_0x21d2cc,_0x81b56d){_0x21d2cc=_0x21d2cc-0x0;var _0x35176c=_0xd4a8[_0x21d2cc];return _0x35176c;};'use strict';var _=require('lodash');var path=require('path');var express=require('express');var ewinston=require(_0x8d4a('0x0'));var util=require(_0x8d4a('0x1'));var errors=require(_0x8d4a('0x2'));var config=require('./config/environment');var logger=require(_0x8d4a('0x3'))(_0x8d4a('0x4'));var authLogger=require(_0x8d4a('0x3'))(_0x8d4a('0x5'));exports['default']=function(_0x24d59c){_0x24d59c['use'](ewinston['logger']({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x42a054,_0x388743){var _0x516c14='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_['isEmpty'](_0x42a054['body'])){_0x516c14+=_0x8d4a('0x6');var _0x271afa=_0x42a054[_0x8d4a('0x7')];maskSensitiveData(_0x271afa);}return util[_0x8d4a('0x8')](_0x516c14,_0x42a054[_0x8d4a('0x9')],_0x42a054[_0x8d4a('0xa')][_0x8d4a('0xb')]?_0x42a054[_0x8d4a('0xa')]['x-forwarded-for']:_0x42a054[_0x8d4a('0xc')][_0x8d4a('0xd')]||_0x42a054['ip'],_0x42a054['url'],_0x388743[_0x8d4a('0xe')],_0x388743[_0x8d4a('0xf')],_0x42a054[_0x8d4a('0x10')]?_0x42a054[_0x8d4a('0x10')]['id']:null,_0x42a054['user']?_0x42a054[_0x8d4a('0x10')]['name']:null,_0x42a054[_0x8d4a('0x10')]?_0x42a054[_0x8d4a('0x10')]['role']:null,_0x271afa?util[_0x8d4a('0x11')](_0x271afa,![],null):'');}}));_0x24d59c[_0x8d4a('0x12')](ewinston[_0x8d4a('0x13')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0xab093e,_0x309f3c){var _0x28fd3e=_0x8d4a('0x14');if(_0xab093e[_0x8d4a('0x7')]&&_0xab093e['body'][_0x8d4a('0x15')]&&_0xab093e[_0x8d4a('0x7')][_0x8d4a('0x16')]){_0x28fd3e=_0x8d4a('0x17');}return util[_0x8d4a('0x8')](_0x28fd3e,_0xab093e[_0x8d4a('0x9')],_0xab093e[_0x8d4a('0xa')][_0x8d4a('0xb')]?_0xab093e[_0x8d4a('0xa')][_0x8d4a('0xb')]:_0xab093e[_0x8d4a('0xc')][_0x8d4a('0xd')]||_0xab093e['ip'],_0xab093e['url'],_0x309f3c['statusCode'],_0x309f3c[_0x8d4a('0xf')],_0xab093e[_0x8d4a('0x10')]?_0xab093e[_0x8d4a('0x10')]['id']:null,_0xab093e[_0x8d4a('0x10')]?_0xab093e[_0x8d4a('0x10')]['name']:null,_0xab093e['user']?_0xab093e['user'][_0x8d4a('0x18')]:null,_0xab093e[_0x8d4a('0x7')]&&_0xab093e[_0x8d4a('0x7')][_0x8d4a('0x15')]?_0xab093e[_0x8d4a('0x7')]['device']:'other',_0xab093e[_0x8d4a('0x7')]&&_0xab093e['body'][_0x8d4a('0x16')]?_0xab093e[_0x8d4a('0x7')][_0x8d4a('0x16')]:'',_0xab093e[_0x8d4a('0x7')]&&_0xab093e['body'][_0x8d4a('0x19')]?_0xab093e[_0x8d4a('0x7')]['agent_name']:'');},'ignoreRoute':function(_0x3ac389){var _0xc6c2ee=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0xc6c2ee[_0x8d4a('0x1a')](_0x3ac389[_0x8d4a('0x1b')]);}}));_0x24d59c['use'](_0x8d4a('0x1c'),require('./api/user'));_0x24d59c['use'](_0x8d4a('0x1d'),require(_0x8d4a('0x1e')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x1f'),require(_0x8d4a('0x20')));_0x24d59c[_0x8d4a('0x12')]('/api/voice/extensions',require(_0x8d4a('0x21')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x22'),require(_0x8d4a('0x23')));_0x24d59c['use']('/api/voice/queues',require(_0x8d4a('0x24')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x25'),require(_0x8d4a('0x26')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x27'),require(_0x8d4a('0x28')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x29'),require(_0x8d4a('0x2a')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x2b'),require('./api/voiceMailMessage'));_0x24d59c[_0x8d4a('0x12')]('/api/voice/calls/reports',require('./api/voiceCallReport'));_0x24d59c[_0x8d4a('0x12')]('/api/voice/dials/reports',require(_0x8d4a('0x2c')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x2d'),require(_0x8d4a('0x2e')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x2f'),require(_0x8d4a('0x30')));_0x24d59c[_0x8d4a('0x12')]('/api/members/reports',require('./api/memberReport'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x31'),require(_0x8d4a('0x32')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x33'),require(_0x8d4a('0x34')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x35'),require(_0x8d4a('0x36')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x37'),require(_0x8d4a('0x38')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x39'),require('./api/mailQueue'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x3a'),require(_0x8d4a('0x3b')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x3c'),require(_0x8d4a('0x3d')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x3e'),require(_0x8d4a('0x3f')));_0x24d59c[_0x8d4a('0x12')]('/api/mail/applications',require(_0x8d4a('0x40')));_0x24d59c['use']('/api/mail/reports/queue',require('./api/mailQueueReport'));_0x24d59c['use'](_0x8d4a('0x41'),require('./api/dashboard'));_0x24d59c['use'](_0x8d4a('0x42'),require(_0x8d4a('0x43')));_0x24d59c['use'](_0x8d4a('0x44'),require(_0x8d4a('0x45')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x46'),require(_0x8d4a('0x47')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x48'),require(_0x8d4a('0x49')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x4a'),require(_0x8d4a('0x4b')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x4c'),require(_0x8d4a('0x4d')));_0x24d59c['use'](_0x8d4a('0x4e'),require(_0x8d4a('0x4f')));_0x24d59c['use'](_0x8d4a('0x50'),require(_0x8d4a('0x51')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x52'),require(_0x8d4a('0x53')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x54'),require(_0x8d4a('0x55')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x56'),require(_0x8d4a('0x57')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x58'),require('./api/smsQueue'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x59'),require(_0x8d4a('0x5a')));_0x24d59c[_0x8d4a('0x12')]('/api/openchannel/applications',require(_0x8d4a('0x5b')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x5c'),require(_0x8d4a('0x5d')));_0x24d59c[_0x8d4a('0x12')]('/api/openchannel/messages',require(_0x8d4a('0x5e')));_0x24d59c[_0x8d4a('0x12')]('/api/openchannel/queues',require(_0x8d4a('0x5f')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x60'),require('./api/chatWebsite'));_0x24d59c['use'](_0x8d4a('0x61'),require('./api/openchannelQueueReport'));_0x24d59c['use'](_0x8d4a('0x62'),require(_0x8d4a('0x63')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x64'),require(_0x8d4a('0x65')));_0x24d59c[_0x8d4a('0x12')]('/api/chat/messages',require(_0x8d4a('0x66')));_0x24d59c['use'](_0x8d4a('0x67'),require(_0x8d4a('0x68')));_0x24d59c[_0x8d4a('0x12')]('/api/chat/queues',require(_0x8d4a('0x69')));_0x24d59c[_0x8d4a('0x12')]('/api/chat/groups',require(_0x8d4a('0x6a')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x6b'),require(_0x8d4a('0x6c')));_0x24d59c[_0x8d4a('0x12')]('/api/cm/companies',require(_0x8d4a('0x6d')));_0x24d59c['use'](_0x8d4a('0x6e'),require(_0x8d4a('0x6f')));_0x24d59c[_0x8d4a('0x12')]('/api/cm/hopper',require(_0x8d4a('0x70')));_0x24d59c[_0x8d4a('0x12')]('/api/cm/hopper_black',require(_0x8d4a('0x71')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x72'),require(_0x8d4a('0x73')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x74'),require(_0x8d4a('0x75')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x76'),require(_0x8d4a('0x77')));_0x24d59c['use'](_0x8d4a('0x78'),require(_0x8d4a('0x79')));_0x24d59c['use'](_0x8d4a('0x7a'),require(_0x8d4a('0x7b')));_0x24d59c['use'](_0x8d4a('0x7c'),require(_0x8d4a('0x7d')));_0x24d59c[_0x8d4a('0x12')]('/api/dispositions',require(_0x8d4a('0x7e')));_0x24d59c[_0x8d4a('0x12')]('/api/conditions',require('./api/condition'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x7f'),require('./api/interval'));_0x24d59c['use']('/api/pauses',require(_0x8d4a('0x80')));_0x24d59c[_0x8d4a('0x12')]('/api/cdr',require('./api/cdr'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x81'),require(_0x8d4a('0x82')));_0x24d59c['use'](_0x8d4a('0x83'),require(_0x8d4a('0x84')));_0x24d59c[_0x8d4a('0x12')]('/api/sounds',require(_0x8d4a('0x85')));_0x24d59c[_0x8d4a('0x12')]('/api/tags',require(_0x8d4a('0x86')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x87'),require(_0x8d4a('0x88')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x89'),require(_0x8d4a('0x8a')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x8b'),require(_0x8d4a('0x8c')));_0x24d59c['use'](_0x8d4a('0x8d'),require(_0x8d4a('0x8e')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x8f'),require(_0x8d4a('0x90')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x91'),require(_0x8d4a('0x92')));_0x24d59c['use'](_0x8d4a('0x93'),require(_0x8d4a('0x94')));_0x24d59c[_0x8d4a('0x12')]('/api/analytics/extracted_reports',require(_0x8d4a('0x95')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x96'),require(_0x8d4a('0x97')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x98'),require(_0x8d4a('0x99')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x9a'),require('./api/analyticTreeReport'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/salesforce/accounts',require(_0x8d4a('0x9b')));_0x24d59c['use'](_0x8d4a('0x9c'),require('./api/intSalesforceConfiguration'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/salesforce/fields',require(_0x8d4a('0x9d')));_0x24d59c['use']('/api/integrations/sugarcrm/accounts',require('./api/intSugarcrmAccount'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x9e'),require('./api/intSugarcrmConfiguration'));_0x24d59c['use']('/api/integrations/sugarcrm/fields',require('./api/intSugarcrmField'));_0x24d59c['use']('/api/integrations/desk/accounts',require('./api/intDeskAccount'));_0x24d59c['use'](_0x8d4a('0x9f'),require(_0x8d4a('0xa0')));_0x24d59c['use'](_0x8d4a('0xa1'),require(_0x8d4a('0xa2')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xa3'),require(_0x8d4a('0xa4')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xa5'),require('./api/intZohoConfiguration'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/zoho/fields',require('./api/intZohoField'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/zendesk/accounts',require(_0x8d4a('0xa6')));_0x24d59c['use']('/api/integrations/zendesk/configurations',require(_0x8d4a('0xa7')));_0x24d59c['use'](_0x8d4a('0xa8'),require(_0x8d4a('0xa9')));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/freshdesk/accounts',require(_0x8d4a('0xaa')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xab'),require(_0x8d4a('0xac')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xad'),require('./api/intFreshdeskField'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xae'),require(_0x8d4a('0xaf')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb0'),require(_0x8d4a('0xb1')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb2'),require(_0x8d4a('0xb3')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb4'),require(_0x8d4a('0xb5')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb6'),require(_0x8d4a('0xb7')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb8'),require(_0x8d4a('0xb9')));_0x24d59c['use'](_0x8d4a('0xba'),require('./api/intDynamics365Account'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/dynamics365/configurations',require('./api/intDynamics365Configuration'));_0x24d59c['use']('/api/integrations/dynamics365/fields',require('./api/intDynamics365Field'));_0x24d59c['use'](_0x8d4a('0xbb'),require('./api/intFreshsalesAccount'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xbc'),require(_0x8d4a('0xbd')));_0x24d59c['use'](_0x8d4a('0xbe'),require(_0x8d4a('0xbf')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc0'),require('./api/network'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc1'),require('./api/chatQueueReport'));_0x24d59c[_0x8d4a('0x12')]('/api/chat/internal/messages',require(_0x8d4a('0xc2')));_0x24d59c[_0x8d4a('0x12')]('/api/jscripty/answers/reports',require(_0x8d4a('0xc3')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc4'),require(_0x8d4a('0xc5')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc6'),require(_0x8d4a('0xc7')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc8'),require(_0x8d4a('0xc9')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xca'),require(_0x8d4a('0xcb')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xcc'),require(_0x8d4a('0xcd')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xce'),require(_0x8d4a('0xcf')));_0x24d59c['use'](_0x8d4a('0xd0'),require('./api/setting'));_0x24d59c['use']('/api/square/odbc',require(_0x8d4a('0xd1')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd2'),require('./api/squareProject'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd3'),require('./api/squareRecording'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd4'),require('./api/squareMessage'));_0x24d59c[_0x8d4a('0x12')]('/api/teams',require(_0x8d4a('0xd5')));_0x24d59c['use'](_0x8d4a('0xd6'),require(_0x8d4a('0xd7')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd8'),require('./api/campaign'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd9'),require('./api/migration'));_0x24d59c['use'](_0x8d4a('0xda'),require(_0x8d4a('0xdb')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xdc'),require(_0x8d4a('0xdd')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xde'),require(_0x8d4a('0xdf')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xe0'),require(_0x8d4a('0xe1')));_0x24d59c[_0x8d4a('0x12')]('/api/fax/reports/transfer',require(_0x8d4a('0xe2')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xe3'),require(_0x8d4a('0xe4')));_0x24d59c['use'](_0x8d4a('0xe5'),require(_0x8d4a('0xe6')));_0x24d59c['use']('/api/cm/lists',require(_0x8d4a('0xe7')));_0x24d59c[_0x8d4a('0x12')]('/api/voice/prefixes',require(_0x8d4a('0xe8')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xe9'),require(_0x8d4a('0xea')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xeb'),require(_0x8d4a('0xec')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xed'),require(_0x8d4a('0xee')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xef'),require('./api/userNotification'));_0x24d59c[_0x8d4a('0x12')]('/api/whatsapp/accounts',require(_0x8d4a('0xf0')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf1'),require(_0x8d4a('0xf2')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf3'),require(_0x8d4a('0xf4')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf5'),require(_0x8d4a('0xf6')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf7'),require(_0x8d4a('0xf8')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf9'),require(_0x8d4a('0xfa')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xfb'),require(_0x8d4a('0xfc')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xfd'),require(_0x8d4a('0xfe')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xff'),require('./api/realtime'));_0x24d59c[_0x8d4a('0x12')]('/api/auth/local',require(_0x8d4a('0x100')));_0x24d59c['use'](_0x8d4a('0x101'),require('./api/authGoogle'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x102'),require('./api/jira'));_0x24d59c['use'](_0x8d4a('0x103'),require(_0x8d4a('0x104')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x105'),require(_0x8d4a('0x106')));_0x24d59c[_0x8d4a('0x12')]('/api/system',require(_0x8d4a('0x107')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x108'),require(_0x8d4a('0x109')));_0x24d59c['use'](_0x8d4a('0x10a'),require('./api/webbar'));_0x24d59c['use'](_0x8d4a('0x10b'),express[_0x8d4a('0x10c')](path['join'](config[_0x8d4a('0x10d')],_0x8d4a('0x10b'))));_0x24d59c['use'](_0x8d4a('0x10e'),express['static'](path['join'](config[_0x8d4a('0x10d')],_0x8d4a('0x10e'))));_0x24d59c['use'](_0x8d4a('0x10f'),express[_0x8d4a('0x10c')](path[_0x8d4a('0x110')](config['root'],_0x8d4a('0x10f'))));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x111'),express['static'](path[_0x8d4a('0x110')](config[_0x8d4a('0x10d')],_0x8d4a('0x112'),'3.0.0')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x113'),express[_0x8d4a('0x10c')](path[_0x8d4a('0x110')](config[_0x8d4a('0x10d')],_0x8d4a('0x114'))));_0x24d59c[_0x8d4a('0x115')](_0x8d4a('0x116'))[_0x8d4a('0x117')](errors[0x194]);_0x24d59c['route']('/*')[_0x8d4a('0x117')](function(_0x45fed3,_0xb7257d){_0xb7257d[_0x8d4a('0x118')](path[_0x8d4a('0x119')](_0x24d59c[_0x8d4a('0x117')](_0x8d4a('0x11a'))+_0x8d4a('0x11b')));});};var sensitiveFields=[_0x8d4a('0x11c'),_0x8d4a('0x11d'),_0x8d4a('0x11e'),_0x8d4a('0x11f'),_0x8d4a('0x120'),_0x8d4a('0x121'),'street',_0x8d4a('0x122'),_0x8d4a('0x123'),_0x8d4a('0x124'),_0x8d4a('0x125'),'clientId',_0x8d4a('0x126'),_0x8d4a('0x127'),_0x8d4a('0x128'),_0x8d4a('0x129'),_0x8d4a('0x12a'),'token',_0x8d4a('0x12b'),_0x8d4a('0x12c'),_0x8d4a('0x12d'),_0x8d4a('0x12e'),_0x8d4a('0x12f'),_0x8d4a('0x130'),'membername',_0x8d4a('0x131'),_0x8d4a('0x132'),_0x8d4a('0x133'),_0x8d4a('0x134'),'clientEmail',_0x8d4a('0x135'),_0x8d4a('0x136'),_0x8d4a('0x137'),_0x8d4a('0x138'),_0x8d4a('0x10'),_0x8d4a('0x139'),_0x8d4a('0x13a'),'localstationid',_0x8d4a('0x13b'),_0x8d4a('0x13c'),'registry','oldPassword'];function maskSensitiveData(_0x32b985){var _0x12be58=/(?!^)[\s\S](?!$)/g;if(!_[_0x8d4a('0x13d')](_0x32b985))return;for(var _0x30a9e2 in _0x32b985){if(_[_0x8d4a('0x13e')](_0x32b985[_0x30a9e2])){for(var _0x3f0550=0x0;_0x3f0550<_0x32b985[_0x30a9e2][_0x8d4a('0x13f')];_0x3f0550++){maskSensitiveData(_0x32b985[_0x30a9e2][_0x3f0550]);}}else if(_[_0x8d4a('0x13d')](_0x32b985[_0x30a9e2])){maskSensitiveData(_0x32b985[_0x30a9e2]);}else if(_[_0x8d4a('0x140')](_0x32b985[_0x30a9e2])){_0x32b985[_0x30a9e2]=_0x32b985[_0x30a9e2]['replace'](/{{{/g,_0x8d4a('0x141'))['replace'](/}}}/g,_0x8d4a('0x142'))['replace'](/{{/g,'@{')['replace'](/}}/g,'}@');if(_[_0x8d4a('0x143')](sensitiveFields,_0x30a9e2)){_0x32b985[_0x30a9e2]=_0x32b985[_0x30a9e2]['replace'](_0x12be58,'*');}}}}
\ No newline at end of file
+var _0x8250=['/api/mail/reports/queue','./api/mailQueueReport','/api/dashboards','./api/dashboard','./api/dashboardItem','./api/faxAccount','/api/fax/applications','./api/faxApplication','/api/fax/interactions','/api/fax/messages','./api/faxMessage','/api/fax/queues','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','./api/smsAccount','/api/sms/applications','./api/smsApplication','./api/smsMessage','/api/sms/queues','./api/smsQueue','/api/openchannel/applications','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','/api/openchannel/messages','./api/openchannelMessage','./api/openchannelQueue','/api/chat/websites','./api/chatWebsite','/api/openchannel/reports/queue','./api/openchannelQueueReport','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','/api/chat/messages','./api/chatMessage','./api/chatOfflineMessage','./api/chatQueue','/api/chat/groups','./api/chatGroup','/api/chat/proactive_actions','/api/cm/companies','./api/cmCompany','/api/cm/contacts','./api/cmContact','./api/cmHopper','/api/cm/hopper_black','/api/cm/hopper_history','/api/cm/custom_fields','./api/cmCustomField','/api/actions','./api/action','/api/automations','./api/automation','/api/dispositions','./api/disposition','./api/condition','/api/intervals','/api/pauses','./api/pause','./api/cdr','/api/voiceQueuesLog','./api/voiceQueuesLog','/api/schedules','./api/schedule','/api/tags','./api/tag','/api/templates','./api/trigger','/api/variables','/api/integrations','/api/integrations/reports','./api/integrationReport','/api/analytics/default_reports','./api/analyticDefaultReport','./api/analyticExtractedReport','./api/analyticMetric','./api/analyticFieldReport','/api/analytics/tree_reports','./api/analyticTreeReport','/api/integrations/salesforce/accounts','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','./api/intSalesforceConfiguration','/api/integrations/sugarcrm/accounts','./api/intSugarcrmAccount','./api/intSugarcrmConfiguration','/api/integrations/sugarcrm/fields','./api/intDeskAccount','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','./api/intZohoField','/api/integrations/zendesk/accounts','./api/intZendeskAccount','/api/integrations/zendesk/configurations','./api/intZendeskConfiguration','/api/integrations/freshdesk/accounts','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','./api/intFreshdeskField','./api/intVtigerAccount','/api/integrations/vtiger/configurations','./api/intVtigerConfiguration','/api/integrations/vtiger/fields','./api/intVtigerField','./api/intServicenowAccount','/api/integrations/servicenow/configurations','./api/intServicenowConfiguration','/api/integrations/servicenow/fields','./api/intServicenowField','/api/integrations/dynamics365/accounts','/api/integrations/dynamics365/configurations','./api/intDynamics365Configuration','/api/integrations/dynamics365/fields','./api/intDynamics365Field','./api/intFreshsalesAccount','/api/integrations/freshsales/fields','./api/intFreshsalesField','/api/networks','./api/network','/api/chat/reports/queue','/api/chat/internal/messages','./api/chatInternalMessage','/api/jscripty/answers/reports','./api/jscriptyAnswerReport','/api/jscripty/sessions/reports','./api/jscriptySessionReport','/api/sms/reports/queue','/api/square/reports','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','/api/settings','./api/setting','./api/squareOdbc','./api/squareProject','/api/square/recordings','/api/teams','./api/team','/api/license','./api/license','/api/campaigns','./api/migration','/api/attachments','/api/plugins','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','./api/chatTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','/api/openchannel/reports/transfer','/api/sms/reports/transfer','./api/smsTransferReport','./api/cmList','/api/voice/prefixes','/api/userProfiles','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','./api/userProfileResource','/api/userNotifications','./api/userNotification','/api/whatsapp/accounts','/api/whatsapp/applications','/api/whatsapp/interactions','/api/whatsapp/messages','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','./api/whatsappQueue','./api/cloudProvider','/api/realtime','./api/realtime','./api/authLocal','/api/auth/google','/api/jira','./api/jira','/api/rpc','/api/version','./api/version','./api/system','/api/pm2','./api/pm2','/api/webbar','./api/webbar','static','join','root','/apidoc','/www','/demo','/snippet','snippet','3.0.0','/plugins','/server/files/plugins','/:url(api|auth|components|app|bower_components|assets)/*','get','route','sendFile','resolve','appPath','/index.html','username','password','newPassword','apiKey','lastName','street','mobile','fax','email','clientId','clientSecret','securityToken','accessKey','token','channelSecret','accessToken','accessTokenSecret','authToken','consumerKey','consumerSecret','membername','calleridname','calleridnum','vidaooApiKey','clientEmail','privateKey','accesskeyid','accountSid','localstationid','secret','oldPassword','isPlainObject','isArray','length','isString','replace','includes','lodash','path','express','express-winston','./errors','./config/environment','api','auth','safeTemplate','default','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','format','method','headers','x-forwarded-for','remoteAddress','url','statusCode','responseTime','user','inspect','use','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','name','role','device','other','agent_name','./api/user','./api/voiceChanSpy','/api/voice/contexts','./api/voiceContext','/api/voice/extensions','/api/voice/mohs','/api/voice/queues','./api/voiceQueue','/api/voice/recordings','/api/screen/recordings','./api/screenRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','/api/voice/dials/reports','./api/voiceDialReport','/api/voice/queues/reports','./api/voiceQueueReport','./api/memberReport','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','/api/mail/out_servers','./api/mailServerOut','./api/mailAccount','/api/mail/queues','./api/mailQueue','/api/mail/substatuses','/api/mail/messages','./api/mailMessage','/api/mail/applications','./api/mailApplication'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8250,0xfa));var _0x0825=function(_0x148bbb,_0x543b1c){_0x148bbb=_0x148bbb-0x0;var _0x29f11a=_0x8250[_0x148bbb];return _0x29f11a;};'use strict';var _=require(_0x0825('0x0'));var path=require(_0x0825('0x1'));var express=require(_0x0825('0x2'));var ewinston=require(_0x0825('0x3'));var util=require('util');var errors=require(_0x0825('0x4'));var config=require(_0x0825('0x5'));var logger=require('./config/logger')(_0x0825('0x6'));var authLogger=require('./config/logger')(_0x0825('0x7'));var safeTemplate=require('./safe-template')[_0x0825('0x8')];exports[_0x0825('0x9')]=function(_0x25c12d){_0x25c12d['use'](ewinston[_0x0825('0xa')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x4da840,_0x2e93f9){var _0x1b6415=_0x0825('0xb');if(!_[_0x0825('0xc')](_0x4da840[_0x0825('0xd')])){_0x1b6415+='\x20body=%s';var _0x1e627d=_0x4da840['body'];maskSensitiveData(_0x1e627d);}return safeTemplate(util[_0x0825('0xe')](_0x1b6415,_0x4da840[_0x0825('0xf')],_0x4da840[_0x0825('0x10')][_0x0825('0x11')]?_0x4da840[_0x0825('0x10')][_0x0825('0x11')]:_0x4da840['connection'][_0x0825('0x12')]||_0x4da840['ip'],_0x4da840[_0x0825('0x13')],_0x2e93f9[_0x0825('0x14')],_0x2e93f9[_0x0825('0x15')],_0x4da840[_0x0825('0x16')]?_0x4da840[_0x0825('0x16')]['id']:null,_0x4da840[_0x0825('0x16')]?_0x4da840['user']['name']:null,_0x4da840['user']?_0x4da840[_0x0825('0x16')]['role']:null,_0x1e627d?util[_0x0825('0x17')](_0x1e627d,![],null):''));}}));_0x25c12d[_0x0825('0x18')](ewinston[_0x0825('0xa')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x431558,_0x1b7243){var _0x5bdbb7='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x431558[_0x0825('0xd')]&&_0x431558['body']['device']&&_0x431558[_0x0825('0xd')][_0x0825('0x19')]){_0x5bdbb7=_0x0825('0x1a');}return util[_0x0825('0xe')](_0x5bdbb7,_0x431558[_0x0825('0xf')],_0x431558[_0x0825('0x10')][_0x0825('0x11')]?_0x431558[_0x0825('0x10')][_0x0825('0x11')]:_0x431558['connection'][_0x0825('0x12')]||_0x431558['ip'],_0x431558[_0x0825('0x13')],_0x1b7243[_0x0825('0x14')],_0x1b7243[_0x0825('0x15')],_0x431558['user']?_0x431558[_0x0825('0x16')]['id']:null,_0x431558[_0x0825('0x16')]?_0x431558['user'][_0x0825('0x1b')]:null,_0x431558[_0x0825('0x16')]?_0x431558[_0x0825('0x16')][_0x0825('0x1c')]:null,_0x431558[_0x0825('0xd')]&&_0x431558['body']['device']?_0x431558['body'][_0x0825('0x1d')]:_0x0825('0x1e'),_0x431558[_0x0825('0xd')]&&_0x431558[_0x0825('0xd')][_0x0825('0x19')]?_0x431558[_0x0825('0xd')][_0x0825('0x19')]:'',_0x431558['body']&&_0x431558[_0x0825('0xd')]['agent_name']?_0x431558['body'][_0x0825('0x1f')]:'');},'ignoreRoute':function(_0xaaee1a){var _0x4ec632=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x4ec632['test'](_0xaaee1a['url']);}}));_0x25c12d['use']('/api/users',require(_0x0825('0x20')));_0x25c12d[_0x0825('0x18')]('/api/voice/chanspy',require(_0x0825('0x21')));_0x25c12d[_0x0825('0x18')](_0x0825('0x22'),require(_0x0825('0x23')));_0x25c12d[_0x0825('0x18')](_0x0825('0x24'),require('./api/voiceExtension'));_0x25c12d[_0x0825('0x18')](_0x0825('0x25'),require('./api/voiceMusicOnHold'));_0x25c12d[_0x0825('0x18')](_0x0825('0x26'),require(_0x0825('0x27')));_0x25c12d['use'](_0x0825('0x28'),require('./api/voiceRecording'));_0x25c12d[_0x0825('0x18')](_0x0825('0x29'),require(_0x0825('0x2a')));_0x25c12d[_0x0825('0x18')](_0x0825('0x2b'),require(_0x0825('0x2c')));_0x25c12d[_0x0825('0x18')](_0x0825('0x2d'),require(_0x0825('0x2e')));_0x25c12d[_0x0825('0x18')]('/api/voice/calls/reports',require('./api/voiceCallReport'));_0x25c12d[_0x0825('0x18')](_0x0825('0x2f'),require(_0x0825('0x30')));_0x25c12d[_0x0825('0x18')]('/api/voice/agents/reports',require('./api/voiceAgentReport'));_0x25c12d[_0x0825('0x18')](_0x0825('0x31'),require(_0x0825('0x32')));_0x25c12d['use']('/api/members/reports',require(_0x0825('0x33')));_0x25c12d[_0x0825('0x18')]('/api/trunks',require(_0x0825('0x34')));_0x25c12d['use'](_0x0825('0x35'),require(_0x0825('0x36')));_0x25c12d[_0x0825('0x18')](_0x0825('0x37'),require(_0x0825('0x38')));_0x25c12d[_0x0825('0x18')]('/api/mail/accounts',require(_0x0825('0x39')));_0x25c12d[_0x0825('0x18')](_0x0825('0x3a'),require(_0x0825('0x3b')));_0x25c12d[_0x0825('0x18')](_0x0825('0x3c'),require('./api/mailSubstatus'));_0x25c12d['use']('/api/mail/interactions',require('./api/mailInteraction'));_0x25c12d[_0x0825('0x18')](_0x0825('0x3d'),require(_0x0825('0x3e')));_0x25c12d[_0x0825('0x18')](_0x0825('0x3f'),require(_0x0825('0x40')));_0x25c12d['use'](_0x0825('0x41'),require(_0x0825('0x42')));_0x25c12d['use'](_0x0825('0x43'),require(_0x0825('0x44')));_0x25c12d[_0x0825('0x18')]('/api/dashboards/items',require(_0x0825('0x45')));_0x25c12d[_0x0825('0x18')]('/api/fax/accounts',require(_0x0825('0x46')));_0x25c12d[_0x0825('0x18')](_0x0825('0x47'),require(_0x0825('0x48')));_0x25c12d['use'](_0x0825('0x49'),require('./api/faxInteraction'));_0x25c12d['use'](_0x0825('0x4a'),require(_0x0825('0x4b')));_0x25c12d[_0x0825('0x18')](_0x0825('0x4c'),require('./api/faxQueue'));_0x25c12d[_0x0825('0x18')](_0x0825('0x4d'),require(_0x0825('0x4e')));_0x25c12d[_0x0825('0x18')](_0x0825('0x4f'),require(_0x0825('0x50')));_0x25c12d[_0x0825('0x18')](_0x0825('0x51'),require(_0x0825('0x52')));_0x25c12d[_0x0825('0x18')]('/api/sms/interactions',require('./api/smsInteraction'));_0x25c12d['use']('/api/sms/messages',require(_0x0825('0x53')));_0x25c12d['use'](_0x0825('0x54'),require(_0x0825('0x55')));_0x25c12d[_0x0825('0x18')]('/api/openchannel/accounts',require('./api/openchannelAccount'));_0x25c12d[_0x0825('0x18')](_0x0825('0x56'),require(_0x0825('0x57')));_0x25c12d[_0x0825('0x18')](_0x0825('0x58'),require(_0x0825('0x59')));_0x25c12d[_0x0825('0x18')](_0x0825('0x5a'),require(_0x0825('0x5b')));_0x25c12d[_0x0825('0x18')]('/api/openchannel/queues',require(_0x0825('0x5c')));_0x25c12d[_0x0825('0x18')](_0x0825('0x5d'),require(_0x0825('0x5e')));_0x25c12d['use'](_0x0825('0x5f'),require(_0x0825('0x60')));_0x25c12d[_0x0825('0x18')]('/api/chat/applications',require(_0x0825('0x61')));_0x25c12d[_0x0825('0x18')](_0x0825('0x62'),require(_0x0825('0x63')));_0x25c12d[_0x0825('0x18')](_0x0825('0x64'),require(_0x0825('0x65')));_0x25c12d['use']('/api/chat/offline_messages',require(_0x0825('0x66')));_0x25c12d[_0x0825('0x18')]('/api/chat/queues',require(_0x0825('0x67')));_0x25c12d[_0x0825('0x18')](_0x0825('0x68'),require(_0x0825('0x69')));_0x25c12d[_0x0825('0x18')](_0x0825('0x6a'),require('./api/chatProactiveAction'));_0x25c12d['use'](_0x0825('0x6b'),require(_0x0825('0x6c')));_0x25c12d[_0x0825('0x18')](_0x0825('0x6d'),require(_0x0825('0x6e')));_0x25c12d[_0x0825('0x18')]('/api/cm/hopper',require(_0x0825('0x6f')));_0x25c12d[_0x0825('0x18')](_0x0825('0x70'),require('./api/cmHopperBlack'));_0x25c12d['use']('/api/cm/hopper_final',require('./api/cmHopperFinal'));_0x25c12d[_0x0825('0x18')](_0x0825('0x71'),require('./api/cmHopperHistory'));_0x25c12d[_0x0825('0x18')](_0x0825('0x72'),require(_0x0825('0x73')));_0x25c12d['use'](_0x0825('0x74'),require(_0x0825('0x75')));_0x25c12d['use'](_0x0825('0x76'),require(_0x0825('0x77')));_0x25c12d[_0x0825('0x18')]('/api/canned_answers',require('./api/cannedAnswer'));_0x25c12d[_0x0825('0x18')](_0x0825('0x78'),require(_0x0825('0x79')));_0x25c12d[_0x0825('0x18')]('/api/conditions',require(_0x0825('0x7a')));_0x25c12d['use'](_0x0825('0x7b'),require('./api/interval'));_0x25c12d['use'](_0x0825('0x7c'),require(_0x0825('0x7d')));_0x25c12d['use']('/api/cdr',require(_0x0825('0x7e')));_0x25c12d[_0x0825('0x18')](_0x0825('0x7f'),require(_0x0825('0x80')));_0x25c12d[_0x0825('0x18')](_0x0825('0x81'),require(_0x0825('0x82')));_0x25c12d['use']('/api/sounds',require('./api/sound'));_0x25c12d[_0x0825('0x18')](_0x0825('0x83'),require(_0x0825('0x84')));_0x25c12d[_0x0825('0x18')](_0x0825('0x85'),require('./api/template'));_0x25c12d[_0x0825('0x18')]('/api/triggers',require(_0x0825('0x86')));_0x25c12d[_0x0825('0x18')](_0x0825('0x87'),require('./api/variable'));_0x25c12d['use'](_0x0825('0x88'),require('./api/integration'));_0x25c12d[_0x0825('0x18')](_0x0825('0x89'),require(_0x0825('0x8a')));_0x25c12d[_0x0825('0x18')]('/api/analytics/custom_reports',require('./api/analyticCustomReport'));_0x25c12d['use'](_0x0825('0x8b'),require(_0x0825('0x8c')));_0x25c12d[_0x0825('0x18')]('/api/analytics/extracted_reports',require(_0x0825('0x8d')));_0x25c12d[_0x0825('0x18')]('/api/analytics/metrics',require(_0x0825('0x8e')));_0x25c12d['use']('/api/analytics/field_reports',require(_0x0825('0x8f')));_0x25c12d['use'](_0x0825('0x90'),require(_0x0825('0x91')));_0x25c12d[_0x0825('0x18')](_0x0825('0x92'),require(_0x0825('0x93')));_0x25c12d['use'](_0x0825('0x94'),require(_0x0825('0x95')));_0x25c12d[_0x0825('0x18')]('/api/integrations/salesforce/fields',require('./api/intSalesforceField'));_0x25c12d[_0x0825('0x18')](_0x0825('0x96'),require(_0x0825('0x97')));_0x25c12d[_0x0825('0x18')]('/api/integrations/sugarcrm/configurations',require(_0x0825('0x98')));_0x25c12d[_0x0825('0x18')](_0x0825('0x99'),require('./api/intSugarcrmField'));_0x25c12d[_0x0825('0x18')]('/api/integrations/desk/accounts',require(_0x0825('0x9a')));_0x25c12d[_0x0825('0x18')](_0x0825('0x9b'),require(_0x0825('0x9c')));_0x25c12d[_0x0825('0x18')](_0x0825('0x9d'),require(_0x0825('0x9e')));_0x25c12d[_0x0825('0x18')]('/api/integrations/zoho/accounts',require(_0x0825('0x9f')));_0x25c12d['use'](_0x0825('0xa0'),require(_0x0825('0xa1')));_0x25c12d[_0x0825('0x18')]('/api/integrations/zoho/fields',require(_0x0825('0xa2')));_0x25c12d[_0x0825('0x18')](_0x0825('0xa3'),require(_0x0825('0xa4')));_0x25c12d[_0x0825('0x18')](_0x0825('0xa5'),require(_0x0825('0xa6')));_0x25c12d['use']('/api/integrations/zendesk/fields',require('./api/intZendeskField'));_0x25c12d[_0x0825('0x18')](_0x0825('0xa7'),require(_0x0825('0xa8')));_0x25c12d[_0x0825('0x18')](_0x0825('0xa9'),require(_0x0825('0xaa')));_0x25c12d[_0x0825('0x18')](_0x0825('0xab'),require(_0x0825('0xac')));_0x25c12d['use']('/api/integrations/vtiger/accounts',require(_0x0825('0xad')));_0x25c12d[_0x0825('0x18')](_0x0825('0xae'),require(_0x0825('0xaf')));_0x25c12d[_0x0825('0x18')](_0x0825('0xb0'),require(_0x0825('0xb1')));_0x25c12d[_0x0825('0x18')]('/api/integrations/servicenow/accounts',require(_0x0825('0xb2')));_0x25c12d[_0x0825('0x18')](_0x0825('0xb3'),require(_0x0825('0xb4')));_0x25c12d[_0x0825('0x18')](_0x0825('0xb5'),require(_0x0825('0xb6')));_0x25c12d[_0x0825('0x18')](_0x0825('0xb7'),require('./api/intDynamics365Account'));_0x25c12d[_0x0825('0x18')](_0x0825('0xb8'),require(_0x0825('0xb9')));_0x25c12d[_0x0825('0x18')](_0x0825('0xba'),require(_0x0825('0xbb')));_0x25c12d['use']('/api/integrations/freshsales/accounts',require(_0x0825('0xbc')));_0x25c12d['use']('/api/integrations/freshsales/configurations',require('./api/intFreshsalesConfiguration'));_0x25c12d[_0x0825('0x18')](_0x0825('0xbd'),require(_0x0825('0xbe')));_0x25c12d[_0x0825('0x18')](_0x0825('0xbf'),require(_0x0825('0xc0')));_0x25c12d[_0x0825('0x18')](_0x0825('0xc1'),require('./api/chatQueueReport'));_0x25c12d[_0x0825('0x18')](_0x0825('0xc2'),require(_0x0825('0xc3')));_0x25c12d[_0x0825('0x18')](_0x0825('0xc4'),require(_0x0825('0xc5')));_0x25c12d['use']('/api/jscripty/questions/reports',require('./api/jscriptyQuestionReport'));_0x25c12d['use'](_0x0825('0xc6'),require(_0x0825('0xc7')));_0x25c12d[_0x0825('0x18')](_0x0825('0xc8'),require('./api/smsQueueReport'));_0x25c12d[_0x0825('0x18')](_0x0825('0xc9'),require('./api/squareReport'));_0x25c12d[_0x0825('0x18')](_0x0825('0xca'),require(_0x0825('0xcb')));_0x25c12d[_0x0825('0x18')](_0x0825('0xcc'),require(_0x0825('0xcd')));_0x25c12d[_0x0825('0x18')](_0x0825('0xce'),require(_0x0825('0xcf')));_0x25c12d[_0x0825('0x18')]('/api/square/odbc',require(_0x0825('0xd0')));_0x25c12d['use']('/api/square/projects',require(_0x0825('0xd1')));_0x25c12d[_0x0825('0x18')](_0x0825('0xd2'),require('./api/squareRecording'));_0x25c12d[_0x0825('0x18')]('/api/square/messages',require('./api/squareMessage'));_0x25c12d[_0x0825('0x18')](_0x0825('0xd3'),require(_0x0825('0xd4')));_0x25c12d['use'](_0x0825('0xd5'),require(_0x0825('0xd6')));_0x25c12d['use'](_0x0825('0xd7'),require('./api/campaign'));_0x25c12d[_0x0825('0x18')]('/api/migrations',require(_0x0825('0xd8')));_0x25c12d['use'](_0x0825('0xd9'),require('./api/attachment'));_0x25c12d[_0x0825('0x18')](_0x0825('0xda'),require(_0x0825('0xdb')));_0x25c12d['use'](_0x0825('0xdc'),require(_0x0825('0xdd')));_0x25c12d[_0x0825('0x18')]('/api/chat/reports/transfer',require(_0x0825('0xde')));_0x25c12d[_0x0825('0x18')](_0x0825('0xdf'),require(_0x0825('0xe0')));_0x25c12d[_0x0825('0x18')](_0x0825('0xe1'),require('./api/openchannelTransferReport'));_0x25c12d[_0x0825('0x18')](_0x0825('0xe2'),require(_0x0825('0xe3')));_0x25c12d[_0x0825('0x18')]('/api/cm/lists',require(_0x0825('0xe4')));_0x25c12d['use'](_0x0825('0xe5'),require('./api/voicePrefix'));_0x25c12d[_0x0825('0x18')](_0x0825('0xe6'),require(_0x0825('0xe7')));_0x25c12d[_0x0825('0x18')](_0x0825('0xe8'),require(_0x0825('0xe9')));_0x25c12d[_0x0825('0x18')]('/api/userProfile/resources',require(_0x0825('0xea')));_0x25c12d['use'](_0x0825('0xeb'),require(_0x0825('0xec')));_0x25c12d[_0x0825('0x18')](_0x0825('0xed'),require('./api/whatsappAccount'));_0x25c12d[_0x0825('0x18')](_0x0825('0xee'),require('./api/whatsappApplication'));_0x25c12d[_0x0825('0x18')](_0x0825('0xef'),require('./api/whatsappInteraction'));_0x25c12d['use'](_0x0825('0xf0'),require('./api/whatsappMessage'));_0x25c12d[_0x0825('0x18')]('/api/whatsapp/reports/queue',require(_0x0825('0xf1')));_0x25c12d[_0x0825('0x18')](_0x0825('0xf2'),require(_0x0825('0xf3')));_0x25c12d[_0x0825('0x18')]('/api/whatsapp/queues',require(_0x0825('0xf4')));_0x25c12d[_0x0825('0x18')]('/api/cloudProviders',require(_0x0825('0xf5')));_0x25c12d[_0x0825('0x18')](_0x0825('0xf6'),require(_0x0825('0xf7')));_0x25c12d[_0x0825('0x18')]('/api/auth/local',require(_0x0825('0xf8')));_0x25c12d[_0x0825('0x18')](_0x0825('0xf9'),require('./api/authGoogle'));_0x25c12d['use'](_0x0825('0xfa'),require(_0x0825('0xfb')));_0x25c12d[_0x0825('0x18')](_0x0825('0xfc'),require('./api/rpc'));_0x25c12d[_0x0825('0x18')](_0x0825('0xfd'),require(_0x0825('0xfe')));_0x25c12d[_0x0825('0x18')]('/api/system',require(_0x0825('0xff')));_0x25c12d['use'](_0x0825('0x100'),require(_0x0825('0x101')));_0x25c12d[_0x0825('0x18')](_0x0825('0x102'),require(_0x0825('0x103')));_0x25c12d['use']('/apidoc',express[_0x0825('0x104')](path[_0x0825('0x105')](config[_0x0825('0x106')],_0x0825('0x107'))));_0x25c12d[_0x0825('0x18')]('/www',express[_0x0825('0x104')](path[_0x0825('0x105')](config[_0x0825('0x106')],_0x0825('0x108'))));_0x25c12d[_0x0825('0x18')](_0x0825('0x109'),express[_0x0825('0x104')](path['join'](config[_0x0825('0x106')],_0x0825('0x109'))));_0x25c12d[_0x0825('0x18')](_0x0825('0x10a'),express[_0x0825('0x104')](path['join'](config[_0x0825('0x106')],_0x0825('0x10b'),_0x0825('0x10c'))));_0x25c12d[_0x0825('0x18')](_0x0825('0x10d'),express[_0x0825('0x104')](path['join'](config[_0x0825('0x106')],_0x0825('0x10e'))));_0x25c12d['route'](_0x0825('0x10f'))[_0x0825('0x110')](errors[0x194]);_0x25c12d[_0x0825('0x111')]('/*')[_0x0825('0x110')](function(_0x4d0aaa,_0x2f933c){_0x2f933c[_0x0825('0x112')](path[_0x0825('0x113')](_0x25c12d[_0x0825('0x110')](_0x0825('0x114'))+_0x0825('0x115')));});};var sensitiveFields=[_0x0825('0x116'),_0x0825('0x117'),_0x0825('0x118'),_0x0825('0x119'),'firstName',_0x0825('0x11a'),_0x0825('0x11b'),'phone',_0x0825('0x11c'),_0x0825('0x11d'),_0x0825('0x11e'),_0x0825('0x11f'),_0x0825('0x120'),_0x0825('0x121'),'code',_0x0825('0x122'),'tenantId',_0x0825('0x123'),_0x0825('0x124'),_0x0825('0x125'),_0x0825('0x126'),_0x0825('0x127'),_0x0825('0x128'),_0x0825('0x129'),_0x0825('0x12a'),_0x0825('0x12b'),_0x0825('0x12c'),'exten',_0x0825('0x12d'),_0x0825('0x12e'),_0x0825('0x12f'),_0x0825('0x130'),'secretaccesskey','key','user','pass',_0x0825('0x131'),_0x0825('0x132'),'dsn',_0x0825('0x133'),'registry',_0x0825('0x134')];function maskSensitiveData(_0xefdc61){var _0x5a14bb=/(?!^)[\s\S](?!$)/g;if(!_[_0x0825('0x135')](_0xefdc61))return;for(var _0x1108ef in _0xefdc61){if(_[_0x0825('0x136')](_0xefdc61[_0x1108ef])){for(var _0x4c528a=0x0;_0x4c528a<_0xefdc61[_0x1108ef][_0x0825('0x137')];_0x4c528a++){maskSensitiveData(_0xefdc61[_0x1108ef][_0x4c528a]);}}else if(_[_0x0825('0x135')](_0xefdc61[_0x1108ef])){maskSensitiveData(_0xefdc61[_0x1108ef]);}else if(_[_0x0825('0x138')](_0xefdc61[_0x1108ef])){_0xefdc61[_0x1108ef]=_0xefdc61[_0x1108ef][_0x0825('0x139')](/{{{/g,'@@{')[_0x0825('0x139')](/}}}/g,'}@@')[_0x0825('0x139')](/{{/g,'@{')[_0x0825('0x139')](/}}/g,'}@');if(_[_0x0825('0x13a')](sensitiveFields,_0x1108ef)){_0xefdc61[_0x1108ef]=_0xefdc61[_0x1108ef][_0x0825('0x139')](_0x5a14bb,'*');}}}}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8403=['merge','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailAccount/mailAccount.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailApplication/mailApplication.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/chatQueue/chatQueue.rpc','../api/cmContact/cmContact.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/trigger/trigger.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/setting/setting.rpc','../api/squareProject/squareProject.rpc','../api/squareMessage/squareMessage.rpc','../api/campaign/campaign.rpc','../api/attachment/attachment.rpc','../api/plugin/plugin.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueue/whatsappQueue.rpc','server','http','rpc','port','localhost','error','log','../config/triggers','default','RPC\x20listening\x20on\x20','jayson/promise','bluebird','lodash','../config/environment','listen'];(function(_0x27a5bb,_0x3f4cfb){var _0x2e17ea=function(_0x22912d){while(--_0x22912d){_0x27a5bb['push'](_0x27a5bb['shift']());}};_0x2e17ea(++_0x3f4cfb);}(_0x8403,0x1a5));var _0x3840=function(_0x51f1bb,_0x3f0a0b){_0x51f1bb=_0x51f1bb-0x0;var _0x28aa72=_0x8403[_0x51f1bb];return _0x28aa72;};'use strict';var jayson=require(_0x3840('0x0'));var BPromise=require(_0x3840('0x1'));var _=require(_0x3840('0x2'));var config=require(_0x3840('0x3'));exports[_0x3840('0x4')]=function(){return new BPromise(function(_0x43a9f0,_0x502e0d){var _0x2e6b25={};_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/user/user.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x6')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x7')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x8')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/voiceCallReport/voiceCallReport.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x9')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/voiceAgentReport/voiceAgentReport.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0xa')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xb')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xc')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xd')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xe')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/mailServerIn/mailServerIn.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xf')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/mailQueue/mailQueue.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x10')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x11')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x12')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x13')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x14')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x15')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x16')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/faxMessage/faxMessage.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/faxQueue/faxQueue.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x17')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/smsAccount/smsAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x18')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/smsMessage/smsMessage.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x19')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1a')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/openchannelInteraction/openchannelInteraction.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1b')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x1c')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1d')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1e')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1f')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x20')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x21')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/cmHopper/cmHopper.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/cmHopperBlack/cmHopperBlack.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/cmHopperFinal/cmHopperFinal.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x22')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x23')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x24')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x25')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x26')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x27')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x28')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x29')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2a')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intSugarcrmAccount/intSugarcrmAccount.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x2b')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2c')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intFreshdeskAccount/intFreshdeskAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intVtigerAccount/intVtigerAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2d')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2e')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x2f')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x30')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x31')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/squareReport/squareReport.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x32')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x33')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/squareOdbc/squareOdbc.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x34')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/squareRecording/squareRecording.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x35')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x36')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x37')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x38')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x39')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x3a')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x3b')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/whatsappQueueReport/whatsappQueueReport.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x3c')));var _0x5a1537=jayson[_0x3840('0x3d')](_0x2e6b25)[_0x3840('0x3e')]();var _0x34a450=config[_0x3840('0x3f')][_0x3840('0x40')]||config['port']+0x1;var _0x332728=config['rpc']['ip']||_0x3840('0x41');_0x5a1537['on'](_0x3840('0x42'),function(_0x3e83b9){return _0x502e0d(_0x3e83b9);});_0x5a1537[_0x3840('0x4')](_0x34a450,_0x332728,function(){console[_0x3840('0x43')]('Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!',_0x332728,_0x34a450);require(_0x3840('0x44'))[_0x3840('0x45')]();return _0x43a9f0(_0x3840('0x46')+_0x332728+':'+_0x34a450);});});};
\ No newline at end of file
+var _0x5d79=['../api/intServicenowAccount/intServicenowAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/setting/setting.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareRecording/squareRecording.rpc','../api/campaign/campaign.rpc','../api/attachment/attachment.rpc','../api/plugin/plugin.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','server','http','port','rpc','localhost','error','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','default','RPC\x20listening\x20on\x20','bluebird','../config/environment','listen','merge','../api/user/user.rpc','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailServerIn/mailServerIn.rpc','../api/mailQueue/mailQueue.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailApplication/mailApplication.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsMessage/smsMessage.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/chatInteraction/chatInteraction.rpc','../api/cmContact/cmContact.rpc','../api/cmHopperBlack/cmHopperBlack.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/trigger/trigger.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intZendeskAccount/intZendeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc'];(function(_0x21b706,_0x1022f4){var _0x13b94a=function(_0x3116da){while(--_0x3116da){_0x21b706['push'](_0x21b706['shift']());}};_0x13b94a(++_0x1022f4);}(_0x5d79,0xff));var _0x95d7=function(_0x2ec6a8,_0x753f48){_0x2ec6a8=_0x2ec6a8-0x0;var _0x4011c2=_0x5d79[_0x2ec6a8];return _0x4011c2;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0x95d7('0x0'));var _=require('lodash');var config=require(_0x95d7('0x1'));exports[_0x95d7('0x2')]=function(){return new BPromise(function(_0x12e246,_0x113e7c){var _0x1692a7={};_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x4')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x5')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x6')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x7')));_0x1692a7=_['merge'](_0x1692a7,require('../api/voiceCallReport/voiceCallReport.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x8')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x9')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0xa')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0xb')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0xc')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0xd')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0xe')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0xf')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/mailAccount/mailAccount.rpc'));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x10')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x11')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x12')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x13')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x14')));_0x1692a7=_['merge'](_0x1692a7,require('../api/faxAccount/faxAccount.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/faxApplication/faxApplication.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x15')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x16')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/faxQueue/faxQueue.rpc'));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x17')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x18')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x19')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x1a')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/smsQueue/smsQueue.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x1b')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x1c')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x1d')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x1e')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/openchannelQueueReport/openchannelQueueReport.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x1f')));_0x1692a7=_['merge'](_0x1692a7,require('../api/chatMessage/chatMessage.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/chatQueue/chatQueue.rpc'));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x20')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/cmHopper/cmHopper.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x21')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x22')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x23')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x24')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x25')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x26')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x27')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x28')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x29')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x2a')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x2b')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x2c')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x2d')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x2e')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x2f')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/intFreshdeskAccount/intFreshdeskAccount.rpc'));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x30')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x31')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x32')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x33')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x34')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x35')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/squareReport/squareReport.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x36')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x37')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x38')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x39')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x3a')));_0x1692a7=_['merge'](_0x1692a7,require('../api/squareMessage/squareMessage.rpc'));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x3b')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x3c')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x3d')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x3e')));_0x1692a7=_['merge'](_0x1692a7,require(_0x95d7('0x3f')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x40')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require(_0x95d7('0x41')));_0x1692a7=_[_0x95d7('0x3')](_0x1692a7,require('../api/whatsappQueue/whatsappQueue.rpc'));var _0x3d6194=jayson[_0x95d7('0x42')](_0x1692a7)[_0x95d7('0x43')]();var _0x39ba9d=config['rpc'][_0x95d7('0x44')]||config[_0x95d7('0x44')]+0x1;var _0x449709=config[_0x95d7('0x45')]['ip']||_0x95d7('0x46');_0x3d6194['on'](_0x95d7('0x47'),function(_0x189824){return _0x113e7c(_0x189824);});_0x3d6194[_0x95d7('0x2')](_0x39ba9d,_0x449709,function(){console[_0x95d7('0x48')](_0x95d7('0x49'),_0x449709,_0x39ba9d);require('../config/triggers')[_0x95d7('0x4a')]();return _0x12e246(_0x95d7('0x4b')+_0x449709+':'+_0x39ba9d);});});};
\ No newline at end of file
--- /dev/null
+// *************************************************************************
+// * *
+// * xCALLY Motion - The Omnichannel Contact Center *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
+// * *
+// *************************************************************************
+// * *
+// * Email: info@xcally.com *
+// * Website: https://www.xcally.com *
+// * *
+// *************************************************************************
+// * *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
+// * *
+// *************************************************************************
+var _0x5f66=['\x20}\x20}','string','replace','map','isPlainObject','keys','exports','safeTemplate'];(function(_0x3de873,_0x174b5f){var _0x380b8c=function(_0x313dea){while(--_0x313dea){_0x3de873['push'](_0x3de873['shift']());}};_0x380b8c(++_0x174b5f);}(_0x5f66,0x1a0));var _0x65f6=function(_0x5d4607,_0x6b5e7b){_0x5d4607=_0x5d4607-0x0;var _0x5e4a86=_0x5f66[_0x5d4607];return _0x5e4a86;};var _=require('lodash');var mustacheLikeBracketsRx=/(\{|\}){2}/gm;function bracketsReplacer(_0x61c60c){return _0x61c60c==='{{'?'{\x20{\x20':_0x65f6('0x0');}function safeTemplate(_0x2f06ae){var _0x3461cd=_0x2f06ae;if(typeof _0x2f06ae===_0x65f6('0x1')){_0x3461cd=_0x2f06ae[_0x65f6('0x2')](mustacheLikeBracketsRx,bracketsReplacer);}else if(Array['isArray'](_0x2f06ae)){_0x3461cd=_0x2f06ae[_0x65f6('0x3')](function(_0x5150c8){return safeTemplate(_0x5150c8);});}else if(_[_0x65f6('0x4')](_0x2f06ae)){_0x3461cd=Object[_0x65f6('0x5')](_0x2f06ae)['reduce'](function(_0x4ed98f,_0x1c0e12){_0x4ed98f[_0x1c0e12]=safeTemplate(_0x2f06ae[_0x1c0e12]);return _0x4ed98f;},{});}return _0x3461cd;}module[_0x65f6('0x6')][_0x65f6('0x7')]=safeTemplate;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1bce=['close','destroy','inherits','prototype','sendRequest','command','sync','answer','ANSWER','noop','format','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setPriority','SET\x20PRIORITY\x20%s','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','extension','setExtension','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','streamFile','agi','AGI','wait','WAIT','label','exports','util','lodash','EventEmitter','./reply','./error','call','setTimeout','setEncoding','utf8','headers','ready','toLowerCase','hangup','substring','search','520\x20End\x20of\x20proper','replace','result=','indexOf','startsWith','split','length','error','emit','E_AGI_SOCKET_ERROR','code','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','write'];(function(_0x487702,_0x49f5d4){var _0x5e7150=function(_0x2b2b29){while(--_0x2b2b29){_0x487702['push'](_0x487702['shift']());}};_0x5e7150(++_0x49f5d4);}(_0x1bce,0x73));var _0xe1bc=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x1bce[_0x2641f9];return _0x585741;};'use strict';var util=require(_0xe1bc('0x0'));var _=require(_0xe1bc('0x1'));var EventEmitter=require('events')[_0xe1bc('0x2')];var AGIReply=require(_0xe1bc('0x3'));var AGIError=require(_0xe1bc('0x4'));function AGIChannel(_0x37ad98){var _0xc1ee3e=this,_0x31a5e=new AGIReply(),_0x2cc947=![],_0x3e063b={};EventEmitter[_0xe1bc('0x5')](_0xc1ee3e);_0x37ad98['setEncoding']('utf8');_0x37ad98[_0xe1bc('0x6')](0x8*0x3c*0x3c*0x3e8);_0x31a5e[_0xe1bc('0x7')](_0xe1bc('0x8'));_0x31a5e['on'](_0xe1bc('0x9'),function(_0x1a861f){for(var _0x135e72 in _0x1a861f){_0xc1ee3e[_0x135e72]=_0x1a861f[_0x135e72];}_0xc1ee3e['emit'](_0xe1bc('0xa'));});_0x31a5e['on']('line',function(_0x191147){if(_0x191147[_0xe1bc('0xb')]()==_0xe1bc('0xc')){_0xc1ee3e['emit'](_0xe1bc('0xc'));return;}if(_0x191147[_0xe1bc('0xd')](0x0,0xb)=='520-Invalid'){_0x2cc947=!![];}if(_0x2cc947){_0x3e063b['rx']+=_0x191147+'\x0a';if(_0x191147[_0xe1bc('0xe')](_0xe1bc('0xf'))!=-0x1){_0x2cc947=![];}}else{_0x3e063b['rx']=_0x191147;}if(_0x2cc947){return;}if(typeof _0x3e063b['cb']=='function'){var _0x5c8b9f=_0x3e063b['rx'][_0xe1bc('0xd')](0x0,0x3),_0xdb61b=null,_0xc89560=null;_0x5c8b9f=parseInt(_0x5c8b9f);if(isNaN(_0x5c8b9f)){_0x3e063b['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x5c8b9f!=0xc8){_0x3e063b['cb'](null,{'code':_0x5c8b9f,'result':-0x1,'extra':'KO'});return;}_0xdb61b=_0x3e063b['rx']['substring'](0x4)[_0xe1bc('0x10')](_0xe1bc('0x11'),'');if(_0xdb61b[_0xe1bc('0x12')]('\x20')!=-0x1){_0xdb61b=_0xdb61b['substr'](0x0,_0xdb61b[_0xe1bc('0x12')]('\x20'));}if(_[_0xe1bc('0x13')](_0xdb61b,'-1')){_0xdb61b=parseInt(_0xdb61b);}_0xc89560=_0x3e063b['rx'][_0xe1bc('0x14')]('\x20');if(_0xc89560[_0xe1bc('0x15')]==0x3){_0xc89560=_0xc89560[0x2]['substring'](0x1,_0xc89560[0x2][_0xe1bc('0x15')]-0x1);}else if(_0xc89560['length']>0x3){var _0x306165=/\((.+)\)/;var _0x121f19=_0x3e063b['rx']['match'](_0x306165);if(_0x121f19){_0xc89560=_0x121f19[0x1];}else{_0xc89560=null;}}else{_0xc89560=null;}_0x3e063b['cb'](null,{'code':_0x5c8b9f,'result':_0xdb61b,'extra':_0xc89560});}});_0x37ad98['on'](_0xe1bc('0x16'),function(_0x1ed85d){_0xc1ee3e[_0xe1bc('0x17')](_0xe1bc('0x16'),new AGIError(_0xe1bc('0x18'),_0x1ed85d[_0xe1bc('0x19')]));});_0x37ad98['on']('close',function(){_0xc1ee3e[_0xe1bc('0x17')]('close',new AGIError(_0xe1bc('0x1a')));});_0x37ad98['on'](_0xe1bc('0x1b'),function(){_0xc1ee3e[_0xe1bc('0x17')](_0xe1bc('0x1b'),new AGIError(_0xe1bc('0x1c')));_0x37ad98['destroy']();});_0x37ad98[_0xe1bc('0x1d')](_0x31a5e);this['command']=function(_0x5f3bdc,_0x3a5f82){var _0x5f3bdc=_0x5f3bdc||'',_0x3a5f82=typeof _0x3a5f82=='function'?_0x3a5f82:new Function();_0x3e063b={'tx':_0x5f3bdc,'rx':'','cb':_0x3a5f82};_0x37ad98[_0xe1bc('0x1e')](_0x5f3bdc+'\x0a');},this[_0xe1bc('0x1f')]=function(){_0x37ad98[_0xe1bc('0x20')]();};}util[_0xe1bc('0x21')](AGIChannel,EventEmitter);AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x23')]=function(_0x33b32d){return this[_0xe1bc('0x24')][_0xe1bc('0x25')](this,_0x33b32d);};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x26')]=function(){return this[_0xe1bc('0x23')](_0xe1bc('0x27'));};AGIChannel['prototype']['getData']=function(_0x6311aa,_0x5905d6,_0x43527d){_0x6311aa=_0x6311aa===undefined?'beep':_0x6311aa;_0x5905d6=_0x5905d6===undefined?'5':_0x5905d6;_0x43527d=_0x43527d===undefined?'1':_0x43527d;return this[_0xe1bc('0x23')](util['format']('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x6311aa,_0x5905d6*0x3e8,_0x43527d));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x28')]=function(_0x58a667){_0x58a667=_0x58a667||'NO\x20MESSAGE';return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x2a'),_0x58a667));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x2b')]=function(_0x30b122,_0x122da8){if(_[_0xe1bc('0x2c')](_0x122da8)){return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x2d'),_0x30b122,_0x122da8[_0xe1bc('0x2e')](',')));}return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x2d'),_0x30b122,_0x122da8));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x2f')]=function(_0x31ab75){return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x30'),_0x31ab75));};AGIChannel['prototype']['setExtension']=function(_0x1e909e){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')]('SET\x20EXTENSION\x20%s',_0x1e909e));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x31')]=function(_0x4e6d8d){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x32'),_0x4e6d8d));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0xc')]=function(){return this[_0xe1bc('0x23')]('HANGUP');};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x33')]=function(_0x4d335b,_0x358458){var _0x47a5f8=_[_0xe1bc('0x34')](_0x358458)||_[_0xe1bc('0x35')](_0x358458)?_0x358458[_0xe1bc('0x36')]():_0x358458;return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x37'),_0x4d335b,_0x47a5f8?_0x47a5f8[_0xe1bc('0x36')]()[_0xe1bc('0x10')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x38')]=function(_0x2ec59d,_0x1cdc59){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x39'),_0x2ec59d,_0x1cdc59));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x3a')]=function(_0x3a1c73,_0x45ddd3){return this['sendRequest'](util[_0xe1bc('0x29')](_0xe1bc('0x3b'),_0x3a1c73,_0x45ddd3));};AGIChannel['prototype'][_0xe1bc('0x3c')]=function(_0x4e3d2d,_0x149d1a){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x3d'),_0x4e3d2d,_0x149d1a));};AGIChannel[_0xe1bc('0x22')]['continueAt']=function(_0x58eb90,_0x77161e,_0xf01082){_0x77161e=_0x77161e||this[_0xe1bc('0x3e')];_0xf01082=_0xf01082||0x1;this[_0xe1bc('0x2f')](_0x58eb90);this[_0xe1bc('0x3f')](_0x77161e);this[_0xe1bc('0x31')](_0xf01082);return this['noop'](util[_0xe1bc('0x29')](_0xe1bc('0x40'),_0x58eb90,_0x77161e,_0xf01082));};AGIChannel[_0xe1bc('0x22')]['getVariable']=function(_0x3fee8f){return this['sendRequest'](util[_0xe1bc('0x29')](_0xe1bc('0x41'),_0x3fee8f));};AGIChannel[_0xe1bc('0x22')]['recordFile']=function(_0x16b1b9,_0x2e216e,_0x34fed2,_0x59be59,_0x473a44,_0x5b0c25){_0x2e216e=_0x2e216e||'wav';_0x34fed2=_0x34fed2||'';_0x59be59=_0x59be59===undefined?-0x1:_0x59be59==='-1'?-0x1:_0x59be59*0x3e8;_0x473a44=_0x473a44===undefined?'':'s='+_0x473a44;_0x5b0c25=_0x5b0c25?'BEEP':'';return this['sendRequest'](util['format']('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x16b1b9,_0x2e216e,_0x34fed2,_0x59be59,_0x5b0c25,_0x473a44));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x42')]=function(_0x594ab5,_0x3ffe9f){_0x3ffe9f=_0x3ffe9f||'';return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x594ab5,_0x3ffe9f));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x43')]=function(_0x76f2b3){return this[_0xe1bc('0x2b')](_0xe1bc('0x44'),_0x76f2b3);};AGIChannel['prototype'][_0xe1bc('0x45')]=function(_0x476348){return this['exec'](_0xe1bc('0x46'),_0x476348);};AGIChannel[_0xe1bc('0x22')]['error']=function(_0x213118,_0x52263b){this[_0xe1bc('0x28')](util['format']('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x213118['id'],_0x213118[_0xe1bc('0x47')],_0x52263b));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xe1bc('0x48')]=AGIChannel;
\ No newline at end of file
+var _0xc22d=['util','lodash','events','EventEmitter','./error','call','setEncoding','utf8','headers','ready','line','toLowerCase','hangup','substring','search','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','indexOf','substr','split','length','match','error','emit','E_AGI_SOCKET_ERROR','close','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write','inherits','prototype','sync','sendRequest','ANSWER','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','format','exec','isArray','EXEC\x20%s\x20%s','setExtension','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','recordFile','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xc22d,0x172));var _0xdc22=function(_0x118ed4,_0x57c4a6){_0x118ed4=_0x118ed4-0x0;var _0x153302=_0xc22d[_0x118ed4];return _0x153302;};'use strict';var util=require(_0xdc22('0x0'));var _=require(_0xdc22('0x1'));var EventEmitter=require(_0xdc22('0x2'))[_0xdc22('0x3')];var AGIReply=require('./reply');var AGIError=require(_0xdc22('0x4'));function AGIChannel(_0x4c7170){var _0x526335=this,_0x1a91f5=new AGIReply(),_0x44431e=![],_0x1d1f89={};EventEmitter[_0xdc22('0x5')](_0x526335);_0x4c7170['setEncoding']('utf8');_0x4c7170['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x1a91f5[_0xdc22('0x6')](_0xdc22('0x7'));_0x1a91f5['on'](_0xdc22('0x8'),function(_0x5e590a){for(var _0x23e40c in _0x5e590a){_0x526335[_0x23e40c]=_0x5e590a[_0x23e40c];}_0x526335['emit'](_0xdc22('0x9'));});_0x1a91f5['on'](_0xdc22('0xa'),function(_0x37aa7f){if(_0x37aa7f[_0xdc22('0xb')]()==_0xdc22('0xc')){_0x526335['emit']('hangup');return;}if(_0x37aa7f[_0xdc22('0xd')](0x0,0xb)=='520-Invalid'){_0x44431e=!![];}if(_0x44431e){_0x1d1f89['rx']+=_0x37aa7f+'\x0a';if(_0x37aa7f[_0xdc22('0xe')](_0xdc22('0xf'))!=-0x1){_0x44431e=![];}}else{_0x1d1f89['rx']=_0x37aa7f;}if(_0x44431e){return;}if(typeof _0x1d1f89['cb']==_0xdc22('0x10')){var _0x11f556=_0x1d1f89['rx'][_0xdc22('0xd')](0x0,0x3),_0x320adf=null,_0x44b522=null;_0x11f556=parseInt(_0x11f556);if(isNaN(_0x11f556)){_0x1d1f89['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xdc22('0x11')});return;}if(_0x11f556!=0xc8){_0x1d1f89['cb'](null,{'code':_0x11f556,'result':-0x1,'extra':'KO'});return;}_0x320adf=_0x1d1f89['rx'][_0xdc22('0xd')](0x4)[_0xdc22('0x12')](_0xdc22('0x13'),'');if(_0x320adf[_0xdc22('0x14')]('\x20')!=-0x1){_0x320adf=_0x320adf[_0xdc22('0x15')](0x0,_0x320adf[_0xdc22('0x14')]('\x20'));}if(_['startsWith'](_0x320adf,'-1')){_0x320adf=parseInt(_0x320adf);}_0x44b522=_0x1d1f89['rx'][_0xdc22('0x16')]('\x20');if(_0x44b522[_0xdc22('0x17')]==0x3){_0x44b522=_0x44b522[0x2][_0xdc22('0xd')](0x1,_0x44b522[0x2][_0xdc22('0x17')]-0x1);}else if(_0x44b522[_0xdc22('0x17')]>0x3){var _0xf66b02=/\((.+)\)/;var _0x2a762b=_0x1d1f89['rx'][_0xdc22('0x18')](_0xf66b02);if(_0x2a762b){_0x44b522=_0x2a762b[0x1];}else{_0x44b522=null;}}else{_0x44b522=null;}_0x1d1f89['cb'](null,{'code':_0x11f556,'result':_0x320adf,'extra':_0x44b522});}});_0x4c7170['on'](_0xdc22('0x19'),function(_0x4a9904){_0x526335[_0xdc22('0x1a')]('error',new AGIError(_0xdc22('0x1b'),_0x4a9904['code']));});_0x4c7170['on']('close',function(){_0x526335[_0xdc22('0x1a')](_0xdc22('0x1c'),new AGIError('E_AGI_SOCKET_CLOSE'));});_0x4c7170['on'](_0xdc22('0x1d'),function(){_0x526335[_0xdc22('0x1a')](_0xdc22('0x1d'),new AGIError(_0xdc22('0x1e')));_0x4c7170[_0xdc22('0x1f')]();});_0x4c7170[_0xdc22('0x20')](_0x1a91f5);this[_0xdc22('0x21')]=function(_0x110977,_0x3740cb){var _0x110977=_0x110977||'',_0x3740cb=typeof _0x3740cb=='function'?_0x3740cb:new Function();_0x1d1f89={'tx':_0x110977,'rx':'','cb':_0x3740cb};_0x4c7170[_0xdc22('0x22')](_0x110977+'\x0a');},this[_0xdc22('0x1c')]=function(){_0x4c7170['destroy']();};}util[_0xdc22('0x23')](AGIChannel,EventEmitter);AGIChannel[_0xdc22('0x24')]['sendRequest']=function(_0x49dd40){return this['command'][_0xdc22('0x25')](this,_0x49dd40);};AGIChannel['prototype']['answer']=function(){return this[_0xdc22('0x26')](_0xdc22('0x27'));};AGIChannel['prototype']['getData']=function(_0x399384,_0x163868,_0x3e0e1a){_0x399384=_0x399384===undefined?_0xdc22('0x28'):_0x399384;_0x163868=_0x163868===undefined?'5':_0x163868;_0x3e0e1a=_0x3e0e1a===undefined?'1':_0x3e0e1a;return this[_0xdc22('0x26')](util['format'](_0xdc22('0x29'),_0x399384,_0x163868*0x3e8,_0x3e0e1a));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x2a')]=function(_0x1b6f67){_0x1b6f67=_0x1b6f67||_0xdc22('0x2b');return this[_0xdc22('0x26')](util[_0xdc22('0x2c')]('VERBOSE\x20\x22%s\x22',_0x1b6f67));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x2d')]=function(_0x3149fa,_0x328647){if(_[_0xdc22('0x2e')](_0x328647)){return this[_0xdc22('0x26')](util['format'](_0xdc22('0x2f'),_0x3149fa,_0x328647['join'](',')));}return this['sendRequest'](util[_0xdc22('0x2c')]('EXEC\x20%s\x20%s',_0x3149fa,_0x328647));};AGIChannel['prototype']['setContext']=function(_0x21a252){return this[_0xdc22('0x26')](util[_0xdc22('0x2c')]('SET\x20CONTEXT\x20%s',_0x21a252));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x30')]=function(_0x359d28){return this[_0xdc22('0x26')](util[_0xdc22('0x2c')]('SET\x20EXTENSION\x20%s',_0x359d28));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x31')]=function(_0x364cdc){return this[_0xdc22('0x26')](util[_0xdc22('0x2c')](_0xdc22('0x32'),_0x364cdc));};AGIChannel['prototype'][_0xdc22('0xc')]=function(){return this['sendRequest'](_0xdc22('0x33'));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x34')]=function(_0x566520,_0x1983eb){var _0x50d677=_['isBoolean'](_0x1983eb)||_[_0xdc22('0x35')](_0x1983eb)?_0x1983eb[_0xdc22('0x36')]():_0x1983eb;return this[_0xdc22('0x26')](util[_0xdc22('0x2c')](_0xdc22('0x37'),_0x566520,_0x50d677?_0x50d677[_0xdc22('0x36')]()[_0xdc22('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x38')]=function(_0x4636a1,_0x42318d){return this[_0xdc22('0x26')](util[_0xdc22('0x2c')](_0xdc22('0x39'),_0x4636a1,_0x42318d));};AGIChannel['prototype'][_0xdc22('0x3a')]=function(_0x3dea61,_0x5afe94){return this[_0xdc22('0x26')](util[_0xdc22('0x2c')]('SAY\x20DIGITS\x20%s\x20%s',_0x3dea61,_0x5afe94));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x3b')]=function(_0x462065,_0x11fc25){return this[_0xdc22('0x26')](util[_0xdc22('0x2c')](_0xdc22('0x3c'),_0x462065,_0x11fc25));};AGIChannel['prototype'][_0xdc22('0x3d')]=function(_0x3d369a,_0x444bb1,_0x41e4f7){_0x444bb1=_0x444bb1||this[_0xdc22('0x3e')];_0x41e4f7=_0x41e4f7||0x1;this['setContext'](_0x3d369a);this[_0xdc22('0x30')](_0x444bb1);this['setPriority'](_0x41e4f7);return this[_0xdc22('0x2a')](util[_0xdc22('0x2c')](_0xdc22('0x3f'),_0x3d369a,_0x444bb1,_0x41e4f7));};AGIChannel[_0xdc22('0x24')]['getVariable']=function(_0x5dd1fc){return this[_0xdc22('0x26')](util[_0xdc22('0x2c')](_0xdc22('0x40'),_0x5dd1fc));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x41')]=function(_0x153f7d,_0x546474,_0x45603a,_0x1c9f1a,_0xaed413,_0x2aa84d){_0x546474=_0x546474||'wav';_0x45603a=_0x45603a||'';_0x1c9f1a=_0x1c9f1a===undefined?-0x1:_0x1c9f1a==='-1'?-0x1:_0x1c9f1a*0x3e8;_0xaed413=_0xaed413===undefined?'':'s='+_0xaed413;_0x2aa84d=_0x2aa84d?_0xdc22('0x42'):'';return this['sendRequest'](util['format'](_0xdc22('0x43'),_0x153f7d,_0x546474,_0x45603a,_0x1c9f1a,_0x2aa84d,_0xaed413));};AGIChannel[_0xdc22('0x24')]['streamFile']=function(_0x502c6e,_0x4b4889){_0x4b4889=_0x4b4889||'';return this[_0xdc22('0x26')](util[_0xdc22('0x2c')](_0xdc22('0x44'),_0x502c6e,_0x4b4889));};AGIChannel[_0xdc22('0x24')][_0xdc22('0x45')]=function(_0x43c337){return this[_0xdc22('0x2d')]('AGI',_0x43c337);};AGIChannel[_0xdc22('0x24')][_0xdc22('0x46')]=function(_0x1321a7){return this[_0xdc22('0x2d')](_0xdc22('0x47'),_0x1321a7);};AGIChannel[_0xdc22('0x24')][_0xdc22('0x19')]=function(_0x1e412b,_0x13ab21){this['noop'](util[_0xdc22('0x2c')](_0xdc22('0x48'),_0x1e412b['id'],_0x1e412b[_0xdc22('0x49')],_0x13ab21));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a2c=['Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20error.\x20Code:\x20%s.','Socket\x20timeout.','Missing\x20\x27ivr.agi_network_script\x27.','Missing\x20\x27ivr.entry\x27\x20menu.','push','format','apply','name','exports','util'];(function(_0x559914,_0x676559){var _0x2e6ebe=function(_0x220093){while(--_0x220093){_0x559914['push'](_0x559914['shift']());}};_0x2e6ebe(++_0x676559);}(_0x6a2c,0x1d0));var _0xc6a2=function(_0x3a0b12,_0x4179d4){_0x3a0b12=_0x3a0b12-0x0;var _0x3c2efe=_0x6a2c[_0x3a0b12];return _0x3c2efe;};'use strict';var util=require(_0xc6a2('0x0'));var error={'E_AGI_UNDEFINED':'Undefined\x20error.','E_AGI_ARGUMENT_PORT':_0xc6a2('0x1'),'E_AGI_SERVER_ERROR':_0xc6a2('0x2'),'E_AGI_SERVER_CLOSE':_0xc6a2('0x3'),'E_AGI_SERVER_MAXCONNECTION':_0xc6a2('0x4'),'E_AGI_SERVER_VOICE_DISABLED':_0xc6a2('0x5'),'E_AGI_SOCKET_ERROR':_0xc6a2('0x6'),'E_AGI_SOCKET_CLOSE':'Socket\x20closed.','E_AGI_SOCKET_TIMEOUT':_0xc6a2('0x7'),'E_AGI_COMMAND_EMPTY':'Empty\x20command.','E_AGI_IVR_AGI_NETWORK_SCRIPT':_0xc6a2('0x8'),'E_AGI_IVR_ENTRY':_0xc6a2('0x9')};function AGIError(_0x1230f7){var _0x1230f7=_0x1230f7||null,_0x338214=_0x338214||[],_0x21a8f9=0x1,_0x453d37='';if(!error[_0x1230f7]){_0x1230f7='E_AGI_UNDEFINED';}_0x338214[_0xc6a2('0xa')](error[_0x1230f7]);while(arguments[_0x21a8f9]){_0x338214[_0xc6a2('0xa')](arguments[_0x21a8f9]);_0x21a8f9++;}_0x453d37=util[_0xc6a2('0xb')][_0xc6a2('0xc')](util,_0x338214);this['message']=_0x453d37;this[_0xc6a2('0xd')]=_0x1230f7;}module[_0xc6a2('0xe')]=AGIError;
\ No newline at end of file
+var _0x3361=['format','apply','message','name','exports','util','Undefined\x20error.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','Socket\x20error.\x20Code:\x20%s.','Socket\x20closed.','Missing\x20\x27ivr.agi_network_script\x27.','Missing\x20\x27ivr.entry\x27\x20menu.','push'];(function(_0x288746,_0xd7743f){var _0x482d7d=function(_0x119540){while(--_0x119540){_0x288746['push'](_0x288746['shift']());}};_0x482d7d(++_0xd7743f);}(_0x3361,0x1a9));var _0x1336=function(_0x49dd78,_0x5cc02f){_0x49dd78=_0x49dd78-0x0;var _0x37d8c6=_0x3361[_0x49dd78];return _0x37d8c6;};'use strict';var util=require(_0x1336('0x0'));var error={'E_AGI_UNDEFINED':_0x1336('0x1'),'E_AGI_ARGUMENT_PORT':'Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','E_AGI_SERVER_ERROR':_0x1336('0x2'),'E_AGI_SERVER_CLOSE':_0x1336('0x3'),'E_AGI_SERVER_MAXCONNECTION':_0x1336('0x4'),'E_AGI_SERVER_VOICE_DISABLED':'[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','E_AGI_SOCKET_ERROR':_0x1336('0x5'),'E_AGI_SOCKET_CLOSE':_0x1336('0x6'),'E_AGI_SOCKET_TIMEOUT':'Socket\x20timeout.','E_AGI_COMMAND_EMPTY':'Empty\x20command.','E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x1336('0x7'),'E_AGI_IVR_ENTRY':_0x1336('0x8')};function AGIError(_0x528e16){var _0x528e16=_0x528e16||null,_0x357694=_0x357694||[],_0xce0d91=0x1,_0x18e797='';if(!error[_0x528e16]){_0x528e16='E_AGI_UNDEFINED';}_0x357694[_0x1336('0x9')](error[_0x528e16]);while(arguments[_0xce0d91]){_0x357694[_0x1336('0x9')](arguments[_0xce0d91]);_0xce0d91++;}_0x18e797=util[_0x1336('0xa')][_0x1336('0xb')](util,_0x357694);this[_0x1336('0xc')]=_0x18e797;this[_0x1336('0xd')]=_0x528e16;}module[_0x1336('0xe')]=AGIError;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c52=['edges','numberOfEdges','prototype','addVertex','addEdge','push','size','relations','getVertex','info','no\x20vertex\x20found','stop\x20traverse','length','condition','agicommand','target','invalid','traverseBFS','vswitch','default\x20on\x20switch\x20not\x20found','includes','condition\x20not\x20found','lodash','../../../config/logger','agi','menu','getsecretdigits','vertices'];(function(_0x230dd3,_0x26024b){var _0x7987fa=function(_0x36a021){while(--_0x36a021){_0x230dd3['push'](_0x230dd3['shift']());}};_0x7987fa(++_0x26024b);}(_0x4c52,0x19e));var _0x24c5=function(_0x35ef6b,_0x202c42){_0x35ef6b=_0x35ef6b-0x0;var _0x3ad145=_0x4c52[_0x35ef6b];return _0x3ad145;};'use strict';var _=require(_0x24c5('0x0'));var logger=require(_0x24c5('0x1'))(_0x24c5('0x2'));var verticesWithRetry=[_0x24c5('0x3'),'getdigits',_0x24c5('0x4')];var Graph=function(){this[_0x24c5('0x5')]={};this[_0x24c5('0x6')]={};this[_0x24c5('0x7')]=0x0;};Graph[_0x24c5('0x8')][_0x24c5('0x9')]=function(_0x54a585){this[_0x24c5('0x5')][_0x54a585['id']]=_0x54a585;this[_0x24c5('0x6')][_0x54a585['id']]=[];};Graph['prototype'][_0x24c5('0xa')]=function(_0x859b24,_0x17ca2f,_0x17666d){this[_0x24c5('0x6')][_0x859b24][_0x24c5('0xb')]({'target':_0x17ca2f,'condition':_0x17666d});this['numberOfEdges']+=0x1;};Graph[_0x24c5('0x8')][_0x24c5('0xc')]=function(){return _['size'](this[_0x24c5('0x5')]);};Graph[_0x24c5('0x8')][_0x24c5('0xd')]=function(){return this[_0x24c5('0x7')];};Graph['prototype'][_0x24c5('0xe')]=function(_0x46ccf7){return this['vertices'][_0x46ccf7];};Graph[_0x24c5('0x8')]['traverseBFS']=function(_0x3d36f2,_0x2dc980){if(!this[_0x24c5('0x5')][_0x3d36f2]){return logger[_0x24c5('0xf')](_0x24c5('0x10'));}var _0x122581=_0x2dc980(this[_0x24c5('0x5')][_0x3d36f2]);if(!_0x122581){return logger[_0x24c5('0xf')](_0x24c5('0x11'));}if(this[_0x24c5('0x6')][_0x3d36f2][_0x24c5('0x12')]===0x0){return logger[_0x24c5('0xf')]('no\x20edge/s\x20available');}for(var _0x59cb28=0x0,_0x2cfee6=[],_0x871774=![];_0x59cb28<this[_0x24c5('0x6')][_0x3d36f2]['length'];_0x59cb28+=0x1){if(this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28]['condition']){_0x2cfee6=this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x13')]['split'](',');for(var _0x62d65b=0x0;_0x62d65b<_0x2cfee6['length'];_0x62d65b+=0x1){if(this[_0x24c5('0x5')][_0x3d36f2][_0x24c5('0x14')]==='vswitch'&&_0x2cfee6[_0x62d65b]==='-'){_0x871774=this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x15')];logger[_0x24c5('0xf')]('default',_0x2cfee6[_0x62d65b],this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x15')]);}else if(this[_0x24c5('0x5')][_0x3d36f2][_0x24c5('0x14')]===_0x24c5('0x3')&&_0x2cfee6[_0x62d65b]==='i'){_0x871774=this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28]['target'];logger[_0x24c5('0xf')](_0x24c5('0x16'),_0x2cfee6[_0x62d65b],this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28]['target']);}if(_0x2cfee6[_0x62d65b]===_0x122581){return this[_0x24c5('0x17')](this['edges'][_0x3d36f2][_0x59cb28][_0x24c5('0x15')],_0x2dc980);}}}else{return this[_0x24c5('0x17')](this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x15')],_0x2dc980);}}if(_0x2cfee6[_0x24c5('0x12')]){if(this[_0x24c5('0x5')][_0x3d36f2]['agicommand']===_0x24c5('0x18')){if(_0x871774){return this[_0x24c5('0x17')](_0x871774,_0x2dc980);}return logger[_0x24c5('0xf')](_0x24c5('0x19'));}else if(_[_0x24c5('0x1a')](verticesWithRetry,this[_0x24c5('0x5')][_0x3d36f2]['agicommand'])){if(_0x122581==='-'){return logger['info']('max\x20retry\x20reach');}if(_0x871774&&_0x122581!=='t'){return this[_0x24c5('0x17')](_0x871774,_0x2dc980);}return this[_0x24c5('0x17')](_0x3d36f2,_0x2dc980);}return logger[_0x24c5('0xf')](_0x24c5('0x1b'));}};module['exports']=Graph;
\ No newline at end of file
+var _0xda22=['traverseBFS','includes','condition\x20not\x20found','exports','../../../config/logger','agi','getsecretdigits','edges','numberOfEdges','addVertex','vertices','prototype','addEdge','push','size','relations','getVertex','no\x20vertex\x20found','stop\x20traverse','info','no\x20edge/s\x20available','length','condition','split','agicommand','vswitch','target','default','menu','invalid'];(function(_0x2a0738,_0x3c0bc5){var _0x159679=function(_0x9c9ec7){while(--_0x9c9ec7){_0x2a0738['push'](_0x2a0738['shift']());}};_0x159679(++_0x3c0bc5);}(_0xda22,0xb8));var _0x2da2=function(_0x31feca,_0x3ac71c){_0x31feca=_0x31feca-0x0;var _0x2654d7=_0xda22[_0x31feca];return _0x2654d7;};'use strict';var _=require('lodash');var logger=require(_0x2da2('0x0'))(_0x2da2('0x1'));var verticesWithRetry=['menu','getdigits',_0x2da2('0x2')];var Graph=function(){this['vertices']={};this[_0x2da2('0x3')]={};this[_0x2da2('0x4')]=0x0;};Graph['prototype'][_0x2da2('0x5')]=function(_0x815dc9){this[_0x2da2('0x6')][_0x815dc9['id']]=_0x815dc9;this['edges'][_0x815dc9['id']]=[];};Graph[_0x2da2('0x7')][_0x2da2('0x8')]=function(_0x36209b,_0x3bd21a,_0x40ceea){this['edges'][_0x36209b][_0x2da2('0x9')]({'target':_0x3bd21a,'condition':_0x40ceea});this[_0x2da2('0x4')]+=0x1;};Graph[_0x2da2('0x7')][_0x2da2('0xa')]=function(){return _[_0x2da2('0xa')](this['vertices']);};Graph['prototype'][_0x2da2('0xb')]=function(){return this['numberOfEdges'];};Graph['prototype'][_0x2da2('0xc')]=function(_0x194653){return this[_0x2da2('0x6')][_0x194653];};Graph['prototype']['traverseBFS']=function(_0x40b535,_0x27380b){if(!this[_0x2da2('0x6')][_0x40b535]){return logger['info'](_0x2da2('0xd'));}var _0x1fe373=_0x27380b(this[_0x2da2('0x6')][_0x40b535]);if(!_0x1fe373){return logger['info'](_0x2da2('0xe'));}if(this['edges'][_0x40b535]['length']===0x0){return logger[_0x2da2('0xf')](_0x2da2('0x10'));}for(var _0x24b7e8=0x0,_0x44f7f5=[],_0x518ce8=![];_0x24b7e8<this[_0x2da2('0x3')][_0x40b535][_0x2da2('0x11')];_0x24b7e8+=0x1){if(this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x12')]){_0x44f7f5=this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x12')][_0x2da2('0x13')](',');for(var _0x57ef1a=0x0;_0x57ef1a<_0x44f7f5['length'];_0x57ef1a+=0x1){if(this[_0x2da2('0x6')][_0x40b535][_0x2da2('0x14')]===_0x2da2('0x15')&&_0x44f7f5[_0x57ef1a]==='-'){_0x518ce8=this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x16')];logger[_0x2da2('0xf')](_0x2da2('0x17'),_0x44f7f5[_0x57ef1a],this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x16')]);}else if(this[_0x2da2('0x6')][_0x40b535][_0x2da2('0x14')]===_0x2da2('0x18')&&_0x44f7f5[_0x57ef1a]==='i'){_0x518ce8=this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x16')];logger[_0x2da2('0xf')](_0x2da2('0x19'),_0x44f7f5[_0x57ef1a],this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x16')]);}if(_0x44f7f5[_0x57ef1a]===_0x1fe373){return this['traverseBFS'](this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x16')],_0x27380b);}}}else{return this[_0x2da2('0x1a')](this[_0x2da2('0x3')][_0x40b535][_0x24b7e8][_0x2da2('0x16')],_0x27380b);}}if(_0x44f7f5[_0x2da2('0x11')]){if(this[_0x2da2('0x6')][_0x40b535][_0x2da2('0x14')]===_0x2da2('0x15')){if(_0x518ce8){return this[_0x2da2('0x1a')](_0x518ce8,_0x27380b);}return logger['info']('default\x20on\x20switch\x20not\x20found');}else if(_[_0x2da2('0x1b')](verticesWithRetry,this['vertices'][_0x40b535]['agicommand'])){if(_0x1fe373==='-'){return logger['info']('max\x20retry\x20reach');}if(_0x518ce8&&_0x1fe373!=='t'){return this[_0x2da2('0x1a')](_0x518ce8,_0x27380b);}return this[_0x2da2('0x1a')](_0x40b535,_0x27380b);}return logger['info'](_0x2da2('0x1c'));}};module[_0x2da2('0x1d')]=Graph;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1750=['finally','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','context','Project\x20%s\x20not\x20published','Project\x20%s\x20not\x20found','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','xml2json','lodash','syncho','util','moment','../../config/logger','../../config/license/util','./graph','agi','defaults','127.0.0.1','error','stack','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','port','info','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','format','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','callerid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','dnid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','root','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','isArray','length','source','target','getSquareProject','then','catch','agi_','substring','inspect','debug','variables','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','hangup','sync','production','start','stringify','joinAt','YYYY-MM-DD\x20HH:mm:ss','mxCell','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','extension','priority','response','code','result','isUndefined','toString','agicommand\x20not\x20found'];(function(_0x5bab7a,_0x1cd8e0){var _0x1dc65e=function(_0x38c232){while(--_0x38c232){_0x5bab7a['push'](_0x5bab7a['shift']());}};_0x1dc65e(++_0x1cd8e0);}(_0x1750,0x1d3));var _0x0175=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0x1750[_0x4243a3];return _0x1b2a33;};'use strict';var parser=require(_0x0175('0x0'));var _=require(_0x0175('0x1'));var syncho=require(_0x0175('0x2'));var util=require(_0x0175('0x3'));var moment=require(_0x0175('0x4'));var config=require('../../config/environment');var logger=require(_0x0175('0x5'))('agi');var utilLicense=require(_0x0175('0x6'));var rpc=require('./rpc');var mailRpc=require('./mailRpc');var Graph=require(_0x0175('0x7'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x0175('0x8')]=_[_0x0175('0x9')](config[_0x0175('0x8')],{'ip':_0x0175('0xa'),'port':0x11dd});function connectionHandler(_0x23a862){process['nextTick'](function(){syncho(function(){try{setChannelVariables(_0x23a862);agiHandler(_0x23a862);}catch(_0x45dbf4){logger[_0x0175('0xb')](_0x45dbf4[_0x0175('0xc')]);}});});}function listeningHandler(){console['log'](_0x0175('0xd'),config[_0x0175('0x8')][_0x0175('0xe')]);logger[_0x0175('0xf')](util['format'](_0x0175('0x10'),config[_0x0175('0x8')]['ip'],config[_0x0175('0x8')]['port']));}function errorHandler(_0x1e8a06){if(_0x1e8a06&&_0x1e8a06[_0x0175('0x11')]&&_0x1e8a06[_0x0175('0x12')]){logger[_0x0175('0xb')](util['format']('[%s]\x20%s',_0x1e8a06['name'],_0x1e8a06[_0x0175('0x12')]));}else{logger[_0x0175('0xb')](util[_0x0175('0x13')](_0x0175('0x14'),_0x1e8a06[_0x0175('0xc')]));}}function closeHandler(){logger[_0x0175('0xf')](util['format'](_0x0175('0x15'),this[_0x0175('0x16')],this['calleridname'],this[_0x0175('0x17')],this['dnid'],this[_0x0175('0x18')]));try{createSquareReport(this);}catch(_0x5f47a1){logger[_0x0175('0xb')](_0x5f47a1['stack']);}}function timeoutHandler(){logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x19'),this[_0x0175('0x16')],this[_0x0175('0x1a')],this['callerid'],this[_0x0175('0x1b')],this[_0x0175('0x18')]));}function hangupHandler(){logger['info'](util[_0x0175('0x13')](_0x0175('0x1c'),this[_0x0175('0x16')],this[_0x0175('0x1a')],this['callerid'],this[_0x0175('0x1b')],this[_0x0175('0x18')]));this[_0x0175('0x1d')]=!![];}function getRoot(_0x9c85d0){return parser['toJson'](_0x9c85d0,{'object':!![]})['mxGraphModel'][_0x0175('0x1e')];}function addVertex(_0x1f8383,_0x53dbb8,_0xa0ef2){_0x53dbb8[_0x0175('0x1f')]=_0xa0ef2;if(_0x53dbb8[_0x0175('0x20')](_0x0175('0x21'))){_0x53dbb8[_0x0175('0x22')]=parseInt(_0x53dbb8[_0x0175('0x21')],0xa);}_0x1f8383[_0x0175('0x23')](_[_0x0175('0x24')](_0x53dbb8,'mxCell'));}function initGraph(_0x29d499,_0x188ed7){var _0xd80944=new Graph();for(var _0x1b51be in _0x29d499){if(_0x29d499[_0x0175('0x20')](_0x1b51be)){if(_[_0x0175('0x25')](_0x29d499[_0x1b51be])){for(var _0x3bc36a=0x0;_0x3bc36a<_0x29d499[_0x1b51be][_0x0175('0x26')];_0x3bc36a+=0x1){addVertex(_0xd80944,_0x29d499[_0x1b51be][_0x3bc36a],_0x1b51be);}}else{addVertex(_0xd80944,_0x29d499[_0x1b51be],_0x1b51be);}}}for(var _0x1d9599=0x0;_0x1d9599<_0x188ed7[_0x0175('0x26')];_0x1d9599+=0x1){if(_0x188ed7[_0x1d9599][_0x0175('0x27')]&&_0x188ed7[_0x1d9599][_0x0175('0x28')]){_0xd80944['addEdge'](_0x188ed7[_0x1d9599]['source'],_0x188ed7[_0x1d9599][_0x0175('0x28')],_0x188ed7[_0x1d9599]['value']);}}return _0xd80944;}function getSquareProject(_0x4b4e64,_0x3f9ffa){rpc[_0x0175('0x29')](_0x4b4e64)[_0x0175('0x2a')](function(_0x2585ec){_0x3f9ffa(null,_0x2585ec);})[_0x0175('0x2b')](function(_0x4f682e){_0x3f9ffa(null,_0x4f682e);});}function createSquareReport(_0x54d7e0,_0x2178ef){rpc['createSquareReport'](_0x54d7e0)['then'](function(_0x5491d5){if(_0x2178ef){_0x2178ef(null,_0x5491d5);}})[_0x0175('0x2b')](function(_0x1bd789){if(_0x2178ef){_0x2178ef(null,_0x1bd789);}});}function setChannelVariables(_0x3bda36){for(var _0xd49bdb in _0x3bda36){if(_0x3bda36[_0x0175('0x20')](_0xd49bdb)){if(_0xd49bdb['indexOf'](_0x0175('0x2c'))===0x0){_0x3bda36[_0xd49bdb[_0x0175('0x2d')](0x4)]=_0x3bda36[_0xd49bdb];delete _0x3bda36[_0xd49bdb];}}}}function getLogFromObject(_0x230d56){return util[_0x0175('0x2e')](_0x230d56,{'showHidden':![],'depth':null});}function agiHandler(_0x3548b2){var _0x57e7e0,_0x42ee9a,_0x42677f,_0x1bba92,_0x537e91;logger[_0x0175('0x2f')](_0x0175('0x30'),JSON['stringify'](_0x3548b2,null,0x2));logger['info'](util[_0x0175('0x13')](_0x0175('0x31'),_0x3548b2[_0x0175('0x16')],_0x3548b2[_0x0175('0x1a')],_0x3548b2[_0x0175('0x17')],_0x3548b2[_0x0175('0x1b')],_0x3548b2[_0x0175('0x18')]));_0x3548b2['on']('error',errorHandler);_0x3548b2['on'](_0x0175('0x32'),closeHandler);_0x3548b2['on']('timeout',timeoutHandler);_0x3548b2[_0x0175('0x1d')]=![];_0x3548b2['on'](_0x0175('0x33'),hangupHandler);var _0x67adfc=getSquareProject[_0x0175('0x34')](null,_0x3548b2['arg_1']);if(_0x67adfc){if(_0x67adfc[_0x0175('0x35')]){_0x57e7e0=getRoot(_0x67adfc[_0x0175('0x35')]);if(_0x57e7e0&&_0x57e7e0[_0x0175('0x36')]){logger['debug']('root',JSON[_0x0175('0x37')](_0x57e7e0,null,0x2));_0x3548b2[_0x0175('0x38')]=moment()[_0x0175('0x13')](_0x0175('0x39'));_0x42ee9a=initGraph(_[_0x0175('0x24')](_0x57e7e0,_0x0175('0x3a')),_0x57e7e0['mxCell']);_0x42677f=new Vertices(_0x3548b2,rpc,mailRpc);logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x3b'),_0x3548b2[_0x0175('0x16')],_0x3548b2[_0x0175('0x1a')],_0x3548b2['callerid'],_0x3548b2[_0x0175('0x1b')],_0x3548b2[_0x0175('0x18')]));_0x42ee9a[_0x0175('0x3c')](_0x57e7e0[_0x0175('0x36')]['id'],function(_0xd558b1){try{_0xd558b1=_0x42677f[_0x0175('0x3d')](_0xd558b1);logger[_0x0175('0x2f')](_0x0175('0x3e'),JSON[_0x0175('0x37')](_0xd558b1,null,0x2));if(_0xd558b1[_0x0175('0x1f')]===_0x0175('0x3f')){logger[_0x0175('0xf')](_0x0175('0x40'));_0x3548b2['context']=_0xd558b1['context']||_0x3548b2['context'];_0x3548b2[_0x0175('0x41')]=_0xd558b1[_0x0175('0x41')];_0x3548b2[_0x0175('0x42')]=_0xd558b1[_0x0175('0x42')]?_0xd558b1[_0x0175('0x42')]-0x1:0x1;return null;}else if(_0xd558b1&&_0x42677f[_0xd558b1[_0x0175('0x1f')]]){_0x537e91=_0x42677f[_0xd558b1['agicommand']](_0xd558b1);logger[_0x0175('0xf')](_0x0175('0x43'),JSON['stringify'](_0x537e91,null,0x2));if(_0x537e91&&_0x537e91[_0x0175('0x44')]===AGI_CODE_SUCCESS&&_0x537e91[_0x0175('0x45')]!==AGI_RESULT_ERROR&&!_0x3548b2['evtHangup']){logger[_0x0175('0x2f')]('response',getLogFromObject(_0x537e91));return _[_0x0175('0x46')](_0x537e91[_0x0175('0x45')])?null:_0x537e91[_0x0175('0x45')][_0x0175('0x47')]();}else{logger[_0x0175('0xb')](_0x0175('0x43'),getLogFromObject(_0x537e91));return null;}}else{logger[_0x0175('0xb')](_0x0175('0x48'));return null;}}catch(_0x181513){logger[_0x0175('0xb')](_0x181513['stack']);return null;}});if(_0x57e7e0[_0x0175('0x49')]){logger['info'](util[_0x0175('0x13')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3548b2['arg_1'],_0x3548b2['calleridname'],_0x3548b2[_0x0175('0x17')],_0x3548b2[_0x0175('0x1b')],_0x3548b2['uniqueid']));_0x42ee9a[_0x0175('0x3c')](_0x57e7e0[_0x0175('0x49')]['id'],function(_0x280de7){try{_0x280de7=_0x42677f[_0x0175('0x3d')](_0x280de7);logger['debug'](_0x0175('0x3e'),JSON['stringify'](_0x280de7,null,0x2));if(_0x280de7&&_0x42677f[_0x280de7[_0x0175('0x1f')]]){_0x537e91=_0x42677f[_0x280de7[_0x0175('0x1f')]](_0x280de7);if(_0x537e91){logger[_0x0175('0x2f')](_0x0175('0x43'),getLogFromObject(_0x537e91));return _['isUndefined'](_0x537e91[_0x0175('0x45')])?null:_0x537e91[_0x0175('0x45')]['toString']();}else{logger[_0x0175('0xb')]('response',getLogFromObject(_0x537e91));return null;}}else{logger[_0x0175('0xb')](_0x0175('0x48'));return null;}}catch(_0x19b0a7){logger[_0x0175('0xb')](_0x19b0a7[_0x0175('0xc')]);return null;}});}logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x4a'),_0x3548b2['arg_1'],_0x3548b2[_0x0175('0x1a')],_0x3548b2[_0x0175('0x17')],_0x3548b2['dnid'],_0x3548b2[_0x0175('0x18')]));logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x4b'),_0x3548b2['context'],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1));_0x3548b2[_0x0175('0x4c')](_0x3548b2[_0x0175('0x4d')],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1);_0x3548b2[_0x0175('0x32')]();}}else{logger[_0x0175('0xb')](util['format'](_0x0175('0x4e'),_0x3548b2[_0x0175('0x16')]));_0x3548b2[_0x0175('0x4c')](_0x3548b2['context'],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1);_0x3548b2['close']();}}else{logger[_0x0175('0xb')](util['format'](_0x0175('0x4f'),_0x3548b2[_0x0175('0x16')]));_0x3548b2[_0x0175('0x4c')](_0x3548b2['context'],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1);_0x3548b2[_0x0175('0x32')]();}}function main(){var _0x53b42a;return utilLicense[_0x0175('0x50')]()[_0x0175('0x2a')](function(_0x3570cb){if(_0x3570cb){if(_0x3570cb[_0x0175('0x51')]){if(_0x3570cb[_0x0175('0x52')]&&_0x3570cb['callysquare']>0x0){logger['info'](util[_0x0175('0x13')](_0x0175('0x53'),_0x3570cb[_0x0175('0x52')]));_0x53b42a=_0x3570cb[_0x0175('0x52')];}else{logger[_0x0175('0xf')](_0x0175('0x54'));}}else{logger[_0x0175('0xf')](_0x0175('0x55'));_0x53b42a=-0x1;}}})['catch'](function(_0x545614){logger[_0x0175('0xb')](_0x0175('0x56'),_0x545614[_0x0175('0xc')]);})[_0x0175('0x49')](function(){var _0x70bcb8=require(_0x0175('0x57'))(config[_0x0175('0x8')][_0x0175('0xe')],config['agi']['ip'],_0x53b42a);_0x70bcb8['on'](_0x0175('0xb'),errorHandler);_0x70bcb8['on'](_0x0175('0x58'),listeningHandler);_0x70bcb8['on'](_0x0175('0x59'),connectionHandler);_0x70bcb8['on'](_0x0175('0x32'),closeHandler);});}main();
\ No newline at end of file
+var _0x6560=['maxRetry','addVertex','omit','mxCell','isArray','length','source','target','addEdge','value','getSquareProject','then','catch','createSquareReport','indexOf','agi_','substring','debug','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','sync','production','start','joinAt','YYYY-MM-DD\x20HH:mm:ss','traverseBFS','vertex','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','result','toString','response','agicommand\x20not\x20found','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','finally','clear','isUndefined','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','Project\x20%s\x20not\x20published','Project\x20%s\x20not\x20found','getLicense','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','xml2json','lodash','util','moment','../../config/environment','../../config/logger','agi','../../config/license/util','./rpc','./mailRpc','./vertices','defaults','nextTick','error','log','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','port','info','format','name','message','[ERROR]\x20%s','stack','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','uniqueid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','toJson','mxGraphModel','root','agicommand','hasOwnProperty','retry'];(function(_0x338338,_0x782573){var _0x3cf852=function(_0x3016d8){while(--_0x3016d8){_0x338338['push'](_0x338338['shift']());}};_0x3cf852(++_0x782573);}(_0x6560,0x14e));var _0x0656=function(_0x210698,_0x256b1e){_0x210698=_0x210698-0x0;var _0x3c4762=_0x6560[_0x210698];return _0x3c4762;};'use strict';var parser=require(_0x0656('0x0'));var _=require(_0x0656('0x1'));var syncho=require('syncho');var util=require(_0x0656('0x2'));var moment=require(_0x0656('0x3'));var config=require(_0x0656('0x4'));var logger=require(_0x0656('0x5'))(_0x0656('0x6'));var utilLicense=require(_0x0656('0x7'));var rpc=require(_0x0656('0x8'));var mailRpc=require(_0x0656('0x9'));var Graph=require('./graph');var Vertices=require(_0x0656('0xa'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x0656('0x6')]=_[_0x0656('0xb')](config[_0x0656('0x6')],{'ip':'127.0.0.1','port':0x11dd});function connectionHandler(_0x4e1a2e){process[_0x0656('0xc')](function(){syncho(function(){try{setChannelVariables(_0x4e1a2e);agiHandler(_0x4e1a2e);}catch(_0x23dff6){logger[_0x0656('0xd')](_0x23dff6['stack']);}});});}function listeningHandler(){console[_0x0656('0xe')](_0x0656('0xf'),config[_0x0656('0x6')][_0x0656('0x10')]);logger[_0x0656('0x11')](util[_0x0656('0x12')]('[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d',config['agi']['ip'],config[_0x0656('0x6')][_0x0656('0x10')]));}function errorHandler(_0x1110b4){if(_0x1110b4&&_0x1110b4[_0x0656('0x13')]&&_0x1110b4[_0x0656('0x14')]){logger[_0x0656('0xd')](util[_0x0656('0x12')]('[%s]\x20%s',_0x1110b4['name'],_0x1110b4[_0x0656('0x14')]));}else{logger[_0x0656('0xd')](util[_0x0656('0x12')](_0x0656('0x15'),_0x1110b4[_0x0656('0x16')]));}}function closeHandler(){logger['info'](util['format'](_0x0656('0x17'),this[_0x0656('0x18')],this[_0x0656('0x19')],this[_0x0656('0x1a')],this[_0x0656('0x1b')],this['uniqueid']));try{createSquareReport(this);}catch(_0x502f41){logger[_0x0656('0xd')](_0x502f41[_0x0656('0x16')]);}}function timeoutHandler(){logger[_0x0656('0x11')](util['format'](_0x0656('0x1c'),this[_0x0656('0x18')],this[_0x0656('0x19')],this[_0x0656('0x1a')],this['dnid'],this[_0x0656('0x1d')]));}function hangupHandler(){logger[_0x0656('0x11')](util[_0x0656('0x12')](_0x0656('0x1e'),this['arg_1'],this[_0x0656('0x19')],this[_0x0656('0x1a')],this[_0x0656('0x1b')],this[_0x0656('0x1d')]));this[_0x0656('0x1f')]=!![];}function getRoot(_0x576bf4){return parser[_0x0656('0x20')](_0x576bf4,{'object':!![]})[_0x0656('0x21')][_0x0656('0x22')];}function addVertex(_0x5e54ec,_0x159b86,_0x4cc8b7){_0x159b86[_0x0656('0x23')]=_0x4cc8b7;if(_0x159b86[_0x0656('0x24')](_0x0656('0x25'))){_0x159b86[_0x0656('0x26')]=parseInt(_0x159b86[_0x0656('0x25')],0xa);}_0x5e54ec[_0x0656('0x27')](_[_0x0656('0x28')](_0x159b86,_0x0656('0x29')));}function initGraph(_0x16cf91,_0x284896){var _0x323b5c=new Graph();for(var _0x5a73a1 in _0x16cf91){if(_0x16cf91[_0x0656('0x24')](_0x5a73a1)){if(_[_0x0656('0x2a')](_0x16cf91[_0x5a73a1])){for(var _0x570587=0x0;_0x570587<_0x16cf91[_0x5a73a1][_0x0656('0x2b')];_0x570587+=0x1){addVertex(_0x323b5c,_0x16cf91[_0x5a73a1][_0x570587],_0x5a73a1);}}else{addVertex(_0x323b5c,_0x16cf91[_0x5a73a1],_0x5a73a1);}}}for(var _0x533740=0x0;_0x533740<_0x284896[_0x0656('0x2b')];_0x533740+=0x1){if(_0x284896[_0x533740][_0x0656('0x2c')]&&_0x284896[_0x533740][_0x0656('0x2d')]){_0x323b5c[_0x0656('0x2e')](_0x284896[_0x533740][_0x0656('0x2c')],_0x284896[_0x533740][_0x0656('0x2d')],_0x284896[_0x533740][_0x0656('0x2f')]);}}return _0x323b5c;}function getSquareProject(_0x2e1a9c,_0x283e50){rpc[_0x0656('0x30')](_0x2e1a9c)[_0x0656('0x31')](function(_0x34f046){_0x283e50(null,_0x34f046);})[_0x0656('0x32')](function(_0x3c16d3){_0x283e50(null,_0x3c16d3);});}function createSquareReport(_0x2a017c,_0x358330){rpc[_0x0656('0x33')](_0x2a017c)['then'](function(_0x514f94){if(_0x358330){_0x358330(null,_0x514f94);}})['catch'](function(_0x200daa){if(_0x358330){_0x358330(null,_0x200daa);}});}function setChannelVariables(_0x1bf0d1){for(var _0x2638aa in _0x1bf0d1){if(_0x1bf0d1[_0x0656('0x24')](_0x2638aa)){if(_0x2638aa[_0x0656('0x34')](_0x0656('0x35'))===0x0){_0x1bf0d1[_0x2638aa[_0x0656('0x36')](0x4)]=_0x1bf0d1[_0x2638aa];delete _0x1bf0d1[_0x2638aa];}}}}function getLogFromObject(_0x3968b7){return util['inspect'](_0x3968b7,{'showHidden':![],'depth':null});}function agiHandler(_0x52103c){var _0x2bbee1,_0x147122,_0x3733ca,_0x599d0d,_0x5b338f;logger[_0x0656('0x37')]('variables',JSON[_0x0656('0x38')](_0x52103c,null,0x2));logger[_0x0656('0x11')](util['format'](_0x0656('0x39'),_0x52103c['arg_1'],_0x52103c[_0x0656('0x19')],_0x52103c[_0x0656('0x1a')],_0x52103c[_0x0656('0x1b')],_0x52103c[_0x0656('0x1d')]));_0x52103c['on'](_0x0656('0xd'),errorHandler);_0x52103c['on'](_0x0656('0x3a'),closeHandler);_0x52103c['on'](_0x0656('0x3b'),timeoutHandler);_0x52103c[_0x0656('0x1f')]=![];_0x52103c['on']('hangup',hangupHandler);var _0x3e8f46=getSquareProject[_0x0656('0x3c')](null,_0x52103c[_0x0656('0x18')]);if(_0x3e8f46){if(_0x3e8f46[_0x0656('0x3d')]){_0x2bbee1=getRoot(_0x3e8f46[_0x0656('0x3d')]);if(_0x2bbee1&&_0x2bbee1[_0x0656('0x3e')]){logger[_0x0656('0x37')](_0x0656('0x22'),JSON[_0x0656('0x38')](_0x2bbee1,null,0x2));_0x52103c[_0x0656('0x3f')]=moment()[_0x0656('0x12')](_0x0656('0x40'));_0x147122=initGraph(_['omit'](_0x2bbee1,_0x0656('0x29')),_0x2bbee1[_0x0656('0x29')]);_0x3733ca=new Vertices(_0x52103c,rpc,mailRpc);logger[_0x0656('0x11')](util[_0x0656('0x12')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x52103c[_0x0656('0x18')],_0x52103c[_0x0656('0x19')],_0x52103c[_0x0656('0x1a')],_0x52103c['dnid'],_0x52103c[_0x0656('0x1d')]));_0x147122[_0x0656('0x41')](_0x2bbee1[_0x0656('0x3e')]['id'],function(_0x2d6b97){try{_0x2d6b97=_0x3733ca['clear'](_0x2d6b97);logger[_0x0656('0x37')](_0x0656('0x42'),JSON[_0x0656('0x38')](_0x2d6b97,null,0x2));if(_0x2d6b97['agicommand']==='gotoc'){logger['info'](_0x0656('0x43'));_0x52103c[_0x0656('0x44')]=_0x2d6b97[_0x0656('0x44')]||_0x52103c['context'];_0x52103c['extension']=_0x2d6b97[_0x0656('0x45')];_0x52103c[_0x0656('0x46')]=_0x2d6b97['priority']?_0x2d6b97[_0x0656('0x46')]-0x1:0x1;return null;}else if(_0x2d6b97&&_0x3733ca[_0x2d6b97[_0x0656('0x23')]]){_0x5b338f=_0x3733ca[_0x2d6b97[_0x0656('0x23')]](_0x2d6b97);logger[_0x0656('0x11')]('response',JSON[_0x0656('0x38')](_0x5b338f,null,0x2));if(_0x5b338f&&_0x5b338f[_0x0656('0x47')]===AGI_CODE_SUCCESS&&_0x5b338f[_0x0656('0x48')]!==AGI_RESULT_ERROR&&!_0x52103c[_0x0656('0x1f')]){logger[_0x0656('0x37')]('response',getLogFromObject(_0x5b338f));return _['isUndefined'](_0x5b338f[_0x0656('0x48')])?null:_0x5b338f[_0x0656('0x48')][_0x0656('0x49')]();}else{logger['error'](_0x0656('0x4a'),getLogFromObject(_0x5b338f));return null;}}else{logger[_0x0656('0xd')](_0x0656('0x4b'));return null;}}catch(_0xb22921){logger[_0x0656('0xd')](_0xb22921[_0x0656('0x16')]);return null;}});if(_0x2bbee1['finally']){logger[_0x0656('0x11')](util[_0x0656('0x12')](_0x0656('0x4c'),_0x52103c[_0x0656('0x18')],_0x52103c[_0x0656('0x19')],_0x52103c[_0x0656('0x1a')],_0x52103c[_0x0656('0x1b')],_0x52103c[_0x0656('0x1d')]));_0x147122[_0x0656('0x41')](_0x2bbee1[_0x0656('0x4d')]['id'],function(_0x438659){try{_0x438659=_0x3733ca[_0x0656('0x4e')](_0x438659);logger[_0x0656('0x37')](_0x0656('0x42'),JSON[_0x0656('0x38')](_0x438659,null,0x2));if(_0x438659&&_0x3733ca[_0x438659[_0x0656('0x23')]]){_0x5b338f=_0x3733ca[_0x438659['agicommand']](_0x438659);if(_0x5b338f){logger[_0x0656('0x37')]('response',getLogFromObject(_0x5b338f));return _[_0x0656('0x4f')](_0x5b338f['result'])?null:_0x5b338f[_0x0656('0x48')][_0x0656('0x49')]();}else{logger['error']('response',getLogFromObject(_0x5b338f));return null;}}else{logger[_0x0656('0xd')]('agicommand\x20not\x20found');return null;}}catch(_0x21f031){logger[_0x0656('0xd')](_0x21f031[_0x0656('0x16')]);return null;}});}logger[_0x0656('0x11')](util[_0x0656('0x12')](_0x0656('0x50'),_0x52103c[_0x0656('0x18')],_0x52103c[_0x0656('0x19')],_0x52103c['callerid'],_0x52103c[_0x0656('0x1b')],_0x52103c[_0x0656('0x1d')]));logger[_0x0656('0x11')](util['format'](_0x0656('0x51'),_0x52103c[_0x0656('0x44')],_0x52103c['extension'],parseInt(_0x52103c[_0x0656('0x46')],0xa)+0x1));_0x52103c[_0x0656('0x52')](_0x52103c['context'],_0x52103c['extension'],parseInt(_0x52103c[_0x0656('0x46')],0xa)+0x1);_0x52103c[_0x0656('0x3a')]();}}else{logger[_0x0656('0xd')](util[_0x0656('0x12')](_0x0656('0x53'),_0x52103c[_0x0656('0x18')]));_0x52103c[_0x0656('0x52')](_0x52103c[_0x0656('0x44')],_0x52103c[_0x0656('0x45')],parseInt(_0x52103c['priority'],0xa)+0x1);_0x52103c[_0x0656('0x3a')]();}}else{logger['error'](util[_0x0656('0x12')](_0x0656('0x54'),_0x52103c[_0x0656('0x18')]));_0x52103c[_0x0656('0x52')](_0x52103c[_0x0656('0x44')],_0x52103c[_0x0656('0x45')],parseInt(_0x52103c[_0x0656('0x46')],0xa)+0x1);_0x52103c['close']();}}function main(){var _0x2fec76;return utilLicense[_0x0656('0x55')]()[_0x0656('0x31')](function(_0x51cf15){if(_0x51cf15){if(_0x51cf15['voice']){if(_0x51cf15[_0x0656('0x56')]&&_0x51cf15['callysquare']>0x0){logger['info'](util['format'](_0x0656('0x57'),_0x51cf15[_0x0656('0x56')]));_0x2fec76=_0x51cf15[_0x0656('0x56')];}else{logger[_0x0656('0x11')]('[LICENSE]\x20CHANNELS:\x20UNLIMITED');}}else{logger['info'](_0x0656('0x58'));_0x2fec76=-0x1;}}})[_0x0656('0x32')](function(_0x2ee112){logger[_0x0656('0xd')](_0x0656('0x59'),_0x2ee112['stack']);})[_0x0656('0x4d')](function(){var _0x430a5b=require(_0x0656('0x5a'))(config['agi'][_0x0656('0x10')],config['agi']['ip'],_0x2fec76);_0x430a5b['on'](_0x0656('0xd'),errorHandler);_0x430a5b['on'](_0x0656('0x5b'),listeningHandler);_0x430a5b['on'](_0x0656('0x5c'),connectionHandler);_0x430a5b['on'](_0x0656('0x3a'),closeHandler);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2484=['message','result','SendMail','client','http','request','then','error'];(function(_0x182d80,_0xfd0969){var _0x1e8dff=function(_0x19c302){while(--_0x19c302){_0x182d80['push'](_0x182d80['shift']());}};_0x1e8dff(++_0xfd0969);}(_0x2484,0xa3));var _0x4248=function(_0x4bfade,_0xb26c0e){_0x4bfade=_0x4bfade-0x0;var _0x272465=_0x2484[_0x4bfade];return _0x272465;};'use strict';var BPromise=require('bluebird');var jayson=require('jayson/promise');var client=jayson[_0x4248('0x0')][_0x4248('0x1')]({'port':0x232b});function request(_0x3122ed,_0x3df2cb){return new BPromise(function(_0x568dd0,_0x60a0f3){return client[_0x4248('0x2')](_0x3122ed,_0x3df2cb)[_0x4248('0x3')](function(_0x5dcbc2){if(_0x5dcbc2['error']){return _0x60a0f3(_0x5dcbc2[_0x4248('0x4')][_0x4248('0x5')]);}else{return _0x568dd0(_0x5dcbc2[_0x4248('0x6')]);}})['catch'](function(_0x886a77){return _0x60a0f3(_0x886a77);});});}exports['sendMailMessage']=function(_0xb12be0,_0xe534b7){return request(_0x4248('0x7'),{'account':_0xb12be0,'message':_0xe534b7});};
\ No newline at end of file
+var _0xd027=['sendMailMessage','SendMail','bluebird','jayson/promise','client','http','request','then','error','message','result','catch'];(function(_0x490be3,_0xf0fca3){var _0x3f5140=function(_0x15fa80){while(--_0x15fa80){_0x490be3['push'](_0x490be3['shift']());}};_0x3f5140(++_0xf0fca3);}(_0xd027,0x176));var _0x7d02=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd027[_0x3dd15e];return _0x231fd0;};'use strict';var BPromise=require(_0x7d02('0x0'));var jayson=require(_0x7d02('0x1'));var client=jayson[_0x7d02('0x2')][_0x7d02('0x3')]({'port':0x232b});function request(_0x1985e7,_0x15bd19){return new BPromise(function(_0xf45aad,_0x29efee){return client[_0x7d02('0x4')](_0x1985e7,_0x15bd19)[_0x7d02('0x5')](function(_0x3de328){if(_0x3de328[_0x7d02('0x6')]){return _0x29efee(_0x3de328[_0x7d02('0x6')][_0x7d02('0x7')]);}else{return _0xf45aad(_0x3de328[_0x7d02('0x8')]);}})[_0x7d02('0x9')](function(_0x566d0b){return _0x29efee(_0x566d0b);});});}exports[_0x7d02('0xa')]=function(_0xd59aa7,_0x28d672){return request(_0x7d02('0xb'),{'account':_0xd59aa7,'message':_0x28d672});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9792=['indexOf','substring','length','split','trim','emit','line','exports','util','Transform','call','_localBuffer','_inBody','inherits','_transform'];(function(_0x3888cc,_0x255fa3){var _0x3749f2=function(_0xba138){while(--_0xba138){_0x3888cc['push'](_0x3888cc['shift']());}};_0x3749f2(++_0x255fa3);}(_0x9792,0x9e));var _0x2979=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x9792[_0x321bb2];return _0x9c12ed;};'use strict';var util=require(_0x2979('0x0'));var Transform=require('stream')[_0x2979('0x1')];function AGIReply(_0x1e49df){Transform[_0x2979('0x2')](this,_0x1e49df);this[_0x2979('0x3')]='';this[_0x2979('0x4')]=![];}util[_0x2979('0x5')](AGIReply,Transform);AGIReply['prototype'][_0x2979('0x6')]=function(_0x583e3a,_0x64def0,_0x128b5a){var _0x1feee8='\x0a',_0x32accd=['\x0a\x0a','\x0d\x0a\x0d\x0a'],_0x2c701c=-0x1,_0x139cd1=-0x1,_0x1ba8bd='',_0x4920f8=0x0,_0x466037='',_0x4c1ba7='';this[_0x2979('0x3')]+=_0x583e3a['toString']();_0x466037=this[_0x2979('0x3')];if(!this[_0x2979('0x4')]){_0x4920f8=0x0;while(_0x32accd[_0x4920f8]){while((_0x139cd1=_0x466037[_0x2979('0x7')](_0x32accd[_0x4920f8]))!=-0x1){_0x1ba8bd=_0x32accd[_0x4920f8];_0x4c1ba7=_0x466037[_0x2979('0x8')](0x0,_0x139cd1);_0x466037=_0x466037[_0x2979('0x8')](_0x139cd1+_0x1ba8bd[_0x2979('0x9')]);var _0x1aa4b2=_0x4c1ba7[_0x2979('0xa')](_0x1feee8),_0xa5b066=0x0,_0x5e9eaf={},_0x12b996='',_0x42be65='',_0x5efc0e=-0x1;while(_0x1aa4b2[_0xa5b066]){_0x5efc0e=_0x1aa4b2[_0xa5b066]['indexOf'](':');if(_0x5efc0e!=-0x1){_0x12b996=_0x1aa4b2[_0xa5b066]['slice'](0x0,_0x5efc0e)[_0x2979('0xb')]();_0x42be65=_0x1aa4b2[_0xa5b066]['slice'](_0x5efc0e+0x1)['trim']();if(_0x12b996['length']>0x0){_0x5e9eaf[_0x12b996]=_0x42be65;}}else{}_0xa5b066++;}this[_0x2979('0xc')]('headers',_0x5e9eaf);this[_0x2979('0x4')]=!![];}_0x4920f8++;}this[_0x2979('0x3')]=_0x466037;}else{while((_0x2c701c=_0x466037['indexOf'](_0x1feee8))!=-0x1){_0x4c1ba7=_0x466037[_0x2979('0x8')](0x0,_0x2c701c);this['emit'](_0x2979('0xd'),_0x4c1ba7);_0x466037=_0x466037[_0x2979('0x8')](_0x2c701c+_0x1feee8['length']);}this[_0x2979('0x3')]=_0x466037;}_0x128b5a();};module[_0x2979('0xe')]=AGIReply;
\ No newline at end of file
+var _0xbf31=['util','stream','Transform','call','_localBuffer','_inBody','inherits','prototype','_transform','\x0d\x0a\x0d\x0a','toString','indexOf','substring','length','slice','trim','emit','headers','exports'];(function(_0x23781a,_0x37897){var _0xe2b19b=function(_0x1d09fb){while(--_0x1d09fb){_0x23781a['push'](_0x23781a['shift']());}};_0xe2b19b(++_0x37897);}(_0xbf31,0x10a));var _0x1bf3=function(_0x2a883b,_0x440afe){_0x2a883b=_0x2a883b-0x0;var _0x1196b1=_0xbf31[_0x2a883b];return _0x1196b1;};'use strict';var util=require(_0x1bf3('0x0'));var Transform=require(_0x1bf3('0x1'))[_0x1bf3('0x2')];function AGIReply(_0x312f1c){Transform[_0x1bf3('0x3')](this,_0x312f1c);this[_0x1bf3('0x4')]='';this[_0x1bf3('0x5')]=![];}util[_0x1bf3('0x6')](AGIReply,Transform);AGIReply[_0x1bf3('0x7')][_0x1bf3('0x8')]=function(_0x4f40e2,_0x269cb4,_0x58624c){var _0x41ec3c='\x0a',_0x10d834=['\x0a\x0a',_0x1bf3('0x9')],_0x571b24=-0x1,_0x34e2e3=-0x1,_0x1e5a42='',_0xc70fd5=0x0,_0x22ebbf='',_0x12dd2b='';this[_0x1bf3('0x4')]+=_0x4f40e2[_0x1bf3('0xa')]();_0x22ebbf=this['_localBuffer'];if(!this['_inBody']){_0xc70fd5=0x0;while(_0x10d834[_0xc70fd5]){while((_0x34e2e3=_0x22ebbf[_0x1bf3('0xb')](_0x10d834[_0xc70fd5]))!=-0x1){_0x1e5a42=_0x10d834[_0xc70fd5];_0x12dd2b=_0x22ebbf['substring'](0x0,_0x34e2e3);_0x22ebbf=_0x22ebbf[_0x1bf3('0xc')](_0x34e2e3+_0x1e5a42[_0x1bf3('0xd')]);var _0x213bfc=_0x12dd2b['split'](_0x41ec3c),_0x40dc47=0x0,_0x302f3b={},_0x149514='',_0xdb49e5='',_0x51221a=-0x1;while(_0x213bfc[_0x40dc47]){_0x51221a=_0x213bfc[_0x40dc47][_0x1bf3('0xb')](':');if(_0x51221a!=-0x1){_0x149514=_0x213bfc[_0x40dc47][_0x1bf3('0xe')](0x0,_0x51221a)[_0x1bf3('0xf')]();_0xdb49e5=_0x213bfc[_0x40dc47][_0x1bf3('0xe')](_0x51221a+0x1)[_0x1bf3('0xf')]();if(_0x149514[_0x1bf3('0xd')]>0x0){_0x302f3b[_0x149514]=_0xdb49e5;}}else{}_0x40dc47++;}this[_0x1bf3('0x10')](_0x1bf3('0x11'),_0x302f3b);this[_0x1bf3('0x5')]=!![];}_0xc70fd5++;}this['_localBuffer']=_0x22ebbf;}else{while((_0x571b24=_0x22ebbf['indexOf'](_0x41ec3c))!=-0x1){_0x12dd2b=_0x22ebbf[_0x1bf3('0xc')](0x0,_0x571b24);this['emit']('line',_0x12dd2b);_0x22ebbf=_0x22ebbf[_0x1bf3('0xc')](_0x571b24+_0x41ec3c[_0x1bf3('0xd')]);}this[_0x1bf3('0x4')]=_0x22ebbf;}_0x58624c();};module[_0x1bf3('0x12')]=AGIReply;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53a9=['CreateSmsMessage','createSquareDetailsReport','createSquareReport','CreateSquareReport','merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','createSquareMessage','CreateSquareMessage','ShowCmHopper','ListId','getPauseById','ShowPause','agentLogin','agentPause','PauseUser','agentUnpause','UnpauseUser','agentLogout','LogoutUser','bluebird','moment','jayson/promise','http','request','then','error','message','result','getSquareProject','production','getMailAccountById','ShowMailAccount','MailServerOut','Smtp','getSquareProjectById','ShowSquareProject','getVoiceQueueById','name','getVariableById','ShowVariable','getSquareOdbcById','dsn','getUserById','getTrunkById','getSoundById','ShowSound','save_name','getIntervalById','Interval','Intervals','getSmsAccountById','ShowSmsAccount','createSmsMessage'];(function(_0x513aa5,_0x1fba79){var _0x1a1a7c=function(_0x240e3f){while(--_0x240e3f){_0x513aa5['push'](_0x513aa5['shift']());}};_0x1a1a7c(++_0x1fba79);}(_0x53a9,0x174));var _0x953a=function(_0x3b01ae,_0x57a5b1){_0x3b01ae=_0x3b01ae-0x0;var _0x72e00c=_0x53a9[_0x3b01ae];return _0x72e00c;};'use strict';var BPromise=require(_0x953a('0x0'));var moment=require(_0x953a('0x1'));var _=require('lodash');var util=require('util');var jayson=require(_0x953a('0x2'));var client=jayson['client'][_0x953a('0x3')]({'port':0x2329});function request(_0x4a3792,_0x3f119e){return new BPromise(function(_0x1d90ff,_0x36215d){return client[_0x953a('0x4')](_0x4a3792,_0x3f119e)[_0x953a('0x5')](function(_0x2a7320){if(_0x2a7320[_0x953a('0x6')]){return _0x36215d(_0x2a7320[_0x953a('0x6')][_0x953a('0x7')]);}else{return _0x1d90ff(_0x2a7320[_0x953a('0x8')]);}})['catch'](function(_0x432738){return _0x36215d(_0x432738);});});}exports[_0x953a('0x9')]=function(_0x2de49e){return request('ShowSquareProject',{'options':{'raw':![],'where':{'name':_0x2de49e},'attributes':[_0x953a('0xa')]}});};exports[_0x953a('0xb')]=function(_0x5b2159){return request(_0x953a('0xc'),{'options':{'raw':![],'where':{'id':_0x5b2159},'include':[{'model':_0x953a('0xd'),'as':_0x953a('0xe')}],'attributes':['id','name','email']}});};exports[_0x953a('0xf')]=function(_0x523b3a){return request(_0x953a('0x10'),{'options':{'where':{'id':_0x523b3a},'attributes':['name']}});};exports[_0x953a('0x11')]=function(_0x12eacd){return request('ShowVoiceQueue',{'options':{'where':{'id':_0x12eacd},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x13')]=function(_0x4891d3){return request(_0x953a('0x14'),{'options':{'where':{'id':_0x4891d3},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x15')]=function(_0x13479e){return request('ShowSquareOdbc',{'options':{'where':{'id':_0x13479e},'attributes':[_0x953a('0x16')]}});};exports[_0x953a('0x17')]=function(_0xf13165){return request('ShowUser',{'options':{'where':{'id':_0xf13165},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x18')]=function(_0x48e263){return request('ShowTrunk',{'options':{'where':{'id':_0x48e263},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x19')]=function(_0x38f5d5){return request(_0x953a('0x1a'),{'options':{'where':{'id':_0x38f5d5},'attributes':[_0x953a('0x1b')]}});};exports[_0x953a('0x1c')]=function(_0x14b596){return request('ShowInterval',{'options':{'raw':![],'where':{'id':_0x14b596},'include':[{'model':_0x953a('0x1d'),'as':_0x953a('0x1e')}]}});};exports[_0x953a('0x1f')]=function(_0x2c2db7){return request(_0x953a('0x20'),{'options':{'where':{'id':_0x2c2db7},'attributes':['id','name']}});};exports[_0x953a('0x21')]=function(_0x103767){return request(_0x953a('0x22'),{'body':_0x103767});};exports[_0x953a('0x23')]=function(_0x534390){return request('CreateSquareDetailsReport',{'body':_0x534390});};exports[_0x953a('0x24')]=function(_0x4e78de){return request(_0x953a('0x25'),{'body':_[_0x953a('0x26')](_0x4e78de,{'project_name':_0x4e78de[_0x953a('0x27')],'prev_project_name':_0x4e78de[_0x953a('0x28')]||'','is_subproject':_0x4e78de[_0x953a('0x28')]?!![]:![],'leaveAt':moment()[_0x953a('0x29')](_0x953a('0x2a'))})});};exports[_0x953a('0x2b')]=function(_0x3d43ee){return request(_0x953a('0x2c'),{'body':_0x3d43ee});};exports[_0x953a('0x2d')]=function(_0x5b8244){return request(_0x953a('0x2e'),{'body':_0x5b8244});};exports['createCmContact']=function(_0x26b73d){return request(_0x953a('0x2f'),{'options':{'raw':![],'where':{'phone':_0x26b73d['phone'],'ListId':_0x26b73d[_0x953a('0x30')]}}})[_0x953a('0x5')](function(_0x47e91d){if(_0x47e91d){return _0x47e91d;}return request('CreateCmContact',{'body':_0x26b73d});});};exports[_0x953a('0x31')]=function(_0x335bf6){return request(_0x953a('0x32'),{'options':{'where':{'id':_0x335bf6},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x33')]=function(_0x380554,_0x48db25){return request('LoginUser',{'body':{'interface':_0x48db25},'options':{'where':_0x380554}});};exports[_0x953a('0x34')]=function(_0x3da8ce,_0x4e4221,_0x4ad41b){return request(_0x953a('0x35'),{'body':{'type':_0x4e4221,'uniqueid':_0x4ad41b},'options':{'where':_0x3da8ce}});};exports[_0x953a('0x36')]=function(_0xf57666){return request(_0x953a('0x37'),{'body':{},'options':{'where':_0xf57666}});};exports[_0x953a('0x38')]=function(_0x430220){return request(_0x953a('0x39'),{'body':{},'options':{'where':_0x430220}});};
\ No newline at end of file
+var _0xd91a=['dsn','getUserById','ShowUser','getTrunkById','ShowTrunk','getSoundById','save_name','getIntervalById','ShowInterval','ShowSmsAccount','createSmsMessage','CreateSmsMessage','createSquareDetailsReport','CreateSquareDetailsReport','createSquareReport','CreateSquareReport','merge','arg_2','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','createCmContact','phone','ListId','getPauseById','agentLogin','LoginUser','agentPause','PauseUser','agentUnpause','UnpauseUser','agentLogout','LogoutUser','bluebird','moment','lodash','util','jayson/promise','client','request','then','error','message','result','catch','getSquareProject','ShowSquareProject','production','ShowMailAccount','MailServerOut','Smtp','name','getSquareProjectById','ShowVoiceQueue','getVariableById','getSquareOdbcById','ShowSquareOdbc'];(function(_0x2050f7,_0x3833c6){var _0x219da1=function(_0x554dc1){while(--_0x554dc1){_0x2050f7['push'](_0x2050f7['shift']());}};_0x219da1(++_0x3833c6);}(_0xd91a,0x13e));var _0xad91=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd91a[_0x20a584];return _0x4b41a8;};'use strict';var BPromise=require(_0xad91('0x0'));var moment=require(_0xad91('0x1'));var _=require(_0xad91('0x2'));var util=require(_0xad91('0x3'));var jayson=require(_0xad91('0x4'));var client=jayson[_0xad91('0x5')]['http']({'port':0x2329});function request(_0x5ec4e9,_0x4ec043){return new BPromise(function(_0x4d5ec3,_0xaa0164){return client[_0xad91('0x6')](_0x5ec4e9,_0x4ec043)[_0xad91('0x7')](function(_0x3f4591){if(_0x3f4591[_0xad91('0x8')]){return _0xaa0164(_0x3f4591[_0xad91('0x8')][_0xad91('0x9')]);}else{return _0x4d5ec3(_0x3f4591[_0xad91('0xa')]);}})[_0xad91('0xb')](function(_0x38e186){return _0xaa0164(_0x38e186);});});}exports[_0xad91('0xc')]=function(_0x348e3b){return request(_0xad91('0xd'),{'options':{'raw':![],'where':{'name':_0x348e3b},'attributes':[_0xad91('0xe')]}});};exports['getMailAccountById']=function(_0x160ba0){return request(_0xad91('0xf'),{'options':{'raw':![],'where':{'id':_0x160ba0},'include':[{'model':_0xad91('0x10'),'as':_0xad91('0x11')}],'attributes':['id',_0xad91('0x12'),'email']}});};exports[_0xad91('0x13')]=function(_0xeb52b3){return request(_0xad91('0xd'),{'options':{'where':{'id':_0xeb52b3},'attributes':[_0xad91('0x12')]}});};exports['getVoiceQueueById']=function(_0x1adc65){return request(_0xad91('0x14'),{'options':{'where':{'id':_0x1adc65},'attributes':['name']}});};exports[_0xad91('0x15')]=function(_0x57e1db){return request('ShowVariable',{'options':{'where':{'id':_0x57e1db},'attributes':['name']}});};exports[_0xad91('0x16')]=function(_0x4868e3){return request(_0xad91('0x17'),{'options':{'where':{'id':_0x4868e3},'attributes':[_0xad91('0x18')]}});};exports[_0xad91('0x19')]=function(_0x182c28){return request(_0xad91('0x1a'),{'options':{'where':{'id':_0x182c28},'attributes':[_0xad91('0x12')]}});};exports[_0xad91('0x1b')]=function(_0x3474b5){return request(_0xad91('0x1c'),{'options':{'where':{'id':_0x3474b5},'attributes':[_0xad91('0x12')]}});};exports[_0xad91('0x1d')]=function(_0x5931bf){return request('ShowSound',{'options':{'where':{'id':_0x5931bf},'attributes':[_0xad91('0x1e')]}});};exports[_0xad91('0x1f')]=function(_0x1225f7){return request(_0xad91('0x20'),{'options':{'raw':![],'where':{'id':_0x1225f7},'include':[{'model':'Interval','as':'Intervals'}]}});};exports['getSmsAccountById']=function(_0x111043){return request(_0xad91('0x21'),{'options':{'where':{'id':_0x111043},'attributes':['id',_0xad91('0x12')]}});};exports[_0xad91('0x22')]=function(_0x39d12c){return request(_0xad91('0x23'),{'body':_0x39d12c});};exports[_0xad91('0x24')]=function(_0x200b6d){return request(_0xad91('0x25'),{'body':_0x200b6d});};exports[_0xad91('0x26')]=function(_0x1d2e9f){return request(_0xad91('0x27'),{'body':_[_0xad91('0x28')](_0x1d2e9f,{'project_name':_0x1d2e9f['arg_1'],'prev_project_name':_0x1d2e9f['arg_2']||'','is_subproject':_0x1d2e9f[_0xad91('0x29')]?!![]:![],'leaveAt':moment()['format'](_0xad91('0x2a'))})});};exports[_0xad91('0x2b')]=function(_0x4da87a){return request(_0xad91('0x2c'),{'body':_0x4da87a});};exports['createSquareMessage']=function(_0x48c2df){return request('CreateSquareMessage',{'body':_0x48c2df});};exports[_0xad91('0x2d')]=function(_0x10a0e7){return request('ShowCmHopper',{'options':{'raw':![],'where':{'phone':_0x10a0e7[_0xad91('0x2e')],'ListId':_0x10a0e7[_0xad91('0x2f')]}}})[_0xad91('0x7')](function(_0x4f8dad){if(_0x4f8dad){return _0x4f8dad;}return request('CreateCmContact',{'body':_0x10a0e7});});};exports[_0xad91('0x30')]=function(_0x6b27e4){return request('ShowPause',{'options':{'where':{'id':_0x6b27e4},'attributes':[_0xad91('0x12')]}});};exports[_0xad91('0x31')]=function(_0x1c72fa,_0x4e8bc1){return request(_0xad91('0x32'),{'body':{'interface':_0x4e8bc1},'options':{'where':_0x1c72fa}});};exports[_0xad91('0x33')]=function(_0xb91109,_0x212f21,_0xc0c4f6){return request(_0xad91('0x34'),{'body':{'type':_0x212f21,'uniqueid':_0xc0c4f6},'options':{'where':_0xb91109}});};exports[_0xad91('0x35')]=function(_0x18f126){return request(_0xad91('0x36'),{'body':{},'options':{'where':_0x18f126}});};exports[_0xad91('0x37')]=function(_0x45f4e0){return request(_0xad91('0x38'),{'body':{},'options':{'where':_0x45f4e0}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0967=['./polly','exports'];(function(_0x470b0a,_0x2889d6){var _0x4463f6=function(_0x2b5f0e){while(--_0x2b5f0e){_0x470b0a['push'](_0x470b0a['shift']());}};_0x4463f6(++_0x2889d6);}(_0x0967,0x100));var _0x7096=function(_0x31e12b,_0x58f00c){_0x31e12b=_0x31e12b-0x0;var _0xe4333e=_0x0967[_0x31e12b];return _0xe4333e;};var polly=require(_0x7096('0x0'));var lex=require('./lex');module[_0x7096('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
+var _0xd9a8=['./polly','./lex','exports'];(function(_0x1a4d90,_0x1c0fac){var _0x23e845=function(_0xfc4c95){while(--_0xfc4c95){_0x1a4d90['push'](_0x1a4d90['shift']());}};_0x23e845(++_0x1c0fac);}(_0xd9a8,0xc3));var _0x8d9a=function(_0x342cb9,_0x42ba68){_0x342cb9=_0x342cb9-0x0;var _0x9456bc=_0xd9a8[_0x342cb9];return _0x9456bc;};var polly=require(_0x8d9a('0x0'));var lex=require(_0x8d9a('0x1'));module[_0x8d9a('0x2')]={'polly':polly,'lex':lex};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c00=['./lib/api','exports'];(function(_0x571f5a,_0x4f7f25){var _0x45508e=function(_0x14fa9c){while(--_0x14fa9c){_0x571f5a['push'](_0x571f5a['shift']());}};_0x45508e(++_0x4f7f25);}(_0x9c00,0x1a0));var _0x09c0=function(_0x4032e3,_0x6d6449){_0x4032e3=_0x4032e3-0x0;var _0x34f51a=_0x9c00[_0x4032e3];return _0x34f51a;};'use strict';var lex=require(_0x09c0('0x0'));module[_0x09c0('0x1')]=function(_0x4dff21,_0x5e32e7,_0xe0d293,_0x8c9907,_0x5d1967,_0x220c0c){return lex(_0x4dff21,_0x5e32e7,_0xe0d293,_0x8c9907,_0x5d1967,_0x220c0c);};
\ No newline at end of file
+var _0xa571=['exports','./lib/api'];(function(_0x38854e,_0x23cbc9){var _0x3f8415=function(_0x4e493e){while(--_0x4e493e){_0x38854e['push'](_0x38854e['shift']());}};_0x3f8415(++_0x23cbc9);}(_0xa571,0x107));var _0x1a57=function(_0x1cb574,_0x318720){_0x1cb574=_0x1cb574-0x0;var _0x3f11a5=_0xa571[_0x1cb574];return _0x3f11a5;};'use strict';var lex=require(_0x1a57('0x0'));module[_0x1a57('0x1')]=function(_0x206f1b,_0x1067d9,_0x48485e,_0x1a071f,_0x2eebaa,_0x4d5f7a){return lex(_0x206f1b,_0x1067d9,_0x48485e,_0x1a071f,_0x2eebaa,_0x4d5f7a);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x41ec5f,_0x564661){var _0x540e0b=function(_0x5e4129){while(--_0x5e4129){_0x41ec5f['push'](_0x41ec5f['shift']());}};_0x540e0b(++_0x564661);}(_0xa9e0,0x123));var _0x0a9e=function(_0x373dee,_0x1a8c45){_0x373dee=_0x373dee-0x0;var _0x46798f=_0xa9e0[_0x373dee];return _0x46798f;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
+var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x3df3c6,_0x496e1a){var _0x254c43=function(_0x371daa){while(--_0x371daa){_0x3df3c6['push'](_0x3df3c6['shift']());}};_0x254c43(++_0x496e1a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c2a69,_0x4c8b41){_0x3c2a69=_0x3c2a69-0x0;var _0x596bc8=_0xa9e0[_0x3c2a69];return _0x596bc8;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7a8=['./lib/api','exports'];(function(_0x2bc09e,_0x1ae747){var _0x3f7c75=function(_0x49bed4){while(--_0x49bed4){_0x2bc09e['push'](_0x2bc09e['shift']());}};_0x3f7c75(++_0x1ae747);}(_0xf7a8,0xf2));var _0x8f7a=function(_0x1d70aa,_0x1d379e){_0x1d70aa=_0x1d70aa-0x0;var _0x2bd43e=_0xf7a8[_0x1d70aa];return _0x2bd43e;};'use strict';var polly=require(_0x8f7a('0x0'));module[_0x8f7a('0x1')]=function(_0x3a6311,_0x112b3c,_0x537f23,_0x240198,_0x540345,_0x13a973,_0x372640){return polly(_0x3a6311,_0x112b3c,_0x537f23,_0x240198,_0x540345,_0x13a973,_0x372640);};
\ No newline at end of file
+var _0x701b=['./lib/api','exports'];(function(_0x5a1fc7,_0x27e395){var _0x383243=function(_0x12e720){while(--_0x12e720){_0x5a1fc7['push'](_0x5a1fc7['shift']());}};_0x383243(++_0x27e395);}(_0x701b,0x1d0));var _0xb701=function(_0x47e771,_0x5763a1){_0x47e771=_0x47e771-0x0;var _0x4dcb00=_0x701b[_0x47e771];return _0x4dcb00;};'use strict';var polly=require(_0xb701('0x0'));module[_0xb701('0x1')]=function(_0x1007ab,_0x9a33d2,_0x1f9bba,_0x2c2623,_0x456936,_0x10431a,_0x4dceaf){return polly(_0x1007ab,_0x9a33d2,_0x1f9bba,_0x2c2623,_0x456936,_0x10431a,_0x4dceaf);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf68c=['Invalid\x20data\x20response\x20from\x20aws\x20Polly!','No\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','text','mp3','path','randomstring','aws-sdk','synthesizeSpeech','AudioStream','writeFile'];(function(_0x4cd41e,_0x31aabe){var _0x14ec7b=function(_0x7b8b0a){while(--_0x7b8b0a){_0x4cd41e['push'](_0x4cd41e['shift']());}};_0x14ec7b(++_0x31aabe);}(_0xf68c,0x156));var _0xcf68=function(_0xec6801,_0x55ba39){_0xec6801=_0xec6801-0x0;var _0x54be0f=_0xf68c[_0xec6801];return _0x54be0f;};'use strict';var fs=require('fs');var path=require(_0xcf68('0x0'));var BPromise=require('bluebird');var rs=require(_0xcf68('0x1'));var AWS=require(_0xcf68('0x2'));function pollyResult(_0x5c037b,_0x9697f8,_0x380381){return new BPromise(function(_0x1788ad,_0x3d126c){_0x5c037b[_0xcf68('0x3')](_0x9697f8,function(_0x3d82ce,_0x54b909){if(_0x3d82ce){_0x3d126c(_0x3d82ce);}else if(_0x54b909){if(_0x54b909[_0xcf68('0x4')]instanceof Buffer){fs[_0xcf68('0x5')](_0x380381,_0x54b909[_0xcf68('0x4')],function(_0x3c5c7a){if(_0x3c5c7a){_0x3d126c(_0x3c5c7a);}else{_0x1788ad();}});}else{_0x3d126c(new Error(_0xcf68('0x6')));}}else{_0x3d126c(new Error(_0xcf68('0x7')));}});});}module[_0xcf68('0x8')]=function(_0x5f1121,_0x2953b2,_0x30e145,_0x4c13b4,_0x560b5b,_0xe63c47,_0x1f654f){var _0x5ecce2=new AWS[(_0xcf68('0x9'))]({'accessKeyId':_0x5f1121,'secretAccessKey':_0x2953b2,'region':_0x30e145});var _0x52344f={'Text':_0x560b5b,'TextType':_0xe63c47||_0xcf68('0xa'),'OutputFormat':_0xcf68('0xb'),'VoiceId':_0x4c13b4};return pollyResult(_0x5ecce2,_0x52344f,_0x1f654f);};
\ No newline at end of file
+var _0xc525=['synthesizeSpeech','AudioStream','No\x20data\x20response\x20from\x20aws\x20Polly!','Polly','text','path','bluebird','randomstring','aws-sdk'];(function(_0x2cef2b,_0x35baa0){var _0x3e0838=function(_0x4a991d){while(--_0x4a991d){_0x2cef2b['push'](_0x2cef2b['shift']());}};_0x3e0838(++_0x35baa0);}(_0xc525,0xdd));var _0x5c52=function(_0x1ba1c0,_0x5f4307){_0x1ba1c0=_0x1ba1c0-0x0;var _0x35436e=_0xc525[_0x1ba1c0];return _0x35436e;};'use strict';var fs=require('fs');var path=require(_0x5c52('0x0'));var BPromise=require(_0x5c52('0x1'));var rs=require(_0x5c52('0x2'));var AWS=require(_0x5c52('0x3'));function pollyResult(_0x5a7f9e,_0x437585,_0x3e9ddf){return new BPromise(function(_0x506f9e,_0x413d15){_0x5a7f9e[_0x5c52('0x4')](_0x437585,function(_0x5c9213,_0x5a2437){if(_0x5c9213){_0x413d15(_0x5c9213);}else if(_0x5a2437){if(_0x5a2437['AudioStream']instanceof Buffer){fs['writeFile'](_0x3e9ddf,_0x5a2437[_0x5c52('0x5')],function(_0x426800){if(_0x426800){_0x413d15(_0x426800);}else{_0x506f9e();}});}else{_0x413d15(new Error('Invalid\x20data\x20response\x20from\x20aws\x20Polly!'));}}else{_0x413d15(new Error(_0x5c52('0x6')));}});});}module['exports']=function(_0x2f40e3,_0x1a75d3,_0x5b12d5,_0x13fcd7,_0x4fa07b,_0x54d706,_0x16b324){var _0x5b4ba8=new AWS[(_0x5c52('0x7'))]({'accessKeyId':_0x2f40e3,'secretAccessKey':_0x1a75d3,'region':_0x5b12d5});var _0xa6285f={'Text':_0x4fa07b,'TextType':_0x54d706||_0x5c52('0x8'),'OutputFormat':'mp3','VoiceId':_0x13fcd7};return pollyResult(_0x5b4ba8,_0xa6285f,_0x16b324);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x279f=['./lib/api','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x279f,0x18a));var _0xf279=function(_0x1203f,_0x554bbc){_0x1203f=_0x1203f-0x0;var _0x365f0a=_0x279f[_0x1203f];return _0x365f0a;};'use strict';var asr=require(_0xf279('0x0'));module[_0xf279('0x1')]=function(_0x2cd596,_0x421037,_0x29c3c1,_0x329c55){return asr(_0x2cd596,_0x421037,_0x29c3c1);};
\ No newline at end of file
+var _0x146f=['exports','./lib/api'];(function(_0x22f94c,_0x33208a){var _0x2cf3e8=function(_0x405dd0){while(--_0x405dd0){_0x22f94c['push'](_0x22f94c['shift']());}};_0x2cf3e8(++_0x33208a);}(_0x146f,0xc3));var _0xf146=function(_0xa42909,_0x24e11a){_0xa42909=_0xa42909-0x0;var _0x5551ef=_0x146f[_0xa42909];return _0x5551ef;};'use strict';var asr=require(_0xf146('0x0'));module[_0xf146('0x1')]=function(_0x192ac9,_0x7599b2,_0x398c26,_0x2607ef){return asr(_0x192ac9,_0x7599b2,_0x398c26);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ded=['readFileSync','POST','/v1/speech:recognize?key=','url','bluebird','https://speech.googleapis.com','exports','string','length','key\x20should\x20be\x20a\x20string','undefined'];(function(_0x21747a,_0x2bf4d5){var _0x365f2a=function(_0x1e2b22){while(--_0x1e2b22){_0x21747a['push'](_0x21747a['shift']());}};_0x365f2a(++_0x2bf4d5);}(_0x4ded,0x116));var _0xd4de=function(_0x521a2b,_0x1f2dc4){_0x521a2b=_0x521a2b-0x0;var _0x3e4be8=_0x4ded[_0x521a2b];return _0x3e4be8;};'use strict';var url=require(_0xd4de('0x0'));var BPromise=require(_0xd4de('0x1'));var fs=require('fs');var host=_0xd4de('0x2');module[_0xd4de('0x3')]=function(_0x2349f5,_0x377530,_0x1b2252){return new BPromise(function(_0x42f90f,_0x20930f){var _0x36d4dd;if(typeof _0x2349f5!==_0xd4de('0x4')||_0x2349f5[_0xd4de('0x5')]===0x0){return _0x20930f('filepath\x20should\x20be\x20a\x20string');}if(typeof _0x377530!==_0xd4de('0x4')||_0x377530[_0xd4de('0x5')]===0x0){return _0x20930f(_0xd4de('0x6'));}if(typeof _0x1b2252!==_0xd4de('0x7')&&(typeof _0x1b2252!==_0xd4de('0x4')||_0x1b2252[_0xd4de('0x5')]===0x0)){return _0x20930f('lang\x20should\x20be\x20a\x20string');}try{_0x36d4dd=fs[_0xd4de('0x8')](_0x2349f5)['toString']('base64');}catch(_0x4b0876){return _0x20930f(_0x4b0876);}return _0x42f90f({'method':_0xd4de('0x9'),'uri':host+_0xd4de('0xa')+_0x377530,'body':{'config':{'encoding':'LINEAR16','sampleRateHertz':'8000','languageCode':_0x1b2252},'audio':{'content':_0x36d4dd}},'json':!![]});});};
\ No newline at end of file
+var _0x0e9f=['/v1/speech:recognize?key=','LINEAR16','url','bluebird','string','length','key\x20should\x20be\x20a\x20string','undefined','readFileSync','toString','base64','POST'];(function(_0x22fee6,_0x395b9d){var _0x258622=function(_0x54e057){while(--_0x54e057){_0x22fee6['push'](_0x22fee6['shift']());}};_0x258622(++_0x395b9d);}(_0x0e9f,0x116));var _0xf0e9=function(_0x5ac03d,_0x148920){_0x5ac03d=_0x5ac03d-0x0;var _0x414f9a=_0x0e9f[_0x5ac03d];return _0x414f9a;};'use strict';var url=require(_0xf0e9('0x0'));var BPromise=require(_0xf0e9('0x1'));var fs=require('fs');var host='https://speech.googleapis.com';module['exports']=function(_0x15215f,_0x4c067c,_0x4b7f25){return new BPromise(function(_0x2d2d99,_0x559cad){var _0x52a19d;if(typeof _0x15215f!==_0xf0e9('0x2')||_0x15215f[_0xf0e9('0x3')]===0x0){return _0x559cad('filepath\x20should\x20be\x20a\x20string');}if(typeof _0x4c067c!==_0xf0e9('0x2')||_0x4c067c['length']===0x0){return _0x559cad(_0xf0e9('0x4'));}if(typeof _0x4b7f25!==_0xf0e9('0x5')&&(typeof _0x4b7f25!==_0xf0e9('0x2')||_0x4b7f25['length']===0x0)){return _0x559cad('lang\x20should\x20be\x20a\x20string');}try{_0x52a19d=fs[_0xf0e9('0x6')](_0x15215f)[_0xf0e9('0x7')](_0xf0e9('0x8'));}catch(_0x5071a4){return _0x559cad(_0x5071a4);}return _0x2d2d99({'method':_0xf0e9('0x9'),'uri':host+_0xf0e9('0xa')+_0x4c067c,'body':{'config':{'encoding':_0xf0e9('0xb'),'sampleRateHertz':'8000','languageCode':_0x4b7f25},'audio':{'content':_0x52a19d}},'json':!![]});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3967=['./asr','exports'];(function(_0x37c254,_0x154798){var _0x492a57=function(_0x2a0185){while(--_0x2a0185){_0x37c254['push'](_0x37c254['shift']());}};_0x492a57(++_0x154798);}(_0x3967,0x16a));var _0x7396=function(_0x57dc85,_0x3a6d51){_0x57dc85=_0x57dc85-0x0;var _0x563a2e=_0x3967[_0x57dc85];return _0x563a2e;};var asr=require(_0x7396('0x0'));module[_0x7396('0x1')]={'asr':asr};
\ No newline at end of file
+var _0xfa14=['exports'];(function(_0x480e1a,_0x3be65e){var _0x273822=function(_0xce7b33){while(--_0xce7b33){_0x480e1a['push'](_0x480e1a['shift']());}};_0x273822(++_0x3be65e);}(_0xfa14,0x19b));var _0x4fa1=function(_0x3452c5,_0x11829a){_0x3452c5=_0x3452c5-0x0;var _0x3d2172=_0xfa14[_0x3452c5];return _0x3d2172;};var asr=require('./asr');module[_0x4fa1('0x0')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb93=['audioContent','unlink','777','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','application/x-www-form-urlencoded','f.req=','stringify','generic','slice','length','\x22\x20might\x20not\x20exist','writeFileSync','goggleTTS\x20path','asr','results','map','alternatives','transcript','confidence','join','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','message','googleDialogflow','textRequest','result','source','resolvedQuery','action','actionIncomplete','fulfillment','speech','score','code','endConversation','metadata','isFallbackIntent','replace','SessionsClient','sessionPath','detectIntent','Dialogflow\x20V2\x20response:','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','isFallback','queryText','responseId','intentDetectionConfidence','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','polly','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','sestekNDA','text','channelData','CustomAction','audiofile','dirName','apiai-promise','bluebird','dialogflow','https','md5','path','querystring','request-promise','sox','google-tts-api','url','parse','util','./aws','./google','./tilde','../../../config/logger','agi','protocol','get','statusCode','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','finish','info','finish\x20download\x20file','close','error','pipe','end','https:','host','WHAT_EVER','data','wav','error\x20convert','finish\x20to\x20convert','start','resolve','tmp','generate','.wav','base64','chmodSync','split','readFileSync','toString','https://texttospeech.googleapis.com/v1/','ssml','input','MP3','text:synthesize','POST','then','.mp3','from'];(function(_0x2894d5,_0x159d6b){var _0x343dd7=function(_0x3ee396){while(--_0x3ee396){_0x2894d5['push'](_0x2894d5['shift']());}};_0x343dd7(++_0x159d6b);}(_0xfb93,0x150));var _0x3fb9=function(_0x5e25c9,_0x3dd817){_0x5e25c9=_0x5e25c9-0x0;var _0x35c8d0=_0xfb93[_0x5e25c9];return _0x35c8d0;};'use strict';var apiai=require(_0x3fb9('0x0'));var BPromise=require(_0x3fb9('0x1'));var dialogflow=require(_0x3fb9('0x2'));var fs=require('fs');var http=require('http');var https=require(_0x3fb9('0x3'));var md5=require(_0x3fb9('0x4'));var path=require(_0x3fb9('0x5'));var querystring=require(_0x3fb9('0x6'));var rp=require(_0x3fb9('0x7'));var rs=require('randomstring');var sox=require(_0x3fb9('0x8'));var tts=require(_0x3fb9('0x9'));var urlParse=require(_0x3fb9('0xa'))[_0x3fb9('0xb')];var util=require(_0x3fb9('0xc'));var aws=require(_0x3fb9('0xd'));var google=require(_0x3fb9('0xe'));var sestek=require('./sestek');var tilde=require(_0x3fb9('0xf'));var logger=require(_0x3fb9('0x10'))(_0x3fb9('0x11'));var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x567655,_0x4229a7){return new BPromise(function(_0x466c20,_0x198473){var _0x4e0073=urlParse(_0x567655);var _0x552c97=_0x4e0073[_0x3fb9('0x12')]==='https:'?https:http;var _0x37b467={'host':_0x4e0073['host'],'path':_0x4e0073[_0x3fb9('0x5')],'headers':{'user-agent':'WHAT_EVER'}};_0x552c97[_0x3fb9('0x13')](_0x37b467,function(_0x25651f){if(_0x25651f[_0x3fb9('0x14')]!==0xc8){logger['error'](_0x3fb9('0x15')+_0x567655+_0x3fb9('0x16')+_0x25651f[_0x3fb9('0x14')]+'\x20('+_0x25651f[_0x3fb9('0x17')]+')');_0x198473(new Error(_0x3fb9('0x15')+_0x567655+_0x3fb9('0x16')+_0x25651f[_0x3fb9('0x14')]+'\x20('+_0x25651f[_0x3fb9('0x17')]+')'));return;}var _0x4953db=fs['createWriteStream'](_0x4229a7);_0x4953db['on'](_0x3fb9('0x18'),function(){logger[_0x3fb9('0x19')](_0x3fb9('0x1a'));_0x4953db[_0x3fb9('0x1b')](_0x466c20);});_0x4953db['on'](_0x3fb9('0x1c'),function(_0x144839){fs['unlink'](_0x4229a7);logger[_0x3fb9('0x1c')]('download\x20error',_0x144839);_0x198473(_0x144839);});_0x25651f[_0x3fb9('0x1d')](_0x4953db);})['on'](_0x3fb9('0x1c'),function(_0x371ca3){logger[_0x3fb9('0x1c')](_0x371ca3);_0x198473(_0x371ca3);})[_0x3fb9('0x1e')]();});}function uploadFile(_0x59f7ba){return new BPromise(function(_0x421fad,_0x4a4985){var _0x5476b9=urlParse(_0x59f7ba);var _0x4cd2cf=_0x5476b9[_0x3fb9('0x12')]===_0x3fb9('0x1f')?https:http;var _0x51b61d={'host':_0x5476b9[_0x3fb9('0x20')],'path':_0x5476b9[_0x3fb9('0x5')],'headers':{'user-agent':_0x3fb9('0x21')}};_0x4cd2cf[_0x3fb9('0x13')](_0x51b61d,function(_0x79f039){if(_0x79f039[_0x3fb9('0x14')]!==0xc8){_0x4a4985(new Error(_0x3fb9('0x15')+_0x59f7ba+_0x3fb9('0x16')+_0x79f039['statusCode']+'\x20('+_0x79f039[_0x3fb9('0x17')]+')'));return;}var _0x1d6e36='';_0x79f039['on'](_0x3fb9('0x22'),function(_0x592c2d){_0x1d6e36+=_0x592c2d;});_0x79f039['on'](_0x3fb9('0x1e'),function(){_0x421fad(_0x1d6e36);});})['on'](_0x3fb9('0x1c'),function(_0x44a393){_0x4a4985(_0x44a393);})[_0x3fb9('0x1e')]();});}function convertFile(_0x4c9c97,_0x382291){return new BPromise(function(_0x20ec05,_0x254118){var _0x2e6710=sox['transcode'](_0x4c9c97,_0x382291,{'sampleRate':0x1f40,'format':_0x3fb9('0x23'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x2e6710['on'](_0x3fb9('0x1c'),function(_0x1e259f){logger[_0x3fb9('0x1c')](_0x3fb9('0x24'),_0x1e259f);_0x254118(_0x1e259f);});_0x2e6710['on']('end',function(){logger[_0x3fb9('0x19')](_0x3fb9('0x25'));_0x20ec05();});_0x2e6710[_0x3fb9('0x26')]();});}function base64Decode(_0x3036d6,_0x42a92d){var _0x1a4c7e=path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x2a'));fs['writeFileSync'](_0x1a4c7e,_0x3036d6,_0x3fb9('0x2b'));return convertFile(_0x1a4c7e,_0x42a92d)['then'](function(){try{fs['unlink'](_0x1a4c7e);fs[_0x3fb9('0x2c')](_0x42a92d,'777');}catch(_0x21b9f6){logger['error'](_0x21b9f6);}return _0x42a92d[_0x3fb9('0x2d')]('.')[0x0];});}function base64Encode(_0x2245e8){var _0x281842=fs[_0x3fb9('0x2e')](_0x2245e8);return new Buffer(_0x281842)[_0x3fb9('0x2f')](_0x3fb9('0x2b'));}exports['googleCloudTTS']=function(_0x4678d3,_0x4f84fd,_0x2e4c44,_0x38962c,_0xdc67ba,_0x434aeb){var _0x14c0d7,_0x5d10f0;var _0x11f76c=_0x3fb9('0x30');var _0xd3f9cb='?key='+_0x4678d3;var _0x22d49b={};if(_0x4f84fd===_0x3fb9('0x31')){_0x22d49b['input']={'ssml':_0x2e4c44};}else{_0x22d49b[_0x3fb9('0x32')]={'text':_0x2e4c44};};_0x22d49b['voice']={'languageCode':_0x38962c,'ssmlGender':_0xdc67ba};_0x22d49b['audioConfig']={'audioEncoding':_0x3fb9('0x33'),'sampleRateHertz':0x1f40};var _0x49a7fb={'url':_0x11f76c+_0x3fb9('0x34')+_0xd3f9cb,'method':_0x3fb9('0x35'),'json':!![],'body':_0x22d49b};return rp(_0x49a7fb)[_0x3fb9('0x36')](function(_0x41e61f){return new BPromise(function(_0x256140,_0x1799aa){_0x14c0d7=path['resolve'](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x37'));var _0x54af64=Buffer[_0x3fb9('0x38')](_0x41e61f[_0x3fb9('0x39')],'base64');return fs['writeFile'](_0x14c0d7,_0x54af64,function(_0x42994b){_0x1799aa(_0x42994b);},function(_0x592787){fs['chmodSync'](_0x14c0d7,'777');_0x256140(_0x592787);});});})[_0x3fb9('0x36')](function(_0x1f1252){_0x5d10f0=path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+'.wav');return convertFile(_0x14c0d7,_0x5d10f0);})[_0x3fb9('0x36')](function(){try{fs[_0x3fb9('0x3a')](_0x14c0d7);fs[_0x3fb9('0x2c')](_0x5d10f0,_0x3fb9('0x3b'));}catch(_0x2cd2e4){logger['error'](_0x2cd2e4);}logger['info']('googleCloudTTS\x20path',_0x5d10f0['split']('.')[0x0]);return _0x5d10f0[_0x3fb9('0x2d')]('.')[0x0];});};exports[_0x3fb9('0x3c')]=function(_0x508fa2,_0x16560c){var _0x45b9a8=_0x3fb9('0x3d');var _0x294643,_0x27a6b4;var _0x466b4a;var _0xd0b982={'encoding':'utf8','method':_0x3fb9('0x35'),'timeout':0x2710,'url':_0x45b9a8,'headers':{'Content-Type':_0x3fb9('0x3e')},'body':_0x3fb9('0x3f')+encodeURIComponent(JSON[_0x3fb9('0x40')]([[['jQ1olc',JSON[_0x3fb9('0x40')]([_0x508fa2,_0x16560c||'en',![],'null']),null,_0x3fb9('0x41')]]]))};return rp(_0xd0b982)[_0x3fb9('0x36')](function(_0x29ec06){try{_0x466b4a=eval(_0x29ec06[_0x3fb9('0x42')](0x5))[0x0][0x2];}catch(_0x3452dc){throw new Error('parse\x20response\x20failed:\x0a'+_0x29ec06[_0x3fb9('0x22')]);}if(!_0x466b4a){if(_0x508fa2[_0x3fb9('0x43')]>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error('lang\x20\x22'+_0x16560c+_0x3fb9('0x44'));}}try{_0x466b4a=eval(_0x466b4a)[0x0];}catch(_0x8becf4){throw new Error('parse\x20response\x20failed:\x0a'+res['data']);}const _0x47ba4b=_0x466b4a;_0x294643=path['resolve'](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x37'));fs[_0x3fb9('0x45')](_0x294643,_0x466b4a,{'encoding':_0x3fb9('0x2b')});_0x27a6b4=path[_0x3fb9('0x27')](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+'.wav');return convertFile(_0x294643,_0x27a6b4);})[_0x3fb9('0x36')](function(){try{fs[_0x3fb9('0x3a')](_0x294643);fs[_0x3fb9('0x2c')](_0x27a6b4,_0x3fb9('0x3b'));}catch(_0x4cc485){logger[_0x3fb9('0x1c')](_0x4cc485);}logger['info'](_0x3fb9('0x46'),_0x27a6b4[_0x3fb9('0x2d')]('.')[0x0]);return _0x27a6b4[_0x3fb9('0x2d')]('.')[0x0];});};exports['googleASR']=function(_0x1fa84e,_0x251109,_0x49acd7){return google[_0x3fb9('0x47')](_0x1fa84e,_0x251109,_0x49acd7)[_0x3fb9('0x36')](function(_0x466731){logger[_0x3fb9('0x19')](_0x466731['uri']);return rp(_0x466731);})[_0x3fb9('0x36')](function(_0x4d62e5){var _0x943502='';var _0x1c333f=0x0;try{fs[_0x3fb9('0x3a')](_0x1fa84e);}catch(_0x42a101){logger['error'](_0x42a101);}if(_0x4d62e5&&_0x4d62e5[_0x3fb9('0x48')]){_0x943502=_0x4d62e5['results'][_0x3fb9('0x49')](function(_0x3627ad){return _0x3627ad&&_0x3627ad[_0x3fb9('0x4a')][0x0]&&_0x3627ad[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4b')]?_0x3627ad[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4b')]:'';})['join']('\x0a');_0x1c333f=_0x4d62e5[_0x3fb9('0x48')][_0x3fb9('0x49')](function(_0x4780b6){return _0x4780b6&&_0x4780b6[_0x3fb9('0x4a')][0x0]&&_0x4780b6[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4c')]?_0x4780b6[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4c')]:0x0;})[_0x3fb9('0x4d')]('\x0a');}logger[_0x3fb9('0x19')](_0x3fb9('0x4e'),_0x943502);logger[_0x3fb9('0x19')](_0x3fb9('0x4f'),_0x1c333f);return{'transcript':_0x943502,'confidence':_0x1c333f};})[_0x3fb9('0x50')](function(_0x2cbdbd){logger[_0x3fb9('0x1c')](_0x3fb9('0x51'),_0x2cbdbd[_0x3fb9('0x14')],_0x2cbdbd[_0x3fb9('0x52')],_0x2cbdbd[_0x3fb9('0x53')]);});};exports[_0x3fb9('0x54')]=function(_0x2530d4,_0x4307ef,_0x1db730,_0x2ea3fb){var _0x57695e=apiai(_0x4307ef,{'language':_0x2ea3fb||'en'});return _0x57695e[_0x3fb9('0x55')](_0x1db730,{'sessionId':md5(_0x2530d4)})[_0x3fb9('0x36')](function(_0x3b858a){logger[_0x3fb9('0x19')](JSON[_0x3fb9('0x40')](_0x3b858a));return{'source':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x57')],'resolvedQuery':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x58')],'action':_0x3b858a['result'][_0x3fb9('0x59')],'actionIncomplete':_0x3b858a['result'][_0x3fb9('0x5a')],'speech':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x5b')][_0x3fb9('0x5c')],'score':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x5d')],'statusCode':_0x3b858a['status'][_0x3fb9('0x5e')],'endConversation':_0x3b858a[_0x3fb9('0x56')]['metadata'][_0x3fb9('0x5f')]||![],'isFallbackIntent':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x60')][_0x3fb9('0x61')]};});};exports['googleDialogflowV2']=function(_0x39aedf,_0x711576,_0x4d2c7b,_0x4b489c,_0x4fae62,_0x1c43c9){var _0x30b108=_0x4b489c[_0x3fb9('0x62')](/\\n/g,'\x0a');var _0x52566e={'credentials':{'private_key':_0x30b108,'client_email':_0x4d2c7b}};var _0x3e6793=new dialogflow[(_0x3fb9('0x63'))](_0x52566e);var _0x375bb8=_0x3e6793[_0x3fb9('0x64')](_0x711576,md5(_0x39aedf));var _0x5ec887={'session':_0x375bb8,'queryInput':{'text':{'text':_0x4fae62,'languageCode':_0x1c43c9}}};return _0x3e6793[_0x3fb9('0x65')](_0x5ec887)[_0x3fb9('0x36')](function(_0x39f41c){if(_0x39f41c&&_0x39f41c[_0x3fb9('0x43')]){logger[_0x3fb9('0x19')](_0x3fb9('0x66'),JSON['stringify'](_0x39f41c));var _0x4cd82c=_0x39f41c[0x0];if(_0x4cd82c){var _0x5d4b3f={'action':_0x4cd82c['queryResult'][_0x3fb9('0x59')],'allRequiredParamsPresent':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x68')],'endConversation':_0x4cd82c[_0x3fb9('0x67')]['diagnosticInfo']&&_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x69')][_0x3fb9('0x6a')]?_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x69')][_0x3fb9('0x6a')][_0x3fb9('0x6b')][_0x3fb9('0x6c')]:![],'fulfillmentText':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6d')],'intentName':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6e')][_0x3fb9('0x52')],'intentDisplayName':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6e')]['displayName'],'isFallbackIntent':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6e')][_0x3fb9('0x6f')],'languageCode':_0x4cd82c[_0x3fb9('0x67')]['languageCode'],'queryText':_0x4cd82c['queryResult'][_0x3fb9('0x70')],'responseId':_0x4cd82c[_0x3fb9('0x71')],'score':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x72')],'speech':_0x4cd82c['queryResult'][_0x3fb9('0x6d')],'providerResponse':JSON['stringify'](_0x39f41c)};return _0x5d4b3f;}}});};exports[_0x3fb9('0x73')]=function(_0x50faa2,_0x45d0ef,_0x2eada2,_0x36e018){return tilde[_0x3fb9('0x47')](_0x50faa2,_0x45d0ef,_0x2eada2,_0x36e018)[_0x3fb9('0x36')](function(_0x9f1fbe){try{fs[_0x3fb9('0x3a')](_0x50faa2);}catch(_0x416183){logger[_0x3fb9('0x1c')](_0x416183);}logger['info'](_0x3fb9('0x74'),_0x9f1fbe[_0x3fb9('0x4b')]);logger[_0x3fb9('0x19')](_0x3fb9('0x75'),_0x9f1fbe[_0x3fb9('0x4c')]);return _0x9f1fbe;});};exports[_0x3fb9('0x76')]=function(_0x4e60e2,_0x2c1c6f,_0x460d9a,_0x487ce7,_0x259eee,_0x55b42c){var _0x106de=path['resolve'](__dirname,_0x3fb9('0x28'),rs['generate'](0x4)+_0x3fb9('0x37'));var _0x140cc6;return aws[_0x3fb9('0x77')](_0x4e60e2,_0x2c1c6f,_0x460d9a,_0x487ce7,_0x259eee,_0x55b42c,_0x106de)['then'](function(){_0x140cc6=path[_0x3fb9('0x27')](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x2a'));return convertFile(_0x106de,_0x140cc6);})[_0x3fb9('0x36')](function(){try{fs['unlink'](_0x106de);fs[_0x3fb9('0x2c')](_0x140cc6,'777');}catch(_0x106571){logger[_0x3fb9('0x1c')](_0x106571);}return _0x140cc6[_0x3fb9('0x2d')]('.')[0x0];});};exports['awsLex']=function(_0x54c2d2,_0x2a3081,_0x341a2a,_0xe573c2,_0x58a172,_0x1f9e92){return aws[_0x3fb9('0x78')](_0x54c2d2,_0x2a3081,_0x341a2a,_0xe573c2,_0x58a172,_0x1f9e92)[_0x3fb9('0x36')](function(_0x37d6ae){logger[_0x3fb9('0x19')](JSON[_0x3fb9('0x40')](_0x37d6ae));return _0x37d6ae;});};exports[_0x3fb9('0x79')]=function(_0x40170a,_0x13c425,_0x248721,_0x38f4a7){var _0x3b2d49=util[_0x3fb9('0x7a')](_0x3fb9('0x7b'),ISPEECH_API,_0x40170a,encodeURIComponent(_0x13c425),_0x248721,_0x38f4a7);var _0x1e9b30=path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs['generate'](0x4)+_0x3fb9('0x37'));var _0x248da6;return downloadFile(_0x3b2d49,_0x1e9b30)['then'](function(){_0x248da6=path['resolve'](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+'.wav');return convertFile(_0x1e9b30,_0x248da6);})['then'](function(){try{fs[_0x3fb9('0x3a')](_0x1e9b30);fs['chmodSync'](_0x248da6,'777');}catch(_0x14a72e){logger[_0x3fb9('0x1c')](_0x14a72e);}return _0x248da6[_0x3fb9('0x2d')]('.')[0x0];});};exports[_0x3fb9('0x7c')]=function(_0x58f181,_0x145221,_0x392e4e,_0x46a23a){var _0x2e4468=util[_0x3fb9('0x7a')]('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x145221,_0x392e4e,base64Encode(_0x58f181),_0x46a23a?util[_0x3fb9('0x7a')]('model=%s',encodeURIComponent(_0x46a23a)):'freeform=3');return uploadFile(_0x2e4468)[_0x3fb9('0x36')](function(_0x115a6c){return querystring[_0x3fb9('0xb')](_0x115a6c);});};exports[_0x3fb9('0x7d')]=function(_0x33c184,_0x20d09c){return sestek['nda'](_0x33c184,_0x20d09c)['then'](function(_0x235e64){logger[_0x3fb9('0x19')](JSON[_0x3fb9('0x40')](_0x235e64));var _0x52d2be={'speech':_0x235e64[_0x3fb9('0x7e')],'action':_0x235e64[_0x3fb9('0x7f')]?_0x235e64[_0x3fb9('0x7f')][_0x3fb9('0x80')]:undefined,'actiondata':_0x235e64[_0x3fb9('0x7f')]?_0x235e64[_0x3fb9('0x7f')]['CustomActionData']:undefined};if(_0x235e64[_0x3fb9('0x7f')]&&_0x235e64[_0x3fb9('0x7f')]['AudioFromTts']){return base64Decode(_0x235e64['channelData']['AudioFromTts']['Data'],path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x2a')))[_0x3fb9('0x36')](function(_0x38d827){_0x52d2be[_0x3fb9('0x81')]=_0x38d827;return _0x52d2be;});}return _0x52d2be;});};exports[_0x3fb9('0x82')]=function(){return __dirname;};
\ No newline at end of file
+var _0x905d=['isFallbackIntent','googleDialogflowV2','replace','sessionPath','Dialogflow\x20V2\x20response:','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','displayName','isFallback','languageCode','queryText','responseId','intentDetectionConfidence','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsLex','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','freeform=3','sestekNDA','text','channelData','CustomAction','AudioFromTts','audiofile','dirName','apiai-promise','bluebird','dialogflow','http','https','querystring','randomstring','sox','google-tts-api','url','parse','./google','./sestek','./tilde','agi','https://api.ispeech.org/api/rest','protocol','host','path','get','statusCode','error','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','info','finish\x20download\x20file','close','unlink','download\x20error','pipe','end','WHAT_EVER','request\x20to\x20','wav','error\x20convert','finish\x20to\x20convert','resolve','tmp','generate','.wav','writeFileSync','base64','777','split','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','ssml','input','voice','audioConfig','text:synthesize','POST','then','.mp3','from','chmodSync','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','jQ1olc','stringify','null','generic','slice','parse\x20response\x20failed:\x0a','length','text\x20length\x20limit\x20reached','data','goggleTTS\x20path','googleASR','asr','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','message','googleDialogflow','source','result','resolvedQuery','action','fulfillment','speech','score','status','code','metadata','endConversation'];(function(_0x29eb7e,_0x2694e8){var _0x4b5b8c=function(_0x22d998){while(--_0x22d998){_0x29eb7e['push'](_0x29eb7e['shift']());}};_0x4b5b8c(++_0x2694e8);}(_0x905d,0x1b0));var _0xd905=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x905d[_0x3dd15e];return _0x231fd0;};'use strict';var apiai=require(_0xd905('0x0'));var BPromise=require(_0xd905('0x1'));var dialogflow=require(_0xd905('0x2'));var fs=require('fs');var http=require(_0xd905('0x3'));var https=require(_0xd905('0x4'));var md5=require('md5');var path=require('path');var querystring=require(_0xd905('0x5'));var rp=require('request-promise');var rs=require(_0xd905('0x6'));var sox=require(_0xd905('0x7'));var tts=require(_0xd905('0x8'));var urlParse=require(_0xd905('0x9'))[_0xd905('0xa')];var util=require('util');var aws=require('./aws');var google=require(_0xd905('0xb'));var sestek=require(_0xd905('0xc'));var tilde=require(_0xd905('0xd'));var logger=require('../../../config/logger')(_0xd905('0xe'));var ISPEECH_API=_0xd905('0xf');function downloadFile(_0x1171d1,_0x365df8){return new BPromise(function(_0x113926,_0x4c75bb){var _0x4beca0=urlParse(_0x1171d1);var _0x7c6c32=_0x4beca0[_0xd905('0x10')]==='https:'?https:http;var _0x3c160f={'host':_0x4beca0[_0xd905('0x11')],'path':_0x4beca0[_0xd905('0x12')],'headers':{'user-agent':'WHAT_EVER'}};_0x7c6c32[_0xd905('0x13')](_0x3c160f,function(_0x422f0a){if(_0x422f0a[_0xd905('0x14')]!==0xc8){logger[_0xd905('0x15')]('request\x20to\x20'+_0x1171d1+_0xd905('0x16')+_0x422f0a[_0xd905('0x14')]+'\x20('+_0x422f0a['statusMessage']+')');_0x4c75bb(new Error('request\x20to\x20'+_0x1171d1+_0xd905('0x16')+_0x422f0a[_0xd905('0x14')]+'\x20('+_0x422f0a[_0xd905('0x17')]+')'));return;}var _0x2c9cf7=fs[_0xd905('0x18')](_0x365df8);_0x2c9cf7['on']('finish',function(){logger[_0xd905('0x19')](_0xd905('0x1a'));_0x2c9cf7[_0xd905('0x1b')](_0x113926);});_0x2c9cf7['on'](_0xd905('0x15'),function(_0x1720fb){fs[_0xd905('0x1c')](_0x365df8);logger[_0xd905('0x15')](_0xd905('0x1d'),_0x1720fb);_0x4c75bb(_0x1720fb);});_0x422f0a[_0xd905('0x1e')](_0x2c9cf7);})['on'](_0xd905('0x15'),function(_0x20cedd){logger[_0xd905('0x15')](_0x20cedd);_0x4c75bb(_0x20cedd);})[_0xd905('0x1f')]();});}function uploadFile(_0x261300){return new BPromise(function(_0x2bfc6f,_0x53ec0d){var _0x246e8c=urlParse(_0x261300);var _0x4eb846=_0x246e8c[_0xd905('0x10')]==='https:'?https:http;var _0x43d372={'host':_0x246e8c['host'],'path':_0x246e8c[_0xd905('0x12')],'headers':{'user-agent':_0xd905('0x20')}};_0x4eb846['get'](_0x43d372,function(_0x1fbd5a){if(_0x1fbd5a[_0xd905('0x14')]!==0xc8){_0x53ec0d(new Error(_0xd905('0x21')+_0x261300+_0xd905('0x16')+_0x1fbd5a[_0xd905('0x14')]+'\x20('+_0x1fbd5a[_0xd905('0x17')]+')'));return;}var _0x16253a='';_0x1fbd5a['on']('data',function(_0x1a30db){_0x16253a+=_0x1a30db;});_0x1fbd5a['on'](_0xd905('0x1f'),function(){_0x2bfc6f(_0x16253a);});})['on'](_0xd905('0x15'),function(_0x48f4e9){_0x53ec0d(_0x48f4e9);})[_0xd905('0x1f')]();});}function convertFile(_0x1721cd,_0x129b94){return new BPromise(function(_0xe9b864,_0x51a641){var _0x1fb7e1=sox['transcode'](_0x1721cd,_0x129b94,{'sampleRate':0x1f40,'format':_0xd905('0x22'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1fb7e1['on'](_0xd905('0x15'),function(_0x128a65){logger['error'](_0xd905('0x23'),_0x128a65);_0x51a641(_0x128a65);});_0x1fb7e1['on'](_0xd905('0x1f'),function(){logger['info'](_0xd905('0x24'));_0xe9b864();});_0x1fb7e1['start']();});}function base64Decode(_0x3c67a1,_0x4056c7){var _0xa302e8=path[_0xd905('0x25')](__dirname,_0xd905('0x26'),rs[_0xd905('0x27')](0x4)+_0xd905('0x28'));fs[_0xd905('0x29')](_0xa302e8,_0x3c67a1,_0xd905('0x2a'));return convertFile(_0xa302e8,_0x4056c7)['then'](function(){try{fs['unlink'](_0xa302e8);fs['chmodSync'](_0x4056c7,_0xd905('0x2b'));}catch(_0x19b828){logger[_0xd905('0x15')](_0x19b828);}return _0x4056c7[_0xd905('0x2c')]('.')[0x0];});}function base64Encode(_0x295a9b){var _0xe61a52=fs['readFileSync'](_0x295a9b);return new Buffer(_0xe61a52)[_0xd905('0x2d')](_0xd905('0x2a'));}exports[_0xd905('0x2e')]=function(_0x36f449,_0x3cbb87,_0x5792ca,_0xbd4ec9,_0x259b46,_0x4682a4){var _0x20145f,_0x452107;var _0x472832=_0xd905('0x2f');var _0x6cfdcb='?key='+_0x36f449;var _0x1cb010={};if(_0x3cbb87===_0xd905('0x30')){_0x1cb010[_0xd905('0x31')]={'ssml':_0x5792ca};}else{_0x1cb010[_0xd905('0x31')]={'text':_0x5792ca};};_0x1cb010[_0xd905('0x32')]={'languageCode':_0xbd4ec9,'ssmlGender':_0x259b46};_0x1cb010[_0xd905('0x33')]={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0xa0dc81={'url':_0x472832+_0xd905('0x34')+_0x6cfdcb,'method':_0xd905('0x35'),'json':!![],'body':_0x1cb010};return rp(_0xa0dc81)[_0xd905('0x36')](function(_0x5b3156){return new BPromise(function(_0x19603a,_0x13b2f6){_0x20145f=path[_0xd905('0x25')](__dirname,_0xd905('0x26'),rs[_0xd905('0x27')](0x4)+_0xd905('0x37'));var _0x26e3da=Buffer[_0xd905('0x38')](_0x5b3156['audioContent'],_0xd905('0x2a'));return fs['writeFile'](_0x20145f,_0x26e3da,function(_0x4854ee){_0x13b2f6(_0x4854ee);},function(_0x4f881a){fs[_0xd905('0x39')](_0x20145f,_0xd905('0x2b'));_0x19603a(_0x4f881a);});});})[_0xd905('0x36')](function(_0x584980){_0x452107=path[_0xd905('0x25')](__dirname,_0xd905('0x26'),rs[_0xd905('0x27')](0x4)+'.wav');return convertFile(_0x20145f,_0x452107);})['then'](function(){try{fs[_0xd905('0x1c')](_0x20145f);fs[_0xd905('0x39')](_0x452107,'777');}catch(_0x542709){logger[_0xd905('0x15')](_0x542709);}logger[_0xd905('0x19')]('googleCloudTTS\x20path',_0x452107[_0xd905('0x2c')]('.')[0x0]);return _0x452107[_0xd905('0x2c')]('.')[0x0];});};exports[_0xd905('0x3a')]=function(_0x1af782,_0x5ec7f2){var _0x3d7eae=_0xd905('0x3b');var _0x440eae,_0xb08814;var _0xfcc33;var _0x12bf58={'encoding':'utf8','method':_0xd905('0x35'),'timeout':0x2710,'url':_0x3d7eae,'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':'f.req='+encodeURIComponent(JSON['stringify']([[[_0xd905('0x3c'),JSON[_0xd905('0x3d')]([_0x1af782,_0x5ec7f2||'en',![],_0xd905('0x3e')]),null,_0xd905('0x3f')]]]))};return rp(_0x12bf58)['then'](function(_0x42ef75){try{_0xfcc33=eval(_0x42ef75[_0xd905('0x40')](0x5))[0x0][0x2];}catch(_0x3487f0){throw new Error(_0xd905('0x41')+_0x42ef75['data']);}if(!_0xfcc33){if(_0x1af782[_0xd905('0x42')]>0xc8){throw new Error(_0xd905('0x43'));}else{throw new Error('lang\x20\x22'+_0x5ec7f2+'\x22\x20might\x20not\x20exist');}}try{_0xfcc33=eval(_0xfcc33)[0x0];}catch(_0x2a180a){throw new Error(_0xd905('0x41')+res[_0xd905('0x44')]);}const _0x45f42e=_0xfcc33;_0x440eae=path[_0xd905('0x25')](__dirname,_0xd905('0x26'),rs[_0xd905('0x27')](0x4)+'.mp3');fs[_0xd905('0x29')](_0x440eae,_0xfcc33,{'encoding':'base64'});_0xb08814=path[_0xd905('0x25')](__dirname,_0xd905('0x26'),rs['generate'](0x4)+_0xd905('0x28'));return convertFile(_0x440eae,_0xb08814);})['then'](function(){try{fs['unlink'](_0x440eae);fs['chmodSync'](_0xb08814,'777');}catch(_0x2bd9f7){logger[_0xd905('0x15')](_0x2bd9f7);}logger['info'](_0xd905('0x45'),_0xb08814[_0xd905('0x2c')]('.')[0x0]);return _0xb08814[_0xd905('0x2c')]('.')[0x0];});};exports[_0xd905('0x46')]=function(_0x4cf293,_0x2d772c,_0x376e16){return google[_0xd905('0x47')](_0x4cf293,_0x2d772c,_0x376e16)['then'](function(_0x5dd8b3){logger[_0xd905('0x19')](_0x5dd8b3['uri']);return rp(_0x5dd8b3);})[_0xd905('0x36')](function(_0x59e6a5){var _0x3ffca0='';var _0x2f524e=0x0;try{fs[_0xd905('0x1c')](_0x4cf293);}catch(_0x39e222){logger[_0xd905('0x15')](_0x39e222);}if(_0x59e6a5&&_0x59e6a5[_0xd905('0x48')]){_0x3ffca0=_0x59e6a5[_0xd905('0x48')][_0xd905('0x49')](function(_0x2370ca){return _0x2370ca&&_0x2370ca[_0xd905('0x4a')][0x0]&&_0x2370ca[_0xd905('0x4a')][0x0]['transcript']?_0x2370ca[_0xd905('0x4a')][0x0][_0xd905('0x4b')]:'';})[_0xd905('0x4c')]('\x0a');_0x2f524e=_0x59e6a5[_0xd905('0x48')][_0xd905('0x49')](function(_0x404074){return _0x404074&&_0x404074['alternatives'][0x0]&&_0x404074['alternatives'][0x0]['confidence']?_0x404074[_0xd905('0x4a')][0x0][_0xd905('0x4d')]:0x0;})[_0xd905('0x4c')]('\x0a');}logger[_0xd905('0x19')](_0xd905('0x4e'),_0x3ffca0);logger[_0xd905('0x19')](_0xd905('0x4f'),_0x2f524e);return{'transcript':_0x3ffca0,'confidence':_0x2f524e};})[_0xd905('0x50')](function(_0x124793){logger['error'](_0xd905('0x51'),_0x124793[_0xd905('0x14')],_0x124793[_0xd905('0x52')],_0x124793[_0xd905('0x53')]);});};exports[_0xd905('0x54')]=function(_0x50ac38,_0x37c5fb,_0xf30d44,_0x46af81){var _0x3267c6=apiai(_0x37c5fb,{'language':_0x46af81||'en'});return _0x3267c6['textRequest'](_0xf30d44,{'sessionId':md5(_0x50ac38)})['then'](function(_0x38804d){logger[_0xd905('0x19')](JSON[_0xd905('0x3d')](_0x38804d));return{'source':_0x38804d['result'][_0xd905('0x55')],'resolvedQuery':_0x38804d[_0xd905('0x56')][_0xd905('0x57')],'action':_0x38804d[_0xd905('0x56')][_0xd905('0x58')],'actionIncomplete':_0x38804d[_0xd905('0x56')]['actionIncomplete'],'speech':_0x38804d[_0xd905('0x56')][_0xd905('0x59')][_0xd905('0x5a')],'score':_0x38804d[_0xd905('0x56')][_0xd905('0x5b')],'statusCode':_0x38804d[_0xd905('0x5c')][_0xd905('0x5d')],'endConversation':_0x38804d[_0xd905('0x56')][_0xd905('0x5e')][_0xd905('0x5f')]||![],'isFallbackIntent':_0x38804d[_0xd905('0x56')][_0xd905('0x5e')][_0xd905('0x60')]};});};exports[_0xd905('0x61')]=function(_0x38a2e0,_0x417e5f,_0x10cce4,_0x4e0e6f,_0x51a3b3,_0x55d976){var _0x3c3d8f=_0x4e0e6f[_0xd905('0x62')](/\\n/g,'\x0a');var _0x2df00d={'credentials':{'private_key':_0x3c3d8f,'client_email':_0x10cce4}};var _0x48b243=new dialogflow['SessionsClient'](_0x2df00d);var _0x279950=_0x48b243[_0xd905('0x63')](_0x417e5f,md5(_0x38a2e0));var _0x43419c={'session':_0x279950,'queryInput':{'text':{'text':_0x51a3b3,'languageCode':_0x55d976}}};return _0x48b243['detectIntent'](_0x43419c)[_0xd905('0x36')](function(_0x281a95){if(_0x281a95&&_0x281a95[_0xd905('0x42')]){logger[_0xd905('0x19')](_0xd905('0x64'),JSON[_0xd905('0x3d')](_0x281a95));var _0x52e75d=_0x281a95[0x0];if(_0x52e75d){var _0x4c12ed={'action':_0x52e75d[_0xd905('0x65')][_0xd905('0x58')],'allRequiredParamsPresent':_0x52e75d[_0xd905('0x65')][_0xd905('0x66')],'endConversation':_0x52e75d['queryResult'][_0xd905('0x67')]&&_0x52e75d[_0xd905('0x65')]['diagnosticInfo'][_0xd905('0x68')]?_0x52e75d[_0xd905('0x65')][_0xd905('0x67')][_0xd905('0x68')][_0xd905('0x69')][_0xd905('0x6a')]:![],'fulfillmentText':_0x52e75d[_0xd905('0x65')][_0xd905('0x6b')],'intentName':_0x52e75d[_0xd905('0x65')][_0xd905('0x6c')][_0xd905('0x52')],'intentDisplayName':_0x52e75d[_0xd905('0x65')]['intent'][_0xd905('0x6d')],'isFallbackIntent':_0x52e75d[_0xd905('0x65')][_0xd905('0x6c')][_0xd905('0x6e')],'languageCode':_0x52e75d[_0xd905('0x65')][_0xd905('0x6f')],'queryText':_0x52e75d[_0xd905('0x65')][_0xd905('0x70')],'responseId':_0x52e75d[_0xd905('0x71')],'score':_0x52e75d[_0xd905('0x65')][_0xd905('0x72')],'speech':_0x52e75d[_0xd905('0x65')][_0xd905('0x6b')],'providerResponse':JSON[_0xd905('0x3d')](_0x281a95)};return _0x4c12ed;}}});};exports[_0xd905('0x73')]=function(_0x489576,_0x44f2c5,_0x400904,_0x313d35){return tilde['asr'](_0x489576,_0x44f2c5,_0x400904,_0x313d35)[_0xd905('0x36')](function(_0x395ea6){try{fs[_0xd905('0x1c')](_0x489576);}catch(_0x44e798){logger['error'](_0x44e798);}logger[_0xd905('0x19')](_0xd905('0x74'),_0x395ea6[_0xd905('0x4b')]);logger['info'](_0xd905('0x75'),_0x395ea6[_0xd905('0x4d')]);return _0x395ea6;});};exports['awsPolly']=function(_0x52aeef,_0x35cc2f,_0x50ef65,_0x148bef,_0x22c747,_0x39b594){var _0x3d8714=path[_0xd905('0x25')](__dirname,'tmp',rs[_0xd905('0x27')](0x4)+'.mp3');var _0x16d984;return aws['polly'](_0x52aeef,_0x35cc2f,_0x50ef65,_0x148bef,_0x22c747,_0x39b594,_0x3d8714)[_0xd905('0x36')](function(){_0x16d984=path[_0xd905('0x25')](__dirname,_0xd905('0x26'),rs[_0xd905('0x27')](0x4)+_0xd905('0x28'));return convertFile(_0x3d8714,_0x16d984);})['then'](function(){try{fs['unlink'](_0x3d8714);fs['chmodSync'](_0x16d984,_0xd905('0x2b'));}catch(_0x2486ce){logger[_0xd905('0x15')](_0x2486ce);}return _0x16d984['split']('.')[0x0];});};exports[_0xd905('0x76')]=function(_0x48707a,_0x88eb52,_0xe3b3e9,_0x2b9850,_0x467090,_0x280af7){return aws[_0xd905('0x77')](_0x48707a,_0x88eb52,_0xe3b3e9,_0x2b9850,_0x467090,_0x280af7)[_0xd905('0x36')](function(_0x2a8114){logger['info'](JSON[_0xd905('0x3d')](_0x2a8114));return _0x2a8114;});};exports[_0xd905('0x78')]=function(_0x4c793b,_0xc644ae,_0x3a3830,_0x502f35){var _0x2f647d=util[_0xd905('0x79')](_0xd905('0x7a'),ISPEECH_API,_0x4c793b,encodeURIComponent(_0xc644ae),_0x3a3830,_0x502f35);var _0x12abf5=path['resolve'](__dirname,'tmp',rs[_0xd905('0x27')](0x4)+_0xd905('0x37'));var _0x42fea6;return downloadFile(_0x2f647d,_0x12abf5)['then'](function(){_0x42fea6=path[_0xd905('0x25')](__dirname,_0xd905('0x26'),rs['generate'](0x4)+_0xd905('0x28'));return convertFile(_0x12abf5,_0x42fea6);})[_0xd905('0x36')](function(){try{fs[_0xd905('0x1c')](_0x12abf5);fs[_0xd905('0x39')](_0x42fea6,_0xd905('0x2b'));}catch(_0x5e8fcf){logger[_0xd905('0x15')](_0x5e8fcf);}return _0x42fea6['split']('.')[0x0];});};exports[_0xd905('0x7b')]=function(_0x4eb90f,_0x5d0e08,_0x31651c,_0x8061ea){var _0x6bb844=util[_0xd905('0x79')]('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x5d0e08,_0x31651c,base64Encode(_0x4eb90f),_0x8061ea?util['format']('model=%s',encodeURIComponent(_0x8061ea)):_0xd905('0x7c'));return uploadFile(_0x6bb844)[_0xd905('0x36')](function(_0x544e75){return querystring['parse'](_0x544e75);});};exports[_0xd905('0x7d')]=function(_0x55bf4b,_0x15c71a){return sestek['nda'](_0x55bf4b,_0x15c71a)[_0xd905('0x36')](function(_0x19cb58){logger[_0xd905('0x19')](JSON[_0xd905('0x3d')](_0x19cb58));var _0x246d0d={'speech':_0x19cb58[_0xd905('0x7e')],'action':_0x19cb58[_0xd905('0x7f')]?_0x19cb58[_0xd905('0x7f')][_0xd905('0x80')]:undefined,'actiondata':_0x19cb58[_0xd905('0x7f')]?_0x19cb58[_0xd905('0x7f')]['CustomActionData']:undefined};if(_0x19cb58[_0xd905('0x7f')]&&_0x19cb58[_0xd905('0x7f')][_0xd905('0x81')]){return base64Decode(_0x19cb58[_0xd905('0x7f')][_0xd905('0x81')]['Data'],path[_0xd905('0x25')](__dirname,'tmp',rs[_0xd905('0x27')](0x4)+'.wav'))[_0xd905('0x36')](function(_0x1f533f){_0x246d0d[_0xd905('0x82')]=_0x1f533f;return _0x246d0d;});}return _0x246d0d;});};exports[_0xd905('0x83')]=function(){return __dirname;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6948=['./nda'];(function(_0x530e85,_0xb2b242){var _0x967369=function(_0x2a85e7){while(--_0x2a85e7){_0x530e85['push'](_0x530e85['shift']());}};_0x967369(++_0xb2b242);}(_0x6948,0x94));var _0x8694=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x6948[_0x397e5f];return _0x5302b8;};var nda=require(_0x8694('0x0'));module['exports']={'nda':nda};
\ No newline at end of file
+var _0x9dc7=['./nda'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x9dc7,0x10e));var _0x79dc=function(_0xf57664,_0x43dd89){_0xf57664=_0xf57664-0x0;var _0x4ada58=_0x9dc7[_0xf57664];return _0x4ada58;};var nda=require(_0x79dc('0x0'));module['exports']={'nda':nda};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24cf=['Bearer\x20','project','body','channelData','audio/wav','custom_action','CustomAction','custom_action_data','info','stringify','../../../../../config/logger','agi','exports','POST','resolve','ndauth_url','/token','then','ndassistant_url','ndaactivity_type','message','Nda','uniqueid','callerid','calleridname','extension','text'];(function(_0x5427a1,_0x17bf53){var _0x447c2f=function(_0x2872bb){while(--_0x2872bb){_0x5427a1['push'](_0x5427a1['shift']());}};_0x447c2f(++_0x17bf53);}(_0x24cf,0x1d5));var _0xf24c=function(_0x3799a0,_0x41c0a1){_0x3799a0=_0x3799a0-0x0;var _0x298169=_0x24cf[_0x3799a0];return _0x298169;};'use strict';var rp=require('request-promise');var url=require('url');var logger=require(_0xf24c('0x0'))(_0xf24c('0x1'));module[_0xf24c('0x2')]=function(_0x40675a,_0x45f945){var _0x4cc9b1={'method':_0xf24c('0x3'),'uri':url[_0xf24c('0x4')](_0x45f945[_0xf24c('0x5')],_0xf24c('0x6')),'form':{'grant_type':'password','username':_0x45f945['username'],'password':_0x45f945['password']},'json':!![]};return rp(_0x4cc9b1)[_0xf24c('0x7')](function(_0x596e81){var _0x3b7cf1={'method':_0xf24c('0x3'),'uri':url[_0xf24c('0x4')](_0x45f945[_0xf24c('0x8')],'/api/NaturalDialogAssistant/v1/Run'),'body':{'type':_0x45f945[_0xf24c('0x9')]||_0xf24c('0xa'),'channelId':_0xf24c('0xb'),'conversation':{'id':_0x40675a[_0xf24c('0xc')]},'from':{'id':_0x40675a[_0xf24c('0xd')],'name':_0x40675a[_0xf24c('0xe')]},'recipient':{'id':_0x40675a['dnid'],'name':_0x40675a[_0xf24c('0xf')]},'text':_0x45f945[_0xf24c('0x10')],'channelData':{}},'headers':{'Authorization':_0xf24c('0x11')+_0x596e81['access_token']},'json':!![]};if(_0x45f945[_0xf24c('0x12')]){_0x3b7cf1[_0xf24c('0x13')]['channelData']['ProjectName']=_0x45f945[_0xf24c('0x12')];}if(_0x45f945['ndagenerate_audio']=='1'){_0x3b7cf1[_0xf24c('0x13')][_0xf24c('0x14')]['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0xf24c('0x15')};}if(_0x45f945[_0xf24c('0x16')]){_0x3b7cf1[_0xf24c('0x13')][_0xf24c('0x14')][_0xf24c('0x17')]=_0x45f945['custom_action'];if(_0x45f945['custom_action_data']){_0x3b7cf1[_0xf24c('0x13')][_0xf24c('0x14')]['CustomActionData']=_0x45f945[_0xf24c('0x18')];}}logger[_0xf24c('0x19')](JSON[_0xf24c('0x1a')](_0x3b7cf1));return rp(_0x3b7cf1);});};
\ No newline at end of file
+var _0xc125=['dnid','extension','text','Bearer\x20','access_token','channelData','project','ndagenerate_audio','body','audio/wav','custom_action','CustomAction','CustomActionData','custom_action_data','info','stringify','url','agi','exports','POST','resolve','ndauth_url','/token','password','username','ndassistant_url','/api/NaturalDialogAssistant/v1/Run','ndaactivity_type','message','Nda','uniqueid','callerid'];(function(_0x1a9d2a,_0x15db4d){var _0x2bde55=function(_0x5509f9){while(--_0x5509f9){_0x1a9d2a['push'](_0x1a9d2a['shift']());}};_0x2bde55(++_0x15db4d);}(_0xc125,0x150));var _0x5c12=function(_0x376de4,_0x5660db){_0x376de4=_0x376de4-0x0;var _0x177bc5=_0xc125[_0x376de4];return _0x177bc5;};'use strict';var rp=require('request-promise');var url=require(_0x5c12('0x0'));var logger=require('../../../../../config/logger')(_0x5c12('0x1'));module[_0x5c12('0x2')]=function(_0x2b4f53,_0x2423dc){var _0x1c16af={'method':_0x5c12('0x3'),'uri':url[_0x5c12('0x4')](_0x2423dc[_0x5c12('0x5')],_0x5c12('0x6')),'form':{'grant_type':_0x5c12('0x7'),'username':_0x2423dc[_0x5c12('0x8')],'password':_0x2423dc[_0x5c12('0x7')]},'json':!![]};return rp(_0x1c16af)['then'](function(_0x1d0635){var _0x4465e3={'method':'POST','uri':url[_0x5c12('0x4')](_0x2423dc[_0x5c12('0x9')],_0x5c12('0xa')),'body':{'type':_0x2423dc[_0x5c12('0xb')]||_0x5c12('0xc'),'channelId':_0x5c12('0xd'),'conversation':{'id':_0x2b4f53[_0x5c12('0xe')]},'from':{'id':_0x2b4f53[_0x5c12('0xf')],'name':_0x2b4f53['calleridname']},'recipient':{'id':_0x2b4f53[_0x5c12('0x10')],'name':_0x2b4f53[_0x5c12('0x11')]},'text':_0x2423dc[_0x5c12('0x12')],'channelData':{}},'headers':{'Authorization':_0x5c12('0x13')+_0x1d0635[_0x5c12('0x14')]},'json':!![]};if(_0x2423dc['project']){_0x4465e3['body'][_0x5c12('0x15')]['ProjectName']=_0x2423dc[_0x5c12('0x16')];}if(_0x2423dc[_0x5c12('0x17')]=='1'){_0x4465e3[_0x5c12('0x18')]['channelData']['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0x5c12('0x19')};}if(_0x2423dc[_0x5c12('0x1a')]){_0x4465e3['body'][_0x5c12('0x15')][_0x5c12('0x1b')]=_0x2423dc[_0x5c12('0x1a')];if(_0x2423dc['custom_action_data']){_0x4465e3['body'][_0x5c12('0x15')][_0x5c12('0x1c')]=_0x2423dc[_0x5c12('0x1d')];}}logger[_0x5c12('0x1e')](JSON[_0x5c12('0x1f')](_0x4465e3));return rp(_0x4465e3);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7cf9=['./lib/api','exports'];(function(_0x3ec2c4,_0x35f175){var _0x44581b=function(_0x32d574){while(--_0x32d574){_0x3ec2c4['push'](_0x3ec2c4['shift']());}};_0x44581b(++_0x35f175);}(_0x7cf9,0x120));var _0x97cf=function(_0x5b69f3,_0x58b066){_0x5b69f3=_0x5b69f3-0x0;var _0x42c0e3=_0x7cf9[_0x5b69f3];return _0x42c0e3;};'use strict';var asr=require(_0x97cf('0x0'));module[_0x97cf('0x1')]=function(_0x35d393,_0x1d3e50,_0x4bb9bb,_0x58393c){return asr(_0x35d393,_0x1d3e50,_0x4bb9bb,_0x58393c);};
\ No newline at end of file
+var _0xbe0d=['./lib/api','exports'];(function(_0x481459,_0x54f988){var _0x1e0dc7=function(_0x15aae4){while(--_0x15aae4){_0x481459['push'](_0x481459['shift']());}};_0x1e0dc7(++_0x54f988);}(_0xbe0d,0x17e));var _0xdbe0=function(_0x1e3ed1,_0x54e8cb){_0x1e3ed1=_0x1e3ed1-0x0;var _0x3430f8=_0xbe0d[_0x1e3ed1];return _0x3430f8;};'use strict';var asr=require(_0xdbe0('0x0'));module[_0xdbe0('0x1')]=function(_0x10e92a,_0x503233,_0x3532c9,_0xe1ba5f){return asr(_0x10e92a,_0x503233,_0x3532c9,_0xe1ba5f);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x904a=['createHash','sha1','update','digest','hex','info','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','createReadStream','data','close','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','final','hypotheses','transcript','likelihood','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Close\x20Tilde\x20ASR\x20socket','isObject','open','message','bluebird','lodash','crypto','../../../../../../config/logger','agi','exports','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x904a,0x17e));var _0xa904=function(_0x188f32,_0x2d0c86){_0x188f32=_0x188f32-0x0;var _0x56c2f5=_0x904a[_0x188f32];return _0x56c2f5;};'use strict';var BPromise=require(_0xa904('0x0'));var _=require(_0xa904('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require('moment');var crypto=require(_0xa904('0x2'));var logger=require(_0xa904('0x3'))(_0xa904('0x4'));module[_0xa904('0x5')]=function(_0x2e4fd4,_0x3e48a2,_0x25d95b,_0x564490){return new BPromise(function(_0x158d45,_0x3c963c){logger['info'](_0xa904('0x6'),_0x564490||_0xa904('0x7'));var _0x4c5756=new WebSocket(_0x564490||_0xa904('0x7'),{'perMessageDeflate':![]});var _0x17fdfb='';var _0x14275b='0';var _0x8c866d='1';var _0x5793ad='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x387a72(_0x4bb857){var _0x15fe82=crypto[_0xa904('0x8')](_0xa904('0x9'));_0x15fe82[_0xa904('0xa')](_0x4bb857);return _0x15fe82[_0xa904('0xb')](_0xa904('0xc'));}function _0x215dcd(){try{logger[_0xa904('0xd')](_0xa904('0xe'));var _0x1678a5=moment()[_0xa904('0xf')]();var _0x4c9694=_0x387a72(_0x1678a5+_0x3e48a2+_0x25d95b);_0x4c5756[_0xa904('0x10')](JSON[_0xa904('0x11')]({'appID':_0x3e48a2,'timestamp':_0x1678a5,'appKey':_0x4c9694}));var _0x4a5d8d=fs[_0xa904('0x12')](_0x2e4fd4);_0x4a5d8d['on'](_0xa904('0x13'),function(_0x30d708){_0x4c5756[_0xa904('0x10')](_0x30d708);});_0x4a5d8d['on'](_0xa904('0x14'),function(){_0x4c5756[_0xa904('0x10')]('EOS');});}catch(_0x4c0281){logger[_0xa904('0x15')](_0xa904('0x16'),JSON[_0xa904('0x11')](_0x4c0281));_0x4c5756[_0xa904('0x17')]();}}function _0x7db6b1(_0x191098){try{if(_0x191098){var _0x16dab1=JSON[_0xa904('0x18')](_0x191098);switch(_0x16dab1[_0xa904('0x19')]){case 0x0:if(_0x16dab1[_0xa904('0x1a')]){if(_0x16dab1[_0xa904('0x1a')][_0xa904('0x1b')]){logger[_0xa904('0xd')]('Tilde\x20ASR\x20hypoteses',JSON[_0xa904('0x11')](_0x16dab1['result'][_0xa904('0x1c')]));_0x17fdfb=_0x16dab1['result'][_0xa904('0x1c')][0x0][_0xa904('0x1d')];_0x14275b=_0x16dab1[_0xa904('0x1a')][_0xa904('0x1c')][0x0][_0xa904('0x1e')];_0x8c866d='0';_0x5793ad='Success.';_0x4c5756[_0xa904('0x17')]();}}break;case 0x1:logger[_0xa904('0xd')]('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x8c866d='1';_0x5793ad=_0xa904('0x1f');break;case 0x2:logger[_0xa904('0xd')](_0xa904('0x20'));_0x8c866d='2';_0x5793ad='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger['info'](_0xa904('0x21'));_0x8c866d='9';_0x5793ad=_0xa904('0x21');break;case 0xa:logger['info']('Authentication\x20failed.');_0x8c866d='10';_0x5793ad='Authentication\x20failed.';break;case 0xb:logger[_0xa904('0xd')](_0xa904('0x22'));_0x8c866d='11';_0x5793ad=_0xa904('0x22');}}}catch(_0x1a1913){logger[_0xa904('0x15')]('Tilde\x20ASR\x20parse\x20error',JSON['stringify'](_0x1a1913));_0x4c5756['terminate']();}}function _0x512937(){logger[_0xa904('0xd')](_0xa904('0x23'));_0x158d45({'transcript':_0x17fdfb,'confidence':_0x14275b,'status':_0x8c866d,'status_message':_0x5793ad});}function _0x426306(_0x1b1e6d){logger[_0xa904('0x15')]('Error\x20Tilde\x20ASR\x20socket');if(!_['isNil'](_0x1b1e6d)){logger[_0xa904('0x15')](_[_0xa904('0x24')](_0x1b1e6d)?JSON[_0xa904('0x11')](_0x1b1e6d):_0x1b1e6d);}}_0x4c5756['on'](_0xa904('0x25'),_0x215dcd);_0x4c5756['on'](_0xa904('0x26'),_0x7db6b1);_0x4c5756['on']('close',_0x512937);_0x4c5756['on'](_0xa904('0x15'),_0x426306);});};
\ No newline at end of file
+var _0x9d16=['send','stringify','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','parse','result','final','hypotheses','transcript','likelihood','Success.','terminate','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','bluebird','lodash','moment','crypto','../../../../../../config/logger','agi','exports','info','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','sha1','update','hex','Open\x20Tilde\x20ASR\x20socket','unix'];(function(_0x23e6bb,_0x5c2d69){var _0x1e3b4c=function(_0x1afc46){while(--_0x1afc46){_0x23e6bb['push'](_0x23e6bb['shift']());}};_0x1e3b4c(++_0x5c2d69);}(_0x9d16,0x130));var _0x69d1=function(_0x4dcc2d,_0x422839){_0x4dcc2d=_0x4dcc2d-0x0;var _0x1bbd79=_0x9d16[_0x4dcc2d];return _0x1bbd79;};'use strict';var BPromise=require(_0x69d1('0x0'));var _=require(_0x69d1('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x69d1('0x2'));var crypto=require(_0x69d1('0x3'));var logger=require(_0x69d1('0x4'))(_0x69d1('0x5'));module[_0x69d1('0x6')]=function(_0x5dab4c,_0x3ff3f7,_0x55b731,_0x160f10){return new BPromise(function(_0x1f02e5,_0x4aa582){logger[_0x69d1('0x7')](_0x69d1('0x8'),_0x160f10||_0x69d1('0x9'));var _0x49e15d=new WebSocket(_0x160f10||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE',{'perMessageDeflate':![]});var _0x4ac159='';var _0x56b160='0';var _0x102d2b='1';var _0x399c1a=_0x69d1('0xa');function _0x57a01f(_0x58bf29){var _0x311f4b=crypto['createHash'](_0x69d1('0xb'));_0x311f4b[_0x69d1('0xc')](_0x58bf29);return _0x311f4b['digest'](_0x69d1('0xd'));}function _0x3016e2(){try{logger['info'](_0x69d1('0xe'));var _0x50d8d4=moment()[_0x69d1('0xf')]();var _0x26b8f3=_0x57a01f(_0x50d8d4+_0x3ff3f7+_0x55b731);_0x49e15d[_0x69d1('0x10')](JSON[_0x69d1('0x11')]({'appID':_0x3ff3f7,'timestamp':_0x50d8d4,'appKey':_0x26b8f3}));var _0x2d8d09=fs['createReadStream'](_0x5dab4c);_0x2d8d09['on'](_0x69d1('0x12'),function(_0x2a0b1a){_0x49e15d[_0x69d1('0x10')](_0x2a0b1a);});_0x2d8d09['on'](_0x69d1('0x13'),function(){_0x49e15d[_0x69d1('0x10')](_0x69d1('0x14'));});}catch(_0x2186e4){logger[_0x69d1('0x15')](_0x69d1('0x16'),JSON[_0x69d1('0x11')](_0x2186e4));_0x49e15d['terminate']();}}function _0x2656df(_0x16e036){try{if(_0x16e036){var _0x15d8c7=JSON[_0x69d1('0x17')](_0x16e036);switch(_0x15d8c7['status']){case 0x0:if(_0x15d8c7[_0x69d1('0x18')]){if(_0x15d8c7[_0x69d1('0x18')][_0x69d1('0x19')]){logger[_0x69d1('0x7')]('Tilde\x20ASR\x20hypoteses',JSON[_0x69d1('0x11')](_0x15d8c7['result'][_0x69d1('0x1a')]));_0x4ac159=_0x15d8c7[_0x69d1('0x18')]['hypotheses'][0x0][_0x69d1('0x1b')];_0x56b160=_0x15d8c7['result'][_0x69d1('0x1a')][0x0][_0x69d1('0x1c')];_0x102d2b='0';_0x399c1a=_0x69d1('0x1d');_0x49e15d[_0x69d1('0x1e')]();}}break;case 0x1:logger[_0x69d1('0x7')](_0x69d1('0xa'));_0x102d2b='1';_0x399c1a=_0x69d1('0xa');break;case 0x2:logger['info'](_0x69d1('0x1f'));_0x102d2b='2';_0x399c1a=_0x69d1('0x1f');break;case 0x9:logger[_0x69d1('0x7')]('Not\x20available.\x20Max\x20load\x20limit\x20reached.');_0x102d2b='9';_0x399c1a='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0x69d1('0x7')](_0x69d1('0x20'));_0x102d2b='10';_0x399c1a=_0x69d1('0x20');break;case 0xb:logger[_0x69d1('0x7')](_0x69d1('0x21'));_0x102d2b='11';_0x399c1a=_0x69d1('0x21');}}}catch(_0x49b411){logger[_0x69d1('0x15')](_0x69d1('0x22'),JSON[_0x69d1('0x11')](_0x49b411));_0x49e15d[_0x69d1('0x1e')]();}}function _0x45fcf0(){logger['info'](_0x69d1('0x23'));_0x1f02e5({'transcript':_0x4ac159,'confidence':_0x56b160,'status':_0x102d2b,'status_message':_0x399c1a});}function _0x74c50(_0xd365b3){logger['error'](_0x69d1('0x24'));if(!_[_0x69d1('0x25')](_0xd365b3)){logger[_0x69d1('0x15')](_[_0x69d1('0x26')](_0xd365b3)?JSON['stringify'](_0xd365b3):_0xd365b3);}}_0x49e15d['on'](_0x69d1('0x27'),_0x3016e2);_0x49e15d['on']('message',_0x2656df);_0x49e15d['on'](_0x69d1('0x13'),_0x45fcf0);_0x49e15d['on'](_0x69d1('0x15'),_0x74c50);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8642=['exports','./asr'];(function(_0x118d09,_0x306415){var _0x2eab57=function(_0x3faa5a){while(--_0x3faa5a){_0x118d09['push'](_0x118d09['shift']());}};_0x2eab57(++_0x306415);}(_0x8642,0xe9));var _0x2864=function(_0x4b7b69,_0x3ab075){_0x4b7b69=_0x4b7b69-0x0;var _0x173b4c=_0x8642[_0x4b7b69];return _0x173b4c;};var asr=require(_0x2864('0x0'));module[_0x2864('0x1')]={'asr':asr};
\ No newline at end of file
+var _0x2985=['exports','./asr'];(function(_0x203e1b,_0x307eec){var _0x4b9285=function(_0x3d0cdc){while(--_0x3d0cdc){_0x203e1b['push'](_0x203e1b['shift']());}};_0x4b9285(++_0x307eec);}(_0x2985,0x65));var _0x5298=function(_0x4c8feb,_0xe425fc){_0x4c8feb=_0x4c8feb-0x0;var _0x5efb17=_0x2985[_0x4c8feb];return _0x5efb17;};var asr=require(_0x5298('0x0'));module[_0x5298('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x743a=['./channel','127.0.0.1','emit','error','E_AGI_ARGUMENT_PORT','createServer','listen','listening','getConnections','E_AGI_SERVER_ERROR','destroy','E_AGI_SERVER_MAXCONNECTION','ready','close','E_AGI_SERVER_CLOSE','nextTick','inherits','exports','util','net','events','./error'];(function(_0x4244e0,_0x27e5a8){var _0x47c906=function(_0x334066){while(--_0x334066){_0x4244e0['push'](_0x4244e0['shift']());}};_0x47c906(++_0x27e5a8);}(_0x743a,0xac));var _0xa743=function(_0x41d768,_0x4b5677){_0x41d768=_0x41d768-0x0;var _0x1b16e6=_0x743a[_0x41d768];return _0x1b16e6;};'use strict';var util=require(_0xa743('0x0'));var net=require(_0xa743('0x1'));var EventEmitter=require(_0xa743('0x2'))['EventEmitter'];var AGIError=require(_0xa743('0x3'));var AGIChannel=require(_0xa743('0x4'));var AGIServer=function(_0x2d2f98,_0x54e179,_0x1dc63a){var _0x254bcb=this,_0x2d2f98=_0x2d2f98||0x11dd,_0x54e179=_0x54e179||_0xa743('0x5'),_0x5663c2=null,_0x30740c=0x0;EventEmitter['call'](_0x254bcb);function _0x5f124f(){if(!_0x2d2f98){_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0x8')));return![];}_0x5663c2=net[_0xa743('0x9')]();_0x5663c2[_0xa743('0xa')](_0x2d2f98,_0x54e179);_0x5663c2['on'](_0xa743('0xb'),function(){_0x254bcb[_0xa743('0x6')](_0xa743('0xb'));});_0x5663c2['on']('connection',function(_0x1edce4){_0x5663c2[_0xa743('0xc')](function(_0x457640,_0x4c99e3){if(_0x457640){_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0xd'),_0x457640));}else if(_0x1dc63a&&_0x1dc63a<0x0){_0x254bcb['emit'](_0xa743('0x7'),new AGIError('E_AGI_SERVER_VOICE_DISABLED'));_0x1edce4[_0xa743('0xe')]();}else if(_0x1dc63a&&_0x1dc63a>0x0&&_0x1dc63a<_0x4c99e3){_0x30740c+=0x1;_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0xf'),_0x30740c));_0x1edce4['destroy']();}else{var _0x5e29e0=new AGIChannel(_0x1edce4);_0x5e29e0['on'](_0xa743('0x10'),function(){_0x254bcb[_0xa743('0x6')]('connection',_0x5e29e0);});}});});_0x5663c2['on'](_0xa743('0x7'),function(_0x2483e6){_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0xd'),_0x2483e6['code']));});_0x5663c2['on'](_0xa743('0x11'),function(){_0x254bcb[_0xa743('0x6')](_0xa743('0x11'),new AGIError(_0xa743('0x12')));});}process[_0xa743('0x13')](function(){_0x5f124f();});};util[_0xa743('0x14')](AGIServer,EventEmitter);module[_0xa743('0x15')]=function(_0x557eae,_0x3026ae,_0x2cbc1d){return new AGIServer(_0x557eae,_0x3026ae,_0x2cbc1d);};
\ No newline at end of file
+var _0x531e=['emit','error','E_AGI_ARGUMENT_PORT','listen','connection','getConnections','E_AGI_SERVER_ERROR','E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_MAXCONNECTION','ready','code','close','nextTick','inherits','exports','util','net','EventEmitter','./channel','127.0.0.1'];(function(_0x53bcc3,_0x364374){var _0x47c959=function(_0x40ef7d){while(--_0x40ef7d){_0x53bcc3['push'](_0x53bcc3['shift']());}};_0x47c959(++_0x364374);}(_0x531e,0x1f3));var _0xe531=function(_0x254b22,_0x27159f){_0x254b22=_0x254b22-0x0;var _0x1279db=_0x531e[_0x254b22];return _0x1279db;};'use strict';var util=require(_0xe531('0x0'));var net=require(_0xe531('0x1'));var EventEmitter=require('events')[_0xe531('0x2')];var AGIError=require('./error');var AGIChannel=require(_0xe531('0x3'));var AGIServer=function(_0x278eac,_0x5391f6,_0x411a3b){var _0x418d3f=this,_0x278eac=_0x278eac||0x11dd,_0x5391f6=_0x5391f6||_0xe531('0x4'),_0x1007e2=null,_0x4df912=0x0;EventEmitter['call'](_0x418d3f);function _0x411128(){if(!_0x278eac){_0x418d3f[_0xe531('0x5')](_0xe531('0x6'),new AGIError(_0xe531('0x7')));return![];}_0x1007e2=net['createServer']();_0x1007e2[_0xe531('0x8')](_0x278eac,_0x5391f6);_0x1007e2['on']('listening',function(){_0x418d3f[_0xe531('0x5')]('listening');});_0x1007e2['on'](_0xe531('0x9'),function(_0x35fd42){_0x1007e2[_0xe531('0xa')](function(_0x3bfbeb,_0x33f82d){if(_0x3bfbeb){_0x418d3f[_0xe531('0x5')](_0xe531('0x6'),new AGIError(_0xe531('0xb'),_0x3bfbeb));}else if(_0x411a3b&&_0x411a3b<0x0){_0x418d3f[_0xe531('0x5')](_0xe531('0x6'),new AGIError(_0xe531('0xc')));_0x35fd42[_0xe531('0xd')]();}else if(_0x411a3b&&_0x411a3b>0x0&&_0x411a3b<_0x33f82d){_0x4df912+=0x1;_0x418d3f['emit']('error',new AGIError(_0xe531('0xe'),_0x4df912));_0x35fd42[_0xe531('0xd')]();}else{var _0x535ad6=new AGIChannel(_0x35fd42);_0x535ad6['on'](_0xe531('0xf'),function(){_0x418d3f[_0xe531('0x5')]('connection',_0x535ad6);});}});});_0x1007e2['on'](_0xe531('0x6'),function(_0x374591){_0x418d3f[_0xe531('0x5')](_0xe531('0x6'),new AGIError(_0xe531('0xb'),_0x374591[_0xe531('0x10')]));});_0x1007e2['on'](_0xe531('0x11'),function(){_0x418d3f['emit'](_0xe531('0x11'),new AGIError('E_AGI_SERVER_CLOSE'));});}process[_0xe531('0x12')](function(){_0x411128();});};util[_0xe531('0x13')](AGIServer,EventEmitter);module[_0xe531('0x14')]=function(_0x566d13,_0x5db695,_0x34c600){return new AGIServer(_0x566d13,_0x5db695,_0x34c600);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x762e=['SIP/%s','no\x20key\x20configured','createSquareMessage','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','speech','out','dialogflow','Dialogflow\x20is\x20unreachable','dialogflowV2','no\x20project_id\x20configured','no\x20client_email\x20configured','no\x20private_key\x20configured','bot','providerResponse','DialogflowV2\x20Result\x20%s','sesteknda','ndauth_url','no\x20ndauth\x20url\x20configured','username','no\x20username\x20configured','password','no\x20password\x20configured','Trying\x20SestekNDA:\x20%s','audiofile','Sestek\x20NDA\x20%s\x20file\x20created','streamFile','unlink','.wav','SestekNDA\x20Result\x20%s','SestekNDA\x20is\x20unreachable','end','Enter\x20in\x20END\x20(%s)\x20block','ext_dial','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','opts','Executed\x20command\x20%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','getData','response','test','mindigit','maxdigit','hiddendigitsnum','generate','hiddendigitspos','first','substr','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','Enter\x20in\x20GOAL\x20(%s)\x20block','goalname','no\x20valid\x20credentials\x20configured','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','aws\x20Polly\x20is\x20unreachable','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','aws_secret_access_key','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','AWS_LEX_%s','message','amazonlex','Amazon\x20Lex\x20is\x20unreachable','googleasr','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','wav','%s/recordings/%s','recordFile','intKey','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','appsecret','beep','NOBEEP','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','extension','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','EVAL\x20CONDITION\x20%s\x20%s','gotoiftime','interval_id','no\x20interval\x20configured','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','Enter\x20in\x20HANGUP\x20(%s)\x20block','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','IspeechASR\x20Result\x20%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Trying\x20ispeech\x20TTS\x20%s','ispeech\x20%s\x20file\x20created','login','findBy','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','agentLogin','AGENT\x20%s\x20FOUND\x20BY','success','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','logout','math','operation','no\x20operation\x20configured','%s[%s]','variable\x20%s[key]\x20set','no\x20file\x20audio\x20selected','no\x20file\x20audio\x20found','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','pause_id','playback','PLAYBACK','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','toLowerCase','QUEUE','macro','gosub','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s_%s','%s/recordings/%s.%s','createSquareRecording','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','restapi','Enter\x20in\x20RESTAPI\x20(%s)\x20block','no\x20url\x20configured','inspect','%s_STATUS_CODE','%s_STATUS_MESSAGE','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','sayDigits','digits','saynumber','sayNumber','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sendMail','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','email','user','bcc','subject','service','host','port','secure','authentication','auth','pass','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','SENDFAX\x20block\x20not\x20implemented','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','no\x20sms\x20account\x20configured','no\x20sms\x20account\x20found','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','createSmsMessage','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','Enter\x20in\x20SET\x20(%s)\x20block','no\x20variable\x20selected','variable_value','start','START\x20CALLY\x20SQUARE','Answer','Skipped\x20Answer','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','127.0.0.1','AGI','system','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','google_cloud_tts','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','no\x20apiKey\x20configured','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20%s\x20file\x20created','Google\x20Cloud\x20TTS\x20is\x20unreachable','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','VOICEMAIL','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','join','exports','path','shelljs','moment','mustache','request-promise','agi','../../config/environment','./scripts','rawHeaders','rawBody','menu','getdigits','getsecretdigits','channel','rpc','mailRpc','prototype','getVariable','getVariableById','then','name','getVoiceQueue','catch','getSquareProject','getSquareProjectById','getSquareOdbcById','getUser','getTrunkById','getSound','getSoundById','getSoundPath','save_name','getMailAccount','getMailAccountById','sendMailMessage','getIntervals','getIntervalById','interval','map','Intervals','format','getQueryOdbc','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','ODBC\x20connection\x20successfully','query','Error\x20executing\x20query\x20%s','Query\x20executed\x20correctly\x20%s','close','getSmsAccount','getSmsAccountById','createSquareDetailsReport','uniqueid','label','agicommand','arg_1','callerid','context','priority','accountcode','dnid','file','createCmContact','isEmpty','isNil','random','lastName','phone','list_id','scheduledAt','callback','Callback\x20scheduled\x20at\x20','toString','callback_priority','getPause','getPauseById','agent','agentPause','agentUnpause','agentLogout','%s/%s@from-sip/n','LOCAL','shellCommand','exec','trim','replace','googleCloudTTS','apiKey','google_cloud_tts_text_type','languageCode','en-US','ssmlGender','MALE','audioEncoding','MP3','googleTTS','text','restAPI','timeout','number','includes','POST','PUT','method','toUpperCase','body','An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','sync','uri','url','headers','parse','render','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusCode','statusMessage','options','googleDialogflow','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','client_email','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','speed','ispeechASR','ispeech_asr_language','isConfigured','model','awsPolly','aws_access_key_id','aws_polly_region','aws_polly_voice','Amy','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appid','hasOwnProperty','isString','replaceAllVariables','recursiveNodeIndex','isPlainObject','isArray','length','saveRestApiResult','%s.%s','setVariable','split','replaceAll','getAndSetVariable','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','extra','maxRetry','retry','mrcpsynth','Enter\x20in\x20MRCPSynth\x20(%s)\x20block','noop','result','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','Enter\x20in\x20MRCPRecog\x20(%s)\x20block','no\x20grammar\x20configured','RECOG_CONFIDENCE()','MRCP_RECOG_CONFIDENCE','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Enter\x20in\x20AGI\x20(%s)\x20block','command','args','Enter\x20in\x20ANSWER\x20(%s)\x20block','wait','answer','Enter\x20in\x20CALLBACK\x20(%s)\x20block','no\x20list\x20selected','delay','add','minutes','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','custom_app','application','Executed\x20command\x20%s\x20%s','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','no\x20text\x20configured','MRCPSynth','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','grammar','MRCPRecog','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_TRANSCRIPT','LUMENVOX_ASR_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','SESTEK_ASR_INSTANCE','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','getSquareOdbc','no\x20odbc\x20database\x20found','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','no\x20variable\x20found','forEach','keys','%s_ROWS_COUNT','variable\x20%s\x20set','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','DIAL'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x762e,0xea));var _0xe762=function(_0x5e098e,_0xdd1a7){_0x5e098e=_0x5e098e-0x0;var _0x28e6c0=_0x762e[_0x5e098e];return _0x28e6c0;};'use strict';var fs=require('fs');var path=require(_0xe762('0x0'));var util=require('util');var _=require('lodash');var sh=require(_0xe762('0x1'));var odbc=require('odbc')();var rs=require('randomstring');var moment=require(_0xe762('0x2'));var Mustache=require(_0xe762('0x3'));var rp=require(_0xe762('0x4'));var logger=require('../../config/logger')(_0xe762('0x5'));var config=require(_0xe762('0x6'));var scripts=require(_0xe762('0x7'));var FILES_PATH='/var/opt/motion2/server/files';var recursiveMapAttributes=[_0xe762('0x8'),_0xe762('0x9')];var verticesWithRetry=[_0xe762('0xa'),_0xe762('0xb'),_0xe762('0xc')];var AGIVertices=function(_0x38aac7,_0x567750,_0x50dd96){this[_0xe762('0xd')]=_0x38aac7;this[_0xe762('0xe')]=_0x567750;this[_0xe762('0xf')]=_0x50dd96;};AGIVertices[_0xe762('0x10')][_0xe762('0x11')]=function(_0x224a19,_0x4938e5){this[_0xe762('0xe')][_0xe762('0x12')](_0x224a19)[_0xe762('0x13')](function(_0x4a7d2f){_0x4938e5(null,_0x4a7d2f?_0x4a7d2f[_0xe762('0x14')]:![]);})['catch'](function(_0x3d3bd0){_0x4938e5(_0x3d3bd0);});};AGIVertices['prototype'][_0xe762('0x15')]=function(_0x25a6cf,_0x1ebf3d){this['rpc']['getVoiceQueueById'](_0x25a6cf)[_0xe762('0x13')](function(_0x417be3){_0x1ebf3d(null,_0x417be3?_0x417be3[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0x3e6c1d){_0x1ebf3d(_0x3e6c1d);});};AGIVertices[_0xe762('0x10')][_0xe762('0x17')]=function(_0x22e481,_0x531587){this[_0xe762('0xe')][_0xe762('0x18')](_0x22e481)[_0xe762('0x13')](function(_0x27c2cf){_0x531587(null,_0x27c2cf?_0x27c2cf['name']:![]);})[_0xe762('0x16')](function(_0x157de2){_0x531587(_0x157de2);});};AGIVertices['prototype']['getSquareOdbc']=function(_0x52e1de,_0x2cea00){this['rpc'][_0xe762('0x19')](_0x52e1de)['then'](function(_0x8775aa){_0x2cea00(null,_0x8775aa?_0x8775aa['dsn']:![]);})[_0xe762('0x16')](function(_0x190aa3){_0x2cea00(_0x190aa3);});};AGIVertices[_0xe762('0x10')][_0xe762('0x1a')]=function(_0x3e2d00,_0x5c096c){this['rpc']['getUserById'](_0x3e2d00)['then'](function(_0x413584){_0x5c096c(null,_0x413584?_0x413584[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0x604304){_0x5c096c(_0x604304);});};AGIVertices[_0xe762('0x10')]['getTrunk']=function(_0x1e316c,_0x2c9e1b){this[_0xe762('0xe')][_0xe762('0x1b')](_0x1e316c)[_0xe762('0x13')](function(_0x2d4598){_0x2c9e1b(null,_0x2d4598?_0x2d4598[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0xc05eb8){_0x2c9e1b(_0xc05eb8);});};AGIVertices[_0xe762('0x10')][_0xe762('0x1c')]=function(_0x505fb9,_0x5bfe46){var _0x1a6cc2=this;this['rpc'][_0xe762('0x1d')](_0x505fb9)[_0xe762('0x13')](function(_0x5b09d0){_0x5bfe46(null,_0x5b09d0?_0x1a6cc2[_0xe762('0x1e')](_0x5b09d0[_0xe762('0x1f')]):![]);})[_0xe762('0x16')](function(_0x4112ba){_0x5bfe46(_0x4112ba);});};AGIVertices[_0xe762('0x10')][_0xe762('0x20')]=function(_0x2dde24,_0x3c8dcd){this[_0xe762('0xe')][_0xe762('0x21')](_0x2dde24)['then'](function(_0x3bf093){_0x3c8dcd(null,_0x3bf093?_0x3bf093:![]);})[_0xe762('0x16')](function(_0x2141d1){_0x3c8dcd(_0x2141d1);});};AGIVertices[_0xe762('0x10')][_0xe762('0x22')]=function(_0xaed00e,_0x114656,_0x26edb0){this['mailRpc']['sendMailMessage'](_0xaed00e,_0x114656)[_0xe762('0x13')](function(){_0x26edb0(null);})[_0xe762('0x16')](function(_0x105941){_0x26edb0(_0x105941);});};AGIVertices[_0xe762('0x10')][_0xe762('0x23')]=function(_0x20608b,_0x303596){this['rpc'][_0xe762('0x24')](_0x20608b)[_0xe762('0x13')](function(_0xc4f64e){if(_0xc4f64e){if(_0xc4f64e['IntervalId']){_0x303596(null,[_0xc4f64e[_0xe762('0x25')]]);}else{_0x303596(null,_[_0xe762('0x26')](_0xc4f64e[_0xe762('0x27')],_0xe762('0x25')));}}else{_0x303596(null,![]);}})[_0xe762('0x16')](function(_0x376896){_0x303596(_0x376896);});};AGIVertices[_0xe762('0x10')][_0xe762('0x1e')]=function(_0x37cc8b){return util[_0xe762('0x28')]('%s/sounds/converted/%s',FILES_PATH,_0x37cc8b);};AGIVertices[_0xe762('0x10')][_0xe762('0x29')]=function(_0x18b23a,_0xcdb005,_0xca71c6){odbc[_0xe762('0x2a')](_0x18b23a,function(_0x1a259f){if(_0x1a259f){logger[_0xe762('0x2b')](_0xe762('0x2c'),_0x1a259f);_0xca71c6(_0x1a259f);}else{logger[_0xe762('0x2d')](_0xe762('0x2e'));odbc[_0xe762('0x2f')](_0xcdb005,function(_0xa7cb9c,_0x2ee29c){if(_0xa7cb9c){logger[_0xe762('0x2d')](_0xe762('0x30'),_0xcdb005);_0xca71c6(_0xa7cb9c);}else{logger[_0xe762('0x2d')](_0xe762('0x31'),_0xcdb005);odbc[_0xe762('0x32')](function(_0x383c8b){if(_0x383c8b){logger[_0xe762('0x2b')]('Error\x20closing\x20connection\x20to\x20odbc\x20%s',_0x383c8b);}_0xca71c6(null,_0x2ee29c);});}});}});};AGIVertices['prototype'][_0xe762('0x33')]=function(_0xfafbf3,_0x20bd0d){this[_0xe762('0xe')][_0xe762('0x34')](_0xfafbf3)[_0xe762('0x13')](function(_0x3c7755){_0x20bd0d(null,_0x3c7755?_0x3c7755:![]);})[_0xe762('0x16')](function(_0x394f46){_0x20bd0d(_0x394f46);});};AGIVertices[_0xe762('0x10')]['createSmsMessage']=function(_0x593823,_0x3c2049){this[_0xe762('0xe')]['createSmsMessage'](_0x593823)[_0xe762('0x13')](function(_0x130c9b){_0x3c2049(null,_0x130c9b);})[_0xe762('0x16')](function(_0x3bc307){_0x3c2049(_0x3bc307);});};AGIVertices['prototype']['createSquareDetailsReport']=function(_0x2e8301,_0x450d53,_0x4e957a){this[_0xe762('0xe')][_0xe762('0x35')]({'uniqueid':this[_0xe762('0xd')][_0xe762('0x36')],'node':_0x2e8301[_0xe762('0x37')],'application':_0x2e8301[_0xe762('0x38')],'data':_0x450d53||null,'project_name':this[_0xe762('0xd')][_0xe762('0x39')],'callerid':this[_0xe762('0xd')][_0xe762('0x3a')]})[_0xe762('0x13')](function(_0xcaf61f){if(_0x4e957a){_0x4e957a(null,_0xcaf61f);}})[_0xe762('0x16')](function(_0x4f8ebb){if(_0x4e957a){_0x4e957a(_0x4f8ebb);}});};AGIVertices['prototype']['createSquareRecording']=function(_0x42cb4e,_0x2f3b03,_0x330130,_0x21c16d){this[_0xe762('0xe')]['createSquareRecording']({'uniqueid':this['channel'][_0xe762('0x36')],'callerid':this[_0xe762('0xd')]['callerid'],'calleridname':this[_0xe762('0xd')]['calleridname'],'context':this['channel'][_0xe762('0x3b')],'extension':this[_0xe762('0xd')]['extension'],'priority':this[_0xe762('0xd')][_0xe762('0x3c')],'accountcode':this[_0xe762('0xd')][_0xe762('0x3d')],'dnid':this['channel'][_0xe762('0x3e')],'projectName':this[_0xe762('0xd')]['arg_1'],'saveName':_0x2f3b03,'filename':_0x42cb4e[_0xe762('0x3f')]||_0x2f3b03,'savePath':_0x330130})[_0xe762('0x13')](function(_0x101db6){_0x21c16d(null,_0x101db6);})[_0xe762('0x16')](function(_0x16f398){_0x21c16d(_0x16f398);});};AGIVertices[_0xe762('0x10')]['createSquareMessage']=function(_0x41e34f,_0x30409d,_0x100429,_0xac05b4,_0x4cb322){this[_0xe762('0xe')]['createSquareMessage']({'uniqueid':this[_0xe762('0xd')][_0xe762('0x36')],'body':_0x41e34f,'direction':_0x30409d,'providerName':_0x100429,'providerResponse':_0xac05b4})[_0xe762('0x13')](function(_0x39c92d){if(_0x4cb322){_0x4cb322(null,_0x39c92d);}})[_0xe762('0x16')](function(_0x2a55ac){if(_0x4cb322){_0x4cb322(_0x2a55ac);}});};AGIVertices[_0xe762('0x10')][_0xe762('0x40')]=function(_0x459a0b,_0x43982b){this[_0xe762('0xe')]['createCmContact']({'firstName':_[_0xe762('0x41')](_0x459a0b[_0xe762('0x14')])||_[_0xe762('0x42')](_0x459a0b[_0xe762('0x14')])?'callback_'+Math[_0xe762('0x43')]():_0x459a0b[_0xe762('0x14')],'lastName':_[_0xe762('0x41')](_0x459a0b[_0xe762('0x44')])||_[_0xe762('0x42')](_0x459a0b[_0xe762('0x44')])?null:_0x459a0b[_0xe762('0x44')],'phone':_0x459a0b[_0xe762('0x45')],'ListId':_0x459a0b[_0xe762('0x46')],'scheduledat':_0x459a0b[_0xe762('0x47')],'callbackUniqueid':this['channel'][_0xe762('0x36')],'tags':_0xe762('0x48'),'description':_0xe762('0x49')+_0x459a0b[_0xe762('0x47')][_0xe762('0x4a')](),'priority':_0x459a0b[_0xe762('0x4b')]})[_0xe762('0x13')](function(_0x2b9ab8){_0x43982b(null,_0x2b9ab8);})['catch'](function(_0x5e6e00){_0x43982b(_0x5e6e00);});};AGIVertices[_0xe762('0x10')][_0xe762('0x4c')]=function(_0x5da9d6,_0x4325ac){this['rpc'][_0xe762('0x4d')](_0x5da9d6)[_0xe762('0x13')](function(_0x13513e){_0x4325ac(null,_0x13513e?_0x13513e[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0x6b499){_0x4325ac(_0x6b499);});};AGIVertices[_0xe762('0x10')]['agentPause']=function(_0x5b4bf7,_0x1a185b,_0x4b4d54){var _0x1bd192={'role':_0xe762('0x4e')};_0x1bd192[_0x5b4bf7]=this['channel'][_0xe762('0x3a')];this[_0xe762('0xe')][_0xe762('0x4f')](_0x1bd192,_0x1a185b,this[_0xe762('0xd')][_0xe762('0x36')])[_0xe762('0x13')](function(_0x509bf2){_0x4b4d54(null,_[_0xe762('0x42')](_0x509bf2)?![]:!![]);})[_0xe762('0x16')](function(_0x529847){logger[_0xe762('0x2b')](_0x529847);_0x4b4d54(null,![]);});};AGIVertices[_0xe762('0x10')][_0xe762('0x50')]=function(_0x5a072f,_0x4980fa){var _0x25a891={'role':'agent'};_0x25a891[_0x5a072f]=this[_0xe762('0xd')][_0xe762('0x3a')];this[_0xe762('0xe')]['agentUnpause'](_0x25a891)[_0xe762('0x13')](function(_0x4d1fd3){_0x4980fa(null,_['isNil'](_0x4d1fd3)?![]:!![]);})[_0xe762('0x16')](function(_0xe03cdb){logger['error'](_0xe03cdb);_0x4980fa(null,![]);});};AGIVertices[_0xe762('0x10')][_0xe762('0x51')]=function(_0x5528ea,_0x5f1fb6){var _0x4b6cc0={'role':'agent'};_0x4b6cc0[_0x5528ea]=this[_0xe762('0xd')]['callerid'];this[_0xe762('0xe')][_0xe762('0x51')](_0x4b6cc0)[_0xe762('0x13')](function(_0x1d4a34){_0x5f1fb6(null,_[_0xe762('0x42')](_0x1d4a34)?![]:!![]);})[_0xe762('0x16')](function(_0x1bbe99){logger[_0xe762('0x2b')](_0x1bbe99);_0x5f1fb6(null,![]);});};AGIVertices[_0xe762('0x10')]['agentLogin']=function(_0x127c66,_0x506fb8){var _0x30e8af={'role':_0xe762('0x4e')};_0x30e8af[_0x127c66]=this[_0xe762('0xd')][_0xe762('0x3a')];var _0x299ae5=_0x127c66!='internal'?util[_0xe762('0x28')](_0xe762('0x52'),_0xe762('0x53'),this['channel'][_0xe762('0x3a')]):undefined;this[_0xe762('0xe')]['agentLogin'](_0x30e8af,_0x299ae5)[_0xe762('0x13')](function(_0x376d59){_0x506fb8(null,_['isNil'](_0x376d59)?![]:!![]);})['catch'](function(_0x4da689){logger[_0xe762('0x2b')](_0x4da689);_0x506fb8(null,![]);});};AGIVertices['prototype'][_0xe762('0x54')]=function(_0x29038b,_0x1d424a){sh[_0xe762('0x55')](_[_0xe762('0x56')](_0x29038b),function(_0x3fb389,_0x730b1d){var _0x226180=_0x730b1d[_0xe762('0x57')](/(\r\n|\n|\r)/gm,'');_0x1d424a(null,_0x226180);});};AGIVertices[_0xe762('0x10')][_0xe762('0x58')]=function(_0x5597d7,_0x25d58c){scripts[_0xe762('0x58')](_0x5597d7[_0xe762('0x59')],_0x5597d7[_0xe762('0x5a')]||'text',_0x5597d7['text'],_0x5597d7[_0xe762('0x5b')]||_0xe762('0x5c'),_0x5597d7[_0xe762('0x5d')]||_0xe762('0x5e'),_0x5597d7[_0xe762('0x5f')]||_0xe762('0x60'))[_0xe762('0x13')](function(_0x34fbf2){_0x25d58c(null,_0x34fbf2);})[_0xe762('0x16')](function(_0x51ae0e){_0x25d58c(_0x51ae0e);});};AGIVertices[_0xe762('0x10')]['googleTTS']=function(_0x363d6,_0x5111fb){scripts[_0xe762('0x61')](_0x363d6[_0xe762('0x62')],_0x363d6['google_tts_language']||'en',0x1)[_0xe762('0x13')](function(_0x24f084){_0x5111fb(null,_0x24f084);})[_0xe762('0x16')](function(_0xc416d8){_0x5111fb(_0xc416d8);});};AGIVertices[_0xe762('0x10')][_0xe762('0x63')]=function(_0x1e5119,_0x3628f3){var _0x173da0={'uri':_0x1e5119['url'],'method':_0x1e5119['method'],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x1e5119[_0xe762('0x64')])===_0xe762('0x65')&&parseInt(_0x1e5119[_0xe762('0x64')])>=0x1?parseInt(_0x1e5119[_0xe762('0x64')])*0x3e8:0x5*0x3e8};if(_[_0xe762('0x66')]([_0xe762('0x67'),_0xe762('0x68')],_0x173da0[_0xe762('0x69')][_0xe762('0x6a')]())){try{_0x173da0[_0xe762('0x6b')]=_0x1e5119['rawBody']?JSON['parse'](_0x1e5119[_0xe762('0x9')]):{};}catch(_0x2827f8){logger[_0xe762('0x2b')](_0xe762('0x6c'),_0x2827f8);}}try{_0x173da0['headers']=_0x1e5119[_0xe762('0x8')]?JSON['parse'](_0x1e5119[_0xe762('0x8')]):{};}catch(_0x357088){logger[_0xe762('0x2b')](_0xe762('0x6d'),_0x357088);}if(_0x1e5119['computedVariables']){try{var _0x2781ac=require(_0x1e5119[_0xe762('0x6e')])[_0xe762('0x6f')](this,_0x173da0);_0x173da0[_0xe762('0x70')]=Mustache['render'](_0x1e5119[_0xe762('0x71')],_0x2781ac,{},['$$','$$']);if(_0x173da0[_0xe762('0x72')]){_0x173da0['headers']=JSON[_0xe762('0x73')](Mustache[_0xe762('0x74')](JSON[_0xe762('0x75')](_0x173da0[_0xe762('0x72')]),_0x2781ac,{},['$$','$$']));}if(_0x173da0[_0xe762('0x6b')]){_0x173da0[_0xe762('0x6b')]=JSON[_0xe762('0x73')](Mustache[_0xe762('0x74')](JSON[_0xe762('0x75')](_0x173da0[_0xe762('0x6b')]),_0x2781ac,{},['$$','$$']));}}catch(_0x10df26){logger[_0xe762('0x2b')](_0xe762('0x76'),_0x10df26);}}rp(_0x173da0)['then'](function(_0x3989e2){var _0x13bc06={'statusCode':_0x3989e2[_0xe762('0x77')]||0xc8,'statusMessage':_0x3989e2[_0xe762('0x78')]||'OK','headers':_0x3989e2[_0xe762('0x72')]||{},'body':_0x3989e2['body']||{}};_0x3628f3(null,_0x13bc06);})['catch'](function(_0x34efff){var _0x23f59b={'statusCode':_0x34efff['statusCode']||0x1f4,'statusMessage':_0x34efff['message']||'500\x20-\x20Internal\x20Server\x20Error','headers':_0x34efff['options'][_0xe762('0x72')]||{},'body':_0x34efff[_0xe762('0x79')]['body']||{}};_0x3628f3(null,_0x23f59b);});};AGIVertices[_0xe762('0x10')][_0xe762('0x7a')]=function(_0x15786f,_0x1f5848){scripts[_0xe762('0x7a')](this[_0xe762('0xd')][_0xe762('0x36')],_0x15786f[_0xe762('0x7b')],_0x15786f[_0xe762('0x62')],_0x15786f[_0xe762('0x7c')]||'en')[_0xe762('0x13')](function(_0x59b33d){_0x1f5848(null,_0x59b33d);})['catch'](function(_0x3f0411){_0x1f5848(_0x3f0411);});};AGIVertices[_0xe762('0x10')][_0xe762('0x7d')]=function(_0x2cf5e1,_0x782396){scripts['googleDialogflowV2'](this[_0xe762('0xd')][_0xe762('0x36')],_0x2cf5e1[_0xe762('0x7e')],_0x2cf5e1[_0xe762('0x7f')],_0x2cf5e1[_0xe762('0x80')],_0x2cf5e1[_0xe762('0x62')],_0x2cf5e1[_0xe762('0x81')]||'en')[_0xe762('0x13')](function(_0x68b090){_0x782396(null,_0x68b090);})['catch'](function(_0x7ae604){_0x782396(_0x7ae604);});};AGIVertices[_0xe762('0x10')][_0xe762('0x82')]=function(_0x139657,_0x375518){scripts['sestekNDA'](this[_0xe762('0xd')],_0x139657)['then'](function(_0x1510d5){_0x375518(null,_0x1510d5);})[_0xe762('0x16')](function(_0x3989aa){_0x375518(_0x3989aa);});};AGIVertices[_0xe762('0x10')][_0xe762('0x83')]=function(_0x521dc1,_0x4b8f83){scripts[_0xe762('0x83')](_0x521dc1['key'],_0x521dc1[_0xe762('0x62')],_0x521dc1[_0xe762('0x84')]||_0xe762('0x5c'),_0x521dc1[_0xe762('0x85')])[_0xe762('0x13')](function(_0x1998e0){_0x4b8f83(null,_0x1998e0);})[_0xe762('0x16')](function(_0x11f001){_0x4b8f83(_0x11f001);});};AGIVertices[_0xe762('0x10')][_0xe762('0x86')]=function(_0x4a4527,_0x404bbd,_0x5ecc86){scripts[_0xe762('0x86')](_0x404bbd,_0x4a4527[_0xe762('0x7b')],_0x4a4527[_0xe762('0x87')]||_0xe762('0x5c'),this[_0xe762('0x88')](_0x4a4527['model'])?_0x4a4527[_0xe762('0x89')]:undefined)[_0xe762('0x13')](function(_0x58ac7e){_0x5ecc86(null,_0x58ac7e);})['catch'](function(_0x333f16){_0x5ecc86(_0x333f16);});};AGIVertices[_0xe762('0x10')][_0xe762('0x8a')]=function(_0x3e4ff6,_0x562449){scripts['awsPolly'](_0x3e4ff6[_0xe762('0x8b')],_0x3e4ff6['aws_secret_access_key'],_0x3e4ff6[_0xe762('0x8c')],_0x3e4ff6[_0xe762('0x8d')]||_0xe762('0x8e'),_0x3e4ff6[_0xe762('0x62')],_0x3e4ff6['aws_text_type']||'text')[_0xe762('0x13')](function(_0x9dd5ca){_0x562449(null,_0x9dd5ca);})[_0xe762('0x16')](function(_0x495a6f){_0x562449(_0x495a6f);});};AGIVertices[_0xe762('0x10')][_0xe762('0x8f')]=function(_0x133634,_0x5f2d97){scripts[_0xe762('0x8f')](this[_0xe762('0xd')]['uniqueid'],_0x133634[_0xe762('0x8b')],_0x133634['aws_secret_access_key'],_0x133634[_0xe762('0x90')],_0x133634[_0xe762('0x62')],_0x133634[_0xe762('0x91')])['then'](function(_0x28f1c3){_0x5f2d97(null,_0x28f1c3);})[_0xe762('0x16')](function(_0x39cddc){_0x5f2d97(_0x39cddc);});};AGIVertices['prototype']['googleASR']=function(_0x1e023e,_0x596273,_0x12fd32){scripts[_0xe762('0x92')](_0x596273,_0x1e023e[_0xe762('0x7b')],_0x1e023e[_0xe762('0x93')]||'en-US')['then'](function(_0x5789b9){_0x12fd32(null,_0x5789b9);})['catch'](function(_0x313df6){_0x12fd32(_0x313df6);});};AGIVertices[_0xe762('0x10')][_0xe762('0x94')]=function(_0x419ed0,_0x51a520,_0x2080e8){scripts[_0xe762('0x94')](_0x51a520,_0x419ed0[_0xe762('0x95')],_0x419ed0['appsecret'],_0x419ed0[_0xe762('0x70')])['then'](function(_0x1c70a7){_0x2080e8(null,_0x1c70a7);})['catch'](function(_0x185da4){_0x2080e8(_0x185da4);});};AGIVertices['prototype']['clear']=function(_0x47a8df){var _0x3c03bd=_[_0xe762('0x66')](verticesWithRetry,_0x47a8df['agicommand'])?_0x47a8df:_['clone'](_0x47a8df);for(var _0x27d71b in _0x3c03bd){if(_0x3c03bd[_0xe762('0x96')](_0x27d71b)){if(_0x3c03bd[_0x27d71b]&&_[_0xe762('0x97')](_0x3c03bd[_0x27d71b])){if(_[_0xe762('0x66')](recursiveMapAttributes,_0x27d71b)){_0x3c03bd[_0x27d71b]=this['replaceObjectAllVariables'](_0x3c03bd[_0x27d71b]);}else{_0x3c03bd[_0x27d71b]=this[_0xe762('0x98')](_0x3c03bd[_0x27d71b]);}}}}return _0x3c03bd;};AGIVertices['prototype'][_0xe762('0x99')]=function(_0x1e406d){for(var _0x1ae90a in _0x1e406d){if(_0x1e406d['hasOwnProperty'](_0x1ae90a)){if(_[_0xe762('0x9a')](_0x1e406d[_0x1ae90a])){this[_0xe762('0x99')](_0x1e406d[_0x1ae90a]);}else if(_[_0xe762('0x9b')](_0x1e406d[_0x1ae90a])){for(var _0x1585f1=0x0;_0x1585f1<_0x1e406d[_0x1ae90a][_0xe762('0x9c')];_0x1585f1++){this[_0xe762('0x99')](_0x1e406d[_0x1ae90a][_0x1585f1]);}}else if(_[_0xe762('0x97')](_0x1e406d[_0x1ae90a])){_0x1e406d[_0x1ae90a]=this['replaceAllVariables'](_0x1e406d[_0x1ae90a]);}}}};AGIVertices['prototype'][_0xe762('0x9d')]=function(_0x36fd43,_0x494fa6){for(var _0x5e245d in _0x36fd43){if(_0x36fd43['hasOwnProperty'](_0x5e245d)){if(_[_0xe762('0x9a')](_0x36fd43[_0x5e245d])){if(!_[_0xe762('0x41')](_0x36fd43[_0x5e245d])){this[_0xe762('0x9d')](_0x36fd43[_0x5e245d],util[_0xe762('0x28')](_0xe762('0x9e'),_0x494fa6,_0x5e245d));}}else if(_[_0xe762('0x9b')](_0x36fd43[_0x5e245d])){for(var _0x588aa8=0x0;_0x588aa8<_0x36fd43[_0x5e245d]['length'];_0x588aa8++){this[_0xe762('0x9d')](_0x36fd43[_0x5e245d][_0x588aa8],util['format'](_0xe762('0x9e'),_0x494fa6,_0x5e245d+'['+_0x588aa8+']'));}}else{if(!_[_0xe762('0x42')](_0x36fd43[_0x5e245d])){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x9e'),_0x494fa6,_0x5e245d),_0x36fd43[_0x5e245d]);}}}}};AGIVertices[_0xe762('0x10')]['replaceObjectAllVariables']=function(_0x3f6b7a){try{var _0x127424=JSON[_0xe762('0x73')](_0x3f6b7a);this[_0xe762('0x99')](_0x127424);return JSON[_0xe762('0x75')](_0x127424);}catch(_0x1db79c){return this[_0xe762('0x98')](_0x3f6b7a);}};AGIVertices['prototype'][_0xe762('0x98')]=function(_0x44e8f0){var _0x1a64d8=_0x44e8f0[_0xe762('0xa0')]('{');for(var _0x331f9a=0x1;_0x331f9a<_0x1a64d8[_0xe762('0x9c')];_0x331f9a+=0x1){var _0x1d8900=_0x1a64d8[_0x331f9a][_0xe762('0xa0')]('}');if(_0x1d8900[_0xe762('0x9c')]>0x1){_0x44e8f0=_0x44e8f0[_0xe762('0xa1')]('{'+_0x1d8900[0x0]+'}',this['channel'][_0xe762('0x11')](_0x1d8900[0x0])['extra']||_0x1d8900[0x0]);}}if(_0x1a64d8[_0xe762('0x9c')]===0x1){return _0x44e8f0['toString']();}return this['replaceAllVariables'](_0x44e8f0);};AGIVertices[_0xe762('0x10')][_0xe762('0xa2')]=function(_0x2ba10d,_0x5733a4){var _0x14811d=this['channel'][_0xe762('0x11')](_0x2ba10d);if(_0x14811d['result']===-0x1){return _0x14811d;}logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xa3'),_0x5733a4,_0x14811d['extra']));return this['channel']['setVariable'](_0x5733a4,_0x14811d[_0xe762('0xa4')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x88')]=function(_0x1bf79d){return _0x1bf79d&&_0x1bf79d!=='0'&&_0x1bf79d!=='-1'&&_0x1bf79d!=='';};AGIVertices['prototype'][_0xe762('0xa5')]=function(_0x2d105b){this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2d105b,'-');_0x2d105b[_0xe762('0xa6')]=_0x2d105b[_0xe762('0xa5')];return{'code':0xc8,'result':'-'};};AGIVertices[_0xe762('0x10')][_0xe762('0xa7')]=function(_0x1cb141){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xa8'),_0x1cb141['label']));if(!this[_0xe762('0x88')](_0x1cb141[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}var _0x1dcf7='\x22'+_0x1cb141[_0xe762('0x62')]+'\x22';if(this[_0xe762('0x88')](_0x1cb141[_0xe762('0x79')])){_0x1dcf7+=','+_0x1cb141[_0xe762('0x79')];}var _0x378785=this[_0xe762('0xd')][_0xe762('0x55')]('MRCPSynth',_0x1dcf7);if(_0x378785[_0xe762('0xaa')]===-0x1){return _0x378785;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0xab'),_0x1dcf7));};AGIVertices[_0xe762('0x10')][_0xe762('0xac')]=function(_0x58e8e1){logger['info'](util[_0xe762('0x28')](_0xe762('0xad'),_0x58e8e1[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x58e8e1['grammar'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xae'));}var _0x209359=_0x58e8e1['grammar'];if(this[_0xe762('0x88')](_0x58e8e1[_0xe762('0x79')])){_0x209359+=','+_0x58e8e1[_0xe762('0x79')];}var _0x19fcb6=this['channel']['exec']('MRCPRecog',_0x209359);if(_0x19fcb6[_0xe762('0xaa')]===-0x1){return _0x19fcb6;}var _0x3a972b=this['getAndSetVariable'](_0xe762('0xaf'),_0xe762('0xb0'));if(_0x3a972b[_0xe762('0xaa')]===-0x1){return _0x3a972b;}var _0x5a3814=this['getAndSetVariable'](_0xe762('0xb1'),_0xe762('0xb2'));if(_0x5a3814[_0xe762('0xaa')]===-0x1){return _0x5a3814;}var _0x1cb4af=this[_0xe762('0xa2')](_0xe762('0xb3'),_0xe762('0xb4'));if(_0x1cb4af[_0xe762('0xaa')]===-0x1){return _0x1cb4af;}return this[_0xe762('0xd')][_0xe762('0xa9')](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x209359));};AGIVertices[_0xe762('0x10')]['agi']=function(_0xb74e67){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xb5'),_0xb74e67[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x5')]([_0xb74e67[_0xe762('0xb6')],_0xb74e67[_0xe762('0xb7')]]);};AGIVertices[_0xe762('0x10')]['answer']=function(_0x1b4d16){logger[_0xe762('0x2d')](util['format'](_0xe762('0xb8'),_0x1b4d16[_0xe762('0x37')]));if(this[_0xe762('0x88')](_0x1b4d16[_0xe762('0x64')])){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Wait\x20%s\x20seconds\x20before\x20answer',_0x1b4d16[_0xe762('0x64')]));var _0x182c5d=this[_0xe762('0xd')][_0xe762('0xb9')](_0x1b4d16[_0xe762('0x64')]);if(_0x182c5d[_0xe762('0xaa')]===-0x1){return _0x182c5d;}}return this[_0xe762('0xd')][_0xe762('0xba')]();};AGIVertices[_0xe762('0x10')][_0xe762('0x48')]=function(_0x4cd798){logger['info'](util[_0xe762('0x28')](_0xe762('0xbb'),_0x4cd798[_0xe762('0x37')]));if(!this['isConfigured'](_0x4cd798[_0xe762('0x46')])){return this[_0xe762('0xd')]['error'](_0x4cd798,_0xe762('0xbc'));}_0x4cd798['scheduledAt']=moment();if(this['isConfigured'](_0x4cd798[_0xe762('0xbd')])){_0x4cd798[_0xe762('0x47')]=moment()[_0xe762('0xbe')](_0x4cd798[_0xe762('0xbd')],_0xe762('0xbf'));}if(!this[_0xe762('0x88')](_0x4cd798[_0xe762('0x4b')])){_0x4cd798['callback_priority']=0x2;}this[_0xe762('0x40')][_0xe762('0x6f')](this,_0x4cd798);return this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0xc0'),_0x4cd798[_0xe762('0x45')],_0x4cd798[_0xe762('0x46')],_0x4cd798[_0xe762('0x47')]));};AGIVertices[_0xe762('0x10')][_0xe762('0xc1')]=function(_0x46052e){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block',_0x46052e[_0xe762('0x37')]));var _0x1b786f=this['channel'][_0xe762('0x55')](_0x46052e[_0xe762('0xc2')],_0x46052e[_0xe762('0x79')]);if(_0x1b786f[_0xe762('0xaa')]===-0x1){return _0x1b786f;}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xc3'),_0x46052e[_0xe762('0xc2')],_0x46052e[_0xe762('0x79')]));};AGIVertices[_0xe762('0x10')]['lumenvoxtts']=function(_0x5181c7){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xc4'),_0x5181c7[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x5181c7[_0xe762('0x62')])){return this[_0xe762('0xd')]['noop'](_0xe762('0xc5'));}var _0xdfa219='\x22'+_0x5181c7[_0xe762('0x62')]+'\x22';if(this[_0xe762('0x88')](_0x5181c7[_0xe762('0x79')])){_0xdfa219+=','+_0x5181c7[_0xe762('0x79')];}var _0x702e7f=this['channel'][_0xe762('0x55')](_0xe762('0xc6'),_0xdfa219);if(_0x702e7f[_0xe762('0xaa')]===-0x1){return _0x702e7f;}return this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xab'),_0xdfa219));};AGIVertices[_0xe762('0x10')]['sestektts']=function(_0x297d97){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xc7'),_0x297d97[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x297d97[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}var _0x45d413='\x22'+_0x297d97['text']+'\x22';if(this[_0xe762('0x88')](_0x297d97[_0xe762('0x79')])){_0x45d413+=','+_0x297d97[_0xe762('0x79')];}var _0x3b23f9=this['channel']['exec']('MRCPSynth',_0x45d413);if(_0x3b23f9[_0xe762('0xaa')]===-0x1){return _0x3b23f9;}return this['channel'][_0xe762('0xa9')](util['format'](_0xe762('0xab'),_0x45d413));};AGIVertices[_0xe762('0x10')][_0xe762('0xc8')]=function(_0x3abacd){logger['info'](util[_0xe762('0x28')](_0xe762('0xc9'),_0x3abacd['label']));if(!this[_0xe762('0x88')](_0x3abacd[_0xe762('0xca')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xae'));}var _0x5cbea9=_0x3abacd[_0xe762('0xca')];if(this[_0xe762('0x88')](_0x3abacd['options'])){_0x5cbea9+=','+_0x3abacd[_0xe762('0x79')];}var _0x57c720=this['channel'][_0xe762('0x55')](_0xe762('0xcb'),_0x5cbea9);if(_0x57c720[_0xe762('0xaa')]===-0x1){return _0x57c720;}var _0x5b4858=this['getAndSetVariable']('RECOG_CONFIDENCE()',_0xe762('0xcc'));if(_0x5b4858[_0xe762('0xaa')]===-0x1){return _0x5b4858;}var _0x3cc1f8=this[_0xe762('0xa2')](_0xe762('0xb1'),_0xe762('0xcd'));if(_0x3cc1f8[_0xe762('0xaa')]===-0x1){return _0x3cc1f8;}var _0x8be54a=this[_0xe762('0xa2')](_0xe762('0xb3'),_0xe762('0xce'));if(_0x8be54a[_0xe762('0xaa')]===-0x1){return _0x8be54a;}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xcf'),_0x5cbea9));};AGIVertices[_0xe762('0x10')][_0xe762('0xd0')]=function(_0x3146f8){logger[_0xe762('0x2d')](util['format'](_0xe762('0xd1'),_0x3146f8[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3146f8[_0xe762('0xca')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xae'));}var _0x87730a=_0x3146f8['grammar'];if(this['isConfigured'](_0x3146f8['options'])){_0x87730a+=','+_0x3146f8[_0xe762('0x79')];}var _0x358e95=this[_0xe762('0xd')]['exec']('MRCPRecog',_0x87730a);if(_0x358e95[_0xe762('0xaa')]===-0x1){return _0x358e95;}var _0x1b5c27=this['getAndSetVariable'](_0xe762('0xaf'),_0xe762('0xd2'));if(_0x1b5c27[_0xe762('0xaa')]===-0x1){return _0x1b5c27;}var _0x906768=this['getAndSetVariable'](_0xe762('0xb1'),_0xe762('0xd3'));if(_0x906768[_0xe762('0xaa')]===-0x1){return _0x906768;}var _0x3b926e=this[_0xe762('0xa2')](_0xe762('0xb3'),_0xe762('0xd4'));if(_0x3b926e['result']===-0x1){return _0x3b926e;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0xcf'),_0x87730a));};AGIVertices['prototype']['database']=function(_0x3f63ec){logger['info'](util['format'](_0xe762('0xd5'),_0x3f63ec[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3f63ec[_0xe762('0xd6')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3f63ec,'no\x20database\x20selected');}var _0x345ae9=this[_0xe762('0xd7')][_0xe762('0x6f')](this,_0x3f63ec[_0xe762('0xd6')]);if(!_0x345ae9){return this['channel']['error'](_0x3f63ec,_0xe762('0xd8'));}if(!this['isConfigured'](_0x3f63ec[_0xe762('0x2f')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3f63ec,'no\x20query\x20configured');}var _0x13c908=_0x3f63ec[_0xe762('0x2f')][_0xe762('0x57')](/(\r\n|\n|\r)/gm,'\x20');this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')]('query:\x20%s',_0x13c908));var _0x3a47bd=this[_0xe762('0x29')]['sync'](this,_0x345ae9,_0x13c908);this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x3f63ec,_0x13c908);if(!this['isConfigured'](_0x3f63ec[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xda'));}var _0x1563af=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x3f63ec[_0xe762('0xd9')]);if(!_0x1563af){return this[_0xe762('0xd')]['error'](_0x3f63ec,_0xe762('0xdb'));}var _0x49615d=this;_0x3a47bd[_0xe762('0xdc')](function(_0xbb65e9,_0x36cc8){Object[_0xe762('0xdd')](_0xbb65e9)[_0xe762('0xdc')](function(_0x4b898a){_0x49615d[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')]('%s[%s][%s]',_0x1563af,_0x36cc8,_0x4b898a),_0xbb65e9[_0x4b898a]);});});this[_0xe762('0xd')][_0xe762('0x9f')](util['format'](_0xe762('0xde'),_0x1563af),_0x3a47bd[_0xe762('0x9c')]);return this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xdf'),_0x1563af));};AGIVertices[_0xe762('0x10')]['dial']=function(_0x4d188d){logger[_0xe762('0xe0')](util['format'](_0xe762('0xe1'),_0x4d188d[_0xe762('0x37')]));if(!this['isConfigured'](_0x4d188d[_0xe762('0xe2')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4d188d,_0xe762('0xe3'));}var _0x51e5fe=this['getUser']['sync'](this,_0x4d188d['sip_id']);if(!_0x51e5fe){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4d188d,_0xe762('0xe4'));}var _0x2c5e5f=this[_0xe762('0xd')]['exec'](_0xe762('0xe5'),[util['format'](_0xe762('0xe6'),_0x51e5fe),_0x4d188d[_0xe762('0x64')],_0x4d188d['opts'],_0x4d188d[_0xe762('0x71')]]);if(_0x2c5e5f[_0xe762('0xaa')]===-0x1){return _0x2c5e5f;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('Executed\x20command\x20%s','DIAL'));};AGIVertices[_0xe762('0x10')]['dialogflow']=function(_0x1fefbb){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block',_0x1fefbb[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x1fefbb[_0xe762('0x7b')])){return this[_0xe762('0xd')]['noop'](_0xe762('0xe7'));}if(!this[_0xe762('0x88')](_0x1fefbb['text'])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}this[_0xe762('0xd')]['bot']=!![];this[_0xe762('0x35')](_0x1fefbb);this[_0xe762('0xe8')](_0x1fefbb[_0xe762('0x62')],'in','','');this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xe9'),_0x1fefbb[_0xe762('0x62')]));var _0xf3340c=this['googleDialogflow']['sync'](this,_0x1fefbb);if(_0xf3340c){for(var _0x324492 in _0xf3340c){if(_0xf3340c[_0xe762('0x96')](_0x324492)){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0xea'),_0x324492[_0xe762('0x6a')]()),_0xf3340c[_0x324492]);}}this[_0xe762('0xe8')](_0xf3340c[_0xe762('0xeb')],_0xe762('0xec'),_0xe762('0xed'),'');return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('Dialogflow\x20Result\x20%s',_0xf3340c['speech']));}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x1fefbb,_0xe762('0xee'));};AGIVertices[_0xe762('0x10')][_0xe762('0xef')]=function(_0x308460){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block',_0x308460[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x308460[_0xe762('0x7e')])){return this[_0xe762('0xd')]['noop'](_0xe762('0xf0'));}if(!this[_0xe762('0x88')](_0x308460['client_email'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xf1'));}if(!this[_0xe762('0x88')](_0x308460[_0xe762('0x80')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xf2'));}if(!this[_0xe762('0x88')](_0x308460[_0xe762('0x81')])){return this['channel'][_0xe762('0xa9')]('no\x20anguage\x20configured');}if(!this[_0xe762('0x88')](_0x308460['text'])){return this[_0xe762('0xd')]['noop'](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xf3')]=!![];this[_0xe762('0x35')](_0x308460);this[_0xe762('0xe8')](_0x308460[_0xe762('0x62')],'in','','');this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('Trying\x20DialogflowV2:\x20%s',_0x308460[_0xe762('0x62')]));var _0x106dad=this[_0xe762('0x7d')][_0xe762('0x6f')](this,_0x308460);if(_0x106dad){for(var _0xb276b0 in _0x106dad){if(_0x106dad[_0xe762('0x96')](_0xb276b0)){if(_0xb276b0!=='providerResponse'){this[_0xe762('0xd')]['setVariable'](util[_0xe762('0x28')]('DIALOGFLOW_%s',_0xb276b0[_0xe762('0x6a')]()),_0x106dad[_0xb276b0]);}}}this[_0xe762('0xe8')](_0x106dad[_0xe762('0xeb')],_0xe762('0xec'),_0xe762('0xef'),_0x106dad[_0xe762('0xf4')]);return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xf5'),_0x106dad['speech']));}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x308460,'DialogflowV2\x20is\x20unreachable');};AGIVertices[_0xe762('0x10')][_0xe762('0xf6')]=function(_0x276d27){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20SESTEKNDA\x20(%s)\x20block',_0x276d27[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x276d27[_0xe762('0xf7')])){return this['channel']['noop'](_0xe762('0xf8'));}if(!this[_0xe762('0x88')](_0x276d27[_0xe762('0xf9')])){return this['channel']['noop'](_0xe762('0xfa'));}if(!this['isConfigured'](_0x276d27[_0xe762('0xfb')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xfc'));}if(!this[_0xe762('0x88')](_0x276d27['ndassistant_url'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xc5'));}this['channel'][_0xe762('0xf3')]=!![];this[_0xe762('0x35')](_0x276d27);this['createSquareMessage'](_0x276d27[_0xe762('0x62')],'in','','');this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xfd'),_0x276d27['text']));var _0x2d9cf8=this['sestekNDA']['sync'](this,_0x276d27);if(_0x2d9cf8){for(var _0x5cfae0 in _0x2d9cf8){if(_0x2d9cf8[_0xe762('0x96')](_0x5cfae0)){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')]('SESTEK_NDA_%s',_0x5cfae0[_0xe762('0x6a')]()),_0x2d9cf8[_0x5cfae0]);}}this[_0xe762('0xe8')](_0x2d9cf8[_0xe762('0xeb')],_0xe762('0xec'),_0xe762('0xf6'),'');if(_0x2d9cf8[_0xe762('0xfe')]){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xff'),_0x2d9cf8[_0xe762('0xfe')]));var _0x23c05b=this['channel'][_0xe762('0x100')](_0x2d9cf8[_0xe762('0xfe')]);try{fs[_0xe762('0x101')](_0x2d9cf8[_0xe762('0xfe')]+_0xe762('0x102'));}catch(_0x538f39){logger[_0xe762('0x2b')](_0x538f39);}return _0x23c05b;}else{return this[_0xe762('0xd')]['noop'](util['format'](_0xe762('0x103'),_0x2d9cf8['speech']));}}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x276d27,_0xe762('0x104'));};AGIVertices[_0xe762('0x10')][_0xe762('0x105')]=function(_0x37c95e){logger['info'](util[_0xe762('0x28')](_0xe762('0x106'),_0x37c95e[_0xe762('0x37')]));return this[_0xe762('0xd')]['noop'](_0xe762('0x105'));};AGIVertices['prototype'][_0xe762('0x107')]=function(_0xbdc6aa){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block',_0xbdc6aa[_0xe762('0x37')]));var _0x592842='';if(_0xbdc6aa[_0xe762('0x108')]){if(!this[_0xe762('0x88')](_0xbdc6aa[_0xe762('0x108')])){return this[_0xe762('0xd')]['error'](_0xbdc6aa,_0xe762('0x109'));}else{var _0x455d52=parseInt(_0xbdc6aa[_0xe762('0x108')],0xa);if(isNaN(_0x455d52)){_0x592842=_0xbdc6aa[_0xe762('0x108')];}else{_0x592842=this['getTrunk'][_0xe762('0x6f')](this,_0xbdc6aa['trunk_id']);if(!_0x592842){return this['channel'][_0xe762('0x2b')](_0xbdc6aa,_0xe762('0x10a'));}}}}else if(_0xbdc6aa[_0xe762('0x10b')]){_0x592842=_0xbdc6aa[_0xe762('0x10b')];}else{return this['channel']['error'](_0xbdc6aa,_0xe762('0x109'));}var _0x1b3c10=this[_0xe762('0xd')]['exec'](_0xe762('0xe5'),[util[_0xe762('0x28')]('SIP/%s/%s',_0x592842,_0xbdc6aa[_0xe762('0x45')]),_0xbdc6aa[_0xe762('0x64')],_0xbdc6aa[_0xe762('0x10c')],_0xbdc6aa[_0xe762('0x71')]]);if(_0x1b3c10[_0xe762('0xaa')]===-0x1){return _0x1b3c10;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0x10d'),_0xe762('0xe5')));};AGIVertices['prototype'][_0xe762('0x10e')]=function(_0x4ca1ba){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x10f'),_0x4ca1ba['label']));return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x10e'));};AGIVertices[_0xe762('0x10')][_0xe762('0xb')]=function(_0x2890a4){logger[_0xe762('0x2d')](util['format'](_0xe762('0x110'),_0x2890a4[_0xe762('0x37')]));if(_0x2890a4[_0xe762('0xa6')]===0x0){return this[_0xe762('0xa5')](_0x2890a4);}_0x2890a4['retry']-=0x1;if(!this[_0xe762('0x88')](_0x2890a4['file_id'])){return this[_0xe762('0xd')]['error'](_0x2890a4,'no\x20file\x20audio\x20selected');}var _0x44fb09=this[_0xe762('0x1c')][_0xe762('0x6f')](this,_0x2890a4[_0xe762('0x111')]);if(!_0x44fb09){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2890a4,'no\x20file\x20audio\x20found');}if(!this['isConfigured'](_0x2890a4[_0xe762('0xd9')])){return this[_0xe762('0xd')]['error'](_0xe762('0xda'));}var _0x49e3a7=this['channel'][_0xe762('0x112')](_0x44fb09,_0x2890a4[_0xe762('0x113')],_0x2890a4['maxdigit']);var _0x3bd843=_0x49e3a7[_0xe762('0xaa')]?_0x49e3a7[_0xe762('0xaa')][_0xe762('0x4a')]():'';logger['info'](_0xe762('0x114'),JSON[_0xe762('0x75')](_0x49e3a7));if(_0x49e3a7[_0xe762('0xaa')]===-0x1){this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2890a4,_0x3bd843);return _0x49e3a7;}else if(_0x49e3a7[_0xe762('0xa4')]===_0xe762('0x64')){_0x49e3a7['result']=_0x3bd843[_0xe762('0x9c')]>=parseInt(_0x2890a4[_0xe762('0x115')])?'x':'i';}else{_0x49e3a7[_0xe762('0xaa')]=_0x3bd843[_0xe762('0x9c')]>=parseInt(_0x2890a4[_0xe762('0x115')])&&_0x3bd843[_0xe762('0x9c')]<=parseInt(_0x2890a4[_0xe762('0x116')])?'x':'i';}var _0xd51e88=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x2890a4['variable_id']);if(!_0xd51e88){return this[_0xe762('0xd')]['error'](_0x2890a4,_0xe762('0xdb'));}this[_0xe762('0xd')][_0xe762('0x9f')](_0xd51e88,_0x3bd843);if(this[_0xe762('0x88')](_0x2890a4[_0xe762('0x117')])){var _0x41a9b0=parseInt(_0x2890a4['hiddendigitsnum'],0xa);var _0x14a88f=rs[_0xe762('0x118')]({'charset':'*','length':_0x41a9b0});var _0x1c5e24=_0x3bd843[_0xe762('0x9c')];if(_0x1c5e24>0x0){if(_0x1c5e24>_0x41a9b0){this['createSquareDetailsReport']['sync'](this,_0x2890a4,_0x2890a4[_0xe762('0x119')]===_0xe762('0x11a')?_0x14a88f+_0x3bd843[_0xe762('0x11b')](_0x41a9b0):_0x3bd843[_0xe762('0x11b')](0x0,_0x1c5e24-_0x41a9b0)+_0x14a88f);}else{this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2890a4,rs[_0xe762('0x118')]({'charset':'*','length':_0x1c5e24}));}}else{this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2890a4,'');}}else{this[_0xe762('0x35')]['sync'](this,_0x2890a4,_0x3bd843);}return _0x49e3a7;};AGIVertices[_0xe762('0x10')][_0xe762('0xc')]=function(_0x1a5dfe){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x11c'),_0x1a5dfe[_0xe762('0x37')]));return this['getdigits'](_0x1a5dfe);};AGIVertices[_0xe762('0x10')][_0xe762('0x11d')]=function(_0x19e864){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x11e'),_0x19e864[_0xe762('0x37')]));this['createSquareDetailsReport'][_0xe762('0x6f')](this,_0x19e864,_0x19e864['goalname']);return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('GOAL\x20%s',_0x19e864[_0xe762('0x11f')]));};AGIVertices[_0xe762('0x10')]['awspolly']=function(_0x2a30b8){logger['info'](util[_0xe762('0x28')]('[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block',_0x2a30b8[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x2a30b8[_0xe762('0x8b')])||!this[_0xe762('0x88')](_0x2a30b8['aws_secret_access_key'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x120'));}if(!this[_0xe762('0x88')](_0x2a30b8[_0xe762('0x62')])){return this['channel'][_0xe762('0xa9')]('no\x20text\x20configured');}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x121'),_0x2a30b8[_0xe762('0x62')]));var _0x55dede=this['awsPolly'][_0xe762('0x6f')](this,_0x2a30b8);if(_0x55dede){this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x122'),_0x55dede));var _0x27e26b=this[_0xe762('0xd')][_0xe762('0x100')](_0x55dede);try{fs['unlink'](_0x55dede+_0xe762('0x102'));}catch(_0xf5cbfe){logger[_0xe762('0x2b')](_0xf5cbfe);}return _0x27e26b;}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2a30b8,_0xe762('0x123'));};AGIVertices[_0xe762('0x10')]['awslex']=function(_0x3e67be){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x124'),_0x3e67be[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x8b')])||!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x125')])){return this[_0xe762('0xd')]['noop']('no\x20valid\x20credentials\x20configured');}if(!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x91')])){return this[_0xe762('0xd')]['noop'](_0xe762('0x126'));}if(!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xf3')]=!![];this['createSquareDetailsReport'](_0x3e67be);this[_0xe762('0xe8')](_0x3e67be[_0xe762('0x62')],'in','','');this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x127'),_0x3e67be[_0xe762('0x62')]));var _0xd02f3f=this[_0xe762('0x8f')][_0xe762('0x6f')](this,_0x3e67be);if(_0xd02f3f){for(var _0x1d86f7 in _0xd02f3f){if(_0xd02f3f[_0xe762('0x96')](_0x1d86f7)&&_['isString'](_0xd02f3f[_0x1d86f7])){this[_0xe762('0xd')]['setVariable'](util[_0xe762('0x28')](_0xe762('0x128'),_0x1d86f7[_0xe762('0x6a')]()),_0xd02f3f[_0x1d86f7]);}}if(_[_0xe762('0x42')](_0xd02f3f[_0xe762('0x129')])){return this[_0xe762('0xd')]['noop']('Amazon\x20Lex\x20ready\x20for\x20fulfillment');}else{this['createSquareMessage'](_0xd02f3f['message'],_0xe762('0xec'),_0xe762('0x12a'),'');return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('Amazon\x20Lex\x20Result\x20%s',_0xd02f3f[_0xe762('0x129')]));}}return this[_0xe762('0xd')]['error'](_0x3e67be,_0xe762('0x12b'));};AGIVertices[_0xe762('0x10')][_0xe762('0x12c')]=function(_0x392293){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x12d'),_0x392293['label'],_0x392293[_0xe762('0x64')]));if(!this[_0xe762('0x88')](_0x392293[_0xe762('0x7b')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xe7'));}var _0xd36039=_0xe762('0x12e');var _0x13523c=util[_0xe762('0x28')](_0xe762('0x12f'),FILES_PATH,rs[_0xe762('0x118')](0x4));var _0x309aee=util[_0xe762('0x28')](_0xe762('0x9e'),_0x13523c,_0xd36039);var _0x117b83=!![];if(_0x392293['beep']==='NOBEEP'){_0x117b83=![];}var _0x1ddc8a=this['channel'][_0xe762('0x130')](_0x13523c,_0xd36039,_0x392293[_0xe762('0x131')],_0x392293['timeout'],undefined,_0x117b83);if(_0x1ddc8a[_0xe762('0xaa')]!==-0x1){this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x132'),_0x309aee));var _0x1dd3ee=this[_0xe762('0x92')][_0xe762('0x6f')](this,_0x392293,_0x309aee);if(_0x1dd3ee){for(var _0x585bef in _0x1dd3ee){if(_0x1dd3ee[_0xe762('0x96')](_0x585bef)){this['channel'][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x133'),_0x585bef['toUpperCase']()),_0x1dd3ee[_0x585bef]);}}return this[_0xe762('0xd')]['noop'](util['format']('GoogleASR\x20Result\x20%s',JSON[_0xe762('0x75')](_0x1dd3ee)));}}return _0x1ddc8a;};AGIVertices['prototype'][_0xe762('0x134')]=function(_0x5450be){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x135'),_0x5450be['label']));if(!this[_0xe762('0x88')](_0x5450be['appid'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x136'));}if(!this[_0xe762('0x88')](_0x5450be[_0xe762('0x137')])){return this[_0xe762('0xd')]['noop']('no\x20appsecret\x20configured');}var _0x493ac3=_0xe762('0x12e');var _0x4dadb9=util[_0xe762('0x28')](_0xe762('0x12f'),FILES_PATH,rs[_0xe762('0x118')](0x4));var _0x55c140=util[_0xe762('0x28')](_0xe762('0x9e'),_0x4dadb9,_0x493ac3);var _0x37eace=!![];if(_0x5450be[_0xe762('0x138')]===_0xe762('0x139')){_0x37eace=![];}var _0x2b5e37=this['channel'][_0xe762('0x130')](_0x4dadb9,_0x493ac3,_0x5450be[_0xe762('0x131')],_0x5450be['timeout'],undefined,_0x37eace);if(_0x2b5e37[_0xe762('0xaa')]!==-0x1){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x13a'),_0x55c140));var _0x41c995=this[_0xe762('0x94')][_0xe762('0x6f')](this,_0x5450be,_0x55c140);if(_0x41c995){for(var _0x4ec559 in _0x41c995){if(_0x41c995[_0xe762('0x96')](_0x4ec559)){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x13b'),_0x4ec559[_0xe762('0x6a')]()),_0x41c995[_0x4ec559]);}}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('TildeASR\x20Result\x20%s',JSON[_0xe762('0x75')](_0x41c995)));}}return _0x2b5e37;};AGIVertices[_0xe762('0x10')][_0xe762('0x13c')]=function(_0x2c68a8){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x13d'),_0x2c68a8[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x13e')](_0x2c68a8[_0xe762('0x3b')],_0x2c68a8[_0xe762('0x13f')],_0x2c68a8[_0xe762('0x3c')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x140')]=function(_0x4dc6ae){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x141'),_0x4dc6ae['label']));if(!this[_0xe762('0x88')](_0x4dc6ae[_0xe762('0x142')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4dc6ae,_0xe762('0x143'));}try{var _0x57a368=eval(_0x4dc6ae[_0xe762('0x142')])?_0xe762('0x144'):_0xe762('0x145');this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0x146'),_0x4dc6ae[_0xe762('0x142')],_0x57a368));return{'code':0xc8,'result':_0x57a368};}catch(_0x5f0454){return{'code':0xc8,'result':_0xe762('0x145')};}};AGIVertices[_0xe762('0x10')][_0xe762('0x147')]=function(_0x2d2d4f){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block',_0x2d2d4f[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x2d2d4f[_0xe762('0x148')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2d2d4f,_0xe762('0x149'));}var _0x1ecc88=this[_0xe762('0x23')]['sync'](this,_0x2d2d4f[_0xe762('0x148')]);if(!_0x1ecc88){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2d2d4f,_0xe762('0x14a'));}for(var _0x41588d=0x0;_0x41588d<_0x1ecc88[_0xe762('0x9c')];_0x41588d+=0x1){var _0x171edc=this[_0xe762('0xd')][_0xe762('0x11')](util[_0xe762('0x28')](_0xe762('0x14b'),_0x1ecc88[_0x41588d]));if(_0x171edc['result']===-0x1){return _0x171edc;}logger[_0xe762('0x2d')](util['format']('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0x171edc[_0xe762('0xa4')]));if(_0x171edc['extra']===_0xe762('0x144')){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x14c'),_0x1ecc88[_0x41588d],_0xe762('0x144')));this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0xe762('0x144')));return{'code':0xc8,'result':'true'};}else{logger[_0xe762('0x2d')](util[_0xe762('0x28')]('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0xe762('0x145')));this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0xe762('0x145')));}}return{'code':0xc8,'result':_0xe762('0x145')};};AGIVertices[_0xe762('0x10')][_0xe762('0x14d')]=function(_0x5d90df){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x14e'),_0x5d90df[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x14d')]();};AGIVertices['prototype'][_0xe762('0x14f')]=function(_0x45846a){logger['info'](util['format'](_0xe762('0x150'),_0x45846a['label']));if(!this['isConfigured'](_0x45846a[_0xe762('0x7b')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xe7'));}var _0x45c24a=_0xe762('0x12e');var _0x4d0fdd=util['format']('%s/recordings/%s',FILES_PATH,rs['generate'](0x4));var _0x4498fe=util['format']('%s.%s',_0x4d0fdd,_0x45c24a);var _0x30dab2=!![];if(_0x45846a['beep']===_0xe762('0x139')){_0x30dab2=![];}var _0x31eb9d=this['channel']['recordFile'](_0x4d0fdd,_0x45c24a,_0x45846a['intKey'],_0x45846a[_0xe762('0x64')],undefined,_0x30dab2);if(_0x31eb9d[_0xe762('0xaa')]!==-0x1){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('ispeech\x20%s\x20file\x20created',_0x4498fe));var _0x2831c1=this['ispeechASR'][_0xe762('0x6f')](this,_0x45846a,_0x4498fe);if(_0x2831c1){for(var _0x3225b7 in _0x2831c1){if(_0x2831c1[_0xe762('0x96')](_0x3225b7)){this['channel'][_0xe762('0x9f')](util[_0xe762('0x28')]('ISPEECH_ASR_%s',_0x3225b7[_0xe762('0x6a')]()),_0x2831c1[_0x3225b7]);}}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x151'),JSON[_0xe762('0x75')](_0x2831c1)));}}return _0x31eb9d;};AGIVertices[_0xe762('0x10')][_0xe762('0x152')]=function(_0x1085c2){logger[_0xe762('0x2d')](util['format'](_0xe762('0x153'),_0x1085c2[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x1085c2[_0xe762('0x7b')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xe7'));}if(!this[_0xe762('0x88')](_0x1085c2[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x154'),_0x1085c2['text']));var _0x19d481=this['ispeechTTS']['sync'](this,_0x1085c2);if(_0x19d481){this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0x155'),_0x19d481));var _0x38b143=this['channel'][_0xe762('0x100')](_0x19d481,_0x1085c2['intKey']);try{fs['unlink'](_0x19d481+'.wav');}catch(_0x2c6e84){logger['error'](_0x2c6e84);}return _0x38b143;}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x1085c2,'ispeech\x20TTS\x20is\x20unreachable');};AGIVertices[_0xe762('0x10')][_0xe762('0x156')]=function(_0x2d4ebb){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20LOGIN\x20(%s)\x20block',_0x2d4ebb['label']));if(!this[_0xe762('0x88')](_0x2d4ebb[_0xe762('0x157')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2d4ebb,_0xe762('0x158'));}logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x159'),this['channel'][_0xe762('0x3a')],_0x2d4ebb['findBy']));var _0x5eb992=this[_0xe762('0x15a')]['sync'](this,_0x2d4ebb[_0xe762('0x157')]);if(_0x5eb992){logger[_0xe762('0x2d')](util['format'](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb[_0xe762('0x157')]));this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15c')};}else{logger['info'](util['format'](_0xe762('0x15d'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb['findBy']));this['channel']['noop'](util[_0xe762('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15e')};}};AGIVertices[_0xe762('0x10')][_0xe762('0x15f')]=function(_0x46648d){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20LOGOUT\x20(%s)\x20block',_0x46648d[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x46648d[_0xe762('0x157')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x46648d,_0xe762('0x158'));}logger['info'](util[_0xe762('0x28')](_0xe762('0x159'),this[_0xe762('0xd')]['callerid'],_0x46648d[_0xe762('0x157')]));var _0x5f3309=this[_0xe762('0x51')][_0xe762('0x6f')](this,_0x46648d[_0xe762('0x157')]);if(_0x5f3309){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0xe762('0x3a')],_0x46648d[_0xe762('0x157')]));this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x46648d[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15c')};}else{logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x15d'),this['channel']['callerid'],_0x46648d[_0xe762('0x157')]));this['channel']['noop'](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this['channel']['callerid'],_0x46648d[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15e')};}};AGIVertices['prototype'][_0xe762('0x160')]=function(_0x48144e){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20MATH\x20(%s)\x20block',_0x48144e[_0xe762('0x37')]));if(!this['isConfigured'](_0x48144e[_0xe762('0x161')])){return this[_0xe762('0xd')]['error'](_0x48144e,_0xe762('0x162'));}this[_0xe762('0xd')][_0xe762('0xa9')](util['format']('math\x20%s',_0x48144e[_0xe762('0x161')]));var _0x3294f6=eval(_0x48144e[_0xe762('0x161')]);if(!this[_0xe762('0x88')](_0x48144e[_0xe762('0xd9')])){return this[_0xe762('0xd')]['noop']('no\x20variable\x20selected\x20for\x20the\x20result');}var _0xa1e9c5=this[_0xe762('0x11')]['sync'](this,_0x48144e[_0xe762('0xd9')]);if(!_0xa1e9c5){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x48144e,_0xe762('0xdb'));}if(_[_0xe762('0x9b')](_0x3294f6)){var _0x2e657a=this;_0x3294f6[_0xe762('0xdc')](function(_0x50e13d,_0xa9c3b){_0x2e657a[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x163'),_0xa1e9c5,_0xa9c3b),_0x50e13d);});return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x164'),_0xa1e9c5));}else{return this[_0xe762('0xd')][_0xe762('0x9f')](_0xa1e9c5,_0x3294f6);}};AGIVertices[_0xe762('0x10')][_0xe762('0xa')]=function(_0x161b30){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20MENU\x20(%s)\x20block',_0x161b30['label']));if(_0x161b30[_0xe762('0xa6')]===0x0){return this['maxRetry'](_0x161b30);}_0x161b30[_0xe762('0xa6')]-=0x1;if(!this[_0xe762('0x88')](_0x161b30[_0xe762('0x111')])){return this['channel'][_0xe762('0x2b')](_0x161b30,_0xe762('0x165'));}var _0x38ea60=this['getSound'][_0xe762('0x6f')](this,_0x161b30['file_id']);if(!_0x38ea60){return this[_0xe762('0xd')]['error'](_0x161b30,_0xe762('0x166'));}var _0x5cff10=this[_0xe762('0xd')][_0xe762('0x112')](_0x38ea60,_0x161b30['response'],_0x161b30[_0xe762('0x167')]);var _0x349e07=_0x5cff10[_0xe762('0xaa')];if(_0x5cff10['result']===-0x1){this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x161b30,'-1');return _0x5cff10;}else if(_0x5cff10[_0xe762('0xa4')]==='timeout'){_0x5cff10[_0xe762('0xaa')]=_0x5cff10['result'][_0xe762('0x9c')]>0x0?_0x5cff10['result']:'t';}else if(_['isEmpty'](_0x5cff10[_0xe762('0xaa')])){_0x5cff10[_0xe762('0xaa')]='#';_0x349e07='#';}if(!this[_0xe762('0x88')](_0x161b30['variable_id'])){this['channel'][_0xe762('0xa9')]('no\x20variable\x20selected\x20for\x20the\x20result');}else{var _0x85714a=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x161b30[_0xe762('0xd9')]);if(!_0x85714a){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x161b30,_0xe762('0xdb'));}this[_0xe762('0xd')][_0xe762('0x9f')](_0x85714a,_0x349e07);}this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x161b30,_0x349e07);return _0x5cff10;};AGIVertices[_0xe762('0x10')]['noop']=function(_0x5362f4){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x168'),_0x5362f4[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0xa9')](_0x5362f4[_0xe762('0x169')]||_0x5362f4[_0xe762('0x37')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x16a')]=function(_0x35544c){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x16b'),_0x35544c[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x35544c['findBy'])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x35544c,_0xe762('0x158'));}logger[_0xe762('0x2d')](util['format']('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));var _0x2cf73f=this[_0xe762('0x4c')]['sync'](this,_0x35544c[_0xe762('0x16c')]);var _0x4662c9=this[_0xe762('0x4f')][_0xe762('0x6f')](this,_0x35544c[_0xe762('0x157')],_0x2cf73f);if(_0x4662c9){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));return{'code':0xc8,'result':'success'};}else{logger[_0xe762('0x2d')](util['format'](_0xe762('0x15d'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c['findBy']));return{'code':0xc8,'result':'failure'};}};AGIVertices[_0xe762('0x10')][_0xe762('0x16d')]=function(_0xb001fe){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20PLAYBACK\x20(%s)\x20block',_0xb001fe[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0xb001fe[_0xe762('0x111')])){return this[_0xe762('0xd')]['error'](_0xb001fe,_0xe762('0x165'));}var _0x44a95f=this[_0xe762('0x1c')][_0xe762('0x6f')](this,_0xb001fe[_0xe762('0x111')]);if(!_0x44a95f){return this['channel'][_0xe762('0x2b')](_0xb001fe,_0xe762('0x166'));}var _0x10b700=this[_0xe762('0xd')][_0xe762('0x55')](_0xe762('0x16e'),[_0x44a95f,_0xb001fe[_0xe762('0x10c')]]);if(_0x10b700[_0xe762('0xaa')]===-0x1){return _0x10b700;}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xc3'),_0xe762('0x16e'),_0x44a95f));};AGIVertices[_0xe762('0x10')]['queue']=function(_0x4b5f6d){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x16f'),_0x4b5f6d['label']));if(!this[_0xe762('0x88')](_0x4b5f6d[_0xe762('0x170')])){return this[_0xe762('0xd')]['error'](_0x4b5f6d,_0xe762('0x171'));}var _0x1f5d06='';var _0x39ea97=parseInt(_0x4b5f6d[_0xe762('0x170')],0xa);if(isNaN(_0x39ea97)){_0x1f5d06=_0x4b5f6d['queue_id'];}else{_0x1f5d06=this[_0xe762('0x15')][_0xe762('0x6f')](this,_0x4b5f6d[_0xe762('0x170')]);if(!_0x1f5d06){return this['channel'][_0xe762('0x2b')](_0x4b5f6d,_0xe762('0x172'));}}var _0x48baf7='';if(this['isConfigured'](_0x4b5f6d['file_id'])){var _0x295032=this[_0xe762('0x1c')][_0xe762('0x6f')](this,_0x4b5f6d['file_id']);if(_0x295032){_0x48baf7=_0x295032;}}this['createSquareDetailsReport'][_0xe762('0x6f')](this,_0x4b5f6d,_0x1f5d06);if(_0x4b5f6d['opts'][_0xe762('0x173')]('x')<0x0){_0x4b5f6d[_0xe762('0x10c')]+='x';}if(_0x4b5f6d['opts']['indexOf']('X')<0x0){_0x4b5f6d[_0xe762('0x10c')]+='X';}this[_0xe762('0xd')][_0xe762('0x9f')]('XMCS-QUEUE',_0x1f5d06?_0x1f5d06[_0xe762('0x174')]():'');var _0x4cf966=this[_0xe762('0xd')]['exec'](_0xe762('0x175'),[_0x1f5d06,_0x4b5f6d[_0xe762('0x10c')],_0x4b5f6d[_0xe762('0x71')],_0x48baf7,_0x4b5f6d['timeout'],_0x4b5f6d[_0xe762('0x5')],_0x4b5f6d[_0xe762('0x176')],_0x4b5f6d[_0xe762('0x177')],'',_0x4b5f6d['position']]);if(_0x4cf966[_0xe762('0xaa')]===-0x1){return _0x4cf966;}return this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xc3'),_0xe762('0x175'),_0x1f5d06));};AGIVertices[_0xe762('0x10')]['record']=function(_0x18c894){logger['info'](util[_0xe762('0x28')](_0xe762('0x178'),_0x18c894[_0xe762('0x37')]));var _0xa2e13d=_0x18c894[_0xe762('0x179')]||_0xe762('0x12e');var _0x5ab08d=util[_0xe762('0x28')](_0xe762('0x17a'),this[_0xe762('0xd')]['uniqueid'],rs[_0xe762('0x118')](0x5));var _0x9ab832=util[_0xe762('0x28')](_0xe762('0x17b'),FILES_PATH,_0x5ab08d,_0xa2e13d);var _0x474897=util[_0xe762('0x28')]('%s/recordings/%s',FILES_PATH,_0x5ab08d);this[_0xe762('0x17c')]['sync'](this,_0x18c894,_0x5ab08d,_0x9ab832);this[_0xe762('0xd')][_0xe762('0x9f')](_0xe762('0x17d'),_0x5ab08d);logger['info'](_0xe762('0x17e'),_0x474897,_0xa2e13d,_0x18c894[_0xe762('0x17f')],_0x18c894[_0xe762('0x64')]);return this[_0xe762('0xd')]['recordFile'](_0x474897,_0xa2e13d,_0x18c894['escape_digits'],_0x18c894[_0xe762('0x64')],undefined,!![]);};AGIVertices[_0xe762('0x10')][_0xe762('0x180')]=function(_0x4f41a5){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x181'),_0x4f41a5[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x4f41a5[_0xe762('0x71')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x182'));}var _0x153501=this[_0xe762('0x63')][_0xe762('0x6f')](this,_0x4f41a5);logger[_0xe762('0x2d')](util['format']('Response:',util[_0xe762('0x183')](_0x153501,{'showHidden':![],'depth':null})));if(!this['isConfigured'](_0x4f41a5[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20variable\x20selected\x20for\x20the\x20response');}var _0x34f6ef=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x4f41a5[_0xe762('0xd9')]);if(!_0x34f6ef){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4f41a5,'no\x20variable\x20found');}this[_0xe762('0xd')]['setVariable'](util[_0xe762('0x28')](_0xe762('0x184'),_0x34f6ef),_0x153501[_0xe762('0x77')]?_0x153501[_0xe762('0x77')]:'200');this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x185'),_0x34f6ef),_0x153501[_0xe762('0x78')]?_0x153501['statusMessage']:'OK');if(_0x153501['body']){try{this[_0xe762('0x9d')](_0x153501[_0xe762('0x6b')],_0x34f6ef);}catch(_0x552ba0){logger['error'](util[_0xe762('0x28')](_0xe762('0x186'),_0x34f6ef));}}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xdf'),_0x34f6ef));};AGIVertices[_0xe762('0x10')][_0xe762('0x187')]=function(_0x370c09){logger[_0xe762('0x2d')](util['format'](_0xe762('0x188'),_0x370c09[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x189')](_0x370c09[_0xe762('0x18a')][_0xe762('0x57')](/\s+/g,''),_0x370c09[_0xe762('0x17f')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x18b')]=function(_0x4fca2a){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SAYNUMBER\x20(%s)\x20block',_0x4fca2a[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x18c')](_0x4fca2a[_0xe762('0x65')][_0xe762('0x57')](/\s+/g,''),_0x4fca2a[_0xe762('0x17f')]);};AGIVertices['prototype'][_0xe762('0x18d')]=function(_0x1a78d6){logger[_0xe762('0x2d')](util['format'](_0xe762('0x18e'),_0x1a78d6[_0xe762('0x37')]));return this[_0xe762('0xd')]['sayPhonetic'](_0x1a78d6[_0xe762('0x62')],_0x1a78d6[_0xe762('0x17f')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x18f')]=function(_0x4f4842){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SENDMAIL\x20(%s)\x20block',_0x4f4842['label']));if(!this[_0xe762('0x88')](_0x4f4842[_0xe762('0x190')])){return this['channel']['noop'](_0xe762('0x191'));}var _0x408420=this[_0xe762('0x20')][_0xe762('0x6f')](this,_0x4f4842['account_id']);if(!_0x408420||!_0x408420[_0xe762('0x192')]){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4f4842,_0xe762('0x193'));}var _0x42318d={'from':util['format'](_0xe762('0x194'),_0x408420[_0xe762('0x14')],_0x408420[_0xe762('0x195')]||_0x408420[_0xe762('0x192')][_0xe762('0x196')]),'to':_0x4f4842['to']||'','cc':_0x4f4842['cc']||'','bcc':_0x4f4842[_0xe762('0x197')]||'','subject':_0x4f4842[_0xe762('0x198')],'html':_0x4f4842['text'],'text':_0x4f4842[_0xe762('0x62')]};var _0x4c1a63={'tls':{'rejectUnauthorized':![]}};if(_0x408420['Smtp'][_0xe762('0x199')]){_0x4c1a63[_0xe762('0x199')]=_0x408420['Smtp'][_0xe762('0x199')];}else{_0x4c1a63[_0xe762('0x19a')]=_0x408420[_0xe762('0x192')]['host'];_0x4c1a63[_0xe762('0x19b')]=_0x408420['Smtp'][_0xe762('0x19b')];_0x4c1a63[_0xe762('0x19c')]=_0x408420[_0xe762('0x192')][_0xe762('0x19c')];}if(_0x408420[_0xe762('0x192')][_0xe762('0x19d')]){_0x4c1a63[_0xe762('0x19e')]={'user':_0x408420['Smtp']['user'],'pass':_0x408420[_0xe762('0x192')][_0xe762('0x19f')]};}if(this[_0xe762('0x88')](_0x4f4842['template_id'])){}logger[_0xe762('0xe0')](_0xe762('0x1a0'),JSON[_0xe762('0x75')](_0x42318d));this[_0xe762('0x35')]['sync'](this,_0x4f4842,_0x4f4842['account_id']);this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1a1'),_0x408420[_0xe762('0x14')]));this[_0xe762('0x22')][_0xe762('0x6f')](this,_0x4c1a63,_0x42318d);return this['channel']['noop'](_0xe762('0x1a2'));};AGIVertices['prototype'][_0xe762('0x1a3')]=function(_0x60a3f2){logger[_0xe762('0x2d')](util['format']('Enter\x20in\x20SENDFAX\x20(%s)\x20block',_0x60a3f2[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x1a4'));};AGIVertices[_0xe762('0x10')]['sendSMS']=function(_0x5c2d86){logger['info'](util['format'](_0xe762('0x1a5'),_0x5c2d86[_0xe762('0x37')]));if(!this['isConfigured'](_0x5c2d86[_0xe762('0x1a6')])){return this['channel'][_0xe762('0xa9')](_0xe762('0x1a7'));}var _0x31bc46=this['getSmsAccount'][_0xe762('0x6f')](this,_0x5c2d86[_0xe762('0x1a6')]);if(!_0x31bc46){return this[_0xe762('0xd')]['error'](_0x5c2d86,_0xe762('0x1a8'));}var _0x3b5bfa={'body':_0x5c2d86['sms_text'],'phone':_0x5c2d86['to']||'','SmsAccountId':_0x31bc46['id']};logger['debug'](_0xe762('0x1a9'),JSON[_0xe762('0x75')](_0x3b5bfa));this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x5c2d86,_0x5c2d86[_0xe762('0x1a6')]);this['channel']['noop'](util['format'](_0xe762('0x1aa'),_0x31bc46[_0xe762('0x14')]));this[_0xe762('0x1ab')]['sync'](this,_0x3b5bfa);return this['channel'][_0xe762('0xa9')](_0xe762('0x1ac'));};AGIVertices[_0xe762('0x10')][_0xe762('0x1ad')]=function(_0x167ea6){logger['info'](util[_0xe762('0x28')](_0xe762('0x1ae'),_0x167ea6[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x167ea6[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x167ea6,_0xe762('0x1af'));}var _0x52f0b0=this[_0xe762('0x11')]['sync'](this,_0x167ea6[_0xe762('0xd9')]);if(!_0x52f0b0){return this['channel']['error'](_0x167ea6,_0xe762('0xdb'));}return this['channel'][_0xe762('0x9f')](_0x52f0b0,_0x167ea6[_0xe762('0x1b0')]);};AGIVertices['prototype'][_0xe762('0x1b1')]=function(_0x4370c2){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20START\x20(%s)\x20block',_0x4370c2[_0xe762('0x37')]));this['channel']['noop'](_0xe762('0x1b2'));if(_0x4370c2[_0xe762('0xba')]==='yes'){this[_0xe762('0xd')]['noop'](_0xe762('0x1b3'));return this[_0xe762('0xd')][_0xe762('0xba')]();}return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x1b4'));};AGIVertices[_0xe762('0x10')]['subproject']=function(_0x3350d6){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SUBPROJECT\x20(%s)\x20block',_0x3350d6[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3350d6[_0xe762('0x1b5')])){return this[_0xe762('0xd')]['error'](_0x3350d6,_0xe762('0x1b6'));}var _0x549859=this[_0xe762('0x17')][_0xe762('0x6f')](this,_0x3350d6[_0xe762('0x1b5')]);if(!this[_0xe762('0x88')](_0x549859)){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3350d6,util[_0xe762('0x28')](_0xe762('0x1b7'),_0x3350d6[_0xe762('0x1b5')]));}if(_0x549859===this[_0xe762('0xd')][_0xe762('0x39')]){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3350d6,_0xe762('0x1b8'));}this['createSquareDetailsReport']['sync'](this,_0x3350d6,_0x549859);var _0x3dda87=this[_0xe762('0xd')]['exec']('AGI',util[_0xe762('0x28')]('agi://%s/square,\x22%s\x22,\x22%s\x22',config['agi'][_0xe762('0x19a')]||_0xe762('0x1b9'),_0x549859,this['channel'][_0xe762('0x39')]));if(_0x3dda87[_0xe762('0xaa')]===-0x1){return _0x3dda87;}return this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0xc3'),_0xe762('0x1ba'),_0x549859));};AGIVertices[_0xe762('0x10')][_0xe762('0x1bb')]=function(_0x4e9c0e){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SYSTEM\x20(%s)\x20block',_0x4e9c0e['label']));var _0x13f3b9=this[_0xe762('0x54')][_0xe762('0x6f')](this,_0x4e9c0e[_0xe762('0xb6')]);this['createSquareDetailsReport'][_0xe762('0x6f')](this,_0x4e9c0e,_0x4e9c0e[_0xe762('0xb6')]);if(this[_0xe762('0x88')](_0x4e9c0e[_0xe762('0xd9')])){var _0xd1c4a8=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x4e9c0e[_0xe762('0xd9')]);if(_0xd1c4a8){this['channel'][_0xe762('0x9f')](_0xd1c4a8,_0x13f3b9);return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1bc'),_0x4e9c0e['command'],_0xd1c4a8));}}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1bd'),_0x4e9c0e[_0xe762('0xb6')]));};AGIVertices[_0xe762('0x10')][_0xe762('0x1be')]=function(_0x503ef2){logger['info'](util[_0xe762('0x28')](_0xe762('0x1bf'),_0x503ef2[_0xe762('0x37')]));_0x503ef2[_0xe762('0x62')]=_0x503ef2[_0xe762('0x62')][_0xe762('0x57')](/(\r\n|\n|\r)/gm,'\x20');if(!this['isConfigured'](_0x503ef2[_0xe762('0x59')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x1c0'));}if(!this[_0xe762('0x88')](_0x503ef2[_0xe762('0x62')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c1'),_0x503ef2['text']));var _0x38b0c9=this[_0xe762('0x58')][_0xe762('0x6f')](this,_0x503ef2);if(_0x38b0c9){this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c2'),_0x38b0c9));var _0x486f35=this[_0xe762('0xd')][_0xe762('0x100')](_0x38b0c9);try{fs[_0xe762('0x101')](_0x38b0c9+'.wav');}catch(_0x12028e){logger[_0xe762('0x2b')](_0x12028e);}return _0x486f35;}return this['channel']['error'](_0x503ef2,_0xe762('0x1c3'));};AGIVertices[_0xe762('0x10')][_0xe762('0x1c4')]=function(_0x50bb43){logger[_0xe762('0x2d')](util['format'](_0xe762('0x1c5'),_0x50bb43['label']));_0x50bb43[_0xe762('0x62')]=_0x50bb43['text']['replace'](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xe762('0x88')](_0x50bb43[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c6'),_0x50bb43[_0xe762('0x62')]));var _0x2ec502=this[_0xe762('0x61')][_0xe762('0x6f')](this,_0x50bb43);if(_0x2ec502){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c7'),_0x2ec502));var _0x34c291=this[_0xe762('0xd')][_0xe762('0x100')](_0x2ec502);try{fs['unlink'](_0x2ec502+_0xe762('0x102'));}catch(_0x15cc86){logger['error'](_0x15cc86);}return _0x34c291;}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x50bb43,'Google\x20TTS\x20is\x20unreachable');};AGIVertices[_0xe762('0x10')][_0xe762('0x1c8')]=function(_0x189c11){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x1c9'),_0x189c11[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x189c11['findBy'])){return this[_0xe762('0xd')]['error'](_0x189c11,_0xe762('0x158'));}logger['info'](util[_0xe762('0x28')](_0xe762('0x159'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11[_0xe762('0x157')]));var _0x76039b=this[_0xe762('0x50')]['sync'](this,_0x189c11['findBy']);if(_0x76039b){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11[_0xe762('0x157')]));this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11['findBy']));return{'code':0xc8,'result':_0xe762('0x15c')};}else{logger[_0xe762('0x2d')](util[_0xe762('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11[_0xe762('0x157')]));this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xe762('0xd')]['callerid'],_0x189c11[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15e')};}};AGIVertices[_0xe762('0x10')][_0xe762('0x1ca')]=function(_0x41b54d){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x41b54d['label']));var _0x52e550=this[_0xe762('0xd')][_0xe762('0x55')]('VOICEMAIL',[_0x41b54d['mailbox'],_0x41b54d[_0xe762('0x79')]]);if(_0x52e550[_0xe762('0xaa')]===-0x1){return _0x52e550;}return this['channel']['noop'](util[_0xe762('0x28')](_0xe762('0xc3'),_0xe762('0x1cb'),_0x41b54d['mailbox']));};AGIVertices['prototype'][_0xe762('0x1cc')]=function(_0x353c2d){logger['info'](util[_0xe762('0x28')](_0xe762('0x1cd'),_0x353c2d[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x353c2d[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x353c2d,_0xe762('0x1af'));}var _0x41ec5d=this['getVariable'][_0xe762('0x6f')](this,_0x353c2d[_0xe762('0xd9')]);if(!_0x41ec5d){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x353c2d,_0xe762('0xdb'));}var _0x289cdc=this[_0xe762('0xd')][_0xe762('0x11')](_0x41ec5d);return{'code':0xc8,'result':_0x289cdc['extra']?_0x289cdc[_0xe762('0xa4')]:'-'};};String[_0xe762('0x10')]['replaceAll']=function(_0x42bf2e,_0x1d8f57){return this['split'](_0x42bf2e)[_0xe762('0x1ce')](_0x1d8f57);};module[_0xe762('0x1cf')]=AGIVertices;
\ No newline at end of file
+var _0x91ac=['math\x20%s','%s[%s]','variable\x20%s[key]\x20set','menu','Enter\x20in\x20MENU\x20(%s)\x20block','no\x20file\x20audio\x20found','getData','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','agentPause','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','PLAYBACK','Executed\x20command\x20%s\x20%s','queue','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','XMCS-QUEUE','macro','QUEUE','record','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s/recordings/%s.%s','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','restapi','Enter\x20in\x20RESTAPI\x20(%s)\x20block','no\x20url\x20configured','Response:','%s_STATUS_CODE','200','%s_STATUS_MESSAGE','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','sayDigits','digits','replace','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','sayphonetic','sayPhonetic','sendMail','no\x20mail\x20account\x20configured','getMailAccount','Smtp','\x22%s\x22\x20<%s>','email','user','bcc','subject','service','host','port','secure','authentication','auth','pass','template_id','account_id','Trying\x20SendMail\x20with\x20account\x20%s','Enter\x20in\x20SENDFAX\x20(%s)\x20block','SENDFAX\x20block\x20not\x20implemented','sms_account_id','no\x20sms\x20account\x20found','sms_text','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','no\x20variable\x20selected','variable_value','start','Enter\x20in\x20START\x20(%s)\x20block','START\x20CALLY\x20SQUARE','Answer','Skipped\x20Answer','subproject','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','127.0.0.1','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','command','sh\x20command:\x20%s\x20result\x20no\x20stored','google_cloud_tts','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','no\x20apiKey\x20configured','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20%s\x20file\x20created','Google\x20Cloud\x20TTS\x20is\x20unreachable','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','Google\x20TTS\x20is\x20unreachable','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','VOICEMAIL','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','replaceAll','join','exports','path','lodash','shelljs','odbc','randomstring','moment','mustache','../../config/logger','agi','/var/opt/motion2/server/files','getsecretdigits','channel','rpc','prototype','getVariable','getVariableById','then','name','catch','getVoiceQueue','getVoiceQueueById','getSquareProject','getSquareProjectById','getSquareOdbc','dsn','getUser','getUserById','getTrunk','getTrunkById','getSoundPath','save_name','getMailAccountById','mailRpc','sendMailMessage','getIntervals','getIntervalById','IntervalId','interval','map','Intervals','format','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','ODBC\x20connection\x20successfully','close','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','uniqueid','label','arg_1','createSquareRecording','context','accountcode','dnid','file','createSquareMessage','createCmContact','isEmpty','isNil','random','lastName','phone','scheduledAt','callback','Callback\x20scheduled\x20at\x20','toString','callback_priority','getPause','getPauseById','agent','callerid','agentUnpause','agentLogout','internal','%s/%s@from-sip/n','LOCAL','shellCommand','trim','googleCloudTTS','google_cloud_tts_text_type','text','languageCode','en-US','ssmlGender','MALE','MP3','googleTTS','restAPI','url','method','timeout','number','includes','POST','PUT','toUpperCase','rawBody','parse','rawHeaders','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','sync','uri','render','headers','stringify','body','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusCode','statusMessage','message','options','googleDialogflow','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','client_email','private_key','sestekNDA','ispeechTTS','ispeech_tts_language','speed','ispeechASR','isConfigured','model','awsPolly','aws_access_key_id','aws_polly_region','aws_polly_voice','Amy','aws_text_type','awsLex','aws_bot_name','google_asr_language','tildeASR','appsecret','agicommand','clone','isString','replaceObjectAllVariables','replaceAllVariables','recursiveNodeIndex','isPlainObject','isArray','hasOwnProperty','saveRestApiResult','%s.%s','length','setVariable','split','extra','getAndSetVariable','result','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','maxRetry','mrcpsynth','Enter\x20in\x20MRCPSynth\x20(%s)\x20block','noop','exec','MRCPSynth','mrcprecog','no\x20grammar\x20configured','grammar','MRCPRecog','RECOG_CONFIDENCE()','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','args','Wait\x20%s\x20seconds\x20before\x20answer','wait','answer','Enter\x20in\x20CALLBACK\x20(%s)\x20block','list_id','no\x20list\x20selected','delay','add','minutes','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','application','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','no\x20text\x20configured','Executed\x20command\x20MRCPSynth\x20%s','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_TRANSCRIPT','RECOG_INSTANCE()','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','SESTEK_ASR_INSTANCE','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','no\x20database\x20selected','query','query:\x20%s','variable_id','no\x20variable\x20found','forEach','keys','%s_ROWS_COUNT','variable\x20%s\x20set','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','no\x20user\x20selected','no\x20user\x20found','DIAL','SIP/%s','opts','Executed\x20command\x20%s','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','speech','Dialogflow\x20Result\x20%s','Dialogflow\x20is\x20unreachable','dialogflowV2','Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block','dialogflowV2_language','Trying\x20DialogflowV2:\x20%s','providerResponse','out','DialogflowV2\x20Result\x20%s','DialogflowV2\x20is\x20unreachable','sesteknda','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','username','no\x20username\x20configured','no\x20password\x20configured','bot','SESTEK_NDA_%s','audiofile','Sestek\x20NDA\x20%s\x20file\x20created','streamFile','.wav','SestekNDA\x20Result\x20%s','SestekNDA\x20is\x20unreachable','Enter\x20in\x20END\x20(%s)\x20block','end','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','SIP/%s/%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','retry','file_id','no\x20file\x20audio\x20selected','getSound','no\x20variable\x20selected\x20for\x20the\x20result','response','mindigit','maxdigit','hiddendigitsnum','generate','hiddendigitspos','first','substr','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','getdigits','Enter\x20in\x20GOAL\x20(%s)\x20block','GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','aws_secret_access_key','no\x20valid\x20credentials\x20configured','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','unlink','awslex','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','Trying\x20Amazon\x20Lex:\x20%s','AWS_LEX_%s','Amazon\x20Lex\x20ready\x20for\x20fulfillment','amazonlex','googleasr','wav','%s/recordings/%s','NOBEEP','intKey','google\x20%s\x20file\x20created','googleASR','GoogleASR\x20Result\x20%s','Enter\x20in\x20TILDEASR\x20(%s)\x20block','appid','no\x20appid\x20configured','no\x20appsecret\x20configured','tilde\x20%s\x20file\x20created','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','extension','priority','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','EVAL\x20CONDITION\x20%s\x20%s','false','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','no\x20interval\x20configured','interval_id','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','beep','recordFile','ispeech\x20%s\x20file\x20created','IspeechASR\x20Result\x20%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Trying\x20ispeech\x20TTS\x20%s','ispeech\x20TTS\x20is\x20unreachable','Enter\x20in\x20LOGIN\x20(%s)\x20block','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','findBy','agentLogin','AGENT\x20%s\x20FOUND\x20BY','success','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','logout','Enter\x20in\x20LOGOUT\x20(%s)\x20block','math','operation','no\x20operation\x20configured'];(function(_0x3ec698,_0x4998f9){var _0x307590=function(_0x291421){while(--_0x291421){_0x3ec698['push'](_0x3ec698['shift']());}};_0x307590(++_0x4998f9);}(_0x91ac,0x73));var _0xc91a=function(_0x386836,_0x35b7fc){_0x386836=_0x386836-0x0;var _0x395f19=_0x91ac[_0x386836];return _0x395f19;};'use strict';var fs=require('fs');var path=require(_0xc91a('0x0'));var util=require('util');var _=require(_0xc91a('0x1'));var sh=require(_0xc91a('0x2'));var odbc=require(_0xc91a('0x3'))();var rs=require(_0xc91a('0x4'));var moment=require(_0xc91a('0x5'));var Mustache=require(_0xc91a('0x6'));var rp=require('request-promise');var logger=require(_0xc91a('0x7'))(_0xc91a('0x8'));var config=require('../../config/environment');var scripts=require('./scripts');var FILES_PATH=_0xc91a('0x9');var recursiveMapAttributes=['rawHeaders','rawBody'];var verticesWithRetry=['menu','getdigits',_0xc91a('0xa')];var AGIVertices=function(_0x29b0d7,_0x45e998,_0x5e69cf){this[_0xc91a('0xb')]=_0x29b0d7;this[_0xc91a('0xc')]=_0x45e998;this['mailRpc']=_0x5e69cf;};AGIVertices[_0xc91a('0xd')][_0xc91a('0xe')]=function(_0x3c0024,_0xf37914){this['rpc'][_0xc91a('0xf')](_0x3c0024)[_0xc91a('0x10')](function(_0x4eadc9){_0xf37914(null,_0x4eadc9?_0x4eadc9[_0xc91a('0x11')]:![]);})[_0xc91a('0x12')](function(_0x44402b){_0xf37914(_0x44402b);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x13')]=function(_0x1fabef,_0x195648){this['rpc'][_0xc91a('0x14')](_0x1fabef)[_0xc91a('0x10')](function(_0x587c7f){_0x195648(null,_0x587c7f?_0x587c7f[_0xc91a('0x11')]:![]);})['catch'](function(_0x11623b){_0x195648(_0x11623b);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x15')]=function(_0x5450f1,_0x16c746){this['rpc'][_0xc91a('0x16')](_0x5450f1)[_0xc91a('0x10')](function(_0x1694fe){_0x16c746(null,_0x1694fe?_0x1694fe[_0xc91a('0x11')]:![]);})[_0xc91a('0x12')](function(_0x32f0fd){_0x16c746(_0x32f0fd);});};AGIVertices['prototype'][_0xc91a('0x17')]=function(_0x18fab1,_0x5563ed){this[_0xc91a('0xc')]['getSquareOdbcById'](_0x18fab1)[_0xc91a('0x10')](function(_0x598349){_0x5563ed(null,_0x598349?_0x598349[_0xc91a('0x18')]:![]);})[_0xc91a('0x12')](function(_0x460e08){_0x5563ed(_0x460e08);});};AGIVertices['prototype'][_0xc91a('0x19')]=function(_0x4677fd,_0xec263c){this[_0xc91a('0xc')][_0xc91a('0x1a')](_0x4677fd)[_0xc91a('0x10')](function(_0x253b7d){_0xec263c(null,_0x253b7d?_0x253b7d[_0xc91a('0x11')]:![]);})['catch'](function(_0x137273){_0xec263c(_0x137273);});};AGIVertices['prototype'][_0xc91a('0x1b')]=function(_0x59a73b,_0x5df36b){this['rpc'][_0xc91a('0x1c')](_0x59a73b)[_0xc91a('0x10')](function(_0x2d4ac5){_0x5df36b(null,_0x2d4ac5?_0x2d4ac5[_0xc91a('0x11')]:![]);})['catch'](function(_0x37480b){_0x5df36b(_0x37480b);});};AGIVertices[_0xc91a('0xd')]['getSound']=function(_0x4246fb,_0x5f31ef){var _0x102215=this;this['rpc']['getSoundById'](_0x4246fb)[_0xc91a('0x10')](function(_0x1ae5b6){_0x5f31ef(null,_0x1ae5b6?_0x102215[_0xc91a('0x1d')](_0x1ae5b6[_0xc91a('0x1e')]):![]);})[_0xc91a('0x12')](function(_0x39e474){_0x5f31ef(_0x39e474);});};AGIVertices[_0xc91a('0xd')]['getMailAccount']=function(_0x1a91f9,_0x46d485){this[_0xc91a('0xc')][_0xc91a('0x1f')](_0x1a91f9)[_0xc91a('0x10')](function(_0xe9f5fe){_0x46d485(null,_0xe9f5fe?_0xe9f5fe:![]);})[_0xc91a('0x12')](function(_0x475e51){_0x46d485(_0x475e51);});};AGIVertices[_0xc91a('0xd')]['sendMailMessage']=function(_0x1192bd,_0x7eda35,_0x583b1c){this[_0xc91a('0x20')][_0xc91a('0x21')](_0x1192bd,_0x7eda35)['then'](function(){_0x583b1c(null);})[_0xc91a('0x12')](function(_0x18c5ec){_0x583b1c(_0x18c5ec);});};AGIVertices['prototype'][_0xc91a('0x22')]=function(_0x4ebad4,_0x11f588){this['rpc'][_0xc91a('0x23')](_0x4ebad4)[_0xc91a('0x10')](function(_0x4a9021){if(_0x4a9021){if(_0x4a9021[_0xc91a('0x24')]){_0x11f588(null,[_0x4a9021[_0xc91a('0x25')]]);}else{_0x11f588(null,_[_0xc91a('0x26')](_0x4a9021[_0xc91a('0x27')],'interval'));}}else{_0x11f588(null,![]);}})[_0xc91a('0x12')](function(_0x3d3787){_0x11f588(_0x3d3787);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1d')]=function(_0x5b0781){return util[_0xc91a('0x28')]('%s/sounds/converted/%s',FILES_PATH,_0x5b0781);};AGIVertices[_0xc91a('0xd')]['getQueryOdbc']=function(_0xfb3a26,_0x1c6671,_0x2a928c){odbc[_0xc91a('0x29')](_0xfb3a26,function(_0x8a1941){if(_0x8a1941){logger[_0xc91a('0x2a')](_0xc91a('0x2b'),_0x8a1941);_0x2a928c(_0x8a1941);}else{logger[_0xc91a('0x2c')](_0xc91a('0x2d'));odbc['query'](_0x1c6671,function(_0xb967e4,_0x16f0e6){if(_0xb967e4){logger['info']('Error\x20executing\x20query\x20%s',_0x1c6671);_0x2a928c(_0xb967e4);}else{logger['info']('Query\x20executed\x20correctly\x20%s',_0x1c6671);odbc[_0xc91a('0x2e')](function(_0x2b1fab){if(_0x2b1fab){logger['error'](_0xc91a('0x2f'),_0x2b1fab);}_0x2a928c(null,_0x16f0e6);});}});}});};AGIVertices['prototype'][_0xc91a('0x30')]=function(_0x3d5452,_0x5331e7){this[_0xc91a('0xc')][_0xc91a('0x31')](_0x3d5452)['then'](function(_0x28765c){_0x5331e7(null,_0x28765c?_0x28765c:![]);})[_0xc91a('0x12')](function(_0x349c48){_0x5331e7(_0x349c48);});};AGIVertices[_0xc91a('0xd')]['createSmsMessage']=function(_0x100c68,_0x4896a1){this['rpc'][_0xc91a('0x32')](_0x100c68)['then'](function(_0x1349cd){_0x4896a1(null,_0x1349cd);})[_0xc91a('0x12')](function(_0x1fd567){_0x4896a1(_0x1fd567);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x33')]=function(_0x3758cc,_0x3254f2,_0x122620){this[_0xc91a('0xc')][_0xc91a('0x33')]({'uniqueid':this[_0xc91a('0xb')][_0xc91a('0x34')],'node':_0x3758cc[_0xc91a('0x35')],'application':_0x3758cc['agicommand'],'data':_0x3254f2||null,'project_name':this[_0xc91a('0xb')][_0xc91a('0x36')],'callerid':this[_0xc91a('0xb')]['callerid']})[_0xc91a('0x10')](function(_0x146ebc){if(_0x122620){_0x122620(null,_0x146ebc);}})[_0xc91a('0x12')](function(_0x978c26){if(_0x122620){_0x122620(_0x978c26);}});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x37')]=function(_0x3bc2e3,_0x59417b,_0x1ef063,_0x5bb2ca){this[_0xc91a('0xc')]['createSquareRecording']({'uniqueid':this['channel'][_0xc91a('0x34')],'callerid':this[_0xc91a('0xb')]['callerid'],'calleridname':this[_0xc91a('0xb')]['calleridname'],'context':this['channel'][_0xc91a('0x38')],'extension':this['channel']['extension'],'priority':this['channel']['priority'],'accountcode':this['channel'][_0xc91a('0x39')],'dnid':this[_0xc91a('0xb')][_0xc91a('0x3a')],'projectName':this[_0xc91a('0xb')][_0xc91a('0x36')],'saveName':_0x59417b,'filename':_0x3bc2e3[_0xc91a('0x3b')]||_0x59417b,'savePath':_0x1ef063})[_0xc91a('0x10')](function(_0xaf2e7f){_0x5bb2ca(null,_0xaf2e7f);})[_0xc91a('0x12')](function(_0x532f75){_0x5bb2ca(_0x532f75);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x3c')]=function(_0x295b94,_0x5f29a8,_0x3773c3,_0x5b8e7e,_0x37132f){this[_0xc91a('0xc')][_0xc91a('0x3c')]({'uniqueid':this[_0xc91a('0xb')][_0xc91a('0x34')],'body':_0x295b94,'direction':_0x5f29a8,'providerName':_0x3773c3,'providerResponse':_0x5b8e7e})[_0xc91a('0x10')](function(_0x159598){if(_0x37132f){_0x37132f(null,_0x159598);}})[_0xc91a('0x12')](function(_0x205330){if(_0x37132f){_0x37132f(_0x205330);}});};AGIVertices['prototype']['createCmContact']=function(_0x13eb96,_0x33bebe){this['rpc'][_0xc91a('0x3d')]({'firstName':_[_0xc91a('0x3e')](_0x13eb96[_0xc91a('0x11')])||_[_0xc91a('0x3f')](_0x13eb96[_0xc91a('0x11')])?'callback_'+Math[_0xc91a('0x40')]():_0x13eb96['name'],'lastName':_[_0xc91a('0x3e')](_0x13eb96[_0xc91a('0x41')])||_['isNil'](_0x13eb96[_0xc91a('0x41')])?null:_0x13eb96[_0xc91a('0x41')],'phone':_0x13eb96[_0xc91a('0x42')],'ListId':_0x13eb96['list_id'],'scheduledat':_0x13eb96[_0xc91a('0x43')],'callbackUniqueid':this['channel'][_0xc91a('0x34')],'tags':_0xc91a('0x44'),'description':_0xc91a('0x45')+_0x13eb96[_0xc91a('0x43')][_0xc91a('0x46')](),'priority':_0x13eb96[_0xc91a('0x47')]})[_0xc91a('0x10')](function(_0x50af2e){_0x33bebe(null,_0x50af2e);})[_0xc91a('0x12')](function(_0x2aa0ad){_0x33bebe(_0x2aa0ad);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x48')]=function(_0xf8d7f6,_0x55bebf){this['rpc'][_0xc91a('0x49')](_0xf8d7f6)['then'](function(_0x5a94bb){_0x55bebf(null,_0x5a94bb?_0x5a94bb['name']:![]);})[_0xc91a('0x12')](function(_0x337882){_0x55bebf(_0x337882);});};AGIVertices[_0xc91a('0xd')]['agentPause']=function(_0x102191,_0x47c2e3,_0x197546){var _0x5e3080={'role':_0xc91a('0x4a')};_0x5e3080[_0x102191]=this[_0xc91a('0xb')]['callerid'];this[_0xc91a('0xc')]['agentPause'](_0x5e3080,_0x47c2e3,this[_0xc91a('0xb')][_0xc91a('0x34')])[_0xc91a('0x10')](function(_0x1fb7e2){_0x197546(null,_[_0xc91a('0x3f')](_0x1fb7e2)?![]:!![]);})[_0xc91a('0x12')](function(_0x5a5403){logger['error'](_0x5a5403);_0x197546(null,![]);});};AGIVertices[_0xc91a('0xd')]['agentUnpause']=function(_0x1f8096,_0x25f255){var _0x4c760c={'role':_0xc91a('0x4a')};_0x4c760c[_0x1f8096]=this['channel'][_0xc91a('0x4b')];this[_0xc91a('0xc')][_0xc91a('0x4c')](_0x4c760c)[_0xc91a('0x10')](function(_0x395258){_0x25f255(null,_[_0xc91a('0x3f')](_0x395258)?![]:!![]);})[_0xc91a('0x12')](function(_0x3b0b3f){logger[_0xc91a('0x2a')](_0x3b0b3f);_0x25f255(null,![]);});};AGIVertices['prototype'][_0xc91a('0x4d')]=function(_0x5d68ce,_0x57f676){var _0x4e7b85={'role':_0xc91a('0x4a')};_0x4e7b85[_0x5d68ce]=this['channel'][_0xc91a('0x4b')];this[_0xc91a('0xc')][_0xc91a('0x4d')](_0x4e7b85)[_0xc91a('0x10')](function(_0x38eec3){_0x57f676(null,_['isNil'](_0x38eec3)?![]:!![]);})[_0xc91a('0x12')](function(_0x1471f0){logger[_0xc91a('0x2a')](_0x1471f0);_0x57f676(null,![]);});};AGIVertices[_0xc91a('0xd')]['agentLogin']=function(_0x728cdd,_0x2c8cb9){var _0x2605cc={'role':_0xc91a('0x4a')};_0x2605cc[_0x728cdd]=this[_0xc91a('0xb')][_0xc91a('0x4b')];var _0x1428ab=_0x728cdd!=_0xc91a('0x4e')?util['format'](_0xc91a('0x4f'),_0xc91a('0x50'),this[_0xc91a('0xb')][_0xc91a('0x4b')]):undefined;this[_0xc91a('0xc')]['agentLogin'](_0x2605cc,_0x1428ab)[_0xc91a('0x10')](function(_0x3a3dea){_0x2c8cb9(null,_[_0xc91a('0x3f')](_0x3a3dea)?![]:!![]);})[_0xc91a('0x12')](function(_0x30efac){logger['error'](_0x30efac);_0x2c8cb9(null,![]);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x51')]=function(_0x18cac0,_0x28f501){sh['exec'](_[_0xc91a('0x52')](_0x18cac0),function(_0x2acfee,_0x33bbc0){var _0xc4111=_0x33bbc0['replace'](/(\r\n|\n|\r)/gm,'');_0x28f501(null,_0xc4111);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x53')]=function(_0x280d9c,_0x41e471){scripts[_0xc91a('0x53')](_0x280d9c['apiKey'],_0x280d9c[_0xc91a('0x54')]||_0xc91a('0x55'),_0x280d9c[_0xc91a('0x55')],_0x280d9c[_0xc91a('0x56')]||_0xc91a('0x57'),_0x280d9c[_0xc91a('0x58')]||_0xc91a('0x59'),_0x280d9c['audioEncoding']||_0xc91a('0x5a'))[_0xc91a('0x10')](function(_0x52954e){_0x41e471(null,_0x52954e);})['catch'](function(_0xec24dc){_0x41e471(_0xec24dc);});};AGIVertices['prototype'][_0xc91a('0x5b')]=function(_0x2c9cca,_0x172939){scripts[_0xc91a('0x5b')](_0x2c9cca[_0xc91a('0x55')],_0x2c9cca['google_tts_language']||'en',0x1)[_0xc91a('0x10')](function(_0x2c2da9){_0x172939(null,_0x2c2da9);})[_0xc91a('0x12')](function(_0x39fb84){_0x172939(_0x39fb84);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x5c')]=function(_0x3fbcf5,_0x2cffdc){var _0x369249={'uri':_0x3fbcf5[_0xc91a('0x5d')],'method':_0x3fbcf5[_0xc91a('0x5e')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x3fbcf5[_0xc91a('0x5f')])===_0xc91a('0x60')&&parseInt(_0x3fbcf5['timeout'])>=0x1?parseInt(_0x3fbcf5['timeout'])*0x3e8:0x5*0x3e8};if(_[_0xc91a('0x61')]([_0xc91a('0x62'),_0xc91a('0x63')],_0x369249[_0xc91a('0x5e')][_0xc91a('0x64')]())){try{_0x369249['body']=_0x3fbcf5[_0xc91a('0x65')]?JSON[_0xc91a('0x66')](_0x3fbcf5['rawBody']):{};}catch(_0x147f40){logger['error']('An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function',_0x147f40);}}try{_0x369249['headers']=_0x3fbcf5[_0xc91a('0x67')]?JSON[_0xc91a('0x66')](_0x3fbcf5['rawHeaders']):{};}catch(_0x416644){logger[_0xc91a('0x2a')](_0xc91a('0x68'),_0x416644);}if(_0x3fbcf5[_0xc91a('0x69')]){try{var _0x275631=require(_0x3fbcf5[_0xc91a('0x69')])[_0xc91a('0x6a')](this,_0x369249);_0x369249[_0xc91a('0x6b')]=Mustache[_0xc91a('0x6c')](_0x3fbcf5['url'],_0x275631,{},['$$','$$']);if(_0x369249[_0xc91a('0x6d')]){_0x369249[_0xc91a('0x6d')]=JSON[_0xc91a('0x66')](Mustache['render'](JSON[_0xc91a('0x6e')](_0x369249[_0xc91a('0x6d')]),_0x275631,{},['$$','$$']));}if(_0x369249['body']){_0x369249['body']=JSON[_0xc91a('0x66')](Mustache[_0xc91a('0x6c')](JSON[_0xc91a('0x6e')](_0x369249[_0xc91a('0x6f')]),_0x275631,{},['$$','$$']));}}catch(_0x512fa8){logger[_0xc91a('0x2a')](_0xc91a('0x70'),_0x512fa8);}}rp(_0x369249)['then'](function(_0x5177aa){var _0xe202b1={'statusCode':_0x5177aa[_0xc91a('0x71')]||0xc8,'statusMessage':_0x5177aa[_0xc91a('0x72')]||'OK','headers':_0x5177aa[_0xc91a('0x6d')]||{},'body':_0x5177aa[_0xc91a('0x6f')]||{}};_0x2cffdc(null,_0xe202b1);})['catch'](function(_0x42a689){var _0x5e778e={'statusCode':_0x42a689[_0xc91a('0x71')]||0x1f4,'statusMessage':_0x42a689[_0xc91a('0x73')]||'500\x20-\x20Internal\x20Server\x20Error','headers':_0x42a689[_0xc91a('0x74')][_0xc91a('0x6d')]||{},'body':_0x42a689[_0xc91a('0x74')][_0xc91a('0x6f')]||{}};_0x2cffdc(null,_0x5e778e);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x75')]=function(_0x2c7087,_0x62dffb){scripts[_0xc91a('0x75')](this[_0xc91a('0xb')][_0xc91a('0x34')],_0x2c7087[_0xc91a('0x76')],_0x2c7087['text'],_0x2c7087[_0xc91a('0x77')]||'en')[_0xc91a('0x10')](function(_0x1a2636){_0x62dffb(null,_0x1a2636);})['catch'](function(_0x3cb37b){_0x62dffb(_0x3cb37b);});};AGIVertices['prototype'][_0xc91a('0x78')]=function(_0x3af8e1,_0x1a451d){scripts[_0xc91a('0x78')](this[_0xc91a('0xb')][_0xc91a('0x34')],_0x3af8e1[_0xc91a('0x79')],_0x3af8e1[_0xc91a('0x7a')],_0x3af8e1[_0xc91a('0x7b')],_0x3af8e1[_0xc91a('0x55')],_0x3af8e1['dialogflowV2_language']||'en')[_0xc91a('0x10')](function(_0x269db2){_0x1a451d(null,_0x269db2);})[_0xc91a('0x12')](function(_0x1a6bbe){_0x1a451d(_0x1a6bbe);});};AGIVertices['prototype'][_0xc91a('0x7c')]=function(_0x397992,_0x521e83){scripts[_0xc91a('0x7c')](this[_0xc91a('0xb')],_0x397992)[_0xc91a('0x10')](function(_0x59b5ea){_0x521e83(null,_0x59b5ea);})['catch'](function(_0x2da228){_0x521e83(_0x2da228);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x7d')]=function(_0x3d73f1,_0x6abc6f){scripts[_0xc91a('0x7d')](_0x3d73f1[_0xc91a('0x76')],_0x3d73f1[_0xc91a('0x55')],_0x3d73f1[_0xc91a('0x7e')]||_0xc91a('0x57'),_0x3d73f1[_0xc91a('0x7f')])[_0xc91a('0x10')](function(_0x2a1e35){_0x6abc6f(null,_0x2a1e35);})[_0xc91a('0x12')](function(_0x3abe03){_0x6abc6f(_0x3abe03);});};AGIVertices['prototype'][_0xc91a('0x80')]=function(_0x59611f,_0x325d66,_0x5f2e41){scripts['ispeechASR'](_0x325d66,_0x59611f['key'],_0x59611f['ispeech_asr_language']||_0xc91a('0x57'),this[_0xc91a('0x81')](_0x59611f[_0xc91a('0x82')])?_0x59611f[_0xc91a('0x82')]:undefined)[_0xc91a('0x10')](function(_0x1bf544){_0x5f2e41(null,_0x1bf544);})[_0xc91a('0x12')](function(_0x5148db){_0x5f2e41(_0x5148db);});};AGIVertices['prototype'][_0xc91a('0x83')]=function(_0x3089da,_0x331f96){scripts[_0xc91a('0x83')](_0x3089da[_0xc91a('0x84')],_0x3089da['aws_secret_access_key'],_0x3089da[_0xc91a('0x85')],_0x3089da[_0xc91a('0x86')]||_0xc91a('0x87'),_0x3089da[_0xc91a('0x55')],_0x3089da[_0xc91a('0x88')]||_0xc91a('0x55'))['then'](function(_0x3aaeb7){_0x331f96(null,_0x3aaeb7);})[_0xc91a('0x12')](function(_0x22c30d){_0x331f96(_0x22c30d);});};AGIVertices['prototype'][_0xc91a('0x89')]=function(_0x1a44ca,_0xa036e){scripts['awsLex'](this['channel'][_0xc91a('0x34')],_0x1a44ca[_0xc91a('0x84')],_0x1a44ca['aws_secret_access_key'],_0x1a44ca['aws_lex_region'],_0x1a44ca[_0xc91a('0x55')],_0x1a44ca[_0xc91a('0x8a')])[_0xc91a('0x10')](function(_0x407d9d){_0xa036e(null,_0x407d9d);})[_0xc91a('0x12')](function(_0x4abe89){_0xa036e(_0x4abe89);});};AGIVertices[_0xc91a('0xd')]['googleASR']=function(_0x738363,_0x56437e,_0x320229){scripts['googleASR'](_0x56437e,_0x738363[_0xc91a('0x76')],_0x738363[_0xc91a('0x8b')]||_0xc91a('0x57'))[_0xc91a('0x10')](function(_0x178ea6){_0x320229(null,_0x178ea6);})[_0xc91a('0x12')](function(_0x33ed3e){_0x320229(_0x33ed3e);});};AGIVertices[_0xc91a('0xd')][_0xc91a('0x8c')]=function(_0x390479,_0x19bbba,_0x3d3539){scripts[_0xc91a('0x8c')](_0x19bbba,_0x390479['appid'],_0x390479[_0xc91a('0x8d')],_0x390479[_0xc91a('0x6b')])[_0xc91a('0x10')](function(_0x3179c8){_0x3d3539(null,_0x3179c8);})[_0xc91a('0x12')](function(_0x151ba1){_0x3d3539(_0x151ba1);});};AGIVertices['prototype']['clear']=function(_0x3be648){var _0x40f67b=_[_0xc91a('0x61')](verticesWithRetry,_0x3be648[_0xc91a('0x8e')])?_0x3be648:_[_0xc91a('0x8f')](_0x3be648);for(var _0x327552 in _0x40f67b){if(_0x40f67b['hasOwnProperty'](_0x327552)){if(_0x40f67b[_0x327552]&&_[_0xc91a('0x90')](_0x40f67b[_0x327552])){if(_[_0xc91a('0x61')](recursiveMapAttributes,_0x327552)){_0x40f67b[_0x327552]=this[_0xc91a('0x91')](_0x40f67b[_0x327552]);}else{_0x40f67b[_0x327552]=this[_0xc91a('0x92')](_0x40f67b[_0x327552]);}}}}return _0x40f67b;};AGIVertices[_0xc91a('0xd')][_0xc91a('0x93')]=function(_0x2f4dcc){for(var _0x35569b in _0x2f4dcc){if(_0x2f4dcc['hasOwnProperty'](_0x35569b)){if(_[_0xc91a('0x94')](_0x2f4dcc[_0x35569b])){this[_0xc91a('0x93')](_0x2f4dcc[_0x35569b]);}else if(_[_0xc91a('0x95')](_0x2f4dcc[_0x35569b])){for(var _0x366051=0x0;_0x366051<_0x2f4dcc[_0x35569b]['length'];_0x366051++){this[_0xc91a('0x93')](_0x2f4dcc[_0x35569b][_0x366051]);}}else if(_['isString'](_0x2f4dcc[_0x35569b])){_0x2f4dcc[_0x35569b]=this[_0xc91a('0x92')](_0x2f4dcc[_0x35569b]);}}}};AGIVertices['prototype']['saveRestApiResult']=function(_0x8cb9cd,_0x3e72ab){for(var _0x383bf0 in _0x8cb9cd){if(_0x8cb9cd[_0xc91a('0x96')](_0x383bf0)){if(_[_0xc91a('0x94')](_0x8cb9cd[_0x383bf0])){if(!_['isEmpty'](_0x8cb9cd[_0x383bf0])){this[_0xc91a('0x97')](_0x8cb9cd[_0x383bf0],util['format'](_0xc91a('0x98'),_0x3e72ab,_0x383bf0));}}else if(_['isArray'](_0x8cb9cd[_0x383bf0])){for(var _0x186be4=0x0;_0x186be4<_0x8cb9cd[_0x383bf0][_0xc91a('0x99')];_0x186be4++){this['saveRestApiResult'](_0x8cb9cd[_0x383bf0][_0x186be4],util['format'](_0xc91a('0x98'),_0x3e72ab,_0x383bf0+'['+_0x186be4+']'));}}else{if(!_[_0xc91a('0x3f')](_0x8cb9cd[_0x383bf0])){this[_0xc91a('0xb')][_0xc91a('0x9a')](util[_0xc91a('0x28')]('%s.%s',_0x3e72ab,_0x383bf0),_0x8cb9cd[_0x383bf0]);}}}}};AGIVertices[_0xc91a('0xd')][_0xc91a('0x91')]=function(_0x42421d){try{var _0x356d5c=JSON[_0xc91a('0x66')](_0x42421d);this['recursiveNodeIndex'](_0x356d5c);return JSON[_0xc91a('0x6e')](_0x356d5c);}catch(_0x258570){return this[_0xc91a('0x92')](_0x42421d);}};AGIVertices[_0xc91a('0xd')]['replaceAllVariables']=function(_0x19576b){var _0x106a33=_0x19576b[_0xc91a('0x9b')]('{');for(var _0x235a3b=0x1;_0x235a3b<_0x106a33[_0xc91a('0x99')];_0x235a3b+=0x1){var _0x7bc3f2=_0x106a33[_0x235a3b][_0xc91a('0x9b')]('}');if(_0x7bc3f2[_0xc91a('0x99')]>0x1){_0x19576b=_0x19576b['replaceAll']('{'+_0x7bc3f2[0x0]+'}',this['channel'][_0xc91a('0xe')](_0x7bc3f2[0x0])[_0xc91a('0x9c')]||_0x7bc3f2[0x0]);}}if(_0x106a33[_0xc91a('0x99')]===0x1){return _0x19576b[_0xc91a('0x46')]();}return this[_0xc91a('0x92')](_0x19576b);};AGIVertices[_0xc91a('0xd')][_0xc91a('0x9d')]=function(_0x120048,_0x381040){var _0x31ae23=this['channel'][_0xc91a('0xe')](_0x120048);if(_0x31ae23[_0xc91a('0x9e')]===-0x1){return _0x31ae23;}logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x9f'),_0x381040,_0x31ae23[_0xc91a('0x9c')]));return this[_0xc91a('0xb')][_0xc91a('0x9a')](_0x381040,_0x31ae23[_0xc91a('0x9c')]);};AGIVertices[_0xc91a('0xd')]['isConfigured']=function(_0x3c1e1f){return _0x3c1e1f&&_0x3c1e1f!=='0'&&_0x3c1e1f!=='-1'&&_0x3c1e1f!=='';};AGIVertices[_0xc91a('0xd')][_0xc91a('0xa0')]=function(_0x33116b){this[_0xc91a('0x33')][_0xc91a('0x6a')](this,_0x33116b,'-');_0x33116b['retry']=_0x33116b[_0xc91a('0xa0')];return{'code':0xc8,'result':'-'};};AGIVertices[_0xc91a('0xd')][_0xc91a('0xa1')]=function(_0x3d5a10){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xa2'),_0x3d5a10[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x3d5a10['text'])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20text\x20configured');}var _0x46ccc4='\x22'+_0x3d5a10['text']+'\x22';if(this[_0xc91a('0x81')](_0x3d5a10[_0xc91a('0x74')])){_0x46ccc4+=','+_0x3d5a10[_0xc91a('0x74')];}var _0x35194f=this[_0xc91a('0xb')][_0xc91a('0xa4')](_0xc91a('0xa5'),_0x46ccc4);if(_0x35194f[_0xc91a('0x9e')]===-0x1){return _0x35194f;}return this[_0xc91a('0xb')]['noop'](util['format']('Executed\x20command\x20MRCPSynth\x20%s',_0x46ccc4));};AGIVertices['prototype'][_0xc91a('0xa6')]=function(_0x3ffac7){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')]('Enter\x20in\x20MRCPRecog\x20(%s)\x20block',_0x3ffac7['label']));if(!this['isConfigured'](_0x3ffac7['grammar'])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0xa7'));}var _0x158303=_0x3ffac7[_0xc91a('0xa8')];if(this[_0xc91a('0x81')](_0x3ffac7['options'])){_0x158303+=','+_0x3ffac7[_0xc91a('0x74')];}var _0x4fb79c=this[_0xc91a('0xb')][_0xc91a('0xa4')](_0xc91a('0xa9'),_0x158303);if(_0x4fb79c[_0xc91a('0x9e')]===-0x1){return _0x4fb79c;}var _0x1858e4=this['getAndSetVariable'](_0xc91a('0xaa'),'MRCP_RECOG_CONFIDENCE');if(_0x1858e4[_0xc91a('0x9e')]===-0x1){return _0x1858e4;}var _0x448746=this[_0xc91a('0x9d')](_0xc91a('0xab'),_0xc91a('0xac'));if(_0x448746[_0xc91a('0x9e')]===-0x1){return _0x448746;}var _0xd3ab01=this[_0xc91a('0x9d')]('RECOG_INSTANCE()','MRCP_RECOG_INSTANCE');if(_0xd3ab01[_0xc91a('0x9e')]===-0x1){return _0xd3ab01;}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')]('Executed\x20command\x20MRCPRecog\x20%s',_0x158303));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x8')]=function(_0x319332){logger['info'](util[_0xc91a('0x28')]('Enter\x20in\x20AGI\x20(%s)\x20block',_0x319332['label']));return this['channel'][_0xc91a('0x8')]([_0x319332['command'],_0x319332[_0xc91a('0xad')]]);};AGIVertices[_0xc91a('0xd')]['answer']=function(_0x589b74){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')]('Enter\x20in\x20ANSWER\x20(%s)\x20block',_0x589b74[_0xc91a('0x35')]));if(this[_0xc91a('0x81')](_0x589b74[_0xc91a('0x5f')])){logger['info'](util[_0xc91a('0x28')](_0xc91a('0xae'),_0x589b74[_0xc91a('0x5f')]));var _0x408cdd=this['channel'][_0xc91a('0xaf')](_0x589b74[_0xc91a('0x5f')]);if(_0x408cdd['result']===-0x1){return _0x408cdd;}}return this[_0xc91a('0xb')][_0xc91a('0xb0')]();};AGIVertices[_0xc91a('0xd')][_0xc91a('0x44')]=function(_0x42a36a){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xb1'),_0x42a36a[_0xc91a('0x35')]));if(!this['isConfigured'](_0x42a36a[_0xc91a('0xb2')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x42a36a,_0xc91a('0xb3'));}_0x42a36a[_0xc91a('0x43')]=moment();if(this[_0xc91a('0x81')](_0x42a36a[_0xc91a('0xb4')])){_0x42a36a[_0xc91a('0x43')]=moment()[_0xc91a('0xb5')](_0x42a36a[_0xc91a('0xb4')],_0xc91a('0xb6'));}if(!this[_0xc91a('0x81')](_0x42a36a['callback_priority'])){_0x42a36a['callback_priority']=0x2;}this[_0xc91a('0x3d')]['sync'](this,_0x42a36a);return this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0xb7'),_0x42a36a[_0xc91a('0x42')],_0x42a36a[_0xc91a('0xb2')],_0x42a36a[_0xc91a('0x43')]));};AGIVertices[_0xc91a('0xd')]['custom_app']=function(_0x4790e4){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xb8'),_0x4790e4[_0xc91a('0x35')]));var _0x120559=this['channel'][_0xc91a('0xa4')](_0x4790e4[_0xc91a('0xb9')],_0x4790e4['options']);if(_0x120559[_0xc91a('0x9e')]===-0x1){return _0x120559;}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')]('Executed\x20command\x20%s\x20%s',_0x4790e4[_0xc91a('0xb9')],_0x4790e4['options']));};AGIVertices['prototype'][_0xc91a('0xba')]=function(_0x31d1ad){logger[_0xc91a('0x2c')](util['format'](_0xc91a('0xbb'),_0x31d1ad[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x31d1ad[_0xc91a('0x55')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xbc'));}var _0x44c49d='\x22'+_0x31d1ad[_0xc91a('0x55')]+'\x22';if(this['isConfigured'](_0x31d1ad['options'])){_0x44c49d+=','+_0x31d1ad[_0xc91a('0x74')];}var _0x233c36=this[_0xc91a('0xb')][_0xc91a('0xa4')](_0xc91a('0xa5'),_0x44c49d);if(_0x233c36[_0xc91a('0x9e')]===-0x1){return _0x233c36;}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0xbd'),_0x44c49d));};AGIVertices[_0xc91a('0xd')]['sestektts']=function(_0x4ad7ee){logger[_0xc91a('0x2c')](util['format'](_0xc91a('0xbe'),_0x4ad7ee[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x4ad7ee[_0xc91a('0x55')])){return this['channel']['noop'](_0xc91a('0xbc'));}var _0xa45797='\x22'+_0x4ad7ee[_0xc91a('0x55')]+'\x22';if(this[_0xc91a('0x81')](_0x4ad7ee[_0xc91a('0x74')])){_0xa45797+=','+_0x4ad7ee[_0xc91a('0x74')];}var _0x294e82=this[_0xc91a('0xb')]['exec'](_0xc91a('0xa5'),_0xa45797);if(_0x294e82['result']===-0x1){return _0x294e82;}return this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0xbd'),_0xa45797));};AGIVertices[_0xc91a('0xd')][_0xc91a('0xbf')]=function(_0x2d1c80){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xc0'),_0x2d1c80[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x2d1c80[_0xc91a('0xa8')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0xa7'));}var _0x30fd03=_0x2d1c80[_0xc91a('0xa8')];if(this[_0xc91a('0x81')](_0x2d1c80[_0xc91a('0x74')])){_0x30fd03+=','+_0x2d1c80['options'];}var _0x26a6ae=this[_0xc91a('0xb')][_0xc91a('0xa4')](_0xc91a('0xa9'),_0x30fd03);if(_0x26a6ae[_0xc91a('0x9e')]===-0x1){return _0x26a6ae;}var _0x1dc74d=this[_0xc91a('0x9d')](_0xc91a('0xaa'),_0xc91a('0xc1'));if(_0x1dc74d['result']===-0x1){return _0x1dc74d;}var _0xf45a82=this[_0xc91a('0x9d')](_0xc91a('0xab'),_0xc91a('0xc2'));if(_0xf45a82[_0xc91a('0x9e')]===-0x1){return _0xf45a82;}var _0x1e2e96=this['getAndSetVariable'](_0xc91a('0xc3'),'LUMENVOX_ASR_INSTANCE');if(_0x1e2e96[_0xc91a('0x9e')]===-0x1){return _0x1e2e96;}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x30fd03));};AGIVertices['prototype'][_0xc91a('0xc4')]=function(_0x5a9d0b){logger[_0xc91a('0x2c')](util['format'](_0xc91a('0xc5'),_0x5a9d0b[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x5a9d0b[_0xc91a('0xa8')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0xa7'));}var _0x1c3bf5=_0x5a9d0b[_0xc91a('0xa8')];if(this[_0xc91a('0x81')](_0x5a9d0b[_0xc91a('0x74')])){_0x1c3bf5+=','+_0x5a9d0b[_0xc91a('0x74')];}var _0xbccb0e=this[_0xc91a('0xb')][_0xc91a('0xa4')](_0xc91a('0xa9'),_0x1c3bf5);if(_0xbccb0e['result']===-0x1){return _0xbccb0e;}var _0x5ad2e6=this['getAndSetVariable']('RECOG_CONFIDENCE()',_0xc91a('0xc6'));if(_0x5ad2e6[_0xc91a('0x9e')]===-0x1){return _0x5ad2e6;}var _0x61fb69=this['getAndSetVariable'](_0xc91a('0xab'),_0xc91a('0xc7'));if(_0x61fb69[_0xc91a('0x9e')]===-0x1){return _0x61fb69;}var _0x518896=this[_0xc91a('0x9d')](_0xc91a('0xc3'),_0xc91a('0xc8'));if(_0x518896[_0xc91a('0x9e')]===-0x1){return _0x518896;}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x1c3bf5));};AGIVertices[_0xc91a('0xd')][_0xc91a('0xc9')]=function(_0x5afd26){logger['info'](util[_0xc91a('0x28')](_0xc91a('0xca'),_0x5afd26[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x5afd26[_0xc91a('0xcb')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x5afd26,_0xc91a('0xcc'));}var _0x1322cb=this[_0xc91a('0x17')][_0xc91a('0x6a')](this,_0x5afd26[_0xc91a('0xcb')]);if(!_0x1322cb){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x5afd26,'no\x20odbc\x20database\x20found');}if(!this['isConfigured'](_0x5afd26[_0xc91a('0xcd')])){return this[_0xc91a('0xb')]['error'](_0x5afd26,'no\x20query\x20configured');}var _0x433322=_0x5afd26[_0xc91a('0xcd')]['replace'](/(\r\n|\n|\r)/gm,'\x20');this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0xce'),_0x433322));var _0x194d89=this['getQueryOdbc'][_0xc91a('0x6a')](this,_0x1322cb,_0x433322);this[_0xc91a('0x33')]['sync'](this,_0x5afd26,_0x433322);if(!this['isConfigured'](_0x5afd26[_0xc91a('0xcf')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20variable\x20selected\x20for\x20the\x20result');}var _0x32dd3d=this['getVariable']['sync'](this,_0x5afd26[_0xc91a('0xcf')]);if(!_0x32dd3d){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x5afd26,_0xc91a('0xd0'));}var _0x147fb2=this;_0x194d89[_0xc91a('0xd1')](function(_0x33422d,_0x2585eb){Object[_0xc91a('0xd2')](_0x33422d)['forEach'](function(_0x2922ff){_0x147fb2[_0xc91a('0xb')]['setVariable'](util[_0xc91a('0x28')]('%s[%s][%s]',_0x32dd3d,_0x2585eb,_0x2922ff),_0x33422d[_0x2922ff]);});});this[_0xc91a('0xb')][_0xc91a('0x9a')](util['format'](_0xc91a('0xd3'),_0x32dd3d),_0x194d89[_0xc91a('0x99')]);return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0xd4'),_0x32dd3d));};AGIVertices[_0xc91a('0xd')]['dial']=function(_0x11d647){logger[_0xc91a('0xd5')](util[_0xc91a('0x28')](_0xc91a('0xd6'),_0x11d647[_0xc91a('0x35')]));if(!this['isConfigured'](_0x11d647['sip_id'])){return this[_0xc91a('0xb')]['error'](_0x11d647,_0xc91a('0xd7'));}var _0x5dbfba=this[_0xc91a('0x19')][_0xc91a('0x6a')](this,_0x11d647['sip_id']);if(!_0x5dbfba){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x11d647,_0xc91a('0xd8'));}var _0x65dd77=this[_0xc91a('0xb')][_0xc91a('0xa4')](_0xc91a('0xd9'),[util[_0xc91a('0x28')](_0xc91a('0xda'),_0x5dbfba),_0x11d647[_0xc91a('0x5f')],_0x11d647[_0xc91a('0xdb')],_0x11d647[_0xc91a('0x5d')]]);if(_0x65dd77[_0xc91a('0x9e')]===-0x1){return _0x65dd77;}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0xdc'),_0xc91a('0xd9')));};AGIVertices[_0xc91a('0xd')][_0xc91a('0xdd')]=function(_0x317887){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xde'),_0x317887[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x317887[_0xc91a('0x76')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0xdf'));}if(!this[_0xc91a('0x81')](_0x317887[_0xc91a('0x55')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xbc'));}this['channel']['bot']=!![];this['createSquareDetailsReport'](_0x317887);this[_0xc91a('0x3c')](_0x317887['text'],'in','','');this['channel']['noop'](util['format'](_0xc91a('0xe0'),_0x317887[_0xc91a('0x55')]));var _0x4af70e=this[_0xc91a('0x75')]['sync'](this,_0x317887);if(_0x4af70e){for(var _0x5d7fa5 in _0x4af70e){if(_0x4af70e[_0xc91a('0x96')](_0x5d7fa5)){this[_0xc91a('0xb')][_0xc91a('0x9a')](util[_0xc91a('0x28')](_0xc91a('0xe1'),_0x5d7fa5[_0xc91a('0x64')]()),_0x4af70e[_0x5d7fa5]);}}this['createSquareMessage'](_0x4af70e[_0xc91a('0xe2')],'out','dialogflow','');return this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format'](_0xc91a('0xe3'),_0x4af70e[_0xc91a('0xe2')]));}return this[_0xc91a('0xb')]['error'](_0x317887,_0xc91a('0xe4'));};AGIVertices['prototype'][_0xc91a('0xe5')]=function(_0x171b5d){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xe6'),_0x171b5d['label']));if(!this[_0xc91a('0x81')](_0x171b5d['dialogflowV2_project_id'])){return this[_0xc91a('0xb')]['noop']('no\x20project_id\x20configured');}if(!this[_0xc91a('0x81')](_0x171b5d['client_email'])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20client_email\x20configured');}if(!this[_0xc91a('0x81')](_0x171b5d[_0xc91a('0x7b')])){return this['channel'][_0xc91a('0xa3')]('no\x20private_key\x20configured');}if(!this[_0xc91a('0x81')](_0x171b5d[_0xc91a('0xe7')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20anguage\x20configured');}if(!this[_0xc91a('0x81')](_0x171b5d[_0xc91a('0x55')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xbc'));}this[_0xc91a('0xb')]['bot']=!![];this['createSquareDetailsReport'](_0x171b5d);this[_0xc91a('0x3c')](_0x171b5d[_0xc91a('0x55')],'in','','');this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0xe8'),_0x171b5d[_0xc91a('0x55')]));var _0x5d4ee2=this[_0xc91a('0x78')][_0xc91a('0x6a')](this,_0x171b5d);if(_0x5d4ee2){for(var _0xe976d2 in _0x5d4ee2){if(_0x5d4ee2['hasOwnProperty'](_0xe976d2)){if(_0xe976d2!==_0xc91a('0xe9')){this['channel'][_0xc91a('0x9a')](util[_0xc91a('0x28')](_0xc91a('0xe1'),_0xe976d2[_0xc91a('0x64')]()),_0x5d4ee2[_0xe976d2]);}}}this['createSquareMessage'](_0x5d4ee2[_0xc91a('0xe2')],_0xc91a('0xea'),_0xc91a('0xe5'),_0x5d4ee2[_0xc91a('0xe9')]);return this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0xeb'),_0x5d4ee2[_0xc91a('0xe2')]));}return this['channel'][_0xc91a('0x2a')](_0x171b5d,_0xc91a('0xec'));};AGIVertices[_0xc91a('0xd')][_0xc91a('0xed')]=function(_0x3006b1){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xee'),_0x3006b1['label']));if(!this[_0xc91a('0x81')](_0x3006b1['ndauth_url'])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20ndauth\x20url\x20configured');}if(!this['isConfigured'](_0x3006b1[_0xc91a('0xef')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xf0'));}if(!this['isConfigured'](_0x3006b1['password'])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xf1'));}if(!this[_0xc91a('0x81')](_0x3006b1['ndassistant_url'])){return this[_0xc91a('0xb')]['noop'](_0xc91a('0xbc'));}this['channel'][_0xc91a('0xf2')]=!![];this[_0xc91a('0x33')](_0x3006b1);this[_0xc91a('0x3c')](_0x3006b1[_0xc91a('0x55')],'in','','');this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format']('Trying\x20SestekNDA:\x20%s',_0x3006b1[_0xc91a('0x55')]));var _0x4ae24d=this[_0xc91a('0x7c')][_0xc91a('0x6a')](this,_0x3006b1);if(_0x4ae24d){for(var _0x289b4c in _0x4ae24d){if(_0x4ae24d[_0xc91a('0x96')](_0x289b4c)){this[_0xc91a('0xb')][_0xc91a('0x9a')](util['format'](_0xc91a('0xf3'),_0x289b4c[_0xc91a('0x64')]()),_0x4ae24d[_0x289b4c]);}}this[_0xc91a('0x3c')](_0x4ae24d[_0xc91a('0xe2')],_0xc91a('0xea'),_0xc91a('0xed'),'');if(_0x4ae24d[_0xc91a('0xf4')]){this['channel'][_0xc91a('0xa3')](util['format'](_0xc91a('0xf5'),_0x4ae24d[_0xc91a('0xf4')]));var _0x3d5989=this['channel'][_0xc91a('0xf6')](_0x4ae24d[_0xc91a('0xf4')]);try{fs['unlink'](_0x4ae24d['audiofile']+_0xc91a('0xf7'));}catch(_0x38dcac){logger[_0xc91a('0x2a')](_0x38dcac);}return _0x3d5989;}else{return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0xf8'),_0x4ae24d['speech']));}}return this['channel'][_0xc91a('0x2a')](_0x3006b1,_0xc91a('0xf9'));};AGIVertices['prototype']['end']=function(_0x8e983d){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xfa'),_0x8e983d[_0xc91a('0x35')]));return this[_0xc91a('0xb')]['noop'](_0xc91a('0xfb'));};AGIVertices[_0xc91a('0xd')]['ext_dial']=function(_0x599421){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0xfc'),_0x599421[_0xc91a('0x35')]));var _0x37e405='';if(_0x599421[_0xc91a('0xfd')]){if(!this[_0xc91a('0x81')](_0x599421[_0xc91a('0xfd')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x599421,_0xc91a('0xfe'));}else{var _0x4890f2=parseInt(_0x599421[_0xc91a('0xfd')],0xa);if(isNaN(_0x4890f2)){_0x37e405=_0x599421[_0xc91a('0xfd')];}else{_0x37e405=this[_0xc91a('0x1b')]['sync'](this,_0x599421[_0xc91a('0xfd')]);if(!_0x37e405){return this['channel'][_0xc91a('0x2a')](_0x599421,_0xc91a('0xff'));}}}}else if(_0x599421[_0xc91a('0x100')]){_0x37e405=_0x599421[_0xc91a('0x100')];}else{return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x599421,_0xc91a('0xfe'));}var _0x4c0d75=this[_0xc91a('0xb')][_0xc91a('0xa4')](_0xc91a('0xd9'),[util[_0xc91a('0x28')](_0xc91a('0x101'),_0x37e405,_0x599421['phone']),_0x599421[_0xc91a('0x5f')],_0x599421[_0xc91a('0xdb')],_0x599421[_0xc91a('0x5d')]]);if(_0x4c0d75[_0xc91a('0x9e')]===-0x1){return _0x4c0d75;}return this[_0xc91a('0xb')]['noop'](util['format'](_0xc91a('0xdc'),'DIAL'));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x102')]=function(_0x2e25f9){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x103'),_0x2e25f9[_0xc91a('0x35')]));return this[_0xc91a('0xb')]['noop']('finally');};AGIVertices['prototype']['getdigits']=function(_0x422ad1){logger['info'](util[_0xc91a('0x28')](_0xc91a('0x104'),_0x422ad1['label']));if(_0x422ad1['retry']===0x0){return this[_0xc91a('0xa0')](_0x422ad1);}_0x422ad1[_0xc91a('0x105')]-=0x1;if(!this['isConfigured'](_0x422ad1[_0xc91a('0x106')])){return this[_0xc91a('0xb')]['error'](_0x422ad1,_0xc91a('0x107'));}var _0x150341=this[_0xc91a('0x108')]['sync'](this,_0x422ad1[_0xc91a('0x106')]);if(!_0x150341){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x422ad1,'no\x20file\x20audio\x20found');}if(!this[_0xc91a('0x81')](_0x422ad1[_0xc91a('0xcf')])){return this[_0xc91a('0xb')]['error'](_0xc91a('0x109'));}var _0x160a1d=this[_0xc91a('0xb')]['getData'](_0x150341,_0x422ad1[_0xc91a('0x10a')],_0x422ad1['maxdigit']);var _0x5ef9ce=_0x160a1d['result']?_0x160a1d['result'][_0xc91a('0x46')]():'';logger[_0xc91a('0x2c')]('test',JSON[_0xc91a('0x6e')](_0x160a1d));if(_0x160a1d[_0xc91a('0x9e')]===-0x1){this[_0xc91a('0x33')][_0xc91a('0x6a')](this,_0x422ad1,_0x5ef9ce);return _0x160a1d;}else if(_0x160a1d[_0xc91a('0x9c')]===_0xc91a('0x5f')){_0x160a1d[_0xc91a('0x9e')]=_0x5ef9ce[_0xc91a('0x99')]>=parseInt(_0x422ad1[_0xc91a('0x10b')])?'x':'i';}else{_0x160a1d[_0xc91a('0x9e')]=_0x5ef9ce[_0xc91a('0x99')]>=parseInt(_0x422ad1[_0xc91a('0x10b')])&&_0x5ef9ce[_0xc91a('0x99')]<=parseInt(_0x422ad1[_0xc91a('0x10c')])?'x':'i';}var _0xfc0d7b=this[_0xc91a('0xe')][_0xc91a('0x6a')](this,_0x422ad1[_0xc91a('0xcf')]);if(!_0xfc0d7b){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x422ad1,_0xc91a('0xd0'));}this['channel']['setVariable'](_0xfc0d7b,_0x5ef9ce);if(this[_0xc91a('0x81')](_0x422ad1[_0xc91a('0x10d')])){var _0x76ceb1=parseInt(_0x422ad1[_0xc91a('0x10d')],0xa);var _0x5ee32e=rs[_0xc91a('0x10e')]({'charset':'*','length':_0x76ceb1});var _0x361369=_0x5ef9ce[_0xc91a('0x99')];if(_0x361369>0x0){if(_0x361369>_0x76ceb1){this['createSquareDetailsReport'][_0xc91a('0x6a')](this,_0x422ad1,_0x422ad1[_0xc91a('0x10f')]===_0xc91a('0x110')?_0x5ee32e+_0x5ef9ce[_0xc91a('0x111')](_0x76ceb1):_0x5ef9ce['substr'](0x0,_0x361369-_0x76ceb1)+_0x5ee32e);}else{this['createSquareDetailsReport'][_0xc91a('0x6a')](this,_0x422ad1,rs[_0xc91a('0x10e')]({'charset':'*','length':_0x361369}));}}else{this[_0xc91a('0x33')][_0xc91a('0x6a')](this,_0x422ad1,'');}}else{this[_0xc91a('0x33')][_0xc91a('0x6a')](this,_0x422ad1,_0x5ef9ce);}return _0x160a1d;};AGIVertices[_0xc91a('0xd')][_0xc91a('0xa')]=function(_0x5f5772){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x112'),_0x5f5772[_0xc91a('0x35')]));return this[_0xc91a('0x113')](_0x5f5772);};AGIVertices[_0xc91a('0xd')]['goal']=function(_0x5c1137){logger['info'](util['format'](_0xc91a('0x114'),_0x5c1137[_0xc91a('0x35')]));this[_0xc91a('0x33')][_0xc91a('0x6a')](this,_0x5c1137,_0x5c1137['goalname']);return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x115'),_0x5c1137['goalname']));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x116')]=function(_0x5bce10){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x117'),_0x5bce10[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x5bce10[_0xc91a('0x84')])||!this['isConfigured'](_0x5bce10[_0xc91a('0x118')])){return this['channel']['noop'](_0xc91a('0x119'));}if(!this['isConfigured'](_0x5bce10[_0xc91a('0x55')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20text\x20configured');}this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x11a'),_0x5bce10[_0xc91a('0x55')]));var _0x176d0a=this[_0xc91a('0x83')][_0xc91a('0x6a')](this,_0x5bce10);if(_0x176d0a){this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x11b'),_0x176d0a));var _0x5a4a69=this['channel'][_0xc91a('0xf6')](_0x176d0a);try{fs[_0xc91a('0x11c')](_0x176d0a+_0xc91a('0xf7'));}catch(_0x324914){logger[_0xc91a('0x2a')](_0x324914);}return _0x5a4a69;}return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x5bce10,'aws\x20Polly\x20is\x20unreachable');};AGIVertices['prototype'][_0xc91a('0x11d')]=function(_0x1384d2){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x11e'),_0x1384d2[_0xc91a('0x35')]));if(!this['isConfigured'](_0x1384d2[_0xc91a('0x84')])||!this[_0xc91a('0x81')](_0x1384d2[_0xc91a('0x118')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0x119'));}if(!this[_0xc91a('0x81')](_0x1384d2[_0xc91a('0x8a')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20bot\x20name\x20configured');}if(!this[_0xc91a('0x81')](_0x1384d2[_0xc91a('0x55')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20text\x20configured');}this[_0xc91a('0xb')]['bot']=!![];this[_0xc91a('0x33')](_0x1384d2);this[_0xc91a('0x3c')](_0x1384d2['text'],'in','','');this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x11f'),_0x1384d2['text']));var _0x110628=this[_0xc91a('0x89')][_0xc91a('0x6a')](this,_0x1384d2);if(_0x110628){for(var _0x423647 in _0x110628){if(_0x110628[_0xc91a('0x96')](_0x423647)&&_[_0xc91a('0x90')](_0x110628[_0x423647])){this['channel'][_0xc91a('0x9a')](util[_0xc91a('0x28')](_0xc91a('0x120'),_0x423647[_0xc91a('0x64')]()),_0x110628[_0x423647]);}}if(_['isNil'](_0x110628[_0xc91a('0x73')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0x121'));}else{this[_0xc91a('0x3c')](_0x110628[_0xc91a('0x73')],_0xc91a('0xea'),_0xc91a('0x122'),'');return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')]('Amazon\x20Lex\x20Result\x20%s',_0x110628[_0xc91a('0x73')]));}}return this['channel']['error'](_0x1384d2,'Amazon\x20Lex\x20is\x20unreachable');};AGIVertices[_0xc91a('0xd')][_0xc91a('0x123')]=function(_0x42eb9a){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')]('Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s',_0x42eb9a['label'],_0x42eb9a[_0xc91a('0x5f')]));if(!this[_0xc91a('0x81')](_0x42eb9a[_0xc91a('0x76')])){return this[_0xc91a('0xb')]['noop'](_0xc91a('0xdf'));}var _0xda16ab=_0xc91a('0x124');var _0x1fd555=util[_0xc91a('0x28')](_0xc91a('0x125'),FILES_PATH,rs['generate'](0x4));var _0x2b449a=util[_0xc91a('0x28')](_0xc91a('0x98'),_0x1fd555,_0xda16ab);var _0x556c23=!![];if(_0x42eb9a['beep']===_0xc91a('0x126')){_0x556c23=![];}var _0x34af85=this[_0xc91a('0xb')]['recordFile'](_0x1fd555,_0xda16ab,_0x42eb9a[_0xc91a('0x127')],_0x42eb9a[_0xc91a('0x5f')],undefined,_0x556c23);if(_0x34af85[_0xc91a('0x9e')]!==-0x1){this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format'](_0xc91a('0x128'),_0x2b449a));var _0x300204=this[_0xc91a('0x129')][_0xc91a('0x6a')](this,_0x42eb9a,_0x2b449a);if(_0x300204){for(var _0x5e12c9 in _0x300204){if(_0x300204[_0xc91a('0x96')](_0x5e12c9)){this[_0xc91a('0xb')][_0xc91a('0x9a')](util[_0xc91a('0x28')]('GOOGLE_ASR_%s',_0x5e12c9['toUpperCase']()),_0x300204[_0x5e12c9]);}}return this['channel']['noop'](util[_0xc91a('0x28')](_0xc91a('0x12a'),JSON[_0xc91a('0x6e')](_0x300204)));}}return _0x34af85;};AGIVertices[_0xc91a('0xd')]['tildeasr']=function(_0xbe75d9){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x12b'),_0xbe75d9[_0xc91a('0x35')]));if(!this['isConfigured'](_0xbe75d9[_0xc91a('0x12c')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0x12d'));}if(!this[_0xc91a('0x81')](_0xbe75d9[_0xc91a('0x8d')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0x12e'));}var _0x450283=_0xc91a('0x124');var _0x17c431=util[_0xc91a('0x28')](_0xc91a('0x125'),FILES_PATH,rs[_0xc91a('0x10e')](0x4));var _0xf3cb0c=util[_0xc91a('0x28')](_0xc91a('0x98'),_0x17c431,_0x450283);var _0xb0a1f=!![];if(_0xbe75d9['beep']===_0xc91a('0x126')){_0xb0a1f=![];}var _0x3a8ed5=this[_0xc91a('0xb')]['recordFile'](_0x17c431,_0x450283,_0xbe75d9[_0xc91a('0x127')],_0xbe75d9[_0xc91a('0x5f')],undefined,_0xb0a1f);if(_0x3a8ed5[_0xc91a('0x9e')]!==-0x1){this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x12f'),_0xf3cb0c));var _0x3ada4c=this[_0xc91a('0x8c')][_0xc91a('0x6a')](this,_0xbe75d9,_0xf3cb0c);if(_0x3ada4c){for(var _0x3f5456 in _0x3ada4c){if(_0x3ada4c[_0xc91a('0x96')](_0x3f5456)){this[_0xc91a('0xb')][_0xc91a('0x9a')](util[_0xc91a('0x28')]('TILDE_ASR_%s',_0x3f5456[_0xc91a('0x64')]()),_0x3ada4c[_0x3f5456]);}}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')]('TildeASR\x20Result\x20%s',JSON[_0xc91a('0x6e')](_0x3ada4c)));}}return _0x3a8ed5;};AGIVertices[_0xc91a('0xd')][_0xc91a('0x130')]=function(_0x107d71){logger['info'](util[_0xc91a('0x28')](_0xc91a('0x131'),_0x107d71[_0xc91a('0x35')]));return this[_0xc91a('0xb')][_0xc91a('0x132')](_0x107d71[_0xc91a('0x38')],_0x107d71[_0xc91a('0x133')],_0x107d71[_0xc91a('0x134')]);};AGIVertices[_0xc91a('0xd')][_0xc91a('0x135')]=function(_0x109f4f){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x136'),_0x109f4f[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x109f4f[_0xc91a('0x137')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x109f4f,_0xc91a('0x138'));}try{var _0x3fa881=eval(_0x109f4f[_0xc91a('0x137')])?_0xc91a('0x139'):'false';this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x13a'),_0x109f4f[_0xc91a('0x137')],_0x3fa881));return{'code':0xc8,'result':_0x3fa881};}catch(_0x4498db){return{'code':0xc8,'result':_0xc91a('0x13b')};}};AGIVertices[_0xc91a('0xd')]['gotoiftime']=function(_0x1a0e5c){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x13c'),_0x1a0e5c['label']));if(!this[_0xc91a('0x81')](_0x1a0e5c['interval_id'])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x1a0e5c,_0xc91a('0x13d'));}var _0x4f6d73=this[_0xc91a('0x22')][_0xc91a('0x6a')](this,_0x1a0e5c[_0xc91a('0x13e')]);if(!_0x4f6d73){return this['channel']['error'](_0x1a0e5c,_0xc91a('0x13f'));}for(var _0x29db26=0x0;_0x29db26<_0x4f6d73[_0xc91a('0x99')];_0x29db26+=0x1){var _0x2d127a=this[_0xc91a('0xb')]['getVariable'](util['format'](_0xc91a('0x140'),_0x4f6d73[_0x29db26]));if(_0x2d127a[_0xc91a('0x9e')]===-0x1){return _0x2d127a;}logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x141'),_0x4f6d73[_0x29db26],_0x2d127a[_0xc91a('0x9c')]));if(_0x2d127a[_0xc91a('0x9c')]===_0xc91a('0x139')){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x141'),_0x4f6d73[_0x29db26],_0xc91a('0x139')));this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x141'),_0x4f6d73[_0x29db26],_0xc91a('0x139')));return{'code':0xc8,'result':_0xc91a('0x139')};}else{logger['info'](util[_0xc91a('0x28')](_0xc91a('0x141'),_0x4f6d73[_0x29db26],'false'));this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x141'),_0x4f6d73[_0x29db26],_0xc91a('0x13b')));}}return{'code':0xc8,'result':'false'};};AGIVertices[_0xc91a('0xd')][_0xc91a('0x142')]=function(_0x54b25b){logger[_0xc91a('0x2c')](util['format']('Enter\x20in\x20HANGUP\x20(%s)\x20block',_0x54b25b['label']));return this['channel']['hangup']();};AGIVertices[_0xc91a('0xd')][_0xc91a('0x143')]=function(_0x3f85f2){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x144'),_0x3f85f2[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x3f85f2[_0xc91a('0x76')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xdf'));}var _0x2d04b7=_0xc91a('0x124');var _0x5e3693=util['format']('%s/recordings/%s',FILES_PATH,rs[_0xc91a('0x10e')](0x4));var _0x534e5c=util[_0xc91a('0x28')](_0xc91a('0x98'),_0x5e3693,_0x2d04b7);var _0x4167e2=!![];if(_0x3f85f2[_0xc91a('0x145')]==='NOBEEP'){_0x4167e2=![];}var _0x2a0ca9=this[_0xc91a('0xb')][_0xc91a('0x146')](_0x5e3693,_0x2d04b7,_0x3f85f2[_0xc91a('0x127')],_0x3f85f2[_0xc91a('0x5f')],undefined,_0x4167e2);if(_0x2a0ca9[_0xc91a('0x9e')]!==-0x1){this['channel'][_0xc91a('0xa3')](util['format'](_0xc91a('0x147'),_0x534e5c));var _0xef3d9a=this[_0xc91a('0x80')][_0xc91a('0x6a')](this,_0x3f85f2,_0x534e5c);if(_0xef3d9a){for(var _0x139855 in _0xef3d9a){if(_0xef3d9a[_0xc91a('0x96')](_0x139855)){this[_0xc91a('0xb')]['setVariable'](util[_0xc91a('0x28')]('ISPEECH_ASR_%s',_0x139855[_0xc91a('0x64')]()),_0xef3d9a[_0x139855]);}}return this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format'](_0xc91a('0x148'),JSON[_0xc91a('0x6e')](_0xef3d9a)));}}return _0x2a0ca9;};AGIVertices[_0xc91a('0xd')][_0xc91a('0x149')]=function(_0x4156a4){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x14a'),_0x4156a4[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x4156a4[_0xc91a('0x76')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0xdf'));}if(!this[_0xc91a('0x81')](_0x4156a4[_0xc91a('0x55')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0xbc'));}this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format'](_0xc91a('0x14b'),_0x4156a4[_0xc91a('0x55')]));var _0xbe9278=this[_0xc91a('0x7d')]['sync'](this,_0x4156a4);if(_0xbe9278){this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0x147'),_0xbe9278));var _0x59fc9d=this[_0xc91a('0xb')][_0xc91a('0xf6')](_0xbe9278,_0x4156a4[_0xc91a('0x127')]);try{fs['unlink'](_0xbe9278+_0xc91a('0xf7'));}catch(_0xeec91){logger['error'](_0xeec91);}return _0x59fc9d;}return this[_0xc91a('0xb')]['error'](_0x4156a4,_0xc91a('0x14c'));};AGIVertices[_0xc91a('0xd')]['login']=function(_0xb15b90){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x14d'),_0xb15b90[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0xb15b90['findBy'])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0xb15b90,_0xc91a('0x14e'));}logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x14f'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0xb15b90[_0xc91a('0x150')]));var _0x52a543=this[_0xc91a('0x151')][_0xc91a('0x6a')](this,_0xb15b90[_0xc91a('0x150')]);if(_0x52a543){logger['info'](util[_0xc91a('0x28')](_0xc91a('0x152'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0xb15b90[_0xc91a('0x150')]));this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xc91a('0xb')][_0xc91a('0x4b')],_0xb15b90[_0xc91a('0x150')]));return{'code':0xc8,'result':_0xc91a('0x153')};}else{logger[_0xc91a('0x2c')](util['format'](_0xc91a('0x154'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0xb15b90[_0xc91a('0x150')]));this['channel']['noop'](util[_0xc91a('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this['channel'][_0xc91a('0x4b')],_0xb15b90[_0xc91a('0x150')]));return{'code':0xc8,'result':_0xc91a('0x155')};}};AGIVertices[_0xc91a('0xd')][_0xc91a('0x156')]=function(_0x276fa9){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x157'),_0x276fa9[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x276fa9['findBy'])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x276fa9,_0xc91a('0x14e'));}logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x14f'),this['channel'][_0xc91a('0x4b')],_0x276fa9[_0xc91a('0x150')]));var _0xa00ab9=this['agentLogout'][_0xc91a('0x6a')](this,_0x276fa9[_0xc91a('0x150')]);if(_0xa00ab9){logger['info'](util['format'](_0xc91a('0x152'),this[_0xc91a('0xb')]['callerid'],_0x276fa9[_0xc91a('0x150')]));this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x152'),this['channel'][_0xc91a('0x4b')],_0x276fa9[_0xc91a('0x150')]));return{'code':0xc8,'result':_0xc91a('0x153')};}else{logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x154'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0x276fa9[_0xc91a('0x150')]));this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x154'),this[_0xc91a('0xb')]['callerid'],_0x276fa9[_0xc91a('0x150')]));return{'code':0xc8,'result':_0xc91a('0x155')};}};AGIVertices[_0xc91a('0xd')][_0xc91a('0x158')]=function(_0x32e978){logger[_0xc91a('0x2c')](util['format']('Enter\x20in\x20MATH\x20(%s)\x20block',_0x32e978['label']));if(!this['isConfigured'](_0x32e978[_0xc91a('0x159')])){return this['channel'][_0xc91a('0x2a')](_0x32e978,_0xc91a('0x15a'));}this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x15b'),_0x32e978[_0xc91a('0x159')]));var _0x86431a=eval(_0x32e978[_0xc91a('0x159')]);if(!this[_0xc91a('0x81')](_0x32e978[_0xc91a('0xcf')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0x109'));}var _0x41c555=this['getVariable'][_0xc91a('0x6a')](this,_0x32e978[_0xc91a('0xcf')]);if(!_0x41c555){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x32e978,_0xc91a('0xd0'));}if(_[_0xc91a('0x95')](_0x86431a)){var _0x286118=this;_0x86431a[_0xc91a('0xd1')](function(_0x5308a4,_0xc1b790){_0x286118[_0xc91a('0xb')]['setVariable'](util[_0xc91a('0x28')](_0xc91a('0x15c'),_0x41c555,_0xc1b790),_0x5308a4);});return this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0x15d'),_0x41c555));}else{return this[_0xc91a('0xb')][_0xc91a('0x9a')](_0x41c555,_0x86431a);}};AGIVertices[_0xc91a('0xd')][_0xc91a('0x15e')]=function(_0x21eb3d){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x15f'),_0x21eb3d[_0xc91a('0x35')]));if(_0x21eb3d[_0xc91a('0x105')]===0x0){return this[_0xc91a('0xa0')](_0x21eb3d);}_0x21eb3d[_0xc91a('0x105')]-=0x1;if(!this[_0xc91a('0x81')](_0x21eb3d['file_id'])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x21eb3d,'no\x20file\x20audio\x20selected');}var _0x44ae06=this[_0xc91a('0x108')][_0xc91a('0x6a')](this,_0x21eb3d['file_id']);if(!_0x44ae06){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x21eb3d,_0xc91a('0x160'));}var _0x21d25e=this[_0xc91a('0xb')][_0xc91a('0x161')](_0x44ae06,_0x21eb3d[_0xc91a('0x10a')],_0x21eb3d[_0xc91a('0x162')]);var _0x34ba94=_0x21d25e[_0xc91a('0x9e')];if(_0x21d25e['result']===-0x1){this['createSquareDetailsReport'][_0xc91a('0x6a')](this,_0x21eb3d,'-1');return _0x21d25e;}else if(_0x21d25e[_0xc91a('0x9c')]===_0xc91a('0x5f')){_0x21d25e[_0xc91a('0x9e')]=_0x21d25e['result'][_0xc91a('0x99')]>0x0?_0x21d25e[_0xc91a('0x9e')]:'t';}else if(_[_0xc91a('0x3e')](_0x21d25e['result'])){_0x21d25e[_0xc91a('0x9e')]='#';_0x34ba94='#';}if(!this[_0xc91a('0x81')](_0x21eb3d[_0xc91a('0xcf')])){this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20variable\x20selected\x20for\x20the\x20result');}else{var _0x5387cf=this[_0xc91a('0xe')][_0xc91a('0x6a')](this,_0x21eb3d['variable_id']);if(!_0x5387cf){return this[_0xc91a('0xb')]['error'](_0x21eb3d,'no\x20variable\x20found');}this[_0xc91a('0xb')]['setVariable'](_0x5387cf,_0x34ba94);}this[_0xc91a('0x33')][_0xc91a('0x6a')](this,_0x21eb3d,_0x34ba94);return _0x21d25e;};AGIVertices[_0xc91a('0xd')][_0xc91a('0xa3')]=function(_0x329ae9){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x163'),_0x329ae9['label']));return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0x329ae9[_0xc91a('0x164')]||_0x329ae9[_0xc91a('0x35')]);};AGIVertices[_0xc91a('0xd')][_0xc91a('0x165')]=function(_0x25b439){logger[_0xc91a('0x2c')](util['format'](_0xc91a('0x166'),_0x25b439[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x25b439[_0xc91a('0x150')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x25b439,_0xc91a('0x14e'));}logger['info'](util[_0xc91a('0x28')](_0xc91a('0x14f'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0x25b439[_0xc91a('0x150')]));var _0x1465c8=this[_0xc91a('0x48')]['sync'](this,_0x25b439['pause_id']);var _0xf9027c=this[_0xc91a('0x167')][_0xc91a('0x6a')](this,_0x25b439[_0xc91a('0x150')],_0x1465c8);if(_0xf9027c){logger['info'](util[_0xc91a('0x28')](_0xc91a('0x152'),this['channel']['callerid'],_0x25b439[_0xc91a('0x150')]));this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0x152'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0x25b439[_0xc91a('0x150')]));return{'code':0xc8,'result':_0xc91a('0x153')};}else{logger[_0xc91a('0x2c')](util['format'](_0xc91a('0x154'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0x25b439[_0xc91a('0x150')]));this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x152'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0x25b439[_0xc91a('0x150')]));return{'code':0xc8,'result':_0xc91a('0x155')};}};AGIVertices[_0xc91a('0xd')][_0xc91a('0x168')]=function(_0x963938){logger[_0xc91a('0x2c')](util['format'](_0xc91a('0x169'),_0x963938[_0xc91a('0x35')]));if(!this['isConfigured'](_0x963938[_0xc91a('0x106')])){return this['channel'][_0xc91a('0x2a')](_0x963938,'no\x20file\x20audio\x20selected');}var _0x36c17e=this[_0xc91a('0x108')][_0xc91a('0x6a')](this,_0x963938[_0xc91a('0x106')]);if(!_0x36c17e){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x963938,'no\x20file\x20audio\x20found');}var _0x47f10f=this[_0xc91a('0xb')]['exec'](_0xc91a('0x16a'),[_0x36c17e,_0x963938[_0xc91a('0xdb')]]);if(_0x47f10f['result']===-0x1){return _0x47f10f;}return this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x16b'),_0xc91a('0x16a'),_0x36c17e));};AGIVertices['prototype'][_0xc91a('0x16c')]=function(_0x595c1b){logger['info'](util[_0xc91a('0x28')]('Enter\x20in\x20QUEUE\x20(%s)\x20block',_0x595c1b['label']));if(!this[_0xc91a('0x81')](_0x595c1b[_0xc91a('0x16d')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x595c1b,_0xc91a('0x16e'));}var _0x2b683e='';var _0x3a1c64=parseInt(_0x595c1b[_0xc91a('0x16d')],0xa);if(isNaN(_0x3a1c64)){_0x2b683e=_0x595c1b[_0xc91a('0x16d')];}else{_0x2b683e=this[_0xc91a('0x13')][_0xc91a('0x6a')](this,_0x595c1b['queue_id']);if(!_0x2b683e){return this['channel'][_0xc91a('0x2a')](_0x595c1b,_0xc91a('0x16f'));}}var _0x730c8e='';if(this[_0xc91a('0x81')](_0x595c1b[_0xc91a('0x106')])){var _0x188b9b=this[_0xc91a('0x108')][_0xc91a('0x6a')](this,_0x595c1b[_0xc91a('0x106')]);if(_0x188b9b){_0x730c8e=_0x188b9b;}}this['createSquareDetailsReport'][_0xc91a('0x6a')](this,_0x595c1b,_0x2b683e);if(_0x595c1b[_0xc91a('0xdb')][_0xc91a('0x170')]('x')<0x0){_0x595c1b[_0xc91a('0xdb')]+='x';}if(_0x595c1b[_0xc91a('0xdb')][_0xc91a('0x170')]('X')<0x0){_0x595c1b[_0xc91a('0xdb')]+='X';}this[_0xc91a('0xb')][_0xc91a('0x9a')](_0xc91a('0x171'),_0x2b683e?_0x2b683e['toLowerCase']():'');var _0xfabe10=this[_0xc91a('0xb')][_0xc91a('0xa4')]('QUEUE',[_0x2b683e,_0x595c1b[_0xc91a('0xdb')],_0x595c1b['url'],_0x730c8e,_0x595c1b['timeout'],_0x595c1b['agi'],_0x595c1b[_0xc91a('0x172')],_0x595c1b['gosub'],'',_0x595c1b['position']]);if(_0xfabe10['result']===-0x1){return _0xfabe10;}return this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')]('Executed\x20command\x20%s\x20%s',_0xc91a('0x173'),_0x2b683e));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x174')]=function(_0x3c48bc){logger[_0xc91a('0x2c')](util['format'](_0xc91a('0x175'),_0x3c48bc[_0xc91a('0x35')]));var _0x30d97d=_0x3c48bc[_0xc91a('0x176')]||_0xc91a('0x124');var _0x24d237=util['format']('%s_%s',this[_0xc91a('0xb')][_0xc91a('0x34')],rs['generate'](0x5));var _0x5b4532=util[_0xc91a('0x28')](_0xc91a('0x177'),FILES_PATH,_0x24d237,_0x30d97d);var _0xa85b23=util[_0xc91a('0x28')]('%s/recordings/%s',FILES_PATH,_0x24d237);this[_0xc91a('0x37')][_0xc91a('0x6a')](this,_0x3c48bc,_0x24d237,_0x5b4532);this[_0xc91a('0xb')]['setVariable'](_0xc91a('0x178'),_0x24d237);logger[_0xc91a('0x2c')](_0xc91a('0x179'),_0xa85b23,_0x30d97d,_0x3c48bc[_0xc91a('0x17a')],_0x3c48bc[_0xc91a('0x5f')]);return this[_0xc91a('0xb')][_0xc91a('0x146')](_0xa85b23,_0x30d97d,_0x3c48bc[_0xc91a('0x17a')],_0x3c48bc[_0xc91a('0x5f')],undefined,!![]);};AGIVertices[_0xc91a('0xd')][_0xc91a('0x17b')]=function(_0x34b397){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x17c'),_0x34b397['label']));if(!this[_0xc91a('0x81')](_0x34b397[_0xc91a('0x5d')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0x17d'));}var _0x4c5534=this[_0xc91a('0x5c')][_0xc91a('0x6a')](this,_0x34b397);logger['info'](util[_0xc91a('0x28')](_0xc91a('0x17e'),util['inspect'](_0x4c5534,{'showHidden':![],'depth':null})));if(!this['isConfigured'](_0x34b397[_0xc91a('0xcf')])){return this[_0xc91a('0xb')][_0xc91a('0xa3')]('no\x20variable\x20selected\x20for\x20the\x20response');}var _0x3156dd=this['getVariable'][_0xc91a('0x6a')](this,_0x34b397[_0xc91a('0xcf')]);if(!_0x3156dd){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x34b397,_0xc91a('0xd0'));}this[_0xc91a('0xb')][_0xc91a('0x9a')](util[_0xc91a('0x28')](_0xc91a('0x17f'),_0x3156dd),_0x4c5534[_0xc91a('0x71')]?_0x4c5534[_0xc91a('0x71')]:_0xc91a('0x180'));this['channel'][_0xc91a('0x9a')](util[_0xc91a('0x28')](_0xc91a('0x181'),_0x3156dd),_0x4c5534[_0xc91a('0x72')]?_0x4c5534[_0xc91a('0x72')]:'OK');if(_0x4c5534[_0xc91a('0x6f')]){try{this['saveRestApiResult'](_0x4c5534[_0xc91a('0x6f')],_0x3156dd);}catch(_0x4df061){logger[_0xc91a('0x2a')](util[_0xc91a('0x28')](_0xc91a('0x182'),_0x3156dd));}}return this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0xd4'),_0x3156dd));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x183')]=function(_0x69d7da){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x184'),_0x69d7da['label']));return this['channel'][_0xc91a('0x185')](_0x69d7da[_0xc91a('0x186')][_0xc91a('0x187')](/\s+/g,''),_0x69d7da[_0xc91a('0x17a')]);};AGIVertices[_0xc91a('0xd')]['saynumber']=function(_0x56b77d){logger['info'](util[_0xc91a('0x28')](_0xc91a('0x188'),_0x56b77d[_0xc91a('0x35')]));return this[_0xc91a('0xb')][_0xc91a('0x189')](_0x56b77d[_0xc91a('0x60')]['replace'](/\s+/g,''),_0x56b77d[_0xc91a('0x17a')]);};AGIVertices[_0xc91a('0xd')][_0xc91a('0x18a')]=function(_0x7177a4){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')]('Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block',_0x7177a4[_0xc91a('0x35')]));return this['channel'][_0xc91a('0x18b')](_0x7177a4[_0xc91a('0x55')],_0x7177a4[_0xc91a('0x17a')]);};AGIVertices['prototype'][_0xc91a('0x18c')]=function(_0x4fb109){logger['info'](util[_0xc91a('0x28')]('Enter\x20in\x20SENDMAIL\x20(%s)\x20block',_0x4fb109[_0xc91a('0x35')]));if(!this['isConfigured'](_0x4fb109['account_id'])){return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0x18d'));}var _0x5e6a3a=this[_0xc91a('0x18e')][_0xc91a('0x6a')](this,_0x4fb109['account_id']);if(!_0x5e6a3a||!_0x5e6a3a[_0xc91a('0x18f')]){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x4fb109,'no\x20mail\x20account\x20found');}var _0x970261={'from':util[_0xc91a('0x28')](_0xc91a('0x190'),_0x5e6a3a[_0xc91a('0x11')],_0x5e6a3a[_0xc91a('0x191')]||_0x5e6a3a[_0xc91a('0x18f')][_0xc91a('0x192')]),'to':_0x4fb109['to']||'','cc':_0x4fb109['cc']||'','bcc':_0x4fb109[_0xc91a('0x193')]||'','subject':_0x4fb109[_0xc91a('0x194')],'html':_0x4fb109[_0xc91a('0x55')],'text':_0x4fb109[_0xc91a('0x55')]};var _0x28902e={'tls':{'rejectUnauthorized':![]}};if(_0x5e6a3a[_0xc91a('0x18f')][_0xc91a('0x195')]){_0x28902e[_0xc91a('0x195')]=_0x5e6a3a[_0xc91a('0x18f')][_0xc91a('0x195')];}else{_0x28902e[_0xc91a('0x196')]=_0x5e6a3a['Smtp'][_0xc91a('0x196')];_0x28902e[_0xc91a('0x197')]=_0x5e6a3a['Smtp']['port'];_0x28902e[_0xc91a('0x198')]=_0x5e6a3a[_0xc91a('0x18f')][_0xc91a('0x198')];}if(_0x5e6a3a[_0xc91a('0x18f')][_0xc91a('0x199')]){_0x28902e[_0xc91a('0x19a')]={'user':_0x5e6a3a['Smtp'][_0xc91a('0x192')],'pass':_0x5e6a3a[_0xc91a('0x18f')][_0xc91a('0x19b')]};}if(this[_0xc91a('0x81')](_0x4fb109[_0xc91a('0x19c')])){}logger[_0xc91a('0xd5')]('sendMail\x20message',JSON[_0xc91a('0x6e')](_0x970261));this[_0xc91a('0x33')][_0xc91a('0x6a')](this,_0x4fb109,_0x4fb109[_0xc91a('0x19d')]);this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format'](_0xc91a('0x19e'),_0x5e6a3a[_0xc91a('0x11')]));this[_0xc91a('0x21')]['sync'](this,_0x28902e,_0x970261);return this['channel']['noop']('Mail\x20message\x20added\x20to\x20outgoing\x20process');};AGIVertices[_0xc91a('0xd')]['sendFax']=function(_0x5a98bd){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x19f'),_0x5a98bd[_0xc91a('0x35')]));return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0x1a0'));};AGIVertices[_0xc91a('0xd')]['sendSMS']=function(_0x144084){logger['info'](util['format']('Enter\x20in\x20SENDSMS\x20(%s)\x20block',_0x144084[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x144084['sms_account_id'])){return this['channel'][_0xc91a('0xa3')]('no\x20sms\x20account\x20configured');}var _0x242b56=this[_0xc91a('0x30')][_0xc91a('0x6a')](this,_0x144084[_0xc91a('0x1a1')]);if(!_0x242b56){return this['channel'][_0xc91a('0x2a')](_0x144084,_0xc91a('0x1a2'));}var _0x3af9ff={'body':_0x144084[_0xc91a('0x1a3')],'phone':_0x144084['to']||'','SmsAccountId':_0x242b56['id']};logger[_0xc91a('0xd5')](_0xc91a('0x1a4'),JSON[_0xc91a('0x6e')](_0x3af9ff));this[_0xc91a('0x33')]['sync'](this,_0x144084,_0x144084['sms_account_id']);this[_0xc91a('0xb')]['noop'](util['format'](_0xc91a('0x1a5'),_0x242b56[_0xc91a('0x11')]));this['createSmsMessage'][_0xc91a('0x6a')](this,_0x3af9ff);return this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0x1a6'));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1a7')]=function(_0x1e9c5a){logger[_0xc91a('0x2c')](util['format']('Enter\x20in\x20SET\x20(%s)\x20block',_0x1e9c5a[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x1e9c5a['variable_id'])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x1e9c5a,_0xc91a('0x1a8'));}var _0x44d80e=this[_0xc91a('0xe')][_0xc91a('0x6a')](this,_0x1e9c5a[_0xc91a('0xcf')]);if(!_0x44d80e){return this['channel'][_0xc91a('0x2a')](_0x1e9c5a,_0xc91a('0xd0'));}return this[_0xc91a('0xb')][_0xc91a('0x9a')](_0x44d80e,_0x1e9c5a[_0xc91a('0x1a9')]);};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1aa')]=function(_0x5eccac){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x1ab'),_0x5eccac[_0xc91a('0x35')]));this['channel']['noop'](_0xc91a('0x1ac'));if(_0x5eccac[_0xc91a('0xb0')]==='yes'){this[_0xc91a('0xb')][_0xc91a('0xa3')](_0xc91a('0x1ad'));return this['channel']['answer']();}return this['channel'][_0xc91a('0xa3')](_0xc91a('0x1ae'));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1af')]=function(_0x48da18){logger[_0xc91a('0x2c')](util['format']('Enter\x20in\x20SUBPROJECT\x20(%s)\x20block',_0x48da18[_0xc91a('0x35')]));if(!this['isConfigured'](_0x48da18[_0xc91a('0x1b0')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x48da18,_0xc91a('0x1b1'));}var _0x1cb7c9=this[_0xc91a('0x15')][_0xc91a('0x6a')](this,_0x48da18[_0xc91a('0x1b0')]);if(!this['isConfigured'](_0x1cb7c9)){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x48da18,util[_0xc91a('0x28')](_0xc91a('0x1b2'),_0x48da18['project_id']));}if(_0x1cb7c9===this[_0xc91a('0xb')][_0xc91a('0x36')]){return this[_0xc91a('0xb')]['error'](_0x48da18,_0xc91a('0x1b3'));}this[_0xc91a('0x33')]['sync'](this,_0x48da18,_0x1cb7c9);var _0x802369=this['channel'][_0xc91a('0xa4')](_0xc91a('0x1b4'),util[_0xc91a('0x28')]('agi://%s/square,\x22%s\x22,\x22%s\x22',config[_0xc91a('0x8')][_0xc91a('0x196')]||_0xc91a('0x1b5'),_0x1cb7c9,this['channel']['arg_1']));if(_0x802369[_0xc91a('0x9e')]===-0x1){return _0x802369;}return this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x16b'),_0xc91a('0x1b4'),_0x1cb7c9));};AGIVertices[_0xc91a('0xd')]['system']=function(_0x4d9e27){logger['info'](util[_0xc91a('0x28')]('Enter\x20in\x20SYSTEM\x20(%s)\x20block',_0x4d9e27['label']));var _0x5365b7=this[_0xc91a('0x51')][_0xc91a('0x6a')](this,_0x4d9e27['command']);this['createSquareDetailsReport'][_0xc91a('0x6a')](this,_0x4d9e27,_0x4d9e27['command']);if(this['isConfigured'](_0x4d9e27[_0xc91a('0xcf')])){var _0x1b8119=this[_0xc91a('0xe')][_0xc91a('0x6a')](this,_0x4d9e27[_0xc91a('0xcf')]);if(_0x1b8119){this[_0xc91a('0xb')][_0xc91a('0x9a')](_0x1b8119,_0x5365b7);return this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x1b6'),_0x4d9e27[_0xc91a('0x1b7')],_0x1b8119));}}return this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x1b8'),_0x4d9e27[_0xc91a('0x1b7')]));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1b9')]=function(_0x398ed7){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x1ba'),_0x398ed7[_0xc91a('0x35')]));_0x398ed7[_0xc91a('0x55')]=_0x398ed7['text'][_0xc91a('0x187')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xc91a('0x81')](_0x398ed7['apiKey'])){return this['channel']['noop'](_0xc91a('0x1bb'));}if(!this[_0xc91a('0x81')](_0x398ed7[_0xc91a('0x55')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xbc'));}this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x1bc'),_0x398ed7['text']));var _0x4a0144=this['googleCloudTTS'][_0xc91a('0x6a')](this,_0x398ed7);if(_0x4a0144){this['channel'][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x1bd'),_0x4a0144));var _0x4cbcff=this[_0xc91a('0xb')][_0xc91a('0xf6')](_0x4a0144);try{fs['unlink'](_0x4a0144+'.wav');}catch(_0x58fb84){logger[_0xc91a('0x2a')](_0x58fb84);}return _0x4cbcff;}return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x398ed7,_0xc91a('0x1be'));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1bf')]=function(_0x488b5b){logger[_0xc91a('0x2c')](util['format'](_0xc91a('0x1c0'),_0x488b5b[_0xc91a('0x35')]));_0x488b5b[_0xc91a('0x55')]=_0x488b5b['text']['replace'](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xc91a('0x81')](_0x488b5b[_0xc91a('0x55')])){return this['channel'][_0xc91a('0xa3')](_0xc91a('0xbc'));}this['channel'][_0xc91a('0xa3')](util['format'](_0xc91a('0x1c1'),_0x488b5b[_0xc91a('0x55')]));var _0x4f8060=this[_0xc91a('0x5b')]['sync'](this,_0x488b5b);if(_0x4f8060){this[_0xc91a('0xb')][_0xc91a('0xa3')](util[_0xc91a('0x28')](_0xc91a('0x1c2'),_0x4f8060));var _0x572ad0=this[_0xc91a('0xb')][_0xc91a('0xf6')](_0x4f8060);try{fs[_0xc91a('0x11c')](_0x4f8060+_0xc91a('0xf7'));}catch(_0x2df598){logger['error'](_0x2df598);}return _0x572ad0;}return this[_0xc91a('0xb')]['error'](_0x488b5b,_0xc91a('0x1c3'));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1c4')]=function(_0x20f4a6){logger['info'](util[_0xc91a('0x28')](_0xc91a('0x1c5'),_0x20f4a6[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x20f4a6[_0xc91a('0x150')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x20f4a6,_0xc91a('0x14e'));}logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x14f'),this['channel'][_0xc91a('0x4b')],_0x20f4a6[_0xc91a('0x150')]));var _0x15fe06=this[_0xc91a('0x4c')][_0xc91a('0x6a')](this,_0x20f4a6['findBy']);if(_0x15fe06){logger[_0xc91a('0x2c')](util[_0xc91a('0x28')](_0xc91a('0x152'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0x20f4a6[_0xc91a('0x150')]));this['channel']['noop'](util[_0xc91a('0x28')](_0xc91a('0x152'),this[_0xc91a('0xb')][_0xc91a('0x4b')],_0x20f4a6[_0xc91a('0x150')]));return{'code':0xc8,'result':_0xc91a('0x153')};}else{logger[_0xc91a('0x2c')](util['format'](_0xc91a('0x154'),this[_0xc91a('0xb')]['callerid'],_0x20f4a6[_0xc91a('0x150')]));this[_0xc91a('0xb')][_0xc91a('0xa3')](util['format'](_0xc91a('0x154'),this['channel'][_0xc91a('0x4b')],_0x20f4a6['findBy']));return{'code':0xc8,'result':_0xc91a('0x155')};}};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1c6')]=function(_0x5a0f2d){logger[_0xc91a('0x2c')](util['format']('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x5a0f2d[_0xc91a('0x35')]));var _0x3dd4e5=this['channel']['exec'](_0xc91a('0x1c7'),[_0x5a0f2d[_0xc91a('0x1c8')],_0x5a0f2d['options']]);if(_0x3dd4e5[_0xc91a('0x9e')]===-0x1){return _0x3dd4e5;}return this[_0xc91a('0xb')]['noop'](util[_0xc91a('0x28')](_0xc91a('0x16b'),_0xc91a('0x1c7'),_0x5a0f2d[_0xc91a('0x1c8')]));};AGIVertices[_0xc91a('0xd')][_0xc91a('0x1c9')]=function(_0x27b6bb){logger['info'](util[_0xc91a('0x28')](_0xc91a('0x1ca'),_0x27b6bb[_0xc91a('0x35')]));if(!this[_0xc91a('0x81')](_0x27b6bb[_0xc91a('0xcf')])){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x27b6bb,_0xc91a('0x1a8'));}var _0x5a66f4=this[_0xc91a('0xe')]['sync'](this,_0x27b6bb[_0xc91a('0xcf')]);if(!_0x5a66f4){return this[_0xc91a('0xb')][_0xc91a('0x2a')](_0x27b6bb,_0xc91a('0xd0'));}var _0x2cf406=this[_0xc91a('0xb')]['getVariable'](_0x5a66f4);return{'code':0xc8,'result':_0x2cf406[_0xc91a('0x9c')]?_0x2cf406[_0xc91a('0x9c')]:'-'};};String[_0xc91a('0xd')][_0xc91a('0x1cb')]=function(_0x3d6d89,_0x268e81){return this[_0xc91a('0x9b')](_0x3d6d89)[_0xc91a('0x1cc')](_0x268e81);};module[_0xc91a('0x1cd')]=AGIVertices;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba11=['[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','message','timer','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[ACW][TIMERS]','stringify','[ACW][STOP]\x20%s','[ACW][syncAgentConnect]\x20%s','[%s][HANGUP:UNIQUEID]','isUndefined','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','syncHangup','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','transfererlinkedid','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','exports','util','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','agentconnect','syncAgentConnect','hanguprequest','syncHangupRequest','bind','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','milliseconds','diff','prototype','startAcw','channels','interface','queue','ACW','mandatoryDisposition','name','Action','QueuePause','then','getAgent','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','info','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','stopAcw','lastPauseAt','format','YYYY-MM-DD\x20HH:mm:ss','uniqueid','updateAcw','update','[%s][UPDATE][ACWTIME:%s]','catch','error'];(function(_0x311c35,_0x534915){var _0x5cc50c=function(_0x3ad680){while(--_0x3ad680){_0x311c35['push'](_0x311c35['shift']());}};_0x5cc50c(++_0x534915);}(_0xba11,0xcd));var _0x1ba1=function(_0x10826f,_0xf13fdd){_0x10826f=_0x10826f-0x0;var _0x2ad5c3=_0xba11[_0x10826f];return _0x2ad5c3;};'use strict';var util=require(_0x1ba1('0x0'));var _=require(_0x1ba1('0x1'));var moment=require(_0x1ba1('0x2'));var ami=require(_0x1ba1('0x3'));var logger=require(_0x1ba1('0x4'))(_0x1ba1('0x5'));var RpcUser=require(_0x1ba1('0x6'));var RpcVoiceAgentReport=require(_0x1ba1('0x7'));function Acw(_0x2008d4){this[_0x1ba1('0x8')]=_0x2008d4[_0x1ba1('0x8')];this[_0x1ba1('0x9')]=_0x2008d4[_0x1ba1('0x9')];this[_0x1ba1('0xa')]=_0x2008d4[_0x1ba1('0xa')];this['channels']={};ami['on'](_0x1ba1('0xb'),this[_0x1ba1('0xc')]['bind'](this));ami['on'](_0x1ba1('0xd'),this[_0x1ba1('0xe')][_0x1ba1('0xf')](this));ami['on']('hangup',this['syncHangup'][_0x1ba1('0xf')](this));ami['on'](_0x1ba1('0x10'),this[_0x1ba1('0x11')]['bind'](this));ami['on'](_0x1ba1('0x12'),this[_0x1ba1('0x13')][_0x1ba1('0xf')](this));ami['on'](_0x1ba1('0x14'),this[_0x1ba1('0x15')][_0x1ba1('0xf')](this));ami['on'](_0x1ba1('0x16'),this['syncAgentConnectPreview']['bind'](this));}function getDiff(_0x519cbe){var _0x5acb71=moment()[_0x1ba1('0x17')](0x0);var _0x3ec35a=moment(_0x519cbe)['milliseconds'](0x0);return _0x5acb71[_0x1ba1('0x18')](_0x3ec35a,'seconds');}Acw[_0x1ba1('0x19')][_0x1ba1('0x1a')]=function(_0x54dd58){try{var _0x48231e=this;var _0x4f9ea8=this[_0x1ba1('0x1b')][_0x54dd58][_0x1ba1('0x1c')];var _0xc04ff1=this[_0x1ba1('0x1b')][_0x54dd58][_0x1ba1('0x1d')];var _0xb34d07=this[_0x1ba1('0x8')][_0xc04ff1];var _0x5f014d=![];var _0x2f47e2=_0x1ba1('0x1e');if(_0xb34d07[_0x1ba1('0x1f')]){if(_0xb34d07['mandatoryDispositionPause'][_0x1ba1('0x20')]){_0x5f014d=!![];_0x2f47e2=_0xb34d07['mandatoryDispositionPause'][_0x1ba1('0x20')];}}ami[_0x1ba1('0x21')]({'action':_0x1ba1('0x22'),'interface':_0x4f9ea8,'paused':!![],'reason':_0x2f47e2})[_0x1ba1('0x23')](function(_0x375f17){if(_0x48231e['agents'][_0x4f9ea8]){return RpcUser[_0x1ba1('0x24')](_0x48231e[_0x1ba1('0x9')][_0x4f9ea8]['id'])['then'](function(_0x3212dd){if(_0x3212dd&&!_0x3212dd['voicePause']){logger['info'](_0x1ba1('0x25'),_0x54dd58,_0x4f9ea8,_0xc04ff1);var _0x2f804=_0x48231e['channels'][_0x54dd58][_0x1ba1('0x26')]&&_0x48231e[_0x1ba1('0x1b')][_0x54dd58][_0x1ba1('0x27')]?_0x48231e['channels'][_0x54dd58][_0x1ba1('0x27')]:_0x54dd58;return RpcUser['savePause'](_0x48231e[_0x1ba1('0x9')][_0x4f9ea8],_0x2f47e2,_0x2f804)['then'](function(_0x5121fb){if(!_0x5f014d){_0x48231e[_0x1ba1('0xa')][_0x4f9ea8]={};logger[_0x1ba1('0x28')](_0x1ba1('0x29'),_0x54dd58,_0x48231e['voiceQueues'][_0xc04ff1][_0x1ba1('0x2a')],_0x4f9ea8,_0xc04ff1);_0x48231e[_0x1ba1('0xa')][_0x4f9ea8]['timer']=setTimeout(_0x48231e[_0x1ba1('0x2b')][_0x1ba1('0xf')](_0x48231e,_0x4f9ea8),_0x48231e[_0x1ba1('0x8')][_0xc04ff1][_0x1ba1('0x2a')]*0x3e8);_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x2c')]=moment()[_0x1ba1('0x2d')](_0x1ba1('0x2e'));_0x48231e['timers'][_0x4f9ea8][_0x1ba1('0x2f')]=_0x54dd58;_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x1d')]=_0xc04ff1;_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x30')]=function(){var _0x407d11=getDiff(_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x2c')]);clearTimeout(_0x48231e[_0x1ba1('0xa')][_0x4f9ea8]['timer']);_0x48231e['timers'][_0x4f9ea8]['timer']=![];RpcVoiceAgentReport[_0x1ba1('0x31')]({'acwtime':_0x407d11},_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x2f')],_0x4f9ea8)[_0x1ba1('0x23')](function(_0x36efca){logger['info'](_0x1ba1('0x32'),_0x54dd58,_0x407d11,_0x36efca);})[_0x1ba1('0x33')](function(_0x3a40bd){logger[_0x1ba1('0x34')](_0x1ba1('0x35'),_0x54dd58,_0x3a40bd);});delete _0x48231e['timers'][_0x4f9ea8];};}});}else{logger[_0x1ba1('0x28')](_0x1ba1('0x36'),_0x54dd58,_0x4f9ea8,_0xc04ff1);}});}})[_0x1ba1('0x33')](function(_0x5d5225){logger[_0x1ba1('0x34')](_0x1ba1('0x29'),_0x54dd58,_0x48231e[_0x1ba1('0x8')][_0xc04ff1][_0x1ba1('0x2a')],_0x4f9ea8,_0xc04ff1);})[_0x1ba1('0x37')](function(){delete _0x48231e[_0x1ba1('0x1b')][_0x54dd58];});}catch(_0x2a095a){logger[_0x1ba1('0x34')]('[ACW][START]\x20%s',_0x2a095a[_0x1ba1('0x38')]);}};Acw['prototype']['stopAcw']=function(_0x219226){try{var _0x40a928=this;if(_0x40a928[_0x1ba1('0xa')][_0x219226]){_0x40a928[_0x1ba1('0xa')][_0x219226][_0x1ba1('0x39')]=![];var _0x5384b9=_0x40a928[_0x1ba1('0xa')][_0x219226][_0x1ba1('0x2f')];var _0x3b936d=_0x40a928['timers'][_0x219226][_0x1ba1('0x1d')];var _0xfaa6b6=_0x40a928[_0x1ba1('0x8')][_0x3b936d][_0x1ba1('0x2a')];logger[_0x1ba1('0x28')](_0x1ba1('0x3a'),_0x5384b9,_0x219226);RpcUser[_0x1ba1('0x3b')](this[_0x1ba1('0x9')][_0x219226]);RpcVoiceAgentReport[_0x1ba1('0x31')]({'acwtime':_0xfaa6b6,'agentacw':!![]},_0x5384b9,_0x219226)[_0x1ba1('0x23')](function(_0x54e785){logger['info'](_0x1ba1('0x32'),_0x5384b9,_0xfaa6b6,_0x54e785);})[_0x1ba1('0x33')](function(_0x5dba08){logger[_0x1ba1('0x34')](_0x1ba1('0x35'),_0x5384b9,_0x5dba08);});}else{logger[_0x1ba1('0x34')]('[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer',_0x219226);if(_0x40a928[_0x1ba1('0xa')]){logger['info'](_0x1ba1('0x3c'),JSON[_0x1ba1('0x3d')](_0x40a928[_0x1ba1('0xa')]));}}}catch(_0x71d136){logger[_0x1ba1('0x34')](_0x1ba1('0x3e'),_0x71d136[_0x1ba1('0x38')]);}};Acw['prototype']['syncAgentConnect']=function(_0x5ef2b3){try{if(this[_0x1ba1('0x8')][_0x5ef2b3[_0x1ba1('0x1d')]]&&(this[_0x1ba1('0x8')][_0x5ef2b3['queue']]['acw']||this[_0x1ba1('0x8')][_0x5ef2b3[_0x1ba1('0x1d')]]['mandatoryDisposition'])){if(this[_0x1ba1('0x9')][_0x5ef2b3['interface']]){this[_0x1ba1('0x1b')][_0x5ef2b3[_0x1ba1('0x2f')]]={'queue':_0x5ef2b3[_0x1ba1('0x1d')],'interface':_0x5ef2b3[_0x1ba1('0x1c')],'destlinkedid':_0x5ef2b3[_0x1ba1('0x27')]};}}}catch(_0x52dc83){logger[_0x1ba1('0x34')](_0x1ba1('0x3f'),_0x52dc83[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')]['syncAgentConnectPreview']=function(_0x5c86f4){try{if(this[_0x1ba1('0x8')][_0x5c86f4['queue']]&&(this['voiceQueues'][_0x5c86f4['queue']][_0x1ba1('0x5')]||this[_0x1ba1('0x8')][_0x5c86f4[_0x1ba1('0x1d')]][_0x1ba1('0x1f')])){if(this[_0x1ba1('0x9')][_0x5c86f4[_0x1ba1('0x1c')]]){this[_0x1ba1('0x1b')][_0x5c86f4[_0x1ba1('0x2f')]]={'queue':_0x5c86f4['queue'],'interface':_0x5c86f4[_0x1ba1('0x1c')]};}}}catch(_0x221ca2){logger['error']('[ACW][syncAgentConnectPreview]\x20%s',_0x221ca2[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')]['syncHangupRequest']=function(_0x353850){try{if(this[_0x1ba1('0x1b')][_0x353850[_0x1ba1('0x2f')]]&&_['isUndefined'](this[_0x1ba1('0x1b')][_0x353850[_0x1ba1('0x2f')]][_0x1ba1('0x26')])){logger['info'](_0x1ba1('0x40'),_0x353850[_0x1ba1('0x2f')]);this[_0x1ba1('0x1a')](_0x353850[_0x1ba1('0x2f')]);}else if(this[_0x1ba1('0x1b')][_0x353850['linkedid']]&&_[_0x1ba1('0x41')](this[_0x1ba1('0x1b')][_0x353850[_0x1ba1('0x42')]][_0x1ba1('0x26')])){logger[_0x1ba1('0x28')](_0x1ba1('0x43'),_0x353850[_0x1ba1('0x42')]);this['startAcw'](_0x353850[_0x1ba1('0x42')]);}}catch(_0x31f46b){logger[_0x1ba1('0x34')](_0x1ba1('0x44'),_0x31f46b['message']);}};Acw['prototype'][_0x1ba1('0x45')]=function(_0x30ddc0){try{if(this[_0x1ba1('0x1b')][_0x30ddc0['uniqueid']]&&this[_0x1ba1('0x1b')][_0x30ddc0[_0x1ba1('0x2f')]]['attended']){logger[_0x1ba1('0x28')](_0x1ba1('0x46'),_0x30ddc0[_0x1ba1('0x2f')]);this[_0x1ba1('0x1a')](_0x30ddc0[_0x1ba1('0x2f')]);}else if(this['channels'][_0x30ddc0[_0x1ba1('0x42')]]&&this['channels'][_0x30ddc0[_0x1ba1('0x42')]][_0x1ba1('0x26')]){logger[_0x1ba1('0x28')](_0x1ba1('0x47'),_0x30ddc0[_0x1ba1('0x42')]);this[_0x1ba1('0x1a')](_0x30ddc0[_0x1ba1('0x42')]);}}catch(_0x301e1d){logger[_0x1ba1('0x34')](_0x1ba1('0x48'),_0x301e1d[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')][_0x1ba1('0x13')]=function(_0x17c58c){try{if(!_[_0x1ba1('0x49')](this[_0x1ba1('0x1b')][_0x17c58c['transfereeuniqueid']])){this[_0x1ba1('0x1a')](_0x17c58c[_0x1ba1('0x4a')]);if(this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4b')]]){this['channels'][_0x17c58c[_0x1ba1('0x4b')]]['attended']=!![];this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4c')]]=this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4b')]];delete this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4b')]];}}else if(!_['isNil'](this[_0x1ba1('0x1b')][_0x17c58c['transfertargetuniqueid']])){this['startAcw'](_0x17c58c[_0x1ba1('0x4c')]);if(this[_0x1ba1('0x1b')][_0x17c58c['origtransfereruniqueid']]){this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4d')]][_0x1ba1('0x26')]=!![];this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4a')]]=this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4d')]];delete this[_0x1ba1('0x1b')][_0x17c58c['origtransfereruniqueid']];}}}catch(_0x4c5da5){logger['error'](_0x1ba1('0x4e'),_0x4c5da5[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')][_0x1ba1('0x15')]=function(_0x38e602){try{if(this[_0x1ba1('0x1b')][_0x38e602[_0x1ba1('0x4f')]]){logger[_0x1ba1('0x28')]('[%s][BLINDTRANSFER:UNIQUEID]',JSON[_0x1ba1('0x3d')](_0x38e602[_0x1ba1('0x4f')]));this[_0x1ba1('0x1a')](_0x38e602[_0x1ba1('0x4f')]);}else if(this[_0x1ba1('0x1b')][_0x38e602[_0x1ba1('0x50')]]){logger['info']('[%s][BLINDTRANSFER:LINKEDID]',JSON[_0x1ba1('0x3d')](_0x38e602[_0x1ba1('0x50')]));this['startAcw'](_0x38e602['transfererlinkedid']);}}catch(_0x2d35e8){logger[_0x1ba1('0x34')]('[ACW][syncBlindTransfer]\x20%s',_0x2d35e8['message']);}};Acw[_0x1ba1('0x19')][_0x1ba1('0x11')]=function(_0x503c61){try{if(this[_0x1ba1('0x8')][_0x503c61[_0x1ba1('0x1d')]]&&this[_0x1ba1('0x8')][_0x503c61['queue']]['autopause']===_0x1ba1('0x51')){if(this[_0x1ba1('0x9')][_0x503c61[_0x1ba1('0x1c')]]){logger[_0x1ba1('0x28')](_0x1ba1('0x52'),_0x503c61[_0x1ba1('0x2f')],_0x503c61['interface'],_0x503c61[_0x1ba1('0x1d')]);return RpcUser['savePause'](this[_0x1ba1('0x9')][_0x503c61['interface']],_0x1ba1('0x53'),_0x503c61[_0x1ba1('0x2f')]);}}}catch(_0x349c9c){logger['error'](_0x1ba1('0x54'),_0x349c9c[_0x1ba1('0x38')]);}};module[_0x1ba1('0x55')]=Acw;
\ No newline at end of file
+var _0x944a=['prototype','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','stringify','[ACW][STOP]\x20%s','isUndefined','[%s][HANGUP:UNIQUEID]','linkedid','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','syncBlindTransfer','transfereruniqueid','transfererlinkedid','syncAgentRingNoAnswer','autopause','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','exports','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','agentconnect','syncAgentConnect','bind','hanguprequest','hangup','syncHangup','agentringnoanswer','attendedtransfer','blindtransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','seconds','startAcw','channels','interface','ACW','mandatoryDisposition','mandatoryDispositionPause','name','QueuePause','then','getAgent','info','attended','destlinkedid','savePause','acwTimeout','timer','lastPauseAt','format','YYYY-MM-DD\x20HH:mm:ss','queue','update','uniqueid','[%s][UPDATE][ACWTIME:%s]','catch','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','message'];(function(_0xbf491b,_0x243d25){var _0x2ff60b=function(_0x387a67){while(--_0x387a67){_0xbf491b['push'](_0xbf491b['shift']());}};_0x2ff60b(++_0x243d25);}(_0x944a,0xb5));var _0xa944=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x944a[_0x3dd15e];return _0x231fd0;};'use strict';var util=require('util');var _=require(_0xa944('0x0'));var moment=require(_0xa944('0x1'));var ami=require(_0xa944('0x2'));var logger=require(_0xa944('0x3'))(_0xa944('0x4'));var RpcUser=require(_0xa944('0x5'));var RpcVoiceAgentReport=require(_0xa944('0x6'));function Acw(_0x30e400){this[_0xa944('0x7')]=_0x30e400[_0xa944('0x7')];this[_0xa944('0x8')]=_0x30e400[_0xa944('0x8')];this[_0xa944('0x9')]=_0x30e400[_0xa944('0x9')];this['channels']={};ami['on'](_0xa944('0xa'),this[_0xa944('0xb')][_0xa944('0xc')](this));ami['on'](_0xa944('0xd'),this['syncHangupRequest']['bind'](this));ami['on'](_0xa944('0xe'),this[_0xa944('0xf')][_0xa944('0xc')](this));ami['on'](_0xa944('0x10'),this['syncAgentRingNoAnswer'][_0xa944('0xc')](this));ami['on'](_0xa944('0x11'),this['syncAttendedTransfer']['bind'](this));ami['on'](_0xa944('0x12'),this['syncBlindTransfer'][_0xa944('0xc')](this));ami['on'](_0xa944('0x13'),this[_0xa944('0x14')][_0xa944('0xc')](this));}function getDiff(_0x5c437f){var _0x5a5f95=moment()[_0xa944('0x15')](0x0);var _0x467d46=moment(_0x5c437f)[_0xa944('0x15')](0x0);return _0x5a5f95[_0xa944('0x16')](_0x467d46,_0xa944('0x17'));}Acw['prototype'][_0xa944('0x18')]=function(_0x33369f){try{var _0x4478c1=this;var _0x5af772=this[_0xa944('0x19')][_0x33369f][_0xa944('0x1a')];var _0x846bef=this[_0xa944('0x19')][_0x33369f]['queue'];var _0x5c8d8d=this[_0xa944('0x7')][_0x846bef];var _0x251fde=![];var _0x2199dd=_0xa944('0x1b');if(_0x5c8d8d[_0xa944('0x1c')]){if(_0x5c8d8d[_0xa944('0x1d')][_0xa944('0x1e')]){_0x251fde=!![];_0x2199dd=_0x5c8d8d[_0xa944('0x1d')][_0xa944('0x1e')];}}ami['Action']({'action':_0xa944('0x1f'),'interface':_0x5af772,'paused':!![],'reason':_0x2199dd})[_0xa944('0x20')](function(_0xfd9059){if(_0x4478c1[_0xa944('0x8')][_0x5af772]){return RpcUser[_0xa944('0x21')](_0x4478c1['agents'][_0x5af772]['id'])[_0xa944('0x20')](function(_0x2bc167){if(_0x2bc167&&!_0x2bc167['voicePause']){logger[_0xa944('0x22')]('[%s][START][AGENT:%s][QUEUE:%s]',_0x33369f,_0x5af772,_0x846bef);var _0xd75a97=_0x4478c1[_0xa944('0x19')][_0x33369f][_0xa944('0x23')]&&_0x4478c1[_0xa944('0x19')][_0x33369f][_0xa944('0x24')]?_0x4478c1['channels'][_0x33369f][_0xa944('0x24')]:_0x33369f;return RpcUser[_0xa944('0x25')](_0x4478c1[_0xa944('0x8')][_0x5af772],_0x2199dd,_0xd75a97)[_0xa944('0x20')](function(_0x2d2fab){if(!_0x251fde){_0x4478c1[_0xa944('0x9')][_0x5af772]={};logger[_0xa944('0x22')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x33369f,_0x4478c1[_0xa944('0x7')][_0x846bef][_0xa944('0x26')],_0x5af772,_0x846bef);_0x4478c1['timers'][_0x5af772][_0xa944('0x27')]=setTimeout(_0x4478c1['stopAcw'][_0xa944('0xc')](_0x4478c1,_0x5af772),_0x4478c1[_0xa944('0x7')][_0x846bef][_0xa944('0x26')]*0x3e8);_0x4478c1[_0xa944('0x9')][_0x5af772][_0xa944('0x28')]=moment()[_0xa944('0x29')](_0xa944('0x2a'));_0x4478c1[_0xa944('0x9')][_0x5af772]['uniqueid']=_0x33369f;_0x4478c1['timers'][_0x5af772][_0xa944('0x2b')]=_0x846bef;_0x4478c1[_0xa944('0x9')][_0x5af772]['updateAcw']=function(){var _0x3189bb=getDiff(_0x4478c1[_0xa944('0x9')][_0x5af772][_0xa944('0x28')]);clearTimeout(_0x4478c1['timers'][_0x5af772][_0xa944('0x27')]);_0x4478c1[_0xa944('0x9')][_0x5af772][_0xa944('0x27')]=![];RpcVoiceAgentReport[_0xa944('0x2c')]({'acwtime':_0x3189bb},_0x4478c1[_0xa944('0x9')][_0x5af772][_0xa944('0x2d')],_0x5af772)[_0xa944('0x20')](function(_0x2701ff){logger[_0xa944('0x22')](_0xa944('0x2e'),_0x33369f,_0x3189bb,_0x2701ff);})[_0xa944('0x2f')](function(_0xbce7cf){logger[_0xa944('0x30')](_0xa944('0x31'),_0x33369f,_0xbce7cf);});delete _0x4478c1[_0xa944('0x9')][_0x5af772];};}});}else{logger[_0xa944('0x22')](_0xa944('0x32'),_0x33369f,_0x5af772,_0x846bef);}});}})['catch'](function(_0x5c8d43){logger[_0xa944('0x30')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x33369f,_0x4478c1['voiceQueues'][_0x846bef][_0xa944('0x26')],_0x5af772,_0x846bef);})[_0xa944('0x33')](function(){delete _0x4478c1[_0xa944('0x19')][_0x33369f];});}catch(_0xd028ab){logger[_0xa944('0x30')]('[ACW][START]\x20%s',_0xd028ab[_0xa944('0x34')]);}};Acw[_0xa944('0x35')]['stopAcw']=function(_0x5916c2){try{var _0x3f8967=this;if(_0x3f8967[_0xa944('0x9')][_0x5916c2]){_0x3f8967[_0xa944('0x9')][_0x5916c2][_0xa944('0x27')]=![];var _0x412308=_0x3f8967[_0xa944('0x9')][_0x5916c2]['uniqueid'];var _0x1a4065=_0x3f8967['timers'][_0x5916c2][_0xa944('0x2b')];var _0xb2ffd1=_0x3f8967[_0xa944('0x7')][_0x1a4065][_0xa944('0x26')];logger['info'](_0xa944('0x36'),_0x412308,_0x5916c2);RpcUser[_0xa944('0x37')](this[_0xa944('0x8')][_0x5916c2]);RpcVoiceAgentReport[_0xa944('0x2c')]({'acwtime':_0xb2ffd1,'agentacw':!![]},_0x412308,_0x5916c2)[_0xa944('0x20')](function(_0x13983d){logger[_0xa944('0x22')](_0xa944('0x2e'),_0x412308,_0xb2ffd1,_0x13983d);})[_0xa944('0x2f')](function(_0x6dab65){logger[_0xa944('0x30')](_0xa944('0x31'),_0x412308,_0x6dab65);});}else{logger['error']('[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer',_0x5916c2);if(_0x3f8967[_0xa944('0x9')]){logger[_0xa944('0x22')]('[ACW][TIMERS]',JSON[_0xa944('0x38')](_0x3f8967[_0xa944('0x9')]));}}}catch(_0x379f1e){logger['error'](_0xa944('0x39'),_0x379f1e[_0xa944('0x34')]);}};Acw['prototype']['syncAgentConnect']=function(_0x51d694){try{if(this[_0xa944('0x7')][_0x51d694[_0xa944('0x2b')]]&&(this[_0xa944('0x7')][_0x51d694['queue']]['acw']||this[_0xa944('0x7')][_0x51d694[_0xa944('0x2b')]][_0xa944('0x1c')])){if(this['agents'][_0x51d694[_0xa944('0x1a')]]){this[_0xa944('0x19')][_0x51d694[_0xa944('0x2d')]]={'queue':_0x51d694[_0xa944('0x2b')],'interface':_0x51d694[_0xa944('0x1a')],'destlinkedid':_0x51d694['destlinkedid']};}}}catch(_0x407ee6){logger[_0xa944('0x30')]('[ACW][syncAgentConnect]\x20%s',_0x407ee6[_0xa944('0x34')]);}};Acw[_0xa944('0x35')][_0xa944('0x14')]=function(_0x2e1cba){try{if(this[_0xa944('0x7')][_0x2e1cba[_0xa944('0x2b')]]&&(this[_0xa944('0x7')][_0x2e1cba['queue']][_0xa944('0x4')]||this[_0xa944('0x7')][_0x2e1cba[_0xa944('0x2b')]]['mandatoryDisposition'])){if(this[_0xa944('0x8')][_0x2e1cba[_0xa944('0x1a')]]){this['channels'][_0x2e1cba[_0xa944('0x2d')]]={'queue':_0x2e1cba[_0xa944('0x2b')],'interface':_0x2e1cba[_0xa944('0x1a')]};}}}catch(_0x3fbf1f){logger[_0xa944('0x30')]('[ACW][syncAgentConnectPreview]\x20%s',_0x3fbf1f[_0xa944('0x34')]);}};Acw['prototype']['syncHangupRequest']=function(_0x377743){try{if(this[_0xa944('0x19')][_0x377743['uniqueid']]&&_[_0xa944('0x3a')](this['channels'][_0x377743['uniqueid']][_0xa944('0x23')])){logger[_0xa944('0x22')](_0xa944('0x3b'),_0x377743[_0xa944('0x2d')]);this[_0xa944('0x18')](_0x377743[_0xa944('0x2d')]);}else if(this['channels'][_0x377743[_0xa944('0x3c')]]&&_[_0xa944('0x3a')](this[_0xa944('0x19')][_0x377743[_0xa944('0x3c')]][_0xa944('0x23')])){logger[_0xa944('0x22')]('[%s][HANGUP:LINKEDID]',_0x377743[_0xa944('0x3c')]);this['startAcw'](_0x377743['linkedid']);}}catch(_0x341244){logger[_0xa944('0x30')](_0xa944('0x3d'),_0x341244[_0xa944('0x34')]);}};Acw[_0xa944('0x35')][_0xa944('0xf')]=function(_0x35bba9){try{if(this[_0xa944('0x19')][_0x35bba9[_0xa944('0x2d')]]&&this[_0xa944('0x19')][_0x35bba9['uniqueid']][_0xa944('0x23')]){logger[_0xa944('0x22')](_0xa944('0x3e'),_0x35bba9['uniqueid']);this[_0xa944('0x18')](_0x35bba9[_0xa944('0x2d')]);}else if(this['channels'][_0x35bba9[_0xa944('0x3c')]]&&this['channels'][_0x35bba9['linkedid']][_0xa944('0x23')]){logger['info']('[%s][HANGUPATTENDEDTRANSFER:LINKEDID]',_0x35bba9['linkedid']);this[_0xa944('0x18')](_0x35bba9[_0xa944('0x3c')]);}}catch(_0x1d59c3){logger[_0xa944('0x30')](_0xa944('0x3f'),_0x1d59c3[_0xa944('0x34')]);}};Acw[_0xa944('0x35')]['syncAttendedTransfer']=function(_0x58282a){try{if(!_[_0xa944('0x40')](this[_0xa944('0x19')][_0x58282a['transfereeuniqueid']])){this[_0xa944('0x18')](_0x58282a[_0xa944('0x41')]);if(this[_0xa944('0x19')][_0x58282a[_0xa944('0x42')]]){this[_0xa944('0x19')][_0x58282a[_0xa944('0x42')]][_0xa944('0x23')]=!![];this['channels'][_0x58282a['transfertargetuniqueid']]=this[_0xa944('0x19')][_0x58282a[_0xa944('0x42')]];delete this[_0xa944('0x19')][_0x58282a[_0xa944('0x42')]];}}else if(!_[_0xa944('0x40')](this[_0xa944('0x19')][_0x58282a['transfertargetuniqueid']])){this[_0xa944('0x18')](_0x58282a[_0xa944('0x43')]);if(this['channels'][_0x58282a[_0xa944('0x44')]]){this[_0xa944('0x19')][_0x58282a[_0xa944('0x44')]][_0xa944('0x23')]=!![];this['channels'][_0x58282a['transfereeuniqueid']]=this[_0xa944('0x19')][_0x58282a[_0xa944('0x44')]];delete this[_0xa944('0x19')][_0x58282a['origtransfereruniqueid']];}}}catch(_0x15853c){logger[_0xa944('0x30')]('[ACW][syncAttendedTransfer]\x20%s',_0x15853c[_0xa944('0x34')]);}};Acw[_0xa944('0x35')][_0xa944('0x45')]=function(_0x55fb27){try{if(this['channels'][_0x55fb27['transfereruniqueid']]){logger[_0xa944('0x22')]('[%s][BLINDTRANSFER:UNIQUEID]',JSON['stringify'](_0x55fb27[_0xa944('0x46')]));this['startAcw'](_0x55fb27[_0xa944('0x46')]);}else if(this[_0xa944('0x19')][_0x55fb27[_0xa944('0x47')]]){logger[_0xa944('0x22')]('[%s][BLINDTRANSFER:LINKEDID]',JSON['stringify'](_0x55fb27['transfererlinkedid']));this[_0xa944('0x18')](_0x55fb27['transfererlinkedid']);}}catch(_0x1f16e6){logger[_0xa944('0x30')]('[ACW][syncBlindTransfer]\x20%s',_0x1f16e6[_0xa944('0x34')]);}};Acw[_0xa944('0x35')][_0xa944('0x48')]=function(_0x4b2ead){try{if(this['voiceQueues'][_0x4b2ead[_0xa944('0x2b')]]&&this[_0xa944('0x7')][_0x4b2ead[_0xa944('0x2b')]][_0xa944('0x49')]===_0xa944('0x4a')){if(this[_0xa944('0x8')][_0x4b2ead[_0xa944('0x1a')]]){logger[_0xa944('0x22')](_0xa944('0x4b'),_0x4b2ead[_0xa944('0x2d')],_0x4b2ead[_0xa944('0x1a')],_0x4b2ead[_0xa944('0x2b')]);return RpcUser['savePause'](this['agents'][_0x4b2ead[_0xa944('0x1a')]],_0xa944('0x4c'),_0x4b2ead[_0xa944('0x2d')]);}}}catch(_0x1c080b){logger['error']('[ACW][syncAgentRingNoAnswer]\x20%s',_0x1c080b[_0xa944('0x34')]);}};module[_0xa944('0x4d')]=Acw;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x26d9=['queuesummary','actionCoreShowChannels','info','once','close','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','resolve','then','actionSipPeerStatus','log','exports','bluebird','moment','lodash','../../config/logger','ami','../../config/environment','asterisk','port','username','keepConnected','promisify','action','error','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','Action','sipshowregistry','sippeerstatus','actionQueueSummary'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x26d9,0x12e));var _0x926d=function(_0x3b6a5e,_0x1d3aaa){_0x3b6a5e=_0x3b6a5e-0x0;var _0x34158c=_0x26d9[_0x3b6a5e];return _0x34158c;};'use strict';var Manager=require('asterisk-manager');var BPromise=require(_0x926d('0x0'));var moment=require(_0x926d('0x1'));var util=require('util');var _=require(_0x926d('0x2'));var logger=require(_0x926d('0x3'))(_0x926d('0x4'));var config=require(_0x926d('0x5'));var ami=new Manager(config[_0x926d('0x6')][_0x926d('0x7')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['password'],!![]);ami[_0x926d('0x9')]();ami['Action']=BPromise[_0x926d('0xa')](ami[_0x926d('0xb')]);function error(_0x3a0c9b){logger[_0x926d('0xc')](util[_0x926d('0xd')](_0x926d('0xe'),config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x7')],util[_0x926d('0xf')](_0x3a0c9b,![],null)));}function close(){logger[_0x926d('0xc')](util['format'](_0x926d('0x10'),config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x7')]));}ami[_0x926d('0x11')]=function(){return function(){return ami[_0x926d('0x12')]({'action':_0x926d('0x13')});};};ami['actionDeviceStateList']=function(){return function(){return ami[_0x926d('0x12')]({'action':'devicestatelist'});};};ami['actionSipPeerStatus']=function(){return function(){return ami[_0x926d('0x12')]({'action':_0x926d('0x14')});};};ami[_0x926d('0x15')]=function(){return function(){return ami[_0x926d('0x12')]({'action':_0x926d('0x16')});};};ami[_0x926d('0x17')]=function(){return function(){return ami[_0x926d('0x12')]({'action':'coreshowchannels'});};};function connect(_0xd64692){logger[_0x926d('0x18')](util[_0x926d('0xd')]('Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s',config['asterisk'][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')]['port']));ami[_0x926d('0x19')](_0x926d('0xc'),error);ami[_0x926d('0x19')](_0x926d('0x1a'),close);}ami['on']('connect',connect);ami['on'](_0x926d('0x1b'),function(_0x40126d){logger[_0x926d('0x18')](util[_0x926d('0xd')](_0x926d('0x1c'),config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x7')],util['inspect'](_0x40126d,![],null)));});ami['on'](_0x926d('0x1d'),function(_0x1054f7){logger[_0x926d('0x18')](util[_0x926d('0xd')](_0x926d('0x1e'),config[_0x926d('0x6')][_0x926d('0x8')],config['asterisk']['ip'],config[_0x926d('0x6')]['port']));return BPromise[_0x926d('0x1f')]()[_0x926d('0x20')](ami['actionSipShowRegistry']())[_0x926d('0x20')](ami['actionDeviceStateList']())[_0x926d('0x20')](ami[_0x926d('0x21')]())[_0x926d('0x20')](ami[_0x926d('0x15')]())['then'](ami[_0x926d('0x17')]())['catch'](function(_0x2c62e1){console[_0x926d('0x22')](_0x2c62e1);});});ami['once'](_0x926d('0xc'),error);ami['once'](_0x926d('0x1a'),close);module[_0x926d('0x23')]=ami;
\ No newline at end of file
+var _0x3f14=['Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','then','actionCoreShowChannels','catch','log','exports','bluebird','moment','util','lodash','../../config/environment','port','asterisk','password','keepConnected','promisify','action','error','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','username','inspect','format','actionSipShowRegistry','Action','actionDeviceStateList','actionSipPeerStatus','sippeerstatus','actionQueueSummary','queuesummary','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','shutdown'];(function(_0xd8b66,_0xa7e707){var _0x1e53d2=function(_0x57f7c2){while(--_0x57f7c2){_0xd8b66['push'](_0xd8b66['shift']());}};_0x1e53d2(++_0xa7e707);}(_0x3f14,0x127));var _0x43f1=function(_0x1481ad,_0x2d3888){_0x1481ad=_0x1481ad-0x0;var _0x5ef3cb=_0x3f14[_0x1481ad];return _0x5ef3cb;};'use strict';var Manager=require('asterisk-manager');var BPromise=require(_0x43f1('0x0'));var moment=require(_0x43f1('0x1'));var util=require(_0x43f1('0x2'));var _=require(_0x43f1('0x3'));var logger=require('../../config/logger')('ami');var config=require(_0x43f1('0x4'));var ami=new Manager(config['asterisk'][_0x43f1('0x5')],config[_0x43f1('0x6')]['ip'],config[_0x43f1('0x6')]['username'],config[_0x43f1('0x6')][_0x43f1('0x7')],!![]);ami[_0x43f1('0x8')]();ami['Action']=BPromise[_0x43f1('0x9')](ami[_0x43f1('0xa')]);function error(_0x38f631){logger[_0x43f1('0xb')](util['format'](_0x43f1('0xc'),config[_0x43f1('0x6')][_0x43f1('0xd')],config[_0x43f1('0x6')]['ip'],config[_0x43f1('0x6')]['port'],util[_0x43f1('0xe')](_0x38f631,![],null)));}function close(){logger[_0x43f1('0xb')](util[_0x43f1('0xf')]('Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s',config[_0x43f1('0x6')][_0x43f1('0xd')],config['asterisk']['ip'],config[_0x43f1('0x6')][_0x43f1('0x5')]));}ami[_0x43f1('0x10')]=function(){return function(){return ami[_0x43f1('0x11')]({'action':'sipshowregistry'});};};ami[_0x43f1('0x12')]=function(){return function(){return ami['Action']({'action':'devicestatelist'});};};ami[_0x43f1('0x13')]=function(){return function(){return ami[_0x43f1('0x11')]({'action':_0x43f1('0x14')});};};ami[_0x43f1('0x15')]=function(){return function(){return ami[_0x43f1('0x11')]({'action':_0x43f1('0x16')});};};ami['actionCoreShowChannels']=function(){return function(){return ami['Action']({'action':'coreshowchannels'});};};function connect(_0x507a7e){logger[_0x43f1('0x17')](util[_0x43f1('0xf')](_0x43f1('0x18'),config['asterisk'][_0x43f1('0xd')],config[_0x43f1('0x6')]['ip'],config[_0x43f1('0x6')][_0x43f1('0x5')]));ami[_0x43f1('0x19')]('error',error);ami['once'](_0x43f1('0x1a'),close);}ami['on'](_0x43f1('0x1b'),connect);ami['on'](_0x43f1('0x1c'),function(_0x1310ec){logger[_0x43f1('0x17')](util[_0x43f1('0xf')](_0x43f1('0x1d'),config['asterisk'][_0x43f1('0xd')],config['asterisk']['ip'],config[_0x43f1('0x6')]['port'],util['inspect'](_0x1310ec,![],null)));});ami['on']('fullybooted',function(_0x262a0d){logger['info'](util[_0x43f1('0xf')](_0x43f1('0x1e'),config[_0x43f1('0x6')]['username'],config[_0x43f1('0x6')]['ip'],config[_0x43f1('0x6')][_0x43f1('0x5')]));return BPromise['resolve']()[_0x43f1('0x1f')](ami['actionSipShowRegistry']())[_0x43f1('0x1f')](ami[_0x43f1('0x12')]())[_0x43f1('0x1f')](ami['actionSipPeerStatus']())[_0x43f1('0x1f')](ami[_0x43f1('0x15')]())[_0x43f1('0x1f')](ami[_0x43f1('0x20')]())[_0x43f1('0x21')](function(_0x273aa5){console[_0x43f1('0x22')](_0x273aa5);});});ami[_0x43f1('0x19')](_0x43f1('0xb'),error);ami['once'](_0x43f1('0x1a'),close);module[_0x43f1('0x23')]=ami;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['result','catch','exports','jayson/promise','bluebird','../../config/logger','http','request','debug','rpc','error','message'];(function(_0x2ca794,_0x3e0030){var _0x27b67b=function(_0x40f96b){while(--_0x40f96b){_0x2ca794['push'](_0x2ca794['shift']());}};_0x27b67b(++_0x3e0030);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2cfb58,_0x3d9412){_0x2cfb58=_0x2cfb58-0x0;var _0xd99951=_0xa9e0[_0x2cfb58];return _0xd99951;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('ami');var client=jayson['client'][_0x0a9e('0x3')]({'port':0x2329});client['Request']=function(_0x333808,_0x432180){return new BPromise(function(_0x2ab90b,_0x991246){return client[_0x0a9e('0x4')](_0x333808,_0x432180)['then'](function(_0x219af0){logger[_0x0a9e('0x5')](_0x0a9e('0x6'),'memberReport',_0x333808,_0x432180,_0x219af0);if(_0x219af0['error']){logger[_0x0a9e('0x7')]('rpc','memberReport',_0x333808,_0x219af0[_0x0a9e('0x7')][_0x0a9e('0x8')],_0x432180);return _0x991246(_0x219af0[_0x0a9e('0x7')][_0x0a9e('0x8')]);}else{return _0x2ab90b(_0x219af0[_0x0a9e('0x9')]);}})[_0x0a9e('0xa')](function(_0x4a4c56){logger['error']('rpc','memberReport',_0x333808,_0x4a4c56,_0x432180);return _0x991246(_0x4a4c56);});});};module[_0x0a9e('0xb')]=client;
\ No newline at end of file
+var _0xac4a=['ami','client','http','then','debug','memberReport','error','message','result','catch','rpc','jayson/promise','bluebird','../../config/logger'];(function(_0x562faf,_0x102bcc){var _0x22c1f6=function(_0x2cd3b8){while(--_0x2cd3b8){_0x562faf['push'](_0x562faf['shift']());}};_0x22c1f6(++_0x102bcc);}(_0xac4a,0x13f));var _0xaac4=function(_0x58a47f,_0x7d24d5){_0x58a47f=_0x58a47f-0x0;var _0xfafcf0=_0xac4a[_0x58a47f];return _0xfafcf0;};'use strict';var jayson=require(_0xaac4('0x0'));var BPromise=require(_0xaac4('0x1'));var logger=require(_0xaac4('0x2'))(_0xaac4('0x3'));var client=jayson[_0xaac4('0x4')][_0xaac4('0x5')]({'port':0x2329});client['Request']=function(_0x58626e,_0x2af0f6){return new BPromise(function(_0x2a5762,_0x32d34c){return client['request'](_0x58626e,_0x2af0f6)[_0xaac4('0x6')](function(_0x53d03a){logger[_0xaac4('0x7')]('rpc',_0xaac4('0x8'),_0x58626e,_0x2af0f6,_0x53d03a);if(_0x53d03a[_0xaac4('0x9')]){logger['error']('rpc',_0xaac4('0x8'),_0x58626e,_0x53d03a['error'][_0xaac4('0xa')],_0x2af0f6);return _0x32d34c(_0x53d03a['error']['message']);}else{return _0x2a5762(_0x53d03a[_0xaac4('0xb')]);}})[_0xaac4('0xc')](function(_0x38d1d0){logger[_0xaac4('0x9')](_0xaac4('0xd'),'memberReport',_0x58626e,_0x38d1d0,_0x2af0f6);return _0x32d34c(_0x38d1d0);});});};module['exports']=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2edc=['type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','ListId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','callbackat','recallme','originatecalleridnum','originatecalleridname','prototype','\x22%s\x22\x20<%s>','dialCutDigit','getQueue','exports','util','lodash','moment','isNil','string','voiceQueue','uniqueid','name','Contact','firstName','lastName','queue','active'];(function(_0x2e3107,_0x25f970){var _0x833d69=function(_0x420e78){while(--_0x420e78){_0x2e3107['push'](_0x2e3107['shift']());}};_0x833d69(++_0x25f970);}(_0x2edc,0x101));var _0xc2ed=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2edc[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xc2ed('0x0'));var _=require(_0xc2ed('0x1'));var moment=require(_0xc2ed('0x2'));function checkNameSurname(_0x2306ab,_0x37bd08,_0x4f0d7c){var _0x193118='';if(!_[_0xc2ed('0x3')](_0x37bd08)&&_0xc2ed('0x4')===typeof _0x37bd08){_0x193118+=_0x37bd08;}if(!_['isNil'](_0x4f0d7c)&&_0xc2ed('0x4')===typeof _0x4f0d7c){_0x193118+='\x20'+_0x4f0d7c;}if(_0x193118!==''){return _0x193118;}return _0x2306ab;}function Action(_0x4a6957,_0x1e22ac,_0x15fe6d){this[_0xc2ed('0x5')]=_0x4a6957;this[_0xc2ed('0x6')]=_0x15fe6d||undefined;this[_0xc2ed('0x7')]=checkNameSurname(_0x1e22ac[_0xc2ed('0x8')]['phone'],_0x1e22ac[_0xc2ed('0x8')][_0xc2ed('0x9')],_0x1e22ac['Contact'][_0xc2ed('0xa')]);this['number']=_0x1e22ac[_0xc2ed('0x8')]['phone'];this[_0xc2ed('0xb')]=_0x4a6957[_0xc2ed('0x7')];this[_0xc2ed('0xc')]=_0x1e22ac['active']||![];this[_0xc2ed('0xd')]=_0x4a6957['type'];this[_0xc2ed('0xe')]=_0x4a6957[_0xc2ed('0xe')]||0x3;this[_0xc2ed('0xf')]=_0x1e22ac[_0xc2ed('0xf')];this[_0xc2ed('0x10')]=_0x1e22ac[_0xc2ed('0x10')];this[_0xc2ed('0x11')]=_0x1e22ac[_0xc2ed('0x11')];this[_0xc2ed('0x12')]=_0x1e22ac[_0xc2ed('0x12')];this[_0xc2ed('0x13')]=_0x1e22ac[_0xc2ed('0x13')];this[_0xc2ed('0x14')]=_0x1e22ac[_0xc2ed('0x14')];this[_0xc2ed('0x15')]=_0x1e22ac[_0xc2ed('0x15')];this[_0xc2ed('0x16')]=_0x1e22ac['countmachineretry'];this[_0xc2ed('0x17')]=_0x1e22ac[_0xc2ed('0x17')];this[_0xc2ed('0x18')]=_0x1e22ac[_0xc2ed('0x18')];this[_0xc2ed('0x19')]=_0x1e22ac[_0xc2ed('0x19')];this['UserId']=_0x1e22ac[_0xc2ed('0x1a')];this['VoiceQueueId']=_0x1e22ac[_0xc2ed('0x1b')];this['CampaignId']=_0x1e22ac[_0xc2ed('0x1c')];this[_0xc2ed('0x1d')]=_0x1e22ac['id'];this[_0xc2ed('0x1e')]=_0x1e22ac[_0xc2ed('0x8')][_0xc2ed('0x9')]||'';this[_0xc2ed('0x1f')]=moment()[_0xc2ed('0x20')](_0xc2ed('0x21'));this['callback']=_0x1e22ac[_0xc2ed('0x22')];this[_0xc2ed('0x23')]=_0x1e22ac['callbackuniqueid'];this[_0xc2ed('0x24')]=_0x1e22ac[_0xc2ed('0x24')];this[_0xc2ed('0x25')]=_0x1e22ac[_0xc2ed('0x25')];this[_0xc2ed('0x26')]='';this[_0xc2ed('0x27')]='';}Action[_0xc2ed('0x28')]['getCaller']=function(){return util[_0xc2ed('0x20')](_0xc2ed('0x29'),this['name'],this['voiceQueue'][_0xc2ed('0x2a')]>0x0?this['number']['substring'](this[_0xc2ed('0x5')][_0xc2ed('0x2a')]):this['number']);};Action['prototype'][_0xc2ed('0x2b')]=function(){return this['queue'];};module[_0xc2ed('0x2c')]=Action;
\ No newline at end of file
+var _0xda05=['countmachineretry','countagentrejectretry','ContactId','ListId','UserId','VoiceQueueId','CampaignId','idHopper','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','recallme','originatecalleridnum','originatecalleridname','prototype','getCaller','dialCutDigit','substring','queue','exports','util','lodash','moment','isNil','string','voiceQueue','uniqueid','name','Contact','phone','firstName','lastName','number','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry'];(function(_0x1ecaa5,_0x1a2fec){var _0x353b9d=function(_0x3b2a52){while(--_0x3b2a52){_0x1ecaa5['push'](_0x1ecaa5['shift']());}};_0x353b9d(++_0x1a2fec);}(_0xda05,0x1d8));var _0x5da0=function(_0x442ea1,_0x25bb90){_0x442ea1=_0x442ea1-0x0;var _0x181711=_0xda05[_0x442ea1];return _0x181711;};'use strict';var util=require(_0x5da0('0x0'));var _=require(_0x5da0('0x1'));var moment=require(_0x5da0('0x2'));function checkNameSurname(_0x27823b,_0x5d6563,_0x22ec8c){var _0x1cebaa='';if(!_[_0x5da0('0x3')](_0x5d6563)&&_0x5da0('0x4')===typeof _0x5d6563){_0x1cebaa+=_0x5d6563;}if(!_[_0x5da0('0x3')](_0x22ec8c)&&_0x5da0('0x4')===typeof _0x22ec8c){_0x1cebaa+='\x20'+_0x22ec8c;}if(_0x1cebaa!==''){return _0x1cebaa;}return _0x27823b;}function Action(_0x57dfed,_0x142ba0,_0x3077ee){this[_0x5da0('0x5')]=_0x57dfed;this[_0x5da0('0x6')]=_0x3077ee||undefined;this[_0x5da0('0x7')]=checkNameSurname(_0x142ba0[_0x5da0('0x8')][_0x5da0('0x9')],_0x142ba0[_0x5da0('0x8')][_0x5da0('0xa')],_0x142ba0[_0x5da0('0x8')][_0x5da0('0xb')]);this[_0x5da0('0xc')]=_0x142ba0['Contact']['phone'];this['queue']=_0x57dfed[_0x5da0('0x7')];this[_0x5da0('0xd')]=_0x142ba0[_0x5da0('0xd')]||![];this['type']=_0x57dfed[_0x5da0('0xe')];this[_0x5da0('0xf')]=_0x57dfed[_0x5da0('0xf')]||0x3;this[_0x5da0('0x10')]=_0x142ba0['scheduledat'];this['countbusyretry']=_0x142ba0[_0x5da0('0x11')];this[_0x5da0('0x12')]=_0x142ba0[_0x5da0('0x12')];this[_0x5da0('0x13')]=_0x142ba0[_0x5da0('0x13')];this[_0x5da0('0x14')]=_0x142ba0[_0x5da0('0x14')];this[_0x5da0('0x15')]=_0x142ba0[_0x5da0('0x15')];this[_0x5da0('0x16')]=_0x142ba0['countabandonedretry'];this[_0x5da0('0x17')]=_0x142ba0[_0x5da0('0x17')];this[_0x5da0('0x18')]=_0x142ba0[_0x5da0('0x18')];this['ContactId']=_0x142ba0[_0x5da0('0x19')];this['ListId']=_0x142ba0[_0x5da0('0x1a')];this[_0x5da0('0x1b')]=_0x142ba0[_0x5da0('0x1b')];this[_0x5da0('0x1c')]=_0x142ba0['VoiceQueueId'];this[_0x5da0('0x1d')]=_0x142ba0[_0x5da0('0x1d')];this[_0x5da0('0x1e')]=_0x142ba0['id'];this['ContactFirstName']=_0x142ba0[_0x5da0('0x8')]['firstName']||'';this[_0x5da0('0x1f')]=moment()[_0x5da0('0x20')](_0x5da0('0x21'));this[_0x5da0('0x22')]=_0x142ba0[_0x5da0('0x22')];this[_0x5da0('0x23')]=_0x142ba0[_0x5da0('0x23')];this['callbackat']=_0x142ba0['callbackat'];this[_0x5da0('0x24')]=_0x142ba0[_0x5da0('0x24')];this[_0x5da0('0x25')]='';this[_0x5da0('0x26')]='';}Action[_0x5da0('0x27')][_0x5da0('0x28')]=function(){return util[_0x5da0('0x20')]('\x22%s\x22\x20<%s>',this[_0x5da0('0x7')],this[_0x5da0('0x5')][_0x5da0('0x29')]>0x0?this['number'][_0x5da0('0x2a')](this[_0x5da0('0x5')][_0x5da0('0x29')]):this[_0x5da0('0xc')]);};Action[_0x5da0('0x27')]['getQueue']=function(){return this[_0x5da0('0x2b')];};module[_0x5da0('0x2c')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcaf2=['ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','moment','milliseconds','seconds','statedesc','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','countabandonedretry','uniqueid','calleridname','number','starttime','responsetime','answertime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','holdtime','talktime','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId'];(function(_0x4fb40d,_0x4f079c){var _0x56d354=function(_0x4b7ab9){while(--_0x4b7ab9){_0x4fb40d['push'](_0x4fb40d['shift']());}};_0x56d354(++_0x4f079c);}(_0xcaf2,0x8a));var _0x2caf=function(_0x37870d,_0x356e02){_0x37870d=_0x37870d-0x0;var _0x1ae695=_0xcaf2[_0x37870d];return _0x1ae695;};'use strict';var util=require(_0x2caf('0x0'));var _=require('lodash');var moment=require(_0x2caf('0x1'));function getSeconds(_0x301fce,_0x47b94f){var _0x416629=moment(_0x301fce)[_0x2caf('0x2')](0x0);var _0x5b4a90=moment(_0x47b94f)[_0x2caf('0x2')](0x0);return _0x416629['diff'](_0x5b4a90,_0x2caf('0x3'));}function AgentComplete(_0xae320c,_0x249a4b){this['state']=0x4;this[_0x2caf('0x4')]=_0x2caf('0x5');this[_0x2caf('0x6')]=_0xae320c[_0x2caf('0x6')];this['type']=_0xae320c[_0x2caf('0x7')];this[_0x2caf('0x8')]=_0xae320c[_0x2caf('0x7')]===_0x2caf('0x9')?_0x2caf('0xa'):_0xae320c[_0x2caf('0x7')];this[_0x2caf('0xb')]=_0xae320c[_0x2caf('0xb')];this[_0x2caf('0xc')]=_0xae320c['countcongestionretry'];this[_0x2caf('0xd')]=_0xae320c[_0x2caf('0xd')];this[_0x2caf('0xe')]=_0xae320c[_0x2caf('0xb')]+_0xae320c[_0x2caf('0xc')]+_0xae320c[_0x2caf('0xd')]+_0xae320c[_0x2caf('0xf')]+_0xae320c[_0x2caf('0x10')]+_0xae320c['countabandonedretry']+_0xae320c[_0x2caf('0x11')]+_0xae320c[_0x2caf('0x12')];this['countnosuchnumberretry']=_0xae320c['countnosuchnumberretry'];this['countdropretry']=_0xae320c[_0x2caf('0x10')];this['countabandonedretry']=_0xae320c[_0x2caf('0x13')];this[_0x2caf('0x11')]=_0xae320c[_0x2caf('0x11')];this[_0x2caf('0x12')]=_0xae320c['countagentrejectretry'];this[_0x2caf('0x14')]=_0x249a4b['uniqueid'];this[_0x2caf('0x15')]=_0xae320c['name'];this['calleridnum']=_0xae320c[_0x2caf('0x16')];this['starttime']=_0xae320c[_0x2caf('0x17')];this[_0x2caf('0x18')]=_0xae320c['responsetime'];this[_0x2caf('0x19')]=_0xae320c[_0x2caf('0x19')];this[_0x2caf('0x1a')]=moment()[_0x2caf('0x1b')](_0x2caf('0x1c'));this['ringtime']=getSeconds(_0xae320c[_0x2caf('0x18')],_0xae320c[_0x2caf('0x17')]);this[_0x2caf('0x1d')]=getSeconds(_0xae320c[_0x2caf('0x19')],_0xae320c[_0x2caf('0x18')]);this[_0x2caf('0x1e')]=getSeconds(this[_0x2caf('0x1a')],_0xae320c[_0x2caf('0x19')]);this[_0x2caf('0xa')]=_0x249a4b[_0x2caf('0xa')];this[_0x2caf('0x1f')]=_0x249a4b['membername'];this[_0x2caf('0x20')]=_0x249a4b[_0x2caf('0x20')];this[_0x2caf('0x21')]=_0xae320c[_0x2caf('0x21')];this[_0x2caf('0x22')]=_0xae320c[_0x2caf('0x22')];this[_0x2caf('0x23')]=_0xae320c[_0x2caf('0x23')];this[_0x2caf('0x24')]=_0xae320c[_0x2caf('0x24')];this['ContactId']=_0xae320c[_0x2caf('0x25')];this[_0x2caf('0x26')]=_0xae320c[_0x2caf('0x26')];this[_0x2caf('0x27')]=_0xae320c[_0x2caf('0x27')];this[_0x2caf('0x28')]=_0xae320c[_0x2caf('0x28')];this[_0x2caf('0x29')]=_0xae320c[_0x2caf('0x29')];this[_0x2caf('0x2a')]=_0xae320c[_0x2caf('0x2a')]||'';this[_0x2caf('0x2b')]=_0xae320c[_0x2caf('0x2b')]||'';}module['exports']=AgentComplete;
\ No newline at end of file
+var _0x8a15=['originatecalleridname','exports','util','lodash','moment','milliseconds','diff','seconds','state','statedesc','Answer','scheduledat','type','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countagentrejectretry','countnosuchnumberretry','countmachineretry','uniqueid','calleridname','name','number','starttime','responsetime','answertime','endtime','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','talktime','queue','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum'];(function(_0x408787,_0x373c9c){var _0x51463d=function(_0xdd93ed){while(--_0xdd93ed){_0x408787['push'](_0x408787['shift']());}};_0x51463d(++_0x373c9c);}(_0x8a15,0x17a));var _0x58a1=function(_0x503699,_0x152145){_0x503699=_0x503699-0x0;var _0xd66c82=_0x8a15[_0x503699];return _0xd66c82;};'use strict';var util=require(_0x58a1('0x0'));var _=require(_0x58a1('0x1'));var moment=require(_0x58a1('0x2'));function getSeconds(_0x895c94,_0x158d7a){var _0x110bb9=moment(_0x895c94)[_0x58a1('0x3')](0x0);var _0x3d0667=moment(_0x158d7a)['milliseconds'](0x0);return _0x110bb9[_0x58a1('0x4')](_0x3d0667,_0x58a1('0x5'));}function AgentComplete(_0x21ee4a,_0x5f5dbb){this[_0x58a1('0x6')]=0x4;this[_0x58a1('0x7')]=_0x58a1('0x8');this[_0x58a1('0x9')]=_0x21ee4a[_0x58a1('0x9')];this[_0x58a1('0xa')]=_0x21ee4a[_0x58a1('0xa')];this['campaigntype']=_0x21ee4a['type']==='outbound'?'queue':_0x21ee4a[_0x58a1('0xa')];this['countbusyretry']=_0x21ee4a[_0x58a1('0xb')];this[_0x58a1('0xc')]=_0x21ee4a['countcongestionretry'];this['countnoanswerretry']=_0x21ee4a[_0x58a1('0xd')];this[_0x58a1('0xe')]=_0x21ee4a[_0x58a1('0xb')]+_0x21ee4a['countcongestionretry']+_0x21ee4a[_0x58a1('0xd')]+_0x21ee4a['countnosuchnumberretry']+_0x21ee4a[_0x58a1('0xf')]+_0x21ee4a[_0x58a1('0x10')]+_0x21ee4a['countmachineretry']+_0x21ee4a[_0x58a1('0x11')];this['countnosuchnumberretry']=_0x21ee4a[_0x58a1('0x12')];this[_0x58a1('0xf')]=_0x21ee4a[_0x58a1('0xf')];this[_0x58a1('0x10')]=_0x21ee4a[_0x58a1('0x10')];this['countmachineretry']=_0x21ee4a[_0x58a1('0x13')];this[_0x58a1('0x11')]=_0x21ee4a[_0x58a1('0x11')];this[_0x58a1('0x14')]=_0x5f5dbb['uniqueid'];this[_0x58a1('0x15')]=_0x21ee4a[_0x58a1('0x16')];this['calleridnum']=_0x21ee4a[_0x58a1('0x17')];this[_0x58a1('0x18')]=_0x21ee4a[_0x58a1('0x18')];this[_0x58a1('0x19')]=_0x21ee4a[_0x58a1('0x19')];this[_0x58a1('0x1a')]=_0x21ee4a[_0x58a1('0x1a')];this[_0x58a1('0x1b')]=moment()['format'](_0x58a1('0x1c'));this[_0x58a1('0x1d')]=getSeconds(_0x21ee4a[_0x58a1('0x19')],_0x21ee4a[_0x58a1('0x18')]);this[_0x58a1('0x1e')]=getSeconds(_0x21ee4a[_0x58a1('0x1a')],_0x21ee4a[_0x58a1('0x19')]);this[_0x58a1('0x1f')]=getSeconds(this[_0x58a1('0x1b')],_0x21ee4a[_0x58a1('0x1a')]);this[_0x58a1('0x20')]=_0x5f5dbb[_0x58a1('0x20')];this[_0x58a1('0x21')]=_0x5f5dbb[_0x58a1('0x21')];this[_0x58a1('0x22')]=_0x5f5dbb['reason'];this[_0x58a1('0x23')]=_0x21ee4a[_0x58a1('0x23')];this[_0x58a1('0x24')]=_0x21ee4a[_0x58a1('0x24')];this[_0x58a1('0x25')]=_0x21ee4a[_0x58a1('0x25')];this['recallme']=_0x21ee4a[_0x58a1('0x26')];this[_0x58a1('0x27')]=_0x21ee4a[_0x58a1('0x27')];this[_0x58a1('0x28')]=_0x21ee4a[_0x58a1('0x28')];this[_0x58a1('0x29')]=_0x21ee4a[_0x58a1('0x29')];this['VoiceQueueId']=_0x21ee4a[_0x58a1('0x2a')];this[_0x58a1('0x2b')]=_0x21ee4a[_0x58a1('0x2b')];this[_0x58a1('0x2c')]=_0x21ee4a[_0x58a1('0x2c')]||'';this['originatecalleridname']=_0x21ee4a[_0x58a1('0x2d')]||'';}module[_0x58a1('0x2e')]=AgentComplete;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4873=['lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','queue','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util'];(function(_0x5db1fd,_0x4877ef){var _0x2f70ec=function(_0x531817){while(--_0x531817){_0x5db1fd['push'](_0x5db1fd['shift']());}};_0x2f70ec(++_0x4877ef);}(_0x4873,0x1df));var _0x3487=function(_0x18a4f0,_0x1d6838){_0x18a4f0=_0x18a4f0-0x0;var _0x5729eb=_0x4873[_0x18a4f0];return _0x5729eb;};'use strict';var util=require(_0x3487('0x0'));var _=require(_0x3487('0x1'));var moment=require(_0x3487('0x2'));function getSeconds(_0x4ca7ad,_0x10ebd5){var _0x4876b8=moment(_0x4ca7ad)['milliseconds'](0x0);var _0x24ca51=moment(_0x10ebd5)[_0x3487('0x3')](0x0);return _0x4876b8[_0x3487('0x4')](_0x24ca51,_0x3487('0x5'));}function Final(_0x2fc292){this[_0x3487('0x6')]=_0x2fc292[_0x3487('0x6')];this[_0x3487('0x7')]=_0x2fc292['scheduledat'];this[_0x3487('0x8')]=_0x2fc292[_0x3487('0x8')];this[_0x3487('0x9')]=_0x2fc292[_0x3487('0x8')]===_0x3487('0xa')?'queue':_0x2fc292[_0x3487('0x8')];this['countbusyretry']=_0x2fc292[_0x3487('0xb')];this[_0x3487('0xc')]=_0x2fc292['countcongestionretry'];this['countnoanswerretry']=_0x2fc292[_0x3487('0xd')];this[_0x3487('0xe')]=_0x2fc292['countbusyretry']+_0x2fc292[_0x3487('0xc')]+_0x2fc292['countnoanswerretry']+_0x2fc292['countnosuchnumberretry']+_0x2fc292[_0x3487('0xf')]+_0x2fc292[_0x3487('0x10')]+_0x2fc292[_0x3487('0x11')]+_0x2fc292[_0x3487('0x12')];this[_0x3487('0x13')]=_0x2fc292[_0x3487('0x13')];this['countdropretry']=_0x2fc292[_0x3487('0xf')];this[_0x3487('0x10')]=_0x2fc292[_0x3487('0x10')];this['countmachineretry']=_0x2fc292[_0x3487('0x11')];this[_0x3487('0x12')]=_0x2fc292[_0x3487('0x12')];this[_0x3487('0x14')]=_0x2fc292[_0x3487('0x14')];this[_0x3487('0x15')]=_0x2fc292[_0x3487('0x15')];this[_0x3487('0x16')]=_0x2fc292[_0x3487('0x16')];this[_0x3487('0x17')]=_0x2fc292[_0x3487('0x17')];this[_0x3487('0x18')]=_0x2fc292[_0x3487('0x18')];this[_0x3487('0x19')]=_0x2fc292['responsetime'];this[_0x3487('0x1a')]=_0x2fc292['ringtime']||0x0;this[_0x3487('0x1b')]=_0x2fc292[_0x3487('0x1b')]||0x0;this[_0x3487('0x1c')]=_0x2fc292[_0x3487('0x1c')]||0x0;this[_0x3487('0x1d')]=_0x2fc292[_0x3487('0x1d')];this['callbackuniqueid']=_0x2fc292[_0x3487('0x1e')];this[_0x3487('0x1f')]=_0x2fc292[_0x3487('0x1f')];this[_0x3487('0x20')]=_0x2fc292[_0x3487('0x20')];this[_0x3487('0x21')]=_0x2fc292['ContactId'];this[_0x3487('0x22')]=_0x2fc292[_0x3487('0x22')];this[_0x3487('0x23')]=_0x2fc292['UserId'];this['VoiceQueueId']=_0x2fc292[_0x3487('0x24')];this[_0x3487('0x25')]=_0x2fc292[_0x3487('0x25')];this[_0x3487('0x26')]=_0x2fc292['originatecalleridnum']||'';this[_0x3487('0x27')]=_0x2fc292[_0x3487('0x27')]||'';}module['exports']=Final;
\ No newline at end of file
+var _0xcca7=['milliseconds','diff','seconds','uniqueid','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','calleridnum','starttime','responsetime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment'];(function(_0x59b25d,_0x5eeea3){var _0x46782a=function(_0x3869de){while(--_0x3869de){_0x59b25d['push'](_0x59b25d['shift']());}};_0x46782a(++_0x5eeea3);}(_0xcca7,0x1aa));var _0x7cca=function(_0x2416d3,_0x1d2de8){_0x2416d3=_0x2416d3-0x0;var _0x31cb1b=_0xcca7[_0x2416d3];return _0x31cb1b;};'use strict';var util=require(_0x7cca('0x0'));var _=require(_0x7cca('0x1'));var moment=require(_0x7cca('0x2'));function getSeconds(_0x33db4f,_0x5cfce5){var _0x4c311e=moment(_0x33db4f)[_0x7cca('0x3')](0x0);var _0x533b00=moment(_0x5cfce5)[_0x7cca('0x3')](0x0);return _0x4c311e[_0x7cca('0x4')](_0x533b00,_0x7cca('0x5'));}function Final(_0x312e98){this[_0x7cca('0x6')]=_0x312e98[_0x7cca('0x6')];this['scheduledat']=_0x312e98['scheduledat'];this[_0x7cca('0x7')]=_0x312e98[_0x7cca('0x7')];this[_0x7cca('0x8')]=_0x312e98[_0x7cca('0x7')]===_0x7cca('0x9')?_0x7cca('0xa'):_0x312e98[_0x7cca('0x7')];this[_0x7cca('0xb')]=_0x312e98[_0x7cca('0xb')];this[_0x7cca('0xc')]=_0x312e98['countcongestionretry'];this[_0x7cca('0xd')]=_0x312e98[_0x7cca('0xd')];this[_0x7cca('0xe')]=_0x312e98[_0x7cca('0xb')]+_0x312e98[_0x7cca('0xc')]+_0x312e98['countnoanswerretry']+_0x312e98[_0x7cca('0xf')]+_0x312e98[_0x7cca('0x10')]+_0x312e98[_0x7cca('0x11')]+_0x312e98['countmachineretry']+_0x312e98['countagentrejectretry'];this[_0x7cca('0xf')]=_0x312e98[_0x7cca('0xf')];this[_0x7cca('0x10')]=_0x312e98[_0x7cca('0x10')];this[_0x7cca('0x11')]=_0x312e98[_0x7cca('0x11')];this[_0x7cca('0x12')]=_0x312e98['countmachineretry'];this[_0x7cca('0x13')]=_0x312e98['countagentrejectretry'];this['queue']=_0x312e98['queue'];this[_0x7cca('0x14')]=_0x312e98[_0x7cca('0x14')];this[_0x7cca('0x15')]=_0x312e98[_0x7cca('0x15')];this[_0x7cca('0x16')]=_0x312e98['starttime'];this[_0x7cca('0x17')]=_0x312e98['responsetime'];this['endtime']=_0x312e98['responsetime'];this[_0x7cca('0x18')]=_0x312e98[_0x7cca('0x18')]||0x0;this[_0x7cca('0x19')]=_0x312e98[_0x7cca('0x19')]||0x0;this[_0x7cca('0x1a')]=_0x312e98[_0x7cca('0x1a')]||0x0;this[_0x7cca('0x1b')]=_0x312e98[_0x7cca('0x1b')];this['callbackuniqueid']=_0x312e98[_0x7cca('0x1c')];this[_0x7cca('0x1d')]=_0x312e98[_0x7cca('0x1d')];this[_0x7cca('0x1e')]=_0x312e98['recallme'];this[_0x7cca('0x1f')]=_0x312e98[_0x7cca('0x1f')];this[_0x7cca('0x20')]=_0x312e98[_0x7cca('0x20')];this[_0x7cca('0x21')]=_0x312e98[_0x7cca('0x21')];this[_0x7cca('0x22')]=_0x312e98[_0x7cca('0x22')];this['CampaignId']=_0x312e98[_0x7cca('0x23')];this[_0x7cca('0x24')]=_0x312e98[_0x7cca('0x24')]||'';this[_0x7cca('0x25')]=_0x312e98[_0x7cca('0x25')]||'';}module[_0x7cca('0x26')]=Final;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb10=['countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','calleridnum','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','exports','util','lodash','moment','milliseconds','seconds','state','statedesc','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xcb10,0x1d6));var _0x0cb1=function(_0x45d3f0,_0x4be53f){_0x45d3f0=_0x45d3f0-0x0;var _0x314b79=_0xcb10[_0x45d3f0];return _0x314b79;};'use strict';var util=require(_0x0cb1('0x0'));var _=require(_0x0cb1('0x1'));var moment=require(_0x0cb1('0x2'));function getSeconds(_0x25d80b,_0x4c87c5){var _0x58afbf=moment(_0x25d80b)[_0x0cb1('0x3')](0x0);var _0x1c97c7=moment(_0x4c87c5)['milliseconds'](0x0);return _0x58afbf['diff'](_0x1c97c7,_0x0cb1('0x4'));}function Hangup(_0x325c96,_0x430402){this[_0x0cb1('0x5')]=0x4;this[_0x0cb1('0x6')]=_0x0cb1('0x7');this[_0x0cb1('0x8')]=_0x325c96[_0x0cb1('0x8')];this[_0x0cb1('0x9')]=_0x325c96['type'];this[_0x0cb1('0xa')]=_0x325c96[_0x0cb1('0x9')]===_0x0cb1('0xb')?_0x0cb1('0xc'):_0x325c96[_0x0cb1('0x9')];this[_0x0cb1('0xd')]=_0x325c96['countbusyretry'];this['countcongestionretry']=_0x325c96['countcongestionretry'];this[_0x0cb1('0xe')]=_0x325c96[_0x0cb1('0xe')];this[_0x0cb1('0xf')]=_0x325c96[_0x0cb1('0xd')]+_0x325c96['countcongestionretry']+_0x325c96['countnoanswerretry']+_0x325c96[_0x0cb1('0x10')]+_0x325c96[_0x0cb1('0x11')]+_0x325c96[_0x0cb1('0x12')]+_0x325c96[_0x0cb1('0x13')]+_0x325c96[_0x0cb1('0x14')];this[_0x0cb1('0x10')]=_0x325c96[_0x0cb1('0x10')];this['countdropretry']=_0x325c96[_0x0cb1('0x11')];this[_0x0cb1('0x12')]=_0x325c96[_0x0cb1('0x12')];this[_0x0cb1('0x13')]=_0x325c96[_0x0cb1('0x13')];this[_0x0cb1('0x14')]=_0x325c96[_0x0cb1('0x14')];this[_0x0cb1('0x15')]=_0x430402[_0x0cb1('0x15')];this[_0x0cb1('0x16')]=_0x325c96['name'];this[_0x0cb1('0x17')]=_0x325c96[_0x0cb1('0x18')];this['starttime']=_0x325c96[_0x0cb1('0x19')];this[_0x0cb1('0x1a')]=_0x325c96[_0x0cb1('0x1a')];this[_0x0cb1('0x1b')]=moment()[_0x0cb1('0x1c')](_0x0cb1('0x1d'));this[_0x0cb1('0x1e')]=getSeconds(_0x325c96['responsetime'],_0x325c96[_0x0cb1('0x19')]);this[_0x0cb1('0x1f')]=0x0;this['talktime']=getSeconds(this[_0x0cb1('0x1b')],_0x325c96[_0x0cb1('0x1a')]);this[_0x0cb1('0xc')]=_0x325c96[_0x0cb1('0xc')];this['membername']=_0x0cb1('0x20');this[_0x0cb1('0x21')]=_0x430402[_0x0cb1('0x22')];this[_0x0cb1('0x23')]=_0x325c96[_0x0cb1('0x23')];this[_0x0cb1('0x24')]=_0x325c96[_0x0cb1('0x24')];this[_0x0cb1('0x25')]=_0x325c96[_0x0cb1('0x25')];this['recallme']=_0x325c96['recallme'];this[_0x0cb1('0x26')]=_0x325c96[_0x0cb1('0x26')];this[_0x0cb1('0x27')]=_0x325c96[_0x0cb1('0x27')];this[_0x0cb1('0x28')]=_0x325c96[_0x0cb1('0x28')];this[_0x0cb1('0x29')]=_0x325c96[_0x0cb1('0x29')];this[_0x0cb1('0x2a')]=_0x325c96[_0x0cb1('0x2a')];}module[_0x0cb1('0x2b')]=Hangup;
\ No newline at end of file
+var _0xb055=['countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','name','calleridnum','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','lodash','moment','milliseconds','diff','seconds','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry'];(function(_0xf1791b,_0x2e2854){var _0x4ed802=function(_0xead908){while(--_0xead908){_0xf1791b['push'](_0xf1791b['shift']());}};_0x4ed802(++_0x2e2854);}(_0xb055,0x181));var _0x5b05=function(_0x371799,_0x565cf5){_0x371799=_0x371799-0x0;var _0x5f2802=_0xb055[_0x371799];return _0x5f2802;};'use strict';var util=require('util');var _=require(_0x5b05('0x0'));var moment=require(_0x5b05('0x1'));function getSeconds(_0x16fdc8,_0x42add1){var _0x260df0=moment(_0x16fdc8)[_0x5b05('0x2')](0x0);var _0x1a34bc=moment(_0x42add1)[_0x5b05('0x2')](0x0);return _0x260df0[_0x5b05('0x3')](_0x1a34bc,_0x5b05('0x4'));}function Hangup(_0x214172,_0x221b98){this['state']=0x4;this['statedesc']='Answer';this[_0x5b05('0x5')]=_0x214172['scheduledat'];this[_0x5b05('0x6')]=_0x214172[_0x5b05('0x6')];this[_0x5b05('0x7')]=_0x214172[_0x5b05('0x6')]===_0x5b05('0x8')?_0x5b05('0x9'):_0x214172[_0x5b05('0x6')];this[_0x5b05('0xa')]=_0x214172['countbusyretry'];this[_0x5b05('0xb')]=_0x214172['countcongestionretry'];this[_0x5b05('0xc')]=_0x214172[_0x5b05('0xc')];this[_0x5b05('0xd')]=_0x214172[_0x5b05('0xa')]+_0x214172[_0x5b05('0xb')]+_0x214172[_0x5b05('0xc')]+_0x214172[_0x5b05('0xe')]+_0x214172[_0x5b05('0xf')]+_0x214172[_0x5b05('0x10')]+_0x214172['countmachineretry']+_0x214172['countagentrejectretry'];this[_0x5b05('0xe')]=_0x214172[_0x5b05('0xe')];this[_0x5b05('0xf')]=_0x214172['countdropretry'];this[_0x5b05('0x10')]=_0x214172[_0x5b05('0x10')];this[_0x5b05('0x11')]=_0x214172[_0x5b05('0x11')];this['countagentrejectretry']=_0x214172[_0x5b05('0x12')];this['uniqueid']=_0x221b98['uniqueid'];this[_0x5b05('0x13')]=_0x214172[_0x5b05('0x14')];this[_0x5b05('0x15')]=_0x214172[_0x5b05('0x16')];this[_0x5b05('0x17')]=_0x214172[_0x5b05('0x17')];this[_0x5b05('0x18')]=_0x214172[_0x5b05('0x18')];this[_0x5b05('0x19')]=moment()[_0x5b05('0x1a')](_0x5b05('0x1b'));this[_0x5b05('0x1c')]=getSeconds(_0x214172[_0x5b05('0x18')],_0x214172[_0x5b05('0x17')]);this[_0x5b05('0x1d')]=0x0;this['talktime']=getSeconds(this['endtime'],_0x214172[_0x5b05('0x18')]);this['queue']=_0x214172[_0x5b05('0x9')];this['membername']='IVR';this['reason']=_0x221b98[_0x5b05('0x1e')];this[_0x5b05('0x1f')]=_0x214172[_0x5b05('0x1f')];this[_0x5b05('0x20')]=_0x214172[_0x5b05('0x20')];this[_0x5b05('0x21')]=_0x214172[_0x5b05('0x21')];this[_0x5b05('0x22')]=_0x214172['recallme'];this[_0x5b05('0x23')]=_0x214172[_0x5b05('0x23')];this[_0x5b05('0x24')]=_0x214172['ListId'];this[_0x5b05('0x25')]=_0x214172['UserId'];this[_0x5b05('0x26')]=_0x214172[_0x5b05('0x26')];this[_0x5b05('0x27')]=_0x214172[_0x5b05('0x27')];}module['exports']=Hangup;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c47=['type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countnosuchnumberretry','countagentrejectretry','calleridname','name','calleridnum','number','starttime','responsetime','ringtime','holdtime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat'];(function(_0x448275,_0x2ef796){var _0x223397=function(_0x4ed33c){while(--_0x4ed33c){_0x448275['push'](_0x448275['shift']());}};_0x223397(++_0x2ef796);}(_0x6c47,0x188));var _0x76c4=function(_0x193461,_0x42ce71){_0x193461=_0x193461-0x0;var _0x4c237c=_0x6c47[_0x193461];return _0x4c237c;};'use strict';var util=require(_0x76c4('0x0'));var _=require(_0x76c4('0x1'));var moment=require(_0x76c4('0x2'));function getSeconds(_0x4b7f07,_0x5ed8fb){var _0x31ace6=moment(_0x4b7f07)[_0x76c4('0x3')](0x0);var _0x459f1f=moment(_0x5ed8fb)['milliseconds'](0x0);return _0x31ace6[_0x76c4('0x4')](_0x459f1f,_0x76c4('0x5'));}function History(_0x13f8be){this[_0x76c4('0x6')]=_0x13f8be[_0x76c4('0x6')];this[_0x76c4('0x7')]=_0x13f8be[_0x76c4('0x7')]||undefined;this[_0x76c4('0x8')]=_0x13f8be[_0x76c4('0x8')];this[_0x76c4('0x9')]=_0x13f8be[_0x76c4('0x8')]===_0x76c4('0xa')?_0x76c4('0xb'):_0x13f8be[_0x76c4('0x8')];this['countbusyretry']=_0x13f8be[_0x76c4('0xc')];this[_0x76c4('0xd')]=_0x13f8be[_0x76c4('0xd')];this[_0x76c4('0xe')]=_0x13f8be['countnoanswerretry'];this[_0x76c4('0xf')]=_0x13f8be['countbusyretry']+_0x13f8be[_0x76c4('0xd')]+_0x13f8be[_0x76c4('0xe')]+_0x13f8be['countnosuchnumberretry']+_0x13f8be[_0x76c4('0x10')]+_0x13f8be[_0x76c4('0x11')]+_0x13f8be[_0x76c4('0x12')]+_0x13f8be['countagentrejectretry'];this[_0x76c4('0x13')]=_0x13f8be[_0x76c4('0x13')];this[_0x76c4('0x10')]=_0x13f8be[_0x76c4('0x10')];this[_0x76c4('0x11')]=_0x13f8be[_0x76c4('0x11')];this[_0x76c4('0x12')]=_0x13f8be[_0x76c4('0x12')];this[_0x76c4('0x14')]=_0x13f8be['countagentrejectretry'];this[_0x76c4('0xb')]=_0x13f8be[_0x76c4('0xb')];this[_0x76c4('0x15')]=_0x13f8be[_0x76c4('0x16')];this[_0x76c4('0x17')]=_0x13f8be[_0x76c4('0x18')];this['starttime']=_0x13f8be[_0x76c4('0x19')];this[_0x76c4('0x1a')]=_0x13f8be[_0x76c4('0x1a')];this['endtime']=_0x13f8be['responsetime'];this[_0x76c4('0x1b')]=getSeconds(_0x13f8be[_0x76c4('0x1a')],_0x13f8be[_0x76c4('0x19')]);this[_0x76c4('0x1c')]=0x0;this['talktime']=0x0;this[_0x76c4('0x1d')]=_0x13f8be['callback'];this['callbackuniqueid']=_0x13f8be[_0x76c4('0x1e')];this['callbackat']=_0x13f8be[_0x76c4('0x1f')];this['recallme']=_0x13f8be[_0x76c4('0x20')];this[_0x76c4('0x21')]=_0x13f8be[_0x76c4('0x21')];this[_0x76c4('0x22')]=_0x13f8be[_0x76c4('0x22')];this[_0x76c4('0x23')]=_0x13f8be['UserId'];this[_0x76c4('0x24')]=_0x13f8be[_0x76c4('0x24')];this['CampaignId']=_0x13f8be[_0x76c4('0x25')];this[_0x76c4('0x26')]=_0x13f8be[_0x76c4('0x26')]||'';this['originatecalleridname']=_0x13f8be[_0x76c4('0x27')]||'';}module['exports']=History;
\ No newline at end of file
+var _0xd99b=['ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countagentrejectretry','countabandonedretry','calleridname','name','number','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId'];(function(_0x3765a7,_0x328a44){var _0x154834=function(_0x5024c2){while(--_0x5024c2){_0x3765a7['push'](_0x3765a7['shift']());}};_0x154834(++_0x328a44);}(_0xd99b,0x11e));var _0xbd99=function(_0x32b066,_0x8c6b13){_0x32b066=_0x32b066-0x0;var _0x34c871=_0xd99b[_0x32b066];return _0x34c871;};'use strict';var util=require(_0xbd99('0x0'));var _=require(_0xbd99('0x1'));var moment=require(_0xbd99('0x2'));function getSeconds(_0x25a3d5,_0x4c3e1a){var _0x44b65e=moment(_0x25a3d5)[_0xbd99('0x3')](0x0);var _0x5237f8=moment(_0x4c3e1a)[_0xbd99('0x3')](0x0);return _0x44b65e[_0xbd99('0x4')](_0x5237f8,_0xbd99('0x5'));}function History(_0x459c24){this['uniqueid']=_0x459c24[_0xbd99('0x6')];this[_0xbd99('0x7')]=_0x459c24[_0xbd99('0x7')]||undefined;this[_0xbd99('0x8')]=_0x459c24[_0xbd99('0x8')];this[_0xbd99('0x9')]=_0x459c24[_0xbd99('0x8')]===_0xbd99('0xa')?_0xbd99('0xb'):_0x459c24[_0xbd99('0x8')];this[_0xbd99('0xc')]=_0x459c24[_0xbd99('0xc')];this[_0xbd99('0xd')]=_0x459c24['countcongestionretry'];this[_0xbd99('0xe')]=_0x459c24['countnoanswerretry'];this[_0xbd99('0xf')]=_0x459c24[_0xbd99('0xc')]+_0x459c24[_0xbd99('0xd')]+_0x459c24[_0xbd99('0xe')]+_0x459c24[_0xbd99('0x10')]+_0x459c24[_0xbd99('0x11')]+_0x459c24['countabandonedretry']+_0x459c24['countmachineretry']+_0x459c24[_0xbd99('0x12')];this[_0xbd99('0x10')]=_0x459c24['countnosuchnumberretry'];this[_0xbd99('0x11')]=_0x459c24[_0xbd99('0x11')];this[_0xbd99('0x13')]=_0x459c24[_0xbd99('0x13')];this['countmachineretry']=_0x459c24['countmachineretry'];this[_0xbd99('0x12')]=_0x459c24[_0xbd99('0x12')];this[_0xbd99('0xb')]=_0x459c24[_0xbd99('0xb')];this[_0xbd99('0x14')]=_0x459c24[_0xbd99('0x15')];this['calleridnum']=_0x459c24[_0xbd99('0x16')];this['starttime']=_0x459c24[_0xbd99('0x17')];this[_0xbd99('0x18')]=_0x459c24[_0xbd99('0x18')];this[_0xbd99('0x19')]=_0x459c24[_0xbd99('0x18')];this[_0xbd99('0x1a')]=getSeconds(_0x459c24[_0xbd99('0x18')],_0x459c24[_0xbd99('0x17')]);this[_0xbd99('0x1b')]=0x0;this[_0xbd99('0x1c')]=0x0;this[_0xbd99('0x1d')]=_0x459c24[_0xbd99('0x1d')];this[_0xbd99('0x1e')]=_0x459c24[_0xbd99('0x1e')];this[_0xbd99('0x1f')]=_0x459c24[_0xbd99('0x1f')];this[_0xbd99('0x20')]=_0x459c24[_0xbd99('0x20')];this[_0xbd99('0x21')]=_0x459c24[_0xbd99('0x21')];this[_0xbd99('0x22')]=_0x459c24[_0xbd99('0x22')];this[_0xbd99('0x23')]=_0x459c24[_0xbd99('0x23')];this[_0xbd99('0x24')]=_0x459c24['VoiceQueueId'];this[_0xbd99('0x25')]=_0x459c24[_0xbd99('0x25')];this[_0xbd99('0x26')]=_0x459c24[_0xbd99('0x26')]||'';this[_0xbd99('0x27')]=_0x459c24[_0xbd99('0x27')]||'';}module['exports']=History;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x851a=['erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','Trunk','active','callerid','format','voice:queue:%s','voice_queue:save','ivr','campaign:ivr:%s','campaign:save','isEmpty','info','-----\x20Stats\x20Predictive\x20---','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalAnsweredCalls','Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalDroppedCallsCallersExit','AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','---------\x20ErlangB\x20---------','Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','clearing\x20variable\x20start\x20progressive','handlePredictive','clearing\x20variable\x20handle\x20predictive','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','length','[decremetOriginate]\x20object\x20originated\x20is\x20negative','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','AVAILABLE_CONTACTS_FINISHED','sendMessageOneNotActive','is\x20not\x20active','IS_DISACTIVED','is\x20disactive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','state','statedesc','endtime','starttime','loopClearZombieChannels','clearZombieChannels','[actions]','undefined','Action','status','channel','catch','No\x20such\x20channel','updateOriginated','queue','[Dialer][checkChannel]','[Dialer][checkChannel][ivr]','resolve','then','[countReScheduled]\x20','[checkIsBlackList]\x20','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','unlockContact','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','getVoiceQueueRtPauses','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','notFound','saveInDb','merge','pick','ContactId','ListId','UserId','VoiceQueueId','CampaignId','[emptyContact][createHistory]','[emptyContact]','Success','isTrunkReachable','SIP/%s','uniqueid','isNil','variable','amdstatus','xcally-motion-dialer','dialAMDActive','value','HangupInAMD','membername','AMD','emit','custom:amd','buildObj','amd','[syncHangupInAMD][createHistory]','MACHINE','outboundAnswerAgiCallsDay','Machine','countmachineretry','countglobal','countcongestionretry','countnosuchnumberretry','countabandonedretry','countagentrejectretry','dialGlobalMaxRetry','stateGlobal','reason19\x20machine....','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','add','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','[rescheduleContact][Machine]','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','[syncAgentComplete][createHistory][0]','countdropretry','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','AnswerAGI','AGI','[syncHangupIvr]','dialQueueProject','reason','agent','agiafterat','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','answertime','queueCallerAbandonCreateState','droptime','responsetime','Drop','dropreason','dialQueueProject2','dialDropMaxRetry','dialDropRetryFrequency','[rescheduleContact][Drop]','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','CALLEREXIT','[rescheduleContact][Abandoned]','Abandoned','[syncAgentComplete][createHistory][11]','actionid','paused','stateinterface','locked','push','idHopper','queueStatusComplete','[booked][unlockQueueStatus]','[Catch][Preview][syncQueueStatusComplete]','[unlock][syncQueueStatusComplete]','_rr','unlockRR','[booked][RR]','contactAgent-idHopper:\x20','run','Agent:\x20','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','syncCampaigns','checkIsTrunkReachable','TrunkBackup','checkIfTime','ifTime','Failure','timezones','\x20Timezone\x20unknow\x20','command','iftime\x20%s,%s','interval','content','indexOf','true','all','some','GLOBAL_INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','checkDialMethod','dialMethod','progressive','power','handlePower','dialPowerLevel','booked','Queue','method\x20not\x20recognized','launchHandleIvr','handleIvr','dialGlobalInterval','dialTimezone','checkIfTimeIntervals','[syncQueueSummary]','[syncCampaigns]','\x5cw{0,','pow','replace','match','actionOriginate','object','originate','Contact','phone','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','dialQueueOptions','dialer','XMD-AMDINITIALSILENCE','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','XMD-AMDTOTALANALYSISTIME','dialAMDMinWordLength','XMD-AMDMAXIMUMNUMBEROFWORDS','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','createdAt','updatedAt','XMD-','toUpper','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','dialPrefix','trim','dialCutDigit','substring','[originateError]:\x20%s','OriginateError','[originate][error]','originate\x20action\x20Error','getQueue','response','callProgressDetecting','[callProgressDetecting]\x20','countbusyretry','countnoanswerretry','dialNoAnswerMaxRetry','dialBusyMaxRetry','dialBusyRetryFrequency','dialCongestionMaxRetry','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialAbandonedRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','[rescheduleContact][AgentReject]','entity\x20is\x20undefine','NoSuchNumber','custom:agentnosuchnumber','nosuchnumber','reason\x200\x20no\x20such\x20number....','NoAnswer','noanswer','[syncAgentComplete][createHistory][3]','checkRetriveMax','reason\x203\x20ringing\x20no\x20answer','outboundBusyCallsDay','Busy','custom:agentbusy','busy','[syncAgentComplete][createHistory][5]','Congestion','custom:agentcongestion','congestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','outboundAbandonedCallsDay','dialAbandonedMaxRetry','reason\x2011\x20abandoned','AgentReject','custom:agentreject','agentreject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','Global','[callProgressDetecting]','[moveContactManagedDialer][0]','round','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','[startMethodPredictive][StartProgressive]','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','dropRate','Dropped\x20calls\x20day','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','dialPredictiveInterval','started\x20in\x20predictive\x20at','averageHandleTime','getDataPredictive','startMethodPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','Unknown\x20Predictive','check\x20failure','getDataPredictiveOld','outboundQueuePauses','abandonmentRate','[CatchErlangB]','agentBusyFactor','busyFactor','[getDataPredictive]','floor','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','checkContactBlack','recallme','[booked][checkContactBlack]','queueStatusComplete:\x20','Queue:\x20','[unlockOriginate][syncQueueStatusComplete]','scheduledat','dialRecallMeTimeout','Agent','voicePause','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]','BLACKLIST','[Originate][MoveBlacklist]','inBlackList','limitCalls','dialOrderByScheduledAt','RUNNING','ivrTotalCallsDays','[actionOriginate]\x20','Contact.phone','[actionOriginateIvr]\x20','dialLimitQueue','not_inuse','reachable','countReScheduled','ACTIVE','[getContactDialer2]','tryOriginatePredictive','checkIsBlackList','[getContactDialerPredictive]','--------\x20Drop\x20Rate\x20--------','M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','m\x20=\x20','[abandonmentRate]','Ts\x20=\x20','p\x20=\x20','interval\x20=\x20','Amax\x20=\x20','[busyFactor]','Umin\x20=\x20','exports','util','bluebird','uuid','moment','md5','ioredis','../preview/util/util','../../../config/environment/','../../../config/logger','predictive','syncQueueSummary','../ami','redis','localhost','../rpc/cmHopper','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','./action','./history','./final','./agentComplete','./queueCallerAbandon','./hangup','env','XCALLY_IP_AGI','127.0.0.1','rrmemory','roundrobin','prototype','enqueue','tail','finally','sequence','preview','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','channels','actions','contactsId','uniqueId','startPredictive','startProgressive','queueBooked','queueBookedRR','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','agentcomplete','syncAgentComplete','custom:queuesummary','hangup','syncHangup','newexten','syncVarSet','syncQueueMember','queuestatuscomplete','syncQueueStatusComplete','loopCampaigns','isUndefined','message','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','\x20NOT\x20Active','INTERVAL_IS_NULL','\x20INTERVAL_IS_NULL','Interval','Intervals','[ifTime][Action]','Error','stringify','milliseconds','diff','outbound','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','talking','total','type','unmanaged','abandoned','waiting','loggedInDb','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundUnknownCallsDay','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated'];(function(_0x57b4c1,_0x4ab829){var _0x30d55e=function(_0x21a0b0){while(--_0x21a0b0){_0x57b4c1['push'](_0x57b4c1['shift']());}};_0x30d55e(++_0x4ab829);}(_0x851a,0x19b));var _0xa851=function(_0x45783c,_0x49c56d){_0x45783c=_0x45783c-0x0;var _0x1161da=_0x851a[_0x45783c];return _0x1161da;};'use strict';var util=require(_0xa851('0x0'));var _=require('lodash');var BPromise=require(_0xa851('0x1'));var uuid=require(_0xa851('0x2'));var moment=require(_0xa851('0x3'));var rr=require('rr');var md5=require(_0xa851('0x4'));var Redis=require(_0xa851('0x5'));var ut=require(_0xa851('0x6'));var config=require(_0xa851('0x7'));var logger=require(_0xa851('0x8'))('dialer');var loggerBooked=require(_0xa851('0x8'))('booked');var loggerPredictive=require(_0xa851('0x8'))(_0xa851('0x9'));var loggerPredictiveCalls=require(_0xa851('0x8'))('predictiveCalls');var loggerSyncQueueSummary=require(_0xa851('0x8'))(_0xa851('0xa'));var ami=require(_0xa851('0xb'));config[_0xa851('0xc')]=_['defaults'](config[_0xa851('0xc')],{'host':_0xa851('0xd'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xa851('0xc')]));var cmHopper=require(_0xa851('0xe'));var cmHopperHistory=require(_0xa851('0xf'));var cmHopperBlack=require(_0xa851('0x10'));var voiceQueueRt=require(_0xa851('0x11'));var Action=require(_0xa851('0x12'));var History=require(_0xa851('0x13'));var Final=require(_0xa851('0x14'));var AgentComplete=require(_0xa851('0x15'));var QueueCallerAbandon=require(_0xa851('0x16'));var Hangup=require(_0xa851('0x17'));var ipAgi=process[_0xa851('0x18')][_0xa851('0x19')]||_0xa851('0x1a');var strategy={'rrmemory':_0xa851('0x1b'),'roundrobin':_0xa851('0x1c')};var Sequence=function(){};Sequence[_0xa851('0x1d')][_0xa851('0x1e')]=function(_0x5d5e20){this[_0xa851('0x1f')]=this[_0xa851('0x1f')]?this[_0xa851('0x1f')][_0xa851('0x20')](_0x5d5e20):_0x5d5e20();};function Dialer(_0x5be85d,_0x905e2a){this[_0xa851('0x21')]=new Sequence();this[_0xa851('0x22')]=_0x905e2a;this[_0xa851('0x23')]=_0x5be85d[_0xa851('0x23')];this['campaigns']=_0x5be85d[_0xa851('0x24')];this['agents']=_0x5be85d[_0xa851('0x25')];this[_0xa851('0x26')]=_0x5be85d[_0xa851('0x26')];this[_0xa851('0x27')]=config[_0xa851('0x27')]||0x2;this[_0xa851('0x28')]={};this[_0xa851('0x29')]={};this[_0xa851('0x2a')]={};this[_0xa851('0x2b')]={};this['optionPredictive']={};this[_0xa851('0x2c')]={};this[_0xa851('0x2d')]={};this['ivrOriginated']={};this[_0xa851('0x2e')]={};this[_0xa851('0x2f')]={};ami['on']('agentconnect',this[_0xa851('0x30')][_0xa851('0x31')](this));ami['on'](_0xa851('0x32'),this[_0xa851('0x33')][_0xa851('0x31')](this));ami['on'](_0xa851('0x34'),this[_0xa851('0x35')][_0xa851('0x31')](this));ami['on'](_0xa851('0x36'),this[_0xa851('0x37')][_0xa851('0x31')](this));ami['on'](_0xa851('0x38'),this['syncQueueSummary'][_0xa851('0x31')](this));ami['on'](_0xa851('0x39'),this[_0xa851('0x3a')]['bind'](this));ami['on'](_0xa851('0x3b'),this['syncNewExten'][_0xa851('0x31')](this));ami['on']('varset',this[_0xa851('0x3c')][_0xa851('0x31')](this));ami['on']('queuemember',this[_0xa851('0x3d')][_0xa851('0x31')](this));ami['on'](_0xa851('0x3e'),this[_0xa851('0x3f')][_0xa851('0x31')](this));this[_0xa851('0x40')]();this['loopClearZombieChannels']();}function isNotNull(_0x356bc2){return _0x356bc2!==null&&!_[_0xa851('0x41')](_0x356bc2);}function checkIsLoggedIn(_0x8ceed0,_0x4a027b){return function(){if(_0x4a027b<=0x0){_0x8ceed0[_0xa851('0x42')]=_0xa851('0x43');throw _0x8ceed0[_0xa851('0x44')]+_0xa851('0x45');}};}function isActive(_0x25ce47){return _0x25ce47;}function checkIsActive(_0x2ede9f,_0x1b35f8){return function(){if(!isActive(_0x1b35f8)){_0x2ede9f[_0xa851('0x42')]=_0xa851('0x46');throw _0x2ede9f[_0xa851('0x44')]+_0xa851('0x47');}};}function checkInterval(_0x3e0b47){return function(){if(!isNotNull(_0x3e0b47['Interval'])){_0x3e0b47[_0xa851('0x42')]=_0xa851('0x48');throw _0x3e0b47[_0xa851('0x44')]+_0xa851('0x49');}if(!isNotNull(_0x3e0b47[_0xa851('0x4a')][_0xa851('0x4b')])){_0x3e0b47['message']='INTERVAL_IS_NULL';throw _0x3e0b47[_0xa851('0x44')]+_0xa851('0x49');}if(!isNotNull(_['isEmpty'](_0x3e0b47[_0xa851('0x4a')][_0xa851('0x4b')]))){_0x3e0b47[_0xa851('0x42')]=_0xa851('0x48');throw _0x3e0b47[_0xa851('0x44')]+_0xa851('0x49');}};}function msgResponse(_0x2b90fe,_0x22ad29,_0x48000e){return{'action':_0x2b90fe,'response':_0x22ad29,'message':_0x48000e,'stack':_0x48000e};}function myreject(_0x49ab4c){return function(_0x3227a2){return _0x49ab4c(msgResponse(_0xa851('0x4c'),_0xa851('0x4d'),JSON[_0xa851('0x4e')](_0x3227a2)));};}function getSeconds(_0x1a0425,_0x2076fe){var _0x4f2dea=moment(_0x1a0425)[_0xa851('0x4f')](0x0);var _0xec5df4=moment(_0x2076fe)['milliseconds'](0x0);return _0x4f2dea[_0xa851('0x50')](_0xec5df4,'seconds');}function emit(_0x427167,_0x21621f,_0x6a9111){io['to'](_0x427167)['emit'](_0x21621f,_0x6a9111);}function emitVoiceQueueSummary(_0x3bcde2){if(_0x3bcde2['type']===_0xa851('0x51')){var _0x30f594={'id':_0x3bcde2['id'],'name':_0x3bcde2[_0xa851('0x44')],'strategy':_0x3bcde2[_0xa851('0x52')],'answered':_0x3bcde2[_0xa851('0x53')],'available':_0x3bcde2[_0xa851('0x54')],'loggedIn':_0x3bcde2[_0xa851('0x55')],'pTalking':_0x3bcde2[_0xa851('0x56')],'sumBillable':_0x3bcde2[_0xa851('0x57')],'sumDuration':_0x3bcde2[_0xa851('0x58')],'sumHoldTime':_0x3bcde2[_0xa851('0x59')]||0x0,'talking':_0x3bcde2[_0xa851('0x5a')],'total':_0x3bcde2[_0xa851('0x5b')],'type':_0x3bcde2[_0xa851('0x5c')],'unmanaged':_0x3bcde2[_0xa851('0x5d')],'abandoned':_0x3bcde2[_0xa851('0x5e')],'waiting':_0x3bcde2[_0xa851('0x5f')],'loggedInDb':_0x3bcde2[_0xa851('0x60')],'dialActive':_0x3bcde2[_0xa851('0x61')],'dialMethod':_0x3bcde2['dialMethod'],'dialOriginateCallerIdName':_0x3bcde2[_0xa851('0x62')],'dialOriginateCallerIdNumber':_0x3bcde2[_0xa851('0x63')],'dialOriginateTimeout':_0x3bcde2[_0xa851('0x64')],'dialPrefix':_0x3bcde2['dialPrefix'],'outboundAnswerAgiCallsDay':_0x3bcde2['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x3bcde2[_0xa851('0x65')],'outboundBlacklistCallsDay':_0x3bcde2[_0xa851('0x66')],'outboundBusyCallsDay':_0x3bcde2['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x3bcde2[_0xa851('0x67')],'outboundDropCallsDayACS':_0x3bcde2[_0xa851('0x68')],'outboundDropCallsDayCallersExit':_0x3bcde2[_0xa851('0x69')],'outboundDropCallsDayTimeout':_0x3bcde2[_0xa851('0x6a')],'outboundNoAnswerCallsDay':_0x3bcde2[_0xa851('0x6b')],'outboundNoSuchCallsDay':_0x3bcde2[_0xa851('0x6c')],'outboundOriginateFailureCallsDay':_0x3bcde2[_0xa851('0x6d')],'outboundReCallsDay':_0x3bcde2[_0xa851('0x6e')],'outboundRejectCallsDay':_0x3bcde2['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x3bcde2[_0xa851('0x6f')],'predictiveIntervalAnsweredCalls':_0x3bcde2['predictiveIntervalAnsweredCalls'],'predictiveIntervalAvgHoldtime':_0x3bcde2[_0xa851('0x70')],'predictiveIntervalAvgTalktime':_0x3bcde2[_0xa851('0x71')],'predictiveIntervalDroppedCallsCallersExit':_0x3bcde2['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0x3bcde2[_0xa851('0x72')],'predictiveIntervalErlangCalls':_0x3bcde2[_0xa851('0x73')],'predictiveIntervalErlangCallsDroppedCalls':_0x3bcde2[_0xa851('0x74')],'predictiveIntervalHitRate':_0x3bcde2[_0xa851('0x75')],'predictiveIntervalMultiplicativeFactor':_0x3bcde2[_0xa851('0x76')],'predictiveIntervalPauses':_0x3bcde2[_0xa851('0x77')],'predictiveIntervalAvailable':_0x3bcde2['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x3bcde2[_0xa851('0x78')],'message':_0x3bcde2[_0xa851('0x42')],'originated':_0x3bcde2[_0xa851('0x79')],'erlangCalls':_0x3bcde2[_0xa851('0x7a')],'erlangCallToSecond':_0x3bcde2[_0xa851('0x7b')],'erlangAbandonmentRate':_0x3bcde2[_0xa851('0x7c')],'erlangBusyFactor':_0x3bcde2[_0xa851('0x7d')],'startPredictive':_0x3bcde2['startPredictive'],'startProgressive':_0x3bcde2[_0xa851('0x2d')]};if(_0x3bcde2[_0xa851('0x7e')]){_0x30f594['Trunk']={'id':_0x3bcde2[_0xa851('0x7e')]['id'],'name':_0x3bcde2[_0xa851('0x7e')][_0xa851('0x44')],'active':_0x3bcde2[_0xa851('0x7e')][_0xa851('0x7f')],'callerid':_0x3bcde2['Trunk'][_0xa851('0x80')]};}if(_0x3bcde2[_0xa851('0x4a')]){_0x30f594[_0xa851('0x4a')]={'id':_0x3bcde2[_0xa851('0x4a')]['id'],'name':_0x3bcde2[_0xa851('0x4a')][_0xa851('0x44')]};}var _0x578e31=md5(JSON[_0xa851('0x4e')](_0x30f594));if(_0x3bcde2[_0xa851('0x4')]!==_0x578e31){_0x3bcde2['md5']=_0x578e31;emit(util[_0xa851('0x81')](_0xa851('0x82'),_0x30f594['name']),_0xa851('0x83'),_0x30f594);}}}function emitCampaignSummary(_0x1954f8){if(_0x1954f8[_0xa851('0x5c')]===_0xa851('0x84')){emit(util[_0xa851('0x81')](_0xa851('0x85'),_0x1954f8['name']),_0xa851('0x86'),_0x1954f8);}}function checkGetDataPredictive(_0x1c5494){if(isNotNull(_0x1c5494)&&!_[_0xa851('0x87')](_0x1c5494)){loggerPredictive[_0xa851('0x88')](_0xa851('0x89'));loggerPredictive[_0xa851('0x88')](_0xa851('0x8a'),_0x1c5494[_0xa851('0x78')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x8b'),_0x1c5494[_0xa851('0x8c')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x8d'),_0x1c5494[_0xa851('0x72')]);loggerPredictive['info'](_0xa851('0x8e'),_0x1c5494[_0xa851('0x8f')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x90'),_0x1c5494[_0xa851('0x70')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x91'),_0x1c5494[_0xa851('0x71')]);loggerPredictive['info'](_0xa851('0x92'));if(_0x1c5494[_0xa851('0x78')]>0x0){if(!_['isUndefined'](_0x1c5494['predictiveIntervalAvgTalktime'])&&_0x1c5494[_0xa851('0x71')]>0x0){return!![];}loggerPredictive[_0xa851('0x88')](_0xa851('0x93'));if(!_[_0xa851('0x41')](_0x1c5494[_0xa851('0x70')])&&_0x1c5494[_0xa851('0x70')]>0x0){return!![];}loggerPredictive[_0xa851('0x88')](_0xa851('0x94'));}else{loggerPredictive[_0xa851('0x88')](_0xa851('0x95'));}}else{loggerPredictive[_0xa851('0x88')]('History\x20information\x20are\x20empty');}return![];}function mergeDataErlangB(_0x11a8e3){return function(_0x36d312){loggerPredictive[_0xa851('0x88')](_0xa851('0x96'));loggerPredictive[_0xa851('0x88')](_0xa851('0x97'),_0x36d312[_0xa851('0x7a')]);loggerPredictive[_0xa851('0x88')]('One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x36d312[_0xa851('0x7b')]);loggerPredictive['info'](_0xa851('0x98'),_0x36d312['erlangAbandonmentRate']);loggerPredictive[_0xa851('0x88')](_0xa851('0x99'),_0x36d312[_0xa851('0x7d')]);loggerPredictive['info'](_0xa851('0x98'),_0x36d312['erlangAbandonmentRate']);loggerPredictive['info']('---------------------------');_['merge'](_0x11a8e3,_0x36d312);};}function getDiff(_0xb67e42){var _0x3e6ad2=moment()[_0xa851('0x4f')](0x0);var _0x360670=moment(_0xb67e42)[_0xa851('0x4f')](0x0);return _0x3e6ad2[_0xa851('0x50')](_0x360670,'seconds');}function ifInterval(_0x166f2f,_0x527e51){if(_['isUndefined'](_0x527e51)){return![];}return getDiff(_0x527e51)<_0x166f2f*0x3c;}function freeVariablesPredictive(_0x38fde8){if(isNotNull(_0x38fde8)){if(!_[_0xa851('0x41')](_0x38fde8[_0xa851('0x2d')])){_0x38fde8[_0xa851('0x2d')]=undefined;loggerPredictive[_0xa851('0x88')](_0x38fde8[_0xa851('0x44')],_0xa851('0x9a'));}if(!_[_0xa851('0x41')](_0x38fde8[_0xa851('0x2c')])){_0x38fde8[_0xa851('0x2c')]=undefined;loggerPredictive[_0xa851('0x88')](_0x38fde8[_0xa851('0x44')],'clearing\x20variable\x20start\x20predictive');}if(!_[_0xa851('0x41')](_0x38fde8[_0xa851('0x9b')])){clearInterval(_0x38fde8[_0xa851('0x9b')]);_0x38fde8['handlePredictive']=undefined;loggerPredictive[_0xa851('0x88')](_0x38fde8[_0xa851('0x44')],_0xa851('0x9c'));}}}function erlangb(_0x21cea4,_0x1c518f){if(_0x1c518f===0x0){return 0x0;}var _0x1d08f1=0x1;for(var _0x51d784=0x1;_0x51d784<=_0x1c518f;_0x51d784+=0x1){_0x1d08f1=0x1+_0x1d08f1*_0x51d784/_0x21cea4;}return 0x1/_0x1d08f1;}function isVoiceQueueOutbound(_0x303990){return _0x303990==='outbound';}function isNotPreview(_0x3215fa){return _0x3215fa!==_0xa851('0x22');}function isCampaignIvr(_0x41a54a){return _0x41a54a===_0xa851('0x84');}function getCallerId(_0x1e4214,_0x1bb94c,_0x240d88){if(!_[_0xa851('0x41')](_0x240d88)&&typeof _0x240d88==='string'&&!_[_0xa851('0x87')](_0x240d88)){if(!_['isUndefined'](_0x1bb94c)&&typeof _0x1bb94c===_0xa851('0x9d')&&!_[_0xa851('0x87')](_0x1bb94c)){return util[_0xa851('0x81')]('\x22%s\x22\x20<%s>',_0x1bb94c,_0x240d88);}return util['format'](_0xa851('0x9e'),_0x240d88,_0x240d88);}if(!_['isUndefined'](_0x1e4214)&&typeof _0x1e4214==='string'&&!_[_0xa851('0x87')](_0x1e4214)){return _0x1e4214;}return _0xa851('0x9f');}function loggerCatchQueueSummary(_0x2ad038,_0x230561){return function(_0x1152bf){freeVariablesPredictive(_0x230561);emitVoiceQueueSummary(_0x230561);emitCampaignSummary(_0x230561);loggerSyncQueueSummary[_0xa851('0xa0')](_0x2ad038,util[_0xa851('0xa1')](_0x1152bf,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x3adebe,_0x3ed29e){return function(_0x5261d1){loggerPredictive[_0xa851('0xa0')](_0x3ed29e['name'],_0x3adebe);loggerPredictive[_0xa851('0xa0')](_0x5261d1['stack']);freeVariablesPredictive(_0x3ed29e);};}function loggerCatch(_0x1000d4){return function(_0x8f1822){logger[_0xa851('0xa0')](_0x1000d4,util[_0xa851('0xa1')](_0x8f1822,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x26e337){return _0x26e337&&!_[_0xa851('0x41')](_0x26e337)&&_0x26e337[_0xa851('0xa2')]>0x0;}function decremetOriginate(_0x561e2a){if(!_[_0xa851('0x41')](_0x561e2a)&&_0x561e2a!==null){if(typeof _0x561e2a['originated']!=='undefined'){if(_0x561e2a['originated']>0x0){_0x561e2a['originated']-=0x1;}else{logger[_0xa851('0xa0')](_0xa851('0xa3'));}}}else{logger[_0xa851('0xa0')](_0xa851('0xa4'));}}function checkContactLowerLimitOriginate(_0x43171a,_0x340edb,_0x390cda){if(_0x340edb>_0x390cda){for(var _0x2275ee=0x0;_0x2275ee<_0x340edb-_0x390cda;_0x2275ee+=0x1){decremetOriginate(_0x43171a);}}}function loggerGetContactDialer(_0x165b20,_0x9fd044,_0x4f3902){return function(_0x157e2b){checkContactLowerLimitOriginate(_0x9fd044,_0x4f3902,0x0);logger[_0xa851('0xa0')](_0x165b20,util['inspect'](_0x157e2b,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x3fa2e0){return function(_0x56c3a9){if(isNotNull(_0x56c3a9)&&isNotNull(_0x56c3a9[0x0])){if(_0x56c3a9[0x0][_0xa851('0xa5')]>0x0){_0x3fa2e0[_0xa851('0x42')]=_0xa851('0xa6');logger[_0xa851('0x88')](_0xa851('0xa7')+_0x3fa2e0[_0xa851('0x44')],_0x56c3a9[0x0]['contactsRescheduled'],_0xa851('0xa8'));}else{_0x3fa2e0[_0xa851('0x42')]=_0xa851('0xa9');logger[_0xa851('0x88')]('[getContactDialer2][Empty]'+_0x3fa2e0['name']);}}};}function notSendMessagesQueue(_0x5153ef){if(_0x5153ef[_0xa851('0xaa')]){freeVariablesPredictive(_0x5153ef);if(_0x5153ef['originated']===0x0&&_0x5153ef[_0xa851('0x5a')]===0x0&&_0x5153ef[_0xa851('0x5f')]===0x0&&(_0x5153ef[_0xa851('0x56')]||0x0)===0x0){_0x5153ef[_0xa851('0xaa')]=![];_0x5153ef['available']=0x0;_0x5153ef[_0xa851('0x42')]=_0xa851('0x46');loggerSyncQueueSummary[_0xa851('0xa0')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x5153ef[_0xa851('0x44')],_0xa851('0xab'));}else{_0x5153ef['message']=_0xa851('0xac');loggerSyncQueueSummary[_0xa851('0xa0')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x5153ef[_0xa851('0x44')],_0xa851('0xad'));}emitVoiceQueueSummary(_0x5153ef);}}function notSendMessagesCampaign(_0x261568){if(_0x261568['sendMessageOneNotActive']){if(_0x261568['originated']===0x0){_0x261568[_0xa851('0xaa')]=![];_0x261568['message']=_0xa851('0x46');loggerSyncQueueSummary['error'](_0xa851('0xae'),_0x261568[_0xa851('0x44')],_0xa851('0xab'));}else{_0x261568['message']=_0xa851('0xac');loggerSyncQueueSummary[_0xa851('0xa0')](_0xa851('0xae'),_0x261568[_0xa851('0x44')],_0xa851('0xad'));}emitCampaignSummary(_0x261568);}}function createObjHistory(_0x2a3b4e,_0x19af60,_0x44fa0d,_0x24d9ad,_0x10682b){_0x2a3b4e[_0xa851('0x42')]=_0x44fa0d;var _0x1d8856=new Action(_0x2a3b4e,_0x19af60);var _0x54a66d=new History(_0x1d8856);_0x54a66d[_0xa851('0xaf')]=_0x24d9ad;_0x54a66d[_0xa851('0xb0')]=_0x10682b;_0x54a66d[_0xa851('0xb1')]=_0x1d8856[_0xa851('0xb2')];return _0x54a66d;}Dialer[_0xa851('0x1d')][_0xa851('0xb3')]=function(){var _0x107ba4=this;setInterval(function(){_0x107ba4[_0xa851('0xb4')](_0x107ba4[_0xa851('0x2b')],'[uniqueid]');_0x107ba4[_0xa851('0xb4')](_0x107ba4[_0xa851('0x29')],_0xa851('0xb5'));},0x32c8);};Dialer['prototype']['clearZombieChannels']=function(_0x2c4ad8,_0x5323da){var _0x2042f1=this;for(var _0x4e128e in _0x2c4ad8){if(typeof _0x2c4ad8[_0x4e128e]!==_0xa851('0xb6')){this[_0xa851('0x21')][_0xa851('0x1e')](function(){if(!_['isNil'](_0x2c4ad8[_0x4e128e])){return ami[_0xa851('0xb7')]({'action':_0xa851('0xb8'),'channel':_0x2c4ad8[_0x4e128e][_0xa851('0xb9')]})[_0xa851('0xba')](function(_0x2ff8e9){if(_0x2ff8e9[_0xa851('0x42')]===_0xa851('0xbb')){setTimeout(function(){if(_0x2c4ad8[_0x4e128e]&&_0x2c4ad8[_0x4e128e][_0xa851('0x5c')]!==_0xa851('0x84')){_0x2042f1[_0xa851('0xbc')](_0x2042f1[_0xa851('0x23')][_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]]);logger[_0xa851('0xa0')](_0xa851('0xbe'),_0x5323da,_0x4e128e,_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]);delete _0x2c4ad8[_0x4e128e];}if(_0x2c4ad8[_0x4e128e]&&_0x2c4ad8[_0x4e128e][_0xa851('0x5c')]===_0xa851('0x84')){_0x2042f1[_0xa851('0xbc')](_0x2042f1['campaigns'][_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]]);logger[_0xa851('0xa0')](_0xa851('0xbf'),_0x5323da,_0x4e128e,_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]);delete _0x2c4ad8[_0x4e128e];}},0x2328);}});}});}}};Dialer[_0xa851('0x1d')]['countReScheduled']=function(_0x3e14c2){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper['countReScheduled'](_0x3e14c2))[_0xa851('0xba')](loggerCatch(_0xa851('0xc2')));};Dialer[_0xa851('0x1d')]['checkIsBlackList']=function(_0x4c9ecd){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopperBlack['checkIsBlackList'](_0x4c9ecd))[_0xa851('0xba')](loggerCatch(_0xa851('0xc3')));};Dialer[_0xa851('0x1d')][_0xa851('0xc4')]=function(_0x2df4c1){return BPromise['resolve']()[_0xa851('0xc1')](cmHopperBlack[_0xa851('0xc4')](_0x2df4c1))[_0xa851('0xba')](loggerCatch(_0xa851('0xc5')));};Dialer['prototype']['averageHandleTime']=function(_0x3c779c){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopperHistory[_0xa851('0xc6')](_0x3c779c))[_0xa851('0xba')](loggerCatch(_0xa851('0xc7')));};Dialer[_0xa851('0x1d')][_0xa851('0xc8')]=function(_0x50e84f){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper['rescheduleContact'](_0x50e84f))['catch'](loggerCatch(_0xa851('0xc9')));};Dialer[_0xa851('0x1d')][_0xa851('0xca')]=function(_0x219c8d,_0x381ba8,_0x4e4c3d){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper[_0xa851('0xca')](_0x219c8d,_0x381ba8,_0x4e4c3d))[_0xa851('0xba')](loggerCatch('[unlockContact]\x20'));};Dialer[_0xa851('0x1d')]['getContactDialer']=function(_0x2dc706,_0x491b59,_0x1ec9a1,_0x284628,_0x503a44){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper[_0xa851('0xcb')](_0x2dc706,_0x491b59,_0x1ec9a1,_0x284628))[_0xa851('0xba')](function(_0x596ec4){_0x503a44[_0xa851('0xcc')]-=_0x1ec9a1;_0x503a44[_0xa851('0xcc')]=_0x503a44[_0xa851('0xcc')]>0x0?_0x503a44[_0xa851('0xcc')]:0x0;loggerCatch(_0xa851('0xcd'))(_0x596ec4);});};Dialer[_0xa851('0x1d')][_0xa851('0xce')]=function(_0x424588,_0xe33a52,_0x4a2e0a,_0x4267eb){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper['getContactDialerIvr'](_0x424588,_0xe33a52,_0x4a2e0a))[_0xa851('0xba')](function(_0x692897){_0x4267eb[_0xa851('0xcc')]-=_0xe33a52;_0x4267eb[_0xa851('0xcc')]=_0x4267eb['temp']>0x0?_0x4267eb[_0xa851('0xcc')]:0x0;loggerCatch('[getContactDialerIvr]\x20')(_0x692897);});};Dialer[_0xa851('0x1d')][_0xa851('0xcf')]=function(_0xd7ff89){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](voiceQueueRt[_0xa851('0xcf')](_0xd7ff89))[_0xa851('0xba')](loggerCatch('[getVoiceQueueRtPauses]\x20'));};Dialer[_0xa851('0x1d')][_0xa851('0xd0')]=function(_0x42f419){return BPromise['resolve']()[_0xa851('0xc1')](cmHopper[_0xa851('0xd0')](_0x42f419))[_0xa851('0xba')](loggerCatch(_0xa851('0xd1')));};Dialer[_0xa851('0x1d')][_0xa851('0xd2')]=function(_0x5c5ba5){return BPromise[_0xa851('0xc0')]()['then'](cmHopperHistory[_0xa851('0xd2')](_0x5c5ba5))['catch'](loggerCatch(_0xa851('0xd3')));};Dialer['prototype'][_0xa851('0xbc')]=function(_0x383c92){if(!_[_0xa851('0x41')](_0x383c92)&&_0x383c92!==null){if(typeof _0x383c92[_0xa851('0x79')]!==_0xa851('0xb6')){if(_0x383c92[_0xa851('0x79')]>0x0){_0x383c92['originated']-=0x1;}else{logger['error'](_0xa851('0xd4'));}}}else{logger[_0xa851('0xa0')](_0xa851('0xd5'));}};Dialer[_0xa851('0x1d')][_0xa851('0xd6')]=function(_0x583bca,_0x50c4e3){var _0x1aa3e9=this;return function(_0xdcb47c){_0x1aa3e9[_0xa851('0xbc')](_0x50c4e3);logger['error'](_0x583bca,util[_0xa851('0xa1')](_0xdcb47c,{'showHidden':![],'depth':null}));};};Dialer[_0xa851('0x1d')][_0xa851('0xd7')]=function(_0xc03cf4,_0x1c1959,_0x4f75ad){var _0x354847={'state':0x19,'statedesc':_0xa851('0xd8')};this[_0xa851('0xbc')](_0x1c1959);this[_0xa851('0xd9')](_[_0xa851('0xda')](_0x354847,_[_0xa851('0xdb')](_0x4f75ad,[_0xa851('0xdc'),_0xa851('0xdd'),_0xa851('0xde'),_0xa851('0xdf'),_0xa851('0xe0')])),_0xa851('0xe1'),_0xa851('0xe2'));logger['error'](_0xc03cf4);};Dialer[_0xa851('0x1d')]['isSuccess']=function(_0x2b0437){return _0x2b0437===_0xa851('0xe3');};Dialer[_0xa851('0x1d')][_0xa851('0xe4')]=function(_0x3a8f30){return!_[_0xa851('0x41')](_0x3a8f30)&&_0x3a8f30&&!_[_0xa851('0x41')](_0x3a8f30[_0xa851('0x44')])&&!_[_0xa851('0x41')](_0x3a8f30[_0xa851('0x7f')])&&_0x3a8f30[_0xa851('0x7f')]&&(this[_0xa851('0x26')][util[_0xa851('0x81')](_0xa851('0xe5'),_0x3a8f30['name'])][_0xa851('0xb8')]==='reachable'||this[_0xa851('0x26')][util[_0xa851('0x81')](_0xa851('0xe5'),_0x3a8f30[_0xa851('0x44')])]['status']==='unmonitored');};Dialer[_0xa851('0x1d')][_0xa851('0xd9')]=function(_0x2afb74,_0x497ae1,_0x5b3d17){this[_0xa851('0xd2')](_0x2afb74)[_0xa851('0xba')](loggerCatch(_0x497ae1));this[_0xa851('0xd0')](_0x2afb74)[_0xa851('0xba')](loggerCatch(_0x5b3d17));};Dialer[_0xa851('0x1d')][_0xa851('0x3c')]=function(_0x6175cc){var _0x39c627=this[_0xa851('0x2b')][_0x6175cc[_0xa851('0xe6')]];var _0x5d7fc4;if(!_[_0xa851('0xe7')](_0x6175cc)&&!_[_0xa851('0xe7')](_0x6175cc[_0xa851('0xe8')])&&!_[_0xa851('0xe7')](_0x6175cc[_0xa851('0xe8')][_0xa851('0xe9')])&&_0x6175cc['exten']===_0xa851('0xea')&&_0x39c627){if(_0x39c627['type']!==_0xa851('0x84')&&this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xeb')]&&_0x6175cc[_0xa851('0xec')]==='HANGUP'){delete this['uniqueId'][_0x6175cc[_0xa851('0xe6')]];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]]);this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0x65')]+=0x1;this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]]['outboundAnswerAgiCallsDay']+=0x1;_0x5d7fc4=new Hangup(_0x39c627,_0x6175cc);_0x5d7fc4[_0xa851('0xaf')]=0x12;_0x5d7fc4['statedesc']=_0xa851('0xed');_0x5d7fc4[_0xa851('0xee')]=_0xa851('0xef');ami[_0xa851('0xf0')](_0xa851('0xf1'),ut[_0xa851('0xf2')](_0x5d7fc4,_0xa851('0xf3')));this[_0xa851('0xd9')](_0x5d7fc4,_0xa851('0xf4'),'[syncHangupInAMD]');}if(_0x39c627[_0xa851('0x5c')]!==_0xa851('0x84')&&this[_0xa851('0x23')][_0x39c627['queue']][_0xa851('0xeb')]&&_0x6175cc[_0xa851('0xec')]===_0xa851('0xf5')){var _0x484f83=this;return new BPromise(function(_0xf60ba4,_0x40c6cd){delete _0x484f83[_0xa851('0x2b')][_0x6175cc[_0xa851('0xe6')]];_0x484f83[_0xa851('0xbc')](_0x484f83['voiceQueues'][_0x39c627['queue']]);_0x484f83[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0x65')]+=0x1;_0x484f83[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xf6')]+=0x1;var _0x3d7859=_0x484f83[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]];var _0x15e2ed=new Hangup(_0x39c627,_0x6175cc);_0x15e2ed[_0xa851('0xaf')]=0x13;_0x15e2ed[_0xa851('0xb0')]=_0xa851('0xf7');_0x15e2ed['membername']=_0xa851('0xef');_0x15e2ed[_0xa851('0xf8')]+=0x1;_0x15e2ed[_0xa851('0xf9')]+=0x1;_0x15e2ed['amd']=!![];ami[_0xa851('0xf0')](_0xa851('0xf1'),ut['buildObj'](_0x15e2ed,_0xa851('0xf3')));_0x484f83[_0xa851('0xd2')](_0x15e2ed)[_0xa851('0xba')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x15e2ed['countbusyretry']+_0x15e2ed[_0xa851('0xfa')]+_0x15e2ed['countnoanswerretry']+_0x15e2ed[_0xa851('0xfb')]+_0x15e2ed['countdropretry']+_0x15e2ed[_0xa851('0xfc')]+_0x15e2ed[_0xa851('0xf8')]+_0x15e2ed[_0xa851('0xfd')]>=_0x3d7859[_0xa851('0xfe')]){_0x484f83[_0xa851('0xff')](_0x15e2ed,_0xf60ba4,_0x40c6cd,_0xa851('0x100'));}else{if(_0x15e2ed[_0xa851('0xf8')]>=_0x3d7859[_0xa851('0x101')]){_0x484f83[_0xa851('0x102')](_0x15e2ed,_0xf60ba4,_0x40c6cd,_0xa851('0x103'));}else{_0x484f83['rescheduleContact']({'active':![],'countmachineretry':_0x15e2ed[_0xa851('0xf8')],'scheduledat':moment()[_0xa851('0x104')](_0x3d7859[_0xa851('0x105')],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x15e2ed['ContactId'],'ListId':_0x15e2ed['ListId'],'VoiceQueueId':_0x15e2ed[_0xa851('0xdf')]||undefined,'CampaignId':_0x15e2ed[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x108')));_0xf60ba4({'reschedule':0x1});}}});}if(_0x39c627['type']===_0xa851('0x84')&&this[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xeb')]&&_0x6175cc[_0xa851('0xec')]==='HANGUP'){delete this['uniqueId'][_0x6175cc['uniqueid']];this[_0xa851('0xbc')](this[_0xa851('0x24')][_0x39c627['queue']]);_0x5d7fc4=new Hangup(_0x39c627,_0x6175cc);_0x5d7fc4[_0xa851('0xaf')]=0x12;_0x5d7fc4[_0xa851('0xb0')]=_0xa851('0xed');_0x5d7fc4['membername']='AMD';ami[_0xa851('0xf0')](_0xa851('0xf1'),ut[_0xa851('0xf2')](_0x5d7fc4,_0xa851('0xf3')));this['saveInDb'](_0x5d7fc4,_0xa851('0x109'),_0xa851('0x10a'));}if(_0x39c627[_0xa851('0x5c')]===_0xa851('0x84')&&this[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xeb')]&&_0x6175cc['value']===_0xa851('0xf5')){var _0x484f83=this;return new BPromise(function(_0x500d41,_0x2ebfa7){delete _0x484f83[_0xa851('0x2b')][_0x6175cc[_0xa851('0xe6')]];_0x484f83[_0xa851('0xbc')](_0x484f83['campaigns'][_0x39c627['queue']]);_0x484f83[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]]['outboundAnswerCallsDay']+=0x1;_0x484f83[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xf6')]+=0x1;var _0x39febd=_0x484f83[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]];var _0x3847da=new Hangup(_0x39c627,_0x6175cc);_0x3847da[_0xa851('0xaf')]=0x13;_0x3847da[_0xa851('0xb0')]=_0xa851('0xf7');_0x3847da[_0xa851('0xee')]='AMD';_0x3847da['countmachineretry']+=0x1;_0x3847da['countglobal']+=0x1;_0x3847da[_0xa851('0xf3')]=!![];ami[_0xa851('0xf0')](_0xa851('0xf1'),ut[_0xa851('0xf2')](_0x3847da,_0xa851('0xf3')));_0x484f83[_0xa851('0xd2')](_0x3847da)[_0xa851('0xba')](loggerCatch(_0xa851('0x10b')));if(_0x3847da['countbusyretry']+_0x3847da[_0xa851('0xfa')]+_0x3847da['countnoanswerretry']+_0x3847da['countnosuchnumberretry']+_0x3847da[_0xa851('0x10c')]+_0x3847da[_0xa851('0xfc')]+_0x3847da[_0xa851('0xf8')]+_0x3847da['countagentrejectretry']>=_0x39febd[_0xa851('0xfe')]){_0x484f83['stateGlobal'](_0x3847da,_0x500d41,_0x2ebfa7,_0xa851('0x100'));}else{if(_0x3847da[_0xa851('0xf8')]>=_0x39febd[_0xa851('0x101')]){_0x484f83[_0xa851('0x102')](_0x3847da,_0x500d41,_0x2ebfa7,_0xa851('0x103'));}else{_0x484f83[_0xa851('0xc8')]({'active':![],'countmachineretry':_0x3847da[_0xa851('0xf8')],'scheduledat':moment()[_0xa851('0x104')](_0x39febd['dialMachineRetryFrequency'],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x3847da[_0xa851('0xdc')],'ListId':_0x3847da[_0xa851('0xdd')],'VoiceQueueId':_0x3847da[_0xa851('0xdf')]||undefined,'CampaignId':_0x3847da['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x108')));_0x500d41({'reschedule':0x1});}}});}}};Dialer['prototype'][_0xa851('0x3a')]=function(_0x526823){var _0x2c622b=this[_0xa851('0x2b')][_0x526823[_0xa851('0xe6')]];var _0x557e93=this;var _0x413baf;if(_0x2c622b&&_0x2c622b['type']===_0xa851('0x84')){delete this[_0xa851('0x2b')][_0x526823['uniqueid']];this[_0xa851('0xbc')](this['campaigns'][_0x2c622b[_0xa851('0xbd')]]);this['campaigns'][_0x2c622b[_0xa851('0xbd')]][_0xa851('0x10d')]+=0x1;_0x413baf=new Hangup(_0x2c622b,_0x526823);this['createHistory'](_0x413baf)[_0xa851('0xba')](loggerCatch(_0xa851('0x10e')));this['moveContactManagedDialer'](_0x413baf)[_0xa851('0xba')](loggerCatch('[syncHangupIvr]'));}if(_0x2c622b&&_0x2c622b[_0xa851('0x5c')]!==_0xa851('0x84')&&isNotNull(this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]]['dialQueueProject'])){delete this['uniqueId'][_0x526823[_0xa851('0xe6')]];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]]);this[_0xa851('0x23')][_0x2c622b['queue']]['outboundAnswerCallsDay']+=0x1;this[_0xa851('0x23')][_0x2c622b['queue']][_0xa851('0xf6')]+=0x1;_0x413baf=new Hangup(_0x2c622b,_0x526823);_0x413baf[_0xa851('0xaf')]=0x10;_0x413baf['statedesc']=_0xa851('0x10f');_0x413baf[_0xa851('0xee')]=_0xa851('0x110');this[_0xa851('0xd2')](_0x413baf)['catch'](loggerCatch('[syncHangupIvr][createHistory]'));this[_0xa851('0xd0')](_0x413baf)[_0xa851('0xba')](loggerCatch(_0xa851('0x111')));}if(_0x2c622b&&_0x2c622b['type']!==_0xa851('0x84')&&!isNotNull(this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]][_0xa851('0x112')])){delete this[_0xa851('0x2b')][_0x526823['uniqueid']];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]]);this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]][_0xa851('0x6f')]+=0x1;_0x413baf=new Hangup(_0x2c622b,_0x526823);_0x413baf[_0xa851('0xaf')]=0xc;_0x413baf[_0xa851('0xb0')]=_0x526823['cause-txt'];_0x413baf[_0xa851('0xee')]='Unknow';this[_0xa851('0xd2')](_0x413baf)[_0xa851('0xba')](loggerCatch(_0xa851('0x10e')));this[_0xa851('0xd0')](_0x413baf)[_0xa851('0xba')](loggerCatch('[syncHangupIvr]'));}};Dialer['prototype'][_0xa851('0x37')]=function(_0x4cef66){var _0x15c7a0=this[_0xa851('0x2b')][_0x4cef66['uniqueid']];var _0x584feb=this;if(this[_0xa851('0x23')][_0x4cef66[_0xa851('0xbd')]]){if(_0x15c7a0&&_0x15c7a0['type']!=='ivr'){delete this[_0xa851('0x2b')][_0x4cef66['uniqueid']];this[_0xa851('0x23')][_0x4cef66['queue']][_0xa851('0x65')]+=0x1;var _0x28e6fa=new AgentComplete(_0x15c7a0,_0x4cef66);if(_0x4cef66[_0xa851('0x113')]===_0xa851('0x114')){_0x28e6fa[_0xa851('0x115')]=this[_0xa851('0x23')][_0x4cef66['queue']]['dialQueueProject2']&&this[_0xa851('0x23')][_0x4cef66[_0xa851('0xbd')]][_0xa851('0x116')]?moment()['format'](_0xa851('0x107')):undefined;}this[_0xa851('0xd2')](_0x28e6fa)[_0xa851('0xba')](loggerCatch(_0xa851('0x117')));this[_0xa851('0xd0')](_0x28e6fa)[_0xa851('0xba')](loggerCatch('[syncAgentComplete]'));}}};Dialer[_0xa851('0x1d')][_0xa851('0x30')]=function(_0x329896){if(this['voiceQueues'][_0x329896['queue']]){if(this[_0xa851('0x2b')][_0x329896[_0xa851('0xe6')]]&&this[_0xa851('0x2b')][_0x329896['uniqueid']][_0xa851('0x5c')]!=='ivr'){this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x329896[_0xa851('0xbd')]]);this['uniqueId'][_0x329896[_0xa851('0xe6')]][_0xa851('0x118')]=moment()[_0xa851('0x81')](_0xa851('0x107'));}}};Dialer[_0xa851('0x1d')][_0xa851('0x119')]=function(_0x3f4619){this[_0xa851('0xd2')](_0x3f4619)[_0xa851('0xba')](loggerCatch(_0xa851('0x117')));this['moveContactManagedDialer'](_0x3f4619)[_0xa851('0xba')](loggerCatch('[syncQueueCallerAbandon]\x20[Drop]'));};Dialer[_0xa851('0x1d')][_0xa851('0x33')]=function(_0x1bdf07){var _0x487976=this[_0xa851('0x2b')][_0x1bdf07[_0xa851('0xe6')]];var _0x287fa2=this;if(this['voiceQueues'][_0x1bdf07[_0xa851('0xbd')]]){if(_0x487976&&_0x487976[_0xa851('0x5c')]!==_0xa851('0x84')){delete this[_0xa851('0x2b')][_0x1bdf07[_0xa851('0xe6')]];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]]);_0x487976[_0xa851('0x11a')]=moment()[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss');var _0x5d0138=new QueueCallerAbandon(_0x487976,_0x1bdf07);if(getSeconds(_0x487976[_0xa851('0x11a')],_0x487976[_0xa851('0x11b')])>=_0x487976['dialQueueTimeout']){this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]]['predictiveIntervalDroppedCallsTimeout']+=0x1;this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]][_0xa851('0x6a')]+=0x1;this[_0xa851('0x23')][_0x1bdf07['queue']][_0xa851('0x74')]+=0x1;_0x5d0138[_0xa851('0xaf')]=0xa;_0x5d0138[_0xa851('0xb0')]=_0xa851('0x11c');_0x5d0138[_0xa851('0x11d')]='TIMEOUT';_0x5d0138[_0xa851('0x115')]=this['voiceQueues'][_0x1bdf07['queue']][_0xa851('0x11e')]?moment()[_0xa851('0x81')](_0xa851('0x107')):undefined;_0x5d0138[_0xa851('0x10c')]+=0x1;_0x5d0138['countglobal']+=0x1;if(_0x5d0138[_0xa851('0x10c')]>=this[_0xa851('0x23')][_0x1bdf07['queue']][_0xa851('0x11f')]){this[_0xa851('0x119')](_0x5d0138);}else{this[_0xa851('0xc8')]({'active':![],'countdropretry':_0x5d0138[_0xa851('0x10c')],'scheduledat':moment()[_0xa851('0x104')](this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]][_0xa851('0x120')],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x487976['ContactId'],'ListId':_0x487976[_0xa851('0xdd')],'VoiceQueueId':_0x487976[_0xa851('0xdf')]||undefined,'CampaignId':_0x487976[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x121')));var _0x15b1cc=new History(_0x5d0138);_0x15b1cc['state']=0xa;_0x15b1cc[_0xa851('0xb0')]='Drop';_0x15b1cc[_0xa851('0xb2')]=moment()[_0xa851('0x81')](_0xa851('0x107'));_0x15b1cc['endtime']=_0x15b1cc[_0xa851('0xb2')];_0x15b1cc[_0xa851('0x122')]=_0x5d0138[_0xa851('0x122')];_0x15b1cc[_0xa851('0x123')]=_0x5d0138['calleridnum'];this[_0xa851('0xd2')](_0x15b1cc)['catch'](loggerCatch(_0xa851('0x124')));}}else{this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]][_0xa851('0x8f')]+=0x1;this[_0xa851('0x23')][_0x1bdf07['queue']]['outboundDropCallsDayCallersExit']+=0x1;_0x5d0138[_0xa851('0xaf')]=0xb;_0x5d0138[_0xa851('0xb0')]='Abandoned';_0x5d0138[_0xa851('0x11d')]=_0xa851('0x125');_0x5d0138[_0xa851('0xfc')]+=0x1;_0x5d0138[_0xa851('0xf9')]+=0x1;if(_0x5d0138['countabandonedretry']>=this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]]['dialAbandonedMaxRetry']){this[_0xa851('0x119')](_0x5d0138);}else{this[_0xa851('0xc8')]({'active':![],'countabandonedretry':_0x5d0138[_0xa851('0xfc')],'scheduledat':moment()[_0xa851('0x104')](this[_0xa851('0x23')][_0x1bdf07['queue']]['dialAbandonedRetryFrequency'],_0xa851('0x106'))['format'](_0xa851('0x107')),'ContactId':_0x487976[_0xa851('0xdc')],'ListId':_0x487976['ListId'],'VoiceQueueId':_0x487976['VoiceQueueId']||undefined,'CampaignId':_0x487976[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x126')));var _0x15b1cc=new History(_0x5d0138);_0x15b1cc[_0xa851('0xaf')]=0xb;_0x15b1cc[_0xa851('0xb0')]=_0xa851('0x127');_0x15b1cc[_0xa851('0xb2')]=moment()[_0xa851('0x81')](_0xa851('0x107'));_0x15b1cc['endtime']=_0x15b1cc[_0xa851('0xb2')];_0x15b1cc['calleridname']=_0x5d0138[_0xa851('0x122')];_0x15b1cc[_0xa851('0x123')]=_0x5d0138[_0xa851('0x123')];this[_0xa851('0xd2')](_0x15b1cc)['catch'](loggerCatch(_0xa851('0x128')));}}}}};Dialer['prototype']['syncNewExten']=function(_0x209ac3){if(this[_0xa851('0x29')][_0x209ac3[_0xa851('0xe6')]]){this[_0xa851('0x29')][_0x209ac3[_0xa851('0xe6')]][_0xa851('0xb9')]=_0x209ac3['channel'];}if(this[_0xa851('0x2b')][_0x209ac3[_0xa851('0xe6')]]){this['uniqueId'][_0x209ac3[_0xa851('0xe6')]]['channel']=_0x209ac3[_0xa851('0xb9')];}};Dialer['prototype']['syncQueueMember']=function(_0x9db166){if(strategy[this['voiceQueues'][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0xbd')]][_0xa851('0x52')]]===_0xa851('0x1c')){if(this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]]&&_['isNil'](this['actions'][_0x9db166['actionid']]['locked'])&&_0x9db166[_0xa851('0xb8')]==='1'&&_0x9db166[_0xa851('0x12a')]==='0'){if(this[_0xa851('0x25')][_0x9db166['stateinterface']]){if(!this[_0xa851('0x25')][_0x9db166[_0xa851('0x12b')]][_0xa851('0x12c')]){this['agents'][_0x9db166[_0xa851('0x12b')]]['locked']=!![];this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0x12c')]=!![];this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0x12b')]=_0x9db166[_0xa851('0x12b')];}}}}else if((strategy[this['voiceQueues'][this[_0xa851('0x29')][_0x9db166['actionid']][_0xa851('0xbd')]][_0xa851('0x52')]]||'rrmemory')===_0xa851('0x1b')){if(this['actions'][_0x9db166[_0xa851('0x129')]]){if(this[_0xa851('0x25')][_0x9db166[_0xa851('0x12b')]]){this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0x12b')]=_0x9db166['stateinterface'];if(_[_0xa851('0xe7')](this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0xbd')]])){this['queueBooked'][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]]['queue']]=[];}this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]]['queue']][_0xa851('0x12d')](_[_0xa851('0xda')](_[_0xa851('0xdb')](this['actions'][_0x9db166[_0xa851('0x129')]],[_0xa851('0x12e'),'stateinterface']),{'status':_0x9db166[_0xa851('0xb8')],'paused':_0x9db166['paused']}));}}}};function unlockQueueStatus(_0x173da5,_0x153608){setTimeout(function(){if(_[_0xa851('0x41')](_0x173da5[_0xa851('0x12f')])){loggerBooked['error']('[unlockQueueStatus][undefined]',_0x153608);}_0x173da5[_0xa851('0x12f')]=!![];loggerBooked['info'](_0xa851('0x130'),_0x153608,JSON[_0xa851('0x4e')](_['pick'](_0x173da5,['name',_0xa851('0x12f')])));},0x1f3);}Dialer['prototype'][_0xa851('0x3f')]=function(_0x282fe8){var _0x9b66e=this;var _0x3d870e=_0x9b66e[_0xa851('0x23')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]];if(strategy[this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]['strategy']]===_0xa851('0x1c')){if(this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]]&&this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12b')]){this[_0xa851('0x22')]['run'](this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12e')],this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12b')])[_0xa851('0xba')](function(_0x5777c4){logger[_0xa851('0xa0')](_0xa851('0x131'),util['inspect'](_0x5777c4,{'showHidden':![],'depth':null}));})[_0xa851('0x20')](function(){_0x9b66e[_0xa851('0xbc')](_0x9b66e[_0xa851('0x23')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);_0x9b66e['agents'][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12b')]][_0xa851('0x12c')]=![];delete _0x9b66e[_0xa851('0x29')][_0x282fe8['actionid']];unlockQueueStatus(_0x3d870e);});}else{this[_0xa851('0xbc')](this['voiceQueues'][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);this[_0xa851('0xc8')]({'active':![],'ContactId':this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdc')],'ListId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]]['ListId'],'VoiceQueueId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x132')));delete this[_0xa851('0x29')][_0x282fe8['actionid']];unlockQueueStatus(_0x3d870e);}}else if((strategy[this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xbd')]]['strategy']]||'rrmemory')===_0xa851('0x1b')){var _0x1455ee;if(this['actions'][_0x282fe8['actionid']]&&!_['isEmpty'](this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]])){if(this[_0xa851('0x2f')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]){this[_0xa851('0x2f')][_0x9b66e['actions'][_0x282fe8[_0xa851('0x129')]]['queue']]=this[_0xa851('0x2f')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]?this[_0xa851('0x2f')][this[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xbd')]]:this['queueBooked'][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]?this['queueBooked'][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]][_0xa851('0x133')]||0x0:0x0;}this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]]['queue']]['_rr']=this[_0xa851('0x2f')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]];for(var _0x52e71=0x0;_0x52e71<this[_0xa851('0x2e')][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]][_0xa851('0xa2')];_0x52e71+=0x1){_0x1455ee=rr(this['queueBooked'][this['actions'][_0x282fe8['actionid']]['queue']]);this[_0xa851('0x2f')][_0x9b66e['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]=this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]['_rr'];if(_0x1455ee[_0xa851('0xb8')]==='1'&&_0x1455ee[_0xa851('0x12a')]==='0'){break;}}if(!_[_0xa851('0xe7')](_0x1455ee)){this[_0xa851('0x25')][_0x1455ee['stateinterface']][_0xa851('0x134')]=_[_0xa851('0x41')](this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]][_0xa851('0x134')])?!![]:this[_0xa851('0x25')][_0x1455ee['stateinterface']][_0xa851('0x134')];}loggerBooked[_0xa851('0x88')](_0xa851('0x135'),_0x282fe8[_0xa851('0x129')],'Agent:\x20',JSON[_0xa851('0x4e')](_['pick'](this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]],[_0xa851('0x44'),'unlockRR'])),_0xa851('0x136'),JSON[_0xa851('0x4e')](_0x1455ee['idHopper']));if(!_['isNil'](_0x1455ee)&&_0x1455ee['status']==='1'&&_0x1455ee[_0xa851('0x12a')]==='0'&&this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]][_0xa851('0x134')]){this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]]['unlockRR']=![];this[_0xa851('0x2e')][_0x9b66e[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xbd')]]=[];this[_0xa851('0x22')][_0xa851('0x137')](_0x1455ee['idHopper'],_0x1455ee['stateinterface'])['catch'](function(_0x4ce7c5){logger['error'](_0xa851('0x131'),util['inspect'](_0x4ce7c5,{'showHidden':![],'depth':null}));})[_0xa851('0x20')](function(){_0x9b66e['updateOriginated'](_0x9b66e[_0xa851('0x23')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);setTimeout(function(){_0x9b66e[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]][_0xa851('0x134')]=!![];loggerBooked[_0xa851('0x88')]('[booked][RR][finaly]',_0x282fe8[_0xa851('0x129')],_0xa851('0x138'),JSON[_0xa851('0x4e')](_[_0xa851('0xdb')](_0x9b66e[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]],[_0xa851('0x44'),'unlockRR'])),_0xa851('0x136'),JSON[_0xa851('0x4e')](_0x1455ee[_0xa851('0x12e')]));},0xc7);delete _0x9b66e['actions'][_0x282fe8[_0xa851('0x129')]];unlockQueueStatus(_0x3d870e,_0x282fe8[_0xa851('0x129')]);});}else{loggerBooked[_0xa851('0x88')]('[booked][unlock]');this[_0xa851('0xbc')](this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);this['rescheduleContact']({'active':![],'ContactId':this['actions'][_0x282fe8[_0xa851('0x129')]]['ContactId'],'ListId':this[_0xa851('0x29')][_0x282fe8['actionid']]['ListId'],'VoiceQueueId':this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x132')));delete this[_0xa851('0x29')][_0x282fe8['actionid']];unlockQueueStatus(_0x3d870e);}}else{loggerBooked[_0xa851('0x88')]('[booked][unlock2]');this[_0xa851('0xbc')](this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);this[_0xa851('0xc8')]({'active':![],'ContactId':this['actions'][_0x282fe8['actionid']][_0xa851('0xdc')],'ListId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdd')],'VoiceQueueId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this['actions'][_0x282fe8['actionid']][_0xa851('0xe0')]||undefined})['catch'](loggerCatch('[unlock2][syncQueueStatusComplete]'));delete this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]];unlockQueueStatus(_0x3d870e);}}else{loggerBooked[_0xa851('0x88')](_0xa851('0x139'));this[_0xa851('0xbc')](this[_0xa851('0x23')][this['actions'][_0x282fe8['actionid']][_0xa851('0xbd')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdc')],'ListId':this[_0xa851('0x29')][_0x282fe8['actionid']]['ListId'],'VoiceQueueId':this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x13a')));delete this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]];unlockQueueStatus(_0x3d870e);}};Dialer[_0xa851('0x1d')][_0xa851('0x40')]=function(){var _0x2e070f=this;setInterval(function(){_0x2e070f[_0xa851('0x13b')]();},0x3e8);};Dialer[_0xa851('0x1d')][_0xa851('0x13c')]=function(_0x3f1243){var _0x37ab24=this;return function(){if(!_0x37ab24['isTrunkReachable'](_0x3f1243[_0xa851('0x7e')])){if(!_0x37ab24['isTrunkReachable'](_0x3f1243[_0xa851('0x13d')])){_0x3f1243[_0xa851('0x42')]='TRUNK_IS_NOT_REACHABLE';throw _0x3f1243['name']+'\x20trunk\x20is\x20not\x20reachable';}}};};Dialer[_0xa851('0x1d')][_0xa851('0x13e')]=function(_0x540b85,_0x3c9c1d,_0x560138,_0x3f965e){var _0x2ce431=this;return function(){var _0x41d9fc=!![];return _0x2ce431[_0xa851('0x13f')](_0x540b85,_0x3c9c1d,_0x560138,_0x3f965e,_0x41d9fc);};};Dialer['prototype']['checkIfTimeIntervals']=function(_0x2efe40,_0x2e51d1,_0x411448,_0x2527dc){var _0x45d4d0=this;return function(){var _0x457bc6=![];return _0x45d4d0['ifTime'](_0x2efe40[_0xa851('0x4b')],_0x2e51d1,_0x411448,_0x2527dc,_0x457bc6);};};Dialer[_0xa851('0x1d')][_0xa851('0x13f')]=function(_0x26dc41,_0x53a0b8,_0x1f42dc,_0x29c97a,_0x5bba27){var _0x3ed45d=[];return new BPromise(function(_0x2ce165,_0x5eef66){if(!isNotNull(_0x26dc41)){_0x29c97a['message']='INTERVAL_IS_NULL';return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),_0x1f42dc+'\x20Intervals\x20is\x20null\x20'));}if(_[_0xa851('0x87')](_0x26dc41)){_0x29c97a[_0xa851('0x42')]='INTERVAL_IS_EMPTY';return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),_0x1f42dc+'\x20Intervals\x20is\x20empty\x20'));}if(_0x53a0b8&&_[_0xa851('0x41')](config[_0xa851('0x141')][_0x53a0b8])){_0x29c97a[_0xa851('0x42')]='TIMEZONE_UNKNOW';return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),_0x1f42dc+_0xa851('0x142')+_0x53a0b8));}if(_['isArray'](_0x26dc41)){for(var _0x5254ac=0x0;_0x5254ac<_0x26dc41[_0xa851('0xa2')];_0x5254ac+=0x1){_0x3ed45d[_0xa851('0x12d')](ami[_0xa851('0xb7')]({'action':_0xa851('0x143'),'command':util[_0xa851('0x81')](_0xa851('0x144'),_0x26dc41[_0x5254ac][_0xa851('0x145')],!_[_0xa851('0x41')](config['timezones'][_0x53a0b8])?_0x53a0b8:'')})['then'](function(_0x1c7946){return _0x1c7946[_0xa851('0x146')][_0xa851('0x147')]('true')>=0x0;})[_0xa851('0xba')](myreject(_0x5eef66)));}}else{_0x3ed45d[_0xa851('0x12d')](ami['Action']({'action':_0xa851('0x143'),'command':util[_0xa851('0x81')]('iftime\x20%s,%s',_0x26dc41,!_[_0xa851('0x41')](config['timezones'][_0x53a0b8])?_0x53a0b8:'')})[_0xa851('0xc1')](function(_0xcef4e9){return _0xcef4e9['content'][_0xa851('0x147')](_0xa851('0x148'))>=0x0;})[_0xa851('0xba')](myreject(_0x5eef66)));}BPromise[_0xa851('0x149')](_0x3ed45d)[_0xa851('0xc1')](function(_0x2ffbef){var _0x4a6af8=_[_0xa851('0x14a')](_0x2ffbef);if(_0x4a6af8){return _0x2ce165(_0x4a6af8);}else{_0x29c97a[_0xa851('0x42')]=_0x5bba27?_0xa851('0x14b'):'INTERVAL_IS_OVERTIME';return _0x5eef66(msgResponse(_0xa851('0x14c'),_0xa851('0x140'),_0xa851('0x14d')+_0x5bba27+'\x20'+_0x1f42dc+_0xa851('0x14e')+util[_0xa851('0xa1')](_0x26dc41,{'showHidden':![],'depth':null})+_0xa851('0x14f')+_0x53a0b8));}})[_0xa851('0xba')](function(_0x5f15e7){return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),JSON['stringify'](_0x5f15e7)));});});};Dialer[_0xa851('0x1d')][_0xa851('0x150')]=function(_0x319476){var _0x16ae04=this;return function(){switch(_0x319476[_0xa851('0x151')]){case _0xa851('0x152'):freeVariablesPredictive(_0x319476);_0x16ae04['handlePower'](_0x319476,0x1);break;case _0xa851('0x153'):freeVariablesPredictive(_0x319476);_0x16ae04[_0xa851('0x154')](_0x319476,_0x319476[_0xa851('0x155')]);break;case _0xa851('0x9'):_0x16ae04[_0xa851('0x9')](_0x319476);break;case _0xa851('0x156'):freeVariablesPredictive(_0x319476);_0x16ae04[_0xa851('0x154')](_0x319476,0x1);break;default:freeVariablesPredictive(_0x319476);logger['error'](_0xa851('0x157'),_0x319476['name'],_0xa851('0x158'));}};};Dialer[_0xa851('0x1d')][_0xa851('0x159')]=function(_0xee3b84){var _0x2b3da0=this;return function(){_0x2b3da0[_0xa851('0x15a')](_0xee3b84);};};Dialer[_0xa851('0x1d')][_0xa851('0xa')]=function(_0x4daf12){var _0x359a4d=this;if(isNotPreview(_0x4daf12['dialMethod'])){if(isVoiceQueueOutbound(_0x4daf12[_0xa851('0x5c')])&&isActive(_0x4daf12['dialActive'])){_0x4daf12[_0xa851('0xaa')]=!![];BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](checkIsLoggedIn(_0x4daf12,_0x4daf12[_0xa851('0x55')]))[_0xa851('0xc1')](checkIsActive(_0x4daf12,_0x4daf12['dialActive']))[_0xa851('0xc1')](checkInterval(_0x4daf12))[_0xa851('0xc1')](_0x359a4d['checkIsTrunkReachable'](_0x4daf12))[_0xa851('0xc1')](_0x359a4d[_0xa851('0x13e')](_0x4daf12[_0xa851('0x15b')],_0x4daf12[_0xa851('0x15c')],_0x4daf12['name'],_0x4daf12))[_0xa851('0xc1')](_0x359a4d[_0xa851('0x15d')](_0x4daf12[_0xa851('0x4a')],_0x4daf12[_0xa851('0x15c')],_0x4daf12[_0xa851('0x44')],_0x4daf12))[_0xa851('0xc1')](_0x359a4d[_0xa851('0x150')](_0x4daf12))[_0xa851('0xba')](loggerCatchQueueSummary(_0xa851('0x15e'),_0x4daf12));}else{notSendMessagesQueue(_0x4daf12);}}else{freeVariablesPredictive(_0x4daf12);}};Dialer[_0xa851('0x1d')]['syncCampaigns']=function(){var _0x49e3ff=this;var _0x1d2e92;for(var _0x4af62c in this[_0xa851('0x24')]){if(typeof this[_0xa851('0x24')][_0x4af62c]!=='undefined'){_0x1d2e92=this[_0xa851('0x24')][_0x4af62c];if(isCampaignIvr(_0x1d2e92[_0xa851('0x5c')])&&isActive(_0x1d2e92['active'])){_0x1d2e92[_0xa851('0xaa')]=!![];BPromise['resolve']()[_0xa851('0xc1')](checkIsActive(_0x1d2e92,_0x1d2e92['active']))[_0xa851('0xc1')](checkInterval(_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff['checkIsTrunkReachable'](_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff['checkIfTime'](_0x1d2e92[_0xa851('0x15b')],_0x1d2e92['dialTimezone'],_0x1d2e92[_0xa851('0x44')],_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff[_0xa851('0x15d')](_0x1d2e92['Interval'],_0x1d2e92[_0xa851('0x15c')],_0x1d2e92[_0xa851('0x44')],_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff[_0xa851('0x159')](_0x1d2e92))[_0xa851('0xba')](loggerCatchQueueSummary(_0xa851('0x15f'),_0x1d2e92));}else{notSendMessagesCampaign(_0x1d2e92);}}}};function getCallerIdRandom(_0x4614fc,_0x22f450){var _0x2cf4d7;var _0x54a834;var _0xd3dcd9;if(_0x22f450<=0x0){_0x22f450=0x1;}_0x2cf4d7=new RegExp(_0xa851('0x160')+_0x22f450+'}$');_0x54a834=Math[_0xa851('0x161')](0xa,_0x22f450-0x1);_0xd3dcd9=Math['pow'](0xa,_0x22f450)-0x1;return util[_0xa851('0x81')]('%s',_[_0xa851('0x162')](_0x4614fc,_0x2cf4d7,_['random'](_0x54a834,_0xd3dcd9)));}function extractCalleridName(_0x5a2fc6){var _0x38211c=_0x5a2fc6[_0xa851('0x163')](/"(.*?)"/);return _0x38211c?_0x38211c[0x1]:_0x5a2fc6;}function extractCalleridNumber(_0x2f4c2e){var _0x5e69a6=_0x2f4c2e['match'](/<(.*?)>/);return _0x5e69a6?_0x5e69a6[0x1]:_0x2f4c2e;}Dialer['prototype'][_0xa851('0x164')]=function(_0x553346,_0x1ddd9e){var _0x128108=this;var _0xc4c5a1=uuid['v4']();this[_0xa851('0x29')][_0xc4c5a1]=new Action(_0x553346,_0x1ddd9e,_0xc4c5a1);return new BPromise(function(_0x50939c,_0xe4b694){if(_['isUndefined'](_0x553346)&&typeof _0x553346!==_0xa851('0x165')){return _0xe4b694(msgResponse(_0xa851('0x166'),'Failure','voiceQueue\x20is\x20undefine'));}if(_['isUndefined'](_0x1ddd9e[_0xa851('0x167')][_0xa851('0x168')])||_0x1ddd9e['Contact'][_0xa851('0x168')]===null){return _0xe4b694(msgResponse('originate',_0xa851('0x140'),_0xa851('0x169')));}var _0x40e55f={'XMD-CALLERID':_0x128108[_0xa851('0x29')][_0xc4c5a1][_0xa851('0x16a')](),'XMD-AGI':_0x553346[_0xa851('0x112')]?util[_0xa851('0x81')](_0xa851('0x16b'),ipAgi,_0x553346[_0xa851('0x112')]):_0xa851('0x16c'),'XMD-AGIAFTER':_0x553346[_0xa851('0x11e')]?util['format']('\x22agi://%s/square,%s\x22',ipAgi,_0x553346['dialQueueProject2']):_0xa851('0x16c'),'XMD-QUEUE':_0x553346[_0xa851('0x5c')]==='outbound'?util[_0xa851('0x81')](_0xa851('0x16d'),_0x553346['name'],_0x553346[_0xa851('0x16e')]||'',_0x553346[_0xa851('0x116')]?'c':'',_0x553346['dialQueueTimeout']||0x3):'NONE','XMD-CONTACTID':_0x1ddd9e[_0xa851('0xdc')],'XMD-CDRTYPE':_0xa851('0x16f'),'CALLERID(all)':_0x128108[_0xa851('0x29')][_0xc4c5a1][_0xa851('0x16a')](),'XMD-AMD':_0x553346[_0xa851('0xeb')]?'ACTIVE':_0xa851('0x16c'),'XMD-DESTINATION':'xcally-motion-dialer'};if(_0x553346[_0xa851('0xeb')]){_0x40e55f[_0xa851('0x170')]=_0x553346['dialAMDInitialSilence']||0x9c4;_0x40e55f['XMD-AMDGREETING']=_0x553346[_0xa851('0x171')]||0x5dc;_0x40e55f[_0xa851('0x172')]=_0x553346['dialAMDAfterGreetingSilence']||0x320;_0x40e55f[_0xa851('0x173')]=_0x553346['dialAMDTotalAnalysisTime']||0x1388;_0x40e55f['XMD-AMDMINWORDLENGTH']=_0x553346[_0xa851('0x174')]||0x64;_0x40e55f['XMD-AMDBETWEENWORDSSILENCE']=_0x553346['dialAMDBetweenWordsSilence']||0x32;_0x40e55f[_0xa851('0x175')]=_0x553346[_0xa851('0x176')]||0x3;_0x40e55f[_0xa851('0x177')]=_0x553346['dialAMDSilenceThreshold']||0x100;_0x40e55f[_0xa851('0x178')]=_0x553346[_0xa851('0x179')]||0x1388;}if(_0x553346[_0xa851('0x5c')]===_0xa851('0x51')){_0x40e55f[_0xa851('0x17a')]=_0x1ddd9e[_0xa851('0xdf')];}else{_0x40e55f[_0xa851('0x17b')]=_0x1ddd9e[_0xa851('0xe0')];}for(var _0x4888c9 in _0x1ddd9e[_0xa851('0x167')]){if(typeof _0x1ddd9e[_0xa851('0x167')][_0x4888c9]!==_0xa851('0xb6')){if(isNotNull(_0x1ddd9e['Contact'][_0x4888c9])&&_0x4888c9!=='id'&&_0x4888c9!=='tags'&&_0x4888c9!==_0xa851('0x17c')&&_0x4888c9!==_0xa851('0x17d')){_0x40e55f[util['format']('%s%s',_0xa851('0x17e'),_[_0xa851('0x17f')](_0x4888c9))]=_0x1ddd9e['Contact'][_0x4888c9];}}}var _0x5421f9=_0x128108[_0xa851('0xe4')](_0x553346[_0xa851('0x7e')])?getCallerId(_0x553346[_0xa851('0x7e')]['callerid'],_0x553346['dialOriginateCallerIdName'],_0x553346['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x553346['dialOriginateCallerIdNumber'],_0x553346['dialRandomLastDigitCallerIdNumber']):_0x553346[_0xa851('0x63')]):getCallerId(_[_0xa851('0xe7')](_0x553346[_0xa851('0x13d')])?_0x553346[_0xa851('0x7e')][_0xa851('0x80')]:_0x553346[_0xa851('0x13d')][_0xa851('0x80')],_0x553346['dialOriginateCallerIdName'],_0x553346['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x553346['dialOriginateCallerIdNumber'],_0x553346['dialRandomLastDigitCallerIdNumber']):_0x553346['dialOriginateCallerIdNumber']);if(_0x5421f9){_0x40e55f[_0xa851('0x180')]=_0x128108[_0xa851('0x29')][_0xc4c5a1][_0xa851('0x181')]=extractCalleridName(_0x5421f9);_0x40e55f[_0xa851('0x182')]=_0x128108['actions'][_0xc4c5a1][_0xa851('0x183')]=extractCalleridNumber(_0x5421f9);}return ami[_0xa851('0xb7')]({'actionid':_0xc4c5a1,'action':_0xa851('0x166'),'channel':_0x128108[_0xa851('0xe4')](_0x553346[_0xa851('0x7e')])?util[_0xa851('0x81')]('SIP/%s/%s%s',_0x553346[_0xa851('0x7e')][_0xa851('0x44')],isNotNull(_0x553346[_0xa851('0x184')])?_0x553346[_0xa851('0x184')][_0xa851('0x185')]()||'':'',_0x553346[_0xa851('0x186')]>0x0?_0x1ddd9e[_0xa851('0x167')][_0xa851('0x168')]['substring'](_0x553346['dialCutDigit']):_0x1ddd9e['Contact'][_0xa851('0x168')]):util[_0xa851('0x81')]('SIP/%s/%s%s',_[_0xa851('0xe7')](_0x553346[_0xa851('0x13d')])?_0x553346[_0xa851('0x7e')][_0xa851('0x44')]:_0x553346['TrunkBackup'][_0xa851('0x44')],isNotNull(_0x553346[_0xa851('0x184')])?_0x553346[_0xa851('0x184')][_0xa851('0x185')]()||'':'',_0x553346[_0xa851('0x186')]>0x0?_0x1ddd9e[_0xa851('0x167')][_0xa851('0x168')][_0xa851('0x187')](_0x553346['dialCutDigit']):_0x1ddd9e['Contact']['phone']),'callerid':_0x5421f9,'Exten':'xcally-motion-dialer','Context':'from-sip','Priority':'1','variable':_0x40e55f,'timeout':(_0x553346['dialOriginateTimeout']||0x1e)*0x3e8,'async':!![],'channelid':_0xc4c5a1})['then'](function(_0xe6db97){return _0x50939c(_0xe6db97);})[_0xa851('0xba')](function(_0x28460a){_0x553346[_0xa851('0x6d')]+=0x1;var _0x1e28f=new History(_0x128108[_0xa851('0x29')][_0xc4c5a1]);logger[_0xa851('0xa0')](util[_0xa851('0x81')](_0xa851('0x188'),JSON[_0xa851('0x4e')](_0x28460a)));_0x1e28f[_0xa851('0xaf')]=0xe;_0x1e28f[_0xa851('0xb0')]=_0xa851('0x189');_0x1e28f['starttime']=moment()[_0xa851('0x81')](_0xa851('0x107'));_0x1e28f[_0xa851('0xb1')]=_0x1e28f[_0xa851('0xb2')];_0x128108[_0xa851('0xd2')](_0x1e28f)[_0xa851('0xba')](loggerCatch(_0xa851('0x18a')));_0x128108[_0xa851('0xd0')](_0x1e28f)['catch'](loggerCatch(_0xa851('0x18a')))['finally'](function(){delete _0x128108['actions'][_0xc4c5a1];return _0xe4b694(msgResponse(_0xa851('0x166'),_0xa851('0x4d'),_0xa851('0x18b')));});});});};Dialer[_0xa851('0x1d')][_0xa851('0x35')]=function(_0x5535e3){var _0xd011af=this[_0xa851('0x29')][_0x5535e3['actionid']];if(_0xd011af){delete this[_0xa851('0x29')][_0x5535e3[_0xa851('0x129')]];_0xd011af[_0xa851('0x11b')]=moment()[_0xa851('0x81')](_0xa851('0x107'));var _0x345b7a=_0xd011af[_0xa851('0x5c')]===_0xa851('0x84')?this['campaigns'][_0xd011af['queue']]:this[_0xa851('0x23')][_0xd011af[_0xa851('0x18c')]()];if(!this['isSuccess'](_0x5535e3[_0xa851('0x18d')])){this['updateOriginated'](_0x345b7a);return this[_0xa851('0x18e')](_0xd011af,_0x345b7a,_0x5535e3)[_0xa851('0xba')](loggerCatch(_0xa851('0x18f')));}this[_0xa851('0x2b')][_0x5535e3[_0xa851('0xe6')]]=_0xd011af;}};Dialer[_0xa851('0x1d')]['checkRetriveMax']=function(_0x3ce442,_0x2355ec,_0xd41c71){var _0x583978=new History(_0x2355ec);if(_0x583978[_0xa851('0x190')]+_0x583978['countcongestionretry']+_0x583978['countnoanswerretry']+_0x583978[_0xa851('0xfb')]+_0x583978[_0xa851('0x10c')]+_0x583978[_0xa851('0xfc')]+_0x583978[_0xa851('0xf8')]+_0x583978[_0xa851('0xfd')]>=_0xd41c71[_0xa851('0xfe')]-0x1){return!![];}switch(_0x3ce442){case 0x3:if(_0x583978[_0xa851('0x191')]>=_0xd41c71[_0xa851('0x192')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countnoanswerretry':_0x583978['countnoanswerretry']+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71['dialNoAnswerRetryFrequency'],'minutes')[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})['catch'](loggerCatch('[rescheduleContact][NoAnswer]'));break;case 0x5:if(_0x583978[_0xa851('0x190')]>=_0xd41c71[_0xa851('0x193')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countbusyretry':_0x583978[_0xa851('0x190')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x194')],'minutes')[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch('[rescheduleContact]\x20[Busy]'));break;case 0x8:if(_0x583978[_0xa851('0xfa')]>=_0xd41c71[_0xa851('0x195')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countcongestionretry':_0x583978[_0xa851('0xfa')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x196')],_0xa851('0x106'))[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978['ContactId'],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x197')));break;case 0x0:if(_0x583978[_0xa851('0xfb')]>=_0xd41c71[_0xa851('0x198')]-0x1){return!![];}else{this['rescheduleContact']({'active':![],'countnosuchnumberretry':_0x583978[_0xa851('0xfb')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x199')],_0xa851('0x106'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch('[rescheduleContact][NoSuchNumber]'));}break;case 0xa:if(_0x583978[_0xa851('0x10c')]>=_0xd41c71[_0xa851('0x11f')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countdropretry':_0x583978['countdropretry']+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x120')],_0xa851('0x106'))[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978['ContactId'],'ListId':_0x583978['ListId'],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x121')));break;case 0xb:if(_0x583978['countabandonedretry']>=_0xd41c71['dialAbandonedMaxRetry']-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countabandonedretry':_0x583978[_0xa851('0xfc')]+=0x1,'scheduledat':moment()['add'](_0xd41c71[_0xa851('0x19a')],_0xa851('0x106'))['format'](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978['ListId'],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x126')));break;case 0x13:if(_0x583978[_0xa851('0xf8')]>=_0xd41c71[_0xa851('0x101')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countmachineretry':_0x583978[_0xa851('0xf8')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x105')],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x108')));break;case 0x14:if(_0x583978[_0xa851('0xfd')]>=_0xd41c71[_0xa851('0x19b')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countagentrejectretry':_0x583978[_0xa851('0xfd')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x19c')],'minutes')[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x19d')));break;default:return!![];}};Dialer['prototype'][_0xa851('0x18e')]=function(_0x1ac1a8,_0x4ab544,_0x2bc20e){var _0x5a2e7d=this;var _0x4c6a6e=new History(_0x1ac1a8);return new BPromise(function(_0x3bc7b7,_0x560378){if(_[_0xa851('0x41')](_0x4ab544)&&typeof _0x4ab544!=='object'){return _0x560378(msgResponse('[callProgressDetecting]',_0xa851('0x140'),_0xa851('0x19e')));}if(_[_0xa851('0x41')](_0x2bc20e)&&typeof _0x2bc20e!==_0xa851('0x165')){return _0x560378(msgResponse('[callProgressDetecting]',_0xa851('0x140'),'evt\x20is\x20undefine'));}switch(_0x2bc20e[_0xa851('0x113')]){case'0':_0x4ab544[_0xa851('0x6c')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x0;_0x4c6a6e[_0xa851('0xb0')]=_0xa851('0x19f');_0x4c6a6e[_0xa851('0xfb')]+=0x1;_0x4c6a6e['countglobal']+=0x1;ami[_0xa851('0xf0')](_0xa851('0x1a0'),ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1a1')));_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x5a2e7d['checkRetriveMax'](0x0,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfb')]>=_0x4ab544['dialNoSuchNumberMaxRetry']){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1a2'));}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x200\x20no\x20such\x20number....');}}break;case'3':_0x4ab544[_0xa851('0x6b')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x3;_0x4c6a6e[_0xa851('0xb0')]=_0xa851('0x1a3');_0x4c6a6e[_0xa851('0x191')]+=0x1;_0x4c6a6e['countglobal']+=0x1;ami[_0xa851('0xf0')]('custom:agentnoanswer',ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1a4')));_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1a5')));if(_0x5a2e7d[_0xa851('0x1a6')](0x3,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e['countnoanswerretry']>=_0x4ab544[_0xa851('0x192')]){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x203\x20ringing\x20no\x20answer');}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1a7'));}}break;case'5':_0x4ab544[_0xa851('0x1a8')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x5;_0x4c6a6e[_0xa851('0xb0')]=_0xa851('0x1a9');_0x4c6a6e[_0xa851('0x190')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;ami[_0xa851('0xf0')](_0xa851('0x1aa'),ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1ab')));_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1ac')));if(_0x5a2e7d[_0xa851('0x1a6')](0x5,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0x190')]>=_0x4ab544[_0xa851('0x193')]){_0x5a2e7d['createStateFinal'](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x205\x20busy');}else{_0x5a2e7d['stateGlobal'](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x205\x20busy');}}break;case'8':_0x4ab544[_0xa851('0x67')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x8;_0x4c6a6e['statedesc']=_0xa851('0x1ad');_0x4c6a6e[_0xa851('0xfa')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;ami[_0xa851('0xf0')](_0xa851('0x1ae'),ut['buildObj'](_0x1ac1a8,_0xa851('0x1af')));_0x5a2e7d['createHistory'](_0x4c6a6e)['catch'](loggerCatch(_0xa851('0x1b0')));if(_0x5a2e7d['checkRetriveMax'](0x8,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfa')]>=_0x4ab544[_0xa851('0x195')]){_0x5a2e7d['createStateFinal'](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x208\x20congestion');}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b1'));}}break;case'11':_0x4ab544[_0xa851('0x1b2')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0xb;_0x4c6a6e['statedesc']=_0xa851('0x127');_0x4c6a6e[_0xa851('0xfc')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;_0x5a2e7d['createHistory'](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x128')));if(_0x5a2e7d[_0xa851('0x1a6')](0xb,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfc')]>=_0x4ab544[_0xa851('0x1b3')]){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x2011\x20abandoned');}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b4'));}}break;case'20':_0x4ab544['outboundRejectCallsDay']+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x14;_0x4c6a6e['statedesc']=_0xa851('0x1b5');_0x4c6a6e[_0xa851('0xfd')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;ami['emit'](_0xa851('0x1b6'),ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1b7')));_0x5a2e7d['createHistory'](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1b8')));if(_0x5a2e7d[_0xa851('0x1a6')](0x14,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfd')]>=_0x4ab544[_0xa851('0x19b')]){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b9'));}else{_0x5a2e7d['stateGlobal'](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b9'));}}break;default:_0x4ab544['outboundUnknownCallsDay']+=0x1;_0x4c6a6e['state']=0xc;_0x4c6a6e[_0xa851('0xb0')]=_0x2bc20e['reason'];_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1ba')));if(_0x5a2e7d['checkRetriveMax'](_0x2bc20e[_0xa851('0x113')],_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0x190')]+_0x4c6a6e[_0xa851('0xfa')]+_0x4c6a6e['countnoanswerretry']+_0x4c6a6e[_0xa851('0xfb')]+_0x4c6a6e[_0xa851('0x10c')]+_0x4c6a6e[_0xa851('0xfc')]+_0x4c6a6e[_0xa851('0xf8')]+_0x4c6a6e[_0xa851('0xfd')]>=_0x4ab544['dialGlobalMaxRetry']){_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0x2bc20e[_0xa851('0x113')]);}else{_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0x2bc20e['reason']);}}}});};Dialer[_0xa851('0x1d')][_0xa851('0xff')]=function(_0x12142f,_0x2985a2,_0x170402,_0x1ca7ee){var _0x88df83=new Final(_0x12142f);_0x88df83[_0xa851('0xaf')]=0xf;_0x88df83[_0xa851('0xb0')]=_0xa851('0x1bb');this[_0xa851('0x102')](_0x88df83,_0x2985a2,_0x170402,_0x1ca7ee);};Dialer['prototype']['createStateFinal']=function(_0x5366c5,_0x14e60e,_0x4801eb,_0x5b82ae){this[_0xa851('0xd0')](_0x5366c5)[_0xa851('0xc1')](function(){return _0x14e60e(msgResponse(_0xa851('0x1bc'),_0xa851('0xe3'),_0x5b82ae));})[_0xa851('0xba')](function(){return _0x4801eb(msgResponse(_0xa851('0x1bd'),_0xa851('0x140'),'contact\x20not\x20moved'));});};Dialer[_0xa851('0x1d')][_0xa851('0x9')]=function(_0x17033f){var _0x13a5e0=_0x17033f['dialPredictiveOptimizationPercentage']/0x64;var _0x5b6e0a=_0x17033f[_0xa851('0x6a')]/(_0x17033f[_0xa851('0x6a')]+_0x17033f['outboundAnswerCallsDay']);var _0x26e2eb=Math[_0xa851('0x1be')](_0x17033f[_0xa851('0x1bf')]*(_0x17033f[_0xa851('0x1c0')]/0x64));var _0xed5656=Math[_0xa851('0x1be')](_0x17033f['predictiveIntervalAvailable']*(_0x17033f[_0xa851('0x1c1')]/0x64));var _0x54de50=_0x17033f[_0xa851('0x54')]+_0x17033f['talking'];var _0x49cbdf=Math['floor'](_0x17033f[_0xa851('0x7a')]*_0x17033f[_0xa851('0x7c')]*_0x17033f[_0xa851('0x75')]*_0x17033f['predictiveIntervalMultiplicativeFactor']);if(_['isUndefined'](_0x17033f[_0xa851('0x2d')])){if(!_[_0xa851('0x41')](_0x17033f['startPredictive'])){_0x17033f[_0xa851('0x2c')]=undefined;loggerPredictive['error'](_0xa851('0x1c2'),'check\x20predictive\x20is\x20not\x20undefine');}if(!_[_0xa851('0x41')](_0x17033f[_0xa851('0x9b')])){loggerPredictive[_0xa851('0xa0')]('[startMethodPredictive][StartProgressive]',_0xa851('0x1c3'));clearInterval(_0x17033f['handlePredictive']);_0x17033f[_0xa851('0x9b')]=undefined;}_0x17033f['startProgressive']=moment()['format'](_0xa851('0x107'));loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1c4'),_0x17033f['startProgressive']);this[_0xa851('0x154')](_0x17033f,0x1);}else if(ifInterval(_0x17033f['dialPredictiveInterval'],_0x17033f[_0xa851('0x2d')])){this[_0xa851('0x154')](_0x17033f,0x1);loggerPredictiveCalls[_0xa851('0x88')](_0xa851('0x1c5'),_0x17033f[_0xa851('0x2d')],_0x17033f['name']);_0x17033f[_0xa851('0x7a')]=0x0;_0x17033f[_0xa851('0x74')]=0x0;}else if(_0x13a5e0<_0x5b6e0a&&_0x17033f[_0xa851('0x1c6')]===_0xa851('0x1c7')){freeVariablesPredictive(_0x17033f);loggerPredictive[_0xa851('0x88')]('[stopMethodPredictive][ReStartProgressive][ExceededDropDay]',_0xa851('0x1c8'),_0x5b6e0a,_0xa851('0x2d'),_0x17033f[_0xa851('0x44')]);}else if(_0x49cbdf<_0x17033f[_0xa851('0x74')]&&_0x17033f[_0xa851('0x1c6')]==='dropRate'){freeVariablesPredictive(_0x17033f);loggerPredictive[_0xa851('0x88')](_0xa851('0x1c9'),_0xa851('0x1ca'),_0x49cbdf,_0xa851('0x1cb'),_0x17033f[_0xa851('0x74')],'startProgressive',_0x17033f[_0xa851('0x44')]);}else if(!ifInterval(_0x17033f[_0xa851('0x1cc')],_0x17033f[_0xa851('0x2d')])&&_[_0xa851('0x41')](_0x17033f[_0xa851('0x2c')])&&!_[_0xa851('0x41')](_0x17033f[_0xa851('0x2d')])){_0x17033f[_0xa851('0x2c')]=moment()[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1cd'),_0x17033f[_0xa851('0x2c')]);this[_0xa851('0x1ce')](_0x17033f['dialPredictiveInterval'])[_0xa851('0xc1')](this[_0xa851('0x1cf')](_0x17033f))['then'](mergeDataErlangB(_0x17033f))['then'](this[_0xa851('0x1d0')](_0x17033f))[_0xa851('0xba')](loggerCatchPredictive(_0xa851('0x1d1'),_0x17033f));}else if(!ifInterval(_0x17033f['dialPredictiveInterval'],_0x17033f[_0xa851('0x2c')])){_0x17033f[_0xa851('0x74')]=0x0;_0x17033f['startPredictive']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1d2'),_0x17033f[_0xa851('0x2c')]);clearInterval(_0x17033f[_0xa851('0x9b')]);_0x17033f[_0xa851('0x9b')]=undefined;this[_0xa851('0x1ce')](_0x17033f['dialPredictiveInterval'])[_0xa851('0xc1')](this[_0xa851('0x1cf')](_0x17033f))[_0xa851('0xc1')](mergeDataErlangB(_0x17033f))['then'](this[_0xa851('0x1d0')](_0x17033f))['catch'](loggerCatchPredictive('Predictive\x20for\x20every\x20interval',_0x17033f));}else if(_0x17033f[_0xa851('0x1bf')]&&_0x54de50<_0x17033f[_0xa851('0x1bf')]-_0xed5656){freeVariablesPredictive(_0x17033f);loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1d3'),_0x54de50,_0xa851('0x1d4'),_0x17033f[_0xa851('0x1bf')],'-',_0xed5656,'=',_0x17033f['predictiveIntervalAvailable']-_0xed5656,')');}else if(_0x17033f['predictiveIntervalAvailable']&&_0x54de50>_0x17033f[_0xa851('0x1bf')]+_0x26e2eb){freeVariablesPredictive(_0x17033f);loggerPredictive['info'](_0x17033f[_0xa851('0x44')],_0xa851('0x1d3'),_0x54de50,_0xa851('0x1d5'),_0x17033f[_0xa851('0x1bf')],'+',_0x26e2eb,'=',_0x17033f[_0xa851('0x1bf')]+_0x26e2eb,')');}};Dialer[_0xa851('0x1d')][_0xa851('0x1cf')]=function(_0x3ecade){var _0x549eac=this;return function(_0x1d60f2){return new BPromise(function(_0x17fc33,_0x2fce9d){_[_0xa851('0xda')](_0x3ecade,_0x1d60f2[0x0]);if(checkGetDataPredictive(_0x1d60f2[0x0])){var _0x32ee0e=_0x3ecade['predictiveIntervalAvailable']=_0x3ecade[_0xa851('0x5a')]+_0x3ecade[_0xa851('0x54')];var _0x502ab6=_0x3ecade[_0xa851('0x1cc')]*0x3c;var _0x267ed3=_0x1d60f2[0x0]['predictiveIntervalAvgTalktime']+_0x1d60f2[0x0][_0xa851('0x70')];var _0xf6ab1c=(_0x1d60f2[0x0]['predictiveIntervalAnsweredCalls']+_0x1d60f2[0x0][_0xa851('0x72')]+_0x1d60f2[0x0][_0xa851('0x8f')])/_0x1d60f2[0x0][_0xa851('0x78')];_0x3ecade[_0xa851('0x75')]=_0xf6ab1c>0x0?_0xf6ab1c:0x1;switch(_0x3ecade[_0xa851('0x1c6')]){case'dropRate':var _0x46d325=_0x3ecade['dialPredictiveOptimizationPercentage']/0x64;return _0x549eac['abandonmentRate'](_0x32ee0e,_0x502ab6,_0x267ed3,_0xf6ab1c,_0x46d325)[_0xa851('0xc1')](function(_0x62b6f5){return _0x17fc33(_0x62b6f5);});case'agentBusyFactor':var _0x267d1a=_0x3ecade['dialPredictiveOptimizationPercentage']/0x64;return _0x549eac['busyFactor'](_0x32ee0e,_0x502ab6,_0x267ed3,_0xf6ab1c,_0x267d1a)[_0xa851('0xc1')](function(_0x425c4e){return _0x17fc33(_0x425c4e);});default:return _0x2fce9d(msgResponse('[getDataPredictive]','Failure',_0xa851('0x1d6')));}}else{return _0x2fce9d(msgResponse('[getDataPredictive]',_0xa851('0x140'),_0xa851('0x1d7')));}});};};Dialer[_0xa851('0x1d')][_0xa851('0x1d8')]=function(_0x396b62){var _0xc0523a=this;return function(_0x5c0ab3){return new BPromise(function(_0x5afa9d,_0xbc9e4d){_[_0xa851('0xda')](_0x396b62,_0x5c0ab3[0x0]);if(checkGetDataPredictive(_0x5c0ab3[0x0])){loggerPredictive[_0xa851('0x88')](JSON[_0xa851('0x4e')](_0x5c0ab3[0x0]));if(_0x396b62['dialPredictiveOptimization']===_0xa851('0x1c7')){return _0xc0523a[_0xa851('0xcf')](_0x396b62['id'])[_0xa851('0xc1')](function(_0x1f76c2){var _0x162f2b=_0x396b62[_0xa851('0x55')]-_0x1f76c2[0x0]['outboundQueuePauses'];var _0x1bf4eb=_0x396b62[_0xa851('0x1cc')]*0x3c;var _0x13b73c=_0x5c0ab3[0x0][_0xa851('0x71')]+_0x5c0ab3[0x0][_0xa851('0x70')];var _0x33b04f=(_0x5c0ab3[0x0][_0xa851('0x8c')]+_0x5c0ab3[0x0][_0xa851('0x72')]+_0x5c0ab3[0x0][_0xa851('0x8f')])/_0x5c0ab3[0x0][_0xa851('0x78')];var _0x1bbd09=_0x396b62['dialPredictiveOptimizationPercentage']/0x64;_0x396b62[_0xa851('0x77')]=_0x1f76c2[0x0][_0xa851('0x1d9')]||0x0;_0x396b62[_0xa851('0x75')]=_0x33b04f>0x0?_0x33b04f:0x1;return _0xc0523a[_0xa851('0x1da')](_0x162f2b,_0x1bf4eb,_0x13b73c,_0x33b04f,_0x1bbd09);})['then'](function(_0x5e24bf){return _0x5afa9d(_0x5e24bf);})[_0xa851('0xba')](function(_0x3df9aa){return _0xbc9e4d(msgResponse(_0xa851('0x1db'),_0xa851('0x140'),JSON[_0xa851('0x4e')](_0x3df9aa)));});}if(_0x396b62['dialPredictiveOptimization']===_0xa851('0x1dc')){return _0xc0523a[_0xa851('0xcf')](_0x396b62['id'])[_0xa851('0xc1')](function(_0x211827){var _0x1d166=_0x396b62[_0xa851('0x55')]-_0x211827[0x0][_0xa851('0x1d9')];var _0x22eba3=_0x396b62[_0xa851('0x1cc')]*0x3c;var _0x3b3043=_0x5c0ab3[0x0][_0xa851('0x71')]+_0x5c0ab3[0x0][_0xa851('0x70')];var _0x25ba1e=(_0x5c0ab3[0x0][_0xa851('0x8c')]+_0x5c0ab3[0x0][_0xa851('0x72')]+_0x5c0ab3[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x5c0ab3[0x0][_0xa851('0x78')];var _0x244c63=_0x396b62['dialPredictiveOptimizationPercentage']/0x64;_0x396b62['predictiveIntervalPauses']=_0x211827[0x0]['outboundQueuePauses']||0x0;_0x396b62[_0xa851('0x75')]=_0x25ba1e>0x0?_0x25ba1e:0x1;return _0xc0523a[_0xa851('0x1dd')](_0x1d166,_0x22eba3,_0x3b3043,_0x25ba1e,_0x244c63);})[_0xa851('0xc1')](function(_0x330d59){return _0x5afa9d(_0x330d59);})[_0xa851('0xba')](function(_0xb6fa49){return _0xbc9e4d(msgResponse(_0xa851('0x1db'),_0xa851('0x140'),JSON[_0xa851('0x4e')](_0xb6fa49)));});}}else{return _0xbc9e4d(msgResponse(_0xa851('0x1de'),_0xa851('0x140'),'check\x20failure'));}});};};Dialer[_0xa851('0x1d')]['startMethodPredictive']=function(_0x3069f9){var _0x1457aa=this;return function(){var _0x4afd42=0x0;var _0x122e6c=Math[_0xa851('0x1df')](_0x3069f9[_0xa851('0x7b')]*0x3e8);if(_0x122e6c>0x0){_0x122e6c=_0x122e6c<0x64?0x64:_0x122e6c;loggerPredictive[_0xa851('0x88')](_0x3069f9[_0xa851('0x44')],_0xa851('0x1e0'),_0x122e6c,_0xa851('0x4f'));_0x3069f9[_0xa851('0x9b')]=setInterval(function(){_0x1457aa['handlePredictive'](_0x3069f9);loggerPredictiveCalls[_0xa851('0x88')](_0xa851('0x1e1'),_0x4afd42+=0x1);},_0x122e6c);}else{loggerPredictive['info'](_0x3069f9[_0xa851('0x44')],_0xa851('0x1e2'));}};};Dialer[_0xa851('0x1d')][_0xa851('0x1e3')]=function(_0x8078aa,_0xd1cf3e){var _0x1ea0d0=this;return function(_0xae7363){if(_['isEmpty'](_0xae7363)){if(_['isNil'](_0xd1cf3e[_0xa851('0xde')])||!_0xd1cf3e[_0xa851('0x1e4')]){if(_0x8078aa['dialMethod']===_0xa851('0x156')){_0x8078aa[_0xa851('0x12f')]=_['isUndefined'](_0x8078aa['queueStatusComplete'])?!![]:_0x8078aa[_0xa851('0x12f')];var _0x4afc69=uuid['v4']();_0x1ea0d0[_0xa851('0x29')][_0x4afc69]=new Action(_0x8078aa,_0xd1cf3e,_0x4afc69);loggerBooked[_0xa851('0x88')](_0xa851('0x1e5'),_0x4afc69,_0xa851('0x1e6'),JSON['stringify'](_0x8078aa['queueStatusComplete']),_0xa851('0x1e7'),_0x8078aa[_0xa851('0x44')]);if(_0x8078aa['queueStatusComplete']){_0x8078aa['queueStatusComplete']=![];_0x1ea0d0[_0xa851('0x2e')][_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xbd')]]=[];ami[_0xa851('0xb7')]({'actionid':_0x4afc69,'action':'queuestatus','queue':_0x8078aa[_0xa851('0x44')]})[_0xa851('0xba')](function(){_0x1ea0d0['updateOriginated'](_0x8078aa);_0x1ea0d0['rescheduleContact']({'active':![],'ContactId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xdc')],'ListId':_0x1ea0d0['actions'][_0x4afc69][_0xa851('0xdd')],'VoiceQueueId':_0x1ea0d0['actions'][_0x4afc69][_0xa851('0xdf')]||undefined,'CampaignId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x1ea0d0[_0xa851('0x29')][_0x4afc69];});}else{loggerBooked[_0xa851('0x88')]('[booked][checkContactBlack][else]',JSON['stringify'](_0x8078aa[_0xa851('0x12f')]),_0xa851('0x1e7'),_0x8078aa[_0xa851('0x44')]);_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);_0x1ea0d0[_0xa851('0xc8')]({'active':![],'ContactId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xdc')],'ListId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69]['ListId'],'VoiceQueueId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xdf')]||undefined,'CampaignId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69]['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x1e8')));delete _0x1ea0d0[_0xa851('0x29')][_0x4afc69];}}else{return _0x1ea0d0[_0xa851('0x164')](_0x8078aa,_0xd1cf3e);}}else{if(getDiff(_0xd1cf3e[_0xa851('0x1e9')])<_0x8078aa[_0xa851('0x1ea')]*0x3c){if(_0xd1cf3e[_0xa851('0x1eb')]&&!_0xd1cf3e[_0xa851('0x1eb')][_0xa851('0x1ec')]){_0x1ea0d0['preview']['run'](_0xd1cf3e['id'])[_0xa851('0x20')](function(){_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);});}else{_0x1ea0d0[_0xa851('0xca')]({'active':![]},_0xd1cf3e['id'],0x1)[_0xa851('0x20')](function(){_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);});}}else{_0x8078aa[_0xa851('0x6e')]+=0x1;_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);if(_0x8078aa[_0xa851('0x1ed')]){_0x1ea0d0[_0xa851('0xc8')]({'active':![],'recallme':![],'UserId':null,'ContactId':_0xd1cf3e[_0xa851('0xdc')],'ListId':_0xd1cf3e['ListId'],'VoiceQueueId':_0xd1cf3e[_0xa851('0xdf')]||undefined,'CampaignId':_0xd1cf3e[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x1ee')));_0x1ea0d0[_0xa851('0xd2')](createObjHistory(_0x8078aa,_0xd1cf3e,'RECALLINQUEUE',0x17,_0xa851('0x1ef')))[_0xa851('0xba')](loggerCatch(_0xa851('0x1f0')));}else{_0x1ea0d0[_0xa851('0xd9')](createObjHistory(_0x8078aa,_0xd1cf3e,'RECALLFAILEDTIMEOUT',0x16,_0xa851('0x1f1')),_0xa851('0x1f2'),_0xa851('0x1f3'));}}}}else{_0x8078aa[_0xa851('0x66')]+=0x1;_0x1ea0d0['saveInDb'](createObjHistory(_0x8078aa,_0xd1cf3e,_0xa851('0x1f4'),0xd,'Blacklist'),'[Originate][historyBlacklist]',_0xa851('0x1f5'));throw _0xa851('0x1f6');}};};Dialer[_0xa851('0x1d')][_0xa851('0x15a')]=function(_0x1c6e80){var _0x571899=this;var _0xefbb51=_0x1c6e80[_0xa851('0x1f7')]-_0x1c6e80['originated']-_0x1c6e80['temp'];emitCampaignSummary(_0x1c6e80);if(_0xefbb51>0x0){if(_0xefbb51>this[_0xa851('0x27')]){_0xefbb51=this[_0xa851('0x27')];}_0x1c6e80['temp']+=_0xefbb51;this[_0xa851('0xce')](_0x1c6e80['id'],_0xefbb51,_0x1c6e80[_0xa851('0x1f8')],_0x1c6e80)[_0xa851('0xc1')](function(_0xf8f5be){_0x1c6e80[_0xa851('0xcc')]-=_0xefbb51;_0x1c6e80[_0xa851('0xcc')]=_0x1c6e80[_0xa851('0xcc')]>0x0?_0x1c6e80[_0xa851('0xcc')]:0x0;if(!checkContactEmpty(_0xf8f5be)){_0x1c6e80[_0xa851('0x42')]=_0xa851('0xa9');logger['info']('[getContactCampaign2][Empty]'+_0x1c6e80[_0xa851('0x44')]);}else{_0x1c6e80[_0xa851('0x79')]+=_0xf8f5be[_0xa851('0xa2')];_0x1c6e80['message']=_0xa851('0x1f9');for(var _0x268894=0x0;_0x268894<_0xf8f5be[_0xa851('0xa2')];_0x268894+=0x1){_0x1c6e80[_0xa851('0x1fa')]+=0x1;if(_['isNil'](_0xf8f5be[_0x268894])||_[_0xa851('0xe7')](_0xf8f5be[_0x268894][_0xa851('0x167')])||_['isNil'](_0xf8f5be[_0x268894][_0xa851('0x167')][_0xa851('0x168')])){_0x571899['emptyContact'](_0xa851('0x1fb'),_0x1c6e80,_0xf8f5be[_0x268894]);}else{_0x571899['checkIsBlackListIvr'](_[_0xa851('0xdb')](_0xf8f5be[_0x268894],[_0xa851('0xe0'),_0xa851('0x1fc')]))['then'](_0x571899['checkContactBlack'](_0x1c6e80,_0xf8f5be[_0x268894]))[_0xa851('0xba')](_0x571899['loggerHandler'](_0xa851('0x1fd'),_0x1c6e80));}}}})[_0xa851('0xba')](loggerGetContactDialer('[getContactCampaign2]',_0x1c6e80,_0xefbb51));}};Dialer[_0xa851('0x1d')]['handlePower']=function(_0x259bc0,_0x1ab6d0){var _0x1410c7=this;var _0x4d861f=[];var _0x1b1436=_0x1ab6d0>=0x1?_0x1ab6d0:0x1;if(_0x259bc0[_0xa851('0x151')]===_0xa851('0x156')){_0x1b1436=0x1;}var _0x1105cc=Math['floor'](_0x259bc0[_0xa851('0x54')]*_0x1b1436)-_0x259bc0[_0xa851('0x79')]-_0x259bc0[_0xa851('0xcc')];emitVoiceQueueSummary(_0x259bc0);if(_0x259bc0[_0xa851('0x1fe')]>0x0){var _0x487020=_0x259bc0[_0xa851('0x1fe')]-_0x259bc0['originated']-_0x259bc0['talking']-_0x259bc0[_0xa851('0xcc')]-_0x259bc0[_0xa851('0x56')];if(_0x1105cc>_0x487020){_0x1105cc=_0x487020;}}if(_0x1105cc>0x0){if(_0x259bc0[_0xa851('0x151')]===_0xa851('0x156')){_0x1105cc=0x1;}if(_0x1105cc>this[_0xa851('0x27')]){_0x1105cc=this[_0xa851('0x27')];}_0x259bc0['temp']+=_0x1105cc;for(var _0x31e66b in this[_0xa851('0x25')]){if(typeof this[_0xa851('0x25')][_0x31e66b]!==_0xa851('0xb6')){if(this[_0xa851('0x25')][_0x31e66b][_0xa851('0xaf')]===_0xa851('0x1ff')&&this[_0xa851('0x25')][_0x31e66b][_0xa851('0xb8')]===_0xa851('0x200')){_0x4d861f[_0xa851('0x12d')](this[_0xa851('0x25')][_0x31e66b]['id']);}}}this[_0xa851('0xcb')](_0x259bc0['id'],_0x4d861f,_0x1105cc,_0x259bc0['dialOrderByScheduledAt'],_0x259bc0)[_0xa851('0xc1')](function(_0x16a3db){_0x259bc0[_0xa851('0xcc')]-=_0x1105cc;_0x259bc0['temp']=_0x259bc0[_0xa851('0xcc')]>0x0?_0x259bc0[_0xa851('0xcc')]:0x0;if(!checkContactEmpty(_0x16a3db)){_0x1410c7[_0xa851('0x201')](_0x259bc0)[_0xa851('0xc1')](sendMessageReschedule(_0x259bc0))['catch'](loggerCatch(_0xa851('0xc2')));}else{_0x259bc0[_0xa851('0x79')]+=_0x16a3db[_0xa851('0xa2')];_0x259bc0['message']=_0x259bc0[_0xa851('0x151')]===_0xa851('0x156')?_0xa851('0x202'):'RUNNING';for(var _0x189858=0x0;_0x189858<_0x16a3db['length'];_0x189858+=0x1){if(_[_0xa851('0xe7')](_0x16a3db[_0x189858])||_[_0xa851('0xe7')](_0x16a3db[_0x189858][_0xa851('0x167')])||_[_0xa851('0xe7')](_0x16a3db[_0x189858][_0xa851('0x167')][_0xa851('0x168')])){_0x1410c7[_0xa851('0xd7')]('[actionOriginate]\x20',_0x259bc0,_0x16a3db[_0x189858]);}else{_0x1410c7['checkIsBlackList'](_[_0xa851('0xdb')](_0x16a3db[_0x189858],['VoiceQueueId',_0xa851('0x1fc')]))[_0xa851('0xc1')](_0x1410c7[_0xa851('0x1e3')](_0x259bc0,_0x16a3db[_0x189858]))[_0xa851('0xba')](_0x1410c7[_0xa851('0xd6')](_0xa851('0x1fb'),_0x259bc0));}}}})['catch'](loggerGetContactDialer(_0xa851('0x203'),_0x259bc0,_0x1105cc));}};Dialer[_0xa851('0x1d')]['handlePredictive']=function(_0x433204){if(_0x433204['dialLimitQueue']>0x0){var _0x58f715=_0x433204[_0xa851('0x1fe')]-_0x433204['originated']-_0x433204[_0xa851('0x5a')];if(_0x58f715>0x0){this[_0xa851('0x204')](_0x433204);}else{loggerPredictiveCalls[_0xa851('0x88')]('[handlePredictive][limitChannel]');}}else{this['tryOriginatePredictive'](_0x433204);}};Dialer[_0xa851('0x1d')][_0xa851('0x204')]=function(_0x5f3fd6){var _0x4fdace=this;var _0x27946d=[];_0x5f3fd6[_0xa851('0x79')]+=0x1;for(var _0x49e6d8 in this['agents']){if(typeof this[_0xa851('0x25')][_0x49e6d8]!==_0xa851('0xb6')){if(this[_0xa851('0x25')][_0x49e6d8][_0xa851('0xaf')]===_0xa851('0x1ff')&&this[_0xa851('0x25')][_0x49e6d8][_0xa851('0xb8')]===_0xa851('0x200')){_0x27946d[_0xa851('0x12d')](this[_0xa851('0x25')][_0x49e6d8]['id']);}}}this[_0xa851('0xcb')](_0x5f3fd6['id'],_0x27946d,0x1,_0x5f3fd6[_0xa851('0x1f8')],_0x5f3fd6)['then'](function(_0x4fc524){if(!checkContactEmpty(_0x4fc524)){checkContactLowerLimitOriginate(_0x5f3fd6,0x1,0x0);_0x4fdace[_0xa851('0x201')](_0x5f3fd6)[_0xa851('0xc1')](sendMessageReschedule(_0x5f3fd6))['catch'](loggerCatch('[countReScheduled]\x20'));}else{_0x5f3fd6[_0xa851('0x42')]=_0xa851('0x1f9');if(_['isNil'](_0x4fc524[0x0])||_[_0xa851('0xe7')](_0x4fc524[0x0]['Contact'])||_['isNil'](_0x4fc524[0x0][_0xa851('0x167')][_0xa851('0x168')])){_0x4fdace[_0xa851('0xd7')]('[actionOriginate]\x20',_0x5f3fd6,_0x4fc524[0x0]);}else{_0x4fdace[_0xa851('0x205')](_[_0xa851('0xdb')](_0x4fc524[0x0],[_0xa851('0xdf'),_0xa851('0x1fc')]))[_0xa851('0xc1')](_0x4fdace[_0xa851('0x1e3')](_0x5f3fd6,_0x4fc524[0x0]))[_0xa851('0xba')](_0x4fdace[_0xa851('0xd6')]('[actionOriginatePredictive]\x20',_0x5f3fd6));}}})[_0xa851('0xba')](loggerGetContactDialer(_0xa851('0x206'),_0x5f3fd6,0x1));emitVoiceQueueSummary(_0x5f3fd6);};Dialer[_0xa851('0x1d')][_0xa851('0x1da')]=function(_0x2e1152,_0x325ff8,_0x5429b4,_0x46e304,_0x44a607,_0x16bbc3){loggerPredictive['info'](_0xa851('0x207'));loggerPredictive[_0xa851('0x88')](_0xa851('0x208'),_0x2e1152);loggerPredictive[_0xa851('0x88')]('Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x325ff8);loggerPredictive[_0xa851('0x88')](_0xa851('0x209'),_0x5429b4);loggerPredictive[_0xa851('0x88')](_0xa851('0x20a'),_0x46e304);loggerPredictive[_0xa851('0x88')](_0xa851('0x20b'),_0x44a607);loggerPredictive[_0xa851('0x88')]('---------------------------');return new BPromise(function(_0x44e5d0,_0x73040f){if(_0x2e1152<=0x0||isNaN(_0x2e1152)){return _0x73040f(msgResponse('[abandonmentRate]',_0xa851('0x4d'),_0xa851('0x20c')+_0x2e1152));}if(_0x5429b4<=0x0||isNaN(_0x5429b4)){return _0x73040f(msgResponse(_0xa851('0x20d'),_0xa851('0x4d'),_0xa851('0x20e')+_0x5429b4));}if(_0x46e304<=0x0||isNaN(_0x46e304)){return _0x73040f(msgResponse(_0xa851('0x20d'),'Error',_0xa851('0x20f')+_0x46e304));}if(_0x325ff8<=0x0||isNaN(_0x325ff8)){return _0x73040f(msgResponse(_0xa851('0x20d'),_0xa851('0x4d'),_0xa851('0x210')+_0x325ff8));}if(_0x44a607<=0x0||isNaN(_0x44a607)){return _0x73040f(msgResponse(_0xa851('0x20d'),'Error',_0xa851('0x211')+_0x44a607));}_0x16bbc3=_0x16bbc3||0x0;var _0x4b6787=0x1/_0x5429b4;var _0x5b03cb=0x0;var _0x46fccf=0x0;var _0x22779d=0x0;var _0x74633e=0x0;for(var _0xe53cfd=0x0;_0x22779d<_0x44a607;_0xe53cfd+=0x1){_0x46fccf=_0xe53cfd/_0x325ff8;_0x5b03cb=(_0x46e304*_0x46fccf+_0x16bbc3)/_0x4b6787;_0x22779d=erlangb(_0x5b03cb,_0x2e1152);_0x74633e=_0x5b03cb/_0x2e1152*(0x1-erlangb(_0x5b03cb,_0x2e1152));}return _0x44e5d0({'erlangCalls':_0xe53cfd,'erlangCallToSecond':_0x325ff8/_0xe53cfd,'erlangAbandonmentRate':_0x22779d,'erlangBusyFactor':_0x74633e});});};Dialer[_0xa851('0x1d')]['busyFactor']=function(_0x5ee395,_0x2b81f7,_0x503e9f,_0x442d03,_0xa69f4a,_0x324792){loggerPredictive['info']('----\x20Agent\x20Busy\x20Factor\x20----');loggerPredictive[_0xa851('0x88')]('M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x5ee395);loggerPredictive[_0xa851('0x88')]('Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x2b81f7);loggerPredictive['info'](_0xa851('0x209'),_0x503e9f);loggerPredictive[_0xa851('0x88')](_0xa851('0x20a'),_0x442d03);loggerPredictive[_0xa851('0x88')]('Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0xa69f4a);loggerPredictive['info']('---------------------------');return new BPromise(function(_0x38203f,_0x27f966){if(_0x5ee395<=0x0||isNaN(_0x5ee395)){return _0x27f966(msgResponse('[busyFactor]',_0xa851('0x4d'),_0xa851('0x20c')+_0x5ee395));}if(_0x503e9f<=0x0||isNaN(_0x503e9f)){return _0x27f966(msgResponse(_0xa851('0x212'),_0xa851('0x4d'),_0xa851('0x20e')+_0x503e9f));}if(_0x442d03<=0x0||isNaN(_0x442d03)){return _0x27f966(msgResponse(_0xa851('0x212'),_0xa851('0x4d'),'p\x20=\x20'+_0x442d03));}if(_0x2b81f7<=0x0||isNaN(_0x2b81f7)){return _0x27f966(msgResponse(_0xa851('0x212'),_0xa851('0x4d'),_0xa851('0x210')+_0x2b81f7));}if(_0xa69f4a<=0x0||isNaN(_0xa69f4a)){return _0x27f966(msgResponse(_0xa851('0x212'),'Error',_0xa851('0x213')+_0xa69f4a));}_0x324792=_0x324792||0x0;var _0x4cbb83=0x1/_0x503e9f;var _0x2fc3a1=0x0;var _0x39d9cc=0x0;var _0x14b23b=0x0;var _0x54a41d=0x0;for(var _0x4dc5f0=0x0;_0x54a41d<_0xa69f4a;_0x4dc5f0+=0x1){_0x39d9cc=_0x4dc5f0/_0x2b81f7;_0x2fc3a1=(_0x442d03*_0x39d9cc+_0x324792)/_0x4cbb83;_0x14b23b=erlangb(_0x2fc3a1,_0x5ee395);_0x54a41d=_0x2fc3a1/_0x5ee395*(0x1-erlangb(_0x2fc3a1,_0x5ee395));}return _0x38203f({'erlangCalls':_0x4dc5f0,'erlangCallToSecond':_0x2b81f7/_0x4dc5f0,'erlangAbandonmentRate':_0x14b23b,'erlangBusyFactor':_0x54a41d});});};module[_0xa851('0x214')]=Dialer;
\ No newline at end of file
+var _0x1782=['unmonitored','syncVarSet','uniqueid','variable','amdstatus','xcally-motion-dialer','dialAMDActive','HANGUP','HangupInAMD','membername','AMD','custom:amd','amd','[syncHangupInAMD][createHistory]','value','MACHINE','Machine','countmachineretry','countglobal','buildObj','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countagentrejectretry','stateGlobal','reason19\x20machine....','reason\x2019\x20machine....','add','dialMachineRetryFrequency','minutes','[rescheduleContact][Machine]','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','emit','[syncAgentComplete][createHistory][0]','countdropretry','countabandonedretry','dialMachineMaxRetry','YYYY-MM-DD\x20HH:mm:ss','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','dialQueueProject','AnswerAGI','cause-txt','Unknow','reason','agent','agiafterat','dialQueueProject2','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','queueCallerAbandonCreateState','[syncQueueCallerAbandon]\x20[Drop]','droptime','dialQueueTimeout','predictiveIntervalErlangCallsDroppedCalls','dropreason','TIMEOUT','dialDropRetryFrequency','[rescheduleContact][Drop]','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','Abandoned','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','[rescheduleContact][Abandoned]','[syncAgentComplete][createHistory][11]','syncNewExten','syncQueueMember','actionid','strategy','locked','paused','stateinterface','push','pick','idHopper','queueStatusComplete','[unlockQueueStatus][undefined]','[booked][unlockQueueStatus]','run','[Catch][Preview][syncQueueStatusComplete]','finally','[unlock][syncQueueStatusComplete]','unlockRR','[booked][RR]','[booked][RR][finaly]','Agent:\x20','contactAgent-idHopper:\x20','[booked][unlock]','[unlock2][syncQueueStatusComplete]','[booked][unlock3]','loopCampaigns','syncCampaigns','isTrunkReachable','TRUNK_IS_NOT_REACHABLE','checkIfTime','checkIfTimeIntervals','ifTime','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','\x20Intervals\x20is\x20empty\x20','TIMEZONE_UNKNOW','isArray','iftime\x20%s,%s','interval','content','indexOf','timezones','true','all','some','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','Timezone:\x20','checkDialMethod','progressive','handlePower','power','method\x20not\x20recognized','launchHandleIvr','handleIvr','checkIsTrunkReachable','dialGlobalInterval','dialTimezone','[syncQueueSummary]','[syncCampaigns]','\x5cw{0,','pow','replace','actionOriginate','object','originate','voiceQueue\x20is\x20undefine','Contact','phone','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','dialQueueOptions','dialer','ACTIVE','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','XMD-AMDGREETING','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','XMD-AMDTOTALANALYSISTIME','dialAMDTotalAnalysisTime','XMD-AMDMINWORDLENGTH','dialAMDMinWordLength','XMD-AMDBETWEENWORDSSILENCE','XMD-AMDMAXIMUMNUMBEROFWORDS','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','tags','createdAt','%s%s','XMD-','callerid','dialOriginateCallerIdNumber','TrunkBackup','dialRandomLastDigitCallerIdNumber','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','SIP/%s/%s%s','substring','dialCutDigit','from-sip','OriginateError','[originate][error]','originate\x20action\x20Error','responsetime','callProgressDetecting','[callProgressDetecting]\x20','checkRetriveMax','dialNoAnswerMaxRetry','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','dialBusyRetryFrequency','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberRetryFrequency','[rescheduleContact][NoSuchNumber]','dialDropMaxRetry','dialAgentRejectMaxRetry','[rescheduleContact][AgentReject]','entity\x20is\x20undefine','[callProgressDetecting]','evt\x20is\x20undefine','outboundNoSuchCallsDay','custom:agentnosuchnumber','nosuchnumber','dialNoSuchNumberMaxRetry','createStateFinal','reason\x200\x20no\x20such\x20number....','NoAnswer','noanswer','[syncAgentComplete][createHistory][3]','reason\x203\x20ringing\x20no\x20answer','Busy','custom:agentbusy','busy','[syncAgentComplete][createHistory][5]','reason\x205\x20busy','Congestion','custom:agentcongestion','[syncAgentComplete][createHistory][8]','dialCongestionMaxRetry','reason\x208\x20congestion','outboundAbandonedCallsDay','reason\x2011\x20abandoned','AgentReject','custom:agentreject','agentreject','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','dialGlobalMaxRetry','Global','[moveContactManagedDialer][0]','contact\x20not\x20moved','round','predictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','floor','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','dialPredictiveInterval','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','Dropped\x20calls\x20day','Max\x20Drop\x20','started\x20in\x20predictive\x20at','getDataPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','startMethodPredictive','Predictive\x20for\x20every\x20interval','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','dropRate','dialPredictiveOptimizationPercentage','abandonmentRate','busyFactor','[getDataPredictive]','check\x20failure','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','agentBusyFactor','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','recallme','queueStatusComplete:\x20','Queue:\x20','[unlockOriginate][syncQueueStatusComplete]','dialRecallMeTimeout','Agent','voicePause','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','[Originate][HistoryRecallClose][historyCatch]','BLACKLIST','Blacklist','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','inBlackList','limitCalls','[getContactCampaign2][Empty]','RUNNING','ivrTotalCallsDays','[actionOriginate]\x20','Contact.phone','checkContactBlack','[actionOriginateIvr]\x20','[getContactCampaign2]','dialLimitQueue','[getContactDialer2]','[handlePredictive][limitChannel]','tryOriginatePredictive','not_inuse','dialOrderByScheduledAt','[actionOriginatePredictive]\x20','--------\x20Drop\x20Rate\x20--------','Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[abandonmentRate]','Ts\x20=\x20','p\x20=\x20','interval\x20=\x20','Amax\x20=\x20','Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[busyFactor]','m\x20=\x20','Umin\x20=\x20','util','bluebird','uuid','moment','md5','ioredis','../../../config/environment/','../../../config/logger','booked','syncQueueSummary','../ami','redis','defaults','socket.io-emitter','../rpc/cmHopper','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','./action','./history','./final','./agentComplete','./hangup','env','127.0.0.1','rrmemory','roundrobin','prototype','enqueue','tail','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','channels','actions','contactsId','uniqueId','optionPredictive','startProgressive','ivrOriginated','queueBooked','queueBookedRR','agentconnect','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','agentcomplete','syncAgentComplete','custom:queuesummary','hangup','syncHangup','newexten','varset','queuemember','queuestatuscomplete','syncQueueStatusComplete','loopClearZombieChannels','isUndefined','message','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','Interval','INTERVAL_IS_NULL','\x20INTERVAL_IS_NULL','isEmpty','Intervals','[ifTime][Action]','Error','stringify','milliseconds','diff','seconds','outbound','answered','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','talking','total','type','unmanaged','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','Trunk','active','format','voice:queue:%s','ivr','info','-----\x20Stats\x20Predictive\x20---','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','History\x20information\x20are\x20empty','Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','merge','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','clearing\x20variable\x20handle\x20predictive','preview','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','stack','inspect','length','undefined','[decremetOriginate]\x20object\x20originated\x20is\x20negative','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','[getContactDialer2][Empty]','sendMessageOneNotActive','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20not\x20active','IS_DISACTIVED','is\x20disactive','state','statedesc','endtime','starttime','clearZombieChannels','sequence','isNil','Action','status','channel','catch','updateOriginated','queue','[Dialer][checkChannel][ivr]','countReScheduled','resolve','then','[countReScheduled]\x20','checkIsBlackList','[checkIsBlackList]\x20','checkIsBlackListIvr','averageHandleTime','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','unlockContact','[unlockContact]\x20','getContactDialer','temp','getContactDialerIvr','[getContactDialerIvr]\x20','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','saveInDb','ContactId','ListId','UserId','VoiceQueueId','CampaignId','[emptyContact][createHistory]','[emptyContact]','isSuccess','Success','reachable','SIP/%s'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x1782,0x13e));var _0x2178=function(_0x99079,_0x1183d5){_0x99079=_0x99079-0x0;var _0x566382=_0x1782[_0x99079];return _0x566382;};'use strict';var util=require(_0x2178('0x0'));var _=require('lodash');var BPromise=require(_0x2178('0x1'));var uuid=require(_0x2178('0x2'));var moment=require(_0x2178('0x3'));var rr=require('rr');var md5=require(_0x2178('0x4'));var Redis=require(_0x2178('0x5'));var ut=require('../preview/util/util');var config=require(_0x2178('0x6'));var logger=require(_0x2178('0x7'))('dialer');var loggerBooked=require('../../../config/logger')(_0x2178('0x8'));var loggerPredictive=require(_0x2178('0x7'))('predictive');var loggerPredictiveCalls=require('../../../config/logger')('predictiveCalls');var loggerSyncQueueSummary=require(_0x2178('0x7'))(_0x2178('0x9'));var ami=require(_0x2178('0xa'));config[_0x2178('0xb')]=_[_0x2178('0xc')](config[_0x2178('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0x2178('0xd'))(new Redis(config[_0x2178('0xb')]));var cmHopper=require(_0x2178('0xe'));var cmHopperHistory=require(_0x2178('0xf'));var cmHopperBlack=require(_0x2178('0x10'));var voiceQueueRt=require(_0x2178('0x11'));var Action=require(_0x2178('0x12'));var History=require(_0x2178('0x13'));var Final=require(_0x2178('0x14'));var AgentComplete=require(_0x2178('0x15'));var QueueCallerAbandon=require('./queueCallerAbandon');var Hangup=require(_0x2178('0x16'));var ipAgi=process[_0x2178('0x17')]['XCALLY_IP_AGI']||_0x2178('0x18');var strategy={'rrmemory':_0x2178('0x19'),'roundrobin':_0x2178('0x1a')};var Sequence=function(){};Sequence[_0x2178('0x1b')][_0x2178('0x1c')]=function(_0x4ad093){this['tail']=this['tail']?this[_0x2178('0x1d')]['finally'](_0x4ad093):_0x4ad093();};function Dialer(_0x2bea9d,_0x46701e){this['sequence']=new Sequence();this['preview']=_0x46701e;this[_0x2178('0x1e')]=_0x2bea9d[_0x2178('0x1e')];this['campaigns']=_0x2bea9d[_0x2178('0x1f')];this[_0x2178('0x20')]=_0x2bea9d[_0x2178('0x20')];this[_0x2178('0x21')]=_0x2bea9d[_0x2178('0x21')];this[_0x2178('0x22')]=config[_0x2178('0x22')]||0x2;this[_0x2178('0x23')]={};this[_0x2178('0x24')]={};this[_0x2178('0x25')]={};this[_0x2178('0x26')]={};this[_0x2178('0x27')]={};this['startPredictive']={};this[_0x2178('0x28')]={};this[_0x2178('0x29')]={};this[_0x2178('0x2a')]={};this[_0x2178('0x2b')]={};ami['on'](_0x2178('0x2c'),this[_0x2178('0x2d')][_0x2178('0x2e')](this));ami['on'](_0x2178('0x2f'),this[_0x2178('0x30')][_0x2178('0x2e')](this));ami['on'](_0x2178('0x31'),this[_0x2178('0x32')][_0x2178('0x2e')](this));ami['on'](_0x2178('0x33'),this[_0x2178('0x34')][_0x2178('0x2e')](this));ami['on'](_0x2178('0x35'),this[_0x2178('0x9')][_0x2178('0x2e')](this));ami['on'](_0x2178('0x36'),this[_0x2178('0x37')][_0x2178('0x2e')](this));ami['on'](_0x2178('0x38'),this['syncNewExten'][_0x2178('0x2e')](this));ami['on'](_0x2178('0x39'),this['syncVarSet']['bind'](this));ami['on'](_0x2178('0x3a'),this['syncQueueMember'][_0x2178('0x2e')](this));ami['on'](_0x2178('0x3b'),this[_0x2178('0x3c')]['bind'](this));this['loopCampaigns']();this[_0x2178('0x3d')]();}function isNotNull(_0x30e02f){return _0x30e02f!==null&&!_[_0x2178('0x3e')](_0x30e02f);}function checkIsLoggedIn(_0x505cc3,_0x4baf93){return function(){if(_0x4baf93<=0x0){_0x505cc3[_0x2178('0x3f')]=_0x2178('0x40');throw _0x505cc3[_0x2178('0x41')]+_0x2178('0x42');}};}function isActive(_0x42fad2){return _0x42fad2;}function checkIsActive(_0x23cd38,_0x44b79d){return function(){if(!isActive(_0x44b79d)){_0x23cd38['message']=_0x2178('0x43');throw _0x23cd38[_0x2178('0x41')]+'\x20NOT\x20Active';}};}function checkInterval(_0x4332ac){return function(){if(!isNotNull(_0x4332ac[_0x2178('0x44')])){_0x4332ac[_0x2178('0x3f')]=_0x2178('0x45');throw _0x4332ac['name']+_0x2178('0x46');}if(!isNotNull(_0x4332ac['Interval']['Intervals'])){_0x4332ac[_0x2178('0x3f')]=_0x2178('0x45');throw _0x4332ac[_0x2178('0x41')]+_0x2178('0x46');}if(!isNotNull(_[_0x2178('0x47')](_0x4332ac[_0x2178('0x44')][_0x2178('0x48')]))){_0x4332ac['message']=_0x2178('0x45');throw _0x4332ac['name']+_0x2178('0x46');}};}function msgResponse(_0xaa0a10,_0x4c1047,_0x44607b){return{'action':_0xaa0a10,'response':_0x4c1047,'message':_0x44607b,'stack':_0x44607b};}function myreject(_0x3196f5){return function(_0x10e293){return _0x3196f5(msgResponse(_0x2178('0x49'),_0x2178('0x4a'),JSON[_0x2178('0x4b')](_0x10e293)));};}function getSeconds(_0x322351,_0x5876d8){var _0x515696=moment(_0x322351)['milliseconds'](0x0);var _0x48dd90=moment(_0x5876d8)[_0x2178('0x4c')](0x0);return _0x515696[_0x2178('0x4d')](_0x48dd90,_0x2178('0x4e'));}function emit(_0x16bd22,_0x35fcb7,_0x482f8a){io['to'](_0x16bd22)['emit'](_0x35fcb7,_0x482f8a);}function emitVoiceQueueSummary(_0x578277){if(_0x578277['type']===_0x2178('0x4f')){var _0x6a430b={'id':_0x578277['id'],'name':_0x578277[_0x2178('0x41')],'strategy':_0x578277['strategy'],'answered':_0x578277[_0x2178('0x50')],'available':_0x578277[_0x2178('0x51')],'loggedIn':_0x578277[_0x2178('0x52')],'pTalking':_0x578277[_0x2178('0x53')],'sumBillable':_0x578277[_0x2178('0x54')],'sumDuration':_0x578277[_0x2178('0x55')],'sumHoldTime':_0x578277[_0x2178('0x56')]||0x0,'talking':_0x578277[_0x2178('0x57')],'total':_0x578277[_0x2178('0x58')],'type':_0x578277[_0x2178('0x59')],'unmanaged':_0x578277[_0x2178('0x5a')],'abandoned':_0x578277['abandoned'],'waiting':_0x578277[_0x2178('0x5b')],'loggedInDb':_0x578277[_0x2178('0x5c')],'dialActive':_0x578277[_0x2178('0x5d')],'dialMethod':_0x578277[_0x2178('0x5e')],'dialOriginateCallerIdName':_0x578277[_0x2178('0x5f')],'dialOriginateCallerIdNumber':_0x578277['dialOriginateCallerIdNumber'],'dialOriginateTimeout':_0x578277[_0x2178('0x60')],'dialPrefix':_0x578277[_0x2178('0x61')],'outboundAnswerAgiCallsDay':_0x578277[_0x2178('0x62')],'outboundAnswerCallsDay':_0x578277[_0x2178('0x63')],'outboundBlacklistCallsDay':_0x578277[_0x2178('0x64')],'outboundBusyCallsDay':_0x578277[_0x2178('0x65')],'outboundCongestionCallsDay':_0x578277[_0x2178('0x66')],'outboundDropCallsDayACS':_0x578277[_0x2178('0x67')],'outboundDropCallsDayCallersExit':_0x578277[_0x2178('0x68')],'outboundDropCallsDayTimeout':_0x578277[_0x2178('0x69')],'outboundNoAnswerCallsDay':_0x578277[_0x2178('0x6a')],'outboundNoSuchCallsDay':_0x578277['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x578277[_0x2178('0x6b')],'outboundReCallsDay':_0x578277['outboundReCallsDay'],'outboundRejectCallsDay':_0x578277[_0x2178('0x6c')],'outboundUnknownCallsDay':_0x578277[_0x2178('0x6d')],'predictiveIntervalAnsweredCalls':_0x578277[_0x2178('0x6e')],'predictiveIntervalAvgHoldtime':_0x578277[_0x2178('0x6f')],'predictiveIntervalAvgTalktime':_0x578277[_0x2178('0x70')],'predictiveIntervalDroppedCallsCallersExit':_0x578277[_0x2178('0x71')],'predictiveIntervalDroppedCallsTimeout':_0x578277[_0x2178('0x72')],'predictiveIntervalErlangCalls':_0x578277[_0x2178('0x73')],'predictiveIntervalErlangCallsDroppedCalls':_0x578277['predictiveIntervalErlangCallsDroppedCalls'],'predictiveIntervalHitRate':_0x578277[_0x2178('0x74')],'predictiveIntervalMultiplicativeFactor':_0x578277[_0x2178('0x75')],'predictiveIntervalPauses':_0x578277[_0x2178('0x76')],'predictiveIntervalAvailable':_0x578277[_0x2178('0x77')],'predictiveIntervalTotalCalls':_0x578277[_0x2178('0x78')],'message':_0x578277[_0x2178('0x3f')],'originated':_0x578277[_0x2178('0x79')],'erlangCalls':_0x578277[_0x2178('0x7a')],'erlangCallToSecond':_0x578277[_0x2178('0x7b')],'erlangAbandonmentRate':_0x578277[_0x2178('0x7c')],'erlangBusyFactor':_0x578277[_0x2178('0x7d')],'startPredictive':_0x578277[_0x2178('0x7e')],'startProgressive':_0x578277[_0x2178('0x28')]};if(_0x578277[_0x2178('0x7f')]){_0x6a430b[_0x2178('0x7f')]={'id':_0x578277['Trunk']['id'],'name':_0x578277[_0x2178('0x7f')]['name'],'active':_0x578277[_0x2178('0x7f')][_0x2178('0x80')],'callerid':_0x578277[_0x2178('0x7f')]['callerid']};}if(_0x578277[_0x2178('0x44')]){_0x6a430b[_0x2178('0x44')]={'id':_0x578277[_0x2178('0x44')]['id'],'name':_0x578277[_0x2178('0x44')][_0x2178('0x41')]};}var _0x5f150d=md5(JSON[_0x2178('0x4b')](_0x6a430b));if(_0x578277[_0x2178('0x4')]!==_0x5f150d){_0x578277[_0x2178('0x4')]=_0x5f150d;emit(util[_0x2178('0x81')](_0x2178('0x82'),_0x6a430b['name']),'voice_queue:save',_0x6a430b);}}}function emitCampaignSummary(_0x32f459){if(_0x32f459[_0x2178('0x59')]===_0x2178('0x83')){emit(util[_0x2178('0x81')]('campaign:ivr:%s',_0x32f459['name']),'campaign:save',_0x32f459);}}function checkGetDataPredictive(_0x370007){if(isNotNull(_0x370007)&&!_[_0x2178('0x47')](_0x370007)){loggerPredictive[_0x2178('0x84')](_0x2178('0x85'));loggerPredictive[_0x2178('0x84')](_0x2178('0x86'),_0x370007['predictiveIntervalTotalCalls']);loggerPredictive['info'](_0x2178('0x87'),_0x370007[_0x2178('0x6e')]);loggerPredictive['info']('Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x370007['predictiveIntervalDroppedCallsTimeout']);loggerPredictive[_0x2178('0x84')](_0x2178('0x88'),_0x370007[_0x2178('0x71')]);loggerPredictive[_0x2178('0x84')]('AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x370007['predictiveIntervalAvgHoldtime']);loggerPredictive[_0x2178('0x84')](_0x2178('0x89'),_0x370007[_0x2178('0x70')]);loggerPredictive[_0x2178('0x84')](_0x2178('0x8a'));if(_0x370007[_0x2178('0x78')]>0x0){if(!_['isUndefined'](_0x370007[_0x2178('0x70')])&&_0x370007['predictiveIntervalAvgTalktime']>0x0){return!![];}loggerPredictive['info']('Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive');if(!_['isUndefined'](_0x370007[_0x2178('0x6f')])&&_0x370007['predictiveIntervalAvgHoldtime']>0x0){return!![];}loggerPredictive[_0x2178('0x84')](_0x2178('0x8b'));}else{loggerPredictive[_0x2178('0x84')](_0x2178('0x8c'));}}else{loggerPredictive[_0x2178('0x84')](_0x2178('0x8d'));}return![];}function mergeDataErlangB(_0x1cfe51){return function(_0x4ee12a){loggerPredictive[_0x2178('0x84')]('---------\x20ErlangB\x20---------');loggerPredictive['info'](_0x2178('0x8e'),_0x4ee12a[_0x2178('0x7a')]);loggerPredictive[_0x2178('0x84')](_0x2178('0x8f'),_0x4ee12a[_0x2178('0x7b')]);loggerPredictive['info']('Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4ee12a[_0x2178('0x7c')]);loggerPredictive[_0x2178('0x84')](_0x2178('0x90'),_0x4ee12a[_0x2178('0x7d')]);loggerPredictive['info'](_0x2178('0x91'),_0x4ee12a[_0x2178('0x7c')]);loggerPredictive['info']('---------------------------');_[_0x2178('0x92')](_0x1cfe51,_0x4ee12a);};}function getDiff(_0xbf383f){var _0x40a65f=moment()['milliseconds'](0x0);var _0x482ed4=moment(_0xbf383f)[_0x2178('0x4c')](0x0);return _0x40a65f[_0x2178('0x4d')](_0x482ed4,_0x2178('0x4e'));}function ifInterval(_0x11ee5a,_0x986486){if(_[_0x2178('0x3e')](_0x986486)){return![];}return getDiff(_0x986486)<_0x11ee5a*0x3c;}function freeVariablesPredictive(_0x25685e){if(isNotNull(_0x25685e)){if(!_['isUndefined'](_0x25685e[_0x2178('0x28')])){_0x25685e[_0x2178('0x28')]=undefined;loggerPredictive[_0x2178('0x84')](_0x25685e['name'],_0x2178('0x93'));}if(!_[_0x2178('0x3e')](_0x25685e[_0x2178('0x7e')])){_0x25685e[_0x2178('0x7e')]=undefined;loggerPredictive[_0x2178('0x84')](_0x25685e[_0x2178('0x41')],_0x2178('0x94'));}if(!_[_0x2178('0x3e')](_0x25685e['handlePredictive'])){clearInterval(_0x25685e['handlePredictive']);_0x25685e[_0x2178('0x95')]=undefined;loggerPredictive['info'](_0x25685e[_0x2178('0x41')],_0x2178('0x96'));}}}function erlangb(_0x3b249a,_0x137dad){if(_0x137dad===0x0){return 0x0;}var _0xb3f299=0x1;for(var _0x480275=0x1;_0x480275<=_0x137dad;_0x480275+=0x1){_0xb3f299=0x1+_0xb3f299*_0x480275/_0x3b249a;}return 0x1/_0xb3f299;}function isVoiceQueueOutbound(_0xf7aa31){return _0xf7aa31===_0x2178('0x4f');}function isNotPreview(_0x3ab061){return _0x3ab061!==_0x2178('0x97');}function isCampaignIvr(_0x1ac8c0){return _0x1ac8c0==='ivr';}function getCallerId(_0x39bf9f,_0x4c7b7f,_0x4060bf){if(!_['isUndefined'](_0x4060bf)&&typeof _0x4060bf===_0x2178('0x98')&&!_['isEmpty'](_0x4060bf)){if(!_[_0x2178('0x3e')](_0x4c7b7f)&&typeof _0x4c7b7f===_0x2178('0x98')&&!_[_0x2178('0x47')](_0x4c7b7f)){return util[_0x2178('0x81')](_0x2178('0x99'),_0x4c7b7f,_0x4060bf);}return util[_0x2178('0x81')](_0x2178('0x99'),_0x4060bf,_0x4060bf);}if(!_[_0x2178('0x3e')](_0x39bf9f)&&typeof _0x39bf9f==='string'&&!_['isEmpty'](_0x39bf9f)){return _0x39bf9f;}return _0x2178('0x9a');}function loggerCatchQueueSummary(_0x2b9292,_0x513127){return function(_0x487b64){freeVariablesPredictive(_0x513127);emitVoiceQueueSummary(_0x513127);emitCampaignSummary(_0x513127);loggerSyncQueueSummary[_0x2178('0x9b')](_0x2b9292,util['inspect'](_0x487b64,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x59d580,_0x46c467){return function(_0x2e65aa){loggerPredictive[_0x2178('0x9b')](_0x46c467[_0x2178('0x41')],_0x59d580);loggerPredictive[_0x2178('0x9b')](_0x2e65aa[_0x2178('0x9c')]);freeVariablesPredictive(_0x46c467);};}function loggerCatch(_0x429192){return function(_0x1121ca){logger[_0x2178('0x9b')](_0x429192,util[_0x2178('0x9d')](_0x1121ca,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x351bde){return _0x351bde&&!_[_0x2178('0x3e')](_0x351bde)&&_0x351bde[_0x2178('0x9e')]>0x0;}function decremetOriginate(_0x34d5e8){if(!_['isUndefined'](_0x34d5e8)&&_0x34d5e8!==null){if(typeof _0x34d5e8[_0x2178('0x79')]!==_0x2178('0x9f')){if(_0x34d5e8['originated']>0x0){_0x34d5e8[_0x2178('0x79')]-=0x1;}else{logger['error'](_0x2178('0xa0'));}}}else{logger[_0x2178('0x9b')](_0x2178('0xa1'));}}function checkContactLowerLimitOriginate(_0x56a7c7,_0x849a9c,_0x5fea42){if(_0x849a9c>_0x5fea42){for(var _0x5af89e=0x0;_0x5af89e<_0x849a9c-_0x5fea42;_0x5af89e+=0x1){decremetOriginate(_0x56a7c7);}}}function loggerGetContactDialer(_0x11c825,_0x3c7f65,_0x16d575){return function(_0x43a937){checkContactLowerLimitOriginate(_0x3c7f65,_0x16d575,0x0);logger['error'](_0x11c825,util[_0x2178('0x9d')](_0x43a937,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x2dd2bb){return function(_0x5e7525){if(isNotNull(_0x5e7525)&&isNotNull(_0x5e7525[0x0])){if(_0x5e7525[0x0][_0x2178('0xa2')]>0x0){_0x2dd2bb[_0x2178('0x3f')]=_0x2178('0xa3');logger[_0x2178('0x84')](_0x2178('0xa4')+_0x2dd2bb['name'],_0x5e7525[0x0]['contactsRescheduled'],_0x2178('0xa5'));}else{_0x2dd2bb['message']='AVAILABLE_CONTACTS_FINISHED';logger['info'](_0x2178('0xa6')+_0x2dd2bb['name']);}}};}function notSendMessagesQueue(_0x46a2c7){if(_0x46a2c7[_0x2178('0xa7')]){freeVariablesPredictive(_0x46a2c7);if(_0x46a2c7[_0x2178('0x79')]===0x0&&_0x46a2c7[_0x2178('0x57')]===0x0&&_0x46a2c7[_0x2178('0x5b')]===0x0&&(_0x46a2c7[_0x2178('0x53')]||0x0)===0x0){_0x46a2c7['sendMessageOneNotActive']=![];_0x46a2c7[_0x2178('0x51')]=0x0;_0x46a2c7[_0x2178('0x3f')]=_0x2178('0x43');loggerSyncQueueSummary[_0x2178('0x9b')](_0x2178('0xa8'),_0x46a2c7['name'],_0x2178('0xa9'));}else{_0x46a2c7[_0x2178('0x3f')]=_0x2178('0xaa');loggerSyncQueueSummary[_0x2178('0x9b')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x46a2c7[_0x2178('0x41')],_0x2178('0xab'));}emitVoiceQueueSummary(_0x46a2c7);}}function notSendMessagesCampaign(_0x249daa){if(_0x249daa['sendMessageOneNotActive']){if(_0x249daa['originated']===0x0){_0x249daa[_0x2178('0xa7')]=![];_0x249daa[_0x2178('0x3f')]=_0x2178('0x43');loggerSyncQueueSummary['error']('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x249daa[_0x2178('0x41')],_0x2178('0xa9'));}else{_0x249daa[_0x2178('0x3f')]=_0x2178('0xaa');loggerSyncQueueSummary[_0x2178('0x9b')]('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x249daa[_0x2178('0x41')],_0x2178('0xab'));}emitCampaignSummary(_0x249daa);}}function createObjHistory(_0x458d3d,_0x5851,_0x46a9d9,_0x46a515,_0x24e184){_0x458d3d[_0x2178('0x3f')]=_0x46a9d9;var _0xc0038c=new Action(_0x458d3d,_0x5851);var _0x4b9e62=new History(_0xc0038c);_0x4b9e62[_0x2178('0xac')]=_0x46a515;_0x4b9e62[_0x2178('0xad')]=_0x24e184;_0x4b9e62[_0x2178('0xae')]=_0xc0038c[_0x2178('0xaf')];return _0x4b9e62;}Dialer[_0x2178('0x1b')][_0x2178('0x3d')]=function(){var _0x1148a6=this;setInterval(function(){_0x1148a6['clearZombieChannels'](_0x1148a6['uniqueId'],'[uniqueid]');_0x1148a6[_0x2178('0xb0')](_0x1148a6[_0x2178('0x24')],'[actions]');},0x32c8);};Dialer[_0x2178('0x1b')][_0x2178('0xb0')]=function(_0x254f72,_0x367b1d){var _0x3566e1=this;for(var _0x28e1d7 in _0x254f72){if(typeof _0x254f72[_0x28e1d7]!==_0x2178('0x9f')){this[_0x2178('0xb1')][_0x2178('0x1c')](function(){if(!_[_0x2178('0xb2')](_0x254f72[_0x28e1d7])){return ami[_0x2178('0xb3')]({'action':_0x2178('0xb4'),'channel':_0x254f72[_0x28e1d7][_0x2178('0xb5')]})[_0x2178('0xb6')](function(_0x480e4c){if(_0x480e4c[_0x2178('0x3f')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x254f72[_0x28e1d7]&&_0x254f72[_0x28e1d7][_0x2178('0x59')]!==_0x2178('0x83')){_0x3566e1[_0x2178('0xb7')](_0x3566e1['voiceQueues'][_0x254f72[_0x28e1d7][_0x2178('0xb8')]]);logger[_0x2178('0x9b')]('[Dialer][checkChannel]',_0x367b1d,_0x28e1d7,_0x254f72[_0x28e1d7][_0x2178('0xb8')]);delete _0x254f72[_0x28e1d7];}if(_0x254f72[_0x28e1d7]&&_0x254f72[_0x28e1d7][_0x2178('0x59')]===_0x2178('0x83')){_0x3566e1[_0x2178('0xb7')](_0x3566e1[_0x2178('0x1f')][_0x254f72[_0x28e1d7][_0x2178('0xb8')]]);logger['error'](_0x2178('0xb9'),_0x367b1d,_0x28e1d7,_0x254f72[_0x28e1d7][_0x2178('0xb8')]);delete _0x254f72[_0x28e1d7];}},0x2328);}});}});}}};Dialer[_0x2178('0x1b')][_0x2178('0xba')]=function(_0x2775d9){return BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](cmHopper[_0x2178('0xba')](_0x2775d9))['catch'](loggerCatch(_0x2178('0xbd')));};Dialer[_0x2178('0x1b')][_0x2178('0xbe')]=function(_0x15d273){return BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](cmHopperBlack['checkIsBlackList'](_0x15d273))[_0x2178('0xb6')](loggerCatch(_0x2178('0xbf')));};Dialer['prototype'][_0x2178('0xc0')]=function(_0x977387){return BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](cmHopperBlack[_0x2178('0xc0')](_0x977387))[_0x2178('0xb6')](loggerCatch('[checkIsBlackListIvr]\x20'));};Dialer[_0x2178('0x1b')][_0x2178('0xc1')]=function(_0xeb41ad){return BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](cmHopperHistory[_0x2178('0xc2')](_0xeb41ad))['catch'](loggerCatch(_0x2178('0xc3')));};Dialer['prototype'][_0x2178('0xc4')]=function(_0x32be8d){return BPromise['resolve']()[_0x2178('0xbc')](cmHopper[_0x2178('0xc4')](_0x32be8d))[_0x2178('0xb6')](loggerCatch(_0x2178('0xc5')));};Dialer['prototype'][_0x2178('0xc6')]=function(_0x33eaa8,_0x4c1fe5,_0x1dfce4){return BPromise[_0x2178('0xbb')]()['then'](cmHopper[_0x2178('0xc6')](_0x33eaa8,_0x4c1fe5,_0x1dfce4))[_0x2178('0xb6')](loggerCatch(_0x2178('0xc7')));};Dialer[_0x2178('0x1b')]['getContactDialer']=function(_0x431cb0,_0x1b004d,_0x16fa81,_0x32aa4e,_0xe31b40){return BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](cmHopper[_0x2178('0xc8')](_0x431cb0,_0x1b004d,_0x16fa81,_0x32aa4e))[_0x2178('0xb6')](function(_0x517716){_0xe31b40[_0x2178('0xc9')]-=_0x16fa81;_0xe31b40[_0x2178('0xc9')]=_0xe31b40[_0x2178('0xc9')]>0x0?_0xe31b40['temp']:0x0;loggerCatch('[getContactDialer]\x20')(_0x517716);});};Dialer[_0x2178('0x1b')][_0x2178('0xca')]=function(_0x4bebf9,_0x1d9605,_0x306326,_0x51b6df){return BPromise[_0x2178('0xbb')]()['then'](cmHopper[_0x2178('0xca')](_0x4bebf9,_0x1d9605,_0x306326))[_0x2178('0xb6')](function(_0x35beac){_0x51b6df['temp']-=_0x1d9605;_0x51b6df[_0x2178('0xc9')]=_0x51b6df['temp']>0x0?_0x51b6df[_0x2178('0xc9')]:0x0;loggerCatch(_0x2178('0xcb'))(_0x35beac);});};Dialer['prototype']['getVoiceQueueRtPauses']=function(_0x5098cd){return BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](voiceQueueRt[_0x2178('0xcc')](_0x5098cd))[_0x2178('0xb6')](loggerCatch(_0x2178('0xcd')));};Dialer[_0x2178('0x1b')][_0x2178('0xce')]=function(_0x4998e6){return BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](cmHopper[_0x2178('0xce')](_0x4998e6))[_0x2178('0xb6')](loggerCatch(_0x2178('0xcf')));};Dialer[_0x2178('0x1b')][_0x2178('0xd0')]=function(_0x3d2baa){return BPromise['resolve']()[_0x2178('0xbc')](cmHopperHistory['createHistory'](_0x3d2baa))[_0x2178('0xb6')](loggerCatch(_0x2178('0xd1')));};Dialer['prototype']['updateOriginated']=function(_0xb8f606){if(!_[_0x2178('0x3e')](_0xb8f606)&&_0xb8f606!==null){if(typeof _0xb8f606[_0x2178('0x79')]!==_0x2178('0x9f')){if(_0xb8f606[_0x2178('0x79')]>0x0){_0xb8f606[_0x2178('0x79')]-=0x1;}else{logger[_0x2178('0x9b')](_0x2178('0xd2'));}}}else{logger[_0x2178('0x9b')](_0x2178('0xd3'));}};Dialer['prototype'][_0x2178('0xd4')]=function(_0x50dc51,_0x2cca21){var _0x54b1e4=this;return function(_0x22f7b3){_0x54b1e4[_0x2178('0xb7')](_0x2cca21);logger[_0x2178('0x9b')](_0x50dc51,util[_0x2178('0x9d')](_0x22f7b3,{'showHidden':![],'depth':null}));};};Dialer['prototype'][_0x2178('0xd5')]=function(_0x440641,_0x2ad88e,_0x1401cf){var _0x3a0df7={'state':0x19,'statedesc':'notFound'};this[_0x2178('0xb7')](_0x2ad88e);this[_0x2178('0xd6')](_['merge'](_0x3a0df7,_['pick'](_0x1401cf,[_0x2178('0xd7'),_0x2178('0xd8'),_0x2178('0xd9'),_0x2178('0xda'),_0x2178('0xdb')])),_0x2178('0xdc'),_0x2178('0xdd'));logger[_0x2178('0x9b')](_0x440641);};Dialer[_0x2178('0x1b')][_0x2178('0xde')]=function(_0x19c48c){return _0x19c48c===_0x2178('0xdf');};Dialer[_0x2178('0x1b')]['isTrunkReachable']=function(_0x5669ea){return!_[_0x2178('0x3e')](_0x5669ea)&&_0x5669ea&&!_[_0x2178('0x3e')](_0x5669ea[_0x2178('0x41')])&&!_[_0x2178('0x3e')](_0x5669ea[_0x2178('0x80')])&&_0x5669ea[_0x2178('0x80')]&&(this[_0x2178('0x21')][util['format']('SIP/%s',_0x5669ea[_0x2178('0x41')])][_0x2178('0xb4')]===_0x2178('0xe0')||this['trunks'][util[_0x2178('0x81')](_0x2178('0xe1'),_0x5669ea[_0x2178('0x41')])][_0x2178('0xb4')]===_0x2178('0xe2'));};Dialer[_0x2178('0x1b')][_0x2178('0xd6')]=function(_0x42b401,_0x2ee12a,_0x487bde){this[_0x2178('0xd0')](_0x42b401)[_0x2178('0xb6')](loggerCatch(_0x2ee12a));this[_0x2178('0xce')](_0x42b401)[_0x2178('0xb6')](loggerCatch(_0x487bde));};Dialer[_0x2178('0x1b')][_0x2178('0xe3')]=function(_0x3ad524){var _0x168b54=this[_0x2178('0x26')][_0x3ad524[_0x2178('0xe4')]];var _0x21caa7;if(!_[_0x2178('0xb2')](_0x3ad524)&&!_[_0x2178('0xb2')](_0x3ad524['variable'])&&!_['isNil'](_0x3ad524[_0x2178('0xe5')][_0x2178('0xe6')])&&_0x3ad524['exten']===_0x2178('0xe7')&&_0x168b54){if(_0x168b54[_0x2178('0x59')]!==_0x2178('0x83')&&this['voiceQueues'][_0x168b54[_0x2178('0xb8')]][_0x2178('0xe8')]&&_0x3ad524['value']===_0x2178('0xe9')){delete this[_0x2178('0x26')][_0x3ad524['uniqueid']];this[_0x2178('0xb7')](this[_0x2178('0x1e')][_0x168b54[_0x2178('0xb8')]]);this[_0x2178('0x1e')][_0x168b54[_0x2178('0xb8')]][_0x2178('0x63')]+=0x1;this[_0x2178('0x1e')][_0x168b54['queue']][_0x2178('0x62')]+=0x1;_0x21caa7=new Hangup(_0x168b54,_0x3ad524);_0x21caa7['state']=0x12;_0x21caa7['statedesc']=_0x2178('0xea');_0x21caa7[_0x2178('0xeb')]=_0x2178('0xec');ami['emit'](_0x2178('0xed'),ut['buildObj'](_0x21caa7,_0x2178('0xee')));this[_0x2178('0xd6')](_0x21caa7,_0x2178('0xef'),'[syncHangupInAMD]');}if(_0x168b54[_0x2178('0x59')]!==_0x2178('0x83')&&this[_0x2178('0x1e')][_0x168b54[_0x2178('0xb8')]][_0x2178('0xe8')]&&_0x3ad524[_0x2178('0xf0')]===_0x2178('0xf1')){var _0x218057=this;return new BPromise(function(_0x4c9880,_0x10e7f6){delete _0x218057[_0x2178('0x26')][_0x3ad524[_0x2178('0xe4')]];_0x218057[_0x2178('0xb7')](_0x218057['voiceQueues'][_0x168b54[_0x2178('0xb8')]]);_0x218057[_0x2178('0x1e')][_0x168b54[_0x2178('0xb8')]]['outboundAnswerCallsDay']+=0x1;_0x218057[_0x2178('0x1e')][_0x168b54[_0x2178('0xb8')]]['outboundAnswerAgiCallsDay']+=0x1;var _0x258402=_0x218057[_0x2178('0x1e')][_0x168b54['queue']];var _0x3b9d5e=new Hangup(_0x168b54,_0x3ad524);_0x3b9d5e['state']=0x13;_0x3b9d5e['statedesc']=_0x2178('0xf2');_0x3b9d5e['membername']='AMD';_0x3b9d5e[_0x2178('0xf3')]+=0x1;_0x3b9d5e[_0x2178('0xf4')]+=0x1;_0x3b9d5e[_0x2178('0xee')]=!![];ami['emit']('custom:amd',ut[_0x2178('0xf5')](_0x3b9d5e,_0x2178('0xee')));_0x218057['createHistory'](_0x3b9d5e)['catch'](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x3b9d5e[_0x2178('0xf6')]+_0x3b9d5e[_0x2178('0xf7')]+_0x3b9d5e[_0x2178('0xf8')]+_0x3b9d5e[_0x2178('0xf9')]+_0x3b9d5e['countdropretry']+_0x3b9d5e['countabandonedretry']+_0x3b9d5e[_0x2178('0xf3')]+_0x3b9d5e[_0x2178('0xfa')]>=_0x258402['dialGlobalMaxRetry']){_0x218057[_0x2178('0xfb')](_0x3b9d5e,_0x4c9880,_0x10e7f6,_0x2178('0xfc'));}else{if(_0x3b9d5e[_0x2178('0xf3')]>=_0x258402['dialMachineMaxRetry']){_0x218057['createStateFinal'](_0x3b9d5e,_0x4c9880,_0x10e7f6,_0x2178('0xfd'));}else{_0x218057[_0x2178('0xc4')]({'active':![],'countmachineretry':_0x3b9d5e[_0x2178('0xf3')],'scheduledat':moment()[_0x2178('0xfe')](_0x258402[_0x2178('0xff')],_0x2178('0x100'))[_0x2178('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x3b9d5e['ContactId'],'ListId':_0x3b9d5e[_0x2178('0xd8')],'VoiceQueueId':_0x3b9d5e['VoiceQueueId']||undefined,'CampaignId':_0x3b9d5e[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x101')));_0x4c9880({'reschedule':0x1});}}});}if(_0x168b54[_0x2178('0x59')]==='ivr'&&this[_0x2178('0x1f')][_0x168b54[_0x2178('0xb8')]][_0x2178('0xe8')]&&_0x3ad524[_0x2178('0xf0')]===_0x2178('0xe9')){delete this[_0x2178('0x26')][_0x3ad524[_0x2178('0xe4')]];this['updateOriginated'](this['campaigns'][_0x168b54[_0x2178('0xb8')]]);_0x21caa7=new Hangup(_0x168b54,_0x3ad524);_0x21caa7[_0x2178('0xac')]=0x12;_0x21caa7[_0x2178('0xad')]=_0x2178('0xea');_0x21caa7[_0x2178('0xeb')]=_0x2178('0xec');ami['emit'](_0x2178('0xed'),ut[_0x2178('0xf5')](_0x21caa7,'amd'));this[_0x2178('0xd6')](_0x21caa7,_0x2178('0x102'),_0x2178('0x103'));}if(_0x168b54['type']===_0x2178('0x83')&&this[_0x2178('0x1f')][_0x168b54['queue']]['dialAMDActive']&&_0x3ad524['value']===_0x2178('0xf1')){var _0x218057=this;return new BPromise(function(_0x25f216,_0x310c70){delete _0x218057[_0x2178('0x26')][_0x3ad524[_0x2178('0xe4')]];_0x218057[_0x2178('0xb7')](_0x218057[_0x2178('0x1f')][_0x168b54[_0x2178('0xb8')]]);_0x218057[_0x2178('0x1f')][_0x168b54['queue']][_0x2178('0x63')]+=0x1;_0x218057[_0x2178('0x1f')][_0x168b54[_0x2178('0xb8')]][_0x2178('0x62')]+=0x1;var _0x5753cc=_0x218057['campaigns'][_0x168b54['queue']];var _0x1073ee=new Hangup(_0x168b54,_0x3ad524);_0x1073ee[_0x2178('0xac')]=0x13;_0x1073ee[_0x2178('0xad')]=_0x2178('0xf2');_0x1073ee[_0x2178('0xeb')]=_0x2178('0xec');_0x1073ee[_0x2178('0xf3')]+=0x1;_0x1073ee['countglobal']+=0x1;_0x1073ee['amd']=!![];ami[_0x2178('0x104')]('custom:amd',ut[_0x2178('0xf5')](_0x1073ee,_0x2178('0xee')));_0x218057['createHistory'](_0x1073ee)[_0x2178('0xb6')](loggerCatch(_0x2178('0x105')));if(_0x1073ee[_0x2178('0xf6')]+_0x1073ee['countcongestionretry']+_0x1073ee[_0x2178('0xf8')]+_0x1073ee[_0x2178('0xf9')]+_0x1073ee[_0x2178('0x106')]+_0x1073ee[_0x2178('0x107')]+_0x1073ee[_0x2178('0xf3')]+_0x1073ee['countagentrejectretry']>=_0x5753cc['dialGlobalMaxRetry']){_0x218057['stateGlobal'](_0x1073ee,_0x25f216,_0x310c70,'reason19\x20machine....');}else{if(_0x1073ee[_0x2178('0xf3')]>=_0x5753cc[_0x2178('0x108')]){_0x218057['createStateFinal'](_0x1073ee,_0x25f216,_0x310c70,'reason\x2019\x20machine....');}else{_0x218057[_0x2178('0xc4')]({'active':![],'countmachineretry':_0x1073ee['countmachineretry'],'scheduledat':moment()[_0x2178('0xfe')](_0x5753cc['dialMachineRetryFrequency'],_0x2178('0x100'))['format'](_0x2178('0x109')),'ContactId':_0x1073ee[_0x2178('0xd7')],'ListId':_0x1073ee['ListId'],'VoiceQueueId':_0x1073ee[_0x2178('0xda')]||undefined,'CampaignId':_0x1073ee[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch('[rescheduleContact][Machine]'));_0x25f216({'reschedule':0x1});}}});}}};Dialer[_0x2178('0x1b')][_0x2178('0x37')]=function(_0x19befc){var _0x2e9bdc=this[_0x2178('0x26')][_0x19befc[_0x2178('0xe4')]];var _0x386599=this;var _0x488830;if(_0x2e9bdc&&_0x2e9bdc['type']===_0x2178('0x83')){delete this[_0x2178('0x26')][_0x19befc[_0x2178('0xe4')]];this[_0x2178('0xb7')](this[_0x2178('0x1f')][_0x2e9bdc[_0x2178('0xb8')]]);this[_0x2178('0x1f')][_0x2e9bdc[_0x2178('0xb8')]][_0x2178('0x10a')]+=0x1;_0x488830=new Hangup(_0x2e9bdc,_0x19befc);this['createHistory'](_0x488830)['catch'](loggerCatch(_0x2178('0x10b')));this[_0x2178('0xce')](_0x488830)[_0x2178('0xb6')](loggerCatch('[syncHangupIvr]'));}if(_0x2e9bdc&&_0x2e9bdc[_0x2178('0x59')]!=='ivr'&&isNotNull(this[_0x2178('0x1e')][_0x2e9bdc[_0x2178('0xb8')]][_0x2178('0x10c')])){delete this[_0x2178('0x26')][_0x19befc[_0x2178('0xe4')]];this[_0x2178('0xb7')](this['voiceQueues'][_0x2e9bdc[_0x2178('0xb8')]]);this[_0x2178('0x1e')][_0x2e9bdc[_0x2178('0xb8')]]['outboundAnswerCallsDay']+=0x1;this['voiceQueues'][_0x2e9bdc[_0x2178('0xb8')]][_0x2178('0x62')]+=0x1;_0x488830=new Hangup(_0x2e9bdc,_0x19befc);_0x488830['state']=0x10;_0x488830[_0x2178('0xad')]=_0x2178('0x10d');_0x488830[_0x2178('0xeb')]='AGI';this[_0x2178('0xd0')](_0x488830)[_0x2178('0xb6')](loggerCatch(_0x2178('0x10b')));this['moveContactManagedDialer'](_0x488830)[_0x2178('0xb6')](loggerCatch('[syncHangupIvr]'));}if(_0x2e9bdc&&_0x2e9bdc['type']!=='ivr'&&!isNotNull(this[_0x2178('0x1e')][_0x2e9bdc['queue']]['dialQueueProject'])){delete this[_0x2178('0x26')][_0x19befc[_0x2178('0xe4')]];this['updateOriginated'](this[_0x2178('0x1e')][_0x2e9bdc[_0x2178('0xb8')]]);this[_0x2178('0x1e')][_0x2e9bdc['queue']]['outboundUnknownCallsDay']+=0x1;_0x488830=new Hangup(_0x2e9bdc,_0x19befc);_0x488830[_0x2178('0xac')]=0xc;_0x488830[_0x2178('0xad')]=_0x19befc[_0x2178('0x10e')];_0x488830[_0x2178('0xeb')]=_0x2178('0x10f');this['createHistory'](_0x488830)[_0x2178('0xb6')](loggerCatch(_0x2178('0x10b')));this['moveContactManagedDialer'](_0x488830)[_0x2178('0xb6')](loggerCatch('[syncHangupIvr]'));}};Dialer[_0x2178('0x1b')][_0x2178('0x34')]=function(_0x58413c){var _0xb53e75=this[_0x2178('0x26')][_0x58413c['uniqueid']];var _0x56e45f=this;if(this[_0x2178('0x1e')][_0x58413c[_0x2178('0xb8')]]){if(_0xb53e75&&_0xb53e75[_0x2178('0x59')]!==_0x2178('0x83')){delete this[_0x2178('0x26')][_0x58413c['uniqueid']];this[_0x2178('0x1e')][_0x58413c[_0x2178('0xb8')]]['outboundAnswerCallsDay']+=0x1;var _0x2e6c7e=new AgentComplete(_0xb53e75,_0x58413c);if(_0x58413c[_0x2178('0x110')]===_0x2178('0x111')){_0x2e6c7e[_0x2178('0x112')]=this[_0x2178('0x1e')][_0x58413c['queue']][_0x2178('0x113')]&&this[_0x2178('0x1e')][_0x58413c[_0x2178('0xb8')]][_0x2178('0x114')]?moment()[_0x2178('0x81')](_0x2178('0x109')):undefined;}this[_0x2178('0xd0')](_0x2e6c7e)[_0x2178('0xb6')](loggerCatch(_0x2178('0x115')));this[_0x2178('0xce')](_0x2e6c7e)[_0x2178('0xb6')](loggerCatch('[syncAgentComplete]'));}}};Dialer[_0x2178('0x1b')]['syncAgentConnect']=function(_0xe1ae61){if(this[_0x2178('0x1e')][_0xe1ae61[_0x2178('0xb8')]]){if(this['uniqueId'][_0xe1ae61[_0x2178('0xe4')]]&&this['uniqueId'][_0xe1ae61[_0x2178('0xe4')]]['type']!==_0x2178('0x83')){this[_0x2178('0xb7')](this[_0x2178('0x1e')][_0xe1ae61[_0x2178('0xb8')]]);this[_0x2178('0x26')][_0xe1ae61[_0x2178('0xe4')]]['answertime']=moment()['format'](_0x2178('0x109'));}}};Dialer[_0x2178('0x1b')][_0x2178('0x116')]=function(_0xb32e29){this[_0x2178('0xd0')](_0xb32e29)['catch'](loggerCatch(_0x2178('0x115')));this[_0x2178('0xce')](_0xb32e29)['catch'](loggerCatch(_0x2178('0x117')));};Dialer[_0x2178('0x1b')][_0x2178('0x30')]=function(_0x2cc3aa){var _0x4cb4ac=this[_0x2178('0x26')][_0x2cc3aa['uniqueid']];var _0x46d9c6=this;if(this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]]){if(_0x4cb4ac&&_0x4cb4ac[_0x2178('0x59')]!==_0x2178('0x83')){delete this['uniqueId'][_0x2cc3aa[_0x2178('0xe4')]];this['updateOriginated'](this['voiceQueues'][_0x2cc3aa[_0x2178('0xb8')]]);_0x4cb4ac[_0x2178('0x118')]=moment()[_0x2178('0x81')]('YYYY-MM-DD\x20HH:mm:ss');var _0x4c0219=new QueueCallerAbandon(_0x4cb4ac,_0x2cc3aa);if(getSeconds(_0x4cb4ac[_0x2178('0x118')],_0x4cb4ac['responsetime'])>=_0x4cb4ac[_0x2178('0x119')]){this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x72')]+=0x1;this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x69')]+=0x1;this['voiceQueues'][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x11a')]+=0x1;_0x4c0219['state']=0xa;_0x4c0219['statedesc']='Drop';_0x4c0219[_0x2178('0x11b')]=_0x2178('0x11c');_0x4c0219[_0x2178('0x112')]=this[_0x2178('0x1e')][_0x2cc3aa['queue']][_0x2178('0x113')]?moment()[_0x2178('0x81')]('YYYY-MM-DD\x20HH:mm:ss'):undefined;_0x4c0219[_0x2178('0x106')]+=0x1;_0x4c0219[_0x2178('0xf4')]+=0x1;if(_0x4c0219['countdropretry']>=this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]]['dialDropMaxRetry']){this['queueCallerAbandonCreateState'](_0x4c0219);}else{this[_0x2178('0xc4')]({'active':![],'countdropretry':_0x4c0219[_0x2178('0x106')],'scheduledat':moment()[_0x2178('0xfe')](this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x11d')],_0x2178('0x100'))[_0x2178('0x81')](_0x2178('0x109')),'ContactId':_0x4cb4ac[_0x2178('0xd7')],'ListId':_0x4cb4ac[_0x2178('0xd8')],'VoiceQueueId':_0x4cb4ac[_0x2178('0xda')]||undefined,'CampaignId':_0x4cb4ac[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x11e')));var _0x4955dd=new History(_0x4c0219);_0x4955dd['state']=0xa;_0x4955dd[_0x2178('0xad')]='Drop';_0x4955dd[_0x2178('0xaf')]=moment()['format'](_0x2178('0x109'));_0x4955dd[_0x2178('0xae')]=_0x4955dd['starttime'];_0x4955dd[_0x2178('0x11f')]=_0x4c0219[_0x2178('0x11f')];_0x4955dd[_0x2178('0x120')]=_0x4c0219['calleridnum'];this[_0x2178('0xd0')](_0x4955dd)[_0x2178('0xb6')](loggerCatch(_0x2178('0x121')));}}else{this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x71')]+=0x1;this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x68')]+=0x1;_0x4c0219[_0x2178('0xac')]=0xb;_0x4c0219[_0x2178('0xad')]=_0x2178('0x122');_0x4c0219[_0x2178('0x11b')]='CALLEREXIT';_0x4c0219[_0x2178('0x107')]+=0x1;_0x4c0219[_0x2178('0xf4')]+=0x1;if(_0x4c0219[_0x2178('0x107')]>=this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x123')]){this[_0x2178('0x116')](_0x4c0219);}else{this['rescheduleContact']({'active':![],'countabandonedretry':_0x4c0219[_0x2178('0x107')],'scheduledat':moment()[_0x2178('0xfe')](this[_0x2178('0x1e')][_0x2cc3aa[_0x2178('0xb8')]][_0x2178('0x124')],_0x2178('0x100'))[_0x2178('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x4cb4ac[_0x2178('0xd7')],'ListId':_0x4cb4ac[_0x2178('0xd8')],'VoiceQueueId':_0x4cb4ac[_0x2178('0xda')]||undefined,'CampaignId':_0x4cb4ac[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x125')));var _0x4955dd=new History(_0x4c0219);_0x4955dd[_0x2178('0xac')]=0xb;_0x4955dd[_0x2178('0xad')]=_0x2178('0x122');_0x4955dd['starttime']=moment()['format'](_0x2178('0x109'));_0x4955dd[_0x2178('0xae')]=_0x4955dd[_0x2178('0xaf')];_0x4955dd[_0x2178('0x11f')]=_0x4c0219['calleridname'];_0x4955dd['calleridnum']=_0x4c0219[_0x2178('0x120')];this[_0x2178('0xd0')](_0x4955dd)[_0x2178('0xb6')](loggerCatch(_0x2178('0x126')));}}}}};Dialer[_0x2178('0x1b')][_0x2178('0x127')]=function(_0x218f59){if(this[_0x2178('0x24')][_0x218f59['uniqueid']]){this['actions'][_0x218f59['uniqueid']][_0x2178('0xb5')]=_0x218f59['channel'];}if(this[_0x2178('0x26')][_0x218f59[_0x2178('0xe4')]]){this[_0x2178('0x26')][_0x218f59[_0x2178('0xe4')]]['channel']=_0x218f59[_0x2178('0xb5')];}};Dialer[_0x2178('0x1b')][_0x2178('0x128')]=function(_0x22e5a5){if(strategy[this[_0x2178('0x1e')][this[_0x2178('0x24')][_0x22e5a5[_0x2178('0x129')]][_0x2178('0xb8')]][_0x2178('0x12a')]]===_0x2178('0x1a')){if(this[_0x2178('0x24')][_0x22e5a5[_0x2178('0x129')]]&&_[_0x2178('0xb2')](this[_0x2178('0x24')][_0x22e5a5['actionid']][_0x2178('0x12b')])&&_0x22e5a5[_0x2178('0xb4')]==='1'&&_0x22e5a5[_0x2178('0x12c')]==='0'){if(this[_0x2178('0x20')][_0x22e5a5[_0x2178('0x12d')]]){if(!this['agents'][_0x22e5a5[_0x2178('0x12d')]][_0x2178('0x12b')]){this['agents'][_0x22e5a5[_0x2178('0x12d')]][_0x2178('0x12b')]=!![];this[_0x2178('0x24')][_0x22e5a5[_0x2178('0x129')]][_0x2178('0x12b')]=!![];this[_0x2178('0x24')][_0x22e5a5['actionid']]['stateinterface']=_0x22e5a5['stateinterface'];}}}}else if((strategy[this['voiceQueues'][this[_0x2178('0x24')][_0x22e5a5['actionid']][_0x2178('0xb8')]][_0x2178('0x12a')]]||_0x2178('0x19'))===_0x2178('0x19')){if(this[_0x2178('0x24')][_0x22e5a5['actionid']]){if(this['agents'][_0x22e5a5[_0x2178('0x12d')]]){this[_0x2178('0x24')][_0x22e5a5[_0x2178('0x129')]][_0x2178('0x12d')]=_0x22e5a5[_0x2178('0x12d')];if(_[_0x2178('0xb2')](this[_0x2178('0x2a')][this[_0x2178('0x24')][_0x22e5a5['actionid']][_0x2178('0xb8')]])){this[_0x2178('0x2a')][this[_0x2178('0x24')][_0x22e5a5[_0x2178('0x129')]][_0x2178('0xb8')]]=[];}this[_0x2178('0x2a')][this[_0x2178('0x24')][_0x22e5a5[_0x2178('0x129')]][_0x2178('0xb8')]][_0x2178('0x12e')](_[_0x2178('0x92')](_[_0x2178('0x12f')](this[_0x2178('0x24')][_0x22e5a5['actionid']],[_0x2178('0x130'),_0x2178('0x12d')]),{'status':_0x22e5a5[_0x2178('0xb4')],'paused':_0x22e5a5[_0x2178('0x12c')]}));}}}};function unlockQueueStatus(_0x2c5746,_0x5bd7c6){setTimeout(function(){if(_[_0x2178('0x3e')](_0x2c5746[_0x2178('0x131')])){loggerBooked['error'](_0x2178('0x132'),_0x5bd7c6);}_0x2c5746['queueStatusComplete']=!![];loggerBooked[_0x2178('0x84')](_0x2178('0x133'),_0x5bd7c6,JSON[_0x2178('0x4b')](_[_0x2178('0x12f')](_0x2c5746,[_0x2178('0x41'),_0x2178('0x131')])));},0x1f3);}Dialer[_0x2178('0x1b')][_0x2178('0x3c')]=function(_0x44253a){var _0xb49e59=this;var _0x3b48cb=_0xb49e59[_0x2178('0x1e')][_0xb49e59[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]];if(strategy[this[_0x2178('0x1e')][this[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xb8')]]['strategy']]===_0x2178('0x1a')){if(this['actions'][_0x44253a[_0x2178('0x129')]]&&this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]]['stateinterface']){this[_0x2178('0x97')][_0x2178('0x134')](this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0x130')],this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0x12d')])[_0x2178('0xb6')](function(_0x51c3c0){logger[_0x2178('0x9b')](_0x2178('0x135'),util[_0x2178('0x9d')](_0x51c3c0,{'showHidden':![],'depth':null}));})[_0x2178('0x136')](function(){_0xb49e59[_0x2178('0xb7')](_0xb49e59[_0x2178('0x1e')][_0xb49e59['actions'][_0x44253a['actionid']]['queue']]);_0xb49e59[_0x2178('0x20')][_0xb49e59['actions'][_0x44253a[_0x2178('0x129')]]['stateinterface']][_0x2178('0x12b')]=![];delete _0xb49e59[_0x2178('0x24')][_0x44253a['actionid']];unlockQueueStatus(_0x3b48cb);});}else{this[_0x2178('0xb7')](this[_0x2178('0x1e')][this['actions'][_0x44253a['actionid']][_0x2178('0xb8')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xd7')],'ListId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xd8')],'VoiceQueueId':this[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xda')]||undefined,'CampaignId':this['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x137')));delete this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]];unlockQueueStatus(_0x3b48cb);}}else if((strategy[this[_0x2178('0x1e')][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]][_0x2178('0x12a')]]||_0x2178('0x19'))==='rrmemory'){var _0x5ada41;if(this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]]&&!_[_0x2178('0x47')](this[_0x2178('0x2a')][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]])){if(this[_0x2178('0x2b')][_0xb49e59['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]){this[_0x2178('0x2b')][_0xb49e59[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xb8')]]=this[_0x2178('0x2b')][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]?this[_0x2178('0x2b')][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]]['queue']]:this['queueBooked'][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]?this[_0x2178('0x2a')][this[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xb8')]]['_rr']||0x0:0x0;}this[_0x2178('0x2a')][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]['_rr']=this[_0x2178('0x2b')][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]];for(var _0x446fe9=0x0;_0x446fe9<this[_0x2178('0x2a')][this['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]][_0x2178('0x9e')];_0x446fe9+=0x1){_0x5ada41=rr(this[_0x2178('0x2a')][this[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xb8')]]);this['queueBookedRR'][_0xb49e59[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]=this['queueBooked'][this[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xb8')]]['_rr'];if(_0x5ada41[_0x2178('0xb4')]==='1'&&_0x5ada41[_0x2178('0x12c')]==='0'){break;}}if(!_[_0x2178('0xb2')](_0x5ada41)){this[_0x2178('0x20')][_0x5ada41[_0x2178('0x12d')]][_0x2178('0x138')]=_[_0x2178('0x3e')](this[_0x2178('0x20')][_0x5ada41[_0x2178('0x12d')]][_0x2178('0x138')])?!![]:this[_0x2178('0x20')][_0x5ada41[_0x2178('0x12d')]][_0x2178('0x138')];}loggerBooked[_0x2178('0x84')](_0x2178('0x139'),_0x44253a[_0x2178('0x129')],'Agent:\x20',JSON['stringify'](_['pick'](this[_0x2178('0x20')][_0x5ada41['stateinterface']],[_0x2178('0x41'),_0x2178('0x138')])),'contactAgent-idHopper:\x20',JSON[_0x2178('0x4b')](_0x5ada41[_0x2178('0x130')]));if(!_[_0x2178('0xb2')](_0x5ada41)&&_0x5ada41[_0x2178('0xb4')]==='1'&&_0x5ada41[_0x2178('0x12c')]==='0'&&this['agents'][_0x5ada41[_0x2178('0x12d')]][_0x2178('0x138')]){this[_0x2178('0x20')][_0x5ada41[_0x2178('0x12d')]]['unlockRR']=![];this[_0x2178('0x2a')][_0xb49e59[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]=[];this[_0x2178('0x97')]['run'](_0x5ada41[_0x2178('0x130')],_0x5ada41[_0x2178('0x12d')])[_0x2178('0xb6')](function(_0x5e51c6){logger[_0x2178('0x9b')](_0x2178('0x135'),util[_0x2178('0x9d')](_0x5e51c6,{'showHidden':![],'depth':null}));})[_0x2178('0x136')](function(){_0xb49e59[_0x2178('0xb7')](_0xb49e59[_0x2178('0x1e')][_0xb49e59['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]);setTimeout(function(){_0xb49e59[_0x2178('0x20')][_0x5ada41[_0x2178('0x12d')]][_0x2178('0x138')]=!![];loggerBooked['info'](_0x2178('0x13a'),_0x44253a[_0x2178('0x129')],_0x2178('0x13b'),JSON['stringify'](_[_0x2178('0x12f')](_0xb49e59[_0x2178('0x20')][_0x5ada41[_0x2178('0x12d')]],['name','unlockRR'])),_0x2178('0x13c'),JSON[_0x2178('0x4b')](_0x5ada41[_0x2178('0x130')]));},0xc7);delete _0xb49e59['actions'][_0x44253a[_0x2178('0x129')]];unlockQueueStatus(_0x3b48cb,_0x44253a[_0x2178('0x129')]);});}else{loggerBooked[_0x2178('0x84')](_0x2178('0x13d'));this[_0x2178('0xb7')](this[_0x2178('0x1e')][this[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xb8')]]);this[_0x2178('0xc4')]({'active':![],'ContactId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xd7')],'ListId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xd8')],'VoiceQueueId':this['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xda')]||undefined,'CampaignId':this['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x137')));delete this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]];unlockQueueStatus(_0x3b48cb);}}else{loggerBooked[_0x2178('0x84')]('[booked][unlock2]');this['updateOriginated'](this[_0x2178('0x1e')][this['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]);this[_0x2178('0xc4')]({'active':![],'ContactId':this[_0x2178('0x24')][_0x44253a['actionid']][_0x2178('0xd7')],'ListId':this['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xd8')],'VoiceQueueId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]]['VoiceQueueId']||undefined,'CampaignId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]]['CampaignId']||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x13e')));delete this['actions'][_0x44253a[_0x2178('0x129')]];unlockQueueStatus(_0x3b48cb);}}else{loggerBooked[_0x2178('0x84')](_0x2178('0x13f'));this[_0x2178('0xb7')](this[_0x2178('0x1e')][this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xb8')]]);this[_0x2178('0xc4')]({'active':![],'ContactId':this['actions'][_0x44253a[_0x2178('0x129')]][_0x2178('0xd7')],'ListId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xd8')],'VoiceQueueId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]][_0x2178('0xda')]||undefined,'CampaignId':this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]]['CampaignId']||undefined})['catch'](loggerCatch('[unlock3][syncQueueStatusComplete]'));delete this[_0x2178('0x24')][_0x44253a[_0x2178('0x129')]];unlockQueueStatus(_0x3b48cb);}};Dialer[_0x2178('0x1b')][_0x2178('0x140')]=function(){var _0x854543=this;setInterval(function(){_0x854543[_0x2178('0x141')]();},0x3e8);};Dialer[_0x2178('0x1b')]['checkIsTrunkReachable']=function(_0x7f23b1){var _0xe7c8a8=this;return function(){if(!_0xe7c8a8['isTrunkReachable'](_0x7f23b1[_0x2178('0x7f')])){if(!_0xe7c8a8[_0x2178('0x142')](_0x7f23b1['TrunkBackup'])){_0x7f23b1[_0x2178('0x3f')]=_0x2178('0x143');throw _0x7f23b1[_0x2178('0x41')]+'\x20trunk\x20is\x20not\x20reachable';}}};};Dialer[_0x2178('0x1b')][_0x2178('0x144')]=function(_0x2a704b,_0x5a8e9a,_0x4a5964,_0x104181){var _0x52db06=this;return function(){var _0x45c579=!![];return _0x52db06['ifTime'](_0x2a704b,_0x5a8e9a,_0x4a5964,_0x104181,_0x45c579);};};Dialer[_0x2178('0x1b')][_0x2178('0x145')]=function(_0x1fbecf,_0x437a5c,_0x13e547,_0x5ad5b4){var _0x4b3f6d=this;return function(){var _0x183d2e=![];return _0x4b3f6d[_0x2178('0x146')](_0x1fbecf['Intervals'],_0x437a5c,_0x13e547,_0x5ad5b4,_0x183d2e);};};Dialer['prototype']['ifTime']=function(_0x24136d,_0x43c7e2,_0x16d277,_0x16b009,_0xc833a8){var _0xe67091=[];return new BPromise(function(_0x1b398b,_0x84a5fd){if(!isNotNull(_0x24136d)){_0x16b009[_0x2178('0x3f')]='INTERVAL_IS_NULL';return _0x84a5fd(msgResponse(_0x2178('0x146'),_0x2178('0x147'),_0x16d277+_0x2178('0x148')));}if(_[_0x2178('0x47')](_0x24136d)){_0x16b009[_0x2178('0x3f')]=_0x2178('0x149');return _0x84a5fd(msgResponse(_0x2178('0x146'),_0x2178('0x147'),_0x16d277+_0x2178('0x14a')));}if(_0x43c7e2&&_[_0x2178('0x3e')](config['timezones'][_0x43c7e2])){_0x16b009[_0x2178('0x3f')]=_0x2178('0x14b');return _0x84a5fd(msgResponse('ifTime',_0x2178('0x147'),_0x16d277+'\x20Timezone\x20unknow\x20'+_0x43c7e2));}if(_[_0x2178('0x14c')](_0x24136d)){for(var _0x3f728a=0x0;_0x3f728a<_0x24136d[_0x2178('0x9e')];_0x3f728a+=0x1){_0xe67091[_0x2178('0x12e')](ami[_0x2178('0xb3')]({'action':'command','command':util[_0x2178('0x81')](_0x2178('0x14d'),_0x24136d[_0x3f728a][_0x2178('0x14e')],!_['isUndefined'](config['timezones'][_0x43c7e2])?_0x43c7e2:'')})[_0x2178('0xbc')](function(_0x291720){return _0x291720[_0x2178('0x14f')][_0x2178('0x150')]('true')>=0x0;})[_0x2178('0xb6')](myreject(_0x84a5fd)));}}else{_0xe67091[_0x2178('0x12e')](ami['Action']({'action':'command','command':util[_0x2178('0x81')]('iftime\x20%s,%s',_0x24136d,!_[_0x2178('0x3e')](config[_0x2178('0x151')][_0x43c7e2])?_0x43c7e2:'')})[_0x2178('0xbc')](function(_0x167980){return _0x167980[_0x2178('0x14f')][_0x2178('0x150')](_0x2178('0x152'))>=0x0;})[_0x2178('0xb6')](myreject(_0x84a5fd)));}BPromise[_0x2178('0x153')](_0xe67091)[_0x2178('0xbc')](function(_0x4e2f99){var _0x22b2bd=_[_0x2178('0x154')](_0x4e2f99);if(_0x22b2bd){return _0x1b398b(_0x22b2bd);}else{_0x16b009[_0x2178('0x3f')]=_0xc833a8?_0x2178('0x155'):_0x2178('0x156');return _0x84a5fd(msgResponse(_0x2178('0x157'),_0x2178('0x147'),_0x2178('0x158')+_0xc833a8+'\x20'+_0x16d277+'\x20Interval\x20is\x20overtime:\x20'+util[_0x2178('0x9d')](_0x24136d,{'showHidden':![],'depth':null})+_0x2178('0x159')+_0x43c7e2));}})[_0x2178('0xb6')](function(_0x37fca9){return _0x84a5fd(msgResponse('ifTime',_0x2178('0x147'),JSON[_0x2178('0x4b')](_0x37fca9)));});});};Dialer[_0x2178('0x1b')][_0x2178('0x15a')]=function(_0x5e0261){var _0x365e94=this;return function(){switch(_0x5e0261['dialMethod']){case _0x2178('0x15b'):freeVariablesPredictive(_0x5e0261);_0x365e94[_0x2178('0x15c')](_0x5e0261,0x1);break;case _0x2178('0x15d'):freeVariablesPredictive(_0x5e0261);_0x365e94['handlePower'](_0x5e0261,_0x5e0261['dialPowerLevel']);break;case'predictive':_0x365e94['predictive'](_0x5e0261);break;case _0x2178('0x8'):freeVariablesPredictive(_0x5e0261);_0x365e94['handlePower'](_0x5e0261,0x1);break;default:freeVariablesPredictive(_0x5e0261);logger[_0x2178('0x9b')]('Queue',_0x5e0261['name'],_0x2178('0x15e'));}};};Dialer[_0x2178('0x1b')][_0x2178('0x15f')]=function(_0x46d437){var _0x299a58=this;return function(){_0x299a58[_0x2178('0x160')](_0x46d437);};};Dialer[_0x2178('0x1b')][_0x2178('0x9')]=function(_0x58f303){var _0x900a79=this;if(isNotPreview(_0x58f303[_0x2178('0x5e')])){if(isVoiceQueueOutbound(_0x58f303[_0x2178('0x59')])&&isActive(_0x58f303[_0x2178('0x5d')])){_0x58f303[_0x2178('0xa7')]=!![];BPromise['resolve']()['then'](checkIsLoggedIn(_0x58f303,_0x58f303['loggedIn']))[_0x2178('0xbc')](checkIsActive(_0x58f303,_0x58f303['dialActive']))[_0x2178('0xbc')](checkInterval(_0x58f303))[_0x2178('0xbc')](_0x900a79[_0x2178('0x161')](_0x58f303))[_0x2178('0xbc')](_0x900a79[_0x2178('0x144')](_0x58f303[_0x2178('0x162')],_0x58f303[_0x2178('0x163')],_0x58f303[_0x2178('0x41')],_0x58f303))[_0x2178('0xbc')](_0x900a79['checkIfTimeIntervals'](_0x58f303['Interval'],_0x58f303[_0x2178('0x163')],_0x58f303[_0x2178('0x41')],_0x58f303))[_0x2178('0xbc')](_0x900a79['checkDialMethod'](_0x58f303))[_0x2178('0xb6')](loggerCatchQueueSummary(_0x2178('0x164'),_0x58f303));}else{notSendMessagesQueue(_0x58f303);}}else{freeVariablesPredictive(_0x58f303);}};Dialer[_0x2178('0x1b')]['syncCampaigns']=function(){var _0x206b04=this;var _0x1d052a;for(var _0x2038d7 in this[_0x2178('0x1f')]){if(typeof this[_0x2178('0x1f')][_0x2038d7]!==_0x2178('0x9f')){_0x1d052a=this[_0x2178('0x1f')][_0x2038d7];if(isCampaignIvr(_0x1d052a[_0x2178('0x59')])&&isActive(_0x1d052a[_0x2178('0x80')])){_0x1d052a['sendMessageOneNotActive']=!![];BPromise[_0x2178('0xbb')]()[_0x2178('0xbc')](checkIsActive(_0x1d052a,_0x1d052a[_0x2178('0x80')]))[_0x2178('0xbc')](checkInterval(_0x1d052a))[_0x2178('0xbc')](_0x206b04[_0x2178('0x161')](_0x1d052a))[_0x2178('0xbc')](_0x206b04[_0x2178('0x144')](_0x1d052a[_0x2178('0x162')],_0x1d052a['dialTimezone'],_0x1d052a[_0x2178('0x41')],_0x1d052a))[_0x2178('0xbc')](_0x206b04[_0x2178('0x145')](_0x1d052a[_0x2178('0x44')],_0x1d052a[_0x2178('0x163')],_0x1d052a[_0x2178('0x41')],_0x1d052a))[_0x2178('0xbc')](_0x206b04[_0x2178('0x15f')](_0x1d052a))['catch'](loggerCatchQueueSummary(_0x2178('0x165'),_0x1d052a));}else{notSendMessagesCampaign(_0x1d052a);}}}};function getCallerIdRandom(_0x53d684,_0x2c036f){var _0x358b5b;var _0x11e4b8;var _0x471bbf;if(_0x2c036f<=0x0){_0x2c036f=0x1;}_0x358b5b=new RegExp(_0x2178('0x166')+_0x2c036f+'}$');_0x11e4b8=Math[_0x2178('0x167')](0xa,_0x2c036f-0x1);_0x471bbf=Math[_0x2178('0x167')](0xa,_0x2c036f)-0x1;return util[_0x2178('0x81')]('%s',_[_0x2178('0x168')](_0x53d684,_0x358b5b,_['random'](_0x11e4b8,_0x471bbf)));}function extractCalleridName(_0x127484){var _0x539a3a=_0x127484['match'](/"(.*?)"/);return _0x539a3a?_0x539a3a[0x1]:_0x127484;}function extractCalleridNumber(_0xf6cedc){var _0x53e8a8=_0xf6cedc['match'](/<(.*?)>/);return _0x53e8a8?_0x53e8a8[0x1]:_0xf6cedc;}Dialer[_0x2178('0x1b')][_0x2178('0x169')]=function(_0x261b16,_0x2a077b){var _0x5b39cc=this;var _0x4cdfb3=uuid['v4']();this['actions'][_0x4cdfb3]=new Action(_0x261b16,_0x2a077b,_0x4cdfb3);return new BPromise(function(_0x53197c,_0x8c71e8){if(_['isUndefined'](_0x261b16)&&typeof _0x261b16!==_0x2178('0x16a')){return _0x8c71e8(msgResponse(_0x2178('0x16b'),'Failure',_0x2178('0x16c')));}if(_[_0x2178('0x3e')](_0x2a077b[_0x2178('0x16d')][_0x2178('0x16e')])||_0x2a077b[_0x2178('0x16d')][_0x2178('0x16e')]===null){return _0x8c71e8(msgResponse(_0x2178('0x16b'),_0x2178('0x147'),_0x2178('0x16f')));}var _0x26dbc5={'XMD-CALLERID':_0x5b39cc['actions'][_0x4cdfb3][_0x2178('0x170')](),'XMD-AGI':_0x261b16[_0x2178('0x10c')]?util[_0x2178('0x81')](_0x2178('0x171'),ipAgi,_0x261b16[_0x2178('0x10c')]):_0x2178('0x172'),'XMD-AGIAFTER':_0x261b16[_0x2178('0x113')]?util[_0x2178('0x81')](_0x2178('0x171'),ipAgi,_0x261b16[_0x2178('0x113')]):_0x2178('0x172'),'XMD-QUEUE':_0x261b16[_0x2178('0x59')]==='outbound'?util['format'](_0x2178('0x173'),_0x261b16['name'],_0x261b16[_0x2178('0x174')]||'',_0x261b16[_0x2178('0x114')]?'c':'',_0x261b16['dialQueueTimeout']||0x3):_0x2178('0x172'),'XMD-CONTACTID':_0x2a077b['ContactId'],'XMD-CDRTYPE':_0x2178('0x175'),'CALLERID(all)':_0x5b39cc[_0x2178('0x24')][_0x4cdfb3]['getCaller'](),'XMD-AMD':_0x261b16[_0x2178('0xe8')]?_0x2178('0x176'):_0x2178('0x172'),'XMD-DESTINATION':_0x2178('0xe7')};if(_0x261b16[_0x2178('0xe8')]){_0x26dbc5[_0x2178('0x177')]=_0x261b16[_0x2178('0x178')]||0x9c4;_0x26dbc5[_0x2178('0x179')]=_0x261b16[_0x2178('0x17a')]||0x5dc;_0x26dbc5[_0x2178('0x17b')]=_0x261b16['dialAMDAfterGreetingSilence']||0x320;_0x26dbc5[_0x2178('0x17c')]=_0x261b16[_0x2178('0x17d')]||0x1388;_0x26dbc5[_0x2178('0x17e')]=_0x261b16[_0x2178('0x17f')]||0x64;_0x26dbc5[_0x2178('0x180')]=_0x261b16['dialAMDBetweenWordsSilence']||0x32;_0x26dbc5[_0x2178('0x181')]=_0x261b16[_0x2178('0x182')]||0x3;_0x26dbc5[_0x2178('0x183')]=_0x261b16[_0x2178('0x184')]||0x100;_0x26dbc5[_0x2178('0x185')]=_0x261b16[_0x2178('0x186')]||0x1388;}if(_0x261b16['type']===_0x2178('0x4f')){_0x26dbc5[_0x2178('0x187')]=_0x2a077b[_0x2178('0xda')];}else{_0x26dbc5[_0x2178('0x188')]=_0x2a077b['CampaignId'];}for(var _0x5b0e0f in _0x2a077b['Contact']){if(typeof _0x2a077b[_0x2178('0x16d')][_0x5b0e0f]!==_0x2178('0x9f')){if(isNotNull(_0x2a077b[_0x2178('0x16d')][_0x5b0e0f])&&_0x5b0e0f!=='id'&&_0x5b0e0f!==_0x2178('0x189')&&_0x5b0e0f!==_0x2178('0x18a')&&_0x5b0e0f!=='updatedAt'){_0x26dbc5[util[_0x2178('0x81')](_0x2178('0x18b'),_0x2178('0x18c'),_['toUpper'](_0x5b0e0f))]=_0x2a077b['Contact'][_0x5b0e0f];}}}var _0x538d8b=_0x5b39cc[_0x2178('0x142')](_0x261b16['Trunk'])?getCallerId(_0x261b16['Trunk'][_0x2178('0x18d')],_0x261b16[_0x2178('0x5f')],_0x261b16['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x261b16[_0x2178('0x18e')],_0x261b16['dialRandomLastDigitCallerIdNumber']):_0x261b16['dialOriginateCallerIdNumber']):getCallerId(_[_0x2178('0xb2')](_0x261b16['TrunkBackup'])?_0x261b16[_0x2178('0x7f')]['callerid']:_0x261b16[_0x2178('0x18f')][_0x2178('0x18d')],_0x261b16[_0x2178('0x5f')],_0x261b16['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x261b16['dialOriginateCallerIdNumber'],_0x261b16[_0x2178('0x190')]):_0x261b16[_0x2178('0x18e')]);if(_0x538d8b){_0x26dbc5['XMD-ORIGINATECALLERIDNAME']=_0x5b39cc[_0x2178('0x24')][_0x4cdfb3]['originatecalleridname']=extractCalleridName(_0x538d8b);_0x26dbc5[_0x2178('0x191')]=_0x5b39cc[_0x2178('0x24')][_0x4cdfb3][_0x2178('0x192')]=extractCalleridNumber(_0x538d8b);}return ami[_0x2178('0xb3')]({'actionid':_0x4cdfb3,'action':'originate','channel':_0x5b39cc[_0x2178('0x142')](_0x261b16[_0x2178('0x7f')])?util[_0x2178('0x81')](_0x2178('0x193'),_0x261b16[_0x2178('0x7f')]['name'],isNotNull(_0x261b16['dialPrefix'])?_0x261b16[_0x2178('0x61')]['trim']()||'':'',_0x261b16['dialCutDigit']>0x0?_0x2a077b[_0x2178('0x16d')][_0x2178('0x16e')][_0x2178('0x194')](_0x261b16[_0x2178('0x195')]):_0x2a077b['Contact'][_0x2178('0x16e')]):util[_0x2178('0x81')](_0x2178('0x193'),_[_0x2178('0xb2')](_0x261b16[_0x2178('0x18f')])?_0x261b16[_0x2178('0x7f')][_0x2178('0x41')]:_0x261b16['TrunkBackup']['name'],isNotNull(_0x261b16[_0x2178('0x61')])?_0x261b16[_0x2178('0x61')]['trim']()||'':'',_0x261b16[_0x2178('0x195')]>0x0?_0x2a077b[_0x2178('0x16d')][_0x2178('0x16e')][_0x2178('0x194')](_0x261b16[_0x2178('0x195')]):_0x2a077b[_0x2178('0x16d')][_0x2178('0x16e')]),'callerid':_0x538d8b,'Exten':'xcally-motion-dialer','Context':_0x2178('0x196'),'Priority':'1','variable':_0x26dbc5,'timeout':(_0x261b16[_0x2178('0x60')]||0x1e)*0x3e8,'async':!![],'channelid':_0x4cdfb3})[_0x2178('0xbc')](function(_0x269aeb){return _0x53197c(_0x269aeb);})[_0x2178('0xb6')](function(_0x3b3ae0){_0x261b16[_0x2178('0x6b')]+=0x1;var _0x572a3b=new History(_0x5b39cc['actions'][_0x4cdfb3]);logger[_0x2178('0x9b')](util[_0x2178('0x81')]('[originateError]:\x20%s',JSON[_0x2178('0x4b')](_0x3b3ae0)));_0x572a3b[_0x2178('0xac')]=0xe;_0x572a3b['statedesc']=_0x2178('0x197');_0x572a3b[_0x2178('0xaf')]=moment()['format'](_0x2178('0x109'));_0x572a3b[_0x2178('0xae')]=_0x572a3b['starttime'];_0x5b39cc['createHistory'](_0x572a3b)['catch'](loggerCatch('[originate][error]'));_0x5b39cc['moveContactManagedDialer'](_0x572a3b)[_0x2178('0xb6')](loggerCatch(_0x2178('0x198')))[_0x2178('0x136')](function(){delete _0x5b39cc['actions'][_0x4cdfb3];return _0x8c71e8(msgResponse(_0x2178('0x16b'),_0x2178('0x4a'),_0x2178('0x199')));});});});};Dialer[_0x2178('0x1b')][_0x2178('0x32')]=function(_0x6b972f){var _0x3f8c9c=this[_0x2178('0x24')][_0x6b972f['actionid']];if(_0x3f8c9c){delete this[_0x2178('0x24')][_0x6b972f[_0x2178('0x129')]];_0x3f8c9c[_0x2178('0x19a')]=moment()[_0x2178('0x81')](_0x2178('0x109'));var _0x2b138f=_0x3f8c9c['type']==='ivr'?this['campaigns'][_0x3f8c9c[_0x2178('0xb8')]]:this['voiceQueues'][_0x3f8c9c['getQueue']()];if(!this['isSuccess'](_0x6b972f['response'])){this[_0x2178('0xb7')](_0x2b138f);return this[_0x2178('0x19b')](_0x3f8c9c,_0x2b138f,_0x6b972f)['catch'](loggerCatch(_0x2178('0x19c')));}this['uniqueId'][_0x6b972f['uniqueid']]=_0x3f8c9c;}};Dialer[_0x2178('0x1b')][_0x2178('0x19d')]=function(_0x2109c9,_0x388fbb,_0xd9339b){var _0x313649=new History(_0x388fbb);if(_0x313649['countbusyretry']+_0x313649[_0x2178('0xf7')]+_0x313649[_0x2178('0xf8')]+_0x313649[_0x2178('0xf9')]+_0x313649['countdropretry']+_0x313649[_0x2178('0x107')]+_0x313649['countmachineretry']+_0x313649['countagentrejectretry']>=_0xd9339b['dialGlobalMaxRetry']-0x1){return!![];}switch(_0x2109c9){case 0x3:if(_0x313649[_0x2178('0xf8')]>=_0xd9339b[_0x2178('0x19e')]-0x1){return!![];}this[_0x2178('0xc4')]({'active':![],'countnoanswerretry':_0x313649[_0x2178('0xf8')]+=0x1,'scheduledat':moment()[_0x2178('0xfe')](_0xd9339b['dialNoAnswerRetryFrequency'],_0x2178('0x100'))['format'](_0x2178('0x109')),'ContactId':_0x313649[_0x2178('0xd7')],'ListId':_0x313649['ListId'],'VoiceQueueId':_0x313649[_0x2178('0xda')]||undefined,'CampaignId':_0x313649[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x19f')));break;case 0x5:if(_0x313649[_0x2178('0xf6')]>=_0xd9339b[_0x2178('0x1a0')]-0x1){return!![];}this[_0x2178('0xc4')]({'active':![],'countbusyretry':_0x313649['countbusyretry']+=0x1,'scheduledat':moment()[_0x2178('0xfe')](_0xd9339b[_0x2178('0x1a1')],'minutes')[_0x2178('0x81')](_0x2178('0x109')),'ContactId':_0x313649['ContactId'],'ListId':_0x313649['ListId'],'VoiceQueueId':_0x313649[_0x2178('0xda')]||undefined,'CampaignId':_0x313649[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch('[rescheduleContact]\x20[Busy]'));break;case 0x8:if(_0x313649['countcongestionretry']>=_0xd9339b['dialCongestionMaxRetry']-0x1){return!![];}this[_0x2178('0xc4')]({'active':![],'countcongestionretry':_0x313649[_0x2178('0xf7')]+=0x1,'scheduledat':moment()[_0x2178('0xfe')](_0xd9339b[_0x2178('0x1a2')],_0x2178('0x100'))[_0x2178('0x81')](_0x2178('0x109')),'ContactId':_0x313649[_0x2178('0xd7')],'ListId':_0x313649[_0x2178('0xd8')],'VoiceQueueId':_0x313649[_0x2178('0xda')]||undefined,'CampaignId':_0x313649['CampaignId']||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x1a3')));break;case 0x0:if(_0x313649[_0x2178('0xf9')]>=_0xd9339b['dialNoSuchNumberMaxRetry']-0x1){return!![];}else{this[_0x2178('0xc4')]({'active':![],'countnosuchnumberretry':_0x313649['countnosuchnumberretry']+=0x1,'scheduledat':moment()[_0x2178('0xfe')](_0xd9339b[_0x2178('0x1a4')],_0x2178('0x100'))[_0x2178('0x81')](_0x2178('0x109')),'ContactId':_0x313649[_0x2178('0xd7')],'ListId':_0x313649[_0x2178('0xd8')],'VoiceQueueId':_0x313649[_0x2178('0xda')]||undefined,'CampaignId':_0x313649[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x1a5')));}break;case 0xa:if(_0x313649['countdropretry']>=_0xd9339b[_0x2178('0x1a6')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countdropretry':_0x313649['countdropretry']+=0x1,'scheduledat':moment()[_0x2178('0xfe')](_0xd9339b[_0x2178('0x11d')],_0x2178('0x100'))['format'](_0x2178('0x109')),'ContactId':_0x313649['ContactId'],'ListId':_0x313649['ListId'],'VoiceQueueId':_0x313649['VoiceQueueId']||undefined,'CampaignId':_0x313649[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x11e')));break;case 0xb:if(_0x313649[_0x2178('0x107')]>=_0xd9339b['dialAbandonedMaxRetry']-0x1){return!![];}this[_0x2178('0xc4')]({'active':![],'countabandonedretry':_0x313649[_0x2178('0x107')]+=0x1,'scheduledat':moment()['add'](_0xd9339b['dialAbandonedRetryFrequency'],_0x2178('0x100'))[_0x2178('0x81')](_0x2178('0x109')),'ContactId':_0x313649[_0x2178('0xd7')],'ListId':_0x313649[_0x2178('0xd8')],'VoiceQueueId':_0x313649[_0x2178('0xda')]||undefined,'CampaignId':_0x313649[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x125')));break;case 0x13:if(_0x313649[_0x2178('0xf3')]>=_0xd9339b[_0x2178('0x108')]-0x1){return!![];}this[_0x2178('0xc4')]({'active':![],'countmachineretry':_0x313649[_0x2178('0xf3')]+=0x1,'scheduledat':moment()[_0x2178('0xfe')](_0xd9339b[_0x2178('0xff')],'minutes')['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x313649[_0x2178('0xd7')],'ListId':_0x313649[_0x2178('0xd8')],'VoiceQueueId':_0x313649[_0x2178('0xda')]||undefined,'CampaignId':_0x313649[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x101')));break;case 0x14:if(_0x313649[_0x2178('0xfa')]>=_0xd9339b[_0x2178('0x1a7')]-0x1){return!![];}this[_0x2178('0xc4')]({'active':![],'countagentrejectretry':_0x313649['countagentrejectretry']+=0x1,'scheduledat':moment()[_0x2178('0xfe')](_0xd9339b['dialAgentRejectRetryFrequency'],_0x2178('0x100'))[_0x2178('0x81')](_0x2178('0x109')),'ContactId':_0x313649['ContactId'],'ListId':_0x313649[_0x2178('0xd8')],'VoiceQueueId':_0x313649[_0x2178('0xda')]||undefined,'CampaignId':_0x313649[_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x1a8')));break;default:return!![];}};Dialer[_0x2178('0x1b')][_0x2178('0x19b')]=function(_0xe52b2b,_0x514aab,_0x3f78e2){var _0x698170=this;var _0xb981aa=new History(_0xe52b2b);return new BPromise(function(_0x5ea9b1,_0x12ad55){if(_[_0x2178('0x3e')](_0x514aab)&&typeof _0x514aab!==_0x2178('0x16a')){return _0x12ad55(msgResponse('[callProgressDetecting]',_0x2178('0x147'),_0x2178('0x1a9')));}if(_[_0x2178('0x3e')](_0x3f78e2)&&typeof _0x3f78e2!==_0x2178('0x16a')){return _0x12ad55(msgResponse(_0x2178('0x1aa'),_0x2178('0x147'),_0x2178('0x1ab')));}switch(_0x3f78e2[_0x2178('0x110')]){case'0':_0x514aab[_0x2178('0x1ac')]+=0x1;_0xb981aa['state']=0x0;_0xb981aa[_0x2178('0xad')]='NoSuchNumber';_0xb981aa[_0x2178('0xf9')]+=0x1;_0xb981aa['countglobal']+=0x1;ami[_0x2178('0x104')](_0x2178('0x1ad'),ut[_0x2178('0xf5')](_0xe52b2b,_0x2178('0x1ae')));_0x698170[_0x2178('0xd0')](_0xb981aa)[_0x2178('0xb6')](loggerCatch(_0x2178('0x105')));if(_0x698170[_0x2178('0x19d')](0x0,_0xe52b2b,_0x514aab)){if(_0xb981aa[_0x2178('0xf9')]>=_0x514aab[_0x2178('0x1af')]){_0x698170[_0x2178('0x1b0')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1b1'));}else{_0x698170[_0x2178('0xfb')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1b1'));}}break;case'3':_0x514aab['outboundNoAnswerCallsDay']+=0x1;_0xb981aa[_0x2178('0xac')]=0x3;_0xb981aa[_0x2178('0xad')]=_0x2178('0x1b2');_0xb981aa[_0x2178('0xf8')]+=0x1;_0xb981aa[_0x2178('0xf4')]+=0x1;ami['emit']('custom:agentnoanswer',ut[_0x2178('0xf5')](_0xe52b2b,_0x2178('0x1b3')));_0x698170[_0x2178('0xd0')](_0xb981aa)[_0x2178('0xb6')](loggerCatch(_0x2178('0x1b4')));if(_0x698170['checkRetriveMax'](0x3,_0xe52b2b,_0x514aab)){if(_0xb981aa[_0x2178('0xf8')]>=_0x514aab['dialNoAnswerMaxRetry']){_0x698170[_0x2178('0x1b0')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1b5'));}else{_0x698170[_0x2178('0xfb')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1b5'));}}break;case'5':_0x514aab[_0x2178('0x65')]+=0x1;_0xb981aa[_0x2178('0xac')]=0x5;_0xb981aa[_0x2178('0xad')]=_0x2178('0x1b6');_0xb981aa[_0x2178('0xf6')]+=0x1;_0xb981aa[_0x2178('0xf4')]+=0x1;ami[_0x2178('0x104')](_0x2178('0x1b7'),ut[_0x2178('0xf5')](_0xe52b2b,_0x2178('0x1b8')));_0x698170[_0x2178('0xd0')](_0xb981aa)[_0x2178('0xb6')](loggerCatch(_0x2178('0x1b9')));if(_0x698170[_0x2178('0x19d')](0x5,_0xe52b2b,_0x514aab)){if(_0xb981aa['countbusyretry']>=_0x514aab['dialBusyMaxRetry']){_0x698170[_0x2178('0x1b0')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1ba'));}else{_0x698170['stateGlobal'](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1ba'));}}break;case'8':_0x514aab[_0x2178('0x66')]+=0x1;_0xb981aa[_0x2178('0xac')]=0x8;_0xb981aa[_0x2178('0xad')]=_0x2178('0x1bb');_0xb981aa[_0x2178('0xf7')]+=0x1;_0xb981aa['countglobal']+=0x1;ami[_0x2178('0x104')](_0x2178('0x1bc'),ut['buildObj'](_0xe52b2b,'congestion'));_0x698170[_0x2178('0xd0')](_0xb981aa)[_0x2178('0xb6')](loggerCatch(_0x2178('0x1bd')));if(_0x698170['checkRetriveMax'](0x8,_0xe52b2b,_0x514aab)){if(_0xb981aa[_0x2178('0xf7')]>=_0x514aab[_0x2178('0x1be')]){_0x698170[_0x2178('0x1b0')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1bf'));}else{_0x698170[_0x2178('0xfb')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1bf'));}}break;case'11':_0x514aab[_0x2178('0x1c0')]+=0x1;_0xb981aa['state']=0xb;_0xb981aa[_0x2178('0xad')]='Abandoned';_0xb981aa['countabandonedretry']+=0x1;_0xb981aa[_0x2178('0xf4')]+=0x1;_0x698170[_0x2178('0xd0')](_0xb981aa)[_0x2178('0xb6')](loggerCatch('[syncAgentComplete][createHistory][11]'));if(_0x698170[_0x2178('0x19d')](0xb,_0xe52b2b,_0x514aab)){if(_0xb981aa['countabandonedretry']>=_0x514aab[_0x2178('0x123')]){_0x698170[_0x2178('0x1b0')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1c1'));}else{_0x698170[_0x2178('0xfb')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1c1'));}}break;case'20':_0x514aab['outboundRejectCallsDay']+=0x1;_0xb981aa['state']=0x14;_0xb981aa[_0x2178('0xad')]=_0x2178('0x1c2');_0xb981aa[_0x2178('0xfa')]+=0x1;_0xb981aa[_0x2178('0xf4')]+=0x1;ami[_0x2178('0x104')](_0x2178('0x1c3'),ut['buildObj'](_0xe52b2b,_0x2178('0x1c4')));_0x698170['createHistory'](_0xb981aa)[_0x2178('0xb6')](loggerCatch('[syncAgentComplete][createHistory][20]'));if(_0x698170[_0x2178('0x19d')](0x14,_0xe52b2b,_0x514aab)){if(_0xb981aa[_0x2178('0xfa')]>=_0x514aab[_0x2178('0x1a7')]){_0x698170['createStateFinal'](_0xb981aa,_0x5ea9b1,_0x12ad55,'reason\x2020\x20agentreject');}else{_0x698170[_0x2178('0xfb')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x2178('0x1c5'));}}break;default:_0x514aab[_0x2178('0x6d')]+=0x1;_0xb981aa['state']=0xc;_0xb981aa[_0x2178('0xad')]=_0x3f78e2[_0x2178('0x110')];_0x698170['createHistory'](_0xb981aa)[_0x2178('0xb6')](loggerCatch(_0x2178('0x1c6')));if(_0x698170[_0x2178('0x19d')](_0x3f78e2[_0x2178('0x110')],_0xe52b2b,_0x514aab)){if(_0xb981aa[_0x2178('0xf6')]+_0xb981aa[_0x2178('0xf7')]+_0xb981aa[_0x2178('0xf8')]+_0xb981aa[_0x2178('0xf9')]+_0xb981aa[_0x2178('0x106')]+_0xb981aa[_0x2178('0x107')]+_0xb981aa[_0x2178('0xf3')]+_0xb981aa['countagentrejectretry']>=_0x514aab[_0x2178('0x1c7')]){_0x698170[_0x2178('0xfb')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x3f78e2['reason']);}else{_0x698170[_0x2178('0x1b0')](_0xb981aa,_0x5ea9b1,_0x12ad55,_0x3f78e2[_0x2178('0x110')]);}}}});};Dialer[_0x2178('0x1b')]['stateGlobal']=function(_0x421c96,_0x5cad87,_0x1d46b0,_0x41db3d){var _0x5de897=new Final(_0x421c96);_0x5de897['state']=0xf;_0x5de897[_0x2178('0xad')]=_0x2178('0x1c8');this[_0x2178('0x1b0')](_0x5de897,_0x5cad87,_0x1d46b0,_0x41db3d);};Dialer[_0x2178('0x1b')]['createStateFinal']=function(_0x5d2af7,_0x5e46a9,_0x10510a,_0x3551af){this[_0x2178('0xce')](_0x5d2af7)[_0x2178('0xbc')](function(){return _0x5e46a9(msgResponse(_0x2178('0x1aa'),_0x2178('0xdf'),_0x3551af));})[_0x2178('0xb6')](function(){return _0x10510a(msgResponse(_0x2178('0x1c9'),_0x2178('0x147'),_0x2178('0x1ca')));});};Dialer[_0x2178('0x1b')]['predictive']=function(_0x1d6b25){var _0xe2c128=_0x1d6b25['dialPredictiveOptimizationPercentage']/0x64;var _0x4d7a20=_0x1d6b25[_0x2178('0x69')]/(_0x1d6b25[_0x2178('0x69')]+_0x1d6b25['outboundAnswerCallsDay']);var _0x199206=Math[_0x2178('0x1cb')](_0x1d6b25[_0x2178('0x77')]*(_0x1d6b25[_0x2178('0x1cc')]/0x64));var _0x4d523f=Math['round'](_0x1d6b25[_0x2178('0x77')]*(_0x1d6b25[_0x2178('0x1cd')]/0x64));var _0x2745b6=_0x1d6b25[_0x2178('0x51')]+_0x1d6b25[_0x2178('0x57')];var _0x2260e6=Math[_0x2178('0x1ce')](_0x1d6b25['erlangCalls']*_0x1d6b25['erlangAbandonmentRate']*_0x1d6b25[_0x2178('0x74')]*_0x1d6b25['predictiveIntervalMultiplicativeFactor']);if(_[_0x2178('0x3e')](_0x1d6b25[_0x2178('0x28')])){if(!_[_0x2178('0x3e')](_0x1d6b25[_0x2178('0x7e')])){_0x1d6b25[_0x2178('0x7e')]=undefined;loggerPredictive[_0x2178('0x9b')](_0x2178('0x1cf'),_0x2178('0x1d0'));}if(!_[_0x2178('0x3e')](_0x1d6b25[_0x2178('0x95')])){loggerPredictive[_0x2178('0x9b')](_0x2178('0x1cf'),_0x2178('0x1d1'));clearInterval(_0x1d6b25[_0x2178('0x95')]);_0x1d6b25['handlePredictive']=undefined;}_0x1d6b25[_0x2178('0x28')]=moment()[_0x2178('0x81')](_0x2178('0x109'));loggerPredictive[_0x2178('0x84')](_0x1d6b25[_0x2178('0x41')],_0x2178('0x1d2'),_0x1d6b25[_0x2178('0x28')]);this[_0x2178('0x15c')](_0x1d6b25,0x1);}else if(ifInterval(_0x1d6b25[_0x2178('0x1d3')],_0x1d6b25[_0x2178('0x28')])){this[_0x2178('0x15c')](_0x1d6b25,0x1);loggerPredictiveCalls[_0x2178('0x84')](_0x2178('0x1d4'),_0x1d6b25[_0x2178('0x28')],_0x1d6b25[_0x2178('0x41')]);_0x1d6b25[_0x2178('0x7a')]=0x0;_0x1d6b25['predictiveIntervalErlangCallsDroppedCalls']=0x0;}else if(_0xe2c128<_0x4d7a20&&_0x1d6b25[_0x2178('0x1d5')]==='dropRate'){freeVariablesPredictive(_0x1d6b25);loggerPredictive[_0x2178('0x84')](_0x2178('0x1d6'),_0x2178('0x1d7'),_0x4d7a20,_0x2178('0x28'),_0x1d6b25['name']);}else if(_0x2260e6<_0x1d6b25[_0x2178('0x11a')]&&_0x1d6b25[_0x2178('0x1d5')]==='dropRate'){freeVariablesPredictive(_0x1d6b25);loggerPredictive[_0x2178('0x84')]('[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]',_0x2178('0x1d8'),_0x2260e6,'Drop\x20in\x20this\x20interval',_0x1d6b25[_0x2178('0x11a')],_0x2178('0x28'),_0x1d6b25[_0x2178('0x41')]);}else if(!ifInterval(_0x1d6b25[_0x2178('0x1d3')],_0x1d6b25[_0x2178('0x28')])&&_[_0x2178('0x3e')](_0x1d6b25[_0x2178('0x7e')])&&!_[_0x2178('0x3e')](_0x1d6b25[_0x2178('0x28')])){_0x1d6b25['startPredictive']=moment()[_0x2178('0x81')](_0x2178('0x109'));loggerPredictive['info'](_0x1d6b25[_0x2178('0x41')],_0x2178('0x1d9'),_0x1d6b25[_0x2178('0x7e')]);this[_0x2178('0xc1')](_0x1d6b25['dialPredictiveInterval'])['then'](this[_0x2178('0x1da')](_0x1d6b25))['then'](mergeDataErlangB(_0x1d6b25))[_0x2178('0xbc')](this['startMethodPredictive'](_0x1d6b25))[_0x2178('0xb6')](loggerCatchPredictive(_0x2178('0x1db'),_0x1d6b25));}else if(!ifInterval(_0x1d6b25['dialPredictiveInterval'],_0x1d6b25['startPredictive'])){_0x1d6b25[_0x2178('0x11a')]=0x0;_0x1d6b25[_0x2178('0x7e')]=moment()[_0x2178('0x81')](_0x2178('0x109'));loggerPredictive[_0x2178('0x84')](_0x1d6b25['name'],_0x2178('0x1dc'),_0x1d6b25[_0x2178('0x7e')]);clearInterval(_0x1d6b25[_0x2178('0x95')]);_0x1d6b25[_0x2178('0x95')]=undefined;this[_0x2178('0xc1')](_0x1d6b25['dialPredictiveInterval'])[_0x2178('0xbc')](this[_0x2178('0x1da')](_0x1d6b25))[_0x2178('0xbc')](mergeDataErlangB(_0x1d6b25))[_0x2178('0xbc')](this[_0x2178('0x1dd')](_0x1d6b25))[_0x2178('0xb6')](loggerCatchPredictive(_0x2178('0x1de'),_0x1d6b25));}else if(_0x1d6b25[_0x2178('0x77')]&&_0x2745b6<_0x1d6b25[_0x2178('0x77')]-_0x4d523f){freeVariablesPredictive(_0x1d6b25);loggerPredictive[_0x2178('0x84')](_0x1d6b25[_0x2178('0x41')],_0x2178('0x1df'),_0x2745b6,_0x2178('0x1e0'),_0x1d6b25[_0x2178('0x77')],'-',_0x4d523f,'=',_0x1d6b25[_0x2178('0x77')]-_0x4d523f,')');}else if(_0x1d6b25[_0x2178('0x77')]&&_0x2745b6>_0x1d6b25[_0x2178('0x77')]+_0x199206){freeVariablesPredictive(_0x1d6b25);loggerPredictive[_0x2178('0x84')](_0x1d6b25[_0x2178('0x41')],'switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',_0x2745b6,_0x2178('0x1e1'),_0x1d6b25[_0x2178('0x77')],'+',_0x199206,'=',_0x1d6b25[_0x2178('0x77')]+_0x199206,')');}};Dialer[_0x2178('0x1b')]['getDataPredictive']=function(_0x3ef2fd){var _0x491026=this;return function(_0x38a4ae){return new BPromise(function(_0xe2fc93,_0x303f21){_[_0x2178('0x92')](_0x3ef2fd,_0x38a4ae[0x0]);if(checkGetDataPredictive(_0x38a4ae[0x0])){var _0x1b8b29=_0x3ef2fd['predictiveIntervalAvailable']=_0x3ef2fd[_0x2178('0x57')]+_0x3ef2fd[_0x2178('0x51')];var _0x1b47cb=_0x3ef2fd[_0x2178('0x1d3')]*0x3c;var _0x344edc=_0x38a4ae[0x0][_0x2178('0x70')]+_0x38a4ae[0x0][_0x2178('0x6f')];var _0x2f4e78=(_0x38a4ae[0x0][_0x2178('0x6e')]+_0x38a4ae[0x0][_0x2178('0x72')]+_0x38a4ae[0x0][_0x2178('0x71')])/_0x38a4ae[0x0][_0x2178('0x78')];_0x3ef2fd['predictiveIntervalHitRate']=_0x2f4e78>0x0?_0x2f4e78:0x1;switch(_0x3ef2fd['dialPredictiveOptimization']){case _0x2178('0x1e2'):var _0x24dd2b=_0x3ef2fd[_0x2178('0x1e3')]/0x64;return _0x491026[_0x2178('0x1e4')](_0x1b8b29,_0x1b47cb,_0x344edc,_0x2f4e78,_0x24dd2b)[_0x2178('0xbc')](function(_0x365b0a){return _0xe2fc93(_0x365b0a);});case'agentBusyFactor':var _0x18224f=_0x3ef2fd[_0x2178('0x1e3')]/0x64;return _0x491026[_0x2178('0x1e5')](_0x1b8b29,_0x1b47cb,_0x344edc,_0x2f4e78,_0x18224f)['then'](function(_0x28875d){return _0xe2fc93(_0x28875d);});default:return _0x303f21(msgResponse(_0x2178('0x1e6'),'Failure','Unknown\x20Predictive'));}}else{return _0x303f21(msgResponse(_0x2178('0x1e6'),_0x2178('0x147'),_0x2178('0x1e7')));}});};};Dialer[_0x2178('0x1b')][_0x2178('0x1e8')]=function(_0x42cb62){var _0x19d2bc=this;return function(_0x38eb6c){return new BPromise(function(_0x69ac06,_0xaa32a4){_['merge'](_0x42cb62,_0x38eb6c[0x0]);if(checkGetDataPredictive(_0x38eb6c[0x0])){loggerPredictive[_0x2178('0x84')](JSON['stringify'](_0x38eb6c[0x0]));if(_0x42cb62['dialPredictiveOptimization']==='dropRate'){return _0x19d2bc[_0x2178('0xcc')](_0x42cb62['id'])[_0x2178('0xbc')](function(_0x41109d){var _0x3608d3=_0x42cb62[_0x2178('0x52')]-_0x41109d[0x0][_0x2178('0x1e9')];var _0x874072=_0x42cb62['dialPredictiveInterval']*0x3c;var _0xb3f77f=_0x38eb6c[0x0][_0x2178('0x70')]+_0x38eb6c[0x0]['predictiveIntervalAvgHoldtime'];var _0x3acd7e=(_0x38eb6c[0x0][_0x2178('0x6e')]+_0x38eb6c[0x0][_0x2178('0x72')]+_0x38eb6c[0x0][_0x2178('0x71')])/_0x38eb6c[0x0][_0x2178('0x78')];var _0x3e4070=_0x42cb62[_0x2178('0x1e3')]/0x64;_0x42cb62['predictiveIntervalPauses']=_0x41109d[0x0][_0x2178('0x1e9')]||0x0;_0x42cb62[_0x2178('0x74')]=_0x3acd7e>0x0?_0x3acd7e:0x1;return _0x19d2bc['abandonmentRate'](_0x3608d3,_0x874072,_0xb3f77f,_0x3acd7e,_0x3e4070);})['then'](function(_0x46cee1){return _0x69ac06(_0x46cee1);})[_0x2178('0xb6')](function(_0x57b051){return _0xaa32a4(msgResponse(_0x2178('0x1ea'),_0x2178('0x147'),JSON['stringify'](_0x57b051)));});}if(_0x42cb62[_0x2178('0x1d5')]===_0x2178('0x1eb')){return _0x19d2bc['getVoiceQueueRtPauses'](_0x42cb62['id'])[_0x2178('0xbc')](function(_0x536759){var _0x1a38e6=_0x42cb62[_0x2178('0x52')]-_0x536759[0x0][_0x2178('0x1e9')];var _0x41ee74=_0x42cb62[_0x2178('0x1d3')]*0x3c;var _0x160332=_0x38eb6c[0x0][_0x2178('0x70')]+_0x38eb6c[0x0]['predictiveIntervalAvgHoldtime'];var _0x50b8c5=(_0x38eb6c[0x0][_0x2178('0x6e')]+_0x38eb6c[0x0]['predictiveIntervalDroppedCallsTimeout']+_0x38eb6c[0x0][_0x2178('0x71')])/_0x38eb6c[0x0]['predictiveIntervalTotalCalls'];var _0x5b111e=_0x42cb62[_0x2178('0x1e3')]/0x64;_0x42cb62['predictiveIntervalPauses']=_0x536759[0x0][_0x2178('0x1e9')]||0x0;_0x42cb62[_0x2178('0x74')]=_0x50b8c5>0x0?_0x50b8c5:0x1;return _0x19d2bc[_0x2178('0x1e5')](_0x1a38e6,_0x41ee74,_0x160332,_0x50b8c5,_0x5b111e);})[_0x2178('0xbc')](function(_0x6c7c75){return _0x69ac06(_0x6c7c75);})[_0x2178('0xb6')](function(_0x44dbbf){return _0xaa32a4(msgResponse(_0x2178('0x1ea'),_0x2178('0x147'),JSON[_0x2178('0x4b')](_0x44dbbf)));});}}else{return _0xaa32a4(msgResponse(_0x2178('0x1e6'),_0x2178('0x147'),_0x2178('0x1e7')));}});};};Dialer['prototype']['startMethodPredictive']=function(_0x45e63b){var _0xbee927=this;return function(){var _0x2c0995=0x0;var _0x27a2d1=Math[_0x2178('0x1ce')](_0x45e63b[_0x2178('0x7b')]*0x3e8);if(_0x27a2d1>0x0){_0x27a2d1=_0x27a2d1<0x64?0x64:_0x27a2d1;loggerPredictive['info'](_0x45e63b[_0x2178('0x41')],_0x2178('0x1ec'),_0x27a2d1,'milliseconds');_0x45e63b[_0x2178('0x95')]=setInterval(function(){_0xbee927['handlePredictive'](_0x45e63b);loggerPredictiveCalls[_0x2178('0x84')](_0x2178('0x1ed'),_0x2c0995+=0x1);},_0x27a2d1);}else{loggerPredictive['info'](_0x45e63b[_0x2178('0x41')],_0x2178('0x1ee'));}};};Dialer[_0x2178('0x1b')]['checkContactBlack']=function(_0x16cf3e,_0x5c04ff){var _0x2e40a3=this;return function(_0x2f7b71){if(_['isEmpty'](_0x2f7b71)){if(_[_0x2178('0xb2')](_0x5c04ff[_0x2178('0xd9')])||!_0x5c04ff[_0x2178('0x1ef')]){if(_0x16cf3e[_0x2178('0x5e')]==='booked'){_0x16cf3e[_0x2178('0x131')]=_[_0x2178('0x3e')](_0x16cf3e['queueStatusComplete'])?!![]:_0x16cf3e['queueStatusComplete'];var _0x459745=uuid['v4']();_0x2e40a3['actions'][_0x459745]=new Action(_0x16cf3e,_0x5c04ff,_0x459745);loggerBooked[_0x2178('0x84')]('[booked][checkContactBlack]',_0x459745,_0x2178('0x1f0'),JSON[_0x2178('0x4b')](_0x16cf3e[_0x2178('0x131')]),_0x2178('0x1f1'),_0x16cf3e[_0x2178('0x41')]);if(_0x16cf3e[_0x2178('0x131')]){_0x16cf3e['queueStatusComplete']=![];_0x2e40a3[_0x2178('0x2a')][_0x2e40a3[_0x2178('0x24')][_0x459745][_0x2178('0xb8')]]=[];ami[_0x2178('0xb3')]({'actionid':_0x459745,'action':'queuestatus','queue':_0x16cf3e['name']})[_0x2178('0xb6')](function(){_0x2e40a3['updateOriginated'](_0x16cf3e);_0x2e40a3['rescheduleContact']({'active':![],'ContactId':_0x2e40a3[_0x2178('0x24')][_0x459745]['ContactId'],'ListId':_0x2e40a3[_0x2178('0x24')][_0x459745]['ListId'],'VoiceQueueId':_0x2e40a3['actions'][_0x459745][_0x2178('0xda')]||undefined,'CampaignId':_0x2e40a3[_0x2178('0x24')][_0x459745][_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x2e40a3[_0x2178('0x24')][_0x459745];});}else{loggerBooked['info']('[booked][checkContactBlack][else]',JSON['stringify'](_0x16cf3e[_0x2178('0x131')]),_0x2178('0x1f1'),_0x16cf3e[_0x2178('0x41')]);_0x2e40a3[_0x2178('0xb7')](_0x16cf3e);_0x2e40a3[_0x2178('0xc4')]({'active':![],'ContactId':_0x2e40a3[_0x2178('0x24')][_0x459745]['ContactId'],'ListId':_0x2e40a3[_0x2178('0x24')][_0x459745][_0x2178('0xd8')],'VoiceQueueId':_0x2e40a3[_0x2178('0x24')][_0x459745][_0x2178('0xda')]||undefined,'CampaignId':_0x2e40a3[_0x2178('0x24')][_0x459745][_0x2178('0xdb')]||undefined})[_0x2178('0xb6')](loggerCatch(_0x2178('0x1f2')));delete _0x2e40a3['actions'][_0x459745];}}else{return _0x2e40a3['actionOriginate'](_0x16cf3e,_0x5c04ff);}}else{if(getDiff(_0x5c04ff['scheduledat'])<_0x16cf3e[_0x2178('0x1f3')]*0x3c){if(_0x5c04ff['Agent']&&!_0x5c04ff[_0x2178('0x1f4')][_0x2178('0x1f5')]){_0x2e40a3[_0x2178('0x97')][_0x2178('0x134')](_0x5c04ff['id'])[_0x2178('0x136')](function(){_0x2e40a3[_0x2178('0xb7')](_0x16cf3e);});}else{_0x2e40a3[_0x2178('0xc6')]({'active':![]},_0x5c04ff['id'],0x1)[_0x2178('0x136')](function(){_0x2e40a3[_0x2178('0xb7')](_0x16cf3e);});}}else{_0x16cf3e['outboundReCallsDay']+=0x1;_0x2e40a3['updateOriginated'](_0x16cf3e);if(_0x16cf3e[_0x2178('0x1f6')]){_0x2e40a3['rescheduleContact']({'active':![],'recallme':![],'UserId':null,'ContactId':_0x5c04ff[_0x2178('0xd7')],'ListId':_0x5c04ff['ListId'],'VoiceQueueId':_0x5c04ff[_0x2178('0xda')]||undefined,'CampaignId':_0x5c04ff[_0x2178('0xdb')]||undefined})['catch'](loggerCatch(_0x2178('0x1f7')));_0x2e40a3[_0x2178('0xd0')](createObjHistory(_0x16cf3e,_0x5c04ff,_0x2178('0x1f8'),0x17,_0x2178('0x1f9')))[_0x2178('0xb6')](loggerCatch(_0x2178('0x1fa')));}else{_0x2e40a3[_0x2178('0xd6')](createObjHistory(_0x16cf3e,_0x5c04ff,'RECALLFAILEDTIMEOUT',0x16,_0x2178('0x1fb')),_0x2178('0x1fc'),'[Originate][HistoryRecallClose]');}}}}else{_0x16cf3e[_0x2178('0x64')]+=0x1;_0x2e40a3[_0x2178('0xd6')](createObjHistory(_0x16cf3e,_0x5c04ff,_0x2178('0x1fd'),0xd,_0x2178('0x1fe')),_0x2178('0x1ff'),_0x2178('0x200'));throw _0x2178('0x201');}};};Dialer['prototype']['handleIvr']=function(_0x1bb29c){var _0x1e23b3=this;var _0x19008d=_0x1bb29c[_0x2178('0x202')]-_0x1bb29c['originated']-_0x1bb29c['temp'];emitCampaignSummary(_0x1bb29c);if(_0x19008d>0x0){if(_0x19008d>this[_0x2178('0x22')]){_0x19008d=this['maxNumberOriginate'];}_0x1bb29c[_0x2178('0xc9')]+=_0x19008d;this[_0x2178('0xca')](_0x1bb29c['id'],_0x19008d,_0x1bb29c['dialOrderByScheduledAt'],_0x1bb29c)[_0x2178('0xbc')](function(_0x16c602){_0x1bb29c[_0x2178('0xc9')]-=_0x19008d;_0x1bb29c[_0x2178('0xc9')]=_0x1bb29c['temp']>0x0?_0x1bb29c[_0x2178('0xc9')]:0x0;if(!checkContactEmpty(_0x16c602)){_0x1bb29c[_0x2178('0x3f')]='AVAILABLE_CONTACTS_FINISHED';logger[_0x2178('0x84')](_0x2178('0x203')+_0x1bb29c['name']);}else{_0x1bb29c[_0x2178('0x79')]+=_0x16c602[_0x2178('0x9e')];_0x1bb29c[_0x2178('0x3f')]=_0x2178('0x204');for(var _0x319336=0x0;_0x319336<_0x16c602[_0x2178('0x9e')];_0x319336+=0x1){_0x1bb29c[_0x2178('0x205')]+=0x1;if(_[_0x2178('0xb2')](_0x16c602[_0x319336])||_[_0x2178('0xb2')](_0x16c602[_0x319336][_0x2178('0x16d')])||_[_0x2178('0xb2')](_0x16c602[_0x319336][_0x2178('0x16d')]['phone'])){_0x1e23b3[_0x2178('0xd5')](_0x2178('0x206'),_0x1bb29c,_0x16c602[_0x319336]);}else{_0x1e23b3['checkIsBlackListIvr'](_[_0x2178('0x12f')](_0x16c602[_0x319336],['CampaignId',_0x2178('0x207')]))[_0x2178('0xbc')](_0x1e23b3[_0x2178('0x208')](_0x1bb29c,_0x16c602[_0x319336]))[_0x2178('0xb6')](_0x1e23b3[_0x2178('0xd4')](_0x2178('0x209'),_0x1bb29c));}}}})[_0x2178('0xb6')](loggerGetContactDialer(_0x2178('0x20a'),_0x1bb29c,_0x19008d));}};Dialer[_0x2178('0x1b')][_0x2178('0x15c')]=function(_0x5ee02a,_0x490cd3){var _0x4a93c8=this;var _0x119b4a=[];var _0xad822=_0x490cd3>=0x1?_0x490cd3:0x1;if(_0x5ee02a[_0x2178('0x5e')]===_0x2178('0x8')){_0xad822=0x1;}var _0x1a314e=Math['floor'](_0x5ee02a['available']*_0xad822)-_0x5ee02a[_0x2178('0x79')]-_0x5ee02a[_0x2178('0xc9')];emitVoiceQueueSummary(_0x5ee02a);if(_0x5ee02a['dialLimitQueue']>0x0){var _0x58b26d=_0x5ee02a[_0x2178('0x20b')]-_0x5ee02a['originated']-_0x5ee02a['talking']-_0x5ee02a[_0x2178('0xc9')]-_0x5ee02a[_0x2178('0x53')];if(_0x1a314e>_0x58b26d){_0x1a314e=_0x58b26d;}}if(_0x1a314e>0x0){if(_0x5ee02a[_0x2178('0x5e')]==='booked'){_0x1a314e=0x1;}if(_0x1a314e>this[_0x2178('0x22')]){_0x1a314e=this['maxNumberOriginate'];}_0x5ee02a[_0x2178('0xc9')]+=_0x1a314e;for(var _0x432dc1 in this['agents']){if(typeof this[_0x2178('0x20')][_0x432dc1]!==_0x2178('0x9f')){if(this['agents'][_0x432dc1][_0x2178('0xac')]==='not_inuse'&&this[_0x2178('0x20')][_0x432dc1][_0x2178('0xb4')]===_0x2178('0xe0')){_0x119b4a[_0x2178('0x12e')](this[_0x2178('0x20')][_0x432dc1]['id']);}}}this['getContactDialer'](_0x5ee02a['id'],_0x119b4a,_0x1a314e,_0x5ee02a['dialOrderByScheduledAt'],_0x5ee02a)[_0x2178('0xbc')](function(_0xa827d9){_0x5ee02a['temp']-=_0x1a314e;_0x5ee02a[_0x2178('0xc9')]=_0x5ee02a[_0x2178('0xc9')]>0x0?_0x5ee02a[_0x2178('0xc9')]:0x0;if(!checkContactEmpty(_0xa827d9)){_0x4a93c8[_0x2178('0xba')](_0x5ee02a)['then'](sendMessageReschedule(_0x5ee02a))[_0x2178('0xb6')](loggerCatch(_0x2178('0xbd')));}else{_0x5ee02a[_0x2178('0x79')]+=_0xa827d9['length'];_0x5ee02a[_0x2178('0x3f')]=_0x5ee02a[_0x2178('0x5e')]==='booked'?_0x2178('0x176'):_0x2178('0x204');for(var _0x399e23=0x0;_0x399e23<_0xa827d9[_0x2178('0x9e')];_0x399e23+=0x1){if(_[_0x2178('0xb2')](_0xa827d9[_0x399e23])||_[_0x2178('0xb2')](_0xa827d9[_0x399e23][_0x2178('0x16d')])||_['isNil'](_0xa827d9[_0x399e23]['Contact']['phone'])){_0x4a93c8[_0x2178('0xd5')](_0x2178('0x206'),_0x5ee02a,_0xa827d9[_0x399e23]);}else{_0x4a93c8[_0x2178('0xbe')](_['pick'](_0xa827d9[_0x399e23],[_0x2178('0xda'),_0x2178('0x207')]))[_0x2178('0xbc')](_0x4a93c8[_0x2178('0x208')](_0x5ee02a,_0xa827d9[_0x399e23]))[_0x2178('0xb6')](_0x4a93c8[_0x2178('0xd4')](_0x2178('0x206'),_0x5ee02a));}}}})['catch'](loggerGetContactDialer(_0x2178('0x20c'),_0x5ee02a,_0x1a314e));}};Dialer[_0x2178('0x1b')][_0x2178('0x95')]=function(_0x4a965d){if(_0x4a965d[_0x2178('0x20b')]>0x0){var _0x1ebbba=_0x4a965d[_0x2178('0x20b')]-_0x4a965d['originated']-_0x4a965d[_0x2178('0x57')];if(_0x1ebbba>0x0){this['tryOriginatePredictive'](_0x4a965d);}else{loggerPredictiveCalls[_0x2178('0x84')](_0x2178('0x20d'));}}else{this[_0x2178('0x20e')](_0x4a965d);}};Dialer[_0x2178('0x1b')][_0x2178('0x20e')]=function(_0x17a9c4){var _0x14688d=this;var _0x2efd78=[];_0x17a9c4[_0x2178('0x79')]+=0x1;for(var _0x5aaba8 in this[_0x2178('0x20')]){if(typeof this['agents'][_0x5aaba8]!=='undefined'){if(this[_0x2178('0x20')][_0x5aaba8]['state']===_0x2178('0x20f')&&this[_0x2178('0x20')][_0x5aaba8][_0x2178('0xb4')]===_0x2178('0xe0')){_0x2efd78['push'](this['agents'][_0x5aaba8]['id']);}}}this[_0x2178('0xc8')](_0x17a9c4['id'],_0x2efd78,0x1,_0x17a9c4[_0x2178('0x210')],_0x17a9c4)['then'](function(_0x225a9d){if(!checkContactEmpty(_0x225a9d)){checkContactLowerLimitOriginate(_0x17a9c4,0x1,0x0);_0x14688d['countReScheduled'](_0x17a9c4)[_0x2178('0xbc')](sendMessageReschedule(_0x17a9c4))['catch'](loggerCatch(_0x2178('0xbd')));}else{_0x17a9c4[_0x2178('0x3f')]=_0x2178('0x204');if(_['isNil'](_0x225a9d[0x0])||_['isNil'](_0x225a9d[0x0]['Contact'])||_[_0x2178('0xb2')](_0x225a9d[0x0]['Contact']['phone'])){_0x14688d[_0x2178('0xd5')](_0x2178('0x206'),_0x17a9c4,_0x225a9d[0x0]);}else{_0x14688d[_0x2178('0xbe')](_['pick'](_0x225a9d[0x0],[_0x2178('0xda'),'Contact.phone']))[_0x2178('0xbc')](_0x14688d[_0x2178('0x208')](_0x17a9c4,_0x225a9d[0x0]))[_0x2178('0xb6')](_0x14688d[_0x2178('0xd4')](_0x2178('0x211'),_0x17a9c4));}}})[_0x2178('0xb6')](loggerGetContactDialer('[getContactDialerPredictive]',_0x17a9c4,0x1));emitVoiceQueueSummary(_0x17a9c4);};Dialer[_0x2178('0x1b')][_0x2178('0x1e4')]=function(_0x4d7b0a,_0x110ecf,_0x2e8681,_0xfeecae,_0x98b05d,_0x5276c0){loggerPredictive['info'](_0x2178('0x212'));loggerPredictive[_0x2178('0x84')]('M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4d7b0a);loggerPredictive[_0x2178('0x84')](_0x2178('0x213'),_0x110ecf);loggerPredictive[_0x2178('0x84')](_0x2178('0x214'),_0x2e8681);loggerPredictive[_0x2178('0x84')](_0x2178('0x215'),_0xfeecae);loggerPredictive[_0x2178('0x84')](_0x2178('0x216'),_0x98b05d);loggerPredictive[_0x2178('0x84')](_0x2178('0x8a'));return new BPromise(function(_0x14f3a8,_0x56b525){if(_0x4d7b0a<=0x0||isNaN(_0x4d7b0a)){return _0x56b525(msgResponse('[abandonmentRate]',_0x2178('0x4a'),'m\x20=\x20'+_0x4d7b0a));}if(_0x2e8681<=0x0||isNaN(_0x2e8681)){return _0x56b525(msgResponse(_0x2178('0x217'),_0x2178('0x4a'),_0x2178('0x218')+_0x2e8681));}if(_0xfeecae<=0x0||isNaN(_0xfeecae)){return _0x56b525(msgResponse('[abandonmentRate]',_0x2178('0x4a'),_0x2178('0x219')+_0xfeecae));}if(_0x110ecf<=0x0||isNaN(_0x110ecf)){return _0x56b525(msgResponse(_0x2178('0x217'),_0x2178('0x4a'),_0x2178('0x21a')+_0x110ecf));}if(_0x98b05d<=0x0||isNaN(_0x98b05d)){return _0x56b525(msgResponse(_0x2178('0x217'),_0x2178('0x4a'),_0x2178('0x21b')+_0x98b05d));}_0x5276c0=_0x5276c0||0x0;var _0x5e2516=0x1/_0x2e8681;var _0x2f57e2=0x0;var _0xd30500=0x0;var _0x5889ad=0x0;var _0x519bdc=0x0;for(var _0x5b55d2=0x0;_0x5889ad<_0x98b05d;_0x5b55d2+=0x1){_0xd30500=_0x5b55d2/_0x110ecf;_0x2f57e2=(_0xfeecae*_0xd30500+_0x5276c0)/_0x5e2516;_0x5889ad=erlangb(_0x2f57e2,_0x4d7b0a);_0x519bdc=_0x2f57e2/_0x4d7b0a*(0x1-erlangb(_0x2f57e2,_0x4d7b0a));}return _0x14f3a8({'erlangCalls':_0x5b55d2,'erlangCallToSecond':_0x110ecf/_0x5b55d2,'erlangAbandonmentRate':_0x5889ad,'erlangBusyFactor':_0x519bdc});});};Dialer['prototype'][_0x2178('0x1e5')]=function(_0x149595,_0x567c55,_0x233d71,_0x25ceac,_0x16ee36,_0x1e48e6){loggerPredictive[_0x2178('0x84')]('----\x20Agent\x20Busy\x20Factor\x20----');loggerPredictive[_0x2178('0x84')]('M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x149595);loggerPredictive[_0x2178('0x84')](_0x2178('0x213'),_0x567c55);loggerPredictive[_0x2178('0x84')]('Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x233d71);loggerPredictive[_0x2178('0x84')](_0x2178('0x215'),_0x25ceac);loggerPredictive[_0x2178('0x84')](_0x2178('0x21c'),_0x16ee36);loggerPredictive[_0x2178('0x84')](_0x2178('0x8a'));return new BPromise(function(_0x4609df,_0x2843da){if(_0x149595<=0x0||isNaN(_0x149595)){return _0x2843da(msgResponse(_0x2178('0x21d'),_0x2178('0x4a'),_0x2178('0x21e')+_0x149595));}if(_0x233d71<=0x0||isNaN(_0x233d71)){return _0x2843da(msgResponse(_0x2178('0x21d'),_0x2178('0x4a'),_0x2178('0x218')+_0x233d71));}if(_0x25ceac<=0x0||isNaN(_0x25ceac)){return _0x2843da(msgResponse(_0x2178('0x21d'),'Error','p\x20=\x20'+_0x25ceac));}if(_0x567c55<=0x0||isNaN(_0x567c55)){return _0x2843da(msgResponse('[busyFactor]','Error',_0x2178('0x21a')+_0x567c55));}if(_0x16ee36<=0x0||isNaN(_0x16ee36)){return _0x2843da(msgResponse('[busyFactor]',_0x2178('0x4a'),_0x2178('0x21f')+_0x16ee36));}_0x1e48e6=_0x1e48e6||0x0;var _0x2edf85=0x1/_0x233d71;var _0x1f1475=0x0;var _0x594cae=0x0;var _0x28bd90=0x0;var _0x4c7ead=0x0;for(var _0x2e88ef=0x0;_0x4c7ead<_0x16ee36;_0x2e88ef+=0x1){_0x594cae=_0x2e88ef/_0x567c55;_0x1f1475=(_0x25ceac*_0x594cae+_0x1e48e6)/_0x2edf85;_0x28bd90=erlangb(_0x1f1475,_0x149595);_0x4c7ead=_0x1f1475/_0x149595*(0x1-erlangb(_0x1f1475,_0x149595));}return _0x4609df({'erlangCalls':_0x2e88ef,'erlangCallToSecond':_0x567c55/_0x2e88ef,'erlangAbandonmentRate':_0x28bd90,'erlangBusyFactor':_0x4c7ead});});};module['exports']=Dialer;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4031=['scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','uniqueid','calleridname','name','calleridnum','number','starttime','droptime','endtime','responsetime','membername','connectedlinename','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff'];(function(_0x6c2eb5,_0x2dd100){var _0xca4732=function(_0x376897){while(--_0x376897){_0x6c2eb5['push'](_0x6c2eb5['shift']());}};_0xca4732(++_0x2dd100);}(_0x4031,0xf7));var _0x1403=function(_0x29f717,_0x283922){_0x29f717=_0x29f717-0x0;var _0x2a1066=_0x4031[_0x29f717];return _0x2a1066;};'use strict';var util=require(_0x1403('0x0'));var _=require(_0x1403('0x1'));var moment=require(_0x1403('0x2'));function getSeconds(_0xd6f7c9,_0x5944b5){var _0x3e91ad=moment(_0xd6f7c9)[_0x1403('0x3')](0x0);var _0x305bb3=moment(_0x5944b5)['milliseconds'](0x0);return _0x3e91ad[_0x1403('0x4')](_0x305bb3,'seconds');}function QueueCallerAbandon(_0x302648,_0x4d0dd7){this[_0x1403('0x5')]=_0x302648['scheduledat'];this[_0x1403('0x6')]=_0x302648[_0x1403('0x6')];this[_0x1403('0x7')]=_0x302648[_0x1403('0x6')]===_0x1403('0x8')?_0x1403('0x9'):_0x302648[_0x1403('0x6')];this[_0x1403('0xa')]=_0x302648[_0x1403('0xa')];this['countcongestionretry']=_0x302648[_0x1403('0xb')];this[_0x1403('0xc')]=_0x302648[_0x1403('0xc')];this[_0x1403('0xd')]=_0x302648['countbusyretry']+_0x302648[_0x1403('0xb')]+_0x302648[_0x1403('0xc')]+_0x302648['countnosuchnumberretry']+_0x302648[_0x1403('0xe')]+_0x302648[_0x1403('0xf')]+_0x302648[_0x1403('0x10')]+_0x302648[_0x1403('0x11')];this[_0x1403('0x12')]=_0x302648[_0x1403('0x12')];this['countdropretry']=_0x302648[_0x1403('0xe')];this[_0x1403('0xf')]=_0x302648[_0x1403('0xf')];this[_0x1403('0x10')]=_0x302648['countmachineretry'];this[_0x1403('0x11')]=_0x302648[_0x1403('0x11')];this[_0x1403('0x13')]=_0x4d0dd7[_0x1403('0x13')];this[_0x1403('0x14')]=_0x302648[_0x1403('0x15')];this[_0x1403('0x16')]=_0x302648[_0x1403('0x17')];this[_0x1403('0x18')]=_0x302648[_0x1403('0x18')];this['responsetime']=_0x302648['responsetime'];this['droptime']=_0x302648[_0x1403('0x19')];this[_0x1403('0x1a')]=this[_0x1403('0x19')];this['ringtime']=getSeconds(_0x302648[_0x1403('0x1b')],_0x302648[_0x1403('0x18')]);this['holdtime']=getSeconds(this[_0x1403('0x19')],_0x302648[_0x1403('0x1b')]);this['talktime']=0x0;this[_0x1403('0x9')]=_0x4d0dd7[_0x1403('0x9')];this[_0x1403('0x1c')]=_0x4d0dd7[_0x1403('0x1d')];this['reason']=_0x4d0dd7['reason'];this[_0x1403('0x1e')]=_0x302648[_0x1403('0x1e')];this[_0x1403('0x1f')]=_0x302648[_0x1403('0x1f')];this[_0x1403('0x20')]=_0x302648['callbackat'];this[_0x1403('0x21')]=_0x302648[_0x1403('0x21')];this[_0x1403('0x22')]=_0x302648[_0x1403('0x22')];this[_0x1403('0x23')]=_0x302648[_0x1403('0x23')];this[_0x1403('0x24')]=_0x302648[_0x1403('0x24')];this[_0x1403('0x25')]=_0x302648['VoiceQueueId'];this[_0x1403('0x26')]=_0x302648['CampaignId'];this[_0x1403('0x27')]=_0x302648[_0x1403('0x27')]||'';this[_0x1403('0x28')]=_0x302648[_0x1403('0x28')]||'';}module[_0x1403('0x29')]=QueueCallerAbandon;
\ No newline at end of file
+var _0xcd3d=['campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','name','calleridnum','starttime','responsetime','droptime','endtime','ringtime','membername','connectedlinename','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff','scheduledat','type'];(function(_0x3cf114,_0x53ea34){var _0x2b590e=function(_0x5f2cab){while(--_0x5f2cab){_0x3cf114['push'](_0x3cf114['shift']());}};_0x2b590e(++_0x53ea34);}(_0xcd3d,0x1f1));var _0xdcd3=function(_0xd818dd,_0x2a4dbe){_0xd818dd=_0xd818dd-0x0;var _0x2d43b8=_0xcd3d[_0xd818dd];return _0x2d43b8;};'use strict';var util=require(_0xdcd3('0x0'));var _=require(_0xdcd3('0x1'));var moment=require(_0xdcd3('0x2'));function getSeconds(_0x5ce431,_0x36cf0f){var _0x2478ac=moment(_0x5ce431)[_0xdcd3('0x3')](0x0);var _0x426228=moment(_0x36cf0f)[_0xdcd3('0x3')](0x0);return _0x2478ac[_0xdcd3('0x4')](_0x426228,'seconds');}function QueueCallerAbandon(_0x5629bd,_0xefb25){this[_0xdcd3('0x5')]=_0x5629bd[_0xdcd3('0x5')];this[_0xdcd3('0x6')]=_0x5629bd['type'];this[_0xdcd3('0x7')]=_0x5629bd[_0xdcd3('0x6')]===_0xdcd3('0x8')?_0xdcd3('0x9'):_0x5629bd[_0xdcd3('0x6')];this[_0xdcd3('0xa')]=_0x5629bd['countbusyretry'];this[_0xdcd3('0xb')]=_0x5629bd[_0xdcd3('0xb')];this[_0xdcd3('0xc')]=_0x5629bd['countnoanswerretry'];this[_0xdcd3('0xd')]=_0x5629bd[_0xdcd3('0xa')]+_0x5629bd[_0xdcd3('0xb')]+_0x5629bd[_0xdcd3('0xc')]+_0x5629bd[_0xdcd3('0xe')]+_0x5629bd[_0xdcd3('0xf')]+_0x5629bd[_0xdcd3('0x10')]+_0x5629bd[_0xdcd3('0x11')]+_0x5629bd[_0xdcd3('0x12')];this['countnosuchnumberretry']=_0x5629bd[_0xdcd3('0xe')];this[_0xdcd3('0xf')]=_0x5629bd['countdropretry'];this['countabandonedretry']=_0x5629bd[_0xdcd3('0x10')];this['countmachineretry']=_0x5629bd[_0xdcd3('0x11')];this[_0xdcd3('0x12')]=_0x5629bd[_0xdcd3('0x12')];this[_0xdcd3('0x13')]=_0xefb25[_0xdcd3('0x13')];this['calleridname']=_0x5629bd[_0xdcd3('0x14')];this[_0xdcd3('0x15')]=_0x5629bd['number'];this[_0xdcd3('0x16')]=_0x5629bd['starttime'];this[_0xdcd3('0x17')]=_0x5629bd['responsetime'];this[_0xdcd3('0x18')]=_0x5629bd[_0xdcd3('0x18')];this[_0xdcd3('0x19')]=this[_0xdcd3('0x18')];this[_0xdcd3('0x1a')]=getSeconds(_0x5629bd['responsetime'],_0x5629bd[_0xdcd3('0x16')]);this['holdtime']=getSeconds(this[_0xdcd3('0x18')],_0x5629bd['responsetime']);this['talktime']=0x0;this[_0xdcd3('0x9')]=_0xefb25[_0xdcd3('0x9')];this[_0xdcd3('0x1b')]=_0xefb25[_0xdcd3('0x1c')];this[_0xdcd3('0x1d')]=_0xefb25[_0xdcd3('0x1d')];this[_0xdcd3('0x1e')]=_0x5629bd['callback'];this['callbackuniqueid']=_0x5629bd[_0xdcd3('0x1f')];this[_0xdcd3('0x20')]=_0x5629bd[_0xdcd3('0x20')];this[_0xdcd3('0x21')]=_0x5629bd[_0xdcd3('0x21')];this[_0xdcd3('0x22')]=_0x5629bd['ContactId'];this[_0xdcd3('0x23')]=_0x5629bd[_0xdcd3('0x23')];this[_0xdcd3('0x24')]=_0x5629bd[_0xdcd3('0x24')];this[_0xdcd3('0x25')]=_0x5629bd['VoiceQueueId'];this['CampaignId']=_0x5629bd[_0xdcd3('0x26')];this[_0xdcd3('0x27')]=_0x5629bd[_0xdcd3('0x27')]||'';this['originatecalleridname']=_0x5629bd[_0xdcd3('0x28')]||'';}module[_0xdcd3('0x29')]=QueueCallerAbandon;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0x4f9f19,_0x564716){var _0x350ed7=function(_0x420f5f){while(--_0x420f5f){_0x4f9f19['push'](_0x4f9f19['shift']());}};_0x350ed7(++_0x564716);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0xa9e0[_0x6131cd];return _0x47e916;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
+var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0x304615,_0x292d24){var _0xeb5b56=function(_0x3159d4){while(--_0x3159d4){_0x304615['push'](_0x304615['shift']());}};_0xeb5b56(++_0x292d24);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b561d,_0x422b7c){_0x5b561d=_0x5b561d-0x0;var _0x431060=_0xa9e0[_0x5b561d];return _0x431060;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b5d=['SENDING\x20FAILED','send','execOriginate','Fax\x20received','[Fax][execOriginate][failure]','Fax\x20failed','checkAfterSend','FaxAccountId','Trunk','isValid','Trunk\x20Reachable','format','execute','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','isTrunkReachable','isNil','active','SIP/%s','reachable','unmonitored','checkTrunk','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','Empty\x20Fax','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','Is\x20Valid','exports','util','moment','path','tiff2pdf','../../../config/logger','fax','../ami','./rpcDb','./action','../rpc/faxMessage','channels','faxAccounts','trunks','actions','newchannel','syncNewchannel','bind','newstate','syncNewState','newexten','syncNewExten','faxstatus','syncFaxStatus','receivefax','syncHangup','originateresponse','prototype','context','from-voip-provider','exten','localstationid','uniqueid','channel','name','info','syncVarSet','variable','hasOwnProperty','channelstate','channelstatedesc','value','operation','status','syncReceiveFax','remotestationid','pagestransferred','resolution','transferrate','filename','calleridnum','\x20result\x20conversion\x20file\x20','message','parse','.pdf','application/pdf','then','notify','catch','error','stringify','\x20receiveFax\x20','syncOriginateResponse','merge','pick','response','reason','update','SENDING\x20FAILED\x20','[Fax][Message][Error][Updated]','logger','updateStatus','AttachmentId','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','[Fax][Message][NoUpdate2]','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','faxstatusstring','SENDING\x20FAILED:\x20'];(function(_0x1e15b4,_0x27e1d1){var _0x4d6d0a=function(_0x4fe1a9){while(--_0x4fe1a9){_0x1e15b4['push'](_0x1e15b4['shift']());}};_0x4d6d0a(++_0x27e1d1);}(_0x2b5d,0x177));var _0xd2b5=function(_0x5b64ef,_0x3fb4a3){_0x5b64ef=_0x5b64ef-0x0;var _0x54137d=_0x2b5d[_0x5b64ef];return _0x54137d;};'use strict';var util=require(_0xd2b5('0x0'));var _=require('lodash');var BPromise=require('bluebird');var uuid=require('uuid');var moment=require(_0xd2b5('0x1'));var path=require(_0xd2b5('0x2'));var tiff2pdf=require(_0xd2b5('0x3'));var gs=require('./util/gs');var logger=require(_0xd2b5('0x4'))(_0xd2b5('0x5'));var ami=require(_0xd2b5('0x6'));var rpcDb=require(_0xd2b5('0x7'));var Channel=require('./channel');var ut=require('./util/util');var Action=require(_0xd2b5('0x8'));var faxAccount=require('../rpc/faxAccount');var attachment=require('../rpc/attachment');var faxMessage=require(_0xd2b5('0x9'));function Fax(_0x5b35f9){this[_0xd2b5('0xa')]={};this[_0xd2b5('0xb')]=_0x5b35f9['faxAccounts'];this[_0xd2b5('0xc')]=_0x5b35f9[_0xd2b5('0xc')];this[_0xd2b5('0xd')]={};ami['on'](_0xd2b5('0xe'),this[_0xd2b5('0xf')][_0xd2b5('0x10')](this));ami['on']('varset',this['syncVarSet'][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x11'),this[_0xd2b5('0x12')][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x13'),this[_0xd2b5('0x14')][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x15'),this[_0xd2b5('0x16')]['bind'](this));ami['on'](_0xd2b5('0x17'),this['syncReceiveFax'][_0xd2b5('0x10')](this));ami['on']('hangup',this[_0xd2b5('0x18')][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x19'),this['syncOriginateResponse'][_0xd2b5('0x10')](this));}Fax[_0xd2b5('0x1a')]['syncNewchannel']=function(_0x3249c5){if(_0x3249c5[_0xd2b5('0x1b')]===_0xd2b5('0x1c')){for(var _0x5a2f48 in this[_0xd2b5('0xb')]){if(this[_0xd2b5('0xb')]['hasOwnProperty'](_0x5a2f48)){if(_0x3249c5[_0xd2b5('0x1d')]===this['faxAccounts'][_0x5a2f48][_0xd2b5('0x1e')]){this[_0xd2b5('0xa')][_0x3249c5[_0xd2b5('0x1f')]]={};this[_0xd2b5('0xa')][_0x3249c5[_0xd2b5('0x1f')]][_0xd2b5('0x20')]=_0x3249c5[_0xd2b5('0x20')];this['channels'][_0x3249c5[_0xd2b5('0x1f')]]['id']=this[_0xd2b5('0xb')][_0x5a2f48]['id'];this[_0xd2b5('0xa')][_0x3249c5['uniqueid']][_0xd2b5('0x21')]=this[_0xd2b5('0xb')][_0x5a2f48][_0xd2b5('0x21')];logger['info'](_0x3249c5[_0xd2b5('0x1f')],'\x20syncNewchannel\x20');}}}}if(this[_0xd2b5('0xd')][_0x3249c5['uniqueid']]){this['channels'][_0x3249c5[_0xd2b5('0x1f')]]={};this[_0xd2b5('0xa')][_0x3249c5['uniqueid']][_0xd2b5('0x20')]=_0x3249c5['channel'];logger[_0xd2b5('0x22')](_0x3249c5[_0xd2b5('0x1f')],'\x20syncNewchannel\x20');}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x23')]=function(_0x555458){if(this[_0xd2b5('0xa')][_0x555458[_0xd2b5('0x1f')]]){for(var _0x33f3fd in _0x555458[_0xd2b5('0x24')]){if(_0x555458[_0xd2b5('0x24')][_0xd2b5('0x25')](_0x33f3fd)){this[_0xd2b5('0xa')][_0x555458[_0xd2b5('0x1f')]][_0x33f3fd]=_0x555458['value'];}}}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x12')]=function(_0x533ea1){if(this[_0xd2b5('0xa')][_0x533ea1['uniqueid']]){this[_0xd2b5('0xa')][_0x533ea1[_0xd2b5('0x1f')]]['channelstate']=_0x533ea1[_0xd2b5('0x26')];this['channels'][_0x533ea1[_0xd2b5('0x1f')]][_0xd2b5('0x27')]=_0x533ea1['channelstatedesc'];}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x14')]=function(_0x62f303){if(this['channels'][_0x62f303[_0xd2b5('0x1f')]]){for(var _0x70adf1 in _0x62f303['variable']){if(_0x62f303[_0xd2b5('0x24')][_0xd2b5('0x25')](_0x70adf1)){this[_0xd2b5('0xa')][_0x62f303[_0xd2b5('0x1f')]][_0x70adf1]=_0x62f303[_0xd2b5('0x28')];}}}};Fax[_0xd2b5('0x1a')]['syncFaxStatus']=function(_0x1527a2){if(this[_0xd2b5('0xa')][_0x1527a2[_0xd2b5('0x1f')]]){this[_0xd2b5('0xa')][_0x1527a2['uniqueid']][_0xd2b5('0x29')]=_0x1527a2[_0xd2b5('0x29')];this[_0xd2b5('0xa')][_0x1527a2[_0xd2b5('0x1f')]]['status']=_0x1527a2[_0xd2b5('0x2a')];this[_0xd2b5('0xa')][_0x1527a2['uniqueid']]['localstationid']=_0x1527a2[_0xd2b5('0x1e')];this[_0xd2b5('0xa')][_0x1527a2[_0xd2b5('0x1f')]]['filename']=_0x1527a2['filename'];logger['info'](_0x1527a2[_0xd2b5('0x1f')],'\x20syncFaxStatus\x20');}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x2b')]=function(_0x2eb137){var _0x232aff=this;if(this['channels'][_0x2eb137[_0xd2b5('0x1f')]]){var _0x5a66c8=this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['id'];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]][_0xd2b5('0x2c')]=_0x2eb137[_0xd2b5('0x2c')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['pagestransferred']=_0x2eb137[_0xd2b5('0x2d')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['localstationid']=_0x2eb137['localstationid'];this['channels'][_0x2eb137['uniqueid']]['resolution']=_0x2eb137[_0xd2b5('0x2e')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['transferrate']=_0x2eb137[_0xd2b5('0x2f')];this['channels'][_0x2eb137['uniqueid']]['filename']=_0x2eb137[_0xd2b5('0x30')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['calleridnum']=_0x2eb137[_0xd2b5('0x31')];if(this[_0xd2b5('0xa')][_0x2eb137['uniqueid']]['pagestransferred']>0x0){tiff2pdf(_0x2eb137[_0xd2b5('0x30')],'/var/opt/motion2/server/files/attachments/',function(_0x41be23){logger['info'](_0x2eb137[_0xd2b5('0x1f')],_0xd2b5('0x32'),_0x41be23[_0xd2b5('0x33')]);attachment['create']({'name':path[_0xd2b5('0x34')](_0x2eb137[_0xd2b5('0x30')])['name'],'basename':path[_0xd2b5('0x34')](_0x2eb137['filename'])[_0xd2b5('0x21')]+_0xd2b5('0x35'),'type':_0xd2b5('0x36')})[_0xd2b5('0x37')](function(_0xd9ea25){faxAccount[_0xd2b5('0x38')](_0x5a66c8,{'from':_0x2eb137['calleridnum'],'mapKey':_0xd2b5('0x5'),'body':path[_0xd2b5('0x34')](_0x2eb137[_0xd2b5('0x30')])[_0xd2b5('0x21')]+_0xd2b5('0x35'),'AttachmentId':_0xd9ea25['id']})[_0xd2b5('0x39')](function(_0x42eae3){logger[_0xd2b5('0x3a')](_0x2eb137[_0xd2b5('0x1f')],'\x20notify\x20',JSON[_0xd2b5('0x3b')](_0x42eae3));});})[_0xd2b5('0x39')](function(_0x3b9487){logger[_0xd2b5('0x3a')](_0x2eb137['uniqueid'],_0xd2b5('0x3c'),JSON['stringify'](_0x3b9487));});});}logger[_0xd2b5('0x22')](_0x2eb137[_0xd2b5('0x1f')],_0xd2b5('0x3c'));}};Fax['prototype'][_0xd2b5('0x3d')]=function(_0x3329b7){if(this[_0xd2b5('0xd')][_0x3329b7[_0xd2b5('0x1f')]]){_[_0xd2b5('0x3e')](this[_0xd2b5('0xa')][_0x3329b7[_0xd2b5('0x1f')]],_[_0xd2b5('0x3f')](_0x3329b7,[_0xd2b5('0x40'),_0xd2b5('0x41')]));}};function updateStatus(_0xfb49b7){if(_0xfb49b7['AttachmentId']){faxMessage[_0xd2b5('0x42')](_0xfb49b7['AttachmentId'],{'failMessage':_0xd2b5('0x43')})['then'](function(_0x39df53){ut['logger'](_0xd2b5('0x44'),_0x39df53);})[_0xd2b5('0x39')](function(_0x15f380){ut[_0xd2b5('0x45')]('[Fax][Message][Error][NoUpdate1]',_0x15f380);});}else{ut['logger']('[Fax][Message][Error][NoUpdate2]');}}Fax[_0xd2b5('0x1a')][_0xd2b5('0x46')]=function(_0xcada4f,_0x5177e8,_0x9955bd){var _0x574cd0=this;var _0x89f35b={};if(_0x5177e8){_0x89f35b={'read':_0x5177e8};}else{_0x89f35b={'failMessage':_0x9955bd};}if(this['actions'][_0xcada4f]['AttachmentId']){faxMessage['update'](this[_0xd2b5('0xd')][_0xcada4f][_0xd2b5('0x47')],_0x89f35b)[_0xd2b5('0x37')](function(_0x50f499){ut[_0xd2b5('0x45')](_0xd2b5('0x48'),_0x50f499);})[_0xd2b5('0x39')](function(_0x487b59){ut[_0xd2b5('0x45')](_0xd2b5('0x49'),_0x487b59);})[_0xd2b5('0x4a')](function(){delete _0x574cd0[_0xd2b5('0xa')][_0xcada4f];delete _0x574cd0['actions'][_0xcada4f];});}else{ut[_0xd2b5('0x45')](_0xd2b5('0x4b'));delete this['channels'][_0xcada4f];delete this[_0xd2b5('0xd')][_0xcada4f];}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x18')]=function(_0x31ad67){var _0x6d2672=this;if(this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]]){if(this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]){this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]]['id']=this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]['id'];this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x21')]=this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]['name'];}logger[_0xd2b5('0x22')](_0x31ad67[_0xd2b5('0x1f')],this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]?_0xd2b5('0x4c'):_0xd2b5('0x4d'),JSON[_0xd2b5('0x3b')](this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]]));if(this[_0xd2b5('0xd')][_0x31ad67['uniqueid']]){if(this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x4e')]>0x0&&this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x15')]==='SUCCESS'){this['updateStatus'](_0x31ad67[_0xd2b5('0x1f')],!![]);}else{this[_0xd2b5('0x46')](_0x31ad67[_0xd2b5('0x1f')],![],this['channels'][_0x31ad67['uniqueid']][_0xd2b5('0x4f')]?_0xd2b5('0x50')+this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x4f')]:_0xd2b5('0x51'));}}}};Fax['prototype'][_0xd2b5('0x52')]=function(_0x5f22e2){var _0x2080a6=this;return new BPromise(function(_0x4c2e25,_0x3332cf){_0x2080a6[_0xd2b5('0x53')](_0x5f22e2,_0x2080a6['faxAccounts'][_0x5f22e2['FaxAccountId']])['then'](function(_0xc6478f){ut[_0xd2b5('0x45')]('[Fax][execOriginate][success]',_0xc6478f);_0x4c2e25(ut['message'](_0xd2b5('0x54')));})[_0xd2b5('0x39')](function(_0x49f5ac){ut[_0xd2b5('0x45')](_0xd2b5('0x55'),_0x49f5ac);updateStatus(_0x5f22e2);_0x3332cf(ut[_0xd2b5('0x33')](_0xd2b5('0x56')));});});};Fax[_0xd2b5('0x1a')][_0xd2b5('0x57')]=function(_0x2ce635){var _0x81bd9b=this;return new BPromise(function(_0x5bb18e,_0xc0193a){var _0x3749aa=_0x81bd9b['checkTrunk'](_0x81bd9b[_0xd2b5('0xb')][_0x2ce635[_0xd2b5('0x58')]][_0xd2b5('0x59')],_0x2ce635);if(_0x3749aa[_0xd2b5('0x5a')]){_0x5bb18e(ut[_0xd2b5('0x33')](_0xd2b5('0x5b')));}else{_0xc0193a(ut[_0xd2b5('0x33')](_0x3749aa[_0xd2b5('0x33')]));}});};function originate(_0x22782f,_0x286dd0,_0x4b27a0){return new BPromise(function(_0x5d2240,_0x303c72){if(_0x4b27a0){var _0x20bd4e=util[_0xd2b5('0x5c')]('gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit',path[_0xd2b5('0x34')](_0x22782f[_0xd2b5('0x2')])[_0xd2b5('0x21')],_0x22782f[_0xd2b5('0x2')]);gs[_0xd2b5('0x5d')](_0x20bd4e)[_0xd2b5('0x37')](function(){_0x22782f[_0xd2b5('0x2')]=util[_0xd2b5('0x5c')]('%s/%s.tif',path['parse'](_0x22782f[_0xd2b5('0x2')])[_0xd2b5('0x5e')],path[_0xd2b5('0x34')](_0x22782f[_0xd2b5('0x2')])[_0xd2b5('0x21')]);_0x286dd0[_0xd2b5('0x5f')]=_0x22782f[_0xd2b5('0x2')];ut[_0xd2b5('0x45')](_0xd2b5('0x60'),'');ami[_0xd2b5('0x61')](ut[_0xd2b5('0x62')](_0x22782f,_0x286dd0))[_0xd2b5('0x37')](function(_0x2c2867){_0x5d2240(_0x2c2867);})[_0xd2b5('0x39')](function(_0x4378e5){_0x303c72(_0x4378e5);});})[_0xd2b5('0x39')](function(_0x48685b){_0x303c72(_0x48685b);});}else{ami[_0xd2b5('0x61')](ut[_0xd2b5('0x62')](_0x22782f,_0x286dd0))['then'](function(_0x3f63a){_0x5d2240(_0x3f63a);})[_0xd2b5('0x39')](function(_0x4bb827){_0x303c72(_0x4bb827);});}});}Fax[_0xd2b5('0x1a')][_0xd2b5('0x53')]=function(_0x26562a,_0x43413d){var _0x1ba1ed=this;return new BPromise(function(_0x3823f1,_0x30c260){var _0x579c4b=uuid['v4']();var _0x5e2098=ut[_0xd2b5('0x63')](_0x26562a,_0x43413d);_0x1ba1ed[_0xd2b5('0xd')][_0x579c4b]=new Action(_0x579c4b,_0x43413d,_0x26562a);var _0x2d3698=_0x1ba1ed['actions'][_0x579c4b];if(path[_0xd2b5('0x34')](_0x26562a[_0xd2b5('0x2')])['ext']===_0xd2b5('0x35')){originate(_0x2d3698,_0x5e2098,!![])[_0xd2b5('0x37')](function(_0x374122){_0x3823f1(_0x374122);})[_0xd2b5('0x39')](function(_0x279967){_0x30c260(_0x279967);});}else{originate(_0x2d3698,_0x5e2098,![])[_0xd2b5('0x37')](function(_0x545c6f){_0x3823f1(_0x545c6f);})[_0xd2b5('0x39')](function(_0x19b4a6){_0x30c260(_0x19b4a6);});}});};Fax[_0xd2b5('0x1a')][_0xd2b5('0x64')]=function(_0x860483){return!_[_0xd2b5('0x65')](_0x860483)&&!_[_0xd2b5('0x65')](_0x860483[_0xd2b5('0x21')])&&!_['isNil'](_0x860483[_0xd2b5('0x66')])&&_0x860483[_0xd2b5('0x66')]&&!_['isNil'](this[_0xd2b5('0xc')][util[_0xd2b5('0x5c')](_0xd2b5('0x67'),_0x860483[_0xd2b5('0x21')])])&&!_[_0xd2b5('0x65')](this[_0xd2b5('0xc')][util['format'](_0xd2b5('0x67'),_0x860483['name'])][_0xd2b5('0x2a')])&&(this[_0xd2b5('0xc')][util[_0xd2b5('0x5c')](_0xd2b5('0x67'),_0x860483[_0xd2b5('0x21')])][_0xd2b5('0x2a')]===_0xd2b5('0x68')||this[_0xd2b5('0xc')][util[_0xd2b5('0x5c')](_0xd2b5('0x67'),_0x860483[_0xd2b5('0x21')])]['status']===_0xd2b5('0x69'));};Fax[_0xd2b5('0x1a')][_0xd2b5('0x6a')]=function(_0x1d3634,_0x5e5b00){if(!this[_0xd2b5('0x64')](_0x1d3634)){ut['logger']('[Fax][checkTrunk][Trunk\x20not\x20work]',_[_0xd2b5('0x65')](_0x1d3634)?'':_0x1d3634['name']+_0xd2b5('0x6b'));return{'isValid':![],'message':_0xd2b5('0x6c')};}if(_['isNil'](_0x5e5b00[_0xd2b5('0x5')])){ut['logger']('[Fax][checkTrunk][Empty\x20Fax]',JSON['stringify'](_0x5e5b00));return{'isValid':![],'message':_0xd2b5('0x6d')};}if(_[_0xd2b5('0x65')](_0x5e5b00[_0xd2b5('0x2')])){ut['logger'](_0xd2b5('0x6e'),JSON['stringify'](_0x5e5b00));return{'isValid':![],'message':_0xd2b5('0x6f')};}return{'isValid':!![],'message':_0xd2b5('0x70')};};module[_0xd2b5('0x71')]=Fax;
\ No newline at end of file
+var _0x812c=['updateStatus','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','[Fax][Message][NoUpdate2]','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','SUCCESS','SENDING\x20FAILED:\x20','faxstatusstring','send','execOriginate','FaxAccountId','[Fax][execOriginate][success]','[Fax][execOriginate][failure]','checkAfterSend','checkTrunk','Trunk','isValid','Trunk\x20Reachable','gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit','execute','format','%s/%s.tif','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','isTrunkReachable','isNil','active','SIP/%s','reachable','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','Empty\x20Fax','exports','util','lodash','bluebird','moment','path','./util/gs','../../../config/logger','fax','../ami','./channel','./util/util','./action','../rpc/attachment','channels','faxAccounts','trunks','actions','newchannel','bind','varset','syncVarSet','syncNewState','newexten','syncNewExten','faxstatus','syncFaxStatus','receivefax','syncReceiveFax','hangup','syncHangup','originateresponse','prototype','context','from-voip-provider','exten','localstationid','uniqueid','channel','name','info','\x20syncNewchannel\x20','variable','value','channelstate','channelstatedesc','hasOwnProperty','operation','status','filename','\x20syncFaxStatus\x20','remotestationid','pagestransferred','resolution','transferrate','calleridnum','/var/opt/motion2/server/files/attachments/','message','create','parse','.pdf','application/pdf','then','notify','catch','error','\x20notify\x20','stringify','\x20receiveFax\x20','syncOriginateResponse','merge','response','reason','AttachmentId','update','logger','[Fax][Message][Error][Updated]','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]'];(function(_0x502f16,_0x40dd18){var _0xb2b447=function(_0x4936b){while(--_0x4936b){_0x502f16['push'](_0x502f16['shift']());}};_0xb2b447(++_0x40dd18);}(_0x812c,0x18a));var _0xc812=function(_0x14bbf2,_0x1f1bc9){_0x14bbf2=_0x14bbf2-0x0;var _0xb1ee82=_0x812c[_0x14bbf2];return _0xb1ee82;};'use strict';var util=require(_0xc812('0x0'));var _=require(_0xc812('0x1'));var BPromise=require(_0xc812('0x2'));var uuid=require('uuid');var moment=require(_0xc812('0x3'));var path=require(_0xc812('0x4'));var tiff2pdf=require('tiff2pdf');var gs=require(_0xc812('0x5'));var logger=require(_0xc812('0x6'))(_0xc812('0x7'));var ami=require(_0xc812('0x8'));var rpcDb=require('./rpcDb');var Channel=require(_0xc812('0x9'));var ut=require(_0xc812('0xa'));var Action=require(_0xc812('0xb'));var faxAccount=require('../rpc/faxAccount');var attachment=require(_0xc812('0xc'));var faxMessage=require('../rpc/faxMessage');function Fax(_0x494fc8){this[_0xc812('0xd')]={};this[_0xc812('0xe')]=_0x494fc8['faxAccounts'];this[_0xc812('0xf')]=_0x494fc8['trunks'];this[_0xc812('0x10')]={};ami['on'](_0xc812('0x11'),this['syncNewchannel'][_0xc812('0x12')](this));ami['on'](_0xc812('0x13'),this[_0xc812('0x14')][_0xc812('0x12')](this));ami['on']('newstate',this[_0xc812('0x15')][_0xc812('0x12')](this));ami['on'](_0xc812('0x16'),this[_0xc812('0x17')][_0xc812('0x12')](this));ami['on'](_0xc812('0x18'),this[_0xc812('0x19')][_0xc812('0x12')](this));ami['on'](_0xc812('0x1a'),this[_0xc812('0x1b')][_0xc812('0x12')](this));ami['on'](_0xc812('0x1c'),this[_0xc812('0x1d')]['bind'](this));ami['on'](_0xc812('0x1e'),this['syncOriginateResponse']['bind'](this));}Fax[_0xc812('0x1f')]['syncNewchannel']=function(_0x1d7723){if(_0x1d7723[_0xc812('0x20')]===_0xc812('0x21')){for(var _0x63fc29 in this['faxAccounts']){if(this['faxAccounts']['hasOwnProperty'](_0x63fc29)){if(_0x1d7723[_0xc812('0x22')]===this[_0xc812('0xe')][_0x63fc29][_0xc812('0x23')]){this[_0xc812('0xd')][_0x1d7723[_0xc812('0x24')]]={};this[_0xc812('0xd')][_0x1d7723[_0xc812('0x24')]]['channel']=_0x1d7723[_0xc812('0x25')];this['channels'][_0x1d7723[_0xc812('0x24')]]['id']=this['faxAccounts'][_0x63fc29]['id'];this[_0xc812('0xd')][_0x1d7723[_0xc812('0x24')]][_0xc812('0x26')]=this[_0xc812('0xe')][_0x63fc29][_0xc812('0x26')];logger[_0xc812('0x27')](_0x1d7723['uniqueid'],'\x20syncNewchannel\x20');}}}}if(this[_0xc812('0x10')][_0x1d7723[_0xc812('0x24')]]){this[_0xc812('0xd')][_0x1d7723[_0xc812('0x24')]]={};this[_0xc812('0xd')][_0x1d7723[_0xc812('0x24')]]['channel']=_0x1d7723[_0xc812('0x25')];logger[_0xc812('0x27')](_0x1d7723[_0xc812('0x24')],_0xc812('0x28'));}};Fax['prototype'][_0xc812('0x14')]=function(_0x371732){if(this[_0xc812('0xd')][_0x371732[_0xc812('0x24')]]){for(var _0x427ba3 in _0x371732['variable']){if(_0x371732[_0xc812('0x29')]['hasOwnProperty'](_0x427ba3)){this['channels'][_0x371732[_0xc812('0x24')]][_0x427ba3]=_0x371732[_0xc812('0x2a')];}}}};Fax[_0xc812('0x1f')][_0xc812('0x15')]=function(_0x3ae9f9){if(this[_0xc812('0xd')][_0x3ae9f9[_0xc812('0x24')]]){this[_0xc812('0xd')][_0x3ae9f9['uniqueid']][_0xc812('0x2b')]=_0x3ae9f9[_0xc812('0x2b')];this['channels'][_0x3ae9f9[_0xc812('0x24')]][_0xc812('0x2c')]=_0x3ae9f9[_0xc812('0x2c')];}};Fax[_0xc812('0x1f')][_0xc812('0x17')]=function(_0x3ad7d9){if(this[_0xc812('0xd')][_0x3ad7d9[_0xc812('0x24')]]){for(var _0x5bc2fe in _0x3ad7d9[_0xc812('0x29')]){if(_0x3ad7d9[_0xc812('0x29')][_0xc812('0x2d')](_0x5bc2fe)){this['channels'][_0x3ad7d9[_0xc812('0x24')]][_0x5bc2fe]=_0x3ad7d9['value'];}}}};Fax[_0xc812('0x1f')][_0xc812('0x19')]=function(_0x31cb71){if(this['channels'][_0x31cb71[_0xc812('0x24')]]){this['channels'][_0x31cb71[_0xc812('0x24')]][_0xc812('0x2e')]=_0x31cb71['operation'];this[_0xc812('0xd')][_0x31cb71['uniqueid']][_0xc812('0x2f')]=_0x31cb71['status'];this[_0xc812('0xd')][_0x31cb71[_0xc812('0x24')]]['localstationid']=_0x31cb71['localstationid'];this[_0xc812('0xd')][_0x31cb71[_0xc812('0x24')]][_0xc812('0x30')]=_0x31cb71[_0xc812('0x30')];logger['info'](_0x31cb71[_0xc812('0x24')],_0xc812('0x31'));}};Fax[_0xc812('0x1f')][_0xc812('0x1b')]=function(_0x32e468){var _0x182615=this;if(this[_0xc812('0xd')][_0x32e468['uniqueid']]){var _0x4cd2cf=this[_0xc812('0xd')][_0x32e468[_0xc812('0x24')]]['id'];this['channels'][_0x32e468['uniqueid']][_0xc812('0x32')]=_0x32e468[_0xc812('0x32')];this['channels'][_0x32e468[_0xc812('0x24')]]['pagestransferred']=_0x32e468[_0xc812('0x33')];this[_0xc812('0xd')][_0x32e468[_0xc812('0x24')]]['localstationid']=_0x32e468['localstationid'];this[_0xc812('0xd')][_0x32e468[_0xc812('0x24')]][_0xc812('0x34')]=_0x32e468[_0xc812('0x34')];this[_0xc812('0xd')][_0x32e468[_0xc812('0x24')]]['transferrate']=_0x32e468[_0xc812('0x35')];this[_0xc812('0xd')][_0x32e468[_0xc812('0x24')]][_0xc812('0x30')]=_0x32e468[_0xc812('0x30')];this[_0xc812('0xd')][_0x32e468[_0xc812('0x24')]][_0xc812('0x36')]=_0x32e468[_0xc812('0x36')];if(this['channels'][_0x32e468[_0xc812('0x24')]][_0xc812('0x33')]>0x0){tiff2pdf(_0x32e468[_0xc812('0x30')],_0xc812('0x37'),function(_0x3e255a){logger[_0xc812('0x27')](_0x32e468['uniqueid'],'\x20result\x20conversion\x20file\x20',_0x3e255a[_0xc812('0x38')]);attachment[_0xc812('0x39')]({'name':path[_0xc812('0x3a')](_0x32e468[_0xc812('0x30')])[_0xc812('0x26')],'basename':path['parse'](_0x32e468[_0xc812('0x30')])[_0xc812('0x26')]+_0xc812('0x3b'),'type':_0xc812('0x3c')})[_0xc812('0x3d')](function(_0x486b5e){faxAccount[_0xc812('0x3e')](_0x4cd2cf,{'from':_0x32e468['calleridnum'],'mapKey':_0xc812('0x7'),'body':path[_0xc812('0x3a')](_0x32e468['filename'])[_0xc812('0x26')]+_0xc812('0x3b'),'AttachmentId':_0x486b5e['id']})[_0xc812('0x3f')](function(_0x157474){logger[_0xc812('0x40')](_0x32e468[_0xc812('0x24')],_0xc812('0x41'),JSON[_0xc812('0x42')](_0x157474));});})[_0xc812('0x3f')](function(_0x59a759){logger[_0xc812('0x40')](_0x32e468[_0xc812('0x24')],_0xc812('0x43'),JSON['stringify'](_0x59a759));});});}logger[_0xc812('0x27')](_0x32e468[_0xc812('0x24')],'\x20receiveFax\x20');}};Fax[_0xc812('0x1f')][_0xc812('0x44')]=function(_0x286ec9){if(this[_0xc812('0x10')][_0x286ec9[_0xc812('0x24')]]){_[_0xc812('0x45')](this[_0xc812('0xd')][_0x286ec9[_0xc812('0x24')]],_['pick'](_0x286ec9,[_0xc812('0x46'),_0xc812('0x47')]));}};function updateStatus(_0xe8fa4c){if(_0xe8fa4c[_0xc812('0x48')]){faxMessage[_0xc812('0x49')](_0xe8fa4c[_0xc812('0x48')],{'failMessage':'SENDING\x20FAILED\x20'})[_0xc812('0x3d')](function(_0x53e73c){ut[_0xc812('0x4a')](_0xc812('0x4b'),_0x53e73c);})['catch'](function(_0x23b745){ut['logger'](_0xc812('0x4c'),_0x23b745);});}else{ut[_0xc812('0x4a')](_0xc812('0x4d'));}}Fax[_0xc812('0x1f')][_0xc812('0x4e')]=function(_0x1e700d,_0x7ad828,_0x2d3609){var _0xaa430a=this;var _0x36acfe={};if(_0x7ad828){_0x36acfe={'read':_0x7ad828};}else{_0x36acfe={'failMessage':_0x2d3609};}if(this['actions'][_0x1e700d]['AttachmentId']){faxMessage[_0xc812('0x49')](this[_0xc812('0x10')][_0x1e700d][_0xc812('0x48')],_0x36acfe)[_0xc812('0x3d')](function(_0x2a0fb6){ut[_0xc812('0x4a')](_0xc812('0x4f'),_0x2a0fb6);})['catch'](function(_0x21e406){ut[_0xc812('0x4a')](_0xc812('0x50'),_0x21e406);})[_0xc812('0x51')](function(){delete _0xaa430a['channels'][_0x1e700d];delete _0xaa430a[_0xc812('0x10')][_0x1e700d];});}else{ut[_0xc812('0x4a')](_0xc812('0x52'));delete this['channels'][_0x1e700d];delete this[_0xc812('0x10')][_0x1e700d];}};Fax[_0xc812('0x1f')]['syncHangup']=function(_0x8197cb){var _0x2340e3=this;if(this[_0xc812('0xd')][_0x8197cb['uniqueid']]){if(this['actions'][_0x8197cb[_0xc812('0x24')]]){this[_0xc812('0xd')][_0x8197cb[_0xc812('0x24')]]['id']=this[_0xc812('0x10')][_0x8197cb[_0xc812('0x24')]]['id'];this[_0xc812('0xd')][_0x8197cb[_0xc812('0x24')]][_0xc812('0x26')]=this[_0xc812('0x10')][_0x8197cb[_0xc812('0x24')]][_0xc812('0x26')];}logger[_0xc812('0x27')](_0x8197cb[_0xc812('0x24')],this[_0xc812('0x10')][_0x8197cb[_0xc812('0x24')]]?_0xc812('0x53'):_0xc812('0x54'),JSON[_0xc812('0x42')](this[_0xc812('0xd')][_0x8197cb['uniqueid']]));if(this[_0xc812('0x10')][_0x8197cb[_0xc812('0x24')]]){if(this[_0xc812('0xd')][_0x8197cb['uniqueid']]['faxpages']>0x0&&this[_0xc812('0xd')][_0x8197cb['uniqueid']][_0xc812('0x18')]===_0xc812('0x55')){this[_0xc812('0x4e')](_0x8197cb[_0xc812('0x24')],!![]);}else{this[_0xc812('0x4e')](_0x8197cb[_0xc812('0x24')],![],this[_0xc812('0xd')][_0x8197cb[_0xc812('0x24')]]['faxstatusstring']?_0xc812('0x56')+this[_0xc812('0xd')][_0x8197cb[_0xc812('0x24')]][_0xc812('0x57')]:'SENDING\x20FAILED');}}}};Fax['prototype'][_0xc812('0x58')]=function(_0x114a61){var _0x659ecc=this;return new BPromise(function(_0x1d2022,_0x1c3971){_0x659ecc[_0xc812('0x59')](_0x114a61,_0x659ecc[_0xc812('0xe')][_0x114a61[_0xc812('0x5a')]])[_0xc812('0x3d')](function(_0x2aa33){ut[_0xc812('0x4a')](_0xc812('0x5b'),_0x2aa33);_0x1d2022(ut[_0xc812('0x38')]('Fax\x20received'));})[_0xc812('0x3f')](function(_0x5e3272){ut[_0xc812('0x4a')](_0xc812('0x5c'),_0x5e3272);updateStatus(_0x114a61);_0x1c3971(ut[_0xc812('0x38')]('Fax\x20failed'));});});};Fax[_0xc812('0x1f')][_0xc812('0x5d')]=function(_0x224d2f){var _0x2049d9=this;return new BPromise(function(_0x303cbf,_0x1969e2){var _0x384dcc=_0x2049d9[_0xc812('0x5e')](_0x2049d9[_0xc812('0xe')][_0x224d2f[_0xc812('0x5a')]][_0xc812('0x5f')],_0x224d2f);if(_0x384dcc[_0xc812('0x60')]){_0x303cbf(ut[_0xc812('0x38')](_0xc812('0x61')));}else{_0x1969e2(ut[_0xc812('0x38')](_0x384dcc[_0xc812('0x38')]));}});};function originate(_0xe6bd73,_0x383773,_0x3a9f96){return new BPromise(function(_0x14f8dd,_0x57d01b){if(_0x3a9f96){var _0x39aaae=util['format'](_0xc812('0x62'),path[_0xc812('0x3a')](_0xe6bd73['path'])[_0xc812('0x26')],_0xe6bd73['path']);gs[_0xc812('0x63')](_0x39aaae)['then'](function(){_0xe6bd73[_0xc812('0x4')]=util[_0xc812('0x64')](_0xc812('0x65'),path[_0xc812('0x3a')](_0xe6bd73[_0xc812('0x4')])[_0xc812('0x66')],path[_0xc812('0x3a')](_0xe6bd73[_0xc812('0x4')])[_0xc812('0x26')]);_0x383773[_0xc812('0x67')]=_0xe6bd73[_0xc812('0x4')];ut[_0xc812('0x4a')](_0xc812('0x68'),'');ami['Action'](ut['variablesAction'](_0xe6bd73,_0x383773))[_0xc812('0x3d')](function(_0x5998db){_0x14f8dd(_0x5998db);})[_0xc812('0x3f')](function(_0x8a4d87){_0x57d01b(_0x8a4d87);});})[_0xc812('0x3f')](function(_0x40d99f){_0x57d01b(_0x40d99f);});}else{ami[_0xc812('0x69')](ut[_0xc812('0x6a')](_0xe6bd73,_0x383773))['then'](function(_0x1a9d48){_0x14f8dd(_0x1a9d48);})[_0xc812('0x3f')](function(_0x1ce6a5){_0x57d01b(_0x1ce6a5);});}});}Fax['prototype']['execOriginate']=function(_0x6d0646,_0xb407e4){var _0x37ceb7=this;return new BPromise(function(_0x3aad76,_0x24c4d4){var _0x2d674c=uuid['v4']();var _0x24bca4=ut[_0xc812('0x6b')](_0x6d0646,_0xb407e4);_0x37ceb7[_0xc812('0x10')][_0x2d674c]=new Action(_0x2d674c,_0xb407e4,_0x6d0646);var _0x46aae6=_0x37ceb7[_0xc812('0x10')][_0x2d674c];if(path[_0xc812('0x3a')](_0x6d0646[_0xc812('0x4')])['ext']==='.pdf'){originate(_0x46aae6,_0x24bca4,!![])['then'](function(_0x4a83ad){_0x3aad76(_0x4a83ad);})['catch'](function(_0x1fa261){_0x24c4d4(_0x1fa261);});}else{originate(_0x46aae6,_0x24bca4,![])[_0xc812('0x3d')](function(_0x1d6cd1){_0x3aad76(_0x1d6cd1);})[_0xc812('0x3f')](function(_0x1f3dd5){_0x24c4d4(_0x1f3dd5);});}});};Fax[_0xc812('0x1f')][_0xc812('0x6c')]=function(_0xced72d){return!_[_0xc812('0x6d')](_0xced72d)&&!_['isNil'](_0xced72d[_0xc812('0x26')])&&!_[_0xc812('0x6d')](_0xced72d[_0xc812('0x6e')])&&_0xced72d[_0xc812('0x6e')]&&!_[_0xc812('0x6d')](this[_0xc812('0xf')][util[_0xc812('0x64')](_0xc812('0x6f'),_0xced72d[_0xc812('0x26')])])&&!_[_0xc812('0x6d')](this['trunks'][util['format'](_0xc812('0x6f'),_0xced72d[_0xc812('0x26')])]['status'])&&(this[_0xc812('0xf')][util[_0xc812('0x64')](_0xc812('0x6f'),_0xced72d[_0xc812('0x26')])][_0xc812('0x2f')]===_0xc812('0x70')||this[_0xc812('0xf')][util[_0xc812('0x64')](_0xc812('0x6f'),_0xced72d[_0xc812('0x26')])][_0xc812('0x2f')]==='unmonitored');};Fax[_0xc812('0x1f')][_0xc812('0x5e')]=function(_0x339a62,_0x70ab5a){if(!this[_0xc812('0x6c')](_0x339a62)){ut['logger'](_0xc812('0x71'),_[_0xc812('0x6d')](_0x339a62)?'':_0x339a62['name']+_0xc812('0x72'));return{'isValid':![],'message':_0xc812('0x73')};}if(_[_0xc812('0x6d')](_0x70ab5a[_0xc812('0x7')])){ut[_0xc812('0x4a')]('[Fax][checkTrunk][Empty\x20Fax]',JSON[_0xc812('0x42')](_0x70ab5a));return{'isValid':![],'message':_0xc812('0x74')};}if(_[_0xc812('0x6d')](_0x70ab5a['path'])){ut[_0xc812('0x4a')]('[Fax][checkTrunk][Empty\x20path]',JSON[_0xc812('0x42')](_0x70ab5a));return{'isValid':![],'message':'Empty\x20path'};}return{'isValid':!![],'message':'Is\x20Valid'};};module[_0xc812('0x75')]=Fax;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd078=['[Notify]\x20','bluebird','../../../config/logger','preview','lodash','inspect','resolve','then','notify','catch'];(function(_0x15ee01,_0x2f6495){var _0x12b4bf=function(_0xf07934){while(--_0xf07934){_0x15ee01['push'](_0x15ee01['shift']());}};_0x12b4bf(++_0x2f6495);}(_0xd078,0xe7));var _0x8d07=function(_0x3333bd,_0x23cf4c){_0x3333bd=_0x3333bd-0x0;var _0x5edb96=_0xd078[_0x3333bd];return _0x5edb96;};'use strict';var util=require('util');var BPromise=require(_0x8d07('0x0'));var logger=require(_0x8d07('0x1'))(_0x8d07('0x2'));var _=require(_0x8d07('0x3'));var faxAccount=require('../rpc/faxAccount');function loggerCatch(_0x3afee8){return function(_0xb04021){logger['error'](_0x3afee8,util[_0x8d07('0x4')](_0xb04021,{'showHidden':![],'depth':null}));};}exports['notify']=function(_0x89f92f,_0x4b7fca){return BPromise[_0x8d07('0x5')]()[_0x8d07('0x6')](faxAccount[_0x8d07('0x7')](_0x89f92f,_0x4b7fca))[_0x8d07('0x8')](loggerCatch(_0x8d07('0x9')));};
\ No newline at end of file
+var _0x8bb1=['util','bluebird','../../../config/logger','inspect','then','notify','catch','[Notify]\x20'];(function(_0x3aeec8,_0x2c1553){var _0x20da91=function(_0x2534a6){while(--_0x2534a6){_0x3aeec8['push'](_0x3aeec8['shift']());}};_0x20da91(++_0x2c1553);}(_0x8bb1,0xd0));var _0x18bb=function(_0x43031c,_0x4af984){_0x43031c=_0x43031c-0x0;var _0x1fd90f=_0x8bb1[_0x43031c];return _0x1fd90f;};'use strict';var util=require(_0x18bb('0x0'));var BPromise=require(_0x18bb('0x1'));var logger=require(_0x18bb('0x2'))('preview');var _=require('lodash');var faxAccount=require('../rpc/faxAccount');function loggerCatch(_0x31eb8b){return function(_0x5f417c){logger['error'](_0x31eb8b,util[_0x18bb('0x3')](_0x5f417c,{'showHidden':![],'depth':null}));};}exports['notify']=function(_0x2c2986,_0x19f32a){return BPromise['resolve']()[_0x18bb('0x4')](faxAccount[_0x18bb('0x5')](_0x2c2986,_0x19f32a))[_0x18bb('0x6')](loggerCatch(_0x18bb('0x7')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a08=['util','../../../../config/logger','fax','bluebird','exec','execute','info','Exec\x20gs','\x20Error\x20:'];(function(_0xf5112c,_0x4815ef){var _0x1de00f=function(_0x2019d3){while(--_0x2019d3){_0xf5112c['push'](_0xf5112c['shift']());}};_0x1de00f(++_0x4815ef);}(_0x8a08,0x117));var _0x88a0=function(_0x26989f,_0x4f14d3){_0x26989f=_0x26989f-0x0;var _0x4770dd=_0x8a08[_0x26989f];return _0x4770dd;};'use strict';var util=require(_0x88a0('0x0'));var logger=require(_0x88a0('0x1'))(_0x88a0('0x2'));var BPromise=require(_0x88a0('0x3'));var exec=require('child_process')[_0x88a0('0x4')];exports[_0x88a0('0x5')]=function(_0x598370){return new BPromise(function(_0xbac1ba,_0x41a1d2){exec(_0x598370,function(_0x5e046e,_0x100c7b,_0x15573f){logger[_0x88a0('0x6')](_0x88a0('0x7'),_0x100c7b);if(_0x5e046e){logger['info'](_0x88a0('0x7'),_0x88a0('0x8'),util['inspect'](_0x5e046e,{'showHidden':![],'depth':null}),_0x100c7b,_0x15573f);_0x41a1d2(_0x5e046e);}_0xbac1ba(_0x100c7b);});});};
\ No newline at end of file
+var _0x0fee=['info','Exec\x20gs','util','../../../../config/logger','fax','child_process','exec','execute'];(function(_0x44e904,_0x224df7){var _0x2640db=function(_0x18e9e7){while(--_0x18e9e7){_0x44e904['push'](_0x44e904['shift']());}};_0x2640db(++_0x224df7);}(_0x0fee,0x172));var _0xe0fe=function(_0x334bdb,_0x1d188e){_0x334bdb=_0x334bdb-0x0;var _0x520f1b=_0x0fee[_0x334bdb];return _0x520f1b;};'use strict';var util=require(_0xe0fe('0x0'));var logger=require(_0xe0fe('0x1'))(_0xe0fe('0x2'));var BPromise=require('bluebird');var exec=require(_0xe0fe('0x3'))[_0xe0fe('0x4')];exports[_0xe0fe('0x5')]=function(_0xa1ea0){return new BPromise(function(_0xb75da,_0x5bc1a4){exec(_0xa1ea0,function(_0x3ff928,_0x24bf9b,_0x3fb0ac){logger[_0xe0fe('0x6')](_0xe0fe('0x7'),_0x24bf9b);if(_0x3ff928){logger[_0xe0fe('0x6')](_0xe0fe('0x7'),'\x20Error\x20:',util['inspect'](_0x3ff928,{'showHidden':![],'depth':null}),_0x24bf9b,_0x3fb0ac);_0x5bc1a4(_0x3ff928);}_0xb75da(_0x24bf9b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb050=['moment','../../../../config/logger','message','logger','info','inspect','addVariables','ecm','headerinfo','maxrate','format','\x22%s\x22','gateway','faxdetect','t38timeout','localstationid','path','uniqueid','originate','channel','xcally-motion-fax','from-sip','\x22%s\x22\x20<%s>','lodash'];(function(_0x5ddaac,_0x2697a8){var _0x2a9c58=function(_0x851032){while(--_0x851032){_0x5ddaac['push'](_0x5ddaac['shift']());}};_0x2a9c58(++_0x2697a8);}(_0xb050,0x11f));var _0x0b05=function(_0x349093,_0x59470c){_0x349093=_0x349093-0x0;var _0x5e30d7=_0xb050[_0x349093];return _0x5e30d7;};'use strict';var util=require('util');var _=require(_0x0b05('0x0'));var moment=require(_0x0b05('0x1'));var logger=require(_0x0b05('0x2'))('fax');exports[_0x0b05('0x3')]=function(_0x409064){return{'message':_0x409064};};exports[_0x0b05('0x4')]=function(_0x47c7f2,_0x3d4225){logger[_0x0b05('0x5')](_0x47c7f2,util[_0x0b05('0x6')](_0x3d4225,{'showHidden':![],'depth':null}));};exports[_0x0b05('0x7')]=function(_0x53664d,_0x44dc10){var _0x409caf={'XMF-ECM':_0x44dc10[_0x0b05('0x8')],'XMF-HEADERINFO':_0x44dc10[_0x0b05('0x9')],'XMF-MINRATE':_0x44dc10['minrate'],'XMF-MAXRATE':_0x44dc10[_0x0b05('0xa')],'XMF-MODEM':util[_0x0b05('0xb')](_0x0b05('0xc'),_0x44dc10['modem']),'XMF-GATEWAY':_0x44dc10[_0x0b05('0xd')],'XMF-FAXDETECT':_0x44dc10[_0x0b05('0xe')],'XMF-T38TIMEOUT':_0x44dc10[_0x0b05('0xf')],'XMF-LOCALSTATIONID':_0x44dc10[_0x0b05('0x10')],'XMF-PATH':_0x53664d[_0x0b05('0x11')]};return _0x409caf;};exports['variablesAction']=function(_0xcfadde,_0xf96968){return{'actionid':_0xcfadde[_0x0b05('0x12')],'action':_0x0b05('0x13'),'channel':_0xcfadde[_0x0b05('0x14')],'Exten':_0x0b05('0x15'),'Context':_0x0b05('0x16'),'Priority':'1','callerid':util[_0x0b05('0xb')](_0x0b05('0x17'),_0xcfadde[_0x0b05('0x9')]?_0xcfadde[_0x0b05('0x9')]:'',_0xcfadde[_0x0b05('0x10')]),'variable':_0xf96968,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0xcfadde[_0x0b05('0x12')]};};
\ No newline at end of file
+var _0x8ee7=['faxdetect','t38timeout','path','variablesAction','originate','channel','xcally-motion-fax','from-sip','localstationid','util','../../../../config/logger','fax','logger','ecm','headerinfo','minrate','maxrate','format','\x22%s\x22','modem'];(function(_0x200827,_0x4af951){var _0x120047=function(_0x4431de){while(--_0x4431de){_0x200827['push'](_0x200827['shift']());}};_0x120047(++_0x4af951);}(_0x8ee7,0x1c1));var _0x78ee=function(_0x413704,_0x1ec284){_0x413704=_0x413704-0x0;var _0x372b28=_0x8ee7[_0x413704];return _0x372b28;};'use strict';var util=require(_0x78ee('0x0'));var _=require('lodash');var moment=require('moment');var logger=require(_0x78ee('0x1'))(_0x78ee('0x2'));exports['message']=function(_0x33ce4b){return{'message':_0x33ce4b};};exports[_0x78ee('0x3')]=function(_0x16e3c2,_0x43ed8c){logger['info'](_0x16e3c2,util['inspect'](_0x43ed8c,{'showHidden':![],'depth':null}));};exports['addVariables']=function(_0x443f6f,_0x1a95af){var _0x50611e={'XMF-ECM':_0x1a95af[_0x78ee('0x4')],'XMF-HEADERINFO':_0x1a95af[_0x78ee('0x5')],'XMF-MINRATE':_0x1a95af[_0x78ee('0x6')],'XMF-MAXRATE':_0x1a95af[_0x78ee('0x7')],'XMF-MODEM':util[_0x78ee('0x8')](_0x78ee('0x9'),_0x1a95af[_0x78ee('0xa')]),'XMF-GATEWAY':_0x1a95af['gateway'],'XMF-FAXDETECT':_0x1a95af[_0x78ee('0xb')],'XMF-T38TIMEOUT':_0x1a95af[_0x78ee('0xc')],'XMF-LOCALSTATIONID':_0x1a95af['localstationid'],'XMF-PATH':_0x443f6f[_0x78ee('0xd')]};return _0x50611e;};exports[_0x78ee('0xe')]=function(_0x42af2c,_0x5cfbdf){return{'actionid':_0x42af2c['uniqueid'],'action':_0x78ee('0xf'),'channel':_0x42af2c[_0x78ee('0x10')],'Exten':_0x78ee('0x11'),'Context':_0x78ee('0x12'),'Priority':'1','callerid':util['format']('\x22%s\x22\x20<%s>',_0x42af2c[_0x78ee('0x5')]?_0x42af2c[_0x78ee('0x5')]:'',_0x42af2c[_0x78ee('0x13')]),'variable':_0x5cfbdf,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x42af2c['uniqueid']};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfac6=['get','hour','resolve','getAgents','then','initTelephones','initTrunks','getVoiceQueues','initVoiceQueues','getTriggers','getTemplates','initTemplates','getZendeskAccounts','getSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','initFreshdeskAccounts','initDeskAccounts','getVtigerAccounts','initVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts','getServicenowAccounts','initServicenowAccounts','getDynamics365Accounts','initDynamics365Accounts','getCampaigns','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','getCampaignHopperHistory','initCampaignHopperHistory','getVoiceCallReports','initVoiceCallReports','catch','log','listen','sync','bluebird','util','moment','./server','./realtime','./report','./acw','./dialer','./fax','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/voiceCallReport','./rpc/trigger','./rpc/template','./rpc/faxAccount','./rpc/integrations/salesforce','./rpc/integrations/freshdesk','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/servicenow','./rpc/integrations/dynamics365'];(function(_0x1a04fb,_0x7db29e){var _0x3b5b9c=function(_0x2758f2){while(--_0x2758f2){_0x1a04fb['push'](_0x1a04fb['shift']());}};_0x3b5b9c(++_0x7db29e);}(_0xfac6,0xf2));var _0x6fac=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xfac6[_0x321bb2];return _0x9c12ed;};'use strict';var BPromise=require(_0x6fac('0x0'));var util=require(_0x6fac('0x1'));var moment=require(_0x6fac('0x2'));var server=require(_0x6fac('0x3'));var Realtime=require(_0x6fac('0x4'));var Report=require(_0x6fac('0x5'));var Acw=require(_0x6fac('0x6'));var Trigger=require('./trigger');var Dialer=require(_0x6fac('0x7'));var Preview=require('./preview');var Fax=require(_0x6fac('0x8'));var user=require('./rpc/user');var voiceQueue=require(_0x6fac('0x9'));var voiceQueueReport=require(_0x6fac('0xa'));var voiceCallReport=require(_0x6fac('0xb'));var trunk=require('./rpc/trunk');var trigger=require(_0x6fac('0xc'));var template=require(_0x6fac('0xd'));var cmHopperHistory=require('./rpc/cmHopperHistory');var campaign=require('./rpc/campaign');var voiceExtension=require('./rpc/voiceExtension');var faxAccount=require(_0x6fac('0xe'));var zendesk=require('./rpc/integrations/zendesk');var salesforce=require(_0x6fac('0xf'));var sugarcrm=require('./rpc/integrations/sugarcrm');var freshdesk=require(_0x6fac('0x10'));var desk=require(_0x6fac('0x11'));var zoho=require(_0x6fac('0x12'));var vtiger=require(_0x6fac('0x13'));var freshsales=require('./rpc/integrations/freshsales');var servicenow=require(_0x6fac('0x14'));var dynamics365=require(_0x6fac('0x15'));var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()[_0x6fac('0x16')](_0x6fac('0x17'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x6fac('0x16')]('hour')===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0x6fac('0x18')]()['then'](user[_0x6fac('0x19')]())[_0x6fac('0x1a')](realtime['initAgents']())[_0x6fac('0x1a')](user['getTelephones']())[_0x6fac('0x1a')](realtime[_0x6fac('0x1b')]())[_0x6fac('0x1a')](trunk['getTrunks']())[_0x6fac('0x1a')](realtime[_0x6fac('0x1c')]())['then'](voiceQueue[_0x6fac('0x1d')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x1e')]())[_0x6fac('0x1a')](trigger[_0x6fac('0x1f')]())['then'](realtime['initTriggers']())[_0x6fac('0x1a')](template[_0x6fac('0x20')]())['then'](realtime[_0x6fac('0x21')]())[_0x6fac('0x1a')](zendesk[_0x6fac('0x22')]())[_0x6fac('0x1a')](realtime['initZendeskAccounts']())[_0x6fac('0x1a')](salesforce[_0x6fac('0x23')]())[_0x6fac('0x1a')](realtime['initSalesforceAccounts']())[_0x6fac('0x1a')](sugarcrm[_0x6fac('0x24')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x25')]())[_0x6fac('0x1a')](freshdesk['getFreshdeskAccounts']())[_0x6fac('0x1a')](realtime[_0x6fac('0x26')]())[_0x6fac('0x1a')](desk['getDeskAccounts']())[_0x6fac('0x1a')](realtime[_0x6fac('0x27')]())['then'](zoho['getZohoAccounts']())[_0x6fac('0x1a')](realtime['initZohoAccounts']())[_0x6fac('0x1a')](vtiger[_0x6fac('0x28')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x29')]())[_0x6fac('0x1a')](freshsales[_0x6fac('0x2a')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x2b')]())[_0x6fac('0x1a')](servicenow[_0x6fac('0x2c')]())['then'](realtime[_0x6fac('0x2d')]())[_0x6fac('0x1a')](dynamics365[_0x6fac('0x2e')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x2f')]())[_0x6fac('0x1a')](campaign[_0x6fac('0x30')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x31')]())[_0x6fac('0x1a')](voiceExtension[_0x6fac('0x32')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x33')]())['then'](faxAccount[_0x6fac('0x34')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x35')]())[_0x6fac('0x1a')](function(){return realtime;});}function initParams(){return BPromise[_0x6fac('0x18')]()[_0x6fac('0x1a')](voiceQueueReport[_0x6fac('0x36')]())['then'](realtime[_0x6fac('0x37')]())[_0x6fac('0x1a')](cmHopperHistory[_0x6fac('0x38')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x39')]())[_0x6fac('0x1a')](cmHopperHistory[_0x6fac('0x3a')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x3b')]())[_0x6fac('0x1a')](voiceCallReport[_0x6fac('0x3c')]())['then'](realtime[_0x6fac('0x3d')]())[_0x6fac('0x1a')](function(_0x54da5d){})[_0x6fac('0x3e')](function(_0xd7e063){console[_0x6fac('0x3f')](_0xd7e063);});}function main(){return server[_0x6fac('0x40')](realtime,preview,fax)[_0x6fac('0x1a')](function(_0x1a5666){return initRealtime();})[_0x6fac('0x1a')](function(){return initParams();})['then'](function(){report[_0x6fac('0x41')]();setInterval(initRealtime,0x1388);})['catch'](function(_0x423ecb){console[_0x6fac('0x3f')](_0x423ecb);});}main();
\ No newline at end of file
+var _0x11cf=['./fax','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/voiceCallReport','./rpc/trunk','./rpc/trigger','./rpc/cmHopperHistory','./rpc/campaign','./rpc/voiceExtension','./rpc/integrations/zendesk','./rpc/integrations/salesforce','./rpc/integrations/freshdesk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/dynamics365','hour','get','resolve','getAgents','then','getTelephones','initTelephones','getTrunks','initTrunks','getVoiceQueues','initVoiceQueues','getTriggers','initTriggers','getTemplates','getZendeskAccounts','initZendeskAccounts','getSalesforceAccounts','initSalesforceAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getZohoAccounts','initZohoAccounts','getVtigerAccounts','initVtigerAccounts','initFreshsalesAccounts','getServicenowAccounts','initServicenowAccounts','getDynamics365Accounts','initDynamics365Accounts','getCampaigns','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','initVoiceQueueHopperHistory','catch','log','listen','sync','bluebird','moment','./server','./realtime','./report','./trigger','./dialer','./preview'];(function(_0x5dbb7a,_0x481d9e){var _0x4fea06=function(_0x3e3f18){while(--_0x3e3f18){_0x5dbb7a['push'](_0x5dbb7a['shift']());}};_0x4fea06(++_0x481d9e);}(_0x11cf,0xfc));var _0xf11c=function(_0x1b25ca,_0x1c43b3){_0x1b25ca=_0x1b25ca-0x0;var _0x118990=_0x11cf[_0x1b25ca];return _0x118990;};'use strict';var BPromise=require(_0xf11c('0x0'));var util=require('util');var moment=require(_0xf11c('0x1'));var server=require(_0xf11c('0x2'));var Realtime=require(_0xf11c('0x3'));var Report=require(_0xf11c('0x4'));var Acw=require('./acw');var Trigger=require(_0xf11c('0x5'));var Dialer=require(_0xf11c('0x6'));var Preview=require(_0xf11c('0x7'));var Fax=require(_0xf11c('0x8'));var user=require('./rpc/user');var voiceQueue=require(_0xf11c('0x9'));var voiceQueueReport=require(_0xf11c('0xa'));var voiceCallReport=require(_0xf11c('0xb'));var trunk=require(_0xf11c('0xc'));var trigger=require(_0xf11c('0xd'));var template=require('./rpc/template');var cmHopperHistory=require(_0xf11c('0xe'));var campaign=require(_0xf11c('0xf'));var voiceExtension=require(_0xf11c('0x10'));var faxAccount=require('./rpc/faxAccount');var zendesk=require(_0xf11c('0x11'));var salesforce=require(_0xf11c('0x12'));var sugarcrm=require('./rpc/integrations/sugarcrm');var freshdesk=require(_0xf11c('0x13'));var desk=require('./rpc/integrations/desk');var zoho=require(_0xf11c('0x14'));var vtiger=require(_0xf11c('0x15'));var freshsales=require(_0xf11c('0x16'));var servicenow=require('./rpc/integrations/servicenow');var dynamics365=require(_0xf11c('0x17'));var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()['get'](_0xf11c('0x18'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0xf11c('0x19')]('hour')===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0xf11c('0x1a')]()['then'](user[_0xf11c('0x1b')]())[_0xf11c('0x1c')](realtime['initAgents']())[_0xf11c('0x1c')](user[_0xf11c('0x1d')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x1e')]())[_0xf11c('0x1c')](trunk[_0xf11c('0x1f')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x20')]())[_0xf11c('0x1c')](voiceQueue[_0xf11c('0x21')]())['then'](realtime[_0xf11c('0x22')]())['then'](trigger[_0xf11c('0x23')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x24')]())['then'](template[_0xf11c('0x25')]())[_0xf11c('0x1c')](realtime['initTemplates']())[_0xf11c('0x1c')](zendesk[_0xf11c('0x26')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x27')]())['then'](salesforce[_0xf11c('0x28')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x29')]())[_0xf11c('0x1c')](sugarcrm['getSugarcrmAccounts']())[_0xf11c('0x1c')](realtime[_0xf11c('0x2a')]())[_0xf11c('0x1c')](freshdesk[_0xf11c('0x2b')]())['then'](realtime[_0xf11c('0x2c')]())[_0xf11c('0x1c')](desk['getDeskAccounts']())['then'](realtime['initDeskAccounts']())[_0xf11c('0x1c')](zoho[_0xf11c('0x2d')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x2e')]())[_0xf11c('0x1c')](vtiger[_0xf11c('0x2f')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x30')]())[_0xf11c('0x1c')](freshsales['getFreshsalesAccounts']())['then'](realtime[_0xf11c('0x31')]())[_0xf11c('0x1c')](servicenow[_0xf11c('0x32')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x33')]())[_0xf11c('0x1c')](dynamics365[_0xf11c('0x34')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x35')]())[_0xf11c('0x1c')](campaign[_0xf11c('0x36')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x37')]())[_0xf11c('0x1c')](voiceExtension[_0xf11c('0x38')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x39')]())[_0xf11c('0x1c')](faxAccount[_0xf11c('0x3a')]())[_0xf11c('0x1c')](realtime[_0xf11c('0x3b')]())[_0xf11c('0x1c')](function(){return realtime;});}function initParams(){return BPromise[_0xf11c('0x1a')]()[_0xf11c('0x1c')](voiceQueueReport['getVoiceQueueReports']())['then'](realtime['initVoiceQueueReports']())[_0xf11c('0x1c')](cmHopperHistory['getVoiceQueueHopperHistory']())[_0xf11c('0x1c')](realtime[_0xf11c('0x3c')]())[_0xf11c('0x1c')](cmHopperHistory['getCampaignHopperHistory']())[_0xf11c('0x1c')](realtime['initCampaignHopperHistory']())[_0xf11c('0x1c')](voiceCallReport['getVoiceCallReports']())['then'](realtime['initVoiceCallReports']())['then'](function(_0x9e4456){})[_0xf11c('0x3d')](function(_0xeab199){console[_0xf11c('0x3e')](_0xeab199);});}function main(){return server[_0xf11c('0x3f')](realtime,preview,fax)['then'](function(_0x4259cb){return initRealtime();})['then'](function(){return initParams();})[_0xf11c('0x1c')](function(){report[_0xf11c('0x40')]();setInterval(initRealtime,0x1388);})[_0xf11c('0x3d')](function(_0x2b9a7f){console[_0xf11c('0x3e')](_0x2b9a7f);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['address','phone','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','updateStatusRealtime','not_inuse','inuse','talking','format','interface','stringify','md5','user:%s','emit','user:presence','lodash','util','moment','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','email','accountcode','fullname','state','unknown','stateTime','status'];(function(_0x5a7ad5,_0x2c7340){var _0x42f4de=function(_0x178692){while(--_0x178692){_0x5a7ad5['push'](_0x5a7ad5['shift']());}};_0x42f4de(++_0x2c7340);}(_0xe706,0xa3));var _0x6e70=function(_0xfaddc9,_0x5c9ad2){_0xfaddc9=_0xfaddc9-0x0;var _0x579846=_0xe706[_0xfaddc9];return _0x579846;};'use strict';var _=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var moment=require(_0x6e70('0x2'));var md5=require('md5');var Redis=require(_0x6e70('0x3'));var config=require(_0x6e70('0x4'));config[_0x6e70('0x5')]=_[_0x6e70('0x6')](config[_0x6e70('0x5')],{'host':_0x6e70('0x7'),'port':0x18eb});var io=require(_0x6e70('0x8'))(new Redis(config[_0x6e70('0x5')]));function Agent(_0x1b0389){this['id']=_0x1b0389['id']||0x0;this[_0x6e70('0x9')]=_0x1b0389[_0x6e70('0x9')]||'';this[_0x6e70('0xa')]=_0x1b0389[_0x6e70('0xa')]||'';this[_0x6e70('0xb')]=_0x1b0389[_0x6e70('0xb')]||'';this[_0x6e70('0xc')]=_0x1b0389[_0x6e70('0xc')]||'';this[_0x6e70('0xd')]=_0x6e70('0xe');this[_0x6e70('0xf')]=0x0;this[_0x6e70('0x10')]=_0x6e70('0xe');this[_0x6e70('0x11')]='';this[_0x6e70('0x12')]='';this['mobile']='';this['interface']='';this[_0x6e70('0x13')]=_0x1b0389[_0x6e70('0x13')]||![];this[_0x6e70('0x14')]=_0x6e70('0xe');this[_0x6e70('0x15')]=0x0;this[_0x6e70('0x16')]='';this[_0x6e70('0x17')]='';this[_0x6e70('0x18')]=![];this['local']=![];this['md5']='';}Agent['prototype'][_0x6e70('0x19')]=function(_0x5a37a6){var _0x53aed0;if(_0x5a37a6&&_0x5a37a6[_0x6e70('0xd')]){_0x53aed0=_0x5a37a6[_0x6e70('0xd')]['toLowerCase']();switch(_0x53aed0){case _0x6e70('0x1a'):_0x53aed0='idle';break;case _0x6e70('0x1b'):_0x53aed0=_0x6e70('0x1c');break;}}if(_0x53aed0&&this['voiceStatus']!==_0x53aed0||_0x5a37a6['statePause']){this[_0x6e70('0x15')]=_['toNumber'](moment()[_0x6e70('0x1d')]('x'));}if(_0x53aed0){this[_0x6e70('0x14')]=_0x53aed0;}var _0x53acdc={'id':this['id'],'name':this['name'],'email':this[_0x6e70('0xa')],'accountcode':this[_0x6e70('0xb')],'fullname':this[_0x6e70('0xc')],'state':this[_0x6e70('0xd')],'stateTime':this[_0x6e70('0xf')],'status':this[_0x6e70('0x10')],'address':this[_0x6e70('0x11')],'online':this[_0x6e70('0x13')],'voiceStatus':this[_0x6e70('0x14')],'voiceStatusTime':this[_0x6e70('0x15')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x6e70('0x17')],'interface':this[_0x6e70('0x1e')],'onhold':this[_0x6e70('0x18')]};var _0x502b2d=md5(JSON[_0x6e70('0x1f')](_0x53acdc));if(this[_0x6e70('0x20')]!==_0x502b2d){this[_0x6e70('0x20')]=_0x502b2d;io['to'](util['format'](_0x6e70('0x21'),_0x53acdc['name']))['emit']('user:save',_0x53acdc);io[_0x6e70('0x22')](_0x6e70('0x23'),_0x53acdc);}};module['exports']=Agent;
\ No newline at end of file
+var _0x70e0=['name','voiceStatusQueue','onhold','stringify','md5','user:%s','user:save','emit','user:presence','lodash','util','moment','../../../config/environment','redis','defaults','socket.io-emitter','email','accountcode','fullname','state','unknown','address','phone','mobile','interface','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','local','toLowerCase','not_inuse','idle','inuse','statePause','toNumber','format'];(function(_0x472a2d,_0x124249){var _0xf2b4e9=function(_0x424c38){while(--_0x424c38){_0x472a2d['push'](_0x472a2d['shift']());}};_0xf2b4e9(++_0x124249);}(_0x70e0,0x17b));var _0x070e=function(_0x599d32,_0x382829){_0x599d32=_0x599d32-0x0;var _0x5e9f55=_0x70e0[_0x599d32];return _0x5e9f55;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var moment=require(_0x070e('0x2'));var md5=require('md5');var Redis=require('ioredis');var config=require(_0x070e('0x3'));config[_0x070e('0x4')]=_[_0x070e('0x5')](config[_0x070e('0x4')],{'host':'localhost','port':0x18eb});var io=require(_0x070e('0x6'))(new Redis(config['redis']));function Agent(_0x46fe68){this['id']=_0x46fe68['id']||0x0;this['name']=_0x46fe68['name']||'';this['email']=_0x46fe68[_0x070e('0x7')]||'';this[_0x070e('0x8')]=_0x46fe68[_0x070e('0x8')]||'';this[_0x070e('0x9')]=_0x46fe68[_0x070e('0x9')]||'';this[_0x070e('0xa')]=_0x070e('0xb');this['stateTime']=0x0;this['status']=_0x070e('0xb');this[_0x070e('0xc')]='';this[_0x070e('0xd')]='';this[_0x070e('0xe')]='';this[_0x070e('0xf')]='';this[_0x070e('0x10')]=_0x46fe68[_0x070e('0x10')]||![];this[_0x070e('0x11')]=_0x070e('0xb');this[_0x070e('0x12')]=0x0;this[_0x070e('0x13')]='';this['voiceStatusQueue']='';this['onhold']=![];this[_0x070e('0x14')]=![];this['md5']='';}Agent['prototype']['updateStatusRealtime']=function(_0x11d2ce){var _0x14c3fd;if(_0x11d2ce&&_0x11d2ce['state']){_0x14c3fd=_0x11d2ce['state'][_0x070e('0x15')]();switch(_0x14c3fd){case _0x070e('0x16'):_0x14c3fd=_0x070e('0x17');break;case _0x070e('0x18'):_0x14c3fd='talking';break;}}if(_0x14c3fd&&this['voiceStatus']!==_0x14c3fd||_0x11d2ce[_0x070e('0x19')]){this[_0x070e('0x12')]=_[_0x070e('0x1a')](moment()[_0x070e('0x1b')]('x'));}if(_0x14c3fd){this[_0x070e('0x11')]=_0x14c3fd;}var _0x5037eb={'id':this['id'],'name':this[_0x070e('0x1c')],'email':this[_0x070e('0x7')],'accountcode':this[_0x070e('0x8')],'fullname':this[_0x070e('0x9')],'state':this[_0x070e('0xa')],'stateTime':this['stateTime'],'status':this['status'],'address':this['address'],'online':this[_0x070e('0x10')],'voiceStatus':this[_0x070e('0x11')],'voiceStatusTime':this[_0x070e('0x12')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x070e('0x1d')],'interface':this['interface'],'onhold':this[_0x070e('0x1e')]};var _0x3f6985=md5(JSON[_0x070e('0x1f')](_0x5037eb));if(this[_0x070e('0x20')]!==_0x3f6985){this[_0x070e('0x20')]=_0x3f6985;io['to'](util[_0x070e('0x1b')](_0x070e('0x21'),_0x5037eb[_0x070e('0x1c')]))['emit'](_0x070e('0x22'),_0x5037eb);io[_0x070e('0x23')](_0x070e('0x24'),_0x5037eb);}};module['exports']=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f5c=['dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','temp','ivrAnswerCallsDay','ivrTotalCallsDays','sendMessageOneNotActive','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency'];(function(_0x2ee1c8,_0xaef65f){var _0x39ff9f=function(_0x414b3e){while(--_0x414b3e){_0x2ee1c8['push'](_0x2ee1c8['shift']());}};_0x39ff9f(++_0xaef65f);}(_0x0f5c,0x14c));var _0xc0f5=function(_0x257495,_0x18269b){_0x257495=_0x257495-0x0;var _0x3849aa=_0x0f5c[_0x257495];return _0x3849aa;};'use strict';function Campaign(_0x51c3ee){this['id']=_0x51c3ee['id']||0x0;this['name']=_0x51c3ee[_0xc0f5('0x0')]||'';this[_0xc0f5('0x1')]=_0x51c3ee[_0xc0f5('0x1')]||_0xc0f5('0x2');this[_0xc0f5('0x3')]=0x0;this[_0xc0f5('0x4')]=0x0;this[_0xc0f5('0x5')]=0x0;this[_0xc0f5('0x6')]=0x0;this['message']='';this[_0xc0f5('0x7')]=!![];this[_0xc0f5('0x8')]=_0x51c3ee[_0xc0f5('0x8')];this[_0xc0f5('0x9')]=_0x51c3ee[_0xc0f5('0x9')];this['dialTimezone']=_0x51c3ee[_0xc0f5('0xa')]||null;this[_0xc0f5('0xb')]=_0x51c3ee[_0xc0f5('0xb')]?_0x51c3ee[_0xc0f5('0xb')]:null;this[_0xc0f5('0xc')]=_0x51c3ee['dialOriginateCallerIdName'];this[_0xc0f5('0xd')]=_0x51c3ee[_0xc0f5('0xd')];this[_0xc0f5('0xe')]=_0x51c3ee['dialOriginateTimeout']||0x1e;this[_0xc0f5('0xf')]=_0x51c3ee[_0xc0f5('0xf')];this[_0xc0f5('0x10')]=_0x51c3ee[_0xc0f5('0x10')];this['dialBusyMaxRetry']=_0x51c3ee[_0xc0f5('0x11')];this[_0xc0f5('0x12')]=_0x51c3ee[_0xc0f5('0x12')];this[_0xc0f5('0x13')]=_0x51c3ee[_0xc0f5('0x13')];this[_0xc0f5('0x14')]=_0x51c3ee['dialNoAnswerRetryFrequency'];this['dialGlobalMaxRetry']=_0x51c3ee[_0xc0f5('0x15')];this[_0xc0f5('0x16')]=_0x51c3ee[_0xc0f5('0x16')]||0x3;this[_0xc0f5('0x17')]=_0x51c3ee[_0xc0f5('0x17')]||0x96;this[_0xc0f5('0x18')]=_0x51c3ee[_0xc0f5('0x18')]||0x3;this[_0xc0f5('0x19')]=_0x51c3ee[_0xc0f5('0x19')]||0x96;this['dialAbandonedMaxRetry']=_0x51c3ee[_0xc0f5('0x1a')]||0x3;this['dialAbandonedRetryFrequency']=_0x51c3ee[_0xc0f5('0x1b')]||0x96;this[_0xc0f5('0x1c')]=_0x51c3ee[_0xc0f5('0x1c')]||0x3;this[_0xc0f5('0x1d')]=_0x51c3ee[_0xc0f5('0x1d')]||0x96;this[_0xc0f5('0x1e')]=_0x51c3ee[_0xc0f5('0x1e')]||0x3;this[_0xc0f5('0x1f')]=_0x51c3ee['dialAgentRejectRetryFrequency']||0x96;this[_0xc0f5('0x20')]=_0x51c3ee['dialOrderByScheduledAt']||_0xc0f5('0x21');this[_0xc0f5('0x22')]=_0x51c3ee[_0xc0f5('0x22')]||undefined;this[_0xc0f5('0x23')]=_0x51c3ee['dialRandomLastDigitCallerIdNumber']||undefined;this[_0xc0f5('0x24')]=_0x51c3ee[_0xc0f5('0x24')]||undefined;this[_0xc0f5('0x25')]=_0x51c3ee['TrunkBackup']?_0x51c3ee['TrunkBackup']:undefined;this[_0xc0f5('0x26')]=_0x51c3ee[_0xc0f5('0x26')]?_0x51c3ee[_0xc0f5('0x26')]:undefined;this[_0xc0f5('0x27')]=_0x51c3ee[_0xc0f5('0x27')]?_0x51c3ee[_0xc0f5('0x27')]:undefined;this[_0xc0f5('0x28')]=_0x51c3ee[_0xc0f5('0x28')]?_0x51c3ee[_0xc0f5('0x28')]:undefined;this[_0xc0f5('0x29')]=_0x51c3ee[_0xc0f5('0x28')]?_0x51c3ee[_0xc0f5('0x28')][_0xc0f5('0x0')]:undefined;this[_0xc0f5('0x2a')]=_0x51c3ee[_0xc0f5('0x2a')]||![];this[_0xc0f5('0x2b')]=_0x51c3ee[_0xc0f5('0x2b')];this[_0xc0f5('0x2c')]=_0x51c3ee[_0xc0f5('0x2c')];this[_0xc0f5('0x2d')]=_0x51c3ee[_0xc0f5('0x2d')];this[_0xc0f5('0x2e')]=_0x51c3ee['dialAMDTotalAnalysisTime'];this['dialAMDMinWordLength']=_0x51c3ee[_0xc0f5('0x2f')];this[_0xc0f5('0x30')]=_0x51c3ee[_0xc0f5('0x30')];this['dialAMDMaximumNumberOfWords']=_0x51c3ee['dialAMDMaximumNumberOfWords'];this[_0xc0f5('0x31')]=_0x51c3ee[_0xc0f5('0x31')];this[_0xc0f5('0x32')]=_0x51c3ee[_0xc0f5('0x32')];}module[_0xc0f5('0x33')]=Campaign;
\ No newline at end of file
+var _0xd2a5=['dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','type','campaign','temp','message','sendMessageOneNotActive','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdNumber','dialCongestionMaxRetry','dialCongestionRetryFrequency'];(function(_0x1c98e2,_0x59f74c){var _0x1f045b=function(_0x48ee23){while(--_0x48ee23){_0x1c98e2['push'](_0x1c98e2['shift']());}};_0x1f045b(++_0x59f74c);}(_0xd2a5,0x192));var _0x5d2a=function(_0x290ef5,_0x32cfa7){_0x290ef5=_0x290ef5-0x0;var _0x450d92=_0xd2a5[_0x290ef5];return _0x450d92;};'use strict';function Campaign(_0x18839b){this['id']=_0x18839b['id']||0x0;this['name']=_0x18839b['name']||'';this[_0x5d2a('0x0')]=_0x18839b[_0x5d2a('0x0')]||_0x5d2a('0x1');this['originated']=0x0;this[_0x5d2a('0x2')]=0x0;this['ivrAnswerCallsDay']=0x0;this['ivrTotalCallsDays']=0x0;this[_0x5d2a('0x3')]='';this[_0x5d2a('0x4')]=!![];this['active']=_0x18839b[_0x5d2a('0x5')];this[_0x5d2a('0x6')]=_0x18839b[_0x5d2a('0x6')];this[_0x5d2a('0x7')]=_0x18839b[_0x5d2a('0x7')]||null;this[_0x5d2a('0x8')]=_0x18839b['dialGlobalInterval']?_0x18839b['dialGlobalInterval']:null;this['dialOriginateCallerIdName']=_0x18839b['dialOriginateCallerIdName'];this[_0x5d2a('0x9')]=_0x18839b['dialOriginateCallerIdNumber'];this['dialOriginateTimeout']=_0x18839b['dialOriginateTimeout']||0x1e;this[_0x5d2a('0xa')]=_0x18839b[_0x5d2a('0xa')];this[_0x5d2a('0xb')]=_0x18839b[_0x5d2a('0xb')];this['dialBusyMaxRetry']=_0x18839b[_0x5d2a('0xc')];this[_0x5d2a('0xd')]=_0x18839b[_0x5d2a('0xd')];this[_0x5d2a('0xe')]=_0x18839b[_0x5d2a('0xe')];this[_0x5d2a('0xf')]=_0x18839b[_0x5d2a('0xf')];this[_0x5d2a('0x10')]=_0x18839b[_0x5d2a('0x10')];this['dialNoSuchNumberMaxRetry']=_0x18839b[_0x5d2a('0x11')]||0x3;this[_0x5d2a('0x12')]=_0x18839b[_0x5d2a('0x12')]||0x96;this[_0x5d2a('0x13')]=_0x18839b[_0x5d2a('0x13')]||0x3;this['dialDropRetryFrequency']=_0x18839b[_0x5d2a('0x14')]||0x96;this[_0x5d2a('0x15')]=_0x18839b[_0x5d2a('0x15')]||0x3;this['dialAbandonedRetryFrequency']=_0x18839b[_0x5d2a('0x16')]||0x96;this[_0x5d2a('0x17')]=_0x18839b[_0x5d2a('0x17')]||0x3;this[_0x5d2a('0x18')]=_0x18839b[_0x5d2a('0x18')]||0x96;this['dialAgentRejectMaxRetry']=_0x18839b[_0x5d2a('0x19')]||0x3;this['dialAgentRejectRetryFrequency']=_0x18839b['dialAgentRejectRetryFrequency']||0x96;this[_0x5d2a('0x1a')]=_0x18839b[_0x5d2a('0x1a')]||'DESC';this[_0x5d2a('0x1b')]=_0x18839b[_0x5d2a('0x1b')]||undefined;this[_0x5d2a('0x1c')]=_0x18839b[_0x5d2a('0x1c')]||undefined;this[_0x5d2a('0x1d')]=_0x18839b[_0x5d2a('0x1d')]||undefined;this['TrunkBackup']=_0x18839b[_0x5d2a('0x1e')]?_0x18839b[_0x5d2a('0x1e')]:undefined;this[_0x5d2a('0x1f')]=_0x18839b[_0x5d2a('0x1f')]?_0x18839b['Trunk']:undefined;this[_0x5d2a('0x20')]=_0x18839b[_0x5d2a('0x20')]?_0x18839b[_0x5d2a('0x20')]:undefined;this[_0x5d2a('0x21')]=_0x18839b[_0x5d2a('0x21')]?_0x18839b[_0x5d2a('0x21')]:undefined;this[_0x5d2a('0x22')]=_0x18839b[_0x5d2a('0x21')]?_0x18839b[_0x5d2a('0x21')]['name']:undefined;this[_0x5d2a('0x23')]=_0x18839b[_0x5d2a('0x23')]||![];this[_0x5d2a('0x24')]=_0x18839b[_0x5d2a('0x24')];this[_0x5d2a('0x25')]=_0x18839b[_0x5d2a('0x25')];this[_0x5d2a('0x26')]=_0x18839b[_0x5d2a('0x26')];this[_0x5d2a('0x27')]=_0x18839b[_0x5d2a('0x27')];this['dialAMDMinWordLength']=_0x18839b[_0x5d2a('0x28')];this[_0x5d2a('0x29')]=_0x18839b['dialAMDBetweenWordsSilence'];this['dialAMDMaximumNumberOfWords']=_0x18839b[_0x5d2a('0x2a')];this[_0x5d2a('0x2b')]=_0x18839b[_0x5d2a('0x2b')];this[_0x5d2a('0x2c')]=_0x18839b[_0x5d2a('0x2c')];}module[_0x5d2a('0x2d')]=Campaign;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdbe=['linkedid','answered','answertime','endtime','unmanaged','abandoned','lastapplication','lastdata','duration','billableseconds','holdtime','type','disposition','monitor','queue','monitors','transfercalleridnum','transferconnectedlinenum','exports','starttime','destinationchannel','calleridname','connectedlinename','context'];(function(_0x1a8d10,_0x5eb070){var _0x34b317=function(_0x594411){while(--_0x594411){_0x1a8d10['push'](_0x1a8d10['shift']());}};_0x34b317(++_0x5eb070);}(_0xbdbe,0x1f3));var _0xebdb=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0xbdbe[_0x46e363];return _0x3fb059;};'use strict';function Channel(){this[_0xebdb('0x0')]=null;this['channel']='';this[_0xebdb('0x1')]='';this['calleridnum']=0x0;this[_0xebdb('0x2')]='';this['connectedlinenum']=undefined;this[_0xebdb('0x3')]=undefined;this['accountcode']=0x0;this[_0xebdb('0x4')]='';this['uniqueid']=0x0;this[_0xebdb('0x5')]=0x0;this['exten']=0x0;this[_0xebdb('0x6')]=![];this[_0xebdb('0x7')]=null;this[_0xebdb('0x8')]=null;this[_0xebdb('0x9')]=![];this[_0xebdb('0xa')]=![];this[_0xebdb('0xb')]='';this[_0xebdb('0xc')]='';this[_0xebdb('0xd')]=0x0;this[_0xebdb('0xe')]=0x0;this[_0xebdb('0xf')]=0x0;this[_0xebdb('0x10')]=null;this['tag']=null;this[_0xebdb('0x11')]=null;this[_0xebdb('0x12')]=![];this['monitorFilename']=null;this[_0xebdb('0x13')]=null;this[_0xebdb('0x14')]=[];this[_0xebdb('0x15')]=undefined;this[_0xebdb('0x16')]=undefined;this['transferType']=undefined;this['mohtime']=0x0;}module[_0xebdb('0x17')]=Channel;
\ No newline at end of file
+var _0x7d8a=['type','tag','monitor','monitorFilename','queue','monitors','transfercalleridnum','mohtime','exports','starttime','channel','destinationchannel','calleridname','connectedlinename','accountcode','context','uniqueid','linkedid','answered','answertime','endtime','unmanaged','lastapplication','lastdata','duration','holdtime'];(function(_0x10dc8e,_0x349d57){var _0x527f53=function(_0x4d457f){while(--_0x4d457f){_0x10dc8e['push'](_0x10dc8e['shift']());}};_0x527f53(++_0x349d57);}(_0x7d8a,0xbf));var _0xa7d8=function(_0x5f1391,_0x19c132){_0x5f1391=_0x5f1391-0x0;var _0x50ebe3=_0x7d8a[_0x5f1391];return _0x50ebe3;};'use strict';function Channel(){this[_0xa7d8('0x0')]=null;this[_0xa7d8('0x1')]='';this[_0xa7d8('0x2')]='';this['calleridnum']=0x0;this[_0xa7d8('0x3')]='';this['connectedlinenum']=undefined;this[_0xa7d8('0x4')]=undefined;this[_0xa7d8('0x5')]=0x0;this[_0xa7d8('0x6')]='';this[_0xa7d8('0x7')]=0x0;this[_0xa7d8('0x8')]=0x0;this['exten']=0x0;this[_0xa7d8('0x9')]=![];this[_0xa7d8('0xa')]=null;this[_0xa7d8('0xb')]=null;this[_0xa7d8('0xc')]=![];this['abandoned']=![];this[_0xa7d8('0xd')]='';this[_0xa7d8('0xe')]='';this[_0xa7d8('0xf')]=0x0;this['billableseconds']=0x0;this[_0xa7d8('0x10')]=0x0;this[_0xa7d8('0x11')]=null;this[_0xa7d8('0x12')]=null;this['disposition']=null;this[_0xa7d8('0x13')]=![];this[_0xa7d8('0x14')]=null;this[_0xa7d8('0x15')]=null;this[_0xa7d8('0x16')]=[];this[_0xa7d8('0x17')]=undefined;this['transferconnectedlinenum']=undefined;this['transferType']=undefined;this[_0xa7d8('0x18')]=0x0;}module[_0xa7d8('0x19')]=Channel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd4a=['consumerKey','consumerSecret','token','tokenSecret','type','serverUrl','Configurations','exports','name','username','remoteUri','authType','password'];(function(_0x1eda20,_0x1149f4){var _0x31b953=function(_0x25f0d8){while(--_0x25f0d8){_0x1eda20['push'](_0x1eda20['shift']());}};_0x31b953(++_0x1149f4);}(_0xdd4a,0x119));var _0xadd4=function(_0x50ce0c,_0x541b68){_0x50ce0c=_0x50ce0c-0x0;var _0x3c988c=_0xdd4a[_0x50ce0c];return _0x3c988c;};'use strict';function DeskAccount(_0x849121){this['id']=_0x849121['id']||0x0;this[_0xadd4('0x0')]=_0x849121[_0xadd4('0x0')]||'';this[_0xadd4('0x1')]=_0x849121[_0xadd4('0x1')]||'';this[_0xadd4('0x2')]=_0x849121['remoteUri']||'';this['authType']=_0x849121[_0xadd4('0x3')]||'';this['password']=_0x849121[_0xadd4('0x4')]||'';this[_0xadd4('0x5')]=_0x849121['consumerKey']||'';this[_0xadd4('0x6')]=_0x849121[_0xadd4('0x6')]||'';this[_0xadd4('0x7')]=_0x849121[_0xadd4('0x7')]||'';this[_0xadd4('0x8')]=_0x849121[_0xadd4('0x8')]||'';this['type']=_0x849121[_0xadd4('0x9')]||'';this[_0xadd4('0xa')]=_0x849121['serverUrl']||'';this[_0xadd4('0xb')]=_0x849121[_0xadd4('0xb')]||{};}module[_0xadd4('0xc')]=DeskAccount;
\ No newline at end of file
+var _0x2fe1=['exports','name','remoteUri','authType','password','consumerKey','consumerSecret','token','tokenSecret','type','serverUrl','Configurations'];(function(_0x54d4fe,_0x55e869){var _0x1ab5bb=function(_0x5b1af2){while(--_0x5b1af2){_0x54d4fe['push'](_0x54d4fe['shift']());}};_0x1ab5bb(++_0x55e869);}(_0x2fe1,0x1c9));var _0x12fe=function(_0x4efe81,_0x38346c){_0x4efe81=_0x4efe81-0x0;var _0x1976e3=_0x2fe1[_0x4efe81];return _0x1976e3;};'use strict';function DeskAccount(_0x479a26){this['id']=_0x479a26['id']||0x0;this[_0x12fe('0x0')]=_0x479a26[_0x12fe('0x0')]||'';this['username']=_0x479a26['username']||'';this['remoteUri']=_0x479a26[_0x12fe('0x1')]||'';this[_0x12fe('0x2')]=_0x479a26[_0x12fe('0x2')]||'';this[_0x12fe('0x3')]=_0x479a26[_0x12fe('0x3')]||'';this['consumerKey']=_0x479a26[_0x12fe('0x4')]||'';this[_0x12fe('0x5')]=_0x479a26['consumerSecret']||'';this[_0x12fe('0x6')]=_0x479a26[_0x12fe('0x6')]||'';this['tokenSecret']=_0x479a26[_0x12fe('0x7')]||'';this[_0x12fe('0x8')]=_0x479a26[_0x12fe('0x8')]||'';this[_0x12fe('0x9')]=_0x479a26[_0x12fe('0x9')]||'';this[_0x12fe('0xa')]=_0x479a26[_0x12fe('0xa')]||{};}module[_0x12fe('0xb')]=DeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34b7=['Configurations','name','username','password','remoteUri','tenantId','clientId','clientSecret','serverUrl'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x34b7,0x196));var _0x734b=function(_0x5bd044,_0xafd5fa){_0x5bd044=_0x5bd044-0x0;var _0x582fd7=_0x34b7[_0x5bd044];return _0x582fd7;};'use strict';function Dynamics365Account(_0x3573c4){this['id']=_0x3573c4['id']||0x0;this['name']=_0x3573c4[_0x734b('0x0')]||'';this[_0x734b('0x1')]=_0x3573c4[_0x734b('0x1')]||'';this[_0x734b('0x2')]=_0x3573c4[_0x734b('0x2')]||'';this[_0x734b('0x3')]=_0x3573c4['remoteUri']||'';this['tenantId']=_0x3573c4[_0x734b('0x4')]||'';this[_0x734b('0x5')]=_0x3573c4[_0x734b('0x5')]||'';this[_0x734b('0x6')]=_0x3573c4[_0x734b('0x6')]||{};this[_0x734b('0x7')]=_0x3573c4['serverUrl']||'';this[_0x734b('0x8')]=_0x3573c4[_0x734b('0x8')]||{};}module['exports']=Dynamics365Account;
\ No newline at end of file
+var _0xf4eb=['tenantId','clientId','clientSecret','serverUrl','exports','password','remoteUri'];(function(_0x952282,_0x51a614){var _0x613507=function(_0x3d37c8){while(--_0x3d37c8){_0x952282['push'](_0x952282['shift']());}};_0x613507(++_0x51a614);}(_0xf4eb,0xec));var _0xbf4e=function(_0x43bed1,_0x34b64d){_0x43bed1=_0x43bed1-0x0;var _0x32821f=_0xf4eb[_0x43bed1];return _0x32821f;};'use strict';function Dynamics365Account(_0x3e6fbd){this['id']=_0x3e6fbd['id']||0x0;this['name']=_0x3e6fbd['name']||'';this['username']=_0x3e6fbd['username']||'';this[_0xbf4e('0x0')]=_0x3e6fbd['password']||'';this['remoteUri']=_0x3e6fbd[_0xbf4e('0x1')]||'';this[_0xbf4e('0x2')]=_0x3e6fbd[_0xbf4e('0x2')]||'';this[_0xbf4e('0x3')]=_0x3e6fbd[_0xbf4e('0x3')]||'';this[_0xbf4e('0x4')]=_0x3e6fbd[_0xbf4e('0x4')]||{};this['serverUrl']=_0x3e6fbd[_0xbf4e('0x5')]||'';this['Configurations']=_0x3e6fbd['Configurations']||{};}module[_0xbf4e('0x6')]=Dynamics365Account;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd6f=['Trunk','ListId','key','name','description','ecm','headerinfo','localstationid','minrate','maxrate','modem','gateway','faxdetect','t38timeout','tech','SIP'];(function(_0x203de2,_0x36b188){var _0x4ade6d=function(_0x52e77b){while(--_0x52e77b){_0x203de2['push'](_0x203de2['shift']());}};_0x4ade6d(++_0x36b188);}(_0xcd6f,0x73));var _0xfcd6=function(_0x19e277,_0x18e743){_0x19e277=_0x19e277-0x0;var _0x4e315a=_0xcd6f[_0x19e277];return _0x4e315a;};'use strict';function FaxAccount(_0x34b288){this['id']=_0x34b288['id']||0x0;this[_0xfcd6('0x0')]=_0x34b288['name']||'';this[_0xfcd6('0x1')]=_0x34b288['description'];this[_0xfcd6('0x2')]=_0x34b288['ecm'];this[_0xfcd6('0x3')]=_0x34b288[_0xfcd6('0x3')];this['localstationid']=_0x34b288[_0xfcd6('0x4')];this[_0xfcd6('0x5')]=_0x34b288['minrate']||0x960;this[_0xfcd6('0x6')]=_0x34b288[_0xfcd6('0x6')]||0x3840;this[_0xfcd6('0x7')]=_0x34b288[_0xfcd6('0x7')]||'v17,v27,v29';this[_0xfcd6('0x8')]=_0x34b288[_0xfcd6('0x8')]||'no';this[_0xfcd6('0x9')]=_0x34b288[_0xfcd6('0x9')]||'no';this['t38timeout']=_0x34b288[_0xfcd6('0xa')]||0x1388;this['tech']=_0x34b288[_0xfcd6('0xb')]||_0xfcd6('0xc');this['Trunk']=_0x34b288[_0xfcd6('0xd')]?_0x34b288[_0xfcd6('0xd')]:undefined;this[_0xfcd6('0xe')]=_0x34b288['ListId'];this[_0xfcd6('0xf')]=_0x34b288[_0xfcd6('0xf')];}module['exports']=FaxAccount;
\ No newline at end of file
+var _0x5d19=['modem','v17,v27,v29','gateway','faxdetect','t38timeout','tech','SIP','Trunk','ListId','key','exports','description','ecm','headerinfo','localstationid','minrate','maxrate'];(function(_0x3cc9d9,_0x69ed38){var _0x1a425d=function(_0x44d109){while(--_0x44d109){_0x3cc9d9['push'](_0x3cc9d9['shift']());}};_0x1a425d(++_0x69ed38);}(_0x5d19,0x1e7));var _0x95d1=function(_0x48c2ae,_0x4cea90){_0x48c2ae=_0x48c2ae-0x0;var _0x8f7531=_0x5d19[_0x48c2ae];return _0x8f7531;};'use strict';function FaxAccount(_0x3d104d){this['id']=_0x3d104d['id']||0x0;this['name']=_0x3d104d['name']||'';this[_0x95d1('0x0')]=_0x3d104d[_0x95d1('0x0')];this[_0x95d1('0x1')]=_0x3d104d[_0x95d1('0x1')];this[_0x95d1('0x2')]=_0x3d104d['headerinfo'];this[_0x95d1('0x3')]=_0x3d104d[_0x95d1('0x3')];this['minrate']=_0x3d104d[_0x95d1('0x4')]||0x960;this['maxrate']=_0x3d104d[_0x95d1('0x5')]||0x3840;this['modem']=_0x3d104d[_0x95d1('0x6')]||_0x95d1('0x7');this[_0x95d1('0x8')]=_0x3d104d['gateway']||'no';this[_0x95d1('0x9')]=_0x3d104d['faxdetect']||'no';this[_0x95d1('0xa')]=_0x3d104d['t38timeout']||0x1388;this[_0x95d1('0xb')]=_0x3d104d[_0x95d1('0xb')]||_0x95d1('0xc');this[_0x95d1('0xd')]=_0x3d104d[_0x95d1('0xd')]?_0x3d104d[_0x95d1('0xd')]:undefined;this['ListId']=_0x3d104d[_0x95d1('0xe')];this[_0x95d1('0xf')]=_0x3d104d[_0x95d1('0xf')];}module[_0x95d1('0x10')]=FaxAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc7f=['apiKey','token','remoteUri','serverUrl','Configurations','exports','username'];(function(_0x527f07,_0x416db2){var _0x4db1dd=function(_0x590e43){while(--_0x590e43){_0x527f07['push'](_0x527f07['shift']());}};_0x4db1dd(++_0x416db2);}(_0xcc7f,0x1e9));var _0xfcc7=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcc7f[_0x3dd15e];return _0x231fd0;};'use strict';function FreshdeskAccount(_0x518725){this['id']=_0x518725['id']||0x0;this['name']=_0x518725['name']||'';this['username']=_0x518725[_0xfcc7('0x0')]||'';this[_0xfcc7('0x1')]=_0x518725[_0xfcc7('0x2')]||'';this['remoteUri']=_0x518725[_0xfcc7('0x3')]||'';this[_0xfcc7('0x4')]=_0x518725[_0xfcc7('0x4')]||'';this['Configurations']=_0x518725[_0xfcc7('0x5')]||{};}module[_0xfcc7('0x6')]=FreshdeskAccount;
\ No newline at end of file
+var _0x1ab8=['token','remoteUri','serverUrl','Configurations','exports','name','username','apiKey'];(function(_0x422061,_0x523a37){var _0x1ebf07=function(_0x1c8bea){while(--_0x1c8bea){_0x422061['push'](_0x422061['shift']());}};_0x1ebf07(++_0x523a37);}(_0x1ab8,0x115));var _0x81ab=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x1ab8[_0x432682];return _0x463d05;};'use strict';function FreshdeskAccount(_0x36b677){this['id']=_0x36b677['id']||0x0;this['name']=_0x36b677[_0x81ab('0x0')]||'';this[_0x81ab('0x1')]=_0x36b677[_0x81ab('0x1')]||'';this[_0x81ab('0x2')]=_0x36b677[_0x81ab('0x3')]||'';this[_0x81ab('0x4')]=_0x36b677['remoteUri']||'';this[_0x81ab('0x5')]=_0x36b677['serverUrl']||'';this[_0x81ab('0x6')]=_0x36b677[_0x81ab('0x6')]||{};}module[_0x81ab('0x7')]=FreshdeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe015=['serverUrl','Configurations','exports','name','apiKey','remoteUri'];(function(_0x2dc931,_0x5f1096){var _0x4556cb=function(_0x34a6fd){while(--_0x34a6fd){_0x2dc931['push'](_0x2dc931['shift']());}};_0x4556cb(++_0x5f1096);}(_0xe015,0x13b));var _0x5e01=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0xe015[_0x502c7d];return _0x30b7ed;};'use strict';function FreshsalesAccount(_0x585c25){this['id']=_0x585c25['id']||0x0;this[_0x5e01('0x0')]=_0x585c25[_0x5e01('0x0')]||'';this['username']=_0x585c25['username']||'';this[_0x5e01('0x1')]=_0x585c25['token']||'';this[_0x5e01('0x2')]=_0x585c25[_0x5e01('0x2')]||'';this[_0x5e01('0x3')]=_0x585c25[_0x5e01('0x3')]||'';this['Configurations']=_0x585c25[_0x5e01('0x4')]||{};}module[_0x5e01('0x5')]=FreshsalesAccount;
\ No newline at end of file
+var _0x251b=['token','remoteUri','serverUrl','Configurations','exports','name','username','apiKey'];(function(_0x304bf7,_0x4fcafc){var _0x5036cd=function(_0x39e810){while(--_0x39e810){_0x304bf7['push'](_0x304bf7['shift']());}};_0x5036cd(++_0x4fcafc);}(_0x251b,0x185));var _0xb251=function(_0xc36d01,_0x3bf1a6){_0xc36d01=_0xc36d01-0x0;var _0xecb231=_0x251b[_0xc36d01];return _0xecb231;};'use strict';function FreshsalesAccount(_0x1e22dd){this['id']=_0x1e22dd['id']||0x0;this[_0xb251('0x0')]=_0x1e22dd[_0xb251('0x0')]||'';this[_0xb251('0x1')]=_0x1e22dd[_0xb251('0x1')]||'';this[_0xb251('0x2')]=_0x1e22dd[_0xb251('0x3')]||'';this[_0xb251('0x4')]=_0x1e22dd[_0xb251('0x4')]||'';this[_0xb251('0x5')]=_0x1e22dd[_0xb251('0x5')]||'';this[_0xb251('0x6')]=_0x1e22dd['Configurations']||{};}module[_0xb251('0x7')]=FreshsalesAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x39ec=['queue','queuecallerleaveAt','position','count','queuecallerabandonAt','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum','accountcode','context','exten','priority','assigned','mohtime','exports','type','inbound','uniqueid','calleridnum','calleridname'];(function(_0x5d084e,_0x1b9431){var _0x2f4146=function(_0x5eb715){while(--_0x5eb715){_0x5d084e['push'](_0x5d084e['shift']());}};_0x2f4146(++_0x1b9431);}(_0x39ec,0xf8));var _0xc39e=function(_0x194d45,_0x59895c){_0x194d45=_0x194d45-0x0;var _0x47c390=_0x39ec[_0x194d45];return _0x47c390;};'use strict';function QueueReport(){this[_0xc39e('0x0')]=_0xc39e('0x1');this[_0xc39e('0x2')]='';this[_0xc39e('0x3')]='';this[_0xc39e('0x4')]='';this[_0xc39e('0x5')]='';this['queuecallerjoinAt']=null;this[_0xc39e('0x6')]=null;this[_0xc39e('0x7')]=0x1;this[_0xc39e('0x8')]=0x1;this['queuecallerabandon']=![];this[_0xc39e('0x9')]=null;this['queuecallercomplete']=![];this[_0xc39e('0xa')]=null;this[_0xc39e('0xb')]=![];this[_0xc39e('0xc')]=null;this[_0xc39e('0xd')]=0x1;this[_0xc39e('0xe')]='';this[_0xc39e('0xf')]='';this['connectedlinename']='';this[_0xc39e('0x10')]='';this[_0xc39e('0x11')]='';this[_0xc39e('0x12')]='';this[_0xc39e('0x13')]='';this['holdtime']=0x0;this[_0xc39e('0x14')]=![];this['lastAssignedTo']='';this[_0xc39e('0x15')]=0x0;this['variables']={};}module[_0xc39e('0x16')]=QueueReport;
\ No newline at end of file
+var _0x9836=['queuecallerabandon','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum','accountcode','context','exten','priority','assigned','lastAssignedTo','voice','variables','exports','inbound','uniqueid','queue','queuecallerjoinAt','queuecallerleaveAt','position','count'];(function(_0x41513a,_0x36ad3d){var _0x3cbc5b=function(_0x5ea99c){while(--_0x5ea99c){_0x41513a['push'](_0x41513a['shift']());}};_0x3cbc5b(++_0x36ad3d);}(_0x9836,0x1dc));var _0x6983=function(_0x43b145,_0x334544){_0x43b145=_0x43b145-0x0;var _0x4b80ec=_0x9836[_0x43b145];return _0x4b80ec;};'use strict';function QueueReport(){this['type']=_0x6983('0x0');this[_0x6983('0x1')]='';this['calleridnum']='';this['calleridname']='';this[_0x6983('0x2')]='';this[_0x6983('0x3')]=null;this[_0x6983('0x4')]=null;this[_0x6983('0x5')]=0x1;this[_0x6983('0x6')]=0x1;this[_0x6983('0x7')]=![];this['queuecallerabandonAt']=null;this['queuecallercomplete']=![];this[_0x6983('0x8')]=null;this[_0x6983('0x9')]=![];this[_0x6983('0xa')]=null;this[_0x6983('0xb')]=0x1;this[_0x6983('0xc')]='';this[_0x6983('0xd')]='';this['connectedlinename']='';this[_0x6983('0xe')]='';this[_0x6983('0xf')]='';this[_0x6983('0x10')]='';this[_0x6983('0x11')]='';this['holdtime']=0x0;this[_0x6983('0x12')]=![];this[_0x6983('0x13')]='';this['motionChannel']=_0x6983('0x14');this['mohtime']=0x0;this[_0x6983('0x15')]={};}module[_0x6983('0x16')]=QueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e93=['password','clientId','clientSecret','securityToken','serverUrl','Configurations','exports','name','username','remoteUri'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x5e93,0x115));var _0x35e9=function(_0x40cbce,_0x1ac6a9){_0x40cbce=_0x40cbce-0x0;var _0x2e93c1=_0x5e93[_0x40cbce];return _0x2e93c1;};'use strict';function SalesforceAccount(_0x3ee6ab){this['id']=_0x3ee6ab['id']||0x0;this['name']=_0x3ee6ab[_0x35e9('0x0')]||'';this['username']=_0x3ee6ab[_0x35e9('0x1')]||'';this[_0x35e9('0x2')]=_0x3ee6ab[_0x35e9('0x2')]||'';this['password']=_0x3ee6ab[_0x35e9('0x3')]||'';this['clientId']=_0x3ee6ab[_0x35e9('0x4')]||'';this[_0x35e9('0x5')]=_0x3ee6ab[_0x35e9('0x5')]||'';this[_0x35e9('0x6')]=_0x3ee6ab[_0x35e9('0x6')]||'';this['type']=_0x3ee6ab['type']||'integrationTab';this[_0x35e9('0x7')]=_0x3ee6ab[_0x35e9('0x7')]||'';this[_0x35e9('0x8')]=_0x3ee6ab[_0x35e9('0x8')]||{};}module[_0x35e9('0x9')]=SalesforceAccount;
\ No newline at end of file
+var _0x50a8=['integrationTab','serverUrl','Configurations','name','username','remoteUri','clientId','clientSecret','securityToken','type'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x50a8,0x193));var _0x850a=function(_0x86b219,_0x43038f){_0x86b219=_0x86b219-0x0;var _0x1f320c=_0x50a8[_0x86b219];return _0x1f320c;};'use strict';function SalesforceAccount(_0x20788d){this['id']=_0x20788d['id']||0x0;this[_0x850a('0x0')]=_0x20788d['name']||'';this[_0x850a('0x1')]=_0x20788d[_0x850a('0x1')]||'';this[_0x850a('0x2')]=_0x20788d[_0x850a('0x2')]||'';this['password']=_0x20788d['password']||'';this['clientId']=_0x20788d[_0x850a('0x3')]||'';this[_0x850a('0x4')]=_0x20788d['clientSecret']||'';this[_0x850a('0x5')]=_0x20788d['securityToken']||'';this[_0x850a('0x6')]=_0x20788d[_0x850a('0x6')]||_0x850a('0x7');this['serverUrl']=_0x20788d[_0x850a('0x8')]||'';this[_0x850a('0x9')]=_0x20788d[_0x850a('0x9')]||{};}module['exports']=SalesforceAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3ea=['name','username','password','remoteUri','serverUrl','Configurations'];(function(_0x9ffdd8,_0x414bbd){var _0x222710=function(_0x500ff3){while(--_0x500ff3){_0x9ffdd8['push'](_0x9ffdd8['shift']());}};_0x222710(++_0x414bbd);}(_0xe3ea,0x138));var _0xae3e=function(_0x3371ab,_0x1506ab){_0x3371ab=_0x3371ab-0x0;var _0x4a21de=_0xe3ea[_0x3371ab];return _0x4a21de;};'use strict';function ServicenowAccount(_0x5eca28){this['id']=_0x5eca28['id']||0x0;this['name']=_0x5eca28[_0xae3e('0x0')]||'';this['username']=_0x5eca28[_0xae3e('0x1')]||'';this[_0xae3e('0x2')]=_0x5eca28['password']||'';this[_0xae3e('0x3')]=_0x5eca28['remoteUri']||'';this[_0xae3e('0x4')]=_0x5eca28[_0xae3e('0x4')]||'';this[_0xae3e('0x5')]=_0x5eca28[_0xae3e('0x5')]||{};}module['exports']=ServicenowAccount;
\ No newline at end of file
+var _0xdb17=['remoteUri','serverUrl','Configurations','name','username','password'];(function(_0x146dd7,_0x4d877d){var _0x2af0bb=function(_0x2327bc){while(--_0x2327bc){_0x146dd7['push'](_0x146dd7['shift']());}};_0x2af0bb(++_0x4d877d);}(_0xdb17,0x18f));var _0x7db1=function(_0x225ade,_0x4ac72b){_0x225ade=_0x225ade-0x0;var _0x48fd50=_0xdb17[_0x225ade];return _0x48fd50;};'use strict';function ServicenowAccount(_0x5916c9){this['id']=_0x5916c9['id']||0x0;this[_0x7db1('0x0')]=_0x5916c9[_0x7db1('0x0')]||'';this['username']=_0x5916c9[_0x7db1('0x1')]||'';this[_0x7db1('0x2')]=_0x5916c9[_0x7db1('0x2')]||'';this[_0x7db1('0x3')]=_0x5916c9['remoteUri']||'';this[_0x7db1('0x4')]=_0x5916c9[_0x7db1('0x4')]||'';this[_0x7db1('0x5')]=_0x5916c9[_0x7db1('0x5')]||{};}module['exports']=ServicenowAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a7a=['username','password','remoteUri','serverUrl','Configurations','exports','name'];(function(_0x2589e2,_0x115179){var _0x320168=function(_0x39f6c2){while(--_0x39f6c2){_0x2589e2['push'](_0x2589e2['shift']());}};_0x320168(++_0x115179);}(_0x2a7a,0xd8));var _0xa2a7=function(_0x28fa46,_0x59e4fe){_0x28fa46=_0x28fa46-0x0;var _0x5494aa=_0x2a7a[_0x28fa46];return _0x5494aa;};'use strict';function SugarcrmAccount(_0x2e0d9e){this['id']=_0x2e0d9e['id']||0x0;this[_0xa2a7('0x0')]=_0x2e0d9e[_0xa2a7('0x0')]||'';this[_0xa2a7('0x1')]=_0x2e0d9e[_0xa2a7('0x1')]||'';this[_0xa2a7('0x2')]=_0x2e0d9e[_0xa2a7('0x2')]||'';this[_0xa2a7('0x3')]=_0x2e0d9e['remoteUri']||'';this[_0xa2a7('0x4')]=_0x2e0d9e['serverUrl']||'';this[_0xa2a7('0x5')]=_0x2e0d9e[_0xa2a7('0x5')]||{};}module[_0xa2a7('0x6')]=SugarcrmAccount;
\ No newline at end of file
+var _0x9fbb=['exports','name','username','password','remoteUri','serverUrl','Configurations'];(function(_0x292893,_0x3cd21e){var _0x5a55ac=function(_0x420f8d){while(--_0x420f8d){_0x292893['push'](_0x292893['shift']());}};_0x5a55ac(++_0x3cd21e);}(_0x9fbb,0x1eb));var _0xb9fb=function(_0x34fc64,_0x5e250d){_0x34fc64=_0x34fc64-0x0;var _0x592c62=_0x9fbb[_0x34fc64];return _0x592c62;};'use strict';function SugarcrmAccount(_0x1dd6c4){this['id']=_0x1dd6c4['id']||0x0;this['name']=_0x1dd6c4[_0xb9fb('0x0')]||'';this['username']=_0x1dd6c4[_0xb9fb('0x1')]||'';this[_0xb9fb('0x2')]=_0x1dd6c4['password']||'';this[_0xb9fb('0x3')]=_0x1dd6c4[_0xb9fb('0x3')]||'';this[_0xb9fb('0x4')]=_0x1dd6c4[_0xb9fb('0x4')]||'';this[_0xb9fb('0x5')]=_0x1dd6c4['Configurations']||{};}module[_0xb9fb('0x6')]=SugarcrmAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd810=['unknown','exports','name','accountcode','stateTime'];(function(_0x47242d,_0x13f993){var _0x30273a=function(_0x322cd2){while(--_0x322cd2){_0x47242d['push'](_0x47242d['shift']());}};_0x30273a(++_0x13f993);}(_0xd810,0x1dd));var _0x0d81=function(_0x710815,_0x520da8){_0x710815=_0x710815-0x0;var _0x5b3b89=_0xd810[_0x710815];return _0x5b3b89;};'use strict';function Telephone(_0x19880d){this['id']=_0x19880d['id']||0x0;this[_0x0d81('0x0')]=_0x19880d['name']||'';this[_0x0d81('0x1')]=_0x19880d[_0x0d81('0x1')]||'';this['state']='unknown';this[_0x0d81('0x2')]=0x0;this['status']=_0x0d81('0x3');this['address']='';}module[_0x0d81('0x4')]=Telephone;
\ No newline at end of file
+var _0x280d=['name','accountcode','state','unknown','stateTime','address','exports'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x280d,0x69));var _0xd280=function(_0x15143e,_0x45528a){_0x15143e=_0x15143e-0x0;var _0xde4a8e=_0x280d[_0x15143e];return _0xde4a8e;};'use strict';function Telephone(_0x4a11cc){this['id']=_0x4a11cc['id']||0x0;this[_0xd280('0x0')]=_0x4a11cc[_0xd280('0x0')]||'';this[_0xd280('0x1')]=_0x4a11cc[_0xd280('0x1')]||'';this[_0xd280('0x2')]=_0xd280('0x3');this[_0xd280('0x4')]=0x0;this['status']='unknown';this[_0xd280('0x5')]='';}module[_0xd280('0x6')]=Telephone;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['exports','name'];(function(_0x793926,_0x495646){var _0x196a0e=function(_0x42f59d){while(--_0x42f59d){_0x793926['push'](_0x793926['shift']());}};_0x196a0e(++_0x495646);}(_0xa9e0,0x123));var _0x0a9e=function(_0x376b45,_0x5964fb){_0x376b45=_0x376b45-0x0;var _0x2341b3=_0xa9e0[_0x376b45];return _0x2341b3;};'use strict';function template(_0x1f0015){this['id']=_0x1f0015['id']||0x0;this[_0x0a9e('0x0')]=_0x1f0015[_0x0a9e('0x0')]||'';this['html']=_0x1f0015['html']||'';}module[_0x0a9e('0x1')]=template;
\ No newline at end of file
+var _0xa9e0=['exports','name'];(function(_0x291e2e,_0x3bc802){var _0x2e7313=function(_0x3e330c){while(--_0x3e330c){_0x291e2e['push'](_0x291e2e['shift']());}};_0x2e7313(++_0x3bc802);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4ea69d,_0x290f53){_0x4ea69d=_0x4ea69d-0x0;var _0x5318e0=_0xa9e0[_0x4ea69d];return _0x5318e0;};'use strict';function template(_0x1f0015){this['id']=_0x1f0015['id']||0x0;this[_0x0a9e('0x0')]=_0x1f0015[_0x0a9e('0x0')]||'';this['html']=_0x1f0015['html']||'';}module[_0x0a9e('0x1')]=template;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fc2=['name','channel','voice','status','AllConditions','AnyConditions','Actions'];(function(_0x4023bf,_0x4a1c20){var _0x3d9130=function(_0x47e588){while(--_0x47e588){_0x4023bf['push'](_0x4023bf['shift']());}};_0x3d9130(++_0x4a1c20);}(_0x4fc2,0x111));var _0x24fc=function(_0xc1263e,_0x56d738){_0xc1263e=_0xc1263e-0x0;var _0x471f07=_0x4fc2[_0xc1263e];return _0x471f07;};'use strict';function Trigger(_0x5ea3ab){this['id']=_0x5ea3ab['id']||0x0;this[_0x24fc('0x0')]=_0x5ea3ab[_0x24fc('0x0')]||'';this[_0x24fc('0x1')]=_0x5ea3ab['channel']||_0x24fc('0x2');this[_0x24fc('0x3')]=_0x5ea3ab[_0x24fc('0x3')]||![];this['AllConditions']=_0x5ea3ab[_0x24fc('0x4')]||[];this[_0x24fc('0x5')]=_0x5ea3ab['AnyConditions']||[];this[_0x24fc('0x6')]=_0x5ea3ab[_0x24fc('0x6')]||[];}module['exports']=Trigger;
\ No newline at end of file
+var _0xda2d=['channel','voice','AllConditions','AnyConditions','Actions','exports','name'];(function(_0x4480c8,_0x1c7c34){var _0x61d9f6=function(_0x365445){while(--_0x365445){_0x4480c8['push'](_0x4480c8['shift']());}};_0x61d9f6(++_0x1c7c34);}(_0xda2d,0x102));var _0xdda2=function(_0x2cb835,_0x4e7e4c){_0x2cb835=_0x2cb835-0x0;var _0x5673ea=_0xda2d[_0x2cb835];return _0x5673ea;};'use strict';function Trigger(_0x2625ed){this['id']=_0x2625ed['id']||0x0;this[_0xdda2('0x0')]=_0x2625ed[_0xdda2('0x0')]||'';this[_0xdda2('0x1')]=_0x2625ed[_0xdda2('0x1')]||_0xdda2('0x2');this['status']=_0x2625ed['status']||![];this['AllConditions']=_0x2625ed[_0xdda2('0x3')]||[];this[_0xdda2('0x4')]=_0x2625ed[_0xdda2('0x4')]||[];this[_0xdda2('0x5')]=_0x2625ed[_0xdda2('0x5')]||[];}module[_0xdda2('0x6')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b56=['port','domain','domainport','refresh','stateRegistry','registrationtime','defaultuser','exports','active','name','state','unknown','stateTime','registry','indexOf','split'];(function(_0x23cdcf,_0x7d0ee2){var _0xf38e86=function(_0x175392){while(--_0x175392){_0x23cdcf['push'](_0x23cdcf['shift']());}};_0xf38e86(++_0x7d0ee2);}(_0x4b56,0x148));var _0x64b5=function(_0x57add2,_0x4f2b7d){_0x57add2=_0x57add2-0x0;var _0x4e3670=_0x4b56[_0x57add2];return _0x4e3670;};'use strict';function Trunk(_0x45b18b){this['id']=_0x45b18b['id']||0x0;this[_0x64b5('0x0')]=_0x45b18b[_0x64b5('0x0')]||![];this['name']=_0x45b18b[_0x64b5('0x1')]||'';this[_0x64b5('0x2')]=_0x64b5('0x3');this[_0x64b5('0x4')]=0x0;this['status']=_0x64b5('0x3');this[_0x64b5('0x5')]=_0x45b18b[_0x64b5('0x5')]&&_0x45b18b[_0x64b5('0x5')][_0x64b5('0x6')](':')?_0x45b18b[_0x64b5('0x5')][_0x64b5('0x7')](':')[0x0]:'';this['host']='';this[_0x64b5('0x8')]='';this[_0x64b5('0x9')]='';this[_0x64b5('0xa')]='';this[_0x64b5('0xb')]='';this[_0x64b5('0xc')]='unknown';this[_0x64b5('0xd')]='';this['address']='';this[_0x64b5('0xe')]=_0x45b18b[_0x64b5('0xe')]||'';}module[_0x64b5('0xf')]=Trunk;
\ No newline at end of file
+var _0xa6b2=['stateRegistry','registrationtime','address','defaultuser','exports','name','state','stateTime','status','unknown','registry','indexOf','split','port','domain','domainport','refresh'];(function(_0x2262c9,_0xb5382e){var _0x1efed8=function(_0x2e619f){while(--_0x2e619f){_0x2262c9['push'](_0x2262c9['shift']());}};_0x1efed8(++_0xb5382e);}(_0xa6b2,0x1d0));var _0x2a6b=function(_0x29f113,_0x2d4932){_0x29f113=_0x29f113-0x0;var _0x5cfadb=_0xa6b2[_0x29f113];return _0x5cfadb;};'use strict';function Trunk(_0x3ff3cf){this['id']=_0x3ff3cf['id']||0x0;this['active']=_0x3ff3cf['active']||![];this[_0x2a6b('0x0')]=_0x3ff3cf[_0x2a6b('0x0')]||'';this[_0x2a6b('0x1')]='unknown';this[_0x2a6b('0x2')]=0x0;this[_0x2a6b('0x3')]=_0x2a6b('0x4');this['registry']=_0x3ff3cf[_0x2a6b('0x5')]&&_0x3ff3cf[_0x2a6b('0x5')][_0x2a6b('0x6')](':')?_0x3ff3cf[_0x2a6b('0x5')][_0x2a6b('0x7')](':')[0x0]:'';this['host']='';this[_0x2a6b('0x8')]='';this[_0x2a6b('0x9')]='';this[_0x2a6b('0xa')]='';this[_0x2a6b('0xb')]='';this[_0x2a6b('0xc')]=_0x2a6b('0x4');this[_0x2a6b('0xd')]='';this[_0x2a6b('0xe')]='';this['defaultuser']=_0x3ff3cf[_0x2a6b('0xf')]||'';}module[_0x2a6b('0x10')]=Trunk;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac23=['mandatoryDisposition','exports','exten','recordingFormat','none'];(function(_0x12ed37,_0x554fd7){var _0x5b62c2=function(_0x58a125){while(--_0x58a125){_0x12ed37['push'](_0x12ed37['shift']());}};_0x5b62c2(++_0x554fd7);}(_0xac23,0xac));var _0x3ac2=function(_0x270075,_0x142657){_0x270075=_0x270075-0x0;var _0x24a211=_0xac23[_0x270075];return _0x24a211;};'use strict';function voiceExtension(_0x2765c1){this['id']=_0x2765c1['id']||0x0;this[_0x3ac2('0x0')]=_0x2765c1[_0x3ac2('0x0')]||'';this['recordingFormat']=_0x2765c1[_0x3ac2('0x1')]||_0x3ac2('0x2');this[_0x3ac2('0x3')]=_0x2765c1[_0x3ac2('0x3')]||![];}module[_0x3ac2('0x4')]=voiceExtension;
\ No newline at end of file
+var _0x9e61=['mandatoryDisposition','exports','exten','recordingFormat','none'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x9e61,0x1c4));var _0x19e6=function(_0x42bdad,_0x12836c){_0x42bdad=_0x42bdad-0x0;var _0x122626=_0x9e61[_0x42bdad];return _0x122626;};'use strict';function voiceExtension(_0x18840b){this['id']=_0x18840b['id']||0x0;this[_0x19e6('0x0')]=_0x18840b[_0x19e6('0x0')]||'';this[_0x19e6('0x1')]=_0x18840b[_0x19e6('0x1')]||_0x19e6('0x2');this[_0x19e6('0x3')]=_0x18840b['mandatoryDisposition']||![];}module[_0x19e6('0x4')]=voiceExtension;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99e9=['rrmemory','monitor_format','type','inbound','waiting','talking','total','answered','sumDuration','sumHoldTime','sumBillable','unmanaged','abandoned','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayTimeout','outboundReCallsDay','outboundAbandonedDay','handlePredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','not_inuse','inuse','busy','invalid','unavailable','ringinuse','onhold','wav','wav49','gsm'];(function(_0x20e92a,_0x5af0cf){var _0x378b5b=function(_0x49aab7){while(--_0x49aab7){_0x20e92a['push'](_0x20e92a['shift']());}};_0x378b5b(++_0x5af0cf);}(_0x99e9,0xec));var _0x999e=function(_0x1ea6eb,_0x33d3d4){_0x1ea6eb=_0x1ea6eb-0x0;var _0x127200=_0x99e9[_0x1ea6eb];return _0x127200;};'use strict';var statusDesc=['unknown',_0x999e('0x0'),_0x999e('0x1'),_0x999e('0x2'),_0x999e('0x3'),_0x999e('0x4'),'ringing',_0x999e('0x5'),_0x999e('0x6')];var monitorFormat={'wav':_0x999e('0x7'),'wav49':_0x999e('0x8'),'gsm':_0x999e('0x9')};var strategy={'rrmemory':_0x999e('0xa'),'roundrobin':'roundrobin'};function VoiceQueue(_0x374c32){this['id']=_0x374c32['id']||0x0;this['name']=_0x374c32['name']||'';this[_0x999e('0xb')]=_0x374c32[_0x999e('0xb')]||'';this[_0x999e('0xc')]=_0x374c32['type']||_0x999e('0xd');this[_0x999e('0xe')]=0x0;this[_0x999e('0xf')]=0x0;this[_0x999e('0x10')]=0x0;this[_0x999e('0x11')]=0x0;this[_0x999e('0x12')]=0x0;this[_0x999e('0x13')]=0x0;this[_0x999e('0x14')]=0x0;this[_0x999e('0x15')]=0x0;this[_0x999e('0x16')]=0x0;this[_0x999e('0x17')]=0x0;this[_0x999e('0x18')]=0x0;this[_0x999e('0x19')]=_0x374c32[_0x999e('0x19')]||![];this[_0x999e('0x1a')]=_0x374c32[_0x999e('0x1a')]||0xa;this[_0x999e('0x1b')]=_0x374c32['autopause']||'no';this[_0x999e('0x1c')]=!![];this[_0x999e('0x1d')]='';this[_0x999e('0x1e')]=0x0;this[_0x999e('0x1f')]=0x0;this[_0x999e('0x20')]=_0x374c32[_0x999e('0x20')]||null;this[_0x999e('0x21')]=_0x374c32[_0x999e('0x21')]?_0x374c32['dialGlobalInterval']:null;this[_0x999e('0x22')]=_0x374c32[_0x999e('0x22')];this['dialMethod']=_0x374c32[_0x999e('0x23')]||_0x999e('0x24');this[_0x999e('0x25')]=_0x374c32[_0x999e('0x25')]||0x0;this[_0x999e('0x26')]=_0x374c32[_0x999e('0x26')]||0x0;this['dialPowerLevel']=_0x374c32['dialPowerLevel']||0x1;this[_0x999e('0x27')]=_0x374c32['dialPredictiveOptimization']||_0x999e('0x28');this[_0x999e('0x29')]=_0x374c32['dialPredictiveOptimizationPercentage']||0.03;this[_0x999e('0x2a')]=_0x374c32[_0x999e('0x2a')]||0x258;this[_0x999e('0x2b')]=_0x374c32['dialOriginateCallerIdName']||_0x999e('0x2c');this[_0x999e('0x2d')]=_0x374c32[_0x999e('0x2d')]||_0x999e('0x2c');this[_0x999e('0x2e')]=_0x374c32[_0x999e('0x2e')]||0x1e;this[_0x999e('0x2f')]=_0x374c32[_0x999e('0x2f')]||_0x999e('0x30');this[_0x999e('0x31')]=_0x374c32[_0x999e('0x31')]||0x3;this[_0x999e('0x32')]=_0x374c32[_0x999e('0x32')]||undefined;this['dialCongestionMaxRetry']=_0x374c32[_0x999e('0x33')]||0x3;this[_0x999e('0x34')]=_0x374c32[_0x999e('0x34')]||0x96;this[_0x999e('0x35')]=_0x374c32[_0x999e('0x35')]||0x3;this['dialBusyRetryFrequency']=_0x374c32[_0x999e('0x36')]||0x96;this['dialNoAnswerMaxRetry']=_0x374c32[_0x999e('0x37')]||0x3;this[_0x999e('0x38')]=_0x374c32[_0x999e('0x38')]||0x96;this['dialNoSuchNumberMaxRetry']=_0x374c32[_0x999e('0x39')]||0x3;this[_0x999e('0x3a')]=_0x374c32[_0x999e('0x3a')]||0x96;this[_0x999e('0x3b')]=_0x374c32[_0x999e('0x3b')]||0x3;this[_0x999e('0x3c')]=_0x374c32['dialDropRetryFrequency']||0x96;this[_0x999e('0x3d')]=_0x374c32[_0x999e('0x3d')]||0x3;this[_0x999e('0x3e')]=_0x374c32[_0x999e('0x3e')]||0x96;this['dialMachineMaxRetry']=_0x374c32[_0x999e('0x3f')]||0x3;this[_0x999e('0x40')]=_0x374c32[_0x999e('0x40')]||0x96;this[_0x999e('0x41')]=_0x374c32[_0x999e('0x41')]||0x3;this['dialAgentRejectRetryFrequency']=_0x374c32['dialAgentRejectRetryFrequency']||0x96;this[_0x999e('0x42')]=_0x374c32[_0x999e('0x42')]||0x4;this[_0x999e('0x43')]=_0x374c32[_0x999e('0x43')]?_0x374c32[_0x999e('0x43')]:undefined;this[_0x999e('0x44')]=_0x374c32['TrunkBackup']?_0x374c32[_0x999e('0x44')]:undefined;this[_0x999e('0x45')]=_0x374c32[_0x999e('0x45')]||undefined;this[_0x999e('0x46')]=_0x374c32[_0x999e('0x46')]?_0x374c32[_0x999e('0x46')]:undefined;this[_0x999e('0x47')]=_0x374c32[_0x999e('0x47')]||_0x999e('0x48');this[_0x999e('0x49')]=_0x374c32[_0x999e('0x49')]||undefined;this[_0x999e('0x4a')]=_0x374c32['dialCutDigit']||undefined;this[_0x999e('0x4b')]=strategy[_0x374c32[_0x999e('0x4b')]]||_0x999e('0xa');this[_0x999e('0x4c')]=!![];this[_0x999e('0x4d')]=_0x374c32[_0x999e('0x4d')]||![];this[_0x999e('0x4e')]=_0x374c32[_0x999e('0x4e')];this[_0x999e('0x4f')]=_0x374c32['dialAMDGreeting'];this[_0x999e('0x50')]=_0x374c32[_0x999e('0x50')];this['dialAMDTotalAnalysisTime']=_0x374c32['dialAMDTotalAnalysisTime'];this[_0x999e('0x51')]=_0x374c32[_0x999e('0x51')];this[_0x999e('0x52')]=_0x374c32[_0x999e('0x52')];this[_0x999e('0x53')]=_0x374c32[_0x999e('0x53')];this[_0x999e('0x54')]=_0x374c32['dialAMDSilenceThreshold'];this['dialAMDMaximumWordLength']=_0x374c32[_0x999e('0x55')];this[_0x999e('0x56')]=0x0;this[_0x999e('0x57')]=0x0;this[_0x999e('0x58')]=_0x374c32[_0x999e('0x58')];this[_0x999e('0x59')]=0x0;this[_0x999e('0x5a')]=0x0;this[_0x999e('0x5b')]=0x0;this[_0x999e('0x5c')]=0x0;this[_0x999e('0x5d')]=0x0;this['outboundNoSuchCallsDay']=0x0;this[_0x999e('0x5e')]=0x0;this[_0x999e('0x5f')]=0x0;this[_0x999e('0x60')]=0x0;this['outboundDropCallsDayCallersExit']=0x0;this[_0x999e('0x61')]=0x0;this['outboundDropCallsDayACS']=0x0;this[_0x999e('0x62')]=0x0;this[_0x999e('0x63')]=0x0;this['startProgressive']=undefined;this['startPredictive']=undefined;this[_0x999e('0x64')]=undefined;this[_0x999e('0x65')]=1.05;this[_0x999e('0x66')]=0x0;this[_0x999e('0x67')]=0x0;this[_0x999e('0x68')]=0x0;this['predictiveIntervalDroppedCallsTimeout']=0x0;this['predictiveIntervalAvgHoldtime']=0x0;this['predictiveIntervalAvgTalktime']=0x0;this[_0x999e('0x69')]=0x0;this[_0x999e('0x6a')]=0x0;this[_0x999e('0x6b')]=_0x374c32[_0x999e('0x6c')]||0x14;this[_0x999e('0x6d')]=_0x374c32[_0x999e('0x6c')]||0xa;this[_0x999e('0x6e')]=0x0;this[_0x999e('0x6f')]=0x0;this[_0x999e('0x70')]=0x1;this[_0x999e('0x71')]=0x0;this[_0x999e('0x72')]=0x0;this[_0x999e('0x73')]=0x0;this[_0x999e('0x74')]=0x0;this[_0x999e('0x75')]=_0x374c32['dialRecallMeTimeout']||0x1e;this['dialRecallInQueue']=_0x374c32[_0x999e('0x76')]||![];this['dialQueueProject2']=_0x374c32['dialQueueProject2']||undefined;this['dialAgiAfterHangupClient']=_0x374c32['dialAgiAfterHangupClient']||![];this[_0x999e('0x77')]=_0x374c32[_0x999e('0x77')]||![];this[_0x999e('0xb')]=monitorFormat[_0x374c32['monitor_format']]?monitorFormat[_0x374c32[_0x999e('0xb')]]:undefined;this['mandatoryDisposition']=_0x374c32[_0x999e('0x78')]||![];this['mandatoryDispositionPause']=_0x374c32[_0x999e('0x79')]?_0x374c32[_0x999e('0x79')]:undefined;}module[_0x999e('0x7a')]=VoiceQueue;
\ No newline at end of file
+var _0xa2d7=['dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundDropCallsDayACS','outboundReCallsDay','outboundAbandonedDay','startProgressive','handlePredictive','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalHitRate','erlangCalls','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','unknown','inuse','invalid','unavailable','ringing','ringinuse','onhold','wav','wav49','gsm','name','monitor_format','type','inbound','waiting','talking','total','answered','sumDuration','sumHoldTime','unmanaged','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','anonymous','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting'];(function(_0x2670bf,_0x54050b){var _0x35356d=function(_0x3be385){while(--_0x3be385){_0x2670bf['push'](_0x2670bf['shift']());}};_0x35356d(++_0x54050b);}(_0xa2d7,0x195));var _0x7a2d=function(_0x240c18,_0x52ba5d){_0x240c18=_0x240c18-0x0;var _0x3b8baf=_0xa2d7[_0x240c18];return _0x3b8baf;};'use strict';var statusDesc=[_0x7a2d('0x0'),'not_inuse',_0x7a2d('0x1'),'busy',_0x7a2d('0x2'),_0x7a2d('0x3'),_0x7a2d('0x4'),_0x7a2d('0x5'),_0x7a2d('0x6')];var monitorFormat={'wav':_0x7a2d('0x7'),'wav49':_0x7a2d('0x8'),'gsm':_0x7a2d('0x9')};var strategy={'rrmemory':'rrmemory','roundrobin':'roundrobin'};function VoiceQueue(_0x596358){this['id']=_0x596358['id']||0x0;this[_0x7a2d('0xa')]=_0x596358[_0x7a2d('0xa')]||'';this[_0x7a2d('0xb')]=_0x596358[_0x7a2d('0xb')]||'';this[_0x7a2d('0xc')]=_0x596358[_0x7a2d('0xc')]||_0x7a2d('0xd');this[_0x7a2d('0xe')]=0x0;this[_0x7a2d('0xf')]=0x0;this[_0x7a2d('0x10')]=0x0;this[_0x7a2d('0x11')]=0x0;this[_0x7a2d('0x12')]=0x0;this[_0x7a2d('0x13')]=0x0;this['sumBillable']=0x0;this[_0x7a2d('0x14')]=0x0;this['abandoned']=0x0;this['loggedIn']=0x0;this['available']=0x0;this[_0x7a2d('0x15')]=_0x596358['acw']||![];this[_0x7a2d('0x16')]=_0x596358[_0x7a2d('0x16')]||0xa;this['autopause']=_0x596358[_0x7a2d('0x17')]||'no';this[_0x7a2d('0x18')]=!![];this[_0x7a2d('0x19')]='';this[_0x7a2d('0x1a')]=0x0;this[_0x7a2d('0x1b')]=0x0;this[_0x7a2d('0x1c')]=_0x596358['dialTimezone']||null;this['dialGlobalInterval']=_0x596358[_0x7a2d('0x1d')]?_0x596358['dialGlobalInterval']:null;this[_0x7a2d('0x1e')]=_0x596358[_0x7a2d('0x1e')];this[_0x7a2d('0x1f')]=_0x596358[_0x7a2d('0x1f')]||'progressive';this[_0x7a2d('0x20')]=_0x596358[_0x7a2d('0x20')]||0x0;this['dialLimitQueue']=_0x596358[_0x7a2d('0x21')]||0x0;this['dialPowerLevel']=_0x596358[_0x7a2d('0x22')]||0x1;this[_0x7a2d('0x23')]=_0x596358[_0x7a2d('0x23')]||_0x7a2d('0x24');this[_0x7a2d('0x25')]=_0x596358['dialPredictiveOptimizationPercentage']||0.03;this[_0x7a2d('0x26')]=_0x596358[_0x7a2d('0x26')]||0x258;this[_0x7a2d('0x27')]=_0x596358[_0x7a2d('0x27')]||'anonymous';this['dialOriginateCallerIdNumber']=_0x596358[_0x7a2d('0x28')]||_0x7a2d('0x29');this['dialOriginateTimeout']=_0x596358[_0x7a2d('0x2a')]||0x1e;this['dialQueueOptions']=_0x596358[_0x7a2d('0x2b')]||_0x7a2d('0x2c');this['dialQueueTimeout']=_0x596358[_0x7a2d('0x2d')]||0x3;this[_0x7a2d('0x2e')]=_0x596358['dialQueueProject']||undefined;this[_0x7a2d('0x2f')]=_0x596358['dialCongestionMaxRetry']||0x3;this[_0x7a2d('0x30')]=_0x596358[_0x7a2d('0x30')]||0x96;this[_0x7a2d('0x31')]=_0x596358[_0x7a2d('0x31')]||0x3;this[_0x7a2d('0x32')]=_0x596358[_0x7a2d('0x32')]||0x96;this[_0x7a2d('0x33')]=_0x596358[_0x7a2d('0x33')]||0x3;this[_0x7a2d('0x34')]=_0x596358[_0x7a2d('0x34')]||0x96;this[_0x7a2d('0x35')]=_0x596358[_0x7a2d('0x35')]||0x3;this[_0x7a2d('0x36')]=_0x596358[_0x7a2d('0x36')]||0x96;this[_0x7a2d('0x37')]=_0x596358[_0x7a2d('0x37')]||0x3;this[_0x7a2d('0x38')]=_0x596358[_0x7a2d('0x38')]||0x96;this[_0x7a2d('0x39')]=_0x596358['dialAbandonedMaxRetry']||0x3;this['dialAbandonedRetryFrequency']=_0x596358[_0x7a2d('0x3a')]||0x96;this[_0x7a2d('0x3b')]=_0x596358[_0x7a2d('0x3b')]||0x3;this[_0x7a2d('0x3c')]=_0x596358[_0x7a2d('0x3c')]||0x96;this[_0x7a2d('0x3d')]=_0x596358['dialAgentRejectMaxRetry']||0x3;this['dialAgentRejectRetryFrequency']=_0x596358[_0x7a2d('0x3e')]||0x96;this['dialGlobalMaxRetry']=_0x596358[_0x7a2d('0x3f')]||0x4;this[_0x7a2d('0x40')]=_0x596358['Trunk']?_0x596358[_0x7a2d('0x40')]:undefined;this[_0x7a2d('0x41')]=_0x596358[_0x7a2d('0x41')]?_0x596358[_0x7a2d('0x41')]:undefined;this['dialPrefix']=_0x596358[_0x7a2d('0x42')]||undefined;this[_0x7a2d('0x43')]=_0x596358[_0x7a2d('0x43')]?_0x596358['Interval']:undefined;this[_0x7a2d('0x44')]=_0x596358['dialOrderByScheduledAt']||'DESC';this[_0x7a2d('0x45')]=_0x596358[_0x7a2d('0x45')]||undefined;this[_0x7a2d('0x46')]=_0x596358[_0x7a2d('0x46')]||undefined;this['strategy']=strategy[_0x596358[_0x7a2d('0x47')]]||'rrmemory';this['queueStatusComplete']=!![];this['dialAMDActive']=_0x596358[_0x7a2d('0x48')]||![];this['dialAMDInitialSilence']=_0x596358[_0x7a2d('0x49')];this['dialAMDGreeting']=_0x596358[_0x7a2d('0x4a')];this[_0x7a2d('0x4b')]=_0x596358[_0x7a2d('0x4b')];this[_0x7a2d('0x4c')]=_0x596358[_0x7a2d('0x4c')];this[_0x7a2d('0x4d')]=_0x596358[_0x7a2d('0x4d')];this['dialAMDBetweenWordsSilence']=_0x596358[_0x7a2d('0x4e')];this['dialAMDMaximumNumberOfWords']=_0x596358[_0x7a2d('0x4f')];this[_0x7a2d('0x50')]=_0x596358[_0x7a2d('0x50')];this[_0x7a2d('0x51')]=_0x596358[_0x7a2d('0x51')];this[_0x7a2d('0x52')]=0x0;this[_0x7a2d('0x53')]=0x0;this[_0x7a2d('0x54')]=_0x596358[_0x7a2d('0x54')];this[_0x7a2d('0x55')]=0x0;this[_0x7a2d('0x56')]=0x0;this[_0x7a2d('0x57')]=0x0;this[_0x7a2d('0x58')]=0x0;this['outboundCongestionCallsDay']=0x0;this['outboundNoSuchCallsDay']=0x0;this[_0x7a2d('0x59')]=0x0;this[_0x7a2d('0x5a')]=0x0;this[_0x7a2d('0x5b')]=0x0;this[_0x7a2d('0x5c')]=0x0;this[_0x7a2d('0x5d')]=0x0;this[_0x7a2d('0x5e')]=0x0;this[_0x7a2d('0x5f')]=0x0;this[_0x7a2d('0x60')]=0x0;this[_0x7a2d('0x61')]=undefined;this['startPredictive']=undefined;this[_0x7a2d('0x62')]=undefined;this['predictiveIntervalMultiplicativeFactor']=1.05;this[_0x7a2d('0x63')]=0x0;this[_0x7a2d('0x64')]=0x0;this['predictiveIntervalDroppedCallsCallersExit']=0x0;this[_0x7a2d('0x65')]=0x0;this['predictiveIntervalAvgHoldtime']=0x0;this['predictiveIntervalAvgTalktime']=0x0;this[_0x7a2d('0x66')]=0x0;this[_0x7a2d('0x67')]=0x0;this[_0x7a2d('0x68')]=_0x596358[_0x7a2d('0x69')]||0x14;this[_0x7a2d('0x6a')]=_0x596358[_0x7a2d('0x69')]||0xa;this[_0x7a2d('0x6b')]=0x0;this['predictiveIntervalErlangCallsDroppedCalls']=0x0;this[_0x7a2d('0x6c')]=0x1;this[_0x7a2d('0x6d')]=0x0;this['erlangCallToSecond']=0x0;this[_0x7a2d('0x6e')]=0x0;this[_0x7a2d('0x6f')]=0x0;this[_0x7a2d('0x70')]=_0x596358['dialRecallMeTimeout']||0x1e;this[_0x7a2d('0x71')]=_0x596358[_0x7a2d('0x71')]||![];this['dialQueueProject2']=_0x596358[_0x7a2d('0x72')]||undefined;this['dialAgiAfterHangupClient']=_0x596358[_0x7a2d('0x73')]||![];this['dialAgiAfterHangupAgent']=_0x596358[_0x7a2d('0x74')]||![];this[_0x7a2d('0xb')]=monitorFormat[_0x596358[_0x7a2d('0xb')]]?monitorFormat[_0x596358[_0x7a2d('0xb')]]:undefined;this[_0x7a2d('0x75')]=_0x596358[_0x7a2d('0x75')]||![];this[_0x7a2d('0x76')]=_0x596358[_0x7a2d('0x76')]?_0x596358[_0x7a2d('0x76')]:undefined;}module[_0x7a2d('0x77')]=VoiceQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47f1=['name','username','accessKey','remoteUri','Configurations','exports'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x47f1,0xae));var _0x147f=function(_0x3bce6c,_0x188170){_0x3bce6c=_0x3bce6c-0x0;var _0x236e1a=_0x47f1[_0x3bce6c];return _0x236e1a;};'use strict';function VtigerAccount(_0x328b0a){this['id']=_0x328b0a['id']||0x0;this[_0x147f('0x0')]=_0x328b0a['name']||'';this[_0x147f('0x1')]=_0x328b0a[_0x147f('0x1')]||'';this[_0x147f('0x2')]=_0x328b0a[_0x147f('0x2')]||'';this[_0x147f('0x3')]=_0x328b0a[_0x147f('0x3')]||'';this['serverUrl']=_0x328b0a['serverUrl']||'';this[_0x147f('0x4')]=_0x328b0a[_0x147f('0x4')]||{};}module[_0x147f('0x5')]=VtigerAccount;
\ No newline at end of file
+var _0x7881=['name','username','accessKey','remoteUri','Configurations','exports'];(function(_0x36f05f,_0x5bfa89){var _0x4a3382=function(_0x167042){while(--_0x167042){_0x36f05f['push'](_0x36f05f['shift']());}};_0x4a3382(++_0x5bfa89);}(_0x7881,0x1b0));var _0x1788=function(_0x1ece99,_0x4f2735){_0x1ece99=_0x1ece99-0x0;var _0x4623ee=_0x7881[_0x1ece99];return _0x4623ee;};'use strict';function VtigerAccount(_0x2f2213){this['id']=_0x2f2213['id']||0x0;this['name']=_0x2f2213[_0x1788('0x0')]||'';this['username']=_0x2f2213[_0x1788('0x1')]||'';this[_0x1788('0x2')]=_0x2f2213[_0x1788('0x2')]||'';this[_0x1788('0x3')]=_0x2f2213[_0x1788('0x3')]||'';this['serverUrl']=_0x2f2213['serverUrl']||'';this[_0x1788('0x4')]=_0x2f2213['Configurations']||{};}module[_0x1788('0x5')]=VtigerAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a5c=['token','remoteUri','authType','type','integrationTab','serverUrl','Configurations','exports','name','username','password'];(function(_0x382920,_0x23b099){var _0x2cf1eb=function(_0x2ec02d){while(--_0x2ec02d){_0x382920['push'](_0x382920['shift']());}};_0x2cf1eb(++_0x23b099);}(_0x2a5c,0x194));var _0xc2a5=function(_0x7439ec,_0x275d3a){_0x7439ec=_0x7439ec-0x0;var _0x1f0616=_0x2a5c[_0x7439ec];return _0x1f0616;};'use strict';function ZendeskAccount(_0x133674){this['id']=_0x133674['id']||0x0;this[_0xc2a5('0x0')]=_0x133674[_0xc2a5('0x0')]||'';this[_0xc2a5('0x1')]=_0x133674[_0xc2a5('0x1')]||'';this[_0xc2a5('0x2')]=_0x133674[_0xc2a5('0x2')]||'';this[_0xc2a5('0x3')]=_0x133674[_0xc2a5('0x3')]||'';this[_0xc2a5('0x4')]=_0x133674['remoteUri']||'';this['authType']=_0x133674[_0xc2a5('0x5')]||'';this[_0xc2a5('0x6')]=_0x133674['type']||_0xc2a5('0x7');this[_0xc2a5('0x8')]=_0x133674[_0xc2a5('0x8')]||'';this[_0xc2a5('0x9')]=_0x133674['Configurations']||{};}module[_0xc2a5('0xa')]=ZendeskAccount;
\ No newline at end of file
+var _0x3291=['serverUrl','Configurations','name','username','password','token','remoteUri','authType','type'];(function(_0x2d58a6,_0x26a11d){var _0x31050c=function(_0x1f4374){while(--_0x1f4374){_0x2d58a6['push'](_0x2d58a6['shift']());}};_0x31050c(++_0x26a11d);}(_0x3291,0x1b2));var _0x1329=function(_0x4b075f,_0x21b40a){_0x4b075f=_0x4b075f-0x0;var _0x4cbf2a=_0x3291[_0x4b075f];return _0x4cbf2a;};'use strict';function ZendeskAccount(_0x45276a){this['id']=_0x45276a['id']||0x0;this[_0x1329('0x0')]=_0x45276a[_0x1329('0x0')]||'';this['username']=_0x45276a[_0x1329('0x1')]||'';this['password']=_0x45276a[_0x1329('0x2')]||'';this[_0x1329('0x3')]=_0x45276a[_0x1329('0x3')]||'';this['remoteUri']=_0x45276a[_0x1329('0x4')]||'';this[_0x1329('0x5')]=_0x45276a[_0x1329('0x5')]||'';this[_0x1329('0x6')]=_0x45276a[_0x1329('0x6')]||'integrationTab';this[_0x1329('0x7')]=_0x45276a[_0x1329('0x7')]||'';this['Configurations']=_0x45276a[_0x1329('0x8')]||{};}module['exports']=ZendeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb41=['Configurations','exports','description','host','zone','clientId','clientSecret','code'];(function(_0x4db97f,_0x3f9a6a){var _0x2dd868=function(_0x7c8397){while(--_0x7c8397){_0x4db97f['push'](_0x4db97f['shift']());}};_0x2dd868(++_0x3f9a6a);}(_0xfb41,0x152));var _0x1fb4=function(_0x180cd0,_0x386c6e){_0x180cd0=_0x180cd0-0x0;var _0x49fc32=_0xfb41[_0x180cd0];return _0x49fc32;};'use strict';function ZohoAccount(_0x346551){this['id']=_0x346551['id']||0x0;this['name']=_0x346551['name']||'';this[_0x1fb4('0x0')]=_0x346551[_0x1fb4('0x0')]||'';this[_0x1fb4('0x1')]=_0x346551[_0x1fb4('0x1')]||'';this[_0x1fb4('0x2')]=_0x346551[_0x1fb4('0x2')]||'';this[_0x1fb4('0x3')]=_0x346551['clientId']||'';this[_0x1fb4('0x4')]=_0x346551[_0x1fb4('0x4')]||'';this['serverUrl']=_0x346551['serverUrl']||'';this[_0x1fb4('0x5')]=_0x346551[_0x1fb4('0x5')]||'';this['refreshToken']=_0x346551['refreshToken']||'';this[_0x1fb4('0x6')]=_0x346551[_0x1fb4('0x6')]||{};}module[_0x1fb4('0x7')]=ZohoAccount;
\ No newline at end of file
+var _0x1b70=['code','refreshToken','Configurations','description','host','zone','clientId','clientSecret','serverUrl'];(function(_0x206c37,_0x3316ca){var _0x2cc614=function(_0x13b3c7){while(--_0x13b3c7){_0x206c37['push'](_0x206c37['shift']());}};_0x2cc614(++_0x3316ca);}(_0x1b70,0x1bc));var _0x01b7=function(_0xf0ec6e,_0xa183d3){_0xf0ec6e=_0xf0ec6e-0x0;var _0x8bbc27=_0x1b70[_0xf0ec6e];return _0x8bbc27;};'use strict';function ZohoAccount(_0x32b7f5){this['id']=_0x32b7f5['id']||0x0;this['name']=_0x32b7f5['name']||'';this[_0x01b7('0x0')]=_0x32b7f5[_0x01b7('0x0')]||'';this[_0x01b7('0x1')]=_0x32b7f5['host']||'';this[_0x01b7('0x2')]=_0x32b7f5[_0x01b7('0x2')]||'';this[_0x01b7('0x3')]=_0x32b7f5[_0x01b7('0x3')]||'';this[_0x01b7('0x4')]=_0x32b7f5[_0x01b7('0x4')]||'';this[_0x01b7('0x5')]=_0x32b7f5[_0x01b7('0x5')]||'';this[_0x01b7('0x6')]=_0x32b7f5['code']||'';this[_0x01b7('0x7')]=_0x32b7f5[_0x01b7('0x7')]||'';this[_0x01b7('0x8')]=_0x32b7f5[_0x01b7('0x8')]||{};}module['exports']=ZohoAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4caa=['calleridname','Contact','phone','active','calleridnum','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countmachineretry','countnosuchnumberretry','countagentrejectretry','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','prototype','getCaller','format','\x22%s\x22\x20<%s>','util','moment','isNil','string','uniqueid','queue','type','campaigntype','dialAnswer','membername','Agent','name','channelAgent'];(function(_0x1ac035,_0x27095b){var _0x40fbeb=function(_0x55816d){while(--_0x55816d){_0x1ac035['push'](_0x1ac035['shift']());}};_0x40fbeb(++_0x27095b);}(_0x4caa,0x133));var _0xa4ca=function(_0x1fde53,_0x4e8b6c){_0x1fde53=_0x1fde53-0x0;var _0x987cce=_0x4caa[_0x1fde53];return _0x987cce;};'use strict';var util=require(_0xa4ca('0x0'));var _=require('lodash');var moment=require(_0xa4ca('0x1'));function checkNameSurname(_0x2aa6ac,_0x248a35,_0x20959b){var _0x53c65b='';if(!_[_0xa4ca('0x2')](_0x248a35)&&_0xa4ca('0x3')===typeof _0x248a35){_0x53c65b+=_0x248a35;}if(!_[_0xa4ca('0x2')](_0x20959b)&&'string'===typeof _0x20959b){_0x53c65b+='\x20'+_0x20959b;}if(_0x53c65b!==''){return _0x53c65b;}return _0x2aa6ac;}function Action(_0x207146,_0x4b195f,_0x13058c,_0x299be7,_0x455247){this[_0xa4ca('0x4')]=_0x13058c||undefined;this['idContact']=_0x207146['id'];this[_0xa4ca('0x5')]=_0x4b195f['name'];this[_0xa4ca('0x6')]=_0x4b195f[_0xa4ca('0x6')];this[_0xa4ca('0x7')]=_0xa4ca('0x5');this[_0xa4ca('0x8')]=![];this[_0xa4ca('0x9')]=_['isNil'](_0x207146['Agent'])?undefined:_0x207146[_0xa4ca('0xa')][_0xa4ca('0xb')];this[_0xa4ca('0xc')]=this[_0xa4ca('0x9')]?util['format']('SIP/%s',this[_0xa4ca('0x9')]):_0x299be7||undefined;this[_0xa4ca('0xd')]=checkNameSurname(_0x207146[_0xa4ca('0xe')][_0xa4ca('0xf')],_0x207146[_0xa4ca('0xe')]['firstName'],_0x207146[_0xa4ca('0xe')]['lastName']);this[_0xa4ca('0x10')]=_0x207146[_0xa4ca('0x10')]||![];this[_0xa4ca('0x11')]=_0x207146[_0xa4ca('0xe')][_0xa4ca('0xf')];this[_0xa4ca('0x12')]=_0x207146[_0xa4ca('0x12')];this[_0xa4ca('0x13')]=_0x207146[_0xa4ca('0x13')]||0x0;this[_0xa4ca('0x14')]=_0x207146[_0xa4ca('0x14')]||0x0;this[_0xa4ca('0x15')]=_0x207146[_0xa4ca('0x15')]||0x0;this['countglobal']=(_0x207146[_0xa4ca('0x13')]||0x0)+(_0x207146[_0xa4ca('0x14')]||0x0)+(_0x207146[_0xa4ca('0x15')]||0x0)+(_0x207146['countnosuchnumberretry']||0x0)+(_0x207146[_0xa4ca('0x16')]||0x0)+(_0x207146[_0xa4ca('0x17')]||0x0)+(_0x207146[_0xa4ca('0x18')]||0x0)+(_0x207146['countagentrejectretry']||0x0);this[_0xa4ca('0x19')]=_0x207146[_0xa4ca('0x19')]||0x0;this[_0xa4ca('0x16')]=_0x207146[_0xa4ca('0x16')]||0x0;this[_0xa4ca('0x17')]=_0x207146[_0xa4ca('0x17')]||0x0;this[_0xa4ca('0x18')]=_0x207146['countmachineretry']||0x0;this[_0xa4ca('0x1a')]=_0x207146[_0xa4ca('0x1a')]||0x0;this['callback']=_0x207146[_0xa4ca('0x1b')];this[_0xa4ca('0x1c')]=_0x207146[_0xa4ca('0x1c')];this['callbackat']=_0x207146[_0xa4ca('0x1d')];this[_0xa4ca('0x1e')]=_0x207146[_0xa4ca('0x1e')];this[_0xa4ca('0x1f')]=_0x207146[_0xa4ca('0x1f')];this[_0xa4ca('0x20')]=_0x207146[_0xa4ca('0x20')];this[_0xa4ca('0x21')]=_[_0xa4ca('0x2')](_0x207146['Agent'])?_0x207146[_0xa4ca('0x21')]:_0x207146[_0xa4ca('0xa')]['id'];this[_0xa4ca('0x22')]=_0x207146[_0xa4ca('0x22')];this[_0xa4ca('0x23')]='';this['originatecalleridname']='';}Action[_0xa4ca('0x24')][_0xa4ca('0x25')]=function(){return util[_0xa4ca('0x26')](_0xa4ca('0x27'),this[_0xa4ca('0xd')],this['number']);};module['exports']=Action;
\ No newline at end of file
+var _0x302a=['getCaller','number','exports','util','moment','isNil','string','idContact','queue','name','type','campaigntype','Agent','membername','format','SIP/%s','calleridname','phone','Contact','firstName','lastName','active','calleridnum','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','countabandonedretry','callback','callbackuniqueid','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','originatecalleridname','prototype'];(function(_0x31edb9,_0xb57459){var _0x21e33a=function(_0x3fde47){while(--_0x3fde47){_0x31edb9['push'](_0x31edb9['shift']());}};_0x21e33a(++_0xb57459);}(_0x302a,0x84));var _0xa302=function(_0x3c78e0,_0x53578d){_0x3c78e0=_0x3c78e0-0x0;var _0x2274b1=_0x302a[_0x3c78e0];return _0x2274b1;};'use strict';var util=require(_0xa302('0x0'));var _=require('lodash');var moment=require(_0xa302('0x1'));function checkNameSurname(_0x3ac95c,_0x464906,_0x392932){var _0x2f4388='';if(!_[_0xa302('0x2')](_0x464906)&&_0xa302('0x3')===typeof _0x464906){_0x2f4388+=_0x464906;}if(!_[_0xa302('0x2')](_0x392932)&&_0xa302('0x3')===typeof _0x392932){_0x2f4388+='\x20'+_0x392932;}if(_0x2f4388!==''){return _0x2f4388;}return _0x3ac95c;}function Action(_0x158388,_0x3c4ef4,_0x289a27,_0x107d69,_0x2833d0){this['uniqueid']=_0x289a27||undefined;this[_0xa302('0x4')]=_0x158388['id'];this[_0xa302('0x5')]=_0x3c4ef4[_0xa302('0x6')];this[_0xa302('0x7')]=_0x3c4ef4[_0xa302('0x7')];this[_0xa302('0x8')]=_0xa302('0x5');this['dialAnswer']=![];this['membername']=_[_0xa302('0x2')](_0x158388[_0xa302('0x9')])?undefined:_0x158388['Agent'][_0xa302('0x6')];this['channelAgent']=this[_0xa302('0xa')]?util[_0xa302('0xb')](_0xa302('0xc'),this['membername']):_0x107d69||undefined;this[_0xa302('0xd')]=checkNameSurname(_0x158388['Contact'][_0xa302('0xe')],_0x158388[_0xa302('0xf')][_0xa302('0x10')],_0x158388[_0xa302('0xf')][_0xa302('0x11')]);this[_0xa302('0x12')]=_0x158388['active']||![];this[_0xa302('0x13')]=_0x158388[_0xa302('0xf')][_0xa302('0xe')];this[_0xa302('0x14')]=_0x158388[_0xa302('0x14')];this[_0xa302('0x15')]=_0x158388['countbusyretry']||0x0;this[_0xa302('0x16')]=_0x158388['countcongestionretry']||0x0;this[_0xa302('0x17')]=_0x158388[_0xa302('0x17')]||0x0;this[_0xa302('0x18')]=(_0x158388[_0xa302('0x15')]||0x0)+(_0x158388[_0xa302('0x16')]||0x0)+(_0x158388[_0xa302('0x17')]||0x0)+(_0x158388['countnosuchnumberretry']||0x0)+(_0x158388[_0xa302('0x19')]||0x0)+(_0x158388['countabandonedretry']||0x0)+(_0x158388[_0xa302('0x1a')]||0x0)+(_0x158388[_0xa302('0x1b')]||0x0);this[_0xa302('0x1c')]=_0x158388[_0xa302('0x1c')]||0x0;this['countdropretry']=_0x158388[_0xa302('0x19')]||0x0;this[_0xa302('0x1d')]=_0x158388[_0xa302('0x1d')]||0x0;this['countmachineretry']=_0x158388[_0xa302('0x1a')]||0x0;this['countagentrejectretry']=_0x158388[_0xa302('0x1b')]||0x0;this[_0xa302('0x1e')]=_0x158388[_0xa302('0x1e')];this[_0xa302('0x1f')]=_0x158388[_0xa302('0x1f')];this['callbackat']=_0x158388['callbackat'];this['recallme']=_0x158388[_0xa302('0x20')];this[_0xa302('0x21')]=_0x158388[_0xa302('0x21')];this['ListId']=_0x158388[_0xa302('0x22')];this[_0xa302('0x23')]=_[_0xa302('0x2')](_0x158388[_0xa302('0x9')])?_0x158388[_0xa302('0x23')]:_0x158388['Agent']['id'];this['VoiceQueueId']=_0x158388[_0xa302('0x24')];this[_0xa302('0x25')]='';this[_0xa302('0x26')]='';}Action[_0xa302('0x27')][_0xa302('0x28')]=function(){return util[_0xa302('0xb')]('\x22%s\x22\x20<%s>',this[_0xa302('0xd')],this[_0xa302('0x29')]);};module[_0xa302('0x2a')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa10=['stringify','md5','voice:queue:%s','voice_queue:save','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','format','voice_queue_channel:remove','voice_queue_presence:remove','sendMessageOneNotActive','paused','message','NOT_ACTIVE','\x20is\x20not\x20active','logger','\x20is\x20disactive','syncCampaigns','booked','clearZombieChannels','hasOwnProperty','dialActive','setMessage','recallMe','sequence','isNil','actions','[clearZombieChannels][talking]','Queue','originated:\x20','queue','pTalking:\x20','dialAnswer','pick','contactId','UserId','VoiceQueueId','ListId','Action','catch','No\x20such\x20channel','updateOriginated','decrementTalkink','[clearZombieChannel]','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','clearZombieChannel','getContactRecallMe','agentReadyId','then','length','scheduledat','Agent','run','logger2','[RecallMe]','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','dialRecallInQueue','rescheduleContactInQueue','createBody','RecallFailedTimeout','[HistoryRecallClose]','createCustomerFinal','[getContactRecallMe]','IsNotLoggedIn','AGENTS_NOT_LOGGED','isActive','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','callProgressDetectingCustomer','outboundNoSuchCallsDay','countglobal','totalGlobal','NoSuchNumber','custom:agentnosuchnumber','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','[callProgressDetectingCustomer][logNoSuchGlobal]','rescheduleContact','countnosuchnumberretry','dialNoSuchNumberRetryFrequency','unlockAgent','activeContact','ANSWER','[syncHangup][talking][increment]','uniqueid','\x20Queue','custom:agentconnect','buildObj','custom:agentConnectPreview','custom:agentcomplete','complete','[16]','Answer','createCustomerHistory','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','[syncHangup][talking][decrement]','linkedid','countbusyretry','busy','[callProgressDetectingCustomer][logBusy]','Global','[callProgressDetectingCustomer][logBusyGlobal]','countnoanswerretry','NoAnswer','custom:agentnoanswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','countcongestionretry','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','scheduledAt','dialBusyRetryFrequency','CANCEL','agentreject','[syncHangupRequest][logAgentReject]','AgentReject','[callProgressDetectingCustomer][logAgentReject]','countagentrejectretry','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','outboundAbandonedCallsDay','countabandonedretry','Abandoned','[callProgressDetectingCustomer][logAbandoned]','dialAbandonedMaxRety','dialAbandonedRetryFrequency','dialstatus','amd','[callProgressDetectingCustomer][hangupInAMD]','outboundUnknownCallsDay','custom:amd','[callProgressDetectingCustomer][machine]','[default]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','object','isUndefined','reason','logAgent','createAgentHistory','[callProgressDetectingAgent][logNoAnswer]','Busy','AnswerAGI','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent][logCongestion]','[callProgressDetectingAgent]','[originated][decrement][callProgressDetectingAgent]','checkInBlack','Contact','phone','Contact\x20is\x20undefined','lookAgent','isEmpty','execCall','[Preview][execCall][success]','Queue:\x20','\x20IdHopper:\x20','idContact','called','Calling','[Preview][execCall][failure]','logBlacklist','createHistory','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','status','reachable','unmonitored','execRun','unlock','unlockContact','disableContact','getContactPreview','recallme','validateContact','isValid','checkIsBlackList','Contact.phone','[Preview][checkIsBlackList]','[Preview][getContactPreview]','Call\x20unsuccessful','Empty\x20Contact','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','SIP/%s/%s%s','trim','dialCutDigit','substring','getCallerId','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','extractCalleridName','addVariables','merge','starttime','variablesAction','channelAgent','destconnectedlinenum','calleridnum','user:%s','user:agentconnect','accountcode','[originated][increment]','OriginateError','[originateFailure][logOriginateFailure]','channel','actionid','responsetime','isFailure','custom:agentringnoanswer','rejected','callProgressDetectingAgent','[callProgressDetectingAgent][logAnswer]','cause','[syncHangup][talking][cause]','statedesc','channelstate','transfer','[syncHangup][talking][transfer]','destuniqueid','destlinkedid','addVariable','variables','filterKey','keys','variable','value','error','[syncVarSet][Preview]','inspect','transfertargetlinkedid','transfererlinkedid','util','lodash','bluebird','uuid','moment','../../../config/environment','../../../config/logger','preview','actionPreview','./action','./util/util','redis','defaults','localhost','socket.io-emitter','prototype','enqueue','tail','finally','campaignsPreview','voiceQueues','trunks','agents','clockClearZombieChannels','originateresponse','syncOriginateResponse','bind','hangup','syncHangup','hanguprequest','syncHangupRequest','dialend','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopCampaigns','emit','outbound','strategy','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','talking','type','unmanaged','abandoned','waiting','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialPrefix','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundRejectCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','startProgressive','Trunk','name','active','callerid','Interval'];(function(_0x1f337e,_0xe2c399){var _0x5c3b71=function(_0xa5328c){while(--_0xa5328c){_0x1f337e['push'](_0x1f337e['shift']());}};_0x5c3b71(++_0xe2c399);}(_0xfa10,0x101));var _0x0fa1=function(_0x2f98b1,_0x4dae45){_0x2f98b1=_0x2f98b1-0x0;var _0x96bb25=_0xfa10[_0x2f98b1];return _0x96bb25;};'use strict';var util=require(_0x0fa1('0x0'));var _=require(_0x0fa1('0x1'));var BPromise=require(_0x0fa1('0x2'));var uuid=require(_0x0fa1('0x3'));var moment=require(_0x0fa1('0x4'));var md5=require('md5');var Redis=require('ioredis');var config=require(_0x0fa1('0x5'));var logger=require(_0x0fa1('0x6'))(_0x0fa1('0x7'));var loggerAction=require(_0x0fa1('0x6'))(_0x0fa1('0x8'));var ami=require('../ami');var rpcDb=require('./rpcDb');var Action=require(_0x0fa1('0x9'));var ut=require(_0x0fa1('0xa'));config[_0x0fa1('0xb')]=_[_0x0fa1('0xc')](config[_0x0fa1('0xb')],{'host':_0x0fa1('0xd'),'port':0x18eb});var io=require(_0x0fa1('0xe'))(new Redis(config[_0x0fa1('0xb')]));var Sequence=function(){};Sequence[_0x0fa1('0xf')][_0x0fa1('0x10')]=function(_0x3182bb){this['tail']=this[_0x0fa1('0x11')]?this[_0x0fa1('0x11')][_0x0fa1('0x12')](_0x3182bb):_0x3182bb();};function Preview(_0x36dd56){this['sequence']=new Sequence();this[_0x0fa1('0x13')]=_0x36dd56[_0x0fa1('0x14')];this['trunks']=_0x36dd56[_0x0fa1('0x15')];this['actions']={};this[_0x0fa1('0x16')]=_0x36dd56['agents'];this[_0x0fa1('0x17')]=0x0;ami['on'](_0x0fa1('0x18'),this[_0x0fa1('0x19')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x1b'),this[_0x0fa1('0x1c')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x1d'),this[_0x0fa1('0x1e')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x1f'),this[_0x0fa1('0x20')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x21'),this[_0x0fa1('0x22')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x23'),this[_0x0fa1('0x24')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x25'),this[_0x0fa1('0x26')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x27'),this[_0x0fa1('0x28')]['bind'](this));this[_0x0fa1('0x29')](this[_0x0fa1('0x13')]);}function emit(_0x3bb1f1,_0x3b235d,_0x33e259){io['to'](_0x3bb1f1)[_0x0fa1('0x2a')](_0x3b235d,_0x33e259);}function emitCampaignPreview(_0x522dc0){if(_0x522dc0['type']===_0x0fa1('0x2b')){var _0x258087={'id':_0x522dc0['id'],'name':_0x522dc0['name'],'strategy':_0x522dc0[_0x0fa1('0x2c')],'answered':_0x522dc0['answered'],'available':_0x522dc0[_0x0fa1('0x2d')],'loggedIn':_0x522dc0[_0x0fa1('0x2e')],'pTalking':_0x522dc0[_0x0fa1('0x2f')],'sumBillable':_0x522dc0[_0x0fa1('0x30')],'sumDuration':_0x522dc0[_0x0fa1('0x31')],'sumHoldTime':_0x522dc0[_0x0fa1('0x32')]||0x0,'talking':_0x522dc0[_0x0fa1('0x33')],'total':_0x522dc0['total'],'type':_0x522dc0[_0x0fa1('0x34')],'unmanaged':_0x522dc0[_0x0fa1('0x35')],'abandoned':_0x522dc0[_0x0fa1('0x36')],'waiting':_0x522dc0[_0x0fa1('0x37')],'loggedInDb':_0x522dc0['loggedInDb'],'dialActive':_0x522dc0['dialActive'],'dialMethod':_0x522dc0[_0x0fa1('0x38')],'dialOriginateCallerIdName':_0x522dc0[_0x0fa1('0x39')],'dialOriginateCallerIdNumber':_0x522dc0[_0x0fa1('0x3a')],'dialOriginateTimeout':_0x522dc0['dialOriginateTimeout'],'dialPrefix':_0x522dc0[_0x0fa1('0x3b')],'outboundAnswerAgiCallsDay':_0x522dc0['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x522dc0[_0x0fa1('0x3c')],'outboundBlacklistCallsDay':_0x522dc0[_0x0fa1('0x3d')],'outboundBusyCallsDay':_0x522dc0[_0x0fa1('0x3e')],'outboundCongestionCallsDay':_0x522dc0[_0x0fa1('0x3f')],'outboundDropCallsDayACS':_0x522dc0[_0x0fa1('0x40')],'outboundDropCallsDayCallersExit':_0x522dc0[_0x0fa1('0x41')],'outboundDropCallsDayTimeout':_0x522dc0[_0x0fa1('0x42')],'outboundNoAnswerCallsDay':_0x522dc0[_0x0fa1('0x43')],'outboundNoSuchCallsDay':_0x522dc0['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x522dc0['outboundOriginateFailureCallsDay'],'outboundReCallsDay':_0x522dc0['outboundReCallsDay'],'outboundRejectCallsDay':_0x522dc0[_0x0fa1('0x44')],'outboundUnknownCallsDay':_0x522dc0['outboundUnknownCallsDay'],'outboundAbandonedCallsDay':_0x522dc0['outboundAbandonedCallsDay'],'predictiveIntervalAnsweredCalls':_0x522dc0[_0x0fa1('0x45')],'predictiveIntervalAvgHoldtime':_0x522dc0[_0x0fa1('0x46')],'predictiveIntervalAvgTalktime':_0x522dc0['predictiveIntervalAvgTalktime'],'predictiveIntervalDroppedCallsCallersExit':_0x522dc0[_0x0fa1('0x47')],'predictiveIntervalDroppedCallsTimeout':_0x522dc0[_0x0fa1('0x48')],'predictiveIntervalErlangCalls':_0x522dc0['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x522dc0[_0x0fa1('0x49')],'predictiveIntervalHitRate':_0x522dc0[_0x0fa1('0x4a')],'predictiveIntervalMultiplicativeFactor':_0x522dc0[_0x0fa1('0x4b')],'predictiveIntervalPauses':_0x522dc0[_0x0fa1('0x4c')],'predictiveIntervalAvailable':_0x522dc0['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x522dc0[_0x0fa1('0x4d')],'message':_0x522dc0['message'],'originated':_0x522dc0[_0x0fa1('0x4e')],'erlangCalls':_0x522dc0[_0x0fa1('0x4f')],'erlangCallToSecond':_0x522dc0[_0x0fa1('0x50')],'erlangAbandonmentRate':_0x522dc0['erlangAbandonmentRate'],'erlangBusyFactor':_0x522dc0['erlangBusyFactor'],'startPredictive':_0x522dc0['startPredictive'],'startProgressive':_0x522dc0[_0x0fa1('0x51')]};if(_0x522dc0[_0x0fa1('0x52')]){_0x258087['Trunk']={'id':_0x522dc0[_0x0fa1('0x52')]['id'],'name':_0x522dc0['Trunk'][_0x0fa1('0x53')],'active':_0x522dc0['Trunk'][_0x0fa1('0x54')],'callerid':_0x522dc0[_0x0fa1('0x52')][_0x0fa1('0x55')]};}if(_0x522dc0[_0x0fa1('0x56')]){_0x258087[_0x0fa1('0x56')]={'id':_0x522dc0[_0x0fa1('0x56')]['id'],'name':_0x522dc0[_0x0fa1('0x56')][_0x0fa1('0x53')]};}var _0x8618cb=md5(JSON[_0x0fa1('0x57')](_0x258087));if(_0x522dc0[_0x0fa1('0x58')]!==_0x8618cb){_0x522dc0[_0x0fa1('0x58')]=_0x8618cb;emit(util['format'](_0x0fa1('0x59'),_0x258087['name']),_0x0fa1('0x5a'),_0x258087);}}}function emitVoiceQueueChannelRemove(_0x58dda4){logger[_0x0fa1('0x5b')](_0x0fa1('0x5c'),JSON[_0x0fa1('0x57')](_0x58dda4));emit(util[_0x0fa1('0x5d')](_0x0fa1('0x59'),_0x58dda4['name']),_0x0fa1('0x5e'),_0x58dda4);io[_0x0fa1('0x2a')](_0x0fa1('0x5f'),_0x58dda4);}function notSendMessagesQueue(_0x1ecf44){if(_0x1ecf44['sendMessageOneNotActive']){if(_0x1ecf44[_0x0fa1('0x4e')]===0x0&&_0x1ecf44[_0x0fa1('0x2f')]===0x0){_0x1ecf44[_0x0fa1('0x60')]=![];_0x1ecf44[_0x0fa1('0x2d')]=0x0;_0x1ecf44[_0x0fa1('0x61')]=0x0;_0x1ecf44[_0x0fa1('0x62')]=_0x0fa1('0x63');ut['logger']('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x1ecf44[_0x0fa1('0x53')]+_0x0fa1('0x64'));}else{_0x1ecf44['message']='IS_DISACTIVED';ut[_0x0fa1('0x65')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x1ecf44[_0x0fa1('0x53')]+_0x0fa1('0x66'));}emitCampaignPreview(_0x1ecf44);}}Preview['prototype'][_0x0fa1('0x29')]=function(){var _0xbc7260=this;setInterval(function(){_0xbc7260[_0x0fa1('0x67')]();},0x7cf);};Preview[_0x0fa1('0xf')][_0x0fa1('0x67')]=function(){var _0x56c327=this[_0x0fa1('0x13')];this[_0x0fa1('0x17')]+=0x1;for(var _0x203281 in _0x56c327){if(_0x56c327['hasOwnProperty'](_0x203281)&&(_0x56c327[_0x203281][_0x0fa1('0x38')]===_0x0fa1('0x7')||_0x56c327[_0x203281][_0x0fa1('0x38')]===_0x0fa1('0x68'))&&_0x56c327[_0x203281][_0x0fa1('0x34')]==='outbound'){if(this[_0x0fa1('0x17')]>0x7){this[_0x0fa1('0x17')]=0x0;this[_0x0fa1('0x69')]();}}if(_0x56c327[_0x0fa1('0x6a')](_0x203281)&&_0x56c327[_0x203281][_0x0fa1('0x38')]===_0x0fa1('0x7')&&_0x56c327[_0x203281][_0x0fa1('0x34')]==='outbound'){if(_0x56c327[_0x203281][_0x0fa1('0x6b')]){this[_0x0fa1('0x6c')](_0x56c327[_0x203281]);this[_0x0fa1('0x6d')](_0x56c327[_0x203281]);}else{notSendMessagesQueue(_0x56c327[_0x203281]);}}}};Preview[_0x0fa1('0xf')]['clearZombieChannel']=function(_0x47fe01){var _0xe90ba1=this;this[_0x0fa1('0x6e')][_0x0fa1('0x10')](function(){if(!_[_0x0fa1('0x6f')](_0xe90ba1[_0x0fa1('0x70')][_0x47fe01])){loggerAction[_0x0fa1('0x5b')](_0x0fa1('0x71'),_0x47fe01,_0x0fa1('0x72'),_0xe90ba1[_0x0fa1('0x70')][_0x47fe01]['queue'],_0x0fa1('0x73'),JSON[_0x0fa1('0x57')](_0xe90ba1[_0x0fa1('0x13')][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]][_0x0fa1('0x4e')]),_0x0fa1('0x75'),JSON['stringify'](_0xe90ba1['campaignsPreview'][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]][_0x0fa1('0x2f')]),JSON[_0x0fa1('0x57')](_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x76')]),JSON[_0x0fa1('0x57')](_[_0x0fa1('0x77')](_0xe90ba1[_0x0fa1('0x70')][_0x47fe01],[_0x0fa1('0x78'),_0x0fa1('0x79'),_0x0fa1('0x7a'),_0x0fa1('0x7b')])));return ami[_0x0fa1('0x7c')]({'action':'status','channel':_0xe90ba1['actions'][_0x47fe01]['channel']})[_0x0fa1('0x7d')](function(_0x1cb8ed){if(_0x1cb8ed[_0x0fa1('0x62')]===_0x0fa1('0x7e')){setTimeout(function(){if(_0xe90ba1['actions'][_0x47fe01]){ut[_0x0fa1('0x7f')](_0xe90ba1['campaignsPreview'][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]],'[clearZombieChannel]');if(_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x76')]===!![]){ut[_0x0fa1('0x80')](_0xe90ba1[_0x0fa1('0x13')][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]],_0x0fa1('0x81'));ut[_0x0fa1('0x82')](_0x0fa1('0x83')+_0x47fe01,_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]);}ut[_0x0fa1('0x82')](_0x0fa1('0x84')+_0x47fe01,_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]);delete _0xe90ba1[_0x0fa1('0x70')][_0x47fe01];}},0x2328);}});}});};Preview['prototype'][_0x0fa1('0x69')]=function(){var _0x2a3a78=this;loggerAction[_0x0fa1('0x5b')](_0x0fa1('0x85'),_[_0x0fa1('0x86')](this['actions']));for(var _0x47a076 in this[_0x0fa1('0x70')]){if(_0x2a3a78[_0x0fa1('0x70')][_0x0fa1('0x6a')](_0x47a076)){_0x2a3a78[_0x0fa1('0x87')](_0x47a076);}}};Preview[_0x0fa1('0xf')][_0x0fa1('0x6d')]=function(_0x296a1d){var _0x9e7463=this;rpcDb[_0x0fa1('0x88')](_0x296a1d['id'],ut[_0x0fa1('0x89')](this['agents']))[_0x0fa1('0x8a')](function(_0x2a67ce){if(!_[_0x0fa1('0x6f')](_0x2a67ce)){for(var _0x522ed8=0x0;_0x522ed8<_0x2a67ce[_0x0fa1('0x8b')];_0x522ed8+=0x1){if(ut['getDiff'](_0x2a67ce[_0x522ed8][_0x0fa1('0x8c')])<_0x296a1d['dialRecallMeTimeout']*0x3c){if(_0x2a67ce[_0x522ed8][_0x0fa1('0x8d')]&&!_0x2a67ce[_0x522ed8][_0x0fa1('0x8d')]['voicePause']){_0x9e7463[_0x0fa1('0x8e')](_0x2a67ce[_0x522ed8]['id'])[_0x0fa1('0x8a')](ut[_0x0fa1('0x8f')](_0x0fa1('0x90')))[_0x0fa1('0x7d')](ut['logger2']('[RecallMe]'));}else{rpcDb['disableContact'](_0x2a67ce[_0x522ed8]['id']);}}else{var _0x1cead0=new Action(_0x2a67ce[_0x522ed8],_0x296a1d);_0x1cead0['starttime']=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));_0x296a1d['outboundReCallsDay']+=0x1;ut[_0x0fa1('0x92')](_0x1cead0,0x17,_0x0fa1('0x93'));if(_0x296a1d[_0x0fa1('0x94')]){rpcDb[_0x0fa1('0x95')](ut[_0x0fa1('0x96')](_0x2a67ce[_0x522ed8]));rpcDb['createCustomerHistory'](_0x1cead0,'[HistoryDialRecallInQueue][historyCatch]');}else{ut['logCustomer'](_0x1cead0,0x16,_0x0fa1('0x97'));rpcDb['createCustomerHistory'](_0x1cead0,_0x0fa1('0x98'));rpcDb[_0x0fa1('0x99')](_0x1cead0,'[HistoryRecallClose]');}}}}})[_0x0fa1('0x7d')](ut[_0x0fa1('0x8f')](_0x0fa1('0x9a')));};Preview[_0x0fa1('0xf')][_0x0fa1('0x6c')]=function(_0x5cf84f){_0x5cf84f[_0x0fa1('0x60')]=!![];if(ut[_0x0fa1('0x9b')](_0x5cf84f[_0x0fa1('0x2e')])){_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0x9c');}else if(!ut[_0x0fa1('0x9d')](_0x5cf84f[_0x0fa1('0x6b')])){_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0x63');}else if(!this[_0x0fa1('0x9e')](_0x5cf84f['Trunk'])){if(!this[_0x0fa1('0x9e')](_0x5cf84f[_0x0fa1('0x9f')])){_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0xa0');}else{_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0xa1');}}else{_0x5cf84f[_0x0fa1('0x62')]='ACTIVE';}emitCampaignPreview(_0x5cf84f);};Preview[_0x0fa1('0xf')][_0x0fa1('0xa2')]=function(_0x583ce7,_0x2efa27,_0x2da131){var _0x1242fe=this;var _0x5aeabf=this['actions'][_0x2efa27];var _0x46b182=this['campaignsPreview'][_0x5aeabf['queue']];var _0x32a7f9;if(_0x46b182){switch(_0x2da131){case'1':_0x46b182[_0x0fa1('0xa3')]+=0x1;_0x5aeabf['countnosuchnumberretry']+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x0,_0x0fa1('0xa6'));ami[_0x0fa1('0x2a')](_0x0fa1('0xa7'),ut['buildObj'](_0x5aeabf,_0x0fa1('0xa8')));rpcDb['createCustomerHistory'](_0x5aeabf,_0x0fa1('0xa9'));if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,'Global');rpcDb[_0x0fa1('0x99')](_0x32a7f9,'[callProgressDetectingCustomer][logNoSuchGlobal]');}else{if(_0x5aeabf['countnosuchnumberretry']>=_0x46b182['dialNoSuchNumberMaxRetry']){rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xac'));}else{rpcDb[_0x0fa1('0xad')](ut['scheduledAt'](_0x5aeabf,_0x0fa1('0xae'),_0x46b182[_0x0fa1('0xaf')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}delete this[_0x0fa1('0x70')][_0x583ce7['linkedid']];break;case _0x0fa1('0xb2'):var _0x268eee=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));_0x5aeabf['responsetime']=_0x268eee;_0x5aeabf['answertime']=_0x268eee;_0x5aeabf['dialAnswer']=!![];_0x46b182[_0x0fa1('0x2f')]+=0x1;logger[_0x0fa1('0x5b')](_0x0fa1('0xb3'),_0x5aeabf[_0x0fa1('0xb4')],_0x0fa1('0xb5'),_0x46b182['name'],'pTalking:\x20',_0x46b182['pTalking']);ami[_0x0fa1('0x2a')](_0x0fa1('0xb6'),ut[_0x0fa1('0xb7')](_0x5aeabf,'connect',this[_0x0fa1('0x13')][_0x5aeabf[_0x0fa1('0x74')]]));if(_0x46b182['acw']){ami[_0x0fa1('0x2a')](_0x0fa1('0xb8'),ut['buildAcw'](_0x5aeabf));}break;case'16':ami[_0x0fa1('0x2a')](_0x0fa1('0xb9'),ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xba'),this[_0x0fa1('0x13')][_0x5aeabf['queue']]));emitVoiceQueueChannelRemove(ut[_0x0fa1('0xb7')](_0x5aeabf,'complete'));_0x46b182[_0x0fa1('0x3c')]+=0x1;_0x46b182['total']+=0x1;_0x46b182['answered']+=0x1;ut[_0x0fa1('0x80')](_0x46b182,_0x0fa1('0xbb'));_0x5aeabf[_0x0fa1('0xa4')]=ut['totalGlobal'](_0x5aeabf);ut['logCustomer'](_0x5aeabf,0x4,_0x0fa1('0xbc'));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,'[callProgressDetectingCustomer][logAnswer]');rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xbe'));rpcDb[_0x0fa1('0xbf')](_0x5aeabf);_0x46b182[_0x0fa1('0x31')]+=_0x5aeabf[_0x0fa1('0xc0')];_0x46b182['sumBillable']+=_0x5aeabf[_0x0fa1('0xc0')];logger[_0x0fa1('0x5b')](_0x0fa1('0xc1'),_0x5aeabf[_0x0fa1('0xb4')],_0x0fa1('0xb5'),_0x46b182[_0x0fa1('0x53')],_0x0fa1('0x75'),_0x46b182[_0x0fa1('0x2f')]);delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];break;case'BUSY':_0x46b182[_0x0fa1('0x3e')]+=0x1;_0x5aeabf[_0x0fa1('0xc3')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x5,'Busy');ami[_0x0fa1('0x2a')]('custom:agentbusy',ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xc4')));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xc5'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182['dialGlobalMaxRetry']){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xc7'));}else{if(_0x5aeabf['countbusyretry']>=_0x46b182['dialBusyMaxRetry']){rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xc5'));}else{rpcDb[_0x0fa1('0xad')](ut['scheduledAt'](_0x5aeabf,_0x0fa1('0xc3'),_0x46b182['dialBusyRetryFrequency']),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}break;case'NOANSWER':_0x46b182[_0x0fa1('0x43')]+=0x1;_0x5aeabf[_0x0fa1('0xc8')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x3,_0x0fa1('0xc9'));ami[_0x0fa1('0x2a')](_0x0fa1('0xca'),ut[_0x0fa1('0xb7')](_0x5aeabf,'noanswer'));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xcb'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut['cloneAction'](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb['createCustomerFinal'](_0x32a7f9,_0x0fa1('0xcc'));}else{if(_0x5aeabf['countnoanswerretry']>=_0x46b182[_0x0fa1('0xcd')]){rpcDb['createCustomerFinal'](_0x5aeabf,_0x0fa1('0xcb'));}else{rpcDb[_0x0fa1('0xad')](ut['scheduledAt'](_0x5aeabf,_0x0fa1('0xc8'),_0x46b182[_0x0fa1('0xce')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf['activeContact']);}}break;case'CONGESTION':_0x46b182[_0x0fa1('0x3f')]+=0x1;_0x5aeabf[_0x0fa1('0xcf')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut['logCustomer'](_0x5aeabf,0x8,'Congestion');ami['emit']('custom:agentcongestion',ut['buildObj'](_0x5aeabf,_0x0fa1('0xd0')));rpcDb['createCustomerHistory'](_0x5aeabf,_0x0fa1('0xd1'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xd2'));}else{if(_0x5aeabf[_0x0fa1('0xcf')]>=_0x46b182[_0x0fa1('0xd3')]){rpcDb[_0x0fa1('0x99')](_0x5aeabf,'[callProgressDetectingCustomer][logCongestion]');}else{rpcDb[_0x0fa1('0xad')](ut[_0x0fa1('0xd4')](_0x5aeabf,_0x0fa1('0xcf'),_0x46b182[_0x0fa1('0xd5')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}break;case _0x0fa1('0xd6'):_0x46b182[_0x0fa1('0x44')]+=0x1;_0x5aeabf['countagentrejectretry']+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x14,'AgentReject');ami[_0x0fa1('0x2a')]('custom:agentreject',ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xd7')));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xd8'));if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0x14,_0x0fa1('0xd9'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xda'));}else{if(_0x5aeabf[_0x0fa1('0xdb')]>=_0x46b182[_0x0fa1('0xdc')]){rpcDb['createCustomerFinal'](_0x5aeabf,'[callProgressDetectingCustomer][logAgentReject]');}else{rpcDb[_0x0fa1('0xad')](ut[_0x0fa1('0xd4')](_0x5aeabf,_0x0fa1('0xdb'),_0x46b182[_0x0fa1('0xdd')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf['activeContact']);}}break;case'ABANDONED':_0x46b182[_0x0fa1('0xde')]+=0x1;_0x5aeabf[_0x0fa1('0xdf')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0xb,_0x0fa1('0xe0'));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,'[callProgressDetectingCustomer][logAbandoned]');if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb['createCustomerFinal'](_0x32a7f9,_0x0fa1('0xe1'));}else{if(_0x5aeabf['countabandonedetry']>=_0x46b182[_0x0fa1('0xe2')]){rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xe1'));}else{rpcDb[_0x0fa1('0xad')](ut[_0x0fa1('0xd4')](_0x5aeabf,_0x0fa1('0xdf'),_0x46b182[_0x0fa1('0xe3')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}break;case'18':_0x46b182['outboundUnknownCallsDay']+=0x1;_0x5aeabf['countmachineretry']+=0x1;_0x5aeabf['countglobal']=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x12,_0x583ce7['cause-txt']||_0x583ce7[_0x0fa1('0xe4')]);ami[_0x0fa1('0x2a')]('custom:amd',ut['buildObj'](_0x5aeabf,_0x0fa1('0xe5')));rpcDb['createCustomerHistory'](_0x5aeabf,_0x0fa1('0xe6'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182['dialGlobalMaxRetry']){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xe6'));}else{rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xe6'));}delete this[_0x0fa1('0x70')][_0x583ce7['linkedid']];break;case'19':_0x46b182[_0x0fa1('0xe7')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x13,_0x583ce7['cause-txt']||_0x583ce7[_0x0fa1('0xe4')]);ami['emit'](_0x0fa1('0xe8'),ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xe5')));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xe9'));if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,'Global');rpcDb[_0x0fa1('0x99')](_0x32a7f9,'[callProgressDetectingCustomer][machine]');}else{rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xe9'));}delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];break;default:if(_0x5aeabf[_0x0fa1('0x76')]){ut['decrementTalkink'](_0x46b182,_0x0fa1('0xea'));ut['loggerError'](_0x0fa1('0xeb')+_0x46b182[_0x0fa1('0x53')],_0x583ce7);}_0x46b182[_0x0fa1('0xe7')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut['totalGlobal'](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0xc,_0x583ce7['cause-txt']||_0x583ce7[_0x0fa1('0xe4')]);rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xec'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,'[callProgressDetectingCustomer][logUnknownGlobal]');}else{rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xed'));}delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];}if(!(_0x5aeabf[_0x0fa1('0x76')]&&_0x2da131==='16')){ut[_0x0fa1('0x7f')](_0x46b182,_0x0fa1('0xee'));logger[_0x0fa1('0x5b')](_0x0fa1('0xef'),_0x5aeabf[_0x0fa1('0xb4')],'\x20Queue',_0x46b182[_0x0fa1('0x53')],_0x0fa1('0x73'),_0x46b182[_0x0fa1('0x4e')]);}if(_0x2da131!==_0x0fa1('0xb2')){delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];delete this[_0x0fa1('0x70')][_0x583ce7['destlinkedid']];}}};Preview[_0x0fa1('0xf')]['callProgressDetectingAgent']=function(_0x23f2d7,_0x47a92d,_0x4ccaca){if(_['isUndefined'](_0x47a92d)&&_0x0fa1('0xf0')!==typeof _0x47a92d){return;}if(_[_0x0fa1('0xf1')](_0x4ccaca)&&_0x0fa1('0xf0')!==typeof _0x4ccaca){return;}switch(_0x4ccaca[_0x0fa1('0xf2')]){case'0':ut[_0x0fa1('0xf3')](_0x23f2d7,0x0,'NoSuchNumber');rpcDb[_0x0fa1('0xf4')](_0x23f2d7,'[callProgressDetectingAgent][logNoSuch]');break;case'3':ut[_0x0fa1('0xf3')](_0x23f2d7,0x3,_0x0fa1('0xc9'));rpcDb['createAgentHistory'](_0x23f2d7,_0x0fa1('0xf5'));break;case'5':ut[_0x0fa1('0xf3')](_0x23f2d7,0x5,_0x0fa1('0xf6'));rpcDb[_0x0fa1('0xf4')](_0x23f2d7,'[callProgressDetectingAgent][logBusy]');break;case'8':ut[_0x0fa1('0xf3')](_0x23f2d7,0x8,'Congestion');rpcDb[_0x0fa1('0xf4')](_0x23f2d7,'[callProgressDetectingAgent][logCongestion]');break;case'22':ut[_0x0fa1('0xf3')](_0x23f2d7,0x16,_0x0fa1('0xf7'));rpcDb[_0x0fa1('0xf4')](_0x23f2d7,_0x0fa1('0xf8'));break;default:ut[_0x0fa1('0xf3')](_0x23f2d7,0xc,_0x4ccaca[_0x0fa1('0xf2')]);rpcDb[_0x0fa1('0xf4')](_0x23f2d7,_0x0fa1('0xf9'));}ut[_0x0fa1('0x7f')](_0x47a92d,_0x0fa1('0xfa'));logger[_0x0fa1('0x5b')](_0x0fa1('0xfb'),_0x23f2d7[_0x0fa1('0xb4')],_0x0fa1('0xb5'),_0x47a92d[_0x0fa1('0x53')],_0x0fa1('0x73'),_0x47a92d['originated']);delete this[_0x0fa1('0x70')][_0x23f2d7[_0x0fa1('0xb4')]];};Preview[_0x0fa1('0xf')][_0x0fa1('0xfc')]=function(_0x3a3d01,_0x3d7224,_0x4a6340,_0x17e01b,_0x1821e6){var _0x1799c2=this;return new BPromise(function(_0x1c8f42,_0x122fd4){if(_[_0x0fa1('0x6f')](_0x3d7224)||_[_0x0fa1('0x6f')](_0x3d7224[_0x0fa1('0xfd')])||_[_0x0fa1('0x6f')](_0x3d7224['Contact'][_0x0fa1('0xfe')])||_[_0x0fa1('0x6f')](_0x3d7224[_0x0fa1('0x7a')])){_0x122fd4(ut[_0x0fa1('0x62')](_0x0fa1('0xff'),_0x17e01b,_0x1821e6));return;}var _0x44abbb=uuid['v4']();var _0x5e1935=_0x1799c2[_0x0fa1('0x13')][_0x3d7224['Queue'][_0x0fa1('0x53')]];var _0x374617=_0x4a6340?_0x1799c2['agents'][_0x4a6340]['id']:undefined;_0x1799c2['actions'][_0x44abbb]=new Action(_0x3d7224,_0x5e1935,_0x44abbb,_0x4a6340,_0x374617);var _0x2f5864=_0x1799c2[_0x0fa1('0x70')][_0x44abbb];_0x2f5864[_0x0fa1('0xb0')]=_0x17e01b;_0x2f5864[_0x0fa1('0xb1')]=_0x1821e6;_0x2f5864[_0x0fa1('0x100')]=_0x4a6340;if(_[_0x0fa1('0x101')](_0x3a3d01)){_0x1799c2[_0x0fa1('0x102')](_0x2f5864,_0x5e1935,_0x3d7224,_0x4a6340)['then'](function(_0x52dc83){logger[_0x0fa1('0x5b')](_0x0fa1('0x103'),_0x0fa1('0x104')+_0x2f5864['queue']+_0x0fa1('0x105')+_0x2f5864[_0x0fa1('0x106')],JSON[_0x0fa1('0x57')](_0x52dc83));ami[_0x0fa1('0x2a')]('custom:agentcalled',ut['buildObj'](_0x2f5864,_0x0fa1('0x107'),_0x1799c2[_0x0fa1('0x13')][_0x2f5864[_0x0fa1('0x74')]]));_0x1c8f42(ut[_0x0fa1('0x62')](_0x0fa1('0x108')));})[_0x0fa1('0x7d')](function(_0x4856d8){ut[_0x0fa1('0x65')](_0x0fa1('0x109'),_0x4856d8);_0x122fd4(ut[_0x0fa1('0x62')]('Call\x20failed',_0x17e01b,_0x1821e6));});}else{_0x5e1935[_0x0fa1('0x3d')]+=0x1;ut[_0x0fa1('0x10a')](_0x2f5864);rpcDb[_0x0fa1('0x10b')](_0x2f5864,_0x0fa1('0x10c'));delete _0x1799c2[_0x0fa1('0x70')][_0x44abbb];_0x122fd4(ut[_0x0fa1('0x62')](_0x0fa1('0x10d'),_0x17e01b,_0x1821e6));}});};Preview[_0x0fa1('0xf')][_0x0fa1('0x9e')]=function(_0x32f8b8){return!_[_0x0fa1('0x6f')](_0x32f8b8)&&!_[_0x0fa1('0x6f')](_0x32f8b8['name'])&&!_[_0x0fa1('0x6f')](_0x32f8b8[_0x0fa1('0x54')])&&_0x32f8b8[_0x0fa1('0x54')]&&!_[_0x0fa1('0x6f')](this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')](_0x0fa1('0x10e'),_0x32f8b8[_0x0fa1('0x53')])])&&!_['isNil'](this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')](_0x0fa1('0x10e'),_0x32f8b8[_0x0fa1('0x53')])][_0x0fa1('0x10f')])&&(this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')]('SIP/%s',_0x32f8b8[_0x0fa1('0x53')])]['status']===_0x0fa1('0x110')||this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')]('SIP/%s',_0x32f8b8[_0x0fa1('0x53')])]['status']===_0x0fa1('0x111'));};Preview[_0x0fa1('0xf')][_0x0fa1('0x8e')]=function(_0x1f1bff,_0x5a7891){var _0x20ab37=this;return new BPromise(function(_0xe07aaa,_0x28ee27){_0x20ab37[_0x0fa1('0x112')](_0x1f1bff,_0x5a7891)[_0x0fa1('0x8a')](function(_0x2d75c6){_0xe07aaa(_[_0x0fa1('0x77')](_0x2d75c6,[_0x0fa1('0x62')]));})[_0x0fa1('0x7d')](function(_0x3c2217){if(_0x3c2217[_0x0fa1('0x113')]){rpcDb[_0x0fa1('0x114')](_0x1f1bff);}if(_0x3c2217[_0x0fa1('0x54')]){rpcDb[_0x0fa1('0x115')](_0x1f1bff);}_0x28ee27(_['pick'](_0x3c2217,['message']));});});};Preview['prototype'][_0x0fa1('0x112')]=function(_0xf1c9ea,_0x344fd0){var _0x40e6ae=this;return new BPromise(function(_0x122d1f,_0x13c53f){var _0x394ebb,_0x2eda67;rpcDb[_0x0fa1('0x116')](_0xf1c9ea)[_0x0fa1('0x8a')](function(_0x511a31){if(!_['isNil'](_0x511a31[0x0])){_0x2eda67=_0x511a31[0x0][_0x0fa1('0x117')]?![]:!![];_0x394ebb=_0x511a31[0x0][_0x0fa1('0x117')]?!![]:![];_0x394ebb=_0x344fd0?!![]:_0x394ebb;}var _0x37cf03=_0x40e6ae[_0x0fa1('0x118')](_0x511a31);if(_0x37cf03[_0x0fa1('0x119')]){rpcDb[_0x0fa1('0x11a')](_['pick'](_0x511a31[0x0],['VoiceQueueId',_0x0fa1('0x11b')]))[_0x0fa1('0x8a')](function(_0x27fedb){_0x40e6ae['checkInBlack'](_0x27fedb,_0x511a31[0x0],_0x344fd0,_0x2eda67,_0x394ebb)[_0x0fa1('0x8a')](function(_0x3de70d){_0x122d1f(_0x3de70d);})[_0x0fa1('0x7d')](function(_0x3df809){_0x13c53f(_0x3df809);});})['catch'](function(_0x4aa5d0){ut[_0x0fa1('0x65')](_0x0fa1('0x11c'),_0x4aa5d0);_0x13c53f(ut[_0x0fa1('0x62')]('Call\x20unsuccessful',_0x2eda67,_0x394ebb));});}else{_0x13c53f(ut[_0x0fa1('0x62')](_0x37cf03[_0x0fa1('0x62')],_0x2eda67,_0x394ebb));}})[_0x0fa1('0x7d')](function(_0x232ef1){ut[_0x0fa1('0x65')](_0x0fa1('0x11d'),_0x232ef1);_0x13c53f(ut[_0x0fa1('0x62')](_0x0fa1('0x11e'),![],!![]));});});};Preview[_0x0fa1('0xf')]['validateContact']=function(_0x2cde28){if(_[_0x0fa1('0x6f')](_0x2cde28)||_[_0x0fa1('0x101')](_0x2cde28)||!_[_0x0fa1('0x6f')](_0x2cde28[0x0][_0x0fa1('0x8d')])&&_[_0x0fa1('0x6f')](_0x2cde28[0x0][_0x0fa1('0x8d')][_0x0fa1('0x53')])){ut[_0x0fa1('0x65')]('[Preview][validateContact][Empty\x20Contact]',_0x2cde28);return{'isValid':![],'message':_0x0fa1('0x11f')};}var _0x71ad08=this[_0x0fa1('0x13')][_0x2cde28[0x0][_0x0fa1('0x72')][_0x0fa1('0x53')]];_0x71ad08[_0x0fa1('0x62')]=_0x0fa1('0xa1');if(_[_0x0fa1('0x6f')](_0x71ad08)){ut[_0x0fa1('0x65')](_0x0fa1('0x120'),_0x71ad08);return{'isValid':![],'message':_0x0fa1('0x121')};}if(!this[_0x0fa1('0x9e')](_0x71ad08[_0x0fa1('0x52')])){ut[_0x0fa1('0x65')](_0x0fa1('0x122'),_0x0fa1('0x123')+_0x71ad08[_0x0fa1('0x53')]+'\x20Trunk\x20is\x20not\x20active');if(!this[_0x0fa1('0x9e')](_0x71ad08[_0x0fa1('0x9f')])){ut['logger']('[Preview][validateContact][Trunk\x20not\x20work]',_0x71ad08['name']+_0x0fa1('0x124'));return{'isValid':![],'message':_0x0fa1('0x125')};}}if(!ut[_0x0fa1('0x9d')](_0x71ad08[_0x0fa1('0x6b')])){ut['logger'](_0x0fa1('0x126'),_0x71ad08[_0x0fa1('0x53')]+_0x0fa1('0x127'));return{'isValid':![],'message':'campaign\x20Name:\x20'+_0x71ad08[_0x0fa1('0x53')]+'\x20Not\x20Active'};}return{'isValid':!![],'message':'Is\x20Valid'};};Preview[_0x0fa1('0xf')][_0x0fa1('0x102')]=function(_0x31ee3c,_0x24a83a,_0x2f4cbd,_0xaa5078){var _0x2a7b70=this;return new BPromise(function(_0x3a8e75,_0x4b82b1){var _0x5d6e33=_0x31ee3c['uniqueid'];var _0x2b5351=_0x2a7b70[_0x0fa1('0x9e')](_0x24a83a[_0x0fa1('0x52')])?util[_0x0fa1('0x5d')](_0x0fa1('0x128'),_0x24a83a[_0x0fa1('0x52')][_0x0fa1('0x53')],_[_0x0fa1('0x6f')](_0x24a83a[_0x0fa1('0x3b')])?'':_0x24a83a[_0x0fa1('0x3b')][_0x0fa1('0x129')]()||'',_0x24a83a[_0x0fa1('0x12a')]>0x0?_0x2f4cbd[_0x0fa1('0xfd')][_0x0fa1('0xfe')][_0x0fa1('0x12b')](_0x24a83a[_0x0fa1('0x12a')]):_0x2f4cbd[_0x0fa1('0xfd')][_0x0fa1('0xfe')]):util[_0x0fa1('0x5d')](_0x0fa1('0x128'),_[_0x0fa1('0x6f')](_0x24a83a[_0x0fa1('0x9f')])?_0x24a83a[_0x0fa1('0x52')]['name']:_0x24a83a[_0x0fa1('0x9f')][_0x0fa1('0x53')],_[_0x0fa1('0x6f')](_0x24a83a[_0x0fa1('0x3b')])?'':_0x24a83a[_0x0fa1('0x3b')]['trim']()||'',_0x24a83a[_0x0fa1('0x12a')]>0x0?_0x2f4cbd[_0x0fa1('0xfd')][_0x0fa1('0xfe')]['substring'](_0x24a83a[_0x0fa1('0x12a')]):_0x2f4cbd['Contact'][_0x0fa1('0xfe')]);var _0x3b57b8=_0x2a7b70[_0x0fa1('0x9e')](_0x24a83a['Trunk'])?ut[_0x0fa1('0x12c')](_0x24a83a[_0x0fa1('0x52')][_0x0fa1('0x55')],_0x24a83a[_0x0fa1('0x39')],_0x24a83a[_0x0fa1('0x12d')]>0x0?ut[_0x0fa1('0x12e')](_0x24a83a[_0x0fa1('0x3a')],_0x24a83a[_0x0fa1('0x12d')]):_0x24a83a['dialOriginateCallerIdNumber']):ut[_0x0fa1('0x12c')](_[_0x0fa1('0x6f')](_0x24a83a['TrunkBackup'])?_0x24a83a[_0x0fa1('0x52')][_0x0fa1('0x55')]:_0x24a83a[_0x0fa1('0x9f')][_0x0fa1('0x55')],_0x24a83a[_0x0fa1('0x39')],_0x24a83a[_0x0fa1('0x12d')]>0x0?ut[_0x0fa1('0x12e')](_0x24a83a['dialOriginateCallerIdNumber'],_0x24a83a['dialRandomLastDigitCallerIdNumber']):_0x24a83a[_0x0fa1('0x3a')]);if(_0x3b57b8){_0x31ee3c['originatecalleridname']=ut[_0x0fa1('0x12f')](_0x3b57b8);_0x31ee3c['originatecalleridnum']=ut['extractCalleridNumber'](_0x3b57b8);}var _0x494921=ut[_0x0fa1('0x130')](_0x24a83a,_0x2f4cbd,_0x2b5351,_0x3b57b8,_0x5d6e33,_0x31ee3c);_[_0x0fa1('0x131')](_0x31ee3c,ut['toLowerVariables'](_0x494921));_0x31ee3c[_0x0fa1('0x132')]=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));ami[_0x0fa1('0x7c')](ut[_0x0fa1('0x133')](_0x31ee3c,_0x24a83a,_0x494921,_0x31ee3c[_0x0fa1('0xb1')],_0xaa5078))[_0x0fa1('0x8a')](function(_0x3e55f1){var _0x33104b=_0x31ee3c[_0x0fa1('0x134')];if(!_['isNil'](_0x33104b)){if(!_[_0x0fa1('0x6f')](_0x2a7b70[_0x0fa1('0x16')][_0x33104b])){_0x2a7b70['agents'][_0x33104b][_0x0fa1('0x135')]=_0x31ee3c[_0x0fa1('0x136')];emit(util['format'](_0x0fa1('0x137'),_0x2a7b70[_0x0fa1('0x16')][_0x33104b][_0x0fa1('0x53')]),_0x0fa1('0x138'),{'destaccountcode':_0x2a7b70[_0x0fa1('0x16')][_0x33104b][_0x0fa1('0x139')],'destconnectedlinenum':_0x31ee3c[_0x0fa1('0x136')]});}}_0x24a83a['originated']+=0x1;logger[_0x0fa1('0x5b')](_0x0fa1('0x13a'),_0x5d6e33,'\x20Queue',_0x24a83a[_0x0fa1('0x53')],_0x0fa1('0x73'),_0x24a83a[_0x0fa1('0x4e')]);_0x3a8e75(_0x3e55f1);})[_0x0fa1('0x7d')](function(_0x635bf9){ut[_0x0fa1('0xf3')](_0x31ee3c,0xe,_0x0fa1('0x13b'));rpcDb[_0x0fa1('0xf4')](_0x31ee3c,_0x0fa1('0x13c'));_0x4b82b1(_0x635bf9);});});};Preview[_0x0fa1('0xf')][_0x0fa1('0x22')]=function(_0x1c3416){if(this[_0x0fa1('0x70')][_0x1c3416[_0x0fa1('0xc2')]]){this['actions'][_0x1c3416[_0x0fa1('0xc2')]][_0x0fa1('0x13d')]=_0x1c3416[_0x0fa1('0x13d')];}};Preview[_0x0fa1('0xf')][_0x0fa1('0x19')]=function(_0x30bed8){var _0xe91ea=this;var _0x56d472=this[_0x0fa1('0x70')][_0x30bed8[_0x0fa1('0x13e')]];if(_0x56d472){if(_0x56d472['lookAgent']&&this[_0x0fa1('0x16')][_0x56d472[_0x0fa1('0x100')]]){ut['logLookAgent'](_0x56d472,this[_0x0fa1('0x16')][_0x56d472[_0x0fa1('0x100')]][_0x0fa1('0x53')],this[_0x0fa1('0x16')][_0x56d472[_0x0fa1('0x100')]]['id']);}var _0x1fa4d2=_['clone'](_0x56d472);_0x1fa4d2[_0x0fa1('0x13f')]=moment()['format'](_0x0fa1('0x91'));var _0x26b22a=_0xe91ea[_0x0fa1('0x13')][_0x56d472[_0x0fa1('0x74')]];if(ut[_0x0fa1('0x140')](_0x30bed8['response'])){if(_0x56d472[_0x0fa1('0xb0')]){rpcDb[_0x0fa1('0x114')](_0x56d472[_0x0fa1('0x106')]);}if(_0x56d472[_0x0fa1('0xb1')]){rpcDb[_0x0fa1('0x115')](_0x56d472['idContact']);}ami[_0x0fa1('0x2a')](_0x0fa1('0x141'),ut[_0x0fa1('0xb7')](_0x56d472,_0x0fa1('0x142'),this['campaignsPreview'][_0x56d472['queue']]));this[_0x0fa1('0x143')](_0x1fa4d2,_0x26b22a,_0x30bed8);}else{_0x56d472[_0x0fa1('0x132')]=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));ut['logAgent'](_0x1fa4d2,0x4,_0x0fa1('0xbc'));rpcDb[_0x0fa1('0xf4')](_0x1fa4d2,_0x0fa1('0x144'));}}};Preview[_0x0fa1('0xf')]['syncHangup']=function(_0x4dd3bb){var _0x379c6e=this;var _0x56e419=this[_0x0fa1('0x70')][_0x4dd3bb['linkedid']];var _0x14c41e;if(_0x56e419){_0x14c41e=this[_0x0fa1('0x13')][_0x56e419[_0x0fa1('0x74')]];logger[_0x0fa1('0x5b')]('[syncHangup][talking]',_0x4dd3bb[_0x0fa1('0xc2')],_0x0fa1('0xb5'),_0x14c41e[_0x0fa1('0x53')],'pTalking:\x20',_0x14c41e[_0x0fa1('0x2f')]);}if(this['actions'][_0x4dd3bb['linkedid']]&&_0x4dd3bb[_0x0fa1('0xc2')]!==_0x4dd3bb[_0x0fa1('0xb4')]){if(_0x4dd3bb[_0x0fa1('0x145')]==='16'&&this[_0x0fa1('0x70')][_0x4dd3bb['linkedid']][_0x0fa1('0x76')]){this['callProgressDetectingCustomer'](_0x4dd3bb,_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')]);}else if(this[_0x0fa1('0x70')][_0x4dd3bb[_0x0fa1('0xc2')]][_0x0fa1('0x76')]){logger[_0x0fa1('0x5b')](_0x0fa1('0x146'),_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb['cause'],_0x0fa1('0xb5'),_0x14c41e[_0x0fa1('0x53')],_0x0fa1('0x75'),_0x14c41e[_0x0fa1('0x2f')]);this[_0x0fa1('0xa2')](_0x4dd3bb,_0x4dd3bb['linkedid'],_0x4dd3bb[_0x0fa1('0x145')]);}}else if(_0x56e419&&_['isNil'](_0x56e419[_0x0fa1('0x147')])&&_0x14c41e['dialQueueProject']&&_0x4dd3bb[_0x0fa1('0xc2')]===_0x4dd3bb[_0x0fa1('0xb4')]&&_[_0x0fa1('0x6f')](_0x4dd3bb[_0x0fa1('0xf2')])&&_0x4dd3bb['cause']==='16'&&_0x4dd3bb[_0x0fa1('0x148')]==='6'&&_['isUndefined'](_0x56e419[_0x0fa1('0x149')])){if(_0x56e419[_0x0fa1('0xb0')]){rpcDb['unlockContact'](_0x56e419[_0x0fa1('0x106')]);}if(_0x56e419['activeContact']){rpcDb['disableContact'](_0x56e419[_0x0fa1('0x106')]);}_0x4dd3bb[_0x0fa1('0xf2')]='22';this[_0x0fa1('0x143')](_0x56e419,_0x14c41e,_0x4dd3bb);}else if(_0x56e419&&_0x56e419[_0x0fa1('0x149')]){if(_0x4dd3bb[_0x0fa1('0x145')]==='16'&&this[_0x0fa1('0x70')][_0x4dd3bb[_0x0fa1('0xc2')]][_0x0fa1('0x76')]){logger['info'](_0x0fa1('0x14a'),_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')],_0x0fa1('0xb5'),_0x14c41e['name'],_0x0fa1('0x75'),_0x14c41e['pTalking']);this[_0x0fa1('0xa2')](_0x4dd3bb,_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')]);}else if(this[_0x0fa1('0x70')][_0x4dd3bb['linkedid']][_0x0fa1('0x76')]){logger[_0x0fa1('0x5b')](_0x0fa1('0x146'),_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')],'\x20Queue',_0x14c41e[_0x0fa1('0x53')],_0x0fa1('0x75'),_0x14c41e[_0x0fa1('0x2f')]);this[_0x0fa1('0xa2')](_0x4dd3bb,_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')]);}}};Preview[_0x0fa1('0xf')]['syncDialEnd']=function(_0x5cf401){if(this['actions'][_0x5cf401['destlinkedid']]&&_0x5cf401['destlinkedid']!==_0x5cf401[_0x0fa1('0x14b')]){this['callProgressDetectingCustomer'](_0x5cf401,_0x5cf401[_0x0fa1('0x14c')],_0x5cf401['dialstatus']);}};Preview[_0x0fa1('0xf')][_0x0fa1('0x1e')]=function(_0x26c598){if(this[_0x0fa1('0x70')][_0x26c598['linkedid']]&&_0x26c598[_0x0fa1('0xc2')]!==_0x26c598[_0x0fa1('0xb4')]&&!this[_0x0fa1('0x70')][_0x26c598['linkedid']][_0x0fa1('0x76')]){if(_0x26c598['cause']==='1'){this[_0x0fa1('0xa2')](_0x26c598,_0x26c598[_0x0fa1('0xc2')],_0x26c598[_0x0fa1('0x145')]);}}};Preview[_0x0fa1('0xf')][_0x0fa1('0x14d')]=function(_0x5cbe4d,_0x2c4c65,_0x3e8061){if(this['actions'][_0x5cbe4d]){if(_[_0x0fa1('0x6f')](this[_0x0fa1('0x70')][_0x5cbe4d][_0x0fa1('0x14e')])){this[_0x0fa1('0x70')][_0x5cbe4d]['variables']={};}this['actions'][_0x5cbe4d]['variables'][_0x2c4c65]=_0x3e8061;}};Preview['prototype'][_0x0fa1('0x24')]=function(_0x51f041){try{if(!_[_0x0fa1('0x6f')](_0x51f041)){if(ut[_0x0fa1('0x14f')](_[_0x0fa1('0x150')](_0x51f041[_0x0fa1('0x151')])[0x0])){this['addVariable'](_0x51f041[_0x0fa1('0xb4')],_[_0x0fa1('0x150')](_0x51f041[_0x0fa1('0x151')])[0x0],_0x51f041[_0x0fa1('0x152')]);}}}catch(_0x46c7bf){logger[_0x0fa1('0x153')](_0x0fa1('0x154'),util[_0x0fa1('0x155')](_0x46c7bf,{'showHidden':![],'depth':null}));}};Preview['prototype']['syncAttendedTransfer']=function(_0x22dbc3){if(_0x22dbc3){if(this[_0x0fa1('0x70')][_0x22dbc3[_0x0fa1('0x156')]]){this[_0x0fa1('0x70')][_0x22dbc3[_0x0fa1('0x156')]]['transfer']=!![];}}};Preview[_0x0fa1('0xf')][_0x0fa1('0x28')]=function(_0x541293){if(_0x541293){if(this['actions'][_0x541293[_0x0fa1('0x157')]]){this['actions'][_0x541293[_0x0fa1('0x157')]][_0x0fa1('0x149')]=!![];}}};module['exports']=Preview;
\ No newline at end of file
+var _0xe293=['OriginateError','actionid','isFailure','unlockContact','custom:agentringnoanswer','rejected','[callProgressDetectingAgent][logAnswer]','[syncHangup][talking]','cause','[syncHangup][talking][cause]','statedesc','dialQueueProject','channelstate','transfer','[syncHangup][talking][transfer]','destuniqueid','addVariable','variables','syncVarSet','filterKey','keys','variable','value','error','[syncVarSet][Preview]','inspect','transfertargetlinkedid','transfererlinkedid','util','lodash','uuid','moment','md5','../../../config/environment','preview','actionPreview','./action','./util/util','defaults','localhost','socket.io-emitter','redis','prototype','enqueue','tail','finally','sequence','campaignsPreview','trunks','actions','agents','clockClearZombieChannels','originateresponse','syncOriginateResponse','bind','hangup','syncHangup','hanguprequest','syncHangupRequest','dialend','syncDialEnd','syncNewExten','varset','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopCampaigns','emit','type','outbound','name','strategy','answered','available','pTalking','sumBillable','sumHoldTime','talking','unmanaged','abandoned','waiting','dialActive','dialMethod','dialOriginateCallerIdName','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','message','erlangCalls','erlangBusyFactor','Trunk','callerid','Interval','stringify','format','voice:queue:%s','voice_queue:save','info','voice_queue_presence:remove','sendMessageOneNotActive','originated','NOT_ACTIVE','logger','IS_DISACTIVED','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20disactive','syncCampaigns','hasOwnProperty','booked','clearZombieChannels','setMessage','clearZombieChannel','isNil','[clearZombieChannels][talking]','Queue','queue','originated:\x20','pTalking:\x20','dialAnswer','pick','contactId','VoiceQueueId','ListId','Action','status','channel','catch','No\x20such\x20channel','updateOriginated','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','recallMe','getContactRecallMe','then','length','getDiff','scheduledat','dialRecallMeTimeout','Agent','voicePause','run','logger2','[RecallMe]','disableContact','starttime','logCustomer','RecallInQueue','dialRecallInQueue','rescheduleContactInQueue','createBody','createCustomerHistory','RecallFailedTimeout','[HistoryRecallClose]','createCustomerFinal','[getContactRecallMe]','IsNotLoggedIn','loggedIn','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','callProgressDetectingCustomer','outboundNoSuchCallsDay','countnosuchnumberretry','countglobal','NoSuchNumber','custom:agentnosuchnumber','buildObj','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','rescheduleContact','scheduledAt','dialNoSuchNumberRetryFrequency','unlockAgent','activeContact','linkedid','ANSWER','YYYY-MM-DD\x20HH:mm:ss','responsetime','answertime','\x20Queue','connect','acw','custom:agentConnectPreview','buildAcw','complete','[16]','totalGlobal','[callProgressDetectingCustomer][logAnswer]','crateCustomerReportQueue','sumDuration','talktime','[syncHangup][talking][decrement]','uniqueid','BUSY','countbusyretry','Busy','custom:agentbusy','[callProgressDetectingCustomer][logBusy]','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyMaxRetry','dialBusyRetryFrequency','NOANSWER','countnoanswerretry','NoAnswer','noanswer','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','[callProgressDetectingCustomer][logNoAnswer]','dialNoAnswerRetryFrequency','CONGESTION','countcongestionretry','Congestion','custom:agentcongestion','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','countagentrejectretry','AgentReject','custom:agentreject','[syncHangupRequest][logAgentReject]','[callProgressDetectingCustomer][logAgentReject]','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','ABANDONED','countabandonedretry','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedRetryFrequency','countmachineretry','cause-txt','custom:amd','amd','[callProgressDetectingCustomer][hangupInAMD]','dialstatus','[callProgressDetectingCustomer][machine]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[originated][decrement][callProgressDetectingCustomer]','destlinkedid','isUndefined','object','reason','logAgent','[callProgressDetectingAgent][logNoSuch]','[callProgressDetectingAgent][logNoAnswer]','createAgentHistory','[callProgressDetectingAgent][logBusy]','AnswerAGI','[callProgressDetectingAgent][logCongestion]','checkInBlack','Contact','Contact\x20is\x20undefined','lookAgent','isEmpty','[Preview][execCall][success]','Queue:\x20','\x20IdHopper:\x20','idContact','custom:agentcalled','[Preview][execCall][failure]','Call\x20failed','logBlacklist','createHistory','[Blacklist][error]','Contact\x20in\x20black\x20List','active','SIP/%s','reachable','execRun','unlock','recallme','validateContact','isValid','checkIsBlackList','Contact.phone','[Preview][checkIsBlackList]','Call\x20unsuccessful','[Preview][validateContact][Empty\x20Contact]','Empty\x20Contact','Empty\x20Campaign','campaign\x20Name:\x20','\x20Trunk\x20is\x20not\x20active','isActive','\x20Not\x20Active','Is\x20Valid','execCall','SIP/%s/%s%s','dialPrefix','dialCutDigit','phone','trim','substring','dialRandomLastDigitCallerIdNumber','dialOriginateCallerIdNumber','getCallerId','getCallerIdRandom','originatecalleridname','originatecalleridnum','extractCalleridNumber','addVariables','merge','toLowerVariables','variablesAction','destconnectedlinenum','calleridnum','user:agentconnect','accountcode','[originated][increment]'];(function(_0x5bc6d5,_0x14305e){var _0x32a9ae=function(_0x25508b){while(--_0x25508b){_0x5bc6d5['push'](_0x5bc6d5['shift']());}};_0x32a9ae(++_0x14305e);}(_0xe293,0x16d));var _0x3e29=function(_0x1c8cc6,_0x411e5c){_0x1c8cc6=_0x1c8cc6-0x0;var _0x522936=_0xe293[_0x1c8cc6];return _0x522936;};'use strict';var util=require(_0x3e29('0x0'));var _=require(_0x3e29('0x1'));var BPromise=require('bluebird');var uuid=require(_0x3e29('0x2'));var moment=require(_0x3e29('0x3'));var md5=require(_0x3e29('0x4'));var Redis=require('ioredis');var config=require(_0x3e29('0x5'));var logger=require('../../../config/logger')(_0x3e29('0x6'));var loggerAction=require('../../../config/logger')(_0x3e29('0x7'));var ami=require('../ami');var rpcDb=require('./rpcDb');var Action=require(_0x3e29('0x8'));var ut=require(_0x3e29('0x9'));config['redis']=_[_0x3e29('0xa')](config['redis'],{'host':_0x3e29('0xb'),'port':0x18eb});var io=require(_0x3e29('0xc'))(new Redis(config[_0x3e29('0xd')]));var Sequence=function(){};Sequence[_0x3e29('0xe')][_0x3e29('0xf')]=function(_0x3db043){this['tail']=this[_0x3e29('0x10')]?this[_0x3e29('0x10')][_0x3e29('0x11')](_0x3db043):_0x3db043();};function Preview(_0x4c57c8){this[_0x3e29('0x12')]=new Sequence();this[_0x3e29('0x13')]=_0x4c57c8['voiceQueues'];this[_0x3e29('0x14')]=_0x4c57c8['trunks'];this[_0x3e29('0x15')]={};this[_0x3e29('0x16')]=_0x4c57c8[_0x3e29('0x16')];this[_0x3e29('0x17')]=0x0;ami['on'](_0x3e29('0x18'),this[_0x3e29('0x19')][_0x3e29('0x1a')](this));ami['on'](_0x3e29('0x1b'),this[_0x3e29('0x1c')]['bind'](this));ami['on'](_0x3e29('0x1d'),this[_0x3e29('0x1e')][_0x3e29('0x1a')](this));ami['on'](_0x3e29('0x1f'),this[_0x3e29('0x20')][_0x3e29('0x1a')](this));ami['on']('newexten',this[_0x3e29('0x21')][_0x3e29('0x1a')](this));ami['on'](_0x3e29('0x22'),this['syncVarSet']['bind'](this));ami['on']('attendedtransfer',this[_0x3e29('0x23')][_0x3e29('0x1a')](this));ami['on'](_0x3e29('0x24'),this[_0x3e29('0x25')][_0x3e29('0x1a')](this));this[_0x3e29('0x26')](this[_0x3e29('0x13')]);}function emit(_0xf0d166,_0x1c2160,_0x216f4c){io['to'](_0xf0d166)[_0x3e29('0x27')](_0x1c2160,_0x216f4c);}function emitCampaignPreview(_0x2944f9){if(_0x2944f9[_0x3e29('0x28')]===_0x3e29('0x29')){var _0x7d1413={'id':_0x2944f9['id'],'name':_0x2944f9[_0x3e29('0x2a')],'strategy':_0x2944f9[_0x3e29('0x2b')],'answered':_0x2944f9[_0x3e29('0x2c')],'available':_0x2944f9[_0x3e29('0x2d')],'loggedIn':_0x2944f9['loggedIn'],'pTalking':_0x2944f9[_0x3e29('0x2e')],'sumBillable':_0x2944f9[_0x3e29('0x2f')],'sumDuration':_0x2944f9['sumDuration'],'sumHoldTime':_0x2944f9[_0x3e29('0x30')]||0x0,'talking':_0x2944f9[_0x3e29('0x31')],'total':_0x2944f9['total'],'type':_0x2944f9['type'],'unmanaged':_0x2944f9[_0x3e29('0x32')],'abandoned':_0x2944f9[_0x3e29('0x33')],'waiting':_0x2944f9[_0x3e29('0x34')],'loggedInDb':_0x2944f9['loggedInDb'],'dialActive':_0x2944f9[_0x3e29('0x35')],'dialMethod':_0x2944f9[_0x3e29('0x36')],'dialOriginateCallerIdName':_0x2944f9[_0x3e29('0x37')],'dialOriginateCallerIdNumber':_0x2944f9['dialOriginateCallerIdNumber'],'dialOriginateTimeout':_0x2944f9['dialOriginateTimeout'],'dialPrefix':_0x2944f9['dialPrefix'],'outboundAnswerAgiCallsDay':_0x2944f9[_0x3e29('0x38')],'outboundAnswerCallsDay':_0x2944f9[_0x3e29('0x39')],'outboundBlacklistCallsDay':_0x2944f9[_0x3e29('0x3a')],'outboundBusyCallsDay':_0x2944f9['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x2944f9[_0x3e29('0x3b')],'outboundDropCallsDayACS':_0x2944f9['outboundDropCallsDayACS'],'outboundDropCallsDayCallersExit':_0x2944f9[_0x3e29('0x3c')],'outboundDropCallsDayTimeout':_0x2944f9[_0x3e29('0x3d')],'outboundNoAnswerCallsDay':_0x2944f9[_0x3e29('0x3e')],'outboundNoSuchCallsDay':_0x2944f9['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x2944f9[_0x3e29('0x3f')],'outboundReCallsDay':_0x2944f9[_0x3e29('0x40')],'outboundRejectCallsDay':_0x2944f9[_0x3e29('0x41')],'outboundUnknownCallsDay':_0x2944f9[_0x3e29('0x42')],'outboundAbandonedCallsDay':_0x2944f9[_0x3e29('0x43')],'predictiveIntervalAnsweredCalls':_0x2944f9[_0x3e29('0x44')],'predictiveIntervalAvgHoldtime':_0x2944f9['predictiveIntervalAvgHoldtime'],'predictiveIntervalAvgTalktime':_0x2944f9[_0x3e29('0x45')],'predictiveIntervalDroppedCallsCallersExit':_0x2944f9[_0x3e29('0x46')],'predictiveIntervalDroppedCallsTimeout':_0x2944f9[_0x3e29('0x47')],'predictiveIntervalErlangCalls':_0x2944f9[_0x3e29('0x48')],'predictiveIntervalErlangCallsDroppedCalls':_0x2944f9[_0x3e29('0x49')],'predictiveIntervalHitRate':_0x2944f9[_0x3e29('0x4a')],'predictiveIntervalMultiplicativeFactor':_0x2944f9[_0x3e29('0x4b')],'predictiveIntervalPauses':_0x2944f9[_0x3e29('0x4c')],'predictiveIntervalAvailable':_0x2944f9['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x2944f9['predictiveIntervalTotalCalls'],'message':_0x2944f9[_0x3e29('0x4d')],'originated':_0x2944f9['originated'],'erlangCalls':_0x2944f9[_0x3e29('0x4e')],'erlangCallToSecond':_0x2944f9['erlangCallToSecond'],'erlangAbandonmentRate':_0x2944f9['erlangAbandonmentRate'],'erlangBusyFactor':_0x2944f9[_0x3e29('0x4f')],'startPredictive':_0x2944f9['startPredictive'],'startProgressive':_0x2944f9['startProgressive']};if(_0x2944f9[_0x3e29('0x50')]){_0x7d1413[_0x3e29('0x50')]={'id':_0x2944f9['Trunk']['id'],'name':_0x2944f9['Trunk']['name'],'active':_0x2944f9[_0x3e29('0x50')]['active'],'callerid':_0x2944f9[_0x3e29('0x50')][_0x3e29('0x51')]};}if(_0x2944f9['Interval']){_0x7d1413[_0x3e29('0x52')]={'id':_0x2944f9[_0x3e29('0x52')]['id'],'name':_0x2944f9[_0x3e29('0x52')][_0x3e29('0x2a')]};}var _0xe42f96=md5(JSON[_0x3e29('0x53')](_0x7d1413));if(_0x2944f9[_0x3e29('0x4')]!==_0xe42f96){_0x2944f9[_0x3e29('0x4')]=_0xe42f96;emit(util[_0x3e29('0x54')](_0x3e29('0x55'),_0x7d1413[_0x3e29('0x2a')]),_0x3e29('0x56'),_0x7d1413);}}}function emitVoiceQueueChannelRemove(_0x266d70){logger[_0x3e29('0x57')]('[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event',JSON['stringify'](_0x266d70));emit(util[_0x3e29('0x54')]('voice:queue:%s',_0x266d70['name']),'voice_queue_channel:remove',_0x266d70);io[_0x3e29('0x27')](_0x3e29('0x58'),_0x266d70);}function notSendMessagesQueue(_0xac23b){if(_0xac23b[_0x3e29('0x59')]){if(_0xac23b[_0x3e29('0x5a')]===0x0&&_0xac23b['pTalking']===0x0){_0xac23b[_0x3e29('0x59')]=![];_0xac23b[_0x3e29('0x2d')]=0x0;_0xac23b['paused']=0x0;_0xac23b[_0x3e29('0x4d')]=_0x3e29('0x5b');ut[_0x3e29('0x5c')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0xac23b[_0x3e29('0x2a')]+'\x20is\x20not\x20active');}else{_0xac23b[_0x3e29('0x4d')]=_0x3e29('0x5d');ut['logger'](_0x3e29('0x5e'),_0xac23b['name']+_0x3e29('0x5f'));}emitCampaignPreview(_0xac23b);}}Preview['prototype'][_0x3e29('0x26')]=function(){var _0x110f73=this;setInterval(function(){_0x110f73[_0x3e29('0x60')]();},0x7cf);};Preview[_0x3e29('0xe')][_0x3e29('0x60')]=function(){var _0x557282=this['campaignsPreview'];this['clockClearZombieChannels']+=0x1;for(var _0x7db84c in _0x557282){if(_0x557282[_0x3e29('0x61')](_0x7db84c)&&(_0x557282[_0x7db84c][_0x3e29('0x36')]===_0x3e29('0x6')||_0x557282[_0x7db84c][_0x3e29('0x36')]===_0x3e29('0x62'))&&_0x557282[_0x7db84c]['type']===_0x3e29('0x29')){if(this['clockClearZombieChannels']>0x7){this[_0x3e29('0x17')]=0x0;this[_0x3e29('0x63')]();}}if(_0x557282[_0x3e29('0x61')](_0x7db84c)&&_0x557282[_0x7db84c][_0x3e29('0x36')]===_0x3e29('0x6')&&_0x557282[_0x7db84c][_0x3e29('0x28')]===_0x3e29('0x29')){if(_0x557282[_0x7db84c]['dialActive']){this[_0x3e29('0x64')](_0x557282[_0x7db84c]);this['recallMe'](_0x557282[_0x7db84c]);}else{notSendMessagesQueue(_0x557282[_0x7db84c]);}}}};Preview['prototype'][_0x3e29('0x65')]=function(_0x23b861){var _0x1ab871=this;this[_0x3e29('0x12')][_0x3e29('0xf')](function(){if(!_[_0x3e29('0x66')](_0x1ab871[_0x3e29('0x15')][_0x23b861])){loggerAction['info'](_0x3e29('0x67'),_0x23b861,_0x3e29('0x68'),_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x69')],_0x3e29('0x6a'),JSON[_0x3e29('0x53')](_0x1ab871[_0x3e29('0x13')][_0x1ab871['actions'][_0x23b861][_0x3e29('0x69')]][_0x3e29('0x5a')]),_0x3e29('0x6b'),JSON['stringify'](_0x1ab871[_0x3e29('0x13')][_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x69')]]['pTalking']),JSON[_0x3e29('0x53')](_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x6c')]),JSON['stringify'](_[_0x3e29('0x6d')](_0x1ab871[_0x3e29('0x15')][_0x23b861],[_0x3e29('0x6e'),'UserId',_0x3e29('0x6f'),_0x3e29('0x70')])));return ami[_0x3e29('0x71')]({'action':_0x3e29('0x72'),'channel':_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x73')]})[_0x3e29('0x74')](function(_0x59135d){if(_0x59135d[_0x3e29('0x4d')]===_0x3e29('0x75')){setTimeout(function(){if(_0x1ab871[_0x3e29('0x15')][_0x23b861]){ut[_0x3e29('0x76')](_0x1ab871['campaignsPreview'][_0x1ab871['actions'][_0x23b861][_0x3e29('0x69')]],_0x3e29('0x77'));if(_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x6c')]===!![]){ut[_0x3e29('0x78')](_0x1ab871[_0x3e29('0x13')][_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x69')]],_0x3e29('0x77'));ut[_0x3e29('0x79')](_0x3e29('0x7a')+_0x23b861,_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x69')]);}ut[_0x3e29('0x79')](_0x3e29('0x7b')+_0x23b861,_0x1ab871[_0x3e29('0x15')][_0x23b861][_0x3e29('0x69')]);delete _0x1ab871[_0x3e29('0x15')][_0x23b861];}},0x2328);}});}});};Preview[_0x3e29('0xe')][_0x3e29('0x63')]=function(){var _0x5194e7=this;loggerAction[_0x3e29('0x57')](_0x3e29('0x7c'),_[_0x3e29('0x7d')](this[_0x3e29('0x15')]));for(var _0x1a1616 in this['actions']){if(_0x5194e7[_0x3e29('0x15')]['hasOwnProperty'](_0x1a1616)){_0x5194e7[_0x3e29('0x65')](_0x1a1616);}}};Preview[_0x3e29('0xe')][_0x3e29('0x7e')]=function(_0x344898){var _0x237234=this;rpcDb[_0x3e29('0x7f')](_0x344898['id'],ut['agentReadyId'](this[_0x3e29('0x16')]))[_0x3e29('0x80')](function(_0xf99909){if(!_['isNil'](_0xf99909)){for(var _0x37ce41=0x0;_0x37ce41<_0xf99909[_0x3e29('0x81')];_0x37ce41+=0x1){if(ut[_0x3e29('0x82')](_0xf99909[_0x37ce41][_0x3e29('0x83')])<_0x344898[_0x3e29('0x84')]*0x3c){if(_0xf99909[_0x37ce41][_0x3e29('0x85')]&&!_0xf99909[_0x37ce41][_0x3e29('0x85')][_0x3e29('0x86')]){_0x237234[_0x3e29('0x87')](_0xf99909[_0x37ce41]['id'])[_0x3e29('0x80')](ut[_0x3e29('0x88')](_0x3e29('0x89')))[_0x3e29('0x74')](ut[_0x3e29('0x88')](_0x3e29('0x89')));}else{rpcDb[_0x3e29('0x8a')](_0xf99909[_0x37ce41]['id']);}}else{var _0x55d169=new Action(_0xf99909[_0x37ce41],_0x344898);_0x55d169[_0x3e29('0x8b')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x344898[_0x3e29('0x40')]+=0x1;ut[_0x3e29('0x8c')](_0x55d169,0x17,_0x3e29('0x8d'));if(_0x344898[_0x3e29('0x8e')]){rpcDb[_0x3e29('0x8f')](ut[_0x3e29('0x90')](_0xf99909[_0x37ce41]));rpcDb[_0x3e29('0x91')](_0x55d169,'[HistoryDialRecallInQueue][historyCatch]');}else{ut[_0x3e29('0x8c')](_0x55d169,0x16,_0x3e29('0x92'));rpcDb[_0x3e29('0x91')](_0x55d169,_0x3e29('0x93'));rpcDb[_0x3e29('0x94')](_0x55d169,_0x3e29('0x93'));}}}}})['catch'](ut[_0x3e29('0x88')](_0x3e29('0x95')));};Preview['prototype']['setMessage']=function(_0x4e144b){_0x4e144b[_0x3e29('0x59')]=!![];if(ut[_0x3e29('0x96')](_0x4e144b[_0x3e29('0x97')])){_0x4e144b[_0x3e29('0x4d')]='AGENTS_NOT_LOGGED';}else if(!ut['isActive'](_0x4e144b[_0x3e29('0x35')])){_0x4e144b['message']='NOT_ACTIVE';}else if(!this[_0x3e29('0x98')](_0x4e144b[_0x3e29('0x50')])){if(!this[_0x3e29('0x98')](_0x4e144b[_0x3e29('0x99')])){_0x4e144b[_0x3e29('0x4d')]=_0x3e29('0x9a');}else{_0x4e144b[_0x3e29('0x4d')]=_0x3e29('0x9b');}}else{_0x4e144b['message']=_0x3e29('0x9b');}emitCampaignPreview(_0x4e144b);};Preview[_0x3e29('0xe')][_0x3e29('0x9c')]=function(_0x4e2f2a,_0x5dae8d,_0x3ab0ff){var _0x431fca=this;var _0x2258b6=this['actions'][_0x5dae8d];var _0x5ebec8=this[_0x3e29('0x13')][_0x2258b6[_0x3e29('0x69')]];var _0x30e5ef;if(_0x5ebec8){switch(_0x3ab0ff){case'1':_0x5ebec8[_0x3e29('0x9d')]+=0x1;_0x2258b6[_0x3e29('0x9e')]+=0x1;_0x2258b6[_0x3e29('0x9f')]=ut['totalGlobal'](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0x0,_0x3e29('0xa0'));ami[_0x3e29('0x27')](_0x3e29('0xa1'),ut[_0x3e29('0xa2')](_0x2258b6,'nosuchnumber'));rpcDb[_0x3e29('0x91')](_0x2258b6,_0x3e29('0xa3'));if(ut['totalGlobal'](_0x2258b6)>=_0x5ebec8[_0x3e29('0xa4')]){_0x30e5ef=ut[_0x3e29('0xa5')](_0x2258b6,0xf,_0x3e29('0xa6'));rpcDb[_0x3e29('0x94')](_0x30e5ef,_0x3e29('0xa7'));}else{if(_0x2258b6[_0x3e29('0x9e')]>=_0x5ebec8['dialNoSuchNumberMaxRetry']){rpcDb[_0x3e29('0x94')](_0x2258b6,'[callProgressDetectingCustomer][logNoSuchGlobal]');}else{rpcDb[_0x3e29('0xa8')](ut[_0x3e29('0xa9')](_0x2258b6,'countnosuchnumberretry',_0x5ebec8[_0x3e29('0xaa')]),_0x2258b6[_0x3e29('0xab')],_0x2258b6[_0x3e29('0xac')]);}}delete this[_0x3e29('0x15')][_0x4e2f2a[_0x3e29('0xad')]];break;case _0x3e29('0xae'):var _0x16c6dd=moment()[_0x3e29('0x54')](_0x3e29('0xaf'));_0x2258b6[_0x3e29('0xb0')]=_0x16c6dd;_0x2258b6[_0x3e29('0xb1')]=_0x16c6dd;_0x2258b6[_0x3e29('0x6c')]=!![];_0x5ebec8[_0x3e29('0x2e')]+=0x1;logger[_0x3e29('0x57')]('[syncHangup][talking][increment]',_0x2258b6['uniqueid'],_0x3e29('0xb2'),_0x5ebec8[_0x3e29('0x2a')],_0x3e29('0x6b'),_0x5ebec8[_0x3e29('0x2e')]);ami[_0x3e29('0x27')]('custom:agentconnect',ut[_0x3e29('0xa2')](_0x2258b6,_0x3e29('0xb3'),this[_0x3e29('0x13')][_0x2258b6[_0x3e29('0x69')]]));if(_0x5ebec8[_0x3e29('0xb4')]){ami[_0x3e29('0x27')](_0x3e29('0xb5'),ut[_0x3e29('0xb6')](_0x2258b6));}break;case'16':ami[_0x3e29('0x27')]('custom:agentcomplete',ut[_0x3e29('0xa2')](_0x2258b6,_0x3e29('0xb7'),this['campaignsPreview'][_0x2258b6[_0x3e29('0x69')]]));emitVoiceQueueChannelRemove(ut[_0x3e29('0xa2')](_0x2258b6,'complete'));_0x5ebec8[_0x3e29('0x39')]+=0x1;_0x5ebec8['total']+=0x1;_0x5ebec8[_0x3e29('0x2c')]+=0x1;ut[_0x3e29('0x78')](_0x5ebec8,_0x3e29('0xb8'));_0x2258b6['countglobal']=ut[_0x3e29('0xb9')](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0x4,'Answer');rpcDb[_0x3e29('0x91')](_0x2258b6,_0x3e29('0xba'));rpcDb[_0x3e29('0x94')](_0x2258b6,'[callProgressDetectingCustomer][logAnswerGlobal]');rpcDb[_0x3e29('0xbb')](_0x2258b6);_0x5ebec8[_0x3e29('0xbc')]+=_0x2258b6['talktime'];_0x5ebec8[_0x3e29('0x2f')]+=_0x2258b6[_0x3e29('0xbd')];logger[_0x3e29('0x57')](_0x3e29('0xbe'),_0x2258b6[_0x3e29('0xbf')],_0x3e29('0xb2'),_0x5ebec8['name'],_0x3e29('0x6b'),_0x5ebec8[_0x3e29('0x2e')]);delete this[_0x3e29('0x15')][_0x4e2f2a[_0x3e29('0xad')]];break;case _0x3e29('0xc0'):_0x5ebec8['outboundBusyCallsDay']+=0x1;_0x2258b6[_0x3e29('0xc1')]+=0x1;_0x2258b6['countglobal']=ut['totalGlobal'](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0x5,_0x3e29('0xc2'));ami[_0x3e29('0x27')](_0x3e29('0xc3'),ut['buildObj'](_0x2258b6,'busy'));rpcDb[_0x3e29('0x91')](_0x2258b6,_0x3e29('0xc4'));if(ut[_0x3e29('0xb9')](_0x2258b6)>=_0x5ebec8[_0x3e29('0xa4')]){_0x30e5ef=ut['cloneAction'](_0x2258b6,0xf,'Global');rpcDb['createCustomerFinal'](_0x30e5ef,_0x3e29('0xc5'));}else{if(_0x2258b6[_0x3e29('0xc1')]>=_0x5ebec8[_0x3e29('0xc6')]){rpcDb[_0x3e29('0x94')](_0x2258b6,_0x3e29('0xc4'));}else{rpcDb[_0x3e29('0xa8')](ut[_0x3e29('0xa9')](_0x2258b6,'countbusyretry',_0x5ebec8[_0x3e29('0xc7')]),_0x2258b6[_0x3e29('0xab')],_0x2258b6[_0x3e29('0xac')]);}}break;case _0x3e29('0xc8'):_0x5ebec8[_0x3e29('0x3e')]+=0x1;_0x2258b6[_0x3e29('0xc9')]+=0x1;_0x2258b6['countglobal']=ut[_0x3e29('0xb9')](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0x3,_0x3e29('0xca'));ami[_0x3e29('0x27')]('custom:agentnoanswer',ut[_0x3e29('0xa2')](_0x2258b6,_0x3e29('0xcb')));rpcDb[_0x3e29('0x91')](_0x2258b6,'[callProgressDetectingCustomer][logNoAnswer]');if(ut['totalGlobal'](_0x2258b6)>=_0x5ebec8[_0x3e29('0xa4')]){_0x30e5ef=ut[_0x3e29('0xa5')](_0x2258b6,0xf,'Global');rpcDb[_0x3e29('0x94')](_0x30e5ef,_0x3e29('0xcc'));}else{if(_0x2258b6[_0x3e29('0xc9')]>=_0x5ebec8[_0x3e29('0xcd')]){rpcDb[_0x3e29('0x94')](_0x2258b6,_0x3e29('0xce'));}else{rpcDb[_0x3e29('0xa8')](ut[_0x3e29('0xa9')](_0x2258b6,_0x3e29('0xc9'),_0x5ebec8[_0x3e29('0xcf')]),_0x2258b6['unlockAgent'],_0x2258b6[_0x3e29('0xac')]);}}break;case _0x3e29('0xd0'):_0x5ebec8['outboundCongestionCallsDay']+=0x1;_0x2258b6[_0x3e29('0xd1')]+=0x1;_0x2258b6[_0x3e29('0x9f')]=ut[_0x3e29('0xb9')](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0x8,_0x3e29('0xd2'));ami['emit'](_0x3e29('0xd3'),ut[_0x3e29('0xa2')](_0x2258b6,_0x3e29('0xd4')));rpcDb[_0x3e29('0x91')](_0x2258b6,_0x3e29('0xd5'));if(ut[_0x3e29('0xb9')](_0x2258b6)>=_0x5ebec8[_0x3e29('0xa4')]){_0x30e5ef=ut[_0x3e29('0xa5')](_0x2258b6,0xf,'Global');rpcDb['createCustomerFinal'](_0x30e5ef,_0x3e29('0xd6'));}else{if(_0x2258b6['countcongestionretry']>=_0x5ebec8[_0x3e29('0xd7')]){rpcDb[_0x3e29('0x94')](_0x2258b6,'[callProgressDetectingCustomer][logCongestion]');}else{rpcDb[_0x3e29('0xa8')](ut[_0x3e29('0xa9')](_0x2258b6,'countcongestionretry',_0x5ebec8[_0x3e29('0xc7')]),_0x2258b6[_0x3e29('0xab')],_0x2258b6[_0x3e29('0xac')]);}}break;case'CANCEL':_0x5ebec8[_0x3e29('0x41')]+=0x1;_0x2258b6[_0x3e29('0xd8')]+=0x1;_0x2258b6['countglobal']=ut[_0x3e29('0xb9')](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0x14,_0x3e29('0xd9'));ami['emit'](_0x3e29('0xda'),ut['buildObj'](_0x2258b6,'agentreject'));rpcDb[_0x3e29('0x91')](_0x2258b6,_0x3e29('0xdb'));if(ut['totalGlobal'](_0x2258b6)>=_0x5ebec8['dialGlobalMaxRetry']){_0x30e5ef=ut[_0x3e29('0xa5')](_0x2258b6,0x14,'AgentReject');rpcDb['createCustomerFinal'](_0x30e5ef,_0x3e29('0xdc'));}else{if(_0x2258b6[_0x3e29('0xd8')]>=_0x5ebec8[_0x3e29('0xdd')]){rpcDb['createCustomerFinal'](_0x2258b6,_0x3e29('0xdc'));}else{rpcDb[_0x3e29('0xa8')](ut[_0x3e29('0xa9')](_0x2258b6,_0x3e29('0xd8'),_0x5ebec8[_0x3e29('0xde')]),_0x2258b6[_0x3e29('0xab')],_0x2258b6[_0x3e29('0xac')]);}}break;case _0x3e29('0xdf'):_0x5ebec8[_0x3e29('0x43')]+=0x1;_0x2258b6[_0x3e29('0xe0')]+=0x1;_0x2258b6['countglobal']=ut[_0x3e29('0xb9')](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0xb,'Abandoned');rpcDb['createCustomerHistory'](_0x2258b6,_0x3e29('0xe1'));if(ut[_0x3e29('0xb9')](_0x2258b6)>=_0x5ebec8[_0x3e29('0xa4')]){_0x30e5ef=ut[_0x3e29('0xa5')](_0x2258b6,0xf,_0x3e29('0xa6'));rpcDb['createCustomerFinal'](_0x30e5ef,_0x3e29('0xe1'));}else{if(_0x2258b6[_0x3e29('0xe2')]>=_0x5ebec8['dialAbandonedMaxRety']){rpcDb['createCustomerFinal'](_0x2258b6,_0x3e29('0xe1'));}else{rpcDb[_0x3e29('0xa8')](ut[_0x3e29('0xa9')](_0x2258b6,_0x3e29('0xe0'),_0x5ebec8[_0x3e29('0xe3')]),_0x2258b6[_0x3e29('0xab')],_0x2258b6[_0x3e29('0xac')]);}}break;case'18':_0x5ebec8[_0x3e29('0x42')]+=0x1;_0x2258b6[_0x3e29('0xe4')]+=0x1;_0x2258b6[_0x3e29('0x9f')]=ut[_0x3e29('0xb9')](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0x12,_0x4e2f2a[_0x3e29('0xe5')]||_0x4e2f2a['dialstatus']);ami['emit'](_0x3e29('0xe6'),ut[_0x3e29('0xa2')](_0x2258b6,_0x3e29('0xe7')));rpcDb[_0x3e29('0x91')](_0x2258b6,'[callProgressDetectingCustomer][hangupInAMD]');if(ut[_0x3e29('0xb9')](_0x2258b6)>=_0x5ebec8[_0x3e29('0xa4')]){_0x30e5ef=ut['cloneAction'](_0x2258b6,0xf,_0x3e29('0xa6'));rpcDb[_0x3e29('0x94')](_0x30e5ef,'[callProgressDetectingCustomer][hangupInAMD]');}else{rpcDb[_0x3e29('0x94')](_0x2258b6,_0x3e29('0xe8'));}delete this[_0x3e29('0x15')][_0x4e2f2a[_0x3e29('0xad')]];break;case'19':_0x5ebec8[_0x3e29('0x42')]+=0x1;_0x2258b6['countglobal']=ut[_0x3e29('0xb9')](_0x2258b6);ut['logCustomer'](_0x2258b6,0x13,_0x4e2f2a[_0x3e29('0xe5')]||_0x4e2f2a[_0x3e29('0xe9')]);ami['emit']('custom:amd',ut[_0x3e29('0xa2')](_0x2258b6,_0x3e29('0xe7')));rpcDb[_0x3e29('0x91')](_0x2258b6,'[callProgressDetectingCustomer][machine]');if(ut[_0x3e29('0xb9')](_0x2258b6)>=_0x5ebec8['dialGlobalMaxRetry']){_0x30e5ef=ut['cloneAction'](_0x2258b6,0xf,_0x3e29('0xa6'));rpcDb['createCustomerFinal'](_0x30e5ef,'[callProgressDetectingCustomer][machine]');}else{rpcDb[_0x3e29('0x94')](_0x2258b6,_0x3e29('0xea'));}delete this[_0x3e29('0x15')][_0x4e2f2a['linkedid']];break;default:if(_0x2258b6[_0x3e29('0x6c')]){ut[_0x3e29('0x78')](_0x5ebec8,'[default]');ut['loggerError'](_0x3e29('0xeb')+_0x5ebec8[_0x3e29('0x2a')],_0x4e2f2a);}_0x5ebec8['outboundUnknownCallsDay']+=0x1;_0x2258b6[_0x3e29('0x9f')]=ut[_0x3e29('0xb9')](_0x2258b6);ut[_0x3e29('0x8c')](_0x2258b6,0xc,_0x4e2f2a[_0x3e29('0xe5')]||_0x4e2f2a[_0x3e29('0xe9')]);rpcDb[_0x3e29('0x91')](_0x2258b6,_0x3e29('0xec'));if(ut[_0x3e29('0xb9')](_0x2258b6)>=_0x5ebec8[_0x3e29('0xa4')]){_0x30e5ef=ut[_0x3e29('0xa5')](_0x2258b6,0xf,_0x3e29('0xa6'));rpcDb[_0x3e29('0x94')](_0x30e5ef,'[callProgressDetectingCustomer][logUnknownGlobal]');}else{rpcDb[_0x3e29('0x94')](_0x2258b6,_0x3e29('0xed'));}delete this['actions'][_0x4e2f2a[_0x3e29('0xad')]];}if(!(_0x2258b6['dialAnswer']&&_0x3ab0ff==='16')){ut['updateOriginated'](_0x5ebec8,'[callProgressDetectingCustomer]');logger[_0x3e29('0x57')](_0x3e29('0xee'),_0x2258b6['uniqueid'],'\x20Queue',_0x5ebec8['name'],'originated:\x20',_0x5ebec8[_0x3e29('0x5a')]);}if(_0x3ab0ff!==_0x3e29('0xae')){delete this[_0x3e29('0x15')][_0x4e2f2a['linkedid']];delete this[_0x3e29('0x15')][_0x4e2f2a[_0x3e29('0xef')]];}}};Preview[_0x3e29('0xe')]['callProgressDetectingAgent']=function(_0xbebc99,_0x14ddef,_0x1f6aee){if(_['isUndefined'](_0x14ddef)&&'object'!==typeof _0x14ddef){return;}if(_[_0x3e29('0xf0')](_0x1f6aee)&&_0x3e29('0xf1')!==typeof _0x1f6aee){return;}switch(_0x1f6aee[_0x3e29('0xf2')]){case'0':ut[_0x3e29('0xf3')](_0xbebc99,0x0,_0x3e29('0xa0'));rpcDb['createAgentHistory'](_0xbebc99,_0x3e29('0xf4'));break;case'3':ut[_0x3e29('0xf3')](_0xbebc99,0x3,_0x3e29('0xca'));rpcDb['createAgentHistory'](_0xbebc99,_0x3e29('0xf5'));break;case'5':ut[_0x3e29('0xf3')](_0xbebc99,0x5,_0x3e29('0xc2'));rpcDb[_0x3e29('0xf6')](_0xbebc99,_0x3e29('0xf7'));break;case'8':ut[_0x3e29('0xf3')](_0xbebc99,0x8,_0x3e29('0xd2'));rpcDb['createAgentHistory'](_0xbebc99,'[callProgressDetectingAgent][logCongestion]');break;case'22':ut[_0x3e29('0xf3')](_0xbebc99,0x16,_0x3e29('0xf8'));rpcDb[_0x3e29('0xf6')](_0xbebc99,'[callProgressDetectingAgent][logAnswerAGI]');break;default:ut[_0x3e29('0xf3')](_0xbebc99,0xc,_0x1f6aee[_0x3e29('0xf2')]);rpcDb[_0x3e29('0xf6')](_0xbebc99,_0x3e29('0xf9'));}ut[_0x3e29('0x76')](_0x14ddef,'[callProgressDetectingAgent]');logger[_0x3e29('0x57')]('[originated][decrement][callProgressDetectingAgent]',_0xbebc99[_0x3e29('0xbf')],'\x20Queue',_0x14ddef[_0x3e29('0x2a')],_0x3e29('0x6a'),_0x14ddef['originated']);delete this['actions'][_0xbebc99[_0x3e29('0xbf')]];};Preview[_0x3e29('0xe')][_0x3e29('0xfa')]=function(_0x3b0f43,_0x106ae0,_0x4c602a,_0x3dddfd,_0x48a367){var _0xe77a70=this;return new BPromise(function(_0x13dcb7,_0x107082){if(_['isNil'](_0x106ae0)||_[_0x3e29('0x66')](_0x106ae0['Contact'])||_[_0x3e29('0x66')](_0x106ae0[_0x3e29('0xfb')]['phone'])||_[_0x3e29('0x66')](_0x106ae0[_0x3e29('0x6f')])){_0x107082(ut['message'](_0x3e29('0xfc'),_0x3dddfd,_0x48a367));return;}var _0x52ccd6=uuid['v4']();var _0x3c78bd=_0xe77a70[_0x3e29('0x13')][_0x106ae0['Queue']['name']];var _0x18f937=_0x4c602a?_0xe77a70[_0x3e29('0x16')][_0x4c602a]['id']:undefined;_0xe77a70[_0x3e29('0x15')][_0x52ccd6]=new Action(_0x106ae0,_0x3c78bd,_0x52ccd6,_0x4c602a,_0x18f937);var _0x3771e8=_0xe77a70[_0x3e29('0x15')][_0x52ccd6];_0x3771e8[_0x3e29('0xab')]=_0x3dddfd;_0x3771e8[_0x3e29('0xac')]=_0x48a367;_0x3771e8[_0x3e29('0xfd')]=_0x4c602a;if(_[_0x3e29('0xfe')](_0x3b0f43)){_0xe77a70['execCall'](_0x3771e8,_0x3c78bd,_0x106ae0,_0x4c602a)[_0x3e29('0x80')](function(_0x25c08a){logger[_0x3e29('0x57')](_0x3e29('0xff'),_0x3e29('0x100')+_0x3771e8[_0x3e29('0x69')]+_0x3e29('0x101')+_0x3771e8[_0x3e29('0x102')],JSON['stringify'](_0x25c08a));ami[_0x3e29('0x27')](_0x3e29('0x103'),ut[_0x3e29('0xa2')](_0x3771e8,'called',_0xe77a70[_0x3e29('0x13')][_0x3771e8['queue']]));_0x13dcb7(ut['message']('Calling'));})[_0x3e29('0x74')](function(_0x4958f2){ut[_0x3e29('0x5c')](_0x3e29('0x104'),_0x4958f2);_0x107082(ut[_0x3e29('0x4d')](_0x3e29('0x105'),_0x3dddfd,_0x48a367));});}else{_0x3c78bd[_0x3e29('0x3a')]+=0x1;ut[_0x3e29('0x106')](_0x3771e8);rpcDb[_0x3e29('0x107')](_0x3771e8,_0x3e29('0x108'));delete _0xe77a70['actions'][_0x52ccd6];_0x107082(ut['message'](_0x3e29('0x109'),_0x3dddfd,_0x48a367));}});};Preview[_0x3e29('0xe')][_0x3e29('0x98')]=function(_0x29c389){return!_[_0x3e29('0x66')](_0x29c389)&&!_[_0x3e29('0x66')](_0x29c389[_0x3e29('0x2a')])&&!_[_0x3e29('0x66')](_0x29c389[_0x3e29('0x10a')])&&_0x29c389[_0x3e29('0x10a')]&&!_['isNil'](this[_0x3e29('0x14')][util[_0x3e29('0x54')](_0x3e29('0x10b'),_0x29c389[_0x3e29('0x2a')])])&&!_[_0x3e29('0x66')](this[_0x3e29('0x14')][util[_0x3e29('0x54')](_0x3e29('0x10b'),_0x29c389[_0x3e29('0x2a')])][_0x3e29('0x72')])&&(this['trunks'][util[_0x3e29('0x54')](_0x3e29('0x10b'),_0x29c389[_0x3e29('0x2a')])][_0x3e29('0x72')]===_0x3e29('0x10c')||this[_0x3e29('0x14')][util[_0x3e29('0x54')](_0x3e29('0x10b'),_0x29c389[_0x3e29('0x2a')])][_0x3e29('0x72')]==='unmonitored');};Preview[_0x3e29('0xe')][_0x3e29('0x87')]=function(_0x2ad93e,_0x4a4f78){var _0x309aae=this;return new BPromise(function(_0x1084e2,_0x5c84f0){_0x309aae[_0x3e29('0x10d')](_0x2ad93e,_0x4a4f78)[_0x3e29('0x80')](function(_0x39ca23){_0x1084e2(_['pick'](_0x39ca23,[_0x3e29('0x4d')]));})[_0x3e29('0x74')](function(_0x536af3){if(_0x536af3[_0x3e29('0x10e')]){rpcDb['unlockContact'](_0x2ad93e);}if(_0x536af3['active']){rpcDb[_0x3e29('0x8a')](_0x2ad93e);}_0x5c84f0(_[_0x3e29('0x6d')](_0x536af3,[_0x3e29('0x4d')]));});});};Preview[_0x3e29('0xe')][_0x3e29('0x10d')]=function(_0x5820a6,_0x378d49){var _0x53c8b8=this;return new BPromise(function(_0x33e48e,_0x2bf845){var _0x4fdf8d,_0x2545ce;rpcDb['getContactPreview'](_0x5820a6)['then'](function(_0xd366b1){if(!_['isNil'](_0xd366b1[0x0])){_0x2545ce=_0xd366b1[0x0][_0x3e29('0x10f')]?![]:!![];_0x4fdf8d=_0xd366b1[0x0][_0x3e29('0x10f')]?!![]:![];_0x4fdf8d=_0x378d49?!![]:_0x4fdf8d;}var _0x1523df=_0x53c8b8[_0x3e29('0x110')](_0xd366b1);if(_0x1523df[_0x3e29('0x111')]){rpcDb[_0x3e29('0x112')](_[_0x3e29('0x6d')](_0xd366b1[0x0],[_0x3e29('0x6f'),_0x3e29('0x113')]))[_0x3e29('0x80')](function(_0x3c4ebf){_0x53c8b8[_0x3e29('0xfa')](_0x3c4ebf,_0xd366b1[0x0],_0x378d49,_0x2545ce,_0x4fdf8d)[_0x3e29('0x80')](function(_0x330214){_0x33e48e(_0x330214);})['catch'](function(_0x265db2){_0x2bf845(_0x265db2);});})[_0x3e29('0x74')](function(_0xb3fbf){ut['logger'](_0x3e29('0x114'),_0xb3fbf);_0x2bf845(ut[_0x3e29('0x4d')](_0x3e29('0x115'),_0x2545ce,_0x4fdf8d));});}else{_0x2bf845(ut[_0x3e29('0x4d')](_0x1523df[_0x3e29('0x4d')],_0x2545ce,_0x4fdf8d));}})[_0x3e29('0x74')](function(_0x53449e){ut[_0x3e29('0x5c')]('[Preview][getContactPreview]',_0x53449e);_0x2bf845(ut[_0x3e29('0x4d')](_0x3e29('0x115'),![],!![]));});});};Preview['prototype'][_0x3e29('0x110')]=function(_0x5ab4f1){if(_[_0x3e29('0x66')](_0x5ab4f1)||_[_0x3e29('0xfe')](_0x5ab4f1)||!_[_0x3e29('0x66')](_0x5ab4f1[0x0]['Agent'])&&_[_0x3e29('0x66')](_0x5ab4f1[0x0]['Agent']['name'])){ut[_0x3e29('0x5c')](_0x3e29('0x116'),_0x5ab4f1);return{'isValid':![],'message':_0x3e29('0x117')};}var _0x3d5846=this[_0x3e29('0x13')][_0x5ab4f1[0x0][_0x3e29('0x68')][_0x3e29('0x2a')]];_0x3d5846[_0x3e29('0x4d')]=_0x3e29('0x9b');if(_['isNil'](_0x3d5846)){ut[_0x3e29('0x5c')]('[Preview][validateContact][Empty\x20Campaign]',_0x3d5846);return{'isValid':![],'message':_0x3e29('0x118')};}if(!this['isTrunkReachable'](_0x3d5846['Trunk'])){ut[_0x3e29('0x5c')]('[Preview][validateContact][Trunk\x20not\x20work]',_0x3e29('0x119')+_0x3d5846[_0x3e29('0x2a')]+_0x3e29('0x11a'));if(!this['isTrunkReachable'](_0x3d5846[_0x3e29('0x99')])){ut[_0x3e29('0x5c')]('[Preview][validateContact][Trunk\x20not\x20work]',_0x3d5846['name']+'\x20Trunk\x20Backup\x20is\x20not\x20active');return{'isValid':![],'message':'Trunk\x20not\x20work'};}}if(!ut[_0x3e29('0x11b')](_0x3d5846[_0x3e29('0x35')])){ut['logger']('[Preview][validateContact][Campaign\x20Active]',_0x3d5846[_0x3e29('0x2a')]+_0x3e29('0x11c'));return{'isValid':![],'message':'campaign\x20Name:\x20'+_0x3d5846[_0x3e29('0x2a')]+'\x20Not\x20Active'};}return{'isValid':!![],'message':_0x3e29('0x11d')};};Preview[_0x3e29('0xe')][_0x3e29('0x11e')]=function(_0x5040c2,_0x272573,_0x9e613b,_0x562813){var _0x8417e1=this;return new BPromise(function(_0x2e90b7,_0xb48846){var _0x269512=_0x5040c2[_0x3e29('0xbf')];var _0x36839d=_0x8417e1[_0x3e29('0x98')](_0x272573[_0x3e29('0x50')])?util[_0x3e29('0x54')](_0x3e29('0x11f'),_0x272573['Trunk']['name'],_['isNil'](_0x272573['dialPrefix'])?'':_0x272573[_0x3e29('0x120')]['trim']()||'',_0x272573[_0x3e29('0x121')]>0x0?_0x9e613b[_0x3e29('0xfb')][_0x3e29('0x122')]['substring'](_0x272573[_0x3e29('0x121')]):_0x9e613b['Contact'][_0x3e29('0x122')]):util[_0x3e29('0x54')](_0x3e29('0x11f'),_[_0x3e29('0x66')](_0x272573['TrunkBackup'])?_0x272573[_0x3e29('0x50')][_0x3e29('0x2a')]:_0x272573[_0x3e29('0x99')][_0x3e29('0x2a')],_['isNil'](_0x272573[_0x3e29('0x120')])?'':_0x272573[_0x3e29('0x120')][_0x3e29('0x123')]()||'',_0x272573['dialCutDigit']>0x0?_0x9e613b[_0x3e29('0xfb')]['phone'][_0x3e29('0x124')](_0x272573[_0x3e29('0x121')]):_0x9e613b['Contact'][_0x3e29('0x122')]);var _0x35f9be=_0x8417e1[_0x3e29('0x98')](_0x272573['Trunk'])?ut['getCallerId'](_0x272573['Trunk'][_0x3e29('0x51')],_0x272573['dialOriginateCallerIdName'],_0x272573[_0x3e29('0x125')]>0x0?ut['getCallerIdRandom'](_0x272573[_0x3e29('0x126')],_0x272573[_0x3e29('0x125')]):_0x272573[_0x3e29('0x126')]):ut[_0x3e29('0x127')](_[_0x3e29('0x66')](_0x272573['TrunkBackup'])?_0x272573[_0x3e29('0x50')][_0x3e29('0x51')]:_0x272573[_0x3e29('0x99')][_0x3e29('0x51')],_0x272573[_0x3e29('0x37')],_0x272573[_0x3e29('0x125')]>0x0?ut[_0x3e29('0x128')](_0x272573[_0x3e29('0x126')],_0x272573[_0x3e29('0x125')]):_0x272573[_0x3e29('0x126')]);if(_0x35f9be){_0x5040c2[_0x3e29('0x129')]=ut['extractCalleridName'](_0x35f9be);_0x5040c2[_0x3e29('0x12a')]=ut[_0x3e29('0x12b')](_0x35f9be);}var _0x5ba92b=ut[_0x3e29('0x12c')](_0x272573,_0x9e613b,_0x36839d,_0x35f9be,_0x269512,_0x5040c2);_[_0x3e29('0x12d')](_0x5040c2,ut[_0x3e29('0x12e')](_0x5ba92b));_0x5040c2[_0x3e29('0x8b')]=moment()['format'](_0x3e29('0xaf'));ami[_0x3e29('0x71')](ut[_0x3e29('0x12f')](_0x5040c2,_0x272573,_0x5ba92b,_0x5040c2[_0x3e29('0xac')],_0x562813))[_0x3e29('0x80')](function(_0x19f14d){var _0x790b21=_0x5040c2['channelAgent'];if(!_[_0x3e29('0x66')](_0x790b21)){if(!_[_0x3e29('0x66')](_0x8417e1[_0x3e29('0x16')][_0x790b21])){_0x8417e1[_0x3e29('0x16')][_0x790b21][_0x3e29('0x130')]=_0x5040c2[_0x3e29('0x131')];emit(util['format']('user:%s',_0x8417e1[_0x3e29('0x16')][_0x790b21][_0x3e29('0x2a')]),_0x3e29('0x132'),{'destaccountcode':_0x8417e1[_0x3e29('0x16')][_0x790b21][_0x3e29('0x133')],'destconnectedlinenum':_0x5040c2[_0x3e29('0x131')]});}}_0x272573[_0x3e29('0x5a')]+=0x1;logger[_0x3e29('0x57')](_0x3e29('0x134'),_0x269512,_0x3e29('0xb2'),_0x272573[_0x3e29('0x2a')],_0x3e29('0x6a'),_0x272573['originated']);_0x2e90b7(_0x19f14d);})[_0x3e29('0x74')](function(_0x291f86){ut[_0x3e29('0xf3')](_0x5040c2,0xe,_0x3e29('0x135'));rpcDb['createAgentHistory'](_0x5040c2,'[originateFailure][logOriginateFailure]');_0xb48846(_0x291f86);});});};Preview[_0x3e29('0xe')][_0x3e29('0x21')]=function(_0x451060){if(this[_0x3e29('0x15')][_0x451060[_0x3e29('0xad')]]){this[_0x3e29('0x15')][_0x451060[_0x3e29('0xad')]][_0x3e29('0x73')]=_0x451060[_0x3e29('0x73')];}};Preview[_0x3e29('0xe')][_0x3e29('0x19')]=function(_0x4667a3){var _0x582fb4=this;var _0x255d9c=this[_0x3e29('0x15')][_0x4667a3[_0x3e29('0x136')]];if(_0x255d9c){if(_0x255d9c[_0x3e29('0xfd')]&&this[_0x3e29('0x16')][_0x255d9c['lookAgent']]){ut['logLookAgent'](_0x255d9c,this[_0x3e29('0x16')][_0x255d9c[_0x3e29('0xfd')]]['name'],this['agents'][_0x255d9c[_0x3e29('0xfd')]]['id']);}var _0x595eff=_['clone'](_0x255d9c);_0x595eff['responsetime']=moment()[_0x3e29('0x54')]('YYYY-MM-DD\x20HH:mm:ss');var _0x22e8b3=_0x582fb4['campaignsPreview'][_0x255d9c['queue']];if(ut[_0x3e29('0x137')](_0x4667a3['response'])){if(_0x255d9c[_0x3e29('0xab')]){rpcDb[_0x3e29('0x138')](_0x255d9c[_0x3e29('0x102')]);}if(_0x255d9c[_0x3e29('0xac')]){rpcDb[_0x3e29('0x8a')](_0x255d9c[_0x3e29('0x102')]);}ami[_0x3e29('0x27')](_0x3e29('0x139'),ut[_0x3e29('0xa2')](_0x255d9c,_0x3e29('0x13a'),this[_0x3e29('0x13')][_0x255d9c[_0x3e29('0x69')]]));this['callProgressDetectingAgent'](_0x595eff,_0x22e8b3,_0x4667a3);}else{_0x255d9c['starttime']=moment()[_0x3e29('0x54')](_0x3e29('0xaf'));ut[_0x3e29('0xf3')](_0x595eff,0x4,'Answer');rpcDb[_0x3e29('0xf6')](_0x595eff,_0x3e29('0x13b'));}}};Preview[_0x3e29('0xe')][_0x3e29('0x1c')]=function(_0x3a186f){var _0x4c5e96=this;var _0x5d09b7=this['actions'][_0x3a186f[_0x3e29('0xad')]];var _0x531943;if(_0x5d09b7){_0x531943=this[_0x3e29('0x13')][_0x5d09b7[_0x3e29('0x69')]];logger[_0x3e29('0x57')](_0x3e29('0x13c'),_0x3a186f['linkedid'],_0x3e29('0xb2'),_0x531943[_0x3e29('0x2a')],_0x3e29('0x6b'),_0x531943[_0x3e29('0x2e')]);}if(this['actions'][_0x3a186f['linkedid']]&&_0x3a186f[_0x3e29('0xad')]!==_0x3a186f[_0x3e29('0xbf')]){if(_0x3a186f[_0x3e29('0x13d')]==='16'&&this[_0x3e29('0x15')][_0x3a186f[_0x3e29('0xad')]][_0x3e29('0x6c')]){this[_0x3e29('0x9c')](_0x3a186f,_0x3a186f[_0x3e29('0xad')],_0x3a186f[_0x3e29('0x13d')]);}else if(this['actions'][_0x3a186f[_0x3e29('0xad')]][_0x3e29('0x6c')]){logger['info'](_0x3e29('0x13e'),_0x3a186f[_0x3e29('0xad')],_0x3a186f[_0x3e29('0x13d')],_0x3e29('0xb2'),_0x531943[_0x3e29('0x2a')],_0x3e29('0x6b'),_0x531943[_0x3e29('0x2e')]);this[_0x3e29('0x9c')](_0x3a186f,_0x3a186f[_0x3e29('0xad')],_0x3a186f[_0x3e29('0x13d')]);}}else if(_0x5d09b7&&_[_0x3e29('0x66')](_0x5d09b7[_0x3e29('0x13f')])&&_0x531943[_0x3e29('0x140')]&&_0x3a186f['linkedid']===_0x3a186f[_0x3e29('0xbf')]&&_[_0x3e29('0x66')](_0x3a186f[_0x3e29('0xf2')])&&_0x3a186f[_0x3e29('0x13d')]==='16'&&_0x3a186f[_0x3e29('0x141')]==='6'&&_['isUndefined'](_0x5d09b7[_0x3e29('0x142')])){if(_0x5d09b7[_0x3e29('0xab')]){rpcDb[_0x3e29('0x138')](_0x5d09b7['idContact']);}if(_0x5d09b7[_0x3e29('0xac')]){rpcDb[_0x3e29('0x8a')](_0x5d09b7[_0x3e29('0x102')]);}_0x3a186f[_0x3e29('0xf2')]='22';this['callProgressDetectingAgent'](_0x5d09b7,_0x531943,_0x3a186f);}else if(_0x5d09b7&&_0x5d09b7[_0x3e29('0x142')]){if(_0x3a186f[_0x3e29('0x13d')]==='16'&&this['actions'][_0x3a186f[_0x3e29('0xad')]][_0x3e29('0x6c')]){logger[_0x3e29('0x57')](_0x3e29('0x143'),_0x3a186f['linkedid'],_0x3a186f['cause'],_0x3e29('0xb2'),_0x531943[_0x3e29('0x2a')],'pTalking:\x20',_0x531943[_0x3e29('0x2e')]);this['callProgressDetectingCustomer'](_0x3a186f,_0x3a186f[_0x3e29('0xad')],_0x3a186f[_0x3e29('0x13d')]);}else if(this['actions'][_0x3a186f[_0x3e29('0xad')]][_0x3e29('0x6c')]){logger[_0x3e29('0x57')]('[syncHangup][talking][cause]',_0x3a186f[_0x3e29('0xad')],_0x3a186f[_0x3e29('0x13d')],'\x20Queue',_0x531943[_0x3e29('0x2a')],_0x3e29('0x6b'),_0x531943[_0x3e29('0x2e')]);this[_0x3e29('0x9c')](_0x3a186f,_0x3a186f[_0x3e29('0xad')],_0x3a186f[_0x3e29('0x13d')]);}}};Preview[_0x3e29('0xe')][_0x3e29('0x20')]=function(_0x2a2417){if(this[_0x3e29('0x15')][_0x2a2417['destlinkedid']]&&_0x2a2417[_0x3e29('0xef')]!==_0x2a2417[_0x3e29('0x144')]){this[_0x3e29('0x9c')](_0x2a2417,_0x2a2417[_0x3e29('0xef')],_0x2a2417[_0x3e29('0xe9')]);}};Preview[_0x3e29('0xe')][_0x3e29('0x1e')]=function(_0x3ec050){if(this[_0x3e29('0x15')][_0x3ec050[_0x3e29('0xad')]]&&_0x3ec050[_0x3e29('0xad')]!==_0x3ec050[_0x3e29('0xbf')]&&!this[_0x3e29('0x15')][_0x3ec050[_0x3e29('0xad')]]['dialAnswer']){if(_0x3ec050['cause']==='1'){this['callProgressDetectingCustomer'](_0x3ec050,_0x3ec050[_0x3e29('0xad')],_0x3ec050['cause']);}}};Preview[_0x3e29('0xe')][_0x3e29('0x145')]=function(_0xc06729,_0xbd9e47,_0x473bcc){if(this[_0x3e29('0x15')][_0xc06729]){if(_[_0x3e29('0x66')](this['actions'][_0xc06729][_0x3e29('0x146')])){this[_0x3e29('0x15')][_0xc06729]['variables']={};}this[_0x3e29('0x15')][_0xc06729][_0x3e29('0x146')][_0xbd9e47]=_0x473bcc;}};Preview[_0x3e29('0xe')][_0x3e29('0x147')]=function(_0x36e5d6){try{if(!_[_0x3e29('0x66')](_0x36e5d6)){if(ut[_0x3e29('0x148')](_[_0x3e29('0x149')](_0x36e5d6[_0x3e29('0x14a')])[0x0])){this[_0x3e29('0x145')](_0x36e5d6[_0x3e29('0xbf')],_[_0x3e29('0x149')](_0x36e5d6[_0x3e29('0x14a')])[0x0],_0x36e5d6[_0x3e29('0x14b')]);}}}catch(_0x5db5f7){logger[_0x3e29('0x14c')](_0x3e29('0x14d'),util[_0x3e29('0x14e')](_0x5db5f7,{'showHidden':![],'depth':null}));}};Preview[_0x3e29('0xe')][_0x3e29('0x23')]=function(_0x4904ab){if(_0x4904ab){if(this[_0x3e29('0x15')][_0x4904ab['transfertargetlinkedid']]){this[_0x3e29('0x15')][_0x4904ab[_0x3e29('0x14f')]]['transfer']=!![];}}};Preview[_0x3e29('0xe')][_0x3e29('0x25')]=function(_0x20775a){if(_0x20775a){if(this[_0x3e29('0x15')][_0x20775a['transfererlinkedid']]){this['actions'][_0x20775a[_0x3e29('0x150')]][_0x3e29('0x142')]=!![];}}};module['exports']=Preview;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab40=['getContactRecallMe','[GetContactRecallMe]\x20','util','../../../config/logger','preview','lodash','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/voiceQueueReport','resolve','then','createHistory','catch','[createHistory]\x20','moveContactManagedDialer','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createAgentHistory','createCustomerHistory','createCustomerFinal','rescheduleContact','UserId','countReScheduled','[countReScheduled]\x20','unlockContact','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','answertime','queuecallercomplete','queuecallercompleteAt','endtime','connectedlinename','membername','context','from-sip','exten','xcally-motion-preview','holdtime','assigned','lastAssignedTo','queuecallerexitreason','[voiceQueueReport]\x20'];(function(_0xa4c85,_0x2b52a7){var _0x172c1f=function(_0x149473){while(--_0x149473){_0xa4c85['push'](_0xa4c85['shift']());}};_0x172c1f(++_0x2b52a7);}(_0xab40,0x175));var _0x0ab4=function(_0x107ffd,_0xf0a90c){_0x107ffd=_0x107ffd-0x0;var _0x2f9e29=_0xab40[_0x107ffd];return _0x2f9e29;};'use strict';var util=require(_0x0ab4('0x0'));var BPromise=require('bluebird');var logger=require(_0x0ab4('0x1'))(_0x0ab4('0x2'));var _=require(_0x0ab4('0x3'));var cmHopper=require(_0x0ab4('0x4'));var cmHopperFinal=require(_0x0ab4('0x5'));var cmHopperHistory=require(_0x0ab4('0x6'));var cmHopperBlack=require(_0x0ab4('0x7'));var voiceQueueRt=require(_0x0ab4('0x8'));var agentReportPreview=require('../rpc/agentReportPreview');var voiceQueueReport=require(_0x0ab4('0x9'));function loggerCatch(_0x377f8e){return function(_0x1fb738){logger['error'](_0x377f8e,util['inspect'](_0x1fb738,{'showHidden':![],'depth':null}));};}function create(_0x56a9f6){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopperHistory[_0x0ab4('0xc')](_0x56a9f6))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0xe')));}function createAgent(_0x5a5b2a){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](agentReportPreview[_0x0ab4('0xc')](_0x5a5b2a))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0xe')));}function moveContact(_0x3b6b0b){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper[_0x0ab4('0xf')](_0x3b6b0b,!![]))[_0x0ab4('0xd')](loggerCatch('[moveContactManagedDialer]\x20'));}exports[_0x0ab4('0x10')]=function(_0x4b70ae){return BPromise[_0x0ab4('0xa')]()['then'](cmHopperBlack[_0x0ab4('0x10')](_0x4b70ae))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x11')));};exports[_0x0ab4('0x12')]=function(_0x39f512){return BPromise[_0x0ab4('0xa')]()['then'](cmHopper['getContactPreview'](_0x39f512))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x13')));};exports[_0x0ab4('0xc')]=function(_0x56af42,_0x1f6346){create(_0x56af42)['catch'](loggerCatch(_0x1f6346));moveContact(_0x56af42)[_0x0ab4('0xd')](loggerCatch(_0x1f6346));};exports[_0x0ab4('0x14')]=function(_0x5e8227,_0x20b03d){createAgent(_0x5e8227)[_0x0ab4('0xd')](loggerCatch(_0x20b03d));};exports[_0x0ab4('0x15')]=function(_0x1f06a5,_0x595a90){create(_0x1f06a5)[_0x0ab4('0xd')](loggerCatch(_0x595a90));};exports[_0x0ab4('0x16')]=function(_0x54881b,_0x53c77f){moveContact(_0x54881b)['catch'](loggerCatch(_0x53c77f));};exports[_0x0ab4('0x17')]=function(_0x4f0f64,_0x490213,_0xa57f07){if(_0x490213){_0x4f0f64[_0x0ab4('0x18')]=null;}if(_0xa57f07){_0x4f0f64['active']=![];}return BPromise[_0x0ab4('0xa')]()['then'](cmHopper[_0x0ab4('0x17')](_0x4f0f64))[_0x0ab4('0xd')](loggerCatch('[rescheduleContact]\x20'));};exports[_0x0ab4('0x19')]=function(_0xe28793){return BPromise[_0x0ab4('0xa')]()['then'](cmHopper[_0x0ab4('0x19')](_0xe28793))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x1a')));};exports[_0x0ab4('0x1b')]=function(_0x27d4bf){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper['unlockContact']({'UserId':null},_0x27d4bf,0x1))[_0x0ab4('0xd')](loggerCatch('[unlockContact]\x20'));};exports[_0x0ab4('0x1c')]=function(_0x2dfd92){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper[_0x0ab4('0x1b')]({'active':![]},_0x2dfd92,0x1))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x1d')));};exports[_0x0ab4('0x1e')]=function(_0xcac274){var _0x59205c={};_0x59205c[_0x0ab4('0x1f')]=_0xcac274[_0x0ab4('0x1f')];_0x59205c[_0x0ab4('0x20')]=_0xcac274[_0x0ab4('0x20')];_0x59205c[_0x0ab4('0x21')]=_0xcac274['calleridnum'];_0x59205c[_0x0ab4('0x22')]=_0xcac274[_0x0ab4('0x22')];_0x59205c[_0x0ab4('0x23')]=_0xcac274[_0x0ab4('0x23')];_0x59205c['queuecallerjoinAt']=_0xcac274[_0x0ab4('0x24')];_0x59205c['queuecallerleaveAt']=_0xcac274['answertime'];_0x59205c[_0x0ab4('0x25')]=0x1;_0x59205c[_0x0ab4('0x26')]=_0xcac274[_0x0ab4('0x27')];_0x59205c[_0x0ab4('0x28')]=_0xcac274[_0x0ab4('0x29')];_0x59205c[_0x0ab4('0x2a')]=_0x0ab4('0x2b');_0x59205c[_0x0ab4('0x2c')]=_0x0ab4('0x2d');_0x59205c[_0x0ab4('0x2e')]=0x0;_0x59205c[_0x0ab4('0x2f')]=0x1;_0x59205c[_0x0ab4('0x30')]=_0xcac274[_0x0ab4('0x29')];_0x59205c[_0x0ab4('0x31')]='COMPLETED';return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](voiceQueueReport['create'](_0x59205c))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x32')));};exports[_0x0ab4('0x33')]=function(_0x1dde1d,_0x5c0604){return BPromise[_0x0ab4('0xa')]()['then'](cmHopper['getContactRecallMe'](_0x1dde1d,_0x5c0604))['catch'](loggerCatch(_0x0ab4('0x34')));};exports['rescheduleContactInQueue']=function(_0x6670f7){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper['rescheduleContact'](_0x6670f7,!![],!![]))[_0x0ab4('0xd')](loggerCatch('[rescheduleContactInQueue]\x20'));};
\ No newline at end of file
+var _0x5f7f=['error','createHistory','catch','[createHistory]\x20','resolve','then','moveContactManagedDialer','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createAgentHistory','createCustomerFinal','rescheduleContact','UserId','active','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallercomplete','queuecallercompleteAt','connectedlinename','context','from-sip','xcally-motion-preview','holdtime','assigned','lastAssignedTo','membername','queuecallerexitreason','COMPLETED','create','[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20','[rescheduleContactInQueue]\x20','util','bluebird','../../../config/logger','lodash','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/agentReportPreview','../rpc/voiceQueueReport'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x5f7f,0x68));var _0xf5f7=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x5f7f[_0x4cf98e];return _0x1623ac;};'use strict';var util=require(_0xf5f7('0x0'));var BPromise=require(_0xf5f7('0x1'));var logger=require(_0xf5f7('0x2'))('preview');var _=require(_0xf5f7('0x3'));var cmHopper=require(_0xf5f7('0x4'));var cmHopperFinal=require(_0xf5f7('0x5'));var cmHopperHistory=require('../rpc/cmHopperHistory');var cmHopperBlack=require(_0xf5f7('0x6'));var voiceQueueRt=require(_0xf5f7('0x7'));var agentReportPreview=require(_0xf5f7('0x8'));var voiceQueueReport=require(_0xf5f7('0x9'));function loggerCatch(_0x25d819){return function(_0x5b525a){logger[_0xf5f7('0xa')](_0x25d819,util['inspect'](_0x5b525a,{'showHidden':![],'depth':null}));};}function create(_0x546b15){return BPromise['resolve']()['then'](cmHopperHistory[_0xf5f7('0xb')](_0x546b15))[_0xf5f7('0xc')](loggerCatch(_0xf5f7('0xd')));}function createAgent(_0x9c1ae){return BPromise['resolve']()['then'](agentReportPreview[_0xf5f7('0xb')](_0x9c1ae))['catch'](loggerCatch(_0xf5f7('0xd')));}function moveContact(_0x27e7d1){return BPromise[_0xf5f7('0xe')]()[_0xf5f7('0xf')](cmHopper[_0xf5f7('0x10')](_0x27e7d1,!![]))[_0xf5f7('0xc')](loggerCatch('[moveContactManagedDialer]\x20'));}exports[_0xf5f7('0x11')]=function(_0x53ca71){return BPromise['resolve']()[_0xf5f7('0xf')](cmHopperBlack[_0xf5f7('0x11')](_0x53ca71))[_0xf5f7('0xc')](loggerCatch(_0xf5f7('0x12')));};exports[_0xf5f7('0x13')]=function(_0x29241c){return BPromise['resolve']()[_0xf5f7('0xf')](cmHopper[_0xf5f7('0x13')](_0x29241c))['catch'](loggerCatch(_0xf5f7('0x14')));};exports[_0xf5f7('0xb')]=function(_0x19c2dd,_0x88879){create(_0x19c2dd)[_0xf5f7('0xc')](loggerCatch(_0x88879));moveContact(_0x19c2dd)[_0xf5f7('0xc')](loggerCatch(_0x88879));};exports[_0xf5f7('0x15')]=function(_0x4da09d,_0xb961a8){createAgent(_0x4da09d)[_0xf5f7('0xc')](loggerCatch(_0xb961a8));};exports['createCustomerHistory']=function(_0x516299,_0x26b848){create(_0x516299)['catch'](loggerCatch(_0x26b848));};exports[_0xf5f7('0x16')]=function(_0x3884de,_0x4662bd){moveContact(_0x3884de)[_0xf5f7('0xc')](loggerCatch(_0x4662bd));};exports[_0xf5f7('0x17')]=function(_0x510692,_0x4e1e6b,_0x1ebd65){if(_0x4e1e6b){_0x510692[_0xf5f7('0x18')]=null;}if(_0x1ebd65){_0x510692[_0xf5f7('0x19')]=![];}return BPromise[_0xf5f7('0xe')]()['then'](cmHopper[_0xf5f7('0x17')](_0x510692))[_0xf5f7('0xc')](loggerCatch(_0xf5f7('0x1a')));};exports['countReScheduled']=function(_0x259b8d){return BPromise[_0xf5f7('0xe')]()[_0xf5f7('0xf')](cmHopper[_0xf5f7('0x1b')](_0x259b8d))[_0xf5f7('0xc')](loggerCatch(_0xf5f7('0x1c')));};exports[_0xf5f7('0x1d')]=function(_0xf1bcc0){return BPromise[_0xf5f7('0xe')]()[_0xf5f7('0xf')](cmHopper[_0xf5f7('0x1d')]({'UserId':null},_0xf1bcc0,0x1))['catch'](loggerCatch(_0xf5f7('0x1e')));};exports['disableContact']=function(_0xa69038){return BPromise[_0xf5f7('0xe')]()['then'](cmHopper[_0xf5f7('0x1d')]({'active':![]},_0xa69038,0x1))['catch'](loggerCatch(_0xf5f7('0x1f')));};exports[_0xf5f7('0x20')]=function(_0xf2314e){var _0x53301c={};_0x53301c[_0xf5f7('0x21')]=_0xf2314e[_0xf5f7('0x21')];_0x53301c['uniqueid']=_0xf2314e[_0xf5f7('0x22')];_0x53301c[_0xf5f7('0x23')]=_0xf2314e[_0xf5f7('0x23')];_0x53301c[_0xf5f7('0x24')]=_0xf2314e[_0xf5f7('0x24')];_0x53301c[_0xf5f7('0x25')]=_0xf2314e[_0xf5f7('0x25')];_0x53301c[_0xf5f7('0x26')]=_0xf2314e['answertime'];_0x53301c['queuecallerleaveAt']=_0xf2314e[_0xf5f7('0x27')];_0x53301c[_0xf5f7('0x28')]=0x1;_0x53301c[_0xf5f7('0x29')]=_0xf2314e['endtime'];_0x53301c[_0xf5f7('0x2a')]=_0xf2314e['membername'];_0x53301c[_0xf5f7('0x2b')]=_0xf5f7('0x2c');_0x53301c['exten']=_0xf5f7('0x2d');_0x53301c[_0xf5f7('0x2e')]=0x0;_0x53301c[_0xf5f7('0x2f')]=0x1;_0x53301c[_0xf5f7('0x30')]=_0xf2314e[_0xf5f7('0x31')];_0x53301c[_0xf5f7('0x32')]=_0xf5f7('0x33');return BPromise[_0xf5f7('0xe')]()[_0xf5f7('0xf')](voiceQueueReport[_0xf5f7('0x34')](_0x53301c))['catch'](loggerCatch(_0xf5f7('0x35')));};exports['getContactRecallMe']=function(_0x2fca8b,_0x48757f){return BPromise[_0xf5f7('0xe')]()[_0xf5f7('0xf')](cmHopper[_0xf5f7('0x36')](_0x2fca8b,_0x48757f))[_0xf5f7('0xc')](loggerCatch(_0xf5f7('0x37')));};exports['rescheduleContactInQueue']=function(_0x3b2450){return BPromise['resolve']()['then'](cmHopper[_0xf5f7('0x17')](_0x3b2450,!![],!![]))[_0xf5f7('0xc')](loggerCatch(_0xf5f7('0x38')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3321=['xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-cdrtype','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqoslossbridged','rtpaudioqosrttbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','bridgepvtcallid','\x5cw{0,','pow','random','extractCalleridName','match','extractCalleridNumber','lodash','../../../../config/logger','preview','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','loggerError','logger2','info','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','U(xcally-mixmonitor-context)','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','isNil','tags','updatedAt','%s%s','toUpper','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','statedesc','Blacklist','starttime','responsetime','endtime','logAgent','state','ringtime','UserId','talktime','answertime','isFailure','Failure','variablesAction','RECALL','originate','channelAgent','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countagentrejectretry','cloneAction','clone','ListId','decrementTalkink','pTalking','buildObj','queue','interface','mandatoryDisposition','buildAcw','uniqueid','agentReadyId','not_inuse','push','createBody','CampaignId','filterKey','idContact','type','campaigntype','scheduledat','countnoanswerretry','countglobal','callback','callbackuniqueid','callbackat','recallme'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x3321,0x11b));var _0x1332=function(_0x4e8db9,_0x15ff81){_0x4e8db9=_0x4e8db9-0x0;var _0x1fc3be=_0x3321[_0x4e8db9];return _0x1fc3be;};'use strict';var util=require('util');var _=require(_0x1332('0x0'));var moment=require('moment');var logger=require(_0x1332('0x1'))(_0x1332('0x2'));var ipAgi=process[_0x1332('0x3')][_0x1332('0x4')]||_0x1332('0x5');function getSeconds(_0x3f4ffd,_0x10342e){var _0x27e11a=moment(_0x3f4ffd)[_0x1332('0x6')](0x0);var _0x54fdbb=moment(_0x10342e)[_0x1332('0x6')](0x0);return _0x27e11a[_0x1332('0x7')](_0x54fdbb,_0x1332('0x8'));}exports[_0x1332('0x9')]=function(_0x2f8607){return function(_0x522e18){logger[_0x1332('0xa')](_0x2f8607,util[_0x1332('0xb')](_0x522e18,{'showHidden':![],'depth':null}));};};exports[_0x1332('0xc')]=function(_0x256ce6,_0xc9bdb3){logger['info'](_0x256ce6,util[_0x1332('0xb')](_0xc9bdb3,{'showHidden':![],'depth':null}));};exports[_0x1332('0xd')]=function(_0x1ea603,_0x372298){logger[_0x1332('0xa')](_0x1ea603,util[_0x1332('0xb')](_0x372298,{'showHidden':![],'depth':null}));};exports[_0x1332('0xe')]=function(_0x597a11){return function(_0x472a2d){logger[_0x1332('0xf')](_0x597a11,util[_0x1332('0xb')](_0x472a2d,{'showHidden':![],'depth':null}));};};exports[_0x1332('0x10')]=function(_0x3fa0e4,_0x59c0c6,_0x41e410){return{'message':_0x3fa0e4,'unlock':_0x59c0c6,'active':_0x41e410};};exports[_0x1332('0x11')]=function(_0x3f5188,_0x346f6c,_0x147419){if(!_[_0x1332('0x12')](_0x147419)&&_0x1332('0x13')===typeof _0x147419&&!_[_0x1332('0x14')](_0x147419)){if(!_[_0x1332('0x12')](_0x346f6c)&&_0x1332('0x13')===typeof _0x346f6c&&!_['isEmpty'](_0x346f6c)){return util[_0x1332('0x15')]('\x22%s\x22\x20<%s>',_0x346f6c,_0x147419);}return util[_0x1332('0x15')](_0x1332('0x16'),_0x147419,_0x147419);}if(!_['isUndefined'](_0x3f5188)&&_0x1332('0x13')===typeof _0x3f5188&&!_[_0x1332('0x14')](_0x3f5188)){return _0x3f5188;}return _0x1332('0x17');};exports[_0x1332('0x18')]=function(_0x5a0ef1){if(_['isNil'](_0x5a0ef1)){return![];}return _0x5a0ef1;};exports[_0x1332('0x19')]=function(_0x2baf6e,_0x4db31a,_0x5c0a7a,_0x233e04,_0x447838,_0x122146){var _0x3fe76f={'XMD-QUEUE':_0x4db31a[_0x1332('0x1a')]?_0x4db31a[_0x1332('0x1a')][_0x1332('0x1b')]:'','XMD-CALLERID':_0x233e04,'XMD-CALLERID-PREVIEW':_0x122146?util['format'](_0x1332('0x16'),_0x122146[_0x1332('0x1c')],_0x122146[_0x1332('0x1d')]):_0x233e04,'XMD-DIALID':_0x447838,'XMD-CONTACTID':_0x4db31a[_0x1332('0x1e')],'XMD-CDRTYPE':_0x1332('0x1f'),'CALLERID(all)':_0x233e04,'XMD-VOICEQUEUEID':_0x4db31a[_0x1332('0x20')],'XMD-DIALCHANNEL':_0x5c0a7a,'XMD-DIALTIMEOUT':_0x2baf6e[_0x1332('0x21')]||0x1e,'XMD-DIALOPTIONS':util[_0x1332('0x15')](_0x1332('0x22'),_0x2baf6e[_0x1332('0x23')]?'g':'',_['isEmpty'](_0x2baf6e['monitor_format'])?'':_0x1332('0x24')),'XMD-DIALURL':_0x2baf6e['dialPreviewUrl']||'','XMD-AGI':_0x2baf6e[_0x1332('0x25')]?util['format'](_0x1332('0x26'),ipAgi,_0x2baf6e[_0x1332('0x25')]):_0x1332('0x27'),'XMD-AGIAFTER':_0x2baf6e[_0x1332('0x23')]?util[_0x1332('0x15')](_0x1332('0x26'),ipAgi,_0x2baf6e[_0x1332('0x23')]):_0x1332('0x27'),'XMD-ORIGINATECALLERIDNUM':_0x122146?_0x122146['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x122146?_0x122146['originatecalleridname']:'','XMD-DESTINATION':_0x1332('0x28')};if(!_[_0x1332('0x14')](_0x2baf6e['monitor_format'])){_0x3fe76f[util[_0x1332('0x15')]('%s',_0x1332('0x29'))]=_0x2baf6e['monitor_format'];_0x3fe76f[util['format']('%s',_0x1332('0x2a'))]=_0x447838;}if(_0x4db31a&&_0x4db31a[_0x1332('0x2b')]){for(var _0xf9e30a in _0x4db31a[_0x1332('0x2b')]){if(_0x4db31a['Contact'][_0x1332('0x2c')](_0xf9e30a)){if(!_[_0x1332('0x2d')](_0x4db31a[_0x1332('0x2b')][_0xf9e30a])&&_0xf9e30a!=='id'&&_0xf9e30a!==_0x1332('0x2e')&&_0xf9e30a!=='createdAt'&&_0xf9e30a!==_0x1332('0x2f')){_0x3fe76f[util[_0x1332('0x15')](_0x1332('0x30'),'XMD-',_[_0x1332('0x31')](_0xf9e30a))]=_0x4db31a['Contact'][_0xf9e30a];}}}}return _0x3fe76f;};exports[_0x1332('0x32')]=function(_0x2bfb86){var _0x2e204d={};for(var _0xf1c52 in _0x2bfb86){if(_0x2bfb86[_0x1332('0x2c')](_0xf1c52)){_0x2e204d[util[_0x1332('0x15')]('%s',_[_0x1332('0x33')](_0xf1c52))]=_0x2bfb86[_0xf1c52];}}return{'variables':_0x2e204d};};exports[_0x1332('0x34')]=function(_0x2cf5e8,_0x361ccf){if(!_[_0x1332('0x2d')](_0x2cf5e8)){if(_0x2cf5e8[_0x1332('0x2c')](_0x1332('0x35'))){if(_0x2cf5e8[_0x1332('0x35')]>0x0){_0x2cf5e8[_0x1332('0x35')]-=0x1;}else{logger[_0x1332('0xa')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x361ccf);}}}else{logger[_0x1332('0xa')](_0x1332('0x36'),_0x361ccf);}};exports[_0x1332('0x37')]=function(_0x548be5){var _0x31ec74=moment()['format'](_0x1332('0x38'));_0x548be5['state']=0xd;_0x548be5[_0x1332('0x39')]=_0x1332('0x3a');_0x548be5[_0x1332('0x3b')]=_0x31ec74;_0x548be5[_0x1332('0x3c')]=_0x31ec74;_0x548be5[_0x1332('0x3d')]=_0x31ec74;};exports[_0x1332('0x3e')]=function(_0x42f1a4,_0x22861c,_0x1323b2){var _0x1de467=moment()['format'](_0x1332('0x38'));_0x42f1a4[_0x1332('0x3f')]=_0x22861c;_0x42f1a4[_0x1332('0x39')]=_0x1323b2;_0x42f1a4[_0x1332('0x3c')]=_0x1de467;_0x42f1a4[_0x1332('0x40')]=getSeconds(_0x42f1a4[_0x1332('0x3c')],_0x42f1a4[_0x1332('0x3b')]);};exports['logLookAgent']=function(_0x27f0a1,_0x3d6102,_0x456626){_0x27f0a1['membername']=_0x3d6102;_0x27f0a1[_0x1332('0x41')]=_0x456626;};exports['logCustomer']=function(_0xca4f35,_0x50012a,_0x4f8dff){var _0x33ba83=moment()['format'](_0x1332('0x38'));_0xca4f35[_0x1332('0x3f')]=_0x50012a;_0xca4f35['statedesc']=_0x4f8dff;_0xca4f35['responsetime']=_0xca4f35[_0x1332('0x3c')]?_0xca4f35['responsetime']:_0x33ba83;_0xca4f35['endtime']=_0xca4f35[_0x1332('0x3d')]?_0xca4f35[_0x1332('0x3d')]:_0x33ba83;_0xca4f35[_0x1332('0x40')]=getSeconds(_0xca4f35[_0x1332('0x3c')]||0x0,_0xca4f35['starttime']||0x0);_0xca4f35[_0x1332('0x42')]=_0xca4f35[_0x1332('0x43')]?getSeconds(_0xca4f35[_0x1332('0x3d')],_0xca4f35[_0x1332('0x43')]):0x0;};exports[_0x1332('0x44')]=function(_0x14b13e){return _0x14b13e===_0x1332('0x45');};exports[_0x1332('0x46')]=function(_0x5af495,_0x16ab52,_0x341f05,_0x62425e,_0x3c0706){var _0xca4f7c=_0x62425e?_0x1332('0x47'):_0x5af495[_0x1332('0x1c')];_0xca4f7c=_0x3c0706?'BOOKED':_0xca4f7c;return{'actionid':_0x5af495['uniqueid'],'action':_0x1332('0x48'),'channel':_0x5af495[_0x1332('0x49')],'callerid':util['format']('\x22%s\x22\x20<%s>',_0xca4f7c,_0x5af495['calleridnum']),'Exten':_0x1332('0x28'),'Context':_0x1332('0x4a'),'Priority':'1','variable':_0x341f05,'timeout':(_0x16ab52[_0x1332('0x4b')]||0x1e)*0x3e8,'async':!![],'channelid':_0x5af495['uniqueid']};};exports[_0x1332('0x4c')]=function(_0x36e62e){return _0x36e62e[_0x1332('0x4d')]+_0x36e62e[_0x1332('0x4e')]+_0x36e62e['countnoanswerretry']+_0x36e62e[_0x1332('0x4f')]+_0x36e62e['countnosuchnumberretry'];};exports[_0x1332('0x50')]=function(_0x5f4e35){var _0x2b548a=_[_0x1332('0x51')](_0x5f4e35);_0x2b548a[_0x1332('0x3f')]=0xf;_0x2b548a[_0x1332('0x39')]='Global';return _0x2b548a;};exports['scheduledAt']=function(_0x426576,_0x5e3741,_0x100020){var _0x5ad91d={};_0x5ad91d[_0x5e3741]=_0x426576[_0x5e3741];_0x5ad91d['active']=![];_0x5ad91d['scheduledat']=moment()['add'](_0x100020,'minutes')[_0x1332('0x15')](_0x1332('0x38'));_0x5ad91d[_0x1332('0x1e')]=_0x426576[_0x1332('0x1e')];_0x5ad91d[_0x1332('0x52')]=_0x426576[_0x1332('0x52')];_0x5ad91d[_0x1332('0x20')]=_0x426576[_0x1332('0x20')]||undefined;return _0x5ad91d;};exports[_0x1332('0x53')]=function(_0x2f5349,_0x3bb72a){if(!_['isNil'](_0x2f5349)){if(_0x2f5349[_0x1332('0x54')]>0x0){_0x2f5349[_0x1332('0x54')]-=0x1;}else{logger[_0x1332('0xa')](_0x3bb72a,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger['error'](_0x3bb72a,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports['IsNotLoggedIn']=function(_0x4a7f98){if(_0x4a7f98<=0x0){return!![];}return![];};exports[_0x1332('0x55')]=function(_0x4352a4,_0x3b7fc6,_0x24f395){_0x4352a4['lastevent']=_0x3b7fc6;_0x4352a4['name']=_0x4352a4[_0x1332('0x56')];_0x4352a4[_0x1332('0x57')]=_0x4352a4[_0x1332('0x49')];if(_0x24f395){_0x4352a4[_0x1332('0x58')]=_0x24f395[_0x1332('0x58')];}return _0x4352a4;};exports[_0x1332('0x59')]=function(_0x1f728d){var _0x4cc65b={};_0x4cc65b[_0x1332('0x56')]=_0x1f728d[_0x1332('0x56')];_0x4cc65b[_0x1332('0x57')]=_0x1f728d['channelAgent'];_0x4cc65b['uniqueid']=_0x1f728d[_0x1332('0x5a')];return _0x4cc65b;};exports[_0x1332('0x5b')]=function(_0x3f9043){var _0x5658f9=[];for(var _0x43f452 in _0x3f9043){if(_0x3f9043[_0x1332('0x2c')](_0x43f452)){if(!_[_0x1332('0x2d')](_0x3f9043[_0x43f452])&&_0x3f9043[_0x43f452]['state']===_0x1332('0x5c')&&_0x3f9043[_0x43f452]['status']==='reachable'){_0x5658f9[_0x1332('0x5d')](_0x3f9043[_0x43f452]['id']);}}}return _0x5658f9;};exports['getDiff']=function(_0x10e218){var _0x4d1cfc=moment()[_0x1332('0x6')](0x0);var _0x16d04b=moment(_0x10e218)['milliseconds'](0x0);return _0x4d1cfc['diff'](_0x16d04b,_0x1332('0x8'));};exports[_0x1332('0x5e')]=function(_0x4dd998){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x4dd998['ContactId'],'ListId':_0x4dd998[_0x1332('0x52')],'VoiceQueueId':_0x4dd998[_0x1332('0x20')]||undefined,'CampaignId':_0x4dd998[_0x1332('0x5f')]||undefined};};exports[_0x1332('0x60')]=function(_0x1ab16f){if(_0x1ab16f===_0x1332('0x5a')||_0x1ab16f===_0x1332('0x61')||_0x1ab16f==='queue'||_0x1ab16f===_0x1332('0x62')||_0x1ab16f===_0x1332('0x63')||_0x1ab16f==='dialAnswer'||_0x1ab16f==='membername'||_0x1ab16f==='channelAgent'||_0x1ab16f===_0x1332('0x1c')||_0x1ab16f==='active'||_0x1ab16f===_0x1332('0x1d')||_0x1ab16f===_0x1332('0x64')||_0x1ab16f===_0x1332('0x4d')||_0x1ab16f==='countcongestionretry'||_0x1ab16f===_0x1332('0x65')||_0x1ab16f===_0x1332('0x66')||_0x1ab16f===_0x1332('0x67')||_0x1ab16f===_0x1332('0x68')||_0x1ab16f===_0x1332('0x69')||_0x1ab16f===_0x1332('0x6a')||_0x1ab16f===_0x1332('0x1e')||_0x1ab16f===_0x1332('0x52')||_0x1ab16f===_0x1332('0x41')||_0x1ab16f==='VoiceQueueId'||_0x1ab16f==='sipcallid'||_0x1ab16f==='xmd-voicequeueid'||_0x1ab16f===_0x1332('0x6b')||_0x1ab16f===_0x1332('0x6c')||_0x1ab16f===_0x1332('0x6d')||_0x1ab16f===_0x1332('0x6e')||_0x1ab16f==='xmd-dialtimeout'||_0x1ab16f===_0x1332('0x6f')||_0x1ab16f==='xmd-dialid'||_0x1ab16f===_0x1332('0x70')||_0x1ab16f===_0x1332('0x71')||_0x1ab16f===_0x1332('0x72')||_0x1ab16f==='xmd-callerid'||_0x1ab16f==='xmd-agiafter'||_0x1ab16f==='xmd-agi'||_0x1ab16f===_0x1332('0x73')||_0x1ab16f===_0x1332('0x74')||_0x1ab16f===_0x1332('0x75')||_0x1ab16f==='rtpaudioqosjitterbridged'||_0x1ab16f==='rtpaudioqosloss'||_0x1ab16f===_0x1332('0x76')||_0x1ab16f==='rtpaudioqosrtt'||_0x1ab16f===_0x1332('0x77')||_0x1ab16f==='rtpaudioqos'||_0x1ab16f==='rtpaudioqosbridged'||_0x1ab16f===_0x1332('0x75')||_0x1ab16f===_0x1332('0x78')||_0x1ab16f===_0x1332('0x79')||_0x1ab16f===_0x1332('0x76')||_0x1ab16f===_0x1332('0x7a')||_0x1ab16f===_0x1332('0x77')||_0x1ab16f==='bridgepeer'||_0x1ab16f===_0x1332('0x7b')||_0x1ab16f===_0x1332('0x3f')||_0x1ab16f===_0x1332('0x39')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x1345ee,_0x414bf3){var _0x21119c,_0x3d7d6b,_0x3def6f;if(_0x414bf3<=0x0){_0x414bf3=0x1;}_0x21119c=new RegExp(_0x1332('0x7c')+_0x414bf3+'}$');_0x3d7d6b=Math[_0x1332('0x7d')](0xa,_0x414bf3-0x1);_0x3def6f=Math[_0x1332('0x7d')](0xa,_0x414bf3)-0x1;return util[_0x1332('0x15')]('%s',_['replace'](_0x1345ee,_0x21119c,_[_0x1332('0x7e')](_0x3d7d6b,_0x3def6f)));};exports[_0x1332('0x7f')]=function(_0x1df437){var _0x1f1403=_0x1df437[_0x1332('0x80')](/"(.*?)"/);return _0x1f1403?_0x1f1403[0x1]:_0x1df437;};exports[_0x1332('0x81')]=function(_0x13da8d){var _0x551216=_0x13da8d[_0x1332('0x80')](/<(.*?)>/);return _0x551216?_0x551216[0x1]:_0x13da8d;};
\ No newline at end of file
+var _0x307a=['push','getDiff','diff','createBody','CampaignId','filterKey','idContact','type','campaigntype','dialAnswer','callback','callbackuniqueid','callbackat','sipcallid','xmd-phone','xmd-dialurl','xmd-dialtimeout','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosjitter','\x5cw{0,','pow','replace','random','extractCalleridName','match','extractCalleridNumber','util','lodash','moment','../../../../config/logger','env','127.0.0.1','milliseconds','seconds','loggerCatch','error','logger','info','inspect','logger2','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','Queue','calleridnum','VoiceQueueId','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','NONE','\x22agi://%s/square,%s\x22','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','isNil','updatedAt','%s%s','XMD-','toUpper','toLowerVariables','toLower','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','starttime','responsetime','ringtime','logLookAgent','membername','UserId','endtime','talktime','answertime','Failure','variablesAction','RECALL','calleridname','BOOKED','originate','channelAgent','uniqueid','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','clone','Global','active','scheduledat','add','ContactId','ListId','decrementTalkink','pTalking','IsNotLoggedIn','buildObj','lastevent','name','queue','interface','motionChannel','voice','mandatoryDisposition','buildAcw','agentReadyId','not_inuse','status','reachable'];(function(_0x183256,_0x1a596d){var _0x5394a2=function(_0x192025){while(--_0x192025){_0x183256['push'](_0x183256['shift']());}};_0x5394a2(++_0x1a596d);}(_0x307a,0x12b));var _0xa307=function(_0x3b9d25,_0x2b89b5){_0x3b9d25=_0x3b9d25-0x0;var _0x5be3a6=_0x307a[_0x3b9d25];return _0x5be3a6;};'use strict';var util=require(_0xa307('0x0'));var _=require(_0xa307('0x1'));var moment=require(_0xa307('0x2'));var logger=require(_0xa307('0x3'))('preview');var ipAgi=process[_0xa307('0x4')]['XCALLY_IP_AGI']||_0xa307('0x5');function getSeconds(_0x388076,_0x30bcd0){var _0x18d3f9=moment(_0x388076)['milliseconds'](0x0);var _0x164b87=moment(_0x30bcd0)[_0xa307('0x6')](0x0);return _0x18d3f9['diff'](_0x164b87,_0xa307('0x7'));}exports[_0xa307('0x8')]=function(_0x3c3841){return function(_0x5c4c82){logger[_0xa307('0x9')](_0x3c3841,util['inspect'](_0x5c4c82,{'showHidden':![],'depth':null}));};};exports[_0xa307('0xa')]=function(_0x13e73b,_0x36aff6){logger[_0xa307('0xb')](_0x13e73b,util[_0xa307('0xc')](_0x36aff6,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x2ccb02,_0x226000){logger[_0xa307('0x9')](_0x2ccb02,util[_0xa307('0xc')](_0x226000,{'showHidden':![],'depth':null}));};exports[_0xa307('0xd')]=function(_0x46ca40){return function(_0x2a693f){logger[_0xa307('0xb')](_0x46ca40,util[_0xa307('0xc')](_0x2a693f,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x51e687,_0x5cb8fc,_0x2d5821){return{'message':_0x51e687,'unlock':_0x5cb8fc,'active':_0x2d5821};};exports[_0xa307('0xe')]=function(_0x556f52,_0x23fc2d,_0x2f01f7){if(!_[_0xa307('0xf')](_0x2f01f7)&&_0xa307('0x10')===typeof _0x2f01f7&&!_[_0xa307('0x11')](_0x2f01f7)){if(!_['isUndefined'](_0x23fc2d)&&_0xa307('0x10')===typeof _0x23fc2d&&!_['isEmpty'](_0x23fc2d)){return util[_0xa307('0x12')](_0xa307('0x13'),_0x23fc2d,_0x2f01f7);}return util[_0xa307('0x12')](_0xa307('0x13'),_0x2f01f7,_0x2f01f7);}if(!_[_0xa307('0xf')](_0x556f52)&&_0xa307('0x10')===typeof _0x556f52&&!_[_0xa307('0x11')](_0x556f52)){return _0x556f52;}return _0xa307('0x14');};exports['isActive']=function(_0xe2d7bd){if(_['isNil'](_0xe2d7bd)){return![];}return _0xe2d7bd;};exports['addVariables']=function(_0x26a4e9,_0x13e5cb,_0x4218f7,_0x26c556,_0x4ff320,_0x2a8623){var _0x53d465={'XMD-QUEUE':_0x13e5cb[_0xa307('0x15')]?_0x13e5cb[_0xa307('0x15')]['name']:'','XMD-CALLERID':_0x26c556,'XMD-CALLERID-PREVIEW':_0x2a8623?util['format'](_0xa307('0x13'),_0x2a8623['calleridname'],_0x2a8623[_0xa307('0x16')]):_0x26c556,'XMD-DIALID':_0x4ff320,'XMD-CONTACTID':_0x13e5cb['ContactId'],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x26c556,'XMD-VOICEQUEUEID':_0x13e5cb[_0xa307('0x17')],'XMD-DIALCHANNEL':_0x4218f7,'XMD-DIALTIMEOUT':_0x26a4e9['dialOriginateTimeout']||0x1e,'XMD-DIALOPTIONS':util[_0xa307('0x12')](_0xa307('0x18'),_0x26a4e9[_0xa307('0x19')]?'g':'',_[_0xa307('0x11')](_0x26a4e9[_0xa307('0x1a')])?'':_0xa307('0x1b')),'XMD-DIALURL':_0x26a4e9[_0xa307('0x1c')]||'','XMD-AGI':_0x26a4e9['dialQueueProject']?util['format']('\x22agi://%s/square,%s\x22',ipAgi,_0x26a4e9['dialQueueProject']):_0xa307('0x1d'),'XMD-AGIAFTER':_0x26a4e9[_0xa307('0x19')]?util[_0xa307('0x12')](_0xa307('0x1e'),ipAgi,_0x26a4e9[_0xa307('0x19')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x2a8623?_0x2a8623['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x2a8623?_0x2a8623['originatecalleridname']:'','XMD-DESTINATION':_0xa307('0x1f')};if(!_[_0xa307('0x11')](_0x26a4e9[_0xa307('0x1a')])){_0x53d465[util['format']('%s',_0xa307('0x20'))]=_0x26a4e9[_0xa307('0x1a')];_0x53d465[util[_0xa307('0x12')]('%s',_0xa307('0x21'))]=_0x4ff320;}if(_0x13e5cb&&_0x13e5cb['Contact']){for(var _0x23c0a in _0x13e5cb[_0xa307('0x22')]){if(_0x13e5cb[_0xa307('0x22')][_0xa307('0x23')](_0x23c0a)){if(!_[_0xa307('0x24')](_0x13e5cb[_0xa307('0x22')][_0x23c0a])&&_0x23c0a!=='id'&&_0x23c0a!=='tags'&&_0x23c0a!=='createdAt'&&_0x23c0a!==_0xa307('0x25')){_0x53d465[util[_0xa307('0x12')](_0xa307('0x26'),_0xa307('0x27'),_[_0xa307('0x28')](_0x23c0a))]=_0x13e5cb[_0xa307('0x22')][_0x23c0a];}}}}return _0x53d465;};exports[_0xa307('0x29')]=function(_0x5a254a){var _0x456451={};for(var _0xa5d033 in _0x5a254a){if(_0x5a254a['hasOwnProperty'](_0xa5d033)){_0x456451[util['format']('%s',_[_0xa307('0x2a')](_0xa5d033))]=_0x5a254a[_0xa5d033];}}return{'variables':_0x456451};};exports['updateOriginated']=function(_0x5af0e6,_0x930544){if(!_['isNil'](_0x5af0e6)){if(_0x5af0e6['hasOwnProperty'](_0xa307('0x2b'))){if(_0x5af0e6['originated']>0x0){_0x5af0e6[_0xa307('0x2b')]-=0x1;}else{logger[_0xa307('0x9')](_0xa307('0x2c'),_0x930544);}}}else{logger[_0xa307('0x9')]('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x930544);}};exports[_0xa307('0x2d')]=function(_0xfbaa8a){var _0x3ecd70=moment()[_0xa307('0x12')](_0xa307('0x2e'));_0xfbaa8a[_0xa307('0x2f')]=0xd;_0xfbaa8a[_0xa307('0x30')]='Blacklist';_0xfbaa8a[_0xa307('0x31')]=_0x3ecd70;_0xfbaa8a[_0xa307('0x32')]=_0x3ecd70;_0xfbaa8a['endtime']=_0x3ecd70;};exports['logAgent']=function(_0x446d1f,_0x408d9e,_0x43e5c6){var _0xa9ac01=moment()[_0xa307('0x12')](_0xa307('0x2e'));_0x446d1f[_0xa307('0x2f')]=_0x408d9e;_0x446d1f[_0xa307('0x30')]=_0x43e5c6;_0x446d1f[_0xa307('0x32')]=_0xa9ac01;_0x446d1f[_0xa307('0x33')]=getSeconds(_0x446d1f[_0xa307('0x32')],_0x446d1f[_0xa307('0x31')]);};exports[_0xa307('0x34')]=function(_0x436c25,_0x11f78e,_0x2cd0c1){_0x436c25[_0xa307('0x35')]=_0x11f78e;_0x436c25[_0xa307('0x36')]=_0x2cd0c1;};exports['logCustomer']=function(_0x3e05d9,_0x3106b6,_0x5a92b6){var _0x1e2db8=moment()[_0xa307('0x12')](_0xa307('0x2e'));_0x3e05d9[_0xa307('0x2f')]=_0x3106b6;_0x3e05d9[_0xa307('0x30')]=_0x5a92b6;_0x3e05d9[_0xa307('0x32')]=_0x3e05d9[_0xa307('0x32')]?_0x3e05d9['responsetime']:_0x1e2db8;_0x3e05d9[_0xa307('0x37')]=_0x3e05d9[_0xa307('0x37')]?_0x3e05d9[_0xa307('0x37')]:_0x1e2db8;_0x3e05d9[_0xa307('0x33')]=getSeconds(_0x3e05d9[_0xa307('0x32')]||0x0,_0x3e05d9[_0xa307('0x31')]||0x0);_0x3e05d9[_0xa307('0x38')]=_0x3e05d9[_0xa307('0x39')]?getSeconds(_0x3e05d9[_0xa307('0x37')],_0x3e05d9[_0xa307('0x39')]):0x0;};exports['isFailure']=function(_0x16617b){return _0x16617b===_0xa307('0x3a');};exports[_0xa307('0x3b')]=function(_0xa6bde0,_0x5a5c90,_0x2e0ef9,_0x3889c0,_0x45d44f){var _0x123548=_0x3889c0?_0xa307('0x3c'):_0xa6bde0[_0xa307('0x3d')];_0x123548=_0x45d44f?_0xa307('0x3e'):_0x123548;return{'actionid':_0xa6bde0['uniqueid'],'action':_0xa307('0x3f'),'channel':_0xa6bde0[_0xa307('0x40')],'callerid':util['format'](_0xa307('0x13'),_0x123548,_0xa6bde0['calleridnum']),'Exten':'xcally-motion-preview','Context':'from-sip','Priority':'1','variable':_0x2e0ef9,'timeout':(_0x5a5c90['timeout']||0x1e)*0x3e8,'async':!![],'channelid':_0xa6bde0[_0xa307('0x41')]};};exports[_0xa307('0x42')]=function(_0xc6dfcc){return _0xc6dfcc[_0xa307('0x43')]+_0xc6dfcc[_0xa307('0x44')]+_0xc6dfcc[_0xa307('0x45')]+_0xc6dfcc[_0xa307('0x46')]+_0xc6dfcc['countnosuchnumberretry'];};exports['cloneAction']=function(_0x213d25){var _0x15a2d3=_[_0xa307('0x47')](_0x213d25);_0x15a2d3['state']=0xf;_0x15a2d3['statedesc']=_0xa307('0x48');return _0x15a2d3;};exports['scheduledAt']=function(_0x46cc38,_0x5871ff,_0x1a45d9){var _0x351a7b={};_0x351a7b[_0x5871ff]=_0x46cc38[_0x5871ff];_0x351a7b[_0xa307('0x49')]=![];_0x351a7b[_0xa307('0x4a')]=moment()[_0xa307('0x4b')](_0x1a45d9,'minutes')['format']('YYYY-MM-DD\x20HH:mm:ss');_0x351a7b[_0xa307('0x4c')]=_0x46cc38['ContactId'];_0x351a7b['ListId']=_0x46cc38[_0xa307('0x4d')];_0x351a7b[_0xa307('0x17')]=_0x46cc38[_0xa307('0x17')]||undefined;return _0x351a7b;};exports[_0xa307('0x4e')]=function(_0x2901bc,_0x5636f8){if(!_['isNil'](_0x2901bc)){if(_0x2901bc['pTalking']>0x0){_0x2901bc[_0xa307('0x4f')]-=0x1;}else{logger[_0xa307('0x9')](_0x5636f8,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger[_0xa307('0x9')](_0x5636f8,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0xa307('0x50')]=function(_0x51a5d3){if(_0x51a5d3<=0x0){return!![];}return![];};exports[_0xa307('0x51')]=function(_0x4848fe,_0x47973c,_0x50235c){_0x4848fe[_0xa307('0x52')]=_0x47973c;_0x4848fe[_0xa307('0x53')]=_0x4848fe[_0xa307('0x54')];_0x4848fe[_0xa307('0x55')]=_0x4848fe[_0xa307('0x40')];_0x4848fe[_0xa307('0x56')]=_0xa307('0x57');if(_0x50235c){_0x4848fe[_0xa307('0x58')]=_0x50235c[_0xa307('0x58')];}return _0x4848fe;};exports[_0xa307('0x59')]=function(_0x456adc){var _0x553aa8={};_0x553aa8[_0xa307('0x54')]=_0x456adc[_0xa307('0x54')];_0x553aa8[_0xa307('0x55')]=_0x456adc[_0xa307('0x40')];_0x553aa8['uniqueid']=_0x456adc[_0xa307('0x41')];return _0x553aa8;};exports[_0xa307('0x5a')]=function(_0x46bb9d){var _0x5927c4=[];for(var _0x14987f in _0x46bb9d){if(_0x46bb9d[_0xa307('0x23')](_0x14987f)){if(!_['isNil'](_0x46bb9d[_0x14987f])&&_0x46bb9d[_0x14987f][_0xa307('0x2f')]===_0xa307('0x5b')&&_0x46bb9d[_0x14987f][_0xa307('0x5c')]===_0xa307('0x5d')){_0x5927c4[_0xa307('0x5e')](_0x46bb9d[_0x14987f]['id']);}}}return _0x5927c4;};exports[_0xa307('0x5f')]=function(_0x1b3cd4){var _0x1d1b37=moment()[_0xa307('0x6')](0x0);var _0x547f6d=moment(_0x1b3cd4)[_0xa307('0x6')](0x0);return _0x1d1b37[_0xa307('0x60')](_0x547f6d,_0xa307('0x7'));};exports[_0xa307('0x61')]=function(_0x501579){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x501579[_0xa307('0x4c')],'ListId':_0x501579['ListId'],'VoiceQueueId':_0x501579[_0xa307('0x17')]||undefined,'CampaignId':_0x501579[_0xa307('0x62')]||undefined};};exports[_0xa307('0x63')]=function(_0x4f3b19){if(_0x4f3b19===_0xa307('0x41')||_0x4f3b19===_0xa307('0x64')||_0x4f3b19==='queue'||_0x4f3b19===_0xa307('0x65')||_0x4f3b19===_0xa307('0x66')||_0x4f3b19===_0xa307('0x67')||_0x4f3b19===_0xa307('0x35')||_0x4f3b19==='channelAgent'||_0x4f3b19==='calleridname'||_0x4f3b19===_0xa307('0x49')||_0x4f3b19===_0xa307('0x16')||_0x4f3b19==='scheduledat'||_0x4f3b19==='countbusyretry'||_0x4f3b19===_0xa307('0x44')||_0x4f3b19===_0xa307('0x45')||_0x4f3b19==='countglobal'||_0x4f3b19===_0xa307('0x68')||_0x4f3b19===_0xa307('0x69')||_0x4f3b19===_0xa307('0x6a')||_0x4f3b19==='recallme'||_0x4f3b19===_0xa307('0x4c')||_0x4f3b19===_0xa307('0x4d')||_0x4f3b19===_0xa307('0x36')||_0x4f3b19===_0xa307('0x17')||_0x4f3b19===_0xa307('0x6b')||_0x4f3b19==='xmd-voicequeueid'||_0x4f3b19==='xmd-queue'||_0x4f3b19===_0xa307('0x6c')||_0x4f3b19==='xmd-listid'||_0x4f3b19===_0xa307('0x6d')||_0x4f3b19===_0xa307('0x6e')||_0x4f3b19==='xmd-dialoptions'||_0x4f3b19==='xmd-dialid'||_0x4f3b19===_0xa307('0x6f')||_0x4f3b19===_0xa307('0x70')||_0x4f3b19===_0xa307('0x71')||_0x4f3b19==='xmd-callerid'||_0x4f3b19===_0xa307('0x72')||_0x4f3b19===_0xa307('0x73')||_0x4f3b19===_0xa307('0x74')||_0x4f3b19===_0xa307('0x75')||_0x4f3b19==='rtpaudioqosjitter'||_0x4f3b19===_0xa307('0x76')||_0x4f3b19===_0xa307('0x77')||_0x4f3b19===_0xa307('0x78')||_0x4f3b19===_0xa307('0x79')||_0x4f3b19===_0xa307('0x7a')||_0x4f3b19===_0xa307('0x74')||_0x4f3b19==='rtpaudioqosbridged'||_0x4f3b19===_0xa307('0x7b')||_0x4f3b19==='rtpaudioqosjitterbridged'||_0x4f3b19===_0xa307('0x77')||_0x4f3b19===_0xa307('0x78')||_0x4f3b19==='rtpaudioqosrtt'||_0x4f3b19===_0xa307('0x7a')||_0x4f3b19==='bridgepeer'||_0x4f3b19==='bridgepvtcallid'||_0x4f3b19===_0xa307('0x2f')||_0x4f3b19===_0xa307('0x30')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x299ada,_0x5ba97e){var _0x5afd9c,_0x443673,_0x5c6417;if(_0x5ba97e<=0x0){_0x5ba97e=0x1;}_0x5afd9c=new RegExp(_0xa307('0x7c')+_0x5ba97e+'}$');_0x443673=Math[_0xa307('0x7d')](0xa,_0x5ba97e-0x1);_0x5c6417=Math[_0xa307('0x7d')](0xa,_0x5ba97e)-0x1;return util[_0xa307('0x12')]('%s',_[_0xa307('0x7e')](_0x299ada,_0x5afd9c,_[_0xa307('0x7f')](_0x443673,_0x5c6417)));};exports[_0xa307('0x80')]=function(_0x4d3081){var _0x44d761=_0x4d3081[_0xa307('0x81')](/"(.*?)"/);return _0x44d761?_0x44d761[0x1]:_0x4d3081;};exports[_0xa307('0x82')]=function(_0x5be87a){var _0x112604=_0x5be87a[_0xa307('0x81')](/<(.*?)>/);return _0x112604?_0x112604[0x1]:_0x5be87a;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0673=['queuepause','voicequeuechannelhangup','voicequeuechannelredirect','queueadd','string','boolean','queueremove'];(function(_0x42bc91,_0x41f40a){var _0x3f5507=function(_0x20cfaf){while(--_0x20cfaf){_0x42bc91['push'](_0x42bc91['shift']());}};_0x3f5507(++_0x41f40a);}(_0x0673,0x9d));var _0x3067=function(_0x4706a6,_0x4c7b45){_0x4706a6=_0x4706a6-0x0;var _0x3eb9d2=_0x0673[_0x4706a6];return _0x3eb9d2;};'use strict';exports[_0x3067('0x0')]={'queue':{'type':_0x3067('0x1'),'required':!![]},'interface':{'type':_0x3067('0x1'),'required':!![]},'membername':{'type':'string','required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':_0x3067('0x2'),'required':![]}};exports[_0x3067('0x3')]={'queue':{'type':_0x3067('0x1'),'required':!![]},'interface':{'type':_0x3067('0x1'),'required':!![]}};exports[_0x3067('0x4')]={'interface':{'type':_0x3067('0x1'),'required':!![]},'paused':{'type':'boolean'},'reason':{'type':_0x3067('0x1'),'required':![]}};exports['reload']={'module':{'type':_0x3067('0x1'),'required':![]}};exports['voicequeuechannel']={'uniqueid':{'type':'string','required':!![]}};exports['voicechannel']={'uniqueid':{'type':_0x3067('0x1'),'required':!![]},'filename':{'type':_0x3067('0x1')},'format':{'type':'string'},'mixmonitorid':{'type':'string'}};exports[_0x3067('0x5')]={'uniqueid':{'type':_0x3067('0x1'),'required':!![]}};exports[_0x3067('0x6')]={'uniqueid':{'type':_0x3067('0x1'),'required':!![]},'exten':{'type':_0x3067('0x1'),'required':!![]},'context':{'type':_0x3067('0x1')}};
\ No newline at end of file
+var _0xcd98=['queueadd','string','boolean','queuepause','reload','voicequeuechannel','voicequeuechannelhangup'];(function(_0x2326b8,_0x3b62f7){var _0x363f62=function(_0x4b01fc){while(--_0x4b01fc){_0x2326b8['push'](_0x2326b8['shift']());}};_0x363f62(++_0x3b62f7);}(_0xcd98,0x1e3));var _0x8cd9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcd98[_0x3dd15e];return _0x231fd0;};'use strict';exports[_0x8cd9('0x0')]={'queue':{'type':_0x8cd9('0x1'),'required':!![]},'interface':{'type':'string','required':!![]},'membername':{'type':_0x8cd9('0x1'),'required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':_0x8cd9('0x2'),'required':![]}};exports['queueremove']={'queue':{'type':_0x8cd9('0x1'),'required':!![]},'interface':{'type':_0x8cd9('0x1'),'required':!![]}};exports[_0x8cd9('0x3')]={'interface':{'type':'string','required':!![]},'paused':{'type':_0x8cd9('0x2')},'reason':{'type':_0x8cd9('0x1'),'required':![]}};exports[_0x8cd9('0x4')]={'module':{'type':_0x8cd9('0x1'),'required':![]}};exports[_0x8cd9('0x5')]={'uniqueid':{'type':_0x8cd9('0x1'),'required':!![]}};exports['voicechannel']={'uniqueid':{'type':_0x8cd9('0x1'),'required':!![]},'filename':{'type':'string'},'format':{'type':_0x8cd9('0x1')},'mixmonitorid':{'type':_0x8cd9('0x1')}};exports[_0x8cd9('0x6')]={'uniqueid':{'type':_0x8cd9('0x1'),'required':!![]}};exports['voicequeuechannelredirect']={'uniqueid':{'type':'string','required':!![]},'exten':{'type':_0x8cd9('0x1'),'required':!![]},'context':{'type':'string'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x08e8=['outboundDropCallsDayCallersExit','outboundRejectCallsDay','outboundReCallsDay','mergeFromDatabase','initAgents','isUndefined','prototype','initTelephones','telephones','length','initTrunks','trunks','initVoiceQueues','voiceQueues','initTriggers','triggers','initTemplates','zendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','deskAccounts','initSugarcrmAccounts','sugarcrmAccounts','servicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','initVoiceQueueReports','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','queuecallerjoinAt','seconds','queuecallerabandonAt','total','queuecallercomplete','initVoiceCallReports','duration','disposition','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','merge','initFaxAccounts','exports','bluebird','lodash','moment','../model/telephone','../model/trunk','../model/voiceQueue','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','campaigns','templates','outbound','voiceExtensions','channels','outboundChannels','timers','salesforceAccounts','freshdeskAccounts','zohoAccounts','vtigerAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','format','SIP/%s','isNil','interface','name','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout'];(function(_0x2077c1,_0x3c7d0c){var _0x304bdc=function(_0x56639f){while(--_0x56639f){_0x2077c1['push'](_0x2077c1['shift']());}};_0x304bdc(++_0x3c7d0c);}(_0x08e8,0x109));var _0x808e=function(_0x298a03,_0x2232eb){_0x298a03=_0x298a03-0x0;var _0xef4a6e=_0x08e8[_0x298a03];return _0xef4a6e;};'use strict';var BPromise=require(_0x808e('0x0'));var util=require('util');var _=require(_0x808e('0x1'));var moment=require(_0x808e('0x2'));var Agent=require('../model/agent');var Telephone=require(_0x808e('0x3'));var Trunk=require(_0x808e('0x4'));var VoiceQueue=require(_0x808e('0x5'));var Trigger=require('../model/trigger');var Template=require(_0x808e('0x6'));var Campaign=require(_0x808e('0x7'));var VoiceExtension=require(_0x808e('0x8'));var ZendeskAccount=require(_0x808e('0x9'));var SalesforceAccount=require(_0x808e('0xa'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0x808e('0xb'));var ZohoAccount=require(_0x808e('0xc'));var DeskAccount=require(_0x808e('0xd'));var VtigerAccount=require(_0x808e('0xe'));var ServicenowAccount=require('../model/servicenowAccount');var Dynamics365Account=require(_0x808e('0xf'));var FreshsalesAccount=require(_0x808e('0x10'));var FaxAccount=require(_0x808e('0x11'));var Realtime=function(){this[_0x808e('0x12')]={};this['telephones']={};this['trunks']={};this['voiceQueues']={};this['triggers']={};this[_0x808e('0x13')]={};this[_0x808e('0x14')]={};this[_0x808e('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x808e('0x16')]={};this[_0x808e('0x17')]={};this['queueChannels']={};this[_0x808e('0x18')]={};this[_0x808e('0x19')]={};this['settings']={};this['zendeskAccounts']={};this[_0x808e('0x1a')]={};this['sugarcrmAccounts']={};this[_0x808e('0x1b')]={};this[_0x808e('0x1c')]={};this['deskAccounts']={};this[_0x808e('0x1d')]={};this['servicenowAccounts']={};this[_0x808e('0x1e')]={};this[_0x808e('0x1f')]={};this[_0x808e('0x20')]={};};function freeIsNotKey(_0x5bd27b,_0x108c45,_0x31c006){var _0x3ef7ef=_[_0x808e('0x21')](_0x5bd27b,function(_0x4834d1,_0x5c34c0){return _0x4834d1[_0x31c006];});for(var _0x21913e in _0x108c45){if(_0x108c45[_0x808e('0x22')](_0x21913e)){if(!_0x3ef7ef[_0x21913e]){delete _0x108c45[_0x21913e];}}}}function freeIsNotKeySip(_0x130ff2,_0x1ee507){var _0x5f3cf4=_[_0x808e('0x21')](_0x130ff2,function(_0x3e5046,_0x45d7b2){return util[_0x808e('0x23')](_0x808e('0x24'),_0x3e5046['name']);});for(var _0x56aae4 in _0x1ee507){if(_0x1ee507[_0x808e('0x22')](_0x56aae4)){if(!_0x5f3cf4[_0x56aae4]){delete _0x1ee507[_0x56aae4];}}}}function freeIsNotKeyAgent(_0x4afd49,_0x3ed801){var _0x3abfb2=_[_0x808e('0x21')](_0x4afd49,function(_0xe81e41,_0x2d40e4){var _0x33ee96=_[_0x808e('0x25')](_0xe81e41[_0x808e('0x26')])?util['format'](_0x808e('0x24'),_0xe81e41[_0x808e('0x27')]):_0xe81e41[_0x808e('0x26')];return _0x33ee96;});for(var _0x569fc5 in _0x3ed801){if(_0x3ed801[_0x808e('0x22')](_0x569fc5)){if(!_0x3abfb2[_0x569fc5]){delete _0x3ed801[_0x569fc5];}}}}function clearVoiceCallReports(_0x566be2){_0x566be2['total']=0x0;_0x566be2[_0x808e('0x28')]=0x0;_0x566be2[_0x808e('0x29')]=0x0;_0x566be2[_0x808e('0x2a')]=0x0;_0x566be2[_0x808e('0x2b')]=0x0;}function clearCampaigns(_0x223f62){if(!_[_0x808e('0x2c')](_0x223f62)){for(var _0x1b8144 in _0x223f62){if(_0x223f62[_0x808e('0x22')](_0x1b8144)){_0x223f62[_0x1b8144][_0x808e('0x2d')]=0x0;_0x223f62[_0x1b8144][_0x808e('0x2e')]=0x0;}}}}function clearVoiceQueues(_0x2800e3){if(!_[_0x808e('0x2c')](_0x2800e3)){for(var _0x3a5e12 in _0x2800e3){if(_0x2800e3['hasOwnProperty'](_0x3a5e12)){_0x2800e3[_0x3a5e12]['total']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x28')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x2f')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x30')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x29')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x2a')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x2b')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x31')]=0x0;_0x2800e3[_0x3a5e12]['outboundNoAnswerCallsDay']=0x0;_0x2800e3[_0x3a5e12]['outboundBusyCallsDay']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x32')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x33')]=0x0;_0x2800e3[_0x3a5e12]['outboundUnknownCallsDay']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x34')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x35')]=0x0;_0x2800e3[_0x3a5e12]['outboundBlacklistCallsDay']=0x0;_0x2800e3[_0x3a5e12]['outboundOriginateFailureCallsDay']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x36')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x37')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x31')]=0x0;_0x2800e3[_0x3a5e12]['outboundAnswerCallsDay']=0x0;_0x2800e3[_0x3a5e12]['queueStatusComplete']=!![];}}}}Realtime['prototype'][_0x808e('0x38')]=function(_0x310c42,_0x28d066){for(var _0x4399ad in _0x28d066){if(_0x310c42['hasOwnProperty'](_0x4399ad)){_0x310c42[_0x4399ad]=_0x28d066[_0x4399ad];}}};Realtime['prototype'][_0x808e('0x39')]=function(){var _0x1e3b40=this;return function(_0x3864c6){if(_0x3864c6){freeIsNotKeyAgent(_0x3864c6,_0x1e3b40[_0x808e('0x12')]);for(var _0x1b0bc8=0x0,_0x558e1c={},_0x56a3bf={};_0x1b0bc8<_0x3864c6['length'];_0x1b0bc8+=0x1){_0x558e1c=_0x3864c6[_0x1b0bc8];var _0xb1b092=_['isNil'](_0x558e1c[_0x808e('0x26')])?util['format'](_0x808e('0x24'),_0x558e1c[_0x808e('0x27')]):_0x558e1c[_0x808e('0x26')];if(_[_0x808e('0x3a')](_0x1e3b40[_0x808e('0x12')][_0xb1b092])){_0x1e3b40[_0x808e('0x12')][_0xb1b092]=new Agent(_0x558e1c);}else{_0x1e3b40[_0x808e('0x38')](_0x1e3b40[_0x808e('0x12')][_0xb1b092],_0x558e1c);}}}return _0x1e3b40[_0x808e('0x12')];};};Realtime[_0x808e('0x3b')][_0x808e('0x3c')]=function(){var _0x3fb138=this;return function(_0x31434e){if(_0x31434e){freeIsNotKeySip(_0x31434e,_0x3fb138[_0x808e('0x3d')]);for(var _0x2fadff=0x0,_0x3f8383={},_0x2b2ae7={};_0x2fadff<_0x31434e[_0x808e('0x3e')];_0x2fadff+=0x1){_0x3f8383=_0x31434e[_0x2fadff];if(_[_0x808e('0x3a')](_0x3fb138[_0x808e('0x3d')][util[_0x808e('0x23')](_0x808e('0x24'),_0x3f8383[_0x808e('0x27')])])){_0x3fb138[_0x808e('0x3d')][util[_0x808e('0x23')](_0x808e('0x24'),_0x3f8383[_0x808e('0x27')])]=new Telephone(_0x3f8383);}else{_0x3fb138[_0x808e('0x38')](_0x3fb138['telephones'][util[_0x808e('0x23')](_0x808e('0x24'),_0x3f8383['name'])],_0x3f8383);}}}return _0x3fb138['telephones'];};};Realtime['prototype'][_0x808e('0x3f')]=function(){var _0x43496d=this;return function(_0x17d33f){if(_0x17d33f){freeIsNotKeySip(_0x17d33f,_0x43496d[_0x808e('0x40')]);for(var _0x3ca4ca=0x0,_0x497112={},_0x512428={};_0x3ca4ca<_0x17d33f[_0x808e('0x3e')];_0x3ca4ca+=0x1){_0x497112=_0x17d33f[_0x3ca4ca];if(_[_0x808e('0x3a')](_0x43496d[_0x808e('0x40')][util[_0x808e('0x23')]('SIP/%s',_0x497112[_0x808e('0x27')])])){_0x43496d[_0x808e('0x40')][util[_0x808e('0x23')]('SIP/%s',_0x497112[_0x808e('0x27')])]=new Trunk(_0x497112);}else{_0x43496d['mergeFromDatabase'](_0x43496d[_0x808e('0x40')][util[_0x808e('0x23')](_0x808e('0x24'),_0x497112[_0x808e('0x27')])],_0x497112);}}}return _0x43496d[_0x808e('0x40')];};};Realtime[_0x808e('0x3b')][_0x808e('0x41')]=function(){var _0x44dacd=this;return function(_0x2ac20b){if(_0x2ac20b){freeIsNotKey(_0x2ac20b,_0x44dacd[_0x808e('0x42')],_0x808e('0x27'));for(var _0x2e4d95=0x0,_0x3c568b={},_0x192310={};_0x2e4d95<_0x2ac20b[_0x808e('0x3e')];_0x2e4d95+=0x1){_0x3c568b=_0x2ac20b[_0x2e4d95];if(_['isUndefined'](_0x44dacd['voiceQueues'][_0x3c568b['name']])){_0x44dacd[_0x808e('0x42')][_0x3c568b[_0x808e('0x27')]]=new VoiceQueue(_0x3c568b);}else{_0x44dacd[_0x808e('0x38')](_0x44dacd['voiceQueues'][_0x3c568b[_0x808e('0x27')]],_0x3c568b);}}}return _0x44dacd[_0x808e('0x42')];};};Realtime[_0x808e('0x3b')][_0x808e('0x43')]=function(){var _0x172b92=this;return function(_0x34a79e){if(_0x34a79e){freeIsNotKey(_0x34a79e,_0x172b92['triggers'],'id');for(var _0x16be3a=0x0,_0x56a578={},_0x787699={};_0x16be3a<_0x34a79e[_0x808e('0x3e')];_0x16be3a+=0x1){_0x56a578=_0x34a79e[_0x16be3a];if(_[_0x808e('0x3a')](_0x172b92['triggers'][_0x56a578['id']])){_0x172b92['triggers'][_0x56a578['id']]=new Trigger(_0x56a578);}else{_0x172b92[_0x808e('0x38')](_0x172b92[_0x808e('0x44')][_0x56a578['id']],_0x56a578);}}}return _0x172b92[_0x808e('0x44')];};};Realtime[_0x808e('0x3b')][_0x808e('0x45')]=function(){var _0x49a248=this;return function(_0x5d05b9){if(_0x5d05b9){freeIsNotKey(_0x5d05b9,_0x49a248[_0x808e('0x14')],'id');for(var _0x23ad7e=0x0,_0x56cda9={},_0x57c696={};_0x23ad7e<_0x5d05b9[_0x808e('0x3e')];_0x23ad7e+=0x1){_0x56cda9=_0x5d05b9[_0x23ad7e];if(_[_0x808e('0x3a')](_0x49a248['templates'][_0x56cda9['id']])){_0x49a248[_0x808e('0x14')][_0x56cda9['id']]=new Template(_0x56cda9);}else{_0x49a248[_0x808e('0x38')](_0x49a248['templates'][_0x56cda9['id']],_0x56cda9);}}}return _0x49a248['templates'];};};Realtime[_0x808e('0x3b')]['initZendeskAccounts']=function(){var _0x5718e1=this;return function(_0xf90e48){if(_0xf90e48){freeIsNotKey(_0xf90e48,_0x5718e1[_0x808e('0x46')],'id');for(var _0x1d94dc=0x0,_0x593ba2={},_0x34edfb={};_0x1d94dc<_0xf90e48[_0x808e('0x3e')];_0x1d94dc+=0x1){_0x593ba2=_0xf90e48[_0x1d94dc];if(_[_0x808e('0x3a')](_0x5718e1[_0x808e('0x46')][_0x593ba2['id']])){_0x5718e1[_0x808e('0x46')][_0x593ba2['id']]=new ZendeskAccount(_0x593ba2);}else{_0x5718e1['mergeFromDatabase'](_0x5718e1[_0x808e('0x46')][_0x593ba2['id']],_0x593ba2);}}}return _0x5718e1[_0x808e('0x46')];};};Realtime[_0x808e('0x3b')][_0x808e('0x47')]=function(){var _0x449247=this;return function(_0x2aaecb){if(_0x2aaecb){freeIsNotKey(_0x2aaecb,_0x449247[_0x808e('0x1a')],'id');for(var _0x1b58ff=0x0,_0x3c3c9e={},_0x4066df={};_0x1b58ff<_0x2aaecb['length'];_0x1b58ff+=0x1){_0x3c3c9e=_0x2aaecb[_0x1b58ff];if(_[_0x808e('0x3a')](_0x449247[_0x808e('0x1a')][_0x3c3c9e['id']])){_0x449247[_0x808e('0x1a')][_0x3c3c9e['id']]=new SalesforceAccount(_0x3c3c9e);}else{_0x449247[_0x808e('0x38')](_0x449247[_0x808e('0x1a')][_0x3c3c9e['id']],_0x3c3c9e);}}}return _0x449247['salesforceAccounts'];};};Realtime[_0x808e('0x3b')][_0x808e('0x48')]=function(){var _0x3f70ec=this;return function(_0x4fc1c){if(_0x4fc1c){freeIsNotKey(_0x4fc1c,_0x3f70ec['freshdeskAccounts'],'id');for(var _0x2ffaa7=0x0,_0x51e093={},_0x26c375={};_0x2ffaa7<_0x4fc1c[_0x808e('0x3e')];_0x2ffaa7+=0x1){_0x51e093=_0x4fc1c[_0x2ffaa7];if(_['isUndefined'](_0x3f70ec[_0x808e('0x1b')][_0x51e093['id']])){_0x3f70ec[_0x808e('0x1b')][_0x51e093['id']]=new FreshdeskAccount(_0x51e093);}else{_0x3f70ec[_0x808e('0x38')](_0x3f70ec['freshdeskAccounts'][_0x51e093['id']],_0x51e093);}}}return _0x3f70ec['freshdeskAccounts'];};};Realtime['prototype'][_0x808e('0x49')]=function(){var _0x23943a=this;return function(_0x5513ca){if(_0x5513ca){freeIsNotKey(_0x5513ca,_0x23943a[_0x808e('0x1c')],'id');for(var _0x14cab5=0x0,_0x6f087e={},_0x1f9448={};_0x14cab5<_0x5513ca[_0x808e('0x3e')];_0x14cab5+=0x1){_0x6f087e=_0x5513ca[_0x14cab5];if(_[_0x808e('0x3a')](_0x23943a[_0x808e('0x1c')][_0x6f087e['id']])){_0x23943a[_0x808e('0x1c')][_0x6f087e['id']]=new ZohoAccount(_0x6f087e);}else{_0x23943a[_0x808e('0x38')](_0x23943a[_0x808e('0x1c')][_0x6f087e['id']],_0x6f087e);}}}return _0x23943a[_0x808e('0x1c')];};};Realtime['prototype'][_0x808e('0x4a')]=function(){var _0x494811=this;return function(_0x564587){if(_0x564587){freeIsNotKey(_0x564587,_0x494811[_0x808e('0x4b')],'id');for(var _0xc5ac75=0x0,_0x49eb39={},_0x16a6ef={};_0xc5ac75<_0x564587[_0x808e('0x3e')];_0xc5ac75+=0x1){_0x49eb39=_0x564587[_0xc5ac75];if(_[_0x808e('0x3a')](_0x494811[_0x808e('0x4b')][_0x49eb39['id']])){_0x494811[_0x808e('0x4b')][_0x49eb39['id']]=new DeskAccount(_0x49eb39);}else{_0x494811[_0x808e('0x38')](_0x494811[_0x808e('0x4b')][_0x49eb39['id']],_0x49eb39);}}}return _0x494811[_0x808e('0x4b')];};};Realtime[_0x808e('0x3b')][_0x808e('0x4c')]=function(){var _0x448985=this;return function(_0x21c215){if(_0x21c215){freeIsNotKey(_0x21c215,_0x448985['sugarcrmAccounts'],'id');for(var _0x14c6d1=0x0,_0x535ca3={},_0x48bf51={};_0x14c6d1<_0x21c215[_0x808e('0x3e')];_0x14c6d1+=0x1){_0x535ca3=_0x21c215[_0x14c6d1];if(_[_0x808e('0x3a')](_0x448985['sugarcrmAccounts'][_0x535ca3['id']])){_0x448985[_0x808e('0x4d')][_0x535ca3['id']]=new SugarcrmAccount(_0x535ca3);}else{_0x448985[_0x808e('0x38')](_0x448985[_0x808e('0x4d')][_0x535ca3['id']],_0x535ca3);}}}return _0x448985[_0x808e('0x4d')];};};Realtime[_0x808e('0x3b')]['initVtigerAccounts']=function(){var _0xd3b809=this;return function(_0x4c5f0d){if(_0x4c5f0d){freeIsNotKey(_0x4c5f0d,_0xd3b809[_0x808e('0x1d')],'id');for(var _0x47970b=0x0,_0x5a789b={},_0x459581={};_0x47970b<_0x4c5f0d[_0x808e('0x3e')];_0x47970b+=0x1){_0x5a789b=_0x4c5f0d[_0x47970b];if(_[_0x808e('0x3a')](_0xd3b809[_0x808e('0x1d')][_0x5a789b['id']])){_0xd3b809[_0x808e('0x1d')][_0x5a789b['id']]=new VtigerAccount(_0x5a789b);}else{_0xd3b809[_0x808e('0x38')](_0xd3b809[_0x808e('0x1d')][_0x5a789b['id']],_0x5a789b);}}}return _0xd3b809[_0x808e('0x1d')];};};Realtime['prototype']['initServicenowAccounts']=function(){var _0x28992e=this;return function(_0xe44028){if(_0xe44028){freeIsNotKey(_0xe44028,_0x28992e[_0x808e('0x4e')],'id');for(var _0x48601b=0x0,_0x36f6d3={},_0x4d8d45={};_0x48601b<_0xe44028[_0x808e('0x3e')];_0x48601b+=0x1){_0x36f6d3=_0xe44028[_0x48601b];if(_[_0x808e('0x3a')](_0x28992e[_0x808e('0x4e')][_0x36f6d3['id']])){_0x28992e[_0x808e('0x4e')][_0x36f6d3['id']]=new ServicenowAccount(_0x36f6d3);}else{_0x28992e[_0x808e('0x38')](_0x28992e[_0x808e('0x4e')][_0x36f6d3['id']],_0x36f6d3);}}}return _0x28992e[_0x808e('0x4e')];};};Realtime[_0x808e('0x3b')][_0x808e('0x4f')]=function(){var _0x1755be=this;return function(_0x5f5ab2){if(_0x5f5ab2){freeIsNotKey(_0x5f5ab2,_0x1755be['dynamics365Accounts'],'id');for(var _0x25b86a=0x0,_0x211b7d={},_0x33289a={};_0x25b86a<_0x5f5ab2['length'];_0x25b86a+=0x1){_0x211b7d=_0x5f5ab2[_0x25b86a];if(_[_0x808e('0x3a')](_0x1755be[_0x808e('0x1e')][_0x211b7d['id']])){_0x1755be[_0x808e('0x1e')][_0x211b7d['id']]=new Dynamics365Account(_0x211b7d);}else{_0x1755be[_0x808e('0x38')](_0x1755be[_0x808e('0x1e')][_0x211b7d['id']],_0x211b7d);}}}return _0x1755be['dynamics365Accounts'];};};Realtime[_0x808e('0x3b')][_0x808e('0x50')]=function(){var _0x2f8ed8=this;return function(_0x23b63c){if(_0x23b63c){freeIsNotKey(_0x23b63c,_0x2f8ed8['freshsalesAccounts'],'id');for(var _0x46a601=0x0,_0x4543e0={},_0x2e4d80={};_0x46a601<_0x23b63c[_0x808e('0x3e')];_0x46a601+=0x1){_0x4543e0=_0x23b63c[_0x46a601];if(_[_0x808e('0x3a')](_0x2f8ed8[_0x808e('0x1f')][_0x4543e0['id']])){_0x2f8ed8[_0x808e('0x1f')][_0x4543e0['id']]=new FreshsalesAccount(_0x4543e0);}else{_0x2f8ed8[_0x808e('0x38')](_0x2f8ed8[_0x808e('0x1f')][_0x4543e0['id']],_0x4543e0);}}}return _0x2f8ed8['freshsalesAccounts'];};};Realtime[_0x808e('0x3b')][_0x808e('0x51')]=function(){var _0x4f9695=this;return function(_0x572a9a){for(var _0x4a4d27=0x0;_0x4a4d27<_0x572a9a[_0x808e('0x3e')];_0x4a4d27+=0x1){_['merge'](_0x4f9695[_0x808e('0x42')][_0x572a9a[_0x4a4d27][_0x808e('0x27')]],_0x572a9a[_0x4a4d27]);}return _0x4f9695[_0x808e('0x42')];};};Realtime[_0x808e('0x3b')][_0x808e('0x52')]=function(){var _0x32b38e=this;return function(_0x4bc3f5){clearVoiceQueues(_0x32b38e[_0x808e('0x42')]);if(_0x4bc3f5){_0x4bc3f5=_[_0x808e('0x53')](_0x4bc3f5,_0x808e('0x54'));for(var _0x4cdf51 in _0x4bc3f5){if(_0x4bc3f5[_0x808e('0x22')](_0x4cdf51)){var _0x12d9db={};for(var _0x369298=0x0;_0x369298<_0x4bc3f5[_0x4cdf51]['length'];_0x369298+=0x1){var _0x1f5cb0=_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x55')];if(_0x32b38e[_0x808e('0x42')][_0x1f5cb0]){if(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x56')]){_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x2f')]+=0x1;}if(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x57')]){_0x32b38e['voiceQueues'][_0x1f5cb0][_0x808e('0x30')]+=0x1;}_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x29')]+=moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x58')])['diff'](moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x59')]),_0x808e('0x5a'))||0x0;if(_0x369298===_0x4bc3f5[_0x4cdf51]['length']-0x1){_0x32b38e['voiceQueues'][_0x1f5cb0][_0x808e('0x2a')]+=moment(_0x4bc3f5[_0x4cdf51][_0x369298]['queuecallercompleteAt']||_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x5b')]||_0x4bc3f5[_0x4cdf51][_0x369298]['queuecallerexitAt'])['diff'](moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x59')]),_0x808e('0x5a'))||0x0;_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x5c')]+=0x1;if(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x5d')]){_0x32b38e[_0x808e('0x42')][_0x1f5cb0]['answered']+=0x1;_0x32b38e[_0x808e('0x42')][_0x1f5cb0]['sumBillable']+=moment(_0x4bc3f5[_0x4cdf51][_0x369298]['queuecallercompleteAt'])['diff'](moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x58')]),_0x808e('0x5a'))||0x0;}}else{_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x2a')]+=_0x32b38e[_0x808e('0x42')][_0x1f5cb0]['sumHoldTime']||0x0;}}}}}}return _0x32b38e[_0x808e('0x42')];};};Realtime[_0x808e('0x3b')][_0x808e('0x5e')]=function(){var _0x419528=this;return function(_0xf2b1d5){clearVoiceCallReports(_0x419528[_0x808e('0x15')]);if(_0xf2b1d5){for(var _0x15b9be=0x0;_0x15b9be<_0xf2b1d5['length'];_0x15b9be+=0x1){_0x419528[_0x808e('0x15')][_0x808e('0x5c')]+=0x1;_0x419528[_0x808e('0x15')][_0x808e('0x2a')]+=_0xf2b1d5[_0x15b9be][_0x808e('0x5f')];if(_0xf2b1d5[_0x15b9be][_0x808e('0x60')]==='ANSWERED'){_0x419528[_0x808e('0x15')][_0x808e('0x28')]+=0x1;_0x419528['outbound'][_0x808e('0x29')]+=_0xf2b1d5[_0x15b9be][_0x808e('0x5f')]-_0xf2b1d5[_0x15b9be]['billableseconds']||0x0;_0x419528[_0x808e('0x15')]['sumBillable']+=_0xf2b1d5[_0x15b9be][_0x808e('0x61')];}}}return _0x419528[_0x808e('0x15')];};};Realtime[_0x808e('0x3b')][_0x808e('0x62')]=function(){var _0x3ab0d=this;return function(_0x29c0d8){if(_0x29c0d8){freeIsNotKey(_0x29c0d8,_0x3ab0d[_0x808e('0x13')],_0x808e('0x27'));for(var _0x8968a5=0x0,_0x16caf6={};_0x8968a5<_0x29c0d8[_0x808e('0x3e')];_0x8968a5+=0x1){_0x16caf6=_0x29c0d8[_0x8968a5];if(_[_0x808e('0x3a')](_0x3ab0d[_0x808e('0x13')][_0x16caf6[_0x808e('0x27')]])){_0x3ab0d[_0x808e('0x13')][_0x16caf6[_0x808e('0x27')]]=new Campaign(_0x16caf6);}else{_0x3ab0d[_0x808e('0x38')](_0x3ab0d['campaigns'][_0x16caf6[_0x808e('0x27')]],_0x16caf6);_0x3ab0d[_0x808e('0x13')][_0x16caf6[_0x808e('0x27')]][_0x808e('0x63')]=_0x16caf6['SquareProject']?_0x16caf6[_0x808e('0x64')][_0x808e('0x27')]:undefined;}}}return _0x3ab0d[_0x808e('0x13')];};};Realtime[_0x808e('0x3b')][_0x808e('0x65')]=function(){var _0x26ae29=this;return function(_0x33fcb2){if(_0x33fcb2){freeIsNotKey(_0x33fcb2,_0x26ae29['voiceExtensions'],'id');for(var _0x4fbc00=0x0,_0x8200b2={};_0x4fbc00<_0x33fcb2['length'];_0x4fbc00+=0x1){_0x8200b2=_0x33fcb2[_0x4fbc00];if(_[_0x808e('0x3a')](_0x26ae29[_0x808e('0x16')][_0x8200b2['id']])){_0x26ae29[_0x808e('0x16')][_0x8200b2['id']]=new VoiceExtension(_0x8200b2);}else{_0x26ae29['mergeFromDatabase'](_0x26ae29['voiceExtensions'][_0x8200b2['id']],_0x8200b2);}}}return _0x26ae29[_0x808e('0x16')];};};Realtime[_0x808e('0x3b')][_0x808e('0x66')]=function(){var _0x2fe067=this;return function(_0x4dc8ee){clearCampaigns(_0x2fe067[_0x808e('0x13')]);for(var _0x5babf6=0x0;_0x5babf6<_0x4dc8ee[_0x808e('0x3e')];_0x5babf6+=0x1){_[_0x808e('0x67')](_0x2fe067[_0x808e('0x13')][_0x4dc8ee[_0x5babf6][_0x808e('0x27')]],_0x4dc8ee[_0x5babf6]);}return _0x2fe067[_0x808e('0x13')];};};Realtime['prototype'][_0x808e('0x68')]=function(){var _0x58f3df=this;return function(_0x10bb09){if(_0x10bb09){freeIsNotKey(_0x10bb09,_0x58f3df[_0x808e('0x20')],'id');for(var _0xf6dd31=0x0,_0xa376ff={},_0x58de14={};_0xf6dd31<_0x10bb09[_0x808e('0x3e')];_0xf6dd31+=0x1){_0xa376ff=_0x10bb09[_0xf6dd31];if(_[_0x808e('0x3a')](_0x58f3df['faxAccounts'][_0xa376ff['id']])){_0x58f3df[_0x808e('0x20')][_0xa376ff['id']]=new FaxAccount(_0xa376ff);}else{_0x58f3df['mergeFromDatabase'](_0x58f3df['faxAccounts'][_0xa376ff['id']],_0xa376ff);}}}return _0x58f3df[_0x808e('0x20')];};};module[_0x808e('0x69')]=Realtime;
\ No newline at end of file
+var _0x1e13=['freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','format','SIP/%s','name','interface','total','sumDuration','isEmpty','abandoned','sumHoldTime','sumBillable','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length','isNil','initTelephones','initTrunks','isUndefined','voiceQueues','initTriggers','triggers','initTemplates','initZendeskAccounts','zendeskAccounts','initSalesforceAccounts','initDeskAccounts','initSugarcrmAccounts','sugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','merge','initVoiceQueueReports','groupBy','uniqueid','queue','unmanaged','queuecallerabandon','queuecallerleaveAt','queuecallerjoinAt','queuecallerabandonAt','queuecallerexitAt','diff','queuecallercomplete','answered','seconds','disposition','ANSWERED','duration','billableseconds','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','exports','bluebird','util','lodash','moment','../model/agent','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/servicenowAccount','../model/faxAccount','agents','telephones','trunks','campaigns','templates','outbound','voiceExtensions','channels','queueChannels','settings','salesforceAccounts'];(function(_0x234d56,_0x4eee01){var _0xd47811=function(_0x52d2e0){while(--_0x52d2e0){_0x234d56['push'](_0x234d56['shift']());}};_0xd47811(++_0x4eee01);}(_0x1e13,0xad));var _0x31e1=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x1e13[_0x20a584];return _0x4b41a8;};'use strict';var BPromise=require(_0x31e1('0x0'));var util=require(_0x31e1('0x1'));var _=require(_0x31e1('0x2'));var moment=require(_0x31e1('0x3'));var Agent=require(_0x31e1('0x4'));var Telephone=require(_0x31e1('0x5'));var Trunk=require(_0x31e1('0x6'));var VoiceQueue=require(_0x31e1('0x7'));var Trigger=require(_0x31e1('0x8'));var Template=require(_0x31e1('0x9'));var Campaign=require(_0x31e1('0xa'));var VoiceExtension=require(_0x31e1('0xb'));var ZendeskAccount=require(_0x31e1('0xc'));var SalesforceAccount=require(_0x31e1('0xd'));var FreshdeskAccount=require(_0x31e1('0xe'));var SugarcrmAccount=require(_0x31e1('0xf'));var ZohoAccount=require('../model/zohoAccount');var DeskAccount=require('../model/deskAccount');var VtigerAccount=require('../model/vtigerAccount');var ServicenowAccount=require(_0x31e1('0x10'));var Dynamics365Account=require('../model/dynamics365Account');var FreshsalesAccount=require('../model/freshsalesAccount');var FaxAccount=require(_0x31e1('0x11'));var Realtime=function(){this[_0x31e1('0x12')]={};this[_0x31e1('0x13')]={};this[_0x31e1('0x14')]={};this['voiceQueues']={};this['triggers']={};this[_0x31e1('0x15')]={};this[_0x31e1('0x16')]={};this[_0x31e1('0x17')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x31e1('0x18')]={};this[_0x31e1('0x19')]={};this[_0x31e1('0x1a')]={};this['outboundChannels']={};this['timers']={};this[_0x31e1('0x1b')]={};this['zendeskAccounts']={};this[_0x31e1('0x1c')]={};this['sugarcrmAccounts']={};this[_0x31e1('0x1d')]={};this[_0x31e1('0x1e')]={};this[_0x31e1('0x1f')]={};this[_0x31e1('0x20')]={};this[_0x31e1('0x21')]={};this[_0x31e1('0x22')]={};this[_0x31e1('0x23')]={};this[_0x31e1('0x24')]={};};function freeIsNotKey(_0x53ee4b,_0x58d955,_0x2dd33b){var _0x1a7735=_[_0x31e1('0x25')](_0x53ee4b,function(_0x3965bc,_0x527e8e){return _0x3965bc[_0x2dd33b];});for(var _0x5f1ae8 in _0x58d955){if(_0x58d955[_0x31e1('0x26')](_0x5f1ae8)){if(!_0x1a7735[_0x5f1ae8]){delete _0x58d955[_0x5f1ae8];}}}}function freeIsNotKeySip(_0x139688,_0x26cb3a){var _0x5b14f1=_[_0x31e1('0x25')](_0x139688,function(_0x2a120a,_0x26827d){return util[_0x31e1('0x27')](_0x31e1('0x28'),_0x2a120a[_0x31e1('0x29')]);});for(var _0x1ab687 in _0x26cb3a){if(_0x26cb3a[_0x31e1('0x26')](_0x1ab687)){if(!_0x5b14f1[_0x1ab687]){delete _0x26cb3a[_0x1ab687];}}}}function freeIsNotKeyAgent(_0x2b4c5a,_0x165628){var _0x2d385a=_[_0x31e1('0x25')](_0x2b4c5a,function(_0x1e6d0d,_0x178559){var _0x50f0b9=_['isNil'](_0x1e6d0d[_0x31e1('0x2a')])?util[_0x31e1('0x27')](_0x31e1('0x28'),_0x1e6d0d['name']):_0x1e6d0d[_0x31e1('0x2a')];return _0x50f0b9;});for(var _0x54b42f in _0x165628){if(_0x165628[_0x31e1('0x26')](_0x54b42f)){if(!_0x2d385a[_0x54b42f]){delete _0x165628[_0x54b42f];}}}}function clearVoiceCallReports(_0x17fb49){_0x17fb49[_0x31e1('0x2b')]=0x0;_0x17fb49['answered']=0x0;_0x17fb49['sumHoldTime']=0x0;_0x17fb49[_0x31e1('0x2c')]=0x0;_0x17fb49['sumBillable']=0x0;}function clearCampaigns(_0x14b087){if(!_[_0x31e1('0x2d')](_0x14b087)){for(var _0x3a1f05 in _0x14b087){if(_0x14b087[_0x31e1('0x26')](_0x3a1f05)){_0x14b087[_0x3a1f05]['ivrTotalCallsDays']=0x0;_0x14b087[_0x3a1f05]['ivrAnswerCallsDay']=0x0;}}}}function clearVoiceQueues(_0x3f0ba8){if(!_['isEmpty'](_0x3f0ba8)){for(var _0x14e45f in _0x3f0ba8){if(_0x3f0ba8[_0x31e1('0x26')](_0x14e45f)){_0x3f0ba8[_0x14e45f][_0x31e1('0x2b')]=0x0;_0x3f0ba8[_0x14e45f]['answered']=0x0;_0x3f0ba8[_0x14e45f]['unmanaged']=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x2e')]=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x2f')]=0x0;_0x3f0ba8[_0x14e45f]['sumDuration']=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x30')]=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x31')]=0x0;_0x3f0ba8[_0x14e45f]['outboundNoAnswerCallsDay']=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x32')]=0x0;_0x3f0ba8[_0x14e45f]['outboundCongestionCallsDay']=0x0;_0x3f0ba8[_0x14e45f]['outboundNoSuchCallsDay']=0x0;_0x3f0ba8[_0x14e45f]['outboundUnknownCallsDay']=0x0;_0x3f0ba8[_0x14e45f]['outboundDropCallsDayTimeout']=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x33')]=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x34')]=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x35')]=0x0;_0x3f0ba8[_0x14e45f]['outboundRejectCallsDay']=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x36')]=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x31')]=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x37')]=0x0;_0x3f0ba8[_0x14e45f][_0x31e1('0x38')]=!![];}}}}Realtime[_0x31e1('0x39')][_0x31e1('0x3a')]=function(_0x287ac3,_0x2b091f){for(var _0x4aedaa in _0x2b091f){if(_0x287ac3[_0x31e1('0x26')](_0x4aedaa)){_0x287ac3[_0x4aedaa]=_0x2b091f[_0x4aedaa];}}};Realtime[_0x31e1('0x39')][_0x31e1('0x3b')]=function(){var _0x2ef6ae=this;return function(_0x53bdd3){if(_0x53bdd3){freeIsNotKeyAgent(_0x53bdd3,_0x2ef6ae[_0x31e1('0x12')]);for(var _0x2c6991=0x0,_0x15fc94={},_0x3d3c5b={};_0x2c6991<_0x53bdd3[_0x31e1('0x3c')];_0x2c6991+=0x1){_0x15fc94=_0x53bdd3[_0x2c6991];var _0x28f3a1=_[_0x31e1('0x3d')](_0x15fc94['interface'])?util['format'](_0x31e1('0x28'),_0x15fc94[_0x31e1('0x29')]):_0x15fc94[_0x31e1('0x2a')];if(_['isUndefined'](_0x2ef6ae['agents'][_0x28f3a1])){_0x2ef6ae[_0x31e1('0x12')][_0x28f3a1]=new Agent(_0x15fc94);}else{_0x2ef6ae[_0x31e1('0x3a')](_0x2ef6ae[_0x31e1('0x12')][_0x28f3a1],_0x15fc94);}}}return _0x2ef6ae['agents'];};};Realtime[_0x31e1('0x39')][_0x31e1('0x3e')]=function(){var _0x4d6c82=this;return function(_0x4e97b5){if(_0x4e97b5){freeIsNotKeySip(_0x4e97b5,_0x4d6c82[_0x31e1('0x13')]);for(var _0x21a175=0x0,_0x27703e={},_0x3f5f99={};_0x21a175<_0x4e97b5[_0x31e1('0x3c')];_0x21a175+=0x1){_0x27703e=_0x4e97b5[_0x21a175];if(_['isUndefined'](_0x4d6c82['telephones'][util[_0x31e1('0x27')](_0x31e1('0x28'),_0x27703e['name'])])){_0x4d6c82['telephones'][util[_0x31e1('0x27')](_0x31e1('0x28'),_0x27703e[_0x31e1('0x29')])]=new Telephone(_0x27703e);}else{_0x4d6c82[_0x31e1('0x3a')](_0x4d6c82[_0x31e1('0x13')][util['format'](_0x31e1('0x28'),_0x27703e[_0x31e1('0x29')])],_0x27703e);}}}return _0x4d6c82[_0x31e1('0x13')];};};Realtime[_0x31e1('0x39')][_0x31e1('0x3f')]=function(){var _0x466566=this;return function(_0x485337){if(_0x485337){freeIsNotKeySip(_0x485337,_0x466566[_0x31e1('0x14')]);for(var _0x1ca411=0x0,_0x37d7d7={},_0x532c9e={};_0x1ca411<_0x485337[_0x31e1('0x3c')];_0x1ca411+=0x1){_0x37d7d7=_0x485337[_0x1ca411];if(_[_0x31e1('0x40')](_0x466566[_0x31e1('0x14')][util[_0x31e1('0x27')](_0x31e1('0x28'),_0x37d7d7[_0x31e1('0x29')])])){_0x466566[_0x31e1('0x14')][util[_0x31e1('0x27')](_0x31e1('0x28'),_0x37d7d7[_0x31e1('0x29')])]=new Trunk(_0x37d7d7);}else{_0x466566[_0x31e1('0x3a')](_0x466566[_0x31e1('0x14')][util[_0x31e1('0x27')](_0x31e1('0x28'),_0x37d7d7[_0x31e1('0x29')])],_0x37d7d7);}}}return _0x466566[_0x31e1('0x14')];};};Realtime['prototype']['initVoiceQueues']=function(){var _0x579cf6=this;return function(_0x34f7dc){if(_0x34f7dc){freeIsNotKey(_0x34f7dc,_0x579cf6[_0x31e1('0x41')],_0x31e1('0x29'));for(var _0x372e8a=0x0,_0x190a6b={},_0x36f1d7={};_0x372e8a<_0x34f7dc[_0x31e1('0x3c')];_0x372e8a+=0x1){_0x190a6b=_0x34f7dc[_0x372e8a];if(_[_0x31e1('0x40')](_0x579cf6[_0x31e1('0x41')][_0x190a6b[_0x31e1('0x29')]])){_0x579cf6[_0x31e1('0x41')][_0x190a6b[_0x31e1('0x29')]]=new VoiceQueue(_0x190a6b);}else{_0x579cf6[_0x31e1('0x3a')](_0x579cf6['voiceQueues'][_0x190a6b[_0x31e1('0x29')]],_0x190a6b);}}}return _0x579cf6['voiceQueues'];};};Realtime['prototype'][_0x31e1('0x42')]=function(){var _0x5788f6=this;return function(_0x376fbc){if(_0x376fbc){freeIsNotKey(_0x376fbc,_0x5788f6[_0x31e1('0x43')],'id');for(var _0x18fc47=0x0,_0x3f77d2={},_0x5db589={};_0x18fc47<_0x376fbc[_0x31e1('0x3c')];_0x18fc47+=0x1){_0x3f77d2=_0x376fbc[_0x18fc47];if(_[_0x31e1('0x40')](_0x5788f6[_0x31e1('0x43')][_0x3f77d2['id']])){_0x5788f6[_0x31e1('0x43')][_0x3f77d2['id']]=new Trigger(_0x3f77d2);}else{_0x5788f6[_0x31e1('0x3a')](_0x5788f6[_0x31e1('0x43')][_0x3f77d2['id']],_0x3f77d2);}}}return _0x5788f6['triggers'];};};Realtime['prototype'][_0x31e1('0x44')]=function(){var _0x15c852=this;return function(_0x184c0b){if(_0x184c0b){freeIsNotKey(_0x184c0b,_0x15c852[_0x31e1('0x16')],'id');for(var _0x3fac37=0x0,_0x1d895e={},_0x2360fd={};_0x3fac37<_0x184c0b[_0x31e1('0x3c')];_0x3fac37+=0x1){_0x1d895e=_0x184c0b[_0x3fac37];if(_[_0x31e1('0x40')](_0x15c852[_0x31e1('0x16')][_0x1d895e['id']])){_0x15c852['templates'][_0x1d895e['id']]=new Template(_0x1d895e);}else{_0x15c852[_0x31e1('0x3a')](_0x15c852[_0x31e1('0x16')][_0x1d895e['id']],_0x1d895e);}}}return _0x15c852[_0x31e1('0x16')];};};Realtime['prototype'][_0x31e1('0x45')]=function(){var _0x399c3e=this;return function(_0x2ef05f){if(_0x2ef05f){freeIsNotKey(_0x2ef05f,_0x399c3e[_0x31e1('0x46')],'id');for(var _0x2eb933=0x0,_0x446bbe={},_0x1be0c9={};_0x2eb933<_0x2ef05f[_0x31e1('0x3c')];_0x2eb933+=0x1){_0x446bbe=_0x2ef05f[_0x2eb933];if(_[_0x31e1('0x40')](_0x399c3e[_0x31e1('0x46')][_0x446bbe['id']])){_0x399c3e[_0x31e1('0x46')][_0x446bbe['id']]=new ZendeskAccount(_0x446bbe);}else{_0x399c3e[_0x31e1('0x3a')](_0x399c3e[_0x31e1('0x46')][_0x446bbe['id']],_0x446bbe);}}}return _0x399c3e[_0x31e1('0x46')];};};Realtime['prototype'][_0x31e1('0x47')]=function(){var _0x256064=this;return function(_0x3ff062){if(_0x3ff062){freeIsNotKey(_0x3ff062,_0x256064['salesforceAccounts'],'id');for(var _0x2dfd45=0x0,_0x47e4b6={},_0x1c5c97={};_0x2dfd45<_0x3ff062['length'];_0x2dfd45+=0x1){_0x47e4b6=_0x3ff062[_0x2dfd45];if(_[_0x31e1('0x40')](_0x256064[_0x31e1('0x1c')][_0x47e4b6['id']])){_0x256064[_0x31e1('0x1c')][_0x47e4b6['id']]=new SalesforceAccount(_0x47e4b6);}else{_0x256064[_0x31e1('0x3a')](_0x256064[_0x31e1('0x1c')][_0x47e4b6['id']],_0x47e4b6);}}}return _0x256064[_0x31e1('0x1c')];};};Realtime[_0x31e1('0x39')]['initFreshdeskAccounts']=function(){var _0x49624f=this;return function(_0x53b7ef){if(_0x53b7ef){freeIsNotKey(_0x53b7ef,_0x49624f[_0x31e1('0x1d')],'id');for(var _0x320b01=0x0,_0x1090cb={},_0x290316={};_0x320b01<_0x53b7ef[_0x31e1('0x3c')];_0x320b01+=0x1){_0x1090cb=_0x53b7ef[_0x320b01];if(_[_0x31e1('0x40')](_0x49624f[_0x31e1('0x1d')][_0x1090cb['id']])){_0x49624f['freshdeskAccounts'][_0x1090cb['id']]=new FreshdeskAccount(_0x1090cb);}else{_0x49624f[_0x31e1('0x3a')](_0x49624f[_0x31e1('0x1d')][_0x1090cb['id']],_0x1090cb);}}}return _0x49624f[_0x31e1('0x1d')];};};Realtime[_0x31e1('0x39')]['initZohoAccounts']=function(){var _0x20af0e=this;return function(_0x1917a7){if(_0x1917a7){freeIsNotKey(_0x1917a7,_0x20af0e[_0x31e1('0x1e')],'id');for(var _0x173072=0x0,_0x2d3838={},_0x2899d8={};_0x173072<_0x1917a7[_0x31e1('0x3c')];_0x173072+=0x1){_0x2d3838=_0x1917a7[_0x173072];if(_[_0x31e1('0x40')](_0x20af0e[_0x31e1('0x1e')][_0x2d3838['id']])){_0x20af0e['zohoAccounts'][_0x2d3838['id']]=new ZohoAccount(_0x2d3838);}else{_0x20af0e[_0x31e1('0x3a')](_0x20af0e[_0x31e1('0x1e')][_0x2d3838['id']],_0x2d3838);}}}return _0x20af0e['zohoAccounts'];};};Realtime['prototype'][_0x31e1('0x48')]=function(){var _0xc15039=this;return function(_0x56a838){if(_0x56a838){freeIsNotKey(_0x56a838,_0xc15039[_0x31e1('0x1f')],'id');for(var _0x33367c=0x0,_0x4c94fd={},_0x2f316b={};_0x33367c<_0x56a838[_0x31e1('0x3c')];_0x33367c+=0x1){_0x4c94fd=_0x56a838[_0x33367c];if(_['isUndefined'](_0xc15039[_0x31e1('0x1f')][_0x4c94fd['id']])){_0xc15039[_0x31e1('0x1f')][_0x4c94fd['id']]=new DeskAccount(_0x4c94fd);}else{_0xc15039[_0x31e1('0x3a')](_0xc15039['deskAccounts'][_0x4c94fd['id']],_0x4c94fd);}}}return _0xc15039[_0x31e1('0x1f')];};};Realtime[_0x31e1('0x39')][_0x31e1('0x49')]=function(){var _0x27bff2=this;return function(_0x50c2f8){if(_0x50c2f8){freeIsNotKey(_0x50c2f8,_0x27bff2[_0x31e1('0x4a')],'id');for(var _0x2f1dda=0x0,_0x3bf7b2={},_0x236b81={};_0x2f1dda<_0x50c2f8[_0x31e1('0x3c')];_0x2f1dda+=0x1){_0x3bf7b2=_0x50c2f8[_0x2f1dda];if(_[_0x31e1('0x40')](_0x27bff2['sugarcrmAccounts'][_0x3bf7b2['id']])){_0x27bff2[_0x31e1('0x4a')][_0x3bf7b2['id']]=new SugarcrmAccount(_0x3bf7b2);}else{_0x27bff2[_0x31e1('0x3a')](_0x27bff2[_0x31e1('0x4a')][_0x3bf7b2['id']],_0x3bf7b2);}}}return _0x27bff2['sugarcrmAccounts'];};};Realtime[_0x31e1('0x39')][_0x31e1('0x4b')]=function(){var _0x265009=this;return function(_0x48bb52){if(_0x48bb52){freeIsNotKey(_0x48bb52,_0x265009['vtigerAccounts'],'id');for(var _0x5ba6c9=0x0,_0x34c4ee={},_0x240fba={};_0x5ba6c9<_0x48bb52['length'];_0x5ba6c9+=0x1){_0x34c4ee=_0x48bb52[_0x5ba6c9];if(_[_0x31e1('0x40')](_0x265009[_0x31e1('0x20')][_0x34c4ee['id']])){_0x265009['vtigerAccounts'][_0x34c4ee['id']]=new VtigerAccount(_0x34c4ee);}else{_0x265009[_0x31e1('0x3a')](_0x265009[_0x31e1('0x20')][_0x34c4ee['id']],_0x34c4ee);}}}return _0x265009['vtigerAccounts'];};};Realtime[_0x31e1('0x39')][_0x31e1('0x4c')]=function(){var _0x42735d=this;return function(_0x12ac00){if(_0x12ac00){freeIsNotKey(_0x12ac00,_0x42735d[_0x31e1('0x21')],'id');for(var _0x304d79=0x0,_0x5d2bb9={},_0x3e15dd={};_0x304d79<_0x12ac00['length'];_0x304d79+=0x1){_0x5d2bb9=_0x12ac00[_0x304d79];if(_['isUndefined'](_0x42735d['servicenowAccounts'][_0x5d2bb9['id']])){_0x42735d[_0x31e1('0x21')][_0x5d2bb9['id']]=new ServicenowAccount(_0x5d2bb9);}else{_0x42735d[_0x31e1('0x3a')](_0x42735d['servicenowAccounts'][_0x5d2bb9['id']],_0x5d2bb9);}}}return _0x42735d[_0x31e1('0x21')];};};Realtime[_0x31e1('0x39')]['initDynamics365Accounts']=function(){var _0x40aaec=this;return function(_0xa81429){if(_0xa81429){freeIsNotKey(_0xa81429,_0x40aaec['dynamics365Accounts'],'id');for(var _0x4e801a=0x0,_0x1e100e={},_0x3f624e={};_0x4e801a<_0xa81429[_0x31e1('0x3c')];_0x4e801a+=0x1){_0x1e100e=_0xa81429[_0x4e801a];if(_['isUndefined'](_0x40aaec[_0x31e1('0x22')][_0x1e100e['id']])){_0x40aaec[_0x31e1('0x22')][_0x1e100e['id']]=new Dynamics365Account(_0x1e100e);}else{_0x40aaec[_0x31e1('0x3a')](_0x40aaec[_0x31e1('0x22')][_0x1e100e['id']],_0x1e100e);}}}return _0x40aaec[_0x31e1('0x22')];};};Realtime[_0x31e1('0x39')]['initFreshsalesAccounts']=function(){var _0x8dc9f9=this;return function(_0x188ca8){if(_0x188ca8){freeIsNotKey(_0x188ca8,_0x8dc9f9[_0x31e1('0x23')],'id');for(var _0x21dfcd=0x0,_0x16bfe8={},_0x4e87d9={};_0x21dfcd<_0x188ca8[_0x31e1('0x3c')];_0x21dfcd+=0x1){_0x16bfe8=_0x188ca8[_0x21dfcd];if(_[_0x31e1('0x40')](_0x8dc9f9[_0x31e1('0x23')][_0x16bfe8['id']])){_0x8dc9f9[_0x31e1('0x23')][_0x16bfe8['id']]=new FreshsalesAccount(_0x16bfe8);}else{_0x8dc9f9[_0x31e1('0x3a')](_0x8dc9f9[_0x31e1('0x23')][_0x16bfe8['id']],_0x16bfe8);}}}return _0x8dc9f9[_0x31e1('0x23')];};};Realtime[_0x31e1('0x39')]['initVoiceQueueHopperHistory']=function(){var _0x17fdba=this;return function(_0x3471f1){for(var _0x3f24a3=0x0;_0x3f24a3<_0x3471f1[_0x31e1('0x3c')];_0x3f24a3+=0x1){_[_0x31e1('0x4d')](_0x17fdba['voiceQueues'][_0x3471f1[_0x3f24a3][_0x31e1('0x29')]],_0x3471f1[_0x3f24a3]);}return _0x17fdba[_0x31e1('0x41')];};};Realtime[_0x31e1('0x39')][_0x31e1('0x4e')]=function(){var _0x2736bf=this;return function(_0x1c4b71){clearVoiceQueues(_0x2736bf[_0x31e1('0x41')]);if(_0x1c4b71){_0x1c4b71=_[_0x31e1('0x4f')](_0x1c4b71,_0x31e1('0x50'));for(var _0x3f7417 in _0x1c4b71){if(_0x1c4b71[_0x31e1('0x26')](_0x3f7417)){var _0x3938d1={};for(var _0x595dfb=0x0;_0x595dfb<_0x1c4b71[_0x3f7417]['length'];_0x595dfb+=0x1){var _0x5080e3=_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x51')];if(_0x2736bf['voiceQueues'][_0x5080e3]){if(_0x1c4b71[_0x3f7417][_0x595dfb]['queuecallerexit']){_0x2736bf['voiceQueues'][_0x5080e3][_0x31e1('0x52')]+=0x1;}if(_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x53')]){_0x2736bf[_0x31e1('0x41')][_0x5080e3]['abandoned']+=0x1;}_0x2736bf[_0x31e1('0x41')][_0x5080e3][_0x31e1('0x2f')]+=moment(_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x54')])['diff'](moment(_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x55')]),'seconds')||0x0;if(_0x595dfb===_0x1c4b71[_0x3f7417][_0x31e1('0x3c')]-0x1){_0x2736bf[_0x31e1('0x41')][_0x5080e3][_0x31e1('0x2c')]+=moment(_0x1c4b71[_0x3f7417][_0x595dfb]['queuecallercompleteAt']||_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x56')]||_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x57')])[_0x31e1('0x58')](moment(_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x55')]),'seconds')||0x0;_0x2736bf[_0x31e1('0x41')][_0x5080e3][_0x31e1('0x2b')]+=0x1;if(_0x1c4b71[_0x3f7417][_0x595dfb][_0x31e1('0x59')]){_0x2736bf['voiceQueues'][_0x5080e3][_0x31e1('0x5a')]+=0x1;_0x2736bf[_0x31e1('0x41')][_0x5080e3][_0x31e1('0x30')]+=moment(_0x1c4b71[_0x3f7417][_0x595dfb]['queuecallercompleteAt'])['diff'](moment(_0x1c4b71[_0x3f7417][_0x595dfb]['queuecallerleaveAt']),_0x31e1('0x5b'))||0x0;}}else{_0x2736bf[_0x31e1('0x41')][_0x5080e3][_0x31e1('0x2c')]+=_0x2736bf[_0x31e1('0x41')][_0x5080e3][_0x31e1('0x2f')]||0x0;}}}}}}return _0x2736bf[_0x31e1('0x41')];};};Realtime[_0x31e1('0x39')]['initVoiceCallReports']=function(){var _0x53e904=this;return function(_0x5a7a64){clearVoiceCallReports(_0x53e904[_0x31e1('0x17')]);if(_0x5a7a64){for(var _0x389c20=0x0;_0x389c20<_0x5a7a64[_0x31e1('0x3c')];_0x389c20+=0x1){_0x53e904['outbound']['total']+=0x1;_0x53e904['outbound'][_0x31e1('0x2c')]+=_0x5a7a64[_0x389c20]['duration'];if(_0x5a7a64[_0x389c20][_0x31e1('0x5c')]===_0x31e1('0x5d')){_0x53e904[_0x31e1('0x17')][_0x31e1('0x5a')]+=0x1;_0x53e904[_0x31e1('0x17')][_0x31e1('0x2f')]+=_0x5a7a64[_0x389c20][_0x31e1('0x5e')]-_0x5a7a64[_0x389c20][_0x31e1('0x5f')]||0x0;_0x53e904[_0x31e1('0x17')][_0x31e1('0x30')]+=_0x5a7a64[_0x389c20][_0x31e1('0x5f')];}}}return _0x53e904['outbound'];};};Realtime[_0x31e1('0x39')]['initCampaigns']=function(){var _0x331e82=this;return function(_0x505244){if(_0x505244){freeIsNotKey(_0x505244,_0x331e82[_0x31e1('0x15')],_0x31e1('0x29'));for(var _0x326a56=0x0,_0x45129b={};_0x326a56<_0x505244[_0x31e1('0x3c')];_0x326a56+=0x1){_0x45129b=_0x505244[_0x326a56];if(_[_0x31e1('0x40')](_0x331e82[_0x31e1('0x15')][_0x45129b[_0x31e1('0x29')]])){_0x331e82['campaigns'][_0x45129b['name']]=new Campaign(_0x45129b);}else{_0x331e82['mergeFromDatabase'](_0x331e82[_0x31e1('0x15')][_0x45129b[_0x31e1('0x29')]],_0x45129b);_0x331e82[_0x31e1('0x15')][_0x45129b[_0x31e1('0x29')]][_0x31e1('0x60')]=_0x45129b[_0x31e1('0x61')]?_0x45129b['SquareProject']['name']:undefined;}}}return _0x331e82['campaigns'];};};Realtime[_0x31e1('0x39')][_0x31e1('0x62')]=function(){var _0x44f2f5=this;return function(_0x1df994){if(_0x1df994){freeIsNotKey(_0x1df994,_0x44f2f5[_0x31e1('0x18')],'id');for(var _0x3e9045=0x0,_0x2b912c={};_0x3e9045<_0x1df994[_0x31e1('0x3c')];_0x3e9045+=0x1){_0x2b912c=_0x1df994[_0x3e9045];if(_[_0x31e1('0x40')](_0x44f2f5[_0x31e1('0x18')][_0x2b912c['id']])){_0x44f2f5[_0x31e1('0x18')][_0x2b912c['id']]=new VoiceExtension(_0x2b912c);}else{_0x44f2f5[_0x31e1('0x3a')](_0x44f2f5['voiceExtensions'][_0x2b912c['id']],_0x2b912c);}}}return _0x44f2f5['voiceExtensions'];};};Realtime[_0x31e1('0x39')][_0x31e1('0x63')]=function(){var _0x36259e=this;return function(_0x6bcbf1){clearCampaigns(_0x36259e[_0x31e1('0x15')]);for(var _0x371fbd=0x0;_0x371fbd<_0x6bcbf1[_0x31e1('0x3c')];_0x371fbd+=0x1){_[_0x31e1('0x4d')](_0x36259e['campaigns'][_0x6bcbf1[_0x371fbd][_0x31e1('0x29')]],_0x6bcbf1[_0x371fbd]);}return _0x36259e[_0x31e1('0x15')];};};Realtime[_0x31e1('0x39')]['initFaxAccounts']=function(){var _0x123581=this;return function(_0x37aba4){if(_0x37aba4){freeIsNotKey(_0x37aba4,_0x123581['faxAccounts'],'id');for(var _0x4b0e23=0x0,_0x2358e5={},_0x1364c3={};_0x4b0e23<_0x37aba4[_0x31e1('0x3c')];_0x4b0e23+=0x1){_0x2358e5=_0x37aba4[_0x4b0e23];if(_[_0x31e1('0x40')](_0x123581[_0x31e1('0x24')][_0x2358e5['id']])){_0x123581[_0x31e1('0x24')][_0x2358e5['id']]=new FaxAccount(_0x2358e5);}else{_0x123581[_0x31e1('0x3a')](_0x123581[_0x31e1('0x24')][_0x2358e5['id']],_0x2358e5);}}}return _0x123581[_0x31e1('0x24')];};};module[_0x31e1('0x64')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe667=['from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','disposition','ANSWERED','\x22%s\x22\x20<%s>','transfers','linkedid','transfereelinkedid','uniqueid','monitors','monitorFilename','filename','createdAt','calleridname','connectedlinename','membername','exten','xcally-motion-dialer','isArray','forEach','startsWith','Local','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','realtime','xdr','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','find','accountcode','name','isNil','interface','SIP/%s','length','findAgent','connectedlinenum','lastAssignedTo','format','queuecallercompleteAt','create','match','destination','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid'];(function(_0x25d386,_0x108d0d){var _0x857f4a=function(_0x3eb98d){while(--_0x3eb98d){_0x25d386['push'](_0x25d386['shift']());}};_0x857f4a(++_0x108d0d);}(_0xe667,0x17c));var _0x7e66=function(_0x591f36,_0xd55955){_0x591f36=_0x591f36-0x0;var _0x1b969f=_0xe667[_0x591f36];return _0x1b969f;};'use strict';var _=require('lodash');var moment=require(_0x7e66('0x0'));var util=require(_0x7e66('0x1'));var config=require(_0x7e66('0x2'));var ami=require(_0x7e66('0x3'));var RpcVoiceAgentReport=require(_0x7e66('0x4'));var RpcVoiceCallReport=require(_0x7e66('0x5'));var RpcVoiceDialReport=require(_0x7e66('0x6'));var RpcMemberReport=require(_0x7e66('0x7'));var RpcVoiceQueueReport=require(_0x7e66('0x8'));var RpcVoiceRecording=require(_0x7e66('0x9'));var RpcVoiceTransferReport=require(_0x7e66('0xa'));var VoiceQueueReport=require(_0x7e66('0xb'));var VoiceCallReport=require(_0x7e66('0xc'));var VoiceAgentReport=require(_0x7e66('0xd'));var VoiceDialReport=require(_0x7e66('0xe'));var UserReport=require(_0x7e66('0xf'));function Report(_0x19e707){this['realtime']=_0x19e707;this[_0x7e66('0x10')]=_0x19e707[_0x7e66('0x10')];this[_0x7e66('0x11')]=_0x19e707[_0x7e66('0x11')];}Report[_0x7e66('0x12')]['sync']=function(_0x23936f){var _0x4106d7=new VoiceQueueReport(this[_0x7e66('0x13')]);var _0x4f6c68=new VoiceAgentReport(this['realtime']);var _0x5ea0f4=new VoiceDialReport(this[_0x7e66('0x13')]);var _0x7755cd=new VoiceCallReport(this['realtime']);var _0x4b62e0=new UserReport(this[_0x7e66('0x13')]);if(config[_0x7e66('0x14')]&&config[_0x7e66('0x14')]['disabled']){ami['on'](_0x7e66('0x15'),this[_0x7e66('0x16')][_0x7e66('0x17')](this));ami['on'](_0x7e66('0x18'),this['voiceCallReport'][_0x7e66('0x17')](this));ami['on']('custom:voiceAgentReport',this[_0x7e66('0x19')][_0x7e66('0x17')](this));ami['on'](_0x7e66('0x1a'),this[_0x7e66('0x1b')]['bind'](this));ami['on'](_0x7e66('0x1c'),this[_0x7e66('0x1d')][_0x7e66('0x17')](this));ami['on'](_0x7e66('0x1e'),this[_0x7e66('0x1f')][_0x7e66('0x17')](this));}};Report[_0x7e66('0x12')]['findAgent']=function(_0x3ab58b){var _0xc94ca8;_0xc94ca8=_[_0x7e66('0x20')](this['agents'],function(_0x3f2b67){return _0x3f2b67[_0x7e66('0x21')]==_0x3ab58b||_0x3f2b67[_0x7e66('0x22')]==_0x3ab58b;});if(_[_0x7e66('0x23')](_0xc94ca8)){var _0x248661=_[_0x7e66('0x20')](this[_0x7e66('0x11')],function(_0x1b4175){return _0x1b4175[_0x7e66('0x21')]==_0x3ab58b||_0x1b4175[_0x7e66('0x22')]==_0x3ab58b;});if(_0x248661){_0xc94ca8=_[_0x7e66('0x20')](this[_0x7e66('0x10')],function(_0x4e08df){return _0x4e08df[_0x7e66('0x24')]==util['format'](_0x7e66('0x25'),_0x248661[_0x7e66('0x22')]);});}}return _0xc94ca8;};Report[_0x7e66('0x12')][_0x7e66('0x16')]=function(_0x5cb002){for(var _0x16aab2=0x0;_0x16aab2<_0x5cb002[_0x7e66('0x26')];_0x16aab2+=0x1){var _0x17d7e0=this[_0x7e66('0x27')](_0x5cb002[_0x16aab2][_0x7e66('0x28')]);if(_0x17d7e0){_0x5cb002[_0x16aab2][_0x7e66('0x21')]=_0x17d7e0[_0x7e66('0x21')];_0x5cb002[_0x16aab2]['assigned']=!![];_0x5cb002[_0x16aab2][_0x7e66('0x29')]=_0x17d7e0['name'];_0x5cb002[_0x16aab2][_0x7e66('0x24')]=_[_0x7e66('0x23')](_0x17d7e0[_0x7e66('0x24')])?util[_0x7e66('0x2a')](_0x7e66('0x25'),_0x17d7e0[_0x7e66('0x22')]):_0x17d7e0['interface'];if(_0x5cb002[_0x16aab2]['queuecallercomplete']){_0x5cb002[_0x16aab2][_0x7e66('0x2b')]=moment()[_0x7e66('0x2a')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x5cb002[_0x16aab2]['queuecallerexit']){_0x5cb002[_0x16aab2]['queuecallerexitAt']=moment()[_0x7e66('0x2a')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x7e66('0x16')](_0x5cb002[_0x16aab2]);}RpcVoiceQueueReport[_0x7e66('0x2c')](_0x5cb002[_0x16aab2]);}};function extractCalleridNumber(_0x1415ef){var _0x1db164=_0x1415ef[_0x7e66('0x2d')](/<(.*?)>/);return _0x1db164?_0x1db164[0x1]:_0x1415ef;}Report['prototype']['voiceCallReport']=function(_0x281e12){_0x281e12[_0x7e66('0x2e')]=_0x281e12['destination']||_0x281e12['exten'];if(_0x281e12[_0x7e66('0x2f')]==_0x7e66('0x30')){_0x281e12[_0x7e66('0x31')]=_0x7e66('0x32');_0x281e12[_0x7e66('0x33')]=_0x281e12[_0x7e66('0x32')];if(_0x281e12[_0x7e66('0x34')]==_0x7e66('0x35')){_0x281e12[_0x7e66('0x21')]='';_0x281e12[_0x7e66('0x2e')]=extractCalleridNumber(_0x281e12[_0x7e66('0x36')]);}else if(_0x281e12[_0x7e66('0x34')]==_0x7e66('0x37')){if(_0x281e12[_0x7e66('0x2e')]==_0x7e66('0x38')){_0x281e12[_0x7e66('0x2e')]=extractCalleridNumber(_0x281e12[_0x7e66('0x39')]);_0x281e12[_0x7e66('0x3a')]=_0x281e12[_0x7e66('0x3b')];_0x281e12[_0x7e66('0x3c')]=[_0x281e12[_0x7e66('0x3d')],_0x281e12[_0x7e66('0x3d')]=_0x281e12[_0x7e66('0x3c')]][0x0];_0x281e12[_0x7e66('0x36')]=_0x281e12[_0x7e66('0x39')];}else{_0x281e12[_0x7e66('0x2e')]=_0x281e12[_0x7e66('0x3a')];_0x281e12[_0x7e66('0x3a')]=_0x281e12[_0x7e66('0x3b')];if(_0x281e12[_0x7e66('0x3e')]==_0x7e66('0x3f')){_0x281e12[_0x7e66('0x21')]=_0x281e12['connectedlinenum'];}else{_0x281e12['accountcode']='';}}}}else{_0x281e12[_0x7e66('0x36')]=util[_0x7e66('0x2a')](_0x7e66('0x40'),_0x281e12['calleridname'],_0x281e12['calleridnum']);}if(RpcVoiceTransferReport[_0x7e66('0x41')][_0x281e12[_0x7e66('0x42')]]){var _0x466b79=RpcVoiceTransferReport[_0x7e66('0x41')][_0x281e12[_0x7e66('0x42')]];_0x466b79[_0x7e66('0x43')]=_0x281e12[_0x7e66('0x44')];RpcVoiceTransferReport[_0x7e66('0x1d')](_0x466b79);delete RpcVoiceTransferReport[_0x7e66('0x41')][_0x281e12[_0x7e66('0x42')]];}RpcVoiceCallReport[_0x7e66('0x2c')](_0x281e12);if(_0x281e12['monitor']){for(var _0x319e99=0x0;_0x319e99<_0x281e12[_0x7e66('0x45')][_0x7e66('0x26')];_0x319e99+=0x1){_0x281e12[_0x7e66('0x46')]=_0x281e12['monitors'][_0x319e99][_0x7e66('0x47')];_0x281e12[_0x7e66('0x48')]=_0x281e12[_0x7e66('0x45')][_0x319e99][_0x7e66('0x48')];if(_0x281e12['exten']==_0x7e66('0x38')){_0x281e12[_0x7e66('0x3a')]=_0x281e12[_0x7e66('0x28')];_0x281e12[_0x7e66('0x49')]=_0x281e12['connectedlinename'];_0x281e12[_0x7e66('0x28')]=_0x281e12['accountcode'];_0x281e12[_0x7e66('0x4a')]=_0x281e12[_0x7e66('0x4b')];_0x281e12[_0x7e66('0x4c')]=_0x281e12['originatecalleridnum'];}else if(_0x281e12['exten']==_0x7e66('0x4d')){_0x281e12['calleridnum']=_0x281e12[_0x7e66('0x2e')];_0x281e12[_0x7e66('0x4c')]=_0x281e12[_0x7e66('0x3b')];}RpcVoiceRecording['create'](_0x281e12);}}};Report[_0x7e66('0x12')][_0x7e66('0x19')]=function(_0x75f3c1){if(_[_0x7e66('0x4e')](_0x75f3c1)){_0x75f3c1[_0x7e66('0x4f')](function(_0x3696b9){RpcVoiceAgentReport['create'](_0x3696b9);});}else{RpcVoiceAgentReport[_0x7e66('0x2c')](_0x75f3c1);}};Report[_0x7e66('0x12')][_0x7e66('0x1b')]=function(_0x28c6d3){RpcVoiceDialReport[_0x7e66('0x2c')](_0x28c6d3);var _0xdc1e7c;var _0x5730e1;var _0x13d25a=_0x28c6d3['channel'];if(_[_0x7e66('0x50')](_0x13d25a,_0x7e66('0x51'))){_0x5730e1=_0x13d25a['substring'](_0x13d25a[_0x7e66('0x52')]('/')+0x1,_0x13d25a[_0x7e66('0x52')]('@'));_0xdc1e7c=_[_0x7e66('0x20')](this['agents'],function(_0x2465a3){return _0x2465a3[_0x7e66('0x53')]==_0x5730e1||_0x2465a3[_0x7e66('0x54')]==_0x5730e1||_0x2465a3[_0x7e66('0x21')]==_0x5730e1;});}else{_0x5730e1=_0x13d25a['substring'](_0x13d25a[_0x7e66('0x52')]('/')+0x1,_0x13d25a[_0x7e66('0x55')]('-'));_0xdc1e7c=this[_0x7e66('0x27')](_0x5730e1);}if(_0xdc1e7c){_0x28c6d3[_0x7e66('0x24')]=_[_0x7e66('0x23')](_0xdc1e7c['interface'])?util['format'](_0x7e66('0x25'),_0xdc1e7c['name']):_0xdc1e7c['interface'];_0x28c6d3[_0x7e66('0x4b')]=_0xdc1e7c[_0x7e66('0x22')];_0x28c6d3['accountcode']=_0xdc1e7c[_0x7e66('0x21')];RpcMemberReport[_0x7e66('0x1b')](_0x28c6d3);}};Report[_0x7e66('0x12')][_0x7e66('0x1d')]=function(_0x19facd){RpcVoiceTransferReport['transfers'][_0x19facd[_0x7e66('0x56')]]=_0x19facd;};Report[_0x7e66('0x12')][_0x7e66('0x1f')]=function(_0x2a6443){RpcVoiceTransferReport[_0x7e66('0x1f')](_0x2a6443);};module['exports']=Report;
\ No newline at end of file
+var _0x2acf=['../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','prototype','findAgent','accountcode','name','find','interface','format','SIP/%s','length','connectedlinenum','assigned','isNil','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','match','destination','exten','type','dialer','queue','lastdata','from-voip-provider','callerid','calleridnum','destinationchannel','channel','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','create','monitors','monitorFilename','filename','createdAt','xcally-motion-preview','connectedlinename','membername','originatecalleridnum','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','attendedTransfer','exports','lodash'];(function(_0x5303c1,_0x4f655c){var _0x210a57=function(_0x2512b6){while(--_0x2512b6){_0x5303c1['push'](_0x5303c1['shift']());}};_0x210a57(++_0x4f655c);}(_0x2acf,0x1a8));var _0xf2ac=function(_0x2dd390,_0x1bc894){_0x2dd390=_0x2dd390-0x0;var _0x3afe47=_0x2acf[_0x2dd390];return _0x3afe47;};'use strict';var _=require(_0xf2ac('0x0'));var moment=require('moment');var util=require('util');var config=require('../../../config/environment');var ami=require(_0xf2ac('0x1'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xf2ac('0x2'));var RpcVoiceDialReport=require(_0xf2ac('0x3'));var RpcMemberReport=require(_0xf2ac('0x4'));var RpcVoiceQueueReport=require(_0xf2ac('0x5'));var RpcVoiceRecording=require(_0xf2ac('0x6'));var RpcVoiceTransferReport=require(_0xf2ac('0x7'));var VoiceQueueReport=require(_0xf2ac('0x8'));var VoiceCallReport=require(_0xf2ac('0x9'));var VoiceAgentReport=require(_0xf2ac('0xa'));var VoiceDialReport=require(_0xf2ac('0xb'));var UserReport=require(_0xf2ac('0xc'));function Report(_0x2b6ad9){this[_0xf2ac('0xd')]=_0x2b6ad9;this[_0xf2ac('0xe')]=_0x2b6ad9[_0xf2ac('0xe')];this['telephones']=_0x2b6ad9[_0xf2ac('0xf')];}Report['prototype'][_0xf2ac('0x10')]=function(_0x443934){var _0x22f092=new VoiceQueueReport(this['realtime']);var _0x200a09=new VoiceAgentReport(this[_0xf2ac('0xd')]);var _0x43e928=new VoiceDialReport(this[_0xf2ac('0xd')]);var _0x34631a=new VoiceCallReport(this[_0xf2ac('0xd')]);var _0x16ade5=new UserReport(this[_0xf2ac('0xd')]);if(config[_0xf2ac('0x11')]&&config[_0xf2ac('0x11')][_0xf2ac('0x12')]){ami['on'](_0xf2ac('0x13'),this[_0xf2ac('0x14')][_0xf2ac('0x15')](this));ami['on'](_0xf2ac('0x16'),this[_0xf2ac('0x17')][_0xf2ac('0x15')](this));ami['on']('custom:voiceAgentReport',this[_0xf2ac('0x18')][_0xf2ac('0x15')](this));ami['on'](_0xf2ac('0x19'),this[_0xf2ac('0x1a')][_0xf2ac('0x15')](this));ami['on']('blindtransfer',this[_0xf2ac('0x1b')][_0xf2ac('0x15')](this));ami['on'](_0xf2ac('0x1c'),this['attendedTransfer'][_0xf2ac('0x15')](this));}};Report[_0xf2ac('0x1d')][_0xf2ac('0x1e')]=function(_0x1d4143){var _0x412d7b;_0x412d7b=_['find'](this['agents'],function(_0x4ce149){return _0x4ce149[_0xf2ac('0x1f')]==_0x1d4143||_0x4ce149[_0xf2ac('0x20')]==_0x1d4143;});if(_['isNil'](_0x412d7b)){var _0x327076=_['find'](this[_0xf2ac('0xf')],function(_0x2ab229){return _0x2ab229[_0xf2ac('0x1f')]==_0x1d4143||_0x2ab229[_0xf2ac('0x20')]==_0x1d4143;});if(_0x327076){_0x412d7b=_[_0xf2ac('0x21')](this[_0xf2ac('0xe')],function(_0x343d38){return _0x343d38[_0xf2ac('0x22')]==util[_0xf2ac('0x23')](_0xf2ac('0x24'),_0x327076[_0xf2ac('0x20')]);});}}return _0x412d7b;};Report[_0xf2ac('0x1d')]['voiceQueueReport']=function(_0xd27411){for(var _0x48a6dc=0x0;_0x48a6dc<_0xd27411[_0xf2ac('0x25')];_0x48a6dc+=0x1){var _0x3a4575=this['findAgent'](_0xd27411[_0x48a6dc][_0xf2ac('0x26')]);if(_0x3a4575){_0xd27411[_0x48a6dc]['accountcode']=_0x3a4575[_0xf2ac('0x1f')];_0xd27411[_0x48a6dc][_0xf2ac('0x27')]=!![];_0xd27411[_0x48a6dc]['lastAssignedTo']=_0x3a4575[_0xf2ac('0x20')];_0xd27411[_0x48a6dc][_0xf2ac('0x22')]=_[_0xf2ac('0x28')](_0x3a4575[_0xf2ac('0x22')])?util[_0xf2ac('0x23')](_0xf2ac('0x24'),_0x3a4575[_0xf2ac('0x20')]):_0x3a4575[_0xf2ac('0x22')];if(_0xd27411[_0x48a6dc]['queuecallercomplete']){_0xd27411[_0x48a6dc][_0xf2ac('0x29')]=moment()[_0xf2ac('0x23')](_0xf2ac('0x2a'));}if(_0xd27411[_0x48a6dc][_0xf2ac('0x2b')]){_0xd27411[_0x48a6dc]['queuecallerexitAt']=moment()[_0xf2ac('0x23')](_0xf2ac('0x2a'));}RpcMemberReport[_0xf2ac('0x14')](_0xd27411[_0x48a6dc]);}RpcVoiceQueueReport['create'](_0xd27411[_0x48a6dc]);}};function extractCalleridNumber(_0x2a23ca){var _0x1595b6=_0x2a23ca[_0xf2ac('0x2c')](/<(.*?)>/);return _0x1595b6?_0x1595b6[0x1]:_0x2a23ca;}Report['prototype'][_0xf2ac('0x17')]=function(_0x39b872){_0x39b872[_0xf2ac('0x2d')]=_0x39b872[_0xf2ac('0x2d')]||_0x39b872[_0xf2ac('0x2e')];if(_0x39b872[_0xf2ac('0x2f')]==_0xf2ac('0x30')){_0x39b872['lastapplication']=_0xf2ac('0x31');_0x39b872[_0xf2ac('0x32')]=_0x39b872[_0xf2ac('0x31')];if(_0x39b872['context']==_0xf2ac('0x33')){_0x39b872['accountcode']='';_0x39b872[_0xf2ac('0x2d')]=extractCalleridNumber(_0x39b872[_0xf2ac('0x34')]);}else if(_0x39b872['context']=='from-sip'){if(_0x39b872['destination']=='xcally-motion-preview'){_0x39b872[_0xf2ac('0x2d')]=extractCalleridNumber(_0x39b872['calleridpreview']);_0x39b872[_0xf2ac('0x35')]=_0x39b872['originatecalleridnum'];_0x39b872[_0xf2ac('0x36')]=[_0x39b872[_0xf2ac('0x37')],_0x39b872[_0xf2ac('0x37')]=_0x39b872[_0xf2ac('0x36')]][0x0];_0x39b872[_0xf2ac('0x34')]=_0x39b872['calleridpreview'];}else{_0x39b872[_0xf2ac('0x2d')]=_0x39b872[_0xf2ac('0x35')];_0x39b872[_0xf2ac('0x35')]=_0x39b872['originatecalleridnum'];if(_0x39b872[_0xf2ac('0x38')]==_0xf2ac('0x39')){_0x39b872['accountcode']=_0x39b872[_0xf2ac('0x26')];}else{_0x39b872[_0xf2ac('0x1f')]='';}}}}else{_0x39b872['callerid']=util['format'](_0xf2ac('0x3a'),_0x39b872[_0xf2ac('0x3b')],_0x39b872[_0xf2ac('0x35')]);}if(RpcVoiceTransferReport[_0xf2ac('0x3c')][_0x39b872['linkedid']]){var _0x3dec68=RpcVoiceTransferReport['transfers'][_0x39b872[_0xf2ac('0x3d')]];_0x3dec68[_0xf2ac('0x3e')]=_0x39b872[_0xf2ac('0x3f')];RpcVoiceTransferReport['blindTransfer'](_0x3dec68);delete RpcVoiceTransferReport[_0xf2ac('0x3c')][_0x39b872[_0xf2ac('0x3d')]];}RpcVoiceCallReport[_0xf2ac('0x40')](_0x39b872);if(_0x39b872['monitor']){for(var _0x4257a0=0x0;_0x4257a0<_0x39b872[_0xf2ac('0x41')][_0xf2ac('0x25')];_0x4257a0+=0x1){_0x39b872[_0xf2ac('0x42')]=_0x39b872[_0xf2ac('0x41')][_0x4257a0][_0xf2ac('0x43')];_0x39b872[_0xf2ac('0x44')]=_0x39b872[_0xf2ac('0x41')][_0x4257a0][_0xf2ac('0x44')];if(_0x39b872['exten']==_0xf2ac('0x45')){_0x39b872[_0xf2ac('0x35')]=_0x39b872[_0xf2ac('0x26')];_0x39b872[_0xf2ac('0x3b')]=_0x39b872[_0xf2ac('0x46')];_0x39b872[_0xf2ac('0x26')]=_0x39b872[_0xf2ac('0x1f')];_0x39b872[_0xf2ac('0x46')]=_0x39b872[_0xf2ac('0x47')];_0x39b872[_0xf2ac('0x2e')]=_0x39b872[_0xf2ac('0x48')];}else if(_0x39b872[_0xf2ac('0x2e')]=='xcally-motion-dialer'){_0x39b872['calleridnum']=_0x39b872[_0xf2ac('0x2d')];_0x39b872[_0xf2ac('0x2e')]=_0x39b872['originatecalleridnum'];}RpcVoiceRecording['create'](_0x39b872);}}};Report[_0xf2ac('0x1d')][_0xf2ac('0x18')]=function(_0x31fdd0){if(_[_0xf2ac('0x49')](_0x31fdd0)){_0x31fdd0[_0xf2ac('0x4a')](function(_0x2b6d5e){RpcVoiceAgentReport[_0xf2ac('0x40')](_0x2b6d5e);});}else{RpcVoiceAgentReport[_0xf2ac('0x40')](_0x31fdd0);}};Report['prototype'][_0xf2ac('0x1a')]=function(_0x5370cb){RpcVoiceDialReport[_0xf2ac('0x40')](_0x5370cb);var _0x3a31a6;var _0xb8edca;var _0x23178d=_0x5370cb[_0xf2ac('0x37')];if(_[_0xf2ac('0x4b')](_0x23178d,_0xf2ac('0x4c'))){_0xb8edca=_0x23178d[_0xf2ac('0x4d')](_0x23178d[_0xf2ac('0x4e')]('/')+0x1,_0x23178d['indexOf']('@'));_0x3a31a6=_[_0xf2ac('0x21')](this[_0xf2ac('0xe')],function(_0x22a3f2){return _0x22a3f2[_0xf2ac('0x4f')]==_0xb8edca||_0x22a3f2[_0xf2ac('0x50')]==_0xb8edca||_0x22a3f2[_0xf2ac('0x1f')]==_0xb8edca;});}else{_0xb8edca=_0x23178d['substring'](_0x23178d[_0xf2ac('0x4e')]('/')+0x1,_0x23178d[_0xf2ac('0x51')]('-'));_0x3a31a6=this[_0xf2ac('0x1e')](_0xb8edca);}if(_0x3a31a6){_0x5370cb[_0xf2ac('0x22')]=_[_0xf2ac('0x28')](_0x3a31a6[_0xf2ac('0x22')])?util['format']('SIP/%s',_0x3a31a6[_0xf2ac('0x20')]):_0x3a31a6[_0xf2ac('0x22')];_0x5370cb[_0xf2ac('0x47')]=_0x3a31a6[_0xf2ac('0x20')];_0x5370cb['accountcode']=_0x3a31a6[_0xf2ac('0x1f')];RpcMemberReport[_0xf2ac('0x1a')](_0x5370cb);}};Report[_0xf2ac('0x1d')][_0xf2ac('0x1b')]=function(_0x1273f5){RpcVoiceTransferReport[_0xf2ac('0x3c')][_0x1273f5[_0xf2ac('0x52')]]=_0x1273f5;};Report[_0xf2ac('0x1d')][_0xf2ac('0x53')]=function(_0x5cfdc2){RpcVoiceTransferReport[_0xf2ac('0x53')](_0x5cfdc2);};module[_0xf2ac('0x54')]=Report;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a03=['name','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','phone','accountcode','syncPeerStatus','peerstatus','peer','address','[userReport][peerstatus]','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','status','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','bind','registry','syncRegistry','devicestatechange','syncRealtimeShow','resolve','then','actionSipShowRegistry','[userReport][sipshowregistry]','inspect','actionDeviceStateList','catch','error','[userReport][devicestatelist]','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','event','actionid','format','trunk:%s','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:'];(function(_0x31e882,_0x2679e3){var _0x454198=function(_0x2994cf){while(--_0x2994cf){_0x31e882['push'](_0x31e882['shift']());}};_0x454198(++_0x2679e3);}(_0x3a03,0x19e));var _0x33a0=function(_0x3708e4,_0x5a4045){_0x3708e4=_0x3708e4-0x0;var _0xe9966b=_0x3a03[_0x3708e4];return _0xe9966b;};'use strict';var _=require(_0x33a0('0x0'));var moment=require(_0x33a0('0x1'));var util=require(_0x33a0('0x2'));var Redis=require(_0x33a0('0x3'));var BPromise=require('bluebird');var config=require(_0x33a0('0x4'));var logger=require(_0x33a0('0x5'))(_0x33a0('0x6'));var ami=require(_0x33a0('0x7'));config[_0x33a0('0x8')]=_[_0x33a0('0x9')](config['redis'],{'host':_0x33a0('0xa'),'port':0x18eb});var io=require(_0x33a0('0xb'))(new Redis(config[_0x33a0('0x8')]));function UserReport(_0x251561){this[_0x33a0('0xc')]=_0x251561['trunks'];this[_0x33a0('0xd')]=_0x251561['agents'];this['telephones']=_0x251561[_0x33a0('0xe')];ami['on'](_0x33a0('0xf'),this['syncRegistry'][_0x33a0('0x10')](this));ami['on'](_0x33a0('0x11'),this[_0x33a0('0x12')][_0x33a0('0x10')](this));ami['on'](_0x33a0('0x13'),this['syncDeviceState'][_0x33a0('0x10')](this));ami['on']('peerstatus',this['syncPeerStatus'][_0x33a0('0x10')](this));return this[_0x33a0('0x14')]();}function showSipRegistrations(){Promise[_0x33a0('0x15')]()[_0x33a0('0x16')](ami[_0x33a0('0x17')]())['catch'](function(_0x3b8280){logger['error'](_0x33a0('0x18'),util[_0x33a0('0x19')](_0x3b8280,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()[_0x33a0('0x16')](ami[_0x33a0('0x1a')]())[_0x33a0('0x1b')](function(_0x27183a){logger[_0x33a0('0x1c')](_0x33a0('0x1d'),util[_0x33a0('0x19')](_0x27183a,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x33a0('0x15')]()[_0x33a0('0x16')](ami['actionSipPeerStatus']())['catch'](function(_0x1e41fe){logger[_0x33a0('0x1c')](_0x33a0('0x1e'),util[_0x33a0('0x19')](_0x1e41fe,{'showHidden':![],'depth':null}));});}UserReport[_0x33a0('0x1f')]['syncRealtimeShow']=function(){setInterval(function(){BPromise[_0x33a0('0x15')]()[_0x33a0('0x16')](showSipRegistrations())['then'](listDeviceStates())[_0x33a0('0x16')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x33a0('0x20')]=function(_0xf1dbd5){return _0xf1dbd5!==null&&!_[_0x33a0('0x21')](_0xf1dbd5);};UserReport[_0x33a0('0x1f')]['emit']=function(_0x24826b,_0x5e3030,_0x3013aa){io['to'](_0x24826b)[_0x33a0('0x22')](_0x5e3030,_0x3013aa);};UserReport['prototype'][_0x33a0('0x12')]=function(_0x58329a){try{if(this[_0x33a0('0x20')](_0x58329a)){logger[_0x33a0('0x23')](_0x33a0('0x24'),_0x58329a[_0x33a0('0x25')],_0x58329a[_0x33a0('0x26')]);logger[_0x33a0('0x27')](_0x33a0('0x28'),util[_0x33a0('0x19')](_0x58329a,{'showHidden':![],'depth':null}));var _0x103904=_[_0x33a0('0x29')](this[_0x33a0('0xc')],{'defaultuser':_0x58329a[_0x33a0('0x25')]});if(_0x103904){_0x58329a[_0x33a0('0x2a')]=_0x58329a[_0x33a0('0x26')];_[_0x33a0('0x2b')](_0x103904,_[_0x33a0('0x2c')](_0x58329a,[_0x33a0('0x2d'),_0x33a0('0x2e'),_0x33a0('0x25'),'state']));logger[_0x33a0('0x27')]('[userReport][registry]\x20sending\x20trunk:save\x20event:',util['inspect'](_0x103904,{'showHidden':![],'depth':null}));this[_0x33a0('0x22')](util[_0x33a0('0x2f')](_0x33a0('0x30'),_0x103904['name']),_0x33a0('0x31'),_0x103904);}}}catch(_0x352ee9){logger[_0x33a0('0x1c')]('[userReport][registry]',util[_0x33a0('0x19')](_0x352ee9,{'showHidden':![],'depth':null}));}};UserReport[_0x33a0('0x1f')]['syncDeviceState']=function(_0x35f782){try{if(this[_0x33a0('0x20')](_0x35f782)){logger['info'](_0x33a0('0x32'),_0x35f782[_0x33a0('0x33')],_0x35f782['state']);logger[_0x33a0('0x27')](_0x33a0('0x34'),util[_0x33a0('0x19')](_0x35f782,{'showHidden':![],'depth':null}));if(this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]]){if(!this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x35')]||_0x35f782['state'][_0x33a0('0x36')]()==_0x33a0('0x37')){this['agents'][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x35')]=![];if(this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x26')]!==_0x35f782[_0x33a0('0x26')]['toLowerCase']()){this[_0x33a0('0xd')][_0x35f782['device']][_0x33a0('0x38')]=_[_0x33a0('0x39')](moment()[_0x33a0('0x2f')]('x'));}this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]]['state']=_0x35f782['state'][_0x33a0('0x36')]();this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x3a')](_0x35f782);}}else if(this['telephones'][_0x35f782[_0x33a0('0x33')]]){if(this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x26')]!==_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]()){this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x38')]=_[_0x33a0('0x39')](moment()['format']('x'));}this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x26')]=_0x35f782['state'][_0x33a0('0x36')]();logger[_0x33a0('0x27')](_0x33a0('0x3b'),util[_0x33a0('0x19')](this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]],{'showHidden':![],'depth':null}));this[_0x33a0('0x22')](util[_0x33a0('0x2f')]('telephone:%s',this[_0x33a0('0xe')][_0x35f782['device']][_0x33a0('0x3c')]),_0x33a0('0x3d'),this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]]);}else if(this[_0x33a0('0xc')][_0x35f782[_0x33a0('0x33')]]){if(this[_0x33a0('0xc')][_0x35f782['device']]['state']!==_0x35f782[_0x33a0('0x26')]['toLowerCase']()){this['trunks'][_0x35f782[_0x33a0('0x33')]]['stateTime']=_['toNumber'](moment()['format']('x'));}this[_0x33a0('0xc')][_0x35f782[_0x33a0('0x33')]]['state']=_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]();logger[_0x33a0('0x27')](_0x33a0('0x3e'),util[_0x33a0('0x19')](this['trunks'][_0x35f782['device']],{'showHidden':![],'depth':null}));this['emit'](util['format']('trunk:%s',this['trunks'][_0x35f782[_0x33a0('0x33')]]['name']),_0x33a0('0x31'),this[_0x33a0('0xc')][_0x35f782[_0x33a0('0x33')]]);}else if(_[_0x33a0('0x3f')](_0x35f782[_0x33a0('0x33')],_0x33a0('0x40'))){var _0x58b345=_0x35f782[_0x33a0('0x33')];var _0x13c5b5=_0x58b345[_0x33a0('0x41')](_0x58b345[_0x33a0('0x42')]('/')+0x1,_0x58b345['indexOf']('@'));var _0xd64d9d=_['find'](this[_0x33a0('0xd')],function(_0x57f0b1){return _0x57f0b1[_0x33a0('0x43')]==_0x13c5b5||_0x57f0b1[_0x33a0('0x44')]==_0x13c5b5||_0x57f0b1[_0x33a0('0x45')]==_0x13c5b5;});if(_0xd64d9d){if(_0xd64d9d['state']!==_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]()){_0xd64d9d[_0x33a0('0x38')]=_[_0x33a0('0x39')](moment()['format']('x'));}_0xd64d9d[_0x33a0('0x26')]=_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]();_0xd64d9d[_0x33a0('0x35')]=!![];_0xd64d9d[_0x33a0('0x3a')](_0x35f782);}}}}catch(_0x81b2e0){logger[_0x33a0('0x1c')]('[userReport][devicestatechange]',util[_0x33a0('0x19')](_0x81b2e0,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x33a0('0x46')]=function(_0x2b3e4e){try{if(this[_0x33a0('0x20')](_0x2b3e4e)&&this[_0x33a0('0x20')](_0x2b3e4e[_0x33a0('0x47')])){logger[_0x33a0('0x23')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x2b3e4e[_0x33a0('0x48')],_0x2b3e4e[_0x33a0('0x49')],_0x2b3e4e['peerstatus']);logger[_0x33a0('0x27')](_0x33a0('0x4a'),util[_0x33a0('0x19')](_0x2b3e4e,{'showHidden':![],'depth':null}));if(this[_0x33a0('0xd')][_0x2b3e4e['peer']]){if(!this[_0x33a0('0xd')][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x35')]||_0x2b3e4e[_0x33a0('0x47')]['toLowerCase']()=='registered'){this[_0x33a0('0xd')][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x35')]=![];this['agents'][_0x2b3e4e[_0x33a0('0x48')]]['status']=_0x2b3e4e['peerstatus'][_0x33a0('0x36')]();this[_0x33a0('0xd')][_0x2b3e4e['peer']][_0x33a0('0x49')]=_0x2b3e4e[_0x33a0('0x49')];this[_0x33a0('0xd')][_0x2b3e4e['peer']][_0x33a0('0x3a')](_0x2b3e4e);}}else if(this[_0x33a0('0xe')][_0x2b3e4e['peer']]){this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]]['status']=_0x2b3e4e[_0x33a0('0x47')][_0x33a0('0x36')]();this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]]['address']=_0x2b3e4e['address'];logger[_0x33a0('0x27')](_0x33a0('0x4b'),util[_0x33a0('0x19')](this[_0x33a0('0xe')][_0x2b3e4e['peer']],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x33a0('0x4c'),this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x3c')]),_0x33a0('0x3d'),this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]]);}else if(this[_0x33a0('0xc')][_0x2b3e4e[_0x33a0('0x48')]]){this['trunks'][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x4d')]=_0x2b3e4e[_0x33a0('0x47')][_0x33a0('0x36')]();this['trunks'][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x49')]=_0x2b3e4e[_0x33a0('0x49')];logger[_0x33a0('0x27')](_0x33a0('0x4e'),util[_0x33a0('0x19')](this[_0x33a0('0xc')][_0x2b3e4e[_0x33a0('0x48')]],{'showHidden':![],'depth':null}));this[_0x33a0('0x22')](util[_0x33a0('0x2f')](_0x33a0('0x30'),this['trunks'][_0x2b3e4e['peer']][_0x33a0('0x3c')]),_0x33a0('0x31'),this[_0x33a0('0xc')][_0x2b3e4e[_0x33a0('0x48')]]);}}}catch(_0x395092){logger['error'](_0x33a0('0x4a'),util[_0x33a0('0x19')](_0x395092,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;
\ No newline at end of file
+var _0x5d75=['format','trunk:%s','name','trunk:save','isNotNull','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','toLowerCase','local','stateTime','updateStatusRealtime','toNumber','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','Local','indexOf','mobile','phone','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','util','ioredis','bluebird','../../../config/environment','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:'];(function(_0x4b055c,_0x4b870b){var _0x4b62bb=function(_0x4884c2){while(--_0x4884c2){_0x4b055c['push'](_0x4b055c['shift']());}};_0x4b62bb(++_0x4b870b);}(_0x5d75,0x19e));var _0x55d7=function(_0x5abc2f,_0x40cc10){_0x5abc2f=_0x5abc2f-0x0;var _0x352b0d=_0x5d75[_0x5abc2f];return _0x352b0d;};'use strict';var _=require(_0x55d7('0x0'));var moment=require(_0x55d7('0x1'));var util=require(_0x55d7('0x2'));var Redis=require(_0x55d7('0x3'));var BPromise=require(_0x55d7('0x4'));var config=require(_0x55d7('0x5'));var logger=require('../../../config/logger')('ami');var ami=require(_0x55d7('0x6'));config[_0x55d7('0x7')]=_[_0x55d7('0x8')](config['redis'],{'host':_0x55d7('0x9'),'port':0x18eb});var io=require(_0x55d7('0xa'))(new Redis(config['redis']));function UserReport(_0x1290fc){this[_0x55d7('0xb')]=_0x1290fc[_0x55d7('0xb')];this[_0x55d7('0xc')]=_0x1290fc[_0x55d7('0xc')];this[_0x55d7('0xd')]=_0x1290fc[_0x55d7('0xd')];ami['on']('registryentry',this[_0x55d7('0xe')][_0x55d7('0xf')](this));ami['on'](_0x55d7('0x10'),this[_0x55d7('0xe')]['bind'](this));ami['on'](_0x55d7('0x11'),this[_0x55d7('0x12')]['bind'](this));ami['on'](_0x55d7('0x13'),this[_0x55d7('0x14')][_0x55d7('0xf')](this));return this[_0x55d7('0x15')]();}function showSipRegistrations(){Promise[_0x55d7('0x16')]()[_0x55d7('0x17')](ami[_0x55d7('0x18')]())[_0x55d7('0x19')](function(_0x2bcb82){logger[_0x55d7('0x1a')](_0x55d7('0x1b'),util[_0x55d7('0x1c')](_0x2bcb82,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x55d7('0x16')]()[_0x55d7('0x17')](ami[_0x55d7('0x1d')]())['catch'](function(_0x299bde){logger[_0x55d7('0x1a')](_0x55d7('0x1e'),util[_0x55d7('0x1c')](_0x299bde,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x55d7('0x16')]()[_0x55d7('0x17')](ami[_0x55d7('0x1f')]())[_0x55d7('0x19')](function(_0x1285b8){logger['error'](_0x55d7('0x20'),util['inspect'](_0x1285b8,{'showHidden':![],'depth':null}));});}UserReport['prototype']['syncRealtimeShow']=function(){setInterval(function(){BPromise[_0x55d7('0x16')]()[_0x55d7('0x17')](showSipRegistrations())['then'](listDeviceStates())[_0x55d7('0x17')](showPeersStatus());},0x32c8);};UserReport[_0x55d7('0x21')]['isNotNull']=function(_0x552ab9){return _0x552ab9!==null&&!_[_0x55d7('0x22')](_0x552ab9);};UserReport[_0x55d7('0x21')]['emit']=function(_0x3f089e,_0x8f5e35,_0x3d5993){io['to'](_0x3f089e)[_0x55d7('0x23')](_0x8f5e35,_0x3d5993);};UserReport['prototype'][_0x55d7('0xe')]=function(_0x377d2f){try{if(this['isNotNull'](_0x377d2f)){logger[_0x55d7('0x24')](_0x55d7('0x25'),_0x377d2f[_0x55d7('0x26')],_0x377d2f[_0x55d7('0x27')]);logger[_0x55d7('0x28')](_0x55d7('0x29'),util[_0x55d7('0x1c')](_0x377d2f,{'showHidden':![],'depth':null}));var _0x43f36e=_[_0x55d7('0x2a')](this[_0x55d7('0xb')],{'defaultuser':_0x377d2f[_0x55d7('0x26')]});if(_0x43f36e){_0x377d2f[_0x55d7('0x2b')]=_0x377d2f['state'];_[_0x55d7('0x2c')](_0x43f36e,_['omit'](_0x377d2f,[_0x55d7('0x2d'),_0x55d7('0x2e'),'username',_0x55d7('0x27')]));logger['debug'](_0x55d7('0x2f'),util[_0x55d7('0x1c')](_0x43f36e,{'showHidden':![],'depth':null}));this[_0x55d7('0x23')](util[_0x55d7('0x30')](_0x55d7('0x31'),_0x43f36e[_0x55d7('0x32')]),_0x55d7('0x33'),_0x43f36e);}}}catch(_0x17dc78){logger[_0x55d7('0x1a')](_0x55d7('0x29'),util[_0x55d7('0x1c')](_0x17dc78,{'showHidden':![],'depth':null}));}};UserReport[_0x55d7('0x21')][_0x55d7('0x12')]=function(_0x58da44){try{if(this[_0x55d7('0x34')](_0x58da44)){logger[_0x55d7('0x24')](_0x55d7('0x35'),_0x58da44[_0x55d7('0x36')],_0x58da44['state']);logger['debug'](_0x55d7('0x37'),util[_0x55d7('0x1c')](_0x58da44,{'showHidden':![],'depth':null}));if(this[_0x55d7('0xc')][_0x58da44['device']]){if(!this['agents'][_0x58da44['device']]['local']||_0x58da44['state'][_0x55d7('0x38')]()=='inuse'){this[_0x55d7('0xc')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x39')]=![];if(this[_0x55d7('0xc')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x27')]!==_0x58da44['state'][_0x55d7('0x38')]()){this[_0x55d7('0xc')][_0x58da44['device']][_0x55d7('0x3a')]=_['toNumber'](moment()[_0x55d7('0x30')]('x'));}this[_0x55d7('0xc')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x27')]=_0x58da44[_0x55d7('0x27')][_0x55d7('0x38')]();this[_0x55d7('0xc')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x3b')](_0x58da44);}}else if(this[_0x55d7('0xd')][_0x58da44[_0x55d7('0x36')]]){if(this['telephones'][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x27')]!==_0x58da44[_0x55d7('0x27')][_0x55d7('0x38')]()){this[_0x55d7('0xd')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x3a')]=_[_0x55d7('0x3c')](moment()[_0x55d7('0x30')]('x'));}this[_0x55d7('0xd')][_0x58da44['device']]['state']=_0x58da44['state'][_0x55d7('0x38')]();logger[_0x55d7('0x28')](_0x55d7('0x3d'),util[_0x55d7('0x1c')](this[_0x55d7('0xd')][_0x58da44['device']],{'showHidden':![],'depth':null}));this['emit'](util[_0x55d7('0x30')](_0x55d7('0x3e'),this[_0x55d7('0xd')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x32')]),_0x55d7('0x3f'),this[_0x55d7('0xd')][_0x58da44[_0x55d7('0x36')]]);}else if(this[_0x55d7('0xb')][_0x58da44[_0x55d7('0x36')]]){if(this[_0x55d7('0xb')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x27')]!==_0x58da44[_0x55d7('0x27')][_0x55d7('0x38')]()){this[_0x55d7('0xb')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x3a')]=_[_0x55d7('0x3c')](moment()[_0x55d7('0x30')]('x'));}this['trunks'][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x27')]=_0x58da44[_0x55d7('0x27')][_0x55d7('0x38')]();logger[_0x55d7('0x28')]('[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:',util[_0x55d7('0x1c')](this['trunks'][_0x58da44[_0x55d7('0x36')]],{'showHidden':![],'depth':null}));this[_0x55d7('0x23')](util[_0x55d7('0x30')](_0x55d7('0x31'),this[_0x55d7('0xb')][_0x58da44[_0x55d7('0x36')]][_0x55d7('0x32')]),_0x55d7('0x33'),this[_0x55d7('0xb')][_0x58da44[_0x55d7('0x36')]]);}else if(_['startsWith'](_0x58da44['device'],_0x55d7('0x40'))){var _0x426d87=_0x58da44[_0x55d7('0x36')];var _0xae7687=_0x426d87['substring'](_0x426d87[_0x55d7('0x41')]('/')+0x1,_0x426d87[_0x55d7('0x41')]('@'));var _0x666d3d=_['find'](this['agents'],function(_0x3aa460){return _0x3aa460[_0x55d7('0x42')]==_0xae7687||_0x3aa460[_0x55d7('0x43')]==_0xae7687||_0x3aa460[_0x55d7('0x44')]==_0xae7687;});if(_0x666d3d){if(_0x666d3d[_0x55d7('0x27')]!==_0x58da44[_0x55d7('0x27')][_0x55d7('0x38')]()){_0x666d3d[_0x55d7('0x3a')]=_[_0x55d7('0x3c')](moment()['format']('x'));}_0x666d3d[_0x55d7('0x27')]=_0x58da44[_0x55d7('0x27')][_0x55d7('0x38')]();_0x666d3d['local']=!![];_0x666d3d[_0x55d7('0x3b')](_0x58da44);}}}}catch(_0x33cf5c){logger[_0x55d7('0x1a')](_0x55d7('0x37'),util[_0x55d7('0x1c')](_0x33cf5c,{'showHidden':![],'depth':null}));}};UserReport[_0x55d7('0x21')][_0x55d7('0x14')]=function(_0x35a631){try{if(this[_0x55d7('0x34')](_0x35a631)&&this[_0x55d7('0x34')](_0x35a631[_0x55d7('0x13')])){logger[_0x55d7('0x24')](_0x55d7('0x45'),_0x35a631[_0x55d7('0x46')],_0x35a631[_0x55d7('0x47')],_0x35a631['peerstatus']);logger[_0x55d7('0x28')](_0x55d7('0x48'),util[_0x55d7('0x1c')](_0x35a631,{'showHidden':![],'depth':null}));if(this[_0x55d7('0xc')][_0x35a631[_0x55d7('0x46')]]){if(!this[_0x55d7('0xc')][_0x35a631[_0x55d7('0x46')]]['local']||_0x35a631[_0x55d7('0x13')][_0x55d7('0x38')]()==_0x55d7('0x49')){this['agents'][_0x35a631['peer']]['local']=![];this[_0x55d7('0xc')][_0x35a631[_0x55d7('0x46')]]['status']=_0x35a631[_0x55d7('0x13')][_0x55d7('0x38')]();this[_0x55d7('0xc')][_0x35a631[_0x55d7('0x46')]]['address']=_0x35a631[_0x55d7('0x47')];this[_0x55d7('0xc')][_0x35a631[_0x55d7('0x46')]][_0x55d7('0x3b')](_0x35a631);}}else if(this['telephones'][_0x35a631[_0x55d7('0x46')]]){this['telephones'][_0x35a631[_0x55d7('0x46')]]['status']=_0x35a631[_0x55d7('0x13')][_0x55d7('0x38')]();this[_0x55d7('0xd')][_0x35a631[_0x55d7('0x46')]][_0x55d7('0x47')]=_0x35a631[_0x55d7('0x47')];logger[_0x55d7('0x28')]('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util[_0x55d7('0x1c')](this[_0x55d7('0xd')][_0x35a631[_0x55d7('0x46')]],{'showHidden':![],'depth':null}));this[_0x55d7('0x23')](util['format'](_0x55d7('0x3e'),this[_0x55d7('0xd')][_0x35a631[_0x55d7('0x46')]][_0x55d7('0x32')]),_0x55d7('0x3f'),this['telephones'][_0x35a631[_0x55d7('0x46')]]);}else if(this[_0x55d7('0xb')][_0x35a631[_0x55d7('0x46')]]){this[_0x55d7('0xb')][_0x35a631[_0x55d7('0x46')]][_0x55d7('0x4a')]=_0x35a631[_0x55d7('0x13')]['toLowerCase']();this[_0x55d7('0xb')][_0x35a631[_0x55d7('0x46')]][_0x55d7('0x47')]=_0x35a631[_0x55d7('0x47')];logger['debug'](_0x55d7('0x4b'),util[_0x55d7('0x1c')](this[_0x55d7('0xb')][_0x35a631['peer']],{'showHidden':![],'depth':null}));this['emit'](util[_0x55d7('0x30')](_0x55d7('0x31'),this[_0x55d7('0xb')][_0x35a631['peer']][_0x55d7('0x32')]),'trunk:save',this[_0x55d7('0xb')][_0x35a631[_0x55d7('0x46')]]);}}}catch(_0x1149bc){logger['error'](_0x55d7('0x48'),util[_0x55d7('0x1c')](_0x1149bc,{'showHidden':![],'depth':null}));}};module[_0x55d7('0x4c')]=UserReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['redis','defaults','localhost','channels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','syncVarSet','hangup','syncHangup','syncMusicOnHoldStart','musiconholdstop','attendedtransfer','syncBlindTransfer','prototype','emit','isNotNull','isUndefined','info','membername','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','uniqueid','YYYY-MM-DD\x20HH:mm:ss','queue','mandatoryDisposition','type','inbound','merge','omit','event','privilege','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:','format','[%s][voiceAgentReport][agentcalled]','[%s][voiceAgentReport][agentconnect]\x20event:','hasOwnProperty','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','lastevent','voiceChannels','routealias','interface','pick','destconnectedlinenum','custom:agentconnect','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:','user:%s','user:agentconnect','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere','agentringnoanswerAt','answered_elsewhere','[%s][voiceAgentReport][agentconnect]','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','rejected','[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:','custom:agentringnoanswer','error','[%s][voiceAgentReport][agentringnoanswer]','[%s][voiceAgentReport][queuecallerabandon]\x20event:','agentringnoanswer','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','reason','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','transfer','agent','talktime','acw','acwtime','agentacw','[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','[%s][voiceAgentReport][varset]\x20event:','addVariable','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberlastcall','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','[%s][voiceAgentReport][hangup]','syncAttendedTransfer','[%s][voiceAgentReport][attendedtransfer]\x20event:','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','[%s][voiceAgentReport][blindtransfer]\x20event:','transfereruniqueid','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','channel','substring','lastIndexOf','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','[%s][voiceAgentReport][musiconholdstop]\x20event:','[%s][voiceAgentReport][musiconholdstop]','lodash','moment','util','../../../config/logger','../ami'];(function(_0x29cdbb,_0x2e3f14){var _0x578b94=function(_0x1ff0c2){while(--_0x1ff0c2){_0x29cdbb['push'](_0x29cdbb['shift']());}};_0x578b94(++_0x2e3f14);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x0a9e('0x3'))('ami');var ami=require(_0x0a9e('0x4'));config[_0x0a9e('0x5')]=_[_0x0a9e('0x6')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x5')]));function VoiceAgentReport(_0x441e3a){this[_0x0a9e('0x8')]={};this['voiceChannels']=_0x441e3a['channels'];this[_0x0a9e('0x9')]=_0x441e3a['voiceQueues'];this['agents']=_0x441e3a[_0x0a9e('0xa')];this[_0x0a9e('0xb')]={};ami['on'](_0x0a9e('0xc'),this[_0x0a9e('0xd')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0xf'),this['syncAgentConnect']['bind'](this));ami['on']('agentringnoanswer',this['syncAgentRingNoAnswer'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x10'),this[_0x0a9e('0x11')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x12'),this[_0x0a9e('0x13')]['bind'](this));ami['on'](_0x0a9e('0x14'),this[_0x0a9e('0x15')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x16'),this[_0x0a9e('0x17')][_0x0a9e('0xe')](this));ami['on']('musiconholdstart',this[_0x0a9e('0x18')]['bind'](this));ami['on'](_0x0a9e('0x19'),this['syncMusicOnHoldStop'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x1a'),this['syncAttendedTransfer'][_0x0a9e('0xe')](this));ami['on']('blindtransfer',this[_0x0a9e('0x1b')][_0x0a9e('0xe')](this));}VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1d')]=function(_0x31b1ca,_0x2eb11f,_0x530eb7){io['to'](_0x31b1ca)[_0x0a9e('0x1d')](_0x2eb11f,_0x530eb7);};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1e')]=function(_0x1c696a){return _0x1c696a!==null&&!_[_0x0a9e('0x1f')](_0x1c696a);};VoiceAgentReport['prototype'][_0x0a9e('0xd')]=function(_0x155cce){try{if(this['isNotNull'](_0x155cce)){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x155cce['uniqueid'],_0x155cce[_0x0a9e('0x21')],_0x155cce[_0x0a9e('0x22')]);logger[_0x0a9e('0x23')](_0x0a9e('0x24'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x155cce,{'showHidden':![],'depth':null}));if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]]={};}if(_[_0x0a9e('0x1f')](this['channels'][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]={'agentcalledAt':moment()['format'](_0x0a9e('0x27')),'lastevent':'called','mandatoryDisposition':this[_0x0a9e('0x9')][_0x155cce['queue']]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x29')]||![]:![],'type':this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x2a')]||'inbound':_0x0a9e('0x2b'),'variables':this[_0x0a9e('0xb')][_0x155cce[_0x0a9e('0x26')]]};}_[_0x0a9e('0x2c')](this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],_[_0x0a9e('0x2d')](_0x155cce,[_0x0a9e('0x2e'),_0x0a9e('0x2f')]));logger[_0x0a9e('0x23')](_0x0a9e('0x30'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x31'),this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]);logger['debug'](_0x0a9e('0x32'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x33')]('user:%s',_0x155cce[_0x0a9e('0x21')]),'user:called',this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]);}}catch(_0x3f3d41){logger['error'](_0x0a9e('0x34'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x3f3d41,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncAgentConnect']=function(_0x54135e){try{if(this[_0x0a9e('0x1e')](_0x54135e)){if(this['channels'][_0x54135e[_0x0a9e('0x26')]]){logger[_0x0a9e('0x23')](_0x0a9e('0x35'),_0x54135e[_0x0a9e('0x26')],util['inspect'](_0x54135e,{'showHidden':![],'depth':null}));for(var _0x31916f in this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]]){if(this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x31916f)){if(_0x54135e[_0x0a9e('0x22')]===_0x31916f){logger['info']('[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect',_0x54135e[_0x0a9e('0x26')],_0x54135e[_0x0a9e('0x21')],_0x54135e['destuniqueid']);this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x37')]=moment()[_0x0a9e('0x33')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x38')]=_0x54135e['connectedlinename'];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x39')]=_0x54135e['connectedlinenum'];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3a')]=_0x54135e[_0x0a9e('0x3a')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3b')]=_0x54135e[_0x0a9e('0x3b')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3c')]=_0x54135e[_0x0a9e('0x3c')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3d')]='connect';if(this['voiceChannels'][this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x26')]]){var _0x315881=this[_0x0a9e('0x3e')][this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x26')]][_0x0a9e('0x3f')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3f')]=_0x315881;_0x54135e['routealias']=_0x315881;}_[_0x0a9e('0x2c')](this[_0x0a9e('0xa')][_0x54135e[_0x0a9e('0x40')]],_[_0x0a9e('0x41')](_0x54135e,[_0x0a9e('0x28'),_0x0a9e('0x42'),_0x0a9e('0x3f')]));logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:',_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami['emit'](_0x0a9e('0x43'),this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]]);logger[_0x0a9e('0x23')](_0x0a9e('0x44'),_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x33')](_0x0a9e('0x45'),_0x54135e[_0x0a9e('0x21')]),_0x0a9e('0x46'),this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x54135e[_0x0a9e('0x22')]]);}else if(!this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['agentringnoanswer']&&!this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')](_0x0a9e('0x47'),_0x54135e[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x21')],_0x31916f);this['channels'][_0x54135e['uniqueid']][_0x31916f]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x48')]=moment()['format'](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['answeredelsewheredestinationuniqueid']=_0x54135e[_0x0a9e('0x22')];this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f]['answeredelsewheremembername']=_0x54135e[_0x0a9e('0x21')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f]['lastevent']=_0x0a9e('0x49');this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['reason']=_0x0a9e('0x49');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:',_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')]('custom:agentansweredelsewhere',this['channels'][_0x54135e['uniqueid']][_0x31916f]);}}}}}}catch(_0x2da03c){logger['error'](_0x0a9e('0x4a'),_0x54135e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2da03c,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x4b')]=function(_0x272738){try{if(this[_0x0a9e('0x1e')](_0x272738)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x272738[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x272738,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]]&&this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']]){logger[_0x0a9e('0x20')](_0x0a9e('0x4c'),_0x272738['uniqueid'],_0x272738[_0x0a9e('0x21')],_0x272738['destuniqueid']);this[_0x0a9e('0x8')][_0x272738['uniqueid']][_0x272738['destuniqueid']]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x272738['uniqueid']][_0x272738[_0x0a9e('0x22')]][_0x0a9e('0x48')]=moment()[_0x0a9e('0x33')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']][_0x0a9e('0x3d')]='rejected';this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738[_0x0a9e('0x22')]]['reason']=_0x0a9e('0x4d');logger[_0x0a9e('0x23')](_0x0a9e('0x4e'),_0x272738[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x4f'),this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738[_0x0a9e('0x22')]]);}}}catch(_0x4d4a35){logger[_0x0a9e('0x50')](_0x0a9e('0x51'),_0x272738[_0x0a9e('0x26')],util['inspect'](_0x4d4a35,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncQueueCallerAbandon']=function(_0x5211e3){try{if(this[_0x0a9e('0x1e')](_0x5211e3)){logger[_0x0a9e('0x23')](_0x0a9e('0x52'),_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x5211e3,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]]){for(var _0x54a37d in this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x54a37d)&&!this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x53')]&&!this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d]['agentcomplete']){logger[_0x0a9e('0x20')](_0x0a9e('0x54'),_0x5211e3[_0x0a9e('0x26')],this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x21')],_0x54a37d);this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x53')]=!![];this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x48')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x3d')]=_0x0a9e('0x55');this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x56')]=_0x0a9e('0x55');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:',_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x5211e3['uniqueid']][_0x54a37d],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')]('custom:agentqueuecallerabandon',this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d]);}}}}}catch(_0x4c46c1){logger[_0x0a9e('0x50')](_0x0a9e('0x57'),_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4c46c1,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x13')]=function(_0x2e9552){try{if(this[_0x0a9e('0x1e')](_0x2e9552)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcomplete]\x20event:',_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2e9552,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]]){for(var _0x4abc8f in this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x4abc8f)){if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x37')]&&!this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')](_0x0a9e('0x58'),_0x2e9552[_0x0a9e('0x26')],this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x21')],_0x4abc8f);this[_0x0a9e('0x8')][_0x2e9552['uniqueid']][_0x4abc8f][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x59')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]['lastevent']=_0x0a9e('0x5a');this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x56')]=_0x2e9552['reason']==_0x0a9e('0x5b')?_0x0a9e('0x5c'):_0x2e9552[_0x0a9e('0x56')];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x5d')]=_0x2e9552[_0x0a9e('0x5d')];if(this['voiceQueues'][_0x2e9552[_0x0a9e('0x28')]]&&this[_0x0a9e('0x9')][_0x2e9552[_0x0a9e('0x28')]][_0x0a9e('0x5e')]){this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x5f')]=this['voiceQueues'][_0x2e9552[_0x0a9e('0x28')]]['acwTimeout'];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x60')]=!![];}this[_0x0a9e('0xa')][_0x2e9552['interface']]=_['omit'](this[_0x0a9e('0xa')][_0x2e9552[_0x0a9e('0x40')]],[_0x0a9e('0x28'),'destconnectedlinenum']);logger[_0x0a9e('0x23')](_0x0a9e('0x61'),_0x2e9552['uniqueid'],util['inspect'](this[_0x0a9e('0x8')][_0x2e9552['uniqueid']][_0x4abc8f],{'showHidden':![],'depth':null}));ami['emit']('custom:agentcomplete',this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]);logger[_0x0a9e('0x23')](_0x0a9e('0x62'),_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f],{'showHidden':![],'depth':null}));this['emit'](util[_0x0a9e('0x33')](_0x0a9e('0x45'),_0x2e9552[_0x0a9e('0x21')]),_0x0a9e('0x63'),this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]);}}}}}}catch(_0x32f761){logger[_0x0a9e('0x50')]('[%s][voiceAgentReport][agentcomplete]',_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x32f761,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x15')]=function(_0x255e49){try{if(this[_0x0a9e('0x1e')](_0x255e49)){logger[_0x0a9e('0x23')](_0x0a9e('0x64'),_0x255e49['uniqueid'],util[_0x0a9e('0x25')](_0x255e49,{'showHidden':![],'depth':null}));this[_0x0a9e('0x65')](_0x255e49['uniqueid'],_[_0x0a9e('0x66')](_0x255e49[_0x0a9e('0x67')])[0x0],_0x255e49[_0x0a9e('0x68')]);if(this['channels'][_0x255e49[_0x0a9e('0x26')]]){for(var _0x52ec10 in this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x52ec10)){logger[_0x0a9e('0x20')](_0x0a9e('0x69'),_0x255e49[_0x0a9e('0x26')],_0x52ec10,_['keys'](_0x255e49[_0x0a9e('0x67')])[0x0],_0x255e49[_0x0a9e('0x68')]);if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')])){this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')]={};}this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')]=this[_0x0a9e('0xb')][_0x255e49['uniqueid']];}}}}}catch(_0xc81b64){logger[_0x0a9e('0x50')](_0x0a9e('0x6a'),_0x255e49[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xc81b64,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x65')]=function(_0x1756c7,_0x5ce99d,_0x23b447){var _0x5e725e=[_0x0a9e('0x6b'),_0x0a9e('0x6c'),_0x0a9e('0x6d'),_0x0a9e('0x6e'),'rtpaudioqosloss',_0x0a9e('0x6f'),'rtpaudioqosrtt',_0x0a9e('0x70'),_0x0a9e('0x71'),'sipuri',_0x0a9e('0x72'),_0x0a9e('0x73'),_0x0a9e('0x74'),'memberdynamic','memberinterface',_0x0a9e('0x75'),_0x0a9e('0x21'),_0x0a9e('0x76'),_0x0a9e('0x77')];if(!_[_0x0a9e('0x78')](_0x5ce99d)&&!_[_0x0a9e('0x79')](_0x5e725e,_0x5ce99d)){if(_[_0x0a9e('0x1f')](this[_0x0a9e('0xb')][_0x1756c7])){this[_0x0a9e('0xb')][_0x1756c7]={};}this['variables'][_0x1756c7][_0x5ce99d]=_0x23b447;}};VoiceAgentReport[_0x0a9e('0x1c')]['syncHangup']=function(_0x287324){try{if(this[_0x0a9e('0x1e')](_0x287324)){logger[_0x0a9e('0x23')](_0x0a9e('0x7a'),_0x287324[_0x0a9e('0x26')],util['inspect'](_0x287324,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]){for(var _0x2791c5 in this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]){if(this['channels'][_0x287324['uniqueid']][_0x0a9e('0x36')](_0x2791c5)){if(this['channels'][_0x287324[_0x0a9e('0x26')]][_0x2791c5][_0x0a9e('0x56')]==_0x0a9e('0x5b')&&this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]][_0x2791c5][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x287324[_0x0a9e('0x26')],_0x2791c5);this['channels'][_0x287324[_0x0a9e('0x26')]][_0x2791c5]['agentcompleteAt']=moment()[_0x0a9e('0x33')]('YYYY-MM-DD\x20HH:mm:ss');}}}logger['debug'](_0x0a9e('0x7b'),_0x287324[_0x0a9e('0x26')],util['inspect'](_[_0x0a9e('0x7c')](this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]),{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x7d'),_['values'](this['channels'][_0x287324[_0x0a9e('0x26')]]));delete this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]];}if(this[_0x0a9e('0xb')][_0x287324[_0x0a9e('0x26')]]){delete this['variables'][_0x287324[_0x0a9e('0x26')]];}}}catch(_0xadce3d){logger['error'](_0x0a9e('0x7e'),_0x287324[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xadce3d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x7f')]=function(_0x23b39e){try{if(this[_0x0a9e('0x1e')](_0x23b39e)){logger[_0x0a9e('0x23')](_0x0a9e('0x80'),_0x23b39e[_0x0a9e('0x26')],util['inspect'](_0x23b39e,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]]){for(var _0x2ada60 in this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]]){if(this['channels'][_0x23b39e['transfereeuniqueid']][_0x0a9e('0x36')](_0x2ada60)){if(_0x23b39e[_0x0a9e('0x82')]===_0x2ada60){logger[_0x0a9e('0x20')](_0x0a9e('0x83'),_0x23b39e[_0x0a9e('0x26')],this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x21')],_0x2ada60);var _0x3450ae=moment();this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x23b39e['transfereeuniqueid']][_0x2ada60][_0x0a9e('0x59')]=moment()[_0x0a9e('0x33')](_0x0a9e('0x27'));this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60]['lastevent']=_0x0a9e('0x5a');this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x56')]=_0x0a9e('0x5b');this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x5d')]=_0x3450ae[_0x0a9e('0x84')](this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x37')],_0x0a9e('0x85'));}}}}if(this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x86')]]){var _0x248368=this['channels'][_0x23b39e['secondtransfereruniqueid']];this[_0x0a9e('0x8')][_0x23b39e['secondtransfereruniqueid']]=this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]];this['channels'][_0x23b39e[_0x0a9e('0x81')]]=_0x248368;}}}catch(_0xe2b083){logger[_0x0a9e('0x50')](_0x0a9e('0x87'),_0x23b39e['uniqueid'],util[_0x0a9e('0x25')](_0xe2b083,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1b')]=function(_0x34a791){try{if(this['isNotNull'](_0x34a791)){logger[_0x0a9e('0x23')](_0x0a9e('0x88'),_0x34a791[_0x0a9e('0x26')],util['inspect'](_0x34a791,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]]){for(var _0x17b29d in this['channels'][_0x34a791[_0x0a9e('0x81')]]){if(this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x0a9e('0x36')](_0x17b29d)){if(_0x34a791[_0x0a9e('0x89')]===_0x17b29d){logger['info'](_0x0a9e('0x8a'),_0x34a791[_0x0a9e('0x26')],this['channels'][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x21')],_0x17b29d);var _0x1f6f1c=moment();this['channels'][_0x34a791['transfereeuniqueid']][_0x17b29d]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d]['agentcompleteAt']=_0x1f6f1c;this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x3d')]='complete';this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x56')]=_0x0a9e('0x5b');this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x5d')]=_0x1f6f1c[_0x0a9e('0x84')](this[_0x0a9e('0x8')][_0x34a791['transfereeuniqueid']][_0x17b29d][_0x0a9e('0x37')],'seconds');}}}}}}catch(_0x138cf5){logger[_0x0a9e('0x50')](_0x0a9e('0x8b'),_0x34a791[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x138cf5,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncMusicOnHoldStart']=function(_0x1a0314){var _0x33da81='';try{if(this[_0x0a9e('0x1e')](_0x1a0314)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][musiconholdstart]\x20event:',_0x1a0314[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x1a0314,{'showHidden':![],'depth':null}));if(_0x1a0314[_0x0a9e('0x8c')]){_0x33da81=_0x1a0314[_0x0a9e('0x8c')][_0x0a9e('0x8d')](0x0,_0x1a0314[_0x0a9e('0x8c')][_0x0a9e('0x8e')]('-'));if(this[_0x0a9e('0xa')][_0x33da81]){logger[_0x0a9e('0x20')](_0x0a9e('0x8f'),_0x1a0314['uniqueid'],_0x33da81);this[_0x0a9e('0xa')][_0x33da81][_0x0a9e('0x90')]=!![];}}}}catch(_0x2ff265){logger[_0x0a9e('0x50')](_0x0a9e('0x91'),_0x1a0314[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2ff265,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncMusicOnHoldStop']=function(_0x3b581c){var _0xd2391='';try{if(this[_0x0a9e('0x1e')](_0x3b581c)){logger['debug'](_0x0a9e('0x92'),_0x3b581c[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x3b581c,{'showHidden':![],'depth':null}));if(_0x3b581c[_0x0a9e('0x8c')]){_0xd2391=_0x3b581c[_0x0a9e('0x8c')][_0x0a9e('0x8d')](0x0,_0x3b581c[_0x0a9e('0x8c')][_0x0a9e('0x8e')]('-'));if(this[_0x0a9e('0xa')][_0xd2391]){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][musiconholdstop]\x20interface:%s',_0x3b581c[_0x0a9e('0x26')],_0xd2391);this[_0x0a9e('0xa')][_0xd2391][_0x0a9e('0x90')]=![];}}}}catch(_0x3db98f){logger[_0x0a9e('0x50')](_0x0a9e('0x93'),_0x3b581c['uniqueid'],util[_0x0a9e('0x25')](_0x3db98f,{'showHidden':![],'depth':null}));}};module['exports']=VoiceAgentReport;
\ No newline at end of file
+var _0xa9e0=['musiconholdstop','attendedtransfer','syncBlindTransfer','prototype','emit','isNotNull','isUndefined','info','membername','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','uniqueid','YYYY-MM-DD\x20HH:mm:ss','queue','mandatoryDisposition','type','inbound','voice','omit','event','privilege','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','interface','calleridnum','extravar','format','user:%s','error','[%s][voiceAgentReport][agentcalled]','syncAgentConnect','[%s][voiceAgentReport][agentconnect]\x20event:','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','connect','voiceChannels','routealias','merge','pick','destconnectedlinenum','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:','custom:agentconnect','user:agentconnect','agentringnoanswer','agentringnoanswerAt','answered_elsewhere','reason','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:','custom:agentansweredelsewhere','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','lastevent','rejected','custom:agentringnoanswer','[%s][voiceAgentReport][agentringnoanswer]','[%s][voiceAgentReport][queuecallerabandon]\x20event:','hasOwnProperty','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:','custom:agentqueuecallerabandon','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20event:','agentcompleteAt','complete','agent','talktime','acw','acwtime','acwTimeout','custom:agentcomplete','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','destaccountcode','user:agentcomplete','[%s][voiceAgentReport][agentcomplete]','[%s][voiceAgentReport][varset]\x20event:','addVariable','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','transfer','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','syncAttendedTransfer','[%s][voiceAgentReport][attendedtransfer]\x20event:','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','[%s][voiceAgentReport][blindtransfer]\x20event:','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','[%s][voiceAgentReport][musiconholdstart]\x20event:','channel','substring','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','syncMusicOnHoldStop','lastIndexOf','[%s][voiceAgentReport][musiconholdstop]\x20interface:%s','exports','lodash','moment','util','../../../config/logger','../ami','redis','defaults','localhost','channels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','syncVarSet','hangup','syncHangup','syncMusicOnHoldStart'];(function(_0x1a9c8e,_0xd5e5fb){var _0x31d0a4=function(_0x4d2461){while(--_0x4d2461){_0x1a9c8e['push'](_0x1a9c8e['shift']());}};_0x31d0a4(++_0xd5e5fb);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5037ab,_0x43209e){_0x5037ab=_0x5037ab-0x0;var _0x512adb=_0xa9e0[_0x5037ab];return _0x512adb;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x0a9e('0x3'))('ami');var ami=require(_0x0a9e('0x4'));config[_0x0a9e('0x5')]=_[_0x0a9e('0x6')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x5')]));function VoiceAgentReport(_0x441e3a){this[_0x0a9e('0x8')]={};this['voiceChannels']=_0x441e3a['channels'];this[_0x0a9e('0x9')]=_0x441e3a['voiceQueues'];this['agents']=_0x441e3a[_0x0a9e('0xa')];this[_0x0a9e('0xb')]={};ami['on'](_0x0a9e('0xc'),this[_0x0a9e('0xd')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0xf'),this['syncAgentConnect']['bind'](this));ami['on']('agentringnoanswer',this['syncAgentRingNoAnswer'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x10'),this[_0x0a9e('0x11')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x12'),this[_0x0a9e('0x13')]['bind'](this));ami['on'](_0x0a9e('0x14'),this[_0x0a9e('0x15')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x16'),this[_0x0a9e('0x17')][_0x0a9e('0xe')](this));ami['on']('musiconholdstart',this[_0x0a9e('0x18')]['bind'](this));ami['on'](_0x0a9e('0x19'),this['syncMusicOnHoldStop'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x1a'),this['syncAttendedTransfer'][_0x0a9e('0xe')](this));ami['on']('blindtransfer',this[_0x0a9e('0x1b')][_0x0a9e('0xe')](this));}VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1d')]=function(_0x31b1ca,_0x2eb11f,_0x530eb7){io['to'](_0x31b1ca)[_0x0a9e('0x1d')](_0x2eb11f,_0x530eb7);};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1e')]=function(_0x1c696a){return _0x1c696a!==null&&!_[_0x0a9e('0x1f')](_0x1c696a);};VoiceAgentReport['prototype'][_0x0a9e('0xd')]=function(_0x155cce){try{if(this['isNotNull'](_0x155cce)){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x155cce['uniqueid'],_0x155cce[_0x0a9e('0x21')],_0x155cce[_0x0a9e('0x22')]);logger[_0x0a9e('0x23')](_0x0a9e('0x24'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x155cce,{'showHidden':![],'depth':null}));if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]]={};}if(_[_0x0a9e('0x1f')](this['channels'][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]={'agentcalledAt':moment()['format'](_0x0a9e('0x27')),'lastevent':'called','mandatoryDisposition':this[_0x0a9e('0x9')][_0x155cce['queue']]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x29')]||![]:![],'type':this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x2a')]||'inbound':_0x0a9e('0x2b'),'variables':this[_0x0a9e('0xb')][_0x155cce[_0x0a9e('0x26')]],'motionChannel':_0x0a9e('0x2c')};}_['merge'](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],_[_0x0a9e('0x2d')](_0x155cce,[_0x0a9e('0x2e'),_0x0a9e('0x2f')]));logger[_0x0a9e('0x23')](_0x0a9e('0x30'),_0x155cce[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x31'),this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce['destuniqueid']]);var _0x66c1d2={'id':this[_0x0a9e('0xa')][_0x155cce[_0x0a9e('0x32')]]['id'],'calleridnum':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0x33')],'queue':this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]]['queue'],'extravar':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')]?this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')][_0x0a9e('0x34')]:undefined};logger['debug']('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:',_0x155cce[_0x0a9e('0x26')],util['inspect'](_0x66c1d2,{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x155cce[_0x0a9e('0x21')]),'user:called',_0x66c1d2);}}catch(_0x31916f){logger[_0x0a9e('0x37')](_0x0a9e('0x38'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x31916f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x39')]=function(_0x4c1c0e){try{if(this['isNotNull'](_0x4c1c0e)){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]){logger['debug'](_0x0a9e('0x3a'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4c1c0e,{'showHidden':![],'depth':null}));for(var _0x148f55 in this['channels'][_0x4c1c0e['uniqueid']]){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]['hasOwnProperty'](_0x148f55)){if(_0x4c1c0e[_0x0a9e('0x22')]===_0x148f55){logger[_0x0a9e('0x20')](_0x0a9e('0x3b'),_0x4c1c0e['uniqueid'],_0x4c1c0e[_0x0a9e('0x21')],_0x4c1c0e[_0x0a9e('0x22')]);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3c')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3d')]=_0x4c1c0e[_0x0a9e('0x3d')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3e')]=_0x4c1c0e[_0x0a9e('0x3e')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x3f')]=_0x4c1c0e[_0x0a9e('0x3f')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x40')]=_0x4c1c0e[_0x0a9e('0x40')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x41')]=_0x4c1c0e[_0x0a9e('0x41')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['lastevent']=_0x0a9e('0x42');if(this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x26')]]){var _0xbe9d19=this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x26')]]['routealias'];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x44')]=_0xbe9d19;_0x4c1c0e['routealias']=_0xbe9d19;}_[_0x0a9e('0x45')](this[_0x0a9e('0xa')][_0x4c1c0e[_0x0a9e('0x32')]],_[_0x0a9e('0x46')](_0x4c1c0e,[_0x0a9e('0x28'),_0x0a9e('0x47'),_0x0a9e('0x44')]));logger['debug'](_0x0a9e('0x48'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x49'),this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x4c1c0e[_0x0a9e('0x22')]]);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:',_0x4c1c0e['uniqueid'],util['inspect'](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x4c1c0e[_0x0a9e('0x21')]),_0x0a9e('0x4a'),this['channels'][_0x4c1c0e['uniqueid']][_0x4c1c0e['destuniqueid']]);}else if(!this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]&&!this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere',_0x4c1c0e[_0x0a9e('0x26')],this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['membername'],_0x148f55);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]=!![];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4c')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheredestinationuniqueid']=_0x4c1c0e[_0x0a9e('0x22')];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheremembername']=_0x4c1c0e[_0x0a9e('0x21')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55]['lastevent']=_0x0a9e('0x4d');this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4e')]=_0x0a9e('0x4d');logger[_0x0a9e('0x23')](_0x0a9e('0x4f'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x50'),this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]);}}}}}}catch(_0xb83dfd){logger[_0x0a9e('0x37')]('[%s][voiceAgentReport][agentconnect]',_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xb83dfd,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x51')]=function(_0x5cc8fb){try{if(this[_0x0a9e('0x1e')](_0x5cc8fb)){logger['debug']('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x5cc8fb['uniqueid'],util[_0x0a9e('0x25')](_0x5cc8fb,{'showHidden':![],'depth':null}));if(this['channels'][_0x5cc8fb[_0x0a9e('0x26')]]&&this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]){logger[_0x0a9e('0x20')](_0x0a9e('0x52'),_0x5cc8fb['uniqueid'],_0x5cc8fb[_0x0a9e('0x21')],_0x5cc8fb['destuniqueid']);this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x5cc8fb['uniqueid']][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x53')]=_0x0a9e('0x54');this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb['destuniqueid']][_0x0a9e('0x4e')]=_0x0a9e('0x54');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:',_0x5cc8fb[_0x0a9e('0x26')],util['inspect'](this['channels'][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x55'),this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]);}}}catch(_0x54a37d){logger[_0x0a9e('0x37')](_0x0a9e('0x56'),_0x5cc8fb[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x54a37d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x11')]=function(_0x320898){try{if(this[_0x0a9e('0x1e')](_0x320898)){logger[_0x0a9e('0x23')](_0x0a9e('0x57'),_0x320898['uniqueid'],util[_0x0a9e('0x25')](_0x320898,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){for(var _0x4edbb0 in this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){if(this['channels'][_0x320898[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x4edbb0)&&!this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4b')]&&!this['channels'][_0x320898['uniqueid']][_0x4edbb0]['agentcomplete']){logger[_0x0a9e('0x20')](_0x0a9e('0x59'),_0x320898[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x21')],_0x4edbb0);this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this['channels'][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x53')]='abandoned';this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4e')]=_0x0a9e('0x5a');logger['debug'](_0x0a9e('0x5b'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x320898['uniqueid']][_0x4edbb0],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x5c'),this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]);}}}}}catch(_0x4abc8f){logger[_0x0a9e('0x37')](_0x0a9e('0x5d'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4abc8f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x13')]=function(_0x40fc56){try{if(this[_0x0a9e('0x1e')](_0x40fc56)){logger[_0x0a9e('0x23')](_0x0a9e('0x5e'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x40fc56,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){for(var _0x5b35db in this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x0a9e('0x58')](_0x5b35db)){if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x3c')]&&!this['channels'][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x40fc56[_0x0a9e('0x26')],this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x21')],_0x5b35db);this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x4e')]=_0x40fc56[_0x0a9e('0x4e')]=='transfer'?_0x0a9e('0x61'):_0x40fc56['reason'];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x62')]=_0x40fc56[_0x0a9e('0x62')];if(this['voiceQueues'][_0x40fc56['queue']]&&this[_0x0a9e('0x9')][_0x40fc56[_0x0a9e('0x28')]][_0x0a9e('0x63')]){this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x64')]=this['voiceQueues'][_0x40fc56['queue']][_0x0a9e('0x65')];this['channels'][_0x40fc56['uniqueid']][_0x5b35db]['agentacw']=!![];}this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]=_[_0x0a9e('0x2d')](this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]],[_0x0a9e('0x28'),'destconnectedlinenum']);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:',_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db],{'showHidden':![],'depth':null}));ami['emit'](_0x0a9e('0x66'),this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db]);logger['debug'](_0x0a9e('0x67'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')]({'id':this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]},{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')]('user:%s',_0x40fc56[_0x0a9e('0x21')]),_0x0a9e('0x69'),{'id':this['agents'][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]});}}}}}}catch(_0x3a1974){logger['error'](_0x0a9e('0x6a'),_0x40fc56['uniqueid'],util[_0x0a9e('0x25')](_0x3a1974,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x15')]=function(_0x1f29bd){try{if(this[_0x0a9e('0x1e')](_0x1f29bd)){logger[_0x0a9e('0x23')](_0x0a9e('0x6b'),_0x1f29bd[_0x0a9e('0x26')],util['inspect'](_0x1f29bd,{'showHidden':![],'depth':null}));this[_0x0a9e('0x6c')](_0x1f29bd[_0x0a9e('0x26')],_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){for(var _0x33f0c9 in this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x33f0c9)){logger['info'](_0x0a9e('0x70'),_0x1f29bd[_0x0a9e('0x26')],_0x33f0c9,_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(_['isUndefined'](this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9]['variables'])){this[_0x0a9e('0x8')][_0x1f29bd['uniqueid']][_0x33f0c9][_0x0a9e('0xb')]={};}this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9][_0x0a9e('0xb')]=this['variables'][_0x1f29bd[_0x0a9e('0x26')]];}}}}}catch(_0x4cf72d){logger[_0x0a9e('0x37')](_0x0a9e('0x71'),_0x1f29bd['uniqueid'],util[_0x0a9e('0x25')](_0x4cf72d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x6c')]=function(_0x4ab276,_0x4c788f,_0x1b82b7){var _0x6ba2be=[_0x0a9e('0x72'),_0x0a9e('0x73'),_0x0a9e('0x74'),_0x0a9e('0x75'),_0x0a9e('0x76'),_0x0a9e('0x77'),_0x0a9e('0x78'),'rtpaudioqosrttbridged',_0x0a9e('0x79'),'sipuri',_0x0a9e('0x7a'),_0x0a9e('0x7b'),_0x0a9e('0x7c'),_0x0a9e('0x7d'),_0x0a9e('0x7e'),'memberlastcall',_0x0a9e('0x21'),_0x0a9e('0x7f'),_0x0a9e('0x80')];if(!_[_0x0a9e('0x81')](_0x4c788f)&&!_[_0x0a9e('0x82')](_0x6ba2be,_0x4c788f)){if(_['isUndefined'](this['variables'][_0x4ab276])){this[_0x0a9e('0xb')][_0x4ab276]={};}this['variables'][_0x4ab276][_0x4c788f]=_0x1b82b7;}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x17')]=function(_0x4672e1){try{if(this[_0x0a9e('0x1e')](_0x4672e1)){logger[_0x0a9e('0x23')](_0x0a9e('0x83'),_0x4672e1['uniqueid'],util['inspect'](_0x4672e1,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']]){for(var _0x2469d1 in this['channels'][_0x4672e1[_0x0a9e('0x26')]]){if(this['channels'][_0x4672e1['uniqueid']][_0x0a9e('0x58')](_0x2469d1)){if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']][_0x2469d1][_0x0a9e('0x4e')]==_0x0a9e('0x84')&&this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x4672e1[_0x0a9e('0x26')],_0x2469d1);this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')]('YYYY-MM-DD\x20HH:mm:ss');}}}logger[_0x0a9e('0x23')](_0x0a9e('0x85'),_0x4672e1['uniqueid'],util[_0x0a9e('0x25')](_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]),{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x87'),_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]));delete this[_0x0a9e('0x8')][_0x4672e1['uniqueid']];}if(this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]]){delete this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]];}}}catch(_0x1d0b02){logger['error']('[%s][voiceAgentReport][hangup]',_0x4672e1[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x1d0b02,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x88')]=function(_0x34f7b5){try{if(this['isNotNull'](_0x34f7b5)){logger[_0x0a9e('0x23')](_0x0a9e('0x89'),_0x34f7b5[_0x0a9e('0x26')],util['inspect'](_0x34f7b5,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]){for(var _0x2144ca in this['channels'][_0x34f7b5[_0x0a9e('0x8a')]]){if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]]['hasOwnProperty'](_0x2144ca)){if(_0x34f7b5[_0x0a9e('0x8b')]===_0x2144ca){logger['info'](_0x0a9e('0x8c'),_0x34f7b5[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x21')],_0x2144ca);var _0x1bee04=moment();this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca]['lastevent']='complete';this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x4e')]=_0x0a9e('0x84');this['channels'][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x62')]=_0x1bee04[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]]){var _0x5d0e1f=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]];this[_0x0a9e('0x8')][_0x34f7b5['secondtransfereruniqueid']]=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]];this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]=_0x5d0e1f;}}}catch(_0x303f75){logger[_0x0a9e('0x37')](_0x0a9e('0x90'),_0x34f7b5[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x303f75,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x1b')]=function(_0x289e65){try{if(this['isNotNull'](_0x289e65)){logger[_0x0a9e('0x23')](_0x0a9e('0x91'),_0x289e65[_0x0a9e('0x26')],util['inspect'](_0x289e65,{'showHidden':![],'depth':null}));if(this['channels'][_0x289e65['transfereeuniqueid']]){for(var _0x1015aa in this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']]){if(this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x0a9e('0x58')](_0x1015aa)){if(_0x289e65['transfereruniqueid']===_0x1015aa){logger[_0x0a9e('0x20')](_0x0a9e('0x92'),_0x289e65[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x21')],_0x1015aa);var _0x40e6e7=moment();this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x5f')]=_0x40e6e7;this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x4e')]=_0x0a9e('0x84');this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['talktime']=_0x40e6e7[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}}}catch(_0x2be526){logger[_0x0a9e('0x37')](_0x0a9e('0x93'),_0x289e65[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2be526,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x18')]=function(_0x88b25f){var _0x2ff265='';try{if(this[_0x0a9e('0x1e')](_0x88b25f)){logger[_0x0a9e('0x23')](_0x0a9e('0x94'),_0x88b25f[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x88b25f,{'showHidden':![],'depth':null}));if(_0x88b25f['channel']){_0x2ff265=_0x88b25f[_0x0a9e('0x95')][_0x0a9e('0x96')](0x0,_0x88b25f[_0x0a9e('0x95')]['lastIndexOf']('-'));if(this[_0x0a9e('0xa')][_0x2ff265]){logger[_0x0a9e('0x20')](_0x0a9e('0x97'),_0x88b25f[_0x0a9e('0x26')],_0x2ff265);this[_0x0a9e('0xa')][_0x2ff265][_0x0a9e('0x98')]=!![];}}}}catch(_0x424f1b){logger[_0x0a9e('0x37')](_0x0a9e('0x99'),_0x88b25f[_0x0a9e('0x26')],util['inspect'](_0x424f1b,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x9a')]=function(_0x15a9ed){var _0x3db98f='';try{if(this[_0x0a9e('0x1e')](_0x15a9ed)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][musiconholdstop]\x20event:',_0x15a9ed[_0x0a9e('0x26')],util['inspect'](_0x15a9ed,{'showHidden':![],'depth':null}));if(_0x15a9ed['channel']){_0x3db98f=_0x15a9ed['channel'][_0x0a9e('0x96')](0x0,_0x15a9ed[_0x0a9e('0x95')][_0x0a9e('0x9b')]('-'));if(this[_0x0a9e('0xa')][_0x3db98f]){logger['info'](_0x0a9e('0x9c'),_0x15a9ed[_0x0a9e('0x26')],_0x3db98f);this[_0x0a9e('0xa')][_0x3db98f][_0x0a9e('0x98')]=![];}}}}catch(_0x2c8d1d){logger['error']('[%s][voiceAgentReport][musiconholdstop]',_0x15a9ed[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2c8d1d,{'showHidden':![],'depth':null}));}};module[_0x0a9e('0x9d')]=VoiceAgentReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71ef=['[%s][voiceCallReport][varset]','[%s][voiceCallReport][hangup]\x20event:','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','billableseconds','answertime','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','transferType','isEmpty','getSettings','then','stopRecordingOnTransfer','resolve','Action','StopMixMonitor','catch','finally','webbar:stopmonitors','event','BlindTransfer','outbound','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','custom:voiceCallReport','syncAttendedTransfer','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfertargetcalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','some','routeid','ATTENDED','origtransfererlinkedid','[%s][voiceCallReport][attendedtransfer]','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','[%s][voiceCallReport][blindtransfer]\x20event:','transfererchannel','transfereruniqueid','BLIND','[%s][voiceCallReport][blindtransfer]','[%s][voiceCallReport][musiconholdstart]\x20event:','isNil','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstart]','syncMusicOnHoldStop','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','exports','bluebird','lodash','moment','util','../../../config/logger','ami','../ami','../model/channel','unknown','not_inuse','inuse','invalid','unavailable','onhold','set','queue','agi','dial','playback','voicemail','NO\x20ANSWER','FAILED','ANSWERED','BUSY','defaults','redis','localhost','socket.io-emitter','channels','agents','blindTransfers','coreshowchannel','bind','newexten','syncNewExten','newchannel','syncNewState','varset','hangup','syncHangup','attendedtransfer','blindtransfer','syncBlindTransfer','musiconholdstart','musiconholdstop','info','[voiceCallReport][coreshowchannels]\x20started','actionCoreShowChannels','error','inspect','isNotNull','isUndefined','prototype','emit','syncNewCallerId','uniqueid','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:','linkedid','pick','keys','context','from-sip','channel','split','xcally-motion-preview','destconnectedlinenum','connectedlinenum','user:%s','accountcode','[%s][voiceCallReport][newcallerid]','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','exten','starttime','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','merge','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','format','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','toLowerCase','applicationdata','appdata','startsWith','CDR(routeAlias)','application','duration','subtract','seconds','includes','lastapplication','lastdata','cdr(','match','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','calleridname','answered','holdtime','diff','destinationchannel','UserId','membername','name','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','user:agentconnect','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','endsWith','.wav49','.WAV','find','monitors','push','syncVarSet','variable','mixmonitor_filename','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','xmd-queue','xmd-originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','originatecalleridnum','xmd-destination','destination','xmd-callerid-preview','calleridpreview','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','parse','sipcalllinkedid'];(function(_0xcd5dd9,_0x39db8b){var _0x49a82b=function(_0x4b353e){while(--_0x4b353e){_0xcd5dd9['push'](_0xcd5dd9['shift']());}};_0x49a82b(++_0x39db8b);}(_0x71ef,0x1d0));var _0xf71e=function(_0x31a938,_0x4daec6){_0x31a938=_0x31a938-0x0;var _0x1bf341=_0x71ef[_0x31a938];return _0x1bf341;};'use strict';var BPromise=require(_0xf71e('0x0'));var _=require(_0xf71e('0x1'));var moment=require(_0xf71e('0x2'));var util=require(_0xf71e('0x3'));var path=require('path');var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0xf71e('0x4'))(_0xf71e('0x5'));var ami=require(_0xf71e('0x6'));var Channel=require(_0xf71e('0x7'));var RpcSetting=require('../rpc/setting');var statusDesc=[_0xf71e('0x8'),_0xf71e('0x9'),_0xf71e('0xa'),'busy',_0xf71e('0xb'),_0xf71e('0xc'),'ringing','ringinuse',_0xf71e('0xd')];var applications=[_0xf71e('0xe'),_0xf71e('0xf'),_0xf71e('0x10'),_0xf71e('0x11'),_0xf71e('0x12'),_0xf71e('0x13')];var dispositions=[_0xf71e('0x14'),_0xf71e('0x15'),'FAILED',_0xf71e('0x14'),_0xf71e('0x14'),_0xf71e('0x14'),_0xf71e('0x16'),_0xf71e('0x17'),'FAILED',_0xf71e('0x15'),_0xf71e('0x15')];var actions={};config['redis']=_[_0xf71e('0x18')](config[_0xf71e('0x19')],{'host':_0xf71e('0x1a'),'port':0x18eb});var io=require(_0xf71e('0x1b'))(new Redis(config[_0xf71e('0x19')]));function VoiceCallReport(_0x204d70){this[_0xf71e('0x1c')]=_0x204d70[_0xf71e('0x1c')];this[_0xf71e('0x1d')]=_0x204d70[_0xf71e('0x1d')];this[_0xf71e('0x1e')]={};ami['on'](_0xf71e('0x1f'),this['syncNewExten'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x21'),this[_0xf71e('0x22')]['bind'](this));ami['on'](_0xf71e('0x23'),this['syncNewChannel'][_0xf71e('0x20')](this));ami['on']('newstate',this[_0xf71e('0x24')][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x25'),this['syncVarSet'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x26'),this[_0xf71e('0x27')]['bind'](this));ami['on']('newcallerid',this['syncNewCallerId'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x28'),this['syncAttendedTransfer'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x29'),this[_0xf71e('0x2a')]['bind'](this));ami['on'](_0xf71e('0x2b'),this['syncMusicOnHoldStart'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x2c'),this['syncMusicOnHoldStop']['bind'](this));try{logger[_0xf71e('0x2d')](_0xf71e('0x2e'));ami[_0xf71e('0x2f')]();}catch(_0x2ed47f){logger[_0xf71e('0x30')]('[voiceCallReport][coreshowchannels]',util[_0xf71e('0x31')](_0x2ed47f,{'showHidden':![],'depth':null}));}}VoiceCallReport['prototype'][_0xf71e('0x32')]=function(_0x235744){return _0x235744!==null&&!_[_0xf71e('0x33')](_0x235744);};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x35')]=function(_0xa73624,_0x2d26db,_0x3dcf9a){io['to'](_0xa73624)['emit'](_0x2d26db,_0x3dcf9a);};VoiceCallReport['prototype'][_0xf71e('0x36')]=function(_0x55b830){try{if(this[_0xf71e('0x32')](_0x55b830)){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s',_0x55b830[_0xf71e('0x37')],_0x55b830['calleridname'],_0x55b830[_0xf71e('0x38')]);logger[_0xf71e('0x39')](_0xf71e('0x3a'),_0x55b830[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x55b830,{'showHidden':![],'depth':null}));if(_0x55b830['uniqueid']===_0x55b830[_0xf71e('0x3b')]){if(!_[_0xf71e('0x33')](this['channels'][_0x55b830[_0xf71e('0x37')]])){_['merge'](this[_0xf71e('0x1c')][_0x55b830['uniqueid']],_[_0xf71e('0x3c')](_0x55b830,_[_0xf71e('0x3d')](this['channels'][_0x55b830[_0xf71e('0x37')]])));}}if(_0x55b830[_0xf71e('0x3e')]===_0xf71e('0x3f')){if(this[_0xf71e('0x1d')][_0x55b830[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]){if(_0x55b830['exten']==_0xf71e('0x42')){this[_0xf71e('0x1d')][_0x55b830[_0xf71e('0x40')]['split']('-')[0x0]][_0xf71e('0x43')]=_0x55b830[_0xf71e('0x44')];this[_0xf71e('0x35')](util['format'](_0xf71e('0x45'),this[_0xf71e('0x1d')][_0x55b830[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['name']),'user:agentconnect',{'destaccountcode':this[_0xf71e('0x1d')][_0x55b830['channel'][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x55b830[_0xf71e('0x44')]});}}}}}catch(_0x5792bd){logger[_0xf71e('0x30')](_0xf71e('0x47'),_0x55b830[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x5792bd,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncNewChannel']=function(_0x119eb3){try{if(this['isNotNull'](_0x119eb3)){logger[_0xf71e('0x39')]('[%s][voiceCallReport][newchannel]\x20event:',_0x119eb3[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x119eb3,{'showHidden':![],'depth':null}));if(_0x119eb3[_0xf71e('0x37')]===_0x119eb3[_0xf71e('0x3b')]&&_0x119eb3['channel']!=_0xf71e('0x48')){if(_[_0xf71e('0x33')](this[_0xf71e('0x1c')][_0x119eb3['uniqueid']])){logger['info'](_0xf71e('0x49'),_0x119eb3[_0xf71e('0x37')],_0x119eb3[_0xf71e('0x3e')],_0x119eb3[_0xf71e('0x4a')]);this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]]=new Channel();this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]][_0xf71e('0x4b')]=moment()['format'](_0xf71e('0x4c'));this[_0xf71e('0x1c')][_0x119eb3['uniqueid']][_0xf71e('0x4d')]=dispositions[_[_0xf71e('0x4e')](_0x119eb3[_0xf71e('0x4f')])];_[_0xf71e('0x50')](this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]],_['pick'](_0x119eb3,_[_0xf71e('0x3d')](this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]])));if(_0x119eb3[_0xf71e('0x3e')]===_0xf71e('0x3f')){if(this[_0xf71e('0x1d')][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]){if(_[_0xf71e('0x33')](this[_0xf71e('0x1d')][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x43')])){this[_0xf71e('0x1d')][_0x119eb3['channel'][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x43')]=_0x119eb3[_0xf71e('0x4a')];logger[_0xf71e('0x39')](_0xf71e('0x51'),_0x119eb3[_0xf71e('0x37')],util[_0xf71e('0x31')]({'destaccountcode':this['agents'][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x119eb3[_0xf71e('0x4a')]},{'showHidden':![],'depth':null}));this['emit'](util[_0xf71e('0x52')](_0xf71e('0x45'),this['agents'][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['name']),'user:agentconnect',{'destaccountcode':this[_0xf71e('0x1d')][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x119eb3[_0xf71e('0x4a')]});}}}}}}}catch(_0x2b5a21){logger[_0xf71e('0x30')](_0xf71e('0x53'),_0x119eb3['uniqueid'],util['inspect'](_0x2b5a21,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x22')]=function(_0x5d276b){try{if(this['isNotNull'](_0x5d276b)){logger['debug'](_0xf71e('0x54'),_0x5d276b[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x5d276b,{'showHidden':![],'depth':null}));if(_0x5d276b['uniqueid']===_0x5d276b[_0xf71e('0x3b')]&&_0x5d276b[_0xf71e('0x4a')]!='h'&&_0x5d276b['channel']!='OutgoingSpoolFailed'){_0x5d276b['application']=_0x5d276b['application'][_0xf71e('0x55')]();_0x5d276b[_0xf71e('0x56')]=_0x5d276b[_0xf71e('0x57')]&&_0x5d276b[_0xf71e('0x57')][_0xf71e('0x58')](_0xf71e('0x59'))?_0x5d276b[_0xf71e('0x57')]:(_0x5d276b[_0xf71e('0x57')]||_0x5d276b[_0xf71e('0x56')])['toLowerCase']();logger['info']('[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s',_0x5d276b[_0xf71e('0x37')],_0x5d276b[_0xf71e('0x5a')],_0x5d276b['applicationdata']);if(_['isUndefined'](this[_0xf71e('0x1c')][_0x5d276b['uniqueid']])){this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]]=new Channel();this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x4b')]=_0x5d276b[_0xf71e('0x5b')]?moment()[_0xf71e('0x5c')](moment['duration'](_0x5d276b[_0xf71e('0x5b')])[_0xf71e('0x5d')](),_0xf71e('0x5d'))['format']('YYYY-MM-DD\x20HH:mm:ss'):moment()['format'](_0xf71e('0x4c'));this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x4d')]=_0xf71e('0x14');}_[_0xf71e('0x50')](this[_0xf71e('0x1c')][_0x5d276b['uniqueid']],_[_0xf71e('0x3c')](_0x5d276b,_[_0xf71e('0x3d')](this['channels'][_0x5d276b[_0xf71e('0x37')]])));if(_[_0xf71e('0x5e')](applications,_0x5d276b[_0xf71e('0x5a')])){this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x5f')]=_0x5d276b[_0xf71e('0x5a')];this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x60')]=_0x5d276b[_0xf71e('0x56')];if(_0x5d276b[_0xf71e('0x5a')]===_0xf71e('0xe')&&_[_0xf71e('0x58')](_0x5d276b[_0xf71e('0x56')][_0xf71e('0x55')](),_0xf71e('0x61'))){var _0x26bf13=_0x5d276b[_0xf71e('0x56')][_0xf71e('0x41')]('=');var _0xf30eb2=_0x26bf13[0x0]['toLowerCase']()[_0xf71e('0x62')](/cdr\((.*)\)/);if(_0xf30eb2){this[_0xf71e('0x1c')][_0x5d276b['uniqueid']][_0xf30eb2[0x1]]=_0x26bf13[0x1];}}else if(_0x5d276b[_0xf71e('0x5a')]==='queue'){this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0xf')]=_0x5d276b['applicationdata'][_0xf71e('0x41')](',')[0x0];}}}}}catch(_0xac4fd9){logger[_0xf71e('0x30')](_0xf71e('0x63'),_0x5d276b[_0xf71e('0x37')],util[_0xf71e('0x31')](_0xac4fd9,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0xf71e('0x24')]=function(_0x20cc66){try{if(this['isNotNull'](_0x20cc66)){logger[_0xf71e('0x2d')](_0xf71e('0x64'),_0x20cc66[_0xf71e('0x37')],_0x20cc66[_0xf71e('0x3b')],_0x20cc66[_0xf71e('0x65')],_0x20cc66['calleridnum']);logger[_0xf71e('0x39')]('[%s][voiceCallReport][newstate]\x20event:',_0x20cc66['uniqueid'],util[_0xf71e('0x31')](_0x20cc66,{'showHidden':![],'depth':null}));if(_0x20cc66['uniqueid']!==_0x20cc66[_0xf71e('0x3b')]){if(this['channels'][_0x20cc66['linkedid']]){if(_0x20cc66[_0xf71e('0x4f')]==='6'){if(!this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x66')]){var _0x4464b6=moment();this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x66')]=!![];this[_0xf71e('0x1c')][_0x20cc66['linkedid']]['answertime']=_0x4464b6[_0xf71e('0x52')]('YYYY-MM-DD\x20HH:mm:ss');if(this['channels'][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x4b')]){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x67')]=_0x4464b6[_0xf71e('0x68')](this['channels'][_0x20cc66['linkedid']][_0xf71e('0x4b')],_0xf71e('0x5d'));}}this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x3b')]=_0x20cc66[_0xf71e('0x37')];if(_0x20cc66[_0xf71e('0x38')]!==_0xf71e('0x42')){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x44')]=_0x20cc66['calleridnum'];}this[_0xf71e('0x1c')][_0x20cc66['linkedid']]['connectedlinename']=_0x20cc66[_0xf71e('0x65')];this[_0xf71e('0x1c')][_0x20cc66['linkedid']][_0xf71e('0x69')]=_0x20cc66[_0xf71e('0x40')];this[_0xf71e('0x1c')][_0x20cc66['linkedid']][_0xf71e('0x4d')]=dispositions[_[_0xf71e('0x4e')](_0x20cc66['channelstate'])];if(this['agents'][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x6a')]=this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['id'];this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x6b')]=this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x6c')];}}}}else{if(this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]]){if(_0x20cc66[_0xf71e('0x4f')]==='6'){if(this[_0xf71e('0x1d')][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]]['UserId']=this[_0xf71e('0x1d')][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]['id'];this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]][_0xf71e('0x6b')]=this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')]['split']('-')[0x0]]['name'];}}}}if(_0x20cc66['channelstate']==='6'&&_0x20cc66[_0xf71e('0x3e')]===_0xf71e('0x3f')){if(this['agents'][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]){this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['destconnectedlinenum']=_0x20cc66[_0xf71e('0x4a')];var _0x5a58ff;if(this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]])_0x5a58ff=this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]][_0xf71e('0x6d')];else if(this['channels'][_0x20cc66[_0xf71e('0x3b')]])_0x5a58ff=this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]]['routealias'];logger[_0xf71e('0x39')](_0xf71e('0x6e'),_0x20cc66[_0xf71e('0x37')],util[_0xf71e('0x31')]({'destaccountcode':this[_0xf71e('0x1d')][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x20cc66[_0xf71e('0x4a')],'routealias':_0x5a58ff},{'showHidden':![],'depth':null}));this[_0xf71e('0x35')](util['format'](_0xf71e('0x45'),this[_0xf71e('0x1d')][_0x20cc66['channel']['split']('-')[0x0]][_0xf71e('0x6c')]),_0xf71e('0x6f'),{'destaccountcode':this[_0xf71e('0x1d')][_0x20cc66['channel']['split']('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x20cc66[_0xf71e('0x4a')],'routealias':_0x5a58ff});}}}}catch(_0xd7729b){logger[_0xf71e('0x30')](_0xf71e('0x70'),_0x20cc66[_0xf71e('0x37')],util[_0xf71e('0x31')](_0xd7729b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x71')]=function(_0x10d9a1,_0x296340){try{if(this[_0xf71e('0x1c')][_0x10d9a1]){logger[_0xf71e('0x2d')](_0xf71e('0x72'),_0x10d9a1,_0x296340);this[_0xf71e('0x1c')][_0x10d9a1]['monitor']=!![];if(_[_0xf71e('0x73')](_0x296340,'.wav49')){_0x296340=_0x296340['replace'](_0xf71e('0x74'),_0xf71e('0x75'));}this['channels'][_0x10d9a1]['monitorFilename']=_0x296340;var _0x246771=_[_0xf71e('0x76')](this[_0xf71e('0x1c')][_0x10d9a1][_0xf71e('0x77')],{'filename':_0x296340});if(_['isNil'](_0x246771)){this[_0xf71e('0x1c')][_0x10d9a1][_0xf71e('0x77')][_0xf71e('0x78')]({'filename':_0x296340,'createdAt':moment()['format'](_0xf71e('0x4c')),'mixmonitorid':'','status':'rec'});}}}catch(_0x37451b){logger[_0xf71e('0x30')]('[%s][voiceCallReport][mixMonitorFilename]',_0x10d9a1,util['inspect'](_0x37451b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x79')]=function(_0x5ac467){try{if(this[_0xf71e('0x32')](_0x5ac467)){logger[_0xf71e('0x39')]('[%s][voiceCallReport][varset]\x20event:',_0x5ac467['uniqueid'],util[_0xf71e('0x31')](_0x5ac467,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x5ac467['uniqueid']]&&_0x5ac467[_0xf71e('0x40')]!=_0xf71e('0x48')){if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')])){if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x7b')])){logger[_0xf71e('0x2d')](_0xf71e('0x7c'),_0x5ac467['uniqueid'],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x71')](_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')]['xmd-phone'])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s',_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this['channels'][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x38')]=_0x5ac467[_0xf71e('0x7d')];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x7e')])){logger[_0xf71e('0x2d')](_0xf71e('0x7f'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this['channels'][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x80')]=_0x5ac467[_0xf71e('0x7d')];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')]['xmd-cdrtype'])){logger[_0xf71e('0x2d')](_0xf71e('0x81'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x82')]=_0x5ac467[_0xf71e('0x7d')];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x83')])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s',_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')][_0xf71e('0x41')](',')[0x0]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0xf')]=_0x5ac467[_0xf71e('0x7d')][_0xf71e('0x41')](',')[0x0];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x84')])){logger['info'](_0xf71e('0x85'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467['uniqueid']][_0xf71e('0x86')]=_0x5ac467['value'];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x87')])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s',_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467['uniqueid']][_0xf71e('0x88')]=_0x5ac467[_0xf71e('0x7d')];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x89')])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s',_0x5ac467['uniqueid'],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x8a')]=_0x5ac467[_0xf71e('0x7d')];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x8b')])){logger[_0xf71e('0x2d')](_0xf71e('0x8c'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467['uniqueid']]['queue']=_0x5ac467['value'];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x8d')])){logger[_0xf71e('0x2d')](_0xf71e('0x8e'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]]['sipcalluniqueid']=_0x5ac467[_0xf71e('0x7d')];}}}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x7b')])){if(_0x5ac467[_0xf71e('0x7d')]){var _0x3d993a=path[_0xf71e('0x8f')](_0x5ac467[_0xf71e('0x7d')])['name'];logger[_0xf71e('0x2d')](_0xf71e('0x7c'),_0x3d993a,_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x71')](_0x3d993a,_0x5ac467[_0xf71e('0x7d')]);}}else if(this[_0xf71e('0x1c')][_0x5ac467['linkedid']]){if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')])){if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')]['sipcallid'])){logger[_0xf71e('0x2d')](_0xf71e('0x8e'),_0x5ac467[_0xf71e('0x3b')],_0x5ac467['value']);this[_0xf71e('0x1c')][_0x5ac467['linkedid']][_0xf71e('0x90')]=_0x5ac467['value'];}}}}}catch(_0x9413a9){logger[_0xf71e('0x30')](_0xf71e('0x91'),_0x5ac467[_0xf71e('0x37')],util['inspect'](_0x9413a9,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x27')]=function(_0x11c708){try{if(this[_0xf71e('0x32')](_0x11c708)){logger[_0xf71e('0x39')](_0xf71e('0x92'),_0x11c708[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x11c708,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]]){logger[_0xf71e('0x2d')](_0xf71e('0x93'),_0x11c708[_0xf71e('0x37')],_0x11c708[_0xf71e('0x94')]);var _0x41d9f1=moment();this['channels'][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x95')]=_0x41d9f1[_0xf71e('0x52')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x5b')]=_0x41d9f1[_0xf71e('0x68')](this[_0xf71e('0x1c')][_0x11c708['uniqueid']]['starttime'],_0xf71e('0x5d'));if(this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x66')]){this[_0xf71e('0x1c')][_0x11c708['uniqueid']][_0xf71e('0x96')]=_0x41d9f1['diff'](this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x97')],_0xf71e('0x5d'));this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x67')]=this['channels'][_0x11c708[_0xf71e('0x37')]]['duration']-this[_0xf71e('0x1c')][_0x11c708['uniqueid']]['billableseconds'];}if(_0x11c708[_0xf71e('0x3e')]==='from-sip'){if(this[_0xf71e('0x1d')][_0x11c708['channel']['split']('-')[0x0]]){this['agents'][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]=_['omit'](this['agents'][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]],[_0xf71e('0x43')]);logger[_0xf71e('0x39')](_0xf71e('0x98'),_0x11c708[_0xf71e('0x37')],util['inspect']({'id':this['agents'][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['id'],'destaccountcode':this[_0xf71e('0x1d')][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')]},{'showHidden':![],'depth':null}));this[_0xf71e('0x35')](util['format'](_0xf71e('0x45'),this[_0xf71e('0x1d')][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x6c')]),_0xf71e('0x99'),{'id':this[_0xf71e('0x1d')][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['id'],'destaccountcode':this[_0xf71e('0x1d')][_0x11c708['channel'][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')]});}}var _0x23af76=this;Promise['resolve']()['then'](function(){var _0x371780=_0x23af76[_0xf71e('0x1c')][_0x11c708['uniqueid']];if(typeof _0x371780[_0xf71e('0x9a')]==='undefined')return;if(_[_0xf71e('0x9b')](_0x371780[_0xf71e('0x77')]))return;return RpcSetting[_0xf71e('0x9c')]()[_0xf71e('0x9d')](function(_0x53a5d4){if(!_0x53a5d4[_0xf71e('0x9e')])return;return Promise[_0xf71e('0x9f')]()['then'](function(){return ami[_0xf71e('0xa0')]({'action':_0xf71e('0xa1'),'channel':_0x371780[_0xf71e('0x40')]})[_0xf71e('0xa2')](function(){});})[_0xf71e('0x9d')](function(){return ami['Action']({'action':_0xf71e('0xa1'),'channel':_0x371780[_0xf71e('0x69')]})[_0xf71e('0xa2')](function(){})[_0xf71e('0xa3')](function(){var _0x4162f6=_0x23af76[_0xf71e('0x1d')][_0x371780[_0xf71e('0x69')][_0xf71e('0x41')]('-')[0x0]];if(!_0x4162f6)return;io[_0xf71e('0x35')](_0xf71e('0xa4'),{'agentId':_0x4162f6['id'],'uniqueid':_0x371780[_0xf71e('0x37')]});});});});})[_0xf71e('0x9d')](function(){if(_0x11c708[_0xf71e('0xa5')]===_0xf71e('0xa6')){_0x23af76[_0xf71e('0x1e')][_0x11c708[_0xf71e('0x37')]]=_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]];}else{if(_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x82')]===_0xf71e('0xa7')&&_0x23af76['blindTransfers'][_0x11c708[_0xf71e('0x37')]]){_0x23af76['channels'][_0x11c708[_0xf71e('0x37')]]['uniqueid']=[_0x23af76['channels'][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x3b')],_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x3b')]=_0x23af76['channels'][_0x11c708['uniqueid']][_0xf71e('0x37')]][0x0];delete _0x23af76['blindTransfers'][_0x11c708[_0xf71e('0x37')]];}}logger['debug'](_0xf71e('0xa8'),_0x11c708[_0xf71e('0x37')],util['inspect'](_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]],{'showHidden':![],'depth':null}));ami[_0xf71e('0x35')](_0xf71e('0xa9'),_0x23af76[_0xf71e('0x1c')][_0x11c708['uniqueid']]);delete _0x23af76[_0xf71e('0x1c')][_0x11c708['uniqueid']];});}}}catch(_0xfb930d){logger['error']('[%s][voiceCallReport][hangup]',_0x11c708[_0xf71e('0x37')],util['inspect'](_0xfb930d,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0xaa')]=function(_0x522315){try{if(this[_0xf71e('0x32')](_0x522315)){logger[_0xf71e('0x2d')](_0xf71e('0xab'),_0x522315[_0xf71e('0x37')],_0x522315[_0xf71e('0xac')],_0x522315[_0xf71e('0xad')]);logger[_0xf71e('0x39')](_0xf71e('0xae'),_0x522315[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x522315,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xaf')]]){this['channels'][_0x522315[_0xf71e('0xaf')]][_0xf71e('0xb0')]=_0x522315[_0xf71e('0xac')];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xaf')]][_0xf71e('0xb1')]=_0x522315['transfertargetcalleridnum'];if(this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb2')]]){var _0x3990c2=this['channels'][_0x522315[_0xf71e('0xb2')]];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb2')]]=this['channels'][_0x522315[_0xf71e('0xaf')]];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xaf')]]=_0x3990c2;}}else if(this['channels'][_0x522315[_0xf71e('0xb3')]]){this[_0xf71e('0x1c')][_0x522315['transfertargetuniqueid']]['transfercalleridnum']=_0x522315['origtransferercalleridnum'];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb3')]]['transferconnectedlinenum']=_0x522315[_0xf71e('0xad')];if(this['channels'][_0x522315[_0xf71e('0xb4')]]){var _0x3990c2=this['channels'][_0x522315[_0xf71e('0xb4')]];this[_0xf71e('0x1c')][_0x522315['origtransfereruniqueid']]=this[_0xf71e('0x1c')][_0x522315['transfertargetuniqueid']];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb3')]]=_0x3990c2;}}if((this[_0xf71e('0x1c')][_0x522315['origtransfereruniqueid']]||this['channels'][_0x522315['origtransfererlinkedid']])&&this['channels'][_0x522315['secondtransfereruniqueid']]){var _0x57471f=_[_0xf71e('0xb5')]([this['channels'][_0x522315['origtransfereruniqueid']],this[_0xf71e('0x1c')][_0x522315['origtransfererlinkedid']],this[_0xf71e('0x1c')][_0x522315['secondtransfereruniqueid']]],function(_0x504e2f){return _0x504e2f&&_0x504e2f[_0xf71e('0x82')]===_0xf71e('0xa7')&&_0x504e2f[_0xf71e('0xb6')];});if(_0x57471f){if(this[_0xf71e('0x1c')][_0x522315['origtransfereruniqueid']])this['channels'][_0x522315[_0xf71e('0xb4')]]['transferType']=_0xf71e('0xb7');if(this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb8')]])this[_0xf71e('0x1c')][_0x522315['origtransfererlinkedid']][_0xf71e('0x9a')]=_0xf71e('0xb7');this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb2')]][_0xf71e('0x9a')]=_0xf71e('0xb7');}}}}catch(_0x357612){logger['error'](_0xf71e('0xb9'),_0x522315[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x357612,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x2a')]=function(_0x21f9d8){try{if(this[_0xf71e('0x32')](_0x21f9d8)){logger[_0xf71e('0x2d')](_0xf71e('0xba'),_0x21f9d8['uniqueid'],_0x21f9d8['transfereecalleridnum'],_0x21f9d8['extension']);logger['debug'](_0xf71e('0xbb'),_0x21f9d8[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x21f9d8,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x21f9d8['transfereeuniqueid']]){this[_0xf71e('0x1c')][_0x21f9d8[_0xf71e('0xaf')]]['transfercalleridnum']=_0x21f9d8['transfereecalleridnum'];this[_0xf71e('0x1c')][_0x21f9d8['transfereeuniqueid']]['transferconnectedlinenum']=_0x21f9d8['extension'];this[_0xf71e('0x1c')][_0x21f9d8['transfereeuniqueid']]['transferType']='BLIND';this[_0xf71e('0x27')]({'event':'BlindTransfer','uniqueid':_0x21f9d8[_0xf71e('0xaf')],'context':_0x21f9d8['context'],'channel':_0x21f9d8[_0xf71e('0xbc')]});}else{this[_0xf71e('0x1c')][_0x21f9d8[_0xf71e('0xbd')]][_0xf71e('0x9a')]=_0xf71e('0xbe');}}}catch(_0x5e6a8b){logger['error'](_0xf71e('0xbf'),_0x21f9d8[_0xf71e('0x37')],util['inspect'](_0x5e6a8b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')]['syncMusicOnHoldStart']=function(_0xe85b8){try{if(this[_0xf71e('0x32')](_0xe85b8)){logger[_0xf71e('0x39')](_0xf71e('0xc0'),_0xe85b8[_0xf71e('0x37')],util['inspect'](_0xe85b8,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0xe85b8[_0xf71e('0x37')]]){if(!_[_0xf71e('0xc1')](this[_0xf71e('0x1c')][_0xe85b8[_0xf71e('0x37')]][_0xf71e('0x97')])){this['channels'][_0xe85b8['uniqueid']][_0xf71e('0xc2')]=moment()[_0xf71e('0x52')](_0xf71e('0x4c'));logger[_0xf71e('0x2d')](_0xf71e('0xc3'),_0xe85b8[_0xf71e('0x37')],this[_0xf71e('0x1c')][_0xe85b8['uniqueid']][_0xf71e('0xc2')]);}}}}catch(_0x33271d){logger[_0xf71e('0x30')](_0xf71e('0xc4'),_0xe85b8['uniqueid'],util[_0xf71e('0x31')](_0x33271d,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0xc5')]=function(_0x22fa2a){try{if(this['isNotNull'](_0x22fa2a)){logger[_0xf71e('0x39')](_0xf71e('0xc6'),_0x22fa2a['uniqueid'],util[_0xf71e('0x31')](_0x22fa2a,{'showHidden':![],'depth':null}));if(this['channels'][_0x22fa2a[_0xf71e('0x37')]]){if(!_[_0xf71e('0xc1')](this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc2')])){this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc7')]+=moment()['milliseconds'](0x0)[_0xf71e('0x68')](this['channels'][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc2')],'seconds');logger['info'](_0xf71e('0xc8'),_0x22fa2a['uniqueid'],this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]]['mohtime']);delete this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc2')];}}}}catch(_0x1bc256){logger[_0xf71e('0x30')](_0xf71e('0xc9'),_0x22fa2a[_0xf71e('0x37')],util['inspect'](_0x1bc256,{'showHidden':![],'depth':null}));}};module[_0xf71e('0xca')]=VoiceCallReport;
\ No newline at end of file
+var _0x3ac8=['subtract','seconds','includes','lastdata','cdr(','match','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','answered','answertime','holdtime','diff','connectedlinename','destinationchannel','UserId','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','monitor','endsWith','.wav49','replace','.WAV','monitorFilename','find','monitors','push','rec','[%s][voiceCallReport][varset]\x20event:','OutgoingSpoolFailed','variable','mixmonitor_filename','value','syncMixMonitorFilename','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','xmd-queue','[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s','xmd-originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','originatecalleridnum','xmd-destination','destination','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','sipcalluniqueid','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','cause-txt','endtime','billableseconds','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','resolve','then','transferType','isEmpty','getSettings','stopRecordingOnTransfer','StopMixMonitor','catch','Action','finally','webbar:stopmonitors','event','BlindTransfer','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','custom:voiceCallReport','[%s][voiceCallReport][hangup]','syncAttendedTransfer','origtransferercalleridnum','transfertargetcalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','secondtransfereruniqueid','transfercalleridnum','transfertargetuniqueid','origtransfereruniqueid','origtransfererlinkedid','some','outbound','routeid','ATTENDED','[%s][voiceCallReport][attendedtransfer]','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','transfereecalleridnum','extension','transferconnectedlinenum','BLIND','transfererchannel','transfereruniqueid','[%s][voiceCallReport][blindtransfer]','[%s][voiceCallReport][musiconholdstart]\x20event:','isNil','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstart]','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','milliseconds','[%s][voiceCallReport][musiconholdstop]','lodash','moment','util','path','ioredis','../../../config/environment','ami','../ami','../model/channel','../rpc/setting','set','queue','agi','dial','playback','voicemail','FAILED','NO\x20ANSWER','ANSWERED','BUSY','redis','localhost','socket.io-emitter','channels','agents','blindTransfers','coreshowchannel','syncNewExten','bind','newchannel','syncNewChannel','newstate','syncNewState','varset','syncVarSet','hangup','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','blindtransfer','syncBlindTransfer','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','info','[voiceCallReport][coreshowchannels]\x20started','actionCoreShowChannels','error','prototype','isUndefined','emit','isNotNull','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','uniqueid','calleridname','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:','inspect','linkedid','merge','pick','context','from-sip','exten','xcally-motion-preview','channel','split','destconnectedlinenum','connectedlinenum','user:%s','user:agentconnect','accountcode','[%s][voiceCallReport][newcallerid]','[%s][voiceCallReport][newchannel]\x20event:','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','starttime','format','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','keys','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','name','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','application','toLowerCase','applicationdata','appdata','startsWith','CDR(routeAlias)','duration'];(function(_0xaf247,_0x1a8d8a){var _0x3366c9=function(_0x3e8681){while(--_0x3e8681){_0xaf247['push'](_0xaf247['shift']());}};_0x3366c9(++_0x1a8d8a);}(_0x3ac8,0x6b));var _0x83ac=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3ac8[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x83ac('0x0'));var moment=require(_0x83ac('0x1'));var util=require(_0x83ac('0x2'));var path=require(_0x83ac('0x3'));var Redis=require(_0x83ac('0x4'));var config=require(_0x83ac('0x5'));var logger=require('../../../config/logger')(_0x83ac('0x6'));var ami=require(_0x83ac('0x7'));var Channel=require(_0x83ac('0x8'));var RpcSetting=require(_0x83ac('0x9'));var applications=[_0x83ac('0xa'),_0x83ac('0xb'),_0x83ac('0xc'),_0x83ac('0xd'),_0x83ac('0xe'),_0x83ac('0xf')];var dispositions=['NO\x20ANSWER',_0x83ac('0x10'),_0x83ac('0x10'),'NO\x20ANSWER','NO\x20ANSWER',_0x83ac('0x11'),_0x83ac('0x12'),_0x83ac('0x13'),'FAILED',_0x83ac('0x10'),_0x83ac('0x10')];config['redis']=_['defaults'](config[_0x83ac('0x14')],{'host':_0x83ac('0x15'),'port':0x18eb});var io=require(_0x83ac('0x16'))(new Redis(config[_0x83ac('0x14')]));function VoiceCallReport(_0x1280ac){this[_0x83ac('0x17')]=_0x1280ac[_0x83ac('0x17')];this[_0x83ac('0x18')]=_0x1280ac[_0x83ac('0x18')];this[_0x83ac('0x19')]={};ami['on'](_0x83ac('0x1a'),this[_0x83ac('0x1b')][_0x83ac('0x1c')](this));ami['on']('newexten',this[_0x83ac('0x1b')][_0x83ac('0x1c')](this));ami['on'](_0x83ac('0x1d'),this[_0x83ac('0x1e')][_0x83ac('0x1c')](this));ami['on'](_0x83ac('0x1f'),this[_0x83ac('0x20')][_0x83ac('0x1c')](this));ami['on'](_0x83ac('0x21'),this[_0x83ac('0x22')]['bind'](this));ami['on'](_0x83ac('0x23'),this[_0x83ac('0x24')][_0x83ac('0x1c')](this));ami['on'](_0x83ac('0x25'),this[_0x83ac('0x26')]['bind'](this));ami['on'](_0x83ac('0x27'),this['syncAttendedTransfer'][_0x83ac('0x1c')](this));ami['on'](_0x83ac('0x28'),this[_0x83ac('0x29')][_0x83ac('0x1c')](this));ami['on'](_0x83ac('0x2a'),this[_0x83ac('0x2b')][_0x83ac('0x1c')](this));ami['on'](_0x83ac('0x2c'),this[_0x83ac('0x2d')]['bind'](this));try{logger[_0x83ac('0x2e')](_0x83ac('0x2f'));ami[_0x83ac('0x30')]();}catch(_0x498338){logger[_0x83ac('0x31')]('[voiceCallReport][coreshowchannels]',util['inspect'](_0x498338,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x83ac('0x32')]['isNotNull']=function(_0x4a312f){return _0x4a312f!==null&&!_[_0x83ac('0x33')](_0x4a312f);};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x34')]=function(_0x40eb5b,_0x5072d5,_0x41c9f8){io['to'](_0x40eb5b)['emit'](_0x5072d5,_0x41c9f8);};VoiceCallReport[_0x83ac('0x32')]['syncNewCallerId']=function(_0x2ea07a){try{if(this[_0x83ac('0x35')](_0x2ea07a)){logger[_0x83ac('0x2e')](_0x83ac('0x36'),_0x2ea07a[_0x83ac('0x37')],_0x2ea07a[_0x83ac('0x38')],_0x2ea07a[_0x83ac('0x39')]);logger[_0x83ac('0x3a')](_0x83ac('0x3b'),_0x2ea07a[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x2ea07a,{'showHidden':![],'depth':null}));if(_0x2ea07a[_0x83ac('0x37')]===_0x2ea07a[_0x83ac('0x3d')]){if(!_[_0x83ac('0x33')](this['channels'][_0x2ea07a[_0x83ac('0x37')]])){_[_0x83ac('0x3e')](this[_0x83ac('0x17')][_0x2ea07a[_0x83ac('0x37')]],_[_0x83ac('0x3f')](_0x2ea07a,_['keys'](this[_0x83ac('0x17')][_0x2ea07a[_0x83ac('0x37')]])));}}if(_0x2ea07a[_0x83ac('0x40')]===_0x83ac('0x41')){if(this[_0x83ac('0x18')][_0x2ea07a['channel']['split']('-')[0x0]]){if(_0x2ea07a[_0x83ac('0x42')]==_0x83ac('0x43')){this[_0x83ac('0x18')][_0x2ea07a[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x46')]=_0x2ea07a[_0x83ac('0x47')];this['emit'](util['format'](_0x83ac('0x48'),this[_0x83ac('0x18')][_0x2ea07a[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]['name']),_0x83ac('0x49'),{'destaccountcode':this[_0x83ac('0x18')][_0x2ea07a['channel']['split']('-')[0x0]][_0x83ac('0x4a')],'destconnectedlinenum':_0x2ea07a['connectedlinenum']});}}}}}catch(_0x12ee9b){logger['error'](_0x83ac('0x4b'),_0x2ea07a[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x12ee9b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x1e')]=function(_0x10c378){try{if(this['isNotNull'](_0x10c378)){logger[_0x83ac('0x3a')](_0x83ac('0x4c'),_0x10c378[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x10c378,{'showHidden':![],'depth':null}));if(_0x10c378[_0x83ac('0x37')]===_0x10c378['linkedid']&&_0x10c378[_0x83ac('0x44')]!='OutgoingSpoolFailed'){if(_[_0x83ac('0x33')](this[_0x83ac('0x17')][_0x10c378[_0x83ac('0x37')]])){logger[_0x83ac('0x2e')](_0x83ac('0x4d'),_0x10c378[_0x83ac('0x37')],_0x10c378['context'],_0x10c378[_0x83ac('0x42')]);this['channels'][_0x10c378[_0x83ac('0x37')]]=new Channel();this['channels'][_0x10c378[_0x83ac('0x37')]][_0x83ac('0x4e')]=moment()[_0x83ac('0x4f')](_0x83ac('0x50'));this['channels'][_0x10c378[_0x83ac('0x37')]][_0x83ac('0x51')]=dispositions[_[_0x83ac('0x52')](_0x10c378[_0x83ac('0x53')])];_[_0x83ac('0x3e')](this[_0x83ac('0x17')][_0x10c378[_0x83ac('0x37')]],_[_0x83ac('0x3f')](_0x10c378,_[_0x83ac('0x54')](this[_0x83ac('0x17')][_0x10c378[_0x83ac('0x37')]])));if(_0x10c378[_0x83ac('0x40')]==='from-sip'){if(this[_0x83ac('0x18')][_0x10c378[_0x83ac('0x44')]['split']('-')[0x0]]){if(_[_0x83ac('0x33')](this[_0x83ac('0x18')][_0x10c378[_0x83ac('0x44')]['split']('-')[0x0]][_0x83ac('0x46')])){this[_0x83ac('0x18')][_0x10c378[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x46')]=_0x10c378[_0x83ac('0x42')];logger[_0x83ac('0x3a')](_0x83ac('0x55'),_0x10c378['uniqueid'],util[_0x83ac('0x3c')]({'id':this[_0x83ac('0x18')][_0x10c378['channel'][_0x83ac('0x45')]('-')[0x0]]['id'],'destaccountcode':this[_0x83ac('0x18')][_0x10c378[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x10c378[_0x83ac('0x42')]},{'showHidden':![],'depth':null}));this[_0x83ac('0x34')](util[_0x83ac('0x4f')](_0x83ac('0x48'),this[_0x83ac('0x18')][_0x10c378[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x56')]),_0x83ac('0x49'),{'id':this[_0x83ac('0x18')][_0x10c378[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x10c378[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x4a')],'destconnectedlinenum':_0x10c378[_0x83ac('0x42')]});}}}}}}}catch(_0xb56ef2){logger['error'](_0x83ac('0x57'),_0x10c378[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0xb56ef2,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x1b')]=function(_0xf30e51){try{if(this[_0x83ac('0x35')](_0xf30e51)){logger[_0x83ac('0x3a')](_0x83ac('0x58'),_0xf30e51[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0xf30e51,{'showHidden':![],'depth':null}));if(_0xf30e51[_0x83ac('0x37')]===_0xf30e51[_0x83ac('0x3d')]&&_0xf30e51[_0x83ac('0x42')]!='h'&&_0xf30e51[_0x83ac('0x44')]!='OutgoingSpoolFailed'){_0xf30e51[_0x83ac('0x59')]=_0xf30e51[_0x83ac('0x59')][_0x83ac('0x5a')]();_0xf30e51[_0x83ac('0x5b')]=_0xf30e51[_0x83ac('0x5c')]&&_0xf30e51[_0x83ac('0x5c')][_0x83ac('0x5d')](_0x83ac('0x5e'))?_0xf30e51[_0x83ac('0x5c')]:(_0xf30e51[_0x83ac('0x5c')]||_0xf30e51['applicationdata'])[_0x83ac('0x5a')]();logger[_0x83ac('0x2e')]('[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s',_0xf30e51[_0x83ac('0x37')],_0xf30e51[_0x83ac('0x59')],_0xf30e51[_0x83ac('0x5b')]);if(_[_0x83ac('0x33')](this[_0x83ac('0x17')][_0xf30e51[_0x83ac('0x37')]])){this[_0x83ac('0x17')][_0xf30e51['uniqueid']]=new Channel();this[_0x83ac('0x17')][_0xf30e51['uniqueid']][_0x83ac('0x4e')]=_0xf30e51[_0x83ac('0x5f')]?moment()[_0x83ac('0x60')](moment[_0x83ac('0x5f')](_0xf30e51[_0x83ac('0x5f')])['seconds'](),_0x83ac('0x61'))[_0x83ac('0x4f')](_0x83ac('0x50')):moment()[_0x83ac('0x4f')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0xf30e51[_0x83ac('0x37')]]['disposition']=_0x83ac('0x11');}_[_0x83ac('0x3e')](this[_0x83ac('0x17')][_0xf30e51[_0x83ac('0x37')]],_[_0x83ac('0x3f')](_0xf30e51,_[_0x83ac('0x54')](this[_0x83ac('0x17')][_0xf30e51[_0x83ac('0x37')]])));if(_[_0x83ac('0x62')](applications,_0xf30e51[_0x83ac('0x59')])){this[_0x83ac('0x17')][_0xf30e51[_0x83ac('0x37')]]['lastapplication']=_0xf30e51[_0x83ac('0x59')];this[_0x83ac('0x17')][_0xf30e51[_0x83ac('0x37')]][_0x83ac('0x63')]=_0xf30e51[_0x83ac('0x5b')];if(_0xf30e51[_0x83ac('0x59')]==='set'&&_[_0x83ac('0x5d')](_0xf30e51['applicationdata']['toLowerCase'](),_0x83ac('0x64'))){var _0x387994=_0xf30e51[_0x83ac('0x5b')][_0x83ac('0x45')]('=');var _0x1844c3=_0x387994[0x0][_0x83ac('0x5a')]()[_0x83ac('0x65')](/cdr\((.*)\)/);if(_0x1844c3){this[_0x83ac('0x17')][_0xf30e51['uniqueid']][_0x1844c3[0x1]]=_0x387994[0x1];}}else if(_0xf30e51['application']===_0x83ac('0xb')){this[_0x83ac('0x17')][_0xf30e51[_0x83ac('0x37')]]['queue']=_0xf30e51[_0x83ac('0x5b')][_0x83ac('0x45')](',')[0x0];}}}}}catch(_0x752cb3){logger[_0x83ac('0x31')](_0x83ac('0x66'),_0xf30e51[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x752cb3,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x20')]=function(_0x8e5b72){try{if(this[_0x83ac('0x35')](_0x8e5b72)){logger[_0x83ac('0x2e')](_0x83ac('0x67'),_0x8e5b72[_0x83ac('0x37')],_0x8e5b72[_0x83ac('0x3d')],_0x8e5b72['calleridname'],_0x8e5b72['calleridnum']);logger[_0x83ac('0x3a')]('[%s][voiceCallReport][newstate]\x20event:',_0x8e5b72[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x8e5b72,{'showHidden':![],'depth':null}));if(_0x8e5b72[_0x83ac('0x37')]!==_0x8e5b72[_0x83ac('0x3d')]){if(this[_0x83ac('0x17')][_0x8e5b72['linkedid']]){if(_0x8e5b72['channelstate']==='6'){if(!this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]]['answered']){var _0xdc0bdf=moment();this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x68')]=!![];this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x69')]=_0xdc0bdf[_0x83ac('0x4f')]('YYYY-MM-DD\x20HH:mm:ss');if(this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x4e')]){this[_0x83ac('0x17')][_0x8e5b72['linkedid']][_0x83ac('0x6a')]=_0xdc0bdf[_0x83ac('0x6b')](this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x4e')],_0x83ac('0x61'));}}this[_0x83ac('0x17')][_0x8e5b72['linkedid']][_0x83ac('0x3d')]=_0x8e5b72[_0x83ac('0x37')];if(_0x8e5b72['calleridnum']!=='xcally-motion-preview'){this[_0x83ac('0x17')][_0x8e5b72['linkedid']][_0x83ac('0x47')]=_0x8e5b72[_0x83ac('0x39')];}this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x6c')]=_0x8e5b72[_0x83ac('0x38')];this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x6d')]=_0x8e5b72['channel'];this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x51')]=dispositions[_['toNumber'](_0x8e5b72[_0x83ac('0x53')])];if(this['agents'][_0x8e5b72[_0x83ac('0x44')]['split']('-')[0x0]]){this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x6e')]=this[_0x83ac('0x18')][_0x8e5b72['channel'][_0x83ac('0x45')]('-')[0x0]]['id'];this['channels'][_0x8e5b72[_0x83ac('0x3d')]]['membername']=this['agents'][_0x8e5b72['channel'][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x56')];}}}}else{if(this[_0x83ac('0x17')][_0x8e5b72['uniqueid']]){if(_0x8e5b72['channelstate']==='6'){if(this[_0x83ac('0x18')][_0x8e5b72[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]){this['channels'][_0x8e5b72['uniqueid']][_0x83ac('0x6e')]=this[_0x83ac('0x18')][_0x8e5b72[_0x83ac('0x44')]['split']('-')[0x0]]['id'];this[_0x83ac('0x17')][_0x8e5b72['uniqueid']]['membername']=this[_0x83ac('0x18')][_0x8e5b72[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x56')];}}}}if(_0x8e5b72[_0x83ac('0x53')]==='6'&&_0x8e5b72[_0x83ac('0x40')]===_0x83ac('0x41')){if(this[_0x83ac('0x18')][_0x8e5b72[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]){this[_0x83ac('0x18')][_0x8e5b72[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]['destconnectedlinenum']=_0x8e5b72[_0x83ac('0x42')];var _0x29e02a,_0x294753;if(this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x37')]]){_0x29e02a=this['channels'][_0x8e5b72['uniqueid']][_0x83ac('0x6f')];_0x294753=this[_0x83ac('0x17')][_0x8e5b72['uniqueid']][_0x83ac('0xb')];}else if(this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]]){_0x29e02a=this[_0x83ac('0x17')][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0x6f')];_0x294753=this['channels'][_0x8e5b72[_0x83ac('0x3d')]][_0x83ac('0xb')];}logger[_0x83ac('0x3a')](_0x83ac('0x70'),_0x8e5b72[_0x83ac('0x37')],util['inspect']({'id':this[_0x83ac('0x18')][_0x8e5b72[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x8e5b72['channel'][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x4a')],'destconnectedlinenum':_0x8e5b72[_0x83ac('0x42')],'routealias':_0x29e02a,'queue':_0x294753||undefined},{'showHidden':![],'depth':null}));this['emit'](util[_0x83ac('0x4f')](_0x83ac('0x48'),this['agents'][_0x8e5b72[_0x83ac('0x44')]['split']('-')[0x0]][_0x83ac('0x56')]),_0x83ac('0x49'),{'id':this[_0x83ac('0x18')][_0x8e5b72['channel'][_0x83ac('0x45')]('-')[0x0]]['id'],'agentconnected':!![],'destaccountcode':this['agents'][_0x8e5b72['channel'][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x4a')],'destconnectedlinenum':_0x8e5b72[_0x83ac('0x42')],'routealias':_0x29e02a,'queue':_0x294753||undefined});}}}}catch(_0x151e1f){logger[_0x83ac('0x31')](_0x83ac('0x71'),_0x8e5b72[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x151e1f,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')]['syncMixMonitorFilename']=function(_0x4f8569,_0x475a0b){try{if(this[_0x83ac('0x17')][_0x4f8569]){logger['info']('[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s',_0x4f8569,_0x475a0b);this[_0x83ac('0x17')][_0x4f8569][_0x83ac('0x72')]=!![];if(_[_0x83ac('0x73')](_0x475a0b,_0x83ac('0x74'))){_0x475a0b=_0x475a0b[_0x83ac('0x75')](_0x83ac('0x74'),_0x83ac('0x76'));}this[_0x83ac('0x17')][_0x4f8569][_0x83ac('0x77')]=_0x475a0b;var _0xadec04=_[_0x83ac('0x78')](this[_0x83ac('0x17')][_0x4f8569]['monitors'],{'filename':_0x475a0b});if(_['isNil'](_0xadec04)){this[_0x83ac('0x17')][_0x4f8569][_0x83ac('0x79')][_0x83ac('0x7a')]({'filename':_0x475a0b,'createdAt':moment()[_0x83ac('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':'','status':_0x83ac('0x7b')});}}}catch(_0x5651e6){logger[_0x83ac('0x31')]('[%s][voiceCallReport][mixMonitorFilename]',_0x4f8569,util['inspect'](_0x5651e6,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x22')]=function(_0x263b86){try{if(this[_0x83ac('0x35')](_0x263b86)){logger['debug'](_0x83ac('0x7c'),_0x263b86[_0x83ac('0x37')],util['inspect'](_0x263b86,{'showHidden':![],'depth':null}));if(this[_0x83ac('0x17')][_0x263b86['uniqueid']]&&_0x263b86[_0x83ac('0x44')]!=_0x83ac('0x7d')){if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')])){if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')][_0x83ac('0x7f')])){logger[_0x83ac('0x2e')]('[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s',_0x263b86[_0x83ac('0x37')],_0x263b86[_0x83ac('0x80')]);this[_0x83ac('0x81')](_0x263b86['uniqueid'],_0x263b86[_0x83ac('0x80')]);}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')][_0x83ac('0x82')])){logger[_0x83ac('0x2e')](_0x83ac('0x83'),_0x263b86[_0x83ac('0x37')],_0x263b86[_0x83ac('0x80')]);this[_0x83ac('0x17')][_0x263b86[_0x83ac('0x37')]][_0x83ac('0x39')]=_0x263b86['value'];}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')][_0x83ac('0x84')])){logger['info'](_0x83ac('0x85'),_0x263b86[_0x83ac('0x37')],_0x263b86['value']);this['channels'][_0x263b86[_0x83ac('0x37')]]['callerid']=_0x263b86[_0x83ac('0x80')];}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')][_0x83ac('0x86')])){logger['info'](_0x83ac('0x87'),_0x263b86[_0x83ac('0x37')],_0x263b86[_0x83ac('0x80')]);this[_0x83ac('0x17')][_0x263b86[_0x83ac('0x37')]][_0x83ac('0x88')]=_0x263b86[_0x83ac('0x80')];}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')][_0x83ac('0x89')])){logger[_0x83ac('0x2e')](_0x83ac('0x8a'),_0x263b86['uniqueid'],_0x263b86['value']['split'](',')[0x0]);this['channels'][_0x263b86[_0x83ac('0x37')]][_0x83ac('0xb')]=_0x263b86['value'][_0x83ac('0x45')](',')[0x0];}else if(this[_0x83ac('0x35')](_0x263b86['variable'][_0x83ac('0x8b')])){logger[_0x83ac('0x2e')](_0x83ac('0x8c'),_0x263b86[_0x83ac('0x37')],_0x263b86[_0x83ac('0x80')]);this['channels'][_0x263b86[_0x83ac('0x37')]][_0x83ac('0x8d')]=_0x263b86[_0x83ac('0x80')];}else if(this[_0x83ac('0x35')](_0x263b86['variable'][_0x83ac('0x8e')])){logger[_0x83ac('0x2e')]('[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s',_0x263b86[_0x83ac('0x37')],_0x263b86[_0x83ac('0x80')]);this[_0x83ac('0x17')][_0x263b86['uniqueid']][_0x83ac('0x8f')]=_0x263b86[_0x83ac('0x80')];}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')]['xmd-callerid-preview'])){logger['info'](_0x83ac('0x90'),_0x263b86['uniqueid'],_0x263b86[_0x83ac('0x80')]);this['channels'][_0x263b86[_0x83ac('0x37')]]['calleridpreview']=_0x263b86[_0x83ac('0x80')];}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')]['xmcs-queue'])){logger['info'](_0x83ac('0x91'),_0x263b86['uniqueid'],_0x263b86[_0x83ac('0x80')]);this[_0x83ac('0x17')][_0x263b86[_0x83ac('0x37')]][_0x83ac('0xb')]=_0x263b86[_0x83ac('0x80')];}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')][_0x83ac('0x92')])){logger[_0x83ac('0x2e')](_0x83ac('0x93'),_0x263b86[_0x83ac('0x37')],_0x263b86[_0x83ac('0x80')]);this['channels'][_0x263b86['uniqueid']][_0x83ac('0x94')]=_0x263b86['value'];}}}else if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')][_0x83ac('0x7f')])){if(_0x263b86[_0x83ac('0x80')]){var _0xeb3b0d=path['parse'](_0x263b86[_0x83ac('0x80')])[_0x83ac('0x56')];logger[_0x83ac('0x2e')](_0x83ac('0x95'),_0xeb3b0d,_0x263b86[_0x83ac('0x80')]);this[_0x83ac('0x81')](_0xeb3b0d,_0x263b86['value']);}}else if(this['channels'][_0x263b86[_0x83ac('0x3d')]]){if(this[_0x83ac('0x35')](_0x263b86['variable'])){if(this[_0x83ac('0x35')](_0x263b86[_0x83ac('0x7e')]['sipcallid'])){logger['info'](_0x83ac('0x93'),_0x263b86[_0x83ac('0x3d')],_0x263b86[_0x83ac('0x80')]);this[_0x83ac('0x17')][_0x263b86[_0x83ac('0x3d')]]['sipcalllinkedid']=_0x263b86['value'];}}}}}catch(_0x5318b7){logger['error']('[%s][voiceCallReport][varset]',_0x263b86['uniqueid'],util[_0x83ac('0x3c')](_0x5318b7,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x24')]=function(_0x3022b6){try{if(this[_0x83ac('0x35')](_0x3022b6)){logger[_0x83ac('0x3a')]('[%s][voiceCallReport][hangup]\x20event:',_0x3022b6[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x3022b6,{'showHidden':![],'depth':null}));if(this[_0x83ac('0x17')][_0x3022b6['uniqueid']]){logger[_0x83ac('0x2e')]('[%s][voiceCallReport][hangup]\x20reason:%s',_0x3022b6[_0x83ac('0x37')],_0x3022b6[_0x83ac('0x96')]);var _0x3a30cc=moment();this[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x97')]=_0x3a30cc['format'](_0x83ac('0x50'));this[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x5f')]=_0x3a30cc[_0x83ac('0x6b')](this[_0x83ac('0x17')][_0x3022b6['uniqueid']][_0x83ac('0x4e')],_0x83ac('0x61'));if(this[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]]['answered']){this[_0x83ac('0x17')][_0x3022b6['uniqueid']]['billableseconds']=_0x3a30cc[_0x83ac('0x6b')](this[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]]['answertime'],_0x83ac('0x61'));this[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x6a')]=this['channels'][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x5f')]-this[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x98')];}if(_0x3022b6[_0x83ac('0x40')]===_0x83ac('0x41')){if(this[_0x83ac('0x18')][_0x3022b6['channel']['split']('-')[0x0]]){this[_0x83ac('0x18')][_0x3022b6['channel'][_0x83ac('0x45')]('-')[0x0]]=_['omit'](this[_0x83ac('0x18')][_0x3022b6['channel'][_0x83ac('0x45')]('-')[0x0]],['destconnectedlinenum']);logger['debug'](_0x83ac('0x99'),_0x3022b6['uniqueid'],util['inspect']({'id':this[_0x83ac('0x18')][_0x3022b6[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]['id'],'destaccountcode':this[_0x83ac('0x18')][_0x3022b6[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x4a')]},{'showHidden':![],'depth':null}));this['emit'](util[_0x83ac('0x4f')](_0x83ac('0x48'),this[_0x83ac('0x18')][_0x3022b6['channel'][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x56')]),_0x83ac('0x9a'),{'id':this[_0x83ac('0x18')][_0x3022b6[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]]['id'],'destaccountcode':this[_0x83ac('0x18')][_0x3022b6[_0x83ac('0x44')][_0x83ac('0x45')]('-')[0x0]][_0x83ac('0x4a')]});for(var _0x5ee15e=0x0;_0x5ee15e<Object[_0x83ac('0x54')](this['agents'])['length'];_0x5ee15e++){var _0x31ed8a=Object[_0x83ac('0x54')](this[_0x83ac('0x18')])[_0x5ee15e];var _0x107797=this[_0x83ac('0x18')][_0x31ed8a];if(_0x107797[_0x83ac('0x4a')]===Number(_0x3022b6[_0x83ac('0x47')])){this[_0x83ac('0x34')](util[_0x83ac('0x4f')]('user:%s',_0x107797['name']),_0x83ac('0x9a'),{'id':_0x107797['id'],'destaccountcode':_0x107797[_0x83ac('0x4a')]});break;}}}}var _0x2b3b15=this;Promise[_0x83ac('0x9b')]()[_0x83ac('0x9c')](function(){var _0x2fbb2d=_0x2b3b15['channels'][_0x3022b6['uniqueid']];if(typeof _0x2fbb2d[_0x83ac('0x9d')]==='undefined')return;if(_[_0x83ac('0x9e')](_0x2fbb2d['monitors']))return;return RpcSetting[_0x83ac('0x9f')]()['then'](function(_0x26998b){if(!_0x26998b[_0x83ac('0xa0')])return;return Promise[_0x83ac('0x9b')]()[_0x83ac('0x9c')](function(){return ami['Action']({'action':_0x83ac('0xa1'),'channel':_0x2fbb2d[_0x83ac('0x44')]})[_0x83ac('0xa2')](function(){});})[_0x83ac('0x9c')](function(){return ami[_0x83ac('0xa3')]({'action':'StopMixMonitor','channel':_0x2fbb2d['destinationchannel']})['catch'](function(){})[_0x83ac('0xa4')](function(){var _0x5071a7=_0x2b3b15['agents'][_0x2fbb2d['destinationchannel'][_0x83ac('0x45')]('-')[0x0]];if(!_0x5071a7)return;io[_0x83ac('0x34')](_0x83ac('0xa5'),{'agentId':_0x5071a7['id'],'uniqueid':_0x2fbb2d[_0x83ac('0x37')]});});});});})[_0x83ac('0x9c')](function(){if(_0x3022b6[_0x83ac('0xa6')]===_0x83ac('0xa7')){_0x2b3b15[_0x83ac('0x19')][_0x3022b6[_0x83ac('0x37')]]=_0x2b3b15[_0x83ac('0x17')][_0x3022b6['uniqueid']];}else{if(_0x2b3b15[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x88')]==='outbound'&&_0x2b3b15['blindTransfers'][_0x3022b6['uniqueid']]){_0x2b3b15[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x37')]=[_0x2b3b15[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]][_0x83ac('0x3d')],_0x2b3b15['channels'][_0x3022b6[_0x83ac('0x37')]]['linkedid']=_0x2b3b15['channels'][_0x3022b6[_0x83ac('0x37')]]['uniqueid']][0x0];delete _0x2b3b15['blindTransfers'][_0x3022b6['uniqueid']];}}logger[_0x83ac('0x3a')](_0x83ac('0xa8'),_0x3022b6['uniqueid'],util[_0x83ac('0x3c')](_0x2b3b15[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]],{'showHidden':![],'depth':null}));ami['emit'](_0x83ac('0xa9'),_0x2b3b15['channels'][_0x3022b6['uniqueid']]);delete _0x2b3b15[_0x83ac('0x17')][_0x3022b6[_0x83ac('0x37')]];});}}}catch(_0x1242fb){logger['error'](_0x83ac('0xaa'),_0x3022b6[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x1242fb,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x83ac('0xab')]=function(_0x117904){try{if(this[_0x83ac('0x35')](_0x117904)){logger[_0x83ac('0x2e')]('[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0x117904[_0x83ac('0x37')],_0x117904[_0x83ac('0xac')],_0x117904[_0x83ac('0xad')]);logger[_0x83ac('0x3a')](_0x83ac('0xae'),_0x117904[_0x83ac('0x37')],util['inspect'](_0x117904,{'showHidden':![],'depth':null}));var _0x14308e;if(this['channels'][_0x117904[_0x83ac('0xaf')]]){this[_0x83ac('0x17')][_0x117904['transfereeuniqueid']]['transfercalleridnum']=_0x117904[_0x83ac('0xac')];this['channels'][_0x117904[_0x83ac('0xaf')]]['transferconnectedlinenum']=_0x117904[_0x83ac('0xad')];if(this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb0')]]){_0x14308e=this['channels'][_0x117904[_0x83ac('0xb0')]];this[_0x83ac('0x17')][_0x117904['secondtransfereruniqueid']]=this[_0x83ac('0x17')][_0x117904[_0x83ac('0xaf')]];this[_0x83ac('0x17')][_0x117904[_0x83ac('0xaf')]]=_0x14308e;}}else if(this[_0x83ac('0x17')][_0x117904['transfertargetuniqueid']]){this['channels'][_0x117904['transfertargetuniqueid']][_0x83ac('0xb1')]=_0x117904['origtransferercalleridnum'];this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb2')]]['transferconnectedlinenum']=_0x117904[_0x83ac('0xad')];if(this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb3')]]){_0x14308e=this[_0x83ac('0x17')][_0x117904['origtransfereruniqueid']];this['channels'][_0x117904[_0x83ac('0xb3')]]=this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb2')]];this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb2')]]=_0x14308e;}}if((this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb3')]]||this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb4')]])&&this['channels'][_0x117904[_0x83ac('0xb0')]]){var _0x21125e=_[_0x83ac('0xb5')]([this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb3')]],this['channels'][_0x117904['origtransfererlinkedid']],this['channels'][_0x117904[_0x83ac('0xb0')]]],function(_0x522be3){return _0x522be3&&_0x522be3['type']===_0x83ac('0xb6')&&_0x522be3[_0x83ac('0xb7')];});if(_0x21125e){if(this['channels'][_0x117904[_0x83ac('0xb3')]])this['channels'][_0x117904[_0x83ac('0xb3')]][_0x83ac('0x9d')]=_0x83ac('0xb8');if(this[_0x83ac('0x17')][_0x117904['origtransfererlinkedid']])this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb4')]]['transferType']='ATTENDED';this[_0x83ac('0x17')][_0x117904[_0x83ac('0xb0')]][_0x83ac('0x9d')]=_0x83ac('0xb8');}}}}catch(_0x1ea088){logger[_0x83ac('0x31')](_0x83ac('0xb9'),_0x117904[_0x83ac('0x37')],util['inspect'](_0x1ea088,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x83ac('0x29')]=function(_0x346b41){try{if(this[_0x83ac('0x35')](_0x346b41)){logger['info'](_0x83ac('0xba'),_0x346b41[_0x83ac('0x37')],_0x346b41[_0x83ac('0xbb')],_0x346b41[_0x83ac('0xbc')]);logger[_0x83ac('0x3a')]('[%s][voiceCallReport][blindtransfer]\x20event:',_0x346b41[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x346b41,{'showHidden':![],'depth':null}));if(this[_0x83ac('0x17')][_0x346b41[_0x83ac('0xaf')]]){this[_0x83ac('0x17')][_0x346b41[_0x83ac('0xaf')]]['transfercalleridnum']=_0x346b41[_0x83ac('0xbb')];this[_0x83ac('0x17')][_0x346b41[_0x83ac('0xaf')]][_0x83ac('0xbd')]=_0x346b41[_0x83ac('0xbc')];this['channels'][_0x346b41['transfereeuniqueid']][_0x83ac('0x9d')]=_0x83ac('0xbe');this[_0x83ac('0x24')]({'event':'BlindTransfer','uniqueid':_0x346b41[_0x83ac('0xaf')],'context':_0x346b41[_0x83ac('0x40')],'channel':_0x346b41[_0x83ac('0xbf')]});}else{this[_0x83ac('0x17')][_0x346b41[_0x83ac('0xc0')]][_0x83ac('0x9d')]=_0x83ac('0xbe');}}}catch(_0x2a6b72){logger['error'](_0x83ac('0xc1'),_0x346b41[_0x83ac('0x37')],util['inspect'](_0x2a6b72,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x2b')]=function(_0x1ff49f){try{if(this['isNotNull'](_0x1ff49f)){logger[_0x83ac('0x3a')](_0x83ac('0xc2'),_0x1ff49f[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x1ff49f,{'showHidden':![],'depth':null}));if(this[_0x83ac('0x17')][_0x1ff49f[_0x83ac('0x37')]]){if(!_[_0x83ac('0xc3')](this['channels'][_0x1ff49f[_0x83ac('0x37')]][_0x83ac('0x69')])){this['channels'][_0x1ff49f[_0x83ac('0x37')]][_0x83ac('0xc4')]=moment()['format'](_0x83ac('0x50'));logger[_0x83ac('0x2e')](_0x83ac('0xc5'),_0x1ff49f[_0x83ac('0x37')],this['channels'][_0x1ff49f[_0x83ac('0x37')]][_0x83ac('0xc4')]);}}}}catch(_0x4bb589){logger[_0x83ac('0x31')](_0x83ac('0xc6'),_0x1ff49f[_0x83ac('0x37')],util[_0x83ac('0x3c')](_0x4bb589,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x83ac('0x32')][_0x83ac('0x2d')]=function(_0x58e679){try{if(this[_0x83ac('0x35')](_0x58e679)){logger['debug'](_0x83ac('0xc7'),_0x58e679['uniqueid'],util[_0x83ac('0x3c')](_0x58e679,{'showHidden':![],'depth':null}));if(this[_0x83ac('0x17')][_0x58e679[_0x83ac('0x37')]]){if(!_[_0x83ac('0xc3')](this[_0x83ac('0x17')][_0x58e679[_0x83ac('0x37')]][_0x83ac('0xc4')])){this[_0x83ac('0x17')][_0x58e679[_0x83ac('0x37')]][_0x83ac('0xc8')]+=moment()[_0x83ac('0xc9')](0x0)[_0x83ac('0x6b')](this[_0x83ac('0x17')][_0x58e679['uniqueid']]['mohstarttime'],_0x83ac('0x61'));logger[_0x83ac('0x2e')]('[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s',_0x58e679[_0x83ac('0x37')],this['channels'][_0x58e679[_0x83ac('0x37')]]['mohtime']);delete this[_0x83ac('0x17')][_0x58e679[_0x83ac('0x37')]][_0x83ac('0xc4')];}}}}catch(_0x7c4a13){logger[_0x83ac('0x31')](_0x83ac('0xca'),_0x58e679['uniqueid'],util[_0x83ac('0x3c')](_0x7c4a13,{'showHidden':![],'depth':null}));}};module['exports']=VoiceCallReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2627=['voice:outbound','voice_outbound_channel:save','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','[%s][voiceDialReport][dialbegin]','dialstatus','connectedlinenum','connectedlinename','answertime','format','lastevent','connect','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','error','[%s][voiceDialReport][dialend]','[%s][voiceDialReport][varset]\x20event:','addVariable','keys','variable','value','outboundrouteid','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','memberdynamic','memberlastcall','memberpenalty','memberrealtime','isNil','includes','cause-txt','endtime','duration','diff','starttime','answered','holdtime','seconds','billableseconds','sumHoldTime','sumBillable','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','destuniqueid','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','application','toLowerCase','set','applicationdata','appdata','startsWith','cdr(','isUndefined','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','split','[%s][voiceDialReport][newexten]','exports','lodash','moment','util','../../../config/environment','ami','redis','defaults','outboundChannels','outbound','variables','dialbegin','syncDialBegin','bind','dialend','syncDialEnd','varset','syncVarSet','newexten','syncNewExten','hangup','syncHangup','prototype','isNotNull','emit','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','channels','YYYY-MM-DD\x20HH:mm:ss','called','channel','substring','lastIndexOf','omit','event','privilege','info','membername','interface','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','applications','merge'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2627,0xc5));var _0x7262=function(_0x5a4155,_0x4b2b70){_0x5a4155=_0x5a4155-0x0;var _0x4b1587=_0x2627[_0x5a4155];return _0x4b1587;};'use strict';var _=require(_0x7262('0x0'));var moment=require(_0x7262('0x1'));var util=require(_0x7262('0x2'));var Redis=require('ioredis');var config=require(_0x7262('0x3'));var logger=require('../../../config/logger')(_0x7262('0x4'));var ami=require('../ami');config[_0x7262('0x5')]=_[_0x7262('0x6')](config[_0x7262('0x5')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x7262('0x5')]));function VoiceDialReport(_0x2a7941){this['channels']=_0x2a7941[_0x7262('0x7')];this[_0x7262('0x8')]=_0x2a7941[_0x7262('0x8')];this['applications']={};this[_0x7262('0x9')]={};ami['on'](_0x7262('0xa'),this[_0x7262('0xb')][_0x7262('0xc')](this));ami['on'](_0x7262('0xd'),this[_0x7262('0xe')][_0x7262('0xc')](this));ami['on'](_0x7262('0xf'),this[_0x7262('0x10')][_0x7262('0xc')](this));ami['on'](_0x7262('0x11'),this[_0x7262('0x12')]['bind'](this));ami['on'](_0x7262('0x13'),this[_0x7262('0x14')][_0x7262('0xc')](this));}VoiceDialReport[_0x7262('0x15')][_0x7262('0x16')]=function(_0x41e7aa){return _0x41e7aa!==null&&!_['isUndefined'](_0x41e7aa);};VoiceDialReport[_0x7262('0x15')][_0x7262('0x17')]=function(_0x1d2167,_0x433b98,_0x4b7645){io['to'](_0x1d2167)[_0x7262('0x17')](_0x433b98,_0x4b7645);};VoiceDialReport[_0x7262('0x15')][_0x7262('0xb')]=function(_0x527130){try{if(this[_0x7262('0x16')](_0x527130)){logger[_0x7262('0x18')](_0x7262('0x19'),_0x527130[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x527130,{'showHidden':![],'depth':null}));if(this[_0x7262('0x1c')][_0x527130['uniqueid']]){_['merge'](this['channels'][_0x527130['uniqueid']],{'starttime':moment()['format'](_0x7262('0x1d')),'lastevent':_0x7262('0x1e'),'interface':_0x527130[_0x7262('0x1f')][_0x7262('0x20')](0x0,_0x527130[_0x7262('0x1f')]['lastIndexOf']('-')),'membername':_0x527130[_0x7262('0x1f')][_0x7262('0x20')](_0x527130[_0x7262('0x1f')][_0x7262('0x21')]('/')+0x1,_0x527130[_0x7262('0x1f')][_0x7262('0x21')]('-'))},_[_0x7262('0x22')](_0x527130,[_0x7262('0x23'),_0x7262('0x24')]));logger[_0x7262('0x25')]('[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called',_0x527130[_0x7262('0x1a')],this[_0x7262('0x1c')][_0x527130['uniqueid']][_0x7262('0x26')],this['channels'][_0x527130[_0x7262('0x1a')]][_0x7262('0x27')]);logger[_0x7262('0x18')](_0x7262('0x28'),_0x527130[_0x7262('0x1a')],util['inspect'](this[_0x7262('0x1c')][_0x527130[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));if(this[_0x7262('0x29')][_0x527130['uniqueid']])_[_0x7262('0x2a')](this[_0x7262('0x1c')][_0x527130['uniqueid']],this[_0x7262('0x29')][_0x527130[_0x7262('0x1a')]]);this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x2c'),this[_0x7262('0x1c')][_0x527130[_0x7262('0x1a')]]);logger['debug'](_0x7262('0x2d'),_0x527130[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x527130[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x7262('0x17')](_0x7262('0x2e'),this[_0x7262('0x1c')][_0x527130[_0x7262('0x1a')]]);}}}catch(_0x5145b0){logger['error'](_0x7262('0x2f'),_0x527130['uniqueid'],util[_0x7262('0x1b')](_0x5145b0,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7262('0x15')]['syncDialEnd']=function(_0x4b09da){try{if(this[_0x7262('0x16')](_0x4b09da)){logger[_0x7262('0x18')]('[%s][voiceDialReport][dialend]\x20event:',_0x4b09da['uniqueid'],util['inspect'](_0x4b09da,{'showHidden':![],'depth':null}));if(this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]]){this[_0x7262('0x1c')][_0x4b09da['uniqueid']][_0x7262('0x30')]=_0x4b09da['dialstatus'];if(_0x4b09da[_0x7262('0x30')]==='ANSWER'){this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]]['connectedlinenum']=_0x4b09da[_0x7262('0x31')];this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]][_0x7262('0x32')]=_0x4b09da[_0x7262('0x32')];this['channels'][_0x4b09da[_0x7262('0x1a')]][_0x7262('0x33')]=moment()[_0x7262('0x34')](_0x7262('0x1d'));this['channels'][_0x4b09da[_0x7262('0x1a')]][_0x7262('0x35')]=_0x7262('0x36');logger['info'](_0x7262('0x37'),_0x4b09da['uniqueid'],_0x4b09da[_0x7262('0x1f')][_0x7262('0x20')](_0x4b09da[_0x7262('0x1f')][_0x7262('0x21')]('/')+0x1,_0x4b09da['channel'][_0x7262('0x21')]('-')));logger[_0x7262('0x18')]('[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:',_0x4b09da[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x4b09da[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x7262('0x17')](_0x7262('0x38'),this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]]);}logger['debug'](_0x7262('0x39'),_0x4b09da[_0x7262('0x1a')],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x2c'),this[_0x7262('0x1c')][_0x4b09da['uniqueid']]);}}}catch(_0x55225b){logger[_0x7262('0x3a')](_0x7262('0x3b'),_0x4b09da[_0x7262('0x1a')],util['inspect'](_0x55225b,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype']['syncVarSet']=function(_0x43e75d){try{if(this['isNotNull'](_0x43e75d)){logger[_0x7262('0x18')](_0x7262('0x3c'),_0x43e75d['uniqueid'],util[_0x7262('0x1b')](_0x43e75d,{'showHidden':![],'depth':null}));this[_0x7262('0x3d')](_0x43e75d[_0x7262('0x1a')],_[_0x7262('0x3e')](_0x43e75d[_0x7262('0x3f')])[0x0],_0x43e75d[_0x7262('0x40')]);if(this[_0x7262('0x16')](_0x43e75d[_0x7262('0x3f')])&&this[_0x7262('0x16')](_0x43e75d[_0x7262('0x3f')][_0x7262('0x41')])){if(_['isUndefined'](this[_0x7262('0x1c')][_0x43e75d[_0x7262('0x1a')]])){this[_0x7262('0x1c')][_0x43e75d[_0x7262('0x1a')]]={'routeId':_0x43e75d['value'],'variables':this[_0x7262('0x9')][_0x43e75d[_0x7262('0x1a')]]};logger['info'](_0x7262('0x42'),_0x43e75d[_0x7262('0x1a')],_0x43e75d[_0x7262('0x3f')][_0x7262('0x41')],_['keys'](_0x43e75d[_0x7262('0x3f')])[0x0],_0x43e75d[_0x7262('0x40')]);logger[_0x7262('0x18')](_0x7262('0x43'),_0x43e75d[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x43e75d[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x2c'),this[_0x7262('0x1c')][_0x43e75d[_0x7262('0x1a')]]);}}}}catch(_0xcf5612){logger['error'](_0x7262('0x44'),_0x43e75d[_0x7262('0x1a')],util[_0x7262('0x1b')](_0xcf5612,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7262('0x15')]['addVariable']=function(_0x41b678,_0x56b459,_0x555901){var _0x2eb228=[_0x7262('0x45'),_0x7262('0x46'),_0x7262('0x47'),'rtpaudioqosjitterbridged',_0x7262('0x48'),_0x7262('0x49'),_0x7262('0x4a'),_0x7262('0x4b'),_0x7262('0x4c'),'sipuri',_0x7262('0x4d'),_0x7262('0x4e'),'membercalls',_0x7262('0x4f'),'memberinterface',_0x7262('0x50'),_0x7262('0x26'),_0x7262('0x51'),_0x7262('0x52')];if(!_[_0x7262('0x53')](_0x56b459)&&!_[_0x7262('0x54')](_0x2eb228,_0x56b459)){if(_['isUndefined'](this[_0x7262('0x9')][_0x41b678])){this[_0x7262('0x9')][_0x41b678]={};}this['variables'][_0x41b678][_0x56b459]=_0x555901;}};VoiceDialReport[_0x7262('0x15')][_0x7262('0x14')]=function(_0x18eccd){try{if(this['isNotNull'](_0x18eccd)){logger[_0x7262('0x18')]('[%s][voiceDialReport][hangup]\x20event:',_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x18eccd,{'showHidden':![],'depth':null}));if(this['channels'][_0x18eccd[_0x7262('0x1a')]]){logger[_0x7262('0x25')]('[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete',_0x18eccd[_0x7262('0x1a')],_0x18eccd[_0x7262('0x55')]);this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x56')]=moment()[_0x7262('0x34')](_0x7262('0x1d'));this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x57')]=moment(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x56')])[_0x7262('0x58')](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x59')],'seconds');this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]['lastevent']='complete';this['outbound']['total']+=0x1;if(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x33')]){this[_0x7262('0x8')][_0x7262('0x5a')]+=0x1;this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x5b')]=moment(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x33')])[_0x7262('0x58')](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x59')],_0x7262('0x5c'));this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x5d')]=moment(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x56')])['diff'](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]['answertime'],_0x7262('0x5c'));this[_0x7262('0x8')][_0x7262('0x5e')]+=this[_0x7262('0x1c')][_0x18eccd['uniqueid']][_0x7262('0x5b')]||0x0;this[_0x7262('0x8')][_0x7262('0x5f')]+=this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x5d')];}this[_0x7262('0x8')]['sumDuration']+=this[_0x7262('0x1c')][_0x18eccd['uniqueid']]['duration'];logger[_0x7262('0x18')](_0x7262('0x60'),_0x18eccd['uniqueid'],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));ami['emit'](_0x7262('0x61'),this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]);logger[_0x7262('0x18')]('[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:',_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x18eccd['uniqueid']],{'showHidden':![],'depth':null}));ami[_0x7262('0x17')]('custom:dialend',this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]);logger[_0x7262('0x18')](_0x7262('0x62'),_0x18eccd['uniqueid'],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x18eccd['uniqueid']],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x63'),this[_0x7262('0x8')]);logger['info'](_0x7262('0x64'),JSON[_0x7262('0x65')](this[_0x7262('0x1c')][_0x18eccd['uniqueid']]));logger[_0x7262('0x18')](_0x7262('0x66'),_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x18eccd['uniqueid']],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x67'),this['channels'][_0x18eccd['uniqueid']]);delete this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]];}else if(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x68')]]){this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x68')]]['uniqueid']=this['channels'][_0x18eccd[_0x7262('0x68')]][_0x7262('0x69')];}if(this['variables'][_0x18eccd[_0x7262('0x1a')]]){delete this['variables'][_0x18eccd[_0x7262('0x1a')]];}}}catch(_0x4b6d0f){logger['error'](_0x7262('0x6a'),_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x4b6d0f,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7262('0x15')][_0x7262('0x12')]=function(_0x12ca4d){try{if(this[_0x7262('0x16')](_0x12ca4d)){logger[_0x7262('0x18')](_0x7262('0x6b'),_0x12ca4d['uniqueid'],util['inspect'](_0x12ca4d,{'showHidden':![],'depth':null}));if(_0x12ca4d[_0x7262('0x6c')][_0x7262('0x6d')]()===_0x7262('0x6e')){_0x12ca4d[_0x7262('0x6f')]=(_0x12ca4d[_0x7262('0x70')]||_0x12ca4d['applicationdata'])['toLowerCase']();if(_[_0x7262('0x71')](_0x12ca4d[_0x7262('0x6f')],_0x7262('0x72'))){if(_[_0x7262('0x73')](this[_0x7262('0x29')][_0x12ca4d[_0x7262('0x1a')]]))this[_0x7262('0x29')][_0x12ca4d[_0x7262('0x1a')]]={};logger[_0x7262('0x25')](_0x7262('0x74'),_0x12ca4d[_0x7262('0x1a')],_0x12ca4d[_0x7262('0x6c')],_0x12ca4d[_0x7262('0x6f')]);var _0x449197=_0x12ca4d[_0x7262('0x6f')][_0x7262('0x75')]('=');var _0x312eb8=_0x449197[0x0]['match'](/cdr\((.*)\)/);if(_0x312eb8)this['applications'][_0x12ca4d['uniqueid']][_0x312eb8[0x1]]=_0x449197[0x1];}}}}catch(_0x1e9c1c){logger[_0x7262('0x3a')](_0x7262('0x76'),_0x12ca4d[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x1e9c1c,{'showHidden':![],'depth':null}));}};module[_0x7262('0x77')]=VoiceDialReport;
\ No newline at end of file
+var _0xcbed=['inspect','merge','format','YYYY-MM-DD\x20HH:mm:ss','called','substring','channel','lastIndexOf','omit','event','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','applications','emit','voice:outbound','voice_outbound_channel:save','custom:dialbegin','error','[%s][voiceDialReport][dialbegin]','[%s][voiceDialReport][dialend]\x20event:','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','lastevent','connect','[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]\x20event:','addVariable','keys','variable','value','outboundrouteid','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrttbridged','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberlastcall','memberpenalty','memberrealtime','isNil','includes','[%s][voiceDialReport][hangup]\x20event:','duration','endtime','starttime','seconds','complete','total','answered','holdtime','billableseconds','sumHoldTime','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','custom:dialend','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','toLowerCase','set','applicationdata','appdata','startsWith','split','match','[%s][voiceDialReport][newexten]','exports','lodash','moment','util','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','socket.io-emitter','channels','outboundChannels','outbound','variables','syncDialBegin','bind','syncDialEnd','varset','syncVarSet','syncNewExten','syncHangup','prototype','isNotNull','isUndefined','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid'];(function(_0x585bfa,_0x57378d){var _0x48275a=function(_0x102ba4){while(--_0x102ba4){_0x585bfa['push'](_0x585bfa['shift']());}};_0x48275a(++_0x57378d);}(_0xcbed,0xc9));var _0xdcbe=function(_0x2b2db4,_0x47299d){_0x2b2db4=_0x2b2db4-0x0;var _0x409fe7=_0xcbed[_0x2b2db4];return _0x409fe7;};'use strict';var _=require(_0xdcbe('0x0'));var moment=require(_0xdcbe('0x1'));var util=require(_0xdcbe('0x2'));var Redis=require('ioredis');var config=require(_0xdcbe('0x3'));var logger=require(_0xdcbe('0x4'))(_0xdcbe('0x5'));var ami=require(_0xdcbe('0x6'));config[_0xdcbe('0x7')]=_[_0xdcbe('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xdcbe('0x9'))(new Redis(config['redis']));function VoiceDialReport(_0x31fea9){this[_0xdcbe('0xa')]=_0x31fea9[_0xdcbe('0xb')];this[_0xdcbe('0xc')]=_0x31fea9[_0xdcbe('0xc')];this['applications']={};this[_0xdcbe('0xd')]={};ami['on']('dialbegin',this[_0xdcbe('0xe')][_0xdcbe('0xf')](this));ami['on']('dialend',this[_0xdcbe('0x10')][_0xdcbe('0xf')](this));ami['on'](_0xdcbe('0x11'),this[_0xdcbe('0x12')][_0xdcbe('0xf')](this));ami['on']('newexten',this[_0xdcbe('0x13')]['bind'](this));ami['on']('hangup',this[_0xdcbe('0x14')][_0xdcbe('0xf')](this));}VoiceDialReport[_0xdcbe('0x15')][_0xdcbe('0x16')]=function(_0x1b36d4){return _0x1b36d4!==null&&!_[_0xdcbe('0x17')](_0x1b36d4);};VoiceDialReport['prototype']['emit']=function(_0x5860e5,_0x52574d,_0x4fe87a){io['to'](_0x5860e5)['emit'](_0x52574d,_0x4fe87a);};VoiceDialReport['prototype'][_0xdcbe('0xe')]=function(_0x3215ce){try{if(this[_0xdcbe('0x16')](_0x3215ce)){logger[_0xdcbe('0x18')](_0xdcbe('0x19'),_0x3215ce[_0xdcbe('0x1a')],util[_0xdcbe('0x1b')](_0x3215ce,{'showHidden':![],'depth':null}));if(this[_0xdcbe('0xa')][_0x3215ce[_0xdcbe('0x1a')]]){_[_0xdcbe('0x1c')](this[_0xdcbe('0xa')][_0x3215ce[_0xdcbe('0x1a')]],{'starttime':moment()[_0xdcbe('0x1d')](_0xdcbe('0x1e')),'lastevent':_0xdcbe('0x1f'),'interface':_0x3215ce['channel'][_0xdcbe('0x20')](0x0,_0x3215ce[_0xdcbe('0x21')][_0xdcbe('0x22')]('-')),'membername':_0x3215ce['channel']['substring'](_0x3215ce[_0xdcbe('0x21')][_0xdcbe('0x22')]('/')+0x1,_0x3215ce[_0xdcbe('0x21')][_0xdcbe('0x22')]('-'))},_[_0xdcbe('0x23')](_0x3215ce,[_0xdcbe('0x24'),_0xdcbe('0x25')]));logger[_0xdcbe('0x26')](_0xdcbe('0x27'),_0x3215ce[_0xdcbe('0x1a')],this['channels'][_0x3215ce[_0xdcbe('0x1a')]][_0xdcbe('0x28')],this['channels'][_0x3215ce[_0xdcbe('0x1a')]]['interface']);logger[_0xdcbe('0x18')](_0xdcbe('0x29'),_0x3215ce[_0xdcbe('0x1a')],util[_0xdcbe('0x1b')](this[_0xdcbe('0xa')][_0x3215ce[_0xdcbe('0x1a')]],{'showHidden':![],'depth':null}));if(this[_0xdcbe('0x2a')][_0x3215ce[_0xdcbe('0x1a')]])_[_0xdcbe('0x1c')](this[_0xdcbe('0xa')][_0x3215ce[_0xdcbe('0x1a')]],this[_0xdcbe('0x2a')][_0x3215ce['uniqueid']]);this[_0xdcbe('0x2b')](_0xdcbe('0x2c'),_0xdcbe('0x2d'),this['channels'][_0x3215ce[_0xdcbe('0x1a')]]);logger[_0xdcbe('0x18')]('[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:',_0x3215ce[_0xdcbe('0x1a')],util['inspect'](this[_0xdcbe('0xa')][_0x3215ce[_0xdcbe('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xdcbe('0x2b')](_0xdcbe('0x2e'),this[_0xdcbe('0xa')][_0x3215ce[_0xdcbe('0x1a')]]);}}}catch(_0x2f578e){logger[_0xdcbe('0x2f')](_0xdcbe('0x30'),_0x3215ce['uniqueid'],util['inspect'](_0x2f578e,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype']['syncDialEnd']=function(_0x36c22a){try{if(this[_0xdcbe('0x16')](_0x36c22a)){logger[_0xdcbe('0x18')](_0xdcbe('0x31'),_0x36c22a[_0xdcbe('0x1a')],util['inspect'](_0x36c22a,{'showHidden':![],'depth':null}));if(this[_0xdcbe('0xa')][_0x36c22a['uniqueid']]){this[_0xdcbe('0xa')][_0x36c22a[_0xdcbe('0x1a')]][_0xdcbe('0x32')]=_0x36c22a[_0xdcbe('0x32')];if(_0x36c22a['dialstatus']===_0xdcbe('0x33')){this[_0xdcbe('0xa')][_0x36c22a[_0xdcbe('0x1a')]][_0xdcbe('0x34')]=_0x36c22a[_0xdcbe('0x34')];this['channels'][_0x36c22a['uniqueid']]['connectedlinename']=_0x36c22a[_0xdcbe('0x35')];this[_0xdcbe('0xa')][_0x36c22a[_0xdcbe('0x1a')]][_0xdcbe('0x36')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0xdcbe('0xa')][_0x36c22a[_0xdcbe('0x1a')]][_0xdcbe('0x37')]=_0xdcbe('0x38');logger[_0xdcbe('0x26')]('[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect',_0x36c22a[_0xdcbe('0x1a')],_0x36c22a['channel'][_0xdcbe('0x20')](_0x36c22a[_0xdcbe('0x21')]['lastIndexOf']('/')+0x1,_0x36c22a[_0xdcbe('0x21')][_0xdcbe('0x22')]('-')));logger[_0xdcbe('0x18')](_0xdcbe('0x39'),_0x36c22a[_0xdcbe('0x1a')],util[_0xdcbe('0x1b')](this[_0xdcbe('0xa')][_0x36c22a['uniqueid']],{'showHidden':![],'depth':null}));ami['emit'](_0xdcbe('0x3a'),this[_0xdcbe('0xa')][_0x36c22a[_0xdcbe('0x1a')]]);}logger[_0xdcbe('0x18')](_0xdcbe('0x3b'),_0x36c22a['uniqueid'],util[_0xdcbe('0x1b')](this[_0xdcbe('0xa')][_0x36c22a[_0xdcbe('0x1a')]],{'showHidden':![],'depth':null}));this[_0xdcbe('0x2b')](_0xdcbe('0x2c'),'voice_outbound_channel:save',this['channels'][_0x36c22a[_0xdcbe('0x1a')]]);}}}catch(_0x4f9561){logger['error']('[%s][voiceDialReport][dialend]',_0x36c22a[_0xdcbe('0x1a')],util['inspect'](_0x4f9561,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xdcbe('0x15')]['syncVarSet']=function(_0x4163af){try{if(this[_0xdcbe('0x16')](_0x4163af)){logger['debug'](_0xdcbe('0x3c'),_0x4163af['uniqueid'],util[_0xdcbe('0x1b')](_0x4163af,{'showHidden':![],'depth':null}));this[_0xdcbe('0x3d')](_0x4163af['uniqueid'],_[_0xdcbe('0x3e')](_0x4163af[_0xdcbe('0x3f')])[0x0],_0x4163af[_0xdcbe('0x40')]);if(this[_0xdcbe('0x16')](_0x4163af[_0xdcbe('0x3f')])&&this[_0xdcbe('0x16')](_0x4163af[_0xdcbe('0x3f')]['outboundrouteid'])){if(_[_0xdcbe('0x17')](this[_0xdcbe('0xa')][_0x4163af[_0xdcbe('0x1a')]])){this[_0xdcbe('0xa')][_0x4163af[_0xdcbe('0x1a')]]={'routeId':_0x4163af[_0xdcbe('0x40')],'variables':this[_0xdcbe('0xd')][_0x4163af[_0xdcbe('0x1a')]],'motionChannel':'voice'};logger[_0xdcbe('0x26')]('[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s',_0x4163af[_0xdcbe('0x1a')],_0x4163af[_0xdcbe('0x3f')][_0xdcbe('0x41')],_[_0xdcbe('0x3e')](_0x4163af[_0xdcbe('0x3f')])[0x0],_0x4163af[_0xdcbe('0x40')]);logger[_0xdcbe('0x18')]('[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:',_0x4163af['uniqueid'],util[_0xdcbe('0x1b')](this['channels'][_0x4163af['uniqueid']],{'showHidden':![],'depth':null}));this['emit']('voice:outbound',_0xdcbe('0x2d'),this[_0xdcbe('0xa')][_0x4163af['uniqueid']]);}}}}catch(_0x35b2c5){logger[_0xdcbe('0x2f')](_0xdcbe('0x42'),_0x4163af['uniqueid'],util[_0xdcbe('0x1b')](_0x35b2c5,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xdcbe('0x15')][_0xdcbe('0x3d')]=function(_0x215790,_0x3b3a72,_0x5c2f02){var _0x58faa7=[_0xdcbe('0x43'),_0xdcbe('0x44'),_0xdcbe('0x45'),_0xdcbe('0x46'),'rtpaudioqosloss',_0xdcbe('0x47'),'rtpaudioqosrtt',_0xdcbe('0x48'),'sipcallid',_0xdcbe('0x49'),_0xdcbe('0x4a'),_0xdcbe('0x4b'),_0xdcbe('0x4c'),'memberdynamic','memberinterface',_0xdcbe('0x4d'),_0xdcbe('0x28'),_0xdcbe('0x4e'),_0xdcbe('0x4f')];if(!_[_0xdcbe('0x50')](_0x3b3a72)&&!_[_0xdcbe('0x51')](_0x58faa7,_0x3b3a72)){if(_[_0xdcbe('0x17')](this['variables'][_0x215790])){this[_0xdcbe('0xd')][_0x215790]={};}this[_0xdcbe('0xd')][_0x215790][_0x3b3a72]=_0x5c2f02;}};VoiceDialReport['prototype'][_0xdcbe('0x14')]=function(_0x4a56d1){try{if(this[_0xdcbe('0x16')](_0x4a56d1)){logger['debug'](_0xdcbe('0x52'),_0x4a56d1[_0xdcbe('0x1a')],util[_0xdcbe('0x1b')](_0x4a56d1,{'showHidden':![],'depth':null}));if(this[_0xdcbe('0xa')][_0x4a56d1['uniqueid']]){logger['info']('[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete',_0x4a56d1[_0xdcbe('0x1a')],_0x4a56d1['cause-txt']);this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]]['endtime']=moment()[_0xdcbe('0x1d')](_0xdcbe('0x1e'));this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x53')]=moment(this['channels'][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x54')])['diff'](this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x55')],_0xdcbe('0x56'));this['channels'][_0x4a56d1['uniqueid']][_0xdcbe('0x37')]=_0xdcbe('0x57');this['outbound'][_0xdcbe('0x58')]+=0x1;if(this[_0xdcbe('0xa')][_0x4a56d1['uniqueid']][_0xdcbe('0x36')]){this[_0xdcbe('0xc')][_0xdcbe('0x59')]+=0x1;this['channels'][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x5a')]=moment(this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x36')])['diff'](this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x55')],_0xdcbe('0x56'));this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x5b')]=moment(this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x54')])['diff'](this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x36')],'seconds');this[_0xdcbe('0xc')][_0xdcbe('0x5c')]+=this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]]['holdtime']||0x0;this[_0xdcbe('0xc')]['sumBillable']+=this['channels'][_0x4a56d1[_0xdcbe('0x1a')]]['billableseconds'];}this[_0xdcbe('0xc')]['sumDuration']+=this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]][_0xdcbe('0x53')];logger[_0xdcbe('0x18')]('[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:',_0x4a56d1['uniqueid'],util[_0xdcbe('0x1b')](this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xdcbe('0x2b')](_0xdcbe('0x5d'),this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]]);logger['debug'](_0xdcbe('0x5e'),_0x4a56d1[_0xdcbe('0x1a')],util[_0xdcbe('0x1b')](this[_0xdcbe('0xa')][_0x4a56d1['uniqueid']],{'showHidden':![],'depth':null}));ami[_0xdcbe('0x2b')](_0xdcbe('0x5f'),this[_0xdcbe('0xa')][_0x4a56d1['uniqueid']]);logger[_0xdcbe('0x18')](_0xdcbe('0x60'),_0x4a56d1[_0xdcbe('0x1a')],util['inspect'](this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]],{'showHidden':![],'depth':null}));this[_0xdcbe('0x2b')](_0xdcbe('0x2c'),_0xdcbe('0x61'),this['outbound']);logger['info'](_0xdcbe('0x62'),JSON[_0xdcbe('0x63')](this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]]));logger[_0xdcbe('0x18')](_0xdcbe('0x64'),_0x4a56d1[_0xdcbe('0x1a')],util[_0xdcbe('0x1b')](this['channels'][_0x4a56d1[_0xdcbe('0x1a')]],{'showHidden':![],'depth':null}));this[_0xdcbe('0x2b')]('voice:outbound',_0xdcbe('0x65'),this['channels'][_0x4a56d1['uniqueid']]);delete this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x1a')]];}else if(this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x66')]]){this['channels'][_0x4a56d1['linkedid']]['uniqueid']=this[_0xdcbe('0xa')][_0x4a56d1[_0xdcbe('0x66')]]['destuniqueid'];}if(this['variables'][_0x4a56d1[_0xdcbe('0x1a')]]){delete this['variables'][_0x4a56d1[_0xdcbe('0x1a')]];}}}catch(_0x257525){logger['error'](_0xdcbe('0x67'),_0x4a56d1[_0xdcbe('0x1a')],util[_0xdcbe('0x1b')](_0x257525,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xdcbe('0x15')][_0xdcbe('0x13')]=function(_0x4d4356){try{if(this['isNotNull'](_0x4d4356)){logger['debug'](_0xdcbe('0x68'),_0x4d4356['uniqueid'],util['inspect'](_0x4d4356,{'showHidden':![],'depth':null}));if(_0x4d4356['application'][_0xdcbe('0x69')]()===_0xdcbe('0x6a')){_0x4d4356[_0xdcbe('0x6b')]=(_0x4d4356[_0xdcbe('0x6c')]||_0x4d4356[_0xdcbe('0x6b')])[_0xdcbe('0x69')]();if(_[_0xdcbe('0x6d')](_0x4d4356[_0xdcbe('0x6b')],'cdr(')){if(_[_0xdcbe('0x17')](this[_0xdcbe('0x2a')][_0x4d4356[_0xdcbe('0x1a')]]))this[_0xdcbe('0x2a')][_0x4d4356[_0xdcbe('0x1a')]]={};logger[_0xdcbe('0x26')]('[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s',_0x4d4356[_0xdcbe('0x1a')],_0x4d4356['application'],_0x4d4356[_0xdcbe('0x6b')]);var _0x58b0aa=_0x4d4356[_0xdcbe('0x6b')][_0xdcbe('0x6e')]('=');var _0x5a9233=_0x58b0aa[0x0][_0xdcbe('0x6f')](/cdr\((.*)\)/);if(_0x5a9233)this[_0xdcbe('0x2a')][_0x4d4356[_0xdcbe('0x1a')]][_0x5a9233[0x1]]=_0x58b0aa[0x1];}}}}catch(_0x59874f){logger['error'](_0xdcbe('0x70'),_0x4d4356['uniqueid'],util[_0xdcbe('0x1b')](_0x59874f,{'showHidden':![],'depth':null}));}};module[_0xdcbe('0x71')]=VoiceDialReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfcc=['[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','mohtime','[%s][voiceQueueReport][newexten]\x20event:','application','applicationdata','appdata','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','match','[%s][voiceQueueReport][newexten]','exports','lodash','md5','ioredis','../../../config/environment','../../../config/logger','defaults','redis','socket.io-emitter','prototype','enqueue','tail','finally','sequence','queueReports','agents','channels','queueChannels','voiceQueues','flagQueueSummary','campaigns','variables','queuesummary','bind','queuesummarycomplete','syncQueueSummaryComplete','queuecallerjoin','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','syncAgentConnect','varset','syncHangup','fullybooted','syncFullyBooted','newexten','musiconholdstart','attendedtransfer','blindtransfer','syncBlindTransfer','loopQueueSummary','hasOwnProperty','isEmpty','originated','talking','waiting','queueStatusComplete','unlockRR','clearZombieChannels','switch','isNil','status','catch','message','error','[%s][voiceQueueReport][checkChannel]','inspect','[%s][voiceQueueReport][checkQueueReport]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','emit','emitVoiceQueueChannelSave','debug',']\x20sending\x20voice_queue_channel:save\x20event:','uniqueid','format','voice:queue:%s','name','voice_queue_presence:save',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_channel:remove','voice_queue_presence:remove','type','inbound','strategy','available','loggedIn','sumBillable','sumDuration','sumHoldTime','total','unmanaged','abandoned','Trunk','active','Interval','stringify','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','voice_queue:save','isUndefined','queues','Action','then','isNotNull','queue','[voiceQueueReport][queuesummary]\x20event:','[voiceQueueReport][queuesummary]\x20name:%s','callers','toNumber','loggedin','emitVoiceQueueSummary','[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:','custom:queuesummary','[voiceQueueReport][queuesummarycomplete]\x20event:','syncQueueCallerJoin','[%s][voiceQueueReport][queuecallerjoin]','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','pick','keys','[%s][voiceQueueReport][queuecallerabandon]','last','queuecallercomplete','holdtime','originalposition','queuecallerabandonAt','queuecallerexitreason','ABANDONED','lastAssignedTo','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','syncQueueCallerLeave','queuecallerleaveAt','connectedlinenum','info','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinename','queuecallerleave','[%s][voiceQueueReport][queuecallerleave]','[%s][voiceQueueReport][agentconnect]','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentcomplete]','assigned','queuecallerexit','queuecallerexitAt','transfer','reason','COMPLETED','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','startsWith','channel','toLowerCase','linkedid','queuecallerjoinAt','seconds','FORWARDTRANSFER','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','[%s][voiceQueueReport][varset]','value','variable','queuestatus','CONTINUE','TIMEOUT','lastevent','timeout','custom:timeout','queueposition','EXITWITHKEY','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','membercalls','memberdynamic','memberinterface','memberlastcall','membername','memberpenalty','memberrealtime','includes','[%s][voiceQueueReport][hangup]','length','diff','answered','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','custom:queuecallerunmanaged','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','custom:queuecallerabandon','[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s','cause-txt','hangup','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','custom:voiceQueueReport','syncAttendedTransfer','[%s][voiceQueueReport][attendedtransfer]','transfereeuniqueid','transferexten','secondtransfereruniqueid','ATTENDEDTRANSFER','transfertype','ATTENDED','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','origtransfereruniqueid','[%s][voiceQueueReport][blindtransfer]','BLINDTRANSFER','BLIND','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','context','transfererchannel','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','milliseconds'];(function(_0x29495c,_0x580830){var _0x61f4e3=function(_0x973a2a){while(--_0x973a2a){_0x29495c['push'](_0x29495c['shift']());}};_0x61f4e3(++_0x580830);}(_0xbfcc,0x1dd));var _0xcbfc=function(_0x5608a3,_0x5b33c5){_0x5608a3=_0x5608a3-0x0;var _0x1ed50a=_0xbfcc[_0x5608a3];return _0x1ed50a;};'use strict';var _=require(_0xcbfc('0x0'));var moment=require('moment');var util=require('util');var md5=require(_0xcbfc('0x1'));var Redis=require(_0xcbfc('0x2'));var config=require(_0xcbfc('0x3'));var logger=require(_0xcbfc('0x4'))('ami');var ami=require('../ami');var QueueReport=require('../model/queueReport');config['redis']=_[_0xcbfc('0x5')](config[_0xcbfc('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0xcbfc('0x7'))(new Redis(config['redis']));var Sequence=function(){};Sequence[_0xcbfc('0x8')][_0xcbfc('0x9')]=function(_0x1b1377){this[_0xcbfc('0xa')]=this['tail']?this[_0xcbfc('0xa')][_0xcbfc('0xb')](_0x1b1377):_0x1b1377();};function VoiceQueueReport(_0x36bdb8){this[_0xcbfc('0xc')]=new Sequence();this[_0xcbfc('0xd')]={};this[_0xcbfc('0xe')]=_0x36bdb8['agents'];this[_0xcbfc('0xf')]=_0x36bdb8[_0xcbfc('0x10')];this[_0xcbfc('0x11')]=_0x36bdb8[_0xcbfc('0x11')];this[_0xcbfc('0x12')]=!![];this['campaigns']=_0x36bdb8[_0xcbfc('0x13')];this[_0xcbfc('0x14')]={};ami['on'](_0xcbfc('0x15'),this['syncQueueSummary'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x17'),this[_0xcbfc('0x18')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x19'),this['syncQueueCallerJoin'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x1a'),this[_0xcbfc('0x1b')][_0xcbfc('0x16')](this));ami['on']('queuecallerleave',this['syncQueueCallerLeave'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x1c'),this[_0xcbfc('0x1d')]['bind'](this));ami['on']('agentconnect',this[_0xcbfc('0x1e')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x1f'),this['syncVarSet'][_0xcbfc('0x16')](this));ami['on']('hangup',this[_0xcbfc('0x20')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x21'),this[_0xcbfc('0x22')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x23'),this['syncNewExten'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x24'),this['syncMusicOnHoldStart'][_0xcbfc('0x16')](this));ami['on']('musiconholdstop',this['syncMusicOnHoldStop']['bind'](this));ami['on'](_0xcbfc('0x25'),this['syncAttendedTransfer']['bind'](this));ami['on'](_0xcbfc('0x26'),this[_0xcbfc('0x27')][_0xcbfc('0x16')](this));this[_0xcbfc('0x28')]();this['loopQueueShow']();}function clearChannels(_0x1d828e){if(!_['isEmpty'](_0x1d828e)){for(var _0x280b78 in _0x1d828e){if(_0x1d828e[_0xcbfc('0x29')](_0x280b78)){delete _0x1d828e[_0x280b78];}}}}function clearCampaigns(_0x53951a){if(!_[_0xcbfc('0x2a')](_0x53951a)){for(var _0x3b73a3 in _0x53951a){if(_0x53951a['hasOwnProperty'](_0x3b73a3)){_0x53951a[_0x3b73a3][_0xcbfc('0x2b')]=0x0;}}}}function clearVoiceQueues(_0x3c3afd){if(!_[_0xcbfc('0x2a')](_0x3c3afd)){for(var _0x41f3b8 in _0x3c3afd){if(_0x3c3afd['hasOwnProperty'](_0x41f3b8)){_0x3c3afd[_0x41f3b8][_0xcbfc('0x2b')]=0x0;_0x3c3afd[_0x41f3b8][_0xcbfc('0x2c')]=0x0;_0x3c3afd[_0x41f3b8]['pTalking']=0x0;_0x3c3afd[_0x41f3b8][_0xcbfc('0x2d')]=0x0;_0x3c3afd[_0x41f3b8][_0xcbfc('0x2e')]=!![];}}}}function clearAgentBooked(_0x7cbdfa){if(!_[_0xcbfc('0x2a')](_0x7cbdfa)){for(var _0x2b4286 in _0x7cbdfa){if(_0x7cbdfa[_0xcbfc('0x29')](_0x2b4286)){_0x7cbdfa[_0x2b4286][_0xcbfc('0x2f')]=!![];}}}}VoiceQueueReport['prototype'][_0xcbfc('0x30')]=function(){var _0x433300=this;for(var _0x3f9d20 in this[_0xcbfc('0xf')]){if(this['channels'][_0xcbfc('0x29')](_0x3f9d20)&&!this[_0xcbfc('0xf')][_0x3f9d20][_0xcbfc('0x31')]){this[_0xcbfc('0xc')][_0xcbfc('0x9')](function(){if(!_[_0xcbfc('0x32')](_0x433300[_0xcbfc('0xf')][_0x3f9d20])){return ami['Action']({'action':_0xcbfc('0x33'),'channel':_0x433300[_0xcbfc('0xf')][_0x3f9d20]['channel']})[_0xcbfc('0x34')](function(_0x442cab){if(_0x442cab[_0xcbfc('0x35')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x433300['channels'][_0x3f9d20]){delete _0x433300['channels'][_0x3f9d20];logger[_0xcbfc('0x36')](_0xcbfc('0x37'),_0x3f9d20,util[_0xcbfc('0x38')](_0x442cab,{'showHidden':![],'depth':null}));}if(_0x433300[_0xcbfc('0xd')][_0x3f9d20]){delete _0x433300[_0xcbfc('0xd')][_0x3f9d20];logger[_0xcbfc('0x36')](_0xcbfc('0x39'),_0x3f9d20,util[_0xcbfc('0x38')](_0x442cab,{'showHidden':![],'depth':null}));}if(_0x433300['variables'][_0x3f9d20]){delete _0x433300[_0xcbfc('0x14')][_0x3f9d20];logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][checkVariables]',_0x3f9d20,util[_0xcbfc('0x38')](_0x442cab,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport['prototype'][_0xcbfc('0x22')]=function(){logger[_0xcbfc('0x36')](_0xcbfc('0x3a'));clearChannels(this['channels']);this[_0xcbfc('0x3b')](this['queueReports']);clearAgentBooked(this['agents']);clearVoiceQueues(this[_0xcbfc('0x11')]);clearCampaigns(this[_0xcbfc('0x13')]);};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3b')]=function(_0x3f25a4){var _0x2e3648=this;if(!_[_0xcbfc('0x2a')](_0x3f25a4)){for(var _0x1b014d in _0x3f25a4){if(_0x3f25a4['hasOwnProperty'](_0x1b014d)){_0x2e3648[_0xcbfc('0x3c')](_0x3f25a4[_0x1b014d],'clearqueuereport');delete _0x3f25a4[_0x1b014d];}}}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3d')]=function(_0x312d28,_0x38ed35,_0x58b44e){io['to'](_0x312d28)['emit'](_0x38ed35,_0x58b44e);};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3e')]=function(_0x404f46,_0x291389){logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport]['+_0x291389+_0xcbfc('0x40'),_0x404f46[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x404f46,{'showHidden':![],'depth':null}));this['emit'](util[_0xcbfc('0x42')](_0xcbfc('0x43'),_0x404f46[_0xcbfc('0x44')]),'voice_queue_channel:save',_0x404f46);io[_0xcbfc('0x3d')](_0xcbfc('0x45'),_0x404f46);};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3c')]=function(_0x102f4f,_0x28447a){logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport]['+_0x28447a+_0xcbfc('0x46'),_0x102f4f[_0xcbfc('0x41')],util['inspect'](_0x102f4f,{'showHidden':![],'depth':null}));this[_0xcbfc('0x3d')](util[_0xcbfc('0x42')](_0xcbfc('0x43'),_0x102f4f[_0xcbfc('0x44')]),_0xcbfc('0x47'),_0x102f4f);io[_0xcbfc('0x3d')](_0xcbfc('0x48'),_0x102f4f);};VoiceQueueReport[_0xcbfc('0x8')]['emitVoiceQueueSummary']=function(_0x1e2501,_0x42c1af){if(_0x1e2501[_0xcbfc('0x49')]===_0xcbfc('0x4a')){var _0x2887e0={'id':_0x1e2501['id'],'name':_0x1e2501[_0xcbfc('0x44')],'strategy':_0x1e2501[_0xcbfc('0x4b')],'answered':_0x1e2501['answered'],'available':_0x1e2501[_0xcbfc('0x4c')],'loggedIn':_0x1e2501[_0xcbfc('0x4d')],'pTalking':_0x1e2501['pTalking'],'sumBillable':_0x1e2501[_0xcbfc('0x4e')],'sumDuration':_0x1e2501[_0xcbfc('0x4f')],'sumHoldTime':_0x1e2501[_0xcbfc('0x50')]||0x0,'talking':_0x1e2501['talking'],'total':_0x1e2501[_0xcbfc('0x51')],'type':_0x1e2501[_0xcbfc('0x49')],'unmanaged':_0x1e2501[_0xcbfc('0x52')],'abandoned':_0x1e2501[_0xcbfc('0x53')],'waiting':_0x1e2501[_0xcbfc('0x2d')]};if(_0x1e2501[_0xcbfc('0x54')]){_0x2887e0[_0xcbfc('0x54')]={'id':_0x1e2501['Trunk']['id'],'name':_0x1e2501['Trunk'][_0xcbfc('0x44')],'active':_0x1e2501[_0xcbfc('0x54')][_0xcbfc('0x55')],'callerid':_0x1e2501[_0xcbfc('0x54')]['callerid']};}if(_0x1e2501['Interval']){_0x2887e0[_0xcbfc('0x56')]={'id':_0x1e2501[_0xcbfc('0x56')]['id'],'name':_0x1e2501[_0xcbfc('0x56')]['name']};}var _0x155236=md5(JSON[_0xcbfc('0x57')](_0x2887e0));if(_0x1e2501[_0xcbfc('0x1')]!==_0x155236){_0x1e2501['md5']=_0x155236;logger[_0xcbfc('0x3f')](_0xcbfc('0x58')+_0x42c1af+_0xcbfc('0x59'),util[_0xcbfc('0x38')](_0x2887e0,{'showHidden':![],'depth':null}));this[_0xcbfc('0x3d')](util[_0xcbfc('0x42')](_0xcbfc('0x43'),_0x2887e0[_0xcbfc('0x44')]),_0xcbfc('0x5a'),_0x2887e0);}}};VoiceQueueReport[_0xcbfc('0x8')]['isNotNull']=function(_0x3fb619){return _0x3fb619!==null&&!_[_0xcbfc('0x5b')](_0x3fb619);};VoiceQueueReport[_0xcbfc('0x8')]['loopQueueShow']=function(){var _0x28ae7f=this;setInterval(function(){_0x28ae7f[_0xcbfc('0x30')]();ami['Action']({'action':_0xcbfc('0x5c')})[_0xcbfc('0x34')](function(_0x38db76){logger[_0xcbfc('0x36')]('[voiceQueueReport][queues]',util[_0xcbfc('0x38')](_0x38db76,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0xcbfc('0x8')]['loopQueueSummary']=function(){var _0x2fe240=this;setInterval(function(){if(_0x2fe240[_0xcbfc('0x12')]){return ami[_0xcbfc('0x5d')]({'action':_0xcbfc('0x15')})[_0xcbfc('0x5e')](function(_0x2f4e97){_0x2fe240[_0xcbfc('0x12')]=![];})[_0xcbfc('0x34')](function(_0x7a16dc){logger[_0xcbfc('0x36')]('[voiceQueueReport][queuesummary]',util[_0xcbfc('0x38')](_0x7a16dc,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport['prototype']['syncQueueSummary']=function(_0x4a10e6){try{if(this[_0xcbfc('0x5f')](_0x4a10e6)&&this[_0xcbfc('0x5f')](_0x4a10e6[_0xcbfc('0x60')])){logger[_0xcbfc('0x3f')](_0xcbfc('0x61'),util[_0xcbfc('0x38')](_0x4a10e6,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]){logger['info'](_0xcbfc('0x62'),_0x4a10e6[_0xcbfc('0x60')]);var _0x37610c=_['countBy'](this[_0xcbfc('0xf')],_0xcbfc('0x60'))[_0x4a10e6[_0xcbfc('0x60')]]||0x0;var _0x3b526f=_0x37610c-_0x4a10e6[_0xcbfc('0x63')];if(this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]['waiting']!==_[_0xcbfc('0x64')](_0x4a10e6['callers'])||this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]['loggedIn']!==_[_0xcbfc('0x64')](_0x4a10e6['loggedin'])||this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x4c')]!==_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x4c')])||this[_0xcbfc('0x11')][_0x4a10e6['queue']][_0xcbfc('0x2c')]!==_0x3b526f){this[_0xcbfc('0x11')][_0x4a10e6['queue']][_0xcbfc('0x2d')]=_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x63')]);this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x4d')]=_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x65')]);this['voiceQueues'][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x4c')]=_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x4c')]);this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')]=_0x3b526f>0x0?_0x3b526f:0x0;this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')]=this['voiceQueues'][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')]>_['toNumber'](_0x4a10e6[_0xcbfc('0x65')])?_['toNumber'](_0x4a10e6['loggedin']):this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')];this[_0xcbfc('0x66')](this[_0xcbfc('0x11')][_0x4a10e6['queue']],'queuesummary');}logger[_0xcbfc('0x3f')](_0xcbfc('0x67'),util[_0xcbfc('0x38')](this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]],{'showHidden':![],'depth':null}));ami['emit'](_0xcbfc('0x68'),this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]);}}}catch(_0x4a62fc){logger['error']('[voiceQueueReport][queuesummary]',util[_0xcbfc('0x38')](_0x4a62fc,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncQueueSummaryComplete']=function(_0x41ddf5){logger['debug'](_0xcbfc('0x69'),util[_0xcbfc('0x38')](_0x41ddf5,{'showHidden':![],'depth':null}));this[_0xcbfc('0x12')]=!![];};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x6a')]=function(_0x4923e5){try{if(this[_0xcbfc('0x5f')](_0x4923e5)){logger[_0xcbfc('0x3f')](_0xcbfc('0x6b'),_0x4923e5['uniqueid'],util[_0xcbfc('0x38')](_0x4923e5,{'showHidden':![],'depth':null}));if(_[_0xcbfc('0x5b')](this[_0xcbfc('0xd')][_0x4923e5['uniqueid']]))this[_0xcbfc('0xd')][_0x4923e5[_0xcbfc('0x41')]]=[];if(_[_0xcbfc('0x5b')](this[_0xcbfc('0xf')][_0x4923e5[_0xcbfc('0x41')]]))this[_0xcbfc('0xf')][_0x4923e5[_0xcbfc('0x41')]]={};var _0x562380=new QueueReport();_0x562380[_0xcbfc('0x44')]=_0x4923e5['queue'];_0x562380[_0xcbfc('0x49')]=this[_0xcbfc('0x11')][_0x562380[_0xcbfc('0x44')]]&&this['voiceQueues'][_0x562380[_0xcbfc('0x44')]]['type']?this[_0xcbfc('0x11')][_0x562380[_0xcbfc('0x44')]][_0xcbfc('0x49')]||_0xcbfc('0x4a'):_0xcbfc('0x4a');_0x562380[_0xcbfc('0x60')]=_0x4923e5[_0xcbfc('0x60')];_0x562380['queuecallerjoinAt']=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x562380[_0xcbfc('0x6d')]=_0x4923e5['position'];_0x562380[_0xcbfc('0x6e')]=_0x4923e5['count'];_0x562380[_0xcbfc('0x41')]=_0x4923e5[_0xcbfc('0x41')];_0x562380[_0xcbfc('0x6f')]=this['channels'][_0x4923e5[_0xcbfc('0x41')]][_0xcbfc('0x6f')];logger['info'](_0xcbfc('0x70'),_0x562380['name'],_0x562380[_0xcbfc('0x49')]);_['merge'](_0x562380,_[_0xcbfc('0x71')](_0x4923e5,_[_0xcbfc('0x72')](_0x562380)));this['queueReports'][_0x4923e5[_0xcbfc('0x41')]]['push'](_0x562380);this[_0xcbfc('0xf')][_0x4923e5[_0xcbfc('0x41')]]=_0x562380;this[_0xcbfc('0x3e')](_0x562380,_0xcbfc('0x19'));}}catch(_0x5301a7){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][queuecallerjoin]',_0x4923e5[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x5301a7,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x1b')]=function(_0xa99990){try{if(this[_0xcbfc('0x5f')](_0xa99990)){logger[_0xcbfc('0x3f')](_0xcbfc('0x73'),_0xa99990[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0xa99990,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0xa99990[_0xcbfc('0x41')]]){var _0x780a98=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0xa99990[_0xcbfc('0x41')]]);_0x780a98[_0xcbfc('0x75')]=![];_0x780a98['queuecallercompleteAt']=null;_0x780a98[_0xcbfc('0x76')]=_0xa99990['holdtime'];_0x780a98[_0xcbfc('0x77')]=_0xa99990['originalposition'];_0x780a98[_0xcbfc('0x1a')]=!![];_0x780a98[_0xcbfc('0x78')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x780a98[_0xcbfc('0x79')]=_0xcbfc('0x7a');_0x780a98[_0xcbfc('0x7b')]=null;logger['info'](_0xcbfc('0x7c'),_0x780a98['name'],_0x780a98[_0xcbfc('0x49')]);this[_0xcbfc('0xf')][_0xa99990['uniqueid']]=_0x780a98;this['emitVoiceQueueChannelRemove'](_0x780a98,'queuecallerabandon');}}}catch(_0xd86296){logger[_0xcbfc('0x36')](_0xcbfc('0x73'),_0xa99990['uniqueid'],util['inspect'](_0xd86296,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x7d')]=function(_0x43a3f9){try{if(this[_0xcbfc('0x5f')](_0x43a3f9)){logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport][queuecallerleave]',_0x43a3f9['uniqueid'],util['inspect'](_0x43a3f9,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x43a3f9[_0xcbfc('0x41')]]){var _0x128074=_[_0xcbfc('0x74')](this['queueReports'][_0x43a3f9['uniqueid']]);_0x128074[_0xcbfc('0x7e')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x128074[_0xcbfc('0x7f')]=_0x43a3f9[_0xcbfc('0x7f')];_0x128074['connectedlinename']=_0x43a3f9['connectedlinename'];logger[_0xcbfc('0x80')](_0xcbfc('0x81'),_0x128074[_0xcbfc('0x44')],_0x128074[_0xcbfc('0x49')],_0x43a3f9[_0xcbfc('0x7f')],_0x43a3f9[_0xcbfc('0x82')]);this[_0xcbfc('0xf')][_0x43a3f9[_0xcbfc('0x41')]]=_0x128074;this[_0xcbfc('0x3e')](_0x128074,_0xcbfc('0x83'));}}}catch(_0x42f8ee){logger[_0xcbfc('0x36')](_0xcbfc('0x84'),_0x43a3f9[_0xcbfc('0x41')],util['inspect'](_0x42f8ee,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xcbfc('0x1e')]=function(_0x41d0b3){try{if(this[_0xcbfc('0x5f')](_0x41d0b3)){logger['debug'](_0xcbfc('0x85'),_0x41d0b3[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x41d0b3,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x41d0b3['uniqueid']]){var _0x4df8d0=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x41d0b3[_0xcbfc('0x41')]]);_0x4df8d0[_0xcbfc('0x75')]=!![];_0x4df8d0[_0xcbfc('0x79')]=_0xcbfc('0x86');logger[_0xcbfc('0x80')](_0xcbfc('0x87'),_0x4df8d0[_0xcbfc('0x44')],_0x4df8d0[_0xcbfc('0x49')]);}}}catch(_0x642b1e){logger[_0xcbfc('0x36')](_0xcbfc('0x85'),_0x41d0b3[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x642b1e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x1d')]=function(_0x141d71){try{if(this[_0xcbfc('0x5f')](_0x141d71)){logger['debug'](_0xcbfc('0x88'),_0x141d71['uniqueid'],util[_0xcbfc('0x38')](_0x141d71,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x141d71[_0xcbfc('0x41')]]){var _0x57b996=_['last'](this['queueReports'][_0x141d71[_0xcbfc('0x41')]]);_0x57b996[_0xcbfc('0x1a')]=![];_0x57b996[_0xcbfc('0x78')]=null;_0x57b996[_0xcbfc('0x89')]=!![];_0x57b996[_0xcbfc('0x7b')]=_0x141d71['membername'];_0x57b996[_0xcbfc('0x76')]=_0x141d71[_0xcbfc('0x76')];_0x57b996[_0xcbfc('0x75')]=!![];_0x57b996[_0xcbfc('0x8a')]=![];_0x57b996[_0xcbfc('0x8b')]=null;if(!_0x57b996[_0xcbfc('0x8c')]){if(_0x141d71[_0xcbfc('0x8d')]==_0xcbfc('0x8c')){_0x57b996['queuecallerexitreason']=_0xcbfc('0x8e');logger[_0xcbfc('0x80')](_0xcbfc('0x8f'),_0x57b996['name'],_0x57b996[_0xcbfc('0x49')]);}else{if(_[_0xcbfc('0x90')](_0x141d71[_0xcbfc('0x91')][_0xcbfc('0x92')](),'local/')){if(this[_0xcbfc('0xd')][_0x141d71[_0xcbfc('0x93')]]){var _0x2a43d3=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x141d71[_0xcbfc('0x93')]]);_0x2a43d3[_0xcbfc('0x75')]=![];_0x2a43d3[_0xcbfc('0x8a')]=!![];_0x2a43d3[_0xcbfc('0x8b')]=moment(_0x57b996[_0xcbfc('0x94')])['add'](_0x141d71['holdtime'],_0xcbfc('0x95'))[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2a43d3['queuecallerexitreason']=_0xcbfc('0x96');_0x2a43d3['transfer']=!![];_0x2a43d3['transfertype']='FORWARD';_0x2a43d3['transferexten']=_0x141d71[_0xcbfc('0x97')];_0x2a43d3[_0xcbfc('0x98')]=_0x141d71[_0xcbfc('0x41')];logger[_0xcbfc('0x80')](_0xcbfc('0x99'),_0x2a43d3['name'],_0x2a43d3[_0xcbfc('0x49')]);var _0x363910=this[_0xcbfc('0xd')][_0x141d71['linkedid']];this[_0xcbfc('0xd')][_0x141d71['linkedid']]=this['queueReports'][_0x141d71[_0xcbfc('0x41')]];this[_0xcbfc('0xd')][_0x141d71[_0xcbfc('0x41')]]=_0x363910;}}else{_0x57b996['queuecallerexitreason']=_0xcbfc('0x9a')+_0x141d71[_0xcbfc('0x8d')][_0xcbfc('0x9b')]();logger['info'](_0xcbfc('0x9c'),_0x57b996[_0xcbfc('0x44')],_0x57b996[_0xcbfc('0x49')],_0x57b996[_0xcbfc('0x79')]);}}}this[_0xcbfc('0xf')][_0x141d71['uniqueid']]=_0x57b996;this[_0xcbfc('0x3c')](_0x57b996,_0xcbfc('0x1c'));}}}catch(_0x15864a){logger['error'](_0xcbfc('0x88'),_0x141d71[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x15864a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')]['syncVarSet']=function(_0x4108bf){try{if(this[_0xcbfc('0x5f')](_0x4108bf)){logger[_0xcbfc('0x3f')](_0xcbfc('0x9d'),_0x4108bf[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x4108bf,{'showHidden':![],'depth':null}));this['addVariable'](_0x4108bf['uniqueid'],_['keys'](_0x4108bf['variable'])[0x0],_0x4108bf[_0xcbfc('0x9e')]);if(this[_0xcbfc('0xd')][_0x4108bf[_0xcbfc('0x41')]]){var _0x2c8643=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x4108bf[_0xcbfc('0x41')]]);if(_0x2c8643){if(this['isNotNull'](_0x4108bf[_0xcbfc('0x9f')])&&this['isNotNull'](_0x4108bf[_0xcbfc('0x9f')][_0xcbfc('0xa0')])){switch(_0x4108bf[_0xcbfc('0x9e')]){case _0xcbfc('0xa1'):_0x2c8643['queuecallerexit']=![];_0x2c8643[_0xcbfc('0x8b')]=null;break;case _0xcbfc('0xa2'):_0x2c8643[_0xcbfc('0xa3')]=_0xcbfc('0xa4');_0x2c8643[_0xcbfc('0x8a')]=!![];_0x2c8643[_0xcbfc('0x8b')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2c8643[_0xcbfc('0x7e')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:',_0x4108bf[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x2c8643,{'showHidden':![],'depth':null}));ami[_0xcbfc('0x3d')](_0xcbfc('0xa5'),_0x2c8643);break;default:_0x2c8643[_0xcbfc('0x8a')]=!![];_0x2c8643[_0xcbfc('0x8b')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2c8643[_0xcbfc('0x7e')]=moment()['format'](_0xcbfc('0x6c'));}_0x2c8643['queuecallerabandon']=![];_0x2c8643['queuecallerabandonAt']=null;_0x2c8643[_0xcbfc('0x79')]=_0x4108bf[_0xcbfc('0x9e')];this[_0xcbfc('0xf')][_0x4108bf[_0xcbfc('0x41')]]=_0x2c8643;this[_0xcbfc('0x3c')](_0x2c8643,_0xcbfc('0x1f'));}else if(this[_0xcbfc('0x5f')](_0x4108bf[_0xcbfc('0x9f')])&&this[_0xcbfc('0x5f')](_0x4108bf[_0xcbfc('0x9f')][_0xcbfc('0xa6')])){if(!_0x2c8643['queuecallerabandon']){_0x2c8643[_0xcbfc('0x8a')]=!![];_0x2c8643['queuecallerexitAt']=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2c8643[_0xcbfc('0x79')]=_0xcbfc('0xa7');_0x2c8643[_0xcbfc('0x7e')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));this[_0xcbfc('0xf')][_0x4108bf[_0xcbfc('0x41')]]=_0x2c8643;}}logger[_0xcbfc('0x80')](_0xcbfc('0xa8'),_0x4108bf[_0xcbfc('0x41')],_0x2c8643[_0xcbfc('0x44')],_0x2c8643[_0xcbfc('0x49')],_[_0xcbfc('0x72')](_0x4108bf[_0xcbfc('0x9f')])[0x0],_0x4108bf[_0xcbfc('0x9e')]);_0x2c8643[_0xcbfc('0x14')]=this[_0xcbfc('0x14')][_0x4108bf[_0xcbfc('0x41')]];}}}}catch(_0x37780b){logger[_0xcbfc('0x36')](_0xcbfc('0x9d'),_0x4108bf['uniqueid'],util['inspect'](_0x37780b,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xcbfc('0xa9')]=function(_0x43f37e,_0x37f17d,_0x240cef){var _0x3f20a5=[_0xcbfc('0xaa'),_0xcbfc('0xab'),_0xcbfc('0xac'),_0xcbfc('0xad'),_0xcbfc('0xae'),'rtpaudioqoslossbridged',_0xcbfc('0xaf'),_0xcbfc('0xb0'),_0xcbfc('0xb1'),_0xcbfc('0xb2'),_0xcbfc('0xb3'),'bridgepvtcallid',_0xcbfc('0xb4'),_0xcbfc('0xb5'),_0xcbfc('0xb6'),_0xcbfc('0xb7'),_0xcbfc('0xb8'),_0xcbfc('0xb9'),_0xcbfc('0xba')];if(!_[_0xcbfc('0x32')](_0x37f17d)&&!_[_0xcbfc('0xbb')](_0x3f20a5,_0x37f17d)){if(_['isUndefined'](this[_0xcbfc('0x14')][_0x43f37e])){this['variables'][_0x43f37e]={};}this['variables'][_0x43f37e][_0x37f17d]=_0x240cef;}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x20')]=function(_0x13d654){try{if(this['isNotNull'](_0x13d654)){logger[_0xcbfc('0x3f')](_0xcbfc('0xbc'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x13d654,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]]){for(var _0x589ad6=0x0,_0x1f50e4={};_0x589ad6<this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]][_0xcbfc('0xbd')];_0x589ad6+=0x1){_0x1f50e4=this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]][_0x589ad6];if(this[_0xcbfc('0x11')][_0x1f50e4['queue']]){if(_0x1f50e4[_0xcbfc('0x8a')]&&_0x1f50e4[_0xcbfc('0x8c')]!=!![]){this['voiceQueues'][_0x1f50e4['queue']]['unmanaged']+=0x1;}if(_0x1f50e4[_0xcbfc('0x1a')]){this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x53')]+=0x1;}this['voiceQueues'][_0x1f50e4['queue']][_0xcbfc('0x50')]+=moment(_0x1f50e4[_0xcbfc('0x7e')])['diff'](_0x1f50e4[_0xcbfc('0x94')],_0xcbfc('0x95'))||0x0;if(_0x589ad6===this['queueReports'][_0x13d654[_0xcbfc('0x41')]][_0xcbfc('0xbd')]-0x1){this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x4f')]+=moment()['milliseconds'](0x0)[_0xcbfc('0xbe')](_0x1f50e4[_0xcbfc('0x94')],_0xcbfc('0x95'));this[_0xcbfc('0x11')][_0x1f50e4['queue']][_0xcbfc('0x51')]+=0x1;if(_0x1f50e4[_0xcbfc('0x75')]){this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0xbf')]+=0x1;this[_0xcbfc('0x11')][_0x1f50e4['queue']][_0xcbfc('0x4e')]+=moment()['milliseconds'](0x0)[_0xcbfc('0xbe')](_0x1f50e4[_0xcbfc('0x7e')],_0xcbfc('0x95'));_0x1f50e4['queuecallercompleteAt']=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x1f50e4[_0xcbfc('0x8a')]=![];_0x1f50e4[_0xcbfc('0x8b')]=null;}if(_0x1f50e4[_0xcbfc('0x8a')]&&_0x1f50e4[_0xcbfc('0x8c')]!=!![]){_0x1f50e4[_0xcbfc('0xa3')]='unmanaged';logger[_0xcbfc('0x3f')](_0xcbfc('0xc0'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x1f50e4,{'showHidden':![],'depth':null}));ami[_0xcbfc('0x3d')](_0xcbfc('0xc1'),_0x1f50e4);}if(_0x1f50e4[_0xcbfc('0x1a')]){_0x1f50e4['lastevent']=_0xcbfc('0x53');logger['debug'](_0xcbfc('0xc2'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x1f50e4,{'showHidden':![],'depth':null}));ami['emit'](_0xcbfc('0xc3'),_0x1f50e4);}}else{this['voiceQueues'][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x4f')]+=this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x50')];}logger[_0xcbfc('0x80')](_0xcbfc('0xc4'),_0x13d654['uniqueid'],_0x1f50e4[_0xcbfc('0x44')],_0x1f50e4['type'],_0x13d654[_0xcbfc('0xc5')]);this[_0xcbfc('0xf')][_0x13d654[_0xcbfc('0x41')]]=_0x1f50e4;this[_0xcbfc('0x3c')](_0x1f50e4,_0xcbfc('0xc6'));this[_0xcbfc('0x66')](this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]],_0xcbfc('0xc6'));}}logger[_0xcbfc('0x3f')](_0xcbfc('0xc7'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]],{'showHidden':![],'depth':null}));ami[_0xcbfc('0x3d')](_0xcbfc('0xc8'),this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]]);delete this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]];delete this['channels'][_0x13d654[_0xcbfc('0x41')]];}if(this[_0xcbfc('0x14')][_0x13d654[_0xcbfc('0x41')]]){delete this[_0xcbfc('0x14')][_0x13d654['uniqueid']];}}}catch(_0x58ceef){logger[_0xcbfc('0x36')](_0xcbfc('0xbc'),_0x13d654['uniqueid'],util['inspect'](_0x58ceef,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0xc9')]=function(_0x52b980){try{if(this['isNotNull'](_0x52b980)){logger[_0xcbfc('0x3f')](_0xcbfc('0xca'),_0x52b980[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x52b980,{'showHidden':![],'depth':null}));var _0xa043ad;if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcb')]]){_0xa043ad=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcb')]]);_0xa043ad[_0xcbfc('0xcc')]=_0x52b980['secondtransfererexten'];_0xa043ad[_0xcbfc('0x98')]=_0x52b980[_0xcbfc('0xcd')];_0xa043ad[_0xcbfc('0x79')]=_0xcbfc('0xce');_0xa043ad[_0xcbfc('0x8c')]=!![];_0xa043ad[_0xcbfc('0xcf')]=_0xcbfc('0xd0');if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcd')]]){var _0x559f96=this['queueReports'][_0x52b980[_0xcbfc('0xcd')]];this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcd')]]=this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcb')]];this['queueReports'][_0x52b980[_0xcbfc('0xcb')]]=_0x559f96;var _0x543b4b=_[_0xcbfc('0x74')](this['queueReports'][_0x52b980[_0xcbfc('0xcb')]]);_0x543b4b['switch']=!![];}logger[_0xcbfc('0x80')](_0xcbfc('0xd1'),_0x52b980['uniqueid'],_0xa043ad[_0xcbfc('0x44')],_0xa043ad[_0xcbfc('0x49')],_0xa043ad[_0xcbfc('0xcc')],_0xa043ad['transferuniqueid']);}else if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]){_0xa043ad=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]);_0xa043ad[_0xcbfc('0xcc')]=_0x52b980['origtransfererexten'];_0xa043ad[_0xcbfc('0x98')]=_0x52b980[_0xcbfc('0xd3')];_0xa043ad[_0xcbfc('0x79')]=_0xcbfc('0xce');_0xa043ad[_0xcbfc('0x8c')]=!![];_0xa043ad[_0xcbfc('0xcf')]='ATTENDED';if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd3')]]){var _0x559f96=this['queueReports'][_0x52b980[_0xcbfc('0xd3')]];this[_0xcbfc('0xd')][_0x52b980['origtransfereruniqueid']]=this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]];this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]=_0x559f96;var _0x543b4b=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]);_0x543b4b[_0xcbfc('0x31')]=!![];}logger[_0xcbfc('0x80')](_0xcbfc('0xd1'),_0x52b980['uniqueid'],_0xa043ad[_0xcbfc('0x44')],_0xa043ad[_0xcbfc('0x49')],_0xa043ad[_0xcbfc('0xcc')],_0xa043ad[_0xcbfc('0x98')]);}}}catch(_0x31ad79){logger['error']('[%s][voiceQueueReport][attendedtransfer]',_0x52b980[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x31ad79,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x27')]=function(_0xe2471b){try{if(this[_0xcbfc('0x5f')](_0xe2471b)){logger[_0xcbfc('0x3f')](_0xcbfc('0xd4'),_0xe2471b[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0xe2471b,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0xe2471b[_0xcbfc('0xcb')]]){var _0x393455=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0xe2471b[_0xcbfc('0xcb')]]);_0x393455['queuecallerexitreason']=_0xcbfc('0xd5');_0x393455[_0xcbfc('0x8c')]=!![];_0x393455[_0xcbfc('0xcf')]=_0xcbfc('0xd6');_0x393455[_0xcbfc('0xcc')]=_0xe2471b['extension'];_0x393455[_0xcbfc('0x98')]=_0xe2471b[_0xcbfc('0xcb')];logger[_0xcbfc('0x80')](_0xcbfc('0xd7'),_0xe2471b[_0xcbfc('0x41')],_0x393455[_0xcbfc('0x44')],_0x393455['type'],_0x393455[_0xcbfc('0xcc')],_0x393455[_0xcbfc('0x98')]);this[_0xcbfc('0x20')]({'event':'BlindTransfer','uniqueid':_0xe2471b[_0xcbfc('0xcb')],'context':_0xe2471b[_0xcbfc('0xd8')],'channel':_0xe2471b[_0xcbfc('0xd9')]});}}}catch(_0x51ffd8){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][blindtransfer]',_0xe2471b[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x51ffd8,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')]['syncMusicOnHoldStart']=function(_0x288d2e){try{if(this[_0xcbfc('0x5f')](_0x288d2e)){logger['debug']('[%s][voiceQueueReport][musiconholdstart]',_0x288d2e[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x288d2e,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x288d2e[_0xcbfc('0x41')]]){var _0x31d70e=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x288d2e[_0xcbfc('0x41')]]);if(!_[_0xcbfc('0x32')](_0x31d70e[_0xcbfc('0x7e')])){_0x31d70e[_0xcbfc('0xda')]=moment()['format'](_0xcbfc('0x6c'));logger[_0xcbfc('0x80')](_0xcbfc('0xdb'),_0x288d2e[_0xcbfc('0x41')],_0x31d70e['mohstarttime']);}}}}catch(_0xf508f6){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][musiconholdstart]',_0x288d2e[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0xf508f6,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncMusicOnHoldStop']=function(_0x2fc98f){try{if(this[_0xcbfc('0x5f')](_0x2fc98f)){logger[_0xcbfc('0x3f')](_0xcbfc('0xdc'),_0x2fc98f[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x2fc98f,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x2fc98f[_0xcbfc('0x41')]]){var _0xe58bcb=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x2fc98f[_0xcbfc('0x41')]]);if(!_[_0xcbfc('0x32')](_0xe58bcb[_0xcbfc('0xda')])){_0xe58bcb['mohtime']+=moment()[_0xcbfc('0xdd')](0x0)[_0xcbfc('0xbe')](_0xe58bcb[_0xcbfc('0xda')],_0xcbfc('0x95'));logger[_0xcbfc('0x80')](_0xcbfc('0xde'),_0x2fc98f['uniqueid'],_0xe58bcb[_0xcbfc('0xdf')]);delete _0xe58bcb[_0xcbfc('0xda')];}}}}catch(_0x3189c6){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][musiconholdstop]',_0x2fc98f['uniqueid'],util['inspect'](_0x3189c6,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')]['syncNewExten']=function(_0x3fae32){try{if(this['isNotNull'](_0x3fae32)){logger['debug'](_0xcbfc('0xe0'),_0x3fae32[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x3fae32,{'showHidden':![],'depth':null}));if(_0x3fae32[_0xcbfc('0xe1')][_0xcbfc('0x92')]()==='set'){_0x3fae32[_0xcbfc('0xe2')]=_0x3fae32[_0xcbfc('0xe3')]&&_0x3fae32[_0xcbfc('0xe3')]['startsWith']('CDR(routeAlias)')?_0x3fae32[_0xcbfc('0xe3')]:(_0x3fae32[_0xcbfc('0xe3')]||_0x3fae32['applicationdata'])[_0xcbfc('0x92')]();if(_['startsWith'](_0x3fae32['applicationdata'][_0xcbfc('0x92')](),_0xcbfc('0xe4'))){logger[_0xcbfc('0x80')](_0xcbfc('0xe5'),_0x3fae32[_0xcbfc('0x41')],_0x3fae32['application'],_0x3fae32[_0xcbfc('0xe2')]);if(_[_0xcbfc('0x5b')](this['channels'][_0x3fae32[_0xcbfc('0x41')]]))this[_0xcbfc('0xf')][_0x3fae32[_0xcbfc('0x41')]]={};var _0x168d98=_0x3fae32[_0xcbfc('0xe2')]['split']('=');var _0x44e961=_0x168d98[0x0][_0xcbfc('0x92')]()[_0xcbfc('0xe6')](/cdr\((.*)\)/);if(_0x44e961)this[_0xcbfc('0xf')][_0x3fae32[_0xcbfc('0x41')]][_0x44e961[0x1]]=_0x168d98[0x1];}}}}catch(_0x1b739b){logger[_0xcbfc('0x36')](_0xcbfc('0xe7'),_0x3fae32[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x1b739b,{'showHidden':![],'depth':null}));}};module[_0xcbfc('0xe8')]=VoiceQueueReport;
\ No newline at end of file
+var _0x8c38=['loggedIn','loggedin','[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:','custom:queuesummary','syncQueueSummaryComplete','[voiceQueueReport][queuesummarycomplete]\x20event:','uniqueid','queuecallerjoinAt','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','info','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','pick','[%s][voiceQueueReport][queuecallerjoin]','queuecallercomplete','queuecallercompleteAt','holdtime','originalposition','queuecallerabandon','queuecallerabandonAt','queuecallerexitreason','ABANDONED','lastAssignedTo','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','[%s][voiceQueueReport][queuecallerabandon]','[%s][voiceQueueReport][queuecallerleave]','queuecallerleaveAt','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','emitVoiceQueueChannelSave','[%s][voiceQueueReport][agentconnect]','COMPLETEDBYAGENT','syncAgentComplete','[%s][voiceQueueReport][agentcomplete]','last','assigned','queuecallerexit','queuecallerexitAt','transfer','reason','COMPLETED','startsWith','toLowerCase','local/','linkedid','add','seconds','FORWARDTRANSFER','transfertype','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','[%s][voiceQueueReport][varset]','addVariable','variable','value','queuestatus','CONTINUE','TIMEOUT','lastevent','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','custom:timeout','varset','queueposition','EXITWITHKEY','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','memberinterface','memberlastcall','membername','memberpenalty','[%s][voiceQueueReport][hangup]','diff','length','sumDuration','milliseconds','answered','custom:queuecallerunmanaged','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','custom:queuecallerabandon','[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s','cause-txt','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','custom:voiceQueueReport','[%s][voiceQueueReport][attendedtransfer]','transfereeuniqueid','secondtransfererexten','secondtransfereruniqueid','ATTENDEDTRANSFER','ATTENDED','switch','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transferexten','transfertargetuniqueid','origtransfererexten','origtransfereruniqueid','syncBlindTransfer','[%s][voiceQueueReport][blindtransfer]','BLIND','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','BlindTransfer','transfererchannel','[%s][voiceQueueReport][musiconholdstart]','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','mohtime','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','[%s][voiceQueueReport][musiconholdstop]','[%s][voiceQueueReport][newexten]\x20event:','set','applicationdata','appdata','CDR(routeAlias)','cdr(','application','match','[%s][voiceQueueReport][newexten]','exports','lodash','moment','md5','ioredis','../../../config/environment','../../../config/logger','../ami','../model/queueReport','redis','defaults','localhost','socket.io-emitter','enqueue','tail','sequence','queueReports','agents','channels','queueChannels','voiceQueues','flagQueueSummary','variables','queuesummary','syncQueueSummary','bind','queuesummarycomplete','queuecallerjoin','syncQueueCallerJoin','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','agentconnect','syncAgentConnect','syncVarSet','hangup','syncHangup','syncFullyBooted','syncNewExten','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','syncAttendedTransfer','blindtransfer','loopQueueShow','isEmpty','hasOwnProperty','originated','talking','pTalking','queueStatusComplete','unlockRR','prototype','isNil','Action','status','channel','catch','message','error','inspect','[%s][voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','campaigns','emitVoiceQueueChannelRemove','clearqueuereport','emit','debug','[%s][voiceQueueReport][','format','name','voice_queue_presence:save',']\x20sending\x20voice_queue_channel:remove\x20event:','voice:queue:%s','voice_queue_presence:remove','emitVoiceQueueSummary','inbound','strategy','available','sumBillable','sumHoldTime','total','type','unmanaged','abandoned','waiting','Trunk','active','callerid','Interval','stringify',']\x20sending\x20voice_queue:save\x20event:','isUndefined','clearZombieChannels','queues','[voiceQueueReport][queues]','then','[voiceQueueReport][queuesummary]','isNotNull','queue','[voiceQueueReport][queuesummary]\x20event:','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber'];(function(_0x4ae404,_0x484819){var _0x2a93c6=function(_0x5191df){while(--_0x5191df){_0x4ae404['push'](_0x4ae404['shift']());}};_0x2a93c6(++_0x484819);}(_0x8c38,0x83));var _0x88c3=function(_0x574c0e,_0x23a37d){_0x574c0e=_0x574c0e-0x0;var _0x13bebb=_0x8c38[_0x574c0e];return _0x13bebb;};'use strict';var _=require(_0x88c3('0x0'));var moment=require(_0x88c3('0x1'));var util=require('util');var md5=require(_0x88c3('0x2'));var Redis=require(_0x88c3('0x3'));var config=require(_0x88c3('0x4'));var logger=require(_0x88c3('0x5'))('ami');var ami=require(_0x88c3('0x6'));var QueueReport=require(_0x88c3('0x7'));config[_0x88c3('0x8')]=_[_0x88c3('0x9')](config[_0x88c3('0x8')],{'host':_0x88c3('0xa'),'port':0x18eb});var io=require(_0x88c3('0xb'))(new Redis(config[_0x88c3('0x8')]));var Sequence=function(){};Sequence['prototype'][_0x88c3('0xc')]=function(_0x4efd63){this[_0x88c3('0xd')]=this['tail']?this[_0x88c3('0xd')]['finally'](_0x4efd63):_0x4efd63();};function VoiceQueueReport(_0x2b4384){this[_0x88c3('0xe')]=new Sequence();this[_0x88c3('0xf')]={};this[_0x88c3('0x10')]=_0x2b4384['agents'];this[_0x88c3('0x11')]=_0x2b4384[_0x88c3('0x12')];this[_0x88c3('0x13')]=_0x2b4384['voiceQueues'];this[_0x88c3('0x14')]=!![];this['campaigns']=_0x2b4384['campaigns'];this[_0x88c3('0x15')]={};ami['on'](_0x88c3('0x16'),this[_0x88c3('0x17')][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x19'),this['syncQueueSummaryComplete'][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x1a'),this[_0x88c3('0x1b')][_0x88c3('0x18')](this));ami['on']('queuecallerabandon',this[_0x88c3('0x1c')]['bind'](this));ami['on'](_0x88c3('0x1d'),this[_0x88c3('0x1e')][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x1f'),this['syncAgentComplete']['bind'](this));ami['on'](_0x88c3('0x20'),this[_0x88c3('0x21')][_0x88c3('0x18')](this));ami['on']('varset',this[_0x88c3('0x22')][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x23'),this[_0x88c3('0x24')]['bind'](this));ami['on']('fullybooted',this[_0x88c3('0x25')]['bind'](this));ami['on']('newexten',this[_0x88c3('0x26')][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x27'),this[_0x88c3('0x28')][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x29'),this[_0x88c3('0x2a')][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x2b'),this[_0x88c3('0x2c')][_0x88c3('0x18')](this));ami['on'](_0x88c3('0x2d'),this['syncBlindTransfer'][_0x88c3('0x18')](this));this['loopQueueSummary']();this[_0x88c3('0x2e')]();}function clearChannels(_0xde936d){if(!_[_0x88c3('0x2f')](_0xde936d)){for(var _0x5ef07f in _0xde936d){if(_0xde936d[_0x88c3('0x30')](_0x5ef07f)){delete _0xde936d[_0x5ef07f];}}}}function clearCampaigns(_0x1399a0){if(!_[_0x88c3('0x2f')](_0x1399a0)){for(var _0x20b567 in _0x1399a0){if(_0x1399a0[_0x88c3('0x30')](_0x20b567)){_0x1399a0[_0x20b567][_0x88c3('0x31')]=0x0;}}}}function clearVoiceQueues(_0x18e03f){if(!_[_0x88c3('0x2f')](_0x18e03f)){for(var _0x193e2d in _0x18e03f){if(_0x18e03f[_0x88c3('0x30')](_0x193e2d)){_0x18e03f[_0x193e2d][_0x88c3('0x31')]=0x0;_0x18e03f[_0x193e2d][_0x88c3('0x32')]=0x0;_0x18e03f[_0x193e2d][_0x88c3('0x33')]=0x0;_0x18e03f[_0x193e2d]['waiting']=0x0;_0x18e03f[_0x193e2d][_0x88c3('0x34')]=!![];}}}}function clearAgentBooked(_0x138c5a){if(!_[_0x88c3('0x2f')](_0x138c5a)){for(var _0x753c0b in _0x138c5a){if(_0x138c5a[_0x88c3('0x30')](_0x753c0b)){_0x138c5a[_0x753c0b][_0x88c3('0x35')]=!![];}}}}VoiceQueueReport[_0x88c3('0x36')]['clearZombieChannels']=function(){var _0x1d5341=this;for(var _0x17abfe in this[_0x88c3('0x11')]){if(this[_0x88c3('0x11')]['hasOwnProperty'](_0x17abfe)&&!this[_0x88c3('0x11')][_0x17abfe]['switch']){this[_0x88c3('0xe')][_0x88c3('0xc')](function(){if(!_[_0x88c3('0x37')](_0x1d5341['channels'][_0x17abfe])){return ami[_0x88c3('0x38')]({'action':_0x88c3('0x39'),'channel':_0x1d5341['channels'][_0x17abfe][_0x88c3('0x3a')]})[_0x88c3('0x3b')](function(_0x49aa93){if(_0x49aa93[_0x88c3('0x3c')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x1d5341['channels'][_0x17abfe]){delete _0x1d5341[_0x88c3('0x11')][_0x17abfe];logger[_0x88c3('0x3d')]('[%s][voiceQueueReport][checkChannel]',_0x17abfe,util['inspect'](_0x49aa93,{'showHidden':![],'depth':null}));}if(_0x1d5341[_0x88c3('0xf')][_0x17abfe]){delete _0x1d5341[_0x88c3('0xf')][_0x17abfe];logger[_0x88c3('0x3d')]('[%s][voiceQueueReport][checkQueueReport]',_0x17abfe,util[_0x88c3('0x3e')](_0x49aa93,{'showHidden':![],'depth':null}));}if(_0x1d5341[_0x88c3('0x15')][_0x17abfe]){delete _0x1d5341[_0x88c3('0x15')][_0x17abfe];logger[_0x88c3('0x3d')](_0x88c3('0x3f'),_0x17abfe,util[_0x88c3('0x3e')](_0x49aa93,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x25')]=function(){logger['error'](_0x88c3('0x40'));clearChannels(this[_0x88c3('0x11')]);this[_0x88c3('0x41')](this[_0x88c3('0xf')]);clearAgentBooked(this[_0x88c3('0x10')]);clearVoiceQueues(this[_0x88c3('0x13')]);clearCampaigns(this[_0x88c3('0x42')]);};VoiceQueueReport['prototype'][_0x88c3('0x41')]=function(_0x224d38){var _0x3c1a4a=this;if(!_['isEmpty'](_0x224d38)){for(var _0x15e6ff in _0x224d38){if(_0x224d38[_0x88c3('0x30')](_0x15e6ff)){_0x3c1a4a[_0x88c3('0x43')](_0x224d38[_0x15e6ff],_0x88c3('0x44'));delete _0x224d38[_0x15e6ff];}}}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x45')]=function(_0x18e059,_0x48d8ba,_0x3533d8){io['to'](_0x18e059)[_0x88c3('0x45')](_0x48d8ba,_0x3533d8);};VoiceQueueReport[_0x88c3('0x36')]['emitVoiceQueueChannelSave']=function(_0x128319,_0xec35d3){logger[_0x88c3('0x46')](_0x88c3('0x47')+_0xec35d3+']\x20sending\x20voice_queue_channel:save\x20event:',_0x128319['uniqueid'],util[_0x88c3('0x3e')](_0x128319,{'showHidden':![],'depth':null}));this['emit'](util[_0x88c3('0x48')]('voice:queue:%s',_0x128319[_0x88c3('0x49')]),'voice_queue_channel:save',_0x128319);io['emit'](_0x88c3('0x4a'),_0x128319);};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x43')]=function(_0xcb6e3b,_0x7470f1){logger[_0x88c3('0x46')](_0x88c3('0x47')+_0x7470f1+_0x88c3('0x4b'),_0xcb6e3b['uniqueid'],util[_0x88c3('0x3e')](_0xcb6e3b,{'showHidden':![],'depth':null}));this[_0x88c3('0x45')](util[_0x88c3('0x48')](_0x88c3('0x4c'),_0xcb6e3b[_0x88c3('0x49')]),'voice_queue_channel:remove',_0xcb6e3b);io[_0x88c3('0x45')](_0x88c3('0x4d'),_0xcb6e3b);};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x4e')]=function(_0x361925,_0x1a8927){if(_0x361925['type']===_0x88c3('0x4f')){var _0x12d480={'id':_0x361925['id'],'name':_0x361925[_0x88c3('0x49')],'strategy':_0x361925[_0x88c3('0x50')],'answered':_0x361925['answered'],'available':_0x361925[_0x88c3('0x51')],'loggedIn':_0x361925['loggedIn'],'pTalking':_0x361925[_0x88c3('0x33')],'sumBillable':_0x361925[_0x88c3('0x52')],'sumDuration':_0x361925['sumDuration'],'sumHoldTime':_0x361925[_0x88c3('0x53')]||0x0,'talking':_0x361925[_0x88c3('0x32')],'total':_0x361925[_0x88c3('0x54')],'type':_0x361925[_0x88c3('0x55')],'unmanaged':_0x361925[_0x88c3('0x56')],'abandoned':_0x361925[_0x88c3('0x57')],'waiting':_0x361925[_0x88c3('0x58')]};if(_0x361925['Trunk']){_0x12d480[_0x88c3('0x59')]={'id':_0x361925['Trunk']['id'],'name':_0x361925['Trunk'][_0x88c3('0x49')],'active':_0x361925[_0x88c3('0x59')][_0x88c3('0x5a')],'callerid':_0x361925[_0x88c3('0x59')][_0x88c3('0x5b')]};}if(_0x361925[_0x88c3('0x5c')]){_0x12d480['Interval']={'id':_0x361925[_0x88c3('0x5c')]['id'],'name':_0x361925['Interval'][_0x88c3('0x49')]};}var _0x4622b7=md5(JSON[_0x88c3('0x5d')](_0x12d480));if(_0x361925['md5']!==_0x4622b7){_0x361925[_0x88c3('0x2')]=_0x4622b7;logger[_0x88c3('0x46')]('[voiceQueueReport]['+_0x1a8927+_0x88c3('0x5e'),util[_0x88c3('0x3e')](_0x12d480,{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x88c3('0x4c'),_0x12d480[_0x88c3('0x49')]),'voice_queue:save',_0x12d480);}}};VoiceQueueReport['prototype']['isNotNull']=function(_0x265ccd){return _0x265ccd!==null&&!_[_0x88c3('0x5f')](_0x265ccd);};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x2e')]=function(){var _0x29c25b=this;setInterval(function(){_0x29c25b[_0x88c3('0x60')]();ami[_0x88c3('0x38')]({'action':_0x88c3('0x61')})[_0x88c3('0x3b')](function(_0x9686dd){logger[_0x88c3('0x3d')](_0x88c3('0x62'),util['inspect'](_0x9686dd,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x88c3('0x36')]['loopQueueSummary']=function(){var _0x4358b6=this;setInterval(function(){if(_0x4358b6[_0x88c3('0x14')]){return ami[_0x88c3('0x38')]({'action':_0x88c3('0x16')})[_0x88c3('0x63')](function(_0x174307){_0x4358b6['flagQueueSummary']=![];})[_0x88c3('0x3b')](function(_0x2e5202){logger[_0x88c3('0x3d')](_0x88c3('0x64'),util['inspect'](_0x2e5202,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x17')]=function(_0x4cb567){try{if(this[_0x88c3('0x65')](_0x4cb567)&&this['isNotNull'](_0x4cb567[_0x88c3('0x66')])){logger[_0x88c3('0x46')](_0x88c3('0x67'),util['inspect'](_0x4cb567,{'showHidden':![],'depth':null}));if(this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]]){logger['info'](_0x88c3('0x68'),_0x4cb567[_0x88c3('0x66')]);var _0x41cc15=_[_0x88c3('0x69')](this[_0x88c3('0x11')],_0x88c3('0x66'))[_0x4cb567[_0x88c3('0x66')]]||0x0;var _0xbb0994=_0x41cc15-_0x4cb567[_0x88c3('0x6a')];if(this[_0x88c3('0x13')][_0x4cb567['queue']][_0x88c3('0x58')]!==_[_0x88c3('0x6b')](_0x4cb567['callers'])||this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]][_0x88c3('0x6c')]!==_['toNumber'](_0x4cb567[_0x88c3('0x6d')])||this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]][_0x88c3('0x51')]!==_[_0x88c3('0x6b')](_0x4cb567[_0x88c3('0x51')])||this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]][_0x88c3('0x32')]!==_0xbb0994){this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]]['waiting']=_[_0x88c3('0x6b')](_0x4cb567[_0x88c3('0x6a')]);this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]][_0x88c3('0x6c')]=_['toNumber'](_0x4cb567[_0x88c3('0x6d')]);this[_0x88c3('0x13')][_0x4cb567['queue']][_0x88c3('0x51')]=_[_0x88c3('0x6b')](_0x4cb567[_0x88c3('0x51')]);this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]]['talking']=_0xbb0994>0x0?_0xbb0994:0x0;this[_0x88c3('0x13')][_0x4cb567['queue']]['talking']=this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]][_0x88c3('0x32')]>_[_0x88c3('0x6b')](_0x4cb567[_0x88c3('0x6d')])?_[_0x88c3('0x6b')](_0x4cb567['loggedin']):this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]]['talking'];this[_0x88c3('0x4e')](this['voiceQueues'][_0x4cb567[_0x88c3('0x66')]],'queuesummary');}logger[_0x88c3('0x46')](_0x88c3('0x6e'),util['inspect'](this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]],{'showHidden':![],'depth':null}));ami[_0x88c3('0x45')](_0x88c3('0x6f'),this[_0x88c3('0x13')][_0x4cb567[_0x88c3('0x66')]]);}}}catch(_0x3477f3){logger[_0x88c3('0x3d')](_0x88c3('0x64'),util[_0x88c3('0x3e')](_0x3477f3,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x70')]=function(_0x18b849){logger[_0x88c3('0x46')](_0x88c3('0x71'),util[_0x88c3('0x3e')](_0x18b849,{'showHidden':![],'depth':null}));this[_0x88c3('0x14')]=!![];};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x1b')]=function(_0x1b7a86){try{if(this[_0x88c3('0x65')](_0x1b7a86)){logger[_0x88c3('0x46')]('[%s][voiceQueueReport][queuecallerjoin]',_0x1b7a86[_0x88c3('0x72')],util['inspect'](_0x1b7a86,{'showHidden':![],'depth':null}));if(_[_0x88c3('0x5f')](this[_0x88c3('0xf')][_0x1b7a86[_0x88c3('0x72')]]))this['queueReports'][_0x1b7a86[_0x88c3('0x72')]]=[];if(_['isUndefined'](this['channels'][_0x1b7a86['uniqueid']]))this[_0x88c3('0x11')][_0x1b7a86[_0x88c3('0x72')]]={};var _0x28940d=new QueueReport();_0x28940d[_0x88c3('0x49')]=_0x1b7a86[_0x88c3('0x66')];_0x28940d['type']=this[_0x88c3('0x13')][_0x28940d[_0x88c3('0x49')]]&&this['voiceQueues'][_0x28940d[_0x88c3('0x49')]]['type']?this[_0x88c3('0x13')][_0x28940d[_0x88c3('0x49')]]['type']||'inbound':'inbound';_0x28940d[_0x88c3('0x66')]=_0x1b7a86['queue'];_0x28940d[_0x88c3('0x73')]=moment()[_0x88c3('0x48')](_0x88c3('0x74'));_0x28940d[_0x88c3('0x75')]=_0x1b7a86[_0x88c3('0x75')];_0x28940d['count']=_0x1b7a86[_0x88c3('0x76')];_0x28940d['uniqueid']=_0x1b7a86[_0x88c3('0x72')];_0x28940d['routealias']=this[_0x88c3('0x11')][_0x1b7a86[_0x88c3('0x72')]][_0x88c3('0x77')];logger[_0x88c3('0x78')](_0x88c3('0x79'),_0x28940d[_0x88c3('0x49')],_0x28940d[_0x88c3('0x55')]);_['merge'](_0x28940d,_[_0x88c3('0x7a')](_0x1b7a86,_['keys'](_0x28940d)));this[_0x88c3('0xf')][_0x1b7a86[_0x88c3('0x72')]]['push'](_0x28940d);this['channels'][_0x1b7a86[_0x88c3('0x72')]]=_0x28940d;this['emitVoiceQueueChannelSave'](_0x28940d,_0x88c3('0x1a'));}}catch(_0xf79988){logger[_0x88c3('0x3d')](_0x88c3('0x7b'),_0x1b7a86[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0xf79988,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')]['syncQueueCallerAbandon']=function(_0x388e4e){try{if(this[_0x88c3('0x65')](_0x388e4e)){logger['debug']('[%s][voiceQueueReport][queuecallerabandon]',_0x388e4e[_0x88c3('0x72')],util['inspect'](_0x388e4e,{'showHidden':![],'depth':null}));if(this[_0x88c3('0xf')][_0x388e4e[_0x88c3('0x72')]]){var _0xfe9a85=_['last'](this['queueReports'][_0x388e4e[_0x88c3('0x72')]]);_0xfe9a85[_0x88c3('0x7c')]=![];_0xfe9a85[_0x88c3('0x7d')]=null;_0xfe9a85[_0x88c3('0x7e')]=_0x388e4e[_0x88c3('0x7e')];_0xfe9a85[_0x88c3('0x7f')]=_0x388e4e[_0x88c3('0x7f')];_0xfe9a85[_0x88c3('0x80')]=!![];_0xfe9a85[_0x88c3('0x81')]=moment()[_0x88c3('0x48')](_0x88c3('0x74'));_0xfe9a85[_0x88c3('0x82')]=_0x88c3('0x83');_0xfe9a85[_0x88c3('0x84')]=null;logger[_0x88c3('0x78')](_0x88c3('0x85'),_0xfe9a85['name'],_0xfe9a85[_0x88c3('0x55')]);this[_0x88c3('0x11')][_0x388e4e[_0x88c3('0x72')]]=_0xfe9a85;this['emitVoiceQueueChannelRemove'](_0xfe9a85,_0x88c3('0x80'));}}}catch(_0x527f6d){logger[_0x88c3('0x3d')](_0x88c3('0x86'),_0x388e4e[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x527f6d,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x1e')]=function(_0x508887){try{if(this['isNotNull'](_0x508887)){logger['debug'](_0x88c3('0x87'),_0x508887[_0x88c3('0x72')],util['inspect'](_0x508887,{'showHidden':![],'depth':null}));if(this[_0x88c3('0xf')][_0x508887['uniqueid']]){var _0x108935=_['last'](this['queueReports'][_0x508887[_0x88c3('0x72')]]);_0x108935[_0x88c3('0x88')]=moment()['format'](_0x88c3('0x74'));_0x108935[_0x88c3('0x89')]=_0x508887[_0x88c3('0x89')];_0x108935[_0x88c3('0x8a')]=_0x508887['connectedlinename'];logger[_0x88c3('0x78')](_0x88c3('0x8b'),_0x108935[_0x88c3('0x49')],_0x108935[_0x88c3('0x55')],_0x508887[_0x88c3('0x89')],_0x508887[_0x88c3('0x8a')]);this[_0x88c3('0x11')][_0x508887[_0x88c3('0x72')]]=_0x108935;this[_0x88c3('0x8c')](_0x108935,_0x88c3('0x1d'));}}}catch(_0x2966ae){logger[_0x88c3('0x3d')](_0x88c3('0x87'),_0x508887[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x2966ae,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x88c3('0x21')]=function(_0x18e5c3){try{if(this[_0x88c3('0x65')](_0x18e5c3)){logger['debug'](_0x88c3('0x8d'),_0x18e5c3[_0x88c3('0x72')],util['inspect'](_0x18e5c3,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x18e5c3['uniqueid']]){var _0x48835d=_['last'](this[_0x88c3('0xf')][_0x18e5c3[_0x88c3('0x72')]]);_0x48835d[_0x88c3('0x7c')]=!![];_0x48835d['queuecallerexitreason']=_0x88c3('0x8e');logger[_0x88c3('0x78')]('[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT',_0x48835d[_0x88c3('0x49')],_0x48835d[_0x88c3('0x55')]);}}}catch(_0x3c6799){logger['error'](_0x88c3('0x8d'),_0x18e5c3[_0x88c3('0x72')],util['inspect'](_0x3c6799,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x8f')]=function(_0x1c0e2f){try{if(this[_0x88c3('0x65')](_0x1c0e2f)){logger[_0x88c3('0x46')](_0x88c3('0x90'),_0x1c0e2f[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x1c0e2f,{'showHidden':![],'depth':null}));if(this[_0x88c3('0xf')][_0x1c0e2f['uniqueid']]){var _0x3d19b1=_[_0x88c3('0x91')](this[_0x88c3('0xf')][_0x1c0e2f['uniqueid']]);_0x3d19b1[_0x88c3('0x80')]=![];_0x3d19b1[_0x88c3('0x81')]=null;_0x3d19b1[_0x88c3('0x92')]=!![];_0x3d19b1[_0x88c3('0x84')]=_0x1c0e2f['membername'];_0x3d19b1[_0x88c3('0x7e')]=_0x1c0e2f[_0x88c3('0x7e')];_0x3d19b1[_0x88c3('0x7c')]=!![];_0x3d19b1[_0x88c3('0x93')]=![];_0x3d19b1[_0x88c3('0x94')]=null;if(!_0x3d19b1[_0x88c3('0x95')]){if(_0x1c0e2f[_0x88c3('0x96')]=='transfer'){_0x3d19b1[_0x88c3('0x82')]=_0x88c3('0x97');logger[_0x88c3('0x78')]('[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED',_0x3d19b1['name'],_0x3d19b1[_0x88c3('0x55')]);}else{if(_[_0x88c3('0x98')](_0x1c0e2f['channel'][_0x88c3('0x99')](),_0x88c3('0x9a'))){if(this['queueReports'][_0x1c0e2f[_0x88c3('0x9b')]]){var _0x216d34=_[_0x88c3('0x91')](this[_0x88c3('0xf')][_0x1c0e2f[_0x88c3('0x9b')]]);_0x216d34[_0x88c3('0x7c')]=![];_0x216d34[_0x88c3('0x93')]=!![];_0x216d34[_0x88c3('0x94')]=moment(_0x3d19b1[_0x88c3('0x73')])[_0x88c3('0x9c')](_0x1c0e2f[_0x88c3('0x7e')],_0x88c3('0x9d'))[_0x88c3('0x48')](_0x88c3('0x74'));_0x216d34[_0x88c3('0x82')]=_0x88c3('0x9e');_0x216d34[_0x88c3('0x95')]=!![];_0x216d34[_0x88c3('0x9f')]='FORWARD';_0x216d34['transferexten']=_0x1c0e2f[_0x88c3('0xa0')];_0x216d34[_0x88c3('0xa1')]=_0x1c0e2f['uniqueid'];logger['info'](_0x88c3('0xa2'),_0x216d34[_0x88c3('0x49')],_0x216d34[_0x88c3('0x55')]);var _0x1c6c87=this[_0x88c3('0xf')][_0x1c0e2f[_0x88c3('0x9b')]];this[_0x88c3('0xf')][_0x1c0e2f[_0x88c3('0x9b')]]=this['queueReports'][_0x1c0e2f[_0x88c3('0x72')]];this['queueReports'][_0x1c0e2f[_0x88c3('0x72')]]=_0x1c6c87;}}else{_0x3d19b1[_0x88c3('0x82')]=_0x88c3('0xa3')+_0x1c0e2f[_0x88c3('0x96')][_0x88c3('0xa4')]();logger[_0x88c3('0x78')](_0x88c3('0xa5'),_0x3d19b1[_0x88c3('0x49')],_0x3d19b1[_0x88c3('0x55')],_0x3d19b1[_0x88c3('0x82')]);}}}this[_0x88c3('0x11')][_0x1c0e2f[_0x88c3('0x72')]]=_0x3d19b1;this[_0x88c3('0x43')](_0x3d19b1,_0x88c3('0x1f'));}}}catch(_0x2c4483){logger['error'](_0x88c3('0x90'),_0x1c0e2f[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x2c4483,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x22')]=function(_0x4d9e38){try{if(this['isNotNull'](_0x4d9e38)){logger['debug'](_0x88c3('0xa6'),_0x4d9e38[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x4d9e38,{'showHidden':![],'depth':null}));this[_0x88c3('0xa7')](_0x4d9e38[_0x88c3('0x72')],_['keys'](_0x4d9e38[_0x88c3('0xa8')])[0x0],_0x4d9e38[_0x88c3('0xa9')]);if(this[_0x88c3('0xf')][_0x4d9e38['uniqueid']]){var _0x410272=_['last'](this['queueReports'][_0x4d9e38[_0x88c3('0x72')]]);if(_0x410272){if(this[_0x88c3('0x65')](_0x4d9e38[_0x88c3('0xa8')])&&this[_0x88c3('0x65')](_0x4d9e38[_0x88c3('0xa8')][_0x88c3('0xaa')])){switch(_0x4d9e38[_0x88c3('0xa9')]){case _0x88c3('0xab'):_0x410272[_0x88c3('0x93')]=![];_0x410272['queuecallerexitAt']=null;break;case _0x88c3('0xac'):_0x410272[_0x88c3('0xad')]='timeout';_0x410272[_0x88c3('0x93')]=!![];_0x410272[_0x88c3('0x94')]=moment()[_0x88c3('0x48')](_0x88c3('0x74'));_0x410272['queuecallerleaveAt']=moment()[_0x88c3('0x48')](_0x88c3('0x74'));logger[_0x88c3('0x46')](_0x88c3('0xae'),_0x4d9e38['uniqueid'],util[_0x88c3('0x3e')](_0x410272,{'showHidden':![],'depth':null}));ami['emit'](_0x88c3('0xaf'),_0x410272);break;default:_0x410272['queuecallerexit']=!![];_0x410272[_0x88c3('0x94')]=moment()[_0x88c3('0x48')](_0x88c3('0x74'));_0x410272[_0x88c3('0x88')]=moment()[_0x88c3('0x48')]('YYYY-MM-DD\x20HH:mm:ss');}_0x410272[_0x88c3('0x80')]=![];_0x410272[_0x88c3('0x81')]=null;_0x410272['queuecallerexitreason']=_0x4d9e38[_0x88c3('0xa9')];this[_0x88c3('0x11')][_0x4d9e38['uniqueid']]=_0x410272;this[_0x88c3('0x43')](_0x410272,_0x88c3('0xb0'));}else if(this[_0x88c3('0x65')](_0x4d9e38[_0x88c3('0xa8')])&&this[_0x88c3('0x65')](_0x4d9e38['variable'][_0x88c3('0xb1')])){if(!_0x410272[_0x88c3('0x80')]){_0x410272[_0x88c3('0x93')]=!![];_0x410272['queuecallerexitAt']=moment()[_0x88c3('0x48')](_0x88c3('0x74'));_0x410272[_0x88c3('0x82')]=_0x88c3('0xb2');_0x410272[_0x88c3('0x88')]=moment()['format'](_0x88c3('0x74'));this['channels'][_0x4d9e38[_0x88c3('0x72')]]=_0x410272;}}logger[_0x88c3('0x78')](_0x88c3('0xb3'),_0x4d9e38[_0x88c3('0x72')],_0x410272[_0x88c3('0x49')],_0x410272[_0x88c3('0x55')],_['keys'](_0x4d9e38[_0x88c3('0xa8')])[0x0],_0x4d9e38[_0x88c3('0xa9')]);_0x410272[_0x88c3('0x15')]=this[_0x88c3('0x15')][_0x4d9e38[_0x88c3('0x72')]];}}}}catch(_0x2fb02b){logger[_0x88c3('0x3d')](_0x88c3('0xa6'),_0x4d9e38[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x2fb02b,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x88c3('0xa7')]=function(_0x8db1b0,_0x227b11,_0x17379e){var _0x11d55b=['rtpaudioqos',_0x88c3('0xb4'),_0x88c3('0xb5'),_0x88c3('0xb6'),'rtpaudioqosloss','rtpaudioqoslossbridged',_0x88c3('0xb7'),_0x88c3('0xb8'),_0x88c3('0xb9'),_0x88c3('0xba'),_0x88c3('0xbb'),'bridgepvtcallid','membercalls','memberdynamic',_0x88c3('0xbc'),_0x88c3('0xbd'),_0x88c3('0xbe'),_0x88c3('0xbf'),'memberrealtime'];if(!_[_0x88c3('0x37')](_0x227b11)&&!_['includes'](_0x11d55b,_0x227b11)){if(_['isUndefined'](this[_0x88c3('0x15')][_0x8db1b0])){this[_0x88c3('0x15')][_0x8db1b0]={};}this[_0x88c3('0x15')][_0x8db1b0][_0x227b11]=_0x17379e;}};VoiceQueueReport['prototype']['syncHangup']=function(_0x26b0e3){try{if(this[_0x88c3('0x65')](_0x26b0e3)){logger['debug'](_0x88c3('0xc0'),_0x26b0e3['uniqueid'],util[_0x88c3('0x3e')](_0x26b0e3,{'showHidden':![],'depth':null}));if(this[_0x88c3('0xf')][_0x26b0e3[_0x88c3('0x72')]]){for(var _0x4d15d3=0x0,_0x1863d5={};_0x4d15d3<this['queueReports'][_0x26b0e3[_0x88c3('0x72')]]['length'];_0x4d15d3+=0x1){_0x1863d5=this['queueReports'][_0x26b0e3[_0x88c3('0x72')]][_0x4d15d3];if(this[_0x88c3('0x13')][_0x1863d5[_0x88c3('0x66')]]){if(_0x1863d5['queuecallerexit']&&_0x1863d5[_0x88c3('0x95')]!=!![]){this['voiceQueues'][_0x1863d5[_0x88c3('0x66')]]['unmanaged']+=0x1;}if(_0x1863d5[_0x88c3('0x80')]){this[_0x88c3('0x13')][_0x1863d5['queue']]['abandoned']+=0x1;}this[_0x88c3('0x13')][_0x1863d5[_0x88c3('0x66')]]['sumHoldTime']+=moment(_0x1863d5['queuecallerleaveAt'])[_0x88c3('0xc1')](_0x1863d5['queuecallerjoinAt'],'seconds')||0x0;if(_0x4d15d3===this[_0x88c3('0xf')][_0x26b0e3[_0x88c3('0x72')]][_0x88c3('0xc2')]-0x1){this['voiceQueues'][_0x1863d5[_0x88c3('0x66')]][_0x88c3('0xc3')]+=moment()[_0x88c3('0xc4')](0x0)['diff'](_0x1863d5[_0x88c3('0x73')],_0x88c3('0x9d'));this[_0x88c3('0x13')][_0x1863d5[_0x88c3('0x66')]][_0x88c3('0x54')]+=0x1;if(_0x1863d5['queuecallercomplete']){this[_0x88c3('0x13')][_0x1863d5[_0x88c3('0x66')]][_0x88c3('0xc5')]+=0x1;this[_0x88c3('0x13')][_0x1863d5[_0x88c3('0x66')]][_0x88c3('0x52')]+=moment()[_0x88c3('0xc4')](0x0)['diff'](_0x1863d5[_0x88c3('0x88')],'seconds');_0x1863d5[_0x88c3('0x7d')]=moment()[_0x88c3('0x48')]('YYYY-MM-DD\x20HH:mm:ss');_0x1863d5[_0x88c3('0x93')]=![];_0x1863d5['queuecallerexitAt']=null;}if(_0x1863d5['queuecallerexit']&&_0x1863d5[_0x88c3('0x95')]!=!![]){_0x1863d5[_0x88c3('0xad')]=_0x88c3('0x56');logger['debug']('[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:',_0x26b0e3['uniqueid'],util[_0x88c3('0x3e')](_0x1863d5,{'showHidden':![],'depth':null}));ami[_0x88c3('0x45')](_0x88c3('0xc6'),_0x1863d5);}if(_0x1863d5[_0x88c3('0x80')]){_0x1863d5[_0x88c3('0xad')]=_0x88c3('0x57');logger[_0x88c3('0x46')](_0x88c3('0xc7'),_0x26b0e3['uniqueid'],util[_0x88c3('0x3e')](_0x1863d5,{'showHidden':![],'depth':null}));ami[_0x88c3('0x45')](_0x88c3('0xc8'),_0x1863d5);}}else{this['voiceQueues'][_0x1863d5[_0x88c3('0x66')]]['sumDuration']+=this[_0x88c3('0x13')][_0x1863d5[_0x88c3('0x66')]][_0x88c3('0x53')];}logger[_0x88c3('0x78')](_0x88c3('0xc9'),_0x26b0e3[_0x88c3('0x72')],_0x1863d5[_0x88c3('0x49')],_0x1863d5[_0x88c3('0x55')],_0x26b0e3[_0x88c3('0xca')]);this['channels'][_0x26b0e3['uniqueid']]=_0x1863d5;this[_0x88c3('0x43')](_0x1863d5,_0x88c3('0x23'));this[_0x88c3('0x4e')](this[_0x88c3('0x13')][_0x1863d5['queue']],_0x88c3('0x23'));}}logger['debug'](_0x88c3('0xcb'),_0x26b0e3[_0x88c3('0x72')],util['inspect'](this['queueReports'][_0x26b0e3[_0x88c3('0x72')]],{'showHidden':![],'depth':null}));ami[_0x88c3('0x45')](_0x88c3('0xcc'),this[_0x88c3('0xf')][_0x26b0e3[_0x88c3('0x72')]]);delete this[_0x88c3('0xf')][_0x26b0e3[_0x88c3('0x72')]];delete this[_0x88c3('0x11')][_0x26b0e3[_0x88c3('0x72')]];}if(this[_0x88c3('0x15')][_0x26b0e3[_0x88c3('0x72')]]){delete this[_0x88c3('0x15')][_0x26b0e3[_0x88c3('0x72')]];}}}catch(_0x115023){logger['error'](_0x88c3('0xc0'),_0x26b0e3[_0x88c3('0x72')],util['inspect'](_0x115023,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncAttendedTransfer']=function(_0x347e5c){try{if(this['isNotNull'](_0x347e5c)){logger[_0x88c3('0x46')](_0x88c3('0xcd'),_0x347e5c[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x347e5c,{'showHidden':![],'depth':null}));var _0x42c604;if(this[_0x88c3('0xf')][_0x347e5c[_0x88c3('0xce')]]){_0x42c604=_[_0x88c3('0x91')](this[_0x88c3('0xf')][_0x347e5c[_0x88c3('0xce')]]);_0x42c604['transferexten']=_0x347e5c[_0x88c3('0xcf')];_0x42c604['transferuniqueid']=_0x347e5c[_0x88c3('0xd0')];_0x42c604[_0x88c3('0x82')]=_0x88c3('0xd1');_0x42c604['transfer']=!![];_0x42c604['transfertype']=_0x88c3('0xd2');if(this['queueReports'][_0x347e5c[_0x88c3('0xd0')]]){var _0x514f7f=this[_0x88c3('0xf')][_0x347e5c['secondtransfereruniqueid']];this[_0x88c3('0xf')][_0x347e5c[_0x88c3('0xd0')]]=this[_0x88c3('0xf')][_0x347e5c['transfereeuniqueid']];this[_0x88c3('0xf')][_0x347e5c[_0x88c3('0xce')]]=_0x514f7f;var _0x13c0d4=_[_0x88c3('0x91')](this[_0x88c3('0xf')][_0x347e5c['transfereeuniqueid']]);_0x13c0d4[_0x88c3('0xd3')]=!![];}logger[_0x88c3('0x78')](_0x88c3('0xd4'),_0x347e5c[_0x88c3('0x72')],_0x42c604[_0x88c3('0x49')],_0x42c604[_0x88c3('0x55')],_0x42c604[_0x88c3('0xd5')],_0x42c604['transferuniqueid']);}else if(this[_0x88c3('0xf')][_0x347e5c['transfertargetuniqueid']]){_0x42c604=_[_0x88c3('0x91')](this['queueReports'][_0x347e5c[_0x88c3('0xd6')]]);_0x42c604[_0x88c3('0xd5')]=_0x347e5c[_0x88c3('0xd7')];_0x42c604[_0x88c3('0xa1')]=_0x347e5c[_0x88c3('0xd8')];_0x42c604[_0x88c3('0x82')]=_0x88c3('0xd1');_0x42c604[_0x88c3('0x95')]=!![];_0x42c604['transfertype']=_0x88c3('0xd2');if(this[_0x88c3('0xf')][_0x347e5c[_0x88c3('0xd8')]]){var _0x514f7f=this[_0x88c3('0xf')][_0x347e5c[_0x88c3('0xd8')]];this[_0x88c3('0xf')][_0x347e5c['origtransfereruniqueid']]=this[_0x88c3('0xf')][_0x347e5c['transfertargetuniqueid']];this[_0x88c3('0xf')][_0x347e5c['transfertargetuniqueid']]=_0x514f7f;var _0x13c0d4=_['last'](this[_0x88c3('0xf')][_0x347e5c[_0x88c3('0xd6')]]);_0x13c0d4['switch']=!![];}logger[_0x88c3('0x78')](_0x88c3('0xd4'),_0x347e5c['uniqueid'],_0x42c604[_0x88c3('0x49')],_0x42c604[_0x88c3('0x55')],_0x42c604['transferexten'],_0x42c604[_0x88c3('0xa1')]);}}}catch(_0x506d8c){logger['error'](_0x88c3('0xcd'),_0x347e5c['uniqueid'],util[_0x88c3('0x3e')](_0x506d8c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0xd9')]=function(_0xc85956){try{if(this[_0x88c3('0x65')](_0xc85956)){logger[_0x88c3('0x46')](_0x88c3('0xda'),_0xc85956[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0xc85956,{'showHidden':![],'depth':null}));if(this[_0x88c3('0xf')][_0xc85956[_0x88c3('0xce')]]){var _0x454c95=_['last'](this['queueReports'][_0xc85956['transfereeuniqueid']]);_0x454c95[_0x88c3('0x82')]='BLINDTRANSFER';_0x454c95[_0x88c3('0x95')]=!![];_0x454c95[_0x88c3('0x9f')]=_0x88c3('0xdb');_0x454c95[_0x88c3('0xd5')]=_0xc85956['extension'];_0x454c95[_0x88c3('0xa1')]=_0xc85956[_0x88c3('0xce')];logger[_0x88c3('0x78')](_0x88c3('0xdc'),_0xc85956[_0x88c3('0x72')],_0x454c95[_0x88c3('0x49')],_0x454c95['type'],_0x454c95[_0x88c3('0xd5')],_0x454c95[_0x88c3('0xa1')]);this[_0x88c3('0x24')]({'event':_0x88c3('0xdd'),'uniqueid':_0xc85956[_0x88c3('0xce')],'context':_0xc85956['context'],'channel':_0xc85956[_0x88c3('0xde')]});}}}catch(_0x4bbdfe){logger[_0x88c3('0x3d')](_0x88c3('0xda'),_0xc85956['uniqueid'],util[_0x88c3('0x3e')](_0x4bbdfe,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x28')]=function(_0x296e58){try{if(this[_0x88c3('0x65')](_0x296e58)){logger[_0x88c3('0x46')](_0x88c3('0xdf'),_0x296e58[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x296e58,{'showHidden':![],'depth':null}));if(this[_0x88c3('0xf')][_0x296e58['uniqueid']]){var _0x55171b=_['last'](this['queueReports'][_0x296e58[_0x88c3('0x72')]]);if(!_[_0x88c3('0x37')](_0x55171b[_0x88c3('0x88')])){_0x55171b[_0x88c3('0xe0')]=moment()[_0x88c3('0x48')]('YYYY-MM-DD\x20HH:mm:ss');logger[_0x88c3('0x78')](_0x88c3('0xe1'),_0x296e58[_0x88c3('0x72')],_0x55171b[_0x88c3('0xe0')]);}}}}catch(_0x18b225){logger[_0x88c3('0x3d')](_0x88c3('0xdf'),_0x296e58['uniqueid'],util[_0x88c3('0x3e')](_0x18b225,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x2a')]=function(_0x4474b2){try{if(this[_0x88c3('0x65')](_0x4474b2)){logger[_0x88c3('0x46')]('[%s][voiceQueueReport][musiconholdstop]',_0x4474b2[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x4474b2,{'showHidden':![],'depth':null}));if(this[_0x88c3('0xf')][_0x4474b2[_0x88c3('0x72')]]){var _0xec9b58=_[_0x88c3('0x91')](this[_0x88c3('0xf')][_0x4474b2[_0x88c3('0x72')]]);if(!_['isNil'](_0xec9b58[_0x88c3('0xe0')])){_0xec9b58[_0x88c3('0xe2')]+=moment()[_0x88c3('0xc4')](0x0)['diff'](_0xec9b58[_0x88c3('0xe0')],'seconds');logger[_0x88c3('0x78')](_0x88c3('0xe3'),_0x4474b2[_0x88c3('0x72')],_0xec9b58[_0x88c3('0xe2')]);delete _0xec9b58[_0x88c3('0xe0')];}}}}catch(_0xf9545){logger[_0x88c3('0x3d')](_0x88c3('0xe4'),_0x4474b2[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0xf9545,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x88c3('0x36')][_0x88c3('0x26')]=function(_0x242f47){try{if(this[_0x88c3('0x65')](_0x242f47)){logger[_0x88c3('0x46')](_0x88c3('0xe5'),_0x242f47[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x242f47,{'showHidden':![],'depth':null}));if(_0x242f47['application'][_0x88c3('0x99')]()===_0x88c3('0xe6')){_0x242f47[_0x88c3('0xe7')]=_0x242f47[_0x88c3('0xe8')]&&_0x242f47[_0x88c3('0xe8')][_0x88c3('0x98')](_0x88c3('0xe9'))?_0x242f47[_0x88c3('0xe8')]:(_0x242f47[_0x88c3('0xe8')]||_0x242f47['applicationdata'])[_0x88c3('0x99')]();if(_[_0x88c3('0x98')](_0x242f47[_0x88c3('0xe7')][_0x88c3('0x99')](),_0x88c3('0xea'))){logger[_0x88c3('0x78')]('[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s',_0x242f47['uniqueid'],_0x242f47[_0x88c3('0xeb')],_0x242f47['applicationdata']);if(_[_0x88c3('0x5f')](this[_0x88c3('0x11')][_0x242f47['uniqueid']]))this[_0x88c3('0x11')][_0x242f47[_0x88c3('0x72')]]={};var _0xb43f4d=_0x242f47[_0x88c3('0xe7')]['split']('=');var _0x1c2e89=_0xb43f4d[0x0]['toLowerCase']()[_0x88c3('0xec')](/cdr\((.*)\)/);if(_0x1c2e89)this[_0x88c3('0x11')][_0x242f47[_0x88c3('0x72')]][_0x1c2e89[0x1]]=_0xb43f4d[0x1];}}}}catch(_0x373b0f){logger[_0x88c3('0x3d')](_0x88c3('0xed'),_0x242f47[_0x88c3('0x72')],util[_0x88c3('0x3e')](_0x373b0f,{'showHidden':![],'depth':null}));}};module[_0x88c3('0xee')]=VoiceQueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['Request','CreateReportAgentPreview','../client','createHistory','campaign','queue'];(function(_0x2046c5,_0x388cd9){var _0x415137=function(_0x2a7a93){while(--_0x2a7a93){_0x2046c5['push'](_0x2046c5['shift']());}};_0x415137(++_0x388cd9);}(_0x53ec,0xa4));var _0xc53e=function(_0xc28702,_0x145b87){_0xc28702=_0xc28702-0x0;var _0x3b6e9e=_0x53ec[_0xc28702];return _0x3b6e9e;};'use strict';var client=require(_0xc53e('0x0'));exports[_0xc53e('0x1')]=function(_0x1e20f8){return function(){_0x1e20f8[_0xc53e('0x2')]=_0x1e20f8[_0xc53e('0x3')];return client[_0xc53e('0x4')](_0xc53e('0x5'),{'body':_0x1e20f8,'log':'CreateReportAgentPreview'});};};
\ No newline at end of file
+var _0xe5af=['queue','Request','CreateReportAgentPreview','../client','createHistory','campaign'];(function(_0x45d8ae,_0x5b0d53){var _0x4d08b0=function(_0xd57a56){while(--_0xd57a56){_0x45d8ae['push'](_0x45d8ae['shift']());}};_0x4d08b0(++_0x5b0d53);}(_0xe5af,0xff));var _0xfe5a=function(_0x3c7ead,_0x22c422){_0x3c7ead=_0x3c7ead-0x0;var _0x44a340=_0xe5af[_0x3c7ead];return _0x44a340;};'use strict';var client=require(_0xfe5a('0x0'));exports[_0xfe5a('0x1')]=function(_0x52a974){return function(){_0x52a974[_0xfe5a('0x2')]=_0x52a974[_0xfe5a('0x3')];return client[_0xfe5a('0x4')](_0xfe5a('0x5'),{'body':_0x52a974,'log':_0xfe5a('0x5')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1bd=['create','Request','CreateAttachment'];(function(_0x5e6b8a,_0xf7b3e8){var _0x57a6d9=function(_0x425585){while(--_0x425585){_0x5e6b8a['push'](_0x5e6b8a['shift']());}};_0x57a6d9(++_0xf7b3e8);}(_0xc1bd,0xd2));var _0xdc1b=function(_0x5bb488,_0x405570){_0x5bb488=_0x5bb488-0x0;var _0x3a541a=_0xc1bd[_0x5bb488];return _0x3a541a;};'use strict';var client=require('../client');exports[_0xdc1b('0x0')]=function(_0x114a2e){return client[_0xdc1b('0x1')](_0xdc1b('0x2'),{'body':_0x114a2e,'log':_0xdc1b('0x2')});};
\ No newline at end of file
+var _0xc8ee=['create','Request','CreateAttachment','../client'];(function(_0x28b83a,_0x326480){var _0x298d27=function(_0x318153){while(--_0x318153){_0x28b83a['push'](_0x28b83a['shift']());}};_0x298d27(++_0x326480);}(_0xc8ee,0xcb));var _0xec8e=function(_0x4a63c5,_0x19804b){_0x4a63c5=_0x4a63c5-0x0;var _0x49c7e7=_0xc8ee[_0x4a63c5];return _0x49c7e7;};'use strict';var client=require(_0xec8e('0x0'));exports[_0xec8e('0x1')]=function(_0x1d4ab5){return client[_0xec8e('0x2')](_0xec8e('0x3'),{'body':_0x1d4ab5,'log':_0xec8e('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','Trunk','callerid','TrunkBackup','Interval','Intervals','interval','SquareProject','../client','getCampaigns','Request','GetCampaign','name','type','active','limitCalls'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0x5f2f,0x73));var _0xf5f2=function(_0x5ea4fc,_0x38ed89){_0x5ea4fc=_0x5ea4fc-0x0;var _0x494536=_0x5f2f[_0x5ea4fc];return _0x494536;};'use strict';var client=require(_0xf5f2('0x0'));exports[_0xf5f2('0x1')]=function(){return function(){return client[_0xf5f2('0x2')](_0xf5f2('0x3'),{'options':{'raw':![],'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x5'),_0xf5f2('0x6'),_0xf5f2('0x7'),'dialOriginateCallerIdName','dialOriginateCallerIdNumber',_0xf5f2('0x8'),_0xf5f2('0x9'),_0xf5f2('0xa'),_0xf5f2('0xb'),_0xf5f2('0xc'),_0xf5f2('0xd'),'dialNoAnswerRetryFrequency',_0xf5f2('0xe'),_0xf5f2('0xf'),_0xf5f2('0x10'),'dialDropMaxRetry',_0xf5f2('0x11'),_0xf5f2('0x12'),_0xf5f2('0x13'),'dialMachineMaxRetry',_0xf5f2('0x14'),'dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency',_0xf5f2('0x15'),_0xf5f2('0x16'),'dialAMDActive',_0xf5f2('0x17'),_0xf5f2('0x18'),_0xf5f2('0x19'),_0xf5f2('0x1a'),_0xf5f2('0x1b'),_0xf5f2('0x1c'),'dialAMDMaximumNumberOfWords',_0xf5f2('0x1d'),_0xf5f2('0x1e'),_0xf5f2('0x1f'),_0xf5f2('0x20'),_0xf5f2('0x21'),'dialCutDigit'],'include':[{'model':_0xf5f2('0x22'),'as':_0xf5f2('0x22'),'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x23'),_0xf5f2('0x6')]},{'model':_0xf5f2('0x22'),'as':_0xf5f2('0x24'),'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x23'),_0xf5f2('0x6')]},{'model':_0xf5f2('0x25'),'as':_0xf5f2('0x25'),'attributes':['id',_0xf5f2('0x4')],'include':[{'model':_0xf5f2('0x25'),'as':_0xf5f2('0x26'),'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x27')]}]},{'model':'SquareProject','as':_0xf5f2('0x28'),'attributes':['id',_0xf5f2('0x4')]}]},'log':'getCampaign'});};};
\ No newline at end of file
+var _0x7a54=['dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','callerid','active','Interval','Intervals','interval','SquareProject','../client','getCampaigns','Request','name','type','limitCalls','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialBusyMaxRetry'];(function(_0x5b465a,_0x328391){var _0x5203ea=function(_0x1ae02a){while(--_0x1ae02a){_0x5b465a['push'](_0x5b465a['shift']());}};_0x5203ea(++_0x328391);}(_0x7a54,0x106));var _0x47a5=function(_0x41f75c,_0x435b44){_0x41f75c=_0x41f75c-0x0;var _0x37d257=_0x7a54[_0x41f75c];return _0x37d257;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(){return function(){return client[_0x47a5('0x2')]('GetCampaign',{'options':{'raw':![],'attributes':['id',_0x47a5('0x3'),_0x47a5('0x4'),'active',_0x47a5('0x5'),_0x47a5('0x6'),_0x47a5('0x7'),_0x47a5('0x8'),_0x47a5('0x9'),'dialCongestionRetryFrequency',_0x47a5('0xa'),'dialBusyRetryFrequency',_0x47a5('0xb'),_0x47a5('0xc'),'dialGlobalMaxRetry',_0x47a5('0xd'),'dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency',_0x47a5('0xe'),_0x47a5('0xf'),'dialMachineMaxRetry',_0x47a5('0x10'),'dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency',_0x47a5('0x11'),_0x47a5('0x12'),_0x47a5('0x13'),_0x47a5('0x14'),_0x47a5('0x15'),_0x47a5('0x16'),_0x47a5('0x17'),'dialAMDMinWordLength',_0x47a5('0x18'),_0x47a5('0x19'),_0x47a5('0x1a'),_0x47a5('0x1b'),_0x47a5('0x1c'),_0x47a5('0x1d'),_0x47a5('0x1e'),_0x47a5('0x1f')],'include':[{'model':'Trunk','as':_0x47a5('0x20'),'attributes':['id',_0x47a5('0x3'),_0x47a5('0x21'),_0x47a5('0x22')]},{'model':_0x47a5('0x20'),'as':'TrunkBackup','attributes':['id','name',_0x47a5('0x21'),'active']},{'model':'Interval','as':_0x47a5('0x23'),'attributes':['id',_0x47a5('0x3')],'include':[{'model':_0x47a5('0x23'),'as':_0x47a5('0x24'),'attributes':['id',_0x47a5('0x3'),_0x47a5('0x25')]}]},{'model':_0x47a5('0x26'),'as':_0x47a5('0x26'),'attributes':['id',_0x47a5('0x3')]}]},'log':'getCampaign'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf52=['createContact','CreateCmContact','getContacts','Request','GetCmContact','../client'];(function(_0x5a6cef,_0x1697df){var _0x37f76f=function(_0x17dc71){while(--_0x17dc71){_0x5a6cef['push'](_0x5a6cef['shift']());}};_0x37f76f(++_0x1697df);}(_0xcf52,0x9b));var _0x2cf5=function(_0x557f4e,_0x436ed7){_0x557f4e=_0x557f4e-0x0;var _0x49054c=_0xcf52[_0x557f4e];return _0x49054c;};'use strict';var client=require(_0x2cf5('0x0'));exports[_0x2cf5('0x1')]=function(_0x31196d){return function(){return client['Request'](_0x2cf5('0x2'),{'body':_0x31196d,'log':_0x2cf5('0x2')});};};exports[_0x2cf5('0x3')]=function(_0x339549){return function(){return client[_0x2cf5('0x4')]('GetCmContact',{'options':_0x339549,'log':_0x2cf5('0x5')});};};
\ No newline at end of file
+var _0x185a=['createContact','Request','CreateCmContact','GetCmContact','../client'];(function(_0x2fff83,_0x29d5fe){var _0xa2a722=function(_0x18b6b0){while(--_0x18b6b0){_0x2fff83['push'](_0x2fff83['shift']());}};_0xa2a722(++_0x29d5fe);}(_0x185a,0x153));var _0xa185=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x185a[_0x2dafbe];return _0x58a45a;};'use strict';var client=require(_0xa185('0x0'));exports[_0xa185('0x1')]=function(_0x59a6b4){return function(){return client[_0xa185('0x2')]('CreateCmContact',{'body':_0x59a6b4,'log':_0xa185('0x3')});};};exports['getContacts']=function(_0x4fa9b0){return function(){return client[_0xa185('0x2')](_0xa185('0x4'),{'options':_0x4fa9b0,'log':_0xa185('0x4')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x35b3=['GetContactDialerIvr','moveContactManagedDialer','campaign','queue','MoveContactManagedDialer','getContactPreview','GetCmHopperPreview','User','Agent','name','VoiceQueue','Queue','getContactRecallMe','voicePause','db.CmHopper.UserId','../client','moment','lodash','Request','CmContact','Contact','getCmHopper','format','UpdateCmHopper','rescheduleContact','ContactId','ListId','VoiceQueueId','CampaignId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','YYYY-MM-DD\x20HH:mm:ss','priority','DESC','scheduledat','ASC','getContactDialerIvr'];(function(_0x278e3c,_0x1c9cfd){var _0x3e2d9b=function(_0x34d928){while(--_0x34d928){_0x278e3c['push'](_0x278e3c['shift']());}};_0x3e2d9b(++_0x1c9cfd);}(_0x35b3,0x147));var _0x335b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x35b3[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x335b('0x0'));var moment=require(_0x335b('0x1'));var _=require(_0x335b('0x2'));exports['getContacts']=function(_0xfcbdd9,_0x19645b){return function(){return client[_0x335b('0x3')]('GetCmHopper',{'options':{'where':{'VoiceQueueId':_0xfcbdd9},'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')}],'limit':_0x19645b,'raw':![]},'log':_0x335b('0x6')});};};exports['updateContacts']=function(_0x8ed638,_0x5f2da3,_0x3aa2f6){return function(){return client[_0x335b('0x3')]('UpdateCmHopper',{'body':_0x8ed638,'options':{'where':{'VoiceQueueId':_0x5f2da3,'scheduledat':{'$lte':moment()[_0x335b('0x7')]('YYYY-MM-DD\x20HH:mm:ss')}},'limit':_0x3aa2f6},'log':_0x335b('0x8')});};};exports[_0x335b('0x9')]=function(_0x28b3cc){return function(){return client['Request'](_0x335b('0x8'),{'body':_0x28b3cc,'options':{'where':{'ContactId':_0x28b3cc[_0x335b('0xa')],'ListId':_0x28b3cc[_0x335b('0xb')],'VoiceQueueId':_0x28b3cc[_0x335b('0xc')],'CampaignId':_0x28b3cc[_0x335b('0xd')]}},'log':_0x335b('0x9')});};};exports[_0x335b('0xe')]=function(_0x2708a6,_0x2be42c,_0x253c57){return function(){return client[_0x335b('0x3')](_0x335b('0xf'),{'options':{'where':{'VoiceQueueId':_0x2708a6,'ListId':_0x2be42c,'ContactId':_0x253c57}},'log':_0x335b('0xf')});};};exports[_0x335b('0x10')]=function(_0x578a1e,_0x2ed253,_0x5aee00,_0x4f9c5f){return function(){return client['Request'](_0x335b('0x11'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x578a1e,'active':![],'scheduledat':{'$lte':moment()[_0x335b('0x7')](_0x335b('0x12'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x2ed253}}]},'order':[[_0x335b('0x13'),_0x335b('0x14')],[_0x335b('0x15'),_0x4f9c5f],['id',_0x335b('0x16')]],'raw':!![],'limit':_0x5aee00},'log':_0x335b('0x11')});};};exports[_0x335b('0x17')]=function(_0x372323,_0x2470e0,_0x3cf222){return function(){return client[_0x335b('0x3')](_0x335b('0x11'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x372323,'active':![],'scheduledat':{'$lte':moment()[_0x335b('0x7')]('YYYY-MM-DD\x20HH:mm:ss')}},'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')}],'order':[[_0x335b('0x13'),'DESC'],[_0x335b('0x15'),_0x3cf222],['id','ASC']],'raw':!![],'limit':_0x2470e0},'log':_0x335b('0x18')});};};exports[_0x335b('0x19')]=function(_0x50ac82,_0x352c3c){return function(){_0x50ac82[_0x335b('0x1a')]=_0x50ac82[_0x335b('0x1b')];return client[_0x335b('0x3')](_0x335b('0x1c'),{'body':_0x50ac82,'options':{'where':{'ContactId':_0x50ac82[_0x335b('0xa')],'ListId':_0x50ac82[_0x335b('0xb')],'VoiceQueueId':_0x50ac82[_0x335b('0xc')],'CampaignId':_0x50ac82['CampaignId'],'active':_0x352c3c?undefined:!![]}},'log':'MoveContactManagedDialer'});};};exports['countReScheduled']=function(_0xf24349){return function(){return client[_0x335b('0x3')]('CountReScheduled',{'options':{'where':{'VoiceQueueId':_0xf24349['id']?_0xf24349['id']||null:null}},'log':'countReScheduled'});};};exports[_0x335b('0x1d')]=function(_0x185f1c){return function(){return client[_0x335b('0x3')](_0x335b('0x1e'),{'options':{'where':{'id':_0x185f1c},'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')},{'model':_0x335b('0x1f'),'as':_0x335b('0x20'),'attributes':['id',_0x335b('0x21')]},{'model':_0x335b('0x22'),'as':_0x335b('0x23'),'attributes':['id',_0x335b('0x21')]}],'raw':!![]},'log':'getCmHopper'});};};exports['unlockContact']=function(_0x44af7b,_0x26f17b,_0x3117a0){return function(){return client[_0x335b('0x3')](_0x335b('0x8'),{'body':_0x44af7b,'options':{'where':{'id':_0x26f17b},'limit':_0x3117a0},'log':_0x335b('0x8')});};};exports[_0x335b('0x24')]=function(_0x5af602,_0x4f260c){return function(){return client[_0x335b('0x3')]('GetContactRecallMe',{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x5af602,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x335b('0x7')](_0x335b('0x12'))},'UserId':{'$in':_0x4f260c}},'order':[[_0x335b('0x13'),_0x335b('0x14')],['scheduledat','DESC'],['id',_0x335b('0x16')]],'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')},{'model':_0x335b('0x1f'),'as':_0x335b('0x20'),'attributes':['id',_0x335b('0x21'),_0x335b('0x25')]}],'group':_0x335b('0x26'),'raw':!![]},'log':'GetContactDialer'});};};
\ No newline at end of file
+var _0xc6d2=['Contact','getCmHopper','updateContacts','UpdateCmHopper','format','YYYY-MM-DD\x20HH:mm:ss','ContactId','ListId','VoiceQueueId','CampaignId','rescheduleContact','destroyContact','DestroyCmHopper','GetContactDialer','priority','DESC','scheduledat','getContactDialerIvr','ASC','GetContactDialerIvr','moveContactManagedDialer','campaign','queue','MoveContactManagedDialer','countReScheduled','CountReScheduled','getContactPreview','User','name','VoiceQueue','Queue','unlockContact','voicePause','../client','moment','lodash','getContacts','Request','GetCmHopper','CmContact'];(function(_0x39ed32,_0x50eeb7){var _0x1b0944=function(_0x50fce7){while(--_0x50fce7){_0x39ed32['push'](_0x39ed32['shift']());}};_0x1b0944(++_0x50eeb7);}(_0xc6d2,0xc1));var _0x2c6d=function(_0x5619fd,_0xc60efa){_0x5619fd=_0x5619fd-0x0;var _0x2d3def=_0xc6d2[_0x5619fd];return _0x2d3def;};'use strict';var client=require(_0x2c6d('0x0'));var moment=require(_0x2c6d('0x1'));var _=require(_0x2c6d('0x2'));exports[_0x2c6d('0x3')]=function(_0x270718,_0x1c8813){return function(){return client[_0x2c6d('0x4')](_0x2c6d('0x5'),{'options':{'where':{'VoiceQueueId':_0x270718},'include':[{'model':_0x2c6d('0x6'),'as':_0x2c6d('0x7')}],'limit':_0x1c8813,'raw':![]},'log':_0x2c6d('0x8')});};};exports[_0x2c6d('0x9')]=function(_0x3a0aea,_0x437717,_0x13179c){return function(){return client[_0x2c6d('0x4')](_0x2c6d('0xa'),{'body':_0x3a0aea,'options':{'where':{'VoiceQueueId':_0x437717,'scheduledat':{'$lte':moment()[_0x2c6d('0xb')](_0x2c6d('0xc'))}},'limit':_0x13179c},'log':_0x2c6d('0xa')});};};exports['rescheduleContact']=function(_0x4adf79){return function(){return client[_0x2c6d('0x4')](_0x2c6d('0xa'),{'body':_0x4adf79,'options':{'where':{'ContactId':_0x4adf79[_0x2c6d('0xd')],'ListId':_0x4adf79[_0x2c6d('0xe')],'VoiceQueueId':_0x4adf79[_0x2c6d('0xf')],'CampaignId':_0x4adf79[_0x2c6d('0x10')]}},'log':_0x2c6d('0x11')});};};exports[_0x2c6d('0x12')]=function(_0x58f6cd,_0x5821ce,_0x4fb134){return function(){return client[_0x2c6d('0x4')]('DestroyCmHopper',{'options':{'where':{'VoiceQueueId':_0x58f6cd,'ListId':_0x5821ce,'ContactId':_0x4fb134}},'log':_0x2c6d('0x13')});};};exports['getContactDialer']=function(_0x4fb939,_0x348e55,_0x4d67d8,_0x2d8d6d){return function(){return client[_0x2c6d('0x4')](_0x2c6d('0x14'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x4fb939,'active':![],'scheduledat':{'$lte':moment()[_0x2c6d('0xb')](_0x2c6d('0xc'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x348e55}}]},'order':[[_0x2c6d('0x15'),_0x2c6d('0x16')],[_0x2c6d('0x17'),_0x2d8d6d],['id','ASC']],'raw':!![],'limit':_0x4d67d8},'log':_0x2c6d('0x14')});};};exports[_0x2c6d('0x18')]=function(_0x246d1e,_0x3744ca,_0x119670){return function(){return client[_0x2c6d('0x4')]('GetContactDialer',{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x246d1e,'active':![],'scheduledat':{'$lte':moment()[_0x2c6d('0xb')](_0x2c6d('0xc'))}},'include':[{'model':_0x2c6d('0x6'),'as':_0x2c6d('0x7')}],'order':[[_0x2c6d('0x15'),'DESC'],[_0x2c6d('0x17'),_0x119670],['id',_0x2c6d('0x19')]],'raw':!![],'limit':_0x3744ca},'log':_0x2c6d('0x1a')});};};exports[_0x2c6d('0x1b')]=function(_0x55345f,_0x1242b4){return function(){_0x55345f[_0x2c6d('0x1c')]=_0x55345f[_0x2c6d('0x1d')];return client[_0x2c6d('0x4')](_0x2c6d('0x1e'),{'body':_0x55345f,'options':{'where':{'ContactId':_0x55345f[_0x2c6d('0xd')],'ListId':_0x55345f[_0x2c6d('0xe')],'VoiceQueueId':_0x55345f[_0x2c6d('0xf')],'CampaignId':_0x55345f['CampaignId'],'active':_0x1242b4?undefined:!![]}},'log':_0x2c6d('0x1e')});};};exports[_0x2c6d('0x1f')]=function(_0x21a8d6){return function(){return client['Request'](_0x2c6d('0x20'),{'options':{'where':{'VoiceQueueId':_0x21a8d6['id']?_0x21a8d6['id']||null:null}},'log':_0x2c6d('0x1f')});};};exports[_0x2c6d('0x21')]=function(_0x299f01){return function(){return client[_0x2c6d('0x4')]('GetCmHopperPreview',{'options':{'where':{'id':_0x299f01},'include':[{'model':_0x2c6d('0x6'),'as':'Contact'},{'model':_0x2c6d('0x22'),'as':'Agent','attributes':['id',_0x2c6d('0x23')]},{'model':_0x2c6d('0x24'),'as':_0x2c6d('0x25'),'attributes':['id',_0x2c6d('0x23')]}],'raw':!![]},'log':_0x2c6d('0x8')});};};exports[_0x2c6d('0x26')]=function(_0x495436,_0x2217c4,_0x2d645c){return function(){return client['Request'](_0x2c6d('0xa'),{'body':_0x495436,'options':{'where':{'id':_0x2217c4},'limit':_0x2d645c},'log':'UpdateCmHopper'});};};exports['getContactRecallMe']=function(_0x498dd4,_0x4a126b){return function(){return client['Request']('GetContactRecallMe',{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x498dd4,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x2c6d('0xb')](_0x2c6d('0xc'))},'UserId':{'$in':_0x4a126b}},'order':[[_0x2c6d('0x15'),'DESC'],[_0x2c6d('0x17'),_0x2c6d('0x16')],['id',_0x2c6d('0x19')]],'include':[{'model':_0x2c6d('0x6'),'as':'Contact'},{'model':_0x2c6d('0x22'),'as':'Agent','attributes':['id',_0x2c6d('0x23'),_0x2c6d('0x27')]}],'group':'db.CmHopper.UserId','raw':!![]},'log':_0x2c6d('0x14')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb78e=['GetCmHopperBlack','VoiceQueueId','Contact','phone','checkIsBlackListIvr','CampaignId','GetCmHopperBlackIvr','../client','checkIsBlackList','Request'];(function(_0x467b9d,_0x495c6c){var _0x221400=function(_0x34a411){while(--_0x34a411){_0x467b9d['push'](_0x467b9d['shift']());}};_0x221400(++_0x495c6c);}(_0xb78e,0x1c9));var _0xeb78=function(_0xd2a3f4,_0x547976){_0xd2a3f4=_0xd2a3f4-0x0;var _0x5d6760=_0xb78e[_0xd2a3f4];return _0x5d6760;};'use strict';var client=require(_0xeb78('0x0'));exports[_0xeb78('0x1')]=function(_0x4b8534){return function(){return client[_0xeb78('0x2')](_0xeb78('0x3'),{'options':{'where':{'VoiceQueueId':_0x4b8534[_0xeb78('0x4')],'phone':_0x4b8534[_0xeb78('0x5')][_0xeb78('0x6')]},'raw':![]},'log':_0xeb78('0x3')});};};exports[_0xeb78('0x7')]=function(_0x1bdf83){return function(){return client['Request'](_0xeb78('0x3'),{'options':{'where':{'CampaignId':_0x1bdf83[_0xeb78('0x8')],'phone':_0x1bdf83[_0xeb78('0x5')][_0xeb78('0x6')]},'raw':![]},'log':_0xeb78('0x9')});};};
\ No newline at end of file
+var _0xab40=['Contact','phone','GetCmHopperBlack','checkIsBlackListIvr','GetCmHopperBlackIvr','../client','checkIsBlackList','VoiceQueueId'];(function(_0x495e9f,_0x1b1d80){var _0xb249d2=function(_0x3db4e4){while(--_0x3db4e4){_0x495e9f['push'](_0x495e9f['shift']());}};_0xb249d2(++_0x1b1d80);}(_0xab40,0xcd));var _0x0ab4=function(_0xa0e688,_0x414ced){_0xa0e688=_0xa0e688-0x0;var _0x1c50bd=_0xab40[_0xa0e688];return _0x1c50bd;};'use strict';var client=require(_0x0ab4('0x0'));exports[_0x0ab4('0x1')]=function(_0x4ec919){return function(){return client['Request']('GetCmHopperBlack',{'options':{'where':{'VoiceQueueId':_0x4ec919[_0x0ab4('0x2')],'phone':_0x4ec919[_0x0ab4('0x3')][_0x0ab4('0x4')]},'raw':![]},'log':_0x0ab4('0x5')});};};exports[_0x0ab4('0x6')]=function(_0x57fac1){return function(){return client['Request'](_0x0ab4('0x5'),{'options':{'where':{'CampaignId':_0x57fac1['CampaignId'],'phone':_0x57fac1[_0x0ab4('0x3')][_0x0ab4('0x4')]},'raw':![]},'log':_0x0ab4('0x7')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0000=['CreateCmHopperFinal','createContact','campaign'];(function(_0x4df446,_0x555af2){var _0x5abf0b=function(_0x467461){while(--_0x467461){_0x4df446['push'](_0x4df446['shift']());}};_0x5abf0b(++_0x555af2);}(_0x0000,0x7c));var _0x0000=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x0000[_0x14add3];return _0x4a174f;};'use strict';var client=require('../client');exports[_0x0000('0x0')]=function(_0x347488){return function(){_0x347488[_0x0000('0x1')]=_0x347488['queue'];return client['Request'](_0x0000('0x2'),{'body':_0x347488,'log':_0x0000('0x2')});};};
\ No newline at end of file
+var _0x040c=['../client','createContact','campaign','Request','CreateCmHopperFinal'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x040c,0x1ae));var _0xc040=function(_0x224a60,_0x4fec4c){_0x224a60=_0x224a60-0x0;var _0x12a36a=_0x040c[_0x224a60];return _0x12a36a;};'use strict';var client=require(_0xc040('0x0'));exports[_0xc040('0x1')]=function(_0x2bbee3){return function(){_0x2bbee3[_0xc040('0x2')]=_0x2bbee3['queue'];return client[_0xc040('0x3')](_0xc040('0x4'),{'body':_0x2bbee3,'log':_0xc040('0x4')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01ac=['subtract','minutes','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','startOf','day','endOf','getCampaignHopperHistory','GetCampaignHopperHistory','../client','moment','createHistory','campaign','queue','Request','CreateCmHopperHistory','AvgHandleTime'];(function(_0x202c61,_0x3673e0){var _0x540691=function(_0x409610){while(--_0x409610){_0x202c61['push'](_0x202c61['shift']());}};_0x540691(++_0x3673e0);}(_0x01ac,0x70));var _0xc01a=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x01ac[_0x19950b];return _0x3c6b41;};'use strict';var client=require(_0xc01a('0x0'));var moment=require(_0xc01a('0x1'));exports[_0xc01a('0x2')]=function(_0x11242c){return function(){_0x11242c[_0xc01a('0x3')]=_0x11242c[_0xc01a('0x4')];return client[_0xc01a('0x5')](_0xc01a('0x6'),{'body':_0x11242c,'log':'CreateCmHopperHistory'});};};exports['avgHandleTime']=function(_0x267199){return function(){return client['Request'](_0xc01a('0x7'),{'options':{'where':{'endtime':{'$between':[moment()[_0xc01a('0x8')](_0x267199,_0xc01a('0x9'))['format']('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xc01a('0xa')](_0xc01a('0xb'))]}},'raw':![]},'log':_0xc01a('0xc')});};};exports[_0xc01a('0xd')]=function(_0x3e01c6){return function(){return client[_0xc01a('0x5')](_0xc01a('0xe'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xc01a('0xf')](_0xc01a('0x10'))[_0xc01a('0xa')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xc01a('0x11')](_0xc01a('0x10'))[_0xc01a('0xa')](_0xc01a('0xb'))]},'campaigntype':_0xc01a('0x4')},'raw':![]},'log':_0xc01a('0xe')});};};exports[_0xc01a('0x12')]=function(_0x3071f1){return function(){return client[_0xc01a('0x5')](_0xc01a('0x13'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xc01a('0xf')](_0xc01a('0x10'))[_0xc01a('0xa')](_0xc01a('0xb')),moment()['endOf'](_0xc01a('0x10'))[_0xc01a('0xa')](_0xc01a('0xb'))]},'campaigntype':'ivr'},'raw':![]},'log':_0xc01a('0x13')});};};
\ No newline at end of file
+var _0x000d=['subtract','minutes','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','startOf','day','endOf','GetCampaignHopperHistory','ivr','../client','createHistory','campaign','queue','Request','avgHandleTime'];(function(_0x14d2ae,_0x273d1e){var _0x54b31a=function(_0x32a379){while(--_0x32a379){_0x14d2ae['push'](_0x14d2ae['shift']());}};_0x54b31a(++_0x273d1e);}(_0x000d,0xae));var _0xd000=function(_0x6b8206,_0x1fce7d){_0x6b8206=_0x6b8206-0x0;var _0x119244=_0x000d[_0x6b8206];return _0x119244;};'use strict';var client=require(_0xd000('0x0'));var moment=require('moment');exports[_0xd000('0x1')]=function(_0xa2eeca){return function(){_0xa2eeca[_0xd000('0x2')]=_0xa2eeca[_0xd000('0x3')];return client[_0xd000('0x4')]('CreateCmHopperHistory',{'body':_0xa2eeca,'log':'CreateCmHopperHistory'});};};exports[_0xd000('0x5')]=function(_0x45e8d5){return function(){return client[_0xd000('0x4')]('AvgHandleTime',{'options':{'where':{'endtime':{'$between':[moment()[_0xd000('0x6')](_0x45e8d5,_0xd000('0x7'))[_0xd000('0x8')](_0xd000('0x9')),moment()['format']('YYYY-MM-DD\x20HH:mm:ss')]}},'raw':![]},'log':_0xd000('0xa')});};};exports[_0xd000('0xb')]=function(_0x297e84){return function(){return client[_0xd000('0x4')](_0xd000('0xc'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xd000('0xd')](_0xd000('0xe'))[_0xd000('0x8')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xd000('0xf')](_0xd000('0xe'))[_0xd000('0x8')](_0xd000('0x9'))]},'campaigntype':_0xd000('0x3')},'raw':![]},'log':'GetVoiceQueueHopperHistory'});};};exports['getCampaignHopperHistory']=function(_0x4e517d){return function(){return client[_0xd000('0x4')](_0xd000('0x10'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xd000('0xd')](_0xd000('0xe'))[_0xd000('0x8')](_0xd000('0x9')),moment()[_0xd000('0xf')](_0xd000('0xe'))[_0xd000('0x8')](_0xd000('0x9'))]},'campaigntype':_0xd000('0x11')},'raw':![]},'log':_0xd000('0x10')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d56=['notify','NotifyFaxAccount','../client','getFaxAccounts','Request','GetFaxAccount','description','ecm','headerinfo','localstationid','minrate','modem','gateway','faxdetect','t38timeout','tech','TrunkId','ListId','key','Trunk','name','callerid','active','getFaxAccount'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x9d56,0x122));var _0x69d5=function(_0x406572,_0x2a814a){_0x406572=_0x406572-0x0;var _0x38d993=_0x9d56[_0x406572];return _0x38d993;};'use strict';var client=require(_0x69d5('0x0'));exports[_0x69d5('0x1')]=function(){return function(){return client[_0x69d5('0x2')](_0x69d5('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x69d5('0x4'),_0x69d5('0x5'),_0x69d5('0x6'),_0x69d5('0x7'),_0x69d5('0x8'),'maxrate',_0x69d5('0x9'),_0x69d5('0xa'),_0x69d5('0xb'),_0x69d5('0xc'),_0x69d5('0xd'),_0x69d5('0xe'),_0x69d5('0xf'),_0x69d5('0x10')],'include':[{'model':_0x69d5('0x11'),'as':_0x69d5('0x11'),'attributes':['id',_0x69d5('0x12'),_0x69d5('0x13'),_0x69d5('0x14')]}]},'log':_0x69d5('0x15')});};};exports[_0x69d5('0x16')]=function(_0x1174c0,_0x166af2){return client[_0x69d5('0x2')](_0x69d5('0x17'),{'account':{'id':_0x1174c0},'body':_0x166af2,'log':'NotifyFaxAccount'});};
\ No newline at end of file
+var _0x97ce=['NotifyFaxAccount','../client','getFaxAccounts','Request','GetFaxAccount','description','headerinfo','minrate','maxrate','modem','gateway','faxdetect','t38timeout','TrunkId','ListId','key','Trunk','callerid','active','getFaxAccount','notify'];(function(_0xa61724,_0x2f6e06){var _0x22fe11=function(_0x1cb026){while(--_0x1cb026){_0xa61724['push'](_0xa61724['shift']());}};_0x22fe11(++_0x2f6e06);}(_0x97ce,0x151));var _0xe97c=function(_0x47fd36,_0x41535d){_0x47fd36=_0x47fd36-0x0;var _0x21a0fc=_0x97ce[_0x47fd36];return _0x21a0fc;};'use strict';var client=require(_0xe97c('0x0'));exports[_0xe97c('0x1')]=function(){return function(){return client[_0xe97c('0x2')](_0xe97c('0x3'),{'options':{'raw':![],'attributes':['id','name',_0xe97c('0x4'),'ecm',_0xe97c('0x5'),'localstationid',_0xe97c('0x6'),_0xe97c('0x7'),_0xe97c('0x8'),_0xe97c('0x9'),_0xe97c('0xa'),_0xe97c('0xb'),'tech',_0xe97c('0xc'),_0xe97c('0xd'),_0xe97c('0xe')],'include':[{'model':'Trunk','as':_0xe97c('0xf'),'attributes':['id','name',_0xe97c('0x10'),_0xe97c('0x11')]}]},'log':_0xe97c('0x12')});};};exports[_0xe97c('0x13')]=function(_0x43e557,_0x3aa2a5){return client[_0xe97c('0x2')]('NotifyFaxAccount',{'account':{'id':_0x43e557},'body':_0x3aa2a5,'log':_0xe97c('0x14')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ee3=['Request','UpdateFaxMessage','../client'];(function(_0x32a767,_0x4e3e76){var _0x2b4e6d=function(_0x5e0702){while(--_0x5e0702){_0x32a767['push'](_0x32a767['shift']());}};_0x2b4e6d(++_0x4e3e76);}(_0x6ee3,0x149));var _0x36ee=function(_0x1d3b09,_0x15249b){_0x1d3b09=_0x1d3b09-0x0;var _0x8f2496=_0x6ee3[_0x1d3b09];return _0x8f2496;};'use strict';var client=require(_0x36ee('0x0'));exports['update']=function(_0x463a21,_0x2ed0e0){return client[_0x36ee('0x1')](_0x36ee('0x2'),{'body':_0x2ed0e0,'options':{'where':{'AttachmentId':_0x463a21}},'log':_0x36ee('0x2')});};
\ No newline at end of file
+var _0xe4a0=['UpdateFaxMessage','../client','update'];(function(_0x1ecd87,_0x5cd99d){var _0x2cd3be=function(_0x7d0480){while(--_0x7d0480){_0x1ecd87['push'](_0x1ecd87['shift']());}};_0x2cd3be(++_0x5cd99d);}(_0xe4a0,0xca));var _0x0e4a=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0xe4a0[_0x1d1779];return _0x2377e9;};'use strict';var client=require(_0x0e4a('0x0'));exports[_0x0e4a('0x1')]=function(_0x21370e,_0xdbf0c7){return client['Request'](_0x0e4a('0x2'),{'body':_0xdbf0c7,'options':{'where':{'AttachmentId':_0x21370e}},'log':_0x0e4a('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdeb7=['DeskField','Subjects','variableName','Variable','Descriptions','content','keyContent','Fields','idField','customField','Tag','Request','GetDeskAccount','description','username','remoteUri','authType','type','serverUrl','DeskConfiguration','Configurations','name'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xdeb7,0x181));var _0x7deb=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xdeb7[_0x2641f9];return _0x585741;};'use strict';var client=require('../../client');exports['getDeskAccounts']=function(){return function(_0x5076a2){return client[_0x7deb('0x0')](_0x7deb('0x1'),{'options':{'raw':![],'attributes':['id','name',_0x7deb('0x2'),_0x7deb('0x3'),'password',_0x7deb('0x4'),_0x7deb('0x5'),_0x7deb('0x6'),_0x7deb('0x7')],'include':[{'model':_0x7deb('0x8'),'as':_0x7deb('0x9'),'attributes':['id',_0x7deb('0xa')],'include':[{'model':_0x7deb('0xb'),'as':_0x7deb('0xc'),'attributes':['id',_0x7deb('0x6'),'content',_0x7deb('0xd')],'include':[{'model':'Variable','as':_0x7deb('0xe'),'attributes':['id',_0x7deb('0xa')]}]},{'model':_0x7deb('0xb'),'as':_0x7deb('0xf'),'attributes':['id',_0x7deb('0x6'),_0x7deb('0x10'),'key','keyType',_0x7deb('0x11'),_0x7deb('0xd')],'include':[{'model':_0x7deb('0xe'),'as':_0x7deb('0xe'),'attributes':['id','name']}]},{'model':_0x7deb('0xb'),'as':_0x7deb('0x12'),'attributes':['id',_0x7deb('0x6'),_0x7deb('0x10'),_0x7deb('0x13'),'nameField',_0x7deb('0x14'),_0x7deb('0xd')],'include':[{'model':_0x7deb('0xe'),'as':'Variable','attributes':['id',_0x7deb('0xa')]}]},{'model':_0x7deb('0x15'),'as':'Tags','attributes':['id',_0x7deb('0xa')]}]}]},'log':_0x7deb('0x1')});};};
\ No newline at end of file
+var _0x7b22=['variableName','Variable','Descriptions','key','keyType','Fields','nameField','customField','Tag','../../client','getDeskAccounts','GetDeskAccount','name','description','username','password','type','Configurations','Subjects','content'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7b22,0xbd));var _0x27b2=function(_0x48999d,_0x1e02cb){_0x48999d=_0x48999d-0x0;var _0x1ad0d1=_0x7b22[_0x48999d];return _0x1ad0d1;};'use strict';var client=require(_0x27b2('0x0'));exports[_0x27b2('0x1')]=function(){return function(_0x572a3b){return client['Request'](_0x27b2('0x2'),{'options':{'raw':![],'attributes':['id',_0x27b2('0x3'),_0x27b2('0x4'),_0x27b2('0x5'),_0x27b2('0x6'),'remoteUri','authType',_0x27b2('0x7'),'serverUrl'],'include':[{'model':'DeskConfiguration','as':_0x27b2('0x8'),'attributes':['id',_0x27b2('0x3')],'include':[{'model':'DeskField','as':_0x27b2('0x9'),'attributes':['id',_0x27b2('0x7'),_0x27b2('0xa'),_0x27b2('0xb')],'include':[{'model':_0x27b2('0xc'),'as':_0x27b2('0xc'),'attributes':['id',_0x27b2('0x3')]}]},{'model':'DeskField','as':_0x27b2('0xd'),'attributes':['id',_0x27b2('0x7'),_0x27b2('0xa'),_0x27b2('0xe'),_0x27b2('0xf'),'keyContent',_0x27b2('0xb')],'include':[{'model':_0x27b2('0xc'),'as':_0x27b2('0xc'),'attributes':['id',_0x27b2('0x3')]}]},{'model':'DeskField','as':_0x27b2('0x10'),'attributes':['id',_0x27b2('0x7'),_0x27b2('0xa'),'idField',_0x27b2('0x11'),_0x27b2('0x12'),_0x27b2('0xb')],'include':[{'model':_0x27b2('0xc'),'as':_0x27b2('0xc'),'attributes':['id','name']}]},{'model':_0x27b2('0x13'),'as':'Tags','attributes':['id',_0x27b2('0x3')]}]}]},'log':'GetDeskAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96b0=['content','Variable','Descriptions','key','keyType','keyContent','variableName','Fields','idField','nameField','customField','../../client','Request','GetDynamics365Account','name','username','password','remoteUri','tenantId','clientId','clientSecret','serverUrl','description','Dynamics365Configuration','Configurations','ticketType','Dynamics365Field','type'];(function(_0x1fd675,_0x165dfe){var _0x16b554=function(_0x5761ff){while(--_0x5761ff){_0x1fd675['push'](_0x1fd675['shift']());}};_0x16b554(++_0x165dfe);}(_0x96b0,0x97));var _0x096b=function(_0x4e4d5d,_0x3e5e71){_0x4e4d5d=_0x4e4d5d-0x0;var _0x13f687=_0x96b0[_0x4e4d5d];return _0x13f687;};'use strict';var client=require(_0x096b('0x0'));exports['getDynamics365Accounts']=function(){return function(_0x1034e8){return client[_0x096b('0x1')](_0x096b('0x2'),{'options':{'raw':![],'attributes':['id',_0x096b('0x3'),_0x096b('0x4'),_0x096b('0x5'),_0x096b('0x6'),_0x096b('0x7'),_0x096b('0x8'),_0x096b('0x9'),_0x096b('0xa'),_0x096b('0xb')],'include':[{'model':_0x096b('0xc'),'as':_0x096b('0xd'),'attributes':['id',_0x096b('0x3'),_0x096b('0xe')],'include':[{'model':_0x096b('0xf'),'as':'Subjects','attributes':['id',_0x096b('0x10'),_0x096b('0x11'),'variableName'],'include':[{'model':_0x096b('0x12'),'as':_0x096b('0x12'),'attributes':['id',_0x096b('0x3')]}]},{'model':'Dynamics365Field','as':_0x096b('0x13'),'attributes':['id',_0x096b('0x10'),'content',_0x096b('0x14'),_0x096b('0x15'),_0x096b('0x16'),_0x096b('0x17')],'include':[{'model':_0x096b('0x12'),'as':'Variable','attributes':['id',_0x096b('0x3')]}]},{'model':'Dynamics365Field','as':_0x096b('0x18'),'attributes':['id',_0x096b('0x10'),_0x096b('0x11'),_0x096b('0x19'),_0x096b('0x1a'),_0x096b('0x1b'),_0x096b('0x17')],'include':[{'model':'Variable','as':_0x096b('0x12'),'attributes':['id',_0x096b('0x3')]}]}]}]},'log':_0x096b('0x2')});};};
\ No newline at end of file
+var _0xb1b3=['password','tenantId','clientId','clientSecret','serverUrl','Dynamics365Configuration','ticketType','Dynamics365Field','Subjects','type','variableName','Variable','Descriptions','key','keyType','keyContent','idField','customField','../../client','Request','GetDynamics365Account','name','username'];(function(_0x2728d1,_0x6a2fcc){var _0x38ceb0=function(_0x2d829e){while(--_0x2d829e){_0x2728d1['push'](_0x2728d1['shift']());}};_0x38ceb0(++_0x6a2fcc);}(_0xb1b3,0x154));var _0x3b1b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb1b3[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x3b1b('0x0'));exports['getDynamics365Accounts']=function(){return function(_0x1bdbcf){return client[_0x3b1b('0x1')](_0x3b1b('0x2'),{'options':{'raw':![],'attributes':['id',_0x3b1b('0x3'),_0x3b1b('0x4'),_0x3b1b('0x5'),'remoteUri',_0x3b1b('0x6'),_0x3b1b('0x7'),_0x3b1b('0x8'),_0x3b1b('0x9'),'description'],'include':[{'model':_0x3b1b('0xa'),'as':'Configurations','attributes':['id','name',_0x3b1b('0xb')],'include':[{'model':_0x3b1b('0xc'),'as':_0x3b1b('0xd'),'attributes':['id',_0x3b1b('0xe'),'content',_0x3b1b('0xf')],'include':[{'model':_0x3b1b('0x10'),'as':_0x3b1b('0x10'),'attributes':['id',_0x3b1b('0x3')]}]},{'model':_0x3b1b('0xc'),'as':_0x3b1b('0x11'),'attributes':['id',_0x3b1b('0xe'),'content',_0x3b1b('0x12'),_0x3b1b('0x13'),_0x3b1b('0x14'),_0x3b1b('0xf')],'include':[{'model':_0x3b1b('0x10'),'as':_0x3b1b('0x10'),'attributes':['id','name']}]},{'model':_0x3b1b('0xc'),'as':'Fields','attributes':['id','type','content',_0x3b1b('0x15'),'nameField',_0x3b1b('0x16'),'variableName'],'include':[{'model':_0x3b1b('0x10'),'as':_0x3b1b('0x10'),'attributes':['id','name']}]}]}]},'log':_0x3b1b('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1123=['Subjects','type','variableName','Variable','Descriptions','key','keyType','keyContent','content','idField','GetFreshdeskAccount','name','username','serverUrl','FreshdeskConfiguration','Configurations','Tag','FreshdeskField'];(function(_0x5b6cf1,_0x32fdcd){var _0x46278c=function(_0x53fd9b){while(--_0x53fd9b){_0x5b6cf1['push'](_0x5b6cf1['shift']());}};_0x46278c(++_0x32fdcd);}(_0x1123,0x118));var _0x3112=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0x1123[_0x413feb];return _0x40ee88;};'use strict';var client=require('../../client');exports['getFreshdeskAccounts']=function(){return function(_0x271d35){return client['Request'](_0x3112('0x0'),{'options':{'raw':![],'attributes':['id',_0x3112('0x1'),_0x3112('0x2'),'apiKey','remoteUri',_0x3112('0x3')],'include':[{'model':_0x3112('0x4'),'as':_0x3112('0x5'),'attributes':['id',_0x3112('0x1')],'include':[{'model':_0x3112('0x6'),'attributes':['id',_0x3112('0x1')]},{'model':_0x3112('0x7'),'as':_0x3112('0x8'),'attributes':['id',_0x3112('0x9'),'content',_0x3112('0xa')],'include':[{'model':_0x3112('0xb'),'as':_0x3112('0xb'),'attributes':['id',_0x3112('0x1')]}]},{'model':_0x3112('0x7'),'as':_0x3112('0xc'),'attributes':['id','type','content',_0x3112('0xd'),_0x3112('0xe'),_0x3112('0xf'),_0x3112('0xa')],'include':[{'model':_0x3112('0xb'),'as':'Variable','attributes':['id',_0x3112('0x1')]}]},{'model':'FreshdeskField','as':'Fields','attributes':['id',_0x3112('0x9'),_0x3112('0x10'),_0x3112('0x11'),'nameField','customField',_0x3112('0xa')],'include':[{'model':'Variable','as':_0x3112('0xb'),'attributes':['id','name']}]}]}]},'log':'GetFreshdeskAccount'});};};
\ No newline at end of file
+var _0x6d2d=['FreshdeskField','Subjects','type','variableName','Variable','Descriptions','content','keyType','keyContent','idField','nameField','customField','Request','GetFreshdeskAccount','username','apiKey','remoteUri','serverUrl','FreshdeskConfiguration','Configurations','name','Tag'];(function(_0xd33bb3,_0x434112){var _0x47301b=function(_0x44450c){while(--_0x44450c){_0xd33bb3['push'](_0xd33bb3['shift']());}};_0x47301b(++_0x434112);}(_0x6d2d,0xbc));var _0xd6d2=function(_0x524a60,_0x50b751){_0x524a60=_0x524a60-0x0;var _0x29597b=_0x6d2d[_0x524a60];return _0x29597b;};'use strict';var client=require('../../client');exports['getFreshdeskAccounts']=function(){return function(_0x1d779a){return client[_0xd6d2('0x0')](_0xd6d2('0x1'),{'options':{'raw':![],'attributes':['id','name',_0xd6d2('0x2'),_0xd6d2('0x3'),_0xd6d2('0x4'),_0xd6d2('0x5')],'include':[{'model':_0xd6d2('0x6'),'as':_0xd6d2('0x7'),'attributes':['id',_0xd6d2('0x8')],'include':[{'model':_0xd6d2('0x9'),'attributes':['id','name']},{'model':_0xd6d2('0xa'),'as':_0xd6d2('0xb'),'attributes':['id',_0xd6d2('0xc'),'content',_0xd6d2('0xd')],'include':[{'model':_0xd6d2('0xe'),'as':_0xd6d2('0xe'),'attributes':['id',_0xd6d2('0x8')]}]},{'model':_0xd6d2('0xa'),'as':_0xd6d2('0xf'),'attributes':['id',_0xd6d2('0xc'),_0xd6d2('0x10'),'key',_0xd6d2('0x11'),_0xd6d2('0x12'),_0xd6d2('0xd')],'include':[{'model':_0xd6d2('0xe'),'as':_0xd6d2('0xe'),'attributes':['id',_0xd6d2('0x8')]}]},{'model':_0xd6d2('0xa'),'as':'Fields','attributes':['id',_0xd6d2('0xc'),_0xd6d2('0x10'),_0xd6d2('0x13'),_0xd6d2('0x14'),_0xd6d2('0x15'),'variableName'],'include':[{'model':_0xd6d2('0xe'),'as':_0xd6d2('0xe'),'attributes':['id','name']}]}]}]},'log':'GetFreshdeskAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f47=['type','variableName','Variable','name','content','key','GetFreshsalesccount','getFreshsalesAccounts','GetFreshsalesAccount','username','remoteUri','serverUrl','FreshsalesConfiguration','Configurations','FreshsalesField','Subjects'];(function(_0x14bb83,_0x4f3c88){var _0xa8c5cd=function(_0x12972d){while(--_0x12972d){_0x14bb83['push'](_0x14bb83['shift']());}};_0xa8c5cd(++_0x4f3c88);}(_0x6f47,0xc7));var _0x76f4=function(_0x34843e,_0x4c4224){_0x34843e=_0x34843e-0x0;var _0x598f7f=_0x6f47[_0x34843e];return _0x598f7f;};'use strict';var client=require('../../client');exports[_0x76f4('0x0')]=function(){return function(_0x94765d){return client['Request'](_0x76f4('0x1'),{'options':{'raw':![],'attributes':['id','name',_0x76f4('0x2'),'apiKey',_0x76f4('0x3'),_0x76f4('0x4')],'include':[{'model':_0x76f4('0x5'),'as':_0x76f4('0x6'),'attributes':['id','name'],'include':[{'model':_0x76f4('0x7'),'as':_0x76f4('0x8'),'attributes':['id',_0x76f4('0x9'),'content',_0x76f4('0xa')],'include':[{'model':_0x76f4('0xb'),'as':_0x76f4('0xb'),'attributes':['id',_0x76f4('0xc')]}]},{'model':_0x76f4('0x7'),'as':'Descriptions','attributes':['id','type',_0x76f4('0xd'),_0x76f4('0xe'),'keyType','keyContent',_0x76f4('0xa')],'include':[{'model':_0x76f4('0xb'),'as':_0x76f4('0xb'),'attributes':['id',_0x76f4('0xc')]}]}]}]},'log':_0x76f4('0xf')});};};
\ No newline at end of file
+var _0x15ef=['Subjects','type','variableName','Variable','FreshsalesField','Descriptions','keyType','keyContent','GetFreshsalesccount','getFreshsalesAccounts','GetFreshsalesAccount','name','username','apiKey','remoteUri','FreshsalesConfiguration','Configurations'];(function(_0x28fe94,_0x120b9b){var _0x3560da=function(_0x4d4e25){while(--_0x4d4e25){_0x28fe94['push'](_0x28fe94['shift']());}};_0x3560da(++_0x120b9b);}(_0x15ef,0x80));var _0xf15e=function(_0x239cee,_0xf786c8){_0x239cee=_0x239cee-0x0;var _0x4fe6b6=_0x15ef[_0x239cee];return _0x4fe6b6;};'use strict';var client=require('../../client');exports[_0xf15e('0x0')]=function(){return function(_0x69848b){return client['Request'](_0xf15e('0x1'),{'options':{'raw':![],'attributes':['id',_0xf15e('0x2'),_0xf15e('0x3'),_0xf15e('0x4'),_0xf15e('0x5'),'serverUrl'],'include':[{'model':_0xf15e('0x6'),'as':_0xf15e('0x7'),'attributes':['id','name'],'include':[{'model':'FreshsalesField','as':_0xf15e('0x8'),'attributes':['id',_0xf15e('0x9'),'content',_0xf15e('0xa')],'include':[{'model':'Variable','as':_0xf15e('0xb'),'attributes':['id',_0xf15e('0x2')]}]},{'model':_0xf15e('0xc'),'as':_0xf15e('0xd'),'attributes':['id','type','content','key',_0xf15e('0xe'),_0xf15e('0xf'),'variableName'],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0xf15e('0x2')]}]}]}]},'log':_0xf15e('0x10')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36d3=['SalesforceField','Subjects','Variable','Descriptions','Fields','GetSalesforceAccount','../../client','getSalesforceAccounts','name','username','password','remoteUri','clientId','clientSecret','securityToken','serverUrl','type','SalesforceConfiguration','Configurations','moduleSearch','moduleCreate','ticketType','leadId','additionalSearchContact','additionalSearchLead'];(function(_0xa9eaa0,_0x4ba2b4){var _0x30897a=function(_0x2caa01){while(--_0x2caa01){_0xa9eaa0['push'](_0xa9eaa0['shift']());}};_0x30897a(++_0x4ba2b4);}(_0x36d3,0xb5));var _0x336d=function(_0x28942a,_0x454774){_0x28942a=_0x28942a-0x0;var _0x5f1b09=_0x36d3[_0x28942a];return _0x5f1b09;};'use strict';var client=require(_0x336d('0x0'));exports[_0x336d('0x1')]=function(){return function(_0x1d56a8){return client['Request']('GetSalesforceAccount',{'options':{'raw':![],'attributes':['id',_0x336d('0x2'),_0x336d('0x3'),_0x336d('0x4'),_0x336d('0x5'),_0x336d('0x6'),_0x336d('0x7'),_0x336d('0x8'),_0x336d('0x9'),_0x336d('0xa')],'include':[{'model':_0x336d('0xb'),'as':_0x336d('0xc'),'attributes':['id',_0x336d('0x2'),_0x336d('0xd'),_0x336d('0xe'),_0x336d('0xf'),_0x336d('0x10'),'additionalSearchAccount',_0x336d('0x11'),_0x336d('0x12')],'include':[{'model':_0x336d('0x13'),'as':_0x336d('0x14'),'include':[{'model':'Variable','as':_0x336d('0x15'),'attributes':['id',_0x336d('0x2')]}]},{'model':_0x336d('0x13'),'as':_0x336d('0x16'),'include':[{'model':_0x336d('0x15'),'as':_0x336d('0x15'),'attributes':['id',_0x336d('0x2')]}]},{'model':_0x336d('0x13'),'as':_0x336d('0x17'),'include':[{'model':_0x336d('0x15'),'as':_0x336d('0x15'),'attributes':['id',_0x336d('0x2')]}]}]}]},'log':_0x336d('0x18')});};};
\ No newline at end of file
+var _0x33d2=['ticketType','leadId','additionalSearchContact','SalesforceField','Variable','Descriptions','Fields','../../client','getSalesforceAccounts','GetSalesforceAccount','name','password','remoteUri','clientId','clientSecret','securityToken','serverUrl','type','SalesforceConfiguration','moduleCreate'];(function(_0x1e0b5e,_0x353205){var _0x3f7d59=function(_0x56ae8a){while(--_0x56ae8a){_0x1e0b5e['push'](_0x1e0b5e['shift']());}};_0x3f7d59(++_0x353205);}(_0x33d2,0x7f));var _0x233d=function(_0x4f3f71,_0x1e35ce){_0x4f3f71=_0x4f3f71-0x0;var _0x559c25=_0x33d2[_0x4f3f71];return _0x559c25;};'use strict';var client=require(_0x233d('0x0'));exports[_0x233d('0x1')]=function(){return function(_0x54d233){return client['Request'](_0x233d('0x2'),{'options':{'raw':![],'attributes':['id',_0x233d('0x3'),'username',_0x233d('0x4'),_0x233d('0x5'),_0x233d('0x6'),_0x233d('0x7'),_0x233d('0x8'),_0x233d('0x9'),_0x233d('0xa')],'include':[{'model':_0x233d('0xb'),'as':'Configurations','attributes':['id',_0x233d('0x3'),'moduleSearch',_0x233d('0xc'),_0x233d('0xd'),_0x233d('0xe'),'additionalSearchAccount',_0x233d('0xf'),'additionalSearchLead'],'include':[{'model':_0x233d('0x10'),'as':'Subjects','include':[{'model':_0x233d('0x11'),'as':_0x233d('0x11'),'attributes':['id',_0x233d('0x3')]}]},{'model':'SalesforceField','as':_0x233d('0x12'),'include':[{'model':_0x233d('0x11'),'as':'Variable','attributes':['id',_0x233d('0x3')]}]},{'model':_0x233d('0x10'),'as':_0x233d('0x13'),'include':[{'model':_0x233d('0x11'),'as':_0x233d('0x11'),'attributes':['id',_0x233d('0x3')]}]}]}]},'log':'GetSalesforceAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2675=['ServicenowField','type','content','Variable','Descriptions','keyType','variableName','Fields','idField','nameField','customField','GetServicenowkAccount','../../client','GetServicenowAccount','name','username','password','remoteUri','serverUrl','ServicenowConfiguration','Configurations'];(function(_0x410f57,_0x11d995){var _0x213525=function(_0x4a93c4){while(--_0x4a93c4){_0x410f57['push'](_0x410f57['shift']());}};_0x213525(++_0x11d995);}(_0x2675,0x75));var _0x5267=function(_0x355806,_0x352e7b){_0x355806=_0x355806-0x0;var _0x4d265d=_0x2675[_0x355806];return _0x4d265d;};'use strict';var client=require(_0x5267('0x0'));exports['getServicenowAccounts']=function(){return function(_0x53e71f){return client['Request'](_0x5267('0x1'),{'options':{'raw':![],'attributes':['id',_0x5267('0x2'),'description',_0x5267('0x3'),_0x5267('0x4'),'email',_0x5267('0x5'),_0x5267('0x6')],'include':[{'model':_0x5267('0x7'),'as':_0x5267('0x8'),'attributes':['id',_0x5267('0x2')],'include':[{'model':_0x5267('0x9'),'as':'Subjects','attributes':['id',_0x5267('0xa'),_0x5267('0xb'),'variableName'],'include':[{'model':_0x5267('0xc'),'as':'Variable','attributes':['id',_0x5267('0x2')]}]},{'model':_0x5267('0x9'),'as':_0x5267('0xd'),'attributes':['id','type',_0x5267('0xb'),'key',_0x5267('0xe'),'keyContent',_0x5267('0xf')],'include':[{'model':_0x5267('0xc'),'as':_0x5267('0xc'),'attributes':['id',_0x5267('0x2')]}]},{'model':_0x5267('0x9'),'as':_0x5267('0x10'),'attributes':['id',_0x5267('0xa'),_0x5267('0xb'),_0x5267('0x11'),_0x5267('0x12'),_0x5267('0x13'),_0x5267('0xf')],'include':[{'model':_0x5267('0xc'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x5267('0x14')});};};
\ No newline at end of file
+var _0x1967=['description','username','password','email','remoteUri','ServicenowConfiguration','Configurations','ServicenowField','Subjects','type','variableName','Variable','content','key','keyType','keyContent','Fields','idField','nameField','customField','GetServicenowkAccount','getServicenowAccounts','Request','GetServicenowAccount','name'];(function(_0x57b900,_0x537674){var _0x4fcf27=function(_0x4e6b71){while(--_0x4e6b71){_0x57b900['push'](_0x57b900['shift']());}};_0x4fcf27(++_0x537674);}(_0x1967,0x173));var _0x7196=function(_0x4d0598,_0x3aed26){_0x4d0598=_0x4d0598-0x0;var _0x28fe2c=_0x1967[_0x4d0598];return _0x28fe2c;};'use strict';var client=require('../../client');exports[_0x7196('0x0')]=function(){return function(_0xdb72bb){return client[_0x7196('0x1')](_0x7196('0x2'),{'options':{'raw':![],'attributes':['id',_0x7196('0x3'),_0x7196('0x4'),_0x7196('0x5'),_0x7196('0x6'),_0x7196('0x7'),_0x7196('0x8'),'serverUrl'],'include':[{'model':_0x7196('0x9'),'as':_0x7196('0xa'),'attributes':['id',_0x7196('0x3')],'include':[{'model':_0x7196('0xb'),'as':_0x7196('0xc'),'attributes':['id',_0x7196('0xd'),'content',_0x7196('0xe')],'include':[{'model':_0x7196('0xf'),'as':_0x7196('0xf'),'attributes':['id',_0x7196('0x3')]}]},{'model':_0x7196('0xb'),'as':'Descriptions','attributes':['id','type',_0x7196('0x10'),_0x7196('0x11'),_0x7196('0x12'),_0x7196('0x13'),_0x7196('0xe')],'include':[{'model':_0x7196('0xf'),'as':_0x7196('0xf'),'attributes':['id',_0x7196('0x3')]}]},{'model':_0x7196('0xb'),'as':_0x7196('0x14'),'attributes':['id',_0x7196('0xd'),'content',_0x7196('0x15'),_0x7196('0x16'),_0x7196('0x17'),_0x7196('0xe')],'include':[{'model':'Variable','as':_0x7196('0xf'),'attributes':['id','name']}]}]}]},'log':_0x7196('0x18')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['Configurations','SugarcrmField','Subjects','variableName','Variable','Descriptions','type','key','keyType','Fields','content','idField','customField','../../client','GetSugarcrmAccount','name','username','password','remoteUri','serverUrl','SugarcrmConfiguration'];(function(_0x516fa4,_0x3a79c9){var _0x42126a=function(_0x4f9b18){while(--_0x4f9b18){_0x516fa4['push'](_0x516fa4['shift']());}};_0x42126a(++_0x3a79c9);}(_0x0b0e,0x187));var _0xe0b0=function(_0x1928c9,_0x13a6d1){_0x1928c9=_0x1928c9-0x0;var _0x51b5fb=_0x0b0e[_0x1928c9];return _0x51b5fb;};'use strict';var client=require(_0xe0b0('0x0'));exports['getSugarcrmAccounts']=function(){return function(_0xc416e3){return client['Request'](_0xe0b0('0x1'),{'options':{'raw':![],'attributes':['id',_0xe0b0('0x2'),_0xe0b0('0x3'),_0xe0b0('0x4'),_0xe0b0('0x5'),_0xe0b0('0x6')],'include':[{'model':_0xe0b0('0x7'),'as':_0xe0b0('0x8'),'attributes':['id',_0xe0b0('0x2')],'include':[{'model':_0xe0b0('0x9'),'as':_0xe0b0('0xa'),'attributes':['id','type','content',_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id',_0xe0b0('0x2')]}]},{'model':'SugarcrmField','as':_0xe0b0('0xd'),'attributes':['id',_0xe0b0('0xe'),'content',_0xe0b0('0xf'),_0xe0b0('0x10'),'keyContent',_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id','name']}]},{'model':_0xe0b0('0x9'),'as':_0xe0b0('0x11'),'attributes':['id',_0xe0b0('0xe'),_0xe0b0('0x12'),_0xe0b0('0x13'),'nameField',_0xe0b0('0x14'),_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id',_0xe0b0('0x2')]}]}]}]},'log':'GetSugarcrmAccount'});};};
\ No newline at end of file
+var _0x0295=['remoteUri','serverUrl','SugarcrmConfiguration','Configurations','name','SugarcrmField','Subjects','Variable','Descriptions','content','key','keyType','variableName','Fields','customField','GetSugarcrmAccount','../../client','Request','username','password'];(function(_0x4d74fa,_0x439f20){var _0x4a3c07=function(_0x22064f){while(--_0x22064f){_0x4d74fa['push'](_0x4d74fa['shift']());}};_0x4a3c07(++_0x439f20);}(_0x0295,0x1f0));var _0x5029=function(_0x43b1f3,_0x3840cd){_0x43b1f3=_0x43b1f3-0x0;var _0x4bd021=_0x0295[_0x43b1f3];return _0x4bd021;};'use strict';var client=require(_0x5029('0x0'));exports['getSugarcrmAccounts']=function(){return function(_0x5e71d0){return client[_0x5029('0x1')]('GetSugarcrmAccount',{'options':{'raw':![],'attributes':['id','name',_0x5029('0x2'),_0x5029('0x3'),_0x5029('0x4'),_0x5029('0x5')],'include':[{'model':_0x5029('0x6'),'as':_0x5029('0x7'),'attributes':['id',_0x5029('0x8')],'include':[{'model':_0x5029('0x9'),'as':_0x5029('0xa'),'attributes':['id','type','content','variableName'],'include':[{'model':_0x5029('0xb'),'as':'Variable','attributes':['id',_0x5029('0x8')]}]},{'model':'SugarcrmField','as':_0x5029('0xc'),'attributes':['id','type',_0x5029('0xd'),_0x5029('0xe'),_0x5029('0xf'),'keyContent',_0x5029('0x10')],'include':[{'model':_0x5029('0xb'),'as':_0x5029('0xb'),'attributes':['id','name']}]},{'model':_0x5029('0x9'),'as':_0x5029('0x11'),'attributes':['id','type','content','idField','nameField',_0x5029('0x12'),_0x5029('0x10')],'include':[{'model':_0x5029('0xb'),'as':_0x5029('0xb'),'attributes':['id',_0x5029('0x8')]}]}]}]},'log':_0x5029('0x13')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ab7=['accessKey','remoteUri','serverUrl','VtigerConfiguration','Configurations','VtigerField','Subjects','type','content','variableName','Variable','Descriptions','key','keyType','Fields','nameField','customField','GetVtigerAccount','../../client','getVtigerAccounts','Request','name','description','username'];(function(_0xbad70b,_0x37c004){var _0x444ed8=function(_0x4d60e4){while(--_0x4d60e4){_0xbad70b['push'](_0xbad70b['shift']());}};_0x444ed8(++_0x37c004);}(_0x7ab7,0x8a));var _0x77ab=function(_0x4f4c8c,_0x38b487){_0x4f4c8c=_0x4f4c8c-0x0;var _0xb2d7a1=_0x7ab7[_0x4f4c8c];return _0xb2d7a1;};'use strict';var client=require(_0x77ab('0x0'));exports[_0x77ab('0x1')]=function(){return function(_0xed219d){return client[_0x77ab('0x2')]('GetVtigerAccount',{'options':{'raw':![],'attributes':['id',_0x77ab('0x3'),_0x77ab('0x4'),_0x77ab('0x5'),_0x77ab('0x6'),_0x77ab('0x7'),_0x77ab('0x8')],'include':[{'model':_0x77ab('0x9'),'as':_0x77ab('0xa'),'attributes':['id','name'],'include':[{'model':_0x77ab('0xb'),'as':_0x77ab('0xc'),'attributes':['id',_0x77ab('0xd'),_0x77ab('0xe'),_0x77ab('0xf')],'include':[{'model':_0x77ab('0x10'),'as':_0x77ab('0x10'),'attributes':['id',_0x77ab('0x3')]}]},{'model':_0x77ab('0xb'),'as':_0x77ab('0x11'),'attributes':['id',_0x77ab('0xd'),_0x77ab('0xe'),_0x77ab('0x12'),_0x77ab('0x13'),'keyContent',_0x77ab('0xf')],'include':[{'model':_0x77ab('0x10'),'as':_0x77ab('0x10'),'attributes':['id',_0x77ab('0x3')]}]},{'model':_0x77ab('0xb'),'as':_0x77ab('0x14'),'attributes':['id',_0x77ab('0xd'),_0x77ab('0xe'),'idField',_0x77ab('0x15'),_0x77ab('0x16'),_0x77ab('0xf')],'include':[{'model':_0x77ab('0x10'),'as':_0x77ab('0x10'),'attributes':['id',_0x77ab('0x3')]}]}]}]},'log':_0x77ab('0x17')});};};
\ No newline at end of file
+var _0x0327=['remoteUri','Configurations','VtigerField','Subjects','type','content','variableName','Variable','name','Descriptions','key','keyType','keyContent','idField','nameField','customField','getVtigerAccounts','GetVtigerAccount','description','username'];(function(_0x4cda47,_0x360f48){var _0x4326f7=function(_0x1b482b){while(--_0x1b482b){_0x4cda47['push'](_0x4cda47['shift']());}};_0x4326f7(++_0x360f48);}(_0x0327,0x178));var _0x7032=function(_0x228ac9,_0x42f065){_0x228ac9=_0x228ac9-0x0;var _0x69fe02=_0x0327[_0x228ac9];return _0x69fe02;};'use strict';var client=require('../../client');exports[_0x7032('0x0')]=function(){return function(_0x3b7938){return client['Request'](_0x7032('0x1'),{'options':{'raw':![],'attributes':['id','name',_0x7032('0x2'),_0x7032('0x3'),'accessKey',_0x7032('0x4'),'serverUrl'],'include':[{'model':'VtigerConfiguration','as':_0x7032('0x5'),'attributes':['id','name'],'include':[{'model':_0x7032('0x6'),'as':_0x7032('0x7'),'attributes':['id',_0x7032('0x8'),_0x7032('0x9'),_0x7032('0xa')],'include':[{'model':_0x7032('0xb'),'as':'Variable','attributes':['id',_0x7032('0xc')]}]},{'model':_0x7032('0x6'),'as':_0x7032('0xd'),'attributes':['id',_0x7032('0x8'),'content',_0x7032('0xe'),_0x7032('0xf'),_0x7032('0x10'),'variableName'],'include':[{'model':_0x7032('0xb'),'as':_0x7032('0xb'),'attributes':['id','name']}]},{'model':_0x7032('0x6'),'as':'Fields','attributes':['id','type',_0x7032('0x9'),_0x7032('0x11'),_0x7032('0x12'),_0x7032('0x13'),_0x7032('0xa')],'include':[{'model':_0x7032('0xb'),'as':'Variable','attributes':['id',_0x7032('0xc')]}]}]}]},'log':'GetVtigerAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b84=['password','remoteUri','authType','type','Configurations','Tag','Subjects','variableName','Variable','Descriptions','key','keyType','keyContent','content','nameField','customField','GetZendeskAccount','../../client','getZendeskAccounts','Request','name'];(function(_0x4ce996,_0x515800){var _0x19f21b=function(_0x26e2ca){while(--_0x26e2ca){_0x4ce996['push'](_0x4ce996['shift']());}};_0x19f21b(++_0x515800);}(_0x3b84,0x1f4));var _0x43b8=function(_0x3a1b53,_0xfedec5){_0x3a1b53=_0x3a1b53-0x0;var _0x1ded60=_0x3b84[_0x3a1b53];return _0x1ded60;};'use strict';var client=require(_0x43b8('0x0'));exports[_0x43b8('0x1')]=function(){return function(_0x2e35ba){return client[_0x43b8('0x2')]('GetZendeskAccount',{'options':{'raw':![],'attributes':['id',_0x43b8('0x3'),'username',_0x43b8('0x4'),'token',_0x43b8('0x5'),_0x43b8('0x6'),'serverUrl',_0x43b8('0x7')],'include':[{'model':'ZendeskConfiguration','as':_0x43b8('0x8'),'attributes':['id','name'],'include':[{'model':_0x43b8('0x9'),'attributes':['id',_0x43b8('0x3')]},{'model':'ZendeskField','as':_0x43b8('0xa'),'attributes':['id',_0x43b8('0x7'),'content',_0x43b8('0xb')],'include':[{'model':_0x43b8('0xc'),'as':_0x43b8('0xc'),'attributes':['id','name']}]},{'model':'ZendeskField','as':_0x43b8('0xd'),'attributes':['id',_0x43b8('0x7'),'content',_0x43b8('0xe'),_0x43b8('0xf'),_0x43b8('0x10'),_0x43b8('0xb')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x43b8('0x3')]}]},{'model':'ZendeskField','as':'Fields','attributes':['id',_0x43b8('0x7'),_0x43b8('0x11'),'idField',_0x43b8('0x12'),_0x43b8('0x13'),_0x43b8('0xb')],'include':[{'model':_0x43b8('0xc'),'as':_0x43b8('0xc'),'attributes':['id',_0x43b8('0x3')]}]}]}]},'log':_0x43b8('0x14')});};};
\ No newline at end of file
+var _0x0425=['Variable','Descriptions','type','Fields','idField','nameField','customField','../../client','Request','GetZendeskAccount','name','username','token','remoteUri','authType','ZendeskConfiguration','Tag','ZendeskField','Subjects','content','variableName'];(function(_0xbe5bd0,_0x45ae4c){var _0x343316=function(_0x202115){while(--_0x202115){_0xbe5bd0['push'](_0xbe5bd0['shift']());}};_0x343316(++_0x45ae4c);}(_0x0425,0x1ab));var _0x5042=function(_0x30fc83,_0x1b5700){_0x30fc83=_0x30fc83-0x0;var _0x23e061=_0x0425[_0x30fc83];return _0x23e061;};'use strict';var client=require(_0x5042('0x0'));exports['getZendeskAccounts']=function(){return function(_0x52f43c){return client[_0x5042('0x1')](_0x5042('0x2'),{'options':{'raw':![],'attributes':['id',_0x5042('0x3'),_0x5042('0x4'),'password',_0x5042('0x5'),_0x5042('0x6'),_0x5042('0x7'),'serverUrl','type'],'include':[{'model':_0x5042('0x8'),'as':'Configurations','attributes':['id',_0x5042('0x3')],'include':[{'model':_0x5042('0x9'),'attributes':['id',_0x5042('0x3')]},{'model':_0x5042('0xa'),'as':_0x5042('0xb'),'attributes':['id','type',_0x5042('0xc'),_0x5042('0xd')],'include':[{'model':'Variable','as':_0x5042('0xe'),'attributes':['id','name']}]},{'model':_0x5042('0xa'),'as':_0x5042('0xf'),'attributes':['id',_0x5042('0x10'),'content','key','keyType','keyContent',_0x5042('0xd')],'include':[{'model':_0x5042('0xe'),'as':_0x5042('0xe'),'attributes':['id',_0x5042('0x3')]}]},{'model':_0x5042('0xa'),'as':_0x5042('0x11'),'attributes':['id',_0x5042('0x10'),_0x5042('0xc'),_0x5042('0x12'),_0x5042('0x13'),_0x5042('0x14'),_0x5042('0xd')],'include':[{'model':_0x5042('0xe'),'as':_0x5042('0xe'),'attributes':['id','name']}]}]}]},'log':_0x5042('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9e3=['Subjects','type','content','variableName','Variable','keyType','keyContent','Fields','nameField','../../client','getZohoAccounts','Request','GetZohoAccount','name','description','host','zone','clientId','serverUrl','refreshToken','ZohoConfiguration','Configurations','moduleCreate','ZohoField'];(function(_0x1aa39b,_0x2f197b){var _0x1e4a9e=function(_0x5a61bd){while(--_0x5a61bd){_0x1aa39b['push'](_0x1aa39b['shift']());}};_0x1e4a9e(++_0x2f197b);}(_0xb9e3,0x81));var _0x3b9e=function(_0x3cc9d9,_0x69ed38){_0x3cc9d9=_0x3cc9d9-0x0;var _0x1a425d=_0xb9e3[_0x3cc9d9];return _0x1a425d;};'use strict';var client=require(_0x3b9e('0x0'));exports[_0x3b9e('0x1')]=function(){return function(_0x5be8eb){return client[_0x3b9e('0x2')](_0x3b9e('0x3'),{'options':{'raw':![],'attributes':['id',_0x3b9e('0x4'),_0x3b9e('0x5'),_0x3b9e('0x6'),_0x3b9e('0x7'),_0x3b9e('0x8'),'clientSecret',_0x3b9e('0x9'),'code',_0x3b9e('0xa')],'include':[{'model':_0x3b9e('0xb'),'as':_0x3b9e('0xc'),'attributes':['id','name',_0x3b9e('0xd'),'moduleSearch',_0x3b9e('0x5')],'include':[{'model':_0x3b9e('0xe'),'as':_0x3b9e('0xf'),'attributes':['id',_0x3b9e('0x10'),_0x3b9e('0x11'),_0x3b9e('0x12')],'include':[{'model':_0x3b9e('0x13'),'as':'Variable','attributes':['id',_0x3b9e('0x4')]}]},{'model':_0x3b9e('0xe'),'as':'Descriptions','attributes':['id',_0x3b9e('0x10'),_0x3b9e('0x11'),'key',_0x3b9e('0x14'),_0x3b9e('0x15'),_0x3b9e('0x12')],'include':[{'model':_0x3b9e('0x13'),'as':_0x3b9e('0x13'),'attributes':['id',_0x3b9e('0x4')]}]},{'model':_0x3b9e('0xe'),'as':_0x3b9e('0x16'),'attributes':['id',_0x3b9e('0x10'),_0x3b9e('0x11'),'idField',_0x3b9e('0x17'),'customField','variableName'],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x3b9e('0x4')]}]}]}]},'log':_0x3b9e('0x3')});};};
\ No newline at end of file
+var _0xd99b=['Variable','ZohoField','Descriptions','key','keyType','Fields','idField','nameField','customField','variableName','../../client','Request','GetZohoAccount','name','description','host','zone','clientId','code','refreshToken','ZohoConfiguration','Configurations','moduleCreate','Subjects','type','content'];(function(_0x3ead04,_0x39bccf){var _0x142c29=function(_0x394f0a){while(--_0x394f0a){_0x3ead04['push'](_0x3ead04['shift']());}};_0x142c29(++_0x39bccf);}(_0xd99b,0x1c4));var _0xbd99=function(_0x3475f4,_0x7b1a5c){_0x3475f4=_0x3475f4-0x0;var _0x5521e0=_0xd99b[_0x3475f4];return _0x5521e0;};'use strict';var client=require(_0xbd99('0x0'));exports['getZohoAccounts']=function(){return function(_0x509175){return client[_0xbd99('0x1')](_0xbd99('0x2'),{'options':{'raw':![],'attributes':['id',_0xbd99('0x3'),_0xbd99('0x4'),_0xbd99('0x5'),_0xbd99('0x6'),_0xbd99('0x7'),'clientSecret','serverUrl',_0xbd99('0x8'),_0xbd99('0x9')],'include':[{'model':_0xbd99('0xa'),'as':_0xbd99('0xb'),'attributes':['id',_0xbd99('0x3'),_0xbd99('0xc'),'moduleSearch','description'],'include':[{'model':'ZohoField','as':_0xbd99('0xd'),'attributes':['id',_0xbd99('0xe'),_0xbd99('0xf'),'variableName'],'include':[{'model':_0xbd99('0x10'),'as':_0xbd99('0x10'),'attributes':['id',_0xbd99('0x3')]}]},{'model':_0xbd99('0x11'),'as':_0xbd99('0x12'),'attributes':['id',_0xbd99('0xe'),_0xbd99('0xf'),_0xbd99('0x13'),_0xbd99('0x14'),'keyContent','variableName'],'include':[{'model':_0xbd99('0x10'),'as':_0xbd99('0x10'),'attributes':['id',_0xbd99('0x3')]}]},{'model':_0xbd99('0x11'),'as':_0xbd99('0x15'),'attributes':['id',_0xbd99('0xe'),_0xbd99('0xf'),_0xbd99('0x16'),_0xbd99('0x17'),_0xbd99('0x18'),_0xbd99('0x19')],'include':[{'model':_0xbd99('0x10'),'as':_0xbd99('0x10'),'attributes':['id',_0xbd99('0x3')]}]}]}]},'log':_0xbd99('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a89=['seconds','inbound','toNumber','uniqueid','voiceDialReport','voice','membername','starttime','endtime','dialstring','accountcode','CreateMemberReport','moment','lodash','util','../client','voiceQueueReport','queuecallercompleteAt','queuecallerexitAt','Request','lastAssignedTo','isNil','interface','format','SIP/%s','TALKING','queuecallerleaveAt','diff'];(function(_0x1cb73e,_0xce62f4){var _0x5c1e4c=function(_0x5cf8e3){while(--_0x5cf8e3){_0x1cb73e['push'](_0x1cb73e['shift']());}};_0x5c1e4c(++_0xce62f4);}(_0x9a89,0x194));var _0x99a8=function(_0xad6258,_0x1e6c73){_0xad6258=_0xad6258-0x0;var _0x5f4e00=_0x9a89[_0xad6258];return _0x5f4e00;};'use strict';var moment=require(_0x99a8('0x0'));var _=require(_0x99a8('0x1'));var util=require(_0x99a8('0x2'));var client=require(_0x99a8('0x3'));exports[_0x99a8('0x4')]=function(_0x5ee854){var _0x1259bd=_0x5ee854[_0x99a8('0x5')]||_0x5ee854[_0x99a8('0x6')];return client[_0x99a8('0x7')]('CreateMemberReport',{'body':{'channel':'voice','membername':_0x5ee854[_0x99a8('0x8')],'interface':_[_0x99a8('0x9')](_0x5ee854[_0x99a8('0xa')])?util[_0x99a8('0xb')](_0x99a8('0xc'),_0x5ee854[_0x99a8('0x8')]):_0x5ee854[_0x99a8('0xa')],'type':_0x99a8('0xd'),'enterAt':_0x5ee854[_0x99a8('0xe')],'exitAt':_0x1259bd,'duration':moment(_0x1259bd)[_0x99a8('0xf')](_0x5ee854['queuecallerleaveAt'],_0x99a8('0x10')),'data1':_0x99a8('0x11'),'data2':_0x5ee854['calleridnum'],'data3':_0x5ee854['exten'],'data4':null,'data5':_0x5ee854['queue'],'role':'agent','internal':_0x5ee854['accountcode']?_[_0x99a8('0x12')](_0x5ee854['accountcode']):undefined,'uniqueid':_0x5ee854[_0x99a8('0x13')]},'log':'CreateMemberReport'});};exports[_0x99a8('0x14')]=function(_0x76cee4){return client[_0x99a8('0x7')]('CreateMemberReport',{'body':{'channel':_0x99a8('0x15'),'membername':_0x76cee4[_0x99a8('0x16')],'interface':_0x76cee4['interface'],'type':_0x99a8('0xd'),'enterAt':_0x76cee4[_0x99a8('0x17')],'exitAt':_0x76cee4['endtime'],'duration':moment(_0x76cee4[_0x99a8('0x18')])[_0x99a8('0xf')](_0x76cee4[_0x99a8('0x17')],_0x99a8('0x10'))>=0x0?moment(_0x76cee4[_0x99a8('0x18')])[_0x99a8('0xf')](_0x76cee4[_0x99a8('0x17')],_0x99a8('0x10')):null,'data1':'outbound','data2':_0x76cee4['accountcode'],'data3':_0x76cee4['exten'],'data4':_0x76cee4[_0x99a8('0x19')]||null,'role':'agent','internal':_0x76cee4[_0x99a8('0x1a')]?_[_0x99a8('0x12')](_0x76cee4[_0x99a8('0x1a')]):undefined,'uniqueid':_0x76cee4['uniqueid']},'log':_0x99a8('0x1b')});};
\ No newline at end of file
+var _0x6ee2=['membername','starttime','endtime','seconds','outbound','exten','dialstring','moment','lodash','util','../client','voiceQueueReport','queuecallerexitAt','CreateMemberReport','voice','lastAssignedTo','interface','SIP/%s','TALKING','queuecallerleaveAt','diff','inbound','calleridnum','queue','agent','accountcode','toNumber','uniqueid','voiceDialReport','Request'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6ee2,0x18d));var _0x26ee=function(_0x1e3c16,_0x372caa){_0x1e3c16=_0x1e3c16-0x0;var _0x47a0c9=_0x6ee2[_0x1e3c16];return _0x47a0c9;};'use strict';var moment=require(_0x26ee('0x0'));var _=require(_0x26ee('0x1'));var util=require(_0x26ee('0x2'));var client=require(_0x26ee('0x3'));exports[_0x26ee('0x4')]=function(_0x493778){var _0x2ac6f1=_0x493778['queuecallercompleteAt']||_0x493778[_0x26ee('0x5')];return client['Request'](_0x26ee('0x6'),{'body':{'channel':_0x26ee('0x7'),'membername':_0x493778[_0x26ee('0x8')],'interface':_['isNil'](_0x493778[_0x26ee('0x9')])?util['format'](_0x26ee('0xa'),_0x493778[_0x26ee('0x8')]):_0x493778['interface'],'type':_0x26ee('0xb'),'enterAt':_0x493778[_0x26ee('0xc')],'exitAt':_0x2ac6f1,'duration':moment(_0x2ac6f1)[_0x26ee('0xd')](_0x493778['queuecallerleaveAt'],'seconds'),'data1':_0x26ee('0xe'),'data2':_0x493778[_0x26ee('0xf')],'data3':_0x493778['exten'],'data4':null,'data5':_0x493778[_0x26ee('0x10')],'role':_0x26ee('0x11'),'internal':_0x493778[_0x26ee('0x12')]?_[_0x26ee('0x13')](_0x493778['accountcode']):undefined,'uniqueid':_0x493778[_0x26ee('0x14')]},'log':_0x26ee('0x6')});};exports[_0x26ee('0x15')]=function(_0x1cc6e1){return client[_0x26ee('0x16')](_0x26ee('0x6'),{'body':{'channel':_0x26ee('0x7'),'membername':_0x1cc6e1[_0x26ee('0x17')],'interface':_0x1cc6e1['interface'],'type':_0x26ee('0xb'),'enterAt':_0x1cc6e1[_0x26ee('0x18')],'exitAt':_0x1cc6e1[_0x26ee('0x19')],'duration':moment(_0x1cc6e1['endtime'])[_0x26ee('0xd')](_0x1cc6e1[_0x26ee('0x18')],_0x26ee('0x1a'))>=0x0?moment(_0x1cc6e1[_0x26ee('0x19')])[_0x26ee('0xd')](_0x1cc6e1[_0x26ee('0x18')],_0x26ee('0x1a')):null,'data1':_0x26ee('0x1b'),'data2':_0x1cc6e1[_0x26ee('0x12')],'data3':_0x1cc6e1[_0x26ee('0x1c')],'data4':_0x1cc6e1[_0x26ee('0x1d')]||null,'role':_0x26ee('0x11'),'internal':_0x1cc6e1[_0x26ee('0x12')]?_[_0x26ee('0x13')](_0x1cc6e1['accountcode']):undefined,'uniqueid':_0x1cc6e1['uniqueid']},'log':_0x26ee('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63eb=['../client','getSettings','Request','ShowSetting','stopRecordingOnTransfer','GetSettings'];(function(_0x9f27a3,_0x3716d9){var _0x1e712e=function(_0x5cb75a){while(--_0x5cb75a){_0x9f27a3['push'](_0x9f27a3['shift']());}};_0x1e712e(++_0x3716d9);}(_0x63eb,0x90));var _0xb63e=function(_0x1cf601,_0x2f6a7e){_0x1cf601=_0x1cf601-0x0;var _0x2bc79f=_0x63eb[_0x1cf601];return _0x2bc79f;};'use strict';var client=require(_0xb63e('0x0'));exports[_0xb63e('0x1')]=function(){return client[_0xb63e('0x2')](_0xb63e('0x3'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0xb63e('0x4')]},'log':_0xb63e('0x5')});};
\ No newline at end of file
+var _0x0d77=['getSettings','Request','stopRecordingOnTransfer','GetSettings','../client'];(function(_0x5cafbf,_0x213a21){var _0x57533e=function(_0x4ce439){while(--_0x4ce439){_0x5cafbf['push'](_0x5cafbf['shift']());}};_0x57533e(++_0x213a21);}(_0x0d77,0x8b));var _0x70d7=function(_0x54a6df,_0xdba0dd){_0x54a6df=_0x54a6df-0x0;var _0x1e5e19=_0x0d77[_0x54a6df];return _0x1e5e19;};'use strict';var client=require(_0x70d7('0x0'));exports[_0x70d7('0x1')]=function(){return client[_0x70d7('0x2')]('ShowSetting',{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x70d7('0x3')]},'log':_0x70d7('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f88=['html','../client','getTemplates','GetTemplate','name'];(function(_0x4353d,_0x30f5ca){var _0x2f22c6=function(_0x728b5d){while(--_0x728b5d){_0x4353d['push'](_0x4353d['shift']());}};_0x2f22c6(++_0x30f5ca);}(_0x4f88,0x173));var _0x84f8=function(_0x2db12b,_0x30ab1d){_0x2db12b=_0x2db12b-0x0;var _0x20990b=_0x4f88[_0x2db12b];return _0x20990b;};'use strict';var client=require(_0x84f8('0x0'));exports[_0x84f8('0x1')]=function(_0x42eab2){return function(_0x4383e2){return client['Request'](_0x84f8('0x2'),{'options':{'raw':!![],'attributes':['id',_0x84f8('0x3'),_0x84f8('0x4')]},'log':_0x84f8('0x2')});};};
\ No newline at end of file
+var _0x6257=['../client','GetTemplate','name','html'];(function(_0xd0c043,_0x38d6df){var _0x532dd4=function(_0x53e7fc){while(--_0x53e7fc){_0xd0c043['push'](_0xd0c043['shift']());}};_0x532dd4(++_0x38d6df);}(_0x6257,0x1d4));var _0x7625=function(_0x3bff6d,_0x53ecee){_0x3bff6d=_0x3bff6d-0x0;var _0xdd8a9b=_0x6257[_0x3bff6d];return _0xdd8a9b;};'use strict';var client=require(_0x7625('0x0'));exports['getTemplates']=function(_0x46be68){return function(_0x574e72){return client['Request'](_0x7625('0x1'),{'options':{'raw':!![],'attributes':['id',_0x7625('0x2'),_0x7625('0x3')]},'log':_0x7625('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6875=['name','channel','Condition','AllConditions','operator','value','AnyConditions','field','Action','action','data1','data2','data3','data4','data7','../client','getTriggers','Request','GetTrigger'];(function(_0x10352c,_0xe2452e){var _0x4e5d59=function(_0x2476eb){while(--_0x2476eb){_0x10352c['push'](_0x10352c['shift']());}};_0x4e5d59(++_0xe2452e);}(_0x6875,0x94));var _0x5687=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x6875[_0x2f5ac5];return _0x37c9a8;};'use strict';var client=require(_0x5687('0x0'));exports[_0x5687('0x1')]=function(_0x2a46d9){return function(_0x6f0657){return client[_0x5687('0x2')](_0x5687('0x3'),{'options':{'raw':![],'attributes':['id',_0x5687('0x4'),_0x5687('0x5'),'status'],'include':[{'model':_0x5687('0x6'),'as':_0x5687('0x7'),'attributes':['id','field',_0x5687('0x8'),_0x5687('0x9')]},{'model':_0x5687('0x6'),'as':_0x5687('0xa'),'attributes':['id',_0x5687('0xb'),'operator',_0x5687('0x9')]},{'model':_0x5687('0xc'),'as':'Actions','attributes':['id',_0x5687('0xd'),_0x5687('0xe'),_0x5687('0xf'),_0x5687('0x10'),_0x5687('0x11'),'data5','data6',_0x5687('0x12')]}]},'log':_0x5687('0x3')});};};
\ No newline at end of file
+var _0x5116=['action','data1','data4','data6','../client','getTriggers','Request','GetTrigger','channel','Condition','AllConditions','operator','value','AnyConditions','Action','Actions'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x5116,0x74));var _0x6511=function(_0x32ead4,_0x182044){_0x32ead4=_0x32ead4-0x0;var _0x306d36=_0x5116[_0x32ead4];return _0x306d36;};'use strict';var client=require(_0x6511('0x0'));exports[_0x6511('0x1')]=function(_0x56d1bd){return function(_0x2f6134){return client[_0x6511('0x2')](_0x6511('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x6511('0x4'),'status'],'include':[{'model':_0x6511('0x5'),'as':_0x6511('0x6'),'attributes':['id','field',_0x6511('0x7'),_0x6511('0x8')]},{'model':_0x6511('0x5'),'as':_0x6511('0x9'),'attributes':['id','field',_0x6511('0x7'),_0x6511('0x8')]},{'model':_0x6511('0xa'),'as':_0x6511('0xb'),'attributes':['id',_0x6511('0xc'),_0x6511('0xd'),'data2','data3',_0x6511('0xe'),'data5',_0x6511('0xf'),'data7']}]},'log':'GetTrigger'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c6d=['GetTrunk','name','registry','defaultuser','../client','Request'];(function(_0x1a4c3a,_0x41865d){var _0x26f4ee=function(_0x2efe7b){while(--_0x2efe7b){_0x1a4c3a['push'](_0x1a4c3a['shift']());}};_0x26f4ee(++_0x41865d);}(_0x3c6d,0x190));var _0xd3c6=function(_0x1f0326,_0x591482){_0x1f0326=_0x1f0326-0x0;var _0x142968=_0x3c6d[_0x1f0326];return _0x142968;};'use strict';var client=require(_0xd3c6('0x0'));exports['getTrunks']=function(_0x520c9a){return function(_0x22892a){return client[_0xd3c6('0x1')](_0xd3c6('0x2'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0xd3c6('0x3'),_0xd3c6('0x4'),_0xd3c6('0x5')]},'log':_0xd3c6('0x2')});};};
\ No newline at end of file
+var _0x867f=['GetTrunk','name','../client','getTrunks','Request'];(function(_0x312837,_0x198d0a){var _0x348a44=function(_0x138141){while(--_0x138141){_0x312837['push'](_0x312837['shift']());}};_0x348a44(++_0x198d0a);}(_0x867f,0x7f));var _0xf867=function(_0x1417c6,_0x194309){_0x1417c6=_0x1417c6-0x0;var _0x44db97=_0x867f[_0x1417c6];return _0x44db97;};'use strict';var client=require(_0xf867('0x0'));exports[_0xf867('0x1')]=function(_0x83d97c){return function(_0xde6233){return client[_0xf867('0x2')](_0xf867('0x3'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0xf867('0x4'),'registry','defaultuser']},'log':'GetTrunk'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['getAgents','Request','name','email','accountcode','fullname','lastLoginAt','lastPauseAt','interface','getTelephones','GetUser','telephone','savePause','PauseUser','saveUnpause','getAgent','agent','online','pauseType','../client'];(function(_0x598ed8,_0x4c7f61){var _0x38ac06=function(_0x90c685){while(--_0x90c685){_0x598ed8['push'](_0x598ed8['shift']());}};_0x38ac06(++_0x4c7f61);}(_0x70e0,0x17b));var _0x070e=function(_0x1f841d,_0x2bf4a6){_0x1f841d=_0x1f841d-0x0;var _0x32a62e=_0x70e0[_0x1f841d];return _0x32a62e;};'use strict';var client=require(_0x070e('0x0'));exports[_0x070e('0x1')]=function(){return function(){return client[_0x070e('0x2')]('GetUser',{'options':{'raw':![],'where':{'role':'agent'},'attributes':['id',_0x070e('0x3'),_0x070e('0x4'),_0x070e('0x5'),_0x070e('0x6'),'online',_0x070e('0x7'),'pauseType',_0x070e('0x8'),'voicePause','phone','mobile',_0x070e('0x9')]},'log':_0x070e('0x1')});};};exports[_0x070e('0xa')]=function(){return function(){return client[_0x070e('0x2')](_0x070e('0xb'),{'options':{'raw':!![],'where':{'role':_0x070e('0xc')},'attributes':['id',_0x070e('0x3'),'accountcode','internal']},'log':_0x070e('0xa')});};};exports[_0x070e('0xd')]=function(_0x12bb37,_0xb8d819,_0xa927a2){return client[_0x070e('0x2')](_0x070e('0xe'),{'body':{'type':_0xb8d819,'uniqueid':_0xa927a2},'options':{'where':{'id':_0x12bb37['id']}},'log':_0x070e('0xd')});};exports[_0x070e('0xf')]=function(_0x5bf079){return client[_0x070e('0x2')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x5bf079['id']}},'log':'savePause'});};exports[_0x070e('0x10')]=function(_0x56c7ba){return client['Request']('ShowUser',{'options':{'raw':![],'where':{'role':_0x070e('0x11'),'id':_0x56c7ba},'attributes':['id',_0x070e('0x3'),'email','accountcode',_0x070e('0x6'),_0x070e('0x12'),_0x070e('0x7'),_0x070e('0x13'),'lastPauseAt','voicePause',_0x070e('0x9')]},'log':_0x070e('0x10')});};
\ No newline at end of file
+var _0x9c44=['online','pauseType','Request','GetUser','agent','name','email','accountcode','lastLoginAt','lastPauseAt','voicePause','phone','mobile','interface','getTelephones','telephone','internal','PauseUser','savePause','getAgent','ShowUser','fullname'];(function(_0x12443a,_0x55b9ba){var _0x5dda77=function(_0x3f6206){while(--_0x3f6206){_0x12443a['push'](_0x12443a['shift']());}};_0x5dda77(++_0x55b9ba);}(_0x9c44,0x178));var _0x49c4=function(_0x45d55e,_0x2fede3){_0x45d55e=_0x45d55e-0x0;var _0x29812a=_0x9c44[_0x45d55e];return _0x29812a;};'use strict';var client=require('../client');exports['getAgents']=function(){return function(){return client[_0x49c4('0x0')](_0x49c4('0x1'),{'options':{'raw':![],'where':{'role':_0x49c4('0x2')},'attributes':['id',_0x49c4('0x3'),_0x49c4('0x4'),_0x49c4('0x5'),'fullname','online',_0x49c4('0x6'),'pauseType',_0x49c4('0x7'),_0x49c4('0x8'),_0x49c4('0x9'),_0x49c4('0xa'),_0x49c4('0xb')]},'log':'getAgents'});};};exports[_0x49c4('0xc')]=function(){return function(){return client[_0x49c4('0x0')](_0x49c4('0x1'),{'options':{'raw':!![],'where':{'role':_0x49c4('0xd')},'attributes':['id','name','accountcode',_0x49c4('0xe')]},'log':_0x49c4('0xc')});};};exports['savePause']=function(_0xb611a1,_0x459d09,_0x4adb3c){return client['Request'](_0x49c4('0xf'),{'body':{'type':_0x459d09,'uniqueid':_0x4adb3c},'options':{'where':{'id':_0xb611a1['id']}},'log':_0x49c4('0x10')});};exports['saveUnpause']=function(_0x7df3a9){return client[_0x49c4('0x0')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x7df3a9['id']}},'log':_0x49c4('0x10')});};exports[_0x49c4('0x11')]=function(_0x21f15a){return client[_0x49c4('0x0')](_0x49c4('0x12'),{'options':{'raw':![],'where':{'role':_0x49c4('0x2'),'id':_0x21f15a},'attributes':['id',_0x49c4('0x3'),_0x49c4('0x4'),'accountcode',_0x49c4('0x13'),_0x49c4('0x14'),_0x49c4('0x6'),_0x49c4('0x15'),_0x49c4('0x7'),'voicePause',_0x49c4('0xb')]},'log':_0x49c4('0x11')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x878c=['Request','CreateVoiceAgentReport','update','UpdateVoiceAgentReport','../client'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x878c,0x180));var _0xc878=function(_0x534e1e,_0x222ed5){_0x534e1e=_0x534e1e-0x0;var _0x4d924a=_0x878c[_0x534e1e];return _0x4d924a;};'use strict';var client=require(_0xc878('0x0'));exports['create']=function(_0x5c9398){return client[_0xc878('0x1')]('CreateVoiceAgentReport',{'body':_0x5c9398,'log':_0xc878('0x2')});};exports[_0xc878('0x3')]=function(_0x529521,_0x3bf133,_0xdca85e){return client[_0xc878('0x1')](_0xc878('0x4'),{'body':_0x529521,'options':{'where':{'uniqueid':_0x3bf133,'interface':_0xdca85e,'agentcomplete':!![]}},'log':_0xc878('0x4')});};
\ No newline at end of file
+var _0xb875=['Request','CreateVoiceAgentReport','create'];(function(_0x42dc18,_0x155343){var _0x86b51a=function(_0x289ebe){while(--_0x289ebe){_0x42dc18['push'](_0x42dc18['shift']());}};_0x86b51a(++_0x155343);}(_0xb875,0x11f));var _0x5b87=function(_0x280875,_0x137bcb){_0x280875=_0x280875-0x0;var _0x74acfe=_0xb875[_0x280875];return _0x74acfe;};'use strict';var client=require('../client');exports[_0x5b87('0x0')]=function(_0x2cd9cc){return client[_0x5b87('0x1')](_0x5b87('0x2'),{'body':_0x2cd9cc,'log':_0x5b87('0x2')});};exports['update']=function(_0x198236,_0x48aa6b,_0x1e8f21){return client['Request']('UpdateVoiceAgentReport',{'body':_0x198236,'options':{'where':{'uniqueid':_0x48aa6b,'interface':_0x1e8f21,'agentcomplete':!![]}},'log':'UpdateVoiceAgentReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd166=['startOf','day','format','YYYY-MM-DD\x20HH:mm:ss','endOf','type','disposition','duration','GetVoiceCallReports','util','../client','create','Request','CreateVoiceCallReport','merge','calleridnum','context','callerid','GetVoiceCallReport','outbound'];(function(_0x2ce6ab,_0x4ef47d){var _0x197a53=function(_0x482ea1){while(--_0x482ea1){_0x2ce6ab['push'](_0x2ce6ab['shift']());}};_0x197a53(++_0x4ef47d);}(_0xd166,0x149));var _0x6d16=function(_0x535814,_0x5d189a){_0x535814=_0x535814-0x0;var _0x2de63b=_0xd166[_0x535814];return _0x2de63b;};'use strict';var moment=require('moment');var util=require(_0x6d16('0x0'));var _=require('lodash');var client=require(_0x6d16('0x1'));exports[_0x6d16('0x2')]=function(_0x27270c){return client[_0x6d16('0x3')](_0x6d16('0x4'),{'body':_[_0x6d16('0x5')](_0x27270c,{'source':_0x27270c[_0x6d16('0x6')],'destinationcontext':_0x27270c[_0x6d16('0x7')],'callerid':_0x27270c[_0x6d16('0x8')],'amaflags':'DOCUMENTATION'}),'log':_0x6d16('0x4')});};exports['getVoiceCallReports']=function(){return function(){return client[_0x6d16('0x3')](_0x6d16('0x9'),{'options':{'where':{'type':[_0x6d16('0xa')],'createdAt':{'$between':[moment()[_0x6d16('0xb')](_0x6d16('0xc'))[_0x6d16('0xd')](_0x6d16('0xe')),moment()[_0x6d16('0xf')](_0x6d16('0xc'))['format'](_0x6d16('0xe'))]}},'attributes':[_0x6d16('0x10'),_0x6d16('0x11'),_0x6d16('0x12'),'billableseconds']},'log':_0x6d16('0x13')});};};
\ No newline at end of file
+var _0xd1df=['YYYY-MM-DD\x20HH:mm:ss','type','duration','billableseconds','GetVoiceCallReports','moment','lodash','../client','create','merge','calleridnum','context','callerid','DOCUMENTATION','CreateVoiceCallReport','getVoiceCallReports','GetVoiceCallReport','outbound','startOf','day','format'];(function(_0x168888,_0x1f8123){var _0x442a72=function(_0x247b8b){while(--_0x247b8b){_0x168888['push'](_0x168888['shift']());}};_0x442a72(++_0x1f8123);}(_0xd1df,0x1be));var _0xfd1d=function(_0x23daa4,_0xfc0cb){_0x23daa4=_0x23daa4-0x0;var _0x50da32=_0xd1df[_0x23daa4];return _0x50da32;};'use strict';var moment=require(_0xfd1d('0x0'));var util=require('util');var _=require(_0xfd1d('0x1'));var client=require(_0xfd1d('0x2'));exports[_0xfd1d('0x3')]=function(_0x3ff671){return client['Request']('CreateVoiceCallReport',{'body':_[_0xfd1d('0x4')](_0x3ff671,{'source':_0x3ff671[_0xfd1d('0x5')],'destinationcontext':_0x3ff671[_0xfd1d('0x6')],'callerid':_0x3ff671[_0xfd1d('0x7')],'amaflags':_0xfd1d('0x8')}),'log':_0xfd1d('0x9')});};exports[_0xfd1d('0xa')]=function(){return function(){return client['Request'](_0xfd1d('0xb'),{'options':{'where':{'type':[_0xfd1d('0xc')],'createdAt':{'$between':[moment()[_0xfd1d('0xd')]('day')['format']('YYYY-MM-DD\x20HH:mm:ss'),moment()['endOf'](_0xfd1d('0xe'))[_0xfd1d('0xf')](_0xfd1d('0x10'))]}},'attributes':[_0xfd1d('0x11'),'disposition',_0xfd1d('0x12'),_0xfd1d('0x13')]},'log':_0xfd1d('0x14')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x075c=['../client','create','CreateVoiceDialReport'];(function(_0x3a335a,_0x401d39){var _0x512716=function(_0x31f358){while(--_0x31f358){_0x3a335a['push'](_0x3a335a['shift']());}};_0x512716(++_0x401d39);}(_0x075c,0xc3));var _0xc075=function(_0x39e481,_0xb5d2f1){_0x39e481=_0x39e481-0x0;var _0x50c921=_0x075c[_0x39e481];return _0x50c921;};'use strict';var client=require(_0xc075('0x0'));exports[_0xc075('0x1')]=function(_0x2ae4ad){return client['Request'](_0xc075('0x2'),{'body':_0x2ae4ad,'log':_0xc075('0x2')});};
\ No newline at end of file
+var _0x98b4=['Request','CreateVoiceDialReport','../client','create'];(function(_0xd92031,_0xdc1d3a){var _0x4db3da=function(_0x3d2354){while(--_0x3d2354){_0xd92031['push'](_0xd92031['shift']());}};_0x4db3da(++_0xdc1d3a);}(_0x98b4,0x1e2));var _0x498b=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0x98b4[_0xbd08b4];return _0x314f1e;};'use strict';var client=require(_0x498b('0x0'));exports[_0x498b('0x1')]=function(_0x454107){return client[_0x498b('0x2')](_0x498b('0x3'),{'body':_0x454107,'log':_0x498b('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbee3=['getVoiceExtensions','exten','recordingFormat'];(function(_0x55107e,_0x210c83){var _0x118ef9=function(_0x3f5282){while(--_0x3f5282){_0x55107e['push'](_0x55107e['shift']());}};_0x118ef9(++_0x210c83);}(_0xbee3,0xd5));var _0x3bee=function(_0x4d81b2,_0x2d8647){_0x4d81b2=_0x4d81b2-0x0;var _0x9da74a=_0xbee3[_0x4d81b2];return _0x9da74a;};'use strict';var client=require('../client');exports[_0x3bee('0x0')]=function(){return function(){return client['Request']('GetVoiceExtension',{'options':{'raw':!![],'attributes':['id',_0x3bee('0x1'),_0x3bee('0x2')],'where':{'VoiceExtensionId':null}},'log':'getVoiceExtensions'});};};
\ No newline at end of file
+var _0x83e1=['recordingFormat','../client','getVoiceExtensions','GetVoiceExtension'];(function(_0x6131cd,_0x4c26a1){var _0x47e916=function(_0x1f2bce){while(--_0x1f2bce){_0x6131cd['push'](_0x6131cd['shift']());}};_0x47e916(++_0x4c26a1);}(_0x83e1,0x1ad));var _0x183e=function(_0x19564e,_0x2217fe){_0x19564e=_0x19564e-0x0;var _0x2fa1c0=_0x83e1[_0x19564e];return _0x2fa1c0;};'use strict';var client=require(_0x183e('0x0'));exports[_0x183e('0x1')]=function(){return function(){return client['Request'](_0x183e('0x2'),{'options':{'raw':!![],'attributes':['id','exten',_0x183e('0x3')],'where':{'VoiceExtensionId':null}},'log':'getVoiceExtensions'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x501f=['dialMethod','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialBusyMaxRetry','dialBusyRetryFrequency','dialTimezone','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDMaximumNumberOfWords','timeout','dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupClient','monitor_format','strategy','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','Trunk','callerid','active','TrunkBackup','Interval','Intervals','interval','../client','Request','GetVoiceQueue','name','acw','acwTimeout','autopause','dialActive'];(function(_0x430dfb,_0xc5f86c){var _0x21626e=function(_0x28a737){while(--_0x28a737){_0x430dfb['push'](_0x430dfb['shift']());}};_0x21626e(++_0xc5f86c);}(_0x501f,0xec));var _0xf501=function(_0x2f3bed,_0x266b18){_0x2f3bed=_0x2f3bed-0x0;var _0x2ca8d4=_0x501f[_0x2f3bed];return _0x2ca8d4;};'use strict';var client=require(_0xf501('0x0'));exports['getVoiceQueues']=function(){return function(){return client[_0xf501('0x1')](_0xf501('0x2'),{'options':{'raw':![],'attributes':['id',_0xf501('0x3'),_0xf501('0x4'),_0xf501('0x5'),_0xf501('0x6'),'monitor_format','type',_0xf501('0x7'),_0xf501('0x8'),_0xf501('0x9'),_0xf501('0xa'),_0xf501('0xb'),_0xf501('0xc'),'dialPredictiveOptimizationPercentage','dialPredictiveInterval',_0xf501('0xd'),_0xf501('0xe'),_0xf501('0xf'),_0xf501('0x10'),_0xf501('0x11'),_0xf501('0x12'),_0xf501('0x13'),'dialCongestionRetryFrequency',_0xf501('0x14'),_0xf501('0x15'),'dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry',_0xf501('0x16'),_0xf501('0x17'),_0xf501('0x18'),_0xf501('0x19'),_0xf501('0x1a'),_0xf501('0x1b'),_0xf501('0x1c'),_0xf501('0x1d'),_0xf501('0x1e'),_0xf501('0x1f'),'dialAMDBetweenWordsSilence',_0xf501('0x20'),'dialAMDSilenceThreshold','dialAMDMaximumWordLength',_0xf501('0x21'),_0xf501('0x22'),_0xf501('0x23'),_0xf501('0x24'),'dialAgiAfterHangupAgent',_0xf501('0x25'),'dialQueueProject2',_0xf501('0x26'),_0xf501('0x27'),_0xf501('0x28'),_0xf501('0x29'),_0xf501('0x2a'),_0xf501('0x2b'),_0xf501('0x2c'),_0xf501('0x2d'),_0xf501('0x2e'),_0xf501('0x2f'),_0xf501('0x30'),_0xf501('0x31'),_0xf501('0x32'),'dialAgentRejectRetryFrequency',_0xf501('0x33'),_0xf501('0x34'),_0xf501('0x35')],'include':[{'model':_0xf501('0x36'),'as':_0xf501('0x36'),'attributes':['id',_0xf501('0x3'),_0xf501('0x37'),_0xf501('0x38')]},{'model':'Pause','as':'mandatoryDispositionPause','attributes':['id',_0xf501('0x3')]},{'model':'Trunk','as':_0xf501('0x39'),'attributes':['id',_0xf501('0x3'),'callerid','active']},{'model':_0xf501('0x3a'),'as':_0xf501('0x3a'),'attributes':['id',_0xf501('0x3')],'include':[{'model':_0xf501('0x3a'),'as':_0xf501('0x3b'),'attributes':['id',_0xf501('0x3'),_0xf501('0x3c')]}]}]},'log':'getVoiceQueues'});};};
\ No newline at end of file
+var _0xfb7e=['name','acw','acwTimeout','autopause','type','dialActive','dialLimitChannel','dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateTimeout','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialTimezone','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDBetweenWordsSilence','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','dialQueueProject2','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMinThreshold','Trunk','callerid','active','Pause','mandatoryDispositionPause','TrunkBackup','Interval','Intervals','interval','../client','getVoiceQueues','Request','GetVoiceQueue'];(function(_0x4fad9b,_0x2d9f71){var _0x335f40=function(_0x1f1362){while(--_0x1f1362){_0x4fad9b['push'](_0x4fad9b['shift']());}};_0x335f40(++_0x2d9f71);}(_0xfb7e,0xf4));var _0xefb7=function(_0x5690a0,_0x4541f7){_0x5690a0=_0x5690a0-0x0;var _0x293d64=_0xfb7e[_0x5690a0];return _0x293d64;};'use strict';var client=require(_0xefb7('0x0'));exports[_0xefb7('0x1')]=function(){return function(){return client[_0xefb7('0x2')](_0xefb7('0x3'),{'options':{'raw':![],'attributes':['id',_0xefb7('0x4'),_0xefb7('0x5'),_0xefb7('0x6'),_0xefb7('0x7'),'monitor_format',_0xefb7('0x8'),_0xefb7('0x9'),'dialMethod',_0xefb7('0xa'),'dialLimitQueue',_0xefb7('0xb'),_0xefb7('0xc'),_0xefb7('0xd'),_0xefb7('0xe'),_0xefb7('0xf'),'dialOriginateCallerIdNumber',_0xefb7('0x10'),'dialQueueOptions',_0xefb7('0x11'),_0xefb7('0x12'),_0xefb7('0x13'),_0xefb7('0x14'),_0xefb7('0x15'),_0xefb7('0x16'),_0xefb7('0x17'),_0xefb7('0x18'),_0xefb7('0x19'),_0xefb7('0x1a'),'dialGlobalInterval',_0xefb7('0x1b'),_0xefb7('0x1c'),_0xefb7('0x1d'),_0xefb7('0x1e'),_0xefb7('0x1f'),_0xefb7('0x20'),'dialAMDTotalAnalysisTime','dialAMDMinWordLength',_0xefb7('0x21'),'dialAMDMaximumNumberOfWords',_0xefb7('0x22'),_0xefb7('0x23'),'timeout',_0xefb7('0x24'),_0xefb7('0x25'),_0xefb7('0x26'),_0xefb7('0x27'),_0xefb7('0x28'),_0xefb7('0x29'),'monitor_format','strategy',_0xefb7('0x2a'),_0xefb7('0x2b'),'dialNoSuchNumberMaxRetry',_0xefb7('0x2c'),_0xefb7('0x2d'),'dialDropRetryFrequency',_0xefb7('0x2e'),_0xefb7('0x2f'),'dialMachineMaxRetry',_0xefb7('0x30'),_0xefb7('0x31'),_0xefb7('0x32'),_0xefb7('0x33'),'dialPredictiveIntervalMaxThreshold',_0xefb7('0x34')],'include':[{'model':_0xefb7('0x35'),'as':_0xefb7('0x35'),'attributes':['id',_0xefb7('0x4'),_0xefb7('0x36'),_0xefb7('0x37')]},{'model':_0xefb7('0x38'),'as':_0xefb7('0x39'),'attributes':['id','name']},{'model':_0xefb7('0x35'),'as':_0xefb7('0x3a'),'attributes':['id',_0xefb7('0x4'),_0xefb7('0x36'),_0xefb7('0x37')]},{'model':_0xefb7('0x3b'),'as':_0xefb7('0x3b'),'attributes':['id',_0xefb7('0x4')],'include':[{'model':_0xefb7('0x3b'),'as':_0xefb7('0x3c'),'attributes':['id',_0xefb7('0x4'),_0xefb7('0x3d')]}]}]},'log':_0xefb7('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x2b07e5,_0x299692){var _0x564e68=function(_0x1511f6){while(--_0x1511f6){_0x2b07e5['push'](_0x2b07e5['shift']());}};_0x564e68(++_0x299692);}(_0xa9e0,0x123));var _0x0a9e=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xa9e0[_0x45e98e];return _0x374dba;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
+var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x2e91c4,_0x23403d){var _0xc32d69=function(_0xed1e53){while(--_0xed1e53){_0x2e91c4['push'](_0x2e91c4['shift']());}};_0xc32d69(++_0x23403d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x12d033,_0x25fa2f){_0x12d033=_0x12d033-0x0;var _0x3b4e80=_0xa9e0[_0x12d033];return _0x3b4e80;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x576e=['GetVoiceQueueRtPauses','getVoiceQueueRtPauses','Request'];(function(_0x49a679,_0x4d42b3){var _0x45b471=function(_0x38e083){while(--_0x38e083){_0x49a679['push'](_0x49a679['shift']());}};_0x45b471(++_0x4d42b3);}(_0x576e,0xa0));var _0xe576=function(_0x51b0dc,_0x5307b7){_0x51b0dc=_0x51b0dc-0x0;var _0x13fa89=_0x576e[_0x51b0dc];return _0x13fa89;};'use strict';var client=require('../client');exports[_0xe576('0x0')]=function(_0x2448b7){return function(){return client[_0xe576('0x1')](_0xe576('0x2'),{'options':{'where':{'VoiceQueueId':_0x2448b7,'paused':!![]},'raw':!![]},'log':_0xe576('0x0')});};};
\ No newline at end of file
+var _0x5670=['getVoiceQueueRtPauses','Request','GetVoiceQueueRtPauses'];(function(_0x1164ff,_0x3182c0){var _0x14f179=function(_0x3476db){while(--_0x3476db){_0x1164ff['push'](_0x1164ff['shift']());}};_0x14f179(++_0x3182c0);}(_0x5670,0x19b));var _0x0567=function(_0xfe4688,_0x689353){_0xfe4688=_0xfe4688-0x0;var _0x380e65=_0x5670[_0xfe4688];return _0x380e65;};'use strict';var client=require('../client');exports[_0x0567('0x0')]=function(_0x280d9b){return function(){return client[_0x0567('0x1')](_0x0567('0x2'),{'options':{'where':{'VoiceQueueId':_0x280d9b,'paused':!![]},'raw':!![]},'log':_0x0567('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['CreateVoiceRecording','merge','monitorFilename','lodash','../client','create'];(function(_0x1b57e2,_0x531aaa){var _0x5bf979=function(_0x115d40){while(--_0x115d40){_0x1b57e2['push'](_0x1b57e2['shift']());}};_0x5bf979(++_0x531aaa);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0x7995('0x0'));var client=require(_0x7995('0x1'));exports[_0x7995('0x2')]=function(_0x10a05d){return client['Request'](_0x7995('0x3'),{'body':_[_0x7995('0x4')](_0x10a05d,{'value':_0x10a05d[_0x7995('0x5')]}),'log':_0x7995('0x3')});};
\ No newline at end of file
+var _0x9957=['CreateVoiceRecording','merge','monitorFilename','lodash','../client','create'];(function(_0x10a6ed,_0xebadbc){var _0x4ecb15=function(_0x4faeea){while(--_0x4faeea){_0x10a6ed['push'](_0x10a6ed['shift']());}};_0x4ecb15(++_0xebadbc);}(_0x9957,0x93));var _0x7995=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9957[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x7995('0x0'));var client=require(_0x7995('0x1'));exports[_0x7995('0x2')]=function(_0x10a05d){return client['Request'](_0x7995('0x3'),{'body':_[_0x7995('0x4')](_0x10a05d,{'value':_0x10a05d[_0x7995('0x5')]}),'log':_0x7995('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e99=['secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetcalleridname','transfertargetconnectedlinename','transfertargetaccountcode','isexternal','origtransferercontext','origtransfererexten','attended','../client','transfers','blindTransfer','Request','CreateVoiceTransferReport','result','transfererchannel','transferercalleridnum','transferercalleridname','transfererconnectedlinenum','transferercontext','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridnum','transfereeconnectedlinenum','transfereeconnectedlinename','transfereecontext','transfereeexten','transfereelinkedid','context','extension','attendedTransfer','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode'];(function(_0x4617be,_0x17df97){var _0x365795=function(_0x2beab7){while(--_0x2beab7){_0x4617be['push'](_0x4617be['shift']());}};_0x365795(++_0x17df97);}(_0x8e99,0x7c));var _0x98e9=function(_0x25146c,_0x5ecbd8){_0x25146c=_0x25146c-0x0;var _0x3f00a0=_0x8e99[_0x25146c];return _0x3f00a0;};'use strict';var client=require(_0x98e9('0x0'));exports[_0x98e9('0x1')]={};exports[_0x98e9('0x2')]=function(_0x4ac0c4){return client[_0x98e9('0x3')](_0x98e9('0x4'),{'body':{'result':_0x4ac0c4[_0x98e9('0x5')],'transfererchannel':_0x4ac0c4[_0x98e9('0x6')],'transferercalleridnum':_0x4ac0c4[_0x98e9('0x7')],'transferercalleridname':_0x4ac0c4[_0x98e9('0x8')],'transfererconnectedlinenum':_0x4ac0c4[_0x98e9('0x9')],'transfererconnectedlinename':_0x4ac0c4['transfererconnectedlinename'],'transfereraccountcode':_0x4ac0c4['transfereraccountcode'],'transferercontext':_0x4ac0c4[_0x98e9('0xa')],'transfererexten':_0x4ac0c4[_0x98e9('0xb')],'transfererlinkedid':_0x4ac0c4[_0x98e9('0xc')],'transfereechannel':_0x4ac0c4[_0x98e9('0xd')],'transfereecalleridnum':_0x4ac0c4[_0x98e9('0xe')],'transfereecalleridname':_0x4ac0c4['transfereecalleridname'],'transfereeconnectedlinenum':_0x4ac0c4[_0x98e9('0xf')],'transfereeconnectedlinename':_0x4ac0c4[_0x98e9('0x10')],'transfereeaccountcode':_0x4ac0c4['transfereeaccountcode'],'transfereecontext':_0x4ac0c4[_0x98e9('0x11')],'transfereeexten':_0x4ac0c4[_0x98e9('0x12')],'transfereelinkedid':_0x4ac0c4[_0x98e9('0x13')],'isexternal':_0x4ac0c4['isexternal'],'context':_0x4ac0c4[_0x98e9('0x14')],'extension':_0x4ac0c4[_0x98e9('0x15')],'type':'blind'},'log':_0x98e9('0x4')});};exports[_0x98e9('0x16')]=function(_0x52d165){return client['Request'](_0x98e9('0x4'),{'body':{'result':_0x52d165[_0x98e9('0x5')],'transfererchannel':_0x52d165['origtransfererchannel'],'transferercalleridnum':_0x52d165[_0x98e9('0x17')],'transferercalleridname':_0x52d165[_0x98e9('0x18')],'transfererconnectedlinenum':_0x52d165[_0x98e9('0x19')],'transfererconnectedlinename':_0x52d165[_0x98e9('0x1a')],'transfereraccountcode':_0x52d165[_0x98e9('0x1b')],'transferercontext':_0x52d165[_0x98e9('0x1c')],'transfererexten':_0x52d165[_0x98e9('0x1d')],'transfererlinkedid':_0x52d165[_0x98e9('0x1e')],'transfereechannel':_0x52d165['transfertargetchannel'],'transfereecalleridnum':_0x52d165['transfertargetcalleridnum'],'transfereecalleridname':_0x52d165[_0x98e9('0x1f')],'transfereeconnectedlinenum':_0x52d165['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x52d165[_0x98e9('0x20')],'transfereeaccountcode':_0x52d165[_0x98e9('0x21')],'transfereecontext':_0x52d165['transfertargetcontext'],'transfereeexten':_0x52d165['transfertargetexten'],'transfereelinkedid':_0x52d165['transfertargetlinkedid'],'isexternal':_0x52d165[_0x98e9('0x22')],'context':_0x52d165[_0x98e9('0x23')],'extension':_0x52d165[_0x98e9('0x24')],'type':_0x98e9('0x25')},'log':'CreateVoiceTransferReport'});};
\ No newline at end of file
+var _0x1e57=['origtransfereraccountcode','secondtransferercontext','secondtransfererexten','transfertargetchannel','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetexten','transfertargetlinkedid','origtransfererexten','../client','transfers','blindTransfer','Request','result','transfererchannel','transferercalleridnum','transferercalleridname','transfererconnectedlinenum','transfererconnectedlinename','transfereraccountcode','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridnum','transfereecalleridname','transfereeconnectedlinenum','transfereeconnectedlinename','transfereeaccountcode','transfereecontext','transfereeexten','transfereelinkedid','extension','blind','CreateVoiceTransferReport','attendedTransfer','origtransfererchannel','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1e57,0x15b));var _0x71e5=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x1e57[_0x2dafbe];return _0x58a45a;};'use strict';var client=require(_0x71e5('0x0'));exports[_0x71e5('0x1')]={};exports[_0x71e5('0x2')]=function(_0xa247c9){return client[_0x71e5('0x3')]('CreateVoiceTransferReport',{'body':{'result':_0xa247c9[_0x71e5('0x4')],'transfererchannel':_0xa247c9[_0x71e5('0x5')],'transferercalleridnum':_0xa247c9[_0x71e5('0x6')],'transferercalleridname':_0xa247c9[_0x71e5('0x7')],'transfererconnectedlinenum':_0xa247c9[_0x71e5('0x8')],'transfererconnectedlinename':_0xa247c9[_0x71e5('0x9')],'transfereraccountcode':_0xa247c9[_0x71e5('0xa')],'transferercontext':_0xa247c9['transferercontext'],'transfererexten':_0xa247c9[_0x71e5('0xb')],'transfererlinkedid':_0xa247c9[_0x71e5('0xc')],'transfereechannel':_0xa247c9[_0x71e5('0xd')],'transfereecalleridnum':_0xa247c9[_0x71e5('0xe')],'transfereecalleridname':_0xa247c9[_0x71e5('0xf')],'transfereeconnectedlinenum':_0xa247c9[_0x71e5('0x10')],'transfereeconnectedlinename':_0xa247c9[_0x71e5('0x11')],'transfereeaccountcode':_0xa247c9[_0x71e5('0x12')],'transfereecontext':_0xa247c9[_0x71e5('0x13')],'transfereeexten':_0xa247c9[_0x71e5('0x14')],'transfereelinkedid':_0xa247c9[_0x71e5('0x15')],'isexternal':_0xa247c9['isexternal'],'context':_0xa247c9['context'],'extension':_0xa247c9[_0x71e5('0x16')],'type':_0x71e5('0x17')},'log':_0x71e5('0x18')});};exports[_0x71e5('0x19')]=function(_0x3f459e){return client[_0x71e5('0x3')](_0x71e5('0x18'),{'body':{'result':_0x3f459e['result'],'transfererchannel':_0x3f459e[_0x71e5('0x1a')],'transferercalleridnum':_0x3f459e[_0x71e5('0x1b')],'transferercalleridname':_0x3f459e[_0x71e5('0x1c')],'transfererconnectedlinenum':_0x3f459e[_0x71e5('0x1d')],'transfererconnectedlinename':_0x3f459e[_0x71e5('0x1e')],'transfereraccountcode':_0x3f459e[_0x71e5('0x1f')],'transferercontext':_0x3f459e[_0x71e5('0x20')],'transfererexten':_0x3f459e[_0x71e5('0x21')],'transfererlinkedid':_0x3f459e['origtransfererlinkedid'],'transfereechannel':_0x3f459e[_0x71e5('0x22')],'transfereecalleridnum':_0x3f459e[_0x71e5('0x23')],'transfereecalleridname':_0x3f459e[_0x71e5('0x24')],'transfereeconnectedlinenum':_0x3f459e[_0x71e5('0x25')],'transfereeconnectedlinename':_0x3f459e[_0x71e5('0x26')],'transfereeaccountcode':_0x3f459e['transfertargetaccountcode'],'transfereecontext':_0x3f459e['transfertargetcontext'],'transfereeexten':_0x3f459e[_0x71e5('0x27')],'transfereelinkedid':_0x3f459e[_0x71e5('0x28')],'isexternal':_0x3f459e['isexternal'],'context':_0x3f459e['origtransferercontext'],'extension':_0x3f459e[_0x71e5('0x29')],'type':'attended'},'log':_0x71e5('0x18')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd117=['bluebird','moment','../../../config/environment','../properties','../ami','listen','%s/%s','SIP','name','timers','agents','pause','QueuePause','isConnected','error','asterisk','username','ami\x20disconnected','join','pick','module','action','Reload','Action','then','message','catch','command','content','voiceQueues','strategy','answered','available','pTalking','sumBillable','sumDuration','sumHoldTime','total','unmanaged','waiting','loggedInDb','type','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','push','length','find','undefined','values','channels','voicechannel','map','uniqueid','format','%s.%s','wav','channel','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','rec','mixmonitorid','status','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','resolve','StopMixMonitor','destinationchannel','stop','filename','queueChannels','Hangup','voicequeuechannelredirect','Redirect','exten','telephones','outbound','run','event','Event\x20name\x20mandatory','send','server','http','127.0.0.1','RPC\x20listening\x20on\x20port:','lodash','util','jayson/promise','validate'];(function(_0xe8e2ad,_0x4df5f5){var _0x15f391=function(_0x2eb6fd){while(--_0x2eb6fd){_0xe8e2ad['push'](_0xe8e2ad['shift']());}};_0x15f391(++_0x4df5f5);}(_0xd117,0x182));var _0x7d11=function(_0x10e8ed,_0x384a0d){_0x10e8ed=_0x10e8ed-0x0;var _0x4aea4a=_0xd117[_0x10e8ed];return _0x4aea4a;};'use strict';var _=require(_0x7d11('0x0'));var util=require(_0x7d11('0x1'));var jayson=require(_0x7d11('0x2'));var schema=require(_0x7d11('0x3'));var BPromise=require(_0x7d11('0x4'));var moment=require(_0x7d11('0x5'));var config=require(_0x7d11('0x6'));var properties=require(_0x7d11('0x7'));var ami=require(_0x7d11('0x8'));exports[_0x7d11('0x9')]=function(_0x589c51,_0x2689c6,_0x27d7e8){return new BPromise(function(_0x40c3c4,_0x345602){var _0x3c8d66={'QueuePause':function(_0x47b5e6){return new Promise(function(_0x3803b5,_0xffd020){var _0x2007c1=util['format'](_0x7d11('0xa'),_0x7d11('0xb'),_0x47b5e6[_0x7d11('0xc')]);if(_0x589c51['timers']&&_0x589c51[_0x7d11('0xd')][_0x2007c1]&&_0x589c51['timers'][_0x2007c1]['timer']){_0x589c51[_0x7d11('0xd')][_0x2007c1]['updateAcw']();}if(_0x589c51['agents'][_0x2007c1]){_0x589c51[_0x7d11('0xe')][_0x2007c1]['updateStatusRealtime']({'statePause':_0x47b5e6[_0x7d11('0xf')]?!![]:![]});}_0x3803b5({'code':0xc8,'message':_0x7d11('0x10')});});},'Reload':function(_0x5ee572){var _0x401bb7=this;return new Promise(function(_0x20f519,_0x4cda5d){if(ami[_0x7d11('0x11')]()==![]){return _0x4cda5d(_0x401bb7[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}_0x5ee572=_[_0x7d11('0x17')](_0x5ee572,_['keys'](properties[_0x7d11('0x18')]));_0x5ee572[_0x7d11('0x19')]=_0x7d11('0x1a');return ami[_0x7d11('0x1b')](_0x5ee572)[_0x7d11('0x1c')](function(_0x528fdc){_0x20f519({'code':0xc8,'message':_0x528fdc[_0x7d11('0x1d')]});})[_0x7d11('0x1e')](function(_0x4d1306){_0x4cda5d(_0x401bb7['error'](0x1f5,_0x4d1306[_0x7d11('0x1d')]));});});},'Command':function(_0x52a6ae){var _0x1f9990=this;return new Promise(function(_0x5c0af8,_0xbe0a79){if(ami[_0x7d11('0x11')]()==![]){return _0xbe0a79(_0x1f9990[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}_0x52a6ae=_['pick'](_0x52a6ae,_0x7d11('0x1f'));_0x52a6ae['action']='Command';return ami['Action'](_0x52a6ae)[_0x7d11('0x1c')](function(_0x3545dc){_0x5c0af8({'code':0xc8,'message':_0x3545dc[_0x7d11('0x20')]});})[_0x7d11('0x1e')](function(_0x355d14){_0xbe0a79(_0x1f9990[_0x7d11('0x12')](0x1f5,_0x355d14[_0x7d11('0x1d')]));});});},'VoiceQueues':function(_0x1c1edd){return new Promise(function(_0x5e2f2f,_0x36c2b4){var _0x577ca9=[];for(var _0x4bfa76 in _0x589c51['voiceQueues']){if(_0x589c51[_0x7d11('0x21')]['hasOwnProperty'](_0x4bfa76)){var _0x180e1e=_0x589c51[_0x7d11('0x21')][_0x4bfa76];var _0x328ab7={'id':_0x180e1e['id'],'name':_0x180e1e['name'],'strategy':_0x180e1e[_0x7d11('0x22')],'answered':_0x180e1e[_0x7d11('0x23')],'available':_0x180e1e[_0x7d11('0x24')],'loggedIn':_0x180e1e['loggedIn'],'pTalking':_0x180e1e[_0x7d11('0x25')],'sumBillable':_0x180e1e[_0x7d11('0x26')],'sumDuration':_0x180e1e[_0x7d11('0x27')],'sumHoldTime':_0x180e1e[_0x7d11('0x28')]||0x0,'talking':_0x180e1e['talking'],'total':_0x180e1e[_0x7d11('0x29')],'type':_0x180e1e['type'],'unmanaged':_0x180e1e[_0x7d11('0x2a')],'abandoned':_0x180e1e['abandoned'],'waiting':_0x180e1e[_0x7d11('0x2b')],'loggedInDb':_0x180e1e[_0x7d11('0x2c')]};if(_0x180e1e[_0x7d11('0x2d')]==='outbound'){_0x328ab7['dialActive']=_0x180e1e[_0x7d11('0x2e')];_0x328ab7[_0x7d11('0x2f')]=_0x180e1e['dialMethod'];_0x328ab7[_0x7d11('0x30')]=_0x180e1e[_0x7d11('0x30')];_0x328ab7[_0x7d11('0x31')]=_0x180e1e['dialOriginateCallerIdNumber'];_0x328ab7[_0x7d11('0x32')]=_0x180e1e['dialOriginateTimeout'];_0x328ab7['dialPrefix']=_0x180e1e[_0x7d11('0x33')];_0x328ab7['temp']=_0x180e1e[_0x7d11('0x34')];_0x328ab7[_0x7d11('0x35')]=_0x180e1e[_0x7d11('0x35')];_0x328ab7[_0x7d11('0x36')]=_0x180e1e['outboundAnswerCallsDay'];_0x328ab7[_0x7d11('0x37')]=_0x180e1e[_0x7d11('0x37')];_0x328ab7['outboundBusyCallsDay']=_0x180e1e['outboundBusyCallsDay'];_0x328ab7[_0x7d11('0x38')]=_0x180e1e[_0x7d11('0x38')];_0x328ab7['outboundDropCallsDayACS']=_0x180e1e[_0x7d11('0x39')];_0x328ab7['outboundDropCallsDayCallersExit']=_0x180e1e['outboundDropCallsDayCallersExit'];_0x328ab7[_0x7d11('0x3a')]=_0x180e1e['outboundDropCallsDayTimeout'];_0x328ab7['outboundNoAnswerCallsDay']=_0x180e1e[_0x7d11('0x3b')];_0x328ab7[_0x7d11('0x3c')]=_0x180e1e[_0x7d11('0x3c')];_0x328ab7[_0x7d11('0x3d')]=_0x180e1e[_0x7d11('0x3d')];_0x328ab7[_0x7d11('0x3e')]=_0x180e1e[_0x7d11('0x3e')];_0x328ab7[_0x7d11('0x3f')]=_0x180e1e[_0x7d11('0x3f')];_0x328ab7[_0x7d11('0x40')]=_0x180e1e[_0x7d11('0x40')];_0x328ab7[_0x7d11('0x41')]=_0x180e1e['predictiveIntervalAnsweredCalls'];_0x328ab7[_0x7d11('0x42')]=_0x180e1e['predictiveIntervalAvgHoldtime'];_0x328ab7[_0x7d11('0x43')]=_0x180e1e[_0x7d11('0x43')];_0x328ab7[_0x7d11('0x44')]=_0x180e1e[_0x7d11('0x44')];_0x328ab7['predictiveIntervalDroppedCallsTimeout']=_0x180e1e[_0x7d11('0x45')];_0x328ab7[_0x7d11('0x46')]=_0x180e1e[_0x7d11('0x46')];_0x328ab7[_0x7d11('0x47')]=_0x180e1e['predictiveIntervalErlangCallsDroppedCalls'];_0x328ab7[_0x7d11('0x48')]=_0x180e1e['predictiveIntervalHitRate'];_0x328ab7[_0x7d11('0x49')]=_0x180e1e['predictiveIntervalMultiplicativeFactor'];_0x328ab7[_0x7d11('0x4a')]=_0x180e1e[_0x7d11('0x4a')];_0x328ab7[_0x7d11('0x4b')]=_0x180e1e[_0x7d11('0x4b')];_0x328ab7['predictiveIntervalTotalCalls']=_0x180e1e['predictiveIntervalTotalCalls'];_0x328ab7[_0x7d11('0x1d')]=_0x180e1e[_0x7d11('0x1d')];_0x328ab7['originated']=_0x180e1e[_0x7d11('0x4c')];_0x328ab7[_0x7d11('0x4d')]=_0x180e1e[_0x7d11('0x4d')];_0x328ab7[_0x7d11('0x4e')]=_0x180e1e[_0x7d11('0x4e')];_0x328ab7[_0x7d11('0x4f')]=_0x180e1e['erlangAbandonmentRate'];_0x328ab7[_0x7d11('0x50')]=_0x180e1e['erlangBusyFactor'];_0x328ab7[_0x7d11('0x51')]=_0x180e1e[_0x7d11('0x51')];_0x328ab7[_0x7d11('0x52')]=_0x180e1e[_0x7d11('0x52')];}if(_0x180e1e[_0x7d11('0x53')]){_0x328ab7[_0x7d11('0x53')]={'id':_0x180e1e['Trunk']['id'],'name':_0x180e1e['Trunk']['name'],'active':_0x180e1e[_0x7d11('0x53')][_0x7d11('0x54')],'callerid':_0x180e1e[_0x7d11('0x53')][_0x7d11('0x55')]};}if(_0x180e1e[_0x7d11('0x56')]){_0x328ab7['Interval']={'id':_0x180e1e[_0x7d11('0x56')]['id'],'name':_0x180e1e[_0x7d11('0x56')]['name']};}_0x577ca9[_0x7d11('0x57')](_0x328ab7);}}_0x5e2f2f({'count':_0x577ca9[_0x7d11('0x58')],'rows':_0x577ca9});});},'UpdateVoiceQueue':function(_0xeca3f6){return new Promise(function(_0x518ca2,_0x30358a){var _0x3bbc14=_[_0x7d11('0x59')](_0x589c51['voiceQueues'],{'id':parseInt(_0xeca3f6['id'])});var _0x38de7f=_['omit'](_0xeca3f6,['id']);if(_0x3bbc14){for(var _0xe5d2fe in _0x38de7f){if(typeof _0x38de7f[_0xe5d2fe]!==_0x7d11('0x5a')&&typeof _0x3bbc14[_0xe5d2fe]!==_0x7d11('0x5a')){_0x3bbc14[_0xe5d2fe]=_0x38de7f[_0xe5d2fe];}}_0x518ca2(_0x3bbc14);}else{_0x30358a();}});},'VoiceChannels':function(_0xbe357){return new Promise(function(_0xee795,_0x14cda1){var _0x161213=_[_0x7d11('0x5b')](_0x589c51[_0x7d11('0x5c')]);_0xee795({'count':_0x161213['length'],'rows':_0x161213});});},'VoiceChannelMixMonitor':function(_0x50d458){var _0x49a21c=this;return new Promise(function(_0x10c0e9,_0x1e5bb5){if(ami[_0x7d11('0x11')]()==![]){return _0x1e5bb5(_0x49a21c[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}var _0x347567=schema(properties[_0x7d11('0x5d')])[_0x7d11('0x3')](_0x50d458);if(_0x347567['length']>0x0){return _0x1e5bb5(_0x49a21c[_0x7d11('0x12')](0x1f4,_[_0x7d11('0x5e')](_0x347567,_0x7d11('0x1d'))['join'](',\x20')));}var _0x503ebc=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x5c')],{'uniqueid':_0x50d458[_0x7d11('0x5f')]});if(_0x503ebc&&_0x503ebc['channel']){var _0x5e898c=util[_0x7d11('0x60')](_0x7d11('0x61'),_0x50d458['filename']||_0x50d458[_0x7d11('0x5f')],_0x50d458[_0x7d11('0x60')]||_0x7d11('0x62'));return ami[_0x7d11('0x1b')]({'action':'MixMonitor','channel':_0x503ebc[_0x7d11('0x63')],'file':_0x5e898c,'options':_0x7d11('0x64')})[_0x7d11('0x1c')](function(_0x503cef){var _0x4d0f77=_[_0x7d11('0x59')](_0x503ebc[_0x7d11('0x65')],{'filename':_0x7d11('0x66')+_0x5e898c[_0x7d11('0x67')]()});if(_[_0x7d11('0x68')](_0x4d0f77)){_0x503ebc['monitors'][_0x7d11('0x57')]({'filename':_0x7d11('0x66')+_0x5e898c[_0x7d11('0x67')](),'createdAt':moment()[_0x7d11('0x60')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x503cef['mixmonitorid'],'status':_0x7d11('0x69')});}else{_0x4d0f77[_0x7d11('0x6a')]=_0x503cef[_0x7d11('0x6a')];_0x4d0f77[_0x7d11('0x6b')]=_0x7d11('0x69');}_0x10c0e9({'code':0xc8,'message':[_0x50d458[_0x7d11('0x5f')],_0x7d11('0x6c'),_0x503cef[_0x7d11('0x6a')]][_0x7d11('0x16')]('\x20'),'mixmonitorid':_0x503cef[_0x7d11('0x6a')]});})['catch'](function(_0x4fb818){_0x1e5bb5(_0x49a21c['error'](0x1f5,[_0x50d458[_0x7d11('0x5f')],_0x4fb818[_0x7d11('0x1d')][_0x7d11('0x67')]()]['join']('\x20')));});}else{return _0x1e5bb5(_0x49a21c[_0x7d11('0x12')](0x1f5,_0x7d11('0x6d')));}});},'VoiceChannelStopMixMonitor':function(_0x3b1762){var _0x32937c=this;return new Promise(function(_0x1f29f7,_0x178a3a){if(ami['isConnected']()==![]){return _0x178a3a(_0x32937c[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')]['username'],'ami\x20disconnected']['join']('\x20')));}var _0x5a88f4=schema(properties[_0x7d11('0x5d')])['validate'](_0x3b1762);if(_0x5a88f4['length']>0x0){return _0x178a3a(_0x32937c['error'](0x1f4,_[_0x7d11('0x5e')](_0x5a88f4,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0x407f2c=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x5c')],{'uniqueid':_0x3b1762['uniqueid']});if(_0x407f2c){return BPromise[_0x7d11('0x6e')]()['then'](function(){if(_0x407f2c[_0x7d11('0x63')]){return ami['Action']({'action':_0x7d11('0x6f'),'channel':_0x407f2c[_0x7d11('0x63')],'mixmonitorid':_0x3b1762['mixmonitorid']})[_0x7d11('0x1e')](function(_0x49c9b6){});}})[_0x7d11('0x1c')](function(){if(_0x407f2c[_0x7d11('0x70')]){return ami['Action']({'action':'StopMixMonitor','channel':_0x407f2c[_0x7d11('0x70')],'mixmonitorid':_0x3b1762[_0x7d11('0x6a')]})[_0x7d11('0x1e')](function(_0x4027f8){});}})[_0x7d11('0x1c')](function(_0x492183){var _0x2b9ba0=_['find'](_0x407f2c[_0x7d11('0x65')],{'mixmonitorid':_0x3b1762[_0x7d11('0x6a')]});if(_0x2b9ba0){_0x2b9ba0[_0x7d11('0x6b')]=_0x7d11('0x71');}})['then'](function(){var _0x17a141=util['format'](_0x7d11('0x61'),_0x3b1762[_0x7d11('0x72')]||_0x3b1762[_0x7d11('0x5f')],_0x3b1762[_0x7d11('0x60')]||_0x7d11('0x62'));var _0x776b20=_[_0x7d11('0x59')](_0x407f2c[_0x7d11('0x65')],{'filename':_0x7d11('0x66')+_0x17a141[_0x7d11('0x67')]()});if(_0x776b20){_0x776b20[_0x7d11('0x6b')]=_0x7d11('0x71');}})[_0x7d11('0x1c')](function(){_0x1f29f7({'code':0xc8,'message':[_0x3b1762[_0x7d11('0x5f')],'StopMixMonitor\x20Success'][_0x7d11('0x16')]('\x20')});})['catch'](function(_0x371869){_0x178a3a(_0x32937c['error'](0x1f5,[_0x3b1762[_0x7d11('0x5f')],_0x371869[_0x7d11('0x1d')][_0x7d11('0x67')]()][_0x7d11('0x16')]('\x20')));});}else{return _0x178a3a(_0x32937c['error'](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceQueuesChannels':function(_0x1351ee){return new Promise(function(_0x15938b,_0x12566a){var _0x56331e=_[_0x7d11('0x5b')](_0x589c51[_0x7d11('0x73')]);_0x15938b({'count':_0x56331e[_0x7d11('0x58')],'rows':_0x56331e});});},'VoiceQueuesChannel':function(_0x1b89de){var _0x328a36=this;return new Promise(function(_0x241895,_0x59f63f){var _0xc63022=schema(properties['voicequeuechannel'])[_0x7d11('0x3')](_0x1b89de);if(_0xc63022['length']>0x0){return _0x59f63f(_0x328a36['error'](0x1f4,_[_0x7d11('0x5e')](_0xc63022,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0x14ee15=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x73')],{'uniqueid':_0x1b89de[_0x7d11('0x5f')]});if(_0x14ee15){_0x241895(_0x14ee15);}else{return _0x59f63f(_0x328a36[_0x7d11('0x12')](0x1f5,_0x7d11('0x6d')));}});},'VoiceQueuesChannelHangup':function(_0x1b8993){var _0xee8fb0=this;return new Promise(function(_0x539b91,_0x3f0d43){if(ami['isConnected']()==![]){return _0x3f0d43(_0xee8fb0[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}var _0x1f852a=schema(properties['voicequeuechannelhangup'])['validate'](_0x1b8993);if(_0x1f852a[_0x7d11('0x58')]>0x0){return _0x3f0d43(_0xee8fb0[_0x7d11('0x12')](0x1f4,_[_0x7d11('0x5e')](_0x1f852a,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0x549bd8=_[_0x7d11('0x59')](_0x589c51['queueChannels'],{'uniqueid':_0x1b8993[_0x7d11('0x5f')]});if(_0x549bd8&&_0x549bd8[_0x7d11('0x63')]){return ami[_0x7d11('0x1b')]({'action':_0x7d11('0x74'),'channel':_0x549bd8[_0x7d11('0x63')]})[_0x7d11('0x1c')](function(_0x93cf5c){_0x539b91({'code':0xc8,'message':[_0x1b8993[_0x7d11('0x5f')],_0x93cf5c['message']['toLowerCase']()][_0x7d11('0x16')]('\x20')});})[_0x7d11('0x1e')](function(_0x195e2a){_0x3f0d43(_0xee8fb0['error'](0x1f5,[_0x1b8993['uniqueid'],_0x195e2a[_0x7d11('0x1d')]['toLowerCase']()][_0x7d11('0x16')]('\x20')));});}else{return _0x3f0d43(_0xee8fb0[_0x7d11('0x12')](0x1f5,_0x7d11('0x6d')));}});},'VoiceQueuesChannelRedirect':function(_0x14bd23){var _0x4b4dd5=this;return new Promise(function(_0x3805c7,_0x3b2c9e){if(ami[_0x7d11('0x11')]()==![]){return _0x3b2c9e(_0x4b4dd5[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')]['join']('\x20')));}var _0x41f989=schema(properties[_0x7d11('0x75')])[_0x7d11('0x3')](_0x14bd23);if(_0x41f989[_0x7d11('0x58')]>0x0){return _0x3b2c9e(_0x4b4dd5[_0x7d11('0x12')](0x1f4,_['map'](_0x41f989,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0xa4d2ad=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x73')],{'uniqueid':_0x14bd23['uniqueid']});if(_0xa4d2ad&&_0xa4d2ad['channel']){return ami['Action']({'action':_0x7d11('0x76'),'channel':_0xa4d2ad['channel'],'exten':_0x14bd23[_0x7d11('0x77')],'context':_0x14bd23['context']||_0xa4d2ad['context'],'priority':0x1})[_0x7d11('0x1c')](function(_0x355d3f){_0x3805c7({'code':0xc8,'message':[_0x14bd23[_0x7d11('0x5f')],_0x355d3f[_0x7d11('0x1d')][_0x7d11('0x67')]()][_0x7d11('0x16')]('\x20')});})[_0x7d11('0x1e')](function(_0x45d970){_0x3b2c9e(_0x4b4dd5[_0x7d11('0x12')](0x1f5,[_0x14bd23[_0x7d11('0x5f')],_0x45d970['message'][_0x7d11('0x67')]()][_0x7d11('0x16')]('\x20')));});}else{return _0x3b2c9e(_0x4b4dd5['error'](0x1f5,_0x7d11('0x6d')));}});},'Agents':function(_0x45a528){return new Promise(function(_0x19e4a9,_0x461ab7){var _0x5c828c=_['values'](_0x589c51[_0x7d11('0xe')]);_0x19e4a9({'count':_0x5c828c['length'],'rows':_0x5c828c});});},'Telephones':function(_0xb576ec){return new Promise(function(_0x471bf4,_0xa4317f){var _0x13ccd5=_[_0x7d11('0x5b')](_0x589c51[_0x7d11('0x78')]);_0x471bf4({'count':_0x13ccd5[_0x7d11('0x58')],'rows':_0x13ccd5});});},'Trunks':function(_0x596228){return new Promise(function(_0x3381e0,_0x3212fa){var _0x22121e=_[_0x7d11('0x5b')](_0x589c51['trunks']);_0x3381e0({'count':_0x22121e[_0x7d11('0x58')],'rows':_0x22121e});});},'OutboundChannels':function(_0x18cb6b){return new Promise(function(_0x498714,_0x772073){var _0x41c318=_[_0x7d11('0x5b')](_0x589c51['outboundChannels']);_0x498714({'count':_0x41c318[_0x7d11('0x58')],'rows':_0x41c318});});},'Outbound':function(_0x34d95d){return new Promise(function(_0x561dbf,_0xf089a4){_0x561dbf(_0x589c51[_0x7d11('0x79')]);});},'Campaigns':function(_0x5a280f){return new Promise(function(_0x3ee2ee,_0x5bf46e){var _0x49d16c=_['values'](_0x589c51['campaigns']);_0x3ee2ee({'count':_0x49d16c[_0x7d11('0x58')],'rows':_0x49d16c});});},'VoiceQueuesPreview':function(_0x454789){var _0x265c48=this;return new Promise(function(_0xe98764,_0x241591){_0x2689c6[_0x7d11('0x7a')](_0x454789['id'])[_0x7d11('0x1c')](function(_0x1a2df6){_0xe98764({'code':0xc8,'message':_0x1a2df6[_0x7d11('0x1d')]});})[_0x7d11('0x1e')](function(_0x5bc08e){_0x241591(_0x265c48['error'](0x1f4,_0x5bc08e[_0x7d11('0x1d')]));});});},'EventManager':function(_0x158e0f){var _0x57a6a1=this;return new Promise(function(_0x4c2199,_0xe88ace){if(!_0x158e0f[_0x7d11('0x7b')]){return _0xe88ace(_0x57a6a1[_0x7d11('0x12')](0x1f4,_0x7d11('0x7c')));}ami['emit']('custom:'+_0x158e0f['event'],_0x158e0f[_0x7d11('0x1d')]);_0x4c2199({'code':0xc8,'message':_0x158e0f});});},'FaxAccounts':function(_0x126107){return new Promise(function(_0x4470e9,_0x550772){var _0x3ce304=_[_0x7d11('0x5b')](_0x589c51['faxAccounts']);_0x4470e9({'count':_0x3ce304[_0x7d11('0x58')],'rows':_0x3ce304});});},'SendFax':function(_0x1cb457){var _0x59f0db=this;return new Promise(function(_0x5e5faf,_0xe23940){_0x27d7e8[_0x7d11('0x7d')](_0x1cb457)['then'](function(_0x4f08a4){_0x5e5faf({'code':0xc8,'message':_0x4f08a4[_0x7d11('0x1d')]});})[_0x7d11('0x1e')](function(_0x3df0ab){_0xe23940(_0x59f0db[_0x7d11('0x12')](0x1f4,_0x3df0ab['message']));});});},'CheckAfterSend':function(_0x411f81){var _0x2cfa77=this;return new Promise(function(_0x44ea8e,_0x83416b){_0x27d7e8['checkAfterSend'](_0x411f81)[_0x7d11('0x1c')](function(_0x23fe57){_0x44ea8e({'code':0xc8,'message':_0x23fe57[_0x7d11('0x1d')]});})['catch'](function(_0x421187){_0x83416b(_0x2cfa77['error'](0x1f4,_0x421187[_0x7d11('0x1d')]));});});}};var _0x5b690f=jayson[_0x7d11('0x7e')](_0x3c8d66)[_0x7d11('0x7f')]();_0x5b690f['on'](_0x7d11('0x12'),function(_0x1a548f){return _0x345602(_0x1a548f);});_0x5b690f[_0x7d11('0x9')](0x232a,_0x7d11('0x80'),function(){console['log']('AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232a);return _0x40c3c4(_0x7d11('0x81')+0x232a);});});};
\ No newline at end of file
+var _0xe626=['StopMixMonitor','destinationchannel','stop','StopMixMonitor\x20Success','values','voicequeuechannel','queueChannels','Hangup','voicequeuechannelredirect','Redirect','exten','context','telephones','trunks','outbound','emit','custom:','faxAccounts','send','checkAfterSend','127.0.0.1','log','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','jayson/promise','validate','moment','../../../config/environment','../properties','../ami','listen','%s/%s','SIP','timers','agents','updateStatusRealtime','pause','QueuePause','isConnected','error','asterisk','username','ami\x20disconnected','join','keys','module','action','Reload','Action','then','message','catch','pick','command','Command','content','voiceQueues','name','strategy','answered','loggedIn','pTalking','sumBillable','talking','waiting','type','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','Interval','length','find','omit','undefined','channels','voicechannel','uniqueid','%s.%s','filename','format','wav','MixMonitor','channel','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','push','mixmonitorid','rec','status','Channel\x20doesn\x27t\x20exist','map','resolve'];(function(_0x26a1d9,_0x4a1caf){var _0x3c7d75=function(_0x53dc33){while(--_0x53dc33){_0x26a1d9['push'](_0x26a1d9['shift']());}};_0x3c7d75(++_0x4a1caf);}(_0xe626,0x9d));var _0x6e62=function(_0x468e1f,_0x2142bf){_0x468e1f=_0x468e1f-0x0;var _0x4a066d=_0xe626[_0x468e1f];return _0x4a066d;};'use strict';var _=require(_0x6e62('0x0'));var util=require(_0x6e62('0x1'));var jayson=require(_0x6e62('0x2'));var schema=require(_0x6e62('0x3'));var BPromise=require('bluebird');var moment=require(_0x6e62('0x4'));var config=require(_0x6e62('0x5'));var properties=require(_0x6e62('0x6'));var ami=require(_0x6e62('0x7'));exports[_0x6e62('0x8')]=function(_0x4d4816,_0x5f25a3,_0x4a778d){return new BPromise(function(_0x2ee927,_0x157047){var _0x55165e={'QueuePause':function(_0x32fd89){return new Promise(function(_0x1dfbaf,_0x16fa52){var _0x3317f1=util['format'](_0x6e62('0x9'),_0x6e62('0xa'),_0x32fd89['name']);if(_0x4d4816[_0x6e62('0xb')]&&_0x4d4816['timers'][_0x3317f1]&&_0x4d4816[_0x6e62('0xb')][_0x3317f1]['timer']){_0x4d4816[_0x6e62('0xb')][_0x3317f1]['updateAcw']();}if(_0x4d4816[_0x6e62('0xc')][_0x3317f1]){_0x4d4816[_0x6e62('0xc')][_0x3317f1][_0x6e62('0xd')]({'statePause':_0x32fd89[_0x6e62('0xe')]?!![]:![]});}_0x1dfbaf({'code':0xc8,'message':_0x6e62('0xf')});});},'Reload':function(_0x1c266b){var _0x3b5c11=this;return new Promise(function(_0x49be2d,_0x4e7917){if(ami[_0x6e62('0x10')]()==![]){return _0x4e7917(_0x3b5c11[_0x6e62('0x11')](0x1f4,[config['asterisk']['ip'],config[_0x6e62('0x12')][_0x6e62('0x13')],_0x6e62('0x14')][_0x6e62('0x15')]('\x20')));}_0x1c266b=_['pick'](_0x1c266b,_[_0x6e62('0x16')](properties[_0x6e62('0x17')]));_0x1c266b[_0x6e62('0x18')]=_0x6e62('0x19');return ami[_0x6e62('0x1a')](_0x1c266b)[_0x6e62('0x1b')](function(_0x42c2ea){_0x49be2d({'code':0xc8,'message':_0x42c2ea[_0x6e62('0x1c')]});})[_0x6e62('0x1d')](function(_0x15bce5){_0x4e7917(_0x3b5c11['error'](0x1f5,_0x15bce5[_0x6e62('0x1c')]));});});},'Command':function(_0x400bcc){var _0x55ce3b=this;return new Promise(function(_0xefbfb6,_0x4ecdff){if(ami[_0x6e62('0x10')]()==![]){return _0x4ecdff(_0x55ce3b[_0x6e62('0x11')](0x1f4,[config[_0x6e62('0x12')]['ip'],config[_0x6e62('0x12')][_0x6e62('0x13')],_0x6e62('0x14')][_0x6e62('0x15')]('\x20')));}_0x400bcc=_[_0x6e62('0x1e')](_0x400bcc,_0x6e62('0x1f'));_0x400bcc[_0x6e62('0x18')]=_0x6e62('0x20');return ami['Action'](_0x400bcc)[_0x6e62('0x1b')](function(_0x52d5e7){_0xefbfb6({'code':0xc8,'message':_0x52d5e7[_0x6e62('0x21')]});})[_0x6e62('0x1d')](function(_0x345af8){_0x4ecdff(_0x55ce3b[_0x6e62('0x11')](0x1f5,_0x345af8[_0x6e62('0x1c')]));});});},'VoiceQueues':function(_0x425d1c){return new Promise(function(_0x4373b5,_0x3a1683){var _0x2e4fe1=[];for(var _0x448691 in _0x4d4816['voiceQueues']){if(_0x4d4816[_0x6e62('0x22')]['hasOwnProperty'](_0x448691)){var _0x2f9c68=_0x4d4816[_0x6e62('0x22')][_0x448691];var _0x318fc3={'id':_0x2f9c68['id'],'name':_0x2f9c68[_0x6e62('0x23')],'strategy':_0x2f9c68[_0x6e62('0x24')],'answered':_0x2f9c68[_0x6e62('0x25')],'available':_0x2f9c68['available'],'loggedIn':_0x2f9c68[_0x6e62('0x26')],'pTalking':_0x2f9c68[_0x6e62('0x27')],'sumBillable':_0x2f9c68[_0x6e62('0x28')],'sumDuration':_0x2f9c68['sumDuration'],'sumHoldTime':_0x2f9c68['sumHoldTime']||0x0,'talking':_0x2f9c68[_0x6e62('0x29')],'total':_0x2f9c68['total'],'type':_0x2f9c68['type'],'unmanaged':_0x2f9c68['unmanaged'],'abandoned':_0x2f9c68['abandoned'],'waiting':_0x2f9c68[_0x6e62('0x2a')],'loggedInDb':_0x2f9c68['loggedInDb']};if(_0x2f9c68[_0x6e62('0x2b')]==='outbound'){_0x318fc3[_0x6e62('0x2c')]=_0x2f9c68[_0x6e62('0x2c')];_0x318fc3[_0x6e62('0x2d')]=_0x2f9c68['dialMethod'];_0x318fc3['dialOriginateCallerIdName']=_0x2f9c68[_0x6e62('0x2e')];_0x318fc3[_0x6e62('0x2f')]=_0x2f9c68['dialOriginateCallerIdNumber'];_0x318fc3['dialOriginateTimeout']=_0x2f9c68['dialOriginateTimeout'];_0x318fc3[_0x6e62('0x30')]=_0x2f9c68['dialPrefix'];_0x318fc3[_0x6e62('0x31')]=_0x2f9c68[_0x6e62('0x31')];_0x318fc3[_0x6e62('0x32')]=_0x2f9c68[_0x6e62('0x32')];_0x318fc3[_0x6e62('0x33')]=_0x2f9c68['outboundAnswerCallsDay'];_0x318fc3['outboundBlacklistCallsDay']=_0x2f9c68[_0x6e62('0x34')];_0x318fc3[_0x6e62('0x35')]=_0x2f9c68[_0x6e62('0x35')];_0x318fc3[_0x6e62('0x36')]=_0x2f9c68[_0x6e62('0x36')];_0x318fc3[_0x6e62('0x37')]=_0x2f9c68[_0x6e62('0x37')];_0x318fc3[_0x6e62('0x38')]=_0x2f9c68[_0x6e62('0x38')];_0x318fc3['outboundDropCallsDayTimeout']=_0x2f9c68[_0x6e62('0x39')];_0x318fc3[_0x6e62('0x3a')]=_0x2f9c68[_0x6e62('0x3a')];_0x318fc3['outboundNoSuchCallsDay']=_0x2f9c68[_0x6e62('0x3b')];_0x318fc3[_0x6e62('0x3c')]=_0x2f9c68['outboundOriginateFailureCallsDay'];_0x318fc3[_0x6e62('0x3d')]=_0x2f9c68[_0x6e62('0x3d')];_0x318fc3[_0x6e62('0x3e')]=_0x2f9c68[_0x6e62('0x3e')];_0x318fc3[_0x6e62('0x3f')]=_0x2f9c68['outboundUnknownCallsDay'];_0x318fc3[_0x6e62('0x40')]=_0x2f9c68[_0x6e62('0x40')];_0x318fc3[_0x6e62('0x41')]=_0x2f9c68[_0x6e62('0x41')];_0x318fc3[_0x6e62('0x42')]=_0x2f9c68['predictiveIntervalAvgTalktime'];_0x318fc3[_0x6e62('0x43')]=_0x2f9c68[_0x6e62('0x43')];_0x318fc3[_0x6e62('0x44')]=_0x2f9c68['predictiveIntervalDroppedCallsTimeout'];_0x318fc3[_0x6e62('0x45')]=_0x2f9c68[_0x6e62('0x45')];_0x318fc3['predictiveIntervalErlangCallsDroppedCalls']=_0x2f9c68['predictiveIntervalErlangCallsDroppedCalls'];_0x318fc3[_0x6e62('0x46')]=_0x2f9c68[_0x6e62('0x46')];_0x318fc3[_0x6e62('0x47')]=_0x2f9c68['predictiveIntervalMultiplicativeFactor'];_0x318fc3['predictiveIntervalPauses']=_0x2f9c68[_0x6e62('0x48')];_0x318fc3['predictiveIntervalAvailable']=_0x2f9c68['predictiveIntervalAvailable'];_0x318fc3[_0x6e62('0x49')]=_0x2f9c68[_0x6e62('0x49')];_0x318fc3[_0x6e62('0x1c')]=_0x2f9c68[_0x6e62('0x1c')];_0x318fc3[_0x6e62('0x4a')]=_0x2f9c68['originated'];_0x318fc3[_0x6e62('0x4b')]=_0x2f9c68['erlangCalls'];_0x318fc3['erlangCallToSecond']=_0x2f9c68[_0x6e62('0x4c')];_0x318fc3[_0x6e62('0x4d')]=_0x2f9c68[_0x6e62('0x4d')];_0x318fc3['erlangBusyFactor']=_0x2f9c68[_0x6e62('0x4e')];_0x318fc3['startPredictive']=_0x2f9c68[_0x6e62('0x4f')];_0x318fc3[_0x6e62('0x50')]=_0x2f9c68[_0x6e62('0x50')];}if(_0x2f9c68[_0x6e62('0x51')]){_0x318fc3[_0x6e62('0x51')]={'id':_0x2f9c68[_0x6e62('0x51')]['id'],'name':_0x2f9c68[_0x6e62('0x51')][_0x6e62('0x23')],'active':_0x2f9c68[_0x6e62('0x51')][_0x6e62('0x52')],'callerid':_0x2f9c68['Trunk']['callerid']};}if(_0x2f9c68['Interval']){_0x318fc3[_0x6e62('0x53')]={'id':_0x2f9c68['Interval']['id'],'name':_0x2f9c68[_0x6e62('0x53')][_0x6e62('0x23')]};}_0x2e4fe1['push'](_0x318fc3);}}_0x4373b5({'count':_0x2e4fe1[_0x6e62('0x54')],'rows':_0x2e4fe1});});},'UpdateVoiceQueue':function(_0x10c992){return new Promise(function(_0x223c3b,_0x2efc75){var _0x11cd3b=_[_0x6e62('0x55')](_0x4d4816[_0x6e62('0x22')],{'id':parseInt(_0x10c992['id'])});var _0x22f217=_[_0x6e62('0x56')](_0x10c992,['id']);if(_0x11cd3b){for(var _0x7e251d in _0x22f217){if(typeof _0x22f217[_0x7e251d]!==_0x6e62('0x57')&&typeof _0x11cd3b[_0x7e251d]!==_0x6e62('0x57')){_0x11cd3b[_0x7e251d]=_0x22f217[_0x7e251d];}}_0x223c3b(_0x11cd3b);}else{_0x2efc75();}});},'VoiceChannels':function(_0x7c26d2){return new Promise(function(_0x5efc0c,_0x419fab){var _0x158c75=_['values'](_0x4d4816[_0x6e62('0x58')]);_0x5efc0c({'count':_0x158c75['length'],'rows':_0x158c75});});},'VoiceChannelMixMonitor':function(_0x45da05){var _0x1aaec8=this;return new Promise(function(_0x34d642,_0x5ca4eb){if(ami[_0x6e62('0x10')]()==![]){return _0x5ca4eb(_0x1aaec8[_0x6e62('0x11')](0x1f4,[config[_0x6e62('0x12')]['ip'],config[_0x6e62('0x12')][_0x6e62('0x13')],_0x6e62('0x14')][_0x6e62('0x15')]('\x20')));}var _0x315ed4=schema(properties[_0x6e62('0x59')])[_0x6e62('0x3')](_0x45da05);if(_0x315ed4[_0x6e62('0x54')]>0x0){return _0x5ca4eb(_0x1aaec8['error'](0x1f4,_['map'](_0x315ed4,_0x6e62('0x1c'))[_0x6e62('0x15')](',\x20')));}var _0x168992=_[_0x6e62('0x55')](_0x4d4816[_0x6e62('0x58')],{'uniqueid':_0x45da05[_0x6e62('0x5a')]});if(_0x168992&&_0x168992['channel']){var _0x19a7e9=util['format'](_0x6e62('0x5b'),_0x45da05[_0x6e62('0x5c')]||_0x45da05[_0x6e62('0x5a')],_0x45da05[_0x6e62('0x5d')]||_0x6e62('0x5e'));return ami['Action']({'action':_0x6e62('0x5f'),'channel':_0x168992[_0x6e62('0x60')],'file':_0x19a7e9,'options':_0x6e62('0x61')})[_0x6e62('0x1b')](function(_0x5378b5){var _0x2aa82d=_['find'](_0x168992[_0x6e62('0x62')],{'filename':_0x6e62('0x63')+_0x19a7e9[_0x6e62('0x64')]()});if(_[_0x6e62('0x65')](_0x2aa82d)){_0x168992[_0x6e62('0x62')][_0x6e62('0x66')]({'filename':_0x6e62('0x63')+_0x19a7e9['toLowerCase'](),'createdAt':moment()[_0x6e62('0x5d')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x5378b5[_0x6e62('0x67')],'status':_0x6e62('0x68')});}else{_0x2aa82d[_0x6e62('0x67')]=_0x5378b5[_0x6e62('0x67')];_0x2aa82d[_0x6e62('0x69')]='rec';}_0x34d642({'code':0xc8,'message':[_0x45da05[_0x6e62('0x5a')],'MixMonitor\x20Success',_0x5378b5[_0x6e62('0x67')]][_0x6e62('0x15')]('\x20'),'mixmonitorid':_0x5378b5[_0x6e62('0x67')]});})['catch'](function(_0x577eb4){_0x5ca4eb(_0x1aaec8[_0x6e62('0x11')](0x1f5,[_0x45da05['uniqueid'],_0x577eb4[_0x6e62('0x1c')]['toLowerCase']()][_0x6e62('0x15')]('\x20')));});}else{return _0x5ca4eb(_0x1aaec8['error'](0x1f5,_0x6e62('0x6a')));}});},'VoiceChannelStopMixMonitor':function(_0xb19995){var _0x5f2d00=this;return new Promise(function(_0x1226ce,_0x2f4f20){if(ami['isConnected']()==![]){return _0x2f4f20(_0x5f2d00['error'](0x1f4,[config[_0x6e62('0x12')]['ip'],config[_0x6e62('0x12')][_0x6e62('0x13')],_0x6e62('0x14')][_0x6e62('0x15')]('\x20')));}var _0x1eb6e8=schema(properties[_0x6e62('0x59')])['validate'](_0xb19995);if(_0x1eb6e8[_0x6e62('0x54')]>0x0){return _0x2f4f20(_0x5f2d00[_0x6e62('0x11')](0x1f4,_[_0x6e62('0x6b')](_0x1eb6e8,_0x6e62('0x1c'))[_0x6e62('0x15')](',\x20')));}var _0x492ffd=_[_0x6e62('0x55')](_0x4d4816[_0x6e62('0x58')],{'uniqueid':_0xb19995['uniqueid']});if(_0x492ffd){return BPromise[_0x6e62('0x6c')]()[_0x6e62('0x1b')](function(){if(_0x492ffd[_0x6e62('0x60')]){return ami[_0x6e62('0x1a')]({'action':_0x6e62('0x6d'),'channel':_0x492ffd['channel'],'mixmonitorid':_0xb19995[_0x6e62('0x67')]})[_0x6e62('0x1d')](function(_0x28435b){});}})['then'](function(){if(_0x492ffd[_0x6e62('0x6e')]){return ami[_0x6e62('0x1a')]({'action':'StopMixMonitor','channel':_0x492ffd[_0x6e62('0x6e')],'mixmonitorid':_0xb19995['mixmonitorid']})[_0x6e62('0x1d')](function(_0xb22e54){});}})[_0x6e62('0x1b')](function(_0x5db78e){var _0x58e9bd=_[_0x6e62('0x55')](_0x492ffd[_0x6e62('0x62')],{'mixmonitorid':_0xb19995[_0x6e62('0x67')]});if(_0x58e9bd){_0x58e9bd[_0x6e62('0x69')]=_0x6e62('0x6f');}})[_0x6e62('0x1b')](function(){var _0x1a778a=util[_0x6e62('0x5d')]('%s.%s',_0xb19995[_0x6e62('0x5c')]||_0xb19995[_0x6e62('0x5a')],_0xb19995['format']||_0x6e62('0x5e'));var _0x4a079d=_[_0x6e62('0x55')](_0x492ffd[_0x6e62('0x62')],{'filename':_0x6e62('0x63')+_0x1a778a[_0x6e62('0x64')]()});if(_0x4a079d){_0x4a079d['status']='stop';}})[_0x6e62('0x1b')](function(){_0x1226ce({'code':0xc8,'message':[_0xb19995[_0x6e62('0x5a')],_0x6e62('0x70')][_0x6e62('0x15')]('\x20')});})[_0x6e62('0x1d')](function(_0x60b516){_0x2f4f20(_0x5f2d00[_0x6e62('0x11')](0x1f5,[_0xb19995[_0x6e62('0x5a')],_0x60b516['message'][_0x6e62('0x64')]()][_0x6e62('0x15')]('\x20')));});}else{return _0x2f4f20(_0x5f2d00[_0x6e62('0x11')](0x1f5,_0x6e62('0x6a')));}});},'VoiceQueuesChannels':function(_0x1685c4){return new Promise(function(_0x8ff2c0,_0x3268e2){var _0x37816e=_[_0x6e62('0x71')](_0x4d4816['queueChannels']);_0x8ff2c0({'count':_0x37816e[_0x6e62('0x54')],'rows':_0x37816e});});},'VoiceQueuesChannel':function(_0x256993){var _0x3ddc7f=this;return new Promise(function(_0x8b84d7,_0xeb5195){var _0x3937b3=schema(properties[_0x6e62('0x72')])[_0x6e62('0x3')](_0x256993);if(_0x3937b3[_0x6e62('0x54')]>0x0){return _0xeb5195(_0x3ddc7f[_0x6e62('0x11')](0x1f4,_[_0x6e62('0x6b')](_0x3937b3,_0x6e62('0x1c'))[_0x6e62('0x15')](',\x20')));}var _0x3be758=_[_0x6e62('0x55')](_0x4d4816[_0x6e62('0x73')],{'uniqueid':_0x256993[_0x6e62('0x5a')]});if(_0x3be758){_0x8b84d7(_0x3be758);}else{return _0xeb5195(_0x3ddc7f['error'](0x1f5,_0x6e62('0x6a')));}});},'VoiceQueuesChannelHangup':function(_0x174f93){var _0x2c11e4=this;return new Promise(function(_0x256608,_0x53684f){if(ami[_0x6e62('0x10')]()==![]){return _0x53684f(_0x2c11e4[_0x6e62('0x11')](0x1f4,[config[_0x6e62('0x12')]['ip'],config['asterisk'][_0x6e62('0x13')],_0x6e62('0x14')][_0x6e62('0x15')]('\x20')));}var _0x1fd508=schema(properties['voicequeuechannelhangup'])[_0x6e62('0x3')](_0x174f93);if(_0x1fd508[_0x6e62('0x54')]>0x0){return _0x53684f(_0x2c11e4[_0x6e62('0x11')](0x1f4,_[_0x6e62('0x6b')](_0x1fd508,_0x6e62('0x1c'))[_0x6e62('0x15')](',\x20')));}var _0x1e7420=_[_0x6e62('0x55')](_0x4d4816[_0x6e62('0x73')],{'uniqueid':_0x174f93[_0x6e62('0x5a')]});if(_0x1e7420&&_0x1e7420[_0x6e62('0x60')]){return ami[_0x6e62('0x1a')]({'action':_0x6e62('0x74'),'channel':_0x1e7420[_0x6e62('0x60')]})['then'](function(_0xf25da3){_0x256608({'code':0xc8,'message':[_0x174f93[_0x6e62('0x5a')],_0xf25da3[_0x6e62('0x1c')][_0x6e62('0x64')]()][_0x6e62('0x15')]('\x20')});})[_0x6e62('0x1d')](function(_0x451dd1){_0x53684f(_0x2c11e4[_0x6e62('0x11')](0x1f5,[_0x174f93['uniqueid'],_0x451dd1[_0x6e62('0x1c')][_0x6e62('0x64')]()][_0x6e62('0x15')]('\x20')));});}else{return _0x53684f(_0x2c11e4[_0x6e62('0x11')](0x1f5,_0x6e62('0x6a')));}});},'VoiceQueuesChannelRedirect':function(_0x2f6e7c){var _0x4066aa=this;return new Promise(function(_0x489e44,_0x45319f){if(ami[_0x6e62('0x10')]()==![]){return _0x45319f(_0x4066aa[_0x6e62('0x11')](0x1f4,[config[_0x6e62('0x12')]['ip'],config[_0x6e62('0x12')][_0x6e62('0x13')],_0x6e62('0x14')][_0x6e62('0x15')]('\x20')));}var _0x2034bf=schema(properties[_0x6e62('0x75')])[_0x6e62('0x3')](_0x2f6e7c);if(_0x2034bf[_0x6e62('0x54')]>0x0){return _0x45319f(_0x4066aa[_0x6e62('0x11')](0x1f4,_[_0x6e62('0x6b')](_0x2034bf,_0x6e62('0x1c'))[_0x6e62('0x15')](',\x20')));}var _0x4577c0=_[_0x6e62('0x55')](_0x4d4816['queueChannels'],{'uniqueid':_0x2f6e7c[_0x6e62('0x5a')]});if(_0x4577c0&&_0x4577c0[_0x6e62('0x60')]){return ami[_0x6e62('0x1a')]({'action':_0x6e62('0x76'),'channel':_0x4577c0[_0x6e62('0x60')],'exten':_0x2f6e7c[_0x6e62('0x77')],'context':_0x2f6e7c['context']||_0x4577c0[_0x6e62('0x78')],'priority':0x1})[_0x6e62('0x1b')](function(_0x518213){_0x489e44({'code':0xc8,'message':[_0x2f6e7c[_0x6e62('0x5a')],_0x518213['message']['toLowerCase']()][_0x6e62('0x15')]('\x20')});})[_0x6e62('0x1d')](function(_0x14b2a7){_0x45319f(_0x4066aa[_0x6e62('0x11')](0x1f5,[_0x2f6e7c['uniqueid'],_0x14b2a7[_0x6e62('0x1c')][_0x6e62('0x64')]()][_0x6e62('0x15')]('\x20')));});}else{return _0x45319f(_0x4066aa[_0x6e62('0x11')](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'Agents':function(_0x320981){return new Promise(function(_0x374d33,_0x44747a){var _0x5cfbb9=_[_0x6e62('0x71')](_0x4d4816['agents']);_0x374d33({'count':_0x5cfbb9['length'],'rows':_0x5cfbb9});});},'Telephones':function(_0x35beef){return new Promise(function(_0x3b1917,_0x129eca){var _0x5368de=_['values'](_0x4d4816[_0x6e62('0x79')]);_0x3b1917({'count':_0x5368de[_0x6e62('0x54')],'rows':_0x5368de});});},'Trunks':function(_0x15c205){return new Promise(function(_0x38a760,_0x28d430){var _0x54ee57=_[_0x6e62('0x71')](_0x4d4816[_0x6e62('0x7a')]);_0x38a760({'count':_0x54ee57[_0x6e62('0x54')],'rows':_0x54ee57});});},'OutboundChannels':function(_0x1c7688){return new Promise(function(_0x5cc806,_0x48e7b7){var _0x8f326e=_[_0x6e62('0x71')](_0x4d4816['outboundChannels']);_0x5cc806({'count':_0x8f326e['length'],'rows':_0x8f326e});});},'Outbound':function(_0x3eb4a1){return new Promise(function(_0x2fb04e,_0x346cd6){_0x2fb04e(_0x4d4816[_0x6e62('0x7b')]);});},'Campaigns':function(_0x102e42){return new Promise(function(_0x288955,_0x431bdd){var _0x1ac390=_[_0x6e62('0x71')](_0x4d4816['campaigns']);_0x288955({'count':_0x1ac390[_0x6e62('0x54')],'rows':_0x1ac390});});},'VoiceQueuesPreview':function(_0x1ee1f9){var _0x1e753b=this;return new Promise(function(_0x5ae85e,_0x1efc4c){_0x5f25a3['run'](_0x1ee1f9['id'])[_0x6e62('0x1b')](function(_0x258314){_0x5ae85e({'code':0xc8,'message':_0x258314['message']});})[_0x6e62('0x1d')](function(_0x19879c){_0x1efc4c(_0x1e753b[_0x6e62('0x11')](0x1f4,_0x19879c[_0x6e62('0x1c')]));});});},'EventManager':function(_0x25d318){var _0x35f31b=this;return new Promise(function(_0x162750,_0x519e98){if(!_0x25d318['event']){return _0x519e98(_0x35f31b[_0x6e62('0x11')](0x1f4,'Event\x20name\x20mandatory'));}ami[_0x6e62('0x7c')](_0x6e62('0x7d')+_0x25d318['event'],_0x25d318[_0x6e62('0x1c')]);_0x162750({'code':0xc8,'message':_0x25d318});});},'FaxAccounts':function(_0x4cf02a){return new Promise(function(_0xc63c1a,_0x567624){var _0x334092=_['values'](_0x4d4816[_0x6e62('0x7e')]);_0xc63c1a({'count':_0x334092[_0x6e62('0x54')],'rows':_0x334092});});},'SendFax':function(_0x454f23){var _0x47745e=this;return new Promise(function(_0x45f361,_0x5ce958){_0x4a778d[_0x6e62('0x7f')](_0x454f23)[_0x6e62('0x1b')](function(_0x14df12){_0x45f361({'code':0xc8,'message':_0x14df12[_0x6e62('0x1c')]});})[_0x6e62('0x1d')](function(_0x2049e4){_0x5ce958(_0x47745e[_0x6e62('0x11')](0x1f4,_0x2049e4[_0x6e62('0x1c')]));});});},'CheckAfterSend':function(_0x7fa90b){var _0x4767b1=this;return new Promise(function(_0x1f7b9d,_0x5706a9){_0x4a778d[_0x6e62('0x80')](_0x7fa90b)[_0x6e62('0x1b')](function(_0x52c724){_0x1f7b9d({'code':0xc8,'message':_0x52c724['message']});})['catch'](function(_0xaa43f){_0x5706a9(_0x4767b1[_0x6e62('0x11')](0x1f4,_0xaa43f[_0x6e62('0x1c')]));});});}};var _0x40d958=jayson['server'](_0x55165e)['http']();_0x40d958['on'](_0x6e62('0x11'),function(_0x22cfd7){return _0x157047(_0x22cfd7);});_0x40d958[_0x6e62('0x8')](0x232a,_0x6e62('0x81'),function(){console[_0x6e62('0x82')](_0x6e62('0x83'),0x232a);return _0x2ee927(_0x6e62('0x84')+0x232a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3f9=['merge','bluebird','ioredis','../../../../config/environment','trigger','../../rpc/cmContact','redis','defaults','socket.io-emitter','info','stringify','emit','data1','data2','xmd-contactid','data3','phone','$or','map','destcalleridnum','calleridnum','firstName','lastName','mobile','fax','ListId','createdAt','scheduledAt','updatedAt','resolve','then','getContacts','isEmpty','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','routeId','calleridname','<unknown>','Unknown','destcalleridname','createContact','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','push','user:%s','name','action','toLowerCase'];(function(_0x346b91,_0x47da02){var _0x19650b=function(_0x729a9){while(--_0x729a9){_0x346b91['push'](_0x346b91['shift']());}};_0x19650b(++_0x47da02);}(_0xf3f9,0xd9));var _0x9f3f=function(_0x4149b7,_0x109dd8){_0x4149b7=_0x4149b7-0x0;var _0x3b952e=_0xf3f9[_0x4149b7];return _0x3b952e;};'use strict';var _=require('lodash');var BPromise=require(_0x9f3f('0x0'));var Redis=require(_0x9f3f('0x1'));var util=require('util');var config=require(_0x9f3f('0x2'));var logger=require('../../../../config/logger')(_0x9f3f('0x3'));var cmContactRpc=require(_0x9f3f('0x4'));config[_0x9f3f('0x5')]=_[_0x9f3f('0x6')](config[_0x9f3f('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0x9f3f('0x7'))(new Redis(config[_0x9f3f('0x5')]));function emit(_0x1c3fee,_0x5a84b8,_0x555762,_0x718fbc,_0x33fec9){logger[_0x9f3f('0x8')]('[CM][%s][%s]',_0x1c3fee,_0x5a84b8['id'],_0x555762,_0x718fbc,JSON[_0x9f3f('0x9')](_0x33fec9));io['to'](_0x555762)[_0x9f3f('0xa')](_0x718fbc,_0x33fec9);}exports['exec']=function(_0x248764,_0x4cfdc7,_0x31d9d6,_0x262667){var _0x3a27c9,_0x68fc23;var _0x27d4c6={};var _0x5835bb=Number(_0x31d9d6[_0x9f3f('0xb')]);var _0x1b886e=_0x31d9d6['data2']?Boolean(Number(_0x31d9d6[_0x9f3f('0xc')])):![];var _0x501049;if(_0x262667[_0x9f3f('0xd')]){_0x27d4c6['id']=_0x262667[_0x9f3f('0xd')];}if(!_0x27d4c6['id']){_0x27d4c6['ListId']=_0x5835bb;_0x501049=_0x31d9d6[_0x9f3f('0xe')]&&_0x31d9d6[_0x9f3f('0xe')]!=='0'?_0x31d9d6[_0x9f3f('0xe')]['split'](','):[_0x9f3f('0xf')];_0x27d4c6[_0x9f3f('0x10')]=_[_0x9f3f('0x11')](_0x501049,function(_0x26984a){var _0x2a3905={};_0x2a3905[_0x26984a]=_0x262667['routeId']?_0x262667[_0x9f3f('0x12')]:_0x262667[_0x9f3f('0x13')];return _0x2a3905;});}var _0x2a5792=['id',_0x9f3f('0x14'),_0x9f3f('0x15'),_0x9f3f('0xf'),_0x9f3f('0x16'),_0x9f3f('0x17'),_0x9f3f('0x18'),_0x9f3f('0x19'),_0x9f3f('0x1a'),_0x9f3f('0x1b')];var _0x492075=_['union'](_0x2a5792,_0x501049);BPromise[_0x9f3f('0x1c')]()[_0x9f3f('0x1d')](cmContactRpc[_0x9f3f('0x1e')]({'attributes':_0x492075,'where':_0x27d4c6}))[_0x9f3f('0x1d')](function(_0x1e4a18){_0x68fc23=_0x1e4a18;if(!_[_0x9f3f('0x1f')](_0x68fc23)){if(_0x68fc23['length']===0x1){_0x3a27c9=_0x68fc23[0x0];logger[_0x9f3f('0x8')](_0x9f3f('0x20'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id'],_0x3a27c9['id']);}else{logger['info'](_0x9f3f('0x22'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id'],_['map'](_0x68fc23,'id')[_0x9f3f('0x23')](','));}return;}else{logger[_0x9f3f('0x8')](_0x9f3f('0x24'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id']);var _0x138b4a={'ListId':_0x5835bb};var _0x36e5c3=_0x31d9d6[_0x9f3f('0x25')]&&_0x31d9d6[_0x9f3f('0x25')]!=='0'?_0x31d9d6['data4']:'phone';if(_0x1b886e){logger[_0x9f3f('0x8')](_0x9f3f('0x26'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id']);_0x138b4a[_0x36e5c3]=_[_0x9f3f('0x27')](_0x262667[_0x9f3f('0x28')])?_0x262667['calleridnum']:_0x262667[_0x9f3f('0x12')];if(_[_0x9f3f('0x27')](_0x262667['routeId'])){_0x138b4a[_0x9f3f('0x14')]=_0x262667[_0x9f3f('0x29')]&&_0x262667[_0x9f3f('0x29')]!==_0x9f3f('0x2a')?_0x262667[_0x9f3f('0x29')]:_0x9f3f('0x2b');}else{_0x138b4a['firstName']=_0x262667['destcalleridname']&&_0x262667[_0x9f3f('0x2c')]!==_0x9f3f('0x2a')?_0x262667[_0x9f3f('0x2c')]:_0x9f3f('0x2b');}return BPromise[_0x9f3f('0x1c')]()[_0x9f3f('0x1d')](cmContactRpc[_0x9f3f('0x2d')](_0x138b4a))[_0x9f3f('0x1d')](function(_0x14645b){_0x3a27c9=_0x14645b;_0x68fc23['push'](_0x14645b);if(_0x3a27c9){logger[_0x9f3f('0x8')](_0x9f3f('0x2e'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id'],_0x3a27c9['id']);}return;});}else{logger['info'](_0x9f3f('0x2f'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id']);_0x138b4a[_0x36e5c3]=_[_0x9f3f('0x27')](_0x262667[_0x9f3f('0x28')])?_0x262667[_0x9f3f('0x13')]:_0x262667[_0x9f3f('0x12')];if(_['isNil'](_0x262667[_0x9f3f('0x28')])){_0x138b4a[_0x9f3f('0x14')]=_0x262667['calleridname']&&_0x262667[_0x9f3f('0x29')]!=='<unknown>'?_0x262667['calleridname']:'Unknown';}else{_0x138b4a['firstName']=_0x262667[_0x9f3f('0x2c')]&&_0x262667['destcalleridname']!=='<unknown>'?_0x262667[_0x9f3f('0x2c')]:_0x9f3f('0x2b');}_0x3a27c9=_0x138b4a;_0x68fc23[_0x9f3f('0x30')](_0x138b4a);return;}}})[_0x9f3f('0x1d')](function(){if(_0x248764){emit(_0x262667[_0x9f3f('0x21')],_0x4cfdc7,util['format'](_0x9f3f('0x31'),_0x248764[_0x9f3f('0x32')]),util['format']('trigger:%s',_0x31d9d6[_0x9f3f('0x33')][_0x9f3f('0x34')]()),{'evt':_[_0x9f3f('0x35')](_0x262667,{'autoCreate':_0x1b886e}),'contact':_0x3a27c9===undefined?{}:_0x3a27c9,'contacts':_0x68fc23['length']===0x0?undefined:_0x68fc23});}});};
\ No newline at end of file
+var _0x008c=['defaults','localhost','socket.io-emitter','stringify','emit','data1','data2','isNil','data5','xmd-contactid','ListId','data3','phone','$or','map','firstName','scheduledAt','getContacts','then','isEmpty','length','info','uniqueid','join','data4','routeId','calleridnum','destcalleridnum','calleridname','Unknown','<unknown>','destcalleridname','resolve','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','user:%s','name','trigger:%s','action','toLowerCase','lodash','bluebird','ioredis','util','../../../../config/environment','trigger','../../rpc/cmContact','redis'];(function(_0x239e6d,_0x31be14){var _0x8d1bd5=function(_0x1fb85c){while(--_0x1fb85c){_0x239e6d['push'](_0x239e6d['shift']());}};_0x8d1bd5(++_0x31be14);}(_0x008c,0x188));var _0xc008=function(_0x1eeb45,_0x526bf0){_0x1eeb45=_0x1eeb45-0x0;var _0x541ed5=_0x008c[_0x1eeb45];return _0x541ed5;};'use strict';var _=require(_0xc008('0x0'));var BPromise=require(_0xc008('0x1'));var Redis=require(_0xc008('0x2'));var util=require(_0xc008('0x3'));var config=require(_0xc008('0x4'));var logger=require('../../../../config/logger')(_0xc008('0x5'));var cmContactRpc=require(_0xc008('0x6'));config[_0xc008('0x7')]=_[_0xc008('0x8')](config[_0xc008('0x7')],{'host':_0xc008('0x9'),'port':0x18eb});var io=require(_0xc008('0xa'))(new Redis(config[_0xc008('0x7')]));function emit(_0x9c8cb2,_0x4af530,_0x428fa9,_0x5aa09b,_0x30be38){logger['info']('[CM][%s][%s]',_0x9c8cb2,_0x4af530['id'],_0x428fa9,_0x5aa09b,JSON[_0xc008('0xb')](_0x30be38));io['to'](_0x428fa9)[_0xc008('0xc')](_0x5aa09b,_0x30be38);}exports['exec']=function(_0x51ba7d,_0x543eb8,_0x1eacfa,_0xc881aa){var _0x5b2004,_0xae2dab;var _0x332fd4={};var _0x2ea200=Number(_0x1eacfa[_0xc008('0xd')]);var _0x9ffa93=_0x1eacfa[_0xc008('0xe')]?Boolean(Number(_0x1eacfa[_0xc008('0xe')])):![];var _0x593f7a;var _0x560e28=![];if(!_[_0xc008('0xf')](_0x1eacfa['data5'])){if(_0x1eacfa[_0xc008('0x10')]=='1')_0x560e28=!![];}if(!_0x560e28){if(_0xc881aa[_0xc008('0x11')]){_0x332fd4['id']=_0xc881aa[_0xc008('0x11')];}}if(!_0x332fd4['id']){_0x332fd4[_0xc008('0x12')]=_0x2ea200;_0x593f7a=_0x1eacfa[_0xc008('0x13')]&&_0x1eacfa['data3']!=='0'?_0x1eacfa['data3']['split'](','):[_0xc008('0x14')];_0x332fd4[_0xc008('0x15')]=_[_0xc008('0x16')](_0x593f7a,function(_0x3eb12a){var _0x4fe771={};_0x4fe771[_0x3eb12a]=_0xc881aa['routeId']?_0xc881aa['destcalleridnum']:_0xc881aa['calleridnum'];return _0x4fe771;});}var _0x46042b=['id',_0xc008('0x17'),'lastName',_0xc008('0x14'),'mobile','fax','ListId','createdAt',_0xc008('0x18'),'updatedAt'];var _0x5560b1=_['union'](_0x46042b,_0x593f7a);BPromise['resolve']()['then'](cmContactRpc[_0xc008('0x19')]({'attributes':_0x5560b1,'where':_0x332fd4}))[_0xc008('0x1a')](function(_0x251db2){_0xae2dab=_0x251db2;if(!_[_0xc008('0x1b')](_0xae2dab)){if(_0xae2dab[_0xc008('0x1c')]===0x1){_0x5b2004=_0xae2dab[0x0];logger[_0xc008('0x1d')]('[CM][%s][%s]\x20Contact\x20found:%s',_0xc881aa[_0xc008('0x1e')],_0x543eb8['id'],_0x5b2004['id']);}else{logger['info']('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0xc881aa[_0xc008('0x1e')],_0x543eb8['id'],_[_0xc008('0x16')](_0xae2dab,'id')[_0xc008('0x1f')](','));}return;}else{logger[_0xc008('0x1d')]('[CM][%s][%s]\x20Contact\x20not\x20found',_0xc881aa['uniqueid'],_0x543eb8['id']);var _0x5de1e9={'ListId':_0x2ea200};var _0x3f7b07=_0x1eacfa[_0xc008('0x20')]&&_0x1eacfa[_0xc008('0x20')]!=='0'?_0x1eacfa[_0xc008('0x20')]:'phone';if(_0x9ffa93){logger['info']('[CM][%s][%s]\x20Autocreate\x20enabled',_0xc881aa['uniqueid'],_0x543eb8['id']);_0x5de1e9[_0x3f7b07]=_['isNil'](_0xc881aa[_0xc008('0x21')])?_0xc881aa[_0xc008('0x22')]:_0xc881aa[_0xc008('0x23')];if(_['isNil'](_0xc881aa[_0xc008('0x21')])){_0x5de1e9[_0xc008('0x17')]=_0xc881aa[_0xc008('0x24')]&&_0xc881aa[_0xc008('0x24')]!=='<unknown>'?_0xc881aa[_0xc008('0x24')]:_0xc008('0x25');}else{_0x5de1e9['firstName']=_0xc881aa['destcalleridname']&&_0xc881aa['destcalleridname']!==_0xc008('0x26')?_0xc881aa[_0xc008('0x27')]:_0xc008('0x25');}return BPromise[_0xc008('0x28')]()[_0xc008('0x1a')](cmContactRpc[_0xc008('0x29')](_0x5de1e9))[_0xc008('0x1a')](function(_0x22d8e8){_0x5b2004=_0x22d8e8;_0xae2dab[_0xc008('0x2a')](_0x22d8e8);if(_0x5b2004){logger[_0xc008('0x1d')](_0xc008('0x2b'),_0xc881aa[_0xc008('0x1e')],_0x543eb8['id'],_0x5b2004['id']);}return;});}else{logger['info'](_0xc008('0x2c'),_0xc881aa[_0xc008('0x1e')],_0x543eb8['id']);_0x5de1e9[_0x3f7b07]=_['isNil'](_0xc881aa[_0xc008('0x21')])?_0xc881aa[_0xc008('0x22')]:_0xc881aa[_0xc008('0x23')];if(_[_0xc008('0xf')](_0xc881aa[_0xc008('0x21')])){_0x5de1e9[_0xc008('0x17')]=_0xc881aa[_0xc008('0x24')]&&_0xc881aa[_0xc008('0x24')]!==_0xc008('0x26')?_0xc881aa['calleridname']:_0xc008('0x25');}else{_0x5de1e9[_0xc008('0x17')]=_0xc881aa[_0xc008('0x27')]&&_0xc881aa[_0xc008('0x27')]!==_0xc008('0x26')?_0xc881aa[_0xc008('0x27')]:_0xc008('0x25');}_0x5b2004=_0x5de1e9;_0xae2dab['push'](_0x5de1e9);return;}}})[_0xc008('0x1a')](function(){if(_0x51ba7d){emit(_0xc881aa[_0xc008('0x1e')],_0x543eb8,util['format'](_0xc008('0x2d'),_0x51ba7d[_0xc008('0x2e')]),util['format'](_0xc008('0x2f'),_0x1eacfa[_0xc008('0x30')][_0xc008('0x31')]()),{'evt':_['merge'](_0xc881aa,{'autoCreate':_0x9ffa93}),'contact':_0x5b2004===undefined?{}:_0x5b2004,'contacts':_0xae2dab['length']===0x0?undefined:_0xae2dab});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0690=['channel','AnyConditions','field','ChatWebsiteId','AccountId','operator','value','upperFirst','membername','lastevent','exports','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','../../../config/logger','../ami','redis','defaults','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:timeout','custom:dialbegin','custom:dialconnect','custom:dialend','syncAgentDial','custom:newinteraction','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','clone','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','uri','buildUri','isNil','data3','data4','windowWidth','data5','800','windowHeight','data6','600','winArguments','format','user:%s','name','jscripty','trigger:%s','queue','routeId','urlforward','exec','script','parse','query','search','AllConditions','every','checkConditions'];(function(_0xb13128,_0x3f0e83){var _0x55c553=function(_0x107ee3){while(--_0x107ee3){_0xb13128['push'](_0xb13128['shift']());}};_0x55c553(++_0x3f0e83);}(_0x0690,0x1c7));var _0x0069=function(_0x4206f5,_0x21f338){_0x4206f5=_0x4206f5-0x0;var _0xa29cf3=_0x0690[_0x4206f5];return _0xa29cf3;};'use strict';var util=require('util');var _=require(_0x0069('0x0'));var url=require(_0x0069('0x1'));var Mustache=require(_0x0069('0x2'));var Redis=require(_0x0069('0x3'));var urlforward=require(_0x0069('0x4'));var integration=require(_0x0069('0x5'));var cmContact=require(_0x0069('0x6'));var script=require('./script');var config=require('../../../config/environment');var logger=require(_0x0069('0x7'))('trigger');var ami=require(_0x0069('0x8'));config[_0x0069('0x9')]=_[_0x0069('0xa')](config[_0x0069('0x9')],{'host':_0x0069('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0069('0x9')]));var operators={'equals':function(_0x1db27d,_0x4f886e){return _0x1db27d==_0x4f886e;},'not_equals':function(_0x37265a,_0x586a65){return _0x37265a!=_0x586a65;}};var barAndWebActions=[_0x0069('0xc'),_0x0069('0x1'),_0x0069('0xd')];function Trigger(_0x25e464){this[_0x0069('0xe')]=_0x25e464[_0x0069('0xe')];this[_0x0069('0xf')]=_0x25e464[_0x0069('0xf')];this[_0x0069('0x10')]=_0x25e464[_0x0069('0x10')];this['templates']=_0x25e464[_0x0069('0x11')];this[_0x0069('0x12')]=_0x25e464[_0x0069('0x12')];this[_0x0069('0x13')]=_0x25e464[_0x0069('0x13')];this[_0x0069('0x14')]=_0x25e464[_0x0069('0x14')];this[_0x0069('0x15')]=_0x25e464[_0x0069('0x15')];this[_0x0069('0x16')]=_0x25e464['sugarcrmAccounts'];this[_0x0069('0x17')]=_0x25e464['zohoAccounts'];this['deskAccounts']=_0x25e464['deskAccounts'];this[_0x0069('0x18')]=_0x25e464[_0x0069('0x18')];this[_0x0069('0x19')]=_0x25e464['servicenowAccounts'];this['dynamics365Accounts']=_0x25e464[_0x0069('0x1a')];this[_0x0069('0x1b')]=_0x25e464[_0x0069('0x1b')];this[_0x0069('0x1c')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x0069('0x15')],'freshdesk':this[_0x0069('0x14')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0x0069('0x18')],'dynamics365':this[_0x0069('0x1a')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0x0069('0x1d'),this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x1f'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x21'),this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x22'),this[_0x0069('0x20')]['bind'](this));ami['on'](_0x0069('0x23'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:agentnoanswer',this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0x0069('0x25'),this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x26'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x27'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:queuecallerabandon',this['syncCustomEvent']['bind'](this));ami['on'](_0x0069('0x28'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x29'),this['syncAgentDial'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x2a'),this['syncAgentDial']['bind'](this));ami['on'](_0x0069('0x2b'),this[_0x0069('0x2c')]['bind'](this));ami['on'](_0x0069('0x2d'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:closedinteraction',this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x2e'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:outgoingmessage',this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x2f'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x30'),this['syncCustomEvent'][_0x0069('0x1e')](this));}Trigger[_0x0069('0x31')][_0x0069('0x32')]=function(_0x3a51fa,_0x415ca8,_0xebec2b){logger[_0x0069('0x33')](_0x3a51fa,_0x415ca8,JSON['stringify'](_0xebec2b));io['to'](_0x3a51fa)[_0x0069('0x32')](_0x415ca8,_0xebec2b);};Trigger[_0x0069('0x31')][_0x0069('0x20')]=function(_0x1b094c){var _0x680833=_[_0x0069('0x34')](_0x1b094c);this[_0x0069('0x35')](_0x680833);};Trigger['prototype']['syncAgentDial']=function(_0x36595f){if(this[_0x0069('0xf')][_0x36595f['interface']]){this['syncCustomEvent'](_0x36595f);}};Trigger[_0x0069('0x31')][_0x0069('0x35')]=function(_0x704e8c){var _0x5abf2f;for(var _0x47c386 in this[_0x0069('0xe')]){if(this[_0x0069('0xe')][_0x0069('0x36')](_0x47c386)){if(this[_0x0069('0xe')][_0x47c386][_0x0069('0x37')]){_0x5abf2f=this[_0x0069('0x38')](this['triggers'][_0x47c386],_0x704e8c);if(_0x5abf2f){_[_0x0069('0x39')](_0x704e8c,_0x704e8c[_0x0069('0x3a')]);for(var _0x5ec4d3=0x0,_0x35101c,_0x3e0db2,_0x18aec9;_0x5ec4d3<this[_0x0069('0xe')][_0x47c386][_0x0069('0x3b')][_0x0069('0x3c')];_0x5ec4d3+=0x1){_0x35101c=this[_0x0069('0xe')][_0x47c386][_0x0069('0x3b')][_0x5ec4d3];if(this['agents'][_0x704e8c[_0x0069('0x3d')]]){switch(_0x35101c[_0x0069('0x3e')][_0x0069('0x3f')]()){case _0x0069('0x40'):break;case _0x0069('0x41'):case _0x0069('0x42'):var _0x36b9f8={};switch(barAndWebActions[_0x35101c[_0x0069('0x43')]]){case'popup':_0x36b9f8[_0x0069('0x44')]=_0x35101c[_0x0069('0x45')];_0x36b9f8[_0x0069('0x46')]=this['templates'][_0x35101c[_0x0069('0x45')]]?Mustache[_0x0069('0x47')](this['templates'][_0x35101c[_0x0069('0x45')]][_0x0069('0x46')],_0x704e8c):'template\x20not\x20found';break;case'url':_0x36b9f8[_0x0069('0x48')]=this[_0x0069('0x49')](_0x35101c['data2'],_0x704e8c,_[_0x0069('0x4a')](_0x35101c[_0x0069('0x4b')])?!![]:parseInt(_0x35101c[_0x0069('0x4b')],0xa));if(_[_0x0069('0x4a')](_0x35101c[_0x0069('0x4c')])){_0x36b9f8['location']='0';}else{_0x36b9f8['uriLocation']=_0x35101c[_0x0069('0x4c')];_0x36b9f8[_0x0069('0x4d')]=_['isNil'](_0x35101c[_0x0069('0x4e')])?_0x0069('0x4f'):_0x35101c['data5'];_0x36b9f8[_0x0069('0x50')]=_[_0x0069('0x4a')](_0x35101c[_0x0069('0x51')])?_0x0069('0x52'):_0x35101c['data6'];}break;case _0x0069('0xd'):_0x36b9f8['winApplication']=_0x35101c[_0x0069('0x45')]?Mustache[_0x0069('0x47')](_0x35101c[_0x0069('0x45')],_0x704e8c):'';_0x36b9f8[_0x0069('0x53')]=_0x35101c[_0x0069('0x4b')]?Mustache['render'](_0x35101c[_0x0069('0x4b')],_0x704e8c):'';break;}this['emit'](util[_0x0069('0x54')](_0x0069('0x55'),this[_0x0069('0xf')][_0x704e8c['interface']][_0x0069('0x56')]),util['format']('trigger:%s:%s',_0x35101c[_0x0069('0x3e')][_0x0069('0x3f')](),barAndWebActions[_0x35101c[_0x0069('0x43')]]),_[_0x0069('0x39')](_0x36b9f8,_0x704e8c));break;case _0x0069('0x57'):this[_0x0069('0x32')](util[_0x0069('0x54')](_0x0069('0x55'),this[_0x0069('0xf')][_0x704e8c[_0x0069('0x3d')]][_0x0069('0x56')]),util[_0x0069('0x54')](_0x0069('0x58'),_0x35101c[_0x0069('0x3e')][_0x0069('0x3f')]()),_[_0x0069('0x39')]({'ProjectId':parseInt(_0x35101c['data1'],0xa)},_0x704e8c));break;default:this[_0x0069('0x32')](util[_0x0069('0x54')](_0x0069('0x55'),this[_0x0069('0xf')][_0x704e8c['interface']][_0x0069('0x56')]),util[_0x0069('0x54')](_0x0069('0x58'),_0x35101c[_0x0069('0x3e')]['toLowerCase']()),_[_0x0069('0x39')]({},_0x35101c,_0x704e8c));}}switch(_0x35101c[_0x0069('0x3e')]['toLowerCase']()){case _0x0069('0x40'):cmContact['exec'](this['agents'][_0x704e8c['interface']],this[_0x0069('0xe')][_0x47c386],_0x35101c,_0x704e8c);break;case'integration':integration['exec'](_0x35101c,_0x704e8c,this[_0x0069('0x1c')],this[_0x0069('0xf')][_0x704e8c['interface']],this[_0x0069('0x10')][_0x704e8c[_0x0069('0x59')]],this[_0x0069('0x12')][_0x704e8c[_0x0069('0x5a')]]);break;case _0x0069('0x5b'):urlforward[_0x0069('0x5c')](_0x35101c,_0x704e8c);break;case _0x0069('0x5d'):script[_0x0069('0x5c')](_0x35101c,_0x704e8c);break;}}}}}}};Trigger[_0x0069('0x31')][_0x0069('0x49')]=function(_0x45a1a4,_0x5a89ba,_0x52aacc){var _0x4f9cbf=url[_0x0069('0x5e')](Mustache[_0x0069('0x47')](_0x45a1a4,_0x5a89ba),!![]);if(_0x52aacc){_['merge'](_0x4f9cbf[_0x0069('0x5f')],_0x5a89ba);}delete _0x4f9cbf[_0x0069('0x60')];var _0x4f34e1=url[_0x0069('0x54')](_0x4f9cbf);_0x4f34e1=_0x4f34e1['replace'](/\/\?/g,'?');return _0x4f34e1;};Trigger[_0x0069('0x31')][_0x0069('0x38')]=function(_0x2e824f,_0x3014d7){var _0x1b8f9c=!![],_0x442da9=!![];if(_0x2e824f[_0x0069('0x61')]['length']){_0x1b8f9c=_[_0x0069('0x62')](_0x2e824f[_0x0069('0x61')],this[_0x0069('0x63')](_0x3014d7,_0x2e824f[_0x0069('0x64')]));}if(_0x2e824f[_0x0069('0x65')][_0x0069('0x3c')]){_0x442da9=_['some'](_0x2e824f[_0x0069('0x65')],this[_0x0069('0x63')](_0x3014d7,_0x2e824f[_0x0069('0x64')]));}return _0x1b8f9c&&_0x442da9;};Trigger[_0x0069('0x31')][_0x0069('0x63')]=function(_0x15dd21,_0x1d450b){return function(_0x1af52f){switch(_0x1af52f[_0x0069('0x66')]){case'account':if(_0x15dd21[_0x0069('0x64')]===_0x1d450b){if(_0x1d450b==='chat'){return _0x15dd21[_0x0069('0x67')]?operators[_0x1af52f['operator']](Number(_0x1af52f['value']),_0x15dd21[_0x0069('0x67')]):![];}else{return _0x15dd21[_['upperFirst'](_0x1d450b)+_0x0069('0x68')]?operators[_0x1af52f[_0x0069('0x69')]](Number(_0x1af52f[_0x0069('0x6a')]),_0x15dd21[_[_0x0069('0x6b')](_0x1d450b)+_0x0069('0x68')]):![];}}break;case'interaction':case'message':if(_0x15dd21['channel']===_0x1d450b){return _0x15dd21['event']?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21['event']):![];}break;case _0x0069('0x59'):return _0x15dd21['queue']?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21[_0x0069('0x59')]):![];case'agent':return _0x15dd21[_0x0069('0x6c')]?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21[_0x0069('0x6c')]):![];case _0x0069('0x6d'):return _0x15dd21[_0x0069('0x6d')]?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21[_0x0069('0x6d')]):![];case _0x0069('0x5a'):return _0x15dd21['routeId']?operators[_0x1af52f['operator']](_0x1af52f['value'],_0x15dd21['routeId']):![];}return![];};};module[_0x0069('0x6e')]=Trigger;
\ No newline at end of file
+var _0xb74d=['every','checkConditions','field','account','chat','operator','value','interaction','message','event','agent','membername','lastevent','routeId','exports','util','url','ioredis','./integration','./cmContact','./script','../../../config/logger','trigger','../ami','redis','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','clone','motionChannel','undefined','checkTriggers','interface','hasOwnProperty','checkTrigger','merge','variables','Actions','length','action','browser','data1','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','windowWidth','800','data5','windowHeight','data6','600','winApplication','winArguments','format','user:%s','toLowerCase','jscripty','name','trigger:%s','contactmanager','exec','queue','urlforward','script','parse','query','search','replace','channel','AllConditions'];(function(_0xbb091,_0x3fe7ee){var _0x467a04=function(_0x3a978d){while(--_0x3a978d){_0xbb091['push'](_0xbb091['shift']());}};_0x467a04(++_0x3fe7ee);}(_0xb74d,0x16e));var _0xdb74=function(_0x54de5d,_0x1f8b26){_0x54de5d=_0x54de5d-0x0;var _0x1b349e=_0xb74d[_0x54de5d];return _0x1b349e;};'use strict';var util=require(_0xdb74('0x0'));var _=require('lodash');var url=require(_0xdb74('0x1'));var Mustache=require('mustache');var Redis=require(_0xdb74('0x2'));var urlforward=require('./urlforward');var integration=require(_0xdb74('0x3'));var cmContact=require(_0xdb74('0x4'));var script=require(_0xdb74('0x5'));var config=require('../../../config/environment');var logger=require(_0xdb74('0x6'))(_0xdb74('0x7'));var ami=require(_0xdb74('0x8'));config['redis']=_['defaults'](config[_0xdb74('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0xdb74('0xa'))(new Redis(config[_0xdb74('0x9')]));var operators={'equals':function(_0x47c4d6,_0x3bfe87){return _0x47c4d6==_0x3bfe87;},'not_equals':function(_0x5370df,_0x1b7936){return _0x5370df!=_0x1b7936;}};var barAndWebActions=[_0xdb74('0xb'),'url',_0xdb74('0xc')];function Trigger(_0x332ce4){this[_0xdb74('0xd')]=_0x332ce4['triggers'];this['agents']=_0x332ce4[_0xdb74('0xe')];this[_0xdb74('0xf')]=_0x332ce4[_0xdb74('0xf')];this[_0xdb74('0x10')]=_0x332ce4[_0xdb74('0x10')];this[_0xdb74('0x11')]=_0x332ce4[_0xdb74('0x11')];this[_0xdb74('0x12')]=_0x332ce4[_0xdb74('0x12')];this[_0xdb74('0x13')]=_0x332ce4[_0xdb74('0x13')];this[_0xdb74('0x14')]=_0x332ce4[_0xdb74('0x14')];this['sugarcrmAccounts']=_0x332ce4[_0xdb74('0x15')];this[_0xdb74('0x16')]=_0x332ce4[_0xdb74('0x16')];this[_0xdb74('0x17')]=_0x332ce4['deskAccounts'];this['vtigerAccounts']=_0x332ce4[_0xdb74('0x18')];this[_0xdb74('0x19')]=_0x332ce4['servicenowAccounts'];this[_0xdb74('0x1a')]=_0x332ce4[_0xdb74('0x1a')];this[_0xdb74('0x1b')]=_0x332ce4[_0xdb74('0x1b')];this['accounts']={'zendesk':this[_0xdb74('0x12')],'salesforce':this[_0xdb74('0x14')],'freshdesk':this[_0xdb74('0x13')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this[_0xdb74('0x17')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xdb74('0x1a')],'freshsales':this[_0xdb74('0x1b')],'servicenow':this[_0xdb74('0x19')]};ami['on'](_0xdb74('0x1c'),this['syncCustomEvent'][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x1e'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x20'),this['syncCustomEvent'][_0xdb74('0x1d')](this));ami['on']('custom:agentcomplete',this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x21'),this['syncCustomEvent'][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x22'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x23'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x24'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x25'),this['syncCustomEvent'][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x26'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x27'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x28'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on']('custom:dialbegin',this[_0xdb74('0x29')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x2a'),this[_0xdb74('0x29')][_0xdb74('0x1d')](this));ami['on']('custom:dialend',this[_0xdb74('0x29')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x2b'),this[_0xdb74('0x1f')]['bind'](this));ami['on'](_0xdb74('0x2c'),this['syncCustomEvent']['bind'](this));ami['on'](_0xdb74('0x2d'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x2e'),this['syncCustomEvent'][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x2f'),this['syncCustomEvent'][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x30'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));ami['on'](_0xdb74('0x31'),this[_0xdb74('0x1f')][_0xdb74('0x1d')](this));}Trigger[_0xdb74('0x32')][_0xdb74('0x33')]=function(_0x27c0a5,_0x360939,_0x3045a3){logger[_0xdb74('0x34')](_0x27c0a5,_0x360939,JSON['stringify'](_0x3045a3));io['to'](_0x27c0a5)[_0xdb74('0x33')](_0x360939,_0x3045a3);};Trigger[_0xdb74('0x32')][_0xdb74('0x1f')]=function(_0x44641e){var _0x318e93=_[_0xdb74('0x35')](_0x44641e);if(typeof _0x318e93[_0xdb74('0x36')]===_0xdb74('0x37')){_0x318e93[_0xdb74('0x36')]='voice';}this[_0xdb74('0x38')](_0x318e93);};Trigger['prototype'][_0xdb74('0x29')]=function(_0x54d384){if(this[_0xdb74('0xe')][_0x54d384[_0xdb74('0x39')]]){this[_0xdb74('0x1f')](_0x54d384);}};Trigger[_0xdb74('0x32')]['checkTriggers']=function(_0x38c278){var _0x408991;for(var _0x4c7b94 in this['triggers']){if(this['triggers'][_0xdb74('0x3a')](_0x4c7b94)){if(this['triggers'][_0x4c7b94]['status']){_0x408991=this[_0xdb74('0x3b')](this[_0xdb74('0xd')][_0x4c7b94],_0x38c278);if(_0x408991){_[_0xdb74('0x3c')](_0x38c278,_0x38c278[_0xdb74('0x3d')]);for(var _0x5ba2f0=0x0,_0x335f3c,_0x5d1c3b,_0xbfc56a;_0x5ba2f0<this[_0xdb74('0xd')][_0x4c7b94][_0xdb74('0x3e')][_0xdb74('0x3f')];_0x5ba2f0+=0x1){_0x335f3c=this[_0xdb74('0xd')][_0x4c7b94][_0xdb74('0x3e')][_0x5ba2f0];if(this[_0xdb74('0xe')][_0x38c278[_0xdb74('0x39')]]){switch(_0x335f3c[_0xdb74('0x40')]['toLowerCase']()){case'contactmanager':break;case'motionbar':case _0xdb74('0x41'):var _0x371661={};switch(barAndWebActions[_0x335f3c[_0xdb74('0x42')]]){case _0xdb74('0xb'):_0x371661['TemplateId']=_0x335f3c[_0xdb74('0x43')];_0x371661[_0xdb74('0x44')]=this[_0xdb74('0x10')][_0x335f3c[_0xdb74('0x43')]]?Mustache[_0xdb74('0x45')](this[_0xdb74('0x10')][_0x335f3c[_0xdb74('0x43')]]['html'],_0x38c278):_0xdb74('0x46');break;case _0xdb74('0x1'):_0x371661[_0xdb74('0x47')]=this[_0xdb74('0x48')](_0x335f3c[_0xdb74('0x43')],_0x38c278,_[_0xdb74('0x49')](_0x335f3c['data3'])?!![]:parseInt(_0x335f3c[_0xdb74('0x4a')],0xa));if(_[_0xdb74('0x49')](_0x335f3c[_0xdb74('0x4b')])){_0x371661[_0xdb74('0x4c')]='0';}else{_0x371661['uriLocation']=_0x335f3c[_0xdb74('0x4b')];_0x371661[_0xdb74('0x4d')]=_[_0xdb74('0x49')](_0x335f3c['data5'])?_0xdb74('0x4e'):_0x335f3c[_0xdb74('0x4f')];_0x371661[_0xdb74('0x50')]=_['isNil'](_0x335f3c[_0xdb74('0x51')])?_0xdb74('0x52'):_0x335f3c[_0xdb74('0x51')];}break;case _0xdb74('0xc'):_0x371661[_0xdb74('0x53')]=_0x335f3c[_0xdb74('0x43')]?Mustache['render'](_0x335f3c[_0xdb74('0x43')],_0x38c278):'';_0x371661[_0xdb74('0x54')]=_0x335f3c['data3']?Mustache[_0xdb74('0x45')](_0x335f3c['data3'],_0x38c278):'';break;}this[_0xdb74('0x33')](util[_0xdb74('0x55')](_0xdb74('0x56'),this[_0xdb74('0xe')][_0x38c278['interface']]['name']),util[_0xdb74('0x55')]('trigger:%s:%s',_0x335f3c['action'][_0xdb74('0x57')](),barAndWebActions[_0x335f3c[_0xdb74('0x42')]]),_[_0xdb74('0x3c')](_0x371661,_0x38c278));break;case _0xdb74('0x58'):this[_0xdb74('0x33')](util[_0xdb74('0x55')](_0xdb74('0x56'),this[_0xdb74('0xe')][_0x38c278[_0xdb74('0x39')]][_0xdb74('0x59')]),util['format'](_0xdb74('0x5a'),_0x335f3c[_0xdb74('0x40')][_0xdb74('0x57')]()),_[_0xdb74('0x3c')]({'ProjectId':parseInt(_0x335f3c['data1'],0xa)},_0x38c278));break;default:this[_0xdb74('0x33')](util['format'](_0xdb74('0x56'),this[_0xdb74('0xe')][_0x38c278[_0xdb74('0x39')]][_0xdb74('0x59')]),util[_0xdb74('0x55')](_0xdb74('0x5a'),_0x335f3c[_0xdb74('0x40')][_0xdb74('0x57')]()),_['merge']({},_0x335f3c,_0x38c278));}}switch(_0x335f3c[_0xdb74('0x40')]['toLowerCase']()){case _0xdb74('0x5b'):cmContact[_0xdb74('0x5c')](this['agents'][_0x38c278[_0xdb74('0x39')]],this['triggers'][_0x4c7b94],_0x335f3c,_0x38c278);break;case'integration':integration['exec'](_0x335f3c,_0x38c278,this['accounts'],this[_0xdb74('0xe')][_0x38c278[_0xdb74('0x39')]],this[_0xdb74('0xf')][_0x38c278[_0xdb74('0x5d')]],this[_0xdb74('0x11')][_0x38c278['routeId']]);break;case _0xdb74('0x5e'):urlforward['exec'](_0x335f3c,_0x38c278);break;case _0xdb74('0x5f'):script['exec'](_0x335f3c,_0x38c278);break;}}}}}}};Trigger[_0xdb74('0x32')][_0xdb74('0x48')]=function(_0xe06e2,_0x44b0a2,_0x300a16){var _0x2abad4=url[_0xdb74('0x60')](Mustache['render'](_0xe06e2,_0x44b0a2),!![]);if(_0x300a16){_[_0xdb74('0x3c')](_0x2abad4[_0xdb74('0x61')],_0x44b0a2);}delete _0x2abad4[_0xdb74('0x62')];var _0xb3817a=url[_0xdb74('0x55')](_0x2abad4);_0xb3817a=_0xb3817a[_0xdb74('0x63')](/\/\?/g,'?');return _0xb3817a;};Trigger['prototype']['checkTrigger']=function(_0x2e3b22,_0x50b4dd){var _0x593703=!![];var _0x53ed45=!![];var _0x4a4883=![];if(_0x2e3b22[_0xdb74('0x64')]===_0x50b4dd[_0xdb74('0x36')]){_0x4a4883=!![];}if(_0x2e3b22[_0xdb74('0x65')]['length']){_0x593703=_[_0xdb74('0x66')](_0x2e3b22['AllConditions'],this[_0xdb74('0x67')](_0x50b4dd,_0x2e3b22[_0xdb74('0x64')]));}if(_0x2e3b22['AnyConditions'][_0xdb74('0x3f')]){_0x53ed45=_['some'](_0x2e3b22['AnyConditions'],this[_0xdb74('0x67')](_0x50b4dd,_0x2e3b22['channel']));}return _0x4a4883&&_0x593703&&_0x53ed45;};Trigger[_0xdb74('0x32')][_0xdb74('0x67')]=function(_0x1dbb5d,_0x426124){return function(_0x5d201e){switch(_0x5d201e[_0xdb74('0x68')]){case _0xdb74('0x69'):if(_0x1dbb5d[_0xdb74('0x64')]===_0x426124){if(_0x426124===_0xdb74('0x6a')){return _0x1dbb5d['ChatWebsiteId']?operators[_0x5d201e[_0xdb74('0x6b')]](Number(_0x5d201e[_0xdb74('0x6c')]),_0x1dbb5d['ChatWebsiteId']):![];}else{return _0x1dbb5d[_['upperFirst'](_0x426124)+'AccountId']?operators[_0x5d201e[_0xdb74('0x6b')]](Number(_0x5d201e['value']),_0x1dbb5d[_['upperFirst'](_0x426124)+'AccountId']):![];}}break;case _0xdb74('0x6d'):case _0xdb74('0x6e'):if(_0x1dbb5d['channel']===_0x426124){return _0x1dbb5d[_0xdb74('0x6f')]?operators[_0x5d201e[_0xdb74('0x6b')]](_0x5d201e[_0xdb74('0x6c')],_0x1dbb5d[_0xdb74('0x6f')]):![];}break;case _0xdb74('0x5d'):return _0x1dbb5d['queue']?operators[_0x5d201e[_0xdb74('0x6b')]](_0x5d201e[_0xdb74('0x6c')],_0x1dbb5d[_0xdb74('0x5d')]):![];case _0xdb74('0x70'):return _0x1dbb5d[_0xdb74('0x71')]?operators[_0x5d201e[_0xdb74('0x6b')]](_0x5d201e[_0xdb74('0x6c')],_0x1dbb5d['membername']):![];case _0xdb74('0x72'):return _0x1dbb5d[_0xdb74('0x72')]?operators[_0x5d201e['operator']](_0x5d201e[_0xdb74('0x6c')],_0x1dbb5d[_0xdb74('0x72')]):![];case'routeId':return _0x1dbb5d[_0xdb74('0x73')]?operators[_0x5d201e[_0xdb74('0x6b')]](_0x5d201e['value'],_0x1dbb5d[_0xdb74('0x73')]):![];}return![];};};module[_0xdb74('0x74')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['Motion','CTI','concat','Tags','/api/v2/users/%d','Descriptions','%s/customers/%d/cases','serverUrl','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','Displaying\x20ticket\x20to\x20agent...','user:%s','trigger:desk:display','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','Desk\x20account\x20type\x20not\x20recognized','error','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','integrationTab','newTab','%s/agent/tickets/%s','catch','unmanaged','monitor_format','lastevent','The\x20Ticket\x20ID\x20is:','toUpperCase','lodash','request-promise','md5','util','./util','../../../../config/environment','../../../../config/logger','desk','defaults','redis','localhost','socket.io-emitter','emit','application/json','validateEmail','info','Getting\x20agent\x20with\x20email','format','remoteUri','then','total_entries','find','_embedded','entries','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','[HTTP]','stringify','GET','password','authType','token','Basic\x20%s','toString','base64','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/customers','POST','work','map','includes','string','picklist','type','nameField','customField','content','idField','custom_fields','variable','variableName','customVariable','name','Variable','toLowerCase','priority','Creating\x20new\x20ticket...','merge','getString','Subjects','phone','new','xCALLY'];(function(_0x3bd1cc,_0x417a94){var _0x102578=function(_0x496ec0){while(--_0x496ec0){_0x3bd1cc['push'](_0x3bd1cc['shift']());}};_0x102578(++_0x417a94);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x7995('0x0'));var rp=require(_0x7995('0x1'));var md5=require(_0x7995('0x2'));var util=require(_0x7995('0x3'));var Redis=require('ioredis');var intUtil=require(_0x7995('0x4'));var config=require(_0x7995('0x5'));var logger=require(_0x7995('0x6'))(_0x7995('0x7'));config['redis']=_[_0x7995('0x8')](config[_0x7995('0x9')],{'host':_0x7995('0xa'),'port':0x18eb});var io=require(_0x7995('0xb'))(new Redis(config[_0x7995('0x9')]));function emit(_0x326741,_0x4996ca,_0x465276){io['to'](_0x326741)[_0x7995('0xc')](_0x4996ca,_0x465276);}var headers={'Content-Type':'application/json','Accept':_0x7995('0xd')};function getUser(_0x3116fb,_0x18c8a3){if(intUtil[_0x7995('0xe')](_0x18c8a3)===!![]){logger[_0x7995('0xf')](_0x7995('0x10'),_0x18c8a3);return request({'uri':util[_0x7995('0x11')]('%s/users',_0x3116fb[_0x7995('0x12')])})[_0x7995('0x13')](function(_0x581f22){if(_0x581f22[_0x7995('0x14')]){return _[_0x7995('0x15')](_0x581f22[_0x7995('0x16')][_0x7995('0x17')],{'email':_0x18c8a3});}})[_0x7995('0x13')](function(_0x23999f){if(_0x23999f){logger[_0x7995('0xf')]('Agent\x20found!');return _0x23999f;}else{logger['info'](_0x7995('0x18'));return request({'uri':util[_0x7995('0x11')](_0x7995('0x19'),_0x3116fb[_0x7995('0x12')])});}});}else{logger[_0x7995('0xf')](_0x7995('0x1a'));return request({'uri':util[_0x7995('0x11')](_0x7995('0x19'),_0x3116fb['remoteUri'])});}}function request(_0x2eeacc){logger['debug'](_0x7995('0x1b'),JSON[_0x7995('0x1c')](_0x2eeacc));return rp(_[_0x7995('0x8')](_0x2eeacc,{'method':_0x7995('0x1d'),'headers':headers,'json':!![]}));}function getAuth(_0x1e1415){var _0x37a7d4;if(_0x1e1415['authType']==='basic'){_0x37a7d4=util[_0x7995('0x11')]('%s:%s',_0x1e1415['username'],_0x1e1415[_0x7995('0x1e')]);}else if(_0x1e1415[_0x7995('0x1f')]==='token'){_0x37a7d4=util[_0x7995('0x11')]('%s/token:%s',_0x1e1415['username'],_0x1e1415[_0x7995('0x20')]);}return util[_0x7995('0x11')](_0x7995('0x21'),new Buffer(_0x37a7d4)[_0x7995('0x22')](_0x7995('0x23')));}function getEndUser(_0x1c278a,_0x5d40ae,_0x32a09a){logger[_0x7995('0xf')](_0x7995('0x24'),_0x32a09a);return request({'uri':util[_0x7995('0x11')](_0x7995('0x25'),_0x1c278a[_0x7995('0x12')]),'qs':{'phone':_0x32a09a}})[_0x7995('0x13')](function(_0x472195){if(_0x472195['total_entries']){logger[_0x7995('0xf')](_0x7995('0x26'));return _0x472195[_0x7995('0x16')][_0x7995('0x17')][0x0];}else{logger[_0x7995('0xf')](_0x7995('0x27'));return request({'uri':util['format'](_0x7995('0x28'),_0x1c278a['remoteUri']),'method':_0x7995('0x29'),'body':{'first_name':_0x5d40ae,'title':_0x5d40ae,'phone_numbers':[{'type':_0x7995('0x2a'),'value':_0x32a09a}]}});}});}function getTags(_0xf16cc2,_0x132a42){var _0x11c1eb=[];if(_0xf16cc2&&_0xf16cc2['length']>0x0){_0x11c1eb=_[_0x7995('0x2b')](_0xf16cc2,_0x132a42);}return _0x11c1eb;}function getCustomFields(_0x514445,_0x456a28){var _0x3250e0=[];var _0x4253e5={'custom_fields':{}};if(_0x514445['length']>0x0){_['forEach'](_0x514445,function(_0x48e573){if(_[_0x7995('0x2c')]([_0x7995('0x2d'),_0x7995('0x2e')],_0x48e573[_0x7995('0x2f')])&&_0x48e573[_0x7995('0x30')]&&!_0x48e573[_0x7995('0x31')]){_0x4253e5[_0x48e573['nameField']['toLowerCase']()]=_0x48e573[_0x7995('0x32')]['toString']();}else if(_[_0x7995('0x2c')]([_0x7995('0x2d'),_0x7995('0x2e')],_0x48e573[_0x7995('0x2f')])&&_0x48e573[_0x7995('0x33')]&&_0x48e573['customField']){_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x48e573['content']['toString']();}else if(_0x48e573['type']===_0x7995('0x35')&&_0x48e573[_0x7995('0x36')]&&_0x48e573['idField']&&_0x48e573[_0x7995('0x31')]){_0x456a28[_0x48e573['variableName']]&&(_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x456a28[_0x48e573[_0x7995('0x36')]]['toString']());}else if(_0x48e573['type']===_0x7995('0x37')&&_0x48e573['Variable']&&_0x48e573['Variable'][_0x7995('0x38')]&&_0x48e573[_0x7995('0x33')]&&_0x48e573['customField']){_0x456a28[_0x48e573[_0x7995('0x39')][_0x7995('0x38')][_0x7995('0x3a')]()]&&(_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x456a28[_0x48e573['Variable'][_0x7995('0x38')][_0x7995('0x3a')]()][_0x7995('0x22')]());}});}if(_0x4253e5[_0x7995('0x3b')]){_0x4253e5['priority']=Number(_0x4253e5[_0x7995('0x3b')]);}return _0x4253e5;}function getTicket(_0x235df7,_0x3eb04f,_0xe5ea43,_0x1f5bee,_0x1035dc){logger['info'](_0x7995('0x3c'));var _0x3be298=_[_0x7995('0x3d')]({'subject':intUtil[_0x7995('0x3e')](_0x1f5bee[_0x7995('0x3f')],_0x1035dc,'\x20'),'type':_0x7995('0x40'),'status':_0x7995('0x41'),'labels':[_0x7995('0x42'),_0x7995('0x43'),_0x7995('0x44')][_0x7995('0x45')](getTags(_0x1f5bee[_0x7995('0x46')],_0x7995('0x38'))),'description':intUtil['getString'](_0x1f5bee['Descriptions'],_0x1035dc,'\x0a'),'_links':{'assigned_user':{'href':util[_0x7995('0x11')](_0x7995('0x47'),_0x3eb04f['id']),'class':'user'}},'message':{'direction':'in','body':intUtil['getString'](_0x1f5bee[_0x7995('0x48')],_0x1035dc,'\x0a')}},getCustomFields(_0x1f5bee['Fields'],_0x1035dc));return request({'uri':util['format'](_0x7995('0x49'),_0x235df7[_0x7995('0x12')],_0xe5ea43['id']),'method':_0x7995('0x29'),'body':_0x3be298});}exports['queue']=function(_0x46ac4f,_0x5e85b9,_0x3993b5,_0x5a8881,_0x493066,_0x39c5b8){var _0x403f54,_0xc04e5;_0x39c5b8[_0x7995('0x12')]=intUtil['stripTrailingSlash'](_0x39c5b8[_0x7995('0x12')]);_0x39c5b8[_0x7995('0x4a')]=intUtil[_0x7995('0x4b')](_0x39c5b8[_0x7995('0x4a')]);if(_0x493066&&_0x493066['monitor_format']){logger['info'](_0x7995('0x4c'),'Recording\x20is\x20enabled!');_0x5e85b9[_0x7995('0x4d')]=util['format'](_0x7995('0x4e'),_0x39c5b8['serverUrl'],_0x5e85b9[_0x7995('0x4f')],md5(_0x5e85b9[_0x7995('0x4f')]));}else{_0x5e85b9['recordingURL']='';}headers[_0x7995('0x50')]=getAuth(_0x39c5b8);return getUser(_0x39c5b8,_0x5a8881[_0x7995('0x51')])[_0x7995('0x13')](function(_0xb70a51){_0x403f54=_0xb70a51;logger['info'](_0x7995('0x52'),_0x403f54['id']);return getEndUser(_0x39c5b8,_0x5e85b9[_0x7995('0x53')],_0x5e85b9[_0x7995('0x54')]);})['then'](function(_0xe228a5){_0xc04e5=_0xe228a5;logger[_0x7995('0xf')](_0x7995('0x55'),_0xc04e5['id']);return getTicket(_0x39c5b8,_0x403f54,_0xc04e5,_0x3993b5,_0x5e85b9);})[_0x7995('0x13')](function(_0x255313){if(_0x255313){logger['info'](_0x7995('0x56'));logger[_0x7995('0xf')]('The\x20Ticket\x20ID\x20is:',_0x255313['id']);switch(_0x39c5b8[_0x7995('0x2f')]){case'integrationTab':logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x57'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x5a8881[_0x7995('0x38')]),_0x7995('0x59'),{'recordId':_0x255313['id']});break;case'newTab':logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x5a'));emit(util['format'](_0x7995('0x58'),_0x5a8881[_0x7995('0x38')]),_0x7995('0x5b'),{'uri':util['format']('https://xcally.desk.com/web/agent/case/%d',_0x255313['id'])});break;default:logger['error'](_0x7995('0x4c'),_0x7995('0x5c'));}}})['catch'](function(_0x1cd85){console[_0x7995('0x5d')](_0x1cd85);logger[_0x7995('0x5d')](_0x7995('0x4c'),JSON[_0x7995('0x1c')](_0x1cd85));});};exports['outbound']=function(_0x29ee32,_0x4ab09f,_0x14fe7f,_0x33c801,_0x206d2a,_0x50c7b5,_0x5e1f34){var _0x54e2b1,_0x563f8e;_0x50c7b5[_0x7995('0x12')]=intUtil[_0x7995('0x4b')](_0x50c7b5[_0x7995('0x12')]);_0x50c7b5[_0x7995('0x4a')]=intUtil[_0x7995('0x4b')](_0x50c7b5[_0x7995('0x4a')]);if(_0x5e1f34&&_0x5e1f34[_0x7995('0x5e')]&&_0x5e1f34[_0x7995('0x5e')]!==_0x7995('0x5f')){logger[_0x7995('0xf')](_0x7995('0x60'),_0x7995('0x61'));_0x4ab09f[_0x7995('0x4d')]=util[_0x7995('0x11')](_0x7995('0x4e'),_0x50c7b5[_0x7995('0x4a')],_0x4ab09f[_0x7995('0x4f')],md5(_0x4ab09f[_0x7995('0x4f')]));}headers[_0x7995('0x50')]=getAuth(_0x50c7b5);return getUser(_0x50c7b5,_0x33c801['email'])[_0x7995('0x13')](function(_0x630737){_0x54e2b1=_0x630737;logger[_0x7995('0xf')](_0x7995('0x52'),_0x54e2b1['id']);return getEndUser(_0x50c7b5,_0x4ab09f['destcalleridname'],_0x4ab09f['destcalleridnum']);})[_0x7995('0x13')](function(_0x197b52){_0x563f8e=_0x197b52;logger[_0x7995('0xf')](_0x7995('0x55'),_0x563f8e['id']);return getTicket(_0x50c7b5,_0x54e2b1,_0x563f8e,_0x14fe7f,_0x4ab09f);})['then'](function(_0x13cd7b){if(_0x13cd7b){logger[_0x7995('0xf')](_0x7995('0x56'));logger[_0x7995('0xf')]('The\x20Ticket\x20ID\x20is:',_0x13cd7b['id']);switch(_0x50c7b5['type']){case _0x7995('0x62'):logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x57'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x33c801[_0x7995('0x38')]),_0x7995('0x59'),{'recordId':_0x13cd7b['id']});break;case _0x7995('0x63'):logger['info'](_0x7995('0x4c'),_0x7995('0x5a'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x33c801['name']),'trigger:browser:url',{'uri':util[_0x7995('0x11')](_0x7995('0x64'),_0x50c7b5['remoteUri'],_0x13cd7b['id'])});break;default:logger[_0x7995('0x5d')](_0x7995('0x60'),_0x7995('0x5c'));}}})[_0x7995('0x65')](function(_0x32cb04){logger['error'](_0x7995('0x60'),JSON['stringify'](_0x32cb04));});};exports[_0x7995('0x66')]=function(_0xe31dcb,_0x1722e2,_0x25b534,_0x4388c1,_0xeb8920,_0x2b3c1d){var _0x44372a,_0x10f012;_0x2b3c1d[_0x7995('0x12')]=intUtil[_0x7995('0x4b')](_0x2b3c1d[_0x7995('0x12')]);_0x2b3c1d['serverUrl']=intUtil[_0x7995('0x4b')](_0x2b3c1d[_0x7995('0x4a')]);if(_0xeb8920&&_0xeb8920[_0x7995('0x67')]){logger[_0x7995('0xf')]('['+_0x1722e2[_0x7995('0x68')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x1722e2[_0x7995('0x4d')]=util[_0x7995('0x11')](_0x7995('0x4e'),_0x2b3c1d[_0x7995('0x4a')],_0x1722e2['uniqueid'],md5(_0x1722e2[_0x7995('0x4f')]));}else{_0x1722e2['recordingURL']='';}headers['Authorization']=getAuth(_0x2b3c1d);return getUser(_0x2b3c1d)[_0x7995('0x13')](function(_0x36d27d){_0x44372a=_0x36d27d;logger[_0x7995('0xf')](_0x7995('0x52'),_0x44372a['id']);return getEndUser(_0x2b3c1d,_0x1722e2[_0x7995('0x53')],_0x1722e2[_0x7995('0x54')]);})[_0x7995('0x13')](function(_0x13dc73){_0x10f012=_0x13dc73;logger[_0x7995('0xf')](_0x7995('0x55'),_0x10f012['id']);return getTicket(_0x2b3c1d,_0x44372a,_0x10f012,_0x25b534,_0x1722e2);})['then'](function(_0x2dc1f7){if(_0x2dc1f7){logger[_0x7995('0xf')](_0x7995('0x56'));logger['info'](_0x7995('0x69'),_0x2dc1f7['id']);}})[_0x7995('0x65')](function(_0x705f0){logger[_0x7995('0x5d')]('['+_0x1722e2[_0x7995('0x68')][_0x7995('0x6a')]()+']',JSON[_0x7995('0x1c')](_0x705f0));});};
\ No newline at end of file
+var _0x55ca=['debug','[HTTP]','stringify','GET','authType','basic','%s:%s','username','token','%s/token:%s','toString','base64','Searching\x20enduser\x20with\x20phone','Enduser\x20found!','_embedded','entries','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/customers','POST','length','forEach','includes','picklist','type','nameField','customField','toLowerCase','content','string','idField','custom_fields','variable','variableName','customVariable','Variable','name','priority','merge','xCALLY','Motion','CTI','concat','Tags','getString','Descriptions','/api/v2/users/%d','user','Fields','stripTrailingSlash','serverUrl','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','calleridname','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','integrationTab','user:%s','trigger:desk:display','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','error','Desk\x20account\x20type\x20not\x20recognized','outbound','recordingFormat','none','[OUTBOUND]','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent...','%s/agent/tickets/%s','catch','unmanaged','monitor_format','lastevent','toUpperCase','Recording\x20is\x20enabled!','lodash','request-promise','./util','../../../../config/environment','desk','redis','defaults','localhost','socket.io-emitter','application/json','validateEmail','info','Getting\x20agent\x20with\x20email','format','%s/users','remoteUri','then','total_entries','find','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me'];(function(_0xac64a1,_0x566950){var _0x445cca=function(_0x376fa9){while(--_0x376fa9){_0xac64a1['push'](_0xac64a1['shift']());}};_0x445cca(++_0x566950);}(_0x55ca,0x126));var _0xa55c=function(_0x226b19,_0x4bdfb8){_0x226b19=_0x226b19-0x0;var _0x6bfc30=_0x55ca[_0x226b19];return _0x6bfc30;};'use strict';var _=require(_0xa55c('0x0'));var rp=require(_0xa55c('0x1'));var md5=require('md5');var util=require('util');var Redis=require('ioredis');var intUtil=require(_0xa55c('0x2'));var config=require(_0xa55c('0x3'));var logger=require('../../../../config/logger')(_0xa55c('0x4'));config[_0xa55c('0x5')]=_[_0xa55c('0x6')](config[_0xa55c('0x5')],{'host':_0xa55c('0x7'),'port':0x18eb});var io=require(_0xa55c('0x8'))(new Redis(config[_0xa55c('0x5')]));function emit(_0x4d0624,_0x2121fd,_0x2537f0){io['to'](_0x4d0624)['emit'](_0x2121fd,_0x2537f0);}var headers={'Content-Type':_0xa55c('0x9'),'Accept':_0xa55c('0x9')};function getUser(_0x52a3bc,_0x5849ad){if(intUtil[_0xa55c('0xa')](_0x5849ad)===!![]){logger[_0xa55c('0xb')](_0xa55c('0xc'),_0x5849ad);return request({'uri':util[_0xa55c('0xd')](_0xa55c('0xe'),_0x52a3bc[_0xa55c('0xf')])})[_0xa55c('0x10')](function(_0x70c2de){if(_0x70c2de[_0xa55c('0x11')]){return _[_0xa55c('0x12')](_0x70c2de['_embedded']['entries'],{'email':_0x5849ad});}})[_0xa55c('0x10')](function(_0x576044){if(_0x576044){logger['info']('Agent\x20found!');return _0x576044;}else{logger[_0xa55c('0xb')](_0xa55c('0x13'));return request({'uri':util[_0xa55c('0xd')](_0xa55c('0x14'),_0x52a3bc[_0xa55c('0xf')])});}});}else{logger[_0xa55c('0xb')]('Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xa55c('0xd')](_0xa55c('0x14'),_0x52a3bc[_0xa55c('0xf')])});}}function request(_0x31e10d){logger[_0xa55c('0x15')](_0xa55c('0x16'),JSON[_0xa55c('0x17')](_0x31e10d));return rp(_[_0xa55c('0x6')](_0x31e10d,{'method':_0xa55c('0x18'),'headers':headers,'json':!![]}));}function getAuth(_0x4cee3c){var _0x3d4c9e;if(_0x4cee3c[_0xa55c('0x19')]===_0xa55c('0x1a')){_0x3d4c9e=util[_0xa55c('0xd')](_0xa55c('0x1b'),_0x4cee3c[_0xa55c('0x1c')],_0x4cee3c['password']);}else if(_0x4cee3c['authType']===_0xa55c('0x1d')){_0x3d4c9e=util[_0xa55c('0xd')](_0xa55c('0x1e'),_0x4cee3c['username'],_0x4cee3c[_0xa55c('0x1d')]);}return util[_0xa55c('0xd')]('Basic\x20%s',new Buffer(_0x3d4c9e)[_0xa55c('0x1f')](_0xa55c('0x20')));}function getEndUser(_0x940f28,_0x1965f1,_0x234372){logger['info'](_0xa55c('0x21'),_0x234372);return request({'uri':util['format']('%s/customers/search',_0x940f28['remoteUri']),'qs':{'phone':_0x234372}})[_0xa55c('0x10')](function(_0x54b038){if(_0x54b038[_0xa55c('0x11')]){logger[_0xa55c('0xb')](_0xa55c('0x22'));return _0x54b038[_0xa55c('0x23')][_0xa55c('0x24')][0x0];}else{logger[_0xa55c('0xb')](_0xa55c('0x25'));return request({'uri':util[_0xa55c('0xd')](_0xa55c('0x26'),_0x940f28[_0xa55c('0xf')]),'method':_0xa55c('0x27'),'body':{'first_name':_0x1965f1,'title':_0x1965f1,'phone_numbers':[{'type':'work','value':_0x234372}]}});}});}function getTags(_0x430d55,_0x28814f){var _0x1c9f6b=[];if(_0x430d55&&_0x430d55[_0xa55c('0x28')]>0x0){_0x1c9f6b=_['map'](_0x430d55,_0x28814f);}return _0x1c9f6b;}function getCustomFields(_0x1377b0,_0x22f6b6){var _0x1b8388=[];var _0x201941={'custom_fields':{}};if(_0x1377b0[_0xa55c('0x28')]>0x0){_[_0xa55c('0x29')](_0x1377b0,function(_0x52d37f){if(_[_0xa55c('0x2a')](['string',_0xa55c('0x2b')],_0x52d37f[_0xa55c('0x2c')])&&_0x52d37f[_0xa55c('0x2d')]&&!_0x52d37f[_0xa55c('0x2e')]){_0x201941[_0x52d37f['nameField'][_0xa55c('0x2f')]()]=_0x52d37f[_0xa55c('0x30')][_0xa55c('0x1f')]();}else if(_[_0xa55c('0x2a')]([_0xa55c('0x31'),_0xa55c('0x2b')],_0x52d37f[_0xa55c('0x2c')])&&_0x52d37f[_0xa55c('0x32')]&&_0x52d37f[_0xa55c('0x2e')]){_0x201941[_0xa55c('0x33')][_0x52d37f[_0xa55c('0x32')]]=_0x52d37f['content']['toString']();}else if(_0x52d37f[_0xa55c('0x2c')]===_0xa55c('0x34')&&_0x52d37f['variableName']&&_0x52d37f[_0xa55c('0x32')]&&_0x52d37f[_0xa55c('0x2e')]){_0x22f6b6[_0x52d37f[_0xa55c('0x35')]]&&(_0x201941[_0xa55c('0x33')][_0x52d37f[_0xa55c('0x32')]]=_0x22f6b6[_0x52d37f[_0xa55c('0x35')]][_0xa55c('0x1f')]());}else if(_0x52d37f[_0xa55c('0x2c')]===_0xa55c('0x36')&&_0x52d37f['Variable']&&_0x52d37f['Variable']['name']&&_0x52d37f[_0xa55c('0x32')]&&_0x52d37f[_0xa55c('0x2e')]){_0x22f6b6[_0x52d37f[_0xa55c('0x37')]['name'][_0xa55c('0x2f')]()]&&(_0x201941['custom_fields'][_0x52d37f[_0xa55c('0x32')]]=_0x22f6b6[_0x52d37f['Variable'][_0xa55c('0x38')][_0xa55c('0x2f')]()][_0xa55c('0x1f')]());}});}if(_0x201941['priority']){_0x201941[_0xa55c('0x39')]=Number(_0x201941[_0xa55c('0x39')]);}return _0x201941;}function getTicket(_0x47e93c,_0x6f9c4c,_0x194e78,_0x4d9083,_0x529ff8){logger[_0xa55c('0xb')]('Creating\x20new\x20ticket...');var _0x1e75dc=_[_0xa55c('0x3a')]({'subject':intUtil['getString'](_0x4d9083['Subjects'],_0x529ff8,'\x20'),'type':'phone','status':'new','labels':[_0xa55c('0x3b'),_0xa55c('0x3c'),_0xa55c('0x3d')][_0xa55c('0x3e')](getTags(_0x4d9083[_0xa55c('0x3f')],'name')),'description':intUtil[_0xa55c('0x40')](_0x4d9083[_0xa55c('0x41')],_0x529ff8,'\x0a'),'_links':{'assigned_user':{'href':util[_0xa55c('0xd')](_0xa55c('0x42'),_0x6f9c4c['id']),'class':_0xa55c('0x43')}},'message':{'direction':'in','body':intUtil[_0xa55c('0x40')](_0x4d9083['Descriptions'],_0x529ff8,'\x0a')}},getCustomFields(_0x4d9083[_0xa55c('0x44')],_0x529ff8));return request({'uri':util['format']('%s/customers/%d/cases',_0x47e93c[_0xa55c('0xf')],_0x194e78['id']),'method':_0xa55c('0x27'),'body':_0x1e75dc});}exports['queue']=function(_0x2bd98b,_0x508bd3,_0x5f25f7,_0x2f8449,_0x3fea03,_0x1630ac){var _0x540337,_0x1b2708;_0x1630ac[_0xa55c('0xf')]=intUtil['stripTrailingSlash'](_0x1630ac[_0xa55c('0xf')]);_0x1630ac['serverUrl']=intUtil[_0xa55c('0x45')](_0x1630ac[_0xa55c('0x46')]);if(_0x3fea03&&_0x3fea03['monitor_format']){logger[_0xa55c('0xb')](_0xa55c('0x47'),'Recording\x20is\x20enabled!');_0x508bd3[_0xa55c('0x48')]=util[_0xa55c('0xd')](_0xa55c('0x49'),_0x1630ac['serverUrl'],_0x508bd3[_0xa55c('0x4a')],md5(_0x508bd3['uniqueid']));}else{_0x508bd3[_0xa55c('0x48')]='';}headers[_0xa55c('0x4b')]=getAuth(_0x1630ac);return getUser(_0x1630ac,_0x2f8449[_0xa55c('0x4c')])['then'](function(_0x41eab1){_0x540337=_0x41eab1;logger[_0xa55c('0xb')]('The\x20User\x20ID\x20is:',_0x540337['id']);return getEndUser(_0x1630ac,_0x508bd3[_0xa55c('0x4d')],_0x508bd3[_0xa55c('0x4e')]);})['then'](function(_0x11ff1d){_0x1b2708=_0x11ff1d;logger[_0xa55c('0xb')]('The\x20Enduser\x20ID\x20is:',_0x1b2708['id']);return getTicket(_0x1630ac,_0x540337,_0x1b2708,_0x5f25f7,_0x508bd3);})[_0xa55c('0x10')](function(_0x81cee8){if(_0x81cee8){logger[_0xa55c('0xb')](_0xa55c('0x4f'));logger['info'](_0xa55c('0x50'),_0x81cee8['id']);switch(_0x1630ac['type']){case _0xa55c('0x51'):logger[_0xa55c('0xb')](_0xa55c('0x47'),'Displaying\x20ticket\x20to\x20agent...');emit(util[_0xa55c('0xd')](_0xa55c('0x52'),_0x2f8449['name']),_0xa55c('0x53'),{'recordId':_0x81cee8['id']});break;case _0xa55c('0x54'):logger[_0xa55c('0xb')](_0xa55c('0x47'),_0xa55c('0x55'));emit(util[_0xa55c('0xd')](_0xa55c('0x52'),_0x2f8449[_0xa55c('0x38')]),_0xa55c('0x56'),{'uri':util[_0xa55c('0xd')]('https://xcally.desk.com/web/agent/case/%d',_0x81cee8['id'])});break;default:logger[_0xa55c('0x57')](_0xa55c('0x47'),_0xa55c('0x58'));}}})['catch'](function(_0x4c3095){console[_0xa55c('0x57')](_0x4c3095);logger['error'](_0xa55c('0x47'),JSON['stringify'](_0x4c3095));});};exports[_0xa55c('0x59')]=function(_0x228df4,_0x181802,_0x3f9313,_0x2ecf79,_0x5b1cf3,_0x44b7c1,_0x4607ca){var _0x4b85cc,_0x3929a6;_0x44b7c1[_0xa55c('0xf')]=intUtil[_0xa55c('0x45')](_0x44b7c1[_0xa55c('0xf')]);_0x44b7c1['serverUrl']=intUtil['stripTrailingSlash'](_0x44b7c1[_0xa55c('0x46')]);if(_0x4607ca&&_0x4607ca[_0xa55c('0x5a')]&&_0x4607ca[_0xa55c('0x5a')]!==_0xa55c('0x5b')){logger['info'](_0xa55c('0x5c'),'Recording\x20is\x20enabled!');_0x181802[_0xa55c('0x48')]=util[_0xa55c('0xd')](_0xa55c('0x49'),_0x44b7c1[_0xa55c('0x46')],_0x181802[_0xa55c('0x4a')],md5(_0x181802['uniqueid']));}headers[_0xa55c('0x4b')]=getAuth(_0x44b7c1);return getUser(_0x44b7c1,_0x2ecf79['email'])[_0xa55c('0x10')](function(_0x157afe){_0x4b85cc=_0x157afe;logger[_0xa55c('0xb')](_0xa55c('0x5d'),_0x4b85cc['id']);return getEndUser(_0x44b7c1,_0x181802[_0xa55c('0x5e')],_0x181802[_0xa55c('0x5f')]);})[_0xa55c('0x10')](function(_0x53e2be){_0x3929a6=_0x53e2be;logger[_0xa55c('0xb')](_0xa55c('0x60'),_0x3929a6['id']);return getTicket(_0x44b7c1,_0x4b85cc,_0x3929a6,_0x3f9313,_0x181802);})[_0xa55c('0x10')](function(_0x23a30e){if(_0x23a30e){logger[_0xa55c('0xb')]('Ticket\x20created!');logger[_0xa55c('0xb')](_0xa55c('0x50'),_0x23a30e['id']);switch(_0x44b7c1[_0xa55c('0x2c')]){case _0xa55c('0x51'):logger[_0xa55c('0xb')]('[QUEUE]',_0xa55c('0x61'));emit(util[_0xa55c('0xd')](_0xa55c('0x52'),_0x2ecf79[_0xa55c('0x38')]),_0xa55c('0x53'),{'recordId':_0x23a30e['id']});break;case'newTab':logger[_0xa55c('0xb')]('[QUEUE]',_0xa55c('0x55'));emit(util['format'](_0xa55c('0x52'),_0x2ecf79['name']),_0xa55c('0x56'),{'uri':util[_0xa55c('0xd')](_0xa55c('0x62'),_0x44b7c1[_0xa55c('0xf')],_0x23a30e['id'])});break;default:logger[_0xa55c('0x57')](_0xa55c('0x5c'),_0xa55c('0x58'));}}})[_0xa55c('0x63')](function(_0x14b515){logger[_0xa55c('0x57')]('[OUTBOUND]',JSON[_0xa55c('0x17')](_0x14b515));});};exports[_0xa55c('0x64')]=function(_0x4ef914,_0x18b928,_0x2b8b88,_0x3e3b4b,_0x9fe234,_0x1b8b06){var _0xa38271,_0x3cef1f;_0x1b8b06[_0xa55c('0xf')]=intUtil['stripTrailingSlash'](_0x1b8b06[_0xa55c('0xf')]);_0x1b8b06[_0xa55c('0x46')]=intUtil[_0xa55c('0x45')](_0x1b8b06[_0xa55c('0x46')]);if(_0x9fe234&&_0x9fe234[_0xa55c('0x65')]){logger[_0xa55c('0xb')]('['+_0x18b928[_0xa55c('0x66')][_0xa55c('0x67')]()+']',_0xa55c('0x68'));_0x18b928['recordingURL']=util[_0xa55c('0xd')](_0xa55c('0x49'),_0x1b8b06[_0xa55c('0x46')],_0x18b928[_0xa55c('0x4a')],md5(_0x18b928[_0xa55c('0x4a')]));}else{_0x18b928[_0xa55c('0x48')]='';}headers[_0xa55c('0x4b')]=getAuth(_0x1b8b06);return getUser(_0x1b8b06)[_0xa55c('0x10')](function(_0x2e4cf7){_0xa38271=_0x2e4cf7;logger[_0xa55c('0xb')](_0xa55c('0x5d'),_0xa38271['id']);return getEndUser(_0x1b8b06,_0x18b928['calleridname'],_0x18b928[_0xa55c('0x4e')]);})['then'](function(_0x1228a4){_0x3cef1f=_0x1228a4;logger[_0xa55c('0xb')](_0xa55c('0x60'),_0x3cef1f['id']);return getTicket(_0x1b8b06,_0xa38271,_0x3cef1f,_0x2b8b88,_0x18b928);})['then'](function(_0x4d9722){if(_0x4d9722){logger[_0xa55c('0xb')](_0xa55c('0x4f'));logger[_0xa55c('0xb')](_0xa55c('0x50'),_0x4d9722['id']);}})['catch'](function(_0x149cb9){logger[_0xa55c('0x57')]('['+_0x18b928[_0xa55c('0x66')][_0xa55c('0x67')]()+']',JSON[_0xa55c('0x17')](_0x149cb9));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf90b=['./util','md5','ioredis','dynamics365','../../../../config/environment','defaults','redis','localhost','socket.io-emitter','POST','clientId','remoteUri','username','password','clientSecret','access_token','catch','error','toUpperCase','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','4.0','then','value','validateEmail','email','length','internalemailaddress',']\x20Agent\x20found\x20','systemuserid','userId','info',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userEmail','outbound','destcalleridnum','calleridnum','contacts','/systemusers(','headers','odata-entityid','substring','lastIndexOf','toLowerCase','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','replace','%2b','telephone1','contactid',']\x20Enduser\x20created!','enduserId',']\x20Enduser\x20Created!','forEach','includes','nameField','idField','indexOf','content','ticketType','getString','Subjects','Descriptions','/contacts(','Fields','phonecall','phonecalls','callDirection','queue','ticketId','message','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','trigger:browser:url','serverUrl','unmanaged','https://login.microsoftonline.com/%s/oauth2/token','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','Recording\x20is\x20enabled!',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','name',']\x20Error\x20running\x20Dynamics365\x20integration','inspect','lodash','request-promise','util'];(function(_0x384d39,_0xf060fc){var _0x13bf22=function(_0x5d83f2){while(--_0x5d83f2){_0x384d39['push'](_0x384d39['shift']());}};_0x13bf22(++_0xf060fc);}(_0xf90b,0x1ec));var _0xbf90=function(_0x3f1ea3,_0x599aff){_0x3f1ea3=_0x3f1ea3-0x0;var _0x630a79=_0xf90b[_0x3f1ea3];return _0x630a79;};'use strict';var _=require(_0xbf90('0x0'));var BPromise=require('bluebird');var rp=require(_0xbf90('0x1'));var util=require(_0xbf90('0x2'));var intUtil=require(_0xbf90('0x3'));var md5=require(_0xbf90('0x4'));var Redis=require(_0xbf90('0x5'));var logger=require('../../../../config/logger')(_0xbf90('0x6'));var config=require(_0xbf90('0x7'));config['redis']=_[_0xbf90('0x8')](config[_0xbf90('0x9')],{'host':_0xbf90('0xa'),'port':0x18eb});var io=require(_0xbf90('0xb'))(new Redis(config[_0xbf90('0x9')]));function getAuthToken(_0x2933e9,_0x4d78dc,_0x23a333){var _0x405e7a={'method':_0xbf90('0xc'),'uri':_0x4d78dc,'form':{'client_id':_0x2933e9[_0xbf90('0xd')],'resource':_0x2933e9[_0xbf90('0xe')],'username':_0x2933e9[_0xbf90('0xf')],'password':_0x2933e9[_0xbf90('0x10')],'grant_type':_0xbf90('0x10'),'client_secret':_0x2933e9[_0xbf90('0x11')]},'json':!![]};return rp(_0x405e7a)['then'](function(_0x1685f4){return _0x1685f4[_0xbf90('0x12')];})[_0xbf90('0x13')](function(_0x2fd2bd){logger[_0xbf90('0x14')]('['+[_0x23a333[_0xbf90('0x15')]()]+']\x20Wrong\x20credentials!');return _0x2fd2bd['message'];});}function getUser(_0x56dfb6,_0x107685,_0x3eb1eb,_0x177967,_0x16aada,_0x3d834c){return new BPromise(function(_0x38da5f,_0x40e1dc){return getAuthToken(_0x107685,_0x177967,_0x3d834c)['then'](function(_0x453917){var _0x1e6c49={'method':_0xbf90('0x16'),'uri':_0x16aada+_0xbf90('0x17'),'headers':{'Authorization':_0xbf90('0x18')+_0x453917,'OData-Version':_0xbf90('0x19')},'json':!![]};return rp(_0x1e6c49);})[_0xbf90('0x1a')](function(_0x93d3c){var _0x3809c3=_0x93d3c[_0xbf90('0x1b')];var _0x33a976=![];var _0x2a65bd=null;if(!_['isNil'](_0x3eb1eb)){if(intUtil[_0xbf90('0x1c')](_0x3eb1eb[_0xbf90('0x1d')])){_0x56dfb6['userEmail']=_0x3eb1eb[_0xbf90('0x1d')];for(_0x2a65bd=0x0;_0x2a65bd<_0x3809c3[_0xbf90('0x1e')];_0x2a65bd++){if(_0x3809c3[_0x2a65bd][_0xbf90('0x1f')]===_0x3eb1eb['email']&&!_0x3809c3[_0x2a65bd]['isdisabled']){_0x33a976=!![];logger['info']('['+[_0x3d834c['toUpperCase']()]+_0xbf90('0x20')+_0x3809c3[_0x2a65bd][_0xbf90('0x21')]+'!');_0x56dfb6[_0xbf90('0x22')]=_0x3809c3[_0x2a65bd][_0xbf90('0x21')];}}}}if(!_0x33a976){logger[_0xbf90('0x23')]('['+[_0x3d834c[_0xbf90('0x15')]()]+_0xbf90('0x24'));_0x56dfb6[_0xbf90('0x25')]=_0x107685[_0xbf90('0xf')];for(_0x2a65bd=0x0;_0x2a65bd<_0x3809c3[_0xbf90('0x1e')];_0x2a65bd++){if(_0x3809c3[_0x2a65bd][_0xbf90('0x1f')]===_0x107685[_0xbf90('0xf')]){_0x56dfb6[_0xbf90('0x22')]=_0x3809c3[_0x2a65bd][_0xbf90('0x21')];}}}_0x38da5f(_0x56dfb6);})[_0xbf90('0x13')](function(_0x3e6f69){_0x40e1dc(_0x3e6f69['message']);});});}function createEndUser(_0x4ff06d,_0x4e2e75,_0x2e42fa,_0x2aa522,_0x3190c2,_0x1a4a0e){return new BPromise(function(_0x402727,_0x4aebfc){return getAuthToken(_0x4e2e75,_0x2e42fa,_0x1a4a0e)['then'](function(_0x45d0d8){var _0x259fd4=_0x1a4a0e['toLowerCase']()===_0xbf90('0x26')?_0x3190c2[_0xbf90('0x27')]:_0x3190c2[_0xbf90('0x28')];var _0x546ee3={'method':_0xbf90('0xc'),'uri':_0x2aa522+_0xbf90('0x29'),'body':{'telephone1':_0x259fd4,'fullname':_0x259fd4,'firstname':_0x259fd4,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':_0xbf90('0x2a')+_0x4ff06d[_0xbf90('0x22')]+')'},'headers':{'Authorization':_0xbf90('0x18')+_0x45d0d8,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x546ee3);})[_0xbf90('0x1a')](function(_0x3b9f0c){var _0x3fa2e7=_0x3b9f0c[_0xbf90('0x2b')][_0xbf90('0x2c')];var _0x286b70=_0x3fa2e7[_0xbf90('0x2d')](_0x3fa2e7['lastIndexOf']('(')+0x1,_0x3fa2e7[_0xbf90('0x2e')](')'));_0x4ff06d['enduserId']=_0x286b70;_0x402727(_0x4ff06d);})['catch'](function(_0x5cb800){_0x4aebfc(_0x5cb800['message']);});});}function getEndUser(_0x458e89,_0x3ffdff,_0x13de8e,_0x5c916a,_0xffe175,_0x1a24bb){return new BPromise(function(_0x522eb5,_0x57e3db){var _0x175ec2=_0x1a24bb[_0xbf90('0x2f')]()===_0xbf90('0x26')?_0xffe175['destcalleridnum']:_0xffe175[_0xbf90('0x28')];return getAuthToken(_0x3ffdff,_0x13de8e,_0x1a24bb)[_0xbf90('0x1a')](function(_0x5ba00d){var _0x35563b={'method':_0xbf90('0x16'),'uri':_0x5c916a+_0xbf90('0x30')+_0x175ec2[_0xbf90('0x31')]('+',_0xbf90('0x32'))+'\x27','headers':{'Authorization':_0xbf90('0x18')+_0x5ba00d,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x35563b);})[_0xbf90('0x1a')](function(_0xbac182){var _0x1c4255=null;if(_0xbac182){var _0x30ba23=_0xbac182[_0xbf90('0x1b')];var _0x3b879a=![];for(_0x1c4255=0x0;_0x1c4255<_0x30ba23[_0xbf90('0x1e')];_0x1c4255++){if(_0x30ba23[_0x1c4255][_0xbf90('0x33')]===_0x175ec2){_0x3b879a=!![];_0x458e89['enduserId']=_0x30ba23[_0x1c4255][_0xbf90('0x34')];}}if(_0x3b879a){_0x522eb5(_0x458e89);}else{return createEndUser(_0x458e89,_0x3ffdff,_0x13de8e,_0x5c916a,_0xffe175,_0x1a24bb)[_0xbf90('0x1a')](function(_0x3d5b5f){logger[_0xbf90('0x23')]('['+[_0x1a24bb[_0xbf90('0x15')]()]+_0xbf90('0x35'),_0x3d5b5f[_0xbf90('0x36')]);_0x522eb5(_0x3d5b5f);});}}else{return createEndUser(_0x458e89,_0x3ffdff,_0x13de8e,_0x5c916a,_0xffe175,_0x1a24bb)[_0xbf90('0x1a')](function(_0x5391c){logger[_0xbf90('0x23')]('['+[_0x1a24bb[_0xbf90('0x15')]()]+_0xbf90('0x37'),_0x5391c[_0xbf90('0x36')]);_0x522eb5(_0x5391c);});}});});}function getCustomFields(_0x312796,_0x5bd84a,_0x3117a2){var _0x514e0b={};if(_0x312796[_0xbf90('0x1e')]>0x0){_[_0xbf90('0x38')](_0x312796,function(_0x274158){if(_[_0xbf90('0x39')](['string','picklist'],_0x274158['type'])&&_0x274158[_0xbf90('0x3a')]&&!_0x274158['customField']){var _0x52db35=_0x274158[_0xbf90('0x3b')]['toLowerCase']();var _0x3494b5=_0x52db35[_0xbf90('0x2d')](0x0,_0x52db35['indexOf']('_'));var _0x5c23f7=_0x52db35[_0xbf90('0x2d')](_0x52db35[_0xbf90('0x3c')]('_')+0x1);if(_0x3494b5===_0x3117a2){_0x514e0b[_0x5c23f7]=_0x274158[_0xbf90('0x3d')];}}});}return _0x514e0b;}function getTicket(_0x2b6e01,_0x365c4d,_0x207f4e,_0x132bd1,_0x2e8aaf,_0x4fc1bf,_0x415c5a){return new BPromise(function(_0x576a10,_0x24da32){var _0x1fa152;return getAuthToken(_0x365c4d,_0x207f4e,_0x415c5a)['then'](function(_0x1bb43a){if(_0x4fc1bf[_0xbf90('0x3e')]==='incident'){_0x1fa152={'method':_0xbf90('0xc'),'uri':_0x132bd1+'incidents','body':Object['assign']({},{'title':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x40')],_0x2e8aaf,'\x20'),'description':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x41')],_0x2e8aaf,'\x0a'),'customerid_contact@odata.bind':_0xbf90('0x42')+_0x2b6e01[_0xbf90('0x36')]+')','ownerid@odata.bind':'/systemusers('+_0x2b6e01[_0xbf90('0x22')]+')','caseorigincode':'1'},getCustomFields(_0x4fc1bf[_0xbf90('0x43')],_0x2e8aaf,_0x4fc1bf[_0xbf90('0x3e')])),'headers':{'Authorization':_0xbf90('0x18')+_0x1bb43a,'OData-Version':_0xbf90('0x19')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x4fc1bf[_0xbf90('0x3e')]===_0xbf90('0x44')){_0x1fa152={'method':'POST','uri':_0x132bd1+_0xbf90('0x45'),'body':Object['assign']({},{'subject':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x40')],_0x2e8aaf,'\x20'),'phonenumber':String(_0x2e8aaf[_0xbf90('0x28')]),'description':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x41')],_0x2e8aaf,'\x0a'),'regardingobjectid_contact@odata.bind':_0xbf90('0x42')+_0x2b6e01[_0xbf90('0x36')]+')','ownerid@odata.bind':'/systemusers('+_0x2b6e01[_0xbf90('0x22')]+')','directioncode':_0x2b6e01[_0xbf90('0x46')]==='queue'?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0xbf90('0x2a')+_0x2b6e01[_0xbf90('0x22')]+')','participationtypemask':_0x2b6e01[_0xbf90('0x46')]===_0xbf90('0x47')?0x2:0x1},{'partyid_contact@odata.bind':'/contacts('+_0x2b6e01[_0xbf90('0x36')]+')','participationtypemask':_0x2b6e01[_0xbf90('0x46')]===_0xbf90('0x47')?0x1:0x2}]},getCustomFields(_0x4fc1bf[_0xbf90('0x43')],_0x2e8aaf,_0x4fc1bf[_0xbf90('0x3e')])),'headers':{'Authorization':_0xbf90('0x18')+_0x1bb43a,'OData-Version':_0xbf90('0x19')},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x1fa152);})[_0xbf90('0x1a')](function(_0x43c005){var _0x3ad962=_0x43c005[_0xbf90('0x2b')][_0xbf90('0x2c')];var _0x2ee90c=_0x3ad962[_0xbf90('0x2d')](_0x3ad962[_0xbf90('0x2e')]('(')+0x1,_0x3ad962[_0xbf90('0x2e')](')'));_0x2b6e01[_0xbf90('0x48')]=_0x2ee90c;_0x576a10(_0x2b6e01);})['catch'](function(_0x388984){_0x24da32(_0x388984[_0xbf90('0x49')]);});});}function emit(_0x24e549,_0x33815,_0x34d606,_0x2c62e6){var _0x307ed9={'uri':util[_0xbf90('0x4a')](_0xbf90('0x4b'),_0x24e549,_0x34d606,_0x2c62e6)};io['to'](util[_0xbf90('0x4a')](_0xbf90('0x4c'),_0x33815))[_0xbf90('0x4d')](_0xbf90('0x4e'),_0x307ed9);}exports['cs']=function(_0x18252a,_0x3e457d,_0x5d4e4f,_0x15af0e,_0x2f0801,_0x2142b8,_0x438a45,_0x5163bc){var _0x160349={};_0x2142b8[_0xbf90('0xe')]=intUtil['stripTrailingSlash'](_0x2142b8[_0xbf90('0xe')]);_0x2142b8[_0xbf90('0x4f')]=intUtil['stripTrailingSlash'](_0x2142b8[_0xbf90('0x4f')]);_0x160349['callDirection']=_0x5163bc==='queue'||_0x5163bc===_0xbf90('0x50')?_0xbf90('0x47'):_0xbf90('0x26');var _0x501ce8=util[_0xbf90('0x4a')]('%s/api/data/v9.0/',_0x2142b8[_0xbf90('0xe')]);var _0x457f0f=util[_0xbf90('0x4a')](_0xbf90('0x51'),_0x2142b8[_0xbf90('0x52')]);var _0x6a8dd6=util['format'](_0xbf90('0x53'),_0x2142b8['serverUrl'],_0x3e457d[_0xbf90('0x54')],md5(_0x3e457d[_0xbf90('0x54')]));if(_0x2f0801&&_0x2f0801[_0xbf90('0x55')]){logger[_0xbf90('0x23')](_0xbf90('0x56'),'Recording\x20is\x20enabled!');_0x3e457d[_0xbf90('0x57')]=_0x6a8dd6;}else if(_0x438a45&&_0x438a45[_0xbf90('0x58')]&&_0x438a45[_0xbf90('0x58')]!==_0xbf90('0x59')){logger[_0xbf90('0x23')]('[OUTBOUND]',_0xbf90('0x5a'));_0x3e457d[_0xbf90('0x57')]=_0x6a8dd6;}else{_0x3e457d[_0xbf90('0x57')]='';}return getUser(_0x160349,_0x2142b8,_0x15af0e,_0x457f0f,_0x501ce8,_0x5163bc)[_0xbf90('0x1a')](function(_0x1af555){logger['info']('['+_0x5163bc[_0xbf90('0x15')]()+']\x20The\x20User\x20ID\x20is:',_0x1af555[_0xbf90('0x22')]);logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5b'),_0x1af555[_0xbf90('0x25')]);return getEndUser(_0x1af555,_0x2142b8,_0x457f0f,_0x501ce8,_0x3e457d,_0x5163bc);})[_0xbf90('0x1a')](function(_0x582f8a){logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5c'),_0x582f8a[_0xbf90('0x36')]);logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5d'),_0x3e457d['calleridnum']);return getTicket(_0x582f8a,_0x2142b8,_0x457f0f,_0x501ce8,_0x3e457d,_0x5d4e4f,_0x5163bc);})['then'](function(_0x1138df){logger['info'](util[_0xbf90('0x4a')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5e'),_0x5d4e4f[_0xbf90('0x3e')],_0x1138df[_0xbf90('0x48')]));logger[_0xbf90('0x23')](util[_0xbf90('0x4a')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5f'),_0x5163bc));if(_0x5163bc!==_0xbf90('0x50')){logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+']','Displaying\x20call\x20in\x20a\x20new\x20tab...');emit(_0x2142b8[_0xbf90('0xe')],_0x15af0e[_0xbf90('0x60')],_0x5d4e4f[_0xbf90('0x3e')],_0x1138df[_0xbf90('0x48')]);}})[_0xbf90('0x13')](function(_0x5b2219){logger[_0xbf90('0x14')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x61'),util[_0xbf90('0x62')](_0x5b2219,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x6ca0=['Displaying\x20call\x20in\x20a\x20new\x20tab...','name','inspect','lodash','bluebird','request-promise','util','./util','md5','ioredis','../../../../config/logger','dynamics365','../../../../config/environment','defaults','redis','localhost','socket.io-emitter','POST','clientId','remoteUri','username','password','clientSecret','then','access_token','catch','error','toUpperCase',']\x20Wrong\x20credentials!','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','4.0','value','isNil','validateEmail','email','userEmail','length','internalemailaddress','systemuserid','userId',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','message','toLowerCase','outbound','destcalleridnum','calleridnum','/systemusers(','Bearer\x20','headers','odata-entityid','substring','lastIndexOf','enduserId','replace','%2b','telephone1',']\x20Enduser\x20created!','forEach','includes','string','picklist','type','nameField','customField','idField','indexOf','content','ticketType','incident','assign','getString','/contacts(','Fields','phonecall','Subjects','callDirection','queue','ticketId','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','stripTrailingSlash','serverUrl','unmanaged','https://login.microsoftonline.com/%s/oauth2/token','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','info',']\x20The\x20User\x20ID\x20is:',']\x20The\x20User\x20email\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s'];(function(_0x50035c,_0x1e302f){var _0x3817d6=function(_0x2cf45e){while(--_0x2cf45e){_0x50035c['push'](_0x50035c['shift']());}};_0x3817d6(++_0x1e302f);}(_0x6ca0,0x68));var _0x06ca=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6ca0[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x06ca('0x0'));var BPromise=require(_0x06ca('0x1'));var rp=require(_0x06ca('0x2'));var util=require(_0x06ca('0x3'));var intUtil=require(_0x06ca('0x4'));var md5=require(_0x06ca('0x5'));var Redis=require(_0x06ca('0x6'));var logger=require(_0x06ca('0x7'))(_0x06ca('0x8'));var config=require(_0x06ca('0x9'));config['redis']=_[_0x06ca('0xa')](config[_0x06ca('0xb')],{'host':_0x06ca('0xc'),'port':0x18eb});var io=require(_0x06ca('0xd'))(new Redis(config[_0x06ca('0xb')]));function getAuthToken(_0x4aee0b,_0x359c19,_0x1faf02){var _0xa7a44d={'method':_0x06ca('0xe'),'uri':_0x359c19,'form':{'client_id':_0x4aee0b[_0x06ca('0xf')],'resource':_0x4aee0b[_0x06ca('0x10')],'username':_0x4aee0b[_0x06ca('0x11')],'password':_0x4aee0b[_0x06ca('0x12')],'grant_type':_0x06ca('0x12'),'client_secret':_0x4aee0b[_0x06ca('0x13')]},'json':!![]};return rp(_0xa7a44d)[_0x06ca('0x14')](function(_0xfbfa49){return _0xfbfa49[_0x06ca('0x15')];})[_0x06ca('0x16')](function(_0x38f067){logger[_0x06ca('0x17')]('['+[_0x1faf02[_0x06ca('0x18')]()]+_0x06ca('0x19'));return _0x38f067['message'];});}function getUser(_0xe6a394,_0x3a2b26,_0x39b59c,_0xdc1bfc,_0x349718,_0x2600f9){return new BPromise(function(_0x2a8d5b,_0xfc1fe7){return getAuthToken(_0x3a2b26,_0xdc1bfc,_0x2600f9)[_0x06ca('0x14')](function(_0x1bb34f){var _0x5116a0={'method':_0x06ca('0x1a'),'uri':_0x349718+_0x06ca('0x1b'),'headers':{'Authorization':'Bearer\x20'+_0x1bb34f,'OData-Version':_0x06ca('0x1c')},'json':!![]};return rp(_0x5116a0);})[_0x06ca('0x14')](function(_0x525152){var _0x7d15f8=_0x525152[_0x06ca('0x1d')];var _0x57ea81=![];var _0x1c9c79=null;if(!_[_0x06ca('0x1e')](_0x39b59c)){if(intUtil[_0x06ca('0x1f')](_0x39b59c[_0x06ca('0x20')])){_0xe6a394[_0x06ca('0x21')]=_0x39b59c['email'];for(_0x1c9c79=0x0;_0x1c9c79<_0x7d15f8[_0x06ca('0x22')];_0x1c9c79++){if(_0x7d15f8[_0x1c9c79][_0x06ca('0x23')]===_0x39b59c[_0x06ca('0x20')]&&!_0x7d15f8[_0x1c9c79]['isdisabled']){_0x57ea81=!![];logger['info']('['+[_0x2600f9[_0x06ca('0x18')]()]+']\x20Agent\x20found\x20'+_0x7d15f8[_0x1c9c79][_0x06ca('0x24')]+'!');_0xe6a394[_0x06ca('0x25')]=_0x7d15f8[_0x1c9c79][_0x06ca('0x24')];}}}}if(!_0x57ea81){logger['info']('['+[_0x2600f9['toUpperCase']()]+_0x06ca('0x26'));_0xe6a394[_0x06ca('0x21')]=_0x3a2b26[_0x06ca('0x11')];for(_0x1c9c79=0x0;_0x1c9c79<_0x7d15f8[_0x06ca('0x22')];_0x1c9c79++){if(_0x7d15f8[_0x1c9c79][_0x06ca('0x23')]===_0x3a2b26[_0x06ca('0x11')]){_0xe6a394['userId']=_0x7d15f8[_0x1c9c79][_0x06ca('0x24')];}}}_0x2a8d5b(_0xe6a394);})[_0x06ca('0x16')](function(_0x3c646e){_0xfc1fe7(_0x3c646e[_0x06ca('0x27')]);});});}function createEndUser(_0x5df2dd,_0x206719,_0x4197e5,_0x163c0f,_0xaf0de1,_0xa1648f){return new BPromise(function(_0x455a4b,_0x15dd15){return getAuthToken(_0x206719,_0x4197e5,_0xa1648f)[_0x06ca('0x14')](function(_0x102b45){var _0x49965f=_0xa1648f[_0x06ca('0x28')]()===_0x06ca('0x29')?_0xaf0de1[_0x06ca('0x2a')]:_0xaf0de1[_0x06ca('0x2b')];var _0x4781bf={'method':_0x06ca('0xe'),'uri':_0x163c0f+'contacts','body':{'telephone1':_0x49965f,'fullname':_0x49965f,'firstname':_0x49965f,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':_0x06ca('0x2c')+_0x5df2dd['userId']+')'},'headers':{'Authorization':_0x06ca('0x2d')+_0x102b45,'OData-Version':_0x06ca('0x1c')},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x4781bf);})[_0x06ca('0x14')](function(_0x71e023){var _0x1eb3d9=_0x71e023[_0x06ca('0x2e')][_0x06ca('0x2f')];var _0x40ddc5=_0x1eb3d9[_0x06ca('0x30')](_0x1eb3d9[_0x06ca('0x31')]('(')+0x1,_0x1eb3d9[_0x06ca('0x31')](')'));_0x5df2dd[_0x06ca('0x32')]=_0x40ddc5;_0x455a4b(_0x5df2dd);})[_0x06ca('0x16')](function(_0x19a947){_0x15dd15(_0x19a947[_0x06ca('0x27')]);});});}function getEndUser(_0x433606,_0x49e879,_0x49b3c7,_0x15f566,_0xcb2db8,_0x578e79){return new BPromise(function(_0x2543ae,_0x2be265){var _0x22e43c=_0x578e79['toLowerCase']()===_0x06ca('0x29')?_0xcb2db8['destcalleridnum']:_0xcb2db8[_0x06ca('0x2b')];return getAuthToken(_0x49e879,_0x49b3c7,_0x578e79)[_0x06ca('0x14')](function(_0x4de067){var _0x561866={'method':_0x06ca('0x1a'),'uri':_0x15f566+'contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27'+_0x22e43c[_0x06ca('0x33')]('+',_0x06ca('0x34'))+'\x27','headers':{'Authorization':_0x06ca('0x2d')+_0x4de067,'If-None-Match':null,'OData-Version':_0x06ca('0x1c')},'json':!![]};return rp(_0x561866);})[_0x06ca('0x14')](function(_0x669630){var _0x59dbdf=null;if(_0x669630){var _0x46f86a=_0x669630[_0x06ca('0x1d')];var _0x5810c4=![];for(_0x59dbdf=0x0;_0x59dbdf<_0x46f86a[_0x06ca('0x22')];_0x59dbdf++){if(_0x46f86a[_0x59dbdf][_0x06ca('0x35')]===_0x22e43c){_0x5810c4=!![];_0x433606[_0x06ca('0x32')]=_0x46f86a[_0x59dbdf]['contactid'];}}if(_0x5810c4){_0x2543ae(_0x433606);}else{return createEndUser(_0x433606,_0x49e879,_0x49b3c7,_0x15f566,_0xcb2db8,_0x578e79)['then'](function(_0x20f873){logger['info']('['+[_0x578e79[_0x06ca('0x18')]()]+_0x06ca('0x36'),_0x20f873[_0x06ca('0x32')]);_0x2543ae(_0x20f873);});}}else{return createEndUser(_0x433606,_0x49e879,_0x49b3c7,_0x15f566,_0xcb2db8,_0x578e79)[_0x06ca('0x14')](function(_0x27f615){logger['info']('['+[_0x578e79['toUpperCase']()]+']\x20Enduser\x20Created!',_0x27f615[_0x06ca('0x32')]);_0x2543ae(_0x27f615);});}});});}function getCustomFields(_0x3d303c,_0x17273e,_0x3bccd4){var _0x2afc32={};if(_0x3d303c[_0x06ca('0x22')]>0x0){_[_0x06ca('0x37')](_0x3d303c,function(_0x181f15){if(_[_0x06ca('0x38')]([_0x06ca('0x39'),_0x06ca('0x3a')],_0x181f15[_0x06ca('0x3b')])&&_0x181f15[_0x06ca('0x3c')]&&!_0x181f15[_0x06ca('0x3d')]){var _0x26c71b=_0x181f15[_0x06ca('0x3e')][_0x06ca('0x28')]();var _0x11411e=_0x26c71b[_0x06ca('0x30')](0x0,_0x26c71b[_0x06ca('0x3f')]('_'));var _0x91abe7=_0x26c71b['substring'](_0x26c71b['indexOf']('_')+0x1);if(_0x11411e===_0x3bccd4){_0x2afc32[_0x91abe7]=_0x181f15[_0x06ca('0x40')];}}});}return _0x2afc32;}function getTicket(_0x30ec95,_0x2d2e13,_0x31c512,_0x6d8f2a,_0x2050b8,_0x9dba83,_0x1ea7e0){return new BPromise(function(_0x419cd4,_0x53d711){var _0x4581f9;return getAuthToken(_0x2d2e13,_0x31c512,_0x1ea7e0)[_0x06ca('0x14')](function(_0x3f6152){if(_0x9dba83[_0x06ca('0x41')]===_0x06ca('0x42')){_0x4581f9={'method':'POST','uri':_0x6d8f2a+'incidents','body':Object[_0x06ca('0x43')]({},{'title':intUtil[_0x06ca('0x44')](_0x9dba83['Subjects'],_0x2050b8,'\x20'),'description':intUtil['getString'](_0x9dba83['Descriptions'],_0x2050b8,'\x0a'),'customerid_contact@odata.bind':_0x06ca('0x45')+_0x30ec95['enduserId']+')','ownerid@odata.bind':_0x06ca('0x2c')+_0x30ec95['userId']+')','caseorigincode':'1'},getCustomFields(_0x9dba83[_0x06ca('0x46')],_0x2050b8,_0x9dba83['ticketType'])),'headers':{'Authorization':_0x06ca('0x2d')+_0x3f6152,'OData-Version':_0x06ca('0x1c')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x9dba83[_0x06ca('0x41')]===_0x06ca('0x47')){_0x4581f9={'method':_0x06ca('0xe'),'uri':_0x6d8f2a+'phonecalls','body':Object['assign']({},{'subject':intUtil['getString'](_0x9dba83[_0x06ca('0x48')],_0x2050b8,'\x20'),'phonenumber':String(_0x2050b8[_0x06ca('0x2b')]),'description':intUtil[_0x06ca('0x44')](_0x9dba83['Descriptions'],_0x2050b8,'\x0a'),'regardingobjectid_contact@odata.bind':_0x06ca('0x45')+_0x30ec95[_0x06ca('0x32')]+')','ownerid@odata.bind':_0x06ca('0x2c')+_0x30ec95[_0x06ca('0x25')]+')','directioncode':_0x30ec95[_0x06ca('0x49')]===_0x06ca('0x4a')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0x06ca('0x2c')+_0x30ec95['userId']+')','participationtypemask':_0x30ec95[_0x06ca('0x49')]===_0x06ca('0x4a')?0x2:0x1},{'partyid_contact@odata.bind':_0x06ca('0x45')+_0x30ec95[_0x06ca('0x32')]+')','participationtypemask':_0x30ec95[_0x06ca('0x49')]==='queue'?0x1:0x2}]},getCustomFields(_0x9dba83[_0x06ca('0x46')],_0x2050b8,_0x9dba83[_0x06ca('0x41')])),'headers':{'Authorization':_0x06ca('0x2d')+_0x3f6152,'OData-Version':_0x06ca('0x1c')},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x4581f9);})[_0x06ca('0x14')](function(_0x20e3e9){var _0x275a97=_0x20e3e9[_0x06ca('0x2e')][_0x06ca('0x2f')];var _0x495a86=_0x275a97[_0x06ca('0x30')](_0x275a97[_0x06ca('0x31')]('(')+0x1,_0x275a97['lastIndexOf'](')'));_0x30ec95[_0x06ca('0x4b')]=_0x495a86;_0x419cd4(_0x30ec95);})[_0x06ca('0x16')](function(_0x16a991){_0x53d711(_0x16a991['message']);});});}function emit(_0x56368b,_0xf59059,_0x328eea,_0x3f2cfc){var _0x2c3fd7={'uri':util[_0x06ca('0x4c')](_0x06ca('0x4d'),_0x56368b,_0x328eea,_0x3f2cfc)};io['to'](util['format'](_0x06ca('0x4e'),_0xf59059))[_0x06ca('0x4f')]('trigger:browser:url',_0x2c3fd7);}exports['cs']=function(_0x13b6e8,_0x234398,_0x19b96b,_0x71c092,_0xa81186,_0x18a82d,_0x1424e9,_0x5c6aa3){var _0x1f9371={};_0x18a82d[_0x06ca('0x10')]=intUtil[_0x06ca('0x50')](_0x18a82d['remoteUri']);_0x18a82d[_0x06ca('0x51')]=intUtil[_0x06ca('0x50')](_0x18a82d[_0x06ca('0x51')]);_0x1f9371[_0x06ca('0x49')]=_0x5c6aa3==='queue'||_0x5c6aa3===_0x06ca('0x52')?_0x06ca('0x4a'):_0x06ca('0x29');var _0x42a8a9=util[_0x06ca('0x4c')]('%s/api/data/v9.0/',_0x18a82d[_0x06ca('0x10')]);var _0x1005c2=util[_0x06ca('0x4c')](_0x06ca('0x53'),_0x18a82d[_0x06ca('0x54')]);var _0x397625=util[_0x06ca('0x4c')](_0x06ca('0x55'),_0x18a82d[_0x06ca('0x51')],_0x234398[_0x06ca('0x56')],md5(_0x234398[_0x06ca('0x56')]));if(_0xa81186&&_0xa81186[_0x06ca('0x57')]){logger['info'](_0x06ca('0x58'),_0x06ca('0x59'));_0x234398[_0x06ca('0x5a')]=_0x397625;}else if(_0x1424e9&&_0x1424e9[_0x06ca('0x5b')]&&_0x1424e9['recordingFormat']!==_0x06ca('0x5c')){logger[_0x06ca('0x5d')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x234398['recordingURL']=_0x397625;}else{_0x234398[_0x06ca('0x5a')]='';}return getUser(_0x1f9371,_0x18a82d,_0x71c092,_0x1005c2,_0x42a8a9,_0x5c6aa3)['then'](function(_0x348319){logger['info']('['+_0x5c6aa3[_0x06ca('0x18')]()+_0x06ca('0x5e'),_0x348319[_0x06ca('0x25')]);logger[_0x06ca('0x5d')]('['+_0x5c6aa3[_0x06ca('0x18')]()+_0x06ca('0x5f'),_0x348319[_0x06ca('0x21')]);return getEndUser(_0x348319,_0x18a82d,_0x1005c2,_0x42a8a9,_0x234398,_0x5c6aa3);})['then'](function(_0x24a9e2){logger[_0x06ca('0x5d')]('['+_0x5c6aa3[_0x06ca('0x18')]()+']\x20The\x20Enduser\x20ID\x20is:',_0x24a9e2[_0x06ca('0x32')]);logger['info']('['+_0x5c6aa3[_0x06ca('0x18')]()+']\x20The\x20Enduser\x20phone\x20is:',_0x234398[_0x06ca('0x2b')]);return getTicket(_0x24a9e2,_0x18a82d,_0x1005c2,_0x42a8a9,_0x234398,_0x19b96b,_0x5c6aa3);})['then'](function(_0x3ab0f3){logger[_0x06ca('0x5d')](util[_0x06ca('0x4c')]('['+_0x5c6aa3[_0x06ca('0x18')]()+_0x06ca('0x60'),_0x19b96b[_0x06ca('0x41')],_0x3ab0f3['ticketId']));logger[_0x06ca('0x5d')](util[_0x06ca('0x4c')]('['+_0x5c6aa3[_0x06ca('0x18')]()+_0x06ca('0x61'),_0x5c6aa3));if(_0x5c6aa3!==_0x06ca('0x52')){logger['info']('['+_0x5c6aa3['toUpperCase']()+']',_0x06ca('0x62'));emit(_0x18a82d[_0x06ca('0x10')],_0x71c092[_0x06ca('0x63')],_0x19b96b[_0x06ca('0x41')],_0x3ab0f3['ticketId']);}})[_0x06ca('0x16')](function(_0x47c735){logger[_0x06ca('0x17')]('['+_0x5c6aa3[_0x06ca('0x18')]()+']\x20Error\x20running\x20Dynamics365\x20integration',util[_0x06ca('0x64')](_0x47c735,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2424=['length','Agent\x20found!','find','contact','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','base64','debug','[HTTP]','stringify','GET','forEach','string','picklist','type','customField','content','toString','variable','variableName','push','idField','customVariable','Variable','toLowerCase','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','The\x20User\x20ID\x20is:','calleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','%s/helpdesk/tickets/%d','catch','error','recordingFormat','none','[OUTBOUND]','Authorization','destcalleridname','destcalleridnum','user:%s','trigger:browser:url','unmanaged','toUpperCase','lastevent','util','ioredis','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','defaults','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','format','calleridname','getString','Subjects','Descriptions','name','Fields','keyBy','custom_fields','%s/api/v2/tickets','remoteUri','POST','then','Ticket\x20created!','validateEmail','%s/api/v2/agents'];(function(_0x23e498,_0x15f6fd){var _0x3ec2f5=function(_0x40f2cc){while(--_0x40f2cc){_0x23e498['push'](_0x23e498['shift']());}};_0x3ec2f5(++_0x15f6fd);}(_0x2424,0xf4));var _0x4242=function(_0x12a2b8,_0x1e4a81){_0x12a2b8=_0x12a2b8-0x0;var _0x29e552=_0x2424[_0x12a2b8];return _0x29e552;};'use strict';var _=require('lodash');var rp=require('request-promise');var md5=require('md5');var util=require(_0x4242('0x0'));var Redis=require(_0x4242('0x1'));var intUtil=require(_0x4242('0x2'));var config=require(_0x4242('0x3'));var logger=require(_0x4242('0x4'))(_0x4242('0x5'));config[_0x4242('0x6')]=_[_0x4242('0x7')](config[_0x4242('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x4242('0x8'))(new Redis(config['redis']));var headers={'Content-Type':_0x4242('0x9'),'Accept':'application/json'};function emit(_0x55fe3b,_0xa30487,_0x361bdc){io['to'](_0x55fe3b)[_0x4242('0xa')](_0xa30487,_0x361bdc);}function getTicket(_0x29ea20,_0xfb9842,_0x536651,_0x581dcd,_0x110bb0){logger[_0x4242('0xb')](_0x4242('0xc'));var _0x5c383f=_['merge']({'responder_id':_0xfb9842['id'],'requester_id':_0x536651['id'],'name':util[_0x4242('0xd')]('Caller\x20-\x20%s',_0x110bb0[_0x4242('0xe')]),'phone':_0x110bb0['calleridnum'],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0x4242('0xf')](_0x581dcd[_0x4242('0x10')],_0x110bb0,'\x20'),'description':intUtil[_0x4242('0xf')](_0x581dcd[_0x4242('0x11')],_0x110bb0,'<br>'),'tags':getTags(_0x581dcd['Tags'],_0x4242('0x12'))},getCustomFields(_0x581dcd[_0x4242('0x13')],_0x110bb0));_0x5c383f['custom_fields']=_['mapValues'](_[_0x4242('0x14')](_0x5c383f[_0x4242('0x15')],'id'),'value');return request({'uri':util['format'](_0x4242('0x16'),_0x29ea20[_0x4242('0x17')]),'method':_0x4242('0x18'),'body':_0x5c383f})[_0x4242('0x19')](function(_0x1c6d91){logger['info'](_0x4242('0x1a'));return _0x1c6d91;});}function getUser(_0x104c50,_0x2a78f5){if(intUtil[_0x4242('0x1b')](_0x2a78f5)){return request({'uri':util[_0x4242('0xd')](_0x4242('0x1c'),_0x104c50[_0x4242('0x17')]),'qs':{'email':_0x2a78f5}})[_0x4242('0x19')](function(_0xa14243){if(_0xa14243[_0x4242('0x1d')]){logger['info'](_0x4242('0x1e'));return _[_0x4242('0x1f')](_0xa14243,function(_0x27edcb){return _0x27edcb[_0x4242('0x20')][_0x4242('0x21')]===_0x2a78f5;});}else{logger['info'](_0x4242('0x22'));return request({'uri':util[_0x4242('0xd')](_0x4242('0x23'),_0x104c50['remoteUri'])})[_0x4242('0x19')](function(_0x2cdd26){logger[_0x4242('0xb')](_0x4242('0x24'));return _0x2cdd26;});}});}else{logger[_0x4242('0xb')](_0x4242('0x25'));return request({'uri':util[_0x4242('0xd')](_0x4242('0x23'),_0x104c50[_0x4242('0x17')])})['then'](function(_0x13e9c0){logger[_0x4242('0xb')](_0x4242('0x24'));return _0x13e9c0;});}}function getEndUser(_0x392546,_0x334fdc,_0x1bffe8){logger[_0x4242('0xb')](_0x4242('0x26'),_0x1bffe8);return request({'uri':util[_0x4242('0xd')](_0x4242('0x27'),_0x392546[_0x4242('0x17')]),'qs':{'phone':_0x1bffe8}})[_0x4242('0x19')](function(_0x18fecf){if(_0x18fecf['length']){logger[_0x4242('0xb')](_0x4242('0x28'));return _[_0x4242('0x1f')](_0x18fecf,{'phone':_0x1bffe8});}else{logger['info'](_0x4242('0x29'));return request({'uri':util[_0x4242('0xd')](_0x4242('0x27'),_0x392546[_0x4242('0x17')]),'method':'POST','body':{'name':_0x334fdc,'phone':_0x1bffe8}})[_0x4242('0x19')](function(_0x53e802){logger['info'](_0x4242('0x2a'));return _0x53e802;});}});}function getAuth(_0x40a5e3){return util[_0x4242('0xd')](_0x4242('0x2b'),new Buffer(_0x40a5e3['apiKey']+':X')['toString'](_0x4242('0x2c')));}function request(_0x49c035){logger[_0x4242('0x2d')](_0x4242('0x2e'),JSON[_0x4242('0x2f')](_0x49c035));return rp(_[_0x4242('0x7')](_0x49c035,{'method':_0x4242('0x30'),'headers':headers,'json':!![]}));}function getTags(_0x1e8979,_0x511794){var _0x56c24a=[];if(_0x1e8979&&_0x1e8979[_0x4242('0x1d')]>0x0){_0x56c24a=_['map'](_0x1e8979,_0x511794);}return _0x56c24a;}function getCustomFields(_0x1c5537,_0x187373){var _0xf9276c=[];var _0x42af7a={'custom_fields':[]};if(_0x1c5537[_0x4242('0x1d')]>0x0){_[_0x4242('0x31')](_0x1c5537,function(_0x1baa52){if(_['includes']([_0x4242('0x32'),_0x4242('0x33')],_0x1baa52[_0x4242('0x34')])&&_0x1baa52['nameField']&&!_0x1baa52[_0x4242('0x35')]){_0x42af7a[_0x1baa52['nameField']['toLowerCase']()]=_0x1baa52[_0x4242('0x36')][_0x4242('0x37')]();}else if(_['includes']([_0x4242('0x32'),_0x4242('0x33')],_0x1baa52['type'])&&_0x1baa52['idField']&&_0x1baa52['customField']){_0x42af7a[_0x4242('0x15')]['push']({'id':_0x1baa52['idField'],'value':_0x1baa52[_0x4242('0x36')][_0x4242('0x37')]()});}else if(_0x1baa52[_0x4242('0x34')]===_0x4242('0x38')&&_0x1baa52['variableName']&&_0x1baa52['idField']&&_0x1baa52[_0x4242('0x35')]){_0x187373[_0x1baa52[_0x4242('0x39')]]&&_0x42af7a['custom_fields'][_0x4242('0x3a')]({'id':_0x1baa52[_0x4242('0x3b')],'value':_0x187373[_0x1baa52[_0x4242('0x39')]][_0x4242('0x37')]()});}else if(_0x1baa52[_0x4242('0x34')]===_0x4242('0x3c')&&_0x1baa52[_0x4242('0x3d')]&&_0x1baa52[_0x4242('0x3d')][_0x4242('0x12')]&&_0x1baa52[_0x4242('0x3b')]&&_0x1baa52[_0x4242('0x35')]){_0x187373[_0x1baa52[_0x4242('0x3d')][_0x4242('0x12')][_0x4242('0x3e')]()]&&_0x42af7a['custom_fields']['push']({'id':_0x1baa52[_0x4242('0x3b')],'value':_0x187373[_0x1baa52[_0x4242('0x3d')][_0x4242('0x12')][_0x4242('0x3e')]()]['toString']()});}});}return _0x42af7a;}exports[_0x4242('0x3f')]=function(_0x22b699,_0xaedeea,_0x1565fd,_0x4ccf4a,_0x39f1e3,_0x497688){var _0x47d6e8,_0x3b32e2;_0x497688['remoteUri']=intUtil[_0x4242('0x40')](_0x497688[_0x4242('0x17')]);_0x497688[_0x4242('0x41')]=intUtil['stripTrailingSlash'](_0x497688[_0x4242('0x41')]);if(_0x39f1e3&&_0x39f1e3[_0x4242('0x42')]){logger[_0x4242('0xb')](_0x4242('0x43'),_0x4242('0x44'));_0xaedeea[_0x4242('0x45')]=util[_0x4242('0xd')](_0x4242('0x46'),_0x497688[_0x4242('0x41')],_0xaedeea[_0x4242('0x47')],md5(_0xaedeea[_0x4242('0x47')]));}else{_0xaedeea['recordingURL']='';}headers['Authorization']=getAuth(_0x497688);return getUser(_0x497688,_0x4ccf4a[_0x4242('0x21')])[_0x4242('0x19')](function(_0x50b968){_0x47d6e8=_0x50b968;logger[_0x4242('0xb')](_0x4242('0x48'),_0x47d6e8['id']);return getEndUser(_0x497688,_0xaedeea[_0x4242('0xe')],_0xaedeea[_0x4242('0x49')]);})[_0x4242('0x19')](function(_0x1c6aa1){_0x3b32e2=_0x1c6aa1;logger[_0x4242('0xb')](_0x4242('0x4a'),_0x3b32e2['id']);return getTicket(_0x497688,_0x47d6e8,_0x3b32e2,_0x1565fd,_0xaedeea);})['then'](function(_0x52bd1c){if(_0x52bd1c&&_0x52bd1c['id']){logger[_0x4242('0xb')](_0x4242('0x1a'));logger[_0x4242('0xb')](_0x4242('0x4b'),_0x52bd1c['id']);logger['info'](_0x4242('0x43'),_0x4242('0x4c'));emit(util[_0x4242('0xd')]('user:%s',_0x4ccf4a[_0x4242('0x12')]),'trigger:browser:url',{'uri':util['format'](_0x4242('0x4d'),_0x497688[_0x4242('0x17')],_0x52bd1c['id'])});}})[_0x4242('0x4e')](function(_0x26e155){logger[_0x4242('0x4f')](_0x4242('0x43'),JSON[_0x4242('0x2f')](_0x26e155));});};exports['outbound']=function(_0x5eb412,_0x34c06b,_0x422e03,_0xd00803,_0x2981be,_0x1bb11c,_0x555799){var _0x3476bf,_0x11e7d0;_0x1bb11c[_0x4242('0x17')]=intUtil['stripTrailingSlash'](_0x1bb11c['remoteUri']);_0x1bb11c[_0x4242('0x41')]=intUtil[_0x4242('0x40')](_0x1bb11c[_0x4242('0x41')]);if(_0x555799&&_0x555799[_0x4242('0x50')]&&_0x555799['recordingFormat']!==_0x4242('0x51')){logger['info'](_0x4242('0x52'),_0x4242('0x44'));_0x34c06b[_0x4242('0x45')]=util['format'](_0x4242('0x46'),_0x1bb11c['serverUrl'],_0x34c06b[_0x4242('0x47')],md5(_0x34c06b[_0x4242('0x47')]));}headers[_0x4242('0x53')]=getAuth(_0x1bb11c);return getUser(_0x1bb11c,_0xd00803[_0x4242('0x21')])[_0x4242('0x19')](function(_0x5eeead){_0x3476bf=_0x5eeead;logger[_0x4242('0xb')](_0x4242('0x48'),_0x3476bf['id']);return getEndUser(_0x1bb11c,_0x34c06b[_0x4242('0x54')],_0x34c06b[_0x4242('0x55')]);})[_0x4242('0x19')](function(_0x2c9687){_0x11e7d0=_0x2c9687;logger['info'](_0x4242('0x4a'),_0x11e7d0['id']);return getTicket(_0x1bb11c,_0x3476bf,_0x11e7d0,_0x422e03,_0x34c06b);})[_0x4242('0x19')](function(_0x3947b9){if(_0x3947b9&&_0x3947b9['id']){logger[_0x4242('0xb')](_0x4242('0x1a'));logger[_0x4242('0xb')](_0x4242('0x4b'),_0x3947b9['id']);logger[_0x4242('0xb')](_0x4242('0x52'),_0x4242('0x4c'));emit(util[_0x4242('0xd')](_0x4242('0x56'),_0xd00803[_0x4242('0x12')]),_0x4242('0x57'),{'uri':util['format'](_0x4242('0x4d'),_0x1bb11c[_0x4242('0x17')],_0x3947b9['id'])});}})[_0x4242('0x4e')](function(_0x1ddba3){logger[_0x4242('0x4f')](_0x4242('0x52'),JSON[_0x4242('0x2f')](_0x1ddba3));});};exports[_0x4242('0x58')]=function(_0x48f629,_0x19ed99,_0x3c8081,_0x20c747,_0x2e14bd,_0x36d36c){var _0x4606e8,_0x15e6d7;_0x36d36c['remoteUri']=intUtil['stripTrailingSlash'](_0x36d36c[_0x4242('0x17')]);_0x36d36c['serverUrl']=intUtil[_0x4242('0x40')](_0x36d36c[_0x4242('0x41')]);if(_0x2e14bd&&_0x2e14bd[_0x4242('0x42')]){logger['info']('['+_0x19ed99['lastevent'][_0x4242('0x59')]()+']',_0x4242('0x44'));_0x19ed99['recordingURL']=util[_0x4242('0xd')](_0x4242('0x46'),_0x36d36c['serverUrl'],_0x19ed99[_0x4242('0x47')],md5(_0x19ed99[_0x4242('0x47')]));}else{_0x19ed99['recordingURL']='';}headers[_0x4242('0x53')]=getAuth(_0x36d36c);return getUser(_0x36d36c,'')[_0x4242('0x19')](function(_0x54ea2f){_0x4606e8=_0x54ea2f;logger['info']('The\x20User\x20ID\x20is:',_0x4606e8['id']);return getEndUser(_0x36d36c,_0x19ed99[_0x4242('0xe')],_0x19ed99[_0x4242('0x49')]);})['then'](function(_0x2c0b3c){_0x15e6d7=_0x2c0b3c;logger[_0x4242('0xb')](_0x4242('0x4a'),_0x15e6d7['id']);return getTicket(_0x36d36c,_0x4606e8,_0x15e6d7,_0x3c8081,_0x19ed99);})[_0x4242('0x19')](function(_0x3aaf39){if(_0x3aaf39){logger[_0x4242('0xb')](_0x4242('0x1a'));logger[_0x4242('0xb')](_0x4242('0x4b'),_0x3aaf39['id']);}})[_0x4242('0x4e')](function(_0x524cfd){logger[_0x4242('0x4f')]('['+_0x19ed99[_0x4242('0x5a')][_0x4242('0x59')]()+']',JSON['stringify'](_0x524cfd));});};
\ No newline at end of file
+var _0xeca2=['map','includes','string','picklist','nameField','customField','type','idField','content','variableName','push','customVariable','Variable','toLowerCase','queue','stripTrailingSlash','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/helpdesk/tickets/%d','error','outbound','recordingFormat','[OUTBOUND]','Authorization','catch','unmanaged','monitor_format','lastevent','md5','util','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','defaults','localhost','socket.io-emitter','application/json','emit','Creating\x20new\x20ticket...','format','Caller\x20-\x20%s','calleridname','calleridnum','getString','Descriptions','<br>','Tags','name','custom_fields','mapValues','value','%s/api/v2/tickets','POST','then','info','Ticket\x20created!','remoteUri','length','Agent\x20found!','find','contact','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','Enduser\x20found!','Enduser\x20created.','Basic\x20%s','toString','base64','debug','stringify','GET'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xeca2,0x7e));var _0x2eca=function(_0x4c3694,_0x446802){_0x4c3694=_0x4c3694-0x0;var _0x20da46=_0xeca2[_0x4c3694];return _0x20da46;};'use strict';var _=require('lodash');var rp=require('request-promise');var md5=require(_0x2eca('0x0'));var util=require(_0x2eca('0x1'));var Redis=require('ioredis');var intUtil=require(_0x2eca('0x2'));var config=require(_0x2eca('0x3'));var logger=require(_0x2eca('0x4'))(_0x2eca('0x5'));config[_0x2eca('0x6')]=_[_0x2eca('0x7')](config['redis'],{'host':_0x2eca('0x8'),'port':0x18eb});var io=require(_0x2eca('0x9'))(new Redis(config[_0x2eca('0x6')]));var headers={'Content-Type':_0x2eca('0xa'),'Accept':_0x2eca('0xa')};function emit(_0x1905f0,_0x5e2a6b,_0x17f366){io['to'](_0x1905f0)[_0x2eca('0xb')](_0x5e2a6b,_0x17f366);}function getTicket(_0x508169,_0x35fd94,_0x2562d7,_0x1cd440,_0x29c9f){logger['info'](_0x2eca('0xc'));var _0x5c6841=_['merge']({'responder_id':_0x35fd94['id'],'requester_id':_0x2562d7['id'],'name':util[_0x2eca('0xd')](_0x2eca('0xe'),_0x29c9f[_0x2eca('0xf')]),'phone':_0x29c9f[_0x2eca('0x10')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0x2eca('0x11')](_0x1cd440['Subjects'],_0x29c9f,'\x20'),'description':intUtil[_0x2eca('0x11')](_0x1cd440[_0x2eca('0x12')],_0x29c9f,_0x2eca('0x13')),'tags':getTags(_0x1cd440[_0x2eca('0x14')],_0x2eca('0x15'))},getCustomFields(_0x1cd440['Fields'],_0x29c9f));_0x5c6841[_0x2eca('0x16')]=_[_0x2eca('0x17')](_['keyBy'](_0x5c6841[_0x2eca('0x16')],'id'),_0x2eca('0x18'));return request({'uri':util['format'](_0x2eca('0x19'),_0x508169['remoteUri']),'method':_0x2eca('0x1a'),'body':_0x5c6841})[_0x2eca('0x1b')](function(_0x370a33){logger[_0x2eca('0x1c')](_0x2eca('0x1d'));return _0x370a33;});}function getUser(_0x254643,_0x25f580){if(intUtil['validateEmail'](_0x25f580)){return request({'uri':util['format']('%s/api/v2/agents',_0x254643[_0x2eca('0x1e')]),'qs':{'email':_0x25f580}})[_0x2eca('0x1b')](function(_0x3d9509){if(_0x3d9509[_0x2eca('0x1f')]){logger['info'](_0x2eca('0x20'));return _[_0x2eca('0x21')](_0x3d9509,function(_0x3ef8f6){return _0x3ef8f6[_0x2eca('0x22')][_0x2eca('0x23')]===_0x25f580;});}else{logger[_0x2eca('0x1c')](_0x2eca('0x24'));return request({'uri':util[_0x2eca('0xd')](_0x2eca('0x25'),_0x254643[_0x2eca('0x1e')])})['then'](function(_0x54e21e){logger['info'](_0x2eca('0x26'));return _0x54e21e;});}});}else{logger['info'](_0x2eca('0x27'));return request({'uri':util[_0x2eca('0xd')](_0x2eca('0x25'),_0x254643[_0x2eca('0x1e')])})[_0x2eca('0x1b')](function(_0x4ab6ba){logger[_0x2eca('0x1c')](_0x2eca('0x26'));return _0x4ab6ba;});}}function getEndUser(_0x32bf62,_0x40bee0,_0x1539e0){logger[_0x2eca('0x1c')](_0x2eca('0x28'),_0x1539e0);return request({'uri':util[_0x2eca('0xd')](_0x2eca('0x29'),_0x32bf62[_0x2eca('0x1e')]),'qs':{'phone':_0x1539e0}})[_0x2eca('0x1b')](function(_0x375d38){if(_0x375d38[_0x2eca('0x1f')]){logger['info'](_0x2eca('0x2a'));return _[_0x2eca('0x21')](_0x375d38,{'phone':_0x1539e0});}else{logger['info']('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util[_0x2eca('0xd')](_0x2eca('0x29'),_0x32bf62[_0x2eca('0x1e')]),'method':_0x2eca('0x1a'),'body':{'name':_0x40bee0,'phone':_0x1539e0}})['then'](function(_0x1eb6ce){logger[_0x2eca('0x1c')](_0x2eca('0x2b'));return _0x1eb6ce;});}});}function getAuth(_0x5922a1){return util[_0x2eca('0xd')](_0x2eca('0x2c'),new Buffer(_0x5922a1['apiKey']+':X')[_0x2eca('0x2d')](_0x2eca('0x2e')));}function request(_0x28eed0){logger[_0x2eca('0x2f')]('[HTTP]',JSON[_0x2eca('0x30')](_0x28eed0));return rp(_['defaults'](_0x28eed0,{'method':_0x2eca('0x31'),'headers':headers,'json':!![]}));}function getTags(_0x54c7b1,_0x3d0997){var _0x576748=[];if(_0x54c7b1&&_0x54c7b1[_0x2eca('0x1f')]>0x0){_0x576748=_[_0x2eca('0x32')](_0x54c7b1,_0x3d0997);}return _0x576748;}function getCustomFields(_0x48f312,_0x3dbcda){var _0x2ff2a0=[];var _0x2de7d8={'custom_fields':[]};if(_0x48f312[_0x2eca('0x1f')]>0x0){_['forEach'](_0x48f312,function(_0x117af1){if(_[_0x2eca('0x33')]([_0x2eca('0x34'),_0x2eca('0x35')],_0x117af1['type'])&&_0x117af1[_0x2eca('0x36')]&&!_0x117af1[_0x2eca('0x37')]){_0x2de7d8[_0x117af1[_0x2eca('0x36')]['toLowerCase']()]=_0x117af1['content'][_0x2eca('0x2d')]();}else if(_[_0x2eca('0x33')]([_0x2eca('0x34'),_0x2eca('0x35')],_0x117af1[_0x2eca('0x38')])&&_0x117af1[_0x2eca('0x39')]&&_0x117af1[_0x2eca('0x37')]){_0x2de7d8[_0x2eca('0x16')]['push']({'id':_0x117af1[_0x2eca('0x39')],'value':_0x117af1[_0x2eca('0x3a')][_0x2eca('0x2d')]()});}else if(_0x117af1['type']==='variable'&&_0x117af1[_0x2eca('0x3b')]&&_0x117af1[_0x2eca('0x39')]&&_0x117af1[_0x2eca('0x37')]){_0x3dbcda[_0x117af1[_0x2eca('0x3b')]]&&_0x2de7d8[_0x2eca('0x16')][_0x2eca('0x3c')]({'id':_0x117af1[_0x2eca('0x39')],'value':_0x3dbcda[_0x117af1[_0x2eca('0x3b')]][_0x2eca('0x2d')]()});}else if(_0x117af1[_0x2eca('0x38')]===_0x2eca('0x3d')&&_0x117af1[_0x2eca('0x3e')]&&_0x117af1[_0x2eca('0x3e')][_0x2eca('0x15')]&&_0x117af1[_0x2eca('0x39')]&&_0x117af1[_0x2eca('0x37')]){_0x3dbcda[_0x117af1[_0x2eca('0x3e')][_0x2eca('0x15')][_0x2eca('0x3f')]()]&&_0x2de7d8['custom_fields'][_0x2eca('0x3c')]({'id':_0x117af1[_0x2eca('0x39')],'value':_0x3dbcda[_0x117af1[_0x2eca('0x3e')]['name'][_0x2eca('0x3f')]()][_0x2eca('0x2d')]()});}});}return _0x2de7d8;}exports[_0x2eca('0x40')]=function(_0x31a667,_0x282d04,_0x234f6d,_0x2a2bae,_0x4c3a9b,_0x1da3f8){var _0x5efeaf,_0xfb97f3;_0x1da3f8[_0x2eca('0x1e')]=intUtil[_0x2eca('0x41')](_0x1da3f8['remoteUri']);_0x1da3f8['serverUrl']=intUtil[_0x2eca('0x41')](_0x1da3f8['serverUrl']);if(_0x4c3a9b&&_0x4c3a9b['monitor_format']){logger[_0x2eca('0x1c')](_0x2eca('0x42'),_0x2eca('0x43'));_0x282d04[_0x2eca('0x44')]=util[_0x2eca('0xd')](_0x2eca('0x45'),_0x1da3f8[_0x2eca('0x46')],_0x282d04[_0x2eca('0x47')],md5(_0x282d04['uniqueid']));}else{_0x282d04['recordingURL']='';}headers['Authorization']=getAuth(_0x1da3f8);return getUser(_0x1da3f8,_0x2a2bae[_0x2eca('0x23')])[_0x2eca('0x1b')](function(_0x5bc08a){_0x5efeaf=_0x5bc08a;logger[_0x2eca('0x1c')](_0x2eca('0x48'),_0x5efeaf['id']);return getEndUser(_0x1da3f8,_0x282d04['calleridname'],_0x282d04[_0x2eca('0x10')]);})[_0x2eca('0x1b')](function(_0x2906de){_0xfb97f3=_0x2906de;logger[_0x2eca('0x1c')](_0x2eca('0x49'),_0xfb97f3['id']);return getTicket(_0x1da3f8,_0x5efeaf,_0xfb97f3,_0x234f6d,_0x282d04);})[_0x2eca('0x1b')](function(_0x5ee974){if(_0x5ee974&&_0x5ee974['id']){logger[_0x2eca('0x1c')](_0x2eca('0x1d'));logger[_0x2eca('0x1c')](_0x2eca('0x4a'),_0x5ee974['id']);logger[_0x2eca('0x1c')](_0x2eca('0x42'),_0x2eca('0x4b'));emit(util['format'](_0x2eca('0x4c'),_0x2a2bae['name']),_0x2eca('0x4d'),{'uri':util[_0x2eca('0xd')](_0x2eca('0x4e'),_0x1da3f8[_0x2eca('0x1e')],_0x5ee974['id'])});}})['catch'](function(_0x590348){logger[_0x2eca('0x4f')]('[QUEUE]',JSON[_0x2eca('0x30')](_0x590348));});};exports[_0x2eca('0x50')]=function(_0x4e3f19,_0x39b22f,_0xb361f9,_0x32176b,_0x1f51ae,_0x172fc8,_0x536e83){var _0x50fdeb,_0x20b664;_0x172fc8[_0x2eca('0x1e')]=intUtil[_0x2eca('0x41')](_0x172fc8['remoteUri']);_0x172fc8['serverUrl']=intUtil[_0x2eca('0x41')](_0x172fc8['serverUrl']);if(_0x536e83&&_0x536e83[_0x2eca('0x51')]&&_0x536e83[_0x2eca('0x51')]!=='none'){logger[_0x2eca('0x1c')](_0x2eca('0x52'),_0x2eca('0x43'));_0x39b22f[_0x2eca('0x44')]=util[_0x2eca('0xd')](_0x2eca('0x45'),_0x172fc8[_0x2eca('0x46')],_0x39b22f[_0x2eca('0x47')],md5(_0x39b22f[_0x2eca('0x47')]));}headers[_0x2eca('0x53')]=getAuth(_0x172fc8);return getUser(_0x172fc8,_0x32176b[_0x2eca('0x23')])[_0x2eca('0x1b')](function(_0xaf58c5){_0x50fdeb=_0xaf58c5;logger[_0x2eca('0x1c')]('The\x20User\x20ID\x20is:',_0x50fdeb['id']);return getEndUser(_0x172fc8,_0x39b22f['destcalleridname'],_0x39b22f['destcalleridnum']);})[_0x2eca('0x1b')](function(_0x5ab5aa){_0x20b664=_0x5ab5aa;logger[_0x2eca('0x1c')](_0x2eca('0x49'),_0x20b664['id']);return getTicket(_0x172fc8,_0x50fdeb,_0x20b664,_0xb361f9,_0x39b22f);})[_0x2eca('0x1b')](function(_0xaa005d){if(_0xaa005d&&_0xaa005d['id']){logger[_0x2eca('0x1c')](_0x2eca('0x1d'));logger[_0x2eca('0x1c')](_0x2eca('0x4a'),_0xaa005d['id']);logger[_0x2eca('0x1c')](_0x2eca('0x52'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0x2eca('0x4c'),_0x32176b[_0x2eca('0x15')]),_0x2eca('0x4d'),{'uri':util['format']('%s/helpdesk/tickets/%d',_0x172fc8[_0x2eca('0x1e')],_0xaa005d['id'])});}})[_0x2eca('0x54')](function(_0x41f9a7){logger[_0x2eca('0x4f')](_0x2eca('0x52'),JSON[_0x2eca('0x30')](_0x41f9a7));});};exports[_0x2eca('0x55')]=function(_0x24700b,_0x1eeb26,_0x91e4b2,_0x10d8a0,_0x84dc88,_0x3f158a){var _0x46d81,_0x355561;_0x3f158a[_0x2eca('0x1e')]=intUtil['stripTrailingSlash'](_0x3f158a[_0x2eca('0x1e')]);_0x3f158a[_0x2eca('0x46')]=intUtil[_0x2eca('0x41')](_0x3f158a[_0x2eca('0x46')]);if(_0x84dc88&&_0x84dc88[_0x2eca('0x56')]){logger[_0x2eca('0x1c')]('['+_0x1eeb26[_0x2eca('0x57')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x1eeb26[_0x2eca('0x44')]=util[_0x2eca('0xd')](_0x2eca('0x45'),_0x3f158a[_0x2eca('0x46')],_0x1eeb26[_0x2eca('0x47')],md5(_0x1eeb26[_0x2eca('0x47')]));}else{_0x1eeb26[_0x2eca('0x44')]='';}headers[_0x2eca('0x53')]=getAuth(_0x3f158a);return getUser(_0x3f158a,'')[_0x2eca('0x1b')](function(_0x3ec1a5){_0x46d81=_0x3ec1a5;logger[_0x2eca('0x1c')](_0x2eca('0x48'),_0x46d81['id']);return getEndUser(_0x3f158a,_0x1eeb26[_0x2eca('0xf')],_0x1eeb26[_0x2eca('0x10')]);})[_0x2eca('0x1b')](function(_0x4bdcf8){_0x355561=_0x4bdcf8;logger[_0x2eca('0x1c')]('The\x20Enduser\x20ID\x20is:',_0x355561['id']);return getTicket(_0x3f158a,_0x46d81,_0x355561,_0x91e4b2,_0x1eeb26);})[_0x2eca('0x1b')](function(_0x134f6a){if(_0x134f6a){logger[_0x2eca('0x1c')]('Ticket\x20created!');logger[_0x2eca('0x1c')](_0x2eca('0x4a'),_0x134f6a['id']);}})[_0x2eca('0x54')](function(_0x4cf36a){logger[_0x2eca('0x4f')]('['+_0x1eeb26[_0x2eca('0x57')]['toUpperCase']()+']',JSON[_0x2eca('0x30')](_0x4cf36a));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc538=['/api/selector/owners','info','Getting\x20admin\x20information','then','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','headers','Getting\x20user\x20list','users','agentEmail','userId','User\x20found:','Admin\x20selected','userEmail','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','Contact\x20found\x20mobile_number:','endUserId','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','/api/tasks','getString','Subjects','Descriptions','Contact','add','ticketId','task','/contacts/','user:%s','emit','trigger:browser:url','apiKey','remoteUri','stripTrailingSlash','toLowerCase','outbound','destcalleridnum','calleridnum','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','./util','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','GET'];(function(_0x2dccb2,_0x2cf3a6){var _0x7f4498=function(_0x38e8d8){while(--_0x38e8d8){_0x2dccb2['push'](_0x2dccb2['shift']());}};_0x7f4498(++_0x2cf3a6);}(_0xc538,0x9e));var _0x8c53=function(_0x2cf2e9,_0xd58ea1){_0x2cf2e9=_0x2cf2e9-0x0;var _0xd3670d=_0xc538[_0x2cf2e9];return _0xd3670d;};'use strict';var _=require(_0x8c53('0x0'));var rp=require(_0x8c53('0x1'));var md5=require(_0x8c53('0x2'));var util=require(_0x8c53('0x3'));var moment=require(_0x8c53('0x4'));var Promise=require(_0x8c53('0x5'));var Redis=require(_0x8c53('0x6'));var intUtil=require(_0x8c53('0x7'));var config=require('../../../../config/environment');var logger=require(_0x8c53('0x8'))(_0x8c53('0x9'));config[_0x8c53('0xa')]=_['defaults'](config[_0x8c53('0xa')],{'host':_0x8c53('0xb'),'port':0x18eb});var io=require(_0x8c53('0xc'))(new Redis(config[_0x8c53('0xa')]));function getAdminId(_0x409fca,_0x18638c,_0x12f4dc,_0x586088){return new Promise(function(_0x5ad04d,_0x34b4a8){var _0x3a18fc=![];var _0x1e047d={'method':_0x8c53('0xd'),'uri':_0x586088+_0x8c53('0xe'),'json':!![]};_0x1e047d['headers']=_0x12f4dc;logger[_0x8c53('0xf')](_0x8c53('0x10'));return rp(_0x1e047d)[_0x8c53('0x11')](function(_0x3ff989){if(_0x3ff989){var _0x5506e8=_0x3ff989['users'];var _0x5306f5=null;for(_0x5306f5=0x0;_0x5306f5<_0x5506e8[_0x8c53('0x12')];_0x5306f5++){if(_0x5506e8[_0x5306f5][_0x8c53('0x13')]===_0x409fca[_0x8c53('0x14')]){_0x409fca[_0x8c53('0x15')]=_0x5506e8[_0x5306f5]['id'];_0x3a18fc=!![];}}if(_0x3a18fc){logger[_0x8c53('0xf')](_0x8c53('0x16'),_0x409fca['adminId']);_0x5ad04d(_0x409fca);}else{_0x34b4a8({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x34b4a8({'statusCode':0x194,'message':_0x8c53('0x17')});}})[_0x8c53('0x18')](function(_0x3b06d0){logger[_0x8c53('0x19')]('['+[_0x18638c[_0x8c53('0x1a')]()]+']',_0x3b06d0[_0x8c53('0x1b')]);_0x34b4a8(_0x3b06d0);});});}function getUser(_0x58b7b7,_0x1a6e11,_0x38434a){return function(_0x4894f5){return new Promise(function(_0x367974,_0x2c848c){var _0x34ab19={'method':'GET','uri':_0x38434a+_0x8c53('0xe'),'json':!![]};_0x34ab19[_0x8c53('0x1c')]=_0x1a6e11;logger[_0x8c53('0xf')](_0x8c53('0x1d'));return rp(_0x34ab19)['then'](function(_0x575ac0){if(_0x575ac0){var _0x3b49a3=_0x575ac0[_0x8c53('0x1e')];var _0xe2e24a=![];var _0x544775=null;if(_0x4894f5['agentEmail']!==null){logger['info']('Getting\x20user\x20with\x20email',_0x4894f5['agentEmail']);_0x4894f5['userEmail']=_0x4894f5[_0x8c53('0x1f')];for(_0x544775=0x0;_0x544775<_0x3b49a3[_0x8c53('0x12')];_0x544775++){if(_0x3b49a3[_0x544775][_0x8c53('0x13')]===_0x4894f5[_0x8c53('0x1f')]){_0xe2e24a=!![];_0x4894f5[_0x8c53('0x20')]=_0x3b49a3[_0x544775]['id'];logger[_0x8c53('0xf')](_0x8c53('0x21'),_0x4894f5[_0x8c53('0x20')]);}}}if(!_0xe2e24a){logger[_0x8c53('0xf')](_0x8c53('0x22'));_0x4894f5[_0x8c53('0x23')]=_0x4894f5[_0x8c53('0x14')];_0x4894f5['userId']=_0x4894f5[_0x8c53('0x15')];_0xe2e24a=!![];}if(_0xe2e24a){_0x367974(_0x4894f5);}else{_0x2c848c({'statusCode':0x194,'message':_0x8c53('0x17')});}}else{_0x2c848c({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x8c53('0x18')](function(_0x5e3630){logger[_0x8c53('0x19')]('['+[_0x58b7b7[_0x8c53('0x1a')]()]+']',_0x5e3630[_0x8c53('0x1b')]);_0x2c848c(_0x5e3630);});});};}function searchContact(_0xea7b07,_0x2c573c,_0x5005b2,_0x22004d){return new Promise(function(_0x2940e6,_0x5db14c){var _0x46f620={'method':'GET','headers':_0x2c573c,'uri':_0xea7b07+'/api/lookup?q='+_0x22004d+_0x8c53('0x24')+_0x5005b2+_0x8c53('0x25'),'json':!![]};rp(_0x46f620)['then'](function(_0x601a6d){var _0x25355b=_[_0x8c53('0x26')](_0x601a6d[_0x8c53('0x27')][_0x8c53('0x27')],[_0x5005b2,_0x22004d]);_0x2940e6(_0x25355b);})[_0x8c53('0x18')](function(_0x243f68){_0x5db14c(_0x243f68);});});}function getEndUser(_0x3b0fb6,_0x3586d7,_0x5991ac){return function(_0x434afb){return new Promise(function(_0x1de09c,_0x1231e6){logger['info'](util[_0x8c53('0x28')](_0x8c53('0x29'),_0x434afb[_0x8c53('0x2a')]));searchContact(_0x5991ac,_0x3586d7,'mobile_number',_0x434afb[_0x8c53('0x2a')])['then'](function(_0x381541){if(_0x381541){_0x434afb['endUserId']=_0x381541['id'];logger[_0x8c53('0xf')](_0x8c53('0x2b'),_0x434afb[_0x8c53('0x2c')]);return _0x1de09c(_0x434afb);}searchContact(_0x5991ac,_0x3586d7,_0x8c53('0x2d'),_0x434afb[_0x8c53('0x2a')])[_0x8c53('0x11')](function(_0x556a08){if(_0x556a08){_0x434afb[_0x8c53('0x2c')]=_0x556a08['id'];logger[_0x8c53('0xf')](_0x8c53('0x2e'),_0x434afb['endUserId']);return _0x1de09c(_0x434afb);}createEndUser(_0x434afb,_0x3b0fb6,_0x3586d7,_0x5991ac)[_0x8c53('0x11')](function(_0x3553c9){logger[_0x8c53('0xf')](_0x8c53('0x2f'),_0x3553c9[_0x8c53('0x2c')]);return _0x1de09c(_0x3553c9);});});})['catch'](function(_0x7b7a8b){_0x1231e6(_0x7b7a8b);});});};}function createEndUser(_0x8fdfcb,_0x5d25ff,_0x2af3c4,_0x205339){return new Promise(function(_0x4c7ee0,_0x87b548){var _0x2b9f34=moment();var _0x585555={'method':_0x8c53('0x30'),'uri':_0x205339+_0x8c53('0x31'),'body':{'contact':{'last_name':_0x8fdfcb['contactNumber'],'work_number':_0x8fdfcb[_0x8c53('0x2a')],'mobile_number':_0x8fdfcb[_0x8c53('0x2a')],'owner_id':_0x8fdfcb[_0x8c53('0x20')],'created_at':_0x2b9f34['format'](_0x8c53('0x32'))}},'json':!![]};_0x585555[_0x8c53('0x1c')]=_0x2af3c4;logger[_0x8c53('0xf')](_0x8c53('0x33'));return rp(_0x585555)['then'](function(_0xd454b){_0x8fdfcb[_0x8c53('0x2c')]=_0xd454b[_0x8c53('0x34')]['id'];_0x4c7ee0(_0x8fdfcb);})[_0x8c53('0x18')](function(_0x15c9da){logger[_0x8c53('0x19')]('['+[_0x5d25ff['toUpperCase']()]+']',_0x15c9da['message']);_0x87b548(_0x15c9da['message']);});});}function getTicket(_0x54b11e,_0x532296,_0x246e8a,_0x5f22df,_0x109426){return function(_0x4d8107){logger[_0x8c53('0xf')]('Creating\x20new\x20task');return new Promise(function(_0xee0511,_0x2e4276){var _0x2c723b=moment();var _0x1b8874={'method':_0x8c53('0x30'),'uri':_0x246e8a+_0x8c53('0x35'),'body':{'title':intUtil[_0x8c53('0x36')](_0x5f22df[_0x8c53('0x37')],_0x109426,'\x20'),'description':intUtil[_0x8c53('0x36')](_0x5f22df[_0x8c53('0x38')],_0x109426,'\x0a'),'owner_id':_0x4d8107['userId'],'creater_id':_0x4d8107[_0x8c53('0x15')],'targetable_id':_0x4d8107['endUserId'],'targetable_type':_0x8c53('0x39'),'created_at':_0x2c723b[_0x8c53('0x28')](_0x8c53('0x32')),'due_date':_0x2c723b[_0x8c53('0x3a')](0x1e,'m')[_0x8c53('0x28')](_0x8c53('0x32'))},'json':!![]};_0x1b8874[_0x8c53('0x1c')]=_0x532296;return rp(_0x1b8874)['then'](function(_0x253e78){_0x4d8107[_0x8c53('0x3b')]=_0x253e78[_0x8c53('0x3c')]['id'];logger[_0x8c53('0xf')]('Task\x20created:',_0x4d8107[_0x8c53('0x3b')]);_0xee0511(_0x4d8107);})['catch'](function(_0x1dbdc9){logger[_0x8c53('0x19')]('['+[_0x54b11e[_0x8c53('0x1a')]()]+']',_0x1dbdc9[_0x8c53('0x1b')]);_0x2e4276(_0x1dbdc9[_0x8c53('0x1b')]);});});};}function emit(_0x498602,_0x40160d,_0xa5993d){var _0x2dccc1={'uri':_0x498602+_0x8c53('0x3d')+_0xa5993d};io['to'](util['format'](_0x8c53('0x3e'),_0x40160d))[_0x8c53('0x3f')](_0x8c53('0x40'),_0x2dccc1);}exports['cs']=function(_0x1bc49f,_0x2857b7,_0x4215f4,_0x31ebde,_0x56f538,_0x5ec33c,_0x374058,_0x4d2256){var _0x1e644c={};var _0x81771c={'Authorization':'Token\x20token='+_0x5ec33c[_0x8c53('0x41')]};_0x5ec33c[_0x8c53('0x42')]=intUtil['stripTrailingSlash'](_0x5ec33c[_0x8c53('0x42')]);_0x5ec33c['serverUrl']=intUtil[_0x8c53('0x43')](_0x5ec33c['serverUrl']);var _0x1a1823=_0x5ec33c['remoteUri'];_0x1e644c[_0x8c53('0x14')]=_0x5ec33c['username'];_0x1e644c[_0x8c53('0x2a')]=_0x4d2256[_0x8c53('0x44')]()===_0x8c53('0x45')?_0x2857b7[_0x8c53('0x46')]:_0x2857b7[_0x8c53('0x47')];_0x1e644c['callDirection']=_0x4d2256===_0x8c53('0x48')||_0x4d2256==='unmanaged'?_0x8c53('0x48'):_0x8c53('0x45');if(_0x31ebde){_0x1e644c[_0x8c53('0x1f')]=_0x31ebde[_0x8c53('0x13')];}var _0x58d5c2=util['format'](_0x8c53('0x49'),_0x5ec33c[_0x8c53('0x4a')],_0x2857b7['uniqueid'],md5(_0x2857b7[_0x8c53('0x4b')]));if(_0x56f538&&_0x56f538[_0x8c53('0x4c')]){logger[_0x8c53('0xf')](_0x8c53('0x4d'),'Recording\x20is\x20enabled!');_0x2857b7[_0x8c53('0x4e')]=_0x58d5c2;}else if(_0x374058&&_0x374058[_0x8c53('0x4f')]&&_0x374058['recordingFormat']!==_0x8c53('0x50')){logger[_0x8c53('0xf')](_0x8c53('0x51'),'Recording\x20is\x20enabled!');_0x2857b7[_0x8c53('0x4e')]=_0x58d5c2;}else{_0x2857b7[_0x8c53('0x4e')]='';}return getAdminId(_0x1e644c,_0x4d2256,_0x81771c,_0x1a1823)[_0x8c53('0x11')](getUser(_0x4d2256,_0x81771c,_0x1a1823))[_0x8c53('0x11')](getEndUser(_0x4d2256,_0x81771c,_0x1a1823))[_0x8c53('0x11')](getTicket(_0x4d2256,_0x81771c,_0x1a1823,_0x4215f4,_0x2857b7))[_0x8c53('0x11')](function(_0x20c76d){logger[_0x8c53('0xf')](util[_0x8c53('0x28')](_0x8c53('0x52'),_0x20c76d[_0x8c53('0x3b')]));if(_0x4d2256!=='unmanaged'){logger[_0x8c53('0xf')]('['+[_0x4d2256[_0x8c53('0x1a')]()]+']',_0x8c53('0x53'));emit(_0x1a1823,_0x31ebde[_0x8c53('0x54')],_0x20c76d[_0x8c53('0x2c')]);}})['catch'](function(_0x23b207){logger[_0x8c53('0x19')]('['+[_0x4d2256[_0x8c53('0x1a')]()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0x8c53('0x55')](_0x23b207,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xdc9b=['queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','unmanaged','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','/api/selector/owners','info','Getting\x20admin\x20information','length','email','adminEmail','Admin\x20found:','adminId','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','GET','headers','Getting\x20user\x20list','then','Getting\x20user\x20with\x20email','agentEmail','User\x20found:','userId','Admin\x20selected','userEmail','message','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','contactNumber','Contact\x20found\x20mobile_number:','endUserId','work_number','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','/api/tasks','getString','Subjects','Descriptions','Contact','add','ticketId','task','Task\x20created:','user:%s','emit','trigger:browser:url','Token\x20token=','remoteUri','stripTrailingSlash','username','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xdc9b,0xbe));var _0xbdc9=function(_0x3035d8,_0xf9215b){_0x3035d8=_0x3035d8-0x0;var _0x3bc195=_0xdc9b[_0x3035d8];return _0x3bc195;};'use strict';var _=require(_0xbdc9('0x0'));var rp=require(_0xbdc9('0x1'));var md5=require(_0xbdc9('0x2'));var util=require(_0xbdc9('0x3'));var moment=require(_0xbdc9('0x4'));var Promise=require(_0xbdc9('0x5'));var Redis=require(_0xbdc9('0x6'));var intUtil=require('./util');var config=require(_0xbdc9('0x7'));var logger=require(_0xbdc9('0x8'))(_0xbdc9('0x9'));config[_0xbdc9('0xa')]=_[_0xbdc9('0xb')](config[_0xbdc9('0xa')],{'host':_0xbdc9('0xc'),'port':0x18eb});var io=require(_0xbdc9('0xd'))(new Redis(config[_0xbdc9('0xa')]));function getAdminId(_0x5a7c00,_0x138e9c,_0x5ee559,_0x42faed){return new Promise(function(_0x1dd166,_0x53ae9b){var _0x4ad3ae=![];var _0x1f7d7a={'method':'GET','uri':_0x42faed+_0xbdc9('0xe'),'json':!![]};_0x1f7d7a['headers']=_0x5ee559;logger[_0xbdc9('0xf')](_0xbdc9('0x10'));return rp(_0x1f7d7a)['then'](function(_0x21ea46){if(_0x21ea46){var _0xaef2e9=_0x21ea46['users'];var _0x59833b=null;for(_0x59833b=0x0;_0x59833b<_0xaef2e9[_0xbdc9('0x11')];_0x59833b++){if(_0xaef2e9[_0x59833b][_0xbdc9('0x12')]===_0x5a7c00[_0xbdc9('0x13')]){_0x5a7c00['adminId']=_0xaef2e9[_0x59833b]['id'];_0x4ad3ae=!![];}}if(_0x4ad3ae){logger['info'](_0xbdc9('0x14'),_0x5a7c00[_0xbdc9('0x15')]);_0x1dd166(_0x5a7c00);}else{_0x53ae9b({'statusCode':0x194,'message':_0xbdc9('0x16')});}}else{_0x53ae9b({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xbdc9('0x17')](function(_0x331db7){logger[_0xbdc9('0x18')]('['+[_0x138e9c[_0xbdc9('0x19')]()]+']',_0x331db7['message']);_0x53ae9b(_0x331db7);});});}function getUser(_0x33dcab,_0x4d4fa0,_0x9c48c5){return function(_0x20e4d2){return new Promise(function(_0x5de90c,_0x271766){var _0xa54bd5={'method':_0xbdc9('0x1a'),'uri':_0x9c48c5+_0xbdc9('0xe'),'json':!![]};_0xa54bd5[_0xbdc9('0x1b')]=_0x4d4fa0;logger['info'](_0xbdc9('0x1c'));return rp(_0xa54bd5)[_0xbdc9('0x1d')](function(_0xa2c918){if(_0xa2c918){var _0x895cb5=_0xa2c918['users'];var _0x13844a=![];var _0xf4ab3a=null;if(_0x20e4d2['agentEmail']!==null){logger[_0xbdc9('0xf')](_0xbdc9('0x1e'),_0x20e4d2[_0xbdc9('0x1f')]);_0x20e4d2['userEmail']=_0x20e4d2[_0xbdc9('0x1f')];for(_0xf4ab3a=0x0;_0xf4ab3a<_0x895cb5[_0xbdc9('0x11')];_0xf4ab3a++){if(_0x895cb5[_0xf4ab3a][_0xbdc9('0x12')]===_0x20e4d2['agentEmail']){_0x13844a=!![];_0x20e4d2['userId']=_0x895cb5[_0xf4ab3a]['id'];logger[_0xbdc9('0xf')](_0xbdc9('0x20'),_0x20e4d2[_0xbdc9('0x21')]);}}}if(!_0x13844a){logger[_0xbdc9('0xf')](_0xbdc9('0x22'));_0x20e4d2[_0xbdc9('0x23')]=_0x20e4d2[_0xbdc9('0x13')];_0x20e4d2[_0xbdc9('0x21')]=_0x20e4d2[_0xbdc9('0x15')];_0x13844a=!![];}if(_0x13844a){_0x5de90c(_0x20e4d2);}else{_0x271766({'statusCode':0x194,'message':_0xbdc9('0x16')});}}else{_0x271766({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xbdc9('0x17')](function(_0x23fd76){logger[_0xbdc9('0x18')]('['+[_0x33dcab['toUpperCase']()]+']',_0x23fd76[_0xbdc9('0x24')]);_0x271766(_0x23fd76);});});};}function searchContact(_0x5bbdff,_0x8910a,_0x15989f,_0x11ec24){return new Promise(function(_0x1e034b,_0x3ca84b){var _0x22e285={'method':'GET','headers':_0x8910a,'uri':_0x5bbdff+_0xbdc9('0x25')+_0x11ec24+_0xbdc9('0x26')+_0x15989f+_0xbdc9('0x27'),'json':!![]};rp(_0x22e285)[_0xbdc9('0x1d')](function(_0xf1f436){var _0x2d3773=_[_0xbdc9('0x28')](_0xf1f436[_0xbdc9('0x29')][_0xbdc9('0x29')],[_0x15989f,_0x11ec24]);_0x1e034b(_0x2d3773);})[_0xbdc9('0x17')](function(_0xfbdbfa){_0x3ca84b(_0xfbdbfa);});});}function getEndUser(_0x1ea6da,_0x1b7c87,_0x4ff8d4){return function(_0xe40817){return new Promise(function(_0x3b412d,_0x5dd42a){logger[_0xbdc9('0xf')](util[_0xbdc9('0x2a')](_0xbdc9('0x2b'),_0xe40817['contactNumber']));searchContact(_0x4ff8d4,_0x1b7c87,_0xbdc9('0x2c'),_0xe40817[_0xbdc9('0x2d')])['then'](function(_0x52b4fa){if(_0x52b4fa){_0xe40817['endUserId']=_0x52b4fa['id'];logger[_0xbdc9('0xf')](_0xbdc9('0x2e'),_0xe40817[_0xbdc9('0x2f')]);return _0x3b412d(_0xe40817);}searchContact(_0x4ff8d4,_0x1b7c87,_0xbdc9('0x30'),_0xe40817[_0xbdc9('0x2d')])[_0xbdc9('0x1d')](function(_0x4eac4f){if(_0x4eac4f){_0xe40817['endUserId']=_0x4eac4f['id'];logger[_0xbdc9('0xf')]('Contact\x20found\x20work_number:',_0xe40817[_0xbdc9('0x2f')]);return _0x3b412d(_0xe40817);}createEndUser(_0xe40817,_0x1ea6da,_0x1b7c87,_0x4ff8d4)['then'](function(_0x20e3b2){logger['info']('Contact\x20created:',_0x20e3b2[_0xbdc9('0x2f')]);return _0x3b412d(_0x20e3b2);});});})[_0xbdc9('0x17')](function(_0x35f146){_0x5dd42a(_0x35f146);});});};}function createEndUser(_0xe411d4,_0x2f059c,_0x31d848,_0x4b9e79){return new Promise(function(_0x49fb8a,_0x3a7e25){var _0x16f49b=moment();var _0xe83d02={'method':_0xbdc9('0x31'),'uri':_0x4b9e79+_0xbdc9('0x32'),'body':{'contact':{'last_name':_0xe411d4[_0xbdc9('0x2d')],'work_number':_0xe411d4[_0xbdc9('0x2d')],'mobile_number':_0xe411d4[_0xbdc9('0x2d')],'owner_id':_0xe411d4[_0xbdc9('0x21')],'created_at':_0x16f49b[_0xbdc9('0x2a')](_0xbdc9('0x33'))}},'json':!![]};_0xe83d02[_0xbdc9('0x1b')]=_0x31d848;logger[_0xbdc9('0xf')](_0xbdc9('0x34'));return rp(_0xe83d02)[_0xbdc9('0x1d')](function(_0x19dc4c){_0xe411d4['endUserId']=_0x19dc4c['contact']['id'];_0x49fb8a(_0xe411d4);})[_0xbdc9('0x17')](function(_0x888bf2){logger['error']('['+[_0x2f059c['toUpperCase']()]+']',_0x888bf2['message']);_0x3a7e25(_0x888bf2[_0xbdc9('0x24')]);});});}function getTicket(_0x3c41a6,_0x381831,_0x182edb,_0xcf4b5,_0x174ec6){return function(_0x5d0ef5){logger['info']('Creating\x20new\x20task');return new Promise(function(_0x5c005a,_0x11dc68){var _0x291ad3=moment();var _0x38b685={'method':_0xbdc9('0x31'),'uri':_0x182edb+_0xbdc9('0x35'),'body':{'title':intUtil[_0xbdc9('0x36')](_0xcf4b5[_0xbdc9('0x37')],_0x174ec6,'\x20'),'description':intUtil['getString'](_0xcf4b5[_0xbdc9('0x38')],_0x174ec6,'\x0a'),'owner_id':_0x5d0ef5[_0xbdc9('0x21')],'creater_id':_0x5d0ef5[_0xbdc9('0x15')],'targetable_id':_0x5d0ef5['endUserId'],'targetable_type':_0xbdc9('0x39'),'created_at':_0x291ad3[_0xbdc9('0x2a')]('YYYY-MM-DDTHH:mm:ss'),'due_date':_0x291ad3[_0xbdc9('0x3a')](0x1e,'m')['format']('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x38b685[_0xbdc9('0x1b')]=_0x381831;return rp(_0x38b685)['then'](function(_0x454193){_0x5d0ef5[_0xbdc9('0x3b')]=_0x454193[_0xbdc9('0x3c')]['id'];logger[_0xbdc9('0xf')](_0xbdc9('0x3d'),_0x5d0ef5[_0xbdc9('0x3b')]);_0x5c005a(_0x5d0ef5);})[_0xbdc9('0x17')](function(_0x3e5aae){logger['error']('['+[_0x3c41a6['toUpperCase']()]+']',_0x3e5aae[_0xbdc9('0x24')]);_0x11dc68(_0x3e5aae[_0xbdc9('0x24')]);});});};}function emit(_0x231ba2,_0x9d3a08,_0x5d5e88){var _0x3f6aa7={'uri':_0x231ba2+'/contacts/'+_0x5d5e88};io['to'](util[_0xbdc9('0x2a')](_0xbdc9('0x3e'),_0x9d3a08))[_0xbdc9('0x3f')](_0xbdc9('0x40'),_0x3f6aa7);}exports['cs']=function(_0x238dac,_0x2952f8,_0x31cd42,_0x41b80c,_0x5a39c2,_0x5572c0,_0x2358cf,_0x556a00){var _0x42b335={};var _0x4e3849={'Authorization':_0xbdc9('0x41')+_0x5572c0['apiKey']};_0x5572c0['remoteUri']=intUtil['stripTrailingSlash'](_0x5572c0[_0xbdc9('0x42')]);_0x5572c0['serverUrl']=intUtil[_0xbdc9('0x43')](_0x5572c0['serverUrl']);var _0x17aede=_0x5572c0[_0xbdc9('0x42')];_0x42b335[_0xbdc9('0x13')]=_0x5572c0[_0xbdc9('0x44')];_0x42b335[_0xbdc9('0x2d')]=_0x556a00[_0xbdc9('0x45')]()===_0xbdc9('0x46')?_0x2952f8[_0xbdc9('0x47')]:_0x2952f8[_0xbdc9('0x48')];_0x42b335[_0xbdc9('0x49')]=_0x556a00==='queue'||_0x556a00==='unmanaged'?_0xbdc9('0x4a'):_0xbdc9('0x46');if(_0x41b80c){_0x42b335[_0xbdc9('0x1f')]=_0x41b80c['email'];}var _0x4a1938=util[_0xbdc9('0x2a')](_0xbdc9('0x4b'),_0x5572c0[_0xbdc9('0x4c')],_0x2952f8['uniqueid'],md5(_0x2952f8[_0xbdc9('0x4d')]));if(_0x5a39c2&&_0x5a39c2[_0xbdc9('0x4e')]){logger[_0xbdc9('0xf')](_0xbdc9('0x4f'),_0xbdc9('0x50'));_0x2952f8[_0xbdc9('0x51')]=_0x4a1938;}else if(_0x2358cf&&_0x2358cf['recordingFormat']&&_0x2358cf['recordingFormat']!=='none'){logger['info'](_0xbdc9('0x52'),'Recording\x20is\x20enabled!');_0x2952f8[_0xbdc9('0x51')]=_0x4a1938;}else{_0x2952f8[_0xbdc9('0x51')]='';}return getAdminId(_0x42b335,_0x556a00,_0x4e3849,_0x17aede)[_0xbdc9('0x1d')](getUser(_0x556a00,_0x4e3849,_0x17aede))[_0xbdc9('0x1d')](getEndUser(_0x556a00,_0x4e3849,_0x17aede))['then'](getTicket(_0x556a00,_0x4e3849,_0x17aede,_0x31cd42,_0x2952f8))[_0xbdc9('0x1d')](function(_0x58748f){logger[_0xbdc9('0xf')](util['format'](_0xbdc9('0x53'),_0x58748f[_0xbdc9('0x3b')]));if(_0x556a00!==_0xbdc9('0x54')){logger[_0xbdc9('0xf')]('['+[_0x556a00[_0xbdc9('0x19')]()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x17aede,_0x41b80c[_0xbdc9('0x55')],_0x58748f[_0xbdc9('0x2f')]);}})[_0xbdc9('0x17')](function(_0x27543f){logger['error']('['+[_0x556a00[_0xbdc9('0x19')]()]+_0xbdc9('0x56'),util[_0xbdc9('0x57')](_0x27543f,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fb6=['./freshsales','zendesk','zoho','desk','vtiger','dynamics365','freshsales','servicenow','exec','includes','data1','toLowerCase','data2','queue','routeId','log','salesforce','sugarcrm','freshdesk','../../../../config/logger','format','data3','[EXEC]','error','lodash','util','./zendesk','./salesforce','./freshdesk','./zoho','./desk','./vtiger','./servicenow','./dynamics365'];(function(_0x582892,_0x18f30a){var _0xb75695=function(_0x1936ff){while(--_0x1936ff){_0x582892['push'](_0x582892['shift']());}};_0xb75695(++_0x18f30a);}(_0x5fb6,0x18e));var _0x65fb=function(_0x4ee41d,_0x4a9bd5){_0x4ee41d=_0x4ee41d-0x0;var _0x1a3d99=_0x5fb6[_0x4ee41d];return _0x1a3d99;};'use strict';var _=require(_0x65fb('0x0'));var util=require(_0x65fb('0x1'));var zendesk=require(_0x65fb('0x2'));var salesforce=require(_0x65fb('0x3'));var sugarcrm=require('./sugarcrm');var freshdesk=require(_0x65fb('0x4'));var zoho=require(_0x65fb('0x5'));var desk=require(_0x65fb('0x6'));var vtiger=require(_0x65fb('0x7'));var servicenow=require(_0x65fb('0x8'));var dynamics365=require(_0x65fb('0x9'));var freshsales=require(_0x65fb('0xa'));var integrations=[_0x65fb('0xb'),'salesforce','sugarcrm','freshdesk',_0x65fb('0xc'),_0x65fb('0xd'),_0x65fb('0xe'),_0x65fb('0xf'),_0x65fb('0x10'),_0x65fb('0x11')];exports[_0x65fb('0x12')]=function(_0x9527b0,_0x5925f1,_0x3fa3eb,_0x8ee9de,_0x565148,_0x1824b1){if(_0x3fa3eb){if(_[_0x65fb('0x13')](integrations,_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]())){try{var _0x415047=null;var _0x2c99b6='';var _0xc81f99=_0x3fa3eb[_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]()];if(_0xc81f99){var _0x5bfa3a=_0xc81f99[_0x9527b0[_0x65fb('0x16')]];if(_0x5bfa3a){var _0x431f99=_['find'](_0x5bfa3a['Configurations'],{'id':parseInt(_0x9527b0['data3'],0xa)});if(_0x431f99){if(_0x8ee9de){if(_0x565148&&_0x5925f1[_0x65fb('0x17')]){_0x2c99b6='queue';}else if(_0x5925f1[_0x65fb('0x18')]){_0x2c99b6='outbound';}else{console[_0x65fb('0x19')]('EVENT\x20UNKNOWN',_0x5925f1);}}else{_0x2c99b6='unmanaged';}switch(_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]()){case _0x65fb('0xb'):zendesk[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x1a'):salesforce[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x1b'):sugarcrm[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x1c'):freshdesk[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0xc'):zoho[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0xd'):desk[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0xe'):vtiger[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x10'):freshsales['cs'](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1,_0x2c99b6);break;case'servicenow':servicenow['cs'](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1,_0x2c99b6);break;case _0x65fb('0xf'):dynamics365['cs'](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1,_0x2c99b6);break;default:console['log']('unknown\x20integration');}}else{_0x415047=require(_0x65fb('0x1d'))(_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]());_0x415047['error']('[EXEC]',util[_0x65fb('0x1e')]('%s\x20configuration\x20#%s\x20not\x20found',_0x9527b0[_0x65fb('0x14')]['toLowerCase'](),_0x9527b0[_0x65fb('0x1f')]));}}else{_0x415047=require('../../../../config/logger')(_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]());_0x415047['error'](_0x65fb('0x20'),util[_0x65fb('0x1e')]('%s\x20account\x20#%s\x20not\x20found',_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')](),_0x9527b0[_0x65fb('0x16')]));}}else{}}catch(_0x204c31){console[_0x65fb('0x21')](_0x204c31);}}}};
\ No newline at end of file
+var _0xc89f=['outbound','log','EVENT\x20UNKNOWN','unknown\x20integration','../../../../config/logger','error','[EXEC]','format','%s\x20configuration\x20#%s\x20not\x20found','%s\x20account\x20#%s\x20not\x20found','lodash','util','./zendesk','./salesforce','./sugarcrm','./freshdesk','./zoho','./desk','./vtiger','./servicenow','./freshsales','zendesk','salesforce','sugarcrm','freshdesk','zoho','desk','vtiger','dynamics365','freshsales','servicenow','exec','includes','data1','toLowerCase','find','Configurations','data3','queue','routeId'];(function(_0x36bce1,_0x4f1be3){var _0x4ff740=function(_0x42d656){while(--_0x42d656){_0x36bce1['push'](_0x36bce1['shift']());}};_0x4ff740(++_0x4f1be3);}(_0xc89f,0x1c2));var _0xfc89=function(_0x14dd10,_0x4900d6){_0x14dd10=_0x14dd10-0x0;var _0x5cb641=_0xc89f[_0x14dd10];return _0x5cb641;};'use strict';var _=require(_0xfc89('0x0'));var util=require(_0xfc89('0x1'));var zendesk=require(_0xfc89('0x2'));var salesforce=require(_0xfc89('0x3'));var sugarcrm=require(_0xfc89('0x4'));var freshdesk=require(_0xfc89('0x5'));var zoho=require(_0xfc89('0x6'));var desk=require(_0xfc89('0x7'));var vtiger=require(_0xfc89('0x8'));var servicenow=require(_0xfc89('0x9'));var dynamics365=require('./dynamics365');var freshsales=require(_0xfc89('0xa'));var integrations=[_0xfc89('0xb'),_0xfc89('0xc'),_0xfc89('0xd'),_0xfc89('0xe'),_0xfc89('0xf'),_0xfc89('0x10'),_0xfc89('0x11'),_0xfc89('0x12'),_0xfc89('0x13'),_0xfc89('0x14')];exports[_0xfc89('0x15')]=function(_0x2ef8a1,_0x3542cf,_0x403b7e,_0x5a27fc,_0x313962,_0x17d46a){if(_0x403b7e){if(_[_0xfc89('0x16')](integrations,_0x2ef8a1[_0xfc89('0x17')]['toLowerCase']())){try{var _0x42161e=null;var _0x5efe07='';var _0x4599fa=_0x403b7e[_0x2ef8a1[_0xfc89('0x17')][_0xfc89('0x18')]()];if(_0x4599fa){var _0x467df9=_0x4599fa[_0x2ef8a1['data2']];if(_0x467df9){var _0x3d0d46=_[_0xfc89('0x19')](_0x467df9[_0xfc89('0x1a')],{'id':parseInt(_0x2ef8a1[_0xfc89('0x1b')],0xa)});if(_0x3d0d46){if(_0x5a27fc){if(_0x313962&&_0x3542cf[_0xfc89('0x1c')]){_0x5efe07=_0xfc89('0x1c');}else if(_0x3542cf[_0xfc89('0x1d')]){_0x5efe07=_0xfc89('0x1e');}else{console[_0xfc89('0x1f')](_0xfc89('0x20'),_0x3542cf);}}else{_0x5efe07='unmanaged';}switch(_0x2ef8a1['data1'][_0xfc89('0x18')]()){case _0xfc89('0xb'):zendesk[_0x5efe07](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a);break;case _0xfc89('0xc'):salesforce[_0x5efe07](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a);break;case _0xfc89('0xd'):sugarcrm[_0x5efe07](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a);break;case _0xfc89('0xe'):freshdesk[_0x5efe07](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a);break;case _0xfc89('0xf'):zoho[_0x5efe07](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a);break;case _0xfc89('0x10'):desk[_0x5efe07](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a);break;case _0xfc89('0x11'):vtiger[_0x5efe07](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a);break;case _0xfc89('0x13'):freshsales['cs'](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a,_0x5efe07);break;case _0xfc89('0x14'):servicenow['cs'](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a,_0x5efe07);break;case'dynamics365':dynamics365['cs'](_0x2ef8a1,_0x3542cf,_0x3d0d46,_0x5a27fc,_0x313962,_0x467df9,_0x17d46a,_0x5efe07);break;default:console[_0xfc89('0x1f')](_0xfc89('0x21'));}}else{_0x42161e=require(_0xfc89('0x22'))(_0x2ef8a1[_0xfc89('0x17')]['toLowerCase']());_0x42161e[_0xfc89('0x23')](_0xfc89('0x24'),util[_0xfc89('0x25')](_0xfc89('0x26'),_0x2ef8a1[_0xfc89('0x17')][_0xfc89('0x18')](),_0x2ef8a1[_0xfc89('0x1b')]));}}else{_0x42161e=require(_0xfc89('0x22'))(_0x2ef8a1[_0xfc89('0x17')][_0xfc89('0x18')]());_0x42161e['error'](_0xfc89('0x24'),util[_0xfc89('0x25')](_0xfc89('0x27'),_0x2ef8a1['data1'][_0xfc89('0x18')](),_0x2ef8a1['data2']));}}else{}}catch(_0x5b0d64){console[_0xfc89('0x23')](_0x5b0d64);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c79=['jsforce','ioredis','./util','../../../../config/environment','../../../../config/logger','salesforce','redis','defaults','socket.io-emitter','emit','assign','Subjects','getString','ticketType','Task','ActivityDate','utc','IsRecurrence','endUserType','contact','lead','account','WhatId','Case','ContactId','AccountId','leadId','info','sobject','create','validateEmail','User','find','execute','then','length','Email','Agent\x20%s\x20found.','resolve','Name','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','user_id','display_name','moduleSearch','cloneDeep','additionalSearchContact','merge','$or','additionalSearchLead','Lead','account_contact_lead','Account','additionalSearchAccount','first','Phone','attributes','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','Enduser\x20with\x20phone\x20%s\x20not\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','LastName','<unknown>','format','Caller\x20-\x20%s','Company','upperFirst','forEach','includes','string','type','idField','content','toString','variable','variableName','Variable','name','password','securityToken','remoteUri','https://login.salesforce.com','clientId','clientSecret','login','username','Connection\x20established.','serverUrl','stripTrailingSlash','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','email','calleridname','calleridnum','Fields','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','integrationTab','trigger:salesforce:display','user:%s','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','[OUTBOUND]\x20Ticket\x20%s\x20created.','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','Salesforce\x20account\x20type\x20not\x20recognized','catch','unmanaged','monitor_format','lastevent','toUpperCase','isNil',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','lodash','request-promise','bluebird','md5'];(function(_0x44a5dc,_0x4005f1){var _0x369c18=function(_0x5a2994){while(--_0x5a2994){_0x44a5dc['push'](_0x44a5dc['shift']());}};_0x369c18(++_0x4005f1);}(_0x0c79,0x100));var _0x90c7=function(_0x432fef,_0x368cf0){_0x432fef=_0x432fef-0x0;var _0x5f587d=_0x0c79[_0x432fef];return _0x5f587d;};'use strict';var _=require(_0x90c7('0x0'));var rp=require(_0x90c7('0x1'));var moment=require('moment');var BPromise=require(_0x90c7('0x2'));var md5=require(_0x90c7('0x3'));var jsforce=require(_0x90c7('0x4'));var util=require('util');var Redis=require(_0x90c7('0x5'));var intUtil=require(_0x90c7('0x6'));var config=require(_0x90c7('0x7'));var logger=require(_0x90c7('0x8'))(_0x90c7('0x9'));config[_0x90c7('0xa')]=_[_0x90c7('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x90c7('0xc'))(new Redis(config[_0x90c7('0xa')]));function emit(_0xe9d5ff,_0x3568e9,_0x2a2b9e){io['to'](_0xe9d5ff)[_0x90c7('0xd')](_0x3568e9,_0x2a2b9e);}function getTicket(_0x3f864f,_0x21b4ba,_0x286595,_0x542b40,_0x538d1f,_0x2dd6dc,_0x402159,_0x257bbe){var _0x3ccfba=Object[_0x90c7('0xe')]({},{'OwnerId':_0x21b4ba['id'],'Subject':intUtil['getString'](_0x542b40[_0x90c7('0xf')],_0x538d1f,'\x20'),'Description':intUtil[_0x90c7('0x10')](_0x542b40['Descriptions'],_0x538d1f,'\x0a')},getCustomFields(_0x2dd6dc,_0x538d1f));if(_0x286595){if(_0x542b40[_0x90c7('0x11')]===_0x90c7('0x12')){_0x3ccfba[_0x90c7('0x13')]=moment[_0x90c7('0x14')]();_0x3ccfba['IsReminderSet']=![];_0x3ccfba[_0x90c7('0x15')]=![];if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x17')||_0x286595[_0x90c7('0x16')]===_0x90c7('0x18')){_0x3ccfba['WhoId']=_0x286595['id'];}else if(_0x286595['endUserType']===_0x90c7('0x19')){_0x3ccfba[_0x90c7('0x1a')]=_0x286595['id'];}}else if(_0x542b40[_0x90c7('0x11')]===_0x90c7('0x1b')){if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x17')){_0x3ccfba[_0x90c7('0x1c')]=_0x286595['id'];}else if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x19')){_0x3ccfba[_0x90c7('0x1d')]=_0x286595['id'];}else if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x18')&&_0x542b40['leadId']){_0x3ccfba[_0x542b40[_0x90c7('0x1e')]]=_0x286595['id'];}else{logger[_0x90c7('0x1f')]('Association\x20between\x20Case\x20and\x20Lead\x20skipped');}}}return _0x402159[_0x90c7('0x20')](_0x542b40[_0x90c7('0x11')])[_0x90c7('0x21')](_0x3ccfba);}function getUser(_0x47ff00,_0x52b0e5,_0x5912f5){if(!_['isNil'](_0x52b0e5)&&intUtil[_0x90c7('0x22')](_0x52b0e5)){var _0x268b4e={'Email':_0x52b0e5};var _0x46f384={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x5912f5[_0x90c7('0x20')](_0x90c7('0x23'))[_0x90c7('0x24')](_0x268b4e,_0x46f384)[_0x90c7('0x25')]()[_0x90c7('0x26')](function(_0x20e94c){if(_0x20e94c[_0x90c7('0x27')]){var _0x54624d=_[_0x90c7('0x24')](_0x20e94c,function(_0x4bff9d){return _0x4bff9d[_0x90c7('0x28')]===_0x52b0e5;});if(_0x54624d){logger[_0x90c7('0x1f')](_0x90c7('0x29'),_0x52b0e5);return BPromise[_0x90c7('0x2a')]({'id':_0x54624d['Id'],'name':_0x54624d[_0x90c7('0x2b')]});}}else{logger[_0x90c7('0x1f')](_0x90c7('0x2c'),_0x52b0e5);return _0x5912f5[_0x90c7('0x2d')]()['then'](function(_0x4a04db){return BPromise['resolve']({'id':_0x4a04db[_0x90c7('0x2e')],'name':_0x4a04db[_0x90c7('0x2f')]});});}});}else{logger[_0x90c7('0x1f')](_0x90c7('0x2c'),_0x52b0e5);return _0x5912f5[_0x90c7('0x2d')]()[_0x90c7('0x26')](function(_0x640c7f){return BPromise[_0x90c7('0x2a')]({'id':_0x640c7f['user_id'],'name':_0x640c7f[_0x90c7('0x2f')]});});}}function getEndUser(_0x4a529b,_0x3ef018,_0x1bce2d,_0xaa9743,_0x209346){var _0x4d7d6b={'$or':{'Phone':_0xaa9743}};var _0x4400b3={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x90c7('0x2a')]()['then'](function(){logger[_0x90c7('0x1f')]('Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.',_0xaa9743,_0x3ef018[_0x90c7('0x30')]);switch(_0x3ef018['moduleSearch']){case'contact_lead':var _0x13be1b=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x32')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x32')]]=_0xaa9743;_[_0x90c7('0x33')](_0x13be1b[_0x90c7('0x34')],_0x4f9320);}return _0x209346[_0x90c7('0x20')]('Contact')[_0x90c7('0x24')](_0x13be1b,_0x4400b3)[_0x90c7('0x25')]()[_0x90c7('0x26')](function(_0x277ee1){if(_0x277ee1&&_0x277ee1[_0x90c7('0x27')]){return _0x277ee1;}else{var _0x5a878e=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x35')]){var _0x4ee928={};_0x4ee928[_0x3ef018[_0x90c7('0x35')]]=_0xaa9743;_['merge'](_0x5a878e[_0x90c7('0x34')],_0x4ee928);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x36'))[_0x90c7('0x24')](_0x5a878e,_0x4400b3);}});case _0x90c7('0x37'):var _0x5e0844=_['cloneDeep'](_0x4d7d6b);if(_0x3ef018['additionalSearchAccount']){var _0x4f9320={};_0x4f9320[_0x3ef018['additionalSearchAccount']]=_0xaa9743;_[_0x90c7('0x33')](_0x5e0844[_0x90c7('0x34')],_0x4f9320);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x38'))[_0x90c7('0x24')](_0x5e0844,_0x4400b3)[_0x90c7('0x25')]()[_0x90c7('0x26')](function(_0x52c19f){if(_0x52c19f&&_0x52c19f['length']){return _0x52c19f;}else{var _0x203ceb=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018['additionalSearchContact']){var _0x29bd9e={};_0x29bd9e[_0x3ef018['additionalSearchContact']]=_0xaa9743;_[_0x90c7('0x33')](_0x203ceb[_0x90c7('0x34')],_0x29bd9e);}return _0x209346[_0x90c7('0x20')]('Contact')[_0x90c7('0x24')](_0x203ceb,_0x4400b3)[_0x90c7('0x26')](function(_0x2e92c0){if(_0x2e92c0&&_0x2e92c0[_0x90c7('0x27')]){return _0x2e92c0;}else{var _0x1a61f6=_['cloneDeep'](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x35')]){var _0x51e3a4={};_0x51e3a4[_0x3ef018[_0x90c7('0x35')]]=_0xaa9743;_[_0x90c7('0x33')](_0x1a61f6['$or'],_0x51e3a4);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x36'))[_0x90c7('0x24')](_0x1a61f6,_0x4400b3);}});}});case _0x90c7('0x17'):var _0x13be1b=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x32')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x32')]]=_0xaa9743;_['merge'](_0x13be1b['$or'],_0x4f9320);}return _0x209346[_0x90c7('0x20')]('Contact')[_0x90c7('0x24')](_0x13be1b,_0x4400b3)['execute']();case _0x90c7('0x18'):var _0x1579a9=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x35')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x35')]]=_0xaa9743;_['merge'](_0x1579a9[_0x90c7('0x34')],_0x4f9320);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x36'))[_0x90c7('0x24')](_0x1579a9,_0x4400b3);case _0x90c7('0x19'):var _0x5e0844=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x39')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x39')]]=_0xaa9743;_[_0x90c7('0x33')](_0x5e0844['$or'],_0x4f9320);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x38'))[_0x90c7('0x24')](_0x5e0844,_0x4400b3);default:return null;}})[_0x90c7('0x26')](function(_0x3427be){if(_0x3427be&&_0x3427be['length']){var _0x1f741e=_[_0x90c7('0x3a')](_0x3427be);if(_0x1f741e){return BPromise['resolve']({'id':_0x1f741e['Id'],'name':_0x1f741e[_0x90c7('0x2b')],'phone':_0x1f741e[_0x90c7('0x3b')],'endUserType':_0x1f741e[_0x90c7('0x3c')]['type'][_0x90c7('0x3d')]()});}}})[_0x90c7('0x26')](function(_0x210230){if(_0x210230){logger[_0x90c7('0x1f')](_0x90c7('0x3e'),_0x210230[_0x90c7('0x16')],_0xaa9743);return BPromise[_0x90c7('0x2a')](_0x210230);}else{logger['info'](_0x90c7('0x3f'),_0xaa9743);var _0x29de93={'Phone':_0xaa9743};if(_0x3ef018[_0x90c7('0x40')]){if(_0x3ef018[_0x90c7('0x40')]===_0x90c7('0x17')){logger[_0x90c7('0x1f')](_0x90c7('0x41'),_0xaa9743,_0x3ef018[_0x90c7('0x40')]);_0x29de93[_0x90c7('0x42')]=_0x1bce2d!==_0x90c7('0x43')?_0x1bce2d:util[_0x90c7('0x44')](_0x90c7('0x45'),_0xaa9743);}else if(_0x3ef018['moduleCreate']===_0x90c7('0x18')){logger[_0x90c7('0x1f')](_0x90c7('0x41'),_0xaa9743,_0x3ef018[_0x90c7('0x40')]);_0x29de93[_0x90c7('0x42')]=_0x1bce2d!==_0x90c7('0x43')?_0x1bce2d:util[_0x90c7('0x44')](_0x90c7('0x45'),_0xaa9743);_0x29de93[_0x90c7('0x46')]='No\x20Company';}else if(_0x3ef018[_0x90c7('0x40')]===_0x90c7('0x19')){logger[_0x90c7('0x1f')](_0x90c7('0x41'),_0xaa9743,_0x3ef018[_0x90c7('0x40')]);_0x29de93[_0x90c7('0x2b')]=_0x1bce2d!=='<unknown>'?_0x1bce2d:util['format'](_0x90c7('0x45'),_0xaa9743);}else{return null;}}return _0x209346[_0x90c7('0x20')](_[_0x90c7('0x47')](_0x3ef018[_0x90c7('0x40')]))['create'](_0x29de93)['then'](function(_0x3ba27d){return BPromise[_0x90c7('0x2a')]({'id':_0x3ba27d['id'],'endUserType':_0x3ef018['moduleCreate']});});}});}function getCustomFields(_0x3ebabf,_0x3d6718){var _0x20790e={};if(_0x3ebabf[_0x90c7('0x27')]>0x0){_[_0x90c7('0x48')](_0x3ebabf,function(_0x75db63){if(_[_0x90c7('0x49')]([_0x90c7('0x4a'),'picklist'],_0x75db63[_0x90c7('0x4b')])&&_0x75db63['idField']){_0x20790e[_0x75db63[_0x90c7('0x4c')]]=_0x75db63[_0x90c7('0x4d')][_0x90c7('0x4e')]();}else if(_0x75db63[_0x90c7('0x4b')]===_0x90c7('0x4f')&&_0x75db63[_0x90c7('0x50')]&&_0x75db63[_0x90c7('0x4c')]){_0x3d6718[_0x75db63[_0x90c7('0x50')]]&&(_0x20790e[_0x75db63[_0x90c7('0x4c')]]=_0x3d6718[_0x75db63[_0x90c7('0x50')]][_0x90c7('0x4e')]());}else if(_0x75db63[_0x90c7('0x4b')]==='customVariable'&&_0x75db63['Variable']&&_0x75db63[_0x90c7('0x51')][_0x90c7('0x52')]&&_0x75db63[_0x90c7('0x4c')]){_0x3d6718[_0x75db63[_0x90c7('0x51')][_0x90c7('0x52')][_0x90c7('0x3d')]()]&&(_0x20790e[_0x75db63[_0x90c7('0x4c')]]=_0x3d6718[_0x75db63[_0x90c7('0x51')][_0x90c7('0x52')][_0x90c7('0x3d')]()]['toString']());}});}return _0x20790e;}function getConnection(_0x1f87de){var _0xc57b94=_0x1f87de[_0x90c7('0x53')]['concat'](_0x1f87de[_0x90c7('0x54')]);var _0x132a49=new jsforce['Connection']({'oauth2':{'loginUrl':_0x1f87de[_0x90c7('0x55')]||_0x90c7('0x56'),'clientId':_0x1f87de[_0x90c7('0x57')],'clientSecret':_0x1f87de[_0x90c7('0x58')]}});return _0x132a49[_0x90c7('0x59')](_0x1f87de[_0x90c7('0x5a')],_0xc57b94)[_0x90c7('0x26')](function(){logger[_0x90c7('0x1f')](_0x90c7('0x5b'));return _0x132a49;});}exports['queue']=function(_0x4f302a,_0xc3b17b,_0x34e155,_0x37ae4e,_0x42678a,_0x49a61c){var _0x567e19,_0x22e36b,_0x41ca3a,_0x3ab079;_0x49a61c[_0x90c7('0x5c')]=intUtil[_0x90c7('0x5d')](_0x49a61c['serverUrl']);_0x49a61c['remoteUri']=intUtil[_0x90c7('0x5d')](_0x49a61c['remoteUri']);if(_0x42678a&&_0x42678a['monitor_format']){logger['info'](_0x90c7('0x5e'),_0x90c7('0x5f'));_0xc3b17b[_0x90c7('0x60')]=util[_0x90c7('0x44')](_0x90c7('0x61'),_0x49a61c['serverUrl'],_0xc3b17b[_0x90c7('0x62')],md5(_0xc3b17b[_0x90c7('0x62')]));}else{_0xc3b17b[_0x90c7('0x60')]='';}return getConnection(_0x49a61c)[_0x90c7('0x26')](function(_0x4567e5){_0x3ab079=_0x4567e5;return getUser(_0x49a61c,_0x37ae4e[_0x90c7('0x63')],_0x3ab079);})['then'](function(_0x4ce519){_0x567e19=_0x4ce519;return getEndUser(_0x49a61c,_0x34e155,_0xc3b17b[_0x90c7('0x64')],_0xc3b17b[_0x90c7('0x65')],_0x3ab079);})[_0x90c7('0x26')](function(_0x48eb82){_0x22e36b=_0x48eb82;return getTicket(_0x49a61c,_0x567e19,_0x22e36b,_0x34e155,_0xc3b17b,_0x34e155[_0x90c7('0x66')],_0x3ab079,'queue');})[_0x90c7('0x26')](function(_0x2f2cf1){_0x41ca3a=_0x2f2cf1;logger[_0x90c7('0x1f')](_0x90c7('0x67'),_0x41ca3a['id']);logger[_0x90c7('0x1f')](_0x90c7('0x68'),_0x41ca3a['id'],_0x37ae4e['name'],_0x49a61c[_0x90c7('0x4b')]);switch(_0x49a61c[_0x90c7('0x4b')]){case _0x90c7('0x69'):emit(util[_0x90c7('0x44')]('user:%s',_0x37ae4e[_0x90c7('0x52')]),_0x90c7('0x6a'),{'recordId':_0x41ca3a['id']});break;case'newTab':emit(util[_0x90c7('0x44')](_0x90c7('0x6b'),_0x37ae4e[_0x90c7('0x52')]),_0x90c7('0x6c'),{'uri':util[_0x90c7('0x44')](_0x90c7('0x6d'),_0x3ab079[_0x90c7('0x6e')],_0x41ca3a['id'])});break;default:logger[_0x90c7('0x6f')](_0x90c7('0x70'));}})['catch'](function(_0x3fc10d){logger['error'](_0x90c7('0x5e'),_0x3fc10d);});};exports[_0x90c7('0x71')]=function(_0x454c0b,_0x2febbd,_0xc4c5d6,_0x195f6f,_0x3cd26c,_0xf3a6be,_0x346e38){var _0x435f63,_0x5a5bfb,_0xd277db,_0x31a0d7;_0xf3a6be[_0x90c7('0x5c')]=intUtil[_0x90c7('0x5d')](_0xf3a6be['serverUrl']);_0xf3a6be[_0x90c7('0x55')]=intUtil[_0x90c7('0x5d')](_0xf3a6be['remoteUri']);if(_0x346e38&&_0x346e38[_0x90c7('0x72')]&&_0x346e38['recordingFormat']!==_0x90c7('0x73')){logger[_0x90c7('0x1f')](_0x90c7('0x74'),'Recording\x20is\x20enabled!');_0x2febbd['recordingURL']=util['format'](_0x90c7('0x61'),_0xf3a6be[_0x90c7('0x5c')],_0x2febbd[_0x90c7('0x62')],md5(_0x2febbd[_0x90c7('0x62')]));}return getConnection(_0xf3a6be)['then'](function(_0x50ea9b){_0x31a0d7=_0x50ea9b;return getUser(_0xf3a6be,_0x195f6f['email'],_0x31a0d7);})[_0x90c7('0x26')](function(_0x2f3476){_0x435f63=_0x2f3476;return getEndUser(_0xf3a6be,_0xc4c5d6,_0x2febbd[_0x90c7('0x75')],_0x2febbd[_0x90c7('0x76')],_0x31a0d7);})[_0x90c7('0x26')](function(_0x1f03ba){_0x5a5bfb=_0x1f03ba;return getTicket(_0xf3a6be,_0x435f63,_0x5a5bfb,_0xc4c5d6,_0x2febbd,_0xc4c5d6[_0x90c7('0x66')],_0x31a0d7,_0x90c7('0x71'));})[_0x90c7('0x26')](function(_0x95acd2){_0xd277db=_0x95acd2;logger[_0x90c7('0x1f')](_0x90c7('0x77'),_0xd277db['id']);logger[_0x90c7('0x1f')](_0x90c7('0x78'),_0xd277db['id'],_0x195f6f[_0x90c7('0x52')],_0xf3a6be[_0x90c7('0x4b')]);switch(_0xf3a6be['type']){case'integrationTab':emit(util[_0x90c7('0x44')]('user:%s',_0x195f6f[_0x90c7('0x52')]),_0x90c7('0x6a'),{'recordId':_0xd277db['id']});break;case'newTab':emit(util[_0x90c7('0x44')](_0x90c7('0x6b'),_0x195f6f[_0x90c7('0x52')]),'trigger:browser:url',{'uri':util[_0x90c7('0x44')](_0x90c7('0x6d'),_0x31a0d7[_0x90c7('0x6e')],_0xd277db['id'])});break;default:logger[_0x90c7('0x6f')](_0x90c7('0x74'),_0x90c7('0x79'));}})[_0x90c7('0x7a')](function(_0x5ed7d9){logger[_0x90c7('0x6f')]('[OUTBOUND]',_0x5ed7d9);});};exports[_0x90c7('0x7b')]=function(_0x415797,_0x1ce1d5,_0x4d9292,_0x5651be,_0x384b28,_0x2fd225){var _0x285cf4,_0x1ecea0,_0x169c74,_0x1502cc;_0x2fd225[_0x90c7('0x5c')]=intUtil[_0x90c7('0x5d')](_0x2fd225[_0x90c7('0x5c')]);_0x2fd225[_0x90c7('0x55')]=intUtil[_0x90c7('0x5d')](_0x2fd225[_0x90c7('0x55')]);if(_0x384b28&&_0x384b28[_0x90c7('0x7c')]){logger[_0x90c7('0x1f')]('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+']',_0x90c7('0x5f'));_0x1ce1d5[_0x90c7('0x60')]=util[_0x90c7('0x44')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2fd225[_0x90c7('0x5c')],_0x1ce1d5[_0x90c7('0x62')],md5(_0x1ce1d5['uniqueid']));}else{_0x1ce1d5[_0x90c7('0x60')]='';}return getConnection(_0x2fd225)[_0x90c7('0x26')](function(_0x179958){_0x1502cc=_0x179958;if(!_[_0x90c7('0x7f')](_0x5651be)){return getUser(_0x2fd225,_0x5651be[_0x90c7('0x52')],_0x1502cc);}else{return getUser(_0x2fd225,null,_0x1502cc);}})[_0x90c7('0x26')](function(_0x2f94d4){_0x285cf4=_0x2f94d4;return getEndUser(_0x2fd225,_0x4d9292,_0x1ce1d5['calleridname'],_0x1ce1d5['calleridnum'],_0x1502cc);})[_0x90c7('0x26')](function(_0x329969){_0x1ecea0=_0x329969;return getTicket(_0x2fd225,_0x285cf4,_0x1ecea0,_0x4d9292,_0x1ce1d5,_0x4d9292[_0x90c7('0x66')],_0x1502cc);})[_0x90c7('0x26')](function(_0x2f5d62){_0x169c74=_0x2f5d62;logger['info']('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+_0x90c7('0x80'),_0x169c74['id']);logger[_0x90c7('0x1f')]('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+_0x90c7('0x81'),_0x2fd225[_0x90c7('0x4b')]);})['catch'](function(_0x2ae829){logger[_0x90c7('0x6f')]('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+']',_0x2ae829);});};
\ No newline at end of file
+var _0xf53e=['contact_lead','cloneDeep','additionalSearchContact','$or','Contact','additionalSearchLead','sobject','Lead','additionalSearchAccount','merge','Account','execute','first','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','Enduser\x20with\x20phone\x20%s\x20not\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','<unknown>','format','Caller\x20-\x20%s','LastName','Company','No\x20Company','upperFirst','forEach','includes','string','picklist','idField','content','toString','type','variable','variableName','Variable','name','password','concat','securityToken','Connection','remoteUri','https://login.salesforce.com','clientId','login','queue','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','email','calleridname','Fields','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','user:%s','trigger:salesforce:display','newTab','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','recordingFormat','[OUTBOUND]','outbound','[OUTBOUND]\x20Ticket\x20%s\x20created.','integrationTab','Salesforce\x20account\x20type\x20not\x20recognized','catch','unmanaged','toUpperCase','calleridnum','lastevent',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','moment','bluebird','md5','jsforce','ioredis','../../../../config/environment','salesforce','redis','defaults','assign','getString','Descriptions','ticketType','Task','IsReminderSet','IsRecurrence','endUserType','contact','lead','WhoId','account','WhatId','Case','ContactId','AccountId','info','Association\x20between\x20Case\x20and\x20Lead\x20skipped','create','isNil','validateEmail','find','then','length','Email','Agent\x20%s\x20found.','resolve','Name','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','user_id','display_name','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch'];(function(_0x2e2ec3,_0x19ee9b){var _0x5f4db4=function(_0x27a41a){while(--_0x27a41a){_0x2e2ec3['push'](_0x2e2ec3['shift']());}};_0x5f4db4(++_0x19ee9b);}(_0xf53e,0xcb));var _0xef53=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xf53e[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var rp=require('request-promise');var moment=require(_0xef53('0x0'));var BPromise=require(_0xef53('0x1'));var md5=require(_0xef53('0x2'));var jsforce=require(_0xef53('0x3'));var util=require('util');var Redis=require(_0xef53('0x4'));var intUtil=require('./util');var config=require(_0xef53('0x5'));var logger=require('../../../../config/logger')(_0xef53('0x6'));config[_0xef53('0x7')]=_[_0xef53('0x8')](config[_0xef53('0x7')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xef53('0x7')]));function emit(_0x27225a,_0x380e73,_0x237189){io['to'](_0x27225a)['emit'](_0x380e73,_0x237189);}function getTicket(_0x317aeb,_0x4267ab,_0x414cea,_0x4d69f0,_0x592e15,_0x218184,_0x14629f,_0x3c4873){var _0x202e7d=Object[_0xef53('0x9')]({},{'OwnerId':_0x4267ab['id'],'Subject':intUtil['getString'](_0x4d69f0['Subjects'],_0x592e15,'\x20'),'Description':intUtil[_0xef53('0xa')](_0x4d69f0[_0xef53('0xb')],_0x592e15,'\x0a')},getCustomFields(_0x218184,_0x592e15));if(_0x414cea){if(_0x4d69f0[_0xef53('0xc')]===_0xef53('0xd')){_0x202e7d['ActivityDate']=moment['utc']();_0x202e7d[_0xef53('0xe')]=![];_0x202e7d[_0xef53('0xf')]=![];if(_0x414cea[_0xef53('0x10')]===_0xef53('0x11')||_0x414cea[_0xef53('0x10')]===_0xef53('0x12')){_0x202e7d[_0xef53('0x13')]=_0x414cea['id'];}else if(_0x414cea[_0xef53('0x10')]===_0xef53('0x14')){_0x202e7d[_0xef53('0x15')]=_0x414cea['id'];}}else if(_0x4d69f0[_0xef53('0xc')]===_0xef53('0x16')){if(_0x414cea[_0xef53('0x10')]===_0xef53('0x11')){_0x202e7d[_0xef53('0x17')]=_0x414cea['id'];}else if(_0x414cea[_0xef53('0x10')]===_0xef53('0x14')){_0x202e7d[_0xef53('0x18')]=_0x414cea['id'];}else if(_0x414cea[_0xef53('0x10')]===_0xef53('0x12')&&_0x4d69f0['leadId']){_0x202e7d[_0x4d69f0['leadId']]=_0x414cea['id'];}else{logger[_0xef53('0x19')](_0xef53('0x1a'));}}}return _0x14629f['sobject'](_0x4d69f0[_0xef53('0xc')])[_0xef53('0x1b')](_0x202e7d);}function getUser(_0x183338,_0x3fc787,_0x531f9b){if(!_[_0xef53('0x1c')](_0x3fc787)&&intUtil[_0xef53('0x1d')](_0x3fc787)){var _0x1b7e32={'Email':_0x3fc787};var _0x1f4dc6={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x531f9b['sobject']('User')[_0xef53('0x1e')](_0x1b7e32,_0x1f4dc6)['execute']()[_0xef53('0x1f')](function(_0x320bbd){if(_0x320bbd[_0xef53('0x20')]){var _0xdcb57c=_['find'](_0x320bbd,function(_0x375cc9){return _0x375cc9[_0xef53('0x21')]===_0x3fc787;});if(_0xdcb57c){logger[_0xef53('0x19')](_0xef53('0x22'),_0x3fc787);return BPromise[_0xef53('0x23')]({'id':_0xdcb57c['Id'],'name':_0xdcb57c[_0xef53('0x24')]});}}else{logger[_0xef53('0x19')](_0xef53('0x25'),_0x3fc787);return _0x531f9b[_0xef53('0x26')]()['then'](function(_0x4267d1){return BPromise[_0xef53('0x23')]({'id':_0x4267d1[_0xef53('0x27')],'name':_0x4267d1[_0xef53('0x28')]});});}});}else{logger[_0xef53('0x19')]('Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.',_0x3fc787);return _0x531f9b[_0xef53('0x26')]()[_0xef53('0x1f')](function(_0x4b07e0){return BPromise[_0xef53('0x23')]({'id':_0x4b07e0[_0xef53('0x27')],'name':_0x4b07e0[_0xef53('0x28')]});});}}function getEndUser(_0x9e6b27,_0x12b3f3,_0x135494,_0xf43e90,_0x57f07c){var _0x1bffc8={'$or':{'Phone':_0xf43e90}};var _0x2861d9={'Id':!![],'Name':!![],'Phone':!![]};return BPromise['resolve']()[_0xef53('0x1f')](function(){logger[_0xef53('0x19')](_0xef53('0x29'),_0xf43e90,_0x12b3f3[_0xef53('0x2a')]);switch(_0x12b3f3[_0xef53('0x2a')]){case _0xef53('0x2b'):var _0x5bcc2c=_[_0xef53('0x2c')](_0x1bffc8);if(_0x12b3f3[_0xef53('0x2d')]){var _0x341b55={};_0x341b55[_0x12b3f3[_0xef53('0x2d')]]=_0xf43e90;_['merge'](_0x5bcc2c[_0xef53('0x2e')],_0x341b55);}return _0x57f07c['sobject'](_0xef53('0x2f'))[_0xef53('0x1e')](_0x5bcc2c,_0x2861d9)['execute']()[_0xef53('0x1f')](function(_0x39e4e7){if(_0x39e4e7&&_0x39e4e7['length']){return _0x39e4e7;}else{var _0x594204=_[_0xef53('0x2c')](_0x1bffc8);if(_0x12b3f3[_0xef53('0x30')]){var _0x287119={};_0x287119[_0x12b3f3[_0xef53('0x30')]]=_0xf43e90;_['merge'](_0x594204[_0xef53('0x2e')],_0x287119);}return _0x57f07c[_0xef53('0x31')](_0xef53('0x32'))['find'](_0x594204,_0x2861d9);}});case'account_contact_lead':var _0x3908b1=_[_0xef53('0x2c')](_0x1bffc8);if(_0x12b3f3[_0xef53('0x33')]){var _0x341b55={};_0x341b55[_0x12b3f3[_0xef53('0x33')]]=_0xf43e90;_[_0xef53('0x34')](_0x3908b1[_0xef53('0x2e')],_0x341b55);}return _0x57f07c[_0xef53('0x31')](_0xef53('0x35'))[_0xef53('0x1e')](_0x3908b1,_0x2861d9)[_0xef53('0x36')]()[_0xef53('0x1f')](function(_0x181961){if(_0x181961&&_0x181961[_0xef53('0x20')]){return _0x181961;}else{var _0xc9082e=_[_0xef53('0x2c')](_0x1bffc8);if(_0x12b3f3['additionalSearchContact']){var _0x959616={};_0x959616[_0x12b3f3[_0xef53('0x2d')]]=_0xf43e90;_[_0xef53('0x34')](_0xc9082e[_0xef53('0x2e')],_0x959616);}return _0x57f07c[_0xef53('0x31')](_0xef53('0x2f'))[_0xef53('0x1e')](_0xc9082e,_0x2861d9)['then'](function(_0x493982){if(_0x493982&&_0x493982[_0xef53('0x20')]){return _0x493982;}else{var _0x49d141=_[_0xef53('0x2c')](_0x1bffc8);if(_0x12b3f3['additionalSearchLead']){var _0x124380={};_0x124380[_0x12b3f3[_0xef53('0x30')]]=_0xf43e90;_[_0xef53('0x34')](_0x49d141[_0xef53('0x2e')],_0x124380);}return _0x57f07c[_0xef53('0x31')](_0xef53('0x32'))['find'](_0x49d141,_0x2861d9);}});}});case _0xef53('0x11'):var _0x5bcc2c=_[_0xef53('0x2c')](_0x1bffc8);if(_0x12b3f3[_0xef53('0x2d')]){var _0x341b55={};_0x341b55[_0x12b3f3[_0xef53('0x2d')]]=_0xf43e90;_['merge'](_0x5bcc2c[_0xef53('0x2e')],_0x341b55);}return _0x57f07c['sobject'](_0xef53('0x2f'))[_0xef53('0x1e')](_0x5bcc2c,_0x2861d9)['execute']();case _0xef53('0x12'):var _0x4855cc=_[_0xef53('0x2c')](_0x1bffc8);if(_0x12b3f3[_0xef53('0x30')]){var _0x341b55={};_0x341b55[_0x12b3f3[_0xef53('0x30')]]=_0xf43e90;_[_0xef53('0x34')](_0x4855cc[_0xef53('0x2e')],_0x341b55);}return _0x57f07c[_0xef53('0x31')](_0xef53('0x32'))[_0xef53('0x1e')](_0x4855cc,_0x2861d9);case _0xef53('0x14'):var _0x3908b1=_['cloneDeep'](_0x1bffc8);if(_0x12b3f3[_0xef53('0x33')]){var _0x341b55={};_0x341b55[_0x12b3f3['additionalSearchAccount']]=_0xf43e90;_[_0xef53('0x34')](_0x3908b1[_0xef53('0x2e')],_0x341b55);}return _0x57f07c['sobject'](_0xef53('0x35'))[_0xef53('0x1e')](_0x3908b1,_0x2861d9);default:return null;}})[_0xef53('0x1f')](function(_0x1f848b){if(_0x1f848b&&_0x1f848b[_0xef53('0x20')]){var _0x27f8a1=_[_0xef53('0x37')](_0x1f848b);if(_0x27f8a1){return BPromise['resolve']({'id':_0x27f8a1['Id'],'name':_0x27f8a1['Name'],'phone':_0x27f8a1['Phone'],'endUserType':_0x27f8a1['attributes']['type'][_0xef53('0x38')]()});}}})[_0xef53('0x1f')](function(_0x23ea9c){if(_0x23ea9c){logger[_0xef53('0x19')](_0xef53('0x39'),_0x23ea9c[_0xef53('0x10')],_0xf43e90);return BPromise[_0xef53('0x23')](_0x23ea9c);}else{logger['info'](_0xef53('0x3a'),_0xf43e90);var _0x31d9f1={'Phone':_0xf43e90};if(_0x12b3f3[_0xef53('0x3b')]){if(_0x12b3f3[_0xef53('0x3b')]===_0xef53('0x11')){logger[_0xef53('0x19')](_0xef53('0x3c'),_0xf43e90,_0x12b3f3[_0xef53('0x3b')]);_0x31d9f1['LastName']=_0x135494!==_0xef53('0x3d')?_0x135494:util[_0xef53('0x3e')](_0xef53('0x3f'),_0xf43e90);}else if(_0x12b3f3[_0xef53('0x3b')]===_0xef53('0x12')){logger['info'](_0xef53('0x3c'),_0xf43e90,_0x12b3f3[_0xef53('0x3b')]);_0x31d9f1[_0xef53('0x40')]=_0x135494!==_0xef53('0x3d')?_0x135494:util[_0xef53('0x3e')]('Caller\x20-\x20%s',_0xf43e90);_0x31d9f1[_0xef53('0x41')]=_0xef53('0x42');}else if(_0x12b3f3['moduleCreate']==='account'){logger[_0xef53('0x19')](_0xef53('0x3c'),_0xf43e90,_0x12b3f3[_0xef53('0x3b')]);_0x31d9f1[_0xef53('0x24')]=_0x135494!==_0xef53('0x3d')?_0x135494:util['format']('Caller\x20-\x20%s',_0xf43e90);}else{return null;}}return _0x57f07c[_0xef53('0x31')](_[_0xef53('0x43')](_0x12b3f3[_0xef53('0x3b')]))[_0xef53('0x1b')](_0x31d9f1)[_0xef53('0x1f')](function(_0x483f79){return BPromise[_0xef53('0x23')]({'id':_0x483f79['id'],'endUserType':_0x12b3f3[_0xef53('0x3b')]});});}});}function getCustomFields(_0x34874f,_0x3ea245){var _0xf81b6={};if(_0x34874f[_0xef53('0x20')]>0x0){_[_0xef53('0x44')](_0x34874f,function(_0x4df179){if(_[_0xef53('0x45')]([_0xef53('0x46'),_0xef53('0x47')],_0x4df179['type'])&&_0x4df179[_0xef53('0x48')]){_0xf81b6[_0x4df179[_0xef53('0x48')]]=_0x4df179[_0xef53('0x49')][_0xef53('0x4a')]();}else if(_0x4df179[_0xef53('0x4b')]===_0xef53('0x4c')&&_0x4df179[_0xef53('0x4d')]&&_0x4df179['idField']){_0x3ea245[_0x4df179[_0xef53('0x4d')]]&&(_0xf81b6[_0x4df179[_0xef53('0x48')]]=_0x3ea245[_0x4df179[_0xef53('0x4d')]]['toString']());}else if(_0x4df179['type']==='customVariable'&&_0x4df179['Variable']&&_0x4df179[_0xef53('0x4e')][_0xef53('0x4f')]&&_0x4df179[_0xef53('0x48')]){_0x3ea245[_0x4df179[_0xef53('0x4e')]['name'][_0xef53('0x38')]()]&&(_0xf81b6[_0x4df179[_0xef53('0x48')]]=_0x3ea245[_0x4df179[_0xef53('0x4e')][_0xef53('0x4f')][_0xef53('0x38')]()][_0xef53('0x4a')]());}});}return _0xf81b6;}function getConnection(_0x5209ac){var _0x42de55=_0x5209ac[_0xef53('0x50')][_0xef53('0x51')](_0x5209ac[_0xef53('0x52')]);var _0x25e4a8=new jsforce[(_0xef53('0x53'))]({'oauth2':{'loginUrl':_0x5209ac[_0xef53('0x54')]||_0xef53('0x55'),'clientId':_0x5209ac[_0xef53('0x56')],'clientSecret':_0x5209ac['clientSecret']}});return _0x25e4a8[_0xef53('0x57')](_0x5209ac['username'],_0x42de55)[_0xef53('0x1f')](function(){logger[_0xef53('0x19')]('Connection\x20established.');return _0x25e4a8;});}exports[_0xef53('0x58')]=function(_0x2cd138,_0x1f3bb9,_0x59dd22,_0xdad0a0,_0x416017,_0x3f7002){var _0x65cffc,_0x5290a5,_0x4fdd32,_0x42db3e;_0x3f7002[_0xef53('0x59')]=intUtil[_0xef53('0x5a')](_0x3f7002['serverUrl']);_0x3f7002[_0xef53('0x54')]=intUtil[_0xef53('0x5a')](_0x3f7002[_0xef53('0x54')]);if(_0x416017&&_0x416017[_0xef53('0x5b')]){logger[_0xef53('0x19')](_0xef53('0x5c'),_0xef53('0x5d'));_0x1f3bb9[_0xef53('0x5e')]=util[_0xef53('0x3e')](_0xef53('0x5f'),_0x3f7002[_0xef53('0x59')],_0x1f3bb9[_0xef53('0x60')],md5(_0x1f3bb9[_0xef53('0x60')]));}else{_0x1f3bb9['recordingURL']='';}return getConnection(_0x3f7002)[_0xef53('0x1f')](function(_0x393c4b){_0x42db3e=_0x393c4b;return getUser(_0x3f7002,_0xdad0a0[_0xef53('0x61')],_0x42db3e);})[_0xef53('0x1f')](function(_0x3dfaf4){_0x65cffc=_0x3dfaf4;return getEndUser(_0x3f7002,_0x59dd22,_0x1f3bb9[_0xef53('0x62')],_0x1f3bb9['calleridnum'],_0x42db3e);})['then'](function(_0x2833a7){_0x5290a5=_0x2833a7;return getTicket(_0x3f7002,_0x65cffc,_0x5290a5,_0x59dd22,_0x1f3bb9,_0x59dd22[_0xef53('0x63')],_0x42db3e,_0xef53('0x58'));})[_0xef53('0x1f')](function(_0x378a76){_0x4fdd32=_0x378a76;logger[_0xef53('0x19')](_0xef53('0x64'),_0x4fdd32['id']);logger['info'](_0xef53('0x65'),_0x4fdd32['id'],_0xdad0a0[_0xef53('0x4f')],_0x3f7002[_0xef53('0x4b')]);switch(_0x3f7002[_0xef53('0x4b')]){case'integrationTab':emit(util[_0xef53('0x3e')](_0xef53('0x66'),_0xdad0a0['name']),_0xef53('0x67'),{'recordId':_0x4fdd32['id']});break;case _0xef53('0x68'):emit(util[_0xef53('0x3e')](_0xef53('0x66'),_0xdad0a0[_0xef53('0x4f')]),_0xef53('0x69'),{'uri':util[_0xef53('0x3e')](_0xef53('0x6a'),_0x42db3e[_0xef53('0x6b')],_0x4fdd32['id'])});break;default:logger[_0xef53('0x6c')](_0xef53('0x6d'));}})['catch'](function(_0xb11a42){logger[_0xef53('0x6c')](_0xef53('0x5c'),_0xb11a42);});};exports['outbound']=function(_0x553918,_0x503576,_0x65647b,_0x38583d,_0x5c0202,_0x441480,_0x570b1c){var _0x45aedb,_0x28b822,_0x5384c4,_0x7453a8;_0x441480['serverUrl']=intUtil[_0xef53('0x5a')](_0x441480[_0xef53('0x59')]);_0x441480[_0xef53('0x54')]=intUtil[_0xef53('0x5a')](_0x441480[_0xef53('0x54')]);if(_0x570b1c&&_0x570b1c[_0xef53('0x6e')]&&_0x570b1c['recordingFormat']!=='none'){logger[_0xef53('0x19')](_0xef53('0x6f'),_0xef53('0x5d'));_0x503576['recordingURL']=util[_0xef53('0x3e')](_0xef53('0x5f'),_0x441480[_0xef53('0x59')],_0x503576[_0xef53('0x60')],md5(_0x503576[_0xef53('0x60')]));}return getConnection(_0x441480)['then'](function(_0x2e22c7){_0x7453a8=_0x2e22c7;return getUser(_0x441480,_0x38583d[_0xef53('0x61')],_0x7453a8);})['then'](function(_0x5c698c){_0x45aedb=_0x5c698c;return getEndUser(_0x441480,_0x65647b,_0x503576['destcalleridname'],_0x503576['destcalleridnum'],_0x7453a8);})[_0xef53('0x1f')](function(_0x25fa55){_0x28b822=_0x25fa55;return getTicket(_0x441480,_0x45aedb,_0x28b822,_0x65647b,_0x503576,_0x65647b[_0xef53('0x63')],_0x7453a8,_0xef53('0x70'));})['then'](function(_0x439b96){_0x5384c4=_0x439b96;logger[_0xef53('0x19')](_0xef53('0x71'),_0x5384c4['id']);logger[_0xef53('0x19')]('[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x5384c4['id'],_0x38583d[_0xef53('0x4f')],_0x441480[_0xef53('0x4b')]);switch(_0x441480[_0xef53('0x4b')]){case _0xef53('0x72'):emit(util[_0xef53('0x3e')]('user:%s',_0x38583d[_0xef53('0x4f')]),'trigger:salesforce:display',{'recordId':_0x5384c4['id']});break;case _0xef53('0x68'):emit(util[_0xef53('0x3e')]('user:%s',_0x38583d[_0xef53('0x4f')]),_0xef53('0x69'),{'uri':util[_0xef53('0x3e')](_0xef53('0x6a'),_0x7453a8['instanceUrl'],_0x5384c4['id'])});break;default:logger[_0xef53('0x6c')]('[OUTBOUND]',_0xef53('0x73'));}})[_0xef53('0x74')](function(_0x4e8973){logger[_0xef53('0x6c')](_0xef53('0x6f'),_0x4e8973);});};exports[_0xef53('0x75')]=function(_0x51c9bd,_0x3ab774,_0x5a515b,_0x95b50c,_0x3c74f7,_0x41c4bd){var _0x3cc02c,_0x3c8df6,_0x43e881,_0x8873fc;_0x41c4bd['serverUrl']=intUtil[_0xef53('0x5a')](_0x41c4bd['serverUrl']);_0x41c4bd['remoteUri']=intUtil['stripTrailingSlash'](_0x41c4bd['remoteUri']);if(_0x3c74f7&&_0x3c74f7[_0xef53('0x5b')]){logger[_0xef53('0x19')]('['+_0x3ab774['lastevent'][_0xef53('0x76')]()+']',_0xef53('0x5d'));_0x3ab774[_0xef53('0x5e')]=util[_0xef53('0x3e')](_0xef53('0x5f'),_0x41c4bd['serverUrl'],_0x3ab774[_0xef53('0x60')],md5(_0x3ab774[_0xef53('0x60')]));}else{_0x3ab774['recordingURL']='';}return getConnection(_0x41c4bd)[_0xef53('0x1f')](function(_0x547632){_0x8873fc=_0x547632;if(!_['isNil'](_0x95b50c)){return getUser(_0x41c4bd,_0x95b50c[_0xef53('0x4f')],_0x8873fc);}else{return getUser(_0x41c4bd,null,_0x8873fc);}})['then'](function(_0x59e9c4){_0x3cc02c=_0x59e9c4;return getEndUser(_0x41c4bd,_0x5a515b,_0x3ab774[_0xef53('0x62')],_0x3ab774[_0xef53('0x77')],_0x8873fc);})[_0xef53('0x1f')](function(_0x584288){_0x3c8df6=_0x584288;return getTicket(_0x41c4bd,_0x3cc02c,_0x3c8df6,_0x5a515b,_0x3ab774,_0x5a515b[_0xef53('0x63')],_0x8873fc);})['then'](function(_0x3bdeca){_0x43e881=_0x3bdeca;logger[_0xef53('0x19')]('['+_0x3ab774[_0xef53('0x78')][_0xef53('0x76')]()+_0xef53('0x79'),_0x43e881['id']);logger['info']('['+_0x3ab774[_0xef53('0x78')][_0xef53('0x76')]()+_0xef53('0x7a'),_0x41c4bd[_0xef53('0x4b')]);})[_0xef53('0x74')](function(_0x433760){logger['error']('['+_0x3ab774['lastevent'][_0xef53('0x76')]()+']',_0x433760);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x23e4=['Fields','ticketId','ticketNumber','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','label_entry','incident','Incident\x20-\x20','push','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','/nav_to.do?uri=incident.do?sys_id%3D','format','emit','username','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','stripTrailingSlash','serverUrl','%s/api/now/table/','isNil','email','destcalleridnum','calleridnum','callDirection','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','unmanaged','Displaying\x20call\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','lodash','util','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','servicenow','redis','defaults','localhost','sys_user?sysparm_query=user_name%3Dadmin','then','result','sys_id','],\x20getAdminUser\x20crm','catch','error','toUpperCase','message','info','validateEmail','userEmail','GET','sys_user?sysparm_query=email%3D','],\x20getUser\x20entity','length','true','userId','adminId','adminEmail','],\x20getUser\x20crm',']\x20using\x20admin\x20profile','POST','user','endUserNumber','System','],\x20EndUser\x20schema','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','endUserId','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','forEach','includes','string','picklist','type','nameField','content','toString','toLowerCase','variable','idField','customField','variableName','Variable','name',']\x20getTicket\x20input\x20crm','outbound','Subjects','getString','Descriptions'];(function(_0xa4b4a9,_0x310580){var _0x195ee7=function(_0x28459e){while(--_0x28459e){_0xa4b4a9['push'](_0xa4b4a9['shift']());}};_0x195ee7(++_0x310580);}(_0x23e4,0x179));var _0x423e=function(_0x43a6b6,_0xb4866c){_0x43a6b6=_0x43a6b6-0x0;var _0x494edb=_0x23e4[_0x43a6b6];return _0x494edb;};'use strict';var _=require(_0x423e('0x0'));var Promise=require('bluebird');var rp=require('request-promise');var util=require(_0x423e('0x1'));var md5=require(_0x423e('0x2'));var Redis=require(_0x423e('0x3'));var intUtil=require(_0x423e('0x4'));var config=require(_0x423e('0x5'));var logger=require(_0x423e('0x6'))(_0x423e('0x7'));config[_0x423e('0x8')]=_[_0x423e('0x9')](config['redis'],{'host':_0x423e('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x423e('0x8')]));function getAdminUser(_0x10cedd,_0x3e2dbf,_0x3fb0f9,_0x440ce7,_0x2845ad,_0x2bc23a){return new Promise(function(_0x2402e4,_0x129d88){var _0x17f3f8={'method':'GET','uri':_0x440ce7+_0x423e('0xb')+'&'+_0x2845ad+'&'+_0x2bc23a,'auth':_0x3e2dbf,'json':!![]};return rp(_0x17f3f8)[_0x423e('0xc')](function(_0x28ba47){if(_0x28ba47['result']['length']>0x0){_0x3fb0f9['adminId']=_0x28ba47[_0x423e('0xd')][0x0][_0x423e('0xe')];}logger['info']('['+[_0x10cedd['toUpperCase']()]+_0x423e('0xf'),_0x3fb0f9);_0x2402e4(_0x3fb0f9);})[_0x423e('0x10')](function(_0x4e8627){logger[_0x423e('0x11')]('['+[_0x10cedd[_0x423e('0x12')]()]+']',_0x4e8627['message']);_0x129d88(_0x4e8627[_0x423e('0x13')]);});});}function getUser(_0x3eb729,_0xf807d8,_0x5c4f2d,_0x3eb7c3,_0x4af64c){return function(_0x58daea){logger[_0x423e('0x14')]('['+[_0x3eb729[_0x423e('0x12')]()]+'],\x20getUser\x20input\x20crm',_0x58daea);return new Promise(function(_0x3ad4d5,_0x90f39c){if(intUtil[_0x423e('0x15')](_0x58daea[_0x423e('0x16')])){var _0x14970b={'method':_0x423e('0x17'),'uri':_0x5c4f2d+_0x423e('0x18')+_0x58daea[_0x423e('0x16')]+'&'+_0x3eb7c3+'&'+_0x4af64c,'auth':_0xf807d8,'json':!![]};logger[_0x423e('0x14')]('['+[_0x3eb729['toUpperCase']()]+'],\x20getUser\x20rp\x20obj',_0x14970b);return rp(_0x14970b)[_0x423e('0xc')](function(_0xeb93d8){logger[_0x423e('0x14')]('['+[_0x3eb729['toUpperCase']()]+_0x423e('0x19'),_0xeb93d8);if(_0xeb93d8[_0x423e('0xd')][_0x423e('0x1a')]>0x0&&String(_0xeb93d8[_0x423e('0xd')][0x0]['active'])===_0x423e('0x1b')){_0x58daea[_0x423e('0x1c')]=_0xeb93d8['result'][0x0][_0x423e('0xe')];}else{_0x58daea[_0x423e('0x1c')]=_0x58daea[_0x423e('0x1d')];_0x58daea[_0x423e('0x16')]=_0x58daea[_0x423e('0x1e')];}logger[_0x423e('0x14')]('['+[_0x3eb729[_0x423e('0x12')]()]+_0x423e('0x1f'),_0x58daea);_0x3ad4d5(_0x58daea);})[_0x423e('0x10')](function(_0x4b8d6e){logger[_0x423e('0x11')]('['+[_0x3eb729[_0x423e('0x12')]()]+']',_0x4b8d6e[_0x423e('0x13')]);_0x90f39c(_0x4b8d6e[_0x423e('0x13')]);});}else{logger['info']('['+[_0x3eb729[_0x423e('0x12')]()]+_0x423e('0x20'));_0x58daea[_0x423e('0x1c')]=_0x58daea[_0x423e('0x1d')];_0x58daea[_0x423e('0x16')]=_0x58daea[_0x423e('0x1e')];_0x3ad4d5(_0x58daea);}});};}function createEndUser(_0x329b2b,_0x7d5ce7,_0x59560c,_0x35456c,_0x168324){logger[_0x423e('0x14')]('['+[_0x329b2b['toUpperCase']()]+'],\x20createEndUser\x20input\x20crm',_0x59560c);return new Promise(function(_0x19f2be,_0x3a285e){var _0x3c182f={'method':_0x423e('0x21'),'uri':_0x35456c+'sys_user?'+_0x168324,'body':{'user_name':_0x59560c['endUserNumber'],'roles':_0x423e('0x22'),'first_name':_0x59560c[_0x423e('0x23')],'active':_0x423e('0x1b'),'date_format':_0x423e('0x24'),'phone':_0x59560c[_0x423e('0x23')]},'auth':_0x7d5ce7,'json':!![]};return rp(_0x3c182f)['then'](function(_0x201091){logger[_0x423e('0x14')]('['+[_0x329b2b[_0x423e('0x12')]()]+_0x423e('0x25'),_0x201091[_0x423e('0xd')]);_0x59560c['endUserId']=_0x201091[_0x423e('0xd')][_0x423e('0xe')];_0x19f2be(_0x59560c);})[_0x423e('0x10')](function(_0x59a8ec){logger['error']('['+[_0x329b2b[_0x423e('0x12')]()]+']',_0x59a8ec[_0x423e('0x13')]);_0x3a285e(_0x59a8ec[_0x423e('0x13')]);});});}function getEndUser(_0x5c05b4,_0xc44fe3,_0x270f1a,_0x9e02be,_0x192f66){return function(_0x58a1b4){logger[_0x423e('0x14')]('['+[_0x5c05b4['toUpperCase']()]+_0x423e('0x26'),_0x58a1b4);return new Promise(function(_0x1e460a,_0x4364d9){var _0x19f001={'method':_0x423e('0x17'),'uri':_0x270f1a+_0x423e('0x27')+_0x58a1b4[_0x423e('0x23')]+'&'+_0x9e02be+'&'+_0x192f66,'auth':_0xc44fe3,'json':!![]};return rp(_0x19f001)[_0x423e('0xc')](function(_0x21ef03){if(_0x21ef03['result']['length']>0x0){_0x58a1b4[_0x423e('0x28')]=_0x21ef03[_0x423e('0xd')][0x0][_0x423e('0xe')];logger[_0x423e('0x14')]('['+[_0x5c05b4[_0x423e('0x12')]()]+_0x423e('0x29'),_0x58a1b4);_0x1e460a(_0x58a1b4);}else{return createEndUser(_0x5c05b4,_0xc44fe3,_0x58a1b4,_0x270f1a,_0x9e02be)[_0x423e('0xc')](function(_0xdb1c13){logger['info']('['+[_0x5c05b4[_0x423e('0x12')]()]+_0x423e('0x2a'),_0xdb1c13);_0x1e460a(_0xdb1c13);});}})[_0x423e('0x10')](function(_0xa850a0){logger['error']('['+[_0x5c05b4[_0x423e('0x12')]()]+']',_0xa850a0['message']);_0x4364d9(_0xa850a0[_0x423e('0x13')]);});});};}function getCustomFields(_0x4f03fb,_0x320194){var _0x261756={};if(_0x4f03fb[_0x423e('0x1a')]>0x0){_[_0x423e('0x2b')](_0x4f03fb,function(_0x3a62f6){if(_[_0x423e('0x2c')]([_0x423e('0x2d'),_0x423e('0x2e')],_0x3a62f6[_0x423e('0x2f')])&&_0x3a62f6[_0x423e('0x30')]&&!_0x3a62f6['customField']){_0x261756[_0x3a62f6['nameField']['toLowerCase']()]=_0x3a62f6[_0x423e('0x31')][_0x423e('0x32')]();}else if(_[_0x423e('0x2c')]([_0x423e('0x2d'),_0x423e('0x2e')],_0x3a62f6[_0x423e('0x2f')])&&_0x3a62f6['idField']&&_0x3a62f6['customField']){_0x261756[_0x3a62f6['idField'][_0x423e('0x33')]()]=_0x3a62f6['content'][_0x423e('0x32')]();}else if(_0x3a62f6['type']===_0x423e('0x34')&&_0x3a62f6['variableName']&&_0x3a62f6[_0x423e('0x35')]&&_0x3a62f6[_0x423e('0x36')]){_0x261756[_0x3a62f6[_0x423e('0x35')]['toLowerCase']()]=_0x320194[_0x3a62f6[_0x423e('0x37')]][_0x423e('0x32')]();}else if(_0x3a62f6['type']==='customVariable'&&_0x3a62f6['Variable']&&_0x3a62f6[_0x423e('0x38')][_0x423e('0x39')]&&_0x3a62f6[_0x423e('0x35')]&&_0x3a62f6[_0x423e('0x36')]){_0x261756[_0x3a62f6[_0x423e('0x35')]['toLowerCase']()]=_0x320194[_0x3a62f6[_0x423e('0x38')][_0x423e('0x39')][_0x423e('0x33')]()][_0x423e('0x32')]();}});}return _0x261756;}function getTicket(_0x431d70,_0x114e8b,_0x364f0b,_0x588d3d,_0x3ac5a7,_0x4ff453){return function(_0x317440){logger[_0x423e('0x14')]('['+[_0x431d70[_0x423e('0x12')]()]+_0x423e('0x3a'),_0x317440);return new Promise(function(_0x4a490c,_0x1abb6f){var _0x5231cd=_0x431d70['toLowerCase']()===_0x423e('0x3b')?_0x317440[_0x423e('0x1c')]:_0x317440[_0x423e('0x28')];var _0x3348e8={'method':'POST','uri':_0x364f0b+'incident'+'?'+_0x4ff453,'body':Object['assign']({},{'active':_0x423e('0x1b'),'caller_id':_0x5231cd,'assigned_to':_0x317440[_0x423e('0x1c')],'short_description':intUtil['getString'](_0x588d3d[_0x423e('0x3c')],_0x3ac5a7,'\x20'),'description':intUtil[_0x423e('0x3d')](_0x588d3d[_0x423e('0x3e')],_0x3ac5a7,'\x0a')},getCustomFields(_0x588d3d[_0x423e('0x3f')],_0x3ac5a7)),'auth':_0x114e8b,'json':!![]};return rp(_0x3348e8)['then'](function(_0x4b98c2){logger[_0x423e('0x14')]('['+[_0x431d70[_0x423e('0x12')]()]+']\x20POST\x20incident\x20entity\x20schema',_0x4b98c2[_0x423e('0xd')]);_0x317440[_0x423e('0x40')]=_0x4b98c2[_0x423e('0xd')][_0x423e('0xe')];_0x317440[_0x423e('0x41')]=_0x4b98c2['result'][_0x423e('0x42')];logger[_0x423e('0x14')]('['+[_0x431d70[_0x423e('0x12')]()]+_0x423e('0x43'),_0x317440);_0x4a490c(_0x317440);})[_0x423e('0x10')](function(_0xe2611d){logger[_0x423e('0x11')]('['+[_0x431d70[_0x423e('0x12')]()]+']',_0xe2611d[_0x423e('0x13')]);_0x1abb6f(_0xe2611d[_0x423e('0x13')]);});});};}function createRemoteTag(_0x1e4d74,_0x829b5d,_0x2cfd3c,_0x5cb9a8){return new Promise(function(_0x4b8724,_0x546ce8){var _0x4a3c42={'method':'POST','uri':_0x2cfd3c+_0x423e('0x44')+'?'+_0x5cb9a8,'body':{'short_description':_0x1e4d74,'global':!![],'active':!![],'name':_0x1e4d74},'auth':_0x829b5d,'json':!![]};return rp(_0x4a3c42)[_0x423e('0xc')](function(_0x42262c){var _0x366d11=_0x42262c[_0x423e('0xd')][_0x423e('0xe')];_0x4b8724(_0x366d11);});});}function getRemoteTag(_0x61e93c,_0x2c01b1,_0x15c214,_0x49670a,_0x6e0a4d){return new Promise(function(_0x3918ec,_0x411466){var _0x2c3f75={'method':_0x423e('0x17'),'uri':_0x15c214+_0x423e('0x44')+_0x423e('0x45')+_0x61e93c+'&'+_0x49670a,'auth':_0x2c01b1,'json':!![]};return rp(_0x2c3f75)[_0x423e('0xc')](function(_0xd20f8a){if(_0xd20f8a['result'][_0x423e('0x1a')]>0x0){var _0x4f8761=_0xd20f8a[_0x423e('0xd')][0x0][_0x423e('0xe')];_0x3918ec(_0x4f8761);}else{return createRemoteTag(_0x61e93c,_0x2c01b1,_0x15c214,_0x49670a)[_0x423e('0xc')](function(_0x4c609f){_0x3918ec(_0x4c609f);});}});});}function assignTagToIncident(_0x417029,_0x4ff902,_0x57f05e,_0x15e92c,_0x22ccc4){return new Promise(function(_0x3a66ae,_0x427f21){var _0x4be2db={'method':_0x423e('0x21'),'uri':_0x57f05e+_0x423e('0x46')+'?'+_0x22ccc4,'body':{'label':_0x417029,'table':_0x423e('0x47'),'id_type':'Incident','table_key':_0x15e92c['ticketId'],'title':_0x423e('0x48')+_0x15e92c['ticketNumber'],'id_display':_0x15e92c[_0x423e('0x41')]},'auth':_0x4ff902,'json':!![]};return rp(_0x4be2db)[_0x423e('0xc')](function(_0xb53e95){_0x3a66ae();})[_0x423e('0x10')](function(){_0x3a66ae();});});}function manageTags(_0x4d3590,_0x34e265,_0x421146,_0x1c483b,_0x432b50,_0x264857,_0x25aa74){return new Promise(function(_0x304ac0,_0x42778a){var _0x3b795c=[];_0x34e265[_0x423e('0x2b')](function(_0x232a83){_0x3b795c[_0x423e('0x49')](getRemoteTag(_0x232a83,_0x421146,_0x1c483b,_0x264857,_0x25aa74));});return Promise[_0x423e('0x4a')](_0x3b795c)['then'](function(_0x27a78c){if(_0x27a78c[_0x423e('0x1a')]){logger[_0x423e('0x14')]('['+[_0x4d3590['toUpperCase']()]+_0x423e('0x4b'),_0x27a78c);var _0x4131fa=[];_0x27a78c[_0x423e('0x2b')](function(_0x42341c){_0x4131fa[_0x423e('0x49')](assignTagToIncident(_0x42341c,_0x421146,_0x1c483b,_0x432b50,_0x264857));});return Promise[_0x423e('0x4a')](_0x4131fa)[_0x423e('0xc')](function(){_0x304ac0();})[_0x423e('0x10')](function(){_0x304ac0();});}else{_0x304ac0();}});});}function getTags(_0x55b7cf,_0x4245f4,_0x17d852,_0x163703,_0x4f9636,_0x16fc2d){return function(_0x527706){return new Promise(function(_0x568ae5,_0x58066b){var _0x1f3483=[];var _0x45fef8=_0x163703['Tags'];if(_0x45fef8&&_0x45fef8['length']>0x0){_0x1f3483=_['map'](_0x45fef8,_0x423e('0x39'));}if(_0x1f3483[_0x423e('0x1a')]>0x0){return manageTags(_0x55b7cf,_0x1f3483,_0x4245f4,_0x17d852,_0x527706,_0x4f9636,_0x16fc2d)[_0x423e('0xc')](function(){_0x568ae5(_0x527706);});}else{_0x568ae5(_0x527706);}});};}function emit(_0x4d9f21,_0x587022,_0x51720e){var _0x26a226=_0x423e('0x4c')+_0x423e('0x4d')+_0x423e('0x4e')+_0x423e('0x4f');var _0x58da24={'uri':_0x4d9f21+_0x423e('0x50')+_0x51720e+_0x26a226};io['to'](util[_0x423e('0x51')]('user:%s',_0x587022))[_0x423e('0x52')]('trigger:browser:url',_0x58da24);}exports['cs']=function(_0x326460,_0x395d7b,_0x3b9f7e,_0x361c85,_0x287fbe,_0x4dc626,_0x66c8f2,_0x448755){var _0x1be615={};var _0x1a71eb={'user':_0x4dc626[_0x423e('0x53')],'pass':_0x4dc626[_0x423e('0x54')]};var _0x1b7f2a=_0x423e('0x55');var _0x800791=_0x423e('0x56');_0x4dc626[_0x423e('0x57')]=intUtil[_0x423e('0x58')](_0x4dc626[_0x423e('0x57')]);_0x4dc626['serverUrl']=intUtil[_0x423e('0x58')](_0x4dc626[_0x423e('0x59')]);var _0x210970=util[_0x423e('0x51')](_0x423e('0x5a'),_0x4dc626[_0x423e('0x57')]);_0x1be615[_0x423e('0x16')]=!_[_0x423e('0x5b')](_0x361c85)?_0x361c85['email']:null;_0x1be615[_0x423e('0x1e')]=_0x4dc626[_0x423e('0x5c')];_0x1be615['endUserNumber']=_0x448755[_0x423e('0x33')]()===_0x423e('0x3b')?_0x395d7b[_0x423e('0x5d')]:_0x395d7b[_0x423e('0x5e')];_0x1be615[_0x423e('0x5f')]=_0x448755===_0x423e('0x60')||_0x448755==='unmanaged'?_0x423e('0x60'):_0x423e('0x3b');var _0x4556dc=util[_0x423e('0x51')](_0x423e('0x61'),_0x4dc626[_0x423e('0x59')],_0x395d7b[_0x423e('0x62')],md5(_0x395d7b[_0x423e('0x62')]));if(_0x287fbe&&_0x287fbe[_0x423e('0x63')]){logger[_0x423e('0x14')](_0x423e('0x64'),'Recording\x20is\x20enabled!');_0x395d7b[_0x423e('0x65')]=_0x4556dc;}else if(_0x66c8f2&&_0x66c8f2['recordingFormat']&&_0x66c8f2[_0x423e('0x66')]!=='none'){logger[_0x423e('0x14')](_0x423e('0x67'),_0x423e('0x68'));_0x395d7b['recordingURL']=_0x4556dc;}else{_0x395d7b['recordingURL']='';}return getAdminUser(_0x448755,_0x1a71eb,_0x1be615,_0x210970,_0x800791,_0x1b7f2a)[_0x423e('0xc')](getUser(_0x448755,_0x1a71eb,_0x210970,_0x800791,_0x1b7f2a))[_0x423e('0xc')](getEndUser(_0x448755,_0x1a71eb,_0x210970,_0x800791,_0x1b7f2a))[_0x423e('0xc')](getTicket(_0x448755,_0x1a71eb,_0x210970,_0x3b9f7e,_0x395d7b,_0x800791))[_0x423e('0xc')](function(_0x126088){logger[_0x423e('0x14')](util[_0x423e('0x51')](_0x423e('0x69'),_0x126088['ticketId']));logger[_0x423e('0x14')](util[_0x423e('0x51')]('call\x20direction:\x20%s',_0x448755));if(_0x448755!==_0x423e('0x6a')){logger['info']('['+[_0x448755[_0x423e('0x12')]()]+']',_0x423e('0x6b'));emit(_0x4dc626[_0x423e('0x57')],_0x361c85['name'],_0x126088[_0x423e('0x40')]);}})[_0x423e('0x10')](function(_0x1e7805){logger[_0x423e('0x11')]('['+[_0x448755[_0x423e('0x12')]()]+_0x423e('0x6c'),util[_0x423e('0x6d')](_0x1e7805,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xd8e7=['The\x20ticket\x20ID\x20is:\x20%s','call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','inspect','lodash','bluebird','request-promise','util','./util','../../../../config/environment','../../../../config/logger','servicenow','defaults','redis','localhost','socket.io-emitter','GET','result','length','sys_id','info','toUpperCase','catch','error','message','],\x20getUser\x20input\x20crm','validateEmail','userEmail','sys_user?sysparm_query=email%3D','then','],\x20getUser\x20entity','true','userId','adminId','adminEmail','],\x20getUser\x20crm','],\x20createEndUser\x20input\x20crm','POST','sys_user?','endUserNumber','user','System','endUserId','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','],\x20createEndUser\x20crm','forEach','string','picklist','type','nameField','customField','toLowerCase','content','toString','includes','idField','variable','variableName','customVariable','Variable','name','outbound','incident','assign','Subjects','getString','Fields','ticketId','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','label_entry','Incident','Incident\x20-\x20','ticketNumber','push','all','Tags','map','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','/nav_to.do?uri=incident.do?sys_id%3D','user:%s','username','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','stripTrailingSlash','serverUrl','format','%s/api/now/table/','isNil','email','destcalleridnum','calleridnum','queue','unmanaged','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]'];(function(_0xb5c98a,_0x4ded2e){var _0x223dfc=function(_0x6a60e5){while(--_0x6a60e5){_0xb5c98a['push'](_0xb5c98a['shift']());}};_0x223dfc(++_0x4ded2e);}(_0xd8e7,0xde));var _0x7d8e=function(_0x4a3632,_0x5df478){_0x4a3632=_0x4a3632-0x0;var _0x261c9a=_0xd8e7[_0x4a3632];return _0x261c9a;};'use strict';var _=require(_0x7d8e('0x0'));var Promise=require(_0x7d8e('0x1'));var rp=require(_0x7d8e('0x2'));var util=require(_0x7d8e('0x3'));var md5=require('md5');var Redis=require('ioredis');var intUtil=require(_0x7d8e('0x4'));var config=require(_0x7d8e('0x5'));var logger=require(_0x7d8e('0x6'))(_0x7d8e('0x7'));config['redis']=_[_0x7d8e('0x8')](config[_0x7d8e('0x9')],{'host':_0x7d8e('0xa'),'port':0x18eb});var io=require(_0x7d8e('0xb'))(new Redis(config[_0x7d8e('0x9')]));function getAdminUser(_0x2da2e5,_0x1a0ec8,_0x5118af,_0x2b6096,_0x445cab,_0x12cb14){return new Promise(function(_0xa8314e,_0x2686a0){var _0x1d0f2f={'method':_0x7d8e('0xc'),'uri':_0x2b6096+'sys_user?sysparm_query=user_name%3Dadmin'+'&'+_0x445cab+'&'+_0x12cb14,'auth':_0x1a0ec8,'json':!![]};return rp(_0x1d0f2f)['then'](function(_0x4c9e97){if(_0x4c9e97[_0x7d8e('0xd')][_0x7d8e('0xe')]>0x0){_0x5118af['adminId']=_0x4c9e97[_0x7d8e('0xd')][0x0][_0x7d8e('0xf')];}logger[_0x7d8e('0x10')]('['+[_0x2da2e5[_0x7d8e('0x11')]()]+'],\x20getAdminUser\x20crm',_0x5118af);_0xa8314e(_0x5118af);})[_0x7d8e('0x12')](function(_0x53deb2){logger[_0x7d8e('0x13')]('['+[_0x2da2e5[_0x7d8e('0x11')]()]+']',_0x53deb2[_0x7d8e('0x14')]);_0x2686a0(_0x53deb2[_0x7d8e('0x14')]);});});}function getUser(_0x2eb753,_0x3619d1,_0x5eaa75,_0x50bf75,_0x4a84ac){return function(_0x45a7cd){logger['info']('['+[_0x2eb753[_0x7d8e('0x11')]()]+_0x7d8e('0x15'),_0x45a7cd);return new Promise(function(_0x1041c3,_0x5c132d){if(intUtil[_0x7d8e('0x16')](_0x45a7cd[_0x7d8e('0x17')])){var _0x5e466e={'method':_0x7d8e('0xc'),'uri':_0x5eaa75+_0x7d8e('0x18')+_0x45a7cd[_0x7d8e('0x17')]+'&'+_0x50bf75+'&'+_0x4a84ac,'auth':_0x3619d1,'json':!![]};logger['info']('['+[_0x2eb753[_0x7d8e('0x11')]()]+'],\x20getUser\x20rp\x20obj',_0x5e466e);return rp(_0x5e466e)[_0x7d8e('0x19')](function(_0x55c5d8){logger['info']('['+[_0x2eb753[_0x7d8e('0x11')]()]+_0x7d8e('0x1a'),_0x55c5d8);if(_0x55c5d8[_0x7d8e('0xd')][_0x7d8e('0xe')]>0x0&&String(_0x55c5d8[_0x7d8e('0xd')][0x0]['active'])===_0x7d8e('0x1b')){_0x45a7cd[_0x7d8e('0x1c')]=_0x55c5d8['result'][0x0][_0x7d8e('0xf')];}else{_0x45a7cd[_0x7d8e('0x1c')]=_0x45a7cd[_0x7d8e('0x1d')];_0x45a7cd[_0x7d8e('0x17')]=_0x45a7cd[_0x7d8e('0x1e')];}logger['info']('['+[_0x2eb753[_0x7d8e('0x11')]()]+_0x7d8e('0x1f'),_0x45a7cd);_0x1041c3(_0x45a7cd);})[_0x7d8e('0x12')](function(_0x537acb){logger['error']('['+[_0x2eb753[_0x7d8e('0x11')]()]+']',_0x537acb[_0x7d8e('0x14')]);_0x5c132d(_0x537acb[_0x7d8e('0x14')]);});}else{logger[_0x7d8e('0x10')]('['+[_0x2eb753[_0x7d8e('0x11')]()]+']\x20using\x20admin\x20profile');_0x45a7cd['userId']=_0x45a7cd[_0x7d8e('0x1d')];_0x45a7cd[_0x7d8e('0x17')]=_0x45a7cd['adminEmail'];_0x1041c3(_0x45a7cd);}});};}function createEndUser(_0x40a4b9,_0x30f6da,_0x511b1d,_0x180906,_0x314209){logger['info']('['+[_0x40a4b9[_0x7d8e('0x11')]()]+_0x7d8e('0x20'),_0x511b1d);return new Promise(function(_0x2fe799,_0x44a9cb){var _0x3871f6={'method':_0x7d8e('0x21'),'uri':_0x180906+_0x7d8e('0x22')+_0x314209,'body':{'user_name':_0x511b1d[_0x7d8e('0x23')],'roles':_0x7d8e('0x24'),'first_name':_0x511b1d['endUserNumber'],'active':_0x7d8e('0x1b'),'date_format':_0x7d8e('0x25'),'phone':_0x511b1d['endUserNumber']},'auth':_0x30f6da,'json':!![]};return rp(_0x3871f6)['then'](function(_0x1c2210){logger[_0x7d8e('0x10')]('['+[_0x40a4b9['toUpperCase']()]+'],\x20EndUser\x20schema',_0x1c2210[_0x7d8e('0xd')]);_0x511b1d[_0x7d8e('0x26')]=_0x1c2210[_0x7d8e('0xd')][_0x7d8e('0xf')];_0x2fe799(_0x511b1d);})[_0x7d8e('0x12')](function(_0x4deebd){logger[_0x7d8e('0x13')]('['+[_0x40a4b9[_0x7d8e('0x11')]()]+']',_0x4deebd[_0x7d8e('0x14')]);_0x44a9cb(_0x4deebd[_0x7d8e('0x14')]);});});}function getEndUser(_0x53d999,_0x1fc703,_0x56d755,_0x343196,_0x28a165){return function(_0x237a8f){logger['info']('['+[_0x53d999['toUpperCase']()]+_0x7d8e('0x27'),_0x237a8f);return new Promise(function(_0x1ffa1f,_0x472725){var _0x4d6fba={'method':_0x7d8e('0xc'),'uri':_0x56d755+_0x7d8e('0x28')+_0x237a8f[_0x7d8e('0x23')]+'&'+_0x343196+'&'+_0x28a165,'auth':_0x1fc703,'json':!![]};return rp(_0x4d6fba)['then'](function(_0x363346){if(_0x363346['result'][_0x7d8e('0xe')]>0x0){_0x237a8f['endUserId']=_0x363346[_0x7d8e('0xd')][0x0][_0x7d8e('0xf')];logger[_0x7d8e('0x10')]('['+[_0x53d999[_0x7d8e('0x11')]()]+'],\x20getEndUser\x20crm',_0x237a8f);_0x1ffa1f(_0x237a8f);}else{return createEndUser(_0x53d999,_0x1fc703,_0x237a8f,_0x56d755,_0x343196)['then'](function(_0xc14490){logger[_0x7d8e('0x10')]('['+[_0x53d999[_0x7d8e('0x11')]()]+_0x7d8e('0x29'),_0xc14490);_0x1ffa1f(_0xc14490);});}})[_0x7d8e('0x12')](function(_0x23d826){logger['error']('['+[_0x53d999[_0x7d8e('0x11')]()]+']',_0x23d826[_0x7d8e('0x14')]);_0x472725(_0x23d826[_0x7d8e('0x14')]);});});};}function getCustomFields(_0x324aa4,_0x3749ed){var _0x1ff095={};if(_0x324aa4[_0x7d8e('0xe')]>0x0){_[_0x7d8e('0x2a')](_0x324aa4,function(_0x3c429c){if(_['includes']([_0x7d8e('0x2b'),_0x7d8e('0x2c')],_0x3c429c[_0x7d8e('0x2d')])&&_0x3c429c[_0x7d8e('0x2e')]&&!_0x3c429c[_0x7d8e('0x2f')]){_0x1ff095[_0x3c429c[_0x7d8e('0x2e')][_0x7d8e('0x30')]()]=_0x3c429c[_0x7d8e('0x31')][_0x7d8e('0x32')]();}else if(_[_0x7d8e('0x33')]([_0x7d8e('0x2b'),_0x7d8e('0x2c')],_0x3c429c[_0x7d8e('0x2d')])&&_0x3c429c['idField']&&_0x3c429c['customField']){_0x1ff095[_0x3c429c[_0x7d8e('0x34')][_0x7d8e('0x30')]()]=_0x3c429c[_0x7d8e('0x31')][_0x7d8e('0x32')]();}else if(_0x3c429c['type']===_0x7d8e('0x35')&&_0x3c429c[_0x7d8e('0x36')]&&_0x3c429c[_0x7d8e('0x34')]&&_0x3c429c[_0x7d8e('0x2f')]){_0x1ff095[_0x3c429c[_0x7d8e('0x34')][_0x7d8e('0x30')]()]=_0x3749ed[_0x3c429c[_0x7d8e('0x36')]]['toString']();}else if(_0x3c429c['type']===_0x7d8e('0x37')&&_0x3c429c[_0x7d8e('0x38')]&&_0x3c429c['Variable'][_0x7d8e('0x39')]&&_0x3c429c['idField']&&_0x3c429c['customField']){_0x1ff095[_0x3c429c[_0x7d8e('0x34')][_0x7d8e('0x30')]()]=_0x3749ed[_0x3c429c['Variable']['name'][_0x7d8e('0x30')]()][_0x7d8e('0x32')]();}});}return _0x1ff095;}function getTicket(_0x36c3ec,_0x434ec2,_0x109ea5,_0x4a0fdd,_0x51f9bc,_0xd1df0c){return function(_0xb80bad){logger[_0x7d8e('0x10')]('['+[_0x36c3ec['toUpperCase']()]+']\x20getTicket\x20input\x20crm',_0xb80bad);return new Promise(function(_0x44b0ba,_0x2510ed){var _0x962072=_0x36c3ec[_0x7d8e('0x30')]()===_0x7d8e('0x3a')?_0xb80bad[_0x7d8e('0x1c')]:_0xb80bad[_0x7d8e('0x26')];var _0x200739={'method':_0x7d8e('0x21'),'uri':_0x109ea5+_0x7d8e('0x3b')+'?'+_0xd1df0c,'body':Object[_0x7d8e('0x3c')]({},{'active':_0x7d8e('0x1b'),'caller_id':_0x962072,'assigned_to':_0xb80bad[_0x7d8e('0x1c')],'short_description':intUtil['getString'](_0x4a0fdd[_0x7d8e('0x3d')],_0x51f9bc,'\x20'),'description':intUtil[_0x7d8e('0x3e')](_0x4a0fdd['Descriptions'],_0x51f9bc,'\x0a')},getCustomFields(_0x4a0fdd[_0x7d8e('0x3f')],_0x51f9bc)),'auth':_0x434ec2,'json':!![]};return rp(_0x200739)[_0x7d8e('0x19')](function(_0x347d4a){logger[_0x7d8e('0x10')]('['+[_0x36c3ec[_0x7d8e('0x11')]()]+']\x20POST\x20incident\x20entity\x20schema',_0x347d4a['result']);_0xb80bad[_0x7d8e('0x40')]=_0x347d4a['result'][_0x7d8e('0xf')];_0xb80bad['ticketNumber']=_0x347d4a[_0x7d8e('0xd')][_0x7d8e('0x41')];logger[_0x7d8e('0x10')]('['+[_0x36c3ec[_0x7d8e('0x11')]()]+_0x7d8e('0x42'),_0xb80bad);_0x44b0ba(_0xb80bad);})['catch'](function(_0x1c1e7b){logger['error']('['+[_0x36c3ec[_0x7d8e('0x11')]()]+']',_0x1c1e7b[_0x7d8e('0x14')]);_0x2510ed(_0x1c1e7b[_0x7d8e('0x14')]);});});};}function createRemoteTag(_0x446bfa,_0x47b3cd,_0x16380c,_0x37d53b){return new Promise(function(_0x53d14f,_0x5dee71){var _0x5f08ce={'method':_0x7d8e('0x21'),'uri':_0x16380c+'label'+'?'+_0x37d53b,'body':{'short_description':_0x446bfa,'global':!![],'active':!![],'name':_0x446bfa},'auth':_0x47b3cd,'json':!![]};return rp(_0x5f08ce)['then'](function(_0x10c3e6){var _0x3cd4f6=_0x10c3e6['result']['sys_id'];_0x53d14f(_0x3cd4f6);});});}function getRemoteTag(_0x11cdad,_0x13ac21,_0x161308,_0x81266b,_0x42db3a){return new Promise(function(_0x3fe94b,_0x277e22){var _0x1329bc={'method':_0x7d8e('0xc'),'uri':_0x161308+_0x7d8e('0x43')+_0x7d8e('0x44')+_0x11cdad+'&'+_0x81266b,'auth':_0x13ac21,'json':!![]};return rp(_0x1329bc)[_0x7d8e('0x19')](function(_0x12faf3){if(_0x12faf3[_0x7d8e('0xd')]['length']>0x0){var _0x5b3999=_0x12faf3['result'][0x0]['sys_id'];_0x3fe94b(_0x5b3999);}else{return createRemoteTag(_0x11cdad,_0x13ac21,_0x161308,_0x81266b)[_0x7d8e('0x19')](function(_0xcd5688){_0x3fe94b(_0xcd5688);});}});});}function assignTagToIncident(_0x305ed1,_0x3d1cde,_0x29515f,_0x107e6a,_0x5c292a){return new Promise(function(_0x391191,_0x1816e4){var _0xb9d9eb={'method':'POST','uri':_0x29515f+_0x7d8e('0x45')+'?'+_0x5c292a,'body':{'label':_0x305ed1,'table':_0x7d8e('0x3b'),'id_type':_0x7d8e('0x46'),'table_key':_0x107e6a['ticketId'],'title':_0x7d8e('0x47')+_0x107e6a[_0x7d8e('0x48')],'id_display':_0x107e6a[_0x7d8e('0x48')]},'auth':_0x3d1cde,'json':!![]};return rp(_0xb9d9eb)['then'](function(_0x58aab5){_0x391191();})['catch'](function(){_0x391191();});});}function manageTags(_0x128eb9,_0x26fd10,_0x1dbde9,_0x31f09b,_0x4a9223,_0x99c4cb,_0x548106){return new Promise(function(_0x3ba444,_0x2e4216){var _0x5eb47c=[];_0x26fd10['forEach'](function(_0x4b2542){_0x5eb47c[_0x7d8e('0x49')](getRemoteTag(_0x4b2542,_0x1dbde9,_0x31f09b,_0x99c4cb,_0x548106));});return Promise['all'](_0x5eb47c)[_0x7d8e('0x19')](function(_0x474665){if(_0x474665[_0x7d8e('0xe')]){logger['info']('['+[_0x128eb9[_0x7d8e('0x11')]()]+']\x20arrayPromises:\x20IDs\x20in\x20table\x20label',_0x474665);var _0x290ed9=[];_0x474665[_0x7d8e('0x2a')](function(_0x1419a2){_0x290ed9[_0x7d8e('0x49')](assignTagToIncident(_0x1419a2,_0x1dbde9,_0x31f09b,_0x4a9223,_0x99c4cb));});return Promise[_0x7d8e('0x4a')](_0x290ed9)[_0x7d8e('0x19')](function(){_0x3ba444();})[_0x7d8e('0x12')](function(){_0x3ba444();});}else{_0x3ba444();}});});}function getTags(_0x1bd832,_0x4c7685,_0x5527e5,_0xf0e116,_0x57dc1b,_0x39cad5){return function(_0x370889){return new Promise(function(_0x2ecb5b,_0x5ccc36){var _0x57ece8=[];var _0x1b64c5=_0xf0e116[_0x7d8e('0x4b')];if(_0x1b64c5&&_0x1b64c5[_0x7d8e('0xe')]>0x0){_0x57ece8=_[_0x7d8e('0x4c')](_0x1b64c5,_0x7d8e('0x39'));}if(_0x57ece8[_0x7d8e('0xe')]>0x0){return manageTags(_0x1bd832,_0x57ece8,_0x4c7685,_0x5527e5,_0x370889,_0x57dc1b,_0x39cad5)['then'](function(){_0x2ecb5b(_0x370889);});}else{_0x2ecb5b(_0x370889);}});};}function emit(_0x38c05f,_0x1af2d4,_0x95b1ae){var _0x56baae=_0x7d8e('0x4d')+_0x7d8e('0x4e')+_0x7d8e('0x4f')+_0x7d8e('0x50');var _0x3d0300={'uri':_0x38c05f+_0x7d8e('0x51')+_0x95b1ae+_0x56baae};io['to'](util['format'](_0x7d8e('0x52'),_0x1af2d4))['emit']('trigger:browser:url',_0x3d0300);}exports['cs']=function(_0x100ea9,_0x2dc5ca,_0x479c72,_0x262455,_0x50cfb6,_0x4de09f,_0x9148d9,_0x1f7653){var _0x1a25c6={};var _0x5bbb33={'user':_0x4de09f[_0x7d8e('0x53')],'pass':_0x4de09f[_0x7d8e('0x54')]};var _0x39a213=_0x7d8e('0x55');var _0x4a1823=_0x7d8e('0x56');_0x4de09f[_0x7d8e('0x57')]=intUtil[_0x7d8e('0x58')](_0x4de09f[_0x7d8e('0x57')]);_0x4de09f[_0x7d8e('0x59')]=intUtil[_0x7d8e('0x58')](_0x4de09f[_0x7d8e('0x59')]);var _0x1c3b33=util[_0x7d8e('0x5a')](_0x7d8e('0x5b'),_0x4de09f[_0x7d8e('0x57')]);_0x1a25c6[_0x7d8e('0x17')]=!_[_0x7d8e('0x5c')](_0x262455)?_0x262455[_0x7d8e('0x5d')]:null;_0x1a25c6[_0x7d8e('0x1e')]=_0x4de09f[_0x7d8e('0x5d')];_0x1a25c6[_0x7d8e('0x23')]=_0x1f7653['toLowerCase']()===_0x7d8e('0x3a')?_0x2dc5ca[_0x7d8e('0x5e')]:_0x2dc5ca[_0x7d8e('0x5f')];_0x1a25c6['callDirection']=_0x1f7653===_0x7d8e('0x60')||_0x1f7653===_0x7d8e('0x61')?_0x7d8e('0x60'):'outbound';var _0x27a24e=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4de09f[_0x7d8e('0x59')],_0x2dc5ca[_0x7d8e('0x62')],md5(_0x2dc5ca[_0x7d8e('0x62')]));if(_0x50cfb6&&_0x50cfb6[_0x7d8e('0x63')]){logger[_0x7d8e('0x10')](_0x7d8e('0x64'),'Recording\x20is\x20enabled!');_0x2dc5ca[_0x7d8e('0x65')]=_0x27a24e;}else if(_0x9148d9&&_0x9148d9[_0x7d8e('0x66')]&&_0x9148d9['recordingFormat']!==_0x7d8e('0x67')){logger[_0x7d8e('0x10')](_0x7d8e('0x68'),'Recording\x20is\x20enabled!');_0x2dc5ca['recordingURL']=_0x27a24e;}else{_0x2dc5ca[_0x7d8e('0x65')]='';}return getAdminUser(_0x1f7653,_0x5bbb33,_0x1a25c6,_0x1c3b33,_0x4a1823,_0x39a213)[_0x7d8e('0x19')](getUser(_0x1f7653,_0x5bbb33,_0x1c3b33,_0x4a1823,_0x39a213))[_0x7d8e('0x19')](getEndUser(_0x1f7653,_0x5bbb33,_0x1c3b33,_0x4a1823,_0x39a213))['then'](getTicket(_0x1f7653,_0x5bbb33,_0x1c3b33,_0x479c72,_0x2dc5ca,_0x4a1823))[_0x7d8e('0x19')](function(_0x313b7a){logger[_0x7d8e('0x10')](util['format'](_0x7d8e('0x69'),_0x313b7a[_0x7d8e('0x40')]));logger[_0x7d8e('0x10')](util[_0x7d8e('0x5a')](_0x7d8e('0x6a'),_0x1f7653));if(_0x1f7653!==_0x7d8e('0x61')){logger['info']('['+[_0x1f7653[_0x7d8e('0x11')]()]+']',_0x7d8e('0x6b'));emit(_0x4de09f[_0x7d8e('0x57')],_0x262455[_0x7d8e('0x39')],_0x313b7a[_0x7d8e('0x40')]);}})[_0x7d8e('0x12')](function(_0x4be1fb){logger['error']('['+[_0x1f7653[_0x7d8e('0x11')]()]+']\x20Error\x20running\x20ServiceNow\x20integration',util[_0x7d8e('0x6c')](_0x4be1fb,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1db5=['%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridnum','Outbound','users','unmanaged','lastevent','toUpperCase','Inbound','lodash','bluebird','md5','util','ioredis','../../../../config/environment','../../../../config/logger','sugarcrm','defaults','redis','socket.io-emitter','POST','emit','info','assigned_user_id','created_by','description','getString','Descriptions','date_start','slice','replace','duration_hours','duration_minutes','parent_id','parent_type','Contacts','parent_name','direction','length','variableName','idField','set_entry','JSON','stringify','apiKey','toString','base64','get_server_info','isNil','Employees','format','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','name','user_name','entry_list','find','name_value_list','Agent\x20found!','resolve','value','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user_id','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','get_entry_list','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','then','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','first_name','Caller\x20-\x20%s','Enduser\x20created.','debug','[HTTP]','merge','map','forEach','nameField','customField','toLowerCase','content','type','string','push','variable','custom_fields','customVariable','Variable','login','username','password','PLAIN','xCALLY\x20Motion\x20integration','sessionID','Account\x20%d\x20is\x20not\x20valid','set_relationship','queue','remoteUri','serverUrl','stripTrailingSlash','uri','%s/service/v4_1/rest.php','monitor_format','Recording\x20is\x20enabled!','recordingURL','uniqueid','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','Fields','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','contacts','version','charAt','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','catch','error','outbound','recordingFormat','none','[OUTBOUND]'];(function(_0x40359a,_0xcb63b){var _0x5efc0c=function(_0x3517df){while(--_0x3517df){_0x40359a['push'](_0x40359a['shift']());}};_0x5efc0c(++_0xcb63b);}(_0x1db5,0x17f));var _0x51db=function(_0x24dea9,_0x1fb70e){_0x24dea9=_0x24dea9-0x0;var _0x3b26f2=_0x1db5[_0x24dea9];return _0x3b26f2;};'use strict';var _=require(_0x51db('0x0'));var rp=require('request-promise');var BPromise=require(_0x51db('0x1'));var md5=require(_0x51db('0x2'));var util=require(_0x51db('0x3'));var Redis=require(_0x51db('0x4'));var intUtil=require('./util');var config=require(_0x51db('0x5'));var logger=require(_0x51db('0x6'))(_0x51db('0x7'));config['redis']=_[_0x51db('0x8')](config[_0x51db('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0x51db('0xa'))(new Redis(config[_0x51db('0x9')]));var def={'method':_0x51db('0xb'),'json':!![]};function emit(_0x249aad,_0x5ee9e6,_0x2e03c8){io['to'](_0x249aad)[_0x51db('0xc')](_0x5ee9e6,_0x2e03c8);}function getTicket(_0x1df3c5,_0x33a8db,_0x2083cb,_0x349264,_0x514644,_0x108cef,_0x511416,_0x539746){logger[_0x51db('0xd')]('Creating\x20new\x20ticket...');var _0xc62229=new Date();var _0x22c6ac=[{'name':'name','value':intUtil['getString'](_0x349264['Subjects'],_0x514644,'\x20')},{'name':_0x51db('0xe'),'value':_0x33a8db['id']},{'name':_0x51db('0xf'),'value':_0x33a8db['id']},{'name':_0x51db('0x10'),'value':intUtil[_0x51db('0x11')](_0x349264[_0x51db('0x12')],_0x514644,'\x0a')},{'name':_0x51db('0x13'),'value':_0xc62229['toISOString']()[_0x51db('0x14')](0x0,0x13)[_0x51db('0x15')]('T','\x20')},{'name':_0x51db('0x16'),'value':'0'},{'name':_0x51db('0x17'),'value':'15'},{'name':_0x51db('0x18'),'value':_0x2083cb['id']},{'name':_0x51db('0x19'),'value':_0x51db('0x1a')},{'name':_0x51db('0x1b'),'value':_0x2083cb['name']},{'name':_0x51db('0x1c'),'value':_0x539746}];if(_0x108cef[_0x51db('0x1d')]){_['forEach'](_0x108cef,function(_0x372c4b){if(_0x514644[_0x372c4b[_0x51db('0x1e')]]){_0x22c6ac['push']({'name':_0x372c4b[_0x51db('0x1f')],'value':_0x514644[_0x372c4b[_0x51db('0x1e')]]});}});}return request({'form':{'method':_0x51db('0x20'),'input_type':_0x51db('0x21'),'response_type':'JSON','rest_data':JSON[_0x51db('0x22')]({'session':_0x511416['id'],'module_name':'Calls','name_value_list':_0x22c6ac})}});}function getAuth(_0x242254){return util['format']('Basic\x20%s',new Buffer(_0x242254[_0x51db('0x23')]+':X')[_0x51db('0x24')](_0x51db('0x25')));}function getServerInfo(_0x5a763b){return request({'form':{'method':_0x51db('0x26'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0x51db('0x22')]({'session':_0x5a763b['id']})}});}function getUser(_0x3d3dec,_0x6f34b5,_0x1b5f24){if(!_[_0x51db('0x27')](_0x6f34b5)){logger['info']('Getting\x20agent\x20with\x20name',_0x6f34b5);return request({'form':{'method':'get_entry_list','input_type':'JSON','response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'session':_0x1b5f24['id'],'module_name':_0x51db('0x28'),'query':util[_0x51db('0x29')](_0x51db('0x2a'),_0x6f34b5),'order_by':'','offset':'0','select_fields':['id',_0x51db('0x2b'),_0x51db('0x2c')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x1dfe67){if(_0x1dfe67[_0x51db('0x2d')][_0x51db('0x1d')]){var _0x215942=_[_0x51db('0x2e')](_0x1dfe67[_0x51db('0x2d')],function(_0x4d0570){return _0x4d0570[_0x51db('0x2f')][_0x51db('0x2c')]['value']===_0x6f34b5;});if(_0x215942){logger[_0x51db('0xd')](_0x51db('0x30'));return BPromise[_0x51db('0x31')]({'id':_0x215942['name_value_list']['id'][_0x51db('0x32')],'name':_0x215942[_0x51db('0x2f')][_0x51db('0x2b')][_0x51db('0x32')]});}}logger[_0x51db('0xd')](_0x51db('0x33'));return BPromise[_0x51db('0x31')]({'id':_0x1b5f24['name_value_list'][_0x51db('0x34')][_0x51db('0x32')],'name':_0x1b5f24['name_value_list']['user_name'][_0x51db('0x32')]});});}else{logger[_0x51db('0xd')](_0x51db('0x35'));return BPromise[_0x51db('0x31')]({'id':_0x1b5f24[_0x51db('0x2f')][_0x51db('0x34')]['value'],'name':_0x1b5f24['name_value_list'][_0x51db('0x2c')][_0x51db('0x32')]});}}function getEndUser(_0x112e93,_0x4c733c,_0x1544af,_0x289fdd){logger['info']('Searching\x20enduser\x20with\x20phone',_0x1544af);return request({'form':{'method':_0x51db('0x36'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'session':_0x289fdd['id'],'module_name':_0x51db('0x1a'),'query':util[_0x51db('0x29')](_0x51db('0x37'),_0x1544af),'order_by':'','offset':'0','select_fields':['id','name',_0x51db('0x38')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x51db('0x39')](function(_0x39acc8){if(_0x39acc8[_0x51db('0x2d')]['length']){var _0x39ca82=_[_0x51db('0x2e')](_0x39acc8[_0x51db('0x2d')],function(_0x56b345){return _0x56b345[_0x51db('0x2f')][_0x51db('0x38')][_0x51db('0x32')]===_0x1544af;});if(_0x39ca82){logger[_0x51db('0xd')](_0x51db('0x3a'));return BPromise[_0x51db('0x31')]({'id':_0x39ca82[_0x51db('0x2f')]['id'][_0x51db('0x32')],'name':_0x39ca82[_0x51db('0x2f')][_0x51db('0x2b')][_0x51db('0x32')],'phone':_0x39ca82[_0x51db('0x2f')][_0x51db('0x38')]['value']});}}else{logger[_0x51db('0xd')](_0x51db('0x3b'));return request({'form':{'method':_0x51db('0x20'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'session':_0x289fdd['id'],'module_name':'Contacts','name_value_list':[{'name':_0x51db('0x3c'),'value':_0x4c733c!=='<unknown>'?_0x4c733c:util[_0x51db('0x29')](_0x51db('0x3d'),_0x1544af)},{'name':_0x51db('0x38'),'value':_0x1544af}]})}})[_0x51db('0x39')](function(_0x231c24){logger[_0x51db('0xd')](_0x51db('0x3e'));return BPromise[_0x51db('0x31')]({'id':_0x231c24['id'],'name':_0x231c24[_0x51db('0x2d')][_0x51db('0x3c')][_0x51db('0x32')],'phone':_0x231c24[_0x51db('0x2d')][_0x51db('0x38')][_0x51db('0x32')]});});}});}function request(_0x4f3bcc){logger[_0x51db('0x3f')](_0x51db('0x40'),JSON['stringify'](_0x4f3bcc));return rp(_[_0x51db('0x41')](def,_0x4f3bcc));}function getTags(_0x4c0c73,_0x395e48){var _0x43fc42=[];if(_0x4c0c73&&_0x4c0c73[_0x51db('0x1d')]>0x0){_0x43fc42=_[_0x51db('0x42')](_0x4c0c73,_0x395e48);}return _0x43fc42;}function getCustomFields(_0x510e36,_0x4f641b){var _0x33f748=[];var _0x5e3d3e={'custom_fields':[]};if(_0x510e36[_0x51db('0x1d')]>0x0){_[_0x51db('0x43')](_0x510e36,function(_0x2e4fb0){if(_0x2e4fb0['type']==='string'&&_0x2e4fb0[_0x51db('0x44')]&&!_0x2e4fb0[_0x51db('0x45')]){_0x5e3d3e[_0x2e4fb0['nameField'][_0x51db('0x46')]()]=_0x2e4fb0[_0x51db('0x47')][_0x51db('0x24')]();}else if(_0x2e4fb0[_0x51db('0x48')]===_0x51db('0x49')&&_0x2e4fb0[_0x51db('0x1f')]&&_0x2e4fb0['customField']){_0x5e3d3e['custom_fields'][_0x51db('0x4a')]({'id':_0x2e4fb0[_0x51db('0x1f')],'value':_0x2e4fb0[_0x51db('0x47')][_0x51db('0x24')]()});}else if(_0x2e4fb0[_0x51db('0x48')]===_0x51db('0x4b')&&_0x2e4fb0[_0x51db('0x1e')]&&_0x2e4fb0['idField']&&_0x2e4fb0['customField']){_0x4f641b[_0x2e4fb0[_0x51db('0x1e')]]&&_0x5e3d3e[_0x51db('0x4c')][_0x51db('0x4a')]({'id':_0x2e4fb0[_0x51db('0x1f')],'value':_0x4f641b[_0x2e4fb0[_0x51db('0x1e')]][_0x51db('0x24')]()});}else if(_0x2e4fb0[_0x51db('0x48')]===_0x51db('0x4d')&&_0x2e4fb0[_0x51db('0x4e')]&&_0x2e4fb0[_0x51db('0x4e')][_0x51db('0x2b')]&&_0x2e4fb0[_0x51db('0x1f')]&&_0x2e4fb0[_0x51db('0x45')]){_0x4f641b[_0x2e4fb0[_0x51db('0x4e')]['name'][_0x51db('0x46')]()]&&_0x5e3d3e[_0x51db('0x4c')][_0x51db('0x4a')]({'id':_0x2e4fb0[_0x51db('0x1f')],'value':_0x4f641b[_0x2e4fb0[_0x51db('0x4e')]['name'][_0x51db('0x46')]()][_0x51db('0x24')]()});}});}return _0x5e3d3e;}function getConnection(_0xf4e1d6){return request({'method':'POST','form':{'method':_0x51db('0x4f'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'user_auth':{'user_name':_0xf4e1d6[_0x51db('0x50')],'password':_0xf4e1d6[_0x51db('0x51')],'encryption':_0x51db('0x52')},'application':_0x51db('0x53')})}})['then'](function(_0x99b0bf){var _0x57c526=_0x99b0bf;if(_0x57c526['id']){def[_0x51db('0x54')]=_0x57c526['id'];return BPromise[_0x51db('0x31')](_0x57c526);}else{throw new Error(util[_0x51db('0x29')](_0x51db('0x55'),_0xf4e1d6['id']));}});}function setRelationship(_0x264e53,_0x55b290,_0x27973a,_0xdd2349){return request({'form':{'method':_0x51db('0x56'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON['stringify']({'session':_0x264e53['id'],'module_name':'Calls','module_id':_0x27973a['id'],'link_field_name':_0xdd2349,'related_ids':[_0x55b290['id']],'name_value_list':[],'delete':0x0})}});}exports[_0x51db('0x57')]=function(_0x247b88,_0x4e901c,_0x4d3158,_0x127d40,_0x414027,_0x5b5225){var _0x4e3a60,_0x25720a,_0xd54634,_0x3b0ef2;_0x5b5225[_0x51db('0x58')]=intUtil['stripTrailingSlash'](_0x5b5225[_0x51db('0x58')]);_0x5b5225[_0x51db('0x59')]=intUtil[_0x51db('0x5a')](_0x5b5225['serverUrl']);def[_0x51db('0x5b')]=util[_0x51db('0x29')](_0x51db('0x5c'),_0x5b5225[_0x51db('0x58')]);if(_0x414027&&_0x414027[_0x51db('0x5d')]){logger[_0x51db('0xd')]('[QUEUE]',_0x51db('0x5e'));_0x4e901c[_0x51db('0x5f')]=util[_0x51db('0x29')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x5b5225[_0x51db('0x59')],_0x4e901c[_0x51db('0x60')],md5(_0x4e901c[_0x51db('0x60')]));}else{_0x4e901c[_0x51db('0x5f')]='';}return getConnection(_0x5b5225)[_0x51db('0x39')](function(_0x1ca2b1){_0x3b0ef2=_0x1ca2b1;return getUser(_0x5b5225,_0x127d40[_0x51db('0x2b')],_0x3b0ef2);})[_0x51db('0x39')](function(_0xfc2258){_0x4e3a60=_0xfc2258;logger[_0x51db('0xd')](_0x51db('0x61'),_0x4e3a60['id']);return getEndUser(_0x5b5225,_0x4e901c[_0x51db('0x62')],_0x4e901c['calleridnum'],_0x3b0ef2);})['then'](function(_0x147dd3){_0x25720a=_0x147dd3;logger[_0x51db('0xd')](_0x51db('0x63'),_0x25720a['id']);return getTicket(_0x5b5225,_0x4e3a60,_0x25720a,_0x4d3158,_0x4e901c,_0x4d3158[_0x51db('0x64')],_0x3b0ef2,'Inbound');})[_0x51db('0x39')](function(_0x4e3d68){_0xd54634=_0x4e3d68;logger[_0x51db('0xd')](_0x51db('0x65'));logger['info'](_0x51db('0x66'),_0xd54634['id']);return setRelationship(_0x3b0ef2,_0x4e3a60,_0xd54634,'users');})[_0x51db('0x39')](function(){return setRelationship(_0x3b0ef2,_0x25720a,_0xd54634,_0x51db('0x67'));})['then'](function(){return getServerInfo(_0x3b0ef2);})[_0x51db('0x39')](function(_0x4cb60a){var _0x1e1ada=parseInt(_0x4cb60a[_0x51db('0x68')][_0x51db('0x69')](0x0));var _0xd67ffa=util[_0x51db('0x29')]('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x5b5225[_0x51db('0x58')],_0xd54634['id']);if(_0x1e1ada>0x6){_0xd67ffa=util['format'](_0x51db('0x6a'),_0x5b5225[_0x51db('0x58')],_0xd54634['id']);}logger[_0x51db('0xd')](_0x51db('0x6b'),_0x51db('0x6c'));emit(util[_0x51db('0x29')](_0x51db('0x6d'),_0x127d40[_0x51db('0x2b')]),_0x51db('0x6e'),{'uri':_0xd67ffa});})[_0x51db('0x6f')](function(_0x5dec55){logger[_0x51db('0x70')](_0x51db('0x6b'),JSON[_0x51db('0x22')](_0x5dec55));});};exports[_0x51db('0x71')]=function(_0xe033f9,_0xa3d1a6,_0x556ecd,_0x58c3ae,_0x419b5e,_0x4eb2fe,_0x5eaead){var _0x35c46b,_0x5ee2c9,_0x5dde58,_0x3ed9ad;_0x4eb2fe[_0x51db('0x58')]=intUtil[_0x51db('0x5a')](_0x4eb2fe[_0x51db('0x58')]);_0x4eb2fe[_0x51db('0x59')]=intUtil[_0x51db('0x5a')](_0x4eb2fe['serverUrl']);def[_0x51db('0x5b')]=util[_0x51db('0x29')](_0x51db('0x5c'),_0x4eb2fe[_0x51db('0x58')]);if(_0x5eaead&&_0x5eaead[_0x51db('0x72')]&&_0x5eaead[_0x51db('0x72')]!==_0x51db('0x73')){logger[_0x51db('0xd')](_0x51db('0x74'),_0x51db('0x5e'));_0xa3d1a6['recordingURL']=util[_0x51db('0x29')](_0x51db('0x75'),_0x4eb2fe[_0x51db('0x59')],_0xa3d1a6[_0x51db('0x60')],md5(_0xa3d1a6['uniqueid']));}return getConnection(_0x4eb2fe)['then'](function(_0x1205b1){_0x3ed9ad=_0x1205b1;return getUser(_0x4eb2fe,_0x58c3ae[_0x51db('0x2b')],_0x3ed9ad);})[_0x51db('0x39')](function(_0x590e66){_0x35c46b=_0x590e66;logger[_0x51db('0xd')](_0x51db('0x61'),_0x35c46b['id']);return getEndUser(_0x4eb2fe,_0xa3d1a6['destcalleridname'],_0xa3d1a6[_0x51db('0x76')],_0x3ed9ad);})[_0x51db('0x39')](function(_0x573bdf){_0x5ee2c9=_0x573bdf;logger[_0x51db('0xd')](_0x51db('0x63'),_0x5ee2c9['id']);return getTicket(_0x4eb2fe,_0x35c46b,_0x5ee2c9,_0x556ecd,_0xa3d1a6,_0x556ecd['Fields'],_0x3ed9ad,_0x51db('0x77'));})[_0x51db('0x39')](function(_0x3ec7aa){_0x5dde58=_0x3ec7aa;logger[_0x51db('0xd')](_0x51db('0x65'));logger['info'](_0x51db('0x66'),_0x5dde58['id']);return setRelationship(_0x3ed9ad,_0x35c46b,_0x5dde58,_0x51db('0x78'));})['then'](function(){return setRelationship(_0x3ed9ad,_0x5ee2c9,_0x5dde58,_0x51db('0x67'));})[_0x51db('0x39')](function(){return getServerInfo(_0x3ed9ad);})[_0x51db('0x39')](function(_0x310339){var _0x2eced9=parseInt(_0x310339[_0x51db('0x68')][_0x51db('0x69')](0x0));var _0x4f4ae8=util['format']('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x4eb2fe[_0x51db('0x58')],_0x5dde58['id']);if(_0x2eced9>0x6){_0x4f4ae8=util[_0x51db('0x29')](_0x51db('0x6a'),_0x4eb2fe[_0x51db('0x58')],_0x5dde58['id']);}logger[_0x51db('0xd')](_0x51db('0x74'),_0x51db('0x6c'));emit(util[_0x51db('0x29')](_0x51db('0x6d'),_0x58c3ae[_0x51db('0x2b')]),_0x51db('0x6e'),{'uri':_0x4f4ae8});})[_0x51db('0x6f')](function(_0x4a25c2){logger[_0x51db('0x70')](_0x51db('0x74'),JSON[_0x51db('0x22')](_0x4a25c2));});};exports[_0x51db('0x79')]=function(_0x579ea4,_0x49f031,_0x4636c5,_0x2fa6bb,_0x35d386,_0x52ec4b){var _0x1f644e,_0x2e6197,_0x4ae672,_0x211cfa;_0x52ec4b['remoteUri']=intUtil[_0x51db('0x5a')](_0x52ec4b[_0x51db('0x58')]);_0x52ec4b[_0x51db('0x59')]=intUtil[_0x51db('0x5a')](_0x52ec4b[_0x51db('0x59')]);def['uri']=util[_0x51db('0x29')]('%s/service/v4_1/rest.php',_0x52ec4b[_0x51db('0x58')]);if(_0x35d386&&_0x35d386['monitor_format']){logger[_0x51db('0xd')]('['+_0x49f031[_0x51db('0x7a')][_0x51db('0x7b')]()+']','Recording\x20is\x20enabled!');_0x49f031[_0x51db('0x5f')]=util[_0x51db('0x29')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x52ec4b[_0x51db('0x59')],_0x49f031[_0x51db('0x60')],md5(_0x49f031[_0x51db('0x60')]));}else{_0x49f031['recordingURL']='';}return getConnection(_0x52ec4b)[_0x51db('0x39')](function(_0x227116){_0x211cfa=_0x227116;if(!_[_0x51db('0x27')](_0x2fa6bb)){return getUser(_0x52ec4b,_0x2fa6bb[_0x51db('0x2b')],_0x211cfa);}else{return getUser(_0x52ec4b,null,_0x211cfa);}})[_0x51db('0x39')](function(_0x3af58a){_0x1f644e=_0x3af58a;logger[_0x51db('0xd')](_0x51db('0x61'),_0x1f644e['id']);return getEndUser(_0x52ec4b,_0x49f031[_0x51db('0x62')],_0x49f031['calleridnum'],_0x211cfa);})[_0x51db('0x39')](function(_0x3f839a){_0x2e6197=_0x3f839a;logger['info'](_0x51db('0x63'),_0x2e6197['id']);return getTicket(_0x52ec4b,_0x1f644e,_0x2e6197,_0x4636c5,_0x49f031,_0x4636c5[_0x51db('0x64')],_0x211cfa,_0x51db('0x7c'));})[_0x51db('0x39')](function(_0x10f4d0){_0x4ae672=_0x10f4d0;logger[_0x51db('0xd')](_0x51db('0x65'));logger[_0x51db('0xd')](_0x51db('0x66'),_0x4ae672['id']);return setRelationship(_0x211cfa,_0x1f644e,_0x4ae672,_0x51db('0x78'));})[_0x51db('0x39')](function(){return setRelationship(_0x211cfa,_0x2e6197,_0x4ae672,'contacts');})[_0x51db('0x39')](function(){return getServerInfo(_0x211cfa);})[_0x51db('0x6f')](function(_0x5d3ab0){logger[_0x51db('0x70')]('['+_0x49f031[_0x51db('0x7a')]['toUpperCase']()+']',JSON[_0x51db('0x22')](_0x5d3ab0));});};
\ No newline at end of file
+var _0x7554=['redis','defaults','localhost','socket.io-emitter','POST','emit','info','Creating\x20new\x20ticket...','name','getString','assigned_user_id','created_by','description','Descriptions','toISOString','slice','replace','duration_hours','parent_id','parent_type','parent_name','direction','length','forEach','variableName','idField','JSON','Calls','format','Basic\x20%s','apiKey','toString','base64','get_server_info','stringify','isNil','Getting\x20agent\x20with\x20name','get_entry_list','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','then','entry_list','find','name_value_list','user_name','value','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','resolve','user_id','Contacts','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','set_entry','first_name','<unknown>','Enduser\x20created.','[HTTP]','merge','map','type','nameField','customField','toLowerCase','content','string','custom_fields','push','variable','customVariable','Variable','login','username','password','PLAIN','sessionID','set_relationship','stripTrailingSlash','remoteUri','serverUrl','uri','%s/service/v4_1/rest.php','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','Inbound','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','users','contacts','version','charAt','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','catch','outbound','none','destcalleridnum','Outbound','[OUTBOUND]','trigger:browser:url','error','toUpperCase','The\x20User\x20ID\x20is:','calleridname','lastevent','lodash','request-promise','ioredis','./util','../../../../config/environment','../../../../config/logger','sugarcrm'];(function(_0x3986c4,_0x4d20d5){var _0x4911bb=function(_0xecb85c){while(--_0xecb85c){_0x3986c4['push'](_0x3986c4['shift']());}};_0x4911bb(++_0x4d20d5);}(_0x7554,0xe7));var _0x4755=function(_0x38aeb0,_0x13c43f){_0x38aeb0=_0x38aeb0-0x0;var _0x2ce77f=_0x7554[_0x38aeb0];return _0x2ce77f;};'use strict';var _=require(_0x4755('0x0'));var rp=require(_0x4755('0x1'));var BPromise=require('bluebird');var md5=require('md5');var util=require('util');var Redis=require(_0x4755('0x2'));var intUtil=require(_0x4755('0x3'));var config=require(_0x4755('0x4'));var logger=require(_0x4755('0x5'))(_0x4755('0x6'));config[_0x4755('0x7')]=_[_0x4755('0x8')](config[_0x4755('0x7')],{'host':_0x4755('0x9'),'port':0x18eb});var io=require(_0x4755('0xa'))(new Redis(config['redis']));var def={'method':_0x4755('0xb'),'json':!![]};function emit(_0xf3cfc8,_0x13b54c,_0x3546c4){io['to'](_0xf3cfc8)[_0x4755('0xc')](_0x13b54c,_0x3546c4);}function getTicket(_0x2cc66d,_0x33132f,_0x2a8d03,_0x2b65f0,_0x1c00ec,_0x594418,_0x5d2ddc,_0x341980){logger[_0x4755('0xd')](_0x4755('0xe'));var _0x3af438=new Date();var _0x4e42b1=[{'name':_0x4755('0xf'),'value':intUtil[_0x4755('0x10')](_0x2b65f0['Subjects'],_0x1c00ec,'\x20')},{'name':_0x4755('0x11'),'value':_0x33132f['id']},{'name':_0x4755('0x12'),'value':_0x33132f['id']},{'name':_0x4755('0x13'),'value':intUtil[_0x4755('0x10')](_0x2b65f0[_0x4755('0x14')],_0x1c00ec,'\x0a')},{'name':'date_start','value':_0x3af438[_0x4755('0x15')]()[_0x4755('0x16')](0x0,0x13)[_0x4755('0x17')]('T','\x20')},{'name':_0x4755('0x18'),'value':'0'},{'name':'duration_minutes','value':'15'},{'name':_0x4755('0x19'),'value':_0x2a8d03['id']},{'name':_0x4755('0x1a'),'value':'Contacts'},{'name':_0x4755('0x1b'),'value':_0x2a8d03['name']},{'name':_0x4755('0x1c'),'value':_0x341980}];if(_0x594418[_0x4755('0x1d')]){_[_0x4755('0x1e')](_0x594418,function(_0x404ccc){if(_0x1c00ec[_0x404ccc[_0x4755('0x1f')]]){_0x4e42b1['push']({'name':_0x404ccc[_0x4755('0x20')],'value':_0x1c00ec[_0x404ccc[_0x4755('0x1f')]]});}});}return request({'form':{'method':'set_entry','input_type':'JSON','response_type':_0x4755('0x21'),'rest_data':JSON['stringify']({'session':_0x5d2ddc['id'],'module_name':_0x4755('0x22'),'name_value_list':_0x4e42b1})}});}function getAuth(_0xed1cdf){return util[_0x4755('0x23')](_0x4755('0x24'),new Buffer(_0xed1cdf[_0x4755('0x25')]+':X')[_0x4755('0x26')](_0x4755('0x27')));}function getServerInfo(_0x1cb2b0){return request({'form':{'method':_0x4755('0x28'),'input_type':_0x4755('0x21'),'response_type':'JSON','rest_data':JSON[_0x4755('0x29')]({'session':_0x1cb2b0['id']})}});}function getUser(_0x742f09,_0xe23bfd,_0x533a82){if(!_[_0x4755('0x2a')](_0xe23bfd)){logger[_0x4755('0xd')](_0x4755('0x2b'),_0xe23bfd);return request({'form':{'method':_0x4755('0x2c'),'input_type':'JSON','response_type':_0x4755('0x21'),'rest_data':JSON[_0x4755('0x29')]({'session':_0x533a82['id'],'module_name':'Employees','query':util[_0x4755('0x23')](_0x4755('0x2d'),_0xe23bfd),'order_by':'','offset':'0','select_fields':['id',_0x4755('0xf'),'user_name'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x4755('0x2e')](function(_0x21831a){if(_0x21831a[_0x4755('0x2f')][_0x4755('0x1d')]){var _0x1df437=_[_0x4755('0x30')](_0x21831a['entry_list'],function(_0x30dd18){return _0x30dd18[_0x4755('0x31')][_0x4755('0x32')][_0x4755('0x33')]===_0xe23bfd;});if(_0x1df437){logger[_0x4755('0xd')](_0x4755('0x34'));return BPromise['resolve']({'id':_0x1df437['name_value_list']['id'][_0x4755('0x33')],'name':_0x1df437['name_value_list'][_0x4755('0xf')][_0x4755('0x33')]});}}logger[_0x4755('0xd')](_0x4755('0x35'));return BPromise[_0x4755('0x36')]({'id':_0x533a82[_0x4755('0x31')][_0x4755('0x37')][_0x4755('0x33')],'name':_0x533a82[_0x4755('0x31')][_0x4755('0x32')][_0x4755('0x33')]});});}else{logger[_0x4755('0xd')]('Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!');return BPromise[_0x4755('0x36')]({'id':_0x533a82[_0x4755('0x31')][_0x4755('0x37')][_0x4755('0x33')],'name':_0x533a82[_0x4755('0x31')][_0x4755('0x32')][_0x4755('0x33')]});}}function getEndUser(_0x28863f,_0x392d40,_0x3e7021,_0x4ba706){logger['info']('Searching\x20enduser\x20with\x20phone',_0x3e7021);return request({'form':{'method':_0x4755('0x2c'),'input_type':_0x4755('0x21'),'response_type':_0x4755('0x21'),'rest_data':JSON[_0x4755('0x29')]({'session':_0x4ba706['id'],'module_name':_0x4755('0x38'),'query':util[_0x4755('0x23')](_0x4755('0x39'),_0x3e7021),'order_by':'','offset':'0','select_fields':['id',_0x4755('0xf'),_0x4755('0x3a')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x4755('0x2e')](function(_0x4e96c8){if(_0x4e96c8['entry_list'][_0x4755('0x1d')]){var _0x301a31=_[_0x4755('0x30')](_0x4e96c8[_0x4755('0x2f')],function(_0x6d36da){return _0x6d36da[_0x4755('0x31')][_0x4755('0x3a')]['value']===_0x3e7021;});if(_0x301a31){logger[_0x4755('0xd')]('Enduser\x20found!');return BPromise[_0x4755('0x36')]({'id':_0x301a31[_0x4755('0x31')]['id'][_0x4755('0x33')],'name':_0x301a31[_0x4755('0x31')]['name'][_0x4755('0x33')],'phone':_0x301a31[_0x4755('0x31')]['phone_home']['value']});}}else{logger['info'](_0x4755('0x3b'));return request({'form':{'method':_0x4755('0x3c'),'input_type':_0x4755('0x21'),'response_type':_0x4755('0x21'),'rest_data':JSON[_0x4755('0x29')]({'session':_0x4ba706['id'],'module_name':_0x4755('0x38'),'name_value_list':[{'name':_0x4755('0x3d'),'value':_0x392d40!==_0x4755('0x3e')?_0x392d40:util['format']('Caller\x20-\x20%s',_0x3e7021)},{'name':_0x4755('0x3a'),'value':_0x3e7021}]})}})[_0x4755('0x2e')](function(_0x18b9eb){logger[_0x4755('0xd')](_0x4755('0x3f'));return BPromise['resolve']({'id':_0x18b9eb['id'],'name':_0x18b9eb[_0x4755('0x2f')][_0x4755('0x3d')][_0x4755('0x33')],'phone':_0x18b9eb[_0x4755('0x2f')][_0x4755('0x3a')]['value']});});}});}function request(_0x58b1a4){logger['debug'](_0x4755('0x40'),JSON[_0x4755('0x29')](_0x58b1a4));return rp(_[_0x4755('0x41')](def,_0x58b1a4));}function getTags(_0x4357b6,_0x3ad6dd){var _0x2e6af9=[];if(_0x4357b6&&_0x4357b6[_0x4755('0x1d')]>0x0){_0x2e6af9=_[_0x4755('0x42')](_0x4357b6,_0x3ad6dd);}return _0x2e6af9;}function getCustomFields(_0x433597,_0x214471){var _0x65c02a=[];var _0x317e55={'custom_fields':[]};if(_0x433597[_0x4755('0x1d')]>0x0){_['forEach'](_0x433597,function(_0x49c8d9){if(_0x49c8d9[_0x4755('0x43')]==='string'&&_0x49c8d9[_0x4755('0x44')]&&!_0x49c8d9[_0x4755('0x45')]){_0x317e55[_0x49c8d9[_0x4755('0x44')][_0x4755('0x46')]()]=_0x49c8d9[_0x4755('0x47')][_0x4755('0x26')]();}else if(_0x49c8d9[_0x4755('0x43')]===_0x4755('0x48')&&_0x49c8d9[_0x4755('0x20')]&&_0x49c8d9[_0x4755('0x45')]){_0x317e55[_0x4755('0x49')][_0x4755('0x4a')]({'id':_0x49c8d9[_0x4755('0x20')],'value':_0x49c8d9[_0x4755('0x47')][_0x4755('0x26')]()});}else if(_0x49c8d9[_0x4755('0x43')]===_0x4755('0x4b')&&_0x49c8d9['variableName']&&_0x49c8d9[_0x4755('0x20')]&&_0x49c8d9[_0x4755('0x45')]){_0x214471[_0x49c8d9['variableName']]&&_0x317e55[_0x4755('0x49')][_0x4755('0x4a')]({'id':_0x49c8d9[_0x4755('0x20')],'value':_0x214471[_0x49c8d9[_0x4755('0x1f')]]['toString']()});}else if(_0x49c8d9[_0x4755('0x43')]===_0x4755('0x4c')&&_0x49c8d9[_0x4755('0x4d')]&&_0x49c8d9[_0x4755('0x4d')][_0x4755('0xf')]&&_0x49c8d9[_0x4755('0x20')]&&_0x49c8d9[_0x4755('0x45')]){_0x214471[_0x49c8d9[_0x4755('0x4d')][_0x4755('0xf')][_0x4755('0x46')]()]&&_0x317e55['custom_fields'][_0x4755('0x4a')]({'id':_0x49c8d9[_0x4755('0x20')],'value':_0x214471[_0x49c8d9[_0x4755('0x4d')][_0x4755('0xf')]['toLowerCase']()][_0x4755('0x26')]()});}});}return _0x317e55;}function getConnection(_0x2c7f93){return request({'method':_0x4755('0xb'),'form':{'method':_0x4755('0x4e'),'input_type':_0x4755('0x21'),'response_type':'JSON','rest_data':JSON[_0x4755('0x29')]({'user_auth':{'user_name':_0x2c7f93[_0x4755('0x4f')],'password':_0x2c7f93[_0x4755('0x50')],'encryption':_0x4755('0x51')},'application':'xCALLY\x20Motion\x20integration'})}})[_0x4755('0x2e')](function(_0x39b11d){var _0x523707=_0x39b11d;if(_0x523707['id']){def[_0x4755('0x52')]=_0x523707['id'];return BPromise['resolve'](_0x523707);}else{throw new Error(util[_0x4755('0x23')]('Account\x20%d\x20is\x20not\x20valid',_0x2c7f93['id']));}});}function setRelationship(_0xc9cc63,_0x18779c,_0x872d80,_0x59880c){return request({'form':{'method':_0x4755('0x53'),'input_type':_0x4755('0x21'),'response_type':_0x4755('0x21'),'rest_data':JSON['stringify']({'session':_0xc9cc63['id'],'module_name':'Calls','module_id':_0x872d80['id'],'link_field_name':_0x59880c,'related_ids':[_0x18779c['id']],'name_value_list':[],'delete':0x0})}});}exports['queue']=function(_0x2a4b8f,_0x48edb2,_0x3f5998,_0x1b76bc,_0x2b075a,_0x2e1868){var _0xd01f4c,_0x375e3d,_0x3f9930,_0x3bf0c6;_0x2e1868['remoteUri']=intUtil[_0x4755('0x54')](_0x2e1868[_0x4755('0x55')]);_0x2e1868['serverUrl']=intUtil[_0x4755('0x54')](_0x2e1868[_0x4755('0x56')]);def[_0x4755('0x57')]=util['format'](_0x4755('0x58'),_0x2e1868[_0x4755('0x55')]);if(_0x2b075a&&_0x2b075a['monitor_format']){logger[_0x4755('0xd')](_0x4755('0x59'),_0x4755('0x5a'));_0x48edb2[_0x4755('0x5b')]=util[_0x4755('0x23')](_0x4755('0x5c'),_0x2e1868[_0x4755('0x56')],_0x48edb2[_0x4755('0x5d')],md5(_0x48edb2[_0x4755('0x5d')]));}else{_0x48edb2[_0x4755('0x5b')]='';}return getConnection(_0x2e1868)[_0x4755('0x2e')](function(_0xd4ad55){_0x3bf0c6=_0xd4ad55;return getUser(_0x2e1868,_0x1b76bc[_0x4755('0xf')],_0x3bf0c6);})[_0x4755('0x2e')](function(_0x24ec0a){_0xd01f4c=_0x24ec0a;logger['info']('The\x20User\x20ID\x20is:',_0xd01f4c['id']);return getEndUser(_0x2e1868,_0x48edb2['calleridname'],_0x48edb2[_0x4755('0x5e')],_0x3bf0c6);})[_0x4755('0x2e')](function(_0x159b63){_0x375e3d=_0x159b63;logger['info'](_0x4755('0x5f'),_0x375e3d['id']);return getTicket(_0x2e1868,_0xd01f4c,_0x375e3d,_0x3f5998,_0x48edb2,_0x3f5998[_0x4755('0x60')],_0x3bf0c6,_0x4755('0x61'));})[_0x4755('0x2e')](function(_0x56b421){_0x3f9930=_0x56b421;logger[_0x4755('0xd')](_0x4755('0x62'));logger[_0x4755('0xd')](_0x4755('0x63'),_0x3f9930['id']);return setRelationship(_0x3bf0c6,_0xd01f4c,_0x3f9930,_0x4755('0x64'));})[_0x4755('0x2e')](function(){return setRelationship(_0x3bf0c6,_0x375e3d,_0x3f9930,_0x4755('0x65'));})[_0x4755('0x2e')](function(){return getServerInfo(_0x3bf0c6);})[_0x4755('0x2e')](function(_0x248d8f){var _0x3e148d=parseInt(_0x248d8f[_0x4755('0x66')][_0x4755('0x67')](0x0));var _0x12d472=util['format'](_0x4755('0x68'),_0x2e1868[_0x4755('0x55')],_0x3f9930['id']);if(_0x3e148d>0x6){_0x12d472=util[_0x4755('0x23')](_0x4755('0x69'),_0x2e1868[_0x4755('0x55')],_0x3f9930['id']);}logger[_0x4755('0xd')](_0x4755('0x59'),_0x4755('0x6a'));emit(util[_0x4755('0x23')]('user:%s',_0x1b76bc[_0x4755('0xf')]),'trigger:browser:url',{'uri':_0x12d472});})[_0x4755('0x6b')](function(_0x36dcb9){logger['error'](_0x4755('0x59'),JSON[_0x4755('0x29')](_0x36dcb9));});};exports[_0x4755('0x6c')]=function(_0x237a72,_0x23e295,_0x452eb1,_0x1f94ee,_0x1c5e93,_0x437273,_0x2de3c0){var _0x4f9204,_0xf0c9ba,_0x2ccd33,_0x55a53;_0x437273[_0x4755('0x55')]=intUtil[_0x4755('0x54')](_0x437273[_0x4755('0x55')]);_0x437273[_0x4755('0x56')]=intUtil[_0x4755('0x54')](_0x437273[_0x4755('0x56')]);def[_0x4755('0x57')]=util[_0x4755('0x23')](_0x4755('0x58'),_0x437273[_0x4755('0x55')]);if(_0x2de3c0&&_0x2de3c0['recordingFormat']&&_0x2de3c0['recordingFormat']!==_0x4755('0x6d')){logger['info']('[OUTBOUND]','Recording\x20is\x20enabled!');_0x23e295[_0x4755('0x5b')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x437273[_0x4755('0x56')],_0x23e295['uniqueid'],md5(_0x23e295[_0x4755('0x5d')]));}return getConnection(_0x437273)[_0x4755('0x2e')](function(_0x2de915){_0x55a53=_0x2de915;return getUser(_0x437273,_0x1f94ee['name'],_0x55a53);})[_0x4755('0x2e')](function(_0x24e25e){_0x4f9204=_0x24e25e;logger[_0x4755('0xd')]('The\x20User\x20ID\x20is:',_0x4f9204['id']);return getEndUser(_0x437273,_0x23e295['destcalleridname'],_0x23e295[_0x4755('0x6e')],_0x55a53);})['then'](function(_0x1265ef){_0xf0c9ba=_0x1265ef;logger[_0x4755('0xd')](_0x4755('0x5f'),_0xf0c9ba['id']);return getTicket(_0x437273,_0x4f9204,_0xf0c9ba,_0x452eb1,_0x23e295,_0x452eb1['Fields'],_0x55a53,_0x4755('0x6f'));})[_0x4755('0x2e')](function(_0x1f31fa){_0x2ccd33=_0x1f31fa;logger['info'](_0x4755('0x62'));logger[_0x4755('0xd')](_0x4755('0x63'),_0x2ccd33['id']);return setRelationship(_0x55a53,_0x4f9204,_0x2ccd33,_0x4755('0x64'));})[_0x4755('0x2e')](function(){return setRelationship(_0x55a53,_0xf0c9ba,_0x2ccd33,_0x4755('0x65'));})['then'](function(){return getServerInfo(_0x55a53);})['then'](function(_0x5ece07){var _0x5aeb66=parseInt(_0x5ece07[_0x4755('0x66')][_0x4755('0x67')](0x0));var _0x189f0b=util[_0x4755('0x23')](_0x4755('0x68'),_0x437273[_0x4755('0x55')],_0x2ccd33['id']);if(_0x5aeb66>0x6){_0x189f0b=util[_0x4755('0x23')](_0x4755('0x69'),_0x437273['remoteUri'],_0x2ccd33['id']);}logger['info'](_0x4755('0x70'),_0x4755('0x6a'));emit(util[_0x4755('0x23')]('user:%s',_0x1f94ee[_0x4755('0xf')]),_0x4755('0x71'),{'uri':_0x189f0b});})[_0x4755('0x6b')](function(_0x1809d5){logger[_0x4755('0x72')](_0x4755('0x70'),JSON[_0x4755('0x29')](_0x1809d5));});};exports['unmanaged']=function(_0x1c194f,_0xa75878,_0x56c800,_0x1519ea,_0x48687e,_0x446743){var _0x47c208,_0x59b9af,_0x32fe41,_0x18cde4;_0x446743[_0x4755('0x55')]=intUtil[_0x4755('0x54')](_0x446743['remoteUri']);_0x446743['serverUrl']=intUtil['stripTrailingSlash'](_0x446743['serverUrl']);def[_0x4755('0x57')]=util['format'](_0x4755('0x58'),_0x446743[_0x4755('0x55')]);if(_0x48687e&&_0x48687e['monitor_format']){logger['info']('['+_0xa75878['lastevent'][_0x4755('0x73')]()+']',_0x4755('0x5a'));_0xa75878['recordingURL']=util[_0x4755('0x23')](_0x4755('0x5c'),_0x446743[_0x4755('0x56')],_0xa75878['uniqueid'],md5(_0xa75878['uniqueid']));}else{_0xa75878[_0x4755('0x5b')]='';}return getConnection(_0x446743)[_0x4755('0x2e')](function(_0x3f44da){_0x18cde4=_0x3f44da;if(!_[_0x4755('0x2a')](_0x1519ea)){return getUser(_0x446743,_0x1519ea['name'],_0x18cde4);}else{return getUser(_0x446743,null,_0x18cde4);}})[_0x4755('0x2e')](function(_0x48f134){_0x47c208=_0x48f134;logger[_0x4755('0xd')](_0x4755('0x74'),_0x47c208['id']);return getEndUser(_0x446743,_0xa75878[_0x4755('0x75')],_0xa75878[_0x4755('0x5e')],_0x18cde4);})[_0x4755('0x2e')](function(_0x3b9553){_0x59b9af=_0x3b9553;logger[_0x4755('0xd')]('The\x20Enduser\x20ID\x20is:',_0x59b9af['id']);return getTicket(_0x446743,_0x47c208,_0x59b9af,_0x56c800,_0xa75878,_0x56c800['Fields'],_0x18cde4,_0x4755('0x61'));})[_0x4755('0x2e')](function(_0x1d9d27){_0x32fe41=_0x1d9d27;logger[_0x4755('0xd')](_0x4755('0x62'));logger[_0x4755('0xd')](_0x4755('0x63'),_0x32fe41['id']);return setRelationship(_0x18cde4,_0x47c208,_0x32fe41,_0x4755('0x64'));})[_0x4755('0x2e')](function(){return setRelationship(_0x18cde4,_0x59b9af,_0x32fe41,_0x4755('0x65'));})[_0x4755('0x2e')](function(){return getServerInfo(_0x18cde4);})[_0x4755('0x6b')](function(_0x2a1beb){logger[_0x4755('0x72')]('['+_0xa75878[_0x4755('0x76')]['toUpperCase']()+']',JSON[_0x4755('0x29')](_0x2a1beb));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd97b=['format','%s:\x20%s','keyContent','join','stripTrailingSlash','substring','lastIndexOf','test','lodash','getString','length','string','push','content','type','variable','variableName','toString','customVariable','Variable','name','toLowerCase','keyValue','keyType','key'];(function(_0x1fbac7,_0x4282b6){var _0x562537=function(_0x2490db){while(--_0x2490db){_0x1fbac7['push'](_0x1fbac7['shift']());}};_0x562537(++_0x4282b6);}(_0xd97b,0x1e3));var _0xbd97=function(_0x2ea5f3,_0x1ffbf0){_0x2ea5f3=_0x2ea5f3-0x0;var _0xb2fb9b=_0xd97b[_0x2ea5f3];return _0xb2fb9b;};'use strict';var _=require(_0xbd97('0x0'));var util=require('util');exports[_0xbd97('0x1')]=function(_0x290284,_0x1a473e,_0x35ed1b){var _0x3ecd31=[];if(_0x290284['length']>0x0){var _0x213bcb=_['sortBy'](_0x290284,['id']);for(var _0x22867e=0x0;_0x22867e<_0x213bcb[_0xbd97('0x2')];_0x22867e++){var _0x1443c9=_0x213bcb[_0x22867e];if(_0x1443c9['type']===_0xbd97('0x3')){_0x3ecd31[_0xbd97('0x4')](_0x1443c9[_0xbd97('0x5')]);}else if(_0x1443c9[_0xbd97('0x6')]===_0xbd97('0x7')&&_0x1443c9[_0xbd97('0x8')]){_0x1a473e[_0x1443c9[_0xbd97('0x8')]]&&_0x3ecd31['push'](_0x1a473e[_0x1443c9[_0xbd97('0x8')]][_0xbd97('0x9')]());}else if(_0x1443c9[_0xbd97('0x6')]===_0xbd97('0xa')&&_0x1443c9[_0xbd97('0xb')]&&_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')]){_0x1a473e[_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')][_0xbd97('0xd')]()]&&_0x3ecd31[_0xbd97('0x4')](_0x1a473e[_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')][_0xbd97('0xd')]()]['toString']());}else if(_0x1443c9[_0xbd97('0x6')]===_0xbd97('0xe')){if(_0x1443c9[_0xbd97('0xf')]===_0xbd97('0x3')&&_0x1443c9[_0xbd97('0x10')]){_0x3ecd31[_0xbd97('0x4')](util[_0xbd97('0x11')](_0xbd97('0x12'),_0x1443c9['key'],_0x1443c9[_0xbd97('0x13')]));}else if(_0x1443c9['keyType']===_0xbd97('0x7')&&_0x1443c9[_0xbd97('0x8')]&&_0x1443c9['key']){_0x1a473e[_0x1443c9[_0xbd97('0x8')]]&&_0x3ecd31[_0xbd97('0x4')](util[_0xbd97('0x11')](_0xbd97('0x12'),_0x1443c9[_0xbd97('0x10')],_0x1a473e[_0x1443c9[_0xbd97('0x8')]]));}else if(_0x1443c9['keyType']===_0xbd97('0xa')&&_0x1443c9['Variable']&&_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')]&&_0x1443c9[_0xbd97('0x10')]){_0x1a473e[_0x1443c9[_0xbd97('0xb')]['name'][_0xbd97('0xd')]()]&&_0x3ecd31[_0xbd97('0x4')](util['format'](_0xbd97('0x12'),_0x1443c9[_0xbd97('0x10')],_0x1a473e[_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')]['toLowerCase']()]));}}}}return _0x3ecd31[_0xbd97('0x14')](_0x35ed1b);};exports[_0xbd97('0x15')]=function(_0x4a43e1){var _0x23389e=_0x4a43e1['slice'](-0x1);if(_0x23389e==='/'){_0x4a43e1=_0x4a43e1[_0xbd97('0x16')](0x0,_0x4a43e1[_0xbd97('0x17')](_0x23389e));}return _0x4a43e1;};exports['validateEmail']=function(_0x679f12){if(!_['isNil'](_0x679f12)&&_0x679f12!==''){var _0x59fab3=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return _0x59fab3[_0xbd97('0x18')](String(_0x679f12)[_0xbd97('0xd')]());}else{return![];}};
\ No newline at end of file
+var _0xabe9=['toString','Variable','name','toLowerCase','keyValue','keyType','key','format','keyContent','variable','%s:\x20%s','customVariable','stripTrailingSlash','slice','substring','lastIndexOf','validateEmail','lodash','util','getString','length','sortBy','type','string','push','content','variableName'];(function(_0x57dff9,_0x37bd67){var _0x346ae6=function(_0x14197b){while(--_0x14197b){_0x57dff9['push'](_0x57dff9['shift']());}};_0x346ae6(++_0x37bd67);}(_0xabe9,0x1a6));var _0x9abe=function(_0x6656b1,_0x3421ee){_0x6656b1=_0x6656b1-0x0;var _0x45ae3a=_0xabe9[_0x6656b1];return _0x45ae3a;};'use strict';var _=require(_0x9abe('0x0'));var util=require(_0x9abe('0x1'));exports[_0x9abe('0x2')]=function(_0x14bc9e,_0x43ade6,_0xb5b522){var _0x4bb377=[];if(_0x14bc9e[_0x9abe('0x3')]>0x0){var _0x117bf5=_[_0x9abe('0x4')](_0x14bc9e,['id']);for(var _0x4a7d86=0x0;_0x4a7d86<_0x117bf5[_0x9abe('0x3')];_0x4a7d86++){var _0x2219cf=_0x117bf5[_0x4a7d86];if(_0x2219cf[_0x9abe('0x5')]===_0x9abe('0x6')){_0x4bb377[_0x9abe('0x7')](_0x2219cf[_0x9abe('0x8')]);}else if(_0x2219cf[_0x9abe('0x5')]==='variable'&&_0x2219cf[_0x9abe('0x9')]){_0x43ade6[_0x2219cf[_0x9abe('0x9')]]&&_0x4bb377[_0x9abe('0x7')](_0x43ade6[_0x2219cf[_0x9abe('0x9')]][_0x9abe('0xa')]());}else if(_0x2219cf[_0x9abe('0x5')]==='customVariable'&&_0x2219cf[_0x9abe('0xb')]&&_0x2219cf[_0x9abe('0xb')][_0x9abe('0xc')]){_0x43ade6[_0x2219cf[_0x9abe('0xb')][_0x9abe('0xc')]['toLowerCase']()]&&_0x4bb377['push'](_0x43ade6[_0x2219cf[_0x9abe('0xb')]['name'][_0x9abe('0xd')]()]['toString']());}else if(_0x2219cf[_0x9abe('0x5')]===_0x9abe('0xe')){if(_0x2219cf[_0x9abe('0xf')]===_0x9abe('0x6')&&_0x2219cf[_0x9abe('0x10')]){_0x4bb377['push'](util[_0x9abe('0x11')]('%s:\x20%s',_0x2219cf[_0x9abe('0x10')],_0x2219cf[_0x9abe('0x12')]));}else if(_0x2219cf[_0x9abe('0xf')]===_0x9abe('0x13')&&_0x2219cf[_0x9abe('0x9')]&&_0x2219cf[_0x9abe('0x10')]){_0x43ade6[_0x2219cf[_0x9abe('0x9')]]&&_0x4bb377[_0x9abe('0x7')](util[_0x9abe('0x11')](_0x9abe('0x14'),_0x2219cf[_0x9abe('0x10')],_0x43ade6[_0x2219cf['variableName']]));}else if(_0x2219cf[_0x9abe('0xf')]===_0x9abe('0x15')&&_0x2219cf['Variable']&&_0x2219cf['Variable'][_0x9abe('0xc')]&&_0x2219cf['key']){_0x43ade6[_0x2219cf[_0x9abe('0xb')]['name'][_0x9abe('0xd')]()]&&_0x4bb377['push'](util['format']('%s:\x20%s',_0x2219cf['key'],_0x43ade6[_0x2219cf[_0x9abe('0xb')]['name'][_0x9abe('0xd')]()]));}}}}return _0x4bb377['join'](_0xb5b522);};exports[_0x9abe('0x16')]=function(_0x437cf1){var _0x47ec94=_0x437cf1[_0x9abe('0x17')](-0x1);if(_0x47ec94==='/'){_0x437cf1=_0x437cf1[_0x9abe('0x18')](0x0,_0x437cf1[_0x9abe('0x19')](_0x47ec94));}return _0x437cf1;};exports[_0x9abe('0x1a')]=function(_0x2efbca){if(!_['isNil'](_0x2efbca)&&_0x2efbca!==''){var _0x4b9dc5=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return _0x4b9dc5['test'](String(_0x2efbca)['toLowerCase']());}else{return![];}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['variable','variableName','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','Normal','Open','Subjects','POST','format','%s/webservice.php','create','username','sessionName','HelpDesk','stringify','then','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','error','[vTiger],\x20%s,\x20%s,\x20%s','createTicket','validateEmail','Getting\x20agent\x20with\x20email','GET','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','resolve','email1','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','admin','statusCode','getUser','Searching\x20end\x20user\x20with\x20phone','remoteUri','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','getchallenge','login','token','Account\x20%d\x20is\x20not\x20valid','[HTTP]','queue','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','The\x20User\x20ID\x20is:','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','The\x20Enduser\x20ID\x20is:','Fields','split','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridname','lastevent','lodash','request-promise','bluebird','ioredis','../../../../config/environment','../../../../config/logger','vTiger','redis','defaults','localhost','socket.io-emitter','length','forEach','includes','idField','content','toString','type'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xa9e0,0x123));var _0x0a9e=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0xa9e0[_0x297fd3];return _0x2af381;};'use strict';var _=require(_0x0a9e('0x0'));var rp=require(_0x0a9e('0x1'));var BPromise=require(_0x0a9e('0x2'));var md5=require('md5');var util=require('util');var Redis=require(_0x0a9e('0x3'));var intUtil=require('./util');var config=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));config[_0x0a9e('0x7')]=_[_0x0a9e('0x8')](config['redis'],{'host':_0x0a9e('0x9'),'port':0x18eb});var io=require(_0x0a9e('0xa'))(new Redis(config[_0x0a9e('0x7')]));function emit(_0x5f41ea,_0x503809,_0xe42b77){io['to'](_0x5f41ea)['emit'](_0x503809,_0xe42b77);}function getCustomFields(_0x52cace,_0x39753a){var _0xf81284={};if(_0x52cace[_0x0a9e('0xb')]>0x0){_[_0x0a9e('0xc')](_0x52cace,function(_0xfeb75b){if(_[_0x0a9e('0xd')](['string','picklist'],_0xfeb75b['type'])&&_0xfeb75b['idField']){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0xfeb75b[_0x0a9e('0xf')][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x12')&&_0xfeb75b[_0x0a9e('0x13')]&&_0xfeb75b['idField']&&_0x39753a[_0xfeb75b[_0x0a9e('0x13')]]){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0x39753a[_0xfeb75b[_0x0a9e('0x13')]][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x14')&&_0xfeb75b['Variable']&&_0xfeb75b[_0x0a9e('0x15')]['name']&&_0xfeb75b[_0x0a9e('0xe')]&&_0x39753a[_0xfeb75b['Variable'][_0x0a9e('0x16')][_0x0a9e('0x17')]()]){_0xf81284[_0xfeb75b['idField']]=_0x39753a[_0xfeb75b[_0x0a9e('0x15')]['name'][_0x0a9e('0x17')]()][_0x0a9e('0x10')]();}});}return _0xf81284;}function createTicket(_0x106033,_0x205fd6,_0x31b1ca,_0x2eb11f,_0x530eb7,_0x20559e,_0x1314ae){logger[_0x0a9e('0x18')](_0x0a9e('0x19'));var _0x105080=_['merge']({'parent_id':'','assigned_user_id':_0x205fd6['id'],'ticketpriorities':_0x0a9e('0x1a'),'ticketstatus':_0x0a9e('0x1b'),'ticket_title':intUtil['getString'](_0x2eb11f[_0x0a9e('0x1c')],_0x530eb7,'\x20'),'description':intUtil['getString'](_0x2eb11f['Descriptions'],_0x530eb7,'\x0a'),'contact_id':_0x31b1ca['id']},getCustomFields(_0x20559e,_0x530eb7));var _0x3a02e1={'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x106033['remoteUri']),'form':{'operation':_0x0a9e('0x20'),'username':_0x106033[_0x0a9e('0x21')],'sessionName':_0x1314ae[_0x0a9e('0x22')],'elementType':_0x0a9e('0x23'),'element':JSON[_0x0a9e('0x24')](_0x105080)},'json':!![]};return request(_0x3a02e1)[_0x0a9e('0x25')](function(_0x16b1ca){if(_0x16b1ca['success']){return BPromise['resolve']({'id':_0x16b1ca[_0x0a9e('0x26')]['id']});}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x27'),JSON[_0x0a9e('0x24')](_0x16b1ca['error'])));}})[_0x0a9e('0x28')](function(_0x479bc4){var _0x45a1e7=_0x479bc4['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x2b'),_0x45a1e7,JSON[_0x0a9e('0x24')](_0x479bc4));});}function getUser(_0x140511,_0x1538a4,_0x11c3b6){if(intUtil[_0x0a9e('0x2c')](_0x1538a4)){logger['info'](_0x0a9e('0x2d'),_0x1538a4);return request({'method':_0x0a9e('0x2e'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x140511['remoteUri']),'qs':{'operation':_0x0a9e('0x2f'),'username':_0x140511[_0x0a9e('0x21')],'sessionName':_0x11c3b6[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x30'),_0x1538a4)},'json':!![]})[_0x0a9e('0x25')](function(_0x296f41){if(_0x296f41[_0x0a9e('0x31')]&&_0x296f41[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')]('Agent\x20found!');return BPromise[_0x0a9e('0x32')]({'id':_0x296f41[_0x0a9e('0x26')][0x0]['id'],'email':_0x296f41[_0x0a9e('0x26')][0x0][_0x0a9e('0x33')],'name':_0x296f41[_0x0a9e('0x26')][0x0]['first_name']+'\x20'+_0x296f41[_0x0a9e('0x26')][_0x0a9e('0x34')]});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511[_0x0a9e('0x21')],'name':_0x0a9e('0x37')});}})['catch'](function(_0x44295a){var _0x5e7238=_0x44295a[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x39'),_0x5e7238,JSON['stringify'](_0x44295a));});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511['username'],'name':'admin'})[_0x0a9e('0x28')](function(_0x5640eb){var _0x24936a=_0x5640eb[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getUser',_0x24936a,JSON[_0x0a9e('0x24')](_0x5640eb));});}}function getEndUser(_0x3bfce8,_0x3cae,_0x533942,_0x1dbf74){logger[_0x0a9e('0x18')](_0x0a9e('0x3a'),_0x533942);return request({'method':'GET','uri':util['format'](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'qs':{'operation':'query','username':_0x3bfce8[_0x0a9e('0x21')],'sessionName':_0x1dbf74[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x3c'),_0x533942,_0x533942,_0x533942,_0x533942,_0x533942)},'json':!![]})['then'](function(_0x5a594b){if(_0x5a594b[_0x0a9e('0x31')]&&_0x5a594b[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')](_0x0a9e('0x3d'));return BPromise[_0x0a9e('0x32')]({'id':_0x5a594b['result'][0x0]['id'],'name':_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3e')]+'\x20'+_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3f')],'phone':_0x533942});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x40'));return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x20'),'sessionName':_0x1dbf74[_0x0a9e('0x22')],'elementType':_0x0a9e('0x41'),'element':JSON[_0x0a9e('0x24')]({'lastname':_0x3cae,'phone':_0x533942,'assigned_user_id':'\x20'})},'json':!![]})[_0x0a9e('0x25')](function(_0x4d04c8){logger['info'](_0x0a9e('0x42'));return BPromise[_0x0a9e('0x32')]({'id':_0x4d04c8[_0x0a9e('0x26')]['id'],'name':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x3f')],'phone':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x43')]});})[_0x0a9e('0x28')](function(_0x432fcc){var _0x25c6e6=_0x432fcc[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')]('[vTiger],\x20%s,\x20%s,\x20%s',_0x0a9e('0x44'),_0x25c6e6,JSON[_0x0a9e('0x24')](_0x432fcc));});}});}function getConnection(_0xdd268f){var _0xfbd5ad=_0xdd268f[_0x0a9e('0x21')];var _0xbe9d19=_0xdd268f[_0x0a9e('0x45')];return request({'method':_0x0a9e('0x2e'),'uri':util['format'](_0x0a9e('0x1f'),_0xdd268f['remoteUri']),'qs':{'operation':_0x0a9e('0x46'),'username':_0xfbd5ad},'json':!![]})[_0x0a9e('0x25')](function(_0x8d6dd1){if(_0x8d6dd1['success']){return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0xdd268f[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x47'),'username':_0xfbd5ad,'accessKey':md5(_0x8d6dd1[_0x0a9e('0x26')][_0x0a9e('0x48')]+_0xbe9d19)},'json':!![]});}})['then'](function(_0x13f44d){if(_0x13f44d[_0x0a9e('0x31')]){return BPromise[_0x0a9e('0x32')](_0x13f44d[_0x0a9e('0x26')]);}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x49'),_0xdd268f['id']));}})[_0x0a9e('0x28')](function(_0x19383e){var _0x34febd=_0x19383e['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getConnection',_0x34febd,JSON['stringify'](_0x19383e));});}function request(_0x5ddf84){logger[_0x0a9e('0x18')](_0x0a9e('0x4a'),JSON[_0x0a9e('0x24')](_0x5ddf84));return rp(_0x5ddf84);}exports[_0x0a9e('0x4b')]=function(_0x61bb17,_0x30decb,_0x2e5165,_0x375c18,_0x5d38ae,_0x4b1b9f){var _0x53975a,_0x39d77d,_0x204173,_0x14d602;_0x4b1b9f['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x4b1b9f[_0x0a9e('0x3b')]);if(_0x5d38ae&&_0x5d38ae['monitor_format']){logger['info'](_0x0a9e('0x4d'),'Recording\x20is\x20enabled!');_0x30decb[_0x0a9e('0x4e')]=util['format'](_0x0a9e('0x4f'),_0x4b1b9f[_0x0a9e('0x50')],_0x30decb[_0x0a9e('0x51')],md5(_0x30decb['uniqueid']));}else{_0x30decb[_0x0a9e('0x4e')]='';}return getConnection(_0x4b1b9f)[_0x0a9e('0x25')](function(_0x508b47){_0x14d602=_0x508b47;return getUser(_0x4b1b9f,_0x375c18['email'],_0x14d602);})[_0x0a9e('0x25')](function(_0x3aedd0){_0x53975a=_0x3aedd0;logger['info'](_0x0a9e('0x52'),_0x53975a['id']);return getEndUser(_0x4b1b9f,_0x30decb['calleridname'],_0x30decb[_0x0a9e('0x53')],_0x14d602);})['then'](function(_0xe22ccc){_0x39d77d=_0xe22ccc;logger['info']('The\x20Enduser\x20ID\x20is:',_0x39d77d['id']);return createTicket(_0x4b1b9f,_0x53975a,_0x39d77d,_0x2e5165,_0x30decb,_0x2e5165['Fields'],_0x14d602);})[_0x0a9e('0x25')](function(_0x47de4c){_0x204173=_0x47de4c;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x204173['id']);var _0x232830=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x4b1b9f[_0x0a9e('0x3b')],_['split'](_0x204173['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x4d'),_0x0a9e('0x57'));emit(util[_0x0a9e('0x1e')](_0x0a9e('0x58'),_0x375c18[_0x0a9e('0x16')]),'trigger:browser:url',{'uri':_0x232830});})[_0x0a9e('0x28')](function(_0x26bc80){logger['error'](_0x0a9e('0x4d'),JSON['stringify'](_0x26bc80));});};exports[_0x0a9e('0x59')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee,_0x273cb5,_0x49d231,_0x2244d6,_0x1fc70e){var _0x261adb,_0x7be420,_0x1cca9f,_0x26d7db;_0x2244d6['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x2244d6['remoteUri']);_0x2244d6[_0x0a9e('0x50')]=intUtil[_0x0a9e('0x4c')](_0x2244d6[_0x0a9e('0x50')]);if(_0x1fc70e&&_0x1fc70e['recordingFormat']&&_0x1fc70e[_0x0a9e('0x5a')]!==_0x0a9e('0x5b')){logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),'Recording\x20is\x20enabled!');_0x4b3c1a[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2244d6[_0x0a9e('0x50')],_0x4b3c1a[_0x0a9e('0x51')],md5(_0x4b3c1a[_0x0a9e('0x51')]));}return getConnection(_0x2244d6)[_0x0a9e('0x25')](function(_0x401837){_0x26d7db=_0x401837;return getUser(_0x2244d6,_0x273cb5['email'],_0x26d7db);})[_0x0a9e('0x25')](function(_0x2937e0){_0x261adb=_0x2937e0;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x261adb['id']);return getEndUser(_0x2244d6,_0x4b3c1a[_0x0a9e('0x5d')],_0x4b3c1a['destcalleridnum'],_0x26d7db);})['then'](function(_0x242745){_0x7be420=_0x242745;logger[_0x0a9e('0x18')](_0x0a9e('0x5e'),_0x7be420['id']);return createTicket(_0x2244d6,_0x261adb,_0x7be420,_0x5674ee,_0x4b3c1a,_0x5674ee[_0x0a9e('0x5f')],_0x26d7db);})[_0x0a9e('0x25')](function(_0xc8c264){_0x1cca9f=_0xc8c264;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1cca9f['id']);var _0x2e89b7=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x2244d6[_0x0a9e('0x3b')],_[_0x0a9e('0x60')](_0x1cca9f['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),_0x0a9e('0x57'));emit(util['format'](_0x0a9e('0x58'),_0x273cb5[_0x0a9e('0x16')]),_0x0a9e('0x61'),{'uri':_0x2e89b7});})['catch'](function(_0x1148a1){logger[_0x0a9e('0x29')]('[OUTBOUND]',JSON[_0x0a9e('0x24')](_0x1148a1));});};exports[_0x0a9e('0x62')]=function(_0x3ef315,_0x427946,_0x13b5c0,_0x4a43a8,_0x50cdce,_0x4a2438){var _0x40fb85,_0x18bf5d,_0x1104ad,_0x23a7d3;_0x4a2438[_0x0a9e('0x3b')]=intUtil[_0x0a9e('0x4c')](_0x4a2438[_0x0a9e('0x3b')]);_0x4a2438[_0x0a9e('0x50')]=intUtil['stripTrailingSlash'](_0x4a2438[_0x0a9e('0x50')]);if(_0x50cdce&&_0x50cdce[_0x0a9e('0x63')]){logger[_0x0a9e('0x18')]('['+_0x427946['lastevent'][_0x0a9e('0x64')]()+']','Recording\x20is\x20enabled!');_0x427946[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4a2438[_0x0a9e('0x50')],_0x427946[_0x0a9e('0x51')],md5(_0x427946[_0x0a9e('0x51')]));}else{_0x427946[_0x0a9e('0x4e')]='';}return getConnection(_0x4a2438)['then'](function(_0x1d442c){_0x23a7d3=_0x1d442c;return getUser(_0x4a2438,'',_0x23a7d3);})[_0x0a9e('0x25')](function(_0x371533){_0x40fb85=_0x371533;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x40fb85['id']);return getEndUser(_0x4a2438,_0x427946[_0x0a9e('0x65')],_0x427946[_0x0a9e('0x53')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0x361b21){_0x18bf5d=_0x361b21;logger['info'](_0x0a9e('0x5e'),_0x18bf5d['id']);return createTicket(_0x4a2438,_0x40fb85,_0x18bf5d,_0x13b5c0,_0x427946,_0x13b5c0[_0x0a9e('0x5f')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0xf410e5){_0x1104ad=_0xf410e5;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1104ad['id']);})[_0x0a9e('0x28')](function(_0x336dc3){logger[_0x0a9e('0x29')]('['+_0x427946[_0x0a9e('0x66')][_0x0a9e('0x64')]()+']',JSON[_0x0a9e('0x24')](_0x336dc3));});};
\ No newline at end of file
+var _0x9c44=['stringify','validateEmail','Getting\x20agent\x20with\x20email','GET','%s/webservice.php','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','length','Agent\x20found!','email1','first_name','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','getUser','admin','Searching\x20end\x20user\x20with\x20phone','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','login','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','queue','stripTrailingSlash','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','recordingURL','email','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','Fields','The\x20Ticket\x20ID\x20is:','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','Ticket\x20created!','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridnum','lastevent','bluebird','md5','util','ioredis','./util','../../../../config/environment','redis','localhost','socket.io-emitter','emit','forEach','string','picklist','idField','content','type','variable','variableName','toString','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','merge','Normal','Open','getString','Subjects','POST','remoteUri','create','username','sessionName','then','resolve','result','format','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','statusCode','error','[vTiger],\x20%s,\x20%s,\x20%s'];(function(_0x382cd3,_0x4936fa){var _0x2e5db4=function(_0xaa1c80){while(--_0xaa1c80){_0x382cd3['push'](_0x382cd3['shift']());}};_0x2e5db4(++_0x4936fa);}(_0x9c44,0x178));var _0x49c4=function(_0x23e7c1,_0x35110c){_0x23e7c1=_0x23e7c1-0x0;var _0x1add43=_0x9c44[_0x23e7c1];return _0x1add43;};'use strict';var _=require('lodash');var rp=require('request-promise');var BPromise=require(_0x49c4('0x0'));var md5=require(_0x49c4('0x1'));var util=require(_0x49c4('0x2'));var Redis=require(_0x49c4('0x3'));var intUtil=require(_0x49c4('0x4'));var config=require(_0x49c4('0x5'));var logger=require('../../../../config/logger')('vTiger');config[_0x49c4('0x6')]=_['defaults'](config[_0x49c4('0x6')],{'host':_0x49c4('0x7'),'port':0x18eb});var io=require(_0x49c4('0x8'))(new Redis(config[_0x49c4('0x6')]));function emit(_0x436234,_0x511d53,_0x11c586){io['to'](_0x436234)[_0x49c4('0x9')](_0x511d53,_0x11c586);}function getCustomFields(_0x1d13fb,_0x4487ca){var _0x4c7d3a={};if(_0x1d13fb['length']>0x0){_[_0x49c4('0xa')](_0x1d13fb,function(_0x313e73){if(_['includes']([_0x49c4('0xb'),_0x49c4('0xc')],_0x313e73['type'])&&_0x313e73['idField']){_0x4c7d3a[_0x313e73[_0x49c4('0xd')]]=_0x313e73[_0x49c4('0xe')]['toString']();}else if(_0x313e73[_0x49c4('0xf')]===_0x49c4('0x10')&&_0x313e73['variableName']&&_0x313e73[_0x49c4('0xd')]&&_0x4487ca[_0x313e73[_0x49c4('0x11')]]){_0x4c7d3a[_0x313e73[_0x49c4('0xd')]]=_0x4487ca[_0x313e73[_0x49c4('0x11')]][_0x49c4('0x12')]();}else if(_0x313e73[_0x49c4('0xf')]===_0x49c4('0x13')&&_0x313e73[_0x49c4('0x14')]&&_0x313e73['Variable'][_0x49c4('0x15')]&&_0x313e73[_0x49c4('0xd')]&&_0x4487ca[_0x313e73[_0x49c4('0x14')][_0x49c4('0x15')][_0x49c4('0x16')]()]){_0x4c7d3a[_0x313e73['idField']]=_0x4487ca[_0x313e73[_0x49c4('0x14')][_0x49c4('0x15')]['toLowerCase']()]['toString']();}});}return _0x4c7d3a;}function createTicket(_0x3c782d,_0x2f82d5,_0x3addb2,_0x59f29b,_0x24856d,_0x50b151,_0x2cbd50){logger[_0x49c4('0x17')](_0x49c4('0x18'));var _0x291526=_[_0x49c4('0x19')]({'parent_id':'','assigned_user_id':_0x2f82d5['id'],'ticketpriorities':_0x49c4('0x1a'),'ticketstatus':_0x49c4('0x1b'),'ticket_title':intUtil[_0x49c4('0x1c')](_0x59f29b[_0x49c4('0x1d')],_0x24856d,'\x20'),'description':intUtil['getString'](_0x59f29b['Descriptions'],_0x24856d,'\x0a'),'contact_id':_0x3addb2['id']},getCustomFields(_0x50b151,_0x24856d));var _0x57f502={'method':_0x49c4('0x1e'),'uri':util['format']('%s/webservice.php',_0x3c782d[_0x49c4('0x1f')]),'form':{'operation':_0x49c4('0x20'),'username':_0x3c782d[_0x49c4('0x21')],'sessionName':_0x2cbd50[_0x49c4('0x22')],'elementType':'HelpDesk','element':JSON['stringify'](_0x291526)},'json':!![]};return request(_0x57f502)[_0x49c4('0x23')](function(_0x9cb797){if(_0x9cb797['success']){return BPromise[_0x49c4('0x24')]({'id':_0x9cb797[_0x49c4('0x25')]['id']});}else{throw new Error(util[_0x49c4('0x26')](_0x49c4('0x27'),JSON['stringify'](_0x9cb797['error'])));}})[_0x49c4('0x28')](function(_0x53c199){var _0x3800b7=_0x53c199[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),'createTicket',_0x3800b7,JSON[_0x49c4('0x2c')](_0x53c199));});}function getUser(_0x2b2793,_0x46e04d,_0x4f28a2){if(intUtil[_0x49c4('0x2d')](_0x46e04d)){logger[_0x49c4('0x17')](_0x49c4('0x2e'),_0x46e04d);return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2b2793[_0x49c4('0x1f')]),'qs':{'operation':'query','username':_0x2b2793['username'],'sessionName':_0x4f28a2['sessionName'],'query':util[_0x49c4('0x26')](_0x49c4('0x31'),_0x46e04d)},'json':!![]})[_0x49c4('0x23')](function(_0x27e467){if(_0x27e467[_0x49c4('0x32')]&&_0x27e467['result'][_0x49c4('0x33')]){logger[_0x49c4('0x17')](_0x49c4('0x34'));return BPromise[_0x49c4('0x24')]({'id':_0x27e467['result'][0x0]['id'],'email':_0x27e467['result'][0x0][_0x49c4('0x35')],'name':_0x27e467[_0x49c4('0x25')][0x0][_0x49c4('0x36')]+'\x20'+_0x27e467[_0x49c4('0x25')][_0x49c4('0x37')]});}else{logger['info'](_0x49c4('0x38'));return BPromise[_0x49c4('0x24')]({'id':_0x4f28a2[_0x49c4('0x39')],'email':_0x2b2793['username'],'name':'admin'});}})[_0x49c4('0x28')](function(_0x1991e9){var _0x3bec0a=_0x1991e9[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x3a'),_0x3bec0a,JSON[_0x49c4('0x2c')](_0x1991e9));});}else{logger[_0x49c4('0x17')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x49c4('0x24')]({'id':_0x4f28a2['userId'],'email':_0x2b2793[_0x49c4('0x21')],'name':_0x49c4('0x3b')})[_0x49c4('0x28')](function(_0x1c2830){var _0x4ed4f8=_0x1c2830[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),'getUser',_0x4ed4f8,JSON[_0x49c4('0x2c')](_0x1c2830));});}}function getEndUser(_0x21d8c7,_0x178987,_0x5e5366,_0x1ba7a0){logger[_0x49c4('0x17')](_0x49c4('0x3c'),_0x5e5366);return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x21d8c7[_0x49c4('0x1f')]),'qs':{'operation':'query','username':_0x21d8c7[_0x49c4('0x21')],'sessionName':_0x1ba7a0[_0x49c4('0x22')],'query':util[_0x49c4('0x26')](_0x49c4('0x3d'),_0x5e5366,_0x5e5366,_0x5e5366,_0x5e5366,_0x5e5366)},'json':!![]})[_0x49c4('0x23')](function(_0x29dd5d){if(_0x29dd5d[_0x49c4('0x32')]&&_0x29dd5d[_0x49c4('0x25')][_0x49c4('0x33')]){logger[_0x49c4('0x17')](_0x49c4('0x3e'));return BPromise[_0x49c4('0x24')]({'id':_0x29dd5d[_0x49c4('0x25')][0x0]['id'],'name':_0x29dd5d['result'][0x0][_0x49c4('0x3f')]+'\x20'+_0x29dd5d['result'][0x0][_0x49c4('0x40')],'phone':_0x5e5366});}else{logger[_0x49c4('0x17')](_0x49c4('0x41'));return request({'method':_0x49c4('0x1e'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x21d8c7['remoteUri']),'form':{'operation':'create','sessionName':_0x1ba7a0[_0x49c4('0x22')],'elementType':_0x49c4('0x42'),'element':JSON[_0x49c4('0x2c')]({'lastname':_0x178987,'phone':_0x5e5366,'assigned_user_id':'\x20'})},'json':!![]})[_0x49c4('0x23')](function(_0x490823){logger[_0x49c4('0x17')](_0x49c4('0x43'));return BPromise[_0x49c4('0x24')]({'id':_0x490823[_0x49c4('0x25')]['id'],'name':_0x490823[_0x49c4('0x25')][_0x49c4('0x40')],'phone':_0x490823[_0x49c4('0x25')][_0x49c4('0x44')]});})[_0x49c4('0x28')](function(_0x5640d3){var _0x2ad771=_0x5640d3['statusCode']||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x45'),_0x2ad771,JSON[_0x49c4('0x2c')](_0x5640d3));});}});}function getConnection(_0x2d93d8){var _0x5b296d=_0x2d93d8[_0x49c4('0x21')];var _0x15b674=_0x2d93d8[_0x49c4('0x46')];return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2d93d8[_0x49c4('0x1f')]),'qs':{'operation':'getchallenge','username':_0x5b296d},'json':!![]})[_0x49c4('0x23')](function(_0x5cfff9){if(_0x5cfff9[_0x49c4('0x32')]){return request({'method':_0x49c4('0x1e'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2d93d8[_0x49c4('0x1f')]),'form':{'operation':_0x49c4('0x47'),'username':_0x5b296d,'accessKey':md5(_0x5cfff9[_0x49c4('0x25')]['token']+_0x15b674)},'json':!![]});}})[_0x49c4('0x23')](function(_0x3feaf0){if(_0x3feaf0['success']){return BPromise[_0x49c4('0x24')](_0x3feaf0[_0x49c4('0x25')]);}else{throw new Error(util[_0x49c4('0x26')](_0x49c4('0x48'),_0x2d93d8['id']));}})['catch'](function(_0x5d8bf0){var _0x144fd2=_0x5d8bf0['statusCode']||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x49'),_0x144fd2,JSON[_0x49c4('0x2c')](_0x5d8bf0));});}function request(_0x240c20){logger[_0x49c4('0x17')](_0x49c4('0x4a'),JSON['stringify'](_0x240c20));return rp(_0x240c20);}exports[_0x49c4('0x4b')]=function(_0x1550ce,_0x3936d3,_0x3d944c,_0x17ef75,_0x2644c0,_0x156748){var _0x25d174,_0x1e0b4f,_0x1856be,_0x5b822f;_0x156748['remoteUri']=intUtil[_0x49c4('0x4c')](_0x156748[_0x49c4('0x1f')]);if(_0x2644c0&&_0x2644c0['monitor_format']){logger['info'](_0x49c4('0x4d'),'Recording\x20is\x20enabled!');_0x3936d3['recordingURL']=util[_0x49c4('0x26')](_0x49c4('0x4e'),_0x156748[_0x49c4('0x4f')],_0x3936d3[_0x49c4('0x50')],md5(_0x3936d3[_0x49c4('0x50')]));}else{_0x3936d3[_0x49c4('0x51')]='';}return getConnection(_0x156748)[_0x49c4('0x23')](function(_0x50798e){_0x5b822f=_0x50798e;return getUser(_0x156748,_0x17ef75[_0x49c4('0x52')],_0x5b822f);})[_0x49c4('0x23')](function(_0x207572){_0x25d174=_0x207572;logger[_0x49c4('0x17')](_0x49c4('0x53'),_0x25d174['id']);return getEndUser(_0x156748,_0x3936d3[_0x49c4('0x54')],_0x3936d3['calleridnum'],_0x5b822f);})['then'](function(_0x1ef0c1){_0x1e0b4f=_0x1ef0c1;logger[_0x49c4('0x17')](_0x49c4('0x55'),_0x1e0b4f['id']);return createTicket(_0x156748,_0x25d174,_0x1e0b4f,_0x3d944c,_0x3936d3,_0x3d944c[_0x49c4('0x56')],_0x5b822f);})[_0x49c4('0x23')](function(_0x6b2592){_0x1856be=_0x6b2592;logger[_0x49c4('0x17')]('Ticket\x20created!');logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x1856be['id']);var _0x4ba4eb=util[_0x49c4('0x26')]('%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT',_0x156748[_0x49c4('0x1f')],_[_0x49c4('0x58')](_0x1856be['id'],'x')[0x1]);logger[_0x49c4('0x17')](_0x49c4('0x4d'),_0x49c4('0x59'));emit(util[_0x49c4('0x26')](_0x49c4('0x5a'),_0x17ef75[_0x49c4('0x15')]),'trigger:browser:url',{'uri':_0x4ba4eb});})[_0x49c4('0x28')](function(_0x27b9c2){logger['error'](_0x49c4('0x4d'),JSON[_0x49c4('0x2c')](_0x27b9c2));});};exports['outbound']=function(_0x39c455,_0x42e0e6,_0x4f50bf,_0x4dc54d,_0x589484,_0x513879,_0xc43386){var _0x54947d,_0xb20a5d,_0x32f344,_0x515240;_0x513879[_0x49c4('0x1f')]=intUtil[_0x49c4('0x4c')](_0x513879['remoteUri']);_0x513879[_0x49c4('0x4f')]=intUtil[_0x49c4('0x4c')](_0x513879[_0x49c4('0x4f')]);if(_0xc43386&&_0xc43386[_0x49c4('0x5b')]&&_0xc43386['recordingFormat']!==_0x49c4('0x5c')){logger[_0x49c4('0x17')](_0x49c4('0x5d'),_0x49c4('0x5e'));_0x42e0e6['recordingURL']=util[_0x49c4('0x26')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x513879['serverUrl'],_0x42e0e6['uniqueid'],md5(_0x42e0e6['uniqueid']));}return getConnection(_0x513879)[_0x49c4('0x23')](function(_0x32eaef){_0x515240=_0x32eaef;return getUser(_0x513879,_0x4dc54d[_0x49c4('0x52')],_0x515240);})[_0x49c4('0x23')](function(_0x5b056e){_0x54947d=_0x5b056e;logger['info'](_0x49c4('0x53'),_0x54947d['id']);return getEndUser(_0x513879,_0x42e0e6[_0x49c4('0x5f')],_0x42e0e6[_0x49c4('0x60')],_0x515240);})[_0x49c4('0x23')](function(_0x102c15){_0xb20a5d=_0x102c15;logger[_0x49c4('0x17')](_0x49c4('0x55'),_0xb20a5d['id']);return createTicket(_0x513879,_0x54947d,_0xb20a5d,_0x4f50bf,_0x42e0e6,_0x4f50bf[_0x49c4('0x56')],_0x515240);})['then'](function(_0x2276db){_0x32f344=_0x2276db;logger['info'](_0x49c4('0x61'));logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x32f344['id']);var _0x1ea1b4=util[_0x49c4('0x26')](_0x49c4('0x62'),_0x513879[_0x49c4('0x1f')],_[_0x49c4('0x58')](_0x32f344['id'],'x')[0x1]);logger[_0x49c4('0x17')](_0x49c4('0x5d'),_0x49c4('0x59'));emit(util[_0x49c4('0x26')](_0x49c4('0x5a'),_0x4dc54d[_0x49c4('0x15')]),_0x49c4('0x63'),{'uri':_0x1ea1b4});})[_0x49c4('0x28')](function(_0x371e49){logger[_0x49c4('0x2a')]('[OUTBOUND]',JSON['stringify'](_0x371e49));});};exports[_0x49c4('0x64')]=function(_0x16b3e8,_0x4af680,_0x1a15f3,_0x38ad50,_0x2939fd,_0x16e7b1){var _0x4d6aaa,_0x5a14a5,_0x4a85d4,_0x2e90d8;_0x16e7b1[_0x49c4('0x1f')]=intUtil[_0x49c4('0x4c')](_0x16e7b1[_0x49c4('0x1f')]);_0x16e7b1[_0x49c4('0x4f')]=intUtil[_0x49c4('0x4c')](_0x16e7b1[_0x49c4('0x4f')]);if(_0x2939fd&&_0x2939fd[_0x49c4('0x65')]){logger[_0x49c4('0x17')]('['+_0x4af680['lastevent'][_0x49c4('0x66')]()+']',_0x49c4('0x5e'));_0x4af680[_0x49c4('0x51')]=util['format'](_0x49c4('0x4e'),_0x16e7b1[_0x49c4('0x4f')],_0x4af680[_0x49c4('0x50')],md5(_0x4af680[_0x49c4('0x50')]));}else{_0x4af680[_0x49c4('0x51')]='';}return getConnection(_0x16e7b1)[_0x49c4('0x23')](function(_0x35fa39){_0x2e90d8=_0x35fa39;return getUser(_0x16e7b1,'',_0x2e90d8);})[_0x49c4('0x23')](function(_0x4ba198){_0x4d6aaa=_0x4ba198;logger[_0x49c4('0x17')](_0x49c4('0x53'),_0x4d6aaa['id']);return getEndUser(_0x16e7b1,_0x4af680[_0x49c4('0x54')],_0x4af680[_0x49c4('0x67')],_0x2e90d8);})[_0x49c4('0x23')](function(_0x4a204d){_0x5a14a5=_0x4a204d;logger['info'](_0x49c4('0x55'),_0x5a14a5['id']);return createTicket(_0x16e7b1,_0x4d6aaa,_0x5a14a5,_0x1a15f3,_0x4af680,_0x1a15f3['Fields'],_0x2e90d8);})[_0x49c4('0x23')](function(_0x558880){_0x4a85d4=_0x558880;logger[_0x49c4('0x17')](_0x49c4('0x61'));logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x4a85d4['id']);})['catch'](function(_0x123060){logger[_0x49c4('0x2a')]('['+_0x4af680[_0x49c4('0x68')][_0x49c4('0x66')]()+']',JSON[_0x49c4('0x2c')](_0x123060));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa27c=['%s/agent/tickets/%s','replace','/api/v2','error','Zendesk\x20account\x20type\x20not\x20recognized','catch','inspect','outbound','recordingFormat','none','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','Authorization','The\x20User\x20ID\x20is:','destcalleridnum','The\x20Enduser\x20ID\x20is:','[OUTBOUND]','newTab','trigger:browser:url','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','unmanaged','lastevent','toUpperCase','Recording\x20is\x20enabled!','calleridname','calleridnum','\x20Error\x20running\x20Zendesk\x20integration','lodash','request-promise','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','redis','localhost','socket.io-emitter','emit','info','Creating\x20new\x20ticket...','format','%s/tickets.json','POST','Tags','name','getString','Subjects','Descriptions','Fields','then','Ticket\x20created!','validateEmail','Getting\x20agent\x20with\x20email','%s/search.json','count','Agent\x20found!','find','results','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','remoteUri','Admin\x20account\x20selected.','user','type:user\x20role:end-user\x20phone:%s','length','filter','end-user','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','Caller\x20-\x20%s','Enduser\x20created.','authType','password','username','%s/token:%s','token','Basic\x20%s','base64','debug','[HTTP]','defaults','GET','map','forEach','picklist','type','nameField','customField','toLowerCase','content','toString','includes','string','custom_fields','push','variable','idField','variableName','customVariable','Variable','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','recordingURL','uniqueid','email','The\x20Ticket\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s'];(function(_0x29d915,_0x54a040){var _0x160f86=function(_0x237dfa){while(--_0x237dfa){_0x29d915['push'](_0x29d915['shift']());}};_0x160f86(++_0x54a040);}(_0xa27c,0xfe));var _0xca27=function(_0x39e4f6,_0x129594){_0x39e4f6=_0x39e4f6-0x0;var _0x4ed065=_0xa27c[_0x39e4f6];return _0x4ed065;};'use strict';var _=require(_0xca27('0x0'));var rp=require(_0xca27('0x1'));var md5=require(_0xca27('0x2'));var util=require('util');var Redis=require(_0xca27('0x3'));var intUtil=require(_0xca27('0x4'));var config=require(_0xca27('0x5'));var logger=require(_0xca27('0x6'))('zendesk');config[_0xca27('0x7')]=_['defaults'](config[_0xca27('0x7')],{'host':_0xca27('0x8'),'port':0x18eb});var io=require(_0xca27('0x9'))(new Redis(config['redis']));function emit(_0x281c7e,_0x33681e,_0x2e9a42){io['to'](_0x281c7e)[_0xca27('0xa')](_0x33681e,_0x2e9a42);}var headers={'Content-Type':'application/json','Accept':'application/json'};function getTicket(_0xc2551b,_0x498fff,_0x1c402d,_0x35d856,_0xc6896c){logger[_0xca27('0xb')](_0xca27('0xc'));return request({'uri':util[_0xca27('0xd')](_0xca27('0xe'),_0xc2551b['remoteUri']),'method':_0xca27('0xf'),'body':{'ticket':_['merge']({'requester_id':_0x1c402d['id'],'submitter_id':_0x498fff?_0x498fff['id']:undefined,'assignee_id':_0x498fff?_0x498fff['id']:undefined,'tags':getTags(_0x35d856[_0xca27('0x10')],_0xca27('0x11')),'subject':intUtil[_0xca27('0x12')](_0x35d856[_0xca27('0x13')],_0xc6896c,'\x20'),'description':intUtil[_0xca27('0x12')](_0x35d856[_0xca27('0x14')],_0xc6896c,'\x0a'),'comment':{'public':![],'body':intUtil[_0xca27('0x12')](_0x35d856['Descriptions'],_0xc6896c,'\x0a')}},getCustomFields(_0x35d856[_0xca27('0x15')],_0xc6896c))}})[_0xca27('0x16')](function(_0x30ad39){logger[_0xca27('0xb')](_0xca27('0x17'));return _0x30ad39['ticket'];});}function getUser(_0xc15daf,_0x371771){if(intUtil[_0xca27('0x18')](_0x371771)){logger['info'](_0xca27('0x19'),_0x371771);return request({'uri':util['format'](_0xca27('0x1a'),_0xc15daf['remoteUri']),'qs':{'query':util['format']('type:user\x20role:agent\x20email:%s',_0x371771)}})[_0xca27('0x16')](function(_0x53bbd5){if(_0x53bbd5[_0xca27('0x1b')]){logger['info'](_0xca27('0x1c'));return _[_0xca27('0x1d')](_0x53bbd5[_0xca27('0x1e')],{'email':_0x371771,'role':'agent'});}else{logger[_0xca27('0xb')](_0xca27('0x1f'));return request({'uri':util[_0xca27('0xd')](_0xca27('0x20'),_0xc15daf[_0xca27('0x21')])})['then'](function(_0x5c380c){logger[_0xca27('0xb')](_0xca27('0x22'));return _0x5c380c[_0xca27('0x23')];});}});}else{logger[_0xca27('0xb')](_0xca27('0x1f'));return request({'uri':util[_0xca27('0xd')](_0xca27('0x20'),_0xc15daf['remoteUri'])})['then'](function(_0xc68db3){logger['info'](_0xca27('0x22'));return _0xc68db3[_0xca27('0x23')];});}}function getEndUser(_0x42095c,_0x4e7863,_0x3cfb07){logger[_0xca27('0xb')]('Searching\x20enduser\x20with\x20phone',_0x3cfb07);return request({'uri':util[_0xca27('0xd')](_0xca27('0x1a'),_0x42095c[_0xca27('0x21')]),'qs':{'query':util[_0xca27('0xd')](_0xca27('0x24'),_0x3cfb07)}})['then'](function(_0xce6fc4){var _0x4fd2aa;if(_0xce6fc4[_0xca27('0x1e')][_0xca27('0x25')]){_0xce6fc4['results']=_[_0xca27('0x26')](_0xce6fc4[_0xca27('0x1e')],{'suspended':![],'role':_0xca27('0x27')});if(_0xce6fc4['results'][_0xca27('0x25')]){_0x4fd2aa=_['first'](_0xce6fc4[_0xca27('0x1e')]);}}if(_0x4fd2aa){logger[_0xca27('0xb')](_0xca27('0x28'));return _0x4fd2aa;}else{logger[_0xca27('0xb')](_0xca27('0x29'));return request({'uri':util['format'](_0xca27('0x2a'),_0x42095c['remoteUri']),'method':'POST','body':{'user':{'role':_0xca27('0x27'),'name':util['format'](_0xca27('0x2b'),_0x4e7863||_0x3cfb07),'phone':_0x3cfb07}}})['then'](function(_0x4e7d98){logger[_0xca27('0xb')](_0xca27('0x2c'));return _0x4e7d98[_0xca27('0x23')];});}});}function getAuth(_0x27d5c8){var _0x325431;if(_0x27d5c8[_0xca27('0x2d')]===_0xca27('0x2e')){_0x325431=util[_0xca27('0xd')]('%s:%s',_0x27d5c8[_0xca27('0x2f')],_0x27d5c8[_0xca27('0x2e')]);}else if(_0x27d5c8[_0xca27('0x2d')]==='token'){_0x325431=util[_0xca27('0xd')](_0xca27('0x30'),_0x27d5c8['username'],_0x27d5c8[_0xca27('0x31')]);}return util[_0xca27('0xd')](_0xca27('0x32'),new Buffer(_0x325431)['toString'](_0xca27('0x33')));}function request(_0x319e31){logger[_0xca27('0x34')](_0xca27('0x35'),JSON['stringify'](_0x319e31));return rp(_[_0xca27('0x36')](_0x319e31,{'method':_0xca27('0x37'),'headers':headers,'json':!![]}));}function getTags(_0x3c37cd,_0x272af3){var _0x13fca7=[];if(_0x3c37cd&&_0x3c37cd[_0xca27('0x25')]>0x0){_0x13fca7=_[_0xca27('0x38')](_0x3c37cd,_0x272af3);}return _0x13fca7;}function getCustomFields(_0x1354cc,_0x6caea9){var _0x35ffd8=[];var _0x530ee3={'custom_fields':[]};if(_0x1354cc[_0xca27('0x25')]>0x0){_[_0xca27('0x39')](_0x1354cc,function(_0x3f26c0){if(_['includes'](['string',_0xca27('0x3a')],_0x3f26c0[_0xca27('0x3b')])&&_0x3f26c0[_0xca27('0x3c')]&&!_0x3f26c0[_0xca27('0x3d')]){_0x530ee3[_0x3f26c0['nameField'][_0xca27('0x3e')]()]=_0x3f26c0[_0xca27('0x3f')][_0xca27('0x40')]();}else if(_[_0xca27('0x41')]([_0xca27('0x42'),_0xca27('0x3a')],_0x3f26c0[_0xca27('0x3b')])&&_0x3f26c0['idField']&&_0x3f26c0['customField']){_0x530ee3[_0xca27('0x43')][_0xca27('0x44')]({'id':_0x3f26c0['idField'],'value':_0x3f26c0['content'][_0xca27('0x40')]()});}else if(_0x3f26c0['type']===_0xca27('0x45')&&_0x3f26c0['variableName']&&_0x3f26c0[_0xca27('0x46')]&&_0x3f26c0[_0xca27('0x3d')]){_0x6caea9[_0x3f26c0['variableName']]&&_0x530ee3[_0xca27('0x43')][_0xca27('0x44')]({'id':_0x3f26c0[_0xca27('0x46')],'value':_0x6caea9[_0x3f26c0[_0xca27('0x47')]][_0xca27('0x40')]()});}else if(_0x3f26c0[_0xca27('0x3b')]===_0xca27('0x48')&&_0x3f26c0[_0xca27('0x49')]&&_0x3f26c0[_0xca27('0x49')][_0xca27('0x11')]&&_0x3f26c0[_0xca27('0x46')]&&_0x3f26c0[_0xca27('0x3d')]){_0x6caea9[_0x3f26c0[_0xca27('0x49')]['name'][_0xca27('0x3e')]()]&&_0x530ee3['custom_fields']['push']({'id':_0x3f26c0['idField'],'value':_0x6caea9[_0x3f26c0['Variable']['name'][_0xca27('0x3e')]()][_0xca27('0x40')]()});}});}return _0x530ee3;}exports[_0xca27('0x4a')]=function(_0x34bc09,_0x49e671,_0x4aa31c,_0x19a9dd,_0x20e2fe,_0x55997d){var _0x5c19a8,_0x51a0b9;_0x55997d[_0xca27('0x21')]=intUtil[_0xca27('0x4b')](_0x55997d[_0xca27('0x21')]);_0x55997d[_0xca27('0x4c')]=intUtil[_0xca27('0x4b')](_0x55997d['serverUrl']);if(_0x20e2fe&&_0x20e2fe[_0xca27('0x4d')]){logger['info'](_0xca27('0x4e'),'Recording\x20is\x20enabled!');_0x49e671[_0xca27('0x4f')]=util[_0xca27('0xd')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x55997d[_0xca27('0x4c')],_0x49e671[_0xca27('0x50')],md5(_0x49e671[_0xca27('0x50')]));}else{_0x49e671[_0xca27('0x4f')]='';}headers['Authorization']=getAuth(_0x55997d);return getUser(_0x55997d,_0x19a9dd[_0xca27('0x51')])[_0xca27('0x16')](function(_0x4fffcb){_0x5c19a8=_0x4fffcb;logger[_0xca27('0xb')]('The\x20User\x20ID\x20is:',_0x5c19a8['id']);return getEndUser(_0x55997d,_0x49e671['calleridname'],_0x49e671['calleridnum']);})[_0xca27('0x16')](function(_0x1a8ec4){_0x51a0b9=_0x1a8ec4;logger[_0xca27('0xb')]('The\x20Enduser\x20ID\x20is:',_0x51a0b9['id']);return getTicket(_0x55997d,_0x5c19a8,_0x51a0b9,_0x4aa31c,_0x49e671);})[_0xca27('0x16')](function(_0x25efbd){if(_0x25efbd){logger[_0xca27('0xb')](_0xca27('0x52'),_0x25efbd['id']);switch(_0x55997d[_0xca27('0x3b')]){case _0xca27('0x53'):logger[_0xca27('0xb')](_0xca27('0x4e'),_0xca27('0x54'));return request({'uri':util['format'](_0xca27('0x55'),_0x55997d[_0xca27('0x21')],_0x5c19a8['id'],_0x25efbd['id']),'method':_0xca27('0xf')});case'newTab':logger[_0xca27('0xb')](_0xca27('0x4e'),_0xca27('0x56'));emit(util[_0xca27('0xd')](_0xca27('0x57'),_0x19a9dd[_0xca27('0x11')]),'trigger:browser:url',{'uri':util[_0xca27('0xd')](_0xca27('0x58'),_0x55997d[_0xca27('0x21')][_0xca27('0x59')](_0xca27('0x5a'),''),_0x25efbd['id'])});break;default:logger[_0xca27('0x5b')](_0xca27('0x4e'),_0xca27('0x5c'));}}})[_0xca27('0x5d')](function(_0x43a020){logger[_0xca27('0x5b')]('[QUEUE]\x20Error\x20running\x20Zendesk\x20integration',util[_0xca27('0x5e')](_0x43a020,{'showHidden':!![],'depth':null}));});};exports[_0xca27('0x5f')]=function(_0x9fbef2,_0x270a58,_0x1f32ac,_0x4e0064,_0x98795f,_0x2d6170,_0x2321d2){var _0x28c406,_0x5c4144;_0x2d6170[_0xca27('0x21')]=intUtil[_0xca27('0x4b')](_0x2d6170['remoteUri']);_0x2d6170[_0xca27('0x4c')]=intUtil['stripTrailingSlash'](_0x2d6170[_0xca27('0x4c')]);if(_0x2321d2&&_0x2321d2['recordingFormat']&&_0x2321d2[_0xca27('0x60')]!==_0xca27('0x61')){logger[_0xca27('0xb')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x270a58[_0xca27('0x4f')]=util['format'](_0xca27('0x62'),_0x2d6170[_0xca27('0x4c')],_0x270a58[_0xca27('0x50')],md5(_0x270a58[_0xca27('0x50')]));}headers[_0xca27('0x63')]=getAuth(_0x2d6170);return getUser(_0x2d6170,_0x4e0064[_0xca27('0x51')])[_0xca27('0x16')](function(_0x4620aa){_0x28c406=_0x4620aa;logger[_0xca27('0xb')](_0xca27('0x64'),_0x28c406['id']);return getEndUser(_0x2d6170,_0x270a58['destcalleridname'],_0x270a58[_0xca27('0x65')]);})[_0xca27('0x16')](function(_0xc7ed5c){_0x5c4144=_0xc7ed5c;logger['info'](_0xca27('0x66'),_0x5c4144['id']);return getTicket(_0x2d6170,_0x28c406,_0x5c4144,_0x1f32ac,_0x270a58);})[_0xca27('0x16')](function(_0x23678d){if(_0x23678d){logger[_0xca27('0xb')](_0xca27('0x52'),_0x23678d['id']);switch(_0x2d6170['type']){case _0xca27('0x53'):logger[_0xca27('0xb')](_0xca27('0x67'),_0xca27('0x54'));return request({'uri':util[_0xca27('0xd')](_0xca27('0x55'),_0x2d6170[_0xca27('0x21')],_0x28c406['id'],_0x23678d['id']),'method':_0xca27('0xf')});case _0xca27('0x68'):logger['info'](_0xca27('0x67'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xca27('0xd')]('user:%s',_0x4e0064[_0xca27('0x11')]),_0xca27('0x69'),{'uri':util['format'](_0xca27('0x58'),_0x2d6170[_0xca27('0x21')][_0xca27('0x59')](_0xca27('0x5a'),''),_0x23678d['id'])});break;default:logger[_0xca27('0x5b')](_0xca27('0x67'),_0xca27('0x5c'));}}})[_0xca27('0x5d')](function(_0x5b398f){logger[_0xca27('0x5b')](_0xca27('0x6a'),util[_0xca27('0x5e')](_0x5b398f,{'showHidden':!![],'depth':null}));});};exports[_0xca27('0x6b')]=function(_0x2ceaf3,_0x1e6b60,_0x32f3e2,_0x96b4a9,_0x20d291,_0x4985f8){var _0x49e3a2,_0x530aa4;_0x4985f8['remoteUri']=intUtil[_0xca27('0x4b')](_0x4985f8[_0xca27('0x21')]);_0x4985f8[_0xca27('0x4c')]=intUtil['stripTrailingSlash'](_0x4985f8[_0xca27('0x4c')]);if(_0x20d291&&_0x20d291[_0xca27('0x4d')]){logger[_0xca27('0xb')]('['+_0x1e6b60[_0xca27('0x6c')][_0xca27('0x6d')]()+']',_0xca27('0x6e'));_0x1e6b60[_0xca27('0x4f')]=util[_0xca27('0xd')](_0xca27('0x62'),_0x4985f8[_0xca27('0x4c')],_0x1e6b60[_0xca27('0x50')],md5(_0x1e6b60[_0xca27('0x50')]));}else{_0x1e6b60[_0xca27('0x4f')]='';}headers[_0xca27('0x63')]=getAuth(_0x4985f8);return getUser(_0x4985f8)[_0xca27('0x16')](function(_0x4d0d1b){_0x49e3a2=_0x4d0d1b;logger['info'](_0xca27('0x64'),_0x49e3a2['id']);return getEndUser(_0x4985f8,_0x1e6b60[_0xca27('0x6f')],_0x1e6b60[_0xca27('0x70')]);})[_0xca27('0x16')](function(_0x32045b){_0x530aa4=_0x32045b;logger[_0xca27('0xb')](_0xca27('0x66'),_0x530aa4['id']);return getTicket(_0x4985f8,_0x49e3a2,_0x530aa4,_0x32f3e2,_0x1e6b60);})['then'](function(_0x10caaa){if(_0x10caaa){logger[_0xca27('0xb')](_0xca27('0x52'),_0x10caaa['id']);}})['catch'](function(_0x260e45){logger[_0xca27('0x5b')]('['+_0x1e6b60[_0xca27('0x6c')]['toUpperCase']()+']'+_0xca27('0x71'),util[_0xca27('0x5e')](_0x260e45,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xaffc=['calleridnum','The\x20Enduser\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','replace','error','Zendesk\x20account\x20type\x20not\x20recognized','outbound','recordingFormat','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','destcalleridnum','The\x20Ticket\x20ID\x20is:','[OUTBOUND]','catch','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','inspect','unmanaged','lastevent','toUpperCase','calleridname','\x20Error\x20running\x20Zendesk\x20integration','lodash','request-promise','util','ioredis','./util','../../../../config/logger','zendesk','redis','defaults','localhost','socket.io-emitter','emit','application/json','info','Creating\x20new\x20ticket...','format','%s/tickets.json','remoteUri','POST','merge','Tags','Subjects','getString','Fields','Ticket\x20created!','ticket','Getting\x20agent\x20with\x20email','then','count','Agent\x20found!','find','results','agent','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','Admin\x20account\x20selected.','user','Searching\x20enduser\x20with\x20phone','end-user','length','first','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','Caller\x20-\x20%s','authType','password','%s:%s','username','token','Basic\x20%s','toString','debug','[HTTP]','stringify','GET','map','forEach','includes','string','picklist','type','nameField','toLowerCase','content','idField','customField','custom_fields','push','variable','variableName','Variable','name','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','uniqueid','Authorization','email','The\x20User\x20ID\x20is:'];(function(_0x26146c,_0x59aa9f){var _0x16950c=function(_0x37638e){while(--_0x37638e){_0x26146c['push'](_0x26146c['shift']());}};_0x16950c(++_0x59aa9f);}(_0xaffc,0xf7));var _0xcaff=function(_0x4c844c,_0x3dd181){_0x4c844c=_0x4c844c-0x0;var _0x4bc014=_0xaffc[_0x4c844c];return _0x4bc014;};'use strict';var _=require(_0xcaff('0x0'));var rp=require(_0xcaff('0x1'));var md5=require('md5');var util=require(_0xcaff('0x2'));var Redis=require(_0xcaff('0x3'));var intUtil=require(_0xcaff('0x4'));var config=require('../../../../config/environment');var logger=require(_0xcaff('0x5'))(_0xcaff('0x6'));config[_0xcaff('0x7')]=_[_0xcaff('0x8')](config['redis'],{'host':_0xcaff('0x9'),'port':0x18eb});var io=require(_0xcaff('0xa'))(new Redis(config[_0xcaff('0x7')]));function emit(_0x31c61b,_0x4fa5c2,_0x33a6c1){io['to'](_0x31c61b)[_0xcaff('0xb')](_0x4fa5c2,_0x33a6c1);}var headers={'Content-Type':_0xcaff('0xc'),'Accept':_0xcaff('0xc')};function getTicket(_0xf54ac6,_0x541ed7,_0x2e48be,_0x29da02,_0x35c4f5){logger[_0xcaff('0xd')](_0xcaff('0xe'));return request({'uri':util[_0xcaff('0xf')](_0xcaff('0x10'),_0xf54ac6[_0xcaff('0x11')]),'method':_0xcaff('0x12'),'body':{'ticket':_[_0xcaff('0x13')]({'requester_id':_0x2e48be['id'],'submitter_id':_0x541ed7?_0x541ed7['id']:undefined,'assignee_id':_0x541ed7?_0x541ed7['id']:undefined,'tags':getTags(_0x29da02[_0xcaff('0x14')],'name'),'subject':intUtil['getString'](_0x29da02[_0xcaff('0x15')],_0x35c4f5,'\x20'),'description':intUtil[_0xcaff('0x16')](_0x29da02['Descriptions'],_0x35c4f5,'\x0a'),'comment':{'public':![],'body':intUtil[_0xcaff('0x16')](_0x29da02['Descriptions'],_0x35c4f5,'\x0a')}},getCustomFields(_0x29da02[_0xcaff('0x17')],_0x35c4f5))}})['then'](function(_0x2bb6e6){logger[_0xcaff('0xd')](_0xcaff('0x18'));return _0x2bb6e6[_0xcaff('0x19')];});}function getUser(_0x288f2c,_0x3f7f2b){if(intUtil['validateEmail'](_0x3f7f2b)){logger['info'](_0xcaff('0x1a'),_0x3f7f2b);return request({'uri':util['format']('%s/search.json',_0x288f2c[_0xcaff('0x11')]),'qs':{'query':util['format']('type:user\x20role:agent\x20email:%s',_0x3f7f2b)}})[_0xcaff('0x1b')](function(_0x5819ed){if(_0x5819ed[_0xcaff('0x1c')]){logger[_0xcaff('0xd')](_0xcaff('0x1d'));return _[_0xcaff('0x1e')](_0x5819ed[_0xcaff('0x1f')],{'email':_0x3f7f2b,'role':_0xcaff('0x20')});}else{logger[_0xcaff('0xd')](_0xcaff('0x21'));return request({'uri':util[_0xcaff('0xf')](_0xcaff('0x22'),_0x288f2c[_0xcaff('0x11')])})[_0xcaff('0x1b')](function(_0x3d9dca){logger[_0xcaff('0xd')](_0xcaff('0x23'));return _0x3d9dca[_0xcaff('0x24')];});}});}else{logger['info'](_0xcaff('0x21'));return request({'uri':util[_0xcaff('0xf')]('%s/users/me.json',_0x288f2c[_0xcaff('0x11')])})['then'](function(_0x96c206){logger['info'](_0xcaff('0x23'));return _0x96c206[_0xcaff('0x24')];});}}function getEndUser(_0x1c08eb,_0x5b4da5,_0x5332b0){logger[_0xcaff('0xd')](_0xcaff('0x25'),_0x5332b0);return request({'uri':util[_0xcaff('0xf')]('%s/search.json',_0x1c08eb['remoteUri']),'qs':{'query':util[_0xcaff('0xf')]('type:user\x20role:end-user\x20phone:%s',_0x5332b0)}})[_0xcaff('0x1b')](function(_0x5d4577){var _0x30d70d;if(_0x5d4577[_0xcaff('0x1f')]['length']){_0x5d4577[_0xcaff('0x1f')]=_['filter'](_0x5d4577[_0xcaff('0x1f')],{'suspended':![],'role':_0xcaff('0x26')});if(_0x5d4577[_0xcaff('0x1f')][_0xcaff('0x27')]){_0x30d70d=_[_0xcaff('0x28')](_0x5d4577['results']);}}if(_0x30d70d){logger['info']('Enduser\x20found!');return _0x30d70d;}else{logger[_0xcaff('0xd')](_0xcaff('0x29'));return request({'uri':util[_0xcaff('0xf')](_0xcaff('0x2a'),_0x1c08eb[_0xcaff('0x11')]),'method':_0xcaff('0x12'),'body':{'user':{'role':'end-user','name':util[_0xcaff('0xf')](_0xcaff('0x2b'),_0x5b4da5||_0x5332b0),'phone':_0x5332b0}}})[_0xcaff('0x1b')](function(_0x16ff87){logger['info']('Enduser\x20created.');return _0x16ff87['user'];});}});}function getAuth(_0x112d54){var _0x5414db;if(_0x112d54[_0xcaff('0x2c')]===_0xcaff('0x2d')){_0x5414db=util['format'](_0xcaff('0x2e'),_0x112d54[_0xcaff('0x2f')],_0x112d54[_0xcaff('0x2d')]);}else if(_0x112d54[_0xcaff('0x2c')]===_0xcaff('0x30')){_0x5414db=util[_0xcaff('0xf')]('%s/token:%s',_0x112d54[_0xcaff('0x2f')],_0x112d54[_0xcaff('0x30')]);}return util[_0xcaff('0xf')](_0xcaff('0x31'),new Buffer(_0x5414db)[_0xcaff('0x32')]('base64'));}function request(_0x4c5163){logger[_0xcaff('0x33')](_0xcaff('0x34'),JSON[_0xcaff('0x35')](_0x4c5163));return rp(_[_0xcaff('0x8')](_0x4c5163,{'method':_0xcaff('0x36'),'headers':headers,'json':!![]}));}function getTags(_0x4fbb2b,_0x4a5e5d){var _0x6d0407=[];if(_0x4fbb2b&&_0x4fbb2b[_0xcaff('0x27')]>0x0){_0x6d0407=_[_0xcaff('0x37')](_0x4fbb2b,_0x4a5e5d);}return _0x6d0407;}function getCustomFields(_0x5bc2ae,_0x2770bc){var _0x4a21db=[];var _0x5b0e0c={'custom_fields':[]};if(_0x5bc2ae[_0xcaff('0x27')]>0x0){_[_0xcaff('0x38')](_0x5bc2ae,function(_0x570974){if(_[_0xcaff('0x39')]([_0xcaff('0x3a'),_0xcaff('0x3b')],_0x570974[_0xcaff('0x3c')])&&_0x570974['nameField']&&!_0x570974['customField']){_0x5b0e0c[_0x570974[_0xcaff('0x3d')][_0xcaff('0x3e')]()]=_0x570974[_0xcaff('0x3f')]['toString']();}else if(_[_0xcaff('0x39')]([_0xcaff('0x3a'),_0xcaff('0x3b')],_0x570974[_0xcaff('0x3c')])&&_0x570974[_0xcaff('0x40')]&&_0x570974[_0xcaff('0x41')]){_0x5b0e0c[_0xcaff('0x42')][_0xcaff('0x43')]({'id':_0x570974[_0xcaff('0x40')],'value':_0x570974['content'][_0xcaff('0x32')]()});}else if(_0x570974[_0xcaff('0x3c')]===_0xcaff('0x44')&&_0x570974['variableName']&&_0x570974[_0xcaff('0x40')]&&_0x570974['customField']){_0x2770bc[_0x570974[_0xcaff('0x45')]]&&_0x5b0e0c[_0xcaff('0x42')][_0xcaff('0x43')]({'id':_0x570974[_0xcaff('0x40')],'value':_0x2770bc[_0x570974[_0xcaff('0x45')]][_0xcaff('0x32')]()});}else if(_0x570974[_0xcaff('0x3c')]==='customVariable'&&_0x570974[_0xcaff('0x46')]&&_0x570974['Variable'][_0xcaff('0x47')]&&_0x570974[_0xcaff('0x40')]&&_0x570974[_0xcaff('0x41')]){_0x2770bc[_0x570974['Variable'][_0xcaff('0x47')]['toLowerCase']()]&&_0x5b0e0c[_0xcaff('0x42')]['push']({'id':_0x570974[_0xcaff('0x40')],'value':_0x2770bc[_0x570974['Variable'][_0xcaff('0x47')][_0xcaff('0x3e')]()][_0xcaff('0x32')]()});}});}return _0x5b0e0c;}exports[_0xcaff('0x48')]=function(_0x17f7cf,_0xb56e72,_0x583610,_0x67ac0f,_0x445c13,_0xddd151){var _0x3fd499,_0x19ffce;_0xddd151[_0xcaff('0x11')]=intUtil[_0xcaff('0x49')](_0xddd151[_0xcaff('0x11')]);_0xddd151[_0xcaff('0x4a')]=intUtil[_0xcaff('0x49')](_0xddd151[_0xcaff('0x4a')]);if(_0x445c13&&_0x445c13[_0xcaff('0x4b')]){logger[_0xcaff('0xd')](_0xcaff('0x4c'),_0xcaff('0x4d'));_0xb56e72[_0xcaff('0x4e')]=util[_0xcaff('0xf')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0xddd151[_0xcaff('0x4a')],_0xb56e72['uniqueid'],md5(_0xb56e72[_0xcaff('0x4f')]));}else{_0xb56e72[_0xcaff('0x4e')]='';}headers[_0xcaff('0x50')]=getAuth(_0xddd151);return getUser(_0xddd151,_0x67ac0f[_0xcaff('0x51')])[_0xcaff('0x1b')](function(_0x476887){_0x3fd499=_0x476887;logger[_0xcaff('0xd')](_0xcaff('0x52'),_0x3fd499['id']);return getEndUser(_0xddd151,_0xb56e72['calleridname'],_0xb56e72[_0xcaff('0x53')]);})['then'](function(_0x422a83){_0x19ffce=_0x422a83;logger[_0xcaff('0xd')](_0xcaff('0x54'),_0x19ffce['id']);return getTicket(_0xddd151,_0x3fd499,_0x19ffce,_0x583610,_0xb56e72);})['then'](function(_0x9475af){if(_0x9475af){logger[_0xcaff('0xd')]('The\x20Ticket\x20ID\x20is:',_0x9475af['id']);switch(_0xddd151[_0xcaff('0x3c')]){case _0xcaff('0x55'):logger[_0xcaff('0xd')]('[QUEUE]',_0xcaff('0x56'));return request({'uri':util['format'](_0xcaff('0x57'),_0xddd151['remoteUri'],_0x3fd499['id'],_0x9475af['id']),'method':_0xcaff('0x12')});case _0xcaff('0x58'):logger['info'](_0xcaff('0x4c'),_0xcaff('0x59'));emit(util[_0xcaff('0xf')](_0xcaff('0x5a'),_0x67ac0f[_0xcaff('0x47')]),_0xcaff('0x5b'),{'uri':util['format']('%s/agent/tickets/%s',_0xddd151[_0xcaff('0x11')][_0xcaff('0x5c')]('/api/v2',''),_0x9475af['id'])});break;default:logger[_0xcaff('0x5d')](_0xcaff('0x4c'),_0xcaff('0x5e'));}}})['catch'](function(_0xe3c93c){logger['error']('[QUEUE]\x20Error\x20running\x20Zendesk\x20integration',util['inspect'](_0xe3c93c,{'showHidden':!![],'depth':null}));});};exports[_0xcaff('0x5f')]=function(_0x7fcbc3,_0x20c792,_0xcec5a5,_0x596388,_0x3b8527,_0x2d1d30,_0x49ab26){var _0x4c2574,_0x3ebb4a;_0x2d1d30['remoteUri']=intUtil['stripTrailingSlash'](_0x2d1d30[_0xcaff('0x11')]);_0x2d1d30[_0xcaff('0x4a')]=intUtil[_0xcaff('0x49')](_0x2d1d30[_0xcaff('0x4a')]);if(_0x49ab26&&_0x49ab26[_0xcaff('0x60')]&&_0x49ab26[_0xcaff('0x60')]!=='none'){logger[_0xcaff('0xd')]('[OUTBOUND]',_0xcaff('0x4d'));_0x20c792[_0xcaff('0x4e')]=util[_0xcaff('0xf')](_0xcaff('0x61'),_0x2d1d30[_0xcaff('0x4a')],_0x20c792[_0xcaff('0x4f')],md5(_0x20c792[_0xcaff('0x4f')]));}headers[_0xcaff('0x50')]=getAuth(_0x2d1d30);return getUser(_0x2d1d30,_0x596388[_0xcaff('0x51')])[_0xcaff('0x1b')](function(_0x118939){_0x4c2574=_0x118939;logger[_0xcaff('0xd')](_0xcaff('0x52'),_0x4c2574['id']);return getEndUser(_0x2d1d30,_0x20c792[_0xcaff('0x62')],_0x20c792[_0xcaff('0x63')]);})[_0xcaff('0x1b')](function(_0x3621d0){_0x3ebb4a=_0x3621d0;logger[_0xcaff('0xd')](_0xcaff('0x54'),_0x3ebb4a['id']);return getTicket(_0x2d1d30,_0x4c2574,_0x3ebb4a,_0xcec5a5,_0x20c792);})[_0xcaff('0x1b')](function(_0x5caa47){if(_0x5caa47){logger[_0xcaff('0xd')](_0xcaff('0x64'),_0x5caa47['id']);switch(_0x2d1d30[_0xcaff('0x3c')]){case _0xcaff('0x55'):logger[_0xcaff('0xd')](_0xcaff('0x65'),_0xcaff('0x56'));return request({'uri':util[_0xcaff('0xf')](_0xcaff('0x57'),_0x2d1d30['remoteUri'],_0x4c2574['id'],_0x5caa47['id']),'method':_0xcaff('0x12')});case _0xcaff('0x58'):logger['info'](_0xcaff('0x65'),_0xcaff('0x59'));emit(util[_0xcaff('0xf')]('user:%s',_0x596388[_0xcaff('0x47')]),_0xcaff('0x5b'),{'uri':util[_0xcaff('0xf')]('%s/agent/tickets/%s',_0x2d1d30[_0xcaff('0x11')][_0xcaff('0x5c')]('/api/v2',''),_0x5caa47['id'])});break;default:logger['error'](_0xcaff('0x65'),_0xcaff('0x5e'));}}})[_0xcaff('0x66')](function(_0x299fc2){logger[_0xcaff('0x5d')](_0xcaff('0x67'),util[_0xcaff('0x68')](_0x299fc2,{'showHidden':!![],'depth':null}));});};exports[_0xcaff('0x69')]=function(_0xfb97e6,_0x3a34b9,_0x55059d,_0x313b72,_0x55e18f,_0x355082){var _0x16c706,_0x196e13;_0x355082[_0xcaff('0x11')]=intUtil['stripTrailingSlash'](_0x355082[_0xcaff('0x11')]);_0x355082[_0xcaff('0x4a')]=intUtil[_0xcaff('0x49')](_0x355082[_0xcaff('0x4a')]);if(_0x55e18f&&_0x55e18f[_0xcaff('0x4b')]){logger[_0xcaff('0xd')]('['+_0x3a34b9[_0xcaff('0x6a')][_0xcaff('0x6b')]()+']',_0xcaff('0x4d'));_0x3a34b9[_0xcaff('0x4e')]=util[_0xcaff('0xf')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x355082[_0xcaff('0x4a')],_0x3a34b9[_0xcaff('0x4f')],md5(_0x3a34b9[_0xcaff('0x4f')]));}else{_0x3a34b9['recordingURL']='';}headers[_0xcaff('0x50')]=getAuth(_0x355082);return getUser(_0x355082)[_0xcaff('0x1b')](function(_0x1b9b1e){_0x16c706=_0x1b9b1e;logger[_0xcaff('0xd')](_0xcaff('0x52'),_0x16c706['id']);return getEndUser(_0x355082,_0x3a34b9[_0xcaff('0x6c')],_0x3a34b9[_0xcaff('0x53')]);})[_0xcaff('0x1b')](function(_0x3a9f23){_0x196e13=_0x3a9f23;logger[_0xcaff('0xd')](_0xcaff('0x54'),_0x196e13['id']);return getTicket(_0x355082,_0x16c706,_0x196e13,_0x55059d,_0x3a34b9);})[_0xcaff('0x1b')](function(_0x1fb268){if(_0x1fb268){logger[_0xcaff('0xd')]('The\x20Ticket\x20ID\x20is:',_0x1fb268['id']);}})[_0xcaff('0x66')](function(_0x3e608a){logger[_0xcaff('0x5d')]('['+_0x3a34b9[_0xcaff('0x6a')]['toUpperCase']()+']'+_0xcaff('0x6d'),util['inspect'](_0x3e608a,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb333=['user:%s','monitor_format','lastevent','Inbound','toUpperCase','lodash','md5','./util','ioredis','bluebird','../../../../config/logger','zoho','redis','socket.io-emitter','emit','debug','length','includes','string','picklist','type','idField','content','toString','variable','variableName','customVariable','Variable','toLowerCase','isNil','access_token','isBefore','zone','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','/oauth/v2/token','then','add','expires_in','seconds','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','isArrayLikeObject','users','findIndex','email','Agent\x20found!','Using\x20the\x20admin\x20account!','Administrator','user','profile','name','The\x20failing\x20result\x20is','stringify','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','data','https://www.zohoapis.','startCase','moduleCreate','role','first_name','last_name','code','SUCCESS','details','Error:\x20','catch','Zoho-oauthtoken\x20','contact_lead','uri','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','nothing','contact','lead','Leads','Creating\x20new\x20call...','Owner','administrator','Subjects','Description','getString','Descriptions','enduserType','Who_Id','Full_Name','First_Name','Last_Name','talktime','Call_Duration','utc','mm:ss','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','called','Call_Result','Called','complete','Answered','rejected','Rejected','Abandoned','Timeout','outbound','agentcalledAt','Call_Type','merge','Fields','/crm/v2/Calls','Call\x20created!','log','err','queue','host','stripTrailingSlash','serverUrl','[QUEUE]','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','recordingURL','com','calleridname','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','https://crm.','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','zoho.eu','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','Outbound'];(function(_0x5d80de,_0x2cf15d){var _0x1c7556=function(_0x5bd806){while(--_0x5bd806){_0x5d80de['push'](_0x5d80de['shift']());}};_0x1c7556(++_0x2cf15d);}(_0xb333,0x12f));var _0x3b33=function(_0x39c7e3,_0x93f485){_0x39c7e3=_0x39c7e3-0x0;var _0x437851=_0xb333[_0x39c7e3];return _0x437851;};'use strict';var _=require(_0x3b33('0x0'));var rp=require('request-promise');var md5=require(_0x3b33('0x1'));var util=require('util');var intUtil=require(_0x3b33('0x2'));var moment=require('moment');var Redis=require(_0x3b33('0x3'));var BPromise=require(_0x3b33('0x4'));var config=require('../../../../config/environment');var logger=require(_0x3b33('0x5'))(_0x3b33('0x6'));config['redis']=_['defaults'](config[_0x3b33('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0x3b33('0x8'))(new Redis(config[_0x3b33('0x7')]));function emit(_0x2a5e94,_0x504122,_0x486ca6){io['to'](_0x2a5e94)[_0x3b33('0x9')](_0x504122,_0x486ca6);}function request(_0x12318c){logger[_0x3b33('0xa')]('[HTTP]',JSON['stringify'](_0x12318c));return rp(_0x12318c);}function getCustomFields(_0x18247f,_0x24edf0){var _0x2ba9ea={};if(_0x18247f[_0x3b33('0xb')]>0x0){_['forEach'](_0x18247f,function(_0x45cc5c){if(_[_0x3b33('0xc')]([_0x3b33('0xd'),_0x3b33('0xe')],_0x45cc5c[_0x3b33('0xf')])&&_0x45cc5c[_0x3b33('0x10')]){_0x2ba9ea[_0x45cc5c[_0x3b33('0x10')]]=_0x45cc5c[_0x3b33('0x11')][_0x3b33('0x12')]();}else if(_0x45cc5c[_0x3b33('0xf')]===_0x3b33('0x13')&&_0x45cc5c[_0x3b33('0x14')]&&_0x45cc5c[_0x3b33('0x10')]&&_0x24edf0[_0x45cc5c[_0x3b33('0x14')]]){_0x2ba9ea[_0x45cc5c[_0x3b33('0x10')]]=_0x24edf0[_0x45cc5c['variableName']]['toString']();}else if(_0x45cc5c[_0x3b33('0xf')]===_0x3b33('0x15')&&_0x45cc5c[_0x3b33('0x16')]&&_0x45cc5c[_0x3b33('0x16')]['name']&&_0x45cc5c[_0x3b33('0x10')]&&_0x24edf0[_0x45cc5c[_0x3b33('0x16')]['name'][_0x3b33('0x17')]()]){_0x2ba9ea[_0x45cc5c[_0x3b33('0x10')]]=_0x24edf0[_0x45cc5c['Variable']['name'][_0x3b33('0x17')]()]['toString']();}});}return _0x2ba9ea;}function getName(_0x91568d){if(_0x91568d['indexOf']('\x20')>0x0){var _0x564413=_0x91568d['split'](/ (.+)/);if(_0x564413[0x1]){return _0x564413;}}return[_0x91568d,_0x91568d];}var accountsTokens={};function getAccessToken(_0x570c87){return new Promise(function(_0x5e6787,_0x3fb664){if(!_[_0x3b33('0x18')](accountsTokens[_0x570c87['id']])&&!_[_0x3b33('0x18')](accountsTokens[_0x570c87['id']][_0x3b33('0x19')])){if(moment()[_0x3b33('0x1a')](accountsTokens[_0x570c87['id']]['expires_in'])){_0x5e6787(accountsTokens[_0x570c87['id']][_0x3b33('0x19')]);}}var _0xe6cefc;switch(_0x570c87[_0x3b33('0x1b')]){case'US':_0xe6cefc=_0x3b33('0x1c');break;case'AU':_0xe6cefc='https://accounts.zoho.com.au';break;case'EU':_0xe6cefc=_0x3b33('0x1d');break;case'IN':_0xe6cefc=_0x3b33('0x1e');break;case'CN':_0xe6cefc=_0x3b33('0x1f');break;default:_0xe6cefc=_0x3b33('0x1d');break;}var _0x5e0fa8={'method':'POST','uri':_0xe6cefc+_0x3b33('0x20'),'qs':{'refresh_token':_0x570c87['refreshToken'],'client_id':_0x570c87['clientId'],'client_secret':_0x570c87['clientSecret'],'grant_type':'refresh_token'},'json':!![]};return rp(_0x5e0fa8)[_0x3b33('0x21')](function(_0x56fa51){accountsTokens[_0x570c87['id']]={'access_token':_0x56fa51['access_token'],'expires_in':moment()[_0x3b33('0x22')](_0x56fa51[_0x3b33('0x23')],_0x3b33('0x24'))};_0x5e6787(_0x56fa51['access_token']);})['catch'](function(_0x26c719){logger[_0x3b33('0x25')](_0x3b33('0x26'),_0x26c719[_0x3b33('0x27')]);_0x3fb664(_0x26c719);});});}function getUser(_0x10de9d,_0x52ae7f,_0x12e0bf,_0x23f001){logger[_0x3b33('0x28')](_0x3b33('0x29'));return request({'method':_0x3b33('0x2a'),'uri':util[_0x3b33('0x2b')](_0x3b33('0x2c'),_0x52ae7f),'qs':{'type':_0x3b33('0x2d')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x10de9d},'json':!![]})[_0x3b33('0x21')](function(_0x48edb2){if(_0x48edb2['users']){var _0x3cb121=-0x1;if(_[_0x3b33('0x2e')](_0x48edb2[_0x3b33('0x2f')])){if(!_[_0x3b33('0x18')](_0x23f001)){_0x3cb121=_[_0x3b33('0x30')](_0x48edb2[_0x3b33('0x2f')],function(_0xb3217e){return _0xb3217e[_0x3b33('0x31')]===_0x23f001;});}if(_0x3cb121>=0x0){logger['info'](_0x3b33('0x32'));}else{logger['info'](_0x3b33('0x33'));_0x3cb121=_[_0x3b33('0x30')](_0x48edb2['users'],function(_0x36f96c){return _0x36f96c['profile']['name']===_0x3b33('0x34');});}return _0x48edb2['users'][_0x3cb121];}else{if(_0x48edb2[_0x3b33('0x35')][_0x3b33('0x36')][_0x3b33('0x37')]===_0x3b33('0x34')){logger['info'](_0x3b33('0x33'));user=_0x48edb2['user'];return user;}else{logger[_0x3b33('0x25')](_0x3b33('0x38'),JSON[_0x3b33('0x39')](_0x48edb2));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x3b33('0x39')](_0x48edb2));}}}else{logger[_0x3b33('0x25')](_0x3b33('0x38'),JSON[_0x3b33('0x39')](_0x48edb2));throw new Error(_0x3b33('0x3a')+JSON[_0x3b33('0x39')](_0x48edb2));}})['catch'](function(_0x32a2e5){console[_0x3b33('0x25')](_0x32a2e5);});}function getZohoUser(_0x579c3c,_0xbeb749){return new BPromise(function(_0x18f044,_0x257aa9){request(_0x579c3c)['then'](function(_0x4fefcb){var _0x1ae586=null;if(_0x4fefcb){_0x1ae586=_0x4fefcb[_0x3b33('0x3b')][0x0];_0x1ae586['enduserType']=_0xbeb749;}_0x18f044(_0x1ae586);})['catch'](function(_0x2e9beb){_0x257aa9(_0x2e9beb);});});}function createEndUser(_0x2b3b8a,_0xbc3bcd,_0x28a381,_0x2998f5,_0x4647b6,_0x3c15f5){var _0x28a381=getName(_0x28a381);return request({'method':'POST','uri':_0x3b33('0x3c')+_0xbc3bcd+'/crm/v2/'+_[_0x3b33('0x3d')](_0x3c15f5[_0x3b33('0x3e')])+'s','body':{'data':[{'Last_Name':_0x28a381[0x1],'First_Name':_0x28a381[0x0],'Phone':_0x2998f5,'Owner':{'name':!_[_0x3b33('0x18')](_0x4647b6[_0x3b33('0x3f')][_0x3b33('0x37')])?_0x4647b6[_0x3b33('0x3f')][_0x3b33('0x37')]:!_['isNil'](_0x4647b6[_0x3b33('0x40')])?_0x4647b6[_0x3b33('0x40')]+'\x20'+_0x4647b6[_0x3b33('0x41')]:_0x4647b6[_0x3b33('0x41')],'id':_0x4647b6['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x2b3b8a},'json':!![]})['then'](function(_0x1e2c10){if(_0x1e2c10&&_0x1e2c10[_0x3b33('0x3b')][0x0][_0x3b33('0x42')]===_0x3b33('0x43')){var _0x4f7117=_0x1e2c10[_0x3b33('0x3b')][0x0][_0x3b33('0x44')];_0x4f7117['enduserType']=_[_0x3b33('0x3d')](_0x3c15f5['moduleCreate'])+'s';return _0x4f7117;}logger[_0x3b33('0x25')]('The\x20failing\x20result\x20is',JSON[_0x3b33('0x39')](data));throw new Error(_0x3b33('0x45')+JSON[_0x3b33('0x39')](data));})[_0x3b33('0x46')](function(_0x2e3e86){console['log']('CREATE\x20ERROR',_0x2e3e86);});}function getEndUser(_0x591fad,_0x5cc0c4,_0x1293a5,_0x42d477,_0x23585c,_0x1058a1,_0x44409b){var _0x5d033f={'method':'GET','uri':'','headers':{'Authorization':_0x3b33('0x47')+_0x591fad},'json':!![]};switch(_0x44409b['moduleSearch']){case _0x3b33('0x48'):_0x5d033f[_0x3b33('0x49')]='https://www.zohoapis.'+_0x5cc0c4+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x23585c+'))';return getZohoUser(_0x5d033f,_0x3b33('0x4a'))[_0x3b33('0x21')](function(_0x52d423){if(_0x52d423)return _0x52d423;_0x5d033f['uri']='https://www.zohoapis.'+_0x5cc0c4+_0x3b33('0x4b')+_0x23585c+'))';return getZohoUser(_0x5d033f,'Leads')[_0x3b33('0x21')](function(_0xc35283){if(_0xc35283)return _0xc35283;if(_0x44409b['moduleCreate']!=_0x3b33('0x4c')){return createEndUser(_0x591fad,_0x5cc0c4,_0x42d477,_0x23585c,_0x1058a1,_0x44409b);}else{return{};}});});break;case _0x3b33('0x4d'):_0x5d033f[_0x3b33('0x49')]='https://www.zohoapis.'+_0x5cc0c4+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x23585c+'))';return getZohoUser(_0x5d033f,_0x3b33('0x4a'))[_0x3b33('0x21')](function(_0xe5cf7c){if(_0xe5cf7c)return _0xe5cf7c;if(_0x44409b[_0x3b33('0x3e')]!='nothing'){return createEndUser(_0x591fad,_0x5cc0c4,_0x42d477,_0x23585c,_0x1058a1,_0x44409b);}else{return{};}});break;case _0x3b33('0x4e'):_0x5d033f[_0x3b33('0x49')]='https://www.zohoapis.'+_0x5cc0c4+_0x3b33('0x4b')+_0x23585c+'))';return getZohoUser(_0x5d033f,_0x3b33('0x4f'))[_0x3b33('0x21')](function(_0x2941b3){if(_0x2941b3)return _0x2941b3;if(_0x44409b[_0x3b33('0x3e')]!=_0x3b33('0x4c')){return createEndUser(_0x591fad,_0x5cc0c4,_0x42d477,_0x23585c,_0x1058a1,_0x44409b);}else{return{};}});break;}}function getCall(_0x246b9b,_0x498b10,_0x27ce18,_0x5f457c,_0x1d9ef4,_0x263fb9,_0x3212b5,_0x5dd585){logger[_0x3b33('0x28')](_0x3b33('0x50'));var _0x55c610={};_0x55c610[_0x3b33('0x51')]={'name':!_[_0x3b33('0x18')](_0x5f457c[_0x3b33('0x3f')][_0x3b33('0x37')])&&!_[_0x3b33('0x18')](_0x5f457c['profile']['name'])&&_0x5f457c[_0x3b33('0x36')][_0x3b33('0x37')]===_0x3b33('0x52')?_0x5f457c[_0x3b33('0x3f')]['name']:!_[_0x3b33('0x18')](_0x5f457c[_0x3b33('0x40')])?_0x5f457c[_0x3b33('0x40')]+'\x20'+_0x5f457c[_0x3b33('0x41')]:_0x5f457c[_0x3b33('0x41')],'id':_0x5f457c['id']};_0x55c610['Subject']=intUtil['getString'](_0x263fb9[_0x3b33('0x53')],_0x3212b5,'\x20');_0x55c610[_0x3b33('0x54')]=intUtil[_0x3b33('0x55')](_0x263fb9[_0x3b33('0x56')],_0x3212b5,'\x0a');if(_0x1d9ef4[_0x3b33('0x57')]===_0x3b33('0x4a')){_0x55c610[_0x3b33('0x58')]={'name':!_[_0x3b33('0x18')](_0x1d9ef4[_0x3b33('0x59')])?_0x1d9ef4['Full_Name']:!_[_0x3b33('0x18')](_0x1d9ef4[_0x3b33('0x5a')])?_0x1d9ef4[_0x3b33('0x5a')]+'\x20'+_0x1d9ef4[_0x3b33('0x5b')]:_0x1d9ef4[_0x3b33('0x5b')],'id':_0x1d9ef4['id']};}if(_0x1d9ef4[_0x3b33('0x57')]===_0x3b33('0x4f')){_0x55c610['What_Id']={'name':!_[_0x3b33('0x18')](_0x1d9ef4[_0x3b33('0x59')])?_0x1d9ef4['Full_Name']:!_['isNil'](_0x1d9ef4[_0x3b33('0x5a')])?_0x1d9ef4[_0x3b33('0x5a')]+'\x20'+_0x1d9ef4['Last_Name']:_0x1d9ef4['Last_Name'],'id':_0x1d9ef4['id']};_0x55c610['$se_module']=_['startCase'](_0x1d9ef4[_0x3b33('0x57')]);}if(_0x3212b5[_0x3b33('0x5c')]){_0x55c610[_0x3b33('0x5d')]=moment[_0x3b33('0x5e')](parseInt(_0x3212b5['talktime'])*0x3e8)[_0x3b33('0x2b')](_0x3b33('0x5f'));}else if(_0x3212b5['answertime']&&_0x3212b5[_0x3b33('0x60')]){_0x55c610['Call_Duration']=moment['utc'](moment(_0x3212b5[_0x3b33('0x60')],'YYYY-MM-DDTHH:mm:ss')[_0x3b33('0x61')](moment(_0x3212b5[_0x3b33('0x62')],_0x3b33('0x63'))))['format'](_0x3b33('0x5f'));}switch(_0x3212b5['lastevent']){case _0x3b33('0x64'):_0x55c610[_0x3b33('0x65')]=_0x3b33('0x66');break;case _0x3b33('0x67'):case'connect':_0x55c610[_0x3b33('0x65')]=_0x3b33('0x68');break;case _0x3b33('0x69'):_0x55c610[_0x3b33('0x65')]=_0x3b33('0x6a');break;case'abandoned':_0x55c610[_0x3b33('0x65')]=_0x3b33('0x6b');break;case'timeout':_0x55c610[_0x3b33('0x65')]=_0x3b33('0x6c');default:}_0x55c610['Call_Start_Time']=(_0x5dd585===_0x3b33('0x6d')?moment(_0x3212b5[_0x3b33('0x62')])['format'](_0x3b33('0x63')):moment(_0x3212b5[_0x3b33('0x6e')])['format'](_0x3b33('0x63')))||moment()[_0x3b33('0x2b')]('YYYY-MM-DDTHH:mm:ss');_0x55c610[_0x3b33('0x6f')]=_0x5dd585||'Inbound';_0x55c610=_[_0x3b33('0x70')](_0x55c610,getCustomFields(_0x263fb9[_0x3b33('0x71')],_0x3212b5));return request({'method':'POST','uri':'https://www.zohoapis.'+_0x498b10+_0x3b33('0x72'),'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x246b9b},'body':{'data':[_0x55c610]},'json':!![]})[_0x3b33('0x21')](function(_0x143b51){if(_0x143b51&&_0x143b51[_0x3b33('0x3b')][0x0][_0x3b33('0x42')]===_0x3b33('0x43')){logger[_0x3b33('0x28')](_0x3b33('0x73'));return{'id':_0x143b51[_0x3b33('0x3b')][0x0][_0x3b33('0x44')]['id']};}})[_0x3b33('0x46')](function(_0xf9c786){logger[_0x3b33('0x28')]('err',_0xf9c786[_0x3b33('0x27')]);console[_0x3b33('0x74')](_0x3b33('0x75'),_0xf9c786);});}exports[_0x3b33('0x76')]=function(_0x49969a,_0x368c76,_0x4aaf0e,_0x5dd6cc,_0x3efbd1,_0x365d2a){var _0x3257c2,_0x4f7f36,_0x3a9c97;_0x365d2a[_0x3b33('0x77')]=intUtil[_0x3b33('0x78')](_0x365d2a['host']);_0x365d2a[_0x3b33('0x79')]=intUtil[_0x3b33('0x78')](_0x365d2a[_0x3b33('0x79')]);if(_0x3efbd1&&_0x3efbd1['monitor_format']){logger[_0x3b33('0x28')](_0x3b33('0x7a'),'Recording\x20is\x20enabled!');_0x368c76['recordingURL']=_0x365d2a[_0x3b33('0x79')]+_0x3b33('0x7b')+_0x368c76[_0x3b33('0x7c')]+_0x3b33('0x7d')+md5(_0x368c76[_0x3b33('0x7c')]);}else{_0x368c76[_0x3b33('0x7e')]='';}var _0x40079b=_0x365d2a['host']==='zoho.eu'?'eu':_0x3b33('0x7f');return getAccessToken(_0x365d2a)[_0x3b33('0x21')](function(_0x100913){_0x3a9c97=_0x100913;return getUser(_0x3a9c97,_0x40079b,_0x365d2a,_0x5dd6cc[_0x3b33('0x31')]);})[_0x3b33('0x21')](function(_0x23e4c8){_0x3257c2=_0x23e4c8;logger[_0x3b33('0x28')]('The\x20User\x20ID\x20is:',_0x3257c2['id']);return getEndUser(_0x3a9c97,_0x40079b,_0x365d2a,_0x368c76[_0x3b33('0x80')],_0x368c76[_0x3b33('0x81')],_0x3257c2,_0x4aaf0e);})[_0x3b33('0x21')](function(_0x375cd9){_0x4f7f36=_0x375cd9;return getCall(_0x3a9c97,_0x40079b,_0x365d2a,_0x3257c2,_0x4f7f36,_0x4aaf0e,_0x368c76,'Inbound');})['then'](function(_0x2f3cd0){if(_0x2f3cd0){logger[_0x3b33('0x28')](_0x3b33('0x82'),_0x2f3cd0['id']);logger[_0x3b33('0x28')](_0x3b33('0x7a'),_0x3b33('0x83'));emit(util[_0x3b33('0x2b')]('user:%s',_0x5dd6cc[_0x3b33('0x37')]),_0x3b33('0x84'),{'uri':_0x3b33('0x85')+_0x365d2a['host']+_0x3b33('0x86')+_0x2f3cd0['id']});}})[_0x3b33('0x46')](function(_0x598b37){logger[_0x3b33('0x25')](_0x3b33('0x7a'),JSON[_0x3b33('0x39')](_0x598b37));});};exports[_0x3b33('0x6d')]=function(_0x278e0a,_0x259474,_0x20512c,_0x5af5ab,_0x8c0012,_0x160873,_0x4b2632){var _0x1861cb,_0x567511,_0x21ce3f;_0x160873[_0x3b33('0x77')]=intUtil[_0x3b33('0x78')](_0x160873[_0x3b33('0x77')]);_0x160873['serverUrl']=intUtil[_0x3b33('0x78')](_0x160873[_0x3b33('0x79')]);if(_0x4b2632&&_0x4b2632[_0x3b33('0x87')]&&_0x4b2632[_0x3b33('0x87')]!==_0x3b33('0x88')){logger['info'](_0x3b33('0x89'),_0x3b33('0x8a'));_0x259474[_0x3b33('0x7e')]=_0x160873[_0x3b33('0x79')]+_0x3b33('0x7b')+_0x259474[_0x3b33('0x7c')]+_0x3b33('0x7d')+md5(_0x259474[_0x3b33('0x7c')]);}var _0x4bdd90=_0x160873['host']===_0x3b33('0x8b')?'eu':_0x3b33('0x7f');return getAccessToken(_0x160873)[_0x3b33('0x21')](function(_0x3b879b){_0x21ce3f=_0x3b879b;return getUser(_0x21ce3f,_0x4bdd90,_0x160873,_0x5af5ab[_0x3b33('0x31')]);})[_0x3b33('0x21')](function(_0x178b3b){_0x1861cb=_0x178b3b;logger[_0x3b33('0x28')](_0x3b33('0x8c'),_0x1861cb['id']);return getEndUser(_0x21ce3f,_0x4bdd90,_0x160873,_0x259474[_0x3b33('0x8d')],_0x259474[_0x3b33('0x8e')],_0x1861cb,_0x20512c);})['then'](function(_0x53d1e8){_0x567511=_0x53d1e8;return getCall(_0x21ce3f,_0x4bdd90,_0x160873,_0x1861cb,_0x567511,_0x20512c,_0x259474,_0x3b33('0x8f'));})[_0x3b33('0x21')](function(_0x27f16a){if(_0x27f16a){logger[_0x3b33('0x28')](_0x3b33('0x82'),_0x27f16a['id']);logger[_0x3b33('0x28')](_0x3b33('0x89'),'Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x3b33('0x2b')](_0x3b33('0x90'),_0x5af5ab[_0x3b33('0x37')]),_0x3b33('0x84'),{'uri':'https://crm.'+_0x160873[_0x3b33('0x77')]+_0x3b33('0x86')+_0x27f16a['id']});}})[_0x3b33('0x46')](function(_0x192e71){logger[_0x3b33('0x25')]('[OUTBOUND]',JSON[_0x3b33('0x39')](_0x192e71));});};exports['unmanaged']=function(_0x353344,_0x4599be,_0x2e2f02,_0x464ade,_0x4aaada,_0x37c908){var _0xea61f2,_0x596560,_0x30d56c;_0x37c908[_0x3b33('0x77')]=intUtil[_0x3b33('0x78')](_0x37c908['host']);_0x37c908[_0x3b33('0x79')]=intUtil[_0x3b33('0x78')](_0x37c908['serverUrl']);if(_0x4aaada&&_0x4aaada[_0x3b33('0x91')]){logger[_0x3b33('0x28')]('['+_0x4599be[_0x3b33('0x92')]['toUpperCase']()+']',_0x3b33('0x8a'));_0x4599be['recordingURL']=_0x37c908['serverUrl']+_0x3b33('0x7b')+_0x4599be[_0x3b33('0x7c')]+'/downloads?type=uniqueid&token='+md5(_0x4599be[_0x3b33('0x7c')]);}else{_0x4599be[_0x3b33('0x7e')]='';}var _0x52c4af=_0x37c908['host']===_0x3b33('0x8b')?'eu':_0x3b33('0x7f');return getAccessToken(_0x37c908)[_0x3b33('0x21')](function(_0x4c6616){_0x30d56c=_0x4c6616;return getUser(_0x30d56c,_0x52c4af,_0x37c908);})[_0x3b33('0x21')](function(_0x512069){_0xea61f2=_0x512069;logger[_0x3b33('0x28')](_0x3b33('0x8c'),_0xea61f2['id']);return getEndUser(_0x30d56c,_0x52c4af,_0x37c908,_0x4599be[_0x3b33('0x80')],_0x4599be[_0x3b33('0x81')],_0xea61f2,_0x2e2f02);})[_0x3b33('0x21')](function(_0x1b4ab0){_0x596560=_0x1b4ab0;return getCall(_0x30d56c,_0x52c4af,_0x37c908,_0xea61f2,_0x596560,_0x2e2f02,_0x4599be,_0x3b33('0x93'));})['then'](function(_0x5eb804){if(_0x5eb804){logger[_0x3b33('0x28')](_0x3b33('0x82'),_0x5eb804['id']);}})[_0x3b33('0x46')](function(_0x3ba16b){logger[_0x3b33('0x25')]('['+_0x4599be[_0x3b33('0x92')][_0x3b33('0x94')]()+']',JSON[_0x3b33('0x39')](_0x3ba16b));});};
\ No newline at end of file
+var _0x87a2=['error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','Agent\x20found!','profile','Administrator','Using\x20the\x20admin\x20account!','user','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','data','enduserType','https://www.zohoapis.','startCase','moduleCreate','role','first_name','last_name','SUCCESS','details','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','uri','nothing','contact','lead','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','Creating\x20new\x20call...','Owner','Subject','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','utc','mm:ss','answertime','endtime','Call_Duration','YYYY-MM-DDTHH:mm:ss','diff','starttime','called','Call_Result','Called','connect','Answered','rejected','Rejected','abandoned','timeout','Timeout','Call_Start_Time','agentcalledAt','Call_Type','Inbound','merge','Fields','/crm/v2/Calls','Call\x20created!','err','queue','host','stripTrailingSlash','serverUrl','monitor_format','recordingURL','/api/voice/recordings/','uniqueid','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Call\x20ID\x20is:','[QUEUE]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','/downloads?type=uniqueid&token=','zoho.eu','com','destcalleridname','Outbound','https://crm.','lastevent','toUpperCase','request-promise','md5','./util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','redis','defaults','localhost','debug','[HTTP]','stringify','forEach','includes','string','picklist','idField','content','toString','type','variable','variableName','Variable','name','toLowerCase','indexOf','split','isNil','access_token','isBefore','expires_in','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientId','clientSecret','refresh_token','then','add','seconds','catch'];(function(_0x5d1ab2,_0x3d187d){var _0x24b58e=function(_0x40c5a4){while(--_0x40c5a4){_0x5d1ab2['push'](_0x5d1ab2['shift']());}};_0x24b58e(++_0x3d187d);}(_0x87a2,0x113));var _0x287a=function(_0xf0bcac,_0x531755){_0xf0bcac=_0xf0bcac-0x0;var _0x4e4c65=_0x87a2[_0xf0bcac];return _0x4e4c65;};'use strict';var _=require('lodash');var rp=require(_0x287a('0x0'));var md5=require(_0x287a('0x1'));var util=require('util');var intUtil=require(_0x287a('0x2'));var moment=require(_0x287a('0x3'));var Redis=require(_0x287a('0x4'));var BPromise=require(_0x287a('0x5'));var config=require(_0x287a('0x6'));var logger=require(_0x287a('0x7'))(_0x287a('0x8'));config[_0x287a('0x9')]=_[_0x287a('0xa')](config[_0x287a('0x9')],{'host':_0x287a('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x287a('0x9')]));function emit(_0x360664,_0x45e52b,_0x5d6df4){io['to'](_0x360664)['emit'](_0x45e52b,_0x5d6df4);}function request(_0x172484){logger[_0x287a('0xc')](_0x287a('0xd'),JSON[_0x287a('0xe')](_0x172484));return rp(_0x172484);}function getCustomFields(_0x42bcd2,_0x25fb6d){var _0x15f784={};if(_0x42bcd2['length']>0x0){_[_0x287a('0xf')](_0x42bcd2,function(_0x30368a){if(_[_0x287a('0x10')]([_0x287a('0x11'),_0x287a('0x12')],_0x30368a['type'])&&_0x30368a[_0x287a('0x13')]){_0x15f784[_0x30368a[_0x287a('0x13')]]=_0x30368a[_0x287a('0x14')][_0x287a('0x15')]();}else if(_0x30368a[_0x287a('0x16')]===_0x287a('0x17')&&_0x30368a[_0x287a('0x18')]&&_0x30368a[_0x287a('0x13')]&&_0x25fb6d[_0x30368a[_0x287a('0x18')]]){_0x15f784[_0x30368a[_0x287a('0x13')]]=_0x25fb6d[_0x30368a['variableName']]['toString']();}else if(_0x30368a[_0x287a('0x16')]==='customVariable'&&_0x30368a[_0x287a('0x19')]&&_0x30368a[_0x287a('0x19')][_0x287a('0x1a')]&&_0x30368a['idField']&&_0x25fb6d[_0x30368a['Variable'][_0x287a('0x1a')][_0x287a('0x1b')]()]){_0x15f784[_0x30368a[_0x287a('0x13')]]=_0x25fb6d[_0x30368a[_0x287a('0x19')][_0x287a('0x1a')]['toLowerCase']()][_0x287a('0x15')]();}});}return _0x15f784;}function getName(_0xdbfa1f){if(_0xdbfa1f[_0x287a('0x1c')]('\x20')>0x0){var _0x419860=_0xdbfa1f[_0x287a('0x1d')](/ (.+)/);if(_0x419860[0x1]){return _0x419860;}}return[_0xdbfa1f,_0xdbfa1f];}var accountsTokens={};function getAccessToken(_0x504060){return new Promise(function(_0xcfe5fd,_0x418d35){if(!_[_0x287a('0x1e')](accountsTokens[_0x504060['id']])&&!_['isNil'](accountsTokens[_0x504060['id']][_0x287a('0x1f')])){if(moment()[_0x287a('0x20')](accountsTokens[_0x504060['id']][_0x287a('0x21')])){_0xcfe5fd(accountsTokens[_0x504060['id']]['access_token']);}}var _0x4f2a0c;switch(_0x504060['zone']){case'US':_0x4f2a0c=_0x287a('0x22');break;case'AU':_0x4f2a0c='https://accounts.zoho.com.au';break;case'EU':_0x4f2a0c=_0x287a('0x23');break;case'IN':_0x4f2a0c=_0x287a('0x24');break;case'CN':_0x4f2a0c=_0x287a('0x25');break;default:_0x4f2a0c='https://accounts.zoho.eu';break;}var _0x198602={'method':_0x287a('0x26'),'uri':_0x4f2a0c+_0x287a('0x27'),'qs':{'refresh_token':_0x504060['refreshToken'],'client_id':_0x504060[_0x287a('0x28')],'client_secret':_0x504060[_0x287a('0x29')],'grant_type':_0x287a('0x2a')},'json':!![]};return rp(_0x198602)[_0x287a('0x2b')](function(_0x21f5e8){accountsTokens[_0x504060['id']]={'access_token':_0x21f5e8[_0x287a('0x1f')],'expires_in':moment()[_0x287a('0x2c')](_0x21f5e8[_0x287a('0x21')],_0x287a('0x2d'))};_0xcfe5fd(_0x21f5e8['access_token']);})[_0x287a('0x2e')](function(_0xecff91){logger[_0x287a('0x2f')](_0x287a('0x30'),_0xecff91[_0x287a('0x31')]);_0x418d35(_0xecff91);});});}function getUser(_0x23b3f0,_0x29a354,_0x350614,_0x1ba732){logger[_0x287a('0x32')](_0x287a('0x33'));return request({'method':_0x287a('0x34'),'uri':util[_0x287a('0x35')](_0x287a('0x36'),_0x29a354),'qs':{'type':_0x287a('0x37')},'headers':{'Authorization':_0x287a('0x38')+_0x23b3f0},'json':!![]})[_0x287a('0x2b')](function(_0x502276){if(_0x502276[_0x287a('0x39')]){var _0x44db8d=-0x1;if(_[_0x287a('0x3a')](_0x502276['users'])){if(!_[_0x287a('0x1e')](_0x1ba732)){_0x44db8d=_[_0x287a('0x3b')](_0x502276[_0x287a('0x39')],function(_0x1022d9){return _0x1022d9[_0x287a('0x3c')]===_0x1ba732;});}if(_0x44db8d>=0x0){logger[_0x287a('0x32')](_0x287a('0x3d'));}else{logger[_0x287a('0x32')]('Using\x20the\x20admin\x20account!');_0x44db8d=_[_0x287a('0x3b')](_0x502276['users'],function(_0x2c23e7){return _0x2c23e7[_0x287a('0x3e')][_0x287a('0x1a')]===_0x287a('0x3f');});}return _0x502276[_0x287a('0x39')][_0x44db8d];}else{if(_0x502276['user']['profile'][_0x287a('0x1a')]===_0x287a('0x3f')){logger[_0x287a('0x32')](_0x287a('0x40'));user=_0x502276[_0x287a('0x41')];return user;}else{logger[_0x287a('0x2f')](_0x287a('0x42'),JSON[_0x287a('0xe')](_0x502276));throw new Error(_0x287a('0x43')+JSON[_0x287a('0xe')](_0x502276));}}}else{logger[_0x287a('0x2f')](_0x287a('0x42'),JSON[_0x287a('0xe')](_0x502276));throw new Error(_0x287a('0x43')+JSON[_0x287a('0xe')](_0x502276));}})[_0x287a('0x2e')](function(_0x1fa63d){console['error'](_0x1fa63d);});}function getZohoUser(_0x956192,_0x52c800){return new BPromise(function(_0x1a4c8d,_0x8555b){request(_0x956192)[_0x287a('0x2b')](function(_0x376e2a){var _0x48ebda=null;if(_0x376e2a){_0x48ebda=_0x376e2a[_0x287a('0x44')][0x0];_0x48ebda[_0x287a('0x45')]=_0x52c800;}_0x1a4c8d(_0x48ebda);})[_0x287a('0x2e')](function(_0x52b594){_0x8555b(_0x52b594);});});}function createEndUser(_0x4fab2a,_0x3854f0,_0x560962,_0x4281f6,_0xa017c1,_0x423c4e){var _0x560962=getName(_0x560962);return request({'method':'POST','uri':_0x287a('0x46')+_0x3854f0+'/crm/v2/'+_[_0x287a('0x47')](_0x423c4e[_0x287a('0x48')])+'s','body':{'data':[{'Last_Name':_0x560962[0x1],'First_Name':_0x560962[0x0],'Phone':_0x4281f6,'Owner':{'name':!_[_0x287a('0x1e')](_0xa017c1[_0x287a('0x49')][_0x287a('0x1a')])?_0xa017c1[_0x287a('0x49')]['name']:!_['isNil'](_0xa017c1[_0x287a('0x4a')])?_0xa017c1[_0x287a('0x4a')]+'\x20'+_0xa017c1[_0x287a('0x4b')]:_0xa017c1[_0x287a('0x4b')],'id':_0xa017c1['id']}}]},'headers':{'Authorization':_0x287a('0x38')+_0x4fab2a},'json':!![]})[_0x287a('0x2b')](function(_0x302d76){if(_0x302d76&&_0x302d76[_0x287a('0x44')][0x0]['code']===_0x287a('0x4c')){var _0x1f4341=_0x302d76[_0x287a('0x44')][0x0][_0x287a('0x4d')];_0x1f4341['enduserType']=_[_0x287a('0x47')](_0x423c4e[_0x287a('0x48')])+'s';return _0x1f4341;}logger[_0x287a('0x2f')]('The\x20failing\x20result\x20is',JSON[_0x287a('0xe')](data));throw new Error(_0x287a('0x4e')+JSON[_0x287a('0xe')](data));})['catch'](function(_0xf80622){console[_0x287a('0x4f')](_0x287a('0x50'),_0xf80622);});}function getEndUser(_0x1f43c2,_0x2aae8c,_0x381b22,_0x1bf3af,_0x2a3b13,_0xf725d,_0x368e4e){var _0x42947c={'method':_0x287a('0x34'),'uri':'','headers':{'Authorization':_0x287a('0x38')+_0x1f43c2},'json':!![]};switch(_0x368e4e[_0x287a('0x51')]){case _0x287a('0x52'):_0x42947c['uri']=_0x287a('0x46')+_0x2aae8c+_0x287a('0x53')+_0x2a3b13+'))';return getZohoUser(_0x42947c,_0x287a('0x54'))[_0x287a('0x2b')](function(_0x180a63){if(_0x180a63)return _0x180a63;_0x42947c[_0x287a('0x55')]='https://www.zohoapis.'+_0x2aae8c+'/crm/v2/Leads/search?criteria=((Phone:equals:'+_0x2a3b13+'))';return getZohoUser(_0x42947c,'Leads')['then'](function(_0x249401){if(_0x249401)return _0x249401;if(_0x368e4e['moduleCreate']!=_0x287a('0x56')){return createEndUser(_0x1f43c2,_0x2aae8c,_0x1bf3af,_0x2a3b13,_0xf725d,_0x368e4e);}else{return{};}});});break;case _0x287a('0x57'):_0x42947c['uri']=_0x287a('0x46')+_0x2aae8c+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x2a3b13+'))';return getZohoUser(_0x42947c,'Contacts')[_0x287a('0x2b')](function(_0x255a41){if(_0x255a41)return _0x255a41;if(_0x368e4e['moduleCreate']!=_0x287a('0x56')){return createEndUser(_0x1f43c2,_0x2aae8c,_0x1bf3af,_0x2a3b13,_0xf725d,_0x368e4e);}else{return{};}});break;case _0x287a('0x58'):_0x42947c[_0x287a('0x55')]=_0x287a('0x46')+_0x2aae8c+_0x287a('0x59')+_0x2a3b13+'))';return getZohoUser(_0x42947c,_0x287a('0x5a'))[_0x287a('0x2b')](function(_0x17265f){if(_0x17265f)return _0x17265f;if(_0x368e4e['moduleCreate']!=_0x287a('0x56')){return createEndUser(_0x1f43c2,_0x2aae8c,_0x1bf3af,_0x2a3b13,_0xf725d,_0x368e4e);}else{return{};}});break;}}function getCall(_0x51e5d6,_0xe02734,_0x226638,_0x33487b,_0x3d2ca7,_0x19aa29,_0x5da0a8,_0x237053){logger['info'](_0x287a('0x5b'));var _0x5491c5={};_0x5491c5[_0x287a('0x5c')]={'name':!_[_0x287a('0x1e')](_0x33487b[_0x287a('0x49')][_0x287a('0x1a')])&&!_[_0x287a('0x1e')](_0x33487b[_0x287a('0x3e')][_0x287a('0x1a')])&&_0x33487b[_0x287a('0x3e')][_0x287a('0x1a')]==='administrator'?_0x33487b[_0x287a('0x49')]['name']:!_[_0x287a('0x1e')](_0x33487b[_0x287a('0x4a')])?_0x33487b[_0x287a('0x4a')]+'\x20'+_0x33487b[_0x287a('0x4b')]:_0x33487b[_0x287a('0x4b')],'id':_0x33487b['id']};_0x5491c5[_0x287a('0x5d')]=intUtil[_0x287a('0x5e')](_0x19aa29[_0x287a('0x5f')],_0x5da0a8,'\x20');_0x5491c5[_0x287a('0x60')]=intUtil[_0x287a('0x5e')](_0x19aa29[_0x287a('0x61')],_0x5da0a8,'\x0a');if(_0x3d2ca7[_0x287a('0x45')]===_0x287a('0x54')){_0x5491c5[_0x287a('0x62')]={'name':!_[_0x287a('0x1e')](_0x3d2ca7[_0x287a('0x63')])?_0x3d2ca7[_0x287a('0x63')]:!_[_0x287a('0x1e')](_0x3d2ca7[_0x287a('0x64')])?_0x3d2ca7['First_Name']+'\x20'+_0x3d2ca7['Last_Name']:_0x3d2ca7[_0x287a('0x65')],'id':_0x3d2ca7['id']};}if(_0x3d2ca7[_0x287a('0x45')]===_0x287a('0x5a')){_0x5491c5[_0x287a('0x66')]={'name':!_[_0x287a('0x1e')](_0x3d2ca7['Full_Name'])?_0x3d2ca7[_0x287a('0x63')]:!_[_0x287a('0x1e')](_0x3d2ca7['First_Name'])?_0x3d2ca7[_0x287a('0x64')]+'\x20'+_0x3d2ca7['Last_Name']:_0x3d2ca7['Last_Name'],'id':_0x3d2ca7['id']};_0x5491c5[_0x287a('0x67')]=_[_0x287a('0x47')](_0x3d2ca7[_0x287a('0x45')]);}if(_0x5da0a8[_0x287a('0x68')]){_0x5491c5['Call_Duration']=moment[_0x287a('0x69')](parseInt(_0x5da0a8[_0x287a('0x68')])*0x3e8)[_0x287a('0x35')](_0x287a('0x6a'));}else if(_0x5da0a8[_0x287a('0x6b')]&&_0x5da0a8[_0x287a('0x6c')]){_0x5491c5[_0x287a('0x6d')]=moment['utc'](moment(_0x5da0a8['endtime'],_0x287a('0x6e'))[_0x287a('0x6f')](moment(_0x5da0a8[_0x287a('0x70')],'YYYY-MM-DDTHH:mm:ss')))[_0x287a('0x35')](_0x287a('0x6a'));}switch(_0x5da0a8['lastevent']){case _0x287a('0x71'):_0x5491c5[_0x287a('0x72')]=_0x287a('0x73');break;case'complete':case _0x287a('0x74'):_0x5491c5[_0x287a('0x72')]=_0x287a('0x75');break;case _0x287a('0x76'):_0x5491c5[_0x287a('0x72')]=_0x287a('0x77');break;case _0x287a('0x78'):_0x5491c5[_0x287a('0x72')]='Abandoned';break;case _0x287a('0x79'):_0x5491c5[_0x287a('0x72')]=_0x287a('0x7a');default:}_0x5491c5[_0x287a('0x7b')]=(_0x237053==='outbound'?moment(_0x5da0a8[_0x287a('0x70')])[_0x287a('0x35')]('YYYY-MM-DDTHH:mm:ss'):moment(_0x5da0a8[_0x287a('0x7c')])['format'](_0x287a('0x6e')))||moment()[_0x287a('0x35')](_0x287a('0x6e'));_0x5491c5[_0x287a('0x7d')]=_0x237053||_0x287a('0x7e');_0x5491c5=_[_0x287a('0x7f')](_0x5491c5,getCustomFields(_0x19aa29[_0x287a('0x80')],_0x5da0a8));return request({'method':_0x287a('0x26'),'uri':_0x287a('0x46')+_0xe02734+_0x287a('0x81'),'headers':{'Authorization':_0x287a('0x38')+_0x51e5d6},'body':{'data':[_0x5491c5]},'json':!![]})[_0x287a('0x2b')](function(_0x132d86){if(_0x132d86&&_0x132d86[_0x287a('0x44')][0x0]['code']===_0x287a('0x4c')){logger[_0x287a('0x32')](_0x287a('0x82'));return{'id':_0x132d86[_0x287a('0x44')][0x0][_0x287a('0x4d')]['id']};}})[_0x287a('0x2e')](function(_0x4190c1){logger['info'](_0x287a('0x83'),_0x4190c1['stack']);console['log']('err',_0x4190c1);});}exports[_0x287a('0x84')]=function(_0x8cf288,_0x8d9158,_0x14c68e,_0xddd8cc,_0x23c943,_0x353812){var _0x14e699,_0x12ae69,_0x5edaae;_0x353812[_0x287a('0x85')]=intUtil[_0x287a('0x86')](_0x353812['host']);_0x353812[_0x287a('0x87')]=intUtil[_0x287a('0x86')](_0x353812[_0x287a('0x87')]);if(_0x23c943&&_0x23c943[_0x287a('0x88')]){logger['info']('[QUEUE]','Recording\x20is\x20enabled!');_0x8d9158[_0x287a('0x89')]=_0x353812[_0x287a('0x87')]+_0x287a('0x8a')+_0x8d9158[_0x287a('0x8b')]+'/downloads?type=uniqueid&token='+md5(_0x8d9158[_0x287a('0x8b')]);}else{_0x8d9158[_0x287a('0x89')]='';}var _0x1024b6=_0x353812[_0x287a('0x85')]==='zoho.eu'?'eu':'com';return getAccessToken(_0x353812)['then'](function(_0x46d2d6){_0x5edaae=_0x46d2d6;return getUser(_0x5edaae,_0x1024b6,_0x353812,_0xddd8cc[_0x287a('0x3c')]);})[_0x287a('0x2b')](function(_0xff6bd1){_0x14e699=_0xff6bd1;logger[_0x287a('0x32')](_0x287a('0x8c'),_0x14e699['id']);return getEndUser(_0x5edaae,_0x1024b6,_0x353812,_0x8d9158[_0x287a('0x8d')],_0x8d9158[_0x287a('0x8e')],_0x14e699,_0x14c68e);})[_0x287a('0x2b')](function(_0x5d9d7a){_0x12ae69=_0x5d9d7a;return getCall(_0x5edaae,_0x1024b6,_0x353812,_0x14e699,_0x12ae69,_0x14c68e,_0x8d9158,'Inbound');})['then'](function(_0x480915){if(_0x480915){logger['info'](_0x287a('0x8f'),_0x480915['id']);logger[_0x287a('0x32')](_0x287a('0x90'),_0x287a('0x91'));emit(util[_0x287a('0x35')](_0x287a('0x92'),_0xddd8cc[_0x287a('0x1a')]),_0x287a('0x93'),{'uri':'https://crm.'+_0x353812['host']+_0x287a('0x94')+_0x480915['id']});}})['catch'](function(_0x15fefe){logger[_0x287a('0x2f')](_0x287a('0x90'),JSON['stringify'](_0x15fefe));});};exports['outbound']=function(_0x29bbac,_0x2d6e34,_0x5a0b02,_0x15447d,_0x4d99d4,_0x5a0233,_0x527925){var _0x3dff52,_0x58032b,_0x1708b9;_0x5a0233[_0x287a('0x85')]=intUtil[_0x287a('0x86')](_0x5a0233[_0x287a('0x85')]);_0x5a0233['serverUrl']=intUtil['stripTrailingSlash'](_0x5a0233[_0x287a('0x87')]);if(_0x527925&&_0x527925['recordingFormat']&&_0x527925[_0x287a('0x95')]!==_0x287a('0x96')){logger[_0x287a('0x32')](_0x287a('0x97'),_0x287a('0x98'));_0x2d6e34[_0x287a('0x89')]=_0x5a0233[_0x287a('0x87')]+_0x287a('0x8a')+_0x2d6e34[_0x287a('0x8b')]+_0x287a('0x99')+md5(_0x2d6e34[_0x287a('0x8b')]);}var _0x446993=_0x5a0233[_0x287a('0x85')]===_0x287a('0x9a')?'eu':_0x287a('0x9b');return getAccessToken(_0x5a0233)[_0x287a('0x2b')](function(_0x5574e4){_0x1708b9=_0x5574e4;return getUser(_0x1708b9,_0x446993,_0x5a0233,_0x15447d[_0x287a('0x3c')]);})['then'](function(_0x140854){_0x3dff52=_0x140854;logger[_0x287a('0x32')](_0x287a('0x8c'),_0x3dff52['id']);return getEndUser(_0x1708b9,_0x446993,_0x5a0233,_0x2d6e34[_0x287a('0x9c')],_0x2d6e34['destcalleridnum'],_0x3dff52,_0x5a0b02);})[_0x287a('0x2b')](function(_0x3c300e){_0x58032b=_0x3c300e;return getCall(_0x1708b9,_0x446993,_0x5a0233,_0x3dff52,_0x58032b,_0x5a0b02,_0x2d6e34,_0x287a('0x9d'));})[_0x287a('0x2b')](function(_0x44c26e){if(_0x44c26e){logger[_0x287a('0x32')](_0x287a('0x8f'),_0x44c26e['id']);logger[_0x287a('0x32')](_0x287a('0x97'),_0x287a('0x91'));emit(util['format']('user:%s',_0x15447d[_0x287a('0x1a')]),_0x287a('0x93'),{'uri':_0x287a('0x9e')+_0x5a0233[_0x287a('0x85')]+'/crm/EntityInfo.do?module=Calls&id='+_0x44c26e['id']});}})[_0x287a('0x2e')](function(_0x4fb8dd){logger[_0x287a('0x2f')]('[OUTBOUND]',JSON[_0x287a('0xe')](_0x4fb8dd));});};exports['unmanaged']=function(_0x5722b7,_0x2b5b1c,_0x5bac60,_0x1ef6f9,_0xc4c724,_0x46cb45){var _0x34f1b0,_0xae6811,_0x25441d;_0x46cb45[_0x287a('0x85')]=intUtil[_0x287a('0x86')](_0x46cb45['host']);_0x46cb45[_0x287a('0x87')]=intUtil[_0x287a('0x86')](_0x46cb45[_0x287a('0x87')]);if(_0xc4c724&&_0xc4c724[_0x287a('0x88')]){logger[_0x287a('0x32')]('['+_0x2b5b1c[_0x287a('0x9f')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x2b5b1c[_0x287a('0x89')]=_0x46cb45[_0x287a('0x87')]+'/api/voice/recordings/'+_0x2b5b1c[_0x287a('0x8b')]+'/downloads?type=uniqueid&token='+md5(_0x2b5b1c[_0x287a('0x8b')]);}else{_0x2b5b1c[_0x287a('0x89')]='';}var _0x1d6331=_0x46cb45[_0x287a('0x85')]===_0x287a('0x9a')?'eu':_0x287a('0x9b');return getAccessToken(_0x46cb45)['then'](function(_0x1c84f4){_0x25441d=_0x1c84f4;return getUser(_0x25441d,_0x1d6331,_0x46cb45);})[_0x287a('0x2b')](function(_0x5dba3d){_0x34f1b0=_0x5dba3d;logger[_0x287a('0x32')](_0x287a('0x8c'),_0x34f1b0['id']);return getEndUser(_0x25441d,_0x1d6331,_0x46cb45,_0x2b5b1c['calleridname'],_0x2b5b1c[_0x287a('0x8e')],_0x34f1b0,_0x5bac60);})[_0x287a('0x2b')](function(_0x55d6d1){_0xae6811=_0x55d6d1;return getCall(_0x25441d,_0x1d6331,_0x46cb45,_0x34f1b0,_0xae6811,_0x5bac60,_0x2b5b1c,_0x287a('0x7e'));})['then'](function(_0x3e53e3){if(_0x3e53e3){logger[_0x287a('0x32')](_0x287a('0x8f'),_0x3e53e3['id']);}})[_0x287a('0x2e')](function(_0x2375e9){logger['error']('['+_0x2b5b1c[_0x287a('0x9f')][_0x287a('0xa0')]()+']',JSON[_0x287a('0xe')](_0x2375e9));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46a2=['Script','data3','error','format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','info','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','shelljs','mustache','trigger','exec','data2'];(function(_0xb73234,_0x5df240){var _0x451696=function(_0x163f9c){while(--_0x163f9c){_0xb73234['push'](_0xb73234['shift']());}};_0x451696(++_0x5df240);}(_0x46a2,0x10b));var _0x246a=function(_0x1f8053,_0x111077){_0x1f8053=_0x1f8053-0x0;var _0x174fd8=_0x46a2[_0x1f8053];return _0x174fd8;};'use strict';var util=require(_0x246a('0x0'));var sh=require(_0x246a('0x1'));var Mustache=require(_0x246a('0x2'));var logger=require('../../../../config/logger')(_0x246a('0x3'));exports[_0x246a('0x4')]=function(_0x3c385a,_0x253fbd){var _0x40e628=_0x3c385a[_0x246a('0x5')]?_0x3c385a['data2']:_0x246a('0x6');var _0x6112c1=_0x3c385a[_0x246a('0x7')]?Mustache['render'](_0x3c385a[_0x246a('0x7')],_0x253fbd):_0x253fbd;sh['exec'](_0x6112c1,function(_0x1693b2,_0xcff6b4,_0x3f85fc){if(_0x1693b2!==0x0){logger[_0x246a('0x8')](util[_0x246a('0x9')](_0x246a('0xa'),_0x40e628,_0x6112c1,_0x1693b2,_0x3f85fc));}else{logger[_0x246a('0xb')](util[_0x246a('0x9')](_0x246a('0xc'),_0x40e628,_0x6112c1,_0xcff6b4));}});};
\ No newline at end of file
+var _0x5e3b=['shelljs','mustache','../../../../config/logger','trigger','exec','data2','Script','data3','error','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','format','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util'];(function(_0x4c05da,_0x414720){var _0x1614db=function(_0xa19cf6){while(--_0xa19cf6){_0x4c05da['push'](_0x4c05da['shift']());}};_0x1614db(++_0x414720);}(_0x5e3b,0x192));var _0xb5e3=function(_0x23d8e0,_0x403915){_0x23d8e0=_0x23d8e0-0x0;var _0x22cdf7=_0x5e3b[_0x23d8e0];return _0x22cdf7;};'use strict';var util=require(_0xb5e3('0x0'));var sh=require(_0xb5e3('0x1'));var Mustache=require(_0xb5e3('0x2'));var logger=require(_0xb5e3('0x3'))(_0xb5e3('0x4'));exports[_0xb5e3('0x5')]=function(_0x3bacec,_0x28ff95){var _0xf349bd=_0x3bacec[_0xb5e3('0x6')]?_0x3bacec[_0xb5e3('0x6')]:_0xb5e3('0x7');var _0x5ec243=_0x3bacec[_0xb5e3('0x8')]?Mustache['render'](_0x3bacec[_0xb5e3('0x8')],_0x28ff95):_0x28ff95;sh[_0xb5e3('0x5')](_0x5ec243,function(_0x18b7ef,_0x15dfbd,_0x1db4de){if(_0x18b7ef!==0x0){logger[_0xb5e3('0x9')](util['format'](_0xb5e3('0xa'),_0xf349bd,_0x5ec243,_0x18b7ef,_0x1db4de));}else{logger['info'](util[_0xb5e3('0xb')](_0xb5e3('0xc'),_0xf349bd,_0x5ec243,_0x15dfbd));}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd30e=['../../../../config/logger','exec','toUpperCase','render','data2','data5','number','headers','parse','data6','error','data1','DELETE','POST','PUT','data7','stack','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','body','info','format','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s',',\x20request\x20body:\x20','stringify','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s','catch','name','message','request-promise','util','lodash'];(function(_0x51d9e5,_0x58c7ab){var _0x7bcb54=function(_0x35cd2f){while(--_0x35cd2f){_0x51d9e5['push'](_0x51d9e5['shift']());}};_0x7bcb54(++_0x58c7ab);}(_0xd30e,0x133));var _0xed30=function(_0x66fa37,_0x49ff63){_0x66fa37=_0x66fa37-0x0;var _0x1374a0=_0xd30e[_0x66fa37];return _0x1374a0;};'use strict';var rp=require(_0xed30('0x0'));var util=require(_0xed30('0x1'));var _=require(_0xed30('0x2'));var Mustache=require('mustache');var logger=require(_0xed30('0x3'))('trigger');exports[_0xed30('0x4')]=function(_0x5d8fc1,_0x227fb9){var _0x29a764,_0x68af2a;var _0x51713e={'method':_0x5d8fc1['data1'][_0xed30('0x5')](),'uri':Mustache[_0xed30('0x6')](_0x5d8fc1[_0xed30('0x7')],_0x227fb9),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x5d8fc1[_0xed30('0x8')])===_0xed30('0x9')&&parseInt(_0x5d8fc1[_0xed30('0x8')])>=0x1&&parseInt(_0x5d8fc1[_0xed30('0x8')])<=0xa?parseInt(_0x5d8fc1[_0xed30('0x8')])*0x3e8:0x5*0x3e8};try{_0x51713e[_0xed30('0xa')]=_0x5d8fc1['data6']?JSON[_0xed30('0xb')](Mustache[_0xed30('0x6')](_0x5d8fc1[_0xed30('0xc')],_0x227fb9)):{};}catch(_0x415e73){logger[_0xed30('0xd')](_0x415e73['stack']);}switch(_0x5d8fc1[_0xed30('0xe')][_0xed30('0x5')]()){case'GET':case _0xed30('0xf'):_0x29a764=null;_0x51713e['qs']=_0x227fb9;break;case _0xed30('0x10'):case _0xed30('0x11'):if(_0x5d8fc1[_0xed30('0x12')]){try{_0x29a764=JSON[_0xed30('0xb')](Mustache['render'](_0x5d8fc1[_0xed30('0x12')],_0x227fb9));_0x51713e['body']=_0x29a764;}catch(_0x232943){logger[_0xed30('0xd')](_0x232943[_0xed30('0x13')]);logger[_0xed30('0xd')](_0xed30('0x14'));}}else{_0x29a764=_0x227fb9;_0x51713e[_0xed30('0x15')]=_0x29a764;}break;}logger[_0xed30('0x16')](util[_0xed30('0x17')](_0xed30('0x18'),_0x5d8fc1[_0xed30('0xe')],_0x5d8fc1[_0xed30('0x7')],JSON['stringify'](_0x51713e)));rp(_0x51713e)['then'](function(_0x49edbb){_0x29a764=!_['isNil'](_0x29a764)?_0xed30('0x19')+_0x29a764:'';_0x68af2a=typeof _0x49edbb[_0xed30('0x15')]==='object'?JSON[_0xed30('0x1a')](_0x49edbb['body']):_0x49edbb[_0xed30('0x15')];logger['info'](util[_0xed30('0x17')](_0xed30('0x1b'),_0x5d8fc1[_0xed30('0xe')],_0x5d8fc1['data2'],_0x49edbb['statusCode'],_0x68af2a));})[_0xed30('0x1c')](function(_0xe5e52b){logger[_0xed30('0xd')](util[_0xed30('0x17')]('%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s',_0x5d8fc1[_0xed30('0xe')],_0x5d8fc1['data2'],_0xe5e52b['statusCode'],_0xe5e52b[_0xed30('0x1d')],_0xe5e52b[_0xed30('0x1e')]));});};
\ No newline at end of file
+var _0x7a2d=['%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s','stringify','isNil','object','catch','format','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','statusCode','name','message','util','../../../../config/logger','trigger','exec','data2','data5','number','headers','data6','parse','stack','data1','toUpperCase','GET','DELETE','render','data7','body','error','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','info'];(function(_0x42245d,_0x51758f){var _0x4b211a=function(_0x2634e){while(--_0x2634e){_0x42245d['push'](_0x42245d['shift']());}};_0x4b211a(++_0x51758f);}(_0x7a2d,0xa5));var _0xd7a2=function(_0x9a7844,_0x326e41){_0x9a7844=_0x9a7844-0x0;var _0x317b09=_0x7a2d[_0x9a7844];return _0x317b09;};'use strict';var rp=require('request-promise');var util=require(_0xd7a2('0x0'));var _=require('lodash');var Mustache=require('mustache');var logger=require(_0xd7a2('0x1'))(_0xd7a2('0x2'));exports[_0xd7a2('0x3')]=function(_0x56de62,_0x3eeec8){var _0x5a53ab,_0x538f57;var _0x5c2e3e={'method':_0x56de62['data1']['toUpperCase'](),'uri':Mustache['render'](_0x56de62[_0xd7a2('0x4')],_0x3eeec8),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x56de62[_0xd7a2('0x5')])===_0xd7a2('0x6')&&parseInt(_0x56de62[_0xd7a2('0x5')])>=0x1&&parseInt(_0x56de62[_0xd7a2('0x5')])<=0xa?parseInt(_0x56de62[_0xd7a2('0x5')])*0x3e8:0x5*0x3e8};try{_0x5c2e3e[_0xd7a2('0x7')]=_0x56de62[_0xd7a2('0x8')]?JSON[_0xd7a2('0x9')](Mustache['render'](_0x56de62[_0xd7a2('0x8')],_0x3eeec8)):{};}catch(_0x4a82dd){logger['error'](_0x4a82dd[_0xd7a2('0xa')]);}switch(_0x56de62[_0xd7a2('0xb')][_0xd7a2('0xc')]()){case _0xd7a2('0xd'):case _0xd7a2('0xe'):_0x5a53ab=null;_0x5c2e3e['qs']=_0x3eeec8;break;case'POST':case'PUT':if(_0x56de62['data7']){try{_0x5a53ab=JSON['parse'](Mustache[_0xd7a2('0xf')](_0x56de62[_0xd7a2('0x10')],_0x3eeec8));_0x5c2e3e[_0xd7a2('0x11')]=_0x5a53ab;}catch(_0x48f758){logger[_0xd7a2('0x12')](_0x48f758['stack']);logger['error'](_0xd7a2('0x13'));}}else{_0x5a53ab=_0x3eeec8;_0x5c2e3e[_0xd7a2('0x11')]=_0x5a53ab;}break;}logger[_0xd7a2('0x14')](util['format'](_0xd7a2('0x15'),_0x56de62[_0xd7a2('0xb')],_0x56de62[_0xd7a2('0x4')],JSON[_0xd7a2('0x16')](_0x5c2e3e)));rp(_0x5c2e3e)['then'](function(_0x58d4f5){_0x5a53ab=!_[_0xd7a2('0x17')](_0x5a53ab)?',\x20request\x20body:\x20'+_0x5a53ab:'';_0x538f57=typeof _0x58d4f5['body']===_0xd7a2('0x18')?JSON[_0xd7a2('0x16')](_0x58d4f5[_0xd7a2('0x11')]):_0x58d4f5[_0xd7a2('0x11')];logger[_0xd7a2('0x14')](util['format']('%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s',_0x56de62[_0xd7a2('0xb')],_0x56de62[_0xd7a2('0x4')],_0x58d4f5['statusCode'],_0x538f57));})[_0xd7a2('0x19')](function(_0x4290ab){logger[_0xd7a2('0x12')](util[_0xd7a2('0x1a')](_0xd7a2('0x1b'),_0x56de62['data1'],_0x56de62[_0xd7a2('0x4')],_0x4290ab[_0xd7a2('0x1c')],_0x4290ab[_0xd7a2('0x1d')],_0x4290ab[_0xd7a2('0x1e')]));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb15c=['debug','rpc','error','message','catch','jayson/promise','bluebird','../../config/logger','routing','client','http','Request','request','then'];(function(_0x3e691b,_0x1f70ec){var _0x53f5cb=function(_0x30f026){while(--_0x30f026){_0x3e691b['push'](_0x3e691b['shift']());}};_0x53f5cb(++_0x1f70ec);}(_0xb15c,0xc9));var _0xcb15=function(_0x1171ca,_0xa4765){_0x1171ca=_0x1171ca-0x0;var _0x9c52fb=_0xb15c[_0x1171ca];return _0x9c52fb;};'use strict';var jayson=require(_0xcb15('0x0'));var BPromise=require(_0xcb15('0x1'));var logger=require(_0xcb15('0x2'))(_0xcb15('0x3'));var client=jayson[_0xcb15('0x4')][_0xcb15('0x5')]({'port':0x2329});client[_0xcb15('0x6')]=function(_0x1aa59f,_0x3fa009){return new BPromise(function(_0x39c8df,_0x4f20ea){return client[_0xcb15('0x7')](_0x1aa59f,_0x3fa009)[_0xcb15('0x8')](function(_0x44fbb0){logger[_0xcb15('0x9')](_0xcb15('0xa'),_0xcb15('0x3'),_0x1aa59f,_0x3fa009,_0x44fbb0);if(_0x44fbb0[_0xcb15('0xb')]){logger[_0xcb15('0xb')](_0xcb15('0xa'),'routing',_0x1aa59f,_0x44fbb0[_0xcb15('0xb')][_0xcb15('0xc')],_0x3fa009);return _0x4f20ea(_0x44fbb0['error'][_0xcb15('0xc')]);}else{return _0x39c8df(_0x44fbb0['result']);}})[_0xcb15('0xd')](function(_0x124eae){logger['error'](_0xcb15('0xa'),_0xcb15('0x3'),_0x1aa59f,_0x124eae,_0x3fa009);return _0x4f20ea(_0x124eae);});});};module['exports']=client;
\ No newline at end of file
+var _0x65fc=['request','debug','rpc','error','message','result','catch','exports','bluebird','../../config/logger','routing','client','http','Request'];(function(_0x317240,_0x3ab064){var _0x345875=function(_0x2d744b){while(--_0x2d744b){_0x317240['push'](_0x317240['shift']());}};_0x345875(++_0x3ab064);}(_0x65fc,0x1ac));var _0xc65f=function(_0x40b391,_0x3731e8){_0x40b391=_0x40b391-0x0;var _0x207a75=_0x65fc[_0x40b391];return _0x207a75;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0xc65f('0x0'));var logger=require(_0xc65f('0x1'))(_0xc65f('0x2'));var client=jayson[_0xc65f('0x3')][_0xc65f('0x4')]({'port':0x2329});client[_0xc65f('0x5')]=function(_0x3a2244,_0x191768){return new BPromise(function(_0x4bbc1b,_0x5c1731){return client[_0xc65f('0x6')](_0x3a2244,_0x191768)['then'](function(_0x395390){logger[_0xc65f('0x7')](_0xc65f('0x8'),_0xc65f('0x2'),_0x3a2244,_0x191768,_0x395390);if(_0x395390[_0xc65f('0x9')]){logger[_0xc65f('0x9')](_0xc65f('0x8'),_0xc65f('0x2'),_0x3a2244,_0x395390[_0xc65f('0x9')]['message'],_0x191768);return _0x5c1731(_0x395390[_0xc65f('0x9')][_0xc65f('0xa')]);}else{return _0x4bbc1b(_0x395390[_0xc65f('0xb')]);}})[_0xc65f('0xc')](function(_0x1914cc){logger[_0xc65f('0x9')](_0xc65f('0x8'),_0xc65f('0x2'),_0x3a2244,_0x1914cc,_0x191768);return _0x5c1731(_0x1914cc);});});};module[_0xc65f('0xd')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d87=['bluebird','./server','./rpc/setting','resolve','then','initMailAccounts','refresh','mailAccounts','getSettings','loginMailFrequency','log'];(function(_0x360189,_0x40a134){var _0x5c148b=function(_0x302806){while(--_0x302806){_0x360189['push'](_0x360189['shift']());}};_0x5c148b(++_0x40a134);}(_0x2d87,0x84));var _0x72d8=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x2d87[_0x4cf98e];return _0x1623ac;};'use strict';var BPromise=require(_0x72d8('0x0'));var server=require(_0x72d8('0x1'));var Realtime=require('./realtime');var EmailChannel=require('./lib/email');var mailAccount=require('./rpc/mailAccount');var setting=require(_0x72d8('0x2'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x72d8('0x3')]()[_0x72d8('0x4')](mailAccount['getMailAccounts']())[_0x72d8('0x4')](realtime[_0x72d8('0x5')]())[_0x72d8('0x4')](function(){email[_0x72d8('0x6')](realtime[_0x72d8('0x7')]);return realtime;});}function main(){return server['listen'](realtime,email)[_0x72d8('0x4')](function(){return initRealtime();})[_0x72d8('0x4')](function(){return setting[_0x72d8('0x8')]();})[_0x72d8('0x4')](function(_0x55940e){return setInterval(initRealtime,_0x55940e[_0x72d8('0x9')]*0x3e8);})['catch'](function(_0x311c7d){console[_0x72d8('0xa')](_0x311c7d);});}main();
\ No newline at end of file
+var _0x9e42=['resolve','getMailAccounts','then','refresh','mailAccounts','listen','getSettings','loginMailFrequency','catch','log','./server','./rpc/mailAccount','./rpc/setting'];(function(_0x13adc7,_0x4c8860){var _0x560be5=function(_0x4f3073){while(--_0x4f3073){_0x13adc7['push'](_0x13adc7['shift']());}};_0x560be5(++_0x4c8860);}(_0x9e42,0x169));var _0x29e4=function(_0x114b7c,_0xc4b93b){_0x114b7c=_0x114b7c-0x0;var _0x47185f=_0x9e42[_0x114b7c];return _0x47185f;};'use strict';var BPromise=require('bluebird');var server=require(_0x29e4('0x0'));var Realtime=require('./realtime');var EmailChannel=require('./lib/email');var mailAccount=require(_0x29e4('0x1'));var setting=require(_0x29e4('0x2'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x29e4('0x3')]()['then'](mailAccount[_0x29e4('0x4')]())['then'](realtime['initMailAccounts']())[_0x29e4('0x5')](function(){email[_0x29e4('0x6')](realtime[_0x29e4('0x7')]);return realtime;});}function main(){return server[_0x29e4('0x8')](realtime,email)[_0x29e4('0x5')](function(){return initRealtime();})[_0x29e4('0x5')](function(){return setting[_0x29e4('0x9')]();})[_0x29e4('0x5')](function(_0x2ee96c){return setInterval(initRealtime,_0x2ee96c[_0x29e4('0xa')]*0x3e8);})[_0x29e4('0xb')](function(_0x2944ba){console[_0x29e4('0xc')](_0x2944ba);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1270=['name','messages','handleImapEmail','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','firstName','from','notify','then','Mail\x20accepted\x20from\x20routing','catch','lastSync','sendMail','send','verifySmtp','Smtp','verify','exports','lodash','moment','bluebird','md5','../../../config/environment','../../../config/logger','email','redis','localhost','socket.io-emitter','./imap','info','start\x20email\x20channel','mailAccounts','imapAccounts','smtp','prototype','emit','key','Imap','status','messageStatus','total','isNil','stringify','mailAccount:update','hasOwnProperty','active','box','end','handleImapEnd','bind','error','handleImapError','disabled'];(function(_0x5ab5be,_0x21820b){var _0x2db5d8=function(_0x3acf72){while(--_0x3acf72){_0x5ab5be['push'](_0x5ab5be['shift']());}};_0x2db5d8(++_0x21820b);}(_0x1270,0xe1));var _0x0127=function(_0x1ae2c8,_0x4a3d48){_0x1ae2c8=_0x1ae2c8-0x0;var _0x5d3ebf=_0x1270[_0x1ae2c8];return _0x5d3ebf;};'use strict';var _=require(_0x0127('0x0'));var moment=require(_0x0127('0x1'));var BPromise=require(_0x0127('0x2'));var md5=require(_0x0127('0x3'));var Redis=require('ioredis');var config=require(_0x0127('0x4'));var logger=require(_0x0127('0x5'))(_0x0127('0x6'));config[_0x0127('0x7')]=_['defaults'](config['redis'],{'host':_0x0127('0x8'),'port':0x18eb});var io=require(_0x0127('0x9'))(new Redis(config[_0x0127('0x7')]));var EmailImap=require(_0x0127('0xa'));var EmailSmtp=require('./smtp');var mailAccount=require('../rpc/mailAccount');var md5Accounts={};function EmailChannel(_0x2e1294){logger[_0x0127('0xb')](_0x0127('0xc'));this[_0x0127('0xd')]=_0x2e1294[_0x0127('0xd')];this[_0x0127('0xe')]={};this[_0x0127('0xf')]=new EmailSmtp();}EmailChannel[_0x0127('0x10')][_0x0127('0x11')]=function(_0x45441c){var _0x33b404=this[_0x0127('0xd')][_0x45441c];var _0x32c2e8={'id':_0x33b404['id'],'name':_0x33b404['name'],'key':_0x33b404[_0x0127('0x12')],'active':_0x33b404['active'],'Imap':{'status':_0x33b404[_0x0127('0x13')][_0x0127('0x14')],'messageStatus':_0x33b404[_0x0127('0x13')][_0x0127('0x15')],'total':_0x33b404[_0x0127('0x13')][_0x0127('0x16')]}};if(_[_0x0127('0x17')](md5Accounts[_0x45441c])){md5Accounts[_0x45441c]={};}var _0xd153d1=md5(JSON[_0x0127('0x18')](_0x32c2e8));if(md5Accounts[_0x45441c][_0x0127('0x3')]!==_0xd153d1){md5Accounts[_0x45441c][_0x0127('0x3')]=_0xd153d1;io[_0x0127('0x11')](_0x0127('0x19'),_0x32c2e8);}};EmailChannel[_0x0127('0x10')]['refresh']=function(_0x3be5d2){for(var _0x4429a3 in _0x3be5d2){if(_0x3be5d2[_0x0127('0x1a')](_0x4429a3)){if(_0x3be5d2[_0x4429a3][_0x0127('0x13')]&&_0x3be5d2[_0x4429a3][_0x0127('0x1b')]){var _0x994766=_0x3be5d2[_0x4429a3]['Imap'];if(!this[_0x0127('0xe')][_0x0127('0x1a')](_0x994766['id'])){this[_0x0127('0xe')][_0x994766['id']]=new EmailImap(_0x994766,_0x3be5d2[_0x4429a3][_0x0127('0x6')]);this[_0x0127('0xe')][_0x994766['id']]['on'](_0x0127('0x1c'),this['handleImapBox']['bind'](this,_0x4429a3));this[_0x0127('0xe')][_0x994766['id']]['on'](_0x0127('0x6'),this['handleImapEmail']['bind'](this,_0x4429a3));this[_0x0127('0xe')][_0x994766['id']]['on'](_0x0127('0x1d'),this[_0x0127('0x1e')][_0x0127('0x1f')](this,_0x4429a3));this['imapAccounts'][_0x994766['id']]['on'](_0x0127('0x20'),this[_0x0127('0x21')][_0x0127('0x1f')](this,_0x4429a3));}}else{if(_[_0x0127('0x17')](this[_0x0127('0xd')][_0x4429a3][_0x0127('0x13')])){this[_0x0127('0xd')][_0x4429a3][_0x0127('0x13')]={};}this[_0x0127('0xd')][_0x4429a3][_0x0127('0x13')][_0x0127('0x14')]=_0x0127('0x22');this[_0x0127('0xd')][_0x4429a3]['Imap'][_0x0127('0x15')]='';this['emit'](_0x4429a3);}}}};EmailChannel[_0x0127('0x10')]['handleImapBox']=function(_0x384185,_0x58b4ca){if(this[_0x0127('0xd')][_0x384185]){this[_0x0127('0xd')][_0x384185][_0x0127('0x13')][_0x0127('0x14')]='connected';this[_0x0127('0xd')][_0x384185]['Imap'][_0x0127('0x15')]=_0x58b4ca[_0x0127('0x23')];if(_0x58b4ca[_0x0127('0x24')]){this['mailAccounts'][_0x384185][_0x0127('0x13')][_0x0127('0x16')]=_0x58b4ca[_0x0127('0x24')][_0x0127('0x16')];}return this[_0x0127('0x11')](_0x384185);}};EmailChannel['prototype'][_0x0127('0x25')]=function(_0x2e8955,_0x4425a1){logger[_0x0127('0xb')](_0x0127('0x26'),_0x4425a1[_0x0127('0x27')],_0x4425a1['lastName'],_0x4425a1[_0x0127('0x28')],_0x2e8955);if(this[_0x0127('0xd')][_0x2e8955]){return mailAccount[_0x0127('0x29')](_0x2e8955,_0x4425a1)[_0x0127('0x2a')](function(_0x530f51){if(_0x530f51){logger[_0x0127('0xb')](_0x0127('0x2b'));}})[_0x0127('0x2c')](function(_0x50c7f3){logger['error']('Mail\x20not\x20accepted\x20from\x20routing\x20%s',JSON['stringify'](_0x50c7f3));});}};EmailChannel[_0x0127('0x10')][_0x0127('0x1e')]=function(_0x2e8187){if(this[_0x0127('0xd')][_0x2e8187]&&this['mailAccounts'][_0x2e8187][_0x0127('0x13')]){if(this[_0x0127('0xe')][this[_0x0127('0xd')][_0x2e8187]['Imap']['id']]){delete this[_0x0127('0xe')][this[_0x0127('0xd')][_0x2e8187]['Imap']['id']];}this[_0x0127('0xd')][_0x2e8187]['Imap'][_0x0127('0x2d')]=moment();this[_0x0127('0x11')](_0x2e8187);}};EmailChannel[_0x0127('0x10')]['handleImapError']=function(_0x2d7d74,_0x492b65){if(this['mailAccounts'][_0x2d7d74]){this['mailAccounts'][_0x2d7d74]['Imap'][_0x0127('0x14')]=_0x0127('0x20');this[_0x0127('0xd')][_0x2d7d74]['Imap'][_0x0127('0x15')]=_0x492b65;return this['emit'](_0x2d7d74);}};EmailChannel[_0x0127('0x10')][_0x0127('0x2e')]=function(_0x2c4ad5,_0x30f7e5){return this[_0x0127('0xf')][_0x0127('0x2f')](_0x2c4ad5,_0x30f7e5);};EmailChannel[_0x0127('0x10')][_0x0127('0x30')]=function(_0x3e291d){var _0x4bacd6=this;if(this[_0x0127('0xd')][_0x3e291d['id']]){if(_[_0x0127('0x17')](this[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')])){this[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')]={};}this[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')][_0x0127('0x2d')]=moment();return new BPromise(function(_0x431f57,_0x184526){return _0x4bacd6[_0x0127('0xf')][_0x0127('0x32')](_0x3e291d)[_0x0127('0x2a')](function(_0x274a0e){_0x4bacd6[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')][_0x0127('0x14')]='verified';_0x4bacd6[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')][_0x0127('0x15')]='';_0x4bacd6[_0x0127('0x11')](_0x3e291d['id']);_0x431f57(_0x274a0e);})[_0x0127('0x2c')](function(_0x4f86b1){_0x4bacd6['mailAccounts'][_0x3e291d['id']]['Smtp']['status']=_0x0127('0x20');_0x4bacd6[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')]['messageStatus']=_0x4f86b1;_0x4bacd6[_0x0127('0x11')](_0x3e291d['id']);_0x184526(_0x4f86b1);});});}return this['smtp'][_0x0127('0x32')](_0x3e291d);};module[_0x0127('0x33')]=EmailChannel;
\ No newline at end of file
+var _0xb8d7=['./smtp','../rpc/mailAccount','info','start\x20email\x20channel','mailAccounts','imapAccounts','prototype','emit','Imap','messageStatus','total','isNil','stringify','mailAccount:update','refresh','hasOwnProperty','active','box','handleImapBox','bind','handleImapEmail','end','handleImapEnd','error','handleImapError','disabled','status','connected','name','messages','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','firstName','lastName','then','Mail\x20accepted\x20from\x20routing','catch','Mail\x20not\x20accepted\x20from\x20routing\x20%s','lastSync','smtp','send','verifySmtp','Smtp','verify','verified','exports','lodash','moment','bluebird','md5','../../../config/logger','email','redis','localhost','socket.io-emitter','./imap'];(function(_0x23d33f,_0x5a8113){var _0x3459a6=function(_0x271544){while(--_0x271544){_0x23d33f['push'](_0x23d33f['shift']());}};_0x3459a6(++_0x5a8113);}(_0xb8d7,0xd2));var _0x7b8d=function(_0x432075,_0x308bed){_0x432075=_0x432075-0x0;var _0x575582=_0xb8d7[_0x432075];return _0x575582;};'use strict';var _=require(_0x7b8d('0x0'));var moment=require(_0x7b8d('0x1'));var BPromise=require(_0x7b8d('0x2'));var md5=require(_0x7b8d('0x3'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x7b8d('0x4'))(_0x7b8d('0x5'));config[_0x7b8d('0x6')]=_['defaults'](config[_0x7b8d('0x6')],{'host':_0x7b8d('0x7'),'port':0x18eb});var io=require(_0x7b8d('0x8'))(new Redis(config['redis']));var EmailImap=require(_0x7b8d('0x9'));var EmailSmtp=require(_0x7b8d('0xa'));var mailAccount=require(_0x7b8d('0xb'));var md5Accounts={};function EmailChannel(_0x3c99a3){logger[_0x7b8d('0xc')](_0x7b8d('0xd'));this['mailAccounts']=_0x3c99a3[_0x7b8d('0xe')];this[_0x7b8d('0xf')]={};this['smtp']=new EmailSmtp();}EmailChannel[_0x7b8d('0x10')][_0x7b8d('0x11')]=function(_0x241359){var _0x31a04f=this[_0x7b8d('0xe')][_0x241359];var _0x5368ad={'id':_0x31a04f['id'],'name':_0x31a04f['name'],'key':_0x31a04f['key'],'active':_0x31a04f['active'],'Imap':{'status':_0x31a04f[_0x7b8d('0x12')]['status'],'messageStatus':_0x31a04f[_0x7b8d('0x12')][_0x7b8d('0x13')],'total':_0x31a04f[_0x7b8d('0x12')][_0x7b8d('0x14')]}};if(_[_0x7b8d('0x15')](md5Accounts[_0x241359])){md5Accounts[_0x241359]={};}var _0x292db5=md5(JSON[_0x7b8d('0x16')](_0x5368ad));if(md5Accounts[_0x241359]['md5']!==_0x292db5){md5Accounts[_0x241359][_0x7b8d('0x3')]=_0x292db5;io['emit'](_0x7b8d('0x17'),_0x5368ad);}};EmailChannel[_0x7b8d('0x10')][_0x7b8d('0x18')]=function(_0x586fbb){for(var _0x156fec in _0x586fbb){if(_0x586fbb[_0x7b8d('0x19')](_0x156fec)){if(_0x586fbb[_0x156fec][_0x7b8d('0x12')]&&_0x586fbb[_0x156fec][_0x7b8d('0x1a')]){var _0x3edc1a=_0x586fbb[_0x156fec][_0x7b8d('0x12')];if(!this[_0x7b8d('0xf')][_0x7b8d('0x19')](_0x3edc1a['id'])){this[_0x7b8d('0xf')][_0x3edc1a['id']]=new EmailImap(_0x3edc1a,_0x586fbb[_0x156fec][_0x7b8d('0x5')]);this['imapAccounts'][_0x3edc1a['id']]['on'](_0x7b8d('0x1b'),this[_0x7b8d('0x1c')][_0x7b8d('0x1d')](this,_0x156fec));this[_0x7b8d('0xf')][_0x3edc1a['id']]['on'](_0x7b8d('0x5'),this[_0x7b8d('0x1e')][_0x7b8d('0x1d')](this,_0x156fec));this[_0x7b8d('0xf')][_0x3edc1a['id']]['on'](_0x7b8d('0x1f'),this[_0x7b8d('0x20')][_0x7b8d('0x1d')](this,_0x156fec));this[_0x7b8d('0xf')][_0x3edc1a['id']]['on'](_0x7b8d('0x21'),this[_0x7b8d('0x22')][_0x7b8d('0x1d')](this,_0x156fec));}}else{if(_[_0x7b8d('0x15')](this['mailAccounts'][_0x156fec][_0x7b8d('0x12')])){this['mailAccounts'][_0x156fec]['Imap']={};}this[_0x7b8d('0xe')][_0x156fec][_0x7b8d('0x12')]['status']=_0x7b8d('0x23');this[_0x7b8d('0xe')][_0x156fec]['Imap'][_0x7b8d('0x13')]='';this[_0x7b8d('0x11')](_0x156fec);}}}};EmailChannel[_0x7b8d('0x10')][_0x7b8d('0x1c')]=function(_0x2c9560,_0x2c6fa9){if(this[_0x7b8d('0xe')][_0x2c9560]){this[_0x7b8d('0xe')][_0x2c9560][_0x7b8d('0x12')][_0x7b8d('0x24')]=_0x7b8d('0x25');this[_0x7b8d('0xe')][_0x2c9560][_0x7b8d('0x12')][_0x7b8d('0x13')]=_0x2c6fa9[_0x7b8d('0x26')];if(_0x2c6fa9[_0x7b8d('0x27')]){this[_0x7b8d('0xe')][_0x2c9560]['Imap']['total']=_0x2c6fa9[_0x7b8d('0x27')][_0x7b8d('0x14')];}return this[_0x7b8d('0x11')](_0x2c9560);}};EmailChannel[_0x7b8d('0x10')]['handleImapEmail']=function(_0xf3772c,_0x56126d){logger['info'](_0x7b8d('0x28'),_0x56126d[_0x7b8d('0x29')],_0x56126d[_0x7b8d('0x2a')],_0x56126d['from'],_0xf3772c);if(this['mailAccounts'][_0xf3772c]){return mailAccount['notify'](_0xf3772c,_0x56126d)[_0x7b8d('0x2b')](function(_0x2fb968){if(_0x2fb968){logger['info'](_0x7b8d('0x2c'));}})[_0x7b8d('0x2d')](function(_0x597364){logger[_0x7b8d('0x21')](_0x7b8d('0x2e'),JSON[_0x7b8d('0x16')](_0x597364));});}};EmailChannel[_0x7b8d('0x10')][_0x7b8d('0x20')]=function(_0x44a43d){if(this[_0x7b8d('0xe')][_0x44a43d]&&this['mailAccounts'][_0x44a43d][_0x7b8d('0x12')]){if(this[_0x7b8d('0xf')][this[_0x7b8d('0xe')][_0x44a43d][_0x7b8d('0x12')]['id']]){delete this[_0x7b8d('0xf')][this[_0x7b8d('0xe')][_0x44a43d][_0x7b8d('0x12')]['id']];}this['mailAccounts'][_0x44a43d][_0x7b8d('0x12')][_0x7b8d('0x2f')]=moment();this[_0x7b8d('0x11')](_0x44a43d);}};EmailChannel[_0x7b8d('0x10')][_0x7b8d('0x22')]=function(_0x288880,_0x589f2b){if(this[_0x7b8d('0xe')][_0x288880]){this['mailAccounts'][_0x288880][_0x7b8d('0x12')][_0x7b8d('0x24')]=_0x7b8d('0x21');this[_0x7b8d('0xe')][_0x288880]['Imap'][_0x7b8d('0x13')]=_0x589f2b;return this[_0x7b8d('0x11')](_0x288880);}};EmailChannel[_0x7b8d('0x10')]['sendMail']=function(_0x1b387d,_0x3fac75){return this[_0x7b8d('0x30')][_0x7b8d('0x31')](_0x1b387d,_0x3fac75);};EmailChannel['prototype'][_0x7b8d('0x32')]=function(_0x2f3936){var _0xdc98b=this;if(this[_0x7b8d('0xe')][_0x2f3936['id']]){if(_[_0x7b8d('0x15')](this[_0x7b8d('0xe')][_0x2f3936['id']][_0x7b8d('0x33')])){this[_0x7b8d('0xe')][_0x2f3936['id']][_0x7b8d('0x33')]={};}this[_0x7b8d('0xe')][_0x2f3936['id']][_0x7b8d('0x33')][_0x7b8d('0x2f')]=moment();return new BPromise(function(_0xb5410c,_0x34a512){return _0xdc98b[_0x7b8d('0x30')][_0x7b8d('0x34')](_0x2f3936)[_0x7b8d('0x2b')](function(_0x59650b){_0xdc98b[_0x7b8d('0xe')][_0x2f3936['id']][_0x7b8d('0x33')][_0x7b8d('0x24')]=_0x7b8d('0x35');_0xdc98b[_0x7b8d('0xe')][_0x2f3936['id']][_0x7b8d('0x33')][_0x7b8d('0x13')]='';_0xdc98b[_0x7b8d('0x11')](_0x2f3936['id']);_0xb5410c(_0x59650b);})['catch'](function(_0x391224){_0xdc98b['mailAccounts'][_0x2f3936['id']]['Smtp']['status']=_0x7b8d('0x21');_0xdc98b[_0x7b8d('0xe')][_0x2f3936['id']][_0x7b8d('0x33')][_0x7b8d('0x13')]=_0x391224;_0xdc98b[_0x7b8d('0x11')](_0x2f3936['id']);_0x34a512(_0x391224);});});}return this[_0x7b8d('0x30')][_0x7b8d('0x34')](_0x2f3936);};module[_0x7b8d('0x36')]=EmailChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9857=['closeBox','body','handleMessageBody','attributes','handleMessageEnd','handleMessageAttributes','parser','stringify','textCode','upperFirst','exports','path','util','imap','lodash','randomstring','simpleParser','iconv','Iconv','events','EventEmitter','./utils','../../../config/logger','email','INBOX','account','getAccount','once','ready','handleReady','end','handleError','bind','connect','prototype','connTimeout','authTimeout','isNil','service','authentication','user','host','port','tls','autotls','required','password','getHost','openBox','mailbox','emit','box','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','message','handleFetchMessage','handleFetchError','error'];(function(_0x39393a,_0x323ec9){var _0x709d68=function(_0x44c8ba){while(--_0x44c8ba){_0x39393a['push'](_0x39393a['shift']());}};_0x709d68(++_0x323ec9);}(_0x9857,0x87));var _0x7985=function(_0xf99a15,_0x2bd4d7){_0xf99a15=_0xf99a15-0x0;var _0x15221f=_0x9857[_0xf99a15];return _0x15221f;};'use strict';var fs=require('fs');var path=require(_0x7985('0x0'));var util=require(_0x7985('0x1'));var Imap=require(_0x7985('0x2'));var _=require(_0x7985('0x3'));var rs=require(_0x7985('0x4'));var simpleParser=require('mailparser')[_0x7985('0x5')];var Iconv=require(_0x7985('0x6'))[_0x7985('0x7')];var EventEmitter=require(_0x7985('0x8'))[_0x7985('0x9')];var utils=require(_0x7985('0xa'));var logger=require(_0x7985('0xb'))(_0x7985('0xc'));function EmailImap(_0x1d0179,_0x53d2cd){this['mailbox']=_0x7985('0xd');this[_0x7985('0xe')]=this[_0x7985('0xf')](_0x1d0179,_0x53d2cd);this[_0x7985('0x2')]=new Imap(this['account']);this[_0x7985('0x2')][_0x7985('0x10')](_0x7985('0x11'),this[_0x7985('0x12')]['bind'](this));this[_0x7985('0x2')][_0x7985('0x10')](_0x7985('0x13'),this['handleEnd']['bind'](this));this[_0x7985('0x2')]['on']('error',this[_0x7985('0x14')][_0x7985('0x15')](this));this[_0x7985('0x2')][_0x7985('0x16')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0x7985('0x17')][_0x7985('0xf')]=function(_0x2670ef,_0x54b4a3){var _0x4286ea={'connTimeout':_0x2670ef[_0x7985('0x18')]?_0x2670ef[_0x7985('0x18')]*0x3e8:0x2710,'authTimeout':_0x2670ef['authTimeout']?_0x2670ef[_0x7985('0x19')]*0x3e8:0x1388};if(_[_0x7985('0x1a')](_0x2670ef[_0x7985('0x1b')])){if(_0x2670ef[_0x7985('0x1c')]){_0x4286ea[_0x7985('0x1d')]=_0x2670ef['user'];_0x4286ea['password']=_0x2670ef['password'];}_0x4286ea[_0x7985('0x1e')]=_0x2670ef[_0x7985('0x1e')];_0x4286ea[_0x7985('0x1f')]=_0x2670ef[_0x7985('0x1f')]||0x3e1;if(_0x2670ef[_0x7985('0x20')]){_0x4286ea[_0x7985('0x20')]=!![];}else{_0x4286ea['tls']=![];_0x4286ea[_0x7985('0x21')]=_0x7985('0x22');}}else{_0x4286ea['user']=_0x2670ef[_0x7985('0x1d')];_0x4286ea[_0x7985('0x23')]=_0x2670ef[_0x7985('0x23')];_0x4286ea[_0x7985('0x1e')]=utils[_0x7985('0x24')](_0x2670ef[_0x7985('0x1b')]);_0x4286ea[_0x7985('0x1f')]=0x3e1;_0x4286ea[_0x7985('0x20')]=!![];}_0x4286ea[_0x7985('0xc')]=_0x54b4a3||_0x2670ef[_0x7985('0x1d')]||'anonymous@xcally.com';return _0x4286ea;};EmailImap[_0x7985('0x17')][_0x7985('0x12')]=function(){this['imap'][_0x7985('0x25')](this[_0x7985('0x26')],![],this['handleOpenBox']['bind'](this));};EmailImap[_0x7985('0x17')]['handleOpenBox']=function(_0xd87a06,_0x125618){if(_0xd87a06){this['handleError'](_0xd87a06,!![]);}else{this[_0x7985('0x27')](_0x7985('0x28'),_0x125618);this[_0x7985('0x29')]();}};EmailImap['prototype'][_0x7985('0x2a')]=function(_0x4d8d45){if(_0x4d8d45){this['handleError'](_0x4d8d45,!![]);}else{this[_0x7985('0x2')][_0x7985('0x13')]();}};EmailImap['prototype'][_0x7985('0x29')]=function(){this[_0x7985('0x2')][_0x7985('0x2b')]([_0x7985('0x2c')],this[_0x7985('0x2d')][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')][_0x7985('0x2d')]=function(_0x1fee80,_0x3cc4ab){if(_0x1fee80){this[_0x7985('0x14')](_0x1fee80,!![]);}else{if(_0x3cc4ab[_0x7985('0x2e')]){try{var _0x2d31bb=this[_0x7985('0x2')]['fetch'](_0x3cc4ab,{'bodies':'','markSeen':!![]});_0x2d31bb['on'](_0x7985('0x2f'),this[_0x7985('0x30')][_0x7985('0x15')](this));_0x2d31bb['once']('error',this[_0x7985('0x31')][_0x7985('0x15')](this));_0x2d31bb[_0x7985('0x10')](_0x7985('0x13'),this['handleFetchEnd']['bind'](this));}catch(_0x4ca4f5){logger[_0x7985('0x32')](_0x4ca4f5);}}else{this['imap'][_0x7985('0x33')](!![],this['handleCloseBox']['bind'](this));}}};EmailImap[_0x7985('0x17')]['handleFetchMessage']=function(_0x555d19,_0x5e5cb2){_0x555d19['on'](_0x7985('0x34'),this[_0x7985('0x35')][_0x7985('0x15')](this));_0x555d19[_0x7985('0x10')](_0x7985('0x36'),this['handleMessageAttributes'][_0x7985('0x15')](this));_0x555d19[_0x7985('0x10')](_0x7985('0x13'),this[_0x7985('0x37')][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')][_0x7985('0x35')]=function(_0x504e80,_0x93aae3){simpleParser(_0x504e80,{'Iconv':Iconv},this['handleSimpleParser'][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')][_0x7985('0x38')]=function(_0x1efa09){};EmailImap[_0x7985('0x17')]['handleMessageEnd']=function(){};EmailImap[_0x7985('0x17')]['handleSimpleParser']=function(_0x359ec9,_0x5a65b8){if(_0x359ec9){logger['error'](_0x359ec9);}else{var _0x2e6bad=this;utils[_0x7985('0x39')](this['account'],_0x5a65b8,function(_0x275a71){_0x2e6bad[_0x7985('0x27')](_0x7985('0xc'),_0x275a71);});}};EmailImap[_0x7985('0x17')]['handleFetchEnd']=function(){this[_0x7985('0x2')]['closeBox'](!![],this['handleCloseBox']['bind'](this));};EmailImap['prototype']['handleFetchError']=function(_0x4da056){this[_0x7985('0x14')](_0x4da056);this['imap'][_0x7985('0x33')](!![],this[_0x7985('0x2a')][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')]['handleEnd']=function(){this[_0x7985('0x27')](_0x7985('0x13'));};EmailImap['prototype'][_0x7985('0x14')]=function(_0x2f749a,_0x355abb){logger[_0x7985('0x32')](_0x7985('0x14'),this['account'][_0x7985('0xc')],JSON[_0x7985('0x3a')](_0x2f749a));var _0x59df26='';if(_0x2f749a){if(_0x2f749a[_0x7985('0x3b')]){_0x59df26=_0x2f749a['textCode'];}else{for(var _0x482862 in _0x2f749a){if(_0x2f749a['hasOwnProperty'](_0x482862)){_0x59df26+=_[_0x7985('0x3c')](_0x482862)+':\x20'+_0x2f749a[_0x482862]+'\x0a';}}}}if(_0x355abb){this[_0x7985('0x2')][_0x7985('0x13')]();}else{this['emit'](_0x7985('0x32'),_0x59df26);this[_0x7985('0x27')](_0x7985('0x13'));}};module[_0x7985('0x3d')]=EmailImap;
\ No newline at end of file
+var _0x0f17=['upperFirst','exports','path','util','imap','lodash','mailparser','simpleParser','iconv','Iconv','events','EventEmitter','mailbox','account','getAccount','ready','handleReady','bind','once','end','handleEnd','handleError','connect','prototype','connTimeout','authTimeout','isNil','authentication','user','password','host','port','tls','autotls','required','getHost','service','email','anonymous@xcally.com','openBox','handleOpenBox','emit','box','readUnseen','handleCloseBox','UNSEEN','handleReadUnseen','length','handleFetchMessage','error','handleFetchEnd','closeBox','body','handleMessageAttributes','handleMessageEnd','handleMessageBody','handleSimpleParser','parser','handleFetchError','textCode','hasOwnProperty'];(function(_0xbb1d35,_0x1110d9){var _0x4cd03b=function(_0x512a4c){while(--_0x512a4c){_0xbb1d35['push'](_0xbb1d35['shift']());}};_0x4cd03b(++_0x1110d9);}(_0x0f17,0xb9));var _0x70f1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0f17[_0x3dd15e];return _0x231fd0;};'use strict';var fs=require('fs');var path=require(_0x70f1('0x0'));var util=require(_0x70f1('0x1'));var Imap=require(_0x70f1('0x2'));var _=require(_0x70f1('0x3'));var rs=require('randomstring');var simpleParser=require(_0x70f1('0x4'))[_0x70f1('0x5')];var Iconv=require(_0x70f1('0x6'))[_0x70f1('0x7')];var EventEmitter=require(_0x70f1('0x8'))[_0x70f1('0x9')];var utils=require('./utils');var logger=require('../../../config/logger')('email');function EmailImap(_0xdc53c6,_0x497046){this[_0x70f1('0xa')]='INBOX';this[_0x70f1('0xb')]=this[_0x70f1('0xc')](_0xdc53c6,_0x497046);this[_0x70f1('0x2')]=new Imap(this['account']);this['imap']['once'](_0x70f1('0xd'),this[_0x70f1('0xe')][_0x70f1('0xf')](this));this[_0x70f1('0x2')][_0x70f1('0x10')](_0x70f1('0x11'),this[_0x70f1('0x12')][_0x70f1('0xf')](this));this[_0x70f1('0x2')]['on']('error',this[_0x70f1('0x13')]['bind'](this));this[_0x70f1('0x2')][_0x70f1('0x14')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0x70f1('0x15')][_0x70f1('0xc')]=function(_0x4370f4,_0x868a99){var _0x17c508={'connTimeout':_0x4370f4['connTimeout']?_0x4370f4[_0x70f1('0x16')]*0x3e8:0x2710,'authTimeout':_0x4370f4[_0x70f1('0x17')]?_0x4370f4['authTimeout']*0x3e8:0x1388};if(_[_0x70f1('0x18')](_0x4370f4['service'])){if(_0x4370f4[_0x70f1('0x19')]){_0x17c508[_0x70f1('0x1a')]=_0x4370f4['user'];_0x17c508[_0x70f1('0x1b')]=_0x4370f4[_0x70f1('0x1b')];}_0x17c508['host']=_0x4370f4[_0x70f1('0x1c')];_0x17c508[_0x70f1('0x1d')]=_0x4370f4[_0x70f1('0x1d')]||0x3e1;if(_0x4370f4[_0x70f1('0x1e')]){_0x17c508[_0x70f1('0x1e')]=!![];}else{_0x17c508[_0x70f1('0x1e')]=![];_0x17c508[_0x70f1('0x1f')]=_0x70f1('0x20');}}else{_0x17c508[_0x70f1('0x1a')]=_0x4370f4['user'];_0x17c508[_0x70f1('0x1b')]=_0x4370f4[_0x70f1('0x1b')];_0x17c508[_0x70f1('0x1c')]=utils[_0x70f1('0x21')](_0x4370f4[_0x70f1('0x22')]);_0x17c508[_0x70f1('0x1d')]=0x3e1;_0x17c508[_0x70f1('0x1e')]=!![];}_0x17c508[_0x70f1('0x23')]=_0x868a99||_0x4370f4[_0x70f1('0x1a')]||_0x70f1('0x24');return _0x17c508;};EmailImap[_0x70f1('0x15')]['handleReady']=function(){this['imap'][_0x70f1('0x25')](this[_0x70f1('0xa')],![],this[_0x70f1('0x26')][_0x70f1('0xf')](this));};EmailImap[_0x70f1('0x15')][_0x70f1('0x26')]=function(_0x5b7735,_0x2831ad){if(_0x5b7735){this[_0x70f1('0x13')](_0x5b7735,!![]);}else{this[_0x70f1('0x27')](_0x70f1('0x28'),_0x2831ad);this[_0x70f1('0x29')]();}};EmailImap[_0x70f1('0x15')][_0x70f1('0x2a')]=function(_0x339aeb){if(_0x339aeb){this[_0x70f1('0x13')](_0x339aeb,!![]);}else{this['imap'][_0x70f1('0x11')]();}};EmailImap[_0x70f1('0x15')][_0x70f1('0x29')]=function(){this['imap']['search']([_0x70f1('0x2b')],this[_0x70f1('0x2c')]['bind'](this));};EmailImap[_0x70f1('0x15')][_0x70f1('0x2c')]=function(_0x34b793,_0x3ffcef){if(_0x34b793){this[_0x70f1('0x13')](_0x34b793,!![]);}else{if(_0x3ffcef[_0x70f1('0x2d')]){try{var _0x241e0b=this['imap']['fetch'](_0x3ffcef,{'bodies':'','markSeen':!![]});_0x241e0b['on']('message',this[_0x70f1('0x2e')][_0x70f1('0xf')](this));_0x241e0b[_0x70f1('0x10')](_0x70f1('0x2f'),this['handleFetchError'][_0x70f1('0xf')](this));_0x241e0b[_0x70f1('0x10')](_0x70f1('0x11'),this[_0x70f1('0x30')][_0x70f1('0xf')](this));}catch(_0x590b04){logger[_0x70f1('0x2f')](_0x590b04);}}else{this['imap'][_0x70f1('0x31')](!![],this[_0x70f1('0x2a')]['bind'](this));}}};EmailImap[_0x70f1('0x15')][_0x70f1('0x2e')]=function(_0x46da02,_0x2b63f2){_0x46da02['on'](_0x70f1('0x32'),this['handleMessageBody'][_0x70f1('0xf')](this));_0x46da02[_0x70f1('0x10')]('attributes',this[_0x70f1('0x33')]['bind'](this));_0x46da02[_0x70f1('0x10')](_0x70f1('0x11'),this[_0x70f1('0x34')][_0x70f1('0xf')](this));};EmailImap[_0x70f1('0x15')][_0x70f1('0x35')]=function(_0x542c2b,_0x5e52a7){simpleParser(_0x542c2b,{'Iconv':Iconv},this[_0x70f1('0x36')][_0x70f1('0xf')](this));};EmailImap[_0x70f1('0x15')][_0x70f1('0x33')]=function(_0x149d79){};EmailImap['prototype'][_0x70f1('0x34')]=function(){};EmailImap[_0x70f1('0x15')][_0x70f1('0x36')]=function(_0x291eda,_0x2bcfb2){if(_0x291eda){logger[_0x70f1('0x2f')](_0x291eda);}else{var _0x58858e=this;utils[_0x70f1('0x37')](this[_0x70f1('0xb')],_0x2bcfb2,function(_0x24dab8){_0x58858e[_0x70f1('0x27')](_0x70f1('0x23'),_0x24dab8);});}};EmailImap[_0x70f1('0x15')][_0x70f1('0x30')]=function(){this[_0x70f1('0x2')][_0x70f1('0x31')](!![],this['handleCloseBox'][_0x70f1('0xf')](this));};EmailImap[_0x70f1('0x15')][_0x70f1('0x38')]=function(_0x11bd47){this[_0x70f1('0x13')](_0x11bd47);this[_0x70f1('0x2')]['closeBox'](!![],this[_0x70f1('0x2a')][_0x70f1('0xf')](this));};EmailImap[_0x70f1('0x15')]['handleEnd']=function(){this[_0x70f1('0x27')](_0x70f1('0x11'));};EmailImap[_0x70f1('0x15')][_0x70f1('0x13')]=function(_0x9ed6ae,_0x24ba6d){logger[_0x70f1('0x2f')](_0x70f1('0x13'),this[_0x70f1('0xb')][_0x70f1('0x23')],JSON['stringify'](_0x9ed6ae));var _0x4c8056='';if(_0x9ed6ae){if(_0x9ed6ae[_0x70f1('0x39')]){_0x4c8056=_0x9ed6ae[_0x70f1('0x39')];}else{for(var _0x480555 in _0x9ed6ae){if(_0x9ed6ae[_0x70f1('0x3a')](_0x480555)){_0x4c8056+=_[_0x70f1('0x3b')](_0x480555)+':\x20'+_0x9ed6ae[_0x480555]+'\x0a';}}}}if(_0x24ba6d){this[_0x70f1('0x2')][_0x70f1('0x11')]();}else{this['emit']('error',_0x4c8056);this[_0x70f1('0x27')]('end');}};module[_0x70f1('0x3c')]=EmailImap;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9fd4=['prototype','verify','createTransport','Not\x20verifired','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64','send','use','sendMail','toString'];(function(_0x378b25,_0x18bcda){var _0x4e004b=function(_0x434358){while(--_0x434358){_0x378b25['push'](_0x378b25['shift']());}};_0x4e004b(++_0x18bcda);}(_0x9fd4,0x125));var _0x49fd=function(_0x1f6e85,_0x46ac39){_0x1f6e85=_0x1f6e85-0x0;var _0x1c9d9f=_0x9fd4[_0x1f6e85];return _0x1c9d9f;};'use strict';var nodemailer=require(_0x49fd('0x0'));var BPromise=require(_0x49fd('0x1'));var inlineBase64=require(_0x49fd('0x2'));function EmailSmtp(){}EmailSmtp['prototype'][_0x49fd('0x3')]=function(_0x273cbf,_0x25b073){return new BPromise(function(_0x4246c1,_0x1efd12){var _0x20283b=nodemailer['createTransport'](_0x273cbf);_0x20283b[_0x49fd('0x4')]('compile',inlineBase64());_0x20283b[_0x49fd('0x5')](_0x25b073,function(_0x55403a,_0x49f7d0){if(_0x55403a){_0x1efd12(_0x55403a[_0x49fd('0x6')]());}else{_0x4246c1(_0x49f7d0);}});});};EmailSmtp[_0x49fd('0x7')][_0x49fd('0x8')]=function(_0x15b98f){return new BPromise(function(_0x59fdd2,_0x2a6984){var _0x192d1e=nodemailer[_0x49fd('0x9')](_0x15b98f);_0x192d1e[_0x49fd('0x8')](function(_0x4b4b6b,_0x1c33d2){if(_0x4b4b6b){_0x2a6984(_0x4b4b6b[_0x49fd('0x6')]());}else{if(_0x1c33d2){_0x59fdd2(_0x1c33d2);}else{_0x2a6984(_0x49fd('0xa'));}}});});};module[_0x49fd('0xb')]=EmailSmtp;
\ No newline at end of file
+var _0x4435=['use','compile','sendMail','verify','toString','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64','prototype','send','createTransport'];(function(_0x2f6233,_0x90172){var _0x1c9c36=function(_0x3ac680){while(--_0x3ac680){_0x2f6233['push'](_0x2f6233['shift']());}};_0x1c9c36(++_0x90172);}(_0x4435,0xde));var _0x5443=function(_0x409353,_0xe9f04d){_0x409353=_0x409353-0x0;var _0x4f4b59=_0x4435[_0x409353];return _0x4f4b59;};'use strict';var nodemailer=require(_0x5443('0x0'));var BPromise=require(_0x5443('0x1'));var inlineBase64=require(_0x5443('0x2'));function EmailSmtp(){}EmailSmtp[_0x5443('0x3')][_0x5443('0x4')]=function(_0xee66ec,_0x22b9d4){return new BPromise(function(_0x4a6f08,_0xed42ad){var _0x3b8104=nodemailer[_0x5443('0x5')](_0xee66ec);_0x3b8104[_0x5443('0x6')](_0x5443('0x7'),inlineBase64());_0x3b8104[_0x5443('0x8')](_0x22b9d4,function(_0x4df3f2,_0x25aa5e){if(_0x4df3f2){_0xed42ad(_0x4df3f2['toString']());}else{_0x4a6f08(_0x25aa5e);}});});};EmailSmtp[_0x5443('0x3')]['verify']=function(_0x46b79f){return new BPromise(function(_0x4de434,_0x37c118){var _0x13d469=nodemailer[_0x5443('0x5')](_0x46b79f);_0x13d469[_0x5443('0x9')](function(_0x417d58,_0x1e1214){if(_0x417d58){_0x37c118(_0x417d58[_0x5443('0xa')]());}else{if(_0x1e1214){_0x4de434(_0x1e1214);}else{_0x37c118('Not\x20verifired');}}});});};module[_0x5443('0xb')]=EmailSmtp;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4489=['message','originCc','email','originTo','bcc','attach','type','attachment','format','%s-%s','root','server/files/attachments/','writeFileSync','content','push','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','line','isAutoreply','parser','from','subject','messageId','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','yahoo','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','path','util','node-tnef','../../../config/logger','value','address','generate','@xcally.com','name','substring','indexOf','split','length','slice','join','head','pop','isEmpty','anonymous','html','includes','<img','attachments','forEach','filename','_SRC','replace','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','<a\x20target=\x22_blank\x22\x20'];(function(_0x1ca9a0,_0x17be2b){var _0x4a80d6=function(_0x31962d){while(--_0x31962d){_0x1ca9a0['push'](_0x1ca9a0['shift']());}};_0x4a80d6(++_0x17be2b);}(_0x4489,0x164));var _0x9448=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4489[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x9448('0x0'));var moment=require(_0x9448('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x9448('0x2'));var util=require(_0x9448('0x3'));var tnef=require(_0x9448('0x4'));var logger=require(_0x9448('0x5'))('email');var config=require('../../../config/environment');function getAddress(_0x4bf96c){var _0x5333bf=_['head'](_0x4bf96c[_0x9448('0x6')]);return _0x5333bf&&_0x5333bf['address']?_0x5333bf[_0x9448('0x7')]:'anonymous'+random[_0x9448('0x8')](0x6)+_0x9448('0x9');}function getFirstName(_0x26bd97){var _0x4b81f9=_['head'](_0x26bd97['value']);if(_0x4b81f9&&_0x4b81f9[_0x9448('0xa')]){if(_0x4b81f9[_0x9448('0xa')]==_0x4b81f9[_0x9448('0x7')]){return _0x4b81f9[_0x9448('0xa')][_0x9448('0xb')](0x0,_0x4b81f9['name'][_0x9448('0xc')]('@'));}var _0x444830=_0x4b81f9[_0x9448('0xa')][_0x9448('0xd')](/\s+/);return _0x444830[_0x9448('0xe')]>0x1?_0x444830[_0x9448('0xf')](0x0,-0x1)[_0x9448('0x10')]('\x20'):_0x4b81f9[_0x9448('0xa')];}return'Anonymous';}function getLastName(_0x75cf9c){var _0x56fd4a=_[_0x9448('0x11')](_0x75cf9c[_0x9448('0x6')]);if(_0x56fd4a&&_0x56fd4a['name']){var _0x21a6ee=_0x56fd4a[_0x9448('0xa')][_0x9448('0xd')](/\s+/);return _0x21a6ee[_0x9448('0xe')]>0x1?_0x21a6ee[_0x9448('0x12')]():'';}return'';}function getMails(_0x3564c0,_0xcaf7ac){var _0x9b9fd3='';for(var _0x5a24de=0x0;_0x5a24de<_0xcaf7ac[_0x9448('0x6')]['length'];_0x5a24de+=0x1){if(_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0x7')]!==_0x3564c0){if(!_[_0x9448('0x13')](_0x9b9fd3)){_0x9b9fd3+=',';}_0x9b9fd3+=_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0xa')]||_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0x7')]||'';_0x9b9fd3+='\x20<';_0x9b9fd3+=_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0x7')]?_0xcaf7ac[_0x9448('0x6')][_0x5a24de]['address']:_0x9448('0x14')+random['generate'](0x6)+'@xcally.com';_0x9b9fd3+='>';}}return _0x9b9fd3;}function parseEmail(_0x43d5ac,_0x5cc7da,_0x594b6b){if(_0x5cc7da['html']){var _0x9d711a=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x9d711a['test'](_0x5cc7da[_0x9448('0x15')])){_0x5cc7da[_0x9448('0x15')]=_0x5cc7da[_0x9448('0x15')]['replace'](_0x9d711a,'');}if(_0x5cc7da[_0x9448('0x15')][_0x9448('0x16')](_0x9448('0x17'))){var _0x4430ad=[];_0x5cc7da[_0x9448('0x18')][_0x9448('0x19')](_0x4d8a8a=>{_0x4430ad['push'](_0x4d8a8a[_0x9448('0x1a')]);});var _0x124892=/<img.*? _SRC(.*?)[^>]+>/g;var _0x24240d=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x161b1d=_0x5cc7da[_0x9448('0x15')]['replace'](_0x24240d,_0x9448('0x1b'));var _0x4e4134=_0x161b1d[_0x9448('0x1c')](_0x124892,_0x9448('0x1d'));for(let _0x245ec8=0x0;_0x245ec8<_0x4430ad['length'];_0x245ec8++){var _0x2dd998=_0x4e4134[_0x9448('0x1c')](_0x9448('0x1d'),_0x9448('0x1e')+_0x4430ad[_0x245ec8]+_0x9448('0x1f'));_0x4e4134=_0x2dd998;}_0x5cc7da[_0x9448('0x15')]=_0x4e4134;}_0x594b6b['body']=_0x5cc7da[_0x9448('0x15')];}else{_0x594b6b[_0x9448('0x20')]=_0x5cc7da['textAsHtml'];}if(_0x594b6b[_0x9448('0x20')]){_0x594b6b[_0x9448('0x20')]=_0x594b6b[_0x9448('0x20')][_0x9448('0x1c')](/<a\s+/gi,_0x9448('0x21'));}if(_0x5cc7da['to']){_0x594b6b[_0x9448('0x22')]['originTo']=getMails(null,_0x5cc7da['to']);var _0x4386bc=getMails(_0x43d5ac['email'],_0x5cc7da['to']);if(!_[_0x9448('0x13')](_0x4386bc)){_0x594b6b[_0x9448('0x22')]['cc']+=_0x4386bc;}}if(_0x5cc7da['cc']){_0x594b6b[_0x9448('0x22')][_0x9448('0x23')]=getMails(null,_0x5cc7da['cc']);var _0x52f359=getMails(_0x43d5ac[_0x9448('0x24')],_0x5cc7da['cc']);if(!_[_0x9448('0x13')](_0x52f359)){if(!_[_0x9448('0x13')](_0x594b6b['message']['cc'])){_0x594b6b[_0x9448('0x22')]['cc']+=',';}_0x594b6b[_0x9448('0x22')]['cc']+=_0x52f359;}}if(!_['includes'](_0x594b6b['message'][_0x9448('0x25')],_0x43d5ac[_0x9448('0x24')])&&!_['includes'](_0x594b6b[_0x9448('0x22')][_0x9448('0x23')],_0x43d5ac[_0x9448('0x24')])){_0x594b6b[_0x9448('0x22')][_0x9448('0x26')]=_0x43d5ac[_0x9448('0x24')];}if(_0x5cc7da[_0x9448('0x18')]&&_0x5cc7da['attachments'][_0x9448('0xe')]){_0x594b6b[_0x9448('0x22')][_0x9448('0x27')]=_0x5cc7da[_0x9448('0x18')][_0x9448('0xe')];for(var _0xf1beb9=0x0,_0x1775da,_0x2c6e12,_0x222c15;_0xf1beb9<_0x5cc7da[_0x9448('0x18')][_0x9448('0xe')];_0xf1beb9+=0x1){if(_0x5cc7da['attachments'][_0xf1beb9][_0x9448('0x28')]===_0x9448('0x29')){_0x222c15=_0x5cc7da[_0x9448('0x18')][_0xf1beb9][_0x9448('0x1a')]||'attachment-'+_0xf1beb9;_0x1775da=util[_0x9448('0x2a')](_0x9448('0x2b'),Date['now'](),_0x222c15);_0x2c6e12=path[_0x9448('0x10')](config[_0x9448('0x2c')],_0x9448('0x2d'),_0x1775da);fs[_0x9448('0x2e')](_0x2c6e12,_0x5cc7da['attachments'][_0xf1beb9][_0x9448('0x2f')]);_0x594b6b[_0x9448('0x22')][_0x9448('0x18')][_0x9448('0x30')]({'name':_0x222c15,'basename':_0x1775da,'type':_0x5cc7da[_0x9448('0x18')][_0xf1beb9]['contentType'],'filepath':_0x2c6e12});}}}if(_0x5cc7da[_0x9448('0x31')]&&_0x5cc7da[_0x9448('0x31')][_0x9448('0xe')]>0x0){var _0x489c78=[_0x9448('0x32'),_0x9448('0x33'),'Precedence:\x20auto_reply'];for(var _0x525cd6=0x0;_0x525cd6<_0x5cc7da[_0x9448('0x31')][_0x9448('0xe')];_0x525cd6++){var _0x5e6276=_[_0x9448('0xc')](_0x489c78,_0x5cc7da['headerLines'][_0x525cd6][_0x9448('0x34')]);if(_0x5e6276>=0x0){_0x594b6b[_0x9448('0x35')]=!![];}}}return _0x594b6b;}exports[_0x9448('0x36')]=function(_0x28f2fe,_0x8ffab4,_0xc3b1b){var _0x276897={'from':getAddress(_0x8ffab4[_0x9448('0x37')]),'firstName':getFirstName(_0x8ffab4[_0x9448('0x37')]),'lastName':getLastName(_0x8ffab4[_0x9448('0x37')]),'mapKey':'email','message':{'from':getMails(_0x28f2fe['email'],_0x8ffab4[_0x9448('0x37')]),'to':_0x28f2fe[_0x9448('0x24')],'cc':'','subject':_0x8ffab4[_0x9448('0x38')]||'','messageId':_0x8ffab4[_0x9448('0x39')],'inReplyTo':_0x8ffab4[_0x9448('0x3a')],'sentAt':moment(_0x8ffab4[_0x9448('0x3b')])[_0x9448('0x2a')](_0x9448('0x3c')),'attach':![],'attachments':[]}};if(!_0x8ffab4['html']&&!_0x8ffab4['textAsHtml']){var _0x281c4d=_[_0x9448('0x3d')](_0x8ffab4[_0x9448('0x18')],{'contentType':_0x9448('0x3e')});if(_0x281c4d[_0x9448('0xe')]){logger[_0x9448('0x3f')](util[_0x9448('0x2a')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x8ffab4['messageId']));tnef[_0x9448('0x40')](_[_0x9448('0x41')](_0x281c4d)[_0x9448('0x2f')],function(_0x411c3e,_0x22cc9c){if(_0x22cc9c){_0x8ffab4['html']=_0x22cc9c[_0x9448('0x42')]||_0x9448('0x43');if(_0x22cc9c[_0x9448('0x44')]){for(var _0x479b60=0x0;_0x479b60<_0x22cc9c[_0x9448('0x44')][_0x9448('0xe')];_0x479b60++){var _0x380521=_0x22cc9c[_0x9448('0x44')][_0x479b60];_0x276897[_0x9448('0x22')][_0x9448('0x18')][_0x9448('0x30')]({'filename':_0x380521[_0x9448('0x45')],'content':Buffer[_0x9448('0x37')](_0x380521[_0x9448('0x46')])});}}}_0xc3b1b(parseEmail(_0x28f2fe,_0x8ffab4,_0x276897));});}else{_0x8ffab4[_0x9448('0x15')]=_0x9448('0x43');_0xc3b1b(parseEmail(_0x28f2fe,_0x8ffab4,_0x276897));}}else{_0xc3b1b(parseEmail(_0x28f2fe,_0x8ffab4,_0x276897));}};exports[_0x9448('0x47')]=function(_0x263bbe){switch(_0x263bbe){case'gmail':return'imap.gmail.com';case _0x9448('0x48'):return'imap.mail.yahoo.com';case _0x9448('0x49'):return _0x9448('0x4a');case _0x9448('0x4b'):return _0x9448('0x4c');}return _0x9448('0x4d');};
\ No newline at end of file
+var _0x073d=['split','length','join','Anonymous','isEmpty','html','test','includes','<img','attachments','forEach','push','filename','replace','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body','textAsHtml','message','originTo','originCc','bcc','attach','type','attachment','attachment-','format','%s-%s','now','root','content','contentType','headerLines','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','from','subject','messageId','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','first','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','outlook.office365.com','127.0.0.1','moment','randomstring','path','node-tnef','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','substring','indexOf'];(function(_0x1654b7,_0x3c450d){var _0xc9f9d1=function(_0x4395d4){while(--_0x4395d4){_0x1654b7['push'](_0x1654b7['shift']());}};_0xc9f9d1(++_0x3c450d);}(_0x073d,0xd2));var _0xd073=function(_0x2a318a,_0x3f8006){_0x2a318a=_0x2a318a-0x0;var _0x346cf3=_0x073d[_0x2a318a];return _0x346cf3;};'use strict';var _=require('lodash');var moment=require(_0xd073('0x0'));var random=require(_0xd073('0x1'));var fs=require('fs');var path=require(_0xd073('0x2'));var util=require('util');var tnef=require(_0xd073('0x3'));var logger=require('../../../config/logger')(_0xd073('0x4'));var config=require(_0xd073('0x5'));function getAddress(_0x494f81){var _0x11bd94=_[_0xd073('0x6')](_0x494f81[_0xd073('0x7')]);return _0x11bd94&&_0x11bd94[_0xd073('0x8')]?_0x11bd94[_0xd073('0x8')]:_0xd073('0x9')+random[_0xd073('0xa')](0x6)+_0xd073('0xb');}function getFirstName(_0x199033){var _0x149c3e=_[_0xd073('0x6')](_0x199033[_0xd073('0x7')]);if(_0x149c3e&&_0x149c3e[_0xd073('0xc')]){if(_0x149c3e[_0xd073('0xc')]==_0x149c3e['address']){return _0x149c3e['name'][_0xd073('0xd')](0x0,_0x149c3e['name'][_0xd073('0xe')]('@'));}var _0xf3f0f0=_0x149c3e[_0xd073('0xc')][_0xd073('0xf')](/\s+/);return _0xf3f0f0[_0xd073('0x10')]>0x1?_0xf3f0f0['slice'](0x0,-0x1)[_0xd073('0x11')]('\x20'):_0x149c3e[_0xd073('0xc')];}return _0xd073('0x12');}function getLastName(_0x7d469e){var _0x589073=_[_0xd073('0x6')](_0x7d469e[_0xd073('0x7')]);if(_0x589073&&_0x589073['name']){var _0xb5e1e2=_0x589073[_0xd073('0xc')][_0xd073('0xf')](/\s+/);return _0xb5e1e2[_0xd073('0x10')]>0x1?_0xb5e1e2['pop']():'';}return'';}function getMails(_0x49a1dd,_0x48a4f1){var _0x5ac7b2='';for(var _0x195c5d=0x0;_0x195c5d<_0x48a4f1[_0xd073('0x7')][_0xd073('0x10')];_0x195c5d+=0x1){if(_0x48a4f1['value'][_0x195c5d][_0xd073('0x8')]!==_0x49a1dd){if(!_[_0xd073('0x13')](_0x5ac7b2)){_0x5ac7b2+=',';}_0x5ac7b2+=_0x48a4f1[_0xd073('0x7')][_0x195c5d]['name']||_0x48a4f1[_0xd073('0x7')][_0x195c5d][_0xd073('0x8')]||'';_0x5ac7b2+='\x20<';_0x5ac7b2+=_0x48a4f1[_0xd073('0x7')][_0x195c5d][_0xd073('0x8')]?_0x48a4f1['value'][_0x195c5d][_0xd073('0x8')]:_0xd073('0x9')+random[_0xd073('0xa')](0x6)+'@xcally.com';_0x5ac7b2+='>';}}return _0x5ac7b2;}function parseEmail(_0x1e5145,_0x2c244e,_0x5e5f8d){if(_0x2c244e[_0xd073('0x14')]){var _0x72b4aa=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x72b4aa[_0xd073('0x15')](_0x2c244e['html'])){_0x2c244e['html']=_0x2c244e['html']['replace'](_0x72b4aa,'');}if(_0x2c244e[_0xd073('0x14')][_0xd073('0x16')](_0xd073('0x17'))){var _0x9a0e39=[];_0x2c244e[_0xd073('0x18')][_0xd073('0x19')](_0x1512a5=>{_0x9a0e39[_0xd073('0x1a')](_0x1512a5[_0xd073('0x1b')]);});var _0x4bc4ad=/<img.*? _SRC(.*?)[^>]+>/g;var _0xda2c7d=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x5c43f3=_0x2c244e[_0xd073('0x14')][_0xd073('0x1c')](_0xda2c7d,_0xd073('0x1d'));var _0x3b1678=_0x5c43f3['replace'](_0x4bc4ad,_0xd073('0x1e'));for(let _0x5ef3c5=0x0;_0x5ef3c5<_0x9a0e39['length'];_0x5ef3c5++){var _0x34b0e2=_0x3b1678[_0xd073('0x1c')]('_IMG',_0xd073('0x1f')+_0x9a0e39[_0x5ef3c5]+'\x20]</span>');_0x3b1678=_0x34b0e2;}_0x2c244e[_0xd073('0x14')]=_0x3b1678;}_0x5e5f8d[_0xd073('0x20')]=_0x2c244e[_0xd073('0x14')];}else{_0x5e5f8d[_0xd073('0x20')]=_0x2c244e[_0xd073('0x21')];}if(_0x5e5f8d[_0xd073('0x20')]){_0x5e5f8d[_0xd073('0x20')]=_0x5e5f8d['body'][_0xd073('0x1c')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x2c244e['to']){_0x5e5f8d[_0xd073('0x22')][_0xd073('0x23')]=getMails(null,_0x2c244e['to']);var _0x21c7ad=getMails(_0x1e5145[_0xd073('0x4')],_0x2c244e['to']);if(!_[_0xd073('0x13')](_0x21c7ad)){_0x5e5f8d[_0xd073('0x22')]['cc']+=_0x21c7ad;}}if(_0x2c244e['cc']){_0x5e5f8d[_0xd073('0x22')][_0xd073('0x24')]=getMails(null,_0x2c244e['cc']);var _0xbe703b=getMails(_0x1e5145[_0xd073('0x4')],_0x2c244e['cc']);if(!_[_0xd073('0x13')](_0xbe703b)){if(!_['isEmpty'](_0x5e5f8d[_0xd073('0x22')]['cc'])){_0x5e5f8d['message']['cc']+=',';}_0x5e5f8d[_0xd073('0x22')]['cc']+=_0xbe703b;}}if(!_[_0xd073('0x16')](_0x5e5f8d[_0xd073('0x22')]['originTo'],_0x1e5145['email'])&&!_['includes'](_0x5e5f8d[_0xd073('0x22')][_0xd073('0x24')],_0x1e5145[_0xd073('0x4')])){_0x5e5f8d[_0xd073('0x22')][_0xd073('0x25')]=_0x1e5145[_0xd073('0x4')];}if(_0x2c244e['attachments']&&_0x2c244e[_0xd073('0x18')][_0xd073('0x10')]){_0x5e5f8d['message'][_0xd073('0x26')]=_0x2c244e[_0xd073('0x18')][_0xd073('0x10')];for(var _0x292377=0x0,_0x39d497,_0x55d760,_0x2a18ae;_0x292377<_0x2c244e[_0xd073('0x18')][_0xd073('0x10')];_0x292377+=0x1){if(_0x2c244e['attachments'][_0x292377][_0xd073('0x27')]===_0xd073('0x28')){_0x2a18ae=_0x2c244e[_0xd073('0x18')][_0x292377]['filename']||_0xd073('0x29')+_0x292377;_0x39d497=util[_0xd073('0x2a')](_0xd073('0x2b'),Date[_0xd073('0x2c')](),_0x2a18ae);_0x55d760=path[_0xd073('0x11')](config[_0xd073('0x2d')],'server/files/attachments/',_0x39d497);fs['writeFileSync'](_0x55d760,_0x2c244e[_0xd073('0x18')][_0x292377][_0xd073('0x2e')]);_0x5e5f8d[_0xd073('0x22')][_0xd073('0x18')]['push']({'name':_0x2a18ae,'basename':_0x39d497,'type':_0x2c244e[_0xd073('0x18')][_0x292377][_0xd073('0x2f')],'filepath':_0x55d760});}}}if(_0x2c244e[_0xd073('0x30')]&&_0x2c244e['headerLines'][_0xd073('0x10')]>0x0){var _0x4b52fe=['Auto-Submitted:\x20auto-replied',_0xd073('0x31'),_0xd073('0x32')];for(var _0x12d01f=0x0;_0x12d01f<_0x2c244e[_0xd073('0x30')]['length'];_0x12d01f++){var _0x2e855f=_['indexOf'](_0x4b52fe,_0x2c244e[_0xd073('0x30')][_0x12d01f][_0xd073('0x33')]);if(_0x2e855f>=0x0){_0x5e5f8d[_0xd073('0x34')]=!![];}}}return _0x5e5f8d;}exports['parser']=function(_0x63f254,_0x52d1aa,_0x1aeb05){var _0x31d75d={'from':getAddress(_0x52d1aa[_0xd073('0x35')]),'firstName':getFirstName(_0x52d1aa[_0xd073('0x35')]),'lastName':getLastName(_0x52d1aa[_0xd073('0x35')]),'mapKey':_0xd073('0x4'),'message':{'from':getMails(_0x63f254[_0xd073('0x4')],_0x52d1aa[_0xd073('0x35')]),'to':_0x63f254['email'],'cc':'','subject':_0x52d1aa[_0xd073('0x36')]||'','messageId':_0x52d1aa[_0xd073('0x37')],'inReplyTo':_0x52d1aa[_0xd073('0x38')],'sentAt':moment(_0x52d1aa[_0xd073('0x39')])[_0xd073('0x2a')](_0xd073('0x3a')),'attach':![],'attachments':[]}};if(!_0x52d1aa[_0xd073('0x14')]&&!_0x52d1aa[_0xd073('0x21')]){var _0x5830be=_[_0xd073('0x3b')](_0x52d1aa[_0xd073('0x18')],{'contentType':_0xd073('0x3c')});if(_0x5830be[_0xd073('0x10')]){logger[_0xd073('0x3d')](util[_0xd073('0x2a')](_0xd073('0x3e'),_0x52d1aa[_0xd073('0x37')]));tnef['parseBuffer'](_[_0xd073('0x3f')](_0x5830be)['content'],function(_0x5bf43c,_0x408c0d){if(_0x408c0d){_0x52d1aa[_0xd073('0x14')]=_0x408c0d['BodyHTML']||_0xd073('0x40');if(_0x408c0d['Attachments']){for(var _0x23d4b4=0x0;_0x23d4b4<_0x408c0d[_0xd073('0x41')][_0xd073('0x10')];_0x23d4b4++){var _0x25f399=_0x408c0d[_0xd073('0x41')][_0x23d4b4];_0x31d75d[_0xd073('0x22')][_0xd073('0x18')]['push']({'filename':_0x25f399[_0xd073('0x42')],'content':Buffer[_0xd073('0x35')](_0x25f399[_0xd073('0x43')])});}}}_0x1aeb05(parseEmail(_0x63f254,_0x52d1aa,_0x31d75d));});}else{_0x52d1aa[_0xd073('0x14')]=_0xd073('0x40');_0x1aeb05(parseEmail(_0x63f254,_0x52d1aa,_0x31d75d));}}else{_0x1aeb05(parseEmail(_0x63f254,_0x52d1aa,_0x31d75d));}};exports[_0xd073('0x44')]=function(_0x7df359){switch(_0x7df359){case _0xd073('0x45'):return _0xd073('0x46');case _0xd073('0x47'):return _0xd073('0x48');case'hotmail':return'imap-mail.outlook.com';case'outlook365':return _0xd073('0x49');}return _0xd073('0x4a');};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x676f=['exports','lodash','name','Service','key','active','Imap','Smtp'];(function(_0x51b1a5,_0x285a4f){var _0x15c738=function(_0x5c94d7){while(--_0x5c94d7){_0x51b1a5['push'](_0x51b1a5['shift']());}};_0x15c738(++_0x285a4f);}(_0x676f,0x139));var _0xf676=function(_0x3d9d69,_0x3a2929){_0x3d9d69=_0x3d9d69-0x0;var _0x5bc341=_0x676f[_0x3d9d69];return _0x5bc341;};'use strict';var _=require(_0xf676('0x0'));function MailAccount(_0x3184e6){this['id']=_0x3184e6['id']||0x0;this[_0xf676('0x1')]=_0x3184e6[_0xf676('0x1')]||_0xf676('0x2');this[_0xf676('0x3')]=_0x3184e6[_0xf676('0x3')]||'SERV';this[_0xf676('0x4')]=_0x3184e6['active']||![];this['Imap']=_0x3184e6[_0xf676('0x5')]||[];this[_0xf676('0x6')]=_0x3184e6['Smtp']||[];}module[_0xf676('0x7')]=MailAccount;
\ No newline at end of file
+var _0x16aa=['Service','key','SERV','active','Smtp','lodash','name'];(function(_0x415603,_0x21320c){var _0x131e72=function(_0x50092a){while(--_0x50092a){_0x415603['push'](_0x415603['shift']());}};_0x131e72(++_0x21320c);}(_0x16aa,0x155));var _0xa16a=function(_0x5249db,_0x4d2910){_0x5249db=_0x5249db-0x0;var _0x245f60=_0x16aa[_0x5249db];return _0x245f60;};'use strict';var _=require(_0xa16a('0x0'));function MailAccount(_0x58f355){this['id']=_0x58f355['id']||0x0;this[_0xa16a('0x1')]=_0x58f355[_0xa16a('0x1')]||_0xa16a('0x2');this[_0xa16a('0x3')]=_0x58f355['key']||_0xa16a('0x4');this[_0xa16a('0x5')]=_0x58f355['active']||![];this['Imap']=_0x58f355['Imap']||[];this[_0xa16a('0x6')]=_0x58f355[_0xa16a('0x6')]||[];}module['exports']=MailAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30cb=['mailAccounts','hasOwnProperty','prototype','initMailAccounts','length','isUndefined','merge','lodash'];(function(_0x268a2b,_0x4f9613){var _0x1fc1cd=function(_0x3d24a0){while(--_0x3d24a0){_0x268a2b['push'](_0x268a2b['shift']());}};_0x1fc1cd(++_0x4f9613);}(_0x30cb,0xb7));var _0xb30c=function(_0x356cb9,_0x3a34c6){_0x356cb9=_0x356cb9-0x0;var _0x301c66=_0x30cb[_0x356cb9];return _0x301c66;};'use strict';var _=require(_0xb30c('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this[_0xb30c('0x1')]={};};function freeIsNotKey(_0x1bf011,_0x1d5cd7,_0x2406e6){var _0xf1bfef=_['mapKeys'](_0x1bf011,function(_0x240c8a,_0x33393c){return _0x240c8a[_0x2406e6];});for(var _0x25d95d in _0x1d5cd7){if(_0x1d5cd7[_0xb30c('0x2')](_0x25d95d)){if(!_0xf1bfef[_0x25d95d]){delete _0x1d5cd7[_0x25d95d];}}}}Realtime[_0xb30c('0x3')]['mergeFromDatabase']=function(_0x303116,_0x4f1dc3){for(var _0x567734 in _0x4f1dc3){if(_0x303116[_0xb30c('0x2')](_0x567734)){_0x303116[_0x567734]=_0x4f1dc3[_0x567734];}}};Realtime[_0xb30c('0x3')][_0xb30c('0x4')]=function(){var _0x36f8e4=this;return function(_0x57e505){if(_0x57e505){freeIsNotKey(_0x57e505,_0x36f8e4['mailAccounts'],'id');for(var _0x311eca=0x0,_0x48fea9={},_0x19403d={};_0x311eca<_0x57e505[_0xb30c('0x5')];_0x311eca+=0x1){_0x48fea9=_0x57e505[_0x311eca];if(_[_0xb30c('0x6')](_0x36f8e4[_0xb30c('0x1')][_0x48fea9['id']])){_0x36f8e4[_0xb30c('0x1')][_0x48fea9['id']]=new MailAccount(_0x48fea9);}else{_[_0xb30c('0x7')](_0x36f8e4[_0xb30c('0x1')][_0x48fea9['id']],_0x48fea9);}}}return _0x36f8e4[_0xb30c('0x1')];};};module['exports']=Realtime;
\ No newline at end of file
+var _0xf8d7=['prototype','mergeFromDatabase','hasOwnProperty','initMailAccounts','mailAccounts','length','isUndefined','lodash','../model/mailAccount','mapKeys'];(function(_0x252a2f,_0x5eda01){var _0x16ad8b=function(_0x5419d4){while(--_0x5419d4){_0x252a2f['push'](_0x252a2f['shift']());}};_0x16ad8b(++_0x5eda01);}(_0xf8d7,0x10b));var _0x7f8d=function(_0x3305de,_0x16582f){_0x3305de=_0x3305de-0x0;var _0x3b5a84=_0xf8d7[_0x3305de];return _0x3b5a84;};'use strict';var _=require(_0x7f8d('0x0'));var MailAccount=require(_0x7f8d('0x1'));var Realtime=function(){this['mailAccounts']={};};function freeIsNotKey(_0x17530d,_0x50720b,_0xe53d2d){var _0x390fbe=_[_0x7f8d('0x2')](_0x17530d,function(_0x1fa38a,_0x4ac45e){return _0x1fa38a[_0xe53d2d];});for(var _0x32e31b in _0x50720b){if(_0x50720b['hasOwnProperty'](_0x32e31b)){if(!_0x390fbe[_0x32e31b]){delete _0x50720b[_0x32e31b];}}}}Realtime[_0x7f8d('0x3')][_0x7f8d('0x4')]=function(_0x26a143,_0x2f6647){for(var _0x57da6b in _0x2f6647){if(_0x26a143[_0x7f8d('0x5')](_0x57da6b)){_0x26a143[_0x57da6b]=_0x2f6647[_0x57da6b];}}};Realtime[_0x7f8d('0x3')][_0x7f8d('0x6')]=function(){var _0x38580b=this;return function(_0x16d0a4){if(_0x16d0a4){freeIsNotKey(_0x16d0a4,_0x38580b[_0x7f8d('0x7')],'id');for(var _0x3ff2ab=0x0,_0x448660={},_0x36c919={};_0x3ff2ab<_0x16d0a4[_0x7f8d('0x8')];_0x3ff2ab+=0x1){_0x448660=_0x16d0a4[_0x3ff2ab];if(_[_0x7f8d('0x9')](_0x38580b[_0x7f8d('0x7')][_0x448660['id']])){_0x38580b['mailAccounts'][_0x448660['id']]=new MailAccount(_0x448660);}else{_['merge'](_0x38580b['mailAccounts'][_0x448660['id']],_0x448660);}}}return _0x38580b[_0x7f8d('0x7')];};};module['exports']=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdba3=['MailServerIn','Imap','Smtp','getMailAccount','notify','Request','NotifyMailAccount','../client','getMailAccounts','GetMailAccount','name','service','email','active','key','ListId','TemplateId'];(function(_0x45f951,_0x2750c8){var _0x24756c=function(_0x31c931){while(--_0x31c931){_0x45f951['push'](_0x45f951['shift']());}};_0x24756c(++_0x2750c8);}(_0xdba3,0x19f));var _0x3dba=function(_0x3d6e8c,_0x555986){_0x3d6e8c=_0x3d6e8c-0x0;var _0x2d8ecf=_0xdba3[_0x3d6e8c];return _0x2d8ecf;};'use strict';var client=require(_0x3dba('0x0'));exports[_0x3dba('0x1')]=function(){return function(){return client['Request'](_0x3dba('0x2'),{'options':{'attributes':['id',_0x3dba('0x3'),_0x3dba('0x4'),_0x3dba('0x5'),_0x3dba('0x6'),_0x3dba('0x7'),_0x3dba('0x8'),_0x3dba('0x9')],'raw':![],'include':[{'model':_0x3dba('0xa'),'as':_0x3dba('0xb')},{'model':'MailServerOut','as':_0x3dba('0xc')}]},'log':_0x3dba('0xd')});};};exports[_0x3dba('0xe')]=function(_0x5c1f2a,_0x4b33d8){return client[_0x3dba('0xf')](_0x3dba('0x10'),{'account':{'id':_0x5c1f2a},'body':_0x4b33d8,'log':_0x3dba('0x10')});};
\ No newline at end of file
+var _0x3274=['../client','Request','GetMailAccount','service','email','active','key','ListId','TemplateId','Imap','MailServerOut','getMailAccount','notify','NotifyMailAccount'];(function(_0x49c6cc,_0x308bdb){var _0x22e239=function(_0x48507d){while(--_0x48507d){_0x49c6cc['push'](_0x49c6cc['shift']());}};_0x22e239(++_0x308bdb);}(_0x3274,0x134));var _0x4327=function(_0x284a2f,_0x422a5f){_0x284a2f=_0x284a2f-0x0;var _0x3c20a4=_0x3274[_0x284a2f];return _0x3c20a4;};'use strict';var client=require(_0x4327('0x0'));exports['getMailAccounts']=function(){return function(){return client[_0x4327('0x1')](_0x4327('0x2'),{'options':{'attributes':['id','name',_0x4327('0x3'),_0x4327('0x4'),_0x4327('0x5'),_0x4327('0x6'),_0x4327('0x7'),_0x4327('0x8')],'raw':![],'include':[{'model':'MailServerIn','as':_0x4327('0x9')},{'model':_0x4327('0xa'),'as':'Smtp'}]},'log':_0x4327('0xb')});};};exports[_0x4327('0xc')]=function(_0x502e7f,_0x43b30b){return client[_0x4327('0x1')]('NotifyMailAccount',{'account':{'id':_0x502e7f},'body':_0x43b30b,'log':_0x4327('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60c1=['Request','ShowSetting','loginMailFrequency','GetSettings','../client','getSettings'];(function(_0x4bae32,_0x192028){var _0x18e79b=function(_0x546246){while(--_0x546246){_0x4bae32['push'](_0x4bae32['shift']());}};_0x18e79b(++_0x192028);}(_0x60c1,0x13c));var _0x160c=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0x60c1[_0x1cc8fe];return _0x230054;};'use strict';var client=require(_0x160c('0x0'));exports[_0x160c('0x1')]=function(){return client[_0x160c('0x2')](_0x160c('0x3'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x160c('0x4')]},'log':_0x160c('0x5')});};
\ No newline at end of file
+var _0x6c0b=['GetSettings','../client','Request','ShowSetting','loginMailFrequency'];(function(_0x2abc3d,_0x48edca){var _0x252745=function(_0x32bb6f){while(--_0x32bb6f){_0x2abc3d['push'](_0x2abc3d['shift']());}};_0x252745(++_0x48edca);}(_0x6c0b,0x1e6));var _0xb6c0=function(_0x23ec06,_0x561142){_0x23ec06=_0x23ec06-0x0;var _0x2831d4=_0x6c0b[_0x23ec06];return _0x2831d4;};'use strict';var client=require(_0xb6c0('0x0'));exports['getSettings']=function(){return client[_0xb6c0('0x1')](_0xb6c0('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0xb6c0('0x3')]},'log':_0xb6c0('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4dbaad,_0x730318){_0x4dbaad=_0x4dbaad-0x0;var _0x226c72=_0xa9e0[_0x4dbaad];return _0x226c72;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
+var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ddedd,_0x485606){_0x1ddedd=_0x1ddedd-0x0;var _0xa3e1ac=_0xa9e0[_0x1ddedd];return _0xa3e1ac;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a42=['../../config/triggers','default','../../config/socketio','../../config/express','../../routes','once','listening','Express\x20server\x20listening\x20on\x20port\x20%d!','lodash','http','express','ioredis','../../config/environment','createServer','timeout','listen','port','socket.io','websocket','polling','redis','defaults','localhost','adapter'];(function(_0x5222d9,_0x12496d){var _0x16b0d5=function(_0x4220a6){while(--_0x4220a6){_0x5222d9['push'](_0x5222d9['shift']());}};_0x16b0d5(++_0x12496d);}(_0x1a42,0x128));var _0x21a4=function(_0x1f54d7,_0xafc682){_0x1f54d7=_0x1f54d7-0x0;var _0x355fc0=_0x1a42[_0x1f54d7];return _0x355fc0;};'use strict';var _=require(_0x21a4('0x0'));var http=require(_0x21a4('0x1'));var express=require(_0x21a4('0x2'));var sticky=require('sticky-session');var Redis=require(_0x21a4('0x3'));var config=require(_0x21a4('0x4'));var app=express();var server=http[_0x21a4('0x5')](app);server[_0x21a4('0x6')]=0xdbba0;if(sticky[_0x21a4('0x7')](server,config[_0x21a4('0x8')])){var socketio=require(_0x21a4('0x9'))(server,{'transports':[_0x21a4('0xa'),_0x21a4('0xb')]});config[_0x21a4('0xc')]=_[_0x21a4('0xd')](config[_0x21a4('0xc')],{'host':_0x21a4('0xe'),'port':0x18eb});socketio[_0x21a4('0xf')](require('socket.io-redis')({'pubClient':new Redis(config[_0x21a4('0xc')]),'subClient':new Redis(config['redis'])}));require(_0x21a4('0x10'))[_0x21a4('0x11')]();require(_0x21a4('0x12'))['default'](socketio);require(_0x21a4('0x13'))[_0x21a4('0x11')](app);require(_0x21a4('0x14'))['default'](app);}else{server[_0x21a4('0x15')](_0x21a4('0x16'),function(){console['log'](_0x21a4('0x17'),config[_0x21a4('0x8')]);});}exports=module['exports']=app;
\ No newline at end of file
+var _0x09f1=['http','express','sticky-session','ioredis','../../config/environment','createServer','listen','port','socket.io','websocket','redis','defaults','localhost','adapter','socket.io-redis','../../config/triggers','../../config/socketio','default','../../config/express','once','listening','log','Express\x20server\x20listening\x20on\x20port\x20%d!','exports'];(function(_0x542f45,_0x37468a){var _0x38c609=function(_0x44259b){while(--_0x44259b){_0x542f45['push'](_0x542f45['shift']());}};_0x38c609(++_0x37468a);}(_0x09f1,0x180));var _0x109f=function(_0x25fb97,_0x489473){_0x25fb97=_0x25fb97-0x0;var _0x2dd0ec=_0x09f1[_0x25fb97];return _0x2dd0ec;};'use strict';var _=require('lodash');var http=require(_0x109f('0x0'));var express=require(_0x109f('0x1'));var sticky=require(_0x109f('0x2'));var Redis=require(_0x109f('0x3'));var config=require(_0x109f('0x4'));var app=express();var server=http[_0x109f('0x5')](app);server['timeout']=0xdbba0;if(sticky[_0x109f('0x6')](server,config[_0x109f('0x7')])){var socketio=require(_0x109f('0x8'))(server,{'transports':[_0x109f('0x9'),'polling']});config[_0x109f('0xa')]=_[_0x109f('0xb')](config[_0x109f('0xa')],{'host':_0x109f('0xc'),'port':0x18eb});socketio[_0x109f('0xd')](require(_0x109f('0xe'))({'pubClient':new Redis(config[_0x109f('0xa')]),'subClient':new Redis(config[_0x109f('0xa')])}));require(_0x109f('0xf'))['default']();require(_0x109f('0x10'))[_0x109f('0x11')](socketio);require(_0x109f('0x12'))[_0x109f('0x11')](app);require('../../routes')[_0x109f('0x11')](app);}else{server[_0x109f('0x13')](_0x109f('0x14'),function(){console[_0x109f('0x15')](_0x109f('0x16'),config[_0x109f('0x7')]);});}exports=module[_0x109f('0x17')]=app;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1c5=['error','message','result','catch','exports','jayson/promise','bluebird','../../config/logger','routing','http','request','then','debug','rpc'];(function(_0x1a84a6,_0x44b54e){var _0x4c957c=function(_0x184558){while(--_0x184558){_0x1a84a6['push'](_0x1a84a6['shift']());}};_0x4c957c(++_0x44b54e);}(_0xd1c5,0x1b7));var _0x5d1c=function(_0x7d6dcd,_0x2d0b8b){_0x7d6dcd=_0x7d6dcd-0x0;var _0x55d843=_0xd1c5[_0x7d6dcd];return _0x55d843;};'use strict';var jayson=require(_0x5d1c('0x0'));var BPromise=require(_0x5d1c('0x1'));var logger=require(_0x5d1c('0x2'))(_0x5d1c('0x3'));var client=jayson['client'][_0x5d1c('0x4')]({'port':0x2329});client['Request']=function(_0x41549d,_0x324331){return new BPromise(function(_0x1157d1,_0x8d377b){return client[_0x5d1c('0x5')](_0x41549d,_0x324331)[_0x5d1c('0x6')](function(_0x2736f8){logger[_0x5d1c('0x7')](_0x5d1c('0x8'),_0x5d1c('0x3'),_0x41549d,_0x324331,_0x2736f8);if(_0x2736f8[_0x5d1c('0x9')]){logger['error'](_0x5d1c('0x8'),'routing',_0x41549d,_0x2736f8[_0x5d1c('0x9')][_0x5d1c('0xa')],_0x324331);return _0x8d377b(_0x2736f8[_0x5d1c('0x9')][_0x5d1c('0xa')]);}else{return _0x1157d1(_0x2736f8[_0x5d1c('0xb')]);}})[_0x5d1c('0xc')](function(_0x50c239){logger[_0x5d1c('0x9')](_0x5d1c('0x8'),_0x5d1c('0x3'),_0x41549d,_0x50c239,_0x324331);return _0x8d377b(_0x50c239);});});};module[_0x5d1c('0xd')]=client;
\ No newline at end of file
+var _0xb9c2=['request','then','debug','rpc','routing','error','message','catch','exports','jayson/promise','../../config/logger','http','Request'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xb9c2,0x1ea));var _0x2b9c=function(_0x49bfb8,_0x5b6e2b){_0x49bfb8=_0x49bfb8-0x0;var _0x1be0b7=_0xb9c2[_0x49bfb8];return _0x1be0b7;};'use strict';var jayson=require(_0x2b9c('0x0'));var BPromise=require('bluebird');var logger=require(_0x2b9c('0x1'))('routing');var client=jayson['client'][_0x2b9c('0x2')]({'port':0x2329});client[_0x2b9c('0x3')]=function(_0x18ebcb,_0x471178){return new BPromise(function(_0x1281a3,_0x225e96){return client[_0x2b9c('0x4')](_0x18ebcb,_0x471178)[_0x2b9c('0x5')](function(_0x529ccb){logger[_0x2b9c('0x6')](_0x2b9c('0x7'),'routing',_0x18ebcb,_0x471178,_0x529ccb);if(_0x529ccb['error']){logger['error'](_0x2b9c('0x7'),_0x2b9c('0x8'),_0x18ebcb,_0x529ccb[_0x2b9c('0x9')][_0x2b9c('0xa')],_0x471178);return _0x225e96(_0x529ccb[_0x2b9c('0x9')][_0x2b9c('0xa')]);}else{return _0x1281a3(_0x529ccb['result']);}})[_0x2b9c('0xb')](function(_0x2501a7){logger[_0x2b9c('0x9')](_0x2b9c('0x7'),_0x2b9c('0x8'),_0x18ebcb,_0x2501a7,_0x471178);return _0x225e96(_0x2501a7);});});};module[_0x2b9c('0xc')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40ee=['initChatQueues','getSmsQueues','initSmsQueues','getMailQueues','initMailQueues','initFaxQueues','getWhatsappQueues','initWhatsappQueues','catch','log','bluebird','./realtime','./rpc/user','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/whatsappQueue','resolve','getAgents','then','initAgents','initIntervals','getOpenchannelQueues','initOpenchannelQueues'];(function(_0x34f810,_0x24f727){var _0x111dae=function(_0x8bcfbe){while(--_0x8bcfbe){_0x34f810['push'](_0x34f810['shift']());}};_0x111dae(++_0x24f727);}(_0x40ee,0x17a));var _0xe40e=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x40ee[_0xbca1b1];return _0x4e1686;};'use strict';var BPromise=require(_0xe40e('0x0'));var server=require('./server');var Realtime=require(_0xe40e('0x1'));var user=require(_0xe40e('0x2'));var interval=require('./rpc/interval');var openchannelQueue=require(_0xe40e('0x3'));var chatQueue=require(_0xe40e('0x4'));var smsQueue=require('./rpc/smsQueue');var mailQueue=require('./rpc/mailQueue');var faxQueue=require('./rpc/faxQueue');var whatsappQueue=require(_0xe40e('0x5'));var realtime=new Realtime();function initRealtime(){return BPromise[_0xe40e('0x6')]()['then'](user[_0xe40e('0x7')]())[_0xe40e('0x8')](realtime[_0xe40e('0x9')]())[_0xe40e('0x8')](interval['getIntervals']())[_0xe40e('0x8')](realtime[_0xe40e('0xa')]())[_0xe40e('0x8')](openchannelQueue[_0xe40e('0xb')]())[_0xe40e('0x8')](realtime[_0xe40e('0xc')]())[_0xe40e('0x8')](chatQueue['getChatQueues']())[_0xe40e('0x8')](realtime[_0xe40e('0xd')]())[_0xe40e('0x8')](smsQueue[_0xe40e('0xe')]())['then'](realtime[_0xe40e('0xf')]())[_0xe40e('0x8')](mailQueue[_0xe40e('0x10')]())[_0xe40e('0x8')](realtime[_0xe40e('0x11')]())[_0xe40e('0x8')](faxQueue['getFaxQueues']())[_0xe40e('0x8')](realtime[_0xe40e('0x12')]())['then'](whatsappQueue[_0xe40e('0x13')]())[_0xe40e('0x8')](realtime[_0xe40e('0x14')]())[_0xe40e('0x8')](function(){return realtime;});}function main(){return server['listen'](realtime)[_0xe40e('0x8')](function(_0x10c3ee){return initRealtime();})[_0xe40e('0x8')](function(_0x2a27c4){return setInterval(initRealtime,0x1388);})[_0xe40e('0x15')](function(_0x4a4f47){console[_0xe40e('0x16')](_0x4a4f47);});}main();
\ No newline at end of file
+var _0x56a6=['./rpc/interval','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/smsQueue','./rpc/mailQueue','./rpc/whatsappQueue','resolve','then','getAgents','getIntervals','initIntervals','getOpenchannelQueues','initOpenchannelQueues','initChatQueues','initSmsQueues','getMailQueues','initMailQueues','getFaxQueues','catch','log','./server'];(function(_0x53b117,_0x4e4767){var _0x1494f8=function(_0x395a23){while(--_0x395a23){_0x53b117['push'](_0x53b117['shift']());}};_0x1494f8(++_0x4e4767);}(_0x56a6,0x18e));var _0x656a=function(_0x3b92d2,_0x57ec04){_0x3b92d2=_0x3b92d2-0x0;var _0x552212=_0x56a6[_0x3b92d2];return _0x552212;};'use strict';var BPromise=require('bluebird');var server=require(_0x656a('0x0'));var Realtime=require('./realtime');var user=require('./rpc/user');var interval=require(_0x656a('0x1'));var openchannelQueue=require(_0x656a('0x2'));var chatQueue=require(_0x656a('0x3'));var smsQueue=require(_0x656a('0x4'));var mailQueue=require(_0x656a('0x5'));var faxQueue=require('./rpc/faxQueue');var whatsappQueue=require(_0x656a('0x6'));var realtime=new Realtime();function initRealtime(){return BPromise[_0x656a('0x7')]()[_0x656a('0x8')](user[_0x656a('0x9')]())[_0x656a('0x8')](realtime['initAgents']())[_0x656a('0x8')](interval[_0x656a('0xa')]())['then'](realtime[_0x656a('0xb')]())['then'](openchannelQueue[_0x656a('0xc')]())['then'](realtime[_0x656a('0xd')]())[_0x656a('0x8')](chatQueue['getChatQueues']())[_0x656a('0x8')](realtime[_0x656a('0xe')]())[_0x656a('0x8')](smsQueue['getSmsQueues']())[_0x656a('0x8')](realtime[_0x656a('0xf')]())[_0x656a('0x8')](mailQueue[_0x656a('0x10')]())[_0x656a('0x8')](realtime[_0x656a('0x11')]())[_0x656a('0x8')](faxQueue[_0x656a('0x12')]())[_0x656a('0x8')](realtime['initFaxQueues']())['then'](whatsappQueue['getWhatsappQueues']())[_0x656a('0x8')](realtime['initWhatsappQueues']())['then'](function(){return realtime;});}function main(){return server['listen'](realtime)[_0x656a('0x8')](function(_0x14c31f){return initRealtime();})['then'](function(_0x512f80){return setInterval(initRealtime,0x1388);})[_0x656a('0x13')](function(_0x316875){console[_0x656a('0x14')](_0x316875);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['next','isEqual','restart','condition','matches','filter','turn','prioritize','findRules','length','priority','toJSON','map','toString','fromJSON','parse','object','exports','lodash','util','events','EventEmitter','isNil','register','ignoreFactChanges','inherits','rules','activeRules','prototype','isArray','concat','push','sync','orderBy','result','clone','consequence','name','index_','nextTick','ruleRef','call'];(function(_0x4ca246,_0x19cbb7){var _0x320826=function(_0x40078f){while(--_0x40078f){_0x4ca246['push'](_0x4ca246['shift']());}};_0x320826(++_0x19cbb7);}(_0x2ef3,0xba));var _0x32ef=function(_0x259cc1,_0x5d8a9b){_0x259cc1=_0x259cc1-0x0;var _0x27cb5d=_0x2ef3[_0x259cc1];return _0x27cb5d;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var EventEmitter=require(_0x32ef('0x2'))[_0x32ef('0x3')];function RuleEngine(_0x3944df,_0x38047b){this['init']();if(!_[_0x32ef('0x4')](_0x3944df)){this[_0x32ef('0x5')](_0x3944df);}if(_0x38047b){this['ignoreFactChanges']=_0x38047b[_0x32ef('0x6')];}return this;}util[_0x32ef('0x7')](RuleEngine,EventEmitter);RuleEngine['prototype']['init']=function(_0x2c0089){this[_0x32ef('0x8')]=[];this[_0x32ef('0x9')]=[];};RuleEngine[_0x32ef('0xa')][_0x32ef('0x5')]=function(_0x298066){if(Array[_0x32ef('0xb')](_0x298066)){this[_0x32ef('0x8')]=this[_0x32ef('0x8')][_0x32ef('0xc')](_0x298066);}else if(_0x298066!==null&&_['isObject'](_0x298066)){this['rules'][_0x32ef('0xd')](_0x298066);}this[_0x32ef('0xe')]();};RuleEngine[_0x32ef('0xa')][_0x32ef('0xe')]=function(){this['activeRules']=this[_0x32ef('0x8')]['filter'](function(_0x1a5106){if(_['isNil'](_0x1a5106['on'])){_0x1a5106['on']=!![];}if(_0x1a5106['on']===!![]){return _0x1a5106;}});this[_0x32ef('0x9')]=_[_0x32ef('0xf')](this['activeRules'],['p'],['asc']);};RuleEngine[_0x32ef('0xa')]['execute']=function(_0x326fce,_0x40a6e6){var _0x93d492=![];_0x326fce[_0x32ef('0x10')]=!![];var _0x57aff1=_['clone'](_0x326fce);var _0x531e30=_[_0x32ef('0x11')](_0x326fce);var _0x3950e6=this[_0x32ef('0x9')];var _0x53a5ca=[];var _0x5d559b=this[_0x32ef('0x6')];(function FnRuleLoop(_0x1a9476){var _0x286bfb={'rules':function(){return _0x3950e6;},'rule':function(){return _0x3950e6[_0x1a9476];},'when':function(_0x57863c){if(_0x57863c){var _0xbe37f6=_0x3950e6[_0x1a9476][_0x32ef('0x12')];_0xbe37f6['ruleRef']=_0x3950e6[_0x1a9476]['id']||_0x3950e6[_0x1a9476][_0x32ef('0x13')]||_0x32ef('0x14')+_0x1a9476;process[_0x32ef('0x15')](function(){_0x53a5ca[_0x32ef('0xd')](_0xbe37f6[_0x32ef('0x16')]);_0xbe37f6[_0x32ef('0x17')](_0x57aff1,_0x286bfb);});}else{process['nextTick'](function(){_0x286bfb[_0x32ef('0x18')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x93d492=!![];return FnRuleLoop(0x0);},'next':function(_0x5cc3ef){if(!_0x5d559b&&!_[_0x32ef('0x19')](_0x531e30,_0x57aff1)){_0x531e30=_[_0x32ef('0x11')](_0x57aff1);process['nextTick'](function(){_0x286bfb[_0x32ef('0x1a')]();});}else{process[_0x32ef('0x15')](function(){if(_[_0x32ef('0x4')](_0x5cc3ef)){return FnRuleLoop(_0x1a9476+0x1);}else{return FnRuleLoop(_0x5cc3ef);}});}}};if(_0x1a9476<_0x3950e6['length']&&_0x93d492===![]){var _0x57f5e5=_0x3950e6[_0x1a9476][_0x32ef('0x1b')];_0x57f5e5[_0x32ef('0x17')](_0x57aff1,_0x286bfb);}else{process[_0x32ef('0x15')](function(){_0x57aff1['matchPath']=_0x53a5ca;return _0x40a6e6?_0x40a6e6(_0x57aff1):_['noop']();});}}(0x0));};RuleEngine[_0x32ef('0xa')]['findRules']=function(_0x51a412){if(_[_0x32ef('0x4')](_0x51a412)){return this[_0x32ef('0x8')];}else{var _0x371540=_[_0x32ef('0x1c')](_0x51a412);return _[_0x32ef('0x1d')](this[_0x32ef('0x8')],_0x371540);}};RuleEngine[_0x32ef('0xa')][_0x32ef('0x1e')]=function(_0x338f19,_0x2f52d7){var _0x1335e2=_0x338f19==='on'||_0x338f19==='ON'?!![]:![];var _0xba4b3f=this['findRules'](_0x2f52d7);for(var _0xd65fde=0x0,_0x2f5d06=_0xba4b3f['length'];_0xd65fde<_0x2f5d06;_0xd65fde+=0x1){_0xba4b3f[_0xd65fde]['on']=_0x1335e2;}this[_0x32ef('0xe')]();};RuleEngine[_0x32ef('0xa')][_0x32ef('0x1f')]=function(_0x26e207,_0x50a95b){_0x26e207=parseInt(_0x26e207,0xa);var _0x10e38c=this[_0x32ef('0x20')](_0x50a95b);for(var _0x31dbc3=0x0,_0x2ac686=_0x10e38c[_0x32ef('0x21')];_0x31dbc3<_0x2ac686;_0x31dbc3+=0x1){_0x10e38c[_0x31dbc3][_0x32ef('0x22')]=_0x26e207;}this[_0x32ef('0xe')]();};RuleEngine['prototype'][_0x32ef('0x23')]=function(){var _0x537214=this[_0x32ef('0x8')];if(_0x537214 instanceof Array){_0x537214=_0x537214[_0x32ef('0x24')](function(_0x5a9565){_0x5a9565[_0x32ef('0x1b')]=_0x5a9565[_0x32ef('0x1b')][_0x32ef('0x25')]();_0x5a9565[_0x32ef('0x12')]=_0x5a9565[_0x32ef('0x12')]['toString']();return _0x5a9565;});}else if(!_['isNil'](_0x537214)){_0x537214[_0x32ef('0x1b')]=_0x537214['condition'][_0x32ef('0x25')]();_0x537214[_0x32ef('0x12')]=_0x537214[_0x32ef('0x12')][_0x32ef('0x25')]();}return _0x537214;};RuleEngine[_0x32ef('0xa')][_0x32ef('0x26')]=function(_0x566b56){this['init']();if(_['isString'](_0x566b56)){_0x566b56=JSON[_0x32ef('0x27')](_0x566b56);}if(_0x566b56 instanceof Array){_0x566b56=_0x566b56[_0x32ef('0x24')](function(_0x136b02){_0x136b02['condition']=eval('('+_0x136b02['condition']+')');_0x136b02[_0x32ef('0x12')]=eval('('+_0x136b02[_0x32ef('0x12')]+')');return _0x136b02;});}else if(_0x566b56!==null&&typeof _0x566b56==_0x32ef('0x28')){_0x566b56['condition']=eval('('+_0x566b56['condition']+')');_0x566b56[_0x32ef('0x12')]=eval('('+_0x566b56[_0x32ef('0x12')]+')');}this[_0x32ef('0x5')](_0x566b56);};module[_0x32ef('0x29')]=RuleEngine;
\ No newline at end of file
+var _0xc4aa=['ruleRef','name','nextTick','push','call','next','isEqual','restart','isNil','length','condition','matchPath','noop','findRules','matches','turn','prioritize','priority','toJSON','toString','fromJSON','isString','parse','register','exports','lodash','util','events','EventEmitter','ignoreFactChanges','inherits','prototype','init','rules','activeRules','isArray','concat','isObject','sync','filter','orderBy','asc','execute','result','clone','consequence'];(function(_0x5598fa,_0x108fc5){var _0x2579b6=function(_0x195bbb){while(--_0x195bbb){_0x5598fa['push'](_0x5598fa['shift']());}};_0x2579b6(++_0x108fc5);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x273c39,_0x1052e6){_0x273c39=_0x273c39-0x0;var _0x46d6b5=_0xc4aa[_0x273c39];return _0x46d6b5;};'use strict';var _=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var EventEmitter=require(_0xac4a('0x2'))[_0xac4a('0x3')];function RuleEngine(_0x275161,_0x22469d){this['init']();if(!_['isNil'](_0x275161)){this['register'](_0x275161);}if(_0x22469d){this[_0xac4a('0x4')]=_0x22469d[_0xac4a('0x4')];}return this;}util[_0xac4a('0x5')](RuleEngine,EventEmitter);RuleEngine[_0xac4a('0x6')][_0xac4a('0x7')]=function(_0x15cd34){this[_0xac4a('0x8')]=[];this[_0xac4a('0x9')]=[];};RuleEngine['prototype']['register']=function(_0x1aba6d){if(Array[_0xac4a('0xa')](_0x1aba6d)){this[_0xac4a('0x8')]=this['rules'][_0xac4a('0xb')](_0x1aba6d);}else if(_0x1aba6d!==null&&_[_0xac4a('0xc')](_0x1aba6d)){this[_0xac4a('0x8')]['push'](_0x1aba6d);}this[_0xac4a('0xd')]();};RuleEngine['prototype'][_0xac4a('0xd')]=function(){this['activeRules']=this[_0xac4a('0x8')][_0xac4a('0xe')](function(_0x24291d){if(_['isNil'](_0x24291d['on'])){_0x24291d['on']=!![];}if(_0x24291d['on']===!![]){return _0x24291d;}});this[_0xac4a('0x9')]=_[_0xac4a('0xf')](this[_0xac4a('0x9')],['p'],[_0xac4a('0x10')]);};RuleEngine[_0xac4a('0x6')][_0xac4a('0x11')]=function(_0x34bc01,_0x33c287){var _0x190418=![];_0x34bc01[_0xac4a('0x12')]=!![];var _0x11e101=_[_0xac4a('0x13')](_0x34bc01);var _0x4a2119=_[_0xac4a('0x13')](_0x34bc01);var _0x34d797=this[_0xac4a('0x9')];var _0x144553=[];var _0x3e88e3=this[_0xac4a('0x4')];(function FnRuleLoop(_0x28e304){var _0x44ec59={'rules':function(){return _0x34d797;},'rule':function(){return _0x34d797[_0x28e304];},'when':function(_0x546c5d){if(_0x546c5d){var _0x5ac21e=_0x34d797[_0x28e304][_0xac4a('0x14')];_0x5ac21e[_0xac4a('0x15')]=_0x34d797[_0x28e304]['id']||_0x34d797[_0x28e304][_0xac4a('0x16')]||'index_'+_0x28e304;process[_0xac4a('0x17')](function(){_0x144553[_0xac4a('0x18')](_0x5ac21e[_0xac4a('0x15')]);_0x5ac21e[_0xac4a('0x19')](_0x11e101,_0x44ec59);});}else{process[_0xac4a('0x17')](function(){_0x44ec59[_0xac4a('0x1a')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x190418=!![];return FnRuleLoop(0x0);},'next':function(_0xe38996){if(!_0x3e88e3&&!_[_0xac4a('0x1b')](_0x4a2119,_0x11e101)){_0x4a2119=_['clone'](_0x11e101);process[_0xac4a('0x17')](function(){_0x44ec59[_0xac4a('0x1c')]();});}else{process['nextTick'](function(){if(_[_0xac4a('0x1d')](_0xe38996)){return FnRuleLoop(_0x28e304+0x1);}else{return FnRuleLoop(_0xe38996);}});}}};if(_0x28e304<_0x34d797[_0xac4a('0x1e')]&&_0x190418===![]){var _0x3eacd3=_0x34d797[_0x28e304][_0xac4a('0x1f')];_0x3eacd3['call'](_0x11e101,_0x44ec59);}else{process[_0xac4a('0x17')](function(){_0x11e101[_0xac4a('0x20')]=_0x144553;return _0x33c287?_0x33c287(_0x11e101):_[_0xac4a('0x21')]();});}}(0x0));};RuleEngine[_0xac4a('0x6')][_0xac4a('0x22')]=function(_0x2b0dc2){if(_[_0xac4a('0x1d')](_0x2b0dc2)){return this[_0xac4a('0x8')];}else{var _0x3e2c69=_[_0xac4a('0x23')](_0x2b0dc2);return _[_0xac4a('0xe')](this[_0xac4a('0x8')],_0x3e2c69);}};RuleEngine[_0xac4a('0x6')][_0xac4a('0x24')]=function(_0x1c13dc,_0x20202c){var _0x4e17ce=_0x1c13dc==='on'||_0x1c13dc==='ON'?!![]:![];var _0x23b061=this[_0xac4a('0x22')](_0x20202c);for(var _0x42a33c=0x0,_0x2772fe=_0x23b061[_0xac4a('0x1e')];_0x42a33c<_0x2772fe;_0x42a33c+=0x1){_0x23b061[_0x42a33c]['on']=_0x4e17ce;}this['sync']();};RuleEngine['prototype'][_0xac4a('0x25')]=function(_0x7a948b,_0x1f12d5){_0x7a948b=parseInt(_0x7a948b,0xa);var _0x546b65=this['findRules'](_0x1f12d5);for(var _0x355755=0x0,_0x2896bc=_0x546b65[_0xac4a('0x1e')];_0x355755<_0x2896bc;_0x355755+=0x1){_0x546b65[_0x355755][_0xac4a('0x26')]=_0x7a948b;}this[_0xac4a('0xd')]();};RuleEngine['prototype'][_0xac4a('0x27')]=function(){var _0x482afc=this[_0xac4a('0x8')];if(_0x482afc instanceof Array){_0x482afc=_0x482afc['map'](function(_0x17e6de){_0x17e6de[_0xac4a('0x1f')]=_0x17e6de[_0xac4a('0x1f')][_0xac4a('0x28')]();_0x17e6de[_0xac4a('0x14')]=_0x17e6de[_0xac4a('0x14')][_0xac4a('0x28')]();return _0x17e6de;});}else if(!_[_0xac4a('0x1d')](_0x482afc)){_0x482afc[_0xac4a('0x1f')]=_0x482afc[_0xac4a('0x1f')][_0xac4a('0x28')]();_0x482afc[_0xac4a('0x14')]=_0x482afc[_0xac4a('0x14')][_0xac4a('0x28')]();}return _0x482afc;};RuleEngine['prototype'][_0xac4a('0x29')]=function(_0x1c41fb){this['init']();if(_[_0xac4a('0x2a')](_0x1c41fb)){_0x1c41fb=JSON[_0xac4a('0x2b')](_0x1c41fb);}if(_0x1c41fb instanceof Array){_0x1c41fb=_0x1c41fb['map'](function(_0x58804b){_0x58804b[_0xac4a('0x1f')]=eval('('+_0x58804b[_0xac4a('0x1f')]+')');_0x58804b[_0xac4a('0x14')]=eval('('+_0x58804b[_0xac4a('0x14')]+')');return _0x58804b;});}else if(_0x1c41fb!==null&&typeof _0x1c41fb=='object'){_0x1c41fb[_0xac4a('0x1f')]=eval('('+_0x1c41fb[_0xac4a('0x1f')]+')');_0x1c41fb['consequence']=eval('('+_0x1c41fb[_0xac4a('0x14')]+')');}this[_0xac4a('0x2c')](_0x1c41fb);};module[_0xac4a('0x2d')]=RuleEngine;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4996=['message','result','catch','sendMailMessage','SendMail','jayson/promise','client','http','request','then','error'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x4996,0x1f4));var _0x6499=function(_0x16e874,_0x154da0){_0x16e874=_0x16e874-0x0;var _0x5460d4=_0x4996[_0x16e874];return _0x5460d4;};'use strict';var BPromise=require('bluebird');var jayson=require(_0x6499('0x0'));var client=jayson[_0x6499('0x1')][_0x6499('0x2')]({'port':0x232b});function request(_0x720cea,_0x295b50){return new BPromise(function(_0xb916ee,_0x29e5a0){return client[_0x6499('0x3')](_0x720cea,_0x295b50)[_0x6499('0x4')](function(_0x4db9b7){if(_0x4db9b7['error']){return _0x29e5a0(_0x4db9b7[_0x6499('0x5')][_0x6499('0x6')]);}else{return _0xb916ee(_0x4db9b7[_0x6499('0x7')]);}})[_0x6499('0x8')](function(_0x1683b0){return _0x29e5a0(_0x1683b0);});});}exports[_0x6499('0x9')]=function(_0x913aa7,_0x178115){return request(_0x6499('0xa'),{'account':_0x913aa7,'message':_0x178115});};
\ No newline at end of file
+var _0x7fbb=['result','catch','sendMailMessage','SendMail','bluebird','jayson/promise','client','http','request','then','error','message'];(function(_0x319f0a,_0x4131d3){var _0x73c2e4=function(_0x40f490){while(--_0x40f490){_0x319f0a['push'](_0x319f0a['shift']());}};_0x73c2e4(++_0x4131d3);}(_0x7fbb,0xb8));var _0xb7fb=function(_0x5af714,_0x2ca616){_0x5af714=_0x5af714-0x0;var _0x1e845a=_0x7fbb[_0x5af714];return _0x1e845a;};'use strict';var BPromise=require(_0xb7fb('0x0'));var jayson=require(_0xb7fb('0x1'));var client=jayson[_0xb7fb('0x2')][_0xb7fb('0x3')]({'port':0x232b});function request(_0x4008d8,_0x2fbab4){return new BPromise(function(_0x1054c6,_0x5951a0){return client[_0xb7fb('0x4')](_0x4008d8,_0x2fbab4)[_0xb7fb('0x5')](function(_0x15edcf){if(_0x15edcf[_0xb7fb('0x6')]){return _0x5951a0(_0x15edcf[_0xb7fb('0x6')][_0xb7fb('0x7')]);}else{return _0x1054c6(_0x15edcf[_0xb7fb('0x8')]);}})[_0xb7fb('0x9')](function(_0x3e79b8){return _0x5951a0(_0x3e79b8);});});}exports[_0xb7fb('0xa')]=function(_0x17768b,_0x4125cf){return request(_0xb7fb('0xb'),{'account':_0x17768b,'message':_0x4125cf});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa24a=['openchannelPause','chatStatus','unknown','chatCapacity','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','working','mail','chat','openchannel','sms','length','StatusTime','toNumber','Status','chatCurrentCapacity','smsStatus','stringify','emit','user:save','exports','lodash','moment','md5','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0xa24a,0x1a2));var _0xaa24=function(_0x4e44a0,_0x40ce30){_0x4e44a0=_0x4e44a0-0x0;var _0x5bd95b=_0xa24a[_0x4e44a0];return _0x5bd95b;};'use strict';var _=require(_0xaa24('0x0'));var moment=require(_0xaa24('0x1'));var md5=require(_0xaa24('0x2'));var Redis=require(_0xaa24('0x3'));var config=require(_0xaa24('0x4'));config[_0xaa24('0x5')]=_[_0xaa24('0x6')](config[_0xaa24('0x5')],{'host':_0xaa24('0x7'),'port':0x18eb});var io=require(_0xaa24('0x8'))(new Redis(config['redis']));function Agent(_0x299391){this['id']=_0x299391['id']||0x0;this[_0xaa24('0x9')]=_0x299391['name']||'';this[_0xaa24('0xa')]=_0x299391[_0xaa24('0xa')]||!![];this['voicePause']=_0x299391[_0xaa24('0xb')]||![];this[_0xaa24('0xc')]=_0x299391['chatPause']||![];this['mailPause']=_0x299391[_0xaa24('0xd')]||![];this[_0xaa24('0xe')]=_0x299391[_0xaa24('0xe')]||![];this[_0xaa24('0xf')]=_0x299391[_0xaa24('0xf')]||![];this[_0xaa24('0x10')]=_0x299391[_0xaa24('0x10')]||![];this[_0xaa24('0x11')]=_0xaa24('0x12');this['chatStatusTime']=0x0;this['chatCapacity']=_0x299391[_0xaa24('0x13')]||0x0;this['chatCurrentCapacity']=0x0;this[_0xaa24('0x14')]=_0xaa24('0x12');this[_0xaa24('0x15')]=0x0;this[_0xaa24('0x16')]=_0x299391['mailCapacity']||0x0;this[_0xaa24('0x17')]=0x0;this[_0xaa24('0x18')]=_0xaa24('0x12');this[_0xaa24('0x19')]=0x0;this[_0xaa24('0x1a')]=_0x299391['faxCapacity']||0x0;this[_0xaa24('0x1b')]=0x0;this['smsStatus']=_0xaa24('0x12');this[_0xaa24('0x1c')]=0x0;this[_0xaa24('0x1d')]=_0x299391[_0xaa24('0x1d')]||0x0;this[_0xaa24('0x1e')]=0x0;this[_0xaa24('0x1f')]='unknown';this[_0xaa24('0x20')]=0x0;this[_0xaa24('0x21')]=_0x299391['whatsappCapacity']||0x0;this[_0xaa24('0x22')]=0x0;this[_0xaa24('0x23')]=_0xaa24('0x12');this[_0xaa24('0x24')]=0x0;this[_0xaa24('0x25')]=_0x299391[_0xaa24('0x25')]||0x0;this[_0xaa24('0x26')]=0x0;this[_0xaa24('0x27')]=![];this[_0xaa24('0x28')]=undefined;this[_0xaa24('0x2')]='';this[_0xaa24('0x29')]();}Agent[_0xaa24('0x2a')][_0xaa24('0x2b')]=function(_0x49fe1c){if(this[_0x49fe1c+_0xaa24('0x2c')]>0x0){if(this[_0x49fe1c+'Capacity']>0x0&&this[_0x49fe1c+_0xaa24('0x2c')]>=this[_0x49fe1c+_0xaa24('0x2d')]){return _0xaa24('0x2e');}else{return _0xaa24('0x2f');}}else{return'idle';}};Agent['prototype']['updateRealtime']=function(){var _0x4ac052=[_0xaa24('0x30'),_0xaa24('0x31'),_0xaa24('0x32'),'fax',_0xaa24('0x33'),'whatsapp'];for(var _0x547181=0x0;_0x547181<_0x4ac052[_0xaa24('0x34')];_0x547181+=0x1){var _0x54e5e7=this[_0xaa24('0x2b')](_0x4ac052[_0x547181]);if(this[_0x4ac052[_0x547181]+'Status']!==_0x54e5e7){this[_0x4ac052[_0x547181]+_0xaa24('0x35')]=_[_0xaa24('0x36')](moment()['format']('x'));}this[_0x4ac052[_0x547181]+_0xaa24('0x37')]=_0x54e5e7;}var _0x42a720={'id':this['id'],'name':this[_0xaa24('0x9')],'online':this[_0xaa24('0xa')],'voicePause':this[_0xaa24('0xb')],'chatPause':this[_0xaa24('0xc')],'mailPause':this[_0xaa24('0xd')],'smsPause':this['smsPause'],'faxPause':this['faxPause'],'openchannelPause':this[_0xaa24('0x10')],'chatStatus':this[_0xaa24('0x11')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this[_0xaa24('0x13')],'chatCurrentCapacity':this[_0xaa24('0x38')],'mailStatus':this['mailStatus'],'mailStatusTime':this[_0xaa24('0x15')],'mailCapacity':this[_0xaa24('0x16')],'mailCurrentCapacity':this[_0xaa24('0x17')],'faxStatus':this[_0xaa24('0x18')],'faxStatusTime':this[_0xaa24('0x19')],'faxCapacity':this[_0xaa24('0x1a')],'faxCurrentCapacity':this[_0xaa24('0x1b')],'smsStatus':this[_0xaa24('0x39')],'smsStatusTime':this[_0xaa24('0x1c')],'smsCapacity':this[_0xaa24('0x1d')],'smsCurrentCapacity':this[_0xaa24('0x1e')],'whatsappStatus':this['whatsappStatus'],'whatsappStatusTime':this[_0xaa24('0x20')],'whatsappCapacity':this[_0xaa24('0x21')],'whatsappCurrentCapacity':this[_0xaa24('0x22')],'openchannelStatus':this[_0xaa24('0x23')],'openchannelStatusTime':this[_0xaa24('0x24')],'openchannelCapacity':this['openchannelCapacity'],'openchannelCurrentCapacity':this[_0xaa24('0x26')],'busy':this['busy'],'busyQueue':this['busyQueue']};var _0x3b50ef=md5(JSON[_0xaa24('0x3a')](_0x42a720));if(this['md5']!==_0x3b50ef){this[_0xaa24('0x2')]=_0x3b50ef;io[_0xaa24('0x3b')](_0xaa24('0x3c'),_0x42a720);}};module[_0xaa24('0x3d')]=Agent;
\ No newline at end of file
+var _0xd2e5=['chatPause','mailPause','faxPause','smsPause','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatusTime','mailCurrentCapacity','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','working','idle','mail','chat','openchannel','fax','sms','Status','StatusTime','format','name','openchannelPause','chatStatus','mailStatus','mailCapacity','faxStatus','busyQueue','stringify','emit','user:save','exports','moment','md5','ioredis','defaults','redis','online','voicePause'];(function(_0x34bc6c,_0x10d089){var _0x168820=function(_0xb058d9){while(--_0xb058d9){_0x34bc6c['push'](_0x34bc6c['shift']());}};_0x168820(++_0x10d089);}(_0xd2e5,0x15b));var _0x5d2e=function(_0x482d73,_0x58f50c){_0x482d73=_0x482d73-0x0;var _0x5725bd=_0xd2e5[_0x482d73];return _0x5725bd;};'use strict';var _=require('lodash');var moment=require(_0x5d2e('0x0'));var md5=require(_0x5d2e('0x1'));var Redis=require(_0x5d2e('0x2'));var config=require('../../../config/environment');config['redis']=_[_0x5d2e('0x3')](config[_0x5d2e('0x4')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function Agent(_0x301d2c){this['id']=_0x301d2c['id']||0x0;this['name']=_0x301d2c['name']||'';this['online']=_0x301d2c[_0x5d2e('0x5')]||!![];this['voicePause']=_0x301d2c[_0x5d2e('0x6')]||![];this['chatPause']=_0x301d2c[_0x5d2e('0x7')]||![];this[_0x5d2e('0x8')]=_0x301d2c[_0x5d2e('0x8')]||![];this[_0x5d2e('0x9')]=_0x301d2c['faxPause']||![];this[_0x5d2e('0xa')]=_0x301d2c[_0x5d2e('0xa')]||![];this['openchannelPause']=_0x301d2c['openchannelPause']||![];this['chatStatus']=_0x5d2e('0xb');this[_0x5d2e('0xc')]=0x0;this[_0x5d2e('0xd')]=_0x301d2c[_0x5d2e('0xd')]||0x0;this[_0x5d2e('0xe')]=0x0;this['mailStatus']=_0x5d2e('0xb');this[_0x5d2e('0xf')]=0x0;this['mailCapacity']=_0x301d2c['mailCapacity']||0x0;this[_0x5d2e('0x10')]=0x0;this['faxStatus']=_0x5d2e('0xb');this[_0x5d2e('0x11')]=0x0;this[_0x5d2e('0x12')]=_0x301d2c[_0x5d2e('0x12')]||0x0;this[_0x5d2e('0x13')]=0x0;this[_0x5d2e('0x14')]='unknown';this[_0x5d2e('0x15')]=0x0;this[_0x5d2e('0x16')]=_0x301d2c[_0x5d2e('0x16')]||0x0;this[_0x5d2e('0x17')]=0x0;this[_0x5d2e('0x18')]=_0x5d2e('0xb');this[_0x5d2e('0x19')]=0x0;this[_0x5d2e('0x1a')]=_0x301d2c[_0x5d2e('0x1a')]||0x0;this[_0x5d2e('0x1b')]=0x0;this['openchannelStatus']=_0x5d2e('0xb');this[_0x5d2e('0x1c')]=0x0;this[_0x5d2e('0x1d')]=_0x301d2c[_0x5d2e('0x1d')]||0x0;this[_0x5d2e('0x1e')]=0x0;this[_0x5d2e('0x1f')]=![];this['busyQueue']=undefined;this[_0x5d2e('0x1')]='';this[_0x5d2e('0x20')]();}Agent[_0x5d2e('0x21')][_0x5d2e('0x22')]=function(_0x321198){if(this[_0x321198+_0x5d2e('0x23')]>0x0){if(this[_0x321198+_0x5d2e('0x24')]>0x0&&this[_0x321198+'CurrentCapacity']>=this[_0x321198+_0x5d2e('0x24')]){return _0x5d2e('0x25');}else{return _0x5d2e('0x26');}}else{return _0x5d2e('0x27');}};Agent[_0x5d2e('0x21')][_0x5d2e('0x20')]=function(){var _0x55a9ee=[_0x5d2e('0x28'),_0x5d2e('0x29'),_0x5d2e('0x2a'),_0x5d2e('0x2b'),_0x5d2e('0x2c'),'whatsapp'];for(var _0x376921=0x0;_0x376921<_0x55a9ee['length'];_0x376921+=0x1){var _0x454dcc=this['getChannelStatus'](_0x55a9ee[_0x376921]);if(this[_0x55a9ee[_0x376921]+_0x5d2e('0x2d')]!==_0x454dcc){this[_0x55a9ee[_0x376921]+_0x5d2e('0x2e')]=_['toNumber'](moment()[_0x5d2e('0x2f')]('x'));}this[_0x55a9ee[_0x376921]+_0x5d2e('0x2d')]=_0x454dcc;}var _0x1c00c1={'id':this['id'],'name':this[_0x5d2e('0x30')],'online':this[_0x5d2e('0x5')],'voicePause':this['voicePause'],'chatPause':this[_0x5d2e('0x7')],'mailPause':this[_0x5d2e('0x8')],'smsPause':this[_0x5d2e('0xa')],'faxPause':this[_0x5d2e('0x9')],'openchannelPause':this[_0x5d2e('0x31')],'chatStatus':this[_0x5d2e('0x32')],'chatStatusTime':this[_0x5d2e('0xc')],'chatCapacity':this[_0x5d2e('0xd')],'chatCurrentCapacity':this[_0x5d2e('0xe')],'mailStatus':this[_0x5d2e('0x33')],'mailStatusTime':this[_0x5d2e('0xf')],'mailCapacity':this[_0x5d2e('0x34')],'mailCurrentCapacity':this['mailCurrentCapacity'],'faxStatus':this[_0x5d2e('0x35')],'faxStatusTime':this[_0x5d2e('0x11')],'faxCapacity':this[_0x5d2e('0x12')],'faxCurrentCapacity':this[_0x5d2e('0x13')],'smsStatus':this[_0x5d2e('0x14')],'smsStatusTime':this['smsStatusTime'],'smsCapacity':this['smsCapacity'],'smsCurrentCapacity':this[_0x5d2e('0x17')],'whatsappStatus':this[_0x5d2e('0x18')],'whatsappStatusTime':this[_0x5d2e('0x19')],'whatsappCapacity':this['whatsappCapacity'],'whatsappCurrentCapacity':this[_0x5d2e('0x1b')],'openchannelStatus':this['openchannelStatus'],'openchannelStatusTime':this[_0x5d2e('0x1c')],'openchannelCapacity':this[_0x5d2e('0x1d')],'openchannelCurrentCapacity':this[_0x5d2e('0x1e')],'busy':this[_0x5d2e('0x1f')],'busyQueue':this[_0x5d2e('0x36')]};var _0x4263b9=md5(JSON[_0x5d2e('0x37')](_0x1c00c1));if(this[_0x5d2e('0x1')]!==_0x4263b9){this[_0x5d2e('0x1')]=_0x4263b9;io[_0x5d2e('0x38')](_0x5d2e('0x39'),_0x1c00c1);}};module[_0x5d2e('0x3a')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38b6=['mapAgentsId','waiting','updateRouting','updateRealtime','_rr','map','paused','loggedIn','chatPause','available','name','stringify','format','chat:queue:%s','chat_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','timeout','strategy','beepall','Agents'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0x38b6,0x14f));var _0x638b=function(_0x2bc86b,_0x1e2333){_0x2bc86b=_0x2bc86b-0x0;var _0x221f94=_0x38b6[_0x2bc86b];return _0x221f94;};'use strict';var _=require(_0x638b('0x0'));var md5=require(_0x638b('0x1'));var util=require(_0x638b('0x2'));var Redis=require(_0x638b('0x3'));var config=require(_0x638b('0x4'));config[_0x638b('0x5')]=_[_0x638b('0x6')](config[_0x638b('0x5')],{'host':_0x638b('0x7'),'port':0x18eb});var io=require(_0x638b('0x8'))(new Redis(config[_0x638b('0x5')]));function ChatQueue(_0x594eb4){this['id']=_0x594eb4['id']||0x0;this['name']=_0x594eb4['name']||'';this[_0x638b('0x9')]=_0x594eb4[_0x638b('0x9')]||0xa;this[_0x638b('0xa')]=_0x594eb4[_0x638b('0xa')]||_0x638b('0xb');this[_0x638b('0xc')]=_0x594eb4['Agents'];this[_0x638b('0xd')]={};this[_0x638b('0xe')]=0x0;this['md5']='';this[_0x638b('0xf')]();this[_0x638b('0x10')]();}ChatQueue['prototype'][_0x638b('0xf')]=function(){var _0x57bb73=this['mapAgentsId'][_0x638b('0x11')];this[_0x638b('0xd')]=_[_0x638b('0x12')](this[_0x638b('0xc')],'id');this[_0x638b('0xd')][_0x638b('0x11')]=_0x57bb73;};ChatQueue['prototype'][_0x638b('0x10')]=function(){this['loggedIn']=0x0;this[_0x638b('0x13')]=0x0;for(var _0x15e821=0x0;_0x15e821<this['Agents']['length'];_0x15e821+=0x1){if(this[_0x638b('0xc')][_0x15e821]['online']){this[_0x638b('0x14')]+=0x1;}if(this['Agents'][_0x15e821][_0x638b('0x15')]){this[_0x638b('0x13')]+=0x1;}}this[_0x638b('0x16')]=this['loggedIn']-this[_0x638b('0x13')];this['available']=this[_0x638b('0x16')]>=0x0?this[_0x638b('0x16')]:0x0;var _0x5324b4={'id':this['id'],'available':this[_0x638b('0x16')],'loggedIn':this[_0x638b('0x14')],'name':this[_0x638b('0x17')],'paused':this[_0x638b('0x13')],'waiting':this[_0x638b('0xe')]};var _0xbd2f10=md5(JSON[_0x638b('0x18')](_0x5324b4));if(this[_0x638b('0x1')]!==_0xbd2f10){this[_0x638b('0x1')]=_0xbd2f10;io['to'](util[_0x638b('0x19')](_0x638b('0x1a'),_0x5324b4['name']))['emit'](_0x638b('0x1b'),_0x5324b4);}};module[_0x638b('0x1c')]=ChatQueue;
\ No newline at end of file
+var _0xd968=['prototype','mapAgentsId','map','loggedIn','paused','length','chatPause','available','stringify','format','chat:queue:%s','emit','chat_queue:save','lodash','md5','util','../../../config/environment','redis','socket.io-emitter','name','timeout','Agents','waiting','updateRouting','updateRealtime'];(function(_0x5a8c3d,_0x255311){var _0x4723d8=function(_0x25d5ab){while(--_0x25d5ab){_0x5a8c3d['push'](_0x5a8c3d['shift']());}};_0x4723d8(++_0x255311);}(_0xd968,0x1e8));var _0x8d96=function(_0x1608f4,_0x169753){_0x1608f4=_0x1608f4-0x0;var _0x5a8d71=_0xd968[_0x1608f4];return _0x5a8d71;};'use strict';var _=require(_0x8d96('0x0'));var md5=require(_0x8d96('0x1'));var util=require(_0x8d96('0x2'));var Redis=require('ioredis');var config=require(_0x8d96('0x3'));config['redis']=_['defaults'](config[_0x8d96('0x4')],{'host':'localhost','port':0x18eb});var io=require(_0x8d96('0x5'))(new Redis(config[_0x8d96('0x4')]));function ChatQueue(_0x33bf0c){this['id']=_0x33bf0c['id']||0x0;this['name']=_0x33bf0c[_0x8d96('0x6')]||'';this[_0x8d96('0x7')]=_0x33bf0c['timeout']||0xa;this['strategy']=_0x33bf0c['strategy']||'beepall';this[_0x8d96('0x8')]=_0x33bf0c[_0x8d96('0x8')];this['mapAgentsId']={};this[_0x8d96('0x9')]=0x0;this[_0x8d96('0x1')]='';this[_0x8d96('0xa')]();this[_0x8d96('0xb')]();}ChatQueue[_0x8d96('0xc')][_0x8d96('0xa')]=function(){var _0x5bf0f0=this['mapAgentsId']['_rr'];this[_0x8d96('0xd')]=_[_0x8d96('0xe')](this[_0x8d96('0x8')],'id');this[_0x8d96('0xd')]['_rr']=_0x5bf0f0;};ChatQueue[_0x8d96('0xc')][_0x8d96('0xb')]=function(){this[_0x8d96('0xf')]=0x0;this[_0x8d96('0x10')]=0x0;for(var _0x56d828=0x0;_0x56d828<this[_0x8d96('0x8')][_0x8d96('0x11')];_0x56d828+=0x1){if(this['Agents'][_0x56d828]['online']){this[_0x8d96('0xf')]+=0x1;}if(this['Agents'][_0x56d828][_0x8d96('0x12')]){this[_0x8d96('0x10')]+=0x1;}}this[_0x8d96('0x13')]=this['loggedIn']-this[_0x8d96('0x10')];this[_0x8d96('0x13')]=this[_0x8d96('0x13')]>=0x0?this['available']:0x0;var _0x5a5f82={'id':this['id'],'available':this[_0x8d96('0x13')],'loggedIn':this[_0x8d96('0xf')],'name':this[_0x8d96('0x6')],'paused':this['paused'],'waiting':this[_0x8d96('0x9')]};var _0x3e4f5f=md5(JSON[_0x8d96('0x14')](_0x5a5f82));if(this['md5']!==_0x3e4f5f){this[_0x8d96('0x1')]=_0x3e4f5f;io['to'](util[_0x8d96('0x15')](_0x8d96('0x16'),_0x5a5f82[_0x8d96('0x6')]))[_0x8d96('0x17')](_0x8d96('0x18'),_0x5a5f82);}};module['exports']=ChatQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c85=['loggedIn','faxPause','available','format','fax:queue:%s','fax_queue:save','exports','lodash','util','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','md5','prototype','_rr','map','paused','length','online'];(function(_0x22dfc9,_0x3c3967){var _0x7769c7=function(_0x2a4d71){while(--_0x2a4d71){_0x22dfc9['push'](_0x22dfc9['shift']());}};_0x7769c7(++_0x3c3967);}(_0x3c85,0x157));var _0x53c8=function(_0x57e008,_0x2af676){_0x57e008=_0x57e008-0x0;var _0xc53edb=_0x3c85[_0x57e008];return _0xc53edb;};'use strict';var _=require(_0x53c8('0x0'));var md5=require('md5');var util=require(_0x53c8('0x1'));var Redis=require('ioredis');var config=require(_0x53c8('0x2'));config['redis']=_[_0x53c8('0x3')](config[_0x53c8('0x4')],{'host':_0x53c8('0x5'),'port':0x18eb});var io=require(_0x53c8('0x6'))(new Redis(config[_0x53c8('0x4')]));function FaxQueue(_0x28e828){this['id']=_0x28e828['id']||0x0;this[_0x53c8('0x7')]=_0x28e828[_0x53c8('0x7')]||'';this['timeout']=_0x28e828[_0x53c8('0x8')]||0xa;this[_0x53c8('0x9')]=_0x28e828['strategy']||_0x53c8('0xa');this[_0x53c8('0xb')]=_0x28e828[_0x53c8('0xb')];this[_0x53c8('0xc')]={};this[_0x53c8('0xd')]=0x0;this[_0x53c8('0xe')]='';this['updateRouting']();this['updateRealtime']();}FaxQueue[_0x53c8('0xf')]['updateRouting']=function(){var _0x35fd48=this[_0x53c8('0xc')][_0x53c8('0x10')];this['mapAgentsId']=_[_0x53c8('0x11')](this['Agents'],'id');this['mapAgentsId'][_0x53c8('0x10')]=_0x35fd48;};FaxQueue[_0x53c8('0xf')]['updateRealtime']=function(){this['loggedIn']=0x0;this[_0x53c8('0x12')]=0x0;for(var _0x53eaea=0x0;_0x53eaea<this['Agents'][_0x53c8('0x13')];_0x53eaea+=0x1){if(this['Agents'][_0x53eaea][_0x53c8('0x14')]){this[_0x53c8('0x15')]+=0x1;}if(this[_0x53c8('0xb')][_0x53eaea][_0x53c8('0x16')]){this[_0x53c8('0x12')]+=0x1;}}this[_0x53c8('0x17')]=this[_0x53c8('0x15')]-this[_0x53c8('0x12')];this['available']=this[_0x53c8('0x17')]>=0x0?this[_0x53c8('0x17')]:0x0;var _0x3f735b={'id':this['id'],'available':this[_0x53c8('0x17')],'loggedIn':this[_0x53c8('0x15')],'name':this[_0x53c8('0x7')],'paused':this['paused'],'waiting':this[_0x53c8('0xd')]};var _0x66e4da=md5(JSON['stringify'](_0x3f735b));if(this['md5']!==_0x66e4da){this[_0x53c8('0xe')]=_0x66e4da;io['to'](util[_0x53c8('0x18')](_0x53c8('0x19'),_0x3f735b['name']))['emit'](_0x53c8('0x1a'),_0x3f735b);}};module[_0x53c8('0x1b')]=FaxQueue;
\ No newline at end of file
+var _0xc2e1=['exports','lodash','md5','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','_rr','map','prototype','loggedIn','paused','length','faxPause','available','stringify','format','fax:queue:%s'];(function(_0x5447fd,_0x52a6b5){var _0x15b28a=function(_0x370d4f){while(--_0x370d4f){_0x5447fd['push'](_0x5447fd['shift']());}};_0x15b28a(++_0x52a6b5);}(_0xc2e1,0xcc));var _0x1c2e=function(_0x4e220c,_0x13756b){_0x4e220c=_0x4e220c-0x0;var _0x4166bf=_0xc2e1[_0x4e220c];return _0x4166bf;};'use strict';var _=require(_0x1c2e('0x0'));var md5=require(_0x1c2e('0x1'));var util=require('util');var Redis=require(_0x1c2e('0x2'));var config=require(_0x1c2e('0x3'));config[_0x1c2e('0x4')]=_[_0x1c2e('0x5')](config[_0x1c2e('0x4')],{'host':_0x1c2e('0x6'),'port':0x18eb});var io=require(_0x1c2e('0x7'))(new Redis(config[_0x1c2e('0x4')]));function FaxQueue(_0x1497ec){this['id']=_0x1497ec['id']||0x0;this[_0x1c2e('0x8')]=_0x1497ec[_0x1c2e('0x8')]||'';this[_0x1c2e('0x9')]=_0x1497ec['timeout']||0xa;this['strategy']=_0x1497ec[_0x1c2e('0xa')]||_0x1c2e('0xb');this[_0x1c2e('0xc')]=_0x1497ec[_0x1c2e('0xc')];this[_0x1c2e('0xd')]={};this[_0x1c2e('0xe')]=0x0;this[_0x1c2e('0x1')]='';this[_0x1c2e('0xf')]();this[_0x1c2e('0x10')]();}FaxQueue['prototype'][_0x1c2e('0xf')]=function(){var _0xefe353=this[_0x1c2e('0xd')][_0x1c2e('0x11')];this['mapAgentsId']=_[_0x1c2e('0x12')](this[_0x1c2e('0xc')],'id');this[_0x1c2e('0xd')]['_rr']=_0xefe353;};FaxQueue[_0x1c2e('0x13')][_0x1c2e('0x10')]=function(){this[_0x1c2e('0x14')]=0x0;this[_0x1c2e('0x15')]=0x0;for(var _0x4f77af=0x0;_0x4f77af<this['Agents'][_0x1c2e('0x16')];_0x4f77af+=0x1){if(this['Agents'][_0x4f77af]['online']){this[_0x1c2e('0x14')]+=0x1;}if(this[_0x1c2e('0xc')][_0x4f77af][_0x1c2e('0x17')]){this['paused']+=0x1;}}this[_0x1c2e('0x18')]=this[_0x1c2e('0x14')]-this['paused'];this[_0x1c2e('0x18')]=this[_0x1c2e('0x18')]>=0x0?this[_0x1c2e('0x18')]:0x0;var _0x50ddbb={'id':this['id'],'available':this['available'],'loggedIn':this[_0x1c2e('0x14')],'name':this['name'],'paused':this[_0x1c2e('0x15')],'waiting':this[_0x1c2e('0xe')]};var _0x7bb516=md5(JSON[_0x1c2e('0x19')](_0x50ddbb));if(this['md5']!==_0x7bb516){this[_0x1c2e('0x1')]=_0x7bb516;io['to'](util[_0x1c2e('0x1a')](_0x1c2e('0x1b'),_0x50ddbb[_0x1c2e('0x8')]))['emit']('fax_queue:save',_0x50ddbb);}};module[_0x1c2e('0x1c')]=FaxQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8913=['name','Intervals'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8913,0xda));var _0x3891=function(_0x526e34,_0x1a35ef){_0x526e34=_0x526e34-0x0;var _0x38c2bc=_0x8913[_0x526e34];return _0x38c2bc;};'use strict';function Interval(_0x19d053){this['id']=_0x19d053['id']||0x0;this[_0x3891('0x0')]=_0x19d053['name']||'';this[_0x3891('0x1')]=_0x19d053['Intervals']||{};}module['exports']=Interval;
\ No newline at end of file
+var _0x0c6f=['exports','name','Intervals'];(function(_0x2d53aa,_0xa66faf){var _0x15a28b=function(_0x519d00){while(--_0x519d00){_0x2d53aa['push'](_0x2d53aa['shift']());}};_0x15a28b(++_0xa66faf);}(_0x0c6f,0x1d2));var _0xf0c6=function(_0xdc8711,_0x23ee4b){_0xdc8711=_0xdc8711-0x0;var _0x51fc74=_0x0c6f[_0xdc8711];return _0x51fc74;};'use strict';function Interval(_0x3a3459){this['id']=_0x3a3459['id']||0x0;this['name']=_0x3a3459[_0xf0c6('0x0')]||'';this[_0xf0c6('0x1')]=_0x3a3459['Intervals']||{};}module[_0xf0c6('0x2')]=Interval;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa98d=['available','stringify','format','mail:queue:%s','exports','md5','util','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','updateRealtime','prototype','updateRouting','_rr','mapAgentsId','map','paused','length','online','loggedIn'];(function(_0x334e69,_0x16b1c5){var _0x4243aa=function(_0x21fb01){while(--_0x21fb01){_0x334e69['push'](_0x334e69['shift']());}};_0x4243aa(++_0x16b1c5);}(_0xa98d,0x1b5));var _0xda98=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xa98d[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var md5=require(_0xda98('0x0'));var util=require(_0xda98('0x1'));var Redis=require(_0xda98('0x2'));var config=require(_0xda98('0x3'));config[_0xda98('0x4')]=_['defaults'](config[_0xda98('0x4')],{'host':_0xda98('0x5'),'port':0x18eb});var io=require(_0xda98('0x6'))(new Redis(config[_0xda98('0x4')]));function MailQueue(_0x44a365){this['id']=_0x44a365['id']||0x0;this[_0xda98('0x7')]=_0x44a365[_0xda98('0x7')]||'';this['timeout']=_0x44a365[_0xda98('0x8')]||0xa;this[_0xda98('0x9')]=_0x44a365[_0xda98('0x9')]||_0xda98('0xa');this[_0xda98('0xb')]=_0x44a365[_0xda98('0xb')];this['mapAgentsId']={};this['waiting']=0x0;this[_0xda98('0x0')]='';this['updateRouting']();this[_0xda98('0xc')]();}MailQueue[_0xda98('0xd')][_0xda98('0xe')]=function(){var _0x4e2f8c=this['mapAgentsId'][_0xda98('0xf')];this[_0xda98('0x10')]=_[_0xda98('0x11')](this['Agents'],'id');this[_0xda98('0x10')][_0xda98('0xf')]=_0x4e2f8c;};MailQueue[_0xda98('0xd')][_0xda98('0xc')]=function(){this['loggedIn']=0x0;this[_0xda98('0x12')]=0x0;for(var _0x5cd15b=0x0;_0x5cd15b<this['Agents'][_0xda98('0x13')];_0x5cd15b+=0x1){if(this['Agents'][_0x5cd15b][_0xda98('0x14')]){this[_0xda98('0x15')]+=0x1;}if(this['Agents'][_0x5cd15b]['mailPause']){this[_0xda98('0x12')]+=0x1;}}this[_0xda98('0x16')]=this[_0xda98('0x15')]-this[_0xda98('0x12')];this[_0xda98('0x16')]=this['available']>=0x0?this[_0xda98('0x16')]:0x0;var _0x3d2684={'id':this['id'],'available':this[_0xda98('0x16')],'loggedIn':this['loggedIn'],'name':this[_0xda98('0x7')],'paused':this['paused'],'waiting':this['waiting']};var _0x415f15=md5(JSON[_0xda98('0x17')](_0x3d2684));if(this[_0xda98('0x0')]!==_0x415f15){this[_0xda98('0x0')]=_0x415f15;io['to'](util[_0xda98('0x18')](_0xda98('0x19'),_0x3d2684[_0xda98('0x7')]))['emit']('mail_queue:save',_0x3d2684);}};module[_0xda98('0x1a')]=MailQueue;
\ No newline at end of file
+var _0xb257=['loggedIn','length','online','available','paused','waiting','stringify','format','mail:queue:%s','emit','mail_queue:save','exports','lodash','md5','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','Agents','mapAgentsId','updateRouting','updateRealtime','prototype','_rr','map'];(function(_0x13840f,_0x28f5ed){var _0x5a0d4b=function(_0x23117f){while(--_0x23117f){_0x13840f['push'](_0x13840f['shift']());}};_0x5a0d4b(++_0x28f5ed);}(_0xb257,0x192));var _0x7b25=function(_0x6cc729,_0x42446f){_0x6cc729=_0x6cc729-0x0;var _0x5b10b6=_0xb257[_0x6cc729];return _0x5b10b6;};'use strict';var _=require(_0x7b25('0x0'));var md5=require(_0x7b25('0x1'));var util=require('util');var Redis=require(_0x7b25('0x2'));var config=require(_0x7b25('0x3'));config[_0x7b25('0x4')]=_[_0x7b25('0x5')](config[_0x7b25('0x4')],{'host':_0x7b25('0x6'),'port':0x18eb});var io=require(_0x7b25('0x7'))(new Redis(config['redis']));function MailQueue(_0x5e5504){this['id']=_0x5e5504['id']||0x0;this[_0x7b25('0x8')]=_0x5e5504[_0x7b25('0x8')]||'';this['timeout']=_0x5e5504[_0x7b25('0x9')]||0xa;this[_0x7b25('0xa')]=_0x5e5504['strategy']||'beepall';this[_0x7b25('0xb')]=_0x5e5504[_0x7b25('0xb')];this[_0x7b25('0xc')]={};this['waiting']=0x0;this[_0x7b25('0x1')]='';this[_0x7b25('0xd')]();this[_0x7b25('0xe')]();}MailQueue[_0x7b25('0xf')]['updateRouting']=function(){var _0xc697ac=this[_0x7b25('0xc')][_0x7b25('0x10')];this[_0x7b25('0xc')]=_[_0x7b25('0x11')](this[_0x7b25('0xb')],'id');this[_0x7b25('0xc')]['_rr']=_0xc697ac;};MailQueue[_0x7b25('0xf')][_0x7b25('0xe')]=function(){this[_0x7b25('0x12')]=0x0;this['paused']=0x0;for(var _0x2a7de2=0x0;_0x2a7de2<this[_0x7b25('0xb')][_0x7b25('0x13')];_0x2a7de2+=0x1){if(this[_0x7b25('0xb')][_0x2a7de2][_0x7b25('0x14')]){this[_0x7b25('0x12')]+=0x1;}if(this[_0x7b25('0xb')][_0x2a7de2]['mailPause']){this['paused']+=0x1;}}this[_0x7b25('0x15')]=this[_0x7b25('0x12')]-this[_0x7b25('0x16')];this['available']=this[_0x7b25('0x15')]>=0x0?this[_0x7b25('0x15')]:0x0;var _0x23a30e={'id':this['id'],'available':this[_0x7b25('0x15')],'loggedIn':this['loggedIn'],'name':this[_0x7b25('0x8')],'paused':this['paused'],'waiting':this[_0x7b25('0x17')]};var _0x375050=md5(JSON[_0x7b25('0x18')](_0x23a30e));if(this[_0x7b25('0x1')]!==_0x375050){this['md5']=_0x375050;io['to'](util[_0x7b25('0x19')](_0x7b25('0x1a'),_0x23a30e[_0x7b25('0x8')]))[_0x7b25('0x1b')](_0x7b25('0x1c'),_0x23a30e);}};module[_0x7b25('0x1d')]=MailQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['available','stringify','openchannel:queue:%s','openchannel_queue:save','exports','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','waiting','updateRouting','prototype','mapAgentsId','map','_rr','updateRealtime','loggedIn','paused','length','online'];(function(_0x25c326,_0x250137){var _0x762452=function(_0x50ce5e){while(--_0x50ce5e){_0x25c326['push'](_0x25c326['shift']());}};_0x762452(++_0x250137);}(_0x1261,0x144));var _0x1126=function(_0x2112d4,_0x3c863c){_0x2112d4=_0x2112d4-0x0;var _0x434972=_0x1261[_0x2112d4];return _0x434972;};'use strict';var _=require('lodash');var md5=require(_0x1126('0x0'));var util=require(_0x1126('0x1'));var Redis=require(_0x1126('0x2'));var config=require(_0x1126('0x3'));config[_0x1126('0x4')]=_[_0x1126('0x5')](config[_0x1126('0x4')],{'host':_0x1126('0x6'),'port':0x18eb});var io=require(_0x1126('0x7'))(new Redis(config[_0x1126('0x4')]));function OpenchannelQueue(_0x5a2189){this['id']=_0x5a2189['id']||0x0;this['name']=_0x5a2189[_0x1126('0x8')]||'';this[_0x1126('0x9')]=_0x5a2189['timeout']||0xa;this[_0x1126('0xa')]=_0x5a2189[_0x1126('0xa')]||_0x1126('0xb');this[_0x1126('0xc')]=_0x5a2189[_0x1126('0xc')];this['mapAgentsId']={};this[_0x1126('0xd')]=0x0;this[_0x1126('0x0')]='';this[_0x1126('0xe')]();this['updateRealtime']();}OpenchannelQueue[_0x1126('0xf')]['updateRouting']=function(){var _0x52ef15=this[_0x1126('0x10')]['_rr'];this[_0x1126('0x10')]=_[_0x1126('0x11')](this[_0x1126('0xc')],'id');this[_0x1126('0x10')][_0x1126('0x12')]=_0x52ef15;};OpenchannelQueue[_0x1126('0xf')][_0x1126('0x13')]=function(){this[_0x1126('0x14')]=0x0;this[_0x1126('0x15')]=0x0;for(var _0x53a8f0=0x0;_0x53a8f0<this['Agents'][_0x1126('0x16')];_0x53a8f0+=0x1){if(this[_0x1126('0xc')][_0x53a8f0][_0x1126('0x17')]){this['loggedIn']+=0x1;}if(this[_0x1126('0xc')][_0x53a8f0]['openchannelPause']){this[_0x1126('0x15')]+=0x1;}}this[_0x1126('0x18')]=this[_0x1126('0x14')]-this['paused'];this[_0x1126('0x18')]=this[_0x1126('0x18')]>=0x0?this['available']:0x0;var _0x4d2b38={'id':this['id'],'available':this[_0x1126('0x18')],'loggedIn':this[_0x1126('0x14')],'name':this['name'],'paused':this['paused'],'waiting':this[_0x1126('0xd')]};var _0x58b109=md5(JSON[_0x1126('0x19')](_0x4d2b38));if(this[_0x1126('0x0')]!==_0x58b109){this[_0x1126('0x0')]=_0x58b109;io['to'](util['format'](_0x1126('0x1a'),_0x4d2b38['name']))['emit'](_0x1126('0x1b'),_0x4d2b38);}};module[_0x1126('0x1c')]=OpenchannelQueue;
\ No newline at end of file
+var _0x7a54=['exports','lodash','md5','util','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','waiting','updateRealtime','mapAgentsId','_rr','map','Agents','prototype','loggedIn','paused','length','openchannelPause','available','stringify','format','openchannel:queue:%s','emit','openchannel_queue:save'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x7a54,0x106));var _0x47a5=function(_0x41049d,_0x35638f){_0x41049d=_0x41049d-0x0;var _0x31ae99=_0x7a54[_0x41049d];return _0x31ae99;};'use strict';var _=require(_0x47a5('0x0'));var md5=require(_0x47a5('0x1'));var util=require(_0x47a5('0x2'));var Redis=require('ioredis');var config=require(_0x47a5('0x3'));config[_0x47a5('0x4')]=_['defaults'](config[_0x47a5('0x4')],{'host':_0x47a5('0x5'),'port':0x18eb});var io=require(_0x47a5('0x6'))(new Redis(config[_0x47a5('0x4')]));function OpenchannelQueue(_0xfdf934){this['id']=_0xfdf934['id']||0x0;this['name']=_0xfdf934[_0x47a5('0x7')]||'';this['timeout']=_0xfdf934[_0x47a5('0x8')]||0xa;this[_0x47a5('0x9')]=_0xfdf934['strategy']||_0x47a5('0xa');this['Agents']=_0xfdf934['Agents'];this['mapAgentsId']={};this[_0x47a5('0xb')]=0x0;this[_0x47a5('0x1')]='';this['updateRouting']();this[_0x47a5('0xc')]();}OpenchannelQueue['prototype']['updateRouting']=function(){var _0x1f47f4=this[_0x47a5('0xd')][_0x47a5('0xe')];this[_0x47a5('0xd')]=_[_0x47a5('0xf')](this[_0x47a5('0x10')],'id');this[_0x47a5('0xd')]['_rr']=_0x1f47f4;};OpenchannelQueue[_0x47a5('0x11')][_0x47a5('0xc')]=function(){this[_0x47a5('0x12')]=0x0;this[_0x47a5('0x13')]=0x0;for(var _0x139f25=0x0;_0x139f25<this[_0x47a5('0x10')][_0x47a5('0x14')];_0x139f25+=0x1){if(this[_0x47a5('0x10')][_0x139f25]['online']){this[_0x47a5('0x12')]+=0x1;}if(this[_0x47a5('0x10')][_0x139f25][_0x47a5('0x15')]){this[_0x47a5('0x13')]+=0x1;}}this[_0x47a5('0x16')]=this['loggedIn']-this['paused'];this[_0x47a5('0x16')]=this['available']>=0x0?this['available']:0x0;var _0x423a81={'id':this['id'],'available':this[_0x47a5('0x16')],'loggedIn':this[_0x47a5('0x12')],'name':this[_0x47a5('0x7')],'paused':this[_0x47a5('0x13')],'waiting':this[_0x47a5('0xb')]};var _0x2763d6=md5(JSON[_0x47a5('0x17')](_0x423a81));if(this[_0x47a5('0x1')]!==_0x2763d6){this['md5']=_0x2763d6;io['to'](util[_0x47a5('0x18')](_0x47a5('0x19'),_0x423a81['name']))[_0x47a5('0x1a')](_0x47a5('0x1b'),_0x423a81);}};module[_0x47a5('0x1c')]=OpenchannelQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e0d=['smsPause','available','waiting','emit','exports','lodash','ioredis','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','md5','updateRealtime','_rr','paused','length','online','loggedIn'];(function(_0x2a3926,_0x3a56d6){var _0x42e888=function(_0x3c9d7b){while(--_0x3c9d7b){_0x2a3926['push'](_0x2a3926['shift']());}};_0x42e888(++_0x3a56d6);}(_0x8e0d,0x82));var _0xd8e0=function(_0x59bcb1,_0x5a4b6c){_0x59bcb1=_0x59bcb1-0x0;var _0x4a737f=_0x8e0d[_0x59bcb1];return _0x4a737f;};'use strict';var _=require(_0xd8e0('0x0'));var md5=require('md5');var util=require('util');var Redis=require(_0xd8e0('0x1'));var config=require(_0xd8e0('0x2'));config['redis']=_[_0xd8e0('0x3')](config[_0xd8e0('0x4')],{'host':_0xd8e0('0x5'),'port':0x18eb});var io=require(_0xd8e0('0x6'))(new Redis(config['redis']));function SmsQueue(_0x5cf790){this['id']=_0x5cf790['id']||0x0;this[_0xd8e0('0x7')]=_0x5cf790[_0xd8e0('0x7')]||'';this[_0xd8e0('0x8')]=_0x5cf790[_0xd8e0('0x8')]||0xa;this['strategy']=_0x5cf790[_0xd8e0('0x9')]||_0xd8e0('0xa');this[_0xd8e0('0xb')]=_0x5cf790[_0xd8e0('0xb')];this[_0xd8e0('0xc')]={};this['waiting']=0x0;this[_0xd8e0('0xd')]='';this['updateRouting']();this[_0xd8e0('0xe')]();}SmsQueue['prototype']['updateRouting']=function(){var _0x6ca388=this[_0xd8e0('0xc')][_0xd8e0('0xf')];this['mapAgentsId']=_['map'](this[_0xd8e0('0xb')],'id');this['mapAgentsId'][_0xd8e0('0xf')]=_0x6ca388;};SmsQueue['prototype']['updateRealtime']=function(){this['loggedIn']=0x0;this[_0xd8e0('0x10')]=0x0;for(var _0x5c983a=0x0;_0x5c983a<this[_0xd8e0('0xb')][_0xd8e0('0x11')];_0x5c983a+=0x1){if(this[_0xd8e0('0xb')][_0x5c983a][_0xd8e0('0x12')]){this[_0xd8e0('0x13')]+=0x1;}if(this[_0xd8e0('0xb')][_0x5c983a][_0xd8e0('0x14')]){this[_0xd8e0('0x10')]+=0x1;}}this[_0xd8e0('0x15')]=this['loggedIn']-this[_0xd8e0('0x10')];this[_0xd8e0('0x15')]=this[_0xd8e0('0x15')]>=0x0?this[_0xd8e0('0x15')]:0x0;var _0x3b28bc={'id':this['id'],'available':this[_0xd8e0('0x15')],'loggedIn':this[_0xd8e0('0x13')],'name':this[_0xd8e0('0x7')],'paused':this['paused'],'waiting':this[_0xd8e0('0x16')]};var _0x4e41d4=md5(JSON['stringify'](_0x3b28bc));if(this[_0xd8e0('0xd')]!==_0x4e41d4){this['md5']=_0x4e41d4;io['to'](util['format']('sms:queue:%s',_0x3b28bc[_0xd8e0('0x7')]))[_0xd8e0('0x17')]('sms_queue:save',_0x3b28bc);}};module[_0xd8e0('0x18')]=SmsQueue;
\ No newline at end of file
+var _0x3e25=['mapAgentsId','waiting','updateRouting','updateRealtime','map','_rr','prototype','loggedIn','paused','length','online','available','format','sms:queue:%s','emit','sms_queue:save','lodash','md5','util','../../../config/environment','defaults','localhost','socket.io-emitter','redis','name','timeout','strategy','beepall','Agents'];(function(_0xada38c,_0x550eb8){var _0x26545b=function(_0x6fe2dc){while(--_0x6fe2dc){_0xada38c['push'](_0xada38c['shift']());}};_0x26545b(++_0x550eb8);}(_0x3e25,0x14f));var _0x53e2=function(_0x30bfa3,_0x51d0b6){_0x30bfa3=_0x30bfa3-0x0;var _0x17660c=_0x3e25[_0x30bfa3];return _0x17660c;};'use strict';var _=require(_0x53e2('0x0'));var md5=require(_0x53e2('0x1'));var util=require(_0x53e2('0x2'));var Redis=require('ioredis');var config=require(_0x53e2('0x3'));config['redis']=_[_0x53e2('0x4')](config['redis'],{'host':_0x53e2('0x5'),'port':0x18eb});var io=require(_0x53e2('0x6'))(new Redis(config[_0x53e2('0x7')]));function SmsQueue(_0x476761){this['id']=_0x476761['id']||0x0;this[_0x53e2('0x8')]=_0x476761[_0x53e2('0x8')]||'';this[_0x53e2('0x9')]=_0x476761[_0x53e2('0x9')]||0xa;this[_0x53e2('0xa')]=_0x476761[_0x53e2('0xa')]||_0x53e2('0xb');this[_0x53e2('0xc')]=_0x476761[_0x53e2('0xc')];this[_0x53e2('0xd')]={};this[_0x53e2('0xe')]=0x0;this[_0x53e2('0x1')]='';this[_0x53e2('0xf')]();this[_0x53e2('0x10')]();}SmsQueue['prototype'][_0x53e2('0xf')]=function(){var _0x5cf96c=this['mapAgentsId']['_rr'];this[_0x53e2('0xd')]=_[_0x53e2('0x11')](this[_0x53e2('0xc')],'id');this[_0x53e2('0xd')][_0x53e2('0x12')]=_0x5cf96c;};SmsQueue[_0x53e2('0x13')][_0x53e2('0x10')]=function(){this[_0x53e2('0x14')]=0x0;this[_0x53e2('0x15')]=0x0;for(var _0x5d16e2=0x0;_0x5d16e2<this[_0x53e2('0xc')][_0x53e2('0x16')];_0x5d16e2+=0x1){if(this[_0x53e2('0xc')][_0x5d16e2][_0x53e2('0x17')]){this[_0x53e2('0x14')]+=0x1;}if(this[_0x53e2('0xc')][_0x5d16e2]['smsPause']){this[_0x53e2('0x15')]+=0x1;}}this['available']=this[_0x53e2('0x14')]-this[_0x53e2('0x15')];this[_0x53e2('0x18')]=this[_0x53e2('0x18')]>=0x0?this['available']:0x0;var _0x4213d0={'id':this['id'],'available':this[_0x53e2('0x18')],'loggedIn':this['loggedIn'],'name':this[_0x53e2('0x8')],'paused':this['paused'],'waiting':this[_0x53e2('0xe')]};var _0x55a1ba=md5(JSON['stringify'](_0x4213d0));if(this[_0x53e2('0x1')]!==_0x55a1ba){this[_0x53e2('0x1')]=_0x55a1ba;io['to'](util[_0x53e2('0x19')](_0x53e2('0x1a'),_0x4213d0['name']))[_0x53e2('0x1b')](_0x53e2('0x1c'),_0x4213d0);}};module['exports']=SmsQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f8f=['whatsappPause','available','stringify','whatsapp:queue:%s','emit','whatsapp_queue:save','lodash','md5','ioredis','../../../config/environment','redis','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','_rr','prototype','loggedIn','paused','length','online'];(function(_0x314bc7,_0x2ce061){var _0x54bae=function(_0x3a36d9){while(--_0x3a36d9){_0x314bc7['push'](_0x314bc7['shift']());}};_0x54bae(++_0x2ce061);}(_0x4f8f,0x8d));var _0xf4f8=function(_0x2bd1ac,_0x113d5f){_0x2bd1ac=_0x2bd1ac-0x0;var _0x216cf2=_0x4f8f[_0x2bd1ac];return _0x216cf2;};'use strict';var _=require(_0xf4f8('0x0'));var md5=require(_0xf4f8('0x1'));var util=require('util');var Redis=require(_0xf4f8('0x2'));var config=require(_0xf4f8('0x3'));config[_0xf4f8('0x4')]=_['defaults'](config[_0xf4f8('0x4')],{'host':_0xf4f8('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xf4f8('0x4')]));function WhatsappQueue(_0x3a9051){this['id']=_0x3a9051['id']||0x0;this[_0xf4f8('0x6')]=_0x3a9051[_0xf4f8('0x6')]||'';this[_0xf4f8('0x7')]=_0x3a9051[_0xf4f8('0x7')]||0xa;this[_0xf4f8('0x8')]=_0x3a9051[_0xf4f8('0x8')]||_0xf4f8('0x9');this[_0xf4f8('0xa')]=_0x3a9051[_0xf4f8('0xa')];this[_0xf4f8('0xb')]={};this[_0xf4f8('0xc')]=0x0;this[_0xf4f8('0x1')]='';this[_0xf4f8('0xd')]();this[_0xf4f8('0xe')]();}WhatsappQueue['prototype'][_0xf4f8('0xd')]=function(){var _0x2d8e9f=this['mapAgentsId'][_0xf4f8('0xf')];this[_0xf4f8('0xb')]=_['map'](this[_0xf4f8('0xa')],'id');this[_0xf4f8('0xb')][_0xf4f8('0xf')]=_0x2d8e9f;};WhatsappQueue[_0xf4f8('0x10')][_0xf4f8('0xe')]=function(){this[_0xf4f8('0x11')]=0x0;this[_0xf4f8('0x12')]=0x0;for(var _0x389d88=0x0;_0x389d88<this[_0xf4f8('0xa')][_0xf4f8('0x13')];_0x389d88+=0x1){if(this['Agents'][_0x389d88][_0xf4f8('0x14')]){this[_0xf4f8('0x11')]+=0x1;}if(this['Agents'][_0x389d88][_0xf4f8('0x15')]){this[_0xf4f8('0x12')]+=0x1;}}this[_0xf4f8('0x16')]=this['loggedIn']-this[_0xf4f8('0x12')];this[_0xf4f8('0x16')]=this['available']>=0x0?this[_0xf4f8('0x16')]:0x0;var _0x3028fc={'id':this['id'],'available':this[_0xf4f8('0x16')],'loggedIn':this[_0xf4f8('0x11')],'name':this[_0xf4f8('0x6')],'paused':this[_0xf4f8('0x12')],'waiting':this[_0xf4f8('0xc')]};var _0x1c0b2f=md5(JSON[_0xf4f8('0x17')](_0x3028fc));if(this[_0xf4f8('0x1')]!==_0x1c0b2f){this[_0xf4f8('0x1')]=_0x1c0b2f;io['to'](util['format'](_0xf4f8('0x18'),_0x3028fc[_0xf4f8('0x6')]))[_0xf4f8('0x19')](_0xf4f8('0x1a'),_0x3028fc);}};module['exports']=WhatsappQueue;
\ No newline at end of file
+var _0xe3fd=['redis','localhost','socket.io-emitter','name','timeout','strategy','Agents','mapAgentsId','waiting','updateRealtime','prototype','updateRouting','_rr','loggedIn','paused','length','online','available','stringify','lodash','md5','util','ioredis','../../../config/environment'];(function(_0x2e2568,_0x3f4818){var _0x58c455=function(_0x272a58){while(--_0x272a58){_0x2e2568['push'](_0x2e2568['shift']());}};_0x58c455(++_0x3f4818);}(_0xe3fd,0x8b));var _0xde3f=function(_0x4c0e74,_0x2b65e0){_0x4c0e74=_0x4c0e74-0x0;var _0x28e267=_0xe3fd[_0x4c0e74];return _0x28e267;};'use strict';var _=require(_0xde3f('0x0'));var md5=require(_0xde3f('0x1'));var util=require(_0xde3f('0x2'));var Redis=require(_0xde3f('0x3'));var config=require(_0xde3f('0x4'));config[_0xde3f('0x5')]=_['defaults'](config[_0xde3f('0x5')],{'host':_0xde3f('0x6'),'port':0x18eb});var io=require(_0xde3f('0x7'))(new Redis(config[_0xde3f('0x5')]));function WhatsappQueue(_0x192703){this['id']=_0x192703['id']||0x0;this[_0xde3f('0x8')]=_0x192703['name']||'';this[_0xde3f('0x9')]=_0x192703[_0xde3f('0x9')]||0xa;this[_0xde3f('0xa')]=_0x192703[_0xde3f('0xa')]||'beepall';this['Agents']=_0x192703[_0xde3f('0xb')];this[_0xde3f('0xc')]={};this[_0xde3f('0xd')]=0x0;this[_0xde3f('0x1')]='';this['updateRouting']();this[_0xde3f('0xe')]();}WhatsappQueue[_0xde3f('0xf')][_0xde3f('0x10')]=function(){var _0x9ee58d=this[_0xde3f('0xc')][_0xde3f('0x11')];this[_0xde3f('0xc')]=_['map'](this['Agents'],'id');this['mapAgentsId'][_0xde3f('0x11')]=_0x9ee58d;};WhatsappQueue[_0xde3f('0xf')][_0xde3f('0xe')]=function(){this[_0xde3f('0x12')]=0x0;this[_0xde3f('0x13')]=0x0;for(var _0x131676=0x0;_0x131676<this[_0xde3f('0xb')][_0xde3f('0x14')];_0x131676+=0x1){if(this[_0xde3f('0xb')][_0x131676][_0xde3f('0x15')]){this[_0xde3f('0x12')]+=0x1;}if(this['Agents'][_0x131676]['whatsappPause']){this[_0xde3f('0x13')]+=0x1;}}this['available']=this[_0xde3f('0x12')]-this['paused'];this['available']=this[_0xde3f('0x16')]>=0x0?this['available']:0x0;var _0x472a51={'id':this['id'],'available':this[_0xde3f('0x16')],'loggedIn':this['loggedIn'],'name':this[_0xde3f('0x8')],'paused':this[_0xde3f('0x13')],'waiting':this['waiting']};var _0x310799=md5(JSON[_0xde3f('0x17')](_0x472a51));if(this[_0xde3f('0x1')]!==_0x310799){this[_0xde3f('0x1')]=_0x310799;io['to'](util['format']('whatsapp:queue:%s',_0x472a51[_0xde3f('0x8')]))['emit']('whatsapp_queue:save',_0x472a51);}};module['exports']=WhatsappQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','mapKeys','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','isUndefined','initIntervals','length','initOpenchannelQueues','updateRealtime','initChatQueues','chatQueues','initSmsQueues','updateRouting','initMailQueues','initFaxQueues','initWhatsappQueues','exports','bluebird','lodash','moment','../model/agent','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','smsQueues','mailQueues'];(function(_0x25f105,_0x5c17c1){var _0x7e4d4=function(_0x2fa21b){while(--_0x2fa21b){_0x25f105['push'](_0x25f105['shift']());}};_0x7e4d4(++_0x5c17c1);}(_0xb10b,0x12a));var _0xbb10=function(_0x21ba22,_0x38908f){_0x21ba22=_0x21ba22-0x0;var _0x997b34=_0xb10b[_0x21ba22];return _0x997b34;};'use strict';var BPromise=require(_0xbb10('0x0'));var util=require('util');var _=require(_0xbb10('0x1'));var moment=require(_0xbb10('0x2'));var Agent=require(_0xbb10('0x3'));var Interval=require('../model/interval');var OpenchannelQueue=require(_0xbb10('0x4'));var ChatQueue=require(_0xbb10('0x5'));var SmsQueue=require(_0xbb10('0x6'));var MailQueue=require(_0xbb10('0x7'));var FaxQueue=require(_0xbb10('0x8'));var WhatsappQueue=require(_0xbb10('0x9'));var Realtime=function(){this['agents']={};this[_0xbb10('0xa')]={};this[_0xbb10('0xb')]={};this['chatQueues']={};this[_0xbb10('0xc')]={};this[_0xbb10('0xd')]={};this[_0xbb10('0xe')]={};this[_0xbb10('0xf')]={};this[_0xbb10('0x10')]={};this[_0xbb10('0x11')]={};this[_0xbb10('0x12')]={};this[_0xbb10('0x13')]={};this['faxQueuesWaitingInteractions']={};this['whatsappQueuesWaitingInteractions']={};};function freeIsNotKey(_0x20bd61,_0x118a74,_0xce64f3){var _0x5e136d=_[_0xbb10('0x14')](_0x20bd61,function(_0x5be7e0,_0x44fb19){return _0x5be7e0[_0xce64f3];});for(var _0x916a32 in _0x118a74){if(_0x118a74[_0xbb10('0x15')](_0x916a32)){if(!_0x5e136d[_0x916a32]){delete _0x118a74[_0x916a32];}}}}Realtime[_0xbb10('0x16')][_0xbb10('0x17')]=function(_0x147230,_0x58a612){for(var _0x26e021 in _0x58a612){if(_0x147230[_0xbb10('0x15')](_0x26e021)){_0x147230[_0x26e021]=_0x58a612[_0x26e021];}}};Realtime[_0xbb10('0x16')][_0xbb10('0x18')]=function(){var _0x3df17b=this;return function(_0x2f2ebf){if(_0x2f2ebf){freeIsNotKey(_0x2f2ebf,_0x3df17b[_0xbb10('0x19')],'id');for(var _0x36b5e8=0x0,_0x3e26f4={},_0x2b184e={};_0x36b5e8<_0x2f2ebf['length'];_0x36b5e8+=0x1){_0x3e26f4=_0x2f2ebf[_0x36b5e8];if(_[_0xbb10('0x1a')](_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']])){_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']]=new Agent(_0x3e26f4);}else{_0x3df17b[_0xbb10('0x17')](_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']],_0x3e26f4);}}}return _0x3df17b[_0xbb10('0x19')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x1b')]=function(){var _0xbf2906=this;return function(_0xe1c665){if(_0xe1c665){freeIsNotKey(_0xe1c665,_0xbf2906['intervals'],'id');for(var _0x5ff0cf=0x0,_0x19f48d={},_0x388fab={};_0x5ff0cf<_0xe1c665[_0xbb10('0x1c')];_0x5ff0cf+=0x1){_0x19f48d=_0xe1c665[_0x5ff0cf];if(_[_0xbb10('0x1a')](_0xbf2906[_0xbb10('0xa')][_0x19f48d['id']])){_0xbf2906['intervals'][_0x19f48d['id']]=new Interval(_0x19f48d);}else{_0xbf2906[_0xbb10('0x17')](_0xbf2906[_0xbb10('0xa')][_0x19f48d['id']],_0x19f48d);}}}return _0xbf2906['intervals'];};};Realtime['prototype'][_0xbb10('0x1d')]=function(){var _0x311abe=this;return function(_0x2e911d){if(_0x2e911d){freeIsNotKey(_0x2e911d,_0x311abe[_0xbb10('0xb')],'id');for(var _0x445761=0x0,_0x1824b7={},_0x407cb4={};_0x445761<_0x2e911d[_0xbb10('0x1c')];_0x445761+=0x1){_0x1824b7=_0x2e911d[_0x445761];if(_[_0xbb10('0x1a')](_0x311abe[_0xbb10('0xb')][_0x1824b7['id']])){_0x311abe[_0xbb10('0xb')][_0x1824b7['id']]=new OpenchannelQueue(_0x1824b7);}else{_0x311abe[_0xbb10('0x17')](_0x311abe['openchannelQueues'][_0x1824b7['id']],_0x1824b7);}_0x311abe['openchannelQueues'][_0x1824b7['id']]['updateRouting']();_0x311abe[_0xbb10('0xb')][_0x1824b7['id']][_0xbb10('0x1e')]();}}return _0x311abe[_0xbb10('0xb')];};};Realtime['prototype'][_0xbb10('0x1f')]=function(){var _0x24d586=this;return function(_0x6ed43b){if(_0x6ed43b){freeIsNotKey(_0x6ed43b,_0x24d586[_0xbb10('0x20')],'id');for(var _0x1acce9=0x0,_0x20d946={},_0x2a0e8b={};_0x1acce9<_0x6ed43b['length'];_0x1acce9+=0x1){_0x20d946=_0x6ed43b[_0x1acce9];if(_[_0xbb10('0x1a')](_0x24d586[_0xbb10('0x20')][_0x20d946['id']])){_0x24d586[_0xbb10('0x20')][_0x20d946['id']]=new ChatQueue(_0x20d946);}else{_0x24d586[_0xbb10('0x17')](_0x24d586[_0xbb10('0x20')][_0x20d946['id']],_0x20d946);}_0x24d586[_0xbb10('0x20')][_0x20d946['id']]['updateRouting']();_0x24d586[_0xbb10('0x20')][_0x20d946['id']]['updateRealtime']();}}return _0x24d586[_0xbb10('0x20')];};};Realtime['prototype'][_0xbb10('0x21')]=function(){var _0x1dcc9c=this;return function(_0x1b59f9){if(_0x1b59f9){freeIsNotKey(_0x1b59f9,_0x1dcc9c['smsQueues'],'id');for(var _0x518d47=0x0,_0x4c3744={},_0x34f65e={};_0x518d47<_0x1b59f9['length'];_0x518d47+=0x1){_0x4c3744=_0x1b59f9[_0x518d47];if(_[_0xbb10('0x1a')](_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']])){_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']]=new SmsQueue(_0x4c3744);}else{_0x1dcc9c[_0xbb10('0x17')](_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']],_0x4c3744);}_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']][_0xbb10('0x22')]();_0x1dcc9c['smsQueues'][_0x4c3744['id']][_0xbb10('0x1e')]();}}return _0x1dcc9c[_0xbb10('0xc')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x23')]=function(){var _0xfb2c5e=this;return function(_0x9de708){if(_0x9de708){freeIsNotKey(_0x9de708,_0xfb2c5e[_0xbb10('0xd')],'id');for(var _0x10202c=0x0,_0x3c8d7d={},_0x56943c={};_0x10202c<_0x9de708[_0xbb10('0x1c')];_0x10202c+=0x1){_0x3c8d7d=_0x9de708[_0x10202c];if(_[_0xbb10('0x1a')](_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']])){_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']]=new MailQueue(_0x3c8d7d);}else{_0xfb2c5e['mergeFromDatabase'](_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']],_0x3c8d7d);}_0xfb2c5e['mailQueues'][_0x3c8d7d['id']]['updateRouting']();_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']][_0xbb10('0x1e')]();}}return _0xfb2c5e[_0xbb10('0xd')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x24')]=function(){var _0x29d11a=this;return function(_0x547062){if(_0x547062){freeIsNotKey(_0x547062,_0x29d11a[_0xbb10('0xe')],'id');for(var _0x25d72f=0x0,_0x52de31={},_0x5e3fbd={};_0x25d72f<_0x547062['length'];_0x25d72f+=0x1){_0x52de31=_0x547062[_0x25d72f];if(_[_0xbb10('0x1a')](_0x29d11a[_0xbb10('0xe')][_0x52de31['id']])){_0x29d11a[_0xbb10('0xe')][_0x52de31['id']]=new FaxQueue(_0x52de31);}else{_0x29d11a['mergeFromDatabase'](_0x29d11a[_0xbb10('0xe')][_0x52de31['id']],_0x52de31);}_0x29d11a[_0xbb10('0xe')][_0x52de31['id']][_0xbb10('0x22')]();_0x29d11a['faxQueues'][_0x52de31['id']][_0xbb10('0x1e')]();}}return _0x29d11a[_0xbb10('0xe')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x25')]=function(){var _0x4f1cdd=this;return function(_0xd238e9){if(_0xd238e9){freeIsNotKey(_0xd238e9,_0x4f1cdd[_0xbb10('0xf')],'id');for(var _0x5835fd=0x0,_0xe2040f={},_0x2e3214={};_0x5835fd<_0xd238e9[_0xbb10('0x1c')];_0x5835fd+=0x1){_0xe2040f=_0xd238e9[_0x5835fd];if(_[_0xbb10('0x1a')](_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']])){_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']]=new WhatsappQueue(_0xe2040f);}else{_0x4f1cdd['mergeFromDatabase'](_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']],_0xe2040f);}_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']][_0xbb10('0x22')]();_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']]['updateRealtime']();}}return _0x4f1cdd[_0xbb10('0xf')];};};module[_0xbb10('0x26')]=Realtime;
\ No newline at end of file
+var _0xa9e0=['isUndefined','initIntervals','updateRealtime','updateRouting','initSmsQueues','smsQueues','initMailQueues','mailQueues','initWhatsappQueues','whatsappQueues','exports','bluebird','util','lodash','../model/interval','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','chatQueues','faxQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa9e0,0x123));var _0x0a9e=function(_0x387777,_0x356171){_0x387777=_0x387777-0x0;var _0x3f84c0=_0xa9e0[_0x387777];return _0x3f84c0;};'use strict';var BPromise=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Interval=require(_0x0a9e('0x3'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require(_0x0a9e('0x4'));var SmsQueue=require(_0x0a9e('0x5'));var MailQueue=require(_0x0a9e('0x6'));var FaxQueue=require(_0x0a9e('0x7'));var WhatsappQueue=require(_0x0a9e('0x8'));var Realtime=function(){this['agents']={};this[_0x0a9e('0x9')]={};this[_0x0a9e('0xa')]={};this[_0x0a9e('0xb')]={};this['smsQueues']={};this['mailQueues']={};this[_0x0a9e('0xc')]={};this['whatsappQueues']={};this['chatQueuesWaitingInteractions']={};this[_0x0a9e('0xd')]={};this[_0x0a9e('0xe')]={};this[_0x0a9e('0xf')]={};this[_0x0a9e('0x10')]={};this[_0x0a9e('0x11')]={};};function freeIsNotKey(_0xbd1168,_0x4a4c56,_0x50dfb2){var _0x527cdd=_['mapKeys'](_0xbd1168,function(_0x273d4d,_0x36471c){return _0x273d4d[_0x50dfb2];});for(var _0xd5b662 in _0x4a4c56){if(_0x4a4c56[_0x0a9e('0x12')](_0xd5b662)){if(!_0x527cdd[_0xd5b662]){delete _0x4a4c56[_0xd5b662];}}}}Realtime[_0x0a9e('0x13')][_0x0a9e('0x14')]=function(_0x5db4b0,_0x4283ce){for(var _0x239b12 in _0x4283ce){if(_0x5db4b0[_0x0a9e('0x12')](_0x239b12)){_0x5db4b0[_0x239b12]=_0x4283ce[_0x239b12];}}};Realtime[_0x0a9e('0x13')][_0x0a9e('0x15')]=function(){var _0x4d5611=this;return function(_0x52a03d){if(_0x52a03d){freeIsNotKey(_0x52a03d,_0x4d5611[_0x0a9e('0x16')],'id');for(var _0x5d0880=0x0,_0x1985b6={},_0x519dfd={};_0x5d0880<_0x52a03d[_0x0a9e('0x17')];_0x5d0880+=0x1){_0x1985b6=_0x52a03d[_0x5d0880];if(_[_0x0a9e('0x18')](_0x4d5611['agents'][_0x1985b6['id']])){_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']]=new Agent(_0x1985b6);}else{_0x4d5611['mergeFromDatabase'](_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']],_0x1985b6);}}}return _0x4d5611[_0x0a9e('0x16')];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x19')]=function(){var _0x31b1ca=this;return function(_0x2eb11f){if(_0x2eb11f){freeIsNotKey(_0x2eb11f,_0x31b1ca[_0x0a9e('0x9')],'id');for(var _0x20559e=0x0,_0x1314ae={},_0x112016={};_0x20559e<_0x2eb11f[_0x0a9e('0x17')];_0x20559e+=0x1){_0x1314ae=_0x2eb11f[_0x20559e];if(_[_0x0a9e('0x18')](_0x31b1ca['intervals'][_0x1314ae['id']])){_0x31b1ca[_0x0a9e('0x9')][_0x1314ae['id']]=new Interval(_0x1314ae);}else{_0x31b1ca[_0x0a9e('0x14')](_0x31b1ca['intervals'][_0x1314ae['id']],_0x1314ae);}}}return _0x31b1ca[_0x0a9e('0x9')];};};Realtime['prototype']['initOpenchannelQueues']=function(){var _0x3a02e1=this;return function(_0x432e56){if(_0x432e56){freeIsNotKey(_0x432e56,_0x3a02e1[_0x0a9e('0xa')],'id');for(var _0x30bae6=0x0,_0x4abc77={},_0xfb6e48={};_0x30bae6<_0x432e56[_0x0a9e('0x17')];_0x30bae6+=0x1){_0x4abc77=_0x432e56[_0x30bae6];if(_[_0x0a9e('0x18')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']])){_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']]=new OpenchannelQueue(_0x4abc77);}else{_0x3a02e1[_0x0a9e('0x14')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']],_0x4abc77);}_0x3a02e1['openchannelQueues'][_0x4abc77['id']]['updateRouting']();_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']][_0x0a9e('0x1a')]();}}return _0x3a02e1[_0x0a9e('0xa')];};};Realtime[_0x0a9e('0x13')]['initChatQueues']=function(){var _0x384319=this;return function(_0x479bc4){if(_0x479bc4){freeIsNotKey(_0x479bc4,_0x384319[_0x0a9e('0xb')],'id');for(var _0x5bfb33=0x0,_0x1dc186={},_0x34dc65={};_0x5bfb33<_0x479bc4[_0x0a9e('0x17')];_0x5bfb33+=0x1){_0x1dc186=_0x479bc4[_0x5bfb33];if(_[_0x0a9e('0x18')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']])){_0x384319[_0x0a9e('0xb')][_0x1dc186['id']]=new ChatQueue(_0x1dc186);}else{_0x384319[_0x0a9e('0x14')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']],_0x1dc186);}_0x384319['chatQueues'][_0x1dc186['id']][_0x0a9e('0x1b')]();_0x384319[_0x0a9e('0xb')][_0x1dc186['id']][_0x0a9e('0x1a')]();}}return _0x384319[_0x0a9e('0xb')];};};Realtime['prototype'][_0x0a9e('0x1c')]=function(){var _0x40e7a3=this;return function(_0x1843b2){if(_0x1843b2){freeIsNotKey(_0x1843b2,_0x40e7a3[_0x0a9e('0x1d')],'id');for(var _0x58b06f=0x0,_0x563b45={},_0x296f41={};_0x58b06f<_0x1843b2[_0x0a9e('0x17')];_0x58b06f+=0x1){_0x563b45=_0x1843b2[_0x58b06f];if(_[_0x0a9e('0x18')](_0x40e7a3['smsQueues'][_0x563b45['id']])){_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']]=new SmsQueue(_0x563b45);}else{_0x40e7a3['mergeFromDatabase'](_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']],_0x563b45);}_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1b')]();_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1a')]();}}return _0x40e7a3['smsQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x1e')]=function(){var _0x40cb85=this;return function(_0x2da5c0){if(_0x2da5c0){freeIsNotKey(_0x2da5c0,_0x40cb85[_0x0a9e('0x1f')],'id');for(var _0x409319=0x0,_0x332d35={},_0x39e565={};_0x409319<_0x2da5c0['length'];_0x409319+=0x1){_0x332d35=_0x2da5c0[_0x409319];if(_[_0x0a9e('0x18')](_0x40cb85['mailQueues'][_0x332d35['id']])){_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]=new MailQueue(_0x332d35);}else{_0x40cb85[_0x0a9e('0x14')](_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']],_0x332d35);}_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]['updateRouting']();_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']][_0x0a9e('0x1a')]();}}return _0x40cb85[_0x0a9e('0x1f')];};};Realtime[_0x0a9e('0x13')]['initFaxQueues']=function(){var _0x54135e=this;return function(_0x1e8694){if(_0x1e8694){freeIsNotKey(_0x1e8694,_0x54135e['faxQueues'],'id');for(var _0x24936a=0x0,_0x3d9717={},_0x381c37={};_0x24936a<_0x1e8694[_0x0a9e('0x17')];_0x24936a+=0x1){_0x3d9717=_0x1e8694[_0x24936a];if(_['isUndefined'](_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']])){_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]=new FaxQueue(_0x3d9717);}else{_0x54135e[_0x0a9e('0x14')](_0x54135e['faxQueues'][_0x3d9717['id']],_0x3d9717);}_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']][_0x0a9e('0x1b')]();_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]['updateRealtime']();}}return _0x54135e['faxQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x20')]=function(){var _0x5adda1=this;return function(_0x2b814e){if(_0x2b814e){freeIsNotKey(_0x2b814e,_0x5adda1[_0x0a9e('0x21')],'id');for(var _0x2e1b3a=0x0,_0x148f55={},_0x4b38d9={};_0x2e1b3a<_0x2b814e['length'];_0x2e1b3a+=0x1){_0x148f55=_0x2b814e[_0x2e1b3a];if(_[_0x0a9e('0x18')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']])){_0x5adda1['whatsappQueues'][_0x148f55['id']]=new WhatsappQueue(_0x148f55);}else{_0x5adda1[_0x0a9e('0x14')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']],_0x148f55);}_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']]['updateRouting']();_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']][_0x0a9e('0x1a')]();}}return _0x5adda1[_0x0a9e('0x21')];};};module[_0x0a9e('0x22')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe61c=['AddTagsToChatInteraction','addTagsToChatInteraction','../client','update','Request','UpdateChatInteraction','updateChatInteraction','addTags'];(function(_0x2cacef,_0xba1573){var _0x289ba6=function(_0x4ac8b9){while(--_0x4ac8b9){_0x2cacef['push'](_0x2cacef['shift']());}};_0x289ba6(++_0xba1573);}(_0xe61c,0x1da));var _0xce61=function(_0x4c9380,_0x2fefc0){_0x4c9380=_0x4c9380-0x0;var _0x49a523=_0xe61c[_0x4c9380];return _0x49a523;};'use strict';var client=require(_0xce61('0x0'));exports[_0xce61('0x1')]=function(_0x4163ce,_0x11c390){return client[_0xce61('0x2')](_0xce61('0x3'),{'body':_0x11c390,'options':{'where':{'id':_0x4163ce}},'log':_0xce61('0x4')});};exports[_0xce61('0x5')]=function(_0xd39b6,_0x191456){return client[_0xce61('0x2')](_0xce61('0x6'),{'body':_0x191456,'options':{'where':{'id':_0xd39b6}},'log':_0xce61('0x7')});};
\ No newline at end of file
+var _0x7e36=['AddTagsToChatInteraction','addTagsToChatInteraction','../client','update','Request','UpdateChatInteraction','updateChatInteraction','addTags'];(function(_0x82140,_0x3a9d87){var _0x2b15a6=function(_0x2b565e){while(--_0x2b565e){_0x82140['push'](_0x82140['shift']());}};_0x2b15a6(++_0x3a9d87);}(_0x7e36,0x17a));var _0x67e3=function(_0x499430,_0x344a19){_0x499430=_0x499430-0x0;var _0x1bf7e9=_0x7e36[_0x499430];return _0x1bf7e9;};'use strict';var client=require(_0x67e3('0x0'));exports[_0x67e3('0x1')]=function(_0x15db30,_0x5bdbf1){return client[_0x67e3('0x2')](_0x67e3('0x3'),{'body':_0x5bdbf1,'options':{'where':{'id':_0x15db30}},'log':_0x67e3('0x4')});};exports[_0x67e3('0x5')]=function(_0x10e00e,_0x27e357){return client[_0x67e3('0x2')](_0x67e3('0x6'),{'body':_0x27e357,'options':{'where':{'id':_0x10e00e}},'log':_0x67e3('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf569=['create','Request','CreateChatMessage','createChatMessage','../client'];(function(_0x15394b,_0x31580f){var _0x20cd98=function(_0x525e0c){while(--_0x525e0c){_0x15394b['push'](_0x15394b['shift']());}};_0x20cd98(++_0x31580f);}(_0xf569,0xf9));var _0x9f56=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0xf569[_0x3511d3];return _0x5d6321;};'use strict';var client=require(_0x9f56('0x0'));exports[_0x9f56('0x1')]=function(_0x27e481){return client[_0x9f56('0x2')](_0x9f56('0x3'),{'body':_0x27e481,'log':_0x9f56('0x4')});};
\ No newline at end of file
+var _0x4eb4=['create','Request','CreateChatMessage','createChatMessage'];(function(_0x79ca7d,_0x3e373f){var _0x3ff258=function(_0x24a3ee){while(--_0x24a3ee){_0x79ca7d['push'](_0x79ca7d['shift']());}};_0x3ff258(++_0x3e373f);}(_0x4eb4,0x170));var _0x44eb=function(_0x52e363,_0x48062a){_0x52e363=_0x52e363-0x0;var _0x3fc2b5=_0x4eb4[_0x52e363];return _0x3fc2b5;};'use strict';var client=require('../client');exports[_0x44eb('0x0')]=function(_0x530dcd){return client[_0x44eb('0x1')](_0x44eb('0x2'),{'body':_0x530dcd,'log':_0x44eb('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe107=['name','strategy','online','chatPause','../client','Request','GetChatQueue'];(function(_0x2c0ee2,_0x49875c){var _0x28012f=function(_0x23cb8f){while(--_0x23cb8f){_0x2c0ee2['push'](_0x2c0ee2['shift']());}};_0x28012f(++_0x49875c);}(_0xe107,0xb3));var _0x7e10=function(_0x59279,_0x315002){_0x59279=_0x59279-0x0;var _0xbefc2=_0xe107[_0x59279];return _0xbefc2;};'use strict';var client=require(_0x7e10('0x0'));exports['getChatQueues']=function(){return function(){return client[_0x7e10('0x1')](_0x7e10('0x2'),{'options':{'raw':![],'attributes':['id',_0x7e10('0x3'),'timeout',_0x7e10('0x4')],'include':[{'model':'User','as':'Agents','attributes':['id',_0x7e10('0x3'),_0x7e10('0x5'),_0x7e10('0x6')]}]},'log':'getChatQueues'});};};
\ No newline at end of file
+var _0x6b8f=['name','online','chatPause','getChatQueues','GetChatQueue','strategy','User'];(function(_0x47a8c0,_0x4d5931){var _0x551fa1=function(_0x45ac5a){while(--_0x45ac5a){_0x47a8c0['push'](_0x47a8c0['shift']());}};_0x551fa1(++_0x4d5931);}(_0x6b8f,0x1bc));var _0xf6b8=function(_0x3fa703,_0x1f5810){_0x3fa703=_0x3fa703-0x0;var _0x3f1b00=_0x6b8f[_0x3fa703];return _0x3f1b00;};'use strict';var client=require('../client');exports[_0xf6b8('0x0')]=function(){return function(){return client['Request'](_0xf6b8('0x1'),{'options':{'raw':![],'attributes':['id','name','timeout',_0xf6b8('0x2')],'include':[{'model':_0xf6b8('0x3'),'as':'Agents','attributes':['id',_0xf6b8('0x4'),_0xf6b8('0x5'),_0xf6b8('0x6')]}]},'log':'getChatQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['Request','CreateChatQueueReport','update','UpdateChatQueueReport'];(function(_0x54fa04,_0x2021fb){var _0x5bb087=function(_0x1e6f22){while(--_0x1e6f22){_0x54fa04['push'](_0x54fa04['shift']());}};_0x5bb087(++_0x2021fb);}(_0x9c44,0x178));var _0x49c4=function(_0x2e4aa2,_0x11956a){_0x2e4aa2=_0x2e4aa2-0x0;var _0x5e6092=_0x9c44[_0x2e4aa2];return _0x5e6092;};'use strict';var client=require('../client');exports['create']=function(_0x1ffbbf){return client[_0x49c4('0x0')](_0x49c4('0x1'),{'body':_0x1ffbbf,'log':_0x49c4('0x1')});};exports[_0x49c4('0x2')]=function(_0x2ad237,_0x4e0313){return client['Request'](_0x49c4('0x3'),{'body':_0x4e0313,'options':{'where':{'uniqueid':_0x2ad237},'order':[['id','DESC']],'limit':0x1},'log':_0x49c4('0x3')});};
\ No newline at end of file
+var _0xdb13=['CreateChatQueueReport','update','UpdateChatQueueReport','DESC','create','Request'];(function(_0xd68842,_0xdb7edb){var _0x4e391f=function(_0x7a3738){while(--_0x7a3738){_0xd68842['push'](_0xd68842['shift']());}};_0x4e391f(++_0xdb7edb);}(_0xdb13,0x10c));var _0x3db1=function(_0x5a9c44,_0x5ef144){_0x5a9c44=_0x5a9c44-0x0;var _0x50b5a0=_0xdb13[_0x5a9c44];return _0x50b5a0;};'use strict';var client=require('../client');exports[_0x3db1('0x0')]=function(_0x366725){return client[_0x3db1('0x1')](_0x3db1('0x2'),{'body':_0x366725,'log':_0x3db1('0x2')});};exports[_0x3db1('0x3')]=function(_0x581a73,_0x3352e3){return client[_0x3db1('0x1')](_0x3db1('0x4'),{'body':_0x3352e3,'options':{'where':{'uniqueid':_0x581a73},'order':[['id',_0x3db1('0x5')]],'limit':0x1},'log':_0x3db1('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['Request','UpdateFaxInteraction','addTags','AddTagsToFaxInteraction','../client','update'];(function(_0x65d12e,_0x4b0a30){var _0x4274e0=function(_0x121624){while(--_0x121624){_0x65d12e['push'](_0x65d12e['shift']());}};_0x4274e0(++_0x4b0a30);}(_0x7a54,0x106));var _0x47a5=function(_0x1234fb,_0x418de8){_0x1234fb=_0x1234fb-0x0;var _0x27e19c=_0x7a54[_0x1234fb];return _0x27e19c;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(_0x44b31e,_0x58157c){return client[_0x47a5('0x2')](_0x47a5('0x3'),{'body':_0x58157c,'options':{'where':{'id':_0x44b31e}},'log':'updateFaxInteraction'});};exports[_0x47a5('0x4')]=function(_0x11bf85,_0x2a1a7e){return client[_0x47a5('0x2')](_0x47a5('0x5'),{'body':_0x2a1a7e,'options':{'where':{'id':_0x11bf85}},'log':'addTagsToFaxInteraction'});};
\ No newline at end of file
+var _0x7a54=['Request','UpdateFaxInteraction','addTags','AddTagsToFaxInteraction','../client','update'];(function(_0x4e1d03,_0x786f3a){var _0x362d4b=function(_0x1924d2){while(--_0x1924d2){_0x4e1d03['push'](_0x4e1d03['shift']());}};_0x362d4b(++_0x786f3a);}(_0x7a54,0x106));var _0x47a5=function(_0x4ce4f3,_0x2a6b9f){_0x4ce4f3=_0x4ce4f3-0x0;var _0xddcdde=_0x7a54[_0x4ce4f3];return _0xddcdde;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(_0x44b31e,_0x58157c){return client[_0x47a5('0x2')](_0x47a5('0x3'),{'body':_0x58157c,'options':{'where':{'id':_0x44b31e}},'log':'updateFaxInteraction'});};exports[_0x47a5('0x4')]=function(_0x11bf85,_0x2a1a7e){return client[_0x47a5('0x2')](_0x47a5('0x5'),{'body':_0x2a1a7e,'options':{'where':{'id':_0x11bf85}},'log':'addTagsToFaxInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['create','Request','CreateFaxMessage','createFaxMessage'];(function(_0x47e7cb,_0x4c1b8d){var _0x2a8874=function(_0x36498f){while(--_0x36498f){_0x47e7cb['push'](_0x47e7cb['shift']());}};_0x2a8874(++_0x4c1b8d);}(_0xb7e7,0x1dc));var _0x7b7e=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xb7e7[_0x2b4411];return _0x8e41ef;};'use strict';var client=require('../client');exports[_0x7b7e('0x0')]=function(_0x2839b3){return client[_0x7b7e('0x1')](_0x7b7e('0x2'),{'body':_0x2839b3,'log':_0x7b7e('0x3')});};
\ No newline at end of file
+var _0xe8a2=['createFaxMessage','create','Request'];(function(_0x3285e9,_0x428b26){var _0x4eb6bf=function(_0x2cb78b){while(--_0x2cb78b){_0x3285e9['push'](_0x3285e9['shift']());}};_0x4eb6bf(++_0x428b26);}(_0xe8a2,0x17e));var _0x2e8a=function(_0x19b4df,_0x353118){_0x19b4df=_0x19b4df-0x0;var _0x13516c=_0xe8a2[_0x19b4df];return _0x13516c;};'use strict';var client=require('../client');exports[_0x2e8a('0x0')]=function(_0x5088c7){return client[_0x2e8a('0x1')]('CreateFaxMessage',{'body':_0x5088c7,'log':_0x2e8a('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf414=['Agents','online','faxPause','getFaxQueues','Request','GetFaxQueue','name','User'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xf414,0x12b));var _0x4f41=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xf414[_0x4a9fb1];return _0x348672;};'use strict';var client=require('../client');exports[_0x4f41('0x0')]=function(){return function(){return client[_0x4f41('0x1')](_0x4f41('0x2'),{'options':{'raw':![],'attributes':['id',_0x4f41('0x3'),'timeout','strategy'],'include':[{'model':_0x4f41('0x4'),'as':_0x4f41('0x5'),'attributes':['id','name',_0x4f41('0x6'),_0x4f41('0x7')]}]},'log':'getFaxQueues'});};};
\ No newline at end of file
+var _0xc046=['GetFaxQueue','name','timeout','User','Agents','online','faxPause','../client','getFaxQueues','Request'];(function(_0x1f9f37,_0x18776e){var _0x21c080=function(_0x4acb93){while(--_0x4acb93){_0x1f9f37['push'](_0x1f9f37['shift']());}};_0x21c080(++_0x18776e);}(_0xc046,0x1dd));var _0x6c04=function(_0x1875c7,_0x2e58dc){_0x1875c7=_0x1875c7-0x0;var _0x5d23b6=_0xc046[_0x1875c7];return _0x5d23b6;};'use strict';var client=require(_0x6c04('0x0'));exports[_0x6c04('0x1')]=function(){return function(){return client[_0x6c04('0x2')](_0x6c04('0x3'),{'options':{'raw':![],'attributes':['id',_0x6c04('0x4'),_0x6c04('0x5'),'strategy'],'include':[{'model':_0x6c04('0x6'),'as':_0x6c04('0x7'),'attributes':['id',_0x6c04('0x4'),_0x6c04('0x8'),_0x6c04('0x9')]}]},'log':_0x6c04('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe139=['Request','CreateFaxQueueReport','update','UpdateFaxQueueReport','DESC','../client'];(function(_0x437cde,_0xc26ee0){var _0x14e0df=function(_0x2242f8){while(--_0x2242f8){_0x437cde['push'](_0x437cde['shift']());}};_0x14e0df(++_0xc26ee0);}(_0xe139,0x1d9));var _0x9e13=function(_0x587f81,_0x4e6b6d){_0x587f81=_0x587f81-0x0;var _0x1ab7bd=_0xe139[_0x587f81];return _0x1ab7bd;};'use strict';var client=require(_0x9e13('0x0'));exports['create']=function(_0x3ed44a){return client[_0x9e13('0x1')](_0x9e13('0x2'),{'body':_0x3ed44a,'log':_0x9e13('0x2')});};exports[_0x9e13('0x3')]=function(_0xb42b56,_0x558f7c){return client['Request'](_0x9e13('0x4'),{'body':_0x558f7c,'options':{'where':{'uniqueid':_0xb42b56},'order':[['id',_0x9e13('0x5')]],'limit':0x1},'log':_0x9e13('0x4')});};
\ No newline at end of file
+var _0x02fa=['update','UpdateFaxQueueReport','../client','create','Request','CreateFaxQueueReport'];(function(_0x349570,_0x40be36){var _0x13f81a=function(_0x3673c6){while(--_0x3673c6){_0x349570['push'](_0x349570['shift']());}};_0x13f81a(++_0x40be36);}(_0x02fa,0x74));var _0xa02f=function(_0x1535df,_0x3aecbe){_0x1535df=_0x1535df-0x0;var _0x2acb80=_0x02fa[_0x1535df];return _0x2acb80;};'use strict';var client=require(_0xa02f('0x0'));exports[_0xa02f('0x1')]=function(_0x5228b8){return client[_0xa02f('0x2')](_0xa02f('0x3'),{'body':_0x5228b8,'log':_0xa02f('0x3')});};exports[_0xa02f('0x4')]=function(_0x8edfab,_0x29a350){return client[_0xa02f('0x2')]('UpdateFaxQueueReport',{'body':_0x29a350,'options':{'where':{'uniqueid':_0x8edfab},'order':[['id','DESC']],'limit':0x1},'log':_0xa02f('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0333=['interval','../client','getIntervals','GetInterval','name','Intervals'];(function(_0xd9a890,_0x33baef){var _0xc513c0=function(_0x460151){while(--_0x460151){_0xd9a890['push'](_0xd9a890['shift']());}};_0xc513c0(++_0x33baef);}(_0x0333,0xa3));var _0x3033=function(_0x3f4891,_0x4e6f62){_0x3f4891=_0x3f4891-0x0;var _0x54f2d8=_0x0333[_0x3f4891];return _0x54f2d8;};'use strict';var client=require(_0x3033('0x0'));exports[_0x3033('0x1')]=function(){return function(){return client['Request'](_0x3033('0x2'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x3033('0x3')],'include':[{'model':'Interval','as':_0x3033('0x4'),'attributes':['id','name',_0x3033('0x5')]}]},'log':_0x3033('0x1')});};};
\ No newline at end of file
+var _0xe1c0=['Request','GetInterval','name','Interval','Intervals','interval','getIntervals','../client'];(function(_0x3c8679,_0x2faea3){var _0x2791f8=function(_0x45b22f){while(--_0x45b22f){_0x3c8679['push'](_0x3c8679['shift']());}};_0x2791f8(++_0x2faea3);}(_0xe1c0,0x19f));var _0x0e1c=function(_0x44ce44,_0x565ff9){_0x44ce44=_0x44ce44-0x0;var _0x5c18d3=_0xe1c0[_0x44ce44];return _0x5c18d3;};'use strict';var client=require(_0x0e1c('0x0'));exports['getIntervals']=function(){return function(){return client[_0x0e1c('0x1')](_0x0e1c('0x2'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x0e1c('0x3')],'include':[{'model':_0x0e1c('0x4'),'as':_0x0e1c('0x5'),'attributes':['id',_0x0e1c('0x3'),_0x0e1c('0x6')]}]},'log':_0x0e1c('0x7')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47c5=['UpdateMailInteraction','addTags','AddTagsToMailInteraction','../client','update','Request'];(function(_0x544986,_0x92c7f1){var _0x328aee=function(_0xb0ac2c){while(--_0xb0ac2c){_0x544986['push'](_0x544986['shift']());}};_0x328aee(++_0x92c7f1);}(_0x47c5,0x165));var _0x547c=function(_0x45e647,_0x2c482c){_0x45e647=_0x45e647-0x0;var _0x2deace=_0x47c5[_0x45e647];return _0x2deace;};'use strict';var client=require(_0x547c('0x0'));exports[_0x547c('0x1')]=function(_0x2b2280,_0x123697){return client[_0x547c('0x2')](_0x547c('0x3'),{'body':_0x123697,'options':{'where':{'id':_0x2b2280}},'log':'updateMailInteraction'});};exports[_0x547c('0x4')]=function(_0x16f4db,_0x5b48c9){return client[_0x547c('0x2')](_0x547c('0x5'),{'body':_0x5b48c9,'options':{'where':{'id':_0x16f4db}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
+var _0xf4f4=['addTags','AddTagsToMailInteraction','addTagsToChatInteraction','../client','update','Request','UpdateMailInteraction','updateMailInteraction'];(function(_0x5274af,_0x1488a6){var _0x5b617b=function(_0x56c603){while(--_0x56c603){_0x5274af['push'](_0x5274af['shift']());}};_0x5b617b(++_0x1488a6);}(_0xf4f4,0xe3));var _0x4f4f=function(_0xe78202,_0x200dd0){_0xe78202=_0xe78202-0x0;var _0xd44ff5=_0xf4f4[_0xe78202];return _0xd44ff5;};'use strict';var client=require(_0x4f4f('0x0'));exports[_0x4f4f('0x1')]=function(_0x533895,_0x16a496){return client[_0x4f4f('0x2')](_0x4f4f('0x3'),{'body':_0x16a496,'options':{'where':{'id':_0x533895}},'log':_0x4f4f('0x4')});};exports[_0x4f4f('0x5')]=function(_0x510b24,_0x5a752b){return client['Request'](_0x4f4f('0x6'),{'body':_0x5a752b,'options':{'where':{'id':_0x510b24}},'log':_0x4f4f('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x337c=['../client','create','Request','CreateMailMessage','createMailMessage'];(function(_0x8627e5,_0x52f5e8){var _0x554e7a=function(_0x45db8e){while(--_0x45db8e){_0x8627e5['push'](_0x8627e5['shift']());}};_0x554e7a(++_0x52f5e8);}(_0x337c,0xe6));var _0xc337=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x337c[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xc337('0x0'));exports[_0xc337('0x1')]=function(_0x4bbc3c){return client[_0xc337('0x2')](_0xc337('0x3'),{'body':_0x4bbc3c,'log':_0xc337('0x4')});};
\ No newline at end of file
+var _0xf689=['create','Request','createMailMessage','../client'];(function(_0x3a23c1,_0x495d49){var _0x286863=function(_0x3accee){while(--_0x3accee){_0x3a23c1['push'](_0x3a23c1['shift']());}};_0x286863(++_0x495d49);}(_0xf689,0x14f));var _0x9f68=function(_0x532f28,_0x6d6ae1){_0x532f28=_0x532f28-0x0;var _0x195782=_0xf689[_0x532f28];return _0x195782;};'use strict';var client=require(_0x9f68('0x0'));exports[_0x9f68('0x1')]=function(_0x26bc9c){return client[_0x9f68('0x2')]('CreateMailMessage',{'body':_0x26bc9c,'log':_0x9f68('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6194=['Agents','mailPause','../client','getMailQueues','Request','GetMailQueue','name','timeout'];(function(_0x367710,_0x2ea312){var _0x16178d=function(_0x331a58){while(--_0x331a58){_0x367710['push'](_0x367710['shift']());}};_0x16178d(++_0x2ea312);}(_0x6194,0x122));var _0x4619=function(_0x272d97,_0x3cb745){_0x272d97=_0x272d97-0x0;var _0x40fc01=_0x6194[_0x272d97];return _0x40fc01;};'use strict';var client=require(_0x4619('0x0'));exports[_0x4619('0x1')]=function(){return function(){return client[_0x4619('0x2')](_0x4619('0x3'),{'options':{'raw':![],'attributes':['id',_0x4619('0x4'),_0x4619('0x5'),'strategy'],'include':[{'model':'User','as':_0x4619('0x6'),'attributes':['id',_0x4619('0x4'),'online',_0x4619('0x7')]}]},'log':_0x4619('0x1')});};};
\ No newline at end of file
+var _0xf05e=['name','timeout','User','Agents','online','mailPause','../client','getMailQueues','GetMailQueue'];(function(_0x2e2334,_0x8ffa8b){var _0x31991c=function(_0x14c2bd){while(--_0x14c2bd){_0x2e2334['push'](_0x2e2334['shift']());}};_0x31991c(++_0x8ffa8b);}(_0xf05e,0xb1));var _0xef05=function(_0x33eb4d,_0x424628){_0x33eb4d=_0x33eb4d-0x0;var _0x310271=_0xf05e[_0x33eb4d];return _0x310271;};'use strict';var client=require(_0xef05('0x0'));exports[_0xef05('0x1')]=function(){return function(){return client['Request'](_0xef05('0x2'),{'options':{'raw':![],'attributes':['id',_0xef05('0x3'),_0xef05('0x4'),'strategy'],'include':[{'model':_0xef05('0x5'),'as':_0xef05('0x6'),'attributes':['id',_0xef05('0x3'),_0xef05('0x7'),_0xef05('0x8')]}]},'log':_0xef05('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3c8=['DESC','../client','Request','CreateMailQueueReport'];(function(_0x427217,_0x4039b1){var _0x5b28fb=function(_0x3eaa08){while(--_0x3eaa08){_0x427217['push'](_0x427217['shift']());}};_0x5b28fb(++_0x4039b1);}(_0xd3c8,0x12d));var _0x8d3c=function(_0xafad6d,_0x5ee589){_0xafad6d=_0xafad6d-0x0;var _0x3aed7d=_0xd3c8[_0xafad6d];return _0x3aed7d;};'use strict';var client=require(_0x8d3c('0x0'));exports['create']=function(_0x57ad4a){return client[_0x8d3c('0x1')](_0x8d3c('0x2'),{'body':_0x57ad4a,'log':_0x8d3c('0x2')});};exports['update']=function(_0x1593d8,_0x1372c2){return client['Request']('UpdateMailQueueReport',{'body':_0x1372c2,'options':{'where':{'uniqueid':_0x1593d8},'order':[['id',_0x8d3c('0x3')]],'limit':0x1},'log':'UpdateMailQueueReport'});};
\ No newline at end of file
+var _0x0736=['CreateMailQueueReport','update','UpdateMailQueueReport','DESC','Request'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x0736,0x17b));var _0x6073=function(_0x4e38c7,_0x467ab3){_0x4e38c7=_0x4e38c7-0x0;var _0x445dd6=_0x0736[_0x4e38c7];return _0x445dd6;};'use strict';var client=require('../client');exports['create']=function(_0x534e8d){return client[_0x6073('0x0')](_0x6073('0x1'),{'body':_0x534e8d,'log':_0x6073('0x1')});};exports[_0x6073('0x2')]=function(_0x2dd7c0,_0x3928cc){return client[_0x6073('0x0')](_0x6073('0x3'),{'body':_0x3928cc,'options':{'where':{'uniqueid':_0x2dd7c0},'order':[['id',_0x6073('0x4')]],'limit':0x1},'log':_0x6073('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x426e=['Request','UpdateOpenchannelInteraction','addTags','AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','update'];(function(_0x5d0d22,_0x1605e1){var _0x284c36=function(_0x56a93f){while(--_0x56a93f){_0x5d0d22['push'](_0x5d0d22['shift']());}};_0x284c36(++_0x1605e1);}(_0x426e,0xad));var _0xe426=function(_0x3ba2d6,_0x4910cb){_0x3ba2d6=_0x3ba2d6-0x0;var _0x6f362a=_0x426e[_0x3ba2d6];return _0x6f362a;};'use strict';var client=require(_0xe426('0x0'));exports[_0xe426('0x1')]=function(_0x2b0db8,_0x73ff46){return client[_0xe426('0x2')](_0xe426('0x3'),{'body':_0x73ff46,'options':{'where':{'id':_0x2b0db8}},'log':'updateOpenchannelInteraction'});};exports[_0xe426('0x4')]=function(_0x5dd668,_0x3410c3){return client[_0xe426('0x2')](_0xe426('0x5'),{'body':_0x3410c3,'options':{'where':{'id':_0x5dd668}},'log':_0xe426('0x6')});};
\ No newline at end of file
+var _0xb71e=['Request','UpdateOpenchannelInteraction','updateOpenchannelInteraction','addTags','AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','update'];(function(_0x15ddc9,_0x209223){var _0x2fc9e8=function(_0x2d5e5f){while(--_0x2d5e5f){_0x15ddc9['push'](_0x15ddc9['shift']());}};_0x2fc9e8(++_0x209223);}(_0xb71e,0x18e));var _0xeb71=function(_0x556927,_0x34b53f){_0x556927=_0x556927-0x0;var _0x5f1235=_0xb71e[_0x556927];return _0x5f1235;};'use strict';var client=require(_0xeb71('0x0'));exports[_0xeb71('0x1')]=function(_0x5810e4,_0x4f0a57){return client[_0xeb71('0x2')](_0xeb71('0x3'),{'body':_0x4f0a57,'options':{'where':{'id':_0x5810e4}},'log':_0xeb71('0x4')});};exports[_0xeb71('0x5')]=function(_0x2d6a07,_0x48dcce){return client[_0xeb71('0x2')](_0xeb71('0x6'),{'body':_0x48dcce,'options':{'where':{'id':_0x2d6a07}},'log':_0xeb71('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x284c=['createOpenchannelMessage','create','Request','CreateOpenchannelMessage'];(function(_0x1bd3b2,_0x14d3b7){var _0x2b95bc=function(_0x5d485b){while(--_0x5d485b){_0x1bd3b2['push'](_0x1bd3b2['shift']());}};_0x2b95bc(++_0x14d3b7);}(_0x284c,0xb5));var _0xc284=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x284c[_0x5b644e];return _0x49c6bf;};'use strict';var client=require('../client');exports[_0xc284('0x0')]=function(_0x3497b7){return client[_0xc284('0x1')](_0xc284('0x2'),{'body':_0x3497b7,'log':_0xc284('0x3')});};
\ No newline at end of file
+var _0xef64=['CreateOpenchannelMessage','Request'];(function(_0x2fe27a,_0x286478){var _0x248e34=function(_0x344fc4){while(--_0x344fc4){_0x2fe27a['push'](_0x2fe27a['shift']());}};_0x248e34(++_0x286478);}(_0xef64,0x131));var _0x4ef6=function(_0x45783c,_0x49c56d){_0x45783c=_0x45783c-0x0;var _0x1161da=_0xef64[_0x45783c];return _0x1161da;};'use strict';var client=require('../client');exports['create']=function(_0x3348f5){return client[_0x4ef6('0x0')](_0x4ef6('0x1'),{'body':_0x3348f5,'log':'createOpenchannelMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x916c=['Request','GetOpenchannelQueue','name','timeout','User','Agents','online','openchannelPause','getOpenchannelQueues','../client'];(function(_0x4cb63,_0x203706){var _0x151dab=function(_0x57ea39){while(--_0x57ea39){_0x4cb63['push'](_0x4cb63['shift']());}};_0x151dab(++_0x203706);}(_0x916c,0x6d));var _0xc916=function(_0x2211ed,_0x1bca0b){_0x2211ed=_0x2211ed-0x0;var _0x4d78cc=_0x916c[_0x2211ed];return _0x4d78cc;};'use strict';var client=require(_0xc916('0x0'));exports['getOpenchannelQueues']=function(){return function(){return client[_0xc916('0x1')](_0xc916('0x2'),{'options':{'raw':![],'attributes':['id',_0xc916('0x3'),_0xc916('0x4'),'strategy'],'include':[{'model':_0xc916('0x5'),'as':_0xc916('0x6'),'attributes':['id','name',_0xc916('0x7'),_0xc916('0x8')]}]},'log':_0xc916('0x9')});};};
\ No newline at end of file
+var _0x4fd5=['openchannelPause','../client','getOpenchannelQueues','Request','strategy','User','name','online'];(function(_0x23e6bb,_0x5c2d69){var _0x1e3b4c=function(_0x1afc46){while(--_0x1afc46){_0x23e6bb['push'](_0x23e6bb['shift']());}};_0x1e3b4c(++_0x5c2d69);}(_0x4fd5,0x89));var _0x54fd=function(_0x38f602,_0x3eaf80){_0x38f602=_0x38f602-0x0;var _0x465819=_0x4fd5[_0x38f602];return _0x465819;};'use strict';var client=require(_0x54fd('0x0'));exports[_0x54fd('0x1')]=function(){return function(){return client[_0x54fd('0x2')]('GetOpenchannelQueue',{'options':{'raw':![],'attributes':['id','name','timeout',_0x54fd('0x3')],'include':[{'model':_0x54fd('0x4'),'as':'Agents','attributes':['id',_0x54fd('0x5'),_0x54fd('0x6'),_0x54fd('0x7')]}]},'log':'getOpenchannelQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf81a=['create','CreateOpenchannelQueueReport','update','Request','DESC','UpdateOpenchannelQueueReport','../client'];(function(_0x458881,_0x33d7cf){var _0x466983=function(_0xf4d3ac){while(--_0xf4d3ac){_0x458881['push'](_0x458881['shift']());}};_0x466983(++_0x33d7cf);}(_0xf81a,0x16b));var _0xaf81=function(_0x360684,_0x9ed390){_0x360684=_0x360684-0x0;var _0x48c698=_0xf81a[_0x360684];return _0x48c698;};'use strict';var client=require(_0xaf81('0x0'));exports[_0xaf81('0x1')]=function(_0x1ecfb2){return client['Request'](_0xaf81('0x2'),{'body':_0x1ecfb2,'log':_0xaf81('0x2')});};exports[_0xaf81('0x3')]=function(_0x51450a,_0x4590d4){return client[_0xaf81('0x4')]('UpdateOpenchannelQueueReport',{'body':_0x4590d4,'options':{'where':{'uniqueid':_0x51450a},'order':[['id',_0xaf81('0x5')]],'limit':0x1},'log':_0xaf81('0x6')});};
\ No newline at end of file
+var _0x05b1=['Request','CreateOpenchannelQueueReport','UpdateOpenchannelQueueReport','DESC'];(function(_0x41aa18,_0x173515){var _0x4dc416=function(_0x1a6ec6){while(--_0x1a6ec6){_0x41aa18['push'](_0x41aa18['shift']());}};_0x4dc416(++_0x173515);}(_0x05b1,0x188));var _0x105b=function(_0x4caec5,_0x360194){_0x4caec5=_0x4caec5-0x0;var _0x10c628=_0x05b1[_0x4caec5];return _0x10c628;};'use strict';var client=require('../client');exports['create']=function(_0x1dac9f){return client[_0x105b('0x0')]('CreateOpenchannelQueueReport',{'body':_0x1dac9f,'log':_0x105b('0x1')});};exports['update']=function(_0x3c93d2,_0xc42a09){return client[_0x105b('0x0')](_0x105b('0x2'),{'body':_0xc42a09,'options':{'where':{'uniqueid':_0x3c93d2},'order':[['id',_0x105b('0x3')]],'limit':0x1},'log':_0x105b('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14d=['updateSmsInteraction','Request','AddTagsToSmsInteraction','addTagsToSmsInteraction','../client','update','UpdateSmsInteraction'];(function(_0x9c9f1c,_0x326a86){var _0x7e30d2=function(_0x44d78e){while(--_0x44d78e){_0x9c9f1c['push'](_0x9c9f1c['shift']());}};_0x7e30d2(++_0x326a86);}(_0xe14d,0x1ee));var _0xde14=function(_0x334841,_0x2bbc4c){_0x334841=_0x334841-0x0;var _0x5beb4b=_0xe14d[_0x334841];return _0x5beb4b;};'use strict';var client=require(_0xde14('0x0'));exports[_0xde14('0x1')]=function(_0x1b5d3b,_0x41974a){return client['Request'](_0xde14('0x2'),{'body':_0x41974a,'options':{'where':{'id':_0x1b5d3b}},'log':_0xde14('0x3')});};exports['addTags']=function(_0x1c3e94,_0x13c24e){return client[_0xde14('0x4')](_0xde14('0x5'),{'body':_0x13c24e,'options':{'where':{'id':_0x1c3e94}},'log':_0xde14('0x6')});};
\ No newline at end of file
+var _0xdab2=['updateSmsInteraction','AddTagsToSmsInteraction','addTagsToSmsInteraction','../client','update','Request','UpdateSmsInteraction'];(function(_0x56b176,_0x2f0d88){var _0x20a790=function(_0x29c5c1){while(--_0x29c5c1){_0x56b176['push'](_0x56b176['shift']());}};_0x20a790(++_0x2f0d88);}(_0xdab2,0x130));var _0x2dab=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xdab2[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x2dab('0x0'));exports[_0x2dab('0x1')]=function(_0x50addb,_0x475660){return client[_0x2dab('0x2')](_0x2dab('0x3'),{'body':_0x475660,'options':{'where':{'id':_0x50addb}},'log':_0x2dab('0x4')});};exports['addTags']=function(_0x2078be,_0x2480cb){return client[_0x2dab('0x2')](_0x2dab('0x5'),{'body':_0x2480cb,'options':{'where':{'id':_0x2078be}},'log':_0x2dab('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc69b=['createSmsMessage','../client','create','Request'];(function(_0x201efb,_0x80bed0){var _0x2f7961=function(_0x327290){while(--_0x327290){_0x201efb['push'](_0x201efb['shift']());}};_0x2f7961(++_0x80bed0);}(_0xc69b,0x119));var _0xbc69=function(_0x43d16c,_0x2b5447){_0x43d16c=_0x43d16c-0x0;var _0x208cce=_0xc69b[_0x43d16c];return _0x208cce;};'use strict';var client=require(_0xbc69('0x0'));exports[_0xbc69('0x1')]=function(_0x3a9d8e){return client[_0xbc69('0x2')]('CreateSmsMessage',{'body':_0x3a9d8e,'log':_0xbc69('0x3')});};
\ No newline at end of file
+var _0xa9c1=['createSmsMessage','../client','create','Request','CreateSmsMessage'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9c1,0x196));var _0x1a9c=function(_0xbe200f,_0x4b50eb){_0xbe200f=_0xbe200f-0x0;var _0x192597=_0xa9c1[_0xbe200f];return _0x192597;};'use strict';var client=require(_0x1a9c('0x0'));exports[_0x1a9c('0x1')]=function(_0x33f820){return client[_0x1a9c('0x2')](_0x1a9c('0x3'),{'body':_0x33f820,'log':_0x1a9c('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['online','../client','Request','name','strategy','Agents'];(function(_0xef6f03,_0xe23870){var _0x5098cf=function(_0x572b0e){while(--_0x572b0e){_0xef6f03['push'](_0xef6f03['shift']());}};_0x5098cf(++_0xe23870);}(_0xb7e7,0x121));var _0x7b7e=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xb7e7[_0x2b4411];return _0x8e41ef;};'use strict';var client=require(_0x7b7e('0x0'));exports['getSmsQueues']=function(){return function(){return client[_0x7b7e('0x1')]('GetSmsQueue',{'options':{'raw':![],'attributes':['id',_0x7b7e('0x2'),'timeout',_0x7b7e('0x3')],'include':[{'model':'User','as':_0x7b7e('0x4'),'attributes':['id',_0x7b7e('0x2'),_0x7b7e('0x5'),'smsPause']}]},'log':'getSmsQueues'});};};
\ No newline at end of file
+var _0xa9e0=['name','online','smsPause','../client','getSmsQueues','Request','timeout','User','Agents'];(function(_0x15c04a,_0x184803){var _0x2d9c0d=function(_0x4f61c3){while(--_0x4f61c3){_0x15c04a['push'](_0x15c04a['shift']());}};_0x2d9c0d(++_0x184803);}(_0xa9e0,0x123));var _0x0a9e=function(_0x8de54f,_0x271987){_0x8de54f=_0x8de54f-0x0;var _0x14cba4=_0xa9e0[_0x8de54f];return _0x14cba4;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetSmsQueue',{'options':{'raw':![],'attributes':['id','name',_0x0a9e('0x3'),'strategy'],'include':[{'model':_0x0a9e('0x4'),'as':_0x0a9e('0x5'),'attributes':['id',_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8')]}]},'log':'getSmsQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['create','Request','CreateSmsQueueReport','update','UpdateSmsQueueReport','DESC','../client'];(function(_0x3eaccb,_0x199553){var _0x176a5b=function(_0x535843){while(--_0x535843){_0x3eaccb['push'](_0x3eaccb['shift']());}};_0x176a5b(++_0x199553);}(_0x34e8,0x12c));var _0x834e=function(_0x411c22,_0x5a4b47){_0x411c22=_0x411c22-0x0;var _0x543aca=_0x34e8[_0x411c22];return _0x543aca;};'use strict';var client=require(_0x834e('0x0'));exports[_0x834e('0x1')]=function(_0x8b339){return client[_0x834e('0x2')]('CreateSmsQueueReport',{'body':_0x8b339,'log':_0x834e('0x3')});};exports[_0x834e('0x4')]=function(_0x472111,_0x31bf20){return client[_0x834e('0x2')](_0x834e('0x5'),{'body':_0x31bf20,'options':{'where':{'uniqueid':_0x472111},'order':[['id',_0x834e('0x6')]],'limit':0x1},'log':'UpdateSmsQueueReport'});};
\ No newline at end of file
+var _0x70e0=['create','CreateSmsQueueReport','update','UpdateSmsQueueReport','../client'];(function(_0x328c0d,_0x20e19c){var _0x5e56c2=function(_0x496234){while(--_0x496234){_0x328c0d['push'](_0x328c0d['shift']());}};_0x5e56c2(++_0x20e19c);}(_0x70e0,0x17b));var _0x070e=function(_0x370104,_0x68a0cb){_0x370104=_0x370104-0x0;var _0x6c8eba=_0x70e0[_0x370104];return _0x6c8eba;};'use strict';var client=require(_0x070e('0x0'));exports[_0x070e('0x1')]=function(_0x198c2e){return client['Request']('CreateSmsQueueReport',{'body':_0x198c2e,'log':_0x070e('0x2')});};exports[_0x070e('0x3')]=function(_0x277d32,_0x2593e5){return client['Request'](_0x070e('0x4'),{'body':_0x2593e5,'options':{'where':{'uniqueid':_0x277d32},'order':[['id','DESC']],'limit':0x1},'log':_0x070e('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0x397412,_0x420ef2){var _0x2082f5=function(_0xd601a0){while(--_0xd601a0){_0x397412['push'](_0x397412['shift']());}};_0x2082f5(++_0x420ef2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0xa9e0[_0x411add];return _0x238242;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
+var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0x556570,_0x1569ef){var _0x247496=function(_0x47adaf){while(--_0x47adaf){_0x556570['push'](_0x556570['shift']());}};_0x247496(++_0x1569ef);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1b349a,_0x22222c){_0x1b349a=_0x1b349a-0x0;var _0x5d1f7c=_0xa9e0[_0x1b349a];return _0x5d1f7c;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd991=['AddTagsToWhatsappInteraction','../client','update','Request','updateWhatsappInteraction','addTags'];(function(_0x75eb43,_0x1acc51){var _0x5df67a=function(_0x7ae16f){while(--_0x7ae16f){_0x75eb43['push'](_0x75eb43['shift']());}};_0x5df67a(++_0x1acc51);}(_0xd991,0x115));var _0x1d99=function(_0x27e2ef,_0x42cf66){_0x27e2ef=_0x27e2ef-0x0;var _0x1573bf=_0xd991[_0x27e2ef];return _0x1573bf;};'use strict';var client=require(_0x1d99('0x0'));exports[_0x1d99('0x1')]=function(_0x1ef5c1,_0x2095b5){return client[_0x1d99('0x2')]('UpdateWhatsappInteraction',{'body':_0x2095b5,'options':{'where':{'id':_0x1ef5c1}},'log':_0x1d99('0x3')});};exports[_0x1d99('0x4')]=function(_0xf03459,_0x1f6da3){return client[_0x1d99('0x2')](_0x1d99('0x5'),{'body':_0x1f6da3,'options':{'where':{'id':_0xf03459}},'log':'addTagsToWhatsappInteraction'});};
\ No newline at end of file
+var _0xe1d3=['../client','update','Request','updateWhatsappInteraction','addTagsToWhatsappInteraction'];(function(_0x131235,_0x4ec45e){var _0x116472=function(_0x8796ae){while(--_0x8796ae){_0x131235['push'](_0x131235['shift']());}};_0x116472(++_0x4ec45e);}(_0xe1d3,0x159));var _0x3e1d=function(_0x10e6d2,_0x1b2c04){_0x10e6d2=_0x10e6d2-0x0;var _0x3b3c9f=_0xe1d3[_0x10e6d2];return _0x3b3c9f;};'use strict';var client=require(_0x3e1d('0x0'));exports[_0x3e1d('0x1')]=function(_0x1aa7c7,_0x1340c7){return client[_0x3e1d('0x2')]('UpdateWhatsappInteraction',{'body':_0x1340c7,'options':{'where':{'id':_0x1aa7c7}},'log':_0x3e1d('0x3')});};exports['addTags']=function(_0x23f59b,_0x38df15){return client['Request']('AddTagsToWhatsappInteraction',{'body':_0x38df15,'options':{'where':{'id':_0x23f59b}},'log':_0x3e1d('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab0c=['CreateWhatsappMessage','../client','create'];(function(_0x5d4e38,_0x579b55){var _0x39a5f7=function(_0x435828){while(--_0x435828){_0x5d4e38['push'](_0x5d4e38['shift']());}};_0x39a5f7(++_0x579b55);}(_0xab0c,0x103));var _0xcab0=function(_0x35f771,_0x23115f){_0x35f771=_0x35f771-0x0;var _0x3f3709=_0xab0c[_0x35f771];return _0x3f3709;};'use strict';var client=require(_0xcab0('0x0'));exports[_0xcab0('0x1')]=function(_0x3d0cbf){return client['Request'](_0xcab0('0x2'),{'body':_0x3d0cbf,'log':'createWhatsappMessage'});};
\ No newline at end of file
+var _0x5734=['CreateWhatsappMessage','createWhatsappMessage','create'];(function(_0x19ee96,_0x48b7d5){var _0x57aaf0=function(_0x26f332){while(--_0x26f332){_0x19ee96['push'](_0x19ee96['shift']());}};_0x57aaf0(++_0x48b7d5);}(_0x5734,0x1a3));var _0x4573=function(_0xda501a,_0x159d6a){_0xda501a=_0xda501a-0x0;var _0x44be3a=_0x5734[_0xda501a];return _0x44be3a;};'use strict';var client=require('../client');exports[_0x4573('0x0')]=function(_0x30f97f){return client['Request'](_0x4573('0x1'),{'body':_0x30f97f,'log':_0x4573('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf3b=['getWhatsappQueues','GetWhatsappQueue','name','timeout','strategy','User','Agents','online','../client'];(function(_0x18ed56,_0x5d5d47){var _0x57dc09=function(_0xc91dff){while(--_0xc91dff){_0x18ed56['push'](_0x18ed56['shift']());}};_0x57dc09(++_0x5d5d47);}(_0xbf3b,0x86));var _0xbbf3=function(_0x570b27,_0xd94330){_0x570b27=_0x570b27-0x0;var _0x4c5ea1=_0xbf3b[_0x570b27];return _0x4c5ea1;};'use strict';var client=require(_0xbbf3('0x0'));exports[_0xbbf3('0x1')]=function(){return function(){return client['Request'](_0xbbf3('0x2'),{'options':{'raw':![],'attributes':['id',_0xbbf3('0x3'),_0xbbf3('0x4'),_0xbbf3('0x5')],'include':[{'model':_0xbbf3('0x6'),'as':_0xbbf3('0x7'),'attributes':['id',_0xbbf3('0x3'),_0xbbf3('0x8'),'whatsappPause']}]},'log':'getWhatsappQueues'});};};
\ No newline at end of file
+var _0x3b9f=['online','whatsappPause','../client','getWhatsappQueues','Request','name','timeout','strategy','User','Agents'];(function(_0x1c5186,_0x371ab7){var _0x2f5674=function(_0x481c34){while(--_0x481c34){_0x1c5186['push'](_0x1c5186['shift']());}};_0x2f5674(++_0x371ab7);}(_0x3b9f,0xfc));var _0xf3b9=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x3b9f[_0x4a9fb1];return _0x348672;};'use strict';var client=require(_0xf3b9('0x0'));exports[_0xf3b9('0x1')]=function(){return function(){return client[_0xf3b9('0x2')]('GetWhatsappQueue',{'options':{'raw':![],'attributes':['id',_0xf3b9('0x3'),_0xf3b9('0x4'),_0xf3b9('0x5')],'include':[{'model':_0xf3b9('0x6'),'as':_0xf3b9('0x7'),'attributes':['id',_0xf3b9('0x3'),_0xf3b9('0x8'),_0xf3b9('0x9')]}]},'log':'getWhatsappQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3325=['create','Request','CreateWhatsappQueueReport','update','UpdateWhatsappQueueReport','../client'];(function(_0x5f0dfb,_0x1e663d){var _0xbe5060=function(_0x44ff60){while(--_0x44ff60){_0x5f0dfb['push'](_0x5f0dfb['shift']());}};_0xbe5060(++_0x1e663d);}(_0x3325,0x10d));var _0x5332=function(_0x852450,_0xd2456e){_0x852450=_0x852450-0x0;var _0x329404=_0x3325[_0x852450];return _0x329404;};'use strict';var client=require(_0x5332('0x0'));exports[_0x5332('0x1')]=function(_0x5d2589){return client[_0x5332('0x2')](_0x5332('0x3'),{'body':_0x5d2589,'log':_0x5332('0x3')});};exports[_0x5332('0x4')]=function(_0x586f6a,_0xd40986){return client[_0x5332('0x2')](_0x5332('0x5'),{'body':_0xd40986,'options':{'where':{'uniqueid':_0x586f6a},'order':[['id','DESC']],'limit':0x1},'log':_0x5332('0x5')});};
\ No newline at end of file
+var _0x6c81=['create','Request','CreateWhatsappQueueReport','update','DESC','UpdateWhatsappQueueReport','../client'];(function(_0x4574d9,_0x224f1a){var _0x30cea4=function(_0x4d26a5){while(--_0x4d26a5){_0x4574d9['push'](_0x4574d9['shift']());}};_0x30cea4(++_0x224f1a);}(_0x6c81,0xb5));var _0x16c8=function(_0x42946c,_0x577d97){_0x42946c=_0x42946c-0x0;var _0x5d7687=_0x6c81[_0x42946c];return _0x5d7687;};'use strict';var client=require(_0x16c8('0x0'));exports[_0x16c8('0x1')]=function(_0x57f848){return client[_0x16c8('0x2')]('CreateWhatsappQueueReport',{'body':_0x57f848,'log':_0x16c8('0x3')});};exports[_0x16c8('0x4')]=function(_0x5b91f5,_0x334595){return client[_0x16c8('0x2')]('UpdateWhatsappQueueReport',{'body':_0x334595,'options':{'where':{'uniqueid':_0x5b91f5},'order':[['id',_0x16c8('0x5')]],'limit':0x1},'log':_0x16c8('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6600=['map','message','join','stop','find','timeout','createQueue','channel','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','complete','close','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','stack','validate','lodash','util','seq-queue','../../../../config/logger','./strategy','number','info','format','name','toLowerCase','length','error'];(function(_0x22649a,_0x4b8b34){var _0x2eb0f3=function(_0x35b187){while(--_0x35b187){_0x22649a['push'](_0x22649a['shift']());}};_0x2eb0f3(++_0x4b8b34);}(_0x6600,0xdb));var _0x0660=function(_0x155cb3,_0x56ffc4){_0x155cb3=_0x155cb3-0x0;var _0x169ea1=_0x6600[_0x155cb3];return _0x169ea1;};'use strict';var schema=require(_0x0660('0x0'));var _=require(_0x0660('0x1'));var util=require(_0x0660('0x2'));var seqqueue=require(_0x0660('0x3'));var logger=require(_0x0660('0x4'))('routing');var strategy=require(_0x0660('0x5'));var queue=schema({'name':{'type':'string','required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x0660('0x6'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x3db63e,_0x387859,_0x1acf59){return logger[_0x0660('0x7')](util[_0x0660('0x8')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x3db63e,_0x387859[_0x0660('0x9')],_0x1acf59));}function handleFindAgent(_0x4b8575){return function(_0x59d300){return _0x59d300['name'][_0x0660('0xa')]()===_0x4b8575['toLowerCase']();};}exports['consequence']=function(_0x4bee6a,_0x39b54e,_0x2d5dfd,_0x14d59f){return function(_0x2c741c){try{var _0x44f993={'name':_0x39b54e[0x0],'timeout':_0x39b54e[0x1]};var _0x37c981=queue['validate'](_0x44f993,{'typecast':!![]});if(_0x37c981[_0x0660('0xb')]){logger[_0x0660('0xc')]('[%s][AGENT]\x20%s',_0x4bee6a,_[_0x0660('0xd')](_0x37c981,_0x0660('0xe'))[_0x0660('0xf')](',\x20'));_0x2c741c[_0x0660('0x10')]();}else{var _0x3bfec7=_[_0x0660('0x11')](_0x2d5dfd['agents'],handleFindAgent(_0x44f993[_0x0660('0x9')]));if(_0x3bfec7){var _0x26ea54=(_0x44f993[_0x0660('0x12')]||0xa)*0x3e8;var _0x95c57b,_0x52c6be;var _0xb67d0b=seqqueue[_0x0660('0x13')](_0x26ea54);_0xb67d0b['id']=_0x4bee6a;_0xb67d0b['atimeout']=_0x26ea54;_0xb67d0b[_0x0660('0x14')]=_0x14d59f[_0x0660('0x14')];writeLog(_0x4bee6a,_0x3bfec7,util[_0x0660('0x8')]('START:%s',_0x26ea54));_0x2d5dfd[_0x0660('0x15')][_0x4bee6a]['on'](_0x0660('0x16'),function(){logger[_0x0660('0x7')](_0x0660('0x17'),_0x4bee6a);clearTimeout(_0x52c6be);_0x52c6be=undefined;_0xb67d0b['close']();if(_0x2d5dfd['rules'][_0x4bee6a]){delete _0x2d5dfd[_0x0660('0x15')][_0x4bee6a];}_0x2c741c['stop']();});_0x2d5dfd[_0x0660('0x15')][_0x4bee6a]['on'](_0x0660('0x18'),function(){if(_0x2d5dfd[_0x0660('0x15')][_0x4bee6a]){delete _0x2d5dfd[_0x0660('0x15')][_0x4bee6a];}});_0x52c6be=setTimeout(function(){logger[_0x0660('0x7')]('[%s][AGENT]\x20ROUTING\x20END',_0x4bee6a);clearTimeout(_0x52c6be);_0xb67d0b[_0x0660('0x19')]();_0x2c741c['next']();},_0x26ea54);strategy['agent'](_0xb67d0b,_0x3bfec7,_0x2d5dfd,_0x14d59f);}else{logger['error'](_0x0660('0x1a'),_0x4bee6a,_0x44f993['name']);_0x2c741c[_0x0660('0x10')]();}}}catch(_0x26bbce){console[_0x0660('0x1b')](_0x26bbce);logger[_0x0660('0xc')]('[%s][QUEUE]\x20%s',_0x4bee6a,_0x26bbce[_0x0660('0x1c')]);_0x2c741c[_0x0660('0x10')]();}};};
\ No newline at end of file
+var _0x5827=['stack','validate','lodash','util','seq-queue','../../../../config/logger','routing','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','map','message','join','stop','find','agents','timeout','createQueue','atimeout','channel','rules','end','info','[%s][AGENT]\x20ROUTING\x20STOPPED','close','next','log'];(function(_0x4f3b10,_0x35cc88){var _0x454404=function(_0x28fecf){while(--_0x28fecf){_0x4f3b10['push'](_0x4f3b10['shift']());}};_0x454404(++_0x35cc88);}(_0x5827,0x15f));var _0x7582=function(_0x23cd3e,_0x4cd643){_0x23cd3e=_0x23cd3e-0x0;var _0x42c132=_0x5827[_0x23cd3e];return _0x42c132;};'use strict';var schema=require(_0x7582('0x0'));var _=require(_0x7582('0x1'));var util=require(_0x7582('0x2'));var seqqueue=require(_0x7582('0x3'));var logger=require(_0x7582('0x4'))(_0x7582('0x5'));var strategy=require('./strategy');var queue=schema({'name':{'type':_0x7582('0x6'),'required':!![],'message':_0x7582('0x7')},'timeout':{'type':'number','message':_0x7582('0x8')}});function writeLog(_0x489b62,_0xdd8f6,_0x2f3052){return logger['info'](util[_0x7582('0x9')](_0x7582('0xa'),_0x489b62,_0xdd8f6[_0x7582('0xb')],_0x2f3052));}function handleFindAgent(_0x311f3a){return function(_0x2754ac){return _0x2754ac[_0x7582('0xb')][_0x7582('0xc')]()===_0x311f3a[_0x7582('0xc')]();};}exports[_0x7582('0xd')]=function(_0x5c7e73,_0x49552e,_0x42fe60,_0x37154a){return function(_0x59d08b){try{var _0x441171={'name':_0x49552e[0x0],'timeout':_0x49552e[0x1]};var _0x540d51=queue[_0x7582('0x0')](_0x441171,{'typecast':!![]});if(_0x540d51[_0x7582('0xe')]){logger[_0x7582('0xf')](_0x7582('0x10'),_0x5c7e73,_[_0x7582('0x11')](_0x540d51,_0x7582('0x12'))[_0x7582('0x13')](',\x20'));_0x59d08b[_0x7582('0x14')]();}else{var _0x49961c=_[_0x7582('0x15')](_0x42fe60[_0x7582('0x16')],handleFindAgent(_0x441171[_0x7582('0xb')]));if(_0x49961c){var _0x3b187a=(_0x441171[_0x7582('0x17')]||0xa)*0x3e8;var _0xf0f5a2,_0x4c0278;var _0x161508=seqqueue[_0x7582('0x18')](_0x3b187a);_0x161508['id']=_0x5c7e73;_0x161508[_0x7582('0x19')]=_0x3b187a;_0x161508[_0x7582('0x1a')]=_0x37154a[_0x7582('0x1a')];writeLog(_0x5c7e73,_0x49961c,util[_0x7582('0x9')]('START:%s',_0x3b187a));_0x42fe60[_0x7582('0x1b')][_0x5c7e73]['on'](_0x7582('0x1c'),function(){logger[_0x7582('0x1d')](_0x7582('0x1e'),_0x5c7e73);clearTimeout(_0x4c0278);_0x4c0278=undefined;_0x161508[_0x7582('0x1f')]();if(_0x42fe60[_0x7582('0x1b')][_0x5c7e73]){delete _0x42fe60[_0x7582('0x1b')][_0x5c7e73];}_0x59d08b['stop']();});_0x42fe60[_0x7582('0x1b')][_0x5c7e73]['on']('complete',function(){if(_0x42fe60[_0x7582('0x1b')][_0x5c7e73]){delete _0x42fe60[_0x7582('0x1b')][_0x5c7e73];}});_0x4c0278=setTimeout(function(){logger[_0x7582('0x1d')]('[%s][AGENT]\x20ROUTING\x20END',_0x5c7e73);clearTimeout(_0x4c0278);_0x161508['close']();_0x59d08b[_0x7582('0x20')]();},_0x3b187a);strategy['agent'](_0x161508,_0x49961c,_0x42fe60,_0x37154a);}else{logger['error']('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x5c7e73,_0x441171['name']);_0x59d08b[_0x7582('0x14')]();}}}catch(_0x34def3){console[_0x7582('0x21')](_0x34def3);logger['error']('[%s][QUEUE]\x20%s',_0x5c7e73,_0x34def3[_0x7582('0x22')]);_0x59d08b[_0x7582('0x14')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9fb=['../../rpc/whatsappMessage','consequence','interaction','UserId','info','[%s][AMAZONLEX]\x20%s','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','body','getMustacheRender','Message','create','stringify','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','message','toString','error','amazonlex','providerResponse','then','Failed','next','catch','lodash','moment','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage'];(function(_0x3b688b,_0x3d315e){var _0x177088=function(_0x46c726){while(--_0x46c726){_0x3b688b['push'](_0x3b688b['shift']());}};_0x177088(++_0x3d315e);}(_0xb9fb,0xd9));var _0xbb9f=function(_0x1f9f37,_0x18776e){_0x1f9f37=_0x1f9f37-0x0;var _0x21c080=_0xb9fb[_0x1f9f37];return _0x21c080;};'use strict';var _=require(_0xbb9f('0x0'));var moment=require(_0xbb9f('0x1'));var AWS=require('aws-sdk');var utils=require('./utils');var logger=require(_0xbb9f('0x2'))(_0xbb9f('0x3'));var rpc={'chatMessage':require(_0xbb9f('0x4')),'openchannelMessage':require(_0xbb9f('0x5')),'mailMessage':require(_0xbb9f('0x6')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xbb9f('0x7')),'whatsappMessage':require(_0xbb9f('0x8'))};exports[_0xbb9f('0x9')]=function(_0x1b17b0,_0x4e5f38){return function(_0x19b4cf){try{if(!_['isNil'](this[_0xbb9f('0xa')][_0xbb9f('0xb')])){logger[_0xbb9f('0xc')](_0xbb9f('0xd'),_0x1b17b0,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x19b4cf['next']();}var _0x3b34dd={'ContactId':this[_0xbb9f('0xe')]['id'],'sentAt':moment()['format'](_0xbb9f('0xf')),'direction':_0xbb9f('0x10')};if(this[_0xbb9f('0x11')]===_0xbb9f('0x12')||this[_0xbb9f('0x11')]===_0xbb9f('0x13')){_0x3b34dd['phone']=this['interaction'][_0xbb9f('0x14')];}var _0x584968=this['channel'];if(_0x584968===_0xbb9f('0x15')){_0x3b34dd[_0xbb9f('0x16')]=this[_0xbb9f('0x17')]['id'];}else{_0x3b34dd[_[_0xbb9f('0x18')](_0x584968)+_0xbb9f('0x19')]=this['account']['id'];}_0x3b34dd[_[_0xbb9f('0x18')](_0x584968)+_0xbb9f('0x1a')]=this[_0xbb9f('0xa')]['id'];if(this['interaction'][_0xbb9f('0x1b')]){var _0x1158e8=_0x4e5f38[0x4];if(!_['isEmpty'](_0x1158e8)){_0x3b34dd[_0xbb9f('0x1c')]=utils[_0xbb9f('0x1d')](_0x1158e8,this);return rpc[_0x584968+_0xbb9f('0x1e')][_0xbb9f('0x1f')](_0x3b34dd)['then'](function(_0x5c5b47){logger[_0xbb9f('0xc')](_0xbb9f('0xd'),_0x1b17b0,_0x3b34dd[_0xbb9f('0x1c')]);})['catch'](function(_0x22a32a){logger['error'](_0xbb9f('0xd'),_0x1b17b0,JSON[_0xbb9f('0x20')](_0x22a32a));})['finally'](function(){logger[_0xbb9f('0xc')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x1b17b0);_0x19b4cf[_0xbb9f('0x21')]();});}else{logger['info'](_0xbb9f('0x22'),_0x1b17b0);_0x19b4cf[_0xbb9f('0x21')]();}}else{var _0x385b84=this;var _0x7392ad=new AWS[(_0xbb9f('0x23'))]({'accessKeyId':_0x4e5f38[0x0],'secretAccessKey':_0x4e5f38[0x1],'region':_0x4e5f38[0x2]});var _0x263829={'botAlias':'$LATEST','botName':_0x4e5f38[0x3],'inputText':this[_0xbb9f('0x24')][_0xbb9f('0x1c')],'userId':this[_0xbb9f('0x11')]+':'+this[_0xbb9f('0xa')]['id'][_0xbb9f('0x25')]()};_0x7392ad['postText'](_0x263829,function(_0x8a60fe,_0x45e28e){if(_0x8a60fe){logger[_0xbb9f('0x26')](_0xbb9f('0xd'),_0x1b17b0,_0x8a60fe[_0xbb9f('0x24')]);_0x19b4cf['next']();}else if(_0x45e28e&&_0x45e28e['message']){_0x385b84[_0xbb9f('0x1c')][_0xbb9f('0x27')]=_0x45e28e;_0x3b34dd[_0xbb9f('0x1c')]=_0x45e28e[_0xbb9f('0x24')];_0x3b34dd['providerName']='amazonlex';_0x3b34dd[_0xbb9f('0x28')]=JSON[_0xbb9f('0x20')](_0x45e28e);return rpc[_0x584968+_0xbb9f('0x1e')][_0xbb9f('0x1f')](_0x3b34dd)[_0xbb9f('0x29')](function(_0x56d695){logger[_0xbb9f('0xc')](_0xbb9f('0xd'),_0x1b17b0,_0x3b34dd[_0xbb9f('0x1c')]);if(_0x45e28e['dialogState']==_0xbb9f('0x2a')){_0x19b4cf[_0xbb9f('0x2b')]();}else{_0x19b4cf[_0xbb9f('0x21')]();}})[_0xbb9f('0x2c')](function(_0x26032e){logger['error'](_0xbb9f('0xd'),_0x1b17b0,JSON[_0xbb9f('0x20')](_0x26032e));_0x19b4cf['next']();});}else{_0x19b4cf[_0xbb9f('0x2b')]();}});}}catch(_0x35e7e0){logger[_0xbb9f('0x26')](_0xbb9f('0xd'),_0x1b17b0,JSON[_0xbb9f('0x20')](_0x35e7e0));_0x19b4cf[_0xbb9f('0x21')]();}};};
\ No newline at end of file
+var _0xecf2=['lodash','moment','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','UserId','info','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','sms','whatsapp','phone','channel','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','then','error','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','$LATEST','message','toString','amazonlex','dialogState','Failed','catch','stringify'];(function(_0x3beaa0,_0x3f8233){var _0x2856a1=function(_0x25f1a6){while(--_0x25f1a6){_0x3beaa0['push'](_0x3beaa0['shift']());}};_0x2856a1(++_0x3f8233);}(_0xecf2,0xff));var _0x2ecf=function(_0x410756,_0x30e52e){_0x410756=_0x410756-0x0;var _0x3c2bdf=_0xecf2[_0x410756];return _0x3c2bdf;};'use strict';var _=require(_0x2ecf('0x0'));var moment=require(_0x2ecf('0x1'));var AWS=require('aws-sdk');var utils=require('./utils');var logger=require(_0x2ecf('0x2'))(_0x2ecf('0x3'));var rpc={'chatMessage':require(_0x2ecf('0x4')),'openchannelMessage':require(_0x2ecf('0x5')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x2ecf('0x6')),'faxMessage':require(_0x2ecf('0x7')),'whatsappMessage':require(_0x2ecf('0x8'))};exports[_0x2ecf('0x9')]=function(_0x28e44a,_0x4763f9){return function(_0x173038){try{if(!_[_0x2ecf('0xa')](this[_0x2ecf('0xb')][_0x2ecf('0xc')])){logger[_0x2ecf('0xd')](_0x2ecf('0xe'),_0x28e44a,_0x2ecf('0xf'));return _0x173038[_0x2ecf('0x10')]();}var _0xabecff={'ContactId':this[_0x2ecf('0x11')]['id'],'sentAt':moment()[_0x2ecf('0x12')](_0x2ecf('0x13')),'direction':_0x2ecf('0x14')};if(this['channel']===_0x2ecf('0x15')||this['channel']===_0x2ecf('0x16')){_0xabecff[_0x2ecf('0x17')]=this['interaction']['phone'];}var _0xd9abaa=this[_0x2ecf('0x18')];if(_0xd9abaa===_0x2ecf('0x19')){_0xabecff[_0x2ecf('0x1a')]=this[_0x2ecf('0x1b')]['id'];}else{_0xabecff[_[_0x2ecf('0x1c')](_0xd9abaa)+_0x2ecf('0x1d')]=this[_0x2ecf('0x1b')]['id'];}_0xabecff[_[_0x2ecf('0x1c')](_0xd9abaa)+_0x2ecf('0x1e')]=this[_0x2ecf('0xb')]['id'];if(this[_0x2ecf('0xb')][_0x2ecf('0x1f')]){var _0x233e57=_0x4763f9[0x4];if(!_[_0x2ecf('0x20')](_0x233e57)){_0xabecff[_0x2ecf('0x21')]=utils[_0x2ecf('0x22')](_0x233e57,this);return rpc[_0xd9abaa+_0x2ecf('0x23')][_0x2ecf('0x24')](_0xabecff)[_0x2ecf('0x25')](function(_0x34800d){logger['info'](_0x2ecf('0xe'),_0x28e44a,_0xabecff[_0x2ecf('0x21')]);})['catch'](function(_0x4d37be){logger[_0x2ecf('0x26')](_0x2ecf('0xe'),_0x28e44a,JSON['stringify'](_0x4d37be));})['finally'](function(){logger[_0x2ecf('0xd')](_0x2ecf('0x27'),_0x28e44a);_0x173038[_0x2ecf('0x28')]();});}else{logger[_0x2ecf('0xd')](_0x2ecf('0x29'),_0x28e44a);_0x173038[_0x2ecf('0x28')]();}}else{var _0x306001=this;var _0x30ee3a=new AWS[(_0x2ecf('0x2a'))]({'accessKeyId':_0x4763f9[0x0],'secretAccessKey':_0x4763f9[0x1],'region':_0x4763f9[0x2]});var _0x4ae459={'botAlias':_0x2ecf('0x2b'),'botName':_0x4763f9[0x3],'inputText':this[_0x2ecf('0x2c')]['body'],'userId':this[_0x2ecf('0x18')]+':'+this['interaction']['id'][_0x2ecf('0x2d')]()};_0x30ee3a['postText'](_0x4ae459,function(_0x2b5400,_0x4b6f07){if(_0x2b5400){logger[_0x2ecf('0x26')](_0x2ecf('0xe'),_0x28e44a,_0x2b5400[_0x2ecf('0x2c')]);_0x173038[_0x2ecf('0x10')]();}else if(_0x4b6f07&&_0x4b6f07[_0x2ecf('0x2c')]){_0x306001[_0x2ecf('0x21')][_0x2ecf('0x2e')]=_0x4b6f07;_0xabecff[_0x2ecf('0x21')]=_0x4b6f07['message'];_0xabecff['providerName']=_0x2ecf('0x2e');_0xabecff['providerResponse']=JSON['stringify'](_0x4b6f07);return rpc[_0xd9abaa+_0x2ecf('0x23')][_0x2ecf('0x24')](_0xabecff)['then'](function(_0x59fc1e){logger[_0x2ecf('0xd')]('[%s][AMAZONLEX]\x20%s',_0x28e44a,_0xabecff[_0x2ecf('0x21')]);if(_0x4b6f07[_0x2ecf('0x2f')]==_0x2ecf('0x30')){_0x173038[_0x2ecf('0x10')]();}else{_0x173038[_0x2ecf('0x28')]();}})[_0x2ecf('0x31')](function(_0x2f07b1){logger[_0x2ecf('0x26')](_0x2ecf('0xe'),_0x28e44a,JSON['stringify'](_0x2f07b1));_0x173038[_0x2ecf('0x10')]();});}else{_0x173038['next']();}});}}catch(_0x946144){logger[_0x2ecf('0x26')]('[%s][AMAZONLEX]\x20%s',_0x28e44a,JSON[_0x2ecf('0x32')](_0x946144));_0x173038[_0x2ecf('0x28')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e0c=['[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','lodash','moment','./utils','../../../../config/logger','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../mailRpc','consequence','channel','mail','isAutoreply','next','isNil','interaction','created','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','autoreplyExecuted','info','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','YYYY-MM-DD\x20HH:mm:ss','body','getMustacheRender','message','from','phone','subject','Re:','Re:\x20','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','Message','Smtp','service','host','port','secure','authentication','inReplyTo','messageId','html','replace','<div\x20id=\x22xm-mail-content\x22','<div','</div>','headers','auto-replied','All','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','catch','stringify','finally','resolve','Interaction','update','error'];(function(_0x3f042c,_0x3d2cfe){var _0x280d2e=function(_0x235cad){while(--_0x235cad){_0x3f042c['push'](_0x3f042c['shift']());}};_0x280d2e(++_0x3d2cfe);}(_0x2e0c,0x90));var _0xc2e0=function(_0x5c085a,_0x59b8bd){_0x5c085a=_0x5c085a-0x0;var _0x18804d=_0x2e0c[_0x5c085a];return _0x18804d;};'use strict';var _=require(_0xc2e0('0x0'));var moment=require(_0xc2e0('0x1'));var utils=require(_0xc2e0('0x2'));var logger=require(_0xc2e0('0x3'))('routing');var rpc={'chatMessage':require(_0xc2e0('0x4')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xc2e0('0x5')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xc2e0('0x6')),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0xc2e0('0x7')),'openchannelInteraction':require(_0xc2e0('0x8')),'mailInteraction':require(_0xc2e0('0x9')),'smsInteraction':require(_0xc2e0('0xa')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require(_0xc2e0('0xb'));exports[_0xc2e0('0xc')]=function(_0x4af824,_0x33d415,_0x52b43e,_0x21ab5b){return function(_0x55025d){try{var _0x3d5bf1=this[_0xc2e0('0xd')];if(_0x3d5bf1===_0xc2e0('0xe')&&_0x21ab5b['body'][_0xc2e0('0xf')]){logger['info']('[%s][AUTOREPLY]\x20%s',_0x4af824,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x55025d[_0xc2e0('0x10')]();}if(_0x33d415[0x0]==='1'&&(_[_0xc2e0('0x11')](this[_0xc2e0('0x12')][_0xc2e0('0x13')])||!this[_0xc2e0('0x12')][_0xc2e0('0x13')])){logger['info'](_0xc2e0('0x14'),_0x4af824,_0xc2e0('0x15'));return _0x55025d[_0xc2e0('0x10')]();}if(_0x33d415[0x0]==='2'&&this[_0xc2e0('0x12')][_0xc2e0('0x16')]){logger[_0xc2e0('0x17')](_0xc2e0('0x18'),_0x4af824,_0xc2e0('0x19'));return _0x55025d[_0xc2e0('0x10')]();}var _0x51f01e={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0xc2e0('0x1a')),'direction':'out'};if(this[_0xc2e0('0xd')]===_0xc2e0('0xe')){_0x51f01e[_0xc2e0('0x1b')]=utils['getMustacheRender'](_0x33d415[0x2],this);}else{_0x51f01e[_0xc2e0('0x1b')]=utils[_0xc2e0('0x1c')](_0x33d415[0x1],this);}if(this['message']){_0x51f01e['to']=this[_0xc2e0('0x1d')][_0xc2e0('0x1e')]||'';if(this['channel']===_0xc2e0('0xe')&&_0x33d415[0x1]==='1'){_0x51f01e['cc']=this['message']['cc']||'';}_0x51f01e[_0xc2e0('0x1e')]=this[_0xc2e0('0x1d')]['to']||'';_0x51f01e[_0xc2e0('0x1f')]=this['message']['phone']||'';_0x51f01e['read']=!![];if(this[_0xc2e0('0x1d')][_0xc2e0('0x20')]){_0x51f01e[_0xc2e0('0x20')]='';_0x51f01e[_0xc2e0('0x20')]+=_['startsWith'](this[_0xc2e0('0x1d')][_0xc2e0('0x20')],_0xc2e0('0x21'))?'':_0xc2e0('0x22');_0x51f01e['subject']+=this[_0xc2e0('0x1d')][_0xc2e0('0x20')];}}if(this['channel']==='chat'){_0x51f01e[_0xc2e0('0x23')]=this[_0xc2e0('0x24')]['id'];}else{_0x51f01e[_[_0xc2e0('0x25')](this[_0xc2e0('0xd')])+_0xc2e0('0x26')]=this[_0xc2e0('0x24')]['id'];}_0x51f01e[_[_0xc2e0('0x25')](this['channel'])+_0xc2e0('0x27')]=this[_0xc2e0('0x12')]['id'];var _0x3ada57=this[_0xc2e0('0x12')];if(rpc[this['channel']+_0xc2e0('0x28')]){if(this[_0xc2e0('0xd')]===_0xc2e0('0xe')){var _0x2b5123={'tls':{'rejectUnauthorized':![]}};if(this[_0xc2e0('0x24')][_0xc2e0('0x29')]['service']){_0x2b5123[_0xc2e0('0x2a')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')][_0xc2e0('0x2a')];}else{_0x2b5123[_0xc2e0('0x2b')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')]['host'];_0x2b5123[_0xc2e0('0x2c')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')]['port'];_0x2b5123[_0xc2e0('0x2d')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')][_0xc2e0('0x2d')];}if(this['account'][_0xc2e0('0x29')][_0xc2e0('0x2e')]){_0x2b5123['auth']={'user':this[_0xc2e0('0x24')]['Smtp']['user'],'pass':this[_0xc2e0('0x24')]['Smtp']['pass']};}_0x51f01e[_0xc2e0('0x2f')]=this['message'][_0xc2e0('0x30')];_0x51f01e[_0xc2e0('0x31')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0xc2e0('0x32')](_0x51f01e['body'],_0xc2e0('0x33'),_0xc2e0('0x34'))+_0xc2e0('0x35');_0x51f01e[_0xc2e0('0x36')]={'Auto-Submitted':_0xc2e0('0x37'),'X-Auto-Response-Suppress':_0xc2e0('0x38'),'Precedence':_0xc2e0('0x39')};return mailRpc[_0xc2e0('0x3a')](_0x2b5123,_0x51f01e)[_0xc2e0('0x3b')](function(_0x9607ea){logger[_0xc2e0('0x17')](_0xc2e0('0x3c'),_0x4af824);_0x51f01e[_0xc2e0('0x30')]=_0x9607ea[_0xc2e0('0x1d')]['messageId'];return rpc[_0x3d5bf1+_0xc2e0('0x28')][_0xc2e0('0x3d')](_0x51f01e);})[_0xc2e0('0x3b')](function(_0xd14631){logger[_0xc2e0('0x17')]('[%s][AUTOREPLY]\x20%s',_0x4af824,JSON['stringify'](_0xd14631));})[_0xc2e0('0x3e')](function(_0x218c76){logger['error']('[RPC][%s][AUTOREPLY]\x20%s',_0x4af824,JSON[_0xc2e0('0x3f')](_0x218c76));})[_0xc2e0('0x40')](function(){Promise[_0xc2e0('0x41')]()['then'](function(){if(_0x33d415[0x0]!=='2'||_0x3ada57[_0xc2e0('0x16')])return;return rpc[_0x3d5bf1+_0xc2e0('0x42')][_0xc2e0('0x43')](_0x3ada57['id'],{'autoreplyExecuted':!![]})[_0xc2e0('0x3b')](function(_0x2f7b56){logger[_0xc2e0('0x17')](_0xc2e0('0x18'),_0x4af824,JSON[_0xc2e0('0x3f')](_0x2f7b56));})[_0xc2e0('0x3e')](function(_0x17314f){logger[_0xc2e0('0x44')](_0xc2e0('0x45'),_0x4af824,JSON['stringify'](_0x17314f));});})[_0xc2e0('0x3b')](function(){_0x55025d[_0xc2e0('0x10')]();});});}else{return rpc[this['channel']+'Message'][_0xc2e0('0x3d')](_0x51f01e)['then'](function(_0x569025){logger['info']('[%s][AUTOREPLY]\x20%s',_0x4af824,_0x51f01e[_0xc2e0('0x1b')]);})['catch'](function(_0x5321dc){logger['error'](_0xc2e0('0x14'),_0x4af824,JSON['stringify'](_0x5321dc));})[_0xc2e0('0x40')](function(){Promise[_0xc2e0('0x41')]()['then'](function(){if(_0x33d415[0x0]!=='2'||_0x3ada57[_0xc2e0('0x16')])return;return rpc[_0x3d5bf1+'Interaction'][_0xc2e0('0x43')](_0x3ada57['id'],{'autoreplyExecuted':!![]})[_0xc2e0('0x3b')](function(_0x39f47b){logger[_0xc2e0('0x17')](_0xc2e0('0x18'),_0x4af824,JSON[_0xc2e0('0x3f')](_0x39f47b));})[_0xc2e0('0x3e')](function(_0x1f6bed){logger[_0xc2e0('0x44')](_0xc2e0('0x45'),_0x4af824,JSON[_0xc2e0('0x3f')](_0x1f6bed));});})[_0xc2e0('0x3b')](function(){_0x55025d['next']();});});}}}catch(_0x1cf34){logger['error'](_0xc2e0('0x14'),_0x4af824,JSON['stringify'](_0x1cf34));_0x55025d[_0xc2e0('0x46')]();}};};
\ No newline at end of file
+var _0x24c0=['[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','getMustacheRender','message','from','phone','subject','Re:','chat','ChatWebsiteId','upperFirst','account','InteractionId','Message','mail','service','Smtp','host','port','secure','authentication','auth','inReplyTo','html','replace','<div\x20id=\x22xm-mail-content\x22','<div','</div>','headers','auto-replied','All','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','messageId','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','Interaction','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','create','stop','lodash','moment','./utils','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/mailInteraction','../../rpc/smsInteraction','../../mailRpc','consequence','channel','body','isAutoreply','[%s][AUTOREPLY]\x20%s','next','isNil','interaction','info','autoreplyExecuted'];(function(_0x506d83,_0x1899e9){var _0x335e8b=function(_0x4a7044){while(--_0x4a7044){_0x506d83['push'](_0x506d83['shift']());}};_0x335e8b(++_0x1899e9);}(_0x24c0,0x1cf));var _0x024c=function(_0x301bee,_0x91a563){_0x301bee=_0x301bee-0x0;var _0x3fbdbc=_0x24c0[_0x301bee];return _0x3fbdbc;};'use strict';var _=require(_0x024c('0x0'));var moment=require(_0x024c('0x1'));var utils=require(_0x024c('0x2'));var logger=require('../../../../config/logger')(_0x024c('0x3'));var rpc={'chatMessage':require(_0x024c('0x4')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x024c('0x5')),'smsMessage':require(_0x024c('0x6')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require(_0x024c('0x7')),'smsInteraction':require(_0x024c('0x8')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require(_0x024c('0x9'));exports[_0x024c('0xa')]=function(_0x4111b8,_0x2598fe,_0xefac0,_0x563a6c){return function(_0x5e206f){try{var _0x2a2641=this[_0x024c('0xb')];if(_0x2a2641==='mail'&&_0x563a6c[_0x024c('0xc')][_0x024c('0xd')]){logger['info'](_0x024c('0xe'),_0x4111b8,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x5e206f[_0x024c('0xf')]();}if(_0x2598fe[0x0]==='1'&&(_[_0x024c('0x10')](this['interaction']['created'])||!this[_0x024c('0x11')]['created'])){logger[_0x024c('0x12')](_0x024c('0xe'),_0x4111b8,'Autoreply\x20already\x20sent');return _0x5e206f[_0x024c('0xf')]();}if(_0x2598fe[0x0]==='2'&&this[_0x024c('0x11')][_0x024c('0x13')]){logger['info'](_0x024c('0x14'),_0x4111b8,_0x024c('0x15'));return _0x5e206f['next']();}var _0x590eea={'ContactId':this[_0x024c('0x16')]['id'],'sentAt':moment()[_0x024c('0x17')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':'out'};if(this[_0x024c('0xb')]==='mail'){_0x590eea['body']=utils[_0x024c('0x18')](_0x2598fe[0x2],this);}else{_0x590eea[_0x024c('0xc')]=utils[_0x024c('0x18')](_0x2598fe[0x1],this);}if(this['message']){_0x590eea['to']=this[_0x024c('0x19')][_0x024c('0x1a')]||'';if(this['channel']==='mail'&&_0x2598fe[0x1]==='1'){_0x590eea['cc']=this['message']['cc']||'';}_0x590eea[_0x024c('0x1a')]=this[_0x024c('0x19')]['to']||'';_0x590eea[_0x024c('0x1b')]=this['message']['phone']||'';_0x590eea['read']=!![];if(this[_0x024c('0x19')][_0x024c('0x1c')]){_0x590eea['subject']='';_0x590eea[_0x024c('0x1c')]+=_['startsWith'](this[_0x024c('0x19')]['subject'],_0x024c('0x1d'))?'':'Re:\x20';_0x590eea[_0x024c('0x1c')]+=this[_0x024c('0x19')][_0x024c('0x1c')];}}if(this[_0x024c('0xb')]===_0x024c('0x1e')){_0x590eea[_0x024c('0x1f')]=this['account']['id'];}else{_0x590eea[_[_0x024c('0x20')](this[_0x024c('0xb')])+'AccountId']=this[_0x024c('0x21')]['id'];}_0x590eea[_['upperFirst'](this[_0x024c('0xb')])+_0x024c('0x22')]=this[_0x024c('0x11')]['id'];var _0x4eb2c9=this[_0x024c('0x11')];if(rpc[this[_0x024c('0xb')]+_0x024c('0x23')]){if(this[_0x024c('0xb')]===_0x024c('0x24')){var _0x5e6671={'tls':{'rejectUnauthorized':![]}};if(this['account']['Smtp'][_0x024c('0x25')]){_0x5e6671[_0x024c('0x25')]=this['account'][_0x024c('0x26')][_0x024c('0x25')];}else{_0x5e6671['host']=this['account'][_0x024c('0x26')][_0x024c('0x27')];_0x5e6671[_0x024c('0x28')]=this['account']['Smtp'][_0x024c('0x28')];_0x5e6671[_0x024c('0x29')]=this['account'][_0x024c('0x26')][_0x024c('0x29')];}if(this[_0x024c('0x21')][_0x024c('0x26')][_0x024c('0x2a')]){_0x5e6671[_0x024c('0x2b')]={'user':this[_0x024c('0x21')]['Smtp']['user'],'pass':this[_0x024c('0x21')][_0x024c('0x26')]['pass']};}_0x590eea[_0x024c('0x2c')]=this['message']['messageId'];_0x590eea[_0x024c('0x2d')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0x024c('0x2e')](_0x590eea['body'],_0x024c('0x2f'),_0x024c('0x30'))+_0x024c('0x31');_0x590eea[_0x024c('0x32')]={'Auto-Submitted':_0x024c('0x33'),'X-Auto-Response-Suppress':_0x024c('0x34'),'Precedence':_0x024c('0x35')};return mailRpc[_0x024c('0x36')](_0x5e6671,_0x590eea)[_0x024c('0x37')](function(_0x44f187){logger[_0x024c('0x12')](_0x024c('0x38'),_0x4111b8);_0x590eea[_0x024c('0x39')]=_0x44f187[_0x024c('0x19')]['messageId'];return rpc[_0x2a2641+_0x024c('0x23')]['create'](_0x590eea);})[_0x024c('0x37')](function(_0x39cbc0){logger['info'](_0x024c('0xe'),_0x4111b8,JSON[_0x024c('0x3a')](_0x39cbc0));})[_0x024c('0x3b')](function(_0x2b0540){logger[_0x024c('0x3c')](_0x024c('0x3d'),_0x4111b8,JSON[_0x024c('0x3a')](_0x2b0540));})[_0x024c('0x3e')](function(){Promise[_0x024c('0x3f')]()['then'](function(){if(_0x2598fe[0x0]!=='2'||_0x4eb2c9[_0x024c('0x13')])return;return rpc[_0x2a2641+_0x024c('0x40')][_0x024c('0x41')](_0x4eb2c9['id'],{'autoreplyExecuted':!![]})[_0x024c('0x37')](function(_0x3408ce){logger['info']('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x4111b8,JSON['stringify'](_0x3408ce));})[_0x024c('0x3b')](function(_0x56e6b9){logger[_0x024c('0x3c')](_0x024c('0x42'),_0x4111b8,JSON[_0x024c('0x3a')](_0x56e6b9));});})['then'](function(){_0x5e206f[_0x024c('0xf')]();});});}else{return rpc[this[_0x024c('0xb')]+'Message'][_0x024c('0x43')](_0x590eea)[_0x024c('0x37')](function(_0x2f2643){logger[_0x024c('0x12')](_0x024c('0xe'),_0x4111b8,_0x590eea[_0x024c('0xc')]);})['catch'](function(_0x4680e8){logger['error'](_0x024c('0xe'),_0x4111b8,JSON[_0x024c('0x3a')](_0x4680e8));})[_0x024c('0x3e')](function(){Promise[_0x024c('0x3f')]()[_0x024c('0x37')](function(){if(_0x2598fe[0x0]!=='2'||_0x4eb2c9[_0x024c('0x13')])return;return rpc[_0x2a2641+_0x024c('0x40')]['update'](_0x4eb2c9['id'],{'autoreplyExecuted':!![]})['then'](function(_0xe90c7f){logger[_0x024c('0x12')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x4111b8,JSON[_0x024c('0x3a')](_0xe90c7f));})[_0x024c('0x3b')](function(_0x4bc637){logger[_0x024c('0x3c')](_0x024c('0x42'),_0x4111b8,JSON['stringify'](_0x4bc637));});})[_0x024c('0x37')](function(){_0x5e206f[_0x024c('0xf')]();});});}}}catch(_0x3c8b5c){logger[_0x024c('0x3c')](_0x024c('0xe'),_0x4111b8,JSON[_0x024c('0x3a')](_0x3c8b5c));_0x5e206f[_0x024c('0x44')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad25=['[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','catch','error','[%s][CLOSE]\x20%s','finally','stop','stringify','moment','routing','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','info','format','YYYY-MM-DD\x20HH:mm:ss','channel','Interaction','interaction','then'];(function(_0x13dac0,_0x5db124){var _0x1eeca7=function(_0x56f5fa){while(--_0x56f5fa){_0x13dac0['push'](_0x13dac0['shift']());}};_0x1eeca7(++_0x5db124);}(_0xad25,0x118));var _0x5ad2=function(_0x5f3f88,_0x562baf){_0x5f3f88=_0x5f3f88-0x0;var _0xd08119=_0xad25[_0x5f3f88];return _0xd08119;};'use strict';var moment=require(_0x5ad2('0x0'));var logger=require('../../../../config/logger')(_0x5ad2('0x1'));var rpc={'chatInteraction':require(_0x5ad2('0x2')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'smsInteraction':require(_0x5ad2('0x3')),'mailInteraction':require(_0x5ad2('0x4')),'faxInteraction':require(_0x5ad2('0x5')),'whatsappInteraction':require(_0x5ad2('0x6'))};exports['consequence']=function(_0x49cc36,_0xd28f73,_0x280c43,_0x206e15){return function(_0x7d790e){try{logger[_0x5ad2('0x7')]('[%s][CLOSE]\x20reason\x20%s',_0x49cc36,_0xd28f73[0x0]);var _0x54a50a={'closed':0x1,'closedAt':moment()[_0x5ad2('0x8')](_0x5ad2('0x9')),'closeReason':'system','disposition':_0xd28f73[0x0]};if(rpc[_0x206e15[_0x5ad2('0xa')]+_0x5ad2('0xb')]){rpc[_0x206e15['channel']+_0x5ad2('0xb')]['update'](_0x206e15[_0x5ad2('0xc')]['id'],_0x54a50a)[_0x5ad2('0xd')](function(_0x48465c){logger[_0x5ad2('0x7')](_0x5ad2('0xe'),_0x49cc36,_0x206e15['interaction']['id']);})[_0x5ad2('0xf')](function(_0x513dca){logger[_0x5ad2('0x10')](_0x5ad2('0x11'),_0x49cc36,JSON['stringify'](_0x513dca));})[_0x5ad2('0x12')](function(){_0x7d790e[_0x5ad2('0x13')]();});}}catch(_0xee67e4){logger[_0x5ad2('0x10')](_0x5ad2('0x11'),_0x49cc36,JSON[_0x5ad2('0x14')](_0xee67e4));_0x7d790e[_0x5ad2('0x13')]();}};};
\ No newline at end of file
+var _0xa64a=['stringify','finally','stop','moment','../../../../config/logger','routing','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','info','[%s][CLOSE]\x20reason\x20%s','format','YYYY-MM-DD\x20HH:mm:ss','system','channel','Interaction','update','interaction','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','error','[%s][CLOSE]\x20%s'];(function(_0x18ee12,_0x31c105){var _0x328b67=function(_0x334d70){while(--_0x334d70){_0x18ee12['push'](_0x18ee12['shift']());}};_0x328b67(++_0x31c105);}(_0xa64a,0x100));var _0xaa64=function(_0x337bac,_0x46b105){_0x337bac=_0x337bac-0x0;var _0x4d93e7=_0xa64a[_0x337bac];return _0x4d93e7;};'use strict';var moment=require(_0xaa64('0x0'));var logger=require(_0xaa64('0x1'))(_0xaa64('0x2'));var rpc={'chatInteraction':require(_0xaa64('0x3')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'smsInteraction':require(_0xaa64('0x4')),'mailInteraction':require(_0xaa64('0x5')),'faxInteraction':require(_0xaa64('0x6')),'whatsappInteraction':require(_0xaa64('0x7'))};exports['consequence']=function(_0x12f2da,_0x1ddd9a,_0x13fc42,_0x55b54a){return function(_0x47a154){try{logger[_0xaa64('0x8')](_0xaa64('0x9'),_0x12f2da,_0x1ddd9a[0x0]);var _0x2b651b={'closed':0x1,'closedAt':moment()[_0xaa64('0xa')](_0xaa64('0xb')),'closeReason':_0xaa64('0xc'),'disposition':_0x1ddd9a[0x0]};if(rpc[_0x55b54a[_0xaa64('0xd')]+_0xaa64('0xe')]){rpc[_0x55b54a['channel']+_0xaa64('0xe')][_0xaa64('0xf')](_0x55b54a[_0xaa64('0x10')]['id'],_0x2b651b)['then'](function(_0x2bcedb){logger['info'](_0xaa64('0x11'),_0x12f2da,_0x55b54a[_0xaa64('0x10')]['id']);})['catch'](function(_0x2c0005){logger[_0xaa64('0x12')](_0xaa64('0x13'),_0x12f2da,JSON[_0xaa64('0x14')](_0x2c0005));})[_0xaa64('0x15')](function(){_0x47a154[_0xaa64('0x16')]();});}}catch(_0x456f48){logger[_0xaa64('0x12')](_0xaa64('0x13'),_0x12f2da,JSON[_0xaa64('0x14')](_0x456f48));_0x47a154[_0xaa64('0x16')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0df=['next','contact','format','YYYY-MM-DD\x20HH:mm:ss','channel','whatsapp','phone','interaction','upperFirst','AccountId','account','InteractionId','isEmpty','body','getMustacheRender','create','then','[%s][DIALOGFLOW]\x20%s','catch','error','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','message','result','fulfillment','speech','providerName','dialogflow','providerResponse','Message','metadata','endConversation','moment','apiai-promise','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.'];(function(_0x266509,_0x499061){var _0x1efca5=function(_0x2de86b){while(--_0x2de86b){_0x266509['push'](_0x266509['shift']());}};_0x1efca5(++_0x499061);}(_0xb0df,0x85));var _0xfb0d=function(_0x5027b1,_0x1409a5){_0x5027b1=_0x5027b1-0x0;var _0x4a46cf=_0xb0df[_0x5027b1];return _0x4a46cf;};'use strict';var _=require('lodash');var moment=require(_0xfb0d('0x0'));var apiai=require(_0xfb0d('0x1'));var md5=require(_0xfb0d('0x2'));var utils=require(_0xfb0d('0x3'));var logger=require(_0xfb0d('0x4'))(_0xfb0d('0x5'));var rpc={'chatMessage':require(_0xfb0d('0x6')),'openchannelMessage':require(_0xfb0d('0x7')),'mailMessage':require(_0xfb0d('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xfb0d('0x9')),'whatsappMessage':require(_0xfb0d('0xa'))};exports['consequence']=function(_0x5b7591,_0xd9beab){return function(_0xee3329){try{if(!_['isNil'](this['interaction'][_0xfb0d('0xb')])){logger[_0xfb0d('0xc')]('[%s][DIALOGFLOW]\x20%s',_0x5b7591,_0xfb0d('0xd'));return _0xee3329[_0xfb0d('0xe')]();}var _0x34398f={'ContactId':this[_0xfb0d('0xf')]['id'],'sentAt':moment()[_0xfb0d('0x10')](_0xfb0d('0x11')),'direction':'out'};if(this[_0xfb0d('0x12')]==='sms'||this[_0xfb0d('0x12')]===_0xfb0d('0x13')){_0x34398f[_0xfb0d('0x14')]=this[_0xfb0d('0x15')][_0xfb0d('0x14')];}var _0x2f41f5=this[_0xfb0d('0x12')];if(_0x2f41f5==='chat'){_0x34398f['ChatWebsiteId']=this['account']['id'];}else{_0x34398f[_[_0xfb0d('0x16')](_0x2f41f5)+_0xfb0d('0x17')]=this[_0xfb0d('0x18')]['id'];}_0x34398f[_[_0xfb0d('0x16')](_0x2f41f5)+_0xfb0d('0x19')]=this[_0xfb0d('0x15')]['id'];if(this[_0xfb0d('0x15')]['created']){var _0x77e8e7=_0xd9beab[0x2];if(!_[_0xfb0d('0x1a')](_0x77e8e7)){_0x34398f[_0xfb0d('0x1b')]=utils[_0xfb0d('0x1c')](_0x77e8e7,this);return rpc[_0x2f41f5+'Message'][_0xfb0d('0x1d')](_0x34398f)[_0xfb0d('0x1e')](function(_0x374de1){logger[_0xfb0d('0xc')](_0xfb0d('0x1f'),_0x5b7591,_0x34398f[_0xfb0d('0x1b')]);})[_0xfb0d('0x20')](function(_0x499fa1){logger[_0xfb0d('0x21')](_0xfb0d('0x1f'),_0x5b7591,JSON[_0xfb0d('0x22')](_0x499fa1));})[_0xfb0d('0x23')](function(){logger[_0xfb0d('0xc')](_0xfb0d('0x24'),_0x5b7591);_0xee3329[_0xfb0d('0x25')]();});}else{logger[_0xfb0d('0xc')](_0xfb0d('0x26'),_0x5b7591);_0xee3329[_0xfb0d('0x25')]();}}else{var _0x3411cb=this;var _0x5ef220=apiai(_0xd9beab[0x0],{'language':_0xd9beab[0x1]||'en'});return _0x5ef220['textRequest'](this[_0xfb0d('0x27')][_0xfb0d('0x1b')],{'sessionId':md5(this['interaction']['id'])})['then'](function(_0x3bd70b){_0x3411cb[_0xfb0d('0x1b')]['dialogflow']=_0x3bd70b;_0x34398f[_0xfb0d('0x1b')]=_0x3bd70b[_0xfb0d('0x28')][_0xfb0d('0x29')][_0xfb0d('0x2a')];_0x34398f[_0xfb0d('0x2b')]=_0xfb0d('0x2c');_0x34398f[_0xfb0d('0x2d')]=JSON[_0xfb0d('0x22')](_0x3bd70b);return rpc[_0x2f41f5+_0xfb0d('0x2e')][_0xfb0d('0x1d')](_0x34398f)[_0xfb0d('0x1e')](function(_0x803bdd){logger['info'](_0xfb0d('0x1f'),_0x5b7591,_0x34398f[_0xfb0d('0x1b')]);if(_0x3bd70b['result'][_0xfb0d('0x2f')][_0xfb0d('0x30')]){_0xee3329[_0xfb0d('0xe')]();}else{_0xee3329[_0xfb0d('0x25')]();}})['catch'](function(_0x4fb6ba){logger[_0xfb0d('0x21')]('[%s][DIALOGFLOW]\x20%s',_0x5b7591,JSON[_0xfb0d('0x22')](_0x4fb6ba));_0xee3329['next']();});})[_0xfb0d('0x20')](function(_0x3093f5){logger[_0xfb0d('0x21')](_0xfb0d('0x1f'),_0x5b7591,_0x3093f5['message']);_0xee3329['next']();});}}catch(_0x1a48e0){logger[_0xfb0d('0x21')](_0xfb0d('0x1f'),_0x5b7591,JSON[_0xfb0d('0x22')](_0x1a48e0));_0xee3329['stop']();}};};
\ No newline at end of file
+var _0x28b1=['[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','message','result','fulfillment','speech','providerName','metadata','endConversation','error','lodash','moment','apiai-promise','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/smsMessage','consequence','isNil','interaction','UserId','info','next','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','getMustacheRender','Message','create','then','[%s][DIALOGFLOW]\x20%s','body','catch','stringify','stop'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x28b1,0x1d6));var _0x128b=function(_0x53d8a9,_0x259714){_0x53d8a9=_0x53d8a9-0x0;var _0x2fc900=_0x28b1[_0x53d8a9];return _0x2fc900;};'use strict';var _=require(_0x128b('0x0'));var moment=require(_0x128b('0x1'));var apiai=require(_0x128b('0x2'));var md5=require('md5');var utils=require(_0x128b('0x3'));var logger=require(_0x128b('0x4'))(_0x128b('0x5'));var rpc={'chatMessage':require(_0x128b('0x6')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x128b('0x7')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x128b('0x8')]=function(_0x59cd4f,_0xcd2ab0){return function(_0x1af910){try{if(!_[_0x128b('0x9')](this[_0x128b('0xa')][_0x128b('0xb')])){logger[_0x128b('0xc')]('[%s][DIALOGFLOW]\x20%s',_0x59cd4f,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x1af910[_0x128b('0xd')]();}var _0x568534={'ContactId':this['contact']['id'],'sentAt':moment()[_0x128b('0xe')](_0x128b('0xf')),'direction':_0x128b('0x10')};if(this[_0x128b('0x11')]===_0x128b('0x12')||this['channel']===_0x128b('0x13')){_0x568534['phone']=this[_0x128b('0xa')][_0x128b('0x14')];}var _0x36fe2b=this[_0x128b('0x11')];if(_0x36fe2b===_0x128b('0x15')){_0x568534[_0x128b('0x16')]=this[_0x128b('0x17')]['id'];}else{_0x568534[_[_0x128b('0x18')](_0x36fe2b)+_0x128b('0x19')]=this[_0x128b('0x17')]['id'];}_0x568534[_[_0x128b('0x18')](_0x36fe2b)+_0x128b('0x1a')]=this[_0x128b('0xa')]['id'];if(this['interaction']['created']){var _0x5110be=_0xcd2ab0[0x2];if(!_['isEmpty'](_0x5110be)){_0x568534['body']=utils[_0x128b('0x1b')](_0x5110be,this);return rpc[_0x36fe2b+_0x128b('0x1c')][_0x128b('0x1d')](_0x568534)[_0x128b('0x1e')](function(_0x4479f9){logger['info'](_0x128b('0x1f'),_0x59cd4f,_0x568534[_0x128b('0x20')]);})[_0x128b('0x21')](function(_0x1645e0){logger['error'](_0x128b('0x1f'),_0x59cd4f,JSON[_0x128b('0x22')](_0x1645e0));})['finally'](function(){logger[_0x128b('0xc')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x59cd4f);_0x1af910[_0x128b('0x23')]();});}else{logger[_0x128b('0xc')](_0x128b('0x24'),_0x59cd4f);_0x1af910['stop']();}}else{var _0x55c795=this;var _0x39bc81=apiai(_0xcd2ab0[0x0],{'language':_0xcd2ab0[0x1]||'en'});return _0x39bc81[_0x128b('0x25')](this[_0x128b('0x26')][_0x128b('0x20')],{'sessionId':md5(this[_0x128b('0xa')]['id'])})[_0x128b('0x1e')](function(_0x182692){_0x55c795['body']['dialogflow']=_0x182692;_0x568534[_0x128b('0x20')]=_0x182692[_0x128b('0x27')][_0x128b('0x28')][_0x128b('0x29')];_0x568534[_0x128b('0x2a')]='dialogflow';_0x568534['providerResponse']=JSON[_0x128b('0x22')](_0x182692);return rpc[_0x36fe2b+_0x128b('0x1c')][_0x128b('0x1d')](_0x568534)['then'](function(_0x10e736){logger[_0x128b('0xc')]('[%s][DIALOGFLOW]\x20%s',_0x59cd4f,_0x568534[_0x128b('0x20')]);if(_0x182692[_0x128b('0x27')][_0x128b('0x2b')][_0x128b('0x2c')]){_0x1af910[_0x128b('0xd')]();}else{_0x1af910[_0x128b('0x23')]();}})[_0x128b('0x21')](function(_0xdf67a7){logger[_0x128b('0x2d')]('[%s][DIALOGFLOW]\x20%s',_0x59cd4f,JSON[_0x128b('0x22')](_0xdf67a7));_0x1af910[_0x128b('0xd')]();});})[_0x128b('0x21')](function(_0x145a6d){logger['error']('[%s][DIALOGFLOW]\x20%s',_0x59cd4f,_0x145a6d['message']);_0x1af910[_0x128b('0xd')]();});}}catch(_0x2d87f6){logger[_0x128b('0x2d')](_0x128b('0x1f'),_0x59cd4f,JSON[_0x128b('0x22')](_0x2d87f6));_0x1af910[_0x128b('0x23')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c74=['replace','SessionsClient','sessionPath','detectIntent','then','length','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','DIALOGFLOWV2_QUERYTEXT','queryText','intentDetectionConfidence','providerName','providerResponse','fulfillmentText','push','all','next','catch','stringify','message','dialogflow','md5','moment','bluebird','../../../../config/logger','routing','./utils','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','clone','body','Message','create','info','error','[%s][DIALOGFLOWV2]\x20%s','consequence','isNil','contact','out','channel','sms','phone','interaction','ChatWebsiteId','upperFirst','account','InteractionId','created','getMustacheRender','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!'];(function(_0xf97295,_0x2d043d){var _0x4c8635=function(_0x4a4a11){while(--_0x4a4a11){_0xf97295['push'](_0xf97295['shift']());}};_0x4c8635(++_0x2d043d);}(_0x0c74,0x1cd));var _0x40c7=function(_0x784e31,_0x51f0f1){_0x784e31=_0x784e31-0x0;var _0x221db5=_0x0c74[_0x784e31];return _0x221db5;};'use strict';var _=require('lodash');var dialogflow=require(_0x40c7('0x0'));var md5=require(_0x40c7('0x1'));var moment=require(_0x40c7('0x2'));var Promise=require(_0x40c7('0x3'));var logger=require(_0x40c7('0x4'))(_0x40c7('0x5'));var utils=require(_0x40c7('0x6'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x40c7('0x7')),'mailMessage':require(_0x40c7('0x8')),'smsMessage':require(_0x40c7('0x9')),'faxMessage':require(_0x40c7('0xa')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x24d402,_0x434361,_0x27fd74,_0x393116){return new Promise(function(_0x1d37f0,_0x25a4f8){var _0x269214=_[_0x40c7('0xb')](_0x27fd74);_0x269214[_0x40c7('0xc')]=_0x393116;return rpc[_0x434361+_0x40c7('0xd')][_0x40c7('0xe')](_0x269214)['then'](function(){logger[_0x40c7('0xf')]('[%s][DIALOGFLOWV2]\x20%s',_0x24d402,_0x269214[_0x40c7('0xc')]);_0x1d37f0();})['catch'](function(_0x4163f2){logger[_0x40c7('0x10')](_0x40c7('0x11'),_0x24d402,JSON['stringify'](_0x4163f2));_0x25a4f8(_0x4163f2);});});}exports[_0x40c7('0x12')]=function(_0x430c7e,_0x3f1946){return function(_0x57cab8){try{if(!_[_0x40c7('0x13')](this['interaction']['UserId'])){logger[_0x40c7('0xf')](_0x40c7('0x11'),_0x430c7e,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x57cab8['next']();}var _0x4b5236={'ContactId':this[_0x40c7('0x14')]['id'],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x40c7('0x15')};if(this[_0x40c7('0x16')]===_0x40c7('0x17')||this[_0x40c7('0x16')]==='whatsapp'){_0x4b5236[_0x40c7('0x18')]=this[_0x40c7('0x19')][_0x40c7('0x18')];}var _0x30be23=this['channel'];if(_0x30be23==='chat'){_0x4b5236[_0x40c7('0x1a')]=this['account']['id'];}else{_0x4b5236[_[_0x40c7('0x1b')](_0x30be23)+'AccountId']=this[_0x40c7('0x1c')]['id'];}_0x4b5236[_[_0x40c7('0x1b')](_0x30be23)+_0x40c7('0x1d')]=this[_0x40c7('0x19')]['id'];if(this[_0x40c7('0x19')][_0x40c7('0x1e')]){var _0x1f9bdc=_0x3f1946[0x4];if(!_['isEmpty'](_0x1f9bdc)){_0x4b5236['body']=utils[_0x40c7('0x1f')](_0x1f9bdc,this);return rpc[_0x30be23+_0x40c7('0xd')]['create'](_0x4b5236)['then'](function(_0x2df9b0){logger[_0x40c7('0xf')](_0x40c7('0x11'),_0x430c7e,_0x4b5236[_0x40c7('0xc')]);})['catch'](function(_0x26113e){logger['error'](_0x40c7('0x11'),_0x430c7e,JSON['stringify'](_0x26113e));})[_0x40c7('0x20')](function(){logger[_0x40c7('0xf')](_0x40c7('0x21'),_0x430c7e);_0x57cab8[_0x40c7('0x22')]();});}else{logger[_0x40c7('0xf')](_0x40c7('0x23'),_0x430c7e);_0x57cab8[_0x40c7('0x22')]();}}else{var _0x4f3083=this;var _0x1ad6d7=_0x3f1946[0x2][_0x40c7('0x24')](/\\n/g,'\x0a');var _0x41240a={'credentials':{'private_key':_0x1ad6d7,'client_email':_0x3f1946[0x1]}};var _0xb67851=new dialogflow[(_0x40c7('0x25'))](_0x41240a);var _0x4b2f0b=_0xb67851[_0x40c7('0x26')](_0x3f1946[0x0],md5(_0x4f3083['interaction']['id']));var _0x51db71={'session':_0x4b2f0b,'queryInput':{'text':{'text':_0x4f3083['message'][_0x40c7('0xc')],'languageCode':_0x3f1946[0x3]||'en'}}};return _0xb67851[_0x40c7('0x27')](_0x51db71)[_0x40c7('0x28')](function(_0x1e899e){if(_0x1e899e&&_0x1e899e[_0x40c7('0x29')]){_0x4f3083[_0x40c7('0xc')]['dialogflowV2']=_0x1e899e;var _0x43cc8e=_0x1e899e[0x0];var _0x2bc00d=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')]&&_0x43cc8e[_0x40c7('0x2a')]['diagnosticInfo'][_0x40c7('0x2c')]?_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')][_0x40c7('0x2c')][_0x40c7('0x2d')][_0x40c7('0x2e')]:![];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x2f')]=_0x43cc8e[_0x40c7('0x2a')]['action'];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x30')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x31')];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x32')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')]&&_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')][_0x40c7('0x2c')]?_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')]['fields'][_0x40c7('0x2d')][_0x40c7('0x2e')]:![];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x33')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x34')][_0x40c7('0x35')];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x36')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x34')][_0x40c7('0x37')];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x38')]=_0x43cc8e['queryResult']['intent'][_0x40c7('0x39')];_0x4f3083['body'][_0x40c7('0x3a')]=_0x43cc8e['queryResult']['languageCode'];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x3b')]=_0x43cc8e['queryResult'][_0x40c7('0x3c')];_0x4f3083['body']['DIALOGFLOWV2_SCORE']=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x3d')];_0x4b5236[_0x40c7('0x3e')]='dialogflowV2';_0x4b5236[_0x40c7('0x3f')]=JSON['stringify'](_0x1e899e);var _0x43b2a9=[];for(var _0x54a659=0x0;_0x54a659<_0x1e899e[_0x40c7('0x29')];_0x54a659++){var _0x2e209a=_0x1e899e[_0x54a659];if(_0x2e209a&&_0x2e209a[_0x40c7('0x2a')]&&_0x2e209a[_0x40c7('0x2a')][_0x40c7('0x40')]){_0x43b2a9[_0x40c7('0x41')](createMessage(_0x430c7e,_0x30be23,_0x4b5236,_0x2e209a[_0x40c7('0x2a')][_0x40c7('0x40')]));}}return Promise[_0x40c7('0x42')](_0x43b2a9)[_0x40c7('0x28')](function(){if(_0x2bc00d){_0x57cab8[_0x40c7('0x43')]();}else{_0x57cab8[_0x40c7('0x22')]();}})[_0x40c7('0x44')](function(_0x4c21f1){logger['error'](_0x40c7('0x11'),_0x430c7e,JSON[_0x40c7('0x45')](_0x4c21f1));_0x57cab8[_0x40c7('0x43')]();});}})[_0x40c7('0x44')](function(_0x1fcbea){logger[_0x40c7('0x10')](_0x40c7('0x11'),_0x430c7e,_0x1fcbea[_0x40c7('0x46')]);_0x57cab8[_0x40c7('0x43')]();});}}catch(_0x174074){logger[_0x40c7('0x10')](_0x40c7('0x11'),_0x430c7e,JSON[_0x40c7('0x45')](_0x174074));_0x57cab8[_0x40c7('0x22')]();}};};
\ No newline at end of file
+var _0xc910=['phone','account','upperFirst','AccountId','InteractionId','getMustacheRender','Message','create','then','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','replace','sessionPath','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','name','DIALOGFLOWV2_INTENTDISPLAYNAME','intent','displayName','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','queryText','DIALOGFLOWV2_SCORE','providerName','providerResponse','fulfillmentText','push','all','next','dialogflow','md5','bluebird','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','isNil','interaction','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp'];(function(_0x3a9563,_0x1fbe7b){var _0x314283=function(_0xfae8f8){while(--_0xfae8f8){_0x3a9563['push'](_0x3a9563['shift']());}};_0x314283(++_0x1fbe7b);}(_0xc910,0x1e1));var _0x0c91=function(_0x589701,_0x764e34){_0x589701=_0x589701-0x0;var _0x10cca2=_0xc910[_0x589701];return _0x10cca2;};'use strict';var _=require('lodash');var dialogflow=require(_0x0c91('0x0'));var md5=require(_0x0c91('0x1'));var moment=require('moment');var Promise=require(_0x0c91('0x2'));var logger=require(_0x0c91('0x3'))(_0x0c91('0x4'));var utils=require('./utils');var rpc={'chatMessage':require(_0x0c91('0x5')),'openchannelMessage':require(_0x0c91('0x6')),'mailMessage':require(_0x0c91('0x7')),'smsMessage':require(_0x0c91('0x8')),'faxMessage':require(_0x0c91('0x9')),'whatsappMessage':require(_0x0c91('0xa'))};function createMessage(_0x213d97,_0x5508c2,_0x4c7245,_0x9a89a8){return new Promise(function(_0xc6aa66,_0x3fb7ee){var _0x58fade=_[_0x0c91('0xb')](_0x4c7245);_0x58fade[_0x0c91('0xc')]=_0x9a89a8;return rpc[_0x5508c2+'Message']['create'](_0x58fade)['then'](function(){logger['info'](_0x0c91('0xd'),_0x213d97,_0x58fade['body']);_0xc6aa66();})[_0x0c91('0xe')](function(_0x47e86f){logger[_0x0c91('0xf')](_0x0c91('0xd'),_0x213d97,JSON[_0x0c91('0x10')](_0x47e86f));_0x3fb7ee(_0x47e86f);});});}exports[_0x0c91('0x11')]=function(_0xaf9a86,_0x28d861){return function(_0x184e83){try{if(!_[_0x0c91('0x12')](this[_0x0c91('0x13')][_0x0c91('0x14')])){logger[_0x0c91('0x15')](_0x0c91('0xd'),_0xaf9a86,_0x0c91('0x16'));return _0x184e83['next']();}var _0x23e6a9={'ContactId':this[_0x0c91('0x17')]['id'],'sentAt':moment()[_0x0c91('0x18')](_0x0c91('0x19')),'direction':_0x0c91('0x1a')};if(this[_0x0c91('0x1b')]===_0x0c91('0x1c')||this[_0x0c91('0x1b')]===_0x0c91('0x1d')){_0x23e6a9[_0x0c91('0x1e')]=this[_0x0c91('0x13')][_0x0c91('0x1e')];}var _0x143e07=this['channel'];if(_0x143e07==='chat'){_0x23e6a9['ChatWebsiteId']=this[_0x0c91('0x1f')]['id'];}else{_0x23e6a9[_[_0x0c91('0x20')](_0x143e07)+_0x0c91('0x21')]=this[_0x0c91('0x1f')]['id'];}_0x23e6a9[_['upperFirst'](_0x143e07)+_0x0c91('0x22')]=this[_0x0c91('0x13')]['id'];if(this['interaction']['created']){var _0x3fb446=_0x28d861[0x4];if(!_['isEmpty'](_0x3fb446)){_0x23e6a9[_0x0c91('0xc')]=utils[_0x0c91('0x23')](_0x3fb446,this);return rpc[_0x143e07+_0x0c91('0x24')][_0x0c91('0x25')](_0x23e6a9)[_0x0c91('0x26')](function(_0x59f322){logger[_0x0c91('0x15')]('[%s][DIALOGFLOWV2]\x20%s',_0xaf9a86,_0x23e6a9['body']);})[_0x0c91('0xe')](function(_0x753d74){logger[_0x0c91('0xf')]('[%s][DIALOGFLOWV2]\x20%s',_0xaf9a86,JSON[_0x0c91('0x10')](_0x753d74));})[_0x0c91('0x27')](function(){logger[_0x0c91('0x15')](_0x0c91('0x28'),_0xaf9a86);_0x184e83['stop']();});}else{logger[_0x0c91('0x15')](_0x0c91('0x29'),_0xaf9a86);_0x184e83[_0x0c91('0x2a')]();}}else{var _0x2d6c93=this;var _0x50e7be=_0x28d861[0x2][_0x0c91('0x2b')](/\\n/g,'\x0a');var _0x1d7cc6={'credentials':{'private_key':_0x50e7be,'client_email':_0x28d861[0x1]}};var _0x366039=new dialogflow['SessionsClient'](_0x1d7cc6);var _0x1de9d1=_0x366039[_0x0c91('0x2c')](_0x28d861[0x0],md5(_0x2d6c93[_0x0c91('0x13')]['id']));var _0x1ff66e={'session':_0x1de9d1,'queryInput':{'text':{'text':_0x2d6c93[_0x0c91('0x2d')][_0x0c91('0xc')],'languageCode':_0x28d861[0x3]||'en'}}};return _0x366039[_0x0c91('0x2e')](_0x1ff66e)[_0x0c91('0x26')](function(_0x3ce9ec){if(_0x3ce9ec&&_0x3ce9ec[_0x0c91('0x2f')]){_0x2d6c93[_0x0c91('0xc')][_0x0c91('0x30')]=_0x3ce9ec;var _0x29bb45=_0x3ce9ec[0x0];var _0x313736=_0x29bb45[_0x0c91('0x31')][_0x0c91('0x32')]&&_0x29bb45[_0x0c91('0x31')][_0x0c91('0x32')][_0x0c91('0x33')]?_0x29bb45[_0x0c91('0x31')][_0x0c91('0x32')]['fields'][_0x0c91('0x34')][_0x0c91('0x35')]:![];_0x2d6c93[_0x0c91('0xc')][_0x0c91('0x36')]=_0x29bb45[_0x0c91('0x31')]['action'];_0x2d6c93['body'][_0x0c91('0x37')]=_0x29bb45[_0x0c91('0x31')][_0x0c91('0x38')];_0x2d6c93[_0x0c91('0xc')][_0x0c91('0x39')]=_0x29bb45[_0x0c91('0x31')][_0x0c91('0x32')]&&_0x29bb45[_0x0c91('0x31')][_0x0c91('0x32')][_0x0c91('0x33')]?_0x29bb45[_0x0c91('0x31')][_0x0c91('0x32')][_0x0c91('0x33')][_0x0c91('0x34')][_0x0c91('0x35')]:![];_0x2d6c93[_0x0c91('0xc')]['DIALOGFLOWV2_INTENTNAME']=_0x29bb45[_0x0c91('0x31')]['intent'][_0x0c91('0x3a')];_0x2d6c93[_0x0c91('0xc')][_0x0c91('0x3b')]=_0x29bb45[_0x0c91('0x31')][_0x0c91('0x3c')][_0x0c91('0x3d')];_0x2d6c93[_0x0c91('0xc')]['DIALOGFLOWV2_ISFALLBACKINTENT']=_0x29bb45[_0x0c91('0x31')][_0x0c91('0x3c')][_0x0c91('0x3e')];_0x2d6c93[_0x0c91('0xc')][_0x0c91('0x3f')]=_0x29bb45[_0x0c91('0x31')][_0x0c91('0x40')];_0x2d6c93[_0x0c91('0xc')]['DIALOGFLOWV2_QUERYTEXT']=_0x29bb45[_0x0c91('0x31')][_0x0c91('0x41')];_0x2d6c93[_0x0c91('0xc')][_0x0c91('0x42')]=_0x29bb45[_0x0c91('0x31')]['intentDetectionConfidence'];_0x23e6a9[_0x0c91('0x43')]='dialogflowV2';_0x23e6a9[_0x0c91('0x44')]=JSON[_0x0c91('0x10')](_0x3ce9ec);var _0x3b9ae1=[];for(var _0x3f26f9=0x0;_0x3f26f9<_0x3ce9ec['length'];_0x3f26f9++){var _0x4d1587=_0x3ce9ec[_0x3f26f9];if(_0x4d1587&&_0x4d1587[_0x0c91('0x31')]&&_0x4d1587[_0x0c91('0x31')][_0x0c91('0x45')]){_0x3b9ae1[_0x0c91('0x46')](createMessage(_0xaf9a86,_0x143e07,_0x23e6a9,_0x4d1587[_0x0c91('0x31')][_0x0c91('0x45')]));}}return Promise[_0x0c91('0x47')](_0x3b9ae1)[_0x0c91('0x26')](function(){if(_0x313736){_0x184e83['next']();}else{_0x184e83['stop']();}})['catch'](function(_0x23281e){logger[_0x0c91('0xf')](_0x0c91('0xd'),_0xaf9a86,JSON[_0x0c91('0x10')](_0x23281e));_0x184e83[_0x0c91('0x48')]();});}})[_0x0c91('0xe')](function(_0x2c745c){logger['error'](_0x0c91('0xd'),_0xaf9a86,_0x2c745c[_0x0c91('0x2d')]);_0x184e83[_0x0c91('0x48')]();});}}catch(_0x5f4fb9){logger[_0x0c91('0xf')](_0x0c91('0xd'),_0xaf9a86,JSON[_0x0c91('0x10')](_0x5f4fb9));_0x184e83[_0x0c91('0x2a')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x667d=['[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','validate','lodash','html-to-text','./utils','../../../../config/logger','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20false\x20is\x20a\x20number','consequence','fromString','replace','length','error','[%s][GOTOIF]\x20%s','map','message','join','stop','condition','priorityTrue','next','findIndex','rules','info','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s'];(function(_0xb88625,_0x39f6d4){var _0x6a581a=function(_0xbfaf5e){while(--_0xbfaf5e){_0xb88625['push'](_0xb88625['shift']());}};_0x6a581a(++_0x39f6d4);}(_0x667d,0x152));var _0xd667=function(_0x115c5b,_0x4a5001){_0x115c5b=_0x115c5b-0x0;var _0x52c4fd=_0x667d[_0x115c5b];return _0x52c4fd;};'use strict';var schema=require(_0xd667('0x0'));var _=require(_0xd667('0x1'));var htmlToText=require(_0xd667('0x2'));var utils=require(_0xd667('0x3'));var logger=require(_0xd667('0x4'))('routing');var gotoif=schema({'condition':{'type':_0xd667('0x5'),'required':!![],'message':_0xd667('0x6')},'priorityTrue':{'type':_0xd667('0x7'),'message':'priority\x20true\x20is\x20a\x20number'},'priorityFalse':{'type':_0xd667('0x7'),'message':_0xd667('0x8')}});exports[_0xd667('0x9')]=function(_0x42b50b,_0x273da5){return function(_0x5f2466){try{var _0x28a29d={'condition':htmlToText[_0xd667('0xa')](utils['getMustacheRender'](_0x273da5[0x0],this),{'wordwrap':![]})[_0xd667('0xb')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x273da5[0x1],'priorityFalse':_0x273da5[0x2]};var _0x2a0384=gotoif[_0xd667('0x0')](_0x28a29d,{'typecast':!![]});if(_0x2a0384[_0xd667('0xc')]){logger[_0xd667('0xd')](_0xd667('0xe'),_0x42b50b,_[_0xd667('0xf')](_0x2a0384,_0xd667('0x10'))[_0xd667('0x11')](',\x20'));_0x5f2466[_0xd667('0x12')]();}else{try{var _0x55da37=eval('('+_0x28a29d[_0xd667('0x13')]+')');var _0x126de5=_0x55da37?_0x28a29d[_0xd667('0x14')]:_0x28a29d['priorityFalse'];logger['info']('[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s',_0x42b50b,_0x28a29d['condition'],_0x55da37,_0x126de5||_0xd667('0x15'));if(_0x126de5){var _0x1cb2bd=_[_0xd667('0x16')](_0x5f2466[_0xd667('0x17')](),{'p':_0x126de5});if(_0x1cb2bd>=0x0){logger[_0xd667('0x18')](_0xd667('0x19'),_0x42b50b,_0x126de5||_0xd667('0x15'),_0x1cb2bd);_0x5f2466[_0xd667('0x15')](_0x1cb2bd);}else{logger[_0xd667('0x18')]('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x42b50b,_0x126de5||_0xd667('0x15'));_0x5f2466[_0xd667('0x12')]();}}else{_0x5f2466[_0xd667('0x15')]();}}catch(_0x5ccd60){logger['error'](_0xd667('0x1a'),_0x42b50b,_0x5ccd60[_0xd667('0x10')]);_0x5f2466['stop']();}}}catch(_0x2dc232){logger[_0xd667('0xd')](_0xd667('0xe'),_0x42b50b,JSON[_0xd667('0x1b')](_0x2dc232));_0x5f2466[_0xd667('0x12')]();}};};
\ No newline at end of file
+var _0xd21a=['html-to-text','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20false\x20is\x20a\x20number','consequence','fromString','replace','error','[%s][GOTOIF]\x20%s','map','message','join','stop','condition','priorityTrue','priorityFalse','info','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','next','findIndex','rules','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','[%s][GOTOIF]\x20priority\x20%s\x20not\x20found','[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','validate','lodash'];(function(_0x408378,_0x37d8e6){var _0x311c26=function(_0x352653){while(--_0x352653){_0x408378['push'](_0x408378['shift']());}};_0x311c26(++_0x37d8e6);}(_0xd21a,0x116));var _0xad21=function(_0x3da887,_0x536787){_0x3da887=_0x3da887-0x0;var _0x59769a=_0xd21a[_0x3da887];return _0x59769a;};'use strict';var schema=require(_0xad21('0x0'));var _=require(_0xad21('0x1'));var htmlToText=require(_0xad21('0x2'));var utils=require('./utils');var logger=require('../../../../config/logger')('routing');var gotoif=schema({'condition':{'type':_0xad21('0x3'),'required':!![],'message':_0xad21('0x4')},'priorityTrue':{'type':_0xad21('0x5'),'message':'priority\x20true\x20is\x20a\x20number'},'priorityFalse':{'type':_0xad21('0x5'),'message':_0xad21('0x6')}});exports[_0xad21('0x7')]=function(_0x1a0e01,_0x3ff6ae){return function(_0x4f6ac8){try{var _0xaddc42={'condition':htmlToText[_0xad21('0x8')](utils['getMustacheRender'](_0x3ff6ae[0x0],this),{'wordwrap':![]})[_0xad21('0x9')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x3ff6ae[0x1],'priorityFalse':_0x3ff6ae[0x2]};var _0x49dd9e=gotoif['validate'](_0xaddc42,{'typecast':!![]});if(_0x49dd9e['length']){logger[_0xad21('0xa')](_0xad21('0xb'),_0x1a0e01,_[_0xad21('0xc')](_0x49dd9e,_0xad21('0xd'))[_0xad21('0xe')](',\x20'));_0x4f6ac8[_0xad21('0xf')]();}else{try{var _0x37a631=eval('('+_0xaddc42[_0xad21('0x10')]+')');var _0x39e126=_0x37a631?_0xaddc42[_0xad21('0x11')]:_0xaddc42[_0xad21('0x12')];logger[_0xad21('0x13')](_0xad21('0x14'),_0x1a0e01,_0xaddc42[_0xad21('0x10')],_0x37a631,_0x39e126||_0xad21('0x15'));if(_0x39e126){var _0x30f240=_[_0xad21('0x16')](_0x4f6ac8[_0xad21('0x17')](),{'p':_0x39e126});if(_0x30f240>=0x0){logger[_0xad21('0x13')](_0xad21('0x18'),_0x1a0e01,_0x39e126||_0xad21('0x15'),_0x30f240);_0x4f6ac8['next'](_0x30f240);}else{logger[_0xad21('0x13')](_0xad21('0x19'),_0x1a0e01,_0x39e126||_0xad21('0x15'));_0x4f6ac8[_0xad21('0xf')]();}}else{_0x4f6ac8[_0xad21('0x15')]();}}catch(_0x66e747){logger['error'](_0xad21('0x1a'),_0x1a0e01,_0x66e747[_0xad21('0xd')]);_0x4f6ac8[_0xad21('0xf')]();}}}catch(_0x5e9b41){logger['error'](_0xad21('0xb'),_0x1a0e01,JSON[_0xad21('0x1b')](_0x5e9b41));_0x4f6ac8[_0xad21('0xf')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38c2=['routing','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','validate','length','error','[%s][GOTOP]\x20%s','message','join','stop','info','priority','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','../../../../config/logger'];(function(_0x38c055,_0xe1b4ea){var _0x1f3185=function(_0x206ebd){while(--_0x206ebd){_0x38c055['push'](_0x38c055['shift']());}};_0x1f3185(++_0xe1b4ea);}(_0x38c2,0x149));var _0x238c=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x38c2[_0x4b369d];return _0x571a98;};'use strict';var schema=require('validate');var _=require('lodash');var logger=require(_0x238c('0x0'))(_0x238c('0x1'));var gotop=schema({'priority':{'type':'number','required':!![],'message':_0x238c('0x2')}});exports['consequence']=function(_0x4373de,_0x42097a){return function(_0xb59a4a){try{var _0x3c5cfb={'priority':_0x42097a[0x0]};var _0x5598d3=gotop[_0x238c('0x3')](_0x3c5cfb,{'typecast':!![]});if(_0x5598d3[_0x238c('0x4')]){logger[_0x238c('0x5')](_0x238c('0x6'),_0x4373de,_['map'](_0x5598d3,_0x238c('0x7'))[_0x238c('0x8')](',\x20'));_0xb59a4a[_0x238c('0x9')]();}else{logger[_0x238c('0xa')]('[%s][GOTOP]\x20priority\x20%s',_0x4373de,_0x3c5cfb[_0x238c('0xb')]);if(_0x3c5cfb[_0x238c('0xb')]){var _0x468e03=_['findIndex'](_0xb59a4a[_0x238c('0xc')](),{'p':_0x3c5cfb[_0x238c('0xb')]});if(_0x468e03>=0x0){logger['info'](_0x238c('0xd'),_0x4373de,_0x3c5cfb[_0x238c('0xb')]||'next',_0x468e03);_0xb59a4a['next'](_0x468e03);}else{logger[_0x238c('0xa')]('[%s][GOTOP]\x20priority\x20%s\x20not\x20found',_0x4373de,_0x3c5cfb[_0x238c('0xb')]||_0x238c('0xe'));_0xb59a4a[_0x238c('0x9')]();}}else{_0xb59a4a[_0x238c('0xe')]();}}}catch(_0x322a99){logger[_0x238c('0x5')](_0x238c('0x6'),_0x4373de,JSON['stringify'](_0x322a99));_0xb59a4a[_0x238c('0x9')]();}};};
\ No newline at end of file
+var _0xfc2c=['next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','stringify','validate','routing','number','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence','error','map','message','stop','info','priority','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s'];(function(_0x2900bf,_0x396900){var _0x4ff896=function(_0x4366c7){while(--_0x4366c7){_0x2900bf['push'](_0x2900bf['shift']());}};_0x4ff896(++_0x396900);}(_0xfc2c,0xe4));var _0xcfc2=function(_0x419608,_0x188b7f){_0x419608=_0x419608-0x0;var _0x5e8e92=_0xfc2c[_0x419608];return _0x5e8e92;};'use strict';var schema=require(_0xcfc2('0x0'));var _=require('lodash');var logger=require('../../../../config/logger')(_0xcfc2('0x1'));var gotop=schema({'priority':{'type':_0xcfc2('0x2'),'required':!![],'message':_0xcfc2('0x3')}});exports[_0xcfc2('0x4')]=function(_0x18fff9,_0x2ad814){return function(_0x40bffa){try{var _0x14f066={'priority':_0x2ad814[0x0]};var _0x236949=gotop['validate'](_0x14f066,{'typecast':!![]});if(_0x236949['length']){logger[_0xcfc2('0x5')]('[%s][GOTOP]\x20%s',_0x18fff9,_[_0xcfc2('0x6')](_0x236949,_0xcfc2('0x7'))['join'](',\x20'));_0x40bffa[_0xcfc2('0x8')]();}else{logger[_0xcfc2('0x9')]('[%s][GOTOP]\x20priority\x20%s',_0x18fff9,_0x14f066['priority']);if(_0x14f066[_0xcfc2('0xa')]){var _0x39530e=_['findIndex'](_0x40bffa['rules'](),{'p':_0x14f066[_0xcfc2('0xa')]});if(_0x39530e>=0x0){logger[_0xcfc2('0x9')](_0xcfc2('0xb'),_0x18fff9,_0x14f066[_0xcfc2('0xa')]||_0xcfc2('0xc'),_0x39530e);_0x40bffa[_0xcfc2('0xc')](_0x39530e);}else{logger[_0xcfc2('0x9')](_0xcfc2('0xd'),_0x18fff9,_0x14f066[_0xcfc2('0xa')]||_0xcfc2('0xc'));_0x40bffa['stop']();}}else{_0x40bffa[_0xcfc2('0xc')]();}}}catch(_0x449761){logger[_0xcfc2('0x5')]('[%s][GOTOP]\x20%s',_0x18fff9,JSON[_0xcfc2('0xe')](_0x449761));_0x40bffa[_0xcfc2('0x8')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a24=['../../rpc/openchannelMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','channel','chat','upperFirst','AccountId','account','InteractionId','interaction','create','[%s][MESSAGE]\x20%s','body','next','catch','stringify','stop','error','../../../../config/logger','routing','../../rpc/chatMessage'];(function(_0x47d11a,_0x2b1700){var _0x3f1b76=function(_0x446dc1){while(--_0x446dc1){_0x47d11a['push'](_0x47d11a['shift']());}};_0x3f1b76(++_0x2b1700);}(_0x4a24,0xef));var _0x44a2=function(_0x4de1b1,_0x18c64c){_0x4de1b1=_0x4de1b1-0x0;var _0x639f27=_0x4a24[_0x4de1b1];return _0x639f27;};'use strict';var _=require('lodash');var utils=require('./utils');var logger=require(_0x44a2('0x0'))(_0x44a2('0x1'));var rpc={'chatMessage':require(_0x44a2('0x2')),'openchannelMessage':require(_0x44a2('0x3')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x44a2('0x4')),'whatsappMessage':require(_0x44a2('0x5'))};exports[_0x44a2('0x6')]=function(_0x4c57b8,_0x5a361d){return function(_0x8534ad){try{var _0x3a1100={'body':utils['getMustacheRender'](_0x5a361d[0x0],this),'ContactId':this['contact']['id']};if(this[_0x44a2('0x7')]===_0x44a2('0x8')){_0x3a1100['ChatWebsiteId']=this['account']['id'];}else{_0x3a1100[_[_0x44a2('0x9')](this['channel'])+_0x44a2('0xa')]=this[_0x44a2('0xb')]['id'];}_0x3a1100[_['upperFirst'](this[_0x44a2('0x7')])+_0x44a2('0xc')]=this[_0x44a2('0xd')]['id'];if(rpc[this[_0x44a2('0x7')]+'Message']){return rpc[this[_0x44a2('0x7')]+'Message'][_0x44a2('0xe')](_0x3a1100)['then'](function(_0x342310){logger['info'](_0x44a2('0xf'),_0x4c57b8,_0x3a1100[_0x44a2('0x10')]);_0x8534ad[_0x44a2('0x11')]();})[_0x44a2('0x12')](function(_0x16cd38){logger['error'](_0x44a2('0xf'),_0x4c57b8,JSON[_0x44a2('0x13')](_0x16cd38));_0x8534ad[_0x44a2('0x14')]();});}}catch(_0x2ef956){logger[_0x44a2('0x15')](_0x44a2('0xf'),_0x4c57b8,JSON['stringify'](_0x2ef956));_0x8534ad[_0x44a2('0x14')]();}};};
\ No newline at end of file
+var _0x868d=['InteractionId','Message','create','then','[%s][MESSAGE]\x20%s','body','next','catch','stringify','stop','error','lodash','../../../../config/logger','routing','../../rpc/openchannelMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','getMustacheRender','channel','chat','ChatWebsiteId','account','upperFirst','AccountId'];(function(_0x1b8d87,_0x4168fb){var _0x182b74=function(_0x12b570){while(--_0x12b570){_0x1b8d87['push'](_0x1b8d87['shift']());}};_0x182b74(++_0x4168fb);}(_0x868d,0x143));var _0xd868=function(_0x3cfdf5,_0x5e11fe){_0x3cfdf5=_0x3cfdf5-0x0;var _0x1b135a=_0x868d[_0x3cfdf5];return _0x1b135a;};'use strict';var _=require(_0xd868('0x0'));var utils=require('./utils');var logger=require(_0xd868('0x1'))(_0xd868('0x2'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0xd868('0x3')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xd868('0x4')),'whatsappMessage':require(_0xd868('0x5'))};exports['consequence']=function(_0x2176e7,_0x36e13e){return function(_0x444c4e){try{var _0x2837e3={'body':utils[_0xd868('0x6')](_0x36e13e[0x0],this),'ContactId':this['contact']['id']};if(this[_0xd868('0x7')]===_0xd868('0x8')){_0x2837e3[_0xd868('0x9')]=this[_0xd868('0xa')]['id'];}else{_0x2837e3[_[_0xd868('0xb')](this[_0xd868('0x7')])+_0xd868('0xc')]=this[_0xd868('0xa')]['id'];}_0x2837e3[_[_0xd868('0xb')](this[_0xd868('0x7')])+_0xd868('0xd')]=this['interaction']['id'];if(rpc[this[_0xd868('0x7')]+_0xd868('0xe')]){return rpc[this[_0xd868('0x7')]+_0xd868('0xe')][_0xd868('0xf')](_0x2837e3)[_0xd868('0x10')](function(_0x20112c){logger['info'](_0xd868('0x11'),_0x2176e7,_0x2837e3[_0xd868('0x12')]);_0x444c4e[_0xd868('0x13')]();})[_0xd868('0x14')](function(_0x3b8723){logger['error']('[%s][MESSAGE]\x20%s',_0x2176e7,JSON[_0xd868('0x15')](_0x3b8723));_0x444c4e[_0xd868('0x16')]();});}}catch(_0x2f7984){logger[_0xd868('0x17')](_0xd868('0x11'),_0x2176e7,JSON[_0xd868('0x15')](_0x2f7984));_0x444c4e[_0xd868('0x16')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83fd=['consequence','info','[%s][NOOP]\x20%s','getMustacheRender','stop','./utils'];(function(_0x5b8451,_0x1dfd8){var _0x277613=function(_0x5ee5aa){while(--_0x5ee5aa){_0x5b8451['push'](_0x5b8451['shift']());}};_0x277613(++_0x1dfd8);}(_0x83fd,0x16d));var _0xd83f=function(_0x5d37b6,_0xc6091d){_0x5d37b6=_0x5d37b6-0x0;var _0x5a35f0=_0x83fd[_0x5d37b6];return _0x5a35f0;};'use strict';var utils=require(_0xd83f('0x0'));var logger=require('../../../../config/logger')('routing');exports[_0xd83f('0x1')]=function(_0x5b5f33,_0x3482ed){return function(_0x2998eb){try{logger[_0xd83f('0x2')](_0xd83f('0x3'),_0x5b5f33,utils[_0xd83f('0x4')](_0x3482ed[0x0],this));_0x2998eb['next']();}catch(_0x3d2495){logger['error'](_0xd83f('0x3'),_0x5b5f33,JSON['stringify'](_0x3d2495));_0x2998eb[_0xd83f('0x5')]();}};};
\ No newline at end of file
+var _0xe984=['[%s][NOOP]\x20%s','getMustacheRender','next','error','stringify','stop','../../../../config/logger','routing','consequence','info'];(function(_0x49fb98,_0x410fbe){var _0x1d5cde=function(_0x366b17){while(--_0x366b17){_0x49fb98['push'](_0x49fb98['shift']());}};_0x1d5cde(++_0x410fbe);}(_0xe984,0xe2));var _0x4e98=function(_0x4429e0,_0xee6f1f){_0x4429e0=_0x4429e0-0x0;var _0x51a5b3=_0xe984[_0x4429e0];return _0x51a5b3;};'use strict';var utils=require('./utils');var logger=require(_0x4e98('0x0'))(_0x4e98('0x1'));exports[_0x4e98('0x2')]=function(_0x162f51,_0x3c3cda){return function(_0x449b1e){try{logger[_0x4e98('0x3')](_0x4e98('0x4'),_0x162f51,utils[_0x4e98('0x5')](_0x3c3cda[0x0],this));_0x449b1e[_0x4e98('0x6')]();}catch(_0x51128c){logger[_0x4e98('0x7')](_0x4e98('0x4'),_0x162f51,JSON[_0x4e98('0x8')](_0x51128c));_0x449b1e[_0x4e98('0x9')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a2c=['update\x20queue\x20report','timeout','toLowerCase','consequence','validate','length','map','join','stop','find','Queues','qtimeout','rules','end','close','complete','[%s][QUEUE]\x20APPLICATION\x20END','next','rrmemory','beepall','log','[%s][QUEUE]\x20%s','stack','util','seq-queue','moment','ioredis','../../../../config/logger','./strategy','redis','defaults','localhost','queue_id','queue','joinAt','emit','clone','account','%sQueuesWaitingInteractions','format','%s:queue:%s','%s_queue_waiting_interaction:%s','save','remove','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/whatsappQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','body','from','contact','list','upperFirst','channel','QueueId','interaction','MessageId','message','chat','AccountId','WebsiteId','info','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','catch','error','create\x20queue\x20report','waiting','YYYY-MM-DD\x20HH:mm:ss','accepted','[%s][STOP:QUEUE][NAME:%s]','update'];(function(_0x20b1e2,_0x26c5cf){var _0x2ad462=function(_0x5c6806){while(--_0x5c6806){_0x20b1e2['push'](_0x20b1e2['shift']());}};_0x2ad462(++_0x26c5cf);}(_0x0a2c,0xb3));var _0xc0a2=function(_0x3da3db,_0x3646d7){_0x3da3db=_0x3da3db-0x0;var _0x5eff0e=_0x0a2c[_0x3da3db];return _0x5eff0e;};'use strict';var schema=require('validate');var _=require('lodash');var util=require(_0xc0a2('0x0'));var seqqueue=require(_0xc0a2('0x1'));var moment=require(_0xc0a2('0x2'));var Redis=require(_0xc0a2('0x3'));var config=require('../../../../config/environment');var logger=require(_0xc0a2('0x4'))('routing');var strategy=require(_0xc0a2('0x5'));config[_0xc0a2('0x6')]=_[_0xc0a2('0x7')](config[_0xc0a2('0x6')],{'host':_0xc0a2('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xc0a2('0x6')]));var attributes=['id',_0xc0a2('0x9'),'account',_0xc0a2('0xa'),'from',_0xc0a2('0xb')];function emit(_0x168b60,_0x4929c0,_0x158eba){io['to'](_0x168b60)[_0xc0a2('0xc')](_0x4929c0,_0x158eba);}function emitChannelQueueInteraction(_0x49921c,_0x4a9601,_0x46b373,_0x2c10e4,_0x5db2c5,_0x2bd285,_0x59e4ca,_0x221d2d){var _0x41c2ef=_[_0xc0a2('0xd')](_0x46b373);_0x41c2ef[_0xc0a2('0x9')]=_0x221d2d;_0x41c2ef['queue']=_0x4a9601;_0x41c2ef[_0xc0a2('0xe')]=_0x2c10e4;_0x41c2ef['id']=_0x5db2c5;if(_0x2bd285){_0x59e4ca[util['format'](_0xc0a2('0xf'),_0x49921c)][_0x5db2c5]=_['pick'](_0x41c2ef,attributes);}else{delete _0x59e4ca[util[_0xc0a2('0x10')](_0xc0a2('0xf'),_0x49921c)][_0x5db2c5];}emit(util[_0xc0a2('0x10')](_0xc0a2('0x11'),_0x49921c,_0x4a9601),util[_0xc0a2('0x10')](_0xc0a2('0x12'),_0x49921c,_0x2bd285?_0xc0a2('0x13'):_0xc0a2('0x14')),_['pick'](_0x41c2ef,attributes));}var rpc={'openchannelQueueReport':require(_0xc0a2('0x15')),'mailQueueReport':require(_0xc0a2('0x16')),'chatQueueReport':require(_0xc0a2('0x17')),'smsQueueReport':require(_0xc0a2('0x18')),'faxQueueReport':require('../../rpc/faxQueueReport'),'whatsappQueueReport':require(_0xc0a2('0x19'))};var queue=schema({'name':{'type':_0xc0a2('0x1a'),'required':!![],'message':_0xc0a2('0x1b')},'timeout':{'type':_0xc0a2('0x1c'),'message':'timeout\x20is\x20a\x20number'}});function startRouting(_0x4a93ff,_0x4c85e5,_0x3a2aa5,_0x5bc7a7){if(_0x4a93ff&&_0x4c85e5&&_0x3a2aa5){_0x4c85e5['waiting']+=0x1;var _0xac13c4={'uniqueid':_0x4a93ff,'from':_0x3a2aa5['body']?_0x3a2aa5[_0xc0a2('0x1d')][_0xc0a2('0x1e')]:'','joinAt':moment()[_0xc0a2('0x10')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x3a2aa5[_0xc0a2('0x1f')]?_0x3a2aa5['contact']['id']:null,'ListId':_0x3a2aa5[_0xc0a2('0x20')]?_0x3a2aa5[_0xc0a2('0x20')]['id']:null};_0xac13c4[_[_0xc0a2('0x21')](_0x3a2aa5[_0xc0a2('0x22')])+_0xc0a2('0x23')]=_0x4c85e5['id']||null;_0xac13c4[_[_0xc0a2('0x21')](_0x3a2aa5[_0xc0a2('0x22')])+'InteractionId']=_0x3a2aa5[_0xc0a2('0x24')]?_0x3a2aa5[_0xc0a2('0x24')]['id']:null;_0xac13c4[_[_0xc0a2('0x21')](_0x3a2aa5[_0xc0a2('0x22')])+_0xc0a2('0x25')]=_0x3a2aa5[_0xc0a2('0x26')]?_0x3a2aa5[_0xc0a2('0x26')]['id']:null;_0xac13c4[_['upperFirst'](_0x3a2aa5[_0xc0a2('0x22')])+(_0x3a2aa5[_0xc0a2('0x22')]!==_0xc0a2('0x27')?_0xc0a2('0x28'):_0xc0a2('0x29'))]=_0x3a2aa5[_0xc0a2('0xe')]?_0x3a2aa5[_0xc0a2('0xe')]['id']:null;logger[_0xc0a2('0x2a')](util['format'](_0xc0a2('0x2b'),_0x4a93ff,_0x4c85e5[_0xc0a2('0x2c')]));emitChannelQueueInteraction(_0x3a2aa5[_0xc0a2('0x22')],_0x4c85e5['name'],_0xac13c4,_0x3a2aa5['account'][_0xc0a2('0x2c')],_0x3a2aa5['message']['id'],!![],_0x5bc7a7,_0x4c85e5['id']);if(rpc[_0x3a2aa5[_0xc0a2('0x22')]+'QueueReport']){return rpc[_0x3a2aa5[_0xc0a2('0x22')]+_0xc0a2('0x2d')][_0xc0a2('0x2e')](_0xac13c4)[_0xc0a2('0x2f')](function(_0x2d857d){logger[_0xc0a2('0x30')](_0xc0a2('0x31'));});}}}function stopRouting(_0x36348f,_0x278f1c,_0xfd9aa6,_0xddb855){if(_0x36348f&&_0x278f1c){_0x278f1c[_0xc0a2('0x32')]-=0x1;var _0x35f45a={'leaveAt':moment()[_0xc0a2('0x10')](_0xc0a2('0x33')),'acceptAt':moment()[_0xc0a2('0x10')](_0xc0a2('0x33')),'reason':_0xc0a2('0x34')};logger['info'](util[_0xc0a2('0x10')](_0xc0a2('0x35'),_0x36348f,_0x278f1c[_0xc0a2('0x2c')]));emitChannelQueueInteraction(_0xfd9aa6[_0xc0a2('0x22')],_0x278f1c[_0xc0a2('0x2c')],_0xfd9aa6[_0xc0a2('0x1d')],_0xfd9aa6[_0xc0a2('0xe')][_0xc0a2('0x2c')],_0xfd9aa6[_0xc0a2('0x26')]['id'],![],_0xddb855,_0x278f1c['id']);if(rpc[_0xfd9aa6['channel']+_0xc0a2('0x2d')]){return rpc[_0xfd9aa6[_0xc0a2('0x22')]+'QueueReport'][_0xc0a2('0x36')](_0x36348f,_0x35f45a)[_0xc0a2('0x2f')](function(_0x258013){logger[_0xc0a2('0x30')](_0xc0a2('0x37'));});}}}function endRouting(_0xf7dc53,_0x121e9f,_0x144e2e,_0x33c5ef){if(_0xf7dc53&&_0x121e9f){_0x121e9f[_0xc0a2('0x32')]-=0x1;var _0x13991e={'leaveAt':moment()[_0xc0a2('0x10')]('YYYY-MM-DD\x20HH:mm:ss'),'exitAt':moment()[_0xc0a2('0x10')](_0xc0a2('0x33')),'reason':_0xc0a2('0x38')};logger[_0xc0a2('0x2a')](util['format']('[%s][END:QUEUE][NAME:%s]',_0xf7dc53,_0x121e9f[_0xc0a2('0x2c')]));emitChannelQueueInteraction(_0x144e2e['channel'],_0x121e9f[_0xc0a2('0x2c')],_0x144e2e['body'],_0x144e2e[_0xc0a2('0xe')][_0xc0a2('0x2c')],_0x144e2e[_0xc0a2('0x26')]['id'],![],_0x33c5ef);if(rpc[_0x144e2e[_0xc0a2('0x22')]+_0xc0a2('0x2d')]){return rpc[_0x144e2e[_0xc0a2('0x22')]+_0xc0a2('0x2d')][_0xc0a2('0x36')](_0xf7dc53,_0x13991e)[_0xc0a2('0x2f')](function(_0x3fe200){logger[_0xc0a2('0x30')](_0xc0a2('0x37'));});}}}function handleFindQueue(_0x341b78){return function(_0x22fc80){return _0x22fc80['name'][_0xc0a2('0x39')]()===_0x341b78[_0xc0a2('0x39')]();};}exports[_0xc0a2('0x3a')]=function(_0x1b7180,_0x321739,_0x3d996e,_0x2a5633){return function(_0x10f45c){try{var _0x2fce26={'name':_0x321739[0x0],'timeout':_0x321739[0x1]};var _0x550490=queue[_0xc0a2('0x3b')](_0x2fce26,{'typecast':!![]});if(_0x550490[_0xc0a2('0x3c')]){logger[_0xc0a2('0x30')]('[%s][QUEUE]\x20%s',_0x1b7180,_[_0xc0a2('0x3d')](_0x550490,_0xc0a2('0x26'))[_0xc0a2('0x3e')](',\x20'));_0x10f45c[_0xc0a2('0x3f')]();}else{var _0x11a67c=_[_0xc0a2('0x40')](_0x3d996e[_0x2a5633[_0xc0a2('0x22')]+_0xc0a2('0x41')],handleFindQueue(_0x2fce26[_0xc0a2('0x2c')]));if(_0x11a67c){startRouting(_0x1b7180,_0x11a67c,_0x2a5633,_0x3d996e);var _0x1c8283=(_0x11a67c['timeout']||0xa)*0x3e8;var _0x15f4b4=(_0x2fce26[_0xc0a2('0x38')]||0x14)*0x3e8;var _0x39bab9,_0x2dc64c;if(_0x1c8283>_0x15f4b4){_0x15f4b4=_0x1c8283;}var _0x41fde4=seqqueue['createQueue'](_0x1c8283);_0x41fde4['id']=_0x1b7180;_0x41fde4['atimeout']=_0x1c8283;_0x41fde4[_0xc0a2('0x42')]=_0x15f4b4;_0x41fde4['channel']=_0x2a5633[_0xc0a2('0x22')];_0x3d996e[_0xc0a2('0x43')][_0x1b7180]['on'](_0xc0a2('0x44'),function(){logger['info']('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x1b7180);stopRouting(_0x1b7180,_0x11a67c,_0x2a5633,_0x3d996e);clearTimeout(_0x39bab9);_0x39bab9=undefined;_0x41fde4[_0xc0a2('0x45')](!![]);if(_0x3d996e[_0xc0a2('0x43')][_0x1b7180]){delete _0x3d996e[_0xc0a2('0x43')][_0x1b7180];}_0x10f45c[_0xc0a2('0x3f')]();});_0x3d996e[_0xc0a2('0x43')][_0x1b7180]['on'](_0xc0a2('0x46'),function(){if(_0x3d996e[_0xc0a2('0x43')][_0x1b7180]){delete _0x3d996e['rules'][_0x1b7180];}});_0x39bab9=setTimeout(function(){logger[_0xc0a2('0x2a')](_0xc0a2('0x47'),_0x1b7180);endRouting(_0x1b7180,_0x11a67c,_0x2a5633,_0x3d996e);clearTimeout(_0x39bab9);_0x41fde4[_0xc0a2('0x45')](!![]);_0x10f45c[_0xc0a2('0x48')]();},_0x15f4b4);switch(_0x11a67c['strategy']){case _0xc0a2('0x49'):strategy[_0xc0a2('0x49')](_0x41fde4,_0x11a67c,_0x3d996e,_0x2a5633);break;default:strategy[_0xc0a2('0x4a')](_0x41fde4,_0x11a67c,_0x3d996e,_0x2a5633);}}else{logger[_0xc0a2('0x30')]('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x1b7180,_0x2fce26[_0xc0a2('0x2c')]);_0x10f45c[_0xc0a2('0x3f')]();}}}catch(_0x301536){console[_0xc0a2('0x4b')](_0x301536);logger['error'](_0xc0a2('0x4c'),_0x1b7180,_0x301536[_0xc0a2('0x4d')]);_0x10f45c[_0xc0a2('0x3f')]();}};};
\ No newline at end of file
+var _0x92f0=['stop','find','Queues','createQueue','atimeout','qtimeout','rules','end','[%s][QUEUE]\x20ROUTING\x20STOPPED','close','complete','[%s][QUEUE]\x20APPLICATION\x20END','strategy','rrmemory','[%s][QUEUE]\x20queue\x20not\x20found\x20%s','log','validate','lodash','seq-queue','moment','ioredis','../../../../config/environment','routing','defaults','redis','localhost','account','queue','from','joinAt','emit','clone','queue_id','format','%sQueuesWaitingInteractions','pick','%s:queue:%s','%s_queue_waiting_interaction:%s','save','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','string','number','timeout\x20is\x20a\x20number','body','YYYY-MM-DD\x20HH:mm:ss','list','upperFirst','QueueId','InteractionId','channel','message','AccountId','WebsiteId','name','QueueReport','catch','error','accepted','update\x20queue\x20report','waiting','timeout','info','[%s][END:QUEUE][NAME:%s]','update','toLowerCase','consequence','length','[%s][QUEUE]\x20%s','map'];(function(_0x19cf1f,_0x4105e3){var _0x234028=function(_0x24748c){while(--_0x24748c){_0x19cf1f['push'](_0x19cf1f['shift']());}};_0x234028(++_0x4105e3);}(_0x92f0,0xa0));var _0x092f=function(_0x16b992,_0x43d74c){_0x16b992=_0x16b992-0x0;var _0x385c78=_0x92f0[_0x16b992];return _0x385c78;};'use strict';var schema=require(_0x092f('0x0'));var _=require(_0x092f('0x1'));var util=require('util');var seqqueue=require(_0x092f('0x2'));var moment=require(_0x092f('0x3'));var Redis=require(_0x092f('0x4'));var config=require(_0x092f('0x5'));var logger=require('../../../../config/logger')(_0x092f('0x6'));var strategy=require('./strategy');config['redis']=_[_0x092f('0x7')](config[_0x092f('0x8')],{'host':_0x092f('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x092f('0x8')]));var attributes=['id','queue_id',_0x092f('0xa'),_0x092f('0xb'),_0x092f('0xc'),_0x092f('0xd')];function emit(_0x24d786,_0x2a6f48,_0x4569ef){io['to'](_0x24d786)[_0x092f('0xe')](_0x2a6f48,_0x4569ef);}function emitChannelQueueInteraction(_0x20c57e,_0x1647b,_0x113111,_0x20fcb0,_0x518145,_0x369fd0,_0x1c4395,_0x53303d){var _0x15aaa2=_[_0x092f('0xf')](_0x113111);_0x15aaa2[_0x092f('0x10')]=_0x53303d;_0x15aaa2[_0x092f('0xb')]=_0x1647b;_0x15aaa2[_0x092f('0xa')]=_0x20fcb0;_0x15aaa2['id']=_0x518145;if(_0x369fd0){_0x1c4395[util[_0x092f('0x11')](_0x092f('0x12'),_0x20c57e)][_0x518145]=_[_0x092f('0x13')](_0x15aaa2,attributes);}else{delete _0x1c4395[util[_0x092f('0x11')](_0x092f('0x12'),_0x20c57e)][_0x518145];}emit(util[_0x092f('0x11')](_0x092f('0x14'),_0x20c57e,_0x1647b),util[_0x092f('0x11')](_0x092f('0x15'),_0x20c57e,_0x369fd0?_0x092f('0x16'):'remove'),_['pick'](_0x15aaa2,attributes));}var rpc={'openchannelQueueReport':require('../../rpc/openchannelQueueReport'),'mailQueueReport':require(_0x092f('0x17')),'chatQueueReport':require(_0x092f('0x18')),'smsQueueReport':require(_0x092f('0x19')),'faxQueueReport':require(_0x092f('0x1a')),'whatsappQueueReport':require('../../rpc/whatsappQueueReport')};var queue=schema({'name':{'type':_0x092f('0x1b'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x092f('0x1c'),'message':_0x092f('0x1d')}});function startRouting(_0x5709a4,_0x1a71f3,_0x4aca0d,_0x46daae){if(_0x5709a4&&_0x1a71f3&&_0x4aca0d){_0x1a71f3['waiting']+=0x1;var _0x3f7ed0={'uniqueid':_0x5709a4,'from':_0x4aca0d[_0x092f('0x1e')]?_0x4aca0d[_0x092f('0x1e')][_0x092f('0xc')]:'','joinAt':moment()[_0x092f('0x11')](_0x092f('0x1f')),'ContactId':_0x4aca0d['contact']?_0x4aca0d['contact']['id']:null,'ListId':_0x4aca0d[_0x092f('0x20')]?_0x4aca0d[_0x092f('0x20')]['id']:null};_0x3f7ed0[_[_0x092f('0x21')](_0x4aca0d['channel'])+_0x092f('0x22')]=_0x1a71f3['id']||null;_0x3f7ed0[_[_0x092f('0x21')](_0x4aca0d['channel'])+_0x092f('0x23')]=_0x4aca0d['interaction']?_0x4aca0d['interaction']['id']:null;_0x3f7ed0[_[_0x092f('0x21')](_0x4aca0d[_0x092f('0x24')])+'MessageId']=_0x4aca0d[_0x092f('0x25')]?_0x4aca0d[_0x092f('0x25')]['id']:null;_0x3f7ed0[_['upperFirst'](_0x4aca0d[_0x092f('0x24')])+(_0x4aca0d['channel']!=='chat'?_0x092f('0x26'):_0x092f('0x27'))]=_0x4aca0d[_0x092f('0xa')]?_0x4aca0d['account']['id']:null;logger['info'](util['format']('[%s][START:QUEUE][NAME:%s]',_0x5709a4,_0x1a71f3['name']));emitChannelQueueInteraction(_0x4aca0d['channel'],_0x1a71f3[_0x092f('0x28')],_0x3f7ed0,_0x4aca0d[_0x092f('0xa')][_0x092f('0x28')],_0x4aca0d[_0x092f('0x25')]['id'],!![],_0x46daae,_0x1a71f3['id']);if(rpc[_0x4aca0d[_0x092f('0x24')]+'QueueReport']){return rpc[_0x4aca0d[_0x092f('0x24')]+_0x092f('0x29')]['create'](_0x3f7ed0)[_0x092f('0x2a')](function(_0x130c2e){logger[_0x092f('0x2b')]('create\x20queue\x20report');});}}}function stopRouting(_0x47379f,_0x3731ea,_0x14a723,_0x5e5b5e){if(_0x47379f&&_0x3731ea){_0x3731ea['waiting']-=0x1;var _0x205783={'leaveAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'acceptAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'reason':_0x092f('0x2c')};logger['info'](util[_0x092f('0x11')]('[%s][STOP:QUEUE][NAME:%s]',_0x47379f,_0x3731ea[_0x092f('0x28')]));emitChannelQueueInteraction(_0x14a723['channel'],_0x3731ea[_0x092f('0x28')],_0x14a723[_0x092f('0x1e')],_0x14a723[_0x092f('0xa')][_0x092f('0x28')],_0x14a723['message']['id'],![],_0x5e5b5e,_0x3731ea['id']);if(rpc[_0x14a723[_0x092f('0x24')]+_0x092f('0x29')]){return rpc[_0x14a723['channel']+_0x092f('0x29')]['update'](_0x47379f,_0x205783)['catch'](function(_0x18cbe0){logger['error'](_0x092f('0x2d'));});}}}function endRouting(_0x433765,_0x3ad6f7,_0x33159f,_0x49dc63){if(_0x433765&&_0x3ad6f7){_0x3ad6f7[_0x092f('0x2e')]-=0x1;var _0x438506={'leaveAt':moment()[_0x092f('0x11')]('YYYY-MM-DD\x20HH:mm:ss'),'exitAt':moment()[_0x092f('0x11')](_0x092f('0x1f')),'reason':_0x092f('0x2f')};logger[_0x092f('0x30')](util[_0x092f('0x11')](_0x092f('0x31'),_0x433765,_0x3ad6f7['name']));emitChannelQueueInteraction(_0x33159f[_0x092f('0x24')],_0x3ad6f7[_0x092f('0x28')],_0x33159f[_0x092f('0x1e')],_0x33159f[_0x092f('0xa')][_0x092f('0x28')],_0x33159f[_0x092f('0x25')]['id'],![],_0x49dc63);if(rpc[_0x33159f['channel']+_0x092f('0x29')]){return rpc[_0x33159f[_0x092f('0x24')]+_0x092f('0x29')][_0x092f('0x32')](_0x433765,_0x438506)[_0x092f('0x2a')](function(_0x3ddc0f){logger[_0x092f('0x2b')](_0x092f('0x2d'));});}}}function handleFindQueue(_0x287a02){return function(_0x4f14c4){return _0x4f14c4[_0x092f('0x28')]['toLowerCase']()===_0x287a02[_0x092f('0x33')]();};}exports[_0x092f('0x34')]=function(_0x5e45cd,_0x298ec0,_0x42e9e9,_0x4b7743){return function(_0x3f896d){try{var _0x1da44e={'name':_0x298ec0[0x0],'timeout':_0x298ec0[0x1]};var _0x33b555=queue['validate'](_0x1da44e,{'typecast':!![]});if(_0x33b555[_0x092f('0x35')]){logger[_0x092f('0x2b')](_0x092f('0x36'),_0x5e45cd,_[_0x092f('0x37')](_0x33b555,_0x092f('0x25'))['join'](',\x20'));_0x3f896d[_0x092f('0x38')]();}else{var _0x40da60=_[_0x092f('0x39')](_0x42e9e9[_0x4b7743[_0x092f('0x24')]+_0x092f('0x3a')],handleFindQueue(_0x1da44e[_0x092f('0x28')]));if(_0x40da60){startRouting(_0x5e45cd,_0x40da60,_0x4b7743,_0x42e9e9);var _0x20c5c1=(_0x40da60[_0x092f('0x2f')]||0xa)*0x3e8;var _0x27291a=(_0x1da44e[_0x092f('0x2f')]||0x14)*0x3e8;var _0x3bb0c5,_0x37ffc6;if(_0x20c5c1>_0x27291a){_0x27291a=_0x20c5c1;}var _0x39b9d6=seqqueue[_0x092f('0x3b')](_0x20c5c1);_0x39b9d6['id']=_0x5e45cd;_0x39b9d6[_0x092f('0x3c')]=_0x20c5c1;_0x39b9d6[_0x092f('0x3d')]=_0x27291a;_0x39b9d6[_0x092f('0x24')]=_0x4b7743['channel'];_0x42e9e9[_0x092f('0x3e')][_0x5e45cd]['on'](_0x092f('0x3f'),function(){logger[_0x092f('0x30')](_0x092f('0x40'),_0x5e45cd);stopRouting(_0x5e45cd,_0x40da60,_0x4b7743,_0x42e9e9);clearTimeout(_0x3bb0c5);_0x3bb0c5=undefined;_0x39b9d6[_0x092f('0x41')](!![]);if(_0x42e9e9[_0x092f('0x3e')][_0x5e45cd]){delete _0x42e9e9[_0x092f('0x3e')][_0x5e45cd];}_0x3f896d[_0x092f('0x38')]();});_0x42e9e9[_0x092f('0x3e')][_0x5e45cd]['on'](_0x092f('0x42'),function(){if(_0x42e9e9[_0x092f('0x3e')][_0x5e45cd]){delete _0x42e9e9[_0x092f('0x3e')][_0x5e45cd];}});_0x3bb0c5=setTimeout(function(){logger[_0x092f('0x30')](_0x092f('0x43'),_0x5e45cd);endRouting(_0x5e45cd,_0x40da60,_0x4b7743,_0x42e9e9);clearTimeout(_0x3bb0c5);_0x39b9d6[_0x092f('0x41')](!![]);_0x3f896d['next']();},_0x27291a);switch(_0x40da60[_0x092f('0x44')]){case _0x092f('0x45'):strategy[_0x092f('0x45')](_0x39b9d6,_0x40da60,_0x42e9e9,_0x4b7743);break;default:strategy['beepall'](_0x39b9d6,_0x40da60,_0x42e9e9,_0x4b7743);}}else{logger[_0x092f('0x2b')](_0x092f('0x46'),_0x5e45cd,_0x1da44e['name']);_0x3f896d[_0x092f('0x38')]();}}}catch(_0x4d075a){console[_0x092f('0x47')](_0x4d075a);logger[_0x092f('0x2b')](_0x092f('0x36'),_0x5e45cd,_0x4d075a['stack']);_0x3f896d[_0x092f('0x38')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccbe=['RINGING','[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available','isNil','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','TIMEOUT','exports','lodash','./util','../../../../../config/logger','routing','notificationId','squeue','push','handleRun','bind','handleTimeout','timeout','handleDrained','prototype','info','agent','realtime','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','forcedOwnership','isAgentAvailable','channel','busy','busyQueue','showNotification','writeLog'];(function(_0x1dada6,_0x2a4f8e){var _0x188f14=function(_0x4ed396){while(--_0x4ed396){_0x1dada6['push'](_0x1dada6['shift']());}};_0x188f14(++_0x2a4f8e);}(_0xccbe,0x127));var _0xeccb=function(_0x32bb6b,_0x1a5fbe){_0x32bb6b=_0x32bb6b-0x0;var _0x58dcb4=_0xccbe[_0x32bb6b];return _0x58dcb4;};'use strict';var _=require(_0xeccb('0x0'));var uuid=require('uuid');var util=require(_0xeccb('0x1'));var logger=require(_0xeccb('0x2'))(_0xeccb('0x3'));var Agent=function(_0x4f4506,_0x3cc4e3,_0x42de3a,_0x27ec88){this[_0xeccb('0x4')]=uuid['v4']();this[_0xeccb('0x5')]=_0x4f4506;this['agent']=_0x3cc4e3;this['realtime']=_0x42de3a;this[_0xeccb('0x3')]=_0x27ec88;this[_0xeccb('0x5')][_0xeccb('0x6')](this[_0xeccb('0x7')][_0xeccb('0x8')](this),this[_0xeccb('0x9')]['bind'](this));this[_0xeccb('0x5')]['on'](_0xeccb('0xa'),this[_0xeccb('0x9')]['bind'](this));this['squeue']['on']('drained',this[_0xeccb('0xb')][_0xeccb('0x8')](this));};Agent['prototype'][_0xeccb('0x6')]=function(){this[_0xeccb('0x5')][_0xeccb('0x6')](this[_0xeccb('0x7')][_0xeccb('0x8')](this),this[_0xeccb('0x9')][_0xeccb('0x8')](this));};Agent[_0xeccb('0xc')][_0xeccb('0xb')]=function(){this[_0xeccb('0x9')](!![]);};Agent['prototype'][_0xeccb('0x7')]=function(_0x14b0c1){logger[_0xeccb('0xd')]('[%s][AGENT]\x20try\x20with\x20%s',this['squeue']['id'],this[_0xeccb('0xe')]['id']);if(_['isNil'](this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']])){logger[_0xeccb('0xd')](_0xeccb('0x11'),this[_0xeccb('0x5')]['id'],this[_0xeccb('0xe')]['id']);setTimeout(this['push'][_0xeccb('0x8')](this),0x3e8);}else{if(this[_0xeccb('0x3')][_0xeccb('0x12')]||util[_0xeccb('0x13')](this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']],this[_0xeccb('0x5')][_0xeccb('0x14')],![])){this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']][_0xeccb('0x15')]=!![];this[_0xeccb('0xf')][_0xeccb('0x10')][this['agent']['id']][_0xeccb('0x16')]=undefined;util[_0xeccb('0x17')](this[_0xeccb('0x4')],this['squeue']['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']],null,this[_0xeccb('0x3')]);util[_0xeccb('0x18')](this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')]['agents'][this[_0xeccb('0xe')]['id']],_0xeccb('0x19')+(this['routing']['forcedOwnership']?':FORCED':''));}else{logger[_0xeccb('0xd')](_0xeccb('0x1a'),this[_0xeccb('0x5')]['id'],this['agent']['id']);setTimeout(this['push'][_0xeccb('0x8')](this),0x3e8);}}};Agent[_0xeccb('0xc')][_0xeccb('0x9')]=function(_0x4f7300){if(_[_0xeccb('0x1b')](this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']])){return logger[_0xeccb('0xd')]('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xeccb('0x5')]['id'],this[_0xeccb('0xe')]['id']);}else{logger[_0xeccb('0xd')](_0xeccb('0x1c'),this[_0xeccb('0x5')]['id'],this[_0xeccb('0xe')]['id']);util[_0xeccb('0x1d')](this[_0xeccb('0x4')],this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this['agent']['id']],null,this[_0xeccb('0x3')]);this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']]['busy']=![];this[_0xeccb('0xf')]['agents'][this[_0xeccb('0xe')]['id']][_0xeccb('0x16')]=undefined;util['writeLog'](this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']],_0x4f7300?'STOP':_0xeccb('0x1e'));}if(!_0x4f7300){setTimeout(this[_0xeccb('0x6')]['bind'](this),0x3e8);}};function agent(_0x204a67,_0x5b1d37,_0x17244e,_0x47ce7d){return new Agent(_0x204a67,_0x5b1d37,_0x17244e,_0x47ce7d);}module[_0xeccb('0x1f')]=agent;
\ No newline at end of file
+var _0xd832=['isNil','agents','info','forcedOwnership','isAgentAvailable','channel','busy','showNotification','writeLog',':FORCED','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','busyQueue','exports','uuid','../../../../../config/logger','routing','notificationId','squeue','agent','realtime','push','handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','[%s][AGENT]\x20try\x20with\x20%s'];(function(_0x22aa61,_0x45e107){var _0x51500a=function(_0x16a73b){while(--_0x16a73b){_0x22aa61['push'](_0x22aa61['shift']());}};_0x51500a(++_0x45e107);}(_0xd832,0x145));var _0x2d83=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0xd832[_0xf71120];return _0xbe2fd3;};'use strict';var _=require('lodash');var uuid=require(_0x2d83('0x0'));var util=require('./util');var logger=require(_0x2d83('0x1'))(_0x2d83('0x2'));var Agent=function(_0x203551,_0x475267,_0x581a47,_0x5e8564){this[_0x2d83('0x3')]=uuid['v4']();this[_0x2d83('0x4')]=_0x203551;this[_0x2d83('0x5')]=_0x475267;this[_0x2d83('0x6')]=_0x581a47;this[_0x2d83('0x2')]=_0x5e8564;this[_0x2d83('0x4')][_0x2d83('0x7')](this[_0x2d83('0x8')][_0x2d83('0x9')](this),this[_0x2d83('0xa')]['bind'](this));this['squeue']['on'](_0x2d83('0xb'),this[_0x2d83('0xa')][_0x2d83('0x9')](this));this['squeue']['on'](_0x2d83('0xc'),this[_0x2d83('0xd')][_0x2d83('0x9')](this));};Agent[_0x2d83('0xe')][_0x2d83('0x7')]=function(){this['squeue']['push'](this[_0x2d83('0x8')][_0x2d83('0x9')](this),this['handleTimeout'][_0x2d83('0x9')](this));};Agent[_0x2d83('0xe')][_0x2d83('0xd')]=function(){this[_0x2d83('0xa')](!![]);};Agent[_0x2d83('0xe')]['handleRun']=function(_0x5a5841){logger['info'](_0x2d83('0xf'),this[_0x2d83('0x4')]['id'],this[_0x2d83('0x5')]['id']);if(_[_0x2d83('0x10')](this[_0x2d83('0x6')][_0x2d83('0x11')][this['agent']['id']])){logger[_0x2d83('0x12')]('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],this[_0x2d83('0x5')]['id']);setTimeout(this[_0x2d83('0x7')][_0x2d83('0x9')](this),0x3e8);}else{if(this[_0x2d83('0x2')][_0x2d83('0x13')]||util[_0x2d83('0x14')](this[_0x2d83('0x4')]['id'],this[_0x2d83('0x6')][_0x2d83('0x11')][this[_0x2d83('0x5')]['id']],this[_0x2d83('0x4')][_0x2d83('0x15')],![])){this['realtime']['agents'][this[_0x2d83('0x5')]['id']][_0x2d83('0x16')]=!![];this[_0x2d83('0x6')][_0x2d83('0x11')][this[_0x2d83('0x5')]['id']]['busyQueue']=undefined;util[_0x2d83('0x17')](this[_0x2d83('0x3')],this[_0x2d83('0x4')]['id'],this['realtime'][_0x2d83('0x11')][this['agent']['id']],null,this[_0x2d83('0x2')]);util[_0x2d83('0x18')](this[_0x2d83('0x4')]['id'],this[_0x2d83('0x6')][_0x2d83('0x11')][this[_0x2d83('0x5')]['id']],'RINGING'+(this['routing']['forcedOwnership']?_0x2d83('0x19'):''));}else{logger[_0x2d83('0x12')]('[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available',this['squeue']['id'],this['agent']['id']);setTimeout(this[_0x2d83('0x7')]['bind'](this),0x3e8);}}};Agent[_0x2d83('0xe')][_0x2d83('0xa')]=function(_0x3f5bea){if(_['isNil'](this[_0x2d83('0x6')]['agents'][this[_0x2d83('0x5')]['id']])){return logger['info'](_0x2d83('0x1a'),this['squeue']['id'],this[_0x2d83('0x5')]['id']);}else{logger[_0x2d83('0x12')](_0x2d83('0x1b'),this['squeue']['id'],this[_0x2d83('0x5')]['id']);util[_0x2d83('0x1c')](this[_0x2d83('0x3')],this[_0x2d83('0x4')]['id'],this[_0x2d83('0x6')]['agents'][this[_0x2d83('0x5')]['id']],null,this[_0x2d83('0x2')]);this[_0x2d83('0x6')][_0x2d83('0x11')][this[_0x2d83('0x5')]['id']][_0x2d83('0x16')]=![];this[_0x2d83('0x6')]['agents'][this[_0x2d83('0x5')]['id']][_0x2d83('0x1d')]=undefined;util[_0x2d83('0x18')](this[_0x2d83('0x4')]['id'],this['realtime'][_0x2d83('0x11')][this[_0x2d83('0x5')]['id']],_0x3f5bea?'STOP':'TIMEOUT');}if(!_0x3f5bea){setTimeout(this['push'][_0x2d83('0x9')](this),0x3e8);}};function agent(_0xc135d2,_0x5099d2,_0x23a4e0,_0x195206){return new Agent(_0xc135d2,_0x5099d2,_0x23a4e0,_0x195206);}module[_0x2d83('0x1e')]=agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81bd=['isNil','queue','Agents','length','agents','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','writeLog','RINGING','busy','busyQueue','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','hideNotification','STOP','TIMEOUT','exports','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','realtime','bind','timeout','handleTimeout','drained','handleDrained','prototype','push','handleRun'];(function(_0x140343,_0x63e5be){var _0x6b2115=function(_0x53ceea){while(--_0x53ceea){_0x140343['push'](_0x140343['shift']());}};_0x6b2115(++_0x63e5be);}(_0x81bd,0x7c));var _0xd81b=function(_0xc9c8ca,_0xbc7ae3){_0xc9c8ca=_0xc9c8ca-0x0;var _0x59fc76=_0x81bd[_0xc9c8ca];return _0x59fc76;};'use strict';var _=require(_0xd81b('0x0'));var uuid=require(_0xd81b('0x1'));var util=require(_0xd81b('0x2'));var logger=require(_0xd81b('0x3'))(_0xd81b('0x4'));var Beepall=function(_0x2ec03a,_0x111a9c,_0x54e096,_0x16e8de){this[_0xd81b('0x5')]=uuid['v4']();this[_0xd81b('0x6')]=_0x2ec03a;this['queue']=_0x111a9c;this[_0xd81b('0x7')]=_0x54e096;this[_0xd81b('0x4')]=_0x16e8de;this[_0xd81b('0x6')]['push'](this['handleRun'][_0xd81b('0x8')](this),this['handleTimeout'][_0xd81b('0x8')](this));this[_0xd81b('0x6')]['on'](_0xd81b('0x9'),this[_0xd81b('0xa')][_0xd81b('0x8')](this));this[_0xd81b('0x6')]['on'](_0xd81b('0xb'),this[_0xd81b('0xc')][_0xd81b('0x8')](this));};Beepall[_0xd81b('0xd')][_0xd81b('0xe')]=function(){this[_0xd81b('0x6')][_0xd81b('0xe')](this['handleRun'][_0xd81b('0x8')](this),this['handleTimeout'][_0xd81b('0x8')](this));};Beepall[_0xd81b('0xd')]['handleDrained']=function(_0x35a053){this['handleTimeout'](!![]);};Beepall[_0xd81b('0xd')][_0xd81b('0xf')]=function(_0x6c6041){var _0x35cfc1=!![];if(!_[_0xd81b('0x10')](this['queue'])&&!_[_0xd81b('0x10')](this[_0xd81b('0x11')]['Agents'])&&this[_0xd81b('0x11')][_0xd81b('0x12')][_0xd81b('0x13')]>0x0){for(var _0x15e860=0x0,_0x5f7db6;_0x15e860<this[_0xd81b('0x11')][_0xd81b('0x12')][_0xd81b('0x13')];_0x15e860+=0x1){_0x5f7db6=this[_0xd81b('0x11')][_0xd81b('0x12')][_0x15e860]['id'];if(_[_0xd81b('0x10')](this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6])){logger[_0xd81b('0x15')](_0xd81b('0x16'),this[_0xd81b('0x6')]['id'],_0x5f7db6);}else{if(util['isAgentAvailable'](this['squeue']['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6],this[_0xd81b('0x6')]['channel'],!![])){_0x35cfc1=![];util[_0xd81b('0x17')](this[_0xd81b('0x6')]['id'],this['realtime'][_0xd81b('0x14')][_0x5f7db6],_0xd81b('0x18'));this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6][_0xd81b('0x19')]=!![];this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6][_0xd81b('0x1a')]=this[_0xd81b('0x11')][_0xd81b('0x1b')];util[_0xd81b('0x1c')](this[_0xd81b('0x5')],this['squeue']['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6],this[_0xd81b('0x11')],this[_0xd81b('0x4')]);}}}if(_0x35cfc1){logger[_0xd81b('0x15')](_0xd81b('0x1d'),this[_0xd81b('0x6')]['id']);setTimeout(this[_0xd81b('0xe')][_0xd81b('0x8')](this),0x3e8);}}else{logger['info'](_0xd81b('0x1e'),this['squeue']['id']);setTimeout(this['push'][_0xd81b('0x8')](this),0x3e8);}};Beepall[_0xd81b('0xd')]['handleTimeout']=function(_0x481454){if(!_[_0xd81b('0x10')](this[_0xd81b('0x11')])&&!_[_0xd81b('0x10')](this[_0xd81b('0x11')][_0xd81b('0x12')])){for(var _0x4654ba=0x0,_0x5527ed;_0x4654ba<this[_0xd81b('0x11')][_0xd81b('0x12')]['length'];_0x4654ba+=0x1){_0x5527ed=this['queue'][_0xd81b('0x12')][_0x4654ba]['id'];if(_[_0xd81b('0x10')](this['realtime']['agents'][_0x5527ed])){logger['info'](_0xd81b('0x16'),this[_0xd81b('0x6')]['id'],_0x5527ed);}else{util[_0xd81b('0x1f')](this[_0xd81b('0x5')],this[_0xd81b('0x6')]['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed],this['queue'],this[_0xd81b('0x4')]);util['writeLog'](this[_0xd81b('0x6')]['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed],_0x481454?_0xd81b('0x20'):_0xd81b('0x21'));this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed][_0xd81b('0x19')]=![];this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed][_0xd81b('0x1a')]=undefined;}}}if(!_0x481454){setTimeout(this[_0xd81b('0xe')][_0xd81b('0x8')](this),0x3e8);}};function beepall(_0x57bc0c,_0x49deb8,_0x413bf6,_0x46119e){return new Beepall(_0x57bc0c,_0x49deb8,_0x413bf6,_0x46119e);}module[_0xd81b('0x22')]=beepall;
\ No newline at end of file
+var _0x2086=['push','handleDrained','isNil','Agents','agents','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','channel','writeLog','RINGING','busyQueue','name','showNotification','notificationId','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','STOP','TIMEOUT','busy','exports','lodash','uuid','./util','../../../../../config/logger','routing','squeue','queue','realtime','handleRun','bind','timeout','handleTimeout','drained','prototype'];(function(_0x47aa64,_0xfb8a07){var _0x549c7a=function(_0x266165){while(--_0x266165){_0x47aa64['push'](_0x47aa64['shift']());}};_0x549c7a(++_0xfb8a07);}(_0x2086,0x124));var _0x6208=function(_0x211ce3,_0x395f0e){_0x211ce3=_0x211ce3-0x0;var _0x2c66df=_0x2086[_0x211ce3];return _0x2c66df;};'use strict';var _=require(_0x6208('0x0'));var uuid=require(_0x6208('0x1'));var util=require(_0x6208('0x2'));var logger=require(_0x6208('0x3'))(_0x6208('0x4'));var Beepall=function(_0x13962a,_0x562353,_0x2c72bb,_0x2ae558){this['notificationId']=uuid['v4']();this[_0x6208('0x5')]=_0x13962a;this[_0x6208('0x6')]=_0x562353;this[_0x6208('0x7')]=_0x2c72bb;this[_0x6208('0x4')]=_0x2ae558;this[_0x6208('0x5')]['push'](this[_0x6208('0x8')]['bind'](this),this['handleTimeout'][_0x6208('0x9')](this));this[_0x6208('0x5')]['on'](_0x6208('0xa'),this[_0x6208('0xb')][_0x6208('0x9')](this));this[_0x6208('0x5')]['on'](_0x6208('0xc'),this['handleDrained'][_0x6208('0x9')](this));};Beepall[_0x6208('0xd')][_0x6208('0xe')]=function(){this[_0x6208('0x5')][_0x6208('0xe')](this['handleRun'][_0x6208('0x9')](this),this['handleTimeout'][_0x6208('0x9')](this));};Beepall[_0x6208('0xd')][_0x6208('0xf')]=function(_0x53962d){this[_0x6208('0xb')](!![]);};Beepall[_0x6208('0xd')][_0x6208('0x8')]=function(_0x4e9fb3){var _0x307367=!![];if(!_[_0x6208('0x10')](this[_0x6208('0x6')])&&!_['isNil'](this[_0x6208('0x6')][_0x6208('0x11')])&&this[_0x6208('0x6')]['Agents']['length']>0x0){for(var _0x43263a=0x0,_0x54aef1;_0x43263a<this['queue'][_0x6208('0x11')]['length'];_0x43263a+=0x1){_0x54aef1=this[_0x6208('0x6')][_0x6208('0x11')][_0x43263a]['id'];if(_[_0x6208('0x10')](this[_0x6208('0x7')][_0x6208('0x12')][_0x54aef1])){logger[_0x6208('0x13')](_0x6208('0x14'),this[_0x6208('0x5')]['id'],_0x54aef1);}else{if(util[_0x6208('0x15')](this[_0x6208('0x5')]['id'],this[_0x6208('0x7')][_0x6208('0x12')][_0x54aef1],this['squeue'][_0x6208('0x16')],!![])){_0x307367=![];util[_0x6208('0x17')](this[_0x6208('0x5')]['id'],this[_0x6208('0x7')][_0x6208('0x12')][_0x54aef1],_0x6208('0x18'));this[_0x6208('0x7')][_0x6208('0x12')][_0x54aef1]['busy']=!![];this[_0x6208('0x7')][_0x6208('0x12')][_0x54aef1][_0x6208('0x19')]=this[_0x6208('0x6')][_0x6208('0x1a')];util[_0x6208('0x1b')](this[_0x6208('0x1c')],this[_0x6208('0x5')]['id'],this[_0x6208('0x7')][_0x6208('0x12')][_0x54aef1],this['queue'],this[_0x6208('0x4')]);}}}if(_0x307367){logger[_0x6208('0x13')](_0x6208('0x1d'),this[_0x6208('0x5')]['id']);setTimeout(this[_0x6208('0xe')][_0x6208('0x9')](this),0x3e8);}}else{logger['info']('[%s][QUEUE]\x20EMPTY',this[_0x6208('0x5')]['id']);setTimeout(this[_0x6208('0xe')][_0x6208('0x9')](this),0x3e8);}};Beepall[_0x6208('0xd')]['handleTimeout']=function(_0x101e1b){if(!_[_0x6208('0x10')](this['queue'])&&!_[_0x6208('0x10')](this['queue']['Agents'])){for(var _0x53f775=0x0,_0x3f5474;_0x53f775<this['queue'][_0x6208('0x11')]['length'];_0x53f775+=0x1){_0x3f5474=this[_0x6208('0x6')][_0x6208('0x11')][_0x53f775]['id'];if(_['isNil'](this[_0x6208('0x7')]['agents'][_0x3f5474])){logger[_0x6208('0x13')](_0x6208('0x14'),this[_0x6208('0x5')]['id'],_0x3f5474);}else{util['hideNotification'](this[_0x6208('0x1c')],this[_0x6208('0x5')]['id'],this[_0x6208('0x7')][_0x6208('0x12')][_0x3f5474],this[_0x6208('0x6')],this['routing']);util[_0x6208('0x17')](this[_0x6208('0x5')]['id'],this[_0x6208('0x7')][_0x6208('0x12')][_0x3f5474],_0x101e1b?_0x6208('0x1e'):_0x6208('0x1f'));this['realtime']['agents'][_0x3f5474][_0x6208('0x20')]=![];this['realtime']['agents'][_0x3f5474][_0x6208('0x19')]=undefined;}}}if(!_0x101e1b){setTimeout(this[_0x6208('0xe')][_0x6208('0x9')](this),0x3e8);}};function beepall(_0x49b7bb,_0x3829b8,_0x27f70f,_0x45e10f){return new Beepall(_0x49b7bb,_0x3829b8,_0x27f70f,_0x45e10f);}module[_0x6208('0x21')]=beepall;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3fe4=['./rrmemory','./beepall','exports'];(function(_0x48326a,_0x8cfa0c){var _0x466709=function(_0x5ab1b7){while(--_0x5ab1b7){_0x48326a['push'](_0x48326a['shift']());}};_0x466709(++_0x8cfa0c);}(_0x3fe4,0x113));var _0x43fe=function(_0x5e59e7,_0x5b3049){_0x5e59e7=_0x5e59e7-0x0;var _0x293844=_0x3fe4[_0x5e59e7];return _0x293844;};'use strict';module[_0x43fe('0x0')]={'rrmemory':require(_0x43fe('0x1')),'beepall':require(_0x43fe('0x2')),'agent':require('./agent')};
\ No newline at end of file
+var _0xa9e8=['./agent','exports','./rrmemory','./beepall'];(function(_0x1cbb1e,_0x3f0417){var _0x537ac0=function(_0x39a2d8){while(--_0x39a2d8){_0x1cbb1e['push'](_0x1cbb1e['shift']());}};_0x537ac0(++_0x3f0417);}(_0xa9e8,0xb1));var _0x8a9e=function(_0x1b95d2,_0x2f340e){_0x1b95d2=_0x1b95d2-0x0;var _0x52d639=_0xa9e8[_0x1b95d2];return _0x52d639;};'use strict';module[_0x8a9e('0x0')]={'rrmemory':require(_0x8a9e('0x1')),'beepall':require(_0x8a9e('0x2')),'agent':require(_0x8a9e('0x3'))};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f98=['prototype','isAgentAvailable','agentId','channel','[%s][QUEUE]\x20available\x20again\x20%s','done','mapAgentsId','isNil','agents','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busyQueue','name','showNotification','notificationId','writeLog','RINGING','info','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','TIMEOUT','busy','exports','lodash','uuid','./util','../../../../../config/logger','routing','squeue','queue','realtime','intervals','push','handleRun','bind','handleTimeout','module','drained','handleDrained'];(function(_0x49fec6,_0x121b19){var _0x398820=function(_0x1eee0a){while(--_0x1eee0a){_0x49fec6['push'](_0x49fec6['shift']());}};_0x398820(++_0x121b19);}(_0x7f98,0x192));var _0x87f9=function(_0x36eaaa,_0x326732){_0x36eaaa=_0x36eaaa-0x0;var _0x461349=_0x7f98[_0x36eaaa];return _0x461349;};'use strict';var rr=require('rr');var _=require(_0x87f9('0x0'));var uuid=require(_0x87f9('0x1'));var util=require(_0x87f9('0x2'));var logger=require(_0x87f9('0x3'))(_0x87f9('0x4'));var RRMemory=function(_0x420f3e,_0x3d88a3,_0xa48de5,_0x452ad1){this['notificationId']=uuid['v4']();this[_0x87f9('0x5')]=_0x420f3e;this[_0x87f9('0x6')]=_0x3d88a3;this[_0x87f9('0x7')]=_0xa48de5;this[_0x87f9('0x4')]=_0x452ad1;this[_0x87f9('0x8')]={};this[_0x87f9('0x5')][_0x87f9('0x9')](this[_0x87f9('0xa')][_0x87f9('0xb')](this),this[_0x87f9('0xc')][_0x87f9('0xb')](this),this[_0x87f9('0xd')]);this[_0x87f9('0x5')]['on']('timeout',this[_0x87f9('0xc')]['bind'](this));this[_0x87f9('0x5')]['on'](_0x87f9('0xe'),this[_0x87f9('0xf')]['bind'](this));};RRMemory[_0x87f9('0x10')][_0x87f9('0x9')]=function(){this[_0x87f9('0x5')][_0x87f9('0x9')](this['handleRun'][_0x87f9('0xb')](this),this[_0x87f9('0xc')][_0x87f9('0xb')](this));};RRMemory[_0x87f9('0x10')][_0x87f9('0xf')]=function(_0x4cc965){this[_0x87f9('0xc')](!![]);};RRMemory[_0x87f9('0x10')]['handleCheckReject']=function(_0x4e537e){if(util[_0x87f9('0x11')](this[_0x87f9('0x5')]['id'],this['realtime']['agents'][this[_0x87f9('0x12')]],this['squeue'][_0x87f9('0x13')],!![])){logger['info'](_0x87f9('0x14'),this[_0x87f9('0x5')]['id'],this[_0x87f9('0x12')]);clearInterval(this['intervals'][this[_0x87f9('0x12')]]);_0x4e537e[_0x87f9('0x15')]();setTimeout(this[_0x87f9('0x9')][_0x87f9('0xb')](this),0x3e8);}};RRMemory[_0x87f9('0x10')][_0x87f9('0xa')]=function(_0x2aadd2){this[_0x87f9('0x12')]=rr(this[_0x87f9('0x6')][_0x87f9('0x16')]);logger['info']('[%s][QUEUE]\x20try\x20with\x20%s',this[_0x87f9('0x5')]['id'],this['agentId']);if(_[_0x87f9('0x17')](this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]])){logger['info'](_0x87f9('0x19'),this[_0x87f9('0x5')]['id'],this[_0x87f9('0x12')]);_0x2aadd2[_0x87f9('0x15')]();setTimeout(this[_0x87f9('0x9')][_0x87f9('0xb')](this),0x3e8);}else{if(util['isAgentAvailable'](this[_0x87f9('0x5')]['id'],this['realtime'][_0x87f9('0x18')][this[_0x87f9('0x12')]],this[_0x87f9('0x5')][_0x87f9('0x13')],!![])){this[_0x87f9('0x7')]['agents'][this[_0x87f9('0x12')]]['busy']=!![];this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]][_0x87f9('0x1a')]=this[_0x87f9('0x6')][_0x87f9('0x1b')];util[_0x87f9('0x1c')](this[_0x87f9('0x1d')],this[_0x87f9('0x5')]['id'],this['realtime'][_0x87f9('0x18')][this[_0x87f9('0x12')]],this[_0x87f9('0x6')],this['routing']);util[_0x87f9('0x1e')](this[_0x87f9('0x5')]['id'],this['realtime'][_0x87f9('0x18')][this[_0x87f9('0x12')]],_0x87f9('0x1f'));this['intervals'][this[_0x87f9('0x12')]]=setInterval(this['handleCheckReject']['bind'](this,_0x2aadd2),0x3e8);}else{logger[_0x87f9('0x20')](_0x87f9('0x21'),this[_0x87f9('0x5')]['id'],this['agentId']);_0x2aadd2[_0x87f9('0x15')]();setTimeout(this[_0x87f9('0x9')]['bind'](this),0x3e8);}}};RRMemory[_0x87f9('0x10')][_0x87f9('0xc')]=function(_0x3c96af){logger[_0x87f9('0x20')](_0x87f9('0x22'),this[_0x87f9('0x5')]['id'],this['agentId']);if(_[_0x87f9('0x17')](this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]])){logger[_0x87f9('0x20')](_0x87f9('0x19'),this[_0x87f9('0x5')]['id'],this[_0x87f9('0x12')]);}else{clearInterval(this['intervals'][this['agentId']]);util['hideNotification'](this['notificationId'],this[_0x87f9('0x5')]['id'],this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]],this[_0x87f9('0x6')],this['routing']);util[_0x87f9('0x1e')](this[_0x87f9('0x5')]['id'],this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]],_0x87f9('0x23'));this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]][_0x87f9('0x24')]=![];this[_0x87f9('0x7')][_0x87f9('0x18')][this['agentId']][_0x87f9('0x1a')]=undefined;}if(!_0x3c96af){setTimeout(this['push'][_0x87f9('0xb')](this),0x3e8);}};function rrmemory(_0x2e9db4,_0x4e933c,_0x3682ad,_0x420fa2){return new RRMemory(_0x2e9db4,_0x4e933c,_0x3682ad,_0x420fa2);}module[_0x87f9('0x25')]=rrmemory;
\ No newline at end of file
+var _0xae49=['[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','done','[%s][QUEUE]\x20timeout\x20with\x20%s','hideNotification','TIMEOUT','busyQueue','exports','lodash','./util','../../../../../config/logger','notificationId','squeue','queue','realtime','routing','intervals','push','handleRun','bind','handleTimeout','timeout','drained','prototype','handleDrained','handleCheckReject','agents','agentId','channel','info','[%s][QUEUE]\x20available\x20again\x20%s','mapAgentsId','isNil','isAgentAvailable','busy','showNotification','writeLog','RINGING'];(function(_0x547e20,_0x284545){var _0x359171=function(_0x590250){while(--_0x590250){_0x547e20['push'](_0x547e20['shift']());}};_0x359171(++_0x284545);}(_0xae49,0x179));var _0x9ae4=function(_0x11d32f,_0x4466e0){_0x11d32f=_0x11d32f-0x0;var _0x4cc9ff=_0xae49[_0x11d32f];return _0x4cc9ff;};'use strict';var rr=require('rr');var _=require(_0x9ae4('0x0'));var uuid=require('uuid');var util=require(_0x9ae4('0x1'));var logger=require(_0x9ae4('0x2'))('routing');var RRMemory=function(_0x2a64cc,_0x122769,_0x57d179,_0x211856){this[_0x9ae4('0x3')]=uuid['v4']();this[_0x9ae4('0x4')]=_0x2a64cc;this[_0x9ae4('0x5')]=_0x122769;this[_0x9ae4('0x6')]=_0x57d179;this[_0x9ae4('0x7')]=_0x211856;this[_0x9ae4('0x8')]={};this[_0x9ae4('0x4')][_0x9ae4('0x9')](this[_0x9ae4('0xa')][_0x9ae4('0xb')](this),this[_0x9ae4('0xc')][_0x9ae4('0xb')](this),this['module']);this['squeue']['on'](_0x9ae4('0xd'),this['handleTimeout'][_0x9ae4('0xb')](this));this['squeue']['on'](_0x9ae4('0xe'),this['handleDrained'][_0x9ae4('0xb')](this));};RRMemory[_0x9ae4('0xf')][_0x9ae4('0x9')]=function(){this['squeue'][_0x9ae4('0x9')](this[_0x9ae4('0xa')][_0x9ae4('0xb')](this),this[_0x9ae4('0xc')][_0x9ae4('0xb')](this));};RRMemory[_0x9ae4('0xf')][_0x9ae4('0x10')]=function(_0x556702){this['handleTimeout'](!![]);};RRMemory[_0x9ae4('0xf')][_0x9ae4('0x11')]=function(_0x146793){if(util['isAgentAvailable'](this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x6')][_0x9ae4('0x12')][this[_0x9ae4('0x13')]],this['squeue'][_0x9ae4('0x14')],!![])){logger[_0x9ae4('0x15')](_0x9ae4('0x16'),this['squeue']['id'],this[_0x9ae4('0x13')]);clearInterval(this[_0x9ae4('0x8')][this['agentId']]);_0x146793['done']();setTimeout(this['push'][_0x9ae4('0xb')](this),0x3e8);}};RRMemory[_0x9ae4('0xf')][_0x9ae4('0xa')]=function(_0x504652){this[_0x9ae4('0x13')]=rr(this[_0x9ae4('0x5')][_0x9ae4('0x17')]);logger[_0x9ae4('0x15')]('[%s][QUEUE]\x20try\x20with\x20%s',this[_0x9ae4('0x4')]['id'],this['agentId']);if(_[_0x9ae4('0x18')](this['realtime'][_0x9ae4('0x12')][this['agentId']])){logger[_0x9ae4('0x15')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x13')]);_0x504652['done']();setTimeout(this['push']['bind'](this),0x3e8);}else{if(util[_0x9ae4('0x19')](this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x6')][_0x9ae4('0x12')][this['agentId']],this[_0x9ae4('0x4')]['channel'],!![])){this['realtime']['agents'][this[_0x9ae4('0x13')]][_0x9ae4('0x1a')]=!![];this[_0x9ae4('0x6')][_0x9ae4('0x12')][this['agentId']]['busyQueue']=this[_0x9ae4('0x5')]['name'];util[_0x9ae4('0x1b')](this[_0x9ae4('0x3')],this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x6')][_0x9ae4('0x12')][this[_0x9ae4('0x13')]],this[_0x9ae4('0x5')],this[_0x9ae4('0x7')]);util[_0x9ae4('0x1c')](this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x6')][_0x9ae4('0x12')][this[_0x9ae4('0x13')]],_0x9ae4('0x1d'));this['intervals'][this[_0x9ae4('0x13')]]=setInterval(this[_0x9ae4('0x11')]['bind'](this,_0x504652),0x3e8);}else{logger[_0x9ae4('0x15')](_0x9ae4('0x1e'),this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x13')]);_0x504652[_0x9ae4('0x1f')]();setTimeout(this[_0x9ae4('0x9')][_0x9ae4('0xb')](this),0x3e8);}}};RRMemory[_0x9ae4('0xf')][_0x9ae4('0xc')]=function(_0x309064){logger[_0x9ae4('0x15')](_0x9ae4('0x20'),this['squeue']['id'],this[_0x9ae4('0x13')]);if(_[_0x9ae4('0x18')](this[_0x9ae4('0x6')][_0x9ae4('0x12')][this[_0x9ae4('0x13')]])){logger[_0x9ae4('0x15')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x13')]);}else{clearInterval(this[_0x9ae4('0x8')][this[_0x9ae4('0x13')]]);util[_0x9ae4('0x21')](this[_0x9ae4('0x3')],this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x6')][_0x9ae4('0x12')][this[_0x9ae4('0x13')]],this[_0x9ae4('0x5')],this[_0x9ae4('0x7')]);util['writeLog'](this[_0x9ae4('0x4')]['id'],this[_0x9ae4('0x6')][_0x9ae4('0x12')][this['agentId']],_0x9ae4('0x22'));this[_0x9ae4('0x6')][_0x9ae4('0x12')][this[_0x9ae4('0x13')]][_0x9ae4('0x1a')]=![];this['realtime']['agents'][this[_0x9ae4('0x13')]][_0x9ae4('0x23')]=undefined;}if(!_0x309064){setTimeout(this[_0x9ae4('0x9')][_0x9ae4('0xb')](this),0x3e8);}};function rrmemory(_0x5e8d56,_0x479611,_0x4b74a3,_0x3fdbbd){return new RRMemory(_0x5e8d56,_0x479611,_0x4b74a3,_0x3fdbbd);}module[_0x9ae4('0x24')]=rrmemory;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3da=['writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','localhost','socket.io-emitter','emit','format','user:%s','name','user:save','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','error','save','info','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification'];(function(_0x558a8a,_0x325a49){var _0x20996d=function(_0x572969){while(--_0x572969){_0x558a8a['push'](_0x558a8a['shift']());}};_0x20996d(++_0x325a49);}(_0xe3da,0x1cd));var _0xae3d=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xe3da[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0xae3d('0x0'));var util=require(_0xae3d('0x1'));var utils=require(_0xae3d('0x2'));var Mustache=require(_0xae3d('0x3'));var Redis=require(_0xae3d('0x4'));var config=require(_0xae3d('0x5'));var logger=require(_0xae3d('0x6'))(_0xae3d('0x7'));config[_0xae3d('0x8')]=_[_0xae3d('0x9')](config[_0xae3d('0x8')],{'host':_0xae3d('0xa'),'port':0x18eb});var io=require(_0xae3d('0xb'))(new Redis(config[_0xae3d('0x8')]));function emit(_0x476579,_0x33c089,_0x583b98){io['to'](_0x476579)[_0xae3d('0xc')](_0x33c089,_0x583b98);}function sendNotification(_0x3d6650,_0x5544fa,_0x577070,_0x459592,_0x157a3e,_0x420e28){io['to'](util[_0xae3d('0xd')](_0xae3d('0xe'),_0x459592[_0xae3d('0xf')]))['emit'](_0xae3d('0x10'),_0x459592);var _0x49fe58=_0x420e28||{};var _0xc7bd1c=_0x577070[_0xae3d('0x11')]('.');var _0x7770eb={'uniqueid':_0x5544fa,'channel':_0xc7bd1c[0x0],'id':_0xc7bd1c[0x1],'title':_0xc7bd1c[0x0]+_0xae3d('0x12'),'interactionId':_0xc7bd1c[0x2],'queue':_0x157a3e?_0x157a3e['name']:null,'sound':_0x49fe58[_0xae3d('0x13')][_0xae3d('0x14')],'shake':_0x49fe58[_0xae3d('0x13')][_0xae3d('0x15')]};try{if(!_0x49fe58[_0xae3d('0x16')]){_0x49fe58[_0xae3d('0x16')]={};}if(_0x157a3e){_0x49fe58[_0xae3d('0x16')]['queue']=_0x157a3e;}else if(_0x49fe58[_0xae3d('0x16')][_0xae3d('0x17')]){delete _0x49fe58[_0xae3d('0x16')][_0xae3d('0x17')];}_0x7770eb[_0xae3d('0x18')]=utils[_0xae3d('0x19')](_0x49fe58['account'][_0xae3d('0x1a')],_0x49fe58);}catch(_0x33449a){_0x7770eb[_0xae3d('0x18')]='I\x20can\x27t\x20render\x20your\x20template';logger[_0xae3d('0x1b')](util[_0xae3d('0xd')]('[%s][QUEUE]\x20%s',_0x5544fa,_0x33449a['message']));}io['to'](util[_0xae3d('0xd')](_0xae3d('0xe'),_0x459592[_0xae3d('0xf')]))[_0xae3d('0xc')](util[_0xae3d('0xd')]('notification:%s',_0x3d6650?_0xae3d('0x1c'):'remove'),_0x7770eb);}function writeLog(_0x4a09c2,_0x2d138f,_0x1415e8){return logger[_0xae3d('0x1d')](util[_0xae3d('0xd')](_0xae3d('0x1e'),_0x4a09c2,_0x2d138f[_0xae3d('0xf')],_0x1415e8));}exports[_0xae3d('0x1f')]=function(_0x3224ff,_0x11ecf7,_0x300be8,_0x9bf34a){if(_0x11ecf7[_0xae3d('0x20')]){writeLog(_0x3224ff,_0x11ecf7,_0xae3d('0x21'));return![];}if(!_0x11ecf7[_0xae3d('0x22')]){writeLog(_0x3224ff,_0x11ecf7,_0xae3d('0x23'));return![];}if(_0x11ecf7[_0x300be8+_0xae3d('0x24')]){writeLog(_0x3224ff,_0x11ecf7,_0xae3d('0x25'));return![];}if(_0x9bf34a&&_0x11ecf7[_0xae3d('0x26')](_0x300be8+_0xae3d('0x27'))&&_0x11ecf7['hasOwnProperty'](_0x300be8+_0xae3d('0x28'))){if(_0x11ecf7[_0x300be8+_0xae3d('0x27')]>0x0&&_0x11ecf7[_0x300be8+_0xae3d('0x28')]>=_0x11ecf7[_0x300be8+_0xae3d('0x27')]){writeLog(_0x3224ff,_0x11ecf7,_0x300be8[_0xae3d('0x29')]()+_0xae3d('0x2a'));return![];}}return!![];};exports[_0xae3d('0x2b')]=function(_0x54c1e1,_0x57864e,_0x12e3a5,_0x1281aa,_0x3a5840){return sendNotification(!![],_0x54c1e1,_0x57864e,_0x12e3a5,_0x1281aa,_0x3a5840);};exports[_0xae3d('0x2c')]=function(_0xb69ec9,_0x561371,_0x1d1483,_0x3a2434,_0x5a39c5){return sendNotification(![],_0xb69ec9,_0x561371,_0x1d1483,_0x3a2434,_0x5a39c5);};exports[_0xae3d('0x2d')]=writeLog;
\ No newline at end of file
+var _0x7b84=['split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','[%s][QUEUE]\x20%s','message','notification:%s','save','remove','info','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','hideNotification','lodash','util','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','redis','defaults','localhost','socket.io-emitter','emit','format','user:%s','name','user:save'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x7b84,0x17c));var _0x47b8=function(_0x649455,_0x43bc0a){_0x649455=_0x649455-0x0;var _0x3c5bc5=_0x7b84[_0x649455];return _0x3c5bc5;};'use strict';var _=require(_0x47b8('0x0'));var util=require(_0x47b8('0x1'));var utils=require(_0x47b8('0x2'));var Mustache=require(_0x47b8('0x3'));var Redis=require(_0x47b8('0x4'));var config=require(_0x47b8('0x5'));var logger=require(_0x47b8('0x6'))('routing');config[_0x47b8('0x7')]=_[_0x47b8('0x8')](config[_0x47b8('0x7')],{'host':_0x47b8('0x9'),'port':0x18eb});var io=require(_0x47b8('0xa'))(new Redis(config[_0x47b8('0x7')]));function emit(_0x53e656,_0x3867ca,_0x3ce846){io['to'](_0x53e656)[_0x47b8('0xb')](_0x3867ca,_0x3ce846);}function sendNotification(_0xb845c9,_0x2289d5,_0x1af17f,_0x24d240,_0x4570d4,_0x9414c2){io['to'](util[_0x47b8('0xc')](_0x47b8('0xd'),_0x24d240[_0x47b8('0xe')]))[_0x47b8('0xb')](_0x47b8('0xf'),_0x24d240);var _0x3e255e=_0x9414c2||{};var _0x2a1af3=_0x1af17f[_0x47b8('0x10')]('.');var _0x2a10d2={'uniqueid':_0x2289d5,'channel':_0x2a1af3[0x0],'id':_0x2a1af3[0x1],'title':_0x2a1af3[0x0]+_0x47b8('0x11'),'interactionId':_0x2a1af3[0x2],'queue':_0x4570d4?_0x4570d4[_0x47b8('0xe')]:null,'sound':_0x3e255e[_0x47b8('0x12')][_0x47b8('0x13')],'shake':_0x3e255e[_0x47b8('0x12')][_0x47b8('0x14')]};try{if(!_0x3e255e[_0x47b8('0x15')]){_0x3e255e[_0x47b8('0x15')]={};}if(_0x4570d4){_0x3e255e[_0x47b8('0x15')]['queue']=_0x4570d4;}else if(_0x3e255e[_0x47b8('0x15')][_0x47b8('0x16')]){delete _0x3e255e[_0x47b8('0x15')][_0x47b8('0x16')];}_0x2a10d2[_0x47b8('0x17')]=utils[_0x47b8('0x18')](_0x3e255e[_0x47b8('0x12')]['notificationTemplate'],_0x3e255e);}catch(_0x3cc9d9){_0x2a10d2['msg']='I\x20can\x27t\x20render\x20your\x20template';logger['error'](util[_0x47b8('0xc')](_0x47b8('0x19'),_0x2289d5,_0x3cc9d9[_0x47b8('0x1a')]));}io['to'](util['format']('user:%s',_0x24d240['name']))[_0x47b8('0xb')](util['format'](_0x47b8('0x1b'),_0xb845c9?_0x47b8('0x1c'):_0x47b8('0x1d')),_0x2a10d2);}function writeLog(_0xfccf56,_0x4eba33,_0xc20df1){return logger[_0x47b8('0x1e')](util[_0x47b8('0xc')](_0x47b8('0x1f'),_0xfccf56,_0x4eba33[_0x47b8('0xe')],_0xc20df1));}exports[_0x47b8('0x20')]=function(_0x54f6bc,_0x31555d,_0x2a22e3,_0x5301f8){if(_0x31555d[_0x47b8('0x21')]){writeLog(_0x54f6bc,_0x31555d,_0x47b8('0x22'));return![];}if(!_0x31555d[_0x47b8('0x23')]){writeLog(_0x54f6bc,_0x31555d,_0x47b8('0x24'));return![];}if(_0x31555d[_0x2a22e3+'Pause']){writeLog(_0x54f6bc,_0x31555d,_0x47b8('0x25'));return![];}if(_0x5301f8&&_0x31555d[_0x47b8('0x26')](_0x2a22e3+_0x47b8('0x27'))&&_0x31555d[_0x47b8('0x26')](_0x2a22e3+_0x47b8('0x28'))){if(_0x31555d[_0x2a22e3+_0x47b8('0x27')]>0x0&&_0x31555d[_0x2a22e3+_0x47b8('0x28')]>=_0x31555d[_0x2a22e3+'Capacity']){writeLog(_0x54f6bc,_0x31555d,_0x2a22e3[_0x47b8('0x29')]()+_0x47b8('0x2a'));return![];}}return!![];};exports['showNotification']=function(_0x195a66,_0x6d517a,_0x147878,_0x3dcf1a,_0x4da0e0){return sendNotification(!![],_0x195a66,_0x6d517a,_0x147878,_0x3dcf1a,_0x4da0e0);};exports[_0x47b8('0x2b')]=function(_0x5c347f,_0x2c89fc,_0x2255ab,_0x33e653,_0x2e540d){return sendNotification(![],_0x5c347f,_0x2c89fc,_0x2255ab,_0x33e653,_0x2e540d);};exports['writeLog']=writeLog;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b51=['next','isObject','stringify','validate','shelljs','lodash','./utils','../../../../config/logger','routing','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','length','error','[%s][SYSTEM]\x20%s','join','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','getMustacheRender','info','[%s][SYSTEM]\x20commnad:\x20%s','exec','trim','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','isEmpty','[%s][SYSTEM]\x20no\x20variable'];(function(_0x424d55,_0x4de1b1){var _0x219178=function(_0x2dce42){while(--_0x2dce42){_0x424d55['push'](_0x424d55['shift']());}};_0x219178(++_0x4de1b1);}(_0x2b51,0x1c5));var _0x12b5=function(_0x471401,_0x7a6b33){_0x471401=_0x471401-0x0;var _0x3ca844=_0x2b51[_0x471401];return _0x3ca844;};'use strict';var schema=require(_0x12b5('0x0'));var sh=require(_0x12b5('0x1'));var _=require(_0x12b5('0x2'));var utils=require(_0x12b5('0x3'));var logger=require(_0x12b5('0x4'))(_0x12b5('0x5'));var system=schema({'command':{'type':'string','required':!![],'message':_0x12b5('0x6')}});exports['consequence']=function(_0x5b65f8,_0x15c5da){return function(_0x2275d8){try{var _0x38a245={'command':_0x15c5da[0x0]};var _0x3fa276=system[_0x12b5('0x0')](_0x38a245,{'typecast':!![]});if(_0x3fa276[_0x12b5('0x7')]){logger[_0x12b5('0x8')](_0x12b5('0x9'),_0x5b65f8,_['map'](_0x3fa276,'message')[_0x12b5('0xa')](',\x20'));logger['info'](_0x12b5('0xb'),_0x5b65f8);_0x2275d8['next']();}else{var _0x80d981=this;var _0x127cb7=utils[_0x12b5('0xc')](_0x15c5da[0x0],this);logger[_0x12b5('0xd')](_0x12b5('0xe'),_0x5b65f8,_0x127cb7);sh[_0x12b5('0xf')](_[_0x12b5('0x10')](_0x127cb7),function(_0x2f2027,_0x48a910){logger['info'](_0x12b5('0x11'),_0x5b65f8,_0x2f2027);if(_0x2f2027==0x0){var _0x18b765=_0x48a910[_0x12b5('0x12')](/(\r\n|\n|\r)/gm,'');if(_[_0x12b5('0x13')](_0x15c5da[0x1])||_[_0x12b5('0x14')](_0x15c5da[0x1])){logger[_0x12b5('0xd')](_0x12b5('0x15'),_0x5b65f8);_0x80d981['body'][_0x15c5da[0x1]]=_0x18b765;}else{logger['info']('[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s',_0x5b65f8,_0x15c5da[0x1],_0x18b765);_0x80d981['body'][_0x15c5da[0x1]]=_0x18b765;}}_0x2275d8[_0x12b5('0x16')]();});}}catch(_0x2c75dd){logger[_0x12b5('0x8')](_0x12b5('0x9'),_0x5b65f8,_[_0x12b5('0x17')](_0x2c75dd)?JSON[_0x12b5('0x18')](_0x2c75dd):_0x2c75dd);logger[_0x12b5('0xd')](_0x12b5('0xb'),_0x5b65f8);_0x2275d8['next']();}};};
\ No newline at end of file
+var _0x65c7=['next','isObject','stringify','shelljs','lodash','./utils','../../../../config/logger','string','consequence','length','error','[%s][SYSTEM]\x20%s','join','info','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','exec','replace','isNil','isEmpty','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s'];(function(_0x1d535f,_0x344191){var _0x1533d8=function(_0x1bd33e){while(--_0x1bd33e){_0x1d535f['push'](_0x1d535f['shift']());}};_0x1533d8(++_0x344191);}(_0x65c7,0x137));var _0x765c=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x65c7[_0x5b644e];return _0x49c6bf;};'use strict';var schema=require('validate');var sh=require(_0x765c('0x0'));var _=require(_0x765c('0x1'));var utils=require(_0x765c('0x2'));var logger=require(_0x765c('0x3'))('routing');var system=schema({'command':{'type':_0x765c('0x4'),'required':!![],'message':'command\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x765c('0x5')]=function(_0x267b96,_0x206b1a){return function(_0x10e3c2){try{var _0x3a127b={'command':_0x206b1a[0x0]};var _0x87e37f=system['validate'](_0x3a127b,{'typecast':!![]});if(_0x87e37f[_0x765c('0x6')]){logger[_0x765c('0x7')](_0x765c('0x8'),_0x267b96,_['map'](_0x87e37f,'message')[_0x765c('0x9')](',\x20'));logger[_0x765c('0xa')](_0x765c('0xb'),_0x267b96);_0x10e3c2['next']();}else{var _0x221031=this;var _0x51db98=utils['getMustacheRender'](_0x206b1a[0x0],this);logger['info']('[%s][SYSTEM]\x20commnad:\x20%s',_0x267b96,_0x51db98);sh[_0x765c('0xc')](_['trim'](_0x51db98),function(_0x4050ce,_0x23fe6f){logger['info']('[%s][SYSTEM]\x20result\x20code:\x20%s',_0x267b96,_0x4050ce);if(_0x4050ce==0x0){var _0xf05179=_0x23fe6f[_0x765c('0xd')](/(\r\n|\n|\r)/gm,'');if(_[_0x765c('0xe')](_0x206b1a[0x1])||_[_0x765c('0xf')](_0x206b1a[0x1])){logger['info'](_0x765c('0x10'),_0x267b96);_0x221031[_0x765c('0x11')][_0x206b1a[0x1]]=_0xf05179;}else{logger[_0x765c('0xa')](_0x765c('0x12'),_0x267b96,_0x206b1a[0x1],_0xf05179);_0x221031[_0x765c('0x11')][_0x206b1a[0x1]]=_0xf05179;}}_0x10e3c2[_0x765c('0x13')]();});}}catch(_0x4bfb18){logger[_0x765c('0x7')](_0x765c('0x8'),_0x267b96,_[_0x765c('0x14')](_0x4bfb18)?JSON[_0x765c('0x15')](_0x4bfb18):_0x4bfb18);logger[_0x765c('0xa')]('[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next',_0x267b96);_0x10e3c2[_0x765c('0x13')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9aaa=['../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','routing','number','consequence','length','error','[%s][TAG]\x20%s','message','join','info','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','next','channel','Interaction','addTags','interaction','then','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','stringify','finally','isObject','validate','lodash','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction'];(function(_0x32ebd1,_0x58594a){var _0x429d08=function(_0x470627){while(--_0x470627){_0x32ebd1['push'](_0x32ebd1['shift']());}};_0x429d08(++_0x58594a);}(_0x9aaa,0x183));var _0xa9aa=function(_0x104437,_0x44930f){_0x104437=_0x104437-0x0;var _0x3b1a01=_0x9aaa[_0x104437];return _0x3b1a01;};'use strict';var schema=require(_0xa9aa('0x0'));var _=require(_0xa9aa('0x1'));var rpc={'chatInteraction':require(_0xa9aa('0x2')),'openchannelInteraction':require(_0xa9aa('0x3')),'smsInteraction':require(_0xa9aa('0x4')),'mailInteraction':require(_0xa9aa('0x5')),'faxInteraction':require(_0xa9aa('0x6')),'whatsappInteraction':require(_0xa9aa('0x7'))};var logger=require('../../../../config/logger')(_0xa9aa('0x8'));var tag=schema({'tag':{'type':_0xa9aa('0x9'),'required':!![],'message':'TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0xa9aa('0xa')]=function(_0x221285,_0x222bd0,_0x1869ab,_0x1e9d33){return function(_0x4fdbd8){try{var _0x4fee34={'tag':_0x222bd0[0x0]};var _0x350141=tag['validate'](_0x4fee34,{'typecast':!![]});if(_0x350141[_0xa9aa('0xb')]){logger[_0xa9aa('0xc')](_0xa9aa('0xd'),_0x221285,_['map'](_0x350141,_0xa9aa('0xe'))[_0xa9aa('0xf')](',\x20'));logger[_0xa9aa('0x10')](_0xa9aa('0x11'),_0x221285);_0x4fdbd8[_0xa9aa('0x12')]();}else{var _0x11a383={'ids':[_0x222bd0[0x0]]};if(rpc[_0x1e9d33[_0xa9aa('0x13')]+_0xa9aa('0x14')]){rpc[_0x1e9d33[_0xa9aa('0x13')]+_0xa9aa('0x14')][_0xa9aa('0x15')](_0x1e9d33[_0xa9aa('0x16')]['id'],_0x11a383)[_0xa9aa('0x17')](function(_0x36c588){logger[_0xa9aa('0x10')](_0xa9aa('0x18'),_0x221285,_0x222bd0[0x1],_0x1e9d33['channel'],_0x1e9d33['interaction']['id']);})['catch'](function(_0x41444d){logger[_0xa9aa('0xc')](_0xa9aa('0xd'),_0x221285,JSON[_0xa9aa('0x19')](_0x41444d));logger[_0xa9aa('0x10')](_0xa9aa('0x11'),_0x221285);})[_0xa9aa('0x1a')](function(){_0x4fdbd8[_0xa9aa('0x12')]();});}}}catch(_0x2aab73){logger[_0xa9aa('0xc')]('[%s][TAG]\x20%s',_0x221285,_[_0xa9aa('0x1b')](_0x2aab73)?JSON[_0xa9aa('0x19')](_0x2aab73):_0x2aab73);logger[_0xa9aa('0x10')](_0xa9aa('0x11'),_0x221285);_0x4fdbd8[_0xa9aa('0x12')]();}};};
\ No newline at end of file
+var _0x0054=['error','[%s][TAG]\x20%s','map','message','join','info','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','Interaction','channel','addTags','interaction','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','catch','stringify','finally','next','lodash','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../../../config/logger','routing','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','validate'];(function(_0x386388,_0x3dbfa6){var _0x4b9cc1=function(_0x5ede23){while(--_0x5ede23){_0x386388['push'](_0x386388['shift']());}};_0x4b9cc1(++_0x3dbfa6);}(_0x0054,0x1ca));var _0x4005=function(_0x2265d6,_0x3fe205){_0x2265d6=_0x2265d6-0x0;var _0x275dda=_0x0054[_0x2265d6];return _0x275dda;};'use strict';var schema=require('validate');var _=require(_0x4005('0x0'));var rpc={'chatInteraction':require(_0x4005('0x1')),'openchannelInteraction':require(_0x4005('0x2')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require(_0x4005('0x3')),'faxInteraction':require(_0x4005('0x4')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var logger=require(_0x4005('0x5'))(_0x4005('0x6'));var tag=schema({'tag':{'type':'number','required':!![],'message':_0x4005('0x7')}});exports[_0x4005('0x8')]=function(_0x59ab9a,_0x47c161,_0x2ab1c5,_0x1a955a){return function(_0x400c5a){try{var _0x5a6a57={'tag':_0x47c161[0x0]};var _0x40c1c0=tag[_0x4005('0x9')](_0x5a6a57,{'typecast':!![]});if(_0x40c1c0['length']){logger[_0x4005('0xa')](_0x4005('0xb'),_0x59ab9a,_[_0x4005('0xc')](_0x40c1c0,_0x4005('0xd'))[_0x4005('0xe')](',\x20'));logger[_0x4005('0xf')](_0x4005('0x10'),_0x59ab9a);_0x400c5a['next']();}else{var _0x375f91={'ids':[_0x47c161[0x0]]};if(rpc[_0x1a955a['channel']+_0x4005('0x11')]){rpc[_0x1a955a[_0x4005('0x12')]+_0x4005('0x11')][_0x4005('0x13')](_0x1a955a[_0x4005('0x14')]['id'],_0x375f91)['then'](function(_0xd29e8e){logger[_0x4005('0xf')](_0x4005('0x15'),_0x59ab9a,_0x47c161[0x1],_0x1a955a['channel'],_0x1a955a[_0x4005('0x14')]['id']);})[_0x4005('0x16')](function(_0x224304){logger[_0x4005('0xa')](_0x4005('0xb'),_0x59ab9a,JSON[_0x4005('0x17')](_0x224304));logger[_0x4005('0xf')](_0x4005('0x10'),_0x59ab9a);})[_0x4005('0x18')](function(){_0x400c5a[_0x4005('0x19')]();});}}}catch(_0x25944e){logger[_0x4005('0xa')](_0x4005('0xb'),_0x59ab9a,_['isObject'](_0x25944e)?JSON[_0x4005('0x17')](_0x25944e):_0x25944e);logger[_0x4005('0xf')](_0x4005('0x10'),_0x59ab9a);_0x400c5a[_0x4005('0x19')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['merge','body','account','list','exports','render'];(function(_0x59882a,_0x750be9){var _0x157fe5=function(_0x255fe9){while(--_0x255fe9){_0x59882a['push'](_0x59882a['shift']());}};_0x157fe5(++_0x750be9);}(_0x9c44,0x178));var _0x49c4=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x9c44[_0x167cc1];return _0x10bc4b;};'use strict';var Mustache=require('mustache');var _=require('lodash');module[_0x49c4('0x0')]={'getMustacheRender':function(_0x18bf2d,_0x26844b){return Mustache[_0x49c4('0x1')](_0x18bf2d,_[_0x49c4('0x2')](_0x26844b[_0x49c4('0x3')],{'contact':_0x26844b['contact'],'message':_0x26844b['message'],'account':_0x26844b[_0x49c4('0x4')],'interaction':_0x26844b['interaction'],'list':_0x26844b[_0x49c4('0x5')]}))||'';}};
\ No newline at end of file
+var _0xd8b0=['merge','body','contact','message','list','mustache','lodash','render'];(function(_0xd74d39,_0x4e572e){var _0x4d1022=function(_0x474150){while(--_0x474150){_0xd74d39['push'](_0xd74d39['shift']());}};_0x4d1022(++_0x4e572e);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Mustache=require(_0x0d8b('0x0'));var _=require(_0x0d8b('0x1'));module['exports']={'getMustacheRender':function(_0x585166,_0x4b72b0){return Mustache[_0x0d8b('0x2')](_0x585166,_[_0x0d8b('0x3')](_0x4b72b0[_0x0d8b('0x4')],{'contact':_0x4b72b0[_0x0d8b('0x5')],'message':_0x4b72b0[_0x0d8b('0x6')],'account':_0x4b72b0['account'],'interaction':_0x4b72b0['interaction'],'list':_0x4b72b0[_0x0d8b('0x7')]}))||'';}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb67b=['capacity','agent\x20not\x20found','values','chatQueues','loggedIn','waiting','mailQueues','available','name','paused','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','listen','127.0.0.1','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','path','jayson/promise','bluebird','uuid','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','rules','message','interaction','applications','length','join','.js','app','toLowerCase','autoreply','appdata','split','channel','mail','push','slice','dialogflow','dialogflowv2','amazonlex','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','execute','Applications\x20executed','stringify','emit','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','agents','agent','busy','busyQueue','QueueReport','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','end','hasOwnProperty'];(function(_0x290232,_0x225df1){var _0x52572c=function(_0x535199){while(--_0x535199){_0x290232['push'](_0x290232['shift']());}};_0x52572c(++_0x225df1);}(_0xb67b,0x1f3));var _0xbb67=function(_0x593941,_0x54b080){_0x593941=_0x593941-0x0;var _0x292692=_0xb67b[_0x593941];return _0x292692;};'use strict';var _=require(_0xbb67('0x0'));var util=require('util');var path=require(_0xbb67('0x1'));var fs=require('fs');var jayson=require(_0xbb67('0x2'));var BPromise=require(_0xbb67('0x3'));var uuid=require(_0xbb67('0x4'));var config=require('../../../config/environment');var logger=require(_0xbb67('0x5'))(_0xbb67('0x6'));var rpc={'openchannelQueueReport':require(_0xbb67('0x7')),'mailQueueReport':require(_0xbb67('0x8')),'chatQueueReport':require(_0xbb67('0x9')),'smsQueueReport':require(_0xbb67('0xa')),'faxQueueReport':require(_0xbb67('0xb')),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0xbb67('0xc'));function getId(_0x24ac3d,_0x57d582,_0x4912e4){return util[_0xbb67('0xd')](_0xbb67('0xe'),_0x24ac3d,_0x57d582||0x0,_0x4912e4||0x0);}function getIntervals(_0x30f2f7,_0x42fd05){var _0x22bfd0=[];if(!_[_0xbb67('0xf')](_0x42fd05[_0xbb67('0x10')])&&!_[_0xbb67('0xf')](_0x30f2f7[_0x42fd05[_0xbb67('0x10')]])&&!_[_0xbb67('0xf')](_0x30f2f7[_0x42fd05['IntervalId']][_0xbb67('0x11')])){_0x22bfd0=_[_0xbb67('0x12')](_0x30f2f7[_0x42fd05[_0xbb67('0x10')]][_0xbb67('0x11')],_0xbb67('0x13'));}else if(!_[_0xbb67('0xf')](_0x42fd05[_0xbb67('0x13')])){_0x22bfd0=[_0x42fd05['interval']];}return _0x22bfd0;}exports['listen']=function(_0x56158d){_0x56158d[_0xbb67('0x14')]={};return new BPromise(function(_0x4d2593,_0x474577){var _0x176f91={'Start':function(_0x14cd97){var _0x46dfa3=this;return new Promise(function(_0x4d9909,_0x4222b6){if(_0x14cd97){try{var _0x4a3201=[];var _0x5c7a68=getId(_0x14cd97['channel'],_0x14cd97[_0xbb67('0x15')]?_0x14cd97[_0xbb67('0x15')]['id']:0x0,_0x14cd97[_0xbb67('0x16')]?_0x14cd97['interaction']['id']:0x0);if(_0x14cd97[_0xbb67('0x17')]&&_['isArray'](_0x14cd97['applications'])&&_0x14cd97[_0xbb67('0x17')]['length']){for(var _0xdab993=0x0;_0xdab993<_0x14cd97[_0xbb67('0x17')][_0xbb67('0x18')];_0xdab993+=0x1){var _0x5d467f=_0x14cd97['applications'][_0xdab993];if(fs['existsSync'](path[_0xbb67('0x19')](__dirname,_0xbb67('0x17'),_0x5d467f['app']+_0xbb67('0x1a')))){var _0xf7537a=[];switch(_0x5d467f[_0xbb67('0x1b')][_0xbb67('0x1c')]()){case _0xbb67('0x1d'):var _0xc9762d=_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');if(_0x14cd97[_0xbb67('0x20')]===_0xbb67('0x21')){_0xf7537a[_0xbb67('0x22')](_0xc9762d[0x0]);_0xf7537a[_0xbb67('0x22')](_0xc9762d[0x1]);_0xf7537a[_0xbb67('0x22')](_0xc9762d[_0xbb67('0x23')](0x2,_0xc9762d['length'])[_0xbb67('0x19')](','));}else{_0xf7537a[_0xbb67('0x22')](_0xc9762d[0x0]);_0xf7537a[_0xbb67('0x22')](_0xc9762d['slice'](0x1,_0xc9762d[_0xbb67('0x18')])[_0xbb67('0x19')](','));}break;case _0xbb67('0x24'):var _0x395274=_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');_0xf7537a['push'](_0x395274[0x0]);_0xf7537a['push'](_0x395274[0x1]);_0xf7537a[_0xbb67('0x22')](_0x395274[_0xbb67('0x23')](0x2,_0x395274['length'])[_0xbb67('0x19')](','));break;case _0xbb67('0x25'):var _0x4dbf1a=_0x5d467f[_0xbb67('0x1e')]['split'](',');_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x0]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x1]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x2]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x3]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[_0xbb67('0x23')](0x4,_0x4dbf1a[_0xbb67('0x18')])['join'](','));break;case _0xbb67('0x26'):var _0x3fb188=_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');_0xf7537a[_0xbb67('0x22')](_0x3fb188[0x0]);_0xf7537a[_0xbb67('0x22')](_0x3fb188[0x1]);_0xf7537a['push'](_0x3fb188[0x2]);_0xf7537a['push'](_0x3fb188[0x3]);_0xf7537a['push'](_0x3fb188[_0xbb67('0x23')](0x4,_0x3fb188['length'])['join'](','));break;case _0xbb67('0x15'):_0xf7537a[_0xbb67('0x22')](_0x5d467f['appdata']);break;case'tag':_0xf7537a['push'](_0x5d467f['TagId']);_0xf7537a[_0xbb67('0x22')](_0x5d467f['appdata']);break;default:_0xf7537a=_[_0xbb67('0xf')](_0x5d467f[_0xbb67('0x1e')])?[]:_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');}var _0x90625f={'id':util[_0xbb67('0xd')](_0xbb67('0x27'),_0x5c7a68,_0x5d467f['id'],_0x5d467f[_0xbb67('0x1b')]),'condition':require(_0xbb67('0x28'))[_0xbb67('0x29')](_0x5c7a68,getIntervals(_0x56158d[_0xbb67('0x2a')],_0x5d467f),_0x56158d),'consequence':require(_0xbb67('0x2b')+_0x5d467f[_0xbb67('0x1b')])[_0xbb67('0x2c')](_0x5c7a68,_0xf7537a,_0x56158d,_0x14cd97),'p':_0x5d467f['priority']||0x0};logger[_0xbb67('0x2d')](_0xbb67('0x2e'),_0x90625f['id'],_0xbb67('0x2f'),getIntervals(_0x56158d[_0xbb67('0x2a')],_0x5d467f)[_0xbb67('0x19')](_0xbb67('0x30')));_0x4a3201[_0xbb67('0x22')](_0x90625f);}else{logger[_0xbb67('0x31')](_0xbb67('0x32'),path[_0xbb67('0x19')](__dirname,'applications',_0x5d467f[_0xbb67('0x1b')]+_0xbb67('0x1a')));}}_0x56158d[_0xbb67('0x14')][_0x5c7a68]=new RuleEngine(_0x4a3201);_0x56158d['rules'][_0x5c7a68][_0xbb67('0x33')](_0x14cd97,function(_0x185ba6){logger[_0xbb67('0x2d')](_0xbb67('0x34'),JSON[_0xbb67('0x35')](_0x185ba6['matchPath']));if(_0x56158d[_0xbb67('0x14')][_0x5c7a68]){_0x56158d[_0xbb67('0x14')][_0x5c7a68][_0xbb67('0x36')](_0xbb67('0x37'));}});return _0x4d9909({'code':0xc8,'message':_0x14cd97});}else{logger[_0xbb67('0x2d')](_0xbb67('0x38'));return _0x4d9909({'code':0xc8,'message':_0x14cd97});}}catch(_0xe2b593){logger[_0xbb67('0x31')](_0xe2b593[_0xbb67('0x39')]);return _0x4222b6(_0x46dfa3[_0xbb67('0x31')](0x1f4,_0xe2b593));}}return _0x4222b6(_0xbb67('0x3a'));});},'AcceptMessage':function(_0x45f41f){var _0x41c992=this;return new Promise(function(_0x545847,_0x5c154e){if(_0x45f41f['agent']&&_0x45f41f['agent']['id']){if(_0x56158d[_0xbb67('0x3b')][_0x45f41f[_0xbb67('0x3c')]['id']]){_0x56158d[_0xbb67('0x3b')][_0x45f41f[_0xbb67('0x3c')]['id']][_0xbb67('0x3d')]=![];_0x56158d[_0xbb67('0x3b')][_0x45f41f[_0xbb67('0x3c')]['id']][_0xbb67('0x3e')]=undefined;}}if(_0x45f41f['message']&&_0x45f41f[_0xbb67('0x15')]['id']){try{var _0x1f1c11=getId(_0x45f41f[_0xbb67('0x20')],_0x45f41f['message']?_0x45f41f['message']['id']:0x0,_0x45f41f['interaction']?_0x45f41f['interaction']['id']:0x0);if(_0x56158d[_0xbb67('0x14')][_0x1f1c11]){_0x56158d['rules'][_0x1f1c11][_0xbb67('0x36')]('end');if(rpc[_0x45f41f['channel']+_0xbb67('0x3f')]){rpc[_0x45f41f[_0xbb67('0x20')]+_0xbb67('0x3f')][_0xbb67('0x40')](_0x1f1c11,{'UserId':_0x45f41f[_0xbb67('0x15')][_0xbb67('0x41')]})[_0xbb67('0x42')](function(_0x9f082c){logger[_0xbb67('0x31')](_0xbb67('0x43'));});}}return _0x545847({'code':0xc8,'message':_0x45f41f});}catch(_0x35768c){logger['error'](_0x35768c[_0xbb67('0x39')]);return _0x5c154e(_0x41c992[_0xbb67('0x31')](0x1f4,_0x35768c));}}logger[_0xbb67('0x31')](_0xbb67('0x44'));return _0x5c154e(_0x41c992['error'](0x1f4,_0xbb67('0x44')));});},'RejectMessage':function(_0x17c7b7){var _0x20ea0a=this;return new Promise(function(_0x2909e0,_0x41c804){if(_0x17c7b7[_0xbb67('0x3c')]&&_0x17c7b7['agent']['id']){try{if(_0x56158d[_0xbb67('0x3b')][_0x17c7b7[_0xbb67('0x3c')]['id']]){_0x56158d[_0xbb67('0x3b')][_0x17c7b7[_0xbb67('0x3c')]['id']][_0xbb67('0x3d')]=![];_0x56158d['agents'][_0x17c7b7[_0xbb67('0x3c')]['id']]['busyQueue']=undefined;}return _0x2909e0({'code':0xc8,'message':_0x17c7b7});}catch(_0x4f6159){logger[_0xbb67('0x31')](_0x4f6159[_0xbb67('0x39')]);return _0x41c804(_0x20ea0a['error'](0x1f4,_0x4f6159));}}logger[_0xbb67('0x31')](_0xbb67('0x44'));return _0x41c804(_0x20ea0a[_0xbb67('0x31')](0x1f4,_0xbb67('0x44')));});},'AbandonInteraction':function(_0x41002f){var _0x4abf06=this;return new Promise(function(_0x235364,_0x147284){if(_0x41002f[_0xbb67('0x20')]&&_0x41002f[_0xbb67('0x16')]&&_0x41002f[_0xbb67('0x16')]['id']){try{var _0xea31cb=getId(_0x41002f['channel'],_0x41002f[_0xbb67('0x15')]?_0x41002f[_0xbb67('0x15')]['id']:0x0,_0x41002f[_0xbb67('0x16')]?_0x41002f[_0xbb67('0x16')]['id']:0x0);if(_0x56158d[_0xbb67('0x14')][_0xea31cb]){_0x56158d[_0xbb67('0x14')][_0xea31cb][_0xbb67('0x36')](_0xbb67('0x45'));}return _0x235364({'code':0xc8,'message':_0x41002f});}catch(_0x1a7076){logger[_0xbb67('0x31')](_0x1a7076[_0xbb67('0x39')]);return _0x147284(_0x4abf06[_0xbb67('0x31')](0x1f4,_0x1a7076));}}logger[_0xbb67('0x31')](_0xbb67('0x44'));return _0x147284(_0x4abf06[_0xbb67('0x31')](0x1f4,_0xbb67('0x44')));});},'AgentCapacity':function(_0x4449b2){var _0x39d009=this;return new Promise(function(_0x2a2511,_0x453c8a){if(_0x56158d[_0xbb67('0x3b')][_0xbb67('0x46')](_0x4449b2['id'])){for(var _0x1984bb in _0x4449b2[_0xbb67('0x47')]){if(_0x4449b2[_0xbb67('0x47')][_0xbb67('0x46')](_0x1984bb)){if(_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']][_0xbb67('0x46')](_0x1984bb+'CurrentCapacity')){_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']][_0x1984bb+'CurrentCapacity']=parseInt(_0x4449b2[_0xbb67('0x47')][_0x1984bb],0xa);}}}_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']]['updateRealtime']();return _0x2a2511({'code':0xc8,'message':_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']]});}else{return _0x453c8a(_0x39d009[_0xbb67('0x31')](0x1f4,_0xbb67('0x48')));}});},'Agents':function(_0x25fd22){return new Promise(function(_0x3500f5,_0x12a18d){var _0x10c6fa=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x3b')]);_0x3500f5({'count':_0x10c6fa[_0xbb67('0x18')],'rows':_0x10c6fa});});},'ChatQueues':function(_0x367388){return new Promise(function(_0x206d7f,_0x51bf0c){var _0x408f76=[];for(var _0x38761b in _0x56158d[_0xbb67('0x4a')]){if(_0x56158d[_0xbb67('0x4a')][_0xbb67('0x46')](_0x38761b)){var _0x269ccb=_0x56158d[_0xbb67('0x4a')][_0x38761b];var _0x487dd3={'id':_0x269ccb['id'],'available':_0x269ccb['available'],'loggedIn':_0x269ccb[_0xbb67('0x4b')],'name':_0x269ccb['name'],'paused':_0x269ccb['paused'],'waiting':_0x269ccb[_0xbb67('0x4c')]};_0x408f76[_0xbb67('0x22')](_0x487dd3);}}_0x206d7f({'count':_0x408f76[_0xbb67('0x18')],'rows':_0x408f76});});},'MailQueues':function(_0x89806){return new Promise(function(_0x144988,_0x18a181){var _0x5858bb=[];for(var _0x2601e0 in _0x56158d[_0xbb67('0x4d')]){if(_0x56158d[_0xbb67('0x4d')][_0xbb67('0x46')](_0x2601e0)){var _0x8fd71d=_0x56158d[_0xbb67('0x4d')][_0x2601e0];var _0x46bdda={'id':_0x8fd71d['id'],'available':_0x8fd71d[_0xbb67('0x4e')],'loggedIn':_0x8fd71d['loggedIn'],'name':_0x8fd71d[_0xbb67('0x4f')],'paused':_0x8fd71d[_0xbb67('0x50')],'waiting':_0x8fd71d['waiting']};_0x5858bb['push'](_0x46bdda);}}_0x144988({'count':_0x5858bb[_0xbb67('0x18')],'rows':_0x5858bb});});},'OpenchannelQueues':function(_0x307e45){return new Promise(function(_0x572c7d,_0x5b1fcf){var _0x48973d=[];for(var _0x2bc559 in _0x56158d[_0xbb67('0x51')]){if(_0x56158d['openchannelQueues'][_0xbb67('0x46')](_0x2bc559)){var _0x199341=_0x56158d[_0xbb67('0x51')][_0x2bc559];var _0x384e9b={'id':_0x199341['id'],'available':_0x199341[_0xbb67('0x4e')],'loggedIn':_0x199341[_0xbb67('0x4b')],'name':_0x199341[_0xbb67('0x4f')],'paused':_0x199341[_0xbb67('0x50')],'waiting':_0x199341[_0xbb67('0x4c')]};_0x48973d['push'](_0x384e9b);}}_0x572c7d({'count':_0x48973d[_0xbb67('0x18')],'rows':_0x48973d});});},'SmsQueues':function(_0x491cd3){return new Promise(function(_0x578004,_0x2d4c90){var _0x5044f0=[];for(var _0x32f560 in _0x56158d['smsQueues']){if(_0x56158d['smsQueues'][_0xbb67('0x46')](_0x32f560)){var _0x3cf952=_0x56158d[_0xbb67('0x52')][_0x32f560];var _0x48fcf6={'id':_0x3cf952['id'],'available':_0x3cf952[_0xbb67('0x4e')],'loggedIn':_0x3cf952[_0xbb67('0x4b')],'name':_0x3cf952['name'],'paused':_0x3cf952[_0xbb67('0x50')],'waiting':_0x3cf952['waiting']};_0x5044f0[_0xbb67('0x22')](_0x48fcf6);}}_0x578004({'count':_0x5044f0[_0xbb67('0x18')],'rows':_0x5044f0});});},'FaxQueues':function(_0x293f84){return new Promise(function(_0x575602,_0x2cfcb4){var _0x53b8b7=[];for(var _0x203cf9 in _0x56158d[_0xbb67('0x53')]){if(_0x56158d[_0xbb67('0x53')][_0xbb67('0x46')](_0x203cf9)){var _0x36d421=_0x56158d['faxQueues'][_0x203cf9];var _0x4bb1b1={'id':_0x36d421['id'],'available':_0x36d421[_0xbb67('0x4e')],'loggedIn':_0x36d421['loggedIn'],'name':_0x36d421[_0xbb67('0x4f')],'paused':_0x36d421[_0xbb67('0x50')],'waiting':_0x36d421[_0xbb67('0x4c')]};_0x53b8b7['push'](_0x4bb1b1);}}_0x575602({'count':_0x53b8b7[_0xbb67('0x18')],'rows':_0x53b8b7});});},'WhatsappQueues':function(_0x78782e){return new Promise(function(_0x486127,_0x20d148){var _0x34f400=[];for(var _0x16c051 in _0x56158d['whatsappQueues']){if(_0x56158d[_0xbb67('0x54')][_0xbb67('0x46')](_0x16c051)){var _0x11c7cb=_0x56158d[_0xbb67('0x54')][_0x16c051];var _0x8626e2={'id':_0x11c7cb['id'],'available':_0x11c7cb['available'],'loggedIn':_0x11c7cb['loggedIn'],'name':_0x11c7cb[_0xbb67('0x4f')],'paused':_0x11c7cb['paused'],'waiting':_0x11c7cb[_0xbb67('0x4c')]};_0x34f400['push'](_0x8626e2);}}_0x486127({'count':_0x34f400[_0xbb67('0x18')],'rows':_0x34f400});});},'ChatQueuesWaitingInteractions':function(_0xf75a30){return new Promise(function(_0x4f585a,_0x5f4b47){var _0x11ee1e=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x55')]);_0x4f585a({'count':_0x11ee1e[_0xbb67('0x18')],'rows':_0x11ee1e});});},'MailQueuesWaitingInteractions':function(_0x52d6b7){return new Promise(function(_0x20bea2,_0x30624b){var _0x310ae0=_[_0xbb67('0x49')](_0x56158d['mailQueuesWaitingInteractions']);_0x20bea2({'count':_0x310ae0['length'],'rows':_0x310ae0});});},'OpenchannelQueuesWaitingInteractions':function(_0x45352d){return new Promise(function(_0x4c59e4,_0x133236){var _0x155889=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x56')]);_0x4c59e4({'count':_0x155889[_0xbb67('0x18')],'rows':_0x155889});});},'SmsQueuesWaitingInteractions':function(_0x39bf1f){return new Promise(function(_0x265c4b,_0x5a0cc8){var _0x838828=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x57')]);_0x265c4b({'count':_0x838828[_0xbb67('0x18')],'rows':_0x838828});});},'FaxQueuesWaitingInteractions':function(_0x58f9ca){return new Promise(function(_0xef2c12,_0x111c25){var _0x21d76e=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x58')]);_0xef2c12({'count':_0x21d76e[_0xbb67('0x18')],'rows':_0x21d76e});});},'WhatsappQueuesWaitingInteractions':function(_0x3a3e08){return new Promise(function(_0x28b92a,_0x42e4ea){var _0x395fdc=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x59')]);_0x28b92a({'count':_0x395fdc[_0xbb67('0x18')],'rows':_0x395fdc});});}};var _0xa6bc3e=jayson[_0xbb67('0x5a')](_0x176f91)['http']();_0xa6bc3e['on'](_0xbb67('0x31'),function(_0x10ba28){logger[_0xbb67('0x31')](JSON['stringify'](_0x10ba28));return _0x474577(_0x10ba28);});_0xa6bc3e[_0xbb67('0x5b')](0x232c,_0xbb67('0x5c'),function(){console['log'](_0xbb67('0x5d'),0x232c);return _0x4d2593(_0xbb67('0x5e')+0x232c);});});};
\ No newline at end of file
+var _0xc8ac=['split','push','slice','join','dialogflow','appdata','dialogflowv2','tag','TagId','%s:%s:%s','./interval','condition','intervals','info','on\x20interval','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','matchPath','emit','complete','No\x20applications\x20to\x20execute','error','routing\x20is\x20empty','agent','agents','busy','end','QueueReport','update','error\x20update\x20queue\x20report','stack','message\x20is\x20empty','busyQueue','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','chatQueues','available','loggedIn','name','paused','waiting','mailQueues','openchannelQueues','smsQueues','faxQueues','whatsappQueues','values','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','faxQueuesWaitingInteractions','http','stringify','127.0.0.1','log','lodash','util','path','jayson/promise','uuid','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','IntervalId','isNil','Intervals','map','interval','listen','rules','channel','message','interaction','isArray','applications','length','existsSync','app','toLowerCase','autoreply'];(function(_0x2a50de,_0x239010){var _0x16fb5c=function(_0x5e39a2){while(--_0x5e39a2){_0x2a50de['push'](_0x2a50de['shift']());}};_0x16fb5c(++_0x239010);}(_0xc8ac,0xe9));var _0xcc8a=function(_0x26b622,_0x237e9e){_0x26b622=_0x26b622-0x0;var _0x58a028=_0xc8ac[_0x26b622];return _0x58a028;};'use strict';var _=require(_0xcc8a('0x0'));var util=require(_0xcc8a('0x1'));var path=require(_0xcc8a('0x2'));var fs=require('fs');var jayson=require(_0xcc8a('0x3'));var BPromise=require('bluebird');var uuid=require(_0xcc8a('0x4'));var config=require('../../../config/environment');var logger=require(_0xcc8a('0x5'))(_0xcc8a('0x6'));var rpc={'openchannelQueueReport':require(_0xcc8a('0x7')),'mailQueueReport':require(_0xcc8a('0x8')),'chatQueueReport':require(_0xcc8a('0x9')),'smsQueueReport':require('../rpc/smsQueueReport'),'faxQueueReport':require('../rpc/faxQueueReport'),'whatsappQueueReport':require(_0xcc8a('0xa'))};var RuleEngine=require(_0xcc8a('0xb'));function getId(_0x3bd2e3,_0x4e4982,_0x55031d){return util[_0xcc8a('0xc')](_0xcc8a('0xd'),_0x3bd2e3,_0x4e4982||0x0,_0x55031d||0x0);}function getIntervals(_0x5f3565,_0x3fa245){var _0x34f02f=[];if(!_['isNil'](_0x3fa245[_0xcc8a('0xe')])&&!_['isNil'](_0x5f3565[_0x3fa245['IntervalId']])&&!_[_0xcc8a('0xf')](_0x5f3565[_0x3fa245[_0xcc8a('0xe')]][_0xcc8a('0x10')])){_0x34f02f=_[_0xcc8a('0x11')](_0x5f3565[_0x3fa245[_0xcc8a('0xe')]][_0xcc8a('0x10')],_0xcc8a('0x12'));}else if(!_[_0xcc8a('0xf')](_0x3fa245[_0xcc8a('0x12')])){_0x34f02f=[_0x3fa245[_0xcc8a('0x12')]];}return _0x34f02f;}exports[_0xcc8a('0x13')]=function(_0x5208bf){_0x5208bf[_0xcc8a('0x14')]={};return new BPromise(function(_0x19c3bd,_0x290a00){var _0x38b571={'Start':function(_0x2fb79b){var _0x29c447=this;return new Promise(function(_0x590053,_0x3a6bde){if(_0x2fb79b){try{var _0x42ceb5=[];var _0x439ce2=getId(_0x2fb79b[_0xcc8a('0x15')],_0x2fb79b[_0xcc8a('0x16')]?_0x2fb79b[_0xcc8a('0x16')]['id']:0x0,_0x2fb79b[_0xcc8a('0x17')]?_0x2fb79b['interaction']['id']:0x0);if(_0x2fb79b['applications']&&_[_0xcc8a('0x18')](_0x2fb79b[_0xcc8a('0x19')])&&_0x2fb79b[_0xcc8a('0x19')][_0xcc8a('0x1a')]){for(var _0x48101c=0x0;_0x48101c<_0x2fb79b[_0xcc8a('0x19')]['length'];_0x48101c+=0x1){var _0x471f1d=_0x2fb79b[_0xcc8a('0x19')][_0x48101c];if(fs[_0xcc8a('0x1b')](path['join'](__dirname,_0xcc8a('0x19'),_0x471f1d[_0xcc8a('0x1c')]+'.js'))){var _0x3373ca=[];switch(_0x471f1d[_0xcc8a('0x1c')][_0xcc8a('0x1d')]()){case _0xcc8a('0x1e'):var _0x213bba=_0x471f1d['appdata'][_0xcc8a('0x1f')](',');if(_0x2fb79b[_0xcc8a('0x15')]==='mail'){_0x3373ca[_0xcc8a('0x20')](_0x213bba[0x0]);_0x3373ca[_0xcc8a('0x20')](_0x213bba[0x1]);_0x3373ca['push'](_0x213bba[_0xcc8a('0x21')](0x2,_0x213bba[_0xcc8a('0x1a')])[_0xcc8a('0x22')](','));}else{_0x3373ca[_0xcc8a('0x20')](_0x213bba[0x0]);_0x3373ca[_0xcc8a('0x20')](_0x213bba[_0xcc8a('0x21')](0x1,_0x213bba[_0xcc8a('0x1a')])[_0xcc8a('0x22')](','));}break;case _0xcc8a('0x23'):var _0x1f85fb=_0x471f1d[_0xcc8a('0x24')][_0xcc8a('0x1f')](',');_0x3373ca['push'](_0x1f85fb[0x0]);_0x3373ca[_0xcc8a('0x20')](_0x1f85fb[0x1]);_0x3373ca[_0xcc8a('0x20')](_0x1f85fb['slice'](0x2,_0x1f85fb[_0xcc8a('0x1a')])[_0xcc8a('0x22')](','));break;case _0xcc8a('0x25'):var _0xa05041=_0x471f1d['appdata'][_0xcc8a('0x1f')](',');_0x3373ca[_0xcc8a('0x20')](_0xa05041[0x0]);_0x3373ca[_0xcc8a('0x20')](_0xa05041[0x1]);_0x3373ca[_0xcc8a('0x20')](_0xa05041[0x2]);_0x3373ca[_0xcc8a('0x20')](_0xa05041[0x3]);_0x3373ca[_0xcc8a('0x20')](_0xa05041[_0xcc8a('0x21')](0x4,_0xa05041[_0xcc8a('0x1a')])['join'](','));break;case'amazonlex':var _0x3100a3=_0x471f1d['appdata'][_0xcc8a('0x1f')](',');_0x3373ca[_0xcc8a('0x20')](_0x3100a3[0x0]);_0x3373ca['push'](_0x3100a3[0x1]);_0x3373ca[_0xcc8a('0x20')](_0x3100a3[0x2]);_0x3373ca['push'](_0x3100a3[0x3]);_0x3373ca['push'](_0x3100a3[_0xcc8a('0x21')](0x4,_0x3100a3[_0xcc8a('0x1a')])[_0xcc8a('0x22')](','));break;case _0xcc8a('0x16'):_0x3373ca['push'](_0x471f1d['appdata']);break;case _0xcc8a('0x26'):_0x3373ca[_0xcc8a('0x20')](_0x471f1d[_0xcc8a('0x27')]);_0x3373ca[_0xcc8a('0x20')](_0x471f1d[_0xcc8a('0x24')]);break;default:_0x3373ca=_[_0xcc8a('0xf')](_0x471f1d[_0xcc8a('0x24')])?[]:_0x471f1d[_0xcc8a('0x24')][_0xcc8a('0x1f')](',');}var _0x3bd63b={'id':util[_0xcc8a('0xc')](_0xcc8a('0x28'),_0x439ce2,_0x471f1d['id'],_0x471f1d['app']),'condition':require(_0xcc8a('0x29'))[_0xcc8a('0x2a')](_0x439ce2,getIntervals(_0x5208bf[_0xcc8a('0x2b')],_0x471f1d),_0x5208bf),'consequence':require('./applications/'+_0x471f1d[_0xcc8a('0x1c')])['consequence'](_0x439ce2,_0x3373ca,_0x5208bf,_0x2fb79b),'p':_0x471f1d['priority']||0x0};logger[_0xcc8a('0x2c')]('Push\x20new\x20rule',_0x3bd63b['id'],_0xcc8a('0x2d'),getIntervals(_0x5208bf[_0xcc8a('0x2b')],_0x471f1d)[_0xcc8a('0x22')](_0xcc8a('0x2e')));_0x42ceb5[_0xcc8a('0x20')](_0x3bd63b);}else{logger['error'](_0xcc8a('0x2f'),path[_0xcc8a('0x22')](__dirname,_0xcc8a('0x19'),_0x471f1d[_0xcc8a('0x1c')]+'.js'));}}_0x5208bf['rules'][_0x439ce2]=new RuleEngine(_0x42ceb5);_0x5208bf[_0xcc8a('0x14')][_0x439ce2]['execute'](_0x2fb79b,function(_0x540e4b){logger['info']('Applications\x20executed',JSON['stringify'](_0x540e4b[_0xcc8a('0x30')]));if(_0x5208bf[_0xcc8a('0x14')][_0x439ce2]){_0x5208bf[_0xcc8a('0x14')][_0x439ce2][_0xcc8a('0x31')](_0xcc8a('0x32'));}});return _0x590053({'code':0xc8,'message':_0x2fb79b});}else{logger['info'](_0xcc8a('0x33'));return _0x590053({'code':0xc8,'message':_0x2fb79b});}}catch(_0x1caa7e){logger[_0xcc8a('0x34')](_0x1caa7e['stack']);return _0x3a6bde(_0x29c447['error'](0x1f4,_0x1caa7e));}}return _0x3a6bde(_0xcc8a('0x35'));});},'AcceptMessage':function(_0x492667){var _0x306b9c=this;return new Promise(function(_0x51a907,_0x207325){if(_0x492667[_0xcc8a('0x36')]&&_0x492667[_0xcc8a('0x36')]['id']){if(_0x5208bf['agents'][_0x492667[_0xcc8a('0x36')]['id']]){_0x5208bf[_0xcc8a('0x37')][_0x492667['agent']['id']][_0xcc8a('0x38')]=![];_0x5208bf[_0xcc8a('0x37')][_0x492667[_0xcc8a('0x36')]['id']]['busyQueue']=undefined;}}if(_0x492667[_0xcc8a('0x16')]&&_0x492667['message']['id']){try{var _0x5121fc=getId(_0x492667[_0xcc8a('0x15')],_0x492667[_0xcc8a('0x16')]?_0x492667[_0xcc8a('0x16')]['id']:0x0,_0x492667[_0xcc8a('0x17')]?_0x492667[_0xcc8a('0x17')]['id']:0x0);if(_0x5208bf[_0xcc8a('0x14')][_0x5121fc]){_0x5208bf[_0xcc8a('0x14')][_0x5121fc]['emit'](_0xcc8a('0x39'));if(rpc[_0x492667[_0xcc8a('0x15')]+_0xcc8a('0x3a')]){rpc[_0x492667[_0xcc8a('0x15')]+_0xcc8a('0x3a')][_0xcc8a('0x3b')](_0x5121fc,{'UserId':_0x492667[_0xcc8a('0x16')]['UserId']})['catch'](function(_0x46009a){logger['error'](_0xcc8a('0x3c'));});}}return _0x51a907({'code':0xc8,'message':_0x492667});}catch(_0x4d46b5){logger['error'](_0x4d46b5[_0xcc8a('0x3d')]);return _0x207325(_0x306b9c[_0xcc8a('0x34')](0x1f4,_0x4d46b5));}}logger[_0xcc8a('0x34')](_0xcc8a('0x3e'));return _0x207325(_0x306b9c[_0xcc8a('0x34')](0x1f4,_0xcc8a('0x3e')));});},'RejectMessage':function(_0x4f0af7){var _0x5c48ee=this;return new Promise(function(_0xa2d5,_0x3d405c){if(_0x4f0af7['agent']&&_0x4f0af7[_0xcc8a('0x36')]['id']){try{if(_0x5208bf['agents'][_0x4f0af7[_0xcc8a('0x36')]['id']]){_0x5208bf[_0xcc8a('0x37')][_0x4f0af7[_0xcc8a('0x36')]['id']][_0xcc8a('0x38')]=![];_0x5208bf[_0xcc8a('0x37')][_0x4f0af7[_0xcc8a('0x36')]['id']][_0xcc8a('0x3f')]=undefined;}return _0xa2d5({'code':0xc8,'message':_0x4f0af7});}catch(_0x5cbcff){logger[_0xcc8a('0x34')](_0x5cbcff[_0xcc8a('0x3d')]);return _0x3d405c(_0x5c48ee[_0xcc8a('0x34')](0x1f4,_0x5cbcff));}}logger[_0xcc8a('0x34')](_0xcc8a('0x3e'));return _0x3d405c(_0x5c48ee[_0xcc8a('0x34')](0x1f4,_0xcc8a('0x3e')));});},'AbandonInteraction':function(_0x6cdef2){var _0x50df3a=this;return new Promise(function(_0xe56cd,_0x774d5e){if(_0x6cdef2[_0xcc8a('0x15')]&&_0x6cdef2[_0xcc8a('0x17')]&&_0x6cdef2[_0xcc8a('0x17')]['id']){try{var _0x3d7403=getId(_0x6cdef2['channel'],_0x6cdef2[_0xcc8a('0x16')]?_0x6cdef2[_0xcc8a('0x16')]['id']:0x0,_0x6cdef2[_0xcc8a('0x17')]?_0x6cdef2[_0xcc8a('0x17')]['id']:0x0);if(_0x5208bf[_0xcc8a('0x14')][_0x3d7403]){_0x5208bf[_0xcc8a('0x14')][_0x3d7403][_0xcc8a('0x31')]('end');}return _0xe56cd({'code':0xc8,'message':_0x6cdef2});}catch(_0x2a7fc9){logger['error'](_0x2a7fc9['stack']);return _0x774d5e(_0x50df3a['error'](0x1f4,_0x2a7fc9));}}logger[_0xcc8a('0x34')](_0xcc8a('0x3e'));return _0x774d5e(_0x50df3a[_0xcc8a('0x34')](0x1f4,_0xcc8a('0x3e')));});},'AgentCapacity':function(_0x5e86ef){var _0x31c017=this;return new Promise(function(_0xac4e6f,_0x5231e3){if(_0x5208bf[_0xcc8a('0x37')][_0xcc8a('0x40')](_0x5e86ef['id'])){for(var _0x482b8e in _0x5e86ef[_0xcc8a('0x41')]){if(_0x5e86ef[_0xcc8a('0x41')][_0xcc8a('0x40')](_0x482b8e)){if(_0x5208bf[_0xcc8a('0x37')][_0x5e86ef['id']][_0xcc8a('0x40')](_0x482b8e+_0xcc8a('0x42'))){_0x5208bf[_0xcc8a('0x37')][_0x5e86ef['id']][_0x482b8e+_0xcc8a('0x42')]=parseInt(_0x5e86ef[_0xcc8a('0x41')][_0x482b8e],0xa);}}}_0x5208bf[_0xcc8a('0x37')][_0x5e86ef['id']][_0xcc8a('0x43')]();return _0xac4e6f({'code':0xc8,'message':_0x5208bf['agents'][_0x5e86ef['id']]});}else{return _0x5231e3(_0x31c017['error'](0x1f4,_0xcc8a('0x44')));}});},'Agents':function(_0x1276c0){return new Promise(function(_0x5371c3,_0xc19df2){var _0x341369=_['values'](_0x5208bf[_0xcc8a('0x37')]);_0x5371c3({'count':_0x341369[_0xcc8a('0x1a')],'rows':_0x341369});});},'ChatQueues':function(_0x2fc801){return new Promise(function(_0x354ad5,_0x26c4d6){var _0x3c4ef2=[];for(var _0x4dbc00 in _0x5208bf[_0xcc8a('0x45')]){if(_0x5208bf[_0xcc8a('0x45')][_0xcc8a('0x40')](_0x4dbc00)){var _0x16316b=_0x5208bf['chatQueues'][_0x4dbc00];var _0x4f72d1={'id':_0x16316b['id'],'available':_0x16316b[_0xcc8a('0x46')],'loggedIn':_0x16316b[_0xcc8a('0x47')],'name':_0x16316b[_0xcc8a('0x48')],'paused':_0x16316b[_0xcc8a('0x49')],'waiting':_0x16316b[_0xcc8a('0x4a')]};_0x3c4ef2[_0xcc8a('0x20')](_0x4f72d1);}}_0x354ad5({'count':_0x3c4ef2[_0xcc8a('0x1a')],'rows':_0x3c4ef2});});},'MailQueues':function(_0x139d27){return new Promise(function(_0x23fc8f,_0x1a4658){var _0x12b78c=[];for(var _0x170a30 in _0x5208bf['mailQueues']){if(_0x5208bf[_0xcc8a('0x4b')][_0xcc8a('0x40')](_0x170a30)){var _0x1ba280=_0x5208bf[_0xcc8a('0x4b')][_0x170a30];var _0x47fc1f={'id':_0x1ba280['id'],'available':_0x1ba280[_0xcc8a('0x46')],'loggedIn':_0x1ba280[_0xcc8a('0x47')],'name':_0x1ba280[_0xcc8a('0x48')],'paused':_0x1ba280[_0xcc8a('0x49')],'waiting':_0x1ba280[_0xcc8a('0x4a')]};_0x12b78c['push'](_0x47fc1f);}}_0x23fc8f({'count':_0x12b78c[_0xcc8a('0x1a')],'rows':_0x12b78c});});},'OpenchannelQueues':function(_0x10b64e){return new Promise(function(_0x592ec9,_0x5e3915){var _0x1d1281=[];for(var _0x57e894 in _0x5208bf['openchannelQueues']){if(_0x5208bf[_0xcc8a('0x4c')]['hasOwnProperty'](_0x57e894)){var _0x453a76=_0x5208bf[_0xcc8a('0x4c')][_0x57e894];var _0xe73f3d={'id':_0x453a76['id'],'available':_0x453a76[_0xcc8a('0x46')],'loggedIn':_0x453a76['loggedIn'],'name':_0x453a76[_0xcc8a('0x48')],'paused':_0x453a76[_0xcc8a('0x49')],'waiting':_0x453a76[_0xcc8a('0x4a')]};_0x1d1281[_0xcc8a('0x20')](_0xe73f3d);}}_0x592ec9({'count':_0x1d1281[_0xcc8a('0x1a')],'rows':_0x1d1281});});},'SmsQueues':function(_0x3a7d13){return new Promise(function(_0x16098f,_0xc789af){var _0x2c2b8a=[];for(var _0x538aa7 in _0x5208bf['smsQueues']){if(_0x5208bf[_0xcc8a('0x4d')][_0xcc8a('0x40')](_0x538aa7)){var _0x45f197=_0x5208bf[_0xcc8a('0x4d')][_0x538aa7];var _0x5703c0={'id':_0x45f197['id'],'available':_0x45f197['available'],'loggedIn':_0x45f197[_0xcc8a('0x47')],'name':_0x45f197[_0xcc8a('0x48')],'paused':_0x45f197[_0xcc8a('0x49')],'waiting':_0x45f197['waiting']};_0x2c2b8a[_0xcc8a('0x20')](_0x5703c0);}}_0x16098f({'count':_0x2c2b8a[_0xcc8a('0x1a')],'rows':_0x2c2b8a});});},'FaxQueues':function(_0x4cbdad){return new Promise(function(_0x5d6b22,_0x3af056){var _0x144fb1=[];for(var _0x8015b5 in _0x5208bf['faxQueues']){if(_0x5208bf[_0xcc8a('0x4e')][_0xcc8a('0x40')](_0x8015b5)){var _0x1c868d=_0x5208bf['faxQueues'][_0x8015b5];var _0x32a00a={'id':_0x1c868d['id'],'available':_0x1c868d[_0xcc8a('0x46')],'loggedIn':_0x1c868d['loggedIn'],'name':_0x1c868d[_0xcc8a('0x48')],'paused':_0x1c868d['paused'],'waiting':_0x1c868d['waiting']};_0x144fb1[_0xcc8a('0x20')](_0x32a00a);}}_0x5d6b22({'count':_0x144fb1[_0xcc8a('0x1a')],'rows':_0x144fb1});});},'WhatsappQueues':function(_0x52ecaf){return new Promise(function(_0x57ce24,_0x1e7980){var _0xec3acf=[];for(var _0xcaa017 in _0x5208bf['whatsappQueues']){if(_0x5208bf[_0xcc8a('0x4f')][_0xcc8a('0x40')](_0xcaa017)){var _0x330382=_0x5208bf[_0xcc8a('0x4f')][_0xcaa017];var _0x577f92={'id':_0x330382['id'],'available':_0x330382[_0xcc8a('0x46')],'loggedIn':_0x330382['loggedIn'],'name':_0x330382[_0xcc8a('0x48')],'paused':_0x330382[_0xcc8a('0x49')],'waiting':_0x330382['waiting']};_0xec3acf[_0xcc8a('0x20')](_0x577f92);}}_0x57ce24({'count':_0xec3acf[_0xcc8a('0x1a')],'rows':_0xec3acf});});},'ChatQueuesWaitingInteractions':function(_0x2de439){return new Promise(function(_0x4f6b34,_0x22f1ea){var _0x5eca77=_[_0xcc8a('0x50')](_0x5208bf[_0xcc8a('0x51')]);_0x4f6b34({'count':_0x5eca77[_0xcc8a('0x1a')],'rows':_0x5eca77});});},'MailQueuesWaitingInteractions':function(_0x393628){return new Promise(function(_0x42fab4,_0x322d49){var _0x37ee33=_[_0xcc8a('0x50')](_0x5208bf['mailQueuesWaitingInteractions']);_0x42fab4({'count':_0x37ee33['length'],'rows':_0x37ee33});});},'OpenchannelQueuesWaitingInteractions':function(_0x19abda){return new Promise(function(_0x123648,_0x29aef2){var _0x3a13e3=_[_0xcc8a('0x50')](_0x5208bf[_0xcc8a('0x52')]);_0x123648({'count':_0x3a13e3['length'],'rows':_0x3a13e3});});},'SmsQueuesWaitingInteractions':function(_0xbf6936){return new Promise(function(_0x335c74,_0x28e39b){var _0x236784=_[_0xcc8a('0x50')](_0x5208bf['smsQueuesWaitingInteractions']);_0x335c74({'count':_0x236784[_0xcc8a('0x1a')],'rows':_0x236784});});},'FaxQueuesWaitingInteractions':function(_0x2eb6d8){return new Promise(function(_0xb905db,_0x4dd585){var _0x45966b=_[_0xcc8a('0x50')](_0x5208bf[_0xcc8a('0x53')]);_0xb905db({'count':_0x45966b[_0xcc8a('0x1a')],'rows':_0x45966b});});},'WhatsappQueuesWaitingInteractions':function(_0x4ce7db){return new Promise(function(_0x4f2d51,_0x5ae206){var _0x18f5d9=_['values'](_0x5208bf['whatsappQueuesWaitingInteractions']);_0x4f2d51({'count':_0x18f5d9[_0xcc8a('0x1a')],'rows':_0x18f5d9});});}};var _0x2c50f3=jayson['server'](_0x38b571)[_0xcc8a('0x54')]();_0x2c50f3['on']('error',function(_0x14b111){logger[_0xcc8a('0x34')](JSON[_0xcc8a('0x55')](_0x14b111));return _0x290a00(_0x14b111);});_0x2c50f3[_0xcc8a('0x13')](0x232c,_0xcc8a('0x56'),function(){console[_0xcc8a('0x57')]('Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232c);return _0x19c3bd('RPC\x20listening\x20on\x20port:'+0x232c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x268d=['routing','client','http','request','error','message','result','catch','rules','info','stop','length','Command','format','then','indexOf','[%s][INTERVAL]\x20%s','all','some','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','log','util','bluebird','jayson/promise','lodash','../../../config/logger'];(function(_0x1fc122,_0x5e2c17){var _0xa2cb13=function(_0x263b13){while(--_0x263b13){_0x1fc122['push'](_0x1fc122['shift']());}};_0xa2cb13(++_0x5e2c17);}(_0x268d,0x191));var _0xd268=function(_0x1b169b,_0x9447e9){_0x1b169b=_0x1b169b-0x0;var _0x27880d=_0x268d[_0x1b169b];return _0x27880d;};'use strict';var util=require(_0xd268('0x0'));var BPromise=require(_0xd268('0x1'));var jayson=require(_0xd268('0x2'));var _=require(_0xd268('0x3'));var logger=require(_0xd268('0x4'))(_0xd268('0x5'));var client=jayson[_0xd268('0x6')][_0xd268('0x7')]({'port':0x232a});function request(_0x299bf3,_0x60ca9b){return new BPromise(function(_0x47f562,_0x221cca){return client[_0xd268('0x8')](_0x299bf3,_0x60ca9b)['then'](function(_0x2325db){if(_0x2325db[_0xd268('0x9')]){return _0x221cca(_0x2325db['error'][_0xd268('0xa')]);}else{return _0x47f562(_0x2325db[_0xd268('0xb')]);}})[_0xd268('0xc')](function(_0x21e64f){return _0x221cca(_0x21e64f);});});}exports['condition']=function(_0xaf6618,_0x5ad54f,_0xec7d25){return function(_0x393112){if(_0xec7d25['rules']&&!_0xec7d25[_0xd268('0xd')][_0xaf6618]){logger[_0xd268('0xe')]('[%s][INTERVAL]\x20ROUTING\x20STOPPED',_0xaf6618);return _0x393112[_0xd268('0xf')]();}var _0x3cfab2=[];for(var _0x182276=0x0;_0x182276<_0x5ad54f[_0xd268('0x10')];_0x182276+=0x1){_0x3cfab2['push'](request(_0xd268('0x11'),{'command':util[_0xd268('0x12')]('iftime\x20%s',_0x5ad54f[_0x182276])})[_0xd268('0x13')](function(_0x4537c9){return _0x4537c9&&_0x4537c9[_0xd268('0xa')]&&_0x4537c9[_0xd268('0xa')][_0xd268('0x14')]('true')>=0x0?!![]:![];})['catch'](function(_0x22b444){logger[_0xd268('0x9')](_0xd268('0x15'),_0xaf6618,_0x5ad54f[_0x182276]);}));}BPromise[_0xd268('0x16')](_0x3cfab2)[_0xd268('0x13')](function(_0x54c81c){var _0x5a3942=_[_0xd268('0x17')](_0x54c81c);logger['info'](_0xd268('0x18'),_0xaf6618,_0x5ad54f[_0xd268('0x19')](_0xd268('0x1a')),_0x5a3942);_0x393112[_0xd268('0x1b')](_0x5a3942);})[_0xd268('0xc')](function(_0x29cea3){console[_0xd268('0x1c')](_0x29cea3);logger[_0xd268('0x9')](_0xd268('0x18'),_0xaf6618,_0x5ad54f[_0xd268('0x19')](_0xd268('0x1a')),_0x29cea3['stack']);_0x393112[_0xd268('0xf')]();});};};
\ No newline at end of file
+var _0x6346=['util','bluebird','jayson/promise','lodash','../../../config/logger','error','message','result','catch','condition','rules','[%s][INTERVAL]\x20ROUTING\x20STOPPED','stop','length','push','Command','then','indexOf','all','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','log','stack'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x6346,0x1a9));var _0x6634=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x6346[_0x19950b];return _0x3c6b41;};'use strict';var util=require(_0x6634('0x0'));var BPromise=require(_0x6634('0x1'));var jayson=require(_0x6634('0x2'));var _=require(_0x6634('0x3'));var logger=require(_0x6634('0x4'))('routing');var client=jayson['client']['http']({'port':0x232a});function request(_0x1e9e74,_0x17ff98){return new BPromise(function(_0x282577,_0x2455a5){return client['request'](_0x1e9e74,_0x17ff98)['then'](function(_0x527f93){if(_0x527f93[_0x6634('0x5')]){return _0x2455a5(_0x527f93[_0x6634('0x5')][_0x6634('0x6')]);}else{return _0x282577(_0x527f93[_0x6634('0x7')]);}})[_0x6634('0x8')](function(_0x3bb5f3){return _0x2455a5(_0x3bb5f3);});});}exports[_0x6634('0x9')]=function(_0x4e4dda,_0x3ae6e7,_0x2ce06c){return function(_0x1cf09b){if(_0x2ce06c['rules']&&!_0x2ce06c[_0x6634('0xa')][_0x4e4dda]){logger['info'](_0x6634('0xb'),_0x4e4dda);return _0x1cf09b[_0x6634('0xc')]();}var _0x991da3=[];for(var _0x1b42b3=0x0;_0x1b42b3<_0x3ae6e7[_0x6634('0xd')];_0x1b42b3+=0x1){_0x991da3[_0x6634('0xe')](request(_0x6634('0xf'),{'command':util['format']('iftime\x20%s',_0x3ae6e7[_0x1b42b3])})[_0x6634('0x10')](function(_0x523f48){return _0x523f48&&_0x523f48[_0x6634('0x6')]&&_0x523f48[_0x6634('0x6')][_0x6634('0x11')]('true')>=0x0?!![]:![];})[_0x6634('0x8')](function(_0x30ac1c){logger[_0x6634('0x5')]('[%s][INTERVAL]\x20%s',_0x4e4dda,_0x3ae6e7[_0x1b42b3]);}));}BPromise[_0x6634('0x12')](_0x991da3)[_0x6634('0x10')](function(_0x5248b9){var _0x472661=_['some'](_0x5248b9);logger['info'](_0x6634('0x13'),_0x4e4dda,_0x3ae6e7[_0x6634('0x14')](_0x6634('0x15')),_0x472661);_0x1cf09b[_0x6634('0x16')](_0x472661);})[_0x6634('0x8')](function(_0x2b770a){console[_0x6634('0x17')](_0x2b770a);logger[_0x6634('0x5')](_0x6634('0x13'),_0x4e4dda,_0x3ae6e7[_0x6634('0x14')](_0x6634('0x15')),_0x2b770a[_0x6634('0x18')]);_0x1cf09b[_0x6634('0xc')]();});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc788=['transfereeuniqueid','clone','calleridname','agententerreason','secondtransfererexten','transfertargetuniqueid','hangup','[%s][agents][hangup]','cause','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','agent','lodash','util','./utils','info','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','membername','interface','calleridnum','connectedlinenum','lastevent','getVoiceQueueByName','queue','then','type','agentcomplete','acwtime','agentacw','request','CreateVoiceAgentReport','agentcalled','debug','[%s][agents][agentcalled]','destuniqueid','agentcalledAt','now','called','connectedlinename','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','error','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','agentringnoanswer','timeout','holdtime','ringtime','push','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','agentringnoanswerAt','abandoned','reason','talktime','agentconnect','[%s][agents][agentconnect]','agentconnectAt','connect','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','diffTime','complete','blindtransfer','isNil','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','transferexten','extension','transferuniqueid','attendedtransfer','[%s][agents][attendedtransfer]','origtransfereruniqueid','secondtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','ATTENDED','origtransfererexten'];(function(_0x42d4f6,_0x4ba5d6){var _0xcdf6a6=function(_0x25bdf9){while(--_0x25bdf9){_0x42d4f6['push'](_0x42d4f6['shift']());}};_0xcdf6a6(++_0x4ba5d6);}(_0xc788,0xc4));var _0x8c78=function(_0x4812e0,_0x2ccf3c){_0x4812e0=_0x4812e0-0x0;var _0x252e0f=_0xc788[_0x4812e0];return _0x252e0f;};'use strict';var _=require(_0x8c78('0x0'));var util=require(_0x8c78('0x1'));var utils=require(_0x8c78('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x4ecb26,_0x4ce125){utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x5'),_0x4ecb26[_0x8c78('0x6')],_0x4ecb26[_0x8c78('0x7')],_0x4ecb26['queue'],_0x4ecb26[_0x8c78('0x8')],_0x4ecb26[_0x8c78('0x9')],_0x4ecb26[_0x8c78('0xa')],_0x4ecb26[_0x8c78('0xb')],_0x4ecb26[_0x8c78('0xc')]));if(_0x4ecb26['queue']){utils[_0x8c78('0xd')](_0x4ecb26[_0x8c78('0xe')])[_0x8c78('0xf')](function(_0x39c0e5){if(_0x39c0e5){_0x4ecb26[_0x8c78('0x10')]=_0x39c0e5[_0x8c78('0x10')];_0x4ecb26['agentacw']=_0x4ecb26[_0x8c78('0x11')]?_0x39c0e5['acw']:![];_0x4ecb26[_0x8c78('0x12')]=_0x4ecb26[_0x8c78('0x13')]?_0x39c0e5['acwTimeout']:0x0;}utils[_0x8c78('0x14')](_0x8c78('0x15'),_0x4ecb26);});}else{utils['request'](_0x8c78('0x15'),_0x4ecb26);}if(_0x4ce125){delete transfers[_0x4ecb26['uniqueid']];}else{delete agents[_0x4ecb26['destuniqueid']];}}exports[_0x8c78('0x16')]=function(_0x1b1d0e){try{utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x18'),_0x1b1d0e[_0x8c78('0x6')]),_0x1b1d0e);agents[_0x1b1d0e[_0x8c78('0x19')]]=_0x1b1d0e;agents[_0x1b1d0e[_0x8c78('0x19')]][_0x8c78('0x1a')]=utils[_0x8c78('0x1b')]();agents[_0x1b1d0e['destuniqueid']][_0x8c78('0xc')]=_0x8c78('0x1c');agents[_0x1b1d0e['destuniqueid']][_0x8c78('0xb')]=null;agents[_0x1b1d0e[_0x8c78('0x19')]][_0x8c78('0x1d')]=null;utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x1e'),_0x1b1d0e['uniqueid'],agents[_0x1b1d0e['destuniqueid']][_0x8c78('0x8')],_0x1b1d0e['destuniqueid']));}catch(_0x56801a){utils[_0x8c78('0x1f')](util['format'](_0x8c78('0x18'),_0x1b1d0e[_0x8c78('0x6')]),_0x56801a);}};exports['agentringnoanswer']=function(_0x6c9a12){try{if(!_['isNil'](agents[_0x6c9a12[_0x8c78('0x19')]])){utils[_0x8c78('0x17')](util['format'](_0x8c78('0x20'),_0x6c9a12[_0x8c78('0x6')]),_0x6c9a12);utils['info'](util[_0x8c78('0x4')](_0x8c78('0x21'),_0x6c9a12[_0x8c78('0x6')],agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0x8')],_0x6c9a12[_0x8c78('0x19')]));agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0x22')]=!![];agents[_0x6c9a12[_0x8c78('0x19')]]['agentringnoanswerAt']=utils[_0x8c78('0x1b')]();agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0xc')]='timeout';agents[_0x6c9a12[_0x8c78('0x19')]]['reason']=_0x8c78('0x23');agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0x24')]=_0x6c9a12['ringtime']?parseInt(_0x6c9a12[_0x8c78('0x25')])/0x3e8:0x0;agents[_0x6c9a12[_0x8c78('0x19')]]['talktime']=0x0;unanswered[_0x8c78('0x26')](_0x6c9a12[_0x8c78('0x19')]);}}catch(_0x394c1d){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x20'),_0x6c9a12['uniqueid']),_0x394c1d);}};exports[_0x8c78('0x27')]=function(_0x51add6){try{_[_0x8c78('0x28')](agents,function(_0x17f4c8,_0xb69c52){if(_0x17f4c8['uniqueid']==_0x51add6[_0x8c78('0x6')]&&!_[_0x8c78('0x29')](unanswered,_0x17f4c8['destuniqueid'])){utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x2a'),_0x51add6['uniqueid']),_0x51add6);utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x2b'),_0x51add6['uniqueid'],_0x17f4c8[_0x8c78('0x8')],_0x17f4c8[_0x8c78('0x19')]));_0x17f4c8['agentringnoanswer']=!![];_0x17f4c8[_0x8c78('0x2c')]=utils[_0x8c78('0x1b')]();_0x17f4c8[_0x8c78('0xc')]=_0x8c78('0x2d');_0x17f4c8[_0x8c78('0x2e')]=_0x8c78('0x2d');_0x17f4c8[_0x8c78('0x24')]=_0x51add6[_0x8c78('0x24')];_0x17f4c8[_0x8c78('0x2f')]=0x0;writeDB(_0x17f4c8);}});}catch(_0x15a868){utils['error'](util[_0x8c78('0x4')](_0x8c78('0x2a'),_0x51add6[_0x8c78('0x6')]),_0x15a868);}};exports[_0x8c78('0x30')]=function(_0x34481a){try{if(agents[_0x34481a['destuniqueid']]){utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x31'),_0x34481a['uniqueid']),_0x34481a);utils[_0x8c78('0x3')](util[_0x8c78('0x4')]('[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect',_0x34481a[_0x8c78('0x6')],agents[_0x34481a['destuniqueid']][_0x8c78('0x8')],_0x34481a[_0x8c78('0x19')]));agents[_0x34481a[_0x8c78('0x19')]][_0x8c78('0x32')]=utils['now']();agents[_0x34481a[_0x8c78('0x19')]]['connectedlinenum']=_0x34481a[_0x8c78('0xb')];agents[_0x34481a[_0x8c78('0x19')]][_0x8c78('0x1d')]=_0x34481a['connectedlinename'];agents[_0x34481a['destuniqueid']][_0x8c78('0x24')]=_0x34481a[_0x8c78('0x25')];agents[_0x34481a[_0x8c78('0x19')]][_0x8c78('0xc')]=_0x8c78('0x33');_[_0x8c78('0x28')](agents,function(_0x326b34,_0x314679){if(_0x326b34[_0x8c78('0x19')]!=_0x34481a[_0x8c78('0x19')]&&_0x326b34[_0x8c78('0x6')]==_0x34481a[_0x8c78('0x6')]){_0x326b34[_0x8c78('0x2f')]=0x0;_0x326b34['holdtime']=_0x34481a[_0x8c78('0x25')];_0x326b34[_0x8c78('0x22')]=!![];_0x326b34['agentringnoanswerAt']=utils['now']();_0x326b34[_0x8c78('0xc')]=_0x8c78('0x34');_0x326b34['reason']=_0x8c78('0x34');_0x326b34[_0x8c78('0x35')]=_0x34481a['destuniqueid'];_0x326b34[_0x8c78('0x36')]=_0x34481a[_0x8c78('0x8')];writeDB(_0x326b34);}});}}catch(_0x57e2c7){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x31'),_0x34481a[_0x8c78('0x6')]),_0x57e2c7);}};exports[_0x8c78('0x11')]=function(_0x4e4880){try{if(!_['isNil'](agents[_0x4e4880[_0x8c78('0x19')]])){utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x37'),_0x4e4880[_0x8c78('0x6')]),_0x4e4880);utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x38'),_0x4e4880[_0x8c78('0x6')],agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x8')],_0x4e4880['destuniqueid']));agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x11')]=!![];agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x39')]=utils[_0x8c78('0x1b')]();agents[_0x4e4880['destuniqueid']][_0x8c78('0x2f')]=utils[_0x8c78('0x3a')](agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x39')],agents[_0x4e4880[_0x8c78('0x19')]]['agentconnectAt']);agents[_0x4e4880[_0x8c78('0x19')]]['reason']=_0x4e4880['reason'];agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0xc')]=_0x8c78('0x3b');writeDB(agents[_0x4e4880['destuniqueid']]);}}catch(_0x1d78a0){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x37'),_0x4e4880[_0x8c78('0x6')]),_0x1d78a0);}};exports[_0x8c78('0x3c')]=function(_0x26103c){try{if(!_[_0x8c78('0x3d')](agents[_0x26103c[_0x8c78('0x3e')]])){utils['debug'](util[_0x8c78('0x4')](_0x8c78('0x3f'),_0x26103c[_0x8c78('0x6')]),_0x26103c);utils[_0x8c78('0x3')](util['format'](_0x8c78('0x40'),_0x26103c[_0x8c78('0x6')],agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x8')],agents[_0x26103c['transfereruniqueid']][_0x8c78('0x6')]));agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x41')]=!![];agents[_0x26103c['transfereruniqueid']][_0x8c78('0x42')]='blind';agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x43')]=_0x26103c[_0x8c78('0x44')];agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x45')]=agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x6')];}}catch(_0x38fec1){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x3f'),_0x26103c[_0x8c78('0x6')]),_0x38fec1);}};exports[_0x8c78('0x46')]=function(_0x18d896){try{utils['debug'](util[_0x8c78('0x4')](_0x8c78('0x47'),_0x18d896[_0x8c78('0x48')]),_0x18d896);if(_0x18d896[_0x8c78('0x48')]==_0x18d896['origtransfererlinkedid']){if(!_[_0x8c78('0x3d')](agents[_0x18d896[_0x8c78('0x49')]])){utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x4a'),_0x18d896[_0x8c78('0x48')],agents[_0x18d896['secondtransfereruniqueid']][_0x8c78('0x8')]));agents[_0x18d896[_0x8c78('0x49')]]['transfer']=!![];agents[_0x18d896[_0x8c78('0x49')]]['transfertype']=_0x8c78('0x4b');agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0x43')]=_0x18d896[_0x8c78('0x4c')];agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0x45')]=_0x18d896[_0x8c78('0x48')];}if(_0x18d896['transfereeuniqueid']&&agents[_0x18d896[_0x8c78('0x4d')]]){agents[_0x18d896[_0x8c78('0x4d')]]['agententerreason']=0x1;transfers[_0x18d896[_0x8c78('0x4d')]]=_[_0x8c78('0x4e')](agents[_0x18d896['transfereeuniqueid']]);transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0xa')]=agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0xa')];transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0x4f')]=agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0x4f')];transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0x1a')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0x32')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896['transfereeuniqueid']][_0x8c78('0x24')]=0x0;transfers[_0x18d896['transfereeuniqueid']][_0x8c78('0x50')]=0x2;}}else if(_0x18d896['secondtransfereruniqueid']==_0x18d896['secondtransfererlinkedid']){if(!_['isNil'](agents[_0x18d896[_0x8c78('0x48')]])){utils['info'](util['format']('[%s][agents][attendedtransfer]\x20agent:%s',_0x18d896[_0x8c78('0x48')],agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x8')]));agents[_0x18d896[_0x8c78('0x48')]]['transfer']=!![];agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x42')]=_0x8c78('0x4b');agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x43')]=_0x18d896[_0x8c78('0x51')];agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x45')]=_0x18d896[_0x8c78('0x49')];}if(_0x18d896[_0x8c78('0x52')]&&agents[_0x18d896[_0x8c78('0x52')]]){agents[_0x18d896[_0x8c78('0x52')]][_0x8c78('0x50')]=0x1;transfers[_0x18d896[_0x8c78('0x52')]]=_['clone'](agents[_0x18d896[_0x8c78('0x52')]]);transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0xa')]=agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0xa')];transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0x4f')]=agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x4f')];transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0x1a')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0x32')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896[_0x8c78('0x52')]]['holdtime']=0x0;transfers[_0x18d896[_0x8c78('0x52')]][_0x8c78('0x50')]=0x2;}}}catch(_0x1015e8){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x47'),_0x18d896[_0x8c78('0x48')]),_0x1015e8);}};exports[_0x8c78('0x53')]=function(_0x240f1e){try{utils['debug'](util[_0x8c78('0x4')](_0x8c78('0x54'),_0x240f1e[_0x8c78('0x6')]),_0x240f1e);if(agents[_0x240f1e[_0x8c78('0x6')]]&&agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')]===_0x8c78('0x23')){if(_0x240f1e[_0x8c78('0x55')]==='21'){agents[_0x240f1e[_0x8c78('0x6')]]['reason']=_0x8c78('0x56');agents[_0x240f1e[_0x8c78('0x6')]]['lastevent']='rejected';}utils[_0x8c78('0x3')](util['format'](_0x8c78('0x57'),_0x240f1e[_0x8c78('0x6')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x8')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')],agents[_0x240f1e['uniqueid']]['lastevent']));writeDB(agents[_0x240f1e[_0x8c78('0x6')]]);var _0x2d385f=unanswered[_0x8c78('0x58')](_0x240f1e[_0x8c78('0x6')]);if(_0x2d385f>-0x1){unanswered[_0x8c78('0x59')](_0x2d385f,0x1);}}if(transfers[_0x240f1e['uniqueid']]){transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x11')]=!![];transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x39')]=utils[_0x8c78('0x1b')]();transfers[_0x240f1e[_0x8c78('0x6')]]['talktime']=utils[_0x8c78('0x3a')](transfers[_0x240f1e[_0x8c78('0x6')]]['agentcompleteAt'],transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x32')]);transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')]=_0x8c78('0x5a');transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0xc')]=_0x8c78('0x3b');utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x57'),_0x240f1e[_0x8c78('0x6')],transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x8')],transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')],transfers[_0x240f1e[_0x8c78('0x6')]]['lastevent']));writeDB(transfers[_0x240f1e[_0x8c78('0x6')]],!![]);}if(agents[_0x240f1e['uniqueid']]&&agents[_0x240f1e['uniqueid']][_0x8c78('0x32')]){agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x11')]=!![];agents[_0x240f1e[_0x8c78('0x6')]]['agentcompleteAt']=utils[_0x8c78('0x1b')]();agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2f')]=utils['diffTime'](agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x39')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x32')]);agents[_0x240f1e['uniqueid']][_0x8c78('0x2e')]=agents[_0x240f1e[_0x8c78('0x6')]]['transfer']?'transfer':'agent';agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0xc')]=_0x8c78('0x3b');utils[_0x8c78('0x3')](util['format'](_0x8c78('0x57'),_0x240f1e['uniqueid'],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x8')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0xc')]));writeDB(agents[_0x240f1e['uniqueid']]);}}catch(_0x5c67c9){utils['error'](util[_0x8c78('0x4')](_0x8c78('0x54'),_0x240f1e['uniqueid']),_0x5c67c9);}};
\ No newline at end of file
+var _0xa571=['calleridname','ATTENDED','secondtransfererexten','transfertargetuniqueid','clone','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','diffTime','agent','[%s][agents][hangup]','lodash','util','./utils','info','format','channel','membername','interface','calleridnum','connectedlinenum','lastevent','queue','then','type','agentacw','agentcomplete','acw','acwtime','acwTimeout','request','CreateVoiceAgentReport','uniqueid','destuniqueid','debug','[%s][agents][agentcalled]','agentcalledAt','now','connectedlinename','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','error','agentringnoanswer','isNil','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','agentringnoanswerAt','timeout','reason','holdtime','talktime','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','agentconnect','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','ringtime','connect','answered_elsewhere','answeredelsewheremembername','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','[%s][agents][agentcomplete]','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfertype','extension','attendedtransfer','[%s][agents][attendedtransfer]','origtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','secondtransfereruniqueid','transfer','transferexten','transferuniqueid','transfereeuniqueid','agententerreason'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xa571,0x107));var _0x1a57=function(_0xfddf92,_0x4355cb){_0xfddf92=_0xfddf92-0x0;var _0x2030e9=_0xa571[_0xfddf92];return _0x2030e9;};'use strict';var _=require(_0x1a57('0x0'));var util=require(_0x1a57('0x1'));var utils=require(_0x1a57('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x1067d9,_0x48485e){utils[_0x1a57('0x3')](util[_0x1a57('0x4')]('[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x1067d9['uniqueid'],_0x1067d9[_0x1a57('0x5')],_0x1067d9['queue'],_0x1067d9[_0x1a57('0x6')],_0x1067d9[_0x1a57('0x7')],_0x1067d9[_0x1a57('0x8')],_0x1067d9[_0x1a57('0x9')],_0x1067d9[_0x1a57('0xa')]));if(_0x1067d9[_0x1a57('0xb')]){utils['getVoiceQueueByName'](_0x1067d9[_0x1a57('0xb')])[_0x1a57('0xc')](function(_0x3631d6){if(_0x3631d6){_0x1067d9['type']=_0x3631d6[_0x1a57('0xd')];_0x1067d9[_0x1a57('0xe')]=_0x1067d9[_0x1a57('0xf')]?_0x3631d6[_0x1a57('0x10')]:![];_0x1067d9[_0x1a57('0x11')]=_0x1067d9[_0x1a57('0xe')]?_0x3631d6[_0x1a57('0x12')]:0x0;}utils[_0x1a57('0x13')]('CreateVoiceAgentReport',_0x1067d9);});}else{utils['request'](_0x1a57('0x14'),_0x1067d9);}if(_0x48485e){delete transfers[_0x1067d9[_0x1a57('0x15')]];}else{delete agents[_0x1067d9[_0x1a57('0x16')]];}}exports['agentcalled']=function(_0x3de36a){try{utils[_0x1a57('0x17')](util['format'](_0x1a57('0x18'),_0x3de36a['uniqueid']),_0x3de36a);agents[_0x3de36a[_0x1a57('0x16')]]=_0x3de36a;agents[_0x3de36a[_0x1a57('0x16')]][_0x1a57('0x19')]=utils[_0x1a57('0x1a')]();agents[_0x3de36a['destuniqueid']][_0x1a57('0xa')]='called';agents[_0x3de36a['destuniqueid']][_0x1a57('0x9')]=null;agents[_0x3de36a[_0x1a57('0x16')]][_0x1a57('0x1b')]=null;utils['info'](util[_0x1a57('0x4')](_0x1a57('0x1c'),_0x3de36a[_0x1a57('0x15')],agents[_0x3de36a['destuniqueid']][_0x1a57('0x6')],_0x3de36a[_0x1a57('0x16')]));}catch(_0x451b34){utils[_0x1a57('0x1d')](util[_0x1a57('0x4')]('[%s][agents][agentcalled]',_0x3de36a['uniqueid']),_0x451b34);}};exports[_0x1a57('0x1e')]=function(_0x21e811){try{if(!_[_0x1a57('0x1f')](agents[_0x21e811['destuniqueid']])){utils['debug'](util['format'](_0x1a57('0x20'),_0x21e811[_0x1a57('0x15')]),_0x21e811);utils[_0x1a57('0x3')](util[_0x1a57('0x4')](_0x1a57('0x21'),_0x21e811[_0x1a57('0x15')],agents[_0x21e811[_0x1a57('0x16')]][_0x1a57('0x6')],_0x21e811[_0x1a57('0x16')]));agents[_0x21e811[_0x1a57('0x16')]][_0x1a57('0x1e')]=!![];agents[_0x21e811[_0x1a57('0x16')]][_0x1a57('0x22')]=utils[_0x1a57('0x1a')]();agents[_0x21e811[_0x1a57('0x16')]][_0x1a57('0xa')]=_0x1a57('0x23');agents[_0x21e811[_0x1a57('0x16')]][_0x1a57('0x24')]=_0x1a57('0x23');agents[_0x21e811[_0x1a57('0x16')]][_0x1a57('0x25')]=_0x21e811['ringtime']?parseInt(_0x21e811['ringtime'])/0x3e8:0x0;agents[_0x21e811[_0x1a57('0x16')]][_0x1a57('0x26')]=0x0;unanswered['push'](_0x21e811[_0x1a57('0x16')]);}}catch(_0x54f6a5){utils[_0x1a57('0x1d')](util[_0x1a57('0x4')]('[%s][agents][agentringnoanswer]',_0x21e811[_0x1a57('0x15')]),_0x54f6a5);}};exports[_0x1a57('0x27')]=function(_0x30527c){try{_[_0x1a57('0x28')](agents,function(_0x492b90,_0x366d5f){if(_0x492b90[_0x1a57('0x15')]==_0x30527c[_0x1a57('0x15')]&&!_[_0x1a57('0x29')](unanswered,_0x492b90['destuniqueid'])){utils[_0x1a57('0x17')](util[_0x1a57('0x4')](_0x1a57('0x2a'),_0x30527c[_0x1a57('0x15')]),_0x30527c);utils[_0x1a57('0x3')](util[_0x1a57('0x4')](_0x1a57('0x2b'),_0x30527c[_0x1a57('0x15')],_0x492b90[_0x1a57('0x6')],_0x492b90['destuniqueid']));_0x492b90[_0x1a57('0x1e')]=!![];_0x492b90[_0x1a57('0x22')]=utils['now']();_0x492b90['lastevent']=_0x1a57('0x2c');_0x492b90[_0x1a57('0x24')]=_0x1a57('0x2c');_0x492b90[_0x1a57('0x25')]=_0x30527c[_0x1a57('0x25')];_0x492b90[_0x1a57('0x26')]=0x0;writeDB(_0x492b90);}});}catch(_0xe80d94){utils[_0x1a57('0x1d')](util[_0x1a57('0x4')](_0x1a57('0x2a'),_0x30527c[_0x1a57('0x15')]),_0xe80d94);}};exports[_0x1a57('0x2d')]=function(_0x12f3a7){try{if(agents[_0x12f3a7[_0x1a57('0x16')]]){utils[_0x1a57('0x17')](util[_0x1a57('0x4')](_0x1a57('0x2e'),_0x12f3a7[_0x1a57('0x15')]),_0x12f3a7);utils['info'](util[_0x1a57('0x4')](_0x1a57('0x2f'),_0x12f3a7[_0x1a57('0x15')],agents[_0x12f3a7[_0x1a57('0x16')]][_0x1a57('0x6')],_0x12f3a7[_0x1a57('0x16')]));agents[_0x12f3a7[_0x1a57('0x16')]][_0x1a57('0x30')]=utils[_0x1a57('0x1a')]();agents[_0x12f3a7['destuniqueid']]['connectedlinenum']=_0x12f3a7['connectedlinenum'];agents[_0x12f3a7['destuniqueid']][_0x1a57('0x1b')]=_0x12f3a7[_0x1a57('0x1b')];agents[_0x12f3a7[_0x1a57('0x16')]]['holdtime']=_0x12f3a7[_0x1a57('0x31')];agents[_0x12f3a7[_0x1a57('0x16')]][_0x1a57('0xa')]=_0x1a57('0x32');_['forIn'](agents,function(_0x1be254,_0x5e79f0){if(_0x1be254[_0x1a57('0x16')]!=_0x12f3a7[_0x1a57('0x16')]&&_0x1be254[_0x1a57('0x15')]==_0x12f3a7['uniqueid']){_0x1be254[_0x1a57('0x26')]=0x0;_0x1be254[_0x1a57('0x25')]=_0x12f3a7[_0x1a57('0x31')];_0x1be254[_0x1a57('0x1e')]=!![];_0x1be254[_0x1a57('0x22')]=utils['now']();_0x1be254[_0x1a57('0xa')]='answered_elsewhere';_0x1be254['reason']=_0x1a57('0x33');_0x1be254['answeredelsewheredestinationuniqueid']=_0x12f3a7[_0x1a57('0x16')];_0x1be254[_0x1a57('0x34')]=_0x12f3a7[_0x1a57('0x6')];writeDB(_0x1be254);}});}}catch(_0x59abb1){utils[_0x1a57('0x1d')](util[_0x1a57('0x4')](_0x1a57('0x2e'),_0x12f3a7[_0x1a57('0x15')]),_0x59abb1);}};exports['agentcomplete']=function(_0xc7bab4){try{if(!_[_0x1a57('0x1f')](agents[_0xc7bab4['destuniqueid']])){utils[_0x1a57('0x17')](util['format']('[%s][agents][agentcomplete]',_0xc7bab4[_0x1a57('0x15')]),_0xc7bab4);utils[_0x1a57('0x3')](util[_0x1a57('0x4')](_0x1a57('0x35'),_0xc7bab4['uniqueid'],agents[_0xc7bab4[_0x1a57('0x16')]][_0x1a57('0x6')],_0xc7bab4[_0x1a57('0x16')]));agents[_0xc7bab4[_0x1a57('0x16')]][_0x1a57('0xf')]=!![];agents[_0xc7bab4['destuniqueid']][_0x1a57('0x36')]=utils[_0x1a57('0x1a')]();agents[_0xc7bab4[_0x1a57('0x16')]][_0x1a57('0x26')]=utils['diffTime'](agents[_0xc7bab4[_0x1a57('0x16')]]['agentcompleteAt'],agents[_0xc7bab4[_0x1a57('0x16')]][_0x1a57('0x30')]);agents[_0xc7bab4[_0x1a57('0x16')]][_0x1a57('0x24')]=_0xc7bab4[_0x1a57('0x24')];agents[_0xc7bab4[_0x1a57('0x16')]][_0x1a57('0xa')]=_0x1a57('0x37');writeDB(agents[_0xc7bab4[_0x1a57('0x16')]]);}}catch(_0x424065){utils[_0x1a57('0x1d')](util[_0x1a57('0x4')](_0x1a57('0x38'),_0xc7bab4['uniqueid']),_0x424065);}};exports[_0x1a57('0x39')]=function(_0x480aff){try{if(!_[_0x1a57('0x1f')](agents[_0x480aff[_0x1a57('0x3a')]])){utils[_0x1a57('0x17')](util[_0x1a57('0x4')](_0x1a57('0x3b'),_0x480aff[_0x1a57('0x15')]),_0x480aff);utils[_0x1a57('0x3')](util[_0x1a57('0x4')](_0x1a57('0x3c'),_0x480aff['uniqueid'],agents[_0x480aff[_0x1a57('0x3a')]][_0x1a57('0x6')],agents[_0x480aff['transfereruniqueid']][_0x1a57('0x15')]));agents[_0x480aff[_0x1a57('0x3a')]]['transfer']=!![];agents[_0x480aff[_0x1a57('0x3a')]][_0x1a57('0x3d')]='blind';agents[_0x480aff['transfereruniqueid']]['transferexten']=_0x480aff[_0x1a57('0x3e')];agents[_0x480aff[_0x1a57('0x3a')]]['transferuniqueid']=agents[_0x480aff[_0x1a57('0x3a')]][_0x1a57('0x15')];}}catch(_0x572202){utils['error'](util['format'](_0x1a57('0x3b'),_0x480aff[_0x1a57('0x15')]),_0x572202);}};exports[_0x1a57('0x3f')]=function(_0x31be00){try{utils[_0x1a57('0x17')](util[_0x1a57('0x4')](_0x1a57('0x40'),_0x31be00[_0x1a57('0x41')]),_0x31be00);if(_0x31be00['origtransfereruniqueid']==_0x31be00['origtransfererlinkedid']){if(!_['isNil'](agents[_0x31be00['secondtransfereruniqueid']])){utils['info'](util[_0x1a57('0x4')](_0x1a57('0x42'),_0x31be00[_0x1a57('0x41')],agents[_0x31be00[_0x1a57('0x43')]][_0x1a57('0x6')]));agents[_0x31be00[_0x1a57('0x43')]][_0x1a57('0x44')]=!![];agents[_0x31be00[_0x1a57('0x43')]]['transfertype']='ATTENDED';agents[_0x31be00['secondtransfereruniqueid']][_0x1a57('0x45')]=_0x31be00['origtransfererexten'];agents[_0x31be00[_0x1a57('0x43')]][_0x1a57('0x46')]=_0x31be00[_0x1a57('0x41')];}if(_0x31be00[_0x1a57('0x47')]&&agents[_0x31be00[_0x1a57('0x47')]]){agents[_0x31be00[_0x1a57('0x47')]][_0x1a57('0x48')]=0x1;transfers[_0x31be00['transfereeuniqueid']]=_['clone'](agents[_0x31be00['transfereeuniqueid']]);transfers[_0x31be00[_0x1a57('0x47')]][_0x1a57('0x8')]=agents[_0x31be00[_0x1a57('0x43')]][_0x1a57('0x8')];transfers[_0x31be00[_0x1a57('0x47')]][_0x1a57('0x49')]=agents[_0x31be00[_0x1a57('0x43')]]['calleridname'];transfers[_0x31be00['transfereeuniqueid']][_0x1a57('0x19')]=utils[_0x1a57('0x1a')]();transfers[_0x31be00[_0x1a57('0x47')]][_0x1a57('0x30')]=utils[_0x1a57('0x1a')]();transfers[_0x31be00[_0x1a57('0x47')]]['holdtime']=0x0;transfers[_0x31be00['transfereeuniqueid']][_0x1a57('0x48')]=0x2;}}else if(_0x31be00[_0x1a57('0x43')]==_0x31be00['secondtransfererlinkedid']){if(!_['isNil'](agents[_0x31be00[_0x1a57('0x41')]])){utils[_0x1a57('0x3')](util[_0x1a57('0x4')](_0x1a57('0x42'),_0x31be00[_0x1a57('0x41')],agents[_0x31be00[_0x1a57('0x41')]][_0x1a57('0x6')]));agents[_0x31be00['origtransfereruniqueid']]['transfer']=!![];agents[_0x31be00[_0x1a57('0x41')]][_0x1a57('0x3d')]=_0x1a57('0x4a');agents[_0x31be00[_0x1a57('0x41')]]['transferexten']=_0x31be00[_0x1a57('0x4b')];agents[_0x31be00[_0x1a57('0x41')]][_0x1a57('0x46')]=_0x31be00[_0x1a57('0x43')];}if(_0x31be00[_0x1a57('0x4c')]&&agents[_0x31be00['transfertargetuniqueid']]){agents[_0x31be00['transfertargetuniqueid']]['agententerreason']=0x1;transfers[_0x31be00[_0x1a57('0x4c')]]=_[_0x1a57('0x4d')](agents[_0x31be00[_0x1a57('0x4c')]]);transfers[_0x31be00[_0x1a57('0x4c')]][_0x1a57('0x8')]=agents[_0x31be00[_0x1a57('0x41')]][_0x1a57('0x8')];transfers[_0x31be00[_0x1a57('0x4c')]]['calleridname']=agents[_0x31be00[_0x1a57('0x41')]][_0x1a57('0x49')];transfers[_0x31be00['transfertargetuniqueid']]['agentcalledAt']=utils[_0x1a57('0x1a')]();transfers[_0x31be00['transfertargetuniqueid']][_0x1a57('0x30')]=utils[_0x1a57('0x1a')]();transfers[_0x31be00[_0x1a57('0x4c')]][_0x1a57('0x25')]=0x0;transfers[_0x31be00[_0x1a57('0x4c')]][_0x1a57('0x48')]=0x2;}}}catch(_0x213576){utils[_0x1a57('0x1d')](util['format'](_0x1a57('0x40'),_0x31be00[_0x1a57('0x41')]),_0x213576);}};exports['hangup']=function(_0x24b56c){try{utils[_0x1a57('0x17')](util[_0x1a57('0x4')]('[%s][agents][hangup]',_0x24b56c['uniqueid']),_0x24b56c);if(agents[_0x24b56c[_0x1a57('0x15')]]&&agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x24')]===_0x1a57('0x23')){if(_0x24b56c['cause']==='21'){agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x24')]=_0x1a57('0x4e');agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0xa')]='rejected';}utils[_0x1a57('0x3')](util[_0x1a57('0x4')](_0x1a57('0x4f'),_0x24b56c[_0x1a57('0x15')],agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x6')],agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x24')],agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0xa')]));writeDB(agents[_0x24b56c[_0x1a57('0x15')]]);var _0x48a10e=unanswered[_0x1a57('0x50')](_0x24b56c[_0x1a57('0x15')]);if(_0x48a10e>-0x1){unanswered['splice'](_0x48a10e,0x1);}}if(transfers[_0x24b56c[_0x1a57('0x15')]]){transfers[_0x24b56c[_0x1a57('0x15')]]['agentcomplete']=!![];transfers[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x36')]=utils[_0x1a57('0x1a')]();transfers[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x26')]=utils[_0x1a57('0x51')](transfers[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x36')],transfers[_0x24b56c['uniqueid']][_0x1a57('0x30')]);transfers[_0x24b56c[_0x1a57('0x15')]]['reason']=_0x1a57('0x52');transfers[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0xa')]=_0x1a57('0x37');utils[_0x1a57('0x3')](util[_0x1a57('0x4')](_0x1a57('0x4f'),_0x24b56c[_0x1a57('0x15')],transfers[_0x24b56c[_0x1a57('0x15')]]['membername'],transfers[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x24')],transfers[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0xa')]));writeDB(transfers[_0x24b56c[_0x1a57('0x15')]],!![]);}if(agents[_0x24b56c['uniqueid']]&&agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x30')]){agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0xf')]=!![];agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x36')]=utils[_0x1a57('0x1a')]();agents[_0x24b56c[_0x1a57('0x15')]]['talktime']=utils[_0x1a57('0x51')](agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x36')],agents[_0x24b56c[_0x1a57('0x15')]]['agentconnectAt']);agents[_0x24b56c['uniqueid']]['reason']=agents[_0x24b56c['uniqueid']]['transfer']?_0x1a57('0x44'):_0x1a57('0x52');agents[_0x24b56c['uniqueid']][_0x1a57('0xa')]=_0x1a57('0x37');utils['info'](util[_0x1a57('0x4')](_0x1a57('0x4f'),_0x24b56c[_0x1a57('0x15')],agents[_0x24b56c[_0x1a57('0x15')]]['membername'],agents[_0x24b56c[_0x1a57('0x15')]][_0x1a57('0x24')],agents[_0x24b56c['uniqueid']][_0x1a57('0xa')]));writeDB(agents[_0x24b56c[_0x1a57('0x15')]]);}}catch(_0x42d41e){utils[_0x1a57('0x1d')](util[_0x1a57('0x4')](_0x1a57('0x53'),_0x24b56c[_0x1a57('0x15')]),_0x42d41e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb8e=['exten','now','DOCUMENTATION','error','channelstate','isNil','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','hangup','[%s][calls][hangup]','callerid','calleridname','cause-txt','endtime','duration','diffTime','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','transfertargetchannel','origtransfererchannel','_attended','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstartAt','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmcs-queue','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','application','appdata','toLowerCase','set','startsWith','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','util','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','uniqueid','blinds','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','calleridnum','connectedlinenum','lastevent','accountcode','UserId','request','CreateVoiceCallReport','debug','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context'];(function(_0x3d254d,_0x10cce1){var _0xe79369=function(_0xb54270){while(--_0xb54270){_0x3d254d['push'](_0x3d254d['shift']());}};_0xe79369(++_0x10cce1);}(_0xbb8e,0xb8));var _0xebb8=function(_0x44eb5e,_0x240798){_0x44eb5e=_0x44eb5e-0x0;var _0x38e5ea=_0xbb8e[_0x44eb5e];return _0x38e5ea;};'use strict';var _=require(_0xebb8('0x0'));var util=require(_0xebb8('0x1'));var utils=require('./utils');var transfers=require(_0xebb8('0x2'));var dispositions=[_0xebb8('0x3'),_0xebb8('0x4'),_0xebb8('0x4'),_0xebb8('0x3'),'NO\x20ANSWER',_0xebb8('0x3'),_0xebb8('0x5'),_0xebb8('0x6'),'FAILED',_0xebb8('0x4'),_0xebb8('0x4')];var channels={};function writeDB(_0xc53869){var _0x483c76;if(transfers['blinds'][_0xc53869[_0xebb8('0x7')]]){_0x483c76=_0xc53869['uniqueid'];_0xc53869[_0xebb8('0x7')]=transfers[_0xebb8('0x8')][_0xc53869[_0xebb8('0x7')]][_0xebb8('0x9')];}utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0xc'),_0xc53869[_0xebb8('0x7')],_0xc53869[_0xebb8('0xd')],_0xc53869[_0xebb8('0xe')],_0xc53869['membername'],_0xc53869[_0xebb8('0xf')],_0xc53869[_0xebb8('0x10')],_0xc53869[_0xebb8('0x11')],_0xc53869[_0xebb8('0x12')]));if(_0xc53869[_0xebb8('0x13')]){utils['getUserByInternal'](_0xc53869['accountcode'])['then'](function(_0x21364b){if(_0x21364b){_0xc53869[_0xebb8('0x14')]=_0x21364b['id'];}utils[_0xebb8('0x15')](_0xebb8('0x16'),_0xc53869);});}else{utils[_0xebb8('0x15')](_0xebb8('0x16'),_0xc53869);}if(channels[_0xc53869[_0xebb8('0x7')]]){delete channels[_0xc53869[_0xebb8('0x7')]];}else if(_0x483c76&&channels[_0x483c76]){delete transfers['blinds'][_0x483c76];delete channels[_0x483c76];}}exports['newchannel']=function(_0x39da52){try{utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x18'),_0x39da52[_0xebb8('0x7')]),_0x39da52);if(_0x39da52['uniqueid']==_0x39da52['linkedid']&&_0x39da52['channel']!=_0xebb8('0x19')){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x1a'),_0x39da52[_0xebb8('0x7')],_0x39da52[_0xebb8('0x1b')],_0x39da52[_0xebb8('0x1c')]));channels[_0x39da52[_0xebb8('0x7')]]={'uniqueid':_0x39da52[_0xebb8('0x7')],'accountcode':_0x39da52[_0xebb8('0x13')],'source':_0x39da52[_0xebb8('0x10')],'destination':_0x39da52[_0xebb8('0x1c')],'destinationcontext':_0x39da52[_0xebb8('0x1b')],'channel':_0x39da52[_0xebb8('0xd')],'starttime':utils[_0xebb8('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xebb8('0x1e')};}}catch(_0x19552c){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')]('[%s][calls][newchannel]',_0x39da52[_0xebb8('0x7')]),_0x19552c);}};exports['newstate']=function(_0x57c128){try{utils[_0xebb8('0x17')](util[_0xebb8('0xb')]('[%s][calls][newstate]',_0x57c128[_0xebb8('0x7')]),_0x57c128);if(!_['isNil'](channels[_0x57c128[_0xebb8('0x7')]])&&_0x57c128[_0xebb8('0x20')]==0x6){utils[_0xebb8('0xa')](util['format']('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x57c128['uniqueid'],_0x57c128[_0xebb8('0x1b')],_0x57c128['channel']));if(_[_0xebb8('0x21')](channels[_0x57c128[_0xebb8('0x7')]][_0xebb8('0x22')])){channels[_0x57c128[_0xebb8('0x7')]][_0xebb8('0x22')]=utils[_0xebb8('0x1d')]();}}else if(!_['isNil'](channels[_0x57c128[_0xebb8('0x23')]])&&_0x57c128[_0xebb8('0x20')]==0x6&&_0x57c128[_0xebb8('0x1b')]!=_0xebb8('0x24')){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x25'),_0x57c128['uniqueid'],_0x57c128[_0xebb8('0x23')],_0x57c128[_0xebb8('0x1b')],_0x57c128[_0xebb8('0xd')]));channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x13')]=_0x57c128['accountcode'];channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x26')]=_0x57c128['channel'];if(_[_0xebb8('0x21')](channels[_0x57c128['linkedid']]['answertime'])){channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x27')]=utils[_0xebb8('0x1d')]();}channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x28')]=dispositions[_['toNumber'](_0x57c128['channelstate'])]||_0xebb8('0x5');}}catch(_0x3e00be){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')]('[%s][calls][newstate]',_0x57c128['uniqueid']),_0x3e00be);}};exports[_0xebb8('0x29')]=function(_0x3b42c6){try{if(!_['isNil'](channels[_0x3b42c6[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x2a'),_0x3b42c6[_0xebb8('0x7')]),_0x3b42c6);if(_[_0xebb8('0x21')](channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2b')])){channels[_0x3b42c6['uniqueid']]['callerid']=_0x3b42c6[_0xebb8('0x2c')]+'\x20<'+_0x3b42c6[_0xebb8('0x10')]+'>';}utils['info'](util[_0xebb8('0xb')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x3b42c6['uniqueid'],channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2b')],_0x3b42c6[_0xebb8('0x2d')]));channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2e')]=utils['now']();channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2f')]=utils[_0xebb8('0x30')](channels[_0x3b42c6[_0xebb8('0x7')]]['endtime'],channels[_0x3b42c6[_0xebb8('0x7')]]['starttime']);channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x31')]=channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x27')]?utils[_0xebb8('0x30')](channels[_0x3b42c6['uniqueid']][_0xebb8('0x2e')],channels[_0x3b42c6[_0xebb8('0x7')]]['answertime']):0x0;writeDB(channels[_0x3b42c6[_0xebb8('0x7')]]);}}catch(_0x6dd812){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x2a'),_0x3b42c6[_0xebb8('0x7')]),_0x6dd812);}};exports[_0xebb8('0x32')]=function(_0x18f65f){try{if(!_[_0xebb8('0x21')](channels[_0x18f65f['localtwolinkedid']])){utils['debug'](util['format'](_0xebb8('0x33'),_0x18f65f[_0xebb8('0x34')]),_0x18f65f);if(channels[_0x18f65f[_0xebb8('0x35')]]['channel']==_0x18f65f[_0xebb8('0x36')]){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x37'),_0x18f65f['origtransfereruniqueid'],_0x18f65f[_0xebb8('0x35')],_0x18f65f[_0xebb8('0x38')]));channels[_0x18f65f[_0xebb8('0x35')]][_0xebb8('0x26')]=_0x18f65f[_0xebb8('0x38')];channels[_0x18f65f[_0xebb8('0x35')]][_0xebb8('0x39')]='_attended';}else if(channels[_0x18f65f[_0xebb8('0x35')]][_0xebb8('0xd')]=_0x18f65f[_0xebb8('0x3a')]){utils['info'](util[_0xebb8('0xb')](_0xebb8('0x37'),_0x18f65f[_0xebb8('0x34')],_0x18f65f[_0xebb8('0x35')],_0x18f65f[_0xebb8('0x3b')]));channels[_0x18f65f[_0xebb8('0x35')]]['destinationchannel']=_0x18f65f[_0xebb8('0x3b')];channels[_0x18f65f[_0xebb8('0x35')]]['userfield']=_0xebb8('0x3c');}}}catch(_0x13f0ee){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x33'),_0x18f65f[_0xebb8('0x34')]),_0x13f0ee);}};exports[_0xebb8('0x3d')]=function(_0x38c4b7){try{if(!_[_0xebb8('0x21')](channels[_0x38c4b7['uniqueid']])){utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x3e'),_0x38c4b7[_0xebb8('0x7')]),_0x38c4b7);channels[_0x38c4b7[_0xebb8('0x7')]]['musiconholdstartAt']=utils[_0xebb8('0x1d')]();utils['info'](util[_0xebb8('0xb')](_0xebb8('0x3f'),_0x38c4b7['uniqueid'],channels[_0x38c4b7[_0xebb8('0x7')]][_0xebb8('0x40')]));}}catch(_0x539816){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x3e'),_0x38c4b7[_0xebb8('0x7')]),_0x539816);}};exports['musiconholdstop']=function(_0x405082){try{if(!_[_0xebb8('0x21')](channels[_0x405082[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util['format'](_0xebb8('0x41'),_0x405082['uniqueid']),_0x405082);if(!_[_0xebb8('0x21')](channels[_0x405082['uniqueid']][_0xebb8('0x40')])){channels[_0x405082['uniqueid']]['mohtime']+=utils[_0xebb8('0x30')](utils[_0xebb8('0x1d')](),channels[_0x405082['uniqueid']][_0xebb8('0x40')]);utils[_0xebb8('0xa')](util['format'](_0xebb8('0x42'),_0x405082[_0xebb8('0x7')],channels[_0x405082[_0xebb8('0x7')]][_0xebb8('0x43')]));delete channels[_0x405082[_0xebb8('0x7')]][_0xebb8('0x40')];}}}catch(_0x209412){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x41'),_0x405082[_0xebb8('0x7')]),_0x209412);}};exports[_0xebb8('0x44')]=function(_0x5cd1c2){try{if(!_[_0xebb8('0x21')](channels[_0x5cd1c2[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x45'),_0x5cd1c2[_0xebb8('0x7')]),_0x5cd1c2);if(!_['isNil'](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x47')])){utils['info'](util[_0xebb8('0xb')](_0xebb8('0x48'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2['uniqueid']]['source']=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4a')])){utils[_0xebb8('0xa')](util['format'](_0xebb8('0x4b'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]]['destination']=_0x5cd1c2['value'];channels[_0x5cd1c2['uniqueid']][_0xebb8('0x2b')]='\x22'+_0x5cd1c2[_0xebb8('0x49')]+_0xebb8('0x4c')+_0x5cd1c2[_0xebb8('0x49')]+'>';}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4d')])||!_[_0xebb8('0x21')](_0x5cd1c2['variable']['xmd-callerid'])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5cd1c2[_0xebb8('0x7')],!_['isNil'](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4d')])?_0xebb8('0x4d'):_0xebb8('0x4e'),_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x2b')]=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2['variable']['xmd-queue'])||!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4f')])){utils['info'](util[_0xebb8('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5cd1c2[_0xebb8('0x7')],!_['isNil'](_0x5cd1c2[_0xebb8('0x46')]['xmd-queue'])?'xmd-queue':_0xebb8('0x4f'),_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]]['lastapplication']=_0xebb8('0x50');channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x51')]=_0x5cd1c2[_0xebb8('0x49')];channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0xe')]=!![];}if(!_[_0xebb8('0x21')](_0x5cd1c2['variable'][_0xebb8('0x52')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x53'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]]['ContactId']=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x54')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x55'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2['value']));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x56')]=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x57')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x58')]=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x59')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x5a'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x59')]=_0x5cd1c2[_0xebb8('0x49')];}}}catch(_0x12df1b){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')]('[%s][calls][varset]',_0x5cd1c2['uniqueid']),_0x12df1b);}};exports[_0xebb8('0x5b')]=function(_0x2c43a0){try{if(!_['isNil'](channels[_0x2c43a0[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util['format'](_0xebb8('0x5c'),_0x2c43a0[_0xebb8('0x7')]),_0x2c43a0);utils[_0xebb8('0xa')](util['format']('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x2c43a0[_0xebb8('0x7')],_0x2c43a0[_0xebb8('0x5d')],_0x2c43a0[_0xebb8('0x5e')]));if(_0x2c43a0['application'][_0xebb8('0x5f')]()==_0xebb8('0x60')&&_[_0xebb8('0x61')](_0x2c43a0[_0xebb8('0x5e')][_0xebb8('0x5f')](),_0xebb8('0x62'))){var _0x212442=_0x2c43a0[_0xebb8('0x5e')][_0xebb8('0x63')]('=');var _0x2c0311=_0x212442[0x0][_0xebb8('0x64')](_0x212442[0x0][_0xebb8('0x65')]('(')+0x1,_0x212442[0x0]['lastIndexOf'](')'));var _0x202471=_0x212442[0x1];channels[_0x2c43a0['uniqueid']][_0x2c0311]=_0x202471;}if(!_[_0xebb8('0x66')]([_0xebb8('0x29'),_0xebb8('0x67'),_0xebb8('0x68'),_0xebb8('0x60'),_0xebb8('0x69')],_0x2c43a0[_0xebb8('0x5d')]['toLowerCase']())){channels[_0x2c43a0[_0xebb8('0x7')]]['lastapplication']=_0x2c43a0[_0xebb8('0x5d')];channels[_0x2c43a0[_0xebb8('0x7')]][_0xebb8('0x51')]=_0x2c43a0[_0xebb8('0x5e')];}}}catch(_0x332ce1){utils[_0xebb8('0x1f')](util['format'](_0xebb8('0x5c'),_0x2c43a0[_0xebb8('0x7')]),_0x332ce1);}};
\ No newline at end of file
+var _0x6979=['lastapplication','Queue','lastdata','queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','appdata','application','toLowerCase','set','startsWith','cdr','split','lastIndexOf','includes','noop','execif','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','interface','connectedlinenum','lastevent','accountcode','then','request','CreateVoiceCallReport','blinds','newchannel','debug','channel','OutgoingSpoolFailed','context','exten','calleridnum','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','transfer','destinationchannel','answertime','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','duration','diffTime','endtime','starttime','billableseconds','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','musiconholdstartAt','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','varset','[%s][calls][varset]','variable','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue'];(function(_0x51c819,_0xd812db){var _0x15c5d2=function(_0x2977f0){while(--_0x2977f0){_0x51c819['push'](_0x51c819['shift']());}};_0x15c5d2(++_0xd812db);}(_0x6979,0x1d4));var _0x9697=function(_0x50f545,_0x2596ab){_0x50f545=_0x50f545-0x0;var _0x477b9d=_0x6979[_0x50f545];return _0x477b9d;};'use strict';var _=require('lodash');var util=require(_0x9697('0x0'));var utils=require(_0x9697('0x1'));var transfers=require(_0x9697('0x2'));var dispositions=[_0x9697('0x3'),'FAILED',_0x9697('0x4'),_0x9697('0x3'),'NO\x20ANSWER',_0x9697('0x3'),'ANSWERED','BUSY','FAILED','FAILED','FAILED'];var channels={};function writeDB(_0x2908d6){var _0x10ceb3;if(transfers['blinds'][_0x2908d6[_0x9697('0x5')]]){_0x10ceb3=_0x2908d6['uniqueid'];_0x2908d6['uniqueid']=transfers['blinds'][_0x2908d6[_0x9697('0x5')]][_0x9697('0x6')];}utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x9'),_0x2908d6['uniqueid'],_0x2908d6['channel'],_0x2908d6['queue'],_0x2908d6['membername'],_0x2908d6[_0x9697('0xa')],_0x2908d6['calleridnum'],_0x2908d6[_0x9697('0xb')],_0x2908d6[_0x9697('0xc')]));if(_0x2908d6[_0x9697('0xd')]){utils['getUserByInternal'](_0x2908d6[_0x9697('0xd')])[_0x9697('0xe')](function(_0x4d57ba){if(_0x4d57ba){_0x2908d6['UserId']=_0x4d57ba['id'];}utils[_0x9697('0xf')]('CreateVoiceCallReport',_0x2908d6);});}else{utils['request'](_0x9697('0x10'),_0x2908d6);}if(channels[_0x2908d6[_0x9697('0x5')]]){delete channels[_0x2908d6['uniqueid']];}else if(_0x10ceb3&&channels[_0x10ceb3]){delete transfers[_0x9697('0x11')][_0x10ceb3];delete channels[_0x10ceb3];}}exports[_0x9697('0x12')]=function(_0x28c156){try{utils[_0x9697('0x13')](util[_0x9697('0x8')]('[%s][calls][newchannel]',_0x28c156[_0x9697('0x5')]),_0x28c156);if(_0x28c156[_0x9697('0x5')]==_0x28c156['linkedid']&&_0x28c156[_0x9697('0x14')]!=_0x9697('0x15')){utils[_0x9697('0x7')](util[_0x9697('0x8')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x28c156[_0x9697('0x5')],_0x28c156[_0x9697('0x16')],_0x28c156[_0x9697('0x17')]));channels[_0x28c156[_0x9697('0x5')]]={'uniqueid':_0x28c156[_0x9697('0x5')],'accountcode':_0x28c156[_0x9697('0xd')],'source':_0x28c156[_0x9697('0x18')],'destination':_0x28c156['exten'],'destinationcontext':_0x28c156[_0x9697('0x16')],'channel':_0x28c156['channel'],'starttime':utils[_0x9697('0x19')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x9697('0x3'),'amaflags':_0x9697('0x1a')};}}catch(_0x4176f4){utils[_0x9697('0x1b')](util[_0x9697('0x8')]('[%s][calls][newchannel]',_0x28c156[_0x9697('0x5')]),_0x4176f4);}};exports[_0x9697('0x1c')]=function(_0x463611){try{utils[_0x9697('0x13')](util[_0x9697('0x8')](_0x9697('0x1d'),_0x463611['uniqueid']),_0x463611);if(!_[_0x9697('0x1e')](channels[_0x463611['uniqueid']])&&_0x463611[_0x9697('0x1f')]==0x6){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x20'),_0x463611[_0x9697('0x5')],_0x463611[_0x9697('0x16')],_0x463611[_0x9697('0x14')]));if(_['isNil'](channels[_0x463611['uniqueid']][_0x9697('0x21')])){channels[_0x463611['uniqueid']][_0x9697('0x21')]=utils[_0x9697('0x19')]();}}else if(!_[_0x9697('0x1e')](channels[_0x463611[_0x9697('0x22')]])&&_0x463611[_0x9697('0x1f')]==0x6&&_0x463611['context']!=_0x9697('0x23')){utils[_0x9697('0x7')](util[_0x9697('0x8')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x463611[_0x9697('0x5')],_0x463611['linkedid'],_0x463611[_0x9697('0x16')],_0x463611['channel']));channels[_0x463611[_0x9697('0x22')]][_0x9697('0xd')]=_0x463611[_0x9697('0xd')];channels[_0x463611[_0x9697('0x22')]][_0x9697('0x24')]=_0x463611[_0x9697('0x14')];if(_[_0x9697('0x1e')](channels[_0x463611[_0x9697('0x22')]][_0x9697('0x25')])){channels[_0x463611[_0x9697('0x22')]][_0x9697('0x25')]=utils[_0x9697('0x19')]();}channels[_0x463611[_0x9697('0x22')]]['disposition']=dispositions[_['toNumber'](_0x463611[_0x9697('0x1f')])]||'ANSWERED';}}catch(_0x3462fd){utils[_0x9697('0x1b')](util[_0x9697('0x8')](_0x9697('0x1d'),_0x463611[_0x9697('0x5')]),_0x3462fd);}};exports[_0x9697('0x26')]=function(_0x4c8bdf){try{if(!_[_0x9697('0x1e')](channels[_0x4c8bdf[_0x9697('0x5')]])){utils[_0x9697('0x13')](util[_0x9697('0x8')](_0x9697('0x27'),_0x4c8bdf['uniqueid']),_0x4c8bdf);if(_['isNil'](channels[_0x4c8bdf['uniqueid']][_0x9697('0x28')])){channels[_0x4c8bdf[_0x9697('0x5')]][_0x9697('0x28')]=_0x4c8bdf[_0x9697('0x29')]+'\x20<'+_0x4c8bdf[_0x9697('0x18')]+'>';}utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x2a'),_0x4c8bdf[_0x9697('0x5')],channels[_0x4c8bdf['uniqueid']][_0x9697('0x28')],_0x4c8bdf[_0x9697('0x2b')]));channels[_0x4c8bdf['uniqueid']]['endtime']=utils[_0x9697('0x19')]();channels[_0x4c8bdf[_0x9697('0x5')]][_0x9697('0x2c')]=utils[_0x9697('0x2d')](channels[_0x4c8bdf[_0x9697('0x5')]][_0x9697('0x2e')],channels[_0x4c8bdf[_0x9697('0x5')]][_0x9697('0x2f')]);channels[_0x4c8bdf['uniqueid']][_0x9697('0x30')]=channels[_0x4c8bdf[_0x9697('0x5')]][_0x9697('0x25')]?utils[_0x9697('0x2d')](channels[_0x4c8bdf[_0x9697('0x5')]]['endtime'],channels[_0x4c8bdf[_0x9697('0x5')]][_0x9697('0x25')]):0x0;writeDB(channels[_0x4c8bdf['uniqueid']]);}}catch(_0x5171c3){utils[_0x9697('0x1b')](util[_0x9697('0x8')](_0x9697('0x27'),_0x4c8bdf[_0x9697('0x5')]),_0x5171c3);}};exports[_0x9697('0x31')]=function(_0x5355e0){try{if(!_[_0x9697('0x1e')](channels[_0x5355e0[_0x9697('0x32')]])){utils[_0x9697('0x13')](util[_0x9697('0x8')](_0x9697('0x33'),_0x5355e0[_0x9697('0x34')]),_0x5355e0);if(channels[_0x5355e0['localtwolinkedid']][_0x9697('0x14')]==_0x5355e0['transfereechannel']){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x35'),_0x5355e0['origtransfereruniqueid'],_0x5355e0[_0x9697('0x32')],_0x5355e0[_0x9697('0x36')]));channels[_0x5355e0[_0x9697('0x32')]][_0x9697('0x24')]=_0x5355e0['secondtransfererchannel'];channels[_0x5355e0[_0x9697('0x32')]][_0x9697('0x37')]=_0x9697('0x38');}else if(channels[_0x5355e0[_0x9697('0x32')]][_0x9697('0x14')]=_0x5355e0[_0x9697('0x39')]){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x35'),_0x5355e0[_0x9697('0x34')],_0x5355e0[_0x9697('0x32')],_0x5355e0[_0x9697('0x3a')]));channels[_0x5355e0[_0x9697('0x32')]][_0x9697('0x24')]=_0x5355e0[_0x9697('0x3a')];channels[_0x5355e0[_0x9697('0x32')]][_0x9697('0x37')]='_attended';}}}catch(_0x1fd8c6){utils[_0x9697('0x1b')](util[_0x9697('0x8')](_0x9697('0x33'),_0x5355e0[_0x9697('0x34')]),_0x1fd8c6);}};exports[_0x9697('0x3b')]=function(_0xa4a1c2){try{if(!_[_0x9697('0x1e')](channels[_0xa4a1c2['uniqueid']])){utils['debug'](util[_0x9697('0x8')](_0x9697('0x3c'),_0xa4a1c2[_0x9697('0x5')]),_0xa4a1c2);channels[_0xa4a1c2[_0x9697('0x5')]]['musiconholdstartAt']=utils[_0x9697('0x19')]();utils[_0x9697('0x7')](util['format'](_0x9697('0x3d'),_0xa4a1c2[_0x9697('0x5')],channels[_0xa4a1c2[_0x9697('0x5')]]['musiconholdstartAt']));}}catch(_0x3138db){utils[_0x9697('0x1b')](util[_0x9697('0x8')](_0x9697('0x3c'),_0xa4a1c2[_0x9697('0x5')]),_0x3138db);}};exports[_0x9697('0x3e')]=function(_0x1e487f){try{if(!_[_0x9697('0x1e')](channels[_0x1e487f[_0x9697('0x5')]])){utils[_0x9697('0x13')](util['format'](_0x9697('0x3f'),_0x1e487f[_0x9697('0x5')]),_0x1e487f);if(!_[_0x9697('0x1e')](channels[_0x1e487f[_0x9697('0x5')]][_0x9697('0x40')])){channels[_0x1e487f[_0x9697('0x5')]]['mohtime']+=utils[_0x9697('0x2d')](utils[_0x9697('0x19')](),channels[_0x1e487f[_0x9697('0x5')]][_0x9697('0x40')]);utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x41'),_0x1e487f[_0x9697('0x5')],channels[_0x1e487f[_0x9697('0x5')]][_0x9697('0x42')]));delete channels[_0x1e487f[_0x9697('0x5')]][_0x9697('0x40')];}}}catch(_0x43e772){utils[_0x9697('0x1b')](util[_0x9697('0x8')](_0x9697('0x3f'),_0x1e487f[_0x9697('0x5')]),_0x43e772);}};exports[_0x9697('0x43')]=function(_0x268037){try{if(!_[_0x9697('0x1e')](channels[_0x268037[_0x9697('0x5')]])){utils[_0x9697('0x13')](util[_0x9697('0x8')](_0x9697('0x44'),_0x268037[_0x9697('0x5')]),_0x268037);if(!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')]['xmd-originatecalleridnum'])){utils['info'](util['format'](_0x9697('0x46'),_0x268037[_0x9697('0x5')],_0x268037[_0x9697('0x47')]));channels[_0x268037[_0x9697('0x5')]][_0x9697('0x48')]=_0x268037['value'];}if(!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x49')])){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x4a'),_0x268037[_0x9697('0x5')],_0x268037['value']));channels[_0x268037[_0x9697('0x5')]][_0x9697('0x4b')]=_0x268037[_0x9697('0x47')];channels[_0x268037[_0x9697('0x5')]][_0x9697('0x28')]='\x22'+_0x268037['value']+_0x9697('0x4c')+_0x268037[_0x9697('0x47')]+'>';}if(!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x4d')])||!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x4e')])){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x4f'),_0x268037[_0x9697('0x5')],!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x4d')])?_0x9697('0x4d'):_0x9697('0x4e'),_0x268037[_0x9697('0x47')]));channels[_0x268037[_0x9697('0x5')]][_0x9697('0x28')]=_0x268037[_0x9697('0x47')];}if(!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x50')])||!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x51')])){utils['info'](util[_0x9697('0x8')](_0x9697('0x4f'),_0x268037[_0x9697('0x5')],!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')]['xmd-queue'])?_0x9697('0x50'):_0x9697('0x51'),_0x268037[_0x9697('0x47')]));channels[_0x268037[_0x9697('0x5')]][_0x9697('0x52')]=_0x9697('0x53');channels[_0x268037[_0x9697('0x5')]][_0x9697('0x54')]=_0x268037[_0x9697('0x47')];channels[_0x268037[_0x9697('0x5')]][_0x9697('0x55')]=!![];}if(!_['isNil'](_0x268037['variable'][_0x9697('0x56')])){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x57'),_0x268037['uniqueid'],_0x268037[_0x9697('0x47')]));channels[_0x268037['uniqueid']][_0x9697('0x58')]=_0x268037[_0x9697('0x47')];}if(!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x59')])){utils['info'](util[_0x9697('0x8')](_0x9697('0x5a'),_0x268037['uniqueid'],_0x268037['value']));channels[_0x268037[_0x9697('0x5')]][_0x9697('0x5b')]=_0x268037['value'];}if(!_[_0x9697('0x1e')](_0x268037[_0x9697('0x45')][_0x9697('0x5c')])){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x5d'),_0x268037['uniqueid'],_0x268037['value']));channels[_0x268037[_0x9697('0x5')]][_0x9697('0x5e')]=_0x268037['value'];}if(!_['isNil'](_0x268037[_0x9697('0x45')][_0x9697('0x5f')])){utils[_0x9697('0x7')](util[_0x9697('0x8')](_0x9697('0x60'),_0x268037[_0x9697('0x5')],_0x268037['value']));channels[_0x268037[_0x9697('0x5')]][_0x9697('0x5f')]=_0x268037['value'];}}}catch(_0x12a013){utils[_0x9697('0x1b')](util[_0x9697('0x8')](_0x9697('0x44'),_0x268037[_0x9697('0x5')]),_0x12a013);}};exports[_0x9697('0x61')]=function(_0x28abf7){try{if(!_[_0x9697('0x1e')](channels[_0x28abf7[_0x9697('0x5')]])){utils[_0x9697('0x13')](util[_0x9697('0x8')](_0x9697('0x62'),_0x28abf7[_0x9697('0x5')]),_0x28abf7);utils[_0x9697('0x7')](util[_0x9697('0x8')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x28abf7['uniqueid'],_0x28abf7['application'],_0x28abf7[_0x9697('0x63')]));if(_0x28abf7[_0x9697('0x64')][_0x9697('0x65')]()==_0x9697('0x66')&&_[_0x9697('0x67')](_0x28abf7[_0x9697('0x63')][_0x9697('0x65')](),_0x9697('0x68'))){var _0x4b1977=_0x28abf7[_0x9697('0x63')][_0x9697('0x69')]('=');var _0x59b574=_0x4b1977[0x0]['substring'](_0x4b1977[0x0][_0x9697('0x6a')]('(')+0x1,_0x4b1977[0x0]['lastIndexOf'](')'));var _0x411411=_0x4b1977[0x1];channels[_0x28abf7[_0x9697('0x5')]][_0x59b574]=_0x411411;}if(!_[_0x9697('0x6b')]([_0x9697('0x26'),_0x9697('0x6c'),_0x9697('0x6d'),_0x9697('0x66'),'gotoif'],_0x28abf7[_0x9697('0x64')][_0x9697('0x65')]())){channels[_0x28abf7[_0x9697('0x5')]]['lastapplication']=_0x28abf7['application'];channels[_0x28abf7['uniqueid']][_0x9697('0x54')]=_0x28abf7['appdata'];}}}catch(_0x70a40e){utils['error'](util['format'](_0x9697('0x62'),_0x28abf7[_0x9697('0x5')]),_0x70a40e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ade=['[core]\x20fullybooted','error','close','[core]\x20close','managerevent','./utils','connect','info','[core]\x20connected','shutdown','[core]\x20shutdown','fullybooted'];(function(_0x11946c,_0x12152c){var _0x383935=function(_0x61fce2){while(--_0x61fce2){_0x11946c['push'](_0x11946c['shift']());}};_0x383935(++_0x12152c);}(_0x4ade,0x149));var _0xe4ad=function(_0x4725f0,_0x1fc4c4){_0x4725f0=_0x4725f0-0x0;var _0x1fd0b6=_0x4ade[_0x4725f0];return _0x1fd0b6;};'use strict';var utils=require(_0xe4ad('0x0'));exports[_0xe4ad('0x1')]=function(){utils[_0xe4ad('0x2')](_0xe4ad('0x3'));};exports[_0xe4ad('0x4')]=function(){utils['info'](_0xe4ad('0x5'));};exports[_0xe4ad('0x6')]=function(){utils[_0xe4ad('0x2')](_0xe4ad('0x7'));};exports[_0xe4ad('0x8')]=function(_0x56917f){utils[_0xe4ad('0x8')]('[core]\x20error',_0x56917f);};exports[_0xe4ad('0x9')]=function(){utils[_0xe4ad('0x2')](_0xe4ad('0xa'));};exports[_0xe4ad('0xb')]=function(_0xff7b62){};
\ No newline at end of file
+var _0xe01b=['[core]\x20close','managerevent','./utils','connect','info','[core]\x20connected','[core]\x20shutdown','fullybooted','error','[core]\x20error'];(function(_0xc0f3d0,_0x4cfe98){var _0x1798ba=function(_0xa3446d){while(--_0xa3446d){_0xc0f3d0['push'](_0xc0f3d0['shift']());}};_0x1798ba(++_0x4cfe98);}(_0xe01b,0x7a));var _0xbe01=function(_0x256b72,_0x340985){_0x256b72=_0x256b72-0x0;var _0x2183e3=_0xe01b[_0x256b72];return _0x2183e3;};'use strict';var utils=require(_0xbe01('0x0'));exports[_0xbe01('0x1')]=function(){utils[_0xbe01('0x2')](_0xbe01('0x3'));};exports['shutdown']=function(){utils[_0xbe01('0x2')](_0xbe01('0x4'));};exports[_0xbe01('0x5')]=function(){utils[_0xbe01('0x2')]('[core]\x20fullybooted');};exports['error']=function(_0x4c4060){utils[_0xbe01('0x6')](_0xbe01('0x7'),_0x4c4060);};exports['close']=function(){utils[_0xbe01('0x2')](_0xbe01('0x8'));};exports[_0xbe01('0x9')]=function(_0x1dabfa){};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8558=['appdata','toLowerCase','cdr(routeid)','error','[%s][dials][newexten]','varset','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','diffTime','endtime','holdtime','billableseconds','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','calleridnum','dialstatus','request','debug','info','application'];(function(_0x251535,_0x4a49e8){var _0x4a7b3e=function(_0x5b1604){while(--_0x5b1604){_0x251535['push'](_0x251535['shift']());}};_0x4a7b3e(++_0x4a49e8);}(_0x8558,0x84));var _0x8855=function(_0x577a09,_0x119a97){_0x577a09=_0x577a09-0x0;var _0x52ba87=_0x8558[_0x577a09];return _0x52ba87;};'use strict';var _=require('lodash');var util=require(_0x8855('0x0'));var utils=require(_0x8855('0x1'));var dials={};function writeDB(_0x533f23){utils['info'](util[_0x8855('0x2')](_0x8855('0x3'),_0x533f23[_0x8855('0x4')],_0x533f23[_0x8855('0x5')],_0x533f23['dialstring'],_0x533f23[_0x8855('0x6')],_0x533f23['connectedlinenum'],_0x533f23[_0x8855('0x7')]));utils[_0x8855('0x8')]('CreateVoiceDialReport',_0x533f23);delete dials[_0x533f23[_0x8855('0x4')]];}exports['newexten']=function(_0x2cf430){try{utils[_0x8855('0x9')](util[_0x8855('0x2')]('[%s][dials][newexten]',_0x2cf430[_0x8855('0x4')]),_0x2cf430);utils[_0x8855('0xa')](util[_0x8855('0x2')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x2cf430[_0x8855('0x4')],_0x2cf430[_0x8855('0xb')],_0x2cf430[_0x8855('0xc')]));if(_0x2cf430[_0x8855('0xb')]['toLowerCase']()=='set'&&_['startsWith'](_0x2cf430[_0x8855('0xc')][_0x8855('0xd')](),_0x8855('0xe'))){var _0x1ebc1c=_0x2cf430[_0x8855('0xc')]['split']('=');dials[_0x2cf430[_0x8855('0x4')]]={'routeId':_0x1ebc1c[0x1]};}}catch(_0x26dfc9){utils[_0x8855('0xf')](util['format'](_0x8855('0x10'),_0x2cf430[_0x8855('0x4')]),_0x26dfc9);}};exports[_0x8855('0x11')]=function(_0x3c2391){try{utils[_0x8855('0x9')](util[_0x8855('0x2')]('[%s][dials][varset]',_0x3c2391['uniqueid']),_0x3c2391);if(!_[_0x8855('0x12')](_0x3c2391[_0x8855('0x13')][_0x8855('0x14')])){utils[_0x8855('0xa')](util[_0x8855('0x2')](_0x8855('0x15'),_0x3c2391['uniqueid'],_0x3c2391[_0x8855('0x16')]));dials[_0x3c2391[_0x8855('0x4')]]={'routeId':_0x3c2391['value']};}}catch(_0x523d2f){utils[_0x8855('0xf')](util[_0x8855('0x2')]('[%s][dials][varset]',_0x3c2391['uniqueid']),_0x523d2f);}};exports[_0x8855('0x17')]=function(_0x50bfc8){try{if(!_[_0x8855('0x12')](dials[_0x50bfc8[_0x8855('0x4')]])){utils[_0x8855('0x9')](util[_0x8855('0x2')](_0x8855('0x18'),_0x50bfc8[_0x8855('0x4')]),_0x50bfc8);dials[_0x50bfc8[_0x8855('0x4')]]=_[_0x8855('0x19')](dials[_0x50bfc8[_0x8855('0x4')]],_0x50bfc8);dials[_0x50bfc8[_0x8855('0x4')]][_0x8855('0x1a')]=utils[_0x8855('0x1b')]();dials[_0x50bfc8['uniqueid']][_0x8855('0x1c')]='called';utils[_0x8855('0xa')](util['format'](_0x8855('0x1d'),_0x50bfc8['uniqueid'],dials[_0x50bfc8[_0x8855('0x4')]]['starttime']));}}catch(_0x5af750){utils[_0x8855('0xf')](util[_0x8855('0x2')](_0x8855('0x18'),_0x50bfc8['uniqueid']),_0x5af750);}};exports[_0x8855('0x1e')]=function(_0x21862c){try{if(!_[_0x8855('0x12')](dials[_0x21862c['uniqueid']])){utils['debug'](util['format'](_0x8855('0x1f'),_0x21862c['uniqueid']),_0x21862c);dials[_0x21862c['uniqueid']][_0x8855('0x7')]=_0x21862c[_0x8855('0x7')];if(_0x21862c['dialstatus']==_0x8855('0x20')){dials[_0x21862c[_0x8855('0x4')]]=_[_0x8855('0x19')](dials[_0x21862c[_0x8855('0x4')]],_0x21862c);dials[_0x21862c['uniqueid']][_0x8855('0x21')]=utils[_0x8855('0x1b')]();dials[_0x21862c[_0x8855('0x4')]][_0x8855('0x1c')]=_0x8855('0x22');utils[_0x8855('0xa')](util['format'](_0x8855('0x23'),_0x21862c[_0x8855('0x4')],_0x21862c['dialstatus'],dials[_0x21862c['uniqueid']][_0x8855('0x21')]));}else{utils[_0x8855('0xa')](util[_0x8855('0x2')](_0x8855('0x24'),_0x21862c[_0x8855('0x4')],_0x21862c[_0x8855('0x7')]));}}}catch(_0x1c1a4c){utils['error'](util[_0x8855('0x2')]('[%s][dials][dialend]',_0x21862c[_0x8855('0x4')]),_0x1c1a4c);}};exports[_0x8855('0x25')]=function(_0x3ea1f6){try{if(!_['isNil'](dials[_0x3ea1f6[_0x8855('0x4')]])){utils[_0x8855('0x9')](util[_0x8855('0x2')](_0x8855('0x26'),_0x3ea1f6[_0x8855('0x4')]),_0x3ea1f6);utils[_0x8855('0xa')](util[_0x8855('0x2')](_0x8855('0x27'),_0x3ea1f6[_0x8855('0x4')],_0x3ea1f6[_0x8855('0x6')],_0x3ea1f6[_0x8855('0x28')],_0x3ea1f6[_0x8855('0x29')]));dials[_0x3ea1f6['uniqueid']]=_[_0x8855('0x19')](dials[_0x3ea1f6['uniqueid']],{'endtime':utils[_0x8855('0x1b')](),'lastevent':_0x8855('0x2a')});dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2b')]=utils[_0x8855('0x2c')](dials[_0x3ea1f6['uniqueid']][_0x8855('0x2d')],dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x1a')]);dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2e')]=utils['diffTime'](dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x21')]||dials[_0x3ea1f6['uniqueid']][_0x8855('0x2d')],dials[_0x3ea1f6[_0x8855('0x4')]]['starttime']);dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2f')]=dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x21')]?utils['diffTime'](dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2d')],dials[_0x3ea1f6['uniqueid']][_0x8855('0x21')]):0x0;writeDB(dials[_0x3ea1f6[_0x8855('0x4')]]);}}catch(_0x4d1581){utils[_0x8855('0xf')](util[_0x8855('0x2')]('[%s][dials][hangup]',_0x3ea1f6['uniqueid']),_0x4d1581);}};
\ No newline at end of file
+var _0xd825=['split','error','varset','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][dialbegin]','starttime','now','lastevent','called','dialend','[%s][dials][dialend]','ANSWER','assign','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','holdtime','diffTime','endtime','billableseconds','answertime','[%s][dials][hangup]','lodash','./utils','info','format','uniqueid','channel','calleridnum','dialstatus','request','CreateVoiceDialReport','debug','appdata','application','toLowerCase','startsWith'];(function(_0xa2b098,_0x461a08){var _0x29502e=function(_0x43291a){while(--_0x43291a){_0xa2b098['push'](_0xa2b098['shift']());}};_0x29502e(++_0x461a08);}(_0xd825,0x169));var _0x5d82=function(_0x415b52,_0x34a009){_0x415b52=_0x415b52-0x0;var _0x316676=_0xd825[_0x415b52];return _0x316676;};'use strict';var _=require(_0x5d82('0x0'));var util=require('util');var utils=require(_0x5d82('0x1'));var dials={};function writeDB(_0x304ef3){utils[_0x5d82('0x2')](util[_0x5d82('0x3')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x304ef3[_0x5d82('0x4')],_0x304ef3[_0x5d82('0x5')],_0x304ef3['dialstring'],_0x304ef3[_0x5d82('0x6')],_0x304ef3['connectedlinenum'],_0x304ef3[_0x5d82('0x7')]));utils[_0x5d82('0x8')](_0x5d82('0x9'),_0x304ef3);delete dials[_0x304ef3['uniqueid']];}exports['newexten']=function(_0xf611f){try{utils[_0x5d82('0xa')](util[_0x5d82('0x3')]('[%s][dials][newexten]',_0xf611f[_0x5d82('0x4')]),_0xf611f);utils[_0x5d82('0x2')](util[_0x5d82('0x3')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0xf611f[_0x5d82('0x4')],_0xf611f['application'],_0xf611f[_0x5d82('0xb')]));if(_0xf611f[_0x5d82('0xc')][_0x5d82('0xd')]()=='set'&&_[_0x5d82('0xe')](_0xf611f[_0x5d82('0xb')]['toLowerCase'](),'cdr(routeid)')){var _0x2dea29=_0xf611f[_0x5d82('0xb')][_0x5d82('0xf')]('=');dials[_0xf611f[_0x5d82('0x4')]]={'routeId':_0x2dea29[0x1]};}}catch(_0x58a5e2){utils[_0x5d82('0x10')](util['format']('[%s][dials][newexten]',_0xf611f[_0x5d82('0x4')]),_0x58a5e2);}};exports[_0x5d82('0x11')]=function(_0x5be184){try{utils[_0x5d82('0xa')](util[_0x5d82('0x3')]('[%s][dials][varset]',_0x5be184[_0x5d82('0x4')]),_0x5be184);if(!_[_0x5d82('0x12')](_0x5be184[_0x5d82('0x13')][_0x5d82('0x14')])){utils[_0x5d82('0x2')](util['format'](_0x5d82('0x15'),_0x5be184[_0x5d82('0x4')],_0x5be184[_0x5d82('0x16')]));dials[_0x5be184['uniqueid']]={'routeId':_0x5be184[_0x5d82('0x16')]};}}catch(_0x1b4482){utils[_0x5d82('0x10')](util['format']('[%s][dials][varset]',_0x5be184['uniqueid']),_0x1b4482);}};exports['dialbegin']=function(_0x1bbe4f){try{if(!_[_0x5d82('0x12')](dials[_0x1bbe4f['uniqueid']])){utils[_0x5d82('0xa')](util[_0x5d82('0x3')](_0x5d82('0x17'),_0x1bbe4f[_0x5d82('0x4')]),_0x1bbe4f);dials[_0x1bbe4f[_0x5d82('0x4')]]=_['assign'](dials[_0x1bbe4f[_0x5d82('0x4')]],_0x1bbe4f);dials[_0x1bbe4f[_0x5d82('0x4')]][_0x5d82('0x18')]=utils[_0x5d82('0x19')]();dials[_0x1bbe4f['uniqueid']][_0x5d82('0x1a')]=_0x5d82('0x1b');utils[_0x5d82('0x2')](util[_0x5d82('0x3')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x1bbe4f[_0x5d82('0x4')],dials[_0x1bbe4f[_0x5d82('0x4')]][_0x5d82('0x18')]));}}catch(_0xa4965e){utils[_0x5d82('0x10')](util[_0x5d82('0x3')](_0x5d82('0x17'),_0x1bbe4f[_0x5d82('0x4')]),_0xa4965e);}};exports[_0x5d82('0x1c')]=function(_0x3f5c94){try{if(!_[_0x5d82('0x12')](dials[_0x3f5c94[_0x5d82('0x4')]])){utils['debug'](util[_0x5d82('0x3')](_0x5d82('0x1d'),_0x3f5c94['uniqueid']),_0x3f5c94);dials[_0x3f5c94['uniqueid']][_0x5d82('0x7')]=_0x3f5c94[_0x5d82('0x7')];if(_0x3f5c94[_0x5d82('0x7')]==_0x5d82('0x1e')){dials[_0x3f5c94[_0x5d82('0x4')]]=_[_0x5d82('0x1f')](dials[_0x3f5c94[_0x5d82('0x4')]],_0x3f5c94);dials[_0x3f5c94[_0x5d82('0x4')]]['answertime']=utils[_0x5d82('0x19')]();dials[_0x3f5c94[_0x5d82('0x4')]][_0x5d82('0x1a')]=_0x5d82('0x20');utils[_0x5d82('0x2')](util[_0x5d82('0x3')](_0x5d82('0x21'),_0x3f5c94['uniqueid'],_0x3f5c94[_0x5d82('0x7')],dials[_0x3f5c94[_0x5d82('0x4')]]['answertime']));}else{utils[_0x5d82('0x2')](util[_0x5d82('0x3')](_0x5d82('0x22'),_0x3f5c94[_0x5d82('0x4')],_0x3f5c94['dialstatus']));}}}catch(_0x33bec9){utils[_0x5d82('0x10')](util[_0x5d82('0x3')]('[%s][dials][dialend]',_0x3f5c94[_0x5d82('0x4')]),_0x33bec9);}};exports[_0x5d82('0x23')]=function(_0x4722ee){try{if(!_['isNil'](dials[_0x4722ee[_0x5d82('0x4')]])){utils[_0x5d82('0xa')](util[_0x5d82('0x3')]('[%s][dials][hangup]',_0x4722ee['uniqueid']),_0x4722ee);utils[_0x5d82('0x2')](util[_0x5d82('0x3')](_0x5d82('0x24'),_0x4722ee['uniqueid'],_0x4722ee['calleridnum'],_0x4722ee[_0x5d82('0x25')],_0x4722ee[_0x5d82('0x26')]));dials[_0x4722ee['uniqueid']]=_[_0x5d82('0x1f')](dials[_0x4722ee['uniqueid']],{'endtime':utils['now'](),'lastevent':_0x5d82('0x27')});dials[_0x4722ee[_0x5d82('0x4')]][_0x5d82('0x28')]=utils['diffTime'](dials[_0x4722ee[_0x5d82('0x4')]]['endtime'],dials[_0x4722ee[_0x5d82('0x4')]][_0x5d82('0x18')]);dials[_0x4722ee[_0x5d82('0x4')]][_0x5d82('0x29')]=utils[_0x5d82('0x2a')](dials[_0x4722ee['uniqueid']]['answertime']||dials[_0x4722ee[_0x5d82('0x4')]][_0x5d82('0x2b')],dials[_0x4722ee[_0x5d82('0x4')]][_0x5d82('0x18')]);dials[_0x4722ee['uniqueid']][_0x5d82('0x2c')]=dials[_0x4722ee[_0x5d82('0x4')]][_0x5d82('0x2d')]?utils['diffTime'](dials[_0x4722ee['uniqueid']][_0x5d82('0x2b')],dials[_0x4722ee[_0x5d82('0x4')]][_0x5d82('0x2d')]):0x0;writeDB(dials[_0x4722ee[_0x5d82('0x4')]]);}}catch(_0x3927c8){utils[_0x5d82('0x10')](util[_0x5d82('0x3')](_0x5d82('0x2e'),_0x4722ee[_0x5d82('0x4')]),_0x3927c8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92cf=['newstate','hangup','[%s][index][hangup]','cdr','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','varset','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','dialbegin','[%s]dialbegin','dialend','[%s][index][dialend]','asterisk-manager','../../config/environment','port','asterisk','password','xdr','disabled','info','XDR\x20DISABLED','./calls.controller','./queues.controller','./recordings.controller','./members.controller','./dials.controller','./transfers.controller','connect','shutdown','fullybooted','close','[%s][index][devicestatechange]','device','devicestatechange','error','format','debug','[%s][index][agentcalled]','uniqueid','agentcalled','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','[%s][index][newstate]'];(function(_0x108d48,_0x3fc489){var _0x11fb29=function(_0x7e60f3){while(--_0x7e60f3){_0x108d48['push'](_0x108d48['shift']());}};_0x11fb29(++_0x3fc489);}(_0x92cf,0x18c));var _0xf92c=function(_0x4de9e8,_0x565ffa){_0x4de9e8=_0x4de9e8-0x0;var _0x4db0de=_0x92cf[_0x4de9e8];return _0x4db0de;};var AsteriskManager=require(_0xf92c('0x0'));var config=require(_0xf92c('0x1'));var utils=require('./utils');var util=require('util');var ami=new AsteriskManager(config['asterisk'][_0xf92c('0x2')],config[_0xf92c('0x3')]['ip'],config[_0xf92c('0x3')]['username'],config['asterisk'][_0xf92c('0x4')],!![]);ami['keepConnected']();if(config[_0xf92c('0x5')]&&config[_0xf92c('0x5')][_0xf92c('0x6')]){utils[_0xf92c('0x7')](_0xf92c('0x8'));}else{var agents=require('./agents.controller');var calls=require(_0xf92c('0x9'));var queues=require(_0xf92c('0xa'));var recordings=require(_0xf92c('0xb'));var members=require(_0xf92c('0xc'));var dials=require(_0xf92c('0xd'));var transfers=require(_0xf92c('0xe'));var core=require('./core.controller');ami['on'](_0xf92c('0xf'),core['connect']);ami['on'](_0xf92c('0x10'),core[_0xf92c('0x10')]);ami['on']('fullybooted',core[_0xf92c('0x11')]);ami['on']('error',core['error']);ami['on'](_0xf92c('0x12'),core['close']);ami['on']('managerevent',core['managerevent']);ami['on']('devicestatechange',function(_0x20b05b){try{utils['debug'](util['format'](_0xf92c('0x13'),_0x20b05b[_0xf92c('0x14')]),_0x20b05b);members[_0xf92c('0x15')](_0x20b05b);}catch(_0x24db9a){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x13'),_0x20b05b[_0xf92c('0x14')]),_0x24db9a);}});ami['on']('agentcalled',function(_0x1a71b){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x19'),_0x1a71b[_0xf92c('0x1a')]),_0x1a71b);agents[_0xf92c('0x1b')](_0x1a71b);}catch(_0x37e5b9){utils[_0xf92c('0x16')](util[_0xf92c('0x17')]('[%s][index][agentcalled]',_0x1a71b[_0xf92c('0x1a')]),_0x37e5b9);}});ami['on'](_0xf92c('0x1c'),function(_0x29f72b){try{utils['debug'](util[_0xf92c('0x17')](_0xf92c('0x1d'),_0x29f72b[_0xf92c('0x1a')]),_0x29f72b);agents['agentringnoanswer'](_0x29f72b);}catch(_0x25522d){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x1d'),_0x29f72b['uniqueid']),_0x25522d);}});ami['on'](_0xf92c('0x1e'),function(_0x5b4dca){try{utils[_0xf92c('0x18')](util['format']('[%s][index][agentconnect]',_0x5b4dca['uniqueid']),_0x5b4dca);agents[_0xf92c('0x1e')](_0x5b4dca);queues[_0xf92c('0x1e')](_0x5b4dca);}catch(_0x4cdbce){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x1f'),_0x5b4dca[_0xf92c('0x1a')]),_0x4cdbce);}});ami['on'](_0xf92c('0x20'),function(_0x257607){try{utils[_0xf92c('0x18')](util['format'](_0xf92c('0x21'),_0x257607[_0xf92c('0x1a')]),_0x257607);agents[_0xf92c('0x20')](_0x257607);queues[_0xf92c('0x20')](_0x257607);members[_0xf92c('0x20')](_0x257607);}catch(_0x169c69){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x21'),_0x257607[_0xf92c('0x1a')]),_0x169c69);}});ami['on'](_0xf92c('0x22'),function(_0xff626a){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][queuecallerabandon]',_0xff626a[_0xf92c('0x1a')]),_0xff626a);agents[_0xf92c('0x22')](_0xff626a);queues['queuecallerabandon'](_0xff626a);}catch(_0x543c70){utils[_0xf92c('0x16')](util['format'](_0xf92c('0x23'),_0xff626a[_0xf92c('0x1a')]),_0x543c70);}});ami['on']('queuecallerjoin',function(_0x5d136e){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][queuecallerjoin]',_0x5d136e[_0xf92c('0x1a')]),_0x5d136e);queues['queuecallerjoin'](_0x5d136e);recordings[_0xf92c('0x24')](_0x5d136e);}catch(_0x1caeb3){utils['error'](util[_0xf92c('0x17')](_0xf92c('0x25'),_0x5d136e[_0xf92c('0x1a')]),_0x1caeb3);}});ami['on'](_0xf92c('0x26'),function(_0x1b77a7){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x27'),_0x1b77a7[_0xf92c('0x1a')]),_0x1b77a7);queues[_0xf92c('0x26')](_0x1b77a7);}catch(_0x207eb3){utils[_0xf92c('0x16')](util[_0xf92c('0x17')]('[%s][index][queuecallerleave]',_0x1b77a7[_0xf92c('0x1a')]),_0x207eb3);}});ami['on'](_0xf92c('0x28'),function(_0x29ea69){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][musiconholdstart]',_0x29ea69[_0xf92c('0x1a')]),_0x29ea69);queues['musiconholdstart'](_0x29ea69);calls[_0xf92c('0x28')](_0x29ea69);}catch(_0x55fb45){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x29'),_0x29ea69[_0xf92c('0x1a')]),_0x55fb45);}});ami['on']('musiconholdstop',function(_0x2011b8){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][musiconholdstop]',_0x2011b8['uniqueid']),_0x2011b8);queues[_0xf92c('0x2a')](_0x2011b8);calls[_0xf92c('0x2a')](_0x2011b8);}catch(_0x356e55){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x2b'),_0x2011b8[_0xf92c('0x1a')]),_0x356e55);}});ami['on']('newstate',function(_0x2327fd){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x2c'),_0x2327fd[_0xf92c('0x1a')]),_0x2327fd);calls[_0xf92c('0x2d')](_0x2327fd);recordings[_0xf92c('0x2d')](_0x2327fd);}catch(_0x43fc0d){utils[_0xf92c('0x16')](util[_0xf92c('0x17')]('[%s][index][newstate]',_0x2327fd['uniqueid']),_0x43fc0d);}});ami['on'](_0xf92c('0x2e'),function(_0x347cad){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x2f'),_0x347cad['uniqueid']),_0x347cad);calls['hangup'](_0x347cad);recordings[_0xf92c('0x2e')](_0x347cad);dials[_0xf92c('0x2e')](_0x347cad);agents['hangup'](_0x347cad);queues[_0xf92c('0x2e')](_0x347cad);}catch(_0x1bb7ca){utils[_0xf92c('0x16')](util['format'](_0xf92c('0x2f'),_0x347cad['uniqueid']),_0x1bb7ca);}});ami['on'](_0xf92c('0x30'),function(_0x5813b8){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][cdr]',_0x5813b8['uniqueid']),_0x5813b8);members[_0xf92c('0x30')](_0x5813b8);}catch(_0xd01392){utils['error'](util[_0xf92c('0x17')]('[%s][index][cdr]',_0x5813b8[_0xf92c('0x1a')]),_0xd01392);}});ami['on'](_0xf92c('0x31'),function(_0x11e7cd){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][blindtransfer]',_0x11e7cd['uniqueid']),_0x11e7cd);queues[_0xf92c('0x31')](_0x11e7cd);agents[_0xf92c('0x31')](_0x11e7cd);transfers[_0xf92c('0x31')](_0x11e7cd);}catch(_0xf77d4d){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x32'),_0x11e7cd['uniqueid']),_0xf77d4d);}});ami['on'](_0xf92c('0x33'),function(_0x55ba62){try{utils['debug'](util[_0xf92c('0x17')](_0xf92c('0x34'),_0x55ba62[_0xf92c('0x35')]),_0x55ba62);queues[_0xf92c('0x33')](_0x55ba62);transfers[_0xf92c('0x33')](_0x55ba62);agents[_0xf92c('0x33')](_0x55ba62);calls['attendedtransfer'](_0x55ba62);}catch(_0x156de5){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x34'),_0x55ba62['origtransfereruniqueid']),_0x156de5);}});ami['on']('varset',function(_0x4ab054){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][varset]',_0x4ab054[_0xf92c('0x1a')]),_0x4ab054);queues[_0xf92c('0x36')](_0x4ab054);recordings['varset'](_0x4ab054);calls[_0xf92c('0x36')](_0x4ab054);dials['varset'](_0x4ab054);}catch(_0x5eaa04){utils['error'](util[_0xf92c('0x17')]('[%s][index][varset]',_0x4ab054[_0xf92c('0x1a')]),_0x5eaa04);}});ami['on'](_0xf92c('0x37'),function(_0x1f2284){try{utils['debug'](util[_0xf92c('0x17')](_0xf92c('0x38'),_0x1f2284[_0xf92c('0x1a')]),_0x1f2284);calls[_0xf92c('0x37')](_0x1f2284);recordings['newexten'](_0x1f2284);dials[_0xf92c('0x37')](_0x1f2284);}catch(_0x59ad9f){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x38'),_0x1f2284[_0xf92c('0x1a')]),_0x59ad9f);}});ami['on'](_0xf92c('0x39'),function(_0x27e9a7){try{utils[_0xf92c('0x18')](util['format'](_0xf92c('0x3a'),_0x27e9a7['uniqueid']),_0x27e9a7);calls[_0xf92c('0x39')](_0x27e9a7);recordings[_0xf92c('0x39')](_0x27e9a7);}catch(_0x4fa30c){utils['error'](util[_0xf92c('0x17')]('[%s][index][newchannel]',_0x27e9a7[_0xf92c('0x1a')]),_0x4fa30c);}});ami['on'](_0xf92c('0x3b'),function(_0x351d5b){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][dialbegin]',_0x351d5b[_0xf92c('0x1a')]),_0x351d5b);dials[_0xf92c('0x3b')](_0x351d5b);}catch(_0xd47540){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x3c'),_0x351d5b[_0xf92c('0x1a')]),_0xd47540);}});ami['on'](_0xf92c('0x3d'),function(_0x14067b){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x3e'),_0x14067b[_0xf92c('0x1a')]),_0x14067b);dials[_0xf92c('0x3d')](_0x14067b);}catch(_0x186175){utils[_0xf92c('0x16')](util['format'](_0xf92c('0x3e'),_0x14067b[_0xf92c('0x1a')]),_0x186175);}});}
\ No newline at end of file
+var _0x3758=['./calls.controller','./queues.controller','./members.controller','./transfers.controller','connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','[%s][index][devicestatechange]','device','format','debug','[%s][index][agentcalled]','agentcalled','[%s][index][agentringnoanswer]','uniqueid','agentringnoanswer','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','[%s][index][newstate]','newstate','hangup','[%s][index][hangup]','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','[%s][index][varset]','varset','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','[%s][index][dialbegin]','dialbegin','[%s][index][dialend]','dialend','./utils','util','asterisk','username','password','xdr','disabled','./agents.controller'];(function(_0x53f2a0,_0x305d5f){var _0x166d47=function(_0x5bc26e){while(--_0x5bc26e){_0x53f2a0['push'](_0x53f2a0['shift']());}};_0x166d47(++_0x305d5f);}(_0x3758,0x1b1));var _0x8375=function(_0x5929ef,_0xbb2c73){_0x5929ef=_0x5929ef-0x0;var _0x4766ff=_0x3758[_0x5929ef];return _0x4766ff;};var AsteriskManager=require('asterisk-manager');var config=require('../../config/environment');var utils=require(_0x8375('0x0'));var util=require(_0x8375('0x1'));var ami=new AsteriskManager(config[_0x8375('0x2')]['port'],config[_0x8375('0x2')]['ip'],config[_0x8375('0x2')][_0x8375('0x3')],config[_0x8375('0x2')][_0x8375('0x4')],!![]);ami['keepConnected']();if(config[_0x8375('0x5')]&&config[_0x8375('0x5')][_0x8375('0x6')]){utils['info']('XDR\x20DISABLED');}else{var agents=require(_0x8375('0x7'));var calls=require(_0x8375('0x8'));var queues=require(_0x8375('0x9'));var recordings=require('./recordings.controller');var members=require(_0x8375('0xa'));var dials=require('./dials.controller');var transfers=require(_0x8375('0xb'));var core=require('./core.controller');ami['on']('connect',core[_0x8375('0xc')]);ami['on'](_0x8375('0xd'),core[_0x8375('0xd')]);ami['on'](_0x8375('0xe'),core['fullybooted']);ami['on'](_0x8375('0xf'),core[_0x8375('0xf')]);ami['on'](_0x8375('0x10'),core[_0x8375('0x10')]);ami['on'](_0x8375('0x11'),core['managerevent']);ami['on'](_0x8375('0x12'),function(_0xdf31f4){try{utils['debug'](util['format'](_0x8375('0x13'),_0xdf31f4[_0x8375('0x14')]),_0xdf31f4);members[_0x8375('0x12')](_0xdf31f4);}catch(_0x10db5c){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x13'),_0xdf31f4['device']),_0x10db5c);}});ami['on']('agentcalled',function(_0xe79054){try{utils[_0x8375('0x16')](util[_0x8375('0x15')](_0x8375('0x17'),_0xe79054['uniqueid']),_0xe79054);agents[_0x8375('0x18')](_0xe79054);}catch(_0x1aa826){utils['error'](util['format'](_0x8375('0x17'),_0xe79054['uniqueid']),_0x1aa826);}});ami['on']('agentringnoanswer',function(_0x131445){try{utils[_0x8375('0x16')](util[_0x8375('0x15')](_0x8375('0x19'),_0x131445[_0x8375('0x1a')]),_0x131445);agents[_0x8375('0x1b')](_0x131445);}catch(_0x1ee2c1){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x19'),_0x131445[_0x8375('0x1a')]),_0x1ee2c1);}});ami['on']('agentconnect',function(_0x3bfc1c){try{utils[_0x8375('0x16')](util[_0x8375('0x15')]('[%s][index][agentconnect]',_0x3bfc1c[_0x8375('0x1a')]),_0x3bfc1c);agents[_0x8375('0x1c')](_0x3bfc1c);queues[_0x8375('0x1c')](_0x3bfc1c);}catch(_0x4dfdce){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x1d'),_0x3bfc1c[_0x8375('0x1a')]),_0x4dfdce);}});ami['on'](_0x8375('0x1e'),function(_0x2fc8de){try{utils[_0x8375('0x16')](util[_0x8375('0x15')]('[%s][index][agentcomplete]',_0x2fc8de[_0x8375('0x1a')]),_0x2fc8de);agents[_0x8375('0x1e')](_0x2fc8de);queues[_0x8375('0x1e')](_0x2fc8de);members['agentcomplete'](_0x2fc8de);}catch(_0x31f122){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x1f'),_0x2fc8de[_0x8375('0x1a')]),_0x31f122);}});ami['on'](_0x8375('0x20'),function(_0x44947d){try{utils['debug'](util['format'](_0x8375('0x21'),_0x44947d['uniqueid']),_0x44947d);agents[_0x8375('0x20')](_0x44947d);queues[_0x8375('0x20')](_0x44947d);}catch(_0x3a6a88){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x21'),_0x44947d[_0x8375('0x1a')]),_0x3a6a88);}});ami['on'](_0x8375('0x22'),function(_0x50011e){try{utils['debug'](util[_0x8375('0x15')]('[%s][index][queuecallerjoin]',_0x50011e['uniqueid']),_0x50011e);queues['queuecallerjoin'](_0x50011e);recordings[_0x8375('0x22')](_0x50011e);}catch(_0x98f612){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x23'),_0x50011e[_0x8375('0x1a')]),_0x98f612);}});ami['on'](_0x8375('0x24'),function(_0x1d023a){try{utils[_0x8375('0x16')](util[_0x8375('0x15')](_0x8375('0x25'),_0x1d023a[_0x8375('0x1a')]),_0x1d023a);queues[_0x8375('0x24')](_0x1d023a);}catch(_0x11fcf3){utils['error'](util[_0x8375('0x15')](_0x8375('0x25'),_0x1d023a[_0x8375('0x1a')]),_0x11fcf3);}});ami['on'](_0x8375('0x26'),function(_0x115d37){try{utils[_0x8375('0x16')](util['format'](_0x8375('0x27'),_0x115d37['uniqueid']),_0x115d37);queues[_0x8375('0x26')](_0x115d37);calls[_0x8375('0x26')](_0x115d37);}catch(_0x2c318f){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x27'),_0x115d37[_0x8375('0x1a')]),_0x2c318f);}});ami['on'](_0x8375('0x28'),function(_0x8f7083){try{utils[_0x8375('0x16')](util[_0x8375('0x15')](_0x8375('0x29'),_0x8f7083[_0x8375('0x1a')]),_0x8f7083);queues['musiconholdstop'](_0x8f7083);calls['musiconholdstop'](_0x8f7083);}catch(_0x4cd1e4){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x29'),_0x8f7083['uniqueid']),_0x4cd1e4);}});ami['on']('newstate',function(_0x541814){try{utils[_0x8375('0x16')](util[_0x8375('0x15')](_0x8375('0x2a'),_0x541814[_0x8375('0x1a')]),_0x541814);calls[_0x8375('0x2b')](_0x541814);recordings[_0x8375('0x2b')](_0x541814);}catch(_0x2d1635){utils[_0x8375('0xf')](util[_0x8375('0x15')]('[%s][index][newstate]',_0x541814['uniqueid']),_0x2d1635);}});ami['on'](_0x8375('0x2c'),function(_0x15f7e4){try{utils[_0x8375('0x16')](util['format'](_0x8375('0x2d'),_0x15f7e4[_0x8375('0x1a')]),_0x15f7e4);calls['hangup'](_0x15f7e4);recordings[_0x8375('0x2c')](_0x15f7e4);dials[_0x8375('0x2c')](_0x15f7e4);agents['hangup'](_0x15f7e4);queues['hangup'](_0x15f7e4);}catch(_0x3185a1){utils[_0x8375('0xf')](util[_0x8375('0x15')]('[%s][index][hangup]',_0x15f7e4[_0x8375('0x1a')]),_0x3185a1);}});ami['on'](_0x8375('0x2e'),function(_0x350a34){try{utils[_0x8375('0x16')](util[_0x8375('0x15')](_0x8375('0x2f'),_0x350a34[_0x8375('0x1a')]),_0x350a34);members[_0x8375('0x2e')](_0x350a34);}catch(_0x18f415){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x2f'),_0x350a34[_0x8375('0x1a')]),_0x18f415);}});ami['on'](_0x8375('0x30'),function(_0x4917ad){try{utils['debug'](util[_0x8375('0x15')](_0x8375('0x31'),_0x4917ad[_0x8375('0x1a')]),_0x4917ad);queues[_0x8375('0x30')](_0x4917ad);agents[_0x8375('0x30')](_0x4917ad);transfers[_0x8375('0x30')](_0x4917ad);}catch(_0x37f423){utils['error'](util[_0x8375('0x15')]('[%s][index][blindtransfer]',_0x4917ad[_0x8375('0x1a')]),_0x37f423);}});ami['on']('attendedtransfer',function(_0x40f7da){try{utils[_0x8375('0x16')](util[_0x8375('0x15')]('[%s][index][attendedtransfer]',_0x40f7da['origtransfereruniqueid']),_0x40f7da);queues[_0x8375('0x32')](_0x40f7da);transfers[_0x8375('0x32')](_0x40f7da);agents[_0x8375('0x32')](_0x40f7da);calls['attendedtransfer'](_0x40f7da);}catch(_0x22ddb6){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x33'),_0x40f7da[_0x8375('0x34')]),_0x22ddb6);}});ami['on']('varset',function(_0x2059f1){try{utils[_0x8375('0x16')](util['format'](_0x8375('0x35'),_0x2059f1[_0x8375('0x1a')]),_0x2059f1);queues[_0x8375('0x36')](_0x2059f1);recordings[_0x8375('0x36')](_0x2059f1);calls[_0x8375('0x36')](_0x2059f1);dials['varset'](_0x2059f1);}catch(_0x747229){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x35'),_0x2059f1[_0x8375('0x1a')]),_0x747229);}});ami['on'](_0x8375('0x37'),function(_0x43a88e){try{utils['debug'](util[_0x8375('0x15')](_0x8375('0x38'),_0x43a88e[_0x8375('0x1a')]),_0x43a88e);calls[_0x8375('0x37')](_0x43a88e);recordings['newexten'](_0x43a88e);dials[_0x8375('0x37')](_0x43a88e);}catch(_0x59bfc0){utils['error'](util[_0x8375('0x15')](_0x8375('0x38'),_0x43a88e['uniqueid']),_0x59bfc0);}});ami['on'](_0x8375('0x39'),function(_0x5eb39f){try{utils['debug'](util[_0x8375('0x15')](_0x8375('0x3a'),_0x5eb39f[_0x8375('0x1a')]),_0x5eb39f);calls['newchannel'](_0x5eb39f);recordings[_0x8375('0x39')](_0x5eb39f);}catch(_0x18a7d9){utils[_0x8375('0xf')](util[_0x8375('0x15')](_0x8375('0x3a'),_0x5eb39f[_0x8375('0x1a')]),_0x18a7d9);}});ami['on']('dialbegin',function(_0x1b9270){try{utils[_0x8375('0x16')](util['format'](_0x8375('0x3b'),_0x1b9270['uniqueid']),_0x1b9270);dials[_0x8375('0x3c')](_0x1b9270);}catch(_0x5b4cce){utils[_0x8375('0xf')](util[_0x8375('0x15')]('[%s]dialbegin',_0x1b9270[_0x8375('0x1a')]),_0x5b4cce);}});ami['on']('dialend',function(_0x2cefae){try{utils['debug'](util[_0x8375('0x15')](_0x8375('0x3d'),_0x2cefae[_0x8375('0x1a')]),_0x2cefae);dials[_0x8375('0x3e')](_0x2cefae);}catch(_0x577eba){utils[_0x8375('0xf')](util[_0x8375('0x15')]('[%s][index][dialend]',_0x2cefae[_0x8375('0x1a')]),_0x577eba);}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x342b=['membername','type','getUserByInterface','internal','request','CreateMemberReport','getUserByName','split','then','name','error','format','[%s][members][writeDB]','startsWith','[%s][members][devicestatechange]','device','info','state','INUSE','voice','TALKING','now','agent','NOT_INUSE','duration','diffTime','exitAt','enterAt','isNil','debug','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','cdr','[%s][members][cdr]','assign','data1','data3','destination','destinationchannel','source','lodash','./utils','Local/_attended@transfer','Queue:','uniqueid','interface','channel','data2'];(function(_0x1af006,_0xe1b634){var _0x44b8ee=function(_0x3913a2){while(--_0x3913a2){_0x1af006['push'](_0x1af006['shift']());}};_0x44b8ee(++_0xe1b634);}(_0x342b,0xbc));var _0xb342=function(_0x36f92d,_0x53feb4){_0x36f92d=_0x36f92d-0x0;var _0x10e6ce=_0x342b[_0x36f92d];return _0x10e6ce;};'use strict';var _=require(_0xb342('0x0'));var util=require('util');var utils=require(_0xb342('0x1'));var members={};var exclude=[_0xb342('0x2'),_0xb342('0x3')];function writeDB(_0x586739){utils['info'](util['format']('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x586739[_0xb342('0x4')],_0x586739[_0xb342('0x5')],_0x586739[_0xb342('0x6')],_0x586739[_0xb342('0x7')],_0x586739[_0xb342('0x8')],_0x586739[_0xb342('0x9')]));if(_0x586739[_0xb342('0x5')]){utils[_0xb342('0xa')](_0x586739['interface'])['then'](function(_0x320a07){if(_0x320a07){_0x586739[_0xb342('0x8')]=_0x320a07['name'];_0x586739[_0xb342('0xb')]=_0x320a07[_0xb342('0xb')];utils[_0xb342('0xc')](_0xb342('0xd'),_0x586739);}else{utils[_0xb342('0xe')](_0x586739[_0xb342('0x5')][_0xb342('0xf')]('/')[0x1])[_0xb342('0x10')](function(_0x35a698){if(_0x35a698){_0x586739[_0xb342('0x8')]=_0x35a698[_0xb342('0x11')];_0x586739['internal']=_0x35a698[_0xb342('0xb')];utils['request']('CreateMemberReport',_0x586739);}});}})['catch'](function(_0x486d98){utils[_0xb342('0x12')](util[_0xb342('0x13')](_0xb342('0x14'),_0x586739[_0xb342('0x4')]),_0x486d98);});}delete members[_0x586739[_0xb342('0x5')]];}function startsWith(_0x28cfde,_0x17f16a){return _['some'](_0x28cfde,function(_0x435b8c){return _[_0xb342('0x15')](_0x17f16a,_0x435b8c);});}exports['devicestatechange']=function(_0x5ee646){try{utils['debug'](util[_0xb342('0x13')](_0xb342('0x16'),members[_0x5ee646['device']]?members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x4')]:_0x5ee646[_0xb342('0x17')]),_0x5ee646);utils[_0xb342('0x18')](util[_0xb342('0x13')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x5ee646['device']]?members[_0x5ee646[_0xb342('0x17')]]['uniqueid']:_0x5ee646[_0xb342('0x17')],_0x5ee646[_0xb342('0x19')],_0x5ee646[_0xb342('0x17')]));switch(_0x5ee646[_0xb342('0x19')]){case _0xb342('0x1a'):case'BUSY':if(!startsWith(exclude,_0x5ee646[_0xb342('0x17')])){members[_0x5ee646['device']]={'channel':_0xb342('0x1b'),'interface':_0x5ee646['device'],'type':_0xb342('0x1c'),'enterAt':utils[_0xb342('0x1d')](),'role':_0xb342('0x1e')};}break;case _0xb342('0x1f'):if(!_['isNil'](members[_0x5ee646[_0xb342('0x17')]])){members[_0x5ee646['device']]['exitAt']=utils[_0xb342('0x1d')]();members[_0x5ee646['device']][_0xb342('0x20')]=utils[_0xb342('0x21')](members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x22')],members[_0x5ee646['device']][_0xb342('0x23')]);if(members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x4')]){writeDB(members[_0x5ee646[_0xb342('0x17')]]);}}break;default:break;}}catch(_0x4696ac){utils[_0xb342('0x12')](util[_0xb342('0x13')]('[%s][members][devicestatechange]',members[_0x5ee646[_0xb342('0x17')]]?members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x4')]:_0x5ee646['device']),_0x4696ac);}};exports['agentcomplete']=function(_0x5f320d){try{if(!_[_0xb342('0x24')](members[_0x5f320d['interface']])){utils[_0xb342('0x25')](util['format'](_0xb342('0x26'),_0x5f320d[_0xb342('0x4')]),_0x5f320d);utils[_0xb342('0x18')](util[_0xb342('0x13')](_0xb342('0x27'),_0x5f320d['uniqueid'],_0x5f320d[_0xb342('0x5')],_0x5f320d[_0xb342('0x28')]));members[_0x5f320d[_0xb342('0x5')]]=_['assign'](members[_0x5f320d[_0xb342('0x5')]],{'data4':_0x5f320d['queue'],'uniqueid':_0x5f320d[_0xb342('0x4')]});}}catch(_0x670911){utils[_0xb342('0x12')](util[_0xb342('0x13')](_0xb342('0x26'),_0x5f320d[_0xb342('0x4')]),_0x670911);}};exports[_0xb342('0x29')]=function(_0x4aad93){try{utils['debug'](util['format'](_0xb342('0x2a'),_0x4aad93[_0xb342('0x4')]),_0x4aad93);if(_0x4aad93['channel']){var _0x5a9a0f=_0x4aad93[_0xb342('0x6')][_0xb342('0xf')]('-')[0x0];if(!_[_0xb342('0x24')](members[_0x5a9a0f])){members[_0x5a9a0f]=_[_0xb342('0x2b')](members[_0x5a9a0f],{'data1':members[_0x5a9a0f][_0xb342('0x2c')]||_0x4aad93[_0xb342('0x9')],'data2':members[_0x5a9a0f][_0xb342('0x7')]||_0x4aad93['source'],'data3':members[_0x5a9a0f][_0xb342('0x2d')]||_0x4aad93[_0xb342('0x2e')],'uniqueid':members[_0x5a9a0f][_0xb342('0x4')]||_0x4aad93[_0xb342('0x4')]});utils[_0xb342('0x18')](util[_0xb342('0x13')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x4aad93[_0xb342('0x4')],members[_0x5a9a0f][_0xb342('0x2c')],members[_0x5a9a0f][_0xb342('0x7')],members[_0x5a9a0f][_0xb342('0x2d')]));if(members[_0x5a9a0f]['exitAt']){writeDB(members[_0x5a9a0f]);}}}if(_0x4aad93['destinationchannel']){var _0x481b8e=_0x4aad93[_0xb342('0x2f')][_0xb342('0xf')]('-')[0x0];if(!_[_0xb342('0x24')](members[_0x481b8e])){members[_0x481b8e]=_['assign'](members[_0x481b8e],{'data1':members[_0x481b8e][_0xb342('0x2c')]||_0x4aad93[_0xb342('0x9')],'data2':members[_0x481b8e]['data2']||_0x4aad93[_0xb342('0x30')],'data3':members[_0x481b8e][_0xb342('0x2d')]||_0x4aad93[_0xb342('0x2e')],'uniqueid':members[_0x481b8e][_0xb342('0x4')]||_0x4aad93[_0xb342('0x4')]});utils[_0xb342('0x18')](util[_0xb342('0x13')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x4aad93['uniqueid'],members[_0x481b8e][_0xb342('0x2c')],members[_0x481b8e][_0xb342('0x7')],members[_0x481b8e][_0xb342('0x2d')]));if(members[_0x481b8e][_0xb342('0x22')]){writeDB(members[_0x481b8e]);}}}}catch(_0x104ec7){utils[_0xb342('0x12')](util[_0xb342('0x13')](_0xb342('0x2a'),_0x4aad93[_0xb342('0x4')]),_0x104ec7);}};
\ No newline at end of file
+var _0x4b0c=['lodash','./utils','Local/_attended@transfer','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','type','getUserByInterface','membername','name','internal','request','CreateMemberReport','getUserByName','split','then','error','[%s][members][writeDB]','some','startsWith','debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','BUSY','voice','TALKING','agent','NOT_INUSE','isNil','exitAt','now','duration','diffTime','enterAt','agentcomplete','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','assign','queue','[%s][members][agentcomplete]','[%s][members][cdr]','data1','source','data3','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','destination'];(function(_0xdd0313,_0x251c2b){var _0x2bd7e8=function(_0x340f1f){while(--_0x340f1f){_0xdd0313['push'](_0xdd0313['shift']());}};_0x2bd7e8(++_0x251c2b);}(_0x4b0c,0x138));var _0xc4b0=function(_0x2a2317,_0x1fb4cc){_0x2a2317=_0x2a2317-0x0;var _0x48c8fc=_0x4b0c[_0x2a2317];return _0x48c8fc;};'use strict';var _=require(_0xc4b0('0x0'));var util=require('util');var utils=require(_0xc4b0('0x1'));var members={};var exclude=[_0xc4b0('0x2'),'Queue:'];function writeDB(_0x1f7ea5){utils[_0xc4b0('0x3')](util[_0xc4b0('0x4')](_0xc4b0('0x5'),_0x1f7ea5[_0xc4b0('0x6')],_0x1f7ea5[_0xc4b0('0x7')],_0x1f7ea5[_0xc4b0('0x8')],_0x1f7ea5[_0xc4b0('0x9')],_0x1f7ea5['membername'],_0x1f7ea5[_0xc4b0('0xa')]));if(_0x1f7ea5[_0xc4b0('0x7')]){utils[_0xc4b0('0xb')](_0x1f7ea5[_0xc4b0('0x7')])['then'](function(_0x326949){if(_0x326949){_0x1f7ea5[_0xc4b0('0xc')]=_0x326949[_0xc4b0('0xd')];_0x1f7ea5[_0xc4b0('0xe')]=_0x326949[_0xc4b0('0xe')];utils[_0xc4b0('0xf')](_0xc4b0('0x10'),_0x1f7ea5);}else{utils[_0xc4b0('0x11')](_0x1f7ea5[_0xc4b0('0x7')][_0xc4b0('0x12')]('/')[0x1])[_0xc4b0('0x13')](function(_0x517cbd){if(_0x517cbd){_0x1f7ea5[_0xc4b0('0xc')]=_0x517cbd['name'];_0x1f7ea5['internal']=_0x517cbd['internal'];utils['request'](_0xc4b0('0x10'),_0x1f7ea5);}});}})['catch'](function(_0xc464dd){utils[_0xc4b0('0x14')](util['format'](_0xc4b0('0x15'),_0x1f7ea5['uniqueid']),_0xc464dd);});}delete members[_0x1f7ea5[_0xc4b0('0x7')]];}function startsWith(_0x5ea045,_0x3476e0){return _[_0xc4b0('0x16')](_0x5ea045,function(_0x153ef1){return _[_0xc4b0('0x17')](_0x3476e0,_0x153ef1);});}exports['devicestatechange']=function(_0x19aaad){try{utils[_0xc4b0('0x18')](util[_0xc4b0('0x4')](_0xc4b0('0x19'),members[_0x19aaad[_0xc4b0('0x1a')]]?members[_0x19aaad[_0xc4b0('0x1a')]][_0xc4b0('0x6')]:_0x19aaad['device']),_0x19aaad);utils['info'](util[_0xc4b0('0x4')](_0xc4b0('0x1b'),members[_0x19aaad[_0xc4b0('0x1a')]]?members[_0x19aaad['device']][_0xc4b0('0x6')]:_0x19aaad[_0xc4b0('0x1a')],_0x19aaad['state'],_0x19aaad[_0xc4b0('0x1a')]));switch(_0x19aaad[_0xc4b0('0x1c')]){case'INUSE':case _0xc4b0('0x1d'):if(!startsWith(exclude,_0x19aaad[_0xc4b0('0x1a')])){members[_0x19aaad[_0xc4b0('0x1a')]]={'channel':_0xc4b0('0x1e'),'interface':_0x19aaad[_0xc4b0('0x1a')],'type':_0xc4b0('0x1f'),'enterAt':utils['now'](),'role':_0xc4b0('0x20')};}break;case _0xc4b0('0x21'):if(!_[_0xc4b0('0x22')](members[_0x19aaad['device']])){members[_0x19aaad[_0xc4b0('0x1a')]][_0xc4b0('0x23')]=utils[_0xc4b0('0x24')]();members[_0x19aaad[_0xc4b0('0x1a')]][_0xc4b0('0x25')]=utils[_0xc4b0('0x26')](members[_0x19aaad[_0xc4b0('0x1a')]][_0xc4b0('0x23')],members[_0x19aaad[_0xc4b0('0x1a')]][_0xc4b0('0x27')]);if(members[_0x19aaad[_0xc4b0('0x1a')]][_0xc4b0('0x6')]){writeDB(members[_0x19aaad[_0xc4b0('0x1a')]]);}}break;default:break;}}catch(_0x4a02d5){utils[_0xc4b0('0x14')](util[_0xc4b0('0x4')](_0xc4b0('0x19'),members[_0x19aaad[_0xc4b0('0x1a')]]?members[_0x19aaad[_0xc4b0('0x1a')]][_0xc4b0('0x6')]:_0x19aaad[_0xc4b0('0x1a')]),_0x4a02d5);}};exports[_0xc4b0('0x28')]=function(_0x1b1228){try{if(!_[_0xc4b0('0x22')](members[_0x1b1228[_0xc4b0('0x7')]])){utils[_0xc4b0('0x18')](util[_0xc4b0('0x4')]('[%s][members][agentcomplete]',_0x1b1228[_0xc4b0('0x6')]),_0x1b1228);utils[_0xc4b0('0x3')](util['format'](_0xc4b0('0x29'),_0x1b1228[_0xc4b0('0x6')],_0x1b1228['interface'],_0x1b1228['queue']));members[_0x1b1228[_0xc4b0('0x7')]]=_[_0xc4b0('0x2a')](members[_0x1b1228[_0xc4b0('0x7')]],{'data4':_0x1b1228[_0xc4b0('0x2b')],'uniqueid':_0x1b1228[_0xc4b0('0x6')]});}}catch(_0x5cba47){utils[_0xc4b0('0x14')](util['format'](_0xc4b0('0x2c'),_0x1b1228[_0xc4b0('0x6')]),_0x5cba47);}};exports['cdr']=function(_0x2d002d){try{utils[_0xc4b0('0x18')](util[_0xc4b0('0x4')](_0xc4b0('0x2d'),_0x2d002d[_0xc4b0('0x6')]),_0x2d002d);if(_0x2d002d[_0xc4b0('0x8')]){var _0x580c5c=_0x2d002d[_0xc4b0('0x8')][_0xc4b0('0x12')]('-')[0x0];if(!_[_0xc4b0('0x22')](members[_0x580c5c])){members[_0x580c5c]=_[_0xc4b0('0x2a')](members[_0x580c5c],{'data1':members[_0x580c5c][_0xc4b0('0x2e')]||_0x2d002d[_0xc4b0('0xa')],'data2':members[_0x580c5c]['data2']||_0x2d002d[_0xc4b0('0x2f')],'data3':members[_0x580c5c][_0xc4b0('0x30')]||_0x2d002d['destination'],'uniqueid':members[_0x580c5c][_0xc4b0('0x6')]||_0x2d002d['uniqueid']});utils[_0xc4b0('0x3')](util[_0xc4b0('0x4')](_0xc4b0('0x31'),_0x2d002d[_0xc4b0('0x6')],members[_0x580c5c][_0xc4b0('0x2e')],members[_0x580c5c][_0xc4b0('0x9')],members[_0x580c5c][_0xc4b0('0x30')]));if(members[_0x580c5c][_0xc4b0('0x23')]){writeDB(members[_0x580c5c]);}}}if(_0x2d002d[_0xc4b0('0x32')]){var _0x4d809f=_0x2d002d['destinationchannel'][_0xc4b0('0x12')]('-')[0x0];if(!_[_0xc4b0('0x22')](members[_0x4d809f])){members[_0x4d809f]=_[_0xc4b0('0x2a')](members[_0x4d809f],{'data1':members[_0x4d809f][_0xc4b0('0x2e')]||_0x2d002d[_0xc4b0('0xa')],'data2':members[_0x4d809f][_0xc4b0('0x9')]||_0x2d002d[_0xc4b0('0x2f')],'data3':members[_0x4d809f][_0xc4b0('0x30')]||_0x2d002d[_0xc4b0('0x33')],'uniqueid':members[_0x4d809f][_0xc4b0('0x6')]||_0x2d002d[_0xc4b0('0x6')]});utils[_0xc4b0('0x3')](util['format'](_0xc4b0('0x31'),_0x2d002d[_0xc4b0('0x6')],members[_0x4d809f][_0xc4b0('0x2e')],members[_0x4d809f]['data2'],members[_0x4d809f][_0xc4b0('0x30')]));if(members[_0x4d809f][_0xc4b0('0x23')]){writeDB(members[_0x4d809f]);}}}}catch(_0x52b41b){utils[_0xc4b0('0x14')](util['format']('[%s][members][cdr]',_0x2d002d[_0xc4b0('0x6')]),_0x52b41b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32b0=['[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','secondtransfererexten','ATTENDED','ATTENDEDTRANSFER','transfertargetlinkedid','transfertargetuniqueid','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','musiconholdstart','[%s][queues][musiconholdstart]','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','musiconholdstartAt','musiconholdstop','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','[%s][queues][musiconholdstop]','lodash','info','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','queue','queuecallerexitreason','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','queuecallerjoin','format','[%s][queues][queuecallerjoin]','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','assign','now','error','hangup','isNil','debug','[%s][queues][hangup]','queuecallerleaveAt','queuecallerexit','queuecallercompleteAt','COMPLETEDBYAGENT','[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s','name','queuecallerenterreason','varset','[%s][queues][varset]','variable','value','toUpperCase','queuecallerexitAt','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','queueposition','queuecallerabandon','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','[%s][queues][queuecallerabandon]','queuecallerabandonAt','ABANDONED','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinename','holdtime','diffTime','queuecallerjoinAt','count','connectedlinenum','agentconnect','[%s][queues][agentconnect]','membername','destaccountcode','lastAssignedTo','agentcomplete','assigned','queuecallercomplete','reason','transfer','TRANSFER','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','[%s][queues][agentcomplete]','transfereeuniqueid','transfertype','BLIND','transferexten','extension','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','[%s][queues][blindtransfer]','attendedtransfer','origtransfereruniqueid','origtransfererlinkedid','secondtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','origtransfererexten','transferuniqueid','transfereelinkedid','clone','calleridnum','calleridname'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x32b0,0x77));var _0x032b=function(_0x6cdd46,_0x15d4cd){_0x6cdd46=_0x6cdd46-0x0;var _0x2c6fc7=_0x32b0[_0x6cdd46];return _0x2c6fc7;};'use strict';var _=require(_0x032b('0x0'));var util=require('util');var utils=require('./utils');var queues={};function writeDB(_0x1af794){utils[_0x032b('0x1')](util['format'](_0x032b('0x2'),_0x1af794[_0x032b('0x3')],_0x1af794['channel'],_0x1af794[_0x032b('0x4')],_0x1af794['lastAssignedTo'],_0x1af794['calleridnum'],_0x1af794['accountcode'],_0x1af794[_0x032b('0x5')]));if(_0x1af794[_0x032b('0x4')]){utils[_0x032b('0x6')](_0x1af794[_0x032b('0x4')])[_0x032b('0x7')](function(_0x2894d1){if(_0x2894d1){_0x1af794[_0x032b('0x8')]=_0x2894d1['type'];}utils[_0x032b('0x9')](_0x032b('0xa'),_0x1af794);});}else{utils['request'](_0x032b('0xa'),_0x1af794);}if(_0x1af794[_0x032b('0xb')]){delete queues[_0x1af794[_0x032b('0xb')]];}else{delete queues[_0x1af794[_0x032b('0x3')]];}}exports[_0x032b('0xc')]=function(_0x3662af){try{utils['debug'](util[_0x032b('0xd')](_0x032b('0xe'),_0x3662af[_0x032b('0x3')]),_0x3662af);utils[_0x032b('0x1')](util['format'](_0x032b('0xf'),_0x3662af[_0x032b('0x3')],_0x3662af[_0x032b('0x4')],_0x3662af[_0x032b('0x10')]));queues[_0x3662af['uniqueid']]=_[_0x032b('0x11')](_0x3662af,{'originalposition':_0x3662af[_0x032b('0x10')],'queuecallerjoinAt':utils[_0x032b('0x12')](),'mohtime':0x0});}catch(_0x224197){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0xe'),_0x3662af[_0x032b('0x3')]),_0x224197);}};exports[_0x032b('0x14')]=function(_0x10b9d4){try{if(!_[_0x032b('0x15')](queues[_0x10b9d4[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x17'),_0x10b9d4[_0x032b('0x3')]),_0x10b9d4);if(queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x18')]){if(!queues[_0x10b9d4[_0x032b('0x3')]]['queuecallerabandon']&&!queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x19')]){queues[_0x10b9d4['uniqueid']]['queuecallercomplete']=!![];queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x1a')]=utils[_0x032b('0x12')]();queues[_0x10b9d4[_0x032b('0x3')]]['queuecallerexitreason']=_0x032b('0x1b');}utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x1c'),_0x10b9d4[_0x032b('0x3')],queues[_0x10b9d4['uniqueid']][_0x032b('0x1d')],queues[_0x10b9d4['uniqueid']][_0x032b('0x5')]));writeDB(queues[_0x10b9d4['uniqueid']]);}else if(queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0xb')]){utils[_0x032b('0x1')](util['format']('[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s',_0x10b9d4[_0x032b('0x3')],queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x1d')],queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0xb')]));queues[queues[_0x10b9d4['uniqueid']][_0x032b('0xb')]]=queues[_0x10b9d4[_0x032b('0x3')]];queues[queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0xb')]][_0x032b('0x1e')]=0x2;delete queues[_0x10b9d4[_0x032b('0x3')]];}}}catch(_0x90a06b){utils[_0x032b('0x13')](util[_0x032b('0xd')]('[%s][queues][hangup]',_0x10b9d4[_0x032b('0x3')]),_0x90a06b);}};exports[_0x032b('0x1f')]=function(_0x323729){try{utils['debug'](util['format'](_0x032b('0x20'),_0x323729[_0x032b('0x3')]),_0x323729);if(!_[_0x032b('0x15')](_0x323729[_0x032b('0x21')]['queuestatus'])&&_0x323729[_0x032b('0x22')][_0x032b('0x23')]()!=='CONTINUE'){if(!_[_0x032b('0x15')](queues[_0x323729[_0x032b('0x3')]])){queues[_0x323729[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x323729[_0x032b('0x3')]]['queuecallerabandonAt']=null;queues[_0x323729[_0x032b('0x3')]]['queuecallerexit']=!![];queues[_0x323729[_0x032b('0x3')]][_0x032b('0x24')]=utils['now']();queues[_0x323729['uniqueid']][_0x032b('0x5')]=_0x323729[_0x032b('0x22')][_0x032b('0x23')]();utils[_0x032b('0x1')](util['format'](_0x032b('0x25'),_0x323729['uniqueid'],queues[_0x323729['uniqueid']][_0x032b('0x1d')],_0x323729[_0x032b('0x22')],queues[_0x323729['uniqueid']][_0x032b('0x5')]));writeDB(queues[_0x323729[_0x032b('0x3')]]);}}else if(!_[_0x032b('0x15')](_0x323729[_0x032b('0x21')][_0x032b('0x26')])){if(!_[_0x032b('0x15')](queues[_0x323729[_0x032b('0x3')]])&&!queues[_0x323729[_0x032b('0x3')]][_0x032b('0x27')]){queues[_0x323729['uniqueid']][_0x032b('0x27')]=![];queues[_0x323729[_0x032b('0x3')]]['queuecallerabandonAt']=null;queues[_0x323729[_0x032b('0x3')]]['queuecallerexit']=!![];queues[_0x323729[_0x032b('0x3')]]['queuecallerexitAt']=utils[_0x032b('0x12')]();queues[_0x323729[_0x032b('0x3')]][_0x032b('0x5')]='EXITWITHKEY';utils['info'](util['format'](_0x032b('0x28'),_0x323729['uniqueid'],queues[_0x323729[_0x032b('0x3')]][_0x032b('0x1d')],_0x323729[_0x032b('0x22')],queues[_0x323729[_0x032b('0x3')]][_0x032b('0x5')]));}}}catch(_0x4a6a68){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x20'),_0x323729[_0x032b('0x3')]),_0x4a6a68);}};exports['queuecallerabandon']=function(_0x1fe18f){try{if(!_[_0x032b('0x15')](queues[_0x1fe18f[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x29'),_0x1fe18f['uniqueid']),_0x1fe18f);queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x19')]=![];queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x24')]=null;queues[_0x1fe18f[_0x032b('0x3')]]['queuecallerabandon']=!![];queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x2a')]=utils[_0x032b('0x12')]();queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x5')]=_0x032b('0x2b');utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x2c'),_0x1fe18f[_0x032b('0x3')],queues[_0x1fe18f['uniqueid']]['name'],queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x5')]));}}catch(_0x19cb51){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x29'),_0x1fe18f['uniqueid']),_0x19cb51);}};exports[_0x032b('0x2d')]=function(_0x3942a7){try{if(!_['isNil'](queues[_0x3942a7['uniqueid']])){utils[_0x032b('0x16')](util['format']('[%s][queues][queuecallerleave]',_0x3942a7['uniqueid']),_0x3942a7);utils['info'](util[_0x032b('0xd')](_0x032b('0x2e'),_0x3942a7[_0x032b('0x3')],queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x1d')],_0x3942a7['connectedlinenum'],_0x3942a7[_0x032b('0x2f')]));queues[_0x3942a7[_0x032b('0x3')]]['queuecallerleave']=!![];queues[_0x3942a7[_0x032b('0x3')]]['queuecallerleaveAt']=utils['now']();queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x30')]=utils[_0x032b('0x31')](queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x18')],queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x32')]);queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x10')]=_0x3942a7[_0x032b('0x10')];queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x33')]=_0x3942a7[_0x032b('0x33')];queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x34')]=_0x3942a7[_0x032b('0x34')];queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x2f')]=_0x3942a7[_0x032b('0x2f')];}}catch(_0x2ec2e9){utils['error'](util[_0x032b('0xd')]('[%s][queues][queuecallerleave]',_0x3942a7[_0x032b('0x3')]),_0x2ec2e9);}};exports[_0x032b('0x35')]=function(_0x2b0808){try{if(!_['isNil'](queues[_0x2b0808[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x36'),_0x2b0808[_0x032b('0x3')]),_0x2b0808);utils[_0x032b('0x1')](util[_0x032b('0xd')]('[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s',_0x2b0808[_0x032b('0x3')],queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x1d')],_0x2b0808[_0x032b('0x37')],_0x2b0808[_0x032b('0x38')]));queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x27')]=![];queues[_0x2b0808[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x2a')]=null;queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x19')]=![];queues[_0x2b0808[_0x032b('0x3')]]['queuecallerexitreason']=null;queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x24')]=null;queues[_0x2b0808[_0x032b('0x3')]]['assigned']=!![];queues[_0x2b0808['uniqueid']]['accountcode']=_0x2b0808['destaccountcode'];queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x39')]=_0x2b0808[_0x032b('0x37')];}}catch(_0x38621b){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x36'),_0x2b0808[_0x032b('0x3')]),_0x38621b);}};exports[_0x032b('0x3a')]=function(_0x23b13e){try{if(!_[_0x032b('0x15')](queues[_0x23b13e[_0x032b('0x3')]])){if(queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x18')]){utils[_0x032b('0x16')](util['format']('[%s][queues][agentcomplete]',_0x23b13e[_0x032b('0x3')]),_0x23b13e);queues[_0x23b13e[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x23b13e[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x2a')]=null;queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x19')]=![];queues[_0x23b13e[_0x032b('0x3')]]['queuecallerexitAt']=null;queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x3b')]=!![];queues[_0x23b13e['uniqueid']][_0x032b('0x39')]=_0x23b13e[_0x032b('0x37')];queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x3c')]=!![];queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x1a')]=utils[_0x032b('0x12')]();if(_0x23b13e[_0x032b('0x3d')]==_0x032b('0x3e')){if(!queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x3e')]){queues[_0x23b13e['uniqueid']][_0x032b('0x5')]=_0x032b('0x3f');}}else{queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x5')]='COMPLETEDBY'+_0x23b13e[_0x032b('0x3d')]['toUpperCase']();}utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x40'),_0x23b13e[_0x032b('0x3')],queues[_0x23b13e[_0x032b('0x3')]]['name'],_0x23b13e[_0x032b('0x37')],queues[_0x23b13e['uniqueid']]['queuecallerexitreason']));writeDB(queues[_0x23b13e[_0x032b('0x3')]]);}}}catch(_0x42c163){utils[_0x032b('0x13')](util['format'](_0x032b('0x41'),_0x23b13e[_0x032b('0x3')]),_0x42c163);}};exports['blindtransfer']=function(_0x69f18){try{if(!_[_0x032b('0x15')](queues[_0x69f18['transfereeuniqueid']])){utils['debug'](util[_0x032b('0xd')]('[%s][queues][blindtransfer]',_0x69f18[_0x032b('0x3')]),_0x69f18);queues[_0x69f18[_0x032b('0x42')]]['transfer']=!![];queues[_0x69f18[_0x032b('0x42')]][_0x032b('0x43')]=_0x032b('0x44');queues[_0x69f18['transfereeuniqueid']][_0x032b('0x45')]=_0x69f18[_0x032b('0x46')];queues[_0x69f18[_0x032b('0x42')]]['transferuniqueid']=_0x69f18[_0x032b('0x42')];queues[_0x69f18[_0x032b('0x42')]]['queuecallerexitreason']=_0x032b('0x47');utils['info'](util[_0x032b('0xd')](_0x032b('0x48'),_0x69f18[_0x032b('0x3')],queues[_0x69f18[_0x032b('0x42')]][_0x032b('0x1d')],_0x69f18[_0x032b('0x42')],_0x69f18[_0x032b('0x46')]));}}catch(_0x109948){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x49'),_0x69f18['uniqueid']),_0x109948);}};exports[_0x032b('0x4a')]=function(_0x3db1ca){try{utils[_0x032b('0x16')](util['format']('[%s][queues][attendedtransfer]',_0x3db1ca[_0x032b('0x4b')]),_0x3db1ca);if(_0x3db1ca[_0x032b('0x4b')]==_0x3db1ca[_0x032b('0x4c')]){if(!_['isNil'](queues[_0x3db1ca[_0x032b('0x4d')]])){utils[_0x032b('0x1')](util['format'](_0x032b('0x4e'),_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x1d')],_0x3db1ca[_0x032b('0x4f')]));queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x3e')]=!![];queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x43')]='ATTENDED';queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x45')]=_0x3db1ca[_0x032b('0x4f')];queues[_0x3db1ca['secondtransfererlinkedid']][_0x032b('0x50')]=_0x3db1ca['origtransfereruniqueid'];queues[_0x3db1ca['secondtransfererlinkedid']][_0x032b('0x5')]='ATTENDEDTRANSFER';}if(!_[_0x032b('0x15')](queues[_0x3db1ca[_0x032b('0x4c')]])){if(_0x3db1ca[_0x032b('0x51')]&&queues[_0x3db1ca[_0x032b('0x51')]]){queues[_0x3db1ca[_0x032b('0x51')]]['queuecallerenterreason']=0x1;queues[_0x3db1ca[_0x032b('0x42')]]=_[_0x032b('0x52')](queues[_0x3db1ca[_0x032b('0x51')]]);queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0xb')]=_0x3db1ca['transfertargetuniqueid'];queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x1e')]=0x2;queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x53')]=queues[_0x3db1ca['secondtransfererlinkedid']]['calleridnum'];queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x54')]=queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x54')];queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x32')]=utils['now']();queues[_0x3db1ca['transfereeuniqueid']]['queuecallerleaveAt']=utils[_0x032b('0x12')]();queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x30')]=0x0;queues[_0x3db1ca[_0x032b('0x42')]]['mohtime']=0x0;utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x55'),_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x1d')],queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x53')],queues[_0x3db1ca['transfereeuniqueid']][_0x032b('0x54')]));}else{utils[_0x032b('0x1')](util['format'](_0x032b('0x56'),_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x1d')],_0x3db1ca[_0x032b('0x4d')]));queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0xb')]=_0x3db1ca[_0x032b('0x4d')];}}}else if(_0x3db1ca[_0x032b('0x57')]==_0x3db1ca[_0x032b('0x4d')]){if(!_['isNil'](queues[_0x3db1ca['origtransfererlinkedid']])){utils[_0x032b('0x1')](util[_0x032b('0xd')]('[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER',_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x1d')],_0x3db1ca[_0x032b('0x57')],_0x3db1ca[_0x032b('0x58')]));queues[_0x3db1ca[_0x032b('0x4c')]]['transfer']=!![];queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x43')]=_0x032b('0x59');queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x45')]=_0x3db1ca['secondtransfererexten'];queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x50')]=_0x3db1ca[_0x032b('0x57')];queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x5')]=_0x032b('0x5a');}if(!_['isNil'](queues[_0x3db1ca[_0x032b('0x4d')]])){if(_0x3db1ca[_0x032b('0x5b')]&&queues[_0x3db1ca[_0x032b('0x5b')]]){queues[_0x3db1ca[_0x032b('0x5b')]][_0x032b('0x1e')]=0x1;queues[_0x3db1ca[_0x032b('0x5c')]]=_['clone'](queues[_0x3db1ca['transfertargetlinkedid']]);queues[_0x3db1ca[_0x032b('0x5c')]]['transfereduniqueid']=_0x3db1ca[_0x032b('0x5c')];queues[_0x3db1ca['transfertargetuniqueid']][_0x032b('0x1e')]=0x2;queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x53')]=queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x53')];queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x54')]=queues[_0x3db1ca['origtransfererlinkedid']][_0x032b('0x54')];queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x32')]=utils['now']();queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x18')]=utils['now']();queues[_0x3db1ca['transfertargetuniqueid']][_0x032b('0x30')]=0x0;queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x5d')]=0x0;utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x5e'),_0x3db1ca['origtransfereruniqueid'],queues[_0x3db1ca['transfertargetuniqueid']][_0x032b('0x1d')],queues[_0x3db1ca[_0x032b('0x5c')]]['transfereduniqueid'],queues[_0x3db1ca[_0x032b('0x5c')]]['calleridnum'],queues[_0x3db1ca['transfertargetuniqueid']]['calleridname']));}else{utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x56'),_0x3db1ca['origtransfereruniqueid'],queues[_0x3db1ca[_0x032b('0x4d')]]['name'],_0x3db1ca[_0x032b('0x4c')]));queues[_0x3db1ca[_0x032b('0x4d')]]['transfereduniqueid']=_0x3db1ca[_0x032b('0x4c')];}}}}catch(_0x1a71b1){utils[_0x032b('0x13')](util['format']('[%s][queues][attendedtransfer]',_0x3db1ca[_0x032b('0x4b')]),_0x1a71b1);}};exports[_0x032b('0x5f')]=function(_0x31eb38){try{if(!_['isNil'](queues[_0x31eb38[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x60'),_0x31eb38[_0x032b('0x3')]),_0x31eb38);queues[_0x31eb38['uniqueid']]['musiconholdstartAt']=utils['now']();utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x61'),_0x31eb38[_0x032b('0x3')],queues[_0x31eb38['uniqueid']][_0x032b('0x1d')],queues[_0x31eb38[_0x032b('0x3')]][_0x032b('0x62')]));}}catch(_0x6cc4c4){utils[_0x032b('0x13')](util['format'](_0x032b('0x60'),_0x31eb38[_0x032b('0x3')]),_0x6cc4c4);}};exports[_0x032b('0x63')]=function(_0x239fb3){try{if(!_['isNil'](queues[_0x239fb3[_0x032b('0x3')]])){if(!_['isNil'](queues[_0x239fb3['uniqueid']][_0x032b('0x62')])){utils[_0x032b('0x16')](util[_0x032b('0xd')]('[%s][queues][musiconholdstop]',_0x239fb3[_0x032b('0x3')]),_0x239fb3);queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x5d')]+=utils[_0x032b('0x31')](utils[_0x032b('0x12')](),queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x62')]);utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x64'),_0x239fb3['uniqueid'],queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x1d')],queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x5d')]));delete queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x62')];}}}catch(_0x54ea85){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x65'),_0x239fb3[_0x032b('0x3')]),_0x54ea85);}};
\ No newline at end of file
+var _0xa925=['connectedlinenum','connectedlinename','queuecallerjoinAt','agentconnect','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','destaccountcode','lastAssignedTo','agentcomplete','[%s][queues][agentcomplete]','assigned','reason','transfer','TRANSFER','COMPLETEDBY','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','blindtransfer','transfereeuniqueid','BLIND','transferexten','extension','transferuniqueid','[%s][queues][blindtransfer]','attendedtransfer','[%s][queues][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererlinkedid','ATTENDEDTRANSFER','transfereelinkedid','clone','transfertargetuniqueid','calleridname','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','transfertargetlinkedid','holdtime','musiconholdstart','[%s][queues][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][queues][musiconholdstop]','diffTime','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','./utils','info','format','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','calleridnum','accountcode','queuecallerexitreason','queue','then','type','CreateVoiceQueueReport','transfereduniqueid','debug','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','uniqueid','position','assign','now','error','[%s][queues][queuecallerjoin]','isNil','queuecallerleaveAt','queuecallerabandon','queuecallercomplete','queuecallercompleteAt','name','[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s','queuecallerenterreason','[%s][queues][hangup]','varset','[%s][queues][varset]','variable','value','CONTINUE','queuecallerexit','queuecallerexitAt','toUpperCase','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','queueposition','queuecallerabandonAt','EXITWITHKEY','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','[%s][queues][queuecallerabandon]','ABANDONED','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s'];(function(_0x5292d2,_0x13aa6c){var _0x1eb1c5=function(_0x5dc369){while(--_0x5dc369){_0x5292d2['push'](_0x5292d2['shift']());}};_0x1eb1c5(++_0x13aa6c);}(_0xa925,0x158));var _0x5a92=function(_0x1c8c28,_0x3ee093){_0x1c8c28=_0x1c8c28-0x0;var _0x1f59b4=_0xa925[_0x1c8c28];return _0x1f59b4;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0x5a92('0x0'));var queues={};function writeDB(_0x1e3015){utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0x3'),_0x1e3015['uniqueid'],_0x1e3015['channel'],_0x1e3015['queue'],_0x1e3015['lastAssignedTo'],_0x1e3015[_0x5a92('0x4')],_0x1e3015[_0x5a92('0x5')],_0x1e3015[_0x5a92('0x6')]));if(_0x1e3015[_0x5a92('0x7')]){utils['getVoiceQueueByName'](_0x1e3015['queue'])[_0x5a92('0x8')](function(_0x3d4e84){if(_0x3d4e84){_0x1e3015['type']=_0x3d4e84[_0x5a92('0x9')];}utils['request'](_0x5a92('0xa'),_0x1e3015);});}else{utils['request'](_0x5a92('0xa'),_0x1e3015);}if(_0x1e3015['transfereduniqueid']){delete queues[_0x1e3015[_0x5a92('0xb')]];}else{delete queues[_0x1e3015['uniqueid']];}}exports['queuecallerjoin']=function(_0x5b85f3){try{utils[_0x5a92('0xc')](util[_0x5a92('0x2')]('[%s][queues][queuecallerjoin]',_0x5b85f3['uniqueid']),_0x5b85f3);utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0xd'),_0x5b85f3[_0x5a92('0xe')],_0x5b85f3['queue'],_0x5b85f3[_0x5a92('0xf')]));queues[_0x5b85f3[_0x5a92('0xe')]]=_[_0x5a92('0x10')](_0x5b85f3,{'originalposition':_0x5b85f3[_0x5a92('0xf')],'queuecallerjoinAt':utils[_0x5a92('0x11')](),'mohtime':0x0});}catch(_0x3588f9){utils[_0x5a92('0x12')](util[_0x5a92('0x2')](_0x5a92('0x13'),_0x5b85f3[_0x5a92('0xe')]),_0x3588f9);}};exports['hangup']=function(_0x69a1ef){try{if(!_[_0x5a92('0x14')](queues[_0x69a1ef[_0x5a92('0xe')]])){utils[_0x5a92('0xc')](util[_0x5a92('0x2')]('[%s][queues][hangup]',_0x69a1ef[_0x5a92('0xe')]),_0x69a1ef);if(queues[_0x69a1ef['uniqueid']][_0x5a92('0x15')]){if(!queues[_0x69a1ef[_0x5a92('0xe')]][_0x5a92('0x16')]&&!queues[_0x69a1ef[_0x5a92('0xe')]]['queuecallerexit']){queues[_0x69a1ef['uniqueid']][_0x5a92('0x17')]=!![];queues[_0x69a1ef['uniqueid']][_0x5a92('0x18')]=utils[_0x5a92('0x11')]();queues[_0x69a1ef[_0x5a92('0xe')]]['queuecallerexitreason']='COMPLETEDBYAGENT';}utils[_0x5a92('0x1')](util[_0x5a92('0x2')]('[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s',_0x69a1ef[_0x5a92('0xe')],queues[_0x69a1ef[_0x5a92('0xe')]][_0x5a92('0x19')],queues[_0x69a1ef['uniqueid']]['queuecallerexitreason']));writeDB(queues[_0x69a1ef['uniqueid']]);}else if(queues[_0x69a1ef[_0x5a92('0xe')]][_0x5a92('0xb')]){utils['info'](util['format'](_0x5a92('0x1a'),_0x69a1ef[_0x5a92('0xe')],queues[_0x69a1ef[_0x5a92('0xe')]]['name'],queues[_0x69a1ef[_0x5a92('0xe')]][_0x5a92('0xb')]));queues[queues[_0x69a1ef[_0x5a92('0xe')]][_0x5a92('0xb')]]=queues[_0x69a1ef[_0x5a92('0xe')]];queues[queues[_0x69a1ef[_0x5a92('0xe')]][_0x5a92('0xb')]][_0x5a92('0x1b')]=0x2;delete queues[_0x69a1ef[_0x5a92('0xe')]];}}}catch(_0x3cd954){utils[_0x5a92('0x12')](util[_0x5a92('0x2')](_0x5a92('0x1c'),_0x69a1ef[_0x5a92('0xe')]),_0x3cd954);}};exports[_0x5a92('0x1d')]=function(_0x711335){try{utils['debug'](util[_0x5a92('0x2')](_0x5a92('0x1e'),_0x711335[_0x5a92('0xe')]),_0x711335);if(!_[_0x5a92('0x14')](_0x711335[_0x5a92('0x1f')]['queuestatus'])&&_0x711335[_0x5a92('0x20')]['toUpperCase']()!==_0x5a92('0x21')){if(!_[_0x5a92('0x14')](queues[_0x711335['uniqueid']])){queues[_0x711335['uniqueid']][_0x5a92('0x16')]=![];queues[_0x711335[_0x5a92('0xe')]]['queuecallerabandonAt']=null;queues[_0x711335[_0x5a92('0xe')]][_0x5a92('0x22')]=!![];queues[_0x711335[_0x5a92('0xe')]][_0x5a92('0x23')]=utils[_0x5a92('0x11')]();queues[_0x711335['uniqueid']][_0x5a92('0x6')]=_0x711335[_0x5a92('0x20')][_0x5a92('0x24')]();utils['info'](util[_0x5a92('0x2')](_0x5a92('0x25'),_0x711335[_0x5a92('0xe')],queues[_0x711335['uniqueid']][_0x5a92('0x19')],_0x711335[_0x5a92('0x20')],queues[_0x711335[_0x5a92('0xe')]][_0x5a92('0x6')]));writeDB(queues[_0x711335['uniqueid']]);}}else if(!_[_0x5a92('0x14')](_0x711335[_0x5a92('0x1f')][_0x5a92('0x26')])){if(!_[_0x5a92('0x14')](queues[_0x711335[_0x5a92('0xe')]])&&!queues[_0x711335[_0x5a92('0xe')]][_0x5a92('0x16')]){queues[_0x711335['uniqueid']][_0x5a92('0x16')]=![];queues[_0x711335[_0x5a92('0xe')]][_0x5a92('0x27')]=null;queues[_0x711335[_0x5a92('0xe')]]['queuecallerexit']=!![];queues[_0x711335[_0x5a92('0xe')]][_0x5a92('0x23')]=utils[_0x5a92('0x11')]();queues[_0x711335[_0x5a92('0xe')]][_0x5a92('0x6')]=_0x5a92('0x28');utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0x29'),_0x711335['uniqueid'],queues[_0x711335['uniqueid']][_0x5a92('0x19')],_0x711335[_0x5a92('0x20')],queues[_0x711335[_0x5a92('0xe')]]['queuecallerexitreason']));}}}catch(_0xd3ccb1){utils['error'](util['format'](_0x5a92('0x1e'),_0x711335[_0x5a92('0xe')]),_0xd3ccb1);}};exports[_0x5a92('0x16')]=function(_0x103f3b){try{if(!_['isNil'](queues[_0x103f3b['uniqueid']])){utils[_0x5a92('0xc')](util[_0x5a92('0x2')](_0x5a92('0x2a'),_0x103f3b[_0x5a92('0xe')]),_0x103f3b);queues[_0x103f3b['uniqueid']][_0x5a92('0x22')]=![];queues[_0x103f3b[_0x5a92('0xe')]][_0x5a92('0x23')]=null;queues[_0x103f3b['uniqueid']][_0x5a92('0x16')]=!![];queues[_0x103f3b['uniqueid']][_0x5a92('0x27')]=utils[_0x5a92('0x11')]();queues[_0x103f3b['uniqueid']][_0x5a92('0x6')]=_0x5a92('0x2b');utils[_0x5a92('0x1')](util['format'](_0x5a92('0x2c'),_0x103f3b['uniqueid'],queues[_0x103f3b[_0x5a92('0xe')]]['name'],queues[_0x103f3b['uniqueid']][_0x5a92('0x6')]));}}catch(_0x153072){utils[_0x5a92('0x12')](util[_0x5a92('0x2')](_0x5a92('0x2a'),_0x103f3b[_0x5a92('0xe')]),_0x153072);}};exports[_0x5a92('0x2d')]=function(_0x1c4b71){try{if(!_[_0x5a92('0x14')](queues[_0x1c4b71[_0x5a92('0xe')]])){utils[_0x5a92('0xc')](util['format'](_0x5a92('0x2e'),_0x1c4b71[_0x5a92('0xe')]),_0x1c4b71);utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0x2f'),_0x1c4b71[_0x5a92('0xe')],queues[_0x1c4b71[_0x5a92('0xe')]][_0x5a92('0x19')],_0x1c4b71[_0x5a92('0x30')],_0x1c4b71[_0x5a92('0x31')]));queues[_0x1c4b71['uniqueid']][_0x5a92('0x2d')]=!![];queues[_0x1c4b71[_0x5a92('0xe')]][_0x5a92('0x15')]=utils[_0x5a92('0x11')]();queues[_0x1c4b71[_0x5a92('0xe')]]['holdtime']=utils['diffTime'](queues[_0x1c4b71[_0x5a92('0xe')]][_0x5a92('0x15')],queues[_0x1c4b71[_0x5a92('0xe')]][_0x5a92('0x32')]);queues[_0x1c4b71[_0x5a92('0xe')]][_0x5a92('0xf')]=_0x1c4b71[_0x5a92('0xf')];queues[_0x1c4b71[_0x5a92('0xe')]]['count']=_0x1c4b71['count'];queues[_0x1c4b71[_0x5a92('0xe')]][_0x5a92('0x30')]=_0x1c4b71[_0x5a92('0x30')];queues[_0x1c4b71['uniqueid']]['connectedlinename']=_0x1c4b71[_0x5a92('0x31')];}}catch(_0x2f0522){utils[_0x5a92('0x12')](util[_0x5a92('0x2')](_0x5a92('0x2e'),_0x1c4b71['uniqueid']),_0x2f0522);}};exports[_0x5a92('0x33')]=function(_0x19eb4e){try{if(!_['isNil'](queues[_0x19eb4e[_0x5a92('0xe')]])){utils[_0x5a92('0xc')](util[_0x5a92('0x2')](_0x5a92('0x34'),_0x19eb4e[_0x5a92('0xe')]),_0x19eb4e);utils['info'](util[_0x5a92('0x2')](_0x5a92('0x35'),_0x19eb4e[_0x5a92('0xe')],queues[_0x19eb4e[_0x5a92('0xe')]][_0x5a92('0x19')],_0x19eb4e[_0x5a92('0x36')],_0x19eb4e[_0x5a92('0x37')]));queues[_0x19eb4e[_0x5a92('0xe')]][_0x5a92('0x16')]=![];queues[_0x19eb4e[_0x5a92('0xe')]][_0x5a92('0x16')]=![];queues[_0x19eb4e[_0x5a92('0xe')]][_0x5a92('0x27')]=null;queues[_0x19eb4e['uniqueid']]['queuecallerexit']=![];queues[_0x19eb4e[_0x5a92('0xe')]][_0x5a92('0x6')]=null;queues[_0x19eb4e[_0x5a92('0xe')]]['queuecallerexitAt']=null;queues[_0x19eb4e['uniqueid']]['assigned']=!![];queues[_0x19eb4e[_0x5a92('0xe')]]['accountcode']=_0x19eb4e[_0x5a92('0x37')];queues[_0x19eb4e[_0x5a92('0xe')]][_0x5a92('0x38')]=_0x19eb4e['membername'];}}catch(_0x283c72){utils[_0x5a92('0x12')](util[_0x5a92('0x2')](_0x5a92('0x34'),_0x19eb4e[_0x5a92('0xe')]),_0x283c72);}};exports[_0x5a92('0x39')]=function(_0xf4a311){try{if(!_[_0x5a92('0x14')](queues[_0xf4a311[_0x5a92('0xe')]])){if(queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x15')]){utils[_0x5a92('0xc')](util[_0x5a92('0x2')](_0x5a92('0x3a'),_0xf4a311['uniqueid']),_0xf4a311);queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x16')]=![];queues[_0xf4a311['uniqueid']][_0x5a92('0x16')]=![];queues[_0xf4a311[_0x5a92('0xe')]]['queuecallerabandonAt']=null;queues[_0xf4a311[_0x5a92('0xe')]]['queuecallerexit']=![];queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x23')]=null;queues[_0xf4a311['uniqueid']][_0x5a92('0x3b')]=!![];queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x38')]=_0xf4a311[_0x5a92('0x36')];queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x17')]=!![];queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x18')]=utils[_0x5a92('0x11')]();if(_0xf4a311[_0x5a92('0x3c')]==_0x5a92('0x3d')){if(!queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x3d')]){queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x6')]=_0x5a92('0x3e');}}else{queues[_0xf4a311[_0x5a92('0xe')]]['queuecallerexitreason']=_0x5a92('0x3f')+_0xf4a311[_0x5a92('0x3c')][_0x5a92('0x24')]();}utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0x40'),_0xf4a311[_0x5a92('0xe')],queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x19')],_0xf4a311[_0x5a92('0x36')],queues[_0xf4a311[_0x5a92('0xe')]][_0x5a92('0x6')]));writeDB(queues[_0xf4a311['uniqueid']]);}}}catch(_0x1f2792){utils[_0x5a92('0x12')](util[_0x5a92('0x2')](_0x5a92('0x3a'),_0xf4a311[_0x5a92('0xe')]),_0x1f2792);}};exports[_0x5a92('0x41')]=function(_0xe0a936){try{if(!_[_0x5a92('0x14')](queues[_0xe0a936[_0x5a92('0x42')]])){utils[_0x5a92('0xc')](util[_0x5a92('0x2')]('[%s][queues][blindtransfer]',_0xe0a936[_0x5a92('0xe')]),_0xe0a936);queues[_0xe0a936['transfereeuniqueid']][_0x5a92('0x3d')]=!![];queues[_0xe0a936[_0x5a92('0x42')]]['transfertype']=_0x5a92('0x43');queues[_0xe0a936[_0x5a92('0x42')]][_0x5a92('0x44')]=_0xe0a936[_0x5a92('0x45')];queues[_0xe0a936[_0x5a92('0x42')]][_0x5a92('0x46')]=_0xe0a936[_0x5a92('0x42')];queues[_0xe0a936[_0x5a92('0x42')]]['queuecallerexitreason']='BLINDTRANSFER';utils[_0x5a92('0x1')](util[_0x5a92('0x2')]('[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER',_0xe0a936[_0x5a92('0xe')],queues[_0xe0a936[_0x5a92('0x42')]][_0x5a92('0x19')],_0xe0a936[_0x5a92('0x42')],_0xe0a936[_0x5a92('0x45')]));}}catch(_0x5ec40b){utils[_0x5a92('0x12')](util['format'](_0x5a92('0x47'),_0xe0a936[_0x5a92('0xe')]),_0x5ec40b);}};exports[_0x5a92('0x48')]=function(_0x4952e9){try{utils[_0x5a92('0xc')](util[_0x5a92('0x2')](_0x5a92('0x49'),_0x4952e9[_0x5a92('0x4a')]),_0x4952e9);if(_0x4952e9['origtransfereruniqueid']==_0x4952e9[_0x5a92('0x4b')]){if(!_[_0x5a92('0x14')](queues[_0x4952e9['secondtransfererlinkedid']])){utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0x4c'),_0x4952e9[_0x5a92('0x4a')],queues[_0x4952e9[_0x5a92('0x4d')]][_0x5a92('0x19')],_0x4952e9['origtransfererexten']));queues[_0x4952e9[_0x5a92('0x4d')]]['transfer']=!![];queues[_0x4952e9[_0x5a92('0x4d')]]['transfertype']='ATTENDED';queues[_0x4952e9[_0x5a92('0x4d')]][_0x5a92('0x44')]=_0x4952e9['origtransfererexten'];queues[_0x4952e9[_0x5a92('0x4d')]]['transferuniqueid']=_0x4952e9[_0x5a92('0x4a')];queues[_0x4952e9[_0x5a92('0x4d')]][_0x5a92('0x6')]=_0x5a92('0x4e');}if(!_['isNil'](queues[_0x4952e9[_0x5a92('0x4b')]])){if(_0x4952e9['transfereelinkedid']&&queues[_0x4952e9[_0x5a92('0x4f')]]){queues[_0x4952e9['transfereelinkedid']][_0x5a92('0x1b')]=0x1;queues[_0x4952e9['transfereeuniqueid']]=_[_0x5a92('0x50')](queues[_0x4952e9[_0x5a92('0x4f')]]);queues[_0x4952e9[_0x5a92('0x42')]]['transfereduniqueid']=_0x4952e9[_0x5a92('0x51')];queues[_0x4952e9[_0x5a92('0x42')]][_0x5a92('0x1b')]=0x2;queues[_0x4952e9['transfereeuniqueid']]['calleridnum']=queues[_0x4952e9['secondtransfererlinkedid']][_0x5a92('0x4')];queues[_0x4952e9[_0x5a92('0x42')]][_0x5a92('0x52')]=queues[_0x4952e9[_0x5a92('0x4d')]][_0x5a92('0x52')];queues[_0x4952e9['transfereeuniqueid']][_0x5a92('0x32')]=utils['now']();queues[_0x4952e9[_0x5a92('0x42')]][_0x5a92('0x15')]=utils[_0x5a92('0x11')]();queues[_0x4952e9[_0x5a92('0x42')]]['holdtime']=0x0;queues[_0x4952e9[_0x5a92('0x42')]][_0x5a92('0x53')]=0x0;utils[_0x5a92('0x1')](util['format'](_0x5a92('0x54'),_0x4952e9[_0x5a92('0x4a')],queues[_0x4952e9[_0x5a92('0x42')]][_0x5a92('0x19')],queues[_0x4952e9[_0x5a92('0x42')]][_0x5a92('0x4')],queues[_0x4952e9[_0x5a92('0x42')]][_0x5a92('0x52')]));}else{utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0x55'),_0x4952e9['origtransfereruniqueid'],queues[_0x4952e9[_0x5a92('0x4b')]][_0x5a92('0x19')],_0x4952e9[_0x5a92('0x4d')]));queues[_0x4952e9[_0x5a92('0x4b')]][_0x5a92('0xb')]=_0x4952e9['secondtransfererlinkedid'];}}}else if(_0x4952e9[_0x5a92('0x56')]==_0x4952e9['secondtransfererlinkedid']){if(!_[_0x5a92('0x14')](queues[_0x4952e9[_0x5a92('0x4b')]])){utils['info'](util[_0x5a92('0x2')](_0x5a92('0x57'),_0x4952e9[_0x5a92('0x4a')],queues[_0x4952e9['origtransfererlinkedid']][_0x5a92('0x19')],_0x4952e9[_0x5a92('0x56')],_0x4952e9[_0x5a92('0x58')]));queues[_0x4952e9[_0x5a92('0x4b')]]['transfer']=!![];queues[_0x4952e9[_0x5a92('0x4b')]]['transfertype']='ATTENDED';queues[_0x4952e9['origtransfererlinkedid']]['transferexten']=_0x4952e9[_0x5a92('0x58')];queues[_0x4952e9[_0x5a92('0x4b')]][_0x5a92('0x46')]=_0x4952e9[_0x5a92('0x56')];queues[_0x4952e9[_0x5a92('0x4b')]][_0x5a92('0x6')]='ATTENDEDTRANSFER';}if(!_[_0x5a92('0x14')](queues[_0x4952e9[_0x5a92('0x4d')]])){if(_0x4952e9[_0x5a92('0x59')]&&queues[_0x4952e9[_0x5a92('0x59')]]){queues[_0x4952e9['transfertargetlinkedid']][_0x5a92('0x1b')]=0x1;queues[_0x4952e9['transfertargetuniqueid']]=_[_0x5a92('0x50')](queues[_0x4952e9[_0x5a92('0x59')]]);queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0xb')]=_0x4952e9[_0x5a92('0x51')];queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0x1b')]=0x2;queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0x4')]=queues[_0x4952e9[_0x5a92('0x4b')]][_0x5a92('0x4')];queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0x52')]=queues[_0x4952e9[_0x5a92('0x4b')]][_0x5a92('0x52')];queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0x32')]=utils[_0x5a92('0x11')]();queues[_0x4952e9['transfertargetuniqueid']][_0x5a92('0x15')]=utils[_0x5a92('0x11')]();queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0x5a')]=0x0;queues[_0x4952e9['transfertargetuniqueid']][_0x5a92('0x53')]=0x0;utils[_0x5a92('0x1')](util['format']('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s',_0x4952e9[_0x5a92('0x4a')],queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0x19')],queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0xb')],queues[_0x4952e9[_0x5a92('0x51')]][_0x5a92('0x4')],queues[_0x4952e9[_0x5a92('0x51')]]['calleridname']));}else{utils[_0x5a92('0x1')](util[_0x5a92('0x2')]('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s',_0x4952e9[_0x5a92('0x4a')],queues[_0x4952e9[_0x5a92('0x4d')]][_0x5a92('0x19')],_0x4952e9[_0x5a92('0x4b')]));queues[_0x4952e9[_0x5a92('0x4d')]][_0x5a92('0xb')]=_0x4952e9[_0x5a92('0x4b')];}}}}catch(_0x46571c){utils[_0x5a92('0x12')](util[_0x5a92('0x2')]('[%s][queues][attendedtransfer]',_0x4952e9[_0x5a92('0x4a')]),_0x46571c);}};exports[_0x5a92('0x5b')]=function(_0x3763bf){try{if(!_[_0x5a92('0x14')](queues[_0x3763bf[_0x5a92('0xe')]])){utils['debug'](util['format'](_0x5a92('0x5c'),_0x3763bf[_0x5a92('0xe')]),_0x3763bf);queues[_0x3763bf['uniqueid']][_0x5a92('0x5d')]=utils[_0x5a92('0x11')]();utils[_0x5a92('0x1')](util[_0x5a92('0x2')]('[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s',_0x3763bf[_0x5a92('0xe')],queues[_0x3763bf['uniqueid']][_0x5a92('0x19')],queues[_0x3763bf[_0x5a92('0xe')]][_0x5a92('0x5d')]));}}catch(_0x25d890){utils[_0x5a92('0x12')](util['format'](_0x5a92('0x5c'),_0x3763bf[_0x5a92('0xe')]),_0x25d890);}};exports[_0x5a92('0x5e')]=function(_0x2a8caf){try{if(!_[_0x5a92('0x14')](queues[_0x2a8caf[_0x5a92('0xe')]])){if(!_[_0x5a92('0x14')](queues[_0x2a8caf['uniqueid']][_0x5a92('0x5d')])){utils[_0x5a92('0xc')](util['format'](_0x5a92('0x5f'),_0x2a8caf[_0x5a92('0xe')]),_0x2a8caf);queues[_0x2a8caf[_0x5a92('0xe')]][_0x5a92('0x53')]+=utils[_0x5a92('0x60')](utils[_0x5a92('0x11')](),queues[_0x2a8caf[_0x5a92('0xe')]][_0x5a92('0x5d')]);utils[_0x5a92('0x1')](util[_0x5a92('0x2')](_0x5a92('0x61'),_0x2a8caf['uniqueid'],queues[_0x2a8caf[_0x5a92('0xe')]]['name'],queues[_0x2a8caf[_0x5a92('0xe')]][_0x5a92('0x53')]));delete queues[_0x2a8caf['uniqueid']]['musiconholdstartAt'];}}}catch(_0x2a2195){utils['error'](util[_0x5a92('0x2')](_0x5a92('0x5f'),_0x2a8caf[_0x5a92('0xe')]),_0x2a2195);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf5b=['[%s][recordings][newstate]','varset','variable','[%s][recordings][varset]','[%s][recordings][varset]\x20variable:%s\x20value:%s','value','endsWith','.wav49','replace','.WAV','find','monitors','push','hangup','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','cause-txt','calleridnum','calleridname','connectedlinenum','connectedlinename','type','outbound','clone','newexten','[%s][recordings][newexten]','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','startsWith','split','substring','lastIndexOf','queuecallerjoin','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','lodash','format','[%s][recordings][writeDB]','uniqueid','accountcode','getUserByInternal','then','UserId','request','CreateVoiceRecording','newchannel','debug','[%s][recordings][newchannel]','linkedid','info','[%s][recordings][newchannel]\x20context:%s\x20exten:%s','context','channel','error','newstate','isNil','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','transfer','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s'];(function(_0x494c58,_0x44cee8){var _0x6a845e=function(_0x24fce9){while(--_0x24fce9){_0x494c58['push'](_0x494c58['shift']());}};_0x6a845e(++_0x44cee8);}(_0xbf5b,0xe3));var _0xbbf5=function(_0xa76db3,_0xf8fd0){_0xa76db3=_0xa76db3-0x0;var _0x47338e=_0xbf5b[_0xa76db3];return _0x47338e;};'use strict';var _=require(_0xbbf5('0x0'));var util=require('util');var utils=require('./utils');var recordings={};function writeDB(_0x5ba703){utils['info'](util[_0xbbf5('0x1')](_0xbbf5('0x2'),_0x5ba703[_0xbbf5('0x3')]));if(_0x5ba703[_0xbbf5('0x4')]){utils[_0xbbf5('0x5')](_0x5ba703['accountcode'])[_0xbbf5('0x6')](function(_0x1f7de5){if(_0x1f7de5){_0x5ba703['membername']=_0x1f7de5['name'];_0x5ba703[_0xbbf5('0x7')]=_0x1f7de5['id'];}utils[_0xbbf5('0x8')]('CreateVoiceRecording',_0x5ba703);});}else{utils['request'](_0xbbf5('0x9'),_0x5ba703);}}exports[_0xbbf5('0xa')]=function(_0x5a4c8b){try{utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')](_0xbbf5('0xc'),_0x5a4c8b['uniqueid']),_0x5a4c8b);if(_0x5a4c8b['uniqueid']==_0x5a4c8b[_0xbbf5('0xd')]){utils[_0xbbf5('0xe')](util[_0xbbf5('0x1')](_0xbbf5('0xf'),_0x5a4c8b[_0xbbf5('0x3')],_0x5a4c8b['context'],_0x5a4c8b['exten']));recordings[_0x5a4c8b[_0xbbf5('0x3')]]={'uniqueid':_0x5a4c8b[_0xbbf5('0x3')],'accountcode':_0x5a4c8b['accountcode'],'exten':_0x5a4c8b['exten'],'context':_0x5a4c8b[_0xbbf5('0x10')],'channel':_0x5a4c8b[_0xbbf5('0x11')],'monitors':[]};}}catch(_0x30dee8){utils[_0xbbf5('0x12')](util['format'](_0xbbf5('0xc'),_0x5a4c8b[_0xbbf5('0x3')]),_0x30dee8);}};exports[_0xbbf5('0x13')]=function(_0x48ee3b){try{utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')]('[%s][recordings][newstate]',_0x48ee3b[_0xbbf5('0x3')]),_0x48ee3b);if(!_[_0xbbf5('0x14')](recordings[_0x48ee3b['uniqueid']])&&_0x48ee3b[_0xbbf5('0x15')]==0x6){utils[_0xbbf5('0xe')](util['format'](_0xbbf5('0x16'),_0x48ee3b[_0xbbf5('0x3')],_0x48ee3b['context'],_0x48ee3b[_0xbbf5('0x11')]));}else if(!_[_0xbbf5('0x14')](recordings[_0x48ee3b['linkedid']])&&_0x48ee3b[_0xbbf5('0x15')]==0x6&&_0x48ee3b[_0xbbf5('0x10')]!=_0xbbf5('0x17')){utils['info'](util[_0xbbf5('0x1')](_0xbbf5('0x18'),_0x48ee3b[_0xbbf5('0x3')],_0x48ee3b['linkedid'],_0x48ee3b[_0xbbf5('0x10')],_0x48ee3b[_0xbbf5('0x11')]));recordings[_0x48ee3b['linkedid']]['accountcode']=_0x48ee3b[_0xbbf5('0x4')];}}catch(_0x1da5ed){utils['error'](util[_0xbbf5('0x1')](_0xbbf5('0x19'),_0x48ee3b[_0xbbf5('0x3')]),_0x1da5ed);}};exports[_0xbbf5('0x1a')]=function(_0x24415b){try{if(!_[_0xbbf5('0x14')](_0x24415b['variable'])&&!_['isNil'](_0x24415b[_0xbbf5('0x1b')]['mixmonitor_filename'])){utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')](_0xbbf5('0x1c'),_0x24415b[_0xbbf5('0x3')]),_0x24415b);utils[_0xbbf5('0xe')](util['format'](_0xbbf5('0x1d'),_0x24415b[_0xbbf5('0x3')],_0x24415b[_0xbbf5('0x1b')],_0x24415b[_0xbbf5('0x1e')]));if(_[_0xbbf5('0x1f')](_0x24415b[_0xbbf5('0x1e')],_0xbbf5('0x20'))){_0x24415b[_0xbbf5('0x1e')]=_0x24415b[_0xbbf5('0x1e')][_0xbbf5('0x21')]('.wav49',_0xbbf5('0x22'));}if(recordings[_0x24415b[_0xbbf5('0xd')]]){var _0x418d8b=_[_0xbbf5('0x23')](recordings[_0x24415b['linkedid']][_0xbbf5('0x24')],{'value':_0x24415b[_0xbbf5('0x1e')]});if(_['isNil'](_0x418d8b)){recordings[_0x24415b[_0xbbf5('0xd')]]['monitors'][_0xbbf5('0x25')]({'value':_0x24415b['value']});}}}}catch(_0x2bed78){utils['error'](util['format'](_0xbbf5('0x1c'),_0x24415b[_0xbbf5('0x3')]),_0x2bed78);}};exports[_0xbbf5('0x26')]=function(_0x5eb6a4){try{if(!_[_0xbbf5('0x14')](recordings[_0x5eb6a4[_0xbbf5('0x3')]])){utils['debug'](util[_0xbbf5('0x1')](_0xbbf5('0x27'),_0x5eb6a4['uniqueid']),_0x5eb6a4);utils[_0xbbf5('0xe')](util[_0xbbf5('0x1')](_0xbbf5('0x28'),_0x5eb6a4[_0xbbf5('0x3')],_0x5eb6a4['calleridnum'],_0x5eb6a4['calleridname'],_0x5eb6a4[_0xbbf5('0x29')]));recordings[_0x5eb6a4[_0xbbf5('0x3')]]['calleridnum']=_0x5eb6a4[_0xbbf5('0x2a')];recordings[_0x5eb6a4['uniqueid']][_0xbbf5('0x2b')]=_0x5eb6a4[_0xbbf5('0x2b')];recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2c')]=_0x5eb6a4['connectedlinenum'];recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2d')]=_0x5eb6a4[_0xbbf5('0x2d')];if(recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2e')]==_0xbbf5('0x2f')&&recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x4')]){recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2c')]=recordings[_0x5eb6a4['uniqueid']][_0xbbf5('0x4')];recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2d')]='';}recordings[_0x5eb6a4[_0xbbf5('0x3')]]['monitors']['forEach'](function(_0x45d634){var _0x2c772c=_[_0xbbf5('0x30')](recordings[_0x5eb6a4[_0xbbf5('0x3')]]);_0x2c772c['value']=_0x45d634[_0xbbf5('0x1e')];writeDB(_0x2c772c);});delete recordings[_0x5eb6a4[_0xbbf5('0x3')]];}}catch(_0x24c685){utils[_0xbbf5('0x12')](util[_0xbbf5('0x1')](_0xbbf5('0x27'),_0x5eb6a4[_0xbbf5('0x3')]),_0x24c685);}};exports[_0xbbf5('0x31')]=function(_0x5f0d2c){try{if(!_[_0xbbf5('0x14')](recordings[_0x5f0d2c[_0xbbf5('0x3')]])){utils['debug'](util[_0xbbf5('0x1')](_0xbbf5('0x32'),_0x5f0d2c[_0xbbf5('0x3')]),_0x5f0d2c);utils[_0xbbf5('0xe')](util[_0xbbf5('0x1')](_0xbbf5('0x33'),_0x5f0d2c[_0xbbf5('0x3')],_0x5f0d2c['application'],_0x5f0d2c[_0xbbf5('0x34')]));if(_0x5f0d2c[_0xbbf5('0x35')][_0xbbf5('0x36')]()==_0xbbf5('0x37')&&_[_0xbbf5('0x38')](_0x5f0d2c[_0xbbf5('0x34')]['toLowerCase'](),'cdr')){var _0x1d1979=_0x5f0d2c['appdata'][_0xbbf5('0x39')]('=');var _0x479766=_0x1d1979[0x0][_0xbbf5('0x3a')](_0x1d1979[0x0][_0xbbf5('0x3b')]('(')+0x1,_0x1d1979[0x0][_0xbbf5('0x3b')](')'));var _0x151238=_0x1d1979[0x1];recordings[_0x5f0d2c[_0xbbf5('0x3')]][_0x479766]=_0x151238;}}}catch(_0x3f0a8a){utils[_0xbbf5('0x12')](util[_0xbbf5('0x1')](_0xbbf5('0x32'),_0x5f0d2c[_0xbbf5('0x3')]),_0x3f0a8a);}};exports[_0xbbf5('0x3c')]=function(_0x103281){try{if(!_[_0xbbf5('0x14')](recordings[_0x103281[_0xbbf5('0x3')]])){utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')]('[%s][recordings][queuecallerjoin]',_0x103281[_0xbbf5('0x3')]),_0x103281);utils[_0xbbf5('0xe')](util['format'](_0xbbf5('0x3d'),_0x103281[_0xbbf5('0x3')],_0x103281[_0xbbf5('0x3e')]));recordings[_0x103281[_0xbbf5('0x3')]][_0xbbf5('0x3e')]=_0x103281[_0xbbf5('0x3e')];}}catch(_0x45ba8b){utils[_0xbbf5('0x12')](util[_0xbbf5('0x1')]('[%s][recordings][queuecallerjoin]',_0x103281['uniqueid']),_0x45ba8b);}};
\ No newline at end of file
+var _0x0b59=['UserId','request','CreateVoiceRecording','newchannel','format','[%s][recordings][newchannel]','uniqueid','exten','context','channel','error','newstate','[%s][recordings][newstate]','isNil','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','linkedid','varset','variable','mixmonitor_filename','debug','value','.wav49','replace','find','monitors','push','[%s][recordings][varset]','hangup','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','calleridnum','calleridname','connectedlinename','connectedlinenum','forEach','clone','newexten','[%s][recordings][newexten]','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','substring','lastIndexOf','[%s][recordings][queuecallerjoin]','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','lodash','util','./utils','info','[%s][recordings][writeDB]','getUserByInternal','accountcode','then','membername','name'];(function(_0x16e6e3,_0x46b776){var _0x3b66f2=function(_0x50a1d1){while(--_0x50a1d1){_0x16e6e3['push'](_0x16e6e3['shift']());}};_0x3b66f2(++_0x46b776);}(_0x0b59,0xad));var _0x90b5=function(_0x56afd3,_0x35aa64){_0x56afd3=_0x56afd3-0x0;var _0x1c9abb=_0x0b59[_0x56afd3];return _0x1c9abb;};'use strict';var _=require(_0x90b5('0x0'));var util=require(_0x90b5('0x1'));var utils=require(_0x90b5('0x2'));var recordings={};function writeDB(_0x15602a){utils[_0x90b5('0x3')](util['format'](_0x90b5('0x4'),_0x15602a['uniqueid']));if(_0x15602a['accountcode']){utils[_0x90b5('0x5')](_0x15602a[_0x90b5('0x6')])[_0x90b5('0x7')](function(_0x34b516){if(_0x34b516){_0x15602a[_0x90b5('0x8')]=_0x34b516[_0x90b5('0x9')];_0x15602a[_0x90b5('0xa')]=_0x34b516['id'];}utils[_0x90b5('0xb')](_0x90b5('0xc'),_0x15602a);});}else{utils[_0x90b5('0xb')]('CreateVoiceRecording',_0x15602a);}}exports[_0x90b5('0xd')]=function(_0x38c444){try{utils['debug'](util[_0x90b5('0xe')](_0x90b5('0xf'),_0x38c444[_0x90b5('0x10')]),_0x38c444);if(_0x38c444[_0x90b5('0x10')]==_0x38c444['linkedid']){utils[_0x90b5('0x3')](util[_0x90b5('0xe')]('[%s][recordings][newchannel]\x20context:%s\x20exten:%s',_0x38c444[_0x90b5('0x10')],_0x38c444['context'],_0x38c444[_0x90b5('0x11')]));recordings[_0x38c444[_0x90b5('0x10')]]={'uniqueid':_0x38c444[_0x90b5('0x10')],'accountcode':_0x38c444[_0x90b5('0x6')],'exten':_0x38c444['exten'],'context':_0x38c444[_0x90b5('0x12')],'channel':_0x38c444[_0x90b5('0x13')],'monitors':[]};}}catch(_0x2baabf){utils[_0x90b5('0x14')](util[_0x90b5('0xe')](_0x90b5('0xf'),_0x38c444['uniqueid']),_0x2baabf);}};exports[_0x90b5('0x15')]=function(_0x1c32b5){try{utils['debug'](util[_0x90b5('0xe')](_0x90b5('0x16'),_0x1c32b5['uniqueid']),_0x1c32b5);if(!_[_0x90b5('0x17')](recordings[_0x1c32b5['uniqueid']])&&_0x1c32b5[_0x90b5('0x18')]==0x6){utils['info'](util[_0x90b5('0xe')](_0x90b5('0x19'),_0x1c32b5[_0x90b5('0x10')],_0x1c32b5[_0x90b5('0x12')],_0x1c32b5[_0x90b5('0x13')]));}else if(!_['isNil'](recordings[_0x1c32b5[_0x90b5('0x1a')]])&&_0x1c32b5['channelstate']==0x6&&_0x1c32b5['context']!='transfer'){utils[_0x90b5('0x3')](util[_0x90b5('0xe')]('[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x1c32b5[_0x90b5('0x10')],_0x1c32b5[_0x90b5('0x1a')],_0x1c32b5[_0x90b5('0x12')],_0x1c32b5['channel']));recordings[_0x1c32b5[_0x90b5('0x1a')]][_0x90b5('0x6')]=_0x1c32b5[_0x90b5('0x6')];}}catch(_0x109d2b){utils[_0x90b5('0x14')](util[_0x90b5('0xe')](_0x90b5('0x16'),_0x1c32b5[_0x90b5('0x10')]),_0x109d2b);}};exports[_0x90b5('0x1b')]=function(_0x5285f3){try{if(!_['isNil'](_0x5285f3['variable'])&&!_[_0x90b5('0x17')](_0x5285f3[_0x90b5('0x1c')][_0x90b5('0x1d')])){utils[_0x90b5('0x1e')](util[_0x90b5('0xe')]('[%s][recordings][varset]',_0x5285f3[_0x90b5('0x10')]),_0x5285f3);utils[_0x90b5('0x3')](util[_0x90b5('0xe')]('[%s][recordings][varset]\x20variable:%s\x20value:%s',_0x5285f3[_0x90b5('0x10')],_0x5285f3['variable'],_0x5285f3[_0x90b5('0x1f')]));if(_['endsWith'](_0x5285f3[_0x90b5('0x1f')],_0x90b5('0x20'))){_0x5285f3[_0x90b5('0x1f')]=_0x5285f3['value'][_0x90b5('0x21')](_0x90b5('0x20'),'.WAV');}if(recordings[_0x5285f3[_0x90b5('0x1a')]]){var _0x264c9b=_[_0x90b5('0x22')](recordings[_0x5285f3['linkedid']][_0x90b5('0x23')],{'value':_0x5285f3['value']});if(_['isNil'](_0x264c9b)){recordings[_0x5285f3[_0x90b5('0x1a')]][_0x90b5('0x23')][_0x90b5('0x24')]({'value':_0x5285f3[_0x90b5('0x1f')]});}}}}catch(_0x523fa4){utils[_0x90b5('0x14')](util[_0x90b5('0xe')](_0x90b5('0x25'),_0x5285f3[_0x90b5('0x10')]),_0x523fa4);}};exports[_0x90b5('0x26')]=function(_0x49609e){try{if(!_[_0x90b5('0x17')](recordings[_0x49609e['uniqueid']])){utils[_0x90b5('0x1e')](util[_0x90b5('0xe')](_0x90b5('0x27'),_0x49609e[_0x90b5('0x10')]),_0x49609e);utils[_0x90b5('0x3')](util[_0x90b5('0xe')](_0x90b5('0x28'),_0x49609e[_0x90b5('0x10')],_0x49609e[_0x90b5('0x29')],_0x49609e[_0x90b5('0x2a')],_0x49609e['cause-txt']));recordings[_0x49609e[_0x90b5('0x10')]][_0x90b5('0x29')]=_0x49609e[_0x90b5('0x29')];recordings[_0x49609e['uniqueid']][_0x90b5('0x2a')]=_0x49609e[_0x90b5('0x2a')];recordings[_0x49609e[_0x90b5('0x10')]]['connectedlinenum']=_0x49609e['connectedlinenum'];recordings[_0x49609e[_0x90b5('0x10')]][_0x90b5('0x2b')]=_0x49609e[_0x90b5('0x2b')];if(recordings[_0x49609e[_0x90b5('0x10')]]['type']=='outbound'&&recordings[_0x49609e[_0x90b5('0x10')]][_0x90b5('0x6')]){recordings[_0x49609e[_0x90b5('0x10')]][_0x90b5('0x2c')]=recordings[_0x49609e[_0x90b5('0x10')]][_0x90b5('0x6')];recordings[_0x49609e[_0x90b5('0x10')]]['connectedlinename']='';}recordings[_0x49609e[_0x90b5('0x10')]][_0x90b5('0x23')][_0x90b5('0x2d')](function(_0xbc87b1){var _0x103d93=_[_0x90b5('0x2e')](recordings[_0x49609e[_0x90b5('0x10')]]);_0x103d93['value']=_0xbc87b1[_0x90b5('0x1f')];writeDB(_0x103d93);});delete recordings[_0x49609e[_0x90b5('0x10')]];}}catch(_0x12edd9){utils[_0x90b5('0x14')](util['format'](_0x90b5('0x27'),_0x49609e[_0x90b5('0x10')]),_0x12edd9);}};exports[_0x90b5('0x2f')]=function(_0x11d57c){try{if(!_[_0x90b5('0x17')](recordings[_0x11d57c[_0x90b5('0x10')]])){utils[_0x90b5('0x1e')](util['format'](_0x90b5('0x30'),_0x11d57c['uniqueid']),_0x11d57c);utils[_0x90b5('0x3')](util['format'](_0x90b5('0x31'),_0x11d57c[_0x90b5('0x10')],_0x11d57c[_0x90b5('0x32')],_0x11d57c[_0x90b5('0x33')]));if(_0x11d57c[_0x90b5('0x32')][_0x90b5('0x34')]()==_0x90b5('0x35')&&_[_0x90b5('0x36')](_0x11d57c['appdata']['toLowerCase'](),_0x90b5('0x37'))){var _0xa5c70d=_0x11d57c[_0x90b5('0x33')]['split']('=');var _0x2eec21=_0xa5c70d[0x0][_0x90b5('0x38')](_0xa5c70d[0x0][_0x90b5('0x39')]('(')+0x1,_0xa5c70d[0x0][_0x90b5('0x39')](')'));var _0x3eb8af=_0xa5c70d[0x1];recordings[_0x11d57c[_0x90b5('0x10')]][_0x2eec21]=_0x3eb8af;}}}catch(_0x1262bc){utils[_0x90b5('0x14')](util['format'](_0x90b5('0x30'),_0x11d57c[_0x90b5('0x10')]),_0x1262bc);}};exports['queuecallerjoin']=function(_0x39e5b5){try{if(!_[_0x90b5('0x17')](recordings[_0x39e5b5[_0x90b5('0x10')]])){utils['debug'](util[_0x90b5('0xe')](_0x90b5('0x3a'),_0x39e5b5[_0x90b5('0x10')]),_0x39e5b5);utils[_0x90b5('0x3')](util['format'](_0x90b5('0x3b'),_0x39e5b5[_0x90b5('0x10')],_0x39e5b5[_0x90b5('0x3c')]));recordings[_0x39e5b5['uniqueid']]['queue']=_0x39e5b5[_0x90b5('0x3c')];}}catch(_0x1132e1){utils[_0x90b5('0x14')](util[_0x90b5('0xe')](_0x90b5('0x3a'),_0x39e5b5[_0x90b5('0x10')]),_0x1132e1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0330=['origtransfereruniqueid','CreateVoiceTransferReport','blindtransfer','[%s][transfers][blindtransfer]','uniqueid','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridname','transfereecalleridnum','transfereecalleridname','blind','blinds','attendedtransfer','[%s][transfers][attendedtransfer]','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transfertargetcalleridnum','transfertargetcalleridname','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransfererexten','origtransfererlinkedid','origtransferercontext','origtransfererexten','attended','isNil','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetexten','transfertargetlinkedid','error','lodash','util','./utils','info','format','[%s][transfers][writeDB]\x20type:%s','type'];(function(_0x4b055c,_0x4b870b){var _0x4b62bb=function(_0x4884c2){while(--_0x4884c2){_0x4b055c['push'](_0x4b055c['shift']());}};_0x4b62bb(++_0x4b870b);}(_0x0330,0x131));var _0x0033=function(_0x4dc267,_0x1d9339){_0x4dc267=_0x4dc267-0x0;var _0x2beb4f=_0x0330[_0x4dc267];return _0x2beb4f;};'use strict';var _=require(_0x0033('0x0'));var util=require(_0x0033('0x1'));var utils=require(_0x0033('0x2'));function writeDB(_0x1f91e1){utils[_0x0033('0x3')](util[_0x0033('0x4')](_0x0033('0x5'),_0x1f91e1[_0x0033('0x6')]==='attended'?_0x1f91e1[_0x0033('0x7')]:_0x1f91e1['uniqueid'],_0x1f91e1[_0x0033('0x6')]));utils['request'](_0x0033('0x8'),_0x1f91e1);}exports['blinds']={};exports[_0x0033('0x9')]=function(_0x44eb08){try{utils['debug'](util[_0x0033('0x4')](_0x0033('0xa'),_0x44eb08[_0x0033('0xb')]),_0x44eb08);utils[_0x0033('0x3')](util[_0x0033('0x4')](_0x0033('0xc'),_0x44eb08[_0x0033('0xb')],_0x44eb08['transferercalleridnum'],_0x44eb08[_0x0033('0xd')],_0x44eb08[_0x0033('0xe')],_0x44eb08[_0x0033('0xf')]));_0x44eb08[_0x0033('0x6')]=_0x0033('0x10');exports[_0x0033('0x11')][_0x44eb08['transfereruniqueid']]=_0x44eb08;writeDB(_0x44eb08);}catch(_0x55fc4c){utils['error'](util['format'](_0x0033('0xa'),_0x44eb08[_0x0033('0xb')]),_0x55fc4c);}};exports[_0x0033('0x12')]=function(_0x30ccbe){try{utils['debug'](util[_0x0033('0x4')](_0x0033('0x13'),_0x30ccbe[_0x0033('0x7')]),_0x30ccbe);utils[_0x0033('0x3')](util[_0x0033('0x4')](_0x0033('0x14'),_0x30ccbe[_0x0033('0x7')],_0x30ccbe['origtransferercalleridnum'],_0x30ccbe['origtransferercalleridname'],_0x30ccbe[_0x0033('0x15')],_0x30ccbe[_0x0033('0x16')]));_0x30ccbe=_['assign'](_0x30ccbe,{'transfererchannel':_0x30ccbe['origtransfererchannel'],'transferercalleridnum':_0x30ccbe['origtransferercalleridnum'],'transferercalleridname':_0x30ccbe[_0x0033('0x17')],'transfererconnectedlinenum':_0x30ccbe[_0x0033('0x18')],'transfererconnectedlinename':_0x30ccbe[_0x0033('0x19')],'transfereraccountcode':_0x30ccbe[_0x0033('0x1a')],'transferercontext':_0x30ccbe['secondtransferercontext'],'transfererexten':_0x30ccbe[_0x0033('0x1b')],'transfererlinkedid':_0x30ccbe[_0x0033('0x1c')],'context':_0x30ccbe[_0x0033('0x1d')],'extension':_0x30ccbe[_0x0033('0x1e')],'type':_0x0033('0x1f')});if(_[_0x0033('0x20')](_0x30ccbe['transfereechannel'])){_0x30ccbe=_['assign'](_0x30ccbe,{'transfereechannel':_0x30ccbe['transfertargetchannel'],'transfereecalleridnum':_0x30ccbe[_0x0033('0x15')],'transfereecalleridname':_0x30ccbe['transfertargetcalleridname'],'transfereeconnectedlinenum':_0x30ccbe[_0x0033('0x21')],'transfereeconnectedlinename':_0x30ccbe[_0x0033('0x22')],'transfereeaccountcode':_0x30ccbe[_0x0033('0x23')],'transfereecontext':_0x30ccbe['transfertargetcontext'],'transfereeexten':_0x30ccbe[_0x0033('0x24')],'transfereelinkedid':_0x30ccbe[_0x0033('0x25')]});}writeDB(_0x30ccbe);}catch(_0x4f4776){utils[_0x0033('0x26')](util[_0x0033('0x4')](_0x0033('0x13'),_0x30ccbe[_0x0033('0x7')]),_0x4f4776);}};
\ No newline at end of file
+var _0x36c5=['transfertargetlinkedid','lodash','./utils','info','[%s][transfers][writeDB]\x20type:%s','origtransfereruniqueid','uniqueid','type','debug','format','[%s][transfers][blindtransfer]','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transferercalleridname','transfereecalleridname','blind','blinds','error','[%s][transfers][attendedtransfer]','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','origtransferercalleridnum','origtransferercalleridname','transfertargetcalleridnum','transfertargetcalleridname','assign','origtransfererchannel','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','origtransferercontext','attended','transfereechannel','transfertargetchannel','transfertargetconnectedlinenum','transfertargetcontext','transfertargetexten'];(function(_0x3f6980,_0x545cd9){var _0x309376=function(_0x53ca63){while(--_0x53ca63){_0x3f6980['push'](_0x3f6980['shift']());}};_0x309376(++_0x545cd9);}(_0x36c5,0x187));var _0x536c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x36c5[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x536c('0x0'));var util=require('util');var utils=require(_0x536c('0x1'));function writeDB(_0x1920e9){utils[_0x536c('0x2')](util['format'](_0x536c('0x3'),_0x1920e9['type']==='attended'?_0x1920e9[_0x536c('0x4')]:_0x1920e9[_0x536c('0x5')],_0x1920e9[_0x536c('0x6')]));utils['request']('CreateVoiceTransferReport',_0x1920e9);}exports['blinds']={};exports['blindtransfer']=function(_0x3134cc){try{utils[_0x536c('0x7')](util[_0x536c('0x8')](_0x536c('0x9'),_0x3134cc[_0x536c('0x5')]),_0x3134cc);utils[_0x536c('0x2')](util['format'](_0x536c('0xa'),_0x3134cc[_0x536c('0x5')],_0x3134cc[_0x536c('0xb')],_0x3134cc[_0x536c('0xc')],_0x3134cc['transfereecalleridnum'],_0x3134cc[_0x536c('0xd')]));_0x3134cc[_0x536c('0x6')]=_0x536c('0xe');exports[_0x536c('0xf')][_0x3134cc['transfereruniqueid']]=_0x3134cc;writeDB(_0x3134cc);}catch(_0x185cdb){utils[_0x536c('0x10')](util[_0x536c('0x8')]('[%s][transfers][blindtransfer]',_0x3134cc[_0x536c('0x5')]),_0x185cdb);}};exports['attendedtransfer']=function(_0x242c01){try{utils['debug'](util['format'](_0x536c('0x11'),_0x242c01[_0x536c('0x4')]),_0x242c01);utils[_0x536c('0x2')](util[_0x536c('0x8')](_0x536c('0x12'),_0x242c01['origtransfereruniqueid'],_0x242c01[_0x536c('0x13')],_0x242c01[_0x536c('0x14')],_0x242c01[_0x536c('0x15')],_0x242c01[_0x536c('0x16')]));_0x242c01=_[_0x536c('0x17')](_0x242c01,{'transfererchannel':_0x242c01[_0x536c('0x18')],'transferercalleridnum':_0x242c01[_0x536c('0x13')],'transferercalleridname':_0x242c01[_0x536c('0x14')],'transfererconnectedlinenum':_0x242c01[_0x536c('0x19')],'transfererconnectedlinename':_0x242c01[_0x536c('0x1a')],'transfereraccountcode':_0x242c01[_0x536c('0x1b')],'transferercontext':_0x242c01[_0x536c('0x1c')],'transfererexten':_0x242c01[_0x536c('0x1d')],'transfererlinkedid':_0x242c01[_0x536c('0x1e')],'context':_0x242c01[_0x536c('0x1f')],'extension':_0x242c01['origtransfererexten'],'type':_0x536c('0x20')});if(_['isNil'](_0x242c01[_0x536c('0x21')])){_0x242c01=_[_0x536c('0x17')](_0x242c01,{'transfereechannel':_0x242c01[_0x536c('0x22')],'transfereecalleridnum':_0x242c01[_0x536c('0x15')],'transfereecalleridname':_0x242c01[_0x536c('0x16')],'transfereeconnectedlinenum':_0x242c01[_0x536c('0x23')],'transfereeconnectedlinename':_0x242c01['transfertargetconnectedlinename'],'transfereeaccountcode':_0x242c01['transfertargetaccountcode'],'transfereecontext':_0x242c01[_0x536c('0x24')],'transfereeexten':_0x242c01[_0x536c('0x25')],'transfereelinkedid':_0x242c01[_0x536c('0x26')]});}writeDB(_0x242c01);}catch(_0x747f8f){utils[_0x536c('0x10')](util['format'](_0x536c('0x11'),_0x242c01[_0x536c('0x4')]),_0x747f8f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0837=['getUserByInterface','then','[utils][getUserByInterface]\x20interface:%s\x20%s','found','[utils][getUserByInterface]','[utils][getUserByName]\x20name:%s\x20%s','[utils][getUserByName]','getVoiceQueueByName','GetVoiceQueue','acw','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]','add','seconds','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','diffTime','diff','sumTime','now','format','isAfter','isBefore','bluebird','jayson/promise','moment','client','http','../../config/logger','xdr','info','inspect','debug','error','request','[utils][request]\x20name:%s','catch','internal','name','interface','[utils][getUser]\x20where:%s','stringify','result','length','getUserByInternal','[utils][getUserByInternal]\x20internal:%s\x20%s','notfound','[utils][getUserByInternal]'];(function(_0x3023cb,_0x22f499){var _0xdf7bfe=function(_0x1bd921){while(--_0x1bd921){_0x3023cb['push'](_0x3023cb['shift']());}};_0xdf7bfe(++_0x22f499);}(_0x0837,0x1db));var _0x7083=function(_0x28c36d,_0x34600){_0x28c36d=_0x28c36d-0x0;var _0x5655a6=_0x0837[_0x28c36d];return _0x5655a6;};'use strict';var BPromise=require(_0x7083('0x0'));var jayson=require(_0x7083('0x1'));var moment=require(_0x7083('0x2'));var util=require('util');var client=jayson[_0x7083('0x3')][_0x7083('0x4')]({'port':0x2329});var logger=require(_0x7083('0x5'))(_0x7083('0x6'));exports[_0x7083('0x7')]=function(_0xa39a99,_0xd6e9cb){logger[_0x7083('0x7')](_0xa39a99,_0xd6e9cb?util[_0x7083('0x8')](_0xd6e9cb,{'showHidden':![],'depth':null}):'');};exports['debug']=function(_0x339bbe,_0x6bff72){logger[_0x7083('0x9')](_0x339bbe,_0x6bff72?util[_0x7083('0x8')](_0x6bff72,{'showHidden':![],'depth':null}):'');};exports[_0x7083('0xa')]=function(_0x1a5bfc,_0x20e2b4){logger[_0x7083('0xa')](_0x1a5bfc,_0x20e2b4?util[_0x7083('0x8')](_0x20e2b4,{'showHidden':![],'depth':null}):'');};exports[_0x7083('0xb')]=function(_0x5a0f4d,_0x49a8d0){return client[_0x7083('0xb')](_0x5a0f4d,{'body':_0x49a8d0})['then'](function(_0x3d4f33){logger['debug'](_0x7083('0xc'),_0x5a0f4d,_0x3d4f33?util[_0x7083('0x8')](_0x3d4f33,{'showHidden':![],'depth':null}):'');})[_0x7083('0xd')](function(_0x573621){logger['error'](_0x7083('0xc'),_0x5a0f4d,_0x573621?util['inspect'](_0x573621,{'showHidden':![],'depth':null}):'');});};function getUser(_0x5f1beb){return client[_0x7083('0xb')]('GetUser',{'options':{'raw':!![],'attributes':['id',_0x7083('0xe'),_0x7083('0xf'),_0x7083('0x10')],'where':_0x5f1beb,'limit':0x1}})['then'](function(_0x5bf512){logger['debug'](_0x7083('0x11'),JSON[_0x7083('0x12')](_0x5f1beb),_0x5bf512?util[_0x7083('0x8')](_0x5bf512,{'showHidden':![],'depth':null}):'');return _0x5bf512[_0x7083('0x13')][_0x7083('0x14')]?_0x5bf512[_0x7083('0x13')][0x0]:null;});}exports[_0x7083('0x15')]=function(_0x469fa2){return new BPromise(function(_0x326233,_0x51ec4b){if(_0x469fa2){return getUser({'internal':_0x469fa2})['then'](function(_0x2d3963){logger[_0x7083('0x7')](_0x7083('0x16'),_0x469fa2,_0x2d3963?'found':_0x7083('0x17'));return _0x326233(_0x2d3963);})['catch'](function(_0x45ebc3){logger[_0x7083('0xa')](_0x7083('0x18'),_0x45ebc3?util[_0x7083('0x8')](_0x45ebc3,{'showHidden':![],'depth':null}):'');return _0x326233(null);});}return _0x326233(null);});};exports[_0x7083('0x19')]=function(_0x51430a){return new BPromise(function(_0x5ee521,_0x798421){if(_0x51430a){return getUser({'interface':_0x51430a})[_0x7083('0x1a')](function(_0x42fad0){logger[_0x7083('0x7')](_0x7083('0x1b'),_0x51430a,_0x42fad0?_0x7083('0x1c'):_0x7083('0x17'));return _0x5ee521(_0x42fad0);})[_0x7083('0xd')](function(_0x16de64){logger[_0x7083('0xa')](_0x7083('0x1d'),_0x16de64?util['inspect'](_0x16de64,{'showHidden':![],'depth':null}):'');return _0x5ee521(null);});}return _0x5ee521(null);});};exports['getUserByName']=function(_0x2cda80){return new BPromise(function(_0x2b0f68,_0x54dc8c){if(_0x2cda80){return getUser({'name':_0x2cda80})[_0x7083('0x1a')](function(_0x3f519d){logger[_0x7083('0x7')](_0x7083('0x1e'),_0x2cda80,_0x3f519d?_0x7083('0x1c'):_0x7083('0x17'));return _0x2b0f68(_0x3f519d);})[_0x7083('0xd')](function(_0x539b56){logger[_0x7083('0xa')](_0x7083('0x1f'),_0x539b56?util[_0x7083('0x8')](_0x539b56,{'showHidden':![],'depth':null}):'');return _0x2b0f68(null);});}return _0x2b0f68(null);});};exports[_0x7083('0x20')]=function(_0xe72028){return new BPromise(function(_0x1e4b1f,_0x145bdd){if(_0xe72028){return client[_0x7083('0xb')](_0x7083('0x21'),{'options':{'raw':!![],'attributes':['id',_0x7083('0xf'),'type',_0x7083('0x22'),_0x7083('0x23')],'where':{'name':_0xe72028},'limit':0x1}})[_0x7083('0x1a')](function(_0x8d208e){logger[_0x7083('0x9')](_0x7083('0x24'),_0xe72028,_0x8d208e?util['inspect'](_0x8d208e,{'showHidden':![],'depth':null}):'');logger[_0x7083('0x7')]('[utils][getVoiceQueueByName]\x20name:%s\x20%s',_0xe72028,_0x8d208e?_0x7083('0x1c'):_0x7083('0x17'));return _0x1e4b1f(_0x8d208e[_0x7083('0x13')][_0x7083('0x14')]?_0x8d208e[_0x7083('0x13')][0x0]:null);})[_0x7083('0xd')](function(_0x4c7ea7){logger[_0x7083('0xa')](_0x7083('0x25'),_0x4c7ea7?util[_0x7083('0x8')](_0x4c7ea7,{'showHidden':![],'depth':null}):'');return _0x1e4b1f(null);});}return _0x1e4b1f(null);});};exports['addTime']=function(_0x1b9b3f,_0x532c65){return moment(_0x1b9b3f)[_0x7083('0x26')](_0x532c65,_0x7083('0x27'))['format'](_0x7083('0x28'));};exports[_0x7083('0x29')]=function(_0x3db2cd,_0x26453a){return moment(_0x3db2cd)[_0x7083('0x2a')](_0x26453a,_0x7083('0x27'))['format'](_0x7083('0x28'));};exports[_0x7083('0x2b')]=function(_0x39c4f2,_0x3893f5){return moment(_0x39c4f2)[_0x7083('0x2c')](moment(_0x3893f5),'seconds');};exports[_0x7083('0x2d')]=function(_0x4a4b75,_0x58d536){return parseInt(_0x4a4b75,0xa)+parseInt(_0x58d536,0xa);};exports[_0x7083('0x2e')]=function(){return moment()[_0x7083('0x2f')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0x7083('0x30')]=function(_0xc8d677,_0x5a7d1c){if(_0x5a7d1c){return moment(_0xc8d677)['isAfter'](_0x5a7d1c);}return!![];};exports[_0x7083('0x31')]=function(_0x46903e,_0x3df32a){if(_0x3df32a){return moment(_0x46903e)[_0x7083('0x31')](_0x3df32a);}else if(_0x46903e){return!![];}return![];};
\ No newline at end of file
+var _0xfea2=['[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]\x20name:%s\x20%s','addTime','add','seconds','format','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','diffTime','diff','sumTime','isBefore','bluebird','jayson/promise','moment','client','http','../../config/logger','xdr','info','inspect','debug','error','then','[utils][request]\x20name:%s','request','GetUser','name','interface','[utils][getUser]\x20where:%s','stringify','result','length','getUserByInternal','[utils][getUserByInternal]\x20internal:%s\x20%s','notfound','found','catch','[utils][getUserByInterface]','getUserByName','[utils][getUserByName]\x20name:%s\x20%s','getVoiceQueueByName','GetVoiceQueue','type','acw','acwTimeout'];(function(_0xc391d2,_0xa6974a){var _0x287a1c=function(_0x571866){while(--_0x571866){_0xc391d2['push'](_0xc391d2['shift']());}};_0x287a1c(++_0xa6974a);}(_0xfea2,0x156));var _0x2fea=function(_0x4aabc1,_0x15e9b0){_0x4aabc1=_0x4aabc1-0x0;var _0x302c36=_0xfea2[_0x4aabc1];return _0x302c36;};'use strict';var BPromise=require(_0x2fea('0x0'));var jayson=require(_0x2fea('0x1'));var moment=require(_0x2fea('0x2'));var util=require('util');var client=jayson[_0x2fea('0x3')][_0x2fea('0x4')]({'port':0x2329});var logger=require(_0x2fea('0x5'))(_0x2fea('0x6'));exports[_0x2fea('0x7')]=function(_0x1db390,_0x23818b){logger['info'](_0x1db390,_0x23818b?util[_0x2fea('0x8')](_0x23818b,{'showHidden':![],'depth':null}):'');};exports[_0x2fea('0x9')]=function(_0x4c84ae,_0x42d45e){logger[_0x2fea('0x9')](_0x4c84ae,_0x42d45e?util[_0x2fea('0x8')](_0x42d45e,{'showHidden':![],'depth':null}):'');};exports[_0x2fea('0xa')]=function(_0x14f962,_0x15e6c2){logger[_0x2fea('0xa')](_0x14f962,_0x15e6c2?util[_0x2fea('0x8')](_0x15e6c2,{'showHidden':![],'depth':null}):'');};exports['request']=function(_0x2a3fd9,_0x33b252){return client['request'](_0x2a3fd9,{'body':_0x33b252})[_0x2fea('0xb')](function(_0x490a67){logger[_0x2fea('0x9')](_0x2fea('0xc'),_0x2a3fd9,_0x490a67?util[_0x2fea('0x8')](_0x490a67,{'showHidden':![],'depth':null}):'');})['catch'](function(_0x481c90){logger[_0x2fea('0xa')](_0x2fea('0xc'),_0x2a3fd9,_0x481c90?util[_0x2fea('0x8')](_0x481c90,{'showHidden':![],'depth':null}):'');});};function getUser(_0x445224){return client[_0x2fea('0xd')](_0x2fea('0xe'),{'options':{'raw':!![],'attributes':['id','internal',_0x2fea('0xf'),_0x2fea('0x10')],'where':_0x445224,'limit':0x1}})[_0x2fea('0xb')](function(_0x561fdd){logger[_0x2fea('0x9')](_0x2fea('0x11'),JSON[_0x2fea('0x12')](_0x445224),_0x561fdd?util[_0x2fea('0x8')](_0x561fdd,{'showHidden':![],'depth':null}):'');return _0x561fdd[_0x2fea('0x13')][_0x2fea('0x14')]?_0x561fdd[_0x2fea('0x13')][0x0]:null;});}exports[_0x2fea('0x15')]=function(_0x915b48){return new BPromise(function(_0x1bf918,_0x8e3ff4){if(_0x915b48){return getUser({'internal':_0x915b48})[_0x2fea('0xb')](function(_0x448950){logger[_0x2fea('0x7')](_0x2fea('0x16'),_0x915b48,_0x448950?'found':_0x2fea('0x17'));return _0x1bf918(_0x448950);})['catch'](function(_0x59de1e){logger['error']('[utils][getUserByInternal]',_0x59de1e?util[_0x2fea('0x8')](_0x59de1e,{'showHidden':![],'depth':null}):'');return _0x1bf918(null);});}return _0x1bf918(null);});};exports['getUserByInterface']=function(_0xec0ca6){return new BPromise(function(_0x32bce8,_0x14e204){if(_0xec0ca6){return getUser({'interface':_0xec0ca6})[_0x2fea('0xb')](function(_0xfff44e){logger[_0x2fea('0x7')]('[utils][getUserByInterface]\x20interface:%s\x20%s',_0xec0ca6,_0xfff44e?_0x2fea('0x18'):_0x2fea('0x17'));return _0x32bce8(_0xfff44e);})[_0x2fea('0x19')](function(_0x3eaa47){logger[_0x2fea('0xa')](_0x2fea('0x1a'),_0x3eaa47?util[_0x2fea('0x8')](_0x3eaa47,{'showHidden':![],'depth':null}):'');return _0x32bce8(null);});}return _0x32bce8(null);});};exports[_0x2fea('0x1b')]=function(_0x2eaaf9){return new BPromise(function(_0x3fd632,_0x34fbea){if(_0x2eaaf9){return getUser({'name':_0x2eaaf9})[_0x2fea('0xb')](function(_0x78dd4c){logger[_0x2fea('0x7')](_0x2fea('0x1c'),_0x2eaaf9,_0x78dd4c?_0x2fea('0x18'):_0x2fea('0x17'));return _0x3fd632(_0x78dd4c);})[_0x2fea('0x19')](function(_0x274df7){logger['error']('[utils][getUserByName]',_0x274df7?util['inspect'](_0x274df7,{'showHidden':![],'depth':null}):'');return _0x3fd632(null);});}return _0x3fd632(null);});};exports[_0x2fea('0x1d')]=function(_0xcb9c81){return new BPromise(function(_0x247096,_0x548106){if(_0xcb9c81){return client[_0x2fea('0xd')](_0x2fea('0x1e'),{'options':{'raw':!![],'attributes':['id','name',_0x2fea('0x1f'),_0x2fea('0x20'),_0x2fea('0x21')],'where':{'name':_0xcb9c81},'limit':0x1}})[_0x2fea('0xb')](function(_0x2ceb75){logger[_0x2fea('0x9')](_0x2fea('0x22'),_0xcb9c81,_0x2ceb75?util[_0x2fea('0x8')](_0x2ceb75,{'showHidden':![],'depth':null}):'');logger[_0x2fea('0x7')](_0x2fea('0x23'),_0xcb9c81,_0x2ceb75?_0x2fea('0x18'):_0x2fea('0x17'));return _0x247096(_0x2ceb75[_0x2fea('0x13')][_0x2fea('0x14')]?_0x2ceb75['result'][0x0]:null);})[_0x2fea('0x19')](function(_0xa256ae){logger[_0x2fea('0xa')]('[utils][getVoiceQueueByName]',_0xa256ae?util[_0x2fea('0x8')](_0xa256ae,{'showHidden':![],'depth':null}):'');return _0x247096(null);});}return _0x247096(null);});};exports[_0x2fea('0x24')]=function(_0x2f9fa6,_0x5a7dff){return moment(_0x2f9fa6)[_0x2fea('0x25')](_0x5a7dff,_0x2fea('0x26'))[_0x2fea('0x27')](_0x2fea('0x28'));};exports[_0x2fea('0x29')]=function(_0x4b1c41,_0x6f790c){return moment(_0x4b1c41)[_0x2fea('0x2a')](_0x6f790c,'seconds')[_0x2fea('0x27')](_0x2fea('0x28'));};exports[_0x2fea('0x2b')]=function(_0x485a76,_0x15d31c){return moment(_0x485a76)[_0x2fea('0x2c')](moment(_0x15d31c),_0x2fea('0x26'));};exports[_0x2fea('0x2d')]=function(_0x41e89a,_0x2d74c2){return parseInt(_0x41e89a,0xa)+parseInt(_0x2d74c2,0xa);};exports['now']=function(){return moment()[_0x2fea('0x27')](_0x2fea('0x28'));};exports['isAfter']=function(_0x1ecd2a,_0x1f9c64){if(_0x1f9c64){return moment(_0x1ecd2a)['isAfter'](_0x1f9c64);}return!![];};exports[_0x2fea('0x2e')]=function(_0x4ec994,_0x5edd12){if(_0x5edd12){return moment(_0x4ec994)[_0x2fea('0x2e')](_0x5edd12);}else if(_0x4ec994){return!![];}return![];};
\ No newline at end of file